summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Jonsson <spamatica@gmail.com>2010-10-13 19:34:22 +0000
committerRobert Jonsson <spamatica@gmail.com>2010-10-13 19:34:22 +0000
commit8a2c2824a59d7644e13bc52c9a0ecbd641f21f95 (patch)
tree064ad3f2bf8daab0ad27b128abd86a9bbdb1e496
parenta27706d9629e8b592cca4659f865b70adef24e6d (diff)
new branch muse2, first checkin
-rw-r--r--muse2/.muse.prcs_aux635
-rw-r--r--muse2/AUTHORS17
l---------muse2/COPYING1
-rw-r--r--muse2/ChangeLog3703
-rw-r--r--muse2/Doxyfile.in150
l---------muse2/INSTALL1
-rw-r--r--muse2/Makefile.am35
-rw-r--r--muse2/Makefile.in859
-rw-r--r--muse2/NEWS29
-rw-r--r--muse2/README82
-rw-r--r--muse2/README.CVS3
-rw-r--r--muse2/README.de69
-rw-r--r--muse2/README.effects-rack85
-rw-r--r--muse2/README.instruments108
-rw-r--r--muse2/README.ladspaguis56
-rw-r--r--muse2/README.shortcuts159
-rw-r--r--muse2/README.softsynth86
-rw-r--r--muse2/README.translate62
-rw-r--r--muse2/SECURITY244
-rw-r--r--muse2/aclocal.m41334
-rw-r--r--muse2/al/Makefile.am18
-rw-r--r--muse2/al/Makefile.in595
-rw-r--r--muse2/al/al.cpp29
-rw-r--r--muse2/al/al.h34
-rw-r--r--muse2/al/dsp.cpp182
-rw-r--r--muse2/al/dsp.h107
-rw-r--r--muse2/al/dspSSE.cpp531
-rw-r--r--muse2/al/dspXMM.cpp119
-rw-r--r--muse2/all-pic.h0
-rw-r--r--muse2/all.h0
-rwxr-xr-xmuse2/autogen.sh147
-rw-r--r--muse2/autom4te.cache/output.020607
-rw-r--r--muse2/autom4te.cache/output.120639
-rw-r--r--muse2/autom4te.cache/output.220639
-rw-r--r--muse2/autom4te.cache/requests516
-rw-r--r--muse2/autom4te.cache/traces.03343
-rw-r--r--muse2/autom4te.cache/traces.11025
-rw-r--r--muse2/autom4te.cache/traces.23053
-rw-r--r--muse2/common.am47
l---------muse2/config.guess1
-rw-r--r--muse2/config.h.in98
l---------muse2/config.sub1
-rwxr-xr-xmuse2/configure20639
-rw-r--r--muse2/configure.ac817
-rw-r--r--muse2/demos/Makefile.am1
-rw-r--r--muse2/demos/Makefile.in415
-rw-r--r--muse2/demos/rasen.med377
l---------muse2/depcomp1
-rw-r--r--muse2/doc/Makefile.am13
-rw-r--r--muse2/doc/Makefile.in428
-rw-r--r--muse2/doc/midieditfunctions.pngbin0 -> 3903 bytes
-rw-r--r--muse2/doc/muse.sgm493
-rw-r--r--muse2/grepmidi/Makefile.am8
-rw-r--r--muse2/grepmidi/Makefile.in618
-rw-r--r--muse2/grepmidi/grepmidi.cpp348
-rw-r--r--muse2/grid.med467
l---------muse2/install-sh1
-rw-r--r--muse2/lib/Makefile.am1
-rw-r--r--muse2/lib/Makefile.in617
-rw-r--r--muse2/lib/plugins/Makefile.am23
-rw-r--r--muse2/lib/plugins/Makefile.in436
-rw-r--r--muse2/lib/synthi/Makefile.am23
-rw-r--r--muse2/lib/synthi/Makefile.in436
l---------muse2/ltmain.sh1
-rw-r--r--muse2/m4/Makefile.am1
-rw-r--r--muse2/m4/Makefile.in415
-rw-r--r--muse2/m4/aclocal-include.m416
-rw-r--r--muse2/m4/alsa.m4148
-rw-r--r--muse2/m4/docbook.m497
l---------muse2/m4/libtool.m41
l---------muse2/m4/ltoptions.m41
l---------muse2/m4/ltsugar.m41
l---------muse2/m4/ltversion.m41
l---------muse2/m4/lt~obsolete.m41
-rw-r--r--muse2/m4/qt.m4246
l---------muse2/missing1
-rw-r--r--muse2/muse.prj697
-rw-r--r--muse2/muse.pro688
-rw-r--r--muse2/muse/Makefile.am168
-rw-r--r--muse2/muse/Makefile.in1067
-rw-r--r--muse2/muse/app.cpp4767
-rw-r--r--muse2/muse/app.cpp.orig3969
-rw-r--r--muse2/muse/app.h327
-rw-r--r--muse2/muse/appearance.cpp718
-rw-r--r--muse2/muse/appearance.h56
-rw-r--r--muse2/muse/arranger/Makefile.am20
-rw-r--r--muse2/muse/arranger/Makefile.in612
-rw-r--r--muse2/muse/arranger/alayout.cpp161
-rw-r--r--muse2/muse/arranger/alayout.h48
-rw-r--r--muse2/muse/arranger/arranger.cpp971
-rw-r--r--muse2/muse/arranger/arranger.h227
-rw-r--r--muse2/muse/arranger/pcanvas.cpp2825
-rw-r--r--muse2/muse/arranger/pcanvas.h139
-rw-r--r--muse2/muse/arranger/tlist.cpp1555
-rw-r--r--muse2/muse/arranger/tlist.h131
-rw-r--r--muse2/muse/arranger/trackautomationview.cpp53
-rw-r--r--muse2/muse/arranger/trackautomationview.h21
-rw-r--r--muse2/muse/arranger/trackinfo.cpp1570
-rw-r--r--muse2/muse/audio.cpp1431
-rw-r--r--muse2/muse/audio.h299
-rw-r--r--muse2/muse/audioconvert.cpp886
-rw-r--r--muse2/muse/audioconvert.h129
-rw-r--r--muse2/muse/audioprefetch.cpp262
-rw-r--r--muse2/muse/audioprefetch.h46
-rw-r--r--muse2/muse/audiotrack.cpp1639
-rw-r--r--muse2/muse/cliplist/Makefile.am14
-rw-r--r--muse2/muse/cliplist/Makefile.in596
-rw-r--r--muse2/muse/cliplist/cliplist.cpp260
-rw-r--r--muse2/muse/cliplist/cliplist.h51
-rw-r--r--muse2/muse/cobject.cpp62
-rw-r--r--muse2/muse/cobject.h66
-rw-r--r--muse2/muse/conf.cpp1499
-rw-r--r--muse2/muse/conf.h38
-rw-r--r--muse2/muse/confmport.cpp897
-rw-r--r--muse2/muse/confmport.h83
-rw-r--r--muse2/muse/ctrl.cpp297
-rw-r--r--muse2/muse/ctrl.h144
-rw-r--r--muse2/muse/ctrl/Makefile.am17
-rw-r--r--muse2/muse/ctrl/Makefile.in604
-rw-r--r--muse2/muse/ctrl/ctrlcanvas.cpp1533
-rw-r--r--muse2/muse/ctrl/ctrlcanvas.h165
-rw-r--r--muse2/muse/ctrl/ctrledit.cpp134
-rw-r--r--muse2/muse/ctrl/ctrledit.h56
-rw-r--r--muse2/muse/ctrl/ctrlpanel.cpp694
-rw-r--r--muse2/muse/ctrl/ctrlpanel.h66
-rw-r--r--muse2/muse/debug.h31
-rw-r--r--muse2/muse/default_click.h1213
-rw-r--r--muse2/muse/device.h46
-rw-r--r--muse2/muse/driver/Makefile.am10
-rw-r--r--muse2/muse/driver/Makefile.in595
-rw-r--r--muse2/muse/driver/alsamidi.cpp917
-rw-r--r--muse2/muse/driver/alsamidi.h53
-rw-r--r--muse2/muse/driver/alsatimer.cpp225
-rw-r--r--muse2/muse/driver/alsatimer.h52
-rw-r--r--muse2/muse/driver/audiodev.h74
-rw-r--r--muse2/muse/driver/dummyaudio.cpp454
-rw-r--r--muse2/muse/driver/jack.cpp2173
-rw-r--r--muse2/muse/driver/jackaudio.h97
-rw-r--r--muse2/muse/driver/jackmidi.cpp1563
-rw-r--r--muse2/muse/driver/jackmidi.h156
-rw-r--r--muse2/muse/driver/rtctimer.cpp155
-rw-r--r--muse2/muse/driver/rtctimer.h44
-rw-r--r--muse2/muse/driver/timerdev.h41
-rw-r--r--muse2/muse/dssihost.cpp3055
-rw-r--r--muse2/muse/dssihost.h256
-rw-r--r--muse2/muse/evdata.h67
-rw-r--r--muse2/muse/event.cpp328
-rw-r--r--muse2/muse/event.h150
-rw-r--r--muse2/muse/eventbase.h97
-rw-r--r--muse2/muse/eventlist.cpp112
-rw-r--r--muse2/muse/exportmidi.cpp379
-rw-r--r--muse2/muse/fastlog.h38
-rw-r--r--muse2/muse/gconfig.cpp135
-rw-r--r--muse2/muse/gconfig.h132
-rw-r--r--muse2/muse/givertcap.c94
-rw-r--r--muse2/muse/globaldefs.h34
-rw-r--r--muse2/muse/globals.cpp396
-rw-r--r--muse2/muse/globals.h192
-rw-r--r--muse2/muse/help.cpp112
-rw-r--r--muse2/muse/helper.cpp40
-rw-r--r--muse2/muse/helper.h16
-rw-r--r--muse2/muse/icons.cpp612
-rw-r--r--muse2/muse/icons.h220
-rw-r--r--muse2/muse/importmidi.cpp608
-rw-r--r--muse2/muse/instruments/Makefile.am15
-rw-r--r--muse2/muse/instruments/Makefile.in599
-rw-r--r--muse2/muse/instruments/ccontrolbase.ui525
-rw-r--r--muse2/muse/instruments/editinstrument.cpp3541
-rw-r--r--muse2/muse/instruments/editinstrument.h92
-rw-r--r--muse2/muse/instruments/editinstrumentbase.ui1840
-rw-r--r--muse2/muse/instruments/midictrledit.cpp733
-rw-r--r--muse2/muse/instruments/midictrledit.h56
-rw-r--r--muse2/muse/instruments/minstrument.cpp850
-rw-r--r--muse2/muse/instruments/minstrument.h135
-rw-r--r--muse2/muse/key.cpp35
-rw-r--r--muse2/muse/key.h54
-rw-r--r--muse2/muse/ladspa.h599
-rw-r--r--muse2/muse/liste/Makefile.am16
-rw-r--r--muse2/muse/liste/Makefile.in601
-rw-r--r--muse2/muse/liste/editctrlbase.ui702
-rw-r--r--muse2/muse/liste/editevent.cpp853
-rw-r--r--muse2/muse/liste/editevent.h196
-rw-r--r--muse2/muse/liste/listedit.cpp909
-rw-r--r--muse2/muse/liste/listedit.h81
-rw-r--r--muse2/muse/make.inc164
-rw-r--r--muse2/muse/marker/Makefile.am15
-rw-r--r--muse2/muse/marker/Makefile.in596
-rw-r--r--muse2/muse/marker/marker.cpp90
-rw-r--r--muse2/muse/marker/marker.h51
-rw-r--r--muse2/muse/marker/markerview.cpp597
-rw-r--r--muse2/muse/marker/markerview.h84
-rw-r--r--muse2/muse/master/Makefile.am19
-rw-r--r--muse2/muse/master/Makefile.in609
-rw-r--r--muse2/muse/master/lmaster.cpp715
-rw-r--r--muse2/muse/master/lmaster.h145
-rw-r--r--muse2/muse/master/master.cpp341
-rw-r--r--muse2/muse/master/master.h69
-rw-r--r--muse2/muse/master/masteredit.cpp403
-rw-r--r--muse2/muse/master/masteredit.h83
-rw-r--r--muse2/muse/master/tscale.cpp61
-rw-r--r--muse2/muse/master/tscale.h38
-rw-r--r--muse2/muse/memory.cpp100
-rw-r--r--muse2/muse/memory.h180
-rw-r--r--muse2/muse/midi.cpp1542
-rw-r--r--muse2/muse/midi.h72
-rw-r--r--muse2/muse/midictrl.cpp781
-rw-r--r--muse2/muse/midictrl.h255
-rw-r--r--muse2/muse/mididev.cpp548
-rw-r--r--muse2/muse/mididev.h157
-rw-r--r--muse2/muse/midiedit/Makefile.am36
-rw-r--r--muse2/muse/midiedit/Makefile.in636
-rw-r--r--muse2/muse/midiedit/cmd.h26
-rw-r--r--muse2/muse/midiedit/dcanvas.cpp1291
-rw-r--r--muse2/muse/midiedit/dcanvas.h93
-rw-r--r--muse2/muse/midiedit/dlist.cpp754
-rw-r--r--muse2/muse/midiedit/dlist.h105
-rw-r--r--muse2/muse/midiedit/drumedit.cpp1167
-rw-r--r--muse2/muse/midiedit/drumedit.h151
-rw-r--r--muse2/muse/midiedit/drummap.cpp503
-rw-r--r--muse2/muse/midiedit/drummap.h47
-rw-r--r--muse2/muse/midiedit/ecanvas.cpp363
-rw-r--r--muse2/muse/midiedit/ecanvas.h87
-rw-r--r--muse2/muse/midiedit/piano.cpp557
-rw-r--r--muse2/muse/midiedit/piano.h63
-rw-r--r--muse2/muse/midiedit/pianoroll.cpp1107
-rw-r--r--muse2/muse/midiedit/pianoroll.h146
-rw-r--r--muse2/muse/midiedit/prcanvas.cpp1695
-rw-r--r--muse2/muse/midiedit/prcanvas.h113
-rw-r--r--muse2/muse/midiedit/quantconfig.cpp59
-rw-r--r--muse2/muse/midiedit/quantconfig.h32
-rw-r--r--muse2/muse/midieditor.cpp237
-rw-r--r--muse2/muse/midieditor.h86
-rw-r--r--muse2/muse/midievent.cpp175
-rw-r--r--muse2/muse/midievent.h62
-rw-r--r--muse2/muse/midifile.cpp678
-rw-r--r--muse2/muse/midifile.h113
-rw-r--r--muse2/muse/midiport.cpp1027
-rw-r--r--muse2/muse/midiport.h130
-rw-r--r--muse2/muse/midiseq.cpp766
-rw-r--r--muse2/muse/midiseq.h102
-rw-r--r--muse2/muse/miditransform.cpp1702
-rw-r--r--muse2/muse/miditransform.h105
-rw-r--r--muse2/muse/mixer/Makefile.am26
-rw-r--r--muse2/muse/mixer/Makefile.in628
-rw-r--r--muse2/muse/mixer/amixer.cpp592
-rw-r--r--muse2/muse/mixer/amixer.h119
-rw-r--r--muse2/muse/mixer/astrip.cpp2830
-rw-r--r--muse2/muse/mixer/astrip.h97
-rw-r--r--muse2/muse/mixer/auxknob.cpp40
-rw-r--r--muse2/muse/mixer/auxknob.h33
-rw-r--r--muse2/muse/mixer/meter.cpp184
-rw-r--r--muse2/muse/mixer/meter.h52
-rw-r--r--muse2/muse/mixer/midiportroutebase.ui85
-rw-r--r--muse2/muse/mixer/mstrip.cpp1216
-rw-r--r--muse2/muse/mixer/mstrip.h83
-rw-r--r--muse2/muse/mixer/panknob.cpp32
-rw-r--r--muse2/muse/mixer/panknob.h32
-rw-r--r--muse2/muse/mixer/rack.cpp531
-rw-r--r--muse2/muse/mixer/rack.h58
-rw-r--r--muse2/muse/mixer/routedialog.cpp185
-rw-r--r--muse2/muse/mixer/routedialog.h43
-rw-r--r--muse2/muse/mixer/routedialogbase.ui234
-rw-r--r--muse2/muse/mixer/strip.cpp238
-rw-r--r--muse2/muse/mixer/strip.h77
-rw-r--r--muse2/muse/mpevent.cpp160
-rw-r--r--muse2/muse/mpevent.h183
-rw-r--r--muse2/muse/mplugins/.cvsignore2
-rw-r--r--muse2/muse/mplugins/Makefile.am26
-rw-r--r--muse2/muse/mplugins/Makefile.in624
-rw-r--r--muse2/muse/mplugins/midifilter.ui879
-rw-r--r--muse2/muse/mplugins/midifilterimpl.cpp131
-rw-r--r--muse2/muse/mplugins/midifilterimpl.h92
-rw-r--r--muse2/muse/mplugins/midiitransform.cpp1696
-rw-r--r--muse2/muse/mplugins/midiitransform.h101
-rw-r--r--muse2/muse/mplugins/mitplugin.cpp145
-rw-r--r--muse2/muse/mplugins/mitplugin.h39
-rw-r--r--muse2/muse/mplugins/mittranspose.cpp181
-rw-r--r--muse2/muse/mplugins/mittranspose.h70
-rw-r--r--muse2/muse/mplugins/mrconfig.cpp71
-rw-r--r--muse2/muse/mplugins/mrconfig.h40
-rw-r--r--muse2/muse/mplugins/mrconfigbase.ui200
-rw-r--r--muse2/muse/mplugins/random.cpp758
-rw-r--r--muse2/muse/mplugins/random.h192
-rw-r--r--muse2/muse/mplugins/rhythm.cpp516
-rw-r--r--muse2/muse/mplugins/rhythm.h196
-rw-r--r--muse2/muse/mplugins/rhythmbase.ui1004
-rw-r--r--muse2/muse/mtc.cpp130
-rw-r--r--muse2/muse/mtc.h56
-rw-r--r--muse2/muse/muse.log1875
-rw-r--r--muse2/muse/muse.pro369
-rw-r--r--muse2/muse/node.cpp1911
-rw-r--r--muse2/muse/node.h132
-rw-r--r--muse2/muse/osc.cpp1386
-rw-r--r--muse2/muse/osc.h212
-rw-r--r--muse2/muse/part.cpp1432
-rw-r--r--muse2/muse/part.h175
-rw-r--r--muse2/muse/patchbay/Makefile.am9
-rw-r--r--muse2/muse/patchbay/patchbay.cpp10
-rw-r--r--muse2/muse/patchbay/patchbay.h16
-rw-r--r--muse2/muse/patchbay/patchbaybase.ui36
-rw-r--r--muse2/muse/plugin.cpp3871
-rw-r--r--muse2/muse/plugin.h536
-rw-r--r--muse2/muse/pos.cpp567
-rw-r--r--muse2/muse/pos.h99
-rw-r--r--muse2/muse/remote/Makefile.am15
-rw-r--r--muse2/muse/remote/Makefile.in590
-rw-r--r--muse2/muse/remote/pyapi.cpp1142
-rw-r--r--muse2/muse/remote/pyapi.h40
-rw-r--r--muse2/muse/route.cpp1633
-rw-r--r--muse2/muse/route.h102
-rw-r--r--muse2/muse/seqmsg.cpp1184
-rw-r--r--muse2/muse/shortcuts.cpp312
-rw-r--r--muse2/muse/shortcuts.h285
-rw-r--r--muse2/muse/sig.cpp439
-rw-r--r--muse2/muse/sig.h79
-rw-r--r--muse2/muse/song.cpp3681
-rw-r--r--muse2/muse/song.h413
-rw-r--r--muse2/muse/songfile.cpp1507
-rw-r--r--muse2/muse/stringparam.cpp113
-rw-r--r--muse2/muse/stringparam.h49
-rw-r--r--muse2/muse/sync.cpp1380
-rw-r--r--muse2/muse/sync.h153
-rw-r--r--muse2/muse/synth.cpp947
-rw-r--r--muse2/muse/synth.h290
-rw-r--r--muse2/muse/tempo.cpp503
-rw-r--r--muse2/muse/tempo.h89
-rw-r--r--muse2/muse/thread.cpp455
-rw-r--r--muse2/muse/thread.h104
-rw-r--r--muse2/muse/ticksynth.cpp215
-rw-r--r--muse2/muse/ticksynth.h22
-rw-r--r--muse2/muse/track.cpp980
-rw-r--r--muse2/muse/track.h675
-rw-r--r--muse2/muse/transport.cpp673
-rw-r--r--muse2/muse/transport.h129
-rw-r--r--muse2/muse/transpose.cpp92
-rw-r--r--muse2/muse/transpose.h21
-rw-r--r--muse2/muse/undo.cpp968
-rw-r--r--muse2/muse/undo.h102
-rw-r--r--muse2/muse/value.cpp60
-rw-r--r--muse2/muse/value.h61
-rw-r--r--muse2/muse/vst.cpp630
-rw-r--r--muse2/muse/vst.h83
-rw-r--r--muse2/muse/wave.cpp1175
-rw-r--r--muse2/muse/wave.h264
-rw-r--r--muse2/muse/waveedit/Makefile.am18
-rw-r--r--muse2/muse/waveedit/Makefile.in606
-rw-r--r--muse2/muse/waveedit/editgain.cpp91
-rw-r--r--muse2/muse/waveedit/editgain.h37
-rw-r--r--muse2/muse/waveedit/editgainbase.ui302
-rw-r--r--muse2/muse/waveedit/waveedit.cpp413
-rw-r--r--muse2/muse/waveedit/waveedit.h79
-rw-r--r--muse2/muse/waveedit/waveview.cpp936
-rw-r--r--muse2/muse/waveedit/waveview.h98
-rw-r--r--muse2/muse/waveevent.cpp453
-rw-r--r--muse2/muse/waveevent.h64
-rw-r--r--muse2/muse/wavetrack.cpp360
-rw-r--r--muse2/muse/widgets/.cvsignore23
-rw-r--r--muse2/muse/widgets/Makefile.am262
-rw-r--r--muse2/muse/widgets/Makefile.in2647
-rw-r--r--muse2/muse/widgets/aboutbox.ui129
-rw-r--r--muse2/muse/widgets/aboutbox_impl.cpp10
-rw-r--r--muse2/muse/widgets/aboutbox_impl.h16
-rw-r--r--muse2/muse/widgets/action.h32
-rw-r--r--muse2/muse/widgets/appearancebase.ui1764
-rw-r--r--muse2/muse/widgets/bigtime.cpp442
-rw-r--r--muse2/muse/widgets/bigtime.h55
-rw-r--r--muse2/muse/widgets/canvas.cpp1405
-rw-r--r--muse2/muse/widgets/canvas.h185
-rw-r--r--muse2/muse/widgets/checkbox.cpp58
-rw-r--r--muse2/muse/widgets/checkbox.h45
-rw-r--r--muse2/muse/widgets/citem.cpp93
-rw-r--r--muse2/muse/widgets/citem.h90
-rw-r--r--muse2/muse/widgets/cliplisteditorbase.ui168
-rw-r--r--muse2/muse/widgets/comboQuant.cpp61
-rw-r--r--muse2/muse/widgets/comboQuant.h33
-rw-r--r--muse2/muse/widgets/combobox.cpp74
-rw-r--r--muse2/muse/widgets/combobox.h49
-rw-r--r--muse2/muse/widgets/comment.cpp86
-rw-r--r--muse2/muse/widgets/comment.h53
-rw-r--r--muse2/muse/widgets/commentbase.ui116
-rw-r--r--muse2/muse/widgets/configmidifilebase.ui259
-rw-r--r--muse2/muse/widgets/ctrlcombo.cpp56
-rw-r--r--muse2/muse/widgets/ctrlcombo.cw22
-rw-r--r--muse2/muse/widgets/ctrlcombo.h22
-rw-r--r--muse2/muse/widgets/dentry.cpp243
-rw-r--r--muse2/muse/widgets/dentry.h79
-rw-r--r--muse2/muse/widgets/didyouknow.ui102
-rw-r--r--muse2/muse/widgets/dimap.cpp308
-rw-r--r--muse2/muse/widgets/dimap.h55
-rw-r--r--muse2/muse/widgets/doublelabel.cpp189
-rw-r--r--muse2/muse/widgets/doublelabel.h60
-rw-r--r--muse2/muse/widgets/drange.cpp262
-rw-r--r--muse2/muse/widgets/drange.h71
-rw-r--r--muse2/muse/widgets/editctrl7dialogbase.ui214
-rw-r--r--muse2/muse/widgets/editmetadialogbase.ui254
-rw-r--r--muse2/muse/widgets/editnotedialogbase.ui202
-rw-r--r--muse2/muse/widgets/editsysexdialogbase.ui209
-rw-r--r--muse2/muse/widgets/fdialogbuttons.ui204
-rw-r--r--muse2/muse/widgets/filedialog.cpp534
-rw-r--r--muse2/muse/widgets/filedialog.h92
-rw-r--r--muse2/muse/widgets/fontsel.cpp137
-rw-r--r--muse2/muse/widgets/fontsel.h45
-rw-r--r--muse2/muse/widgets/gatetime.cpp46
-rw-r--r--muse2/muse/widgets/gatetime.h36
-rw-r--r--muse2/muse/widgets/gatetimebase.ui285
-rw-r--r--muse2/muse/widgets/genset.cpp444
-rw-r--r--muse2/muse/widgets/genset.h41
-rw-r--r--muse2/muse/widgets/gensetbase.ui1470
-rw-r--r--muse2/muse/widgets/header.cpp62
-rw-r--r--muse2/muse/widgets/header.h30
-rw-r--r--muse2/muse/widgets/hitscale.cpp134
-rw-r--r--muse2/muse/widgets/hitscale.h50
-rw-r--r--muse2/muse/widgets/intlabel.cpp144
-rw-r--r--muse2/muse/widgets/intlabel.h46
-rw-r--r--muse2/muse/widgets/itransformbase.ui1296
-rw-r--r--muse2/muse/widgets/knob.cpp506
-rw-r--r--muse2/muse/widgets/knob.h78
-rw-r--r--muse2/muse/widgets/lcombo.cpp49
-rw-r--r--muse2/muse/widgets/lcombo.h40
-rw-r--r--muse2/muse/widgets/listitem.h85
-rw-r--r--muse2/muse/widgets/menutitleitem.h29
-rw-r--r--muse2/muse/widgets/metronome.cpp186
-rw-r--r--muse2/muse/widgets/metronome.h34
-rw-r--r--muse2/muse/widgets/metronomebase.ui604
-rw-r--r--muse2/muse/widgets/midisync.ui443
-rw-r--r--muse2/muse/widgets/midisyncimpl.cpp1294
-rw-r--r--muse2/muse/widgets/midisyncimpl.h150
-rw-r--r--muse2/muse/widgets/mittransposebase.ui117
-rw-r--r--muse2/muse/widgets/mixdowndialog.cpp108
-rw-r--r--muse2/muse/widgets/mixdowndialog.h37
-rw-r--r--muse2/muse/widgets/mixdowndialogbase.ui224
-rw-r--r--muse2/muse/widgets/mktest5
-rw-r--r--muse2/muse/widgets/mlabel.cpp17
-rw-r--r--muse2/muse/widgets/mlabel.h39
-rw-r--r--muse2/muse/widgets/mmath.cpp300
-rw-r--r--muse2/muse/widgets/mmath.h77
-rw-r--r--muse2/muse/widgets/moc_aboutbox.cpp81
-rw-r--r--muse2/muse/widgets/moc_didyouknow.cpp81
-rw-r--r--muse2/muse/widgets/moc_songinfo.cpp84
-rw-r--r--muse2/muse/widgets/moc_ttoolbar.cpp0
-rw-r--r--muse2/muse/widgets/mtrackinfobase.ui1067
-rw-r--r--muse2/muse/widgets/mtscale.cpp425
-rw-r--r--muse2/muse/widgets/mtscale.h53
-rw-r--r--muse2/muse/widgets/musewidgetsplug.cpp539
-rw-r--r--muse2/muse/widgets/nentry.cpp407
-rw-r--r--muse2/muse/widgets/nentry.h93
-rw-r--r--muse2/muse/widgets/noteinfo.cpp178
-rw-r--r--muse2/muse/widgets/noteinfo.h52
-rw-r--r--muse2/muse/widgets/pitchedit.cpp64
-rw-r--r--muse2/muse/widgets/pitchedit.h33
-rw-r--r--muse2/muse/widgets/pitchlabel.cpp95
-rw-r--r--muse2/muse/widgets/pitchlabel.h41
-rw-r--r--muse2/muse/widgets/popupmenu.cpp2770
-rw-r--r--muse2/muse/widgets/popupmenu.h303
-rw-r--r--muse2/muse/widgets/posedit.cpp875
-rw-r--r--muse2/muse/widgets/posedit.h106
-rw-r--r--muse2/muse/widgets/poslabel.cpp152
-rw-r--r--muse2/muse/widgets/poslabel.h45
-rw-r--r--muse2/muse/widgets/scldiv.cpp652
-rw-r--r--muse2/muse/widgets/scldiv.h57
-rw-r--r--muse2/muse/widgets/scldraw.cpp881
-rw-r--r--muse2/muse/widgets/scldraw.h89
-rw-r--r--muse2/muse/widgets/sclif.cpp205
-rw-r--r--muse2/muse/widgets/sclif.h51
-rw-r--r--muse2/muse/widgets/scrollscale.cpp499
-rw-r--r--muse2/muse/widgets/scrollscale.h90
-rw-r--r--muse2/muse/widgets/section.h19
-rw-r--r--muse2/muse/widgets/shortcutcapturedialog.cpp87
-rw-r--r--muse2/muse/widgets/shortcutcapturedialog.h35
-rw-r--r--muse2/muse/widgets/shortcutcapturedialogbase.ui134
-rw-r--r--muse2/muse/widgets/shortcutconfig.cpp115
-rw-r--r--muse2/muse/widgets/shortcutconfig.h61
-rw-r--r--muse2/muse/widgets/shortcutconfigbase.ui207
-rw-r--r--muse2/muse/widgets/sigedit.cpp755
-rw-r--r--muse2/muse/widgets/sigedit.h90
-rw-r--r--muse2/muse/widgets/siglabel.cpp157
-rw-r--r--muse2/muse/widgets/siglabel.h42
-rw-r--r--muse2/muse/widgets/sigscale.cpp152
-rw-r--r--muse2/muse/widgets/sigscale.h50
-rw-r--r--muse2/muse/widgets/slider.cpp930
-rw-r--r--muse2/muse/widgets/slider.h98
-rw-r--r--muse2/muse/widgets/sliderbase.cpp726
-rw-r--r--muse2/muse/widgets/sliderbase.h107
-rw-r--r--muse2/muse/widgets/songinfo.ui115
-rw-r--r--muse2/muse/widgets/spinbox.cpp83
-rw-r--r--muse2/muse/widgets/spinbox.h44
-rw-r--r--muse2/muse/widgets/spinboxFP.cpp80
-rw-r--r--muse2/muse/widgets/spinboxFP.h35
-rw-r--r--muse2/muse/widgets/splitter.cpp77
-rw-r--r--muse2/muse/widgets/splitter.h29
-rw-r--r--muse2/muse/widgets/swidget.cpp20
-rw-r--r--muse2/muse/widgets/swidget.h33
-rw-r--r--muse2/muse/widgets/synthconfigbase.ui247
-rw-r--r--muse2/muse/widgets/synthwizardbase.h58
-rw-r--r--muse2/muse/widgets/tb1.cpp225
-rw-r--r--muse2/muse/widgets/tb1.h57
-rw-r--r--muse2/muse/widgets/tempolabel.cpp126
-rw-r--r--muse2/muse/widgets/tempolabel.h60
-rw-r--r--muse2/muse/widgets/tools.cpp139
-rw-r--r--muse2/muse/widgets/tools.h57
-rw-r--r--muse2/muse/widgets/transformbase.ui1146
-rw-r--r--muse2/muse/widgets/transposebase.ui252
-rw-r--r--muse2/muse/widgets/ttoolbar.cpp24
-rw-r--r--muse2/muse/widgets/ttoolbar.h9
-rw-r--r--muse2/muse/widgets/ttoolbutton.cpp30
-rw-r--r--muse2/muse/widgets/ttoolbutton.h28
-rw-r--r--muse2/muse/widgets/utils.cpp358
-rw-r--r--muse2/muse/widgets/utils.h33
-rw-r--r--muse2/muse/widgets/velocity.cpp46
-rw-r--r--muse2/muse/widgets/velocity.h36
-rw-r--r--muse2/muse/widgets/velocitybase.ui232
-rw-r--r--muse2/muse/widgets/view.cpp514
-rw-r--r--muse2/muse/widgets/view.h108
-rw-r--r--muse2/muse/widgets/vscale.cpp27
-rw-r--r--muse2/muse/widgets/vscale.h29
-rw-r--r--muse2/muse/widgets/wtrackinfobase.ui224
-rw-r--r--muse2/muse/widgets/wtscale.cpp289
-rw-r--r--muse2/muse/widgets/wtscale.h51
-rw-r--r--muse2/muse/xml.cpp733
-rw-r--r--muse2/muse/xml.h95
-rw-r--r--muse2/packaging/Makefile.am5
-rw-r--r--muse2/packaging/Makefile.in488
-rw-r--r--muse2/packaging/muse.desktop9
-rw-r--r--muse2/packaging/muse_icon.pngbin0 -> 7493 bytes
-rwxr-xr-xmuse2/packaging/muse_mdk.spec274
-rw-r--r--muse2/plugins/Makefile.am5
-rw-r--r--muse2/plugins/Makefile.in668
-rw-r--r--muse2/plugins/doublechorus/Makefile.am16
-rw-r--r--muse2/plugins/doublechorus/Makefile.in673
-rw-r--r--muse2/plugins/doublechorus/doublechorus.cpp173
-rw-r--r--muse2/plugins/doublechorus/doublechorusmodel.cpp214
-rw-r--r--muse2/plugins/doublechorus/doublechorusmodel.h72
-rw-r--r--muse2/plugins/doublechorus/simplechorusmodel.cpp157
-rw-r--r--muse2/plugins/doublechorus/simplechorusmodel.h96
-rw-r--r--muse2/plugins/freeverb/Makefile.am17
-rw-r--r--muse2/plugins/freeverb/Makefile.in672
-rw-r--r--muse2/plugins/freeverb/allpass.h50
-rw-r--r--muse2/plugins/freeverb/comb.h66
-rw-r--r--muse2/plugins/freeverb/denormals.h28
-rw-r--r--muse2/plugins/freeverb/freeverb.cpp166
-rw-r--r--muse2/plugins/freeverb/readme.txt147
-rw-r--r--muse2/plugins/freeverb/revmodel.cpp232
-rw-r--r--muse2/plugins/freeverb/revmodel.h79
-rw-r--r--muse2/plugins/freeverb/tuning.h60
-rw-r--r--muse2/plugins/pandelay/Makefile.am16
-rw-r--r--muse2/plugins/pandelay/Makefile.in673
-rw-r--r--muse2/plugins/pandelay/ladspapandelay.cpp100
-rw-r--r--muse2/plugins/pandelay/ladspapandelay.h55
-rw-r--r--muse2/plugins/pandelay/pandelay.cpp170
-rw-r--r--muse2/plugins/pandelay/pandelaymodel.cpp157
-rw-r--r--muse2/plugins/pandelay/pandelaymodel.h93
-rw-r--r--muse2/plugins/plugins-install.am1
-rw-r--r--muse2/qt4migration.log35
-rw-r--r--muse2/share/Makefile.am8
-rw-r--r--muse2/share/Makefile.in670
-rw-r--r--muse2/share/drummaps/AKAI_SG01v_Bank_dr1.map977
-rw-r--r--muse2/share/drummaps/AKAI_SG01v_Bank_dr2.map977
-rw-r--r--muse2/share/drummaps/KURZWEIL_SP2X_Drum_Map_GM_ReMap.map1425
-rw-r--r--muse2/share/drummaps/KURZWEIL_SP2X_Drum_Map_Normal.map1419
-rw-r--r--muse2/share/drummaps/Makefile.am5
-rw-r--r--muse2/share/drummaps/Makefile.in465
-rw-r--r--muse2/share/drummaps/addictive_drums.map1797
-rw-r--r--muse2/share/drummaps/dx200_drum.map131
-rw-r--r--muse2/share/drummaps/sc88-pc1.map329
-rw-r--r--muse2/share/html/COPYING.html353
-rw-r--r--muse2/share/html/Makefile.am5
-rw-r--r--muse2/share/html/Makefile.in465
-rw-r--r--muse2/share/html/button_bar.jpgbin0 -> 13115 bytes
-rw-r--r--muse2/share/html/getting_started.html89
-rw-r--r--muse2/share/html/index.html66
-rw-r--r--muse2/share/html/installation.html64
-rw-r--r--muse2/share/html/invocation.html54
-rw-r--r--muse2/share/html/left_pane.jpgbin0 -> 24599 bytes
-rw-r--r--muse2/share/html/main_window.jpgbin0 -> 75510 bytes
-rw-r--r--muse2/share/html/main_window_track_info.jpgbin0 -> 84636 bytes
-rw-r--r--muse2/share/html/right_pane.jpgbin0 -> 34158 bytes
-rw-r--r--muse2/share/html/styles.css85
-rw-r--r--muse2/share/html/toc_.txt13
-rw-r--r--muse2/share/html/track_info.jpgbin0 -> 14003 bytes
-rw-r--r--muse2/share/html/window_ref.html180
-rw-r--r--muse2/share/instruments/Access_Virus.idf1046
-rw-r--r--muse2/share/instruments/Akai-SG01v.idf282
-rw-r--r--muse2/share/instruments/Alesis-QS-78R.idf674
-rw-r--r--muse2/share/instruments/AlesisQS6.idf655
-rw-r--r--muse2/share/instruments/Emu-4mbgsgmmt-sf.idf440
-rw-r--r--muse2/share/instruments/Hammond_XB-1.idf89
-rw-r--r--muse2/share/instruments/Korg-MS2000R.idf546
-rw-r--r--muse2/share/instruments/Korg-X50.idf1091
-rw-r--r--muse2/share/instruments/Korg-X5DR-PresetA.idf368
-rw-r--r--muse2/share/instruments/Korg-X5DR-PresetB.idf368
-rw-r--r--muse2/share/instruments/Kurzweil-SP2X.idf121
-rw-r--r--muse2/share/instruments/MC303.idf526
-rw-r--r--muse2/share/instruments/MC505.idf554
-rw-r--r--muse2/share/instruments/Makefile.am5
-rw-r--r--muse2/share/instruments/Makefile.in466
-rw-r--r--muse2/share/instruments/Roland-E28.idf309
-rw-r--r--muse2/share/instruments/Roland-SCD70.idf1371
-rw-r--r--muse2/share/instruments/Roland-XP30.idf1591
-rwxr-xr-xmuse2/share/instruments/Roland_FantomXR.idf1387
-rwxr-xr-xmuse2/share/instruments/Roland_SRX-02.idf58
-rwxr-xr-xmuse2/share/instruments/Roland_SRX-09.idf442
-rw-r--r--muse2/share/instruments/Waldorf-Q.idf574
-rw-r--r--muse2/share/instruments/Waldorf-microQ-Factory2000.idf552
-rw-r--r--muse2/share/instruments/Waldorf-microQ-Factory2001.idf552
-rw-r--r--muse2/share/instruments/Waldorf-microQ-Phoenix.idf552
-rw-r--r--muse2/share/instruments/Waldorf-microQ.idf552
-rw-r--r--muse2/share/instruments/Waldorf_Microwave-I.idf142
-rw-r--r--muse2/share/instruments/Yamaha-01v.idf219
-rw-r--r--muse2/share/instruments/Yamaha-Motif-Rack.idf1135
-rw-r--r--muse2/share/instruments/Yamaha-Motif.idf744
-rw-r--r--muse2/share/instruments/Yamaha-P100.idf44
-rw-r--r--muse2/share/instruments/Yamaha-P50m.idf63
-rwxr-xr-xmuse2/share/instruments/Yamaha-PSR275.idf567
-rw-r--r--muse2/share/instruments/Yamaha-PSR530.idf757
-rw-r--r--muse2/share/instruments/Yamaha-S90.idf666
-rw-r--r--muse2/share/instruments/ZynAdd-1_4.idf22
-rw-r--r--muse2/share/instruments/emuproteus2000.idf1081
-rw-r--r--muse2/share/instruments/gm.idf193
-rw-r--r--muse2/share/instruments/gs.idf218
-rw-r--r--muse2/share/instruments/ns5r.idf565
-rw-r--r--muse2/share/instruments/xg.idf606
-rw-r--r--muse2/share/locale/Makefile.am11
-rw-r--r--muse2/share/locale/Makefile.in472
-rw-r--r--muse2/share/locale/muse_de.qmbin0 -> 74548 bytes
-rw-r--r--muse2/share/locale/muse_de.ts5722
-rw-r--r--muse2/share/locale/muse_es.qmbin0 -> 59120 bytes
-rw-r--r--muse2/share/locale/muse_es.ts7146
-rw-r--r--muse2/share/locale/muse_fr.qmbin0 -> 74885 bytes
-rw-r--r--muse2/share/locale/muse_fr.ts5947
-rw-r--r--muse2/share/locale/muse_pl.qmbin0 -> 74886 bytes
-rw-r--r--muse2/share/locale/muse_pl.ts5722
-rw-r--r--muse2/share/locale/muse_ru.qmbin0 -> 72680 bytes
-rw-r--r--muse2/share/locale/muse_ru.ts7466
-rw-r--r--muse2/share/locale/muse_sv_SE.qmbin0 -> 61945 bytes
-rw-r--r--muse2/share/locale/muse_sv_SE.ts8357
-rw-r--r--muse2/share/plugins/1050.ui246
-rw-r--r--muse2/share/plugins/2142.ui520
-rw-r--r--muse2/share/plugins/Makefile.am5
-rw-r--r--muse2/share/plugins/Makefile.in465
-rw-r--r--muse2/share/pybridge/Makefile.am6
-rw-r--r--muse2/share/pybridge/Makefile.in466
-rw-r--r--muse2/share/pybridge/Pyro_NS_URI1
-rw-r--r--muse2/share/pybridge/examples/addpartexample.py29
-rw-r--r--muse2/share/pybridge/examples/addtrack.py33
-rw-r--r--muse2/share/pybridge/examples/ctrlexample.py26
-rw-r--r--muse2/share/pybridge/examples/effecttoggle.py23
-rw-r--r--muse2/share/pybridge/examples/mute.py20
-rw-r--r--muse2/share/pybridge/examples/repeatpart.py61
-rw-r--r--muse2/share/pybridge/examples/setpositionexample.py35
-rw-r--r--muse2/share/pybridge/examples/tempoexample.py6
-rw-r--r--muse2/share/pybridge/examples/trackparamchangeexample.py21
-rw-r--r--muse2/share/pybridge/musepclient.py17
-rw-r--r--muse2/share/pybridge/museplauncher.py257
-rw-r--r--muse2/share/pybridge/parter/main.py26
-rw-r--r--muse2/share/pybridge/parter/parter.py107
-rw-r--r--muse2/share/pybridge/robert.py46
-rwxr-xr-xmuse2/share/scripts/ConstantLength77
-rwxr-xr-xmuse2/share/scripts/DoNothing15
-rwxr-xr-xmuse2/share/scripts/DoubleSpeed24
-rw-r--r--muse2/share/scripts/Makefile.am11
-rw-r--r--muse2/share/scripts/Makefile.in425
-rw-r--r--muse2/share/scripts/README.txt36
-rwxr-xr-xmuse2/share/scripts/RemoveShortEvents79
-rwxr-xr-xmuse2/share/scripts/SwingQuantize1105
-rw-r--r--muse2/share/splash.pngbin0 -> 45958 bytes
-rw-r--r--muse2/share/templates/Makefile.am5
-rw-r--r--muse2/share/templates/Makefile.in465
-rw-r--r--muse2/share/templates/audio.med329
-rw-r--r--muse2/share/templates/default.med150
-rw-r--r--muse2/share/templates/midiGM.med409
-rw-r--r--muse2/share/templates/monorecord.med432
-rw-r--r--muse2/share/templates/synti.med809
-rw-r--r--muse2/share/wallpapers/Makefile.am5
-rw-r--r--muse2/share/wallpapers/Makefile.in465
-rw-r--r--muse2/share/wallpapers/gray.gifbin0 -> 6699 bytes
-rw-r--r--muse2/share/wallpapers/gray_rock.gifbin0 -> 23780 bytes
-rw-r--r--muse2/share/wallpapers/gray_stucco.gifbin0 -> 20903 bytes
-rw-r--r--muse2/share/wallpapers/paper1.jpgbin0 -> 1662 bytes
-rw-r--r--muse2/share/wallpapers/stone1.gifbin0 -> 1252 bytes
-rw-r--r--muse2/synti/Makefile.am19
-rw-r--r--muse2/synti/Makefile.in683
-rw-r--r--muse2/synti/deicsonze/.deps/deicsonze.Plo768
-rw-r--r--muse2/synti/deicsonze/.deps/deicsonzegui.Plo593
-rw-r--r--muse2/synti/deicsonze/.deps/deicsonzegui.Tpo894
-rw-r--r--muse2/synti/deicsonze/.deps/moc_deicsonzegui.Plo514
-rw-r--r--muse2/synti/deicsonze/ARCH_ALIN24941
-rw-r--r--muse2/synti/deicsonze/Makefile683
-rw-r--r--muse2/synti/deicsonze/Makefile.am23
-rw-r--r--muse2/synti/deicsonze/Makefile.in683
-rw-r--r--muse2/synti/deicsonze/README18
-rw-r--r--muse2/synti/deicsonze/TODO13
-rw-r--r--muse2/synti/deicsonze/deicsonze.cpp1658
-rw-r--r--muse2/synti/deicsonze/deicsonze.h462
-rw-r--r--muse2/synti/deicsonze/deicsonzegui.cpp720
-rw-r--r--muse2/synti/deicsonze/deicsonzegui.h191
-rw-r--r--muse2/synti/deicsonze/deicsonzeguibase.h3854
-rw-r--r--muse2/synti/deicsonze/deicsonzeguibase.ui9667
-rw-r--r--muse2/synti/deicsonze/moc_deicsonzegui.cpp304
-rw-r--r--muse2/synti/deicsonze/newpreset.h1162
-rw-r--r--muse2/synti/deicsonze/newpreset.ui402
-rw-r--r--muse2/synti/deicsonze2/.deps/deicsonze.Plo1
-rw-r--r--muse2/synti/deicsonze2/.deps/deicsonzefilter.Plo1
-rw-r--r--muse2/synti/deicsonze2/.deps/deicsonzegui.Plo1
-rw-r--r--muse2/synti/deicsonze2/.deps/deicsonzeplugin.Plo1
-rw-r--r--muse2/synti/deicsonze2/.deps/deicsonzepreset.Plo1
-rw-r--r--muse2/synti/deicsonze2/.deps/moc_deicsonzegui.Plo1
-rw-r--r--muse2/synti/deicsonze2/ARCH_ALIN24945
-rw-r--r--muse2/synti/deicsonze2/CMakeLists.txt59
-rw-r--r--muse2/synti/deicsonze2/Makefile687
-rw-r--r--muse2/synti/deicsonze2/Makefile.am27
-rw-r--r--muse2/synti/deicsonze2/Makefile.in687
-rw-r--r--muse2/synti/deicsonze2/README57
-rw-r--r--muse2/synti/deicsonze2/SutulaBank.dei177644
-rw-r--r--muse2/synti/deicsonze2/TODO13
-rw-r--r--muse2/synti/deicsonze2/deicsonze.cpp4356
-rw-r--r--muse2/synti/deicsonze2/deicsonze.h603
-rw-r--r--muse2/synti/deicsonze2/deicsonzefilter.cpp67
-rw-r--r--muse2/synti/deicsonze2/deicsonzefilter.h59
-rw-r--r--muse2/synti/deicsonze2/deicsonzegui.cpp0
-rw-r--r--muse2/synti/deicsonze2/deicsonzegui.h571
-rw-r--r--muse2/synti/deicsonze2/deicsonzegui.ui10237
-rw-r--r--muse2/synti/deicsonze2/deicsonzeguibase.h312
-rw-r--r--muse2/synti/deicsonze2/deicsonzeplugin.cpp502
-rw-r--r--muse2/synti/deicsonze2/deicsonzeplugin.h40
-rw-r--r--muse2/synti/deicsonze2/deicsonzepreset.cpp1202
-rw-r--r--muse2/synti/deicsonze2/deicsonzepreset.h567
-rw-r--r--muse2/synti/deicsonze2/pics/SHold.fig12
-rw-r--r--muse2/synti/deicsonze2/pics/SHold.pngbin0 -> 394 bytes
-rw-r--r--muse2/synti/deicsonze2/pics/algo1.fig31
-rw-r--r--muse2/synti/deicsonze2/pics/algo1.pngbin0 -> 1010 bytes
-rw-r--r--muse2/synti/deicsonze2/pics/algo2.fig29
-rw-r--r--muse2/synti/deicsonze2/pics/algo2.pngbin0 -> 1840 bytes
-rw-r--r--muse2/synti/deicsonze2/pics/algo3.fig29
-rw-r--r--muse2/synti/deicsonze2/pics/algo3.pngbin0 -> 1841 bytes
-rw-r--r--muse2/synti/deicsonze2/pics/algo4.fig29
-rw-r--r--muse2/synti/deicsonze2/pics/algo4.pngbin0 -> 1952 bytes
-rw-r--r--muse2/synti/deicsonze2/pics/algo5.fig34
-rw-r--r--muse2/synti/deicsonze2/pics/algo5.pngbin0 -> 1542 bytes
-rw-r--r--muse2/synti/deicsonze2/pics/algo6.fig37
-rw-r--r--muse2/synti/deicsonze2/pics/algo6.pngbin0 -> 1672 bytes
-rw-r--r--muse2/synti/deicsonze2/pics/algo7.fig35
-rw-r--r--muse2/synti/deicsonze2/pics/algo7.pngbin0 -> 1623 bytes
-rw-r--r--muse2/synti/deicsonze2/pics/algo8.fig34
-rw-r--r--muse2/synti/deicsonze2/pics/algo8.pngbin0 -> 1631 bytes
-rw-r--r--muse2/synti/deicsonze2/pics/sawUp.fig13
-rw-r--r--muse2/synti/deicsonze2/pics/sawUp.pngbin0 -> 416 bytes
-rw-r--r--muse2/synti/deicsonze2/pics/square.fig14
-rw-r--r--muse2/synti/deicsonze2/pics/square.pngbin0 -> 354 bytes
-rw-r--r--muse2/synti/deicsonze2/pics/triangl.fig13
-rw-r--r--muse2/synti/deicsonze2/pics/triangl.pngbin0 -> 435 bytes
-rw-r--r--muse2/synti/deicsonze2/pics/wave1.fig29
-rw-r--r--muse2/synti/deicsonze2/pics/wave1.gnuplot2
-rw-r--r--muse2/synti/deicsonze2/pics/wave1.pngbin0 -> 569 bytes
-rw-r--r--muse2/synti/deicsonze2/pics/wave2.fig31
-rw-r--r--muse2/synti/deicsonze2/pics/wave2.gnuplot2
-rw-r--r--muse2/synti/deicsonze2/pics/wave2.pngbin0 -> 543 bytes
-rw-r--r--muse2/synti/deicsonze2/pics/wave3.fig29
-rw-r--r--muse2/synti/deicsonze2/pics/wave3.gnuplot2
-rw-r--r--muse2/synti/deicsonze2/pics/wave3.pngbin0 -> 539 bytes
-rw-r--r--muse2/synti/deicsonze2/pics/wave4.fig29
-rw-r--r--muse2/synti/deicsonze2/pics/wave4.gnuplot2
-rw-r--r--muse2/synti/deicsonze2/pics/wave4.pngbin0 -> 532 bytes
-rw-r--r--muse2/synti/deicsonze2/pics/wave5.fig29
-rw-r--r--muse2/synti/deicsonze2/pics/wave5.gnuplot2
-rw-r--r--muse2/synti/deicsonze2/pics/wave5.pngbin0 -> 576 bytes
-rw-r--r--muse2/synti/deicsonze2/pics/wave6.fig29
-rw-r--r--muse2/synti/deicsonze2/pics/wave6.gnuplot2
-rw-r--r--muse2/synti/deicsonze2/pics/wave6.pngbin0 -> 550 bytes
-rw-r--r--muse2/synti/deicsonze2/pics/wave7.fig29
-rw-r--r--muse2/synti/deicsonze2/pics/wave7.gnuplot2
-rw-r--r--muse2/synti/deicsonze2/pics/wave7.pngbin0 -> 596 bytes
-rw-r--r--muse2/synti/deicsonze2/pics/wave8.fig29
-rw-r--r--muse2/synti/deicsonze2/pics/wave8.gnuplot2
-rw-r--r--muse2/synti/deicsonze2/pics/wave8.pngbin0 -> 591 bytes
-rw-r--r--muse2/synti/fluid/Makefile.am16
-rw-r--r--muse2/synti/fluid/Makefile.in649
-rw-r--r--muse2/synti/fluid/fluid.cpp588
-rw-r--r--muse2/synti/fluid/fluid.h84
-rw-r--r--muse2/synti/fluid/fluidgui.cpp82
-rw-r--r--muse2/synti/fluid/fluidgui.h31
-rw-r--r--muse2/synti/fluid/fluidguibase.ui166
-rw-r--r--muse2/synti/fluidsynth/Makefile.am19
-rw-r--r--muse2/synti/fluidsynth/Makefile.in655
-rw-r--r--muse2/synti/fluidsynth/README.txt45
-rw-r--r--muse2/synti/fluidsynth/TODO13
-rw-r--r--muse2/synti/fluidsynth/fluidsynthgui.cpp819
-rw-r--r--muse2/synti/fluidsynth/fluidsynthgui.h225
-rw-r--r--muse2/synti/fluidsynth/fluidsynthguibase.ui632
-rw-r--r--muse2/synti/fluidsynth/fluidsynti.cpp1314
-rw-r--r--muse2/synti/fluidsynth/fluidsynti.h150
-rw-r--r--muse2/synti/libsynti/Makefile.am15
-rw-r--r--muse2/synti/libsynti/Makefile.in602
-rw-r--r--muse2/synti/libsynti/evdata.h66
-rw-r--r--muse2/synti/libsynti/gui.cpp130
-rw-r--r--muse2/synti/libsynti/gui.h72
-rw-r--r--muse2/synti/libsynti/mess.cpp122
-rw-r--r--muse2/synti/libsynti/mess.h97
-rw-r--r--muse2/synti/libsynti/mono.cpp47
-rw-r--r--muse2/synti/libsynti/mono.h47
-rw-r--r--muse2/synti/libsynti/mpevent.cpp22
-rw-r--r--muse2/synti/libsynti/mpevent.h100
-rw-r--r--muse2/synti/libsynti/poly.cpp35
-rw-r--r--muse2/synti/libsynti/poly.h39
-rw-r--r--muse2/synti/organ/Makefile.am15
-rw-r--r--muse2/synti/organ/Makefile.in657
-rw-r--r--muse2/synti/organ/fdialogbuttons.ui136
-rw-r--r--muse2/synti/organ/organ.cpp710
-rw-r--r--muse2/synti/organ/organ.h198
-rw-r--r--muse2/synti/organ/organgui.cpp189
-rw-r--r--muse2/synti/organ/organgui.h43
-rw-r--r--muse2/synti/organ/organguibase.ui1219
-rw-r--r--muse2/synti/s1/Makefile.am13
-rw-r--r--muse2/synti/s1/Makefile.in634
-rw-r--r--muse2/synti/s1/s1.cpp227
-rw-r--r--muse2/synti/simpledrums/COPYING3
-rw-r--r--muse2/synti/simpledrums/Makefile.am20
-rw-r--r--muse2/synti/simpledrums/Makefile.in661
-rw-r--r--muse2/synti/simpledrums/README44
-rw-r--r--muse2/synti/simpledrums/ReleaseNotes.txt21
-rw-r--r--muse2/synti/simpledrums/common.h110
-rw-r--r--muse2/synti/simpledrums/simpledrums.cpp1759
-rw-r--r--muse2/synti/simpledrums/simpledrums.h177
-rw-r--r--muse2/synti/simpledrums/simpledrumsgui.cpp892
-rw-r--r--muse2/synti/simpledrums/simpledrumsgui.h212
-rw-r--r--muse2/synti/simpledrums/simpledrumsguibase.ui27
-rw-r--r--muse2/synti/simpledrums/ssplugin.cpp461
-rw-r--r--muse2/synti/simpledrums/ssplugin.h153
-rw-r--r--muse2/synti/simpledrums/sspluginchooserbase.ui134
-rw-r--r--muse2/synti/simpledrums/ssplugingui.cpp534
-rw-r--r--muse2/synti/simpledrums/ssplugingui.h206
-rw-r--r--muse2/synti/synti-install.am1
-rw-r--r--muse2/synti/vam/COPYING340
-rw-r--r--muse2/synti/vam/ChangeLog16
-rw-r--r--muse2/synti/vam/Makefile.am18
-rw-r--r--muse2/synti/vam/Makefile.in659
-rw-r--r--muse2/synti/vam/README42
-rw-r--r--muse2/synti/vam/TODO3
-rw-r--r--muse2/synti/vam/vam.cpp1050
-rw-r--r--muse2/synti/vam/vam.h38
-rw-r--r--muse2/synti/vam/vamgui.cpp720
-rw-r--r--muse2/synti/vam/vamgui.h82
-rw-r--r--muse2/synti/vam/vamguibase.ui2032
-rw-r--r--muse2/test.med449
-rw-r--r--muse2/testproj.med333
-rw-r--r--muse2/utils/Makefile.am5
-rw-r--r--muse2/utils/Makefile.in420
-rwxr-xr-xmuse2/utils/muse-find-unused-wavs64
-rwxr-xr-xmuse2/utils/muse-song-convert.py740
-rw-r--r--muse2/xpm/Makefile.am1
-rw-r--r--muse2/xpm/Makefile.in415
-rw-r--r--muse2/xpm/addtrack_addmiditrack.xpm76
-rw-r--r--muse2/xpm/addtrack_audiogroup.xpm242
-rw-r--r--muse2/xpm/addtrack_audioinput.xpm32
-rw-r--r--muse2/xpm/addtrack_audiooutput.xpm128
-rw-r--r--muse2/xpm/addtrack_auxsend.xpm95
-rw-r--r--muse2/xpm/addtrack_drumtrack.xpm102
-rw-r--r--muse2/xpm/addtrack_wavetrack.xpm167
-rw-r--r--muse2/xpm/audio_bounce_to_file.xpm24
-rw-r--r--muse2/xpm/audio_bounce_to_track.xpm27
-rw-r--r--muse2/xpm/audio_restartaudio.xpm69
-rw-r--r--muse2/xpm/automation_clear_data.xpm22
-rw-r--r--muse2/xpm/automation_mixer.xpm35
-rw-r--r--muse2/xpm/automation_take_snapshot.xpm144
-rw-r--r--muse2/xpm/back.xpm27
-rw-r--r--muse2/xpm/blacksqcheck.xpm34
-rw-r--r--muse2/xpm/blacksquare.xpm25
-rw-r--r--muse2/xpm/bluedot.xpm34
-rw-r--r--muse2/xpm/bold.xpm16
-rw-r--r--muse2/xpm/bouncetofile.xpm25
-rw-r--r--muse2/xpm/buttondown.xpm27
-rw-r--r--muse2/xpm/cafter.xpm29
-rw-r--r--muse2/xpm/cliplistS.xpm28
-rw-r--r--muse2/xpm/cmark.xpm23
-rw-r--r--muse2/xpm/configure.xpm36
-rw-r--r--muse2/xpm/context_help.xpm32
-rw-r--r--muse2/xpm/ctrl.xpm27
-rw-r--r--muse2/xpm/cut.xpm29
-rw-r--r--muse2/xpm/darkgreendot.xpm21
-rw-r--r--muse2/xpm/darkreddot.xpm17
-rw-r--r--muse2/xpm/darkredled.xpm19
-rw-r--r--muse2/xpm/delete.xpm27
-rw-r--r--muse2/xpm/dot.xpm22
-rw-r--r--muse2/xpm/dot1.xpm22
-rw-r--r--muse2/xpm/doth.xpm22
-rw-r--r--muse2/xpm/down.xpm15
-rw-r--r--muse2/xpm/draw.xpm25
-rw-r--r--muse2/xpm/drumS.xpm30
-rw-r--r--muse2/xpm/edit_drumms.xpm45
-rw-r--r--muse2/xpm/edit_list.xpm31
-rw-r--r--muse2/xpm/edit_mastertrack.xpm38
-rw-r--r--muse2/xpm/edit_midi.xpm26
-rw-r--r--muse2/xpm/edit_pianoroll.xpm28
-rw-r--r--muse2/xpm/edit_score.xpm24
-rw-r--r--muse2/xpm/edit_track_add.xpm24
-rw-r--r--muse2/xpm/edit_track_del.xpm25
-rw-r--r--muse2/xpm/edit_wave.xpm38
-rw-r--r--muse2/xpm/editcopy.xpm102
-rw-r--r--muse2/xpm/editcopyS.xpm26
-rw-r--r--muse2/xpm/editcut.xpm33
-rw-r--r--muse2/xpm/editcutS.xpm24
-rw-r--r--muse2/xpm/editmute.xpm33
-rw-r--r--muse2/xpm/editmuteS.xpm63
-rw-r--r--muse2/xpm/editpaste.xpm210
-rw-r--r--muse2/xpm/editpaste2track.xpm168
-rw-r--r--muse2/xpm/editpaste2trackS.xpm28
-rw-r--r--muse2/xpm/editpasteS.xpm27
-rw-r--r--muse2/xpm/editpasteclone.xpm184
-rw-r--r--muse2/xpm/editpasteclone2track.xpm148
-rw-r--r--muse2/xpm/editpasteclone2trackS.xpm34
-rw-r--r--muse2/xpm/editpastecloneS.xpm34
-rw-r--r--muse2/xpm/exit.xpm29
-rw-r--r--muse2/xpm/exit1.xpm29
-rw-r--r--muse2/xpm/exitS.xpm25
-rw-r--r--muse2/xpm/fforward.xpm17
-rw-r--r--muse2/xpm/filenew.xpm170
-rw-r--r--muse2/xpm/filenewS.xpm29
-rw-r--r--muse2/xpm/fileopen.xpm216
-rw-r--r--muse2/xpm/fileopenS.xpm26
-rw-r--r--muse2/xpm/fileprint.xpm102
-rw-r--r--muse2/xpm/fileprintS.xpm26
-rw-r--r--muse2/xpm/filesave.xpm175
-rw-r--r--muse2/xpm/filesaveS.xpm28
-rw-r--r--muse2/xpm/filesaveasS.xpm27
-rw-r--r--muse2/xpm/find.xpm28
-rw-r--r--muse2/xpm/flag.xpm28
-rw-r--r--muse2/xpm/flagS.xpm19
-rw-r--r--muse2/xpm/fluidsynth-logo-124x45.xpm2124
-rw-r--r--muse2/xpm/fluidsynth_banner_124x45.xpm1899
-rw-r--r--muse2/xpm/forward.xpm28
-rw-r--r--muse2/xpm/frewind.xpm17
-rw-r--r--muse2/xpm/glue.xpm49
-rw-r--r--muse2/xpm/graydot.xpm21
-rw-r--r--muse2/xpm/greendot.xpm25
-rw-r--r--muse2/xpm/gv.xpm23
-rw-r--r--muse2/xpm/home.xpm27
-rw-r--r--muse2/xpm/idea.xpm35
-rw-r--r--muse2/xpm/iiwusynth.xpm1372
-rw-r--r--muse2/xpm/initS.xpm23
-rw-r--r--muse2/xpm/inputpluginS.xpm22
-rw-r--r--muse2/xpm/italic.xpm16
-rw-r--r--muse2/xpm/listS.xpm26
-rw-r--r--muse2/xpm/lmark.xpm23
-rw-r--r--muse2/xpm/localoffS.xpm22
-rw-r--r--muse2/xpm/lock.xpm86
-rw-r--r--muse2/xpm/loop.xpm23
-rw-r--r--muse2/xpm/loop1.xpm39
-rw-r--r--muse2/xpm/master.xpm15
-rw-r--r--muse2/xpm/mastertrackS.xpm25
-rw-r--r--muse2/xpm/mastertrack_graphic.xpm28
-rw-r--r--muse2/xpm/mastertrack_list.xpm27
-rw-r--r--muse2/xpm/meta.xpm27
-rw-r--r--muse2/xpm/midi_edit_instrument.xpm27
-rw-r--r--muse2/xpm/midi_init_instr.xpm28
-rw-r--r--muse2/xpm/midi_inputplugins.xpm33
-rw-r--r--muse2/xpm/midi_inputplugins_midi_input_filter.xpm98
-rw-r--r--muse2/xpm/midi_inputplugins_midi_input_transform.xpm31
-rw-r--r--muse2/xpm/midi_inputplugins_random_rhythm_generator.xpm67
-rw-r--r--muse2/xpm/midi_inputplugins_remote_control.xpm64
-rw-r--r--muse2/xpm/midi_inputplugins_transpose.xpm30
-rw-r--r--muse2/xpm/midi_local_off.xpm105
-rw-r--r--muse2/xpm/midi_plugS.xpm22
-rw-r--r--muse2/xpm/midi_reset_instr.xpm55
-rw-r--r--muse2/xpm/midi_transform.xpm30
-rw-r--r--muse2/xpm/midi_transpose.xpm31
-rw-r--r--muse2/xpm/midiin.xpm23
-rw-r--r--muse2/xpm/miditransformS.xpm22
-rw-r--r--muse2/xpm/miditransposeS.xpm25
-rw-r--r--muse2/xpm/mixerS.xpm21
-rw-r--r--muse2/xpm/mixeraudioS.xpm22
-rw-r--r--muse2/xpm/mono.xpm16
-rw-r--r--muse2/xpm/muse_icon.xpm210
-rw-r--r--muse2/xpm/muse_leftside_logo.xpm1058
-rw-r--r--muse2/xpm/mustangS.xpm23
-rw-r--r--muse2/xpm/mute.xpm18
-rw-r--r--muse2/xpm/mutebutton_off.xpm73
-rw-r--r--muse2/xpm/mutebutton_on.xpm352
-rw-r--r--muse2/xpm/newmutebutton.xpm69
-rw-r--r--muse2/xpm/note.xpm23
-rw-r--r--muse2/xpm/note1.xpm28
-rw-r--r--muse2/xpm/off.xpm25
-rw-r--r--muse2/xpm/pafter.xpm29
-rw-r--r--muse2/xpm/panic.xpm50
-rw-r--r--muse2/xpm/pencil.xpm27
-rw-r--r--muse2/xpm/piano.xpm170
-rw-r--r--muse2/xpm/pianoS.xpm24
-rw-r--r--muse2/xpm/pitch.xpm28
-rw-r--r--muse2/xpm/play.xpm17
-rw-r--r--muse2/xpm/pointer.xpm28
-rw-r--r--muse2/xpm/punchin.xpm27
-rw-r--r--muse2/xpm/punchin1.xpm18
-rw-r--r--muse2/xpm/punchout.xpm24
-rw-r--r--muse2/xpm/punchout1.xpm18
-rw-r--r--muse2/xpm/quant.xpm28
-rw-r--r--muse2/xpm/rec_echo_off.xpm15
-rw-r--r--muse2/xpm/rec_echo_on.xpm16
-rw-r--r--muse2/xpm/record.xpm160
-rw-r--r--muse2/xpm/record1.xpm21
-rw-r--r--muse2/xpm/record_off.xpm150
-rw-r--r--muse2/xpm/record_on.xpm160
-rw-r--r--muse2/xpm/recordoffbutton.xpm206
-rw-r--r--muse2/xpm/recordonbutton.xpm85
-rw-r--r--muse2/xpm/reddot.xpm17
-rw-r--r--muse2/xpm/redled.xpm18
-rw-r--r--muse2/xpm/redo.xpm92
-rw-r--r--muse2/xpm/redoS.xpm25
-rw-r--r--muse2/xpm/resetS.xpm22
-rw-r--r--muse2/xpm/rmark.xpm23
-rw-r--r--muse2/xpm/score.xpm170
-rw-r--r--muse2/xpm/scoreS.xpm23
-rw-r--r--muse2/xpm/select.xpm21
-rw-r--r--muse2/xpm/select_all.xpm21
-rw-r--r--muse2/xpm/select_all_parts_on_track.xpm39
-rw-r--r--muse2/xpm/select_deselect_all.xpm22
-rw-r--r--muse2/xpm/select_inside_loop.xpm21
-rw-r--r--muse2/xpm/select_invert_selection.xpm21
-rw-r--r--muse2/xpm/select_outside_loop.xpm21
-rw-r--r--muse2/xpm/settings_appearance_settings.xpm66
-rw-r--r--muse2/xpm/settings_configureshortcuts.xpm36
-rw-r--r--muse2/xpm/settings_follow_song.xpm30
-rw-r--r--muse2/xpm/settings_globalsettings.xpm89
-rw-r--r--muse2/xpm/settings_metronome.xpm99
-rw-r--r--muse2/xpm/settings_midifileexport.xpm30
-rw-r--r--muse2/xpm/settings_midiport_softsynths.xpm29
-rw-r--r--muse2/xpm/settings_midisync.xpm53
-rw-r--r--muse2/xpm/solobutton.xpm39
-rw-r--r--muse2/xpm/solobutton_off.xpm103
-rw-r--r--muse2/xpm/solobutton_off_blksq.xpm98
-rw-r--r--muse2/xpm/solobutton_on.xpm300
-rw-r--r--muse2/xpm/solobutton_on_blksq.xpm273
-rw-r--r--muse2/xpm/speaker.xpm23
-rw-r--r--muse2/xpm/start.xpm17
-rw-r--r--muse2/xpm/steprec.xpm24
-rw-r--r--muse2/xpm/stereo.xpm14
-rw-r--r--muse2/xpm/stick.xpm33
-rw-r--r--muse2/xpm/stop.xpm17
-rw-r--r--muse2/xpm/synth.xpm88
-rw-r--r--muse2/xpm/sysex.xpm27
-rw-r--r--muse2/xpm/toc.xpm27
-rw-r--r--muse2/xpm/track_add.xpm23
-rw-r--r--muse2/xpm/track_comment.xpm47
-rw-r--r--muse2/xpm/track_delete.xpm23
-rw-r--r--muse2/xpm/underlined.xpm16
-rw-r--r--muse2/xpm/undo.xpm93
-rw-r--r--muse2/xpm/undoS.xpm25
-rw-r--r--muse2/xpm/up.xpm15
-rw-r--r--muse2/xpm/view_bigtime_window.xpm22
-rw-r--r--muse2/xpm/view_cliplist.xpm32
-rw-r--r--muse2/xpm/view_marker.xpm37
-rw-r--r--muse2/xpm/view_mixer.xpm26
-rw-r--r--muse2/xpm/view_transport_window.xpm24
-rw-r--r--muse2/xpm/wave.xpm33
1051 files changed, 677226 insertions, 0 deletions
diff --git a/muse2/.muse.prcs_aux b/muse2/.muse.prcs_aux
new file mode 100644
index 00000000..1ed7cbea
--- /dev/null
+++ b/muse2/.muse.prcs_aux
@@ -0,0 +1,635 @@
+;; This file is automatically generated, editing may cause PRCS to do
+;; REALLY bad things.
+(Created-By-Prcs-Version 1 2 15)
+(doc/Makefile.am 273 1066299123 x/21_Makefile.a 1.1)
+(muse/key.h 1494 1066299123 v/3_key.h 1.1)
+(xpm/cmark.xpm 480 1066299123 w/45_cmark.xpm 1.1)
+(muse/mplugins/midifilterimpl.h 3205 1066299123 s/27_midifilter 1.1)
+(xpm/midiin.xpm 482 1066299123 v/23_midiin.xpm 1.1)
+(muse/patchbay/patchbaybase.ui 962 1066299123 u/4_patchbayba 1.1)
+(xpm/punchout1.xpm 295 1066299123 x/6_punchout1. 1.1)
+(muse/widgets/ttoolbar.h 303 1066299123 p/18_ttoolbar.h 1.1)
+(share/html/styles.css 1253 1066299123 n/32_styles.css 1.1)
+(muse/widgets/audioconf.h 848 1067279329 p/1_audioconf. 1.2)
+(muse/device.h 1198 1066299123 r/40_device.h 1.1)
+(muse/master/lmaster.h 1192 1066299123 s/45_lmaster.h 1.1)
+(xpm/iiwusynth.xpm 32583 1066299123 x/0_iiwusynth. 1.1)
+(xpm/editpasteS.xpm 502 1066299123 v/24_editpasteS 1.1)
+(muse/widgets/drange.h 2072 1066299123 q/3_drange.h 1.1)
+(muse/widgets/gensetbase.ui 18106 1066299123 q/19_gensetbase 1.1)
+(muse/track.h 7952 1066299123 t/1_track.h 1.1)
+(README.ladspaguis 1185 1066299123 l/49_README.lad 1.1)
+(muse/widgets/vscale.cpp 711 1066299123 q/7_vscale.cpp 1.1)
+(muse/instruments/editinstrument.cpp 2554 1066299123 r/36_editinstru 1.1)
+(muse/widgets/appearancebase.h 3596 1067279329 q/45_appearance 1.2)
+(muse/widgets/view.cpp 12465 1066299123 o/17_view.cpp 1.1)
+(muse/driver/alsamidi.h 1200 1067279329 t/13_alsamidi.h 1.3)
+(README 3542 1066299123 l/43_README 1.1)
+(xpm/fileopenS.xpm 486 1066299123 w/46_fileopenS. 1.1)
+(xpm/filenew.xpm 3437 1066299123 w/38_filenew.xp 1.1)
+(muse/mixer/amixer.cpp 30778 1066299123 u/40_amixer.cpp 1.1)
+(muse/TODO 1818 1067279329 x/45_TODO 1.2)
+(muse/mtc.h 1412 1066299123 u/29_mtc.h 1.1)
+(xpm/undoS.xpm 467 1066299123 w/13_undoS.xpm 1.1)
+(muse/audioprefetch.cpp 4567 1066299123 u/22_audioprefe 1.1)
+(muse/midiedit/quantconfig.h 706 1066299123 t/35_quantconfi 1.1)
+(muse/audio.h 6876 1067279329 r/15_audio.h 1.2)
+(muse/widgets/musewidgetsplug.cpp 11764 1066299123 q/33_musewidget 1.1)
+(muse/icons.cpp 9264 1066299123 r/41_icons.cpp 1.1)
+(muse/widgets/pitchedit.cpp 1145 1066299123 r/1_pitchedit. 1.1)
+(muse/waveedit/waveedit.h 1571 1066299123 s/32_waveedit.h 1.1)
+(muse/midieditor.h 1990 1066299123 u/15_midieditor 1.1)
+(share/html/toc_.txt 483 1066299123 n/36_toc_.txt 1.1)
+(muse/midiedit/quantconfig.cpp 2133 1066299123 t/36_quantconfi 1.1)
+(xpm/pianoS.xpm 423 1066299123 v/44_pianoS.xpm 1.1)
+(xpm/delete.xpm 527 1066299123 v/43_delete.xpm 1.1)
+(muse/mpevent.cpp 3183 1067279329 t/49_mpevent.cp 1.3)
+(xpm/find.xpm 647 1066299123 w/31_find.xpm 1.1)
+(muse/widgets/intlabel.h 1141 1066299123 o/36_intlabel.h 1.1)
+(muse/widgets/bigtime.h 923 1066299123 q/22_bigtime.h 1.1)
+(muse/widgets/synthconfigbase.h 1278 1067279329 q/16_synthconfi 1.2)
+(plugins/freeverb/revmodel.cpp 6203 1066299123 m/16_revmodel.c 1.1)
+(muse/widgets/swidget.cpp 536 1066299123 r/8_swidget.cp 1.1)
+(muse/widgets/spinboxFP.h 1000 1066299123 p/3_spinboxFP. 1.1)
+(muse/widgets/pitchedit.h 784 1066299123 q/43_pitchedit. 1.1)
+(SECURITY 9122 1066299123 l/45_SECURITY 1.1)
+(muse/widgets/gatetime.h 887 1066299123 q/40_gatetime.h 1.1)
+(m4/alsa.m4 4397 1066299123 x/23_alsa.m4 1.1)
+(muse/mplugins/midifilter.ui 35725 1066299123 s/11_midifilter 1.1)
+(share/html/index.html 1318 1066299123 n/40_index.html 1.1)
+(muse/mixer/panknob.h 694 1066299123 u/38_panknob.h 1.1)
+(muse/muse.log 49598 1066299123 u/1_muse.log 1.1)
+(muse/widgets/posedit.cpp 25081 1066299123 o/43_posedit.cp 1.1)
+(xpm/editmuteS.xpm 456 1066299123 v/22_editmuteS. 1.1)
+(muse/song.h 13368 1067279329 r/49_song.h 1.2)
+(muse/audio.cpp 21654 1067279329 u/9_audio.cpp 1.3)
+(muse/marker/markerview.cpp 13611 1066299123 s/50_markerview 1.1)
+(plugins/freeverb/freeverb.cpp 4635 1066299123 m/14_freeverb.c 1.1)
+(share/plugins/1050.ui 7059 1066299123 n/0_1050.ui 1.1)
+(muse/tempo.h 2528 1066299123 t/51_tempo.h 1.1)
+(xpm/rmark.xpm 480 1066299123 v/31_rmark.xpm 1.1)
+(grepmidi/grepmidi.cpp 11122 1066299123 m/6_grepmidi.c 1.1)
+(muse/ctrl/ctrlpanel.cpp 5038 1066299123 v/19_ctrlpanel. 1.1)
+(demos/Makefile.am 23 1066299123 n/45_Makefile.a 1.1)
+(share/html/window_ref.html 5372 1066299123 n/41_window_ref 1.1)
+(lib/synthi/Makefile.am 552 1066299123 x/18_Makefile.a 1.1)
+(muse/widgets/ctrlcombo.cpp 2921 1066299123 o/38_ctrlcombo. 1.1)
+(muse/widgets/fdialogbuttons.ui 17795 1066299123 q/26_fdialogbut 1.1)
+(muse/track.cpp 14088 1066299123 o/6_track.cpp 1.1)
+(muse/widgets/scldraw.cpp 20724 1066299123 q/21_scldraw.cp 1.1)
+(muse/driver/midiserial.h 2976 1066299123 t/9_midiserial 1.1)
+(muse/widgets/mktest 152 1066299123 p/23_mktest 1.1)
+(xpm/forward.xpm 559 1066299123 w/23_forward.xp 1.1)
+(muse/driver/jackaudio.h 1538 1067279329 t/21_jackaudio. 1.2)
+(muse/widgets/spinboxFP.cpp 2265 1066299123 o/31_spinboxFP. 1.1)
+(synti/vam/fdialogbuttons.h 1108 1066299123 m/43_fdialogbut 1.1)
+(muse/widgets/mixdowndialogbase.ui 7951 1066299123 r/6_mixdowndia 1.1)
+(xpm/flag.xpm 672 1066299123 w/6_flag.xpm 1.1)
+(muse/cliplist/cliplist.h 1121 1066299123 o/2_cliplist.h 1.1)
+(synti/s1/s1.cpp 7307 1066299123 m/50_s1.cpp 1.1)
+(muse/widgets/comboQuant.h 764 1066299123 q/39_comboQuant 1.1)
+(muse/widgets/sliderbase.h 2580 1066299123 o/19_sliderbase 1.1)
+(muse/globals.h 3964 1067279329 r/16_globals.h 1.2)
+(muse/widgets/commentbase.h 991 1067279329 r/10_commentbas 1.2)
+(muse/widgets/filedialog.cpp 12014 1066299123 o/13_filedialog 1.1)
+(xpm/filesave.xpm 3518 1066299123 w/37_filesave.x 1.1)
+(muse/app.cpp 89316 1067279329 r/26_app.cpp 1.2)
+(muse/widgets/ctrlcombo.h 486 1066299123 q/38_ctrlcombo. 1.1)
+(xpm/toc.xpm 537 1066299123 w/20_toc.xpm 1.1)
+(muse/arranger/pcanvas.cpp 46470 1066299123 r/24_pcanvas.cp 1.1)
+(xpm/italic.xpm 253 1066299123 v/26_italic.xpm 1.1)
+(muse/synthconfig.cpp 5325 1066299123 u/11_synthconfi 1.1)
+(muse/driver/midirawin.h 1176 1066299123 t/10_midirawin. 1.1)
+(muse/widgets/utils.h 641 1066299123 o/45_utils.h 1.1)
+(muse/mixer/volslider.h 735 1066299123 u/34_volslider. 1.1)
+(muse/master/tscale.h 795 1066299123 s/46_tscale.h 1.1)
+(muse/cobject.h 1713 1066299123 t/3_cobject.h 1.1)
+(synti/s1/Makefile.am 192 1066299123 m/51_Makefile.a 1.1)
+(muse/song.cpp 39275 1067279329 v/5_song.cpp 1.2)
+(muse/midiedit/dlist.cpp 15115 1066299123 t/32_dlist.cpp 1.1)
+(muse/waveedit/Makefile.am 259 1066299123 s/29_Makefile.a 1.1)
+(xpm/recordoffbutton.xpm 4021 1066299123 v/37_recordoffb 1.1)
+(muse/midiedit/drumedit.cpp 27725 1066299123 t/40_drumedit.c 1.1)
+(synti/fluid/fluidgui.cpp 3846 1066299123 m/30_fluidgui.c 1.1)
+(xpm/play.xpm 308 1066299123 v/49_play.xpm 1.1)
+(muse/liste/editctrlbase.ui 9574 1066299123 v/2_editctrlba 1.1)
+(muse/thread.cpp 9706 1067279329 o/3_thread.cpp 1.2)
+(synti/fluid/Makefile.am 448 1066299123 m/33_Makefile.a 1.1)
+(muse/widgets/ttoolbar.cpp 686 1066299123 p/46_ttoolbar.c 1.1)
+(muse/widgets/genset.cpp 3074 1066299123 p/22_genset.cpp 1.1)
+(xpm/stick.xpm 238 1066299123 v/51_stick.xpm 1.1)
+(README.de 3499 1066299123 l/44_README.de 1.1)
+(xpm/record1.xpm 379 1066299123 w/26_record1.xp 1.1)
+(muse/widgets/editmetadialogbase.h 1491 1067279329 p/7_editmetadi 1.2)
+(xpm/recordonbutton.xpm 1539 1066299123 w/5_recordonbu 1.1)
+(synti/fluid/fluidgui.h 726 1066299123 m/36_fluidgui.h 1.1)
+(muse/evdata.h 1619 1066299123 x/42_evdata.h 1.1)
+(muse/widgets/ctrlcombo.cw 981 1066299123 o/34_ctrlcombo. 1.1)
+(muse/widgets/scldiv.h 1792 1066299123 q/2_scldiv.h 1.1)
+(muse/midiedit/drumedit.h 3237 1066299123 t/28_drumedit.h 1.1)
+(xpm/loop.xpm 636 1066299123 v/35_loop.xpm 1.1)
+(muse/widgets/midisync.ui 27725 1066299123 q/5_midisync.u 1.1)
+(synti/organ/Makefile.am 673 1066299123 m/24_Makefile.a 1.1)
+(muse/widgets/editmetadialogbase.ui 12117 1066299123 q/11_editmetadi 1.1)
+(synti/organ/fdialogbuttons.h 1108 1067279329 m/25_fdialogbut 1.2)
+(muse/master/tscale.cpp 1533 1066299123 s/41_tscale.cpp 1.1)
+(m4/docbook.m4 2575 1066299123 x/24_docbook.m4 1.1)
+(xpm/redo.xpm 1634 1066299123 v/27_redo.xpm 1.1)
+(muse/debug.h 1350 1066299123 v/12_debug.h 1.1)
+(muse/midiedit/pianoroll.h 3107 1066299123 t/43_pianoroll. 1.1)
+(share/locale/muse_es.qm 75220 1066299123 n/20_muse_es.qm 1.1)
+(muse/value.cpp 1261 1066299123 r/51_value.cpp 1.1)
+(share/Makefile.am 67 1066299123 n/23_Makefile.a 1.1)
+(muse/widgets/knob.h 1460 1066299123 p/26_knob.h 1.1)
+(muse/midiedit/drummap.h 1197 1066299123 t/27_drummap.h 1.1)
+(muse/mplugins/random.cpp 13630 1066299123 s/28_random.cpp 1.1)
+(muse/midiseq.h 2200 1066299123 x/34_midiseq.h 1.1)
+(muse/event.cpp 1240 1066299123 t/44_event.cpp 1.1)
+(muse/widgets/sigscale.h 1146 1066299123 o/50_sigscale.h 1.1)
+(xpm/filesaveS.xpm 516 1066299123 v/28_filesaveS. 1.1)
+(muse/widgets/gatetimebase.h 1420 1067279329 q/48_gatetimeba 1.2)
+(muse/arranger/tlist.cpp 35397 1066299123 r/19_tlist.cpp 1.1)
+(m4/aclocal-include.m4 372 1066299123 x/26_aclocal-in 1.1)
+(muse/liste/editctrlbase.h 1330 1067279329 u/49_editctrlba 1.2)
+(muse/midiedit/ecanvas.h 1935 1066299123 t/34_ecanvas.h 1.1)
+(muse/arranger/arranger.cpp 39540 1067279329 r/25_arranger.c 1.2)
+(share/plugins/Makefile.am 110 1066299123 n/1_Makefile.a 1.1)
+(xpm/frewind.xpm 372 1066299123 v/32_frewind.xp 1.1)
+(muse/mixer/audionodebutton.h 794 1066299123 u/44_audionodeb 1.1)
+(configure.ac 9865 1066299123 m/1_configure. 1.1)
+(share/locale/muse_ru.ts 171552 1066299123 n/15_muse_ru.ts 1.1)
+(Doxyfile 5894 1066299123 x/28_Doxyfile 1.1)
+(synti/vam/COPYING 17983 1066299123 m/38_COPYING 1.1)
+(muse/marker/Makefile.am 233 1066299123 s/48_Makefile.a 1.1)
+(muse/mixer/panknob.cpp 898 1066299123 u/39_panknob.cp 1.1)
+(xpm/cafter.xpm 661 1066299123 w/4_cafter.xpm 1.1)
+(muse/app.h 7321 1067279329 v/4_app.h 1.2)
+(muse/widgets/doublelabel.cpp 3441 1066299123 p/39_doublelabe 1.1)
+(muse/mplugins/mittranspose.h 1647 1066299123 s/24_mittranspo 1.1)
+(synti/organ/organgui.h 1777 1066299123 m/26_organgui.h 1.1)
+(share/instruments/gs.idf 11055 1066299123 x/30_gs.idf 1.1)
+(muse/ctrl/ctrledit.h 1300 1066299123 v/16_ctrledit.h 1.1)
+(muse/widgets/nentry.cpp 10511 1066299123 p/8_nentry.cpp 1.1)
+(muse/widgets/midirawbase.h 1792 1067279329 q/4_midirawbas 1.2)
+(xpm/stop.xpm 308 1066299123 v/33_stop.xpm 1.1)
+(muse/driver/midirawdev.h 1670 1066305474 t/11_midirawdev 1.2)
+(muse/driver/alsamidi.cpp 22045 1067279329 t/12_alsamidi.c 1.3)
+(m4/Makefile.am 29 1066299123 x/25_Makefile.a 1.1)
+(muse/undo.cpp 12199 1066299123 v/11_undo.cpp 1.1)
+(muse/globaldefs.h 471 1066299123 u/18_globaldefs 1.1)
+(muse/instruments/editinstrumentbase.h 3068 1067279329 r/39_editinstru 1.2)
+(muse/plugin.cpp 39878 1066299123 x/43_plugin.cpp 1.1)
+(muse/widgets/transformbase.ui 45821 1066299123 p/10_transformb 1.1)
+(muse/midiedit/cmd.h 583 1066299123 t/42_cmd.h 1.1)
+(doc/muse.sgm 14762 1066299123 x/22_muse.sgm 1.1)
+(xpm/mute.xpm 391 1066299123 w/29_mute.xpm 1.1)
+(muse/marker/markerview.h 1926 1066299123 s/51_markerview 1.1)
+(muse/mplugins/midifilterimpl.cpp 5278 1066299123 s/7_midifilter 1.1)
+(muse/widgets/sliderbase.cpp 15116 1066299123 p/21_sliderbase 1.1)
+(muse/widgets/action.h 775 1066299123 p/15_action.h 1.1)
+(muse/widgets/metronome.h 866 1066299123 q/14_metronome. 1.1)
+(muse/midievent.cpp 5645 1067279329 v/10_midievent. 1.2)
+(muse/widgets/slider.h 2686 1066299123 p/13_slider.h 1.1)
+(muse/liste/listedit.cpp 21988 1067279329 v/1_listedit.c 1.2)
+(muse/widgets/knob.cpp 11241 1066299123 q/51_knob.cpp 1.1)
+(plugins/plugins-install.am 33 1066299123 m/18_plugins-in 1.1)
+(plugins/freeverb/revmodel.h 2084 1066299123 m/11_revmodel.h 1.1)
+(muse/mixer/meter.cpp 3599 1066299123 u/31_meter.cpp 1.1)
+(share/locale/muse_fr.ts 168370 1066299123 n/17_muse_fr.ts 1.1)
+(muse/widgets/tools.cpp 4542 1066299123 q/28_tools.cpp 1.1)
+(muse/widgets/editctrl7dialogbase.ui 8089 1066299123 o/47_editctrl7d 1.1)
+(muse/widgets/dimap.cpp 8580 1066299123 o/10_dimap.cpp 1.1)
+(lib/plugins/Makefile.am 555 1066299123 x/17_Makefile.a 1.1)
+(muse/arranger/arranger.h 4269 1067279329 r/20_arranger.h 1.2)
+(xpm/dot.xpm 443 1066299123 x/3_dot.xpm 1.1)
+(muse/widgets/synthwizardbase.h 1340 1067279329 x/37_synthwizar 1.2)
+(xpm/graydot.xpm 379 1066299123 v/34_graydot.xp 1.1)
+(plugins/Makefile.am 85 1066299123 m/17_Makefile.a 1.1)
+(muse/mididev.h 2832 1066305474 x/35_mididev.h 1.2)
+(muse/widgets/dentry.cpp 5021 1066299123 q/36_dentry.cpp 1.1)
+(muse/transport.h 2902 1066299123 r/12_transport. 1.1)
+(xpm/editcut.xpm 751 1066299123 w/43_editcut.xp 1.1)
+(muse/widgets/synthconfigbase.ui 8988 1066299123 r/7_synthconfi 1.1)
+(synti/organ/organ.cpp 19957 1066299123 m/21_organ.cpp 1.1)
+(muse/widgets/mittransposebase.h 1111 1067279329 o/24_mittranspo 1.2)
+(muse/widgets/wtrackinfobase.ui 5407 1066299123 q/6_wtrackinfo 1.1)
+(share/wallpapers/Makefile.am 126 1066299123 n/25_Makefile.a 1.1)
+(xpm/home.xpm 541 1066299123 w/25_home.xpm 1.1)
+(README.instruments 3326 1066299123 l/51_README.ins 1.1)
+(muse/widgets/filedialog.h 2272 1066299123 q/30_filedialog 1.1)
+(muse/midiedit/drummap.cpp 21076 1066299123 t/24_drummap.cp 1.1)
+(muse/widgets/dimap.h 1569 1066299123 r/0_dimap.h 1.1)
+(xpm/master.xpm 224 1066299123 x/13_master.xpm 1.1)
+(xpm/filenewS.xpm 531 1066299123 v/38_filenewS.x 1.1)
+(xpm/down.xpm 253 1066299123 x/2_down.xpm 1.1)
+(share/locale/muse_sv_SE.qm 51900 1066299123 n/13_muse_sv_SE 1.1)
+(muse/widgets/velocitybase.ui 8434 1066299123 p/45_velocityba 1.1)
+(synti/vam/vamguibase.h 4143 1066299123 m/45_vamguibase 1.1)
+(muse/widgets/audioconfbase.h 1358 1067279329 p/16_audioconfb 1.2)
+(muse/mixer/dot.xpm 443 1066299123 u/45_dot.xpm 1.1)
+(muse/eventlist.cpp 4310 1066299123 u/24_eventlist. 1.1)
+(muse/widgets/sigedit.cpp 20088 1066299123 p/29_sigedit.cp 1.1)
+(muse/widgets/hitscale.cpp 3315 1066299123 o/20_hitscale.c 1.1)
+(muse/widgets/mlabel.h 920 1066299123 o/30_mlabel.h 1.1)
+(synti/vam/vam.cpp 19461 1066299123 m/41_vam.cpp 1.1)
+(muse/mplugins/rhythmbase.ui 42686 1066299123 s/10_rhythmbase 1.1)
+(muse/ctrl/ctrlcanvas.cpp 28582 1066299123 v/13_ctrlcanvas 1.1)
+(share/html/installation.html 2122 1066299123 n/42_installati 1.1)
+(muse/mplugins/mrconfigbase.ui 7475 1066299123 s/17_mrconfigba 1.1)
+(doc/midieditfunctions.png 3903 1066299123 x/20_midieditfu 1.1)
+(muse/driver/midiserial.cpp 11658 1066299123 t/18_midiserial 1.1)
+(share/html/invocation.html 1568 1066299123 n/30_invocation 1.1)
+(xpm/piano.xpm 3435 1066299123 w/39_piano.xpm 1.1)
+(muse/widgets/midisync.h 2297 1067279329 q/46_midisync.h 1.2)
+(README.shortcuts 3250 1066299123 l/46_README.sho 1.1)
+(muse/widgets/mixdowndialog.cpp 3489 1066299123 o/39_mixdowndia 1.1)
+(muse/widgets/canvas.cpp 30164 1066299123 o/51_canvas.cpp 1.1)
+(muse/event.h 1089 1066299123 t/47_event.h 1.1)
+(share/html/getting_started.html 3361 1066299123 n/39_getting_st 1.1)
+(share/wallpapers/gray_stucco.gif 20903 1066299123 n/28_gray_stucc 1.1)
+(share/drummaps/sc88-pc1.map 6911 1066299123 n/11_sc88-pc1.m 1.1)
+(plugins/freeverb/readme.txt 7127 1066299123 m/10_readme.txt 1.1)
+(muse/widgets/editsysexdialogbase.ui 10638 1066299123 q/8_editsysexd 1.1)
+(muse/midiedit/Makefile.am 563 1066299123 t/31_Makefile.a 1.1)
+(muse/widgets/Makefile.am 5932 1066299123 p/35_Makefile.a 1.1)
+(share/locale/muse_de.ts 171803 1066299123 n/21_muse_de.ts 1.1)
+(muse/midiseq.cpp 15240 1067279329 x/44_midiseq.cp 1.2)
+(muse/widgets/sigscale.cpp 3855 1066299123 q/12_sigscale.c 1.1)
+(synti/fluid/synth.cpp 14235 1066299123 m/32_synth.cpp 1.1)
+(muse/instruments/midictrledit.cpp 14341 1066299123 r/32_midictrled 1.1)
+(plugins/freeverb/tuning.h 1911 1066299123 m/9_tuning.h 1.1)
+(muse/widgets/mmath.h 1435 1066299123 p/41_mmath.h 1.1)
+(xpm/panic.xpm 510 1066299123 w/34_panic.xpm 1.1)
+(muse/widgets/metronomebase.h 2038 1067279329 q/29_metronomeb 1.2)
+(aclocal.m4 166531 1066299123 m/5_aclocal.m4 1.1)
+(muse/widgets/intlabel.cpp 3060 1066299123 p/36_intlabel.c 1.1)
+(synti/synti-install.am 31 1066299123 m/20_synti-inst 1.1)
+(Makefile.am 586 1066299123 l/50_Makefile.a 1.1)
+(muse/patchbay/patchbay.h 263 1066299123 u/5_patchbay.h 1.1)
+(muse/cliplist/Makefile.am 215 1066299123 o/1_Makefile.a 1.1)
+(xpm/glue.xpm 691 1066299123 w/16_glue.xpm 1.1)
+(muse/widgets/sigedit.h 1862 1066299123 o/35_sigedit.h 1.1)
+(muse/make.inc 3673 1066299123 u/7_make.inc 1.1)
+(muse/conf.h 1128 1066299123 t/23_conf.h 1.1)
+(share/instruments/Yamaha-S90.idf 45027 1066299123 n/8_Yamaha-S90 1.1)
+(muse/importmidi.cpp 11582 1067279329 x/32_importmidi 1.2)
+(xpm/reddot.xpm 277 1066299123 w/32_reddot.xpm 1.1)
+(xpm/editcutS.xpm 455 1066299123 w/8_editcutS.x 1.1)
+(muse/master/masteredit.cpp 13002 1066299123 s/39_masteredit 1.1)
+(muse/audioprefetch.h 1005 1066299123 t/48_audioprefe 1.1)
+(muse/driver/jack.cpp 10087 1067279329 t/15_jack.cpp 1.2)
+(muse/undo.h 1932 1066299123 r/45_undo.h 1.1)
+(muse/widgets/mtrackinfobase.ui 23665 1067279329 q/13_mtrackinfo 1.2)
+(muse/sync.cpp 12413 1066299123 s/38_sync.cpp 1.1)
+(xpm/doth.xpm 444 1066299123 x/5_doth.xpm 1.1)
+(synti/fluid/synth.h 2262 1066299123 m/34_synth.h 1.1)
+(muse/instruments/ccontrolbase.h 1982 1067279329 r/30_ccontrolba 1.2)
+(muse/help.cpp 1220 1066299123 n/51_help.cpp 1.1)
+(plugins/freeverb/Makefile.am 369 1066299123 m/12_Makefile.a 1.1)
+(muse/widgets/synthwizardbase.ui 10097 1066299123 x/38_synthwizar 1.1)
+(xpm/darkgreendot.xpm 384 1066299123 w/30_darkgreend 1.1)
+(xpm/off.xpm 465 1066299123 w/7_off.xpm 1.1)
+(share/locale/muse_sv_SE.ts 169707 1066299123 n/12_muse_sv_SE 1.1)
+(muse/mixer/mixer.cpp 10690 1066299123 u/32_mixer.cpp 1.1)
+(muse/midieditor.cpp 6171 1066299123 s/34_midieditor 1.1)
+(xpm/punchout.xpm 523 1066299123 w/33_punchout.x 1.1)
+(muse/mplugins/Makefile.am 547 1066299123 s/20_Makefile.a 1.1)
+(xpm/editmute.xpm 752 1066299123 w/9_editmute.x 1.1)
+(muse/sig.cpp 12854 1066299123 u/14_sig.cpp 1.1)
+(share/instruments/Roland-XP30.idf 121905 1066299123 n/4_Roland-XP3 1.1)
+(muse/midiedit/piano.h 1264 1066299123 t/26_piano.h 1.1)
+(muse/widgets/wtscale.h 1200 1066299123 p/42_wtscale.h 1.1)
+(muse/wave.h 4076 1066299123 r/42_wave.h 1.1)
+(muse/liste/Makefile.am 275 1066299123 u/51_Makefile.a 1.1)
+(muse/appearance.cpp 11094 1066299123 t/50_appearance 1.1)
+(share/html/COPYING.html 18292 1066299123 n/34_COPYING.ht 1.1)
+(muse/icons.h 2867 1066299123 r/28_icons.h 1.1)
+(muse/widgets/header.cpp 1982 1066299123 o/22_header.cpp 1.1)
+(muse/midifile.h 2221 1067279329 x/33_midifile.h 1.2)
+(m4/qt.m4 5988 1066299123 x/27_qt.m4 1.1)
+(muse/driver/alsaaudio.h 1984 1067279329 t/17_alsaaudio. 1.2)
+(xpm/editcopy.xpm 1788 1066299123 v/48_editcopy.x 1.1)
+(muse/widgets/section.h 414 1066299123 r/9_section.h 1.1)
+(muse/mplugins/mrconfigbase.h 1270 1067279329 s/23_mrconfigba 1.2)
+(README.CVS 62 1066299123 l/47_README.CVS 1.1)
+(share/instruments/Yamaha-P50m.idf 4192 1066299123 n/2_Yamaha-P50 1.1)
+(share/drummaps/Makefile.am 101 1066299123 n/10_Makefile.a 1.1)
+(muse/widgets/wtrackinfobase.h 1153 1067279329 p/5_wtrackinfo 1.2)
+(muse/midiedit/dlist.h 1731 1066299123 t/41_dlist.h 1.1)
+(muse/widgets/scldraw.h 2157 1066299123 o/18_scldraw.h 1.1)
+(muse/tempo.cpp 11951 1066299123 n/49_tempo.cpp 1.1)
+(muse/instruments/minstrument.h 2995 1067279329 r/33_minstrumen 1.2)
+(xpm/bold.xpm 251 1066299123 v/39_bold.xpm 1.1)
+(xpm/flagS.xpm 245 1066299123 w/51_flagS.xpm 1.1)
+(muse/mixer/mixer.h 1565 1066299123 u/37_mixer.h 1.1)
+(muse/widgets/citem.cpp 1920 1066299123 p/37_citem.cpp 1.1)
+(muse/master/master.h 1729 1066299123 s/43_master.h 1.1)
+(muse/widgets/poslabel.cpp 4147 1066299123 q/23_poslabel.c 1.1)
+(share/html/left_pane.jpg 24599 1066299123 n/31_left_pane. 1.1)
+(xpm/greendot.xpm 444 1066299123 w/21_greendot.x 1.1)
+(share/html/right_pane.jpg 34158 1066299123 n/44_right_pane 1.1)
+(muse/arranger/pcanvas.h 3584 1066299123 r/17_pcanvas.h 1.1)
+(muse/widgets/doublelabel.h 1945 1066299123 o/48_doublelabe 1.1)
+(muse/widgets/fontsel.h 921 1066299123 q/47_fontsel.h 1.1)
+(muse/widgets/mtscale.h 1237 1066299123 p/4_mtscale.h 1.1)
+(xpm/quant.xpm 647 1066299123 x/4_quant.xpm 1.1)
+(muse/mplugins/midiitransform.h 2772 1066299123 s/15_midiitrans 1.1)
+(muse/widgets/lcombo.h 928 1066299123 q/44_lcombo.h 1.1)
+(muse/widgets/transposebase.ui 9369 1066299123 p/2_transposeb 1.1)
+(xpm/score.xpm 3435 1066299123 w/15_score.xpm 1.1)
+(muse/node.h 7735 1066299123 s/4_node.h 1.1)
+(xpm/lock.xpm 346 1066299123 w/1_lock.xpm 1.1)
+(muse/mplugins/.cvsignore 28 1066299123 s/9_.cvsignore 1.1)
+(muse/mplugins/mrconfig.cpp 1851 1066299123 s/18_mrconfig.c 1.1)
+(muse/wave.cpp 22541 1066299123 s/35_wave.cpp 1.1)
+(muse/widgets/itransformbase.ui 52342 1066299123 o/21_itransform 1.1)
+(muse/midievent.h 2804 1067279329 u/16_midievent. 1.2)
+(muse/widgets/scldiv.cpp 16730 1066299123 q/32_scldiv.cpp 1.1)
+(muse/widgets/splitter.cpp 2350 1066299123 o/46_splitter.c 1.1)
+(muse/midiedit/pianoroll.cpp 31634 1066299123 t/33_pianoroll. 1.1)
+(synti/organ/organ.h 741 1066299123 m/22_organ.h 1.1)
+(muse/widgets/tempolabel.h 1298 1066299123 o/25_tempolabel 1.1)
+(muse/mtc.cpp 3004 1066299123 t/2_mtc.cpp 1.1)
+(xpm/fforward.xpm 372 1066299123 w/0_fforward.x 1.1)
+(xpm/start.xpm 369 1066299123 v/45_start.xpm 1.1)
+(muse/widgets/mittransposebase.ui 3683 1066299123 p/11_mittranspo 1.1)
+(share/instruments/AlesisQS6.idf 44373 1066299123 n/9_AlesisQS6. 1.1)
+(muse/widgets/velocitybase.h 1420 1067279329 o/16_velocityba 1.2)
+(muse/widgets/velocity.cpp 1174 1066299123 o/26_velocity.c 1.1)
+(muse/widgets/vscale.h 620 1066299123 q/1_vscale.h 1.1)
+(muse/part.h 3574 1066299123 s/3_part.h 1.1)
+(muse/widgets/gatetime.cpp 1174 1066299123 q/17_gatetime.c 1.1)
+(libtool 151337 1067279329 m/3_libtool 1.2)
+(xpm/scoreS.xpm 441 1066299123 v/29_scoreS.xpm 1.1)
+(synti/vam/vamgui.cpp 20419 1066299123 m/37_vamgui.cpp 1.1)
+(muse/master/Makefile.am 336 1066299123 s/42_Makefile.a 1.1)
+(muse/widgets/comboQuant.cpp 1870 1066299123 p/19_comboQuant 1.1)
+(muse/mixer/meter.h 949 1066299123 u/41_meter.h 1.1)
+(share/locale/Makefile.am 230 1066299123 n/14_Makefile.a 1.1)
+(muse/driver/Makefile.am 409 1066299123 t/14_Makefile.a 1.1)
+(xpm/up.xpm 251 1066299123 w/3_up.xpm 1.1)
+(muse/mplugins/rhythm.cpp 15993 1066299123 s/8_rhythm.cpp 1.1)
+(share/instruments/MC303.idf 31145 1066299123 n/5_MC303.idf 1.1)
+(muse/givertcap.c 2434 1066299123 s/1_givertcap. 1.1)
+(synti/organ/organguibase.h 2625 1067279329 m/29_organguiba 1.2)
+(muse/midi.cpp 36744 1067279329 t/45_midi.cpp 1.2)
+(xpm/note1.xpm 671 1066299123 w/48_note1.xpm 1.1)
+(muse/widgets/metronome.cpp 4024 1066299123 o/33_metronome. 1.1)
+(muse/mplugins/mrconfig.h 897 1066299123 s/19_mrconfig.h 1.1)
+(xpm/context_help.xpm 771 1066299123 w/49_context_he 1.1)
+(muse/mixer/volslider.cpp 1234 1066299123 u/46_volslider. 1.1)
+(muse/widgets/canvas.h 3850 1066299123 p/38_canvas.h 1.1)
+(xpm/redoS.xpm 467 1066299123 w/19_redoS.xpm 1.1)
+(autogen.sh 3103 1066299123 m/0_autogen.sh 1.1)
+(muse/mplugins/rhythm.h 4982 1066299123 s/13_rhythm.h 1.1)
+(muse/confmport.cpp 23929 1066299123 u/10_confmport. 1.1)
+(xpm/configure.xpm 627 1066299123 w/22_configure. 1.1)
+(muse/widgets/dentry.h 1746 1066299123 p/12_dentry.h 1.1)
+(xpm/meta.xpm 673 1066299123 x/11_meta.xpm 1.1)
+(xpm/fileprint.xpm 1789 1066299123 v/47_fileprint. 1.1)
+(xpm/darkreddot.xpm 281 1066299123 v/21_darkreddot 1.1)
+(muse/ctrl/Makefile.am 299 1066299123 v/17_Makefile.a 1.1)
+(muse/widgets/pitchlabel.cpp 2467 1066299123 q/31_pitchlabel 1.1)
+(muse/pos.cpp 14430 1067279329 o/5_pos.cpp 1.2)
+(share/html/main_window_track_info.jpg 84636 1066299123 n/43_main_windo 1.1)
+(muse/transport.cpp 19742 1066299123 u/23_transport. 1.1)
+(muse/Makefile.am 3400 1066299123 n/47_Makefile.a 1.1)
+(share/html/track_info.jpg 14003 1066299123 n/38_track_info 1.1)
+(muse/marker/marker.h 1513 1066299123 s/49_marker.h 1.1)
+(muse/widgets/midisyncimpl.cpp 3520 1066299123 q/34_midisyncim 1.1)
+(muse/widgets/mtrackinfobase.h 1655 1067279329 o/40_mtrackinfo 1.2)
+(xpm/dot1.xpm 444 1066299123 x/10_dot1.xpm 1.1)
+(muse/widgets/itransformbase.h 3263 1067279329 p/31_itransform 1.2)
+(muse/widgets/swidget.h 775 1066299123 p/32_swidget.h 1.1)
+(muse/cobject.cpp 1905 1066299123 s/6_cobject.cp 1.1)
+(xpm/editpaste.xpm 4079 1066299123 v/41_editpaste. 1.1)
+(synti/vam/fdialogbuttons.ui 17795 1066299123 m/44_fdialogbut 1.1)
+(muse/driver/alsaaudio.cpp 22493 1067279329 t/19_alsaaudio. 1.2)
+(muse/widgets/splitter.h 705 1066299123 p/28_splitter.h 1.1)
+(synti/fluid/fluid.cpp 921 1066299123 m/35_fluid.cpp 1.1)
+(muse/liste/editevent.cpp 15574 1066299123 u/48_editevent. 1.1)
+(xpm/pencil.xpm 526 1066299123 w/10_pencil.xpm 1.1)
+(share/instruments/ns5r.idf 43686 1066299123 n/3_ns5r.idf 1.1)
+(muse/midiport.h 2178 1066305474 v/8_midiport.h 1.2)
+(muse/widgets/mtscale.cpp 10315 1066299123 p/48_mtscale.cp 1.1)
+(plugins/freeverb/comb.h 1431 1066299123 m/13_comb.h 1.1)
+(xpm/punchin.xpm 618 1066299123 v/46_punchin.xp 1.1)
+(muse/globals.cpp 6008 1067279329 o/4_globals.cp 1.2)
+(xpm/newmutebutton.xpm 1823 1066299123 x/15_newmutebut 1.1)
+(muse/midictrl.cpp 11794 1067279329 t/6_midictrl.c 1.2)
+(synti/vam/TODO 87 1066299123 m/49_TODO 1.1)
+(muse/mplugins/random.h 4708 1066299123 s/21_random.h 1.1)
+(muse/widgets/appearancebase.ui 50845 1066299123 q/0_appearance 1.1)
+(synti/Makefile.am 90 1066299123 m/19_Makefile.a 1.1)
+(muse/confmport.h 2178 1066299123 u/8_confmport. 1.1)
+(muse/widgets/editnotedialogbase.ui 6831 1066299123 q/42_editnotedi 1.1)
+(muse/plugin.h 7878 1066299123 x/31_plugin.h 1.1)
+(xpm/lmark.xpm 480 1066299123 w/27_lmark.xpm 1.1)
+(muse/widgets/tools.h 1246 1066299123 p/33_tools.h 1.1)
+(muse/transpose.cpp 2453 1066299123 u/25_transpose. 1.1)
+(NEWS 15 1066299123 l/39_NEWS 1.1)
+(muse/midiedit/ecanvas.cpp 6041 1066299123 t/37_ecanvas.cp 1.1)
+(muse/mplugins/rhythmbase.h 3206 1067279329 s/25_rhythmbase 1.2)
+(muse/midiedit/prcanvas.cpp 38022 1066299123 t/29_prcanvas.c 1.1)
+(xpm/gv.xpm 434 1066299123 w/18_gv.xpm 1.1)
+(muse/widgets/editctrl7dialogbase.h 1353 1067279329 q/20_editctrl7d 1.2)
+(muse/arranger/alayout.h 1576 1066299123 r/18_alayout.h 1.1)
+(xpm/pitch.xpm 671 1066299123 v/25_pitch.xpm 1.1)
+(muse/widgets/siglabel.h 989 1066299123 p/9_siglabel.h 1.1)
+(xpm/fileopen.xpm 4174 1066299123 v/40_fileopen.x 1.1)
+(muse/widgets/velocity.h 893 1066299123 p/24_velocity.h 1.1)
+(muse/master/masteredit.h 1637 1066299123 s/44_masteredit 1.1)
+(muse/driver/midirawin.cpp 6044 1066299123 t/16_midirawin. 1.1)
+(xpm/punchin1.xpm 294 1066299123 w/41_punchin1.x 1.1)
+(xpm/pointer.xpm 600 1066299123 w/11_pointer.xp 1.1)
+(muse/widgets/hitscale.h 1146 1066299123 o/42_hitscale.h 1.1)
+(muse/exportmidi.cpp 11445 1066299123 x/40_exportmidi 1.1)
+(muse/widgets/noteinfo.cpp 4863 1066299123 p/50_noteinfo.c 1.1)
+(muse/widgets/midisyncimpl.h 776 1066299123 p/20_midisyncim 1.1)
+(share/locale/muse_ru.qm 34338 1066299123 n/16_muse_ru.qm 1.1)
+(muse/synth.cpp 21137 1066299123 r/50_synth.cpp 1.1)
+(xpm/solobutton.xpm 1835 1066299123 w/40_solobutton 1.1)
+(xpm/Makefile.am 30 1066299123 w/17_Makefile.a 1.1)
+(share/instruments/xg.idf 44143 1066299123 x/29_xg.idf 1.1)
+(muse/widgets/fontsel.cpp 3822 1066299123 o/41_fontsel.cp 1.1)
+(muse/node.cpp 40732 1067279329 o/8_node.cpp 1.2)
+(xpm/underlined.xpm 257 1066299123 w/24_underlined 1.1)
+(README.translate 1379 1066299123 m/2_README.tra 1.1)
+(muse/widgets/cliplisteditorbase.h 1193 1067279329 q/9_cliplisted 1.2)
+(muse/stamp-h1 23 1066299123 r/44_stamp-h1 1.1)
+(muse/widgets/scrollscale.cpp 11149 1066299123 p/47_scrollscal 1.1)
+(muse/widgets/poslabel.h 1103 1066299123 p/25_poslabel.h 1.1)
+(muse/xml.cpp 16119 1066299123 v/9_xml.cpp 1.1)
+(muse/widgets/pitchlabel.h 927 1066299123 p/34_pitchlabel 1.1)
+(muse/widgets/comment.h 1180 1066299123 q/37_comment.h 1.1)
+(muse/widgets/mlabel.cpp 375 1066299123 o/32_mlabel.cpp 1.1)
+(muse/seqmsg.cpp 17843 1067279329 r/14_seqmsg.cpp 1.2)
+(muse/widgets/lcombo.cpp 1156 1066299123 p/51_lcombo.cpp 1.1)
+(muse/midiedit/dcanvas.cpp 18532 1066299123 t/30_dcanvas.cp 1.1)
+(muse/miditransform.h 2833 1066299123 u/21_miditransf 1.1)
+(muse/midictrl.h 6919 1067279329 o/7_midictrl.h 1.2)
+(share/wallpapers/gray_rock.gif 23780 1066299123 n/26_gray_rock. 1.1)
+(muse/miditransform.cpp 53478 1066299123 u/19_miditransf 1.1)
+(muse/eventlist.h 2591 1066299123 u/13_eventlist. 1.1)
+(muse/waveevent.cpp 3436 1066299123 r/48_waveevent. 1.1)
+(muse/widgets/audioconf.cpp 4885 1067279329 p/30_audioconf. 1.2)
+(muse/mixer/routecombo.cpp 1437 1066299123 u/33_routecombo 1.1)
+(share/locale/muse_es.ts 191460 1066299123 n/19_muse_es.ts 1.1)
+(README.softsynth 3462 1066299123 l/48_README.sof 1.1)
+(muse/widgets/tb1.cpp 6479 1066299123 q/18_tb1.cpp 1.1)
+(muse/widgets/tempolabel.cpp 3507 1066299123 q/49_tempolabel 1.1)
+(muse/mess.h 2222 1066299123 s/37_mess.h 1.1)
+(muse/xml.h 2016 1066299123 u/26_xml.h 1.1)
+(muse/widgets/editnotedialogbase.h 1364 1067279329 r/11_editnotedi 1.2)
+(muse/patchbay/Makefile.am 180 1066299123 u/2_Makefile.a 1.1)
+(share/wallpapers/stone1.gif 1252 1066299123 n/29_stone1.gif 1.1)
+(muse/widgets/sclif.cpp 6640 1066299123 o/12_sclif.cpp 1.1)
+(xpm/fileprintS.xpm 487 1066299123 w/35_fileprintS 1.1)
+(muse/master/master.cpp 9836 1066299123 s/47_master.cpp 1.1)
+(muse/widgets/header.h 825 1066299123 o/29_header.h 1.1)
+(xpm/undo.xpm 1649 1066299123 x/12_undo.xpm 1.1)
+(muse/widgets/mixdowndialog.h 966 1066299123 r/3_mixdowndia 1.1)
+(muse/waveedit/waveview.h 1436 1066299123 s/30_waveview.h 1.1)
+(muse/widgets/bigtime.cpp 8320 1066299123 o/15_bigtime.cp 1.1)
+(muse/widgets/midirawbase.ui 19730 1066299123 o/27_midirawbas 1.1)
+(xpm/note.xpm 226 1066299123 x/8_note.xpm 1.1)
+(muse/sig.h 2262 1066299123 u/27_sig.h 1.1)
+(synti/vam/vamgui.h 2721 1066299123 m/40_vamgui.h 1.1)
+(share/locale/muse_fr.qm 56295 1066299123 n/18_muse_fr.qm 1.1)
+(muse/waveedit/waveedit.cpp 10069 1066299123 s/31_waveedit.c 1.1)
+(xpm/pafter.xpm 661 1066299123 x/16_pafter.xpm 1.1)
+(muse/ctrl/ctrledit.cpp 4133 1066299123 v/18_ctrledit.c 1.1)
+(muse/waveedit/waveview.cpp 10805 1066299123 s/33_waveview.c 1.1)
+(muse/widgets/commentbase.ui 3807 1066299123 q/35_commentbas 1.1)
+(muse/mplugins/mitplugin.h 1008 1066299123 s/12_mitplugin. 1.1)
+(muse/widgets/view.h 3121 1066299123 p/0_view.h 1.1)
+(muse/widgets/siglabel.cpp 4340 1066299123 r/2_siglabel.c 1.1)
+(xpm/ctrl.xpm 673 1066299123 w/47_ctrl.xpm 1.1)
+(xpm/filesaveasS.xpm 490 1066299123 v/50_filesaveas 1.1)
+(muse/helper.cpp 1066 1066299123 u/20_helper.cpp 1.1)
+(muse/arranger/Makefile.am 320 1066299123 r/22_Makefile.a 1.1)
+(muse/widgets/scrollscale.h 2086 1066299123 q/25_scrollscal 1.1)
+(muse/widgets/citem.h 2691 1066299123 o/14_citem.h 1.1)
+(share/instruments/Makefile.am 123 1066299123 n/6_Makefile.a 1.1)
+(muse/mplugins/midiitransform.cpp 50394 1066299123 s/22_midiitrans 1.1)
+(synti/organ/organguibase.ui 63156 1066299123 m/23_organguiba 1.1)
+(muse/instruments/editinstrument.h 900 1066299123 r/29_editinstru 1.1)
+(muse/memory.cpp 2527 1067279329 v/7_memory.cpp 1.2)
+(muse/part.cpp 12732 1066299123 u/6_part.cpp 1.1)
+(synti/fluid/fluidguibase.ui 5829 1066299123 m/31_fluidguiba 1.1)
+(muse/mplugins/mittranspose.cpp 5157 1066299123 s/16_mittranspo 1.1)
+(muse/cliplist/cliplist.cpp 8791 1066299123 o/0_cliplist.c 1.1)
+(muse/widgets/mixdowndialogbase.h 1390 1067279329 q/15_mixdowndia 1.2)
+(xpm/bluedot.xpm 379 1066299123 x/14_bluedot.xp 1.1)
+(muse/value.h 1313 1066299123 s/2_value.h 1.1)
+(muse/widgets/gatetimebase.ui 10237 1066299123 q/10_gatetimeba 1.1)
+(muse/ctrl/ctrlpanel.h 947 1066299123 v/14_ctrlpanel. 1.1)
+(muse/instruments/editinstrumentbase.ui 42807 1066299123 r/38_editinstru 1.1)
+(muse/synthconfig.h 875 1066299123 s/5_synthconfi 1.1)
+(synti/vam/README 1433 1066299123 m/46_README 1.1)
+(muse/liste/listedit.h 1569 1066299123 v/0_listedit.h 1.1)
+(muse/instruments/minstrument.cpp 15669 1067279329 r/37_minstrumen 1.2)
+(muse/mixer/routecombo.h 716 1066299123 u/43_routecombo 1.1)
+(muse/patchbay/patchbay.cpp 218 1066299123 u/3_patchbay.c 1.1)
+(common.am 1198 1066299123 m/4_common.am 1.1)
+(muse/midiedit/dcanvas.h 2282 1066299123 t/25_dcanvas.h 1.1)
+(Doxyfile.in 5917 1066299123 l/41_Doxyfile.i 1.1)
+(muse/widgets/transformbase.h 3026 1067279329 r/5_transformb 1.2)
+(xpm/record.xpm 320 1066299123 w/28_record.xpm 1.1)
+(muse/mplugins/mitplugin.cpp 4502 1066299123 s/26_mitplugin. 1.1)
+(muse/liste/editevent.h 4424 1066299123 u/50_editevent. 1.1)
+(muse/arranger/tlist.h 3114 1066299123 r/23_tlist.h 1.1)
+(xpm/speaker.xpm 485 1066299123 v/42_speaker.xp 1.1)
+(muse/widgets/sclif.h 1342 1066299123 q/27_sclif.h 1.1)
+(muse/ladspa.h 27436 1066299123 r/43_ladspa.h 1.1)
+(synti/organ/fdialogbuttons.ui 17795 1066299123 m/27_fdialogbut 1.1)
+(muse/widgets/utils.cpp 5031 1066299123 o/11_utils.cpp 1.1)
+(share/html/main_window.jpg 75510 1066299123 n/35_main_windo 1.1)
+(share/html/Makefile.am 139 1066299123 n/37_Makefile.a 1.1)
+(grepmidi/Makefile.am 116 1066299123 m/7_Makefile.a 1.1)
+(muse/ctrl/ctrlcanvas.h 3762 1066299123 v/15_ctrlcanvas 1.1)
+(xpm/wave.xpm 237 1066299123 w/12_wave.xpm 1.1)
+(demos/rasen.med 12283 1066299123 n/46_rasen.med 1.1)
+(muse/mididev.cpp 9178 1067279329 x/36_mididev.cp 1.3)
+(muse/widgets/.cvsignore 392 1066299123 o/23_.cvsignore 1.1)
+(muse/midifile.cpp 16110 1067279329 x/41_midifile.c 1.2)
+(lib/Makefile.am 25 1066299123 x/19_Makefile.a 1.1)
+(xpm/draw.xpm 509 1066299123 w/36_draw.xpm 1.1)
+(muse/master/lmaster.cpp 7194 1066299123 s/40_lmaster.cp 1.1)
+(share/locale/muse_de.qm 4285 1066299123 n/22_muse_de.qm 1.1)
+(muse/key.cpp 754 1066299123 v/6_key.cpp 1.1)
+(muse/instruments/ccontrolbase.ui 20350 1066299123 r/31_ccontrolba 1.1)
+(muse/arranger/alayout.cpp 4092 1067279329 r/21_alayout.cp 1.2)
+(xpm/exit.xpm 688 1066299123 v/30_exit.xpm 1.1)
+(plugins/freeverb/denormals.h 722 1066299123 m/8_denormals. 1.1)
+(xpm/editcopyS.xpm 486 1066299123 w/44_editcopyS. 1.1)
+(muse/widgets/editsysexdialogbase.h 1405 1067279329 p/6_editsysexd 1.2)
+(xpm/exitS.xpm 467 1066299123 w/50_exitS.xpm 1.1)
+(muse/synth.h 3248 1066305474 t/4_synth.h 1.2)
+(muse/widgets/tb1.h 1297 1066299123 q/41_tb1.h 1.1)
+(xpm/sysex.xpm 665 1066299123 x/1_sysex.xpm 1.1)
+(muse/widgets/drange.cpp 8057 1066299123 o/28_drange.cpp 1.1)
+(muse/instruments/Makefile.am 363 1066299123 r/34_Makefile.a 1.1)
+(muse/widgets/audioconfbase.ui 9751 1067279329 o/44_audioconfb 1.2)
+(share/html/button_bar.jpg 13115 1066299123 n/33_button_bar 1.1)
+(muse/cfprint.cpp 3910 1066299123 v/20_cfprint.cp 1.1)
+(muse/widgets/mmath.cpp 6630 1066299123 o/9_mmath.cpp 1.1)
+(synti/vam/ChangeLog 387 1066299123 m/39_ChangeLog 1.1)
+(muse/widgets/transposebase.h 1521 1067279329 r/4_transposeb 1.2)
+(muse/mixer/rack.cpp 6965 1066299123 u/42_rack.cpp 1.1)
+(muse/widgets/slider.cpp 22383 1066299123 p/40_slider.cpp 1.1)
+(muse/muse.pro 11189 1066299123 u/0_muse.pro 1.1)
+(muse/transpose.h 416 1066299123 r/13_transpose. 1.1)
+(muse/widgets/fdialogbuttons.h 1108 1067279329 p/49_fdialogbut 1.2)
+(share/instruments/gm.idf 7461 1066299123 n/7_gm.idf 1.1)
+(xpm/steprec.xpm 497 1066299123 v/36_steprec.xp 1.1)
+(muse/mixer/Makefile.am 542 1066299123 u/36_Makefile.a 1.1)
+(muse/widgets/posedit.h 2538 1066299123 p/44_posedit.h 1.1)
+(TODO 1432 1066299123 l/40_TODO 1.1)
+(AUTHORS 0 1066299123 l/42_AUTHORS 1.1)
+(muse/widgets/cliplisteditorbase.ui 5696 1066299123 p/27_cliplisted 1.1)
+(muse/driver/audiodev.h 1554 1066299123 t/8_audiodev.h 1.1)
+(ChangeLog 50444 1066299123 l/38_ChangeLog 1.1)
+(xpm/loop1.xpm 862 1066299123 w/14_loop1.xpm 1.1)
+(muse/songfile.cpp 42252 1066299123 t/5_songfile.c 1.1)
+(muse/driver/midirawdev.cpp 6472 1066305474 t/20_midirawdev 1.2)
+(muse/helper.h 374 1066299123 n/48_helper.h 1.1)
+(muse/widgets/comment.cpp 2786 1066299123 o/37_comment.cp 1.1)
+(plugins/freeverb/allpass.h 1157 1066299123 m/15_allpass.h 1.1)
+(muse/pos.h 2479 1067279329 u/28_pos.h 1.2)
+(muse/widgets/nentry.h 2075 1066299123 p/17_nentry.h 1.1)
+(muse/midiedit/prcanvas.h 3167 1066299123 t/39_prcanvas.h 1.1)
+(muse/marker/marker.cpp 2787 1066299123 t/0_marker.cpp 1.1)
+(muse/midiedit/piano.cpp 14708 1066299123 t/38_piano.cpp 1.1)
+(muse/midiport.cpp 10997 1067279329 s/0_midiport.c 1.3)
+(muse/mixer/audionodebutton.cpp 889 1066299123 u/47_audionodeb 1.1)
+(muse/stamp-chown 0 1066299123 r/47_stamp-chow 1.1)
+(xpm/back.xpm 542 1066299123 w/2_back.xpm 1.1)
+(share/wallpapers/paper1.jpg 1662 1066299123 n/24_paper1.jpg 1.1)
+(muse/memory.h 5006 1066299123 n/50_memory.h 1.1)
+(muse/widgets/noteinfo.h 1224 1066299123 o/49_noteinfo.h 1.1)
+(xpm/cut.xpm 553 1066299123 x/7_cut.xpm 1.1)
+(muse/appearance.h 924 1066299123 u/17_appearance 1.1)
+(muse/widgets/gensetbase.h 1848 1067279329 q/50_gensetbase 1.2)
+(muse/mixer/amixer.h 2618 1066299123 u/30_amixer.h 1.1)
+(synti/vam/vamguibase.ui 84847 1066299123 m/48_vamguibase 1.1)
+(muse/waveevent.h 929 1066299123 t/46_waveevent. 1.1)
+(muse/midi.h 1350 1066299123 s/36_midi.h 1.1)
+(xpm/idea.xpm 814 1066299123 w/42_idea.xpm 1.1)
+(muse/thread.h 2792 1066299123 r/27_thread.h 1.1)
+(muse/widgets/genset.h 760 1066299123 p/43_genset.h 1.1)
+(muse/mixer/rack.h 839 1066299123 u/35_rack.h 1.1)
+(synti/vam/Makefile.am 680 1066299123 m/42_Makefile.a 1.1)
+(synti/organ/organgui.cpp 19336 1066299123 m/28_organgui.c 1.1)
+(muse/instruments/midictrledit.h 1347 1066299123 r/35_midictrled 1.1)
+(muse/cfprint.h 817 1066299123 u/12_cfprint.h 1.1)
+(muse/mplugins/midifilter.h 2063 1067279329 s/14_midifilter 1.2)
+(muse/instruments/instr 1714255 1066299123 x/39_instr 1.1)
+(xpm/buttondown.xpm 502 1066299123 x/9_buttondown 1.1)
+(muse/widgets/wtscale.cpp 9051 1066299123 p/14_wtscale.cp 1.1)
+(muse/mpevent.h 4798 1066299123 t/7_mpevent.h 1.1)
+(share/wallpapers/gray.gif 6699 1066299123 n/27_gray.gif 1.1)
+(synti/vam/vam.h 1345 1066299123 m/47_vam.h 1.1)
+(muse/sync.h 767 1066299123 r/46_sync.h 1.1)
+(muse/widgets/metronomebase.ui 24638 1066299123 q/24_metronomeb 1.1)
+(muse/conf.cpp 46929 1067279329 t/22_conf.cpp 1.2)
diff --git a/muse2/AUTHORS b/muse2/AUTHORS
new file mode 100644
index 00000000..048d8824
--- /dev/null
+++ b/muse2/AUTHORS
@@ -0,0 +1,17 @@
+Muse
+This software has been brought to you by:
+
+Name: user: <user> <at> users <dot> sourceforge <dot> net
+--------------- ---------
+Administrator:
+Werner Schweer wschweer
+
+Developers:
+Nil Geisweiller a-lin
+Frank Neumann franky
+Mathias Lundgren lunar_shuttle
+Joachim Schiele qknight
+Robert Jonsson spamatica
+Tim Donnelly terminator356
+
+Fluidsynth logo designed by Josh "Swami" Green.
diff --git a/muse2/COPYING b/muse2/COPYING
new file mode 120000
index 00000000..6168a397
--- /dev/null
+++ b/muse2/COPYING
@@ -0,0 +1 @@
+/usr/share/automake-1.11/COPYING \ No newline at end of file
diff --git a/muse2/ChangeLog b/muse2/ChangeLog
new file mode 100644
index 00000000..a5cd7d5e
--- /dev/null
+++ b/muse2/ChangeLog
@@ -0,0 +1,3703 @@
+09.10.2010
+ * Fixed: Gluing of midi track parts, over tempo changes, caused incorrect note times and lengths. (T356)
+ - Fixed Song::cmdGluePart().
+08.10.2010
+ * Disabled: Precount does not work, disabled function in gui (rj)
+ =======================================
+ * 1.1 tagged (rj)
+ =======================================
+ * added: missing headerfile in dssihost.cpp, required for building on Ubuntu Maverick (rj)
+21.09.2010
+ * Fixed: Mixers not restoring their size properly upon song load. (T356)
+ - Rearranged MusE::loadProjectFile1() slightly so mixer resizing done at end. Tested OK.
+ * Changed: Disabled some optimized code always enabled in Dsp::cpy(), for now, in case of 64-bit issues. (T356)
+16.09.2010
+ * Created rc2 release for 1.1 (rj)
+ * Fixed: Delete track(s) not disconnecting track routes, causing routes to hang around and store in song file. (T356)
+ - Fixed major regressions (my fault) in Song::insertTrack2() and ::removeTrack2().
+ * Fixed: Dummy audio device: Crashes when Jack midi device created in device manager, or loaded from song. (T356)
+ - This allows to create Jack midi devices even when dummy audio driver is used.
+ - Tested OK loading complex Jack midi based songs with dummy audio driver.
+ * Fixed: AlsaTimer cannot start, with dummy audio device. (T356)
+ - Reverted: Back to default SND_TIMER_GLOBAL_SYSTEM in AlsaTimer, for now until a better fix.
+ - Also replaced pop-up warning in dummy loop with terminal output instead.
+ * Changed: MidiDevice <-> Track routes replaced with MidiPort <-> Track routes. (T356)
+ - This allows to change a port's device (even to <none> !) while keeping all the track channel routes.
+ * Changed: Single midi <-> track route with channel mask, instead of one route-per-channel. (T356)
+ - Potentially saving very many routes from memory and in song file.
+10.09.2010
+ * Fixed: regression with oR routing for Aux strips (rj)
+05.09.2010
+ * Fixed: shortcut for insert moved to Ctrl+Shift+X (rj)
+ * Added: Select all toggle for midi channels iR menu (rj)
+ * Added: Auto-route-connect old songs with obsolete midi input port/channel masks (before iR button added). (T356)
+ - Added MidiTrack::setInPortAndChannelMask() and called it from MidiTrack::read().
+03.09.2010
+ * Changed: Updated German localizations muse_de.qm and muse_de.ts from <babarosa [at] gmx.at> (T356)
+ * Added: Instrument definitions and drum maps for Kurzweil SP2X, from <babarosa [at] gmx.at> (T356)
+28.08.2010
+ * Created rc1 release for 1.1 (rj)
+ * Added: Instrument definitions for AKAI SG01 and Waldorf-microQ from <babarosa [at] gmx.at> (rj)
+23.08.2010
+ * Added: Possibility to turn on/off move-armed-track with track selection in settings (rj)
+21.08.2010
+ * Renamed: Soft synth configuration changed to Synth configuration, as per patch from Geoff King (rj)
+ * Fixed: Shortcuts with modifier keys wasn't working for global shortcuts, should be now (rj)
+ * Added: Shortcuts for changing len of events, default Ctrl+Shift+Left/Right (rj)
+>>>>>>> .r459
+10.08.2010
+ * Fixed/Changed: Grid reacts to midi resolution change (rj)
+01.08.2010
+ * Added: Move track selection when part selection is moved, is this a good approach? (rj)
+ * Added: Backspace unarms all armed tracks (rj)
+24.07.2010
+ * Feature: Audio and midi routing popup menus now stay open, for making rapid connections. (T356)
+ * Fixed: Delete some objects hanging around upon close like song, audio, midiSeq, and prefetch. (T356)
+ TODO: Find a way to delete the 'muse' object without causing problems like seg faults.
+21.07.2010
+ * Improved: Note lanes in pianoroll and marking of C-notes (rj)
+20.07.2010
+ * Fixed: illegal shortcut no longer reported on startup (rj)
+18.07.2010
+ * Fixed: Handle errors during timer initialization more gracefully (rj)
+15.07.2010
+ * Added: Volume control for audio metronome (rj)
+12.07.2010
+ * Fixed: When wave files were edited allocation was on stack which caused crashes for larger selections, now done on heap (rj)
+ * Added: Print svn version in -v and About box. (rj)
+ * Fixed: Bug with RemoveShortEvents plugin script, would not remove anything due to index error (rj)
+10.07.2010
+ * Added: Insert measure, inserts empty space and moves everything after playpointer to the right and
+ Part-insert, pastes parts and moves everything after the paste point to the right
+ it's currently not possible to change the shortcuts for these, wip (rj)
+06.07.2010
+ * Added: Button in transport to enable/disable jack transport. (rj)
+ * Fixed: Dropdown Snap and Type in arranger toolbar no longer steal focus, annoyed the helloutame (rj)
+ * Fixed: Making edits to larger chunks in wave files no longer cause a crash, heap is used for allocation (rj)
+ * Improved: Part selection when navigating with keyboard, previously there was sometimes a need to use the mouse
+ to get a part selected, now the first one should be selected (rj)
+ * Added: some automation (very)wip stuff, not enabled, just to get it off my harddrive (rj)
+22.06.2010
+ * Fixed: Crashes loading a song while another is loaded. Or worse, it loads but saving corrupts the file! (T356)
+ - Song::clear(): Clear all midi port devices. Delete Jack midi devices, and remove all ALSA midi device routes.
+ - Route::read() Ignore bogus midi routes in med file if the device they refer to is not in use by the song (port is -1).
+ - MidiJackDevice::writeRouting(), MidiAlsaDevice::writeRouting(): Ignore and do not write midi routes if the device
+ they refer to is not in use by the song (port is -1). This prevents bogus midi routes writing to med file.
+ - Fifo::~Fifo(): Free the buffers! Fifo::getWriteBuffer(), Fifo::put(): Verify allocation. Fifo::get(): Verify buffers.
+15.06.2010
+ * Fixed: Jack midi output: Sent pitch bend and program values were incorrect, if coming from midi keyboard. (T356)
+ - Reported by Pieter while using Hurdy Gurdy vst under fst. Tests OK now, here.
+ * Fixed: Drum editor: Controller graph not in current tool mode (pencil, eraser etc.), when first opened. (T356)
+ - Call setTool() in DrumEdit::addCtrl().
+ * Fixing: Drum editor: Velocity controller graph showing incorrect for selected drum, or showing for all drums, when first opened. (T356)
+ - WIP. Still not quite correct, but at least now it doesn't show all drum velocities when first opened.
+ (This is interesting! I will try to allow 'no drum' list selection, to show all drum velocities at once, just like piano roll.)
+13.06.2010
+ * Fixed: More fixes to marker list, selected item was still not right. (T356)
+03.06.2010
+ * Fixed: Time signature editing problems in master track list and gui. (T356)
+ - Fixed SigEdit::outOfRange(). Added Sig::isValid(), and check it in LMaster::returnPressed() to fix crash with 0 n or z.
+ * Fixed: Marker/list problems. Double entries. Pianoroll/arranger timescale 'shift-left/right-click-to-add/del-marker' fixed.
+ Marker 'lock' (smpte/ticks) works now. Up/down buttons fixed. Marker list selection 'stays put' now
+ when adding or deleting markers. (T356)
+ * Fixed: Graphics corruption in arranger and track list when vertically scrolling. (T356)
+ - Changed rectangle to full w/h in 'shift down' section of View::setYPos() and TList::setYPos().
+ Should not have to do this, but it cured my problems. No noticable change in speed.
+ - Arranger corruption occured on more than one machine with xorg nv, ati drivers. More severe arranger AND track list
+ corruption occured with proprietary drivers. Corruption is also observed in several other windows (ex. ladspa browser)
+ but there's not much I can do, the corruption is found in ordinary usage of QListView for example.
+ * Changed: Increased arranger vertical scroll step, was too slow to scroll. (T356)
+ * Possible fix: Auto-scroll in pianoroll and arranger take waaay too long to stop scrolling. (T356)
+ - Increased timer timeout from 40 to 80 ms in Canvas::scrollTimerDone(). Helped for me, on a 1.6Ghz P4...
+ * Changed: Ladspa plugin guis now have scroll bars. Helps when there are many controls. (T356)
+ - Still toying with the code a bit, please bear with me while I try to get it right.
+ * Started: Addition of MusE-native ladspa guis for dssi synths. (T356)
+ - No visible changes yet, just under the hood. Added class PluginIBase which is inherited by
+ DssiSynthIF and PluginI. Changed class PluginGui and DssiSynthIF to fit.
+07.05.2010
+ * Fixed: Xml file trouble: Tag attributes not storing xml-friendly entities, trouble reloading song. (T356)
+ - Fixed all usages of Xml::nput, ::put, ::tag, and ::etag. Discovered by Geoff B.
+06.05.2010
+ * Fixed: Audio Input tracks: Loud noises or DC output with unconnected input routes. (T356)
+ - AudioInput::getData(): Do not get buffers of unconnected client ports. Causes repeating leftover data.
+ * Fixed: Audio Input tracks: Stereo processing not correct if both input routes connected to same port. (T356)
+ - AudioInput::getData(): Just copy the buffers always, don't set buffer pointer directly.
+ * Fixed: Effect rack plugins: Not saving correct number of plugin channels. Upon reload, channels are wrong. (T356)
+ - PluginI::writeConfiguration() and PluginI::readConfiguration(): Write and read the channels, not instances.
+ - Optimize TODO: Is xml plugin 'channel' really necessary? Well not now, but later if we optimize the effect rack
+ by not creating redundant plugin instances if the next plugin in the rack doesn't need them.
+ What I have changed is always make the number of plugin channels equal to the number of track channels.
+ PluginI::setChannels() and PluginI::initPluginInstance() then sort out the details of how many instances to create.
+ * Fixed: Effect rack plugins: Some plugins crash MusE, for example plugins with no audio outputs. (T356)
+ - PluginI::setChannels() and PluginI::initPluginInstance(): Be more aware of different audio ins and outs.
+ * Added: First draft help file README.effects-rack titled "Understanding the Effects Rack". (T356)
+ - Details how MusE uses plugins, especially now with these changes.
+27.04.2010
+ * Changed: Building: Separate --enable-dssi --enable-osc configure options. (T356)
+ --enable-dssi (Enable dssi synths AND special handling of dssi-vst ladspa effect plugins. No guis if by itself.) and
+ --enable-osc (Enable dssi guis. Useless by itself at the moment).
+ Use both for best features.
+ * Feature: If dssi and osc support are enabled, audio track effects rack dssi-vst plugins can now show their NATIVE guis. (T356)
+ * Fixed: Storing dssi synth states. Remembers current program, all configure strings, and control settings - for current program ONLY. (T356)
+ - With dssi-vst synths, some better are than others at remembering program.
+ - Todo: Ignore unwanted dssi-vst config strings/values like "guiVisible" "<name-of-fifo-file>" (gives non-fatal error on reload).
+ * Fixed: Dssi native synths (hexter, LTS etc.) should actually work now. Their gui controls operate the sounds now. (T356)
+ - Todo: If using large audio buffers (Jack), my 'one-at-a-time-per-audio-process' osc control fifo streams kinda suck,
+ with a delay in their processing. Want to try MULTIPLE 'run's or 'run-multiple's PER audio process, for SAMPLE accuracy and
+ better quicker message processing. Just need to add a timestamp to my osc fifo items, then all forms of change - whether
+ control, midi event, or program - have a timestamp with which we can SPLIT UP the runs into 'runs between changes'.
+ * Tip: Currently a patch to dssi-vst is required for their guis to update properly. (For now, ask about this on our lists.)
+21.04.2010
+ * Fixed: Shortcut for moving between tracks in arranger. Ctrl+Up/Down (rj)
+19.04.2010
+ * Patch: Fix for libdir bug causing synths to not be available on some 64bit systems. By Orcan Ogetbil (rj)
+ * Fixed: Drawing of grid when snaping to less than measure (rj)
+12.04.2010
+ * Fixed: LADSPA rack effects: Do not display LADSPA output controls (such as latency). (T356)
+ * Fixed: Bug when cancelling 'save as' operation, says 'file exists'. Caused by my earlier compressed save fixes. (T356)
+11.04.2010
+ * Fixed: DSSI requested midi mapped controls were not correct. (T356)
+ * Changed: Working on controllers, and saving their state. Synths like Organ should remember their state now. (T356)
+ - Working on DSSI controls... Working on OSC stuff...
+06.04.2010
+ * Fixed: Jack midi, and DSSI: Midi controller knobs, sliders, boxes etc. not updating with current values. (T356)
+ - Copied code in MidiPort::sendEvent() to JackMidi::processMidi() and DssiSynthIF::getData().
+ * Fixed: DSSI: Crashing with unkown controllers sent to synths. (T356)
+ - Ignore unkown controllers in DssiSynthIF::processEvent().
+05.04.2010
+ * Added: Rec enabled track moved with selection when only one track is rec enabled (rj)
+ * Changed: Made canvas show grid the default (rj)
+ * Added: Jack midi ports can now be renamed in the ports list dialog, by clicking on the name. (T356)
+ - Also cleaned up ports list behaviour and added tooltips.
+30.03.2010
+ * Major reworks: Jack midi, routing system, multichannel synth ins/outs, midi strips and trackinfo pane. (T356)
+ - WORK IN PROGRESS. Should be usable for current projects.
+ - ADVISORY: If opening current projects you are advised to "save as" or back up your med files (waves should be OK)
+ until all is deemed to be working OK. It is possible more changes to .med file structure are needed later.
+ - Some .med project file structures have CHANGED (like routing). I have tested opening large existing projects,
+ then re-saving them. OK so far.
+ However, I have not added importing code for the old midi trackinfo panel 'input port' and 'input channel' boxes (gone now).
+ If you want to wait, I am planning to do that, but later... Otherwise you must re-enter them with the new midi input routing.
+ - ** Multichannel synth inputs and outputs: Fairly satisfied with popup menus, hopefully no major reworks...
+ Routing system fully supports multichannel synth mono/stero paths but is NOT COMPLETE yet.
+ When changing a connected track from stereo to mono, there is no coding yet to ensure the existing stereo routes are
+ changed from stereo to mono (just like the audio input and output tracks have always done with Jack routes).
+ Also coding must be added to avoid simultaneous mono and stereo routes - make them mutually exclusive - although
+ there's nothing technically wrong with it, it's just not desirable.
+ - ** Jack midi: You now create your own Jack midi ports. I have not added any means to delete them yet, but I believe
+ if you 'unselect' them in the midi ports list so that they are not used, then the saved .med file will ignore them.
+ - Multi-instances of MusE should work OK now - all ports should hopefully have unique names.
+ - Number of midi ports increased from 32 to 128. It's a bit much for the ports list, was planning "create your own
+ midi port as needed" (like RG). Obstacles seem to have been cleared now, but it would be a big job (lots of places to change).
+ - Along the way various tweaks and fixes when I spotted them.
+18.02.2010
+ * Added: Separate Jack midi client ports per MusE port. (T356)
+ - For now, you will have to manually add further connections to those ports if desired, each session.
+ - Tested OK rec/play so far.
+ * Fixed: Some inconsistencies in midi controller number decoding. (T356)
+ - Everything now references the values listed in midictrl.h
+ * Fixed: Some Jack code was not calling free after calling certain functions. (T356)
+ * Changed: Midi priority now deaults to audio priority +1. (T356)
+ - Thanks to RJ for the convincing argument.
+14.02.2010
+ * Added: Jack midi input should be working now. Controllers, too. (T356)
+ - Tested with large 1024 frame buffer. Events are recorded with good sub-tick (frame) resolution,
+ as viewed in pianoroll with 64T snap grid.
+13.02.2010
+ * Fixed: Jack midi output should now be frame-accurate, support variable length events (like sysex),
+ and most controllers should work. (T356)
+ - TODO: No record yet. Just playback.
+ - TODO: I have code in place for multiple device listing (like ALSA) with auto-connect,
+ instead of single 'jackmidi' device, but it doesn't seem to want to actually connect.
+ Simply enable the #define JACK_MIDI_SHOW_MULTIPLE_DEVICES in driver/jackmidi.h
+ and it will magically switch. Shows port names as their alias #1 (with a rem'able line to
+ revert to non-alias names - to be made configurable later). I swear it was working,
+ then intermittent, then not at all. Hmm...
+06.02.2010
+ * Fixed: MusE hanging on close, with Jack driver. (T356)
+ - Unregister Jack midi ports on destruction of JackAudioDevice.
+05.02.2010
+ * Fixed: Top level windows: Do not open if there are no parts. Case: bogus -1 top-level part index stored in med file. (T356)
+ - Changed MusE::readToplevels() and stuff in listedit.cpp
+ - Was causing crash of list editor upon loading a song saved with the list editor open.
+ Somehow a bogus -1 top-level part index can make it in to the .med file. Checking this...
+ * Changed: Preparations for audio processors: Moved stuff out of class Event and into class WavePart. (T356)
+ - WavePart needs a converter map to lookup events in the part's (shared) event list, in case clones exist !
+ Ughh, it's going to be tough to ensure the map is always correct because an event cannot tell what part owns it...
+04.02.2010
+ * Improved: Grid handling in arranger improved, it should now be actually usable (rj)
+01.02.2010
+ * Fixed: Jack midi output: Stuck or missing notes. (T356)
+ - Must only be one jack_midi_event_reserve() per event in handle_jack_midi_out_events().
+31.01.2010
+ * Changed: Midi sync window: Clock is now seperated from other real time commands (play/stop etc). (T356)
+31.01.2010
+ * Fixed: Midi sync in: Should be very solid and 'in time' now, play/stop/continue. (T356)
+ - Re-coded to begin incrementing immediately upon first-clock detection. Forbid MusE to send transport commands
+ while in external sync mode - our sync router handles that. Was causing problems.
+ - Tested OK: Ensoniq ESQ-1 KB (sends clocks ony between start and stop) and Roland TR-505 drums (clocks always running).
+ The measured general timings were quite different, but (thankfully) clocks and events were not.
+ - MusE responds better to the TR-505 than the ESQ-1 does with a direct midi cable connection! (ESQ gains ticks on continue).
+ * Added: Midi sync window: 'Rewind on start' column. (Also a 'Send first clock delay' box - not implemented yet). (T356)
+29.01.2010
+ * Feature: Dummy audio driver: Added global settings for sample rate and period size. (T356)
+ - The period size affects midi resolution, and the default was just too long. So this was added.
+27.01.2010
+ * Changed: Don't process audio prefetch, or getData() in Audio::copyData(), if track is 'Off'. (T356)
+ * Added: Arranger track list: Quick 'right-click' or 'ctrl-click' or 'ctrl-mouse-wheel' toggling of Track On/Off. (T356)
+ - Note this includes midi tracks now! Remains to be seen whether allowing midi off is useful and will work,
+ or should be filtered out. **TODO: Turn off remaining controls in midi strips, turn off actual midi playback and record.
+ * Feature: Initial Jack midi support. Imported from Larry Valkama's GIT repo. (T356)
+26.01.2010
+ * Fixed: Import midi 'replace' broken last fixes. (T356)
+ * Fixed: External midi sync: Wait until first clock after start to start transport, and >= second clock to increment ticks. (T356)
+24.01.2010
+ * Added: Midi sync: Added 'Jack timebase master' checkbox, removed requirement of MusE being tempo map master. (T356)
+ * Added: While on external sync and Jack timebase master, reports correct MusE BBT info to Jack. (Tempo not correct yet). (T356)
+ * Added: Midi import option: Whether to split imported tracks into multiple parts. (T356)
+23.01.2010
+ * Fixed: External midi sync in: MusE transport not rewinding upon reception of start. (T356)
+ * Added: Midi sync: MusE now transmits and receives some MMC commands, and displays some MTC and SMTPE info. (T356)
+ - No transmit MTC or receive MTC syncing yet, just transport control stuff.
+ - Tested OK with Rosegarden and Ardour, but they do not seem to have an option to sync to the input midi clock,
+ only MTC or internally. Must test when MTC output added to MusE.
+ * Improved: Midi sync editor window: Shows MMC and MTC activity and works with them now. (T356)
+21.01.2010
+ * Fixed: First tests: External midi sync in works now! Should be rock solid no matter what is thrown at it. (T356)
+ - All changes are labeled "p3.3.25"
+ - Switched to a 'direct drive' method instead of 'calculation of tempo' method.
+ Drift between source of master and slave is non-existant since the incoming midi clocks
+ drive the midi engine directly. This is at the expense of exact 64th note resolution.
+ At MusE's fixed 24 midi clocks per quarternote, triplet 32nd notes are resolved (32nd note divided by three).
+ MusE's default 'division' (ticks per quarternote) is 384. 384/24 gives a division of 16 MusE 'ticks' per midi clock.
+ - Normally when using the tempo map (external sync is off), device play event times are in frames,
+ because the tempo map provides for that kind of sub-tick frame resolution.
+ But now, during external sync, device play event times are in ticks, not frames.
+ Hence the compromise between exactness of note times, and master/slave drift.
+ - Tested heavily with a Roland TR-505 which has a variable 'analog' tempo knob.
+ Combined that with a complete midi song, and other test 'tick' tracks driving external synth KB,
+ was rock solid going 'absolutely nuts' with the tempo knob up to 260BPM, surprisingly good resolution.
+ - TODO: Check safety of 'midiExtSyncTicks = 0' inside audio thread while midi thread is counting it up.
+ Also fix seek operations and check for any more place needing these 'tick'frame' alterations.
+ * Changed: Some more changes for compressed files operations. (T356)
+ - More to be done, but tests OK so far.
+19.01.2010
+ * Fixed: Saving/loading compressed .gz/.bz2 MusE .med files, + loading compressed .mid/.kar files (save broken, off for now). (T356)
+ - Changed filedialog.cpp:getSaveFileName() and MusE::loadProjectFile1.
+ - Added seperate save file dialog filters in globals.cpp.
+ - Disabled exporting of compressed midi/karaoke files (.mid/.kar) for now because
+ a compressed file is opened as a pipe, and pipes can't seek, resulting in a
+ corrupted midi file in MidiFile::writeTrack().
+18.01.2010
+ * Added: Piano roll and drum editor edit menus: "Select prev/next part". With default hotkeys Alt+Left/Right. (T356)
+ - This is an easy way to switch parts when multiple part editing in one window (via Ctrl-E or Ctrl-D).
+ And it was absolutely essential, for multiple dedicated controller track editing since there are no notes,
+ and no (other) way to select another part to edit.
+17.01.2010
+ * Feature: MusE now has two mixers, with selectable track type display. (T356)
+ - Changes to .med file were needed. Tested OK so far with old and new song files.
+ * Fixed: Builtin freeverb and TAP reverb ladspa GUIs, or custom user GUIs not showing controls. (T356)
+ - Broken since removal of musewidgetsplugin library months ago.
+ Added PluginWidgetFactory class to handle local creation of controls.
+ (Custom user GUIs must be done by hand since the removal of musewidgetsplugin library).
+ * Fixed: Appearance settings red colour adjustment larger than others. (T356)
+ * Changed: Default controller graph foreground colour from blue to medium orange. (T356)
+ - Avoid clash with blue colour used by left and right markers.
+12.01.2010
+ * Release: 1.0.1 (rj)
+10.01.2010
+ * Fixed: python detection exchanged for script from http://libvirt.org/ (rj)
+09.01.2010
+ * Removed: Disabled watchdog thread. (T356)
+ - Tested OK (normally) without it, although behaviour needs to be tested if audio or midi thread
+ would stop unexpectedly.
+ * Changed/Fixed: Thread priorites: Added command line switches for audio (-P) and midi (-Y). (T356)
+ - Audio (-P) applies to dummy driver only. (Else audio priority is fixed by Jack).
+ - Also changed default settings so that no two threads have same priority. May fix problem reported
+ by user GB, concerning high midi latency.
+ * Added: Enable/disable LASH command line switch (-L), (if LASH support is compiled in). (T356)
+ - Helps prevent some issues like auto-starting Jack, or automatically routing midi to fluidsynth (observed).
+07.01.2010
+ * Fixed: BUG ID: 2879426: *.med does not save meta event types. (T356)
+ - Changed midievent.cpp MidiEventBase::write(). Now saves value A, B, C and sysex/meta data. Tested OK.
+ * Fixed: Midi meters now show for each track even if they're all on same device and channel. (T356)
+ - Oversight, long overdue. The meters AND automation control needed to be 'per-track'.
+ * Applied: muse-destdir.patch Scripts and utils packaging fix submitted by Orcan Ogetbil. (T356)
+06.01.2010
+ * Feature: Jack transport enable/disable in Midi Sync settings window. Stores setting per-song. (T356)
+ - Should be Ok to use and test. Needs a bit more work. See jack.cpp and jackaudio.h
+ * Fixed: Speedups of audio pre-fetch especially when moving the cursor around (seeking). (T356)
+23.12.2009:
+ * Added: DeicsOnze2 initial import. (ng)
+ * Fix: deicsonzepreset.cpp for Xml muse 1 API
+20.12.2009:
+ =======================================
+ * 1.0 tagged (rj)
+ =======================================
+19.12.2009:
+ * Feature/Fix: Audio metronome: Send output tracks now selectable in Settings->Metronome. Also fixed bad noises.(T356)
+15.12.2009:
+ * Patch: New patch for 64-bit memory issues, from Daniel Kobras (rj)
+ * Reworked: Output of configure script to point out deprecated stuff and list the interesting stuff (rj)
+ * Fixed: Old bug: WaveTrack muting slow to respond or odd behaviour. (T356)
+ - Removed track mute check in WaveTrack::fetchData(). Was causing 'delayed repeated muting' since the mute check is
+ done at a time when audio segments are fetched which are to played a few seconds into the future.
+ Tested OK so far, playing and bouncing wavetracks. Mute is now quick to respond and does not 'repeat' or 'delay'.
+14.12.2009:
+ * Fixed: Overhauled AudioTrack processing. Fixes noises if multiple output routes exist. Eliminates costly redundant
+ processing of audio tracks, and their effects racks. Waves, groups, inputs, outputs, synths etc. (T356)
+ - Made better use of AudioTrack::outBuffers, as a 'post-effect/pre-volume' caching mechanism if the track has more than one
+ output route. WaveTrack was already using this scheme, but I moved it up 'higher' and now all tracks benefit from it.
+ - See AudioTrack::copyData() and ::addData(). Most changes there. (Comments included!)
+ * Fixed: Old songs made before recent synth changes were not loading their synths. (T356)
+ - In .med file, added synth 'label' tag to go with existing 'class' tag, to support synths like dssi-vst.
+ - Songs made recently after the changes might not load their synths and will simply have to be re loaded and re-saved.
+07.12.2009:
+ * Fixed: Add Synth popup menu: Show names AND descriptions. Now sorted, too. Also separate MESS, DSSI, VST, and Other. (T356)
+ - Added app.cpp:populateAddSynth() function.
+ * Fixed: Increased buffers for reading xml. Song files with large patchdata from vstis caused crashes (rj)
+ * Fixed: Self inflicted bug with setting inital song loading in general configuration (rj)
+06.12.2009:
+ * Fixed: List popup synths by description. Cleaned up soft synth main list. Added persistent names, descriptions, ver, etc. (T356)
+05.12.2009:
+ * Fixed: ddsi synths: Ticking or crackling when more than one output route path. (T356)
+ - The synths were being run more than once per process cycle, due to multiple out routes eventually calling getData.
+ - ** Work in progress - must also do MESS synths and other track types which should only process once per cycle.
+ * Feature: SSE support configure build option and SSE enabled dsp routines added. (T356)
+ - Currently none of the routines are actually used, yet... Borrowed from MusE-2.
+ - They appear to only be enabled for 64-bit CPUs. Investigating why not 32-bit...
+ * Feature: i386 optimized dsp float buffer copy routines. (T356)
+ - Should work on all i386 compatible CPUs (uses asm movsl). Borrowed from MusE-2
+ - I couldn't bear to add yet another unoptimized memcpy usage, so I added this.
+ * Changed: All audio buffers now allocated with 'posix_memalign' instead of 'new'. (T356)
+ - Borrowed from MusE-2.
+03.12.2009:
+ * Fixed: Support for initial vst chunk storage support if available in dssi-vst
+ requires a patch to dssi-vst.
+ * Fixed: Better cleanup on closing MusE. (T356)
+ - Added Song::cleanupForQuit called from Muse::closeEvent. Disconnect gracefully from LASH before app quit.
+ Clean up memory. Make vst synth processes which were in undo or redo list at close go away.
+02.12.2009:
+ * Fixed: Do not send default midi values back to dssi synths. Let them handle their own default setting mechanisms. (T356)
+ - Also saves a bit of loading time for synths with hundreds of controls. See MidiPort::setMidiDevice().
+02.12.2009:
+ * Fixed: dssi: Crashes when loading most vst synths. (T356)
+ - All ports must be connected even if not used.
+ Made sure all audio in/out and control in/out ports are connected,
+ including latency control out port. Test Ok.
+30.11.2009:
+ * Added: Configuration option for vst plugin in-place processing, fixes ladspa vst plugins not working or loud feedback. (T356)
+ - Hmmm, they were working before when I upgraded OS. Now they're not. Extensive testing: It seems this is not MusE's fault.
+ - R.J. reports they weren't working too. Investigating...
+29.11.2009:
+ * Fixed: dssi: Loading of synths with more than 2 out channels. (T356)
+ - Currently only the FIRST TWO channels of the synth will be used.
+ - Tested ok so far with A.D. drumkit.
+28.11.2009:
+ * Fixed: dssi: List only synths found, not effect plugins. (T356)
+ - Does the exact opposite of what dssi-vst does for ladspa plugins,
+ therefore all plugins should be covered - effects will be listed
+ in ladspa effect dialog, while synths will be listed as synths.
+27.11.2009:
+ * Fixed: dssi: Both native guis and vst guis should open now. Ooooh - pretty! (T356)
+ - ** But still: Keep an eye on your process list and manually kill any
+ synth instances lying around after exit. For now try to 'politely'
+ close dssi guis and delete any dssi synth tracks before exiting muse.
+ - Working on gui open-close-reopen-show-hide stuff. Kinda weird esp. with vsts right now...
+26.11.2009:
+ * Fixed: Loading dssi crash bug. Should at least load them now. (T356)
+ - Also some controller functionality via track controllers...
+25.11.2009:
+ * Feature: Dis.. Dis.. Disposable wha? (T356)
+ - dssi support. Work in progress.
+ - ** VERY IMPORTANT Currently you must manually 'kill' any synth instances lying around after exit !!!
+ - Should work OK for tests and fun...
+22.11.2009:
+ * Added: Support for reading ogg files through libsndfile (rj)
+18.11.2009:
+ * Fixed: Audio and synth tracks not processing when output path ultimately leads nowhere. (T356)
+ - ALL tracks now always animate meters, and process audio 'quietly', and synth tracks
+ process their gui messages, if output path leads nowhere.
+ - This fixes a few problems: For example fluidsynth was not allowing loading of soundfonts.
+ And synths would suddenly 'dump' any backlogged events when processing was turned back on.
+ And during play, when disconnecting and reconnecting the track outputs, the audio would be
+ out of sync because it was not processed during that time.
+ - See Audio::process1() to understand the changes more. Follow from there to SynthI, SynthIF etc.
+ * Fixed: Minor issue with port 0 display in track list port column for synths, from previous fix. (T356)
+17.11.2009:
+ * Changed again: Arranger: Track list: Left click synth track's port column now lets you choose a port. (T356)
+ * Fixed: Do not list synths as instruments in ports/synths settings window. (T356)
+16.11.2009:
+ * Added: Script functionality moved from PianoRoll to song class, available in main menu (under 'Midi')
+ and drum editor (mg)
+ * Added: 'Add synth' sub-menus now automatically assign the instance to a free midi port. (T356)
+15.11.2009:
+ * Added: Added 'Add synth' sub-menu to main 'Edit menu' and Mixer 'Create' menu. (T356)
+ * Changed: All audio track types now start with two channels and 0db volume. (Input tracks remain muted as usual). (T356)
+ * Fixed: Organ synth: Drawbar harmonics and sustain midi controllers were not working. (T356)
+ - Applied auto-bias corrections.
+14.11.2009:
+ * Added: DoubleSpeed plugin script for PianoRoll (mg)
+ * Fixed: Disable Python ifdefs (mg)
+13.11.2009:
+ * Feature: Mixer labels: Auto-Font-Size(TM) using Appearance Settings font # 6. Word wrap (only with spaces) supported. (T356)
+ - The mixer labels will try to fit the text, trying font size from font #6 point size down to point size = 5.
+ * Feature: Arranger: Track list: Right-click 'Add ...' now lists soft synths ! (T356)
+ * Feature: Arranger: Track list: Left/right click synth track's output port column now shows synth gui ! (T356)
+ * Changed: Midi track info: Removed redundant track name box, changed label to behave like mixer strip. (T356)
+ * Fixed: Appearance Settings: Manual entry into font name boxes now works. (T356)
+ * Fixed: Appearance Settings: Added tooltips to font #0 - #6. Explains which font does what. (T356)
+12.11.2009:
+ * Fixes: Some Python API refcount code added (mg)
+10.11.2009:
+ * Added: Effect disable/enable + add/remove track to Python API (mg)
+09.11.2009:
+ * Feature: Added 'Echo recording to output' button to midi track info panel. (T356)
+ - Turns on or off echoing of incoming record events to output device.
+ * Fixed: Midi tracks not recording when no output device selected. (T356)
+ - Now tracks will record with no output device selected.
+ * Fixed: Problems since increasing number of midi ports from 16 to 32 several months ago. (T356)
+ - Added Xml::parseUInt() and ::uintTag(), utils.cpp:u32bitmap2String() and string2u32bitmap().
+ - Fixed saving and loading of input port mask in med files.
+ - Fixed display of input port mask in track info panel.
+08.11.2009:
+ * Added: First test shot at part managing app in Python (mg)
+ * Added: Python api functions for selected track + import of part file (mg)
+06.11.2009
+ * Fixed: Python configure.ac problems. (T356)
+ * Removed: musewidgetsplugin (QT3 Designer widgets plugin) which may cause CVS build to fail with libtool2. (T356)
+ - Infamous '-o' trick no longer required to build from CVS. Removed until further notice.
+04.11.2009
+ * Added: Shortcuts to drumeditor + pianoroll: goto current pos, scroll left + right (mg)
+ * Fixed: Added command line switch (-y) for enabling Python control - disabled as default (mg)
+ * Added: Shortcut keys added to pianoroll and drumeditor (mg)
+ * Added: Startup dialog showing 'good to know' info, can be disabled (rj)
+ * Added: Song info dialog, can be used to record song related arbitrary text information (rj)
+ * Changed: the output limiter is now configurale, and by default off (rj)
+ * Fixed: Midi loop recording now honours the transport cycle record mode setting. (T356)
+ - Cycle mode REPLACE: Only record notes in current loop. Erase any previous loop notes from rec stop pos to loop end.
+ - Cycle mode NORMAL: Same as REPLACE, but don't erase any previous loop notes from rec stop pos to loop end.
+ - Cycle mode MIX: Keep all recorded notes from all loops.
+ - Use the transport record mode OVERDUB or REPLACE as usual to either mix with or replace existing track notes.
+ * Fixed: Midi record (incl. new part, looping, part auto-extend) now honours the arranger snap selection. (T356)
+ - Previously the left and right ends of the part would always be 'snapped' to bars, and any new notes recorded
+ past the end would not snap the part.
+ * Changed: muse/mpevent.h: Changed MREL list from using audioRTalloc to midiRTalloc. (T356)
+ - This must have been a mistake? midiRTalloc was not even being used anywhere before. The comment lines gave clues.
+ * Fixed: Multiple copies of wave events appearing in wave parts after resizing part. (T356)
+ - Changed EventList::find() to respect wave or midi. D'oh! Missed this obvious one from changes I made many months ago.
+ * Fixed: Audio loop recording now respects arranger snap setting. (T356)
+ - Previously the left and right ends of the part would always be 'snapped' to bars.
+ * Fixed: Audio recording now respects punchin and punchout points. (T356)
+ * Fixed: Audio loop recording now works (currently replace mode only). (T356)
+ - WORK IN PROGRESS: Only overwrite (replace) mode supported. Working on overdub mode...
+ - If recording is started INSIDE the loop points, then allowed to loop, the
+ 'zeroth loop' wave contents will be 'shifted' back to the left loop point.
+ This may have to change if mix mode is to be supported. In other words
+ keep that 'zeroth' portion of wave in place. May change it anyway.
+02.11.2009
+ * Added: Midi track controller + audio track volume to Python interface (mg)
+28.10.2009
+ * Fixed: No, or badly shifted wave recording, since libsndfile 2008-05-11 (T356)
+ - Fix for recorded waves being shifted ahead by an amount equal to start record position.
+ - Removed _recFile->seek() in AudioTrack::record(). Since libsndfile 2008-05-11, "seeking past
+ end of file during write" is allowed, which caused problem with the line seeking the record
+ file to an absolute frame which *included* the recording start position.
+25.10.2009
+ * Added: Mute functionality to Python interface (mg)
+ * Fixed: Midi mixerstrip mute update issues (mg)
+ * Fixed: initialization in pandelay ladspa plugin (rj)
+21.10.2009:
+ * Added: functions for looping to Python interface (mg)
+19.10.2009:
+ * Added: more functions to Python interface: deletePart, set position of locators, get/set song
+ length, get division, set midi track parameters (mg)
+ * Added: now possible to create and modify parts via Python bridge (mg)
+18.10.2009
+ * Added: backported ladspa plugins doublechorus and pandelay from svn-muse (rj)
+ * Fixed: Mixer was not updating when a midi track's channel was changed. (T356)
+ - Created a new song changed flag SC_MIDI_CHANNEL and used it to only update mixer midi strips,
+ not the whole mixer. Changed AudioMixerApp::songChanged() and ::updateMixer().
+ * Fixed: Mixer was not shrinking enough when a track was removed, leaving space between strips. (T356)
+ - Added a couple of lines to AudioMixerApp::updateMixer() STRIP_REMOVED section.
+ * Fixed: Bug with reading soundfonts from song dir fixed (rj)
+17.10.2009
+ * Examples: added some example scripts, DoNothing and RemoveShortEvents (currently requires PyQt4) (rj)
+ * Added: more tags to plugin format in pianoroll, see readme in dist: share/scripts (rj)
+ * Added: Updates to Python API, now possible to modify part data. Needs a lot of testing (mg)
+16.10.2009
+ * Added: Added a few functions to Python remote API (start/stop playback + location queries)
+ * Feature: Each drum instrument listed in the drum map now has a playback 'volume' setting. (T356)
+ - Currently it affects playback only. I am looking to maybe add record level, too.
+ * Changed: Default drum map velocity level 3 (110) and 4 (127), now 127, 110. (T356)
+ - To allow easy (no key hold) drawing of default 110 velocity notes.
+ (Hold shift = 127, ctl= 90, shift+ctl = 70)
+ * Fixed: Drum editor controller graphs now align perfectly with editor canvas. (T356)
+ - Changed DrumEdit::newCanvasWidth().
+ - Tested OK with various appearance themes, and various vertical splitter positions.
+ * Fixed: Drum map length, velocity level, and volume columns rapid mid-/right- clicks causing left double-clicks. (T356)
+ - Now the columns can be quickly mid and right clicked (decrement/increment).
+ * Fixed: Fluidsynth now realizes that a soundfont was located in the song-dir and then omitts
+ the path in the configuration data. (rj)
+ * Changed: Changed the format of the datafile for the automation option in the pianoroll
+ Mathias, we can wrestle about it later ;-) (rj)
+15.10.2009
+ * Feature: First version of MusE remote Python control (mg)
+ * Fixed: Drum canvas 'select' functions not updating, can't copy/cut etc. (T356)
+ - Added updateSelection() to the end of DrumCanvas::cmd(). Tested OK.
+12.10.2009
+ * Feature: External scripting functionality added via PianoRoll menu: (mg)
+ PianoRoll scans INSTPREFIX/share/muse/scripts and ~/.muse/scripts for executables, which modify part
+ data via data stored in temporary file
+
+25.08.2009
+ * Proposal: new default colors for various stuff (rj)
+12.08.2009
+ * Fixed: bug 2811156, soft synth and marker window no longer appear when hidden for XFCE window manager (rj)
+15.07.2009
+ * Patch: from bug 2819312 (by Gerardo Exequiel Pozzi) added. Allows muse to launch with never glibc. The fix is
+ perhaps not fully understood but it looks harmless. (rj)
+09.07.2009
+ * Changed: Track info program, vol, and pan spinboxes now lose focus with one enter press instead of two. (T356)
+05.07.2009
+ * Fixed: Small fix on behalf of T356, Jack should not be started if running -a (rj)
+ * Fixed: Help menu -> Report a Bug: Set address to current muse org bug address. (T356)
+01.07.2009
+ * Fixed: Dropdown menus in transport no longer grab focus, make space start/stop work again (rj)
+ * Fixed: Dropdown in Mastertrack editor no longer grabs focus (rj)
+ * Feature: Added denormal protection, by default on, can be turned off in global config (rj)
+25.06.2009
+ * Fixed: Recording of midi sysex was not working. (T356)
+ - My fault since recent midi sync changes. Fixed the last few lines in alsaProcessMidiInput().
+ * Fixed: Segfault when certain movements are done in track list. (T356)
+ - Added valid track check to RESIZE section of TList::mouseMoveEvent(),
+ and a few other places.
+23.06.2009
+ * Testing: A fix for some Jack-2 net problems... (T356)
+ - Added missing break statements, and JackTransportNetStarting detection
+ (hard-coded as '4' for now so that muse will build with Jack 1 and 2 - we need
+ config detection of Jack version!) to processSync(), and JackAudioDevice::getState().
+21.06.2009
+ * Feature: Added Jack freewheel mode. (T356)
+ - Dramatically speeds up bounce to file and bounce to track operations.
+ With freewheel enabled, you don't have to wait for Muse to play the song
+ at normal speed while bouncing - it goes as fast as possible.
+ - Added configuration option for it. See 'Global Settings -> Audio'.
+20.06.2009
+ =======================================
+ * 1.0rc3 tagged (rj)
+ =======================================
+ * Feature: Jack transport master functionality added. (T356)
+ - Allows other Jack client apps to properly disply Muse's current bar, beat, and tick.
+ - Especially useful for songs with tempo and time signature changes.
+ - It is activated / deactivated by clicking on Muse's transport 'Master',
+ or Muse's graphic Mastertrack window 'Enable'.
+17.06.2009
+ * Fixed: Segfault after creating simpledrums instance, then adding a midi track. (T356)
+ - Return non zero in SimpleSynth::getPatchName().
+15.06.2009
+ * Removed: Some code in jack driver which may cause shutdowns or static noise with Jack version 1 (T356)
+ - Tested several hours here, no shutdowns or sudden static noise. Thanks to the Jack team for that one...
+13.06.2009
+ * Fixed: New midi right-click popup menu 'add/set event' and 'erase event' not working for drum controllers. (T356)
+ - Also, on 'add/set', added check and ignore if an existing event value is already equal.
+ * Fixed: Midi track info vol, pan, prog 'Rec' buttons were allowing duplicate events. (T356)
+ - Added check for existing event in Song::recordEvent().
+ - Also added check and ignore if event value is already equal.
+10.06.2009
+ * Fixed: Link error concerning libmidiedit.a and CtrlEdit.a (T356)
+ - Somehow the list of link libraries was out of order. Reordered, tested OK.
+05.06.2009
+ * Fixed: Users in some locales reported audio automation save/load corruption. (T356)
+ - Changed CtrlList::read() to use QString and QLocale instead of strtol() and strtod().
+ - Checked: Other places using QString::toDouble() work OK because QString will fallback
+ to 'C' locale if formatting using current locale fails. (Hmm... But is it a speed hit?)
+ * Fixed: When linking, get errors concerning uuid functions not found. (T356)
+ - Added a section in configure.ac to test for uuid.h and libuuid.
+ - Added uuid lib to list of linked libs.
+ * Fixed: Midi port controller values not erased upon song load. (T356)
+ - There were leftover ghost values in the controller graphs between song loads.
+ - Added MidiCtrlValListList::clearDelete(), called from Song::clear().
+ * Added: Right-click automation popup menu to all midi controller knobs/sliders. (T356)
+ - Contains add/set event, and erase event.
+ - When activated by the muse mixer midi controls, it 'prefers' selected parts on the track
+ over unselected parts, otherwise it chooses the first part found. If no part is found,
+ it creates a new one to contain the event.
+ - When activated by pianoroll or drum editor controller graph, it uses the currently
+ selected part (within the editor).
+ - Adding 'previous event', 'next event', 'erase range' and 'clear automation', just like
+ the audio automation popup menu, will take more time. Not implemented yet.
+ * Disabled: Midi mixer strip automation type button. (T356)
+ - There is no midi automation recording mechanism (yet). Disabled to avoid confusion with users.
+ * Added: Some new instrument .idf files submitted by MST (Michael). (T356)
+ - Akai SG01v, Korg MS2000R, Korg X5DR, Korg X50, Waldorf MicroQ.
+02.06.2009
+ * Applied: Some patches by Mandriva packagers. (T356)
+ - muse-1.0-fix-str-fmt.patch for deicsonze printf fix.
+ - muse-1.0-linkage.patch fixes compiler hang up at deicsonze.cpp.
+01.06.2009
+ * Fixed: Instrument editor 'Save as' was not working right. (T356)
+ - Was overwriting existing instrument.
+ - Now prompts for new instrument name.
+ * Added text in ctrl view to explain how to add controller values (rj)
+
+24.05.2009
+ * Fixed: Missing uuid header in two files. (T356)
+ - My fault. Added include uuid/uuid.h to songfile.cpp and pcanvas.cpp.
+ * Fixed: Bounce to track: Wrong message "Select one audio output track", to "Select one target wave track". (T356)
+ - My fault. Message is displayed when there is one output and one or more wave tracks, and the user has clicked
+ on the output but not a track, too.
+ * Added: Start 'Wave editor' edit menu item, with configurable shortcut key. (T356)
+ - This will handle mutiple wave part editing. The existing right-click wave part popup menu
+ 'wave edit' item did that too, but now has been reverted back to opening a single
+ wavepart only, just like midi parts.
+ * Streamlined: All reading of 'part' xml is now done by a new routine. (T356)
+ - Replaced new PartCanvas::readClone(), and existing Part::read(), with standalone readXmlPart(),
+ in order to block creation of parts with mis-matched type, which don't belong on a track.
+ - Allowed mixed part .mpt files (midi and wave), and made a new clipboard type 'text/mixedpart'.
+ - Mixed part files can be dragged, imported or pasted to either a wave or midi track, and only the
+ relevant parts will be created.
+ - Added warning dialog showing how many, of how many total, parts couldn't be created.
+ - Added a parameter to Event::write() and EventBase::write() to force full wave file paths to be stored.
+ Used for copying, pasting, dragging, importing, exporting parts, but not for the song file itself.
+ * Added: Right-click wave part popup menu now has 'export', just like midi parts. (T356)
+ - As mentioned above, the full wave path is stored so there's minimum confusion when re-loading
+ the export, unless of course the file moved or was deleted etc.
+ * Fixed: Some issues with clones, controller events, and port controller values. (T356)
+ - It means "What you see on the controller graph is what you get, when you move the play cursor."
+ Port controller values are used when moving the cursor, they make the knobs move and send
+ values to the midi port. However, during play, they are not used, the song's controller events
+ themselves are used. Synchronizing these two mechanisms is what this is all about.
+ Fortunately, during play, "What you see on the controller graph" is ALWAYS correct, and is sent
+ to the midi port.
+ - TODO: Not quite done yet. Some functions may not update port controller values properly still,
+ like splitting or gluing clone parts.
+06.05.2009
+ =======================================
+ * 1.0rc2 tagged (rj)
+ =======================================
+
+02.05.2009
+ * Feature: Right-click popup menu on a clone part now has "Select N clones", where N is number of clones. (T356)
+ - Major addition: Part "clone chaining system". (See part.cpp for new functions). Speeds up searches for clones.
+ * Feature: Added 'Paste clone' to arranger edit menu. Pastes clones of copied parts. (T356)
+ - 'Paste' will behave as always, only making a fresh copy of non-clone parts, while cloning clone parts.
+ - 'Paste clone' will always make a clone no matter if the parts are clones or non-clones.
+ * Feature: Added 'Paste to track' and 'Paste clone to track' to arranger edit menu. (T356)
+ - 'Paste' (and 'Paste clone') now attempt to paste to the original track(s) which the parts belonged to,
+ or if the original track has been deleted, then the current track.
+ 'Paste to track' and 'Paste clone to track' paste all copied parts to the currently selected track,
+ which was the previous behaviour of 'Paste'.
+ - Much work went into making sure that all scenarios work with these features, like copy/paste, drag/drop,
+ drag/drop .mpt part files, drag/drop between different instances of muse etc.
+ * Fixed: Importing or dragging midi part file (.mpt) into muse now supports multiple parts in the file. (T356)
+ - Changed MusE::importPartToTrack().
+ * Fixed: Midi record into existing part past part end, in 'Replace' record mode, works now. (T356)
+ - Finished an erase events 'TODO' block in Song::cmdAddRecordedEvents.
+ * Fixed: Midi record into existing part, past part end, was decreasing part aref count, causing de-clone of clones. (T356)
+ - Removed extra "part->events()->incARef(-1)" from Song::cmdAddRecordedEvents().
+ * Changed: Number of midi ports from 16 to 32. (T356)
+ * Added: Muse application desktop file, and added installation of it plus the muse icon, upon 'make install'. (T356)
+ - Desktop file submitted by Orcan Ogetbil.
+ - Note if muse is installed to /usr/local, the desktop file might not find the icon.
+ * Fixed: "-mcpu= is deprecated" compiler warnings. (T356)
+ - Changed configure.ac to use -mtune and -march.
+ * Speedups: Some heartBeat routines (such as Meter) were constantly drawing, wasting time and causing flicker. (T356)
+ - Also fixed Track Info midi detect light, and Midi Sync lights.
+ * Fixed: Midi strip vu meters now have a peak indicator. (T356)
+ * Fixed: Audio mixer strips now update when config minimum meter/slider value changed. (T356)
+ - Also fixed blocky 'aliased' drawing at low signals / low minimum meter settings.
+ - Changed Track::_meter and ::_peak from ints to doubles for more accuracy, eliminate 'false' draw update triggers.
+ * Added: Configurable shortcut key: "Transport: Goto start". Default 'W' key (as in reWind to start). (T356)
+ * Added: Appearance configuration button: Clear background picture. (T356)
+ - Also fixed Appearance::apply() to clear the string if <none> selected.
+ - Also fixed Arranger::configChanged() to set canvas null background QPixmap.
+ - This means clearing the filename in the 'select picture' dialog also works now.
+ * Changed: Selected cloned parts now draw (inverted) dashed border, just like unselected parts. (T356)
+ * Changed: Part drag-clone key from Shift-Ctrl back to Alt. (T356)
+ - My fault. Was changed to Shift-Ctrl, but Ctrl is for selecting all items in a row or limiting movement to x or y.
+ - Still not a good thing. Some desktops even reserve Alt, Shift-Alt etc. for window move, snap etc.
+ - TODO: Must find a way to override desktop setting. Without Alt, we don't have enough keys to work with!
+ Don't want user to have to disable setting.
+ * Cleanups: Moved some methods outside of Part and Track classes which I had put inside them. (T356)
+ - Methods like addPortCtrlEvents() deletePortCtrlEvents() etc.
+ * Changed: Muse wants qt >= 3.2, but some .ui files had version 3.3. (T356)
+ - Changed editinstrumentbase, editgainbase, aboutbox, configmidifilebase, gensetbase, midisync,
+ fluidsynthguibase, and vamguibase .ui files.
+ * Fixed: Midi Track info panel was allowing track name change to an already existing name. (T356)
+ - Fixed Arranger::iNameChanged() to warn. Changing the name in the arranger Track List already warns OK.
+ * Fixed: Crash or bizarre behaviour when undoing a track rename operation. (T356)
+ - Replaced default simple Track class assignment operator with custom method. Added a flag parameter to
+ Track::clone and Track copy constructors to indicate partlist is simply assigned, not parts cloned.
+ Also removed the lines reassigning each part's track (!). Can get away with this since track rename
+ is the only operation to use that, but something better would be needed if more 'normal' behaviour
+ was needed in copy constructor and assignment operator !
+05.04.2009
+ * Fixed: Arranger part cloning works now! (Hold shift-ctrl while moving part - note dashed border on cloned parts). (T356)
+ - In Song::cmdChangePart() do not call "oldPart->events()->incARef(-1)" if new part is clone of old part,
+ (that is, old/new parts' eventlists point to same eventlist).
+ - Changed from 'alt' to 'Shift-Ctrl' button combo to activate cloning in Canvas::viewMousePressEvent().
+ Alt is reserved for moving the whole window (on my machine), so most people probably never knew about cloning?
+ - This also fixes a reference count problem when renaming a part, ref count was being dec'd past 0.
+ Quite possibly fixes some other issues, too. Testing...
+ * Fixed: Transport window was disappearing by itself. (T356)
+ - Removed WStyle_Tool from Transport constructor. Seems to test Ok now.
+ - Gave it a caption "Muse: Transport", to appear on task bar.
+ * Fixed: Big time display now shows MTC minutes, seconds, frames, and subframes. (T356)
+ * Fixed: Wave editor MTC cursor time readout was not right. (T356)
+ - Use samplepos to set pos2 value in WaveEdit::setTime().
+03.04.2009
+ * Followup: Track info panel program, volume, and pan were not allowing editing values. (T356)
+ - Fixed the track info heartBeat function.
+ * Followup: Some more changes to respect MidiDevice open flags, set in midi config window. (T356)
+ - Strangely, midi config 'write enable' lights still weren't stopping events from being played,
+ even though the port was clearly unsubscribed successfully for writing (!)
+ Also, strangely, only if Jack Midi was disabled, some device putEvent() error messages were appearing.
+ I expected the messages to ALWAYS occur but it didn't happen, even though events were always played.
+ - Added MidiDevice::_writeEnable and ::_readEnable, set when the device is opened or closed.
+ - Changed the various ::putEvent methods to respect _writeEnable. (_readEnable not used yet, because
+ port unsubscribtion for reading IS working - events stop arriving).
+ * Added: Instrument definition file for playing to an Emu 4MBGSMT SoundFont. (T356)
+01.04.2009
+ * Fixed: Midi config window: Clicking on green in/out enable lights was not actually dis/enabling in/out. (T356)
+ - As initiated from MPConfig::rbClicked(), MidiAlsaDevice::close() was seeing the NEW flags, not the old.
+ So, in MidiAlsaDevice::close(), removed _openFlags check, and added snd_seq_get_port_subscription() check.
+ - Tested Ok disabling/enabling ins/outs, and clearing/setting port's device.
+ * Fixed: Muse was not storing midi port 'openFlags' in the song files. (T356)
+ - Muse could read the old 'record' flag and the new 'openFlags' tags, but only stored the
+ old 'record' tag (well, it was actually storing rwFlags by mistake).
+ - Added the necessary tag to file write. (Related to the fix above - now it stores the port in/out enable).
+01.04.2009
+ * Fixed: Compile problem with muse widgets plugin "undefined reference to `main'". (T356)
+ - Added -c to musewidgetsplugin_so_CPPFLAGS in muse/widgets/Makefile.am
+ - Re-ran automake, configure, built, tested ok.
+ - To be tested by users...
+ * Fixed: Compile error: "editctrlbase.cpp:53: error: invalid use of incomplete type 'struct PosEdit'" (T356)
+ - Added a <customwidget> section to editctrlbase.ui
+ - To be tested by users...
+31.03.2009
+ * Feature: Midi file export: Configuration options added for 2 or 4 byte time signatures + note off optimizations. (T356)
+ - For 4 byte timesigs: Add fixed "metronome" value of 24 (once per quarter-note), and "32nd notes per quarter-note" value of 8.
+ - For note off optimizations: Replace note offs with zero velocity note ons.
+ * Fixed: Midi track info panel now updates when external changes occur, such as keyboard program changes. (T356)
+ - Changed track info window from songChanged based updates to periodic heartBeatTimer based updates.
+ * Feature: Added midi input detect indicator to track info panel. (T356)
+ - Detects all note on-off, controller, aftertouch, program change, and pitchbend (but not sysex or realtime)
+ events on the selected channels, on the selected midi ports.
+ * Fixed: Midi program adjustment controls now respond when external program changes occur. (T356)
+ - Added a section to handle ME_PROGRAM in MidiPort::sendEvent(), so that visual controls can update,
+ such as trackinfo 'program' , and pianoroll 'program' controller adjustment knob.
+ * Fixed: Some issues with 'Follow Song' setting and position cursor position/visibility. (T356)
+ - Added 'xorg' in ppos calculations in Canvas::setPos() (and others like WaveView, but that still isn't quite right.)
+ - For windows which have an appreciable x origin (space at the left of the contents), the play cursor was
+ too far right or not visible sometimes, especialy with large horizontal zoom, particularly the arranger.
+ With 'Follow Continuous', the play cursor should now stay about in the middle of the windows.
+ With 'Follow Page', the view should now more or less always move in full 'pages'.
+27.03.2009
+ * Fixed: Track info 'instrument patch' list box was not correct when selecting another track with unknown patch. (T356)
+ - Broken last fixes.
+ * Improved: Support for & < > \ " characters in xml files. (T356)
+ - Fixed xml.cpp
+ - Many places in muse can now use them (ex. track name, instrument names/patches/controllers etc.)
+ - TODO: Writing: Must still check for places which manually use Xml::nput, put etc, but at least muse
+ should now read them all without trouble.
+ * Fixed: Instrument Editor was still asking to save sometimes even if user clicked save already. (T356)
+ - Call instrumentNameReturn() patchNameReturn() and ctrlNameReturn() from various places, to force update.
+ * Feature: Redesigned Midi Sync Editor and sync system. To allow multiple inputs/outputs, and more. (T356)
+ - See tooltips or click on What's This to see detailed explanations of each item.
+ - TODO: Only realtime MC events are tested at the moment. MMC and MTC are not tested, or not working yet.
+ - TODO: Fix midi sync clock input. Observed problems: wandering, even reversing(!) song cursor time.
+ Can be stored in .med file that way (tempomap->fix is negative number!) making a bad file which won't play.
+12.03.2009
+ * Fixed: Global configuration dialog 'Displayed Resolution', and added 'Midi Resolution' boxes. (T356)
+ - Separate midi/gui configurations were allowed, but not implemented.
+ - TODO: Now make the 'Displayed Resolution' setting actually do something.
+ The 'Midi Resolution' currently sets BOTH what should be separated into midi and gui.
+ Only config.division is used throughout muse, not config.guiDivision.
+ Also, now that these settings are working, they reveal some issues with drawing, such as
+ not enough pianoroll zoom-out ability with high resolution.
+ * Improved: Midi Clock output. Was improper, causing external devices to misbehave. (T356)
+ - Changed MidiSeq::processTimerTick().
+ - Tested: With RTC resolution at 8192, the target device slowly drifted out of phase with muse after
+ about 20 bars. With RTC resolution at 1024 it was actually more stable (100 bars or more), despite
+ more clock jitter.
+ Used an equalization scheme to balance the time out. Must test if stability improves without this scheme.
+ MidiSeq::processTimerTick() still needs some tweaking.
+ - You may see severe phase difference if moving the cursor around and playing. Try playing from the song start.
+19.02.2009
+ * Patch: Patch to find best available ALSA timer. (T356)
+ - Submitted by Pedro Lopez-Cabanillas. Patch was named "muse_alsatimer_2nd.patch".
+ - "This patch adds selection logic to ALSA timer initialization, trying to find
+ the best available ALSA timer (a non slave timer with lowest resolution).
+ Currently muse uses only the ALSA system timer, even when the system has an
+ ALSA RTC or ALSA HPET drivers available, which are probably better for many users."
+ * Patch: Patches for printf%zd/size_t, and grepMidi/gcc4.4 issues, and fix some compiler warnings. (T356)
+ - Submitted by Orcan Ogetbil.
+ - Patches were named muse-size_t.patch, muse-gcc44.patch, and muse-fix-some-compilation-warnings.patch
+ * Fixed: Some more issues with manipulating drum tracks and underlying controller events. (T356)
+ - Changing a drum track's output port, (and allowing muse to change the whole drum map),
+ was not changing existing port controller values.
+ - Also changing a track from 'midi' <-> 'drum' was not changing the port controller values properly.
+ - NOTE: I still observed occasional 'ghost' midi port controller values. Tracking this issue...
+ * Fixed: Seek or Init Instrument with XG instrument caused double loading of controller init values. (T356)
+ - Moved controller init code from MidiPort::sendGm/XgOn() to a new MidiPort::sendGm/Gs/XgInitValues()
+ and changed Audio::initDevices() to call them.
+ * Added: 'Value' readout on menu toolbar (beside 'Cursor' readout), in Drum Editor. (T356)
+ - Just like pianoroll, except it only shows controller values.
+ - Now you can read the values you are drawing on the Drum Editor controller graph.
+ * Fixed: Some issues with configuration, and appearance window. (T356)
+ - Muse now remembers configured 'selected track foreground/background' colours.
+ - Added "Midi Editor -> controller graph" colour configuration option (default navy blue).
+ - Fixed Arranger and Style/Fonts windows not showing current values.
+ * Fixed: Segfault with Appearance configured to show events, with a part tick > 0 on part canvas. (T356)
+ - Added limit checks on from/to variables in PartCanvas::drawItem().
+ * Fixed: Midi controller graphs were displaying 'quantization' vertical lines instead of 'snap' lines. (T356)
+ - Changed CtrlCanvas::draw() to use raster instead of quant value.
+ - Also changed gray background colour to darkGray, so 'major' snap lines can be seen.
+ * Added: Send 'null' midi controller parameters after each RPN/NRPN controler event. (T356)
+ - Symptom: After muse sends any RPN/NRPN controller event, operating the 'data' (MSB/LSB)
+ midi controllers affects that RPN/NRPN controller.
+ - Cause: The RPN/NRPN parameters are still active, open to any subsequent data adjustments.
+ - Cure: Send 'null' parameters after each RPN/NRPN event, so that subsequent data adjustments
+ are sent there instead.
+ - Added adjustable 'null' parameter numbers to the instrument editor. Typically they should
+ be '127/127', but they are adjustable (select an unused controller number) if desired.
+ They can also be turned off, if desired, by selecting 'off/off', so that muse will NOT send
+ them. Turning them off is useful for instruments which do not use RPN/NRPN controllers.
+ * Changed: GS/XG instrument patches high banks from 18 to 128, 17 to 127, and 5 to 65. (T356)
+ - Was it a typo? XG specifications say high banks should be 128, 127, 65 etc.
+ - Also, in instrument editor, reorganized XG Drum patches into Drum Kits and Sound FX.
+ - TODO: Other instruments may have to be changed, too.
+ * Fixed: Track info 'Rec' button: If new part was created, it was too short even to see. (T356)
+ - Changed Song::recordEvent to round (tick + 1) up one bar.
+ - Added separate record buttons for program (and bank), volume, and pan.
+18.02.2009
+ * Added: Missing midi program controller to pianoroll/drum edit controller graph and adjustment knob. (T356)
+ - Since the range is limited to 1-128, this only edits the program byte, NOT the program MSB or LSB!
+ - Since only the program byte is edited, adding new values to the graph uses the CURRENT
+ program MSB and LSB, as shown in the track info pane (H-Bank/L-Bank).
+ If the current program is 'unknown' (all off), then the graph uses MSB=off, LSB=off if the song type
+ is GM, and MSB=1, LSB=1 if not.
+ - I considered using the 'previous value' on the graph for the MSB/LSB, but then there would be
+ no way to quickly set the MSB/LSB when adding new values to the graph.
+ - The only other way is to draw on the graph, and then use the midi event list editor to change
+ the program MSB/LSB values.
+ - TODO: Fix the track info H-Bank/L-Bank/Program behaviour. Do not allow program to be 'off'
+ if H-Bank/L-Bank are not 'off'.
+ * Changed: Instrument editor behaviour. Allow a 'user' instrument directory PLUS the 'built-in' directory. (T356)
+ - Muse now looks first in the MUSEINSTRUMENTS directory (default MUSEHOME/muse_instruments, where MUSEHOME
+ is default HOME/), then looks in the 'built-in' instrument directory (/usr/share/muse etc.)
+ - Instruments found in the user directory OVERRIDE instruments with the SAME NAME in the 'built-in' directory.
+ - This allows users to quickly experiment with existing instruments while keeping the same instrument name.
+ - TODO: add a 'Delete' button to the instrument editor.
+ * Added: Pitch bend sensitivity controller to fluidsynth. (T356)
+ * Fixed: Organ synth: Volume not working. (T356)
+ - There is no volume gui control to return proper min/max values.
+ - Added a trap for CTRL_VOLUME in Organ::getControllerInfo() and
+ set min/max to 0/127.
+ * TODO: Fix some broken VAM synth midi controllers with improper range. (T356)
+09.02.2009
+ * Fixed: Drum map: Grey vertical lines not proper when map header rearranged. (T356)
+ - Used header->mapToSection when drawing grey vertical lines in dlist.cpp.
+08.02.2009
+ * Fixed: Drum map - Changing ANote, Channel, Port now updates controller graph and knob. (T356)
+ - Changing ANote, Channel, or Port of a drum map item now updates the controller graph
+ and adjustment knob. Useful for XG/GS drum controllers.
+ - TODO: Fix 'Undo' changing ANote, Channel, Port.
+ * Fixed: Drum map - List item drag and drop works properly now. (T356)
+ - Was not manipulating events properly, although port controller values were still OK.
+ Useful for XG/GS drum controllers.
+ - TODO: Fix 'Undo' of drag and drop.
+ * Changed: All calls to some new message sending routines with direct calls. (T356)
+ - Replaced all calls to msgSetTrackOutChannel, msgSetTrackOutPort, msgRemapPortDrumCtlEvents,
+ and msgChangeAllPortDrumCtrlEvents, with direct calls (song->remapPortDrumCtlEvents etc.),
+ bracketed by audio->msgIdle(true) and audio->msgIdle(false).
+ - For complex operations, 'msgIdle' technique seems to be preferred over sending messages.
+ - Tested such operations while in stop mode, and while playing. Tested OK.
+06.02.2009
+ * Changed: Hard coded LADSPA paths in plugin.cpp and ssplugin.cpp to include /usr/lib64/ladspa
+ and /usr/local/lib64/ladspa. (T356)
+ - Suggested by Orcan Ogetbil
+ - Note that the environment variable LADSPA_PATH still overrides these hard-coded paths.
+06.02.2009
+ * Patch applied: Removes duplicate implementation of fast_log*() functions in ssplugin.h (T356)
+ - Submitted by Orcan Ogetbil
+05.02.2009
+ =======================================
+ * 1.0rc1 tagged (rj)
+ =======================================
+04.02.2009
+ * Fixed: Track info panel 'Rec' button not changing existing values on controller graph. (T356)
+ - Name changes: MidiCtrlValList::add, ::del, ::find to ::addMCtlVal, ::delMCtlVal, ::findMCtlVal
+ to make it easier to spot all usages of them.
+ - Simple fix in MidiCtrlValList::addMCtlVal: Return false if the value is already found for the part.
+ - TODO: It takes three 'undos' to undo the 'Rec' button push. It is because prog, vol, and pan
+ are changed. This should be unified into one undo...
+
+01.02.2009
+ * Fixed: Compile error on 64-bit systems, in audiotrack.cpp at cacheJackRouteNames(). (T356)
+ - Changed from unsigned int pair key, which required pointer conversion, to AudioTrack* pair key.
+ - Test OK (on my 32-bit system). ** Need 64-bit users to test it. **
+ * Fixed: Segfault when playing a note in a drum map, when the note's port says 'none'. (T356)
+ - Added a line in the 'don't echo controller changes back to software synthesizer' block of
+ Audio::processMidi(), to check valid device.
+ * Fixed: Missing or stuck notes or events on recording (or rec-armed only) midi track. (T356)
+ - Symptom: Playing live (rec-armed only), or recording, on a midi track gives stuck or
+ missing notes and other events. Very annoying bug!
+ - Cause: A single list was used for recording midi events, while muse was also reading from that list.
+ - Employed a 'flipping' two-list technique for MidiDevice::recordEvents().
+ - In Audio::processMidi(), process one list while MidiDevice::recordEvent() writes to the other.
+ * Fixed: Manipulating controller events in midi track parts was not changing midi port controller values. (T356)
+ - Symptom: Change a part's midi controller events, or move or delete a part, or delete a track, then the underlying
+ midi port's controller values are not altered, leading to 'phantom' or 'ghost', or duplicate controller values,
+ even where there is no part or no track, or no controller values where there should be !
+ - Oops, how did this major bug go unnoticed so long?...
+ - Major rewrite: Created a struct MidiCtrlVal{int val, Part* part}, and changed class MidiCtrlValList from
+ std::map<int, int> to std::multimap<int, MidiCtrlVal>
+ Changed MidiCtrlValList::add(int tick, int value) to MidiCtrlValList::add(int tick, int value, Part* part),
+ and MidiCtrlValList::del(int tick) to MidiCtrlValList::del(int tick, Part* part),
+ and added MidiCtrlValList::find(int tick, Part* part).
+ Changed Song::addEvent(), Song::changeEvent(), Song::deleteEvent(), Song::addPart(), Song::changePart(),
+ Song::removePart(), Song::insertTrack2(), and Song::removeTrack2() to make sure port controller values
+ are added/removed properly.
+ Changed a few other things to make it all work.
+ Reasons: The Part* member was added to each controller value item in the list, so that the system can
+ know exactly which part was responsible for putting a value in the list.
+ This helps when we have overlapping controller values from events of different parts on the same port and the same channel -
+ if one of the parts is deleted or moved, the overlapping values from the events of the other part are NOT disturbed
+ within the port's controller value list.
+ The list was changed from 'map' to 'multimap' to accommodate the multiple values from events of different parts.
+ - NOTE: When there are overlapping values from events of different parts, the system will arbitrarily choose the
+ first value it finds at a given time. I considered 'mixing' the overlapping values together
+ (by averaging, or maybe highest/lowest value), but I felt it would just cause more confusion for the user.
+ Therefore it is up to the user to be aware of overlapping controller events and deal with them.
+ If you are looking at a controller graph and it shows a particular value at some time, but the
+ midi knobs/sliders and actual midi output does NOT correspond to what you are seeing, then
+ most likely ANOTHER part on the same port and channel has an event at that same time, and that
+ event's value is likely the one that is being used by the system.
+ * Fixed: Changing a midi track's out port or channel was not updating the ports' controller values. (T356)
+ - Changed MidiTrack::setOutPort() and MidiTrack::setOutChannel() calls to new MidiTrack::setOutPortAndUpdate()
+ and MidiTrack::setOutChanAndUpdate(), which make sure the port's controller value list is properly updated.
+ - Part of the larger fixes above.
+ * Fixed: Midi adjustment knob on controller canvas was not working after moving the part to another track. (T356)
+ - Added some code to CtrlCanvas::songChanged() to set curPart and curTrack and update the knob,
+ upon SC_PART_MODIFIED.
+ * Fixed: Clear midi input transforms when song cleared. Update transform dialog when song changed. (T356)
+ - Symptom: Repeated loading of songs causes duplication of midi transforms, causing .med song files to grow big !
+ - Added clearMidiInputTransforms() to midiitransform.cpp, called by Song::clear().
+ - Added updatePresetList() and slot songChanged() to MidiInputTransformDialog, triggered by Song::songChanged.
+ - Added some code to readMidiInputTransform() to **auto-eliminate** duplicate transforms in existing .med files.
+ - Still some 'quirkiness' with the dialog buttons, but it works better now.
+ - ALSO: Applied those same fixes to midi transforms and the midi transform dialog.
+ * Fixed: Notes not recorded to track for a drum map 'instrument item' having non-default (track) port. (T356)
+ - Changed to drumRecEvent.setPort(port) in 'Track::DRUM' section of 'if(recording)' section of Audio::processMidi()
+ so that buildMidiEventList() would accept the notes.
+ * Fixed: Removed jack midi port names from audio in/out port lists. (T356)
+ - Added JACK_DEFAULT_AUDIO_TYPE to jack_get_ports calls in JackAudioDevice::inputPorts and ::outputPorts.
+ * Fixed: Notes were being mixed up when switching a track type between midi and drum. (T356)
+ - Changed to drumMap[pitch].enote in 'Drum -> Midi' section of TList::classesPopupMenu().
+ * Completed: Moving multiple events from multiple parts when editing in pianoroll or drum editor. (T356)
+ - Work had begun several commits ago. Completed.
+ - Now you can select and move multiple events from different parts in the editors.
+ * Feature: When editing multiple parts in the pianoroll or drum editor, controller graphs are now overlaid! (T356)
+ - When you are editing more than one part at a time in the editors, the controller graph will overlay
+ all of the graphs together!
+ - The currently selected part will show its controller as normal blue columns, as before, but the other
+ unselected parts will draw their controllers as a gray 'ghost' outline on top.
+ - TODO: Add menu items, hot keys etc. to cycle through each part (in case there are no notes to select in a part!)
+ * Improved: Support for GS/XG midi drum controllers. (T356)
+ - Added MidiPort::drumController(). Tells if an event is a drum controller event, according to the port's instrument.
+ Does it by looking up the event in the instrument's controller list.
+ Would prefer a 'marker flag', eg use the event 'dataA' high bit to mark as drum controller event, but it's too risky!
+ Used MidiPort::drumController() a dozen or so places where drum controller events needed remapping/manipulation etc.
+ May be a speed hit with many/large controller graphs? Test further...
+ - Added code to update port controller values when changing drum map ANote, channel, or port.
+ - KNOWN BUGS: Still a few loose ends to tie up: Port controller values (but not track events) may not be correct when:
+ 'Swapping' (by dragging) items in the drum map, and
+ loading a song with a drum map which had 'swapped' (by dragging) items.
+ Some stuff (midi value adjustment knob) is not updated when changing drum map ANote, channel, or port.
+ Workaround: Be sure to select another drum map item, then reselect the changed item again, after such operations.
+ * Changed: All softsynth midi controllers now have default initial values. (T356)
+ - Added default initial values to all softsynth controllers such as fluidsynth's controller map.
+ - Added 'initval' argument to all ::getControllerInfo() methods, which is passed to the newly created
+ controller (new MidiController) in SynthI::initInstance().
+ - These initial values will then show on the various gui midi adjustment controls, knobs etc.
+ * Changed: Fluidsynth master gain and reverb initial settings. Gain was too loud and there was too much reverb. (T356)
+ * Fixed: Follow up - some issues with instrument editor. (T356)
+ - Instrument editor was sometimes falsely detecting instrument had changed.
+ - Also, do not list 'internal' instruments like generic midi, soft synths, vst etc.
+ - Also, upon 'Save As', prompt for a new instrument name if the user hasn't changed it, to avoid duplicates.
+ - Remove any unsaved (new) instrument when moving to another instrument, closing etc.
+ - Fixed up tab order of instrument editor controls.
+ - TODO: When muse wants to close, trap it in the instrument editor so we can save.
+ * Fixed: Problem in xml parser. '&amp', '&quot' etc were being read as '&&', '""' etc. (T356)
+ - Added a couple of lines, and removed one, in Xml::stoken().
+ * Fixed: Zero bias midi controllers (with a negative minimum value, like 'pan') weren't working right. (T356)
+ - Broken after last changes. Added an updateBias() line to MidiController::read() 'controller' tag end section.
+ * Added: Send all instrument controller initial (default) values to all of a port's midi channels,
+ except where explicitly initialized by the song. (T356)
+ - Added some code to MidiPort::setMidiDevice to initialize controllers from instrument, if needed.
+ - When setting a midi port's device (such as in Settings->Midi Ports, or simply when loading a song),
+ then any specified controller initial values in the instrument are sent to ALL of the port's channels,
+ EVEN if the controller is NOT in the song. This ensures better consistency between songs, so that
+ chosen controllers are not left in undesirable 'leftover' states.
+ (Taken from important comments in MidiPort::setMidiDevice(): )
+ For example: A song is loaded which has a 'reverb level' controller initial value of '100'.
+ Then a song is loaded which has no such controller (hence no explicit initial value).
+ The 'reverb level' controller would still be at '100', and could adversely affect the song,
+ but if the instrument has an available initial value of say '0', it will be used instead.
+ - It is desirable to have defaults for some controllers, but it is wise to have NO default for certain
+ other controllers, like the 'reset all controllers' and 'sustain' controllers (actually, zero would be OK).
+ * Changed: Clicking Midi->InitInstrument (or moving to song position 0) now initializes controllers
+ from instrument controller initial values, if they exist, or previously hard coded values if not. (T356)
+ - sendGmOn() and sendXgOn(), which are called via Audio::initDevices(), now use instrument controller
+ initial values if they exist, or the previously hard coded values if not.
+ * Changed: Non-softsynth non-GM drum tracks: Patch popups now show all drum AND melodic patches on ANY channel. (T356)
+ - For drum tracks, if the song type is not GM, and the track's port is not a softsynth, then all patches
+ including drum AND melodic are shown for ALL channels when 'select instrument patch' popup is clicked,
+ regardless of the patches' 'drum' flag setting (in the instrument editor).
+ (Softsynths handle their own patch popup lists).
+ - Added a 'bool isDrum' parameter to all populatePatchPopup() methods, which is passed 'true' only
+ if it's a drum track, and changed a couple of lines in the only class which uses the drum flag - MidiInstrument.
+ - Previous behaviour was to show drum patches ONLY on channel 10 of drum tracks.
+ - Reasons for change: 1): A midi device might have a non-standard drum channel(s), so drum patches
+ as well as melodic patches are shown for all channels. 2): Since any channel can be used in the drum map,
+ melodic patches are shown as well as drum patches so that any patch can be selected for any channel.
+ NOTE: Each of a drum track's channels which are used in the drum map should be set to a patch number,
+ otherwise it doesn't work right ! (**) This is true for softsynth devices too ! (**).
+ So it was imperative that the user be able to select ANY patch on ANY channel, to suit their setup,
+ for flexibility.
+ (If that same flexibility were applied to regular midi tracks (non-drum tracks), it might make the
+ 'drum' flag for patches obsolete, since there would be no reason to filter them from the list !)
+ * Changed: All midi controller event values sent to a midi port are now constrained (limited) to the port's
+ instrument controller's range (if that instrument controller exists). (T356)
+ - Example: Incoming events from a midi keyboard's pitch wheel range from -8192 to 8191, but it is
+ desired to limit that range to, say -200 to 8191. One could use the midi input transformer to
+ accomplish this, but instead now you can simply adjust the chosen instrument's pitch controller range
+ (in the instrument editor), and then the pitch wheel's range will be limited to that range.
+ - This only affects playback events (and therefore 'live' incoming events), but does NOT affect
+ actual recorded data, so that by simply readjusting the instrument controller's range,
+ or by changing instruments, the range can be restored with no loss of recorded data range.
+ * Fixed: Cleaned up all .idf files and changed ranges of all 'zero-bias' controls (-64/63 'pan' etc). (T356)
+ - Many .idf files had bare '&' characters in them, causing corruption of names and values when reading.
+ - Also turned on the 'drum' flag for ALL drum patches in MANY .idf instrument files.
+ Some .idf's I was uncertain about, and did not change : AlesisQS6, Waldorf Q.
+ * Changed: Fluidsynth pan controller range from 0/127 to -64/63. (T356)
+ - To be consistent with .idf file changes.
+ * Replaced: All direct calls to MidiPort::setHwCtrlState() from GUI thread, with new Audio::msgSetHwCtrlState(). (T356)
+ - My fault, I was not paying attention to iter-thread communications.
+ * Optimizations: Optimized MidiPort::setHwCtrlState(), MidiPort::sendEvent(), and calls to MidiPort::setCtrl(). (T356)
+ - Optimized MidiPort::sendEvent().
+ - Replaced code in MidiPort::setHwCtrlState() with more optimized code.
+ - Replaced several clumsy calls to MidiPort::setCtrl(), which checked for and created the controller,
+ with a new optimized MidiPort::setControllerVal().
+06.01.2009
+ * Fixed simpledrums/ssplugin.cpp to build with recent Ubuntu 8.10 (FN)
+17.08.2008
+ * Feature: Muse now has an instrument editor, complete with a midi controller editor! (T356)
+ - Click on the menu "Midi->Edit Instrument".
+ - You will see a sysex editor there too, but it is non-functional. (Use the midi event editor instead).
+ - >>> Tooltips and "What's This?" are provided with IMPORTANT information. <<<
+ >>> If you want to understand how to use instruments, patches, and controllers in your song, <<<
+ >>> READ THEM! <<<
+ * Added: Environment variable MUSEINSTRUMENTS, so a (writable) instrument directory can be chosen
+ instead of default /usr/share/muse/instruments etc. (T356)
+ - Also added display of environment variables recognized by muse to command line help (muse -h).
+ * Fixed: Popup displays of instrument patches to filter according to GM, GS, XG song type, and whether
+ on drum channel 10. (T356)
+ - Use the new instrument editor to set these GM, GS, XG, and drum filters.
+ * Changed slightly: Creation of a new drum track - initialize to channel 10 instead of 1. (T356)
+ * Fixed: Force audio prefetch seek when play is pressed. (T356)
+ - In Audio::seek, changed the call of audioPrefetch->msgSeek to force a prefetch,
+ to ensure the most recent data. Things can happen to a part before play is pressed
+ such as part muting, part moving etc. Without a force, the wrong (old) data was being played.
+ - If you perform those same operations while playing, there may be a few seconds delay before you
+ hear the changes (the play cursor must move a certain distance before they're heard).
+ - TODO: How to make the same thing happen when transport is externally started, such as from qjackctl.
+ OR: How to force a prefetch at specific places like when a part is muted, and when it is moved,
+ instead of just before play is started. That way the operations can be done quickly while playing.
+ * Fixed hangup: Upon loading of songs with fluidsynth soundfonts which can't be found. (T356)
+ - (!) Removed error message box from FluidSynthGUI::processEvent causing freezeup.
+ - You can still read fluidsynth errors by running muse on a command line. I figured it was
+ better to be able to load the song and to see errors, instead of just letting it freeze.
+ - This should now allow you to share fluidsynth songs with other people (without the soundfonts).
+ * Fixed: Audio aux tracks not working, intermittent. (T356)
+ - Aux functionality was intermittent depending on whether the aux had out routes,
+ and whether any tracks feeding the aux had out routes, and other factors.
+ - In Audio::process1, rearranged, and added, some code to make aux work all the time now.
+ * Speedups: To some songChanged() functions. Ignore unnecessary flags. (T356)
+ - For example simply adjusting midi gui controls would cause costly and
+ unnecessary rebuilding/redrawing of certain areas, like parts of trackinfo, and controller graphs.
+ - Noticeably less 'slugglish' when adjusting controls now.
+ * Fixed: Midi controller events not being added to midi port controller, after record with no part. (T356)
+ - Symptom: If you record midi controllers without first creating a part, muse creates the part
+ for you and creates the controller graph OK, but when you move the play cursor around, the graphs
+ have no effect. This doesn't happen if you first create the part to record into, or manually edit a graph.
+ - Symptom: As above, the graph is OK, but the controllers don't show up in the list when you click 'ctrl'.
+ - Changed a line in song::cmdAddRecordedEvents() to use addEvent() instead of adding directly to list.
+ * Fixed: Automatic detection of pitch bend wheel not working. (T356)
+ - Added some code to MidiPort::sendEvent to detect ME_PITCHBEND events.
+ - Note: There appears to be a sound system bug (using ALSA 1.0.15): The system will NOT deliver any pitch
+ bend events to muse until ANOTHER controller is detected, ex. move the modulation wheel THEN the pitch wheel.
+ Verified with another app - RG - and with a real midi hardware to hardware connection (not my KB's fault).
+ * Observed: Stuck or missing midi notes when recording or even just 'record armed only' 'live' playing. (T356)
+ - The sound system appears to be having occasional trouble detecting midi events, including note-off !
+ Verified with muse and RG (using ALSA 1.0.15). Not sure why or when this started, seems early this year...
+ * Linked: All midi knobs and sliders with their labels. (T356)
+ - Now they work together when displaying and adjusting.
+ - After careful consideration of the meaning of 'off' in those
+ labels, you now double click the label to turn the midi control on/off.
+ Off does not mean 'zero'. Rather, it means:
+ 'Don't save this current value in the song file'.
+ When a midi control is 'off', loading the song won't initialize the controller with a value.
+ 'Off' means the current value is set at 'unknown'. 'Unknown' means the actual
+ 'behind the scenes' hardware value is the last value that was set. The knob or slider still
+ shows this value, or a default initial value, or if both of those are unknown, then 0.
+ * Changed: Midi and audio level slider/knob labels to show '---' for infinite attenuation. (T356)
+ - As mentioned above, the midi level slider labels can also show 'off'.
+ * Fixed: The new midi controller knob in pianoroll and drum editor. (T356)
+ - It was not adjusting anything.
+ * Fixed: Midi vu meters again. Now they should work! (T356)
+ - They were not responding to play events with an off velocity other than zero.
+ * Fixed: Marker view window doesn't remember if it is open or closed. (T356)
+ - Add a markerClosed function to app.
+ * Reverted: Back to audioRTalloc in mpevent.h (T356)
+ (!) - I had changed it to midiRTalloc, but that may have been causing problems like
+ midi shutdown (audio OK) after a few hours, and crash soon afterwards.
+ Verifying... No more midi shutdowns after a few hours, so far...
+ Ooops, not so fast, happened again...
+30.04.2008
+ * Fixed bug in drum editor. Dragging the splitter too far left causes runaway resize, stuck in loop. (T356)
+ - Tried several different arrangements, but QSplitter won't behave the way I need it to. Best I could do, so far.
+ - You may notice some strangeness, like the controller graph not aligning with the matrix, if the right edge
+ of the window is offscreen.
+ * Added 'add/set event' to audio automation right-click popup menus. Ancient request by R.J. (T356)
+ * Fixed arranger midi strip and arranger top controls not giving up keyboard focus after adjustment/entry. (T356)
+ - Further request by user G.B. Changed all relevant QSpinBoxes to custom SpinBox, which behaves like this:
+ Click up/down, or mousewheel, or hit enter with un-modified text (which means enter TWICE for modified text),
+ and the control will give up focus, thereby allowing you to use global shortcut keys afterwards.
+ Up/down keys still keep the focus.
+ - TODO: Piano roll and drum editor.
+ * Fixed major problem with lost jack routes upon file save, when save causes a jack shutdown. (T356)
+ - Symptom: You click save, but jack shuts down during the save, causing lost jack routes in the file.
+ - Fix: Cached the jack route names before file save, then used them during AudioTrack::writeRouting() xml code.
+ Note this doesn't actually stop shutdowns from happening - now it just saves your files without losing jack routes.
+ * Fixed mysterious intermittent wave part muting, as mentioned in 11.03.2008 (T356)
+ - !!! PartList and EventList are now sorted by frame instead of tick, for wave parts only. Because fetchData()
+ didn't like sorting by ticks. This is a radical change. So far, no other areas found requiring further coding, but...
+ * Overlapping wave parts and events now mix together, instead of one part or event taking priority over others ! (T356)
+ - Virtually no speed hit, since muse was already cycling through all the wave parts/events,
+ just not mixing them together. So the very LAST wave part/event in the part/event lists was
+ taking priority over others.
+ * Fixed default instrument midi controller min/max values. (T356)
+ - Symptom: Some pianoroll midi controller graphs much too small or too big, vertically.
+ - Cause: You added these controllers to your track as a midi instrument, ex. General Midi (GM), then you
+ changed the instrument, ex. to 'Generic Midi' or another instrument without those controllers,
+ which set improper min/max values.
+ - Fix: Added code to MidiPort::midiController() to set proper min/max values based on standard controller type.
+ However, if the original instrument used CUSTOM min/max values, the graph may still be distorted.
+ * Fixes to midi event list editor. (T356)
+ - Added true sorting of event list. Now you can click on column headers to sort as desired!
+ - Added formatted program number display (like 1-1-120) for 'Val B' column.
+ - Fixed Poly After Touch events display in list. They were being listed as Channel After Touch.
+ - Fixed crash when 'Delete events' clicked with no actual items selected.
+ - 'Edit Contoller Event' dialog:
+ - Fixed 'Create New Controller' popup list: Now it actually creates the selected controller.
+ - Fixed 'Program' controller not showing correct program after selecting other controllers in list.
+ - Fixed too high initial value displayed for controllers without an initial value in the instrument file.
+ - 'Enter Poly After Touch' dialog:
+ - Fixed uneditable note box. Switched from PitchLabel to PitchEdit.
+ * Feature added - Pianoroll and drum editor controller graphs now have a static manual adjustment knob ! (T356)
+ - Now you don't have to enter controller graph values to adjust a setting, just turn the knob.
+ * Changed 'Create New Controller' in event editor 'Edit Contoller Event' dialog, and 'add new...' controller popup
+ list in piano roll. (T356)
+ - Now they only list controllers not already added, instead of all of them.
+ * Fixed 'Position Edit' controls (0001.01.000 + up/down buttons) - click 'down' nothing happens. (T356)
+ - Added updateButtons() call to PosEdit::setValue().
+ * Fixed Mixer midi strip variation, reverb and chorus send knobs not enabled after controllers added. (T356)
+ - Now you only need to create the controller to enable the knobs, allowing you to set a manual value without
+ having to actually create one or more controller events first.
+ * Fixed midi trackinfo pan value not the same as midi mixer strip pan value. (T356)
+ - Trackinfo pan now goes from 'off' (-65) to -64 to +63.
+ * Fixes to fluidsynth. Would crash when getting patch names from an 'unspecified' soundfont. (T356)
+ - In fluidsynti.cpp, various places check for FS_UNSPECIFIED_FONT only. Added check for FS_UNSPECIFIED_ID.
+ - Not sure if FS_UNSPECIFIED_FONT is redundant and unnecessary, but left it there anyway.
+ * Fixed old bug - IntLabel control - right click causes popup and runaway increment. (T356)
+ - Fixed NEntry widget. Same fix as for double entry widget (DEntry), somewhere way down on this change log...
+ * More fixes to wave part gluing/splitting/drawing/playing. (T356)
+ - Now all splitting/gluing of wave parts, even overlapping ones, even multiple times, should work.
+ - Fixed problem in WaveTrack::fetchData causing it to read too many samples of wave events.
+ * Fixes and changes to bounce functions. (T356)
+ - Fixed garbled target track or file. processWrite() was writing ALL the Audio Outputs to the file or track, instead of just one.
+ - Feature: Bounce to track (from menu): You now first select any single Audio Output track, and any single target Wave track.
+ - Feature: Bounce to file (from menu): You now first select any single Audio Output track.
+ * Fixed some problems with Mastertrack window. (T356)
+ - Mastertrack window was causing tempos to be inserted into tempo list, if window open when project loaded.
+ - Added signature list change event handling - to update signature value box.
+ - Fixed drawing of signature scale after signature list change.
+ * Fixed wave editor 'reverse' function crashing. (T356)
+ * Fixed track list not highlighting wave tracks (default green) when selected in the arranger window. (T356)
+ * Fixed midi VU meters, again. (T356)
+ - Borrowed idea from Muse 2. Self-decay the meters in midi strip code, rather than the midi thread code.
+ - The midi VU meters self-decay at a rate determined by the GUI update rate in the configuration.
+11.03.2008
+ * Fixed arranger controls not giving up keyboard focus after adjustment/entry. Requested by user G.B. (T356)
+ * Fixed gluing/splitting of waveparts. (Known bug of 02.02.2008 is gone now). (T356)
+ * Fixed playing, and arranger/waveeditor drawing, of glued waveparts. (T356)
+ - 'Working on' of 26.01.2008 is done.
+ - Drawing of waveparts, even 'glued' ones, now fully respects tempo changes.
+ * Fixed 'glued' mono + stereo wavepart drawing. Was drawing outside track if track height small. (T356)
+ * Fixed soloed/muted wavetrack audio 'bleeding' into other wavetracks. fetchData() was not checking isMute(). (T356)
+ * Fixed part colour popup to change unselected clicked item colour if no parts selected. (T356)
+ * Fixed recent possible accidental(?) change of tracklist xml tag 'header' to 'header1'. (T356)
+ - Muse was complaining: Tlist: unknown tag <header> at line 32
+ * Fixed MREventList in mpevent.h, to use midiRTalloc instead of audioRTalloc. (T356)
+ - Possible accidental(?) coding error since there is no other usage of midiRTalloc at all in muse.
+ - If it does help at all, it might just ease RT congestion a bit.
+ * Working on MIDI VU meters. They're too fast to see with jack, but should be OK with dummy driver. (T356)
+ * KNOWN PREEXISTING BUGS
+ - If you move waveparts around AFTER the current play position, then play, muse actually plays the same
+ arrangement as if you had not moved the waveparts at all, just one time - rewind the play position and
+ it corrects itself. This is because muse does not prefetch the audio again after the movement of the parts.
+ Workaround - After moving waveparts, be sure to rewind the play position to a point AT LEAST before those parts.
+ - Wave parts will sometimes mysteriously go silent for no reason. Move the parts slightly, or reload, or do
+ certain other operations, then the sound comes back. Working on this important issue!
+02.02.2008
+ * Fixed a slight error in BigTime absolute display. Now shows proper absolute tick and frame values. (T356)
+ * Added an extra arranger wavepart right-click popup menu item - "file info".
+ Shows what wave file(s) are used by the wavepart event(s).
+ TODO: Either remove duplicate file names or list the files by event number.
+ Spice up with more info like wave starting/ending points etc. (T356)
+ * Removed some debug output lines from dummy driver - may have been causing intermittent crashes when moving position. (T356)
+ * Some more fixes to arranger partcanvas wavepart drawing - speeded up and tightened code.
+ KNOWN BUG: Does not correctly display more than one wave 'event' (file) per wavepart. (For ex. two waveparts 'glued' together).
+ Working on this issue ! (T356)
+27.01.2008
+ * Fixed MIDI mixer strip VU meters. Let there be light! Not the best solution, a choice between two so-so methods.
+ Looking at how to improve it... (T356)
+26.01.2008
+ * Pianoroll and drumedit now open at the current cursor position. (T356)
+ (The cursor position is that moving black vertical line on the time scale).
+ This means you just click on an arranger midi part where you want to open the editor.
+ * Arranger, pianoroll, drumedit and waveedit now stay at their current (left-side) position when you use the scale bar. (T356)
+ * Fixed 'end of part' drawing problems - now you are guaranteed to see about 1+1/4 extra bar after the end
+ of a pianoroll/drumedit (also compensating for drumedit drummap/canvas splitter), allowing you to
+ add/move/clone notes past the end and allowing muse to properly auto-extend the part (to the right).
+ TODO: Auto-extend parts to the left when necessary. (T356)
+ * Added vertical, and fixed horizontal, lasso/parts/events auto-scroll - even past the end of parts. (T356)
+ * Fixed drawing of wave parts in arranger. Now you can rely on the 'picture' of the wave inside the part
+ lining up correctly with the time scale, regardless of tempo/timesig changes in the song. (T356)
+ * More fixes to wave editor. Fixed drawing of markers - they were much too close together.
+ Added songChanged synchronization with arranger (you move/resize a wave part and the wave editor readjusts, etc.)
+ WORKING ON: In the arranger, if you move a wave part to the left, the wave editor will readjust but the
+ wave may be chopped off at the end. Investigating... (T356)
+ * Corrected the drawing order of items from ALL parts in pianoroll and drumedit. For multiple-part viewing.
+ WORK IN PROGRESS: Added ability to select items from different parts at once, and to move them.
+ For now, only items from the currently selected part actually move. (T356)
+ * Added small checkbox to Big Time display. Now you can switch between formatted or absolute time display.
+ Absolute is handy for syncing with another app, or just knowing, absolutely, where you are in the song. Absolutely.
+ Added ToolTip popups describing each 'group' of numbers (bars, beats, ticks etc). (T356)
+20.01.2008
+ (ml)
+ * Added function for deleting note overlaps in piano roll (usually makes fluidsynth grumpy - silencing the following note).
+ * Some work on opening the editor at current position and selecting the leftmost item
+ (ws)
+ * fixed hanging note when editing multiple parts in midieditor and
+ switching part
+19.01.2008 (ws)
+ * fixed Song::changeEvent(): part tick offset was not used
+ * fixed removing of controller events in Song::deleteEvent(); this affects midi recording
+ in replace mode and controller editing
+12.10
+ * Fixed automation right-click popup menu 'prev/next event' not working after a tempo change. (T356)
+ - Now you are guaranteed to be able to navigate the automation events, regardless
+ of how many tempo or time signature changes are in the song, or if you change the tempo/sig(s)
+ AFTER adding automation events.
+12.06
+ * Fixed softsynths 'Fluidsynth', 'Deicsonze', and 'Fluid' to allow pitch wheel changes. (T356)
+ * Fixed softsynths 'Fluidsynth' and 'Deicsonze' to allow MIDI patch changes. (T356)
+ Note that I included MIDI patch change code in 'Fluid', but fluid is slightly broken
+ and still doesn't respond. 'Fluid' should be removed from muse. It's obsolete. Use Fluidsynth.
+11.22
+ * Fixed LASH loading and saving. (T356)
+ - Symptom - Muse fails building with error about 'lash_get_fqn' not declared in scope.
+ - Cause - You are building muse with LASH > 0.5.1, where certain header files have been removed.
+ - Fix - Replaced both calls to lash_get_fqn with QString manipulations instead.
+ * NOTE! I encountered a muse segfault when you use LASH to close the project.
+ It says 'received unknown LASH event of type 10' (which is LASH_Server_Lost), then it says
+ 'received unknown LASH event of type <<some big random number>>, then segfault and
+ a glibc backtrace due to 'double free or corruption'. Not a big deal, but this will need to be fixed.
+ * Tested OK saving and loading projects with LASH 0.5.4
+
+09.02
+ =======================================
+ * 0.9 final tagged (rj)
+ no changes from pre3
+ =======================================
+
+08.22
+ =======================================
+ * 0.9pre3 tagged (rj)
+ =======================================
+
+08.20
+ * Fixed bug 1650953 - select and move segfault (T356)
+ - Symptom - In piano roll, select some notes and move them past the end of the part,
+ then muse crashes. Also occurs when pasting or adding notes past part length.
+ - Cause - Canvas was not adding the new resized part to the midi editor. Also a bunch
+ of other stuff needed to be fixed for it all to work OK.
+ * Fixed broken master list editor. Should also cure bug 1687166 (T356)
+ - Symptom - Open master list and nothing is listed (should be at least one default
+ tempo and one default time signature). Click to add new tempo or sig and muse crashes.
+ - Cause - Some code was added to lmaster.cpp: LMaster::updateList() which broke it.
+ * Added auto part resizing to drum canvas (T356)
+ - Symptom - In drums editor, there is no auto part resizing, like in piano roll.
+ - Cause - Missing all part resizing code. Added.
+ * Fixed intermittent crash when cutting a part. Improper 'delete while iterate' STL operation. (T356)
+ * Fixed arranger part selection - selected parts now draw on top of non-selected parts. (T356)
+ * Fixed arranger part operations (move etc.) to use selected part. (T356)
+ * Fixed arranger keyboard left and right previous/next part selection. (T356)
+ - Now you can use left/right arrow keys to cycle through parts in a track,
+ expecially useful for overlapping parts!
+ * Regarding part selection - A remaining problem is that there is no 'z-order' drawing
+ scheme. The part item list has no such ordering support.
+ - This means a selected part will (now) appear on top of others, but when unselected,
+ it will not stay on top. Adding that support could be messy.
+ - Best to leave it alone for now. At least you can (now) cycle through overlapped parts...
+ * Tested arranger part operations with worst case scenario - multiple tempo changes
+ and multiple parts. Test OK. All should be OK now. (T356)
+ * Added tooltip to song length box in arranger with text 'song length in bars'. (T356)
+ * Fixed wave editor - Black selection bar intermittent drawing. (T356)
+ - Symptom - In wave editor selecting a portion of the wave caused intermittent drawing
+ of the black selection bar.
+ - Cause - Unsure of exact cause or a permanent cure, but it's better now.
+ But it still draws intermittently if you zoom in (x magnify) very very close.
+ Working on this issue.
+ * Added feature - Wave editor now allows you to open multiple selected wave parts and
+ will display only those parts and you can edit them. Tested wave editor 'functions'
+ menu and it works OK on some or all selected portions of the multiple wave parts.
+ - This is in preparation for a possible automation viewer and/or editor.
+ - Work in progress. Some rough parts still to clean up. (T356)
+ * Fixed intermittent arithmetic exception crash in wave viewer. (T356)
+ * Fixed bad wave drawing above certain zoom level in wave editor. (T356)
+ * Enabled serial numbers in my deltaTick2Frame and deltaFrame2Tick routines, and
+ merged code. Makes it a bit faster. (T356)
+=======
+08.16 * Reverted change in synth.cpp, realtime playback of softsynths did not work (rj)
+ * fix for sustain pedal to work as suspected when looping. (rj)
+ * Above involved adding "managed-controllers", whenever a controller is found
+ time will tell if this is the right solution (rj)
+02.13
+ * Feature request: 1650957 space bar should start/stop playback fixed by
+ adding this possiblity, old style is possible with property setting in
+ configuration. (rj)
+02.09
+ * Fixed bug 1645575 - Eraser tool causes segfault in drum editor (T356)
+ * Added the project AUTHORS (whooo are you... who who...) (T356)
+01.27
+ * Fixes to remove lots of warnings and potential errors in the code (WillyFoobar)
+ (rj by proxy)
+ * Fix for bug #1074808 "NRPN - still 128 values?" from Sebastian Gutsfeld (rj)
+01.06
+ * Changed 'exit' to 'return' when plugins are invalid (rj)
+01.05
+ =======================================
+ * 0.9pre2 tagged (rj)
+ =======================================
+
+2007.01.03
+ * Fixed some major issues with undo/redo. (T356)
+ - Symptom - Delete track(s), then undo, muse crashes.
+ - Symptom - Rename a track, then undo, muse crashes.
+ - Cause - 'Delete' destroyed the track(s), so undo would attempt to restore
+ non-existent object. Other problems caused rename crash. Still more undo/redo code
+ was causing problems, like left-over synth instances hanging around after loading a new song,
+ or crashing upon loading a new song if certain redo items were still in the redo list...
+ - Known bugs - DON'T rename a synth track then undo, muse still crashes. Not sure why yet.
+ After 'un-deleting' a synth track, you will have to open the 'MIDI Ports/Soft Synth' window
+ and manually restore its MIDI port.
+ Don't do anything too crazy like deleting multiple tracks while playing, might possibly crash.
+ After undeleting an audio wave track, its sound might not be sync'd with the rest of the song -
+ simply hit the fast-forward or rewind button to cure that.
+ * Prevented saving, and segfault upon loading, of routes in med file with empty names. (T356)
+ - Symptom - Jack shuts down, so instead of attempting to restart audio, you save your work,
+ but when you try to reload your song, muse crashes.
+ - Cause - Upon Jack shutdown, all audio in and out Jack routes were erased, and muse saved
+ the song like that. Upon reload, muse would crash due to the empty routes in the .med file.
+ - Note that this does not cure the original cause of this (Jack routes erased), so although you
+ can now re-load the song without muse crashing, you must manually restore all the audio in/out
+ Jack routes. So please try to restart the audio first. (Trying to fix this issue...)
+ * Add new soloing system. Check it out! (T356)
+ - Symptom - You click solo on a track but you hear nothing, and all other tracks are muted.
+ - Cause - Wasn't really broken, you just had to solo all other tracks in that routing path
+ to make sure whatever you were attempting to solo made its way to its destination so you
+ would hear it.
+ Inconvenient, yes. Especially with a large song with a lot of tracks, groups etc.
+ With this new system, this is done automatically for you. Even MIDI tracks driving synth
+ tracks, too.
+ - Known bug - If a MIDI track drives some external MIDI device which you feed the audio
+ back into muse, there's no way for muse to know how to couple the MIDI and audio in
+ tracks together. Sorry you'll have to manually solo both.
+ BUT - I'm CONSIDERING adding this - If an audio in track's name BEGINS WITH the name
+ of a MIDI track, I could couple them that way. For example - MIDI track named 'Track1' and
+ an audio in track named 'Track1 Input', then muse could mutually solo both tracks properly...
+ * Enabled MIDI mixer strip solo buttons. (T356)
+ * Some other minor fixups here and there. (T356)
+ - Other known bugs - Due to an earlier oversight, if you use your own custom LADSPA plugin
+ GUI's (see README.ladspaguis), QCheckbox and QCombobox controls may not automate quite right.
+ Note that this includes just one built-in custom GUI - for the 'TAP Reverberator' plugin.
+21.11
+ * Fixed loading of .med files, with plugins, created before muse-0.9pre1. (t356)
+ They will load, then save, correctly now.
+ - Symptom - Load an old song with plugins and some of the plugin controls can't be moved.
+ - Cause - Controller id's in med file mixed up, not save correctly, because of moving rack
+ plugins around, which never properly switched the id's before muse-0.9pre1.
+ * Fixed soloing (again). (t356)
+ - Symptom - Delete a soloed track, then soloing is messed up - other tracks may be muted but don't show it,
+ only way out is to reload. Speaking of which, loading also did not set track soloing correctly.
+ - Cause - Upon deleting a track or loading a song, track solo ref count was not updated.
+ * Added infrastructure for an improved soloing system, much more intuitive. (Not done yet!...) (t356)
+ * Fixed spelling mistake - Freeverb "Rooom" size. (t356)
+13.11
+ * By T356
+ * More automation fixes. Everything should be working now, check it out!
+ * Although still no automation editor, all of these changes so far should help
+ manipulate and navigate the events.
+ * Fixed touch mode events storing, was not right.
+ * Fixed a couple of stray signal connects which may have caused wacky controls.
+ * Sliders, knobs and labels now respond to mousewheel and paging properly.
+ * Linked slider/knob labels with sliders and knobs so paging or mousewheeling
+ a label works smoothly and linearly, even with logarithmic controls.
+ * Fixed integer controls (like Glame Bandpass 'stages').
+ * Fixed external plugin gui's to look like the built-in freeverb. This means
+ they now scale properly with different fonts. :)
+ * Hopefully the last of major automation conceptual changes - making sliders, knobs,
+ labels and checkboxes work together with the four automation modes, barring any fixes,
+ and a few tweaks to follow (like shift key for label mousewheeling, and how to make
+ a label stop updating so values can be entered). Some more right-click menu options
+ may follow (like store event, enable automation, enable interpolation).
+ Automation readme to come (need it!).
+ * Still to fix - Controls' right-click automation menu still a bit confused upon tempo changes.
+10.11
+ * reworked mute, old solution caused problems for solo
+ * solo is now united between midi and audio, they were previously
+ interdependant. This has the downside that if a soft synth is
+ soloed both the midi and the audio needs to have solo enabled (rj)
+ * fixed issue with hanging notes for softsynths when stop is pressed (rj)
+ * Backported fix from HEAD for using a file descriptor from two different
+ threads, should make it work somewhat better with SMP (rj)
+ * fixed faulty off value for aux when set to max (rj)
+ * Allow wheeling of tracks from track list (rj)
+08.11
+ * reenabled mute for outputs (rj)
+07.11
+ * Fixed timing bug causing MusE to depend on jack buffer setting
+ this needs testing, it involved uncommenting some code that might
+ have been commented for a reason (rj)
+05.11
+ * Added support for auto-scroll for other drag operations but
+ rubberband (rj)
+04.11
+ =======================================
+ * 0.9pre1 tagged (rj)
+ =======================================
+04.11
+ * Adopted RT locking method from 1.0 branch. (rj)
+ * Preparations for 0.9pre1 (rj)
+31.10
+ * By T356
+ * Fixed old bug - DoubleLabel right click causes popup and runaway increment.
+ * Currently the increment/decrement is fixed at 1, so that's why it doesn't
+ work for pan or other controls with 1.0 or less max.
+ - So fixes to that are next...
+29.10
+ * By T356
+ * Changing global tempo now updates things. (Like resizing wave tracks).
+ * Fixed segfault upon lengthening a blank new wave track part.
+ * Removed some thread-unsafe code from my first patch
+ * Fixed ladspa plugin automation not working until plugin displayed.
+ * Improved automation and ladspa plugin automation behaviour.
+ - While stopped and in touch mode, clicking an automateable control immediately
+ writes the value to the list, so you don't have to press play then stop
+ just to store one value.
+ - Smoother slider transitions from last touched value to previous stored values,
+ so that they don't suddenly 'jump' to previous stored values when you let go.
+ - Checkboxes now automated. Their behaviour in touch mode is slightly
+ different than sliders - they remain 'touched' until you stop, but store
+ only up to the last toggle done.
+ - Checkboxes now check as soon as you click them.
+ - Sliders now have 'mouse cursor capture (tm)' so you can actually grab onto
+ the thumbs even if they are moving too quickly due to automation. Paging can
+ still be done with right button.
+ - Sliders and knobs now work properly if you 'page' them (click outside the thumb
+ or dial).
+ - Added right-click popup menu on all automateable controls with
+ previous event (seek)
+ next event (seek)
+ erase event (if cursor is on one)
+ erase range (between left and right markers)
+ clear automation (clear all events)
+ Known bug: Becomes slightly confused if tempo is changed after doing automation.
+ Workaround for now: Press play to update the cursor to a new position.
+04.10
+ * Select the right item when items are stacked on top of each other, for pianoroll
+ and arranger (rj)
+ * Do not display resize cursor when last track cannot be resized (rj)
+03.10
+ * Apply effect rack before sending aux, changed after discussion with Thorsten Wilms (rj)
+ * Auto assign internal softsynths upon creation (rj)
+ * New method for pasting parts. If several parts are pasted they are now spaced
+ according to their original spacing. This only works reliably when the copied parts
+ are all on one track. (Possibly copying parts from several tracks should be
+ disallowed), fixes bug #1516294 (rj)
+ * Muting of midi-tracks no longer mute input, bug #1092343 (rj)
+01.10
+ * Fixed issue with playing of controllers when moving playhead. basically
+ all events from all parts where played at the beginning, fixes bug #1316542 (rj)
+30.09
+ * Cached peak files are now updated when wave files are more recent, bug #1469177(rj)
+ * Fixed bug with recording notes to existing part, bug #1552783 (rj)
+29.09
+ * MusE now asks when imported wave file has differing samplerate, bug #1428248 (rj)
+28.09
+ * Always restore sequencer configuration even when song
+ is loaded without config, fixes bug #1092289, midi mixer settings not restored (rj)
+27.09
+ * Optimizations and fixes to rubberband scrolling (rj)
+ * Aux changed to be affected by volume and pan (rj)
+ * Aux now affected by mute (rj)
+26.09
+ * Fix for pianoroll selection of events in/outside loop with respect to part offset (ml)
+ * Added lasso/rubberband scrolling in arranger, drumedit and pianoroll, bug #1057732 (rj)
+24.09
+ * Followups by T356
+ * Fixed rack plugin change not clearing automation
+ * Fixed moving an empty rack position
+ * Fixed moving a plugin onto itself
+ * Changed colours of audio output and wave track
+ strip names to match icon colours
+20.09
+ * Fixed aux sending (rj)
+ * Patch from terminator356 to fix logarithmic feedback to plugin sliders (rj)
+19.09
+ * Various fixes from Torsten Duwe (rj)
+ - deicsonze undefined returnvalue
+ - vam uninitialized value
+ - 64bit fix for calling external wave editor
+ * Fixed multiple part undo for move,drag and copy in arranger, bug #1516298 (rj)
+ * Fixed multiple note undo for move and drag in pianoroll (rj)
+ * Fixed cursor placement in List Editor upon deleting events bug #1417718 (rj)
+16.09
+ * Following changes by { terminator356 [at] users [dot] sourceforge [dot] net }
+ * The changes can be applied to muse-0.7.2preX or muse-0.8.1 and work fine in both.
+ * Fixed soloing. Also multiple soloing now allowed.
+ - TODO: Soloing of tracks which feed a group. Workaround for now: Solo the tracks AND the group.
+ * Enabled solo buttons on the mixer strips.
+ * Fixed major issues with rack plugin moving, saving and loading.
+ * Fixed problems with multiple tempo changes and incorrect wave part lengths.
+ * Changed plugin code to use double instead of float to stop certain errors, and consistency.
+ * Fixed some minor spelling mistakes.
+ * Fixed issues with audio track automation.
+ * Fixed very 'jumpy' volume sliders and pan knobs under automation.
+ * Fixed several other small problems. For example a duplicate define in song.h
+ * Changed the way audio track automation works.
+ - For ease of use, the current mode now remains selected, even after a file write and re-open.
+ - To reduce the chance of accidental changes, for added visual warning, Touch and Write modes
+ colour the automation mode box red.
+ - Write and Touch modes: Only if the controls were touched, changes will be stored when
+ the transport is stopped. Since the current mode remains active, you can move to
+ another part and do some more automation.
+ - Write mode: The controls are updated with stored values until you touch them, then they
+ store from the time you hit play to the time you hit stop. If you touch the controls AFTER
+ you hit play, you may get unexpected results so remember to initialize that 'first value'
+ (at the time when you hit play), since muse will NOT 'fill in' from the time you hit play
+ to the time you first touched the control, with the value of that first touch. (Maybe support
+ this later).
+ - If you load a plugin preset, if the control values don't seem correct, try setting the track's
+ automation to 'Off', because the track will usually be on 'Read' - reading stored values.
+ - TODO: Muse really needs an automation editor/viewer! Perhaps integrate with wave viewer.
+ Also, add one more automation mode: 'Instant mode'.
+ * Hmmm, oh yes - added full LADSPA plugin automation. Check it out!
+ Compatibility with existing med files' Plugin section should be OK, but if you open an
+ existing med file with plugins, and the plugins' control values are no longer correct,
+ let me know. See comments (with these changes applied) audiotrack.cpp around line 557.
+ - TODO: Checkbox automation not working right. We need a better checkbox - one which checks
+ as soon as you press down! Also would like to add bypass and mute automation.
+05.08
+ * Fixed build without fluidsynth (rj)
+14.07
+ * fluidsynth: fixed pitchbend events, fixes bug #1404212 (ml)
+
+13.04
+ * Editing volume and pan with keyboard on audio strip now works (rj)
+ * Fixed issue with recording audio, fifo could overflow when
+ when running with small jack sizes (rj)
+ * fixed storing of wave files with relative path when located
+ "under" the project path (rj)
+28.03
+ =======================================
+ * retagged app.cpp and Yamaha-Motif-Rack.idf (rj)
+ =======================================
+ * fixed build bug in app.cpp (rj)
+ * fixed bug with Yamaha-Motif-Rack.idf (rj)
+27.03
+ =======================================
+ * 0.8.1 tagged (rj)
+ =======================================
+ * some lash fixes (rj)
+26.03
+ * Added next/prev marker, keyboard shortcut (rj)
+25.03
+ * Reverted fix for silent softsynths, synths were not silenced
+ upon [stop], gah! (rj)
+ * Added LASH support (patch from evermind @ gentoo) (rj)
+21.03
+ * Added Motif-Rack idf from europeen (rj)
+19.03
+ =======================================
+ * retagged dummyaudio.cpp (rj)
+ =======================================
+ * Fixed build bug in dummyaudio.cpp (rj)
+18.03
+ =======================================
+ * 0.8 tagged (was 0.7.2) (rj)
+ =======================================
+ * Added idf files from linux chaos
+ Waldorf-Q, Yamaha-01v,Yamaha-Motif, Yamaha-P100 (rj)
+05.03
+ * Arranger no longer performs "seek" while editing
+ when in ext-sync mode (rj)
+ * Play/Stop disabled for all when in ext-sync mode (rj)
+02.03
+ * more work on extern sync, loop works better (rj)
+ * no-audio + extern sync does not hang anymore (rj)
+ * muse now starts even if jack is not found (rj)
+ * fixed a number of divide by zero errors mainly affecting zoom (rj)
+11.02
+ * Added menu alternative for storing plugin preset (rj)
+06.02
+ * Updated/improved swedish translation. (rj)
+04.02
+ * Fix for softsynths going silent under load. Sometimes events arrive
+ with time=0, this is now handled. Why it happens is yet unknown.(rj)
+02.02
+ * check audioDevice and _client for validity (rj)
+13.01
+ * amd64 fix in driver/rtctimer.cpp (ws)
+09.01
+ * Added patch for vam from mane_grotesk (rj)
+07.01 * On drumtracks, there was no check for non-existing ports. If a drum
+ instrument was configured to output to a port other than standard for
+ the track, there was a segfault. Now output to non-existing ports are
+ simply ignored (ml)
+
+05.01
+ * Added updated french translation from Intent (rj)
+ * Fixed crash bug in pianoroll when moving several
+ events outside part. (rj)
+ * Fixed esc key in drumeditor name edit (rj)
+
+03.01
+ ========================================
+ * 0.7.2pre5 (final!) tagged (rj)
+ =======================================
+
+02.01
+ * Added popup when enabling rec for a track unable to create it's
+ wave file (rj)
+2006.01.01
+ * Enlarged listeditor dialog (FR:1392090) (rj)
+ * Changed preset file extension of vam presets to .vam (rj)
+ * No longer translates dir name for drummaps (rj)
+ * Fixed crash bug when arrowing left in an empty editor (rj)
+ * Added F2 name edit in drum editor (rj)
+ * Added up/down arrowing in drum editor (rj)
+30.12
+ * Fixed bug in detection of RTC (rj)
+ * Removed ugly printouts from probeing for browser (rj)
+29.12
+ * Reawoken Organ: (rj)
+ - read/write current settings
+ - automation of all parameters
+ * Reawoken VAM: (rj)
+ - read/write current settings
+ - automation of all parameters
+ - preset dialog
+28.12
+ * Changed audio prefetch buffer to be dynamically sized after the
+ jack buffers (rj)
+27.12
+ * Fixed allocation of wave memory when reading and writing sound files
+ fixes problems with audio-operations (rj)
+ * Fixed problem when external wave editor was not correctly defined (rj)
+26.12
+ * Race condition between threads caused lockup upon quit and load project.
+ Fixed by checking if sequencer is actually running before making
+ internal IPC call, made major difference (rj)
+21.12
+ ========================================
+ * 0.7.2pre4 tagged (rj)
+ =======================================
+
+ * Now dynamically extends parts if events continue after end and
+ ignores pastes before part, fixes bug:1363066 Paste outside segment (rj)
+18.12
+ * ExtSync improvements, handles relocation of playhead during stop
+ (on my gear atleast), does not work during play (rj)
+ * fixed bug building synths (introduced during last checkin) (rj)
+14.12
+ * fast_log10 exchanged for HEAD version (old version doesn't work with
+ gcc4), fixes problem with meters and sliders not working (rj)
+ * Added patch from Martin Habets fixes core dump problem while
+ building with LADCCA (rj)
+ * Added patch from LarryL autoconf changes to synth building (rj)
+ * Fixed drag in effect rack that it does not start directly (rj)
+ * Adapted optimization parameters for gcc4 (rj)
+13.12
+ * Possibly fixed issue with crashes during load of projects
+ by putting delays between start/stop of sequencer and actual load
+ operation. This should make sure that the process loop is idle. (rj)
+ * now tries both RTC and Alsa (in that sequence) for main timer (rj)
+ * added checks if alsaDevice is valid (fixes several crash bugs when
+ muse goes zombie). Should be done in more places. (rj)
+ * added check if audio is really running when jack calls process.
+ Sometimes it's called when it should not. (rj)
+12.12
+ * updated muse_ru.ts from Alexandre Prokoudine (ws)
+11.12
+ * removed assert, fixes bug:1376783, deleting track with pianoroll open
+ crashes muse
+09.12
+ * Added patch from Daniel Cobras regarding compatibility with 64-bit
+ systems (rj)
+ * fixed crash bug when muse tried to show plugin-guis when the
+ plugin did not exist (rj)
+29.11
+ * fixed seg fault when deleting last note in pianoroll editor (ws)
+13.11
+ ========================================
+ * 0.7.2pre3 tagged (rj)
+ ========================================
+ * Changed back to AlsaTimer (rj)
+8.11
+ * fixed typo in share/locale/Makefile.am
+7.11
+ * removed some dubious locks in thread start (ws)
+19.10
+ * Fixed bug 1329537 (User defined fonts not updated) (rj)
+13.10
+ * added emuproteus200.idf from Piotr Sawicki (ws)
+ * updated polish translation
+12.10
+ * added polish translation from Piotr Sawicki (ws)
+26.9
+ * Handle restart of Jack and restart of audio (rj)
+21.8
+ * Added new timer classes from Jonathan Woithe. (rj)
+14.8
+ * Solo for audio tracks improved by removing the possibility to mute Output tracks (rj)
+ * Implemented REPLACE for midi recording (seems to sometimes miss notes though...) (rj)
+ * Fixes for Appearance dialog, background pic, event display (rj)
+ * Marker window now toggling (rj)
+ * Added "raise" to more dialog windows (rj)
+ * compress event display in parts somewhat (rj)
+ * reverted pipeline again...bah...think before you change (rj)
+ * bounce now stops correctly (rj)
+
+
+13.7
+ * Fixed position of import of wave files, inserted at cursor, now inserts at mouse (rj)
+ * Added drag&drop support to plugin racks in mixer, internal and to/from disk (rj)
+ * Changed the plugin pipeline depth to 5.. four is too little.. though it should be runtime extendable, wip (rj)
+ * Added patches from Daniel Kobras that correct errors in EditMetaDialog
+ and old html docs. (rj)
+ * Added uppercase filters to midi import (rj)
+
+12.7
+ * Added quick search to LADSPA plugin dialog (rj)
+11.7
+ ========================================
+ * 0.7.2pre2 tagged (rj)
+ ========================================
+10.7
+ * Added possibility to edit selection of wave in external editor (ml)
+9.7
+ * Added gain modification functions + misc to waveedit (ml)
+8.7
+ * Updates to wavefile modification, implemented normalize, fade in, fade out and reverse of wavefile selection.
+ Removal of wavefile undo data on shutdown (ml)
+7.7
+ * Added undo/redo handling for modifications of wavefiles + mute of selection in waveedit. expect updates. (ml)
+6.7
+ * Added selection to waveeditor + ignore unhandled keyevents in waveeditor (ml)
+4.7
+ * Implemented resize of waveparts (ml)
+ * Added Idf files by Steve D for Roland FantomXR, SRX-02 and SRX-09 (rj)
+2.7
+ * Fixes for waveedit: offset problem fixed (no more empty waveedit windows), initial zoom value to
+ roughly match size of part (ml)
+01.7
+ * Fixed bug with loading of background pixmaps (rj)
+28.6
+ * Only send MMC continue message when in playback state when seeking (rj)
+22.6
+ * Fixed bug 1199171 (Time change: a part does not completely fit into 4 bars), part
+ resize problem (ml)
+21.6
+ * Added scrollwheel support for vertical scrolling in arranger, pianoroll and drumeditor (ml)
+ * Fixed bug 1056996: Multiple selection, but single paste. Possible to copy several parts in arranger (ml)
+20.6
+ * Fixed bug 1092424: bug in reposition of instruments in drumeditor (ml)
+19.6
+ * Added recall of last entered directory in filedialog for global and user mode + recall of
+ opening mode (global, user or project) (ml)
+18.6
+ * Fix for drumtracks and part export/import
+ * Fix for opening Midi port/softsynth dialog when already open (now raised and set to active window) (ml)
+13.6
+ * Added export/import of midi parts (.mpt-files), drag & drop also possible (ml)
+05.6
+ * Fix for generating midi clock, needs field testing. (rj)
+04.6
+ * Added fixes to AlsaTimer and DummyAudio from Jonathan Woithe (rj)
+ * Added fix so AudioPrefetch is initialized upon starting the sequencer,
+ which for instance happens when loading a song (rj)
+24.5
+ * Added Roland E-28 idf file from Jonathan Woithe (js)
+16.5
+ * Updated ladspa-gui for newer version of tap-reverb (rj)
+15.5
+ * Allows for several midi devices with the same name, they are now renamed
+ internally so they have a unique name. This is a partial fix for synths
+ that do not correctly give each instance a new name. (rj)
+12.5
+ * s1 softsynth added square wave with parameter (rj)
+11.5
+ * Fix for bug 1198747, tests for fluidsynth and rtcap in configure.ac (rj)
+ * Fix for bug 1198744, added patch for reading browser setting from config
+ without crashing, from Philip Nelson (rj)
+ * Fix for bug 1188767, downmix won't stop playback until reaching the
+ right marker (rj)
+08.5
+ * the instrument list in the drumeditor now has fixed width when resizing the window (finally, it made me nuts) (ml)
+ * added nudge event position left/right w keyboard (ctrl+left/rightarrow as default) to pianoroll and drumeditor (ml)
+ * added fixed length command to pianoroll, uses snap-to value (ml)
+07.5
+ * added snap/quantize patch from Petr Mazanec (snap of notes in pianoroll+drumeditor is now controlled by
+ snap, not quantize) (ml)
+ * simpledrums: added save/load of setup to file, bugfixes.
+ simpledrums version is now 1.0 (go figure! ;) (ml)
+06.5
+ * No longer crashed when enabling audio metronome when there's an aux (rj)
+
+ ========================================
+ * 0.7.2pre1 tagged ! (rj)
+ ========================================
+04.5
+ * extern sync algorithm "reworked" (rj)
+1.5
+ * simpledrums: backported fixes for channel number + memory deallocation,
+ fixed issue with clearing of sampledata, I hope (ml)
+30.4
+ * fluidsynth: bankno is saved to project, switched to hbank from lbank (ml)
+ * Now really runs libtoolize in autogen.sh (rj)
+29.4
+ * make sleep() in watchdog thread non interruptible to avoid
+ watchdog timeouts at startup (ws)
+ * added vst preallocation of memory "fix" (rj)
+ * More fixes to filenames containing dots (for instance wca files) (rj)
+ * Added Yamaha-PSR275 instrument file by Petr Mazanec (rj)
+27.4
+ * fixed patch-info issue in Fluidsynth (bug 1191214) (ml)
+25.4
+ * fixed bug w paste in drumeditor, 1189267, patch from P Mazanec
+18.4
+ * removed file ltmain.sh; this file is now created by "libtoolize"
+ command in autogen.sh (ws)
+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)
+15.4
+ * Added a redundant test that makes midi input work on PPC for some
+ reason. (will research a better fix for 0.8) (rj)
+10.4
+ * Added an error popup when importing wave files fails. (rj)
+30.3
+ * [DONE] midi -> edit instrument is not implemented -> remove it (js)
+ * [DONE] same for random rythm gen -> is not implemented -> remove it (js)
+ * [DONE] BUG: pianoroll editor -> tools resize wrong, they should stay on max they need instead of width fit (js)
+ * have to go to the dentist on 7.3.2005, god help me, i fear this will kill me (js)
+29.3
+ * README changed some links (js)
+ * README added some icons to arranger (js)
+ * added support for german localisation (30% translated, still quite bad) (js)
+ * help: changed muse homepage location (js)
+ * more to come (js)
+28.3
+ * Fix for overflow when importing midi (rj + ml)
+6.3
+ * Added some fixed on dialog handling, mainly "esc" will close the widget now. (js)
+ * As usual added the icons which i forgot to add in the last release
+ * Corrected the drums icon which was a wave icon (in the dropdown, arranger)
+26.2
+ * Added Roland-SCD70.idf from Emiliano Grilli (rj)
+09.2
+ * fixed bug with sending start play w/ midi-clock (rj)
+01.20
+ * Added RT support and better working timing to DummyAudio backend (rj)
+ * New version of MC505.idf from Wim VW (rj)
+01.18
+ * Added script to convert MusE 0.6 songs to 0.7 format (rj)
+01.17
+ * Midi clock sync first test, unstable (ml)
+01.14
+ * patch from Erwin Scheuch-Heilig to allow for libtool >= 1.4 (ws)
+01.10
+ ========================================
+ * 0.7.1 tagged ! (rj)
+ ========================================
+ * ZynAdd instrument def file added (ml)
+ * Now the length is updated when importing a midi file to a project,
+ fixes bug: 1056994 (rj)
+ * Disabled freewheeling for bounce functions (song.cpp:_bounce) (rj)
+01.09
+ * Fixed bug: 1094622, MidiTransform now uses new controller types (ml)
+ * Fixed bug with custom plugin guis that caused them to be
+ uninitialized (rj)
+ * fixed just introduced jack graphChanged problem (rj)
+ * Fixed a crash issue with Thread class (only did happen when you mess around) (rj)
+ * Synti tracks don't crash when being renamed (rj)
+01.04
+ * Fixed a crash problem when using several fluidsynths (rj)
+ * Now fluidsynth restores most memory upon deletion
+ (but not all it seems) (rj)
+ * fluid disabled when fluidsynth disabled (we should probably
+ disable it all together) (rj)
+ * Fixed mixdown clash with auto-rec enable (rj)
+ * Fixed crash / hang when closing connected jack apps (rj)
+2005.01.02
+ ========================================
+ * 0.7.1pre3 tagged ! (rj)
+ ========================================
+
+31.12
+ * Mastertrack list editor updates (add sigevent + misc) (ml)
+30.12
+ * Insertion of tempo events in list mastereditor added (ml)
+29.12
+ * Added support for changing time signature in list master editor (ml)
+27.12
+ * Added support for changing tempo + position of tempoevents in list mastereditor (ml)
+ * Backported auto rec-enable from HEAD branch (rj)
+ * Added visual feedback of marker addition in ruler as well as
+ possibility to remove markers with shift+rmb (rj)
+ * Made it easier to resize the last track (bug: 1041798) (rj)
+ * Fixed bug: 966005, new projects are now called "untitled" (rj)
+ * fixed bug: 1085791, no more crashes with delete + drag (rj)
+26.12
+ * Listedit bugfixes. Consideration of part offset used for events (ml)
+20.12
+ * Fix for bug #1085796 (when renaming channel by doubleclicking it
+ in tracklist and a part is selected, pressing return opens editor for part) (ml)
+17.12
+ * -a (No Audio) flag added, improved Dummy audio backend (rj)
+ * alsa timer bugfix (rj)
+ * added deicsonze patch from Alex Marandon to fix QT<->STL
+ problems on affected platforms (rj)
+
+14.12
+ * Disable of fluidsynth works (rj)
+ * Added test for libsamplerate (rj)
+ * Reenabled --enable-suid-install (rj)
+ * Added <iostream> to simpledrums.h (rj)
+ * Added -no-rtti to simpledrums (ml)
+
+13.12
+ ========================================
+ * 0.7.1pre2 tagged ! (rj)
+ ========================================
+ * SimpleDrums 0.2 softsynth added (ml)
+12.12
+ * Removed -no-rtti from configuration (rj)
+ * Extern sync (codename: it_works_for_me__sometimes) is back! (rj)
+ * Changes to midi-input, events to softsynths vanished (rj)
+ * bounce to file now limits output to +/- 0.99 (rj)
+ * crash bug on missing event in sig.cpp fixed (rj)
+ * Changed default timer resolution to 1024 (rj)
+ * Applied fix from Levi D. Burton to allow midi thread to run
+ realtime allthough Jack is not (rj)
+ * New version (0.22) of DeicsOnze from Alin Weiller (rj)
+
+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)
+01.12
+ * fixed import of type 0 midi files (ws)
+ * Added updated DeicsOnze (0.21) from Alin Weiller (rj)
+ * added a branch of new icons, changed default colors of
+ wav/audio output track in arranger (js)
+ * changed changelog (js)
+30.11
+ * Added IDF files from Christof Eckert for Access Virus,
+ Hammond XB and Waldorf Microwave (rj)
+ * backported fix from 0.8 so listing patches for synths
+ works again (rj)
+29.11
+ * fix midi import: tick values of tempo/signature
+ and marker events are now properly converted to internal
+ resolution (backport from 0.8) (ws)
+ * some make system changes to better handle precompiled headers (ws)
+ ========================================
+ * 0.7.1pre1 tagged ! (rj)
+ ========================================
+ * LADCCA was incorrectly disabled in config, now fixed (rj)
+ * Changed URL of homepage to www.muse-sequencer.org (rj)
+28.11
+ * Partial support for "input only" midi devices. (rj)
+
+27.11
+ * Added Alsa Timer as a new timing device, RTC is still
+ available, though not easily selectable yet. (rj)
+ * Made some changes to how threads are created, for systems
+ where thread creation has been erratic, linux2.6 in various
+ configurations. Not yet verified if it makes any differance. (rj)
+08.11
+ * Backported audio metronome (rj)
+ * Backported open/save dialog improvements (rj)
+ * Added -r parameter to allow MusE to start without RTC
+ not the right thing to do, but it seems necessary on PPC,
+ it's a start. (rj)
+ * Added patch from CK to allow getopt to work on PPC (rj)
+
+02.11
+ * Added icon stuff to tlist.cpp (js)
+01.11
+ * Added Alin Weiller's DeicsOnze synthesizer (ws)
+ * add dummy call to process() in Audio::start() to warm up caches
+ to avoid "JACK - zombified" during startup (ws)
+23.08
+ * fix crash in list editor - create new controller (ws)
+ * increase required JACK version to 0.98.0 (ws)
+20.07
+ * updated muse/muse.pro and share/locale files (ws)
+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/muse2/Doxyfile.in b/muse2/Doxyfile.in
new file mode 100644
index 00000000..e66c9a48
--- /dev/null
+++ b/muse2/Doxyfile.in
@@ -0,0 +1,150 @@
+# Doxygen configuration generated by Doxywizard version 0.1
+#---------------------------------------------------------------------------
+# General configuration options
+#---------------------------------------------------------------------------
+PROJECT_NAME = MusE
+PROJECT_NUMBER = @VERSION@
+OUTPUT_DIRECTORY = doc
+OUTPUT_LANGUAGE = English
+EXTRACT_ALL = YES
+EXTRACT_PRIVATE = YES
+EXTRACT_STATIC = YES
+HIDE_UNDOC_MEMBERS = NO
+HIDE_UNDOC_CLASSES = NO
+BRIEF_MEMBER_DESC = YES
+REPEAT_BRIEF = YES
+ALWAYS_DETAILED_SEC = NO
+FULL_PATH_NAMES = NO
+STRIP_FROM_PATH =
+INTERNAL_DOCS = YES
+CLASS_DIAGRAMS = YES
+SOURCE_BROWSER = YES
+INLINE_SOURCES = YES
+STRIP_CODE_COMMENTS = YES
+CASE_SENSE_NAMES = YES
+HIDE_SCOPE_NAMES = NO
+VERBATIM_HEADERS = YES
+SHOW_INCLUDE_FILES = YES
+JAVADOC_AUTOBRIEF = NO
+INHERIT_DOCS = YES
+INLINE_INFO = YES
+SORT_MEMBER_DOCS = YES
+DISTRIBUTE_GROUP_DOC = NO
+TAB_SIZE = 8
+ENABLED_SECTIONS =
+GENERATE_TODOLIST = YES
+GENERATE_TESTLIST = YES
+ALIASES =
+#---------------------------------------------------------------------------
+# configuration options related to warning and progress messages
+#---------------------------------------------------------------------------
+QUIET = NO
+WARNINGS = YES
+WARN_IF_UNDOCUMENTED = YES
+WARN_FORMAT = "$file:$line: $text"
+WARN_LOGFILE =
+#---------------------------------------------------------------------------
+# configuration options related to the input files
+#---------------------------------------------------------------------------
+INPUT = .
+FILE_PATTERNS = *.cpp \
+ *.h
+RECURSIVE = YES
+EXCLUDE =
+EXCLUDE_PATTERNS =
+EXAMPLE_PATH =
+EXAMPLE_PATTERNS =
+IMAGE_PATH =
+INPUT_FILTER =
+FILTER_SOURCE_FILES = YES
+#---------------------------------------------------------------------------
+# configuration options related to the alphabetical class index
+#---------------------------------------------------------------------------
+ALPHABETICAL_INDEX = YES
+COLS_IN_ALPHA_INDEX = 5
+IGNORE_PREFIX =
+#---------------------------------------------------------------------------
+# configuration options related to the HTML output
+#---------------------------------------------------------------------------
+GENERATE_HTML = YES
+HTML_OUTPUT = html
+HTML_HEADER =
+HTML_FOOTER =
+HTML_STYLESHEET =
+HTML_ALIGN_MEMBERS = YES
+GENERATE_HTMLHELP = YES
+DISABLE_INDEX = NO
+ENUM_VALUES_PER_LINE = 4
+GENERATE_TREEVIEW = @DOXYGEN_TREEVIEW@
+TREEVIEW_WIDTH = 250
+#---------------------------------------------------------------------------
+# configuration options related to the LaTeX output
+#---------------------------------------------------------------------------
+GENERATE_LATEX = NO
+LATEX_OUTPUT = latex
+COMPACT_LATEX = NO
+PAPER_TYPE = a4wide
+EXTRA_PACKAGES =
+LATEX_HEADER =
+PDF_HYPERLINKS = NO
+USE_PDFLATEX = NO
+LATEX_BATCHMODE = NO
+#---------------------------------------------------------------------------
+# configuration options related to the RTF output
+#---------------------------------------------------------------------------
+GENERATE_RTF = NO
+RTF_OUTPUT = rtf
+COMPACT_RTF = NO
+RTF_HYPERLINKS = NO
+RTF_STYLESHEET_FILE =
+#---------------------------------------------------------------------------
+# configuration options related to the man page output
+#---------------------------------------------------------------------------
+GENERATE_MAN = NO
+MAN_OUTPUT = man
+MAN_EXTENSION = .3
+#---------------------------------------------------------------------------
+# configuration options related to the XML output
+#---------------------------------------------------------------------------
+GENERATE_XML = NO
+#---------------------------------------------------------------------------
+# Configuration options related to the preprocessor
+#---------------------------------------------------------------------------
+ENABLE_PREPROCESSING = YES
+MACRO_EXPANSION = NO
+EXPAND_ONLY_PREDEF = YES
+SEARCH_INCLUDES = YES
+INCLUDE_PATH =
+INCLUDE_FILE_PATTERNS =
+PREDEFINED =
+EXPAND_AS_DEFINED =
+#---------------------------------------------------------------------------
+# Configuration::addtions related to external references
+#---------------------------------------------------------------------------
+TAGFILES =
+GENERATE_TAGFILE =
+ALLEXTERNALS = YES
+PERL_PATH = @PERL@
+#---------------------------------------------------------------------------
+# Configuration options related to the dot tool
+#---------------------------------------------------------------------------
+HAVE_DOT = @HAVEDOT@
+CLASS_GRAPH = YES
+COLLABORATION_GRAPH = NO
+INCLUDE_GRAPH = YES
+INCLUDED_BY_GRAPH = YES
+GRAPHICAL_HIERARCHY = YES
+DOT_PATH = @DOTPATH@
+MAX_DOT_GRAPH_WIDTH = 1024
+MAX_DOT_GRAPH_HEIGHT = 1024
+GENERATE_LEGEND = YES
+#---------------------------------------------------------------------------
+# Configuration::addtions related to the search engine
+#---------------------------------------------------------------------------
+SEARCHENGINE = NO
+CGI_NAME = search.cgi
+CGI_URL =
+DOC_URL =
+DOC_ABSPATH =
+BIN_ABSPATH = /usr/bin/
+EXT_DOC_PATHS =
diff --git a/muse2/INSTALL b/muse2/INSTALL
new file mode 120000
index 00000000..cbd1c80d
--- /dev/null
+++ b/muse2/INSTALL
@@ -0,0 +1 @@
+/usr/share/automake-1.11/INSTALL \ No newline at end of file
diff --git a/muse2/Makefile.am b/muse2/Makefile.am
new file mode 100644
index 00000000..1de212fc
--- /dev/null
+++ b/muse2/Makefile.am
@@ -0,0 +1,35 @@
+include $(top_srcdir)/common.am
+
+ACLOCAL_AMFLAGS = -I m4
+
+SUBDIRS = m4 al synti muse lib share demos doc plugins grepmidi xpm packaging utils
+
+DISTCLEANFILES = stamp-doxygen
+
+MAINTAINERCLEANFILES = depcomp config.guess \
+ install-sh config.sub missing mkinstalldirs INSTALL COPYING
+
+BUILT_SOURCES += all-pic.h
+
+if PCH
+BUILT_SOURCES += all.h.gch all-pic.h.gch
+
+all.h.gch: all.h
+ $(CXX) $(AM_CXXFLAGS) all.h -o all.h.gch
+all-pic.h.gch: all-pic.h
+ $(CXX) $(AM_CXXFLAGS) -fPIC all-pic.h -o all-pic.h.gch
+endif
+
+all-pic.h: all.h
+ cp all.h all-pic.h
+
+EXTRA_DIST = common.am README.de README.softsynth \
+ SECURITY autogen.sh README.translate README.shortcuts \
+ README.instruments NEWS README.CVS muse.prj \
+ README.ladspaguis all.h
+
+dox: stamp-doxygen
+
+stamp-doxygen: $(shell find -name "*.cpp" -or -name "*.h")
+ $(DOXYGEN) Doxyfile
+ touch stamp-doxygen
diff --git a/muse2/Makefile.in b/muse2/Makefile.in
new file mode 100644
index 00000000..d1dd0935
--- /dev/null
+++ b/muse2/Makefile.in
@@ -0,0 +1,859 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+DIST_COMMON = README $(am__configure_deps) $(srcdir)/Doxyfile.in \
+ $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
+ $(srcdir)/config.h.in $(top_srcdir)/common.am \
+ $(top_srcdir)/configure AUTHORS COPYING ChangeLog INSTALL NEWS \
+ config.guess config.sub depcomp install-sh ltmain.sh missing
+@PCH_TRUE@am__append_1 = all.h.gch all-pic.h.gch
+subdir = .
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal-include.m4 \
+ $(top_srcdir)/m4/alsa.m4 $(top_srcdir)/m4/docbook.m4 \
+ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
+ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
+ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
+ configure.lineno config.status.lineno
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = config.h
+CONFIG_CLEAN_FILES = Doxyfile
+CONFIG_CLEAN_VPATH_FILES =
+SOURCES =
+DIST_SOURCES =
+RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
+ html-recursive info-recursive install-data-recursive \
+ install-dvi-recursive install-exec-recursive \
+ install-html-recursive install-info-recursive \
+ install-pdf-recursive install-ps-recursive install-recursive \
+ installcheck-recursive installdirs-recursive pdf-recursive \
+ ps-recursive uninstall-recursive
+RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
+ distclean-recursive maintainer-clean-recursive
+AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
+ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
+ distdir dist dist-all distcheck
+ETAGS = etags
+CTAGS = ctags
+DIST_SUBDIRS = $(SUBDIRS)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+distdir = $(PACKAGE)-$(VERSION)
+top_distdir = $(distdir)
+am__remove_distdir = \
+ { test ! -d "$(distdir)" \
+ || { find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \
+ && rm -fr "$(distdir)"; }; }
+am__relativize = \
+ dir0=`pwd`; \
+ sed_first='s,^\([^/]*\)/.*$$,\1,'; \
+ sed_rest='s,^[^/]*/*,,'; \
+ sed_last='s,^.*/\([^/]*\)$$,\1,'; \
+ sed_butlast='s,/*[^/]*$$,,'; \
+ while test -n "$$dir1"; do \
+ first=`echo "$$dir1" | sed -e "$$sed_first"`; \
+ if test "$$first" != "."; then \
+ if test "$$first" = ".."; then \
+ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
+ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
+ else \
+ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
+ if test "$$first2" = "$$first"; then \
+ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
+ else \
+ dir2="../$$dir2"; \
+ fi; \
+ dir0="$$dir0"/"$$first"; \
+ fi; \
+ fi; \
+ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
+ done; \
+ reldir="$$dir2"
+DIST_ARCHIVES = $(distdir).tar.gz
+GZIP_ENV = --best
+distuninstallcheck_listfiles = find . -type f -print
+distcleancheck_listfiles = find . -type f -print
+ACLOCAL = @ACLOCAL@
+ALSA_CFLAGS = @ALSA_CFLAGS@
+ALSA_LIBS = @ALSA_LIBS@
+AMTAR = @AMTAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DOCBOOKSTYLE = @DOCBOOKSTYLE@
+DOCBOOKTARGETS = @DOCBOOKTARGETS@
+DOT = @DOT@
+DOTPATH = @DOTPATH@
+DOXYGEN = @DOXYGEN@
+DOXYGEN_TREEVIEW = @DOXYGEN_TREEVIEW@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+FLUIDSYNTHDIRS = @FLUIDSYNTHDIRS@
+FST_CFLAGS = @FST_CFLAGS@
+FST_LIBS = @FST_LIBS@
+Fluidsynth_CFLAGS = @Fluidsynth_CFLAGS@
+Fluidsynth_LIBS = @Fluidsynth_LIBS@
+GIVERTCAP = @GIVERTCAP@
+GREP = @GREP@
+HAVEDOT = @HAVEDOT@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JACK_CFLAGS = @JACK_CFLAGS@
+JACK_LIBS = @JACK_LIBS@
+JADE = @JADE@
+LASH_CFLAGS = @LASH_CFLAGS@
+LASH_LIBS = @LASH_LIBS@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LO_CFLAGS = @LO_CFLAGS@
+LO_LIBS = @LO_LIBS@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+MUSECXXFLAGS = @MUSECXXFLAGS@
+NM = @NM@
+NMEDIT = @NMEDIT@
+NSGMLS = @NSGMLS@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PCH = @PCH@
+PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+PYTHON = @PYTHON@
+PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
+PYTHON_INCLUDES = @PYTHON_INCLUDES@
+PYTHON_LIB = @PYTHON_LIB@
+PYTHON_PLATFORM = @PYTHON_PLATFORM@
+PYTHON_PREFIX = @PYTHON_PREFIX@
+PYTHON_VERSION = @PYTHON_VERSION@
+QTDIR_BIN = @QTDIR_BIN@
+QTDIR_INC = @QTDIR_INC@
+QT_LIBS = @QT_LIBS@
+RANLIB = @RANLIB@
+SAMPLERATE_CFLAGS = @SAMPLERATE_CFLAGS@
+SAMPLERATE_LIBS = @SAMPLERATE_LIBS@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SNDFILE_CFLAGS = @SNDFILE_CFLAGS@
+SNDFILE_LIBS = @SNDFILE_LIBS@
+STRIP = @STRIP@
+SUIDBUILD = @SUIDBUILD@
+SUIDINSTALL = @SUIDINSTALL@
+USE_SSE = @USE_SSE@
+UUID_CFLAGS = @UUID_CFLAGS@
+UUID_LIBS = @UUID_LIBS@
+VERSION = @VERSION@
+XMKMF = @XMKMF@
+X_CFLAGS = @X_CFLAGS@
+X_EXTRA_LIBS = @X_EXTRA_LIBS@
+X_LIBS = @X_LIBS@
+X_PRE_LIBS = @X_PRE_LIBS@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+have_docbook = @have_docbook@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+lt_ECHO = @lt_ECHO@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+pkgpyexecdir = @pkgpyexecdir@
+pkgpythondir = @pkgpythondir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+pyexecdir = @pyexecdir@
+pythondir = @pythondir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+synth_fluid = @synth_fluid@
+synth_fluidsynth = @synth_fluidsynth@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+AM_CXXFLAGS = $(MUSECXXFLAGS) -I.. -I$(top_srcdir)/synti \
+ -I$(top_srcdir)/muse/widgets -DQT_SHARED -DQT_THREAD_SUPPORT \
+ -DQT_PLUGIN $(QTDIR_INC) -DQT3_SUPPORT
+AM_CPPFLAGS =
+MOC = $(QTDIR_BIN)/moc
+#UIC = $(QTDIR_BIN)/uic3
+UIC = /usr/bin/uic3
+UIFILES = $(wildcard *.ui)
+MOCFILES = $(shell for h in $(filter %.h,$(SOURCES)); do \
+ if grep -q Q_OBJECT $$h; then \
+ echo $$h | sed "s/\(.*\)\.h/moc_\1.cpp/"; \
+ fi; \
+ done)
+
+BUILT_SOURCES = $(MOCFILES) $(UIFILES:%.ui=%.h) all-pic.h \
+ $(am__append_1)
+MOSTLYCLEANFILES = $(MOCFILES) $(UIFILES:%.ui=%.h)
+SUFFIXES = .ui .h.gch
+ACLOCAL_AMFLAGS = -I m4
+SUBDIRS = m4 al synti muse lib share demos doc plugins grepmidi xpm packaging utils
+DISTCLEANFILES = stamp-doxygen
+MAINTAINERCLEANFILES = depcomp config.guess \
+ install-sh config.sub missing mkinstalldirs INSTALL COPYING
+
+EXTRA_DIST = common.am README.de README.softsynth \
+ SECURITY autogen.sh README.translate README.shortcuts \
+ README.instruments NEWS README.CVS muse.prj \
+ README.ladspaguis all.h
+
+all: $(BUILT_SOURCES) config.h
+ $(MAKE) $(AM_MAKEFLAGS) all-recursive
+
+.SUFFIXES:
+.SUFFIXES: .ui .h.gch .lo .o
+am--refresh:
+ @:
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/common.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ echo ' cd $(srcdir) && $(AUTOMAKE) --gnu'; \
+ $(am__cd) $(srcdir) && $(AUTOMAKE) --gnu \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ echo ' $(SHELL) ./config.status'; \
+ $(SHELL) ./config.status;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ $(SHELL) ./config.status --recheck
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ $(am__cd) $(srcdir) && $(AUTOCONF)
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
+$(am__aclocal_m4_deps):
+
+config.h: stamp-h1
+ @if test ! -f $@; then \
+ rm -f stamp-h1; \
+ $(MAKE) $(AM_MAKEFLAGS) stamp-h1; \
+ else :; fi
+
+stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status
+ @rm -f stamp-h1
+ cd $(top_builddir) && $(SHELL) ./config.status config.h
+$(srcdir)/config.h.in: $(am__configure_deps)
+ ($(am__cd) $(top_srcdir) && $(AUTOHEADER))
+ rm -f stamp-h1
+ touch $@
+
+distclean-hdr:
+ -rm -f config.h stamp-h1
+Doxyfile: $(top_builddir)/config.status $(srcdir)/Doxyfile.in
+ cd $(top_builddir) && $(SHELL) ./config.status $@
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+
+distclean-libtool:
+ -rm -f libtool config.lt
+
+# This directory's subdirectories are mostly independent; you can cd
+# into them and run `make' without going through this Makefile.
+# To change the values of `make' variables: instead of editing Makefiles,
+# (1) if the variable is set in `config.status', edit `config.status'
+# (which will cause the Makefiles to be regenerated when you run `make');
+# (2) otherwise, pass the desired values on the `make' command line.
+$(RECURSIVE_TARGETS):
+ @fail= failcom='exit 1'; \
+ for f in x $$MAKEFLAGS; do \
+ case $$f in \
+ *=* | --[!k]*);; \
+ *k*) failcom='fail=yes';; \
+ esac; \
+ done; \
+ dot_seen=no; \
+ target=`echo $@ | sed s/-recursive//`; \
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ echo "Making $$target in $$subdir"; \
+ if test "$$subdir" = "."; then \
+ dot_seen=yes; \
+ local_target="$$target-am"; \
+ else \
+ local_target="$$target"; \
+ fi; \
+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ || eval $$failcom; \
+ done; \
+ if test "$$dot_seen" = "no"; then \
+ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
+ fi; test -z "$$fail"
+
+$(RECURSIVE_CLEAN_TARGETS):
+ @fail= failcom='exit 1'; \
+ for f in x $$MAKEFLAGS; do \
+ case $$f in \
+ *=* | --[!k]*);; \
+ *k*) failcom='fail=yes';; \
+ esac; \
+ done; \
+ dot_seen=no; \
+ case "$@" in \
+ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+ *) list='$(SUBDIRS)' ;; \
+ esac; \
+ rev=''; for subdir in $$list; do \
+ if test "$$subdir" = "."; then :; else \
+ rev="$$subdir $$rev"; \
+ fi; \
+ done; \
+ rev="$$rev ."; \
+ target=`echo $@ | sed s/-recursive//`; \
+ for subdir in $$rev; do \
+ echo "Making $$target in $$subdir"; \
+ if test "$$subdir" = "."; then \
+ local_target="$$target-am"; \
+ else \
+ local_target="$$target"; \
+ fi; \
+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ || eval $$failcom; \
+ done && test -z "$$fail"
+tags-recursive:
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+ done
+ctags-recursive:
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
+ done
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ mkid -fID $$unique
+tags: TAGS
+
+TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ set x; \
+ here=`pwd`; \
+ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
+ include_option=--etags-include; \
+ empty_fix=.; \
+ else \
+ include_option=--include; \
+ empty_fix=; \
+ fi; \
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ test ! -f $$subdir/TAGS || \
+ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
+ fi; \
+ done; \
+ list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: CTAGS
+CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+ $(am__remove_distdir)
+ test -d "$(distdir)" || mkdir "$(distdir)"
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+ @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ test -d "$(distdir)/$$subdir" \
+ || $(MKDIR_P) "$(distdir)/$$subdir" \
+ || exit 1; \
+ fi; \
+ done
+ @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
+ $(am__relativize); \
+ new_distdir=$$reldir; \
+ dir1=$$subdir; dir2="$(top_distdir)"; \
+ $(am__relativize); \
+ new_top_distdir=$$reldir; \
+ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
+ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
+ ($(am__cd) $$subdir && \
+ $(MAKE) $(AM_MAKEFLAGS) \
+ top_distdir="$$new_top_distdir" \
+ distdir="$$new_distdir" \
+ am__remove_distdir=: \
+ am__skip_length_check=: \
+ am__skip_mode_fix=: \
+ distdir) \
+ || exit 1; \
+ fi; \
+ done
+ -test -n "$(am__skip_mode_fix)" \
+ || find "$(distdir)" -type d ! -perm -755 \
+ -exec chmod u+rwx,go+rx {} \; -o \
+ ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
+ ! -type d ! -perm -400 -exec chmod a+r {} \; -o \
+ ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \
+ || chmod -R a+r "$(distdir)"
+dist-gzip: distdir
+ tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
+ $(am__remove_distdir)
+
+dist-bzip2: distdir
+ tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2
+ $(am__remove_distdir)
+
+dist-lzma: distdir
+ tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma
+ $(am__remove_distdir)
+
+dist-xz: distdir
+ tardir=$(distdir) && $(am__tar) | xz -c >$(distdir).tar.xz
+ $(am__remove_distdir)
+
+dist-tarZ: distdir
+ tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
+ $(am__remove_distdir)
+
+dist-shar: distdir
+ shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
+ $(am__remove_distdir)
+
+dist-zip: distdir
+ -rm -f $(distdir).zip
+ zip -rq $(distdir).zip $(distdir)
+ $(am__remove_distdir)
+
+dist dist-all: distdir
+ tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
+ $(am__remove_distdir)
+
+# This target untars the dist file and tries a VPATH configuration. Then
+# it guarantees that the distribution is self-contained by making another
+# tarfile.
+distcheck: dist
+ case '$(DIST_ARCHIVES)' in \
+ *.tar.gz*) \
+ GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\
+ *.tar.bz2*) \
+ bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\
+ *.tar.lzma*) \
+ lzma -dc $(distdir).tar.lzma | $(am__untar) ;;\
+ *.tar.xz*) \
+ xz -dc $(distdir).tar.xz | $(am__untar) ;;\
+ *.tar.Z*) \
+ uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
+ *.shar.gz*) \
+ GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\
+ *.zip*) \
+ unzip $(distdir).zip ;;\
+ esac
+ chmod -R a-w $(distdir); chmod a+w $(distdir)
+ mkdir $(distdir)/_build
+ mkdir $(distdir)/_inst
+ chmod a-w $(distdir)
+ test -d $(distdir)/_build || exit 0; \
+ dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
+ && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
+ && am__cwd=`pwd` \
+ && $(am__cd) $(distdir)/_build \
+ && ../configure --srcdir=.. --prefix="$$dc_install_base" \
+ $(DISTCHECK_CONFIGURE_FLAGS) \
+ && $(MAKE) $(AM_MAKEFLAGS) \
+ && $(MAKE) $(AM_MAKEFLAGS) dvi \
+ && $(MAKE) $(AM_MAKEFLAGS) check \
+ && $(MAKE) $(AM_MAKEFLAGS) install \
+ && $(MAKE) $(AM_MAKEFLAGS) installcheck \
+ && $(MAKE) $(AM_MAKEFLAGS) uninstall \
+ && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \
+ distuninstallcheck \
+ && chmod -R a-w "$$dc_install_base" \
+ && ({ \
+ (cd ../.. && umask 077 && mkdir "$$dc_destdir") \
+ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \
+ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \
+ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \
+ distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \
+ } || { rm -rf "$$dc_destdir"; exit 1; }) \
+ && rm -rf "$$dc_destdir" \
+ && $(MAKE) $(AM_MAKEFLAGS) dist \
+ && rm -rf $(DIST_ARCHIVES) \
+ && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \
+ && cd "$$am__cwd" \
+ || exit 1
+ $(am__remove_distdir)
+ @(echo "$(distdir) archives ready for distribution: "; \
+ list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
+ sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x'
+distuninstallcheck:
+ @$(am__cd) '$(distuninstallcheck_dir)' \
+ && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \
+ || { echo "ERROR: files left after uninstall:" ; \
+ if test -n "$(DESTDIR)"; then \
+ echo " (check DESTDIR support)"; \
+ fi ; \
+ $(distuninstallcheck_listfiles) ; \
+ exit 1; } >&2
+distcleancheck: distclean
+ @if test '$(srcdir)' = . ; then \
+ echo "ERROR: distcleancheck can only run from a VPATH build" ; \
+ exit 1 ; \
+ fi
+ @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \
+ || { echo "ERROR: files left in build directory after distclean:" ; \
+ $(distcleancheck_listfiles) ; \
+ exit 1; } >&2
+check-am: all-am
+check: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) check-recursive
+all-am: Makefile config.h
+installdirs: installdirs-recursive
+installdirs-am:
+install: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) install-recursive
+install-exec: install-exec-recursive
+install-data: install-data-recursive
+uninstall: uninstall-recursive
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-recursive
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+ -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES)
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+ -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+ -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
+ -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
+clean: clean-recursive
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-recursive
+ -rm -f $(am__CONFIG_DISTCLEAN_FILES)
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-hdr \
+ distclean-libtool distclean-tags
+
+dvi: dvi-recursive
+
+dvi-am:
+
+html: html-recursive
+
+html-am:
+
+info: info-recursive
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-recursive
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-recursive
+
+install-html-am:
+
+install-info: install-info-recursive
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-recursive
+
+install-pdf-am:
+
+install-ps: install-ps-recursive
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-recursive
+ -rm -f $(am__CONFIG_DISTCLEAN_FILES)
+ -rm -rf $(top_srcdir)/autom4te.cache
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-recursive
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-recursive
+
+pdf-am:
+
+ps: ps-recursive
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) all check \
+ ctags-recursive install install-am install-strip \
+ tags-recursive
+
+.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
+ all all-am am--refresh check check-am clean clean-generic \
+ clean-libtool ctags ctags-recursive dist dist-all dist-bzip2 \
+ dist-gzip dist-lzma dist-shar dist-tarZ dist-xz dist-zip \
+ distcheck distclean distclean-generic distclean-hdr \
+ distclean-libtool distclean-tags distcleancheck distdir \
+ distuninstallcheck dvi dvi-am html html-am info info-am \
+ install install-am install-data install-data-am install-dvi \
+ install-dvi-am install-exec install-exec-am install-html \
+ install-html-am install-info install-info-am install-man \
+ install-pdf install-pdf-am install-ps install-ps-am \
+ install-strip installcheck installcheck-am installdirs \
+ installdirs-am maintainer-clean maintainer-clean-generic \
+ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
+ ps ps-am tags tags-recursive uninstall uninstall-am
+
+
+de:
+ @for base in $(MOCFILES); do echo -e "\t$${base}.cpp $${base}.h \\"; done
+
+nde:
+ @for base in $(MOCFILES); do echo -e "\tmoc_$${base}.cpp \\"; done
+
+.ui.o: %.h
+ $(UIC) -L $(top_srcdir)/muse/widgets -o $*.cpp -impl $*.h $*.ui
+ $(MOC) $*.h >> $*.cpp
+ $(CXXCOMPILE) -c $*.cpp -o $*.o
+ $(RM) $*.cpp moc_$*.cpp moc_$*.o
+
+.ui.lo: %.h
+ $(UIC) -L $(top_srcdir)/muse/widgets -o $*.cpp -impl $*.h $*.ui
+ $(MOC) $*.h >> $*.cpp
+ $(LTCXXCOMPILE) -c $*.cpp -o $*.lo
+ $(RM) $*.cpp moc_$*.cpp moc_$*.lo moc_$*.o
+
+moc_%.cpp: %.h
+ $(MOC) $< -o $@
+
+%.h: %.ui
+ $(UIC) -o $@ $<
+# $(UIC) -L $(top_srcdir)/muse/widgets -o $@ $<
+
+@PCH_TRUE@all.h.gch: all.h
+@PCH_TRUE@ $(CXX) $(AM_CXXFLAGS) all.h -o all.h.gch
+@PCH_TRUE@all-pic.h.gch: all-pic.h
+@PCH_TRUE@ $(CXX) $(AM_CXXFLAGS) -fPIC all-pic.h -o all-pic.h.gch
+
+all-pic.h: all.h
+ cp all.h all-pic.h
+
+dox: stamp-doxygen
+
+stamp-doxygen: $(shell find -name "*.cpp" -or -name "*.h")
+ $(DOXYGEN) Doxyfile
+ touch stamp-doxygen
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/muse2/NEWS b/muse2/NEWS
new file mode 100644
index 00000000..96613ef6
--- /dev/null
+++ b/muse2/NEWS
@@ -0,0 +1,29 @@
+MusE 0.7:
+ New features:
+
+ - MusE now depends on JACK; midi event timing is coupled
+ to JACK timing i.e
+ - simpler integration of internal software synthesizer;
+ midi events are now delivered directly to synthesizer without
+ ALSA. This eleminates the need of an extra realtime thread
+ for every synthesizer instance.
+ - instrument definition files "*.idf" files now describe
+ available midi controller for instrument
+ - software synthesizer show available midi controller
+ with name in controller editor pulldown
+ - 14 bit midi controllers (RPN'n NRPN's) can be handled in
+ graphical controller editor
+ - imported midi can be added to current song
+ - "New" now shows a selection of template songs to start with
+ - Keyboard shortcuts editor: most (all?) shortcuts can now be changed at
+ runtime.
+ - Redesigned audio-mixer with much improved routing capabilities
+ towards JACK.
+ - Track types extended, input, output, group, aux, wavetrack,
+ softsynth, miditrack, drumtrack
+ - The beginings of automation, only volume/pan at the moment.
+ - Improved RT performance, xruns should be a thing of the past. :)
+ - JACK transport integration
+ - support of JACK "freewheel" mode
+ - extended configuration - configurable shortcuts
+
diff --git a/muse2/README b/muse2/README
new file mode 100644
index 00000000..65963b43
--- /dev/null
+++ b/muse2/README
@@ -0,0 +1,82 @@
+====================================================================
+ MusE --- Linux (Midi) 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
+ =============================
+
+ - QT: Qt 3.2.0 or above
+ ftp://ftp.trolltech.com/qt/source
+ MusE does _not_ compile with older versions
+ Please compile Qt3 with "-thread" option so you get
+ the qt-mt.so lib instead of qt.so
+ MAKE SURE YOU SET YOUR 'QTDIR' ENVIRONMENT VARIABLE
+
+ - ALSA 0.9.x or newer (cvs)
+ http://www.alsa-project.org/
+
+ - gcc 3.x.x
+ NOTE: you _must_ compile MusE with the same compiler
+ you used to compile QT
+
+ - libsndfile 1.0.1 (current 1.0.4)
+ http://www.zip.com.au/~erikd/libsndfile/
+
+ - Linux kernel with rtc (RealTimeClock) driver (device /dev/rtc)
+ (you may also apply "low latency patches" for low timing jitter)
+
+ - JACK
+ http://jackit.sourceforge.net/download/
+
+ - fluidsynth-1.0.3 (formerly known as iiwusynth) from
+ http://savannah.nongnu.org/download/fluid
+
+ - of course: a soundcard and/or some midi gear
+ - (if you compile from cvs:) automake 1.7 and autoconf 2.54
+
+ =============================
+ Compiling:
+ =============================
+
+ - download source from http://lmuse.sourceforge.net/
+ - uncompress source:
+ bunzip2 muse-x.x.x.tar.bz2
+ - untar source:
+ tar xvof muse-x.x.x.tar </code>
+ or if you have a recent tar, you can combine both steps:
+ tar xvofj muse-x.x.x.tar.bz2
+
+ - enter dirctory muse-x.x.x:
+ MAKE SURE YOU SET YOUR 'QTDIR' ENVIRONMENT VARIABLE
+ run configure
+ run make all
+
+ - as root run:
+ make install
+ to install MusE
+
+ =============================
+ some known bugs
+ =============================
+
+ - many
+
+====================================================================
+Let me know whether MusE works for you !!!
+Have a look at the webpage http://www.muse-sequencer.org/ for details.
+
diff --git a/muse2/README.CVS b/muse2/README.CVS
new file mode 100644
index 00000000..43d973c5
--- /dev/null
+++ b/muse2/README.CVS
@@ -0,0 +1,3 @@
+
+To compile a cvs tree, inspect ./autogen.sh and then run it
+
diff --git a/muse2/README.de b/muse2/README.de
new file mode 100644
index 00000000..b6b03c5a
--- /dev/null
+++ b/muse2/README.de
@@ -0,0 +1,69 @@
+====================================================================
+ MusE --- Linux (Midi) 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/muse2/README.effects-rack b/muse2/README.effects-rack
new file mode 100644
index 00000000..823ae74c
--- /dev/null
+++ b/muse2/README.effects-rack
@@ -0,0 +1,85 @@
+May 6, 2010 v0.0.2 by Tim.
+
+Understanding the Effects Rack
+------------------------------
+
+All audio track types (Input, Output, Group, Wave, Synth, and Aux) have
+ an effects rack into which audio plugins can be inserted in a chain.
+Currently each rack can accomodate up to four plugins.
+
+MusE currently supports LADSPA plugins and DSSI effects plugins.
+
+One must carefully consider how many audio inputs and outputs a plugin has,
+ and how may channels the particular audio track has (1 mono or 2 stereo),
+ and how MusE uses the plugins in the rack.
+
+MusE will try to internally create as many independent copies (instances) of
+ a plugin as necessary, to satisfy the number of channels in the audio track.
+Basically it divides the number of track channels by the number of
+ plugin audio inputs or outputs to determine how many copies to make.
+First it examines the number of plugin audio outputs, and if there are none,
+ it will examine the number of audio inputs, and if there are none,
+ it will simply use just one plugin copy.
+
+For mono tracks with plugins having more than one audio input or output,
+ MusE uses the first input or output and ignores the rest.
+
+For stereo tracks:
+
+ Plugin Plugin Independent Real number Real number
+ audio audio plugin of track of track
+ inputs: outputs: copies: input route output route
+ channels used: channels used:
+ -------------------------------------------------------------------
+ 0 0 1 0 0
+ 0 1 2 0 2
+ 0 >= 2 1 0 2
+ 1 0 2 2 0
+ 1 1 2 2 2
+ 1 >= 2 1 1 L only! 2
+ >= 2 0 1 2 0
+ >= 2 1 2 2 2
+ >= 2 >= 2 1 2 2
+
+Notice that on a stereo track with a plugin having one audio input and two
+ audio outputs, only the first track input route channel is used (left only).
+
+These same rules apply to inter-plugin audio when more than one plugin
+ is in the rack chain. Extra audio outputs of one plugin may be ignored
+ by the next plugin if not used.
+
+Currently plugins with no audio outputs are not really useful in MusE,
+ chiefly because plugin control outputs are not used or displayed.
+Nor are specialized plugins with many inputs and/or outputs.
+
+Nor are so-called 'realtime' control plugins which use audio inputs
+ and outputs for control signals.
+<<<
+ Loud noise alert! Beware of using such plugins in an audio effects rack.
+>>>
+
+
+Example: Consider a stereo Audio Input track with these effect rack
+ LADSPA plugins:
+
+ comb_splitter Comb Splitter by Steve Harris, and
+ tap_stereo_echo Tap Stereo Echo by Tom Szilagyi
+
+The Comb Splitter has one audio input and two audio outputs.
+The Stereo Echo has two audio inputs and two audio outputs.
+
+The stereo Audio Input track will therefore ignore its second
+ input route connection. It will process the left input only,
+ separating it into stereo with the Comb Splitter, passing the
+ split stereo signal into the Stereo Echo, finally producing
+ stereo output available at the Audio Input track's output routes.
+
+
+One improvement would be not creating unused redundant plugin copies
+ between plugins in stereo tracks.
+For example, for a plugin having one audio input and one audio output,
+ feeding a plugin having one audio input and two audio outputs,
+ the extra copy of the first plugin is redundant and not required,
+ but currently it is created anyway.
+
+ \ No newline at end of file
diff --git a/muse2/README.instruments b/muse2/README.instruments
new file mode 100644
index 00000000..a2693b4e
--- /dev/null
+++ b/muse2/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/muse2/README.ladspaguis b/muse2/README.ladspaguis
new file mode 100644
index 00000000..c1b168ff
--- /dev/null
+++ b/muse2/README.ladspaguis
@@ -0,0 +1,56 @@
+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/widgets/musewidgetsplugin.so into a directory were
+Qt (designer) can find it.
+
+Example:
+ if you installed Qt in /usr/qt3:
+ su -c "cp -af musewidgetsplugin.so /usr/qt3/plugins/designer"
+Check:
+ After starting the Qt designer you see all MusE specific widgets
+ under Tools/MusE. If you cannot find any MusE widgets, designer
+ did not find the file "musewidgetsplugin.so".
+
+======================
+ 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" followed by the parameter
+index.
+ Example:
+ A "Slider" widget which manipulates the 3th parameter of a
+ plugin has the name "P3slider".
+
+Supported Widgets:
+ "Slider" slider for float values
+ "DoubleLabel" entry for float values
+ "QCheckbox" to manipulate a on/off LADSPA parameter
+ "QComboBox" select from a list of named values; sets
+ integer LADSPA values
+
+(for more hints please look at the example *.ui files)
+
diff --git a/muse2/README.shortcuts b/muse2/README.shortcuts
new file mode 100644
index 00000000..48de30f3
--- /dev/null
+++ b/muse2/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/muse2/README.softsynth b/muse2/README.softsynth
new file mode 100644
index 00000000..e3201ff2
--- /dev/null
+++ b/muse2/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/muse2/README.translate b/muse2/README.translate
new file mode 100644
index 00000000..d169e35f
--- /dev/null
+++ b/muse2/README.translate
@@ -0,0 +1,62 @@
+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/qt3-2/bin/lupdate muse.pro
+
+ This generates the file "locale/muse_fr.ts".
+
+Step 3:
+ Edit "locale/muse_fr.ts" manually or use the Qt "linguist" tool:
+
+ linguist muse_fr.ts
+
+Step 4:
+ Save the edited file "muse_fr.ts" from linguist and
+ start File->Release. This generates the file "locale/muse_fr.qm"
+
+ or
+
+ start the Qt program "lrelease"
+
+ lrelease muse.pro
+
+ This generates all *.qm files.
+
+Step 5:
+ install the *.qm files: as superuser start "make install"
+
+
+Step 6:
+ Test:
+ set the environment variable LANG to the desired
+ Language:
+ export LANG=fr
+
+ Start MusE:
+ muse
+
+
+
diff --git a/muse2/SECURITY b/muse2/SECURITY
new file mode 100644
index 00000000..d09e03d9
--- /dev/null
+++ b/muse2/SECURITY
@@ -0,0 +1,244 @@
+MusE Security Information
+=========================
+
+In order to operate reliably at low latencies, MusE needs root privileges.
+For a stand-alone computer in a home environment, this is not a problem.
+However, on networked machines with multi-user access, there are some security
+issues to be aware of.
+
+
+Why does MusE require root privileges ?
+---------------------------------------
+
+1.
+MusE must set the real time clock (/dev/rtc/) to a higher rate in order to get
+a more precise timing source than the standard setting would allow.
+For this task, it is *not* sufficient to alter the permissions or group of
+/dev/rtc. You need root access.
+
+2.
+The MusE audio threads must acquire real-time scheduling to perform with low
+latency and free of dropouts. Since this could be misused for a local
+denial-of-service attack (you can hog 100% cpu with a real-time task, thus
+effectively making the system unusable), only root is allowed to do that.
+
+
+Do I need to be root to run MusE ?
+----------------------------------
+
+No. You should not do normal work as root. Use the root login exclusively for
+administrative tasks. You can run MusE as a normal user, provided you have set
+the *suid bit*.
+This is done automatically when you build and install MusE.
+
+
+How does this "suid bit" thing work ?
+--------------------------------------
+
+Normally, when a program is started, it gets the user and group id of the user
+who started it, and thus has the same permissions as the user. It can read and
+write the same files and use the same devices.
+
+Some applications need higher privileges to perform certain tasks, but must be
+available to normal users. To accomplish this, UNIX-like systems have the
+concept of the "effective user id".
+
+That means you can start a process, but the effective user id will be someone
+else's, most likely that of the root user. You can recognize such programs by
+the suid (for set-user-id) bit in their permissions.
+
+For example, when you do
+
+ #ls -l /bin/ping
+
+you will see something like
+
+ -rwsr-xr-x 1 root root 20908 Feb 27 2001 /bin/ping .
+
+This tells you it's a normal file (the first dash), it is readable and writable
+by the owner (root) and has the owner's suid bit set (the letter "s").
+You may invoke it as a normal user, but the program will have root permissions
+while it runs.
+
+(Btw, there is also an sgid (set-group-id) bit, which allows a program to be run
+with the permissions of the group it is owned by. This can be used for
+finer-grained access control to some programs but is rarely used in practice.)
+
+(Btw2, the letter "s" actually means both "executable" AND "set-{user,group}-id".
+A capital "S" stands for "set-uid" without the execution privilege, which also
+very rarely seen on real systems.)
+
+
+What is the problem with suid programs ?
+----------------------------------------
+
+suid programs are safe as long as you can be sure they do only the job they were
+written to do. For instance, you certainly want users to be able to do a ping,
+but you wouldn't want them to wipe out the system disk while doing it.
+
+Unfortunately, there is a very common vulnerability in many programs called a
+buffer overflow, which allows an attacker to spawn a shell from within a suid
+program that inherits the permissions, giving him or her root access to the
+entire system.
+This exploit is fairly easy for an experienced attacker. All that's needed is
+the compiled equivalent of the C expression execve("/bin/sh"), which can be
+inserted into the running program whenever it does not check the length of user
+input properly, by overflowing a buffer and thus overwriting a part of
+the program code with the shell exploit code.
+
+The more complex a program becomes, the more likely buffer overflow
+vulnerabilities slip in.
+
+If you are interested in details of such attacks, I recommend AlephOne's paper
+"Smashing the stack for fun and profit", to be found in Issue 49 of Phrack
+Magazine (http://www.phrack.com/show.php?p=49&a=14).
+
+
+Does MusE have buffer-overflow vulnerabilities ?
+------------------------------------------------
+
+It may. But even if it had not, it is good practice to assume it does.
+As soon as you are in a security-critical environment, you should treat all suid
+programs with extra care unless they are proven to be secure.
+
+This is a gruesome and boring task, and we all want Werner to concentrate on
+cool new features rather than digging through the code to fix loopholes that
+aren't even a problem for 99% of the MusE users.
+MusE does not need to be as secure as server daemons. It is intended for home
+use in a trusted environment.
+If you run MusE on your company's primary DNS server, it's your fault.
+
+But even home machines can become targets for intruders the moment they connect
+to the internet. Since almost all of the machines than run MusE are occasionally
+used to surf the web, it might be worth taking a few precautions.
+
+
+What can I do to minimize the risk of a suid program ?
+------------------------------------------------------
+
+By default, Werner drops the root privileges in MusE's GUI thread - only the
+audio threads keep it. This rules out many possible exploits, since GUI code is
+usually the hardest to make secure.
+
+
+As a further very simple yet effective security precaution, you can create a
+group of trusted users, and give only this group access to critical suid
+programs. For example, you might create a group called musers, of which you and
+your best friend are members. Then you can set the muse binary as follows:
+
+ #chown root:musers muse
+ #chmod 4750 muse
+ #ls -l muse
+ -rwsr-x--- 1 root musers 20930049 Aug 28 19:34 muse
+
+Now only members of the group musers can use MusE, Joe Random Hacker can not.
+(However, if your account is hacked, MusE can then be exploited to gain root,
+but hey...)
+
+Additionally, you can use "givertcap" as described in the next section.
+
+
+What is givertcap and how do I use it ?
+---------------------------------------
+
+"givertcap" (give real-time capabilites) is a small wrapper written by Tommi
+Ilmonen.
+When enabled, it is executed by MusE and gives to it just the capabilities
+needed to set the timer and get real-time scheduling, but not the full set of
+root privileges. This greatly reduces the amount of damage that can be done.
+
+However, it is not used by default, since it requires a kernel modification.
+
+To enable givertcap, simply call ./configure --enable-rtcap before compiling.
+(The givertcap code is part of the MusE distribution.)
+
+With current kernels, you need to apply a little patch to the kernel headers:
+Go to /usr/src/linux/include/linux (or wherever you have your kernel sources)
+and in the file capability.h change the line
+
+ #define CAP_INIT_EFF_SET to_cap_t(~0&~CAP_TO_MASK(CAP_SETPCAP))
+to
+ #define CAP_INIT_EFF_SET to_cap_t( ~0 )
+
+and the line
+
+ #define CAP_INIT_INH_SET to_cap_t(0)
+to
+ #define CAP_INIT_INH_SET to_cap_t( ~0 )
+.
+
+You must then recompile your kernel.
+
+In this setup, givertcap must be set suid root, but MusE can be run with normal
+privileges.
+Now all possible suid exploits described above apply to givertcap, but since it
+is such a tiny program, it can be checked for exploits far more easily and can
+be considered reasonably secure.
+
+Unfortunately, givertcap can be used to grant real-time privileges to *any*
+program, so it's an easy way to have the machine clogged up by a malicious user
+who might run bogus tasks at 100% system usage.
+Therefore, you *must* create an extra group for it (called "musers" in this
+example):
+ # chown root:musers givertcap
+ # chmod 4750 givertcap
+Do not forget to remove the suid bit on muse afterwards by doing
+ # chmod 755 muse
+.
+
+For more information about givertcap and kernel capabilites, see
+http://www.tml.hut.fi/~tilmonen/givertcap/
+and
+http://ftp.kernel.org/pub/linux/libs/security/linux-privs/kernel-2.4/capfaq-0.2.
+txt.
+
+
+
+Further reading:
+================
+
+General Linux system security:
+http://linuxdoc.org/HOWTO/Security-Quickstart-HOWTO/
+http://linuxdoc.org/HOWTO/Security-HOWTO.html
+
+Secure Linux programming:
+http://linuxdoc.org/HOWTO/Secure-Programs-HOWTO/
+
+Permissions:
+man chmod
+man chattr
+
+givertcap:
+http://www.tml.hut.fi/~tilmonen/givertcap/
+
+An alternative approach, using a kernel module:
+http://arctrix.com/nas/linux/capwrap.tar.gz
+
+Kernel capabilites:
+http://ftp.kernel.org/pub/linux/libs/security/linux-privs/kernel-2.4/capfaq-0.2.
+txt
+
+Adding capability flags to ELF files:
+http://atrey.karlin.mff.cuni.cz/~pavel/elfcap.html
+
+
+Buffer Overflow attacks:
+"Smashing the stack for fun and profit" by AlephOne 1996, published in
+Phrack magazine, issue 49
+http://www.phrack.com/show.php?p=49&a=14
+
+In the MusE source, app.cpp contains the invocation of givertcap and the
+dropping of the suid privileges: grep for "getCapabilities" and "setuid" to see
+how it's done.
+
+________________________________________________________________________________
+
+
+This document was written by Jörn Nettingsmeier
+<nettings@folkwang-hochschule.de>
+Corrections and improvements welcome.
+
+Thanks to Werner Schweer and Tommi Ilmonen for answering my questions.
+
+Last updated 02/22/2002.
+
diff --git a/muse2/aclocal.m4 b/muse2/aclocal.m4
new file mode 100644
index 00000000..948fb3fa
--- /dev/null
+++ b/muse2/aclocal.m4
@@ -0,0 +1,1334 @@
+# generated automatically by aclocal 1.11.1 -*- Autoconf -*-
+
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+# 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+m4_ifndef([AC_AUTOCONF_VERSION],
+ [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
+m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.65],,
+[m4_warning([this file was generated for autoconf 2.65.
+You have another version of autoconf. It may work, but is not guaranteed to.
+If you have problems, you may need to regenerate the build system entirely.
+To do so, use the procedure documented by the package, typically `autoreconf'.])])
+
+# pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*-
+#
+# Copyright © 2004 Scott James Remnant <scott@netsplit.com>.
+#
+# 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.
+#
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# PKG_PROG_PKG_CONFIG([MIN-VERSION])
+# ----------------------------------
+AC_DEFUN([PKG_PROG_PKG_CONFIG],
+[m4_pattern_forbid([^_?PKG_[A-Z_]+$])
+m4_pattern_allow([^PKG_CONFIG(_PATH)?$])
+AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility])dnl
+if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
+ AC_PATH_TOOL([PKG_CONFIG], [pkg-config])
+fi
+if test -n "$PKG_CONFIG"; then
+ _pkg_min_version=m4_default([$1], [0.9.0])
+ AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version])
+ if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then
+ AC_MSG_RESULT([yes])
+ else
+ AC_MSG_RESULT([no])
+ PKG_CONFIG=""
+ fi
+
+fi[]dnl
+])# PKG_PROG_PKG_CONFIG
+
+# PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
+#
+# Check to see whether a particular set of modules exists. Similar
+# to PKG_CHECK_MODULES(), but does not set variables or print errors.
+#
+#
+# Similar to PKG_CHECK_MODULES, make sure that the first instance of
+# this or PKG_CHECK_MODULES is called, or make sure to call
+# PKG_CHECK_EXISTS manually
+# --------------------------------------------------------------
+AC_DEFUN([PKG_CHECK_EXISTS],
+[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
+if test -n "$PKG_CONFIG" && \
+ AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then
+ m4_ifval([$2], [$2], [:])
+m4_ifvaln([$3], [else
+ $3])dnl
+fi])
+
+
+# _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES])
+# ---------------------------------------------
+m4_define([_PKG_CONFIG],
+[if test -n "$PKG_CONFIG"; then
+ if test -n "$$1"; then
+ pkg_cv_[]$1="$$1"
+ else
+ PKG_CHECK_EXISTS([$3],
+ [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`],
+ [pkg_failed=yes])
+ fi
+else
+ pkg_failed=untried
+fi[]dnl
+])# _PKG_CONFIG
+
+# _PKG_SHORT_ERRORS_SUPPORTED
+# -----------------------------
+AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED],
+[AC_REQUIRE([PKG_PROG_PKG_CONFIG])
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+ _pkg_short_errors_supported=yes
+else
+ _pkg_short_errors_supported=no
+fi[]dnl
+])# _PKG_SHORT_ERRORS_SUPPORTED
+
+
+# PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND],
+# [ACTION-IF-NOT-FOUND])
+#
+#
+# Note that if there is a possibility the first call to
+# PKG_CHECK_MODULES might not happen, you should be sure to include an
+# explicit call to PKG_PROG_PKG_CONFIG in your configure.ac
+#
+#
+# --------------------------------------------------------------
+AC_DEFUN([PKG_CHECK_MODULES],
+[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
+AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl
+AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl
+
+pkg_failed=no
+AC_MSG_CHECKING([for $1])
+
+_PKG_CONFIG([$1][_CFLAGS], [cflags], [$2])
+_PKG_CONFIG([$1][_LIBS], [libs], [$2])
+
+m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS
+and $1[]_LIBS to avoid the need to call pkg-config.
+See the pkg-config man page for more details.])
+
+if test $pkg_failed = yes; then
+ _PKG_SHORT_ERRORS_SUPPORTED
+ if test $_pkg_short_errors_supported = yes; then
+ $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "$2"`
+ else
+ $1[]_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$2"`
+ fi
+ # Put the nasty error message in config.log where it belongs
+ echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD
+
+ ifelse([$4], , [AC_MSG_ERROR(dnl
+[Package requirements ($2) were not met:
+
+$$1_PKG_ERRORS
+
+Consider adjusting the PKG_CONFIG_PATH environment variable if you
+installed software in a non-standard prefix.
+
+_PKG_TEXT
+])],
+ [AC_MSG_RESULT([no])
+ $4])
+elif test $pkg_failed = untried; then
+ ifelse([$4], , [AC_MSG_FAILURE(dnl
+[The pkg-config script could not be found or is too old. Make sure it
+is in your PATH or set the PKG_CONFIG environment variable to the full
+path to pkg-config.
+
+_PKG_TEXT
+
+To get pkg-config, see <http://pkg-config.freedesktop.org/>.])],
+ [$4])
+else
+ $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS
+ $1[]_LIBS=$pkg_cv_[]$1[]_LIBS
+ AC_MSG_RESULT([yes])
+ ifelse([$3], , :, [$3])
+fi[]dnl
+])# PKG_CHECK_MODULES
+
+# Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_AUTOMAKE_VERSION(VERSION)
+# ----------------------------
+# Automake X.Y traces this macro to ensure aclocal.m4 has been
+# generated from the m4 files accompanying Automake X.Y.
+# (This private macro should not be called outside this file.)
+AC_DEFUN([AM_AUTOMAKE_VERSION],
+[am__api_version='1.11'
+dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
+dnl require some minimum version. Point them to the right macro.
+m4_if([$1], [1.11.1], [],
+ [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
+])
+
+# _AM_AUTOCONF_VERSION(VERSION)
+# -----------------------------
+# aclocal traces this macro to find the Autoconf version.
+# This is a private macro too. Using m4_define simplifies
+# the logic in aclocal, which can simply ignore this definition.
+m4_define([_AM_AUTOCONF_VERSION], [])
+
+# AM_SET_CURRENT_AUTOMAKE_VERSION
+# -------------------------------
+# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
+# This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
+AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
+[AM_AUTOMAKE_VERSION([1.11.1])dnl
+m4_ifndef([AC_AUTOCONF_VERSION],
+ [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
+_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
+
+# AM_AUX_DIR_EXPAND -*- Autoconf -*-
+
+# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets
+# $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to
+# `$srcdir', `$srcdir/..', or `$srcdir/../..'.
+#
+# Of course, Automake must honor this variable whenever it calls a
+# tool from the auxiliary directory. The problem is that $srcdir (and
+# therefore $ac_aux_dir as well) can be either absolute or relative,
+# depending on how configure is run. This is pretty annoying, since
+# it makes $ac_aux_dir quite unusable in subdirectories: in the top
+# source directory, any form will work fine, but in subdirectories a
+# relative path needs to be adjusted first.
+#
+# $ac_aux_dir/missing
+# fails when called from a subdirectory if $ac_aux_dir is relative
+# $top_srcdir/$ac_aux_dir/missing
+# fails if $ac_aux_dir is absolute,
+# fails when called from a subdirectory in a VPATH build with
+# a relative $ac_aux_dir
+#
+# The reason of the latter failure is that $top_srcdir and $ac_aux_dir
+# are both prefixed by $srcdir. In an in-source build this is usually
+# harmless because $srcdir is `.', but things will broke when you
+# start a VPATH build or use an absolute $srcdir.
+#
+# So we could use something similar to $top_srcdir/$ac_aux_dir/missing,
+# iff we strip the leading $srcdir from $ac_aux_dir. That would be:
+# am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"`
+# and then we would define $MISSING as
+# MISSING="\${SHELL} $am_aux_dir/missing"
+# This will work as long as MISSING is not called from configure, because
+# unfortunately $(top_srcdir) has no meaning in configure.
+# However there are other variables, like CC, which are often used in
+# configure, and could therefore not use this "fixed" $ac_aux_dir.
+#
+# Another solution, used here, is to always expand $ac_aux_dir to an
+# absolute PATH. The drawback is that using absolute paths prevent a
+# configured tree to be moved without reconfiguration.
+
+AC_DEFUN([AM_AUX_DIR_EXPAND],
+[dnl Rely on autoconf to set up CDPATH properly.
+AC_PREREQ([2.50])dnl
+# expand $ac_aux_dir to an absolute path
+am_aux_dir=`cd $ac_aux_dir && pwd`
+])
+
+# AM_CONDITIONAL -*- Autoconf -*-
+
+# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006, 2008
+# Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 9
+
+# AM_CONDITIONAL(NAME, SHELL-CONDITION)
+# -------------------------------------
+# Define a conditional.
+AC_DEFUN([AM_CONDITIONAL],
+[AC_PREREQ(2.52)dnl
+ ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])],
+ [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl
+AC_SUBST([$1_TRUE])dnl
+AC_SUBST([$1_FALSE])dnl
+_AM_SUBST_NOTMAKE([$1_TRUE])dnl
+_AM_SUBST_NOTMAKE([$1_FALSE])dnl
+m4_define([_AM_COND_VALUE_$1], [$2])dnl
+if $2; then
+ $1_TRUE=
+ $1_FALSE='#'
+else
+ $1_TRUE='#'
+ $1_FALSE=
+fi
+AC_CONFIG_COMMANDS_PRE(
+[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then
+ AC_MSG_ERROR([[conditional "$1" was never defined.
+Usually this means the macro was only invoked conditionally.]])
+fi])])
+
+# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009
+# Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 10
+
+# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be
+# written in clear, in which case automake, when reading aclocal.m4,
+# will think it sees a *use*, and therefore will trigger all it's
+# C support machinery. Also note that it means that autoscan, seeing
+# CC etc. in the Makefile, will ask for an AC_PROG_CC use...
+
+
+# _AM_DEPENDENCIES(NAME)
+# ----------------------
+# See how the compiler implements dependency checking.
+# NAME is "CC", "CXX", "GCJ", or "OBJC".
+# We try a few techniques and use that to set a single cache variable.
+#
+# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was
+# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular
+# dependency, and given that the user is not expected to run this macro,
+# just rely on AC_PROG_CC.
+AC_DEFUN([_AM_DEPENDENCIES],
+[AC_REQUIRE([AM_SET_DEPDIR])dnl
+AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl
+AC_REQUIRE([AM_MAKE_INCLUDE])dnl
+AC_REQUIRE([AM_DEP_TRACK])dnl
+
+ifelse([$1], CC, [depcc="$CC" am_compiler_list=],
+ [$1], CXX, [depcc="$CXX" am_compiler_list=],
+ [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'],
+ [$1], UPC, [depcc="$UPC" am_compiler_list=],
+ [$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'],
+ [depcc="$$1" am_compiler_list=])
+
+AC_CACHE_CHECK([dependency style of $depcc],
+ [am_cv_$1_dependencies_compiler_type],
+[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
+ # We make a subdir and do the tests there. Otherwise we can end up
+ # making bogus files that we don't know about and never remove. For
+ # instance it was reported that on HP-UX the gcc test will end up
+ # making a dummy file named `D' -- because `-MD' means `put the output
+ # in D'.
+ mkdir conftest.dir
+ # Copy depcomp to subdir because otherwise we won't find it if we're
+ # using a relative directory.
+ cp "$am_depcomp" conftest.dir
+ cd conftest.dir
+ # We will build objects and dependencies in a subdirectory because
+ # it helps to detect inapplicable dependency modes. For instance
+ # both Tru64's cc and ICC support -MD to output dependencies as a
+ # side effect of compilation, but ICC will put the dependencies in
+ # the current directory while Tru64 will put them in the object
+ # directory.
+ mkdir sub
+
+ am_cv_$1_dependencies_compiler_type=none
+ if test "$am_compiler_list" = ""; then
+ am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp`
+ fi
+ am__universal=false
+ m4_case([$1], [CC],
+ [case " $depcc " in #(
+ *\ -arch\ *\ -arch\ *) am__universal=true ;;
+ esac],
+ [CXX],
+ [case " $depcc " in #(
+ *\ -arch\ *\ -arch\ *) am__universal=true ;;
+ esac])
+
+ for depmode in $am_compiler_list; do
+ # Setup a source with many dependencies, because some compilers
+ # like to wrap large dependency lists on column 80 (with \), and
+ # we should not choose a depcomp mode which is confused by this.
+ #
+ # We need to recreate these files for each test, as the compiler may
+ # overwrite some of them when testing with obscure command lines.
+ # This happens at least with the AIX C compiler.
+ : > sub/conftest.c
+ for i in 1 2 3 4 5 6; do
+ echo '#include "conftst'$i'.h"' >> sub/conftest.c
+ # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
+ # Solaris 8's {/usr,}/bin/sh.
+ touch sub/conftst$i.h
+ done
+ echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
+
+ # We check with `-c' and `-o' for the sake of the "dashmstdout"
+ # mode. It turns out that the SunPro C++ compiler does not properly
+ # handle `-M -o', and we need to detect this. Also, some Intel
+ # versions had trouble with output in subdirs
+ am__obj=sub/conftest.${OBJEXT-o}
+ am__minus_obj="-o $am__obj"
+ case $depmode in
+ gcc)
+ # This depmode causes a compiler race in universal mode.
+ test "$am__universal" = false || continue
+ ;;
+ nosideeffect)
+ # after this tag, mechanisms are not by side-effect, so they'll
+ # only be used when explicitly requested
+ if test "x$enable_dependency_tracking" = xyes; then
+ continue
+ else
+ break
+ fi
+ ;;
+ msvisualcpp | msvcmsys)
+ # This compiler won't grok `-c -o', but also, the minuso test has
+ # not run yet. These depmodes are late enough in the game, and
+ # so weak that their functioning should not be impacted.
+ am__obj=conftest.${OBJEXT-o}
+ am__minus_obj=
+ ;;
+ none) break ;;
+ esac
+ if depmode=$depmode \
+ source=sub/conftest.c object=$am__obj \
+ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
+ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
+ >/dev/null 2>conftest.err &&
+ grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
+ grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
+ grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
+ ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
+ # icc doesn't choke on unknown options, it will just issue warnings
+ # or remarks (even with -Werror). So we grep stderr for any message
+ # that says an option was ignored or not supported.
+ # When given -MP, icc 7.0 and 7.1 complain thusly:
+ # icc: Command line warning: ignoring option '-M'; no argument required
+ # The diagnosis changed in icc 8.0:
+ # icc: Command line remark: option '-MP' not supported
+ if (grep 'ignoring option' conftest.err ||
+ grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
+ am_cv_$1_dependencies_compiler_type=$depmode
+ break
+ fi
+ fi
+ done
+
+ cd ..
+ rm -rf conftest.dir
+else
+ am_cv_$1_dependencies_compiler_type=none
+fi
+])
+AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type])
+AM_CONDITIONAL([am__fastdep$1], [
+ test "x$enable_dependency_tracking" != xno \
+ && test "$am_cv_$1_dependencies_compiler_type" = gcc3])
+])
+
+
+# AM_SET_DEPDIR
+# -------------
+# Choose a directory name for dependency files.
+# This macro is AC_REQUIREd in _AM_DEPENDENCIES
+AC_DEFUN([AM_SET_DEPDIR],
+[AC_REQUIRE([AM_SET_LEADING_DOT])dnl
+AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl
+])
+
+
+# AM_DEP_TRACK
+# ------------
+AC_DEFUN([AM_DEP_TRACK],
+[AC_ARG_ENABLE(dependency-tracking,
+[ --disable-dependency-tracking speeds up one-time build
+ --enable-dependency-tracking do not reject slow dependency extractors])
+if test "x$enable_dependency_tracking" != xno; then
+ am_depcomp="$ac_aux_dir/depcomp"
+ AMDEPBACKSLASH='\'
+fi
+AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
+AC_SUBST([AMDEPBACKSLASH])dnl
+_AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl
+])
+
+# Generate code to set up dependency tracking. -*- Autoconf -*-
+
+# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008
+# Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+#serial 5
+
+# _AM_OUTPUT_DEPENDENCY_COMMANDS
+# ------------------------------
+AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
+[{
+ # Autoconf 2.62 quotes --file arguments for eval, but not when files
+ # are listed without --file. Let's play safe and only enable the eval
+ # if we detect the quoting.
+ case $CONFIG_FILES in
+ *\'*) eval set x "$CONFIG_FILES" ;;
+ *) set x $CONFIG_FILES ;;
+ esac
+ shift
+ for mf
+ do
+ # Strip MF so we end up with the name of the file.
+ mf=`echo "$mf" | sed -e 's/:.*$//'`
+ # Check whether this is an Automake generated Makefile or not.
+ # We used to match only the files named `Makefile.in', but
+ # some people rename them; so instead we look at the file content.
+ # Grep'ing the first line is not enough: some people post-process
+ # each Makefile.in and add a new line on top of each file to say so.
+ # Grep'ing the whole file is not good either: AIX grep has a line
+ # limit of 2048, but all sed's we know have understand at least 4000.
+ if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then
+ dirpart=`AS_DIRNAME("$mf")`
+ else
+ continue
+ fi
+ # Extract the definition of DEPDIR, am__include, and am__quote
+ # from the Makefile without running `make'.
+ DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
+ test -z "$DEPDIR" && continue
+ am__include=`sed -n 's/^am__include = //p' < "$mf"`
+ test -z "am__include" && continue
+ am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
+ # When using ansi2knr, U may be empty or an underscore; expand it
+ U=`sed -n 's/^U = //p' < "$mf"`
+ # Find all dependency output files, they are included files with
+ # $(DEPDIR) in their names. We invoke sed twice because it is the
+ # simplest approach to changing $(DEPDIR) to its actual value in the
+ # expansion.
+ for file in `sed -n "
+ s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
+ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
+ # Make sure the directory exists.
+ test -f "$dirpart/$file" && continue
+ fdir=`AS_DIRNAME(["$file"])`
+ AS_MKDIR_P([$dirpart/$fdir])
+ # echo "creating $dirpart/$file"
+ echo '# dummy' > "$dirpart/$file"
+ done
+ done
+}
+])# _AM_OUTPUT_DEPENDENCY_COMMANDS
+
+
+# AM_OUTPUT_DEPENDENCY_COMMANDS
+# -----------------------------
+# This macro should only be invoked once -- use via AC_REQUIRE.
+#
+# This code is only required when automatic dependency tracking
+# is enabled. FIXME. This creates each `.P' file that we will
+# need in order to bootstrap the dependency handling code.
+AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
+[AC_CONFIG_COMMANDS([depfiles],
+ [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS],
+ [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"])
+])
+
+# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005
+# Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 8
+
+# AM_CONFIG_HEADER is obsolete. It has been replaced by AC_CONFIG_HEADERS.
+AU_DEFUN([AM_CONFIG_HEADER], [AC_CONFIG_HEADERS($@)])
+
+# Do all the work for Automake. -*- Autoconf -*-
+
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+# 2005, 2006, 2008, 2009 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 16
+
+# This macro actually does too much. Some checks are only needed if
+# your package does certain things. But this isn't really a big deal.
+
+# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE])
+# AM_INIT_AUTOMAKE([OPTIONS])
+# -----------------------------------------------
+# The call with PACKAGE and VERSION arguments is the old style
+# call (pre autoconf-2.50), which is being phased out. PACKAGE
+# and VERSION should now be passed to AC_INIT and removed from
+# the call to AM_INIT_AUTOMAKE.
+# We support both call styles for the transition. After
+# the next Automake release, Autoconf can make the AC_INIT
+# arguments mandatory, and then we can depend on a new Autoconf
+# release and drop the old call support.
+AC_DEFUN([AM_INIT_AUTOMAKE],
+[AC_PREREQ([2.62])dnl
+dnl Autoconf wants to disallow AM_ names. We explicitly allow
+dnl the ones we care about.
+m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl
+AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl
+AC_REQUIRE([AC_PROG_INSTALL])dnl
+if test "`cd $srcdir && pwd`" != "`pwd`"; then
+ # Use -I$(srcdir) only when $(srcdir) != ., so that make's output
+ # is not polluted with repeated "-I."
+ AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl
+ # test to see if srcdir already configured
+ if test -f $srcdir/config.status; then
+ AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
+ fi
+fi
+
+# test whether we have cygpath
+if test -z "$CYGPATH_W"; then
+ if (cygpath --version) >/dev/null 2>/dev/null; then
+ CYGPATH_W='cygpath -w'
+ else
+ CYGPATH_W=echo
+ fi
+fi
+AC_SUBST([CYGPATH_W])
+
+# Define the identity of the package.
+dnl Distinguish between old-style and new-style calls.
+m4_ifval([$2],
+[m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl
+ AC_SUBST([PACKAGE], [$1])dnl
+ AC_SUBST([VERSION], [$2])],
+[_AM_SET_OPTIONS([$1])dnl
+dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT.
+m4_if(m4_ifdef([AC_PACKAGE_NAME], 1)m4_ifdef([AC_PACKAGE_VERSION], 1), 11,,
+ [m4_fatal([AC_INIT should be called with package and version arguments])])dnl
+ AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl
+ AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl
+
+_AM_IF_OPTION([no-define],,
+[AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
+ AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl
+
+# Some tools Automake needs.
+AC_REQUIRE([AM_SANITY_CHECK])dnl
+AC_REQUIRE([AC_ARG_PROGRAM])dnl
+AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version})
+AM_MISSING_PROG(AUTOCONF, autoconf)
+AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version})
+AM_MISSING_PROG(AUTOHEADER, autoheader)
+AM_MISSING_PROG(MAKEINFO, makeinfo)
+AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
+AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl
+AC_REQUIRE([AM_PROG_MKDIR_P])dnl
+# We need awk for the "check" target. The system "awk" is bad on
+# some platforms.
+AC_REQUIRE([AC_PROG_AWK])dnl
+AC_REQUIRE([AC_PROG_MAKE_SET])dnl
+AC_REQUIRE([AM_SET_LEADING_DOT])dnl
+_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])],
+ [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])],
+ [_AM_PROG_TAR([v7])])])
+_AM_IF_OPTION([no-dependencies],,
+[AC_PROVIDE_IFELSE([AC_PROG_CC],
+ [_AM_DEPENDENCIES(CC)],
+ [define([AC_PROG_CC],
+ defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl
+AC_PROVIDE_IFELSE([AC_PROG_CXX],
+ [_AM_DEPENDENCIES(CXX)],
+ [define([AC_PROG_CXX],
+ defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl
+AC_PROVIDE_IFELSE([AC_PROG_OBJC],
+ [_AM_DEPENDENCIES(OBJC)],
+ [define([AC_PROG_OBJC],
+ defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl
+])
+_AM_IF_OPTION([silent-rules], [AC_REQUIRE([AM_SILENT_RULES])])dnl
+dnl The `parallel-tests' driver may need to know about EXEEXT, so add the
+dnl `am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This macro
+dnl is hooked onto _AC_COMPILER_EXEEXT early, see below.
+AC_CONFIG_COMMANDS_PRE(dnl
+[m4_provide_if([_AM_COMPILER_EXEEXT],
+ [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl
+])
+
+dnl Hook into `_AC_COMPILER_EXEEXT' early to learn its expansion. Do not
+dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further
+dnl mangled by Autoconf and run in a shell conditional statement.
+m4_define([_AC_COMPILER_EXEEXT],
+m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])])
+
+
+# When config.status generates a header, we must update the stamp-h file.
+# This file resides in the same directory as the config header
+# that is generated. The stamp files are numbered to have different names.
+
+# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the
+# loop where config.status creates the headers, so we can generate
+# our stamp files there.
+AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK],
+[# Compute $1's index in $config_headers.
+_am_arg=$1
+_am_stamp_count=1
+for _am_header in $config_headers :; do
+ case $_am_header in
+ $_am_arg | $_am_arg:* )
+ break ;;
+ * )
+ _am_stamp_count=`expr $_am_stamp_count + 1` ;;
+ esac
+done
+echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])
+
+# Copyright (C) 2001, 2003, 2005, 2008 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_PROG_INSTALL_SH
+# ------------------
+# Define $install_sh.
+AC_DEFUN([AM_PROG_INSTALL_SH],
+[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
+if test x"${install_sh}" != xset; then
+ case $am_aux_dir in
+ *\ * | *\ *)
+ install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;;
+ *)
+ install_sh="\${SHELL} $am_aux_dir/install-sh"
+ esac
+fi
+AC_SUBST(install_sh)])
+
+# Copyright (C) 2003, 2005 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 2
+
+# Check whether the underlying file-system supports filenames
+# with a leading dot. For instance MS-DOS doesn't.
+AC_DEFUN([AM_SET_LEADING_DOT],
+[rm -rf .tst 2>/dev/null
+mkdir .tst 2>/dev/null
+if test -d .tst; then
+ am__leading_dot=.
+else
+ am__leading_dot=_
+fi
+rmdir .tst 2>/dev/null
+AC_SUBST([am__leading_dot])])
+
+# Check to see how 'make' treats includes. -*- Autoconf -*-
+
+# Copyright (C) 2001, 2002, 2003, 2005, 2009 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 4
+
+# AM_MAKE_INCLUDE()
+# -----------------
+# Check to see how make treats includes.
+AC_DEFUN([AM_MAKE_INCLUDE],
+[am_make=${MAKE-make}
+cat > confinc << 'END'
+am__doit:
+ @echo this is the am__doit target
+.PHONY: am__doit
+END
+# If we don't find an include directive, just comment out the code.
+AC_MSG_CHECKING([for style of include used by $am_make])
+am__include="#"
+am__quote=
+_am_result=none
+# First try GNU make style include.
+echo "include confinc" > confmf
+# Ignore all kinds of additional output from `make'.
+case `$am_make -s -f confmf 2> /dev/null` in #(
+*the\ am__doit\ target*)
+ am__include=include
+ am__quote=
+ _am_result=GNU
+ ;;
+esac
+# Now try BSD make style include.
+if test "$am__include" = "#"; then
+ echo '.include "confinc"' > confmf
+ case `$am_make -s -f confmf 2> /dev/null` in #(
+ *the\ am__doit\ target*)
+ am__include=.include
+ am__quote="\""
+ _am_result=BSD
+ ;;
+ esac
+fi
+AC_SUBST([am__include])
+AC_SUBST([am__quote])
+AC_MSG_RESULT([$_am_result])
+rm -f confinc confmf
+])
+
+# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*-
+
+# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005, 2008
+# Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 6
+
+# AM_MISSING_PROG(NAME, PROGRAM)
+# ------------------------------
+AC_DEFUN([AM_MISSING_PROG],
+[AC_REQUIRE([AM_MISSING_HAS_RUN])
+$1=${$1-"${am_missing_run}$2"}
+AC_SUBST($1)])
+
+
+# AM_MISSING_HAS_RUN
+# ------------------
+# Define MISSING if not defined so far and test if it supports --run.
+# If it does, set am_missing_run to use it, otherwise, to nothing.
+AC_DEFUN([AM_MISSING_HAS_RUN],
+[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
+AC_REQUIRE_AUX_FILE([missing])dnl
+if test x"${MISSING+set}" != xset; then
+ case $am_aux_dir in
+ *\ * | *\ *)
+ MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;;
+ *)
+ MISSING="\${SHELL} $am_aux_dir/missing" ;;
+ esac
+fi
+# Use eval to expand $SHELL
+if eval "$MISSING --run true"; then
+ am_missing_run="$MISSING --run "
+else
+ am_missing_run=
+ AC_MSG_WARN([`missing' script is too old or missing])
+fi
+])
+
+# Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_PROG_MKDIR_P
+# ---------------
+# Check for `mkdir -p'.
+AC_DEFUN([AM_PROG_MKDIR_P],
+[AC_PREREQ([2.60])dnl
+AC_REQUIRE([AC_PROG_MKDIR_P])dnl
+dnl Automake 1.8 to 1.9.6 used to define mkdir_p. We now use MKDIR_P,
+dnl while keeping a definition of mkdir_p for backward compatibility.
+dnl @MKDIR_P@ is magic: AC_OUTPUT adjusts its value for each Makefile.
+dnl However we cannot define mkdir_p as $(MKDIR_P) for the sake of
+dnl Makefile.ins that do not define MKDIR_P, so we do our own
+dnl adjustment using top_builddir (which is defined more often than
+dnl MKDIR_P).
+AC_SUBST([mkdir_p], ["$MKDIR_P"])dnl
+case $mkdir_p in
+ [[\\/$]]* | ?:[[\\/]]*) ;;
+ */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;;
+esac
+])
+
+# Helper functions for option handling. -*- Autoconf -*-
+
+# Copyright (C) 2001, 2002, 2003, 2005, 2008 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 4
+
+# _AM_MANGLE_OPTION(NAME)
+# -----------------------
+AC_DEFUN([_AM_MANGLE_OPTION],
+[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])])
+
+# _AM_SET_OPTION(NAME)
+# ------------------------------
+# Set option NAME. Presently that only means defining a flag for this option.
+AC_DEFUN([_AM_SET_OPTION],
+[m4_define(_AM_MANGLE_OPTION([$1]), 1)])
+
+# _AM_SET_OPTIONS(OPTIONS)
+# ----------------------------------
+# OPTIONS is a space-separated list of Automake options.
+AC_DEFUN([_AM_SET_OPTIONS],
+[m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])])
+
+# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET])
+# -------------------------------------------
+# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise.
+AC_DEFUN([_AM_IF_OPTION],
+[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
+
+# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008, 2009
+# Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_PATH_PYTHON([MINIMUM-VERSION], [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
+# ---------------------------------------------------------------------------
+# Adds support for distributing Python modules and packages. To
+# install modules, copy them to $(pythondir), using the python_PYTHON
+# automake variable. To install a package with the same name as the
+# automake package, install to $(pkgpythondir), or use the
+# pkgpython_PYTHON automake variable.
+#
+# The variables $(pyexecdir) and $(pkgpyexecdir) are provided as
+# locations to install python extension modules (shared libraries).
+# Another macro is required to find the appropriate flags to compile
+# extension modules.
+#
+# If your package is configured with a different prefix to python,
+# users will have to add the install directory to the PYTHONPATH
+# environment variable, or create a .pth file (see the python
+# documentation for details).
+#
+# If the MINIMUM-VERSION argument is passed, AM_PATH_PYTHON will
+# cause an error if the version of python installed on the system
+# doesn't meet the requirement. MINIMUM-VERSION should consist of
+# numbers and dots only.
+AC_DEFUN([AM_PATH_PYTHON],
+ [
+ dnl Find a Python interpreter. Python versions prior to 2.0 are not
+ dnl supported. (2.0 was released on October 16, 2000).
+ m4_define_default([_AM_PYTHON_INTERPRETER_LIST],
+ [python python2 python3 python3.0 python2.5 python2.4 python2.3 python2.2 dnl
+python2.1 python2.0])
+
+ m4_if([$1],[],[
+ dnl No version check is needed.
+ # Find any Python interpreter.
+ if test -z "$PYTHON"; then
+ AC_PATH_PROGS([PYTHON], _AM_PYTHON_INTERPRETER_LIST, :)
+ fi
+ am_display_PYTHON=python
+ ], [
+ dnl A version check is needed.
+ if test -n "$PYTHON"; then
+ # If the user set $PYTHON, use it and don't search something else.
+ AC_MSG_CHECKING([whether $PYTHON version >= $1])
+ AM_PYTHON_CHECK_VERSION([$PYTHON], [$1],
+ [AC_MSG_RESULT(yes)],
+ [AC_MSG_ERROR(too old)])
+ am_display_PYTHON=$PYTHON
+ else
+ # Otherwise, try each interpreter until we find one that satisfies
+ # VERSION.
+ AC_CACHE_CHECK([for a Python interpreter with version >= $1],
+ [am_cv_pathless_PYTHON],[
+ for am_cv_pathless_PYTHON in _AM_PYTHON_INTERPRETER_LIST none; do
+ test "$am_cv_pathless_PYTHON" = none && break
+ AM_PYTHON_CHECK_VERSION([$am_cv_pathless_PYTHON], [$1], [break])
+ done])
+ # Set $PYTHON to the absolute path of $am_cv_pathless_PYTHON.
+ if test "$am_cv_pathless_PYTHON" = none; then
+ PYTHON=:
+ else
+ AC_PATH_PROG([PYTHON], [$am_cv_pathless_PYTHON])
+ fi
+ am_display_PYTHON=$am_cv_pathless_PYTHON
+ fi
+ ])
+
+ if test "$PYTHON" = :; then
+ dnl Run any user-specified action, or abort.
+ m4_default([$3], [AC_MSG_ERROR([no suitable Python interpreter found])])
+ else
+
+ dnl Query Python for its version number. Getting [:3] seems to be
+ dnl the best way to do this; it's what "site.py" does in the standard
+ dnl library.
+
+ AC_CACHE_CHECK([for $am_display_PYTHON version], [am_cv_python_version],
+ [am_cv_python_version=`$PYTHON -c "import sys; sys.stdout.write(sys.version[[:3]])"`])
+ AC_SUBST([PYTHON_VERSION], [$am_cv_python_version])
+
+ dnl Use the values of $prefix and $exec_prefix for the corresponding
+ dnl values of PYTHON_PREFIX and PYTHON_EXEC_PREFIX. These are made
+ dnl distinct variables so they can be overridden if need be. However,
+ dnl general consensus is that you shouldn't need this ability.
+
+ AC_SUBST([PYTHON_PREFIX], ['${prefix}'])
+ AC_SUBST([PYTHON_EXEC_PREFIX], ['${exec_prefix}'])
+
+ dnl At times (like when building shared libraries) you may want
+ dnl to know which OS platform Python thinks this is.
+
+ AC_CACHE_CHECK([for $am_display_PYTHON platform], [am_cv_python_platform],
+ [am_cv_python_platform=`$PYTHON -c "import sys; sys.stdout.write(sys.platform)"`])
+ AC_SUBST([PYTHON_PLATFORM], [$am_cv_python_platform])
+
+
+ dnl Set up 4 directories:
+
+ dnl pythondir -- where to install python scripts. This is the
+ dnl site-packages directory, not the python standard library
+ dnl directory like in previous automake betas. This behavior
+ dnl is more consistent with lispdir.m4 for example.
+ dnl Query distutils for this directory. distutils does not exist in
+ dnl Python 1.5, so we fall back to the hardcoded directory if it
+ dnl doesn't work.
+ AC_CACHE_CHECK([for $am_display_PYTHON script directory],
+ [am_cv_python_pythondir],
+ [if test "x$prefix" = xNONE
+ then
+ am_py_prefix=$ac_default_prefix
+ else
+ am_py_prefix=$prefix
+ fi
+ am_cv_python_pythondir=`$PYTHON -c "import sys; from distutils import sysconfig; sys.stdout.write(sysconfig.get_python_lib(0,0,prefix='$am_py_prefix'))" 2>/dev/null ||
+ echo "$PYTHON_PREFIX/lib/python$PYTHON_VERSION/site-packages"`
+ case $am_cv_python_pythondir in
+ $am_py_prefix*)
+ am__strip_prefix=`echo "$am_py_prefix" | sed 's|.|.|g'`
+ am_cv_python_pythondir=`echo "$am_cv_python_pythondir" | sed "s,^$am__strip_prefix,$PYTHON_PREFIX,"`
+ ;;
+ *)
+ case $am_py_prefix in
+ /usr|/System*) ;;
+ *)
+ am_cv_python_pythondir=$PYTHON_PREFIX/lib/python$PYTHON_VERSION/site-packages
+ ;;
+ esac
+ ;;
+ esac
+ ])
+ AC_SUBST([pythondir], [$am_cv_python_pythondir])
+
+ dnl pkgpythondir -- $PACKAGE directory under pythondir. Was
+ dnl PYTHON_SITE_PACKAGE in previous betas, but this naming is
+ dnl more consistent with the rest of automake.
+
+ AC_SUBST([pkgpythondir], [\${pythondir}/$PACKAGE])
+
+ dnl pyexecdir -- directory for installing python extension modules
+ dnl (shared libraries)
+ dnl Query distutils for this directory. distutils does not exist in
+ dnl Python 1.5, so we fall back to the hardcoded directory if it
+ dnl doesn't work.
+ AC_CACHE_CHECK([for $am_display_PYTHON extension module directory],
+ [am_cv_python_pyexecdir],
+ [if test "x$exec_prefix" = xNONE
+ then
+ am_py_exec_prefix=$am_py_prefix
+ else
+ am_py_exec_prefix=$exec_prefix
+ fi
+ am_cv_python_pyexecdir=`$PYTHON -c "import sys; from distutils import sysconfig; sys.stdout.write(sysconfig.get_python_lib(1,0,prefix='$am_py_exec_prefix'))" 2>/dev/null ||
+ echo "$PYTHON_EXEC_PREFIX/lib/python$PYTHON_VERSION/site-packages"`
+ case $am_cv_python_pyexecdir in
+ $am_py_exec_prefix*)
+ am__strip_prefix=`echo "$am_py_exec_prefix" | sed 's|.|.|g'`
+ am_cv_python_pyexecdir=`echo "$am_cv_python_pyexecdir" | sed "s,^$am__strip_prefix,$PYTHON_EXEC_PREFIX,"`
+ ;;
+ *)
+ case $am_py_exec_prefix in
+ /usr|/System*) ;;
+ *)
+ am_cv_python_pyexecdir=$PYTHON_EXEC_PREFIX/lib/python$PYTHON_VERSION/site-packages
+ ;;
+ esac
+ ;;
+ esac
+ ])
+ AC_SUBST([pyexecdir], [$am_cv_python_pyexecdir])
+
+ dnl pkgpyexecdir -- $(pyexecdir)/$(PACKAGE)
+
+ AC_SUBST([pkgpyexecdir], [\${pyexecdir}/$PACKAGE])
+
+ dnl Run any user-specified action.
+ $2
+ fi
+
+])
+
+
+# AM_PYTHON_CHECK_VERSION(PROG, VERSION, [ACTION-IF-TRUE], [ACTION-IF-FALSE])
+# ---------------------------------------------------------------------------
+# Run ACTION-IF-TRUE if the Python interpreter PROG has version >= VERSION.
+# Run ACTION-IF-FALSE otherwise.
+# This test uses sys.hexversion instead of the string equivalent (first
+# word of sys.version), in order to cope with versions such as 2.2c1.
+# This supports Python 2.0 or higher. (2.0 was released on October 16, 2000).
+AC_DEFUN([AM_PYTHON_CHECK_VERSION],
+ [prog="import sys
+# split strings by '.' and convert to numeric. Append some zeros
+# because we need at least 4 digits for the hex conversion.
+# map returns an iterator in Python 3.0 and a list in 2.x
+minver = list(map(int, '$2'.split('.'))) + [[0, 0, 0]]
+minverhex = 0
+# xrange is not present in Python 3.0 and range returns an iterator
+for i in list(range(0, 4)): minverhex = (minverhex << 8) + minver[[i]]
+sys.exit(sys.hexversion < minverhex)"
+ AS_IF([AM_RUN_LOG([$1 -c "$prog"])], [$3], [$4])])
+
+# Check to make sure that the build environment is sane. -*- Autoconf -*-
+
+# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005, 2008
+# Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 5
+
+# AM_SANITY_CHECK
+# ---------------
+AC_DEFUN([AM_SANITY_CHECK],
+[AC_MSG_CHECKING([whether build environment is sane])
+# Just in case
+sleep 1
+echo timestamp > conftest.file
+# Reject unsafe characters in $srcdir or the absolute working directory
+# name. Accept space and tab only in the latter.
+am_lf='
+'
+case `pwd` in
+ *[[\\\"\#\$\&\'\`$am_lf]]*)
+ AC_MSG_ERROR([unsafe absolute working directory name]);;
+esac
+case $srcdir in
+ *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*)
+ AC_MSG_ERROR([unsafe srcdir value: `$srcdir']);;
+esac
+
+# Do `set' in a subshell so we don't clobber the current shell's
+# arguments. Must try -L first in case configure is actually a
+# symlink; some systems play weird games with the mod time of symlinks
+# (eg FreeBSD returns the mod time of the symlink's containing
+# directory).
+if (
+ set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
+ if test "$[*]" = "X"; then
+ # -L didn't work.
+ set X `ls -t "$srcdir/configure" conftest.file`
+ fi
+ rm -f conftest.file
+ if test "$[*]" != "X $srcdir/configure conftest.file" \
+ && test "$[*]" != "X conftest.file $srcdir/configure"; then
+
+ # If neither matched, then we have a broken ls. This can happen
+ # if, for instance, CONFIG_SHELL is bash and it inherits a
+ # broken ls alias from the environment. This has actually
+ # happened. Such a system could not be considered "sane".
+ AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken
+alias in your environment])
+ fi
+
+ test "$[2]" = conftest.file
+ )
+then
+ # Ok.
+ :
+else
+ AC_MSG_ERROR([newly created file is older than distributed files!
+Check your system clock])
+fi
+AC_MSG_RESULT(yes)])
+
+# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_PROG_INSTALL_STRIP
+# ---------------------
+# One issue with vendor `install' (even GNU) is that you can't
+# specify the program used to strip binaries. This is especially
+# annoying in cross-compiling environments, where the build's strip
+# is unlikely to handle the host's binaries.
+# Fortunately install-sh will honor a STRIPPROG variable, so we
+# always use install-sh in `make install-strip', and initialize
+# STRIPPROG with the value of the STRIP variable (set by the user).
+AC_DEFUN([AM_PROG_INSTALL_STRIP],
+[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
+# Installed binaries are usually stripped using `strip' when the user
+# run `make install-strip'. However `strip' might not be the right
+# tool to use in cross-compilation environments, therefore Automake
+# will honor the `STRIP' environment variable to overrule this program.
+dnl Don't test for $cross_compiling = yes, because it might be `maybe'.
+if test "$cross_compiling" != no; then
+ AC_CHECK_TOOL([STRIP], [strip], :)
+fi
+INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
+AC_SUBST([INSTALL_STRIP_PROGRAM])])
+
+# Copyright (C) 2006, 2008 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 2
+
+# _AM_SUBST_NOTMAKE(VARIABLE)
+# ---------------------------
+# Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in.
+# This macro is traced by Automake.
+AC_DEFUN([_AM_SUBST_NOTMAKE])
+
+# AM_SUBST_NOTMAKE(VARIABLE)
+# ---------------------------
+# Public sister of _AM_SUBST_NOTMAKE.
+AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])
+
+# Check how to create a tarball. -*- Autoconf -*-
+
+# Copyright (C) 2004, 2005 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 2
+
+# _AM_PROG_TAR(FORMAT)
+# --------------------
+# Check how to create a tarball in format FORMAT.
+# FORMAT should be one of `v7', `ustar', or `pax'.
+#
+# Substitute a variable $(am__tar) that is a command
+# writing to stdout a FORMAT-tarball containing the directory
+# $tardir.
+# tardir=directory && $(am__tar) > result.tar
+#
+# Substitute a variable $(am__untar) that extract such
+# a tarball read from stdin.
+# $(am__untar) < result.tar
+AC_DEFUN([_AM_PROG_TAR],
+[# Always define AMTAR for backward compatibility.
+AM_MISSING_PROG([AMTAR], [tar])
+m4_if([$1], [v7],
+ [am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'],
+ [m4_case([$1], [ustar],, [pax],,
+ [m4_fatal([Unknown tar format])])
+AC_MSG_CHECKING([how to create a $1 tar archive])
+# Loop over all known methods to create a tar archive until one works.
+_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none'
+_am_tools=${am_cv_prog_tar_$1-$_am_tools}
+# Do not fold the above two line into one, because Tru64 sh and
+# Solaris sh will not grok spaces in the rhs of `-'.
+for _am_tool in $_am_tools
+do
+ case $_am_tool in
+ gnutar)
+ for _am_tar in tar gnutar gtar;
+ do
+ AM_RUN_LOG([$_am_tar --version]) && break
+ done
+ am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"'
+ am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"'
+ am__untar="$_am_tar -xf -"
+ ;;
+ plaintar)
+ # Must skip GNU tar: if it does not support --format= it doesn't create
+ # ustar tarball either.
+ (tar --version) >/dev/null 2>&1 && continue
+ am__tar='tar chf - "$$tardir"'
+ am__tar_='tar chf - "$tardir"'
+ am__untar='tar xf -'
+ ;;
+ pax)
+ am__tar='pax -L -x $1 -w "$$tardir"'
+ am__tar_='pax -L -x $1 -w "$tardir"'
+ am__untar='pax -r'
+ ;;
+ cpio)
+ am__tar='find "$$tardir" -print | cpio -o -H $1 -L'
+ am__tar_='find "$tardir" -print | cpio -o -H $1 -L'
+ am__untar='cpio -i -H $1 -d'
+ ;;
+ none)
+ am__tar=false
+ am__tar_=false
+ am__untar=false
+ ;;
+ esac
+
+ # If the value was cached, stop now. We just wanted to have am__tar
+ # and am__untar set.
+ test -n "${am_cv_prog_tar_$1}" && break
+
+ # tar/untar a dummy directory, and stop if the command works
+ rm -rf conftest.dir
+ mkdir conftest.dir
+ echo GrepMe > conftest.dir/file
+ AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar])
+ rm -rf conftest.dir
+ if test -s conftest.tar; then
+ AM_RUN_LOG([$am__untar <conftest.tar])
+ grep GrepMe conftest.dir/file >/dev/null 2>&1 && break
+ fi
+done
+rm -rf conftest.dir
+
+AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool])
+AC_MSG_RESULT([$am_cv_prog_tar_$1])])
+AC_SUBST([am__tar])
+AC_SUBST([am__untar])
+]) # _AM_PROG_TAR
+
+m4_include([m4/aclocal-include.m4])
+m4_include([m4/alsa.m4])
+m4_include([m4/docbook.m4])
+m4_include([m4/libtool.m4])
+m4_include([m4/ltoptions.m4])
+m4_include([m4/ltsugar.m4])
+m4_include([m4/ltversion.m4])
+m4_include([m4/lt~obsolete.m4])
diff --git a/muse2/al/Makefile.am b/muse2/al/Makefile.am
new file mode 100644
index 00000000..f2464217
--- /dev/null
+++ b/muse2/al/Makefile.am
@@ -0,0 +1,18 @@
+include $(top_srcdir)/common.am
+
+if PCH
+AM_CXXFLAGS += -include $(top_srcdir)/all.h
+endif
+
+noinst_LIBRARIES = libal.a
+
+dist_libal_a_SOURCES = \
+ al.cpp al.h \
+ dsp.cpp dsp.h
+
+if USE_SSE
+dist_libal_a_SOURCES += dspSSE.cpp dspXMM.cpp
+dspSSE.o: dspSSE.cpp
+ $(CXXCOMPILE) -x assembler -c dspSSE.cpp
+endif
+
diff --git a/muse2/al/Makefile.in b/muse2/al/Makefile.in
new file mode 100644
index 00000000..7f747537
--- /dev/null
+++ b/muse2/al/Makefile.in
@@ -0,0 +1,595 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
+ $(top_srcdir)/common.am
+@PCH_TRUE@am__append_1 = -include $(top_srcdir)/all.h
+@USE_SSE_TRUE@am__append_2 = dspSSE.cpp dspXMM.cpp
+subdir = al
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal-include.m4 \
+ $(top_srcdir)/m4/alsa.m4 $(top_srcdir)/m4/docbook.m4 \
+ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
+ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
+ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+LIBRARIES = $(noinst_LIBRARIES)
+ARFLAGS = cru
+libal_a_AR = $(AR) $(ARFLAGS)
+libal_a_LIBADD =
+am__dist_libal_a_SOURCES_DIST = al.cpp al.h dsp.cpp dsp.h dspSSE.cpp \
+ dspXMM.cpp
+@USE_SSE_TRUE@am__objects_1 = dspSSE.$(OBJEXT) dspXMM.$(OBJEXT)
+dist_libal_a_OBJECTS = al.$(OBJEXT) dsp.$(OBJEXT) $(am__objects_1)
+libal_a_OBJECTS = $(dist_libal_a_OBJECTS)
+DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
+depcomp = $(SHELL) $(top_srcdir)/depcomp
+am__depfiles_maybe = depfiles
+am__mv = mv -f
+CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
+LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
+CXXLD = $(CXX)
+CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \
+ $(LDFLAGS) -o $@
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
+ $(LDFLAGS) -o $@
+SOURCES = $(dist_libal_a_SOURCES)
+DIST_SOURCES = $(am__dist_libal_a_SOURCES_DIST)
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ALSA_CFLAGS = @ALSA_CFLAGS@
+ALSA_LIBS = @ALSA_LIBS@
+AMTAR = @AMTAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DOCBOOKSTYLE = @DOCBOOKSTYLE@
+DOCBOOKTARGETS = @DOCBOOKTARGETS@
+DOT = @DOT@
+DOTPATH = @DOTPATH@
+DOXYGEN = @DOXYGEN@
+DOXYGEN_TREEVIEW = @DOXYGEN_TREEVIEW@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+FLUIDSYNTHDIRS = @FLUIDSYNTHDIRS@
+FST_CFLAGS = @FST_CFLAGS@
+FST_LIBS = @FST_LIBS@
+Fluidsynth_CFLAGS = @Fluidsynth_CFLAGS@
+Fluidsynth_LIBS = @Fluidsynth_LIBS@
+GIVERTCAP = @GIVERTCAP@
+GREP = @GREP@
+HAVEDOT = @HAVEDOT@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JACK_CFLAGS = @JACK_CFLAGS@
+JACK_LIBS = @JACK_LIBS@
+JADE = @JADE@
+LASH_CFLAGS = @LASH_CFLAGS@
+LASH_LIBS = @LASH_LIBS@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LO_CFLAGS = @LO_CFLAGS@
+LO_LIBS = @LO_LIBS@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+MUSECXXFLAGS = @MUSECXXFLAGS@
+NM = @NM@
+NMEDIT = @NMEDIT@
+NSGMLS = @NSGMLS@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PCH = @PCH@
+PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+PYTHON = @PYTHON@
+PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
+PYTHON_INCLUDES = @PYTHON_INCLUDES@
+PYTHON_LIB = @PYTHON_LIB@
+PYTHON_PLATFORM = @PYTHON_PLATFORM@
+PYTHON_PREFIX = @PYTHON_PREFIX@
+PYTHON_VERSION = @PYTHON_VERSION@
+QTDIR_BIN = @QTDIR_BIN@
+QTDIR_INC = @QTDIR_INC@
+QT_LIBS = @QT_LIBS@
+RANLIB = @RANLIB@
+SAMPLERATE_CFLAGS = @SAMPLERATE_CFLAGS@
+SAMPLERATE_LIBS = @SAMPLERATE_LIBS@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SNDFILE_CFLAGS = @SNDFILE_CFLAGS@
+SNDFILE_LIBS = @SNDFILE_LIBS@
+STRIP = @STRIP@
+SUIDBUILD = @SUIDBUILD@
+SUIDINSTALL = @SUIDINSTALL@
+USE_SSE = @USE_SSE@
+UUID_CFLAGS = @UUID_CFLAGS@
+UUID_LIBS = @UUID_LIBS@
+VERSION = @VERSION@
+XMKMF = @XMKMF@
+X_CFLAGS = @X_CFLAGS@
+X_EXTRA_LIBS = @X_EXTRA_LIBS@
+X_LIBS = @X_LIBS@
+X_PRE_LIBS = @X_PRE_LIBS@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+have_docbook = @have_docbook@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+lt_ECHO = @lt_ECHO@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+pkgpyexecdir = @pkgpyexecdir@
+pkgpythondir = @pkgpythondir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+pyexecdir = @pyexecdir@
+pythondir = @pythondir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+synth_fluid = @synth_fluid@
+synth_fluidsynth = @synth_fluidsynth@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+AM_CXXFLAGS = $(MUSECXXFLAGS) -I.. -I$(top_srcdir)/synti \
+ -I$(top_srcdir)/muse/widgets -DQT_SHARED -DQT_THREAD_SUPPORT \
+ -DQT_PLUGIN $(QTDIR_INC) -DQT3_SUPPORT $(am__append_1)
+AM_CPPFLAGS =
+MOC = $(QTDIR_BIN)/moc
+#UIC = $(QTDIR_BIN)/uic3
+UIC = /usr/bin/uic3
+UIFILES = $(wildcard *.ui)
+MOCFILES = $(shell for h in $(filter %.h,$(SOURCES)); do \
+ if grep -q Q_OBJECT $$h; then \
+ echo $$h | sed "s/\(.*\)\.h/moc_\1.cpp/"; \
+ fi; \
+ done)
+
+BUILT_SOURCES = $(MOCFILES) $(UIFILES:%.ui=%.h)
+MOSTLYCLEANFILES = $(MOCFILES) $(UIFILES:%.ui=%.h)
+SUFFIXES = .ui .h.gch
+noinst_LIBRARIES = libal.a
+dist_libal_a_SOURCES = al.cpp al.h dsp.cpp dsp.h $(am__append_2)
+all: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) all-am
+
+.SUFFIXES:
+.SUFFIXES: .ui .h.gch .cpp .lo .o .obj
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/common.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu al/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu al/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+clean-noinstLIBRARIES:
+ -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
+libal.a: $(libal_a_OBJECTS) $(libal_a_DEPENDENCIES)
+ -rm -f libal.a
+ $(libal_a_AR) libal.a $(libal_a_OBJECTS) $(libal_a_LIBADD)
+ $(RANLIB) libal.a
+
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT)
+
+distclean-compile:
+ -rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/al.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dsp.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dspSSE.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dspXMM.Po@am__quote@
+
+.cpp.o:
+@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $<
+
+.cpp.obj:
+@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+
+.cpp.lo:
+@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $<
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ mkid -fID $$unique
+tags: TAGS
+
+TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ set x; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: CTAGS
+CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) check-am
+all-am: Makefile $(LIBRARIES)
+installdirs:
+install: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+ -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES)
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+ -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
+clean: clean-am
+
+clean-am: clean-generic clean-libtool clean-noinstLIBRARIES \
+ mostlyclean-am
+
+distclean: distclean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+ distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+ mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: all check install install-am install-strip
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
+ clean-libtool clean-noinstLIBRARIES ctags distclean \
+ distclean-compile distclean-generic distclean-libtool \
+ distclean-tags distdir dvi dvi-am html html-am info info-am \
+ install install-am install-data install-data-am install-dvi \
+ install-dvi-am install-exec install-exec-am install-html \
+ install-html-am install-info install-info-am install-man \
+ install-pdf install-pdf-am install-ps install-ps-am \
+ install-strip installcheck installcheck-am installdirs \
+ maintainer-clean maintainer-clean-generic mostlyclean \
+ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
+ pdf pdf-am ps ps-am tags uninstall uninstall-am
+
+
+de:
+ @for base in $(MOCFILES); do echo -e "\t$${base}.cpp $${base}.h \\"; done
+
+nde:
+ @for base in $(MOCFILES); do echo -e "\tmoc_$${base}.cpp \\"; done
+
+.ui.o: %.h
+ $(UIC) -L $(top_srcdir)/muse/widgets -o $*.cpp -impl $*.h $*.ui
+ $(MOC) $*.h >> $*.cpp
+ $(CXXCOMPILE) -c $*.cpp -o $*.o
+ $(RM) $*.cpp moc_$*.cpp moc_$*.o
+
+.ui.lo: %.h
+ $(UIC) -L $(top_srcdir)/muse/widgets -o $*.cpp -impl $*.h $*.ui
+ $(MOC) $*.h >> $*.cpp
+ $(LTCXXCOMPILE) -c $*.cpp -o $*.lo
+ $(RM) $*.cpp moc_$*.cpp moc_$*.lo moc_$*.o
+
+moc_%.cpp: %.h
+ $(MOC) $< -o $@
+
+%.h: %.ui
+ $(UIC) -o $@ $<
+# $(UIC) -L $(top_srcdir)/muse/widgets -o $@ $<
+@USE_SSE_TRUE@dspSSE.o: dspSSE.cpp
+@USE_SSE_TRUE@ $(CXXCOMPILE) -x assembler -c dspSSE.cpp
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/muse2/al/al.cpp b/muse2/al/al.cpp
new file mode 100644
index 00000000..dddb6805
--- /dev/null
+++ b/muse2/al/al.cpp
@@ -0,0 +1,29 @@
+//=============================================================================
+// AL
+// Audio Utility Library
+// $Id: al.cpp,v 1.1.2.2 2009/12/06 01:39:33 terminator356 Exp $
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the 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/muse2/al/al.h b/muse2/al/al.h
new file mode 100644
index 00000000..2f1a02d9
--- /dev/null
+++ b/muse2/al/al.h
@@ -0,0 +1,34 @@
+//=============================================================================
+// AL
+// Audio Utility Library
+// $Id: al.h,v 1.1.2.2 2009/12/06 01:39:33 terminator356 Exp $
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the 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/muse2/al/dsp.cpp b/muse2/al/dsp.cpp
new file mode 100644
index 00000000..fa9fa18b
--- /dev/null
+++ b/muse2/al/dsp.cpp
@@ -0,0 +1,182 @@
+//=============================================================================
+// AL
+// Audio Utility Library
+// $Id: dsp.cpp,v 1.1.2.1 2009/12/06 01:39:33 terminator356 Exp $
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the 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 <stdio.h>
+#include <stdint.h>
+#include "dsp.h"
+#include "config.h"
+#include "../globals.h"
+
+namespace AL {
+
+Dsp* dsp = 0;
+
+#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 0 // Disabled for now.
+#if defined(__i386__) || defined(__x86_64__)
+ if(debugMsg)
+ printf("Muse: __i386__ or __x86_64__ defined. Using optimized float buffer copying (asm movsl).\n");
+#else
+ if(debugMsg)
+ printf("Muse: __i386__ or __x86_64__ not defined. Using non-optimized memcpy for float buffer copying.\n");
+#endif
+#endif
+
+#if defined(__i386__) && defined(USE_SSE)
+ unsigned long useSSE = 0;
+ if(debugMsg)
+ printf("initDsp: __i386__ and USE_SSE defined\n");
+
+// FIXME: 64? Shouldn't these routines work on 32 bit?
+#ifdef __x86_64__
+ useSSE = 1 << 25; // we know the platform has SSE
+ if(debugMsg)
+ printf("initDsp: __x86_64__ defined\n");
+#else
+ if(debugMsg)
+ printf("initDsp: getting cpuid via asm\n");
+ asm (
+ "mov $1, %%eax\n"
+ "pushl %%ebx\n"
+ "cpuid\n"
+ "movl %%edx, %0\n"
+ "popl %%ebx\n"
+ : "=r" (useSSE)
+ :
+ : "%eax", "%ecx", "%edx", "memory");
+#endif
+ if(debugMsg)
+ printf("initDsp: checking for bit 25 SSE support:%lX\n", useSSE);
+ 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
+ if(debugMsg)
+ printf("Muse: using unoptimized non-SSE dsp routines\n");
+ dsp = new Dsp();
+ }
+
+//---------------------------------------------------------
+// exitDsp
+//---------------------------------------------------------
+
+void exitDsp()
+{
+ if(dsp)
+ delete dsp;
+ dsp = 0;
+}
+
+void Dsp::cpy(float* dst, float* src, unsigned n)
+{
+// FIXME: Changed by T356. Not defined. Where are these???
+//#if defined(ARCH_X86) || defined(ARCH_X86_64)
+///#if defined(__i386__) || defined(__x86_64__)
+#if 0 // Disabled for now.
+ //printf("Dsp: using asm cpy\n");
+ // Changed by T356. Get To and From not declared in scope compile errors.
+ //register unsigned long int dummy;
+ //__asm__ __volatile__ ("rep; movsl" :"=&D"(dst), "=&S"(src), "=&c"(dummy) :"0" (to), "1" (from),"2" (n) : "memory");
+ // FIXME: FIXME: I don't think this is correct but it works so far...
+ // Tried clobbering, get "Can't find a register in class `CREG' while reloading `asm'"
+ __asm__ __volatile__ (
+ "cld\n\t"
+ "rep\n\t"
+ "movsl"
+ :
+ : "S" (src), "D" (dst), "c" (n)
+ : "memory"
+ );
+
+ //: "%ecx", "%esi", "%edi", "memory"
+#else
+ //printf("Dsp: using memcpy\n");
+ memcpy(dst, src, sizeof(float) * n);
+#endif
+}
+
+} // namespace AL
diff --git a/muse2/al/dsp.h b/muse2/al/dsp.h
new file mode 100644
index 00000000..f88a0122
--- /dev/null
+++ b/muse2/al/dsp.h
@@ -0,0 +1,107 @@
+//=============================================================================
+// AL
+// Audio Utility Library
+// $Id: dsp.h,v 1.1.2.1 2009/12/06 01:39:33 terminator356 Exp $
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the 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__
+
+#include <string.h>
+#include <math.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);
+/*
+ {
+// Changed by T356. Not defined. Where are these???
+//#if defined(ARCH_X86) || defined(ARCH_X86_64)
+#if defined(__i386__) || defined(__x86_64__)
+ printf("Dsp: using asm cpy\n");
+ // Changed by T356. Get To and From not declared in scope compile errors.
+ register unsigned long int dummy;
+ //__asm__ __volatile__ ("rep; movsl" :"=&D"(dst), "=&S"(src), "=&c"(dummy) :"0" (to), "1" (from),"2" (n) : "memory");
+ // From http://www.ibiblio.org/gferg/ldp/GCC-Inline-Assembly-HOWTO.html
+ __asm__ __volatile__ ( \
+ "cld\n\t" \
+ "rep\n\t" \
+ "movsl" \
+ : \
+ : "S" (src), "D" (dst), "c" (n) \
+ : "memory"
+ );
+
+ //: "%ecx", "%esi", "%edi", "memory"
+#else
+ printf("Dsp: using memcpy\n");
+ memcpy(dst, src, sizeof(float) * n);
+#endif
+ }
+*/
+
+ };
+
+extern void initDsp();
+extern void exitDsp();
+extern Dsp* dsp;
+
+}
+
+#endif
+
diff --git a/muse2/al/dspSSE.cpp b/muse2/al/dspSSE.cpp
new file mode 100644
index 00000000..a345e308
--- /dev/null
+++ b/muse2/al/dspSSE.cpp
@@ -0,0 +1,531 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: dspSSE.cpp,v 1.1.2.3 2009/12/20 00:04:25 spamatica Exp $
+//
+// (C) Copyright 2007-2009 Werner Schweer (ws@seh.de)
+// file originally from Ardour DAW project by Paul Davis (c) 2005
+// licensed through GPL
+// Original author Sampo Savolainen
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//======================================================================
+
+#; 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/muse2/al/dspXMM.cpp b/muse2/al/dspXMM.cpp
new file mode 100644
index 00000000..99893c3f
--- /dev/null
+++ b/muse2/al/dspXMM.cpp
@@ -0,0 +1,119 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: dspXMM.cpp,v 1.1.2.2 2009/12/20 00:04:25 spamatica Exp $
+//
+// (C) Copyright 2007-2009 Werner Schweer (ws@seh.de)
+// file originally from Ardour DAW project by Paul Davis (c) 2007
+// licensed through GPL
+// Original author Sampo Savolainen
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the 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/muse2/all-pic.h b/muse2/all-pic.h
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/muse2/all-pic.h
diff --git a/muse2/all.h b/muse2/all.h
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/muse2/all.h
diff --git a/muse2/autogen.sh b/muse2/autogen.sh
new file mode 100755
index 00000000..63ec8590
--- /dev/null
+++ b/muse2/autogen.sh
@@ -0,0 +1,147 @@
+#!/bin/sh
+
+AUTOMAKE_REQ=1.7
+AUTOCONF_REQ=2.54
+LIBTOOL_REQ=2.2.10
+PKG_CONFIG_REQ=0.1
+
+lessthan () {
+ ver1="$1"
+ ver2="$2"
+
+ major1=$( echo $ver1 | sed "s/^\([0-9]*\)\..*/\1/");
+ minor1=$( echo $ver1 | sed "s/^[^\.]*\.\([0-9]*\).*/\1/" );
+ major2=$( echo $ver2 | sed "s/^\([0-9]*\)\..*/\1/");
+ minor2=$( echo $ver2 | sed "s/^[^\.]*\.\([0-9]*\).*/\1/" );
+ test "$major1" -lt "$major2" || test "$minor1" -lt "$minor2";
+}
+
+morethan () {
+ ver1="$1"
+ ver2="$2"
+
+ major1=$( echo $ver1 | sed "s/^\([0-9]*\)\..*/\1/");
+ minor1=$( echo $ver1 | sed "s/^[^\.]*\.\([0-9]*\).*/\1/" );
+ major2=$( echo $ver2 | sed "s/^\([0-9]*\)\..*/\1/");
+ minor2=$( echo $ver2 | sed "s/^[^\.]*\.\([0-9]*\).*/\1/" );
+ test "$major2" -lt "$major1" || test "$minor2" -lt "$minor1";
+}
+
+echo -n "automake version: "
+amver=$( automake --version | head -1 | sed "s/.* //" );
+echo -n "$amver"
+
+lessthan $amver $AUTOMAKE_REQ
+if test $? = 0; then
+ echo " (not ok)"
+ echo "
+####################################################################
+######################### WARNING ################################
+####################################################################
+
+ You need automake >= ${AUTOMAKE_REQ}!
+
+
+"
+ sleep 1;
+else
+ echo " (ok)"
+fi
+
+echo -n "autoconf version: "
+acver=$( autoconf --version | head -1 | sed "s/.* //" );
+echo -n "$acver"
+lessthan $acver $AUTOCONF_REQ
+if test $? = 0; then
+ echo " (not ok)"
+ echo "
+####################################################################
+######################### WARNING ################################
+####################################################################
+
+ You need autoconf >= ${AUTOCONF_REQ}!
+
+
+"
+ sleep 1;
+else
+ echo " (ok)"
+fi
+
+if [ ! -f `which libtool` ] ; then
+ echo "No libtool installed"
+ exit 1
+fi
+echo -n "libtool version: "
+ltver=$( libtool --version | cut -d ' ' -f 4 | head -1 );
+echo -n "$ltver"
+#lessthan $ltver $LIBTOOL_REQ
+#if test $? = 0; then
+# echo " (not ok)"
+# echo "
+#####################################################################
+########################## WARNING ################################
+#####################################################################
+#
+# You need libtool < ${LIBTOOL_REQ}!
+#
+#
+#"
+#else
+ echo " (ok)"
+ sleep 1;
+# fi
+
+
+echo -n "pkg-config: "
+pkg_config="$( which pkg-config )"
+if test -z "$pkg_config"; then
+ echo "(not found)"
+ echo "
+####################################################################
+######################### WARNING ################################
+####################################################################
+
+ You need pkg-config!
+
+
+"
+else
+ echo "$pkg_config"
+ echo -n "pkg-config version: "
+ pcver=$( pkg-config --version )
+ echo -n "$pcver"
+ lessthan $pcver $PKG_CONFIG_REQ
+ if test $? = 0; then
+ echo " (not ok)"
+ echo "
+####################################################################
+######################### WARNING ################################
+####################################################################
+
+ You need pkg-config >= ${PKG_CONFIG_REQ}!
+
+
+"
+ else
+ echo " (ok)"
+ sleep 1;
+ fi
+fi
+
+### && libtoolize -f
+
+echo -n "generating build system.."
+libtoolize -f \
+ && echo -n "." && aclocal -I m4 \
+ && echo -n "." && autoheader \
+ && echo -n "." && automake -a --include-deps \
+ && echo -n "." && autoconf && echo "done" \
+ && echo "
+
+ You may now run configure
+
+ Eg: ./configure --enable-maintainer-mode \\
+ --disable-doxy-treeview --enable-optimize
+"
+
diff --git a/muse2/autom4te.cache/output.0 b/muse2/autom4te.cache/output.0
new file mode 100644
index 00000000..cc42d35e
--- /dev/null
+++ b/muse2/autom4te.cache/output.0
@@ -0,0 +1,20607 @@
+@%:@! /bin/sh
+@%:@ Guess values for system-dependent variables and create Makefiles.
+@%:@ Generated by GNU Autoconf 2.65 for MusE 1.1.
+@%:@
+@%:@
+@%:@ Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
+@%:@ 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
+@%:@ Inc.
+@%:@
+@%:@
+@%:@ This configure script is free software; the Free Software Foundation
+@%:@ gives unlimited permission to copy, distribute and modify it.
+## -------------------- ##
+## M4sh Initialization. ##
+## -------------------- ##
+
+# Be more Bourne compatible
+DUALCASE=1; export DUALCASE # for MKS sh
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
+ emulate sh
+ NULLCMD=:
+ # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
+ # is contrary to our usage. Disable this feature.
+ alias -g '${1+"$@"}'='"$@"'
+ setopt NO_GLOB_SUBST
+else
+ case `(set -o) 2>/dev/null` in @%:@(
+ *posix*) :
+ set -o posix ;; @%:@(
+ *) :
+ ;;
+esac
+fi
+
+
+as_nl='
+'
+export as_nl
+# Printing a long string crashes Solaris 7 /usr/bin/printf.
+as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
+# Prefer a ksh shell builtin over an external printf program on Solaris,
+# but without wasting forks for bash or zsh.
+if test -z "$BASH_VERSION$ZSH_VERSION" \
+ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
+ as_echo='print -r --'
+ as_echo_n='print -rn --'
+elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
+ as_echo='printf %s\n'
+ as_echo_n='printf %s'
+else
+ if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
+ as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
+ as_echo_n='/usr/ucb/echo -n'
+ else
+ as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
+ as_echo_n_body='eval
+ arg=$1;
+ case $arg in @%:@(
+ *"$as_nl"*)
+ expr "X$arg" : "X\\(.*\\)$as_nl";
+ arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
+ esac;
+ expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
+ '
+ export as_echo_n_body
+ as_echo_n='sh -c $as_echo_n_body as_echo'
+ fi
+ export as_echo_body
+ as_echo='sh -c $as_echo_body as_echo'
+fi
+
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+ PATH_SEPARATOR=:
+ (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
+ (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
+ PATH_SEPARATOR=';'
+ }
+fi
+
+
+# IFS
+# We need space, tab and new line, in precisely that order. Quoting is
+# there to prevent editors from complaining about space-tab.
+# (If _AS_PATH_WALK were called with IFS unset, it would disable word
+# splitting by setting IFS to empty value.)
+IFS=" "" $as_nl"
+
+# Find who we are. Look in the path if we contain no directory separator.
+case $0 in @%:@((
+ *[\\/]* ) as_myself=$0 ;;
+ *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+# We did not find ourselves, most probably we were run as `sh COMMAND'
+# in which case we are not to be found in the path.
+if test "x$as_myself" = x; then
+ as_myself=$0
+fi
+if test ! -f "$as_myself"; then
+ $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
+ exit 1
+fi
+
+# Unset variables that we do not need and which cause bugs (e.g. in
+# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1"
+# suppresses any "Segmentation fault" message there. '((' could
+# trigger a bug in pdksh 5.2.14.
+for as_var in BASH_ENV ENV MAIL MAILPATH
+do eval test x\${$as_var+set} = xset \
+ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
+done
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# NLS nuisances.
+LC_ALL=C
+export LC_ALL
+LANGUAGE=C
+export LANGUAGE
+
+# CDPATH.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+if test "x$CONFIG_SHELL" = x; then
+ as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then :
+ emulate sh
+ NULLCMD=:
+ # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which
+ # is contrary to our usage. Disable this feature.
+ alias -g '\${1+\"\$@\"}'='\"\$@\"'
+ setopt NO_GLOB_SUBST
+else
+ case \`(set -o) 2>/dev/null\` in @%:@(
+ *posix*) :
+ set -o posix ;; @%:@(
+ *) :
+ ;;
+esac
+fi
+"
+ as_required="as_fn_return () { (exit \$1); }
+as_fn_success () { as_fn_return 0; }
+as_fn_failure () { as_fn_return 1; }
+as_fn_ret_success () { return 0; }
+as_fn_ret_failure () { return 1; }
+
+exitcode=0
+as_fn_success || { exitcode=1; echo as_fn_success failed.; }
+as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; }
+as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; }
+as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; }
+if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then :
+
+else
+ exitcode=1; echo positional parameters were not saved.
+fi
+test x\$exitcode = x0 || exit 1"
+ as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO
+ as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
+ eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
+ test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1
+test \$(( 1 + 1 )) = 2 || exit 1"
+ if (eval "$as_required") 2>/dev/null; then :
+ as_have_required=yes
+else
+ as_have_required=no
+fi
+ if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then :
+
+else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+as_found=false
+for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ as_found=:
+ case $as_dir in @%:@(
+ /*)
+ for as_base in sh bash ksh sh5; do
+ # Try only shells that exist, to save several forks.
+ as_shell=$as_dir/$as_base
+ if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
+ { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then :
+ CONFIG_SHELL=$as_shell as_have_required=yes
+ if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then :
+ break 2
+fi
+fi
+ done;;
+ esac
+ as_found=false
+done
+$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } &&
+ { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then :
+ CONFIG_SHELL=$SHELL as_have_required=yes
+fi; }
+IFS=$as_save_IFS
+
+
+ if test "x$CONFIG_SHELL" != x; then :
+ # We cannot yet assume a decent shell, so we have to provide a
+ # neutralization value for shells without unset; and this also
+ # works around shells that cannot unset nonexistent variables.
+ BASH_ENV=/dev/null
+ ENV=/dev/null
+ (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
+ export CONFIG_SHELL
+ exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"}
+fi
+
+ if test x$as_have_required = xno; then :
+ $as_echo "$0: This script requires a shell more modern than all"
+ $as_echo "$0: the shells that I found on your system."
+ if test x${ZSH_VERSION+set} = xset ; then
+ $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should"
+ $as_echo "$0: be upgraded to zsh 4.3.4 or later."
+ else
+ $as_echo "$0: Please tell bug-autoconf@gnu.org about your system,
+$0: including any error possibly output before this
+$0: message. Then install a modern shell, or manually run
+$0: the script under such a shell if you do have one."
+ fi
+ exit 1
+fi
+fi
+fi
+SHELL=${CONFIG_SHELL-/bin/sh}
+export SHELL
+# Unset more variables known to interfere with behavior of common tools.
+CLICOLOR_FORCE= GREP_OPTIONS=
+unset CLICOLOR_FORCE GREP_OPTIONS
+
+## --------------------- ##
+## M4sh Shell Functions. ##
+## --------------------- ##
+@%:@ as_fn_unset VAR
+@%:@ ---------------
+@%:@ Portably unset VAR.
+as_fn_unset ()
+{
+ { eval $1=; unset $1;}
+}
+as_unset=as_fn_unset
+
+@%:@ as_fn_set_status STATUS
+@%:@ -----------------------
+@%:@ Set @S|@? to STATUS, without forking.
+as_fn_set_status ()
+{
+ return $1
+} @%:@ as_fn_set_status
+
+@%:@ as_fn_exit STATUS
+@%:@ -----------------
+@%:@ Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
+as_fn_exit ()
+{
+ set +e
+ as_fn_set_status $1
+ exit $1
+} @%:@ as_fn_exit
+
+@%:@ as_fn_mkdir_p
+@%:@ -------------
+@%:@ Create "@S|@as_dir" as a directory, including parents if necessary.
+as_fn_mkdir_p ()
+{
+
+ case $as_dir in #(
+ -*) as_dir=./$as_dir;;
+ esac
+ test -d "$as_dir" || eval $as_mkdir_p || {
+ as_dirs=
+ while :; do
+ case $as_dir in #(
+ *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
+ *) as_qdir=$as_dir;;
+ esac
+ as_dirs="'$as_qdir' $as_dirs"
+ as_dir=`$as_dirname -- "$as_dir" ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$as_dir" : 'X\(//\)[^/]' \| \
+ X"$as_dir" : 'X\(//\)$' \| \
+ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$as_dir" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ test -d "$as_dir" && break
+ done
+ test -z "$as_dirs" || eval "mkdir $as_dirs"
+ } || test -d "$as_dir" || as_fn_error "cannot create directory $as_dir"
+
+
+} @%:@ as_fn_mkdir_p
+@%:@ as_fn_append VAR VALUE
+@%:@ ----------------------
+@%:@ Append the text in VALUE to the end of the definition contained in VAR. Take
+@%:@ advantage of any shell optimizations that allow amortized linear growth over
+@%:@ repeated appends, instead of the typical quadratic growth present in naive
+@%:@ implementations.
+if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
+ eval 'as_fn_append ()
+ {
+ eval $1+=\$2
+ }'
+else
+ as_fn_append ()
+ {
+ eval $1=\$$1\$2
+ }
+fi # as_fn_append
+
+@%:@ as_fn_arith ARG...
+@%:@ ------------------
+@%:@ Perform arithmetic evaluation on the ARGs, and store the result in the
+@%:@ global @S|@as_val. Take advantage of shells that can avoid forks. The arguments
+@%:@ must be portable across @S|@(()) and expr.
+if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
+ eval 'as_fn_arith ()
+ {
+ as_val=$(( $* ))
+ }'
+else
+ as_fn_arith ()
+ {
+ as_val=`expr "$@" || test $? -eq 1`
+ }
+fi # as_fn_arith
+
+
+@%:@ as_fn_error ERROR [LINENO LOG_FD]
+@%:@ ---------------------------------
+@%:@ Output "`basename @S|@0`: error: ERROR" to stderr. If LINENO and LOG_FD are
+@%:@ provided, also output the error to LOG_FD, referencing LINENO. Then exit the
+@%:@ script with status @S|@?, using 1 if that was 0.
+as_fn_error ()
+{
+ as_status=$?; test $as_status -eq 0 && as_status=1
+ if test "$3"; then
+ as_lineno=${as_lineno-"$2"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ $as_echo "$as_me:${as_lineno-$LINENO}: error: $1" >&$3
+ fi
+ $as_echo "$as_me: error: $1" >&2
+ as_fn_exit $as_status
+} @%:@ as_fn_error
+
+if expr a : '\(a\)' >/dev/null 2>&1 &&
+ test "X`expr 00001 : '.*\(...\)'`" = X001; then
+ as_expr=expr
+else
+ as_expr=false
+fi
+
+if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
+ as_basename=basename
+else
+ as_basename=false
+fi
+
+if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
+ as_dirname=dirname
+else
+ as_dirname=false
+fi
+
+as_me=`$as_basename -- "$0" ||
+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+ X"$0" : 'X\(//\)$' \| \
+ X"$0" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X/"$0" |
+ sed '/^.*\/\([^/][^/]*\)\/*$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits
+
+
+ as_lineno_1=$LINENO as_lineno_1a=$LINENO
+ as_lineno_2=$LINENO as_lineno_2a=$LINENO
+ eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" &&
+ test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || {
+ # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-)
+ sed -n '
+ p
+ /[$]LINENO/=
+ ' <$as_myself |
+ sed '
+ s/[$]LINENO.*/&-/
+ t lineno
+ b
+ :lineno
+ N
+ :loop
+ s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
+ t loop
+ s/-\n.*//
+ ' >$as_me.lineno &&
+ chmod +x "$as_me.lineno" ||
+ { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
+
+ # Don't try to exec as it changes $[0], causing all sort of problems
+ # (the dirname of $[0] is not the place where we might find the
+ # original and so on. Autoconf is especially sensitive to this).
+ . "./$as_me.lineno"
+ # Exit status is that of the last command.
+ exit
+}
+
+ECHO_C= ECHO_N= ECHO_T=
+case `echo -n x` in @%:@(((((
+-n*)
+ case `echo 'xy\c'` in
+ *c*) ECHO_T=' ';; # ECHO_T is single tab character.
+ xy) ECHO_C='\c';;
+ *) echo `echo ksh88 bug on AIX 6.1` > /dev/null
+ ECHO_T=' ';;
+ esac;;
+*)
+ ECHO_N='-n';;
+esac
+
+rm -f conf$$ conf$$.exe conf$$.file
+if test -d conf$$.dir; then
+ rm -f conf$$.dir/conf$$.file
+else
+ rm -f conf$$.dir
+ mkdir conf$$.dir 2>/dev/null
+fi
+if (echo >conf$$.file) 2>/dev/null; then
+ if ln -s conf$$.file conf$$ 2>/dev/null; then
+ as_ln_s='ln -s'
+ # ... but there are two gotchas:
+ # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
+ # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
+ # In both cases, we have to default to `cp -p'.
+ ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
+ as_ln_s='cp -p'
+ elif ln conf$$.file conf$$ 2>/dev/null; then
+ as_ln_s=ln
+ else
+ as_ln_s='cp -p'
+ fi
+else
+ as_ln_s='cp -p'
+fi
+rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
+rmdir conf$$.dir 2>/dev/null
+
+if mkdir -p . 2>/dev/null; then
+ as_mkdir_p='mkdir -p "$as_dir"'
+else
+ test -d ./-p && rmdir ./-p
+ as_mkdir_p=false
+fi
+
+if test -x / >/dev/null 2>&1; then
+ as_test_x='test -x'
+else
+ if ls -dL / >/dev/null 2>&1; then
+ as_ls_L_option=L
+ else
+ as_ls_L_option=
+ fi
+ as_test_x='
+ eval sh -c '\''
+ if test -d "$1"; then
+ test -d "$1/.";
+ else
+ case $1 in @%:@(
+ -*)set "./$1";;
+ esac;
+ case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in @%:@((
+ ???[sx]*):;;*)false;;esac;fi
+ '\'' sh
+ '
+fi
+as_executable_p=$as_test_x
+
+# Sed expression to map a string onto a valid CPP name.
+as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
+
+# Sed expression to map a string onto a valid variable name.
+as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
+
+
+
+# Check that we are running under the correct shell.
+SHELL=${CONFIG_SHELL-/bin/sh}
+
+case X$lt_ECHO in
+X*--fallback-echo)
+ # Remove one level of quotation (which was required for Make).
+ ECHO=`echo "$lt_ECHO" | sed 's,\\\\\$\\$0,'$0','`
+ ;;
+esac
+
+ECHO=${lt_ECHO-echo}
+if test "X$1" = X--no-reexec; then
+ # Discard the --no-reexec flag, and continue.
+ shift
+elif test "X$1" = X--fallback-echo; then
+ # Avoid inline document here, it may be left over
+ :
+elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' ; then
+ # Yippee, $ECHO works!
+ :
+else
+ # Restart under the correct shell.
+ exec $SHELL "$0" --no-reexec ${1+"$@"}
+fi
+
+if test "X$1" = X--fallback-echo; then
+ # used as fallback echo
+ shift
+ cat <<_LT_EOF
+$*
+_LT_EOF
+ exit 0
+fi
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+if test -z "$lt_ECHO"; then
+ if test "X${echo_test_string+set}" != Xset; then
+ # find a string as large as possible, as long as the shell can cope with it
+ for cmd in 'sed 50q "$0"' 'sed 20q "$0"' 'sed 10q "$0"' 'sed 2q "$0"' 'echo test'; do
+ # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ...
+ if { echo_test_string=`eval $cmd`; } 2>/dev/null &&
+ { test "X$echo_test_string" = "X$echo_test_string"; } 2>/dev/null
+ then
+ break
+ fi
+ done
+ fi
+
+ if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' &&
+ echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` &&
+ test "X$echo_testing_string" = "X$echo_test_string"; then
+ :
+ else
+ # The Solaris, AIX, and Digital Unix default echo programs unquote
+ # backslashes. This makes it impossible to quote backslashes using
+ # echo "$something" | sed 's/\\/\\\\/g'
+ #
+ # So, first we look for a working echo in the user's PATH.
+
+ lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+ for dir in $PATH /usr/ucb; do
+ IFS="$lt_save_ifs"
+ if (test -f $dir/echo || test -f $dir/echo$ac_exeext) &&
+ test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' &&
+ echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` &&
+ test "X$echo_testing_string" = "X$echo_test_string"; then
+ ECHO="$dir/echo"
+ break
+ fi
+ done
+ IFS="$lt_save_ifs"
+
+ if test "X$ECHO" = Xecho; then
+ # We didn't find a better echo, so look for alternatives.
+ if test "X`{ print -r '\t'; } 2>/dev/null`" = 'X\t' &&
+ echo_testing_string=`{ print -r "$echo_test_string"; } 2>/dev/null` &&
+ test "X$echo_testing_string" = "X$echo_test_string"; then
+ # This shell has a builtin print -r that does the trick.
+ ECHO='print -r'
+ elif { test -f /bin/ksh || test -f /bin/ksh$ac_exeext; } &&
+ test "X$CONFIG_SHELL" != X/bin/ksh; then
+ # If we have ksh, try running configure again with it.
+ ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
+ export ORIGINAL_CONFIG_SHELL
+ CONFIG_SHELL=/bin/ksh
+ export CONFIG_SHELL
+ exec $CONFIG_SHELL "$0" --no-reexec ${1+"$@"}
+ else
+ # Try using printf.
+ ECHO='printf %s\n'
+ if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' &&
+ echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` &&
+ test "X$echo_testing_string" = "X$echo_test_string"; then
+ # Cool, printf works
+ :
+ elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` &&
+ test "X$echo_testing_string" = 'X\t' &&
+ echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
+ test "X$echo_testing_string" = "X$echo_test_string"; then
+ CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL
+ export CONFIG_SHELL
+ SHELL="$CONFIG_SHELL"
+ export SHELL
+ ECHO="$CONFIG_SHELL $0 --fallback-echo"
+ elif echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` &&
+ test "X$echo_testing_string" = 'X\t' &&
+ echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
+ test "X$echo_testing_string" = "X$echo_test_string"; then
+ ECHO="$CONFIG_SHELL $0 --fallback-echo"
+ else
+ # maybe with a smaller string...
+ prev=:
+
+ for cmd in 'echo test' 'sed 2q "$0"' 'sed 10q "$0"' 'sed 20q "$0"' 'sed 50q "$0"'; do
+ if { test "X$echo_test_string" = "X`eval $cmd`"; } 2>/dev/null
+ then
+ break
+ fi
+ prev="$cmd"
+ done
+
+ if test "$prev" != 'sed 50q "$0"'; then
+ echo_test_string=`eval $prev`
+ export echo_test_string
+ exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "$0" ${1+"$@"}
+ else
+ # Oops. We lost completely, so just stick with echo.
+ ECHO=echo
+ fi
+ fi
+ fi
+ fi
+ fi
+fi
+
+# Copy echo and quote the copy suitably for passing to libtool from
+# the Makefile, instead of quoting the original, which is used later.
+lt_ECHO=$ECHO
+if test "X$lt_ECHO" = "X$CONFIG_SHELL $0 --fallback-echo"; then
+ lt_ECHO="$CONFIG_SHELL \\\$\$0 --fallback-echo"
+fi
+
+
+
+
+test -n "$DJDIR" || exec 7<&0 </dev/null
+exec 6>&1
+
+# Name of the host.
+# hostname on some systems (SVR3.2, Linux) returns a bogus exit status,
+# so uname gets run too.
+ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
+
+#
+# Initializations.
+#
+ac_default_prefix=/usr/local
+ac_clean_files=
+ac_config_libobj_dir=.
+LIB@&t@OBJS=
+cross_compiling=no
+subdirs=
+MFLAGS=
+MAKEFLAGS=
+
+# Identity of this package.
+PACKAGE_NAME='MusE'
+PACKAGE_TARNAME='muse'
+PACKAGE_VERSION='1.1'
+PACKAGE_STRING='MusE 1.1'
+PACKAGE_BUGREPORT=''
+PACKAGE_URL=''
+
+ac_unique_file="muse/app.cpp"
+# Factoring default headers for most tests.
+ac_includes_default="\
+#include <stdio.h>
+#ifdef HAVE_SYS_TYPES_H
+# include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_STAT_H
+# include <sys/stat.h>
+#endif
+#ifdef STDC_HEADERS
+# include <stdlib.h>
+# include <stddef.h>
+#else
+# ifdef HAVE_STDLIB_H
+# include <stdlib.h>
+# endif
+#endif
+#ifdef HAVE_STRING_H
+# if !defined STDC_HEADERS && defined HAVE_MEMORY_H
+# include <memory.h>
+# endif
+# include <string.h>
+#endif
+#ifdef HAVE_STRINGS_H
+# include <strings.h>
+#endif
+#ifdef HAVE_INTTYPES_H
+# include <inttypes.h>
+#endif
+#ifdef HAVE_STDINT_H
+# include <stdint.h>
+#endif
+#ifdef HAVE_UNISTD_H
+# include <unistd.h>
+#endif"
+
+ac_subst_vars='am__EXEEXT_FALSE
+am__EXEEXT_TRUE
+LTLIBOBJS
+LIB@&t@OBJS
+MUSECXXFLAGS
+HAVE_AUDIO_FALSE
+HAVE_AUDIO_TRUE
+DSSI_SUPPORT_FALSE
+DSSI_SUPPORT_TRUE
+OSC_SUPPORT_FALSE
+OSC_SUPPORT_TRUE
+LO_LIBS
+LO_CFLAGS
+VST_SUPPORT_FALSE
+VST_SUPPORT_TRUE
+FST_LIBS
+FST_CFLAGS
+PYTHON_LIB
+PYTHON_INCLUDES
+ENABLE_PYTHON_FALSE
+ENABLE_PYTHON_TRUE
+pkgpyexecdir
+pyexecdir
+pkgpythondir
+pythondir
+PYTHON_PLATFORM
+PYTHON_EXEC_PREFIX
+PYTHON_PREFIX
+PYTHON_VERSION
+PYTHON
+USE_SSE_FALSE
+USE_SSE_TRUE
+USE_SSE
+PCH_FALSE
+PCH_TRUE
+PCH
+DOXYGEN_TREEVIEW
+SUIDBUILD
+SUIDINSTALL
+GIVERTCAP
+RTCAP_FALSE
+RTCAP_TRUE
+HAVE_LASH_FALSE
+HAVE_LASH_TRUE
+LASH_LIBS
+LASH_CFLAGS
+JACK_LIBS
+JACK_CFLAGS
+UUID_LIBS
+UUID_CFLAGS
+SAMPLERATE_LIBS
+SAMPLERATE_CFLAGS
+SNDFILE_LIBS
+SNDFILE_CFLAGS
+synth_fluid
+synth_fluidsynth
+FLUIDSYNTHDIRS
+Fluidsynth_LIBS
+Fluidsynth_CFLAGS
+PKG_CONFIG
+ENABLEFLUIDSYNTH_FALSE
+ENABLEFLUIDSYNTH_TRUE
+ALSA_LIBS
+ALSA_CFLAGS
+UIC
+MOC
+QT_LIBS
+QT_CFLAGS
+X_EXTRA_LIBS
+X_LIBS
+X_PRE_LIBS
+X_CFLAGS
+XMKMF
+PERL
+DOTPATH
+HAVEDOT
+DOT
+DOXYGEN
+DOCBOOKTARGETS
+DOCBOOKSTYLE
+have_docbook
+NSGMLS
+JADE
+CXXCPP
+CPP
+OTOOL64
+OTOOL
+LIPO
+NMEDIT
+DSYMUTIL
+lt_ECHO
+RANLIB
+AR
+OBJDUMP
+LN_S
+NM
+ac_ct_DUMPBIN
+DUMPBIN
+LD
+FGREP
+EGREP
+GREP
+SED
+am__fastdepCC_FALSE
+am__fastdepCC_TRUE
+CCDEPMODE
+ac_ct_CC
+CFLAGS
+CC
+host_os
+host_vendor
+host_cpu
+host
+build_os
+build_vendor
+build_cpu
+build
+LIBTOOL
+am__fastdepCXX_FALSE
+am__fastdepCXX_TRUE
+CXXDEPMODE
+AMDEPBACKSLASH
+AMDEP_FALSE
+AMDEP_TRUE
+am__quote
+am__include
+DEPDIR
+OBJEXT
+EXEEXT
+ac_ct_CXX
+CPPFLAGS
+LDFLAGS
+CXXFLAGS
+CXX
+INSIDE_GNOME_COMMON_FALSE
+INSIDE_GNOME_COMMON_TRUE
+am__untar
+am__tar
+AMTAR
+am__leading_dot
+SET_MAKE
+AWK
+mkdir_p
+MKDIR_P
+INSTALL_STRIP_PROGRAM
+STRIP
+install_sh
+MAKEINFO
+AUTOHEADER
+AUTOMAKE
+AUTOCONF
+ACLOCAL
+VERSION
+PACKAGE
+CYGPATH_W
+am__isrc
+INSTALL_DATA
+INSTALL_SCRIPT
+INSTALL_PROGRAM
+target_alias
+host_alias
+build_alias
+LIBS
+ECHO_T
+ECHO_N
+ECHO_C
+DEFS
+mandir
+localedir
+libdir
+psdir
+pdfdir
+dvidir
+htmldir
+infodir
+docdir
+oldincludedir
+includedir
+localstatedir
+sharedstatedir
+sysconfdir
+datadir
+datarootdir
+libexecdir
+sbindir
+bindir
+program_transform_name
+prefix
+exec_prefix
+PACKAGE_URL
+PACKAGE_BUGREPORT
+PACKAGE_STRING
+PACKAGE_VERSION
+PACKAGE_TARNAME
+PACKAGE_NAME
+PATH_SEPARATOR
+SHELL'
+ac_subst_files=''
+ac_user_opts='
+enable_option_checking
+enable_dependency_tracking
+enable_shared
+enable_static
+with_pic
+enable_fast_install
+with_gnu_ld
+enable_libtool_lock
+with_docbook_stylesheets
+with_x
+enable_qttest
+with_qt_prefix
+with_qt_includes
+with_qt_libraries
+with_qt_binaries
+with_qt_moc
+with_qt_uic
+with_alsa_prefix
+with_alsa_inc_prefix
+enable_alsatest
+enable_fluidsynth
+enable_lash
+enable_rtcap
+enable_suid_install
+enable_suid_build
+enable_doxy_treeview
+enable_optimize
+enable_debug
+enable_pch
+enable_arch
+enable_sse
+with_python
+enable_vst
+enable_osc
+enable_dssi
+'
+ ac_precious_vars='build_alias
+host_alias
+target_alias
+CXX
+CXXFLAGS
+LDFLAGS
+LIBS
+CPPFLAGS
+CCC
+CC
+CFLAGS
+CPP
+CXXCPP
+DOXYGEN
+DOT
+PERL
+XMKMF
+PKG_CONFIG
+Fluidsynth_CFLAGS
+Fluidsynth_LIBS
+SNDFILE_CFLAGS
+SNDFILE_LIBS
+SAMPLERATE_CFLAGS
+SAMPLERATE_LIBS
+JACK_CFLAGS
+JACK_LIBS
+LASH_CFLAGS
+LASH_LIBS
+FST_CFLAGS
+FST_LIBS
+LO_CFLAGS
+LO_LIBS'
+
+
+# Initialize some variables set by options.
+ac_init_help=
+ac_init_version=false
+ac_unrecognized_opts=
+ac_unrecognized_sep=
+# The variables have the same names as the options, with
+# dashes changed to underlines.
+cache_file=/dev/null
+exec_prefix=NONE
+no_create=
+no_recursion=
+prefix=NONE
+program_prefix=NONE
+program_suffix=NONE
+program_transform_name=s,x,x,
+silent=
+site=
+srcdir=
+verbose=
+x_includes=NONE
+x_libraries=NONE
+
+# Installation directory options.
+# These are left unexpanded so users can "make install exec_prefix=/foo"
+# and all the variables that are supposed to be based on exec_prefix
+# by default will actually change.
+# Use braces instead of parens because sh, perl, etc. also accept them.
+# (The list follows the same order as the GNU Coding Standards.)
+bindir='${exec_prefix}/bin'
+sbindir='${exec_prefix}/sbin'
+libexecdir='${exec_prefix}/libexec'
+datarootdir='${prefix}/share'
+datadir='${datarootdir}'
+sysconfdir='${prefix}/etc'
+sharedstatedir='${prefix}/com'
+localstatedir='${prefix}/var'
+includedir='${prefix}/include'
+oldincludedir='/usr/include'
+docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
+infodir='${datarootdir}/info'
+htmldir='${docdir}'
+dvidir='${docdir}'
+pdfdir='${docdir}'
+psdir='${docdir}'
+libdir='${exec_prefix}/lib'
+localedir='${datarootdir}/locale'
+mandir='${datarootdir}/man'
+
+ac_prev=
+ac_dashdash=
+for ac_option
+do
+ # If the previous option needs an argument, assign it.
+ if test -n "$ac_prev"; then
+ eval $ac_prev=\$ac_option
+ ac_prev=
+ continue
+ fi
+
+ case $ac_option in
+ *=*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
+ *) ac_optarg=yes ;;
+ esac
+
+ # Accept the important Cygnus configure options, so we can diagnose typos.
+
+ case $ac_dashdash$ac_option in
+ --)
+ ac_dashdash=yes ;;
+
+ -bindir | --bindir | --bindi | --bind | --bin | --bi)
+ ac_prev=bindir ;;
+ -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
+ bindir=$ac_optarg ;;
+
+ -build | --build | --buil | --bui | --bu)
+ ac_prev=build_alias ;;
+ -build=* | --build=* | --buil=* | --bui=* | --bu=*)
+ build_alias=$ac_optarg ;;
+
+ -cache-file | --cache-file | --cache-fil | --cache-fi \
+ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
+ ac_prev=cache_file ;;
+ -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
+ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
+ cache_file=$ac_optarg ;;
+
+ --config-cache | -C)
+ cache_file=config.cache ;;
+
+ -datadir | --datadir | --datadi | --datad)
+ ac_prev=datadir ;;
+ -datadir=* | --datadir=* | --datadi=* | --datad=*)
+ datadir=$ac_optarg ;;
+
+ -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \
+ | --dataroo | --dataro | --datar)
+ ac_prev=datarootdir ;;
+ -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \
+ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*)
+ datarootdir=$ac_optarg ;;
+
+ -disable-* | --disable-*)
+ ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+ as_fn_error "invalid feature name: $ac_useropt"
+ ac_useropt_orig=$ac_useropt
+ ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+ case $ac_user_opts in
+ *"
+"enable_$ac_useropt"
+"*) ;;
+ *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig"
+ ac_unrecognized_sep=', ';;
+ esac
+ eval enable_$ac_useropt=no ;;
+
+ -docdir | --docdir | --docdi | --doc | --do)
+ ac_prev=docdir ;;
+ -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*)
+ docdir=$ac_optarg ;;
+
+ -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv)
+ ac_prev=dvidir ;;
+ -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*)
+ dvidir=$ac_optarg ;;
+
+ -enable-* | --enable-*)
+ ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+ as_fn_error "invalid feature name: $ac_useropt"
+ ac_useropt_orig=$ac_useropt
+ ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+ case $ac_user_opts in
+ *"
+"enable_$ac_useropt"
+"*) ;;
+ *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig"
+ ac_unrecognized_sep=', ';;
+ esac
+ eval enable_$ac_useropt=\$ac_optarg ;;
+
+ -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
+ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
+ | --exec | --exe | --ex)
+ ac_prev=exec_prefix ;;
+ -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
+ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
+ | --exec=* | --exe=* | --ex=*)
+ exec_prefix=$ac_optarg ;;
+
+ -gas | --gas | --ga | --g)
+ # Obsolete; use --with-gas.
+ with_gas=yes ;;
+
+ -help | --help | --hel | --he | -h)
+ ac_init_help=long ;;
+ -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
+ ac_init_help=recursive ;;
+ -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
+ ac_init_help=short ;;
+
+ -host | --host | --hos | --ho)
+ ac_prev=host_alias ;;
+ -host=* | --host=* | --hos=* | --ho=*)
+ host_alias=$ac_optarg ;;
+
+ -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht)
+ ac_prev=htmldir ;;
+ -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \
+ | --ht=*)
+ htmldir=$ac_optarg ;;
+
+ -includedir | --includedir | --includedi | --included | --include \
+ | --includ | --inclu | --incl | --inc)
+ ac_prev=includedir ;;
+ -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
+ | --includ=* | --inclu=* | --incl=* | --inc=*)
+ includedir=$ac_optarg ;;
+
+ -infodir | --infodir | --infodi | --infod | --info | --inf)
+ ac_prev=infodir ;;
+ -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
+ infodir=$ac_optarg ;;
+
+ -libdir | --libdir | --libdi | --libd)
+ ac_prev=libdir ;;
+ -libdir=* | --libdir=* | --libdi=* | --libd=*)
+ libdir=$ac_optarg ;;
+
+ -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
+ | --libexe | --libex | --libe)
+ ac_prev=libexecdir ;;
+ -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
+ | --libexe=* | --libex=* | --libe=*)
+ libexecdir=$ac_optarg ;;
+
+ -localedir | --localedir | --localedi | --localed | --locale)
+ ac_prev=localedir ;;
+ -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*)
+ localedir=$ac_optarg ;;
+
+ -localstatedir | --localstatedir | --localstatedi | --localstated \
+ | --localstate | --localstat | --localsta | --localst | --locals)
+ ac_prev=localstatedir ;;
+ -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
+ | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*)
+ localstatedir=$ac_optarg ;;
+
+ -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
+ ac_prev=mandir ;;
+ -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
+ mandir=$ac_optarg ;;
+
+ -nfp | --nfp | --nf)
+ # Obsolete; use --without-fp.
+ with_fp=no ;;
+
+ -no-create | --no-create | --no-creat | --no-crea | --no-cre \
+ | --no-cr | --no-c | -n)
+ no_create=yes ;;
+
+ -no-recursion | --no-recursion | --no-recursio | --no-recursi \
+ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
+ no_recursion=yes ;;
+
+ -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
+ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
+ | --oldin | --oldi | --old | --ol | --o)
+ ac_prev=oldincludedir ;;
+ -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
+ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
+ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
+ oldincludedir=$ac_optarg ;;
+
+ -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
+ ac_prev=prefix ;;
+ -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
+ prefix=$ac_optarg ;;
+
+ -program-prefix | --program-prefix | --program-prefi | --program-pref \
+ | --program-pre | --program-pr | --program-p)
+ ac_prev=program_prefix ;;
+ -program-prefix=* | --program-prefix=* | --program-prefi=* \
+ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
+ program_prefix=$ac_optarg ;;
+
+ -program-suffix | --program-suffix | --program-suffi | --program-suff \
+ | --program-suf | --program-su | --program-s)
+ ac_prev=program_suffix ;;
+ -program-suffix=* | --program-suffix=* | --program-suffi=* \
+ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
+ program_suffix=$ac_optarg ;;
+
+ -program-transform-name | --program-transform-name \
+ | --program-transform-nam | --program-transform-na \
+ | --program-transform-n | --program-transform- \
+ | --program-transform | --program-transfor \
+ | --program-transfo | --program-transf \
+ | --program-trans | --program-tran \
+ | --progr-tra | --program-tr | --program-t)
+ ac_prev=program_transform_name ;;
+ -program-transform-name=* | --program-transform-name=* \
+ | --program-transform-nam=* | --program-transform-na=* \
+ | --program-transform-n=* | --program-transform-=* \
+ | --program-transform=* | --program-transfor=* \
+ | --program-transfo=* | --program-transf=* \
+ | --program-trans=* | --program-tran=* \
+ | --progr-tra=* | --program-tr=* | --program-t=*)
+ program_transform_name=$ac_optarg ;;
+
+ -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd)
+ ac_prev=pdfdir ;;
+ -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*)
+ pdfdir=$ac_optarg ;;
+
+ -psdir | --psdir | --psdi | --psd | --ps)
+ ac_prev=psdir ;;
+ -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*)
+ psdir=$ac_optarg ;;
+
+ -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+ | -silent | --silent | --silen | --sile | --sil)
+ silent=yes ;;
+
+ -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
+ ac_prev=sbindir ;;
+ -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
+ | --sbi=* | --sb=*)
+ sbindir=$ac_optarg ;;
+
+ -sharedstatedir | --sharedstatedir | --sharedstatedi \
+ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
+ | --sharedst | --shareds | --shared | --share | --shar \
+ | --sha | --sh)
+ ac_prev=sharedstatedir ;;
+ -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
+ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
+ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
+ | --sha=* | --sh=*)
+ sharedstatedir=$ac_optarg ;;
+
+ -site | --site | --sit)
+ ac_prev=site ;;
+ -site=* | --site=* | --sit=*)
+ site=$ac_optarg ;;
+
+ -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
+ ac_prev=srcdir ;;
+ -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
+ srcdir=$ac_optarg ;;
+
+ -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
+ | --syscon | --sysco | --sysc | --sys | --sy)
+ ac_prev=sysconfdir ;;
+ -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
+ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
+ sysconfdir=$ac_optarg ;;
+
+ -target | --target | --targe | --targ | --tar | --ta | --t)
+ ac_prev=target_alias ;;
+ -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
+ target_alias=$ac_optarg ;;
+
+ -v | -verbose | --verbose | --verbos | --verbo | --verb)
+ verbose=yes ;;
+
+ -version | --version | --versio | --versi | --vers | -V)
+ ac_init_version=: ;;
+
+ -with-* | --with-*)
+ ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+ as_fn_error "invalid package name: $ac_useropt"
+ ac_useropt_orig=$ac_useropt
+ ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+ case $ac_user_opts in
+ *"
+"with_$ac_useropt"
+"*) ;;
+ *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig"
+ ac_unrecognized_sep=', ';;
+ esac
+ eval with_$ac_useropt=\$ac_optarg ;;
+
+ -without-* | --without-*)
+ ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+ as_fn_error "invalid package name: $ac_useropt"
+ ac_useropt_orig=$ac_useropt
+ ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+ case $ac_user_opts in
+ *"
+"with_$ac_useropt"
+"*) ;;
+ *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig"
+ ac_unrecognized_sep=', ';;
+ esac
+ eval with_$ac_useropt=no ;;
+
+ --x)
+ # Obsolete; use --with-x.
+ with_x=yes ;;
+
+ -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
+ | --x-incl | --x-inc | --x-in | --x-i)
+ ac_prev=x_includes ;;
+ -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
+ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
+ x_includes=$ac_optarg ;;
+
+ -x-libraries | --x-libraries | --x-librarie | --x-librari \
+ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
+ ac_prev=x_libraries ;;
+ -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
+ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
+ x_libraries=$ac_optarg ;;
+
+ -*) as_fn_error "unrecognized option: \`$ac_option'
+Try \`$0 --help' for more information."
+ ;;
+
+ *=*)
+ ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
+ # Reject names that are not valid shell variable names.
+ case $ac_envvar in #(
+ '' | [0-9]* | *[!_$as_cr_alnum]* )
+ as_fn_error "invalid variable name: \`$ac_envvar'" ;;
+ esac
+ eval $ac_envvar=\$ac_optarg
+ export $ac_envvar ;;
+
+ *)
+ # FIXME: should be removed in autoconf 3.0.
+ $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2
+ expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
+ $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2
+ : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}
+ ;;
+
+ esac
+done
+
+if test -n "$ac_prev"; then
+ ac_option=--`echo $ac_prev | sed 's/_/-/g'`
+ as_fn_error "missing argument to $ac_option"
+fi
+
+if test -n "$ac_unrecognized_opts"; then
+ case $enable_option_checking in
+ no) ;;
+ fatal) as_fn_error "unrecognized options: $ac_unrecognized_opts" ;;
+ *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
+ esac
+fi
+
+# Check all directory arguments for consistency.
+for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \
+ datadir sysconfdir sharedstatedir localstatedir includedir \
+ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
+ libdir localedir mandir
+do
+ eval ac_val=\$$ac_var
+ # Remove trailing slashes.
+ case $ac_val in
+ */ )
+ ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'`
+ eval $ac_var=\$ac_val;;
+ esac
+ # Be sure to have absolute directory names.
+ case $ac_val in
+ [\\/$]* | ?:[\\/]* ) continue;;
+ NONE | '' ) case $ac_var in *prefix ) continue;; esac;;
+ esac
+ as_fn_error "expected an absolute directory name for --$ac_var: $ac_val"
+done
+
+# There might be people who depend on the old broken behavior: `$host'
+# used to hold the argument of --host etc.
+# FIXME: To remove some day.
+build=$build_alias
+host=$host_alias
+target=$target_alias
+
+# FIXME: To remove some day.
+if test "x$host_alias" != x; then
+ if test "x$build_alias" = x; then
+ cross_compiling=maybe
+ $as_echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host.
+ If a cross compiler is detected then cross compile mode will be used." >&2
+ elif test "x$build_alias" != "x$host_alias"; then
+ cross_compiling=yes
+ fi
+fi
+
+ac_tool_prefix=
+test -n "$host_alias" && ac_tool_prefix=$host_alias-
+
+test "$silent" = yes && exec 6>/dev/null
+
+
+ac_pwd=`pwd` && test -n "$ac_pwd" &&
+ac_ls_di=`ls -di .` &&
+ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||
+ as_fn_error "working directory cannot be determined"
+test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
+ as_fn_error "pwd does not report name of working directory"
+
+
+# Find the source files, if location was not specified.
+if test -z "$srcdir"; then
+ ac_srcdir_defaulted=yes
+ # Try the directory containing this script, then the parent directory.
+ ac_confdir=`$as_dirname -- "$as_myself" ||
+$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$as_myself" : 'X\(//\)[^/]' \| \
+ X"$as_myself" : 'X\(//\)$' \| \
+ X"$as_myself" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$as_myself" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ srcdir=$ac_confdir
+ if test ! -r "$srcdir/$ac_unique_file"; then
+ srcdir=..
+ fi
+else
+ ac_srcdir_defaulted=no
+fi
+if test ! -r "$srcdir/$ac_unique_file"; then
+ test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."
+ as_fn_error "cannot find sources ($ac_unique_file) in $srcdir"
+fi
+ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"
+ac_abs_confdir=`(
+ cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error "$ac_msg"
+ pwd)`
+# When building in place, set srcdir=.
+if test "$ac_abs_confdir" = "$ac_pwd"; then
+ srcdir=.
+fi
+# Remove unnecessary trailing slashes from srcdir.
+# Double slashes in file names in object file debugging info
+# mess up M-x gdb in Emacs.
+case $srcdir in
+*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;;
+esac
+for ac_var in $ac_precious_vars; do
+ eval ac_env_${ac_var}_set=\${${ac_var}+set}
+ eval ac_env_${ac_var}_value=\$${ac_var}
+ eval ac_cv_env_${ac_var}_set=\${${ac_var}+set}
+ eval ac_cv_env_${ac_var}_value=\$${ac_var}
+done
+
+#
+# Report the --help message.
+#
+if test "$ac_init_help" = "long"; then
+ # Omit some internal or obsolete options to make the list less imposing.
+ # This message is too long to be a string in the A/UX 3.1 sh.
+ cat <<_ACEOF
+\`configure' configures MusE 1.1 to adapt to many kinds of systems.
+
+Usage: $0 [OPTION]... [VAR=VALUE]...
+
+To assign environment variables (e.g., CC, CFLAGS...), specify them as
+VAR=VALUE. See below for descriptions of some of the useful variables.
+
+Defaults for the options are specified in brackets.
+
+Configuration:
+ -h, --help display this help and exit
+ --help=short display options specific to this package
+ --help=recursive display the short help of all the included packages
+ -V, --version display version information and exit
+ -q, --quiet, --silent do not print \`checking...' messages
+ --cache-file=FILE cache test results in FILE [disabled]
+ -C, --config-cache alias for \`--cache-file=config.cache'
+ -n, --no-create do not create output files
+ --srcdir=DIR find the sources in DIR [configure dir or \`..']
+
+Installation directories:
+ --prefix=PREFIX install architecture-independent files in PREFIX
+ @<:@@S|@ac_default_prefix@:>@
+ --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
+ @<:@PREFIX@:>@
+
+By default, \`make install' will install all the files in
+\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify
+an installation prefix other than \`$ac_default_prefix' using \`--prefix',
+for instance \`--prefix=\$HOME'.
+
+For better control, use the options below.
+
+Fine tuning of the installation directories:
+ --bindir=DIR user executables [EPREFIX/bin]
+ --sbindir=DIR system admin executables [EPREFIX/sbin]
+ --libexecdir=DIR program executables [EPREFIX/libexec]
+ --sysconfdir=DIR read-only single-machine data [PREFIX/etc]
+ --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
+ --localstatedir=DIR modifiable single-machine data [PREFIX/var]
+ --libdir=DIR object code libraries [EPREFIX/lib]
+ --includedir=DIR C header files [PREFIX/include]
+ --oldincludedir=DIR C header files for non-gcc [/usr/include]
+ --datarootdir=DIR read-only arch.-independent data root [PREFIX/share]
+ --datadir=DIR read-only architecture-independent data [DATAROOTDIR]
+ --infodir=DIR info documentation [DATAROOTDIR/info]
+ --localedir=DIR locale-dependent data [DATAROOTDIR/locale]
+ --mandir=DIR man documentation [DATAROOTDIR/man]
+ --docdir=DIR documentation root @<:@DATAROOTDIR/doc/muse@:>@
+ --htmldir=DIR html documentation [DOCDIR]
+ --dvidir=DIR dvi documentation [DOCDIR]
+ --pdfdir=DIR pdf documentation [DOCDIR]
+ --psdir=DIR ps documentation [DOCDIR]
+_ACEOF
+
+ cat <<\_ACEOF
+
+Program names:
+ --program-prefix=PREFIX prepend PREFIX to installed program names
+ --program-suffix=SUFFIX append SUFFIX to installed program names
+ --program-transform-name=PROGRAM run sed PROGRAM on installed program names
+
+X features:
+ --x-includes=DIR X include files are in DIR
+ --x-libraries=DIR X library files are in DIR
+
+System types:
+ --build=BUILD configure for building on BUILD [guessed]
+ --host=HOST cross-compile to build programs to run on HOST [BUILD]
+_ACEOF
+fi
+
+if test -n "$ac_init_help"; then
+ case $ac_init_help in
+ short | recursive ) echo "Configuration of MusE 1.1:";;
+ esac
+ cat <<\_ACEOF
+
+Optional Features:
+ --disable-option-checking ignore unrecognized --enable/--with options
+ --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
+ --enable-FEATURE[=ARG] include FEATURE [ARG=yes]
+ --disable-dependency-tracking speeds up one-time build
+ --enable-dependency-tracking do not reject slow dependency extractors
+ --enable-shared@<:@=PKGS@:>@ build shared libraries @<:@default=yes@:>@
+ --enable-static@<:@=PKGS@:>@ build static libraries @<:@default=yes@:>@
+ --enable-fast-install@<:@=PKGS@:>@
+ optimize for fast installation @<:@default=yes@:>@
+ --disable-libtool-lock avoid locking (might break parallel builds)
+ --disable-qttest do not try to compile and run a test libqt program
+ --disable-alsatest do not try to compile and run a test alsa program
+ --disable-fluidsynth disable fluidsynth softsynth plugin
+ --enable-lash enable LASH support
+ --enable-rtcap (deprecated) use Tommi Ilmonen's "givertcap" to give
+ realtime capabilities
+ --enable-suid-install (deprecated) install MusE setuid root (with kernel 2.6, use realtime-lsm instead)
+ --enable-suid-build (deprecated) build MusE setuid root(with kernel 2.6, use realtime-lsm instead)
+ --disable-doxy-treeview stop Doxygen from generating java-ified
+ treeview menus in its HTML output
+ --enable-optimize ask the compiler for its best optimizations (possibly only i386)
+ --enable-debug disable optimizations
+ --enable-pch enable precompiled headers (gcc 3.4 required)
+ --enable-arch=ARCH use -march=ARCH and -mtune=ARCH argument to CXX
+ choose from any supported gcc architecture such as:
+ 386, 486, 586, 686, pentium, pentiumpro, k6, athlon...
+ --enable-sse enable SSE optimizations
+ --enable-vst (deprecated, use dssi) build VST/win support. (disabled by default)
+ --enable-osc build OSC support. (disabled by default)
+ --enable-dssi is also recommended!
+ --enable-dssi build DSSI + DSSI-Vst support. (disabled by default)
+ --enable-osc is also recommended!
+
+Optional Packages:
+ --with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
+ --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
+ --with-pic try to use only PIC/non-PIC objects @<:@default=use
+ both@:>@
+ --with-gnu-ld assume the C compiler uses GNU ld @<:@default=no@:>@
+ --with-docbook-stylesheets=DIR use DIR/html/docbook.dsl
+ --with-x use the X Window System
+ --with-qt-prefix=PFX where the root of Qt is installed
+ --with-qt-includes=DIR where the Qt includes are installed
+ --with-qt-libraries=DIR where the Qt libraries are installed.
+ --with-qt-binaries=DIR where the Qt binaries are installed.
+ --with-qt-moc=PROG where the Qt meta object compiler is installed.
+ --with-qt-uic=PROG where the Qt user interface compiler is installed.
+ --with-alsa-prefix=PFX prefix where alsa library is installed (optional)
+ --with-alsa-inc-prefix=PFX prefix where include libraries are (optional)
+ --enable-python Build python bindings (on)
+
+Some influential environment variables:
+ CXX C++ compiler command
+ CXXFLAGS C++ compiler flags
+ LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries in a
+ nonstandard directory <lib dir>
+ LIBS libraries to pass to the linker, e.g. -l<library>
+ CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if
+ you have headers in a nonstandard directory <include dir>
+ CC C compiler command
+ CFLAGS C compiler flags
+ CPP C preprocessor
+ CXXCPP C++ preprocessor
+ DOXYGEN Doxygen
+ DOT The "dot" program from graphviz
+ PERL Perl
+ XMKMF Path to xmkmf, Makefile generator for X Window System
+ PKG_CONFIG path to pkg-config utility
+ Fluidsynth_CFLAGS
+ C compiler flags for Fluidsynth, overriding pkg-config
+ Fluidsynth_LIBS
+ linker flags for Fluidsynth, overriding pkg-config
+ SNDFILE_CFLAGS
+ C compiler flags for SNDFILE, overriding pkg-config
+ SNDFILE_LIBS
+ linker flags for SNDFILE, overriding pkg-config
+ SAMPLERATE_CFLAGS
+ C compiler flags for SAMPLERATE, overriding pkg-config
+ SAMPLERATE_LIBS
+ linker flags for SAMPLERATE, overriding pkg-config
+ JACK_CFLAGS C compiler flags for JACK, overriding pkg-config
+ JACK_LIBS linker flags for JACK, overriding pkg-config
+ LASH_CFLAGS C compiler flags for LASH, overriding pkg-config
+ LASH_LIBS linker flags for LASH, overriding pkg-config
+ FST_CFLAGS C compiler flags for FST, overriding pkg-config
+ FST_LIBS linker flags for FST, overriding pkg-config
+ LO_CFLAGS C compiler flags for LO, overriding pkg-config
+ LO_LIBS linker flags for LO, overriding pkg-config
+
+Use these variables to override the choices made by `configure' or to help
+it to find libraries and programs with nonstandard names/locations.
+
+Report bugs to the package provider.
+_ACEOF
+ac_status=$?
+fi
+
+if test "$ac_init_help" = "recursive"; then
+ # If there are subdirs, report their specific --help.
+ for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
+ test -d "$ac_dir" ||
+ { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } ||
+ continue
+ ac_builddir=.
+
+case "$ac_dir" in
+.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
+*)
+ ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
+ # A ".." for each directory in $ac_dir_suffix.
+ ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
+ case $ac_top_builddir_sub in
+ "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
+ *) ac_top_build_prefix=$ac_top_builddir_sub/ ;;
+ esac ;;
+esac
+ac_abs_top_builddir=$ac_pwd
+ac_abs_builddir=$ac_pwd$ac_dir_suffix
+# for backward compatibility:
+ac_top_builddir=$ac_top_build_prefix
+
+case $srcdir in
+ .) # We are building in place.
+ ac_srcdir=.
+ ac_top_srcdir=$ac_top_builddir_sub
+ ac_abs_top_srcdir=$ac_pwd ;;
+ [\\/]* | ?:[\\/]* ) # Absolute name.
+ ac_srcdir=$srcdir$ac_dir_suffix;
+ ac_top_srcdir=$srcdir
+ ac_abs_top_srcdir=$srcdir ;;
+ *) # Relative name.
+ ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
+ ac_top_srcdir=$ac_top_build_prefix$srcdir
+ ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
+esac
+ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
+
+ cd "$ac_dir" || { ac_status=$?; continue; }
+ # Check for guested configure.
+ if test -f "$ac_srcdir/configure.gnu"; then
+ echo &&
+ $SHELL "$ac_srcdir/configure.gnu" --help=recursive
+ elif test -f "$ac_srcdir/configure"; then
+ echo &&
+ $SHELL "$ac_srcdir/configure" --help=recursive
+ else
+ $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
+ fi || ac_status=$?
+ cd "$ac_pwd" || { ac_status=$?; break; }
+ done
+fi
+
+test -n "$ac_init_help" && exit $ac_status
+if $ac_init_version; then
+ cat <<\_ACEOF
+MusE configure 1.1
+generated by GNU Autoconf 2.65
+
+Copyright (C) 2009 Free Software Foundation, Inc.
+This configure script is free software; the Free Software Foundation
+gives unlimited permission to copy, distribute and modify it.
+_ACEOF
+ exit
+fi
+
+## ------------------------ ##
+## Autoconf initialization. ##
+## ------------------------ ##
+
+@%:@ ac_fn_cxx_try_compile LINENO
+@%:@ ----------------------------
+@%:@ Try to compile conftest.@S|@ac_ext, and return whether this succeeded.
+ac_fn_cxx_try_compile ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ rm -f conftest.$ac_objext
+ if { { ac_try="$ac_compile"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_compile") 2>conftest.err
+ ac_status=$?
+ if test -s conftest.err; then
+ grep -v '^ *+' conftest.err >conftest.er1
+ cat conftest.er1 >&5
+ mv -f conftest.er1 conftest.err
+ fi
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && {
+ test -z "$ac_cxx_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest.$ac_objext; then :
+ ac_retval=0
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_retval=1
+fi
+ eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+ as_fn_set_status $ac_retval
+
+} @%:@ ac_fn_cxx_try_compile
+
+@%:@ ac_fn_c_try_compile LINENO
+@%:@ --------------------------
+@%:@ Try to compile conftest.@S|@ac_ext, and return whether this succeeded.
+ac_fn_c_try_compile ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ rm -f conftest.$ac_objext
+ if { { ac_try="$ac_compile"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_compile") 2>conftest.err
+ ac_status=$?
+ if test -s conftest.err; then
+ grep -v '^ *+' conftest.err >conftest.er1
+ cat conftest.er1 >&5
+ mv -f conftest.er1 conftest.err
+ fi
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && {
+ test -z "$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest.$ac_objext; then :
+ ac_retval=0
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_retval=1
+fi
+ eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+ as_fn_set_status $ac_retval
+
+} @%:@ ac_fn_c_try_compile
+
+@%:@ ac_fn_c_try_link LINENO
+@%:@ -----------------------
+@%:@ Try to link conftest.@S|@ac_ext, and return whether this succeeded.
+ac_fn_c_try_link ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ rm -f conftest.$ac_objext conftest$ac_exeext
+ if { { ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_link") 2>conftest.err
+ ac_status=$?
+ if test -s conftest.err; then
+ grep -v '^ *+' conftest.err >conftest.er1
+ cat conftest.er1 >&5
+ mv -f conftest.er1 conftest.err
+ fi
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && {
+ test -z "$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest$ac_exeext && {
+ test "$cross_compiling" = yes ||
+ $as_test_x conftest$ac_exeext
+ }; then :
+ ac_retval=0
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_retval=1
+fi
+ # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information
+ # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would
+ # interfere with the next link command; also delete a directory that is
+ # left behind by Apple's compiler. We do this before executing the actions.
+ rm -rf conftest.dSYM conftest_ipa8_conftest.oo
+ eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+ as_fn_set_status $ac_retval
+
+} @%:@ ac_fn_c_try_link
+
+@%:@ ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES
+@%:@ -------------------------------------------------------
+@%:@ Tests whether HEADER exists and can be compiled using the include files in
+@%:@ INCLUDES, setting the cache variable VAR accordingly.
+ac_fn_c_check_header_compile ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$4
+@%:@include <$2>
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ eval "$3=yes"
+else
+ eval "$3=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$3
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+ eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+
+} @%:@ ac_fn_c_check_header_compile
+
+@%:@ ac_fn_c_try_cpp LINENO
+@%:@ ----------------------
+@%:@ Try to preprocess conftest.@S|@ac_ext, and return whether this succeeded.
+ac_fn_c_try_cpp ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ if { { ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err
+ ac_status=$?
+ if test -s conftest.err; then
+ grep -v '^ *+' conftest.err >conftest.er1
+ cat conftest.er1 >&5
+ mv -f conftest.er1 conftest.err
+ fi
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } >/dev/null && {
+ test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ }; then :
+ ac_retval=0
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_retval=1
+fi
+ eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+ as_fn_set_status $ac_retval
+
+} @%:@ ac_fn_c_try_cpp
+
+@%:@ ac_fn_c_try_run LINENO
+@%:@ ----------------------
+@%:@ Try to link conftest.@S|@ac_ext, and return whether this succeeded. Assumes
+@%:@ that executables *can* be run.
+ac_fn_c_try_run ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ if { { ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_link") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && { ac_try='./conftest$ac_exeext'
+ { { case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_try") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; }; then :
+ ac_retval=0
+else
+ $as_echo "$as_me: program exited with status $ac_status" >&5
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_retval=$ac_status
+fi
+ rm -rf conftest.dSYM conftest_ipa8_conftest.oo
+ eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+ as_fn_set_status $ac_retval
+
+} @%:@ ac_fn_c_try_run
+
+@%:@ ac_fn_c_check_func LINENO FUNC VAR
+@%:@ ----------------------------------
+@%:@ Tests whether FUNC exists, setting the cache variable VAR accordingly
+ac_fn_c_check_func ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+/* Define $2 to an innocuous variant, in case <limits.h> declares $2.
+ For example, HP-UX 11i <limits.h> declares gettimeofday. */
+#define $2 innocuous_$2
+
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char $2 (); below.
+ Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ <limits.h> exists even on freestanding compilers. */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef $2
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char $2 ();
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined __stub_$2 || defined __stub___$2
+choke me
+#endif
+
+int
+main ()
+{
+return $2 ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ eval "$3=yes"
+else
+ eval "$3=no"
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+fi
+eval ac_res=\$$3
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+ eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+
+} @%:@ ac_fn_c_check_func
+
+@%:@ ac_fn_cxx_try_cpp LINENO
+@%:@ ------------------------
+@%:@ Try to preprocess conftest.@S|@ac_ext, and return whether this succeeded.
+ac_fn_cxx_try_cpp ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ if { { ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err
+ ac_status=$?
+ if test -s conftest.err; then
+ grep -v '^ *+' conftest.err >conftest.er1
+ cat conftest.er1 >&5
+ mv -f conftest.er1 conftest.err
+ fi
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } >/dev/null && {
+ test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" ||
+ test ! -s conftest.err
+ }; then :
+ ac_retval=0
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_retval=1
+fi
+ eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+ as_fn_set_status $ac_retval
+
+} @%:@ ac_fn_cxx_try_cpp
+
+@%:@ ac_fn_cxx_try_link LINENO
+@%:@ -------------------------
+@%:@ Try to link conftest.@S|@ac_ext, and return whether this succeeded.
+ac_fn_cxx_try_link ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ rm -f conftest.$ac_objext conftest$ac_exeext
+ if { { ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_link") 2>conftest.err
+ ac_status=$?
+ if test -s conftest.err; then
+ grep -v '^ *+' conftest.err >conftest.er1
+ cat conftest.er1 >&5
+ mv -f conftest.er1 conftest.err
+ fi
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && {
+ test -z "$ac_cxx_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest$ac_exeext && {
+ test "$cross_compiling" = yes ||
+ $as_test_x conftest$ac_exeext
+ }; then :
+ ac_retval=0
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_retval=1
+fi
+ # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information
+ # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would
+ # interfere with the next link command; also delete a directory that is
+ # left behind by Apple's compiler. We do this before executing the actions.
+ rm -rf conftest.dSYM conftest_ipa8_conftest.oo
+ eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+ as_fn_set_status $ac_retval
+
+} @%:@ ac_fn_cxx_try_link
+
+@%:@ ac_fn_cxx_try_run LINENO
+@%:@ ------------------------
+@%:@ Try to link conftest.@S|@ac_ext, and return whether this succeeded. Assumes
+@%:@ that executables *can* be run.
+ac_fn_cxx_try_run ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ if { { ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_link") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && { ac_try='./conftest$ac_exeext'
+ { { case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_try") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; }; then :
+ ac_retval=0
+else
+ $as_echo "$as_me: program exited with status $ac_status" >&5
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_retval=$ac_status
+fi
+ rm -rf conftest.dSYM conftest_ipa8_conftest.oo
+ eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+ as_fn_set_status $ac_retval
+
+} @%:@ ac_fn_cxx_try_run
+
+@%:@ ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES
+@%:@ -------------------------------------------------------
+@%:@ Tests whether HEADER exists, giving a warning if it cannot be compiled using
+@%:@ the include files in INCLUDES and setting the cache variable VAR
+@%:@ accordingly.
+ac_fn_c_check_header_mongrel ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
+ $as_echo_n "(cached) " >&6
+fi
+eval ac_res=\$$3
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+else
+ # Is the header compilable?
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5
+$as_echo_n "checking $2 usability... " >&6; }
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$4
+@%:@include <$2>
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_header_compiler=yes
+else
+ ac_header_compiler=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5
+$as_echo "$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5
+$as_echo_n "checking $2 presence... " >&6; }
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+@%:@include <$2>
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+ ac_header_preproc=yes
+else
+ ac_header_preproc=no
+fi
+rm -f conftest.err conftest.$ac_ext
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5
+$as_echo "$ac_header_preproc" >&6; }
+
+# So? What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #((
+ yes:no: )
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5
+$as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
+$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
+ ;;
+ no:yes:* )
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5
+$as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5
+$as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5
+$as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5
+$as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
+$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
+ ;;
+esac
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
+ $as_echo_n "(cached) " >&6
+else
+ eval "$3=\$ac_header_compiler"
+fi
+eval ac_res=\$$3
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+fi
+ eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+
+} @%:@ ac_fn_c_check_header_mongrel
+cat >config.log <<_ACEOF
+This file contains any messages produced by compilers while
+running configure, to aid debugging if configure makes a mistake.
+
+It was created by MusE $as_me 1.1, which was
+generated by GNU Autoconf 2.65. Invocation command line was
+
+ $ $0 $@
+
+_ACEOF
+exec 5>>config.log
+{
+cat <<_ASUNAME
+## --------- ##
+## Platform. ##
+## --------- ##
+
+hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
+uname -m = `(uname -m) 2>/dev/null || echo unknown`
+uname -r = `(uname -r) 2>/dev/null || echo unknown`
+uname -s = `(uname -s) 2>/dev/null || echo unknown`
+uname -v = `(uname -v) 2>/dev/null || echo unknown`
+
+/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
+/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown`
+
+/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown`
+/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown`
+/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
+/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown`
+/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown`
+/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown`
+/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown`
+
+_ASUNAME
+
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ $as_echo "PATH: $as_dir"
+ done
+IFS=$as_save_IFS
+
+} >&5
+
+cat >&5 <<_ACEOF
+
+
+## ----------- ##
+## Core tests. ##
+## ----------- ##
+
+_ACEOF
+
+
+# Keep a trace of the command line.
+# Strip out --no-create and --no-recursion so they do not pile up.
+# Strip out --silent because we don't want to record it for future runs.
+# Also quote any args containing shell meta-characters.
+# Make two passes to allow for proper duplicate-argument suppression.
+ac_configure_args=
+ac_configure_args0=
+ac_configure_args1=
+ac_must_keep_next=false
+for ac_pass in 1 2
+do
+ for ac_arg
+ do
+ case $ac_arg in
+ -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;
+ -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+ | -silent | --silent | --silen | --sile | --sil)
+ continue ;;
+ *\'*)
+ ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
+ esac
+ case $ac_pass in
+ 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;;
+ 2)
+ as_fn_append ac_configure_args1 " '$ac_arg'"
+ if test $ac_must_keep_next = true; then
+ ac_must_keep_next=false # Got value, back to normal.
+ else
+ case $ac_arg in
+ *=* | --config-cache | -C | -disable-* | --disable-* \
+ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
+ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
+ | -with-* | --with-* | -without-* | --without-* | --x)
+ case "$ac_configure_args0 " in
+ "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
+ esac
+ ;;
+ -* ) ac_must_keep_next=true ;;
+ esac
+ fi
+ as_fn_append ac_configure_args " '$ac_arg'"
+ ;;
+ esac
+ done
+done
+{ ac_configure_args0=; unset ac_configure_args0;}
+{ ac_configure_args1=; unset ac_configure_args1;}
+
+# When interrupted or exit'd, cleanup temporary files, and complete
+# config.log. We remove comments because anyway the quotes in there
+# would cause problems or look ugly.
+# WARNING: Use '\'' to represent an apostrophe within the trap.
+# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug.
+trap 'exit_status=$?
+ # Save into config.log some information that might help in debugging.
+ {
+ echo
+
+ cat <<\_ASBOX
+## ---------------- ##
+## Cache variables. ##
+## ---------------- ##
+_ASBOX
+ echo
+ # The following way of writing the cache mishandles newlines in values,
+(
+ for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do
+ eval ac_val=\$$ac_var
+ case $ac_val in #(
+ *${as_nl}*)
+ case $ac_var in #(
+ *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
+$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
+ esac
+ case $ac_var in #(
+ _ | IFS | as_nl) ;; #(
+ BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
+ *) { eval $ac_var=; unset $ac_var;} ;;
+ esac ;;
+ esac
+ done
+ (set) 2>&1 |
+ case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #(
+ *${as_nl}ac_space=\ *)
+ sed -n \
+ "s/'\''/'\''\\\\'\'''\''/g;
+ s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p"
+ ;; #(
+ *)
+ sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
+ ;;
+ esac |
+ sort
+)
+ echo
+
+ cat <<\_ASBOX
+## ----------------- ##
+## Output variables. ##
+## ----------------- ##
+_ASBOX
+ echo
+ for ac_var in $ac_subst_vars
+ do
+ eval ac_val=\$$ac_var
+ case $ac_val in
+ *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
+ esac
+ $as_echo "$ac_var='\''$ac_val'\''"
+ done | sort
+ echo
+
+ if test -n "$ac_subst_files"; then
+ cat <<\_ASBOX
+## ------------------- ##
+## File substitutions. ##
+## ------------------- ##
+_ASBOX
+ echo
+ for ac_var in $ac_subst_files
+ do
+ eval ac_val=\$$ac_var
+ case $ac_val in
+ *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
+ esac
+ $as_echo "$ac_var='\''$ac_val'\''"
+ done | sort
+ echo
+ fi
+
+ if test -s confdefs.h; then
+ cat <<\_ASBOX
+## ----------- ##
+## confdefs.h. ##
+## ----------- ##
+_ASBOX
+ echo
+ cat confdefs.h
+ echo
+ fi
+ test "$ac_signal" != 0 &&
+ $as_echo "$as_me: caught signal $ac_signal"
+ $as_echo "$as_me: exit $exit_status"
+ } >&5
+ rm -f core *.core core.conftest.* &&
+ rm -f -r conftest* confdefs* conf$$* $ac_clean_files &&
+ exit $exit_status
+' 0
+for ac_signal in 1 2 13 15; do
+ trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal
+done
+ac_signal=0
+
+# confdefs.h avoids OS command line length limits that DEFS can exceed.
+rm -f -r conftest* confdefs.h
+
+$as_echo "/* confdefs.h */" > confdefs.h
+
+# Predefined preprocessor variables.
+
+cat >>confdefs.h <<_ACEOF
+@%:@define PACKAGE_NAME "$PACKAGE_NAME"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+@%:@define PACKAGE_TARNAME "$PACKAGE_TARNAME"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+@%:@define PACKAGE_VERSION "$PACKAGE_VERSION"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+@%:@define PACKAGE_STRING "$PACKAGE_STRING"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+@%:@define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+@%:@define PACKAGE_URL "$PACKAGE_URL"
+_ACEOF
+
+
+# Let the site file select an alternate cache file if it wants to.
+# Prefer an explicitly selected file to automatically selected ones.
+ac_site_file1=NONE
+ac_site_file2=NONE
+if test -n "$CONFIG_SITE"; then
+ ac_site_file1=$CONFIG_SITE
+elif test "x$prefix" != xNONE; then
+ ac_site_file1=$prefix/share/config.site
+ ac_site_file2=$prefix/etc/config.site
+else
+ ac_site_file1=$ac_default_prefix/share/config.site
+ ac_site_file2=$ac_default_prefix/etc/config.site
+fi
+for ac_site_file in "$ac_site_file1" "$ac_site_file2"
+do
+ test "x$ac_site_file" = xNONE && continue
+ if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5
+$as_echo "$as_me: loading site script $ac_site_file" >&6;}
+ sed 's/^/| /' "$ac_site_file" >&5
+ . "$ac_site_file"
+ fi
+done
+
+if test -r "$cache_file"; then
+ # Some versions of bash will fail to source /dev/null (special files
+ # actually), so we avoid doing that. DJGPP emulates it as a regular file.
+ if test /dev/null != "$cache_file" && test -f "$cache_file"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5
+$as_echo "$as_me: loading cache $cache_file" >&6;}
+ case $cache_file in
+ [\\/]* | ?:[\\/]* ) . "$cache_file";;
+ *) . "./$cache_file";;
+ esac
+ fi
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5
+$as_echo "$as_me: creating cache $cache_file" >&6;}
+ >$cache_file
+fi
+
+# Check that the precious variables saved in the cache have kept the same
+# value.
+ac_cache_corrupted=false
+for ac_var in $ac_precious_vars; do
+ eval ac_old_set=\$ac_cv_env_${ac_var}_set
+ eval ac_new_set=\$ac_env_${ac_var}_set
+ eval ac_old_val=\$ac_cv_env_${ac_var}_value
+ eval ac_new_val=\$ac_env_${ac_var}_value
+ case $ac_old_set,$ac_new_set in
+ set,)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
+$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
+ ac_cache_corrupted=: ;;
+ ,set)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5
+$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
+ ac_cache_corrupted=: ;;
+ ,);;
+ *)
+ if test "x$ac_old_val" != "x$ac_new_val"; then
+ # differences in whitespace do not lead to failure.
+ ac_old_val_w=`echo x $ac_old_val`
+ ac_new_val_w=`echo x $ac_new_val`
+ if test "$ac_old_val_w" != "$ac_new_val_w"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5
+$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
+ ac_cache_corrupted=:
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5
+$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;}
+ eval $ac_var=\$ac_old_val
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5
+$as_echo "$as_me: former value: \`$ac_old_val'" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5
+$as_echo "$as_me: current value: \`$ac_new_val'" >&2;}
+ fi;;
+ esac
+ # Pass precious variables to config.status.
+ if test "$ac_new_set" = set; then
+ case $ac_new_val in
+ *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
+ *) ac_arg=$ac_var=$ac_new_val ;;
+ esac
+ case " $ac_configure_args " in
+ *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy.
+ *) as_fn_append ac_configure_args " '$ac_arg'" ;;
+ esac
+ fi
+done
+if $ac_cache_corrupted; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5
+$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;}
+ as_fn_error "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5
+fi
+## -------------------- ##
+## Main body of script. ##
+## -------------------- ##
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+
+am__api_version='1.11'
+
+ac_aux_dir=
+for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do
+ for ac_t in install-sh install.sh shtool; do
+ if test -f "$ac_dir/$ac_t"; then
+ ac_aux_dir=$ac_dir
+ ac_install_sh="$ac_aux_dir/$ac_t -c"
+ break 2
+ fi
+ done
+done
+if test -z "$ac_aux_dir"; then
+ as_fn_error "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5
+fi
+
+# These three variables are undocumented and unsupported,
+# and are intended to be withdrawn in a future Autoconf release.
+# They can cause serious problems if a builder's source tree is in a directory
+# whose full name contains unusual characters.
+ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var.
+ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var.
+ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var.
+
+
+# Find a good install program. We prefer a C program (faster),
+# so one script is as good as another. But avoid the broken or
+# incompatible versions:
+# SysV /etc/install, /usr/sbin/install
+# SunOS /usr/etc/install
+# IRIX /sbin/install
+# AIX /bin/install
+# AmigaOS /C/install, which installs bootblocks on floppy discs
+# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
+# AFS /usr/afsws/bin/install, which mishandles nonexistent args
+# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
+# OS/2's system install, which has a completely different semantic
+# ./install, which can be erroneously created by make from ./install.sh.
+# Reject install programs that cannot install multiple files.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5
+$as_echo_n "checking for a BSD-compatible install... " >&6; }
+if test -z "$INSTALL"; then
+if test "${ac_cv_path_install+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ # Account for people who put trailing slashes in PATH elements.
+case $as_dir/ in @%:@((
+ ./ | .// | /[cC]/* | \
+ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
+ ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \
+ /usr/ucb/* ) ;;
+ *)
+ # OSF1 and SCO ODT 3.0 have their own names for install.
+ # Don't use installbsd from OSF since it installs stuff as root
+ # by default.
+ for ac_prog in ginstall scoinst install; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then
+ if test $ac_prog = install &&
+ grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
+ # AIX install. It has an incompatible calling convention.
+ :
+ elif test $ac_prog = install &&
+ grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
+ # program-specific install script used by HP pwplus--don't use.
+ :
+ else
+ rm -rf conftest.one conftest.two conftest.dir
+ echo one > conftest.one
+ echo two > conftest.two
+ mkdir conftest.dir
+ if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" &&
+ test -s conftest.one && test -s conftest.two &&
+ test -s conftest.dir/conftest.one &&
+ test -s conftest.dir/conftest.two
+ then
+ ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
+ break 3
+ fi
+ fi
+ fi
+ done
+ done
+ ;;
+esac
+
+ done
+IFS=$as_save_IFS
+
+rm -rf conftest.one conftest.two conftest.dir
+
+fi
+ if test "${ac_cv_path_install+set}" = set; then
+ INSTALL=$ac_cv_path_install
+ else
+ # As a last resort, use the slow shell script. Don't cache a
+ # value for INSTALL within a source directory, because that will
+ # break other packages using the cache if that directory is
+ # removed, or if the value is a relative name.
+ INSTALL=$ac_install_sh
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5
+$as_echo "$INSTALL" >&6; }
+
+# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
+# It thinks the first close brace ends the variable substitution.
+test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
+
+test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
+
+test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5
+$as_echo_n "checking whether build environment is sane... " >&6; }
+# Just in case
+sleep 1
+echo timestamp > conftest.file
+# Reject unsafe characters in $srcdir or the absolute working directory
+# name. Accept space and tab only in the latter.
+am_lf='
+'
+case `pwd` in
+ *[\\\"\#\$\&\'\`$am_lf]*)
+ as_fn_error "unsafe absolute working directory name" "$LINENO" 5;;
+esac
+case $srcdir in
+ *[\\\"\#\$\&\'\`$am_lf\ \ ]*)
+ as_fn_error "unsafe srcdir value: \`$srcdir'" "$LINENO" 5;;
+esac
+
+# Do `set' in a subshell so we don't clobber the current shell's
+# arguments. Must try -L first in case configure is actually a
+# symlink; some systems play weird games with the mod time of symlinks
+# (eg FreeBSD returns the mod time of the symlink's containing
+# directory).
+if (
+ set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
+ if test "$*" = "X"; then
+ # -L didn't work.
+ set X `ls -t "$srcdir/configure" conftest.file`
+ fi
+ rm -f conftest.file
+ if test "$*" != "X $srcdir/configure conftest.file" \
+ && test "$*" != "X conftest.file $srcdir/configure"; then
+
+ # If neither matched, then we have a broken ls. This can happen
+ # if, for instance, CONFIG_SHELL is bash and it inherits a
+ # broken ls alias from the environment. This has actually
+ # happened. Such a system could not be considered "sane".
+ as_fn_error "ls -t appears to fail. Make sure there is not a broken
+alias in your environment" "$LINENO" 5
+ fi
+
+ test "$2" = conftest.file
+ )
+then
+ # Ok.
+ :
+else
+ as_fn_error "newly created file is older than distributed files!
+Check your system clock" "$LINENO" 5
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+test "$program_prefix" != NONE &&
+ program_transform_name="s&^&$program_prefix&;$program_transform_name"
+# Use a double $ so make ignores it.
+test "$program_suffix" != NONE &&
+ program_transform_name="s&\$&$program_suffix&;$program_transform_name"
+# Double any \ or $.
+# By default was `s,x,x', remove it if useless.
+ac_script='s/[\\$]/&&/g;s/;s,x,x,$//'
+program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"`
+
+# expand $ac_aux_dir to an absolute path
+am_aux_dir=`cd $ac_aux_dir && pwd`
+
+if test x"${MISSING+set}" != xset; then
+ case $am_aux_dir in
+ *\ * | *\ *)
+ MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;;
+ *)
+ MISSING="\${SHELL} $am_aux_dir/missing" ;;
+ esac
+fi
+# Use eval to expand $SHELL
+if eval "$MISSING --run true"; then
+ am_missing_run="$MISSING --run "
+else
+ am_missing_run=
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`missing' script is too old or missing" >&5
+$as_echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;}
+fi
+
+if test x"${install_sh}" != xset; then
+ case $am_aux_dir in
+ *\ * | *\ *)
+ install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;;
+ *)
+ install_sh="\${SHELL} $am_aux_dir/install-sh"
+ esac
+fi
+
+# Installed binaries are usually stripped using `strip' when the user
+# run `make install-strip'. However `strip' might not be the right
+# tool to use in cross-compilation environments, therefore Automake
+# will honor the `STRIP' environment variable to overrule this program.
+if test "$cross_compiling" != no; then
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
+set dummy ${ac_tool_prefix}strip; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_STRIP+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$STRIP"; then
+ ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_STRIP="${ac_tool_prefix}strip"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+STRIP=$ac_cv_prog_STRIP
+if test -n "$STRIP"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5
+$as_echo "$STRIP" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_STRIP"; then
+ ac_ct_STRIP=$STRIP
+ # Extract the first word of "strip", so it can be a program name with args.
+set dummy strip; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_STRIP"; then
+ ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_ac_ct_STRIP="strip"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
+if test -n "$ac_ct_STRIP"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5
+$as_echo "$ac_ct_STRIP" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_STRIP" = x; then
+ STRIP=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ STRIP=$ac_ct_STRIP
+ fi
+else
+ STRIP="$ac_cv_prog_STRIP"
+fi
+
+fi
+INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5
+$as_echo_n "checking for a thread-safe mkdir -p... " >&6; }
+if test -z "$MKDIR_P"; then
+ if test "${ac_cv_path_mkdir+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_prog in mkdir gmkdir; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; } || continue
+ case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #(
+ 'mkdir (GNU coreutils) '* | \
+ 'mkdir (coreutils) '* | \
+ 'mkdir (fileutils) '4.1*)
+ ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext
+ break 3;;
+ esac
+ done
+ done
+ done
+IFS=$as_save_IFS
+
+fi
+
+ test -d ./--version && rmdir ./--version
+ if test "${ac_cv_path_mkdir+set}" = set; then
+ MKDIR_P="$ac_cv_path_mkdir -p"
+ else
+ # As a last resort, use the slow shell script. Don't cache a
+ # value for MKDIR_P within a source directory, because that will
+ # break other packages using the cache if that directory is
+ # removed, or if the value is a relative name.
+ MKDIR_P="$ac_install_sh -d"
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5
+$as_echo "$MKDIR_P" >&6; }
+
+mkdir_p="$MKDIR_P"
+case $mkdir_p in
+ [\\/$]* | ?:[\\/]*) ;;
+ */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;;
+esac
+
+for ac_prog in gawk mawk nawk awk
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_AWK+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$AWK"; then
+ ac_cv_prog_AWK="$AWK" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_AWK="$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+AWK=$ac_cv_prog_AWK
+if test -n "$AWK"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5
+$as_echo "$AWK" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$AWK" && break
+done
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5
+$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
+set x ${MAKE-make}
+ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
+if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat >conftest.make <<\_ACEOF
+SHELL = /bin/sh
+all:
+ @echo '@@@%%%=$(MAKE)=@@@%%%'
+_ACEOF
+# GNU make sometimes prints "make[1]: Entering...", which would confuse us.
+case `${MAKE-make} -f conftest.make 2>/dev/null` in
+ *@@@%%%=?*=@@@%%%*)
+ eval ac_cv_prog_make_${ac_make}_set=yes;;
+ *)
+ eval ac_cv_prog_make_${ac_make}_set=no;;
+esac
+rm -f conftest.make
+fi
+if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ SET_MAKE=
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ SET_MAKE="MAKE=${MAKE-make}"
+fi
+
+rm -rf .tst 2>/dev/null
+mkdir .tst 2>/dev/null
+if test -d .tst; then
+ am__leading_dot=.
+else
+ am__leading_dot=_
+fi
+rmdir .tst 2>/dev/null
+
+if test "`cd $srcdir && pwd`" != "`pwd`"; then
+ # Use -I$(srcdir) only when $(srcdir) != ., so that make's output
+ # is not polluted with repeated "-I."
+ am__isrc=' -I$(srcdir)'
+ # test to see if srcdir already configured
+ if test -f $srcdir/config.status; then
+ as_fn_error "source directory already configured; run \"make distclean\" there first" "$LINENO" 5
+ fi
+fi
+
+# test whether we have cygpath
+if test -z "$CYGPATH_W"; then
+ if (cygpath --version) >/dev/null 2>/dev/null; then
+ CYGPATH_W='cygpath -w'
+ else
+ CYGPATH_W=echo
+ fi
+fi
+
+
+# Define the identity of the package.
+ PACKAGE='muse'
+ VERSION='1.1'
+
+
+cat >>confdefs.h <<_ACEOF
+@%:@define PACKAGE "$PACKAGE"
+_ACEOF
+
+
+cat >>confdefs.h <<_ACEOF
+@%:@define VERSION "$VERSION"
+_ACEOF
+
+# Some tools Automake needs.
+
+ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"}
+
+
+AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"}
+
+
+AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"}
+
+
+AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"}
+
+
+MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"}
+
+# We need awk for the "check" target. The system "awk" is bad on
+# some platforms.
+# Always define AMTAR for backward compatibility.
+
+AMTAR=${AMTAR-"${am_missing_run}tar"}
+
+am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'
+
+
+
+
+
+ac_config_headers="$ac_config_headers config.h"
+
+### AM_MAINTAINER_MODE
+
+ if test x = y; then
+ INSIDE_GNOME_COMMON_TRUE=
+ INSIDE_GNOME_COMMON_FALSE='#'
+else
+ INSIDE_GNOME_COMMON_TRUE='#'
+ INSIDE_GNOME_COMMON_FALSE=
+fi
+
+
+ test -n "$ACLOCAL_FLAGS" && ACLOCAL="$ACLOCAL $ACLOCAL_FLAGS"
+
+ for k in m4 ; do ACLOCAL="$ACLOCAL -I $k" ; done
+
+
+ac_ext=cpp
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+if test -z "$CXX"; then
+ if test -n "$CCC"; then
+ CXX=$CCC
+ else
+ if test -n "$ac_tool_prefix"; then
+ for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC
+ do
+ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_CXX+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$CXX"; then
+ ac_cv_prog_CXX="$CXX" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_CXX="$ac_tool_prefix$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+CXX=$ac_cv_prog_CXX
+if test -n "$CXX"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXX" >&5
+$as_echo "$CXX" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$CXX" && break
+ done
+fi
+if test -z "$CXX"; then
+ ac_ct_CXX=$CXX
+ for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_CXX"; then
+ ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_ac_ct_CXX="$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_CXX=$ac_cv_prog_ac_ct_CXX
+if test -n "$ac_ct_CXX"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CXX" >&5
+$as_echo "$ac_ct_CXX" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$ac_ct_CXX" && break
+done
+
+ if test "x$ac_ct_CXX" = x; then
+ CXX="g++"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ CXX=$ac_ct_CXX
+ fi
+fi
+
+ fi
+fi
+# Provide some information about the compiler.
+$as_echo "$as_me:${as_lineno-$LINENO}: checking for C++ compiler version" >&5
+set X $ac_compile
+ac_compiler=$2
+for ac_option in --version -v -V -qversion; do
+ { { ac_try="$ac_compiler $ac_option >&5"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_compiler $ac_option >&5") 2>conftest.err
+ ac_status=$?
+ if test -s conftest.err; then
+ sed '10a\
+... rest of stderr output deleted ...
+ 10q' conftest.err >conftest.er1
+ cat conftest.er1 >&5
+ fi
+ rm -f conftest.er1 conftest.err
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+done
+
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+ac_clean_files_save=$ac_clean_files
+ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out"
+# Try to create an executable without -o first, disregard a.out.
+# It will help us diagnose broken compilers, and finding out an intuition
+# of exeext.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C++ compiler works" >&5
+$as_echo_n "checking whether the C++ compiler works... " >&6; }
+ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
+
+# The possible output files:
+ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*"
+
+ac_rmfiles=
+for ac_file in $ac_files
+do
+ case $ac_file in
+ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
+ * ) ac_rmfiles="$ac_rmfiles $ac_file";;
+ esac
+done
+rm -f $ac_rmfiles
+
+if { { ac_try="$ac_link_default"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_link_default") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then :
+ # Autoconf-2.13 could set the ac_cv_exeext variable to `no'.
+# So ignore a value of `no', otherwise this would lead to `EXEEXT = no'
+# in a Makefile. We should not override ac_cv_exeext if it was cached,
+# so that the user can short-circuit this test for compilers unknown to
+# Autoconf.
+for ac_file in $ac_files ''
+do
+ test -f "$ac_file" || continue
+ case $ac_file in
+ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj )
+ ;;
+ [ab].out )
+ # We found the default executable, but exeext='' is most
+ # certainly right.
+ break;;
+ *.* )
+ if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no;
+ then :; else
+ ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
+ fi
+ # We set ac_cv_exeext here because the later test for it is not
+ # safe: cross compilers may not add the suffix if given an `-o'
+ # argument, so we may need to know it at that point already.
+ # Even if this section looks crufty: it has the advantage of
+ # actually working.
+ break;;
+ * )
+ break;;
+ esac
+done
+test "$ac_cv_exeext" = no && ac_cv_exeext=
+
+else
+ ac_file=''
+fi
+if test -z "$ac_file"; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+$as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+{ as_fn_set_status 77
+as_fn_error "C++ compiler cannot create executables
+See \`config.log' for more details." "$LINENO" 5; }; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C++ compiler default output file name" >&5
+$as_echo_n "checking for C++ compiler default output file name... " >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5
+$as_echo "$ac_file" >&6; }
+ac_exeext=$ac_cv_exeext
+
+rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out
+ac_clean_files=$ac_clean_files_save
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5
+$as_echo_n "checking for suffix of executables... " >&6; }
+if { { ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_link") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then :
+ # If both `conftest.exe' and `conftest' are `present' (well, observable)
+# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will
+# work properly (i.e., refer to `conftest.exe'), while it won't with
+# `rm'.
+for ac_file in conftest.exe conftest conftest.*; do
+ test -f "$ac_file" || continue
+ case $ac_file in
+ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
+ *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
+ break;;
+ * ) break;;
+ esac
+done
+else
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error "cannot compute suffix of executables: cannot compile and link
+See \`config.log' for more details." "$LINENO" 5; }
+fi
+rm -f conftest conftest$ac_cv_exeext
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5
+$as_echo "$ac_cv_exeext" >&6; }
+
+rm -f conftest.$ac_ext
+EXEEXT=$ac_cv_exeext
+ac_exeext=$EXEEXT
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+@%:@include <stdio.h>
+int
+main ()
+{
+FILE *f = fopen ("conftest.out", "w");
+ return ferror (f) || fclose (f) != 0;
+
+ ;
+ return 0;
+}
+_ACEOF
+ac_clean_files="$ac_clean_files conftest.out"
+# Check that the compiler produces executables we can run. If not, either
+# the compiler is broken, or we cross compile.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5
+$as_echo_n "checking whether we are cross compiling... " >&6; }
+if test "$cross_compiling" != yes; then
+ { { ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_link") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+ if { ac_try='./conftest$ac_cv_exeext'
+ { { case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_try") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; }; then
+ cross_compiling=no
+ else
+ if test "$cross_compiling" = maybe; then
+ cross_compiling=yes
+ else
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error "cannot run C++ compiled programs.
+If you meant to cross compile, use \`--host'.
+See \`config.log' for more details." "$LINENO" 5; }
+ fi
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5
+$as_echo "$cross_compiling" >&6; }
+
+rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out
+ac_clean_files=$ac_clean_files_save
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5
+$as_echo_n "checking for suffix of object files... " >&6; }
+if test "${ac_cv_objext+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.o conftest.obj
+if { { ac_try="$ac_compile"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_compile") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then :
+ for ac_file in conftest.o conftest.obj conftest.*; do
+ test -f "$ac_file" || continue;
+ case $ac_file in
+ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;;
+ *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
+ break;;
+ esac
+done
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error "cannot compute suffix of object files: cannot compile
+See \`config.log' for more details." "$LINENO" 5; }
+fi
+rm -f conftest.$ac_cv_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5
+$as_echo "$ac_cv_objext" >&6; }
+OBJEXT=$ac_cv_objext
+ac_objext=$OBJEXT
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C++ compiler" >&5
+$as_echo_n "checking whether we are using the GNU C++ compiler... " >&6; }
+if test "${ac_cv_cxx_compiler_gnu+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+#ifndef __GNUC__
+ choke me
+#endif
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_compile "$LINENO"; then :
+ ac_compiler_gnu=yes
+else
+ ac_compiler_gnu=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ac_cv_cxx_compiler_gnu=$ac_compiler_gnu
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cxx_compiler_gnu" >&5
+$as_echo "$ac_cv_cxx_compiler_gnu" >&6; }
+if test $ac_compiler_gnu = yes; then
+ GXX=yes
+else
+ GXX=
+fi
+ac_test_CXXFLAGS=${CXXFLAGS+set}
+ac_save_CXXFLAGS=$CXXFLAGS
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX accepts -g" >&5
+$as_echo_n "checking whether $CXX accepts -g... " >&6; }
+if test "${ac_cv_prog_cxx_g+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_save_cxx_werror_flag=$ac_cxx_werror_flag
+ ac_cxx_werror_flag=yes
+ ac_cv_prog_cxx_g=no
+ CXXFLAGS="-g"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_compile "$LINENO"; then :
+ ac_cv_prog_cxx_g=yes
+else
+ CXXFLAGS=""
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_compile "$LINENO"; then :
+
+else
+ ac_cxx_werror_flag=$ac_save_cxx_werror_flag
+ CXXFLAGS="-g"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_compile "$LINENO"; then :
+ ac_cv_prog_cxx_g=yes
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ ac_cxx_werror_flag=$ac_save_cxx_werror_flag
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_g" >&5
+$as_echo "$ac_cv_prog_cxx_g" >&6; }
+if test "$ac_test_CXXFLAGS" = set; then
+ CXXFLAGS=$ac_save_CXXFLAGS
+elif test $ac_cv_prog_cxx_g = yes; then
+ if test "$GXX" = yes; then
+ CXXFLAGS="-g -O2"
+ else
+ CXXFLAGS="-g"
+ fi
+else
+ if test "$GXX" = yes; then
+ CXXFLAGS="-O2"
+ else
+ CXXFLAGS=
+ fi
+fi
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+DEPDIR="${am__leading_dot}deps"
+
+ac_config_commands="$ac_config_commands depfiles"
+
+
+am_make=${MAKE-make}
+cat > confinc << 'END'
+am__doit:
+ @echo this is the am__doit target
+.PHONY: am__doit
+END
+# If we don't find an include directive, just comment out the code.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5
+$as_echo_n "checking for style of include used by $am_make... " >&6; }
+am__include="#"
+am__quote=
+_am_result=none
+# First try GNU make style include.
+echo "include confinc" > confmf
+# Ignore all kinds of additional output from `make'.
+case `$am_make -s -f confmf 2> /dev/null` in #(
+*the\ am__doit\ target*)
+ am__include=include
+ am__quote=
+ _am_result=GNU
+ ;;
+esac
+# Now try BSD make style include.
+if test "$am__include" = "#"; then
+ echo '.include "confinc"' > confmf
+ case `$am_make -s -f confmf 2> /dev/null` in #(
+ *the\ am__doit\ target*)
+ am__include=.include
+ am__quote="\""
+ _am_result=BSD
+ ;;
+ esac
+fi
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5
+$as_echo "$_am_result" >&6; }
+rm -f confinc confmf
+
+@%:@ Check whether --enable-dependency-tracking was given.
+if test "${enable_dependency_tracking+set}" = set; then :
+ enableval=$enable_dependency_tracking;
+fi
+
+if test "x$enable_dependency_tracking" != xno; then
+ am_depcomp="$ac_aux_dir/depcomp"
+ AMDEPBACKSLASH='\'
+fi
+ if test "x$enable_dependency_tracking" != xno; then
+ AMDEP_TRUE=
+ AMDEP_FALSE='#'
+else
+ AMDEP_TRUE='#'
+ AMDEP_FALSE=
+fi
+
+
+
+depcc="$CXX" am_compiler_list=
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
+$as_echo_n "checking dependency style of $depcc... " >&6; }
+if test "${am_cv_CXX_dependencies_compiler_type+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
+ # We make a subdir and do the tests there. Otherwise we can end up
+ # making bogus files that we don't know about and never remove. For
+ # instance it was reported that on HP-UX the gcc test will end up
+ # making a dummy file named `D' -- because `-MD' means `put the output
+ # in D'.
+ mkdir conftest.dir
+ # Copy depcomp to subdir because otherwise we won't find it if we're
+ # using a relative directory.
+ cp "$am_depcomp" conftest.dir
+ cd conftest.dir
+ # We will build objects and dependencies in a subdirectory because
+ # it helps to detect inapplicable dependency modes. For instance
+ # both Tru64's cc and ICC support -MD to output dependencies as a
+ # side effect of compilation, but ICC will put the dependencies in
+ # the current directory while Tru64 will put them in the object
+ # directory.
+ mkdir sub
+
+ am_cv_CXX_dependencies_compiler_type=none
+ if test "$am_compiler_list" = ""; then
+ am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
+ fi
+ am__universal=false
+ case " $depcc " in #(
+ *\ -arch\ *\ -arch\ *) am__universal=true ;;
+ esac
+
+ for depmode in $am_compiler_list; do
+ # Setup a source with many dependencies, because some compilers
+ # like to wrap large dependency lists on column 80 (with \), and
+ # we should not choose a depcomp mode which is confused by this.
+ #
+ # We need to recreate these files for each test, as the compiler may
+ # overwrite some of them when testing with obscure command lines.
+ # This happens at least with the AIX C compiler.
+ : > sub/conftest.c
+ for i in 1 2 3 4 5 6; do
+ echo '#include "conftst'$i'.h"' >> sub/conftest.c
+ # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
+ # Solaris 8's {/usr,}/bin/sh.
+ touch sub/conftst$i.h
+ done
+ echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
+
+ # We check with `-c' and `-o' for the sake of the "dashmstdout"
+ # mode. It turns out that the SunPro C++ compiler does not properly
+ # handle `-M -o', and we need to detect this. Also, some Intel
+ # versions had trouble with output in subdirs
+ am__obj=sub/conftest.${OBJEXT-o}
+ am__minus_obj="-o $am__obj"
+ case $depmode in
+ gcc)
+ # This depmode causes a compiler race in universal mode.
+ test "$am__universal" = false || continue
+ ;;
+ nosideeffect)
+ # after this tag, mechanisms are not by side-effect, so they'll
+ # only be used when explicitly requested
+ if test "x$enable_dependency_tracking" = xyes; then
+ continue
+ else
+ break
+ fi
+ ;;
+ msvisualcpp | msvcmsys)
+ # This compiler won't grok `-c -o', but also, the minuso test has
+ # not run yet. These depmodes are late enough in the game, and
+ # so weak that their functioning should not be impacted.
+ am__obj=conftest.${OBJEXT-o}
+ am__minus_obj=
+ ;;
+ none) break ;;
+ esac
+ if depmode=$depmode \
+ source=sub/conftest.c object=$am__obj \
+ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
+ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
+ >/dev/null 2>conftest.err &&
+ grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
+ grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
+ grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
+ ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
+ # icc doesn't choke on unknown options, it will just issue warnings
+ # or remarks (even with -Werror). So we grep stderr for any message
+ # that says an option was ignored or not supported.
+ # When given -MP, icc 7.0 and 7.1 complain thusly:
+ # icc: Command line warning: ignoring option '-M'; no argument required
+ # The diagnosis changed in icc 8.0:
+ # icc: Command line remark: option '-MP' not supported
+ if (grep 'ignoring option' conftest.err ||
+ grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
+ am_cv_CXX_dependencies_compiler_type=$depmode
+ break
+ fi
+ fi
+ done
+
+ cd ..
+ rm -rf conftest.dir
+else
+ am_cv_CXX_dependencies_compiler_type=none
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CXX_dependencies_compiler_type" >&5
+$as_echo "$am_cv_CXX_dependencies_compiler_type" >&6; }
+CXXDEPMODE=depmode=$am_cv_CXX_dependencies_compiler_type
+
+ if
+ test "x$enable_dependency_tracking" != xno \
+ && test "$am_cv_CXX_dependencies_compiler_type" = gcc3; then
+ am__fastdepCXX_TRUE=
+ am__fastdepCXX_FALSE='#'
+else
+ am__fastdepCXX_TRUE='#'
+ am__fastdepCXX_FALSE=
+fi
+
+
+case `pwd` in
+ *\ * | *\ *)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5
+$as_echo "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;;
+esac
+
+
+
+macro_version='2.2.6b'
+macro_revision='1.3017'
+
+
+
+
+
+
+
+
+
+
+
+
+
+ltmain="$ac_aux_dir/ltmain.sh"
+
+# Make sure we can run config.sub.
+$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
+ as_fn_error "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5
+$as_echo_n "checking build system type... " >&6; }
+if test "${ac_cv_build+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_build_alias=$build_alias
+test "x$ac_build_alias" = x &&
+ ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"`
+test "x$ac_build_alias" = x &&
+ as_fn_error "cannot guess build type; you must specify one" "$LINENO" 5
+ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||
+ as_fn_error "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5
+$as_echo "$ac_cv_build" >&6; }
+case $ac_cv_build in
+*-*-*) ;;
+*) as_fn_error "invalid value of canonical build" "$LINENO" 5;;
+esac
+build=$ac_cv_build
+ac_save_IFS=$IFS; IFS='-'
+set x $ac_cv_build
+shift
+build_cpu=$1
+build_vendor=$2
+shift; shift
+# Remember, the first character of IFS is used to create $*,
+# except with old shells:
+build_os=$*
+IFS=$ac_save_IFS
+case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5
+$as_echo_n "checking host system type... " >&6; }
+if test "${ac_cv_host+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "x$host_alias" = x; then
+ ac_cv_host=$ac_cv_build
+else
+ ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` ||
+ as_fn_error "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5
+$as_echo "$ac_cv_host" >&6; }
+case $ac_cv_host in
+*-*-*) ;;
+*) as_fn_error "invalid value of canonical host" "$LINENO" 5;;
+esac
+host=$ac_cv_host
+ac_save_IFS=$IFS; IFS='-'
+set x $ac_cv_host
+shift
+host_cpu=$1
+host_vendor=$2
+shift; shift
+# Remember, the first character of IFS is used to create $*,
+# except with old shells:
+host_os=$*
+IFS=$ac_save_IFS
+case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac
+
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
+set dummy ${ac_tool_prefix}gcc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_CC+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_CC="${ac_tool_prefix}gcc"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_CC"; then
+ ac_ct_CC=$CC
+ # Extract the first word of "gcc", so it can be a program name with args.
+set dummy gcc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_ac_ct_CC+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_CC"; then
+ ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_ac_ct_CC="gcc"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
+$as_echo "$ac_ct_CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_CC" = x; then
+ CC=""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ CC=$ac_ct_CC
+ fi
+else
+ CC="$ac_cv_prog_CC"
+fi
+
+if test -z "$CC"; then
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
+set dummy ${ac_tool_prefix}cc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_CC+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_CC="${ac_tool_prefix}cc"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ fi
+fi
+if test -z "$CC"; then
+ # Extract the first word of "cc", so it can be a program name with args.
+set dummy cc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_CC+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+ ac_prog_rejected=no
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
+ ac_prog_rejected=yes
+ continue
+ fi
+ ac_cv_prog_CC="cc"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+if test $ac_prog_rejected = yes; then
+ # We found a bogon in the path, so make sure we never use it.
+ set dummy $ac_cv_prog_CC
+ shift
+ if test $@%:@ != 0; then
+ # We chose a different compiler from the bogus one.
+ # However, it has the same basename, so the bogon will be chosen
+ # first if we set CC to just the basename; use the full file name.
+ shift
+ ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
+ fi
+fi
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$CC"; then
+ if test -n "$ac_tool_prefix"; then
+ for ac_prog in cl.exe
+ do
+ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_CC+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$CC" && break
+ done
+fi
+if test -z "$CC"; then
+ ac_ct_CC=$CC
+ for ac_prog in cl.exe
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_ac_ct_CC+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_CC"; then
+ ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_ac_ct_CC="$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
+$as_echo "$ac_ct_CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$ac_ct_CC" && break
+done
+
+ if test "x$ac_ct_CC" = x; then
+ CC=""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ CC=$ac_ct_CC
+ fi
+fi
+
+fi
+
+
+test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error "no acceptable C compiler found in \$PATH
+See \`config.log' for more details." "$LINENO" 5; }
+
+# Provide some information about the compiler.
+$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
+set X $ac_compile
+ac_compiler=$2
+for ac_option in --version -v -V -qversion; do
+ { { ac_try="$ac_compiler $ac_option >&5"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_compiler $ac_option >&5") 2>conftest.err
+ ac_status=$?
+ if test -s conftest.err; then
+ sed '10a\
+... rest of stderr output deleted ...
+ 10q' conftest.err >conftest.er1
+ cat conftest.er1 >&5
+ fi
+ rm -f conftest.er1 conftest.err
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+done
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5
+$as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
+if test "${ac_cv_c_compiler_gnu+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+#ifndef __GNUC__
+ choke me
+#endif
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_compiler_gnu=yes
+else
+ ac_compiler_gnu=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ac_cv_c_compiler_gnu=$ac_compiler_gnu
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
+$as_echo "$ac_cv_c_compiler_gnu" >&6; }
+if test $ac_compiler_gnu = yes; then
+ GCC=yes
+else
+ GCC=
+fi
+ac_test_CFLAGS=${CFLAGS+set}
+ac_save_CFLAGS=$CFLAGS
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
+$as_echo_n "checking whether $CC accepts -g... " >&6; }
+if test "${ac_cv_prog_cc_g+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_save_c_werror_flag=$ac_c_werror_flag
+ ac_c_werror_flag=yes
+ ac_cv_prog_cc_g=no
+ CFLAGS="-g"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_prog_cc_g=yes
+else
+ CFLAGS=""
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+
+else
+ ac_c_werror_flag=$ac_save_c_werror_flag
+ CFLAGS="-g"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_prog_cc_g=yes
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ ac_c_werror_flag=$ac_save_c_werror_flag
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
+$as_echo "$ac_cv_prog_cc_g" >&6; }
+if test "$ac_test_CFLAGS" = set; then
+ CFLAGS=$ac_save_CFLAGS
+elif test $ac_cv_prog_cc_g = yes; then
+ if test "$GCC" = yes; then
+ CFLAGS="-g -O2"
+ else
+ CFLAGS="-g"
+ fi
+else
+ if test "$GCC" = yes; then
+ CFLAGS="-O2"
+ else
+ CFLAGS=
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5
+$as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
+if test "${ac_cv_prog_cc_c89+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_cv_prog_cc_c89=no
+ac_save_CC=$CC
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdarg.h>
+#include <stdio.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
+struct buf { int x; };
+FILE * (*rcsopen) (struct buf *, struct stat *, int);
+static char *e (p, i)
+ char **p;
+ int i;
+{
+ return p[i];
+}
+static char *f (char * (*g) (char **, int), char **p, ...)
+{
+ char *s;
+ va_list v;
+ va_start (v,p);
+ s = g (p, va_arg (v,int));
+ va_end (v);
+ return s;
+}
+
+/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has
+ function prototypes and stuff, but not '\xHH' hex character constants.
+ These don't provoke an error unfortunately, instead are silently treated
+ as 'x'. The following induces an error, until -std is added to get
+ proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an
+ array size at least. It's necessary to write '\x00'==0 to get something
+ that's true only with -std. */
+int osf4_cc_array ['\x00' == 0 ? 1 : -1];
+
+/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
+ inside strings and character constants. */
+#define FOO(x) 'x'
+int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];
+
+int test (int i, double x);
+struct s1 {int (*f) (int a);};
+struct s2 {int (*f) (double a);};
+int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
+int argc;
+char **argv;
+int
+main ()
+{
+return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1];
+ ;
+ return 0;
+}
+_ACEOF
+for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
+ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
+do
+ CC="$ac_save_CC $ac_arg"
+ if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_prog_cc_c89=$ac_arg
+fi
+rm -f core conftest.err conftest.$ac_objext
+ test "x$ac_cv_prog_cc_c89" != "xno" && break
+done
+rm -f conftest.$ac_ext
+CC=$ac_save_CC
+
+fi
+# AC_CACHE_VAL
+case "x$ac_cv_prog_cc_c89" in
+ x)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
+$as_echo "none needed" >&6; } ;;
+ xno)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
+$as_echo "unsupported" >&6; } ;;
+ *)
+ CC="$CC $ac_cv_prog_cc_c89"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
+$as_echo "$ac_cv_prog_cc_c89" >&6; } ;;
+esac
+if test "x$ac_cv_prog_cc_c89" != xno; then :
+
+fi
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+depcc="$CC" am_compiler_list=
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
+$as_echo_n "checking dependency style of $depcc... " >&6; }
+if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
+ # We make a subdir and do the tests there. Otherwise we can end up
+ # making bogus files that we don't know about and never remove. For
+ # instance it was reported that on HP-UX the gcc test will end up
+ # making a dummy file named `D' -- because `-MD' means `put the output
+ # in D'.
+ mkdir conftest.dir
+ # Copy depcomp to subdir because otherwise we won't find it if we're
+ # using a relative directory.
+ cp "$am_depcomp" conftest.dir
+ cd conftest.dir
+ # We will build objects and dependencies in a subdirectory because
+ # it helps to detect inapplicable dependency modes. For instance
+ # both Tru64's cc and ICC support -MD to output dependencies as a
+ # side effect of compilation, but ICC will put the dependencies in
+ # the current directory while Tru64 will put them in the object
+ # directory.
+ mkdir sub
+
+ am_cv_CC_dependencies_compiler_type=none
+ if test "$am_compiler_list" = ""; then
+ am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
+ fi
+ am__universal=false
+ case " $depcc " in #(
+ *\ -arch\ *\ -arch\ *) am__universal=true ;;
+ esac
+
+ for depmode in $am_compiler_list; do
+ # Setup a source with many dependencies, because some compilers
+ # like to wrap large dependency lists on column 80 (with \), and
+ # we should not choose a depcomp mode which is confused by this.
+ #
+ # We need to recreate these files for each test, as the compiler may
+ # overwrite some of them when testing with obscure command lines.
+ # This happens at least with the AIX C compiler.
+ : > sub/conftest.c
+ for i in 1 2 3 4 5 6; do
+ echo '#include "conftst'$i'.h"' >> sub/conftest.c
+ # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
+ # Solaris 8's {/usr,}/bin/sh.
+ touch sub/conftst$i.h
+ done
+ echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
+
+ # We check with `-c' and `-o' for the sake of the "dashmstdout"
+ # mode. It turns out that the SunPro C++ compiler does not properly
+ # handle `-M -o', and we need to detect this. Also, some Intel
+ # versions had trouble with output in subdirs
+ am__obj=sub/conftest.${OBJEXT-o}
+ am__minus_obj="-o $am__obj"
+ case $depmode in
+ gcc)
+ # This depmode causes a compiler race in universal mode.
+ test "$am__universal" = false || continue
+ ;;
+ nosideeffect)
+ # after this tag, mechanisms are not by side-effect, so they'll
+ # only be used when explicitly requested
+ if test "x$enable_dependency_tracking" = xyes; then
+ continue
+ else
+ break
+ fi
+ ;;
+ msvisualcpp | msvcmsys)
+ # This compiler won't grok `-c -o', but also, the minuso test has
+ # not run yet. These depmodes are late enough in the game, and
+ # so weak that their functioning should not be impacted.
+ am__obj=conftest.${OBJEXT-o}
+ am__minus_obj=
+ ;;
+ none) break ;;
+ esac
+ if depmode=$depmode \
+ source=sub/conftest.c object=$am__obj \
+ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
+ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
+ >/dev/null 2>conftest.err &&
+ grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
+ grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
+ grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
+ ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
+ # icc doesn't choke on unknown options, it will just issue warnings
+ # or remarks (even with -Werror). So we grep stderr for any message
+ # that says an option was ignored or not supported.
+ # When given -MP, icc 7.0 and 7.1 complain thusly:
+ # icc: Command line warning: ignoring option '-M'; no argument required
+ # The diagnosis changed in icc 8.0:
+ # icc: Command line remark: option '-MP' not supported
+ if (grep 'ignoring option' conftest.err ||
+ grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
+ am_cv_CC_dependencies_compiler_type=$depmode
+ break
+ fi
+ fi
+ done
+
+ cd ..
+ rm -rf conftest.dir
+else
+ am_cv_CC_dependencies_compiler_type=none
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5
+$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; }
+CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type
+
+ if
+ test "x$enable_dependency_tracking" != xno \
+ && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then
+ am__fastdepCC_TRUE=
+ am__fastdepCC_FALSE='#'
+else
+ am__fastdepCC_TRUE='#'
+ am__fastdepCC_FALSE=
+fi
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5
+$as_echo_n "checking for a sed that does not truncate output... " >&6; }
+if test "${ac_cv_path_SED+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/
+ for ac_i in 1 2 3 4 5 6 7; do
+ ac_script="$ac_script$as_nl$ac_script"
+ done
+ echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed
+ { ac_script=; unset ac_script;}
+ if test -z "$SED"; then
+ ac_path_SED_found=false
+ # Loop through the user's path and test for each of PROGNAME-LIST
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_prog in sed gsed; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ ac_path_SED="$as_dir/$ac_prog$ac_exec_ext"
+ { test -f "$ac_path_SED" && $as_test_x "$ac_path_SED"; } || continue
+# Check for GNU ac_path_SED and select it if it is found.
+ # Check for GNU $ac_path_SED
+case `"$ac_path_SED" --version 2>&1` in
+*GNU*)
+ ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;;
+*)
+ ac_count=0
+ $as_echo_n 0123456789 >"conftest.in"
+ while :
+ do
+ cat "conftest.in" "conftest.in" >"conftest.tmp"
+ mv "conftest.tmp" "conftest.in"
+ cp "conftest.in" "conftest.nl"
+ $as_echo '' >> "conftest.nl"
+ "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break
+ diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+ as_fn_arith $ac_count + 1 && ac_count=$as_val
+ if test $ac_count -gt ${ac_path_SED_max-0}; then
+ # Best one so far, save it but keep looking for a better one
+ ac_cv_path_SED="$ac_path_SED"
+ ac_path_SED_max=$ac_count
+ fi
+ # 10*(2^10) chars as input seems more than enough
+ test $ac_count -gt 10 && break
+ done
+ rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+ $ac_path_SED_found && break 3
+ done
+ done
+ done
+IFS=$as_save_IFS
+ if test -z "$ac_cv_path_SED"; then
+ as_fn_error "no acceptable sed could be found in \$PATH" "$LINENO" 5
+ fi
+else
+ ac_cv_path_SED=$SED
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5
+$as_echo "$ac_cv_path_SED" >&6; }
+ SED="$ac_cv_path_SED"
+ rm -f conftest.sed
+
+test -z "$SED" && SED=sed
+Xsed="$SED -e 1s/^X//"
+
+
+
+
+
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
+$as_echo_n "checking for grep that handles long lines and -e... " >&6; }
+if test "${ac_cv_path_GREP+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -z "$GREP"; then
+ ac_path_GREP_found=false
+ # Loop through the user's path and test for each of PROGNAME-LIST
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_prog in grep ggrep; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
+ { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue
+# Check for GNU ac_path_GREP and select it if it is found.
+ # Check for GNU $ac_path_GREP
+case `"$ac_path_GREP" --version 2>&1` in
+*GNU*)
+ ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;;
+*)
+ ac_count=0
+ $as_echo_n 0123456789 >"conftest.in"
+ while :
+ do
+ cat "conftest.in" "conftest.in" >"conftest.tmp"
+ mv "conftest.tmp" "conftest.in"
+ cp "conftest.in" "conftest.nl"
+ $as_echo 'GREP' >> "conftest.nl"
+ "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break
+ diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+ as_fn_arith $ac_count + 1 && ac_count=$as_val
+ if test $ac_count -gt ${ac_path_GREP_max-0}; then
+ # Best one so far, save it but keep looking for a better one
+ ac_cv_path_GREP="$ac_path_GREP"
+ ac_path_GREP_max=$ac_count
+ fi
+ # 10*(2^10) chars as input seems more than enough
+ test $ac_count -gt 10 && break
+ done
+ rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+ $ac_path_GREP_found && break 3
+ done
+ done
+ done
+IFS=$as_save_IFS
+ if test -z "$ac_cv_path_GREP"; then
+ as_fn_error "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+ fi
+else
+ ac_cv_path_GREP=$GREP
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5
+$as_echo "$ac_cv_path_GREP" >&6; }
+ GREP="$ac_cv_path_GREP"
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
+$as_echo_n "checking for egrep... " >&6; }
+if test "${ac_cv_path_EGREP+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
+ then ac_cv_path_EGREP="$GREP -E"
+ else
+ if test -z "$EGREP"; then
+ ac_path_EGREP_found=false
+ # Loop through the user's path and test for each of PROGNAME-LIST
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_prog in egrep; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
+ { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue
+# Check for GNU ac_path_EGREP and select it if it is found.
+ # Check for GNU $ac_path_EGREP
+case `"$ac_path_EGREP" --version 2>&1` in
+*GNU*)
+ ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;;
+*)
+ ac_count=0
+ $as_echo_n 0123456789 >"conftest.in"
+ while :
+ do
+ cat "conftest.in" "conftest.in" >"conftest.tmp"
+ mv "conftest.tmp" "conftest.in"
+ cp "conftest.in" "conftest.nl"
+ $as_echo 'EGREP' >> "conftest.nl"
+ "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
+ diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+ as_fn_arith $ac_count + 1 && ac_count=$as_val
+ if test $ac_count -gt ${ac_path_EGREP_max-0}; then
+ # Best one so far, save it but keep looking for a better one
+ ac_cv_path_EGREP="$ac_path_EGREP"
+ ac_path_EGREP_max=$ac_count
+ fi
+ # 10*(2^10) chars as input seems more than enough
+ test $ac_count -gt 10 && break
+ done
+ rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+ $ac_path_EGREP_found && break 3
+ done
+ done
+ done
+IFS=$as_save_IFS
+ if test -z "$ac_cv_path_EGREP"; then
+ as_fn_error "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+ fi
+else
+ ac_cv_path_EGREP=$EGREP
+fi
+
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5
+$as_echo "$ac_cv_path_EGREP" >&6; }
+ EGREP="$ac_cv_path_EGREP"
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5
+$as_echo_n "checking for fgrep... " >&6; }
+if test "${ac_cv_path_FGREP+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1
+ then ac_cv_path_FGREP="$GREP -F"
+ else
+ if test -z "$FGREP"; then
+ ac_path_FGREP_found=false
+ # Loop through the user's path and test for each of PROGNAME-LIST
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_prog in fgrep; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext"
+ { test -f "$ac_path_FGREP" && $as_test_x "$ac_path_FGREP"; } || continue
+# Check for GNU ac_path_FGREP and select it if it is found.
+ # Check for GNU $ac_path_FGREP
+case `"$ac_path_FGREP" --version 2>&1` in
+*GNU*)
+ ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_found=:;;
+*)
+ ac_count=0
+ $as_echo_n 0123456789 >"conftest.in"
+ while :
+ do
+ cat "conftest.in" "conftest.in" >"conftest.tmp"
+ mv "conftest.tmp" "conftest.in"
+ cp "conftest.in" "conftest.nl"
+ $as_echo 'FGREP' >> "conftest.nl"
+ "$ac_path_FGREP" FGREP < "conftest.nl" >"conftest.out" 2>/dev/null || break
+ diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+ as_fn_arith $ac_count + 1 && ac_count=$as_val
+ if test $ac_count -gt ${ac_path_FGREP_max-0}; then
+ # Best one so far, save it but keep looking for a better one
+ ac_cv_path_FGREP="$ac_path_FGREP"
+ ac_path_FGREP_max=$ac_count
+ fi
+ # 10*(2^10) chars as input seems more than enough
+ test $ac_count -gt 10 && break
+ done
+ rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+ $ac_path_FGREP_found && break 3
+ done
+ done
+ done
+IFS=$as_save_IFS
+ if test -z "$ac_cv_path_FGREP"; then
+ as_fn_error "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+ fi
+else
+ ac_cv_path_FGREP=$FGREP
+fi
+
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5
+$as_echo "$ac_cv_path_FGREP" >&6; }
+ FGREP="$ac_cv_path_FGREP"
+
+
+test -z "$GREP" && GREP=grep
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+@%:@ Check whether --with-gnu-ld was given.
+if test "${with_gnu_ld+set}" = set; then :
+ withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes
+else
+ with_gnu_ld=no
+fi
+
+ac_prog=ld
+if test "$GCC" = yes; then
+ # Check if gcc -print-prog-name=ld gives a path.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5
+$as_echo_n "checking for ld used by $CC... " >&6; }
+ case $host in
+ *-*-mingw*)
+ # gcc leaves a trailing carriage return which upsets mingw
+ ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
+ *)
+ ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
+ esac
+ case $ac_prog in
+ # Accept absolute paths.
+ [\\/]* | ?:[\\/]*)
+ re_direlt='/[^/][^/]*/\.\./'
+ # Canonicalize the pathname of ld
+ ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'`
+ while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do
+ ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"`
+ done
+ test -z "$LD" && LD="$ac_prog"
+ ;;
+ "")
+ # If it fails, then pretend we aren't using GCC.
+ ac_prog=ld
+ ;;
+ *)
+ # If it is relative, then search for the first ld in PATH.
+ with_gnu_ld=unknown
+ ;;
+ esac
+elif test "$with_gnu_ld" = yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5
+$as_echo_n "checking for GNU ld... " >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5
+$as_echo_n "checking for non-GNU ld... " >&6; }
+fi
+if test "${lt_cv_path_LD+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -z "$LD"; then
+ lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+ for ac_dir in $PATH; do
+ IFS="$lt_save_ifs"
+ test -z "$ac_dir" && ac_dir=.
+ if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
+ lt_cv_path_LD="$ac_dir/$ac_prog"
+ # Check to see if the program is GNU ld. I'd rather use --version,
+ # but apparently some variants of GNU ld only accept -v.
+ # Break only if it was the GNU/non-GNU ld that we prefer.
+ case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
+ *GNU* | *'with BFD'*)
+ test "$with_gnu_ld" != no && break
+ ;;
+ *)
+ test "$with_gnu_ld" != yes && break
+ ;;
+ esac
+ fi
+ done
+ IFS="$lt_save_ifs"
+else
+ lt_cv_path_LD="$LD" # Let the user override the test with a path.
+fi
+fi
+
+LD="$lt_cv_path_LD"
+if test -n "$LD"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LD" >&5
+$as_echo "$LD" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+test -z "$LD" && as_fn_error "no acceptable ld found in \$PATH" "$LINENO" 5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5
+$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; }
+if test "${lt_cv_prog_gnu_ld+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ # I'd rather use --version here, but apparently some GNU lds only accept -v.
+case `$LD -v 2>&1 </dev/null` in
+*GNU* | *'with BFD'*)
+ lt_cv_prog_gnu_ld=yes
+ ;;
+*)
+ lt_cv_prog_gnu_ld=no
+ ;;
+esac
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_gnu_ld" >&5
+$as_echo "$lt_cv_prog_gnu_ld" >&6; }
+with_gnu_ld=$lt_cv_prog_gnu_ld
+
+
+
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5
+$as_echo_n "checking for BSD- or MS-compatible name lister (nm)... " >&6; }
+if test "${lt_cv_path_NM+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$NM"; then
+ # Let the user override the test.
+ lt_cv_path_NM="$NM"
+else
+ lt_nm_to_check="${ac_tool_prefix}nm"
+ if test -n "$ac_tool_prefix" && test "$build" = "$host"; then
+ lt_nm_to_check="$lt_nm_to_check nm"
+ fi
+ for lt_tmp_nm in $lt_nm_to_check; do
+ lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+ for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do
+ IFS="$lt_save_ifs"
+ test -z "$ac_dir" && ac_dir=.
+ tmp_nm="$ac_dir/$lt_tmp_nm"
+ if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then
+ # Check to see if the nm accepts a BSD-compat flag.
+ # Adding the `sed 1q' prevents false positives on HP-UX, which says:
+ # nm: unknown option "B" ignored
+ # Tru64's nm complains that /dev/null is an invalid object file
+ case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in
+ */dev/null* | *'Invalid file or object type'*)
+ lt_cv_path_NM="$tmp_nm -B"
+ break
+ ;;
+ *)
+ case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in
+ */dev/null*)
+ lt_cv_path_NM="$tmp_nm -p"
+ break
+ ;;
+ *)
+ lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but
+ continue # so that we can try to find one that supports BSD flags
+ ;;
+ esac
+ ;;
+ esac
+ fi
+ done
+ IFS="$lt_save_ifs"
+ done
+ : ${lt_cv_path_NM=no}
+fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5
+$as_echo "$lt_cv_path_NM" >&6; }
+if test "$lt_cv_path_NM" != "no"; then
+ NM="$lt_cv_path_NM"
+else
+ # Didn't find any BSD compatible name lister, look for dumpbin.
+ if test -n "$ac_tool_prefix"; then
+ for ac_prog in "dumpbin -symbols" "link -dump -symbols"
+ do
+ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_DUMPBIN+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$DUMPBIN"; then
+ ac_cv_prog_DUMPBIN="$DUMPBIN" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+DUMPBIN=$ac_cv_prog_DUMPBIN
+if test -n "$DUMPBIN"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DUMPBIN" >&5
+$as_echo "$DUMPBIN" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$DUMPBIN" && break
+ done
+fi
+if test -z "$DUMPBIN"; then
+ ac_ct_DUMPBIN=$DUMPBIN
+ for ac_prog in "dumpbin -symbols" "link -dump -symbols"
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_ac_ct_DUMPBIN+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_DUMPBIN"; then
+ ac_cv_prog_ac_ct_DUMPBIN="$ac_ct_DUMPBIN" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_ac_ct_DUMPBIN="$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN
+if test -n "$ac_ct_DUMPBIN"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DUMPBIN" >&5
+$as_echo "$ac_ct_DUMPBIN" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$ac_ct_DUMPBIN" && break
+done
+
+ if test "x$ac_ct_DUMPBIN" = x; then
+ DUMPBIN=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ DUMPBIN=$ac_ct_DUMPBIN
+ fi
+fi
+
+
+ if test "$DUMPBIN" != ":"; then
+ NM="$DUMPBIN"
+ fi
+fi
+test -z "$NM" && NM=nm
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5
+$as_echo_n "checking the name lister ($NM) interface... " >&6; }
+if test "${lt_cv_nm_interface+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_nm_interface="BSD nm"
+ echo "int some_variable = 0;" > conftest.$ac_ext
+ (eval echo "\"\$as_me:__oline__: $ac_compile\"" >&5)
+ (eval "$ac_compile" 2>conftest.err)
+ cat conftest.err >&5
+ (eval echo "\"\$as_me:__oline__: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
+ (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
+ cat conftest.err >&5
+ (eval echo "\"\$as_me:__oline__: output\"" >&5)
+ cat conftest.out >&5
+ if $GREP 'External.*some_variable' conftest.out > /dev/null; then
+ lt_cv_nm_interface="MS dumpbin"
+ fi
+ rm -f conftest*
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5
+$as_echo "$lt_cv_nm_interface" >&6; }
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5
+$as_echo_n "checking whether ln -s works... " >&6; }
+LN_S=$as_ln_s
+if test "$LN_S" = "ln -s"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5
+$as_echo "no, using $LN_S" >&6; }
+fi
+
+# find the maximum length of command line arguments
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5
+$as_echo_n "checking the maximum length of command line arguments... " >&6; }
+if test "${lt_cv_sys_max_cmd_len+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ i=0
+ teststring="ABCD"
+
+ case $build_os in
+ msdosdjgpp*)
+ # On DJGPP, this test can blow up pretty badly due to problems in libc
+ # (any single argument exceeding 2000 bytes causes a buffer overrun
+ # during glob expansion). Even if it were fixed, the result of this
+ # check would be larger than it should be.
+ lt_cv_sys_max_cmd_len=12288; # 12K is about right
+ ;;
+
+ gnu*)
+ # Under GNU Hurd, this test is not required because there is
+ # no limit to the length of command line arguments.
+ # Libtool will interpret -1 as no limit whatsoever
+ lt_cv_sys_max_cmd_len=-1;
+ ;;
+
+ cygwin* | mingw* | cegcc*)
+ # On Win9x/ME, this test blows up -- it succeeds, but takes
+ # about 5 minutes as the teststring grows exponentially.
+ # Worse, since 9x/ME are not pre-emptively multitasking,
+ # you end up with a "frozen" computer, even though with patience
+ # the test eventually succeeds (with a max line length of 256k).
+ # Instead, let's just punt: use the minimum linelength reported by
+ # all of the supported platforms: 8192 (on NT/2K/XP).
+ lt_cv_sys_max_cmd_len=8192;
+ ;;
+
+ amigaos*)
+ # On AmigaOS with pdksh, this test takes hours, literally.
+ # So we just punt and use a minimum line length of 8192.
+ lt_cv_sys_max_cmd_len=8192;
+ ;;
+
+ netbsd* | freebsd* | openbsd* | darwin* | dragonfly*)
+ # This has been around since 386BSD, at least. Likely further.
+ if test -x /sbin/sysctl; then
+ lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax`
+ elif test -x /usr/sbin/sysctl; then
+ lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax`
+ else
+ lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs
+ fi
+ # And add a safety zone
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
+ ;;
+
+ interix*)
+ # We know the value 262144 and hardcode it with a safety zone (like BSD)
+ lt_cv_sys_max_cmd_len=196608
+ ;;
+
+ osf*)
+ # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure
+ # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not
+ # nice to cause kernel panics so lets avoid the loop below.
+ # First set a reasonable default.
+ lt_cv_sys_max_cmd_len=16384
+ #
+ if test -x /sbin/sysconfig; then
+ case `/sbin/sysconfig -q proc exec_disable_arg_limit` in
+ *1*) lt_cv_sys_max_cmd_len=-1 ;;
+ esac
+ fi
+ ;;
+ sco3.2v5*)
+ lt_cv_sys_max_cmd_len=102400
+ ;;
+ sysv5* | sco5v6* | sysv4.2uw2*)
+ kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null`
+ if test -n "$kargmax"; then
+ lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[ ]//'`
+ else
+ lt_cv_sys_max_cmd_len=32768
+ fi
+ ;;
+ *)
+ lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null`
+ if test -n "$lt_cv_sys_max_cmd_len"; then
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
+ else
+ # Make teststring a little bigger before we do anything with it.
+ # a 1K string should be a reasonable start.
+ for i in 1 2 3 4 5 6 7 8 ; do
+ teststring=$teststring$teststring
+ done
+ SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}}
+ # If test is not a shell built-in, we'll probably end up computing a
+ # maximum length that is only half of the actual maximum length, but
+ # we can't tell.
+ while { test "X"`$SHELL $0 --fallback-echo "X$teststring$teststring" 2>/dev/null` \
+ = "XX$teststring$teststring"; } >/dev/null 2>&1 &&
+ test $i != 17 # 1/2 MB should be enough
+ do
+ i=`expr $i + 1`
+ teststring=$teststring$teststring
+ done
+ # Only check the string length outside the loop.
+ lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1`
+ teststring=
+ # Add a significant safety factor because C++ compilers can tack on
+ # massive amounts of additional arguments before passing them to the
+ # linker. It appears as though 1/2 is a usable value.
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2`
+ fi
+ ;;
+ esac
+
+fi
+
+if test -n $lt_cv_sys_max_cmd_len ; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5
+$as_echo "$lt_cv_sys_max_cmd_len" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5
+$as_echo "none" >&6; }
+fi
+max_cmd_len=$lt_cv_sys_max_cmd_len
+
+
+
+
+
+
+: ${CP="cp -f"}
+: ${MV="mv -f"}
+: ${RM="rm -f"}
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands some XSI constructs" >&5
+$as_echo_n "checking whether the shell understands some XSI constructs... " >&6; }
+# Try some XSI features
+xsi_shell=no
+( _lt_dummy="a/b/c"
+ test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \
+ = c,a/b,, \
+ && eval 'test $(( 1 + 1 )) -eq 2 \
+ && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \
+ && xsi_shell=yes
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xsi_shell" >&5
+$as_echo "$xsi_shell" >&6; }
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands \"+=\"" >&5
+$as_echo_n "checking whether the shell understands \"+=\"... " >&6; }
+lt_shell_append=no
+( foo=bar; set foo baz; eval "$1+=\$2" && test "$foo" = barbaz ) \
+ >/dev/null 2>&1 \
+ && lt_shell_append=yes
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_shell_append" >&5
+$as_echo "$lt_shell_append" >&6; }
+
+
+if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
+ lt_unset=unset
+else
+ lt_unset=false
+fi
+
+
+
+
+
+# test EBCDIC or ASCII
+case `echo X|tr X '\101'` in
+ A) # ASCII based system
+ # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr
+ lt_SP2NL='tr \040 \012'
+ lt_NL2SP='tr \015\012 \040\040'
+ ;;
+ *) # EBCDIC based system
+ lt_SP2NL='tr \100 \n'
+ lt_NL2SP='tr \r\n \100\100'
+ ;;
+esac
+
+
+
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5
+$as_echo_n "checking for $LD option to reload object files... " >&6; }
+if test "${lt_cv_ld_reload_flag+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_ld_reload_flag='-r'
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5
+$as_echo "$lt_cv_ld_reload_flag" >&6; }
+reload_flag=$lt_cv_ld_reload_flag
+case $reload_flag in
+"" | " "*) ;;
+*) reload_flag=" $reload_flag" ;;
+esac
+reload_cmds='$LD$reload_flag -o $output$reload_objs'
+case $host_os in
+ darwin*)
+ if test "$GCC" = yes; then
+ reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs'
+ else
+ reload_cmds='$LD$reload_flag -o $output$reload_objs'
+ fi
+ ;;
+esac
+
+
+
+
+
+
+
+
+
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args.
+set dummy ${ac_tool_prefix}objdump; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_OBJDUMP+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$OBJDUMP"; then
+ ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+OBJDUMP=$ac_cv_prog_OBJDUMP
+if test -n "$OBJDUMP"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5
+$as_echo "$OBJDUMP" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_OBJDUMP"; then
+ ac_ct_OBJDUMP=$OBJDUMP
+ # Extract the first word of "objdump", so it can be a program name with args.
+set dummy objdump; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_ac_ct_OBJDUMP+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_OBJDUMP"; then
+ ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_ac_ct_OBJDUMP="objdump"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP
+if test -n "$ac_ct_OBJDUMP"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5
+$as_echo "$ac_ct_OBJDUMP" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_OBJDUMP" = x; then
+ OBJDUMP="false"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ OBJDUMP=$ac_ct_OBJDUMP
+ fi
+else
+ OBJDUMP="$ac_cv_prog_OBJDUMP"
+fi
+
+test -z "$OBJDUMP" && OBJDUMP=objdump
+
+
+
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5
+$as_echo_n "checking how to recognize dependent libraries... " >&6; }
+if test "${lt_cv_deplibs_check_method+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_file_magic_cmd='$MAGIC_CMD'
+lt_cv_file_magic_test_file=
+lt_cv_deplibs_check_method='unknown'
+# Need to set the preceding variable on all platforms that support
+# interlibrary dependencies.
+# 'none' -- dependencies not supported.
+# `unknown' -- same as none, but documents that we really don't know.
+# 'pass_all' -- all dependencies passed with no checks.
+# 'test_compile' -- check by making test program.
+# 'file_magic [[regex]]' -- check by looking for files in library path
+# which responds to the $file_magic_cmd with a given extended regex.
+# If you have `file' or equivalent on your system and you're not sure
+# whether `pass_all' will *always* work, you probably want this one.
+
+case $host_os in
+aix[4-9]*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+beos*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+bsdi[45]*)
+ lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)'
+ lt_cv_file_magic_cmd='/usr/bin/file -L'
+ lt_cv_file_magic_test_file=/shlib/libc.so
+ ;;
+
+cygwin*)
+ # func_win32_libid is a shell function defined in ltmain.sh
+ lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
+ lt_cv_file_magic_cmd='func_win32_libid'
+ ;;
+
+mingw* | pw32*)
+ # Base MSYS/MinGW do not provide the 'file' command needed by
+ # func_win32_libid shell function, so use a weaker test based on 'objdump',
+ # unless we find 'file', for example because we are cross-compiling.
+ if ( file / ) >/dev/null 2>&1; then
+ lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
+ lt_cv_file_magic_cmd='func_win32_libid'
+ else
+ lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?'
+ lt_cv_file_magic_cmd='$OBJDUMP -f'
+ fi
+ ;;
+
+cegcc)
+ # use the weaker test based on 'objdump'. See mingw*.
+ lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?'
+ lt_cv_file_magic_cmd='$OBJDUMP -f'
+ ;;
+
+darwin* | rhapsody*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+freebsd* | dragonfly*)
+ if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
+ case $host_cpu in
+ i*86 )
+ # Not sure whether the presence of OpenBSD here was a mistake.
+ # Let's accept both of them until this is cleared up.
+ lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library'
+ lt_cv_file_magic_cmd=/usr/bin/file
+ lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
+ ;;
+ esac
+ else
+ lt_cv_deplibs_check_method=pass_all
+ fi
+ ;;
+
+gnu*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+hpux10.20* | hpux11*)
+ lt_cv_file_magic_cmd=/usr/bin/file
+ case $host_cpu in
+ ia64*)
+ lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64'
+ lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so
+ ;;
+ hppa*64*)
+ lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]'
+ lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl
+ ;;
+ *)
+ lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9].[0-9]) shared library'
+ lt_cv_file_magic_test_file=/usr/lib/libc.sl
+ ;;
+ esac
+ ;;
+
+interix[3-9]*)
+ # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here
+ lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$'
+ ;;
+
+irix5* | irix6* | nonstopux*)
+ case $LD in
+ *-32|*"-32 ") libmagic=32-bit;;
+ *-n32|*"-n32 ") libmagic=N32;;
+ *-64|*"-64 ") libmagic=64-bit;;
+ *) libmagic=never-match;;
+ esac
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+# This must be Linux ELF.
+linux* | k*bsd*-gnu | kopensolaris*-gnu)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+netbsd* | netbsdelf*-gnu)
+ if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
+ lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$'
+ else
+ lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$'
+ fi
+ ;;
+
+newos6*)
+ lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)'
+ lt_cv_file_magic_cmd=/usr/bin/file
+ lt_cv_file_magic_test_file=/usr/lib/libnls.so
+ ;;
+
+*nto* | *qnx*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+openbsd*)
+ if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+ lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$'
+ else
+ lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$'
+ fi
+ ;;
+
+osf3* | osf4* | osf5*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+rdos*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+solaris*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+sysv4 | sysv4.3*)
+ case $host_vendor in
+ motorola)
+ lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]'
+ lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*`
+ ;;
+ ncr)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+ sequent)
+ lt_cv_file_magic_cmd='/bin/file'
+ lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )'
+ ;;
+ sni)
+ lt_cv_file_magic_cmd='/bin/file'
+ lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib"
+ lt_cv_file_magic_test_file=/lib/libc.so
+ ;;
+ siemens)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+ pc)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+ esac
+ ;;
+
+tpf*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+esac
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5
+$as_echo "$lt_cv_deplibs_check_method" >&6; }
+file_magic_cmd=$lt_cv_file_magic_cmd
+deplibs_check_method=$lt_cv_deplibs_check_method
+test -z "$deplibs_check_method" && deplibs_check_method=unknown
+
+
+
+
+
+
+
+
+
+
+
+
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
+set dummy ${ac_tool_prefix}ar; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_AR+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$AR"; then
+ ac_cv_prog_AR="$AR" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_AR="${ac_tool_prefix}ar"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+AR=$ac_cv_prog_AR
+if test -n "$AR"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
+$as_echo "$AR" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_AR"; then
+ ac_ct_AR=$AR
+ # Extract the first word of "ar", so it can be a program name with args.
+set dummy ar; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_ac_ct_AR+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_AR"; then
+ ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_ac_ct_AR="ar"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_AR=$ac_cv_prog_ac_ct_AR
+if test -n "$ac_ct_AR"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
+$as_echo "$ac_ct_AR" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_AR" = x; then
+ AR="false"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ AR=$ac_ct_AR
+ fi
+else
+ AR="$ac_cv_prog_AR"
+fi
+
+test -z "$AR" && AR=ar
+test -z "$AR_FLAGS" && AR_FLAGS=cru
+
+
+
+
+
+
+
+
+
+
+
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
+set dummy ${ac_tool_prefix}strip; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_STRIP+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$STRIP"; then
+ ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_STRIP="${ac_tool_prefix}strip"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+STRIP=$ac_cv_prog_STRIP
+if test -n "$STRIP"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5
+$as_echo "$STRIP" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_STRIP"; then
+ ac_ct_STRIP=$STRIP
+ # Extract the first word of "strip", so it can be a program name with args.
+set dummy strip; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_STRIP"; then
+ ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_ac_ct_STRIP="strip"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
+if test -n "$ac_ct_STRIP"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5
+$as_echo "$ac_ct_STRIP" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_STRIP" = x; then
+ STRIP=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ STRIP=$ac_ct_STRIP
+ fi
+else
+ STRIP="$ac_cv_prog_STRIP"
+fi
+
+test -z "$STRIP" && STRIP=:
+
+
+
+
+
+
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
+set dummy ${ac_tool_prefix}ranlib; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_RANLIB+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$RANLIB"; then
+ ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+RANLIB=$ac_cv_prog_RANLIB
+if test -n "$RANLIB"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5
+$as_echo "$RANLIB" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_RANLIB"; then
+ ac_ct_RANLIB=$RANLIB
+ # Extract the first word of "ranlib", so it can be a program name with args.
+set dummy ranlib; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_RANLIB"; then
+ ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_ac_ct_RANLIB="ranlib"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
+if test -n "$ac_ct_RANLIB"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5
+$as_echo "$ac_ct_RANLIB" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_RANLIB" = x; then
+ RANLIB=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ RANLIB=$ac_ct_RANLIB
+ fi
+else
+ RANLIB="$ac_cv_prog_RANLIB"
+fi
+
+test -z "$RANLIB" && RANLIB=:
+
+
+
+
+
+
+# Determine commands to create old-style static archives.
+old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs'
+old_postinstall_cmds='chmod 644 $oldlib'
+old_postuninstall_cmds=
+
+if test -n "$RANLIB"; then
+ case $host_os in
+ openbsd*)
+ old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib"
+ ;;
+ *)
+ old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib"
+ ;;
+ esac
+ old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib"
+fi
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+# If no C compiler was specified, use CC.
+LTCC=${LTCC-"$CC"}
+
+# If no C compiler flags were specified, use CFLAGS.
+LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
+
+# Allow CC to be a program name with arguments.
+compiler=$CC
+
+
+# Check for command to grab the raw symbol name followed by C symbol from nm.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5
+$as_echo_n "checking command to parse $NM output from $compiler object... " >&6; }
+if test "${lt_cv_sys_global_symbol_pipe+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+
+# These are sane defaults that work on at least a few old systems.
+# [They come from Ultrix. What could be older than Ultrix?!! ;)]
+
+# Character class describing NM global symbol codes.
+symcode='[BCDEGRST]'
+
+# Regexp to match symbols that can be accessed directly from C.
+sympat='\([_A-Za-z][_A-Za-z0-9]*\)'
+
+# Define system-specific variables.
+case $host_os in
+aix*)
+ symcode='[BCDT]'
+ ;;
+cygwin* | mingw* | pw32* | cegcc*)
+ symcode='[ABCDGISTW]'
+ ;;
+hpux*)
+ if test "$host_cpu" = ia64; then
+ symcode='[ABCDEGRST]'
+ fi
+ ;;
+irix* | nonstopux*)
+ symcode='[BCDEGRST]'
+ ;;
+osf*)
+ symcode='[BCDEGQRST]'
+ ;;
+solaris*)
+ symcode='[BDRT]'
+ ;;
+sco3.2v5*)
+ symcode='[DT]'
+ ;;
+sysv4.2uw2*)
+ symcode='[DT]'
+ ;;
+sysv5* | sco5v6* | unixware* | OpenUNIX*)
+ symcode='[ABDT]'
+ ;;
+sysv4)
+ symcode='[DFNSTU]'
+ ;;
+esac
+
+# If we're using GNU nm, then use its standard symbol codes.
+case `$NM -V 2>&1` in
+*GNU* | *'with BFD'*)
+ symcode='[ABCDGIRSTW]' ;;
+esac
+
+# Transform an extracted symbol line into a proper C declaration.
+# Some systems (esp. on ia64) link data and code symbols differently,
+# so use this general approach.
+lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
+
+# Transform an extracted symbol line into symbol name and symbol address
+lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'"
+lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'"
+
+# Handle CRLF in mingw tool chain
+opt_cr=
+case $build_os in
+mingw*)
+ opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp
+ ;;
+esac
+
+# Try without a prefix underscore, then with it.
+for ac_symprfx in "" "_"; do
+
+ # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol.
+ symxfrm="\\1 $ac_symprfx\\2 \\2"
+
+ # Write the raw and C identifiers.
+ if test "$lt_cv_nm_interface" = "MS dumpbin"; then
+ # Fake it for dumpbin and say T for any non-static function
+ # and D for any global variable.
+ # Also find C++ and __fastcall symbols from MSVC++,
+ # which start with @ or ?.
+ lt_cv_sys_global_symbol_pipe="$AWK '"\
+" {last_section=section; section=\$ 3};"\
+" /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\
+" \$ 0!~/External *\|/{next};"\
+" / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\
+" {if(hide[section]) next};"\
+" {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\
+" {split(\$ 0, a, /\||\r/); split(a[2], s)};"\
+" s[1]~/^[@?]/{print s[1], s[1]; next};"\
+" s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\
+" ' prfx=^$ac_symprfx"
+ else
+ lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
+ fi
+
+ # Check to see that the pipe works correctly.
+ pipe_works=no
+
+ rm -f conftest*
+ cat > conftest.$ac_ext <<_LT_EOF
+#ifdef __cplusplus
+extern "C" {
+#endif
+char nm_test_var;
+void nm_test_func(void);
+void nm_test_func(void){}
+#ifdef __cplusplus
+}
+#endif
+int main(){nm_test_var='a';nm_test_func();return(0);}
+_LT_EOF
+
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ # Now try to grab the symbols.
+ nlist=conftest.nm
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist\""; } >&5
+ (eval $NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && test -s "$nlist"; then
+ # Try sorting and uniquifying the output.
+ if sort "$nlist" | uniq > "$nlist"T; then
+ mv -f "$nlist"T "$nlist"
+ else
+ rm -f "$nlist"T
+ fi
+
+ # Make sure that we snagged all the symbols we need.
+ if $GREP ' nm_test_var$' "$nlist" >/dev/null; then
+ if $GREP ' nm_test_func$' "$nlist" >/dev/null; then
+ cat <<_LT_EOF > conftest.$ac_ext
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+_LT_EOF
+ # Now generate the symbol file.
+ eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext'
+
+ cat <<_LT_EOF >> conftest.$ac_ext
+
+/* The mapping between symbol names and symbols. */
+const struct {
+ const char *name;
+ void *address;
+}
+lt__PROGRAM__LTX_preloaded_symbols[] =
+{
+ { "@PROGRAM@", (void *) 0 },
+_LT_EOF
+ $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext
+ cat <<\_LT_EOF >> conftest.$ac_ext
+ {0, (void *) 0}
+};
+
+/* This works around a problem in FreeBSD linker */
+#ifdef FREEBSD_WORKAROUND
+static const void *lt_preloaded_setup() {
+ return lt__PROGRAM__LTX_preloaded_symbols;
+}
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+_LT_EOF
+ # Now try linking the two files.
+ mv conftest.$ac_objext conftstm.$ac_objext
+ lt_save_LIBS="$LIBS"
+ lt_save_CFLAGS="$CFLAGS"
+ LIBS="conftstm.$ac_objext"
+ CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag"
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && test -s conftest${ac_exeext}; then
+ pipe_works=yes
+ fi
+ LIBS="$lt_save_LIBS"
+ CFLAGS="$lt_save_CFLAGS"
+ else
+ echo "cannot find nm_test_func in $nlist" >&5
+ fi
+ else
+ echo "cannot find nm_test_var in $nlist" >&5
+ fi
+ else
+ echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5
+ fi
+ else
+ echo "$progname: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ fi
+ rm -rf conftest* conftst*
+
+ # Do not use the global_symbol_pipe unless it works.
+ if test "$pipe_works" = yes; then
+ break
+ else
+ lt_cv_sys_global_symbol_pipe=
+ fi
+done
+
+fi
+
+if test -z "$lt_cv_sys_global_symbol_pipe"; then
+ lt_cv_sys_global_symbol_to_cdecl=
+fi
+if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5
+$as_echo "failed" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
+$as_echo "ok" >&6; }
+fi
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+@%:@ Check whether --enable-libtool-lock was given.
+if test "${enable_libtool_lock+set}" = set; then :
+ enableval=$enable_libtool_lock;
+fi
+
+test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes
+
+# Some flags need to be propagated to the compiler or linker for good
+# libtool support.
+case $host in
+ia64-*-hpux*)
+ # Find out which ABI we are using.
+ echo 'int i;' > conftest.$ac_ext
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ case `/usr/bin/file conftest.$ac_objext` in
+ *ELF-32*)
+ HPUX_IA64_MODE="32"
+ ;;
+ *ELF-64*)
+ HPUX_IA64_MODE="64"
+ ;;
+ esac
+ fi
+ rm -rf conftest*
+ ;;
+*-*-irix6*)
+ # Find out which ABI we are using.
+ echo '#line __oline__ "configure"' > conftest.$ac_ext
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ if test "$lt_cv_prog_gnu_ld" = yes; then
+ case `/usr/bin/file conftest.$ac_objext` in
+ *32-bit*)
+ LD="${LD-ld} -melf32bsmip"
+ ;;
+ *N32*)
+ LD="${LD-ld} -melf32bmipn32"
+ ;;
+ *64-bit*)
+ LD="${LD-ld} -melf64bmip"
+ ;;
+ esac
+ else
+ case `/usr/bin/file conftest.$ac_objext` in
+ *32-bit*)
+ LD="${LD-ld} -32"
+ ;;
+ *N32*)
+ LD="${LD-ld} -n32"
+ ;;
+ *64-bit*)
+ LD="${LD-ld} -64"
+ ;;
+ esac
+ fi
+ fi
+ rm -rf conftest*
+ ;;
+
+x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \
+s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
+ # Find out which ABI we are using.
+ echo 'int i;' > conftest.$ac_ext
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ case `/usr/bin/file conftest.o` in
+ *32-bit*)
+ case $host in
+ x86_64-*kfreebsd*-gnu)
+ LD="${LD-ld} -m elf_i386_fbsd"
+ ;;
+ x86_64-*linux*)
+ LD="${LD-ld} -m elf_i386"
+ ;;
+ ppc64-*linux*|powerpc64-*linux*)
+ LD="${LD-ld} -m elf32ppclinux"
+ ;;
+ s390x-*linux*)
+ LD="${LD-ld} -m elf_s390"
+ ;;
+ sparc64-*linux*)
+ LD="${LD-ld} -m elf32_sparc"
+ ;;
+ esac
+ ;;
+ *64-bit*)
+ case $host in
+ x86_64-*kfreebsd*-gnu)
+ LD="${LD-ld} -m elf_x86_64_fbsd"
+ ;;
+ x86_64-*linux*)
+ LD="${LD-ld} -m elf_x86_64"
+ ;;
+ ppc*-*linux*|powerpc*-*linux*)
+ LD="${LD-ld} -m elf64ppc"
+ ;;
+ s390*-*linux*|s390*-*tpf*)
+ LD="${LD-ld} -m elf64_s390"
+ ;;
+ sparc*-*linux*)
+ LD="${LD-ld} -m elf64_sparc"
+ ;;
+ esac
+ ;;
+ esac
+ fi
+ rm -rf conftest*
+ ;;
+
+*-*-sco3.2v5*)
+ # On SCO OpenServer 5, we need -belf to get full-featured binaries.
+ SAVE_CFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS -belf"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5
+$as_echo_n "checking whether the C compiler needs -belf... " >&6; }
+if test "${lt_cv_cc_needs_belf+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ lt_cv_cc_needs_belf=yes
+else
+ lt_cv_cc_needs_belf=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5
+$as_echo "$lt_cv_cc_needs_belf" >&6; }
+ if test x"$lt_cv_cc_needs_belf" != x"yes"; then
+ # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
+ CFLAGS="$SAVE_CFLAGS"
+ fi
+ ;;
+sparc*-*solaris*)
+ # Find out which ABI we are using.
+ echo 'int i;' > conftest.$ac_ext
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ case `/usr/bin/file conftest.o` in
+ *64-bit*)
+ case $lt_cv_prog_gnu_ld in
+ yes*) LD="${LD-ld} -m elf64_sparc" ;;
+ *)
+ if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then
+ LD="${LD-ld} -64"
+ fi
+ ;;
+ esac
+ ;;
+ esac
+ fi
+ rm -rf conftest*
+ ;;
+esac
+
+need_locks="$enable_libtool_lock"
+
+
+ case $host_os in
+ rhapsody* | darwin*)
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args.
+set dummy ${ac_tool_prefix}dsymutil; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_DSYMUTIL+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$DSYMUTIL"; then
+ ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+DSYMUTIL=$ac_cv_prog_DSYMUTIL
+if test -n "$DSYMUTIL"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5
+$as_echo "$DSYMUTIL" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_DSYMUTIL"; then
+ ac_ct_DSYMUTIL=$DSYMUTIL
+ # Extract the first word of "dsymutil", so it can be a program name with args.
+set dummy dsymutil; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_ac_ct_DSYMUTIL+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_DSYMUTIL"; then
+ ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_ac_ct_DSYMUTIL="dsymutil"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL
+if test -n "$ac_ct_DSYMUTIL"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DSYMUTIL" >&5
+$as_echo "$ac_ct_DSYMUTIL" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_DSYMUTIL" = x; then
+ DSYMUTIL=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ DSYMUTIL=$ac_ct_DSYMUTIL
+ fi
+else
+ DSYMUTIL="$ac_cv_prog_DSYMUTIL"
+fi
+
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args.
+set dummy ${ac_tool_prefix}nmedit; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_NMEDIT+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$NMEDIT"; then
+ ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+NMEDIT=$ac_cv_prog_NMEDIT
+if test -n "$NMEDIT"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NMEDIT" >&5
+$as_echo "$NMEDIT" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_NMEDIT"; then
+ ac_ct_NMEDIT=$NMEDIT
+ # Extract the first word of "nmedit", so it can be a program name with args.
+set dummy nmedit; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_ac_ct_NMEDIT+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_NMEDIT"; then
+ ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_ac_ct_NMEDIT="nmedit"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT
+if test -n "$ac_ct_NMEDIT"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NMEDIT" >&5
+$as_echo "$ac_ct_NMEDIT" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_NMEDIT" = x; then
+ NMEDIT=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ NMEDIT=$ac_ct_NMEDIT
+ fi
+else
+ NMEDIT="$ac_cv_prog_NMEDIT"
+fi
+
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}lipo", so it can be a program name with args.
+set dummy ${ac_tool_prefix}lipo; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_LIPO+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$LIPO"; then
+ ac_cv_prog_LIPO="$LIPO" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_LIPO="${ac_tool_prefix}lipo"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+LIPO=$ac_cv_prog_LIPO
+if test -n "$LIPO"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIPO" >&5
+$as_echo "$LIPO" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_LIPO"; then
+ ac_ct_LIPO=$LIPO
+ # Extract the first word of "lipo", so it can be a program name with args.
+set dummy lipo; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_ac_ct_LIPO+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_LIPO"; then
+ ac_cv_prog_ac_ct_LIPO="$ac_ct_LIPO" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_ac_ct_LIPO="lipo"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_LIPO=$ac_cv_prog_ac_ct_LIPO
+if test -n "$ac_ct_LIPO"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LIPO" >&5
+$as_echo "$ac_ct_LIPO" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_LIPO" = x; then
+ LIPO=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ LIPO=$ac_ct_LIPO
+ fi
+else
+ LIPO="$ac_cv_prog_LIPO"
+fi
+
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}otool", so it can be a program name with args.
+set dummy ${ac_tool_prefix}otool; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_OTOOL+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$OTOOL"; then
+ ac_cv_prog_OTOOL="$OTOOL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_OTOOL="${ac_tool_prefix}otool"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+OTOOL=$ac_cv_prog_OTOOL
+if test -n "$OTOOL"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL" >&5
+$as_echo "$OTOOL" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_OTOOL"; then
+ ac_ct_OTOOL=$OTOOL
+ # Extract the first word of "otool", so it can be a program name with args.
+set dummy otool; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_ac_ct_OTOOL+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_OTOOL"; then
+ ac_cv_prog_ac_ct_OTOOL="$ac_ct_OTOOL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_ac_ct_OTOOL="otool"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_OTOOL=$ac_cv_prog_ac_ct_OTOOL
+if test -n "$ac_ct_OTOOL"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL" >&5
+$as_echo "$ac_ct_OTOOL" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_OTOOL" = x; then
+ OTOOL=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ OTOOL=$ac_ct_OTOOL
+ fi
+else
+ OTOOL="$ac_cv_prog_OTOOL"
+fi
+
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args.
+set dummy ${ac_tool_prefix}otool64; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_OTOOL64+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$OTOOL64"; then
+ ac_cv_prog_OTOOL64="$OTOOL64" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+OTOOL64=$ac_cv_prog_OTOOL64
+if test -n "$OTOOL64"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL64" >&5
+$as_echo "$OTOOL64" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_OTOOL64"; then
+ ac_ct_OTOOL64=$OTOOL64
+ # Extract the first word of "otool64", so it can be a program name with args.
+set dummy otool64; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_ac_ct_OTOOL64+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_OTOOL64"; then
+ ac_cv_prog_ac_ct_OTOOL64="$ac_ct_OTOOL64" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_ac_ct_OTOOL64="otool64"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64
+if test -n "$ac_ct_OTOOL64"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL64" >&5
+$as_echo "$ac_ct_OTOOL64" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_OTOOL64" = x; then
+ OTOOL64=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ OTOOL64=$ac_ct_OTOOL64
+ fi
+else
+ OTOOL64="$ac_cv_prog_OTOOL64"
+fi
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5
+$as_echo_n "checking for -single_module linker flag... " >&6; }
+if test "${lt_cv_apple_cc_single_mod+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_apple_cc_single_mod=no
+ if test -z "${LT_MULTI_MODULE}"; then
+ # By default we will add the -single_module flag. You can override
+ # by either setting the environment variable LT_MULTI_MODULE
+ # non-empty at configure time, or by adding -multi_module to the
+ # link flags.
+ rm -rf libconftest.dylib*
+ echo "int foo(void){return 1;}" > conftest.c
+ echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
+-dynamiclib -Wl,-single_module conftest.c" >&5
+ $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
+ -dynamiclib -Wl,-single_module conftest.c 2>conftest.err
+ _lt_result=$?
+ if test -f libconftest.dylib && test ! -s conftest.err && test $_lt_result = 0; then
+ lt_cv_apple_cc_single_mod=yes
+ else
+ cat conftest.err >&5
+ fi
+ rm -rf libconftest.dylib*
+ rm -f conftest.*
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5
+$as_echo "$lt_cv_apple_cc_single_mod" >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5
+$as_echo_n "checking for -exported_symbols_list linker flag... " >&6; }
+if test "${lt_cv_ld_exported_symbols_list+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_ld_exported_symbols_list=no
+ save_LDFLAGS=$LDFLAGS
+ echo "_main" > conftest.sym
+ LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ lt_cv_ld_exported_symbols_list=yes
+else
+ lt_cv_ld_exported_symbols_list=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ LDFLAGS="$save_LDFLAGS"
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5
+$as_echo "$lt_cv_ld_exported_symbols_list" >&6; }
+ case $host_os in
+ rhapsody* | darwin1.[012])
+ _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;;
+ darwin1.*)
+ _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
+ darwin*) # darwin 5.x on
+ # if running on 10.5 or later, the deployment target defaults
+ # to the OS version, if on x86, and 10.4, the deployment
+ # target defaults to 10.4. Don't you love it?
+ case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in
+ 10.0,*86*-darwin8*|10.0,*-darwin[91]*)
+ _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
+ 10.[012]*)
+ _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
+ 10.*)
+ _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
+ esac
+ ;;
+ esac
+ if test "$lt_cv_apple_cc_single_mod" = "yes"; then
+ _lt_dar_single_mod='$single_module'
+ fi
+ if test "$lt_cv_ld_exported_symbols_list" = "yes"; then
+ _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym'
+ else
+ _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}'
+ fi
+ if test "$DSYMUTIL" != ":"; then
+ _lt_dsymutil='~$DSYMUTIL $lib || :'
+ else
+ _lt_dsymutil=
+ fi
+ ;;
+ esac
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5
+$as_echo_n "checking how to run the C preprocessor... " >&6; }
+# On Suns, sometimes $CPP names a directory.
+if test -n "$CPP" && test -d "$CPP"; then
+ CPP=
+fi
+if test -z "$CPP"; then
+ if test "${ac_cv_prog_CPP+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ # Double quotes because CPP needs to be expanded
+ for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
+ do
+ ac_preproc_ok=false
+for ac_c_preproc_warn_flag in '' yes
+do
+ # Use a header file that comes with gcc, so configuring glibc
+ # with a fresh cross-compiler works.
+ # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ # <limits.h> exists even on freestanding compilers.
+ # On the NeXT, cc -E runs the code through the compiler's parser,
+ # not just through cpp. "Syntax error" is here to catch this case.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+@%:@ifdef __STDC__
+@%:@ include <limits.h>
+@%:@else
+@%:@ include <assert.h>
+@%:@endif
+ Syntax error
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+
+else
+ # Broken: fails on valid input.
+continue
+fi
+rm -f conftest.err conftest.$ac_ext
+
+ # OK, works on sane cases. Now check whether nonexistent headers
+ # can be detected and how.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+@%:@include <ac_nonexistent.h>
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+ # Broken: success on invalid input.
+continue
+else
+ # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+rm -f conftest.err conftest.$ac_ext
+
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then :
+ break
+fi
+
+ done
+ ac_cv_prog_CPP=$CPP
+
+fi
+ CPP=$ac_cv_prog_CPP
+else
+ ac_cv_prog_CPP=$CPP
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5
+$as_echo "$CPP" >&6; }
+ac_preproc_ok=false
+for ac_c_preproc_warn_flag in '' yes
+do
+ # Use a header file that comes with gcc, so configuring glibc
+ # with a fresh cross-compiler works.
+ # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ # <limits.h> exists even on freestanding compilers.
+ # On the NeXT, cc -E runs the code through the compiler's parser,
+ # not just through cpp. "Syntax error" is here to catch this case.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+@%:@ifdef __STDC__
+@%:@ include <limits.h>
+@%:@else
+@%:@ include <assert.h>
+@%:@endif
+ Syntax error
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+
+else
+ # Broken: fails on valid input.
+continue
+fi
+rm -f conftest.err conftest.$ac_ext
+
+ # OK, works on sane cases. Now check whether nonexistent headers
+ # can be detected and how.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+@%:@include <ac_nonexistent.h>
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+ # Broken: success on invalid input.
+continue
+else
+ # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+rm -f conftest.err conftest.$ac_ext
+
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then :
+
+else
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error "C preprocessor \"$CPP\" fails sanity check
+See \`config.log' for more details." "$LINENO" 5; }
+fi
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
+$as_echo_n "checking for ANSI C header files... " >&6; }
+if test "${ac_cv_header_stdc+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdlib.h>
+#include <stdarg.h>
+#include <string.h>
+#include <float.h>
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_header_stdc=yes
+else
+ ac_cv_header_stdc=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+if test $ac_cv_header_stdc = yes; then
+ # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <string.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "memchr" >/dev/null 2>&1; then :
+
+else
+ ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+ # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdlib.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "free" >/dev/null 2>&1; then :
+
+else
+ ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+ # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
+ if test "$cross_compiling" = yes; then :
+ :
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <ctype.h>
+#include <stdlib.h>
+#if ((' ' & 0x0FF) == 0x020)
+# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
+# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
+#else
+# define ISLOWER(c) \
+ (('a' <= (c) && (c) <= 'i') \
+ || ('j' <= (c) && (c) <= 'r') \
+ || ('s' <= (c) && (c) <= 'z'))
+# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
+#endif
+
+#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
+int
+main ()
+{
+ int i;
+ for (i = 0; i < 256; i++)
+ if (XOR (islower (i), ISLOWER (i))
+ || toupper (i) != TOUPPER (i))
+ return 2;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+
+else
+ ac_cv_header_stdc=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5
+$as_echo "$ac_cv_header_stdc" >&6; }
+if test $ac_cv_header_stdc = yes; then
+
+$as_echo "@%:@define STDC_HEADERS 1" >>confdefs.h
+
+fi
+
+# On IRIX 5.3, sys/types and inttypes.h are conflicting.
+for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
+ inttypes.h stdint.h unistd.h
+do :
+ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
+"
+eval as_val=\$$as_ac_Header
+ if test "x$as_val" = x""yes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+
+for ac_header in dlfcn.h
+do :
+ ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default
+"
+if test "x$ac_cv_header_dlfcn_h" = x""yes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_DLFCN_H 1
+_ACEOF
+
+fi
+
+done
+
+
+
+ac_ext=cpp
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+if test -z "$CXX"; then
+ if test -n "$CCC"; then
+ CXX=$CCC
+ else
+ if test -n "$ac_tool_prefix"; then
+ for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC
+ do
+ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_CXX+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$CXX"; then
+ ac_cv_prog_CXX="$CXX" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_CXX="$ac_tool_prefix$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+CXX=$ac_cv_prog_CXX
+if test -n "$CXX"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXX" >&5
+$as_echo "$CXX" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$CXX" && break
+ done
+fi
+if test -z "$CXX"; then
+ ac_ct_CXX=$CXX
+ for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_CXX"; then
+ ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_ac_ct_CXX="$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_CXX=$ac_cv_prog_ac_ct_CXX
+if test -n "$ac_ct_CXX"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CXX" >&5
+$as_echo "$ac_ct_CXX" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$ac_ct_CXX" && break
+done
+
+ if test "x$ac_ct_CXX" = x; then
+ CXX="g++"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ CXX=$ac_ct_CXX
+ fi
+fi
+
+ fi
+fi
+# Provide some information about the compiler.
+$as_echo "$as_me:${as_lineno-$LINENO}: checking for C++ compiler version" >&5
+set X $ac_compile
+ac_compiler=$2
+for ac_option in --version -v -V -qversion; do
+ { { ac_try="$ac_compiler $ac_option >&5"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_compiler $ac_option >&5") 2>conftest.err
+ ac_status=$?
+ if test -s conftest.err; then
+ sed '10a\
+... rest of stderr output deleted ...
+ 10q' conftest.err >conftest.er1
+ cat conftest.er1 >&5
+ fi
+ rm -f conftest.er1 conftest.err
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+done
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C++ compiler" >&5
+$as_echo_n "checking whether we are using the GNU C++ compiler... " >&6; }
+if test "${ac_cv_cxx_compiler_gnu+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+#ifndef __GNUC__
+ choke me
+#endif
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_compile "$LINENO"; then :
+ ac_compiler_gnu=yes
+else
+ ac_compiler_gnu=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ac_cv_cxx_compiler_gnu=$ac_compiler_gnu
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cxx_compiler_gnu" >&5
+$as_echo "$ac_cv_cxx_compiler_gnu" >&6; }
+if test $ac_compiler_gnu = yes; then
+ GXX=yes
+else
+ GXX=
+fi
+ac_test_CXXFLAGS=${CXXFLAGS+set}
+ac_save_CXXFLAGS=$CXXFLAGS
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX accepts -g" >&5
+$as_echo_n "checking whether $CXX accepts -g... " >&6; }
+if test "${ac_cv_prog_cxx_g+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_save_cxx_werror_flag=$ac_cxx_werror_flag
+ ac_cxx_werror_flag=yes
+ ac_cv_prog_cxx_g=no
+ CXXFLAGS="-g"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_compile "$LINENO"; then :
+ ac_cv_prog_cxx_g=yes
+else
+ CXXFLAGS=""
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_compile "$LINENO"; then :
+
+else
+ ac_cxx_werror_flag=$ac_save_cxx_werror_flag
+ CXXFLAGS="-g"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_compile "$LINENO"; then :
+ ac_cv_prog_cxx_g=yes
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ ac_cxx_werror_flag=$ac_save_cxx_werror_flag
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_g" >&5
+$as_echo "$ac_cv_prog_cxx_g" >&6; }
+if test "$ac_test_CXXFLAGS" = set; then
+ CXXFLAGS=$ac_save_CXXFLAGS
+elif test $ac_cv_prog_cxx_g = yes; then
+ if test "$GXX" = yes; then
+ CXXFLAGS="-g -O2"
+ else
+ CXXFLAGS="-g"
+ fi
+else
+ if test "$GXX" = yes; then
+ CXXFLAGS="-O2"
+ else
+ CXXFLAGS=
+ fi
+fi
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+depcc="$CXX" am_compiler_list=
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
+$as_echo_n "checking dependency style of $depcc... " >&6; }
+if test "${am_cv_CXX_dependencies_compiler_type+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
+ # We make a subdir and do the tests there. Otherwise we can end up
+ # making bogus files that we don't know about and never remove. For
+ # instance it was reported that on HP-UX the gcc test will end up
+ # making a dummy file named `D' -- because `-MD' means `put the output
+ # in D'.
+ mkdir conftest.dir
+ # Copy depcomp to subdir because otherwise we won't find it if we're
+ # using a relative directory.
+ cp "$am_depcomp" conftest.dir
+ cd conftest.dir
+ # We will build objects and dependencies in a subdirectory because
+ # it helps to detect inapplicable dependency modes. For instance
+ # both Tru64's cc and ICC support -MD to output dependencies as a
+ # side effect of compilation, but ICC will put the dependencies in
+ # the current directory while Tru64 will put them in the object
+ # directory.
+ mkdir sub
+
+ am_cv_CXX_dependencies_compiler_type=none
+ if test "$am_compiler_list" = ""; then
+ am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
+ fi
+ am__universal=false
+ case " $depcc " in #(
+ *\ -arch\ *\ -arch\ *) am__universal=true ;;
+ esac
+
+ for depmode in $am_compiler_list; do
+ # Setup a source with many dependencies, because some compilers
+ # like to wrap large dependency lists on column 80 (with \), and
+ # we should not choose a depcomp mode which is confused by this.
+ #
+ # We need to recreate these files for each test, as the compiler may
+ # overwrite some of them when testing with obscure command lines.
+ # This happens at least with the AIX C compiler.
+ : > sub/conftest.c
+ for i in 1 2 3 4 5 6; do
+ echo '#include "conftst'$i'.h"' >> sub/conftest.c
+ # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
+ # Solaris 8's {/usr,}/bin/sh.
+ touch sub/conftst$i.h
+ done
+ echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
+
+ # We check with `-c' and `-o' for the sake of the "dashmstdout"
+ # mode. It turns out that the SunPro C++ compiler does not properly
+ # handle `-M -o', and we need to detect this. Also, some Intel
+ # versions had trouble with output in subdirs
+ am__obj=sub/conftest.${OBJEXT-o}
+ am__minus_obj="-o $am__obj"
+ case $depmode in
+ gcc)
+ # This depmode causes a compiler race in universal mode.
+ test "$am__universal" = false || continue
+ ;;
+ nosideeffect)
+ # after this tag, mechanisms are not by side-effect, so they'll
+ # only be used when explicitly requested
+ if test "x$enable_dependency_tracking" = xyes; then
+ continue
+ else
+ break
+ fi
+ ;;
+ msvisualcpp | msvcmsys)
+ # This compiler won't grok `-c -o', but also, the minuso test has
+ # not run yet. These depmodes are late enough in the game, and
+ # so weak that their functioning should not be impacted.
+ am__obj=conftest.${OBJEXT-o}
+ am__minus_obj=
+ ;;
+ none) break ;;
+ esac
+ if depmode=$depmode \
+ source=sub/conftest.c object=$am__obj \
+ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
+ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
+ >/dev/null 2>conftest.err &&
+ grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
+ grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
+ grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
+ ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
+ # icc doesn't choke on unknown options, it will just issue warnings
+ # or remarks (even with -Werror). So we grep stderr for any message
+ # that says an option was ignored or not supported.
+ # When given -MP, icc 7.0 and 7.1 complain thusly:
+ # icc: Command line warning: ignoring option '-M'; no argument required
+ # The diagnosis changed in icc 8.0:
+ # icc: Command line remark: option '-MP' not supported
+ if (grep 'ignoring option' conftest.err ||
+ grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
+ am_cv_CXX_dependencies_compiler_type=$depmode
+ break
+ fi
+ fi
+ done
+
+ cd ..
+ rm -rf conftest.dir
+else
+ am_cv_CXX_dependencies_compiler_type=none
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CXX_dependencies_compiler_type" >&5
+$as_echo "$am_cv_CXX_dependencies_compiler_type" >&6; }
+CXXDEPMODE=depmode=$am_cv_CXX_dependencies_compiler_type
+
+ if
+ test "x$enable_dependency_tracking" != xno \
+ && test "$am_cv_CXX_dependencies_compiler_type" = gcc3; then
+ am__fastdepCXX_TRUE=
+ am__fastdepCXX_FALSE='#'
+else
+ am__fastdepCXX_TRUE='#'
+ am__fastdepCXX_FALSE=
+fi
+
+
+if test -n "$CXX" && ( test "X$CXX" != "Xno" &&
+ ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) ||
+ (test "X$CXX" != "Xg++"))) ; then
+ ac_ext=cpp
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C++ preprocessor" >&5
+$as_echo_n "checking how to run the C++ preprocessor... " >&6; }
+if test -z "$CXXCPP"; then
+ if test "${ac_cv_prog_CXXCPP+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ # Double quotes because CXXCPP needs to be expanded
+ for CXXCPP in "$CXX -E" "/lib/cpp"
+ do
+ ac_preproc_ok=false
+for ac_cxx_preproc_warn_flag in '' yes
+do
+ # Use a header file that comes with gcc, so configuring glibc
+ # with a fresh cross-compiler works.
+ # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ # <limits.h> exists even on freestanding compilers.
+ # On the NeXT, cc -E runs the code through the compiler's parser,
+ # not just through cpp. "Syntax error" is here to catch this case.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+@%:@ifdef __STDC__
+@%:@ include <limits.h>
+@%:@else
+@%:@ include <assert.h>
+@%:@endif
+ Syntax error
+_ACEOF
+if ac_fn_cxx_try_cpp "$LINENO"; then :
+
+else
+ # Broken: fails on valid input.
+continue
+fi
+rm -f conftest.err conftest.$ac_ext
+
+ # OK, works on sane cases. Now check whether nonexistent headers
+ # can be detected and how.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+@%:@include <ac_nonexistent.h>
+_ACEOF
+if ac_fn_cxx_try_cpp "$LINENO"; then :
+ # Broken: success on invalid input.
+continue
+else
+ # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+rm -f conftest.err conftest.$ac_ext
+
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then :
+ break
+fi
+
+ done
+ ac_cv_prog_CXXCPP=$CXXCPP
+
+fi
+ CXXCPP=$ac_cv_prog_CXXCPP
+else
+ ac_cv_prog_CXXCPP=$CXXCPP
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXXCPP" >&5
+$as_echo "$CXXCPP" >&6; }
+ac_preproc_ok=false
+for ac_cxx_preproc_warn_flag in '' yes
+do
+ # Use a header file that comes with gcc, so configuring glibc
+ # with a fresh cross-compiler works.
+ # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ # <limits.h> exists even on freestanding compilers.
+ # On the NeXT, cc -E runs the code through the compiler's parser,
+ # not just through cpp. "Syntax error" is here to catch this case.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+@%:@ifdef __STDC__
+@%:@ include <limits.h>
+@%:@else
+@%:@ include <assert.h>
+@%:@endif
+ Syntax error
+_ACEOF
+if ac_fn_cxx_try_cpp "$LINENO"; then :
+
+else
+ # Broken: fails on valid input.
+continue
+fi
+rm -f conftest.err conftest.$ac_ext
+
+ # OK, works on sane cases. Now check whether nonexistent headers
+ # can be detected and how.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+@%:@include <ac_nonexistent.h>
+_ACEOF
+if ac_fn_cxx_try_cpp "$LINENO"; then :
+ # Broken: success on invalid input.
+continue
+else
+ # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+rm -f conftest.err conftest.$ac_ext
+
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then :
+
+else
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+_lt_caught_CXX_error=yes; }
+fi
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+else
+ _lt_caught_CXX_error=yes
+fi
+
+
+
+
+
+# Set options
+
+
+
+ enable_dlopen=no
+
+
+ enable_win32_dll=no
+
+
+ @%:@ Check whether --enable-shared was given.
+if test "${enable_shared+set}" = set; then :
+ enableval=$enable_shared; p=${PACKAGE-default}
+ case $enableval in
+ yes) enable_shared=yes ;;
+ no) enable_shared=no ;;
+ *)
+ enable_shared=no
+ # Look at the argument we got. We use all the common list separators.
+ lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+ for pkg in $enableval; do
+ IFS="$lt_save_ifs"
+ if test "X$pkg" = "X$p"; then
+ enable_shared=yes
+ fi
+ done
+ IFS="$lt_save_ifs"
+ ;;
+ esac
+else
+ enable_shared=yes
+fi
+
+
+
+
+
+
+
+
+
+ @%:@ Check whether --enable-static was given.
+if test "${enable_static+set}" = set; then :
+ enableval=$enable_static; p=${PACKAGE-default}
+ case $enableval in
+ yes) enable_static=yes ;;
+ no) enable_static=no ;;
+ *)
+ enable_static=no
+ # Look at the argument we got. We use all the common list separators.
+ lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+ for pkg in $enableval; do
+ IFS="$lt_save_ifs"
+ if test "X$pkg" = "X$p"; then
+ enable_static=yes
+ fi
+ done
+ IFS="$lt_save_ifs"
+ ;;
+ esac
+else
+ enable_static=yes
+fi
+
+
+
+
+
+
+
+
+
+
+@%:@ Check whether --with-pic was given.
+if test "${with_pic+set}" = set; then :
+ withval=$with_pic; pic_mode="$withval"
+else
+ pic_mode=default
+fi
+
+
+test -z "$pic_mode" && pic_mode=default
+
+
+
+
+
+
+
+ @%:@ Check whether --enable-fast-install was given.
+if test "${enable_fast_install+set}" = set; then :
+ enableval=$enable_fast_install; p=${PACKAGE-default}
+ case $enableval in
+ yes) enable_fast_install=yes ;;
+ no) enable_fast_install=no ;;
+ *)
+ enable_fast_install=no
+ # Look at the argument we got. We use all the common list separators.
+ lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+ for pkg in $enableval; do
+ IFS="$lt_save_ifs"
+ if test "X$pkg" = "X$p"; then
+ enable_fast_install=yes
+ fi
+ done
+ IFS="$lt_save_ifs"
+ ;;
+ esac
+else
+ enable_fast_install=yes
+fi
+
+
+
+
+
+
+
+
+
+
+
+# This can be used to rebuild libtool when needed
+LIBTOOL_DEPS="$ltmain"
+
+# Always use our own libtool.
+LIBTOOL='$(SHELL) $(top_builddir)/libtool'
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+test -z "$LN_S" && LN_S="ln -s"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+if test -n "${ZSH_VERSION+set}" ; then
+ setopt NO_GLOB_SUBST
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5
+$as_echo_n "checking for objdir... " >&6; }
+if test "${lt_cv_objdir+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ rm -f .libs 2>/dev/null
+mkdir .libs 2>/dev/null
+if test -d .libs; then
+ lt_cv_objdir=.libs
+else
+ # MS-DOS does not allow filenames that begin with a dot.
+ lt_cv_objdir=_libs
+fi
+rmdir .libs 2>/dev/null
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5
+$as_echo "$lt_cv_objdir" >&6; }
+objdir=$lt_cv_objdir
+
+
+
+
+
+cat >>confdefs.h <<_ACEOF
+@%:@define LT_OBJDIR "$lt_cv_objdir/"
+_ACEOF
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+case $host_os in
+aix3*)
+ # AIX sometimes has problems with the GCC collect2 program. For some
+ # reason, if we set the COLLECT_NAMES environment variable, the problems
+ # vanish in a puff of smoke.
+ if test "X${COLLECT_NAMES+set}" != Xset; then
+ COLLECT_NAMES=
+ export COLLECT_NAMES
+ fi
+ ;;
+esac
+
+# Sed substitution that helps us do robust quoting. It backslashifies
+# metacharacters that are still active within double-quoted strings.
+sed_quote_subst='s/\(["`$\\]\)/\\\1/g'
+
+# Same as above, but do not quote variable references.
+double_quote_subst='s/\(["`\\]\)/\\\1/g'
+
+# Sed substitution to delay expansion of an escaped shell variable in a
+# double_quote_subst'ed string.
+delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
+
+# Sed substitution to delay expansion of an escaped single quote.
+delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g'
+
+# Sed substitution to avoid accidental globbing in evaled expressions
+no_glob_subst='s/\*/\\\*/g'
+
+# Global variables:
+ofile=libtool
+can_build_shared=yes
+
+# All known linkers require a `.a' archive for static linking (except MSVC,
+# which needs '.lib').
+libext=a
+
+with_gnu_ld="$lt_cv_prog_gnu_ld"
+
+old_CC="$CC"
+old_CFLAGS="$CFLAGS"
+
+# Set sane defaults for various variables
+test -z "$CC" && CC=cc
+test -z "$LTCC" && LTCC=$CC
+test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS
+test -z "$LD" && LD=ld
+test -z "$ac_objext" && ac_objext=o
+
+for cc_temp in $compiler""; do
+ case $cc_temp in
+ compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
+ distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
+ \-*) ;;
+ *) break;;
+ esac
+done
+cc_basename=`$ECHO "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
+
+
+# Only perform the check for file, if the check method requires it
+test -z "$MAGIC_CMD" && MAGIC_CMD=file
+case $deplibs_check_method in
+file_magic*)
+ if test "$file_magic_cmd" = '$MAGIC_CMD'; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5
+$as_echo_n "checking for ${ac_tool_prefix}file... " >&6; }
+if test "${lt_cv_path_MAGIC_CMD+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $MAGIC_CMD in
+[\\/*] | ?:[\\/]*)
+ lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
+ ;;
+*)
+ lt_save_MAGIC_CMD="$MAGIC_CMD"
+ lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+ ac_dummy="/usr/bin$PATH_SEPARATOR$PATH"
+ for ac_dir in $ac_dummy; do
+ IFS="$lt_save_ifs"
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/${ac_tool_prefix}file; then
+ lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file"
+ if test -n "$file_magic_test_file"; then
+ case $deplibs_check_method in
+ "file_magic "*)
+ file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
+ MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+ if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
+ $EGREP "$file_magic_regex" > /dev/null; then
+ :
+ else
+ cat <<_LT_EOF 1>&2
+
+*** Warning: the command libtool uses to detect shared libraries,
+*** $file_magic_cmd, produces output that libtool cannot recognize.
+*** The result is that libtool may fail to recognize shared libraries
+*** as such. This will affect the creation of libtool libraries that
+*** depend on shared libraries, but programs linked with such libtool
+*** libraries will work regardless of this problem. Nevertheless, you
+*** may want to report the problem to your system manager and/or to
+*** bug-libtool@gnu.org
+
+_LT_EOF
+ fi ;;
+ esac
+ fi
+ break
+ fi
+ done
+ IFS="$lt_save_ifs"
+ MAGIC_CMD="$lt_save_MAGIC_CMD"
+ ;;
+esac
+fi
+
+MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+if test -n "$MAGIC_CMD"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5
+$as_echo "$MAGIC_CMD" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+
+
+
+if test -z "$lt_cv_path_MAGIC_CMD"; then
+ if test -n "$ac_tool_prefix"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for file" >&5
+$as_echo_n "checking for file... " >&6; }
+if test "${lt_cv_path_MAGIC_CMD+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $MAGIC_CMD in
+[\\/*] | ?:[\\/]*)
+ lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
+ ;;
+*)
+ lt_save_MAGIC_CMD="$MAGIC_CMD"
+ lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+ ac_dummy="/usr/bin$PATH_SEPARATOR$PATH"
+ for ac_dir in $ac_dummy; do
+ IFS="$lt_save_ifs"
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/file; then
+ lt_cv_path_MAGIC_CMD="$ac_dir/file"
+ if test -n "$file_magic_test_file"; then
+ case $deplibs_check_method in
+ "file_magic "*)
+ file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
+ MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+ if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
+ $EGREP "$file_magic_regex" > /dev/null; then
+ :
+ else
+ cat <<_LT_EOF 1>&2
+
+*** Warning: the command libtool uses to detect shared libraries,
+*** $file_magic_cmd, produces output that libtool cannot recognize.
+*** The result is that libtool may fail to recognize shared libraries
+*** as such. This will affect the creation of libtool libraries that
+*** depend on shared libraries, but programs linked with such libtool
+*** libraries will work regardless of this problem. Nevertheless, you
+*** may want to report the problem to your system manager and/or to
+*** bug-libtool@gnu.org
+
+_LT_EOF
+ fi ;;
+ esac
+ fi
+ break
+ fi
+ done
+ IFS="$lt_save_ifs"
+ MAGIC_CMD="$lt_save_MAGIC_CMD"
+ ;;
+esac
+fi
+
+MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+if test -n "$MAGIC_CMD"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5
+$as_echo "$MAGIC_CMD" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ else
+ MAGIC_CMD=:
+ fi
+fi
+
+ fi
+ ;;
+esac
+
+# Use C for the default configuration in the libtool script
+
+lt_save_CC="$CC"
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+# Source file extension for C test sources.
+ac_ext=c
+
+# Object file extension for compiled C test sources.
+objext=o
+objext=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code="int some_variable = 0;"
+
+# Code to be used in simple link tests
+lt_simple_link_test_code='int main(){return(0);}'
+
+
+
+
+
+
+
+# If no C compiler was specified, use CC.
+LTCC=${LTCC-"$CC"}
+
+# If no C compiler flags were specified, use CFLAGS.
+LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
+
+# Allow CC to be a program name with arguments.
+compiler=$CC
+
+# Save the default compiler, since it gets overwritten when the other
+# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP.
+compiler_DEFAULT=$CC
+
+# save warnings/boilerplate of simple test code
+ac_outfile=conftest.$ac_objext
+echo "$lt_simple_compile_test_code" >conftest.$ac_ext
+eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
+_lt_compiler_boilerplate=`cat conftest.err`
+$RM conftest*
+
+ac_outfile=conftest.$ac_objext
+echo "$lt_simple_link_test_code" >conftest.$ac_ext
+eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
+_lt_linker_boilerplate=`cat conftest.err`
+$RM -r conftest*
+
+
+## CAVEAT EMPTOR:
+## There is no encapsulation within the following macros, do not change
+## the running order or otherwise move them around unless you know exactly
+## what you are doing...
+if test -n "$compiler"; then
+
+lt_prog_compiler_no_builtin_flag=
+
+if test "$GCC" = yes; then
+ lt_prog_compiler_no_builtin_flag=' -fno-builtin'
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5
+$as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; }
+if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_prog_compiler_rtti_exceptions=no
+ ac_outfile=conftest.$ac_objext
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+ lt_compiler_flag="-fno-rtti -fno-exceptions"
+ # Insert the option either (1) after the last *FLAGS variable, or
+ # (2) before a word containing "conftest.", or (3) at the end.
+ # Note that $ac_compile itself does not contain backslashes and begins
+ # with a dollar sign (not a hyphen), so the echo should work correctly.
+ # The option is referenced via a variable to avoid confusing sed.
+ lt_compile=`echo "$ac_compile" | $SED \
+ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+ -e 's:$: $lt_compiler_flag:'`
+ (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&5)
+ (eval "$lt_compile" 2>conftest.err)
+ ac_status=$?
+ cat conftest.err >&5
+ echo "$as_me:__oline__: \$? = $ac_status" >&5
+ if (exit $ac_status) && test -s "$ac_outfile"; then
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings other than the usual output.
+ $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp
+ $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+ if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
+ lt_cv_prog_compiler_rtti_exceptions=yes
+ fi
+ fi
+ $RM conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5
+$as_echo "$lt_cv_prog_compiler_rtti_exceptions" >&6; }
+
+if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then
+ lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions"
+else
+ :
+fi
+
+fi
+
+
+
+
+
+
+ lt_prog_compiler_wl=
+lt_prog_compiler_pic=
+lt_prog_compiler_static=
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5
+$as_echo_n "checking for $compiler option to produce PIC... " >&6; }
+
+ if test "$GCC" = yes; then
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_static='-static'
+
+ case $host_os in
+ aix*)
+ # All AIX code is PIC.
+ if test "$host_cpu" = ia64; then
+ # AIX 5 now supports IA64 processor
+ lt_prog_compiler_static='-Bstatic'
+ fi
+ ;;
+
+ amigaos*)
+ case $host_cpu in
+ powerpc)
+ # see comment about AmigaOS4 .so support
+ lt_prog_compiler_pic='-fPIC'
+ ;;
+ m68k)
+ # FIXME: we need at least 68020 code to build shared libraries, but
+ # adding the `-m68020' flag to GCC prevents building anything better,
+ # like `-m68040'.
+ lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4'
+ ;;
+ esac
+ ;;
+
+ beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+ # PIC is the default for these OSes.
+ ;;
+
+ mingw* | cygwin* | pw32* | os2* | cegcc*)
+ # This hack is so that the source file can tell whether it is being
+ # built for inclusion in a dll (and should export symbols for example).
+ # Although the cygwin gcc ignores -fPIC, still need this for old-style
+ # (--disable-auto-import) libraries
+ lt_prog_compiler_pic='-DDLL_EXPORT'
+ ;;
+
+ darwin* | rhapsody*)
+ # PIC is the default on this platform
+ # Common symbols not allowed in MH_DYLIB files
+ lt_prog_compiler_pic='-fno-common'
+ ;;
+
+ hpux*)
+ # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
+ # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag
+ # sets the default TLS model and affects inlining.
+ case $host_cpu in
+ hppa*64*)
+ # +Z the default
+ ;;
+ *)
+ lt_prog_compiler_pic='-fPIC'
+ ;;
+ esac
+ ;;
+
+ interix[3-9]*)
+ # Interix 3.x gcc -fpic/-fPIC options generate broken code.
+ # Instead, we relocate shared libraries at runtime.
+ ;;
+
+ msdosdjgpp*)
+ # Just because we use GCC doesn't mean we suddenly get shared libraries
+ # on systems that don't support them.
+ lt_prog_compiler_can_build_shared=no
+ enable_shared=no
+ ;;
+
+ *nto* | *qnx*)
+ # QNX uses GNU C++, but need to define -shared option too, otherwise
+ # it will coredump.
+ lt_prog_compiler_pic='-fPIC -shared'
+ ;;
+
+ sysv4*MP*)
+ if test -d /usr/nec; then
+ lt_prog_compiler_pic=-Kconform_pic
+ fi
+ ;;
+
+ *)
+ lt_prog_compiler_pic='-fPIC'
+ ;;
+ esac
+ else
+ # PORTME Check for flag to pass linker flags through the system compiler.
+ case $host_os in
+ aix*)
+ lt_prog_compiler_wl='-Wl,'
+ if test "$host_cpu" = ia64; then
+ # AIX 5 now supports IA64 processor
+ lt_prog_compiler_static='-Bstatic'
+ else
+ lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp'
+ fi
+ ;;
+
+ mingw* | cygwin* | pw32* | os2* | cegcc*)
+ # This hack is so that the source file can tell whether it is being
+ # built for inclusion in a dll (and should export symbols for example).
+ lt_prog_compiler_pic='-DDLL_EXPORT'
+ ;;
+
+ hpux9* | hpux10* | hpux11*)
+ lt_prog_compiler_wl='-Wl,'
+ # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
+ # not for PA HP-UX.
+ case $host_cpu in
+ hppa*64*|ia64*)
+ # +Z the default
+ ;;
+ *)
+ lt_prog_compiler_pic='+Z'
+ ;;
+ esac
+ # Is there a better lt_prog_compiler_static that works with the bundled CC?
+ lt_prog_compiler_static='${wl}-a ${wl}archive'
+ ;;
+
+ irix5* | irix6* | nonstopux*)
+ lt_prog_compiler_wl='-Wl,'
+ # PIC (with -KPIC) is the default.
+ lt_prog_compiler_static='-non_shared'
+ ;;
+
+ linux* | k*bsd*-gnu | kopensolaris*-gnu)
+ case $cc_basename in
+ # old Intel for x86_64 which still supported -KPIC.
+ ecc*)
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_pic='-KPIC'
+ lt_prog_compiler_static='-static'
+ ;;
+ # icc used to be incompatible with GCC.
+ # ICC 10 doesn't accept -KPIC any more.
+ icc* | ifort*)
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_pic='-fPIC'
+ lt_prog_compiler_static='-static'
+ ;;
+ # Lahey Fortran 8.1.
+ lf95*)
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_pic='--shared'
+ lt_prog_compiler_static='--static'
+ ;;
+ pgcc* | pgf77* | pgf90* | pgf95*)
+ # Portland Group compilers (*not* the Pentium gcc compiler,
+ # which looks to be a dead project)
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_pic='-fpic'
+ lt_prog_compiler_static='-Bstatic'
+ ;;
+ ccc*)
+ lt_prog_compiler_wl='-Wl,'
+ # All Alpha code is PIC.
+ lt_prog_compiler_static='-non_shared'
+ ;;
+ xl*)
+ # IBM XL C 8.0/Fortran 10.1 on PPC
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_pic='-qpic'
+ lt_prog_compiler_static='-qstaticlink'
+ ;;
+ *)
+ case `$CC -V 2>&1 | sed 5q` in
+ *Sun\ C*)
+ # Sun C 5.9
+ lt_prog_compiler_pic='-KPIC'
+ lt_prog_compiler_static='-Bstatic'
+ lt_prog_compiler_wl='-Wl,'
+ ;;
+ *Sun\ F*)
+ # Sun Fortran 8.3 passes all unrecognized flags to the linker
+ lt_prog_compiler_pic='-KPIC'
+ lt_prog_compiler_static='-Bstatic'
+ lt_prog_compiler_wl=''
+ ;;
+ esac
+ ;;
+ esac
+ ;;
+
+ newsos6)
+ lt_prog_compiler_pic='-KPIC'
+ lt_prog_compiler_static='-Bstatic'
+ ;;
+
+ *nto* | *qnx*)
+ # QNX uses GNU C++, but need to define -shared option too, otherwise
+ # it will coredump.
+ lt_prog_compiler_pic='-fPIC -shared'
+ ;;
+
+ osf3* | osf4* | osf5*)
+ lt_prog_compiler_wl='-Wl,'
+ # All OSF/1 code is PIC.
+ lt_prog_compiler_static='-non_shared'
+ ;;
+
+ rdos*)
+ lt_prog_compiler_static='-non_shared'
+ ;;
+
+ solaris*)
+ lt_prog_compiler_pic='-KPIC'
+ lt_prog_compiler_static='-Bstatic'
+ case $cc_basename in
+ f77* | f90* | f95*)
+ lt_prog_compiler_wl='-Qoption ld ';;
+ *)
+ lt_prog_compiler_wl='-Wl,';;
+ esac
+ ;;
+
+ sunos4*)
+ lt_prog_compiler_wl='-Qoption ld '
+ lt_prog_compiler_pic='-PIC'
+ lt_prog_compiler_static='-Bstatic'
+ ;;
+
+ sysv4 | sysv4.2uw2* | sysv4.3*)
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_pic='-KPIC'
+ lt_prog_compiler_static='-Bstatic'
+ ;;
+
+ sysv4*MP*)
+ if test -d /usr/nec ;then
+ lt_prog_compiler_pic='-Kconform_pic'
+ lt_prog_compiler_static='-Bstatic'
+ fi
+ ;;
+
+ sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_pic='-KPIC'
+ lt_prog_compiler_static='-Bstatic'
+ ;;
+
+ unicos*)
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_can_build_shared=no
+ ;;
+
+ uts4*)
+ lt_prog_compiler_pic='-pic'
+ lt_prog_compiler_static='-Bstatic'
+ ;;
+
+ *)
+ lt_prog_compiler_can_build_shared=no
+ ;;
+ esac
+ fi
+
+case $host_os in
+ # For platforms which do not support PIC, -DPIC is meaningless:
+ *djgpp*)
+ lt_prog_compiler_pic=
+ ;;
+ *)
+ lt_prog_compiler_pic="$lt_prog_compiler_pic@&t@ -DPIC"
+ ;;
+esac
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_prog_compiler_pic" >&5
+$as_echo "$lt_prog_compiler_pic" >&6; }
+
+
+
+
+
+
+#
+# Check to make sure the PIC flag actually works.
+#
+if test -n "$lt_prog_compiler_pic"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5
+$as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; }
+if test "${lt_cv_prog_compiler_pic_works+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_prog_compiler_pic_works=no
+ ac_outfile=conftest.$ac_objext
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+ lt_compiler_flag="$lt_prog_compiler_pic@&t@ -DPIC"
+ # Insert the option either (1) after the last *FLAGS variable, or
+ # (2) before a word containing "conftest.", or (3) at the end.
+ # Note that $ac_compile itself does not contain backslashes and begins
+ # with a dollar sign (not a hyphen), so the echo should work correctly.
+ # The option is referenced via a variable to avoid confusing sed.
+ lt_compile=`echo "$ac_compile" | $SED \
+ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+ -e 's:$: $lt_compiler_flag:'`
+ (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&5)
+ (eval "$lt_compile" 2>conftest.err)
+ ac_status=$?
+ cat conftest.err >&5
+ echo "$as_me:__oline__: \$? = $ac_status" >&5
+ if (exit $ac_status) && test -s "$ac_outfile"; then
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings other than the usual output.
+ $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp
+ $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+ if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
+ lt_cv_prog_compiler_pic_works=yes
+ fi
+ fi
+ $RM conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5
+$as_echo "$lt_cv_prog_compiler_pic_works" >&6; }
+
+if test x"$lt_cv_prog_compiler_pic_works" = xyes; then
+ case $lt_prog_compiler_pic in
+ "" | " "*) ;;
+ *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;;
+ esac
+else
+ lt_prog_compiler_pic=
+ lt_prog_compiler_can_build_shared=no
+fi
+
+fi
+
+
+
+
+
+
+#
+# Check to make sure the static flag actually works.
+#
+wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\"
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5
+$as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; }
+if test "${lt_cv_prog_compiler_static_works+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_prog_compiler_static_works=no
+ save_LDFLAGS="$LDFLAGS"
+ LDFLAGS="$LDFLAGS $lt_tmp_static_flag"
+ echo "$lt_simple_link_test_code" > conftest.$ac_ext
+ if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
+ # The linker can only warn and ignore the option if not recognized
+ # So say no if there are warnings
+ if test -s conftest.err; then
+ # Append any errors to the config.log.
+ cat conftest.err 1>&5
+ $ECHO "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp
+ $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+ if diff conftest.exp conftest.er2 >/dev/null; then
+ lt_cv_prog_compiler_static_works=yes
+ fi
+ else
+ lt_cv_prog_compiler_static_works=yes
+ fi
+ fi
+ $RM -r conftest*
+ LDFLAGS="$save_LDFLAGS"
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5
+$as_echo "$lt_cv_prog_compiler_static_works" >&6; }
+
+if test x"$lt_cv_prog_compiler_static_works" = xyes; then
+ :
+else
+ lt_prog_compiler_static=
+fi
+
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
+$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
+if test "${lt_cv_prog_compiler_c_o+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_prog_compiler_c_o=no
+ $RM -r conftest 2>/dev/null
+ mkdir conftest
+ cd conftest
+ mkdir out
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+ lt_compiler_flag="-o out/conftest2.$ac_objext"
+ # Insert the option either (1) after the last *FLAGS variable, or
+ # (2) before a word containing "conftest.", or (3) at the end.
+ # Note that $ac_compile itself does not contain backslashes and begins
+ # with a dollar sign (not a hyphen), so the echo should work correctly.
+ lt_compile=`echo "$ac_compile" | $SED \
+ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+ -e 's:$: $lt_compiler_flag:'`
+ (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&5)
+ (eval "$lt_compile" 2>out/conftest.err)
+ ac_status=$?
+ cat out/conftest.err >&5
+ echo "$as_me:__oline__: \$? = $ac_status" >&5
+ if (exit $ac_status) && test -s out/conftest2.$ac_objext
+ then
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings
+ $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp
+ $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
+ if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
+ lt_cv_prog_compiler_c_o=yes
+ fi
+ fi
+ chmod u+w . 2>&5
+ $RM conftest*
+ # SGI C++ compiler will create directory out/ii_files/ for
+ # template instantiation
+ test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
+ $RM out/* && rmdir out
+ cd ..
+ $RM -r conftest
+ $RM conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5
+$as_echo "$lt_cv_prog_compiler_c_o" >&6; }
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
+$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
+if test "${lt_cv_prog_compiler_c_o+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_prog_compiler_c_o=no
+ $RM -r conftest 2>/dev/null
+ mkdir conftest
+ cd conftest
+ mkdir out
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+ lt_compiler_flag="-o out/conftest2.$ac_objext"
+ # Insert the option either (1) after the last *FLAGS variable, or
+ # (2) before a word containing "conftest.", or (3) at the end.
+ # Note that $ac_compile itself does not contain backslashes and begins
+ # with a dollar sign (not a hyphen), so the echo should work correctly.
+ lt_compile=`echo "$ac_compile" | $SED \
+ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+ -e 's:$: $lt_compiler_flag:'`
+ (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&5)
+ (eval "$lt_compile" 2>out/conftest.err)
+ ac_status=$?
+ cat out/conftest.err >&5
+ echo "$as_me:__oline__: \$? = $ac_status" >&5
+ if (exit $ac_status) && test -s out/conftest2.$ac_objext
+ then
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings
+ $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp
+ $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
+ if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
+ lt_cv_prog_compiler_c_o=yes
+ fi
+ fi
+ chmod u+w . 2>&5
+ $RM conftest*
+ # SGI C++ compiler will create directory out/ii_files/ for
+ # template instantiation
+ test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
+ $RM out/* && rmdir out
+ cd ..
+ $RM -r conftest
+ $RM conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5
+$as_echo "$lt_cv_prog_compiler_c_o" >&6; }
+
+
+
+
+hard_links="nottested"
+if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then
+ # do not overwrite the value of need_locks provided by the user
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5
+$as_echo_n "checking if we can lock with hard links... " >&6; }
+ hard_links=yes
+ $RM conftest*
+ ln conftest.a conftest.b 2>/dev/null && hard_links=no
+ touch conftest.a
+ ln conftest.a conftest.b 2>&5 || hard_links=no
+ ln conftest.a conftest.b 2>/dev/null && hard_links=no
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5
+$as_echo "$hard_links" >&6; }
+ if test "$hard_links" = no; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5
+$as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;}
+ need_locks=warn
+ fi
+else
+ need_locks=no
+fi
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5
+$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; }
+
+ runpath_var=
+ allow_undefined_flag=
+ always_export_symbols=no
+ archive_cmds=
+ archive_expsym_cmds=
+ compiler_needs_object=no
+ enable_shared_with_static_runtimes=no
+ export_dynamic_flag_spec=
+ export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+ hardcode_automatic=no
+ hardcode_direct=no
+ hardcode_direct_absolute=no
+ hardcode_libdir_flag_spec=
+ hardcode_libdir_flag_spec_ld=
+ hardcode_libdir_separator=
+ hardcode_minus_L=no
+ hardcode_shlibpath_var=unsupported
+ inherit_rpath=no
+ link_all_deplibs=unknown
+ module_cmds=
+ module_expsym_cmds=
+ old_archive_from_new_cmds=
+ old_archive_from_expsyms_cmds=
+ thread_safe_flag_spec=
+ whole_archive_flag_spec=
+ # include_expsyms should be a list of space-separated symbols to be *always*
+ # included in the symbol list
+ include_expsyms=
+ # exclude_expsyms can be an extended regexp of symbols to exclude
+ # it will be wrapped by ` (' and `)$', so one must not match beginning or
+ # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
+ # as well as any symbol that contains `d'.
+ exclude_expsyms='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'
+ # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
+ # platforms (ab)use it in PIC code, but their linkers get confused if
+ # the symbol is explicitly referenced. Since portable code cannot
+ # rely on this symbol name, it's probably fine to never include it in
+ # preloaded symbol tables.
+ # Exclude shared library initialization/finalization symbols.
+ extract_expsyms_cmds=
+
+ case $host_os in
+ cygwin* | mingw* | pw32* | cegcc*)
+ # FIXME: the MSVC++ port hasn't been tested in a loooong time
+ # When not using gcc, we currently assume that we are using
+ # Microsoft Visual C++.
+ if test "$GCC" != yes; then
+ with_gnu_ld=no
+ fi
+ ;;
+ interix*)
+ # we just hope/assume this is gcc and not c89 (= MSVC++)
+ with_gnu_ld=yes
+ ;;
+ openbsd*)
+ with_gnu_ld=no
+ ;;
+ linux* | k*bsd*-gnu)
+ link_all_deplibs=no
+ ;;
+ esac
+
+ ld_shlibs=yes
+ if test "$with_gnu_ld" = yes; then
+ # If archive_cmds runs LD, not CC, wlarc should be empty
+ wlarc='${wl}'
+
+ # Set some defaults for GNU ld with shared library support. These
+ # are reset later if shared libraries are not supported. Putting them
+ # here allows them to be overridden if necessary.
+ runpath_var=LD_RUN_PATH
+ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+ export_dynamic_flag_spec='${wl}--export-dynamic'
+ # ancient GNU ld didn't support --whole-archive et. al.
+ if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then
+ whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+ else
+ whole_archive_flag_spec=
+ fi
+ supports_anon_versioning=no
+ case `$LD -v 2>&1` in
+ *GNU\ gold*) supports_anon_versioning=yes ;;
+ *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11
+ *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
+ *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...
+ *\ 2.11.*) ;; # other 2.11 versions
+ *) supports_anon_versioning=yes ;;
+ esac
+
+ # See if GNU ld supports shared libraries.
+ case $host_os in
+ aix[3-9]*)
+ # On AIX/PPC, the GNU linker is very broken
+ if test "$host_cpu" != ia64; then
+ ld_shlibs=no
+ cat <<_LT_EOF 1>&2
+
+*** Warning: the GNU linker, at least up to release 2.9.1, is reported
+*** to be unable to reliably create shared libraries on AIX.
+*** Therefore, libtool is disabling shared libraries support. If you
+*** really care for shared libraries, you may want to modify your PATH
+*** so that a non-GNU linker is found, and then restart.
+
+_LT_EOF
+ fi
+ ;;
+
+ amigaos*)
+ case $host_cpu in
+ powerpc)
+ # see comment about AmigaOS4 .so support
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ archive_expsym_cmds=''
+ ;;
+ m68k)
+ archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_minus_L=yes
+ ;;
+ esac
+ ;;
+
+ beos*)
+ if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+ allow_undefined_flag=unsupported
+ # Joseph Beckenbach <jrb3@best.com> says some releases of gcc
+ # support --undefined. This deserves some investigation. FIXME
+ archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ else
+ ld_shlibs=no
+ fi
+ ;;
+
+ cygwin* | mingw* | pw32* | cegcc*)
+ # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless,
+ # as there is no search path for DLLs.
+ hardcode_libdir_flag_spec='-L$libdir'
+ allow_undefined_flag=unsupported
+ always_export_symbols=no
+ enable_shared_with_static_runtimes=yes
+ export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols'
+
+ if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+ # If the export-symbols file already is a .def file (1st line
+ # is EXPORTS), use it as is; otherwise, prepend...
+ archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+ cp $export_symbols $output_objdir/$soname.def;
+ else
+ echo EXPORTS > $output_objdir/$soname.def;
+ cat $export_symbols >> $output_objdir/$soname.def;
+ fi~
+ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+ else
+ ld_shlibs=no
+ fi
+ ;;
+
+ interix[3-9]*)
+ hardcode_direct=no
+ hardcode_shlibpath_var=no
+ hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
+ export_dynamic_flag_spec='${wl}-E'
+ # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
+ # Instead, shared libraries are loaded at an image base (0x10000000 by
+ # default) and relocated if they conflict, which is a slow very memory
+ # consuming and fragmenting process. To avoid this, we pick a random,
+ # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
+ # time. Moving up from 0x10000000 also allows more sbrk(2) space.
+ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+ archive_expsym_cmds='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+ ;;
+
+ gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu)
+ tmp_diet=no
+ if test "$host_os" = linux-dietlibc; then
+ case $cc_basename in
+ diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn)
+ esac
+ fi
+ if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
+ && test "$tmp_diet" = no
+ then
+ tmp_addflag=
+ tmp_sharedflag='-shared'
+ case $cc_basename,$host_cpu in
+ pgcc*) # Portland Group C compiler
+ whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
+ tmp_addflag=' $pic_flag'
+ ;;
+ pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers
+ whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
+ tmp_addflag=' $pic_flag -Mnomain' ;;
+ ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64
+ tmp_addflag=' -i_dynamic' ;;
+ efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64
+ tmp_addflag=' -i_dynamic -nofor_main' ;;
+ ifc* | ifort*) # Intel Fortran compiler
+ tmp_addflag=' -nofor_main' ;;
+ lf95*) # Lahey Fortran 8.1
+ whole_archive_flag_spec=
+ tmp_sharedflag='--shared' ;;
+ xl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below)
+ tmp_sharedflag='-qmkshrobj'
+ tmp_addflag= ;;
+ esac
+ case `$CC -V 2>&1 | sed 5q` in
+ *Sun\ C*) # Sun C 5.9
+ whole_archive_flag_spec='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
+ compiler_needs_object=yes
+ tmp_sharedflag='-G' ;;
+ *Sun\ F*) # Sun Fortran 8.3
+ tmp_sharedflag='-G' ;;
+ esac
+ archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+
+ if test "x$supports_anon_versioning" = xyes; then
+ archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~
+ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+ echo "local: *; };" >> $output_objdir/$libname.ver~
+ $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
+ fi
+
+ case $cc_basename in
+ xlf*)
+ # IBM XL Fortran 10.1 on PPC cannot create shared libs itself
+ whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive'
+ hardcode_libdir_flag_spec=
+ hardcode_libdir_flag_spec_ld='-rpath $libdir'
+ archive_cmds='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib'
+ if test "x$supports_anon_versioning" = xyes; then
+ archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~
+ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+ echo "local: *; };" >> $output_objdir/$libname.ver~
+ $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
+ fi
+ ;;
+ esac
+ else
+ ld_shlibs=no
+ fi
+ ;;
+
+ netbsd* | netbsdelf*-gnu)
+ if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
+ archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
+ wlarc=
+ else
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+ fi
+ ;;
+
+ solaris*)
+ if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then
+ ld_shlibs=no
+ cat <<_LT_EOF 1>&2
+
+*** Warning: The releases 2.8.* of the GNU linker cannot reliably
+*** create shared libraries on Solaris systems. Therefore, libtool
+*** is disabling shared libraries support. We urge you to upgrade GNU
+*** binutils to release 2.9.1 or newer. Another option is to modify
+*** your PATH or compiler configuration so that the native linker is
+*** used, and then restart.
+
+_LT_EOF
+ elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+ else
+ ld_shlibs=no
+ fi
+ ;;
+
+ sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*)
+ case `$LD -v 2>&1` in
+ *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*)
+ ld_shlibs=no
+ cat <<_LT_EOF 1>&2
+
+*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not
+*** reliably create shared libraries on SCO systems. Therefore, libtool
+*** is disabling shared libraries support. We urge you to upgrade GNU
+*** binutils to release 2.16.91.0.3 or newer. Another option is to modify
+*** your PATH or compiler configuration so that the native linker is
+*** used, and then restart.
+
+_LT_EOF
+ ;;
+ *)
+ # For security reasons, it is highly recommended that you always
+ # use absolute paths for naming shared libraries, and exclude the
+ # DT_RUNPATH tag from executables and libraries. But doing so
+ # requires that you compile everything twice, which is a pain.
+ if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+ else
+ ld_shlibs=no
+ fi
+ ;;
+ esac
+ ;;
+
+ sunos4*)
+ archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+ wlarc=
+ hardcode_direct=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ *)
+ if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+ else
+ ld_shlibs=no
+ fi
+ ;;
+ esac
+
+ if test "$ld_shlibs" = no; then
+ runpath_var=
+ hardcode_libdir_flag_spec=
+ export_dynamic_flag_spec=
+ whole_archive_flag_spec=
+ fi
+ else
+ # PORTME fill in a description of your system's linker (not GNU ld)
+ case $host_os in
+ aix3*)
+ allow_undefined_flag=unsupported
+ always_export_symbols=yes
+ archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname'
+ # Note: this linker hardcodes the directories in LIBPATH if there
+ # are no directories specified by -L.
+ hardcode_minus_L=yes
+ if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then
+ # Neither direct hardcoding nor static linking is supported with a
+ # broken collect2.
+ hardcode_direct=unsupported
+ fi
+ ;;
+
+ aix[4-9]*)
+ if test "$host_cpu" = ia64; then
+ # On IA64, the linker does run time linking by default, so we don't
+ # have to do anything special.
+ aix_use_runtimelinking=no
+ exp_sym_flag='-Bexport'
+ no_entry_flag=""
+ else
+ # If we're using GNU nm, then we don't want the "-C" option.
+ # -C means demangle to AIX nm, but means don't demangle with GNU nm
+ if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
+ export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
+ else
+ export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
+ fi
+ aix_use_runtimelinking=no
+
+ # Test if we are trying to use run time linking or normal
+ # AIX style linking. If -brtl is somewhere in LDFLAGS, we
+ # need to do runtime linking.
+ case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*)
+ for ld_flag in $LDFLAGS; do
+ if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
+ aix_use_runtimelinking=yes
+ break
+ fi
+ done
+ ;;
+ esac
+
+ exp_sym_flag='-bexport'
+ no_entry_flag='-bnoentry'
+ fi
+
+ # When large executables or shared objects are built, AIX ld can
+ # have problems creating the table of contents. If linking a library
+ # or program results in "error TOC overflow" add -mminimal-toc to
+ # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not
+ # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
+
+ archive_cmds=''
+ hardcode_direct=yes
+ hardcode_direct_absolute=yes
+ hardcode_libdir_separator=':'
+ link_all_deplibs=yes
+ file_list_spec='${wl}-f,'
+
+ if test "$GCC" = yes; then
+ case $host_os in aix4.[012]|aix4.[012].*)
+ # We only want to do this on AIX 4.2 and lower, the check
+ # below for broken collect2 doesn't work under 4.3+
+ collect2name=`${CC} -print-prog-name=collect2`
+ if test -f "$collect2name" &&
+ strings "$collect2name" | $GREP resolve_lib_name >/dev/null
+ then
+ # We have reworked collect2
+ :
+ else
+ # We have old collect2
+ hardcode_direct=unsupported
+ # It fails to find uninstalled libraries when the uninstalled
+ # path is not listed in the libpath. Setting hardcode_minus_L
+ # to unsupported forces relinking
+ hardcode_minus_L=yes
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_libdir_separator=
+ fi
+ ;;
+ esac
+ shared_flag='-shared'
+ if test "$aix_use_runtimelinking" = yes; then
+ shared_flag="$shared_flag "'${wl}-G'
+ fi
+ link_all_deplibs=no
+ else
+ # not using gcc
+ if test "$host_cpu" = ia64; then
+ # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
+ # chokes on -Wl,-G. The following line is correct:
+ shared_flag='-G'
+ else
+ if test "$aix_use_runtimelinking" = yes; then
+ shared_flag='${wl}-G'
+ else
+ shared_flag='${wl}-bM:SRE'
+ fi
+ fi
+ fi
+
+ export_dynamic_flag_spec='${wl}-bexpall'
+ # It seems that -bexpall does not export symbols beginning with
+ # underscore (_), so it is better to generate a list of symbols to export.
+ always_export_symbols=yes
+ if test "$aix_use_runtimelinking" = yes; then
+ # Warning - without using the other runtime loading flags (-brtl),
+ # -berok will link without error, but may produce a broken library.
+ allow_undefined_flag='-berok'
+ # Determine the default libpath from the value encoded in an
+ # empty executable.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+
+lt_aix_libpath_sed='
+ /Import File Strings/,/^$/ {
+ /^0/ {
+ s/^0 *\(.*\)$/\1/
+ p
+ }
+ }'
+aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+# Check for a 64-bit object if we didn't find anything.
+if test -z "$aix_libpath"; then
+ aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+fi
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+
+ hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
+ archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+ else
+ if test "$host_cpu" = ia64; then
+ hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib'
+ allow_undefined_flag="-z nodefs"
+ archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols"
+ else
+ # Determine the default libpath from the value encoded in an
+ # empty executable.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+
+lt_aix_libpath_sed='
+ /Import File Strings/,/^$/ {
+ /^0/ {
+ s/^0 *\(.*\)$/\1/
+ p
+ }
+ }'
+aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+# Check for a 64-bit object if we didn't find anything.
+if test -z "$aix_libpath"; then
+ aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+fi
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+
+ hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
+ # Warning - without using the other run time loading flags,
+ # -berok will link without error, but may produce a broken library.
+ no_undefined_flag=' ${wl}-bernotok'
+ allow_undefined_flag=' ${wl}-berok'
+ # Exported symbols can be pulled into shared objects from archives
+ whole_archive_flag_spec='$convenience'
+ archive_cmds_need_lc=yes
+ # This is similar to how AIX traditionally builds its shared libraries.
+ archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
+ fi
+ fi
+ ;;
+
+ amigaos*)
+ case $host_cpu in
+ powerpc)
+ # see comment about AmigaOS4 .so support
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ archive_expsym_cmds=''
+ ;;
+ m68k)
+ archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_minus_L=yes
+ ;;
+ esac
+ ;;
+
+ bsdi[45]*)
+ export_dynamic_flag_spec=-rdynamic
+ ;;
+
+ cygwin* | mingw* | pw32* | cegcc*)
+ # When not using gcc, we currently assume that we are using
+ # Microsoft Visual C++.
+ # hardcode_libdir_flag_spec is actually meaningless, as there is
+ # no search path for DLLs.
+ hardcode_libdir_flag_spec=' '
+ allow_undefined_flag=unsupported
+ # Tell ltmain to make .lib files, not .a files.
+ libext=lib
+ # Tell ltmain to make .dll files, not .so files.
+ shrext_cmds=".dll"
+ # FIXME: Setting linknames here is a bad hack.
+ archive_cmds='$CC -o $lib $libobjs $compiler_flags `$ECHO "X$deplibs" | $Xsed -e '\''s/ -lc$//'\''` -link -dll~linknames='
+ # The linker will automatically build a .lib file if we build a DLL.
+ old_archive_from_new_cmds='true'
+ # FIXME: Should let the user specify the lib program.
+ old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs'
+ fix_srcfile_path='`cygpath -w "$srcfile"`'
+ enable_shared_with_static_runtimes=yes
+ ;;
+
+ darwin* | rhapsody*)
+
+
+ archive_cmds_need_lc=no
+ hardcode_direct=no
+ hardcode_automatic=yes
+ hardcode_shlibpath_var=unsupported
+ whole_archive_flag_spec=''
+ link_all_deplibs=yes
+ allow_undefined_flag="$_lt_dar_allow_undefined"
+ case $cc_basename in
+ ifort*) _lt_dar_can_shared=yes ;;
+ *) _lt_dar_can_shared=$GCC ;;
+ esac
+ if test "$_lt_dar_can_shared" = "yes"; then
+ output_verbose_link_cmd=echo
+ archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
+ module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
+ archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
+ module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
+
+ else
+ ld_shlibs=no
+ fi
+
+ ;;
+
+ dgux*)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_shlibpath_var=no
+ ;;
+
+ freebsd1*)
+ ld_shlibs=no
+ ;;
+
+ # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
+ # support. Future versions do this automatically, but an explicit c++rt0.o
+ # does not break anything, and helps significantly (at the cost of a little
+ # extra space).
+ freebsd2.2*)
+ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
+ hardcode_libdir_flag_spec='-R$libdir'
+ hardcode_direct=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ # Unfortunately, older versions of FreeBSD 2 do not have this feature.
+ freebsd2*)
+ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_direct=yes
+ hardcode_minus_L=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
+ freebsd* | dragonfly*)
+ archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags'
+ hardcode_libdir_flag_spec='-R$libdir'
+ hardcode_direct=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ hpux9*)
+ if test "$GCC" = yes; then
+ archive_cmds='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+ else
+ archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+ fi
+ hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
+ hardcode_libdir_separator=:
+ hardcode_direct=yes
+
+ # hardcode_minus_L: Not really in the search PATH,
+ # but as the default location of the library.
+ hardcode_minus_L=yes
+ export_dynamic_flag_spec='${wl}-E'
+ ;;
+
+ hpux10*)
+ if test "$GCC" = yes -a "$with_gnu_ld" = no; then
+ archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+ else
+ archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
+ fi
+ if test "$with_gnu_ld" = no; then
+ hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
+ hardcode_libdir_flag_spec_ld='+b $libdir'
+ hardcode_libdir_separator=:
+ hardcode_direct=yes
+ hardcode_direct_absolute=yes
+ export_dynamic_flag_spec='${wl}-E'
+ # hardcode_minus_L: Not really in the search PATH,
+ # but as the default location of the library.
+ hardcode_minus_L=yes
+ fi
+ ;;
+
+ hpux11*)
+ if test "$GCC" = yes -a "$with_gnu_ld" = no; then
+ case $host_cpu in
+ hppa*64*)
+ archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ ia64*)
+ archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ *)
+ archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ esac
+ else
+ case $host_cpu in
+ hppa*64*)
+ archive_cmds='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ ia64*)
+ archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ *)
+ archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ esac
+ fi
+ if test "$with_gnu_ld" = no; then
+ hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
+ hardcode_libdir_separator=:
+
+ case $host_cpu in
+ hppa*64*|ia64*)
+ hardcode_direct=no
+ hardcode_shlibpath_var=no
+ ;;
+ *)
+ hardcode_direct=yes
+ hardcode_direct_absolute=yes
+ export_dynamic_flag_spec='${wl}-E'
+
+ # hardcode_minus_L: Not really in the search PATH,
+ # but as the default location of the library.
+ hardcode_minus_L=yes
+ ;;
+ esac
+ fi
+ ;;
+
+ irix5* | irix6* | nonstopux*)
+ if test "$GCC" = yes; then
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+ # Try to use the -exported_symbol ld option, if it does not
+ # work, assume that -exports_file does not work either and
+ # implicitly export all symbols.
+ save_LDFLAGS="$LDFLAGS"
+ LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+int foo(void) {}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib'
+
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ LDFLAGS="$save_LDFLAGS"
+ else
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
+ archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib'
+ fi
+ archive_cmds_need_lc='no'
+ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+ hardcode_libdir_separator=:
+ inherit_rpath=yes
+ link_all_deplibs=yes
+ ;;
+
+ netbsd* | netbsdelf*-gnu)
+ if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
+ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out
+ else
+ archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF
+ fi
+ hardcode_libdir_flag_spec='-R$libdir'
+ hardcode_direct=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ newsos6)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_direct=yes
+ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+ hardcode_libdir_separator=:
+ hardcode_shlibpath_var=no
+ ;;
+
+ *nto* | *qnx*)
+ ;;
+
+ openbsd*)
+ if test -f /usr/libexec/ld.so; then
+ hardcode_direct=yes
+ hardcode_shlibpath_var=no
+ hardcode_direct_absolute=yes
+ if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+ archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols'
+ hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
+ export_dynamic_flag_spec='${wl}-E'
+ else
+ case $host_os in
+ openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*)
+ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_libdir_flag_spec='-R$libdir'
+ ;;
+ *)
+ archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+ hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
+ ;;
+ esac
+ fi
+ else
+ ld_shlibs=no
+ fi
+ ;;
+
+ os2*)
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_minus_L=yes
+ allow_undefined_flag=unsupported
+ archive_cmds='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$ECHO DATA >> $output_objdir/$libname.def~$ECHO " SINGLE NONSHARED" >> $output_objdir/$libname.def~$ECHO EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
+ old_archive_from_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
+ ;;
+
+ osf3*)
+ if test "$GCC" = yes; then
+ allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
+ archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+ else
+ allow_undefined_flag=' -expect_unresolved \*'
+ archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
+ fi
+ archive_cmds_need_lc='no'
+ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+ hardcode_libdir_separator=:
+ ;;
+
+ osf4* | osf5*) # as osf3* with the addition of -msym flag
+ if test "$GCC" = yes; then
+ allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
+ archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+ else
+ allow_undefined_flag=' -expect_unresolved \*'
+ archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
+ archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~
+ $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp'
+
+ # Both c and cxx compiler support -rpath directly
+ hardcode_libdir_flag_spec='-rpath $libdir'
+ fi
+ archive_cmds_need_lc='no'
+ hardcode_libdir_separator=:
+ ;;
+
+ solaris*)
+ no_undefined_flag=' -z defs'
+ if test "$GCC" = yes; then
+ wlarc='${wl}'
+ archive_cmds='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+ $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
+ else
+ case `$CC -V 2>&1` in
+ *"Compilers 5.0"*)
+ wlarc=''
+ archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp'
+ ;;
+ *)
+ wlarc='${wl}'
+ archive_cmds='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+ $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
+ ;;
+ esac
+ fi
+ hardcode_libdir_flag_spec='-R$libdir'
+ hardcode_shlibpath_var=no
+ case $host_os in
+ solaris2.[0-5] | solaris2.[0-5].*) ;;
+ *)
+ # The compiler driver will combine and reorder linker options,
+ # but understands `-z linker_flag'. GCC discards it without `$wl',
+ # but is careful enough not to reorder.
+ # Supported since Solaris 2.6 (maybe 2.5.1?)
+ if test "$GCC" = yes; then
+ whole_archive_flag_spec='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
+ else
+ whole_archive_flag_spec='-z allextract$convenience -z defaultextract'
+ fi
+ ;;
+ esac
+ link_all_deplibs=yes
+ ;;
+
+ sunos4*)
+ if test "x$host_vendor" = xsequent; then
+ # Use $CC to link under sequent, because it throws in some extra .o
+ # files that make .init and .fini sections work.
+ archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags'
+ else
+ archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
+ fi
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_direct=yes
+ hardcode_minus_L=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ sysv4)
+ case $host_vendor in
+ sni)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_direct=yes # is this really true???
+ ;;
+ siemens)
+ ## LD is ld it makes a PLAMLIB
+ ## CC just makes a GrossModule.
+ archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags'
+ reload_cmds='$CC -r -o $output$reload_objs'
+ hardcode_direct=no
+ ;;
+ motorola)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_direct=no #Motorola manual says yes, but my tests say they lie
+ ;;
+ esac
+ runpath_var='LD_RUN_PATH'
+ hardcode_shlibpath_var=no
+ ;;
+
+ sysv4.3*)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_shlibpath_var=no
+ export_dynamic_flag_spec='-Bexport'
+ ;;
+
+ sysv4*MP*)
+ if test -d /usr/nec; then
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_shlibpath_var=no
+ runpath_var=LD_RUN_PATH
+ hardcode_runpath_var=yes
+ ld_shlibs=yes
+ fi
+ ;;
+
+ sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*)
+ no_undefined_flag='${wl}-z,text'
+ archive_cmds_need_lc=no
+ hardcode_shlibpath_var=no
+ runpath_var='LD_RUN_PATH'
+
+ if test "$GCC" = yes; then
+ archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ else
+ archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ fi
+ ;;
+
+ sysv5* | sco3.2v5* | sco5v6*)
+ # Note: We can NOT use -z defs as we might desire, because we do not
+ # link with -lc, and that would cause any symbols used from libc to
+ # always be unresolved, which means just about no library would
+ # ever link correctly. If we're not using GNU ld we use -z text
+ # though, which does catch some bad symbols but isn't as heavy-handed
+ # as -z defs.
+ no_undefined_flag='${wl}-z,text'
+ allow_undefined_flag='${wl}-z,nodefs'
+ archive_cmds_need_lc=no
+ hardcode_shlibpath_var=no
+ hardcode_libdir_flag_spec='${wl}-R,$libdir'
+ hardcode_libdir_separator=':'
+ link_all_deplibs=yes
+ export_dynamic_flag_spec='${wl}-Bexport'
+ runpath_var='LD_RUN_PATH'
+
+ if test "$GCC" = yes; then
+ archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ else
+ archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ fi
+ ;;
+
+ uts4*)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_shlibpath_var=no
+ ;;
+
+ *)
+ ld_shlibs=no
+ ;;
+ esac
+
+ if test x$host_vendor = xsni; then
+ case $host in
+ sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+ export_dynamic_flag_spec='${wl}-Blargedynsym'
+ ;;
+ esac
+ fi
+ fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5
+$as_echo "$ld_shlibs" >&6; }
+test "$ld_shlibs" = no && can_build_shared=no
+
+with_gnu_ld=$with_gnu_ld
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#
+# Do we need to explicitly link libc?
+#
+case "x$archive_cmds_need_lc" in
+x|xyes)
+ # Assume -lc should be added
+ archive_cmds_need_lc=yes
+
+ if test "$enable_shared" = yes && test "$GCC" = yes; then
+ case $archive_cmds in
+ *'~'*)
+ # FIXME: we may have to deal with multi-command sequences.
+ ;;
+ '$CC '*)
+ # Test whether the compiler implicitly links with -lc since on some
+ # systems, -lgcc has to come before -lc. If gcc already passes -lc
+ # to ld, don't add -lc before -lgcc.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5
+$as_echo_n "checking whether -lc should be explicitly linked in... " >&6; }
+ $RM conftest*
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } 2>conftest.err; then
+ soname=conftest
+ lib=conftest
+ libobjs=conftest.$ac_objext
+ deplibs=
+ wl=$lt_prog_compiler_wl
+ pic_flag=$lt_prog_compiler_pic
+ compiler_flags=-v
+ linker_flags=-v
+ verstring=
+ output_objdir=.
+ libname=conftest
+ lt_save_allow_undefined_flag=$allow_undefined_flag
+ allow_undefined_flag=
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5
+ (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+ then
+ archive_cmds_need_lc=no
+ else
+ archive_cmds_need_lc=yes
+ fi
+ allow_undefined_flag=$lt_save_allow_undefined_flag
+ else
+ cat conftest.err 1>&5
+ fi
+ $RM conftest*
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $archive_cmds_need_lc" >&5
+$as_echo "$archive_cmds_need_lc" >&6; }
+ ;;
+ esac
+ fi
+ ;;
+esac
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5
+$as_echo_n "checking dynamic linker characteristics... " >&6; }
+
+if test "$GCC" = yes; then
+ case $host_os in
+ darwin*) lt_awk_arg="/^libraries:/,/LR/" ;;
+ *) lt_awk_arg="/^libraries:/" ;;
+ esac
+ lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e "s,=/,/,g"`
+ if $ECHO "$lt_search_path_spec" | $GREP ';' >/dev/null ; then
+ # if the path contains ";" then we assume it to be the separator
+ # otherwise default to the standard path separator (i.e. ":") - it is
+ # assumed that no part of a normal pathname contains ";" but that should
+ # okay in the real world where ";" in dirpaths is itself problematic.
+ lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e 's/;/ /g'`
+ else
+ lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
+ fi
+ # Ok, now we have the path, separated by spaces, we can step through it
+ # and add multilib dir if necessary.
+ lt_tmp_lt_search_path_spec=
+ lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null`
+ for lt_sys_path in $lt_search_path_spec; do
+ if test -d "$lt_sys_path/$lt_multi_os_dir"; then
+ lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir"
+ else
+ test -d "$lt_sys_path" && \
+ lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path"
+ fi
+ done
+ lt_search_path_spec=`$ECHO $lt_tmp_lt_search_path_spec | awk '
+BEGIN {RS=" "; FS="/|\n";} {
+ lt_foo="";
+ lt_count=0;
+ for (lt_i = NF; lt_i > 0; lt_i--) {
+ if ($lt_i != "" && $lt_i != ".") {
+ if ($lt_i == "..") {
+ lt_count++;
+ } else {
+ if (lt_count == 0) {
+ lt_foo="/" $lt_i lt_foo;
+ } else {
+ lt_count--;
+ }
+ }
+ }
+ }
+ if (lt_foo != "") { lt_freq[lt_foo]++; }
+ if (lt_freq[lt_foo] == 1) { print lt_foo; }
+}'`
+ sys_lib_search_path_spec=`$ECHO $lt_search_path_spec`
+else
+ sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
+fi
+library_names_spec=
+libname_spec='lib$name'
+soname_spec=
+shrext_cmds=".so"
+postinstall_cmds=
+postuninstall_cmds=
+finish_cmds=
+finish_eval=
+shlibpath_var=
+shlibpath_overrides_runpath=unknown
+version_type=none
+dynamic_linker="$host_os ld.so"
+sys_lib_dlsearch_path_spec="/lib /usr/lib"
+need_lib_prefix=unknown
+hardcode_into_libs=no
+
+# when you set need_version to no, make sure it does not cause -set_version
+# flags to be left without arguments
+need_version=unknown
+
+case $host_os in
+aix3*)
+ version_type=linux
+ library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
+ shlibpath_var=LIBPATH
+
+ # AIX 3 has no versioning support, so we append a major version to the name.
+ soname_spec='${libname}${release}${shared_ext}$major'
+ ;;
+
+aix[4-9]*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ hardcode_into_libs=yes
+ if test "$host_cpu" = ia64; then
+ # AIX 5 supports IA64
+ library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
+ shlibpath_var=LD_LIBRARY_PATH
+ else
+ # With GCC up to 2.95.x, collect2 would create an import file
+ # for dependence libraries. The import file would start with
+ # the line `#! .'. This would cause the generated library to
+ # depend on `.', always an invalid library. This was fixed in
+ # development snapshots of GCC prior to 3.0.
+ case $host_os in
+ aix4 | aix4.[01] | aix4.[01].*)
+ if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
+ echo ' yes '
+ echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then
+ :
+ else
+ can_build_shared=no
+ fi
+ ;;
+ esac
+ # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
+ # soname into executable. Probably we can add versioning support to
+ # collect2, so additional links can be useful in future.
+ if test "$aix_use_runtimelinking" = yes; then
+ # If using run time linking (on AIX 4.2 or later) use lib<name>.so
+ # instead of lib<name>.a to let people know that these are not
+ # typical AIX shared libraries.
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ else
+ # We preserve .a as extension for shared libraries through AIX4.2
+ # and later when we are not doing run time linking.
+ library_names_spec='${libname}${release}.a $libname.a'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ fi
+ shlibpath_var=LIBPATH
+ fi
+ ;;
+
+amigaos*)
+ case $host_cpu in
+ powerpc)
+ # Since July 2007 AmigaOS4 officially supports .so libraries.
+ # When compiling the executable, add -use-dynld -Lsobjs: to the compileline.
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ ;;
+ m68k)
+ library_names_spec='$libname.ixlibrary $libname.a'
+ # Create ${libname}_ixlibrary.a entries in /sys/libs.
+ finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$ECHO "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
+ ;;
+ esac
+ ;;
+
+beos*)
+ library_names_spec='${libname}${shared_ext}'
+ dynamic_linker="$host_os ld.so"
+ shlibpath_var=LIBRARY_PATH
+ ;;
+
+bsdi[45]*)
+ version_type=linux
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
+ sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
+ # the default ld.so.conf also contains /usr/contrib/lib and
+ # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
+ # libtool to hard-code these into programs
+ ;;
+
+cygwin* | mingw* | pw32* | cegcc*)
+ version_type=windows
+ shrext_cmds=".dll"
+ need_version=no
+ need_lib_prefix=no
+
+ case $GCC,$host_os in
+ yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*)
+ library_names_spec='$libname.dll.a'
+ # DLL is installed to $(libdir)/../bin by postinstall_cmds
+ postinstall_cmds='base_file=`basename \${file}`~
+ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
+ dldir=$destdir/`dirname \$dlpath`~
+ test -d \$dldir || mkdir -p \$dldir~
+ $install_prog $dir/$dlname \$dldir/$dlname~
+ chmod a+x \$dldir/$dlname~
+ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then
+ eval '\''$striplib \$dldir/$dlname'\'' || exit \$?;
+ fi'
+ postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
+ dlpath=$dir/\$dldll~
+ $RM \$dlpath'
+ shlibpath_overrides_runpath=yes
+
+ case $host_os in
+ cygwin*)
+ # Cygwin DLLs use 'cyg' prefix rather than 'lib'
+ soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+ sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib"
+ ;;
+ mingw* | cegcc*)
+ # MinGW DLLs use traditional 'lib' prefix
+ soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+ sys_lib_search_path_spec=`$CC -print-search-dirs | $GREP "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
+ if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then
+ # It is most probably a Windows format PATH printed by
+ # mingw gcc, but we are running on Cygwin. Gcc prints its search
+ # path with ; separators, and with drive letters. We can handle the
+ # drive letters (cygwin fileutils understands them), so leave them,
+ # especially as we might pass files found there to a mingw objdump,
+ # which wouldn't understand a cygwinified path. Ahh.
+ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
+ else
+ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
+ fi
+ ;;
+ pw32*)
+ # pw32 DLLs use 'pw' prefix rather than 'lib'
+ library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+ ;;
+ esac
+ ;;
+
+ *)
+ library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib'
+ ;;
+ esac
+ dynamic_linker='Win32 ld.exe'
+ # FIXME: first we should search . and the directory the executable is in
+ shlibpath_var=PATH
+ ;;
+
+darwin* | rhapsody*)
+ dynamic_linker="$host_os dyld"
+ version_type=darwin
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext'
+ soname_spec='${libname}${release}${major}$shared_ext'
+ shlibpath_overrides_runpath=yes
+ shlibpath_var=DYLD_LIBRARY_PATH
+ shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
+
+ sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"
+ sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
+ ;;
+
+dgux*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ ;;
+
+freebsd1*)
+ dynamic_linker=no
+ ;;
+
+freebsd* | dragonfly*)
+ # DragonFly does not have aout. When/if they implement a new
+ # versioning mechanism, adjust this.
+ if test -x /usr/bin/objformat; then
+ objformat=`/usr/bin/objformat`
+ else
+ case $host_os in
+ freebsd[123]*) objformat=aout ;;
+ *) objformat=elf ;;
+ esac
+ fi
+ version_type=freebsd-$objformat
+ case $version_type in
+ freebsd-elf*)
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
+ need_version=no
+ need_lib_prefix=no
+ ;;
+ freebsd-*)
+ library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
+ need_version=yes
+ ;;
+ esac
+ shlibpath_var=LD_LIBRARY_PATH
+ case $host_os in
+ freebsd2*)
+ shlibpath_overrides_runpath=yes
+ ;;
+ freebsd3.[01]* | freebsdelf3.[01]*)
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ ;;
+ freebsd3.[2-9]* | freebsdelf3.[2-9]* | \
+ freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1)
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ ;;
+ *) # from 4.6 on, and DragonFly
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ ;;
+ esac
+ ;;
+
+gnu*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ hardcode_into_libs=yes
+ ;;
+
+hpux9* | hpux10* | hpux11*)
+ # Give a soname corresponding to the major version so that dld.sl refuses to
+ # link against other versions.
+ version_type=sunos
+ need_lib_prefix=no
+ need_version=no
+ case $host_cpu in
+ ia64*)
+ shrext_cmds='.so'
+ hardcode_into_libs=yes
+ dynamic_linker="$host_os dld.so"
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ if test "X$HPUX_IA64_MODE" = X32; then
+ sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
+ else
+ sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
+ fi
+ sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+ ;;
+ hppa*64*)
+ shrext_cmds='.sl'
+ hardcode_into_libs=yes
+ dynamic_linker="$host_os dld.sl"
+ shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
+ shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
+ sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+ ;;
+ *)
+ shrext_cmds='.sl'
+ dynamic_linker="$host_os dld.sl"
+ shlibpath_var=SHLIB_PATH
+ shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ ;;
+ esac
+ # HP-UX runs *really* slowly unless shared libraries are mode 555.
+ postinstall_cmds='chmod 555 $lib'
+ ;;
+
+interix[3-9]*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ ;;
+
+irix5* | irix6* | nonstopux*)
+ case $host_os in
+ nonstopux*) version_type=nonstopux ;;
+ *)
+ if test "$lt_cv_prog_gnu_ld" = yes; then
+ version_type=linux
+ else
+ version_type=irix
+ fi ;;
+ esac
+ need_lib_prefix=no
+ need_version=no
+ soname_spec='${libname}${release}${shared_ext}$major'
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
+ case $host_os in
+ irix5* | nonstopux*)
+ libsuff= shlibsuff=
+ ;;
+ *)
+ case $LD in # libtool.m4 will add one of these switches to LD
+ *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
+ libsuff= shlibsuff= libmagic=32-bit;;
+ *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
+ libsuff=32 shlibsuff=N32 libmagic=N32;;
+ *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
+ libsuff=64 shlibsuff=64 libmagic=64-bit;;
+ *) libsuff= shlibsuff= libmagic=never-match;;
+ esac
+ ;;
+ esac
+ shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
+ shlibpath_overrides_runpath=no
+ sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
+ sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
+ hardcode_into_libs=yes
+ ;;
+
+# No shared lib support for Linux oldld, aout, or coff.
+linux*oldld* | linux*aout* | linux*coff*)
+ dynamic_linker=no
+ ;;
+
+# This must be Linux ELF.
+linux* | k*bsd*-gnu | kopensolaris*-gnu)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ # Some binutils ld are patched to set DT_RUNPATH
+ save_LDFLAGS=$LDFLAGS
+ save_libdir=$libdir
+ eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \
+ LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\""
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then :
+ shlibpath_overrides_runpath=yes
+fi
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ LDFLAGS=$save_LDFLAGS
+ libdir=$save_libdir
+
+ # This implies no fast_install, which is unacceptable.
+ # Some rework will be needed to allow for fast_install
+ # before this can be enabled.
+ hardcode_into_libs=yes
+
+ # Append ld.so.conf contents to the search path
+ if test -f /etc/ld.so.conf; then
+ lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
+ sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
+ fi
+
+ # We used to test for /lib/ld.so.1 and disable shared libraries on
+ # powerpc, because MkLinux only supported shared libraries with the
+ # GNU dynamic linker. Since this was broken with cross compilers,
+ # most powerpc-linux boxes support dynamic linking these days and
+ # people can always --disable-shared, the test was removed, and we
+ # assume the GNU/Linux dynamic linker is in use.
+ dynamic_linker='GNU/Linux ld.so'
+ ;;
+
+netbsdelf*-gnu)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ dynamic_linker='NetBSD ld.elf_so'
+ ;;
+
+netbsd*)
+ version_type=sunos
+ need_lib_prefix=no
+ need_version=no
+ if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+ dynamic_linker='NetBSD (a.out) ld.so'
+ else
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ dynamic_linker='NetBSD ld.elf_so'
+ fi
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ ;;
+
+newsos6)
+ version_type=linux
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ ;;
+
+*nto* | *qnx*)
+ version_type=qnx
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ dynamic_linker='ldqnx.so'
+ ;;
+
+openbsd*)
+ version_type=sunos
+ sys_lib_dlsearch_path_spec="/usr/lib"
+ need_lib_prefix=no
+ # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs.
+ case $host_os in
+ openbsd3.3 | openbsd3.3.*) need_version=yes ;;
+ *) need_version=no ;;
+ esac
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+ case $host_os in
+ openbsd2.[89] | openbsd2.[89].*)
+ shlibpath_overrides_runpath=no
+ ;;
+ *)
+ shlibpath_overrides_runpath=yes
+ ;;
+ esac
+ else
+ shlibpath_overrides_runpath=yes
+ fi
+ ;;
+
+os2*)
+ libname_spec='$name'
+ shrext_cmds=".dll"
+ need_lib_prefix=no
+ library_names_spec='$libname${shared_ext} $libname.a'
+ dynamic_linker='OS/2 ld.exe'
+ shlibpath_var=LIBPATH
+ ;;
+
+osf3* | osf4* | osf5*)
+ version_type=osf
+ need_lib_prefix=no
+ need_version=no
+ soname_spec='${libname}${release}${shared_ext}$major'
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ shlibpath_var=LD_LIBRARY_PATH
+ sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
+ sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
+ ;;
+
+rdos*)
+ dynamic_linker=no
+ ;;
+
+solaris*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ # ldd complains unless libraries are executable
+ postinstall_cmds='chmod +x $lib'
+ ;;
+
+sunos4*)
+ version_type=sunos
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+ finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ if test "$with_gnu_ld" = yes; then
+ need_lib_prefix=no
+ fi
+ need_version=yes
+ ;;
+
+sysv4 | sysv4.3*)
+ version_type=linux
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ case $host_vendor in
+ sni)
+ shlibpath_overrides_runpath=no
+ need_lib_prefix=no
+ runpath_var=LD_RUN_PATH
+ ;;
+ siemens)
+ need_lib_prefix=no
+ ;;
+ motorola)
+ need_lib_prefix=no
+ need_version=no
+ shlibpath_overrides_runpath=no
+ sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
+ ;;
+ esac
+ ;;
+
+sysv4*MP*)
+ if test -d /usr/nec ;then
+ version_type=linux
+ library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
+ soname_spec='$libname${shared_ext}.$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ fi
+ ;;
+
+sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
+ version_type=freebsd-elf
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ if test "$with_gnu_ld" = yes; then
+ sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib'
+ else
+ sys_lib_search_path_spec='/usr/ccs/lib /usr/lib'
+ case $host_os in
+ sco3.2v5*)
+ sys_lib_search_path_spec="$sys_lib_search_path_spec /lib"
+ ;;
+ esac
+ fi
+ sys_lib_dlsearch_path_spec='/usr/lib'
+ ;;
+
+tpf*)
+ # TPF is a cross-target only. Preferred cross-host = GNU/Linux.
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ ;;
+
+uts4*)
+ version_type=linux
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ ;;
+
+*)
+ dynamic_linker=no
+ ;;
+esac
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5
+$as_echo "$dynamic_linker" >&6; }
+test "$dynamic_linker" = no && can_build_shared=no
+
+variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
+if test "$GCC" = yes; then
+ variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
+fi
+
+if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then
+ sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec"
+fi
+if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then
+ sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec"
+fi
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5
+$as_echo_n "checking how to hardcode library paths into programs... " >&6; }
+hardcode_action=
+if test -n "$hardcode_libdir_flag_spec" ||
+ test -n "$runpath_var" ||
+ test "X$hardcode_automatic" = "Xyes" ; then
+
+ # We can hardcode non-existent directories.
+ if test "$hardcode_direct" != no &&
+ # If the only mechanism to avoid hardcoding is shlibpath_var, we
+ # have to relink, otherwise we might link with an installed library
+ # when we should be linking with a yet-to-be-installed one
+ ## test "$_LT_TAGVAR(hardcode_shlibpath_var, )" != no &&
+ test "$hardcode_minus_L" != no; then
+ # Linking always hardcodes the temporary library directory.
+ hardcode_action=relink
+ else
+ # We can link without hardcoding, and we can hardcode nonexisting dirs.
+ hardcode_action=immediate
+ fi
+else
+ # We cannot hardcode anything, or else we can only hardcode existing
+ # directories.
+ hardcode_action=unsupported
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5
+$as_echo "$hardcode_action" >&6; }
+
+if test "$hardcode_action" = relink ||
+ test "$inherit_rpath" = yes; then
+ # Fast installation is not supported
+ enable_fast_install=no
+elif test "$shlibpath_overrides_runpath" = yes ||
+ test "$enable_shared" = no; then
+ # Fast installation is not necessary
+ enable_fast_install=needless
+fi
+
+
+
+
+
+
+ if test "x$enable_dlopen" != xyes; then
+ enable_dlopen=unknown
+ enable_dlopen_self=unknown
+ enable_dlopen_self_static=unknown
+else
+ lt_cv_dlopen=no
+ lt_cv_dlopen_libs=
+
+ case $host_os in
+ beos*)
+ lt_cv_dlopen="load_add_on"
+ lt_cv_dlopen_libs=
+ lt_cv_dlopen_self=yes
+ ;;
+
+ mingw* | pw32* | cegcc*)
+ lt_cv_dlopen="LoadLibrary"
+ lt_cv_dlopen_libs=
+ ;;
+
+ cygwin*)
+ lt_cv_dlopen="dlopen"
+ lt_cv_dlopen_libs=
+ ;;
+
+ darwin*)
+ # if libdl is installed we need to link against it
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
+$as_echo_n "checking for dlopen in -ldl... " >&6; }
+if test "${ac_cv_lib_dl_dlopen+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldl $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dlopen ();
+int
+main ()
+{
+return dlopen ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_dl_dlopen=yes
+else
+ ac_cv_lib_dl_dlopen=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
+$as_echo "$ac_cv_lib_dl_dlopen" >&6; }
+if test "x$ac_cv_lib_dl_dlopen" = x""yes; then :
+ lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
+else
+
+ lt_cv_dlopen="dyld"
+ lt_cv_dlopen_libs=
+ lt_cv_dlopen_self=yes
+
+fi
+
+ ;;
+
+ *)
+ ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load"
+if test "x$ac_cv_func_shl_load" = x""yes; then :
+ lt_cv_dlopen="shl_load"
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5
+$as_echo_n "checking for shl_load in -ldld... " >&6; }
+if test "${ac_cv_lib_dld_shl_load+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldld $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char shl_load ();
+int
+main ()
+{
+return shl_load ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_dld_shl_load=yes
+else
+ ac_cv_lib_dld_shl_load=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5
+$as_echo "$ac_cv_lib_dld_shl_load" >&6; }
+if test "x$ac_cv_lib_dld_shl_load" = x""yes; then :
+ lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"
+else
+ ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen"
+if test "x$ac_cv_func_dlopen" = x""yes; then :
+ lt_cv_dlopen="dlopen"
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
+$as_echo_n "checking for dlopen in -ldl... " >&6; }
+if test "${ac_cv_lib_dl_dlopen+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldl $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dlopen ();
+int
+main ()
+{
+return dlopen ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_dl_dlopen=yes
+else
+ ac_cv_lib_dl_dlopen=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
+$as_echo "$ac_cv_lib_dl_dlopen" >&6; }
+if test "x$ac_cv_lib_dl_dlopen" = x""yes; then :
+ lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5
+$as_echo_n "checking for dlopen in -lsvld... " >&6; }
+if test "${ac_cv_lib_svld_dlopen+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lsvld $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dlopen ();
+int
+main ()
+{
+return dlopen ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_svld_dlopen=yes
+else
+ ac_cv_lib_svld_dlopen=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5
+$as_echo "$ac_cv_lib_svld_dlopen" >&6; }
+if test "x$ac_cv_lib_svld_dlopen" = x""yes; then :
+ lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5
+$as_echo_n "checking for dld_link in -ldld... " >&6; }
+if test "${ac_cv_lib_dld_dld_link+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldld $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dld_link ();
+int
+main ()
+{
+return dld_link ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_dld_dld_link=yes
+else
+ ac_cv_lib_dld_dld_link=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5
+$as_echo "$ac_cv_lib_dld_dld_link" >&6; }
+if test "x$ac_cv_lib_dld_dld_link" = x""yes; then :
+ lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"
+fi
+
+
+fi
+
+
+fi
+
+
+fi
+
+
+fi
+
+
+fi
+
+ ;;
+ esac
+
+ if test "x$lt_cv_dlopen" != xno; then
+ enable_dlopen=yes
+ else
+ enable_dlopen=no
+ fi
+
+ case $lt_cv_dlopen in
+ dlopen)
+ save_CPPFLAGS="$CPPFLAGS"
+ test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
+
+ save_LDFLAGS="$LDFLAGS"
+ wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
+
+ save_LIBS="$LIBS"
+ LIBS="$lt_cv_dlopen_libs $LIBS"
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5
+$as_echo_n "checking whether a program can dlopen itself... " >&6; }
+if test "${lt_cv_dlopen_self+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "$cross_compiling" = yes; then :
+ lt_cv_dlopen_self=cross
+else
+ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+ lt_status=$lt_dlunknown
+ cat > conftest.$ac_ext <<_LT_EOF
+#line __oline__ "configure"
+#include "confdefs.h"
+
+#if HAVE_DLFCN_H
+#include <dlfcn.h>
+#endif
+
+#include <stdio.h>
+
+#ifdef RTLD_GLOBAL
+# define LT_DLGLOBAL RTLD_GLOBAL
+#else
+# ifdef DL_GLOBAL
+# define LT_DLGLOBAL DL_GLOBAL
+# else
+# define LT_DLGLOBAL 0
+# endif
+#endif
+
+/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
+ find out it does not work in some platform. */
+#ifndef LT_DLLAZY_OR_NOW
+# ifdef RTLD_LAZY
+# define LT_DLLAZY_OR_NOW RTLD_LAZY
+# else
+# ifdef DL_LAZY
+# define LT_DLLAZY_OR_NOW DL_LAZY
+# else
+# ifdef RTLD_NOW
+# define LT_DLLAZY_OR_NOW RTLD_NOW
+# else
+# ifdef DL_NOW
+# define LT_DLLAZY_OR_NOW DL_NOW
+# else
+# define LT_DLLAZY_OR_NOW 0
+# endif
+# endif
+# endif
+# endif
+#endif
+
+void fnord() { int i=42;}
+int main ()
+{
+ void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
+ int status = $lt_dlunknown;
+
+ if (self)
+ {
+ if (dlsym (self,"fnord")) status = $lt_dlno_uscore;
+ else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
+ /* dlclose (self); */
+ }
+ else
+ puts (dlerror ());
+
+ return status;
+}
+_LT_EOF
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then
+ (./conftest; exit; ) >&5 2>/dev/null
+ lt_status=$?
+ case x$lt_status in
+ x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;;
+ x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;;
+ x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;;
+ esac
+ else :
+ # compilation failed
+ lt_cv_dlopen_self=no
+ fi
+fi
+rm -fr conftest*
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5
+$as_echo "$lt_cv_dlopen_self" >&6; }
+
+ if test "x$lt_cv_dlopen_self" = xyes; then
+ wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5
+$as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; }
+if test "${lt_cv_dlopen_self_static+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "$cross_compiling" = yes; then :
+ lt_cv_dlopen_self_static=cross
+else
+ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+ lt_status=$lt_dlunknown
+ cat > conftest.$ac_ext <<_LT_EOF
+#line __oline__ "configure"
+#include "confdefs.h"
+
+#if HAVE_DLFCN_H
+#include <dlfcn.h>
+#endif
+
+#include <stdio.h>
+
+#ifdef RTLD_GLOBAL
+# define LT_DLGLOBAL RTLD_GLOBAL
+#else
+# ifdef DL_GLOBAL
+# define LT_DLGLOBAL DL_GLOBAL
+# else
+# define LT_DLGLOBAL 0
+# endif
+#endif
+
+/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
+ find out it does not work in some platform. */
+#ifndef LT_DLLAZY_OR_NOW
+# ifdef RTLD_LAZY
+# define LT_DLLAZY_OR_NOW RTLD_LAZY
+# else
+# ifdef DL_LAZY
+# define LT_DLLAZY_OR_NOW DL_LAZY
+# else
+# ifdef RTLD_NOW
+# define LT_DLLAZY_OR_NOW RTLD_NOW
+# else
+# ifdef DL_NOW
+# define LT_DLLAZY_OR_NOW DL_NOW
+# else
+# define LT_DLLAZY_OR_NOW 0
+# endif
+# endif
+# endif
+# endif
+#endif
+
+void fnord() { int i=42;}
+int main ()
+{
+ void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
+ int status = $lt_dlunknown;
+
+ if (self)
+ {
+ if (dlsym (self,"fnord")) status = $lt_dlno_uscore;
+ else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
+ /* dlclose (self); */
+ }
+ else
+ puts (dlerror ());
+
+ return status;
+}
+_LT_EOF
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then
+ (./conftest; exit; ) >&5 2>/dev/null
+ lt_status=$?
+ case x$lt_status in
+ x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;;
+ x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;;
+ x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;;
+ esac
+ else :
+ # compilation failed
+ lt_cv_dlopen_self_static=no
+ fi
+fi
+rm -fr conftest*
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5
+$as_echo "$lt_cv_dlopen_self_static" >&6; }
+ fi
+
+ CPPFLAGS="$save_CPPFLAGS"
+ LDFLAGS="$save_LDFLAGS"
+ LIBS="$save_LIBS"
+ ;;
+ esac
+
+ case $lt_cv_dlopen_self in
+ yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
+ *) enable_dlopen_self=unknown ;;
+ esac
+
+ case $lt_cv_dlopen_self_static in
+ yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
+ *) enable_dlopen_self_static=unknown ;;
+ esac
+fi
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+striplib=
+old_striplib=
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5
+$as_echo_n "checking whether stripping libraries is possible... " >&6; }
+if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then
+ test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
+ test -z "$striplib" && striplib="$STRIP --strip-unneeded"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+else
+# FIXME - insert some real tests, host_os isn't really good enough
+ case $host_os in
+ darwin*)
+ if test -n "$STRIP" ; then
+ striplib="$STRIP -x"
+ old_striplib="$STRIP -S"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ fi
+ ;;
+ *)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ ;;
+ esac
+fi
+
+
+
+
+
+
+
+
+
+
+
+
+ # Report which library types will actually be built
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5
+$as_echo_n "checking if libtool supports shared libraries... " >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5
+$as_echo "$can_build_shared" >&6; }
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5
+$as_echo_n "checking whether to build shared libraries... " >&6; }
+ test "$can_build_shared" = "no" && enable_shared=no
+
+ # On AIX, shared libraries and static libraries use the same namespace, and
+ # are all built from PIC.
+ case $host_os in
+ aix3*)
+ test "$enable_shared" = yes && enable_static=no
+ if test -n "$RANLIB"; then
+ archive_cmds="$archive_cmds~\$RANLIB \$lib"
+ postinstall_cmds='$RANLIB $lib'
+ fi
+ ;;
+
+ aix[4-9]*)
+ if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
+ test "$enable_shared" = yes && enable_static=no
+ fi
+ ;;
+ esac
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5
+$as_echo "$enable_shared" >&6; }
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5
+$as_echo_n "checking whether to build static libraries... " >&6; }
+ # Make sure either enable_shared or enable_static is yes.
+ test "$enable_shared" = yes || enable_static=yes
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5
+$as_echo "$enable_static" >&6; }
+
+
+
+
+fi
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+CC="$lt_save_CC"
+
+
+ac_ext=cpp
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+
+archive_cmds_need_lc_CXX=no
+allow_undefined_flag_CXX=
+always_export_symbols_CXX=no
+archive_expsym_cmds_CXX=
+compiler_needs_object_CXX=no
+export_dynamic_flag_spec_CXX=
+hardcode_direct_CXX=no
+hardcode_direct_absolute_CXX=no
+hardcode_libdir_flag_spec_CXX=
+hardcode_libdir_flag_spec_ld_CXX=
+hardcode_libdir_separator_CXX=
+hardcode_minus_L_CXX=no
+hardcode_shlibpath_var_CXX=unsupported
+hardcode_automatic_CXX=no
+inherit_rpath_CXX=no
+module_cmds_CXX=
+module_expsym_cmds_CXX=
+link_all_deplibs_CXX=unknown
+old_archive_cmds_CXX=$old_archive_cmds
+no_undefined_flag_CXX=
+whole_archive_flag_spec_CXX=
+enable_shared_with_static_runtimes_CXX=no
+
+# Source file extension for C++ test sources.
+ac_ext=cpp
+
+# Object file extension for compiled C++ test sources.
+objext=o
+objext_CXX=$objext
+
+# No sense in running all these tests if we already determined that
+# the CXX compiler isn't working. Some variables (like enable_shared)
+# are currently assumed to apply to all compilers on this platform,
+# and will be corrupted by setting them based on a non-working compiler.
+if test "$_lt_caught_CXX_error" != yes; then
+ # Code to be used in simple compile tests
+ lt_simple_compile_test_code="int some_variable = 0;"
+
+ # Code to be used in simple link tests
+ lt_simple_link_test_code='int main(int, char *[]) { return(0); }'
+
+ # ltmain only uses $CC for tagged configurations so make sure $CC is set.
+
+
+
+
+
+
+# If no C compiler was specified, use CC.
+LTCC=${LTCC-"$CC"}
+
+# If no C compiler flags were specified, use CFLAGS.
+LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
+
+# Allow CC to be a program name with arguments.
+compiler=$CC
+
+
+ # save warnings/boilerplate of simple test code
+ ac_outfile=conftest.$ac_objext
+echo "$lt_simple_compile_test_code" >conftest.$ac_ext
+eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
+_lt_compiler_boilerplate=`cat conftest.err`
+$RM conftest*
+
+ ac_outfile=conftest.$ac_objext
+echo "$lt_simple_link_test_code" >conftest.$ac_ext
+eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
+_lt_linker_boilerplate=`cat conftest.err`
+$RM -r conftest*
+
+
+ # Allow CC to be a program name with arguments.
+ lt_save_CC=$CC
+ lt_save_LD=$LD
+ lt_save_GCC=$GCC
+ GCC=$GXX
+ lt_save_with_gnu_ld=$with_gnu_ld
+ lt_save_path_LD=$lt_cv_path_LD
+ if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then
+ lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx
+ else
+ $as_unset lt_cv_prog_gnu_ld
+ fi
+ if test -n "${lt_cv_path_LDCXX+set}"; then
+ lt_cv_path_LD=$lt_cv_path_LDCXX
+ else
+ $as_unset lt_cv_path_LD
+ fi
+ test -z "${LDCXX+set}" || LD=$LDCXX
+ CC=${CXX-"c++"}
+ compiler=$CC
+ compiler_CXX=$CC
+ for cc_temp in $compiler""; do
+ case $cc_temp in
+ compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
+ distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
+ \-*) ;;
+ *) break;;
+ esac
+done
+cc_basename=`$ECHO "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
+
+
+ if test -n "$compiler"; then
+ # We don't want -fno-exception when compiling C++ code, so set the
+ # no_builtin_flag separately
+ if test "$GXX" = yes; then
+ lt_prog_compiler_no_builtin_flag_CXX=' -fno-builtin'
+ else
+ lt_prog_compiler_no_builtin_flag_CXX=
+ fi
+
+ if test "$GXX" = yes; then
+ # Set up default GNU C++ configuration
+
+
+
+@%:@ Check whether --with-gnu-ld was given.
+if test "${with_gnu_ld+set}" = set; then :
+ withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes
+else
+ with_gnu_ld=no
+fi
+
+ac_prog=ld
+if test "$GCC" = yes; then
+ # Check if gcc -print-prog-name=ld gives a path.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5
+$as_echo_n "checking for ld used by $CC... " >&6; }
+ case $host in
+ *-*-mingw*)
+ # gcc leaves a trailing carriage return which upsets mingw
+ ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
+ *)
+ ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
+ esac
+ case $ac_prog in
+ # Accept absolute paths.
+ [\\/]* | ?:[\\/]*)
+ re_direlt='/[^/][^/]*/\.\./'
+ # Canonicalize the pathname of ld
+ ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'`
+ while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do
+ ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"`
+ done
+ test -z "$LD" && LD="$ac_prog"
+ ;;
+ "")
+ # If it fails, then pretend we aren't using GCC.
+ ac_prog=ld
+ ;;
+ *)
+ # If it is relative, then search for the first ld in PATH.
+ with_gnu_ld=unknown
+ ;;
+ esac
+elif test "$with_gnu_ld" = yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5
+$as_echo_n "checking for GNU ld... " >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5
+$as_echo_n "checking for non-GNU ld... " >&6; }
+fi
+if test "${lt_cv_path_LD+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -z "$LD"; then
+ lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+ for ac_dir in $PATH; do
+ IFS="$lt_save_ifs"
+ test -z "$ac_dir" && ac_dir=.
+ if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
+ lt_cv_path_LD="$ac_dir/$ac_prog"
+ # Check to see if the program is GNU ld. I'd rather use --version,
+ # but apparently some variants of GNU ld only accept -v.
+ # Break only if it was the GNU/non-GNU ld that we prefer.
+ case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
+ *GNU* | *'with BFD'*)
+ test "$with_gnu_ld" != no && break
+ ;;
+ *)
+ test "$with_gnu_ld" != yes && break
+ ;;
+ esac
+ fi
+ done
+ IFS="$lt_save_ifs"
+else
+ lt_cv_path_LD="$LD" # Let the user override the test with a path.
+fi
+fi
+
+LD="$lt_cv_path_LD"
+if test -n "$LD"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LD" >&5
+$as_echo "$LD" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+test -z "$LD" && as_fn_error "no acceptable ld found in \$PATH" "$LINENO" 5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5
+$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; }
+if test "${lt_cv_prog_gnu_ld+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ # I'd rather use --version here, but apparently some GNU lds only accept -v.
+case `$LD -v 2>&1 </dev/null` in
+*GNU* | *'with BFD'*)
+ lt_cv_prog_gnu_ld=yes
+ ;;
+*)
+ lt_cv_prog_gnu_ld=no
+ ;;
+esac
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_gnu_ld" >&5
+$as_echo "$lt_cv_prog_gnu_ld" >&6; }
+with_gnu_ld=$lt_cv_prog_gnu_ld
+
+
+
+
+
+
+
+ # Check if GNU C++ uses GNU ld as the underlying linker, since the
+ # archiving commands below assume that GNU ld is being used.
+ if test "$with_gnu_ld" = yes; then
+ archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ archive_expsym_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+
+ hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
+ export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
+
+ # If archive_cmds runs LD, not CC, wlarc should be empty
+ # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to
+ # investigate it a little bit more. (MM)
+ wlarc='${wl}'
+
+ # ancient GNU ld didn't support --whole-archive et. al.
+ if eval "`$CC -print-prog-name=ld` --help 2>&1" |
+ $GREP 'no-whole-archive' > /dev/null; then
+ whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+ else
+ whole_archive_flag_spec_CXX=
+ fi
+ else
+ with_gnu_ld=no
+ wlarc=
+
+ # A generic and very simple default shared library creation
+ # command for GNU C++ for the case where it uses the native
+ # linker, instead of GNU ld. If possible, this setting should
+ # overridden to take advantage of the native linker features on
+ # the platform it is being used on.
+ archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
+ fi
+
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"'
+
+ else
+ GXX=no
+ with_gnu_ld=no
+ wlarc=
+ fi
+
+ # PORTME: fill in a description of your system's C++ link characteristics
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5
+$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; }
+ ld_shlibs_CXX=yes
+ case $host_os in
+ aix3*)
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+ aix[4-9]*)
+ if test "$host_cpu" = ia64; then
+ # On IA64, the linker does run time linking by default, so we don't
+ # have to do anything special.
+ aix_use_runtimelinking=no
+ exp_sym_flag='-Bexport'
+ no_entry_flag=""
+ else
+ aix_use_runtimelinking=no
+
+ # Test if we are trying to use run time linking or normal
+ # AIX style linking. If -brtl is somewhere in LDFLAGS, we
+ # need to do runtime linking.
+ case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*)
+ for ld_flag in $LDFLAGS; do
+ case $ld_flag in
+ *-brtl*)
+ aix_use_runtimelinking=yes
+ break
+ ;;
+ esac
+ done
+ ;;
+ esac
+
+ exp_sym_flag='-bexport'
+ no_entry_flag='-bnoentry'
+ fi
+
+ # When large executables or shared objects are built, AIX ld can
+ # have problems creating the table of contents. If linking a library
+ # or program results in "error TOC overflow" add -mminimal-toc to
+ # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not
+ # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
+
+ archive_cmds_CXX=''
+ hardcode_direct_CXX=yes
+ hardcode_direct_absolute_CXX=yes
+ hardcode_libdir_separator_CXX=':'
+ link_all_deplibs_CXX=yes
+ file_list_spec_CXX='${wl}-f,'
+
+ if test "$GXX" = yes; then
+ case $host_os in aix4.[012]|aix4.[012].*)
+ # We only want to do this on AIX 4.2 and lower, the check
+ # below for broken collect2 doesn't work under 4.3+
+ collect2name=`${CC} -print-prog-name=collect2`
+ if test -f "$collect2name" &&
+ strings "$collect2name" | $GREP resolve_lib_name >/dev/null
+ then
+ # We have reworked collect2
+ :
+ else
+ # We have old collect2
+ hardcode_direct_CXX=unsupported
+ # It fails to find uninstalled libraries when the uninstalled
+ # path is not listed in the libpath. Setting hardcode_minus_L
+ # to unsupported forces relinking
+ hardcode_minus_L_CXX=yes
+ hardcode_libdir_flag_spec_CXX='-L$libdir'
+ hardcode_libdir_separator_CXX=
+ fi
+ esac
+ shared_flag='-shared'
+ if test "$aix_use_runtimelinking" = yes; then
+ shared_flag="$shared_flag "'${wl}-G'
+ fi
+ else
+ # not using gcc
+ if test "$host_cpu" = ia64; then
+ # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
+ # chokes on -Wl,-G. The following line is correct:
+ shared_flag='-G'
+ else
+ if test "$aix_use_runtimelinking" = yes; then
+ shared_flag='${wl}-G'
+ else
+ shared_flag='${wl}-bM:SRE'
+ fi
+ fi
+ fi
+
+ export_dynamic_flag_spec_CXX='${wl}-bexpall'
+ # It seems that -bexpall does not export symbols beginning with
+ # underscore (_), so it is better to generate a list of symbols to
+ # export.
+ always_export_symbols_CXX=yes
+ if test "$aix_use_runtimelinking" = yes; then
+ # Warning - without using the other runtime loading flags (-brtl),
+ # -berok will link without error, but may produce a broken library.
+ allow_undefined_flag_CXX='-berok'
+ # Determine the default libpath from the value encoded in an empty
+ # executable.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_link "$LINENO"; then :
+
+lt_aix_libpath_sed='
+ /Import File Strings/,/^$/ {
+ /^0/ {
+ s/^0 *\(.*\)$/\1/
+ p
+ }
+ }'
+aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+# Check for a 64-bit object if we didn't find anything.
+if test -z "$aix_libpath"; then
+ aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+fi
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+
+ hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath"
+
+ archive_expsym_cmds_CXX='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+ else
+ if test "$host_cpu" = ia64; then
+ hardcode_libdir_flag_spec_CXX='${wl}-R $libdir:/usr/lib:/lib'
+ allow_undefined_flag_CXX="-z nodefs"
+ archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols"
+ else
+ # Determine the default libpath from the value encoded in an
+ # empty executable.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_link "$LINENO"; then :
+
+lt_aix_libpath_sed='
+ /Import File Strings/,/^$/ {
+ /^0/ {
+ s/^0 *\(.*\)$/\1/
+ p
+ }
+ }'
+aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+# Check for a 64-bit object if we didn't find anything.
+if test -z "$aix_libpath"; then
+ aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+fi
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+
+ hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath"
+ # Warning - without using the other run time loading flags,
+ # -berok will link without error, but may produce a broken library.
+ no_undefined_flag_CXX=' ${wl}-bernotok'
+ allow_undefined_flag_CXX=' ${wl}-berok'
+ # Exported symbols can be pulled into shared objects from archives
+ whole_archive_flag_spec_CXX='$convenience'
+ archive_cmds_need_lc_CXX=yes
+ # This is similar to how AIX traditionally builds its shared
+ # libraries.
+ archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
+ fi
+ fi
+ ;;
+
+ beos*)
+ if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+ allow_undefined_flag_CXX=unsupported
+ # Joseph Beckenbach <jrb3@best.com> says some releases of gcc
+ # support --undefined. This deserves some investigation. FIXME
+ archive_cmds_CXX='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ else
+ ld_shlibs_CXX=no
+ fi
+ ;;
+
+ chorus*)
+ case $cc_basename in
+ *)
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+ esac
+ ;;
+
+ cygwin* | mingw* | pw32* | cegcc*)
+ # _LT_TAGVAR(hardcode_libdir_flag_spec, CXX) is actually meaningless,
+ # as there is no search path for DLLs.
+ hardcode_libdir_flag_spec_CXX='-L$libdir'
+ allow_undefined_flag_CXX=unsupported
+ always_export_symbols_CXX=no
+ enable_shared_with_static_runtimes_CXX=yes
+
+ if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
+ archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+ # If the export-symbols file already is a .def file (1st line
+ # is EXPORTS), use it as is; otherwise, prepend...
+ archive_expsym_cmds_CXX='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+ cp $export_symbols $output_objdir/$soname.def;
+ else
+ echo EXPORTS > $output_objdir/$soname.def;
+ cat $export_symbols >> $output_objdir/$soname.def;
+ fi~
+ $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+ else
+ ld_shlibs_CXX=no
+ fi
+ ;;
+ darwin* | rhapsody*)
+
+
+ archive_cmds_need_lc_CXX=no
+ hardcode_direct_CXX=no
+ hardcode_automatic_CXX=yes
+ hardcode_shlibpath_var_CXX=unsupported
+ whole_archive_flag_spec_CXX=''
+ link_all_deplibs_CXX=yes
+ allow_undefined_flag_CXX="$_lt_dar_allow_undefined"
+ case $cc_basename in
+ ifort*) _lt_dar_can_shared=yes ;;
+ *) _lt_dar_can_shared=$GCC ;;
+ esac
+ if test "$_lt_dar_can_shared" = "yes"; then
+ output_verbose_link_cmd=echo
+ archive_cmds_CXX="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
+ module_cmds_CXX="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
+ archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
+ module_expsym_cmds_CXX="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
+ if test "$lt_cv_apple_cc_single_mod" != "yes"; then
+ archive_cmds_CXX="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}"
+ archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}"
+ fi
+
+ else
+ ld_shlibs_CXX=no
+ fi
+
+ ;;
+
+ dgux*)
+ case $cc_basename in
+ ec++*)
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+ ghcx*)
+ # Green Hills C++ Compiler
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+ *)
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+ esac
+ ;;
+
+ freebsd[12]*)
+ # C++ shared libraries reported to be fairly broken before
+ # switch to ELF
+ ld_shlibs_CXX=no
+ ;;
+
+ freebsd-elf*)
+ archive_cmds_need_lc_CXX=no
+ ;;
+
+ freebsd* | dragonfly*)
+ # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF
+ # conventions
+ ld_shlibs_CXX=yes
+ ;;
+
+ gnu*)
+ ;;
+
+ hpux9*)
+ hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir'
+ hardcode_libdir_separator_CXX=:
+ export_dynamic_flag_spec_CXX='${wl}-E'
+ hardcode_direct_CXX=yes
+ hardcode_minus_L_CXX=yes # Not in the search PATH,
+ # but as the default
+ # location of the library.
+
+ case $cc_basename in
+ CC*)
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+ aCC*)
+ archive_cmds_CXX='$RM $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ #
+ # There doesn't appear to be a way to prevent this compiler from
+ # explicitly linking system object files so we need to strip them
+ # from the output so that they don't get included in the library
+ # dependencies.
+ output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed'
+ ;;
+ *)
+ if test "$GXX" = yes; then
+ archive_cmds_CXX='$RM $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+ else
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ fi
+ ;;
+ esac
+ ;;
+
+ hpux10*|hpux11*)
+ if test $with_gnu_ld = no; then
+ hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir'
+ hardcode_libdir_separator_CXX=:
+
+ case $host_cpu in
+ hppa*64*|ia64*)
+ ;;
+ *)
+ export_dynamic_flag_spec_CXX='${wl}-E'
+ ;;
+ esac
+ fi
+ case $host_cpu in
+ hppa*64*|ia64*)
+ hardcode_direct_CXX=no
+ hardcode_shlibpath_var_CXX=no
+ ;;
+ *)
+ hardcode_direct_CXX=yes
+ hardcode_direct_absolute_CXX=yes
+ hardcode_minus_L_CXX=yes # Not in the search PATH,
+ # but as the default
+ # location of the library.
+ ;;
+ esac
+
+ case $cc_basename in
+ CC*)
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+ aCC*)
+ case $host_cpu in
+ hppa*64*)
+ archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+ ;;
+ ia64*)
+ archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+ ;;
+ *)
+ archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+ ;;
+ esac
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ #
+ # There doesn't appear to be a way to prevent this compiler from
+ # explicitly linking system object files so we need to strip them
+ # from the output so that they don't get included in the library
+ # dependencies.
+ output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed'
+ ;;
+ *)
+ if test "$GXX" = yes; then
+ if test $with_gnu_ld = no; then
+ case $host_cpu in
+ hppa*64*)
+ archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+ ;;
+ ia64*)
+ archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+ ;;
+ *)
+ archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+ ;;
+ esac
+ fi
+ else
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ fi
+ ;;
+ esac
+ ;;
+
+ interix[3-9]*)
+ hardcode_direct_CXX=no
+ hardcode_shlibpath_var_CXX=no
+ hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir'
+ export_dynamic_flag_spec_CXX='${wl}-E'
+ # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
+ # Instead, shared libraries are loaded at an image base (0x10000000 by
+ # default) and relocated if they conflict, which is a slow very memory
+ # consuming and fragmenting process. To avoid this, we pick a random,
+ # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
+ # time. Moving up from 0x10000000 also allows more sbrk(2) space.
+ archive_cmds_CXX='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+ archive_expsym_cmds_CXX='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+ ;;
+ irix5* | irix6*)
+ case $cc_basename in
+ CC*)
+ # SGI C++
+ archive_cmds_CXX='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
+
+ # Archives containing C++ object files must be created using
+ # "CC -ar", where "CC" is the IRIX C++ compiler. This is
+ # necessary to make sure instantiated templates are included
+ # in the archive.
+ old_archive_cmds_CXX='$CC -ar -WR,-u -o $oldlib $oldobjs'
+ ;;
+ *)
+ if test "$GXX" = yes; then
+ if test "$with_gnu_ld" = no; then
+ archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+ else
+ archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` -o $lib'
+ fi
+ fi
+ link_all_deplibs_CXX=yes
+ ;;
+ esac
+ hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
+ hardcode_libdir_separator_CXX=:
+ inherit_rpath_CXX=yes
+ ;;
+
+ linux* | k*bsd*-gnu | kopensolaris*-gnu)
+ case $cc_basename in
+ KCC*)
+ # Kuck and Associates, Inc. (KAI) C++ Compiler
+
+ # KCC will only create a shared library if the output file
+ # ends with ".so" (or ".sl" for HP-UX), so rename the library
+ # to its proper name (with version) after linking.
+ archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
+ archive_expsym_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib'
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ #
+ # There doesn't appear to be a way to prevent this compiler from
+ # explicitly linking system object files so we need to strip them
+ # from the output so that they don't get included in the library
+ # dependencies.
+ output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed'
+
+ hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir'
+ export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
+
+ # Archives containing C++ object files must be created using
+ # "CC -Bstatic", where "CC" is the KAI C++ compiler.
+ old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs'
+ ;;
+ icpc* | ecpc* )
+ # Intel C++
+ with_gnu_ld=yes
+ # version 8.0 and above of icpc choke on multiply defined symbols
+ # if we add $predep_objects and $postdep_objects, however 7.1 and
+ # earlier do not add the objects themselves.
+ case `$CC -V 2>&1` in
+ *"Version 7."*)
+ archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+ ;;
+ *) # Version 8.0 or newer
+ tmp_idyn=
+ case $host_cpu in
+ ia64*) tmp_idyn=' -i_dynamic';;
+ esac
+ archive_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ archive_expsym_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+ ;;
+ esac
+ archive_cmds_need_lc_CXX=no
+ hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir'
+ export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
+ whole_archive_flag_spec_CXX='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
+ ;;
+ pgCC* | pgcpp*)
+ # Portland Group C++ compiler
+ case `$CC -V` in
+ *pgCC\ [1-5]* | *pgcpp\ [1-5]*)
+ prelink_cmds_CXX='tpldir=Template.dir~
+ rm -rf $tpldir~
+ $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~
+ compile_command="$compile_command `find $tpldir -name \*.o | $NL2SP`"'
+ old_archive_cmds_CXX='tpldir=Template.dir~
+ rm -rf $tpldir~
+ $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~
+ $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | $NL2SP`~
+ $RANLIB $oldlib'
+ archive_cmds_CXX='tpldir=Template.dir~
+ rm -rf $tpldir~
+ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
+ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
+ archive_expsym_cmds_CXX='tpldir=Template.dir~
+ rm -rf $tpldir~
+ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
+ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
+ ;;
+ *) # Version 6 will use weak symbols
+ archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
+ archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
+ ;;
+ esac
+
+ hardcode_libdir_flag_spec_CXX='${wl}--rpath ${wl}$libdir'
+ export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
+ whole_archive_flag_spec_CXX='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
+ ;;
+ cxx*)
+ # Compaq C++
+ archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols'
+
+ runpath_var=LD_RUN_PATH
+ hardcode_libdir_flag_spec_CXX='-rpath $libdir'
+ hardcode_libdir_separator_CXX=:
+
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ #
+ # There doesn't appear to be a way to prevent this compiler from
+ # explicitly linking system object files so we need to strip them
+ # from the output so that they don't get included in the library
+ # dependencies.
+ output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`$ECHO "X$templist" | $Xsed -e "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed'
+ ;;
+ xl*)
+ # IBM XL 8.0 on PPC, with GNU ld
+ hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
+ export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
+ archive_cmds_CXX='$CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ if test "x$supports_anon_versioning" = xyes; then
+ archive_expsym_cmds_CXX='echo "{ global:" > $output_objdir/$libname.ver~
+ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+ echo "local: *; };" >> $output_objdir/$libname.ver~
+ $CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
+ fi
+ ;;
+ *)
+ case `$CC -V 2>&1 | sed 5q` in
+ *Sun\ C*)
+ # Sun C++ 5.9
+ no_undefined_flag_CXX=' -zdefs'
+ archive_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+ archive_expsym_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols'
+ hardcode_libdir_flag_spec_CXX='-R$libdir'
+ whole_archive_flag_spec_CXX='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
+ compiler_needs_object_CXX=yes
+
+ # Not sure whether something based on
+ # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1
+ # would be better.
+ output_verbose_link_cmd='echo'
+
+ # Archives containing C++ object files must be created using
+ # "CC -xar", where "CC" is the Sun C++ compiler. This is
+ # necessary to make sure instantiated templates are included
+ # in the archive.
+ old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs'
+ ;;
+ esac
+ ;;
+ esac
+ ;;
+
+ lynxos*)
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+
+ m88k*)
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+
+ mvs*)
+ case $cc_basename in
+ cxx*)
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+ *)
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+ esac
+ ;;
+
+ netbsd*)
+ if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
+ archive_cmds_CXX='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags'
+ wlarc=
+ hardcode_libdir_flag_spec_CXX='-R$libdir'
+ hardcode_direct_CXX=yes
+ hardcode_shlibpath_var_CXX=no
+ fi
+ # Workaround some broken pre-1.5 toolchains
+ output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"'
+ ;;
+
+ *nto* | *qnx*)
+ ld_shlibs_CXX=yes
+ ;;
+
+ openbsd2*)
+ # C++ shared libraries are fairly broken
+ ld_shlibs_CXX=no
+ ;;
+
+ openbsd*)
+ if test -f /usr/libexec/ld.so; then
+ hardcode_direct_CXX=yes
+ hardcode_shlibpath_var_CXX=no
+ hardcode_direct_absolute_CXX=yes
+ archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
+ hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir'
+ if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+ archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib'
+ export_dynamic_flag_spec_CXX='${wl}-E'
+ whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+ fi
+ output_verbose_link_cmd=echo
+ else
+ ld_shlibs_CXX=no
+ fi
+ ;;
+
+ osf3* | osf4* | osf5*)
+ case $cc_basename in
+ KCC*)
+ # Kuck and Associates, Inc. (KAI) C++ Compiler
+
+ # KCC will only create a shared library if the output file
+ # ends with ".so" (or ".sl" for HP-UX), so rename the library
+ # to its proper name (with version) after linking.
+ archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
+
+ hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir'
+ hardcode_libdir_separator_CXX=:
+
+ # Archives containing C++ object files must be created using
+ # the KAI C++ compiler.
+ case $host in
+ osf3*) old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs' ;;
+ *) old_archive_cmds_CXX='$CC -o $oldlib $oldobjs' ;;
+ esac
+ ;;
+ RCC*)
+ # Rational C++ 2.4.1
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+ cxx*)
+ case $host in
+ osf3*)
+ allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*'
+ archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && $ECHO "X${wl}-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
+ hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
+ ;;
+ *)
+ allow_undefined_flag_CXX=' -expect_unresolved \*'
+ archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
+ archive_expsym_cmds_CXX='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~
+ echo "-hidden">> $lib.exp~
+ $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~
+ $RM $lib.exp'
+ hardcode_libdir_flag_spec_CXX='-rpath $libdir'
+ ;;
+ esac
+
+ hardcode_libdir_separator_CXX=:
+
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ #
+ # There doesn't appear to be a way to prevent this compiler from
+ # explicitly linking system object files so we need to strip them
+ # from the output so that they don't get included in the library
+ # dependencies.
+ output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`$ECHO "X$templist" | $Xsed -e "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed'
+ ;;
+ *)
+ if test "$GXX" = yes && test "$with_gnu_ld" = no; then
+ allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*'
+ case $host in
+ osf3*)
+ archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+ ;;
+ *)
+ archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+ ;;
+ esac
+
+ hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
+ hardcode_libdir_separator_CXX=:
+
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"'
+
+ else
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ fi
+ ;;
+ esac
+ ;;
+
+ psos*)
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+
+ sunos4*)
+ case $cc_basename in
+ CC*)
+ # Sun C++ 4.x
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+ lcc*)
+ # Lucid
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+ *)
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+ esac
+ ;;
+
+ solaris*)
+ case $cc_basename in
+ CC*)
+ # Sun C++ 4.2, 5.x and Centerline C++
+ archive_cmds_need_lc_CXX=yes
+ no_undefined_flag_CXX=' -zdefs'
+ archive_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+ archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+ $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
+
+ hardcode_libdir_flag_spec_CXX='-R$libdir'
+ hardcode_shlibpath_var_CXX=no
+ case $host_os in
+ solaris2.[0-5] | solaris2.[0-5].*) ;;
+ *)
+ # The compiler driver will combine and reorder linker options,
+ # but understands `-z linker_flag'.
+ # Supported since Solaris 2.6 (maybe 2.5.1?)
+ whole_archive_flag_spec_CXX='-z allextract$convenience -z defaultextract'
+ ;;
+ esac
+ link_all_deplibs_CXX=yes
+
+ output_verbose_link_cmd='echo'
+
+ # Archives containing C++ object files must be created using
+ # "CC -xar", where "CC" is the Sun C++ compiler. This is
+ # necessary to make sure instantiated templates are included
+ # in the archive.
+ old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs'
+ ;;
+ gcx*)
+ # Green Hills C++ Compiler
+ archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
+
+ # The C++ compiler must be used to create the archive.
+ old_archive_cmds_CXX='$CC $LDFLAGS -archive -o $oldlib $oldobjs'
+ ;;
+ *)
+ # GNU C++ compiler with Solaris linker
+ if test "$GXX" = yes && test "$with_gnu_ld" = no; then
+ no_undefined_flag_CXX=' ${wl}-z ${wl}defs'
+ if $CC --version | $GREP -v '^2\.7' > /dev/null; then
+ archive_cmds_CXX='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
+ archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+ $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
+
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"'
+ else
+ # g++ 2.7 appears to require `-G' NOT `-shared' on this
+ # platform.
+ archive_cmds_CXX='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
+ archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+ $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
+
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"'
+ fi
+
+ hardcode_libdir_flag_spec_CXX='${wl}-R $wl$libdir'
+ case $host_os in
+ solaris2.[0-5] | solaris2.[0-5].*) ;;
+ *)
+ whole_archive_flag_spec_CXX='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
+ ;;
+ esac
+ fi
+ ;;
+ esac
+ ;;
+
+ sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*)
+ no_undefined_flag_CXX='${wl}-z,text'
+ archive_cmds_need_lc_CXX=no
+ hardcode_shlibpath_var_CXX=no
+ runpath_var='LD_RUN_PATH'
+
+ case $cc_basename in
+ CC*)
+ archive_cmds_CXX='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds_CXX='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ *)
+ archive_cmds_CXX='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds_CXX='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ esac
+ ;;
+
+ sysv5* | sco3.2v5* | sco5v6*)
+ # Note: We can NOT use -z defs as we might desire, because we do not
+ # link with -lc, and that would cause any symbols used from libc to
+ # always be unresolved, which means just about no library would
+ # ever link correctly. If we're not using GNU ld we use -z text
+ # though, which does catch some bad symbols but isn't as heavy-handed
+ # as -z defs.
+ no_undefined_flag_CXX='${wl}-z,text'
+ allow_undefined_flag_CXX='${wl}-z,nodefs'
+ archive_cmds_need_lc_CXX=no
+ hardcode_shlibpath_var_CXX=no
+ hardcode_libdir_flag_spec_CXX='${wl}-R,$libdir'
+ hardcode_libdir_separator_CXX=':'
+ link_all_deplibs_CXX=yes
+ export_dynamic_flag_spec_CXX='${wl}-Bexport'
+ runpath_var='LD_RUN_PATH'
+
+ case $cc_basename in
+ CC*)
+ archive_cmds_CXX='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds_CXX='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ *)
+ archive_cmds_CXX='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds_CXX='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ esac
+ ;;
+
+ tandem*)
+ case $cc_basename in
+ NCC*)
+ # NonStop-UX NCC 3.20
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+ *)
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+ esac
+ ;;
+
+ vxworks*)
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+
+ *)
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+ esac
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs_CXX" >&5
+$as_echo "$ld_shlibs_CXX" >&6; }
+ test "$ld_shlibs_CXX" = no && can_build_shared=no
+
+ GCC_CXX="$GXX"
+ LD_CXX="$LD"
+
+ ## CAVEAT EMPTOR:
+ ## There is no encapsulation within the following macros, do not change
+ ## the running order or otherwise move them around unless you know exactly
+ ## what you are doing...
+ # Dependencies to place before and after the object being linked:
+predep_objects_CXX=
+postdep_objects_CXX=
+predeps_CXX=
+postdeps_CXX=
+compiler_lib_search_path_CXX=
+
+cat > conftest.$ac_ext <<_LT_EOF
+class Foo
+{
+public:
+ Foo (void) { a = 0; }
+private:
+ int a;
+};
+_LT_EOF
+
+if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ # Parse the compiler output and extract the necessary
+ # objects, libraries and library flags.
+
+ # Sentinel used to keep track of whether or not we are before
+ # the conftest object file.
+ pre_test_object_deps_done=no
+
+ for p in `eval "$output_verbose_link_cmd"`; do
+ case $p in
+
+ -L* | -R* | -l*)
+ # Some compilers place space between "-{L,R}" and the path.
+ # Remove the space.
+ if test $p = "-L" ||
+ test $p = "-R"; then
+ prev=$p
+ continue
+ else
+ prev=
+ fi
+
+ if test "$pre_test_object_deps_done" = no; then
+ case $p in
+ -L* | -R*)
+ # Internal compiler library paths should come after those
+ # provided the user. The postdeps already come after the
+ # user supplied libs so there is no need to process them.
+ if test -z "$compiler_lib_search_path_CXX"; then
+ compiler_lib_search_path_CXX="${prev}${p}"
+ else
+ compiler_lib_search_path_CXX="${compiler_lib_search_path_CXX} ${prev}${p}"
+ fi
+ ;;
+ # The "-l" case would never come before the object being
+ # linked, so don't bother handling this case.
+ esac
+ else
+ if test -z "$postdeps_CXX"; then
+ postdeps_CXX="${prev}${p}"
+ else
+ postdeps_CXX="${postdeps_CXX} ${prev}${p}"
+ fi
+ fi
+ ;;
+
+ *.$objext)
+ # This assumes that the test object file only shows up
+ # once in the compiler output.
+ if test "$p" = "conftest.$objext"; then
+ pre_test_object_deps_done=yes
+ continue
+ fi
+
+ if test "$pre_test_object_deps_done" = no; then
+ if test -z "$predep_objects_CXX"; then
+ predep_objects_CXX="$p"
+ else
+ predep_objects_CXX="$predep_objects_CXX $p"
+ fi
+ else
+ if test -z "$postdep_objects_CXX"; then
+ postdep_objects_CXX="$p"
+ else
+ postdep_objects_CXX="$postdep_objects_CXX $p"
+ fi
+ fi
+ ;;
+
+ *) ;; # Ignore the rest.
+
+ esac
+ done
+
+ # Clean up.
+ rm -f a.out a.exe
+else
+ echo "libtool.m4: error: problem compiling CXX test program"
+fi
+
+$RM -f confest.$objext
+
+# PORTME: override above test on systems where it is broken
+case $host_os in
+interix[3-9]*)
+ # Interix 3.5 installs completely hosed .la files for C++, so rather than
+ # hack all around it, let's just trust "g++" to DTRT.
+ predep_objects_CXX=
+ postdep_objects_CXX=
+ postdeps_CXX=
+ ;;
+
+linux*)
+ case `$CC -V 2>&1 | sed 5q` in
+ *Sun\ C*)
+ # Sun C++ 5.9
+
+ # The more standards-conforming stlport4 library is
+ # incompatible with the Cstd library. Avoid specifying
+ # it if it's in CXXFLAGS. Ignore libCrun as
+ # -library=stlport4 depends on it.
+ case " $CXX $CXXFLAGS " in
+ *" -library=stlport4 "*)
+ solaris_use_stlport4=yes
+ ;;
+ esac
+
+ if test "$solaris_use_stlport4" != yes; then
+ postdeps_CXX='-library=Cstd -library=Crun'
+ fi
+ ;;
+ esac
+ ;;
+
+solaris*)
+ case $cc_basename in
+ CC*)
+ # The more standards-conforming stlport4 library is
+ # incompatible with the Cstd library. Avoid specifying
+ # it if it's in CXXFLAGS. Ignore libCrun as
+ # -library=stlport4 depends on it.
+ case " $CXX $CXXFLAGS " in
+ *" -library=stlport4 "*)
+ solaris_use_stlport4=yes
+ ;;
+ esac
+
+ # Adding this requires a known-good setup of shared libraries for
+ # Sun compiler versions before 5.6, else PIC objects from an old
+ # archive will be linked into the output, leading to subtle bugs.
+ if test "$solaris_use_stlport4" != yes; then
+ postdeps_CXX='-library=Cstd -library=Crun'
+ fi
+ ;;
+ esac
+ ;;
+esac
+
+
+case " $postdeps_CXX " in
+*" -lc "*) archive_cmds_need_lc_CXX=no ;;
+esac
+ compiler_lib_search_dirs_CXX=
+if test -n "${compiler_lib_search_path_CXX}"; then
+ compiler_lib_search_dirs_CXX=`echo " ${compiler_lib_search_path_CXX}" | ${SED} -e 's! -L! !g' -e 's!^ !!'`
+fi
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ lt_prog_compiler_wl_CXX=
+lt_prog_compiler_pic_CXX=
+lt_prog_compiler_static_CXX=
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5
+$as_echo_n "checking for $compiler option to produce PIC... " >&6; }
+
+ # C++ specific cases for pic, static, wl, etc.
+ if test "$GXX" = yes; then
+ lt_prog_compiler_wl_CXX='-Wl,'
+ lt_prog_compiler_static_CXX='-static'
+
+ case $host_os in
+ aix*)
+ # All AIX code is PIC.
+ if test "$host_cpu" = ia64; then
+ # AIX 5 now supports IA64 processor
+ lt_prog_compiler_static_CXX='-Bstatic'
+ fi
+ ;;
+
+ amigaos*)
+ case $host_cpu in
+ powerpc)
+ # see comment about AmigaOS4 .so support
+ lt_prog_compiler_pic_CXX='-fPIC'
+ ;;
+ m68k)
+ # FIXME: we need at least 68020 code to build shared libraries, but
+ # adding the `-m68020' flag to GCC prevents building anything better,
+ # like `-m68040'.
+ lt_prog_compiler_pic_CXX='-m68020 -resident32 -malways-restore-a4'
+ ;;
+ esac
+ ;;
+
+ beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+ # PIC is the default for these OSes.
+ ;;
+ mingw* | cygwin* | os2* | pw32* | cegcc*)
+ # This hack is so that the source file can tell whether it is being
+ # built for inclusion in a dll (and should export symbols for example).
+ # Although the cygwin gcc ignores -fPIC, still need this for old-style
+ # (--disable-auto-import) libraries
+ lt_prog_compiler_pic_CXX='-DDLL_EXPORT'
+ ;;
+ darwin* | rhapsody*)
+ # PIC is the default on this platform
+ # Common symbols not allowed in MH_DYLIB files
+ lt_prog_compiler_pic_CXX='-fno-common'
+ ;;
+ *djgpp*)
+ # DJGPP does not support shared libraries at all
+ lt_prog_compiler_pic_CXX=
+ ;;
+ interix[3-9]*)
+ # Interix 3.x gcc -fpic/-fPIC options generate broken code.
+ # Instead, we relocate shared libraries at runtime.
+ ;;
+ sysv4*MP*)
+ if test -d /usr/nec; then
+ lt_prog_compiler_pic_CXX=-Kconform_pic
+ fi
+ ;;
+ hpux*)
+ # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
+ # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag
+ # sets the default TLS model and affects inlining.
+ case $host_cpu in
+ hppa*64*)
+ ;;
+ *)
+ lt_prog_compiler_pic_CXX='-fPIC'
+ ;;
+ esac
+ ;;
+ *qnx* | *nto*)
+ # QNX uses GNU C++, but need to define -shared option too, otherwise
+ # it will coredump.
+ lt_prog_compiler_pic_CXX='-fPIC -shared'
+ ;;
+ *)
+ lt_prog_compiler_pic_CXX='-fPIC'
+ ;;
+ esac
+ else
+ case $host_os in
+ aix[4-9]*)
+ # All AIX code is PIC.
+ if test "$host_cpu" = ia64; then
+ # AIX 5 now supports IA64 processor
+ lt_prog_compiler_static_CXX='-Bstatic'
+ else
+ lt_prog_compiler_static_CXX='-bnso -bI:/lib/syscalls.exp'
+ fi
+ ;;
+ chorus*)
+ case $cc_basename in
+ cxch68*)
+ # Green Hills C++ Compiler
+ # _LT_TAGVAR(lt_prog_compiler_static, CXX)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a"
+ ;;
+ esac
+ ;;
+ dgux*)
+ case $cc_basename in
+ ec++*)
+ lt_prog_compiler_pic_CXX='-KPIC'
+ ;;
+ ghcx*)
+ # Green Hills C++ Compiler
+ lt_prog_compiler_pic_CXX='-pic'
+ ;;
+ *)
+ ;;
+ esac
+ ;;
+ freebsd* | dragonfly*)
+ # FreeBSD uses GNU C++
+ ;;
+ hpux9* | hpux10* | hpux11*)
+ case $cc_basename in
+ CC*)
+ lt_prog_compiler_wl_CXX='-Wl,'
+ lt_prog_compiler_static_CXX='${wl}-a ${wl}archive'
+ if test "$host_cpu" != ia64; then
+ lt_prog_compiler_pic_CXX='+Z'
+ fi
+ ;;
+ aCC*)
+ lt_prog_compiler_wl_CXX='-Wl,'
+ lt_prog_compiler_static_CXX='${wl}-a ${wl}archive'
+ case $host_cpu in
+ hppa*64*|ia64*)
+ # +Z the default
+ ;;
+ *)
+ lt_prog_compiler_pic_CXX='+Z'
+ ;;
+ esac
+ ;;
+ *)
+ ;;
+ esac
+ ;;
+ interix*)
+ # This is c89, which is MS Visual C++ (no shared libs)
+ # Anyone wants to do a port?
+ ;;
+ irix5* | irix6* | nonstopux*)
+ case $cc_basename in
+ CC*)
+ lt_prog_compiler_wl_CXX='-Wl,'
+ lt_prog_compiler_static_CXX='-non_shared'
+ # CC pic flag -KPIC is the default.
+ ;;
+ *)
+ ;;
+ esac
+ ;;
+ linux* | k*bsd*-gnu | kopensolaris*-gnu)
+ case $cc_basename in
+ KCC*)
+ # KAI C++ Compiler
+ lt_prog_compiler_wl_CXX='--backend -Wl,'
+ lt_prog_compiler_pic_CXX='-fPIC'
+ ;;
+ ecpc* )
+ # old Intel C++ for x86_64 which still supported -KPIC.
+ lt_prog_compiler_wl_CXX='-Wl,'
+ lt_prog_compiler_pic_CXX='-KPIC'
+ lt_prog_compiler_static_CXX='-static'
+ ;;
+ icpc* )
+ # Intel C++, used to be incompatible with GCC.
+ # ICC 10 doesn't accept -KPIC any more.
+ lt_prog_compiler_wl_CXX='-Wl,'
+ lt_prog_compiler_pic_CXX='-fPIC'
+ lt_prog_compiler_static_CXX='-static'
+ ;;
+ pgCC* | pgcpp*)
+ # Portland Group C++ compiler
+ lt_prog_compiler_wl_CXX='-Wl,'
+ lt_prog_compiler_pic_CXX='-fpic'
+ lt_prog_compiler_static_CXX='-Bstatic'
+ ;;
+ cxx*)
+ # Compaq C++
+ # Make sure the PIC flag is empty. It appears that all Alpha
+ # Linux and Compaq Tru64 Unix objects are PIC.
+ lt_prog_compiler_pic_CXX=
+ lt_prog_compiler_static_CXX='-non_shared'
+ ;;
+ xlc* | xlC*)
+ # IBM XL 8.0 on PPC
+ lt_prog_compiler_wl_CXX='-Wl,'
+ lt_prog_compiler_pic_CXX='-qpic'
+ lt_prog_compiler_static_CXX='-qstaticlink'
+ ;;
+ *)
+ case `$CC -V 2>&1 | sed 5q` in
+ *Sun\ C*)
+ # Sun C++ 5.9
+ lt_prog_compiler_pic_CXX='-KPIC'
+ lt_prog_compiler_static_CXX='-Bstatic'
+ lt_prog_compiler_wl_CXX='-Qoption ld '
+ ;;
+ esac
+ ;;
+ esac
+ ;;
+ lynxos*)
+ ;;
+ m88k*)
+ ;;
+ mvs*)
+ case $cc_basename in
+ cxx*)
+ lt_prog_compiler_pic_CXX='-W c,exportall'
+ ;;
+ *)
+ ;;
+ esac
+ ;;
+ netbsd* | netbsdelf*-gnu)
+ ;;
+ *qnx* | *nto*)
+ # QNX uses GNU C++, but need to define -shared option too, otherwise
+ # it will coredump.
+ lt_prog_compiler_pic_CXX='-fPIC -shared'
+ ;;
+ osf3* | osf4* | osf5*)
+ case $cc_basename in
+ KCC*)
+ lt_prog_compiler_wl_CXX='--backend -Wl,'
+ ;;
+ RCC*)
+ # Rational C++ 2.4.1
+ lt_prog_compiler_pic_CXX='-pic'
+ ;;
+ cxx*)
+ # Digital/Compaq C++
+ lt_prog_compiler_wl_CXX='-Wl,'
+ # Make sure the PIC flag is empty. It appears that all Alpha
+ # Linux and Compaq Tru64 Unix objects are PIC.
+ lt_prog_compiler_pic_CXX=
+ lt_prog_compiler_static_CXX='-non_shared'
+ ;;
+ *)
+ ;;
+ esac
+ ;;
+ psos*)
+ ;;
+ solaris*)
+ case $cc_basename in
+ CC*)
+ # Sun C++ 4.2, 5.x and Centerline C++
+ lt_prog_compiler_pic_CXX='-KPIC'
+ lt_prog_compiler_static_CXX='-Bstatic'
+ lt_prog_compiler_wl_CXX='-Qoption ld '
+ ;;
+ gcx*)
+ # Green Hills C++ Compiler
+ lt_prog_compiler_pic_CXX='-PIC'
+ ;;
+ *)
+ ;;
+ esac
+ ;;
+ sunos4*)
+ case $cc_basename in
+ CC*)
+ # Sun C++ 4.x
+ lt_prog_compiler_pic_CXX='-pic'
+ lt_prog_compiler_static_CXX='-Bstatic'
+ ;;
+ lcc*)
+ # Lucid
+ lt_prog_compiler_pic_CXX='-pic'
+ ;;
+ *)
+ ;;
+ esac
+ ;;
+ sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
+ case $cc_basename in
+ CC*)
+ lt_prog_compiler_wl_CXX='-Wl,'
+ lt_prog_compiler_pic_CXX='-KPIC'
+ lt_prog_compiler_static_CXX='-Bstatic'
+ ;;
+ esac
+ ;;
+ tandem*)
+ case $cc_basename in
+ NCC*)
+ # NonStop-UX NCC 3.20
+ lt_prog_compiler_pic_CXX='-KPIC'
+ ;;
+ *)
+ ;;
+ esac
+ ;;
+ vxworks*)
+ ;;
+ *)
+ lt_prog_compiler_can_build_shared_CXX=no
+ ;;
+ esac
+ fi
+
+case $host_os in
+ # For platforms which do not support PIC, -DPIC is meaningless:
+ *djgpp*)
+ lt_prog_compiler_pic_CXX=
+ ;;
+ *)
+ lt_prog_compiler_pic_CXX="$lt_prog_compiler_pic_CXX@&t@ -DPIC"
+ ;;
+esac
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_prog_compiler_pic_CXX" >&5
+$as_echo "$lt_prog_compiler_pic_CXX" >&6; }
+
+
+
+#
+# Check to make sure the PIC flag actually works.
+#
+if test -n "$lt_prog_compiler_pic_CXX"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works" >&5
+$as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works... " >&6; }
+if test "${lt_cv_prog_compiler_pic_works_CXX+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_prog_compiler_pic_works_CXX=no
+ ac_outfile=conftest.$ac_objext
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+ lt_compiler_flag="$lt_prog_compiler_pic_CXX@&t@ -DPIC"
+ # Insert the option either (1) after the last *FLAGS variable, or
+ # (2) before a word containing "conftest.", or (3) at the end.
+ # Note that $ac_compile itself does not contain backslashes and begins
+ # with a dollar sign (not a hyphen), so the echo should work correctly.
+ # The option is referenced via a variable to avoid confusing sed.
+ lt_compile=`echo "$ac_compile" | $SED \
+ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+ -e 's:$: $lt_compiler_flag:'`
+ (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&5)
+ (eval "$lt_compile" 2>conftest.err)
+ ac_status=$?
+ cat conftest.err >&5
+ echo "$as_me:__oline__: \$? = $ac_status" >&5
+ if (exit $ac_status) && test -s "$ac_outfile"; then
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings other than the usual output.
+ $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp
+ $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+ if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
+ lt_cv_prog_compiler_pic_works_CXX=yes
+ fi
+ fi
+ $RM conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works_CXX" >&5
+$as_echo "$lt_cv_prog_compiler_pic_works_CXX" >&6; }
+
+if test x"$lt_cv_prog_compiler_pic_works_CXX" = xyes; then
+ case $lt_prog_compiler_pic_CXX in
+ "" | " "*) ;;
+ *) lt_prog_compiler_pic_CXX=" $lt_prog_compiler_pic_CXX" ;;
+ esac
+else
+ lt_prog_compiler_pic_CXX=
+ lt_prog_compiler_can_build_shared_CXX=no
+fi
+
+fi
+
+
+
+#
+# Check to make sure the static flag actually works.
+#
+wl=$lt_prog_compiler_wl_CXX eval lt_tmp_static_flag=\"$lt_prog_compiler_static_CXX\"
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5
+$as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; }
+if test "${lt_cv_prog_compiler_static_works_CXX+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_prog_compiler_static_works_CXX=no
+ save_LDFLAGS="$LDFLAGS"
+ LDFLAGS="$LDFLAGS $lt_tmp_static_flag"
+ echo "$lt_simple_link_test_code" > conftest.$ac_ext
+ if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
+ # The linker can only warn and ignore the option if not recognized
+ # So say no if there are warnings
+ if test -s conftest.err; then
+ # Append any errors to the config.log.
+ cat conftest.err 1>&5
+ $ECHO "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp
+ $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+ if diff conftest.exp conftest.er2 >/dev/null; then
+ lt_cv_prog_compiler_static_works_CXX=yes
+ fi
+ else
+ lt_cv_prog_compiler_static_works_CXX=yes
+ fi
+ fi
+ $RM -r conftest*
+ LDFLAGS="$save_LDFLAGS"
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works_CXX" >&5
+$as_echo "$lt_cv_prog_compiler_static_works_CXX" >&6; }
+
+if test x"$lt_cv_prog_compiler_static_works_CXX" = xyes; then
+ :
+else
+ lt_prog_compiler_static_CXX=
+fi
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
+$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
+if test "${lt_cv_prog_compiler_c_o_CXX+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_prog_compiler_c_o_CXX=no
+ $RM -r conftest 2>/dev/null
+ mkdir conftest
+ cd conftest
+ mkdir out
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+ lt_compiler_flag="-o out/conftest2.$ac_objext"
+ # Insert the option either (1) after the last *FLAGS variable, or
+ # (2) before a word containing "conftest.", or (3) at the end.
+ # Note that $ac_compile itself does not contain backslashes and begins
+ # with a dollar sign (not a hyphen), so the echo should work correctly.
+ lt_compile=`echo "$ac_compile" | $SED \
+ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+ -e 's:$: $lt_compiler_flag:'`
+ (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&5)
+ (eval "$lt_compile" 2>out/conftest.err)
+ ac_status=$?
+ cat out/conftest.err >&5
+ echo "$as_me:__oline__: \$? = $ac_status" >&5
+ if (exit $ac_status) && test -s out/conftest2.$ac_objext
+ then
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings
+ $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp
+ $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
+ if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
+ lt_cv_prog_compiler_c_o_CXX=yes
+ fi
+ fi
+ chmod u+w . 2>&5
+ $RM conftest*
+ # SGI C++ compiler will create directory out/ii_files/ for
+ # template instantiation
+ test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
+ $RM out/* && rmdir out
+ cd ..
+ $RM -r conftest
+ $RM conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o_CXX" >&5
+$as_echo "$lt_cv_prog_compiler_c_o_CXX" >&6; }
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
+$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
+if test "${lt_cv_prog_compiler_c_o_CXX+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_prog_compiler_c_o_CXX=no
+ $RM -r conftest 2>/dev/null
+ mkdir conftest
+ cd conftest
+ mkdir out
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+ lt_compiler_flag="-o out/conftest2.$ac_objext"
+ # Insert the option either (1) after the last *FLAGS variable, or
+ # (2) before a word containing "conftest.", or (3) at the end.
+ # Note that $ac_compile itself does not contain backslashes and begins
+ # with a dollar sign (not a hyphen), so the echo should work correctly.
+ lt_compile=`echo "$ac_compile" | $SED \
+ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+ -e 's:$: $lt_compiler_flag:'`
+ (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&5)
+ (eval "$lt_compile" 2>out/conftest.err)
+ ac_status=$?
+ cat out/conftest.err >&5
+ echo "$as_me:__oline__: \$? = $ac_status" >&5
+ if (exit $ac_status) && test -s out/conftest2.$ac_objext
+ then
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings
+ $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp
+ $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
+ if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
+ lt_cv_prog_compiler_c_o_CXX=yes
+ fi
+ fi
+ chmod u+w . 2>&5
+ $RM conftest*
+ # SGI C++ compiler will create directory out/ii_files/ for
+ # template instantiation
+ test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
+ $RM out/* && rmdir out
+ cd ..
+ $RM -r conftest
+ $RM conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o_CXX" >&5
+$as_echo "$lt_cv_prog_compiler_c_o_CXX" >&6; }
+
+
+
+
+hard_links="nottested"
+if test "$lt_cv_prog_compiler_c_o_CXX" = no && test "$need_locks" != no; then
+ # do not overwrite the value of need_locks provided by the user
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5
+$as_echo_n "checking if we can lock with hard links... " >&6; }
+ hard_links=yes
+ $RM conftest*
+ ln conftest.a conftest.b 2>/dev/null && hard_links=no
+ touch conftest.a
+ ln conftest.a conftest.b 2>&5 || hard_links=no
+ ln conftest.a conftest.b 2>/dev/null && hard_links=no
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5
+$as_echo "$hard_links" >&6; }
+ if test "$hard_links" = no; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5
+$as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;}
+ need_locks=warn
+ fi
+else
+ need_locks=no
+fi
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5
+$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; }
+
+ export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+ case $host_os in
+ aix[4-9]*)
+ # If we're using GNU nm, then we don't want the "-C" option.
+ # -C means demangle to AIX nm, but means don't demangle with GNU nm
+ if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
+ export_symbols_cmds_CXX='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
+ else
+ export_symbols_cmds_CXX='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
+ fi
+ ;;
+ pw32*)
+ export_symbols_cmds_CXX="$ltdll_cmds"
+ ;;
+ cygwin* | mingw* | cegcc*)
+ export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;/^.*[ ]__nm__/s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols'
+ ;;
+ linux* | k*bsd*-gnu)
+ link_all_deplibs_CXX=no
+ ;;
+ *)
+ export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+ ;;
+ esac
+ exclude_expsyms_CXX='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs_CXX" >&5
+$as_echo "$ld_shlibs_CXX" >&6; }
+test "$ld_shlibs_CXX" = no && can_build_shared=no
+
+with_gnu_ld_CXX=$with_gnu_ld
+
+
+
+
+
+
+#
+# Do we need to explicitly link libc?
+#
+case "x$archive_cmds_need_lc_CXX" in
+x|xyes)
+ # Assume -lc should be added
+ archive_cmds_need_lc_CXX=yes
+
+ if test "$enable_shared" = yes && test "$GCC" = yes; then
+ case $archive_cmds_CXX in
+ *'~'*)
+ # FIXME: we may have to deal with multi-command sequences.
+ ;;
+ '$CC '*)
+ # Test whether the compiler implicitly links with -lc since on some
+ # systems, -lgcc has to come before -lc. If gcc already passes -lc
+ # to ld, don't add -lc before -lgcc.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5
+$as_echo_n "checking whether -lc should be explicitly linked in... " >&6; }
+ $RM conftest*
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } 2>conftest.err; then
+ soname=conftest
+ lib=conftest
+ libobjs=conftest.$ac_objext
+ deplibs=
+ wl=$lt_prog_compiler_wl_CXX
+ pic_flag=$lt_prog_compiler_pic_CXX
+ compiler_flags=-v
+ linker_flags=-v
+ verstring=
+ output_objdir=.
+ libname=conftest
+ lt_save_allow_undefined_flag=$allow_undefined_flag_CXX
+ allow_undefined_flag_CXX=
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds_CXX 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5
+ (eval $archive_cmds_CXX 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+ then
+ archive_cmds_need_lc_CXX=no
+ else
+ archive_cmds_need_lc_CXX=yes
+ fi
+ allow_undefined_flag_CXX=$lt_save_allow_undefined_flag
+ else
+ cat conftest.err 1>&5
+ fi
+ $RM conftest*
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $archive_cmds_need_lc_CXX" >&5
+$as_echo "$archive_cmds_need_lc_CXX" >&6; }
+ ;;
+ esac
+ fi
+ ;;
+esac
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5
+$as_echo_n "checking dynamic linker characteristics... " >&6; }
+
+library_names_spec=
+libname_spec='lib$name'
+soname_spec=
+shrext_cmds=".so"
+postinstall_cmds=
+postuninstall_cmds=
+finish_cmds=
+finish_eval=
+shlibpath_var=
+shlibpath_overrides_runpath=unknown
+version_type=none
+dynamic_linker="$host_os ld.so"
+sys_lib_dlsearch_path_spec="/lib /usr/lib"
+need_lib_prefix=unknown
+hardcode_into_libs=no
+
+# when you set need_version to no, make sure it does not cause -set_version
+# flags to be left without arguments
+need_version=unknown
+
+case $host_os in
+aix3*)
+ version_type=linux
+ library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
+ shlibpath_var=LIBPATH
+
+ # AIX 3 has no versioning support, so we append a major version to the name.
+ soname_spec='${libname}${release}${shared_ext}$major'
+ ;;
+
+aix[4-9]*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ hardcode_into_libs=yes
+ if test "$host_cpu" = ia64; then
+ # AIX 5 supports IA64
+ library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
+ shlibpath_var=LD_LIBRARY_PATH
+ else
+ # With GCC up to 2.95.x, collect2 would create an import file
+ # for dependence libraries. The import file would start with
+ # the line `#! .'. This would cause the generated library to
+ # depend on `.', always an invalid library. This was fixed in
+ # development snapshots of GCC prior to 3.0.
+ case $host_os in
+ aix4 | aix4.[01] | aix4.[01].*)
+ if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
+ echo ' yes '
+ echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then
+ :
+ else
+ can_build_shared=no
+ fi
+ ;;
+ esac
+ # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
+ # soname into executable. Probably we can add versioning support to
+ # collect2, so additional links can be useful in future.
+ if test "$aix_use_runtimelinking" = yes; then
+ # If using run time linking (on AIX 4.2 or later) use lib<name>.so
+ # instead of lib<name>.a to let people know that these are not
+ # typical AIX shared libraries.
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ else
+ # We preserve .a as extension for shared libraries through AIX4.2
+ # and later when we are not doing run time linking.
+ library_names_spec='${libname}${release}.a $libname.a'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ fi
+ shlibpath_var=LIBPATH
+ fi
+ ;;
+
+amigaos*)
+ case $host_cpu in
+ powerpc)
+ # Since July 2007 AmigaOS4 officially supports .so libraries.
+ # When compiling the executable, add -use-dynld -Lsobjs: to the compileline.
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ ;;
+ m68k)
+ library_names_spec='$libname.ixlibrary $libname.a'
+ # Create ${libname}_ixlibrary.a entries in /sys/libs.
+ finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$ECHO "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
+ ;;
+ esac
+ ;;
+
+beos*)
+ library_names_spec='${libname}${shared_ext}'
+ dynamic_linker="$host_os ld.so"
+ shlibpath_var=LIBRARY_PATH
+ ;;
+
+bsdi[45]*)
+ version_type=linux
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
+ sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
+ # the default ld.so.conf also contains /usr/contrib/lib and
+ # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
+ # libtool to hard-code these into programs
+ ;;
+
+cygwin* | mingw* | pw32* | cegcc*)
+ version_type=windows
+ shrext_cmds=".dll"
+ need_version=no
+ need_lib_prefix=no
+
+ case $GCC,$host_os in
+ yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*)
+ library_names_spec='$libname.dll.a'
+ # DLL is installed to $(libdir)/../bin by postinstall_cmds
+ postinstall_cmds='base_file=`basename \${file}`~
+ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
+ dldir=$destdir/`dirname \$dlpath`~
+ test -d \$dldir || mkdir -p \$dldir~
+ $install_prog $dir/$dlname \$dldir/$dlname~
+ chmod a+x \$dldir/$dlname~
+ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then
+ eval '\''$striplib \$dldir/$dlname'\'' || exit \$?;
+ fi'
+ postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
+ dlpath=$dir/\$dldll~
+ $RM \$dlpath'
+ shlibpath_overrides_runpath=yes
+
+ case $host_os in
+ cygwin*)
+ # Cygwin DLLs use 'cyg' prefix rather than 'lib'
+ soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+ sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib"
+ ;;
+ mingw* | cegcc*)
+ # MinGW DLLs use traditional 'lib' prefix
+ soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+ sys_lib_search_path_spec=`$CC -print-search-dirs | $GREP "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
+ if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then
+ # It is most probably a Windows format PATH printed by
+ # mingw gcc, but we are running on Cygwin. Gcc prints its search
+ # path with ; separators, and with drive letters. We can handle the
+ # drive letters (cygwin fileutils understands them), so leave them,
+ # especially as we might pass files found there to a mingw objdump,
+ # which wouldn't understand a cygwinified path. Ahh.
+ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
+ else
+ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
+ fi
+ ;;
+ pw32*)
+ # pw32 DLLs use 'pw' prefix rather than 'lib'
+ library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+ ;;
+ esac
+ ;;
+
+ *)
+ library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib'
+ ;;
+ esac
+ dynamic_linker='Win32 ld.exe'
+ # FIXME: first we should search . and the directory the executable is in
+ shlibpath_var=PATH
+ ;;
+
+darwin* | rhapsody*)
+ dynamic_linker="$host_os dyld"
+ version_type=darwin
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext'
+ soname_spec='${libname}${release}${major}$shared_ext'
+ shlibpath_overrides_runpath=yes
+ shlibpath_var=DYLD_LIBRARY_PATH
+ shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
+
+ sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
+ ;;
+
+dgux*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ ;;
+
+freebsd1*)
+ dynamic_linker=no
+ ;;
+
+freebsd* | dragonfly*)
+ # DragonFly does not have aout. When/if they implement a new
+ # versioning mechanism, adjust this.
+ if test -x /usr/bin/objformat; then
+ objformat=`/usr/bin/objformat`
+ else
+ case $host_os in
+ freebsd[123]*) objformat=aout ;;
+ *) objformat=elf ;;
+ esac
+ fi
+ version_type=freebsd-$objformat
+ case $version_type in
+ freebsd-elf*)
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
+ need_version=no
+ need_lib_prefix=no
+ ;;
+ freebsd-*)
+ library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
+ need_version=yes
+ ;;
+ esac
+ shlibpath_var=LD_LIBRARY_PATH
+ case $host_os in
+ freebsd2*)
+ shlibpath_overrides_runpath=yes
+ ;;
+ freebsd3.[01]* | freebsdelf3.[01]*)
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ ;;
+ freebsd3.[2-9]* | freebsdelf3.[2-9]* | \
+ freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1)
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ ;;
+ *) # from 4.6 on, and DragonFly
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ ;;
+ esac
+ ;;
+
+gnu*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ hardcode_into_libs=yes
+ ;;
+
+hpux9* | hpux10* | hpux11*)
+ # Give a soname corresponding to the major version so that dld.sl refuses to
+ # link against other versions.
+ version_type=sunos
+ need_lib_prefix=no
+ need_version=no
+ case $host_cpu in
+ ia64*)
+ shrext_cmds='.so'
+ hardcode_into_libs=yes
+ dynamic_linker="$host_os dld.so"
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ if test "X$HPUX_IA64_MODE" = X32; then
+ sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
+ else
+ sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
+ fi
+ sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+ ;;
+ hppa*64*)
+ shrext_cmds='.sl'
+ hardcode_into_libs=yes
+ dynamic_linker="$host_os dld.sl"
+ shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
+ shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
+ sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+ ;;
+ *)
+ shrext_cmds='.sl'
+ dynamic_linker="$host_os dld.sl"
+ shlibpath_var=SHLIB_PATH
+ shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ ;;
+ esac
+ # HP-UX runs *really* slowly unless shared libraries are mode 555.
+ postinstall_cmds='chmod 555 $lib'
+ ;;
+
+interix[3-9]*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ ;;
+
+irix5* | irix6* | nonstopux*)
+ case $host_os in
+ nonstopux*) version_type=nonstopux ;;
+ *)
+ if test "$lt_cv_prog_gnu_ld" = yes; then
+ version_type=linux
+ else
+ version_type=irix
+ fi ;;
+ esac
+ need_lib_prefix=no
+ need_version=no
+ soname_spec='${libname}${release}${shared_ext}$major'
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
+ case $host_os in
+ irix5* | nonstopux*)
+ libsuff= shlibsuff=
+ ;;
+ *)
+ case $LD in # libtool.m4 will add one of these switches to LD
+ *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
+ libsuff= shlibsuff= libmagic=32-bit;;
+ *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
+ libsuff=32 shlibsuff=N32 libmagic=N32;;
+ *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
+ libsuff=64 shlibsuff=64 libmagic=64-bit;;
+ *) libsuff= shlibsuff= libmagic=never-match;;
+ esac
+ ;;
+ esac
+ shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
+ shlibpath_overrides_runpath=no
+ sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
+ sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
+ hardcode_into_libs=yes
+ ;;
+
+# No shared lib support for Linux oldld, aout, or coff.
+linux*oldld* | linux*aout* | linux*coff*)
+ dynamic_linker=no
+ ;;
+
+# This must be Linux ELF.
+linux* | k*bsd*-gnu | kopensolaris*-gnu)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ # Some binutils ld are patched to set DT_RUNPATH
+ save_LDFLAGS=$LDFLAGS
+ save_libdir=$libdir
+ eval "libdir=/foo; wl=\"$lt_prog_compiler_wl_CXX\"; \
+ LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec_CXX\""
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_link "$LINENO"; then :
+ if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then :
+ shlibpath_overrides_runpath=yes
+fi
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ LDFLAGS=$save_LDFLAGS
+ libdir=$save_libdir
+
+ # This implies no fast_install, which is unacceptable.
+ # Some rework will be needed to allow for fast_install
+ # before this can be enabled.
+ hardcode_into_libs=yes
+
+ # Append ld.so.conf contents to the search path
+ if test -f /etc/ld.so.conf; then
+ lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
+ sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
+ fi
+
+ # We used to test for /lib/ld.so.1 and disable shared libraries on
+ # powerpc, because MkLinux only supported shared libraries with the
+ # GNU dynamic linker. Since this was broken with cross compilers,
+ # most powerpc-linux boxes support dynamic linking these days and
+ # people can always --disable-shared, the test was removed, and we
+ # assume the GNU/Linux dynamic linker is in use.
+ dynamic_linker='GNU/Linux ld.so'
+ ;;
+
+netbsdelf*-gnu)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ dynamic_linker='NetBSD ld.elf_so'
+ ;;
+
+netbsd*)
+ version_type=sunos
+ need_lib_prefix=no
+ need_version=no
+ if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+ dynamic_linker='NetBSD (a.out) ld.so'
+ else
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ dynamic_linker='NetBSD ld.elf_so'
+ fi
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ ;;
+
+newsos6)
+ version_type=linux
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ ;;
+
+*nto* | *qnx*)
+ version_type=qnx
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ dynamic_linker='ldqnx.so'
+ ;;
+
+openbsd*)
+ version_type=sunos
+ sys_lib_dlsearch_path_spec="/usr/lib"
+ need_lib_prefix=no
+ # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs.
+ case $host_os in
+ openbsd3.3 | openbsd3.3.*) need_version=yes ;;
+ *) need_version=no ;;
+ esac
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+ case $host_os in
+ openbsd2.[89] | openbsd2.[89].*)
+ shlibpath_overrides_runpath=no
+ ;;
+ *)
+ shlibpath_overrides_runpath=yes
+ ;;
+ esac
+ else
+ shlibpath_overrides_runpath=yes
+ fi
+ ;;
+
+os2*)
+ libname_spec='$name'
+ shrext_cmds=".dll"
+ need_lib_prefix=no
+ library_names_spec='$libname${shared_ext} $libname.a'
+ dynamic_linker='OS/2 ld.exe'
+ shlibpath_var=LIBPATH
+ ;;
+
+osf3* | osf4* | osf5*)
+ version_type=osf
+ need_lib_prefix=no
+ need_version=no
+ soname_spec='${libname}${release}${shared_ext}$major'
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ shlibpath_var=LD_LIBRARY_PATH
+ sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
+ sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
+ ;;
+
+rdos*)
+ dynamic_linker=no
+ ;;
+
+solaris*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ # ldd complains unless libraries are executable
+ postinstall_cmds='chmod +x $lib'
+ ;;
+
+sunos4*)
+ version_type=sunos
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+ finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ if test "$with_gnu_ld" = yes; then
+ need_lib_prefix=no
+ fi
+ need_version=yes
+ ;;
+
+sysv4 | sysv4.3*)
+ version_type=linux
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ case $host_vendor in
+ sni)
+ shlibpath_overrides_runpath=no
+ need_lib_prefix=no
+ runpath_var=LD_RUN_PATH
+ ;;
+ siemens)
+ need_lib_prefix=no
+ ;;
+ motorola)
+ need_lib_prefix=no
+ need_version=no
+ shlibpath_overrides_runpath=no
+ sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
+ ;;
+ esac
+ ;;
+
+sysv4*MP*)
+ if test -d /usr/nec ;then
+ version_type=linux
+ library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
+ soname_spec='$libname${shared_ext}.$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ fi
+ ;;
+
+sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
+ version_type=freebsd-elf
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ if test "$with_gnu_ld" = yes; then
+ sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib'
+ else
+ sys_lib_search_path_spec='/usr/ccs/lib /usr/lib'
+ case $host_os in
+ sco3.2v5*)
+ sys_lib_search_path_spec="$sys_lib_search_path_spec /lib"
+ ;;
+ esac
+ fi
+ sys_lib_dlsearch_path_spec='/usr/lib'
+ ;;
+
+tpf*)
+ # TPF is a cross-target only. Preferred cross-host = GNU/Linux.
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ ;;
+
+uts4*)
+ version_type=linux
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ ;;
+
+*)
+ dynamic_linker=no
+ ;;
+esac
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5
+$as_echo "$dynamic_linker" >&6; }
+test "$dynamic_linker" = no && can_build_shared=no
+
+variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
+if test "$GCC" = yes; then
+ variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
+fi
+
+if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then
+ sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec"
+fi
+if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then
+ sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec"
+fi
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5
+$as_echo_n "checking how to hardcode library paths into programs... " >&6; }
+hardcode_action_CXX=
+if test -n "$hardcode_libdir_flag_spec_CXX" ||
+ test -n "$runpath_var_CXX" ||
+ test "X$hardcode_automatic_CXX" = "Xyes" ; then
+
+ # We can hardcode non-existent directories.
+ if test "$hardcode_direct_CXX" != no &&
+ # If the only mechanism to avoid hardcoding is shlibpath_var, we
+ # have to relink, otherwise we might link with an installed library
+ # when we should be linking with a yet-to-be-installed one
+ ## test "$_LT_TAGVAR(hardcode_shlibpath_var, CXX)" != no &&
+ test "$hardcode_minus_L_CXX" != no; then
+ # Linking always hardcodes the temporary library directory.
+ hardcode_action_CXX=relink
+ else
+ # We can link without hardcoding, and we can hardcode nonexisting dirs.
+ hardcode_action_CXX=immediate
+ fi
+else
+ # We cannot hardcode anything, or else we can only hardcode existing
+ # directories.
+ hardcode_action_CXX=unsupported
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action_CXX" >&5
+$as_echo "$hardcode_action_CXX" >&6; }
+
+if test "$hardcode_action_CXX" = relink ||
+ test "$inherit_rpath_CXX" = yes; then
+ # Fast installation is not supported
+ enable_fast_install=no
+elif test "$shlibpath_overrides_runpath" = yes ||
+ test "$enable_shared" = no; then
+ # Fast installation is not necessary
+ enable_fast_install=needless
+fi
+
+
+
+
+
+
+
+ fi # test -n "$compiler"
+
+ CC=$lt_save_CC
+ LDCXX=$LD
+ LD=$lt_save_LD
+ GCC=$lt_save_GCC
+ with_gnu_ld=$lt_save_with_gnu_ld
+ lt_cv_path_LDCXX=$lt_cv_path_LD
+ lt_cv_path_LD=$lt_save_path_LD
+ lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld
+ lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld
+fi # test "$_lt_caught_CXX_error" != yes
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ac_config_commands="$ac_config_commands libtool"
+
+
+
+
+# Only expand once:
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5
+$as_echo_n "checking whether ln -s works... " >&6; }
+LN_S=$as_ln_s
+if test "$LN_S" = "ln -s"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5
+$as_echo "no, using $LN_S" >&6; }
+fi
+
+
+###############
+### DocBook ###
+###############
+for ac_prog in openjade jade
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_JADE+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$JADE"; then
+ ac_cv_prog_JADE="$JADE" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_JADE="$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+JADE=$ac_cv_prog_JADE
+if test -n "$JADE"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $JADE" >&5
+$as_echo "$JADE" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$JADE" && break
+done
+
+if test -n "$JADE"; then
+ for ac_prog in onsgmls nsgmls
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_NSGMLS+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$NSGMLS"; then
+ ac_cv_prog_NSGMLS="$NSGMLS" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_NSGMLS="$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+NSGMLS=$ac_cv_prog_NSGMLS
+if test -n "$NSGMLS"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NSGMLS" >&5
+$as_echo "$NSGMLS" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$NSGMLS" && break
+done
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for DocBook V4.1" >&5
+$as_echo_n "checking for DocBook V4.1... " >&6; }
+if test "${pgac_cv_check_docbook+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat >conftest.sgml <<EOF
+<!doctype book PUBLIC "-//OASIS//DTD DocBook V4.1//EN">
+<book>
+ <title>test</title>
+ <chapter>
+ <title>random</title>
+ <sect1>
+ <title>testsect</title>
+ <para>text</para>
+ </sect1>
+ </chapter>
+</book>
+EOF
+
+${NSGMLS-false} -s conftest.sgml 1>&5 2>&1
+if test $? -eq 0; then
+ pgac_cv_check_docbook=yes
+else
+ pgac_cv_check_docbook=no
+fi
+rm -f conftest.sgml
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $pgac_cv_check_docbook" >&5
+$as_echo "$pgac_cv_check_docbook" >&6; }
+
+have_docbook=$pgac_cv_check_docbook
+
+
+ if test "$pgac_cv_check_docbook" = "yes"; then
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for DocBook stylesheets" >&5
+$as_echo_n "checking for DocBook stylesheets... " >&6; }
+
+@%:@ Check whether --with-docbook-stylesheets was given.
+if test "${with_docbook_stylesheets+set}" = set; then :
+ withval=$with_docbook_stylesheets; muse_docbook_prefix="$withval"
+fi
+
+if test "${pgac_cv_path_stylesheets+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+
+if test -n "$muse_docbook_prefix"; then
+ if test -r "$muse_docbook_prefix/html/docbook.dsl" \
+ && test -r "$muse_docbook_prefix/print/docbook.dsl"; then
+ pgac_cv_path_stylesheets="$muse_docbook_prefix"
+ fi
+fi
+if test -z "$pgac_cv_path_stylesheets"; then
+ if test -n "$DOCBOOKSTYLE"; then
+ if test -r "$DOCBOOKSTYLE/html/docbook.dsl" \
+ && test -r "$DOCBOOKSTYLE/print/docbook.dsl"; then
+ pgac_cv_path_stylesheets="$DOCBOOKSTYLE"
+ fi
+ fi
+fi
+if test -z "$pgac_cv_path_stylesheets"; then
+ for pgac_prefix in /usr /usr/local /opt; do
+ for pgac_infix in share lib; do
+ for pgac_postfix in \
+ sgml/stylesheets/nwalsh-modular \
+ sgml/stylesheets/docbook \
+ sgml/docbook/dsssl/modular \
+ sgml/docbook/stylesheet/dsssl/modular
+ do
+ pgac_candidate=$pgac_prefix/$pgac_infix/$pgac_postfix
+ if test -r "$pgac_candidate/html/docbook.dsl" \
+ && test -r "$pgac_candidate/print/docbook.dsl"
+ then
+ pgac_cv_path_stylesheets=$pgac_candidate
+ break 3
+ fi
+ done
+ done
+ done
+fi
+
+fi
+
+DOCBOOKSTYLE=$pgac_cv_path_stylesheets
+
+if test -n "$DOCBOOKSTYLE"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DOCBOOKSTYLE" >&5
+$as_echo "$DOCBOOKSTYLE" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+ if test -n "$DOCBOOKSTYLE"; then
+ DOCBOOKTARGETS="book1.html"
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: DocBook stylesheets not found or not usable - documentation will not be built" >&5
+$as_echo "$as_me: WARNING: DocBook stylesheets not found or not usable - documentation will not be built" >&2;}
+ fi
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: DocBook 4.1 DTD not found or not usable - documentation will not be built" >&5
+$as_echo "$as_me: WARNING: DocBook 4.1 DTD not found or not usable - documentation will not be built" >&2;}
+ fi
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: jade not found - documentation will not be built" >&5
+$as_echo "$as_me: WARNING: jade not found - documentation will not be built" >&2;}
+fi
+
+
+###############
+### doxygen ###
+###############
+
+# Extract the first word of "doxygen", so it can be a program name with args.
+set dummy doxygen; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_DOXYGEN+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $DOXYGEN in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_DOXYGEN="$DOXYGEN" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_path_DOXYGEN="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ test -z "$ac_cv_path_DOXYGEN" && ac_cv_path_DOXYGEN="no"
+ ;;
+esac
+fi
+DOXYGEN=$ac_cv_path_DOXYGEN
+if test -n "$DOXYGEN"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DOXYGEN" >&5
+$as_echo "$DOXYGEN" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+
+################
+### graphviz ###
+################
+
+# Extract the first word of "dot", so it can be a program name with args.
+set dummy dot; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_DOT+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $DOT in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_DOT="$DOT" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_path_DOT="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ test -z "$ac_cv_path_DOT" && ac_cv_path_DOT="no"
+ ;;
+esac
+fi
+DOT=$ac_cv_path_DOT
+if test -n "$DOT"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DOT" >&5
+$as_echo "$DOT" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+if test "$DOT" != "no"; then
+ HAVEDOT=YES
+ DOTPATH=$( dirname "$DOT" )
+else
+ HAVEDOT=NO
+fi
+
+
+
+############
+### perl ###
+############
+
+# Extract the first word of "perl", so it can be a program name with args.
+set dummy perl; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_PERL+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $PERL in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_PERL="$PERL" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_path_PERL="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ test -z "$ac_cv_path_PERL" && ac_cv_path_PERL="no"
+ ;;
+esac
+fi
+PERL=$ac_cv_path_PERL
+if test -n "$PERL"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PERL" >&5
+$as_echo "$PERL" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+if test "$PERL" == "no"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: you don't have perl installed! wierdo! (and doxygen might not like this)" >&5
+$as_echo "$as_me: WARNING: you don't have perl installed! wierdo! (and doxygen might not like this)" >&2;}
+fi
+
+
+#########
+### X ###
+#########
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for X" >&5
+$as_echo_n "checking for X... " >&6; }
+
+
+@%:@ Check whether --with-x was given.
+if test "${with_x+set}" = set; then :
+ withval=$with_x;
+fi
+
+# $have_x is `yes', `no', `disabled', or empty when we do not yet know.
+if test "x$with_x" = xno; then
+ # The user explicitly disabled X.
+ have_x=disabled
+else
+ case $x_includes,$x_libraries in #(
+ *\'*) as_fn_error "cannot use X directory names containing '" "$LINENO" 5;; #(
+ *,NONE | NONE,*) if test "${ac_cv_have_x+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ # One or both of the vars are not set, and there is no cached value.
+ac_x_includes=no ac_x_libraries=no
+rm -f -r conftest.dir
+if mkdir conftest.dir; then
+ cd conftest.dir
+ cat >Imakefile <<'_ACEOF'
+incroot:
+ @echo incroot='${INCROOT}'
+usrlibdir:
+ @echo usrlibdir='${USRLIBDIR}'
+libdir:
+ @echo libdir='${LIBDIR}'
+_ACEOF
+ if (export CC; ${XMKMF-xmkmf}) >/dev/null 2>/dev/null && test -f Makefile; then
+ # GNU make sometimes prints "make[1]: Entering...", which would confuse us.
+ for ac_var in incroot usrlibdir libdir; do
+ eval "ac_im_$ac_var=\`\${MAKE-make} $ac_var 2>/dev/null | sed -n 's/^$ac_var=//p'\`"
+ done
+ # Open Windows xmkmf reportedly sets LIBDIR instead of USRLIBDIR.
+ for ac_extension in a so sl dylib la dll; do
+ if test ! -f "$ac_im_usrlibdir/libX11.$ac_extension" &&
+ test -f "$ac_im_libdir/libX11.$ac_extension"; then
+ ac_im_usrlibdir=$ac_im_libdir; break
+ fi
+ done
+ # Screen out bogus values from the imake configuration. They are
+ # bogus both because they are the default anyway, and because
+ # using them would break gcc on systems where it needs fixed includes.
+ case $ac_im_incroot in
+ /usr/include) ac_x_includes= ;;
+ *) test -f "$ac_im_incroot/X11/Xos.h" && ac_x_includes=$ac_im_incroot;;
+ esac
+ case $ac_im_usrlibdir in
+ /usr/lib | /usr/lib64 | /lib | /lib64) ;;
+ *) test -d "$ac_im_usrlibdir" && ac_x_libraries=$ac_im_usrlibdir ;;
+ esac
+ fi
+ cd ..
+ rm -f -r conftest.dir
+fi
+
+# Standard set of common directories for X headers.
+# Check X11 before X11Rn because it is often a symlink to the current release.
+ac_x_header_dirs='
+/usr/X11/include
+/usr/X11R7/include
+/usr/X11R6/include
+/usr/X11R5/include
+/usr/X11R4/include
+
+/usr/include/X11
+/usr/include/X11R7
+/usr/include/X11R6
+/usr/include/X11R5
+/usr/include/X11R4
+
+/usr/local/X11/include
+/usr/local/X11R7/include
+/usr/local/X11R6/include
+/usr/local/X11R5/include
+/usr/local/X11R4/include
+
+/usr/local/include/X11
+/usr/local/include/X11R7
+/usr/local/include/X11R6
+/usr/local/include/X11R5
+/usr/local/include/X11R4
+
+/usr/X386/include
+/usr/x386/include
+/usr/XFree86/include/X11
+
+/usr/include
+/usr/local/include
+/usr/unsupported/include
+/usr/athena/include
+/usr/local/x11r5/include
+/usr/lpp/Xamples/include
+
+/usr/openwin/include
+/usr/openwin/share/include'
+
+if test "$ac_x_includes" = no; then
+ # Guess where to find include files, by looking for Xlib.h.
+ # First, try using that file with no special directory specified.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+@%:@include <X11/Xlib.h>
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+ # We can compile using X headers with no special include directory.
+ac_x_includes=
+else
+ for ac_dir in $ac_x_header_dirs; do
+ if test -r "$ac_dir/X11/Xlib.h"; then
+ ac_x_includes=$ac_dir
+ break
+ fi
+done
+fi
+rm -f conftest.err conftest.$ac_ext
+fi # $ac_x_includes = no
+
+if test "$ac_x_libraries" = no; then
+ # Check for the libraries.
+ # See if we find them without any special options.
+ # Don't add to $LIBS permanently.
+ ac_save_LIBS=$LIBS
+ LIBS="-lX11 $LIBS"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+@%:@include <X11/Xlib.h>
+int
+main ()
+{
+XrmInitialize ()
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ LIBS=$ac_save_LIBS
+# We can link X programs with no special library path.
+ac_x_libraries=
+else
+ LIBS=$ac_save_LIBS
+for ac_dir in `$as_echo "$ac_x_includes $ac_x_header_dirs" | sed s/include/lib/g`
+do
+ # Don't even attempt the hair of trying to link an X program!
+ for ac_extension in a so sl dylib la dll; do
+ if test -r "$ac_dir/libX11.$ac_extension"; then
+ ac_x_libraries=$ac_dir
+ break 2
+ fi
+ done
+done
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+fi # $ac_x_libraries = no
+
+case $ac_x_includes,$ac_x_libraries in #(
+ no,* | *,no | *\'*)
+ # Didn't find X, or a directory has "'" in its name.
+ ac_cv_have_x="have_x=no";; #(
+ *)
+ # Record where we found X for the cache.
+ ac_cv_have_x="have_x=yes\
+ ac_x_includes='$ac_x_includes'\
+ ac_x_libraries='$ac_x_libraries'"
+esac
+fi
+;; #(
+ *) have_x=yes;;
+ esac
+ eval "$ac_cv_have_x"
+fi # $with_x != no
+
+if test "$have_x" != yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_x" >&5
+$as_echo "$have_x" >&6; }
+ no_x=yes
+else
+ # If each of the values was on the command line, it overrides each guess.
+ test "x$x_includes" = xNONE && x_includes=$ac_x_includes
+ test "x$x_libraries" = xNONE && x_libraries=$ac_x_libraries
+ # Update the cache value to reflect the command line values.
+ ac_cv_have_x="have_x=yes\
+ ac_x_includes='$x_includes'\
+ ac_x_libraries='$x_libraries'"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: libraries $x_libraries, headers $x_includes" >&5
+$as_echo "libraries $x_libraries, headers $x_includes" >&6; }
+fi
+
+if test "$no_x" = yes; then
+ # Not all programs may use this symbol, but it does not hurt to define it.
+
+$as_echo "@%:@define X_DISPLAY_MISSING 1" >>confdefs.h
+
+ X_CFLAGS= X_PRE_LIBS= X_LIBS= X_EXTRA_LIBS=
+else
+ if test -n "$x_includes"; then
+ X_CFLAGS="$X_CFLAGS -I$x_includes"
+ fi
+
+ # It would also be nice to do this for all -L options, not just this one.
+ if test -n "$x_libraries"; then
+ X_LIBS="$X_LIBS -L$x_libraries"
+ # For Solaris; some versions of Sun CC require a space after -R and
+ # others require no space. Words are not sufficient . . . .
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -R must be followed by a space" >&5
+$as_echo_n "checking whether -R must be followed by a space... " >&6; }
+ ac_xsave_LIBS=$LIBS; LIBS="$LIBS -R$x_libraries"
+ ac_xsave_c_werror_flag=$ac_c_werror_flag
+ ac_c_werror_flag=yes
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ X_LIBS="$X_LIBS -R$x_libraries"
+else
+ LIBS="$ac_xsave_LIBS -R $x_libraries"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ X_LIBS="$X_LIBS -R $x_libraries"
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: neither works" >&5
+$as_echo "neither works" >&6; }
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ ac_c_werror_flag=$ac_xsave_c_werror_flag
+ LIBS=$ac_xsave_LIBS
+ fi
+
+ # Check for system-dependent libraries X programs must link with.
+ # Do this before checking for the system-independent R6 libraries
+ # (-lICE), since we may need -lsocket or whatever for X linking.
+
+ if test "$ISC" = yes; then
+ X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl_s -linet"
+ else
+ # Martyn Johnson says this is needed for Ultrix, if the X
+ # libraries were built with DECnet support. And Karl Berry says
+ # the Alpha needs dnet_stub (dnet does not exist).
+ ac_xsave_LIBS="$LIBS"; LIBS="$LIBS $X_LIBS -lX11"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char XOpenDisplay ();
+int
+main ()
+{
+return XOpenDisplay ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dnet_ntoa in -ldnet" >&5
+$as_echo_n "checking for dnet_ntoa in -ldnet... " >&6; }
+if test "${ac_cv_lib_dnet_dnet_ntoa+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldnet $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dnet_ntoa ();
+int
+main ()
+{
+return dnet_ntoa ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_dnet_dnet_ntoa=yes
+else
+ ac_cv_lib_dnet_dnet_ntoa=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dnet_dnet_ntoa" >&5
+$as_echo "$ac_cv_lib_dnet_dnet_ntoa" >&6; }
+if test "x$ac_cv_lib_dnet_dnet_ntoa" = x""yes; then :
+ X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet"
+fi
+
+ if test $ac_cv_lib_dnet_dnet_ntoa = no; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dnet_ntoa in -ldnet_stub" >&5
+$as_echo_n "checking for dnet_ntoa in -ldnet_stub... " >&6; }
+if test "${ac_cv_lib_dnet_stub_dnet_ntoa+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldnet_stub $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dnet_ntoa ();
+int
+main ()
+{
+return dnet_ntoa ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_dnet_stub_dnet_ntoa=yes
+else
+ ac_cv_lib_dnet_stub_dnet_ntoa=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dnet_stub_dnet_ntoa" >&5
+$as_echo "$ac_cv_lib_dnet_stub_dnet_ntoa" >&6; }
+if test "x$ac_cv_lib_dnet_stub_dnet_ntoa" = x""yes; then :
+ X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet_stub"
+fi
+
+ fi
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ LIBS="$ac_xsave_LIBS"
+
+ # msh@cis.ufl.edu says -lnsl (and -lsocket) are needed for his 386/AT,
+ # to get the SysV transport functions.
+ # Chad R. Larson says the Pyramis MIS-ES running DC/OSx (SVR4)
+ # needs -lnsl.
+ # The nsl library prevents programs from opening the X display
+ # on Irix 5.2, according to T.E. Dickey.
+ # The functions gethostbyname, getservbyname, and inet_addr are
+ # in -lbsd on LynxOS 3.0.1/i386, according to Lars Hecking.
+ ac_fn_c_check_func "$LINENO" "gethostbyname" "ac_cv_func_gethostbyname"
+if test "x$ac_cv_func_gethostbyname" = x""yes; then :
+
+fi
+
+ if test $ac_cv_func_gethostbyname = no; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostbyname in -lnsl" >&5
+$as_echo_n "checking for gethostbyname in -lnsl... " >&6; }
+if test "${ac_cv_lib_nsl_gethostbyname+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lnsl $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char gethostbyname ();
+int
+main ()
+{
+return gethostbyname ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_nsl_gethostbyname=yes
+else
+ ac_cv_lib_nsl_gethostbyname=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_nsl_gethostbyname" >&5
+$as_echo "$ac_cv_lib_nsl_gethostbyname" >&6; }
+if test "x$ac_cv_lib_nsl_gethostbyname" = x""yes; then :
+ X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl"
+fi
+
+ if test $ac_cv_lib_nsl_gethostbyname = no; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostbyname in -lbsd" >&5
+$as_echo_n "checking for gethostbyname in -lbsd... " >&6; }
+if test "${ac_cv_lib_bsd_gethostbyname+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lbsd $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char gethostbyname ();
+int
+main ()
+{
+return gethostbyname ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_bsd_gethostbyname=yes
+else
+ ac_cv_lib_bsd_gethostbyname=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_bsd_gethostbyname" >&5
+$as_echo "$ac_cv_lib_bsd_gethostbyname" >&6; }
+if test "x$ac_cv_lib_bsd_gethostbyname" = x""yes; then :
+ X_EXTRA_LIBS="$X_EXTRA_LIBS -lbsd"
+fi
+
+ fi
+ fi
+
+ # lieder@skyler.mavd.honeywell.com says without -lsocket,
+ # socket/setsockopt and other routines are undefined under SCO ODT
+ # 2.0. But -lsocket is broken on IRIX 5.2 (and is not necessary
+ # on later versions), says Simon Leinen: it contains gethostby*
+ # variants that don't use the name server (or something). -lsocket
+ # must be given before -lnsl if both are needed. We assume that
+ # if connect needs -lnsl, so does gethostbyname.
+ ac_fn_c_check_func "$LINENO" "connect" "ac_cv_func_connect"
+if test "x$ac_cv_func_connect" = x""yes; then :
+
+fi
+
+ if test $ac_cv_func_connect = no; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for connect in -lsocket" >&5
+$as_echo_n "checking for connect in -lsocket... " >&6; }
+if test "${ac_cv_lib_socket_connect+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lsocket $X_EXTRA_LIBS $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char connect ();
+int
+main ()
+{
+return connect ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_socket_connect=yes
+else
+ ac_cv_lib_socket_connect=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_socket_connect" >&5
+$as_echo "$ac_cv_lib_socket_connect" >&6; }
+if test "x$ac_cv_lib_socket_connect" = x""yes; then :
+ X_EXTRA_LIBS="-lsocket $X_EXTRA_LIBS"
+fi
+
+ fi
+
+ # Guillermo Gomez says -lposix is necessary on A/UX.
+ ac_fn_c_check_func "$LINENO" "remove" "ac_cv_func_remove"
+if test "x$ac_cv_func_remove" = x""yes; then :
+
+fi
+
+ if test $ac_cv_func_remove = no; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for remove in -lposix" >&5
+$as_echo_n "checking for remove in -lposix... " >&6; }
+if test "${ac_cv_lib_posix_remove+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lposix $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char remove ();
+int
+main ()
+{
+return remove ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_posix_remove=yes
+else
+ ac_cv_lib_posix_remove=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_posix_remove" >&5
+$as_echo "$ac_cv_lib_posix_remove" >&6; }
+if test "x$ac_cv_lib_posix_remove" = x""yes; then :
+ X_EXTRA_LIBS="$X_EXTRA_LIBS -lposix"
+fi
+
+ fi
+
+ # BSDI BSD/OS 2.1 needs -lipc for XOpenDisplay.
+ ac_fn_c_check_func "$LINENO" "shmat" "ac_cv_func_shmat"
+if test "x$ac_cv_func_shmat" = x""yes; then :
+
+fi
+
+ if test $ac_cv_func_shmat = no; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shmat in -lipc" >&5
+$as_echo_n "checking for shmat in -lipc... " >&6; }
+if test "${ac_cv_lib_ipc_shmat+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lipc $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char shmat ();
+int
+main ()
+{
+return shmat ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_ipc_shmat=yes
+else
+ ac_cv_lib_ipc_shmat=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ipc_shmat" >&5
+$as_echo "$ac_cv_lib_ipc_shmat" >&6; }
+if test "x$ac_cv_lib_ipc_shmat" = x""yes; then :
+ X_EXTRA_LIBS="$X_EXTRA_LIBS -lipc"
+fi
+
+ fi
+ fi
+
+ # Check for libraries that X11R6 Xt/Xaw programs need.
+ ac_save_LDFLAGS=$LDFLAGS
+ test -n "$x_libraries" && LDFLAGS="$LDFLAGS -L$x_libraries"
+ # SM needs ICE to (dynamically) link under SunOS 4.x (so we have to
+ # check for ICE first), but we must link in the order -lSM -lICE or
+ # we get undefined symbols. So assume we have SM if we have ICE.
+ # These have to be linked with before -lX11, unlike the other
+ # libraries we check for below, so use a different variable.
+ # John Interrante, Karl Berry
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IceConnectionNumber in -lICE" >&5
+$as_echo_n "checking for IceConnectionNumber in -lICE... " >&6; }
+if test "${ac_cv_lib_ICE_IceConnectionNumber+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lICE $X_EXTRA_LIBS $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char IceConnectionNumber ();
+int
+main ()
+{
+return IceConnectionNumber ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_ICE_IceConnectionNumber=yes
+else
+ ac_cv_lib_ICE_IceConnectionNumber=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ICE_IceConnectionNumber" >&5
+$as_echo "$ac_cv_lib_ICE_IceConnectionNumber" >&6; }
+if test "x$ac_cv_lib_ICE_IceConnectionNumber" = x""yes; then :
+ X_PRE_LIBS="$X_PRE_LIBS -lSM -lICE"
+fi
+
+ LDFLAGS=$ac_save_LDFLAGS
+
+fi
+
+if test "$X_DISPLAY_MISSING" != ""; then
+ as_fn_error "X required" "$LINENO" 5
+fi
+
+
+
+##########
+### QT ###
+##########
+
+
+ qt_error="no"
+
+ QT_CFLAGS=""
+ QT_LIBS=""
+ MOC="moc"
+ UIC="uic"
+ qt_includes="/usr/include/qt"
+ qt_libraries=""
+ qt_binaries=""
+
+ if test "$qt_error" = "no"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for QT environment variable QTDIR" >&5
+$as_echo_n "checking for QT environment variable QTDIR... " >&6; }
+ if test -z "$QTDIR"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING:
+
+ ***************** WARNING *****************
+
+YOU HAVE NOT SET YOUR 'QTDIR' ENVIRONMENT VARIABLE!!!
+
+This is the source of most people's problems when
+configuring muse. If the configuration fails to find
+qt, try setting your QTDIR environment variable to
+the directory where qt is installed.
+
+ *******************************************
+
+" >&5
+$as_echo "$as_me: WARNING:
+
+ ***************** WARNING *****************
+
+YOU HAVE NOT SET YOUR 'QTDIR' ENVIRONMENT VARIABLE!!!
+
+This is the source of most people's problems when
+configuring muse. If the configuration fails to find
+qt, try setting your QTDIR environment variable to
+the directory where qt is installed.
+
+ *******************************************
+
+" >&2;}
+ echo -ne "\a"
+ echo -ne "\a"
+ echo -ne "\a"
+ sleep 7
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ qt_includes="$QTDIR/include"
+ qt_libraries="$QTDIR/lib"
+ qt_binaries="$QTDIR/bin"
+ MOC="$qt_binaries/moc";
+ UIC="$qt_binaries/uic";
+ fi
+ fi
+
+ muse_qttest="yes"
+ @%:@ Check whether --enable-qttest was given.
+if test "${enable_qttest+set}" = set; then :
+ enableval=$enable_qttest;
+ case "$enableval" in
+ "yes")
+ muse_qttest="yes"
+ ;;
+ "no")
+ muse_qttest="no"
+ ;;
+ *)
+ as_fn_error "must use --enable-qttest(=yes/no) or --disable-qttest" "$LINENO" 5
+ ;;
+ esac
+
+fi
+
+
+
+
+@%:@ Check whether --with-qt-prefix was given.
+if test "${with_qt_prefix+set}" = set; then :
+ withval=$with_qt_prefix;
+ qt_includes="$withval/include"
+ qt_libraries="$withval/lib"
+ qt_binaries="$withval/bin"
+ MOC="$qt_binaries/moc";
+ UIC="$qt_binaries/uic";
+
+fi
+
+
+
+@%:@ Check whether --with-qt-includes was given.
+if test "${with_qt_includes+set}" = set; then :
+ withval=$with_qt_includes;
+ qt_includes="$withval"
+
+fi
+
+
+
+@%:@ Check whether --with-qt-libraries was given.
+if test "${with_qt_libraries+set}" = set; then :
+ withval=$with_qt_libraries;
+ qt_libraries="$withval"
+
+fi
+
+
+
+@%:@ Check whether --with-qt-binaries was given.
+if test "${with_qt_binaries+set}" = set; then :
+ withval=$with_qt_binaries;
+ qt_binaries="$withval"
+ MOC="$qt_binaries/moc";
+ UIC="$qt_binaries/uic";
+
+fi
+
+
+
+@%:@ Check whether --with-qt-moc was given.
+if test "${with_qt_moc+set}" = set; then :
+ withval=$with_qt_moc;
+ MOC="$withval"
+
+fi
+
+
+
+@%:@ Check whether --with-qt-uic was given.
+if test "${with_qt_uic+set}" = set; then :
+ withval=$with_qt_uic;
+ UIC="$withval"
+
+fi
+
+
+ if test "$qt_error" = "no"; then
+ saved_CPPFLAGS="$CPPFLAGS"
+ saved_LIBS="$LIBS"
+ CPPFLAGS="$saved_CPPFLAGS -I$qt_includes"
+ if test -n "$qt_libraries"; then
+ LIBS="$saved_LIBS -L$qt_libraries -lqt-mt -lqui"
+ QT_LIBS="-L$qt_libraries -lqt-mt -lqui"
+ else
+ LIBS="$saved_LIBS -lqt-mt -lqui -lm $X11_LIBS"
+ QT_LIBS="-lqt-mt -lqui"
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for QT includes ($qt_includes)" >&5
+$as_echo_n "checking for QT includes ($qt_includes)... " >&6; }
+ if test "${qt_includes_found+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ ac_ext=cpp
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <qapplication.h>
+_ACEOF
+if ac_fn_cxx_try_cpp "$LINENO"; then :
+ qt_includes_found=yes
+else
+ qt_includes_found=no
+fi
+rm -f conftest.err conftest.$ac_ext
+ ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+ if test "$qt_includes_found" = "yes"; then
+ QT_CFLAGS="-I$qt_includes"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ else
+ qt_error=yes
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ fi
+
+fi
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for QT libraries ($qt_libraries)" >&5
+$as_echo_n "checking for QT libraries ($qt_libraries)... " >&6; }
+ if test "${qt_libraries_found+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+
+
+ ac_ext=cpp
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+
+ saved_CXXFLAGS="$CXXFLAGS"
+ saved_LIBS="$LIBS"
+ CXXFLAGS="$QT_CFLAGS $LIBS"
+ LIBS="$QT_LIBS $LIBS"
+
+
+ if test "$muse_qttest" = "yes"; then
+ if test "$cross_compiling" = yes; then :
+ as_fn_error "cross compiling unsupported" "$LINENO" 5
+
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+ #include <qapplication.h>
+ int main(int argc, char **argv)
+ {
+ QApplication app(argc, argv, false);
+
+ }
+
+_ACEOF
+if ac_fn_cxx_try_run "$LINENO"; then :
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+
+else
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ qt_error="yes"
+
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes (assumed due to --disable-qttest)" >&5
+$as_echo "yes (assumed due to --disable-qttest)" >&6; }
+ fi
+
+ LIBS="$saved_LIBS"
+ CXXFLAGS="$saved_CXXFLAGS"
+ ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+fi
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for QT moc ($MOC)" >&5
+$as_echo_n "checking for QT moc ($MOC)... " >&6; }
+ output=`eval "$MOC --help 2>&1 | grep Qt"`
+ if test -z "$output"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ qt_error="yes"
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ fi
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for QT uic ($UIC)" >&5
+$as_echo_n "checking for QT uic ($UIC)... " >&6; }
+ output=`eval "$UIC --help 2>&1 | grep Qt"`
+ if test -z "$output"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ qt_error="yes"
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ fi
+ CPPFLAGS="$saved_CPPFLAGS"
+ LIBS="$saved_LIBS"
+ fi
+
+ if test "$qt_error" = "no"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for QT version >= 3.2.0" >&5
+$as_echo_n "checking for QT version >= 3.2.0... " >&6; }
+ qt_major_version=`echo 3.2.0 | \
+ sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\1/'`
+ qt_minor_version=`echo 3.2.0 | \
+ sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\2/'`
+ qt_micro_version=`echo 3.2.0 | \
+ sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\3/'`
+ qt_version="$qt_major_version$qt_minor_version$qt_micro_version"
+
+
+ ac_ext=cpp
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+
+ saved_CXXFLAGS="$CXXFLAGS"
+ saved_LIBS="$LIBS"
+ CXXFLAGS="$QT_CFLAGS $LIBS"
+ LIBS="$QT_LIBS $LIBS"
+
+ if test "$muse_qttest" = "yes"; then
+ if test "$cross_compiling" = yes; then :
+ as_fn_error "cross compiling unsupported" "$LINENO" 5
+
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+ #include <qglobal.h>
+ int main()
+ {
+ int version = ($qt_major_version << 16)
+ + ($qt_minor_version << 8)
+ + $qt_micro_version;
+ if (QT_VERSION < version) return(1);
+ return(0);
+ }
+
+_ACEOF
+if ac_fn_cxx_try_run "$LINENO"; then :
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+
+else
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ qt_error="yes"
+
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes (assumed due to --disable-qttest)" >&5
+$as_echo "yes (assumed due to --disable-qttest)" >&6; }
+ fi
+
+ LIBS="$saved_LIBS"
+ CXXFLAGS="$saved_CXXFLAGS"
+ ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+ fi
+
+
+
+
+
+ if test "$qt_error" = "no"; then
+ :
+ else
+ as_fn_error "need qt >= 3.2.0" "$LINENO" 5
+ fi
+
+if test "$muse_qttest" = "yes"; then
+ ac_ext=cpp
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+
+ muse_save_CFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS $QT_CFLAGS"
+ muse_save_CXXFLAGS="$CXXFLAGS"
+ CXXFLAGS="$CXXFLAGS $QT_CFLAGS"
+ muse_save_LDFLAGS="$LDFLAGS"
+ LDFLAGS="$LDFLAGS $QT_LIBS"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for qt_selection_property in -lqt-mt" >&5
+$as_echo_n "checking for qt_selection_property in -lqt-mt... " >&6; }
+if test "${ac_cv_lib_qt_mt_qt_selection_property+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lqt-mt $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char qt_selection_property ();
+int
+main ()
+{
+return qt_selection_property ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_link "$LINENO"; then :
+ ac_cv_lib_qt_mt_qt_selection_property=yes
+else
+ ac_cv_lib_qt_mt_qt_selection_property=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_qt_mt_qt_selection_property" >&5
+$as_echo "$ac_cv_lib_qt_mt_qt_selection_property" >&6; }
+if test "x$ac_cv_lib_qt_mt_qt_selection_property" = x""yes; then :
+
+ true
+
+else
+
+ as_fn_error "
+
+ MusE requires thread enabled QT (qt-mt) >= 3.2.0
+
+ You can either compile your own version of QT (making sure you enable
+ threading!) or install the appropriate package for your distribution.
+" "$LINENO" 5
+
+fi
+
+ CFLAGS="$muse_save_CFLAGS"
+ CXXFLAGS="$muse_save_CXXFLAGS"
+ LDFLAGS="$muse_save_LDFLAGS"
+ unset muse_save_CFLAGS
+ unset muse_save_CXXFLAGS
+ unset muse_save_LDFLAGS
+ ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+fi
+
+############
+### ALSA ###
+############
+alsa_save_CFLAGS="$CFLAGS"
+alsa_save_LDFLAGS="$LDFLAGS"
+alsa_save_LIBS="$LIBS"
+alsa_found=yes
+
+
+@%:@ Check whether --with-alsa-prefix was given.
+if test "${with_alsa_prefix+set}" = set; then :
+ withval=$with_alsa_prefix; alsa_prefix="$withval"
+else
+ alsa_prefix=""
+fi
+
+
+
+@%:@ Check whether --with-alsa-inc-prefix was given.
+if test "${with_alsa_inc_prefix+set}" = set; then :
+ withval=$with_alsa_inc_prefix; alsa_inc_prefix="$withval"
+else
+ alsa_inc_prefix=""
+fi
+
+
+@%:@ Check whether --enable-alsatest was given.
+if test "${enable_alsatest+set}" = set; then :
+ enableval=$enable_alsatest; enable_alsatest=no
+else
+ enable_alsatest=yes
+fi
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ALSA CFLAGS" >&5
+$as_echo_n "checking for ALSA CFLAGS... " >&6; }
+if test "$alsa_inc_prefix" != "" ; then
+ ALSA_CFLAGS="$ALSA_CFLAGS -I$alsa_inc_prefix"
+ CFLAGS="$CFLAGS -I$alsa_inc_prefix"
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ALSA_CFLAGS" >&5
+$as_echo "$ALSA_CFLAGS" >&6; }
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ALSA LDFLAGS" >&5
+$as_echo_n "checking for ALSA LDFLAGS... " >&6; }
+if test "$alsa_prefix" != "" ; then
+ ALSA_LIBS="$ALSA_LIBS -L$alsa_prefix"
+ LDFLAGS="$LDFLAGS $ALSA_LIBS"
+fi
+
+ALSA_LIBS="$ALSA_LIBS -lasound -lm -ldl"
+LIBS=`echo $LIBS | sed 's/-lm//'`
+LIBS=`echo $LIBS | sed 's/-ldl//'`
+LIBS=`echo $LIBS | sed 's/ //'`
+LIBS="$ALSA_LIBS $LIBS"
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ALSA_LIBS" >&5
+$as_echo "$ALSA_LIBS" >&6; }
+
+min_alsa_version=0.9.0
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for libasound headers version >= $min_alsa_version" >&5
+$as_echo_n "checking for libasound headers version >= $min_alsa_version... " >&6; }
+no_alsa=""
+ alsa_min_major_version=`echo $min_alsa_version | \
+ sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\1/'`
+ alsa_min_minor_version=`echo $min_alsa_version | \
+ sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\2/'`
+ alsa_min_micro_version=`echo $min_alsa_version | \
+ sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\3/'`
+
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <alsa/asoundlib.h>
+
+int
+main ()
+{
+
+void main(void)
+{
+/* ensure backward compatibility */
+#if !defined(SND_LIB_MAJOR) && defined(SOUNDLIB_VERSION_MAJOR)
+#define SND_LIB_MAJOR SOUNDLIB_VERSION_MAJOR
+#endif
+#if !defined(SND_LIB_MINOR) && defined(SOUNDLIB_VERSION_MINOR)
+#define SND_LIB_MINOR SOUNDLIB_VERSION_MINOR
+#endif
+#if !defined(SND_LIB_SUBMINOR) && defined(SOUNDLIB_VERSION_SUBMINOR)
+#define SND_LIB_SUBMINOR SOUNDLIB_VERSION_SUBMINOR
+#endif
+
+# if(SND_LIB_MAJOR > $alsa_min_major_version)
+ exit(0);
+# else
+# if(SND_LIB_MAJOR < $alsa_min_major_version)
+# error not present
+# endif
+
+# if(SND_LIB_MINOR > $alsa_min_minor_version)
+ exit(0);
+# else
+# if(SND_LIB_MINOR < $alsa_min_minor_version)
+# error not present
+# endif
+
+# if(SND_LIB_SUBMINOR < $alsa_min_micro_version)
+# error not present
+# endif
+# endif
+# endif
+exit(0);
+}
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: found." >&5
+$as_echo "found." >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not present." >&5
+$as_echo "not present." >&6; }
+
+ alsa_found=no
+
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+
+ac_ext=cpp
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for snd_seq_create_event in -lasound" >&5
+$as_echo_n "checking for snd_seq_create_event in -lasound... " >&6; }
+if test "${ac_cv_lib_asound_snd_seq_create_event+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lasound $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char snd_seq_create_event ();
+int
+main ()
+{
+return snd_seq_create_event ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_link "$LINENO"; then :
+ ac_cv_lib_asound_snd_seq_create_event=yes
+else
+ ac_cv_lib_asound_snd_seq_create_event=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_asound_snd_seq_create_event" >&5
+$as_echo "$ac_cv_lib_asound_snd_seq_create_event" >&6; }
+if test "x$ac_cv_lib_asound_snd_seq_create_event" = x""yes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_LIBASOUND 1
+_ACEOF
+
+ LIBS="-lasound $LIBS"
+
+else
+
+ alsa_found=no
+
+fi
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+if test "x$alsa_found" = "xyes" ; then
+ true
+ LIBS=`echo $LIBS | sed 's/-lasound//g'`
+ LIBS=`echo $LIBS | sed 's/ //'`
+ LIBS="-lasound $LIBS"
+fi
+if test "x$alsa_found" = "xno" ; then
+ as_fn_error "latest alsa (0.9.x) is required" "$LINENO" 5
+
+ CFLAGS="$alsa_save_CFLAGS"
+ LDFLAGS="$alsa_save_LDFLAGS"
+ LIBS="$alsa_save_LIBS"
+ ALSA_CFLAGS=""
+ ALSA_LIBS=""
+fi
+
+
+
+
+
+#################
+### fluidsynth ###
+#################
+LIBFLUIDSYNTH=
+muse_enable_fluidlib="yes"
+synth_fluidsynth="fluidsynth"
+synth_fluid="fluid"
+@%:@ Check whether --enable-fluidsynth was given.
+if test "${enable_fluidsynth+set}" = set; then :
+ enableval=$enable_fluidsynth;
+ case "$enableval" in
+ "yes")
+ synth_fluidsynth="fluidsynth"
+ synth_fluid="fluid"
+ ;;
+ "no")
+ muse_enable_fluidlib="no"
+ synth_fluidsynth=""
+ synth_fluid=""
+ ;;
+ *)
+ as_fn_error "must use --enable-fluidsynth(=yes/no) or --disable-fluidsynth" "$LINENO" 5
+ ;;
+ esac
+
+fi
+
+
+ if test "$muse_enable_fluidlib" = "yes"; then
+ ENABLEFLUIDSYNTH_TRUE=
+ ENABLEFLUIDSYNTH_FALSE='#'
+else
+ ENABLEFLUIDSYNTH_TRUE='#'
+ ENABLEFLUIDSYNTH_FALSE=
+fi
+
+
+
+if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
+set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_PKG_CONFIG+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $PKG_CONFIG in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+PKG_CONFIG=$ac_cv_path_PKG_CONFIG
+if test -n "$PKG_CONFIG"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5
+$as_echo "$PKG_CONFIG" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_path_PKG_CONFIG"; then
+ ac_pt_PKG_CONFIG=$PKG_CONFIG
+ # Extract the first word of "pkg-config", so it can be a program name with args.
+set dummy pkg-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $ac_pt_PKG_CONFIG in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
+if test -n "$ac_pt_PKG_CONFIG"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5
+$as_echo "$ac_pt_PKG_CONFIG" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_pt_PKG_CONFIG" = x; then
+ PKG_CONFIG=""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ PKG_CONFIG=$ac_pt_PKG_CONFIG
+ fi
+else
+ PKG_CONFIG="$ac_cv_path_PKG_CONFIG"
+fi
+
+fi
+if test -n "$PKG_CONFIG"; then
+ _pkg_min_version=0.9.0
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5
+$as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; }
+ if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ PKG_CONFIG=""
+ fi
+
+fi
+
+pkg_failed=no
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for Fluidsynth" >&5
+$as_echo_n "checking for Fluidsynth... " >&6; }
+
+if test -n "$PKG_CONFIG"; then
+ if test -n "$Fluidsynth_CFLAGS"; then
+ pkg_cv_Fluidsynth_CFLAGS="$Fluidsynth_CFLAGS"
+ else
+ if test -n "$PKG_CONFIG" && \
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"fluidsynth\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "fluidsynth") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ pkg_cv_Fluidsynth_CFLAGS=`$PKG_CONFIG --cflags "fluidsynth" 2>/dev/null`
+else
+ pkg_failed=yes
+fi
+ fi
+else
+ pkg_failed=untried
+fi
+if test -n "$PKG_CONFIG"; then
+ if test -n "$Fluidsynth_LIBS"; then
+ pkg_cv_Fluidsynth_LIBS="$Fluidsynth_LIBS"
+ else
+ if test -n "$PKG_CONFIG" && \
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"fluidsynth\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "fluidsynth") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ pkg_cv_Fluidsynth_LIBS=`$PKG_CONFIG --libs "fluidsynth" 2>/dev/null`
+else
+ pkg_failed=yes
+fi
+ fi
+else
+ pkg_failed=untried
+fi
+
+
+
+if test $pkg_failed = yes; then
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+ _pkg_short_errors_supported=yes
+else
+ _pkg_short_errors_supported=no
+fi
+ if test $_pkg_short_errors_supported = yes; then
+ Fluidsynth_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "fluidsynth"`
+ else
+ Fluidsynth_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "fluidsynth"`
+ fi
+ # Put the nasty error message in config.log where it belongs
+ echo "$Fluidsynth_PKG_ERRORS" >&5
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libfluidsynth not found; disabling fluidsynth plugins" >&5
+$as_echo "$as_me: WARNING: libfluidsynth not found; disabling fluidsynth plugins" >&2;} ;
+ muse_enable_fluidlib="no"
+
+elif test $pkg_failed = untried; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libfluidsynth not found; disabling fluidsynth plugins" >&5
+$as_echo "$as_me: WARNING: libfluidsynth not found; disabling fluidsynth plugins" >&2;} ;
+ muse_enable_fluidlib="no"
+
+else
+ Fluidsynth_CFLAGS=$pkg_cv_Fluidsynth_CFLAGS
+ Fluidsynth_LIBS=$pkg_cv_Fluidsynth_LIBS
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ FLUIDSYNTHDIRS="fluid fluidsynth";
+$as_echo "@%:@define ENABLEFLUIDSYNTH 1" >>confdefs.h
+
+fi
+
+
+
+if test "$muse_enable_fluidlib" = "no"; then
+ synth_fluidsynth=""
+ synth_fluid=""
+fi
+
+
+###############
+### sndfile ###
+###############
+
+pkg_failed=no
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for SNDFILE" >&5
+$as_echo_n "checking for SNDFILE... " >&6; }
+
+if test -n "$PKG_CONFIG"; then
+ if test -n "$SNDFILE_CFLAGS"; then
+ pkg_cv_SNDFILE_CFLAGS="$SNDFILE_CFLAGS"
+ else
+ if test -n "$PKG_CONFIG" && \
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"sndfile >= 1.0.0\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "sndfile >= 1.0.0") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ pkg_cv_SNDFILE_CFLAGS=`$PKG_CONFIG --cflags "sndfile >= 1.0.0" 2>/dev/null`
+else
+ pkg_failed=yes
+fi
+ fi
+else
+ pkg_failed=untried
+fi
+if test -n "$PKG_CONFIG"; then
+ if test -n "$SNDFILE_LIBS"; then
+ pkg_cv_SNDFILE_LIBS="$SNDFILE_LIBS"
+ else
+ if test -n "$PKG_CONFIG" && \
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"sndfile >= 1.0.0\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "sndfile >= 1.0.0") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ pkg_cv_SNDFILE_LIBS=`$PKG_CONFIG --libs "sndfile >= 1.0.0" 2>/dev/null`
+else
+ pkg_failed=yes
+fi
+ fi
+else
+ pkg_failed=untried
+fi
+
+
+
+if test $pkg_failed = yes; then
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+ _pkg_short_errors_supported=yes
+else
+ _pkg_short_errors_supported=no
+fi
+ if test $_pkg_short_errors_supported = yes; then
+ SNDFILE_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "sndfile >= 1.0.0"`
+ else
+ SNDFILE_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "sndfile >= 1.0.0"`
+ fi
+ # Put the nasty error message in config.log where it belongs
+ echo "$SNDFILE_PKG_ERRORS" >&5
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ as_fn_error "need libsndfile >= 1.0.0" "$LINENO" 5
+
+elif test $pkg_failed = untried; then
+ as_fn_error "need libsndfile >= 1.0.0" "$LINENO" 5
+
+else
+ SNDFILE_CFLAGS=$pkg_cv_SNDFILE_CFLAGS
+ SNDFILE_LIBS=$pkg_cv_SNDFILE_LIBS
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ true
+fi
+
+###############
+### libsamplerate ###
+###############
+
+pkg_failed=no
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for SAMPLERATE" >&5
+$as_echo_n "checking for SAMPLERATE... " >&6; }
+
+if test -n "$PKG_CONFIG"; then
+ if test -n "$SAMPLERATE_CFLAGS"; then
+ pkg_cv_SAMPLERATE_CFLAGS="$SAMPLERATE_CFLAGS"
+ else
+ if test -n "$PKG_CONFIG" && \
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"samplerate >= 0.1.0\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "samplerate >= 0.1.0") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ pkg_cv_SAMPLERATE_CFLAGS=`$PKG_CONFIG --cflags "samplerate >= 0.1.0" 2>/dev/null`
+else
+ pkg_failed=yes
+fi
+ fi
+else
+ pkg_failed=untried
+fi
+if test -n "$PKG_CONFIG"; then
+ if test -n "$SAMPLERATE_LIBS"; then
+ pkg_cv_SAMPLERATE_LIBS="$SAMPLERATE_LIBS"
+ else
+ if test -n "$PKG_CONFIG" && \
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"samplerate >= 0.1.0\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "samplerate >= 0.1.0") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ pkg_cv_SAMPLERATE_LIBS=`$PKG_CONFIG --libs "samplerate >= 0.1.0" 2>/dev/null`
+else
+ pkg_failed=yes
+fi
+ fi
+else
+ pkg_failed=untried
+fi
+
+
+
+if test $pkg_failed = yes; then
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+ _pkg_short_errors_supported=yes
+else
+ _pkg_short_errors_supported=no
+fi
+ if test $_pkg_short_errors_supported = yes; then
+ SAMPLERATE_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "samplerate >= 0.1.0"`
+ else
+ SAMPLERATE_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "samplerate >= 0.1.0"`
+ fi
+ # Put the nasty error message in config.log where it belongs
+ echo "$SAMPLERATE_PKG_ERRORS" >&5
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ as_fn_error "need libsamplerate" "$LINENO" 5
+
+elif test $pkg_failed = untried; then
+ as_fn_error "need libsamplerate" "$LINENO" 5
+
+else
+ SAMPLERATE_CFLAGS=$pkg_cv_SAMPLERATE_CFLAGS
+ SAMPLERATE_LIBS=$pkg_cv_SAMPLERATE_LIBS
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ true
+fi
+
+###############
+### libuuid ###
+###############
+ac_fn_c_check_header_mongrel "$LINENO" "uuid/uuid.h" "ac_cv_header_uuid_uuid_h" "$ac_includes_default"
+if test "x$ac_cv_header_uuid_uuid_h" = x""yes; then :
+ UUID_FOUND="yes"
+else
+ UUID_FOUND="no"
+fi
+
+
+if test x$UUID_FOUND = xno; then
+ as_fn_error "Header file uuid.h, from the uuid-dev (sometimes in e2fsprogs) package, is required" "$LINENO" 5
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for uuid_generate in -luuid" >&5
+$as_echo_n "checking for uuid_generate in -luuid... " >&6; }
+if test "${ac_cv_lib_uuid_uuid_generate+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-luuid $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char uuid_generate ();
+int
+main ()
+{
+return uuid_generate ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_uuid_uuid_generate=yes
+else
+ ac_cv_lib_uuid_uuid_generate=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_uuid_uuid_generate" >&5
+$as_echo "$ac_cv_lib_uuid_uuid_generate" >&6; }
+if test "x$ac_cv_lib_uuid_uuid_generate" = x""yes; then :
+ UUID_FOUND="yes"
+else
+ UUID_FOUND="no"
+fi
+
+if test x$UUID_FOUND = xno; then
+ as_fn_error "libuuid (sometimes in e2fsprogs package) is required" "$LINENO" 5
+fi
+UUID_LIBS="-luuid"
+
+
+
+## PKG_CHECK_MODULES(UUID, uuid >= 1.0,
+## true,
+## AC_MSG_ERROR([need libuuid >= 1.0 from e2fsprogs package])
+## )
+
+############
+### JACK ###
+############
+
+
+pkg_failed=no
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for JACK" >&5
+$as_echo_n "checking for JACK... " >&6; }
+
+if test -n "$PKG_CONFIG"; then
+ if test -n "$JACK_CFLAGS"; then
+ pkg_cv_JACK_CFLAGS="$JACK_CFLAGS"
+ else
+ if test -n "$PKG_CONFIG" && \
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"jack >= 0.98.0\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "jack >= 0.98.0") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ pkg_cv_JACK_CFLAGS=`$PKG_CONFIG --cflags "jack >= 0.98.0" 2>/dev/null`
+else
+ pkg_failed=yes
+fi
+ fi
+else
+ pkg_failed=untried
+fi
+if test -n "$PKG_CONFIG"; then
+ if test -n "$JACK_LIBS"; then
+ pkg_cv_JACK_LIBS="$JACK_LIBS"
+ else
+ if test -n "$PKG_CONFIG" && \
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"jack >= 0.98.0\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "jack >= 0.98.0") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ pkg_cv_JACK_LIBS=`$PKG_CONFIG --libs "jack >= 0.98.0" 2>/dev/null`
+else
+ pkg_failed=yes
+fi
+ fi
+else
+ pkg_failed=untried
+fi
+
+
+
+if test $pkg_failed = yes; then
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+ _pkg_short_errors_supported=yes
+else
+ _pkg_short_errors_supported=no
+fi
+ if test $_pkg_short_errors_supported = yes; then
+ JACK_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "jack >= 0.98.0"`
+ else
+ JACK_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "jack >= 0.98.0"`
+ fi
+ # Put the nasty error message in config.log where it belongs
+ echo "$JACK_PKG_ERRORS" >&5
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ as_fn_error "need JACK >= 0.98.0" "$LINENO" 5
+
+elif test $pkg_failed = untried; then
+ as_fn_error "need JACK >= 0.98.0" "$LINENO" 5
+
+else
+ JACK_CFLAGS=$pkg_cv_JACK_CFLAGS
+ JACK_LIBS=$pkg_cv_JACK_LIBS
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ true
+fi
+
+##############
+### LASH ###
+##############
+muse_enable_lash="no"
+@%:@ Check whether --enable-lash was given.
+if test "${enable_lash+set}" = set; then :
+ enableval=$enable_lash;
+ case "$enableval" in
+ "yes")
+ muse_enable_lash="yes"
+ ;;
+ "no")
+ muse_enable_lash="no"
+ ;;
+ *)
+ as_fn_error "must use --enable-lash(=yes/no) or --disable-lash" "$LINENO" 5
+ ;;
+ esac
+
+fi
+
+
+if test "$muse_enable_lash" = "yes"; then
+
+pkg_failed=no
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for LASH" >&5
+$as_echo_n "checking for LASH... " >&6; }
+
+if test -n "$PKG_CONFIG"; then
+ if test -n "$LASH_CFLAGS"; then
+ pkg_cv_LASH_CFLAGS="$LASH_CFLAGS"
+ else
+ if test -n "$PKG_CONFIG" && \
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"lash-1.0 >= 0.2\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "lash-1.0 >= 0.2") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ pkg_cv_LASH_CFLAGS=`$PKG_CONFIG --cflags "lash-1.0 >= 0.2" 2>/dev/null`
+else
+ pkg_failed=yes
+fi
+ fi
+else
+ pkg_failed=untried
+fi
+if test -n "$PKG_CONFIG"; then
+ if test -n "$LASH_LIBS"; then
+ pkg_cv_LASH_LIBS="$LASH_LIBS"
+ else
+ if test -n "$PKG_CONFIG" && \
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"lash-1.0 >= 0.2\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "lash-1.0 >= 0.2") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ pkg_cv_LASH_LIBS=`$PKG_CONFIG --libs "lash-1.0 >= 0.2" 2>/dev/null`
+else
+ pkg_failed=yes
+fi
+ fi
+else
+ pkg_failed=untried
+fi
+
+
+
+if test $pkg_failed = yes; then
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+ _pkg_short_errors_supported=yes
+else
+ _pkg_short_errors_supported=no
+fi
+ if test $_pkg_short_errors_supported = yes; then
+ LASH_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "lash-1.0 >= 0.2"`
+ else
+ LASH_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "lash-1.0 >= 0.2"`
+ fi
+ # Put the nasty error message in config.log where it belongs
+ echo "$LASH_PKG_ERRORS" >&5
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ LASH_FOUND="no"
+elif test $pkg_failed = untried; then
+ LASH_FOUND="no"
+else
+ LASH_CFLAGS=$pkg_cv_LASH_CFLAGS
+ LASH_LIBS=$pkg_cv_LASH_LIBS
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ LASH_FOUND="yes"
+fi
+
+
+
+ if test "$LASH_FOUND" = "yes"; then
+
+$as_echo "@%:@define HAVE_LASH 1" >>confdefs.h
+
+ LASH_VERSION=$( pkg-config --modversion lash-1.0 )
+
+cat >>confdefs.h <<_ACEOF
+@%:@define LASH_VERSION "$LASH_VERSION"
+_ACEOF
+
+ fi
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: LASH support is disabled" >&5
+$as_echo "$as_me: WARNING: LASH support is disabled" >&2;}
+ LASH_FOUND="no"
+fi
+ if test "$LASH_FOUND" = "yes"; then
+ HAVE_LASH_TRUE=
+ HAVE_LASH_FALSE='#'
+else
+ HAVE_LASH_TRUE='#'
+ HAVE_LASH_FALSE=
+fi
+
+
+
+
+
+#################
+### givertcap ###
+#################
+
+GIVERTCAP=
+report_rtcap="no"
+@%:@ Check whether --enable-rtcap was given.
+if test "${enable_rtcap+set}" = set; then :
+ enableval=$enable_rtcap;
+ case "$enableval" in
+ "yes")
+
+$as_echo "@%:@define RTCAP 1" >>confdefs.h
+
+ MUSECXXFLAGS="$MUSECXXFLAGS -DRTCAP"
+ GIVERTCAP="givertcap"
+
+ ac_fn_c_check_header_mongrel "$LINENO" "sys/capability.h" "ac_cv_header_sys_capability_h" "$ac_includes_default"
+if test "x$ac_cv_header_sys_capability_h" = x""yes; then :
+ report_rtcap="yes"
+else
+ as_fn_error "Missing sys/capability.h" "$LINENO" 5
+fi
+
+
+ ;;
+ "no")
+ ;;
+ *)
+ as_fn_error "must use --enable-rtcap(=yes/no) or --disable-rtcap" "$LINENO" 5
+ esac
+
+fi
+
+ if test "$report_rtcap" = "yes"; then
+ RTCAP_TRUE=
+ RTCAP_FALSE='#'
+else
+ RTCAP_TRUE='#'
+ RTCAP_FALSE=
+fi
+
+
+
+
+####################
+### suid-install ###
+####################
+
+SUIDINSTALL="no"
+@%:@ Check whether --enable-suid-install was given.
+if test "${enable_suid_install+set}" = set; then :
+ enableval=$enable_suid_install;
+ case "$enableval" in
+ "yes")
+ SUIDINSTALL="yes"
+ ;;
+ "no")
+ ;;
+ *)
+ as_fn_error "must use --enable-suid-install(=yes/no) or --disable-suid-install" "$LINENO" 5
+ ;;
+ esac
+
+fi
+
+
+
+##################
+### suid-build ###
+##################
+SUIDBUILD="no"
+@%:@ Check whether --enable-suid-build was given.
+if test "${enable_suid_build+set}" = set; then :
+ enableval=$enable_suid_build;
+ case "$enableval" in
+ "yes")
+ SUIDBUILD="yes"
+ ;;
+ "no")
+ SUIDBUILD="no"
+ ;;
+ *)
+ as_fn_error "must use --enable-suid-build(=yes/no) or --disable-suid-build" "$LINENO" 5
+ ;;
+ esac
+
+fi
+
+
+
+
+########################
+### doxygen-treeview ###
+########################
+DOXYGEN_TREEVIEW="YES"
+report_doxy_treeview="yes";
+@%:@ Check whether --enable-doxy-treeview was given.
+if test "${enable_doxy_treeview+set}" = set; then :
+ enableval=$enable_doxy_treeview;
+ case "$enableval" in
+ "yes")
+ ;;
+ "no")
+ DOXYGEN_TREEVIEW="NO"
+ report_doxy_treeview="no";
+ ;;
+ *)
+ as_fn_error "must use --enable-doxy-treeview(=yes/no) or --disable-doxy-treeview" "$LINENO" 5
+ ;;
+ esac
+
+fi
+
+
+
+################
+### patchbay ###
+################
+###PATCHBAY="no"
+###AC_SUBST(PATCHBAY)
+###AM_CONDITIONAL(PATCHBAY, test "$PATCHBAY" == "yes")
+
+## -DQT_NO_CAST_ASCII
+MUSECXXFLAGS="-g -fno-exceptions -Wall -W -D_GNU_SOURCE -D_REENTRANT \
+ -DQT_CLEAN_NAMESPACE -DQT_NO_COMPAT \
+ -I\$(top_srcdir) -I\$(top_srcdir)/muse/widgets \$(QT_CFLAGS)"
+
+#MUSEOPTCXXFLAGS="-O6 -fomit-frame-pointer -ffast-math -fstrength-reduce \
+#-funroll-loops"
+#MUSEOPTCXXFLAGS="-O2"
+MUSEOPTCXXFLAGS="-O3 -fomit-frame-pointer -ffast-math -fstrength-reduce -funroll-loops"
+
+# -fmove-all-movables
+
+################
+### optimize ###
+################
+report_optimise="no"
+@%:@ Check whether --enable-optimize was given.
+if test "${enable_optimize+set}" = set; then :
+ enableval=$enable_optimize;
+ case "$enableval" in
+ "yes")
+ report_optimise="yes"
+ CXXFLAGS="$( echo "$CXXFLAGS" | sed "s/-O. *//" )"
+ MUSECXXFLAGS="$MUSECXXFLAGS $MUSEOPTCXXFLAGS"
+ ;;
+ "no")
+ ;;
+ *)
+ as_fn_error "must use --enable-optimize(=yes/no) or --disable-optimize" "$LINENO" 5
+ ;;
+ esac
+
+fi
+
+
+#############
+### debug ###
+#############
+report_debug="no"
+@%:@ Check whether --enable-debug was given.
+if test "${enable_debug+set}" = set; then :
+ enableval=$enable_debug;
+ case "$enableval" in
+ "yes")
+ report_debug="yes"
+ CXXFLAGS=""
+ ;;
+ "no")
+ ;;
+ *)
+ as_fn_error "must use --enable-debug(=yes/no) or --disable-debug" "$LINENO" 5
+ ;;
+ esac
+
+fi
+
+
+###########################
+### PCH ###
+### precompiled headers ###
+###########################
+
+@%:@ Check whether --enable-pch was given.
+if test "${enable_pch+set}" = set; then :
+ enableval=$enable_pch;
+ case "$enableval" in
+ "yes")
+ MUSECXXFLAGS="$MUSECXXFLAGS -Winvalid-pch"
+ PCH="yes"
+
+
+$as_echo "@%:@define PCH 1" >>confdefs.h
+
+ ;;
+ "no")
+ ;;
+ *)
+ as_fn_error "must use --enable-pch(=yes/no) or --disable-pch" "$LINENO" 5
+ ;;
+ esac
+
+fi
+
+ if test "$PCH" = "yes"; then
+ PCH_TRUE=
+ PCH_FALSE='#'
+else
+ PCH_TRUE='#'
+ PCH_FALSE=
+fi
+
+
+############
+### arch ###
+############
+
+report_march="none"
+@%:@ Check whether --enable-arch was given.
+if test "${enable_arch+set}" = set; then :
+ enableval=$enable_arch;
+ case "$enableval" in
+ "no")
+ ;;
+ *)
+ report_march="$enableval"
+ MUSECXXFLAGS="$MUSECXXFLAGS -mtune=$enableval -march=$enableval"
+ ;;
+ esac
+
+fi
+
+
+###########################
+### SSE ###
+### SSE optimizations ###
+###########################
+
+report_sse="no"
+@%:@ Check whether --enable-sse was given.
+if test "${enable_sse+set}" = set; then :
+ enableval=$enable_sse;
+ case "$enableval" in
+ "yes")
+ ## MUSECXXFLAGS="$MUSECXXFLAGS -Winvalid-pch"
+ report_sse="yes"
+ USE_SSE="yes"
+
+
+$as_echo "@%:@define USE_SSE 1" >>confdefs.h
+
+ ;;
+ "no")
+ ;;
+ *)
+ as_fn_error "must use --enable-sse(=yes/no) or --disable-sse" "$LINENO" 5
+ ;;
+ esac
+
+fi
+
+ if test "$USE_SSE" = "yes"; then
+ USE_SSE_TRUE=
+ USE_SSE_FALSE='#'
+else
+ USE_SSE_TRUE='#'
+ USE_SSE_FALSE=
+fi
+
+
+##########
+# PYTHON #
+##########
+# python detection borrowed from libvirt (http://libvirt.org)
+
+@%:@ Check whether --with-python was given.
+if test "${with_python+set}" = set; then :
+ withval=$with_python;
+else
+ enable_python=yes
+fi
+
+
+PYTHON_VERSION=
+PYTHON_INCLUDES=
+if test "$enable_python" != "no" ; then
+ if test -x "$enable_python/bin/python"
+ then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Found python in $enable_python/bin/python" >&5
+$as_echo "$as_me: Found python in $enable_python/bin/python" >&6;}
+ PYTHON="$enable_python/bin/python"
+ enable_python=yes
+ else
+ if test -x "$enable_python"
+ then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Found python in $enable_python" >&5
+$as_echo "$as_me: Found python in $enable_python" >&6;}
+ PYTHON="$enable_python"
+ enable_python=yes
+ else
+ if test -x "$PYTHON"
+ then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Found python in environment PYTHON=$PYTHON" >&5
+$as_echo "$as_me: Found python in environment PYTHON=$PYTHON" >&6;}
+ enable_python=yes
+ fi
+ fi
+ fi
+
+ if test "$enable_python" == "yes" ; then
+
+
+
+
+ # Find any Python interpreter.
+ if test -z "$PYTHON"; then
+ for ac_prog in python python2 python3 python3.0 python2.5 python2.4 python2.3 python2.2 python2.1 python2.0
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_PYTHON+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $PYTHON in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_PYTHON="$PYTHON" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_path_PYTHON="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+PYTHON=$ac_cv_path_PYTHON
+if test -n "$PYTHON"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PYTHON" >&5
+$as_echo "$PYTHON" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$PYTHON" && break
+done
+test -n "$PYTHON" || PYTHON=":"
+
+ fi
+ am_display_PYTHON=python
+
+
+ if test "$PYTHON" = :; then
+ :
+ else
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $am_display_PYTHON version" >&5
+$as_echo_n "checking for $am_display_PYTHON version... " >&6; }
+if test "${am_cv_python_version+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ am_cv_python_version=`$PYTHON -c "import sys; sys.stdout.write(sys.version[:3])"`
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_python_version" >&5
+$as_echo "$am_cv_python_version" >&6; }
+ PYTHON_VERSION=$am_cv_python_version
+
+
+
+ PYTHON_PREFIX='${prefix}'
+
+ PYTHON_EXEC_PREFIX='${exec_prefix}'
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $am_display_PYTHON platform" >&5
+$as_echo_n "checking for $am_display_PYTHON platform... " >&6; }
+if test "${am_cv_python_platform+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ am_cv_python_platform=`$PYTHON -c "import sys; sys.stdout.write(sys.platform)"`
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_python_platform" >&5
+$as_echo "$am_cv_python_platform" >&6; }
+ PYTHON_PLATFORM=$am_cv_python_platform
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $am_display_PYTHON script directory" >&5
+$as_echo_n "checking for $am_display_PYTHON script directory... " >&6; }
+if test "${am_cv_python_pythondir+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "x$prefix" = xNONE
+ then
+ am_py_prefix=$ac_default_prefix
+ else
+ am_py_prefix=$prefix
+ fi
+ am_cv_python_pythondir=`$PYTHON -c "import sys; from distutils import sysconfig; sys.stdout.write(sysconfig.get_python_lib(0,0,prefix='$am_py_prefix'))" 2>/dev/null ||
+ echo "$PYTHON_PREFIX/lib/python$PYTHON_VERSION/site-packages"`
+ case $am_cv_python_pythondir in
+ $am_py_prefix*)
+ am__strip_prefix=`echo "$am_py_prefix" | sed 's|.|.|g'`
+ am_cv_python_pythondir=`echo "$am_cv_python_pythondir" | sed "s,^$am__strip_prefix,$PYTHON_PREFIX,"`
+ ;;
+ *)
+ case $am_py_prefix in
+ /usr|/System*) ;;
+ *)
+ am_cv_python_pythondir=$PYTHON_PREFIX/lib/python$PYTHON_VERSION/site-packages
+ ;;
+ esac
+ ;;
+ esac
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_python_pythondir" >&5
+$as_echo "$am_cv_python_pythondir" >&6; }
+ pythondir=$am_cv_python_pythondir
+
+
+
+ pkgpythondir=\${pythondir}/$PACKAGE
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $am_display_PYTHON extension module directory" >&5
+$as_echo_n "checking for $am_display_PYTHON extension module directory... " >&6; }
+if test "${am_cv_python_pyexecdir+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "x$exec_prefix" = xNONE
+ then
+ am_py_exec_prefix=$am_py_prefix
+ else
+ am_py_exec_prefix=$exec_prefix
+ fi
+ am_cv_python_pyexecdir=`$PYTHON -c "import sys; from distutils import sysconfig; sys.stdout.write(sysconfig.get_python_lib(1,0,prefix='$am_py_exec_prefix'))" 2>/dev/null ||
+ echo "$PYTHON_EXEC_PREFIX/lib/python$PYTHON_VERSION/site-packages"`
+ case $am_cv_python_pyexecdir in
+ $am_py_exec_prefix*)
+ am__strip_prefix=`echo "$am_py_exec_prefix" | sed 's|.|.|g'`
+ am_cv_python_pyexecdir=`echo "$am_cv_python_pyexecdir" | sed "s,^$am__strip_prefix,$PYTHON_EXEC_PREFIX,"`
+ ;;
+ *)
+ case $am_py_exec_prefix in
+ /usr|/System*) ;;
+ *)
+ am_cv_python_pyexecdir=$PYTHON_EXEC_PREFIX/lib/python$PYTHON_VERSION/site-packages
+ ;;
+ esac
+ ;;
+ esac
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_python_pyexecdir" >&5
+$as_echo "$am_cv_python_pyexecdir" >&6; }
+ pyexecdir=$am_cv_python_pyexecdir
+
+
+
+ pkgpyexecdir=\${pyexecdir}/$PACKAGE
+
+
+
+ fi
+
+
+
+ if test "$PYTHON" != : ; then
+ PYTHON_CONFIG="$PYTHON-config"
+
+ if test -x "$PYTHON_CONFIG"
+ then
+ PYTHON_INCLUDES=`$PYTHON_CONFIG --includes`
+ PYTHON_LIB=`$PYTHON_CONFIG --libs`
+ else
+ if test -r $PYTHON_EXEC_PREFIX/include/python$PYTHON_VERSION/Python.h
+ then
+ PYTHON_INCLUDES=-I$PYTHON_EXEC_PREFIX/include/python$PYTHON_VERSION
+ else
+ if test -r $prefix/include/python$PYTHON_VERSION/Python.h
+ then
+ PYTHON_INCLUDES=-I$prefix/include/python$PYTHON_VERSION
+ else
+ if test -r /usr/include/python$PYTHON_VERSION/Python.h
+ then
+ PYTHON_INCLUDES=-I/usr/include/python$PYTHON_VERSION
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Could not find python$PYTHON_VERSION/Python.h, disabling bindings" >&5
+$as_echo "$as_me: Could not find python$PYTHON_VERSION/Python.h, disabling bindings" >&6;}
+ enable_python=no
+ fi
+ fi
+ fi
+ fi
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Could not find python interpreter, disabling bindings" >&5
+$as_echo "$as_me: Could not find python interpreter, disabling bindings" >&6;}
+ enable_python=no
+ fi
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Could not find python in $enable_python, disabling bindings" >&5
+$as_echo "$as_me: Could not find python in $enable_python, disabling bindings" >&6;}
+ enable_python=no
+ fi
+fi
+ if test "$enable_python" = "yes"; then
+ ENABLE_PYTHON_TRUE=
+ ENABLE_PYTHON_FALSE='#'
+else
+ ENABLE_PYTHON_TRUE='#'
+ ENABLE_PYTHON_FALSE=
+fi
+
+
+
+
+
+#AC_ARG_ENABLE(python,
+#enable_python="yes"
+# [ --disable-python disable python bindings for MusE],[
+# case "$enableval" in
+# "no")
+# enable_python="no"
+# ;;
+# *)
+# AC_MSG_ERROR([must use --enable-python(=yes/no) or --disable-python])
+# ;;
+# esac
+# ])
+#
+#if test "$enable_python" = "yes"; then
+# AM_PATH_PYTHON
+# PYTHON_INCLUDE_DIR=""
+# if test -n "$PYTHON_INCLUDES" ; then
+# PYTHON_INCLUDE_DIR=$PYTHON_INCLUDES
+# python_bindings="yes"
+# else
+# python_bindings="no - devel pkg not found"
+# fi
+#fi
+#AM_CONDITIONAL(ENABLE_PYTHON, test "$python_bindings" = "yes")
+
+###################
+### vst plugins ###
+###################
+
+vst_possible=no
+VST="no"
+@%:@ Check whether --enable-vst was given.
+if test "${enable_vst+set}" = set; then :
+ enableval=$enable_vst; if test x$enable_vst = xyes ; then
+ vst_requested=yes;
+ fi
+
+
+fi
+
+
+if test x$vst_requested = xyes ; then
+
+pkg_failed=no
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for FST" >&5
+$as_echo_n "checking for FST... " >&6; }
+
+if test -n "$PKG_CONFIG"; then
+ if test -n "$FST_CFLAGS"; then
+ pkg_cv_FST_CFLAGS="$FST_CFLAGS"
+ else
+ if test -n "$PKG_CONFIG" && \
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libfst\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "libfst") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ pkg_cv_FST_CFLAGS=`$PKG_CONFIG --cflags "libfst" 2>/dev/null`
+else
+ pkg_failed=yes
+fi
+ fi
+else
+ pkg_failed=untried
+fi
+if test -n "$PKG_CONFIG"; then
+ if test -n "$FST_LIBS"; then
+ pkg_cv_FST_LIBS="$FST_LIBS"
+ else
+ if test -n "$PKG_CONFIG" && \
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libfst\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "libfst") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ pkg_cv_FST_LIBS=`$PKG_CONFIG --libs "libfst" 2>/dev/null`
+else
+ pkg_failed=yes
+fi
+ fi
+else
+ pkg_failed=untried
+fi
+
+
+
+if test $pkg_failed = yes; then
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+ _pkg_short_errors_supported=yes
+else
+ _pkg_short_errors_supported=no
+fi
+ if test $_pkg_short_errors_supported = yes; then
+ FST_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "libfst"`
+ else
+ FST_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "libfst"`
+ fi
+ # Put the nasty error message in config.log where it belongs
+ echo "$FST_PKG_ERRORS" >&5
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ vst_possible=no
+elif test $pkg_failed = untried; then
+ vst_possible=no
+else
+ FST_CFLAGS=$pkg_cv_FST_CFLAGS
+ FST_LIBS=$pkg_cv_FST_LIBS
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ vst_possible=yes
+fi
+fi
+
+if test x$vst_possible = xyes -a x$vst_requested = xyes ; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking support for VST/win plugins" >&5
+$as_echo_n "checking support for VST/win plugins... " >&6; }
+ VST_CFLAGS="$FST_CFLAGS"
+ VST_LIBS="$FST_LIBS"
+ VST="yes"
+
+$as_echo "@%:@define VST_SUPPORT 1" >>confdefs.h
+
+fi
+
+ if test x$vst_possible = xyes -a x$vst_requested = xyes; then
+ VST_SUPPORT_TRUE=
+ VST_SUPPORT_FALSE='#'
+else
+ VST_SUPPORT_TRUE='#'
+ VST_SUPPORT_FALSE=
+fi
+
+
+
+###################
+### OSC support ###
+###################
+
+osc_requested=no
+LO_LIB_FOUND="no"
+OSC="no"
+@%:@ Check whether --enable-osc was given.
+if test "${enable_osc+set}" = set; then :
+ enableval=$enable_osc; if test x$enable_osc = xyes ; then
+ osc_requested=yes;
+ fi
+
+
+fi
+
+
+if test x$osc_requested = xyes ; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking support for OSC" >&5
+$as_echo_n "checking support for OSC... " >&6; }
+## AC_CHECK_LIB(lo, lo_send, LO_LIB_FOUND="yes", LO_LIB_FOUND="no")
+## PKG_CHECK_MODULES(LO, lo >= 0.2, LO_LIB_FOUND="yes", LO_LIB_FOUND="no")
+
+pkg_failed=no
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for LO" >&5
+$as_echo_n "checking for LO... " >&6; }
+
+if test -n "$PKG_CONFIG"; then
+ if test -n "$LO_CFLAGS"; then
+ pkg_cv_LO_CFLAGS="$LO_CFLAGS"
+ else
+ if test -n "$PKG_CONFIG" && \
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"liblo\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "liblo") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ pkg_cv_LO_CFLAGS=`$PKG_CONFIG --cflags "liblo" 2>/dev/null`
+else
+ pkg_failed=yes
+fi
+ fi
+else
+ pkg_failed=untried
+fi
+if test -n "$PKG_CONFIG"; then
+ if test -n "$LO_LIBS"; then
+ pkg_cv_LO_LIBS="$LO_LIBS"
+ else
+ if test -n "$PKG_CONFIG" && \
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"liblo\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "liblo") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ pkg_cv_LO_LIBS=`$PKG_CONFIG --libs "liblo" 2>/dev/null`
+else
+ pkg_failed=yes
+fi
+ fi
+else
+ pkg_failed=untried
+fi
+
+
+
+if test $pkg_failed = yes; then
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+ _pkg_short_errors_supported=yes
+else
+ _pkg_short_errors_supported=no
+fi
+ if test $_pkg_short_errors_supported = yes; then
+ LO_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "liblo"`
+ else
+ LO_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "liblo"`
+ fi
+ # Put the nasty error message in config.log where it belongs
+ echo "$LO_PKG_ERRORS" >&5
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ LO_LIB_FOUND=no
+elif test $pkg_failed = untried; then
+ LO_LIB_FOUND=no
+else
+ LO_CFLAGS=$pkg_cv_LO_CFLAGS
+ LO_LIBS=$pkg_cv_LO_LIBS
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ LO_LIB_FOUND=yes
+fi
+ if test x$LO_LIB_FOUND = xno; then
+ as_fn_error "Library liblo from The Lightweight OSC Implementation is required" "$LINENO" 5
+ fi
+fi
+
+if test x$LO_LIB_FOUND = xyes ; then
+ LO_CFLAGS="$LO_CFLAGS"
+ ##LO_LIBS="$LO_LIBS"
+ LO_LIBS="-llo"
+ OSC="yes"
+
+
+
+$as_echo "@%:@define OSC_SUPPORT 1" >>confdefs.h
+
+fi
+
+ if test x$LO_LIB_FOUND = xyes; then
+ OSC_SUPPORT_TRUE=
+ OSC_SUPPORT_FALSE='#'
+else
+ OSC_SUPPORT_TRUE='#'
+ OSC_SUPPORT_FALSE=
+fi
+
+
+## LO_LIBS="-llo"
+## AC_SUBST(LO_CFLAGS)
+## AC_SUBST(LO_LIBS)
+
+## PKG_CHECK_MODULES(LO, lo >= 0.23,
+## true,
+## AC_MSG_ERROR([need liblo >= 0.23 ])
+## )
+
+
+
+###################
+### dssi plugins ###
+###################
+
+dssi_requested=no
+## LO_LIB_FOUND="no"
+DSSI_H_FOUND="no"
+DSSI="no"
+@%:@ Check whether --enable-dssi was given.
+if test "${enable_dssi+set}" = set; then :
+ enableval=$enable_dssi; if test x$enable_dssi = xyes ; then
+ dssi_requested=yes;
+ fi
+
+
+fi
+
+
+
+if test x$dssi_requested = xyes ; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking support for DSSI + DSSI-Vst plugins" >&5
+$as_echo_n "checking support for DSSI + DSSI-Vst plugins... " >&6; }
+ ## AC_CHECK_LIB(lo, lo_send, LO_LIB_FOUND="yes", LO_LIB_FOUND="no")
+ ## PKG_CHECK_MODULES(LO, lo >= 0.2, LO_LIB_FOUND="yes", LO_LIB_FOUND="no")
+## PKG_CHECK_MODULES(LO,liblo, [ LO_LIB_FOUND=yes ], [ LO_LIB_FOUND=no ])
+## if test x$LO_LIB_FOUND = xno; then
+## AC_MSG_ERROR([Library liblo from The Lightweight OSC Implementation is required])
+## fi
+
+ ac_fn_c_check_header_mongrel "$LINENO" "dssi.h" "ac_cv_header_dssi_h" "$ac_includes_default"
+if test "x$ac_cv_header_dssi_h" = x""yes; then :
+ DSSI_FOUND="yes"
+else
+ DSSI_FOUND="no"
+fi
+
+
+ ## PKG_CHECK_MODULES(DSSI [ DSSI_FOUND=yes ], [ DSSI_FOUND=no ])
+ if test x$DSSI_FOUND = xno; then
+ as_fn_error "Header file dssi.h from DSSI (Disposable Soft Synth Interface) is required" "$LINENO" 5
+ fi
+fi
+
+## if test x$LO_LIB_FOUND = xyes -a x$DSSI_FOUND = xyes ; then
+if test x$DSSI_FOUND = xyes ; then
+## LO_CFLAGS="$LO_CFLAGS"
+ ##LO_LIBS="$LO_LIBS"
+## LO_LIBS="-llo"
+ DSSI="yes"
+## AC_SUBST(LO_CFLAGS)
+## AC_SUBST(LO_LIBS)
+
+$as_echo "@%:@define DSSI_SUPPORT 1" >>confdefs.h
+
+fi
+
+## AM_CONDITIONAL(DSSI_SUPPORT, test x$LO_LIB_FOUND = xyes -a x$DSSI_FOUND = xyes)
+ if test x$DSSI_FOUND = xyes; then
+ DSSI_SUPPORT_TRUE=
+ DSSI_SUPPORT_FALSE='#'
+else
+ DSSI_SUPPORT_TRUE='#'
+ DSSI_SUPPORT_FALSE=
+fi
+
+
+## LO_LIBS="-llo"
+## AC_SUBST(LO_CFLAGS)
+## AC_SUBST(LO_LIBS)
+
+## PKG_CHECK_MODULES(LO, lo >= 0.23,
+## true,
+## AC_MSG_ERROR([need liblo >= 0.23 ])
+## )
+
+
+
+
+######################################
+
+
+
+$as_echo "@%:@define HAVE_AUDIO 1" >>confdefs.h
+
+ if test "yes" = "yes"; then
+ HAVE_AUDIO_TRUE=
+ HAVE_AUDIO_FALSE='#'
+else
+ HAVE_AUDIO_TRUE='#'
+ HAVE_AUDIO_FALSE=
+fi
+
+
+
+if test -n "$GIVERTCAP"; then
+ SUIDINSTALL="no"
+ SUIDBUILD="no"
+ fi
+
+
+ac_config_files="$ac_config_files Makefile m4/Makefile al/Makefile doc/Makefile xpm/Makefile demos/Makefile grepmidi/Makefile packaging/Makefile muse/Makefile muse/widgets/Makefile muse/master/Makefile muse/midiedit/Makefile muse/arranger/Makefile muse/liste/Makefile muse/driver/Makefile muse/waveedit/Makefile muse/ctrl/Makefile muse/instruments/Makefile muse/mixer/Makefile muse/cliplist/Makefile muse/marker/Makefile muse/mplugins/Makefile muse/remote/Makefile share/Makefile share/drummaps/Makefile share/html/Makefile share/locale/Makefile share/wallpapers/Makefile share/instruments/Makefile share/plugins/Makefile share/templates/Makefile share/pybridge/Makefile share/scripts/Makefile synti/Makefile synti/libsynti/Makefile synti/fluidsynth/Makefile synti/fluid/Makefile synti/organ/Makefile synti/s1/Makefile synti/vam/Makefile synti/deicsonze/Makefile synti/simpledrums/Makefile lib/Makefile lib/synthi/Makefile lib/plugins/Makefile plugins/Makefile plugins/freeverb/Makefile plugins/pandelay/Makefile plugins/doublechorus/Makefile Doxyfile utils/Makefile"
+
+cat >confcache <<\_ACEOF
+# This file is a shell script that caches the results of configure
+# tests run on this system so they can be shared between configure
+# scripts and configure runs, see configure's option --config-cache.
+# It is not useful on other systems. If it contains results you don't
+# want to keep, you may remove or edit it.
+#
+# config.status only pays attention to the cache file if you give it
+# the --recheck option to rerun configure.
+#
+# `ac_cv_env_foo' variables (set or unset) will be overridden when
+# loading this file, other *unset* `ac_cv_foo' will be assigned the
+# following values.
+
+_ACEOF
+
+# The following way of writing the cache mishandles newlines in values,
+# but we know of no workaround that is simple, portable, and efficient.
+# So, we kill variables containing newlines.
+# Ultrix sh set writes to stderr and can't be redirected directly,
+# and sets the high bit in the cache file unless we assign to the vars.
+(
+ for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do
+ eval ac_val=\$$ac_var
+ case $ac_val in #(
+ *${as_nl}*)
+ case $ac_var in #(
+ *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
+$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
+ esac
+ case $ac_var in #(
+ _ | IFS | as_nl) ;; #(
+ BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
+ *) { eval $ac_var=; unset $ac_var;} ;;
+ esac ;;
+ esac
+ done
+
+ (set) 2>&1 |
+ case $as_nl`(ac_space=' '; set) 2>&1` in #(
+ *${as_nl}ac_space=\ *)
+ # `set' does not quote correctly, so add quotes: double-quote
+ # substitution turns \\\\ into \\, and sed turns \\ into \.
+ sed -n \
+ "s/'/'\\\\''/g;
+ s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
+ ;; #(
+ *)
+ # `set' quotes correctly as required by POSIX, so do not add quotes.
+ sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
+ ;;
+ esac |
+ sort
+) |
+ sed '
+ /^ac_cv_env_/b end
+ t clear
+ :clear
+ s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
+ t end
+ s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
+ :end' >>confcache
+if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
+ if test -w "$cache_file"; then
+ test "x$cache_file" != "x/dev/null" &&
+ { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5
+$as_echo "$as_me: updating cache $cache_file" >&6;}
+ cat confcache >$cache_file
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5
+$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;}
+ fi
+fi
+rm -f confcache
+
+test "x$prefix" = xNONE && prefix=$ac_default_prefix
+# Let make expand exec_prefix.
+test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
+
+DEFS=-DHAVE_CONFIG_H
+
+ac_libobjs=
+ac_ltlibobjs=
+for ac_i in : $LIB@&t@OBJS; do test "x$ac_i" = x: && continue
+ # 1. Remove the extension, and $U if already installed.
+ ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
+ ac_i=`$as_echo "$ac_i" | sed "$ac_script"`
+ # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR
+ # will be set to the directory where LIBOBJS objects are built.
+ as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext"
+ as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo'
+done
+LIB@&t@OBJS=$ac_libobjs
+
+LTLIBOBJS=$ac_ltlibobjs
+
+
+ if test -n "$EXEEXT"; then
+ am__EXEEXT_TRUE=
+ am__EXEEXT_FALSE='#'
+else
+ am__EXEEXT_TRUE='#'
+ am__EXEEXT_FALSE=
+fi
+
+if test -z "${INSIDE_GNOME_COMMON_TRUE}" && test -z "${INSIDE_GNOME_COMMON_FALSE}"; then
+ as_fn_error "conditional \"INSIDE_GNOME_COMMON\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then
+ as_fn_error "conditional \"AMDEP\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then
+ as_fn_error "conditional \"am__fastdepCXX\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
+ as_fn_error "conditional \"am__fastdepCC\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then
+ as_fn_error "conditional \"am__fastdepCXX\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${ENABLEFLUIDSYNTH_TRUE}" && test -z "${ENABLEFLUIDSYNTH_FALSE}"; then
+ as_fn_error "conditional \"ENABLEFLUIDSYNTH\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${HAVE_LASH_TRUE}" && test -z "${HAVE_LASH_FALSE}"; then
+ as_fn_error "conditional \"HAVE_LASH\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${RTCAP_TRUE}" && test -z "${RTCAP_FALSE}"; then
+ as_fn_error "conditional \"RTCAP\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${PCH_TRUE}" && test -z "${PCH_FALSE}"; then
+ as_fn_error "conditional \"PCH\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${USE_SSE_TRUE}" && test -z "${USE_SSE_FALSE}"; then
+ as_fn_error "conditional \"USE_SSE\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${ENABLE_PYTHON_TRUE}" && test -z "${ENABLE_PYTHON_FALSE}"; then
+ as_fn_error "conditional \"ENABLE_PYTHON\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${VST_SUPPORT_TRUE}" && test -z "${VST_SUPPORT_FALSE}"; then
+ as_fn_error "conditional \"VST_SUPPORT\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${OSC_SUPPORT_TRUE}" && test -z "${OSC_SUPPORT_FALSE}"; then
+ as_fn_error "conditional \"OSC_SUPPORT\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${DSSI_SUPPORT_TRUE}" && test -z "${DSSI_SUPPORT_FALSE}"; then
+ as_fn_error "conditional \"DSSI_SUPPORT\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${HAVE_AUDIO_TRUE}" && test -z "${HAVE_AUDIO_FALSE}"; then
+ as_fn_error "conditional \"HAVE_AUDIO\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+
+: ${CONFIG_STATUS=./config.status}
+ac_write_fail=0
+ac_clean_files_save=$ac_clean_files
+ac_clean_files="$ac_clean_files $CONFIG_STATUS"
+{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5
+$as_echo "$as_me: creating $CONFIG_STATUS" >&6;}
+as_write_fail=0
+cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1
+#! $SHELL
+# Generated by $as_me.
+# Run this file to recreate the current configuration.
+# Compiler output produced by configure, useful for debugging
+# configure, is in config.log if it exists.
+
+debug=false
+ac_cs_recheck=false
+ac_cs_silent=false
+
+SHELL=\${CONFIG_SHELL-$SHELL}
+export SHELL
+_ASEOF
+cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1
+## -------------------- ##
+## M4sh Initialization. ##
+## -------------------- ##
+
+# Be more Bourne compatible
+DUALCASE=1; export DUALCASE # for MKS sh
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
+ emulate sh
+ NULLCMD=:
+ # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
+ # is contrary to our usage. Disable this feature.
+ alias -g '${1+"$@"}'='"$@"'
+ setopt NO_GLOB_SUBST
+else
+ case `(set -o) 2>/dev/null` in @%:@(
+ *posix*) :
+ set -o posix ;; @%:@(
+ *) :
+ ;;
+esac
+fi
+
+
+as_nl='
+'
+export as_nl
+# Printing a long string crashes Solaris 7 /usr/bin/printf.
+as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
+# Prefer a ksh shell builtin over an external printf program on Solaris,
+# but without wasting forks for bash or zsh.
+if test -z "$BASH_VERSION$ZSH_VERSION" \
+ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
+ as_echo='print -r --'
+ as_echo_n='print -rn --'
+elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
+ as_echo='printf %s\n'
+ as_echo_n='printf %s'
+else
+ if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
+ as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
+ as_echo_n='/usr/ucb/echo -n'
+ else
+ as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
+ as_echo_n_body='eval
+ arg=$1;
+ case $arg in @%:@(
+ *"$as_nl"*)
+ expr "X$arg" : "X\\(.*\\)$as_nl";
+ arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
+ esac;
+ expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
+ '
+ export as_echo_n_body
+ as_echo_n='sh -c $as_echo_n_body as_echo'
+ fi
+ export as_echo_body
+ as_echo='sh -c $as_echo_body as_echo'
+fi
+
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+ PATH_SEPARATOR=:
+ (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
+ (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
+ PATH_SEPARATOR=';'
+ }
+fi
+
+
+# IFS
+# We need space, tab and new line, in precisely that order. Quoting is
+# there to prevent editors from complaining about space-tab.
+# (If _AS_PATH_WALK were called with IFS unset, it would disable word
+# splitting by setting IFS to empty value.)
+IFS=" "" $as_nl"
+
+# Find who we are. Look in the path if we contain no directory separator.
+case $0 in @%:@((
+ *[\\/]* ) as_myself=$0 ;;
+ *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+# We did not find ourselves, most probably we were run as `sh COMMAND'
+# in which case we are not to be found in the path.
+if test "x$as_myself" = x; then
+ as_myself=$0
+fi
+if test ! -f "$as_myself"; then
+ $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
+ exit 1
+fi
+
+# Unset variables that we do not need and which cause bugs (e.g. in
+# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1"
+# suppresses any "Segmentation fault" message there. '((' could
+# trigger a bug in pdksh 5.2.14.
+for as_var in BASH_ENV ENV MAIL MAILPATH
+do eval test x\${$as_var+set} = xset \
+ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
+done
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# NLS nuisances.
+LC_ALL=C
+export LC_ALL
+LANGUAGE=C
+export LANGUAGE
+
+# CDPATH.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+
+@%:@ as_fn_error ERROR [LINENO LOG_FD]
+@%:@ ---------------------------------
+@%:@ Output "`basename @S|@0`: error: ERROR" to stderr. If LINENO and LOG_FD are
+@%:@ provided, also output the error to LOG_FD, referencing LINENO. Then exit the
+@%:@ script with status @S|@?, using 1 if that was 0.
+as_fn_error ()
+{
+ as_status=$?; test $as_status -eq 0 && as_status=1
+ if test "$3"; then
+ as_lineno=${as_lineno-"$2"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ $as_echo "$as_me:${as_lineno-$LINENO}: error: $1" >&$3
+ fi
+ $as_echo "$as_me: error: $1" >&2
+ as_fn_exit $as_status
+} @%:@ as_fn_error
+
+
+@%:@ as_fn_set_status STATUS
+@%:@ -----------------------
+@%:@ Set @S|@? to STATUS, without forking.
+as_fn_set_status ()
+{
+ return $1
+} @%:@ as_fn_set_status
+
+@%:@ as_fn_exit STATUS
+@%:@ -----------------
+@%:@ Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
+as_fn_exit ()
+{
+ set +e
+ as_fn_set_status $1
+ exit $1
+} @%:@ as_fn_exit
+
+@%:@ as_fn_unset VAR
+@%:@ ---------------
+@%:@ Portably unset VAR.
+as_fn_unset ()
+{
+ { eval $1=; unset $1;}
+}
+as_unset=as_fn_unset
+@%:@ as_fn_append VAR VALUE
+@%:@ ----------------------
+@%:@ Append the text in VALUE to the end of the definition contained in VAR. Take
+@%:@ advantage of any shell optimizations that allow amortized linear growth over
+@%:@ repeated appends, instead of the typical quadratic growth present in naive
+@%:@ implementations.
+if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
+ eval 'as_fn_append ()
+ {
+ eval $1+=\$2
+ }'
+else
+ as_fn_append ()
+ {
+ eval $1=\$$1\$2
+ }
+fi # as_fn_append
+
+@%:@ as_fn_arith ARG...
+@%:@ ------------------
+@%:@ Perform arithmetic evaluation on the ARGs, and store the result in the
+@%:@ global @S|@as_val. Take advantage of shells that can avoid forks. The arguments
+@%:@ must be portable across @S|@(()) and expr.
+if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
+ eval 'as_fn_arith ()
+ {
+ as_val=$(( $* ))
+ }'
+else
+ as_fn_arith ()
+ {
+ as_val=`expr "$@" || test $? -eq 1`
+ }
+fi # as_fn_arith
+
+
+if expr a : '\(a\)' >/dev/null 2>&1 &&
+ test "X`expr 00001 : '.*\(...\)'`" = X001; then
+ as_expr=expr
+else
+ as_expr=false
+fi
+
+if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
+ as_basename=basename
+else
+ as_basename=false
+fi
+
+if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
+ as_dirname=dirname
+else
+ as_dirname=false
+fi
+
+as_me=`$as_basename -- "$0" ||
+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+ X"$0" : 'X\(//\)$' \| \
+ X"$0" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X/"$0" |
+ sed '/^.*\/\([^/][^/]*\)\/*$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits
+
+ECHO_C= ECHO_N= ECHO_T=
+case `echo -n x` in @%:@(((((
+-n*)
+ case `echo 'xy\c'` in
+ *c*) ECHO_T=' ';; # ECHO_T is single tab character.
+ xy) ECHO_C='\c';;
+ *) echo `echo ksh88 bug on AIX 6.1` > /dev/null
+ ECHO_T=' ';;
+ esac;;
+*)
+ ECHO_N='-n';;
+esac
+
+rm -f conf$$ conf$$.exe conf$$.file
+if test -d conf$$.dir; then
+ rm -f conf$$.dir/conf$$.file
+else
+ rm -f conf$$.dir
+ mkdir conf$$.dir 2>/dev/null
+fi
+if (echo >conf$$.file) 2>/dev/null; then
+ if ln -s conf$$.file conf$$ 2>/dev/null; then
+ as_ln_s='ln -s'
+ # ... but there are two gotchas:
+ # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
+ # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
+ # In both cases, we have to default to `cp -p'.
+ ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
+ as_ln_s='cp -p'
+ elif ln conf$$.file conf$$ 2>/dev/null; then
+ as_ln_s=ln
+ else
+ as_ln_s='cp -p'
+ fi
+else
+ as_ln_s='cp -p'
+fi
+rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
+rmdir conf$$.dir 2>/dev/null
+
+
+@%:@ as_fn_mkdir_p
+@%:@ -------------
+@%:@ Create "@S|@as_dir" as a directory, including parents if necessary.
+as_fn_mkdir_p ()
+{
+
+ case $as_dir in #(
+ -*) as_dir=./$as_dir;;
+ esac
+ test -d "$as_dir" || eval $as_mkdir_p || {
+ as_dirs=
+ while :; do
+ case $as_dir in #(
+ *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
+ *) as_qdir=$as_dir;;
+ esac
+ as_dirs="'$as_qdir' $as_dirs"
+ as_dir=`$as_dirname -- "$as_dir" ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$as_dir" : 'X\(//\)[^/]' \| \
+ X"$as_dir" : 'X\(//\)$' \| \
+ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$as_dir" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ test -d "$as_dir" && break
+ done
+ test -z "$as_dirs" || eval "mkdir $as_dirs"
+ } || test -d "$as_dir" || as_fn_error "cannot create directory $as_dir"
+
+
+} @%:@ as_fn_mkdir_p
+if mkdir -p . 2>/dev/null; then
+ as_mkdir_p='mkdir -p "$as_dir"'
+else
+ test -d ./-p && rmdir ./-p
+ as_mkdir_p=false
+fi
+
+if test -x / >/dev/null 2>&1; then
+ as_test_x='test -x'
+else
+ if ls -dL / >/dev/null 2>&1; then
+ as_ls_L_option=L
+ else
+ as_ls_L_option=
+ fi
+ as_test_x='
+ eval sh -c '\''
+ if test -d "$1"; then
+ test -d "$1/.";
+ else
+ case $1 in @%:@(
+ -*)set "./$1";;
+ esac;
+ case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in @%:@((
+ ???[sx]*):;;*)false;;esac;fi
+ '\'' sh
+ '
+fi
+as_executable_p=$as_test_x
+
+# Sed expression to map a string onto a valid CPP name.
+as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
+
+# Sed expression to map a string onto a valid variable name.
+as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
+
+
+exec 6>&1
+## ----------------------------------- ##
+## Main body of $CONFIG_STATUS script. ##
+## ----------------------------------- ##
+_ASEOF
+test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+# Save the log message, to keep $0 and so on meaningful, and to
+# report actual input values of CONFIG_FILES etc. instead of their
+# values after options handling.
+ac_log="
+This file was extended by MusE $as_me 1.1, which was
+generated by GNU Autoconf 2.65. Invocation command line was
+
+ CONFIG_FILES = $CONFIG_FILES
+ CONFIG_HEADERS = $CONFIG_HEADERS
+ CONFIG_LINKS = $CONFIG_LINKS
+ CONFIG_COMMANDS = $CONFIG_COMMANDS
+ $ $0 $@
+
+on `(hostname || uname -n) 2>/dev/null | sed 1q`
+"
+
+_ACEOF
+
+case $ac_config_files in *"
+"*) set x $ac_config_files; shift; ac_config_files=$*;;
+esac
+
+case $ac_config_headers in *"
+"*) set x $ac_config_headers; shift; ac_config_headers=$*;;
+esac
+
+
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+# Files that config.status was made for.
+config_files="$ac_config_files"
+config_headers="$ac_config_headers"
+config_commands="$ac_config_commands"
+
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+ac_cs_usage="\
+\`$as_me' instantiates files and other configuration actions
+from templates according to the current configuration. Unless the files
+and actions are specified as TAGs, all are instantiated by default.
+
+Usage: $0 [OPTION]... [TAG]...
+
+ -h, --help print this help, then exit
+ -V, --version print version number and configuration settings, then exit
+ --config print configuration, then exit
+ -q, --quiet, --silent
+ do not print progress messages
+ -d, --debug don't remove temporary files
+ --recheck update $as_me by reconfiguring in the same conditions
+ --file=FILE[:TEMPLATE]
+ instantiate the configuration file FILE
+ --header=FILE[:TEMPLATE]
+ instantiate the configuration header FILE
+
+Configuration files:
+$config_files
+
+Configuration headers:
+$config_headers
+
+Configuration commands:
+$config_commands
+
+Report bugs to the package provider."
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
+ac_cs_version="\\
+MusE config.status 1.1
+configured by $0, generated by GNU Autoconf 2.65,
+ with options \\"\$ac_cs_config\\"
+
+Copyright (C) 2009 Free Software Foundation, Inc.
+This config.status script is free software; the Free Software Foundation
+gives unlimited permission to copy, distribute and modify it."
+
+ac_pwd='$ac_pwd'
+srcdir='$srcdir'
+INSTALL='$INSTALL'
+MKDIR_P='$MKDIR_P'
+AWK='$AWK'
+test -n "\$AWK" || AWK=awk
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+# The default lists apply if the user does not specify any file.
+ac_need_defaults=:
+while test $# != 0
+do
+ case $1 in
+ --*=*)
+ ac_option=`expr "X$1" : 'X\([^=]*\)='`
+ ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'`
+ ac_shift=:
+ ;;
+ *)
+ ac_option=$1
+ ac_optarg=$2
+ ac_shift=shift
+ ;;
+ esac
+
+ case $ac_option in
+ # Handling of the options.
+ -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
+ ac_cs_recheck=: ;;
+ --version | --versio | --versi | --vers | --ver | --ve | --v | -V )
+ $as_echo "$ac_cs_version"; exit ;;
+ --config | --confi | --conf | --con | --co | --c )
+ $as_echo "$ac_cs_config"; exit ;;
+ --debug | --debu | --deb | --de | --d | -d )
+ debug=: ;;
+ --file | --fil | --fi | --f )
+ $ac_shift
+ case $ac_optarg in
+ *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
+ esac
+ as_fn_append CONFIG_FILES " '$ac_optarg'"
+ ac_need_defaults=false;;
+ --header | --heade | --head | --hea )
+ $ac_shift
+ case $ac_optarg in
+ *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
+ esac
+ as_fn_append CONFIG_HEADERS " '$ac_optarg'"
+ ac_need_defaults=false;;
+ --he | --h)
+ # Conflict between --help and --header
+ as_fn_error "ambiguous option: \`$1'
+Try \`$0 --help' for more information.";;
+ --help | --hel | -h )
+ $as_echo "$ac_cs_usage"; exit ;;
+ -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+ | -silent | --silent | --silen | --sile | --sil | --si | --s)
+ ac_cs_silent=: ;;
+
+ # This is an error.
+ -*) as_fn_error "unrecognized option: \`$1'
+Try \`$0 --help' for more information." ;;
+
+ *) as_fn_append ac_config_targets " $1"
+ ac_need_defaults=false ;;
+
+ esac
+ shift
+done
+
+ac_configure_extra_args=
+
+if $ac_cs_silent; then
+ exec 6>/dev/null
+ ac_configure_extra_args="$ac_configure_extra_args --silent"
+fi
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+if \$ac_cs_recheck; then
+ set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
+ shift
+ \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6
+ CONFIG_SHELL='$SHELL'
+ export CONFIG_SHELL
+ exec "\$@"
+fi
+
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+exec 5>>config.log
+{
+ echo
+ sed 'h;s/./-/g;s/^.../@%:@@%:@ /;s/...$/ @%:@@%:@/;p;x;p;x' <<_ASBOX
+@%:@@%:@ Running $as_me. @%:@@%:@
+_ASBOX
+ $as_echo "$ac_log"
+} >&5
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+#
+# INIT-COMMANDS
+#
+AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"
+
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+sed_quote_subst='$sed_quote_subst'
+double_quote_subst='$double_quote_subst'
+delay_variable_subst='$delay_variable_subst'
+macro_version='`$ECHO "X$macro_version" | $Xsed -e "$delay_single_quote_subst"`'
+macro_revision='`$ECHO "X$macro_revision" | $Xsed -e "$delay_single_quote_subst"`'
+enable_shared='`$ECHO "X$enable_shared" | $Xsed -e "$delay_single_quote_subst"`'
+enable_static='`$ECHO "X$enable_static" | $Xsed -e "$delay_single_quote_subst"`'
+pic_mode='`$ECHO "X$pic_mode" | $Xsed -e "$delay_single_quote_subst"`'
+enable_fast_install='`$ECHO "X$enable_fast_install" | $Xsed -e "$delay_single_quote_subst"`'
+host_alias='`$ECHO "X$host_alias" | $Xsed -e "$delay_single_quote_subst"`'
+host='`$ECHO "X$host" | $Xsed -e "$delay_single_quote_subst"`'
+host_os='`$ECHO "X$host_os" | $Xsed -e "$delay_single_quote_subst"`'
+build_alias='`$ECHO "X$build_alias" | $Xsed -e "$delay_single_quote_subst"`'
+build='`$ECHO "X$build" | $Xsed -e "$delay_single_quote_subst"`'
+build_os='`$ECHO "X$build_os" | $Xsed -e "$delay_single_quote_subst"`'
+SED='`$ECHO "X$SED" | $Xsed -e "$delay_single_quote_subst"`'
+Xsed='`$ECHO "X$Xsed" | $Xsed -e "$delay_single_quote_subst"`'
+GREP='`$ECHO "X$GREP" | $Xsed -e "$delay_single_quote_subst"`'
+EGREP='`$ECHO "X$EGREP" | $Xsed -e "$delay_single_quote_subst"`'
+FGREP='`$ECHO "X$FGREP" | $Xsed -e "$delay_single_quote_subst"`'
+LD='`$ECHO "X$LD" | $Xsed -e "$delay_single_quote_subst"`'
+NM='`$ECHO "X$NM" | $Xsed -e "$delay_single_quote_subst"`'
+LN_S='`$ECHO "X$LN_S" | $Xsed -e "$delay_single_quote_subst"`'
+max_cmd_len='`$ECHO "X$max_cmd_len" | $Xsed -e "$delay_single_quote_subst"`'
+ac_objext='`$ECHO "X$ac_objext" | $Xsed -e "$delay_single_quote_subst"`'
+exeext='`$ECHO "X$exeext" | $Xsed -e "$delay_single_quote_subst"`'
+lt_unset='`$ECHO "X$lt_unset" | $Xsed -e "$delay_single_quote_subst"`'
+lt_SP2NL='`$ECHO "X$lt_SP2NL" | $Xsed -e "$delay_single_quote_subst"`'
+lt_NL2SP='`$ECHO "X$lt_NL2SP" | $Xsed -e "$delay_single_quote_subst"`'
+reload_flag='`$ECHO "X$reload_flag" | $Xsed -e "$delay_single_quote_subst"`'
+reload_cmds='`$ECHO "X$reload_cmds" | $Xsed -e "$delay_single_quote_subst"`'
+OBJDUMP='`$ECHO "X$OBJDUMP" | $Xsed -e "$delay_single_quote_subst"`'
+deplibs_check_method='`$ECHO "X$deplibs_check_method" | $Xsed -e "$delay_single_quote_subst"`'
+file_magic_cmd='`$ECHO "X$file_magic_cmd" | $Xsed -e "$delay_single_quote_subst"`'
+AR='`$ECHO "X$AR" | $Xsed -e "$delay_single_quote_subst"`'
+AR_FLAGS='`$ECHO "X$AR_FLAGS" | $Xsed -e "$delay_single_quote_subst"`'
+STRIP='`$ECHO "X$STRIP" | $Xsed -e "$delay_single_quote_subst"`'
+RANLIB='`$ECHO "X$RANLIB" | $Xsed -e "$delay_single_quote_subst"`'
+old_postinstall_cmds='`$ECHO "X$old_postinstall_cmds" | $Xsed -e "$delay_single_quote_subst"`'
+old_postuninstall_cmds='`$ECHO "X$old_postuninstall_cmds" | $Xsed -e "$delay_single_quote_subst"`'
+old_archive_cmds='`$ECHO "X$old_archive_cmds" | $Xsed -e "$delay_single_quote_subst"`'
+CC='`$ECHO "X$CC" | $Xsed -e "$delay_single_quote_subst"`'
+CFLAGS='`$ECHO "X$CFLAGS" | $Xsed -e "$delay_single_quote_subst"`'
+compiler='`$ECHO "X$compiler" | $Xsed -e "$delay_single_quote_subst"`'
+GCC='`$ECHO "X$GCC" | $Xsed -e "$delay_single_quote_subst"`'
+lt_cv_sys_global_symbol_pipe='`$ECHO "X$lt_cv_sys_global_symbol_pipe" | $Xsed -e "$delay_single_quote_subst"`'
+lt_cv_sys_global_symbol_to_cdecl='`$ECHO "X$lt_cv_sys_global_symbol_to_cdecl" | $Xsed -e "$delay_single_quote_subst"`'
+lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "X$lt_cv_sys_global_symbol_to_c_name_address" | $Xsed -e "$delay_single_quote_subst"`'
+lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "X$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $Xsed -e "$delay_single_quote_subst"`'
+objdir='`$ECHO "X$objdir" | $Xsed -e "$delay_single_quote_subst"`'
+SHELL='`$ECHO "X$SHELL" | $Xsed -e "$delay_single_quote_subst"`'
+ECHO='`$ECHO "X$ECHO" | $Xsed -e "$delay_single_quote_subst"`'
+MAGIC_CMD='`$ECHO "X$MAGIC_CMD" | $Xsed -e "$delay_single_quote_subst"`'
+lt_prog_compiler_no_builtin_flag='`$ECHO "X$lt_prog_compiler_no_builtin_flag" | $Xsed -e "$delay_single_quote_subst"`'
+lt_prog_compiler_wl='`$ECHO "X$lt_prog_compiler_wl" | $Xsed -e "$delay_single_quote_subst"`'
+lt_prog_compiler_pic='`$ECHO "X$lt_prog_compiler_pic" | $Xsed -e "$delay_single_quote_subst"`'
+lt_prog_compiler_static='`$ECHO "X$lt_prog_compiler_static" | $Xsed -e "$delay_single_quote_subst"`'
+lt_cv_prog_compiler_c_o='`$ECHO "X$lt_cv_prog_compiler_c_o" | $Xsed -e "$delay_single_quote_subst"`'
+need_locks='`$ECHO "X$need_locks" | $Xsed -e "$delay_single_quote_subst"`'
+DSYMUTIL='`$ECHO "X$DSYMUTIL" | $Xsed -e "$delay_single_quote_subst"`'
+NMEDIT='`$ECHO "X$NMEDIT" | $Xsed -e "$delay_single_quote_subst"`'
+LIPO='`$ECHO "X$LIPO" | $Xsed -e "$delay_single_quote_subst"`'
+OTOOL='`$ECHO "X$OTOOL" | $Xsed -e "$delay_single_quote_subst"`'
+OTOOL64='`$ECHO "X$OTOOL64" | $Xsed -e "$delay_single_quote_subst"`'
+libext='`$ECHO "X$libext" | $Xsed -e "$delay_single_quote_subst"`'
+shrext_cmds='`$ECHO "X$shrext_cmds" | $Xsed -e "$delay_single_quote_subst"`'
+extract_expsyms_cmds='`$ECHO "X$extract_expsyms_cmds" | $Xsed -e "$delay_single_quote_subst"`'
+archive_cmds_need_lc='`$ECHO "X$archive_cmds_need_lc" | $Xsed -e "$delay_single_quote_subst"`'
+enable_shared_with_static_runtimes='`$ECHO "X$enable_shared_with_static_runtimes" | $Xsed -e "$delay_single_quote_subst"`'
+export_dynamic_flag_spec='`$ECHO "X$export_dynamic_flag_spec" | $Xsed -e "$delay_single_quote_subst"`'
+whole_archive_flag_spec='`$ECHO "X$whole_archive_flag_spec" | $Xsed -e "$delay_single_quote_subst"`'
+compiler_needs_object='`$ECHO "X$compiler_needs_object" | $Xsed -e "$delay_single_quote_subst"`'
+old_archive_from_new_cmds='`$ECHO "X$old_archive_from_new_cmds" | $Xsed -e "$delay_single_quote_subst"`'
+old_archive_from_expsyms_cmds='`$ECHO "X$old_archive_from_expsyms_cmds" | $Xsed -e "$delay_single_quote_subst"`'
+archive_cmds='`$ECHO "X$archive_cmds" | $Xsed -e "$delay_single_quote_subst"`'
+archive_expsym_cmds='`$ECHO "X$archive_expsym_cmds" | $Xsed -e "$delay_single_quote_subst"`'
+module_cmds='`$ECHO "X$module_cmds" | $Xsed -e "$delay_single_quote_subst"`'
+module_expsym_cmds='`$ECHO "X$module_expsym_cmds" | $Xsed -e "$delay_single_quote_subst"`'
+with_gnu_ld='`$ECHO "X$with_gnu_ld" | $Xsed -e "$delay_single_quote_subst"`'
+allow_undefined_flag='`$ECHO "X$allow_undefined_flag" | $Xsed -e "$delay_single_quote_subst"`'
+no_undefined_flag='`$ECHO "X$no_undefined_flag" | $Xsed -e "$delay_single_quote_subst"`'
+hardcode_libdir_flag_spec='`$ECHO "X$hardcode_libdir_flag_spec" | $Xsed -e "$delay_single_quote_subst"`'
+hardcode_libdir_flag_spec_ld='`$ECHO "X$hardcode_libdir_flag_spec_ld" | $Xsed -e "$delay_single_quote_subst"`'
+hardcode_libdir_separator='`$ECHO "X$hardcode_libdir_separator" | $Xsed -e "$delay_single_quote_subst"`'
+hardcode_direct='`$ECHO "X$hardcode_direct" | $Xsed -e "$delay_single_quote_subst"`'
+hardcode_direct_absolute='`$ECHO "X$hardcode_direct_absolute" | $Xsed -e "$delay_single_quote_subst"`'
+hardcode_minus_L='`$ECHO "X$hardcode_minus_L" | $Xsed -e "$delay_single_quote_subst"`'
+hardcode_shlibpath_var='`$ECHO "X$hardcode_shlibpath_var" | $Xsed -e "$delay_single_quote_subst"`'
+hardcode_automatic='`$ECHO "X$hardcode_automatic" | $Xsed -e "$delay_single_quote_subst"`'
+inherit_rpath='`$ECHO "X$inherit_rpath" | $Xsed -e "$delay_single_quote_subst"`'
+link_all_deplibs='`$ECHO "X$link_all_deplibs" | $Xsed -e "$delay_single_quote_subst"`'
+fix_srcfile_path='`$ECHO "X$fix_srcfile_path" | $Xsed -e "$delay_single_quote_subst"`'
+always_export_symbols='`$ECHO "X$always_export_symbols" | $Xsed -e "$delay_single_quote_subst"`'
+export_symbols_cmds='`$ECHO "X$export_symbols_cmds" | $Xsed -e "$delay_single_quote_subst"`'
+exclude_expsyms='`$ECHO "X$exclude_expsyms" | $Xsed -e "$delay_single_quote_subst"`'
+include_expsyms='`$ECHO "X$include_expsyms" | $Xsed -e "$delay_single_quote_subst"`'
+prelink_cmds='`$ECHO "X$prelink_cmds" | $Xsed -e "$delay_single_quote_subst"`'
+file_list_spec='`$ECHO "X$file_list_spec" | $Xsed -e "$delay_single_quote_subst"`'
+variables_saved_for_relink='`$ECHO "X$variables_saved_for_relink" | $Xsed -e "$delay_single_quote_subst"`'
+need_lib_prefix='`$ECHO "X$need_lib_prefix" | $Xsed -e "$delay_single_quote_subst"`'
+need_version='`$ECHO "X$need_version" | $Xsed -e "$delay_single_quote_subst"`'
+version_type='`$ECHO "X$version_type" | $Xsed -e "$delay_single_quote_subst"`'
+runpath_var='`$ECHO "X$runpath_var" | $Xsed -e "$delay_single_quote_subst"`'
+shlibpath_var='`$ECHO "X$shlibpath_var" | $Xsed -e "$delay_single_quote_subst"`'
+shlibpath_overrides_runpath='`$ECHO "X$shlibpath_overrides_runpath" | $Xsed -e "$delay_single_quote_subst"`'
+libname_spec='`$ECHO "X$libname_spec" | $Xsed -e "$delay_single_quote_subst"`'
+library_names_spec='`$ECHO "X$library_names_spec" | $Xsed -e "$delay_single_quote_subst"`'
+soname_spec='`$ECHO "X$soname_spec" | $Xsed -e "$delay_single_quote_subst"`'
+postinstall_cmds='`$ECHO "X$postinstall_cmds" | $Xsed -e "$delay_single_quote_subst"`'
+postuninstall_cmds='`$ECHO "X$postuninstall_cmds" | $Xsed -e "$delay_single_quote_subst"`'
+finish_cmds='`$ECHO "X$finish_cmds" | $Xsed -e "$delay_single_quote_subst"`'
+finish_eval='`$ECHO "X$finish_eval" | $Xsed -e "$delay_single_quote_subst"`'
+hardcode_into_libs='`$ECHO "X$hardcode_into_libs" | $Xsed -e "$delay_single_quote_subst"`'
+sys_lib_search_path_spec='`$ECHO "X$sys_lib_search_path_spec" | $Xsed -e "$delay_single_quote_subst"`'
+sys_lib_dlsearch_path_spec='`$ECHO "X$sys_lib_dlsearch_path_spec" | $Xsed -e "$delay_single_quote_subst"`'
+hardcode_action='`$ECHO "X$hardcode_action" | $Xsed -e "$delay_single_quote_subst"`'
+enable_dlopen='`$ECHO "X$enable_dlopen" | $Xsed -e "$delay_single_quote_subst"`'
+enable_dlopen_self='`$ECHO "X$enable_dlopen_self" | $Xsed -e "$delay_single_quote_subst"`'
+enable_dlopen_self_static='`$ECHO "X$enable_dlopen_self_static" | $Xsed -e "$delay_single_quote_subst"`'
+old_striplib='`$ECHO "X$old_striplib" | $Xsed -e "$delay_single_quote_subst"`'
+striplib='`$ECHO "X$striplib" | $Xsed -e "$delay_single_quote_subst"`'
+compiler_lib_search_dirs='`$ECHO "X$compiler_lib_search_dirs" | $Xsed -e "$delay_single_quote_subst"`'
+predep_objects='`$ECHO "X$predep_objects" | $Xsed -e "$delay_single_quote_subst"`'
+postdep_objects='`$ECHO "X$postdep_objects" | $Xsed -e "$delay_single_quote_subst"`'
+predeps='`$ECHO "X$predeps" | $Xsed -e "$delay_single_quote_subst"`'
+postdeps='`$ECHO "X$postdeps" | $Xsed -e "$delay_single_quote_subst"`'
+compiler_lib_search_path='`$ECHO "X$compiler_lib_search_path" | $Xsed -e "$delay_single_quote_subst"`'
+LD_CXX='`$ECHO "X$LD_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+old_archive_cmds_CXX='`$ECHO "X$old_archive_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+compiler_CXX='`$ECHO "X$compiler_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+GCC_CXX='`$ECHO "X$GCC_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+lt_prog_compiler_no_builtin_flag_CXX='`$ECHO "X$lt_prog_compiler_no_builtin_flag_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+lt_prog_compiler_wl_CXX='`$ECHO "X$lt_prog_compiler_wl_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+lt_prog_compiler_pic_CXX='`$ECHO "X$lt_prog_compiler_pic_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+lt_prog_compiler_static_CXX='`$ECHO "X$lt_prog_compiler_static_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+lt_cv_prog_compiler_c_o_CXX='`$ECHO "X$lt_cv_prog_compiler_c_o_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+archive_cmds_need_lc_CXX='`$ECHO "X$archive_cmds_need_lc_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+enable_shared_with_static_runtimes_CXX='`$ECHO "X$enable_shared_with_static_runtimes_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+export_dynamic_flag_spec_CXX='`$ECHO "X$export_dynamic_flag_spec_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+whole_archive_flag_spec_CXX='`$ECHO "X$whole_archive_flag_spec_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+compiler_needs_object_CXX='`$ECHO "X$compiler_needs_object_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+old_archive_from_new_cmds_CXX='`$ECHO "X$old_archive_from_new_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+old_archive_from_expsyms_cmds_CXX='`$ECHO "X$old_archive_from_expsyms_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+archive_cmds_CXX='`$ECHO "X$archive_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+archive_expsym_cmds_CXX='`$ECHO "X$archive_expsym_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+module_cmds_CXX='`$ECHO "X$module_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+module_expsym_cmds_CXX='`$ECHO "X$module_expsym_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+with_gnu_ld_CXX='`$ECHO "X$with_gnu_ld_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+allow_undefined_flag_CXX='`$ECHO "X$allow_undefined_flag_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+no_undefined_flag_CXX='`$ECHO "X$no_undefined_flag_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+hardcode_libdir_flag_spec_CXX='`$ECHO "X$hardcode_libdir_flag_spec_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+hardcode_libdir_flag_spec_ld_CXX='`$ECHO "X$hardcode_libdir_flag_spec_ld_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+hardcode_libdir_separator_CXX='`$ECHO "X$hardcode_libdir_separator_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+hardcode_direct_CXX='`$ECHO "X$hardcode_direct_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+hardcode_direct_absolute_CXX='`$ECHO "X$hardcode_direct_absolute_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+hardcode_minus_L_CXX='`$ECHO "X$hardcode_minus_L_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+hardcode_shlibpath_var_CXX='`$ECHO "X$hardcode_shlibpath_var_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+hardcode_automatic_CXX='`$ECHO "X$hardcode_automatic_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+inherit_rpath_CXX='`$ECHO "X$inherit_rpath_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+link_all_deplibs_CXX='`$ECHO "X$link_all_deplibs_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+fix_srcfile_path_CXX='`$ECHO "X$fix_srcfile_path_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+always_export_symbols_CXX='`$ECHO "X$always_export_symbols_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+export_symbols_cmds_CXX='`$ECHO "X$export_symbols_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+exclude_expsyms_CXX='`$ECHO "X$exclude_expsyms_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+include_expsyms_CXX='`$ECHO "X$include_expsyms_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+prelink_cmds_CXX='`$ECHO "X$prelink_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+file_list_spec_CXX='`$ECHO "X$file_list_spec_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+hardcode_action_CXX='`$ECHO "X$hardcode_action_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+compiler_lib_search_dirs_CXX='`$ECHO "X$compiler_lib_search_dirs_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+predep_objects_CXX='`$ECHO "X$predep_objects_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+postdep_objects_CXX='`$ECHO "X$postdep_objects_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+predeps_CXX='`$ECHO "X$predeps_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+postdeps_CXX='`$ECHO "X$postdeps_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+compiler_lib_search_path_CXX='`$ECHO "X$compiler_lib_search_path_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+
+LTCC='$LTCC'
+LTCFLAGS='$LTCFLAGS'
+compiler='$compiler_DEFAULT'
+
+# Quote evaled strings.
+for var in SED \
+GREP \
+EGREP \
+FGREP \
+LD \
+NM \
+LN_S \
+lt_SP2NL \
+lt_NL2SP \
+reload_flag \
+OBJDUMP \
+deplibs_check_method \
+file_magic_cmd \
+AR \
+AR_FLAGS \
+STRIP \
+RANLIB \
+CC \
+CFLAGS \
+compiler \
+lt_cv_sys_global_symbol_pipe \
+lt_cv_sys_global_symbol_to_cdecl \
+lt_cv_sys_global_symbol_to_c_name_address \
+lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \
+SHELL \
+ECHO \
+lt_prog_compiler_no_builtin_flag \
+lt_prog_compiler_wl \
+lt_prog_compiler_pic \
+lt_prog_compiler_static \
+lt_cv_prog_compiler_c_o \
+need_locks \
+DSYMUTIL \
+NMEDIT \
+LIPO \
+OTOOL \
+OTOOL64 \
+shrext_cmds \
+export_dynamic_flag_spec \
+whole_archive_flag_spec \
+compiler_needs_object \
+with_gnu_ld \
+allow_undefined_flag \
+no_undefined_flag \
+hardcode_libdir_flag_spec \
+hardcode_libdir_flag_spec_ld \
+hardcode_libdir_separator \
+fix_srcfile_path \
+exclude_expsyms \
+include_expsyms \
+file_list_spec \
+variables_saved_for_relink \
+libname_spec \
+library_names_spec \
+soname_spec \
+finish_eval \
+old_striplib \
+striplib \
+compiler_lib_search_dirs \
+predep_objects \
+postdep_objects \
+predeps \
+postdeps \
+compiler_lib_search_path \
+LD_CXX \
+compiler_CXX \
+lt_prog_compiler_no_builtin_flag_CXX \
+lt_prog_compiler_wl_CXX \
+lt_prog_compiler_pic_CXX \
+lt_prog_compiler_static_CXX \
+lt_cv_prog_compiler_c_o_CXX \
+export_dynamic_flag_spec_CXX \
+whole_archive_flag_spec_CXX \
+compiler_needs_object_CXX \
+with_gnu_ld_CXX \
+allow_undefined_flag_CXX \
+no_undefined_flag_CXX \
+hardcode_libdir_flag_spec_CXX \
+hardcode_libdir_flag_spec_ld_CXX \
+hardcode_libdir_separator_CXX \
+fix_srcfile_path_CXX \
+exclude_expsyms_CXX \
+include_expsyms_CXX \
+file_list_spec_CXX \
+compiler_lib_search_dirs_CXX \
+predep_objects_CXX \
+postdep_objects_CXX \
+predeps_CXX \
+postdeps_CXX \
+compiler_lib_search_path_CXX; do
+ case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in
+ *[\\\\\\\`\\"\\\$]*)
+ eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$sed_quote_subst\\"\\\`\\\\\\""
+ ;;
+ *)
+ eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
+ ;;
+ esac
+done
+
+# Double-quote double-evaled strings.
+for var in reload_cmds \
+old_postinstall_cmds \
+old_postuninstall_cmds \
+old_archive_cmds \
+extract_expsyms_cmds \
+old_archive_from_new_cmds \
+old_archive_from_expsyms_cmds \
+archive_cmds \
+archive_expsym_cmds \
+module_cmds \
+module_expsym_cmds \
+export_symbols_cmds \
+prelink_cmds \
+postinstall_cmds \
+postuninstall_cmds \
+finish_cmds \
+sys_lib_search_path_spec \
+sys_lib_dlsearch_path_spec \
+old_archive_cmds_CXX \
+old_archive_from_new_cmds_CXX \
+old_archive_from_expsyms_cmds_CXX \
+archive_cmds_CXX \
+archive_expsym_cmds_CXX \
+module_cmds_CXX \
+module_expsym_cmds_CXX \
+export_symbols_cmds_CXX \
+prelink_cmds_CXX; do
+ case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in
+ *[\\\\\\\`\\"\\\$]*)
+ eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\""
+ ;;
+ *)
+ eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
+ ;;
+ esac
+done
+
+# Fix-up fallback echo if it was mangled by the above quoting rules.
+case \$lt_ECHO in
+*'\\\$0 --fallback-echo"') lt_ECHO=\`\$ECHO "X\$lt_ECHO" | \$Xsed -e 's/\\\\\\\\\\\\\\\$0 --fallback-echo"\$/\$0 --fallback-echo"/'\`
+ ;;
+esac
+
+ac_aux_dir='$ac_aux_dir'
+xsi_shell='$xsi_shell'
+lt_shell_append='$lt_shell_append'
+
+# See if we are running on zsh, and set the options which allow our
+# commands through without removal of \ escapes INIT.
+if test -n "\${ZSH_VERSION+set}" ; then
+ setopt NO_GLOB_SUBST
+fi
+
+
+ PACKAGE='$PACKAGE'
+ VERSION='$VERSION'
+ TIMESTAMP='$TIMESTAMP'
+ RM='$RM'
+ ofile='$ofile'
+
+
+
+
+
+
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+
+# Handling of arguments.
+for ac_config_target in $ac_config_targets
+do
+ case $ac_config_target in
+ "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;;
+ "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;
+ "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;;
+ "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
+ "m4/Makefile") CONFIG_FILES="$CONFIG_FILES m4/Makefile" ;;
+ "al/Makefile") CONFIG_FILES="$CONFIG_FILES al/Makefile" ;;
+ "doc/Makefile") CONFIG_FILES="$CONFIG_FILES doc/Makefile" ;;
+ "xpm/Makefile") CONFIG_FILES="$CONFIG_FILES xpm/Makefile" ;;
+ "demos/Makefile") CONFIG_FILES="$CONFIG_FILES demos/Makefile" ;;
+ "grepmidi/Makefile") CONFIG_FILES="$CONFIG_FILES grepmidi/Makefile" ;;
+ "packaging/Makefile") CONFIG_FILES="$CONFIG_FILES packaging/Makefile" ;;
+ "muse/Makefile") CONFIG_FILES="$CONFIG_FILES muse/Makefile" ;;
+ "muse/widgets/Makefile") CONFIG_FILES="$CONFIG_FILES muse/widgets/Makefile" ;;
+ "muse/master/Makefile") CONFIG_FILES="$CONFIG_FILES muse/master/Makefile" ;;
+ "muse/midiedit/Makefile") CONFIG_FILES="$CONFIG_FILES muse/midiedit/Makefile" ;;
+ "muse/arranger/Makefile") CONFIG_FILES="$CONFIG_FILES muse/arranger/Makefile" ;;
+ "muse/liste/Makefile") CONFIG_FILES="$CONFIG_FILES muse/liste/Makefile" ;;
+ "muse/driver/Makefile") CONFIG_FILES="$CONFIG_FILES muse/driver/Makefile" ;;
+ "muse/waveedit/Makefile") CONFIG_FILES="$CONFIG_FILES muse/waveedit/Makefile" ;;
+ "muse/ctrl/Makefile") CONFIG_FILES="$CONFIG_FILES muse/ctrl/Makefile" ;;
+ "muse/instruments/Makefile") CONFIG_FILES="$CONFIG_FILES muse/instruments/Makefile" ;;
+ "muse/mixer/Makefile") CONFIG_FILES="$CONFIG_FILES muse/mixer/Makefile" ;;
+ "muse/cliplist/Makefile") CONFIG_FILES="$CONFIG_FILES muse/cliplist/Makefile" ;;
+ "muse/marker/Makefile") CONFIG_FILES="$CONFIG_FILES muse/marker/Makefile" ;;
+ "muse/mplugins/Makefile") CONFIG_FILES="$CONFIG_FILES muse/mplugins/Makefile" ;;
+ "muse/remote/Makefile") CONFIG_FILES="$CONFIG_FILES muse/remote/Makefile" ;;
+ "share/Makefile") CONFIG_FILES="$CONFIG_FILES share/Makefile" ;;
+ "share/drummaps/Makefile") CONFIG_FILES="$CONFIG_FILES share/drummaps/Makefile" ;;
+ "share/html/Makefile") CONFIG_FILES="$CONFIG_FILES share/html/Makefile" ;;
+ "share/locale/Makefile") CONFIG_FILES="$CONFIG_FILES share/locale/Makefile" ;;
+ "share/wallpapers/Makefile") CONFIG_FILES="$CONFIG_FILES share/wallpapers/Makefile" ;;
+ "share/instruments/Makefile") CONFIG_FILES="$CONFIG_FILES share/instruments/Makefile" ;;
+ "share/plugins/Makefile") CONFIG_FILES="$CONFIG_FILES share/plugins/Makefile" ;;
+ "share/templates/Makefile") CONFIG_FILES="$CONFIG_FILES share/templates/Makefile" ;;
+ "share/pybridge/Makefile") CONFIG_FILES="$CONFIG_FILES share/pybridge/Makefile" ;;
+ "share/scripts/Makefile") CONFIG_FILES="$CONFIG_FILES share/scripts/Makefile" ;;
+ "synti/Makefile") CONFIG_FILES="$CONFIG_FILES synti/Makefile" ;;
+ "synti/libsynti/Makefile") CONFIG_FILES="$CONFIG_FILES synti/libsynti/Makefile" ;;
+ "synti/fluidsynth/Makefile") CONFIG_FILES="$CONFIG_FILES synti/fluidsynth/Makefile" ;;
+ "synti/fluid/Makefile") CONFIG_FILES="$CONFIG_FILES synti/fluid/Makefile" ;;
+ "synti/organ/Makefile") CONFIG_FILES="$CONFIG_FILES synti/organ/Makefile" ;;
+ "synti/s1/Makefile") CONFIG_FILES="$CONFIG_FILES synti/s1/Makefile" ;;
+ "synti/vam/Makefile") CONFIG_FILES="$CONFIG_FILES synti/vam/Makefile" ;;
+ "synti/deicsonze/Makefile") CONFIG_FILES="$CONFIG_FILES synti/deicsonze/Makefile" ;;
+ "synti/simpledrums/Makefile") CONFIG_FILES="$CONFIG_FILES synti/simpledrums/Makefile" ;;
+ "lib/Makefile") CONFIG_FILES="$CONFIG_FILES lib/Makefile" ;;
+ "lib/synthi/Makefile") CONFIG_FILES="$CONFIG_FILES lib/synthi/Makefile" ;;
+ "lib/plugins/Makefile") CONFIG_FILES="$CONFIG_FILES lib/plugins/Makefile" ;;
+ "plugins/Makefile") CONFIG_FILES="$CONFIG_FILES plugins/Makefile" ;;
+ "plugins/freeverb/Makefile") CONFIG_FILES="$CONFIG_FILES plugins/freeverb/Makefile" ;;
+ "plugins/pandelay/Makefile") CONFIG_FILES="$CONFIG_FILES plugins/pandelay/Makefile" ;;
+ "plugins/doublechorus/Makefile") CONFIG_FILES="$CONFIG_FILES plugins/doublechorus/Makefile" ;;
+ "Doxyfile") CONFIG_FILES="$CONFIG_FILES Doxyfile" ;;
+ "utils/Makefile") CONFIG_FILES="$CONFIG_FILES utils/Makefile" ;;
+
+ *) as_fn_error "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
+ esac
+done
+
+
+# If the user did not use the arguments to specify the items to instantiate,
+# then the envvar interface is used. Set only those that are not.
+# We use the long form for the default assignment because of an extremely
+# bizarre bug on SunOS 4.1.3.
+if $ac_need_defaults; then
+ test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
+ test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers
+ test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands
+fi
+
+# Have a temporary directory for convenience. Make it in the build tree
+# simply because there is no reason against having it here, and in addition,
+# creating and moving files from /tmp can sometimes cause problems.
+# Hook for its removal unless debugging.
+# Note that there is a small window in which the directory will not be cleaned:
+# after its creation but before its name has been assigned to `$tmp'.
+$debug ||
+{
+ tmp=
+ trap 'exit_status=$?
+ { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status
+' 0
+ trap 'as_fn_exit 1' 1 2 13 15
+}
+# Create a (secure) tmp directory for tmp files.
+
+{
+ tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` &&
+ test -n "$tmp" && test -d "$tmp"
+} ||
+{
+ tmp=./conf$$-$RANDOM
+ (umask 077 && mkdir "$tmp")
+} || as_fn_error "cannot create a temporary directory in ." "$LINENO" 5
+
+# Set up the scripts for CONFIG_FILES section.
+# No need to generate them if there are no CONFIG_FILES.
+# This happens for instance with `./config.status config.h'.
+if test -n "$CONFIG_FILES"; then
+
+
+ac_cr=`echo X | tr X '\015'`
+# On cygwin, bash can eat \r inside `` if the user requested igncr.
+# But we know of no other shell where ac_cr would be empty at this
+# point, so we can use a bashism as a fallback.
+if test "x$ac_cr" = x; then
+ eval ac_cr=\$\'\\r\'
+fi
+ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null`
+if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then
+ ac_cs_awk_cr='\r'
+else
+ ac_cs_awk_cr=$ac_cr
+fi
+
+echo 'BEGIN {' >"$tmp/subs1.awk" &&
+_ACEOF
+
+
+{
+ echo "cat >conf$$subs.awk <<_ACEOF" &&
+ echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' &&
+ echo "_ACEOF"
+} >conf$$subs.sh ||
+ as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5
+ac_delim_num=`echo "$ac_subst_vars" | grep -c '$'`
+ac_delim='%!_!# '
+for ac_last_try in false false false false false :; do
+ . ./conf$$subs.sh ||
+ as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5
+
+ ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X`
+ if test $ac_delim_n = $ac_delim_num; then
+ break
+ elif $ac_last_try; then
+ as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5
+ else
+ ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
+ fi
+done
+rm -f conf$$subs.sh
+
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+cat >>"\$tmp/subs1.awk" <<\\_ACAWK &&
+_ACEOF
+sed -n '
+h
+s/^/S["/; s/!.*/"]=/
+p
+g
+s/^[^!]*!//
+:repl
+t repl
+s/'"$ac_delim"'$//
+t delim
+:nl
+h
+s/\(.\{148\}\)..*/\1/
+t more1
+s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/
+p
+n
+b repl
+:more1
+s/["\\]/\\&/g; s/^/"/; s/$/"\\/
+p
+g
+s/.\{148\}//
+t nl
+:delim
+h
+s/\(.\{148\}\)..*/\1/
+t more2
+s/["\\]/\\&/g; s/^/"/; s/$/"/
+p
+b
+:more2
+s/["\\]/\\&/g; s/^/"/; s/$/"\\/
+p
+g
+s/.\{148\}//
+t delim
+' <conf$$subs.awk | sed '
+/^[^""]/{
+ N
+ s/\n//
+}
+' >>$CONFIG_STATUS || ac_write_fail=1
+rm -f conf$$subs.awk
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+_ACAWK
+cat >>"\$tmp/subs1.awk" <<_ACAWK &&
+ for (key in S) S_is_set[key] = 1
+ FS = ""
+
+}
+{
+ line = $ 0
+ nfields = split(line, field, "@")
+ substed = 0
+ len = length(field[1])
+ for (i = 2; i < nfields; i++) {
+ key = field[i]
+ keylen = length(key)
+ if (S_is_set[key]) {
+ value = S[key]
+ line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3)
+ len += length(value) + length(field[++i])
+ substed = 1
+ } else
+ len += 1 + keylen
+ }
+
+ print line
+}
+
+_ACAWK
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then
+ sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g"
+else
+ cat
+fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \
+ || as_fn_error "could not setup config files machinery" "$LINENO" 5
+_ACEOF
+
+# VPATH may cause trouble with some makes, so we remove $(srcdir),
+# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and
+# trailing colons and then remove the whole line if VPATH becomes empty
+# (actually we leave an empty line to preserve line numbers).
+if test "x$srcdir" = x.; then
+ ac_vpsub='/^[ ]*VPATH[ ]*=/{
+s/:*\$(srcdir):*/:/
+s/:*\${srcdir}:*/:/
+s/:*@srcdir@:*/:/
+s/^\([^=]*=[ ]*\):*/\1/
+s/:*$//
+s/^[^=]*=[ ]*$//
+}'
+fi
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+fi # test -n "$CONFIG_FILES"
+
+# Set up the scripts for CONFIG_HEADERS section.
+# No need to generate them if there are no CONFIG_HEADERS.
+# This happens for instance with `./config.status Makefile'.
+if test -n "$CONFIG_HEADERS"; then
+cat >"$tmp/defines.awk" <<\_ACAWK ||
+BEGIN {
+_ACEOF
+
+# Transform confdefs.h into an awk script `defines.awk', embedded as
+# here-document in config.status, that substitutes the proper values into
+# config.h.in to produce config.h.
+
+# Create a delimiter string that does not exist in confdefs.h, to ease
+# handling of long lines.
+ac_delim='%!_!# '
+for ac_last_try in false false :; do
+ ac_t=`sed -n "/$ac_delim/p" confdefs.h`
+ if test -z "$ac_t"; then
+ break
+ elif $ac_last_try; then
+ as_fn_error "could not make $CONFIG_HEADERS" "$LINENO" 5
+ else
+ ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
+ fi
+done
+
+# For the awk script, D is an array of macro values keyed by name,
+# likewise P contains macro parameters if any. Preserve backslash
+# newline sequences.
+
+ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]*
+sed -n '
+s/.\{148\}/&'"$ac_delim"'/g
+t rset
+:rset
+s/^[ ]*#[ ]*define[ ][ ]*/ /
+t def
+d
+:def
+s/\\$//
+t bsnl
+s/["\\]/\\&/g
+s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\
+D["\1"]=" \3"/p
+s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p
+d
+:bsnl
+s/["\\]/\\&/g
+s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\
+D["\1"]=" \3\\\\\\n"\\/p
+t cont
+s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p
+t cont
+d
+:cont
+n
+s/.\{148\}/&'"$ac_delim"'/g
+t clear
+:clear
+s/\\$//
+t bsnlc
+s/["\\]/\\&/g; s/^/"/; s/$/"/p
+d
+:bsnlc
+s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p
+b cont
+' <confdefs.h | sed '
+s/'"$ac_delim"'/"\\\
+"/g' >>$CONFIG_STATUS || ac_write_fail=1
+
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ for (key in D) D_is_set[key] = 1
+ FS = ""
+}
+/^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ {
+ line = \$ 0
+ split(line, arg, " ")
+ if (arg[1] == "#") {
+ defundef = arg[2]
+ mac1 = arg[3]
+ } else {
+ defundef = substr(arg[1], 2)
+ mac1 = arg[2]
+ }
+ split(mac1, mac2, "(") #)
+ macro = mac2[1]
+ prefix = substr(line, 1, index(line, defundef) - 1)
+ if (D_is_set[macro]) {
+ # Preserve the white space surrounding the "#".
+ print prefix "define", macro P[macro] D[macro]
+ next
+ } else {
+ # Replace #undef with comments. This is necessary, for example,
+ # in the case of _POSIX_SOURCE, which is predefined and required
+ # on some systems where configure will not decide to define it.
+ if (defundef == "undef") {
+ print "/*", prefix defundef, macro, "*/"
+ next
+ }
+ }
+}
+{ print }
+_ACAWK
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+ as_fn_error "could not setup config headers machinery" "$LINENO" 5
+fi # test -n "$CONFIG_HEADERS"
+
+
+eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS"
+shift
+for ac_tag
+do
+ case $ac_tag in
+ :[FHLC]) ac_mode=$ac_tag; continue;;
+ esac
+ case $ac_mode$ac_tag in
+ :[FHL]*:*);;
+ :L* | :C*:*) as_fn_error "invalid tag \`$ac_tag'" "$LINENO" 5;;
+ :[FH]-) ac_tag=-:-;;
+ :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
+ esac
+ ac_save_IFS=$IFS
+ IFS=:
+ set x $ac_tag
+ IFS=$ac_save_IFS
+ shift
+ ac_file=$1
+ shift
+
+ case $ac_mode in
+ :L) ac_source=$1;;
+ :[FH])
+ ac_file_inputs=
+ for ac_f
+ do
+ case $ac_f in
+ -) ac_f="$tmp/stdin";;
+ *) # Look for the file first in the build tree, then in the source tree
+ # (if the path is not absolute). The absolute path cannot be DOS-style,
+ # because $ac_f cannot contain `:'.
+ test -f "$ac_f" ||
+ case $ac_f in
+ [\\/$]*) false;;
+ *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
+ esac ||
+ as_fn_error "cannot find input file: \`$ac_f'" "$LINENO" 5;;
+ esac
+ case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
+ as_fn_append ac_file_inputs " '$ac_f'"
+ done
+
+ # Let's still pretend it is `configure' which instantiates (i.e., don't
+ # use $as_me), people would be surprised to read:
+ # /* config.h. Generated by config.status. */
+ configure_input='Generated from '`
+ $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g'
+ `' by configure.'
+ if test x"$ac_file" != x-; then
+ configure_input="$ac_file. $configure_input"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5
+$as_echo "$as_me: creating $ac_file" >&6;}
+ fi
+ # Neutralize special characters interpreted by sed in replacement strings.
+ case $configure_input in #(
+ *\&* | *\|* | *\\* )
+ ac_sed_conf_input=`$as_echo "$configure_input" |
+ sed 's/[\\\\&|]/\\\\&/g'`;; #(
+ *) ac_sed_conf_input=$configure_input;;
+ esac
+
+ case $ac_tag in
+ *:-:* | *:-) cat >"$tmp/stdin" \
+ || as_fn_error "could not create $ac_file" "$LINENO" 5 ;;
+ esac
+ ;;
+ esac
+
+ ac_dir=`$as_dirname -- "$ac_file" ||
+$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$ac_file" : 'X\(//\)[^/]' \| \
+ X"$ac_file" : 'X\(//\)$' \| \
+ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$ac_file" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ as_dir="$ac_dir"; as_fn_mkdir_p
+ ac_builddir=.
+
+case "$ac_dir" in
+.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
+*)
+ ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
+ # A ".." for each directory in $ac_dir_suffix.
+ ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
+ case $ac_top_builddir_sub in
+ "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
+ *) ac_top_build_prefix=$ac_top_builddir_sub/ ;;
+ esac ;;
+esac
+ac_abs_top_builddir=$ac_pwd
+ac_abs_builddir=$ac_pwd$ac_dir_suffix
+# for backward compatibility:
+ac_top_builddir=$ac_top_build_prefix
+
+case $srcdir in
+ .) # We are building in place.
+ ac_srcdir=.
+ ac_top_srcdir=$ac_top_builddir_sub
+ ac_abs_top_srcdir=$ac_pwd ;;
+ [\\/]* | ?:[\\/]* ) # Absolute name.
+ ac_srcdir=$srcdir$ac_dir_suffix;
+ ac_top_srcdir=$srcdir
+ ac_abs_top_srcdir=$srcdir ;;
+ *) # Relative name.
+ ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
+ ac_top_srcdir=$ac_top_build_prefix$srcdir
+ ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
+esac
+ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
+
+
+ case $ac_mode in
+ :F)
+ #
+ # CONFIG_FILE
+ #
+
+ case $INSTALL in
+ [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
+ *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;;
+ esac
+ ac_MKDIR_P=$MKDIR_P
+ case $MKDIR_P in
+ [\\/$]* | ?:[\\/]* ) ;;
+ */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;;
+ esac
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+# If the template does not know about datarootdir, expand it.
+# FIXME: This hack should be removed a few years after 2.60.
+ac_datarootdir_hack=; ac_datarootdir_seen=
+ac_sed_dataroot='
+/datarootdir/ {
+ p
+ q
+}
+/@datadir@/p
+/@docdir@/p
+/@infodir@/p
+/@localedir@/p
+/@mandir@/p'
+case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in
+*datarootdir*) ac_datarootdir_seen=yes;;
+*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
+$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ ac_datarootdir_hack='
+ s&@datadir@&$datadir&g
+ s&@docdir@&$docdir&g
+ s&@infodir@&$infodir&g
+ s&@localedir@&$localedir&g
+ s&@mandir@&$mandir&g
+ s&\\\${datarootdir}&$datarootdir&g' ;;
+esac
+_ACEOF
+
+# Neutralize VPATH when `$srcdir' = `.'.
+# Shell code in configure.ac might set extrasub.
+# FIXME: do we really want to maintain this feature?
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ac_sed_extra="$ac_vpsub
+$extrasub
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+:t
+/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
+s|@configure_input@|$ac_sed_conf_input|;t t
+s&@top_builddir@&$ac_top_builddir_sub&;t t
+s&@top_build_prefix@&$ac_top_build_prefix&;t t
+s&@srcdir@&$ac_srcdir&;t t
+s&@abs_srcdir@&$ac_abs_srcdir&;t t
+s&@top_srcdir@&$ac_top_srcdir&;t t
+s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t
+s&@builddir@&$ac_builddir&;t t
+s&@abs_builddir@&$ac_abs_builddir&;t t
+s&@abs_top_builddir@&$ac_abs_top_builddir&;t t
+s&@INSTALL@&$ac_INSTALL&;t t
+s&@MKDIR_P@&$ac_MKDIR_P&;t t
+$ac_datarootdir_hack
+"
+eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \
+ || as_fn_error "could not create $ac_file" "$LINENO" 5
+
+test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
+ { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } &&
+ { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } &&
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
+which seems to be undefined. Please make sure it is defined." >&5
+$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
+which seems to be undefined. Please make sure it is defined." >&2;}
+
+ rm -f "$tmp/stdin"
+ case $ac_file in
+ -) cat "$tmp/out" && rm -f "$tmp/out";;
+ *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";;
+ esac \
+ || as_fn_error "could not create $ac_file" "$LINENO" 5
+ ;;
+ :H)
+ #
+ # CONFIG_HEADER
+ #
+ if test x"$ac_file" != x-; then
+ {
+ $as_echo "/* $configure_input */" \
+ && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs"
+ } >"$tmp/config.h" \
+ || as_fn_error "could not create $ac_file" "$LINENO" 5
+ if diff "$ac_file" "$tmp/config.h" >/dev/null 2>&1; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5
+$as_echo "$as_me: $ac_file is unchanged" >&6;}
+ else
+ rm -f "$ac_file"
+ mv "$tmp/config.h" "$ac_file" \
+ || as_fn_error "could not create $ac_file" "$LINENO" 5
+ fi
+ else
+ $as_echo "/* $configure_input */" \
+ && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" \
+ || as_fn_error "could not create -" "$LINENO" 5
+ fi
+# Compute "$ac_file"'s index in $config_headers.
+_am_arg="$ac_file"
+_am_stamp_count=1
+for _am_header in $config_headers :; do
+ case $_am_header in
+ $_am_arg | $_am_arg:* )
+ break ;;
+ * )
+ _am_stamp_count=`expr $_am_stamp_count + 1` ;;
+ esac
+done
+echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" ||
+$as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$_am_arg" : 'X\(//\)[^/]' \| \
+ X"$_am_arg" : 'X\(//\)$' \| \
+ X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$_am_arg" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`/stamp-h$_am_stamp_count
+ ;;
+
+ :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5
+$as_echo "$as_me: executing $ac_file commands" >&6;}
+ ;;
+ esac
+
+
+ case $ac_file$ac_mode in
+ "depfiles":C) test x"$AMDEP_TRUE" != x"" || {
+ # Autoconf 2.62 quotes --file arguments for eval, but not when files
+ # are listed without --file. Let's play safe and only enable the eval
+ # if we detect the quoting.
+ case $CONFIG_FILES in
+ *\'*) eval set x "$CONFIG_FILES" ;;
+ *) set x $CONFIG_FILES ;;
+ esac
+ shift
+ for mf
+ do
+ # Strip MF so we end up with the name of the file.
+ mf=`echo "$mf" | sed -e 's/:.*$//'`
+ # Check whether this is an Automake generated Makefile or not.
+ # We used to match only the files named `Makefile.in', but
+ # some people rename them; so instead we look at the file content.
+ # Grep'ing the first line is not enough: some people post-process
+ # each Makefile.in and add a new line on top of each file to say so.
+ # Grep'ing the whole file is not good either: AIX grep has a line
+ # limit of 2048, but all sed's we know have understand at least 4000.
+ if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then
+ dirpart=`$as_dirname -- "$mf" ||
+$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$mf" : 'X\(//\)[^/]' \| \
+ X"$mf" : 'X\(//\)$' \| \
+ X"$mf" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$mf" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ else
+ continue
+ fi
+ # Extract the definition of DEPDIR, am__include, and am__quote
+ # from the Makefile without running `make'.
+ DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
+ test -z "$DEPDIR" && continue
+ am__include=`sed -n 's/^am__include = //p' < "$mf"`
+ test -z "am__include" && continue
+ am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
+ # When using ansi2knr, U may be empty or an underscore; expand it
+ U=`sed -n 's/^U = //p' < "$mf"`
+ # Find all dependency output files, they are included files with
+ # $(DEPDIR) in their names. We invoke sed twice because it is the
+ # simplest approach to changing $(DEPDIR) to its actual value in the
+ # expansion.
+ for file in `sed -n "
+ s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
+ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
+ # Make sure the directory exists.
+ test -f "$dirpart/$file" && continue
+ fdir=`$as_dirname -- "$file" ||
+$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$file" : 'X\(//\)[^/]' \| \
+ X"$file" : 'X\(//\)$' \| \
+ X"$file" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$file" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ as_dir=$dirpart/$fdir; as_fn_mkdir_p
+ # echo "creating $dirpart/$file"
+ echo '# dummy' > "$dirpart/$file"
+ done
+ done
+}
+ ;;
+ "libtool":C)
+
+ # See if we are running on zsh, and set the options which allow our
+ # commands through without removal of \ escapes.
+ if test -n "${ZSH_VERSION+set}" ; then
+ setopt NO_GLOB_SUBST
+ fi
+
+ cfgfile="${ofile}T"
+ trap "$RM \"$cfgfile\"; exit 1" 1 2 15
+ $RM "$cfgfile"
+
+ cat <<_LT_EOF >> "$cfgfile"
+#! $SHELL
+
+# `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services.
+# Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION
+# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
+# NOTE: Changes made to this file will be lost: look at ltmain.sh.
+#
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
+# 2006, 2007, 2008 Free Software Foundation, Inc.
+# Written by Gordon Matzigkeit, 1996
+#
+# This file is part of GNU Libtool.
+#
+# GNU Libtool 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.
+#
+# As a special exception to the GNU General Public License,
+# if you distribute this file as part of a program or library that
+# is built using GNU Libtool, you may include this file under the
+# same distribution terms that you use for the rest of that program.
+#
+# GNU Libtool is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GNU Libtool; see the file COPYING. If not, a copy
+# can be downloaded from http://www.gnu.org/licenses/gpl.html, or
+# obtained by writing to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+
+
+# The names of the tagged configurations supported by this script.
+available_tags="CXX "
+
+# ### BEGIN LIBTOOL CONFIG
+
+# Which release of libtool.m4 was used?
+macro_version=$macro_version
+macro_revision=$macro_revision
+
+# Whether or not to build shared libraries.
+build_libtool_libs=$enable_shared
+
+# Whether or not to build static libraries.
+build_old_libs=$enable_static
+
+# What type of objects to build.
+pic_mode=$pic_mode
+
+# Whether or not to optimize for fast installation.
+fast_install=$enable_fast_install
+
+# The host system.
+host_alias=$host_alias
+host=$host
+host_os=$host_os
+
+# The build system.
+build_alias=$build_alias
+build=$build
+build_os=$build_os
+
+# A sed program that does not truncate output.
+SED=$lt_SED
+
+# Sed that helps us avoid accidentally triggering echo(1) options like -n.
+Xsed="\$SED -e 1s/^X//"
+
+# A grep program that handles long lines.
+GREP=$lt_GREP
+
+# An ERE matcher.
+EGREP=$lt_EGREP
+
+# A literal string matcher.
+FGREP=$lt_FGREP
+
+# A BSD- or MS-compatible name lister.
+NM=$lt_NM
+
+# Whether we need soft or hard links.
+LN_S=$lt_LN_S
+
+# What is the maximum length of a command?
+max_cmd_len=$max_cmd_len
+
+# Object file suffix (normally "o").
+objext=$ac_objext
+
+# Executable file suffix (normally "").
+exeext=$exeext
+
+# whether the shell understands "unset".
+lt_unset=$lt_unset
+
+# turn spaces into newlines.
+SP2NL=$lt_lt_SP2NL
+
+# turn newlines into spaces.
+NL2SP=$lt_lt_NL2SP
+
+# How to create reloadable object files.
+reload_flag=$lt_reload_flag
+reload_cmds=$lt_reload_cmds
+
+# An object symbol dumper.
+OBJDUMP=$lt_OBJDUMP
+
+# Method to check whether dependent libraries are shared objects.
+deplibs_check_method=$lt_deplibs_check_method
+
+# Command to use when deplibs_check_method == "file_magic".
+file_magic_cmd=$lt_file_magic_cmd
+
+# The archiver.
+AR=$lt_AR
+AR_FLAGS=$lt_AR_FLAGS
+
+# A symbol stripping program.
+STRIP=$lt_STRIP
+
+# Commands used to install an old-style archive.
+RANLIB=$lt_RANLIB
+old_postinstall_cmds=$lt_old_postinstall_cmds
+old_postuninstall_cmds=$lt_old_postuninstall_cmds
+
+# A C compiler.
+LTCC=$lt_CC
+
+# LTCC compiler flags.
+LTCFLAGS=$lt_CFLAGS
+
+# Take the output of nm and produce a listing of raw symbols and C names.
+global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe
+
+# Transform the output of nm in a proper C declaration.
+global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl
+
+# Transform the output of nm in a C name address pair.
+global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
+
+# Transform the output of nm in a C name address pair when lib prefix is needed.
+global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix
+
+# The name of the directory that contains temporary libtool files.
+objdir=$objdir
+
+# Shell to use when invoking shell scripts.
+SHELL=$lt_SHELL
+
+# An echo program that does not interpret backslashes.
+ECHO=$lt_ECHO
+
+# Used to examine libraries when file_magic_cmd begins with "file".
+MAGIC_CMD=$MAGIC_CMD
+
+# Must we lock files when doing compilation?
+need_locks=$lt_need_locks
+
+# Tool to manipulate archived DWARF debug symbol files on Mac OS X.
+DSYMUTIL=$lt_DSYMUTIL
+
+# Tool to change global to local symbols on Mac OS X.
+NMEDIT=$lt_NMEDIT
+
+# Tool to manipulate fat objects and archives on Mac OS X.
+LIPO=$lt_LIPO
+
+# ldd/readelf like tool for Mach-O binaries on Mac OS X.
+OTOOL=$lt_OTOOL
+
+# ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4.
+OTOOL64=$lt_OTOOL64
+
+# Old archive suffix (normally "a").
+libext=$libext
+
+# Shared library suffix (normally ".so").
+shrext_cmds=$lt_shrext_cmds
+
+# The commands to extract the exported symbol list from a shared archive.
+extract_expsyms_cmds=$lt_extract_expsyms_cmds
+
+# Variables whose values should be saved in libtool wrapper scripts and
+# restored at link time.
+variables_saved_for_relink=$lt_variables_saved_for_relink
+
+# Do we need the "lib" prefix for modules?
+need_lib_prefix=$need_lib_prefix
+
+# Do we need a version for libraries?
+need_version=$need_version
+
+# Library versioning type.
+version_type=$version_type
+
+# Shared library runtime path variable.
+runpath_var=$runpath_var
+
+# Shared library path variable.
+shlibpath_var=$shlibpath_var
+
+# Is shlibpath searched before the hard-coded library search path?
+shlibpath_overrides_runpath=$shlibpath_overrides_runpath
+
+# Format of library name prefix.
+libname_spec=$lt_libname_spec
+
+# List of archive names. First name is the real one, the rest are links.
+# The last name is the one that the linker finds with -lNAME
+library_names_spec=$lt_library_names_spec
+
+# The coded name of the library, if different from the real name.
+soname_spec=$lt_soname_spec
+
+# Command to use after installation of a shared archive.
+postinstall_cmds=$lt_postinstall_cmds
+
+# Command to use after uninstallation of a shared archive.
+postuninstall_cmds=$lt_postuninstall_cmds
+
+# Commands used to finish a libtool library installation in a directory.
+finish_cmds=$lt_finish_cmds
+
+# As "finish_cmds", except a single script fragment to be evaled but
+# not shown.
+finish_eval=$lt_finish_eval
+
+# Whether we should hardcode library paths into libraries.
+hardcode_into_libs=$hardcode_into_libs
+
+# Compile-time system search path for libraries.
+sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
+
+# Run-time system search path for libraries.
+sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
+
+# Whether dlopen is supported.
+dlopen_support=$enable_dlopen
+
+# Whether dlopen of programs is supported.
+dlopen_self=$enable_dlopen_self
+
+# Whether dlopen of statically linked programs is supported.
+dlopen_self_static=$enable_dlopen_self_static
+
+# Commands to strip libraries.
+old_striplib=$lt_old_striplib
+striplib=$lt_striplib
+
+
+# The linker used to build libraries.
+LD=$lt_LD
+
+# Commands used to build an old-style archive.
+old_archive_cmds=$lt_old_archive_cmds
+
+# A language specific compiler.
+CC=$lt_compiler
+
+# Is the compiler the GNU compiler?
+with_gcc=$GCC
+
+# Compiler flag to turn off builtin functions.
+no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag
+
+# How to pass a linker flag through the compiler.
+wl=$lt_lt_prog_compiler_wl
+
+# Additional compiler flags for building library objects.
+pic_flag=$lt_lt_prog_compiler_pic
+
+# Compiler flag to prevent dynamic linking.
+link_static_flag=$lt_lt_prog_compiler_static
+
+# Does compiler simultaneously support -c and -o options?
+compiler_c_o=$lt_lt_cv_prog_compiler_c_o
+
+# Whether or not to add -lc for building shared libraries.
+build_libtool_need_lc=$archive_cmds_need_lc
+
+# Whether or not to disallow shared libs when runtime libs are static.
+allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes
+
+# Compiler flag to allow reflexive dlopens.
+export_dynamic_flag_spec=$lt_export_dynamic_flag_spec
+
+# Compiler flag to generate shared objects directly from archives.
+whole_archive_flag_spec=$lt_whole_archive_flag_spec
+
+# Whether the compiler copes with passing no objects directly.
+compiler_needs_object=$lt_compiler_needs_object
+
+# Create an old-style archive from a shared archive.
+old_archive_from_new_cmds=$lt_old_archive_from_new_cmds
+
+# Create a temporary old-style archive to link instead of a shared archive.
+old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds
+
+# Commands used to build a shared archive.
+archive_cmds=$lt_archive_cmds
+archive_expsym_cmds=$lt_archive_expsym_cmds
+
+# Commands used to build a loadable module if different from building
+# a shared archive.
+module_cmds=$lt_module_cmds
+module_expsym_cmds=$lt_module_expsym_cmds
+
+# Whether we are building with GNU ld or not.
+with_gnu_ld=$lt_with_gnu_ld
+
+# Flag that allows shared libraries with undefined symbols to be built.
+allow_undefined_flag=$lt_allow_undefined_flag
+
+# Flag that enforces no undefined symbols.
+no_undefined_flag=$lt_no_undefined_flag
+
+# Flag to hardcode \$libdir into a binary during linking.
+# This must work even if \$libdir does not exist
+hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec
+
+# If ld is used when linking, flag to hardcode \$libdir into a binary
+# during linking. This must work even if \$libdir does not exist.
+hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld
+
+# Whether we need a single "-rpath" flag with a separated argument.
+hardcode_libdir_separator=$lt_hardcode_libdir_separator
+
+# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes
+# DIR into the resulting binary.
+hardcode_direct=$hardcode_direct
+
+# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes
+# DIR into the resulting binary and the resulting library dependency is
+# "absolute",i.e impossible to change by setting \${shlibpath_var} if the
+# library is relocated.
+hardcode_direct_absolute=$hardcode_direct_absolute
+
+# Set to "yes" if using the -LDIR flag during linking hardcodes DIR
+# into the resulting binary.
+hardcode_minus_L=$hardcode_minus_L
+
+# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR
+# into the resulting binary.
+hardcode_shlibpath_var=$hardcode_shlibpath_var
+
+# Set to "yes" if building a shared library automatically hardcodes DIR
+# into the library and all subsequent libraries and executables linked
+# against it.
+hardcode_automatic=$hardcode_automatic
+
+# Set to yes if linker adds runtime paths of dependent libraries
+# to runtime path list.
+inherit_rpath=$inherit_rpath
+
+# Whether libtool must link a program against all its dependency libraries.
+link_all_deplibs=$link_all_deplibs
+
+# Fix the shell variable \$srcfile for the compiler.
+fix_srcfile_path=$lt_fix_srcfile_path
+
+# Set to "yes" if exported symbols are required.
+always_export_symbols=$always_export_symbols
+
+# The commands to list exported symbols.
+export_symbols_cmds=$lt_export_symbols_cmds
+
+# Symbols that should not be listed in the preloaded symbols.
+exclude_expsyms=$lt_exclude_expsyms
+
+# Symbols that must always be exported.
+include_expsyms=$lt_include_expsyms
+
+# Commands necessary for linking programs (against libraries) with templates.
+prelink_cmds=$lt_prelink_cmds
+
+# Specify filename containing input files.
+file_list_spec=$lt_file_list_spec
+
+# How to hardcode a shared library path into an executable.
+hardcode_action=$hardcode_action
+
+# The directories searched by this compiler when creating a shared library.
+compiler_lib_search_dirs=$lt_compiler_lib_search_dirs
+
+# Dependencies to place before and after the objects being linked to
+# create a shared library.
+predep_objects=$lt_predep_objects
+postdep_objects=$lt_postdep_objects
+predeps=$lt_predeps
+postdeps=$lt_postdeps
+
+# The library search path used internally by the compiler when linking
+# a shared library.
+compiler_lib_search_path=$lt_compiler_lib_search_path
+
+# ### END LIBTOOL CONFIG
+
+_LT_EOF
+
+ case $host_os in
+ aix3*)
+ cat <<\_LT_EOF >> "$cfgfile"
+# AIX sometimes has problems with the GCC collect2 program. For some
+# reason, if we set the COLLECT_NAMES environment variable, the problems
+# vanish in a puff of smoke.
+if test "X${COLLECT_NAMES+set}" != Xset; then
+ COLLECT_NAMES=
+ export COLLECT_NAMES
+fi
+_LT_EOF
+ ;;
+ esac
+
+
+ltmain="$ac_aux_dir/ltmain.sh"
+
+
+ # We use sed instead of cat because bash on DJGPP gets confused if
+ # if finds mixed CR/LF and LF-only lines. Since sed operates in
+ # text mode, it properly converts lines to CR/LF. This bash problem
+ # is reportedly fixed, but why not run on old versions too?
+ sed '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \
+ || (rm -f "$cfgfile"; exit 1)
+
+ case $xsi_shell in
+ yes)
+ cat << \_LT_EOF >> "$cfgfile"
+
+# func_dirname file append nondir_replacement
+# Compute the dirname of FILE. If nonempty, add APPEND to the result,
+# otherwise set result to NONDIR_REPLACEMENT.
+func_dirname ()
+{
+ case ${1} in
+ */*) func_dirname_result="${1%/*}${2}" ;;
+ * ) func_dirname_result="${3}" ;;
+ esac
+}
+
+# func_basename file
+func_basename ()
+{
+ func_basename_result="${1##*/}"
+}
+
+# func_dirname_and_basename file append nondir_replacement
+# perform func_basename and func_dirname in a single function
+# call:
+# dirname: Compute the dirname of FILE. If nonempty,
+# add APPEND to the result, otherwise set result
+# to NONDIR_REPLACEMENT.
+# value returned in "$func_dirname_result"
+# basename: Compute filename of FILE.
+# value retuned in "$func_basename_result"
+# Implementation must be kept synchronized with func_dirname
+# and func_basename. For efficiency, we do not delegate to
+# those functions but instead duplicate the functionality here.
+func_dirname_and_basename ()
+{
+ case ${1} in
+ */*) func_dirname_result="${1%/*}${2}" ;;
+ * ) func_dirname_result="${3}" ;;
+ esac
+ func_basename_result="${1##*/}"
+}
+
+# func_stripname prefix suffix name
+# strip PREFIX and SUFFIX off of NAME.
+# PREFIX and SUFFIX must not contain globbing or regex special
+# characters, hashes, percent signs, but SUFFIX may contain a leading
+# dot (in which case that matches only a dot).
+func_stripname ()
+{
+ # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are
+ # positional parameters, so assign one to ordinary parameter first.
+ func_stripname_result=${3}
+ func_stripname_result=${func_stripname_result#"${1}"}
+ func_stripname_result=${func_stripname_result%"${2}"}
+}
+
+# func_opt_split
+func_opt_split ()
+{
+ func_opt_split_opt=${1%%=*}
+ func_opt_split_arg=${1#*=}
+}
+
+# func_lo2o object
+func_lo2o ()
+{
+ case ${1} in
+ *.lo) func_lo2o_result=${1%.lo}.${objext} ;;
+ *) func_lo2o_result=${1} ;;
+ esac
+}
+
+# func_xform libobj-or-source
+func_xform ()
+{
+ func_xform_result=${1%.*}.lo
+}
+
+# func_arith arithmetic-term...
+func_arith ()
+{
+ func_arith_result=$(( $* ))
+}
+
+# func_len string
+# STRING may not start with a hyphen.
+func_len ()
+{
+ func_len_result=${#1}
+}
+
+_LT_EOF
+ ;;
+ *) # Bourne compatible functions.
+ cat << \_LT_EOF >> "$cfgfile"
+
+# func_dirname file append nondir_replacement
+# Compute the dirname of FILE. If nonempty, add APPEND to the result,
+# otherwise set result to NONDIR_REPLACEMENT.
+func_dirname ()
+{
+ # Extract subdirectory from the argument.
+ func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"`
+ if test "X$func_dirname_result" = "X${1}"; then
+ func_dirname_result="${3}"
+ else
+ func_dirname_result="$func_dirname_result${2}"
+ fi
+}
+
+# func_basename file
+func_basename ()
+{
+ func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"`
+}
+
+
+# func_stripname prefix suffix name
+# strip PREFIX and SUFFIX off of NAME.
+# PREFIX and SUFFIX must not contain globbing or regex special
+# characters, hashes, percent signs, but SUFFIX may contain a leading
+# dot (in which case that matches only a dot).
+# func_strip_suffix prefix name
+func_stripname ()
+{
+ case ${2} in
+ .*) func_stripname_result=`$ECHO "X${3}" \
+ | $Xsed -e "s%^${1}%%" -e "s%\\\\${2}\$%%"`;;
+ *) func_stripname_result=`$ECHO "X${3}" \
+ | $Xsed -e "s%^${1}%%" -e "s%${2}\$%%"`;;
+ esac
+}
+
+# sed scripts:
+my_sed_long_opt='1s/^\(-[^=]*\)=.*/\1/;q'
+my_sed_long_arg='1s/^-[^=]*=//'
+
+# func_opt_split
+func_opt_split ()
+{
+ func_opt_split_opt=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_opt"`
+ func_opt_split_arg=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_arg"`
+}
+
+# func_lo2o object
+func_lo2o ()
+{
+ func_lo2o_result=`$ECHO "X${1}" | $Xsed -e "$lo2o"`
+}
+
+# func_xform libobj-or-source
+func_xform ()
+{
+ func_xform_result=`$ECHO "X${1}" | $Xsed -e 's/\.[^.]*$/.lo/'`
+}
+
+# func_arith arithmetic-term...
+func_arith ()
+{
+ func_arith_result=`expr "$@"`
+}
+
+# func_len string
+# STRING may not start with a hyphen.
+func_len ()
+{
+ func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len`
+}
+
+_LT_EOF
+esac
+
+case $lt_shell_append in
+ yes)
+ cat << \_LT_EOF >> "$cfgfile"
+
+# func_append var value
+# Append VALUE to the end of shell variable VAR.
+func_append ()
+{
+ eval "$1+=\$2"
+}
+_LT_EOF
+ ;;
+ *)
+ cat << \_LT_EOF >> "$cfgfile"
+
+# func_append var value
+# Append VALUE to the end of shell variable VAR.
+func_append ()
+{
+ eval "$1=\$$1\$2"
+}
+
+_LT_EOF
+ ;;
+ esac
+
+
+ sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \
+ || (rm -f "$cfgfile"; exit 1)
+
+ mv -f "$cfgfile" "$ofile" ||
+ (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
+ chmod +x "$ofile"
+
+
+ cat <<_LT_EOF >> "$ofile"
+
+# ### BEGIN LIBTOOL TAG CONFIG: CXX
+
+# The linker used to build libraries.
+LD=$lt_LD_CXX
+
+# Commands used to build an old-style archive.
+old_archive_cmds=$lt_old_archive_cmds_CXX
+
+# A language specific compiler.
+CC=$lt_compiler_CXX
+
+# Is the compiler the GNU compiler?
+with_gcc=$GCC_CXX
+
+# Compiler flag to turn off builtin functions.
+no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_CXX
+
+# How to pass a linker flag through the compiler.
+wl=$lt_lt_prog_compiler_wl_CXX
+
+# Additional compiler flags for building library objects.
+pic_flag=$lt_lt_prog_compiler_pic_CXX
+
+# Compiler flag to prevent dynamic linking.
+link_static_flag=$lt_lt_prog_compiler_static_CXX
+
+# Does compiler simultaneously support -c and -o options?
+compiler_c_o=$lt_lt_cv_prog_compiler_c_o_CXX
+
+# Whether or not to add -lc for building shared libraries.
+build_libtool_need_lc=$archive_cmds_need_lc_CXX
+
+# Whether or not to disallow shared libs when runtime libs are static.
+allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_CXX
+
+# Compiler flag to allow reflexive dlopens.
+export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_CXX
+
+# Compiler flag to generate shared objects directly from archives.
+whole_archive_flag_spec=$lt_whole_archive_flag_spec_CXX
+
+# Whether the compiler copes with passing no objects directly.
+compiler_needs_object=$lt_compiler_needs_object_CXX
+
+# Create an old-style archive from a shared archive.
+old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_CXX
+
+# Create a temporary old-style archive to link instead of a shared archive.
+old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_CXX
+
+# Commands used to build a shared archive.
+archive_cmds=$lt_archive_cmds_CXX
+archive_expsym_cmds=$lt_archive_expsym_cmds_CXX
+
+# Commands used to build a loadable module if different from building
+# a shared archive.
+module_cmds=$lt_module_cmds_CXX
+module_expsym_cmds=$lt_module_expsym_cmds_CXX
+
+# Whether we are building with GNU ld or not.
+with_gnu_ld=$lt_with_gnu_ld_CXX
+
+# Flag that allows shared libraries with undefined symbols to be built.
+allow_undefined_flag=$lt_allow_undefined_flag_CXX
+
+# Flag that enforces no undefined symbols.
+no_undefined_flag=$lt_no_undefined_flag_CXX
+
+# Flag to hardcode \$libdir into a binary during linking.
+# This must work even if \$libdir does not exist
+hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_CXX
+
+# If ld is used when linking, flag to hardcode \$libdir into a binary
+# during linking. This must work even if \$libdir does not exist.
+hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_CXX
+
+# Whether we need a single "-rpath" flag with a separated argument.
+hardcode_libdir_separator=$lt_hardcode_libdir_separator_CXX
+
+# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes
+# DIR into the resulting binary.
+hardcode_direct=$hardcode_direct_CXX
+
+# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes
+# DIR into the resulting binary and the resulting library dependency is
+# "absolute",i.e impossible to change by setting \${shlibpath_var} if the
+# library is relocated.
+hardcode_direct_absolute=$hardcode_direct_absolute_CXX
+
+# Set to "yes" if using the -LDIR flag during linking hardcodes DIR
+# into the resulting binary.
+hardcode_minus_L=$hardcode_minus_L_CXX
+
+# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR
+# into the resulting binary.
+hardcode_shlibpath_var=$hardcode_shlibpath_var_CXX
+
+# Set to "yes" if building a shared library automatically hardcodes DIR
+# into the library and all subsequent libraries and executables linked
+# against it.
+hardcode_automatic=$hardcode_automatic_CXX
+
+# Set to yes if linker adds runtime paths of dependent libraries
+# to runtime path list.
+inherit_rpath=$inherit_rpath_CXX
+
+# Whether libtool must link a program against all its dependency libraries.
+link_all_deplibs=$link_all_deplibs_CXX
+
+# Fix the shell variable \$srcfile for the compiler.
+fix_srcfile_path=$lt_fix_srcfile_path_CXX
+
+# Set to "yes" if exported symbols are required.
+always_export_symbols=$always_export_symbols_CXX
+
+# The commands to list exported symbols.
+export_symbols_cmds=$lt_export_symbols_cmds_CXX
+
+# Symbols that should not be listed in the preloaded symbols.
+exclude_expsyms=$lt_exclude_expsyms_CXX
+
+# Symbols that must always be exported.
+include_expsyms=$lt_include_expsyms_CXX
+
+# Commands necessary for linking programs (against libraries) with templates.
+prelink_cmds=$lt_prelink_cmds_CXX
+
+# Specify filename containing input files.
+file_list_spec=$lt_file_list_spec_CXX
+
+# How to hardcode a shared library path into an executable.
+hardcode_action=$hardcode_action_CXX
+
+# The directories searched by this compiler when creating a shared library.
+compiler_lib_search_dirs=$lt_compiler_lib_search_dirs_CXX
+
+# Dependencies to place before and after the objects being linked to
+# create a shared library.
+predep_objects=$lt_predep_objects_CXX
+postdep_objects=$lt_postdep_objects_CXX
+predeps=$lt_predeps_CXX
+postdeps=$lt_postdeps_CXX
+
+# The library search path used internally by the compiler when linking
+# a shared library.
+compiler_lib_search_path=$lt_compiler_lib_search_path_CXX
+
+# ### END LIBTOOL TAG CONFIG: CXX
+_LT_EOF
+
+ ;;
+
+ esac
+done # for ac_tag
+
+
+as_fn_exit 0
+_ACEOF
+ac_clean_files=$ac_clean_files_save
+
+test $ac_write_fail = 0 ||
+ as_fn_error "write failure creating $CONFIG_STATUS" "$LINENO" 5
+
+
+# configure is writing to config.log, and then calls config.status.
+# config.status does its own redirection, appending to config.log.
+# Unfortunately, on DOS this fails, as config.log is still kept open
+# by configure, so config.status won't be able to write to it; its
+# output is simply discarded. So we exec the FD to /dev/null,
+# effectively closing config.log, so it can be properly (re)opened and
+# appended to by config.status. When coming back to configure, we
+# need to make the FD available again.
+if test "$no_create" != yes; then
+ ac_cs_success=:
+ ac_config_status_args=
+ test "$silent" = yes &&
+ ac_config_status_args="$ac_config_status_args --quiet"
+ exec 5>/dev/null
+ $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false
+ exec 5>>config.log
+ # Use ||, not &&, to avoid exiting from the if with $? = 1, which
+ # would make configure fail if this is the last instruction.
+ $ac_cs_success || as_fn_exit $?
+fi
+if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
+$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
+fi
+
+
+######## Show a configuration report ########
+if test -n "$JADE"; then
+ jade_report="$JADE";
+else
+ jade_report="not present"
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}:
+
+ MusE configured
+
+ LASH support: $LASH_FOUND
+ OSC support: $OSC
+ DSSI support: $DSSI
+ FluidSynth: $muse_enable_fluidlib
+
+ jade: $jade_report
+ doxygen: $DOXYGEN
+ graphviz: $DOT
+ perl: $PERL
+ treeviews in doxygen
+ html output: $report_doxy_treeview
+
+ C++ compiler: $CXX
+ optimizing: $report_optimise
+ debug: $report_debug
+ optimise for arch: $report_march
+ SSE optimizations $report_sse
+ python bindings: $enable_python
+
+ installation prefix: $prefix
+
+ Deprecated:
+ ---------------------------------------------------
+ using rtcap: $report_rtcap
+ setuid root install: $SUIDINSTALL
+ setuid root build: $SUIDBUILD
+ VST/win support: $VST
+
+" >&5
+$as_echo "$as_me:
+
+ MusE configured
+
+ LASH support: $LASH_FOUND
+ OSC support: $OSC
+ DSSI support: $DSSI
+ FluidSynth: $muse_enable_fluidlib
+
+ jade: $jade_report
+ doxygen: $DOXYGEN
+ graphviz: $DOT
+ perl: $PERL
+ treeviews in doxygen
+ html output: $report_doxy_treeview
+
+ C++ compiler: $CXX
+ optimizing: $report_optimise
+ debug: $report_debug
+ optimise for arch: $report_march
+ SSE optimizations $report_sse
+ python bindings: $enable_python
+
+ installation prefix: $prefix
+
+ Deprecated:
+ ---------------------------------------------------
+ using rtcap: $report_rtcap
+ setuid root install: $SUIDINSTALL
+ setuid root build: $SUIDBUILD
+ VST/win support: $VST
+
+" >&6;}
+
diff --git a/muse2/autom4te.cache/output.1 b/muse2/autom4te.cache/output.1
new file mode 100644
index 00000000..f9b346c9
--- /dev/null
+++ b/muse2/autom4te.cache/output.1
@@ -0,0 +1,20639 @@
+@%:@! /bin/sh
+@%:@ Guess values for system-dependent variables and create Makefiles.
+@%:@ Generated by GNU Autoconf 2.65 for MusE 1.1.
+@%:@
+@%:@
+@%:@ Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
+@%:@ 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
+@%:@ Inc.
+@%:@
+@%:@
+@%:@ This configure script is free software; the Free Software Foundation
+@%:@ gives unlimited permission to copy, distribute and modify it.
+## -------------------- ##
+## M4sh Initialization. ##
+## -------------------- ##
+
+# Be more Bourne compatible
+DUALCASE=1; export DUALCASE # for MKS sh
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
+ emulate sh
+ NULLCMD=:
+ # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
+ # is contrary to our usage. Disable this feature.
+ alias -g '${1+"$@"}'='"$@"'
+ setopt NO_GLOB_SUBST
+else
+ case `(set -o) 2>/dev/null` in @%:@(
+ *posix*) :
+ set -o posix ;; @%:@(
+ *) :
+ ;;
+esac
+fi
+
+
+as_nl='
+'
+export as_nl
+# Printing a long string crashes Solaris 7 /usr/bin/printf.
+as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
+# Prefer a ksh shell builtin over an external printf program on Solaris,
+# but without wasting forks for bash or zsh.
+if test -z "$BASH_VERSION$ZSH_VERSION" \
+ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
+ as_echo='print -r --'
+ as_echo_n='print -rn --'
+elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
+ as_echo='printf %s\n'
+ as_echo_n='printf %s'
+else
+ if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
+ as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
+ as_echo_n='/usr/ucb/echo -n'
+ else
+ as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
+ as_echo_n_body='eval
+ arg=$1;
+ case $arg in @%:@(
+ *"$as_nl"*)
+ expr "X$arg" : "X\\(.*\\)$as_nl";
+ arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
+ esac;
+ expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
+ '
+ export as_echo_n_body
+ as_echo_n='sh -c $as_echo_n_body as_echo'
+ fi
+ export as_echo_body
+ as_echo='sh -c $as_echo_body as_echo'
+fi
+
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+ PATH_SEPARATOR=:
+ (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
+ (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
+ PATH_SEPARATOR=';'
+ }
+fi
+
+
+# IFS
+# We need space, tab and new line, in precisely that order. Quoting is
+# there to prevent editors from complaining about space-tab.
+# (If _AS_PATH_WALK were called with IFS unset, it would disable word
+# splitting by setting IFS to empty value.)
+IFS=" "" $as_nl"
+
+# Find who we are. Look in the path if we contain no directory separator.
+case $0 in @%:@((
+ *[\\/]* ) as_myself=$0 ;;
+ *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+# We did not find ourselves, most probably we were run as `sh COMMAND'
+# in which case we are not to be found in the path.
+if test "x$as_myself" = x; then
+ as_myself=$0
+fi
+if test ! -f "$as_myself"; then
+ $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
+ exit 1
+fi
+
+# Unset variables that we do not need and which cause bugs (e.g. in
+# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1"
+# suppresses any "Segmentation fault" message there. '((' could
+# trigger a bug in pdksh 5.2.14.
+for as_var in BASH_ENV ENV MAIL MAILPATH
+do eval test x\${$as_var+set} = xset \
+ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
+done
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# NLS nuisances.
+LC_ALL=C
+export LC_ALL
+LANGUAGE=C
+export LANGUAGE
+
+# CDPATH.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+if test "x$CONFIG_SHELL" = x; then
+ as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then :
+ emulate sh
+ NULLCMD=:
+ # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which
+ # is contrary to our usage. Disable this feature.
+ alias -g '\${1+\"\$@\"}'='\"\$@\"'
+ setopt NO_GLOB_SUBST
+else
+ case \`(set -o) 2>/dev/null\` in @%:@(
+ *posix*) :
+ set -o posix ;; @%:@(
+ *) :
+ ;;
+esac
+fi
+"
+ as_required="as_fn_return () { (exit \$1); }
+as_fn_success () { as_fn_return 0; }
+as_fn_failure () { as_fn_return 1; }
+as_fn_ret_success () { return 0; }
+as_fn_ret_failure () { return 1; }
+
+exitcode=0
+as_fn_success || { exitcode=1; echo as_fn_success failed.; }
+as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; }
+as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; }
+as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; }
+if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then :
+
+else
+ exitcode=1; echo positional parameters were not saved.
+fi
+test x\$exitcode = x0 || exit 1"
+ as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO
+ as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
+ eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
+ test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1
+test \$(( 1 + 1 )) = 2 || exit 1"
+ if (eval "$as_required") 2>/dev/null; then :
+ as_have_required=yes
+else
+ as_have_required=no
+fi
+ if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then :
+
+else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+as_found=false
+for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ as_found=:
+ case $as_dir in @%:@(
+ /*)
+ for as_base in sh bash ksh sh5; do
+ # Try only shells that exist, to save several forks.
+ as_shell=$as_dir/$as_base
+ if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
+ { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then :
+ CONFIG_SHELL=$as_shell as_have_required=yes
+ if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then :
+ break 2
+fi
+fi
+ done;;
+ esac
+ as_found=false
+done
+$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } &&
+ { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then :
+ CONFIG_SHELL=$SHELL as_have_required=yes
+fi; }
+IFS=$as_save_IFS
+
+
+ if test "x$CONFIG_SHELL" != x; then :
+ # We cannot yet assume a decent shell, so we have to provide a
+ # neutralization value for shells without unset; and this also
+ # works around shells that cannot unset nonexistent variables.
+ BASH_ENV=/dev/null
+ ENV=/dev/null
+ (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
+ export CONFIG_SHELL
+ exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"}
+fi
+
+ if test x$as_have_required = xno; then :
+ $as_echo "$0: This script requires a shell more modern than all"
+ $as_echo "$0: the shells that I found on your system."
+ if test x${ZSH_VERSION+set} = xset ; then
+ $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should"
+ $as_echo "$0: be upgraded to zsh 4.3.4 or later."
+ else
+ $as_echo "$0: Please tell bug-autoconf@gnu.org about your system,
+$0: including any error possibly output before this
+$0: message. Then install a modern shell, or manually run
+$0: the script under such a shell if you do have one."
+ fi
+ exit 1
+fi
+fi
+fi
+SHELL=${CONFIG_SHELL-/bin/sh}
+export SHELL
+# Unset more variables known to interfere with behavior of common tools.
+CLICOLOR_FORCE= GREP_OPTIONS=
+unset CLICOLOR_FORCE GREP_OPTIONS
+
+## --------------------- ##
+## M4sh Shell Functions. ##
+## --------------------- ##
+@%:@ as_fn_unset VAR
+@%:@ ---------------
+@%:@ Portably unset VAR.
+as_fn_unset ()
+{
+ { eval $1=; unset $1;}
+}
+as_unset=as_fn_unset
+
+@%:@ as_fn_set_status STATUS
+@%:@ -----------------------
+@%:@ Set @S|@? to STATUS, without forking.
+as_fn_set_status ()
+{
+ return $1
+} @%:@ as_fn_set_status
+
+@%:@ as_fn_exit STATUS
+@%:@ -----------------
+@%:@ Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
+as_fn_exit ()
+{
+ set +e
+ as_fn_set_status $1
+ exit $1
+} @%:@ as_fn_exit
+
+@%:@ as_fn_mkdir_p
+@%:@ -------------
+@%:@ Create "@S|@as_dir" as a directory, including parents if necessary.
+as_fn_mkdir_p ()
+{
+
+ case $as_dir in #(
+ -*) as_dir=./$as_dir;;
+ esac
+ test -d "$as_dir" || eval $as_mkdir_p || {
+ as_dirs=
+ while :; do
+ case $as_dir in #(
+ *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
+ *) as_qdir=$as_dir;;
+ esac
+ as_dirs="'$as_qdir' $as_dirs"
+ as_dir=`$as_dirname -- "$as_dir" ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$as_dir" : 'X\(//\)[^/]' \| \
+ X"$as_dir" : 'X\(//\)$' \| \
+ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$as_dir" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ test -d "$as_dir" && break
+ done
+ test -z "$as_dirs" || eval "mkdir $as_dirs"
+ } || test -d "$as_dir" || as_fn_error "cannot create directory $as_dir"
+
+
+} @%:@ as_fn_mkdir_p
+@%:@ as_fn_append VAR VALUE
+@%:@ ----------------------
+@%:@ Append the text in VALUE to the end of the definition contained in VAR. Take
+@%:@ advantage of any shell optimizations that allow amortized linear growth over
+@%:@ repeated appends, instead of the typical quadratic growth present in naive
+@%:@ implementations.
+if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
+ eval 'as_fn_append ()
+ {
+ eval $1+=\$2
+ }'
+else
+ as_fn_append ()
+ {
+ eval $1=\$$1\$2
+ }
+fi # as_fn_append
+
+@%:@ as_fn_arith ARG...
+@%:@ ------------------
+@%:@ Perform arithmetic evaluation on the ARGs, and store the result in the
+@%:@ global @S|@as_val. Take advantage of shells that can avoid forks. The arguments
+@%:@ must be portable across @S|@(()) and expr.
+if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
+ eval 'as_fn_arith ()
+ {
+ as_val=$(( $* ))
+ }'
+else
+ as_fn_arith ()
+ {
+ as_val=`expr "$@" || test $? -eq 1`
+ }
+fi # as_fn_arith
+
+
+@%:@ as_fn_error ERROR [LINENO LOG_FD]
+@%:@ ---------------------------------
+@%:@ Output "`basename @S|@0`: error: ERROR" to stderr. If LINENO and LOG_FD are
+@%:@ provided, also output the error to LOG_FD, referencing LINENO. Then exit the
+@%:@ script with status @S|@?, using 1 if that was 0.
+as_fn_error ()
+{
+ as_status=$?; test $as_status -eq 0 && as_status=1
+ if test "$3"; then
+ as_lineno=${as_lineno-"$2"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ $as_echo "$as_me:${as_lineno-$LINENO}: error: $1" >&$3
+ fi
+ $as_echo "$as_me: error: $1" >&2
+ as_fn_exit $as_status
+} @%:@ as_fn_error
+
+if expr a : '\(a\)' >/dev/null 2>&1 &&
+ test "X`expr 00001 : '.*\(...\)'`" = X001; then
+ as_expr=expr
+else
+ as_expr=false
+fi
+
+if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
+ as_basename=basename
+else
+ as_basename=false
+fi
+
+if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
+ as_dirname=dirname
+else
+ as_dirname=false
+fi
+
+as_me=`$as_basename -- "$0" ||
+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+ X"$0" : 'X\(//\)$' \| \
+ X"$0" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X/"$0" |
+ sed '/^.*\/\([^/][^/]*\)\/*$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits
+
+
+ as_lineno_1=$LINENO as_lineno_1a=$LINENO
+ as_lineno_2=$LINENO as_lineno_2a=$LINENO
+ eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" &&
+ test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || {
+ # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-)
+ sed -n '
+ p
+ /[$]LINENO/=
+ ' <$as_myself |
+ sed '
+ s/[$]LINENO.*/&-/
+ t lineno
+ b
+ :lineno
+ N
+ :loop
+ s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
+ t loop
+ s/-\n.*//
+ ' >$as_me.lineno &&
+ chmod +x "$as_me.lineno" ||
+ { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
+
+ # Don't try to exec as it changes $[0], causing all sort of problems
+ # (the dirname of $[0] is not the place where we might find the
+ # original and so on. Autoconf is especially sensitive to this).
+ . "./$as_me.lineno"
+ # Exit status is that of the last command.
+ exit
+}
+
+ECHO_C= ECHO_N= ECHO_T=
+case `echo -n x` in @%:@(((((
+-n*)
+ case `echo 'xy\c'` in
+ *c*) ECHO_T=' ';; # ECHO_T is single tab character.
+ xy) ECHO_C='\c';;
+ *) echo `echo ksh88 bug on AIX 6.1` > /dev/null
+ ECHO_T=' ';;
+ esac;;
+*)
+ ECHO_N='-n';;
+esac
+
+rm -f conf$$ conf$$.exe conf$$.file
+if test -d conf$$.dir; then
+ rm -f conf$$.dir/conf$$.file
+else
+ rm -f conf$$.dir
+ mkdir conf$$.dir 2>/dev/null
+fi
+if (echo >conf$$.file) 2>/dev/null; then
+ if ln -s conf$$.file conf$$ 2>/dev/null; then
+ as_ln_s='ln -s'
+ # ... but there are two gotchas:
+ # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
+ # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
+ # In both cases, we have to default to `cp -p'.
+ ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
+ as_ln_s='cp -p'
+ elif ln conf$$.file conf$$ 2>/dev/null; then
+ as_ln_s=ln
+ else
+ as_ln_s='cp -p'
+ fi
+else
+ as_ln_s='cp -p'
+fi
+rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
+rmdir conf$$.dir 2>/dev/null
+
+if mkdir -p . 2>/dev/null; then
+ as_mkdir_p='mkdir -p "$as_dir"'
+else
+ test -d ./-p && rmdir ./-p
+ as_mkdir_p=false
+fi
+
+if test -x / >/dev/null 2>&1; then
+ as_test_x='test -x'
+else
+ if ls -dL / >/dev/null 2>&1; then
+ as_ls_L_option=L
+ else
+ as_ls_L_option=
+ fi
+ as_test_x='
+ eval sh -c '\''
+ if test -d "$1"; then
+ test -d "$1/.";
+ else
+ case $1 in @%:@(
+ -*)set "./$1";;
+ esac;
+ case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in @%:@((
+ ???[sx]*):;;*)false;;esac;fi
+ '\'' sh
+ '
+fi
+as_executable_p=$as_test_x
+
+# Sed expression to map a string onto a valid CPP name.
+as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
+
+# Sed expression to map a string onto a valid variable name.
+as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
+
+
+
+# Check that we are running under the correct shell.
+SHELL=${CONFIG_SHELL-/bin/sh}
+
+case X$lt_ECHO in
+X*--fallback-echo)
+ # Remove one level of quotation (which was required for Make).
+ ECHO=`echo "$lt_ECHO" | sed 's,\\\\\$\\$0,'$0','`
+ ;;
+esac
+
+ECHO=${lt_ECHO-echo}
+if test "X$1" = X--no-reexec; then
+ # Discard the --no-reexec flag, and continue.
+ shift
+elif test "X$1" = X--fallback-echo; then
+ # Avoid inline document here, it may be left over
+ :
+elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' ; then
+ # Yippee, $ECHO works!
+ :
+else
+ # Restart under the correct shell.
+ exec $SHELL "$0" --no-reexec ${1+"$@"}
+fi
+
+if test "X$1" = X--fallback-echo; then
+ # used as fallback echo
+ shift
+ cat <<_LT_EOF
+$*
+_LT_EOF
+ exit 0
+fi
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+if test -z "$lt_ECHO"; then
+ if test "X${echo_test_string+set}" != Xset; then
+ # find a string as large as possible, as long as the shell can cope with it
+ for cmd in 'sed 50q "$0"' 'sed 20q "$0"' 'sed 10q "$0"' 'sed 2q "$0"' 'echo test'; do
+ # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ...
+ if { echo_test_string=`eval $cmd`; } 2>/dev/null &&
+ { test "X$echo_test_string" = "X$echo_test_string"; } 2>/dev/null
+ then
+ break
+ fi
+ done
+ fi
+
+ if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' &&
+ echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` &&
+ test "X$echo_testing_string" = "X$echo_test_string"; then
+ :
+ else
+ # The Solaris, AIX, and Digital Unix default echo programs unquote
+ # backslashes. This makes it impossible to quote backslashes using
+ # echo "$something" | sed 's/\\/\\\\/g'
+ #
+ # So, first we look for a working echo in the user's PATH.
+
+ lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+ for dir in $PATH /usr/ucb; do
+ IFS="$lt_save_ifs"
+ if (test -f $dir/echo || test -f $dir/echo$ac_exeext) &&
+ test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' &&
+ echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` &&
+ test "X$echo_testing_string" = "X$echo_test_string"; then
+ ECHO="$dir/echo"
+ break
+ fi
+ done
+ IFS="$lt_save_ifs"
+
+ if test "X$ECHO" = Xecho; then
+ # We didn't find a better echo, so look for alternatives.
+ if test "X`{ print -r '\t'; } 2>/dev/null`" = 'X\t' &&
+ echo_testing_string=`{ print -r "$echo_test_string"; } 2>/dev/null` &&
+ test "X$echo_testing_string" = "X$echo_test_string"; then
+ # This shell has a builtin print -r that does the trick.
+ ECHO='print -r'
+ elif { test -f /bin/ksh || test -f /bin/ksh$ac_exeext; } &&
+ test "X$CONFIG_SHELL" != X/bin/ksh; then
+ # If we have ksh, try running configure again with it.
+ ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
+ export ORIGINAL_CONFIG_SHELL
+ CONFIG_SHELL=/bin/ksh
+ export CONFIG_SHELL
+ exec $CONFIG_SHELL "$0" --no-reexec ${1+"$@"}
+ else
+ # Try using printf.
+ ECHO='printf %s\n'
+ if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' &&
+ echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` &&
+ test "X$echo_testing_string" = "X$echo_test_string"; then
+ # Cool, printf works
+ :
+ elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` &&
+ test "X$echo_testing_string" = 'X\t' &&
+ echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
+ test "X$echo_testing_string" = "X$echo_test_string"; then
+ CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL
+ export CONFIG_SHELL
+ SHELL="$CONFIG_SHELL"
+ export SHELL
+ ECHO="$CONFIG_SHELL $0 --fallback-echo"
+ elif echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` &&
+ test "X$echo_testing_string" = 'X\t' &&
+ echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
+ test "X$echo_testing_string" = "X$echo_test_string"; then
+ ECHO="$CONFIG_SHELL $0 --fallback-echo"
+ else
+ # maybe with a smaller string...
+ prev=:
+
+ for cmd in 'echo test' 'sed 2q "$0"' 'sed 10q "$0"' 'sed 20q "$0"' 'sed 50q "$0"'; do
+ if { test "X$echo_test_string" = "X`eval $cmd`"; } 2>/dev/null
+ then
+ break
+ fi
+ prev="$cmd"
+ done
+
+ if test "$prev" != 'sed 50q "$0"'; then
+ echo_test_string=`eval $prev`
+ export echo_test_string
+ exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "$0" ${1+"$@"}
+ else
+ # Oops. We lost completely, so just stick with echo.
+ ECHO=echo
+ fi
+ fi
+ fi
+ fi
+ fi
+fi
+
+# Copy echo and quote the copy suitably for passing to libtool from
+# the Makefile, instead of quoting the original, which is used later.
+lt_ECHO=$ECHO
+if test "X$lt_ECHO" = "X$CONFIG_SHELL $0 --fallback-echo"; then
+ lt_ECHO="$CONFIG_SHELL \\\$\$0 --fallback-echo"
+fi
+
+
+
+
+test -n "$DJDIR" || exec 7<&0 </dev/null
+exec 6>&1
+
+# Name of the host.
+# hostname on some systems (SVR3.2, Linux) returns a bogus exit status,
+# so uname gets run too.
+ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
+
+#
+# Initializations.
+#
+ac_default_prefix=/usr/local
+ac_clean_files=
+ac_config_libobj_dir=.
+LIB@&t@OBJS=
+cross_compiling=no
+subdirs=
+MFLAGS=
+MAKEFLAGS=
+
+# Identity of this package.
+PACKAGE_NAME='MusE'
+PACKAGE_TARNAME='muse'
+PACKAGE_VERSION='1.1'
+PACKAGE_STRING='MusE 1.1'
+PACKAGE_BUGREPORT=''
+PACKAGE_URL=''
+
+ac_unique_file="muse/app.cpp"
+# Factoring default headers for most tests.
+ac_includes_default="\
+#include <stdio.h>
+#ifdef HAVE_SYS_TYPES_H
+# include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_STAT_H
+# include <sys/stat.h>
+#endif
+#ifdef STDC_HEADERS
+# include <stdlib.h>
+# include <stddef.h>
+#else
+# ifdef HAVE_STDLIB_H
+# include <stdlib.h>
+# endif
+#endif
+#ifdef HAVE_STRING_H
+# if !defined STDC_HEADERS && defined HAVE_MEMORY_H
+# include <memory.h>
+# endif
+# include <string.h>
+#endif
+#ifdef HAVE_STRINGS_H
+# include <strings.h>
+#endif
+#ifdef HAVE_INTTYPES_H
+# include <inttypes.h>
+#endif
+#ifdef HAVE_STDINT_H
+# include <stdint.h>
+#endif
+#ifdef HAVE_UNISTD_H
+# include <unistd.h>
+#endif"
+
+ac_subst_vars='am__EXEEXT_FALSE
+am__EXEEXT_TRUE
+LTLIBOBJS
+LIB@&t@OBJS
+QTDIR_BIN
+QT_LIBS
+QTDIR_INC
+MUSECXXFLAGS
+HAVE_AUDIO_FALSE
+HAVE_AUDIO_TRUE
+DSSI_SUPPORT_FALSE
+DSSI_SUPPORT_TRUE
+OSC_SUPPORT_FALSE
+OSC_SUPPORT_TRUE
+LO_LIBS
+LO_CFLAGS
+VST_SUPPORT_FALSE
+VST_SUPPORT_TRUE
+FST_LIBS
+FST_CFLAGS
+PYTHON_LIB
+PYTHON_INCLUDES
+ENABLE_PYTHON_FALSE
+ENABLE_PYTHON_TRUE
+pkgpyexecdir
+pyexecdir
+pkgpythondir
+pythondir
+PYTHON_PLATFORM
+PYTHON_EXEC_PREFIX
+PYTHON_PREFIX
+PYTHON_VERSION
+PYTHON
+USE_SSE_FALSE
+USE_SSE_TRUE
+USE_SSE
+PCH_FALSE
+PCH_TRUE
+PCH
+DOXYGEN_TREEVIEW
+SUIDBUILD
+SUIDINSTALL
+GIVERTCAP
+RTCAP_FALSE
+RTCAP_TRUE
+HAVE_LASH_FALSE
+HAVE_LASH_TRUE
+LASH_LIBS
+LASH_CFLAGS
+JACK_LIBS
+JACK_CFLAGS
+UUID_LIBS
+UUID_CFLAGS
+SAMPLERATE_LIBS
+SAMPLERATE_CFLAGS
+SNDFILE_LIBS
+SNDFILE_CFLAGS
+synth_fluid
+synth_fluidsynth
+FLUIDSYNTHDIRS
+Fluidsynth_LIBS
+Fluidsynth_CFLAGS
+PKG_CONFIG
+ENABLEFLUIDSYNTH_FALSE
+ENABLEFLUIDSYNTH_TRUE
+ALSA_LIBS
+ALSA_CFLAGS
+X_EXTRA_LIBS
+X_LIBS
+X_PRE_LIBS
+X_CFLAGS
+XMKMF
+PERL
+DOTPATH
+HAVEDOT
+DOT
+DOXYGEN
+DOCBOOKTARGETS
+DOCBOOKSTYLE
+have_docbook
+NSGMLS
+JADE
+CXXCPP
+CPP
+OTOOL64
+OTOOL
+LIPO
+NMEDIT
+DSYMUTIL
+lt_ECHO
+RANLIB
+AR
+OBJDUMP
+LN_S
+NM
+ac_ct_DUMPBIN
+DUMPBIN
+LD
+FGREP
+EGREP
+GREP
+SED
+am__fastdepCC_FALSE
+am__fastdepCC_TRUE
+CCDEPMODE
+ac_ct_CC
+CFLAGS
+CC
+host_os
+host_vendor
+host_cpu
+host
+build_os
+build_vendor
+build_cpu
+build
+LIBTOOL
+am__fastdepCXX_FALSE
+am__fastdepCXX_TRUE
+CXXDEPMODE
+AMDEPBACKSLASH
+AMDEP_FALSE
+AMDEP_TRUE
+am__quote
+am__include
+DEPDIR
+OBJEXT
+EXEEXT
+ac_ct_CXX
+CPPFLAGS
+LDFLAGS
+CXXFLAGS
+CXX
+INSIDE_GNOME_COMMON_FALSE
+INSIDE_GNOME_COMMON_TRUE
+am__untar
+am__tar
+AMTAR
+am__leading_dot
+SET_MAKE
+AWK
+mkdir_p
+MKDIR_P
+INSTALL_STRIP_PROGRAM
+STRIP
+install_sh
+MAKEINFO
+AUTOHEADER
+AUTOMAKE
+AUTOCONF
+ACLOCAL
+VERSION
+PACKAGE
+CYGPATH_W
+am__isrc
+INSTALL_DATA
+INSTALL_SCRIPT
+INSTALL_PROGRAM
+target_alias
+host_alias
+build_alias
+LIBS
+ECHO_T
+ECHO_N
+ECHO_C
+DEFS
+mandir
+localedir
+libdir
+psdir
+pdfdir
+dvidir
+htmldir
+infodir
+docdir
+oldincludedir
+includedir
+localstatedir
+sharedstatedir
+sysconfdir
+datadir
+datarootdir
+libexecdir
+sbindir
+bindir
+program_transform_name
+prefix
+exec_prefix
+PACKAGE_URL
+PACKAGE_BUGREPORT
+PACKAGE_STRING
+PACKAGE_VERSION
+PACKAGE_TARNAME
+PACKAGE_NAME
+PATH_SEPARATOR
+SHELL'
+ac_subst_files=''
+ac_user_opts='
+enable_option_checking
+enable_dependency_tracking
+enable_shared
+enable_static
+with_pic
+enable_fast_install
+with_gnu_ld
+enable_libtool_lock
+with_docbook_stylesheets
+with_x
+with_alsa_prefix
+with_alsa_inc_prefix
+enable_alsatest
+enable_fluidsynth
+enable_lash
+enable_rtcap
+enable_suid_install
+enable_suid_build
+enable_doxy_treeview
+enable_optimize
+enable_debug
+enable_pch
+enable_arch
+enable_sse
+with_python
+enable_vst
+enable_osc
+enable_dssi
+'
+ ac_precious_vars='build_alias
+host_alias
+target_alias
+CXX
+CXXFLAGS
+LDFLAGS
+LIBS
+CPPFLAGS
+CCC
+CC
+CFLAGS
+CPP
+CXXCPP
+DOXYGEN
+DOT
+PERL
+XMKMF
+PKG_CONFIG
+Fluidsynth_CFLAGS
+Fluidsynth_LIBS
+SNDFILE_CFLAGS
+SNDFILE_LIBS
+SAMPLERATE_CFLAGS
+SAMPLERATE_LIBS
+JACK_CFLAGS
+JACK_LIBS
+LASH_CFLAGS
+LASH_LIBS
+FST_CFLAGS
+FST_LIBS
+LO_CFLAGS
+LO_LIBS'
+
+
+# Initialize some variables set by options.
+ac_init_help=
+ac_init_version=false
+ac_unrecognized_opts=
+ac_unrecognized_sep=
+# The variables have the same names as the options, with
+# dashes changed to underlines.
+cache_file=/dev/null
+exec_prefix=NONE
+no_create=
+no_recursion=
+prefix=NONE
+program_prefix=NONE
+program_suffix=NONE
+program_transform_name=s,x,x,
+silent=
+site=
+srcdir=
+verbose=
+x_includes=NONE
+x_libraries=NONE
+
+# Installation directory options.
+# These are left unexpanded so users can "make install exec_prefix=/foo"
+# and all the variables that are supposed to be based on exec_prefix
+# by default will actually change.
+# Use braces instead of parens because sh, perl, etc. also accept them.
+# (The list follows the same order as the GNU Coding Standards.)
+bindir='${exec_prefix}/bin'
+sbindir='${exec_prefix}/sbin'
+libexecdir='${exec_prefix}/libexec'
+datarootdir='${prefix}/share'
+datadir='${datarootdir}'
+sysconfdir='${prefix}/etc'
+sharedstatedir='${prefix}/com'
+localstatedir='${prefix}/var'
+includedir='${prefix}/include'
+oldincludedir='/usr/include'
+docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
+infodir='${datarootdir}/info'
+htmldir='${docdir}'
+dvidir='${docdir}'
+pdfdir='${docdir}'
+psdir='${docdir}'
+libdir='${exec_prefix}/lib'
+localedir='${datarootdir}/locale'
+mandir='${datarootdir}/man'
+
+ac_prev=
+ac_dashdash=
+for ac_option
+do
+ # If the previous option needs an argument, assign it.
+ if test -n "$ac_prev"; then
+ eval $ac_prev=\$ac_option
+ ac_prev=
+ continue
+ fi
+
+ case $ac_option in
+ *=*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
+ *) ac_optarg=yes ;;
+ esac
+
+ # Accept the important Cygnus configure options, so we can diagnose typos.
+
+ case $ac_dashdash$ac_option in
+ --)
+ ac_dashdash=yes ;;
+
+ -bindir | --bindir | --bindi | --bind | --bin | --bi)
+ ac_prev=bindir ;;
+ -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
+ bindir=$ac_optarg ;;
+
+ -build | --build | --buil | --bui | --bu)
+ ac_prev=build_alias ;;
+ -build=* | --build=* | --buil=* | --bui=* | --bu=*)
+ build_alias=$ac_optarg ;;
+
+ -cache-file | --cache-file | --cache-fil | --cache-fi \
+ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
+ ac_prev=cache_file ;;
+ -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
+ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
+ cache_file=$ac_optarg ;;
+
+ --config-cache | -C)
+ cache_file=config.cache ;;
+
+ -datadir | --datadir | --datadi | --datad)
+ ac_prev=datadir ;;
+ -datadir=* | --datadir=* | --datadi=* | --datad=*)
+ datadir=$ac_optarg ;;
+
+ -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \
+ | --dataroo | --dataro | --datar)
+ ac_prev=datarootdir ;;
+ -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \
+ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*)
+ datarootdir=$ac_optarg ;;
+
+ -disable-* | --disable-*)
+ ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+ as_fn_error "invalid feature name: $ac_useropt"
+ ac_useropt_orig=$ac_useropt
+ ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+ case $ac_user_opts in
+ *"
+"enable_$ac_useropt"
+"*) ;;
+ *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig"
+ ac_unrecognized_sep=', ';;
+ esac
+ eval enable_$ac_useropt=no ;;
+
+ -docdir | --docdir | --docdi | --doc | --do)
+ ac_prev=docdir ;;
+ -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*)
+ docdir=$ac_optarg ;;
+
+ -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv)
+ ac_prev=dvidir ;;
+ -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*)
+ dvidir=$ac_optarg ;;
+
+ -enable-* | --enable-*)
+ ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+ as_fn_error "invalid feature name: $ac_useropt"
+ ac_useropt_orig=$ac_useropt
+ ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+ case $ac_user_opts in
+ *"
+"enable_$ac_useropt"
+"*) ;;
+ *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig"
+ ac_unrecognized_sep=', ';;
+ esac
+ eval enable_$ac_useropt=\$ac_optarg ;;
+
+ -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
+ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
+ | --exec | --exe | --ex)
+ ac_prev=exec_prefix ;;
+ -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
+ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
+ | --exec=* | --exe=* | --ex=*)
+ exec_prefix=$ac_optarg ;;
+
+ -gas | --gas | --ga | --g)
+ # Obsolete; use --with-gas.
+ with_gas=yes ;;
+
+ -help | --help | --hel | --he | -h)
+ ac_init_help=long ;;
+ -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
+ ac_init_help=recursive ;;
+ -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
+ ac_init_help=short ;;
+
+ -host | --host | --hos | --ho)
+ ac_prev=host_alias ;;
+ -host=* | --host=* | --hos=* | --ho=*)
+ host_alias=$ac_optarg ;;
+
+ -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht)
+ ac_prev=htmldir ;;
+ -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \
+ | --ht=*)
+ htmldir=$ac_optarg ;;
+
+ -includedir | --includedir | --includedi | --included | --include \
+ | --includ | --inclu | --incl | --inc)
+ ac_prev=includedir ;;
+ -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
+ | --includ=* | --inclu=* | --incl=* | --inc=*)
+ includedir=$ac_optarg ;;
+
+ -infodir | --infodir | --infodi | --infod | --info | --inf)
+ ac_prev=infodir ;;
+ -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
+ infodir=$ac_optarg ;;
+
+ -libdir | --libdir | --libdi | --libd)
+ ac_prev=libdir ;;
+ -libdir=* | --libdir=* | --libdi=* | --libd=*)
+ libdir=$ac_optarg ;;
+
+ -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
+ | --libexe | --libex | --libe)
+ ac_prev=libexecdir ;;
+ -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
+ | --libexe=* | --libex=* | --libe=*)
+ libexecdir=$ac_optarg ;;
+
+ -localedir | --localedir | --localedi | --localed | --locale)
+ ac_prev=localedir ;;
+ -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*)
+ localedir=$ac_optarg ;;
+
+ -localstatedir | --localstatedir | --localstatedi | --localstated \
+ | --localstate | --localstat | --localsta | --localst | --locals)
+ ac_prev=localstatedir ;;
+ -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
+ | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*)
+ localstatedir=$ac_optarg ;;
+
+ -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
+ ac_prev=mandir ;;
+ -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
+ mandir=$ac_optarg ;;
+
+ -nfp | --nfp | --nf)
+ # Obsolete; use --without-fp.
+ with_fp=no ;;
+
+ -no-create | --no-create | --no-creat | --no-crea | --no-cre \
+ | --no-cr | --no-c | -n)
+ no_create=yes ;;
+
+ -no-recursion | --no-recursion | --no-recursio | --no-recursi \
+ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
+ no_recursion=yes ;;
+
+ -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
+ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
+ | --oldin | --oldi | --old | --ol | --o)
+ ac_prev=oldincludedir ;;
+ -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
+ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
+ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
+ oldincludedir=$ac_optarg ;;
+
+ -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
+ ac_prev=prefix ;;
+ -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
+ prefix=$ac_optarg ;;
+
+ -program-prefix | --program-prefix | --program-prefi | --program-pref \
+ | --program-pre | --program-pr | --program-p)
+ ac_prev=program_prefix ;;
+ -program-prefix=* | --program-prefix=* | --program-prefi=* \
+ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
+ program_prefix=$ac_optarg ;;
+
+ -program-suffix | --program-suffix | --program-suffi | --program-suff \
+ | --program-suf | --program-su | --program-s)
+ ac_prev=program_suffix ;;
+ -program-suffix=* | --program-suffix=* | --program-suffi=* \
+ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
+ program_suffix=$ac_optarg ;;
+
+ -program-transform-name | --program-transform-name \
+ | --program-transform-nam | --program-transform-na \
+ | --program-transform-n | --program-transform- \
+ | --program-transform | --program-transfor \
+ | --program-transfo | --program-transf \
+ | --program-trans | --program-tran \
+ | --progr-tra | --program-tr | --program-t)
+ ac_prev=program_transform_name ;;
+ -program-transform-name=* | --program-transform-name=* \
+ | --program-transform-nam=* | --program-transform-na=* \
+ | --program-transform-n=* | --program-transform-=* \
+ | --program-transform=* | --program-transfor=* \
+ | --program-transfo=* | --program-transf=* \
+ | --program-trans=* | --program-tran=* \
+ | --progr-tra=* | --program-tr=* | --program-t=*)
+ program_transform_name=$ac_optarg ;;
+
+ -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd)
+ ac_prev=pdfdir ;;
+ -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*)
+ pdfdir=$ac_optarg ;;
+
+ -psdir | --psdir | --psdi | --psd | --ps)
+ ac_prev=psdir ;;
+ -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*)
+ psdir=$ac_optarg ;;
+
+ -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+ | -silent | --silent | --silen | --sile | --sil)
+ silent=yes ;;
+
+ -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
+ ac_prev=sbindir ;;
+ -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
+ | --sbi=* | --sb=*)
+ sbindir=$ac_optarg ;;
+
+ -sharedstatedir | --sharedstatedir | --sharedstatedi \
+ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
+ | --sharedst | --shareds | --shared | --share | --shar \
+ | --sha | --sh)
+ ac_prev=sharedstatedir ;;
+ -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
+ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
+ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
+ | --sha=* | --sh=*)
+ sharedstatedir=$ac_optarg ;;
+
+ -site | --site | --sit)
+ ac_prev=site ;;
+ -site=* | --site=* | --sit=*)
+ site=$ac_optarg ;;
+
+ -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
+ ac_prev=srcdir ;;
+ -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
+ srcdir=$ac_optarg ;;
+
+ -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
+ | --syscon | --sysco | --sysc | --sys | --sy)
+ ac_prev=sysconfdir ;;
+ -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
+ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
+ sysconfdir=$ac_optarg ;;
+
+ -target | --target | --targe | --targ | --tar | --ta | --t)
+ ac_prev=target_alias ;;
+ -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
+ target_alias=$ac_optarg ;;
+
+ -v | -verbose | --verbose | --verbos | --verbo | --verb)
+ verbose=yes ;;
+
+ -version | --version | --versio | --versi | --vers | -V)
+ ac_init_version=: ;;
+
+ -with-* | --with-*)
+ ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+ as_fn_error "invalid package name: $ac_useropt"
+ ac_useropt_orig=$ac_useropt
+ ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+ case $ac_user_opts in
+ *"
+"with_$ac_useropt"
+"*) ;;
+ *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig"
+ ac_unrecognized_sep=', ';;
+ esac
+ eval with_$ac_useropt=\$ac_optarg ;;
+
+ -without-* | --without-*)
+ ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+ as_fn_error "invalid package name: $ac_useropt"
+ ac_useropt_orig=$ac_useropt
+ ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+ case $ac_user_opts in
+ *"
+"with_$ac_useropt"
+"*) ;;
+ *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig"
+ ac_unrecognized_sep=', ';;
+ esac
+ eval with_$ac_useropt=no ;;
+
+ --x)
+ # Obsolete; use --with-x.
+ with_x=yes ;;
+
+ -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
+ | --x-incl | --x-inc | --x-in | --x-i)
+ ac_prev=x_includes ;;
+ -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
+ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
+ x_includes=$ac_optarg ;;
+
+ -x-libraries | --x-libraries | --x-librarie | --x-librari \
+ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
+ ac_prev=x_libraries ;;
+ -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
+ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
+ x_libraries=$ac_optarg ;;
+
+ -*) as_fn_error "unrecognized option: \`$ac_option'
+Try \`$0 --help' for more information."
+ ;;
+
+ *=*)
+ ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
+ # Reject names that are not valid shell variable names.
+ case $ac_envvar in #(
+ '' | [0-9]* | *[!_$as_cr_alnum]* )
+ as_fn_error "invalid variable name: \`$ac_envvar'" ;;
+ esac
+ eval $ac_envvar=\$ac_optarg
+ export $ac_envvar ;;
+
+ *)
+ # FIXME: should be removed in autoconf 3.0.
+ $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2
+ expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
+ $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2
+ : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}
+ ;;
+
+ esac
+done
+
+if test -n "$ac_prev"; then
+ ac_option=--`echo $ac_prev | sed 's/_/-/g'`
+ as_fn_error "missing argument to $ac_option"
+fi
+
+if test -n "$ac_unrecognized_opts"; then
+ case $enable_option_checking in
+ no) ;;
+ fatal) as_fn_error "unrecognized options: $ac_unrecognized_opts" ;;
+ *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
+ esac
+fi
+
+# Check all directory arguments for consistency.
+for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \
+ datadir sysconfdir sharedstatedir localstatedir includedir \
+ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
+ libdir localedir mandir
+do
+ eval ac_val=\$$ac_var
+ # Remove trailing slashes.
+ case $ac_val in
+ */ )
+ ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'`
+ eval $ac_var=\$ac_val;;
+ esac
+ # Be sure to have absolute directory names.
+ case $ac_val in
+ [\\/$]* | ?:[\\/]* ) continue;;
+ NONE | '' ) case $ac_var in *prefix ) continue;; esac;;
+ esac
+ as_fn_error "expected an absolute directory name for --$ac_var: $ac_val"
+done
+
+# There might be people who depend on the old broken behavior: `$host'
+# used to hold the argument of --host etc.
+# FIXME: To remove some day.
+build=$build_alias
+host=$host_alias
+target=$target_alias
+
+# FIXME: To remove some day.
+if test "x$host_alias" != x; then
+ if test "x$build_alias" = x; then
+ cross_compiling=maybe
+ $as_echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host.
+ If a cross compiler is detected then cross compile mode will be used." >&2
+ elif test "x$build_alias" != "x$host_alias"; then
+ cross_compiling=yes
+ fi
+fi
+
+ac_tool_prefix=
+test -n "$host_alias" && ac_tool_prefix=$host_alias-
+
+test "$silent" = yes && exec 6>/dev/null
+
+
+ac_pwd=`pwd` && test -n "$ac_pwd" &&
+ac_ls_di=`ls -di .` &&
+ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||
+ as_fn_error "working directory cannot be determined"
+test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
+ as_fn_error "pwd does not report name of working directory"
+
+
+# Find the source files, if location was not specified.
+if test -z "$srcdir"; then
+ ac_srcdir_defaulted=yes
+ # Try the directory containing this script, then the parent directory.
+ ac_confdir=`$as_dirname -- "$as_myself" ||
+$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$as_myself" : 'X\(//\)[^/]' \| \
+ X"$as_myself" : 'X\(//\)$' \| \
+ X"$as_myself" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$as_myself" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ srcdir=$ac_confdir
+ if test ! -r "$srcdir/$ac_unique_file"; then
+ srcdir=..
+ fi
+else
+ ac_srcdir_defaulted=no
+fi
+if test ! -r "$srcdir/$ac_unique_file"; then
+ test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."
+ as_fn_error "cannot find sources ($ac_unique_file) in $srcdir"
+fi
+ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"
+ac_abs_confdir=`(
+ cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error "$ac_msg"
+ pwd)`
+# When building in place, set srcdir=.
+if test "$ac_abs_confdir" = "$ac_pwd"; then
+ srcdir=.
+fi
+# Remove unnecessary trailing slashes from srcdir.
+# Double slashes in file names in object file debugging info
+# mess up M-x gdb in Emacs.
+case $srcdir in
+*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;;
+esac
+for ac_var in $ac_precious_vars; do
+ eval ac_env_${ac_var}_set=\${${ac_var}+set}
+ eval ac_env_${ac_var}_value=\$${ac_var}
+ eval ac_cv_env_${ac_var}_set=\${${ac_var}+set}
+ eval ac_cv_env_${ac_var}_value=\$${ac_var}
+done
+
+#
+# Report the --help message.
+#
+if test "$ac_init_help" = "long"; then
+ # Omit some internal or obsolete options to make the list less imposing.
+ # This message is too long to be a string in the A/UX 3.1 sh.
+ cat <<_ACEOF
+\`configure' configures MusE 1.1 to adapt to many kinds of systems.
+
+Usage: $0 [OPTION]... [VAR=VALUE]...
+
+To assign environment variables (e.g., CC, CFLAGS...), specify them as
+VAR=VALUE. See below for descriptions of some of the useful variables.
+
+Defaults for the options are specified in brackets.
+
+Configuration:
+ -h, --help display this help and exit
+ --help=short display options specific to this package
+ --help=recursive display the short help of all the included packages
+ -V, --version display version information and exit
+ -q, --quiet, --silent do not print \`checking...' messages
+ --cache-file=FILE cache test results in FILE [disabled]
+ -C, --config-cache alias for \`--cache-file=config.cache'
+ -n, --no-create do not create output files
+ --srcdir=DIR find the sources in DIR [configure dir or \`..']
+
+Installation directories:
+ --prefix=PREFIX install architecture-independent files in PREFIX
+ @<:@@S|@ac_default_prefix@:>@
+ --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
+ @<:@PREFIX@:>@
+
+By default, \`make install' will install all the files in
+\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify
+an installation prefix other than \`$ac_default_prefix' using \`--prefix',
+for instance \`--prefix=\$HOME'.
+
+For better control, use the options below.
+
+Fine tuning of the installation directories:
+ --bindir=DIR user executables [EPREFIX/bin]
+ --sbindir=DIR system admin executables [EPREFIX/sbin]
+ --libexecdir=DIR program executables [EPREFIX/libexec]
+ --sysconfdir=DIR read-only single-machine data [PREFIX/etc]
+ --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
+ --localstatedir=DIR modifiable single-machine data [PREFIX/var]
+ --libdir=DIR object code libraries [EPREFIX/lib]
+ --includedir=DIR C header files [PREFIX/include]
+ --oldincludedir=DIR C header files for non-gcc [/usr/include]
+ --datarootdir=DIR read-only arch.-independent data root [PREFIX/share]
+ --datadir=DIR read-only architecture-independent data [DATAROOTDIR]
+ --infodir=DIR info documentation [DATAROOTDIR/info]
+ --localedir=DIR locale-dependent data [DATAROOTDIR/locale]
+ --mandir=DIR man documentation [DATAROOTDIR/man]
+ --docdir=DIR documentation root @<:@DATAROOTDIR/doc/muse@:>@
+ --htmldir=DIR html documentation [DOCDIR]
+ --dvidir=DIR dvi documentation [DOCDIR]
+ --pdfdir=DIR pdf documentation [DOCDIR]
+ --psdir=DIR ps documentation [DOCDIR]
+_ACEOF
+
+ cat <<\_ACEOF
+
+Program names:
+ --program-prefix=PREFIX prepend PREFIX to installed program names
+ --program-suffix=SUFFIX append SUFFIX to installed program names
+ --program-transform-name=PROGRAM run sed PROGRAM on installed program names
+
+X features:
+ --x-includes=DIR X include files are in DIR
+ --x-libraries=DIR X library files are in DIR
+
+System types:
+ --build=BUILD configure for building on BUILD [guessed]
+ --host=HOST cross-compile to build programs to run on HOST [BUILD]
+_ACEOF
+fi
+
+if test -n "$ac_init_help"; then
+ case $ac_init_help in
+ short | recursive ) echo "Configuration of MusE 1.1:";;
+ esac
+ cat <<\_ACEOF
+
+Optional Features:
+ --disable-option-checking ignore unrecognized --enable/--with options
+ --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
+ --enable-FEATURE[=ARG] include FEATURE [ARG=yes]
+ --disable-dependency-tracking speeds up one-time build
+ --enable-dependency-tracking do not reject slow dependency extractors
+ --enable-shared@<:@=PKGS@:>@ build shared libraries @<:@default=yes@:>@
+ --enable-static@<:@=PKGS@:>@ build static libraries @<:@default=yes@:>@
+ --enable-fast-install@<:@=PKGS@:>@
+ optimize for fast installation @<:@default=yes@:>@
+ --disable-libtool-lock avoid locking (might break parallel builds)
+ --disable-alsatest do not try to compile and run a test alsa program
+ --disable-fluidsynth disable fluidsynth softsynth plugin
+ --enable-lash enable LASH support
+ --enable-rtcap (deprecated) use Tommi Ilmonen's "givertcap" to give
+ realtime capabilities
+ --enable-suid-install (deprecated) install MusE setuid root (with kernel 2.6, use realtime-lsm instead)
+ --enable-suid-build (deprecated) build MusE setuid root(with kernel 2.6, use realtime-lsm instead)
+ --disable-doxy-treeview stop Doxygen from generating java-ified
+ treeview menus in its HTML output
+ --enable-optimize ask the compiler for its best optimizations (possibly only i386)
+ --enable-debug disable optimizations
+ --enable-pch enable precompiled headers (gcc 3.4 required)
+ --enable-arch=ARCH use -march=ARCH and -mtune=ARCH argument to CXX
+ choose from any supported gcc architecture such as:
+ 386, 486, 586, 686, pentium, pentiumpro, k6, athlon...
+ --enable-sse enable SSE optimizations
+ --enable-vst (deprecated, use dssi) build VST/win support. (disabled by default)
+ --enable-osc build OSC support. (disabled by default)
+ --enable-dssi is also recommended!
+ --enable-dssi build DSSI + DSSI-Vst support. (disabled by default)
+ --enable-osc is also recommended!
+
+Optional Packages:
+ --with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
+ --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
+ --with-pic try to use only PIC/non-PIC objects @<:@default=use
+ both@:>@
+ --with-gnu-ld assume the C compiler uses GNU ld @<:@default=no@:>@
+ --with-docbook-stylesheets=DIR use DIR/html/docbook.dsl
+ --with-x use the X Window System
+ --with-alsa-prefix=PFX prefix where alsa library is installed (optional)
+ --with-alsa-inc-prefix=PFX prefix where include libraries are (optional)
+ --enable-python Build python bindings (on)
+
+Some influential environment variables:
+ CXX C++ compiler command
+ CXXFLAGS C++ compiler flags
+ LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries in a
+ nonstandard directory <lib dir>
+ LIBS libraries to pass to the linker, e.g. -l<library>
+ CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if
+ you have headers in a nonstandard directory <include dir>
+ CC C compiler command
+ CFLAGS C compiler flags
+ CPP C preprocessor
+ CXXCPP C++ preprocessor
+ DOXYGEN Doxygen
+ DOT The "dot" program from graphviz
+ PERL Perl
+ XMKMF Path to xmkmf, Makefile generator for X Window System
+ PKG_CONFIG path to pkg-config utility
+ Fluidsynth_CFLAGS
+ C compiler flags for Fluidsynth, overriding pkg-config
+ Fluidsynth_LIBS
+ linker flags for Fluidsynth, overriding pkg-config
+ SNDFILE_CFLAGS
+ C compiler flags for SNDFILE, overriding pkg-config
+ SNDFILE_LIBS
+ linker flags for SNDFILE, overriding pkg-config
+ SAMPLERATE_CFLAGS
+ C compiler flags for SAMPLERATE, overriding pkg-config
+ SAMPLERATE_LIBS
+ linker flags for SAMPLERATE, overriding pkg-config
+ JACK_CFLAGS C compiler flags for JACK, overriding pkg-config
+ JACK_LIBS linker flags for JACK, overriding pkg-config
+ LASH_CFLAGS C compiler flags for LASH, overriding pkg-config
+ LASH_LIBS linker flags for LASH, overriding pkg-config
+ FST_CFLAGS C compiler flags for FST, overriding pkg-config
+ FST_LIBS linker flags for FST, overriding pkg-config
+ LO_CFLAGS C compiler flags for LO, overriding pkg-config
+ LO_LIBS linker flags for LO, overriding pkg-config
+
+Use these variables to override the choices made by `configure' or to help
+it to find libraries and programs with nonstandard names/locations.
+
+Report bugs to the package provider.
+_ACEOF
+ac_status=$?
+fi
+
+if test "$ac_init_help" = "recursive"; then
+ # If there are subdirs, report their specific --help.
+ for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
+ test -d "$ac_dir" ||
+ { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } ||
+ continue
+ ac_builddir=.
+
+case "$ac_dir" in
+.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
+*)
+ ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
+ # A ".." for each directory in $ac_dir_suffix.
+ ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
+ case $ac_top_builddir_sub in
+ "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
+ *) ac_top_build_prefix=$ac_top_builddir_sub/ ;;
+ esac ;;
+esac
+ac_abs_top_builddir=$ac_pwd
+ac_abs_builddir=$ac_pwd$ac_dir_suffix
+# for backward compatibility:
+ac_top_builddir=$ac_top_build_prefix
+
+case $srcdir in
+ .) # We are building in place.
+ ac_srcdir=.
+ ac_top_srcdir=$ac_top_builddir_sub
+ ac_abs_top_srcdir=$ac_pwd ;;
+ [\\/]* | ?:[\\/]* ) # Absolute name.
+ ac_srcdir=$srcdir$ac_dir_suffix;
+ ac_top_srcdir=$srcdir
+ ac_abs_top_srcdir=$srcdir ;;
+ *) # Relative name.
+ ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
+ ac_top_srcdir=$ac_top_build_prefix$srcdir
+ ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
+esac
+ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
+
+ cd "$ac_dir" || { ac_status=$?; continue; }
+ # Check for guested configure.
+ if test -f "$ac_srcdir/configure.gnu"; then
+ echo &&
+ $SHELL "$ac_srcdir/configure.gnu" --help=recursive
+ elif test -f "$ac_srcdir/configure"; then
+ echo &&
+ $SHELL "$ac_srcdir/configure" --help=recursive
+ else
+ $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
+ fi || ac_status=$?
+ cd "$ac_pwd" || { ac_status=$?; break; }
+ done
+fi
+
+test -n "$ac_init_help" && exit $ac_status
+if $ac_init_version; then
+ cat <<\_ACEOF
+MusE configure 1.1
+generated by GNU Autoconf 2.65
+
+Copyright (C) 2009 Free Software Foundation, Inc.
+This configure script is free software; the Free Software Foundation
+gives unlimited permission to copy, distribute and modify it.
+_ACEOF
+ exit
+fi
+
+## ------------------------ ##
+## Autoconf initialization. ##
+## ------------------------ ##
+
+@%:@ ac_fn_cxx_try_compile LINENO
+@%:@ ----------------------------
+@%:@ Try to compile conftest.@S|@ac_ext, and return whether this succeeded.
+ac_fn_cxx_try_compile ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ rm -f conftest.$ac_objext
+ if { { ac_try="$ac_compile"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_compile") 2>conftest.err
+ ac_status=$?
+ if test -s conftest.err; then
+ grep -v '^ *+' conftest.err >conftest.er1
+ cat conftest.er1 >&5
+ mv -f conftest.er1 conftest.err
+ fi
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && {
+ test -z "$ac_cxx_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest.$ac_objext; then :
+ ac_retval=0
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_retval=1
+fi
+ eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+ as_fn_set_status $ac_retval
+
+} @%:@ ac_fn_cxx_try_compile
+
+@%:@ ac_fn_c_try_compile LINENO
+@%:@ --------------------------
+@%:@ Try to compile conftest.@S|@ac_ext, and return whether this succeeded.
+ac_fn_c_try_compile ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ rm -f conftest.$ac_objext
+ if { { ac_try="$ac_compile"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_compile") 2>conftest.err
+ ac_status=$?
+ if test -s conftest.err; then
+ grep -v '^ *+' conftest.err >conftest.er1
+ cat conftest.er1 >&5
+ mv -f conftest.er1 conftest.err
+ fi
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && {
+ test -z "$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest.$ac_objext; then :
+ ac_retval=0
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_retval=1
+fi
+ eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+ as_fn_set_status $ac_retval
+
+} @%:@ ac_fn_c_try_compile
+
+@%:@ ac_fn_c_try_link LINENO
+@%:@ -----------------------
+@%:@ Try to link conftest.@S|@ac_ext, and return whether this succeeded.
+ac_fn_c_try_link ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ rm -f conftest.$ac_objext conftest$ac_exeext
+ if { { ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_link") 2>conftest.err
+ ac_status=$?
+ if test -s conftest.err; then
+ grep -v '^ *+' conftest.err >conftest.er1
+ cat conftest.er1 >&5
+ mv -f conftest.er1 conftest.err
+ fi
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && {
+ test -z "$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest$ac_exeext && {
+ test "$cross_compiling" = yes ||
+ $as_test_x conftest$ac_exeext
+ }; then :
+ ac_retval=0
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_retval=1
+fi
+ # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information
+ # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would
+ # interfere with the next link command; also delete a directory that is
+ # left behind by Apple's compiler. We do this before executing the actions.
+ rm -rf conftest.dSYM conftest_ipa8_conftest.oo
+ eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+ as_fn_set_status $ac_retval
+
+} @%:@ ac_fn_c_try_link
+
+@%:@ ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES
+@%:@ -------------------------------------------------------
+@%:@ Tests whether HEADER exists and can be compiled using the include files in
+@%:@ INCLUDES, setting the cache variable VAR accordingly.
+ac_fn_c_check_header_compile ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$4
+@%:@include <$2>
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ eval "$3=yes"
+else
+ eval "$3=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$3
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+ eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+
+} @%:@ ac_fn_c_check_header_compile
+
+@%:@ ac_fn_c_try_cpp LINENO
+@%:@ ----------------------
+@%:@ Try to preprocess conftest.@S|@ac_ext, and return whether this succeeded.
+ac_fn_c_try_cpp ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ if { { ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err
+ ac_status=$?
+ if test -s conftest.err; then
+ grep -v '^ *+' conftest.err >conftest.er1
+ cat conftest.er1 >&5
+ mv -f conftest.er1 conftest.err
+ fi
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } >/dev/null && {
+ test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ }; then :
+ ac_retval=0
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_retval=1
+fi
+ eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+ as_fn_set_status $ac_retval
+
+} @%:@ ac_fn_c_try_cpp
+
+@%:@ ac_fn_c_try_run LINENO
+@%:@ ----------------------
+@%:@ Try to link conftest.@S|@ac_ext, and return whether this succeeded. Assumes
+@%:@ that executables *can* be run.
+ac_fn_c_try_run ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ if { { ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_link") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && { ac_try='./conftest$ac_exeext'
+ { { case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_try") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; }; then :
+ ac_retval=0
+else
+ $as_echo "$as_me: program exited with status $ac_status" >&5
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_retval=$ac_status
+fi
+ rm -rf conftest.dSYM conftest_ipa8_conftest.oo
+ eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+ as_fn_set_status $ac_retval
+
+} @%:@ ac_fn_c_try_run
+
+@%:@ ac_fn_c_check_func LINENO FUNC VAR
+@%:@ ----------------------------------
+@%:@ Tests whether FUNC exists, setting the cache variable VAR accordingly
+ac_fn_c_check_func ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+/* Define $2 to an innocuous variant, in case <limits.h> declares $2.
+ For example, HP-UX 11i <limits.h> declares gettimeofday. */
+#define $2 innocuous_$2
+
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char $2 (); below.
+ Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ <limits.h> exists even on freestanding compilers. */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef $2
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char $2 ();
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined __stub_$2 || defined __stub___$2
+choke me
+#endif
+
+int
+main ()
+{
+return $2 ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ eval "$3=yes"
+else
+ eval "$3=no"
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+fi
+eval ac_res=\$$3
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+ eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+
+} @%:@ ac_fn_c_check_func
+
+@%:@ ac_fn_cxx_try_cpp LINENO
+@%:@ ------------------------
+@%:@ Try to preprocess conftest.@S|@ac_ext, and return whether this succeeded.
+ac_fn_cxx_try_cpp ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ if { { ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err
+ ac_status=$?
+ if test -s conftest.err; then
+ grep -v '^ *+' conftest.err >conftest.er1
+ cat conftest.er1 >&5
+ mv -f conftest.er1 conftest.err
+ fi
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } >/dev/null && {
+ test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" ||
+ test ! -s conftest.err
+ }; then :
+ ac_retval=0
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_retval=1
+fi
+ eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+ as_fn_set_status $ac_retval
+
+} @%:@ ac_fn_cxx_try_cpp
+
+@%:@ ac_fn_cxx_try_link LINENO
+@%:@ -------------------------
+@%:@ Try to link conftest.@S|@ac_ext, and return whether this succeeded.
+ac_fn_cxx_try_link ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ rm -f conftest.$ac_objext conftest$ac_exeext
+ if { { ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_link") 2>conftest.err
+ ac_status=$?
+ if test -s conftest.err; then
+ grep -v '^ *+' conftest.err >conftest.er1
+ cat conftest.er1 >&5
+ mv -f conftest.er1 conftest.err
+ fi
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && {
+ test -z "$ac_cxx_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest$ac_exeext && {
+ test "$cross_compiling" = yes ||
+ $as_test_x conftest$ac_exeext
+ }; then :
+ ac_retval=0
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_retval=1
+fi
+ # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information
+ # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would
+ # interfere with the next link command; also delete a directory that is
+ # left behind by Apple's compiler. We do this before executing the actions.
+ rm -rf conftest.dSYM conftest_ipa8_conftest.oo
+ eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+ as_fn_set_status $ac_retval
+
+} @%:@ ac_fn_cxx_try_link
+
+@%:@ ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES
+@%:@ -------------------------------------------------------
+@%:@ Tests whether HEADER exists, giving a warning if it cannot be compiled using
+@%:@ the include files in INCLUDES and setting the cache variable VAR
+@%:@ accordingly.
+ac_fn_c_check_header_mongrel ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
+ $as_echo_n "(cached) " >&6
+fi
+eval ac_res=\$$3
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+else
+ # Is the header compilable?
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5
+$as_echo_n "checking $2 usability... " >&6; }
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$4
+@%:@include <$2>
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_header_compiler=yes
+else
+ ac_header_compiler=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5
+$as_echo "$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5
+$as_echo_n "checking $2 presence... " >&6; }
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+@%:@include <$2>
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+ ac_header_preproc=yes
+else
+ ac_header_preproc=no
+fi
+rm -f conftest.err conftest.$ac_ext
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5
+$as_echo "$ac_header_preproc" >&6; }
+
+# So? What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #((
+ yes:no: )
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5
+$as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
+$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
+ ;;
+ no:yes:* )
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5
+$as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5
+$as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5
+$as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5
+$as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
+$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
+ ;;
+esac
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
+ $as_echo_n "(cached) " >&6
+else
+ eval "$3=\$ac_header_compiler"
+fi
+eval ac_res=\$$3
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+fi
+ eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+
+} @%:@ ac_fn_c_check_header_mongrel
+cat >config.log <<_ACEOF
+This file contains any messages produced by compilers while
+running configure, to aid debugging if configure makes a mistake.
+
+It was created by MusE $as_me 1.1, which was
+generated by GNU Autoconf 2.65. Invocation command line was
+
+ $ $0 $@
+
+_ACEOF
+exec 5>>config.log
+{
+cat <<_ASUNAME
+## --------- ##
+## Platform. ##
+## --------- ##
+
+hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
+uname -m = `(uname -m) 2>/dev/null || echo unknown`
+uname -r = `(uname -r) 2>/dev/null || echo unknown`
+uname -s = `(uname -s) 2>/dev/null || echo unknown`
+uname -v = `(uname -v) 2>/dev/null || echo unknown`
+
+/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
+/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown`
+
+/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown`
+/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown`
+/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
+/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown`
+/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown`
+/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown`
+/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown`
+
+_ASUNAME
+
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ $as_echo "PATH: $as_dir"
+ done
+IFS=$as_save_IFS
+
+} >&5
+
+cat >&5 <<_ACEOF
+
+
+## ----------- ##
+## Core tests. ##
+## ----------- ##
+
+_ACEOF
+
+
+# Keep a trace of the command line.
+# Strip out --no-create and --no-recursion so they do not pile up.
+# Strip out --silent because we don't want to record it for future runs.
+# Also quote any args containing shell meta-characters.
+# Make two passes to allow for proper duplicate-argument suppression.
+ac_configure_args=
+ac_configure_args0=
+ac_configure_args1=
+ac_must_keep_next=false
+for ac_pass in 1 2
+do
+ for ac_arg
+ do
+ case $ac_arg in
+ -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;
+ -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+ | -silent | --silent | --silen | --sile | --sil)
+ continue ;;
+ *\'*)
+ ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
+ esac
+ case $ac_pass in
+ 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;;
+ 2)
+ as_fn_append ac_configure_args1 " '$ac_arg'"
+ if test $ac_must_keep_next = true; then
+ ac_must_keep_next=false # Got value, back to normal.
+ else
+ case $ac_arg in
+ *=* | --config-cache | -C | -disable-* | --disable-* \
+ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
+ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
+ | -with-* | --with-* | -without-* | --without-* | --x)
+ case "$ac_configure_args0 " in
+ "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
+ esac
+ ;;
+ -* ) ac_must_keep_next=true ;;
+ esac
+ fi
+ as_fn_append ac_configure_args " '$ac_arg'"
+ ;;
+ esac
+ done
+done
+{ ac_configure_args0=; unset ac_configure_args0;}
+{ ac_configure_args1=; unset ac_configure_args1;}
+
+# When interrupted or exit'd, cleanup temporary files, and complete
+# config.log. We remove comments because anyway the quotes in there
+# would cause problems or look ugly.
+# WARNING: Use '\'' to represent an apostrophe within the trap.
+# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug.
+trap 'exit_status=$?
+ # Save into config.log some information that might help in debugging.
+ {
+ echo
+
+ cat <<\_ASBOX
+## ---------------- ##
+## Cache variables. ##
+## ---------------- ##
+_ASBOX
+ echo
+ # The following way of writing the cache mishandles newlines in values,
+(
+ for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do
+ eval ac_val=\$$ac_var
+ case $ac_val in #(
+ *${as_nl}*)
+ case $ac_var in #(
+ *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
+$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
+ esac
+ case $ac_var in #(
+ _ | IFS | as_nl) ;; #(
+ BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
+ *) { eval $ac_var=; unset $ac_var;} ;;
+ esac ;;
+ esac
+ done
+ (set) 2>&1 |
+ case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #(
+ *${as_nl}ac_space=\ *)
+ sed -n \
+ "s/'\''/'\''\\\\'\'''\''/g;
+ s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p"
+ ;; #(
+ *)
+ sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
+ ;;
+ esac |
+ sort
+)
+ echo
+
+ cat <<\_ASBOX
+## ----------------- ##
+## Output variables. ##
+## ----------------- ##
+_ASBOX
+ echo
+ for ac_var in $ac_subst_vars
+ do
+ eval ac_val=\$$ac_var
+ case $ac_val in
+ *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
+ esac
+ $as_echo "$ac_var='\''$ac_val'\''"
+ done | sort
+ echo
+
+ if test -n "$ac_subst_files"; then
+ cat <<\_ASBOX
+## ------------------- ##
+## File substitutions. ##
+## ------------------- ##
+_ASBOX
+ echo
+ for ac_var in $ac_subst_files
+ do
+ eval ac_val=\$$ac_var
+ case $ac_val in
+ *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
+ esac
+ $as_echo "$ac_var='\''$ac_val'\''"
+ done | sort
+ echo
+ fi
+
+ if test -s confdefs.h; then
+ cat <<\_ASBOX
+## ----------- ##
+## confdefs.h. ##
+## ----------- ##
+_ASBOX
+ echo
+ cat confdefs.h
+ echo
+ fi
+ test "$ac_signal" != 0 &&
+ $as_echo "$as_me: caught signal $ac_signal"
+ $as_echo "$as_me: exit $exit_status"
+ } >&5
+ rm -f core *.core core.conftest.* &&
+ rm -f -r conftest* confdefs* conf$$* $ac_clean_files &&
+ exit $exit_status
+' 0
+for ac_signal in 1 2 13 15; do
+ trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal
+done
+ac_signal=0
+
+# confdefs.h avoids OS command line length limits that DEFS can exceed.
+rm -f -r conftest* confdefs.h
+
+$as_echo "/* confdefs.h */" > confdefs.h
+
+# Predefined preprocessor variables.
+
+cat >>confdefs.h <<_ACEOF
+@%:@define PACKAGE_NAME "$PACKAGE_NAME"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+@%:@define PACKAGE_TARNAME "$PACKAGE_TARNAME"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+@%:@define PACKAGE_VERSION "$PACKAGE_VERSION"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+@%:@define PACKAGE_STRING "$PACKAGE_STRING"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+@%:@define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+@%:@define PACKAGE_URL "$PACKAGE_URL"
+_ACEOF
+
+
+# Let the site file select an alternate cache file if it wants to.
+# Prefer an explicitly selected file to automatically selected ones.
+ac_site_file1=NONE
+ac_site_file2=NONE
+if test -n "$CONFIG_SITE"; then
+ ac_site_file1=$CONFIG_SITE
+elif test "x$prefix" != xNONE; then
+ ac_site_file1=$prefix/share/config.site
+ ac_site_file2=$prefix/etc/config.site
+else
+ ac_site_file1=$ac_default_prefix/share/config.site
+ ac_site_file2=$ac_default_prefix/etc/config.site
+fi
+for ac_site_file in "$ac_site_file1" "$ac_site_file2"
+do
+ test "x$ac_site_file" = xNONE && continue
+ if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5
+$as_echo "$as_me: loading site script $ac_site_file" >&6;}
+ sed 's/^/| /' "$ac_site_file" >&5
+ . "$ac_site_file"
+ fi
+done
+
+if test -r "$cache_file"; then
+ # Some versions of bash will fail to source /dev/null (special files
+ # actually), so we avoid doing that. DJGPP emulates it as a regular file.
+ if test /dev/null != "$cache_file" && test -f "$cache_file"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5
+$as_echo "$as_me: loading cache $cache_file" >&6;}
+ case $cache_file in
+ [\\/]* | ?:[\\/]* ) . "$cache_file";;
+ *) . "./$cache_file";;
+ esac
+ fi
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5
+$as_echo "$as_me: creating cache $cache_file" >&6;}
+ >$cache_file
+fi
+
+# Check that the precious variables saved in the cache have kept the same
+# value.
+ac_cache_corrupted=false
+for ac_var in $ac_precious_vars; do
+ eval ac_old_set=\$ac_cv_env_${ac_var}_set
+ eval ac_new_set=\$ac_env_${ac_var}_set
+ eval ac_old_val=\$ac_cv_env_${ac_var}_value
+ eval ac_new_val=\$ac_env_${ac_var}_value
+ case $ac_old_set,$ac_new_set in
+ set,)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
+$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
+ ac_cache_corrupted=: ;;
+ ,set)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5
+$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
+ ac_cache_corrupted=: ;;
+ ,);;
+ *)
+ if test "x$ac_old_val" != "x$ac_new_val"; then
+ # differences in whitespace do not lead to failure.
+ ac_old_val_w=`echo x $ac_old_val`
+ ac_new_val_w=`echo x $ac_new_val`
+ if test "$ac_old_val_w" != "$ac_new_val_w"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5
+$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
+ ac_cache_corrupted=:
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5
+$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;}
+ eval $ac_var=\$ac_old_val
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5
+$as_echo "$as_me: former value: \`$ac_old_val'" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5
+$as_echo "$as_me: current value: \`$ac_new_val'" >&2;}
+ fi;;
+ esac
+ # Pass precious variables to config.status.
+ if test "$ac_new_set" = set; then
+ case $ac_new_val in
+ *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
+ *) ac_arg=$ac_var=$ac_new_val ;;
+ esac
+ case " $ac_configure_args " in
+ *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy.
+ *) as_fn_append ac_configure_args " '$ac_arg'" ;;
+ esac
+ fi
+done
+if $ac_cache_corrupted; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5
+$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;}
+ as_fn_error "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5
+fi
+## -------------------- ##
+## Main body of script. ##
+## -------------------- ##
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+
+am__api_version='1.11'
+
+ac_aux_dir=
+for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do
+ for ac_t in install-sh install.sh shtool; do
+ if test -f "$ac_dir/$ac_t"; then
+ ac_aux_dir=$ac_dir
+ ac_install_sh="$ac_aux_dir/$ac_t -c"
+ break 2
+ fi
+ done
+done
+if test -z "$ac_aux_dir"; then
+ as_fn_error "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5
+fi
+
+# These three variables are undocumented and unsupported,
+# and are intended to be withdrawn in a future Autoconf release.
+# They can cause serious problems if a builder's source tree is in a directory
+# whose full name contains unusual characters.
+ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var.
+ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var.
+ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var.
+
+
+# Find a good install program. We prefer a C program (faster),
+# so one script is as good as another. But avoid the broken or
+# incompatible versions:
+# SysV /etc/install, /usr/sbin/install
+# SunOS /usr/etc/install
+# IRIX /sbin/install
+# AIX /bin/install
+# AmigaOS /C/install, which installs bootblocks on floppy discs
+# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
+# AFS /usr/afsws/bin/install, which mishandles nonexistent args
+# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
+# OS/2's system install, which has a completely different semantic
+# ./install, which can be erroneously created by make from ./install.sh.
+# Reject install programs that cannot install multiple files.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5
+$as_echo_n "checking for a BSD-compatible install... " >&6; }
+if test -z "$INSTALL"; then
+if test "${ac_cv_path_install+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ # Account for people who put trailing slashes in PATH elements.
+case $as_dir/ in @%:@((
+ ./ | .// | /[cC]/* | \
+ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
+ ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \
+ /usr/ucb/* ) ;;
+ *)
+ # OSF1 and SCO ODT 3.0 have their own names for install.
+ # Don't use installbsd from OSF since it installs stuff as root
+ # by default.
+ for ac_prog in ginstall scoinst install; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then
+ if test $ac_prog = install &&
+ grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
+ # AIX install. It has an incompatible calling convention.
+ :
+ elif test $ac_prog = install &&
+ grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
+ # program-specific install script used by HP pwplus--don't use.
+ :
+ else
+ rm -rf conftest.one conftest.two conftest.dir
+ echo one > conftest.one
+ echo two > conftest.two
+ mkdir conftest.dir
+ if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" &&
+ test -s conftest.one && test -s conftest.two &&
+ test -s conftest.dir/conftest.one &&
+ test -s conftest.dir/conftest.two
+ then
+ ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
+ break 3
+ fi
+ fi
+ fi
+ done
+ done
+ ;;
+esac
+
+ done
+IFS=$as_save_IFS
+
+rm -rf conftest.one conftest.two conftest.dir
+
+fi
+ if test "${ac_cv_path_install+set}" = set; then
+ INSTALL=$ac_cv_path_install
+ else
+ # As a last resort, use the slow shell script. Don't cache a
+ # value for INSTALL within a source directory, because that will
+ # break other packages using the cache if that directory is
+ # removed, or if the value is a relative name.
+ INSTALL=$ac_install_sh
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5
+$as_echo "$INSTALL" >&6; }
+
+# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
+# It thinks the first close brace ends the variable substitution.
+test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
+
+test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
+
+test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5
+$as_echo_n "checking whether build environment is sane... " >&6; }
+# Just in case
+sleep 1
+echo timestamp > conftest.file
+# Reject unsafe characters in $srcdir or the absolute working directory
+# name. Accept space and tab only in the latter.
+am_lf='
+'
+case `pwd` in
+ *[\\\"\#\$\&\'\`$am_lf]*)
+ as_fn_error "unsafe absolute working directory name" "$LINENO" 5;;
+esac
+case $srcdir in
+ *[\\\"\#\$\&\'\`$am_lf\ \ ]*)
+ as_fn_error "unsafe srcdir value: \`$srcdir'" "$LINENO" 5;;
+esac
+
+# Do `set' in a subshell so we don't clobber the current shell's
+# arguments. Must try -L first in case configure is actually a
+# symlink; some systems play weird games with the mod time of symlinks
+# (eg FreeBSD returns the mod time of the symlink's containing
+# directory).
+if (
+ set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
+ if test "$*" = "X"; then
+ # -L didn't work.
+ set X `ls -t "$srcdir/configure" conftest.file`
+ fi
+ rm -f conftest.file
+ if test "$*" != "X $srcdir/configure conftest.file" \
+ && test "$*" != "X conftest.file $srcdir/configure"; then
+
+ # If neither matched, then we have a broken ls. This can happen
+ # if, for instance, CONFIG_SHELL is bash and it inherits a
+ # broken ls alias from the environment. This has actually
+ # happened. Such a system could not be considered "sane".
+ as_fn_error "ls -t appears to fail. Make sure there is not a broken
+alias in your environment" "$LINENO" 5
+ fi
+
+ test "$2" = conftest.file
+ )
+then
+ # Ok.
+ :
+else
+ as_fn_error "newly created file is older than distributed files!
+Check your system clock" "$LINENO" 5
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+test "$program_prefix" != NONE &&
+ program_transform_name="s&^&$program_prefix&;$program_transform_name"
+# Use a double $ so make ignores it.
+test "$program_suffix" != NONE &&
+ program_transform_name="s&\$&$program_suffix&;$program_transform_name"
+# Double any \ or $.
+# By default was `s,x,x', remove it if useless.
+ac_script='s/[\\$]/&&/g;s/;s,x,x,$//'
+program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"`
+
+# expand $ac_aux_dir to an absolute path
+am_aux_dir=`cd $ac_aux_dir && pwd`
+
+if test x"${MISSING+set}" != xset; then
+ case $am_aux_dir in
+ *\ * | *\ *)
+ MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;;
+ *)
+ MISSING="\${SHELL} $am_aux_dir/missing" ;;
+ esac
+fi
+# Use eval to expand $SHELL
+if eval "$MISSING --run true"; then
+ am_missing_run="$MISSING --run "
+else
+ am_missing_run=
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`missing' script is too old or missing" >&5
+$as_echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;}
+fi
+
+if test x"${install_sh}" != xset; then
+ case $am_aux_dir in
+ *\ * | *\ *)
+ install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;;
+ *)
+ install_sh="\${SHELL} $am_aux_dir/install-sh"
+ esac
+fi
+
+# Installed binaries are usually stripped using `strip' when the user
+# run `make install-strip'. However `strip' might not be the right
+# tool to use in cross-compilation environments, therefore Automake
+# will honor the `STRIP' environment variable to overrule this program.
+if test "$cross_compiling" != no; then
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
+set dummy ${ac_tool_prefix}strip; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_STRIP+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$STRIP"; then
+ ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_STRIP="${ac_tool_prefix}strip"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+STRIP=$ac_cv_prog_STRIP
+if test -n "$STRIP"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5
+$as_echo "$STRIP" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_STRIP"; then
+ ac_ct_STRIP=$STRIP
+ # Extract the first word of "strip", so it can be a program name with args.
+set dummy strip; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_STRIP"; then
+ ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_ac_ct_STRIP="strip"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
+if test -n "$ac_ct_STRIP"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5
+$as_echo "$ac_ct_STRIP" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_STRIP" = x; then
+ STRIP=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ STRIP=$ac_ct_STRIP
+ fi
+else
+ STRIP="$ac_cv_prog_STRIP"
+fi
+
+fi
+INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5
+$as_echo_n "checking for a thread-safe mkdir -p... " >&6; }
+if test -z "$MKDIR_P"; then
+ if test "${ac_cv_path_mkdir+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_prog in mkdir gmkdir; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; } || continue
+ case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #(
+ 'mkdir (GNU coreutils) '* | \
+ 'mkdir (coreutils) '* | \
+ 'mkdir (fileutils) '4.1*)
+ ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext
+ break 3;;
+ esac
+ done
+ done
+ done
+IFS=$as_save_IFS
+
+fi
+
+ test -d ./--version && rmdir ./--version
+ if test "${ac_cv_path_mkdir+set}" = set; then
+ MKDIR_P="$ac_cv_path_mkdir -p"
+ else
+ # As a last resort, use the slow shell script. Don't cache a
+ # value for MKDIR_P within a source directory, because that will
+ # break other packages using the cache if that directory is
+ # removed, or if the value is a relative name.
+ MKDIR_P="$ac_install_sh -d"
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5
+$as_echo "$MKDIR_P" >&6; }
+
+mkdir_p="$MKDIR_P"
+case $mkdir_p in
+ [\\/$]* | ?:[\\/]*) ;;
+ */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;;
+esac
+
+for ac_prog in gawk mawk nawk awk
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_AWK+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$AWK"; then
+ ac_cv_prog_AWK="$AWK" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_AWK="$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+AWK=$ac_cv_prog_AWK
+if test -n "$AWK"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5
+$as_echo "$AWK" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$AWK" && break
+done
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5
+$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
+set x ${MAKE-make}
+ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
+if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat >conftest.make <<\_ACEOF
+SHELL = /bin/sh
+all:
+ @echo '@@@%%%=$(MAKE)=@@@%%%'
+_ACEOF
+# GNU make sometimes prints "make[1]: Entering...", which would confuse us.
+case `${MAKE-make} -f conftest.make 2>/dev/null` in
+ *@@@%%%=?*=@@@%%%*)
+ eval ac_cv_prog_make_${ac_make}_set=yes;;
+ *)
+ eval ac_cv_prog_make_${ac_make}_set=no;;
+esac
+rm -f conftest.make
+fi
+if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ SET_MAKE=
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ SET_MAKE="MAKE=${MAKE-make}"
+fi
+
+rm -rf .tst 2>/dev/null
+mkdir .tst 2>/dev/null
+if test -d .tst; then
+ am__leading_dot=.
+else
+ am__leading_dot=_
+fi
+rmdir .tst 2>/dev/null
+
+if test "`cd $srcdir && pwd`" != "`pwd`"; then
+ # Use -I$(srcdir) only when $(srcdir) != ., so that make's output
+ # is not polluted with repeated "-I."
+ am__isrc=' -I$(srcdir)'
+ # test to see if srcdir already configured
+ if test -f $srcdir/config.status; then
+ as_fn_error "source directory already configured; run \"make distclean\" there first" "$LINENO" 5
+ fi
+fi
+
+# test whether we have cygpath
+if test -z "$CYGPATH_W"; then
+ if (cygpath --version) >/dev/null 2>/dev/null; then
+ CYGPATH_W='cygpath -w'
+ else
+ CYGPATH_W=echo
+ fi
+fi
+
+
+# Define the identity of the package.
+ PACKAGE='muse'
+ VERSION='1.1'
+
+
+cat >>confdefs.h <<_ACEOF
+@%:@define PACKAGE "$PACKAGE"
+_ACEOF
+
+
+cat >>confdefs.h <<_ACEOF
+@%:@define VERSION "$VERSION"
+_ACEOF
+
+# Some tools Automake needs.
+
+ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"}
+
+
+AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"}
+
+
+AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"}
+
+
+AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"}
+
+
+MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"}
+
+# We need awk for the "check" target. The system "awk" is bad on
+# some platforms.
+# Always define AMTAR for backward compatibility.
+
+AMTAR=${AMTAR-"${am_missing_run}tar"}
+
+am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'
+
+
+
+
+
+ac_config_headers="$ac_config_headers config.h"
+
+### AM_MAINTAINER_MODE
+
+ if test x = y; then
+ INSIDE_GNOME_COMMON_TRUE=
+ INSIDE_GNOME_COMMON_FALSE='#'
+else
+ INSIDE_GNOME_COMMON_TRUE='#'
+ INSIDE_GNOME_COMMON_FALSE=
+fi
+
+
+ test -n "$ACLOCAL_FLAGS" && ACLOCAL="$ACLOCAL $ACLOCAL_FLAGS"
+
+ for k in m4 ; do ACLOCAL="$ACLOCAL -I $k" ; done
+
+
+ac_ext=cpp
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+if test -z "$CXX"; then
+ if test -n "$CCC"; then
+ CXX=$CCC
+ else
+ if test -n "$ac_tool_prefix"; then
+ for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC
+ do
+ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_CXX+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$CXX"; then
+ ac_cv_prog_CXX="$CXX" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_CXX="$ac_tool_prefix$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+CXX=$ac_cv_prog_CXX
+if test -n "$CXX"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXX" >&5
+$as_echo "$CXX" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$CXX" && break
+ done
+fi
+if test -z "$CXX"; then
+ ac_ct_CXX=$CXX
+ for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_CXX"; then
+ ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_ac_ct_CXX="$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_CXX=$ac_cv_prog_ac_ct_CXX
+if test -n "$ac_ct_CXX"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CXX" >&5
+$as_echo "$ac_ct_CXX" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$ac_ct_CXX" && break
+done
+
+ if test "x$ac_ct_CXX" = x; then
+ CXX="g++"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ CXX=$ac_ct_CXX
+ fi
+fi
+
+ fi
+fi
+# Provide some information about the compiler.
+$as_echo "$as_me:${as_lineno-$LINENO}: checking for C++ compiler version" >&5
+set X $ac_compile
+ac_compiler=$2
+for ac_option in --version -v -V -qversion; do
+ { { ac_try="$ac_compiler $ac_option >&5"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_compiler $ac_option >&5") 2>conftest.err
+ ac_status=$?
+ if test -s conftest.err; then
+ sed '10a\
+... rest of stderr output deleted ...
+ 10q' conftest.err >conftest.er1
+ cat conftest.er1 >&5
+ fi
+ rm -f conftest.er1 conftest.err
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+done
+
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+ac_clean_files_save=$ac_clean_files
+ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out"
+# Try to create an executable without -o first, disregard a.out.
+# It will help us diagnose broken compilers, and finding out an intuition
+# of exeext.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C++ compiler works" >&5
+$as_echo_n "checking whether the C++ compiler works... " >&6; }
+ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
+
+# The possible output files:
+ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*"
+
+ac_rmfiles=
+for ac_file in $ac_files
+do
+ case $ac_file in
+ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
+ * ) ac_rmfiles="$ac_rmfiles $ac_file";;
+ esac
+done
+rm -f $ac_rmfiles
+
+if { { ac_try="$ac_link_default"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_link_default") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then :
+ # Autoconf-2.13 could set the ac_cv_exeext variable to `no'.
+# So ignore a value of `no', otherwise this would lead to `EXEEXT = no'
+# in a Makefile. We should not override ac_cv_exeext if it was cached,
+# so that the user can short-circuit this test for compilers unknown to
+# Autoconf.
+for ac_file in $ac_files ''
+do
+ test -f "$ac_file" || continue
+ case $ac_file in
+ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj )
+ ;;
+ [ab].out )
+ # We found the default executable, but exeext='' is most
+ # certainly right.
+ break;;
+ *.* )
+ if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no;
+ then :; else
+ ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
+ fi
+ # We set ac_cv_exeext here because the later test for it is not
+ # safe: cross compilers may not add the suffix if given an `-o'
+ # argument, so we may need to know it at that point already.
+ # Even if this section looks crufty: it has the advantage of
+ # actually working.
+ break;;
+ * )
+ break;;
+ esac
+done
+test "$ac_cv_exeext" = no && ac_cv_exeext=
+
+else
+ ac_file=''
+fi
+if test -z "$ac_file"; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+$as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+{ as_fn_set_status 77
+as_fn_error "C++ compiler cannot create executables
+See \`config.log' for more details." "$LINENO" 5; }; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C++ compiler default output file name" >&5
+$as_echo_n "checking for C++ compiler default output file name... " >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5
+$as_echo "$ac_file" >&6; }
+ac_exeext=$ac_cv_exeext
+
+rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out
+ac_clean_files=$ac_clean_files_save
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5
+$as_echo_n "checking for suffix of executables... " >&6; }
+if { { ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_link") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then :
+ # If both `conftest.exe' and `conftest' are `present' (well, observable)
+# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will
+# work properly (i.e., refer to `conftest.exe'), while it won't with
+# `rm'.
+for ac_file in conftest.exe conftest conftest.*; do
+ test -f "$ac_file" || continue
+ case $ac_file in
+ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
+ *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
+ break;;
+ * ) break;;
+ esac
+done
+else
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error "cannot compute suffix of executables: cannot compile and link
+See \`config.log' for more details." "$LINENO" 5; }
+fi
+rm -f conftest conftest$ac_cv_exeext
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5
+$as_echo "$ac_cv_exeext" >&6; }
+
+rm -f conftest.$ac_ext
+EXEEXT=$ac_cv_exeext
+ac_exeext=$EXEEXT
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+@%:@include <stdio.h>
+int
+main ()
+{
+FILE *f = fopen ("conftest.out", "w");
+ return ferror (f) || fclose (f) != 0;
+
+ ;
+ return 0;
+}
+_ACEOF
+ac_clean_files="$ac_clean_files conftest.out"
+# Check that the compiler produces executables we can run. If not, either
+# the compiler is broken, or we cross compile.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5
+$as_echo_n "checking whether we are cross compiling... " >&6; }
+if test "$cross_compiling" != yes; then
+ { { ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_link") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+ if { ac_try='./conftest$ac_cv_exeext'
+ { { case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_try") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; }; then
+ cross_compiling=no
+ else
+ if test "$cross_compiling" = maybe; then
+ cross_compiling=yes
+ else
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error "cannot run C++ compiled programs.
+If you meant to cross compile, use \`--host'.
+See \`config.log' for more details." "$LINENO" 5; }
+ fi
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5
+$as_echo "$cross_compiling" >&6; }
+
+rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out
+ac_clean_files=$ac_clean_files_save
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5
+$as_echo_n "checking for suffix of object files... " >&6; }
+if test "${ac_cv_objext+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.o conftest.obj
+if { { ac_try="$ac_compile"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_compile") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then :
+ for ac_file in conftest.o conftest.obj conftest.*; do
+ test -f "$ac_file" || continue;
+ case $ac_file in
+ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;;
+ *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
+ break;;
+ esac
+done
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error "cannot compute suffix of object files: cannot compile
+See \`config.log' for more details." "$LINENO" 5; }
+fi
+rm -f conftest.$ac_cv_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5
+$as_echo "$ac_cv_objext" >&6; }
+OBJEXT=$ac_cv_objext
+ac_objext=$OBJEXT
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C++ compiler" >&5
+$as_echo_n "checking whether we are using the GNU C++ compiler... " >&6; }
+if test "${ac_cv_cxx_compiler_gnu+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+#ifndef __GNUC__
+ choke me
+#endif
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_compile "$LINENO"; then :
+ ac_compiler_gnu=yes
+else
+ ac_compiler_gnu=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ac_cv_cxx_compiler_gnu=$ac_compiler_gnu
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cxx_compiler_gnu" >&5
+$as_echo "$ac_cv_cxx_compiler_gnu" >&6; }
+if test $ac_compiler_gnu = yes; then
+ GXX=yes
+else
+ GXX=
+fi
+ac_test_CXXFLAGS=${CXXFLAGS+set}
+ac_save_CXXFLAGS=$CXXFLAGS
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX accepts -g" >&5
+$as_echo_n "checking whether $CXX accepts -g... " >&6; }
+if test "${ac_cv_prog_cxx_g+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_save_cxx_werror_flag=$ac_cxx_werror_flag
+ ac_cxx_werror_flag=yes
+ ac_cv_prog_cxx_g=no
+ CXXFLAGS="-g"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_compile "$LINENO"; then :
+ ac_cv_prog_cxx_g=yes
+else
+ CXXFLAGS=""
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_compile "$LINENO"; then :
+
+else
+ ac_cxx_werror_flag=$ac_save_cxx_werror_flag
+ CXXFLAGS="-g"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_compile "$LINENO"; then :
+ ac_cv_prog_cxx_g=yes
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ ac_cxx_werror_flag=$ac_save_cxx_werror_flag
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_g" >&5
+$as_echo "$ac_cv_prog_cxx_g" >&6; }
+if test "$ac_test_CXXFLAGS" = set; then
+ CXXFLAGS=$ac_save_CXXFLAGS
+elif test $ac_cv_prog_cxx_g = yes; then
+ if test "$GXX" = yes; then
+ CXXFLAGS="-g -O2"
+ else
+ CXXFLAGS="-g"
+ fi
+else
+ if test "$GXX" = yes; then
+ CXXFLAGS="-O2"
+ else
+ CXXFLAGS=
+ fi
+fi
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+DEPDIR="${am__leading_dot}deps"
+
+ac_config_commands="$ac_config_commands depfiles"
+
+
+am_make=${MAKE-make}
+cat > confinc << 'END'
+am__doit:
+ @echo this is the am__doit target
+.PHONY: am__doit
+END
+# If we don't find an include directive, just comment out the code.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5
+$as_echo_n "checking for style of include used by $am_make... " >&6; }
+am__include="#"
+am__quote=
+_am_result=none
+# First try GNU make style include.
+echo "include confinc" > confmf
+# Ignore all kinds of additional output from `make'.
+case `$am_make -s -f confmf 2> /dev/null` in #(
+*the\ am__doit\ target*)
+ am__include=include
+ am__quote=
+ _am_result=GNU
+ ;;
+esac
+# Now try BSD make style include.
+if test "$am__include" = "#"; then
+ echo '.include "confinc"' > confmf
+ case `$am_make -s -f confmf 2> /dev/null` in #(
+ *the\ am__doit\ target*)
+ am__include=.include
+ am__quote="\""
+ _am_result=BSD
+ ;;
+ esac
+fi
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5
+$as_echo "$_am_result" >&6; }
+rm -f confinc confmf
+
+@%:@ Check whether --enable-dependency-tracking was given.
+if test "${enable_dependency_tracking+set}" = set; then :
+ enableval=$enable_dependency_tracking;
+fi
+
+if test "x$enable_dependency_tracking" != xno; then
+ am_depcomp="$ac_aux_dir/depcomp"
+ AMDEPBACKSLASH='\'
+fi
+ if test "x$enable_dependency_tracking" != xno; then
+ AMDEP_TRUE=
+ AMDEP_FALSE='#'
+else
+ AMDEP_TRUE='#'
+ AMDEP_FALSE=
+fi
+
+
+
+depcc="$CXX" am_compiler_list=
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
+$as_echo_n "checking dependency style of $depcc... " >&6; }
+if test "${am_cv_CXX_dependencies_compiler_type+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
+ # We make a subdir and do the tests there. Otherwise we can end up
+ # making bogus files that we don't know about and never remove. For
+ # instance it was reported that on HP-UX the gcc test will end up
+ # making a dummy file named `D' -- because `-MD' means `put the output
+ # in D'.
+ mkdir conftest.dir
+ # Copy depcomp to subdir because otherwise we won't find it if we're
+ # using a relative directory.
+ cp "$am_depcomp" conftest.dir
+ cd conftest.dir
+ # We will build objects and dependencies in a subdirectory because
+ # it helps to detect inapplicable dependency modes. For instance
+ # both Tru64's cc and ICC support -MD to output dependencies as a
+ # side effect of compilation, but ICC will put the dependencies in
+ # the current directory while Tru64 will put them in the object
+ # directory.
+ mkdir sub
+
+ am_cv_CXX_dependencies_compiler_type=none
+ if test "$am_compiler_list" = ""; then
+ am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
+ fi
+ am__universal=false
+ case " $depcc " in #(
+ *\ -arch\ *\ -arch\ *) am__universal=true ;;
+ esac
+
+ for depmode in $am_compiler_list; do
+ # Setup a source with many dependencies, because some compilers
+ # like to wrap large dependency lists on column 80 (with \), and
+ # we should not choose a depcomp mode which is confused by this.
+ #
+ # We need to recreate these files for each test, as the compiler may
+ # overwrite some of them when testing with obscure command lines.
+ # This happens at least with the AIX C compiler.
+ : > sub/conftest.c
+ for i in 1 2 3 4 5 6; do
+ echo '#include "conftst'$i'.h"' >> sub/conftest.c
+ # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
+ # Solaris 8's {/usr,}/bin/sh.
+ touch sub/conftst$i.h
+ done
+ echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
+
+ # We check with `-c' and `-o' for the sake of the "dashmstdout"
+ # mode. It turns out that the SunPro C++ compiler does not properly
+ # handle `-M -o', and we need to detect this. Also, some Intel
+ # versions had trouble with output in subdirs
+ am__obj=sub/conftest.${OBJEXT-o}
+ am__minus_obj="-o $am__obj"
+ case $depmode in
+ gcc)
+ # This depmode causes a compiler race in universal mode.
+ test "$am__universal" = false || continue
+ ;;
+ nosideeffect)
+ # after this tag, mechanisms are not by side-effect, so they'll
+ # only be used when explicitly requested
+ if test "x$enable_dependency_tracking" = xyes; then
+ continue
+ else
+ break
+ fi
+ ;;
+ msvisualcpp | msvcmsys)
+ # This compiler won't grok `-c -o', but also, the minuso test has
+ # not run yet. These depmodes are late enough in the game, and
+ # so weak that their functioning should not be impacted.
+ am__obj=conftest.${OBJEXT-o}
+ am__minus_obj=
+ ;;
+ none) break ;;
+ esac
+ if depmode=$depmode \
+ source=sub/conftest.c object=$am__obj \
+ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
+ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
+ >/dev/null 2>conftest.err &&
+ grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
+ grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
+ grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
+ ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
+ # icc doesn't choke on unknown options, it will just issue warnings
+ # or remarks (even with -Werror). So we grep stderr for any message
+ # that says an option was ignored or not supported.
+ # When given -MP, icc 7.0 and 7.1 complain thusly:
+ # icc: Command line warning: ignoring option '-M'; no argument required
+ # The diagnosis changed in icc 8.0:
+ # icc: Command line remark: option '-MP' not supported
+ if (grep 'ignoring option' conftest.err ||
+ grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
+ am_cv_CXX_dependencies_compiler_type=$depmode
+ break
+ fi
+ fi
+ done
+
+ cd ..
+ rm -rf conftest.dir
+else
+ am_cv_CXX_dependencies_compiler_type=none
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CXX_dependencies_compiler_type" >&5
+$as_echo "$am_cv_CXX_dependencies_compiler_type" >&6; }
+CXXDEPMODE=depmode=$am_cv_CXX_dependencies_compiler_type
+
+ if
+ test "x$enable_dependency_tracking" != xno \
+ && test "$am_cv_CXX_dependencies_compiler_type" = gcc3; then
+ am__fastdepCXX_TRUE=
+ am__fastdepCXX_FALSE='#'
+else
+ am__fastdepCXX_TRUE='#'
+ am__fastdepCXX_FALSE=
+fi
+
+
+case `pwd` in
+ *\ * | *\ *)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5
+$as_echo "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;;
+esac
+
+
+
+macro_version='2.2.6b'
+macro_revision='1.3017'
+
+
+
+
+
+
+
+
+
+
+
+
+
+ltmain="$ac_aux_dir/ltmain.sh"
+
+# Make sure we can run config.sub.
+$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
+ as_fn_error "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5
+$as_echo_n "checking build system type... " >&6; }
+if test "${ac_cv_build+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_build_alias=$build_alias
+test "x$ac_build_alias" = x &&
+ ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"`
+test "x$ac_build_alias" = x &&
+ as_fn_error "cannot guess build type; you must specify one" "$LINENO" 5
+ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||
+ as_fn_error "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5
+$as_echo "$ac_cv_build" >&6; }
+case $ac_cv_build in
+*-*-*) ;;
+*) as_fn_error "invalid value of canonical build" "$LINENO" 5;;
+esac
+build=$ac_cv_build
+ac_save_IFS=$IFS; IFS='-'
+set x $ac_cv_build
+shift
+build_cpu=$1
+build_vendor=$2
+shift; shift
+# Remember, the first character of IFS is used to create $*,
+# except with old shells:
+build_os=$*
+IFS=$ac_save_IFS
+case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5
+$as_echo_n "checking host system type... " >&6; }
+if test "${ac_cv_host+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "x$host_alias" = x; then
+ ac_cv_host=$ac_cv_build
+else
+ ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` ||
+ as_fn_error "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5
+$as_echo "$ac_cv_host" >&6; }
+case $ac_cv_host in
+*-*-*) ;;
+*) as_fn_error "invalid value of canonical host" "$LINENO" 5;;
+esac
+host=$ac_cv_host
+ac_save_IFS=$IFS; IFS='-'
+set x $ac_cv_host
+shift
+host_cpu=$1
+host_vendor=$2
+shift; shift
+# Remember, the first character of IFS is used to create $*,
+# except with old shells:
+host_os=$*
+IFS=$ac_save_IFS
+case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac
+
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
+set dummy ${ac_tool_prefix}gcc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_CC+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_CC="${ac_tool_prefix}gcc"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_CC"; then
+ ac_ct_CC=$CC
+ # Extract the first word of "gcc", so it can be a program name with args.
+set dummy gcc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_ac_ct_CC+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_CC"; then
+ ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_ac_ct_CC="gcc"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
+$as_echo "$ac_ct_CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_CC" = x; then
+ CC=""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ CC=$ac_ct_CC
+ fi
+else
+ CC="$ac_cv_prog_CC"
+fi
+
+if test -z "$CC"; then
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
+set dummy ${ac_tool_prefix}cc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_CC+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_CC="${ac_tool_prefix}cc"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ fi
+fi
+if test -z "$CC"; then
+ # Extract the first word of "cc", so it can be a program name with args.
+set dummy cc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_CC+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+ ac_prog_rejected=no
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
+ ac_prog_rejected=yes
+ continue
+ fi
+ ac_cv_prog_CC="cc"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+if test $ac_prog_rejected = yes; then
+ # We found a bogon in the path, so make sure we never use it.
+ set dummy $ac_cv_prog_CC
+ shift
+ if test $@%:@ != 0; then
+ # We chose a different compiler from the bogus one.
+ # However, it has the same basename, so the bogon will be chosen
+ # first if we set CC to just the basename; use the full file name.
+ shift
+ ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
+ fi
+fi
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$CC"; then
+ if test -n "$ac_tool_prefix"; then
+ for ac_prog in cl.exe
+ do
+ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_CC+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$CC" && break
+ done
+fi
+if test -z "$CC"; then
+ ac_ct_CC=$CC
+ for ac_prog in cl.exe
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_ac_ct_CC+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_CC"; then
+ ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_ac_ct_CC="$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
+$as_echo "$ac_ct_CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$ac_ct_CC" && break
+done
+
+ if test "x$ac_ct_CC" = x; then
+ CC=""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ CC=$ac_ct_CC
+ fi
+fi
+
+fi
+
+
+test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error "no acceptable C compiler found in \$PATH
+See \`config.log' for more details." "$LINENO" 5; }
+
+# Provide some information about the compiler.
+$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
+set X $ac_compile
+ac_compiler=$2
+for ac_option in --version -v -V -qversion; do
+ { { ac_try="$ac_compiler $ac_option >&5"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_compiler $ac_option >&5") 2>conftest.err
+ ac_status=$?
+ if test -s conftest.err; then
+ sed '10a\
+... rest of stderr output deleted ...
+ 10q' conftest.err >conftest.er1
+ cat conftest.er1 >&5
+ fi
+ rm -f conftest.er1 conftest.err
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+done
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5
+$as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
+if test "${ac_cv_c_compiler_gnu+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+#ifndef __GNUC__
+ choke me
+#endif
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_compiler_gnu=yes
+else
+ ac_compiler_gnu=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ac_cv_c_compiler_gnu=$ac_compiler_gnu
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
+$as_echo "$ac_cv_c_compiler_gnu" >&6; }
+if test $ac_compiler_gnu = yes; then
+ GCC=yes
+else
+ GCC=
+fi
+ac_test_CFLAGS=${CFLAGS+set}
+ac_save_CFLAGS=$CFLAGS
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
+$as_echo_n "checking whether $CC accepts -g... " >&6; }
+if test "${ac_cv_prog_cc_g+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_save_c_werror_flag=$ac_c_werror_flag
+ ac_c_werror_flag=yes
+ ac_cv_prog_cc_g=no
+ CFLAGS="-g"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_prog_cc_g=yes
+else
+ CFLAGS=""
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+
+else
+ ac_c_werror_flag=$ac_save_c_werror_flag
+ CFLAGS="-g"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_prog_cc_g=yes
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ ac_c_werror_flag=$ac_save_c_werror_flag
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
+$as_echo "$ac_cv_prog_cc_g" >&6; }
+if test "$ac_test_CFLAGS" = set; then
+ CFLAGS=$ac_save_CFLAGS
+elif test $ac_cv_prog_cc_g = yes; then
+ if test "$GCC" = yes; then
+ CFLAGS="-g -O2"
+ else
+ CFLAGS="-g"
+ fi
+else
+ if test "$GCC" = yes; then
+ CFLAGS="-O2"
+ else
+ CFLAGS=
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5
+$as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
+if test "${ac_cv_prog_cc_c89+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_cv_prog_cc_c89=no
+ac_save_CC=$CC
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdarg.h>
+#include <stdio.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
+struct buf { int x; };
+FILE * (*rcsopen) (struct buf *, struct stat *, int);
+static char *e (p, i)
+ char **p;
+ int i;
+{
+ return p[i];
+}
+static char *f (char * (*g) (char **, int), char **p, ...)
+{
+ char *s;
+ va_list v;
+ va_start (v,p);
+ s = g (p, va_arg (v,int));
+ va_end (v);
+ return s;
+}
+
+/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has
+ function prototypes and stuff, but not '\xHH' hex character constants.
+ These don't provoke an error unfortunately, instead are silently treated
+ as 'x'. The following induces an error, until -std is added to get
+ proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an
+ array size at least. It's necessary to write '\x00'==0 to get something
+ that's true only with -std. */
+int osf4_cc_array ['\x00' == 0 ? 1 : -1];
+
+/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
+ inside strings and character constants. */
+#define FOO(x) 'x'
+int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];
+
+int test (int i, double x);
+struct s1 {int (*f) (int a);};
+struct s2 {int (*f) (double a);};
+int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
+int argc;
+char **argv;
+int
+main ()
+{
+return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1];
+ ;
+ return 0;
+}
+_ACEOF
+for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
+ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
+do
+ CC="$ac_save_CC $ac_arg"
+ if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_prog_cc_c89=$ac_arg
+fi
+rm -f core conftest.err conftest.$ac_objext
+ test "x$ac_cv_prog_cc_c89" != "xno" && break
+done
+rm -f conftest.$ac_ext
+CC=$ac_save_CC
+
+fi
+# AC_CACHE_VAL
+case "x$ac_cv_prog_cc_c89" in
+ x)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
+$as_echo "none needed" >&6; } ;;
+ xno)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
+$as_echo "unsupported" >&6; } ;;
+ *)
+ CC="$CC $ac_cv_prog_cc_c89"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
+$as_echo "$ac_cv_prog_cc_c89" >&6; } ;;
+esac
+if test "x$ac_cv_prog_cc_c89" != xno; then :
+
+fi
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+depcc="$CC" am_compiler_list=
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
+$as_echo_n "checking dependency style of $depcc... " >&6; }
+if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
+ # We make a subdir and do the tests there. Otherwise we can end up
+ # making bogus files that we don't know about and never remove. For
+ # instance it was reported that on HP-UX the gcc test will end up
+ # making a dummy file named `D' -- because `-MD' means `put the output
+ # in D'.
+ mkdir conftest.dir
+ # Copy depcomp to subdir because otherwise we won't find it if we're
+ # using a relative directory.
+ cp "$am_depcomp" conftest.dir
+ cd conftest.dir
+ # We will build objects and dependencies in a subdirectory because
+ # it helps to detect inapplicable dependency modes. For instance
+ # both Tru64's cc and ICC support -MD to output dependencies as a
+ # side effect of compilation, but ICC will put the dependencies in
+ # the current directory while Tru64 will put them in the object
+ # directory.
+ mkdir sub
+
+ am_cv_CC_dependencies_compiler_type=none
+ if test "$am_compiler_list" = ""; then
+ am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
+ fi
+ am__universal=false
+ case " $depcc " in #(
+ *\ -arch\ *\ -arch\ *) am__universal=true ;;
+ esac
+
+ for depmode in $am_compiler_list; do
+ # Setup a source with many dependencies, because some compilers
+ # like to wrap large dependency lists on column 80 (with \), and
+ # we should not choose a depcomp mode which is confused by this.
+ #
+ # We need to recreate these files for each test, as the compiler may
+ # overwrite some of them when testing with obscure command lines.
+ # This happens at least with the AIX C compiler.
+ : > sub/conftest.c
+ for i in 1 2 3 4 5 6; do
+ echo '#include "conftst'$i'.h"' >> sub/conftest.c
+ # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
+ # Solaris 8's {/usr,}/bin/sh.
+ touch sub/conftst$i.h
+ done
+ echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
+
+ # We check with `-c' and `-o' for the sake of the "dashmstdout"
+ # mode. It turns out that the SunPro C++ compiler does not properly
+ # handle `-M -o', and we need to detect this. Also, some Intel
+ # versions had trouble with output in subdirs
+ am__obj=sub/conftest.${OBJEXT-o}
+ am__minus_obj="-o $am__obj"
+ case $depmode in
+ gcc)
+ # This depmode causes a compiler race in universal mode.
+ test "$am__universal" = false || continue
+ ;;
+ nosideeffect)
+ # after this tag, mechanisms are not by side-effect, so they'll
+ # only be used when explicitly requested
+ if test "x$enable_dependency_tracking" = xyes; then
+ continue
+ else
+ break
+ fi
+ ;;
+ msvisualcpp | msvcmsys)
+ # This compiler won't grok `-c -o', but also, the minuso test has
+ # not run yet. These depmodes are late enough in the game, and
+ # so weak that their functioning should not be impacted.
+ am__obj=conftest.${OBJEXT-o}
+ am__minus_obj=
+ ;;
+ none) break ;;
+ esac
+ if depmode=$depmode \
+ source=sub/conftest.c object=$am__obj \
+ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
+ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
+ >/dev/null 2>conftest.err &&
+ grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
+ grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
+ grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
+ ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
+ # icc doesn't choke on unknown options, it will just issue warnings
+ # or remarks (even with -Werror). So we grep stderr for any message
+ # that says an option was ignored or not supported.
+ # When given -MP, icc 7.0 and 7.1 complain thusly:
+ # icc: Command line warning: ignoring option '-M'; no argument required
+ # The diagnosis changed in icc 8.0:
+ # icc: Command line remark: option '-MP' not supported
+ if (grep 'ignoring option' conftest.err ||
+ grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
+ am_cv_CC_dependencies_compiler_type=$depmode
+ break
+ fi
+ fi
+ done
+
+ cd ..
+ rm -rf conftest.dir
+else
+ am_cv_CC_dependencies_compiler_type=none
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5
+$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; }
+CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type
+
+ if
+ test "x$enable_dependency_tracking" != xno \
+ && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then
+ am__fastdepCC_TRUE=
+ am__fastdepCC_FALSE='#'
+else
+ am__fastdepCC_TRUE='#'
+ am__fastdepCC_FALSE=
+fi
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5
+$as_echo_n "checking for a sed that does not truncate output... " >&6; }
+if test "${ac_cv_path_SED+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/
+ for ac_i in 1 2 3 4 5 6 7; do
+ ac_script="$ac_script$as_nl$ac_script"
+ done
+ echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed
+ { ac_script=; unset ac_script;}
+ if test -z "$SED"; then
+ ac_path_SED_found=false
+ # Loop through the user's path and test for each of PROGNAME-LIST
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_prog in sed gsed; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ ac_path_SED="$as_dir/$ac_prog$ac_exec_ext"
+ { test -f "$ac_path_SED" && $as_test_x "$ac_path_SED"; } || continue
+# Check for GNU ac_path_SED and select it if it is found.
+ # Check for GNU $ac_path_SED
+case `"$ac_path_SED" --version 2>&1` in
+*GNU*)
+ ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;;
+*)
+ ac_count=0
+ $as_echo_n 0123456789 >"conftest.in"
+ while :
+ do
+ cat "conftest.in" "conftest.in" >"conftest.tmp"
+ mv "conftest.tmp" "conftest.in"
+ cp "conftest.in" "conftest.nl"
+ $as_echo '' >> "conftest.nl"
+ "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break
+ diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+ as_fn_arith $ac_count + 1 && ac_count=$as_val
+ if test $ac_count -gt ${ac_path_SED_max-0}; then
+ # Best one so far, save it but keep looking for a better one
+ ac_cv_path_SED="$ac_path_SED"
+ ac_path_SED_max=$ac_count
+ fi
+ # 10*(2^10) chars as input seems more than enough
+ test $ac_count -gt 10 && break
+ done
+ rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+ $ac_path_SED_found && break 3
+ done
+ done
+ done
+IFS=$as_save_IFS
+ if test -z "$ac_cv_path_SED"; then
+ as_fn_error "no acceptable sed could be found in \$PATH" "$LINENO" 5
+ fi
+else
+ ac_cv_path_SED=$SED
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5
+$as_echo "$ac_cv_path_SED" >&6; }
+ SED="$ac_cv_path_SED"
+ rm -f conftest.sed
+
+test -z "$SED" && SED=sed
+Xsed="$SED -e 1s/^X//"
+
+
+
+
+
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
+$as_echo_n "checking for grep that handles long lines and -e... " >&6; }
+if test "${ac_cv_path_GREP+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -z "$GREP"; then
+ ac_path_GREP_found=false
+ # Loop through the user's path and test for each of PROGNAME-LIST
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_prog in grep ggrep; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
+ { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue
+# Check for GNU ac_path_GREP and select it if it is found.
+ # Check for GNU $ac_path_GREP
+case `"$ac_path_GREP" --version 2>&1` in
+*GNU*)
+ ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;;
+*)
+ ac_count=0
+ $as_echo_n 0123456789 >"conftest.in"
+ while :
+ do
+ cat "conftest.in" "conftest.in" >"conftest.tmp"
+ mv "conftest.tmp" "conftest.in"
+ cp "conftest.in" "conftest.nl"
+ $as_echo 'GREP' >> "conftest.nl"
+ "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break
+ diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+ as_fn_arith $ac_count + 1 && ac_count=$as_val
+ if test $ac_count -gt ${ac_path_GREP_max-0}; then
+ # Best one so far, save it but keep looking for a better one
+ ac_cv_path_GREP="$ac_path_GREP"
+ ac_path_GREP_max=$ac_count
+ fi
+ # 10*(2^10) chars as input seems more than enough
+ test $ac_count -gt 10 && break
+ done
+ rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+ $ac_path_GREP_found && break 3
+ done
+ done
+ done
+IFS=$as_save_IFS
+ if test -z "$ac_cv_path_GREP"; then
+ as_fn_error "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+ fi
+else
+ ac_cv_path_GREP=$GREP
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5
+$as_echo "$ac_cv_path_GREP" >&6; }
+ GREP="$ac_cv_path_GREP"
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
+$as_echo_n "checking for egrep... " >&6; }
+if test "${ac_cv_path_EGREP+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
+ then ac_cv_path_EGREP="$GREP -E"
+ else
+ if test -z "$EGREP"; then
+ ac_path_EGREP_found=false
+ # Loop through the user's path and test for each of PROGNAME-LIST
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_prog in egrep; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
+ { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue
+# Check for GNU ac_path_EGREP and select it if it is found.
+ # Check for GNU $ac_path_EGREP
+case `"$ac_path_EGREP" --version 2>&1` in
+*GNU*)
+ ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;;
+*)
+ ac_count=0
+ $as_echo_n 0123456789 >"conftest.in"
+ while :
+ do
+ cat "conftest.in" "conftest.in" >"conftest.tmp"
+ mv "conftest.tmp" "conftest.in"
+ cp "conftest.in" "conftest.nl"
+ $as_echo 'EGREP' >> "conftest.nl"
+ "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
+ diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+ as_fn_arith $ac_count + 1 && ac_count=$as_val
+ if test $ac_count -gt ${ac_path_EGREP_max-0}; then
+ # Best one so far, save it but keep looking for a better one
+ ac_cv_path_EGREP="$ac_path_EGREP"
+ ac_path_EGREP_max=$ac_count
+ fi
+ # 10*(2^10) chars as input seems more than enough
+ test $ac_count -gt 10 && break
+ done
+ rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+ $ac_path_EGREP_found && break 3
+ done
+ done
+ done
+IFS=$as_save_IFS
+ if test -z "$ac_cv_path_EGREP"; then
+ as_fn_error "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+ fi
+else
+ ac_cv_path_EGREP=$EGREP
+fi
+
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5
+$as_echo "$ac_cv_path_EGREP" >&6; }
+ EGREP="$ac_cv_path_EGREP"
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5
+$as_echo_n "checking for fgrep... " >&6; }
+if test "${ac_cv_path_FGREP+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1
+ then ac_cv_path_FGREP="$GREP -F"
+ else
+ if test -z "$FGREP"; then
+ ac_path_FGREP_found=false
+ # Loop through the user's path and test for each of PROGNAME-LIST
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_prog in fgrep; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext"
+ { test -f "$ac_path_FGREP" && $as_test_x "$ac_path_FGREP"; } || continue
+# Check for GNU ac_path_FGREP and select it if it is found.
+ # Check for GNU $ac_path_FGREP
+case `"$ac_path_FGREP" --version 2>&1` in
+*GNU*)
+ ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_found=:;;
+*)
+ ac_count=0
+ $as_echo_n 0123456789 >"conftest.in"
+ while :
+ do
+ cat "conftest.in" "conftest.in" >"conftest.tmp"
+ mv "conftest.tmp" "conftest.in"
+ cp "conftest.in" "conftest.nl"
+ $as_echo 'FGREP' >> "conftest.nl"
+ "$ac_path_FGREP" FGREP < "conftest.nl" >"conftest.out" 2>/dev/null || break
+ diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+ as_fn_arith $ac_count + 1 && ac_count=$as_val
+ if test $ac_count -gt ${ac_path_FGREP_max-0}; then
+ # Best one so far, save it but keep looking for a better one
+ ac_cv_path_FGREP="$ac_path_FGREP"
+ ac_path_FGREP_max=$ac_count
+ fi
+ # 10*(2^10) chars as input seems more than enough
+ test $ac_count -gt 10 && break
+ done
+ rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+ $ac_path_FGREP_found && break 3
+ done
+ done
+ done
+IFS=$as_save_IFS
+ if test -z "$ac_cv_path_FGREP"; then
+ as_fn_error "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+ fi
+else
+ ac_cv_path_FGREP=$FGREP
+fi
+
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5
+$as_echo "$ac_cv_path_FGREP" >&6; }
+ FGREP="$ac_cv_path_FGREP"
+
+
+test -z "$GREP" && GREP=grep
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+@%:@ Check whether --with-gnu-ld was given.
+if test "${with_gnu_ld+set}" = set; then :
+ withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes
+else
+ with_gnu_ld=no
+fi
+
+ac_prog=ld
+if test "$GCC" = yes; then
+ # Check if gcc -print-prog-name=ld gives a path.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5
+$as_echo_n "checking for ld used by $CC... " >&6; }
+ case $host in
+ *-*-mingw*)
+ # gcc leaves a trailing carriage return which upsets mingw
+ ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
+ *)
+ ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
+ esac
+ case $ac_prog in
+ # Accept absolute paths.
+ [\\/]* | ?:[\\/]*)
+ re_direlt='/[^/][^/]*/\.\./'
+ # Canonicalize the pathname of ld
+ ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'`
+ while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do
+ ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"`
+ done
+ test -z "$LD" && LD="$ac_prog"
+ ;;
+ "")
+ # If it fails, then pretend we aren't using GCC.
+ ac_prog=ld
+ ;;
+ *)
+ # If it is relative, then search for the first ld in PATH.
+ with_gnu_ld=unknown
+ ;;
+ esac
+elif test "$with_gnu_ld" = yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5
+$as_echo_n "checking for GNU ld... " >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5
+$as_echo_n "checking for non-GNU ld... " >&6; }
+fi
+if test "${lt_cv_path_LD+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -z "$LD"; then
+ lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+ for ac_dir in $PATH; do
+ IFS="$lt_save_ifs"
+ test -z "$ac_dir" && ac_dir=.
+ if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
+ lt_cv_path_LD="$ac_dir/$ac_prog"
+ # Check to see if the program is GNU ld. I'd rather use --version,
+ # but apparently some variants of GNU ld only accept -v.
+ # Break only if it was the GNU/non-GNU ld that we prefer.
+ case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
+ *GNU* | *'with BFD'*)
+ test "$with_gnu_ld" != no && break
+ ;;
+ *)
+ test "$with_gnu_ld" != yes && break
+ ;;
+ esac
+ fi
+ done
+ IFS="$lt_save_ifs"
+else
+ lt_cv_path_LD="$LD" # Let the user override the test with a path.
+fi
+fi
+
+LD="$lt_cv_path_LD"
+if test -n "$LD"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LD" >&5
+$as_echo "$LD" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+test -z "$LD" && as_fn_error "no acceptable ld found in \$PATH" "$LINENO" 5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5
+$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; }
+if test "${lt_cv_prog_gnu_ld+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ # I'd rather use --version here, but apparently some GNU lds only accept -v.
+case `$LD -v 2>&1 </dev/null` in
+*GNU* | *'with BFD'*)
+ lt_cv_prog_gnu_ld=yes
+ ;;
+*)
+ lt_cv_prog_gnu_ld=no
+ ;;
+esac
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_gnu_ld" >&5
+$as_echo "$lt_cv_prog_gnu_ld" >&6; }
+with_gnu_ld=$lt_cv_prog_gnu_ld
+
+
+
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5
+$as_echo_n "checking for BSD- or MS-compatible name lister (nm)... " >&6; }
+if test "${lt_cv_path_NM+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$NM"; then
+ # Let the user override the test.
+ lt_cv_path_NM="$NM"
+else
+ lt_nm_to_check="${ac_tool_prefix}nm"
+ if test -n "$ac_tool_prefix" && test "$build" = "$host"; then
+ lt_nm_to_check="$lt_nm_to_check nm"
+ fi
+ for lt_tmp_nm in $lt_nm_to_check; do
+ lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+ for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do
+ IFS="$lt_save_ifs"
+ test -z "$ac_dir" && ac_dir=.
+ tmp_nm="$ac_dir/$lt_tmp_nm"
+ if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then
+ # Check to see if the nm accepts a BSD-compat flag.
+ # Adding the `sed 1q' prevents false positives on HP-UX, which says:
+ # nm: unknown option "B" ignored
+ # Tru64's nm complains that /dev/null is an invalid object file
+ case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in
+ */dev/null* | *'Invalid file or object type'*)
+ lt_cv_path_NM="$tmp_nm -B"
+ break
+ ;;
+ *)
+ case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in
+ */dev/null*)
+ lt_cv_path_NM="$tmp_nm -p"
+ break
+ ;;
+ *)
+ lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but
+ continue # so that we can try to find one that supports BSD flags
+ ;;
+ esac
+ ;;
+ esac
+ fi
+ done
+ IFS="$lt_save_ifs"
+ done
+ : ${lt_cv_path_NM=no}
+fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5
+$as_echo "$lt_cv_path_NM" >&6; }
+if test "$lt_cv_path_NM" != "no"; then
+ NM="$lt_cv_path_NM"
+else
+ # Didn't find any BSD compatible name lister, look for dumpbin.
+ if test -n "$ac_tool_prefix"; then
+ for ac_prog in "dumpbin -symbols" "link -dump -symbols"
+ do
+ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_DUMPBIN+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$DUMPBIN"; then
+ ac_cv_prog_DUMPBIN="$DUMPBIN" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+DUMPBIN=$ac_cv_prog_DUMPBIN
+if test -n "$DUMPBIN"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DUMPBIN" >&5
+$as_echo "$DUMPBIN" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$DUMPBIN" && break
+ done
+fi
+if test -z "$DUMPBIN"; then
+ ac_ct_DUMPBIN=$DUMPBIN
+ for ac_prog in "dumpbin -symbols" "link -dump -symbols"
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_ac_ct_DUMPBIN+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_DUMPBIN"; then
+ ac_cv_prog_ac_ct_DUMPBIN="$ac_ct_DUMPBIN" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_ac_ct_DUMPBIN="$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN
+if test -n "$ac_ct_DUMPBIN"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DUMPBIN" >&5
+$as_echo "$ac_ct_DUMPBIN" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$ac_ct_DUMPBIN" && break
+done
+
+ if test "x$ac_ct_DUMPBIN" = x; then
+ DUMPBIN=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ DUMPBIN=$ac_ct_DUMPBIN
+ fi
+fi
+
+
+ if test "$DUMPBIN" != ":"; then
+ NM="$DUMPBIN"
+ fi
+fi
+test -z "$NM" && NM=nm
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5
+$as_echo_n "checking the name lister ($NM) interface... " >&6; }
+if test "${lt_cv_nm_interface+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_nm_interface="BSD nm"
+ echo "int some_variable = 0;" > conftest.$ac_ext
+ (eval echo "\"\$as_me:__oline__: $ac_compile\"" >&5)
+ (eval "$ac_compile" 2>conftest.err)
+ cat conftest.err >&5
+ (eval echo "\"\$as_me:__oline__: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
+ (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
+ cat conftest.err >&5
+ (eval echo "\"\$as_me:__oline__: output\"" >&5)
+ cat conftest.out >&5
+ if $GREP 'External.*some_variable' conftest.out > /dev/null; then
+ lt_cv_nm_interface="MS dumpbin"
+ fi
+ rm -f conftest*
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5
+$as_echo "$lt_cv_nm_interface" >&6; }
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5
+$as_echo_n "checking whether ln -s works... " >&6; }
+LN_S=$as_ln_s
+if test "$LN_S" = "ln -s"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5
+$as_echo "no, using $LN_S" >&6; }
+fi
+
+# find the maximum length of command line arguments
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5
+$as_echo_n "checking the maximum length of command line arguments... " >&6; }
+if test "${lt_cv_sys_max_cmd_len+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ i=0
+ teststring="ABCD"
+
+ case $build_os in
+ msdosdjgpp*)
+ # On DJGPP, this test can blow up pretty badly due to problems in libc
+ # (any single argument exceeding 2000 bytes causes a buffer overrun
+ # during glob expansion). Even if it were fixed, the result of this
+ # check would be larger than it should be.
+ lt_cv_sys_max_cmd_len=12288; # 12K is about right
+ ;;
+
+ gnu*)
+ # Under GNU Hurd, this test is not required because there is
+ # no limit to the length of command line arguments.
+ # Libtool will interpret -1 as no limit whatsoever
+ lt_cv_sys_max_cmd_len=-1;
+ ;;
+
+ cygwin* | mingw* | cegcc*)
+ # On Win9x/ME, this test blows up -- it succeeds, but takes
+ # about 5 minutes as the teststring grows exponentially.
+ # Worse, since 9x/ME are not pre-emptively multitasking,
+ # you end up with a "frozen" computer, even though with patience
+ # the test eventually succeeds (with a max line length of 256k).
+ # Instead, let's just punt: use the minimum linelength reported by
+ # all of the supported platforms: 8192 (on NT/2K/XP).
+ lt_cv_sys_max_cmd_len=8192;
+ ;;
+
+ amigaos*)
+ # On AmigaOS with pdksh, this test takes hours, literally.
+ # So we just punt and use a minimum line length of 8192.
+ lt_cv_sys_max_cmd_len=8192;
+ ;;
+
+ netbsd* | freebsd* | openbsd* | darwin* | dragonfly*)
+ # This has been around since 386BSD, at least. Likely further.
+ if test -x /sbin/sysctl; then
+ lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax`
+ elif test -x /usr/sbin/sysctl; then
+ lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax`
+ else
+ lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs
+ fi
+ # And add a safety zone
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
+ ;;
+
+ interix*)
+ # We know the value 262144 and hardcode it with a safety zone (like BSD)
+ lt_cv_sys_max_cmd_len=196608
+ ;;
+
+ osf*)
+ # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure
+ # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not
+ # nice to cause kernel panics so lets avoid the loop below.
+ # First set a reasonable default.
+ lt_cv_sys_max_cmd_len=16384
+ #
+ if test -x /sbin/sysconfig; then
+ case `/sbin/sysconfig -q proc exec_disable_arg_limit` in
+ *1*) lt_cv_sys_max_cmd_len=-1 ;;
+ esac
+ fi
+ ;;
+ sco3.2v5*)
+ lt_cv_sys_max_cmd_len=102400
+ ;;
+ sysv5* | sco5v6* | sysv4.2uw2*)
+ kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null`
+ if test -n "$kargmax"; then
+ lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[ ]//'`
+ else
+ lt_cv_sys_max_cmd_len=32768
+ fi
+ ;;
+ *)
+ lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null`
+ if test -n "$lt_cv_sys_max_cmd_len"; then
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
+ else
+ # Make teststring a little bigger before we do anything with it.
+ # a 1K string should be a reasonable start.
+ for i in 1 2 3 4 5 6 7 8 ; do
+ teststring=$teststring$teststring
+ done
+ SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}}
+ # If test is not a shell built-in, we'll probably end up computing a
+ # maximum length that is only half of the actual maximum length, but
+ # we can't tell.
+ while { test "X"`$SHELL $0 --fallback-echo "X$teststring$teststring" 2>/dev/null` \
+ = "XX$teststring$teststring"; } >/dev/null 2>&1 &&
+ test $i != 17 # 1/2 MB should be enough
+ do
+ i=`expr $i + 1`
+ teststring=$teststring$teststring
+ done
+ # Only check the string length outside the loop.
+ lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1`
+ teststring=
+ # Add a significant safety factor because C++ compilers can tack on
+ # massive amounts of additional arguments before passing them to the
+ # linker. It appears as though 1/2 is a usable value.
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2`
+ fi
+ ;;
+ esac
+
+fi
+
+if test -n $lt_cv_sys_max_cmd_len ; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5
+$as_echo "$lt_cv_sys_max_cmd_len" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5
+$as_echo "none" >&6; }
+fi
+max_cmd_len=$lt_cv_sys_max_cmd_len
+
+
+
+
+
+
+: ${CP="cp -f"}
+: ${MV="mv -f"}
+: ${RM="rm -f"}
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands some XSI constructs" >&5
+$as_echo_n "checking whether the shell understands some XSI constructs... " >&6; }
+# Try some XSI features
+xsi_shell=no
+( _lt_dummy="a/b/c"
+ test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \
+ = c,a/b,, \
+ && eval 'test $(( 1 + 1 )) -eq 2 \
+ && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \
+ && xsi_shell=yes
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xsi_shell" >&5
+$as_echo "$xsi_shell" >&6; }
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands \"+=\"" >&5
+$as_echo_n "checking whether the shell understands \"+=\"... " >&6; }
+lt_shell_append=no
+( foo=bar; set foo baz; eval "$1+=\$2" && test "$foo" = barbaz ) \
+ >/dev/null 2>&1 \
+ && lt_shell_append=yes
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_shell_append" >&5
+$as_echo "$lt_shell_append" >&6; }
+
+
+if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
+ lt_unset=unset
+else
+ lt_unset=false
+fi
+
+
+
+
+
+# test EBCDIC or ASCII
+case `echo X|tr X '\101'` in
+ A) # ASCII based system
+ # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr
+ lt_SP2NL='tr \040 \012'
+ lt_NL2SP='tr \015\012 \040\040'
+ ;;
+ *) # EBCDIC based system
+ lt_SP2NL='tr \100 \n'
+ lt_NL2SP='tr \r\n \100\100'
+ ;;
+esac
+
+
+
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5
+$as_echo_n "checking for $LD option to reload object files... " >&6; }
+if test "${lt_cv_ld_reload_flag+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_ld_reload_flag='-r'
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5
+$as_echo "$lt_cv_ld_reload_flag" >&6; }
+reload_flag=$lt_cv_ld_reload_flag
+case $reload_flag in
+"" | " "*) ;;
+*) reload_flag=" $reload_flag" ;;
+esac
+reload_cmds='$LD$reload_flag -o $output$reload_objs'
+case $host_os in
+ darwin*)
+ if test "$GCC" = yes; then
+ reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs'
+ else
+ reload_cmds='$LD$reload_flag -o $output$reload_objs'
+ fi
+ ;;
+esac
+
+
+
+
+
+
+
+
+
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args.
+set dummy ${ac_tool_prefix}objdump; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_OBJDUMP+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$OBJDUMP"; then
+ ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+OBJDUMP=$ac_cv_prog_OBJDUMP
+if test -n "$OBJDUMP"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5
+$as_echo "$OBJDUMP" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_OBJDUMP"; then
+ ac_ct_OBJDUMP=$OBJDUMP
+ # Extract the first word of "objdump", so it can be a program name with args.
+set dummy objdump; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_ac_ct_OBJDUMP+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_OBJDUMP"; then
+ ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_ac_ct_OBJDUMP="objdump"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP
+if test -n "$ac_ct_OBJDUMP"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5
+$as_echo "$ac_ct_OBJDUMP" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_OBJDUMP" = x; then
+ OBJDUMP="false"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ OBJDUMP=$ac_ct_OBJDUMP
+ fi
+else
+ OBJDUMP="$ac_cv_prog_OBJDUMP"
+fi
+
+test -z "$OBJDUMP" && OBJDUMP=objdump
+
+
+
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5
+$as_echo_n "checking how to recognize dependent libraries... " >&6; }
+if test "${lt_cv_deplibs_check_method+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_file_magic_cmd='$MAGIC_CMD'
+lt_cv_file_magic_test_file=
+lt_cv_deplibs_check_method='unknown'
+# Need to set the preceding variable on all platforms that support
+# interlibrary dependencies.
+# 'none' -- dependencies not supported.
+# `unknown' -- same as none, but documents that we really don't know.
+# 'pass_all' -- all dependencies passed with no checks.
+# 'test_compile' -- check by making test program.
+# 'file_magic [[regex]]' -- check by looking for files in library path
+# which responds to the $file_magic_cmd with a given extended regex.
+# If you have `file' or equivalent on your system and you're not sure
+# whether `pass_all' will *always* work, you probably want this one.
+
+case $host_os in
+aix[4-9]*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+beos*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+bsdi[45]*)
+ lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)'
+ lt_cv_file_magic_cmd='/usr/bin/file -L'
+ lt_cv_file_magic_test_file=/shlib/libc.so
+ ;;
+
+cygwin*)
+ # func_win32_libid is a shell function defined in ltmain.sh
+ lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
+ lt_cv_file_magic_cmd='func_win32_libid'
+ ;;
+
+mingw* | pw32*)
+ # Base MSYS/MinGW do not provide the 'file' command needed by
+ # func_win32_libid shell function, so use a weaker test based on 'objdump',
+ # unless we find 'file', for example because we are cross-compiling.
+ if ( file / ) >/dev/null 2>&1; then
+ lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
+ lt_cv_file_magic_cmd='func_win32_libid'
+ else
+ lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?'
+ lt_cv_file_magic_cmd='$OBJDUMP -f'
+ fi
+ ;;
+
+cegcc)
+ # use the weaker test based on 'objdump'. See mingw*.
+ lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?'
+ lt_cv_file_magic_cmd='$OBJDUMP -f'
+ ;;
+
+darwin* | rhapsody*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+freebsd* | dragonfly*)
+ if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
+ case $host_cpu in
+ i*86 )
+ # Not sure whether the presence of OpenBSD here was a mistake.
+ # Let's accept both of them until this is cleared up.
+ lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library'
+ lt_cv_file_magic_cmd=/usr/bin/file
+ lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
+ ;;
+ esac
+ else
+ lt_cv_deplibs_check_method=pass_all
+ fi
+ ;;
+
+gnu*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+hpux10.20* | hpux11*)
+ lt_cv_file_magic_cmd=/usr/bin/file
+ case $host_cpu in
+ ia64*)
+ lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64'
+ lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so
+ ;;
+ hppa*64*)
+ lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]'
+ lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl
+ ;;
+ *)
+ lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9].[0-9]) shared library'
+ lt_cv_file_magic_test_file=/usr/lib/libc.sl
+ ;;
+ esac
+ ;;
+
+interix[3-9]*)
+ # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here
+ lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$'
+ ;;
+
+irix5* | irix6* | nonstopux*)
+ case $LD in
+ *-32|*"-32 ") libmagic=32-bit;;
+ *-n32|*"-n32 ") libmagic=N32;;
+ *-64|*"-64 ") libmagic=64-bit;;
+ *) libmagic=never-match;;
+ esac
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+# This must be Linux ELF.
+linux* | k*bsd*-gnu | kopensolaris*-gnu)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+netbsd* | netbsdelf*-gnu)
+ if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
+ lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$'
+ else
+ lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$'
+ fi
+ ;;
+
+newos6*)
+ lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)'
+ lt_cv_file_magic_cmd=/usr/bin/file
+ lt_cv_file_magic_test_file=/usr/lib/libnls.so
+ ;;
+
+*nto* | *qnx*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+openbsd*)
+ if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+ lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$'
+ else
+ lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$'
+ fi
+ ;;
+
+osf3* | osf4* | osf5*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+rdos*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+solaris*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+sysv4 | sysv4.3*)
+ case $host_vendor in
+ motorola)
+ lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]'
+ lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*`
+ ;;
+ ncr)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+ sequent)
+ lt_cv_file_magic_cmd='/bin/file'
+ lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )'
+ ;;
+ sni)
+ lt_cv_file_magic_cmd='/bin/file'
+ lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib"
+ lt_cv_file_magic_test_file=/lib/libc.so
+ ;;
+ siemens)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+ pc)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+ esac
+ ;;
+
+tpf*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+esac
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5
+$as_echo "$lt_cv_deplibs_check_method" >&6; }
+file_magic_cmd=$lt_cv_file_magic_cmd
+deplibs_check_method=$lt_cv_deplibs_check_method
+test -z "$deplibs_check_method" && deplibs_check_method=unknown
+
+
+
+
+
+
+
+
+
+
+
+
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
+set dummy ${ac_tool_prefix}ar; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_AR+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$AR"; then
+ ac_cv_prog_AR="$AR" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_AR="${ac_tool_prefix}ar"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+AR=$ac_cv_prog_AR
+if test -n "$AR"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
+$as_echo "$AR" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_AR"; then
+ ac_ct_AR=$AR
+ # Extract the first word of "ar", so it can be a program name with args.
+set dummy ar; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_ac_ct_AR+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_AR"; then
+ ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_ac_ct_AR="ar"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_AR=$ac_cv_prog_ac_ct_AR
+if test -n "$ac_ct_AR"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
+$as_echo "$ac_ct_AR" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_AR" = x; then
+ AR="false"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ AR=$ac_ct_AR
+ fi
+else
+ AR="$ac_cv_prog_AR"
+fi
+
+test -z "$AR" && AR=ar
+test -z "$AR_FLAGS" && AR_FLAGS=cru
+
+
+
+
+
+
+
+
+
+
+
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
+set dummy ${ac_tool_prefix}strip; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_STRIP+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$STRIP"; then
+ ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_STRIP="${ac_tool_prefix}strip"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+STRIP=$ac_cv_prog_STRIP
+if test -n "$STRIP"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5
+$as_echo "$STRIP" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_STRIP"; then
+ ac_ct_STRIP=$STRIP
+ # Extract the first word of "strip", so it can be a program name with args.
+set dummy strip; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_STRIP"; then
+ ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_ac_ct_STRIP="strip"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
+if test -n "$ac_ct_STRIP"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5
+$as_echo "$ac_ct_STRIP" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_STRIP" = x; then
+ STRIP=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ STRIP=$ac_ct_STRIP
+ fi
+else
+ STRIP="$ac_cv_prog_STRIP"
+fi
+
+test -z "$STRIP" && STRIP=:
+
+
+
+
+
+
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
+set dummy ${ac_tool_prefix}ranlib; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_RANLIB+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$RANLIB"; then
+ ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+RANLIB=$ac_cv_prog_RANLIB
+if test -n "$RANLIB"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5
+$as_echo "$RANLIB" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_RANLIB"; then
+ ac_ct_RANLIB=$RANLIB
+ # Extract the first word of "ranlib", so it can be a program name with args.
+set dummy ranlib; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_RANLIB"; then
+ ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_ac_ct_RANLIB="ranlib"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
+if test -n "$ac_ct_RANLIB"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5
+$as_echo "$ac_ct_RANLIB" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_RANLIB" = x; then
+ RANLIB=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ RANLIB=$ac_ct_RANLIB
+ fi
+else
+ RANLIB="$ac_cv_prog_RANLIB"
+fi
+
+test -z "$RANLIB" && RANLIB=:
+
+
+
+
+
+
+# Determine commands to create old-style static archives.
+old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs'
+old_postinstall_cmds='chmod 644 $oldlib'
+old_postuninstall_cmds=
+
+if test -n "$RANLIB"; then
+ case $host_os in
+ openbsd*)
+ old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib"
+ ;;
+ *)
+ old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib"
+ ;;
+ esac
+ old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib"
+fi
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+# If no C compiler was specified, use CC.
+LTCC=${LTCC-"$CC"}
+
+# If no C compiler flags were specified, use CFLAGS.
+LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
+
+# Allow CC to be a program name with arguments.
+compiler=$CC
+
+
+# Check for command to grab the raw symbol name followed by C symbol from nm.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5
+$as_echo_n "checking command to parse $NM output from $compiler object... " >&6; }
+if test "${lt_cv_sys_global_symbol_pipe+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+
+# These are sane defaults that work on at least a few old systems.
+# [They come from Ultrix. What could be older than Ultrix?!! ;)]
+
+# Character class describing NM global symbol codes.
+symcode='[BCDEGRST]'
+
+# Regexp to match symbols that can be accessed directly from C.
+sympat='\([_A-Za-z][_A-Za-z0-9]*\)'
+
+# Define system-specific variables.
+case $host_os in
+aix*)
+ symcode='[BCDT]'
+ ;;
+cygwin* | mingw* | pw32* | cegcc*)
+ symcode='[ABCDGISTW]'
+ ;;
+hpux*)
+ if test "$host_cpu" = ia64; then
+ symcode='[ABCDEGRST]'
+ fi
+ ;;
+irix* | nonstopux*)
+ symcode='[BCDEGRST]'
+ ;;
+osf*)
+ symcode='[BCDEGQRST]'
+ ;;
+solaris*)
+ symcode='[BDRT]'
+ ;;
+sco3.2v5*)
+ symcode='[DT]'
+ ;;
+sysv4.2uw2*)
+ symcode='[DT]'
+ ;;
+sysv5* | sco5v6* | unixware* | OpenUNIX*)
+ symcode='[ABDT]'
+ ;;
+sysv4)
+ symcode='[DFNSTU]'
+ ;;
+esac
+
+# If we're using GNU nm, then use its standard symbol codes.
+case `$NM -V 2>&1` in
+*GNU* | *'with BFD'*)
+ symcode='[ABCDGIRSTW]' ;;
+esac
+
+# Transform an extracted symbol line into a proper C declaration.
+# Some systems (esp. on ia64) link data and code symbols differently,
+# so use this general approach.
+lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
+
+# Transform an extracted symbol line into symbol name and symbol address
+lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'"
+lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'"
+
+# Handle CRLF in mingw tool chain
+opt_cr=
+case $build_os in
+mingw*)
+ opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp
+ ;;
+esac
+
+# Try without a prefix underscore, then with it.
+for ac_symprfx in "" "_"; do
+
+ # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol.
+ symxfrm="\\1 $ac_symprfx\\2 \\2"
+
+ # Write the raw and C identifiers.
+ if test "$lt_cv_nm_interface" = "MS dumpbin"; then
+ # Fake it for dumpbin and say T for any non-static function
+ # and D for any global variable.
+ # Also find C++ and __fastcall symbols from MSVC++,
+ # which start with @ or ?.
+ lt_cv_sys_global_symbol_pipe="$AWK '"\
+" {last_section=section; section=\$ 3};"\
+" /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\
+" \$ 0!~/External *\|/{next};"\
+" / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\
+" {if(hide[section]) next};"\
+" {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\
+" {split(\$ 0, a, /\||\r/); split(a[2], s)};"\
+" s[1]~/^[@?]/{print s[1], s[1]; next};"\
+" s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\
+" ' prfx=^$ac_symprfx"
+ else
+ lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
+ fi
+
+ # Check to see that the pipe works correctly.
+ pipe_works=no
+
+ rm -f conftest*
+ cat > conftest.$ac_ext <<_LT_EOF
+#ifdef __cplusplus
+extern "C" {
+#endif
+char nm_test_var;
+void nm_test_func(void);
+void nm_test_func(void){}
+#ifdef __cplusplus
+}
+#endif
+int main(){nm_test_var='a';nm_test_func();return(0);}
+_LT_EOF
+
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ # Now try to grab the symbols.
+ nlist=conftest.nm
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist\""; } >&5
+ (eval $NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && test -s "$nlist"; then
+ # Try sorting and uniquifying the output.
+ if sort "$nlist" | uniq > "$nlist"T; then
+ mv -f "$nlist"T "$nlist"
+ else
+ rm -f "$nlist"T
+ fi
+
+ # Make sure that we snagged all the symbols we need.
+ if $GREP ' nm_test_var$' "$nlist" >/dev/null; then
+ if $GREP ' nm_test_func$' "$nlist" >/dev/null; then
+ cat <<_LT_EOF > conftest.$ac_ext
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+_LT_EOF
+ # Now generate the symbol file.
+ eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext'
+
+ cat <<_LT_EOF >> conftest.$ac_ext
+
+/* The mapping between symbol names and symbols. */
+const struct {
+ const char *name;
+ void *address;
+}
+lt__PROGRAM__LTX_preloaded_symbols[] =
+{
+ { "@PROGRAM@", (void *) 0 },
+_LT_EOF
+ $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext
+ cat <<\_LT_EOF >> conftest.$ac_ext
+ {0, (void *) 0}
+};
+
+/* This works around a problem in FreeBSD linker */
+#ifdef FREEBSD_WORKAROUND
+static const void *lt_preloaded_setup() {
+ return lt__PROGRAM__LTX_preloaded_symbols;
+}
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+_LT_EOF
+ # Now try linking the two files.
+ mv conftest.$ac_objext conftstm.$ac_objext
+ lt_save_LIBS="$LIBS"
+ lt_save_CFLAGS="$CFLAGS"
+ LIBS="conftstm.$ac_objext"
+ CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag"
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && test -s conftest${ac_exeext}; then
+ pipe_works=yes
+ fi
+ LIBS="$lt_save_LIBS"
+ CFLAGS="$lt_save_CFLAGS"
+ else
+ echo "cannot find nm_test_func in $nlist" >&5
+ fi
+ else
+ echo "cannot find nm_test_var in $nlist" >&5
+ fi
+ else
+ echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5
+ fi
+ else
+ echo "$progname: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ fi
+ rm -rf conftest* conftst*
+
+ # Do not use the global_symbol_pipe unless it works.
+ if test "$pipe_works" = yes; then
+ break
+ else
+ lt_cv_sys_global_symbol_pipe=
+ fi
+done
+
+fi
+
+if test -z "$lt_cv_sys_global_symbol_pipe"; then
+ lt_cv_sys_global_symbol_to_cdecl=
+fi
+if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5
+$as_echo "failed" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
+$as_echo "ok" >&6; }
+fi
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+@%:@ Check whether --enable-libtool-lock was given.
+if test "${enable_libtool_lock+set}" = set; then :
+ enableval=$enable_libtool_lock;
+fi
+
+test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes
+
+# Some flags need to be propagated to the compiler or linker for good
+# libtool support.
+case $host in
+ia64-*-hpux*)
+ # Find out which ABI we are using.
+ echo 'int i;' > conftest.$ac_ext
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ case `/usr/bin/file conftest.$ac_objext` in
+ *ELF-32*)
+ HPUX_IA64_MODE="32"
+ ;;
+ *ELF-64*)
+ HPUX_IA64_MODE="64"
+ ;;
+ esac
+ fi
+ rm -rf conftest*
+ ;;
+*-*-irix6*)
+ # Find out which ABI we are using.
+ echo '#line __oline__ "configure"' > conftest.$ac_ext
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ if test "$lt_cv_prog_gnu_ld" = yes; then
+ case `/usr/bin/file conftest.$ac_objext` in
+ *32-bit*)
+ LD="${LD-ld} -melf32bsmip"
+ ;;
+ *N32*)
+ LD="${LD-ld} -melf32bmipn32"
+ ;;
+ *64-bit*)
+ LD="${LD-ld} -melf64bmip"
+ ;;
+ esac
+ else
+ case `/usr/bin/file conftest.$ac_objext` in
+ *32-bit*)
+ LD="${LD-ld} -32"
+ ;;
+ *N32*)
+ LD="${LD-ld} -n32"
+ ;;
+ *64-bit*)
+ LD="${LD-ld} -64"
+ ;;
+ esac
+ fi
+ fi
+ rm -rf conftest*
+ ;;
+
+x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \
+s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
+ # Find out which ABI we are using.
+ echo 'int i;' > conftest.$ac_ext
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ case `/usr/bin/file conftest.o` in
+ *32-bit*)
+ case $host in
+ x86_64-*kfreebsd*-gnu)
+ LD="${LD-ld} -m elf_i386_fbsd"
+ ;;
+ x86_64-*linux*)
+ LD="${LD-ld} -m elf_i386"
+ ;;
+ ppc64-*linux*|powerpc64-*linux*)
+ LD="${LD-ld} -m elf32ppclinux"
+ ;;
+ s390x-*linux*)
+ LD="${LD-ld} -m elf_s390"
+ ;;
+ sparc64-*linux*)
+ LD="${LD-ld} -m elf32_sparc"
+ ;;
+ esac
+ ;;
+ *64-bit*)
+ case $host in
+ x86_64-*kfreebsd*-gnu)
+ LD="${LD-ld} -m elf_x86_64_fbsd"
+ ;;
+ x86_64-*linux*)
+ LD="${LD-ld} -m elf_x86_64"
+ ;;
+ ppc*-*linux*|powerpc*-*linux*)
+ LD="${LD-ld} -m elf64ppc"
+ ;;
+ s390*-*linux*|s390*-*tpf*)
+ LD="${LD-ld} -m elf64_s390"
+ ;;
+ sparc*-*linux*)
+ LD="${LD-ld} -m elf64_sparc"
+ ;;
+ esac
+ ;;
+ esac
+ fi
+ rm -rf conftest*
+ ;;
+
+*-*-sco3.2v5*)
+ # On SCO OpenServer 5, we need -belf to get full-featured binaries.
+ SAVE_CFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS -belf"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5
+$as_echo_n "checking whether the C compiler needs -belf... " >&6; }
+if test "${lt_cv_cc_needs_belf+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ lt_cv_cc_needs_belf=yes
+else
+ lt_cv_cc_needs_belf=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5
+$as_echo "$lt_cv_cc_needs_belf" >&6; }
+ if test x"$lt_cv_cc_needs_belf" != x"yes"; then
+ # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
+ CFLAGS="$SAVE_CFLAGS"
+ fi
+ ;;
+sparc*-*solaris*)
+ # Find out which ABI we are using.
+ echo 'int i;' > conftest.$ac_ext
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ case `/usr/bin/file conftest.o` in
+ *64-bit*)
+ case $lt_cv_prog_gnu_ld in
+ yes*) LD="${LD-ld} -m elf64_sparc" ;;
+ *)
+ if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then
+ LD="${LD-ld} -64"
+ fi
+ ;;
+ esac
+ ;;
+ esac
+ fi
+ rm -rf conftest*
+ ;;
+esac
+
+need_locks="$enable_libtool_lock"
+
+
+ case $host_os in
+ rhapsody* | darwin*)
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args.
+set dummy ${ac_tool_prefix}dsymutil; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_DSYMUTIL+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$DSYMUTIL"; then
+ ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+DSYMUTIL=$ac_cv_prog_DSYMUTIL
+if test -n "$DSYMUTIL"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5
+$as_echo "$DSYMUTIL" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_DSYMUTIL"; then
+ ac_ct_DSYMUTIL=$DSYMUTIL
+ # Extract the first word of "dsymutil", so it can be a program name with args.
+set dummy dsymutil; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_ac_ct_DSYMUTIL+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_DSYMUTIL"; then
+ ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_ac_ct_DSYMUTIL="dsymutil"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL
+if test -n "$ac_ct_DSYMUTIL"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DSYMUTIL" >&5
+$as_echo "$ac_ct_DSYMUTIL" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_DSYMUTIL" = x; then
+ DSYMUTIL=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ DSYMUTIL=$ac_ct_DSYMUTIL
+ fi
+else
+ DSYMUTIL="$ac_cv_prog_DSYMUTIL"
+fi
+
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args.
+set dummy ${ac_tool_prefix}nmedit; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_NMEDIT+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$NMEDIT"; then
+ ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+NMEDIT=$ac_cv_prog_NMEDIT
+if test -n "$NMEDIT"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NMEDIT" >&5
+$as_echo "$NMEDIT" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_NMEDIT"; then
+ ac_ct_NMEDIT=$NMEDIT
+ # Extract the first word of "nmedit", so it can be a program name with args.
+set dummy nmedit; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_ac_ct_NMEDIT+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_NMEDIT"; then
+ ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_ac_ct_NMEDIT="nmedit"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT
+if test -n "$ac_ct_NMEDIT"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NMEDIT" >&5
+$as_echo "$ac_ct_NMEDIT" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_NMEDIT" = x; then
+ NMEDIT=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ NMEDIT=$ac_ct_NMEDIT
+ fi
+else
+ NMEDIT="$ac_cv_prog_NMEDIT"
+fi
+
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}lipo", so it can be a program name with args.
+set dummy ${ac_tool_prefix}lipo; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_LIPO+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$LIPO"; then
+ ac_cv_prog_LIPO="$LIPO" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_LIPO="${ac_tool_prefix}lipo"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+LIPO=$ac_cv_prog_LIPO
+if test -n "$LIPO"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIPO" >&5
+$as_echo "$LIPO" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_LIPO"; then
+ ac_ct_LIPO=$LIPO
+ # Extract the first word of "lipo", so it can be a program name with args.
+set dummy lipo; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_ac_ct_LIPO+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_LIPO"; then
+ ac_cv_prog_ac_ct_LIPO="$ac_ct_LIPO" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_ac_ct_LIPO="lipo"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_LIPO=$ac_cv_prog_ac_ct_LIPO
+if test -n "$ac_ct_LIPO"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LIPO" >&5
+$as_echo "$ac_ct_LIPO" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_LIPO" = x; then
+ LIPO=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ LIPO=$ac_ct_LIPO
+ fi
+else
+ LIPO="$ac_cv_prog_LIPO"
+fi
+
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}otool", so it can be a program name with args.
+set dummy ${ac_tool_prefix}otool; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_OTOOL+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$OTOOL"; then
+ ac_cv_prog_OTOOL="$OTOOL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_OTOOL="${ac_tool_prefix}otool"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+OTOOL=$ac_cv_prog_OTOOL
+if test -n "$OTOOL"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL" >&5
+$as_echo "$OTOOL" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_OTOOL"; then
+ ac_ct_OTOOL=$OTOOL
+ # Extract the first word of "otool", so it can be a program name with args.
+set dummy otool; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_ac_ct_OTOOL+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_OTOOL"; then
+ ac_cv_prog_ac_ct_OTOOL="$ac_ct_OTOOL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_ac_ct_OTOOL="otool"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_OTOOL=$ac_cv_prog_ac_ct_OTOOL
+if test -n "$ac_ct_OTOOL"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL" >&5
+$as_echo "$ac_ct_OTOOL" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_OTOOL" = x; then
+ OTOOL=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ OTOOL=$ac_ct_OTOOL
+ fi
+else
+ OTOOL="$ac_cv_prog_OTOOL"
+fi
+
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args.
+set dummy ${ac_tool_prefix}otool64; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_OTOOL64+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$OTOOL64"; then
+ ac_cv_prog_OTOOL64="$OTOOL64" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+OTOOL64=$ac_cv_prog_OTOOL64
+if test -n "$OTOOL64"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL64" >&5
+$as_echo "$OTOOL64" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_OTOOL64"; then
+ ac_ct_OTOOL64=$OTOOL64
+ # Extract the first word of "otool64", so it can be a program name with args.
+set dummy otool64; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_ac_ct_OTOOL64+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_OTOOL64"; then
+ ac_cv_prog_ac_ct_OTOOL64="$ac_ct_OTOOL64" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_ac_ct_OTOOL64="otool64"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64
+if test -n "$ac_ct_OTOOL64"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL64" >&5
+$as_echo "$ac_ct_OTOOL64" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_OTOOL64" = x; then
+ OTOOL64=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ OTOOL64=$ac_ct_OTOOL64
+ fi
+else
+ OTOOL64="$ac_cv_prog_OTOOL64"
+fi
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5
+$as_echo_n "checking for -single_module linker flag... " >&6; }
+if test "${lt_cv_apple_cc_single_mod+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_apple_cc_single_mod=no
+ if test -z "${LT_MULTI_MODULE}"; then
+ # By default we will add the -single_module flag. You can override
+ # by either setting the environment variable LT_MULTI_MODULE
+ # non-empty at configure time, or by adding -multi_module to the
+ # link flags.
+ rm -rf libconftest.dylib*
+ echo "int foo(void){return 1;}" > conftest.c
+ echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
+-dynamiclib -Wl,-single_module conftest.c" >&5
+ $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
+ -dynamiclib -Wl,-single_module conftest.c 2>conftest.err
+ _lt_result=$?
+ if test -f libconftest.dylib && test ! -s conftest.err && test $_lt_result = 0; then
+ lt_cv_apple_cc_single_mod=yes
+ else
+ cat conftest.err >&5
+ fi
+ rm -rf libconftest.dylib*
+ rm -f conftest.*
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5
+$as_echo "$lt_cv_apple_cc_single_mod" >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5
+$as_echo_n "checking for -exported_symbols_list linker flag... " >&6; }
+if test "${lt_cv_ld_exported_symbols_list+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_ld_exported_symbols_list=no
+ save_LDFLAGS=$LDFLAGS
+ echo "_main" > conftest.sym
+ LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ lt_cv_ld_exported_symbols_list=yes
+else
+ lt_cv_ld_exported_symbols_list=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ LDFLAGS="$save_LDFLAGS"
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5
+$as_echo "$lt_cv_ld_exported_symbols_list" >&6; }
+ case $host_os in
+ rhapsody* | darwin1.[012])
+ _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;;
+ darwin1.*)
+ _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
+ darwin*) # darwin 5.x on
+ # if running on 10.5 or later, the deployment target defaults
+ # to the OS version, if on x86, and 10.4, the deployment
+ # target defaults to 10.4. Don't you love it?
+ case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in
+ 10.0,*86*-darwin8*|10.0,*-darwin[91]*)
+ _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
+ 10.[012]*)
+ _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
+ 10.*)
+ _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
+ esac
+ ;;
+ esac
+ if test "$lt_cv_apple_cc_single_mod" = "yes"; then
+ _lt_dar_single_mod='$single_module'
+ fi
+ if test "$lt_cv_ld_exported_symbols_list" = "yes"; then
+ _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym'
+ else
+ _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}'
+ fi
+ if test "$DSYMUTIL" != ":"; then
+ _lt_dsymutil='~$DSYMUTIL $lib || :'
+ else
+ _lt_dsymutil=
+ fi
+ ;;
+ esac
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5
+$as_echo_n "checking how to run the C preprocessor... " >&6; }
+# On Suns, sometimes $CPP names a directory.
+if test -n "$CPP" && test -d "$CPP"; then
+ CPP=
+fi
+if test -z "$CPP"; then
+ if test "${ac_cv_prog_CPP+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ # Double quotes because CPP needs to be expanded
+ for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
+ do
+ ac_preproc_ok=false
+for ac_c_preproc_warn_flag in '' yes
+do
+ # Use a header file that comes with gcc, so configuring glibc
+ # with a fresh cross-compiler works.
+ # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ # <limits.h> exists even on freestanding compilers.
+ # On the NeXT, cc -E runs the code through the compiler's parser,
+ # not just through cpp. "Syntax error" is here to catch this case.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+@%:@ifdef __STDC__
+@%:@ include <limits.h>
+@%:@else
+@%:@ include <assert.h>
+@%:@endif
+ Syntax error
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+
+else
+ # Broken: fails on valid input.
+continue
+fi
+rm -f conftest.err conftest.$ac_ext
+
+ # OK, works on sane cases. Now check whether nonexistent headers
+ # can be detected and how.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+@%:@include <ac_nonexistent.h>
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+ # Broken: success on invalid input.
+continue
+else
+ # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+rm -f conftest.err conftest.$ac_ext
+
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then :
+ break
+fi
+
+ done
+ ac_cv_prog_CPP=$CPP
+
+fi
+ CPP=$ac_cv_prog_CPP
+else
+ ac_cv_prog_CPP=$CPP
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5
+$as_echo "$CPP" >&6; }
+ac_preproc_ok=false
+for ac_c_preproc_warn_flag in '' yes
+do
+ # Use a header file that comes with gcc, so configuring glibc
+ # with a fresh cross-compiler works.
+ # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ # <limits.h> exists even on freestanding compilers.
+ # On the NeXT, cc -E runs the code through the compiler's parser,
+ # not just through cpp. "Syntax error" is here to catch this case.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+@%:@ifdef __STDC__
+@%:@ include <limits.h>
+@%:@else
+@%:@ include <assert.h>
+@%:@endif
+ Syntax error
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+
+else
+ # Broken: fails on valid input.
+continue
+fi
+rm -f conftest.err conftest.$ac_ext
+
+ # OK, works on sane cases. Now check whether nonexistent headers
+ # can be detected and how.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+@%:@include <ac_nonexistent.h>
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+ # Broken: success on invalid input.
+continue
+else
+ # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+rm -f conftest.err conftest.$ac_ext
+
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then :
+
+else
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error "C preprocessor \"$CPP\" fails sanity check
+See \`config.log' for more details." "$LINENO" 5; }
+fi
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
+$as_echo_n "checking for ANSI C header files... " >&6; }
+if test "${ac_cv_header_stdc+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdlib.h>
+#include <stdarg.h>
+#include <string.h>
+#include <float.h>
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_header_stdc=yes
+else
+ ac_cv_header_stdc=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+if test $ac_cv_header_stdc = yes; then
+ # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <string.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "memchr" >/dev/null 2>&1; then :
+
+else
+ ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+ # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdlib.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "free" >/dev/null 2>&1; then :
+
+else
+ ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+ # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
+ if test "$cross_compiling" = yes; then :
+ :
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <ctype.h>
+#include <stdlib.h>
+#if ((' ' & 0x0FF) == 0x020)
+# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
+# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
+#else
+# define ISLOWER(c) \
+ (('a' <= (c) && (c) <= 'i') \
+ || ('j' <= (c) && (c) <= 'r') \
+ || ('s' <= (c) && (c) <= 'z'))
+# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
+#endif
+
+#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
+int
+main ()
+{
+ int i;
+ for (i = 0; i < 256; i++)
+ if (XOR (islower (i), ISLOWER (i))
+ || toupper (i) != TOUPPER (i))
+ return 2;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+
+else
+ ac_cv_header_stdc=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5
+$as_echo "$ac_cv_header_stdc" >&6; }
+if test $ac_cv_header_stdc = yes; then
+
+$as_echo "@%:@define STDC_HEADERS 1" >>confdefs.h
+
+fi
+
+# On IRIX 5.3, sys/types and inttypes.h are conflicting.
+for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
+ inttypes.h stdint.h unistd.h
+do :
+ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
+"
+eval as_val=\$$as_ac_Header
+ if test "x$as_val" = x""yes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+
+for ac_header in dlfcn.h
+do :
+ ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default
+"
+if test "x$ac_cv_header_dlfcn_h" = x""yes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_DLFCN_H 1
+_ACEOF
+
+fi
+
+done
+
+
+
+ac_ext=cpp
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+if test -z "$CXX"; then
+ if test -n "$CCC"; then
+ CXX=$CCC
+ else
+ if test -n "$ac_tool_prefix"; then
+ for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC
+ do
+ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_CXX+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$CXX"; then
+ ac_cv_prog_CXX="$CXX" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_CXX="$ac_tool_prefix$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+CXX=$ac_cv_prog_CXX
+if test -n "$CXX"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXX" >&5
+$as_echo "$CXX" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$CXX" && break
+ done
+fi
+if test -z "$CXX"; then
+ ac_ct_CXX=$CXX
+ for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_CXX"; then
+ ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_ac_ct_CXX="$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_CXX=$ac_cv_prog_ac_ct_CXX
+if test -n "$ac_ct_CXX"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CXX" >&5
+$as_echo "$ac_ct_CXX" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$ac_ct_CXX" && break
+done
+
+ if test "x$ac_ct_CXX" = x; then
+ CXX="g++"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ CXX=$ac_ct_CXX
+ fi
+fi
+
+ fi
+fi
+# Provide some information about the compiler.
+$as_echo "$as_me:${as_lineno-$LINENO}: checking for C++ compiler version" >&5
+set X $ac_compile
+ac_compiler=$2
+for ac_option in --version -v -V -qversion; do
+ { { ac_try="$ac_compiler $ac_option >&5"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_compiler $ac_option >&5") 2>conftest.err
+ ac_status=$?
+ if test -s conftest.err; then
+ sed '10a\
+... rest of stderr output deleted ...
+ 10q' conftest.err >conftest.er1
+ cat conftest.er1 >&5
+ fi
+ rm -f conftest.er1 conftest.err
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+done
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C++ compiler" >&5
+$as_echo_n "checking whether we are using the GNU C++ compiler... " >&6; }
+if test "${ac_cv_cxx_compiler_gnu+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+#ifndef __GNUC__
+ choke me
+#endif
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_compile "$LINENO"; then :
+ ac_compiler_gnu=yes
+else
+ ac_compiler_gnu=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ac_cv_cxx_compiler_gnu=$ac_compiler_gnu
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cxx_compiler_gnu" >&5
+$as_echo "$ac_cv_cxx_compiler_gnu" >&6; }
+if test $ac_compiler_gnu = yes; then
+ GXX=yes
+else
+ GXX=
+fi
+ac_test_CXXFLAGS=${CXXFLAGS+set}
+ac_save_CXXFLAGS=$CXXFLAGS
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX accepts -g" >&5
+$as_echo_n "checking whether $CXX accepts -g... " >&6; }
+if test "${ac_cv_prog_cxx_g+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_save_cxx_werror_flag=$ac_cxx_werror_flag
+ ac_cxx_werror_flag=yes
+ ac_cv_prog_cxx_g=no
+ CXXFLAGS="-g"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_compile "$LINENO"; then :
+ ac_cv_prog_cxx_g=yes
+else
+ CXXFLAGS=""
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_compile "$LINENO"; then :
+
+else
+ ac_cxx_werror_flag=$ac_save_cxx_werror_flag
+ CXXFLAGS="-g"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_compile "$LINENO"; then :
+ ac_cv_prog_cxx_g=yes
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ ac_cxx_werror_flag=$ac_save_cxx_werror_flag
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_g" >&5
+$as_echo "$ac_cv_prog_cxx_g" >&6; }
+if test "$ac_test_CXXFLAGS" = set; then
+ CXXFLAGS=$ac_save_CXXFLAGS
+elif test $ac_cv_prog_cxx_g = yes; then
+ if test "$GXX" = yes; then
+ CXXFLAGS="-g -O2"
+ else
+ CXXFLAGS="-g"
+ fi
+else
+ if test "$GXX" = yes; then
+ CXXFLAGS="-O2"
+ else
+ CXXFLAGS=
+ fi
+fi
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+depcc="$CXX" am_compiler_list=
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
+$as_echo_n "checking dependency style of $depcc... " >&6; }
+if test "${am_cv_CXX_dependencies_compiler_type+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
+ # We make a subdir and do the tests there. Otherwise we can end up
+ # making bogus files that we don't know about and never remove. For
+ # instance it was reported that on HP-UX the gcc test will end up
+ # making a dummy file named `D' -- because `-MD' means `put the output
+ # in D'.
+ mkdir conftest.dir
+ # Copy depcomp to subdir because otherwise we won't find it if we're
+ # using a relative directory.
+ cp "$am_depcomp" conftest.dir
+ cd conftest.dir
+ # We will build objects and dependencies in a subdirectory because
+ # it helps to detect inapplicable dependency modes. For instance
+ # both Tru64's cc and ICC support -MD to output dependencies as a
+ # side effect of compilation, but ICC will put the dependencies in
+ # the current directory while Tru64 will put them in the object
+ # directory.
+ mkdir sub
+
+ am_cv_CXX_dependencies_compiler_type=none
+ if test "$am_compiler_list" = ""; then
+ am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
+ fi
+ am__universal=false
+ case " $depcc " in #(
+ *\ -arch\ *\ -arch\ *) am__universal=true ;;
+ esac
+
+ for depmode in $am_compiler_list; do
+ # Setup a source with many dependencies, because some compilers
+ # like to wrap large dependency lists on column 80 (with \), and
+ # we should not choose a depcomp mode which is confused by this.
+ #
+ # We need to recreate these files for each test, as the compiler may
+ # overwrite some of them when testing with obscure command lines.
+ # This happens at least with the AIX C compiler.
+ : > sub/conftest.c
+ for i in 1 2 3 4 5 6; do
+ echo '#include "conftst'$i'.h"' >> sub/conftest.c
+ # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
+ # Solaris 8's {/usr,}/bin/sh.
+ touch sub/conftst$i.h
+ done
+ echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
+
+ # We check with `-c' and `-o' for the sake of the "dashmstdout"
+ # mode. It turns out that the SunPro C++ compiler does not properly
+ # handle `-M -o', and we need to detect this. Also, some Intel
+ # versions had trouble with output in subdirs
+ am__obj=sub/conftest.${OBJEXT-o}
+ am__minus_obj="-o $am__obj"
+ case $depmode in
+ gcc)
+ # This depmode causes a compiler race in universal mode.
+ test "$am__universal" = false || continue
+ ;;
+ nosideeffect)
+ # after this tag, mechanisms are not by side-effect, so they'll
+ # only be used when explicitly requested
+ if test "x$enable_dependency_tracking" = xyes; then
+ continue
+ else
+ break
+ fi
+ ;;
+ msvisualcpp | msvcmsys)
+ # This compiler won't grok `-c -o', but also, the minuso test has
+ # not run yet. These depmodes are late enough in the game, and
+ # so weak that their functioning should not be impacted.
+ am__obj=conftest.${OBJEXT-o}
+ am__minus_obj=
+ ;;
+ none) break ;;
+ esac
+ if depmode=$depmode \
+ source=sub/conftest.c object=$am__obj \
+ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
+ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
+ >/dev/null 2>conftest.err &&
+ grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
+ grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
+ grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
+ ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
+ # icc doesn't choke on unknown options, it will just issue warnings
+ # or remarks (even with -Werror). So we grep stderr for any message
+ # that says an option was ignored or not supported.
+ # When given -MP, icc 7.0 and 7.1 complain thusly:
+ # icc: Command line warning: ignoring option '-M'; no argument required
+ # The diagnosis changed in icc 8.0:
+ # icc: Command line remark: option '-MP' not supported
+ if (grep 'ignoring option' conftest.err ||
+ grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
+ am_cv_CXX_dependencies_compiler_type=$depmode
+ break
+ fi
+ fi
+ done
+
+ cd ..
+ rm -rf conftest.dir
+else
+ am_cv_CXX_dependencies_compiler_type=none
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CXX_dependencies_compiler_type" >&5
+$as_echo "$am_cv_CXX_dependencies_compiler_type" >&6; }
+CXXDEPMODE=depmode=$am_cv_CXX_dependencies_compiler_type
+
+ if
+ test "x$enable_dependency_tracking" != xno \
+ && test "$am_cv_CXX_dependencies_compiler_type" = gcc3; then
+ am__fastdepCXX_TRUE=
+ am__fastdepCXX_FALSE='#'
+else
+ am__fastdepCXX_TRUE='#'
+ am__fastdepCXX_FALSE=
+fi
+
+
+if test -n "$CXX" && ( test "X$CXX" != "Xno" &&
+ ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) ||
+ (test "X$CXX" != "Xg++"))) ; then
+ ac_ext=cpp
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C++ preprocessor" >&5
+$as_echo_n "checking how to run the C++ preprocessor... " >&6; }
+if test -z "$CXXCPP"; then
+ if test "${ac_cv_prog_CXXCPP+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ # Double quotes because CXXCPP needs to be expanded
+ for CXXCPP in "$CXX -E" "/lib/cpp"
+ do
+ ac_preproc_ok=false
+for ac_cxx_preproc_warn_flag in '' yes
+do
+ # Use a header file that comes with gcc, so configuring glibc
+ # with a fresh cross-compiler works.
+ # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ # <limits.h> exists even on freestanding compilers.
+ # On the NeXT, cc -E runs the code through the compiler's parser,
+ # not just through cpp. "Syntax error" is here to catch this case.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+@%:@ifdef __STDC__
+@%:@ include <limits.h>
+@%:@else
+@%:@ include <assert.h>
+@%:@endif
+ Syntax error
+_ACEOF
+if ac_fn_cxx_try_cpp "$LINENO"; then :
+
+else
+ # Broken: fails on valid input.
+continue
+fi
+rm -f conftest.err conftest.$ac_ext
+
+ # OK, works on sane cases. Now check whether nonexistent headers
+ # can be detected and how.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+@%:@include <ac_nonexistent.h>
+_ACEOF
+if ac_fn_cxx_try_cpp "$LINENO"; then :
+ # Broken: success on invalid input.
+continue
+else
+ # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+rm -f conftest.err conftest.$ac_ext
+
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then :
+ break
+fi
+
+ done
+ ac_cv_prog_CXXCPP=$CXXCPP
+
+fi
+ CXXCPP=$ac_cv_prog_CXXCPP
+else
+ ac_cv_prog_CXXCPP=$CXXCPP
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXXCPP" >&5
+$as_echo "$CXXCPP" >&6; }
+ac_preproc_ok=false
+for ac_cxx_preproc_warn_flag in '' yes
+do
+ # Use a header file that comes with gcc, so configuring glibc
+ # with a fresh cross-compiler works.
+ # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ # <limits.h> exists even on freestanding compilers.
+ # On the NeXT, cc -E runs the code through the compiler's parser,
+ # not just through cpp. "Syntax error" is here to catch this case.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+@%:@ifdef __STDC__
+@%:@ include <limits.h>
+@%:@else
+@%:@ include <assert.h>
+@%:@endif
+ Syntax error
+_ACEOF
+if ac_fn_cxx_try_cpp "$LINENO"; then :
+
+else
+ # Broken: fails on valid input.
+continue
+fi
+rm -f conftest.err conftest.$ac_ext
+
+ # OK, works on sane cases. Now check whether nonexistent headers
+ # can be detected and how.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+@%:@include <ac_nonexistent.h>
+_ACEOF
+if ac_fn_cxx_try_cpp "$LINENO"; then :
+ # Broken: success on invalid input.
+continue
+else
+ # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+rm -f conftest.err conftest.$ac_ext
+
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then :
+
+else
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+_lt_caught_CXX_error=yes; }
+fi
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+else
+ _lt_caught_CXX_error=yes
+fi
+
+
+
+
+
+# Set options
+
+
+
+ enable_dlopen=no
+
+
+ enable_win32_dll=no
+
+
+ @%:@ Check whether --enable-shared was given.
+if test "${enable_shared+set}" = set; then :
+ enableval=$enable_shared; p=${PACKAGE-default}
+ case $enableval in
+ yes) enable_shared=yes ;;
+ no) enable_shared=no ;;
+ *)
+ enable_shared=no
+ # Look at the argument we got. We use all the common list separators.
+ lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+ for pkg in $enableval; do
+ IFS="$lt_save_ifs"
+ if test "X$pkg" = "X$p"; then
+ enable_shared=yes
+ fi
+ done
+ IFS="$lt_save_ifs"
+ ;;
+ esac
+else
+ enable_shared=yes
+fi
+
+
+
+
+
+
+
+
+
+ @%:@ Check whether --enable-static was given.
+if test "${enable_static+set}" = set; then :
+ enableval=$enable_static; p=${PACKAGE-default}
+ case $enableval in
+ yes) enable_static=yes ;;
+ no) enable_static=no ;;
+ *)
+ enable_static=no
+ # Look at the argument we got. We use all the common list separators.
+ lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+ for pkg in $enableval; do
+ IFS="$lt_save_ifs"
+ if test "X$pkg" = "X$p"; then
+ enable_static=yes
+ fi
+ done
+ IFS="$lt_save_ifs"
+ ;;
+ esac
+else
+ enable_static=yes
+fi
+
+
+
+
+
+
+
+
+
+
+@%:@ Check whether --with-pic was given.
+if test "${with_pic+set}" = set; then :
+ withval=$with_pic; pic_mode="$withval"
+else
+ pic_mode=default
+fi
+
+
+test -z "$pic_mode" && pic_mode=default
+
+
+
+
+
+
+
+ @%:@ Check whether --enable-fast-install was given.
+if test "${enable_fast_install+set}" = set; then :
+ enableval=$enable_fast_install; p=${PACKAGE-default}
+ case $enableval in
+ yes) enable_fast_install=yes ;;
+ no) enable_fast_install=no ;;
+ *)
+ enable_fast_install=no
+ # Look at the argument we got. We use all the common list separators.
+ lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+ for pkg in $enableval; do
+ IFS="$lt_save_ifs"
+ if test "X$pkg" = "X$p"; then
+ enable_fast_install=yes
+ fi
+ done
+ IFS="$lt_save_ifs"
+ ;;
+ esac
+else
+ enable_fast_install=yes
+fi
+
+
+
+
+
+
+
+
+
+
+
+# This can be used to rebuild libtool when needed
+LIBTOOL_DEPS="$ltmain"
+
+# Always use our own libtool.
+LIBTOOL='$(SHELL) $(top_builddir)/libtool'
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+test -z "$LN_S" && LN_S="ln -s"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+if test -n "${ZSH_VERSION+set}" ; then
+ setopt NO_GLOB_SUBST
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5
+$as_echo_n "checking for objdir... " >&6; }
+if test "${lt_cv_objdir+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ rm -f .libs 2>/dev/null
+mkdir .libs 2>/dev/null
+if test -d .libs; then
+ lt_cv_objdir=.libs
+else
+ # MS-DOS does not allow filenames that begin with a dot.
+ lt_cv_objdir=_libs
+fi
+rmdir .libs 2>/dev/null
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5
+$as_echo "$lt_cv_objdir" >&6; }
+objdir=$lt_cv_objdir
+
+
+
+
+
+cat >>confdefs.h <<_ACEOF
+@%:@define LT_OBJDIR "$lt_cv_objdir/"
+_ACEOF
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+case $host_os in
+aix3*)
+ # AIX sometimes has problems with the GCC collect2 program. For some
+ # reason, if we set the COLLECT_NAMES environment variable, the problems
+ # vanish in a puff of smoke.
+ if test "X${COLLECT_NAMES+set}" != Xset; then
+ COLLECT_NAMES=
+ export COLLECT_NAMES
+ fi
+ ;;
+esac
+
+# Sed substitution that helps us do robust quoting. It backslashifies
+# metacharacters that are still active within double-quoted strings.
+sed_quote_subst='s/\(["`$\\]\)/\\\1/g'
+
+# Same as above, but do not quote variable references.
+double_quote_subst='s/\(["`\\]\)/\\\1/g'
+
+# Sed substitution to delay expansion of an escaped shell variable in a
+# double_quote_subst'ed string.
+delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
+
+# Sed substitution to delay expansion of an escaped single quote.
+delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g'
+
+# Sed substitution to avoid accidental globbing in evaled expressions
+no_glob_subst='s/\*/\\\*/g'
+
+# Global variables:
+ofile=libtool
+can_build_shared=yes
+
+# All known linkers require a `.a' archive for static linking (except MSVC,
+# which needs '.lib').
+libext=a
+
+with_gnu_ld="$lt_cv_prog_gnu_ld"
+
+old_CC="$CC"
+old_CFLAGS="$CFLAGS"
+
+# Set sane defaults for various variables
+test -z "$CC" && CC=cc
+test -z "$LTCC" && LTCC=$CC
+test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS
+test -z "$LD" && LD=ld
+test -z "$ac_objext" && ac_objext=o
+
+for cc_temp in $compiler""; do
+ case $cc_temp in
+ compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
+ distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
+ \-*) ;;
+ *) break;;
+ esac
+done
+cc_basename=`$ECHO "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
+
+
+# Only perform the check for file, if the check method requires it
+test -z "$MAGIC_CMD" && MAGIC_CMD=file
+case $deplibs_check_method in
+file_magic*)
+ if test "$file_magic_cmd" = '$MAGIC_CMD'; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5
+$as_echo_n "checking for ${ac_tool_prefix}file... " >&6; }
+if test "${lt_cv_path_MAGIC_CMD+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $MAGIC_CMD in
+[\\/*] | ?:[\\/]*)
+ lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
+ ;;
+*)
+ lt_save_MAGIC_CMD="$MAGIC_CMD"
+ lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+ ac_dummy="/usr/bin$PATH_SEPARATOR$PATH"
+ for ac_dir in $ac_dummy; do
+ IFS="$lt_save_ifs"
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/${ac_tool_prefix}file; then
+ lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file"
+ if test -n "$file_magic_test_file"; then
+ case $deplibs_check_method in
+ "file_magic "*)
+ file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
+ MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+ if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
+ $EGREP "$file_magic_regex" > /dev/null; then
+ :
+ else
+ cat <<_LT_EOF 1>&2
+
+*** Warning: the command libtool uses to detect shared libraries,
+*** $file_magic_cmd, produces output that libtool cannot recognize.
+*** The result is that libtool may fail to recognize shared libraries
+*** as such. This will affect the creation of libtool libraries that
+*** depend on shared libraries, but programs linked with such libtool
+*** libraries will work regardless of this problem. Nevertheless, you
+*** may want to report the problem to your system manager and/or to
+*** bug-libtool@gnu.org
+
+_LT_EOF
+ fi ;;
+ esac
+ fi
+ break
+ fi
+ done
+ IFS="$lt_save_ifs"
+ MAGIC_CMD="$lt_save_MAGIC_CMD"
+ ;;
+esac
+fi
+
+MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+if test -n "$MAGIC_CMD"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5
+$as_echo "$MAGIC_CMD" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+
+
+
+if test -z "$lt_cv_path_MAGIC_CMD"; then
+ if test -n "$ac_tool_prefix"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for file" >&5
+$as_echo_n "checking for file... " >&6; }
+if test "${lt_cv_path_MAGIC_CMD+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $MAGIC_CMD in
+[\\/*] | ?:[\\/]*)
+ lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
+ ;;
+*)
+ lt_save_MAGIC_CMD="$MAGIC_CMD"
+ lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+ ac_dummy="/usr/bin$PATH_SEPARATOR$PATH"
+ for ac_dir in $ac_dummy; do
+ IFS="$lt_save_ifs"
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/file; then
+ lt_cv_path_MAGIC_CMD="$ac_dir/file"
+ if test -n "$file_magic_test_file"; then
+ case $deplibs_check_method in
+ "file_magic "*)
+ file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
+ MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+ if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
+ $EGREP "$file_magic_regex" > /dev/null; then
+ :
+ else
+ cat <<_LT_EOF 1>&2
+
+*** Warning: the command libtool uses to detect shared libraries,
+*** $file_magic_cmd, produces output that libtool cannot recognize.
+*** The result is that libtool may fail to recognize shared libraries
+*** as such. This will affect the creation of libtool libraries that
+*** depend on shared libraries, but programs linked with such libtool
+*** libraries will work regardless of this problem. Nevertheless, you
+*** may want to report the problem to your system manager and/or to
+*** bug-libtool@gnu.org
+
+_LT_EOF
+ fi ;;
+ esac
+ fi
+ break
+ fi
+ done
+ IFS="$lt_save_ifs"
+ MAGIC_CMD="$lt_save_MAGIC_CMD"
+ ;;
+esac
+fi
+
+MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+if test -n "$MAGIC_CMD"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5
+$as_echo "$MAGIC_CMD" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ else
+ MAGIC_CMD=:
+ fi
+fi
+
+ fi
+ ;;
+esac
+
+# Use C for the default configuration in the libtool script
+
+lt_save_CC="$CC"
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+# Source file extension for C test sources.
+ac_ext=c
+
+# Object file extension for compiled C test sources.
+objext=o
+objext=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code="int some_variable = 0;"
+
+# Code to be used in simple link tests
+lt_simple_link_test_code='int main(){return(0);}'
+
+
+
+
+
+
+
+# If no C compiler was specified, use CC.
+LTCC=${LTCC-"$CC"}
+
+# If no C compiler flags were specified, use CFLAGS.
+LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
+
+# Allow CC to be a program name with arguments.
+compiler=$CC
+
+# Save the default compiler, since it gets overwritten when the other
+# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP.
+compiler_DEFAULT=$CC
+
+# save warnings/boilerplate of simple test code
+ac_outfile=conftest.$ac_objext
+echo "$lt_simple_compile_test_code" >conftest.$ac_ext
+eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
+_lt_compiler_boilerplate=`cat conftest.err`
+$RM conftest*
+
+ac_outfile=conftest.$ac_objext
+echo "$lt_simple_link_test_code" >conftest.$ac_ext
+eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
+_lt_linker_boilerplate=`cat conftest.err`
+$RM -r conftest*
+
+
+## CAVEAT EMPTOR:
+## There is no encapsulation within the following macros, do not change
+## the running order or otherwise move them around unless you know exactly
+## what you are doing...
+if test -n "$compiler"; then
+
+lt_prog_compiler_no_builtin_flag=
+
+if test "$GCC" = yes; then
+ lt_prog_compiler_no_builtin_flag=' -fno-builtin'
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5
+$as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; }
+if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_prog_compiler_rtti_exceptions=no
+ ac_outfile=conftest.$ac_objext
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+ lt_compiler_flag="-fno-rtti -fno-exceptions"
+ # Insert the option either (1) after the last *FLAGS variable, or
+ # (2) before a word containing "conftest.", or (3) at the end.
+ # Note that $ac_compile itself does not contain backslashes and begins
+ # with a dollar sign (not a hyphen), so the echo should work correctly.
+ # The option is referenced via a variable to avoid confusing sed.
+ lt_compile=`echo "$ac_compile" | $SED \
+ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+ -e 's:$: $lt_compiler_flag:'`
+ (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&5)
+ (eval "$lt_compile" 2>conftest.err)
+ ac_status=$?
+ cat conftest.err >&5
+ echo "$as_me:__oline__: \$? = $ac_status" >&5
+ if (exit $ac_status) && test -s "$ac_outfile"; then
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings other than the usual output.
+ $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp
+ $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+ if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
+ lt_cv_prog_compiler_rtti_exceptions=yes
+ fi
+ fi
+ $RM conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5
+$as_echo "$lt_cv_prog_compiler_rtti_exceptions" >&6; }
+
+if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then
+ lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions"
+else
+ :
+fi
+
+fi
+
+
+
+
+
+
+ lt_prog_compiler_wl=
+lt_prog_compiler_pic=
+lt_prog_compiler_static=
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5
+$as_echo_n "checking for $compiler option to produce PIC... " >&6; }
+
+ if test "$GCC" = yes; then
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_static='-static'
+
+ case $host_os in
+ aix*)
+ # All AIX code is PIC.
+ if test "$host_cpu" = ia64; then
+ # AIX 5 now supports IA64 processor
+ lt_prog_compiler_static='-Bstatic'
+ fi
+ ;;
+
+ amigaos*)
+ case $host_cpu in
+ powerpc)
+ # see comment about AmigaOS4 .so support
+ lt_prog_compiler_pic='-fPIC'
+ ;;
+ m68k)
+ # FIXME: we need at least 68020 code to build shared libraries, but
+ # adding the `-m68020' flag to GCC prevents building anything better,
+ # like `-m68040'.
+ lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4'
+ ;;
+ esac
+ ;;
+
+ beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+ # PIC is the default for these OSes.
+ ;;
+
+ mingw* | cygwin* | pw32* | os2* | cegcc*)
+ # This hack is so that the source file can tell whether it is being
+ # built for inclusion in a dll (and should export symbols for example).
+ # Although the cygwin gcc ignores -fPIC, still need this for old-style
+ # (--disable-auto-import) libraries
+ lt_prog_compiler_pic='-DDLL_EXPORT'
+ ;;
+
+ darwin* | rhapsody*)
+ # PIC is the default on this platform
+ # Common symbols not allowed in MH_DYLIB files
+ lt_prog_compiler_pic='-fno-common'
+ ;;
+
+ hpux*)
+ # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
+ # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag
+ # sets the default TLS model and affects inlining.
+ case $host_cpu in
+ hppa*64*)
+ # +Z the default
+ ;;
+ *)
+ lt_prog_compiler_pic='-fPIC'
+ ;;
+ esac
+ ;;
+
+ interix[3-9]*)
+ # Interix 3.x gcc -fpic/-fPIC options generate broken code.
+ # Instead, we relocate shared libraries at runtime.
+ ;;
+
+ msdosdjgpp*)
+ # Just because we use GCC doesn't mean we suddenly get shared libraries
+ # on systems that don't support them.
+ lt_prog_compiler_can_build_shared=no
+ enable_shared=no
+ ;;
+
+ *nto* | *qnx*)
+ # QNX uses GNU C++, but need to define -shared option too, otherwise
+ # it will coredump.
+ lt_prog_compiler_pic='-fPIC -shared'
+ ;;
+
+ sysv4*MP*)
+ if test -d /usr/nec; then
+ lt_prog_compiler_pic=-Kconform_pic
+ fi
+ ;;
+
+ *)
+ lt_prog_compiler_pic='-fPIC'
+ ;;
+ esac
+ else
+ # PORTME Check for flag to pass linker flags through the system compiler.
+ case $host_os in
+ aix*)
+ lt_prog_compiler_wl='-Wl,'
+ if test "$host_cpu" = ia64; then
+ # AIX 5 now supports IA64 processor
+ lt_prog_compiler_static='-Bstatic'
+ else
+ lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp'
+ fi
+ ;;
+
+ mingw* | cygwin* | pw32* | os2* | cegcc*)
+ # This hack is so that the source file can tell whether it is being
+ # built for inclusion in a dll (and should export symbols for example).
+ lt_prog_compiler_pic='-DDLL_EXPORT'
+ ;;
+
+ hpux9* | hpux10* | hpux11*)
+ lt_prog_compiler_wl='-Wl,'
+ # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
+ # not for PA HP-UX.
+ case $host_cpu in
+ hppa*64*|ia64*)
+ # +Z the default
+ ;;
+ *)
+ lt_prog_compiler_pic='+Z'
+ ;;
+ esac
+ # Is there a better lt_prog_compiler_static that works with the bundled CC?
+ lt_prog_compiler_static='${wl}-a ${wl}archive'
+ ;;
+
+ irix5* | irix6* | nonstopux*)
+ lt_prog_compiler_wl='-Wl,'
+ # PIC (with -KPIC) is the default.
+ lt_prog_compiler_static='-non_shared'
+ ;;
+
+ linux* | k*bsd*-gnu | kopensolaris*-gnu)
+ case $cc_basename in
+ # old Intel for x86_64 which still supported -KPIC.
+ ecc*)
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_pic='-KPIC'
+ lt_prog_compiler_static='-static'
+ ;;
+ # icc used to be incompatible with GCC.
+ # ICC 10 doesn't accept -KPIC any more.
+ icc* | ifort*)
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_pic='-fPIC'
+ lt_prog_compiler_static='-static'
+ ;;
+ # Lahey Fortran 8.1.
+ lf95*)
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_pic='--shared'
+ lt_prog_compiler_static='--static'
+ ;;
+ pgcc* | pgf77* | pgf90* | pgf95*)
+ # Portland Group compilers (*not* the Pentium gcc compiler,
+ # which looks to be a dead project)
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_pic='-fpic'
+ lt_prog_compiler_static='-Bstatic'
+ ;;
+ ccc*)
+ lt_prog_compiler_wl='-Wl,'
+ # All Alpha code is PIC.
+ lt_prog_compiler_static='-non_shared'
+ ;;
+ xl*)
+ # IBM XL C 8.0/Fortran 10.1 on PPC
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_pic='-qpic'
+ lt_prog_compiler_static='-qstaticlink'
+ ;;
+ *)
+ case `$CC -V 2>&1 | sed 5q` in
+ *Sun\ C*)
+ # Sun C 5.9
+ lt_prog_compiler_pic='-KPIC'
+ lt_prog_compiler_static='-Bstatic'
+ lt_prog_compiler_wl='-Wl,'
+ ;;
+ *Sun\ F*)
+ # Sun Fortran 8.3 passes all unrecognized flags to the linker
+ lt_prog_compiler_pic='-KPIC'
+ lt_prog_compiler_static='-Bstatic'
+ lt_prog_compiler_wl=''
+ ;;
+ esac
+ ;;
+ esac
+ ;;
+
+ newsos6)
+ lt_prog_compiler_pic='-KPIC'
+ lt_prog_compiler_static='-Bstatic'
+ ;;
+
+ *nto* | *qnx*)
+ # QNX uses GNU C++, but need to define -shared option too, otherwise
+ # it will coredump.
+ lt_prog_compiler_pic='-fPIC -shared'
+ ;;
+
+ osf3* | osf4* | osf5*)
+ lt_prog_compiler_wl='-Wl,'
+ # All OSF/1 code is PIC.
+ lt_prog_compiler_static='-non_shared'
+ ;;
+
+ rdos*)
+ lt_prog_compiler_static='-non_shared'
+ ;;
+
+ solaris*)
+ lt_prog_compiler_pic='-KPIC'
+ lt_prog_compiler_static='-Bstatic'
+ case $cc_basename in
+ f77* | f90* | f95*)
+ lt_prog_compiler_wl='-Qoption ld ';;
+ *)
+ lt_prog_compiler_wl='-Wl,';;
+ esac
+ ;;
+
+ sunos4*)
+ lt_prog_compiler_wl='-Qoption ld '
+ lt_prog_compiler_pic='-PIC'
+ lt_prog_compiler_static='-Bstatic'
+ ;;
+
+ sysv4 | sysv4.2uw2* | sysv4.3*)
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_pic='-KPIC'
+ lt_prog_compiler_static='-Bstatic'
+ ;;
+
+ sysv4*MP*)
+ if test -d /usr/nec ;then
+ lt_prog_compiler_pic='-Kconform_pic'
+ lt_prog_compiler_static='-Bstatic'
+ fi
+ ;;
+
+ sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_pic='-KPIC'
+ lt_prog_compiler_static='-Bstatic'
+ ;;
+
+ unicos*)
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_can_build_shared=no
+ ;;
+
+ uts4*)
+ lt_prog_compiler_pic='-pic'
+ lt_prog_compiler_static='-Bstatic'
+ ;;
+
+ *)
+ lt_prog_compiler_can_build_shared=no
+ ;;
+ esac
+ fi
+
+case $host_os in
+ # For platforms which do not support PIC, -DPIC is meaningless:
+ *djgpp*)
+ lt_prog_compiler_pic=
+ ;;
+ *)
+ lt_prog_compiler_pic="$lt_prog_compiler_pic@&t@ -DPIC"
+ ;;
+esac
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_prog_compiler_pic" >&5
+$as_echo "$lt_prog_compiler_pic" >&6; }
+
+
+
+
+
+
+#
+# Check to make sure the PIC flag actually works.
+#
+if test -n "$lt_prog_compiler_pic"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5
+$as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; }
+if test "${lt_cv_prog_compiler_pic_works+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_prog_compiler_pic_works=no
+ ac_outfile=conftest.$ac_objext
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+ lt_compiler_flag="$lt_prog_compiler_pic@&t@ -DPIC"
+ # Insert the option either (1) after the last *FLAGS variable, or
+ # (2) before a word containing "conftest.", or (3) at the end.
+ # Note that $ac_compile itself does not contain backslashes and begins
+ # with a dollar sign (not a hyphen), so the echo should work correctly.
+ # The option is referenced via a variable to avoid confusing sed.
+ lt_compile=`echo "$ac_compile" | $SED \
+ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+ -e 's:$: $lt_compiler_flag:'`
+ (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&5)
+ (eval "$lt_compile" 2>conftest.err)
+ ac_status=$?
+ cat conftest.err >&5
+ echo "$as_me:__oline__: \$? = $ac_status" >&5
+ if (exit $ac_status) && test -s "$ac_outfile"; then
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings other than the usual output.
+ $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp
+ $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+ if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
+ lt_cv_prog_compiler_pic_works=yes
+ fi
+ fi
+ $RM conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5
+$as_echo "$lt_cv_prog_compiler_pic_works" >&6; }
+
+if test x"$lt_cv_prog_compiler_pic_works" = xyes; then
+ case $lt_prog_compiler_pic in
+ "" | " "*) ;;
+ *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;;
+ esac
+else
+ lt_prog_compiler_pic=
+ lt_prog_compiler_can_build_shared=no
+fi
+
+fi
+
+
+
+
+
+
+#
+# Check to make sure the static flag actually works.
+#
+wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\"
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5
+$as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; }
+if test "${lt_cv_prog_compiler_static_works+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_prog_compiler_static_works=no
+ save_LDFLAGS="$LDFLAGS"
+ LDFLAGS="$LDFLAGS $lt_tmp_static_flag"
+ echo "$lt_simple_link_test_code" > conftest.$ac_ext
+ if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
+ # The linker can only warn and ignore the option if not recognized
+ # So say no if there are warnings
+ if test -s conftest.err; then
+ # Append any errors to the config.log.
+ cat conftest.err 1>&5
+ $ECHO "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp
+ $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+ if diff conftest.exp conftest.er2 >/dev/null; then
+ lt_cv_prog_compiler_static_works=yes
+ fi
+ else
+ lt_cv_prog_compiler_static_works=yes
+ fi
+ fi
+ $RM -r conftest*
+ LDFLAGS="$save_LDFLAGS"
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5
+$as_echo "$lt_cv_prog_compiler_static_works" >&6; }
+
+if test x"$lt_cv_prog_compiler_static_works" = xyes; then
+ :
+else
+ lt_prog_compiler_static=
+fi
+
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
+$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
+if test "${lt_cv_prog_compiler_c_o+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_prog_compiler_c_o=no
+ $RM -r conftest 2>/dev/null
+ mkdir conftest
+ cd conftest
+ mkdir out
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+ lt_compiler_flag="-o out/conftest2.$ac_objext"
+ # Insert the option either (1) after the last *FLAGS variable, or
+ # (2) before a word containing "conftest.", or (3) at the end.
+ # Note that $ac_compile itself does not contain backslashes and begins
+ # with a dollar sign (not a hyphen), so the echo should work correctly.
+ lt_compile=`echo "$ac_compile" | $SED \
+ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+ -e 's:$: $lt_compiler_flag:'`
+ (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&5)
+ (eval "$lt_compile" 2>out/conftest.err)
+ ac_status=$?
+ cat out/conftest.err >&5
+ echo "$as_me:__oline__: \$? = $ac_status" >&5
+ if (exit $ac_status) && test -s out/conftest2.$ac_objext
+ then
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings
+ $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp
+ $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
+ if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
+ lt_cv_prog_compiler_c_o=yes
+ fi
+ fi
+ chmod u+w . 2>&5
+ $RM conftest*
+ # SGI C++ compiler will create directory out/ii_files/ for
+ # template instantiation
+ test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
+ $RM out/* && rmdir out
+ cd ..
+ $RM -r conftest
+ $RM conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5
+$as_echo "$lt_cv_prog_compiler_c_o" >&6; }
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
+$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
+if test "${lt_cv_prog_compiler_c_o+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_prog_compiler_c_o=no
+ $RM -r conftest 2>/dev/null
+ mkdir conftest
+ cd conftest
+ mkdir out
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+ lt_compiler_flag="-o out/conftest2.$ac_objext"
+ # Insert the option either (1) after the last *FLAGS variable, or
+ # (2) before a word containing "conftest.", or (3) at the end.
+ # Note that $ac_compile itself does not contain backslashes and begins
+ # with a dollar sign (not a hyphen), so the echo should work correctly.
+ lt_compile=`echo "$ac_compile" | $SED \
+ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+ -e 's:$: $lt_compiler_flag:'`
+ (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&5)
+ (eval "$lt_compile" 2>out/conftest.err)
+ ac_status=$?
+ cat out/conftest.err >&5
+ echo "$as_me:__oline__: \$? = $ac_status" >&5
+ if (exit $ac_status) && test -s out/conftest2.$ac_objext
+ then
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings
+ $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp
+ $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
+ if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
+ lt_cv_prog_compiler_c_o=yes
+ fi
+ fi
+ chmod u+w . 2>&5
+ $RM conftest*
+ # SGI C++ compiler will create directory out/ii_files/ for
+ # template instantiation
+ test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
+ $RM out/* && rmdir out
+ cd ..
+ $RM -r conftest
+ $RM conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5
+$as_echo "$lt_cv_prog_compiler_c_o" >&6; }
+
+
+
+
+hard_links="nottested"
+if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then
+ # do not overwrite the value of need_locks provided by the user
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5
+$as_echo_n "checking if we can lock with hard links... " >&6; }
+ hard_links=yes
+ $RM conftest*
+ ln conftest.a conftest.b 2>/dev/null && hard_links=no
+ touch conftest.a
+ ln conftest.a conftest.b 2>&5 || hard_links=no
+ ln conftest.a conftest.b 2>/dev/null && hard_links=no
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5
+$as_echo "$hard_links" >&6; }
+ if test "$hard_links" = no; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5
+$as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;}
+ need_locks=warn
+ fi
+else
+ need_locks=no
+fi
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5
+$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; }
+
+ runpath_var=
+ allow_undefined_flag=
+ always_export_symbols=no
+ archive_cmds=
+ archive_expsym_cmds=
+ compiler_needs_object=no
+ enable_shared_with_static_runtimes=no
+ export_dynamic_flag_spec=
+ export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+ hardcode_automatic=no
+ hardcode_direct=no
+ hardcode_direct_absolute=no
+ hardcode_libdir_flag_spec=
+ hardcode_libdir_flag_spec_ld=
+ hardcode_libdir_separator=
+ hardcode_minus_L=no
+ hardcode_shlibpath_var=unsupported
+ inherit_rpath=no
+ link_all_deplibs=unknown
+ module_cmds=
+ module_expsym_cmds=
+ old_archive_from_new_cmds=
+ old_archive_from_expsyms_cmds=
+ thread_safe_flag_spec=
+ whole_archive_flag_spec=
+ # include_expsyms should be a list of space-separated symbols to be *always*
+ # included in the symbol list
+ include_expsyms=
+ # exclude_expsyms can be an extended regexp of symbols to exclude
+ # it will be wrapped by ` (' and `)$', so one must not match beginning or
+ # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
+ # as well as any symbol that contains `d'.
+ exclude_expsyms='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'
+ # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
+ # platforms (ab)use it in PIC code, but their linkers get confused if
+ # the symbol is explicitly referenced. Since portable code cannot
+ # rely on this symbol name, it's probably fine to never include it in
+ # preloaded symbol tables.
+ # Exclude shared library initialization/finalization symbols.
+ extract_expsyms_cmds=
+
+ case $host_os in
+ cygwin* | mingw* | pw32* | cegcc*)
+ # FIXME: the MSVC++ port hasn't been tested in a loooong time
+ # When not using gcc, we currently assume that we are using
+ # Microsoft Visual C++.
+ if test "$GCC" != yes; then
+ with_gnu_ld=no
+ fi
+ ;;
+ interix*)
+ # we just hope/assume this is gcc and not c89 (= MSVC++)
+ with_gnu_ld=yes
+ ;;
+ openbsd*)
+ with_gnu_ld=no
+ ;;
+ linux* | k*bsd*-gnu)
+ link_all_deplibs=no
+ ;;
+ esac
+
+ ld_shlibs=yes
+ if test "$with_gnu_ld" = yes; then
+ # If archive_cmds runs LD, not CC, wlarc should be empty
+ wlarc='${wl}'
+
+ # Set some defaults for GNU ld with shared library support. These
+ # are reset later if shared libraries are not supported. Putting them
+ # here allows them to be overridden if necessary.
+ runpath_var=LD_RUN_PATH
+ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+ export_dynamic_flag_spec='${wl}--export-dynamic'
+ # ancient GNU ld didn't support --whole-archive et. al.
+ if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then
+ whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+ else
+ whole_archive_flag_spec=
+ fi
+ supports_anon_versioning=no
+ case `$LD -v 2>&1` in
+ *GNU\ gold*) supports_anon_versioning=yes ;;
+ *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11
+ *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
+ *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...
+ *\ 2.11.*) ;; # other 2.11 versions
+ *) supports_anon_versioning=yes ;;
+ esac
+
+ # See if GNU ld supports shared libraries.
+ case $host_os in
+ aix[3-9]*)
+ # On AIX/PPC, the GNU linker is very broken
+ if test "$host_cpu" != ia64; then
+ ld_shlibs=no
+ cat <<_LT_EOF 1>&2
+
+*** Warning: the GNU linker, at least up to release 2.9.1, is reported
+*** to be unable to reliably create shared libraries on AIX.
+*** Therefore, libtool is disabling shared libraries support. If you
+*** really care for shared libraries, you may want to modify your PATH
+*** so that a non-GNU linker is found, and then restart.
+
+_LT_EOF
+ fi
+ ;;
+
+ amigaos*)
+ case $host_cpu in
+ powerpc)
+ # see comment about AmigaOS4 .so support
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ archive_expsym_cmds=''
+ ;;
+ m68k)
+ archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_minus_L=yes
+ ;;
+ esac
+ ;;
+
+ beos*)
+ if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+ allow_undefined_flag=unsupported
+ # Joseph Beckenbach <jrb3@best.com> says some releases of gcc
+ # support --undefined. This deserves some investigation. FIXME
+ archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ else
+ ld_shlibs=no
+ fi
+ ;;
+
+ cygwin* | mingw* | pw32* | cegcc*)
+ # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless,
+ # as there is no search path for DLLs.
+ hardcode_libdir_flag_spec='-L$libdir'
+ allow_undefined_flag=unsupported
+ always_export_symbols=no
+ enable_shared_with_static_runtimes=yes
+ export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols'
+
+ if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+ # If the export-symbols file already is a .def file (1st line
+ # is EXPORTS), use it as is; otherwise, prepend...
+ archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+ cp $export_symbols $output_objdir/$soname.def;
+ else
+ echo EXPORTS > $output_objdir/$soname.def;
+ cat $export_symbols >> $output_objdir/$soname.def;
+ fi~
+ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+ else
+ ld_shlibs=no
+ fi
+ ;;
+
+ interix[3-9]*)
+ hardcode_direct=no
+ hardcode_shlibpath_var=no
+ hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
+ export_dynamic_flag_spec='${wl}-E'
+ # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
+ # Instead, shared libraries are loaded at an image base (0x10000000 by
+ # default) and relocated if they conflict, which is a slow very memory
+ # consuming and fragmenting process. To avoid this, we pick a random,
+ # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
+ # time. Moving up from 0x10000000 also allows more sbrk(2) space.
+ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+ archive_expsym_cmds='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+ ;;
+
+ gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu)
+ tmp_diet=no
+ if test "$host_os" = linux-dietlibc; then
+ case $cc_basename in
+ diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn)
+ esac
+ fi
+ if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
+ && test "$tmp_diet" = no
+ then
+ tmp_addflag=
+ tmp_sharedflag='-shared'
+ case $cc_basename,$host_cpu in
+ pgcc*) # Portland Group C compiler
+ whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
+ tmp_addflag=' $pic_flag'
+ ;;
+ pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers
+ whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
+ tmp_addflag=' $pic_flag -Mnomain' ;;
+ ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64
+ tmp_addflag=' -i_dynamic' ;;
+ efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64
+ tmp_addflag=' -i_dynamic -nofor_main' ;;
+ ifc* | ifort*) # Intel Fortran compiler
+ tmp_addflag=' -nofor_main' ;;
+ lf95*) # Lahey Fortran 8.1
+ whole_archive_flag_spec=
+ tmp_sharedflag='--shared' ;;
+ xl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below)
+ tmp_sharedflag='-qmkshrobj'
+ tmp_addflag= ;;
+ esac
+ case `$CC -V 2>&1 | sed 5q` in
+ *Sun\ C*) # Sun C 5.9
+ whole_archive_flag_spec='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
+ compiler_needs_object=yes
+ tmp_sharedflag='-G' ;;
+ *Sun\ F*) # Sun Fortran 8.3
+ tmp_sharedflag='-G' ;;
+ esac
+ archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+
+ if test "x$supports_anon_versioning" = xyes; then
+ archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~
+ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+ echo "local: *; };" >> $output_objdir/$libname.ver~
+ $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
+ fi
+
+ case $cc_basename in
+ xlf*)
+ # IBM XL Fortran 10.1 on PPC cannot create shared libs itself
+ whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive'
+ hardcode_libdir_flag_spec=
+ hardcode_libdir_flag_spec_ld='-rpath $libdir'
+ archive_cmds='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib'
+ if test "x$supports_anon_versioning" = xyes; then
+ archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~
+ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+ echo "local: *; };" >> $output_objdir/$libname.ver~
+ $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
+ fi
+ ;;
+ esac
+ else
+ ld_shlibs=no
+ fi
+ ;;
+
+ netbsd* | netbsdelf*-gnu)
+ if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
+ archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
+ wlarc=
+ else
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+ fi
+ ;;
+
+ solaris*)
+ if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then
+ ld_shlibs=no
+ cat <<_LT_EOF 1>&2
+
+*** Warning: The releases 2.8.* of the GNU linker cannot reliably
+*** create shared libraries on Solaris systems. Therefore, libtool
+*** is disabling shared libraries support. We urge you to upgrade GNU
+*** binutils to release 2.9.1 or newer. Another option is to modify
+*** your PATH or compiler configuration so that the native linker is
+*** used, and then restart.
+
+_LT_EOF
+ elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+ else
+ ld_shlibs=no
+ fi
+ ;;
+
+ sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*)
+ case `$LD -v 2>&1` in
+ *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*)
+ ld_shlibs=no
+ cat <<_LT_EOF 1>&2
+
+*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not
+*** reliably create shared libraries on SCO systems. Therefore, libtool
+*** is disabling shared libraries support. We urge you to upgrade GNU
+*** binutils to release 2.16.91.0.3 or newer. Another option is to modify
+*** your PATH or compiler configuration so that the native linker is
+*** used, and then restart.
+
+_LT_EOF
+ ;;
+ *)
+ # For security reasons, it is highly recommended that you always
+ # use absolute paths for naming shared libraries, and exclude the
+ # DT_RUNPATH tag from executables and libraries. But doing so
+ # requires that you compile everything twice, which is a pain.
+ if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+ else
+ ld_shlibs=no
+ fi
+ ;;
+ esac
+ ;;
+
+ sunos4*)
+ archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+ wlarc=
+ hardcode_direct=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ *)
+ if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+ else
+ ld_shlibs=no
+ fi
+ ;;
+ esac
+
+ if test "$ld_shlibs" = no; then
+ runpath_var=
+ hardcode_libdir_flag_spec=
+ export_dynamic_flag_spec=
+ whole_archive_flag_spec=
+ fi
+ else
+ # PORTME fill in a description of your system's linker (not GNU ld)
+ case $host_os in
+ aix3*)
+ allow_undefined_flag=unsupported
+ always_export_symbols=yes
+ archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname'
+ # Note: this linker hardcodes the directories in LIBPATH if there
+ # are no directories specified by -L.
+ hardcode_minus_L=yes
+ if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then
+ # Neither direct hardcoding nor static linking is supported with a
+ # broken collect2.
+ hardcode_direct=unsupported
+ fi
+ ;;
+
+ aix[4-9]*)
+ if test "$host_cpu" = ia64; then
+ # On IA64, the linker does run time linking by default, so we don't
+ # have to do anything special.
+ aix_use_runtimelinking=no
+ exp_sym_flag='-Bexport'
+ no_entry_flag=""
+ else
+ # If we're using GNU nm, then we don't want the "-C" option.
+ # -C means demangle to AIX nm, but means don't demangle with GNU nm
+ if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
+ export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
+ else
+ export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
+ fi
+ aix_use_runtimelinking=no
+
+ # Test if we are trying to use run time linking or normal
+ # AIX style linking. If -brtl is somewhere in LDFLAGS, we
+ # need to do runtime linking.
+ case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*)
+ for ld_flag in $LDFLAGS; do
+ if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
+ aix_use_runtimelinking=yes
+ break
+ fi
+ done
+ ;;
+ esac
+
+ exp_sym_flag='-bexport'
+ no_entry_flag='-bnoentry'
+ fi
+
+ # When large executables or shared objects are built, AIX ld can
+ # have problems creating the table of contents. If linking a library
+ # or program results in "error TOC overflow" add -mminimal-toc to
+ # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not
+ # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
+
+ archive_cmds=''
+ hardcode_direct=yes
+ hardcode_direct_absolute=yes
+ hardcode_libdir_separator=':'
+ link_all_deplibs=yes
+ file_list_spec='${wl}-f,'
+
+ if test "$GCC" = yes; then
+ case $host_os in aix4.[012]|aix4.[012].*)
+ # We only want to do this on AIX 4.2 and lower, the check
+ # below for broken collect2 doesn't work under 4.3+
+ collect2name=`${CC} -print-prog-name=collect2`
+ if test -f "$collect2name" &&
+ strings "$collect2name" | $GREP resolve_lib_name >/dev/null
+ then
+ # We have reworked collect2
+ :
+ else
+ # We have old collect2
+ hardcode_direct=unsupported
+ # It fails to find uninstalled libraries when the uninstalled
+ # path is not listed in the libpath. Setting hardcode_minus_L
+ # to unsupported forces relinking
+ hardcode_minus_L=yes
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_libdir_separator=
+ fi
+ ;;
+ esac
+ shared_flag='-shared'
+ if test "$aix_use_runtimelinking" = yes; then
+ shared_flag="$shared_flag "'${wl}-G'
+ fi
+ link_all_deplibs=no
+ else
+ # not using gcc
+ if test "$host_cpu" = ia64; then
+ # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
+ # chokes on -Wl,-G. The following line is correct:
+ shared_flag='-G'
+ else
+ if test "$aix_use_runtimelinking" = yes; then
+ shared_flag='${wl}-G'
+ else
+ shared_flag='${wl}-bM:SRE'
+ fi
+ fi
+ fi
+
+ export_dynamic_flag_spec='${wl}-bexpall'
+ # It seems that -bexpall does not export symbols beginning with
+ # underscore (_), so it is better to generate a list of symbols to export.
+ always_export_symbols=yes
+ if test "$aix_use_runtimelinking" = yes; then
+ # Warning - without using the other runtime loading flags (-brtl),
+ # -berok will link without error, but may produce a broken library.
+ allow_undefined_flag='-berok'
+ # Determine the default libpath from the value encoded in an
+ # empty executable.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+
+lt_aix_libpath_sed='
+ /Import File Strings/,/^$/ {
+ /^0/ {
+ s/^0 *\(.*\)$/\1/
+ p
+ }
+ }'
+aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+# Check for a 64-bit object if we didn't find anything.
+if test -z "$aix_libpath"; then
+ aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+fi
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+
+ hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
+ archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+ else
+ if test "$host_cpu" = ia64; then
+ hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib'
+ allow_undefined_flag="-z nodefs"
+ archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols"
+ else
+ # Determine the default libpath from the value encoded in an
+ # empty executable.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+
+lt_aix_libpath_sed='
+ /Import File Strings/,/^$/ {
+ /^0/ {
+ s/^0 *\(.*\)$/\1/
+ p
+ }
+ }'
+aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+# Check for a 64-bit object if we didn't find anything.
+if test -z "$aix_libpath"; then
+ aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+fi
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+
+ hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
+ # Warning - without using the other run time loading flags,
+ # -berok will link without error, but may produce a broken library.
+ no_undefined_flag=' ${wl}-bernotok'
+ allow_undefined_flag=' ${wl}-berok'
+ # Exported symbols can be pulled into shared objects from archives
+ whole_archive_flag_spec='$convenience'
+ archive_cmds_need_lc=yes
+ # This is similar to how AIX traditionally builds its shared libraries.
+ archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
+ fi
+ fi
+ ;;
+
+ amigaos*)
+ case $host_cpu in
+ powerpc)
+ # see comment about AmigaOS4 .so support
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ archive_expsym_cmds=''
+ ;;
+ m68k)
+ archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_minus_L=yes
+ ;;
+ esac
+ ;;
+
+ bsdi[45]*)
+ export_dynamic_flag_spec=-rdynamic
+ ;;
+
+ cygwin* | mingw* | pw32* | cegcc*)
+ # When not using gcc, we currently assume that we are using
+ # Microsoft Visual C++.
+ # hardcode_libdir_flag_spec is actually meaningless, as there is
+ # no search path for DLLs.
+ hardcode_libdir_flag_spec=' '
+ allow_undefined_flag=unsupported
+ # Tell ltmain to make .lib files, not .a files.
+ libext=lib
+ # Tell ltmain to make .dll files, not .so files.
+ shrext_cmds=".dll"
+ # FIXME: Setting linknames here is a bad hack.
+ archive_cmds='$CC -o $lib $libobjs $compiler_flags `$ECHO "X$deplibs" | $Xsed -e '\''s/ -lc$//'\''` -link -dll~linknames='
+ # The linker will automatically build a .lib file if we build a DLL.
+ old_archive_from_new_cmds='true'
+ # FIXME: Should let the user specify the lib program.
+ old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs'
+ fix_srcfile_path='`cygpath -w "$srcfile"`'
+ enable_shared_with_static_runtimes=yes
+ ;;
+
+ darwin* | rhapsody*)
+
+
+ archive_cmds_need_lc=no
+ hardcode_direct=no
+ hardcode_automatic=yes
+ hardcode_shlibpath_var=unsupported
+ whole_archive_flag_spec=''
+ link_all_deplibs=yes
+ allow_undefined_flag="$_lt_dar_allow_undefined"
+ case $cc_basename in
+ ifort*) _lt_dar_can_shared=yes ;;
+ *) _lt_dar_can_shared=$GCC ;;
+ esac
+ if test "$_lt_dar_can_shared" = "yes"; then
+ output_verbose_link_cmd=echo
+ archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
+ module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
+ archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
+ module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
+
+ else
+ ld_shlibs=no
+ fi
+
+ ;;
+
+ dgux*)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_shlibpath_var=no
+ ;;
+
+ freebsd1*)
+ ld_shlibs=no
+ ;;
+
+ # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
+ # support. Future versions do this automatically, but an explicit c++rt0.o
+ # does not break anything, and helps significantly (at the cost of a little
+ # extra space).
+ freebsd2.2*)
+ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
+ hardcode_libdir_flag_spec='-R$libdir'
+ hardcode_direct=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ # Unfortunately, older versions of FreeBSD 2 do not have this feature.
+ freebsd2*)
+ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_direct=yes
+ hardcode_minus_L=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
+ freebsd* | dragonfly*)
+ archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags'
+ hardcode_libdir_flag_spec='-R$libdir'
+ hardcode_direct=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ hpux9*)
+ if test "$GCC" = yes; then
+ archive_cmds='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+ else
+ archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+ fi
+ hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
+ hardcode_libdir_separator=:
+ hardcode_direct=yes
+
+ # hardcode_minus_L: Not really in the search PATH,
+ # but as the default location of the library.
+ hardcode_minus_L=yes
+ export_dynamic_flag_spec='${wl}-E'
+ ;;
+
+ hpux10*)
+ if test "$GCC" = yes -a "$with_gnu_ld" = no; then
+ archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+ else
+ archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
+ fi
+ if test "$with_gnu_ld" = no; then
+ hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
+ hardcode_libdir_flag_spec_ld='+b $libdir'
+ hardcode_libdir_separator=:
+ hardcode_direct=yes
+ hardcode_direct_absolute=yes
+ export_dynamic_flag_spec='${wl}-E'
+ # hardcode_minus_L: Not really in the search PATH,
+ # but as the default location of the library.
+ hardcode_minus_L=yes
+ fi
+ ;;
+
+ hpux11*)
+ if test "$GCC" = yes -a "$with_gnu_ld" = no; then
+ case $host_cpu in
+ hppa*64*)
+ archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ ia64*)
+ archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ *)
+ archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ esac
+ else
+ case $host_cpu in
+ hppa*64*)
+ archive_cmds='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ ia64*)
+ archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ *)
+ archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ esac
+ fi
+ if test "$with_gnu_ld" = no; then
+ hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
+ hardcode_libdir_separator=:
+
+ case $host_cpu in
+ hppa*64*|ia64*)
+ hardcode_direct=no
+ hardcode_shlibpath_var=no
+ ;;
+ *)
+ hardcode_direct=yes
+ hardcode_direct_absolute=yes
+ export_dynamic_flag_spec='${wl}-E'
+
+ # hardcode_minus_L: Not really in the search PATH,
+ # but as the default location of the library.
+ hardcode_minus_L=yes
+ ;;
+ esac
+ fi
+ ;;
+
+ irix5* | irix6* | nonstopux*)
+ if test "$GCC" = yes; then
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+ # Try to use the -exported_symbol ld option, if it does not
+ # work, assume that -exports_file does not work either and
+ # implicitly export all symbols.
+ save_LDFLAGS="$LDFLAGS"
+ LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+int foo(void) {}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib'
+
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ LDFLAGS="$save_LDFLAGS"
+ else
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
+ archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib'
+ fi
+ archive_cmds_need_lc='no'
+ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+ hardcode_libdir_separator=:
+ inherit_rpath=yes
+ link_all_deplibs=yes
+ ;;
+
+ netbsd* | netbsdelf*-gnu)
+ if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
+ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out
+ else
+ archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF
+ fi
+ hardcode_libdir_flag_spec='-R$libdir'
+ hardcode_direct=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ newsos6)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_direct=yes
+ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+ hardcode_libdir_separator=:
+ hardcode_shlibpath_var=no
+ ;;
+
+ *nto* | *qnx*)
+ ;;
+
+ openbsd*)
+ if test -f /usr/libexec/ld.so; then
+ hardcode_direct=yes
+ hardcode_shlibpath_var=no
+ hardcode_direct_absolute=yes
+ if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+ archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols'
+ hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
+ export_dynamic_flag_spec='${wl}-E'
+ else
+ case $host_os in
+ openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*)
+ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_libdir_flag_spec='-R$libdir'
+ ;;
+ *)
+ archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+ hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
+ ;;
+ esac
+ fi
+ else
+ ld_shlibs=no
+ fi
+ ;;
+
+ os2*)
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_minus_L=yes
+ allow_undefined_flag=unsupported
+ archive_cmds='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$ECHO DATA >> $output_objdir/$libname.def~$ECHO " SINGLE NONSHARED" >> $output_objdir/$libname.def~$ECHO EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
+ old_archive_from_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
+ ;;
+
+ osf3*)
+ if test "$GCC" = yes; then
+ allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
+ archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+ else
+ allow_undefined_flag=' -expect_unresolved \*'
+ archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
+ fi
+ archive_cmds_need_lc='no'
+ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+ hardcode_libdir_separator=:
+ ;;
+
+ osf4* | osf5*) # as osf3* with the addition of -msym flag
+ if test "$GCC" = yes; then
+ allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
+ archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+ else
+ allow_undefined_flag=' -expect_unresolved \*'
+ archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
+ archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~
+ $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp'
+
+ # Both c and cxx compiler support -rpath directly
+ hardcode_libdir_flag_spec='-rpath $libdir'
+ fi
+ archive_cmds_need_lc='no'
+ hardcode_libdir_separator=:
+ ;;
+
+ solaris*)
+ no_undefined_flag=' -z defs'
+ if test "$GCC" = yes; then
+ wlarc='${wl}'
+ archive_cmds='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+ $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
+ else
+ case `$CC -V 2>&1` in
+ *"Compilers 5.0"*)
+ wlarc=''
+ archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp'
+ ;;
+ *)
+ wlarc='${wl}'
+ archive_cmds='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+ $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
+ ;;
+ esac
+ fi
+ hardcode_libdir_flag_spec='-R$libdir'
+ hardcode_shlibpath_var=no
+ case $host_os in
+ solaris2.[0-5] | solaris2.[0-5].*) ;;
+ *)
+ # The compiler driver will combine and reorder linker options,
+ # but understands `-z linker_flag'. GCC discards it without `$wl',
+ # but is careful enough not to reorder.
+ # Supported since Solaris 2.6 (maybe 2.5.1?)
+ if test "$GCC" = yes; then
+ whole_archive_flag_spec='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
+ else
+ whole_archive_flag_spec='-z allextract$convenience -z defaultextract'
+ fi
+ ;;
+ esac
+ link_all_deplibs=yes
+ ;;
+
+ sunos4*)
+ if test "x$host_vendor" = xsequent; then
+ # Use $CC to link under sequent, because it throws in some extra .o
+ # files that make .init and .fini sections work.
+ archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags'
+ else
+ archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
+ fi
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_direct=yes
+ hardcode_minus_L=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ sysv4)
+ case $host_vendor in
+ sni)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_direct=yes # is this really true???
+ ;;
+ siemens)
+ ## LD is ld it makes a PLAMLIB
+ ## CC just makes a GrossModule.
+ archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags'
+ reload_cmds='$CC -r -o $output$reload_objs'
+ hardcode_direct=no
+ ;;
+ motorola)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_direct=no #Motorola manual says yes, but my tests say they lie
+ ;;
+ esac
+ runpath_var='LD_RUN_PATH'
+ hardcode_shlibpath_var=no
+ ;;
+
+ sysv4.3*)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_shlibpath_var=no
+ export_dynamic_flag_spec='-Bexport'
+ ;;
+
+ sysv4*MP*)
+ if test -d /usr/nec; then
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_shlibpath_var=no
+ runpath_var=LD_RUN_PATH
+ hardcode_runpath_var=yes
+ ld_shlibs=yes
+ fi
+ ;;
+
+ sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*)
+ no_undefined_flag='${wl}-z,text'
+ archive_cmds_need_lc=no
+ hardcode_shlibpath_var=no
+ runpath_var='LD_RUN_PATH'
+
+ if test "$GCC" = yes; then
+ archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ else
+ archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ fi
+ ;;
+
+ sysv5* | sco3.2v5* | sco5v6*)
+ # Note: We can NOT use -z defs as we might desire, because we do not
+ # link with -lc, and that would cause any symbols used from libc to
+ # always be unresolved, which means just about no library would
+ # ever link correctly. If we're not using GNU ld we use -z text
+ # though, which does catch some bad symbols but isn't as heavy-handed
+ # as -z defs.
+ no_undefined_flag='${wl}-z,text'
+ allow_undefined_flag='${wl}-z,nodefs'
+ archive_cmds_need_lc=no
+ hardcode_shlibpath_var=no
+ hardcode_libdir_flag_spec='${wl}-R,$libdir'
+ hardcode_libdir_separator=':'
+ link_all_deplibs=yes
+ export_dynamic_flag_spec='${wl}-Bexport'
+ runpath_var='LD_RUN_PATH'
+
+ if test "$GCC" = yes; then
+ archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ else
+ archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ fi
+ ;;
+
+ uts4*)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_shlibpath_var=no
+ ;;
+
+ *)
+ ld_shlibs=no
+ ;;
+ esac
+
+ if test x$host_vendor = xsni; then
+ case $host in
+ sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+ export_dynamic_flag_spec='${wl}-Blargedynsym'
+ ;;
+ esac
+ fi
+ fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5
+$as_echo "$ld_shlibs" >&6; }
+test "$ld_shlibs" = no && can_build_shared=no
+
+with_gnu_ld=$with_gnu_ld
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#
+# Do we need to explicitly link libc?
+#
+case "x$archive_cmds_need_lc" in
+x|xyes)
+ # Assume -lc should be added
+ archive_cmds_need_lc=yes
+
+ if test "$enable_shared" = yes && test "$GCC" = yes; then
+ case $archive_cmds in
+ *'~'*)
+ # FIXME: we may have to deal with multi-command sequences.
+ ;;
+ '$CC '*)
+ # Test whether the compiler implicitly links with -lc since on some
+ # systems, -lgcc has to come before -lc. If gcc already passes -lc
+ # to ld, don't add -lc before -lgcc.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5
+$as_echo_n "checking whether -lc should be explicitly linked in... " >&6; }
+ $RM conftest*
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } 2>conftest.err; then
+ soname=conftest
+ lib=conftest
+ libobjs=conftest.$ac_objext
+ deplibs=
+ wl=$lt_prog_compiler_wl
+ pic_flag=$lt_prog_compiler_pic
+ compiler_flags=-v
+ linker_flags=-v
+ verstring=
+ output_objdir=.
+ libname=conftest
+ lt_save_allow_undefined_flag=$allow_undefined_flag
+ allow_undefined_flag=
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5
+ (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+ then
+ archive_cmds_need_lc=no
+ else
+ archive_cmds_need_lc=yes
+ fi
+ allow_undefined_flag=$lt_save_allow_undefined_flag
+ else
+ cat conftest.err 1>&5
+ fi
+ $RM conftest*
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $archive_cmds_need_lc" >&5
+$as_echo "$archive_cmds_need_lc" >&6; }
+ ;;
+ esac
+ fi
+ ;;
+esac
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5
+$as_echo_n "checking dynamic linker characteristics... " >&6; }
+
+if test "$GCC" = yes; then
+ case $host_os in
+ darwin*) lt_awk_arg="/^libraries:/,/LR/" ;;
+ *) lt_awk_arg="/^libraries:/" ;;
+ esac
+ lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e "s,=/,/,g"`
+ if $ECHO "$lt_search_path_spec" | $GREP ';' >/dev/null ; then
+ # if the path contains ";" then we assume it to be the separator
+ # otherwise default to the standard path separator (i.e. ":") - it is
+ # assumed that no part of a normal pathname contains ";" but that should
+ # okay in the real world where ";" in dirpaths is itself problematic.
+ lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e 's/;/ /g'`
+ else
+ lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
+ fi
+ # Ok, now we have the path, separated by spaces, we can step through it
+ # and add multilib dir if necessary.
+ lt_tmp_lt_search_path_spec=
+ lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null`
+ for lt_sys_path in $lt_search_path_spec; do
+ if test -d "$lt_sys_path/$lt_multi_os_dir"; then
+ lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir"
+ else
+ test -d "$lt_sys_path" && \
+ lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path"
+ fi
+ done
+ lt_search_path_spec=`$ECHO $lt_tmp_lt_search_path_spec | awk '
+BEGIN {RS=" "; FS="/|\n";} {
+ lt_foo="";
+ lt_count=0;
+ for (lt_i = NF; lt_i > 0; lt_i--) {
+ if ($lt_i != "" && $lt_i != ".") {
+ if ($lt_i == "..") {
+ lt_count++;
+ } else {
+ if (lt_count == 0) {
+ lt_foo="/" $lt_i lt_foo;
+ } else {
+ lt_count--;
+ }
+ }
+ }
+ }
+ if (lt_foo != "") { lt_freq[lt_foo]++; }
+ if (lt_freq[lt_foo] == 1) { print lt_foo; }
+}'`
+ sys_lib_search_path_spec=`$ECHO $lt_search_path_spec`
+else
+ sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
+fi
+library_names_spec=
+libname_spec='lib$name'
+soname_spec=
+shrext_cmds=".so"
+postinstall_cmds=
+postuninstall_cmds=
+finish_cmds=
+finish_eval=
+shlibpath_var=
+shlibpath_overrides_runpath=unknown
+version_type=none
+dynamic_linker="$host_os ld.so"
+sys_lib_dlsearch_path_spec="/lib /usr/lib"
+need_lib_prefix=unknown
+hardcode_into_libs=no
+
+# when you set need_version to no, make sure it does not cause -set_version
+# flags to be left without arguments
+need_version=unknown
+
+case $host_os in
+aix3*)
+ version_type=linux
+ library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
+ shlibpath_var=LIBPATH
+
+ # AIX 3 has no versioning support, so we append a major version to the name.
+ soname_spec='${libname}${release}${shared_ext}$major'
+ ;;
+
+aix[4-9]*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ hardcode_into_libs=yes
+ if test "$host_cpu" = ia64; then
+ # AIX 5 supports IA64
+ library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
+ shlibpath_var=LD_LIBRARY_PATH
+ else
+ # With GCC up to 2.95.x, collect2 would create an import file
+ # for dependence libraries. The import file would start with
+ # the line `#! .'. This would cause the generated library to
+ # depend on `.', always an invalid library. This was fixed in
+ # development snapshots of GCC prior to 3.0.
+ case $host_os in
+ aix4 | aix4.[01] | aix4.[01].*)
+ if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
+ echo ' yes '
+ echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then
+ :
+ else
+ can_build_shared=no
+ fi
+ ;;
+ esac
+ # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
+ # soname into executable. Probably we can add versioning support to
+ # collect2, so additional links can be useful in future.
+ if test "$aix_use_runtimelinking" = yes; then
+ # If using run time linking (on AIX 4.2 or later) use lib<name>.so
+ # instead of lib<name>.a to let people know that these are not
+ # typical AIX shared libraries.
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ else
+ # We preserve .a as extension for shared libraries through AIX4.2
+ # and later when we are not doing run time linking.
+ library_names_spec='${libname}${release}.a $libname.a'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ fi
+ shlibpath_var=LIBPATH
+ fi
+ ;;
+
+amigaos*)
+ case $host_cpu in
+ powerpc)
+ # Since July 2007 AmigaOS4 officially supports .so libraries.
+ # When compiling the executable, add -use-dynld -Lsobjs: to the compileline.
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ ;;
+ m68k)
+ library_names_spec='$libname.ixlibrary $libname.a'
+ # Create ${libname}_ixlibrary.a entries in /sys/libs.
+ finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$ECHO "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
+ ;;
+ esac
+ ;;
+
+beos*)
+ library_names_spec='${libname}${shared_ext}'
+ dynamic_linker="$host_os ld.so"
+ shlibpath_var=LIBRARY_PATH
+ ;;
+
+bsdi[45]*)
+ version_type=linux
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
+ sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
+ # the default ld.so.conf also contains /usr/contrib/lib and
+ # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
+ # libtool to hard-code these into programs
+ ;;
+
+cygwin* | mingw* | pw32* | cegcc*)
+ version_type=windows
+ shrext_cmds=".dll"
+ need_version=no
+ need_lib_prefix=no
+
+ case $GCC,$host_os in
+ yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*)
+ library_names_spec='$libname.dll.a'
+ # DLL is installed to $(libdir)/../bin by postinstall_cmds
+ postinstall_cmds='base_file=`basename \${file}`~
+ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
+ dldir=$destdir/`dirname \$dlpath`~
+ test -d \$dldir || mkdir -p \$dldir~
+ $install_prog $dir/$dlname \$dldir/$dlname~
+ chmod a+x \$dldir/$dlname~
+ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then
+ eval '\''$striplib \$dldir/$dlname'\'' || exit \$?;
+ fi'
+ postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
+ dlpath=$dir/\$dldll~
+ $RM \$dlpath'
+ shlibpath_overrides_runpath=yes
+
+ case $host_os in
+ cygwin*)
+ # Cygwin DLLs use 'cyg' prefix rather than 'lib'
+ soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+ sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib"
+ ;;
+ mingw* | cegcc*)
+ # MinGW DLLs use traditional 'lib' prefix
+ soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+ sys_lib_search_path_spec=`$CC -print-search-dirs | $GREP "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
+ if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then
+ # It is most probably a Windows format PATH printed by
+ # mingw gcc, but we are running on Cygwin. Gcc prints its search
+ # path with ; separators, and with drive letters. We can handle the
+ # drive letters (cygwin fileutils understands them), so leave them,
+ # especially as we might pass files found there to a mingw objdump,
+ # which wouldn't understand a cygwinified path. Ahh.
+ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
+ else
+ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
+ fi
+ ;;
+ pw32*)
+ # pw32 DLLs use 'pw' prefix rather than 'lib'
+ library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+ ;;
+ esac
+ ;;
+
+ *)
+ library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib'
+ ;;
+ esac
+ dynamic_linker='Win32 ld.exe'
+ # FIXME: first we should search . and the directory the executable is in
+ shlibpath_var=PATH
+ ;;
+
+darwin* | rhapsody*)
+ dynamic_linker="$host_os dyld"
+ version_type=darwin
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext'
+ soname_spec='${libname}${release}${major}$shared_ext'
+ shlibpath_overrides_runpath=yes
+ shlibpath_var=DYLD_LIBRARY_PATH
+ shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
+
+ sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"
+ sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
+ ;;
+
+dgux*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ ;;
+
+freebsd1*)
+ dynamic_linker=no
+ ;;
+
+freebsd* | dragonfly*)
+ # DragonFly does not have aout. When/if they implement a new
+ # versioning mechanism, adjust this.
+ if test -x /usr/bin/objformat; then
+ objformat=`/usr/bin/objformat`
+ else
+ case $host_os in
+ freebsd[123]*) objformat=aout ;;
+ *) objformat=elf ;;
+ esac
+ fi
+ version_type=freebsd-$objformat
+ case $version_type in
+ freebsd-elf*)
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
+ need_version=no
+ need_lib_prefix=no
+ ;;
+ freebsd-*)
+ library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
+ need_version=yes
+ ;;
+ esac
+ shlibpath_var=LD_LIBRARY_PATH
+ case $host_os in
+ freebsd2*)
+ shlibpath_overrides_runpath=yes
+ ;;
+ freebsd3.[01]* | freebsdelf3.[01]*)
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ ;;
+ freebsd3.[2-9]* | freebsdelf3.[2-9]* | \
+ freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1)
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ ;;
+ *) # from 4.6 on, and DragonFly
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ ;;
+ esac
+ ;;
+
+gnu*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ hardcode_into_libs=yes
+ ;;
+
+hpux9* | hpux10* | hpux11*)
+ # Give a soname corresponding to the major version so that dld.sl refuses to
+ # link against other versions.
+ version_type=sunos
+ need_lib_prefix=no
+ need_version=no
+ case $host_cpu in
+ ia64*)
+ shrext_cmds='.so'
+ hardcode_into_libs=yes
+ dynamic_linker="$host_os dld.so"
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ if test "X$HPUX_IA64_MODE" = X32; then
+ sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
+ else
+ sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
+ fi
+ sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+ ;;
+ hppa*64*)
+ shrext_cmds='.sl'
+ hardcode_into_libs=yes
+ dynamic_linker="$host_os dld.sl"
+ shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
+ shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
+ sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+ ;;
+ *)
+ shrext_cmds='.sl'
+ dynamic_linker="$host_os dld.sl"
+ shlibpath_var=SHLIB_PATH
+ shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ ;;
+ esac
+ # HP-UX runs *really* slowly unless shared libraries are mode 555.
+ postinstall_cmds='chmod 555 $lib'
+ ;;
+
+interix[3-9]*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ ;;
+
+irix5* | irix6* | nonstopux*)
+ case $host_os in
+ nonstopux*) version_type=nonstopux ;;
+ *)
+ if test "$lt_cv_prog_gnu_ld" = yes; then
+ version_type=linux
+ else
+ version_type=irix
+ fi ;;
+ esac
+ need_lib_prefix=no
+ need_version=no
+ soname_spec='${libname}${release}${shared_ext}$major'
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
+ case $host_os in
+ irix5* | nonstopux*)
+ libsuff= shlibsuff=
+ ;;
+ *)
+ case $LD in # libtool.m4 will add one of these switches to LD
+ *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
+ libsuff= shlibsuff= libmagic=32-bit;;
+ *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
+ libsuff=32 shlibsuff=N32 libmagic=N32;;
+ *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
+ libsuff=64 shlibsuff=64 libmagic=64-bit;;
+ *) libsuff= shlibsuff= libmagic=never-match;;
+ esac
+ ;;
+ esac
+ shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
+ shlibpath_overrides_runpath=no
+ sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
+ sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
+ hardcode_into_libs=yes
+ ;;
+
+# No shared lib support for Linux oldld, aout, or coff.
+linux*oldld* | linux*aout* | linux*coff*)
+ dynamic_linker=no
+ ;;
+
+# This must be Linux ELF.
+linux* | k*bsd*-gnu | kopensolaris*-gnu)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ # Some binutils ld are patched to set DT_RUNPATH
+ save_LDFLAGS=$LDFLAGS
+ save_libdir=$libdir
+ eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \
+ LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\""
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then :
+ shlibpath_overrides_runpath=yes
+fi
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ LDFLAGS=$save_LDFLAGS
+ libdir=$save_libdir
+
+ # This implies no fast_install, which is unacceptable.
+ # Some rework will be needed to allow for fast_install
+ # before this can be enabled.
+ hardcode_into_libs=yes
+
+ # Append ld.so.conf contents to the search path
+ if test -f /etc/ld.so.conf; then
+ lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
+ sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
+ fi
+
+ # We used to test for /lib/ld.so.1 and disable shared libraries on
+ # powerpc, because MkLinux only supported shared libraries with the
+ # GNU dynamic linker. Since this was broken with cross compilers,
+ # most powerpc-linux boxes support dynamic linking these days and
+ # people can always --disable-shared, the test was removed, and we
+ # assume the GNU/Linux dynamic linker is in use.
+ dynamic_linker='GNU/Linux ld.so'
+ ;;
+
+netbsdelf*-gnu)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ dynamic_linker='NetBSD ld.elf_so'
+ ;;
+
+netbsd*)
+ version_type=sunos
+ need_lib_prefix=no
+ need_version=no
+ if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+ dynamic_linker='NetBSD (a.out) ld.so'
+ else
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ dynamic_linker='NetBSD ld.elf_so'
+ fi
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ ;;
+
+newsos6)
+ version_type=linux
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ ;;
+
+*nto* | *qnx*)
+ version_type=qnx
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ dynamic_linker='ldqnx.so'
+ ;;
+
+openbsd*)
+ version_type=sunos
+ sys_lib_dlsearch_path_spec="/usr/lib"
+ need_lib_prefix=no
+ # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs.
+ case $host_os in
+ openbsd3.3 | openbsd3.3.*) need_version=yes ;;
+ *) need_version=no ;;
+ esac
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+ case $host_os in
+ openbsd2.[89] | openbsd2.[89].*)
+ shlibpath_overrides_runpath=no
+ ;;
+ *)
+ shlibpath_overrides_runpath=yes
+ ;;
+ esac
+ else
+ shlibpath_overrides_runpath=yes
+ fi
+ ;;
+
+os2*)
+ libname_spec='$name'
+ shrext_cmds=".dll"
+ need_lib_prefix=no
+ library_names_spec='$libname${shared_ext} $libname.a'
+ dynamic_linker='OS/2 ld.exe'
+ shlibpath_var=LIBPATH
+ ;;
+
+osf3* | osf4* | osf5*)
+ version_type=osf
+ need_lib_prefix=no
+ need_version=no
+ soname_spec='${libname}${release}${shared_ext}$major'
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ shlibpath_var=LD_LIBRARY_PATH
+ sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
+ sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
+ ;;
+
+rdos*)
+ dynamic_linker=no
+ ;;
+
+solaris*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ # ldd complains unless libraries are executable
+ postinstall_cmds='chmod +x $lib'
+ ;;
+
+sunos4*)
+ version_type=sunos
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+ finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ if test "$with_gnu_ld" = yes; then
+ need_lib_prefix=no
+ fi
+ need_version=yes
+ ;;
+
+sysv4 | sysv4.3*)
+ version_type=linux
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ case $host_vendor in
+ sni)
+ shlibpath_overrides_runpath=no
+ need_lib_prefix=no
+ runpath_var=LD_RUN_PATH
+ ;;
+ siemens)
+ need_lib_prefix=no
+ ;;
+ motorola)
+ need_lib_prefix=no
+ need_version=no
+ shlibpath_overrides_runpath=no
+ sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
+ ;;
+ esac
+ ;;
+
+sysv4*MP*)
+ if test -d /usr/nec ;then
+ version_type=linux
+ library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
+ soname_spec='$libname${shared_ext}.$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ fi
+ ;;
+
+sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
+ version_type=freebsd-elf
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ if test "$with_gnu_ld" = yes; then
+ sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib'
+ else
+ sys_lib_search_path_spec='/usr/ccs/lib /usr/lib'
+ case $host_os in
+ sco3.2v5*)
+ sys_lib_search_path_spec="$sys_lib_search_path_spec /lib"
+ ;;
+ esac
+ fi
+ sys_lib_dlsearch_path_spec='/usr/lib'
+ ;;
+
+tpf*)
+ # TPF is a cross-target only. Preferred cross-host = GNU/Linux.
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ ;;
+
+uts4*)
+ version_type=linux
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ ;;
+
+*)
+ dynamic_linker=no
+ ;;
+esac
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5
+$as_echo "$dynamic_linker" >&6; }
+test "$dynamic_linker" = no && can_build_shared=no
+
+variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
+if test "$GCC" = yes; then
+ variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
+fi
+
+if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then
+ sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec"
+fi
+if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then
+ sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec"
+fi
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5
+$as_echo_n "checking how to hardcode library paths into programs... " >&6; }
+hardcode_action=
+if test -n "$hardcode_libdir_flag_spec" ||
+ test -n "$runpath_var" ||
+ test "X$hardcode_automatic" = "Xyes" ; then
+
+ # We can hardcode non-existent directories.
+ if test "$hardcode_direct" != no &&
+ # If the only mechanism to avoid hardcoding is shlibpath_var, we
+ # have to relink, otherwise we might link with an installed library
+ # when we should be linking with a yet-to-be-installed one
+ ## test "$_LT_TAGVAR(hardcode_shlibpath_var, )" != no &&
+ test "$hardcode_minus_L" != no; then
+ # Linking always hardcodes the temporary library directory.
+ hardcode_action=relink
+ else
+ # We can link without hardcoding, and we can hardcode nonexisting dirs.
+ hardcode_action=immediate
+ fi
+else
+ # We cannot hardcode anything, or else we can only hardcode existing
+ # directories.
+ hardcode_action=unsupported
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5
+$as_echo "$hardcode_action" >&6; }
+
+if test "$hardcode_action" = relink ||
+ test "$inherit_rpath" = yes; then
+ # Fast installation is not supported
+ enable_fast_install=no
+elif test "$shlibpath_overrides_runpath" = yes ||
+ test "$enable_shared" = no; then
+ # Fast installation is not necessary
+ enable_fast_install=needless
+fi
+
+
+
+
+
+
+ if test "x$enable_dlopen" != xyes; then
+ enable_dlopen=unknown
+ enable_dlopen_self=unknown
+ enable_dlopen_self_static=unknown
+else
+ lt_cv_dlopen=no
+ lt_cv_dlopen_libs=
+
+ case $host_os in
+ beos*)
+ lt_cv_dlopen="load_add_on"
+ lt_cv_dlopen_libs=
+ lt_cv_dlopen_self=yes
+ ;;
+
+ mingw* | pw32* | cegcc*)
+ lt_cv_dlopen="LoadLibrary"
+ lt_cv_dlopen_libs=
+ ;;
+
+ cygwin*)
+ lt_cv_dlopen="dlopen"
+ lt_cv_dlopen_libs=
+ ;;
+
+ darwin*)
+ # if libdl is installed we need to link against it
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
+$as_echo_n "checking for dlopen in -ldl... " >&6; }
+if test "${ac_cv_lib_dl_dlopen+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldl $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dlopen ();
+int
+main ()
+{
+return dlopen ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_dl_dlopen=yes
+else
+ ac_cv_lib_dl_dlopen=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
+$as_echo "$ac_cv_lib_dl_dlopen" >&6; }
+if test "x$ac_cv_lib_dl_dlopen" = x""yes; then :
+ lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
+else
+
+ lt_cv_dlopen="dyld"
+ lt_cv_dlopen_libs=
+ lt_cv_dlopen_self=yes
+
+fi
+
+ ;;
+
+ *)
+ ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load"
+if test "x$ac_cv_func_shl_load" = x""yes; then :
+ lt_cv_dlopen="shl_load"
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5
+$as_echo_n "checking for shl_load in -ldld... " >&6; }
+if test "${ac_cv_lib_dld_shl_load+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldld $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char shl_load ();
+int
+main ()
+{
+return shl_load ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_dld_shl_load=yes
+else
+ ac_cv_lib_dld_shl_load=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5
+$as_echo "$ac_cv_lib_dld_shl_load" >&6; }
+if test "x$ac_cv_lib_dld_shl_load" = x""yes; then :
+ lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"
+else
+ ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen"
+if test "x$ac_cv_func_dlopen" = x""yes; then :
+ lt_cv_dlopen="dlopen"
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
+$as_echo_n "checking for dlopen in -ldl... " >&6; }
+if test "${ac_cv_lib_dl_dlopen+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldl $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dlopen ();
+int
+main ()
+{
+return dlopen ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_dl_dlopen=yes
+else
+ ac_cv_lib_dl_dlopen=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
+$as_echo "$ac_cv_lib_dl_dlopen" >&6; }
+if test "x$ac_cv_lib_dl_dlopen" = x""yes; then :
+ lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5
+$as_echo_n "checking for dlopen in -lsvld... " >&6; }
+if test "${ac_cv_lib_svld_dlopen+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lsvld $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dlopen ();
+int
+main ()
+{
+return dlopen ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_svld_dlopen=yes
+else
+ ac_cv_lib_svld_dlopen=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5
+$as_echo "$ac_cv_lib_svld_dlopen" >&6; }
+if test "x$ac_cv_lib_svld_dlopen" = x""yes; then :
+ lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5
+$as_echo_n "checking for dld_link in -ldld... " >&6; }
+if test "${ac_cv_lib_dld_dld_link+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldld $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dld_link ();
+int
+main ()
+{
+return dld_link ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_dld_dld_link=yes
+else
+ ac_cv_lib_dld_dld_link=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5
+$as_echo "$ac_cv_lib_dld_dld_link" >&6; }
+if test "x$ac_cv_lib_dld_dld_link" = x""yes; then :
+ lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"
+fi
+
+
+fi
+
+
+fi
+
+
+fi
+
+
+fi
+
+
+fi
+
+ ;;
+ esac
+
+ if test "x$lt_cv_dlopen" != xno; then
+ enable_dlopen=yes
+ else
+ enable_dlopen=no
+ fi
+
+ case $lt_cv_dlopen in
+ dlopen)
+ save_CPPFLAGS="$CPPFLAGS"
+ test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
+
+ save_LDFLAGS="$LDFLAGS"
+ wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
+
+ save_LIBS="$LIBS"
+ LIBS="$lt_cv_dlopen_libs $LIBS"
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5
+$as_echo_n "checking whether a program can dlopen itself... " >&6; }
+if test "${lt_cv_dlopen_self+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "$cross_compiling" = yes; then :
+ lt_cv_dlopen_self=cross
+else
+ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+ lt_status=$lt_dlunknown
+ cat > conftest.$ac_ext <<_LT_EOF
+#line __oline__ "configure"
+#include "confdefs.h"
+
+#if HAVE_DLFCN_H
+#include <dlfcn.h>
+#endif
+
+#include <stdio.h>
+
+#ifdef RTLD_GLOBAL
+# define LT_DLGLOBAL RTLD_GLOBAL
+#else
+# ifdef DL_GLOBAL
+# define LT_DLGLOBAL DL_GLOBAL
+# else
+# define LT_DLGLOBAL 0
+# endif
+#endif
+
+/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
+ find out it does not work in some platform. */
+#ifndef LT_DLLAZY_OR_NOW
+# ifdef RTLD_LAZY
+# define LT_DLLAZY_OR_NOW RTLD_LAZY
+# else
+# ifdef DL_LAZY
+# define LT_DLLAZY_OR_NOW DL_LAZY
+# else
+# ifdef RTLD_NOW
+# define LT_DLLAZY_OR_NOW RTLD_NOW
+# else
+# ifdef DL_NOW
+# define LT_DLLAZY_OR_NOW DL_NOW
+# else
+# define LT_DLLAZY_OR_NOW 0
+# endif
+# endif
+# endif
+# endif
+#endif
+
+void fnord() { int i=42;}
+int main ()
+{
+ void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
+ int status = $lt_dlunknown;
+
+ if (self)
+ {
+ if (dlsym (self,"fnord")) status = $lt_dlno_uscore;
+ else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
+ /* dlclose (self); */
+ }
+ else
+ puts (dlerror ());
+
+ return status;
+}
+_LT_EOF
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then
+ (./conftest; exit; ) >&5 2>/dev/null
+ lt_status=$?
+ case x$lt_status in
+ x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;;
+ x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;;
+ x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;;
+ esac
+ else :
+ # compilation failed
+ lt_cv_dlopen_self=no
+ fi
+fi
+rm -fr conftest*
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5
+$as_echo "$lt_cv_dlopen_self" >&6; }
+
+ if test "x$lt_cv_dlopen_self" = xyes; then
+ wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5
+$as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; }
+if test "${lt_cv_dlopen_self_static+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "$cross_compiling" = yes; then :
+ lt_cv_dlopen_self_static=cross
+else
+ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+ lt_status=$lt_dlunknown
+ cat > conftest.$ac_ext <<_LT_EOF
+#line __oline__ "configure"
+#include "confdefs.h"
+
+#if HAVE_DLFCN_H
+#include <dlfcn.h>
+#endif
+
+#include <stdio.h>
+
+#ifdef RTLD_GLOBAL
+# define LT_DLGLOBAL RTLD_GLOBAL
+#else
+# ifdef DL_GLOBAL
+# define LT_DLGLOBAL DL_GLOBAL
+# else
+# define LT_DLGLOBAL 0
+# endif
+#endif
+
+/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
+ find out it does not work in some platform. */
+#ifndef LT_DLLAZY_OR_NOW
+# ifdef RTLD_LAZY
+# define LT_DLLAZY_OR_NOW RTLD_LAZY
+# else
+# ifdef DL_LAZY
+# define LT_DLLAZY_OR_NOW DL_LAZY
+# else
+# ifdef RTLD_NOW
+# define LT_DLLAZY_OR_NOW RTLD_NOW
+# else
+# ifdef DL_NOW
+# define LT_DLLAZY_OR_NOW DL_NOW
+# else
+# define LT_DLLAZY_OR_NOW 0
+# endif
+# endif
+# endif
+# endif
+#endif
+
+void fnord() { int i=42;}
+int main ()
+{
+ void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
+ int status = $lt_dlunknown;
+
+ if (self)
+ {
+ if (dlsym (self,"fnord")) status = $lt_dlno_uscore;
+ else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
+ /* dlclose (self); */
+ }
+ else
+ puts (dlerror ());
+
+ return status;
+}
+_LT_EOF
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then
+ (./conftest; exit; ) >&5 2>/dev/null
+ lt_status=$?
+ case x$lt_status in
+ x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;;
+ x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;;
+ x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;;
+ esac
+ else :
+ # compilation failed
+ lt_cv_dlopen_self_static=no
+ fi
+fi
+rm -fr conftest*
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5
+$as_echo "$lt_cv_dlopen_self_static" >&6; }
+ fi
+
+ CPPFLAGS="$save_CPPFLAGS"
+ LDFLAGS="$save_LDFLAGS"
+ LIBS="$save_LIBS"
+ ;;
+ esac
+
+ case $lt_cv_dlopen_self in
+ yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
+ *) enable_dlopen_self=unknown ;;
+ esac
+
+ case $lt_cv_dlopen_self_static in
+ yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
+ *) enable_dlopen_self_static=unknown ;;
+ esac
+fi
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+striplib=
+old_striplib=
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5
+$as_echo_n "checking whether stripping libraries is possible... " >&6; }
+if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then
+ test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
+ test -z "$striplib" && striplib="$STRIP --strip-unneeded"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+else
+# FIXME - insert some real tests, host_os isn't really good enough
+ case $host_os in
+ darwin*)
+ if test -n "$STRIP" ; then
+ striplib="$STRIP -x"
+ old_striplib="$STRIP -S"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ fi
+ ;;
+ *)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ ;;
+ esac
+fi
+
+
+
+
+
+
+
+
+
+
+
+
+ # Report which library types will actually be built
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5
+$as_echo_n "checking if libtool supports shared libraries... " >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5
+$as_echo "$can_build_shared" >&6; }
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5
+$as_echo_n "checking whether to build shared libraries... " >&6; }
+ test "$can_build_shared" = "no" && enable_shared=no
+
+ # On AIX, shared libraries and static libraries use the same namespace, and
+ # are all built from PIC.
+ case $host_os in
+ aix3*)
+ test "$enable_shared" = yes && enable_static=no
+ if test -n "$RANLIB"; then
+ archive_cmds="$archive_cmds~\$RANLIB \$lib"
+ postinstall_cmds='$RANLIB $lib'
+ fi
+ ;;
+
+ aix[4-9]*)
+ if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
+ test "$enable_shared" = yes && enable_static=no
+ fi
+ ;;
+ esac
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5
+$as_echo "$enable_shared" >&6; }
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5
+$as_echo_n "checking whether to build static libraries... " >&6; }
+ # Make sure either enable_shared or enable_static is yes.
+ test "$enable_shared" = yes || enable_static=yes
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5
+$as_echo "$enable_static" >&6; }
+
+
+
+
+fi
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+CC="$lt_save_CC"
+
+
+ac_ext=cpp
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+
+archive_cmds_need_lc_CXX=no
+allow_undefined_flag_CXX=
+always_export_symbols_CXX=no
+archive_expsym_cmds_CXX=
+compiler_needs_object_CXX=no
+export_dynamic_flag_spec_CXX=
+hardcode_direct_CXX=no
+hardcode_direct_absolute_CXX=no
+hardcode_libdir_flag_spec_CXX=
+hardcode_libdir_flag_spec_ld_CXX=
+hardcode_libdir_separator_CXX=
+hardcode_minus_L_CXX=no
+hardcode_shlibpath_var_CXX=unsupported
+hardcode_automatic_CXX=no
+inherit_rpath_CXX=no
+module_cmds_CXX=
+module_expsym_cmds_CXX=
+link_all_deplibs_CXX=unknown
+old_archive_cmds_CXX=$old_archive_cmds
+no_undefined_flag_CXX=
+whole_archive_flag_spec_CXX=
+enable_shared_with_static_runtimes_CXX=no
+
+# Source file extension for C++ test sources.
+ac_ext=cpp
+
+# Object file extension for compiled C++ test sources.
+objext=o
+objext_CXX=$objext
+
+# No sense in running all these tests if we already determined that
+# the CXX compiler isn't working. Some variables (like enable_shared)
+# are currently assumed to apply to all compilers on this platform,
+# and will be corrupted by setting them based on a non-working compiler.
+if test "$_lt_caught_CXX_error" != yes; then
+ # Code to be used in simple compile tests
+ lt_simple_compile_test_code="int some_variable = 0;"
+
+ # Code to be used in simple link tests
+ lt_simple_link_test_code='int main(int, char *[]) { return(0); }'
+
+ # ltmain only uses $CC for tagged configurations so make sure $CC is set.
+
+
+
+
+
+
+# If no C compiler was specified, use CC.
+LTCC=${LTCC-"$CC"}
+
+# If no C compiler flags were specified, use CFLAGS.
+LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
+
+# Allow CC to be a program name with arguments.
+compiler=$CC
+
+
+ # save warnings/boilerplate of simple test code
+ ac_outfile=conftest.$ac_objext
+echo "$lt_simple_compile_test_code" >conftest.$ac_ext
+eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
+_lt_compiler_boilerplate=`cat conftest.err`
+$RM conftest*
+
+ ac_outfile=conftest.$ac_objext
+echo "$lt_simple_link_test_code" >conftest.$ac_ext
+eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
+_lt_linker_boilerplate=`cat conftest.err`
+$RM -r conftest*
+
+
+ # Allow CC to be a program name with arguments.
+ lt_save_CC=$CC
+ lt_save_LD=$LD
+ lt_save_GCC=$GCC
+ GCC=$GXX
+ lt_save_with_gnu_ld=$with_gnu_ld
+ lt_save_path_LD=$lt_cv_path_LD
+ if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then
+ lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx
+ else
+ $as_unset lt_cv_prog_gnu_ld
+ fi
+ if test -n "${lt_cv_path_LDCXX+set}"; then
+ lt_cv_path_LD=$lt_cv_path_LDCXX
+ else
+ $as_unset lt_cv_path_LD
+ fi
+ test -z "${LDCXX+set}" || LD=$LDCXX
+ CC=${CXX-"c++"}
+ compiler=$CC
+ compiler_CXX=$CC
+ for cc_temp in $compiler""; do
+ case $cc_temp in
+ compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
+ distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
+ \-*) ;;
+ *) break;;
+ esac
+done
+cc_basename=`$ECHO "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
+
+
+ if test -n "$compiler"; then
+ # We don't want -fno-exception when compiling C++ code, so set the
+ # no_builtin_flag separately
+ if test "$GXX" = yes; then
+ lt_prog_compiler_no_builtin_flag_CXX=' -fno-builtin'
+ else
+ lt_prog_compiler_no_builtin_flag_CXX=
+ fi
+
+ if test "$GXX" = yes; then
+ # Set up default GNU C++ configuration
+
+
+
+@%:@ Check whether --with-gnu-ld was given.
+if test "${with_gnu_ld+set}" = set; then :
+ withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes
+else
+ with_gnu_ld=no
+fi
+
+ac_prog=ld
+if test "$GCC" = yes; then
+ # Check if gcc -print-prog-name=ld gives a path.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5
+$as_echo_n "checking for ld used by $CC... " >&6; }
+ case $host in
+ *-*-mingw*)
+ # gcc leaves a trailing carriage return which upsets mingw
+ ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
+ *)
+ ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
+ esac
+ case $ac_prog in
+ # Accept absolute paths.
+ [\\/]* | ?:[\\/]*)
+ re_direlt='/[^/][^/]*/\.\./'
+ # Canonicalize the pathname of ld
+ ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'`
+ while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do
+ ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"`
+ done
+ test -z "$LD" && LD="$ac_prog"
+ ;;
+ "")
+ # If it fails, then pretend we aren't using GCC.
+ ac_prog=ld
+ ;;
+ *)
+ # If it is relative, then search for the first ld in PATH.
+ with_gnu_ld=unknown
+ ;;
+ esac
+elif test "$with_gnu_ld" = yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5
+$as_echo_n "checking for GNU ld... " >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5
+$as_echo_n "checking for non-GNU ld... " >&6; }
+fi
+if test "${lt_cv_path_LD+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -z "$LD"; then
+ lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+ for ac_dir in $PATH; do
+ IFS="$lt_save_ifs"
+ test -z "$ac_dir" && ac_dir=.
+ if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
+ lt_cv_path_LD="$ac_dir/$ac_prog"
+ # Check to see if the program is GNU ld. I'd rather use --version,
+ # but apparently some variants of GNU ld only accept -v.
+ # Break only if it was the GNU/non-GNU ld that we prefer.
+ case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
+ *GNU* | *'with BFD'*)
+ test "$with_gnu_ld" != no && break
+ ;;
+ *)
+ test "$with_gnu_ld" != yes && break
+ ;;
+ esac
+ fi
+ done
+ IFS="$lt_save_ifs"
+else
+ lt_cv_path_LD="$LD" # Let the user override the test with a path.
+fi
+fi
+
+LD="$lt_cv_path_LD"
+if test -n "$LD"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LD" >&5
+$as_echo "$LD" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+test -z "$LD" && as_fn_error "no acceptable ld found in \$PATH" "$LINENO" 5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5
+$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; }
+if test "${lt_cv_prog_gnu_ld+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ # I'd rather use --version here, but apparently some GNU lds only accept -v.
+case `$LD -v 2>&1 </dev/null` in
+*GNU* | *'with BFD'*)
+ lt_cv_prog_gnu_ld=yes
+ ;;
+*)
+ lt_cv_prog_gnu_ld=no
+ ;;
+esac
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_gnu_ld" >&5
+$as_echo "$lt_cv_prog_gnu_ld" >&6; }
+with_gnu_ld=$lt_cv_prog_gnu_ld
+
+
+
+
+
+
+
+ # Check if GNU C++ uses GNU ld as the underlying linker, since the
+ # archiving commands below assume that GNU ld is being used.
+ if test "$with_gnu_ld" = yes; then
+ archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ archive_expsym_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+
+ hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
+ export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
+
+ # If archive_cmds runs LD, not CC, wlarc should be empty
+ # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to
+ # investigate it a little bit more. (MM)
+ wlarc='${wl}'
+
+ # ancient GNU ld didn't support --whole-archive et. al.
+ if eval "`$CC -print-prog-name=ld` --help 2>&1" |
+ $GREP 'no-whole-archive' > /dev/null; then
+ whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+ else
+ whole_archive_flag_spec_CXX=
+ fi
+ else
+ with_gnu_ld=no
+ wlarc=
+
+ # A generic and very simple default shared library creation
+ # command for GNU C++ for the case where it uses the native
+ # linker, instead of GNU ld. If possible, this setting should
+ # overridden to take advantage of the native linker features on
+ # the platform it is being used on.
+ archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
+ fi
+
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"'
+
+ else
+ GXX=no
+ with_gnu_ld=no
+ wlarc=
+ fi
+
+ # PORTME: fill in a description of your system's C++ link characteristics
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5
+$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; }
+ ld_shlibs_CXX=yes
+ case $host_os in
+ aix3*)
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+ aix[4-9]*)
+ if test "$host_cpu" = ia64; then
+ # On IA64, the linker does run time linking by default, so we don't
+ # have to do anything special.
+ aix_use_runtimelinking=no
+ exp_sym_flag='-Bexport'
+ no_entry_flag=""
+ else
+ aix_use_runtimelinking=no
+
+ # Test if we are trying to use run time linking or normal
+ # AIX style linking. If -brtl is somewhere in LDFLAGS, we
+ # need to do runtime linking.
+ case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*)
+ for ld_flag in $LDFLAGS; do
+ case $ld_flag in
+ *-brtl*)
+ aix_use_runtimelinking=yes
+ break
+ ;;
+ esac
+ done
+ ;;
+ esac
+
+ exp_sym_flag='-bexport'
+ no_entry_flag='-bnoentry'
+ fi
+
+ # When large executables or shared objects are built, AIX ld can
+ # have problems creating the table of contents. If linking a library
+ # or program results in "error TOC overflow" add -mminimal-toc to
+ # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not
+ # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
+
+ archive_cmds_CXX=''
+ hardcode_direct_CXX=yes
+ hardcode_direct_absolute_CXX=yes
+ hardcode_libdir_separator_CXX=':'
+ link_all_deplibs_CXX=yes
+ file_list_spec_CXX='${wl}-f,'
+
+ if test "$GXX" = yes; then
+ case $host_os in aix4.[012]|aix4.[012].*)
+ # We only want to do this on AIX 4.2 and lower, the check
+ # below for broken collect2 doesn't work under 4.3+
+ collect2name=`${CC} -print-prog-name=collect2`
+ if test -f "$collect2name" &&
+ strings "$collect2name" | $GREP resolve_lib_name >/dev/null
+ then
+ # We have reworked collect2
+ :
+ else
+ # We have old collect2
+ hardcode_direct_CXX=unsupported
+ # It fails to find uninstalled libraries when the uninstalled
+ # path is not listed in the libpath. Setting hardcode_minus_L
+ # to unsupported forces relinking
+ hardcode_minus_L_CXX=yes
+ hardcode_libdir_flag_spec_CXX='-L$libdir'
+ hardcode_libdir_separator_CXX=
+ fi
+ esac
+ shared_flag='-shared'
+ if test "$aix_use_runtimelinking" = yes; then
+ shared_flag="$shared_flag "'${wl}-G'
+ fi
+ else
+ # not using gcc
+ if test "$host_cpu" = ia64; then
+ # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
+ # chokes on -Wl,-G. The following line is correct:
+ shared_flag='-G'
+ else
+ if test "$aix_use_runtimelinking" = yes; then
+ shared_flag='${wl}-G'
+ else
+ shared_flag='${wl}-bM:SRE'
+ fi
+ fi
+ fi
+
+ export_dynamic_flag_spec_CXX='${wl}-bexpall'
+ # It seems that -bexpall does not export symbols beginning with
+ # underscore (_), so it is better to generate a list of symbols to
+ # export.
+ always_export_symbols_CXX=yes
+ if test "$aix_use_runtimelinking" = yes; then
+ # Warning - without using the other runtime loading flags (-brtl),
+ # -berok will link without error, but may produce a broken library.
+ allow_undefined_flag_CXX='-berok'
+ # Determine the default libpath from the value encoded in an empty
+ # executable.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_link "$LINENO"; then :
+
+lt_aix_libpath_sed='
+ /Import File Strings/,/^$/ {
+ /^0/ {
+ s/^0 *\(.*\)$/\1/
+ p
+ }
+ }'
+aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+# Check for a 64-bit object if we didn't find anything.
+if test -z "$aix_libpath"; then
+ aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+fi
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+
+ hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath"
+
+ archive_expsym_cmds_CXX='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+ else
+ if test "$host_cpu" = ia64; then
+ hardcode_libdir_flag_spec_CXX='${wl}-R $libdir:/usr/lib:/lib'
+ allow_undefined_flag_CXX="-z nodefs"
+ archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols"
+ else
+ # Determine the default libpath from the value encoded in an
+ # empty executable.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_link "$LINENO"; then :
+
+lt_aix_libpath_sed='
+ /Import File Strings/,/^$/ {
+ /^0/ {
+ s/^0 *\(.*\)$/\1/
+ p
+ }
+ }'
+aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+# Check for a 64-bit object if we didn't find anything.
+if test -z "$aix_libpath"; then
+ aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+fi
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+
+ hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath"
+ # Warning - without using the other run time loading flags,
+ # -berok will link without error, but may produce a broken library.
+ no_undefined_flag_CXX=' ${wl}-bernotok'
+ allow_undefined_flag_CXX=' ${wl}-berok'
+ # Exported symbols can be pulled into shared objects from archives
+ whole_archive_flag_spec_CXX='$convenience'
+ archive_cmds_need_lc_CXX=yes
+ # This is similar to how AIX traditionally builds its shared
+ # libraries.
+ archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
+ fi
+ fi
+ ;;
+
+ beos*)
+ if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+ allow_undefined_flag_CXX=unsupported
+ # Joseph Beckenbach <jrb3@best.com> says some releases of gcc
+ # support --undefined. This deserves some investigation. FIXME
+ archive_cmds_CXX='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ else
+ ld_shlibs_CXX=no
+ fi
+ ;;
+
+ chorus*)
+ case $cc_basename in
+ *)
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+ esac
+ ;;
+
+ cygwin* | mingw* | pw32* | cegcc*)
+ # _LT_TAGVAR(hardcode_libdir_flag_spec, CXX) is actually meaningless,
+ # as there is no search path for DLLs.
+ hardcode_libdir_flag_spec_CXX='-L$libdir'
+ allow_undefined_flag_CXX=unsupported
+ always_export_symbols_CXX=no
+ enable_shared_with_static_runtimes_CXX=yes
+
+ if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
+ archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+ # If the export-symbols file already is a .def file (1st line
+ # is EXPORTS), use it as is; otherwise, prepend...
+ archive_expsym_cmds_CXX='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+ cp $export_symbols $output_objdir/$soname.def;
+ else
+ echo EXPORTS > $output_objdir/$soname.def;
+ cat $export_symbols >> $output_objdir/$soname.def;
+ fi~
+ $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+ else
+ ld_shlibs_CXX=no
+ fi
+ ;;
+ darwin* | rhapsody*)
+
+
+ archive_cmds_need_lc_CXX=no
+ hardcode_direct_CXX=no
+ hardcode_automatic_CXX=yes
+ hardcode_shlibpath_var_CXX=unsupported
+ whole_archive_flag_spec_CXX=''
+ link_all_deplibs_CXX=yes
+ allow_undefined_flag_CXX="$_lt_dar_allow_undefined"
+ case $cc_basename in
+ ifort*) _lt_dar_can_shared=yes ;;
+ *) _lt_dar_can_shared=$GCC ;;
+ esac
+ if test "$_lt_dar_can_shared" = "yes"; then
+ output_verbose_link_cmd=echo
+ archive_cmds_CXX="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
+ module_cmds_CXX="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
+ archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
+ module_expsym_cmds_CXX="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
+ if test "$lt_cv_apple_cc_single_mod" != "yes"; then
+ archive_cmds_CXX="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}"
+ archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}"
+ fi
+
+ else
+ ld_shlibs_CXX=no
+ fi
+
+ ;;
+
+ dgux*)
+ case $cc_basename in
+ ec++*)
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+ ghcx*)
+ # Green Hills C++ Compiler
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+ *)
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+ esac
+ ;;
+
+ freebsd[12]*)
+ # C++ shared libraries reported to be fairly broken before
+ # switch to ELF
+ ld_shlibs_CXX=no
+ ;;
+
+ freebsd-elf*)
+ archive_cmds_need_lc_CXX=no
+ ;;
+
+ freebsd* | dragonfly*)
+ # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF
+ # conventions
+ ld_shlibs_CXX=yes
+ ;;
+
+ gnu*)
+ ;;
+
+ hpux9*)
+ hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir'
+ hardcode_libdir_separator_CXX=:
+ export_dynamic_flag_spec_CXX='${wl}-E'
+ hardcode_direct_CXX=yes
+ hardcode_minus_L_CXX=yes # Not in the search PATH,
+ # but as the default
+ # location of the library.
+
+ case $cc_basename in
+ CC*)
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+ aCC*)
+ archive_cmds_CXX='$RM $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ #
+ # There doesn't appear to be a way to prevent this compiler from
+ # explicitly linking system object files so we need to strip them
+ # from the output so that they don't get included in the library
+ # dependencies.
+ output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed'
+ ;;
+ *)
+ if test "$GXX" = yes; then
+ archive_cmds_CXX='$RM $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+ else
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ fi
+ ;;
+ esac
+ ;;
+
+ hpux10*|hpux11*)
+ if test $with_gnu_ld = no; then
+ hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir'
+ hardcode_libdir_separator_CXX=:
+
+ case $host_cpu in
+ hppa*64*|ia64*)
+ ;;
+ *)
+ export_dynamic_flag_spec_CXX='${wl}-E'
+ ;;
+ esac
+ fi
+ case $host_cpu in
+ hppa*64*|ia64*)
+ hardcode_direct_CXX=no
+ hardcode_shlibpath_var_CXX=no
+ ;;
+ *)
+ hardcode_direct_CXX=yes
+ hardcode_direct_absolute_CXX=yes
+ hardcode_minus_L_CXX=yes # Not in the search PATH,
+ # but as the default
+ # location of the library.
+ ;;
+ esac
+
+ case $cc_basename in
+ CC*)
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+ aCC*)
+ case $host_cpu in
+ hppa*64*)
+ archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+ ;;
+ ia64*)
+ archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+ ;;
+ *)
+ archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+ ;;
+ esac
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ #
+ # There doesn't appear to be a way to prevent this compiler from
+ # explicitly linking system object files so we need to strip them
+ # from the output so that they don't get included in the library
+ # dependencies.
+ output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed'
+ ;;
+ *)
+ if test "$GXX" = yes; then
+ if test $with_gnu_ld = no; then
+ case $host_cpu in
+ hppa*64*)
+ archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+ ;;
+ ia64*)
+ archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+ ;;
+ *)
+ archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+ ;;
+ esac
+ fi
+ else
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ fi
+ ;;
+ esac
+ ;;
+
+ interix[3-9]*)
+ hardcode_direct_CXX=no
+ hardcode_shlibpath_var_CXX=no
+ hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir'
+ export_dynamic_flag_spec_CXX='${wl}-E'
+ # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
+ # Instead, shared libraries are loaded at an image base (0x10000000 by
+ # default) and relocated if they conflict, which is a slow very memory
+ # consuming and fragmenting process. To avoid this, we pick a random,
+ # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
+ # time. Moving up from 0x10000000 also allows more sbrk(2) space.
+ archive_cmds_CXX='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+ archive_expsym_cmds_CXX='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+ ;;
+ irix5* | irix6*)
+ case $cc_basename in
+ CC*)
+ # SGI C++
+ archive_cmds_CXX='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
+
+ # Archives containing C++ object files must be created using
+ # "CC -ar", where "CC" is the IRIX C++ compiler. This is
+ # necessary to make sure instantiated templates are included
+ # in the archive.
+ old_archive_cmds_CXX='$CC -ar -WR,-u -o $oldlib $oldobjs'
+ ;;
+ *)
+ if test "$GXX" = yes; then
+ if test "$with_gnu_ld" = no; then
+ archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+ else
+ archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` -o $lib'
+ fi
+ fi
+ link_all_deplibs_CXX=yes
+ ;;
+ esac
+ hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
+ hardcode_libdir_separator_CXX=:
+ inherit_rpath_CXX=yes
+ ;;
+
+ linux* | k*bsd*-gnu | kopensolaris*-gnu)
+ case $cc_basename in
+ KCC*)
+ # Kuck and Associates, Inc. (KAI) C++ Compiler
+
+ # KCC will only create a shared library if the output file
+ # ends with ".so" (or ".sl" for HP-UX), so rename the library
+ # to its proper name (with version) after linking.
+ archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
+ archive_expsym_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib'
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ #
+ # There doesn't appear to be a way to prevent this compiler from
+ # explicitly linking system object files so we need to strip them
+ # from the output so that they don't get included in the library
+ # dependencies.
+ output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed'
+
+ hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir'
+ export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
+
+ # Archives containing C++ object files must be created using
+ # "CC -Bstatic", where "CC" is the KAI C++ compiler.
+ old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs'
+ ;;
+ icpc* | ecpc* )
+ # Intel C++
+ with_gnu_ld=yes
+ # version 8.0 and above of icpc choke on multiply defined symbols
+ # if we add $predep_objects and $postdep_objects, however 7.1 and
+ # earlier do not add the objects themselves.
+ case `$CC -V 2>&1` in
+ *"Version 7."*)
+ archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+ ;;
+ *) # Version 8.0 or newer
+ tmp_idyn=
+ case $host_cpu in
+ ia64*) tmp_idyn=' -i_dynamic';;
+ esac
+ archive_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ archive_expsym_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+ ;;
+ esac
+ archive_cmds_need_lc_CXX=no
+ hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir'
+ export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
+ whole_archive_flag_spec_CXX='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
+ ;;
+ pgCC* | pgcpp*)
+ # Portland Group C++ compiler
+ case `$CC -V` in
+ *pgCC\ [1-5]* | *pgcpp\ [1-5]*)
+ prelink_cmds_CXX='tpldir=Template.dir~
+ rm -rf $tpldir~
+ $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~
+ compile_command="$compile_command `find $tpldir -name \*.o | $NL2SP`"'
+ old_archive_cmds_CXX='tpldir=Template.dir~
+ rm -rf $tpldir~
+ $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~
+ $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | $NL2SP`~
+ $RANLIB $oldlib'
+ archive_cmds_CXX='tpldir=Template.dir~
+ rm -rf $tpldir~
+ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
+ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
+ archive_expsym_cmds_CXX='tpldir=Template.dir~
+ rm -rf $tpldir~
+ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
+ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
+ ;;
+ *) # Version 6 will use weak symbols
+ archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
+ archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
+ ;;
+ esac
+
+ hardcode_libdir_flag_spec_CXX='${wl}--rpath ${wl}$libdir'
+ export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
+ whole_archive_flag_spec_CXX='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
+ ;;
+ cxx*)
+ # Compaq C++
+ archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols'
+
+ runpath_var=LD_RUN_PATH
+ hardcode_libdir_flag_spec_CXX='-rpath $libdir'
+ hardcode_libdir_separator_CXX=:
+
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ #
+ # There doesn't appear to be a way to prevent this compiler from
+ # explicitly linking system object files so we need to strip them
+ # from the output so that they don't get included in the library
+ # dependencies.
+ output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`$ECHO "X$templist" | $Xsed -e "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed'
+ ;;
+ xl*)
+ # IBM XL 8.0 on PPC, with GNU ld
+ hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
+ export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
+ archive_cmds_CXX='$CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ if test "x$supports_anon_versioning" = xyes; then
+ archive_expsym_cmds_CXX='echo "{ global:" > $output_objdir/$libname.ver~
+ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+ echo "local: *; };" >> $output_objdir/$libname.ver~
+ $CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
+ fi
+ ;;
+ *)
+ case `$CC -V 2>&1 | sed 5q` in
+ *Sun\ C*)
+ # Sun C++ 5.9
+ no_undefined_flag_CXX=' -zdefs'
+ archive_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+ archive_expsym_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols'
+ hardcode_libdir_flag_spec_CXX='-R$libdir'
+ whole_archive_flag_spec_CXX='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
+ compiler_needs_object_CXX=yes
+
+ # Not sure whether something based on
+ # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1
+ # would be better.
+ output_verbose_link_cmd='echo'
+
+ # Archives containing C++ object files must be created using
+ # "CC -xar", where "CC" is the Sun C++ compiler. This is
+ # necessary to make sure instantiated templates are included
+ # in the archive.
+ old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs'
+ ;;
+ esac
+ ;;
+ esac
+ ;;
+
+ lynxos*)
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+
+ m88k*)
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+
+ mvs*)
+ case $cc_basename in
+ cxx*)
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+ *)
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+ esac
+ ;;
+
+ netbsd*)
+ if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
+ archive_cmds_CXX='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags'
+ wlarc=
+ hardcode_libdir_flag_spec_CXX='-R$libdir'
+ hardcode_direct_CXX=yes
+ hardcode_shlibpath_var_CXX=no
+ fi
+ # Workaround some broken pre-1.5 toolchains
+ output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"'
+ ;;
+
+ *nto* | *qnx*)
+ ld_shlibs_CXX=yes
+ ;;
+
+ openbsd2*)
+ # C++ shared libraries are fairly broken
+ ld_shlibs_CXX=no
+ ;;
+
+ openbsd*)
+ if test -f /usr/libexec/ld.so; then
+ hardcode_direct_CXX=yes
+ hardcode_shlibpath_var_CXX=no
+ hardcode_direct_absolute_CXX=yes
+ archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
+ hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir'
+ if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+ archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib'
+ export_dynamic_flag_spec_CXX='${wl}-E'
+ whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+ fi
+ output_verbose_link_cmd=echo
+ else
+ ld_shlibs_CXX=no
+ fi
+ ;;
+
+ osf3* | osf4* | osf5*)
+ case $cc_basename in
+ KCC*)
+ # Kuck and Associates, Inc. (KAI) C++ Compiler
+
+ # KCC will only create a shared library if the output file
+ # ends with ".so" (or ".sl" for HP-UX), so rename the library
+ # to its proper name (with version) after linking.
+ archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
+
+ hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir'
+ hardcode_libdir_separator_CXX=:
+
+ # Archives containing C++ object files must be created using
+ # the KAI C++ compiler.
+ case $host in
+ osf3*) old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs' ;;
+ *) old_archive_cmds_CXX='$CC -o $oldlib $oldobjs' ;;
+ esac
+ ;;
+ RCC*)
+ # Rational C++ 2.4.1
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+ cxx*)
+ case $host in
+ osf3*)
+ allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*'
+ archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && $ECHO "X${wl}-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
+ hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
+ ;;
+ *)
+ allow_undefined_flag_CXX=' -expect_unresolved \*'
+ archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
+ archive_expsym_cmds_CXX='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~
+ echo "-hidden">> $lib.exp~
+ $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~
+ $RM $lib.exp'
+ hardcode_libdir_flag_spec_CXX='-rpath $libdir'
+ ;;
+ esac
+
+ hardcode_libdir_separator_CXX=:
+
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ #
+ # There doesn't appear to be a way to prevent this compiler from
+ # explicitly linking system object files so we need to strip them
+ # from the output so that they don't get included in the library
+ # dependencies.
+ output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`$ECHO "X$templist" | $Xsed -e "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed'
+ ;;
+ *)
+ if test "$GXX" = yes && test "$with_gnu_ld" = no; then
+ allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*'
+ case $host in
+ osf3*)
+ archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+ ;;
+ *)
+ archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+ ;;
+ esac
+
+ hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
+ hardcode_libdir_separator_CXX=:
+
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"'
+
+ else
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ fi
+ ;;
+ esac
+ ;;
+
+ psos*)
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+
+ sunos4*)
+ case $cc_basename in
+ CC*)
+ # Sun C++ 4.x
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+ lcc*)
+ # Lucid
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+ *)
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+ esac
+ ;;
+
+ solaris*)
+ case $cc_basename in
+ CC*)
+ # Sun C++ 4.2, 5.x and Centerline C++
+ archive_cmds_need_lc_CXX=yes
+ no_undefined_flag_CXX=' -zdefs'
+ archive_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+ archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+ $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
+
+ hardcode_libdir_flag_spec_CXX='-R$libdir'
+ hardcode_shlibpath_var_CXX=no
+ case $host_os in
+ solaris2.[0-5] | solaris2.[0-5].*) ;;
+ *)
+ # The compiler driver will combine and reorder linker options,
+ # but understands `-z linker_flag'.
+ # Supported since Solaris 2.6 (maybe 2.5.1?)
+ whole_archive_flag_spec_CXX='-z allextract$convenience -z defaultextract'
+ ;;
+ esac
+ link_all_deplibs_CXX=yes
+
+ output_verbose_link_cmd='echo'
+
+ # Archives containing C++ object files must be created using
+ # "CC -xar", where "CC" is the Sun C++ compiler. This is
+ # necessary to make sure instantiated templates are included
+ # in the archive.
+ old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs'
+ ;;
+ gcx*)
+ # Green Hills C++ Compiler
+ archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
+
+ # The C++ compiler must be used to create the archive.
+ old_archive_cmds_CXX='$CC $LDFLAGS -archive -o $oldlib $oldobjs'
+ ;;
+ *)
+ # GNU C++ compiler with Solaris linker
+ if test "$GXX" = yes && test "$with_gnu_ld" = no; then
+ no_undefined_flag_CXX=' ${wl}-z ${wl}defs'
+ if $CC --version | $GREP -v '^2\.7' > /dev/null; then
+ archive_cmds_CXX='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
+ archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+ $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
+
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"'
+ else
+ # g++ 2.7 appears to require `-G' NOT `-shared' on this
+ # platform.
+ archive_cmds_CXX='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
+ archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+ $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
+
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"'
+ fi
+
+ hardcode_libdir_flag_spec_CXX='${wl}-R $wl$libdir'
+ case $host_os in
+ solaris2.[0-5] | solaris2.[0-5].*) ;;
+ *)
+ whole_archive_flag_spec_CXX='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
+ ;;
+ esac
+ fi
+ ;;
+ esac
+ ;;
+
+ sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*)
+ no_undefined_flag_CXX='${wl}-z,text'
+ archive_cmds_need_lc_CXX=no
+ hardcode_shlibpath_var_CXX=no
+ runpath_var='LD_RUN_PATH'
+
+ case $cc_basename in
+ CC*)
+ archive_cmds_CXX='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds_CXX='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ *)
+ archive_cmds_CXX='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds_CXX='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ esac
+ ;;
+
+ sysv5* | sco3.2v5* | sco5v6*)
+ # Note: We can NOT use -z defs as we might desire, because we do not
+ # link with -lc, and that would cause any symbols used from libc to
+ # always be unresolved, which means just about no library would
+ # ever link correctly. If we're not using GNU ld we use -z text
+ # though, which does catch some bad symbols but isn't as heavy-handed
+ # as -z defs.
+ no_undefined_flag_CXX='${wl}-z,text'
+ allow_undefined_flag_CXX='${wl}-z,nodefs'
+ archive_cmds_need_lc_CXX=no
+ hardcode_shlibpath_var_CXX=no
+ hardcode_libdir_flag_spec_CXX='${wl}-R,$libdir'
+ hardcode_libdir_separator_CXX=':'
+ link_all_deplibs_CXX=yes
+ export_dynamic_flag_spec_CXX='${wl}-Bexport'
+ runpath_var='LD_RUN_PATH'
+
+ case $cc_basename in
+ CC*)
+ archive_cmds_CXX='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds_CXX='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ *)
+ archive_cmds_CXX='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds_CXX='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ esac
+ ;;
+
+ tandem*)
+ case $cc_basename in
+ NCC*)
+ # NonStop-UX NCC 3.20
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+ *)
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+ esac
+ ;;
+
+ vxworks*)
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+
+ *)
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+ esac
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs_CXX" >&5
+$as_echo "$ld_shlibs_CXX" >&6; }
+ test "$ld_shlibs_CXX" = no && can_build_shared=no
+
+ GCC_CXX="$GXX"
+ LD_CXX="$LD"
+
+ ## CAVEAT EMPTOR:
+ ## There is no encapsulation within the following macros, do not change
+ ## the running order or otherwise move them around unless you know exactly
+ ## what you are doing...
+ # Dependencies to place before and after the object being linked:
+predep_objects_CXX=
+postdep_objects_CXX=
+predeps_CXX=
+postdeps_CXX=
+compiler_lib_search_path_CXX=
+
+cat > conftest.$ac_ext <<_LT_EOF
+class Foo
+{
+public:
+ Foo (void) { a = 0; }
+private:
+ int a;
+};
+_LT_EOF
+
+if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ # Parse the compiler output and extract the necessary
+ # objects, libraries and library flags.
+
+ # Sentinel used to keep track of whether or not we are before
+ # the conftest object file.
+ pre_test_object_deps_done=no
+
+ for p in `eval "$output_verbose_link_cmd"`; do
+ case $p in
+
+ -L* | -R* | -l*)
+ # Some compilers place space between "-{L,R}" and the path.
+ # Remove the space.
+ if test $p = "-L" ||
+ test $p = "-R"; then
+ prev=$p
+ continue
+ else
+ prev=
+ fi
+
+ if test "$pre_test_object_deps_done" = no; then
+ case $p in
+ -L* | -R*)
+ # Internal compiler library paths should come after those
+ # provided the user. The postdeps already come after the
+ # user supplied libs so there is no need to process them.
+ if test -z "$compiler_lib_search_path_CXX"; then
+ compiler_lib_search_path_CXX="${prev}${p}"
+ else
+ compiler_lib_search_path_CXX="${compiler_lib_search_path_CXX} ${prev}${p}"
+ fi
+ ;;
+ # The "-l" case would never come before the object being
+ # linked, so don't bother handling this case.
+ esac
+ else
+ if test -z "$postdeps_CXX"; then
+ postdeps_CXX="${prev}${p}"
+ else
+ postdeps_CXX="${postdeps_CXX} ${prev}${p}"
+ fi
+ fi
+ ;;
+
+ *.$objext)
+ # This assumes that the test object file only shows up
+ # once in the compiler output.
+ if test "$p" = "conftest.$objext"; then
+ pre_test_object_deps_done=yes
+ continue
+ fi
+
+ if test "$pre_test_object_deps_done" = no; then
+ if test -z "$predep_objects_CXX"; then
+ predep_objects_CXX="$p"
+ else
+ predep_objects_CXX="$predep_objects_CXX $p"
+ fi
+ else
+ if test -z "$postdep_objects_CXX"; then
+ postdep_objects_CXX="$p"
+ else
+ postdep_objects_CXX="$postdep_objects_CXX $p"
+ fi
+ fi
+ ;;
+
+ *) ;; # Ignore the rest.
+
+ esac
+ done
+
+ # Clean up.
+ rm -f a.out a.exe
+else
+ echo "libtool.m4: error: problem compiling CXX test program"
+fi
+
+$RM -f confest.$objext
+
+# PORTME: override above test on systems where it is broken
+case $host_os in
+interix[3-9]*)
+ # Interix 3.5 installs completely hosed .la files for C++, so rather than
+ # hack all around it, let's just trust "g++" to DTRT.
+ predep_objects_CXX=
+ postdep_objects_CXX=
+ postdeps_CXX=
+ ;;
+
+linux*)
+ case `$CC -V 2>&1 | sed 5q` in
+ *Sun\ C*)
+ # Sun C++ 5.9
+
+ # The more standards-conforming stlport4 library is
+ # incompatible with the Cstd library. Avoid specifying
+ # it if it's in CXXFLAGS. Ignore libCrun as
+ # -library=stlport4 depends on it.
+ case " $CXX $CXXFLAGS " in
+ *" -library=stlport4 "*)
+ solaris_use_stlport4=yes
+ ;;
+ esac
+
+ if test "$solaris_use_stlport4" != yes; then
+ postdeps_CXX='-library=Cstd -library=Crun'
+ fi
+ ;;
+ esac
+ ;;
+
+solaris*)
+ case $cc_basename in
+ CC*)
+ # The more standards-conforming stlport4 library is
+ # incompatible with the Cstd library. Avoid specifying
+ # it if it's in CXXFLAGS. Ignore libCrun as
+ # -library=stlport4 depends on it.
+ case " $CXX $CXXFLAGS " in
+ *" -library=stlport4 "*)
+ solaris_use_stlport4=yes
+ ;;
+ esac
+
+ # Adding this requires a known-good setup of shared libraries for
+ # Sun compiler versions before 5.6, else PIC objects from an old
+ # archive will be linked into the output, leading to subtle bugs.
+ if test "$solaris_use_stlport4" != yes; then
+ postdeps_CXX='-library=Cstd -library=Crun'
+ fi
+ ;;
+ esac
+ ;;
+esac
+
+
+case " $postdeps_CXX " in
+*" -lc "*) archive_cmds_need_lc_CXX=no ;;
+esac
+ compiler_lib_search_dirs_CXX=
+if test -n "${compiler_lib_search_path_CXX}"; then
+ compiler_lib_search_dirs_CXX=`echo " ${compiler_lib_search_path_CXX}" | ${SED} -e 's! -L! !g' -e 's!^ !!'`
+fi
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ lt_prog_compiler_wl_CXX=
+lt_prog_compiler_pic_CXX=
+lt_prog_compiler_static_CXX=
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5
+$as_echo_n "checking for $compiler option to produce PIC... " >&6; }
+
+ # C++ specific cases for pic, static, wl, etc.
+ if test "$GXX" = yes; then
+ lt_prog_compiler_wl_CXX='-Wl,'
+ lt_prog_compiler_static_CXX='-static'
+
+ case $host_os in
+ aix*)
+ # All AIX code is PIC.
+ if test "$host_cpu" = ia64; then
+ # AIX 5 now supports IA64 processor
+ lt_prog_compiler_static_CXX='-Bstatic'
+ fi
+ ;;
+
+ amigaos*)
+ case $host_cpu in
+ powerpc)
+ # see comment about AmigaOS4 .so support
+ lt_prog_compiler_pic_CXX='-fPIC'
+ ;;
+ m68k)
+ # FIXME: we need at least 68020 code to build shared libraries, but
+ # adding the `-m68020' flag to GCC prevents building anything better,
+ # like `-m68040'.
+ lt_prog_compiler_pic_CXX='-m68020 -resident32 -malways-restore-a4'
+ ;;
+ esac
+ ;;
+
+ beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+ # PIC is the default for these OSes.
+ ;;
+ mingw* | cygwin* | os2* | pw32* | cegcc*)
+ # This hack is so that the source file can tell whether it is being
+ # built for inclusion in a dll (and should export symbols for example).
+ # Although the cygwin gcc ignores -fPIC, still need this for old-style
+ # (--disable-auto-import) libraries
+ lt_prog_compiler_pic_CXX='-DDLL_EXPORT'
+ ;;
+ darwin* | rhapsody*)
+ # PIC is the default on this platform
+ # Common symbols not allowed in MH_DYLIB files
+ lt_prog_compiler_pic_CXX='-fno-common'
+ ;;
+ *djgpp*)
+ # DJGPP does not support shared libraries at all
+ lt_prog_compiler_pic_CXX=
+ ;;
+ interix[3-9]*)
+ # Interix 3.x gcc -fpic/-fPIC options generate broken code.
+ # Instead, we relocate shared libraries at runtime.
+ ;;
+ sysv4*MP*)
+ if test -d /usr/nec; then
+ lt_prog_compiler_pic_CXX=-Kconform_pic
+ fi
+ ;;
+ hpux*)
+ # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
+ # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag
+ # sets the default TLS model and affects inlining.
+ case $host_cpu in
+ hppa*64*)
+ ;;
+ *)
+ lt_prog_compiler_pic_CXX='-fPIC'
+ ;;
+ esac
+ ;;
+ *qnx* | *nto*)
+ # QNX uses GNU C++, but need to define -shared option too, otherwise
+ # it will coredump.
+ lt_prog_compiler_pic_CXX='-fPIC -shared'
+ ;;
+ *)
+ lt_prog_compiler_pic_CXX='-fPIC'
+ ;;
+ esac
+ else
+ case $host_os in
+ aix[4-9]*)
+ # All AIX code is PIC.
+ if test "$host_cpu" = ia64; then
+ # AIX 5 now supports IA64 processor
+ lt_prog_compiler_static_CXX='-Bstatic'
+ else
+ lt_prog_compiler_static_CXX='-bnso -bI:/lib/syscalls.exp'
+ fi
+ ;;
+ chorus*)
+ case $cc_basename in
+ cxch68*)
+ # Green Hills C++ Compiler
+ # _LT_TAGVAR(lt_prog_compiler_static, CXX)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a"
+ ;;
+ esac
+ ;;
+ dgux*)
+ case $cc_basename in
+ ec++*)
+ lt_prog_compiler_pic_CXX='-KPIC'
+ ;;
+ ghcx*)
+ # Green Hills C++ Compiler
+ lt_prog_compiler_pic_CXX='-pic'
+ ;;
+ *)
+ ;;
+ esac
+ ;;
+ freebsd* | dragonfly*)
+ # FreeBSD uses GNU C++
+ ;;
+ hpux9* | hpux10* | hpux11*)
+ case $cc_basename in
+ CC*)
+ lt_prog_compiler_wl_CXX='-Wl,'
+ lt_prog_compiler_static_CXX='${wl}-a ${wl}archive'
+ if test "$host_cpu" != ia64; then
+ lt_prog_compiler_pic_CXX='+Z'
+ fi
+ ;;
+ aCC*)
+ lt_prog_compiler_wl_CXX='-Wl,'
+ lt_prog_compiler_static_CXX='${wl}-a ${wl}archive'
+ case $host_cpu in
+ hppa*64*|ia64*)
+ # +Z the default
+ ;;
+ *)
+ lt_prog_compiler_pic_CXX='+Z'
+ ;;
+ esac
+ ;;
+ *)
+ ;;
+ esac
+ ;;
+ interix*)
+ # This is c89, which is MS Visual C++ (no shared libs)
+ # Anyone wants to do a port?
+ ;;
+ irix5* | irix6* | nonstopux*)
+ case $cc_basename in
+ CC*)
+ lt_prog_compiler_wl_CXX='-Wl,'
+ lt_prog_compiler_static_CXX='-non_shared'
+ # CC pic flag -KPIC is the default.
+ ;;
+ *)
+ ;;
+ esac
+ ;;
+ linux* | k*bsd*-gnu | kopensolaris*-gnu)
+ case $cc_basename in
+ KCC*)
+ # KAI C++ Compiler
+ lt_prog_compiler_wl_CXX='--backend -Wl,'
+ lt_prog_compiler_pic_CXX='-fPIC'
+ ;;
+ ecpc* )
+ # old Intel C++ for x86_64 which still supported -KPIC.
+ lt_prog_compiler_wl_CXX='-Wl,'
+ lt_prog_compiler_pic_CXX='-KPIC'
+ lt_prog_compiler_static_CXX='-static'
+ ;;
+ icpc* )
+ # Intel C++, used to be incompatible with GCC.
+ # ICC 10 doesn't accept -KPIC any more.
+ lt_prog_compiler_wl_CXX='-Wl,'
+ lt_prog_compiler_pic_CXX='-fPIC'
+ lt_prog_compiler_static_CXX='-static'
+ ;;
+ pgCC* | pgcpp*)
+ # Portland Group C++ compiler
+ lt_prog_compiler_wl_CXX='-Wl,'
+ lt_prog_compiler_pic_CXX='-fpic'
+ lt_prog_compiler_static_CXX='-Bstatic'
+ ;;
+ cxx*)
+ # Compaq C++
+ # Make sure the PIC flag is empty. It appears that all Alpha
+ # Linux and Compaq Tru64 Unix objects are PIC.
+ lt_prog_compiler_pic_CXX=
+ lt_prog_compiler_static_CXX='-non_shared'
+ ;;
+ xlc* | xlC*)
+ # IBM XL 8.0 on PPC
+ lt_prog_compiler_wl_CXX='-Wl,'
+ lt_prog_compiler_pic_CXX='-qpic'
+ lt_prog_compiler_static_CXX='-qstaticlink'
+ ;;
+ *)
+ case `$CC -V 2>&1 | sed 5q` in
+ *Sun\ C*)
+ # Sun C++ 5.9
+ lt_prog_compiler_pic_CXX='-KPIC'
+ lt_prog_compiler_static_CXX='-Bstatic'
+ lt_prog_compiler_wl_CXX='-Qoption ld '
+ ;;
+ esac
+ ;;
+ esac
+ ;;
+ lynxos*)
+ ;;
+ m88k*)
+ ;;
+ mvs*)
+ case $cc_basename in
+ cxx*)
+ lt_prog_compiler_pic_CXX='-W c,exportall'
+ ;;
+ *)
+ ;;
+ esac
+ ;;
+ netbsd* | netbsdelf*-gnu)
+ ;;
+ *qnx* | *nto*)
+ # QNX uses GNU C++, but need to define -shared option too, otherwise
+ # it will coredump.
+ lt_prog_compiler_pic_CXX='-fPIC -shared'
+ ;;
+ osf3* | osf4* | osf5*)
+ case $cc_basename in
+ KCC*)
+ lt_prog_compiler_wl_CXX='--backend -Wl,'
+ ;;
+ RCC*)
+ # Rational C++ 2.4.1
+ lt_prog_compiler_pic_CXX='-pic'
+ ;;
+ cxx*)
+ # Digital/Compaq C++
+ lt_prog_compiler_wl_CXX='-Wl,'
+ # Make sure the PIC flag is empty. It appears that all Alpha
+ # Linux and Compaq Tru64 Unix objects are PIC.
+ lt_prog_compiler_pic_CXX=
+ lt_prog_compiler_static_CXX='-non_shared'
+ ;;
+ *)
+ ;;
+ esac
+ ;;
+ psos*)
+ ;;
+ solaris*)
+ case $cc_basename in
+ CC*)
+ # Sun C++ 4.2, 5.x and Centerline C++
+ lt_prog_compiler_pic_CXX='-KPIC'
+ lt_prog_compiler_static_CXX='-Bstatic'
+ lt_prog_compiler_wl_CXX='-Qoption ld '
+ ;;
+ gcx*)
+ # Green Hills C++ Compiler
+ lt_prog_compiler_pic_CXX='-PIC'
+ ;;
+ *)
+ ;;
+ esac
+ ;;
+ sunos4*)
+ case $cc_basename in
+ CC*)
+ # Sun C++ 4.x
+ lt_prog_compiler_pic_CXX='-pic'
+ lt_prog_compiler_static_CXX='-Bstatic'
+ ;;
+ lcc*)
+ # Lucid
+ lt_prog_compiler_pic_CXX='-pic'
+ ;;
+ *)
+ ;;
+ esac
+ ;;
+ sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
+ case $cc_basename in
+ CC*)
+ lt_prog_compiler_wl_CXX='-Wl,'
+ lt_prog_compiler_pic_CXX='-KPIC'
+ lt_prog_compiler_static_CXX='-Bstatic'
+ ;;
+ esac
+ ;;
+ tandem*)
+ case $cc_basename in
+ NCC*)
+ # NonStop-UX NCC 3.20
+ lt_prog_compiler_pic_CXX='-KPIC'
+ ;;
+ *)
+ ;;
+ esac
+ ;;
+ vxworks*)
+ ;;
+ *)
+ lt_prog_compiler_can_build_shared_CXX=no
+ ;;
+ esac
+ fi
+
+case $host_os in
+ # For platforms which do not support PIC, -DPIC is meaningless:
+ *djgpp*)
+ lt_prog_compiler_pic_CXX=
+ ;;
+ *)
+ lt_prog_compiler_pic_CXX="$lt_prog_compiler_pic_CXX@&t@ -DPIC"
+ ;;
+esac
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_prog_compiler_pic_CXX" >&5
+$as_echo "$lt_prog_compiler_pic_CXX" >&6; }
+
+
+
+#
+# Check to make sure the PIC flag actually works.
+#
+if test -n "$lt_prog_compiler_pic_CXX"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works" >&5
+$as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works... " >&6; }
+if test "${lt_cv_prog_compiler_pic_works_CXX+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_prog_compiler_pic_works_CXX=no
+ ac_outfile=conftest.$ac_objext
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+ lt_compiler_flag="$lt_prog_compiler_pic_CXX@&t@ -DPIC"
+ # Insert the option either (1) after the last *FLAGS variable, or
+ # (2) before a word containing "conftest.", or (3) at the end.
+ # Note that $ac_compile itself does not contain backslashes and begins
+ # with a dollar sign (not a hyphen), so the echo should work correctly.
+ # The option is referenced via a variable to avoid confusing sed.
+ lt_compile=`echo "$ac_compile" | $SED \
+ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+ -e 's:$: $lt_compiler_flag:'`
+ (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&5)
+ (eval "$lt_compile" 2>conftest.err)
+ ac_status=$?
+ cat conftest.err >&5
+ echo "$as_me:__oline__: \$? = $ac_status" >&5
+ if (exit $ac_status) && test -s "$ac_outfile"; then
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings other than the usual output.
+ $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp
+ $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+ if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
+ lt_cv_prog_compiler_pic_works_CXX=yes
+ fi
+ fi
+ $RM conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works_CXX" >&5
+$as_echo "$lt_cv_prog_compiler_pic_works_CXX" >&6; }
+
+if test x"$lt_cv_prog_compiler_pic_works_CXX" = xyes; then
+ case $lt_prog_compiler_pic_CXX in
+ "" | " "*) ;;
+ *) lt_prog_compiler_pic_CXX=" $lt_prog_compiler_pic_CXX" ;;
+ esac
+else
+ lt_prog_compiler_pic_CXX=
+ lt_prog_compiler_can_build_shared_CXX=no
+fi
+
+fi
+
+
+
+#
+# Check to make sure the static flag actually works.
+#
+wl=$lt_prog_compiler_wl_CXX eval lt_tmp_static_flag=\"$lt_prog_compiler_static_CXX\"
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5
+$as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; }
+if test "${lt_cv_prog_compiler_static_works_CXX+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_prog_compiler_static_works_CXX=no
+ save_LDFLAGS="$LDFLAGS"
+ LDFLAGS="$LDFLAGS $lt_tmp_static_flag"
+ echo "$lt_simple_link_test_code" > conftest.$ac_ext
+ if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
+ # The linker can only warn and ignore the option if not recognized
+ # So say no if there are warnings
+ if test -s conftest.err; then
+ # Append any errors to the config.log.
+ cat conftest.err 1>&5
+ $ECHO "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp
+ $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+ if diff conftest.exp conftest.er2 >/dev/null; then
+ lt_cv_prog_compiler_static_works_CXX=yes
+ fi
+ else
+ lt_cv_prog_compiler_static_works_CXX=yes
+ fi
+ fi
+ $RM -r conftest*
+ LDFLAGS="$save_LDFLAGS"
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works_CXX" >&5
+$as_echo "$lt_cv_prog_compiler_static_works_CXX" >&6; }
+
+if test x"$lt_cv_prog_compiler_static_works_CXX" = xyes; then
+ :
+else
+ lt_prog_compiler_static_CXX=
+fi
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
+$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
+if test "${lt_cv_prog_compiler_c_o_CXX+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_prog_compiler_c_o_CXX=no
+ $RM -r conftest 2>/dev/null
+ mkdir conftest
+ cd conftest
+ mkdir out
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+ lt_compiler_flag="-o out/conftest2.$ac_objext"
+ # Insert the option either (1) after the last *FLAGS variable, or
+ # (2) before a word containing "conftest.", or (3) at the end.
+ # Note that $ac_compile itself does not contain backslashes and begins
+ # with a dollar sign (not a hyphen), so the echo should work correctly.
+ lt_compile=`echo "$ac_compile" | $SED \
+ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+ -e 's:$: $lt_compiler_flag:'`
+ (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&5)
+ (eval "$lt_compile" 2>out/conftest.err)
+ ac_status=$?
+ cat out/conftest.err >&5
+ echo "$as_me:__oline__: \$? = $ac_status" >&5
+ if (exit $ac_status) && test -s out/conftest2.$ac_objext
+ then
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings
+ $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp
+ $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
+ if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
+ lt_cv_prog_compiler_c_o_CXX=yes
+ fi
+ fi
+ chmod u+w . 2>&5
+ $RM conftest*
+ # SGI C++ compiler will create directory out/ii_files/ for
+ # template instantiation
+ test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
+ $RM out/* && rmdir out
+ cd ..
+ $RM -r conftest
+ $RM conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o_CXX" >&5
+$as_echo "$lt_cv_prog_compiler_c_o_CXX" >&6; }
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
+$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
+if test "${lt_cv_prog_compiler_c_o_CXX+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_prog_compiler_c_o_CXX=no
+ $RM -r conftest 2>/dev/null
+ mkdir conftest
+ cd conftest
+ mkdir out
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+ lt_compiler_flag="-o out/conftest2.$ac_objext"
+ # Insert the option either (1) after the last *FLAGS variable, or
+ # (2) before a word containing "conftest.", or (3) at the end.
+ # Note that $ac_compile itself does not contain backslashes and begins
+ # with a dollar sign (not a hyphen), so the echo should work correctly.
+ lt_compile=`echo "$ac_compile" | $SED \
+ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+ -e 's:$: $lt_compiler_flag:'`
+ (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&5)
+ (eval "$lt_compile" 2>out/conftest.err)
+ ac_status=$?
+ cat out/conftest.err >&5
+ echo "$as_me:__oline__: \$? = $ac_status" >&5
+ if (exit $ac_status) && test -s out/conftest2.$ac_objext
+ then
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings
+ $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp
+ $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
+ if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
+ lt_cv_prog_compiler_c_o_CXX=yes
+ fi
+ fi
+ chmod u+w . 2>&5
+ $RM conftest*
+ # SGI C++ compiler will create directory out/ii_files/ for
+ # template instantiation
+ test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
+ $RM out/* && rmdir out
+ cd ..
+ $RM -r conftest
+ $RM conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o_CXX" >&5
+$as_echo "$lt_cv_prog_compiler_c_o_CXX" >&6; }
+
+
+
+
+hard_links="nottested"
+if test "$lt_cv_prog_compiler_c_o_CXX" = no && test "$need_locks" != no; then
+ # do not overwrite the value of need_locks provided by the user
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5
+$as_echo_n "checking if we can lock with hard links... " >&6; }
+ hard_links=yes
+ $RM conftest*
+ ln conftest.a conftest.b 2>/dev/null && hard_links=no
+ touch conftest.a
+ ln conftest.a conftest.b 2>&5 || hard_links=no
+ ln conftest.a conftest.b 2>/dev/null && hard_links=no
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5
+$as_echo "$hard_links" >&6; }
+ if test "$hard_links" = no; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5
+$as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;}
+ need_locks=warn
+ fi
+else
+ need_locks=no
+fi
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5
+$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; }
+
+ export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+ case $host_os in
+ aix[4-9]*)
+ # If we're using GNU nm, then we don't want the "-C" option.
+ # -C means demangle to AIX nm, but means don't demangle with GNU nm
+ if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
+ export_symbols_cmds_CXX='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
+ else
+ export_symbols_cmds_CXX='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
+ fi
+ ;;
+ pw32*)
+ export_symbols_cmds_CXX="$ltdll_cmds"
+ ;;
+ cygwin* | mingw* | cegcc*)
+ export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;/^.*[ ]__nm__/s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols'
+ ;;
+ linux* | k*bsd*-gnu)
+ link_all_deplibs_CXX=no
+ ;;
+ *)
+ export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+ ;;
+ esac
+ exclude_expsyms_CXX='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs_CXX" >&5
+$as_echo "$ld_shlibs_CXX" >&6; }
+test "$ld_shlibs_CXX" = no && can_build_shared=no
+
+with_gnu_ld_CXX=$with_gnu_ld
+
+
+
+
+
+
+#
+# Do we need to explicitly link libc?
+#
+case "x$archive_cmds_need_lc_CXX" in
+x|xyes)
+ # Assume -lc should be added
+ archive_cmds_need_lc_CXX=yes
+
+ if test "$enable_shared" = yes && test "$GCC" = yes; then
+ case $archive_cmds_CXX in
+ *'~'*)
+ # FIXME: we may have to deal with multi-command sequences.
+ ;;
+ '$CC '*)
+ # Test whether the compiler implicitly links with -lc since on some
+ # systems, -lgcc has to come before -lc. If gcc already passes -lc
+ # to ld, don't add -lc before -lgcc.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5
+$as_echo_n "checking whether -lc should be explicitly linked in... " >&6; }
+ $RM conftest*
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } 2>conftest.err; then
+ soname=conftest
+ lib=conftest
+ libobjs=conftest.$ac_objext
+ deplibs=
+ wl=$lt_prog_compiler_wl_CXX
+ pic_flag=$lt_prog_compiler_pic_CXX
+ compiler_flags=-v
+ linker_flags=-v
+ verstring=
+ output_objdir=.
+ libname=conftest
+ lt_save_allow_undefined_flag=$allow_undefined_flag_CXX
+ allow_undefined_flag_CXX=
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds_CXX 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5
+ (eval $archive_cmds_CXX 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+ then
+ archive_cmds_need_lc_CXX=no
+ else
+ archive_cmds_need_lc_CXX=yes
+ fi
+ allow_undefined_flag_CXX=$lt_save_allow_undefined_flag
+ else
+ cat conftest.err 1>&5
+ fi
+ $RM conftest*
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $archive_cmds_need_lc_CXX" >&5
+$as_echo "$archive_cmds_need_lc_CXX" >&6; }
+ ;;
+ esac
+ fi
+ ;;
+esac
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5
+$as_echo_n "checking dynamic linker characteristics... " >&6; }
+
+library_names_spec=
+libname_spec='lib$name'
+soname_spec=
+shrext_cmds=".so"
+postinstall_cmds=
+postuninstall_cmds=
+finish_cmds=
+finish_eval=
+shlibpath_var=
+shlibpath_overrides_runpath=unknown
+version_type=none
+dynamic_linker="$host_os ld.so"
+sys_lib_dlsearch_path_spec="/lib /usr/lib"
+need_lib_prefix=unknown
+hardcode_into_libs=no
+
+# when you set need_version to no, make sure it does not cause -set_version
+# flags to be left without arguments
+need_version=unknown
+
+case $host_os in
+aix3*)
+ version_type=linux
+ library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
+ shlibpath_var=LIBPATH
+
+ # AIX 3 has no versioning support, so we append a major version to the name.
+ soname_spec='${libname}${release}${shared_ext}$major'
+ ;;
+
+aix[4-9]*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ hardcode_into_libs=yes
+ if test "$host_cpu" = ia64; then
+ # AIX 5 supports IA64
+ library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
+ shlibpath_var=LD_LIBRARY_PATH
+ else
+ # With GCC up to 2.95.x, collect2 would create an import file
+ # for dependence libraries. The import file would start with
+ # the line `#! .'. This would cause the generated library to
+ # depend on `.', always an invalid library. This was fixed in
+ # development snapshots of GCC prior to 3.0.
+ case $host_os in
+ aix4 | aix4.[01] | aix4.[01].*)
+ if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
+ echo ' yes '
+ echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then
+ :
+ else
+ can_build_shared=no
+ fi
+ ;;
+ esac
+ # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
+ # soname into executable. Probably we can add versioning support to
+ # collect2, so additional links can be useful in future.
+ if test "$aix_use_runtimelinking" = yes; then
+ # If using run time linking (on AIX 4.2 or later) use lib<name>.so
+ # instead of lib<name>.a to let people know that these are not
+ # typical AIX shared libraries.
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ else
+ # We preserve .a as extension for shared libraries through AIX4.2
+ # and later when we are not doing run time linking.
+ library_names_spec='${libname}${release}.a $libname.a'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ fi
+ shlibpath_var=LIBPATH
+ fi
+ ;;
+
+amigaos*)
+ case $host_cpu in
+ powerpc)
+ # Since July 2007 AmigaOS4 officially supports .so libraries.
+ # When compiling the executable, add -use-dynld -Lsobjs: to the compileline.
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ ;;
+ m68k)
+ library_names_spec='$libname.ixlibrary $libname.a'
+ # Create ${libname}_ixlibrary.a entries in /sys/libs.
+ finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$ECHO "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
+ ;;
+ esac
+ ;;
+
+beos*)
+ library_names_spec='${libname}${shared_ext}'
+ dynamic_linker="$host_os ld.so"
+ shlibpath_var=LIBRARY_PATH
+ ;;
+
+bsdi[45]*)
+ version_type=linux
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
+ sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
+ # the default ld.so.conf also contains /usr/contrib/lib and
+ # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
+ # libtool to hard-code these into programs
+ ;;
+
+cygwin* | mingw* | pw32* | cegcc*)
+ version_type=windows
+ shrext_cmds=".dll"
+ need_version=no
+ need_lib_prefix=no
+
+ case $GCC,$host_os in
+ yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*)
+ library_names_spec='$libname.dll.a'
+ # DLL is installed to $(libdir)/../bin by postinstall_cmds
+ postinstall_cmds='base_file=`basename \${file}`~
+ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
+ dldir=$destdir/`dirname \$dlpath`~
+ test -d \$dldir || mkdir -p \$dldir~
+ $install_prog $dir/$dlname \$dldir/$dlname~
+ chmod a+x \$dldir/$dlname~
+ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then
+ eval '\''$striplib \$dldir/$dlname'\'' || exit \$?;
+ fi'
+ postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
+ dlpath=$dir/\$dldll~
+ $RM \$dlpath'
+ shlibpath_overrides_runpath=yes
+
+ case $host_os in
+ cygwin*)
+ # Cygwin DLLs use 'cyg' prefix rather than 'lib'
+ soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+ sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib"
+ ;;
+ mingw* | cegcc*)
+ # MinGW DLLs use traditional 'lib' prefix
+ soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+ sys_lib_search_path_spec=`$CC -print-search-dirs | $GREP "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
+ if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then
+ # It is most probably a Windows format PATH printed by
+ # mingw gcc, but we are running on Cygwin. Gcc prints its search
+ # path with ; separators, and with drive letters. We can handle the
+ # drive letters (cygwin fileutils understands them), so leave them,
+ # especially as we might pass files found there to a mingw objdump,
+ # which wouldn't understand a cygwinified path. Ahh.
+ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
+ else
+ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
+ fi
+ ;;
+ pw32*)
+ # pw32 DLLs use 'pw' prefix rather than 'lib'
+ library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+ ;;
+ esac
+ ;;
+
+ *)
+ library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib'
+ ;;
+ esac
+ dynamic_linker='Win32 ld.exe'
+ # FIXME: first we should search . and the directory the executable is in
+ shlibpath_var=PATH
+ ;;
+
+darwin* | rhapsody*)
+ dynamic_linker="$host_os dyld"
+ version_type=darwin
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext'
+ soname_spec='${libname}${release}${major}$shared_ext'
+ shlibpath_overrides_runpath=yes
+ shlibpath_var=DYLD_LIBRARY_PATH
+ shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
+
+ sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
+ ;;
+
+dgux*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ ;;
+
+freebsd1*)
+ dynamic_linker=no
+ ;;
+
+freebsd* | dragonfly*)
+ # DragonFly does not have aout. When/if they implement a new
+ # versioning mechanism, adjust this.
+ if test -x /usr/bin/objformat; then
+ objformat=`/usr/bin/objformat`
+ else
+ case $host_os in
+ freebsd[123]*) objformat=aout ;;
+ *) objformat=elf ;;
+ esac
+ fi
+ version_type=freebsd-$objformat
+ case $version_type in
+ freebsd-elf*)
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
+ need_version=no
+ need_lib_prefix=no
+ ;;
+ freebsd-*)
+ library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
+ need_version=yes
+ ;;
+ esac
+ shlibpath_var=LD_LIBRARY_PATH
+ case $host_os in
+ freebsd2*)
+ shlibpath_overrides_runpath=yes
+ ;;
+ freebsd3.[01]* | freebsdelf3.[01]*)
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ ;;
+ freebsd3.[2-9]* | freebsdelf3.[2-9]* | \
+ freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1)
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ ;;
+ *) # from 4.6 on, and DragonFly
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ ;;
+ esac
+ ;;
+
+gnu*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ hardcode_into_libs=yes
+ ;;
+
+hpux9* | hpux10* | hpux11*)
+ # Give a soname corresponding to the major version so that dld.sl refuses to
+ # link against other versions.
+ version_type=sunos
+ need_lib_prefix=no
+ need_version=no
+ case $host_cpu in
+ ia64*)
+ shrext_cmds='.so'
+ hardcode_into_libs=yes
+ dynamic_linker="$host_os dld.so"
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ if test "X$HPUX_IA64_MODE" = X32; then
+ sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
+ else
+ sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
+ fi
+ sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+ ;;
+ hppa*64*)
+ shrext_cmds='.sl'
+ hardcode_into_libs=yes
+ dynamic_linker="$host_os dld.sl"
+ shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
+ shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
+ sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+ ;;
+ *)
+ shrext_cmds='.sl'
+ dynamic_linker="$host_os dld.sl"
+ shlibpath_var=SHLIB_PATH
+ shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ ;;
+ esac
+ # HP-UX runs *really* slowly unless shared libraries are mode 555.
+ postinstall_cmds='chmod 555 $lib'
+ ;;
+
+interix[3-9]*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ ;;
+
+irix5* | irix6* | nonstopux*)
+ case $host_os in
+ nonstopux*) version_type=nonstopux ;;
+ *)
+ if test "$lt_cv_prog_gnu_ld" = yes; then
+ version_type=linux
+ else
+ version_type=irix
+ fi ;;
+ esac
+ need_lib_prefix=no
+ need_version=no
+ soname_spec='${libname}${release}${shared_ext}$major'
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
+ case $host_os in
+ irix5* | nonstopux*)
+ libsuff= shlibsuff=
+ ;;
+ *)
+ case $LD in # libtool.m4 will add one of these switches to LD
+ *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
+ libsuff= shlibsuff= libmagic=32-bit;;
+ *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
+ libsuff=32 shlibsuff=N32 libmagic=N32;;
+ *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
+ libsuff=64 shlibsuff=64 libmagic=64-bit;;
+ *) libsuff= shlibsuff= libmagic=never-match;;
+ esac
+ ;;
+ esac
+ shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
+ shlibpath_overrides_runpath=no
+ sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
+ sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
+ hardcode_into_libs=yes
+ ;;
+
+# No shared lib support for Linux oldld, aout, or coff.
+linux*oldld* | linux*aout* | linux*coff*)
+ dynamic_linker=no
+ ;;
+
+# This must be Linux ELF.
+linux* | k*bsd*-gnu | kopensolaris*-gnu)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ # Some binutils ld are patched to set DT_RUNPATH
+ save_LDFLAGS=$LDFLAGS
+ save_libdir=$libdir
+ eval "libdir=/foo; wl=\"$lt_prog_compiler_wl_CXX\"; \
+ LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec_CXX\""
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_link "$LINENO"; then :
+ if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then :
+ shlibpath_overrides_runpath=yes
+fi
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ LDFLAGS=$save_LDFLAGS
+ libdir=$save_libdir
+
+ # This implies no fast_install, which is unacceptable.
+ # Some rework will be needed to allow for fast_install
+ # before this can be enabled.
+ hardcode_into_libs=yes
+
+ # Append ld.so.conf contents to the search path
+ if test -f /etc/ld.so.conf; then
+ lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
+ sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
+ fi
+
+ # We used to test for /lib/ld.so.1 and disable shared libraries on
+ # powerpc, because MkLinux only supported shared libraries with the
+ # GNU dynamic linker. Since this was broken with cross compilers,
+ # most powerpc-linux boxes support dynamic linking these days and
+ # people can always --disable-shared, the test was removed, and we
+ # assume the GNU/Linux dynamic linker is in use.
+ dynamic_linker='GNU/Linux ld.so'
+ ;;
+
+netbsdelf*-gnu)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ dynamic_linker='NetBSD ld.elf_so'
+ ;;
+
+netbsd*)
+ version_type=sunos
+ need_lib_prefix=no
+ need_version=no
+ if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+ dynamic_linker='NetBSD (a.out) ld.so'
+ else
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ dynamic_linker='NetBSD ld.elf_so'
+ fi
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ ;;
+
+newsos6)
+ version_type=linux
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ ;;
+
+*nto* | *qnx*)
+ version_type=qnx
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ dynamic_linker='ldqnx.so'
+ ;;
+
+openbsd*)
+ version_type=sunos
+ sys_lib_dlsearch_path_spec="/usr/lib"
+ need_lib_prefix=no
+ # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs.
+ case $host_os in
+ openbsd3.3 | openbsd3.3.*) need_version=yes ;;
+ *) need_version=no ;;
+ esac
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+ case $host_os in
+ openbsd2.[89] | openbsd2.[89].*)
+ shlibpath_overrides_runpath=no
+ ;;
+ *)
+ shlibpath_overrides_runpath=yes
+ ;;
+ esac
+ else
+ shlibpath_overrides_runpath=yes
+ fi
+ ;;
+
+os2*)
+ libname_spec='$name'
+ shrext_cmds=".dll"
+ need_lib_prefix=no
+ library_names_spec='$libname${shared_ext} $libname.a'
+ dynamic_linker='OS/2 ld.exe'
+ shlibpath_var=LIBPATH
+ ;;
+
+osf3* | osf4* | osf5*)
+ version_type=osf
+ need_lib_prefix=no
+ need_version=no
+ soname_spec='${libname}${release}${shared_ext}$major'
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ shlibpath_var=LD_LIBRARY_PATH
+ sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
+ sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
+ ;;
+
+rdos*)
+ dynamic_linker=no
+ ;;
+
+solaris*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ # ldd complains unless libraries are executable
+ postinstall_cmds='chmod +x $lib'
+ ;;
+
+sunos4*)
+ version_type=sunos
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+ finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ if test "$with_gnu_ld" = yes; then
+ need_lib_prefix=no
+ fi
+ need_version=yes
+ ;;
+
+sysv4 | sysv4.3*)
+ version_type=linux
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ case $host_vendor in
+ sni)
+ shlibpath_overrides_runpath=no
+ need_lib_prefix=no
+ runpath_var=LD_RUN_PATH
+ ;;
+ siemens)
+ need_lib_prefix=no
+ ;;
+ motorola)
+ need_lib_prefix=no
+ need_version=no
+ shlibpath_overrides_runpath=no
+ sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
+ ;;
+ esac
+ ;;
+
+sysv4*MP*)
+ if test -d /usr/nec ;then
+ version_type=linux
+ library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
+ soname_spec='$libname${shared_ext}.$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ fi
+ ;;
+
+sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
+ version_type=freebsd-elf
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ if test "$with_gnu_ld" = yes; then
+ sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib'
+ else
+ sys_lib_search_path_spec='/usr/ccs/lib /usr/lib'
+ case $host_os in
+ sco3.2v5*)
+ sys_lib_search_path_spec="$sys_lib_search_path_spec /lib"
+ ;;
+ esac
+ fi
+ sys_lib_dlsearch_path_spec='/usr/lib'
+ ;;
+
+tpf*)
+ # TPF is a cross-target only. Preferred cross-host = GNU/Linux.
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ ;;
+
+uts4*)
+ version_type=linux
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ ;;
+
+*)
+ dynamic_linker=no
+ ;;
+esac
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5
+$as_echo "$dynamic_linker" >&6; }
+test "$dynamic_linker" = no && can_build_shared=no
+
+variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
+if test "$GCC" = yes; then
+ variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
+fi
+
+if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then
+ sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec"
+fi
+if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then
+ sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec"
+fi
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5
+$as_echo_n "checking how to hardcode library paths into programs... " >&6; }
+hardcode_action_CXX=
+if test -n "$hardcode_libdir_flag_spec_CXX" ||
+ test -n "$runpath_var_CXX" ||
+ test "X$hardcode_automatic_CXX" = "Xyes" ; then
+
+ # We can hardcode non-existent directories.
+ if test "$hardcode_direct_CXX" != no &&
+ # If the only mechanism to avoid hardcoding is shlibpath_var, we
+ # have to relink, otherwise we might link with an installed library
+ # when we should be linking with a yet-to-be-installed one
+ ## test "$_LT_TAGVAR(hardcode_shlibpath_var, CXX)" != no &&
+ test "$hardcode_minus_L_CXX" != no; then
+ # Linking always hardcodes the temporary library directory.
+ hardcode_action_CXX=relink
+ else
+ # We can link without hardcoding, and we can hardcode nonexisting dirs.
+ hardcode_action_CXX=immediate
+ fi
+else
+ # We cannot hardcode anything, or else we can only hardcode existing
+ # directories.
+ hardcode_action_CXX=unsupported
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action_CXX" >&5
+$as_echo "$hardcode_action_CXX" >&6; }
+
+if test "$hardcode_action_CXX" = relink ||
+ test "$inherit_rpath_CXX" = yes; then
+ # Fast installation is not supported
+ enable_fast_install=no
+elif test "$shlibpath_overrides_runpath" = yes ||
+ test "$enable_shared" = no; then
+ # Fast installation is not necessary
+ enable_fast_install=needless
+fi
+
+
+
+
+
+
+
+ fi # test -n "$compiler"
+
+ CC=$lt_save_CC
+ LDCXX=$LD
+ LD=$lt_save_LD
+ GCC=$lt_save_GCC
+ with_gnu_ld=$lt_save_with_gnu_ld
+ lt_cv_path_LDCXX=$lt_cv_path_LD
+ lt_cv_path_LD=$lt_save_path_LD
+ lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld
+ lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld
+fi # test "$_lt_caught_CXX_error" != yes
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ac_config_commands="$ac_config_commands libtool"
+
+
+
+
+# Only expand once:
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5
+$as_echo_n "checking whether ln -s works... " >&6; }
+LN_S=$as_ln_s
+if test "$LN_S" = "ln -s"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5
+$as_echo "no, using $LN_S" >&6; }
+fi
+
+
+###############
+### DocBook ###
+###############
+for ac_prog in openjade jade
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_JADE+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$JADE"; then
+ ac_cv_prog_JADE="$JADE" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_JADE="$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+JADE=$ac_cv_prog_JADE
+if test -n "$JADE"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $JADE" >&5
+$as_echo "$JADE" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$JADE" && break
+done
+
+if test -n "$JADE"; then
+ for ac_prog in onsgmls nsgmls
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_NSGMLS+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$NSGMLS"; then
+ ac_cv_prog_NSGMLS="$NSGMLS" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_NSGMLS="$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+NSGMLS=$ac_cv_prog_NSGMLS
+if test -n "$NSGMLS"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NSGMLS" >&5
+$as_echo "$NSGMLS" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$NSGMLS" && break
+done
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for DocBook V4.1" >&5
+$as_echo_n "checking for DocBook V4.1... " >&6; }
+if test "${pgac_cv_check_docbook+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat >conftest.sgml <<EOF
+<!doctype book PUBLIC "-//OASIS//DTD DocBook V4.1//EN">
+<book>
+ <title>test</title>
+ <chapter>
+ <title>random</title>
+ <sect1>
+ <title>testsect</title>
+ <para>text</para>
+ </sect1>
+ </chapter>
+</book>
+EOF
+
+${NSGMLS-false} -s conftest.sgml 1>&5 2>&1
+if test $? -eq 0; then
+ pgac_cv_check_docbook=yes
+else
+ pgac_cv_check_docbook=no
+fi
+rm -f conftest.sgml
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $pgac_cv_check_docbook" >&5
+$as_echo "$pgac_cv_check_docbook" >&6; }
+
+have_docbook=$pgac_cv_check_docbook
+
+
+ if test "$pgac_cv_check_docbook" = "yes"; then
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for DocBook stylesheets" >&5
+$as_echo_n "checking for DocBook stylesheets... " >&6; }
+
+@%:@ Check whether --with-docbook-stylesheets was given.
+if test "${with_docbook_stylesheets+set}" = set; then :
+ withval=$with_docbook_stylesheets; muse_docbook_prefix="$withval"
+fi
+
+if test "${pgac_cv_path_stylesheets+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+
+if test -n "$muse_docbook_prefix"; then
+ if test -r "$muse_docbook_prefix/html/docbook.dsl" \
+ && test -r "$muse_docbook_prefix/print/docbook.dsl"; then
+ pgac_cv_path_stylesheets="$muse_docbook_prefix"
+ fi
+fi
+if test -z "$pgac_cv_path_stylesheets"; then
+ if test -n "$DOCBOOKSTYLE"; then
+ if test -r "$DOCBOOKSTYLE/html/docbook.dsl" \
+ && test -r "$DOCBOOKSTYLE/print/docbook.dsl"; then
+ pgac_cv_path_stylesheets="$DOCBOOKSTYLE"
+ fi
+ fi
+fi
+if test -z "$pgac_cv_path_stylesheets"; then
+ for pgac_prefix in /usr /usr/local /opt; do
+ for pgac_infix in share lib; do
+ for pgac_postfix in \
+ sgml/stylesheets/nwalsh-modular \
+ sgml/stylesheets/docbook \
+ sgml/docbook/dsssl/modular \
+ sgml/docbook/stylesheet/dsssl/modular
+ do
+ pgac_candidate=$pgac_prefix/$pgac_infix/$pgac_postfix
+ if test -r "$pgac_candidate/html/docbook.dsl" \
+ && test -r "$pgac_candidate/print/docbook.dsl"
+ then
+ pgac_cv_path_stylesheets=$pgac_candidate
+ break 3
+ fi
+ done
+ done
+ done
+fi
+
+fi
+
+DOCBOOKSTYLE=$pgac_cv_path_stylesheets
+
+if test -n "$DOCBOOKSTYLE"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DOCBOOKSTYLE" >&5
+$as_echo "$DOCBOOKSTYLE" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+ if test -n "$DOCBOOKSTYLE"; then
+ DOCBOOKTARGETS="book1.html"
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: DocBook stylesheets not found or not usable - documentation will not be built" >&5
+$as_echo "$as_me: WARNING: DocBook stylesheets not found or not usable - documentation will not be built" >&2;}
+ fi
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: DocBook 4.1 DTD not found or not usable - documentation will not be built" >&5
+$as_echo "$as_me: WARNING: DocBook 4.1 DTD not found or not usable - documentation will not be built" >&2;}
+ fi
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: jade not found - documentation will not be built" >&5
+$as_echo "$as_me: WARNING: jade not found - documentation will not be built" >&2;}
+fi
+
+
+###############
+### doxygen ###
+###############
+
+# Extract the first word of "doxygen", so it can be a program name with args.
+set dummy doxygen; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_DOXYGEN+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $DOXYGEN in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_DOXYGEN="$DOXYGEN" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_path_DOXYGEN="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ test -z "$ac_cv_path_DOXYGEN" && ac_cv_path_DOXYGEN="no"
+ ;;
+esac
+fi
+DOXYGEN=$ac_cv_path_DOXYGEN
+if test -n "$DOXYGEN"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DOXYGEN" >&5
+$as_echo "$DOXYGEN" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+
+################
+### graphviz ###
+################
+
+# Extract the first word of "dot", so it can be a program name with args.
+set dummy dot; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_DOT+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $DOT in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_DOT="$DOT" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_path_DOT="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ test -z "$ac_cv_path_DOT" && ac_cv_path_DOT="no"
+ ;;
+esac
+fi
+DOT=$ac_cv_path_DOT
+if test -n "$DOT"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DOT" >&5
+$as_echo "$DOT" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+if test "$DOT" != "no"; then
+ HAVEDOT=YES
+ DOTPATH=$( dirname "$DOT" )
+else
+ HAVEDOT=NO
+fi
+
+
+
+############
+### perl ###
+############
+
+# Extract the first word of "perl", so it can be a program name with args.
+set dummy perl; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_PERL+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $PERL in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_PERL="$PERL" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_path_PERL="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ test -z "$ac_cv_path_PERL" && ac_cv_path_PERL="no"
+ ;;
+esac
+fi
+PERL=$ac_cv_path_PERL
+if test -n "$PERL"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PERL" >&5
+$as_echo "$PERL" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+if test "$PERL" == "no"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: you don't have perl installed! wierdo! (and doxygen might not like this)" >&5
+$as_echo "$as_me: WARNING: you don't have perl installed! wierdo! (and doxygen might not like this)" >&2;}
+fi
+
+
+#########
+### X ###
+#########
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for X" >&5
+$as_echo_n "checking for X... " >&6; }
+
+
+@%:@ Check whether --with-x was given.
+if test "${with_x+set}" = set; then :
+ withval=$with_x;
+fi
+
+# $have_x is `yes', `no', `disabled', or empty when we do not yet know.
+if test "x$with_x" = xno; then
+ # The user explicitly disabled X.
+ have_x=disabled
+else
+ case $x_includes,$x_libraries in #(
+ *\'*) as_fn_error "cannot use X directory names containing '" "$LINENO" 5;; #(
+ *,NONE | NONE,*) if test "${ac_cv_have_x+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ # One or both of the vars are not set, and there is no cached value.
+ac_x_includes=no ac_x_libraries=no
+rm -f -r conftest.dir
+if mkdir conftest.dir; then
+ cd conftest.dir
+ cat >Imakefile <<'_ACEOF'
+incroot:
+ @echo incroot='${INCROOT}'
+usrlibdir:
+ @echo usrlibdir='${USRLIBDIR}'
+libdir:
+ @echo libdir='${LIBDIR}'
+_ACEOF
+ if (export CC; ${XMKMF-xmkmf}) >/dev/null 2>/dev/null && test -f Makefile; then
+ # GNU make sometimes prints "make[1]: Entering...", which would confuse us.
+ for ac_var in incroot usrlibdir libdir; do
+ eval "ac_im_$ac_var=\`\${MAKE-make} $ac_var 2>/dev/null | sed -n 's/^$ac_var=//p'\`"
+ done
+ # Open Windows xmkmf reportedly sets LIBDIR instead of USRLIBDIR.
+ for ac_extension in a so sl dylib la dll; do
+ if test ! -f "$ac_im_usrlibdir/libX11.$ac_extension" &&
+ test -f "$ac_im_libdir/libX11.$ac_extension"; then
+ ac_im_usrlibdir=$ac_im_libdir; break
+ fi
+ done
+ # Screen out bogus values from the imake configuration. They are
+ # bogus both because they are the default anyway, and because
+ # using them would break gcc on systems where it needs fixed includes.
+ case $ac_im_incroot in
+ /usr/include) ac_x_includes= ;;
+ *) test -f "$ac_im_incroot/X11/Xos.h" && ac_x_includes=$ac_im_incroot;;
+ esac
+ case $ac_im_usrlibdir in
+ /usr/lib | /usr/lib64 | /lib | /lib64) ;;
+ *) test -d "$ac_im_usrlibdir" && ac_x_libraries=$ac_im_usrlibdir ;;
+ esac
+ fi
+ cd ..
+ rm -f -r conftest.dir
+fi
+
+# Standard set of common directories for X headers.
+# Check X11 before X11Rn because it is often a symlink to the current release.
+ac_x_header_dirs='
+/usr/X11/include
+/usr/X11R7/include
+/usr/X11R6/include
+/usr/X11R5/include
+/usr/X11R4/include
+
+/usr/include/X11
+/usr/include/X11R7
+/usr/include/X11R6
+/usr/include/X11R5
+/usr/include/X11R4
+
+/usr/local/X11/include
+/usr/local/X11R7/include
+/usr/local/X11R6/include
+/usr/local/X11R5/include
+/usr/local/X11R4/include
+
+/usr/local/include/X11
+/usr/local/include/X11R7
+/usr/local/include/X11R6
+/usr/local/include/X11R5
+/usr/local/include/X11R4
+
+/usr/X386/include
+/usr/x386/include
+/usr/XFree86/include/X11
+
+/usr/include
+/usr/local/include
+/usr/unsupported/include
+/usr/athena/include
+/usr/local/x11r5/include
+/usr/lpp/Xamples/include
+
+/usr/openwin/include
+/usr/openwin/share/include'
+
+if test "$ac_x_includes" = no; then
+ # Guess where to find include files, by looking for Xlib.h.
+ # First, try using that file with no special directory specified.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+@%:@include <X11/Xlib.h>
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+ # We can compile using X headers with no special include directory.
+ac_x_includes=
+else
+ for ac_dir in $ac_x_header_dirs; do
+ if test -r "$ac_dir/X11/Xlib.h"; then
+ ac_x_includes=$ac_dir
+ break
+ fi
+done
+fi
+rm -f conftest.err conftest.$ac_ext
+fi # $ac_x_includes = no
+
+if test "$ac_x_libraries" = no; then
+ # Check for the libraries.
+ # See if we find them without any special options.
+ # Don't add to $LIBS permanently.
+ ac_save_LIBS=$LIBS
+ LIBS="-lX11 $LIBS"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+@%:@include <X11/Xlib.h>
+int
+main ()
+{
+XrmInitialize ()
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ LIBS=$ac_save_LIBS
+# We can link X programs with no special library path.
+ac_x_libraries=
+else
+ LIBS=$ac_save_LIBS
+for ac_dir in `$as_echo "$ac_x_includes $ac_x_header_dirs" | sed s/include/lib/g`
+do
+ # Don't even attempt the hair of trying to link an X program!
+ for ac_extension in a so sl dylib la dll; do
+ if test -r "$ac_dir/libX11.$ac_extension"; then
+ ac_x_libraries=$ac_dir
+ break 2
+ fi
+ done
+done
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+fi # $ac_x_libraries = no
+
+case $ac_x_includes,$ac_x_libraries in #(
+ no,* | *,no | *\'*)
+ # Didn't find X, or a directory has "'" in its name.
+ ac_cv_have_x="have_x=no";; #(
+ *)
+ # Record where we found X for the cache.
+ ac_cv_have_x="have_x=yes\
+ ac_x_includes='$ac_x_includes'\
+ ac_x_libraries='$ac_x_libraries'"
+esac
+fi
+;; #(
+ *) have_x=yes;;
+ esac
+ eval "$ac_cv_have_x"
+fi # $with_x != no
+
+if test "$have_x" != yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_x" >&5
+$as_echo "$have_x" >&6; }
+ no_x=yes
+else
+ # If each of the values was on the command line, it overrides each guess.
+ test "x$x_includes" = xNONE && x_includes=$ac_x_includes
+ test "x$x_libraries" = xNONE && x_libraries=$ac_x_libraries
+ # Update the cache value to reflect the command line values.
+ ac_cv_have_x="have_x=yes\
+ ac_x_includes='$x_includes'\
+ ac_x_libraries='$x_libraries'"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: libraries $x_libraries, headers $x_includes" >&5
+$as_echo "libraries $x_libraries, headers $x_includes" >&6; }
+fi
+
+if test "$no_x" = yes; then
+ # Not all programs may use this symbol, but it does not hurt to define it.
+
+$as_echo "@%:@define X_DISPLAY_MISSING 1" >>confdefs.h
+
+ X_CFLAGS= X_PRE_LIBS= X_LIBS= X_EXTRA_LIBS=
+else
+ if test -n "$x_includes"; then
+ X_CFLAGS="$X_CFLAGS -I$x_includes"
+ fi
+
+ # It would also be nice to do this for all -L options, not just this one.
+ if test -n "$x_libraries"; then
+ X_LIBS="$X_LIBS -L$x_libraries"
+ # For Solaris; some versions of Sun CC require a space after -R and
+ # others require no space. Words are not sufficient . . . .
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -R must be followed by a space" >&5
+$as_echo_n "checking whether -R must be followed by a space... " >&6; }
+ ac_xsave_LIBS=$LIBS; LIBS="$LIBS -R$x_libraries"
+ ac_xsave_c_werror_flag=$ac_c_werror_flag
+ ac_c_werror_flag=yes
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ X_LIBS="$X_LIBS -R$x_libraries"
+else
+ LIBS="$ac_xsave_LIBS -R $x_libraries"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ X_LIBS="$X_LIBS -R $x_libraries"
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: neither works" >&5
+$as_echo "neither works" >&6; }
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ ac_c_werror_flag=$ac_xsave_c_werror_flag
+ LIBS=$ac_xsave_LIBS
+ fi
+
+ # Check for system-dependent libraries X programs must link with.
+ # Do this before checking for the system-independent R6 libraries
+ # (-lICE), since we may need -lsocket or whatever for X linking.
+
+ if test "$ISC" = yes; then
+ X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl_s -linet"
+ else
+ # Martyn Johnson says this is needed for Ultrix, if the X
+ # libraries were built with DECnet support. And Karl Berry says
+ # the Alpha needs dnet_stub (dnet does not exist).
+ ac_xsave_LIBS="$LIBS"; LIBS="$LIBS $X_LIBS -lX11"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char XOpenDisplay ();
+int
+main ()
+{
+return XOpenDisplay ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dnet_ntoa in -ldnet" >&5
+$as_echo_n "checking for dnet_ntoa in -ldnet... " >&6; }
+if test "${ac_cv_lib_dnet_dnet_ntoa+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldnet $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dnet_ntoa ();
+int
+main ()
+{
+return dnet_ntoa ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_dnet_dnet_ntoa=yes
+else
+ ac_cv_lib_dnet_dnet_ntoa=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dnet_dnet_ntoa" >&5
+$as_echo "$ac_cv_lib_dnet_dnet_ntoa" >&6; }
+if test "x$ac_cv_lib_dnet_dnet_ntoa" = x""yes; then :
+ X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet"
+fi
+
+ if test $ac_cv_lib_dnet_dnet_ntoa = no; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dnet_ntoa in -ldnet_stub" >&5
+$as_echo_n "checking for dnet_ntoa in -ldnet_stub... " >&6; }
+if test "${ac_cv_lib_dnet_stub_dnet_ntoa+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldnet_stub $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dnet_ntoa ();
+int
+main ()
+{
+return dnet_ntoa ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_dnet_stub_dnet_ntoa=yes
+else
+ ac_cv_lib_dnet_stub_dnet_ntoa=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dnet_stub_dnet_ntoa" >&5
+$as_echo "$ac_cv_lib_dnet_stub_dnet_ntoa" >&6; }
+if test "x$ac_cv_lib_dnet_stub_dnet_ntoa" = x""yes; then :
+ X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet_stub"
+fi
+
+ fi
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ LIBS="$ac_xsave_LIBS"
+
+ # msh@cis.ufl.edu says -lnsl (and -lsocket) are needed for his 386/AT,
+ # to get the SysV transport functions.
+ # Chad R. Larson says the Pyramis MIS-ES running DC/OSx (SVR4)
+ # needs -lnsl.
+ # The nsl library prevents programs from opening the X display
+ # on Irix 5.2, according to T.E. Dickey.
+ # The functions gethostbyname, getservbyname, and inet_addr are
+ # in -lbsd on LynxOS 3.0.1/i386, according to Lars Hecking.
+ ac_fn_c_check_func "$LINENO" "gethostbyname" "ac_cv_func_gethostbyname"
+if test "x$ac_cv_func_gethostbyname" = x""yes; then :
+
+fi
+
+ if test $ac_cv_func_gethostbyname = no; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostbyname in -lnsl" >&5
+$as_echo_n "checking for gethostbyname in -lnsl... " >&6; }
+if test "${ac_cv_lib_nsl_gethostbyname+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lnsl $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char gethostbyname ();
+int
+main ()
+{
+return gethostbyname ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_nsl_gethostbyname=yes
+else
+ ac_cv_lib_nsl_gethostbyname=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_nsl_gethostbyname" >&5
+$as_echo "$ac_cv_lib_nsl_gethostbyname" >&6; }
+if test "x$ac_cv_lib_nsl_gethostbyname" = x""yes; then :
+ X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl"
+fi
+
+ if test $ac_cv_lib_nsl_gethostbyname = no; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostbyname in -lbsd" >&5
+$as_echo_n "checking for gethostbyname in -lbsd... " >&6; }
+if test "${ac_cv_lib_bsd_gethostbyname+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lbsd $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char gethostbyname ();
+int
+main ()
+{
+return gethostbyname ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_bsd_gethostbyname=yes
+else
+ ac_cv_lib_bsd_gethostbyname=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_bsd_gethostbyname" >&5
+$as_echo "$ac_cv_lib_bsd_gethostbyname" >&6; }
+if test "x$ac_cv_lib_bsd_gethostbyname" = x""yes; then :
+ X_EXTRA_LIBS="$X_EXTRA_LIBS -lbsd"
+fi
+
+ fi
+ fi
+
+ # lieder@skyler.mavd.honeywell.com says without -lsocket,
+ # socket/setsockopt and other routines are undefined under SCO ODT
+ # 2.0. But -lsocket is broken on IRIX 5.2 (and is not necessary
+ # on later versions), says Simon Leinen: it contains gethostby*
+ # variants that don't use the name server (or something). -lsocket
+ # must be given before -lnsl if both are needed. We assume that
+ # if connect needs -lnsl, so does gethostbyname.
+ ac_fn_c_check_func "$LINENO" "connect" "ac_cv_func_connect"
+if test "x$ac_cv_func_connect" = x""yes; then :
+
+fi
+
+ if test $ac_cv_func_connect = no; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for connect in -lsocket" >&5
+$as_echo_n "checking for connect in -lsocket... " >&6; }
+if test "${ac_cv_lib_socket_connect+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lsocket $X_EXTRA_LIBS $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char connect ();
+int
+main ()
+{
+return connect ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_socket_connect=yes
+else
+ ac_cv_lib_socket_connect=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_socket_connect" >&5
+$as_echo "$ac_cv_lib_socket_connect" >&6; }
+if test "x$ac_cv_lib_socket_connect" = x""yes; then :
+ X_EXTRA_LIBS="-lsocket $X_EXTRA_LIBS"
+fi
+
+ fi
+
+ # Guillermo Gomez says -lposix is necessary on A/UX.
+ ac_fn_c_check_func "$LINENO" "remove" "ac_cv_func_remove"
+if test "x$ac_cv_func_remove" = x""yes; then :
+
+fi
+
+ if test $ac_cv_func_remove = no; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for remove in -lposix" >&5
+$as_echo_n "checking for remove in -lposix... " >&6; }
+if test "${ac_cv_lib_posix_remove+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lposix $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char remove ();
+int
+main ()
+{
+return remove ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_posix_remove=yes
+else
+ ac_cv_lib_posix_remove=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_posix_remove" >&5
+$as_echo "$ac_cv_lib_posix_remove" >&6; }
+if test "x$ac_cv_lib_posix_remove" = x""yes; then :
+ X_EXTRA_LIBS="$X_EXTRA_LIBS -lposix"
+fi
+
+ fi
+
+ # BSDI BSD/OS 2.1 needs -lipc for XOpenDisplay.
+ ac_fn_c_check_func "$LINENO" "shmat" "ac_cv_func_shmat"
+if test "x$ac_cv_func_shmat" = x""yes; then :
+
+fi
+
+ if test $ac_cv_func_shmat = no; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shmat in -lipc" >&5
+$as_echo_n "checking for shmat in -lipc... " >&6; }
+if test "${ac_cv_lib_ipc_shmat+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lipc $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char shmat ();
+int
+main ()
+{
+return shmat ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_ipc_shmat=yes
+else
+ ac_cv_lib_ipc_shmat=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ipc_shmat" >&5
+$as_echo "$ac_cv_lib_ipc_shmat" >&6; }
+if test "x$ac_cv_lib_ipc_shmat" = x""yes; then :
+ X_EXTRA_LIBS="$X_EXTRA_LIBS -lipc"
+fi
+
+ fi
+ fi
+
+ # Check for libraries that X11R6 Xt/Xaw programs need.
+ ac_save_LDFLAGS=$LDFLAGS
+ test -n "$x_libraries" && LDFLAGS="$LDFLAGS -L$x_libraries"
+ # SM needs ICE to (dynamically) link under SunOS 4.x (so we have to
+ # check for ICE first), but we must link in the order -lSM -lICE or
+ # we get undefined symbols. So assume we have SM if we have ICE.
+ # These have to be linked with before -lX11, unlike the other
+ # libraries we check for below, so use a different variable.
+ # John Interrante, Karl Berry
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IceConnectionNumber in -lICE" >&5
+$as_echo_n "checking for IceConnectionNumber in -lICE... " >&6; }
+if test "${ac_cv_lib_ICE_IceConnectionNumber+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lICE $X_EXTRA_LIBS $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char IceConnectionNumber ();
+int
+main ()
+{
+return IceConnectionNumber ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_ICE_IceConnectionNumber=yes
+else
+ ac_cv_lib_ICE_IceConnectionNumber=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ICE_IceConnectionNumber" >&5
+$as_echo "$ac_cv_lib_ICE_IceConnectionNumber" >&6; }
+if test "x$ac_cv_lib_ICE_IceConnectionNumber" = x""yes; then :
+ X_PRE_LIBS="$X_PRE_LIBS -lSM -lICE"
+fi
+
+ LDFLAGS=$ac_save_LDFLAGS
+
+fi
+
+if test "$X_DISPLAY_MISSING" != ""; then
+ as_fn_error "X required" "$LINENO" 5
+fi
+
+
+
+##########
+### QT ###
+##########
+#CONFIGURE_QT(3.2.0, , AC_MSG_ERROR([need qt >= 3.2.0]))
+#if test "$muse_qttest" = "yes"; then
+# AC_LANG_PUSH([C++])
+# muse_save_CFLAGS="$CFLAGS"
+# CFLAGS="$CFLAGS $QT_CFLAGS"
+# muse_save_CXXFLAGS="$CXXFLAGS"
+# CXXFLAGS="$CXXFLAGS $QT_CFLAGS"
+# muse_save_LDFLAGS="$LDFLAGS"
+# LDFLAGS="$LDFLAGS $QT_LIBS"
+# AC_CHECK_LIB(qt-mt, qt_selection_property, [
+# true
+# ],[
+# AC_MSG_ERROR([
+#
+# MusE requires thread enabled QT (qt-mt) >= 3.2.0
+#
+# You can either compile your own version of QT (making sure you enable
+# threading!) or install the appropriate package for your distribution.
+#])
+# ])
+# CFLAGS="$muse_save_CFLAGS"
+# CXXFLAGS="$muse_save_CXXFLAGS"
+# LDFLAGS="$muse_save_LDFLAGS"
+# unset muse_save_CFLAGS
+# unset muse_save_CXXFLAGS
+# unset muse_save_LDFLAGS
+# AC_LANG_POP([C++])
+#fi
+
+QTDIR=/usr/share/qt4
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $QTDIR" >&5
+$as_echo "$QTDIR" >&6; }
+if test "$no_x" = yes; then
+ # Not all programs may use this symbol, but it does not hurt to define it.
+
+$as_echo "@%:@define X_DISPLAY_MISSING 1" >>confdefs.h
+
+ X_CFLAGS= X_PRE_LIBS= X_LIBS= X_EXTRA_LIBS=
+else
+ if test -n "$x_includes"; then
+ X_CFLAGS="$X_CFLAGS -I$x_includes"
+ fi
+
+ # It would also be nice to do this for all -L options, not just this one.
+ if test -n "$x_libraries"; then
+ X_LIBS="$X_LIBS -L$x_libraries"
+ # For Solaris; some versions of Sun CC require a space after -R and
+ # others require no space. Words are not sufficient . . . .
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -R must be followed by a space" >&5
+$as_echo_n "checking whether -R must be followed by a space... " >&6; }
+ ac_xsave_LIBS=$LIBS; LIBS="$LIBS -R$x_libraries"
+ ac_xsave_c_werror_flag=$ac_c_werror_flag
+ ac_c_werror_flag=yes
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ X_LIBS="$X_LIBS -R$x_libraries"
+else
+ LIBS="$ac_xsave_LIBS -R $x_libraries"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ X_LIBS="$X_LIBS -R $x_libraries"
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: neither works" >&5
+$as_echo "neither works" >&6; }
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ ac_c_werror_flag=$ac_xsave_c_werror_flag
+ LIBS=$ac_xsave_LIBS
+ fi
+
+ # Check for system-dependent libraries X programs must link with.
+ # Do this before checking for the system-independent R6 libraries
+ # (-lICE), since we may need -lsocket or whatever for X linking.
+
+ if test "$ISC" = yes; then
+ X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl_s -linet"
+ else
+ # Martyn Johnson says this is needed for Ultrix, if the X
+ # libraries were built with DECnet support. And Karl Berry says
+ # the Alpha needs dnet_stub (dnet does not exist).
+ ac_xsave_LIBS="$LIBS"; LIBS="$LIBS $X_LIBS -lX11"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char XOpenDisplay ();
+int
+main ()
+{
+return XOpenDisplay ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dnet_ntoa in -ldnet" >&5
+$as_echo_n "checking for dnet_ntoa in -ldnet... " >&6; }
+if test "${ac_cv_lib_dnet_dnet_ntoa+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldnet $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dnet_ntoa ();
+int
+main ()
+{
+return dnet_ntoa ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_dnet_dnet_ntoa=yes
+else
+ ac_cv_lib_dnet_dnet_ntoa=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dnet_dnet_ntoa" >&5
+$as_echo "$ac_cv_lib_dnet_dnet_ntoa" >&6; }
+if test "x$ac_cv_lib_dnet_dnet_ntoa" = x""yes; then :
+ X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet"
+fi
+
+ if test $ac_cv_lib_dnet_dnet_ntoa = no; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dnet_ntoa in -ldnet_stub" >&5
+$as_echo_n "checking for dnet_ntoa in -ldnet_stub... " >&6; }
+if test "${ac_cv_lib_dnet_stub_dnet_ntoa+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldnet_stub $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dnet_ntoa ();
+int
+main ()
+{
+return dnet_ntoa ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_dnet_stub_dnet_ntoa=yes
+else
+ ac_cv_lib_dnet_stub_dnet_ntoa=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dnet_stub_dnet_ntoa" >&5
+$as_echo "$ac_cv_lib_dnet_stub_dnet_ntoa" >&6; }
+if test "x$ac_cv_lib_dnet_stub_dnet_ntoa" = x""yes; then :
+ X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet_stub"
+fi
+
+ fi
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ LIBS="$ac_xsave_LIBS"
+
+ # msh@cis.ufl.edu says -lnsl (and -lsocket) are needed for his 386/AT,
+ # to get the SysV transport functions.
+ # Chad R. Larson says the Pyramis MIS-ES running DC/OSx (SVR4)
+ # needs -lnsl.
+ # The nsl library prevents programs from opening the X display
+ # on Irix 5.2, according to T.E. Dickey.
+ # The functions gethostbyname, getservbyname, and inet_addr are
+ # in -lbsd on LynxOS 3.0.1/i386, according to Lars Hecking.
+ ac_fn_c_check_func "$LINENO" "gethostbyname" "ac_cv_func_gethostbyname"
+if test "x$ac_cv_func_gethostbyname" = x""yes; then :
+
+fi
+
+ if test $ac_cv_func_gethostbyname = no; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostbyname in -lnsl" >&5
+$as_echo_n "checking for gethostbyname in -lnsl... " >&6; }
+if test "${ac_cv_lib_nsl_gethostbyname+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lnsl $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char gethostbyname ();
+int
+main ()
+{
+return gethostbyname ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_nsl_gethostbyname=yes
+else
+ ac_cv_lib_nsl_gethostbyname=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_nsl_gethostbyname" >&5
+$as_echo "$ac_cv_lib_nsl_gethostbyname" >&6; }
+if test "x$ac_cv_lib_nsl_gethostbyname" = x""yes; then :
+ X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl"
+fi
+
+ if test $ac_cv_lib_nsl_gethostbyname = no; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostbyname in -lbsd" >&5
+$as_echo_n "checking for gethostbyname in -lbsd... " >&6; }
+if test "${ac_cv_lib_bsd_gethostbyname+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lbsd $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char gethostbyname ();
+int
+main ()
+{
+return gethostbyname ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_bsd_gethostbyname=yes
+else
+ ac_cv_lib_bsd_gethostbyname=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_bsd_gethostbyname" >&5
+$as_echo "$ac_cv_lib_bsd_gethostbyname" >&6; }
+if test "x$ac_cv_lib_bsd_gethostbyname" = x""yes; then :
+ X_EXTRA_LIBS="$X_EXTRA_LIBS -lbsd"
+fi
+
+ fi
+ fi
+
+ # lieder@skyler.mavd.honeywell.com says without -lsocket,
+ # socket/setsockopt and other routines are undefined under SCO ODT
+ # 2.0. But -lsocket is broken on IRIX 5.2 (and is not necessary
+ # on later versions), says Simon Leinen: it contains gethostby*
+ # variants that don't use the name server (or something). -lsocket
+ # must be given before -lnsl if both are needed. We assume that
+ # if connect needs -lnsl, so does gethostbyname.
+ ac_fn_c_check_func "$LINENO" "connect" "ac_cv_func_connect"
+if test "x$ac_cv_func_connect" = x""yes; then :
+
+fi
+
+ if test $ac_cv_func_connect = no; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for connect in -lsocket" >&5
+$as_echo_n "checking for connect in -lsocket... " >&6; }
+if test "${ac_cv_lib_socket_connect+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lsocket $X_EXTRA_LIBS $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char connect ();
+int
+main ()
+{
+return connect ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_socket_connect=yes
+else
+ ac_cv_lib_socket_connect=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_socket_connect" >&5
+$as_echo "$ac_cv_lib_socket_connect" >&6; }
+if test "x$ac_cv_lib_socket_connect" = x""yes; then :
+ X_EXTRA_LIBS="-lsocket $X_EXTRA_LIBS"
+fi
+
+ fi
+
+ # Guillermo Gomez says -lposix is necessary on A/UX.
+ ac_fn_c_check_func "$LINENO" "remove" "ac_cv_func_remove"
+if test "x$ac_cv_func_remove" = x""yes; then :
+
+fi
+
+ if test $ac_cv_func_remove = no; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for remove in -lposix" >&5
+$as_echo_n "checking for remove in -lposix... " >&6; }
+if test "${ac_cv_lib_posix_remove+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lposix $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char remove ();
+int
+main ()
+{
+return remove ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_posix_remove=yes
+else
+ ac_cv_lib_posix_remove=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_posix_remove" >&5
+$as_echo "$ac_cv_lib_posix_remove" >&6; }
+if test "x$ac_cv_lib_posix_remove" = x""yes; then :
+ X_EXTRA_LIBS="$X_EXTRA_LIBS -lposix"
+fi
+
+ fi
+
+ # BSDI BSD/OS 2.1 needs -lipc for XOpenDisplay.
+ ac_fn_c_check_func "$LINENO" "shmat" "ac_cv_func_shmat"
+if test "x$ac_cv_func_shmat" = x""yes; then :
+
+fi
+
+ if test $ac_cv_func_shmat = no; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shmat in -lipc" >&5
+$as_echo_n "checking for shmat in -lipc... " >&6; }
+if test "${ac_cv_lib_ipc_shmat+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lipc $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char shmat ();
+int
+main ()
+{
+return shmat ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_ipc_shmat=yes
+else
+ ac_cv_lib_ipc_shmat=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ipc_shmat" >&5
+$as_echo "$ac_cv_lib_ipc_shmat" >&6; }
+if test "x$ac_cv_lib_ipc_shmat" = x""yes; then :
+ X_EXTRA_LIBS="$X_EXTRA_LIBS -lipc"
+fi
+
+ fi
+ fi
+
+ # Check for libraries that X11R6 Xt/Xaw programs need.
+ ac_save_LDFLAGS=$LDFLAGS
+ test -n "$x_libraries" && LDFLAGS="$LDFLAGS -L$x_libraries"
+ # SM needs ICE to (dynamically) link under SunOS 4.x (so we have to
+ # check for ICE first), but we must link in the order -lSM -lICE or
+ # we get undefined symbols. So assume we have SM if we have ICE.
+ # These have to be linked with before -lX11, unlike the other
+ # libraries we check for below, so use a different variable.
+ # John Interrante, Karl Berry
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IceConnectionNumber in -lICE" >&5
+$as_echo_n "checking for IceConnectionNumber in -lICE... " >&6; }
+if test "${ac_cv_lib_ICE_IceConnectionNumber+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lICE $X_EXTRA_LIBS $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char IceConnectionNumber ();
+int
+main ()
+{
+return IceConnectionNumber ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_ICE_IceConnectionNumber=yes
+else
+ ac_cv_lib_ICE_IceConnectionNumber=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ICE_IceConnectionNumber" >&5
+$as_echo "$ac_cv_lib_ICE_IceConnectionNumber" >&6; }
+if test "x$ac_cv_lib_ICE_IceConnectionNumber" = x""yes; then :
+ X_PRE_LIBS="$X_PRE_LIBS -lSM -lICE"
+fi
+
+ LDFLAGS=$ac_save_LDFLAGS
+
+fi
+
+QT_LIBS="-Wl,-rpath,$QTDIR/lib -L$QTDIR/lib -lQtGui -lQtOpenGL -lQtCore -lQt3Support $X_LIBS -lX11 -lXext -lXmu -lXt -lXi $X_EXTRA_LIBS -lGLU -lGL -lpthread"
+QTDIR_INC="-I$QTDIR/include -I$QTDIR/include/QtGui -I$QTDIR/include/QtCore -I$QTDIR/include/Qt3Support $X_CFLAGS -DQT_OPENGL_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED"
+QTDIR_BIN="$QTDIR/bin"
+
+
+############
+### ALSA ###
+############
+alsa_save_CFLAGS="$CFLAGS"
+alsa_save_LDFLAGS="$LDFLAGS"
+alsa_save_LIBS="$LIBS"
+alsa_found=yes
+
+
+@%:@ Check whether --with-alsa-prefix was given.
+if test "${with_alsa_prefix+set}" = set; then :
+ withval=$with_alsa_prefix; alsa_prefix="$withval"
+else
+ alsa_prefix=""
+fi
+
+
+
+@%:@ Check whether --with-alsa-inc-prefix was given.
+if test "${with_alsa_inc_prefix+set}" = set; then :
+ withval=$with_alsa_inc_prefix; alsa_inc_prefix="$withval"
+else
+ alsa_inc_prefix=""
+fi
+
+
+@%:@ Check whether --enable-alsatest was given.
+if test "${enable_alsatest+set}" = set; then :
+ enableval=$enable_alsatest; enable_alsatest=no
+else
+ enable_alsatest=yes
+fi
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ALSA CFLAGS" >&5
+$as_echo_n "checking for ALSA CFLAGS... " >&6; }
+if test "$alsa_inc_prefix" != "" ; then
+ ALSA_CFLAGS="$ALSA_CFLAGS -I$alsa_inc_prefix"
+ CFLAGS="$CFLAGS -I$alsa_inc_prefix"
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ALSA_CFLAGS" >&5
+$as_echo "$ALSA_CFLAGS" >&6; }
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ALSA LDFLAGS" >&5
+$as_echo_n "checking for ALSA LDFLAGS... " >&6; }
+if test "$alsa_prefix" != "" ; then
+ ALSA_LIBS="$ALSA_LIBS -L$alsa_prefix"
+ LDFLAGS="$LDFLAGS $ALSA_LIBS"
+fi
+
+ALSA_LIBS="$ALSA_LIBS -lasound -lm -ldl"
+LIBS=`echo $LIBS | sed 's/-lm//'`
+LIBS=`echo $LIBS | sed 's/-ldl//'`
+LIBS=`echo $LIBS | sed 's/ //'`
+LIBS="$ALSA_LIBS $LIBS"
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ALSA_LIBS" >&5
+$as_echo "$ALSA_LIBS" >&6; }
+
+min_alsa_version=0.9.0
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for libasound headers version >= $min_alsa_version" >&5
+$as_echo_n "checking for libasound headers version >= $min_alsa_version... " >&6; }
+no_alsa=""
+ alsa_min_major_version=`echo $min_alsa_version | \
+ sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\1/'`
+ alsa_min_minor_version=`echo $min_alsa_version | \
+ sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\2/'`
+ alsa_min_micro_version=`echo $min_alsa_version | \
+ sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\3/'`
+
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <alsa/asoundlib.h>
+
+int
+main ()
+{
+
+void main(void)
+{
+/* ensure backward compatibility */
+#if !defined(SND_LIB_MAJOR) && defined(SOUNDLIB_VERSION_MAJOR)
+#define SND_LIB_MAJOR SOUNDLIB_VERSION_MAJOR
+#endif
+#if !defined(SND_LIB_MINOR) && defined(SOUNDLIB_VERSION_MINOR)
+#define SND_LIB_MINOR SOUNDLIB_VERSION_MINOR
+#endif
+#if !defined(SND_LIB_SUBMINOR) && defined(SOUNDLIB_VERSION_SUBMINOR)
+#define SND_LIB_SUBMINOR SOUNDLIB_VERSION_SUBMINOR
+#endif
+
+# if(SND_LIB_MAJOR > $alsa_min_major_version)
+ exit(0);
+# else
+# if(SND_LIB_MAJOR < $alsa_min_major_version)
+# error not present
+# endif
+
+# if(SND_LIB_MINOR > $alsa_min_minor_version)
+ exit(0);
+# else
+# if(SND_LIB_MINOR < $alsa_min_minor_version)
+# error not present
+# endif
+
+# if(SND_LIB_SUBMINOR < $alsa_min_micro_version)
+# error not present
+# endif
+# endif
+# endif
+exit(0);
+}
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: found." >&5
+$as_echo "found." >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not present." >&5
+$as_echo "not present." >&6; }
+
+ alsa_found=no
+
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+
+ac_ext=cpp
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for snd_seq_create_event in -lasound" >&5
+$as_echo_n "checking for snd_seq_create_event in -lasound... " >&6; }
+if test "${ac_cv_lib_asound_snd_seq_create_event+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lasound $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char snd_seq_create_event ();
+int
+main ()
+{
+return snd_seq_create_event ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_link "$LINENO"; then :
+ ac_cv_lib_asound_snd_seq_create_event=yes
+else
+ ac_cv_lib_asound_snd_seq_create_event=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_asound_snd_seq_create_event" >&5
+$as_echo "$ac_cv_lib_asound_snd_seq_create_event" >&6; }
+if test "x$ac_cv_lib_asound_snd_seq_create_event" = x""yes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_LIBASOUND 1
+_ACEOF
+
+ LIBS="-lasound $LIBS"
+
+else
+
+ alsa_found=no
+
+fi
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+if test "x$alsa_found" = "xyes" ; then
+ true
+ LIBS=`echo $LIBS | sed 's/-lasound//g'`
+ LIBS=`echo $LIBS | sed 's/ //'`
+ LIBS="-lasound $LIBS"
+fi
+if test "x$alsa_found" = "xno" ; then
+ as_fn_error "latest alsa (0.9.x) is required" "$LINENO" 5
+
+ CFLAGS="$alsa_save_CFLAGS"
+ LDFLAGS="$alsa_save_LDFLAGS"
+ LIBS="$alsa_save_LIBS"
+ ALSA_CFLAGS=""
+ ALSA_LIBS=""
+fi
+
+
+
+
+
+#################
+### fluidsynth ###
+#################
+LIBFLUIDSYNTH=
+muse_enable_fluidlib="yes"
+synth_fluidsynth="fluidsynth"
+synth_fluid="fluid"
+@%:@ Check whether --enable-fluidsynth was given.
+if test "${enable_fluidsynth+set}" = set; then :
+ enableval=$enable_fluidsynth;
+ case "$enableval" in
+ "yes")
+ synth_fluidsynth="fluidsynth"
+ synth_fluid="fluid"
+ ;;
+ "no")
+ muse_enable_fluidlib="no"
+ synth_fluidsynth=""
+ synth_fluid=""
+ ;;
+ *)
+ as_fn_error "must use --enable-fluidsynth(=yes/no) or --disable-fluidsynth" "$LINENO" 5
+ ;;
+ esac
+
+fi
+
+
+ if test "$muse_enable_fluidlib" = "yes"; then
+ ENABLEFLUIDSYNTH_TRUE=
+ ENABLEFLUIDSYNTH_FALSE='#'
+else
+ ENABLEFLUIDSYNTH_TRUE='#'
+ ENABLEFLUIDSYNTH_FALSE=
+fi
+
+
+
+if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
+set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_PKG_CONFIG+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $PKG_CONFIG in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+PKG_CONFIG=$ac_cv_path_PKG_CONFIG
+if test -n "$PKG_CONFIG"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5
+$as_echo "$PKG_CONFIG" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_path_PKG_CONFIG"; then
+ ac_pt_PKG_CONFIG=$PKG_CONFIG
+ # Extract the first word of "pkg-config", so it can be a program name with args.
+set dummy pkg-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $ac_pt_PKG_CONFIG in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
+if test -n "$ac_pt_PKG_CONFIG"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5
+$as_echo "$ac_pt_PKG_CONFIG" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_pt_PKG_CONFIG" = x; then
+ PKG_CONFIG=""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ PKG_CONFIG=$ac_pt_PKG_CONFIG
+ fi
+else
+ PKG_CONFIG="$ac_cv_path_PKG_CONFIG"
+fi
+
+fi
+if test -n "$PKG_CONFIG"; then
+ _pkg_min_version=0.9.0
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5
+$as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; }
+ if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ PKG_CONFIG=""
+ fi
+
+fi
+
+pkg_failed=no
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for Fluidsynth" >&5
+$as_echo_n "checking for Fluidsynth... " >&6; }
+
+if test -n "$PKG_CONFIG"; then
+ if test -n "$Fluidsynth_CFLAGS"; then
+ pkg_cv_Fluidsynth_CFLAGS="$Fluidsynth_CFLAGS"
+ else
+ if test -n "$PKG_CONFIG" && \
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"fluidsynth\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "fluidsynth") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ pkg_cv_Fluidsynth_CFLAGS=`$PKG_CONFIG --cflags "fluidsynth" 2>/dev/null`
+else
+ pkg_failed=yes
+fi
+ fi
+else
+ pkg_failed=untried
+fi
+if test -n "$PKG_CONFIG"; then
+ if test -n "$Fluidsynth_LIBS"; then
+ pkg_cv_Fluidsynth_LIBS="$Fluidsynth_LIBS"
+ else
+ if test -n "$PKG_CONFIG" && \
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"fluidsynth\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "fluidsynth") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ pkg_cv_Fluidsynth_LIBS=`$PKG_CONFIG --libs "fluidsynth" 2>/dev/null`
+else
+ pkg_failed=yes
+fi
+ fi
+else
+ pkg_failed=untried
+fi
+
+
+
+if test $pkg_failed = yes; then
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+ _pkg_short_errors_supported=yes
+else
+ _pkg_short_errors_supported=no
+fi
+ if test $_pkg_short_errors_supported = yes; then
+ Fluidsynth_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "fluidsynth"`
+ else
+ Fluidsynth_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "fluidsynth"`
+ fi
+ # Put the nasty error message in config.log where it belongs
+ echo "$Fluidsynth_PKG_ERRORS" >&5
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libfluidsynth not found; disabling fluidsynth plugins" >&5
+$as_echo "$as_me: WARNING: libfluidsynth not found; disabling fluidsynth plugins" >&2;} ;
+ muse_enable_fluidlib="no"
+
+elif test $pkg_failed = untried; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libfluidsynth not found; disabling fluidsynth plugins" >&5
+$as_echo "$as_me: WARNING: libfluidsynth not found; disabling fluidsynth plugins" >&2;} ;
+ muse_enable_fluidlib="no"
+
+else
+ Fluidsynth_CFLAGS=$pkg_cv_Fluidsynth_CFLAGS
+ Fluidsynth_LIBS=$pkg_cv_Fluidsynth_LIBS
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ FLUIDSYNTHDIRS="fluid fluidsynth";
+$as_echo "@%:@define ENABLEFLUIDSYNTH 1" >>confdefs.h
+
+fi
+
+
+
+if test "$muse_enable_fluidlib" = "no"; then
+ synth_fluidsynth=""
+ synth_fluid=""
+fi
+
+
+###############
+### sndfile ###
+###############
+
+pkg_failed=no
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for SNDFILE" >&5
+$as_echo_n "checking for SNDFILE... " >&6; }
+
+if test -n "$PKG_CONFIG"; then
+ if test -n "$SNDFILE_CFLAGS"; then
+ pkg_cv_SNDFILE_CFLAGS="$SNDFILE_CFLAGS"
+ else
+ if test -n "$PKG_CONFIG" && \
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"sndfile >= 1.0.0\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "sndfile >= 1.0.0") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ pkg_cv_SNDFILE_CFLAGS=`$PKG_CONFIG --cflags "sndfile >= 1.0.0" 2>/dev/null`
+else
+ pkg_failed=yes
+fi
+ fi
+else
+ pkg_failed=untried
+fi
+if test -n "$PKG_CONFIG"; then
+ if test -n "$SNDFILE_LIBS"; then
+ pkg_cv_SNDFILE_LIBS="$SNDFILE_LIBS"
+ else
+ if test -n "$PKG_CONFIG" && \
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"sndfile >= 1.0.0\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "sndfile >= 1.0.0") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ pkg_cv_SNDFILE_LIBS=`$PKG_CONFIG --libs "sndfile >= 1.0.0" 2>/dev/null`
+else
+ pkg_failed=yes
+fi
+ fi
+else
+ pkg_failed=untried
+fi
+
+
+
+if test $pkg_failed = yes; then
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+ _pkg_short_errors_supported=yes
+else
+ _pkg_short_errors_supported=no
+fi
+ if test $_pkg_short_errors_supported = yes; then
+ SNDFILE_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "sndfile >= 1.0.0"`
+ else
+ SNDFILE_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "sndfile >= 1.0.0"`
+ fi
+ # Put the nasty error message in config.log where it belongs
+ echo "$SNDFILE_PKG_ERRORS" >&5
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ as_fn_error "need libsndfile >= 1.0.0" "$LINENO" 5
+
+elif test $pkg_failed = untried; then
+ as_fn_error "need libsndfile >= 1.0.0" "$LINENO" 5
+
+else
+ SNDFILE_CFLAGS=$pkg_cv_SNDFILE_CFLAGS
+ SNDFILE_LIBS=$pkg_cv_SNDFILE_LIBS
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ true
+fi
+
+###############
+### libsamplerate ###
+###############
+
+pkg_failed=no
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for SAMPLERATE" >&5
+$as_echo_n "checking for SAMPLERATE... " >&6; }
+
+if test -n "$PKG_CONFIG"; then
+ if test -n "$SAMPLERATE_CFLAGS"; then
+ pkg_cv_SAMPLERATE_CFLAGS="$SAMPLERATE_CFLAGS"
+ else
+ if test -n "$PKG_CONFIG" && \
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"samplerate >= 0.1.0\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "samplerate >= 0.1.0") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ pkg_cv_SAMPLERATE_CFLAGS=`$PKG_CONFIG --cflags "samplerate >= 0.1.0" 2>/dev/null`
+else
+ pkg_failed=yes
+fi
+ fi
+else
+ pkg_failed=untried
+fi
+if test -n "$PKG_CONFIG"; then
+ if test -n "$SAMPLERATE_LIBS"; then
+ pkg_cv_SAMPLERATE_LIBS="$SAMPLERATE_LIBS"
+ else
+ if test -n "$PKG_CONFIG" && \
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"samplerate >= 0.1.0\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "samplerate >= 0.1.0") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ pkg_cv_SAMPLERATE_LIBS=`$PKG_CONFIG --libs "samplerate >= 0.1.0" 2>/dev/null`
+else
+ pkg_failed=yes
+fi
+ fi
+else
+ pkg_failed=untried
+fi
+
+
+
+if test $pkg_failed = yes; then
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+ _pkg_short_errors_supported=yes
+else
+ _pkg_short_errors_supported=no
+fi
+ if test $_pkg_short_errors_supported = yes; then
+ SAMPLERATE_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "samplerate >= 0.1.0"`
+ else
+ SAMPLERATE_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "samplerate >= 0.1.0"`
+ fi
+ # Put the nasty error message in config.log where it belongs
+ echo "$SAMPLERATE_PKG_ERRORS" >&5
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ as_fn_error "need libsamplerate" "$LINENO" 5
+
+elif test $pkg_failed = untried; then
+ as_fn_error "need libsamplerate" "$LINENO" 5
+
+else
+ SAMPLERATE_CFLAGS=$pkg_cv_SAMPLERATE_CFLAGS
+ SAMPLERATE_LIBS=$pkg_cv_SAMPLERATE_LIBS
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ true
+fi
+
+###############
+### libuuid ###
+###############
+ac_fn_c_check_header_mongrel "$LINENO" "uuid/uuid.h" "ac_cv_header_uuid_uuid_h" "$ac_includes_default"
+if test "x$ac_cv_header_uuid_uuid_h" = x""yes; then :
+ UUID_FOUND="yes"
+else
+ UUID_FOUND="no"
+fi
+
+
+if test x$UUID_FOUND = xno; then
+ as_fn_error "Header file uuid.h, from the uuid-dev (sometimes in e2fsprogs) package, is required" "$LINENO" 5
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for uuid_generate in -luuid" >&5
+$as_echo_n "checking for uuid_generate in -luuid... " >&6; }
+if test "${ac_cv_lib_uuid_uuid_generate+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-luuid $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char uuid_generate ();
+int
+main ()
+{
+return uuid_generate ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_uuid_uuid_generate=yes
+else
+ ac_cv_lib_uuid_uuid_generate=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_uuid_uuid_generate" >&5
+$as_echo "$ac_cv_lib_uuid_uuid_generate" >&6; }
+if test "x$ac_cv_lib_uuid_uuid_generate" = x""yes; then :
+ UUID_FOUND="yes"
+else
+ UUID_FOUND="no"
+fi
+
+if test x$UUID_FOUND = xno; then
+ as_fn_error "libuuid (sometimes in e2fsprogs package) is required" "$LINENO" 5
+fi
+UUID_LIBS="-luuid"
+
+
+
+## PKG_CHECK_MODULES(UUID, uuid >= 1.0,
+## true,
+## AC_MSG_ERROR([need libuuid >= 1.0 from e2fsprogs package])
+## )
+
+############
+### JACK ###
+############
+
+
+pkg_failed=no
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for JACK" >&5
+$as_echo_n "checking for JACK... " >&6; }
+
+if test -n "$PKG_CONFIG"; then
+ if test -n "$JACK_CFLAGS"; then
+ pkg_cv_JACK_CFLAGS="$JACK_CFLAGS"
+ else
+ if test -n "$PKG_CONFIG" && \
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"jack >= 0.98.0\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "jack >= 0.98.0") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ pkg_cv_JACK_CFLAGS=`$PKG_CONFIG --cflags "jack >= 0.98.0" 2>/dev/null`
+else
+ pkg_failed=yes
+fi
+ fi
+else
+ pkg_failed=untried
+fi
+if test -n "$PKG_CONFIG"; then
+ if test -n "$JACK_LIBS"; then
+ pkg_cv_JACK_LIBS="$JACK_LIBS"
+ else
+ if test -n "$PKG_CONFIG" && \
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"jack >= 0.98.0\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "jack >= 0.98.0") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ pkg_cv_JACK_LIBS=`$PKG_CONFIG --libs "jack >= 0.98.0" 2>/dev/null`
+else
+ pkg_failed=yes
+fi
+ fi
+else
+ pkg_failed=untried
+fi
+
+
+
+if test $pkg_failed = yes; then
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+ _pkg_short_errors_supported=yes
+else
+ _pkg_short_errors_supported=no
+fi
+ if test $_pkg_short_errors_supported = yes; then
+ JACK_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "jack >= 0.98.0"`
+ else
+ JACK_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "jack >= 0.98.0"`
+ fi
+ # Put the nasty error message in config.log where it belongs
+ echo "$JACK_PKG_ERRORS" >&5
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ as_fn_error "need JACK >= 0.98.0" "$LINENO" 5
+
+elif test $pkg_failed = untried; then
+ as_fn_error "need JACK >= 0.98.0" "$LINENO" 5
+
+else
+ JACK_CFLAGS=$pkg_cv_JACK_CFLAGS
+ JACK_LIBS=$pkg_cv_JACK_LIBS
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ true
+fi
+
+##############
+### LASH ###
+##############
+muse_enable_lash="no"
+@%:@ Check whether --enable-lash was given.
+if test "${enable_lash+set}" = set; then :
+ enableval=$enable_lash;
+ case "$enableval" in
+ "yes")
+ muse_enable_lash="yes"
+ ;;
+ "no")
+ muse_enable_lash="no"
+ ;;
+ *)
+ as_fn_error "must use --enable-lash(=yes/no) or --disable-lash" "$LINENO" 5
+ ;;
+ esac
+
+fi
+
+
+if test "$muse_enable_lash" = "yes"; then
+
+pkg_failed=no
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for LASH" >&5
+$as_echo_n "checking for LASH... " >&6; }
+
+if test -n "$PKG_CONFIG"; then
+ if test -n "$LASH_CFLAGS"; then
+ pkg_cv_LASH_CFLAGS="$LASH_CFLAGS"
+ else
+ if test -n "$PKG_CONFIG" && \
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"lash-1.0 >= 0.2\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "lash-1.0 >= 0.2") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ pkg_cv_LASH_CFLAGS=`$PKG_CONFIG --cflags "lash-1.0 >= 0.2" 2>/dev/null`
+else
+ pkg_failed=yes
+fi
+ fi
+else
+ pkg_failed=untried
+fi
+if test -n "$PKG_CONFIG"; then
+ if test -n "$LASH_LIBS"; then
+ pkg_cv_LASH_LIBS="$LASH_LIBS"
+ else
+ if test -n "$PKG_CONFIG" && \
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"lash-1.0 >= 0.2\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "lash-1.0 >= 0.2") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ pkg_cv_LASH_LIBS=`$PKG_CONFIG --libs "lash-1.0 >= 0.2" 2>/dev/null`
+else
+ pkg_failed=yes
+fi
+ fi
+else
+ pkg_failed=untried
+fi
+
+
+
+if test $pkg_failed = yes; then
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+ _pkg_short_errors_supported=yes
+else
+ _pkg_short_errors_supported=no
+fi
+ if test $_pkg_short_errors_supported = yes; then
+ LASH_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "lash-1.0 >= 0.2"`
+ else
+ LASH_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "lash-1.0 >= 0.2"`
+ fi
+ # Put the nasty error message in config.log where it belongs
+ echo "$LASH_PKG_ERRORS" >&5
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ LASH_FOUND="no"
+elif test $pkg_failed = untried; then
+ LASH_FOUND="no"
+else
+ LASH_CFLAGS=$pkg_cv_LASH_CFLAGS
+ LASH_LIBS=$pkg_cv_LASH_LIBS
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ LASH_FOUND="yes"
+fi
+
+
+
+ if test "$LASH_FOUND" = "yes"; then
+
+$as_echo "@%:@define HAVE_LASH 1" >>confdefs.h
+
+ LASH_VERSION=$( pkg-config --modversion lash-1.0 )
+
+cat >>confdefs.h <<_ACEOF
+@%:@define LASH_VERSION "$LASH_VERSION"
+_ACEOF
+
+ fi
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: LASH support is disabled" >&5
+$as_echo "$as_me: WARNING: LASH support is disabled" >&2;}
+ LASH_FOUND="no"
+fi
+ if test "$LASH_FOUND" = "yes"; then
+ HAVE_LASH_TRUE=
+ HAVE_LASH_FALSE='#'
+else
+ HAVE_LASH_TRUE='#'
+ HAVE_LASH_FALSE=
+fi
+
+
+
+
+
+#################
+### givertcap ###
+#################
+
+GIVERTCAP=
+report_rtcap="no"
+@%:@ Check whether --enable-rtcap was given.
+if test "${enable_rtcap+set}" = set; then :
+ enableval=$enable_rtcap;
+ case "$enableval" in
+ "yes")
+
+$as_echo "@%:@define RTCAP 1" >>confdefs.h
+
+ MUSECXXFLAGS="$MUSECXXFLAGS -DRTCAP"
+ GIVERTCAP="givertcap"
+
+ ac_fn_c_check_header_mongrel "$LINENO" "sys/capability.h" "ac_cv_header_sys_capability_h" "$ac_includes_default"
+if test "x$ac_cv_header_sys_capability_h" = x""yes; then :
+ report_rtcap="yes"
+else
+ as_fn_error "Missing sys/capability.h" "$LINENO" 5
+fi
+
+
+ ;;
+ "no")
+ ;;
+ *)
+ as_fn_error "must use --enable-rtcap(=yes/no) or --disable-rtcap" "$LINENO" 5
+ esac
+
+fi
+
+ if test "$report_rtcap" = "yes"; then
+ RTCAP_TRUE=
+ RTCAP_FALSE='#'
+else
+ RTCAP_TRUE='#'
+ RTCAP_FALSE=
+fi
+
+
+
+
+####################
+### suid-install ###
+####################
+
+SUIDINSTALL="no"
+@%:@ Check whether --enable-suid-install was given.
+if test "${enable_suid_install+set}" = set; then :
+ enableval=$enable_suid_install;
+ case "$enableval" in
+ "yes")
+ SUIDINSTALL="yes"
+ ;;
+ "no")
+ ;;
+ *)
+ as_fn_error "must use --enable-suid-install(=yes/no) or --disable-suid-install" "$LINENO" 5
+ ;;
+ esac
+
+fi
+
+
+
+##################
+### suid-build ###
+##################
+SUIDBUILD="no"
+@%:@ Check whether --enable-suid-build was given.
+if test "${enable_suid_build+set}" = set; then :
+ enableval=$enable_suid_build;
+ case "$enableval" in
+ "yes")
+ SUIDBUILD="yes"
+ ;;
+ "no")
+ SUIDBUILD="no"
+ ;;
+ *)
+ as_fn_error "must use --enable-suid-build(=yes/no) or --disable-suid-build" "$LINENO" 5
+ ;;
+ esac
+
+fi
+
+
+
+
+########################
+### doxygen-treeview ###
+########################
+DOXYGEN_TREEVIEW="YES"
+report_doxy_treeview="yes";
+@%:@ Check whether --enable-doxy-treeview was given.
+if test "${enable_doxy_treeview+set}" = set; then :
+ enableval=$enable_doxy_treeview;
+ case "$enableval" in
+ "yes")
+ ;;
+ "no")
+ DOXYGEN_TREEVIEW="NO"
+ report_doxy_treeview="no";
+ ;;
+ *)
+ as_fn_error "must use --enable-doxy-treeview(=yes/no) or --disable-doxy-treeview" "$LINENO" 5
+ ;;
+ esac
+
+fi
+
+
+
+################
+### patchbay ###
+################
+###PATCHBAY="no"
+###AC_SUBST(PATCHBAY)
+###AM_CONDITIONAL(PATCHBAY, test "$PATCHBAY" == "yes")
+
+## -DQT_NO_CAST_ASCII
+MUSECXXFLAGS="-g -fno-exceptions -Wall -W -D_GNU_SOURCE -D_REENTRANT \
+ -DQT_CLEAN_NAMESPACE -DQT_NO_COMPAT \
+ -I\$(top_srcdir) -I\$(top_srcdir)/muse/widgets \$(QT_CFLAGS)"
+
+#MUSEOPTCXXFLAGS="-O6 -fomit-frame-pointer -ffast-math -fstrength-reduce \
+#-funroll-loops"
+#MUSEOPTCXXFLAGS="-O2"
+MUSEOPTCXXFLAGS="-O3 -fomit-frame-pointer -ffast-math -fstrength-reduce -funroll-loops"
+
+# -fmove-all-movables
+
+################
+### optimize ###
+################
+report_optimise="no"
+@%:@ Check whether --enable-optimize was given.
+if test "${enable_optimize+set}" = set; then :
+ enableval=$enable_optimize;
+ case "$enableval" in
+ "yes")
+ report_optimise="yes"
+ CXXFLAGS="$( echo "$CXXFLAGS" | sed "s/-O. *//" )"
+ MUSECXXFLAGS="$MUSECXXFLAGS $MUSEOPTCXXFLAGS"
+ ;;
+ "no")
+ ;;
+ *)
+ as_fn_error "must use --enable-optimize(=yes/no) or --disable-optimize" "$LINENO" 5
+ ;;
+ esac
+
+fi
+
+
+#############
+### debug ###
+#############
+report_debug="no"
+@%:@ Check whether --enable-debug was given.
+if test "${enable_debug+set}" = set; then :
+ enableval=$enable_debug;
+ case "$enableval" in
+ "yes")
+ report_debug="yes"
+ CXXFLAGS=""
+ ;;
+ "no")
+ ;;
+ *)
+ as_fn_error "must use --enable-debug(=yes/no) or --disable-debug" "$LINENO" 5
+ ;;
+ esac
+
+fi
+
+
+###########################
+### PCH ###
+### precompiled headers ###
+###########################
+
+@%:@ Check whether --enable-pch was given.
+if test "${enable_pch+set}" = set; then :
+ enableval=$enable_pch;
+ case "$enableval" in
+ "yes")
+ MUSECXXFLAGS="$MUSECXXFLAGS -Winvalid-pch"
+ PCH="yes"
+
+
+$as_echo "@%:@define PCH 1" >>confdefs.h
+
+ ;;
+ "no")
+ ;;
+ *)
+ as_fn_error "must use --enable-pch(=yes/no) or --disable-pch" "$LINENO" 5
+ ;;
+ esac
+
+fi
+
+ if test "$PCH" = "yes"; then
+ PCH_TRUE=
+ PCH_FALSE='#'
+else
+ PCH_TRUE='#'
+ PCH_FALSE=
+fi
+
+
+############
+### arch ###
+############
+
+report_march="none"
+@%:@ Check whether --enable-arch was given.
+if test "${enable_arch+set}" = set; then :
+ enableval=$enable_arch;
+ case "$enableval" in
+ "no")
+ ;;
+ *)
+ report_march="$enableval"
+ MUSECXXFLAGS="$MUSECXXFLAGS -mtune=$enableval -march=$enableval"
+ ;;
+ esac
+
+fi
+
+
+###########################
+### SSE ###
+### SSE optimizations ###
+###########################
+
+report_sse="no"
+@%:@ Check whether --enable-sse was given.
+if test "${enable_sse+set}" = set; then :
+ enableval=$enable_sse;
+ case "$enableval" in
+ "yes")
+ ## MUSECXXFLAGS="$MUSECXXFLAGS -Winvalid-pch"
+ report_sse="yes"
+ USE_SSE="yes"
+
+
+$as_echo "@%:@define USE_SSE 1" >>confdefs.h
+
+ ;;
+ "no")
+ ;;
+ *)
+ as_fn_error "must use --enable-sse(=yes/no) or --disable-sse" "$LINENO" 5
+ ;;
+ esac
+
+fi
+
+ if test "$USE_SSE" = "yes"; then
+ USE_SSE_TRUE=
+ USE_SSE_FALSE='#'
+else
+ USE_SSE_TRUE='#'
+ USE_SSE_FALSE=
+fi
+
+
+##########
+# PYTHON #
+##########
+# python detection borrowed from libvirt (http://libvirt.org)
+
+@%:@ Check whether --with-python was given.
+if test "${with_python+set}" = set; then :
+ withval=$with_python;
+else
+ enable_python=yes
+fi
+
+
+PYTHON_VERSION=
+PYTHON_INCLUDES=
+if test "$enable_python" != "no" ; then
+ if test -x "$enable_python/bin/python"
+ then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Found python in $enable_python/bin/python" >&5
+$as_echo "$as_me: Found python in $enable_python/bin/python" >&6;}
+ PYTHON="$enable_python/bin/python"
+ enable_python=yes
+ else
+ if test -x "$enable_python"
+ then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Found python in $enable_python" >&5
+$as_echo "$as_me: Found python in $enable_python" >&6;}
+ PYTHON="$enable_python"
+ enable_python=yes
+ else
+ if test -x "$PYTHON"
+ then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Found python in environment PYTHON=$PYTHON" >&5
+$as_echo "$as_me: Found python in environment PYTHON=$PYTHON" >&6;}
+ enable_python=yes
+ fi
+ fi
+ fi
+
+ if test "$enable_python" == "yes" ; then
+
+
+
+
+ # Find any Python interpreter.
+ if test -z "$PYTHON"; then
+ for ac_prog in python python2 python3 python3.0 python2.5 python2.4 python2.3 python2.2 python2.1 python2.0
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_PYTHON+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $PYTHON in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_PYTHON="$PYTHON" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_path_PYTHON="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+PYTHON=$ac_cv_path_PYTHON
+if test -n "$PYTHON"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PYTHON" >&5
+$as_echo "$PYTHON" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$PYTHON" && break
+done
+test -n "$PYTHON" || PYTHON=":"
+
+ fi
+ am_display_PYTHON=python
+
+
+ if test "$PYTHON" = :; then
+ :
+ else
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $am_display_PYTHON version" >&5
+$as_echo_n "checking for $am_display_PYTHON version... " >&6; }
+if test "${am_cv_python_version+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ am_cv_python_version=`$PYTHON -c "import sys; sys.stdout.write(sys.version[:3])"`
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_python_version" >&5
+$as_echo "$am_cv_python_version" >&6; }
+ PYTHON_VERSION=$am_cv_python_version
+
+
+
+ PYTHON_PREFIX='${prefix}'
+
+ PYTHON_EXEC_PREFIX='${exec_prefix}'
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $am_display_PYTHON platform" >&5
+$as_echo_n "checking for $am_display_PYTHON platform... " >&6; }
+if test "${am_cv_python_platform+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ am_cv_python_platform=`$PYTHON -c "import sys; sys.stdout.write(sys.platform)"`
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_python_platform" >&5
+$as_echo "$am_cv_python_platform" >&6; }
+ PYTHON_PLATFORM=$am_cv_python_platform
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $am_display_PYTHON script directory" >&5
+$as_echo_n "checking for $am_display_PYTHON script directory... " >&6; }
+if test "${am_cv_python_pythondir+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "x$prefix" = xNONE
+ then
+ am_py_prefix=$ac_default_prefix
+ else
+ am_py_prefix=$prefix
+ fi
+ am_cv_python_pythondir=`$PYTHON -c "import sys; from distutils import sysconfig; sys.stdout.write(sysconfig.get_python_lib(0,0,prefix='$am_py_prefix'))" 2>/dev/null ||
+ echo "$PYTHON_PREFIX/lib/python$PYTHON_VERSION/site-packages"`
+ case $am_cv_python_pythondir in
+ $am_py_prefix*)
+ am__strip_prefix=`echo "$am_py_prefix" | sed 's|.|.|g'`
+ am_cv_python_pythondir=`echo "$am_cv_python_pythondir" | sed "s,^$am__strip_prefix,$PYTHON_PREFIX,"`
+ ;;
+ *)
+ case $am_py_prefix in
+ /usr|/System*) ;;
+ *)
+ am_cv_python_pythondir=$PYTHON_PREFIX/lib/python$PYTHON_VERSION/site-packages
+ ;;
+ esac
+ ;;
+ esac
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_python_pythondir" >&5
+$as_echo "$am_cv_python_pythondir" >&6; }
+ pythondir=$am_cv_python_pythondir
+
+
+
+ pkgpythondir=\${pythondir}/$PACKAGE
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $am_display_PYTHON extension module directory" >&5
+$as_echo_n "checking for $am_display_PYTHON extension module directory... " >&6; }
+if test "${am_cv_python_pyexecdir+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "x$exec_prefix" = xNONE
+ then
+ am_py_exec_prefix=$am_py_prefix
+ else
+ am_py_exec_prefix=$exec_prefix
+ fi
+ am_cv_python_pyexecdir=`$PYTHON -c "import sys; from distutils import sysconfig; sys.stdout.write(sysconfig.get_python_lib(1,0,prefix='$am_py_exec_prefix'))" 2>/dev/null ||
+ echo "$PYTHON_EXEC_PREFIX/lib/python$PYTHON_VERSION/site-packages"`
+ case $am_cv_python_pyexecdir in
+ $am_py_exec_prefix*)
+ am__strip_prefix=`echo "$am_py_exec_prefix" | sed 's|.|.|g'`
+ am_cv_python_pyexecdir=`echo "$am_cv_python_pyexecdir" | sed "s,^$am__strip_prefix,$PYTHON_EXEC_PREFIX,"`
+ ;;
+ *)
+ case $am_py_exec_prefix in
+ /usr|/System*) ;;
+ *)
+ am_cv_python_pyexecdir=$PYTHON_EXEC_PREFIX/lib/python$PYTHON_VERSION/site-packages
+ ;;
+ esac
+ ;;
+ esac
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_python_pyexecdir" >&5
+$as_echo "$am_cv_python_pyexecdir" >&6; }
+ pyexecdir=$am_cv_python_pyexecdir
+
+
+
+ pkgpyexecdir=\${pyexecdir}/$PACKAGE
+
+
+
+ fi
+
+
+
+ if test "$PYTHON" != : ; then
+ PYTHON_CONFIG="$PYTHON-config"
+
+ if test -x "$PYTHON_CONFIG"
+ then
+ PYTHON_INCLUDES=`$PYTHON_CONFIG --includes`
+ PYTHON_LIB=`$PYTHON_CONFIG --libs`
+ else
+ if test -r $PYTHON_EXEC_PREFIX/include/python$PYTHON_VERSION/Python.h
+ then
+ PYTHON_INCLUDES=-I$PYTHON_EXEC_PREFIX/include/python$PYTHON_VERSION
+ else
+ if test -r $prefix/include/python$PYTHON_VERSION/Python.h
+ then
+ PYTHON_INCLUDES=-I$prefix/include/python$PYTHON_VERSION
+ else
+ if test -r /usr/include/python$PYTHON_VERSION/Python.h
+ then
+ PYTHON_INCLUDES=-I/usr/include/python$PYTHON_VERSION
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Could not find python$PYTHON_VERSION/Python.h, disabling bindings" >&5
+$as_echo "$as_me: Could not find python$PYTHON_VERSION/Python.h, disabling bindings" >&6;}
+ enable_python=no
+ fi
+ fi
+ fi
+ fi
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Could not find python interpreter, disabling bindings" >&5
+$as_echo "$as_me: Could not find python interpreter, disabling bindings" >&6;}
+ enable_python=no
+ fi
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Could not find python in $enable_python, disabling bindings" >&5
+$as_echo "$as_me: Could not find python in $enable_python, disabling bindings" >&6;}
+ enable_python=no
+ fi
+fi
+ if test "$enable_python" = "yes"; then
+ ENABLE_PYTHON_TRUE=
+ ENABLE_PYTHON_FALSE='#'
+else
+ ENABLE_PYTHON_TRUE='#'
+ ENABLE_PYTHON_FALSE=
+fi
+
+
+
+
+
+#AC_ARG_ENABLE(python,
+#enable_python="yes"
+# [ --disable-python disable python bindings for MusE],[
+# case "$enableval" in
+# "no")
+# enable_python="no"
+# ;;
+# *)
+# AC_MSG_ERROR([must use --enable-python(=yes/no) or --disable-python])
+# ;;
+# esac
+# ])
+#
+#if test "$enable_python" = "yes"; then
+# AM_PATH_PYTHON
+# PYTHON_INCLUDE_DIR=""
+# if test -n "$PYTHON_INCLUDES" ; then
+# PYTHON_INCLUDE_DIR=$PYTHON_INCLUDES
+# python_bindings="yes"
+# else
+# python_bindings="no - devel pkg not found"
+# fi
+#fi
+#AM_CONDITIONAL(ENABLE_PYTHON, test "$python_bindings" = "yes")
+
+###################
+### vst plugins ###
+###################
+
+vst_possible=no
+VST="no"
+@%:@ Check whether --enable-vst was given.
+if test "${enable_vst+set}" = set; then :
+ enableval=$enable_vst; if test x$enable_vst = xyes ; then
+ vst_requested=yes;
+ fi
+
+
+fi
+
+
+if test x$vst_requested = xyes ; then
+
+pkg_failed=no
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for FST" >&5
+$as_echo_n "checking for FST... " >&6; }
+
+if test -n "$PKG_CONFIG"; then
+ if test -n "$FST_CFLAGS"; then
+ pkg_cv_FST_CFLAGS="$FST_CFLAGS"
+ else
+ if test -n "$PKG_CONFIG" && \
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libfst\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "libfst") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ pkg_cv_FST_CFLAGS=`$PKG_CONFIG --cflags "libfst" 2>/dev/null`
+else
+ pkg_failed=yes
+fi
+ fi
+else
+ pkg_failed=untried
+fi
+if test -n "$PKG_CONFIG"; then
+ if test -n "$FST_LIBS"; then
+ pkg_cv_FST_LIBS="$FST_LIBS"
+ else
+ if test -n "$PKG_CONFIG" && \
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libfst\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "libfst") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ pkg_cv_FST_LIBS=`$PKG_CONFIG --libs "libfst" 2>/dev/null`
+else
+ pkg_failed=yes
+fi
+ fi
+else
+ pkg_failed=untried
+fi
+
+
+
+if test $pkg_failed = yes; then
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+ _pkg_short_errors_supported=yes
+else
+ _pkg_short_errors_supported=no
+fi
+ if test $_pkg_short_errors_supported = yes; then
+ FST_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "libfst"`
+ else
+ FST_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "libfst"`
+ fi
+ # Put the nasty error message in config.log where it belongs
+ echo "$FST_PKG_ERRORS" >&5
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ vst_possible=no
+elif test $pkg_failed = untried; then
+ vst_possible=no
+else
+ FST_CFLAGS=$pkg_cv_FST_CFLAGS
+ FST_LIBS=$pkg_cv_FST_LIBS
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ vst_possible=yes
+fi
+fi
+
+if test x$vst_possible = xyes -a x$vst_requested = xyes ; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking support for VST/win plugins" >&5
+$as_echo_n "checking support for VST/win plugins... " >&6; }
+ VST_CFLAGS="$FST_CFLAGS"
+ VST_LIBS="$FST_LIBS"
+ VST="yes"
+
+$as_echo "@%:@define VST_SUPPORT 1" >>confdefs.h
+
+fi
+
+ if test x$vst_possible = xyes -a x$vst_requested = xyes; then
+ VST_SUPPORT_TRUE=
+ VST_SUPPORT_FALSE='#'
+else
+ VST_SUPPORT_TRUE='#'
+ VST_SUPPORT_FALSE=
+fi
+
+
+
+###################
+### OSC support ###
+###################
+
+osc_requested=no
+LO_LIB_FOUND="no"
+OSC="no"
+@%:@ Check whether --enable-osc was given.
+if test "${enable_osc+set}" = set; then :
+ enableval=$enable_osc; if test x$enable_osc = xyes ; then
+ osc_requested=yes;
+ fi
+
+
+fi
+
+
+if test x$osc_requested = xyes ; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking support for OSC" >&5
+$as_echo_n "checking support for OSC... " >&6; }
+## AC_CHECK_LIB(lo, lo_send, LO_LIB_FOUND="yes", LO_LIB_FOUND="no")
+## PKG_CHECK_MODULES(LO, lo >= 0.2, LO_LIB_FOUND="yes", LO_LIB_FOUND="no")
+
+pkg_failed=no
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for LO" >&5
+$as_echo_n "checking for LO... " >&6; }
+
+if test -n "$PKG_CONFIG"; then
+ if test -n "$LO_CFLAGS"; then
+ pkg_cv_LO_CFLAGS="$LO_CFLAGS"
+ else
+ if test -n "$PKG_CONFIG" && \
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"liblo\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "liblo") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ pkg_cv_LO_CFLAGS=`$PKG_CONFIG --cflags "liblo" 2>/dev/null`
+else
+ pkg_failed=yes
+fi
+ fi
+else
+ pkg_failed=untried
+fi
+if test -n "$PKG_CONFIG"; then
+ if test -n "$LO_LIBS"; then
+ pkg_cv_LO_LIBS="$LO_LIBS"
+ else
+ if test -n "$PKG_CONFIG" && \
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"liblo\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "liblo") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ pkg_cv_LO_LIBS=`$PKG_CONFIG --libs "liblo" 2>/dev/null`
+else
+ pkg_failed=yes
+fi
+ fi
+else
+ pkg_failed=untried
+fi
+
+
+
+if test $pkg_failed = yes; then
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+ _pkg_short_errors_supported=yes
+else
+ _pkg_short_errors_supported=no
+fi
+ if test $_pkg_short_errors_supported = yes; then
+ LO_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "liblo"`
+ else
+ LO_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "liblo"`
+ fi
+ # Put the nasty error message in config.log where it belongs
+ echo "$LO_PKG_ERRORS" >&5
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ LO_LIB_FOUND=no
+elif test $pkg_failed = untried; then
+ LO_LIB_FOUND=no
+else
+ LO_CFLAGS=$pkg_cv_LO_CFLAGS
+ LO_LIBS=$pkg_cv_LO_LIBS
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ LO_LIB_FOUND=yes
+fi
+ if test x$LO_LIB_FOUND = xno; then
+ as_fn_error "Library liblo from The Lightweight OSC Implementation is required" "$LINENO" 5
+ fi
+fi
+
+if test x$LO_LIB_FOUND = xyes ; then
+ LO_CFLAGS="$LO_CFLAGS"
+ ##LO_LIBS="$LO_LIBS"
+ LO_LIBS="-llo"
+ OSC="yes"
+
+
+
+$as_echo "@%:@define OSC_SUPPORT 1" >>confdefs.h
+
+fi
+
+ if test x$LO_LIB_FOUND = xyes; then
+ OSC_SUPPORT_TRUE=
+ OSC_SUPPORT_FALSE='#'
+else
+ OSC_SUPPORT_TRUE='#'
+ OSC_SUPPORT_FALSE=
+fi
+
+
+## LO_LIBS="-llo"
+## AC_SUBST(LO_CFLAGS)
+## AC_SUBST(LO_LIBS)
+
+## PKG_CHECK_MODULES(LO, lo >= 0.23,
+## true,
+## AC_MSG_ERROR([need liblo >= 0.23 ])
+## )
+
+
+
+###################
+### dssi plugins ###
+###################
+
+dssi_requested=no
+## LO_LIB_FOUND="no"
+DSSI_H_FOUND="no"
+DSSI="no"
+@%:@ Check whether --enable-dssi was given.
+if test "${enable_dssi+set}" = set; then :
+ enableval=$enable_dssi; if test x$enable_dssi = xyes ; then
+ dssi_requested=yes;
+ fi
+
+
+fi
+
+
+
+if test x$dssi_requested = xyes ; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking support for DSSI + DSSI-Vst plugins" >&5
+$as_echo_n "checking support for DSSI + DSSI-Vst plugins... " >&6; }
+ ## AC_CHECK_LIB(lo, lo_send, LO_LIB_FOUND="yes", LO_LIB_FOUND="no")
+ ## PKG_CHECK_MODULES(LO, lo >= 0.2, LO_LIB_FOUND="yes", LO_LIB_FOUND="no")
+## PKG_CHECK_MODULES(LO,liblo, [ LO_LIB_FOUND=yes ], [ LO_LIB_FOUND=no ])
+## if test x$LO_LIB_FOUND = xno; then
+## AC_MSG_ERROR([Library liblo from The Lightweight OSC Implementation is required])
+## fi
+
+ ac_fn_c_check_header_mongrel "$LINENO" "dssi.h" "ac_cv_header_dssi_h" "$ac_includes_default"
+if test "x$ac_cv_header_dssi_h" = x""yes; then :
+ DSSI_FOUND="yes"
+else
+ DSSI_FOUND="no"
+fi
+
+
+ ## PKG_CHECK_MODULES(DSSI [ DSSI_FOUND=yes ], [ DSSI_FOUND=no ])
+ if test x$DSSI_FOUND = xno; then
+ as_fn_error "Header file dssi.h from DSSI (Disposable Soft Synth Interface) is required" "$LINENO" 5
+ fi
+fi
+
+## if test x$LO_LIB_FOUND = xyes -a x$DSSI_FOUND = xyes ; then
+if test x$DSSI_FOUND = xyes ; then
+## LO_CFLAGS="$LO_CFLAGS"
+ ##LO_LIBS="$LO_LIBS"
+## LO_LIBS="-llo"
+ DSSI="yes"
+## AC_SUBST(LO_CFLAGS)
+## AC_SUBST(LO_LIBS)
+
+$as_echo "@%:@define DSSI_SUPPORT 1" >>confdefs.h
+
+fi
+
+## AM_CONDITIONAL(DSSI_SUPPORT, test x$LO_LIB_FOUND = xyes -a x$DSSI_FOUND = xyes)
+ if test x$DSSI_FOUND = xyes; then
+ DSSI_SUPPORT_TRUE=
+ DSSI_SUPPORT_FALSE='#'
+else
+ DSSI_SUPPORT_TRUE='#'
+ DSSI_SUPPORT_FALSE=
+fi
+
+
+## LO_LIBS="-llo"
+## AC_SUBST(LO_CFLAGS)
+## AC_SUBST(LO_LIBS)
+
+## PKG_CHECK_MODULES(LO, lo >= 0.23,
+## true,
+## AC_MSG_ERROR([need liblo >= 0.23 ])
+## )
+
+
+
+
+######################################
+
+
+
+$as_echo "@%:@define HAVE_AUDIO 1" >>confdefs.h
+
+ if test "yes" = "yes"; then
+ HAVE_AUDIO_TRUE=
+ HAVE_AUDIO_FALSE='#'
+else
+ HAVE_AUDIO_TRUE='#'
+ HAVE_AUDIO_FALSE=
+fi
+
+
+
+
+
+
+if test -n "$GIVERTCAP"; then
+ SUIDINSTALL="no"
+ SUIDBUILD="no"
+ fi
+
+
+ac_config_files="$ac_config_files Makefile m4/Makefile al/Makefile doc/Makefile xpm/Makefile demos/Makefile grepmidi/Makefile packaging/Makefile muse/Makefile muse/widgets/Makefile muse/master/Makefile muse/midiedit/Makefile muse/arranger/Makefile muse/liste/Makefile muse/driver/Makefile muse/waveedit/Makefile muse/ctrl/Makefile muse/instruments/Makefile muse/mixer/Makefile muse/cliplist/Makefile muse/marker/Makefile muse/mplugins/Makefile muse/remote/Makefile share/Makefile share/drummaps/Makefile share/html/Makefile share/locale/Makefile share/wallpapers/Makefile share/instruments/Makefile share/plugins/Makefile share/templates/Makefile share/pybridge/Makefile share/scripts/Makefile synti/Makefile synti/libsynti/Makefile synti/fluidsynth/Makefile synti/fluid/Makefile synti/organ/Makefile synti/s1/Makefile synti/vam/Makefile synti/deicsonze/Makefile synti/simpledrums/Makefile lib/Makefile lib/synthi/Makefile lib/plugins/Makefile plugins/Makefile plugins/freeverb/Makefile plugins/pandelay/Makefile plugins/doublechorus/Makefile Doxyfile utils/Makefile"
+
+cat >confcache <<\_ACEOF
+# This file is a shell script that caches the results of configure
+# tests run on this system so they can be shared between configure
+# scripts and configure runs, see configure's option --config-cache.
+# It is not useful on other systems. If it contains results you don't
+# want to keep, you may remove or edit it.
+#
+# config.status only pays attention to the cache file if you give it
+# the --recheck option to rerun configure.
+#
+# `ac_cv_env_foo' variables (set or unset) will be overridden when
+# loading this file, other *unset* `ac_cv_foo' will be assigned the
+# following values.
+
+_ACEOF
+
+# The following way of writing the cache mishandles newlines in values,
+# but we know of no workaround that is simple, portable, and efficient.
+# So, we kill variables containing newlines.
+# Ultrix sh set writes to stderr and can't be redirected directly,
+# and sets the high bit in the cache file unless we assign to the vars.
+(
+ for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do
+ eval ac_val=\$$ac_var
+ case $ac_val in #(
+ *${as_nl}*)
+ case $ac_var in #(
+ *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
+$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
+ esac
+ case $ac_var in #(
+ _ | IFS | as_nl) ;; #(
+ BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
+ *) { eval $ac_var=; unset $ac_var;} ;;
+ esac ;;
+ esac
+ done
+
+ (set) 2>&1 |
+ case $as_nl`(ac_space=' '; set) 2>&1` in #(
+ *${as_nl}ac_space=\ *)
+ # `set' does not quote correctly, so add quotes: double-quote
+ # substitution turns \\\\ into \\, and sed turns \\ into \.
+ sed -n \
+ "s/'/'\\\\''/g;
+ s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
+ ;; #(
+ *)
+ # `set' quotes correctly as required by POSIX, so do not add quotes.
+ sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
+ ;;
+ esac |
+ sort
+) |
+ sed '
+ /^ac_cv_env_/b end
+ t clear
+ :clear
+ s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
+ t end
+ s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
+ :end' >>confcache
+if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
+ if test -w "$cache_file"; then
+ test "x$cache_file" != "x/dev/null" &&
+ { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5
+$as_echo "$as_me: updating cache $cache_file" >&6;}
+ cat confcache >$cache_file
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5
+$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;}
+ fi
+fi
+rm -f confcache
+
+test "x$prefix" = xNONE && prefix=$ac_default_prefix
+# Let make expand exec_prefix.
+test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
+
+DEFS=-DHAVE_CONFIG_H
+
+ac_libobjs=
+ac_ltlibobjs=
+for ac_i in : $LIB@&t@OBJS; do test "x$ac_i" = x: && continue
+ # 1. Remove the extension, and $U if already installed.
+ ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
+ ac_i=`$as_echo "$ac_i" | sed "$ac_script"`
+ # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR
+ # will be set to the directory where LIBOBJS objects are built.
+ as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext"
+ as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo'
+done
+LIB@&t@OBJS=$ac_libobjs
+
+LTLIBOBJS=$ac_ltlibobjs
+
+
+ if test -n "$EXEEXT"; then
+ am__EXEEXT_TRUE=
+ am__EXEEXT_FALSE='#'
+else
+ am__EXEEXT_TRUE='#'
+ am__EXEEXT_FALSE=
+fi
+
+if test -z "${INSIDE_GNOME_COMMON_TRUE}" && test -z "${INSIDE_GNOME_COMMON_FALSE}"; then
+ as_fn_error "conditional \"INSIDE_GNOME_COMMON\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then
+ as_fn_error "conditional \"AMDEP\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then
+ as_fn_error "conditional \"am__fastdepCXX\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
+ as_fn_error "conditional \"am__fastdepCC\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then
+ as_fn_error "conditional \"am__fastdepCXX\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${ENABLEFLUIDSYNTH_TRUE}" && test -z "${ENABLEFLUIDSYNTH_FALSE}"; then
+ as_fn_error "conditional \"ENABLEFLUIDSYNTH\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${HAVE_LASH_TRUE}" && test -z "${HAVE_LASH_FALSE}"; then
+ as_fn_error "conditional \"HAVE_LASH\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${RTCAP_TRUE}" && test -z "${RTCAP_FALSE}"; then
+ as_fn_error "conditional \"RTCAP\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${PCH_TRUE}" && test -z "${PCH_FALSE}"; then
+ as_fn_error "conditional \"PCH\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${USE_SSE_TRUE}" && test -z "${USE_SSE_FALSE}"; then
+ as_fn_error "conditional \"USE_SSE\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${ENABLE_PYTHON_TRUE}" && test -z "${ENABLE_PYTHON_FALSE}"; then
+ as_fn_error "conditional \"ENABLE_PYTHON\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${VST_SUPPORT_TRUE}" && test -z "${VST_SUPPORT_FALSE}"; then
+ as_fn_error "conditional \"VST_SUPPORT\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${OSC_SUPPORT_TRUE}" && test -z "${OSC_SUPPORT_FALSE}"; then
+ as_fn_error "conditional \"OSC_SUPPORT\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${DSSI_SUPPORT_TRUE}" && test -z "${DSSI_SUPPORT_FALSE}"; then
+ as_fn_error "conditional \"DSSI_SUPPORT\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${HAVE_AUDIO_TRUE}" && test -z "${HAVE_AUDIO_FALSE}"; then
+ as_fn_error "conditional \"HAVE_AUDIO\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+
+: ${CONFIG_STATUS=./config.status}
+ac_write_fail=0
+ac_clean_files_save=$ac_clean_files
+ac_clean_files="$ac_clean_files $CONFIG_STATUS"
+{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5
+$as_echo "$as_me: creating $CONFIG_STATUS" >&6;}
+as_write_fail=0
+cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1
+#! $SHELL
+# Generated by $as_me.
+# Run this file to recreate the current configuration.
+# Compiler output produced by configure, useful for debugging
+# configure, is in config.log if it exists.
+
+debug=false
+ac_cs_recheck=false
+ac_cs_silent=false
+
+SHELL=\${CONFIG_SHELL-$SHELL}
+export SHELL
+_ASEOF
+cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1
+## -------------------- ##
+## M4sh Initialization. ##
+## -------------------- ##
+
+# Be more Bourne compatible
+DUALCASE=1; export DUALCASE # for MKS sh
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
+ emulate sh
+ NULLCMD=:
+ # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
+ # is contrary to our usage. Disable this feature.
+ alias -g '${1+"$@"}'='"$@"'
+ setopt NO_GLOB_SUBST
+else
+ case `(set -o) 2>/dev/null` in @%:@(
+ *posix*) :
+ set -o posix ;; @%:@(
+ *) :
+ ;;
+esac
+fi
+
+
+as_nl='
+'
+export as_nl
+# Printing a long string crashes Solaris 7 /usr/bin/printf.
+as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
+# Prefer a ksh shell builtin over an external printf program on Solaris,
+# but without wasting forks for bash or zsh.
+if test -z "$BASH_VERSION$ZSH_VERSION" \
+ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
+ as_echo='print -r --'
+ as_echo_n='print -rn --'
+elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
+ as_echo='printf %s\n'
+ as_echo_n='printf %s'
+else
+ if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
+ as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
+ as_echo_n='/usr/ucb/echo -n'
+ else
+ as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
+ as_echo_n_body='eval
+ arg=$1;
+ case $arg in @%:@(
+ *"$as_nl"*)
+ expr "X$arg" : "X\\(.*\\)$as_nl";
+ arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
+ esac;
+ expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
+ '
+ export as_echo_n_body
+ as_echo_n='sh -c $as_echo_n_body as_echo'
+ fi
+ export as_echo_body
+ as_echo='sh -c $as_echo_body as_echo'
+fi
+
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+ PATH_SEPARATOR=:
+ (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
+ (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
+ PATH_SEPARATOR=';'
+ }
+fi
+
+
+# IFS
+# We need space, tab and new line, in precisely that order. Quoting is
+# there to prevent editors from complaining about space-tab.
+# (If _AS_PATH_WALK were called with IFS unset, it would disable word
+# splitting by setting IFS to empty value.)
+IFS=" "" $as_nl"
+
+# Find who we are. Look in the path if we contain no directory separator.
+case $0 in @%:@((
+ *[\\/]* ) as_myself=$0 ;;
+ *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+# We did not find ourselves, most probably we were run as `sh COMMAND'
+# in which case we are not to be found in the path.
+if test "x$as_myself" = x; then
+ as_myself=$0
+fi
+if test ! -f "$as_myself"; then
+ $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
+ exit 1
+fi
+
+# Unset variables that we do not need and which cause bugs (e.g. in
+# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1"
+# suppresses any "Segmentation fault" message there. '((' could
+# trigger a bug in pdksh 5.2.14.
+for as_var in BASH_ENV ENV MAIL MAILPATH
+do eval test x\${$as_var+set} = xset \
+ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
+done
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# NLS nuisances.
+LC_ALL=C
+export LC_ALL
+LANGUAGE=C
+export LANGUAGE
+
+# CDPATH.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+
+@%:@ as_fn_error ERROR [LINENO LOG_FD]
+@%:@ ---------------------------------
+@%:@ Output "`basename @S|@0`: error: ERROR" to stderr. If LINENO and LOG_FD are
+@%:@ provided, also output the error to LOG_FD, referencing LINENO. Then exit the
+@%:@ script with status @S|@?, using 1 if that was 0.
+as_fn_error ()
+{
+ as_status=$?; test $as_status -eq 0 && as_status=1
+ if test "$3"; then
+ as_lineno=${as_lineno-"$2"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ $as_echo "$as_me:${as_lineno-$LINENO}: error: $1" >&$3
+ fi
+ $as_echo "$as_me: error: $1" >&2
+ as_fn_exit $as_status
+} @%:@ as_fn_error
+
+
+@%:@ as_fn_set_status STATUS
+@%:@ -----------------------
+@%:@ Set @S|@? to STATUS, without forking.
+as_fn_set_status ()
+{
+ return $1
+} @%:@ as_fn_set_status
+
+@%:@ as_fn_exit STATUS
+@%:@ -----------------
+@%:@ Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
+as_fn_exit ()
+{
+ set +e
+ as_fn_set_status $1
+ exit $1
+} @%:@ as_fn_exit
+
+@%:@ as_fn_unset VAR
+@%:@ ---------------
+@%:@ Portably unset VAR.
+as_fn_unset ()
+{
+ { eval $1=; unset $1;}
+}
+as_unset=as_fn_unset
+@%:@ as_fn_append VAR VALUE
+@%:@ ----------------------
+@%:@ Append the text in VALUE to the end of the definition contained in VAR. Take
+@%:@ advantage of any shell optimizations that allow amortized linear growth over
+@%:@ repeated appends, instead of the typical quadratic growth present in naive
+@%:@ implementations.
+if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
+ eval 'as_fn_append ()
+ {
+ eval $1+=\$2
+ }'
+else
+ as_fn_append ()
+ {
+ eval $1=\$$1\$2
+ }
+fi # as_fn_append
+
+@%:@ as_fn_arith ARG...
+@%:@ ------------------
+@%:@ Perform arithmetic evaluation on the ARGs, and store the result in the
+@%:@ global @S|@as_val. Take advantage of shells that can avoid forks. The arguments
+@%:@ must be portable across @S|@(()) and expr.
+if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
+ eval 'as_fn_arith ()
+ {
+ as_val=$(( $* ))
+ }'
+else
+ as_fn_arith ()
+ {
+ as_val=`expr "$@" || test $? -eq 1`
+ }
+fi # as_fn_arith
+
+
+if expr a : '\(a\)' >/dev/null 2>&1 &&
+ test "X`expr 00001 : '.*\(...\)'`" = X001; then
+ as_expr=expr
+else
+ as_expr=false
+fi
+
+if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
+ as_basename=basename
+else
+ as_basename=false
+fi
+
+if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
+ as_dirname=dirname
+else
+ as_dirname=false
+fi
+
+as_me=`$as_basename -- "$0" ||
+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+ X"$0" : 'X\(//\)$' \| \
+ X"$0" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X/"$0" |
+ sed '/^.*\/\([^/][^/]*\)\/*$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits
+
+ECHO_C= ECHO_N= ECHO_T=
+case `echo -n x` in @%:@(((((
+-n*)
+ case `echo 'xy\c'` in
+ *c*) ECHO_T=' ';; # ECHO_T is single tab character.
+ xy) ECHO_C='\c';;
+ *) echo `echo ksh88 bug on AIX 6.1` > /dev/null
+ ECHO_T=' ';;
+ esac;;
+*)
+ ECHO_N='-n';;
+esac
+
+rm -f conf$$ conf$$.exe conf$$.file
+if test -d conf$$.dir; then
+ rm -f conf$$.dir/conf$$.file
+else
+ rm -f conf$$.dir
+ mkdir conf$$.dir 2>/dev/null
+fi
+if (echo >conf$$.file) 2>/dev/null; then
+ if ln -s conf$$.file conf$$ 2>/dev/null; then
+ as_ln_s='ln -s'
+ # ... but there are two gotchas:
+ # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
+ # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
+ # In both cases, we have to default to `cp -p'.
+ ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
+ as_ln_s='cp -p'
+ elif ln conf$$.file conf$$ 2>/dev/null; then
+ as_ln_s=ln
+ else
+ as_ln_s='cp -p'
+ fi
+else
+ as_ln_s='cp -p'
+fi
+rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
+rmdir conf$$.dir 2>/dev/null
+
+
+@%:@ as_fn_mkdir_p
+@%:@ -------------
+@%:@ Create "@S|@as_dir" as a directory, including parents if necessary.
+as_fn_mkdir_p ()
+{
+
+ case $as_dir in #(
+ -*) as_dir=./$as_dir;;
+ esac
+ test -d "$as_dir" || eval $as_mkdir_p || {
+ as_dirs=
+ while :; do
+ case $as_dir in #(
+ *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
+ *) as_qdir=$as_dir;;
+ esac
+ as_dirs="'$as_qdir' $as_dirs"
+ as_dir=`$as_dirname -- "$as_dir" ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$as_dir" : 'X\(//\)[^/]' \| \
+ X"$as_dir" : 'X\(//\)$' \| \
+ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$as_dir" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ test -d "$as_dir" && break
+ done
+ test -z "$as_dirs" || eval "mkdir $as_dirs"
+ } || test -d "$as_dir" || as_fn_error "cannot create directory $as_dir"
+
+
+} @%:@ as_fn_mkdir_p
+if mkdir -p . 2>/dev/null; then
+ as_mkdir_p='mkdir -p "$as_dir"'
+else
+ test -d ./-p && rmdir ./-p
+ as_mkdir_p=false
+fi
+
+if test -x / >/dev/null 2>&1; then
+ as_test_x='test -x'
+else
+ if ls -dL / >/dev/null 2>&1; then
+ as_ls_L_option=L
+ else
+ as_ls_L_option=
+ fi
+ as_test_x='
+ eval sh -c '\''
+ if test -d "$1"; then
+ test -d "$1/.";
+ else
+ case $1 in @%:@(
+ -*)set "./$1";;
+ esac;
+ case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in @%:@((
+ ???[sx]*):;;*)false;;esac;fi
+ '\'' sh
+ '
+fi
+as_executable_p=$as_test_x
+
+# Sed expression to map a string onto a valid CPP name.
+as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
+
+# Sed expression to map a string onto a valid variable name.
+as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
+
+
+exec 6>&1
+## ----------------------------------- ##
+## Main body of $CONFIG_STATUS script. ##
+## ----------------------------------- ##
+_ASEOF
+test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+# Save the log message, to keep $0 and so on meaningful, and to
+# report actual input values of CONFIG_FILES etc. instead of their
+# values after options handling.
+ac_log="
+This file was extended by MusE $as_me 1.1, which was
+generated by GNU Autoconf 2.65. Invocation command line was
+
+ CONFIG_FILES = $CONFIG_FILES
+ CONFIG_HEADERS = $CONFIG_HEADERS
+ CONFIG_LINKS = $CONFIG_LINKS
+ CONFIG_COMMANDS = $CONFIG_COMMANDS
+ $ $0 $@
+
+on `(hostname || uname -n) 2>/dev/null | sed 1q`
+"
+
+_ACEOF
+
+case $ac_config_files in *"
+"*) set x $ac_config_files; shift; ac_config_files=$*;;
+esac
+
+case $ac_config_headers in *"
+"*) set x $ac_config_headers; shift; ac_config_headers=$*;;
+esac
+
+
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+# Files that config.status was made for.
+config_files="$ac_config_files"
+config_headers="$ac_config_headers"
+config_commands="$ac_config_commands"
+
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+ac_cs_usage="\
+\`$as_me' instantiates files and other configuration actions
+from templates according to the current configuration. Unless the files
+and actions are specified as TAGs, all are instantiated by default.
+
+Usage: $0 [OPTION]... [TAG]...
+
+ -h, --help print this help, then exit
+ -V, --version print version number and configuration settings, then exit
+ --config print configuration, then exit
+ -q, --quiet, --silent
+ do not print progress messages
+ -d, --debug don't remove temporary files
+ --recheck update $as_me by reconfiguring in the same conditions
+ --file=FILE[:TEMPLATE]
+ instantiate the configuration file FILE
+ --header=FILE[:TEMPLATE]
+ instantiate the configuration header FILE
+
+Configuration files:
+$config_files
+
+Configuration headers:
+$config_headers
+
+Configuration commands:
+$config_commands
+
+Report bugs to the package provider."
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
+ac_cs_version="\\
+MusE config.status 1.1
+configured by $0, generated by GNU Autoconf 2.65,
+ with options \\"\$ac_cs_config\\"
+
+Copyright (C) 2009 Free Software Foundation, Inc.
+This config.status script is free software; the Free Software Foundation
+gives unlimited permission to copy, distribute and modify it."
+
+ac_pwd='$ac_pwd'
+srcdir='$srcdir'
+INSTALL='$INSTALL'
+MKDIR_P='$MKDIR_P'
+AWK='$AWK'
+test -n "\$AWK" || AWK=awk
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+# The default lists apply if the user does not specify any file.
+ac_need_defaults=:
+while test $# != 0
+do
+ case $1 in
+ --*=*)
+ ac_option=`expr "X$1" : 'X\([^=]*\)='`
+ ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'`
+ ac_shift=:
+ ;;
+ *)
+ ac_option=$1
+ ac_optarg=$2
+ ac_shift=shift
+ ;;
+ esac
+
+ case $ac_option in
+ # Handling of the options.
+ -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
+ ac_cs_recheck=: ;;
+ --version | --versio | --versi | --vers | --ver | --ve | --v | -V )
+ $as_echo "$ac_cs_version"; exit ;;
+ --config | --confi | --conf | --con | --co | --c )
+ $as_echo "$ac_cs_config"; exit ;;
+ --debug | --debu | --deb | --de | --d | -d )
+ debug=: ;;
+ --file | --fil | --fi | --f )
+ $ac_shift
+ case $ac_optarg in
+ *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
+ esac
+ as_fn_append CONFIG_FILES " '$ac_optarg'"
+ ac_need_defaults=false;;
+ --header | --heade | --head | --hea )
+ $ac_shift
+ case $ac_optarg in
+ *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
+ esac
+ as_fn_append CONFIG_HEADERS " '$ac_optarg'"
+ ac_need_defaults=false;;
+ --he | --h)
+ # Conflict between --help and --header
+ as_fn_error "ambiguous option: \`$1'
+Try \`$0 --help' for more information.";;
+ --help | --hel | -h )
+ $as_echo "$ac_cs_usage"; exit ;;
+ -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+ | -silent | --silent | --silen | --sile | --sil | --si | --s)
+ ac_cs_silent=: ;;
+
+ # This is an error.
+ -*) as_fn_error "unrecognized option: \`$1'
+Try \`$0 --help' for more information." ;;
+
+ *) as_fn_append ac_config_targets " $1"
+ ac_need_defaults=false ;;
+
+ esac
+ shift
+done
+
+ac_configure_extra_args=
+
+if $ac_cs_silent; then
+ exec 6>/dev/null
+ ac_configure_extra_args="$ac_configure_extra_args --silent"
+fi
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+if \$ac_cs_recheck; then
+ set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
+ shift
+ \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6
+ CONFIG_SHELL='$SHELL'
+ export CONFIG_SHELL
+ exec "\$@"
+fi
+
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+exec 5>>config.log
+{
+ echo
+ sed 'h;s/./-/g;s/^.../@%:@@%:@ /;s/...$/ @%:@@%:@/;p;x;p;x' <<_ASBOX
+@%:@@%:@ Running $as_me. @%:@@%:@
+_ASBOX
+ $as_echo "$ac_log"
+} >&5
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+#
+# INIT-COMMANDS
+#
+AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"
+
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+sed_quote_subst='$sed_quote_subst'
+double_quote_subst='$double_quote_subst'
+delay_variable_subst='$delay_variable_subst'
+macro_version='`$ECHO "X$macro_version" | $Xsed -e "$delay_single_quote_subst"`'
+macro_revision='`$ECHO "X$macro_revision" | $Xsed -e "$delay_single_quote_subst"`'
+enable_shared='`$ECHO "X$enable_shared" | $Xsed -e "$delay_single_quote_subst"`'
+enable_static='`$ECHO "X$enable_static" | $Xsed -e "$delay_single_quote_subst"`'
+pic_mode='`$ECHO "X$pic_mode" | $Xsed -e "$delay_single_quote_subst"`'
+enable_fast_install='`$ECHO "X$enable_fast_install" | $Xsed -e "$delay_single_quote_subst"`'
+host_alias='`$ECHO "X$host_alias" | $Xsed -e "$delay_single_quote_subst"`'
+host='`$ECHO "X$host" | $Xsed -e "$delay_single_quote_subst"`'
+host_os='`$ECHO "X$host_os" | $Xsed -e "$delay_single_quote_subst"`'
+build_alias='`$ECHO "X$build_alias" | $Xsed -e "$delay_single_quote_subst"`'
+build='`$ECHO "X$build" | $Xsed -e "$delay_single_quote_subst"`'
+build_os='`$ECHO "X$build_os" | $Xsed -e "$delay_single_quote_subst"`'
+SED='`$ECHO "X$SED" | $Xsed -e "$delay_single_quote_subst"`'
+Xsed='`$ECHO "X$Xsed" | $Xsed -e "$delay_single_quote_subst"`'
+GREP='`$ECHO "X$GREP" | $Xsed -e "$delay_single_quote_subst"`'
+EGREP='`$ECHO "X$EGREP" | $Xsed -e "$delay_single_quote_subst"`'
+FGREP='`$ECHO "X$FGREP" | $Xsed -e "$delay_single_quote_subst"`'
+LD='`$ECHO "X$LD" | $Xsed -e "$delay_single_quote_subst"`'
+NM='`$ECHO "X$NM" | $Xsed -e "$delay_single_quote_subst"`'
+LN_S='`$ECHO "X$LN_S" | $Xsed -e "$delay_single_quote_subst"`'
+max_cmd_len='`$ECHO "X$max_cmd_len" | $Xsed -e "$delay_single_quote_subst"`'
+ac_objext='`$ECHO "X$ac_objext" | $Xsed -e "$delay_single_quote_subst"`'
+exeext='`$ECHO "X$exeext" | $Xsed -e "$delay_single_quote_subst"`'
+lt_unset='`$ECHO "X$lt_unset" | $Xsed -e "$delay_single_quote_subst"`'
+lt_SP2NL='`$ECHO "X$lt_SP2NL" | $Xsed -e "$delay_single_quote_subst"`'
+lt_NL2SP='`$ECHO "X$lt_NL2SP" | $Xsed -e "$delay_single_quote_subst"`'
+reload_flag='`$ECHO "X$reload_flag" | $Xsed -e "$delay_single_quote_subst"`'
+reload_cmds='`$ECHO "X$reload_cmds" | $Xsed -e "$delay_single_quote_subst"`'
+OBJDUMP='`$ECHO "X$OBJDUMP" | $Xsed -e "$delay_single_quote_subst"`'
+deplibs_check_method='`$ECHO "X$deplibs_check_method" | $Xsed -e "$delay_single_quote_subst"`'
+file_magic_cmd='`$ECHO "X$file_magic_cmd" | $Xsed -e "$delay_single_quote_subst"`'
+AR='`$ECHO "X$AR" | $Xsed -e "$delay_single_quote_subst"`'
+AR_FLAGS='`$ECHO "X$AR_FLAGS" | $Xsed -e "$delay_single_quote_subst"`'
+STRIP='`$ECHO "X$STRIP" | $Xsed -e "$delay_single_quote_subst"`'
+RANLIB='`$ECHO "X$RANLIB" | $Xsed -e "$delay_single_quote_subst"`'
+old_postinstall_cmds='`$ECHO "X$old_postinstall_cmds" | $Xsed -e "$delay_single_quote_subst"`'
+old_postuninstall_cmds='`$ECHO "X$old_postuninstall_cmds" | $Xsed -e "$delay_single_quote_subst"`'
+old_archive_cmds='`$ECHO "X$old_archive_cmds" | $Xsed -e "$delay_single_quote_subst"`'
+CC='`$ECHO "X$CC" | $Xsed -e "$delay_single_quote_subst"`'
+CFLAGS='`$ECHO "X$CFLAGS" | $Xsed -e "$delay_single_quote_subst"`'
+compiler='`$ECHO "X$compiler" | $Xsed -e "$delay_single_quote_subst"`'
+GCC='`$ECHO "X$GCC" | $Xsed -e "$delay_single_quote_subst"`'
+lt_cv_sys_global_symbol_pipe='`$ECHO "X$lt_cv_sys_global_symbol_pipe" | $Xsed -e "$delay_single_quote_subst"`'
+lt_cv_sys_global_symbol_to_cdecl='`$ECHO "X$lt_cv_sys_global_symbol_to_cdecl" | $Xsed -e "$delay_single_quote_subst"`'
+lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "X$lt_cv_sys_global_symbol_to_c_name_address" | $Xsed -e "$delay_single_quote_subst"`'
+lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "X$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $Xsed -e "$delay_single_quote_subst"`'
+objdir='`$ECHO "X$objdir" | $Xsed -e "$delay_single_quote_subst"`'
+SHELL='`$ECHO "X$SHELL" | $Xsed -e "$delay_single_quote_subst"`'
+ECHO='`$ECHO "X$ECHO" | $Xsed -e "$delay_single_quote_subst"`'
+MAGIC_CMD='`$ECHO "X$MAGIC_CMD" | $Xsed -e "$delay_single_quote_subst"`'
+lt_prog_compiler_no_builtin_flag='`$ECHO "X$lt_prog_compiler_no_builtin_flag" | $Xsed -e "$delay_single_quote_subst"`'
+lt_prog_compiler_wl='`$ECHO "X$lt_prog_compiler_wl" | $Xsed -e "$delay_single_quote_subst"`'
+lt_prog_compiler_pic='`$ECHO "X$lt_prog_compiler_pic" | $Xsed -e "$delay_single_quote_subst"`'
+lt_prog_compiler_static='`$ECHO "X$lt_prog_compiler_static" | $Xsed -e "$delay_single_quote_subst"`'
+lt_cv_prog_compiler_c_o='`$ECHO "X$lt_cv_prog_compiler_c_o" | $Xsed -e "$delay_single_quote_subst"`'
+need_locks='`$ECHO "X$need_locks" | $Xsed -e "$delay_single_quote_subst"`'
+DSYMUTIL='`$ECHO "X$DSYMUTIL" | $Xsed -e "$delay_single_quote_subst"`'
+NMEDIT='`$ECHO "X$NMEDIT" | $Xsed -e "$delay_single_quote_subst"`'
+LIPO='`$ECHO "X$LIPO" | $Xsed -e "$delay_single_quote_subst"`'
+OTOOL='`$ECHO "X$OTOOL" | $Xsed -e "$delay_single_quote_subst"`'
+OTOOL64='`$ECHO "X$OTOOL64" | $Xsed -e "$delay_single_quote_subst"`'
+libext='`$ECHO "X$libext" | $Xsed -e "$delay_single_quote_subst"`'
+shrext_cmds='`$ECHO "X$shrext_cmds" | $Xsed -e "$delay_single_quote_subst"`'
+extract_expsyms_cmds='`$ECHO "X$extract_expsyms_cmds" | $Xsed -e "$delay_single_quote_subst"`'
+archive_cmds_need_lc='`$ECHO "X$archive_cmds_need_lc" | $Xsed -e "$delay_single_quote_subst"`'
+enable_shared_with_static_runtimes='`$ECHO "X$enable_shared_with_static_runtimes" | $Xsed -e "$delay_single_quote_subst"`'
+export_dynamic_flag_spec='`$ECHO "X$export_dynamic_flag_spec" | $Xsed -e "$delay_single_quote_subst"`'
+whole_archive_flag_spec='`$ECHO "X$whole_archive_flag_spec" | $Xsed -e "$delay_single_quote_subst"`'
+compiler_needs_object='`$ECHO "X$compiler_needs_object" | $Xsed -e "$delay_single_quote_subst"`'
+old_archive_from_new_cmds='`$ECHO "X$old_archive_from_new_cmds" | $Xsed -e "$delay_single_quote_subst"`'
+old_archive_from_expsyms_cmds='`$ECHO "X$old_archive_from_expsyms_cmds" | $Xsed -e "$delay_single_quote_subst"`'
+archive_cmds='`$ECHO "X$archive_cmds" | $Xsed -e "$delay_single_quote_subst"`'
+archive_expsym_cmds='`$ECHO "X$archive_expsym_cmds" | $Xsed -e "$delay_single_quote_subst"`'
+module_cmds='`$ECHO "X$module_cmds" | $Xsed -e "$delay_single_quote_subst"`'
+module_expsym_cmds='`$ECHO "X$module_expsym_cmds" | $Xsed -e "$delay_single_quote_subst"`'
+with_gnu_ld='`$ECHO "X$with_gnu_ld" | $Xsed -e "$delay_single_quote_subst"`'
+allow_undefined_flag='`$ECHO "X$allow_undefined_flag" | $Xsed -e "$delay_single_quote_subst"`'
+no_undefined_flag='`$ECHO "X$no_undefined_flag" | $Xsed -e "$delay_single_quote_subst"`'
+hardcode_libdir_flag_spec='`$ECHO "X$hardcode_libdir_flag_spec" | $Xsed -e "$delay_single_quote_subst"`'
+hardcode_libdir_flag_spec_ld='`$ECHO "X$hardcode_libdir_flag_spec_ld" | $Xsed -e "$delay_single_quote_subst"`'
+hardcode_libdir_separator='`$ECHO "X$hardcode_libdir_separator" | $Xsed -e "$delay_single_quote_subst"`'
+hardcode_direct='`$ECHO "X$hardcode_direct" | $Xsed -e "$delay_single_quote_subst"`'
+hardcode_direct_absolute='`$ECHO "X$hardcode_direct_absolute" | $Xsed -e "$delay_single_quote_subst"`'
+hardcode_minus_L='`$ECHO "X$hardcode_minus_L" | $Xsed -e "$delay_single_quote_subst"`'
+hardcode_shlibpath_var='`$ECHO "X$hardcode_shlibpath_var" | $Xsed -e "$delay_single_quote_subst"`'
+hardcode_automatic='`$ECHO "X$hardcode_automatic" | $Xsed -e "$delay_single_quote_subst"`'
+inherit_rpath='`$ECHO "X$inherit_rpath" | $Xsed -e "$delay_single_quote_subst"`'
+link_all_deplibs='`$ECHO "X$link_all_deplibs" | $Xsed -e "$delay_single_quote_subst"`'
+fix_srcfile_path='`$ECHO "X$fix_srcfile_path" | $Xsed -e "$delay_single_quote_subst"`'
+always_export_symbols='`$ECHO "X$always_export_symbols" | $Xsed -e "$delay_single_quote_subst"`'
+export_symbols_cmds='`$ECHO "X$export_symbols_cmds" | $Xsed -e "$delay_single_quote_subst"`'
+exclude_expsyms='`$ECHO "X$exclude_expsyms" | $Xsed -e "$delay_single_quote_subst"`'
+include_expsyms='`$ECHO "X$include_expsyms" | $Xsed -e "$delay_single_quote_subst"`'
+prelink_cmds='`$ECHO "X$prelink_cmds" | $Xsed -e "$delay_single_quote_subst"`'
+file_list_spec='`$ECHO "X$file_list_spec" | $Xsed -e "$delay_single_quote_subst"`'
+variables_saved_for_relink='`$ECHO "X$variables_saved_for_relink" | $Xsed -e "$delay_single_quote_subst"`'
+need_lib_prefix='`$ECHO "X$need_lib_prefix" | $Xsed -e "$delay_single_quote_subst"`'
+need_version='`$ECHO "X$need_version" | $Xsed -e "$delay_single_quote_subst"`'
+version_type='`$ECHO "X$version_type" | $Xsed -e "$delay_single_quote_subst"`'
+runpath_var='`$ECHO "X$runpath_var" | $Xsed -e "$delay_single_quote_subst"`'
+shlibpath_var='`$ECHO "X$shlibpath_var" | $Xsed -e "$delay_single_quote_subst"`'
+shlibpath_overrides_runpath='`$ECHO "X$shlibpath_overrides_runpath" | $Xsed -e "$delay_single_quote_subst"`'
+libname_spec='`$ECHO "X$libname_spec" | $Xsed -e "$delay_single_quote_subst"`'
+library_names_spec='`$ECHO "X$library_names_spec" | $Xsed -e "$delay_single_quote_subst"`'
+soname_spec='`$ECHO "X$soname_spec" | $Xsed -e "$delay_single_quote_subst"`'
+postinstall_cmds='`$ECHO "X$postinstall_cmds" | $Xsed -e "$delay_single_quote_subst"`'
+postuninstall_cmds='`$ECHO "X$postuninstall_cmds" | $Xsed -e "$delay_single_quote_subst"`'
+finish_cmds='`$ECHO "X$finish_cmds" | $Xsed -e "$delay_single_quote_subst"`'
+finish_eval='`$ECHO "X$finish_eval" | $Xsed -e "$delay_single_quote_subst"`'
+hardcode_into_libs='`$ECHO "X$hardcode_into_libs" | $Xsed -e "$delay_single_quote_subst"`'
+sys_lib_search_path_spec='`$ECHO "X$sys_lib_search_path_spec" | $Xsed -e "$delay_single_quote_subst"`'
+sys_lib_dlsearch_path_spec='`$ECHO "X$sys_lib_dlsearch_path_spec" | $Xsed -e "$delay_single_quote_subst"`'
+hardcode_action='`$ECHO "X$hardcode_action" | $Xsed -e "$delay_single_quote_subst"`'
+enable_dlopen='`$ECHO "X$enable_dlopen" | $Xsed -e "$delay_single_quote_subst"`'
+enable_dlopen_self='`$ECHO "X$enable_dlopen_self" | $Xsed -e "$delay_single_quote_subst"`'
+enable_dlopen_self_static='`$ECHO "X$enable_dlopen_self_static" | $Xsed -e "$delay_single_quote_subst"`'
+old_striplib='`$ECHO "X$old_striplib" | $Xsed -e "$delay_single_quote_subst"`'
+striplib='`$ECHO "X$striplib" | $Xsed -e "$delay_single_quote_subst"`'
+compiler_lib_search_dirs='`$ECHO "X$compiler_lib_search_dirs" | $Xsed -e "$delay_single_quote_subst"`'
+predep_objects='`$ECHO "X$predep_objects" | $Xsed -e "$delay_single_quote_subst"`'
+postdep_objects='`$ECHO "X$postdep_objects" | $Xsed -e "$delay_single_quote_subst"`'
+predeps='`$ECHO "X$predeps" | $Xsed -e "$delay_single_quote_subst"`'
+postdeps='`$ECHO "X$postdeps" | $Xsed -e "$delay_single_quote_subst"`'
+compiler_lib_search_path='`$ECHO "X$compiler_lib_search_path" | $Xsed -e "$delay_single_quote_subst"`'
+LD_CXX='`$ECHO "X$LD_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+old_archive_cmds_CXX='`$ECHO "X$old_archive_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+compiler_CXX='`$ECHO "X$compiler_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+GCC_CXX='`$ECHO "X$GCC_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+lt_prog_compiler_no_builtin_flag_CXX='`$ECHO "X$lt_prog_compiler_no_builtin_flag_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+lt_prog_compiler_wl_CXX='`$ECHO "X$lt_prog_compiler_wl_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+lt_prog_compiler_pic_CXX='`$ECHO "X$lt_prog_compiler_pic_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+lt_prog_compiler_static_CXX='`$ECHO "X$lt_prog_compiler_static_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+lt_cv_prog_compiler_c_o_CXX='`$ECHO "X$lt_cv_prog_compiler_c_o_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+archive_cmds_need_lc_CXX='`$ECHO "X$archive_cmds_need_lc_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+enable_shared_with_static_runtimes_CXX='`$ECHO "X$enable_shared_with_static_runtimes_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+export_dynamic_flag_spec_CXX='`$ECHO "X$export_dynamic_flag_spec_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+whole_archive_flag_spec_CXX='`$ECHO "X$whole_archive_flag_spec_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+compiler_needs_object_CXX='`$ECHO "X$compiler_needs_object_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+old_archive_from_new_cmds_CXX='`$ECHO "X$old_archive_from_new_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+old_archive_from_expsyms_cmds_CXX='`$ECHO "X$old_archive_from_expsyms_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+archive_cmds_CXX='`$ECHO "X$archive_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+archive_expsym_cmds_CXX='`$ECHO "X$archive_expsym_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+module_cmds_CXX='`$ECHO "X$module_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+module_expsym_cmds_CXX='`$ECHO "X$module_expsym_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+with_gnu_ld_CXX='`$ECHO "X$with_gnu_ld_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+allow_undefined_flag_CXX='`$ECHO "X$allow_undefined_flag_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+no_undefined_flag_CXX='`$ECHO "X$no_undefined_flag_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+hardcode_libdir_flag_spec_CXX='`$ECHO "X$hardcode_libdir_flag_spec_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+hardcode_libdir_flag_spec_ld_CXX='`$ECHO "X$hardcode_libdir_flag_spec_ld_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+hardcode_libdir_separator_CXX='`$ECHO "X$hardcode_libdir_separator_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+hardcode_direct_CXX='`$ECHO "X$hardcode_direct_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+hardcode_direct_absolute_CXX='`$ECHO "X$hardcode_direct_absolute_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+hardcode_minus_L_CXX='`$ECHO "X$hardcode_minus_L_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+hardcode_shlibpath_var_CXX='`$ECHO "X$hardcode_shlibpath_var_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+hardcode_automatic_CXX='`$ECHO "X$hardcode_automatic_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+inherit_rpath_CXX='`$ECHO "X$inherit_rpath_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+link_all_deplibs_CXX='`$ECHO "X$link_all_deplibs_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+fix_srcfile_path_CXX='`$ECHO "X$fix_srcfile_path_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+always_export_symbols_CXX='`$ECHO "X$always_export_symbols_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+export_symbols_cmds_CXX='`$ECHO "X$export_symbols_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+exclude_expsyms_CXX='`$ECHO "X$exclude_expsyms_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+include_expsyms_CXX='`$ECHO "X$include_expsyms_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+prelink_cmds_CXX='`$ECHO "X$prelink_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+file_list_spec_CXX='`$ECHO "X$file_list_spec_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+hardcode_action_CXX='`$ECHO "X$hardcode_action_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+compiler_lib_search_dirs_CXX='`$ECHO "X$compiler_lib_search_dirs_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+predep_objects_CXX='`$ECHO "X$predep_objects_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+postdep_objects_CXX='`$ECHO "X$postdep_objects_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+predeps_CXX='`$ECHO "X$predeps_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+postdeps_CXX='`$ECHO "X$postdeps_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+compiler_lib_search_path_CXX='`$ECHO "X$compiler_lib_search_path_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+
+LTCC='$LTCC'
+LTCFLAGS='$LTCFLAGS'
+compiler='$compiler_DEFAULT'
+
+# Quote evaled strings.
+for var in SED \
+GREP \
+EGREP \
+FGREP \
+LD \
+NM \
+LN_S \
+lt_SP2NL \
+lt_NL2SP \
+reload_flag \
+OBJDUMP \
+deplibs_check_method \
+file_magic_cmd \
+AR \
+AR_FLAGS \
+STRIP \
+RANLIB \
+CC \
+CFLAGS \
+compiler \
+lt_cv_sys_global_symbol_pipe \
+lt_cv_sys_global_symbol_to_cdecl \
+lt_cv_sys_global_symbol_to_c_name_address \
+lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \
+SHELL \
+ECHO \
+lt_prog_compiler_no_builtin_flag \
+lt_prog_compiler_wl \
+lt_prog_compiler_pic \
+lt_prog_compiler_static \
+lt_cv_prog_compiler_c_o \
+need_locks \
+DSYMUTIL \
+NMEDIT \
+LIPO \
+OTOOL \
+OTOOL64 \
+shrext_cmds \
+export_dynamic_flag_spec \
+whole_archive_flag_spec \
+compiler_needs_object \
+with_gnu_ld \
+allow_undefined_flag \
+no_undefined_flag \
+hardcode_libdir_flag_spec \
+hardcode_libdir_flag_spec_ld \
+hardcode_libdir_separator \
+fix_srcfile_path \
+exclude_expsyms \
+include_expsyms \
+file_list_spec \
+variables_saved_for_relink \
+libname_spec \
+library_names_spec \
+soname_spec \
+finish_eval \
+old_striplib \
+striplib \
+compiler_lib_search_dirs \
+predep_objects \
+postdep_objects \
+predeps \
+postdeps \
+compiler_lib_search_path \
+LD_CXX \
+compiler_CXX \
+lt_prog_compiler_no_builtin_flag_CXX \
+lt_prog_compiler_wl_CXX \
+lt_prog_compiler_pic_CXX \
+lt_prog_compiler_static_CXX \
+lt_cv_prog_compiler_c_o_CXX \
+export_dynamic_flag_spec_CXX \
+whole_archive_flag_spec_CXX \
+compiler_needs_object_CXX \
+with_gnu_ld_CXX \
+allow_undefined_flag_CXX \
+no_undefined_flag_CXX \
+hardcode_libdir_flag_spec_CXX \
+hardcode_libdir_flag_spec_ld_CXX \
+hardcode_libdir_separator_CXX \
+fix_srcfile_path_CXX \
+exclude_expsyms_CXX \
+include_expsyms_CXX \
+file_list_spec_CXX \
+compiler_lib_search_dirs_CXX \
+predep_objects_CXX \
+postdep_objects_CXX \
+predeps_CXX \
+postdeps_CXX \
+compiler_lib_search_path_CXX; do
+ case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in
+ *[\\\\\\\`\\"\\\$]*)
+ eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$sed_quote_subst\\"\\\`\\\\\\""
+ ;;
+ *)
+ eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
+ ;;
+ esac
+done
+
+# Double-quote double-evaled strings.
+for var in reload_cmds \
+old_postinstall_cmds \
+old_postuninstall_cmds \
+old_archive_cmds \
+extract_expsyms_cmds \
+old_archive_from_new_cmds \
+old_archive_from_expsyms_cmds \
+archive_cmds \
+archive_expsym_cmds \
+module_cmds \
+module_expsym_cmds \
+export_symbols_cmds \
+prelink_cmds \
+postinstall_cmds \
+postuninstall_cmds \
+finish_cmds \
+sys_lib_search_path_spec \
+sys_lib_dlsearch_path_spec \
+old_archive_cmds_CXX \
+old_archive_from_new_cmds_CXX \
+old_archive_from_expsyms_cmds_CXX \
+archive_cmds_CXX \
+archive_expsym_cmds_CXX \
+module_cmds_CXX \
+module_expsym_cmds_CXX \
+export_symbols_cmds_CXX \
+prelink_cmds_CXX; do
+ case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in
+ *[\\\\\\\`\\"\\\$]*)
+ eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\""
+ ;;
+ *)
+ eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
+ ;;
+ esac
+done
+
+# Fix-up fallback echo if it was mangled by the above quoting rules.
+case \$lt_ECHO in
+*'\\\$0 --fallback-echo"') lt_ECHO=\`\$ECHO "X\$lt_ECHO" | \$Xsed -e 's/\\\\\\\\\\\\\\\$0 --fallback-echo"\$/\$0 --fallback-echo"/'\`
+ ;;
+esac
+
+ac_aux_dir='$ac_aux_dir'
+xsi_shell='$xsi_shell'
+lt_shell_append='$lt_shell_append'
+
+# See if we are running on zsh, and set the options which allow our
+# commands through without removal of \ escapes INIT.
+if test -n "\${ZSH_VERSION+set}" ; then
+ setopt NO_GLOB_SUBST
+fi
+
+
+ PACKAGE='$PACKAGE'
+ VERSION='$VERSION'
+ TIMESTAMP='$TIMESTAMP'
+ RM='$RM'
+ ofile='$ofile'
+
+
+
+
+
+
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+
+# Handling of arguments.
+for ac_config_target in $ac_config_targets
+do
+ case $ac_config_target in
+ "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;;
+ "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;
+ "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;;
+ "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
+ "m4/Makefile") CONFIG_FILES="$CONFIG_FILES m4/Makefile" ;;
+ "al/Makefile") CONFIG_FILES="$CONFIG_FILES al/Makefile" ;;
+ "doc/Makefile") CONFIG_FILES="$CONFIG_FILES doc/Makefile" ;;
+ "xpm/Makefile") CONFIG_FILES="$CONFIG_FILES xpm/Makefile" ;;
+ "demos/Makefile") CONFIG_FILES="$CONFIG_FILES demos/Makefile" ;;
+ "grepmidi/Makefile") CONFIG_FILES="$CONFIG_FILES grepmidi/Makefile" ;;
+ "packaging/Makefile") CONFIG_FILES="$CONFIG_FILES packaging/Makefile" ;;
+ "muse/Makefile") CONFIG_FILES="$CONFIG_FILES muse/Makefile" ;;
+ "muse/widgets/Makefile") CONFIG_FILES="$CONFIG_FILES muse/widgets/Makefile" ;;
+ "muse/master/Makefile") CONFIG_FILES="$CONFIG_FILES muse/master/Makefile" ;;
+ "muse/midiedit/Makefile") CONFIG_FILES="$CONFIG_FILES muse/midiedit/Makefile" ;;
+ "muse/arranger/Makefile") CONFIG_FILES="$CONFIG_FILES muse/arranger/Makefile" ;;
+ "muse/liste/Makefile") CONFIG_FILES="$CONFIG_FILES muse/liste/Makefile" ;;
+ "muse/driver/Makefile") CONFIG_FILES="$CONFIG_FILES muse/driver/Makefile" ;;
+ "muse/waveedit/Makefile") CONFIG_FILES="$CONFIG_FILES muse/waveedit/Makefile" ;;
+ "muse/ctrl/Makefile") CONFIG_FILES="$CONFIG_FILES muse/ctrl/Makefile" ;;
+ "muse/instruments/Makefile") CONFIG_FILES="$CONFIG_FILES muse/instruments/Makefile" ;;
+ "muse/mixer/Makefile") CONFIG_FILES="$CONFIG_FILES muse/mixer/Makefile" ;;
+ "muse/cliplist/Makefile") CONFIG_FILES="$CONFIG_FILES muse/cliplist/Makefile" ;;
+ "muse/marker/Makefile") CONFIG_FILES="$CONFIG_FILES muse/marker/Makefile" ;;
+ "muse/mplugins/Makefile") CONFIG_FILES="$CONFIG_FILES muse/mplugins/Makefile" ;;
+ "muse/remote/Makefile") CONFIG_FILES="$CONFIG_FILES muse/remote/Makefile" ;;
+ "share/Makefile") CONFIG_FILES="$CONFIG_FILES share/Makefile" ;;
+ "share/drummaps/Makefile") CONFIG_FILES="$CONFIG_FILES share/drummaps/Makefile" ;;
+ "share/html/Makefile") CONFIG_FILES="$CONFIG_FILES share/html/Makefile" ;;
+ "share/locale/Makefile") CONFIG_FILES="$CONFIG_FILES share/locale/Makefile" ;;
+ "share/wallpapers/Makefile") CONFIG_FILES="$CONFIG_FILES share/wallpapers/Makefile" ;;
+ "share/instruments/Makefile") CONFIG_FILES="$CONFIG_FILES share/instruments/Makefile" ;;
+ "share/plugins/Makefile") CONFIG_FILES="$CONFIG_FILES share/plugins/Makefile" ;;
+ "share/templates/Makefile") CONFIG_FILES="$CONFIG_FILES share/templates/Makefile" ;;
+ "share/pybridge/Makefile") CONFIG_FILES="$CONFIG_FILES share/pybridge/Makefile" ;;
+ "share/scripts/Makefile") CONFIG_FILES="$CONFIG_FILES share/scripts/Makefile" ;;
+ "synti/Makefile") CONFIG_FILES="$CONFIG_FILES synti/Makefile" ;;
+ "synti/libsynti/Makefile") CONFIG_FILES="$CONFIG_FILES synti/libsynti/Makefile" ;;
+ "synti/fluidsynth/Makefile") CONFIG_FILES="$CONFIG_FILES synti/fluidsynth/Makefile" ;;
+ "synti/fluid/Makefile") CONFIG_FILES="$CONFIG_FILES synti/fluid/Makefile" ;;
+ "synti/organ/Makefile") CONFIG_FILES="$CONFIG_FILES synti/organ/Makefile" ;;
+ "synti/s1/Makefile") CONFIG_FILES="$CONFIG_FILES synti/s1/Makefile" ;;
+ "synti/vam/Makefile") CONFIG_FILES="$CONFIG_FILES synti/vam/Makefile" ;;
+ "synti/deicsonze/Makefile") CONFIG_FILES="$CONFIG_FILES synti/deicsonze/Makefile" ;;
+ "synti/simpledrums/Makefile") CONFIG_FILES="$CONFIG_FILES synti/simpledrums/Makefile" ;;
+ "lib/Makefile") CONFIG_FILES="$CONFIG_FILES lib/Makefile" ;;
+ "lib/synthi/Makefile") CONFIG_FILES="$CONFIG_FILES lib/synthi/Makefile" ;;
+ "lib/plugins/Makefile") CONFIG_FILES="$CONFIG_FILES lib/plugins/Makefile" ;;
+ "plugins/Makefile") CONFIG_FILES="$CONFIG_FILES plugins/Makefile" ;;
+ "plugins/freeverb/Makefile") CONFIG_FILES="$CONFIG_FILES plugins/freeverb/Makefile" ;;
+ "plugins/pandelay/Makefile") CONFIG_FILES="$CONFIG_FILES plugins/pandelay/Makefile" ;;
+ "plugins/doublechorus/Makefile") CONFIG_FILES="$CONFIG_FILES plugins/doublechorus/Makefile" ;;
+ "Doxyfile") CONFIG_FILES="$CONFIG_FILES Doxyfile" ;;
+ "utils/Makefile") CONFIG_FILES="$CONFIG_FILES utils/Makefile" ;;
+
+ *) as_fn_error "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
+ esac
+done
+
+
+# If the user did not use the arguments to specify the items to instantiate,
+# then the envvar interface is used. Set only those that are not.
+# We use the long form for the default assignment because of an extremely
+# bizarre bug on SunOS 4.1.3.
+if $ac_need_defaults; then
+ test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
+ test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers
+ test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands
+fi
+
+# Have a temporary directory for convenience. Make it in the build tree
+# simply because there is no reason against having it here, and in addition,
+# creating and moving files from /tmp can sometimes cause problems.
+# Hook for its removal unless debugging.
+# Note that there is a small window in which the directory will not be cleaned:
+# after its creation but before its name has been assigned to `$tmp'.
+$debug ||
+{
+ tmp=
+ trap 'exit_status=$?
+ { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status
+' 0
+ trap 'as_fn_exit 1' 1 2 13 15
+}
+# Create a (secure) tmp directory for tmp files.
+
+{
+ tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` &&
+ test -n "$tmp" && test -d "$tmp"
+} ||
+{
+ tmp=./conf$$-$RANDOM
+ (umask 077 && mkdir "$tmp")
+} || as_fn_error "cannot create a temporary directory in ." "$LINENO" 5
+
+# Set up the scripts for CONFIG_FILES section.
+# No need to generate them if there are no CONFIG_FILES.
+# This happens for instance with `./config.status config.h'.
+if test -n "$CONFIG_FILES"; then
+
+
+ac_cr=`echo X | tr X '\015'`
+# On cygwin, bash can eat \r inside `` if the user requested igncr.
+# But we know of no other shell where ac_cr would be empty at this
+# point, so we can use a bashism as a fallback.
+if test "x$ac_cr" = x; then
+ eval ac_cr=\$\'\\r\'
+fi
+ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null`
+if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then
+ ac_cs_awk_cr='\r'
+else
+ ac_cs_awk_cr=$ac_cr
+fi
+
+echo 'BEGIN {' >"$tmp/subs1.awk" &&
+_ACEOF
+
+
+{
+ echo "cat >conf$$subs.awk <<_ACEOF" &&
+ echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' &&
+ echo "_ACEOF"
+} >conf$$subs.sh ||
+ as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5
+ac_delim_num=`echo "$ac_subst_vars" | grep -c '$'`
+ac_delim='%!_!# '
+for ac_last_try in false false false false false :; do
+ . ./conf$$subs.sh ||
+ as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5
+
+ ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X`
+ if test $ac_delim_n = $ac_delim_num; then
+ break
+ elif $ac_last_try; then
+ as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5
+ else
+ ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
+ fi
+done
+rm -f conf$$subs.sh
+
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+cat >>"\$tmp/subs1.awk" <<\\_ACAWK &&
+_ACEOF
+sed -n '
+h
+s/^/S["/; s/!.*/"]=/
+p
+g
+s/^[^!]*!//
+:repl
+t repl
+s/'"$ac_delim"'$//
+t delim
+:nl
+h
+s/\(.\{148\}\)..*/\1/
+t more1
+s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/
+p
+n
+b repl
+:more1
+s/["\\]/\\&/g; s/^/"/; s/$/"\\/
+p
+g
+s/.\{148\}//
+t nl
+:delim
+h
+s/\(.\{148\}\)..*/\1/
+t more2
+s/["\\]/\\&/g; s/^/"/; s/$/"/
+p
+b
+:more2
+s/["\\]/\\&/g; s/^/"/; s/$/"\\/
+p
+g
+s/.\{148\}//
+t delim
+' <conf$$subs.awk | sed '
+/^[^""]/{
+ N
+ s/\n//
+}
+' >>$CONFIG_STATUS || ac_write_fail=1
+rm -f conf$$subs.awk
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+_ACAWK
+cat >>"\$tmp/subs1.awk" <<_ACAWK &&
+ for (key in S) S_is_set[key] = 1
+ FS = ""
+
+}
+{
+ line = $ 0
+ nfields = split(line, field, "@")
+ substed = 0
+ len = length(field[1])
+ for (i = 2; i < nfields; i++) {
+ key = field[i]
+ keylen = length(key)
+ if (S_is_set[key]) {
+ value = S[key]
+ line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3)
+ len += length(value) + length(field[++i])
+ substed = 1
+ } else
+ len += 1 + keylen
+ }
+
+ print line
+}
+
+_ACAWK
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then
+ sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g"
+else
+ cat
+fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \
+ || as_fn_error "could not setup config files machinery" "$LINENO" 5
+_ACEOF
+
+# VPATH may cause trouble with some makes, so we remove $(srcdir),
+# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and
+# trailing colons and then remove the whole line if VPATH becomes empty
+# (actually we leave an empty line to preserve line numbers).
+if test "x$srcdir" = x.; then
+ ac_vpsub='/^[ ]*VPATH[ ]*=/{
+s/:*\$(srcdir):*/:/
+s/:*\${srcdir}:*/:/
+s/:*@srcdir@:*/:/
+s/^\([^=]*=[ ]*\):*/\1/
+s/:*$//
+s/^[^=]*=[ ]*$//
+}'
+fi
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+fi # test -n "$CONFIG_FILES"
+
+# Set up the scripts for CONFIG_HEADERS section.
+# No need to generate them if there are no CONFIG_HEADERS.
+# This happens for instance with `./config.status Makefile'.
+if test -n "$CONFIG_HEADERS"; then
+cat >"$tmp/defines.awk" <<\_ACAWK ||
+BEGIN {
+_ACEOF
+
+# Transform confdefs.h into an awk script `defines.awk', embedded as
+# here-document in config.status, that substitutes the proper values into
+# config.h.in to produce config.h.
+
+# Create a delimiter string that does not exist in confdefs.h, to ease
+# handling of long lines.
+ac_delim='%!_!# '
+for ac_last_try in false false :; do
+ ac_t=`sed -n "/$ac_delim/p" confdefs.h`
+ if test -z "$ac_t"; then
+ break
+ elif $ac_last_try; then
+ as_fn_error "could not make $CONFIG_HEADERS" "$LINENO" 5
+ else
+ ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
+ fi
+done
+
+# For the awk script, D is an array of macro values keyed by name,
+# likewise P contains macro parameters if any. Preserve backslash
+# newline sequences.
+
+ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]*
+sed -n '
+s/.\{148\}/&'"$ac_delim"'/g
+t rset
+:rset
+s/^[ ]*#[ ]*define[ ][ ]*/ /
+t def
+d
+:def
+s/\\$//
+t bsnl
+s/["\\]/\\&/g
+s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\
+D["\1"]=" \3"/p
+s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p
+d
+:bsnl
+s/["\\]/\\&/g
+s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\
+D["\1"]=" \3\\\\\\n"\\/p
+t cont
+s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p
+t cont
+d
+:cont
+n
+s/.\{148\}/&'"$ac_delim"'/g
+t clear
+:clear
+s/\\$//
+t bsnlc
+s/["\\]/\\&/g; s/^/"/; s/$/"/p
+d
+:bsnlc
+s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p
+b cont
+' <confdefs.h | sed '
+s/'"$ac_delim"'/"\\\
+"/g' >>$CONFIG_STATUS || ac_write_fail=1
+
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ for (key in D) D_is_set[key] = 1
+ FS = ""
+}
+/^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ {
+ line = \$ 0
+ split(line, arg, " ")
+ if (arg[1] == "#") {
+ defundef = arg[2]
+ mac1 = arg[3]
+ } else {
+ defundef = substr(arg[1], 2)
+ mac1 = arg[2]
+ }
+ split(mac1, mac2, "(") #)
+ macro = mac2[1]
+ prefix = substr(line, 1, index(line, defundef) - 1)
+ if (D_is_set[macro]) {
+ # Preserve the white space surrounding the "#".
+ print prefix "define", macro P[macro] D[macro]
+ next
+ } else {
+ # Replace #undef with comments. This is necessary, for example,
+ # in the case of _POSIX_SOURCE, which is predefined and required
+ # on some systems where configure will not decide to define it.
+ if (defundef == "undef") {
+ print "/*", prefix defundef, macro, "*/"
+ next
+ }
+ }
+}
+{ print }
+_ACAWK
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+ as_fn_error "could not setup config headers machinery" "$LINENO" 5
+fi # test -n "$CONFIG_HEADERS"
+
+
+eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS"
+shift
+for ac_tag
+do
+ case $ac_tag in
+ :[FHLC]) ac_mode=$ac_tag; continue;;
+ esac
+ case $ac_mode$ac_tag in
+ :[FHL]*:*);;
+ :L* | :C*:*) as_fn_error "invalid tag \`$ac_tag'" "$LINENO" 5;;
+ :[FH]-) ac_tag=-:-;;
+ :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
+ esac
+ ac_save_IFS=$IFS
+ IFS=:
+ set x $ac_tag
+ IFS=$ac_save_IFS
+ shift
+ ac_file=$1
+ shift
+
+ case $ac_mode in
+ :L) ac_source=$1;;
+ :[FH])
+ ac_file_inputs=
+ for ac_f
+ do
+ case $ac_f in
+ -) ac_f="$tmp/stdin";;
+ *) # Look for the file first in the build tree, then in the source tree
+ # (if the path is not absolute). The absolute path cannot be DOS-style,
+ # because $ac_f cannot contain `:'.
+ test -f "$ac_f" ||
+ case $ac_f in
+ [\\/$]*) false;;
+ *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
+ esac ||
+ as_fn_error "cannot find input file: \`$ac_f'" "$LINENO" 5;;
+ esac
+ case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
+ as_fn_append ac_file_inputs " '$ac_f'"
+ done
+
+ # Let's still pretend it is `configure' which instantiates (i.e., don't
+ # use $as_me), people would be surprised to read:
+ # /* config.h. Generated by config.status. */
+ configure_input='Generated from '`
+ $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g'
+ `' by configure.'
+ if test x"$ac_file" != x-; then
+ configure_input="$ac_file. $configure_input"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5
+$as_echo "$as_me: creating $ac_file" >&6;}
+ fi
+ # Neutralize special characters interpreted by sed in replacement strings.
+ case $configure_input in #(
+ *\&* | *\|* | *\\* )
+ ac_sed_conf_input=`$as_echo "$configure_input" |
+ sed 's/[\\\\&|]/\\\\&/g'`;; #(
+ *) ac_sed_conf_input=$configure_input;;
+ esac
+
+ case $ac_tag in
+ *:-:* | *:-) cat >"$tmp/stdin" \
+ || as_fn_error "could not create $ac_file" "$LINENO" 5 ;;
+ esac
+ ;;
+ esac
+
+ ac_dir=`$as_dirname -- "$ac_file" ||
+$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$ac_file" : 'X\(//\)[^/]' \| \
+ X"$ac_file" : 'X\(//\)$' \| \
+ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$ac_file" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ as_dir="$ac_dir"; as_fn_mkdir_p
+ ac_builddir=.
+
+case "$ac_dir" in
+.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
+*)
+ ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
+ # A ".." for each directory in $ac_dir_suffix.
+ ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
+ case $ac_top_builddir_sub in
+ "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
+ *) ac_top_build_prefix=$ac_top_builddir_sub/ ;;
+ esac ;;
+esac
+ac_abs_top_builddir=$ac_pwd
+ac_abs_builddir=$ac_pwd$ac_dir_suffix
+# for backward compatibility:
+ac_top_builddir=$ac_top_build_prefix
+
+case $srcdir in
+ .) # We are building in place.
+ ac_srcdir=.
+ ac_top_srcdir=$ac_top_builddir_sub
+ ac_abs_top_srcdir=$ac_pwd ;;
+ [\\/]* | ?:[\\/]* ) # Absolute name.
+ ac_srcdir=$srcdir$ac_dir_suffix;
+ ac_top_srcdir=$srcdir
+ ac_abs_top_srcdir=$srcdir ;;
+ *) # Relative name.
+ ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
+ ac_top_srcdir=$ac_top_build_prefix$srcdir
+ ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
+esac
+ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
+
+
+ case $ac_mode in
+ :F)
+ #
+ # CONFIG_FILE
+ #
+
+ case $INSTALL in
+ [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
+ *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;;
+ esac
+ ac_MKDIR_P=$MKDIR_P
+ case $MKDIR_P in
+ [\\/$]* | ?:[\\/]* ) ;;
+ */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;;
+ esac
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+# If the template does not know about datarootdir, expand it.
+# FIXME: This hack should be removed a few years after 2.60.
+ac_datarootdir_hack=; ac_datarootdir_seen=
+ac_sed_dataroot='
+/datarootdir/ {
+ p
+ q
+}
+/@datadir@/p
+/@docdir@/p
+/@infodir@/p
+/@localedir@/p
+/@mandir@/p'
+case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in
+*datarootdir*) ac_datarootdir_seen=yes;;
+*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
+$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ ac_datarootdir_hack='
+ s&@datadir@&$datadir&g
+ s&@docdir@&$docdir&g
+ s&@infodir@&$infodir&g
+ s&@localedir@&$localedir&g
+ s&@mandir@&$mandir&g
+ s&\\\${datarootdir}&$datarootdir&g' ;;
+esac
+_ACEOF
+
+# Neutralize VPATH when `$srcdir' = `.'.
+# Shell code in configure.ac might set extrasub.
+# FIXME: do we really want to maintain this feature?
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ac_sed_extra="$ac_vpsub
+$extrasub
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+:t
+/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
+s|@configure_input@|$ac_sed_conf_input|;t t
+s&@top_builddir@&$ac_top_builddir_sub&;t t
+s&@top_build_prefix@&$ac_top_build_prefix&;t t
+s&@srcdir@&$ac_srcdir&;t t
+s&@abs_srcdir@&$ac_abs_srcdir&;t t
+s&@top_srcdir@&$ac_top_srcdir&;t t
+s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t
+s&@builddir@&$ac_builddir&;t t
+s&@abs_builddir@&$ac_abs_builddir&;t t
+s&@abs_top_builddir@&$ac_abs_top_builddir&;t t
+s&@INSTALL@&$ac_INSTALL&;t t
+s&@MKDIR_P@&$ac_MKDIR_P&;t t
+$ac_datarootdir_hack
+"
+eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \
+ || as_fn_error "could not create $ac_file" "$LINENO" 5
+
+test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
+ { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } &&
+ { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } &&
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
+which seems to be undefined. Please make sure it is defined." >&5
+$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
+which seems to be undefined. Please make sure it is defined." >&2;}
+
+ rm -f "$tmp/stdin"
+ case $ac_file in
+ -) cat "$tmp/out" && rm -f "$tmp/out";;
+ *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";;
+ esac \
+ || as_fn_error "could not create $ac_file" "$LINENO" 5
+ ;;
+ :H)
+ #
+ # CONFIG_HEADER
+ #
+ if test x"$ac_file" != x-; then
+ {
+ $as_echo "/* $configure_input */" \
+ && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs"
+ } >"$tmp/config.h" \
+ || as_fn_error "could not create $ac_file" "$LINENO" 5
+ if diff "$ac_file" "$tmp/config.h" >/dev/null 2>&1; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5
+$as_echo "$as_me: $ac_file is unchanged" >&6;}
+ else
+ rm -f "$ac_file"
+ mv "$tmp/config.h" "$ac_file" \
+ || as_fn_error "could not create $ac_file" "$LINENO" 5
+ fi
+ else
+ $as_echo "/* $configure_input */" \
+ && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" \
+ || as_fn_error "could not create -" "$LINENO" 5
+ fi
+# Compute "$ac_file"'s index in $config_headers.
+_am_arg="$ac_file"
+_am_stamp_count=1
+for _am_header in $config_headers :; do
+ case $_am_header in
+ $_am_arg | $_am_arg:* )
+ break ;;
+ * )
+ _am_stamp_count=`expr $_am_stamp_count + 1` ;;
+ esac
+done
+echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" ||
+$as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$_am_arg" : 'X\(//\)[^/]' \| \
+ X"$_am_arg" : 'X\(//\)$' \| \
+ X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$_am_arg" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`/stamp-h$_am_stamp_count
+ ;;
+
+ :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5
+$as_echo "$as_me: executing $ac_file commands" >&6;}
+ ;;
+ esac
+
+
+ case $ac_file$ac_mode in
+ "depfiles":C) test x"$AMDEP_TRUE" != x"" || {
+ # Autoconf 2.62 quotes --file arguments for eval, but not when files
+ # are listed without --file. Let's play safe and only enable the eval
+ # if we detect the quoting.
+ case $CONFIG_FILES in
+ *\'*) eval set x "$CONFIG_FILES" ;;
+ *) set x $CONFIG_FILES ;;
+ esac
+ shift
+ for mf
+ do
+ # Strip MF so we end up with the name of the file.
+ mf=`echo "$mf" | sed -e 's/:.*$//'`
+ # Check whether this is an Automake generated Makefile or not.
+ # We used to match only the files named `Makefile.in', but
+ # some people rename them; so instead we look at the file content.
+ # Grep'ing the first line is not enough: some people post-process
+ # each Makefile.in and add a new line on top of each file to say so.
+ # Grep'ing the whole file is not good either: AIX grep has a line
+ # limit of 2048, but all sed's we know have understand at least 4000.
+ if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then
+ dirpart=`$as_dirname -- "$mf" ||
+$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$mf" : 'X\(//\)[^/]' \| \
+ X"$mf" : 'X\(//\)$' \| \
+ X"$mf" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$mf" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ else
+ continue
+ fi
+ # Extract the definition of DEPDIR, am__include, and am__quote
+ # from the Makefile without running `make'.
+ DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
+ test -z "$DEPDIR" && continue
+ am__include=`sed -n 's/^am__include = //p' < "$mf"`
+ test -z "am__include" && continue
+ am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
+ # When using ansi2knr, U may be empty or an underscore; expand it
+ U=`sed -n 's/^U = //p' < "$mf"`
+ # Find all dependency output files, they are included files with
+ # $(DEPDIR) in their names. We invoke sed twice because it is the
+ # simplest approach to changing $(DEPDIR) to its actual value in the
+ # expansion.
+ for file in `sed -n "
+ s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
+ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
+ # Make sure the directory exists.
+ test -f "$dirpart/$file" && continue
+ fdir=`$as_dirname -- "$file" ||
+$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$file" : 'X\(//\)[^/]' \| \
+ X"$file" : 'X\(//\)$' \| \
+ X"$file" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$file" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ as_dir=$dirpart/$fdir; as_fn_mkdir_p
+ # echo "creating $dirpart/$file"
+ echo '# dummy' > "$dirpart/$file"
+ done
+ done
+}
+ ;;
+ "libtool":C)
+
+ # See if we are running on zsh, and set the options which allow our
+ # commands through without removal of \ escapes.
+ if test -n "${ZSH_VERSION+set}" ; then
+ setopt NO_GLOB_SUBST
+ fi
+
+ cfgfile="${ofile}T"
+ trap "$RM \"$cfgfile\"; exit 1" 1 2 15
+ $RM "$cfgfile"
+
+ cat <<_LT_EOF >> "$cfgfile"
+#! $SHELL
+
+# `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services.
+# Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION
+# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
+# NOTE: Changes made to this file will be lost: look at ltmain.sh.
+#
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
+# 2006, 2007, 2008 Free Software Foundation, Inc.
+# Written by Gordon Matzigkeit, 1996
+#
+# This file is part of GNU Libtool.
+#
+# GNU Libtool 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.
+#
+# As a special exception to the GNU General Public License,
+# if you distribute this file as part of a program or library that
+# is built using GNU Libtool, you may include this file under the
+# same distribution terms that you use for the rest of that program.
+#
+# GNU Libtool is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GNU Libtool; see the file COPYING. If not, a copy
+# can be downloaded from http://www.gnu.org/licenses/gpl.html, or
+# obtained by writing to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+
+
+# The names of the tagged configurations supported by this script.
+available_tags="CXX "
+
+# ### BEGIN LIBTOOL CONFIG
+
+# Which release of libtool.m4 was used?
+macro_version=$macro_version
+macro_revision=$macro_revision
+
+# Whether or not to build shared libraries.
+build_libtool_libs=$enable_shared
+
+# Whether or not to build static libraries.
+build_old_libs=$enable_static
+
+# What type of objects to build.
+pic_mode=$pic_mode
+
+# Whether or not to optimize for fast installation.
+fast_install=$enable_fast_install
+
+# The host system.
+host_alias=$host_alias
+host=$host
+host_os=$host_os
+
+# The build system.
+build_alias=$build_alias
+build=$build
+build_os=$build_os
+
+# A sed program that does not truncate output.
+SED=$lt_SED
+
+# Sed that helps us avoid accidentally triggering echo(1) options like -n.
+Xsed="\$SED -e 1s/^X//"
+
+# A grep program that handles long lines.
+GREP=$lt_GREP
+
+# An ERE matcher.
+EGREP=$lt_EGREP
+
+# A literal string matcher.
+FGREP=$lt_FGREP
+
+# A BSD- or MS-compatible name lister.
+NM=$lt_NM
+
+# Whether we need soft or hard links.
+LN_S=$lt_LN_S
+
+# What is the maximum length of a command?
+max_cmd_len=$max_cmd_len
+
+# Object file suffix (normally "o").
+objext=$ac_objext
+
+# Executable file suffix (normally "").
+exeext=$exeext
+
+# whether the shell understands "unset".
+lt_unset=$lt_unset
+
+# turn spaces into newlines.
+SP2NL=$lt_lt_SP2NL
+
+# turn newlines into spaces.
+NL2SP=$lt_lt_NL2SP
+
+# How to create reloadable object files.
+reload_flag=$lt_reload_flag
+reload_cmds=$lt_reload_cmds
+
+# An object symbol dumper.
+OBJDUMP=$lt_OBJDUMP
+
+# Method to check whether dependent libraries are shared objects.
+deplibs_check_method=$lt_deplibs_check_method
+
+# Command to use when deplibs_check_method == "file_magic".
+file_magic_cmd=$lt_file_magic_cmd
+
+# The archiver.
+AR=$lt_AR
+AR_FLAGS=$lt_AR_FLAGS
+
+# A symbol stripping program.
+STRIP=$lt_STRIP
+
+# Commands used to install an old-style archive.
+RANLIB=$lt_RANLIB
+old_postinstall_cmds=$lt_old_postinstall_cmds
+old_postuninstall_cmds=$lt_old_postuninstall_cmds
+
+# A C compiler.
+LTCC=$lt_CC
+
+# LTCC compiler flags.
+LTCFLAGS=$lt_CFLAGS
+
+# Take the output of nm and produce a listing of raw symbols and C names.
+global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe
+
+# Transform the output of nm in a proper C declaration.
+global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl
+
+# Transform the output of nm in a C name address pair.
+global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
+
+# Transform the output of nm in a C name address pair when lib prefix is needed.
+global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix
+
+# The name of the directory that contains temporary libtool files.
+objdir=$objdir
+
+# Shell to use when invoking shell scripts.
+SHELL=$lt_SHELL
+
+# An echo program that does not interpret backslashes.
+ECHO=$lt_ECHO
+
+# Used to examine libraries when file_magic_cmd begins with "file".
+MAGIC_CMD=$MAGIC_CMD
+
+# Must we lock files when doing compilation?
+need_locks=$lt_need_locks
+
+# Tool to manipulate archived DWARF debug symbol files on Mac OS X.
+DSYMUTIL=$lt_DSYMUTIL
+
+# Tool to change global to local symbols on Mac OS X.
+NMEDIT=$lt_NMEDIT
+
+# Tool to manipulate fat objects and archives on Mac OS X.
+LIPO=$lt_LIPO
+
+# ldd/readelf like tool for Mach-O binaries on Mac OS X.
+OTOOL=$lt_OTOOL
+
+# ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4.
+OTOOL64=$lt_OTOOL64
+
+# Old archive suffix (normally "a").
+libext=$libext
+
+# Shared library suffix (normally ".so").
+shrext_cmds=$lt_shrext_cmds
+
+# The commands to extract the exported symbol list from a shared archive.
+extract_expsyms_cmds=$lt_extract_expsyms_cmds
+
+# Variables whose values should be saved in libtool wrapper scripts and
+# restored at link time.
+variables_saved_for_relink=$lt_variables_saved_for_relink
+
+# Do we need the "lib" prefix for modules?
+need_lib_prefix=$need_lib_prefix
+
+# Do we need a version for libraries?
+need_version=$need_version
+
+# Library versioning type.
+version_type=$version_type
+
+# Shared library runtime path variable.
+runpath_var=$runpath_var
+
+# Shared library path variable.
+shlibpath_var=$shlibpath_var
+
+# Is shlibpath searched before the hard-coded library search path?
+shlibpath_overrides_runpath=$shlibpath_overrides_runpath
+
+# Format of library name prefix.
+libname_spec=$lt_libname_spec
+
+# List of archive names. First name is the real one, the rest are links.
+# The last name is the one that the linker finds with -lNAME
+library_names_spec=$lt_library_names_spec
+
+# The coded name of the library, if different from the real name.
+soname_spec=$lt_soname_spec
+
+# Command to use after installation of a shared archive.
+postinstall_cmds=$lt_postinstall_cmds
+
+# Command to use after uninstallation of a shared archive.
+postuninstall_cmds=$lt_postuninstall_cmds
+
+# Commands used to finish a libtool library installation in a directory.
+finish_cmds=$lt_finish_cmds
+
+# As "finish_cmds", except a single script fragment to be evaled but
+# not shown.
+finish_eval=$lt_finish_eval
+
+# Whether we should hardcode library paths into libraries.
+hardcode_into_libs=$hardcode_into_libs
+
+# Compile-time system search path for libraries.
+sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
+
+# Run-time system search path for libraries.
+sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
+
+# Whether dlopen is supported.
+dlopen_support=$enable_dlopen
+
+# Whether dlopen of programs is supported.
+dlopen_self=$enable_dlopen_self
+
+# Whether dlopen of statically linked programs is supported.
+dlopen_self_static=$enable_dlopen_self_static
+
+# Commands to strip libraries.
+old_striplib=$lt_old_striplib
+striplib=$lt_striplib
+
+
+# The linker used to build libraries.
+LD=$lt_LD
+
+# Commands used to build an old-style archive.
+old_archive_cmds=$lt_old_archive_cmds
+
+# A language specific compiler.
+CC=$lt_compiler
+
+# Is the compiler the GNU compiler?
+with_gcc=$GCC
+
+# Compiler flag to turn off builtin functions.
+no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag
+
+# How to pass a linker flag through the compiler.
+wl=$lt_lt_prog_compiler_wl
+
+# Additional compiler flags for building library objects.
+pic_flag=$lt_lt_prog_compiler_pic
+
+# Compiler flag to prevent dynamic linking.
+link_static_flag=$lt_lt_prog_compiler_static
+
+# Does compiler simultaneously support -c and -o options?
+compiler_c_o=$lt_lt_cv_prog_compiler_c_o
+
+# Whether or not to add -lc for building shared libraries.
+build_libtool_need_lc=$archive_cmds_need_lc
+
+# Whether or not to disallow shared libs when runtime libs are static.
+allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes
+
+# Compiler flag to allow reflexive dlopens.
+export_dynamic_flag_spec=$lt_export_dynamic_flag_spec
+
+# Compiler flag to generate shared objects directly from archives.
+whole_archive_flag_spec=$lt_whole_archive_flag_spec
+
+# Whether the compiler copes with passing no objects directly.
+compiler_needs_object=$lt_compiler_needs_object
+
+# Create an old-style archive from a shared archive.
+old_archive_from_new_cmds=$lt_old_archive_from_new_cmds
+
+# Create a temporary old-style archive to link instead of a shared archive.
+old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds
+
+# Commands used to build a shared archive.
+archive_cmds=$lt_archive_cmds
+archive_expsym_cmds=$lt_archive_expsym_cmds
+
+# Commands used to build a loadable module if different from building
+# a shared archive.
+module_cmds=$lt_module_cmds
+module_expsym_cmds=$lt_module_expsym_cmds
+
+# Whether we are building with GNU ld or not.
+with_gnu_ld=$lt_with_gnu_ld
+
+# Flag that allows shared libraries with undefined symbols to be built.
+allow_undefined_flag=$lt_allow_undefined_flag
+
+# Flag that enforces no undefined symbols.
+no_undefined_flag=$lt_no_undefined_flag
+
+# Flag to hardcode \$libdir into a binary during linking.
+# This must work even if \$libdir does not exist
+hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec
+
+# If ld is used when linking, flag to hardcode \$libdir into a binary
+# during linking. This must work even if \$libdir does not exist.
+hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld
+
+# Whether we need a single "-rpath" flag with a separated argument.
+hardcode_libdir_separator=$lt_hardcode_libdir_separator
+
+# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes
+# DIR into the resulting binary.
+hardcode_direct=$hardcode_direct
+
+# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes
+# DIR into the resulting binary and the resulting library dependency is
+# "absolute",i.e impossible to change by setting \${shlibpath_var} if the
+# library is relocated.
+hardcode_direct_absolute=$hardcode_direct_absolute
+
+# Set to "yes" if using the -LDIR flag during linking hardcodes DIR
+# into the resulting binary.
+hardcode_minus_L=$hardcode_minus_L
+
+# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR
+# into the resulting binary.
+hardcode_shlibpath_var=$hardcode_shlibpath_var
+
+# Set to "yes" if building a shared library automatically hardcodes DIR
+# into the library and all subsequent libraries and executables linked
+# against it.
+hardcode_automatic=$hardcode_automatic
+
+# Set to yes if linker adds runtime paths of dependent libraries
+# to runtime path list.
+inherit_rpath=$inherit_rpath
+
+# Whether libtool must link a program against all its dependency libraries.
+link_all_deplibs=$link_all_deplibs
+
+# Fix the shell variable \$srcfile for the compiler.
+fix_srcfile_path=$lt_fix_srcfile_path
+
+# Set to "yes" if exported symbols are required.
+always_export_symbols=$always_export_symbols
+
+# The commands to list exported symbols.
+export_symbols_cmds=$lt_export_symbols_cmds
+
+# Symbols that should not be listed in the preloaded symbols.
+exclude_expsyms=$lt_exclude_expsyms
+
+# Symbols that must always be exported.
+include_expsyms=$lt_include_expsyms
+
+# Commands necessary for linking programs (against libraries) with templates.
+prelink_cmds=$lt_prelink_cmds
+
+# Specify filename containing input files.
+file_list_spec=$lt_file_list_spec
+
+# How to hardcode a shared library path into an executable.
+hardcode_action=$hardcode_action
+
+# The directories searched by this compiler when creating a shared library.
+compiler_lib_search_dirs=$lt_compiler_lib_search_dirs
+
+# Dependencies to place before and after the objects being linked to
+# create a shared library.
+predep_objects=$lt_predep_objects
+postdep_objects=$lt_postdep_objects
+predeps=$lt_predeps
+postdeps=$lt_postdeps
+
+# The library search path used internally by the compiler when linking
+# a shared library.
+compiler_lib_search_path=$lt_compiler_lib_search_path
+
+# ### END LIBTOOL CONFIG
+
+_LT_EOF
+
+ case $host_os in
+ aix3*)
+ cat <<\_LT_EOF >> "$cfgfile"
+# AIX sometimes has problems with the GCC collect2 program. For some
+# reason, if we set the COLLECT_NAMES environment variable, the problems
+# vanish in a puff of smoke.
+if test "X${COLLECT_NAMES+set}" != Xset; then
+ COLLECT_NAMES=
+ export COLLECT_NAMES
+fi
+_LT_EOF
+ ;;
+ esac
+
+
+ltmain="$ac_aux_dir/ltmain.sh"
+
+
+ # We use sed instead of cat because bash on DJGPP gets confused if
+ # if finds mixed CR/LF and LF-only lines. Since sed operates in
+ # text mode, it properly converts lines to CR/LF. This bash problem
+ # is reportedly fixed, but why not run on old versions too?
+ sed '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \
+ || (rm -f "$cfgfile"; exit 1)
+
+ case $xsi_shell in
+ yes)
+ cat << \_LT_EOF >> "$cfgfile"
+
+# func_dirname file append nondir_replacement
+# Compute the dirname of FILE. If nonempty, add APPEND to the result,
+# otherwise set result to NONDIR_REPLACEMENT.
+func_dirname ()
+{
+ case ${1} in
+ */*) func_dirname_result="${1%/*}${2}" ;;
+ * ) func_dirname_result="${3}" ;;
+ esac
+}
+
+# func_basename file
+func_basename ()
+{
+ func_basename_result="${1##*/}"
+}
+
+# func_dirname_and_basename file append nondir_replacement
+# perform func_basename and func_dirname in a single function
+# call:
+# dirname: Compute the dirname of FILE. If nonempty,
+# add APPEND to the result, otherwise set result
+# to NONDIR_REPLACEMENT.
+# value returned in "$func_dirname_result"
+# basename: Compute filename of FILE.
+# value retuned in "$func_basename_result"
+# Implementation must be kept synchronized with func_dirname
+# and func_basename. For efficiency, we do not delegate to
+# those functions but instead duplicate the functionality here.
+func_dirname_and_basename ()
+{
+ case ${1} in
+ */*) func_dirname_result="${1%/*}${2}" ;;
+ * ) func_dirname_result="${3}" ;;
+ esac
+ func_basename_result="${1##*/}"
+}
+
+# func_stripname prefix suffix name
+# strip PREFIX and SUFFIX off of NAME.
+# PREFIX and SUFFIX must not contain globbing or regex special
+# characters, hashes, percent signs, but SUFFIX may contain a leading
+# dot (in which case that matches only a dot).
+func_stripname ()
+{
+ # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are
+ # positional parameters, so assign one to ordinary parameter first.
+ func_stripname_result=${3}
+ func_stripname_result=${func_stripname_result#"${1}"}
+ func_stripname_result=${func_stripname_result%"${2}"}
+}
+
+# func_opt_split
+func_opt_split ()
+{
+ func_opt_split_opt=${1%%=*}
+ func_opt_split_arg=${1#*=}
+}
+
+# func_lo2o object
+func_lo2o ()
+{
+ case ${1} in
+ *.lo) func_lo2o_result=${1%.lo}.${objext} ;;
+ *) func_lo2o_result=${1} ;;
+ esac
+}
+
+# func_xform libobj-or-source
+func_xform ()
+{
+ func_xform_result=${1%.*}.lo
+}
+
+# func_arith arithmetic-term...
+func_arith ()
+{
+ func_arith_result=$(( $* ))
+}
+
+# func_len string
+# STRING may not start with a hyphen.
+func_len ()
+{
+ func_len_result=${#1}
+}
+
+_LT_EOF
+ ;;
+ *) # Bourne compatible functions.
+ cat << \_LT_EOF >> "$cfgfile"
+
+# func_dirname file append nondir_replacement
+# Compute the dirname of FILE. If nonempty, add APPEND to the result,
+# otherwise set result to NONDIR_REPLACEMENT.
+func_dirname ()
+{
+ # Extract subdirectory from the argument.
+ func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"`
+ if test "X$func_dirname_result" = "X${1}"; then
+ func_dirname_result="${3}"
+ else
+ func_dirname_result="$func_dirname_result${2}"
+ fi
+}
+
+# func_basename file
+func_basename ()
+{
+ func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"`
+}
+
+
+# func_stripname prefix suffix name
+# strip PREFIX and SUFFIX off of NAME.
+# PREFIX and SUFFIX must not contain globbing or regex special
+# characters, hashes, percent signs, but SUFFIX may contain a leading
+# dot (in which case that matches only a dot).
+# func_strip_suffix prefix name
+func_stripname ()
+{
+ case ${2} in
+ .*) func_stripname_result=`$ECHO "X${3}" \
+ | $Xsed -e "s%^${1}%%" -e "s%\\\\${2}\$%%"`;;
+ *) func_stripname_result=`$ECHO "X${3}" \
+ | $Xsed -e "s%^${1}%%" -e "s%${2}\$%%"`;;
+ esac
+}
+
+# sed scripts:
+my_sed_long_opt='1s/^\(-[^=]*\)=.*/\1/;q'
+my_sed_long_arg='1s/^-[^=]*=//'
+
+# func_opt_split
+func_opt_split ()
+{
+ func_opt_split_opt=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_opt"`
+ func_opt_split_arg=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_arg"`
+}
+
+# func_lo2o object
+func_lo2o ()
+{
+ func_lo2o_result=`$ECHO "X${1}" | $Xsed -e "$lo2o"`
+}
+
+# func_xform libobj-or-source
+func_xform ()
+{
+ func_xform_result=`$ECHO "X${1}" | $Xsed -e 's/\.[^.]*$/.lo/'`
+}
+
+# func_arith arithmetic-term...
+func_arith ()
+{
+ func_arith_result=`expr "$@"`
+}
+
+# func_len string
+# STRING may not start with a hyphen.
+func_len ()
+{
+ func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len`
+}
+
+_LT_EOF
+esac
+
+case $lt_shell_append in
+ yes)
+ cat << \_LT_EOF >> "$cfgfile"
+
+# func_append var value
+# Append VALUE to the end of shell variable VAR.
+func_append ()
+{
+ eval "$1+=\$2"
+}
+_LT_EOF
+ ;;
+ *)
+ cat << \_LT_EOF >> "$cfgfile"
+
+# func_append var value
+# Append VALUE to the end of shell variable VAR.
+func_append ()
+{
+ eval "$1=\$$1\$2"
+}
+
+_LT_EOF
+ ;;
+ esac
+
+
+ sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \
+ || (rm -f "$cfgfile"; exit 1)
+
+ mv -f "$cfgfile" "$ofile" ||
+ (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
+ chmod +x "$ofile"
+
+
+ cat <<_LT_EOF >> "$ofile"
+
+# ### BEGIN LIBTOOL TAG CONFIG: CXX
+
+# The linker used to build libraries.
+LD=$lt_LD_CXX
+
+# Commands used to build an old-style archive.
+old_archive_cmds=$lt_old_archive_cmds_CXX
+
+# A language specific compiler.
+CC=$lt_compiler_CXX
+
+# Is the compiler the GNU compiler?
+with_gcc=$GCC_CXX
+
+# Compiler flag to turn off builtin functions.
+no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_CXX
+
+# How to pass a linker flag through the compiler.
+wl=$lt_lt_prog_compiler_wl_CXX
+
+# Additional compiler flags for building library objects.
+pic_flag=$lt_lt_prog_compiler_pic_CXX
+
+# Compiler flag to prevent dynamic linking.
+link_static_flag=$lt_lt_prog_compiler_static_CXX
+
+# Does compiler simultaneously support -c and -o options?
+compiler_c_o=$lt_lt_cv_prog_compiler_c_o_CXX
+
+# Whether or not to add -lc for building shared libraries.
+build_libtool_need_lc=$archive_cmds_need_lc_CXX
+
+# Whether or not to disallow shared libs when runtime libs are static.
+allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_CXX
+
+# Compiler flag to allow reflexive dlopens.
+export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_CXX
+
+# Compiler flag to generate shared objects directly from archives.
+whole_archive_flag_spec=$lt_whole_archive_flag_spec_CXX
+
+# Whether the compiler copes with passing no objects directly.
+compiler_needs_object=$lt_compiler_needs_object_CXX
+
+# Create an old-style archive from a shared archive.
+old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_CXX
+
+# Create a temporary old-style archive to link instead of a shared archive.
+old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_CXX
+
+# Commands used to build a shared archive.
+archive_cmds=$lt_archive_cmds_CXX
+archive_expsym_cmds=$lt_archive_expsym_cmds_CXX
+
+# Commands used to build a loadable module if different from building
+# a shared archive.
+module_cmds=$lt_module_cmds_CXX
+module_expsym_cmds=$lt_module_expsym_cmds_CXX
+
+# Whether we are building with GNU ld or not.
+with_gnu_ld=$lt_with_gnu_ld_CXX
+
+# Flag that allows shared libraries with undefined symbols to be built.
+allow_undefined_flag=$lt_allow_undefined_flag_CXX
+
+# Flag that enforces no undefined symbols.
+no_undefined_flag=$lt_no_undefined_flag_CXX
+
+# Flag to hardcode \$libdir into a binary during linking.
+# This must work even if \$libdir does not exist
+hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_CXX
+
+# If ld is used when linking, flag to hardcode \$libdir into a binary
+# during linking. This must work even if \$libdir does not exist.
+hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_CXX
+
+# Whether we need a single "-rpath" flag with a separated argument.
+hardcode_libdir_separator=$lt_hardcode_libdir_separator_CXX
+
+# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes
+# DIR into the resulting binary.
+hardcode_direct=$hardcode_direct_CXX
+
+# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes
+# DIR into the resulting binary and the resulting library dependency is
+# "absolute",i.e impossible to change by setting \${shlibpath_var} if the
+# library is relocated.
+hardcode_direct_absolute=$hardcode_direct_absolute_CXX
+
+# Set to "yes" if using the -LDIR flag during linking hardcodes DIR
+# into the resulting binary.
+hardcode_minus_L=$hardcode_minus_L_CXX
+
+# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR
+# into the resulting binary.
+hardcode_shlibpath_var=$hardcode_shlibpath_var_CXX
+
+# Set to "yes" if building a shared library automatically hardcodes DIR
+# into the library and all subsequent libraries and executables linked
+# against it.
+hardcode_automatic=$hardcode_automatic_CXX
+
+# Set to yes if linker adds runtime paths of dependent libraries
+# to runtime path list.
+inherit_rpath=$inherit_rpath_CXX
+
+# Whether libtool must link a program against all its dependency libraries.
+link_all_deplibs=$link_all_deplibs_CXX
+
+# Fix the shell variable \$srcfile for the compiler.
+fix_srcfile_path=$lt_fix_srcfile_path_CXX
+
+# Set to "yes" if exported symbols are required.
+always_export_symbols=$always_export_symbols_CXX
+
+# The commands to list exported symbols.
+export_symbols_cmds=$lt_export_symbols_cmds_CXX
+
+# Symbols that should not be listed in the preloaded symbols.
+exclude_expsyms=$lt_exclude_expsyms_CXX
+
+# Symbols that must always be exported.
+include_expsyms=$lt_include_expsyms_CXX
+
+# Commands necessary for linking programs (against libraries) with templates.
+prelink_cmds=$lt_prelink_cmds_CXX
+
+# Specify filename containing input files.
+file_list_spec=$lt_file_list_spec_CXX
+
+# How to hardcode a shared library path into an executable.
+hardcode_action=$hardcode_action_CXX
+
+# The directories searched by this compiler when creating a shared library.
+compiler_lib_search_dirs=$lt_compiler_lib_search_dirs_CXX
+
+# Dependencies to place before and after the objects being linked to
+# create a shared library.
+predep_objects=$lt_predep_objects_CXX
+postdep_objects=$lt_postdep_objects_CXX
+predeps=$lt_predeps_CXX
+postdeps=$lt_postdeps_CXX
+
+# The library search path used internally by the compiler when linking
+# a shared library.
+compiler_lib_search_path=$lt_compiler_lib_search_path_CXX
+
+# ### END LIBTOOL TAG CONFIG: CXX
+_LT_EOF
+
+ ;;
+
+ esac
+done # for ac_tag
+
+
+as_fn_exit 0
+_ACEOF
+ac_clean_files=$ac_clean_files_save
+
+test $ac_write_fail = 0 ||
+ as_fn_error "write failure creating $CONFIG_STATUS" "$LINENO" 5
+
+
+# configure is writing to config.log, and then calls config.status.
+# config.status does its own redirection, appending to config.log.
+# Unfortunately, on DOS this fails, as config.log is still kept open
+# by configure, so config.status won't be able to write to it; its
+# output is simply discarded. So we exec the FD to /dev/null,
+# effectively closing config.log, so it can be properly (re)opened and
+# appended to by config.status. When coming back to configure, we
+# need to make the FD available again.
+if test "$no_create" != yes; then
+ ac_cs_success=:
+ ac_config_status_args=
+ test "$silent" = yes &&
+ ac_config_status_args="$ac_config_status_args --quiet"
+ exec 5>/dev/null
+ $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false
+ exec 5>>config.log
+ # Use ||, not &&, to avoid exiting from the if with $? = 1, which
+ # would make configure fail if this is the last instruction.
+ $ac_cs_success || as_fn_exit $?
+fi
+if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
+$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
+fi
+
+
+######## Show a configuration report ########
+if test -n "$JADE"; then
+ jade_report="$JADE";
+else
+ jade_report="not present"
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}:
+ QTDIR $QTDIR
+ QTDIR_INC $QTDIR_INC
+ QTDIR_BIN $QTDIR_BIN
+ QT_LIBS $QT_LIBS
+
+ MusE configured
+
+ LASH support: $LASH_FOUND
+ OSC support: $OSC
+ DSSI support: $DSSI
+ FluidSynth: $muse_enable_fluidlib
+
+ jade: $jade_report
+ doxygen: $DOXYGEN
+ graphviz: $DOT
+ perl: $PERL
+ treeviews in doxygen
+ html output: $report_doxy_treeview
+
+ C++ compiler: $CXX
+ optimizing: $report_optimise
+ debug: $report_debug
+ optimise for arch: $report_march
+ SSE optimizations $report_sse
+ python bindings: $enable_python
+
+ installation prefix: $prefix
+
+ Deprecated:
+ ---------------------------------------------------
+ using rtcap: $report_rtcap
+ setuid root install: $SUIDINSTALL
+ setuid root build: $SUIDBUILD
+ VST/win support: $VST
+
+" >&5
+$as_echo "$as_me:
+ QTDIR $QTDIR
+ QTDIR_INC $QTDIR_INC
+ QTDIR_BIN $QTDIR_BIN
+ QT_LIBS $QT_LIBS
+
+ MusE configured
+
+ LASH support: $LASH_FOUND
+ OSC support: $OSC
+ DSSI support: $DSSI
+ FluidSynth: $muse_enable_fluidlib
+
+ jade: $jade_report
+ doxygen: $DOXYGEN
+ graphviz: $DOT
+ perl: $PERL
+ treeviews in doxygen
+ html output: $report_doxy_treeview
+
+ C++ compiler: $CXX
+ optimizing: $report_optimise
+ debug: $report_debug
+ optimise for arch: $report_march
+ SSE optimizations $report_sse
+ python bindings: $enable_python
+
+ installation prefix: $prefix
+
+ Deprecated:
+ ---------------------------------------------------
+ using rtcap: $report_rtcap
+ setuid root install: $SUIDINSTALL
+ setuid root build: $SUIDBUILD
+ VST/win support: $VST
+
+" >&6;}
+
diff --git a/muse2/autom4te.cache/output.2 b/muse2/autom4te.cache/output.2
new file mode 100644
index 00000000..f9b346c9
--- /dev/null
+++ b/muse2/autom4te.cache/output.2
@@ -0,0 +1,20639 @@
+@%:@! /bin/sh
+@%:@ Guess values for system-dependent variables and create Makefiles.
+@%:@ Generated by GNU Autoconf 2.65 for MusE 1.1.
+@%:@
+@%:@
+@%:@ Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
+@%:@ 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
+@%:@ Inc.
+@%:@
+@%:@
+@%:@ This configure script is free software; the Free Software Foundation
+@%:@ gives unlimited permission to copy, distribute and modify it.
+## -------------------- ##
+## M4sh Initialization. ##
+## -------------------- ##
+
+# Be more Bourne compatible
+DUALCASE=1; export DUALCASE # for MKS sh
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
+ emulate sh
+ NULLCMD=:
+ # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
+ # is contrary to our usage. Disable this feature.
+ alias -g '${1+"$@"}'='"$@"'
+ setopt NO_GLOB_SUBST
+else
+ case `(set -o) 2>/dev/null` in @%:@(
+ *posix*) :
+ set -o posix ;; @%:@(
+ *) :
+ ;;
+esac
+fi
+
+
+as_nl='
+'
+export as_nl
+# Printing a long string crashes Solaris 7 /usr/bin/printf.
+as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
+# Prefer a ksh shell builtin over an external printf program on Solaris,
+# but without wasting forks for bash or zsh.
+if test -z "$BASH_VERSION$ZSH_VERSION" \
+ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
+ as_echo='print -r --'
+ as_echo_n='print -rn --'
+elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
+ as_echo='printf %s\n'
+ as_echo_n='printf %s'
+else
+ if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
+ as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
+ as_echo_n='/usr/ucb/echo -n'
+ else
+ as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
+ as_echo_n_body='eval
+ arg=$1;
+ case $arg in @%:@(
+ *"$as_nl"*)
+ expr "X$arg" : "X\\(.*\\)$as_nl";
+ arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
+ esac;
+ expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
+ '
+ export as_echo_n_body
+ as_echo_n='sh -c $as_echo_n_body as_echo'
+ fi
+ export as_echo_body
+ as_echo='sh -c $as_echo_body as_echo'
+fi
+
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+ PATH_SEPARATOR=:
+ (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
+ (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
+ PATH_SEPARATOR=';'
+ }
+fi
+
+
+# IFS
+# We need space, tab and new line, in precisely that order. Quoting is
+# there to prevent editors from complaining about space-tab.
+# (If _AS_PATH_WALK were called with IFS unset, it would disable word
+# splitting by setting IFS to empty value.)
+IFS=" "" $as_nl"
+
+# Find who we are. Look in the path if we contain no directory separator.
+case $0 in @%:@((
+ *[\\/]* ) as_myself=$0 ;;
+ *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+# We did not find ourselves, most probably we were run as `sh COMMAND'
+# in which case we are not to be found in the path.
+if test "x$as_myself" = x; then
+ as_myself=$0
+fi
+if test ! -f "$as_myself"; then
+ $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
+ exit 1
+fi
+
+# Unset variables that we do not need and which cause bugs (e.g. in
+# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1"
+# suppresses any "Segmentation fault" message there. '((' could
+# trigger a bug in pdksh 5.2.14.
+for as_var in BASH_ENV ENV MAIL MAILPATH
+do eval test x\${$as_var+set} = xset \
+ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
+done
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# NLS nuisances.
+LC_ALL=C
+export LC_ALL
+LANGUAGE=C
+export LANGUAGE
+
+# CDPATH.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+if test "x$CONFIG_SHELL" = x; then
+ as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then :
+ emulate sh
+ NULLCMD=:
+ # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which
+ # is contrary to our usage. Disable this feature.
+ alias -g '\${1+\"\$@\"}'='\"\$@\"'
+ setopt NO_GLOB_SUBST
+else
+ case \`(set -o) 2>/dev/null\` in @%:@(
+ *posix*) :
+ set -o posix ;; @%:@(
+ *) :
+ ;;
+esac
+fi
+"
+ as_required="as_fn_return () { (exit \$1); }
+as_fn_success () { as_fn_return 0; }
+as_fn_failure () { as_fn_return 1; }
+as_fn_ret_success () { return 0; }
+as_fn_ret_failure () { return 1; }
+
+exitcode=0
+as_fn_success || { exitcode=1; echo as_fn_success failed.; }
+as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; }
+as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; }
+as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; }
+if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then :
+
+else
+ exitcode=1; echo positional parameters were not saved.
+fi
+test x\$exitcode = x0 || exit 1"
+ as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO
+ as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
+ eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
+ test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1
+test \$(( 1 + 1 )) = 2 || exit 1"
+ if (eval "$as_required") 2>/dev/null; then :
+ as_have_required=yes
+else
+ as_have_required=no
+fi
+ if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then :
+
+else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+as_found=false
+for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ as_found=:
+ case $as_dir in @%:@(
+ /*)
+ for as_base in sh bash ksh sh5; do
+ # Try only shells that exist, to save several forks.
+ as_shell=$as_dir/$as_base
+ if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
+ { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then :
+ CONFIG_SHELL=$as_shell as_have_required=yes
+ if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then :
+ break 2
+fi
+fi
+ done;;
+ esac
+ as_found=false
+done
+$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } &&
+ { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then :
+ CONFIG_SHELL=$SHELL as_have_required=yes
+fi; }
+IFS=$as_save_IFS
+
+
+ if test "x$CONFIG_SHELL" != x; then :
+ # We cannot yet assume a decent shell, so we have to provide a
+ # neutralization value for shells without unset; and this also
+ # works around shells that cannot unset nonexistent variables.
+ BASH_ENV=/dev/null
+ ENV=/dev/null
+ (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
+ export CONFIG_SHELL
+ exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"}
+fi
+
+ if test x$as_have_required = xno; then :
+ $as_echo "$0: This script requires a shell more modern than all"
+ $as_echo "$0: the shells that I found on your system."
+ if test x${ZSH_VERSION+set} = xset ; then
+ $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should"
+ $as_echo "$0: be upgraded to zsh 4.3.4 or later."
+ else
+ $as_echo "$0: Please tell bug-autoconf@gnu.org about your system,
+$0: including any error possibly output before this
+$0: message. Then install a modern shell, or manually run
+$0: the script under such a shell if you do have one."
+ fi
+ exit 1
+fi
+fi
+fi
+SHELL=${CONFIG_SHELL-/bin/sh}
+export SHELL
+# Unset more variables known to interfere with behavior of common tools.
+CLICOLOR_FORCE= GREP_OPTIONS=
+unset CLICOLOR_FORCE GREP_OPTIONS
+
+## --------------------- ##
+## M4sh Shell Functions. ##
+## --------------------- ##
+@%:@ as_fn_unset VAR
+@%:@ ---------------
+@%:@ Portably unset VAR.
+as_fn_unset ()
+{
+ { eval $1=; unset $1;}
+}
+as_unset=as_fn_unset
+
+@%:@ as_fn_set_status STATUS
+@%:@ -----------------------
+@%:@ Set @S|@? to STATUS, without forking.
+as_fn_set_status ()
+{
+ return $1
+} @%:@ as_fn_set_status
+
+@%:@ as_fn_exit STATUS
+@%:@ -----------------
+@%:@ Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
+as_fn_exit ()
+{
+ set +e
+ as_fn_set_status $1
+ exit $1
+} @%:@ as_fn_exit
+
+@%:@ as_fn_mkdir_p
+@%:@ -------------
+@%:@ Create "@S|@as_dir" as a directory, including parents if necessary.
+as_fn_mkdir_p ()
+{
+
+ case $as_dir in #(
+ -*) as_dir=./$as_dir;;
+ esac
+ test -d "$as_dir" || eval $as_mkdir_p || {
+ as_dirs=
+ while :; do
+ case $as_dir in #(
+ *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
+ *) as_qdir=$as_dir;;
+ esac
+ as_dirs="'$as_qdir' $as_dirs"
+ as_dir=`$as_dirname -- "$as_dir" ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$as_dir" : 'X\(//\)[^/]' \| \
+ X"$as_dir" : 'X\(//\)$' \| \
+ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$as_dir" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ test -d "$as_dir" && break
+ done
+ test -z "$as_dirs" || eval "mkdir $as_dirs"
+ } || test -d "$as_dir" || as_fn_error "cannot create directory $as_dir"
+
+
+} @%:@ as_fn_mkdir_p
+@%:@ as_fn_append VAR VALUE
+@%:@ ----------------------
+@%:@ Append the text in VALUE to the end of the definition contained in VAR. Take
+@%:@ advantage of any shell optimizations that allow amortized linear growth over
+@%:@ repeated appends, instead of the typical quadratic growth present in naive
+@%:@ implementations.
+if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
+ eval 'as_fn_append ()
+ {
+ eval $1+=\$2
+ }'
+else
+ as_fn_append ()
+ {
+ eval $1=\$$1\$2
+ }
+fi # as_fn_append
+
+@%:@ as_fn_arith ARG...
+@%:@ ------------------
+@%:@ Perform arithmetic evaluation on the ARGs, and store the result in the
+@%:@ global @S|@as_val. Take advantage of shells that can avoid forks. The arguments
+@%:@ must be portable across @S|@(()) and expr.
+if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
+ eval 'as_fn_arith ()
+ {
+ as_val=$(( $* ))
+ }'
+else
+ as_fn_arith ()
+ {
+ as_val=`expr "$@" || test $? -eq 1`
+ }
+fi # as_fn_arith
+
+
+@%:@ as_fn_error ERROR [LINENO LOG_FD]
+@%:@ ---------------------------------
+@%:@ Output "`basename @S|@0`: error: ERROR" to stderr. If LINENO and LOG_FD are
+@%:@ provided, also output the error to LOG_FD, referencing LINENO. Then exit the
+@%:@ script with status @S|@?, using 1 if that was 0.
+as_fn_error ()
+{
+ as_status=$?; test $as_status -eq 0 && as_status=1
+ if test "$3"; then
+ as_lineno=${as_lineno-"$2"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ $as_echo "$as_me:${as_lineno-$LINENO}: error: $1" >&$3
+ fi
+ $as_echo "$as_me: error: $1" >&2
+ as_fn_exit $as_status
+} @%:@ as_fn_error
+
+if expr a : '\(a\)' >/dev/null 2>&1 &&
+ test "X`expr 00001 : '.*\(...\)'`" = X001; then
+ as_expr=expr
+else
+ as_expr=false
+fi
+
+if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
+ as_basename=basename
+else
+ as_basename=false
+fi
+
+if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
+ as_dirname=dirname
+else
+ as_dirname=false
+fi
+
+as_me=`$as_basename -- "$0" ||
+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+ X"$0" : 'X\(//\)$' \| \
+ X"$0" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X/"$0" |
+ sed '/^.*\/\([^/][^/]*\)\/*$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits
+
+
+ as_lineno_1=$LINENO as_lineno_1a=$LINENO
+ as_lineno_2=$LINENO as_lineno_2a=$LINENO
+ eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" &&
+ test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || {
+ # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-)
+ sed -n '
+ p
+ /[$]LINENO/=
+ ' <$as_myself |
+ sed '
+ s/[$]LINENO.*/&-/
+ t lineno
+ b
+ :lineno
+ N
+ :loop
+ s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
+ t loop
+ s/-\n.*//
+ ' >$as_me.lineno &&
+ chmod +x "$as_me.lineno" ||
+ { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
+
+ # Don't try to exec as it changes $[0], causing all sort of problems
+ # (the dirname of $[0] is not the place where we might find the
+ # original and so on. Autoconf is especially sensitive to this).
+ . "./$as_me.lineno"
+ # Exit status is that of the last command.
+ exit
+}
+
+ECHO_C= ECHO_N= ECHO_T=
+case `echo -n x` in @%:@(((((
+-n*)
+ case `echo 'xy\c'` in
+ *c*) ECHO_T=' ';; # ECHO_T is single tab character.
+ xy) ECHO_C='\c';;
+ *) echo `echo ksh88 bug on AIX 6.1` > /dev/null
+ ECHO_T=' ';;
+ esac;;
+*)
+ ECHO_N='-n';;
+esac
+
+rm -f conf$$ conf$$.exe conf$$.file
+if test -d conf$$.dir; then
+ rm -f conf$$.dir/conf$$.file
+else
+ rm -f conf$$.dir
+ mkdir conf$$.dir 2>/dev/null
+fi
+if (echo >conf$$.file) 2>/dev/null; then
+ if ln -s conf$$.file conf$$ 2>/dev/null; then
+ as_ln_s='ln -s'
+ # ... but there are two gotchas:
+ # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
+ # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
+ # In both cases, we have to default to `cp -p'.
+ ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
+ as_ln_s='cp -p'
+ elif ln conf$$.file conf$$ 2>/dev/null; then
+ as_ln_s=ln
+ else
+ as_ln_s='cp -p'
+ fi
+else
+ as_ln_s='cp -p'
+fi
+rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
+rmdir conf$$.dir 2>/dev/null
+
+if mkdir -p . 2>/dev/null; then
+ as_mkdir_p='mkdir -p "$as_dir"'
+else
+ test -d ./-p && rmdir ./-p
+ as_mkdir_p=false
+fi
+
+if test -x / >/dev/null 2>&1; then
+ as_test_x='test -x'
+else
+ if ls -dL / >/dev/null 2>&1; then
+ as_ls_L_option=L
+ else
+ as_ls_L_option=
+ fi
+ as_test_x='
+ eval sh -c '\''
+ if test -d "$1"; then
+ test -d "$1/.";
+ else
+ case $1 in @%:@(
+ -*)set "./$1";;
+ esac;
+ case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in @%:@((
+ ???[sx]*):;;*)false;;esac;fi
+ '\'' sh
+ '
+fi
+as_executable_p=$as_test_x
+
+# Sed expression to map a string onto a valid CPP name.
+as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
+
+# Sed expression to map a string onto a valid variable name.
+as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
+
+
+
+# Check that we are running under the correct shell.
+SHELL=${CONFIG_SHELL-/bin/sh}
+
+case X$lt_ECHO in
+X*--fallback-echo)
+ # Remove one level of quotation (which was required for Make).
+ ECHO=`echo "$lt_ECHO" | sed 's,\\\\\$\\$0,'$0','`
+ ;;
+esac
+
+ECHO=${lt_ECHO-echo}
+if test "X$1" = X--no-reexec; then
+ # Discard the --no-reexec flag, and continue.
+ shift
+elif test "X$1" = X--fallback-echo; then
+ # Avoid inline document here, it may be left over
+ :
+elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' ; then
+ # Yippee, $ECHO works!
+ :
+else
+ # Restart under the correct shell.
+ exec $SHELL "$0" --no-reexec ${1+"$@"}
+fi
+
+if test "X$1" = X--fallback-echo; then
+ # used as fallback echo
+ shift
+ cat <<_LT_EOF
+$*
+_LT_EOF
+ exit 0
+fi
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+if test -z "$lt_ECHO"; then
+ if test "X${echo_test_string+set}" != Xset; then
+ # find a string as large as possible, as long as the shell can cope with it
+ for cmd in 'sed 50q "$0"' 'sed 20q "$0"' 'sed 10q "$0"' 'sed 2q "$0"' 'echo test'; do
+ # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ...
+ if { echo_test_string=`eval $cmd`; } 2>/dev/null &&
+ { test "X$echo_test_string" = "X$echo_test_string"; } 2>/dev/null
+ then
+ break
+ fi
+ done
+ fi
+
+ if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' &&
+ echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` &&
+ test "X$echo_testing_string" = "X$echo_test_string"; then
+ :
+ else
+ # The Solaris, AIX, and Digital Unix default echo programs unquote
+ # backslashes. This makes it impossible to quote backslashes using
+ # echo "$something" | sed 's/\\/\\\\/g'
+ #
+ # So, first we look for a working echo in the user's PATH.
+
+ lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+ for dir in $PATH /usr/ucb; do
+ IFS="$lt_save_ifs"
+ if (test -f $dir/echo || test -f $dir/echo$ac_exeext) &&
+ test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' &&
+ echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` &&
+ test "X$echo_testing_string" = "X$echo_test_string"; then
+ ECHO="$dir/echo"
+ break
+ fi
+ done
+ IFS="$lt_save_ifs"
+
+ if test "X$ECHO" = Xecho; then
+ # We didn't find a better echo, so look for alternatives.
+ if test "X`{ print -r '\t'; } 2>/dev/null`" = 'X\t' &&
+ echo_testing_string=`{ print -r "$echo_test_string"; } 2>/dev/null` &&
+ test "X$echo_testing_string" = "X$echo_test_string"; then
+ # This shell has a builtin print -r that does the trick.
+ ECHO='print -r'
+ elif { test -f /bin/ksh || test -f /bin/ksh$ac_exeext; } &&
+ test "X$CONFIG_SHELL" != X/bin/ksh; then
+ # If we have ksh, try running configure again with it.
+ ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
+ export ORIGINAL_CONFIG_SHELL
+ CONFIG_SHELL=/bin/ksh
+ export CONFIG_SHELL
+ exec $CONFIG_SHELL "$0" --no-reexec ${1+"$@"}
+ else
+ # Try using printf.
+ ECHO='printf %s\n'
+ if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' &&
+ echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` &&
+ test "X$echo_testing_string" = "X$echo_test_string"; then
+ # Cool, printf works
+ :
+ elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` &&
+ test "X$echo_testing_string" = 'X\t' &&
+ echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
+ test "X$echo_testing_string" = "X$echo_test_string"; then
+ CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL
+ export CONFIG_SHELL
+ SHELL="$CONFIG_SHELL"
+ export SHELL
+ ECHO="$CONFIG_SHELL $0 --fallback-echo"
+ elif echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` &&
+ test "X$echo_testing_string" = 'X\t' &&
+ echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
+ test "X$echo_testing_string" = "X$echo_test_string"; then
+ ECHO="$CONFIG_SHELL $0 --fallback-echo"
+ else
+ # maybe with a smaller string...
+ prev=:
+
+ for cmd in 'echo test' 'sed 2q "$0"' 'sed 10q "$0"' 'sed 20q "$0"' 'sed 50q "$0"'; do
+ if { test "X$echo_test_string" = "X`eval $cmd`"; } 2>/dev/null
+ then
+ break
+ fi
+ prev="$cmd"
+ done
+
+ if test "$prev" != 'sed 50q "$0"'; then
+ echo_test_string=`eval $prev`
+ export echo_test_string
+ exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "$0" ${1+"$@"}
+ else
+ # Oops. We lost completely, so just stick with echo.
+ ECHO=echo
+ fi
+ fi
+ fi
+ fi
+ fi
+fi
+
+# Copy echo and quote the copy suitably for passing to libtool from
+# the Makefile, instead of quoting the original, which is used later.
+lt_ECHO=$ECHO
+if test "X$lt_ECHO" = "X$CONFIG_SHELL $0 --fallback-echo"; then
+ lt_ECHO="$CONFIG_SHELL \\\$\$0 --fallback-echo"
+fi
+
+
+
+
+test -n "$DJDIR" || exec 7<&0 </dev/null
+exec 6>&1
+
+# Name of the host.
+# hostname on some systems (SVR3.2, Linux) returns a bogus exit status,
+# so uname gets run too.
+ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
+
+#
+# Initializations.
+#
+ac_default_prefix=/usr/local
+ac_clean_files=
+ac_config_libobj_dir=.
+LIB@&t@OBJS=
+cross_compiling=no
+subdirs=
+MFLAGS=
+MAKEFLAGS=
+
+# Identity of this package.
+PACKAGE_NAME='MusE'
+PACKAGE_TARNAME='muse'
+PACKAGE_VERSION='1.1'
+PACKAGE_STRING='MusE 1.1'
+PACKAGE_BUGREPORT=''
+PACKAGE_URL=''
+
+ac_unique_file="muse/app.cpp"
+# Factoring default headers for most tests.
+ac_includes_default="\
+#include <stdio.h>
+#ifdef HAVE_SYS_TYPES_H
+# include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_STAT_H
+# include <sys/stat.h>
+#endif
+#ifdef STDC_HEADERS
+# include <stdlib.h>
+# include <stddef.h>
+#else
+# ifdef HAVE_STDLIB_H
+# include <stdlib.h>
+# endif
+#endif
+#ifdef HAVE_STRING_H
+# if !defined STDC_HEADERS && defined HAVE_MEMORY_H
+# include <memory.h>
+# endif
+# include <string.h>
+#endif
+#ifdef HAVE_STRINGS_H
+# include <strings.h>
+#endif
+#ifdef HAVE_INTTYPES_H
+# include <inttypes.h>
+#endif
+#ifdef HAVE_STDINT_H
+# include <stdint.h>
+#endif
+#ifdef HAVE_UNISTD_H
+# include <unistd.h>
+#endif"
+
+ac_subst_vars='am__EXEEXT_FALSE
+am__EXEEXT_TRUE
+LTLIBOBJS
+LIB@&t@OBJS
+QTDIR_BIN
+QT_LIBS
+QTDIR_INC
+MUSECXXFLAGS
+HAVE_AUDIO_FALSE
+HAVE_AUDIO_TRUE
+DSSI_SUPPORT_FALSE
+DSSI_SUPPORT_TRUE
+OSC_SUPPORT_FALSE
+OSC_SUPPORT_TRUE
+LO_LIBS
+LO_CFLAGS
+VST_SUPPORT_FALSE
+VST_SUPPORT_TRUE
+FST_LIBS
+FST_CFLAGS
+PYTHON_LIB
+PYTHON_INCLUDES
+ENABLE_PYTHON_FALSE
+ENABLE_PYTHON_TRUE
+pkgpyexecdir
+pyexecdir
+pkgpythondir
+pythondir
+PYTHON_PLATFORM
+PYTHON_EXEC_PREFIX
+PYTHON_PREFIX
+PYTHON_VERSION
+PYTHON
+USE_SSE_FALSE
+USE_SSE_TRUE
+USE_SSE
+PCH_FALSE
+PCH_TRUE
+PCH
+DOXYGEN_TREEVIEW
+SUIDBUILD
+SUIDINSTALL
+GIVERTCAP
+RTCAP_FALSE
+RTCAP_TRUE
+HAVE_LASH_FALSE
+HAVE_LASH_TRUE
+LASH_LIBS
+LASH_CFLAGS
+JACK_LIBS
+JACK_CFLAGS
+UUID_LIBS
+UUID_CFLAGS
+SAMPLERATE_LIBS
+SAMPLERATE_CFLAGS
+SNDFILE_LIBS
+SNDFILE_CFLAGS
+synth_fluid
+synth_fluidsynth
+FLUIDSYNTHDIRS
+Fluidsynth_LIBS
+Fluidsynth_CFLAGS
+PKG_CONFIG
+ENABLEFLUIDSYNTH_FALSE
+ENABLEFLUIDSYNTH_TRUE
+ALSA_LIBS
+ALSA_CFLAGS
+X_EXTRA_LIBS
+X_LIBS
+X_PRE_LIBS
+X_CFLAGS
+XMKMF
+PERL
+DOTPATH
+HAVEDOT
+DOT
+DOXYGEN
+DOCBOOKTARGETS
+DOCBOOKSTYLE
+have_docbook
+NSGMLS
+JADE
+CXXCPP
+CPP
+OTOOL64
+OTOOL
+LIPO
+NMEDIT
+DSYMUTIL
+lt_ECHO
+RANLIB
+AR
+OBJDUMP
+LN_S
+NM
+ac_ct_DUMPBIN
+DUMPBIN
+LD
+FGREP
+EGREP
+GREP
+SED
+am__fastdepCC_FALSE
+am__fastdepCC_TRUE
+CCDEPMODE
+ac_ct_CC
+CFLAGS
+CC
+host_os
+host_vendor
+host_cpu
+host
+build_os
+build_vendor
+build_cpu
+build
+LIBTOOL
+am__fastdepCXX_FALSE
+am__fastdepCXX_TRUE
+CXXDEPMODE
+AMDEPBACKSLASH
+AMDEP_FALSE
+AMDEP_TRUE
+am__quote
+am__include
+DEPDIR
+OBJEXT
+EXEEXT
+ac_ct_CXX
+CPPFLAGS
+LDFLAGS
+CXXFLAGS
+CXX
+INSIDE_GNOME_COMMON_FALSE
+INSIDE_GNOME_COMMON_TRUE
+am__untar
+am__tar
+AMTAR
+am__leading_dot
+SET_MAKE
+AWK
+mkdir_p
+MKDIR_P
+INSTALL_STRIP_PROGRAM
+STRIP
+install_sh
+MAKEINFO
+AUTOHEADER
+AUTOMAKE
+AUTOCONF
+ACLOCAL
+VERSION
+PACKAGE
+CYGPATH_W
+am__isrc
+INSTALL_DATA
+INSTALL_SCRIPT
+INSTALL_PROGRAM
+target_alias
+host_alias
+build_alias
+LIBS
+ECHO_T
+ECHO_N
+ECHO_C
+DEFS
+mandir
+localedir
+libdir
+psdir
+pdfdir
+dvidir
+htmldir
+infodir
+docdir
+oldincludedir
+includedir
+localstatedir
+sharedstatedir
+sysconfdir
+datadir
+datarootdir
+libexecdir
+sbindir
+bindir
+program_transform_name
+prefix
+exec_prefix
+PACKAGE_URL
+PACKAGE_BUGREPORT
+PACKAGE_STRING
+PACKAGE_VERSION
+PACKAGE_TARNAME
+PACKAGE_NAME
+PATH_SEPARATOR
+SHELL'
+ac_subst_files=''
+ac_user_opts='
+enable_option_checking
+enable_dependency_tracking
+enable_shared
+enable_static
+with_pic
+enable_fast_install
+with_gnu_ld
+enable_libtool_lock
+with_docbook_stylesheets
+with_x
+with_alsa_prefix
+with_alsa_inc_prefix
+enable_alsatest
+enable_fluidsynth
+enable_lash
+enable_rtcap
+enable_suid_install
+enable_suid_build
+enable_doxy_treeview
+enable_optimize
+enable_debug
+enable_pch
+enable_arch
+enable_sse
+with_python
+enable_vst
+enable_osc
+enable_dssi
+'
+ ac_precious_vars='build_alias
+host_alias
+target_alias
+CXX
+CXXFLAGS
+LDFLAGS
+LIBS
+CPPFLAGS
+CCC
+CC
+CFLAGS
+CPP
+CXXCPP
+DOXYGEN
+DOT
+PERL
+XMKMF
+PKG_CONFIG
+Fluidsynth_CFLAGS
+Fluidsynth_LIBS
+SNDFILE_CFLAGS
+SNDFILE_LIBS
+SAMPLERATE_CFLAGS
+SAMPLERATE_LIBS
+JACK_CFLAGS
+JACK_LIBS
+LASH_CFLAGS
+LASH_LIBS
+FST_CFLAGS
+FST_LIBS
+LO_CFLAGS
+LO_LIBS'
+
+
+# Initialize some variables set by options.
+ac_init_help=
+ac_init_version=false
+ac_unrecognized_opts=
+ac_unrecognized_sep=
+# The variables have the same names as the options, with
+# dashes changed to underlines.
+cache_file=/dev/null
+exec_prefix=NONE
+no_create=
+no_recursion=
+prefix=NONE
+program_prefix=NONE
+program_suffix=NONE
+program_transform_name=s,x,x,
+silent=
+site=
+srcdir=
+verbose=
+x_includes=NONE
+x_libraries=NONE
+
+# Installation directory options.
+# These are left unexpanded so users can "make install exec_prefix=/foo"
+# and all the variables that are supposed to be based on exec_prefix
+# by default will actually change.
+# Use braces instead of parens because sh, perl, etc. also accept them.
+# (The list follows the same order as the GNU Coding Standards.)
+bindir='${exec_prefix}/bin'
+sbindir='${exec_prefix}/sbin'
+libexecdir='${exec_prefix}/libexec'
+datarootdir='${prefix}/share'
+datadir='${datarootdir}'
+sysconfdir='${prefix}/etc'
+sharedstatedir='${prefix}/com'
+localstatedir='${prefix}/var'
+includedir='${prefix}/include'
+oldincludedir='/usr/include'
+docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
+infodir='${datarootdir}/info'
+htmldir='${docdir}'
+dvidir='${docdir}'
+pdfdir='${docdir}'
+psdir='${docdir}'
+libdir='${exec_prefix}/lib'
+localedir='${datarootdir}/locale'
+mandir='${datarootdir}/man'
+
+ac_prev=
+ac_dashdash=
+for ac_option
+do
+ # If the previous option needs an argument, assign it.
+ if test -n "$ac_prev"; then
+ eval $ac_prev=\$ac_option
+ ac_prev=
+ continue
+ fi
+
+ case $ac_option in
+ *=*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
+ *) ac_optarg=yes ;;
+ esac
+
+ # Accept the important Cygnus configure options, so we can diagnose typos.
+
+ case $ac_dashdash$ac_option in
+ --)
+ ac_dashdash=yes ;;
+
+ -bindir | --bindir | --bindi | --bind | --bin | --bi)
+ ac_prev=bindir ;;
+ -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
+ bindir=$ac_optarg ;;
+
+ -build | --build | --buil | --bui | --bu)
+ ac_prev=build_alias ;;
+ -build=* | --build=* | --buil=* | --bui=* | --bu=*)
+ build_alias=$ac_optarg ;;
+
+ -cache-file | --cache-file | --cache-fil | --cache-fi \
+ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
+ ac_prev=cache_file ;;
+ -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
+ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
+ cache_file=$ac_optarg ;;
+
+ --config-cache | -C)
+ cache_file=config.cache ;;
+
+ -datadir | --datadir | --datadi | --datad)
+ ac_prev=datadir ;;
+ -datadir=* | --datadir=* | --datadi=* | --datad=*)
+ datadir=$ac_optarg ;;
+
+ -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \
+ | --dataroo | --dataro | --datar)
+ ac_prev=datarootdir ;;
+ -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \
+ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*)
+ datarootdir=$ac_optarg ;;
+
+ -disable-* | --disable-*)
+ ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+ as_fn_error "invalid feature name: $ac_useropt"
+ ac_useropt_orig=$ac_useropt
+ ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+ case $ac_user_opts in
+ *"
+"enable_$ac_useropt"
+"*) ;;
+ *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig"
+ ac_unrecognized_sep=', ';;
+ esac
+ eval enable_$ac_useropt=no ;;
+
+ -docdir | --docdir | --docdi | --doc | --do)
+ ac_prev=docdir ;;
+ -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*)
+ docdir=$ac_optarg ;;
+
+ -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv)
+ ac_prev=dvidir ;;
+ -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*)
+ dvidir=$ac_optarg ;;
+
+ -enable-* | --enable-*)
+ ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+ as_fn_error "invalid feature name: $ac_useropt"
+ ac_useropt_orig=$ac_useropt
+ ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+ case $ac_user_opts in
+ *"
+"enable_$ac_useropt"
+"*) ;;
+ *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig"
+ ac_unrecognized_sep=', ';;
+ esac
+ eval enable_$ac_useropt=\$ac_optarg ;;
+
+ -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
+ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
+ | --exec | --exe | --ex)
+ ac_prev=exec_prefix ;;
+ -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
+ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
+ | --exec=* | --exe=* | --ex=*)
+ exec_prefix=$ac_optarg ;;
+
+ -gas | --gas | --ga | --g)
+ # Obsolete; use --with-gas.
+ with_gas=yes ;;
+
+ -help | --help | --hel | --he | -h)
+ ac_init_help=long ;;
+ -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
+ ac_init_help=recursive ;;
+ -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
+ ac_init_help=short ;;
+
+ -host | --host | --hos | --ho)
+ ac_prev=host_alias ;;
+ -host=* | --host=* | --hos=* | --ho=*)
+ host_alias=$ac_optarg ;;
+
+ -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht)
+ ac_prev=htmldir ;;
+ -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \
+ | --ht=*)
+ htmldir=$ac_optarg ;;
+
+ -includedir | --includedir | --includedi | --included | --include \
+ | --includ | --inclu | --incl | --inc)
+ ac_prev=includedir ;;
+ -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
+ | --includ=* | --inclu=* | --incl=* | --inc=*)
+ includedir=$ac_optarg ;;
+
+ -infodir | --infodir | --infodi | --infod | --info | --inf)
+ ac_prev=infodir ;;
+ -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
+ infodir=$ac_optarg ;;
+
+ -libdir | --libdir | --libdi | --libd)
+ ac_prev=libdir ;;
+ -libdir=* | --libdir=* | --libdi=* | --libd=*)
+ libdir=$ac_optarg ;;
+
+ -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
+ | --libexe | --libex | --libe)
+ ac_prev=libexecdir ;;
+ -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
+ | --libexe=* | --libex=* | --libe=*)
+ libexecdir=$ac_optarg ;;
+
+ -localedir | --localedir | --localedi | --localed | --locale)
+ ac_prev=localedir ;;
+ -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*)
+ localedir=$ac_optarg ;;
+
+ -localstatedir | --localstatedir | --localstatedi | --localstated \
+ | --localstate | --localstat | --localsta | --localst | --locals)
+ ac_prev=localstatedir ;;
+ -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
+ | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*)
+ localstatedir=$ac_optarg ;;
+
+ -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
+ ac_prev=mandir ;;
+ -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
+ mandir=$ac_optarg ;;
+
+ -nfp | --nfp | --nf)
+ # Obsolete; use --without-fp.
+ with_fp=no ;;
+
+ -no-create | --no-create | --no-creat | --no-crea | --no-cre \
+ | --no-cr | --no-c | -n)
+ no_create=yes ;;
+
+ -no-recursion | --no-recursion | --no-recursio | --no-recursi \
+ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
+ no_recursion=yes ;;
+
+ -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
+ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
+ | --oldin | --oldi | --old | --ol | --o)
+ ac_prev=oldincludedir ;;
+ -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
+ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
+ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
+ oldincludedir=$ac_optarg ;;
+
+ -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
+ ac_prev=prefix ;;
+ -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
+ prefix=$ac_optarg ;;
+
+ -program-prefix | --program-prefix | --program-prefi | --program-pref \
+ | --program-pre | --program-pr | --program-p)
+ ac_prev=program_prefix ;;
+ -program-prefix=* | --program-prefix=* | --program-prefi=* \
+ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
+ program_prefix=$ac_optarg ;;
+
+ -program-suffix | --program-suffix | --program-suffi | --program-suff \
+ | --program-suf | --program-su | --program-s)
+ ac_prev=program_suffix ;;
+ -program-suffix=* | --program-suffix=* | --program-suffi=* \
+ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
+ program_suffix=$ac_optarg ;;
+
+ -program-transform-name | --program-transform-name \
+ | --program-transform-nam | --program-transform-na \
+ | --program-transform-n | --program-transform- \
+ | --program-transform | --program-transfor \
+ | --program-transfo | --program-transf \
+ | --program-trans | --program-tran \
+ | --progr-tra | --program-tr | --program-t)
+ ac_prev=program_transform_name ;;
+ -program-transform-name=* | --program-transform-name=* \
+ | --program-transform-nam=* | --program-transform-na=* \
+ | --program-transform-n=* | --program-transform-=* \
+ | --program-transform=* | --program-transfor=* \
+ | --program-transfo=* | --program-transf=* \
+ | --program-trans=* | --program-tran=* \
+ | --progr-tra=* | --program-tr=* | --program-t=*)
+ program_transform_name=$ac_optarg ;;
+
+ -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd)
+ ac_prev=pdfdir ;;
+ -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*)
+ pdfdir=$ac_optarg ;;
+
+ -psdir | --psdir | --psdi | --psd | --ps)
+ ac_prev=psdir ;;
+ -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*)
+ psdir=$ac_optarg ;;
+
+ -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+ | -silent | --silent | --silen | --sile | --sil)
+ silent=yes ;;
+
+ -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
+ ac_prev=sbindir ;;
+ -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
+ | --sbi=* | --sb=*)
+ sbindir=$ac_optarg ;;
+
+ -sharedstatedir | --sharedstatedir | --sharedstatedi \
+ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
+ | --sharedst | --shareds | --shared | --share | --shar \
+ | --sha | --sh)
+ ac_prev=sharedstatedir ;;
+ -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
+ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
+ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
+ | --sha=* | --sh=*)
+ sharedstatedir=$ac_optarg ;;
+
+ -site | --site | --sit)
+ ac_prev=site ;;
+ -site=* | --site=* | --sit=*)
+ site=$ac_optarg ;;
+
+ -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
+ ac_prev=srcdir ;;
+ -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
+ srcdir=$ac_optarg ;;
+
+ -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
+ | --syscon | --sysco | --sysc | --sys | --sy)
+ ac_prev=sysconfdir ;;
+ -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
+ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
+ sysconfdir=$ac_optarg ;;
+
+ -target | --target | --targe | --targ | --tar | --ta | --t)
+ ac_prev=target_alias ;;
+ -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
+ target_alias=$ac_optarg ;;
+
+ -v | -verbose | --verbose | --verbos | --verbo | --verb)
+ verbose=yes ;;
+
+ -version | --version | --versio | --versi | --vers | -V)
+ ac_init_version=: ;;
+
+ -with-* | --with-*)
+ ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+ as_fn_error "invalid package name: $ac_useropt"
+ ac_useropt_orig=$ac_useropt
+ ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+ case $ac_user_opts in
+ *"
+"with_$ac_useropt"
+"*) ;;
+ *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig"
+ ac_unrecognized_sep=', ';;
+ esac
+ eval with_$ac_useropt=\$ac_optarg ;;
+
+ -without-* | --without-*)
+ ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+ as_fn_error "invalid package name: $ac_useropt"
+ ac_useropt_orig=$ac_useropt
+ ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+ case $ac_user_opts in
+ *"
+"with_$ac_useropt"
+"*) ;;
+ *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig"
+ ac_unrecognized_sep=', ';;
+ esac
+ eval with_$ac_useropt=no ;;
+
+ --x)
+ # Obsolete; use --with-x.
+ with_x=yes ;;
+
+ -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
+ | --x-incl | --x-inc | --x-in | --x-i)
+ ac_prev=x_includes ;;
+ -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
+ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
+ x_includes=$ac_optarg ;;
+
+ -x-libraries | --x-libraries | --x-librarie | --x-librari \
+ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
+ ac_prev=x_libraries ;;
+ -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
+ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
+ x_libraries=$ac_optarg ;;
+
+ -*) as_fn_error "unrecognized option: \`$ac_option'
+Try \`$0 --help' for more information."
+ ;;
+
+ *=*)
+ ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
+ # Reject names that are not valid shell variable names.
+ case $ac_envvar in #(
+ '' | [0-9]* | *[!_$as_cr_alnum]* )
+ as_fn_error "invalid variable name: \`$ac_envvar'" ;;
+ esac
+ eval $ac_envvar=\$ac_optarg
+ export $ac_envvar ;;
+
+ *)
+ # FIXME: should be removed in autoconf 3.0.
+ $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2
+ expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
+ $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2
+ : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}
+ ;;
+
+ esac
+done
+
+if test -n "$ac_prev"; then
+ ac_option=--`echo $ac_prev | sed 's/_/-/g'`
+ as_fn_error "missing argument to $ac_option"
+fi
+
+if test -n "$ac_unrecognized_opts"; then
+ case $enable_option_checking in
+ no) ;;
+ fatal) as_fn_error "unrecognized options: $ac_unrecognized_opts" ;;
+ *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
+ esac
+fi
+
+# Check all directory arguments for consistency.
+for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \
+ datadir sysconfdir sharedstatedir localstatedir includedir \
+ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
+ libdir localedir mandir
+do
+ eval ac_val=\$$ac_var
+ # Remove trailing slashes.
+ case $ac_val in
+ */ )
+ ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'`
+ eval $ac_var=\$ac_val;;
+ esac
+ # Be sure to have absolute directory names.
+ case $ac_val in
+ [\\/$]* | ?:[\\/]* ) continue;;
+ NONE | '' ) case $ac_var in *prefix ) continue;; esac;;
+ esac
+ as_fn_error "expected an absolute directory name for --$ac_var: $ac_val"
+done
+
+# There might be people who depend on the old broken behavior: `$host'
+# used to hold the argument of --host etc.
+# FIXME: To remove some day.
+build=$build_alias
+host=$host_alias
+target=$target_alias
+
+# FIXME: To remove some day.
+if test "x$host_alias" != x; then
+ if test "x$build_alias" = x; then
+ cross_compiling=maybe
+ $as_echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host.
+ If a cross compiler is detected then cross compile mode will be used." >&2
+ elif test "x$build_alias" != "x$host_alias"; then
+ cross_compiling=yes
+ fi
+fi
+
+ac_tool_prefix=
+test -n "$host_alias" && ac_tool_prefix=$host_alias-
+
+test "$silent" = yes && exec 6>/dev/null
+
+
+ac_pwd=`pwd` && test -n "$ac_pwd" &&
+ac_ls_di=`ls -di .` &&
+ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||
+ as_fn_error "working directory cannot be determined"
+test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
+ as_fn_error "pwd does not report name of working directory"
+
+
+# Find the source files, if location was not specified.
+if test -z "$srcdir"; then
+ ac_srcdir_defaulted=yes
+ # Try the directory containing this script, then the parent directory.
+ ac_confdir=`$as_dirname -- "$as_myself" ||
+$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$as_myself" : 'X\(//\)[^/]' \| \
+ X"$as_myself" : 'X\(//\)$' \| \
+ X"$as_myself" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$as_myself" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ srcdir=$ac_confdir
+ if test ! -r "$srcdir/$ac_unique_file"; then
+ srcdir=..
+ fi
+else
+ ac_srcdir_defaulted=no
+fi
+if test ! -r "$srcdir/$ac_unique_file"; then
+ test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."
+ as_fn_error "cannot find sources ($ac_unique_file) in $srcdir"
+fi
+ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"
+ac_abs_confdir=`(
+ cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error "$ac_msg"
+ pwd)`
+# When building in place, set srcdir=.
+if test "$ac_abs_confdir" = "$ac_pwd"; then
+ srcdir=.
+fi
+# Remove unnecessary trailing slashes from srcdir.
+# Double slashes in file names in object file debugging info
+# mess up M-x gdb in Emacs.
+case $srcdir in
+*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;;
+esac
+for ac_var in $ac_precious_vars; do
+ eval ac_env_${ac_var}_set=\${${ac_var}+set}
+ eval ac_env_${ac_var}_value=\$${ac_var}
+ eval ac_cv_env_${ac_var}_set=\${${ac_var}+set}
+ eval ac_cv_env_${ac_var}_value=\$${ac_var}
+done
+
+#
+# Report the --help message.
+#
+if test "$ac_init_help" = "long"; then
+ # Omit some internal or obsolete options to make the list less imposing.
+ # This message is too long to be a string in the A/UX 3.1 sh.
+ cat <<_ACEOF
+\`configure' configures MusE 1.1 to adapt to many kinds of systems.
+
+Usage: $0 [OPTION]... [VAR=VALUE]...
+
+To assign environment variables (e.g., CC, CFLAGS...), specify them as
+VAR=VALUE. See below for descriptions of some of the useful variables.
+
+Defaults for the options are specified in brackets.
+
+Configuration:
+ -h, --help display this help and exit
+ --help=short display options specific to this package
+ --help=recursive display the short help of all the included packages
+ -V, --version display version information and exit
+ -q, --quiet, --silent do not print \`checking...' messages
+ --cache-file=FILE cache test results in FILE [disabled]
+ -C, --config-cache alias for \`--cache-file=config.cache'
+ -n, --no-create do not create output files
+ --srcdir=DIR find the sources in DIR [configure dir or \`..']
+
+Installation directories:
+ --prefix=PREFIX install architecture-independent files in PREFIX
+ @<:@@S|@ac_default_prefix@:>@
+ --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
+ @<:@PREFIX@:>@
+
+By default, \`make install' will install all the files in
+\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify
+an installation prefix other than \`$ac_default_prefix' using \`--prefix',
+for instance \`--prefix=\$HOME'.
+
+For better control, use the options below.
+
+Fine tuning of the installation directories:
+ --bindir=DIR user executables [EPREFIX/bin]
+ --sbindir=DIR system admin executables [EPREFIX/sbin]
+ --libexecdir=DIR program executables [EPREFIX/libexec]
+ --sysconfdir=DIR read-only single-machine data [PREFIX/etc]
+ --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
+ --localstatedir=DIR modifiable single-machine data [PREFIX/var]
+ --libdir=DIR object code libraries [EPREFIX/lib]
+ --includedir=DIR C header files [PREFIX/include]
+ --oldincludedir=DIR C header files for non-gcc [/usr/include]
+ --datarootdir=DIR read-only arch.-independent data root [PREFIX/share]
+ --datadir=DIR read-only architecture-independent data [DATAROOTDIR]
+ --infodir=DIR info documentation [DATAROOTDIR/info]
+ --localedir=DIR locale-dependent data [DATAROOTDIR/locale]
+ --mandir=DIR man documentation [DATAROOTDIR/man]
+ --docdir=DIR documentation root @<:@DATAROOTDIR/doc/muse@:>@
+ --htmldir=DIR html documentation [DOCDIR]
+ --dvidir=DIR dvi documentation [DOCDIR]
+ --pdfdir=DIR pdf documentation [DOCDIR]
+ --psdir=DIR ps documentation [DOCDIR]
+_ACEOF
+
+ cat <<\_ACEOF
+
+Program names:
+ --program-prefix=PREFIX prepend PREFIX to installed program names
+ --program-suffix=SUFFIX append SUFFIX to installed program names
+ --program-transform-name=PROGRAM run sed PROGRAM on installed program names
+
+X features:
+ --x-includes=DIR X include files are in DIR
+ --x-libraries=DIR X library files are in DIR
+
+System types:
+ --build=BUILD configure for building on BUILD [guessed]
+ --host=HOST cross-compile to build programs to run on HOST [BUILD]
+_ACEOF
+fi
+
+if test -n "$ac_init_help"; then
+ case $ac_init_help in
+ short | recursive ) echo "Configuration of MusE 1.1:";;
+ esac
+ cat <<\_ACEOF
+
+Optional Features:
+ --disable-option-checking ignore unrecognized --enable/--with options
+ --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
+ --enable-FEATURE[=ARG] include FEATURE [ARG=yes]
+ --disable-dependency-tracking speeds up one-time build
+ --enable-dependency-tracking do not reject slow dependency extractors
+ --enable-shared@<:@=PKGS@:>@ build shared libraries @<:@default=yes@:>@
+ --enable-static@<:@=PKGS@:>@ build static libraries @<:@default=yes@:>@
+ --enable-fast-install@<:@=PKGS@:>@
+ optimize for fast installation @<:@default=yes@:>@
+ --disable-libtool-lock avoid locking (might break parallel builds)
+ --disable-alsatest do not try to compile and run a test alsa program
+ --disable-fluidsynth disable fluidsynth softsynth plugin
+ --enable-lash enable LASH support
+ --enable-rtcap (deprecated) use Tommi Ilmonen's "givertcap" to give
+ realtime capabilities
+ --enable-suid-install (deprecated) install MusE setuid root (with kernel 2.6, use realtime-lsm instead)
+ --enable-suid-build (deprecated) build MusE setuid root(with kernel 2.6, use realtime-lsm instead)
+ --disable-doxy-treeview stop Doxygen from generating java-ified
+ treeview menus in its HTML output
+ --enable-optimize ask the compiler for its best optimizations (possibly only i386)
+ --enable-debug disable optimizations
+ --enable-pch enable precompiled headers (gcc 3.4 required)
+ --enable-arch=ARCH use -march=ARCH and -mtune=ARCH argument to CXX
+ choose from any supported gcc architecture such as:
+ 386, 486, 586, 686, pentium, pentiumpro, k6, athlon...
+ --enable-sse enable SSE optimizations
+ --enable-vst (deprecated, use dssi) build VST/win support. (disabled by default)
+ --enable-osc build OSC support. (disabled by default)
+ --enable-dssi is also recommended!
+ --enable-dssi build DSSI + DSSI-Vst support. (disabled by default)
+ --enable-osc is also recommended!
+
+Optional Packages:
+ --with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
+ --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
+ --with-pic try to use only PIC/non-PIC objects @<:@default=use
+ both@:>@
+ --with-gnu-ld assume the C compiler uses GNU ld @<:@default=no@:>@
+ --with-docbook-stylesheets=DIR use DIR/html/docbook.dsl
+ --with-x use the X Window System
+ --with-alsa-prefix=PFX prefix where alsa library is installed (optional)
+ --with-alsa-inc-prefix=PFX prefix where include libraries are (optional)
+ --enable-python Build python bindings (on)
+
+Some influential environment variables:
+ CXX C++ compiler command
+ CXXFLAGS C++ compiler flags
+ LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries in a
+ nonstandard directory <lib dir>
+ LIBS libraries to pass to the linker, e.g. -l<library>
+ CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if
+ you have headers in a nonstandard directory <include dir>
+ CC C compiler command
+ CFLAGS C compiler flags
+ CPP C preprocessor
+ CXXCPP C++ preprocessor
+ DOXYGEN Doxygen
+ DOT The "dot" program from graphviz
+ PERL Perl
+ XMKMF Path to xmkmf, Makefile generator for X Window System
+ PKG_CONFIG path to pkg-config utility
+ Fluidsynth_CFLAGS
+ C compiler flags for Fluidsynth, overriding pkg-config
+ Fluidsynth_LIBS
+ linker flags for Fluidsynth, overriding pkg-config
+ SNDFILE_CFLAGS
+ C compiler flags for SNDFILE, overriding pkg-config
+ SNDFILE_LIBS
+ linker flags for SNDFILE, overriding pkg-config
+ SAMPLERATE_CFLAGS
+ C compiler flags for SAMPLERATE, overriding pkg-config
+ SAMPLERATE_LIBS
+ linker flags for SAMPLERATE, overriding pkg-config
+ JACK_CFLAGS C compiler flags for JACK, overriding pkg-config
+ JACK_LIBS linker flags for JACK, overriding pkg-config
+ LASH_CFLAGS C compiler flags for LASH, overriding pkg-config
+ LASH_LIBS linker flags for LASH, overriding pkg-config
+ FST_CFLAGS C compiler flags for FST, overriding pkg-config
+ FST_LIBS linker flags for FST, overriding pkg-config
+ LO_CFLAGS C compiler flags for LO, overriding pkg-config
+ LO_LIBS linker flags for LO, overriding pkg-config
+
+Use these variables to override the choices made by `configure' or to help
+it to find libraries and programs with nonstandard names/locations.
+
+Report bugs to the package provider.
+_ACEOF
+ac_status=$?
+fi
+
+if test "$ac_init_help" = "recursive"; then
+ # If there are subdirs, report their specific --help.
+ for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
+ test -d "$ac_dir" ||
+ { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } ||
+ continue
+ ac_builddir=.
+
+case "$ac_dir" in
+.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
+*)
+ ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
+ # A ".." for each directory in $ac_dir_suffix.
+ ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
+ case $ac_top_builddir_sub in
+ "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
+ *) ac_top_build_prefix=$ac_top_builddir_sub/ ;;
+ esac ;;
+esac
+ac_abs_top_builddir=$ac_pwd
+ac_abs_builddir=$ac_pwd$ac_dir_suffix
+# for backward compatibility:
+ac_top_builddir=$ac_top_build_prefix
+
+case $srcdir in
+ .) # We are building in place.
+ ac_srcdir=.
+ ac_top_srcdir=$ac_top_builddir_sub
+ ac_abs_top_srcdir=$ac_pwd ;;
+ [\\/]* | ?:[\\/]* ) # Absolute name.
+ ac_srcdir=$srcdir$ac_dir_suffix;
+ ac_top_srcdir=$srcdir
+ ac_abs_top_srcdir=$srcdir ;;
+ *) # Relative name.
+ ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
+ ac_top_srcdir=$ac_top_build_prefix$srcdir
+ ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
+esac
+ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
+
+ cd "$ac_dir" || { ac_status=$?; continue; }
+ # Check for guested configure.
+ if test -f "$ac_srcdir/configure.gnu"; then
+ echo &&
+ $SHELL "$ac_srcdir/configure.gnu" --help=recursive
+ elif test -f "$ac_srcdir/configure"; then
+ echo &&
+ $SHELL "$ac_srcdir/configure" --help=recursive
+ else
+ $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
+ fi || ac_status=$?
+ cd "$ac_pwd" || { ac_status=$?; break; }
+ done
+fi
+
+test -n "$ac_init_help" && exit $ac_status
+if $ac_init_version; then
+ cat <<\_ACEOF
+MusE configure 1.1
+generated by GNU Autoconf 2.65
+
+Copyright (C) 2009 Free Software Foundation, Inc.
+This configure script is free software; the Free Software Foundation
+gives unlimited permission to copy, distribute and modify it.
+_ACEOF
+ exit
+fi
+
+## ------------------------ ##
+## Autoconf initialization. ##
+## ------------------------ ##
+
+@%:@ ac_fn_cxx_try_compile LINENO
+@%:@ ----------------------------
+@%:@ Try to compile conftest.@S|@ac_ext, and return whether this succeeded.
+ac_fn_cxx_try_compile ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ rm -f conftest.$ac_objext
+ if { { ac_try="$ac_compile"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_compile") 2>conftest.err
+ ac_status=$?
+ if test -s conftest.err; then
+ grep -v '^ *+' conftest.err >conftest.er1
+ cat conftest.er1 >&5
+ mv -f conftest.er1 conftest.err
+ fi
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && {
+ test -z "$ac_cxx_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest.$ac_objext; then :
+ ac_retval=0
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_retval=1
+fi
+ eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+ as_fn_set_status $ac_retval
+
+} @%:@ ac_fn_cxx_try_compile
+
+@%:@ ac_fn_c_try_compile LINENO
+@%:@ --------------------------
+@%:@ Try to compile conftest.@S|@ac_ext, and return whether this succeeded.
+ac_fn_c_try_compile ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ rm -f conftest.$ac_objext
+ if { { ac_try="$ac_compile"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_compile") 2>conftest.err
+ ac_status=$?
+ if test -s conftest.err; then
+ grep -v '^ *+' conftest.err >conftest.er1
+ cat conftest.er1 >&5
+ mv -f conftest.er1 conftest.err
+ fi
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && {
+ test -z "$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest.$ac_objext; then :
+ ac_retval=0
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_retval=1
+fi
+ eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+ as_fn_set_status $ac_retval
+
+} @%:@ ac_fn_c_try_compile
+
+@%:@ ac_fn_c_try_link LINENO
+@%:@ -----------------------
+@%:@ Try to link conftest.@S|@ac_ext, and return whether this succeeded.
+ac_fn_c_try_link ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ rm -f conftest.$ac_objext conftest$ac_exeext
+ if { { ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_link") 2>conftest.err
+ ac_status=$?
+ if test -s conftest.err; then
+ grep -v '^ *+' conftest.err >conftest.er1
+ cat conftest.er1 >&5
+ mv -f conftest.er1 conftest.err
+ fi
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && {
+ test -z "$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest$ac_exeext && {
+ test "$cross_compiling" = yes ||
+ $as_test_x conftest$ac_exeext
+ }; then :
+ ac_retval=0
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_retval=1
+fi
+ # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information
+ # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would
+ # interfere with the next link command; also delete a directory that is
+ # left behind by Apple's compiler. We do this before executing the actions.
+ rm -rf conftest.dSYM conftest_ipa8_conftest.oo
+ eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+ as_fn_set_status $ac_retval
+
+} @%:@ ac_fn_c_try_link
+
+@%:@ ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES
+@%:@ -------------------------------------------------------
+@%:@ Tests whether HEADER exists and can be compiled using the include files in
+@%:@ INCLUDES, setting the cache variable VAR accordingly.
+ac_fn_c_check_header_compile ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$4
+@%:@include <$2>
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ eval "$3=yes"
+else
+ eval "$3=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$3
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+ eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+
+} @%:@ ac_fn_c_check_header_compile
+
+@%:@ ac_fn_c_try_cpp LINENO
+@%:@ ----------------------
+@%:@ Try to preprocess conftest.@S|@ac_ext, and return whether this succeeded.
+ac_fn_c_try_cpp ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ if { { ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err
+ ac_status=$?
+ if test -s conftest.err; then
+ grep -v '^ *+' conftest.err >conftest.er1
+ cat conftest.er1 >&5
+ mv -f conftest.er1 conftest.err
+ fi
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } >/dev/null && {
+ test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ }; then :
+ ac_retval=0
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_retval=1
+fi
+ eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+ as_fn_set_status $ac_retval
+
+} @%:@ ac_fn_c_try_cpp
+
+@%:@ ac_fn_c_try_run LINENO
+@%:@ ----------------------
+@%:@ Try to link conftest.@S|@ac_ext, and return whether this succeeded. Assumes
+@%:@ that executables *can* be run.
+ac_fn_c_try_run ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ if { { ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_link") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && { ac_try='./conftest$ac_exeext'
+ { { case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_try") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; }; then :
+ ac_retval=0
+else
+ $as_echo "$as_me: program exited with status $ac_status" >&5
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_retval=$ac_status
+fi
+ rm -rf conftest.dSYM conftest_ipa8_conftest.oo
+ eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+ as_fn_set_status $ac_retval
+
+} @%:@ ac_fn_c_try_run
+
+@%:@ ac_fn_c_check_func LINENO FUNC VAR
+@%:@ ----------------------------------
+@%:@ Tests whether FUNC exists, setting the cache variable VAR accordingly
+ac_fn_c_check_func ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+/* Define $2 to an innocuous variant, in case <limits.h> declares $2.
+ For example, HP-UX 11i <limits.h> declares gettimeofday. */
+#define $2 innocuous_$2
+
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char $2 (); below.
+ Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ <limits.h> exists even on freestanding compilers. */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef $2
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char $2 ();
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined __stub_$2 || defined __stub___$2
+choke me
+#endif
+
+int
+main ()
+{
+return $2 ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ eval "$3=yes"
+else
+ eval "$3=no"
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+fi
+eval ac_res=\$$3
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+ eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+
+} @%:@ ac_fn_c_check_func
+
+@%:@ ac_fn_cxx_try_cpp LINENO
+@%:@ ------------------------
+@%:@ Try to preprocess conftest.@S|@ac_ext, and return whether this succeeded.
+ac_fn_cxx_try_cpp ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ if { { ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err
+ ac_status=$?
+ if test -s conftest.err; then
+ grep -v '^ *+' conftest.err >conftest.er1
+ cat conftest.er1 >&5
+ mv -f conftest.er1 conftest.err
+ fi
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } >/dev/null && {
+ test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" ||
+ test ! -s conftest.err
+ }; then :
+ ac_retval=0
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_retval=1
+fi
+ eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+ as_fn_set_status $ac_retval
+
+} @%:@ ac_fn_cxx_try_cpp
+
+@%:@ ac_fn_cxx_try_link LINENO
+@%:@ -------------------------
+@%:@ Try to link conftest.@S|@ac_ext, and return whether this succeeded.
+ac_fn_cxx_try_link ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ rm -f conftest.$ac_objext conftest$ac_exeext
+ if { { ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_link") 2>conftest.err
+ ac_status=$?
+ if test -s conftest.err; then
+ grep -v '^ *+' conftest.err >conftest.er1
+ cat conftest.er1 >&5
+ mv -f conftest.er1 conftest.err
+ fi
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && {
+ test -z "$ac_cxx_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest$ac_exeext && {
+ test "$cross_compiling" = yes ||
+ $as_test_x conftest$ac_exeext
+ }; then :
+ ac_retval=0
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_retval=1
+fi
+ # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information
+ # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would
+ # interfere with the next link command; also delete a directory that is
+ # left behind by Apple's compiler. We do this before executing the actions.
+ rm -rf conftest.dSYM conftest_ipa8_conftest.oo
+ eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+ as_fn_set_status $ac_retval
+
+} @%:@ ac_fn_cxx_try_link
+
+@%:@ ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES
+@%:@ -------------------------------------------------------
+@%:@ Tests whether HEADER exists, giving a warning if it cannot be compiled using
+@%:@ the include files in INCLUDES and setting the cache variable VAR
+@%:@ accordingly.
+ac_fn_c_check_header_mongrel ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
+ $as_echo_n "(cached) " >&6
+fi
+eval ac_res=\$$3
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+else
+ # Is the header compilable?
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5
+$as_echo_n "checking $2 usability... " >&6; }
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$4
+@%:@include <$2>
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_header_compiler=yes
+else
+ ac_header_compiler=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5
+$as_echo "$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5
+$as_echo_n "checking $2 presence... " >&6; }
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+@%:@include <$2>
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+ ac_header_preproc=yes
+else
+ ac_header_preproc=no
+fi
+rm -f conftest.err conftest.$ac_ext
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5
+$as_echo "$ac_header_preproc" >&6; }
+
+# So? What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #((
+ yes:no: )
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5
+$as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
+$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
+ ;;
+ no:yes:* )
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5
+$as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5
+$as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5
+$as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5
+$as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
+$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
+ ;;
+esac
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
+ $as_echo_n "(cached) " >&6
+else
+ eval "$3=\$ac_header_compiler"
+fi
+eval ac_res=\$$3
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+fi
+ eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+
+} @%:@ ac_fn_c_check_header_mongrel
+cat >config.log <<_ACEOF
+This file contains any messages produced by compilers while
+running configure, to aid debugging if configure makes a mistake.
+
+It was created by MusE $as_me 1.1, which was
+generated by GNU Autoconf 2.65. Invocation command line was
+
+ $ $0 $@
+
+_ACEOF
+exec 5>>config.log
+{
+cat <<_ASUNAME
+## --------- ##
+## Platform. ##
+## --------- ##
+
+hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
+uname -m = `(uname -m) 2>/dev/null || echo unknown`
+uname -r = `(uname -r) 2>/dev/null || echo unknown`
+uname -s = `(uname -s) 2>/dev/null || echo unknown`
+uname -v = `(uname -v) 2>/dev/null || echo unknown`
+
+/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
+/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown`
+
+/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown`
+/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown`
+/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
+/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown`
+/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown`
+/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown`
+/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown`
+
+_ASUNAME
+
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ $as_echo "PATH: $as_dir"
+ done
+IFS=$as_save_IFS
+
+} >&5
+
+cat >&5 <<_ACEOF
+
+
+## ----------- ##
+## Core tests. ##
+## ----------- ##
+
+_ACEOF
+
+
+# Keep a trace of the command line.
+# Strip out --no-create and --no-recursion so they do not pile up.
+# Strip out --silent because we don't want to record it for future runs.
+# Also quote any args containing shell meta-characters.
+# Make two passes to allow for proper duplicate-argument suppression.
+ac_configure_args=
+ac_configure_args0=
+ac_configure_args1=
+ac_must_keep_next=false
+for ac_pass in 1 2
+do
+ for ac_arg
+ do
+ case $ac_arg in
+ -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;
+ -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+ | -silent | --silent | --silen | --sile | --sil)
+ continue ;;
+ *\'*)
+ ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
+ esac
+ case $ac_pass in
+ 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;;
+ 2)
+ as_fn_append ac_configure_args1 " '$ac_arg'"
+ if test $ac_must_keep_next = true; then
+ ac_must_keep_next=false # Got value, back to normal.
+ else
+ case $ac_arg in
+ *=* | --config-cache | -C | -disable-* | --disable-* \
+ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
+ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
+ | -with-* | --with-* | -without-* | --without-* | --x)
+ case "$ac_configure_args0 " in
+ "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
+ esac
+ ;;
+ -* ) ac_must_keep_next=true ;;
+ esac
+ fi
+ as_fn_append ac_configure_args " '$ac_arg'"
+ ;;
+ esac
+ done
+done
+{ ac_configure_args0=; unset ac_configure_args0;}
+{ ac_configure_args1=; unset ac_configure_args1;}
+
+# When interrupted or exit'd, cleanup temporary files, and complete
+# config.log. We remove comments because anyway the quotes in there
+# would cause problems or look ugly.
+# WARNING: Use '\'' to represent an apostrophe within the trap.
+# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug.
+trap 'exit_status=$?
+ # Save into config.log some information that might help in debugging.
+ {
+ echo
+
+ cat <<\_ASBOX
+## ---------------- ##
+## Cache variables. ##
+## ---------------- ##
+_ASBOX
+ echo
+ # The following way of writing the cache mishandles newlines in values,
+(
+ for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do
+ eval ac_val=\$$ac_var
+ case $ac_val in #(
+ *${as_nl}*)
+ case $ac_var in #(
+ *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
+$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
+ esac
+ case $ac_var in #(
+ _ | IFS | as_nl) ;; #(
+ BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
+ *) { eval $ac_var=; unset $ac_var;} ;;
+ esac ;;
+ esac
+ done
+ (set) 2>&1 |
+ case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #(
+ *${as_nl}ac_space=\ *)
+ sed -n \
+ "s/'\''/'\''\\\\'\'''\''/g;
+ s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p"
+ ;; #(
+ *)
+ sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
+ ;;
+ esac |
+ sort
+)
+ echo
+
+ cat <<\_ASBOX
+## ----------------- ##
+## Output variables. ##
+## ----------------- ##
+_ASBOX
+ echo
+ for ac_var in $ac_subst_vars
+ do
+ eval ac_val=\$$ac_var
+ case $ac_val in
+ *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
+ esac
+ $as_echo "$ac_var='\''$ac_val'\''"
+ done | sort
+ echo
+
+ if test -n "$ac_subst_files"; then
+ cat <<\_ASBOX
+## ------------------- ##
+## File substitutions. ##
+## ------------------- ##
+_ASBOX
+ echo
+ for ac_var in $ac_subst_files
+ do
+ eval ac_val=\$$ac_var
+ case $ac_val in
+ *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
+ esac
+ $as_echo "$ac_var='\''$ac_val'\''"
+ done | sort
+ echo
+ fi
+
+ if test -s confdefs.h; then
+ cat <<\_ASBOX
+## ----------- ##
+## confdefs.h. ##
+## ----------- ##
+_ASBOX
+ echo
+ cat confdefs.h
+ echo
+ fi
+ test "$ac_signal" != 0 &&
+ $as_echo "$as_me: caught signal $ac_signal"
+ $as_echo "$as_me: exit $exit_status"
+ } >&5
+ rm -f core *.core core.conftest.* &&
+ rm -f -r conftest* confdefs* conf$$* $ac_clean_files &&
+ exit $exit_status
+' 0
+for ac_signal in 1 2 13 15; do
+ trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal
+done
+ac_signal=0
+
+# confdefs.h avoids OS command line length limits that DEFS can exceed.
+rm -f -r conftest* confdefs.h
+
+$as_echo "/* confdefs.h */" > confdefs.h
+
+# Predefined preprocessor variables.
+
+cat >>confdefs.h <<_ACEOF
+@%:@define PACKAGE_NAME "$PACKAGE_NAME"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+@%:@define PACKAGE_TARNAME "$PACKAGE_TARNAME"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+@%:@define PACKAGE_VERSION "$PACKAGE_VERSION"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+@%:@define PACKAGE_STRING "$PACKAGE_STRING"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+@%:@define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+@%:@define PACKAGE_URL "$PACKAGE_URL"
+_ACEOF
+
+
+# Let the site file select an alternate cache file if it wants to.
+# Prefer an explicitly selected file to automatically selected ones.
+ac_site_file1=NONE
+ac_site_file2=NONE
+if test -n "$CONFIG_SITE"; then
+ ac_site_file1=$CONFIG_SITE
+elif test "x$prefix" != xNONE; then
+ ac_site_file1=$prefix/share/config.site
+ ac_site_file2=$prefix/etc/config.site
+else
+ ac_site_file1=$ac_default_prefix/share/config.site
+ ac_site_file2=$ac_default_prefix/etc/config.site
+fi
+for ac_site_file in "$ac_site_file1" "$ac_site_file2"
+do
+ test "x$ac_site_file" = xNONE && continue
+ if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5
+$as_echo "$as_me: loading site script $ac_site_file" >&6;}
+ sed 's/^/| /' "$ac_site_file" >&5
+ . "$ac_site_file"
+ fi
+done
+
+if test -r "$cache_file"; then
+ # Some versions of bash will fail to source /dev/null (special files
+ # actually), so we avoid doing that. DJGPP emulates it as a regular file.
+ if test /dev/null != "$cache_file" && test -f "$cache_file"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5
+$as_echo "$as_me: loading cache $cache_file" >&6;}
+ case $cache_file in
+ [\\/]* | ?:[\\/]* ) . "$cache_file";;
+ *) . "./$cache_file";;
+ esac
+ fi
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5
+$as_echo "$as_me: creating cache $cache_file" >&6;}
+ >$cache_file
+fi
+
+# Check that the precious variables saved in the cache have kept the same
+# value.
+ac_cache_corrupted=false
+for ac_var in $ac_precious_vars; do
+ eval ac_old_set=\$ac_cv_env_${ac_var}_set
+ eval ac_new_set=\$ac_env_${ac_var}_set
+ eval ac_old_val=\$ac_cv_env_${ac_var}_value
+ eval ac_new_val=\$ac_env_${ac_var}_value
+ case $ac_old_set,$ac_new_set in
+ set,)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
+$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
+ ac_cache_corrupted=: ;;
+ ,set)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5
+$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
+ ac_cache_corrupted=: ;;
+ ,);;
+ *)
+ if test "x$ac_old_val" != "x$ac_new_val"; then
+ # differences in whitespace do not lead to failure.
+ ac_old_val_w=`echo x $ac_old_val`
+ ac_new_val_w=`echo x $ac_new_val`
+ if test "$ac_old_val_w" != "$ac_new_val_w"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5
+$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
+ ac_cache_corrupted=:
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5
+$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;}
+ eval $ac_var=\$ac_old_val
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5
+$as_echo "$as_me: former value: \`$ac_old_val'" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5
+$as_echo "$as_me: current value: \`$ac_new_val'" >&2;}
+ fi;;
+ esac
+ # Pass precious variables to config.status.
+ if test "$ac_new_set" = set; then
+ case $ac_new_val in
+ *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
+ *) ac_arg=$ac_var=$ac_new_val ;;
+ esac
+ case " $ac_configure_args " in
+ *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy.
+ *) as_fn_append ac_configure_args " '$ac_arg'" ;;
+ esac
+ fi
+done
+if $ac_cache_corrupted; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5
+$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;}
+ as_fn_error "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5
+fi
+## -------------------- ##
+## Main body of script. ##
+## -------------------- ##
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+
+am__api_version='1.11'
+
+ac_aux_dir=
+for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do
+ for ac_t in install-sh install.sh shtool; do
+ if test -f "$ac_dir/$ac_t"; then
+ ac_aux_dir=$ac_dir
+ ac_install_sh="$ac_aux_dir/$ac_t -c"
+ break 2
+ fi
+ done
+done
+if test -z "$ac_aux_dir"; then
+ as_fn_error "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5
+fi
+
+# These three variables are undocumented and unsupported,
+# and are intended to be withdrawn in a future Autoconf release.
+# They can cause serious problems if a builder's source tree is in a directory
+# whose full name contains unusual characters.
+ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var.
+ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var.
+ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var.
+
+
+# Find a good install program. We prefer a C program (faster),
+# so one script is as good as another. But avoid the broken or
+# incompatible versions:
+# SysV /etc/install, /usr/sbin/install
+# SunOS /usr/etc/install
+# IRIX /sbin/install
+# AIX /bin/install
+# AmigaOS /C/install, which installs bootblocks on floppy discs
+# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
+# AFS /usr/afsws/bin/install, which mishandles nonexistent args
+# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
+# OS/2's system install, which has a completely different semantic
+# ./install, which can be erroneously created by make from ./install.sh.
+# Reject install programs that cannot install multiple files.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5
+$as_echo_n "checking for a BSD-compatible install... " >&6; }
+if test -z "$INSTALL"; then
+if test "${ac_cv_path_install+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ # Account for people who put trailing slashes in PATH elements.
+case $as_dir/ in @%:@((
+ ./ | .// | /[cC]/* | \
+ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
+ ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \
+ /usr/ucb/* ) ;;
+ *)
+ # OSF1 and SCO ODT 3.0 have their own names for install.
+ # Don't use installbsd from OSF since it installs stuff as root
+ # by default.
+ for ac_prog in ginstall scoinst install; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then
+ if test $ac_prog = install &&
+ grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
+ # AIX install. It has an incompatible calling convention.
+ :
+ elif test $ac_prog = install &&
+ grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
+ # program-specific install script used by HP pwplus--don't use.
+ :
+ else
+ rm -rf conftest.one conftest.two conftest.dir
+ echo one > conftest.one
+ echo two > conftest.two
+ mkdir conftest.dir
+ if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" &&
+ test -s conftest.one && test -s conftest.two &&
+ test -s conftest.dir/conftest.one &&
+ test -s conftest.dir/conftest.two
+ then
+ ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
+ break 3
+ fi
+ fi
+ fi
+ done
+ done
+ ;;
+esac
+
+ done
+IFS=$as_save_IFS
+
+rm -rf conftest.one conftest.two conftest.dir
+
+fi
+ if test "${ac_cv_path_install+set}" = set; then
+ INSTALL=$ac_cv_path_install
+ else
+ # As a last resort, use the slow shell script. Don't cache a
+ # value for INSTALL within a source directory, because that will
+ # break other packages using the cache if that directory is
+ # removed, or if the value is a relative name.
+ INSTALL=$ac_install_sh
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5
+$as_echo "$INSTALL" >&6; }
+
+# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
+# It thinks the first close brace ends the variable substitution.
+test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
+
+test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
+
+test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5
+$as_echo_n "checking whether build environment is sane... " >&6; }
+# Just in case
+sleep 1
+echo timestamp > conftest.file
+# Reject unsafe characters in $srcdir or the absolute working directory
+# name. Accept space and tab only in the latter.
+am_lf='
+'
+case `pwd` in
+ *[\\\"\#\$\&\'\`$am_lf]*)
+ as_fn_error "unsafe absolute working directory name" "$LINENO" 5;;
+esac
+case $srcdir in
+ *[\\\"\#\$\&\'\`$am_lf\ \ ]*)
+ as_fn_error "unsafe srcdir value: \`$srcdir'" "$LINENO" 5;;
+esac
+
+# Do `set' in a subshell so we don't clobber the current shell's
+# arguments. Must try -L first in case configure is actually a
+# symlink; some systems play weird games with the mod time of symlinks
+# (eg FreeBSD returns the mod time of the symlink's containing
+# directory).
+if (
+ set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
+ if test "$*" = "X"; then
+ # -L didn't work.
+ set X `ls -t "$srcdir/configure" conftest.file`
+ fi
+ rm -f conftest.file
+ if test "$*" != "X $srcdir/configure conftest.file" \
+ && test "$*" != "X conftest.file $srcdir/configure"; then
+
+ # If neither matched, then we have a broken ls. This can happen
+ # if, for instance, CONFIG_SHELL is bash and it inherits a
+ # broken ls alias from the environment. This has actually
+ # happened. Such a system could not be considered "sane".
+ as_fn_error "ls -t appears to fail. Make sure there is not a broken
+alias in your environment" "$LINENO" 5
+ fi
+
+ test "$2" = conftest.file
+ )
+then
+ # Ok.
+ :
+else
+ as_fn_error "newly created file is older than distributed files!
+Check your system clock" "$LINENO" 5
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+test "$program_prefix" != NONE &&
+ program_transform_name="s&^&$program_prefix&;$program_transform_name"
+# Use a double $ so make ignores it.
+test "$program_suffix" != NONE &&
+ program_transform_name="s&\$&$program_suffix&;$program_transform_name"
+# Double any \ or $.
+# By default was `s,x,x', remove it if useless.
+ac_script='s/[\\$]/&&/g;s/;s,x,x,$//'
+program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"`
+
+# expand $ac_aux_dir to an absolute path
+am_aux_dir=`cd $ac_aux_dir && pwd`
+
+if test x"${MISSING+set}" != xset; then
+ case $am_aux_dir in
+ *\ * | *\ *)
+ MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;;
+ *)
+ MISSING="\${SHELL} $am_aux_dir/missing" ;;
+ esac
+fi
+# Use eval to expand $SHELL
+if eval "$MISSING --run true"; then
+ am_missing_run="$MISSING --run "
+else
+ am_missing_run=
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`missing' script is too old or missing" >&5
+$as_echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;}
+fi
+
+if test x"${install_sh}" != xset; then
+ case $am_aux_dir in
+ *\ * | *\ *)
+ install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;;
+ *)
+ install_sh="\${SHELL} $am_aux_dir/install-sh"
+ esac
+fi
+
+# Installed binaries are usually stripped using `strip' when the user
+# run `make install-strip'. However `strip' might not be the right
+# tool to use in cross-compilation environments, therefore Automake
+# will honor the `STRIP' environment variable to overrule this program.
+if test "$cross_compiling" != no; then
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
+set dummy ${ac_tool_prefix}strip; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_STRIP+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$STRIP"; then
+ ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_STRIP="${ac_tool_prefix}strip"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+STRIP=$ac_cv_prog_STRIP
+if test -n "$STRIP"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5
+$as_echo "$STRIP" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_STRIP"; then
+ ac_ct_STRIP=$STRIP
+ # Extract the first word of "strip", so it can be a program name with args.
+set dummy strip; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_STRIP"; then
+ ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_ac_ct_STRIP="strip"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
+if test -n "$ac_ct_STRIP"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5
+$as_echo "$ac_ct_STRIP" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_STRIP" = x; then
+ STRIP=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ STRIP=$ac_ct_STRIP
+ fi
+else
+ STRIP="$ac_cv_prog_STRIP"
+fi
+
+fi
+INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5
+$as_echo_n "checking for a thread-safe mkdir -p... " >&6; }
+if test -z "$MKDIR_P"; then
+ if test "${ac_cv_path_mkdir+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_prog in mkdir gmkdir; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; } || continue
+ case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #(
+ 'mkdir (GNU coreutils) '* | \
+ 'mkdir (coreutils) '* | \
+ 'mkdir (fileutils) '4.1*)
+ ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext
+ break 3;;
+ esac
+ done
+ done
+ done
+IFS=$as_save_IFS
+
+fi
+
+ test -d ./--version && rmdir ./--version
+ if test "${ac_cv_path_mkdir+set}" = set; then
+ MKDIR_P="$ac_cv_path_mkdir -p"
+ else
+ # As a last resort, use the slow shell script. Don't cache a
+ # value for MKDIR_P within a source directory, because that will
+ # break other packages using the cache if that directory is
+ # removed, or if the value is a relative name.
+ MKDIR_P="$ac_install_sh -d"
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5
+$as_echo "$MKDIR_P" >&6; }
+
+mkdir_p="$MKDIR_P"
+case $mkdir_p in
+ [\\/$]* | ?:[\\/]*) ;;
+ */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;;
+esac
+
+for ac_prog in gawk mawk nawk awk
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_AWK+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$AWK"; then
+ ac_cv_prog_AWK="$AWK" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_AWK="$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+AWK=$ac_cv_prog_AWK
+if test -n "$AWK"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5
+$as_echo "$AWK" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$AWK" && break
+done
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5
+$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
+set x ${MAKE-make}
+ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
+if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat >conftest.make <<\_ACEOF
+SHELL = /bin/sh
+all:
+ @echo '@@@%%%=$(MAKE)=@@@%%%'
+_ACEOF
+# GNU make sometimes prints "make[1]: Entering...", which would confuse us.
+case `${MAKE-make} -f conftest.make 2>/dev/null` in
+ *@@@%%%=?*=@@@%%%*)
+ eval ac_cv_prog_make_${ac_make}_set=yes;;
+ *)
+ eval ac_cv_prog_make_${ac_make}_set=no;;
+esac
+rm -f conftest.make
+fi
+if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ SET_MAKE=
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ SET_MAKE="MAKE=${MAKE-make}"
+fi
+
+rm -rf .tst 2>/dev/null
+mkdir .tst 2>/dev/null
+if test -d .tst; then
+ am__leading_dot=.
+else
+ am__leading_dot=_
+fi
+rmdir .tst 2>/dev/null
+
+if test "`cd $srcdir && pwd`" != "`pwd`"; then
+ # Use -I$(srcdir) only when $(srcdir) != ., so that make's output
+ # is not polluted with repeated "-I."
+ am__isrc=' -I$(srcdir)'
+ # test to see if srcdir already configured
+ if test -f $srcdir/config.status; then
+ as_fn_error "source directory already configured; run \"make distclean\" there first" "$LINENO" 5
+ fi
+fi
+
+# test whether we have cygpath
+if test -z "$CYGPATH_W"; then
+ if (cygpath --version) >/dev/null 2>/dev/null; then
+ CYGPATH_W='cygpath -w'
+ else
+ CYGPATH_W=echo
+ fi
+fi
+
+
+# Define the identity of the package.
+ PACKAGE='muse'
+ VERSION='1.1'
+
+
+cat >>confdefs.h <<_ACEOF
+@%:@define PACKAGE "$PACKAGE"
+_ACEOF
+
+
+cat >>confdefs.h <<_ACEOF
+@%:@define VERSION "$VERSION"
+_ACEOF
+
+# Some tools Automake needs.
+
+ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"}
+
+
+AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"}
+
+
+AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"}
+
+
+AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"}
+
+
+MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"}
+
+# We need awk for the "check" target. The system "awk" is bad on
+# some platforms.
+# Always define AMTAR for backward compatibility.
+
+AMTAR=${AMTAR-"${am_missing_run}tar"}
+
+am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'
+
+
+
+
+
+ac_config_headers="$ac_config_headers config.h"
+
+### AM_MAINTAINER_MODE
+
+ if test x = y; then
+ INSIDE_GNOME_COMMON_TRUE=
+ INSIDE_GNOME_COMMON_FALSE='#'
+else
+ INSIDE_GNOME_COMMON_TRUE='#'
+ INSIDE_GNOME_COMMON_FALSE=
+fi
+
+
+ test -n "$ACLOCAL_FLAGS" && ACLOCAL="$ACLOCAL $ACLOCAL_FLAGS"
+
+ for k in m4 ; do ACLOCAL="$ACLOCAL -I $k" ; done
+
+
+ac_ext=cpp
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+if test -z "$CXX"; then
+ if test -n "$CCC"; then
+ CXX=$CCC
+ else
+ if test -n "$ac_tool_prefix"; then
+ for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC
+ do
+ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_CXX+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$CXX"; then
+ ac_cv_prog_CXX="$CXX" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_CXX="$ac_tool_prefix$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+CXX=$ac_cv_prog_CXX
+if test -n "$CXX"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXX" >&5
+$as_echo "$CXX" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$CXX" && break
+ done
+fi
+if test -z "$CXX"; then
+ ac_ct_CXX=$CXX
+ for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_CXX"; then
+ ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_ac_ct_CXX="$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_CXX=$ac_cv_prog_ac_ct_CXX
+if test -n "$ac_ct_CXX"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CXX" >&5
+$as_echo "$ac_ct_CXX" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$ac_ct_CXX" && break
+done
+
+ if test "x$ac_ct_CXX" = x; then
+ CXX="g++"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ CXX=$ac_ct_CXX
+ fi
+fi
+
+ fi
+fi
+# Provide some information about the compiler.
+$as_echo "$as_me:${as_lineno-$LINENO}: checking for C++ compiler version" >&5
+set X $ac_compile
+ac_compiler=$2
+for ac_option in --version -v -V -qversion; do
+ { { ac_try="$ac_compiler $ac_option >&5"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_compiler $ac_option >&5") 2>conftest.err
+ ac_status=$?
+ if test -s conftest.err; then
+ sed '10a\
+... rest of stderr output deleted ...
+ 10q' conftest.err >conftest.er1
+ cat conftest.er1 >&5
+ fi
+ rm -f conftest.er1 conftest.err
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+done
+
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+ac_clean_files_save=$ac_clean_files
+ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out"
+# Try to create an executable without -o first, disregard a.out.
+# It will help us diagnose broken compilers, and finding out an intuition
+# of exeext.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C++ compiler works" >&5
+$as_echo_n "checking whether the C++ compiler works... " >&6; }
+ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
+
+# The possible output files:
+ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*"
+
+ac_rmfiles=
+for ac_file in $ac_files
+do
+ case $ac_file in
+ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
+ * ) ac_rmfiles="$ac_rmfiles $ac_file";;
+ esac
+done
+rm -f $ac_rmfiles
+
+if { { ac_try="$ac_link_default"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_link_default") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then :
+ # Autoconf-2.13 could set the ac_cv_exeext variable to `no'.
+# So ignore a value of `no', otherwise this would lead to `EXEEXT = no'
+# in a Makefile. We should not override ac_cv_exeext if it was cached,
+# so that the user can short-circuit this test for compilers unknown to
+# Autoconf.
+for ac_file in $ac_files ''
+do
+ test -f "$ac_file" || continue
+ case $ac_file in
+ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj )
+ ;;
+ [ab].out )
+ # We found the default executable, but exeext='' is most
+ # certainly right.
+ break;;
+ *.* )
+ if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no;
+ then :; else
+ ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
+ fi
+ # We set ac_cv_exeext here because the later test for it is not
+ # safe: cross compilers may not add the suffix if given an `-o'
+ # argument, so we may need to know it at that point already.
+ # Even if this section looks crufty: it has the advantage of
+ # actually working.
+ break;;
+ * )
+ break;;
+ esac
+done
+test "$ac_cv_exeext" = no && ac_cv_exeext=
+
+else
+ ac_file=''
+fi
+if test -z "$ac_file"; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+$as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+{ as_fn_set_status 77
+as_fn_error "C++ compiler cannot create executables
+See \`config.log' for more details." "$LINENO" 5; }; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C++ compiler default output file name" >&5
+$as_echo_n "checking for C++ compiler default output file name... " >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5
+$as_echo "$ac_file" >&6; }
+ac_exeext=$ac_cv_exeext
+
+rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out
+ac_clean_files=$ac_clean_files_save
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5
+$as_echo_n "checking for suffix of executables... " >&6; }
+if { { ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_link") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then :
+ # If both `conftest.exe' and `conftest' are `present' (well, observable)
+# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will
+# work properly (i.e., refer to `conftest.exe'), while it won't with
+# `rm'.
+for ac_file in conftest.exe conftest conftest.*; do
+ test -f "$ac_file" || continue
+ case $ac_file in
+ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
+ *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
+ break;;
+ * ) break;;
+ esac
+done
+else
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error "cannot compute suffix of executables: cannot compile and link
+See \`config.log' for more details." "$LINENO" 5; }
+fi
+rm -f conftest conftest$ac_cv_exeext
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5
+$as_echo "$ac_cv_exeext" >&6; }
+
+rm -f conftest.$ac_ext
+EXEEXT=$ac_cv_exeext
+ac_exeext=$EXEEXT
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+@%:@include <stdio.h>
+int
+main ()
+{
+FILE *f = fopen ("conftest.out", "w");
+ return ferror (f) || fclose (f) != 0;
+
+ ;
+ return 0;
+}
+_ACEOF
+ac_clean_files="$ac_clean_files conftest.out"
+# Check that the compiler produces executables we can run. If not, either
+# the compiler is broken, or we cross compile.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5
+$as_echo_n "checking whether we are cross compiling... " >&6; }
+if test "$cross_compiling" != yes; then
+ { { ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_link") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+ if { ac_try='./conftest$ac_cv_exeext'
+ { { case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_try") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; }; then
+ cross_compiling=no
+ else
+ if test "$cross_compiling" = maybe; then
+ cross_compiling=yes
+ else
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error "cannot run C++ compiled programs.
+If you meant to cross compile, use \`--host'.
+See \`config.log' for more details." "$LINENO" 5; }
+ fi
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5
+$as_echo "$cross_compiling" >&6; }
+
+rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out
+ac_clean_files=$ac_clean_files_save
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5
+$as_echo_n "checking for suffix of object files... " >&6; }
+if test "${ac_cv_objext+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.o conftest.obj
+if { { ac_try="$ac_compile"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_compile") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then :
+ for ac_file in conftest.o conftest.obj conftest.*; do
+ test -f "$ac_file" || continue;
+ case $ac_file in
+ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;;
+ *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
+ break;;
+ esac
+done
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error "cannot compute suffix of object files: cannot compile
+See \`config.log' for more details." "$LINENO" 5; }
+fi
+rm -f conftest.$ac_cv_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5
+$as_echo "$ac_cv_objext" >&6; }
+OBJEXT=$ac_cv_objext
+ac_objext=$OBJEXT
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C++ compiler" >&5
+$as_echo_n "checking whether we are using the GNU C++ compiler... " >&6; }
+if test "${ac_cv_cxx_compiler_gnu+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+#ifndef __GNUC__
+ choke me
+#endif
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_compile "$LINENO"; then :
+ ac_compiler_gnu=yes
+else
+ ac_compiler_gnu=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ac_cv_cxx_compiler_gnu=$ac_compiler_gnu
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cxx_compiler_gnu" >&5
+$as_echo "$ac_cv_cxx_compiler_gnu" >&6; }
+if test $ac_compiler_gnu = yes; then
+ GXX=yes
+else
+ GXX=
+fi
+ac_test_CXXFLAGS=${CXXFLAGS+set}
+ac_save_CXXFLAGS=$CXXFLAGS
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX accepts -g" >&5
+$as_echo_n "checking whether $CXX accepts -g... " >&6; }
+if test "${ac_cv_prog_cxx_g+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_save_cxx_werror_flag=$ac_cxx_werror_flag
+ ac_cxx_werror_flag=yes
+ ac_cv_prog_cxx_g=no
+ CXXFLAGS="-g"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_compile "$LINENO"; then :
+ ac_cv_prog_cxx_g=yes
+else
+ CXXFLAGS=""
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_compile "$LINENO"; then :
+
+else
+ ac_cxx_werror_flag=$ac_save_cxx_werror_flag
+ CXXFLAGS="-g"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_compile "$LINENO"; then :
+ ac_cv_prog_cxx_g=yes
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ ac_cxx_werror_flag=$ac_save_cxx_werror_flag
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_g" >&5
+$as_echo "$ac_cv_prog_cxx_g" >&6; }
+if test "$ac_test_CXXFLAGS" = set; then
+ CXXFLAGS=$ac_save_CXXFLAGS
+elif test $ac_cv_prog_cxx_g = yes; then
+ if test "$GXX" = yes; then
+ CXXFLAGS="-g -O2"
+ else
+ CXXFLAGS="-g"
+ fi
+else
+ if test "$GXX" = yes; then
+ CXXFLAGS="-O2"
+ else
+ CXXFLAGS=
+ fi
+fi
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+DEPDIR="${am__leading_dot}deps"
+
+ac_config_commands="$ac_config_commands depfiles"
+
+
+am_make=${MAKE-make}
+cat > confinc << 'END'
+am__doit:
+ @echo this is the am__doit target
+.PHONY: am__doit
+END
+# If we don't find an include directive, just comment out the code.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5
+$as_echo_n "checking for style of include used by $am_make... " >&6; }
+am__include="#"
+am__quote=
+_am_result=none
+# First try GNU make style include.
+echo "include confinc" > confmf
+# Ignore all kinds of additional output from `make'.
+case `$am_make -s -f confmf 2> /dev/null` in #(
+*the\ am__doit\ target*)
+ am__include=include
+ am__quote=
+ _am_result=GNU
+ ;;
+esac
+# Now try BSD make style include.
+if test "$am__include" = "#"; then
+ echo '.include "confinc"' > confmf
+ case `$am_make -s -f confmf 2> /dev/null` in #(
+ *the\ am__doit\ target*)
+ am__include=.include
+ am__quote="\""
+ _am_result=BSD
+ ;;
+ esac
+fi
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5
+$as_echo "$_am_result" >&6; }
+rm -f confinc confmf
+
+@%:@ Check whether --enable-dependency-tracking was given.
+if test "${enable_dependency_tracking+set}" = set; then :
+ enableval=$enable_dependency_tracking;
+fi
+
+if test "x$enable_dependency_tracking" != xno; then
+ am_depcomp="$ac_aux_dir/depcomp"
+ AMDEPBACKSLASH='\'
+fi
+ if test "x$enable_dependency_tracking" != xno; then
+ AMDEP_TRUE=
+ AMDEP_FALSE='#'
+else
+ AMDEP_TRUE='#'
+ AMDEP_FALSE=
+fi
+
+
+
+depcc="$CXX" am_compiler_list=
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
+$as_echo_n "checking dependency style of $depcc... " >&6; }
+if test "${am_cv_CXX_dependencies_compiler_type+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
+ # We make a subdir and do the tests there. Otherwise we can end up
+ # making bogus files that we don't know about and never remove. For
+ # instance it was reported that on HP-UX the gcc test will end up
+ # making a dummy file named `D' -- because `-MD' means `put the output
+ # in D'.
+ mkdir conftest.dir
+ # Copy depcomp to subdir because otherwise we won't find it if we're
+ # using a relative directory.
+ cp "$am_depcomp" conftest.dir
+ cd conftest.dir
+ # We will build objects and dependencies in a subdirectory because
+ # it helps to detect inapplicable dependency modes. For instance
+ # both Tru64's cc and ICC support -MD to output dependencies as a
+ # side effect of compilation, but ICC will put the dependencies in
+ # the current directory while Tru64 will put them in the object
+ # directory.
+ mkdir sub
+
+ am_cv_CXX_dependencies_compiler_type=none
+ if test "$am_compiler_list" = ""; then
+ am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
+ fi
+ am__universal=false
+ case " $depcc " in #(
+ *\ -arch\ *\ -arch\ *) am__universal=true ;;
+ esac
+
+ for depmode in $am_compiler_list; do
+ # Setup a source with many dependencies, because some compilers
+ # like to wrap large dependency lists on column 80 (with \), and
+ # we should not choose a depcomp mode which is confused by this.
+ #
+ # We need to recreate these files for each test, as the compiler may
+ # overwrite some of them when testing with obscure command lines.
+ # This happens at least with the AIX C compiler.
+ : > sub/conftest.c
+ for i in 1 2 3 4 5 6; do
+ echo '#include "conftst'$i'.h"' >> sub/conftest.c
+ # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
+ # Solaris 8's {/usr,}/bin/sh.
+ touch sub/conftst$i.h
+ done
+ echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
+
+ # We check with `-c' and `-o' for the sake of the "dashmstdout"
+ # mode. It turns out that the SunPro C++ compiler does not properly
+ # handle `-M -o', and we need to detect this. Also, some Intel
+ # versions had trouble with output in subdirs
+ am__obj=sub/conftest.${OBJEXT-o}
+ am__minus_obj="-o $am__obj"
+ case $depmode in
+ gcc)
+ # This depmode causes a compiler race in universal mode.
+ test "$am__universal" = false || continue
+ ;;
+ nosideeffect)
+ # after this tag, mechanisms are not by side-effect, so they'll
+ # only be used when explicitly requested
+ if test "x$enable_dependency_tracking" = xyes; then
+ continue
+ else
+ break
+ fi
+ ;;
+ msvisualcpp | msvcmsys)
+ # This compiler won't grok `-c -o', but also, the minuso test has
+ # not run yet. These depmodes are late enough in the game, and
+ # so weak that their functioning should not be impacted.
+ am__obj=conftest.${OBJEXT-o}
+ am__minus_obj=
+ ;;
+ none) break ;;
+ esac
+ if depmode=$depmode \
+ source=sub/conftest.c object=$am__obj \
+ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
+ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
+ >/dev/null 2>conftest.err &&
+ grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
+ grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
+ grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
+ ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
+ # icc doesn't choke on unknown options, it will just issue warnings
+ # or remarks (even with -Werror). So we grep stderr for any message
+ # that says an option was ignored or not supported.
+ # When given -MP, icc 7.0 and 7.1 complain thusly:
+ # icc: Command line warning: ignoring option '-M'; no argument required
+ # The diagnosis changed in icc 8.0:
+ # icc: Command line remark: option '-MP' not supported
+ if (grep 'ignoring option' conftest.err ||
+ grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
+ am_cv_CXX_dependencies_compiler_type=$depmode
+ break
+ fi
+ fi
+ done
+
+ cd ..
+ rm -rf conftest.dir
+else
+ am_cv_CXX_dependencies_compiler_type=none
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CXX_dependencies_compiler_type" >&5
+$as_echo "$am_cv_CXX_dependencies_compiler_type" >&6; }
+CXXDEPMODE=depmode=$am_cv_CXX_dependencies_compiler_type
+
+ if
+ test "x$enable_dependency_tracking" != xno \
+ && test "$am_cv_CXX_dependencies_compiler_type" = gcc3; then
+ am__fastdepCXX_TRUE=
+ am__fastdepCXX_FALSE='#'
+else
+ am__fastdepCXX_TRUE='#'
+ am__fastdepCXX_FALSE=
+fi
+
+
+case `pwd` in
+ *\ * | *\ *)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5
+$as_echo "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;;
+esac
+
+
+
+macro_version='2.2.6b'
+macro_revision='1.3017'
+
+
+
+
+
+
+
+
+
+
+
+
+
+ltmain="$ac_aux_dir/ltmain.sh"
+
+# Make sure we can run config.sub.
+$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
+ as_fn_error "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5
+$as_echo_n "checking build system type... " >&6; }
+if test "${ac_cv_build+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_build_alias=$build_alias
+test "x$ac_build_alias" = x &&
+ ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"`
+test "x$ac_build_alias" = x &&
+ as_fn_error "cannot guess build type; you must specify one" "$LINENO" 5
+ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||
+ as_fn_error "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5
+$as_echo "$ac_cv_build" >&6; }
+case $ac_cv_build in
+*-*-*) ;;
+*) as_fn_error "invalid value of canonical build" "$LINENO" 5;;
+esac
+build=$ac_cv_build
+ac_save_IFS=$IFS; IFS='-'
+set x $ac_cv_build
+shift
+build_cpu=$1
+build_vendor=$2
+shift; shift
+# Remember, the first character of IFS is used to create $*,
+# except with old shells:
+build_os=$*
+IFS=$ac_save_IFS
+case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5
+$as_echo_n "checking host system type... " >&6; }
+if test "${ac_cv_host+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "x$host_alias" = x; then
+ ac_cv_host=$ac_cv_build
+else
+ ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` ||
+ as_fn_error "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5
+$as_echo "$ac_cv_host" >&6; }
+case $ac_cv_host in
+*-*-*) ;;
+*) as_fn_error "invalid value of canonical host" "$LINENO" 5;;
+esac
+host=$ac_cv_host
+ac_save_IFS=$IFS; IFS='-'
+set x $ac_cv_host
+shift
+host_cpu=$1
+host_vendor=$2
+shift; shift
+# Remember, the first character of IFS is used to create $*,
+# except with old shells:
+host_os=$*
+IFS=$ac_save_IFS
+case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac
+
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
+set dummy ${ac_tool_prefix}gcc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_CC+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_CC="${ac_tool_prefix}gcc"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_CC"; then
+ ac_ct_CC=$CC
+ # Extract the first word of "gcc", so it can be a program name with args.
+set dummy gcc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_ac_ct_CC+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_CC"; then
+ ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_ac_ct_CC="gcc"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
+$as_echo "$ac_ct_CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_CC" = x; then
+ CC=""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ CC=$ac_ct_CC
+ fi
+else
+ CC="$ac_cv_prog_CC"
+fi
+
+if test -z "$CC"; then
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
+set dummy ${ac_tool_prefix}cc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_CC+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_CC="${ac_tool_prefix}cc"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ fi
+fi
+if test -z "$CC"; then
+ # Extract the first word of "cc", so it can be a program name with args.
+set dummy cc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_CC+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+ ac_prog_rejected=no
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
+ ac_prog_rejected=yes
+ continue
+ fi
+ ac_cv_prog_CC="cc"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+if test $ac_prog_rejected = yes; then
+ # We found a bogon in the path, so make sure we never use it.
+ set dummy $ac_cv_prog_CC
+ shift
+ if test $@%:@ != 0; then
+ # We chose a different compiler from the bogus one.
+ # However, it has the same basename, so the bogon will be chosen
+ # first if we set CC to just the basename; use the full file name.
+ shift
+ ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
+ fi
+fi
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$CC"; then
+ if test -n "$ac_tool_prefix"; then
+ for ac_prog in cl.exe
+ do
+ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_CC+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$CC" && break
+ done
+fi
+if test -z "$CC"; then
+ ac_ct_CC=$CC
+ for ac_prog in cl.exe
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_ac_ct_CC+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_CC"; then
+ ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_ac_ct_CC="$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
+$as_echo "$ac_ct_CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$ac_ct_CC" && break
+done
+
+ if test "x$ac_ct_CC" = x; then
+ CC=""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ CC=$ac_ct_CC
+ fi
+fi
+
+fi
+
+
+test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error "no acceptable C compiler found in \$PATH
+See \`config.log' for more details." "$LINENO" 5; }
+
+# Provide some information about the compiler.
+$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
+set X $ac_compile
+ac_compiler=$2
+for ac_option in --version -v -V -qversion; do
+ { { ac_try="$ac_compiler $ac_option >&5"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_compiler $ac_option >&5") 2>conftest.err
+ ac_status=$?
+ if test -s conftest.err; then
+ sed '10a\
+... rest of stderr output deleted ...
+ 10q' conftest.err >conftest.er1
+ cat conftest.er1 >&5
+ fi
+ rm -f conftest.er1 conftest.err
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+done
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5
+$as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
+if test "${ac_cv_c_compiler_gnu+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+#ifndef __GNUC__
+ choke me
+#endif
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_compiler_gnu=yes
+else
+ ac_compiler_gnu=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ac_cv_c_compiler_gnu=$ac_compiler_gnu
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
+$as_echo "$ac_cv_c_compiler_gnu" >&6; }
+if test $ac_compiler_gnu = yes; then
+ GCC=yes
+else
+ GCC=
+fi
+ac_test_CFLAGS=${CFLAGS+set}
+ac_save_CFLAGS=$CFLAGS
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
+$as_echo_n "checking whether $CC accepts -g... " >&6; }
+if test "${ac_cv_prog_cc_g+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_save_c_werror_flag=$ac_c_werror_flag
+ ac_c_werror_flag=yes
+ ac_cv_prog_cc_g=no
+ CFLAGS="-g"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_prog_cc_g=yes
+else
+ CFLAGS=""
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+
+else
+ ac_c_werror_flag=$ac_save_c_werror_flag
+ CFLAGS="-g"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_prog_cc_g=yes
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ ac_c_werror_flag=$ac_save_c_werror_flag
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
+$as_echo "$ac_cv_prog_cc_g" >&6; }
+if test "$ac_test_CFLAGS" = set; then
+ CFLAGS=$ac_save_CFLAGS
+elif test $ac_cv_prog_cc_g = yes; then
+ if test "$GCC" = yes; then
+ CFLAGS="-g -O2"
+ else
+ CFLAGS="-g"
+ fi
+else
+ if test "$GCC" = yes; then
+ CFLAGS="-O2"
+ else
+ CFLAGS=
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5
+$as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
+if test "${ac_cv_prog_cc_c89+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_cv_prog_cc_c89=no
+ac_save_CC=$CC
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdarg.h>
+#include <stdio.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
+struct buf { int x; };
+FILE * (*rcsopen) (struct buf *, struct stat *, int);
+static char *e (p, i)
+ char **p;
+ int i;
+{
+ return p[i];
+}
+static char *f (char * (*g) (char **, int), char **p, ...)
+{
+ char *s;
+ va_list v;
+ va_start (v,p);
+ s = g (p, va_arg (v,int));
+ va_end (v);
+ return s;
+}
+
+/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has
+ function prototypes and stuff, but not '\xHH' hex character constants.
+ These don't provoke an error unfortunately, instead are silently treated
+ as 'x'. The following induces an error, until -std is added to get
+ proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an
+ array size at least. It's necessary to write '\x00'==0 to get something
+ that's true only with -std. */
+int osf4_cc_array ['\x00' == 0 ? 1 : -1];
+
+/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
+ inside strings and character constants. */
+#define FOO(x) 'x'
+int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];
+
+int test (int i, double x);
+struct s1 {int (*f) (int a);};
+struct s2 {int (*f) (double a);};
+int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
+int argc;
+char **argv;
+int
+main ()
+{
+return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1];
+ ;
+ return 0;
+}
+_ACEOF
+for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
+ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
+do
+ CC="$ac_save_CC $ac_arg"
+ if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_prog_cc_c89=$ac_arg
+fi
+rm -f core conftest.err conftest.$ac_objext
+ test "x$ac_cv_prog_cc_c89" != "xno" && break
+done
+rm -f conftest.$ac_ext
+CC=$ac_save_CC
+
+fi
+# AC_CACHE_VAL
+case "x$ac_cv_prog_cc_c89" in
+ x)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
+$as_echo "none needed" >&6; } ;;
+ xno)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
+$as_echo "unsupported" >&6; } ;;
+ *)
+ CC="$CC $ac_cv_prog_cc_c89"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
+$as_echo "$ac_cv_prog_cc_c89" >&6; } ;;
+esac
+if test "x$ac_cv_prog_cc_c89" != xno; then :
+
+fi
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+depcc="$CC" am_compiler_list=
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
+$as_echo_n "checking dependency style of $depcc... " >&6; }
+if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
+ # We make a subdir and do the tests there. Otherwise we can end up
+ # making bogus files that we don't know about and never remove. For
+ # instance it was reported that on HP-UX the gcc test will end up
+ # making a dummy file named `D' -- because `-MD' means `put the output
+ # in D'.
+ mkdir conftest.dir
+ # Copy depcomp to subdir because otherwise we won't find it if we're
+ # using a relative directory.
+ cp "$am_depcomp" conftest.dir
+ cd conftest.dir
+ # We will build objects and dependencies in a subdirectory because
+ # it helps to detect inapplicable dependency modes. For instance
+ # both Tru64's cc and ICC support -MD to output dependencies as a
+ # side effect of compilation, but ICC will put the dependencies in
+ # the current directory while Tru64 will put them in the object
+ # directory.
+ mkdir sub
+
+ am_cv_CC_dependencies_compiler_type=none
+ if test "$am_compiler_list" = ""; then
+ am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
+ fi
+ am__universal=false
+ case " $depcc " in #(
+ *\ -arch\ *\ -arch\ *) am__universal=true ;;
+ esac
+
+ for depmode in $am_compiler_list; do
+ # Setup a source with many dependencies, because some compilers
+ # like to wrap large dependency lists on column 80 (with \), and
+ # we should not choose a depcomp mode which is confused by this.
+ #
+ # We need to recreate these files for each test, as the compiler may
+ # overwrite some of them when testing with obscure command lines.
+ # This happens at least with the AIX C compiler.
+ : > sub/conftest.c
+ for i in 1 2 3 4 5 6; do
+ echo '#include "conftst'$i'.h"' >> sub/conftest.c
+ # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
+ # Solaris 8's {/usr,}/bin/sh.
+ touch sub/conftst$i.h
+ done
+ echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
+
+ # We check with `-c' and `-o' for the sake of the "dashmstdout"
+ # mode. It turns out that the SunPro C++ compiler does not properly
+ # handle `-M -o', and we need to detect this. Also, some Intel
+ # versions had trouble with output in subdirs
+ am__obj=sub/conftest.${OBJEXT-o}
+ am__minus_obj="-o $am__obj"
+ case $depmode in
+ gcc)
+ # This depmode causes a compiler race in universal mode.
+ test "$am__universal" = false || continue
+ ;;
+ nosideeffect)
+ # after this tag, mechanisms are not by side-effect, so they'll
+ # only be used when explicitly requested
+ if test "x$enable_dependency_tracking" = xyes; then
+ continue
+ else
+ break
+ fi
+ ;;
+ msvisualcpp | msvcmsys)
+ # This compiler won't grok `-c -o', but also, the minuso test has
+ # not run yet. These depmodes are late enough in the game, and
+ # so weak that their functioning should not be impacted.
+ am__obj=conftest.${OBJEXT-o}
+ am__minus_obj=
+ ;;
+ none) break ;;
+ esac
+ if depmode=$depmode \
+ source=sub/conftest.c object=$am__obj \
+ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
+ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
+ >/dev/null 2>conftest.err &&
+ grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
+ grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
+ grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
+ ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
+ # icc doesn't choke on unknown options, it will just issue warnings
+ # or remarks (even with -Werror). So we grep stderr for any message
+ # that says an option was ignored or not supported.
+ # When given -MP, icc 7.0 and 7.1 complain thusly:
+ # icc: Command line warning: ignoring option '-M'; no argument required
+ # The diagnosis changed in icc 8.0:
+ # icc: Command line remark: option '-MP' not supported
+ if (grep 'ignoring option' conftest.err ||
+ grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
+ am_cv_CC_dependencies_compiler_type=$depmode
+ break
+ fi
+ fi
+ done
+
+ cd ..
+ rm -rf conftest.dir
+else
+ am_cv_CC_dependencies_compiler_type=none
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5
+$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; }
+CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type
+
+ if
+ test "x$enable_dependency_tracking" != xno \
+ && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then
+ am__fastdepCC_TRUE=
+ am__fastdepCC_FALSE='#'
+else
+ am__fastdepCC_TRUE='#'
+ am__fastdepCC_FALSE=
+fi
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5
+$as_echo_n "checking for a sed that does not truncate output... " >&6; }
+if test "${ac_cv_path_SED+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/
+ for ac_i in 1 2 3 4 5 6 7; do
+ ac_script="$ac_script$as_nl$ac_script"
+ done
+ echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed
+ { ac_script=; unset ac_script;}
+ if test -z "$SED"; then
+ ac_path_SED_found=false
+ # Loop through the user's path and test for each of PROGNAME-LIST
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_prog in sed gsed; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ ac_path_SED="$as_dir/$ac_prog$ac_exec_ext"
+ { test -f "$ac_path_SED" && $as_test_x "$ac_path_SED"; } || continue
+# Check for GNU ac_path_SED and select it if it is found.
+ # Check for GNU $ac_path_SED
+case `"$ac_path_SED" --version 2>&1` in
+*GNU*)
+ ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;;
+*)
+ ac_count=0
+ $as_echo_n 0123456789 >"conftest.in"
+ while :
+ do
+ cat "conftest.in" "conftest.in" >"conftest.tmp"
+ mv "conftest.tmp" "conftest.in"
+ cp "conftest.in" "conftest.nl"
+ $as_echo '' >> "conftest.nl"
+ "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break
+ diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+ as_fn_arith $ac_count + 1 && ac_count=$as_val
+ if test $ac_count -gt ${ac_path_SED_max-0}; then
+ # Best one so far, save it but keep looking for a better one
+ ac_cv_path_SED="$ac_path_SED"
+ ac_path_SED_max=$ac_count
+ fi
+ # 10*(2^10) chars as input seems more than enough
+ test $ac_count -gt 10 && break
+ done
+ rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+ $ac_path_SED_found && break 3
+ done
+ done
+ done
+IFS=$as_save_IFS
+ if test -z "$ac_cv_path_SED"; then
+ as_fn_error "no acceptable sed could be found in \$PATH" "$LINENO" 5
+ fi
+else
+ ac_cv_path_SED=$SED
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5
+$as_echo "$ac_cv_path_SED" >&6; }
+ SED="$ac_cv_path_SED"
+ rm -f conftest.sed
+
+test -z "$SED" && SED=sed
+Xsed="$SED -e 1s/^X//"
+
+
+
+
+
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
+$as_echo_n "checking for grep that handles long lines and -e... " >&6; }
+if test "${ac_cv_path_GREP+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -z "$GREP"; then
+ ac_path_GREP_found=false
+ # Loop through the user's path and test for each of PROGNAME-LIST
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_prog in grep ggrep; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
+ { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue
+# Check for GNU ac_path_GREP and select it if it is found.
+ # Check for GNU $ac_path_GREP
+case `"$ac_path_GREP" --version 2>&1` in
+*GNU*)
+ ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;;
+*)
+ ac_count=0
+ $as_echo_n 0123456789 >"conftest.in"
+ while :
+ do
+ cat "conftest.in" "conftest.in" >"conftest.tmp"
+ mv "conftest.tmp" "conftest.in"
+ cp "conftest.in" "conftest.nl"
+ $as_echo 'GREP' >> "conftest.nl"
+ "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break
+ diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+ as_fn_arith $ac_count + 1 && ac_count=$as_val
+ if test $ac_count -gt ${ac_path_GREP_max-0}; then
+ # Best one so far, save it but keep looking for a better one
+ ac_cv_path_GREP="$ac_path_GREP"
+ ac_path_GREP_max=$ac_count
+ fi
+ # 10*(2^10) chars as input seems more than enough
+ test $ac_count -gt 10 && break
+ done
+ rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+ $ac_path_GREP_found && break 3
+ done
+ done
+ done
+IFS=$as_save_IFS
+ if test -z "$ac_cv_path_GREP"; then
+ as_fn_error "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+ fi
+else
+ ac_cv_path_GREP=$GREP
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5
+$as_echo "$ac_cv_path_GREP" >&6; }
+ GREP="$ac_cv_path_GREP"
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
+$as_echo_n "checking for egrep... " >&6; }
+if test "${ac_cv_path_EGREP+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
+ then ac_cv_path_EGREP="$GREP -E"
+ else
+ if test -z "$EGREP"; then
+ ac_path_EGREP_found=false
+ # Loop through the user's path and test for each of PROGNAME-LIST
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_prog in egrep; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
+ { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue
+# Check for GNU ac_path_EGREP and select it if it is found.
+ # Check for GNU $ac_path_EGREP
+case `"$ac_path_EGREP" --version 2>&1` in
+*GNU*)
+ ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;;
+*)
+ ac_count=0
+ $as_echo_n 0123456789 >"conftest.in"
+ while :
+ do
+ cat "conftest.in" "conftest.in" >"conftest.tmp"
+ mv "conftest.tmp" "conftest.in"
+ cp "conftest.in" "conftest.nl"
+ $as_echo 'EGREP' >> "conftest.nl"
+ "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
+ diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+ as_fn_arith $ac_count + 1 && ac_count=$as_val
+ if test $ac_count -gt ${ac_path_EGREP_max-0}; then
+ # Best one so far, save it but keep looking for a better one
+ ac_cv_path_EGREP="$ac_path_EGREP"
+ ac_path_EGREP_max=$ac_count
+ fi
+ # 10*(2^10) chars as input seems more than enough
+ test $ac_count -gt 10 && break
+ done
+ rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+ $ac_path_EGREP_found && break 3
+ done
+ done
+ done
+IFS=$as_save_IFS
+ if test -z "$ac_cv_path_EGREP"; then
+ as_fn_error "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+ fi
+else
+ ac_cv_path_EGREP=$EGREP
+fi
+
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5
+$as_echo "$ac_cv_path_EGREP" >&6; }
+ EGREP="$ac_cv_path_EGREP"
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5
+$as_echo_n "checking for fgrep... " >&6; }
+if test "${ac_cv_path_FGREP+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1
+ then ac_cv_path_FGREP="$GREP -F"
+ else
+ if test -z "$FGREP"; then
+ ac_path_FGREP_found=false
+ # Loop through the user's path and test for each of PROGNAME-LIST
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_prog in fgrep; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext"
+ { test -f "$ac_path_FGREP" && $as_test_x "$ac_path_FGREP"; } || continue
+# Check for GNU ac_path_FGREP and select it if it is found.
+ # Check for GNU $ac_path_FGREP
+case `"$ac_path_FGREP" --version 2>&1` in
+*GNU*)
+ ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_found=:;;
+*)
+ ac_count=0
+ $as_echo_n 0123456789 >"conftest.in"
+ while :
+ do
+ cat "conftest.in" "conftest.in" >"conftest.tmp"
+ mv "conftest.tmp" "conftest.in"
+ cp "conftest.in" "conftest.nl"
+ $as_echo 'FGREP' >> "conftest.nl"
+ "$ac_path_FGREP" FGREP < "conftest.nl" >"conftest.out" 2>/dev/null || break
+ diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+ as_fn_arith $ac_count + 1 && ac_count=$as_val
+ if test $ac_count -gt ${ac_path_FGREP_max-0}; then
+ # Best one so far, save it but keep looking for a better one
+ ac_cv_path_FGREP="$ac_path_FGREP"
+ ac_path_FGREP_max=$ac_count
+ fi
+ # 10*(2^10) chars as input seems more than enough
+ test $ac_count -gt 10 && break
+ done
+ rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+ $ac_path_FGREP_found && break 3
+ done
+ done
+ done
+IFS=$as_save_IFS
+ if test -z "$ac_cv_path_FGREP"; then
+ as_fn_error "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+ fi
+else
+ ac_cv_path_FGREP=$FGREP
+fi
+
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5
+$as_echo "$ac_cv_path_FGREP" >&6; }
+ FGREP="$ac_cv_path_FGREP"
+
+
+test -z "$GREP" && GREP=grep
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+@%:@ Check whether --with-gnu-ld was given.
+if test "${with_gnu_ld+set}" = set; then :
+ withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes
+else
+ with_gnu_ld=no
+fi
+
+ac_prog=ld
+if test "$GCC" = yes; then
+ # Check if gcc -print-prog-name=ld gives a path.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5
+$as_echo_n "checking for ld used by $CC... " >&6; }
+ case $host in
+ *-*-mingw*)
+ # gcc leaves a trailing carriage return which upsets mingw
+ ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
+ *)
+ ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
+ esac
+ case $ac_prog in
+ # Accept absolute paths.
+ [\\/]* | ?:[\\/]*)
+ re_direlt='/[^/][^/]*/\.\./'
+ # Canonicalize the pathname of ld
+ ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'`
+ while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do
+ ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"`
+ done
+ test -z "$LD" && LD="$ac_prog"
+ ;;
+ "")
+ # If it fails, then pretend we aren't using GCC.
+ ac_prog=ld
+ ;;
+ *)
+ # If it is relative, then search for the first ld in PATH.
+ with_gnu_ld=unknown
+ ;;
+ esac
+elif test "$with_gnu_ld" = yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5
+$as_echo_n "checking for GNU ld... " >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5
+$as_echo_n "checking for non-GNU ld... " >&6; }
+fi
+if test "${lt_cv_path_LD+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -z "$LD"; then
+ lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+ for ac_dir in $PATH; do
+ IFS="$lt_save_ifs"
+ test -z "$ac_dir" && ac_dir=.
+ if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
+ lt_cv_path_LD="$ac_dir/$ac_prog"
+ # Check to see if the program is GNU ld. I'd rather use --version,
+ # but apparently some variants of GNU ld only accept -v.
+ # Break only if it was the GNU/non-GNU ld that we prefer.
+ case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
+ *GNU* | *'with BFD'*)
+ test "$with_gnu_ld" != no && break
+ ;;
+ *)
+ test "$with_gnu_ld" != yes && break
+ ;;
+ esac
+ fi
+ done
+ IFS="$lt_save_ifs"
+else
+ lt_cv_path_LD="$LD" # Let the user override the test with a path.
+fi
+fi
+
+LD="$lt_cv_path_LD"
+if test -n "$LD"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LD" >&5
+$as_echo "$LD" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+test -z "$LD" && as_fn_error "no acceptable ld found in \$PATH" "$LINENO" 5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5
+$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; }
+if test "${lt_cv_prog_gnu_ld+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ # I'd rather use --version here, but apparently some GNU lds only accept -v.
+case `$LD -v 2>&1 </dev/null` in
+*GNU* | *'with BFD'*)
+ lt_cv_prog_gnu_ld=yes
+ ;;
+*)
+ lt_cv_prog_gnu_ld=no
+ ;;
+esac
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_gnu_ld" >&5
+$as_echo "$lt_cv_prog_gnu_ld" >&6; }
+with_gnu_ld=$lt_cv_prog_gnu_ld
+
+
+
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5
+$as_echo_n "checking for BSD- or MS-compatible name lister (nm)... " >&6; }
+if test "${lt_cv_path_NM+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$NM"; then
+ # Let the user override the test.
+ lt_cv_path_NM="$NM"
+else
+ lt_nm_to_check="${ac_tool_prefix}nm"
+ if test -n "$ac_tool_prefix" && test "$build" = "$host"; then
+ lt_nm_to_check="$lt_nm_to_check nm"
+ fi
+ for lt_tmp_nm in $lt_nm_to_check; do
+ lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+ for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do
+ IFS="$lt_save_ifs"
+ test -z "$ac_dir" && ac_dir=.
+ tmp_nm="$ac_dir/$lt_tmp_nm"
+ if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then
+ # Check to see if the nm accepts a BSD-compat flag.
+ # Adding the `sed 1q' prevents false positives on HP-UX, which says:
+ # nm: unknown option "B" ignored
+ # Tru64's nm complains that /dev/null is an invalid object file
+ case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in
+ */dev/null* | *'Invalid file or object type'*)
+ lt_cv_path_NM="$tmp_nm -B"
+ break
+ ;;
+ *)
+ case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in
+ */dev/null*)
+ lt_cv_path_NM="$tmp_nm -p"
+ break
+ ;;
+ *)
+ lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but
+ continue # so that we can try to find one that supports BSD flags
+ ;;
+ esac
+ ;;
+ esac
+ fi
+ done
+ IFS="$lt_save_ifs"
+ done
+ : ${lt_cv_path_NM=no}
+fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5
+$as_echo "$lt_cv_path_NM" >&6; }
+if test "$lt_cv_path_NM" != "no"; then
+ NM="$lt_cv_path_NM"
+else
+ # Didn't find any BSD compatible name lister, look for dumpbin.
+ if test -n "$ac_tool_prefix"; then
+ for ac_prog in "dumpbin -symbols" "link -dump -symbols"
+ do
+ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_DUMPBIN+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$DUMPBIN"; then
+ ac_cv_prog_DUMPBIN="$DUMPBIN" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+DUMPBIN=$ac_cv_prog_DUMPBIN
+if test -n "$DUMPBIN"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DUMPBIN" >&5
+$as_echo "$DUMPBIN" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$DUMPBIN" && break
+ done
+fi
+if test -z "$DUMPBIN"; then
+ ac_ct_DUMPBIN=$DUMPBIN
+ for ac_prog in "dumpbin -symbols" "link -dump -symbols"
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_ac_ct_DUMPBIN+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_DUMPBIN"; then
+ ac_cv_prog_ac_ct_DUMPBIN="$ac_ct_DUMPBIN" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_ac_ct_DUMPBIN="$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN
+if test -n "$ac_ct_DUMPBIN"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DUMPBIN" >&5
+$as_echo "$ac_ct_DUMPBIN" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$ac_ct_DUMPBIN" && break
+done
+
+ if test "x$ac_ct_DUMPBIN" = x; then
+ DUMPBIN=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ DUMPBIN=$ac_ct_DUMPBIN
+ fi
+fi
+
+
+ if test "$DUMPBIN" != ":"; then
+ NM="$DUMPBIN"
+ fi
+fi
+test -z "$NM" && NM=nm
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5
+$as_echo_n "checking the name lister ($NM) interface... " >&6; }
+if test "${lt_cv_nm_interface+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_nm_interface="BSD nm"
+ echo "int some_variable = 0;" > conftest.$ac_ext
+ (eval echo "\"\$as_me:__oline__: $ac_compile\"" >&5)
+ (eval "$ac_compile" 2>conftest.err)
+ cat conftest.err >&5
+ (eval echo "\"\$as_me:__oline__: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
+ (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
+ cat conftest.err >&5
+ (eval echo "\"\$as_me:__oline__: output\"" >&5)
+ cat conftest.out >&5
+ if $GREP 'External.*some_variable' conftest.out > /dev/null; then
+ lt_cv_nm_interface="MS dumpbin"
+ fi
+ rm -f conftest*
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5
+$as_echo "$lt_cv_nm_interface" >&6; }
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5
+$as_echo_n "checking whether ln -s works... " >&6; }
+LN_S=$as_ln_s
+if test "$LN_S" = "ln -s"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5
+$as_echo "no, using $LN_S" >&6; }
+fi
+
+# find the maximum length of command line arguments
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5
+$as_echo_n "checking the maximum length of command line arguments... " >&6; }
+if test "${lt_cv_sys_max_cmd_len+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ i=0
+ teststring="ABCD"
+
+ case $build_os in
+ msdosdjgpp*)
+ # On DJGPP, this test can blow up pretty badly due to problems in libc
+ # (any single argument exceeding 2000 bytes causes a buffer overrun
+ # during glob expansion). Even if it were fixed, the result of this
+ # check would be larger than it should be.
+ lt_cv_sys_max_cmd_len=12288; # 12K is about right
+ ;;
+
+ gnu*)
+ # Under GNU Hurd, this test is not required because there is
+ # no limit to the length of command line arguments.
+ # Libtool will interpret -1 as no limit whatsoever
+ lt_cv_sys_max_cmd_len=-1;
+ ;;
+
+ cygwin* | mingw* | cegcc*)
+ # On Win9x/ME, this test blows up -- it succeeds, but takes
+ # about 5 minutes as the teststring grows exponentially.
+ # Worse, since 9x/ME are not pre-emptively multitasking,
+ # you end up with a "frozen" computer, even though with patience
+ # the test eventually succeeds (with a max line length of 256k).
+ # Instead, let's just punt: use the minimum linelength reported by
+ # all of the supported platforms: 8192 (on NT/2K/XP).
+ lt_cv_sys_max_cmd_len=8192;
+ ;;
+
+ amigaos*)
+ # On AmigaOS with pdksh, this test takes hours, literally.
+ # So we just punt and use a minimum line length of 8192.
+ lt_cv_sys_max_cmd_len=8192;
+ ;;
+
+ netbsd* | freebsd* | openbsd* | darwin* | dragonfly*)
+ # This has been around since 386BSD, at least. Likely further.
+ if test -x /sbin/sysctl; then
+ lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax`
+ elif test -x /usr/sbin/sysctl; then
+ lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax`
+ else
+ lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs
+ fi
+ # And add a safety zone
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
+ ;;
+
+ interix*)
+ # We know the value 262144 and hardcode it with a safety zone (like BSD)
+ lt_cv_sys_max_cmd_len=196608
+ ;;
+
+ osf*)
+ # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure
+ # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not
+ # nice to cause kernel panics so lets avoid the loop below.
+ # First set a reasonable default.
+ lt_cv_sys_max_cmd_len=16384
+ #
+ if test -x /sbin/sysconfig; then
+ case `/sbin/sysconfig -q proc exec_disable_arg_limit` in
+ *1*) lt_cv_sys_max_cmd_len=-1 ;;
+ esac
+ fi
+ ;;
+ sco3.2v5*)
+ lt_cv_sys_max_cmd_len=102400
+ ;;
+ sysv5* | sco5v6* | sysv4.2uw2*)
+ kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null`
+ if test -n "$kargmax"; then
+ lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[ ]//'`
+ else
+ lt_cv_sys_max_cmd_len=32768
+ fi
+ ;;
+ *)
+ lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null`
+ if test -n "$lt_cv_sys_max_cmd_len"; then
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
+ else
+ # Make teststring a little bigger before we do anything with it.
+ # a 1K string should be a reasonable start.
+ for i in 1 2 3 4 5 6 7 8 ; do
+ teststring=$teststring$teststring
+ done
+ SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}}
+ # If test is not a shell built-in, we'll probably end up computing a
+ # maximum length that is only half of the actual maximum length, but
+ # we can't tell.
+ while { test "X"`$SHELL $0 --fallback-echo "X$teststring$teststring" 2>/dev/null` \
+ = "XX$teststring$teststring"; } >/dev/null 2>&1 &&
+ test $i != 17 # 1/2 MB should be enough
+ do
+ i=`expr $i + 1`
+ teststring=$teststring$teststring
+ done
+ # Only check the string length outside the loop.
+ lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1`
+ teststring=
+ # Add a significant safety factor because C++ compilers can tack on
+ # massive amounts of additional arguments before passing them to the
+ # linker. It appears as though 1/2 is a usable value.
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2`
+ fi
+ ;;
+ esac
+
+fi
+
+if test -n $lt_cv_sys_max_cmd_len ; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5
+$as_echo "$lt_cv_sys_max_cmd_len" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5
+$as_echo "none" >&6; }
+fi
+max_cmd_len=$lt_cv_sys_max_cmd_len
+
+
+
+
+
+
+: ${CP="cp -f"}
+: ${MV="mv -f"}
+: ${RM="rm -f"}
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands some XSI constructs" >&5
+$as_echo_n "checking whether the shell understands some XSI constructs... " >&6; }
+# Try some XSI features
+xsi_shell=no
+( _lt_dummy="a/b/c"
+ test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \
+ = c,a/b,, \
+ && eval 'test $(( 1 + 1 )) -eq 2 \
+ && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \
+ && xsi_shell=yes
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xsi_shell" >&5
+$as_echo "$xsi_shell" >&6; }
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands \"+=\"" >&5
+$as_echo_n "checking whether the shell understands \"+=\"... " >&6; }
+lt_shell_append=no
+( foo=bar; set foo baz; eval "$1+=\$2" && test "$foo" = barbaz ) \
+ >/dev/null 2>&1 \
+ && lt_shell_append=yes
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_shell_append" >&5
+$as_echo "$lt_shell_append" >&6; }
+
+
+if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
+ lt_unset=unset
+else
+ lt_unset=false
+fi
+
+
+
+
+
+# test EBCDIC or ASCII
+case `echo X|tr X '\101'` in
+ A) # ASCII based system
+ # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr
+ lt_SP2NL='tr \040 \012'
+ lt_NL2SP='tr \015\012 \040\040'
+ ;;
+ *) # EBCDIC based system
+ lt_SP2NL='tr \100 \n'
+ lt_NL2SP='tr \r\n \100\100'
+ ;;
+esac
+
+
+
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5
+$as_echo_n "checking for $LD option to reload object files... " >&6; }
+if test "${lt_cv_ld_reload_flag+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_ld_reload_flag='-r'
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5
+$as_echo "$lt_cv_ld_reload_flag" >&6; }
+reload_flag=$lt_cv_ld_reload_flag
+case $reload_flag in
+"" | " "*) ;;
+*) reload_flag=" $reload_flag" ;;
+esac
+reload_cmds='$LD$reload_flag -o $output$reload_objs'
+case $host_os in
+ darwin*)
+ if test "$GCC" = yes; then
+ reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs'
+ else
+ reload_cmds='$LD$reload_flag -o $output$reload_objs'
+ fi
+ ;;
+esac
+
+
+
+
+
+
+
+
+
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args.
+set dummy ${ac_tool_prefix}objdump; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_OBJDUMP+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$OBJDUMP"; then
+ ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+OBJDUMP=$ac_cv_prog_OBJDUMP
+if test -n "$OBJDUMP"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5
+$as_echo "$OBJDUMP" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_OBJDUMP"; then
+ ac_ct_OBJDUMP=$OBJDUMP
+ # Extract the first word of "objdump", so it can be a program name with args.
+set dummy objdump; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_ac_ct_OBJDUMP+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_OBJDUMP"; then
+ ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_ac_ct_OBJDUMP="objdump"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP
+if test -n "$ac_ct_OBJDUMP"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5
+$as_echo "$ac_ct_OBJDUMP" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_OBJDUMP" = x; then
+ OBJDUMP="false"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ OBJDUMP=$ac_ct_OBJDUMP
+ fi
+else
+ OBJDUMP="$ac_cv_prog_OBJDUMP"
+fi
+
+test -z "$OBJDUMP" && OBJDUMP=objdump
+
+
+
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5
+$as_echo_n "checking how to recognize dependent libraries... " >&6; }
+if test "${lt_cv_deplibs_check_method+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_file_magic_cmd='$MAGIC_CMD'
+lt_cv_file_magic_test_file=
+lt_cv_deplibs_check_method='unknown'
+# Need to set the preceding variable on all platforms that support
+# interlibrary dependencies.
+# 'none' -- dependencies not supported.
+# `unknown' -- same as none, but documents that we really don't know.
+# 'pass_all' -- all dependencies passed with no checks.
+# 'test_compile' -- check by making test program.
+# 'file_magic [[regex]]' -- check by looking for files in library path
+# which responds to the $file_magic_cmd with a given extended regex.
+# If you have `file' or equivalent on your system and you're not sure
+# whether `pass_all' will *always* work, you probably want this one.
+
+case $host_os in
+aix[4-9]*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+beos*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+bsdi[45]*)
+ lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)'
+ lt_cv_file_magic_cmd='/usr/bin/file -L'
+ lt_cv_file_magic_test_file=/shlib/libc.so
+ ;;
+
+cygwin*)
+ # func_win32_libid is a shell function defined in ltmain.sh
+ lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
+ lt_cv_file_magic_cmd='func_win32_libid'
+ ;;
+
+mingw* | pw32*)
+ # Base MSYS/MinGW do not provide the 'file' command needed by
+ # func_win32_libid shell function, so use a weaker test based on 'objdump',
+ # unless we find 'file', for example because we are cross-compiling.
+ if ( file / ) >/dev/null 2>&1; then
+ lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
+ lt_cv_file_magic_cmd='func_win32_libid'
+ else
+ lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?'
+ lt_cv_file_magic_cmd='$OBJDUMP -f'
+ fi
+ ;;
+
+cegcc)
+ # use the weaker test based on 'objdump'. See mingw*.
+ lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?'
+ lt_cv_file_magic_cmd='$OBJDUMP -f'
+ ;;
+
+darwin* | rhapsody*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+freebsd* | dragonfly*)
+ if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
+ case $host_cpu in
+ i*86 )
+ # Not sure whether the presence of OpenBSD here was a mistake.
+ # Let's accept both of them until this is cleared up.
+ lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library'
+ lt_cv_file_magic_cmd=/usr/bin/file
+ lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
+ ;;
+ esac
+ else
+ lt_cv_deplibs_check_method=pass_all
+ fi
+ ;;
+
+gnu*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+hpux10.20* | hpux11*)
+ lt_cv_file_magic_cmd=/usr/bin/file
+ case $host_cpu in
+ ia64*)
+ lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64'
+ lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so
+ ;;
+ hppa*64*)
+ lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]'
+ lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl
+ ;;
+ *)
+ lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9].[0-9]) shared library'
+ lt_cv_file_magic_test_file=/usr/lib/libc.sl
+ ;;
+ esac
+ ;;
+
+interix[3-9]*)
+ # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here
+ lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$'
+ ;;
+
+irix5* | irix6* | nonstopux*)
+ case $LD in
+ *-32|*"-32 ") libmagic=32-bit;;
+ *-n32|*"-n32 ") libmagic=N32;;
+ *-64|*"-64 ") libmagic=64-bit;;
+ *) libmagic=never-match;;
+ esac
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+# This must be Linux ELF.
+linux* | k*bsd*-gnu | kopensolaris*-gnu)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+netbsd* | netbsdelf*-gnu)
+ if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
+ lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$'
+ else
+ lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$'
+ fi
+ ;;
+
+newos6*)
+ lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)'
+ lt_cv_file_magic_cmd=/usr/bin/file
+ lt_cv_file_magic_test_file=/usr/lib/libnls.so
+ ;;
+
+*nto* | *qnx*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+openbsd*)
+ if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+ lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$'
+ else
+ lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$'
+ fi
+ ;;
+
+osf3* | osf4* | osf5*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+rdos*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+solaris*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+sysv4 | sysv4.3*)
+ case $host_vendor in
+ motorola)
+ lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]'
+ lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*`
+ ;;
+ ncr)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+ sequent)
+ lt_cv_file_magic_cmd='/bin/file'
+ lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )'
+ ;;
+ sni)
+ lt_cv_file_magic_cmd='/bin/file'
+ lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib"
+ lt_cv_file_magic_test_file=/lib/libc.so
+ ;;
+ siemens)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+ pc)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+ esac
+ ;;
+
+tpf*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+esac
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5
+$as_echo "$lt_cv_deplibs_check_method" >&6; }
+file_magic_cmd=$lt_cv_file_magic_cmd
+deplibs_check_method=$lt_cv_deplibs_check_method
+test -z "$deplibs_check_method" && deplibs_check_method=unknown
+
+
+
+
+
+
+
+
+
+
+
+
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
+set dummy ${ac_tool_prefix}ar; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_AR+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$AR"; then
+ ac_cv_prog_AR="$AR" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_AR="${ac_tool_prefix}ar"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+AR=$ac_cv_prog_AR
+if test -n "$AR"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
+$as_echo "$AR" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_AR"; then
+ ac_ct_AR=$AR
+ # Extract the first word of "ar", so it can be a program name with args.
+set dummy ar; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_ac_ct_AR+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_AR"; then
+ ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_ac_ct_AR="ar"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_AR=$ac_cv_prog_ac_ct_AR
+if test -n "$ac_ct_AR"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
+$as_echo "$ac_ct_AR" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_AR" = x; then
+ AR="false"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ AR=$ac_ct_AR
+ fi
+else
+ AR="$ac_cv_prog_AR"
+fi
+
+test -z "$AR" && AR=ar
+test -z "$AR_FLAGS" && AR_FLAGS=cru
+
+
+
+
+
+
+
+
+
+
+
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
+set dummy ${ac_tool_prefix}strip; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_STRIP+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$STRIP"; then
+ ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_STRIP="${ac_tool_prefix}strip"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+STRIP=$ac_cv_prog_STRIP
+if test -n "$STRIP"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5
+$as_echo "$STRIP" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_STRIP"; then
+ ac_ct_STRIP=$STRIP
+ # Extract the first word of "strip", so it can be a program name with args.
+set dummy strip; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_STRIP"; then
+ ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_ac_ct_STRIP="strip"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
+if test -n "$ac_ct_STRIP"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5
+$as_echo "$ac_ct_STRIP" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_STRIP" = x; then
+ STRIP=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ STRIP=$ac_ct_STRIP
+ fi
+else
+ STRIP="$ac_cv_prog_STRIP"
+fi
+
+test -z "$STRIP" && STRIP=:
+
+
+
+
+
+
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
+set dummy ${ac_tool_prefix}ranlib; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_RANLIB+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$RANLIB"; then
+ ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+RANLIB=$ac_cv_prog_RANLIB
+if test -n "$RANLIB"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5
+$as_echo "$RANLIB" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_RANLIB"; then
+ ac_ct_RANLIB=$RANLIB
+ # Extract the first word of "ranlib", so it can be a program name with args.
+set dummy ranlib; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_RANLIB"; then
+ ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_ac_ct_RANLIB="ranlib"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
+if test -n "$ac_ct_RANLIB"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5
+$as_echo "$ac_ct_RANLIB" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_RANLIB" = x; then
+ RANLIB=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ RANLIB=$ac_ct_RANLIB
+ fi
+else
+ RANLIB="$ac_cv_prog_RANLIB"
+fi
+
+test -z "$RANLIB" && RANLIB=:
+
+
+
+
+
+
+# Determine commands to create old-style static archives.
+old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs'
+old_postinstall_cmds='chmod 644 $oldlib'
+old_postuninstall_cmds=
+
+if test -n "$RANLIB"; then
+ case $host_os in
+ openbsd*)
+ old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib"
+ ;;
+ *)
+ old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib"
+ ;;
+ esac
+ old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib"
+fi
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+# If no C compiler was specified, use CC.
+LTCC=${LTCC-"$CC"}
+
+# If no C compiler flags were specified, use CFLAGS.
+LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
+
+# Allow CC to be a program name with arguments.
+compiler=$CC
+
+
+# Check for command to grab the raw symbol name followed by C symbol from nm.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5
+$as_echo_n "checking command to parse $NM output from $compiler object... " >&6; }
+if test "${lt_cv_sys_global_symbol_pipe+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+
+# These are sane defaults that work on at least a few old systems.
+# [They come from Ultrix. What could be older than Ultrix?!! ;)]
+
+# Character class describing NM global symbol codes.
+symcode='[BCDEGRST]'
+
+# Regexp to match symbols that can be accessed directly from C.
+sympat='\([_A-Za-z][_A-Za-z0-9]*\)'
+
+# Define system-specific variables.
+case $host_os in
+aix*)
+ symcode='[BCDT]'
+ ;;
+cygwin* | mingw* | pw32* | cegcc*)
+ symcode='[ABCDGISTW]'
+ ;;
+hpux*)
+ if test "$host_cpu" = ia64; then
+ symcode='[ABCDEGRST]'
+ fi
+ ;;
+irix* | nonstopux*)
+ symcode='[BCDEGRST]'
+ ;;
+osf*)
+ symcode='[BCDEGQRST]'
+ ;;
+solaris*)
+ symcode='[BDRT]'
+ ;;
+sco3.2v5*)
+ symcode='[DT]'
+ ;;
+sysv4.2uw2*)
+ symcode='[DT]'
+ ;;
+sysv5* | sco5v6* | unixware* | OpenUNIX*)
+ symcode='[ABDT]'
+ ;;
+sysv4)
+ symcode='[DFNSTU]'
+ ;;
+esac
+
+# If we're using GNU nm, then use its standard symbol codes.
+case `$NM -V 2>&1` in
+*GNU* | *'with BFD'*)
+ symcode='[ABCDGIRSTW]' ;;
+esac
+
+# Transform an extracted symbol line into a proper C declaration.
+# Some systems (esp. on ia64) link data and code symbols differently,
+# so use this general approach.
+lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
+
+# Transform an extracted symbol line into symbol name and symbol address
+lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'"
+lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'"
+
+# Handle CRLF in mingw tool chain
+opt_cr=
+case $build_os in
+mingw*)
+ opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp
+ ;;
+esac
+
+# Try without a prefix underscore, then with it.
+for ac_symprfx in "" "_"; do
+
+ # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol.
+ symxfrm="\\1 $ac_symprfx\\2 \\2"
+
+ # Write the raw and C identifiers.
+ if test "$lt_cv_nm_interface" = "MS dumpbin"; then
+ # Fake it for dumpbin and say T for any non-static function
+ # and D for any global variable.
+ # Also find C++ and __fastcall symbols from MSVC++,
+ # which start with @ or ?.
+ lt_cv_sys_global_symbol_pipe="$AWK '"\
+" {last_section=section; section=\$ 3};"\
+" /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\
+" \$ 0!~/External *\|/{next};"\
+" / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\
+" {if(hide[section]) next};"\
+" {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\
+" {split(\$ 0, a, /\||\r/); split(a[2], s)};"\
+" s[1]~/^[@?]/{print s[1], s[1]; next};"\
+" s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\
+" ' prfx=^$ac_symprfx"
+ else
+ lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
+ fi
+
+ # Check to see that the pipe works correctly.
+ pipe_works=no
+
+ rm -f conftest*
+ cat > conftest.$ac_ext <<_LT_EOF
+#ifdef __cplusplus
+extern "C" {
+#endif
+char nm_test_var;
+void nm_test_func(void);
+void nm_test_func(void){}
+#ifdef __cplusplus
+}
+#endif
+int main(){nm_test_var='a';nm_test_func();return(0);}
+_LT_EOF
+
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ # Now try to grab the symbols.
+ nlist=conftest.nm
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist\""; } >&5
+ (eval $NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && test -s "$nlist"; then
+ # Try sorting and uniquifying the output.
+ if sort "$nlist" | uniq > "$nlist"T; then
+ mv -f "$nlist"T "$nlist"
+ else
+ rm -f "$nlist"T
+ fi
+
+ # Make sure that we snagged all the symbols we need.
+ if $GREP ' nm_test_var$' "$nlist" >/dev/null; then
+ if $GREP ' nm_test_func$' "$nlist" >/dev/null; then
+ cat <<_LT_EOF > conftest.$ac_ext
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+_LT_EOF
+ # Now generate the symbol file.
+ eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext'
+
+ cat <<_LT_EOF >> conftest.$ac_ext
+
+/* The mapping between symbol names and symbols. */
+const struct {
+ const char *name;
+ void *address;
+}
+lt__PROGRAM__LTX_preloaded_symbols[] =
+{
+ { "@PROGRAM@", (void *) 0 },
+_LT_EOF
+ $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext
+ cat <<\_LT_EOF >> conftest.$ac_ext
+ {0, (void *) 0}
+};
+
+/* This works around a problem in FreeBSD linker */
+#ifdef FREEBSD_WORKAROUND
+static const void *lt_preloaded_setup() {
+ return lt__PROGRAM__LTX_preloaded_symbols;
+}
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+_LT_EOF
+ # Now try linking the two files.
+ mv conftest.$ac_objext conftstm.$ac_objext
+ lt_save_LIBS="$LIBS"
+ lt_save_CFLAGS="$CFLAGS"
+ LIBS="conftstm.$ac_objext"
+ CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag"
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && test -s conftest${ac_exeext}; then
+ pipe_works=yes
+ fi
+ LIBS="$lt_save_LIBS"
+ CFLAGS="$lt_save_CFLAGS"
+ else
+ echo "cannot find nm_test_func in $nlist" >&5
+ fi
+ else
+ echo "cannot find nm_test_var in $nlist" >&5
+ fi
+ else
+ echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5
+ fi
+ else
+ echo "$progname: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ fi
+ rm -rf conftest* conftst*
+
+ # Do not use the global_symbol_pipe unless it works.
+ if test "$pipe_works" = yes; then
+ break
+ else
+ lt_cv_sys_global_symbol_pipe=
+ fi
+done
+
+fi
+
+if test -z "$lt_cv_sys_global_symbol_pipe"; then
+ lt_cv_sys_global_symbol_to_cdecl=
+fi
+if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5
+$as_echo "failed" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
+$as_echo "ok" >&6; }
+fi
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+@%:@ Check whether --enable-libtool-lock was given.
+if test "${enable_libtool_lock+set}" = set; then :
+ enableval=$enable_libtool_lock;
+fi
+
+test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes
+
+# Some flags need to be propagated to the compiler or linker for good
+# libtool support.
+case $host in
+ia64-*-hpux*)
+ # Find out which ABI we are using.
+ echo 'int i;' > conftest.$ac_ext
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ case `/usr/bin/file conftest.$ac_objext` in
+ *ELF-32*)
+ HPUX_IA64_MODE="32"
+ ;;
+ *ELF-64*)
+ HPUX_IA64_MODE="64"
+ ;;
+ esac
+ fi
+ rm -rf conftest*
+ ;;
+*-*-irix6*)
+ # Find out which ABI we are using.
+ echo '#line __oline__ "configure"' > conftest.$ac_ext
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ if test "$lt_cv_prog_gnu_ld" = yes; then
+ case `/usr/bin/file conftest.$ac_objext` in
+ *32-bit*)
+ LD="${LD-ld} -melf32bsmip"
+ ;;
+ *N32*)
+ LD="${LD-ld} -melf32bmipn32"
+ ;;
+ *64-bit*)
+ LD="${LD-ld} -melf64bmip"
+ ;;
+ esac
+ else
+ case `/usr/bin/file conftest.$ac_objext` in
+ *32-bit*)
+ LD="${LD-ld} -32"
+ ;;
+ *N32*)
+ LD="${LD-ld} -n32"
+ ;;
+ *64-bit*)
+ LD="${LD-ld} -64"
+ ;;
+ esac
+ fi
+ fi
+ rm -rf conftest*
+ ;;
+
+x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \
+s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
+ # Find out which ABI we are using.
+ echo 'int i;' > conftest.$ac_ext
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ case `/usr/bin/file conftest.o` in
+ *32-bit*)
+ case $host in
+ x86_64-*kfreebsd*-gnu)
+ LD="${LD-ld} -m elf_i386_fbsd"
+ ;;
+ x86_64-*linux*)
+ LD="${LD-ld} -m elf_i386"
+ ;;
+ ppc64-*linux*|powerpc64-*linux*)
+ LD="${LD-ld} -m elf32ppclinux"
+ ;;
+ s390x-*linux*)
+ LD="${LD-ld} -m elf_s390"
+ ;;
+ sparc64-*linux*)
+ LD="${LD-ld} -m elf32_sparc"
+ ;;
+ esac
+ ;;
+ *64-bit*)
+ case $host in
+ x86_64-*kfreebsd*-gnu)
+ LD="${LD-ld} -m elf_x86_64_fbsd"
+ ;;
+ x86_64-*linux*)
+ LD="${LD-ld} -m elf_x86_64"
+ ;;
+ ppc*-*linux*|powerpc*-*linux*)
+ LD="${LD-ld} -m elf64ppc"
+ ;;
+ s390*-*linux*|s390*-*tpf*)
+ LD="${LD-ld} -m elf64_s390"
+ ;;
+ sparc*-*linux*)
+ LD="${LD-ld} -m elf64_sparc"
+ ;;
+ esac
+ ;;
+ esac
+ fi
+ rm -rf conftest*
+ ;;
+
+*-*-sco3.2v5*)
+ # On SCO OpenServer 5, we need -belf to get full-featured binaries.
+ SAVE_CFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS -belf"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5
+$as_echo_n "checking whether the C compiler needs -belf... " >&6; }
+if test "${lt_cv_cc_needs_belf+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ lt_cv_cc_needs_belf=yes
+else
+ lt_cv_cc_needs_belf=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5
+$as_echo "$lt_cv_cc_needs_belf" >&6; }
+ if test x"$lt_cv_cc_needs_belf" != x"yes"; then
+ # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
+ CFLAGS="$SAVE_CFLAGS"
+ fi
+ ;;
+sparc*-*solaris*)
+ # Find out which ABI we are using.
+ echo 'int i;' > conftest.$ac_ext
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ case `/usr/bin/file conftest.o` in
+ *64-bit*)
+ case $lt_cv_prog_gnu_ld in
+ yes*) LD="${LD-ld} -m elf64_sparc" ;;
+ *)
+ if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then
+ LD="${LD-ld} -64"
+ fi
+ ;;
+ esac
+ ;;
+ esac
+ fi
+ rm -rf conftest*
+ ;;
+esac
+
+need_locks="$enable_libtool_lock"
+
+
+ case $host_os in
+ rhapsody* | darwin*)
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args.
+set dummy ${ac_tool_prefix}dsymutil; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_DSYMUTIL+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$DSYMUTIL"; then
+ ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+DSYMUTIL=$ac_cv_prog_DSYMUTIL
+if test -n "$DSYMUTIL"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5
+$as_echo "$DSYMUTIL" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_DSYMUTIL"; then
+ ac_ct_DSYMUTIL=$DSYMUTIL
+ # Extract the first word of "dsymutil", so it can be a program name with args.
+set dummy dsymutil; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_ac_ct_DSYMUTIL+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_DSYMUTIL"; then
+ ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_ac_ct_DSYMUTIL="dsymutil"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL
+if test -n "$ac_ct_DSYMUTIL"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DSYMUTIL" >&5
+$as_echo "$ac_ct_DSYMUTIL" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_DSYMUTIL" = x; then
+ DSYMUTIL=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ DSYMUTIL=$ac_ct_DSYMUTIL
+ fi
+else
+ DSYMUTIL="$ac_cv_prog_DSYMUTIL"
+fi
+
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args.
+set dummy ${ac_tool_prefix}nmedit; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_NMEDIT+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$NMEDIT"; then
+ ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+NMEDIT=$ac_cv_prog_NMEDIT
+if test -n "$NMEDIT"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NMEDIT" >&5
+$as_echo "$NMEDIT" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_NMEDIT"; then
+ ac_ct_NMEDIT=$NMEDIT
+ # Extract the first word of "nmedit", so it can be a program name with args.
+set dummy nmedit; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_ac_ct_NMEDIT+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_NMEDIT"; then
+ ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_ac_ct_NMEDIT="nmedit"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT
+if test -n "$ac_ct_NMEDIT"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NMEDIT" >&5
+$as_echo "$ac_ct_NMEDIT" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_NMEDIT" = x; then
+ NMEDIT=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ NMEDIT=$ac_ct_NMEDIT
+ fi
+else
+ NMEDIT="$ac_cv_prog_NMEDIT"
+fi
+
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}lipo", so it can be a program name with args.
+set dummy ${ac_tool_prefix}lipo; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_LIPO+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$LIPO"; then
+ ac_cv_prog_LIPO="$LIPO" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_LIPO="${ac_tool_prefix}lipo"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+LIPO=$ac_cv_prog_LIPO
+if test -n "$LIPO"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIPO" >&5
+$as_echo "$LIPO" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_LIPO"; then
+ ac_ct_LIPO=$LIPO
+ # Extract the first word of "lipo", so it can be a program name with args.
+set dummy lipo; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_ac_ct_LIPO+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_LIPO"; then
+ ac_cv_prog_ac_ct_LIPO="$ac_ct_LIPO" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_ac_ct_LIPO="lipo"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_LIPO=$ac_cv_prog_ac_ct_LIPO
+if test -n "$ac_ct_LIPO"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LIPO" >&5
+$as_echo "$ac_ct_LIPO" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_LIPO" = x; then
+ LIPO=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ LIPO=$ac_ct_LIPO
+ fi
+else
+ LIPO="$ac_cv_prog_LIPO"
+fi
+
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}otool", so it can be a program name with args.
+set dummy ${ac_tool_prefix}otool; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_OTOOL+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$OTOOL"; then
+ ac_cv_prog_OTOOL="$OTOOL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_OTOOL="${ac_tool_prefix}otool"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+OTOOL=$ac_cv_prog_OTOOL
+if test -n "$OTOOL"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL" >&5
+$as_echo "$OTOOL" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_OTOOL"; then
+ ac_ct_OTOOL=$OTOOL
+ # Extract the first word of "otool", so it can be a program name with args.
+set dummy otool; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_ac_ct_OTOOL+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_OTOOL"; then
+ ac_cv_prog_ac_ct_OTOOL="$ac_ct_OTOOL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_ac_ct_OTOOL="otool"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_OTOOL=$ac_cv_prog_ac_ct_OTOOL
+if test -n "$ac_ct_OTOOL"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL" >&5
+$as_echo "$ac_ct_OTOOL" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_OTOOL" = x; then
+ OTOOL=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ OTOOL=$ac_ct_OTOOL
+ fi
+else
+ OTOOL="$ac_cv_prog_OTOOL"
+fi
+
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args.
+set dummy ${ac_tool_prefix}otool64; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_OTOOL64+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$OTOOL64"; then
+ ac_cv_prog_OTOOL64="$OTOOL64" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+OTOOL64=$ac_cv_prog_OTOOL64
+if test -n "$OTOOL64"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL64" >&5
+$as_echo "$OTOOL64" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_OTOOL64"; then
+ ac_ct_OTOOL64=$OTOOL64
+ # Extract the first word of "otool64", so it can be a program name with args.
+set dummy otool64; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_ac_ct_OTOOL64+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_OTOOL64"; then
+ ac_cv_prog_ac_ct_OTOOL64="$ac_ct_OTOOL64" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_ac_ct_OTOOL64="otool64"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64
+if test -n "$ac_ct_OTOOL64"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL64" >&5
+$as_echo "$ac_ct_OTOOL64" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_OTOOL64" = x; then
+ OTOOL64=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ OTOOL64=$ac_ct_OTOOL64
+ fi
+else
+ OTOOL64="$ac_cv_prog_OTOOL64"
+fi
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5
+$as_echo_n "checking for -single_module linker flag... " >&6; }
+if test "${lt_cv_apple_cc_single_mod+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_apple_cc_single_mod=no
+ if test -z "${LT_MULTI_MODULE}"; then
+ # By default we will add the -single_module flag. You can override
+ # by either setting the environment variable LT_MULTI_MODULE
+ # non-empty at configure time, or by adding -multi_module to the
+ # link flags.
+ rm -rf libconftest.dylib*
+ echo "int foo(void){return 1;}" > conftest.c
+ echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
+-dynamiclib -Wl,-single_module conftest.c" >&5
+ $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
+ -dynamiclib -Wl,-single_module conftest.c 2>conftest.err
+ _lt_result=$?
+ if test -f libconftest.dylib && test ! -s conftest.err && test $_lt_result = 0; then
+ lt_cv_apple_cc_single_mod=yes
+ else
+ cat conftest.err >&5
+ fi
+ rm -rf libconftest.dylib*
+ rm -f conftest.*
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5
+$as_echo "$lt_cv_apple_cc_single_mod" >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5
+$as_echo_n "checking for -exported_symbols_list linker flag... " >&6; }
+if test "${lt_cv_ld_exported_symbols_list+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_ld_exported_symbols_list=no
+ save_LDFLAGS=$LDFLAGS
+ echo "_main" > conftest.sym
+ LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ lt_cv_ld_exported_symbols_list=yes
+else
+ lt_cv_ld_exported_symbols_list=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ LDFLAGS="$save_LDFLAGS"
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5
+$as_echo "$lt_cv_ld_exported_symbols_list" >&6; }
+ case $host_os in
+ rhapsody* | darwin1.[012])
+ _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;;
+ darwin1.*)
+ _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
+ darwin*) # darwin 5.x on
+ # if running on 10.5 or later, the deployment target defaults
+ # to the OS version, if on x86, and 10.4, the deployment
+ # target defaults to 10.4. Don't you love it?
+ case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in
+ 10.0,*86*-darwin8*|10.0,*-darwin[91]*)
+ _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
+ 10.[012]*)
+ _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
+ 10.*)
+ _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
+ esac
+ ;;
+ esac
+ if test "$lt_cv_apple_cc_single_mod" = "yes"; then
+ _lt_dar_single_mod='$single_module'
+ fi
+ if test "$lt_cv_ld_exported_symbols_list" = "yes"; then
+ _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym'
+ else
+ _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}'
+ fi
+ if test "$DSYMUTIL" != ":"; then
+ _lt_dsymutil='~$DSYMUTIL $lib || :'
+ else
+ _lt_dsymutil=
+ fi
+ ;;
+ esac
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5
+$as_echo_n "checking how to run the C preprocessor... " >&6; }
+# On Suns, sometimes $CPP names a directory.
+if test -n "$CPP" && test -d "$CPP"; then
+ CPP=
+fi
+if test -z "$CPP"; then
+ if test "${ac_cv_prog_CPP+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ # Double quotes because CPP needs to be expanded
+ for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
+ do
+ ac_preproc_ok=false
+for ac_c_preproc_warn_flag in '' yes
+do
+ # Use a header file that comes with gcc, so configuring glibc
+ # with a fresh cross-compiler works.
+ # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ # <limits.h> exists even on freestanding compilers.
+ # On the NeXT, cc -E runs the code through the compiler's parser,
+ # not just through cpp. "Syntax error" is here to catch this case.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+@%:@ifdef __STDC__
+@%:@ include <limits.h>
+@%:@else
+@%:@ include <assert.h>
+@%:@endif
+ Syntax error
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+
+else
+ # Broken: fails on valid input.
+continue
+fi
+rm -f conftest.err conftest.$ac_ext
+
+ # OK, works on sane cases. Now check whether nonexistent headers
+ # can be detected and how.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+@%:@include <ac_nonexistent.h>
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+ # Broken: success on invalid input.
+continue
+else
+ # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+rm -f conftest.err conftest.$ac_ext
+
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then :
+ break
+fi
+
+ done
+ ac_cv_prog_CPP=$CPP
+
+fi
+ CPP=$ac_cv_prog_CPP
+else
+ ac_cv_prog_CPP=$CPP
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5
+$as_echo "$CPP" >&6; }
+ac_preproc_ok=false
+for ac_c_preproc_warn_flag in '' yes
+do
+ # Use a header file that comes with gcc, so configuring glibc
+ # with a fresh cross-compiler works.
+ # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ # <limits.h> exists even on freestanding compilers.
+ # On the NeXT, cc -E runs the code through the compiler's parser,
+ # not just through cpp. "Syntax error" is here to catch this case.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+@%:@ifdef __STDC__
+@%:@ include <limits.h>
+@%:@else
+@%:@ include <assert.h>
+@%:@endif
+ Syntax error
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+
+else
+ # Broken: fails on valid input.
+continue
+fi
+rm -f conftest.err conftest.$ac_ext
+
+ # OK, works on sane cases. Now check whether nonexistent headers
+ # can be detected and how.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+@%:@include <ac_nonexistent.h>
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+ # Broken: success on invalid input.
+continue
+else
+ # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+rm -f conftest.err conftest.$ac_ext
+
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then :
+
+else
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error "C preprocessor \"$CPP\" fails sanity check
+See \`config.log' for more details." "$LINENO" 5; }
+fi
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
+$as_echo_n "checking for ANSI C header files... " >&6; }
+if test "${ac_cv_header_stdc+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdlib.h>
+#include <stdarg.h>
+#include <string.h>
+#include <float.h>
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_header_stdc=yes
+else
+ ac_cv_header_stdc=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+if test $ac_cv_header_stdc = yes; then
+ # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <string.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "memchr" >/dev/null 2>&1; then :
+
+else
+ ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+ # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdlib.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "free" >/dev/null 2>&1; then :
+
+else
+ ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+ # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
+ if test "$cross_compiling" = yes; then :
+ :
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <ctype.h>
+#include <stdlib.h>
+#if ((' ' & 0x0FF) == 0x020)
+# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
+# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
+#else
+# define ISLOWER(c) \
+ (('a' <= (c) && (c) <= 'i') \
+ || ('j' <= (c) && (c) <= 'r') \
+ || ('s' <= (c) && (c) <= 'z'))
+# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
+#endif
+
+#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
+int
+main ()
+{
+ int i;
+ for (i = 0; i < 256; i++)
+ if (XOR (islower (i), ISLOWER (i))
+ || toupper (i) != TOUPPER (i))
+ return 2;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+
+else
+ ac_cv_header_stdc=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5
+$as_echo "$ac_cv_header_stdc" >&6; }
+if test $ac_cv_header_stdc = yes; then
+
+$as_echo "@%:@define STDC_HEADERS 1" >>confdefs.h
+
+fi
+
+# On IRIX 5.3, sys/types and inttypes.h are conflicting.
+for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
+ inttypes.h stdint.h unistd.h
+do :
+ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
+"
+eval as_val=\$$as_ac_Header
+ if test "x$as_val" = x""yes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+
+for ac_header in dlfcn.h
+do :
+ ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default
+"
+if test "x$ac_cv_header_dlfcn_h" = x""yes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_DLFCN_H 1
+_ACEOF
+
+fi
+
+done
+
+
+
+ac_ext=cpp
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+if test -z "$CXX"; then
+ if test -n "$CCC"; then
+ CXX=$CCC
+ else
+ if test -n "$ac_tool_prefix"; then
+ for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC
+ do
+ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_CXX+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$CXX"; then
+ ac_cv_prog_CXX="$CXX" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_CXX="$ac_tool_prefix$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+CXX=$ac_cv_prog_CXX
+if test -n "$CXX"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXX" >&5
+$as_echo "$CXX" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$CXX" && break
+ done
+fi
+if test -z "$CXX"; then
+ ac_ct_CXX=$CXX
+ for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_CXX"; then
+ ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_ac_ct_CXX="$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_CXX=$ac_cv_prog_ac_ct_CXX
+if test -n "$ac_ct_CXX"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CXX" >&5
+$as_echo "$ac_ct_CXX" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$ac_ct_CXX" && break
+done
+
+ if test "x$ac_ct_CXX" = x; then
+ CXX="g++"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ CXX=$ac_ct_CXX
+ fi
+fi
+
+ fi
+fi
+# Provide some information about the compiler.
+$as_echo "$as_me:${as_lineno-$LINENO}: checking for C++ compiler version" >&5
+set X $ac_compile
+ac_compiler=$2
+for ac_option in --version -v -V -qversion; do
+ { { ac_try="$ac_compiler $ac_option >&5"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_compiler $ac_option >&5") 2>conftest.err
+ ac_status=$?
+ if test -s conftest.err; then
+ sed '10a\
+... rest of stderr output deleted ...
+ 10q' conftest.err >conftest.er1
+ cat conftest.er1 >&5
+ fi
+ rm -f conftest.er1 conftest.err
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+done
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C++ compiler" >&5
+$as_echo_n "checking whether we are using the GNU C++ compiler... " >&6; }
+if test "${ac_cv_cxx_compiler_gnu+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+#ifndef __GNUC__
+ choke me
+#endif
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_compile "$LINENO"; then :
+ ac_compiler_gnu=yes
+else
+ ac_compiler_gnu=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ac_cv_cxx_compiler_gnu=$ac_compiler_gnu
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cxx_compiler_gnu" >&5
+$as_echo "$ac_cv_cxx_compiler_gnu" >&6; }
+if test $ac_compiler_gnu = yes; then
+ GXX=yes
+else
+ GXX=
+fi
+ac_test_CXXFLAGS=${CXXFLAGS+set}
+ac_save_CXXFLAGS=$CXXFLAGS
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX accepts -g" >&5
+$as_echo_n "checking whether $CXX accepts -g... " >&6; }
+if test "${ac_cv_prog_cxx_g+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_save_cxx_werror_flag=$ac_cxx_werror_flag
+ ac_cxx_werror_flag=yes
+ ac_cv_prog_cxx_g=no
+ CXXFLAGS="-g"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_compile "$LINENO"; then :
+ ac_cv_prog_cxx_g=yes
+else
+ CXXFLAGS=""
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_compile "$LINENO"; then :
+
+else
+ ac_cxx_werror_flag=$ac_save_cxx_werror_flag
+ CXXFLAGS="-g"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_compile "$LINENO"; then :
+ ac_cv_prog_cxx_g=yes
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ ac_cxx_werror_flag=$ac_save_cxx_werror_flag
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_g" >&5
+$as_echo "$ac_cv_prog_cxx_g" >&6; }
+if test "$ac_test_CXXFLAGS" = set; then
+ CXXFLAGS=$ac_save_CXXFLAGS
+elif test $ac_cv_prog_cxx_g = yes; then
+ if test "$GXX" = yes; then
+ CXXFLAGS="-g -O2"
+ else
+ CXXFLAGS="-g"
+ fi
+else
+ if test "$GXX" = yes; then
+ CXXFLAGS="-O2"
+ else
+ CXXFLAGS=
+ fi
+fi
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+depcc="$CXX" am_compiler_list=
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
+$as_echo_n "checking dependency style of $depcc... " >&6; }
+if test "${am_cv_CXX_dependencies_compiler_type+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
+ # We make a subdir and do the tests there. Otherwise we can end up
+ # making bogus files that we don't know about and never remove. For
+ # instance it was reported that on HP-UX the gcc test will end up
+ # making a dummy file named `D' -- because `-MD' means `put the output
+ # in D'.
+ mkdir conftest.dir
+ # Copy depcomp to subdir because otherwise we won't find it if we're
+ # using a relative directory.
+ cp "$am_depcomp" conftest.dir
+ cd conftest.dir
+ # We will build objects and dependencies in a subdirectory because
+ # it helps to detect inapplicable dependency modes. For instance
+ # both Tru64's cc and ICC support -MD to output dependencies as a
+ # side effect of compilation, but ICC will put the dependencies in
+ # the current directory while Tru64 will put them in the object
+ # directory.
+ mkdir sub
+
+ am_cv_CXX_dependencies_compiler_type=none
+ if test "$am_compiler_list" = ""; then
+ am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
+ fi
+ am__universal=false
+ case " $depcc " in #(
+ *\ -arch\ *\ -arch\ *) am__universal=true ;;
+ esac
+
+ for depmode in $am_compiler_list; do
+ # Setup a source with many dependencies, because some compilers
+ # like to wrap large dependency lists on column 80 (with \), and
+ # we should not choose a depcomp mode which is confused by this.
+ #
+ # We need to recreate these files for each test, as the compiler may
+ # overwrite some of them when testing with obscure command lines.
+ # This happens at least with the AIX C compiler.
+ : > sub/conftest.c
+ for i in 1 2 3 4 5 6; do
+ echo '#include "conftst'$i'.h"' >> sub/conftest.c
+ # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
+ # Solaris 8's {/usr,}/bin/sh.
+ touch sub/conftst$i.h
+ done
+ echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
+
+ # We check with `-c' and `-o' for the sake of the "dashmstdout"
+ # mode. It turns out that the SunPro C++ compiler does not properly
+ # handle `-M -o', and we need to detect this. Also, some Intel
+ # versions had trouble with output in subdirs
+ am__obj=sub/conftest.${OBJEXT-o}
+ am__minus_obj="-o $am__obj"
+ case $depmode in
+ gcc)
+ # This depmode causes a compiler race in universal mode.
+ test "$am__universal" = false || continue
+ ;;
+ nosideeffect)
+ # after this tag, mechanisms are not by side-effect, so they'll
+ # only be used when explicitly requested
+ if test "x$enable_dependency_tracking" = xyes; then
+ continue
+ else
+ break
+ fi
+ ;;
+ msvisualcpp | msvcmsys)
+ # This compiler won't grok `-c -o', but also, the minuso test has
+ # not run yet. These depmodes are late enough in the game, and
+ # so weak that their functioning should not be impacted.
+ am__obj=conftest.${OBJEXT-o}
+ am__minus_obj=
+ ;;
+ none) break ;;
+ esac
+ if depmode=$depmode \
+ source=sub/conftest.c object=$am__obj \
+ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
+ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
+ >/dev/null 2>conftest.err &&
+ grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
+ grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
+ grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
+ ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
+ # icc doesn't choke on unknown options, it will just issue warnings
+ # or remarks (even with -Werror). So we grep stderr for any message
+ # that says an option was ignored or not supported.
+ # When given -MP, icc 7.0 and 7.1 complain thusly:
+ # icc: Command line warning: ignoring option '-M'; no argument required
+ # The diagnosis changed in icc 8.0:
+ # icc: Command line remark: option '-MP' not supported
+ if (grep 'ignoring option' conftest.err ||
+ grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
+ am_cv_CXX_dependencies_compiler_type=$depmode
+ break
+ fi
+ fi
+ done
+
+ cd ..
+ rm -rf conftest.dir
+else
+ am_cv_CXX_dependencies_compiler_type=none
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CXX_dependencies_compiler_type" >&5
+$as_echo "$am_cv_CXX_dependencies_compiler_type" >&6; }
+CXXDEPMODE=depmode=$am_cv_CXX_dependencies_compiler_type
+
+ if
+ test "x$enable_dependency_tracking" != xno \
+ && test "$am_cv_CXX_dependencies_compiler_type" = gcc3; then
+ am__fastdepCXX_TRUE=
+ am__fastdepCXX_FALSE='#'
+else
+ am__fastdepCXX_TRUE='#'
+ am__fastdepCXX_FALSE=
+fi
+
+
+if test -n "$CXX" && ( test "X$CXX" != "Xno" &&
+ ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) ||
+ (test "X$CXX" != "Xg++"))) ; then
+ ac_ext=cpp
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C++ preprocessor" >&5
+$as_echo_n "checking how to run the C++ preprocessor... " >&6; }
+if test -z "$CXXCPP"; then
+ if test "${ac_cv_prog_CXXCPP+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ # Double quotes because CXXCPP needs to be expanded
+ for CXXCPP in "$CXX -E" "/lib/cpp"
+ do
+ ac_preproc_ok=false
+for ac_cxx_preproc_warn_flag in '' yes
+do
+ # Use a header file that comes with gcc, so configuring glibc
+ # with a fresh cross-compiler works.
+ # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ # <limits.h> exists even on freestanding compilers.
+ # On the NeXT, cc -E runs the code through the compiler's parser,
+ # not just through cpp. "Syntax error" is here to catch this case.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+@%:@ifdef __STDC__
+@%:@ include <limits.h>
+@%:@else
+@%:@ include <assert.h>
+@%:@endif
+ Syntax error
+_ACEOF
+if ac_fn_cxx_try_cpp "$LINENO"; then :
+
+else
+ # Broken: fails on valid input.
+continue
+fi
+rm -f conftest.err conftest.$ac_ext
+
+ # OK, works on sane cases. Now check whether nonexistent headers
+ # can be detected and how.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+@%:@include <ac_nonexistent.h>
+_ACEOF
+if ac_fn_cxx_try_cpp "$LINENO"; then :
+ # Broken: success on invalid input.
+continue
+else
+ # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+rm -f conftest.err conftest.$ac_ext
+
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then :
+ break
+fi
+
+ done
+ ac_cv_prog_CXXCPP=$CXXCPP
+
+fi
+ CXXCPP=$ac_cv_prog_CXXCPP
+else
+ ac_cv_prog_CXXCPP=$CXXCPP
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXXCPP" >&5
+$as_echo "$CXXCPP" >&6; }
+ac_preproc_ok=false
+for ac_cxx_preproc_warn_flag in '' yes
+do
+ # Use a header file that comes with gcc, so configuring glibc
+ # with a fresh cross-compiler works.
+ # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ # <limits.h> exists even on freestanding compilers.
+ # On the NeXT, cc -E runs the code through the compiler's parser,
+ # not just through cpp. "Syntax error" is here to catch this case.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+@%:@ifdef __STDC__
+@%:@ include <limits.h>
+@%:@else
+@%:@ include <assert.h>
+@%:@endif
+ Syntax error
+_ACEOF
+if ac_fn_cxx_try_cpp "$LINENO"; then :
+
+else
+ # Broken: fails on valid input.
+continue
+fi
+rm -f conftest.err conftest.$ac_ext
+
+ # OK, works on sane cases. Now check whether nonexistent headers
+ # can be detected and how.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+@%:@include <ac_nonexistent.h>
+_ACEOF
+if ac_fn_cxx_try_cpp "$LINENO"; then :
+ # Broken: success on invalid input.
+continue
+else
+ # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+rm -f conftest.err conftest.$ac_ext
+
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then :
+
+else
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+_lt_caught_CXX_error=yes; }
+fi
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+else
+ _lt_caught_CXX_error=yes
+fi
+
+
+
+
+
+# Set options
+
+
+
+ enable_dlopen=no
+
+
+ enable_win32_dll=no
+
+
+ @%:@ Check whether --enable-shared was given.
+if test "${enable_shared+set}" = set; then :
+ enableval=$enable_shared; p=${PACKAGE-default}
+ case $enableval in
+ yes) enable_shared=yes ;;
+ no) enable_shared=no ;;
+ *)
+ enable_shared=no
+ # Look at the argument we got. We use all the common list separators.
+ lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+ for pkg in $enableval; do
+ IFS="$lt_save_ifs"
+ if test "X$pkg" = "X$p"; then
+ enable_shared=yes
+ fi
+ done
+ IFS="$lt_save_ifs"
+ ;;
+ esac
+else
+ enable_shared=yes
+fi
+
+
+
+
+
+
+
+
+
+ @%:@ Check whether --enable-static was given.
+if test "${enable_static+set}" = set; then :
+ enableval=$enable_static; p=${PACKAGE-default}
+ case $enableval in
+ yes) enable_static=yes ;;
+ no) enable_static=no ;;
+ *)
+ enable_static=no
+ # Look at the argument we got. We use all the common list separators.
+ lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+ for pkg in $enableval; do
+ IFS="$lt_save_ifs"
+ if test "X$pkg" = "X$p"; then
+ enable_static=yes
+ fi
+ done
+ IFS="$lt_save_ifs"
+ ;;
+ esac
+else
+ enable_static=yes
+fi
+
+
+
+
+
+
+
+
+
+
+@%:@ Check whether --with-pic was given.
+if test "${with_pic+set}" = set; then :
+ withval=$with_pic; pic_mode="$withval"
+else
+ pic_mode=default
+fi
+
+
+test -z "$pic_mode" && pic_mode=default
+
+
+
+
+
+
+
+ @%:@ Check whether --enable-fast-install was given.
+if test "${enable_fast_install+set}" = set; then :
+ enableval=$enable_fast_install; p=${PACKAGE-default}
+ case $enableval in
+ yes) enable_fast_install=yes ;;
+ no) enable_fast_install=no ;;
+ *)
+ enable_fast_install=no
+ # Look at the argument we got. We use all the common list separators.
+ lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+ for pkg in $enableval; do
+ IFS="$lt_save_ifs"
+ if test "X$pkg" = "X$p"; then
+ enable_fast_install=yes
+ fi
+ done
+ IFS="$lt_save_ifs"
+ ;;
+ esac
+else
+ enable_fast_install=yes
+fi
+
+
+
+
+
+
+
+
+
+
+
+# This can be used to rebuild libtool when needed
+LIBTOOL_DEPS="$ltmain"
+
+# Always use our own libtool.
+LIBTOOL='$(SHELL) $(top_builddir)/libtool'
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+test -z "$LN_S" && LN_S="ln -s"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+if test -n "${ZSH_VERSION+set}" ; then
+ setopt NO_GLOB_SUBST
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5
+$as_echo_n "checking for objdir... " >&6; }
+if test "${lt_cv_objdir+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ rm -f .libs 2>/dev/null
+mkdir .libs 2>/dev/null
+if test -d .libs; then
+ lt_cv_objdir=.libs
+else
+ # MS-DOS does not allow filenames that begin with a dot.
+ lt_cv_objdir=_libs
+fi
+rmdir .libs 2>/dev/null
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5
+$as_echo "$lt_cv_objdir" >&6; }
+objdir=$lt_cv_objdir
+
+
+
+
+
+cat >>confdefs.h <<_ACEOF
+@%:@define LT_OBJDIR "$lt_cv_objdir/"
+_ACEOF
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+case $host_os in
+aix3*)
+ # AIX sometimes has problems with the GCC collect2 program. For some
+ # reason, if we set the COLLECT_NAMES environment variable, the problems
+ # vanish in a puff of smoke.
+ if test "X${COLLECT_NAMES+set}" != Xset; then
+ COLLECT_NAMES=
+ export COLLECT_NAMES
+ fi
+ ;;
+esac
+
+# Sed substitution that helps us do robust quoting. It backslashifies
+# metacharacters that are still active within double-quoted strings.
+sed_quote_subst='s/\(["`$\\]\)/\\\1/g'
+
+# Same as above, but do not quote variable references.
+double_quote_subst='s/\(["`\\]\)/\\\1/g'
+
+# Sed substitution to delay expansion of an escaped shell variable in a
+# double_quote_subst'ed string.
+delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
+
+# Sed substitution to delay expansion of an escaped single quote.
+delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g'
+
+# Sed substitution to avoid accidental globbing in evaled expressions
+no_glob_subst='s/\*/\\\*/g'
+
+# Global variables:
+ofile=libtool
+can_build_shared=yes
+
+# All known linkers require a `.a' archive for static linking (except MSVC,
+# which needs '.lib').
+libext=a
+
+with_gnu_ld="$lt_cv_prog_gnu_ld"
+
+old_CC="$CC"
+old_CFLAGS="$CFLAGS"
+
+# Set sane defaults for various variables
+test -z "$CC" && CC=cc
+test -z "$LTCC" && LTCC=$CC
+test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS
+test -z "$LD" && LD=ld
+test -z "$ac_objext" && ac_objext=o
+
+for cc_temp in $compiler""; do
+ case $cc_temp in
+ compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
+ distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
+ \-*) ;;
+ *) break;;
+ esac
+done
+cc_basename=`$ECHO "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
+
+
+# Only perform the check for file, if the check method requires it
+test -z "$MAGIC_CMD" && MAGIC_CMD=file
+case $deplibs_check_method in
+file_magic*)
+ if test "$file_magic_cmd" = '$MAGIC_CMD'; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5
+$as_echo_n "checking for ${ac_tool_prefix}file... " >&6; }
+if test "${lt_cv_path_MAGIC_CMD+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $MAGIC_CMD in
+[\\/*] | ?:[\\/]*)
+ lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
+ ;;
+*)
+ lt_save_MAGIC_CMD="$MAGIC_CMD"
+ lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+ ac_dummy="/usr/bin$PATH_SEPARATOR$PATH"
+ for ac_dir in $ac_dummy; do
+ IFS="$lt_save_ifs"
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/${ac_tool_prefix}file; then
+ lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file"
+ if test -n "$file_magic_test_file"; then
+ case $deplibs_check_method in
+ "file_magic "*)
+ file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
+ MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+ if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
+ $EGREP "$file_magic_regex" > /dev/null; then
+ :
+ else
+ cat <<_LT_EOF 1>&2
+
+*** Warning: the command libtool uses to detect shared libraries,
+*** $file_magic_cmd, produces output that libtool cannot recognize.
+*** The result is that libtool may fail to recognize shared libraries
+*** as such. This will affect the creation of libtool libraries that
+*** depend on shared libraries, but programs linked with such libtool
+*** libraries will work regardless of this problem. Nevertheless, you
+*** may want to report the problem to your system manager and/or to
+*** bug-libtool@gnu.org
+
+_LT_EOF
+ fi ;;
+ esac
+ fi
+ break
+ fi
+ done
+ IFS="$lt_save_ifs"
+ MAGIC_CMD="$lt_save_MAGIC_CMD"
+ ;;
+esac
+fi
+
+MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+if test -n "$MAGIC_CMD"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5
+$as_echo "$MAGIC_CMD" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+
+
+
+if test -z "$lt_cv_path_MAGIC_CMD"; then
+ if test -n "$ac_tool_prefix"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for file" >&5
+$as_echo_n "checking for file... " >&6; }
+if test "${lt_cv_path_MAGIC_CMD+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $MAGIC_CMD in
+[\\/*] | ?:[\\/]*)
+ lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
+ ;;
+*)
+ lt_save_MAGIC_CMD="$MAGIC_CMD"
+ lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+ ac_dummy="/usr/bin$PATH_SEPARATOR$PATH"
+ for ac_dir in $ac_dummy; do
+ IFS="$lt_save_ifs"
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/file; then
+ lt_cv_path_MAGIC_CMD="$ac_dir/file"
+ if test -n "$file_magic_test_file"; then
+ case $deplibs_check_method in
+ "file_magic "*)
+ file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
+ MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+ if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
+ $EGREP "$file_magic_regex" > /dev/null; then
+ :
+ else
+ cat <<_LT_EOF 1>&2
+
+*** Warning: the command libtool uses to detect shared libraries,
+*** $file_magic_cmd, produces output that libtool cannot recognize.
+*** The result is that libtool may fail to recognize shared libraries
+*** as such. This will affect the creation of libtool libraries that
+*** depend on shared libraries, but programs linked with such libtool
+*** libraries will work regardless of this problem. Nevertheless, you
+*** may want to report the problem to your system manager and/or to
+*** bug-libtool@gnu.org
+
+_LT_EOF
+ fi ;;
+ esac
+ fi
+ break
+ fi
+ done
+ IFS="$lt_save_ifs"
+ MAGIC_CMD="$lt_save_MAGIC_CMD"
+ ;;
+esac
+fi
+
+MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+if test -n "$MAGIC_CMD"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5
+$as_echo "$MAGIC_CMD" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ else
+ MAGIC_CMD=:
+ fi
+fi
+
+ fi
+ ;;
+esac
+
+# Use C for the default configuration in the libtool script
+
+lt_save_CC="$CC"
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+# Source file extension for C test sources.
+ac_ext=c
+
+# Object file extension for compiled C test sources.
+objext=o
+objext=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code="int some_variable = 0;"
+
+# Code to be used in simple link tests
+lt_simple_link_test_code='int main(){return(0);}'
+
+
+
+
+
+
+
+# If no C compiler was specified, use CC.
+LTCC=${LTCC-"$CC"}
+
+# If no C compiler flags were specified, use CFLAGS.
+LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
+
+# Allow CC to be a program name with arguments.
+compiler=$CC
+
+# Save the default compiler, since it gets overwritten when the other
+# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP.
+compiler_DEFAULT=$CC
+
+# save warnings/boilerplate of simple test code
+ac_outfile=conftest.$ac_objext
+echo "$lt_simple_compile_test_code" >conftest.$ac_ext
+eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
+_lt_compiler_boilerplate=`cat conftest.err`
+$RM conftest*
+
+ac_outfile=conftest.$ac_objext
+echo "$lt_simple_link_test_code" >conftest.$ac_ext
+eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
+_lt_linker_boilerplate=`cat conftest.err`
+$RM -r conftest*
+
+
+## CAVEAT EMPTOR:
+## There is no encapsulation within the following macros, do not change
+## the running order or otherwise move them around unless you know exactly
+## what you are doing...
+if test -n "$compiler"; then
+
+lt_prog_compiler_no_builtin_flag=
+
+if test "$GCC" = yes; then
+ lt_prog_compiler_no_builtin_flag=' -fno-builtin'
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5
+$as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; }
+if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_prog_compiler_rtti_exceptions=no
+ ac_outfile=conftest.$ac_objext
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+ lt_compiler_flag="-fno-rtti -fno-exceptions"
+ # Insert the option either (1) after the last *FLAGS variable, or
+ # (2) before a word containing "conftest.", or (3) at the end.
+ # Note that $ac_compile itself does not contain backslashes and begins
+ # with a dollar sign (not a hyphen), so the echo should work correctly.
+ # The option is referenced via a variable to avoid confusing sed.
+ lt_compile=`echo "$ac_compile" | $SED \
+ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+ -e 's:$: $lt_compiler_flag:'`
+ (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&5)
+ (eval "$lt_compile" 2>conftest.err)
+ ac_status=$?
+ cat conftest.err >&5
+ echo "$as_me:__oline__: \$? = $ac_status" >&5
+ if (exit $ac_status) && test -s "$ac_outfile"; then
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings other than the usual output.
+ $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp
+ $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+ if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
+ lt_cv_prog_compiler_rtti_exceptions=yes
+ fi
+ fi
+ $RM conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5
+$as_echo "$lt_cv_prog_compiler_rtti_exceptions" >&6; }
+
+if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then
+ lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions"
+else
+ :
+fi
+
+fi
+
+
+
+
+
+
+ lt_prog_compiler_wl=
+lt_prog_compiler_pic=
+lt_prog_compiler_static=
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5
+$as_echo_n "checking for $compiler option to produce PIC... " >&6; }
+
+ if test "$GCC" = yes; then
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_static='-static'
+
+ case $host_os in
+ aix*)
+ # All AIX code is PIC.
+ if test "$host_cpu" = ia64; then
+ # AIX 5 now supports IA64 processor
+ lt_prog_compiler_static='-Bstatic'
+ fi
+ ;;
+
+ amigaos*)
+ case $host_cpu in
+ powerpc)
+ # see comment about AmigaOS4 .so support
+ lt_prog_compiler_pic='-fPIC'
+ ;;
+ m68k)
+ # FIXME: we need at least 68020 code to build shared libraries, but
+ # adding the `-m68020' flag to GCC prevents building anything better,
+ # like `-m68040'.
+ lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4'
+ ;;
+ esac
+ ;;
+
+ beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+ # PIC is the default for these OSes.
+ ;;
+
+ mingw* | cygwin* | pw32* | os2* | cegcc*)
+ # This hack is so that the source file can tell whether it is being
+ # built for inclusion in a dll (and should export symbols for example).
+ # Although the cygwin gcc ignores -fPIC, still need this for old-style
+ # (--disable-auto-import) libraries
+ lt_prog_compiler_pic='-DDLL_EXPORT'
+ ;;
+
+ darwin* | rhapsody*)
+ # PIC is the default on this platform
+ # Common symbols not allowed in MH_DYLIB files
+ lt_prog_compiler_pic='-fno-common'
+ ;;
+
+ hpux*)
+ # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
+ # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag
+ # sets the default TLS model and affects inlining.
+ case $host_cpu in
+ hppa*64*)
+ # +Z the default
+ ;;
+ *)
+ lt_prog_compiler_pic='-fPIC'
+ ;;
+ esac
+ ;;
+
+ interix[3-9]*)
+ # Interix 3.x gcc -fpic/-fPIC options generate broken code.
+ # Instead, we relocate shared libraries at runtime.
+ ;;
+
+ msdosdjgpp*)
+ # Just because we use GCC doesn't mean we suddenly get shared libraries
+ # on systems that don't support them.
+ lt_prog_compiler_can_build_shared=no
+ enable_shared=no
+ ;;
+
+ *nto* | *qnx*)
+ # QNX uses GNU C++, but need to define -shared option too, otherwise
+ # it will coredump.
+ lt_prog_compiler_pic='-fPIC -shared'
+ ;;
+
+ sysv4*MP*)
+ if test -d /usr/nec; then
+ lt_prog_compiler_pic=-Kconform_pic
+ fi
+ ;;
+
+ *)
+ lt_prog_compiler_pic='-fPIC'
+ ;;
+ esac
+ else
+ # PORTME Check for flag to pass linker flags through the system compiler.
+ case $host_os in
+ aix*)
+ lt_prog_compiler_wl='-Wl,'
+ if test "$host_cpu" = ia64; then
+ # AIX 5 now supports IA64 processor
+ lt_prog_compiler_static='-Bstatic'
+ else
+ lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp'
+ fi
+ ;;
+
+ mingw* | cygwin* | pw32* | os2* | cegcc*)
+ # This hack is so that the source file can tell whether it is being
+ # built for inclusion in a dll (and should export symbols for example).
+ lt_prog_compiler_pic='-DDLL_EXPORT'
+ ;;
+
+ hpux9* | hpux10* | hpux11*)
+ lt_prog_compiler_wl='-Wl,'
+ # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
+ # not for PA HP-UX.
+ case $host_cpu in
+ hppa*64*|ia64*)
+ # +Z the default
+ ;;
+ *)
+ lt_prog_compiler_pic='+Z'
+ ;;
+ esac
+ # Is there a better lt_prog_compiler_static that works with the bundled CC?
+ lt_prog_compiler_static='${wl}-a ${wl}archive'
+ ;;
+
+ irix5* | irix6* | nonstopux*)
+ lt_prog_compiler_wl='-Wl,'
+ # PIC (with -KPIC) is the default.
+ lt_prog_compiler_static='-non_shared'
+ ;;
+
+ linux* | k*bsd*-gnu | kopensolaris*-gnu)
+ case $cc_basename in
+ # old Intel for x86_64 which still supported -KPIC.
+ ecc*)
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_pic='-KPIC'
+ lt_prog_compiler_static='-static'
+ ;;
+ # icc used to be incompatible with GCC.
+ # ICC 10 doesn't accept -KPIC any more.
+ icc* | ifort*)
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_pic='-fPIC'
+ lt_prog_compiler_static='-static'
+ ;;
+ # Lahey Fortran 8.1.
+ lf95*)
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_pic='--shared'
+ lt_prog_compiler_static='--static'
+ ;;
+ pgcc* | pgf77* | pgf90* | pgf95*)
+ # Portland Group compilers (*not* the Pentium gcc compiler,
+ # which looks to be a dead project)
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_pic='-fpic'
+ lt_prog_compiler_static='-Bstatic'
+ ;;
+ ccc*)
+ lt_prog_compiler_wl='-Wl,'
+ # All Alpha code is PIC.
+ lt_prog_compiler_static='-non_shared'
+ ;;
+ xl*)
+ # IBM XL C 8.0/Fortran 10.1 on PPC
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_pic='-qpic'
+ lt_prog_compiler_static='-qstaticlink'
+ ;;
+ *)
+ case `$CC -V 2>&1 | sed 5q` in
+ *Sun\ C*)
+ # Sun C 5.9
+ lt_prog_compiler_pic='-KPIC'
+ lt_prog_compiler_static='-Bstatic'
+ lt_prog_compiler_wl='-Wl,'
+ ;;
+ *Sun\ F*)
+ # Sun Fortran 8.3 passes all unrecognized flags to the linker
+ lt_prog_compiler_pic='-KPIC'
+ lt_prog_compiler_static='-Bstatic'
+ lt_prog_compiler_wl=''
+ ;;
+ esac
+ ;;
+ esac
+ ;;
+
+ newsos6)
+ lt_prog_compiler_pic='-KPIC'
+ lt_prog_compiler_static='-Bstatic'
+ ;;
+
+ *nto* | *qnx*)
+ # QNX uses GNU C++, but need to define -shared option too, otherwise
+ # it will coredump.
+ lt_prog_compiler_pic='-fPIC -shared'
+ ;;
+
+ osf3* | osf4* | osf5*)
+ lt_prog_compiler_wl='-Wl,'
+ # All OSF/1 code is PIC.
+ lt_prog_compiler_static='-non_shared'
+ ;;
+
+ rdos*)
+ lt_prog_compiler_static='-non_shared'
+ ;;
+
+ solaris*)
+ lt_prog_compiler_pic='-KPIC'
+ lt_prog_compiler_static='-Bstatic'
+ case $cc_basename in
+ f77* | f90* | f95*)
+ lt_prog_compiler_wl='-Qoption ld ';;
+ *)
+ lt_prog_compiler_wl='-Wl,';;
+ esac
+ ;;
+
+ sunos4*)
+ lt_prog_compiler_wl='-Qoption ld '
+ lt_prog_compiler_pic='-PIC'
+ lt_prog_compiler_static='-Bstatic'
+ ;;
+
+ sysv4 | sysv4.2uw2* | sysv4.3*)
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_pic='-KPIC'
+ lt_prog_compiler_static='-Bstatic'
+ ;;
+
+ sysv4*MP*)
+ if test -d /usr/nec ;then
+ lt_prog_compiler_pic='-Kconform_pic'
+ lt_prog_compiler_static='-Bstatic'
+ fi
+ ;;
+
+ sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_pic='-KPIC'
+ lt_prog_compiler_static='-Bstatic'
+ ;;
+
+ unicos*)
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_can_build_shared=no
+ ;;
+
+ uts4*)
+ lt_prog_compiler_pic='-pic'
+ lt_prog_compiler_static='-Bstatic'
+ ;;
+
+ *)
+ lt_prog_compiler_can_build_shared=no
+ ;;
+ esac
+ fi
+
+case $host_os in
+ # For platforms which do not support PIC, -DPIC is meaningless:
+ *djgpp*)
+ lt_prog_compiler_pic=
+ ;;
+ *)
+ lt_prog_compiler_pic="$lt_prog_compiler_pic@&t@ -DPIC"
+ ;;
+esac
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_prog_compiler_pic" >&5
+$as_echo "$lt_prog_compiler_pic" >&6; }
+
+
+
+
+
+
+#
+# Check to make sure the PIC flag actually works.
+#
+if test -n "$lt_prog_compiler_pic"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5
+$as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; }
+if test "${lt_cv_prog_compiler_pic_works+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_prog_compiler_pic_works=no
+ ac_outfile=conftest.$ac_objext
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+ lt_compiler_flag="$lt_prog_compiler_pic@&t@ -DPIC"
+ # Insert the option either (1) after the last *FLAGS variable, or
+ # (2) before a word containing "conftest.", or (3) at the end.
+ # Note that $ac_compile itself does not contain backslashes and begins
+ # with a dollar sign (not a hyphen), so the echo should work correctly.
+ # The option is referenced via a variable to avoid confusing sed.
+ lt_compile=`echo "$ac_compile" | $SED \
+ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+ -e 's:$: $lt_compiler_flag:'`
+ (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&5)
+ (eval "$lt_compile" 2>conftest.err)
+ ac_status=$?
+ cat conftest.err >&5
+ echo "$as_me:__oline__: \$? = $ac_status" >&5
+ if (exit $ac_status) && test -s "$ac_outfile"; then
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings other than the usual output.
+ $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp
+ $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+ if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
+ lt_cv_prog_compiler_pic_works=yes
+ fi
+ fi
+ $RM conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5
+$as_echo "$lt_cv_prog_compiler_pic_works" >&6; }
+
+if test x"$lt_cv_prog_compiler_pic_works" = xyes; then
+ case $lt_prog_compiler_pic in
+ "" | " "*) ;;
+ *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;;
+ esac
+else
+ lt_prog_compiler_pic=
+ lt_prog_compiler_can_build_shared=no
+fi
+
+fi
+
+
+
+
+
+
+#
+# Check to make sure the static flag actually works.
+#
+wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\"
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5
+$as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; }
+if test "${lt_cv_prog_compiler_static_works+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_prog_compiler_static_works=no
+ save_LDFLAGS="$LDFLAGS"
+ LDFLAGS="$LDFLAGS $lt_tmp_static_flag"
+ echo "$lt_simple_link_test_code" > conftest.$ac_ext
+ if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
+ # The linker can only warn and ignore the option if not recognized
+ # So say no if there are warnings
+ if test -s conftest.err; then
+ # Append any errors to the config.log.
+ cat conftest.err 1>&5
+ $ECHO "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp
+ $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+ if diff conftest.exp conftest.er2 >/dev/null; then
+ lt_cv_prog_compiler_static_works=yes
+ fi
+ else
+ lt_cv_prog_compiler_static_works=yes
+ fi
+ fi
+ $RM -r conftest*
+ LDFLAGS="$save_LDFLAGS"
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5
+$as_echo "$lt_cv_prog_compiler_static_works" >&6; }
+
+if test x"$lt_cv_prog_compiler_static_works" = xyes; then
+ :
+else
+ lt_prog_compiler_static=
+fi
+
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
+$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
+if test "${lt_cv_prog_compiler_c_o+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_prog_compiler_c_o=no
+ $RM -r conftest 2>/dev/null
+ mkdir conftest
+ cd conftest
+ mkdir out
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+ lt_compiler_flag="-o out/conftest2.$ac_objext"
+ # Insert the option either (1) after the last *FLAGS variable, or
+ # (2) before a word containing "conftest.", or (3) at the end.
+ # Note that $ac_compile itself does not contain backslashes and begins
+ # with a dollar sign (not a hyphen), so the echo should work correctly.
+ lt_compile=`echo "$ac_compile" | $SED \
+ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+ -e 's:$: $lt_compiler_flag:'`
+ (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&5)
+ (eval "$lt_compile" 2>out/conftest.err)
+ ac_status=$?
+ cat out/conftest.err >&5
+ echo "$as_me:__oline__: \$? = $ac_status" >&5
+ if (exit $ac_status) && test -s out/conftest2.$ac_objext
+ then
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings
+ $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp
+ $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
+ if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
+ lt_cv_prog_compiler_c_o=yes
+ fi
+ fi
+ chmod u+w . 2>&5
+ $RM conftest*
+ # SGI C++ compiler will create directory out/ii_files/ for
+ # template instantiation
+ test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
+ $RM out/* && rmdir out
+ cd ..
+ $RM -r conftest
+ $RM conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5
+$as_echo "$lt_cv_prog_compiler_c_o" >&6; }
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
+$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
+if test "${lt_cv_prog_compiler_c_o+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_prog_compiler_c_o=no
+ $RM -r conftest 2>/dev/null
+ mkdir conftest
+ cd conftest
+ mkdir out
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+ lt_compiler_flag="-o out/conftest2.$ac_objext"
+ # Insert the option either (1) after the last *FLAGS variable, or
+ # (2) before a word containing "conftest.", or (3) at the end.
+ # Note that $ac_compile itself does not contain backslashes and begins
+ # with a dollar sign (not a hyphen), so the echo should work correctly.
+ lt_compile=`echo "$ac_compile" | $SED \
+ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+ -e 's:$: $lt_compiler_flag:'`
+ (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&5)
+ (eval "$lt_compile" 2>out/conftest.err)
+ ac_status=$?
+ cat out/conftest.err >&5
+ echo "$as_me:__oline__: \$? = $ac_status" >&5
+ if (exit $ac_status) && test -s out/conftest2.$ac_objext
+ then
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings
+ $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp
+ $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
+ if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
+ lt_cv_prog_compiler_c_o=yes
+ fi
+ fi
+ chmod u+w . 2>&5
+ $RM conftest*
+ # SGI C++ compiler will create directory out/ii_files/ for
+ # template instantiation
+ test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
+ $RM out/* && rmdir out
+ cd ..
+ $RM -r conftest
+ $RM conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5
+$as_echo "$lt_cv_prog_compiler_c_o" >&6; }
+
+
+
+
+hard_links="nottested"
+if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then
+ # do not overwrite the value of need_locks provided by the user
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5
+$as_echo_n "checking if we can lock with hard links... " >&6; }
+ hard_links=yes
+ $RM conftest*
+ ln conftest.a conftest.b 2>/dev/null && hard_links=no
+ touch conftest.a
+ ln conftest.a conftest.b 2>&5 || hard_links=no
+ ln conftest.a conftest.b 2>/dev/null && hard_links=no
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5
+$as_echo "$hard_links" >&6; }
+ if test "$hard_links" = no; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5
+$as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;}
+ need_locks=warn
+ fi
+else
+ need_locks=no
+fi
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5
+$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; }
+
+ runpath_var=
+ allow_undefined_flag=
+ always_export_symbols=no
+ archive_cmds=
+ archive_expsym_cmds=
+ compiler_needs_object=no
+ enable_shared_with_static_runtimes=no
+ export_dynamic_flag_spec=
+ export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+ hardcode_automatic=no
+ hardcode_direct=no
+ hardcode_direct_absolute=no
+ hardcode_libdir_flag_spec=
+ hardcode_libdir_flag_spec_ld=
+ hardcode_libdir_separator=
+ hardcode_minus_L=no
+ hardcode_shlibpath_var=unsupported
+ inherit_rpath=no
+ link_all_deplibs=unknown
+ module_cmds=
+ module_expsym_cmds=
+ old_archive_from_new_cmds=
+ old_archive_from_expsyms_cmds=
+ thread_safe_flag_spec=
+ whole_archive_flag_spec=
+ # include_expsyms should be a list of space-separated symbols to be *always*
+ # included in the symbol list
+ include_expsyms=
+ # exclude_expsyms can be an extended regexp of symbols to exclude
+ # it will be wrapped by ` (' and `)$', so one must not match beginning or
+ # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
+ # as well as any symbol that contains `d'.
+ exclude_expsyms='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'
+ # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
+ # platforms (ab)use it in PIC code, but their linkers get confused if
+ # the symbol is explicitly referenced. Since portable code cannot
+ # rely on this symbol name, it's probably fine to never include it in
+ # preloaded symbol tables.
+ # Exclude shared library initialization/finalization symbols.
+ extract_expsyms_cmds=
+
+ case $host_os in
+ cygwin* | mingw* | pw32* | cegcc*)
+ # FIXME: the MSVC++ port hasn't been tested in a loooong time
+ # When not using gcc, we currently assume that we are using
+ # Microsoft Visual C++.
+ if test "$GCC" != yes; then
+ with_gnu_ld=no
+ fi
+ ;;
+ interix*)
+ # we just hope/assume this is gcc and not c89 (= MSVC++)
+ with_gnu_ld=yes
+ ;;
+ openbsd*)
+ with_gnu_ld=no
+ ;;
+ linux* | k*bsd*-gnu)
+ link_all_deplibs=no
+ ;;
+ esac
+
+ ld_shlibs=yes
+ if test "$with_gnu_ld" = yes; then
+ # If archive_cmds runs LD, not CC, wlarc should be empty
+ wlarc='${wl}'
+
+ # Set some defaults for GNU ld with shared library support. These
+ # are reset later if shared libraries are not supported. Putting them
+ # here allows them to be overridden if necessary.
+ runpath_var=LD_RUN_PATH
+ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+ export_dynamic_flag_spec='${wl}--export-dynamic'
+ # ancient GNU ld didn't support --whole-archive et. al.
+ if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then
+ whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+ else
+ whole_archive_flag_spec=
+ fi
+ supports_anon_versioning=no
+ case `$LD -v 2>&1` in
+ *GNU\ gold*) supports_anon_versioning=yes ;;
+ *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11
+ *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
+ *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...
+ *\ 2.11.*) ;; # other 2.11 versions
+ *) supports_anon_versioning=yes ;;
+ esac
+
+ # See if GNU ld supports shared libraries.
+ case $host_os in
+ aix[3-9]*)
+ # On AIX/PPC, the GNU linker is very broken
+ if test "$host_cpu" != ia64; then
+ ld_shlibs=no
+ cat <<_LT_EOF 1>&2
+
+*** Warning: the GNU linker, at least up to release 2.9.1, is reported
+*** to be unable to reliably create shared libraries on AIX.
+*** Therefore, libtool is disabling shared libraries support. If you
+*** really care for shared libraries, you may want to modify your PATH
+*** so that a non-GNU linker is found, and then restart.
+
+_LT_EOF
+ fi
+ ;;
+
+ amigaos*)
+ case $host_cpu in
+ powerpc)
+ # see comment about AmigaOS4 .so support
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ archive_expsym_cmds=''
+ ;;
+ m68k)
+ archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_minus_L=yes
+ ;;
+ esac
+ ;;
+
+ beos*)
+ if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+ allow_undefined_flag=unsupported
+ # Joseph Beckenbach <jrb3@best.com> says some releases of gcc
+ # support --undefined. This deserves some investigation. FIXME
+ archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ else
+ ld_shlibs=no
+ fi
+ ;;
+
+ cygwin* | mingw* | pw32* | cegcc*)
+ # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless,
+ # as there is no search path for DLLs.
+ hardcode_libdir_flag_spec='-L$libdir'
+ allow_undefined_flag=unsupported
+ always_export_symbols=no
+ enable_shared_with_static_runtimes=yes
+ export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols'
+
+ if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+ # If the export-symbols file already is a .def file (1st line
+ # is EXPORTS), use it as is; otherwise, prepend...
+ archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+ cp $export_symbols $output_objdir/$soname.def;
+ else
+ echo EXPORTS > $output_objdir/$soname.def;
+ cat $export_symbols >> $output_objdir/$soname.def;
+ fi~
+ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+ else
+ ld_shlibs=no
+ fi
+ ;;
+
+ interix[3-9]*)
+ hardcode_direct=no
+ hardcode_shlibpath_var=no
+ hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
+ export_dynamic_flag_spec='${wl}-E'
+ # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
+ # Instead, shared libraries are loaded at an image base (0x10000000 by
+ # default) and relocated if they conflict, which is a slow very memory
+ # consuming and fragmenting process. To avoid this, we pick a random,
+ # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
+ # time. Moving up from 0x10000000 also allows more sbrk(2) space.
+ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+ archive_expsym_cmds='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+ ;;
+
+ gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu)
+ tmp_diet=no
+ if test "$host_os" = linux-dietlibc; then
+ case $cc_basename in
+ diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn)
+ esac
+ fi
+ if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
+ && test "$tmp_diet" = no
+ then
+ tmp_addflag=
+ tmp_sharedflag='-shared'
+ case $cc_basename,$host_cpu in
+ pgcc*) # Portland Group C compiler
+ whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
+ tmp_addflag=' $pic_flag'
+ ;;
+ pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers
+ whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
+ tmp_addflag=' $pic_flag -Mnomain' ;;
+ ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64
+ tmp_addflag=' -i_dynamic' ;;
+ efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64
+ tmp_addflag=' -i_dynamic -nofor_main' ;;
+ ifc* | ifort*) # Intel Fortran compiler
+ tmp_addflag=' -nofor_main' ;;
+ lf95*) # Lahey Fortran 8.1
+ whole_archive_flag_spec=
+ tmp_sharedflag='--shared' ;;
+ xl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below)
+ tmp_sharedflag='-qmkshrobj'
+ tmp_addflag= ;;
+ esac
+ case `$CC -V 2>&1 | sed 5q` in
+ *Sun\ C*) # Sun C 5.9
+ whole_archive_flag_spec='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
+ compiler_needs_object=yes
+ tmp_sharedflag='-G' ;;
+ *Sun\ F*) # Sun Fortran 8.3
+ tmp_sharedflag='-G' ;;
+ esac
+ archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+
+ if test "x$supports_anon_versioning" = xyes; then
+ archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~
+ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+ echo "local: *; };" >> $output_objdir/$libname.ver~
+ $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
+ fi
+
+ case $cc_basename in
+ xlf*)
+ # IBM XL Fortran 10.1 on PPC cannot create shared libs itself
+ whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive'
+ hardcode_libdir_flag_spec=
+ hardcode_libdir_flag_spec_ld='-rpath $libdir'
+ archive_cmds='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib'
+ if test "x$supports_anon_versioning" = xyes; then
+ archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~
+ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+ echo "local: *; };" >> $output_objdir/$libname.ver~
+ $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
+ fi
+ ;;
+ esac
+ else
+ ld_shlibs=no
+ fi
+ ;;
+
+ netbsd* | netbsdelf*-gnu)
+ if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
+ archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
+ wlarc=
+ else
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+ fi
+ ;;
+
+ solaris*)
+ if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then
+ ld_shlibs=no
+ cat <<_LT_EOF 1>&2
+
+*** Warning: The releases 2.8.* of the GNU linker cannot reliably
+*** create shared libraries on Solaris systems. Therefore, libtool
+*** is disabling shared libraries support. We urge you to upgrade GNU
+*** binutils to release 2.9.1 or newer. Another option is to modify
+*** your PATH or compiler configuration so that the native linker is
+*** used, and then restart.
+
+_LT_EOF
+ elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+ else
+ ld_shlibs=no
+ fi
+ ;;
+
+ sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*)
+ case `$LD -v 2>&1` in
+ *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*)
+ ld_shlibs=no
+ cat <<_LT_EOF 1>&2
+
+*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not
+*** reliably create shared libraries on SCO systems. Therefore, libtool
+*** is disabling shared libraries support. We urge you to upgrade GNU
+*** binutils to release 2.16.91.0.3 or newer. Another option is to modify
+*** your PATH or compiler configuration so that the native linker is
+*** used, and then restart.
+
+_LT_EOF
+ ;;
+ *)
+ # For security reasons, it is highly recommended that you always
+ # use absolute paths for naming shared libraries, and exclude the
+ # DT_RUNPATH tag from executables and libraries. But doing so
+ # requires that you compile everything twice, which is a pain.
+ if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+ else
+ ld_shlibs=no
+ fi
+ ;;
+ esac
+ ;;
+
+ sunos4*)
+ archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+ wlarc=
+ hardcode_direct=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ *)
+ if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+ else
+ ld_shlibs=no
+ fi
+ ;;
+ esac
+
+ if test "$ld_shlibs" = no; then
+ runpath_var=
+ hardcode_libdir_flag_spec=
+ export_dynamic_flag_spec=
+ whole_archive_flag_spec=
+ fi
+ else
+ # PORTME fill in a description of your system's linker (not GNU ld)
+ case $host_os in
+ aix3*)
+ allow_undefined_flag=unsupported
+ always_export_symbols=yes
+ archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname'
+ # Note: this linker hardcodes the directories in LIBPATH if there
+ # are no directories specified by -L.
+ hardcode_minus_L=yes
+ if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then
+ # Neither direct hardcoding nor static linking is supported with a
+ # broken collect2.
+ hardcode_direct=unsupported
+ fi
+ ;;
+
+ aix[4-9]*)
+ if test "$host_cpu" = ia64; then
+ # On IA64, the linker does run time linking by default, so we don't
+ # have to do anything special.
+ aix_use_runtimelinking=no
+ exp_sym_flag='-Bexport'
+ no_entry_flag=""
+ else
+ # If we're using GNU nm, then we don't want the "-C" option.
+ # -C means demangle to AIX nm, but means don't demangle with GNU nm
+ if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
+ export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
+ else
+ export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
+ fi
+ aix_use_runtimelinking=no
+
+ # Test if we are trying to use run time linking or normal
+ # AIX style linking. If -brtl is somewhere in LDFLAGS, we
+ # need to do runtime linking.
+ case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*)
+ for ld_flag in $LDFLAGS; do
+ if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
+ aix_use_runtimelinking=yes
+ break
+ fi
+ done
+ ;;
+ esac
+
+ exp_sym_flag='-bexport'
+ no_entry_flag='-bnoentry'
+ fi
+
+ # When large executables or shared objects are built, AIX ld can
+ # have problems creating the table of contents. If linking a library
+ # or program results in "error TOC overflow" add -mminimal-toc to
+ # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not
+ # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
+
+ archive_cmds=''
+ hardcode_direct=yes
+ hardcode_direct_absolute=yes
+ hardcode_libdir_separator=':'
+ link_all_deplibs=yes
+ file_list_spec='${wl}-f,'
+
+ if test "$GCC" = yes; then
+ case $host_os in aix4.[012]|aix4.[012].*)
+ # We only want to do this on AIX 4.2 and lower, the check
+ # below for broken collect2 doesn't work under 4.3+
+ collect2name=`${CC} -print-prog-name=collect2`
+ if test -f "$collect2name" &&
+ strings "$collect2name" | $GREP resolve_lib_name >/dev/null
+ then
+ # We have reworked collect2
+ :
+ else
+ # We have old collect2
+ hardcode_direct=unsupported
+ # It fails to find uninstalled libraries when the uninstalled
+ # path is not listed in the libpath. Setting hardcode_minus_L
+ # to unsupported forces relinking
+ hardcode_minus_L=yes
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_libdir_separator=
+ fi
+ ;;
+ esac
+ shared_flag='-shared'
+ if test "$aix_use_runtimelinking" = yes; then
+ shared_flag="$shared_flag "'${wl}-G'
+ fi
+ link_all_deplibs=no
+ else
+ # not using gcc
+ if test "$host_cpu" = ia64; then
+ # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
+ # chokes on -Wl,-G. The following line is correct:
+ shared_flag='-G'
+ else
+ if test "$aix_use_runtimelinking" = yes; then
+ shared_flag='${wl}-G'
+ else
+ shared_flag='${wl}-bM:SRE'
+ fi
+ fi
+ fi
+
+ export_dynamic_flag_spec='${wl}-bexpall'
+ # It seems that -bexpall does not export symbols beginning with
+ # underscore (_), so it is better to generate a list of symbols to export.
+ always_export_symbols=yes
+ if test "$aix_use_runtimelinking" = yes; then
+ # Warning - without using the other runtime loading flags (-brtl),
+ # -berok will link without error, but may produce a broken library.
+ allow_undefined_flag='-berok'
+ # Determine the default libpath from the value encoded in an
+ # empty executable.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+
+lt_aix_libpath_sed='
+ /Import File Strings/,/^$/ {
+ /^0/ {
+ s/^0 *\(.*\)$/\1/
+ p
+ }
+ }'
+aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+# Check for a 64-bit object if we didn't find anything.
+if test -z "$aix_libpath"; then
+ aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+fi
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+
+ hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
+ archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+ else
+ if test "$host_cpu" = ia64; then
+ hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib'
+ allow_undefined_flag="-z nodefs"
+ archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols"
+ else
+ # Determine the default libpath from the value encoded in an
+ # empty executable.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+
+lt_aix_libpath_sed='
+ /Import File Strings/,/^$/ {
+ /^0/ {
+ s/^0 *\(.*\)$/\1/
+ p
+ }
+ }'
+aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+# Check for a 64-bit object if we didn't find anything.
+if test -z "$aix_libpath"; then
+ aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+fi
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+
+ hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
+ # Warning - without using the other run time loading flags,
+ # -berok will link without error, but may produce a broken library.
+ no_undefined_flag=' ${wl}-bernotok'
+ allow_undefined_flag=' ${wl}-berok'
+ # Exported symbols can be pulled into shared objects from archives
+ whole_archive_flag_spec='$convenience'
+ archive_cmds_need_lc=yes
+ # This is similar to how AIX traditionally builds its shared libraries.
+ archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
+ fi
+ fi
+ ;;
+
+ amigaos*)
+ case $host_cpu in
+ powerpc)
+ # see comment about AmigaOS4 .so support
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ archive_expsym_cmds=''
+ ;;
+ m68k)
+ archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_minus_L=yes
+ ;;
+ esac
+ ;;
+
+ bsdi[45]*)
+ export_dynamic_flag_spec=-rdynamic
+ ;;
+
+ cygwin* | mingw* | pw32* | cegcc*)
+ # When not using gcc, we currently assume that we are using
+ # Microsoft Visual C++.
+ # hardcode_libdir_flag_spec is actually meaningless, as there is
+ # no search path for DLLs.
+ hardcode_libdir_flag_spec=' '
+ allow_undefined_flag=unsupported
+ # Tell ltmain to make .lib files, not .a files.
+ libext=lib
+ # Tell ltmain to make .dll files, not .so files.
+ shrext_cmds=".dll"
+ # FIXME: Setting linknames here is a bad hack.
+ archive_cmds='$CC -o $lib $libobjs $compiler_flags `$ECHO "X$deplibs" | $Xsed -e '\''s/ -lc$//'\''` -link -dll~linknames='
+ # The linker will automatically build a .lib file if we build a DLL.
+ old_archive_from_new_cmds='true'
+ # FIXME: Should let the user specify the lib program.
+ old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs'
+ fix_srcfile_path='`cygpath -w "$srcfile"`'
+ enable_shared_with_static_runtimes=yes
+ ;;
+
+ darwin* | rhapsody*)
+
+
+ archive_cmds_need_lc=no
+ hardcode_direct=no
+ hardcode_automatic=yes
+ hardcode_shlibpath_var=unsupported
+ whole_archive_flag_spec=''
+ link_all_deplibs=yes
+ allow_undefined_flag="$_lt_dar_allow_undefined"
+ case $cc_basename in
+ ifort*) _lt_dar_can_shared=yes ;;
+ *) _lt_dar_can_shared=$GCC ;;
+ esac
+ if test "$_lt_dar_can_shared" = "yes"; then
+ output_verbose_link_cmd=echo
+ archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
+ module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
+ archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
+ module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
+
+ else
+ ld_shlibs=no
+ fi
+
+ ;;
+
+ dgux*)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_shlibpath_var=no
+ ;;
+
+ freebsd1*)
+ ld_shlibs=no
+ ;;
+
+ # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
+ # support. Future versions do this automatically, but an explicit c++rt0.o
+ # does not break anything, and helps significantly (at the cost of a little
+ # extra space).
+ freebsd2.2*)
+ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
+ hardcode_libdir_flag_spec='-R$libdir'
+ hardcode_direct=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ # Unfortunately, older versions of FreeBSD 2 do not have this feature.
+ freebsd2*)
+ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_direct=yes
+ hardcode_minus_L=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
+ freebsd* | dragonfly*)
+ archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags'
+ hardcode_libdir_flag_spec='-R$libdir'
+ hardcode_direct=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ hpux9*)
+ if test "$GCC" = yes; then
+ archive_cmds='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+ else
+ archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+ fi
+ hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
+ hardcode_libdir_separator=:
+ hardcode_direct=yes
+
+ # hardcode_minus_L: Not really in the search PATH,
+ # but as the default location of the library.
+ hardcode_minus_L=yes
+ export_dynamic_flag_spec='${wl}-E'
+ ;;
+
+ hpux10*)
+ if test "$GCC" = yes -a "$with_gnu_ld" = no; then
+ archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+ else
+ archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
+ fi
+ if test "$with_gnu_ld" = no; then
+ hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
+ hardcode_libdir_flag_spec_ld='+b $libdir'
+ hardcode_libdir_separator=:
+ hardcode_direct=yes
+ hardcode_direct_absolute=yes
+ export_dynamic_flag_spec='${wl}-E'
+ # hardcode_minus_L: Not really in the search PATH,
+ # but as the default location of the library.
+ hardcode_minus_L=yes
+ fi
+ ;;
+
+ hpux11*)
+ if test "$GCC" = yes -a "$with_gnu_ld" = no; then
+ case $host_cpu in
+ hppa*64*)
+ archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ ia64*)
+ archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ *)
+ archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ esac
+ else
+ case $host_cpu in
+ hppa*64*)
+ archive_cmds='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ ia64*)
+ archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ *)
+ archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ esac
+ fi
+ if test "$with_gnu_ld" = no; then
+ hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
+ hardcode_libdir_separator=:
+
+ case $host_cpu in
+ hppa*64*|ia64*)
+ hardcode_direct=no
+ hardcode_shlibpath_var=no
+ ;;
+ *)
+ hardcode_direct=yes
+ hardcode_direct_absolute=yes
+ export_dynamic_flag_spec='${wl}-E'
+
+ # hardcode_minus_L: Not really in the search PATH,
+ # but as the default location of the library.
+ hardcode_minus_L=yes
+ ;;
+ esac
+ fi
+ ;;
+
+ irix5* | irix6* | nonstopux*)
+ if test "$GCC" = yes; then
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+ # Try to use the -exported_symbol ld option, if it does not
+ # work, assume that -exports_file does not work either and
+ # implicitly export all symbols.
+ save_LDFLAGS="$LDFLAGS"
+ LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+int foo(void) {}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib'
+
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ LDFLAGS="$save_LDFLAGS"
+ else
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
+ archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib'
+ fi
+ archive_cmds_need_lc='no'
+ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+ hardcode_libdir_separator=:
+ inherit_rpath=yes
+ link_all_deplibs=yes
+ ;;
+
+ netbsd* | netbsdelf*-gnu)
+ if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
+ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out
+ else
+ archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF
+ fi
+ hardcode_libdir_flag_spec='-R$libdir'
+ hardcode_direct=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ newsos6)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_direct=yes
+ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+ hardcode_libdir_separator=:
+ hardcode_shlibpath_var=no
+ ;;
+
+ *nto* | *qnx*)
+ ;;
+
+ openbsd*)
+ if test -f /usr/libexec/ld.so; then
+ hardcode_direct=yes
+ hardcode_shlibpath_var=no
+ hardcode_direct_absolute=yes
+ if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+ archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols'
+ hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
+ export_dynamic_flag_spec='${wl}-E'
+ else
+ case $host_os in
+ openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*)
+ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_libdir_flag_spec='-R$libdir'
+ ;;
+ *)
+ archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+ hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
+ ;;
+ esac
+ fi
+ else
+ ld_shlibs=no
+ fi
+ ;;
+
+ os2*)
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_minus_L=yes
+ allow_undefined_flag=unsupported
+ archive_cmds='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$ECHO DATA >> $output_objdir/$libname.def~$ECHO " SINGLE NONSHARED" >> $output_objdir/$libname.def~$ECHO EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
+ old_archive_from_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
+ ;;
+
+ osf3*)
+ if test "$GCC" = yes; then
+ allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
+ archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+ else
+ allow_undefined_flag=' -expect_unresolved \*'
+ archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
+ fi
+ archive_cmds_need_lc='no'
+ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+ hardcode_libdir_separator=:
+ ;;
+
+ osf4* | osf5*) # as osf3* with the addition of -msym flag
+ if test "$GCC" = yes; then
+ allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
+ archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+ else
+ allow_undefined_flag=' -expect_unresolved \*'
+ archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
+ archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~
+ $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp'
+
+ # Both c and cxx compiler support -rpath directly
+ hardcode_libdir_flag_spec='-rpath $libdir'
+ fi
+ archive_cmds_need_lc='no'
+ hardcode_libdir_separator=:
+ ;;
+
+ solaris*)
+ no_undefined_flag=' -z defs'
+ if test "$GCC" = yes; then
+ wlarc='${wl}'
+ archive_cmds='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+ $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
+ else
+ case `$CC -V 2>&1` in
+ *"Compilers 5.0"*)
+ wlarc=''
+ archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp'
+ ;;
+ *)
+ wlarc='${wl}'
+ archive_cmds='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+ $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
+ ;;
+ esac
+ fi
+ hardcode_libdir_flag_spec='-R$libdir'
+ hardcode_shlibpath_var=no
+ case $host_os in
+ solaris2.[0-5] | solaris2.[0-5].*) ;;
+ *)
+ # The compiler driver will combine and reorder linker options,
+ # but understands `-z linker_flag'. GCC discards it without `$wl',
+ # but is careful enough not to reorder.
+ # Supported since Solaris 2.6 (maybe 2.5.1?)
+ if test "$GCC" = yes; then
+ whole_archive_flag_spec='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
+ else
+ whole_archive_flag_spec='-z allextract$convenience -z defaultextract'
+ fi
+ ;;
+ esac
+ link_all_deplibs=yes
+ ;;
+
+ sunos4*)
+ if test "x$host_vendor" = xsequent; then
+ # Use $CC to link under sequent, because it throws in some extra .o
+ # files that make .init and .fini sections work.
+ archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags'
+ else
+ archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
+ fi
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_direct=yes
+ hardcode_minus_L=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ sysv4)
+ case $host_vendor in
+ sni)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_direct=yes # is this really true???
+ ;;
+ siemens)
+ ## LD is ld it makes a PLAMLIB
+ ## CC just makes a GrossModule.
+ archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags'
+ reload_cmds='$CC -r -o $output$reload_objs'
+ hardcode_direct=no
+ ;;
+ motorola)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_direct=no #Motorola manual says yes, but my tests say they lie
+ ;;
+ esac
+ runpath_var='LD_RUN_PATH'
+ hardcode_shlibpath_var=no
+ ;;
+
+ sysv4.3*)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_shlibpath_var=no
+ export_dynamic_flag_spec='-Bexport'
+ ;;
+
+ sysv4*MP*)
+ if test -d /usr/nec; then
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_shlibpath_var=no
+ runpath_var=LD_RUN_PATH
+ hardcode_runpath_var=yes
+ ld_shlibs=yes
+ fi
+ ;;
+
+ sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*)
+ no_undefined_flag='${wl}-z,text'
+ archive_cmds_need_lc=no
+ hardcode_shlibpath_var=no
+ runpath_var='LD_RUN_PATH'
+
+ if test "$GCC" = yes; then
+ archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ else
+ archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ fi
+ ;;
+
+ sysv5* | sco3.2v5* | sco5v6*)
+ # Note: We can NOT use -z defs as we might desire, because we do not
+ # link with -lc, and that would cause any symbols used from libc to
+ # always be unresolved, which means just about no library would
+ # ever link correctly. If we're not using GNU ld we use -z text
+ # though, which does catch some bad symbols but isn't as heavy-handed
+ # as -z defs.
+ no_undefined_flag='${wl}-z,text'
+ allow_undefined_flag='${wl}-z,nodefs'
+ archive_cmds_need_lc=no
+ hardcode_shlibpath_var=no
+ hardcode_libdir_flag_spec='${wl}-R,$libdir'
+ hardcode_libdir_separator=':'
+ link_all_deplibs=yes
+ export_dynamic_flag_spec='${wl}-Bexport'
+ runpath_var='LD_RUN_PATH'
+
+ if test "$GCC" = yes; then
+ archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ else
+ archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ fi
+ ;;
+
+ uts4*)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_shlibpath_var=no
+ ;;
+
+ *)
+ ld_shlibs=no
+ ;;
+ esac
+
+ if test x$host_vendor = xsni; then
+ case $host in
+ sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+ export_dynamic_flag_spec='${wl}-Blargedynsym'
+ ;;
+ esac
+ fi
+ fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5
+$as_echo "$ld_shlibs" >&6; }
+test "$ld_shlibs" = no && can_build_shared=no
+
+with_gnu_ld=$with_gnu_ld
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#
+# Do we need to explicitly link libc?
+#
+case "x$archive_cmds_need_lc" in
+x|xyes)
+ # Assume -lc should be added
+ archive_cmds_need_lc=yes
+
+ if test "$enable_shared" = yes && test "$GCC" = yes; then
+ case $archive_cmds in
+ *'~'*)
+ # FIXME: we may have to deal with multi-command sequences.
+ ;;
+ '$CC '*)
+ # Test whether the compiler implicitly links with -lc since on some
+ # systems, -lgcc has to come before -lc. If gcc already passes -lc
+ # to ld, don't add -lc before -lgcc.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5
+$as_echo_n "checking whether -lc should be explicitly linked in... " >&6; }
+ $RM conftest*
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } 2>conftest.err; then
+ soname=conftest
+ lib=conftest
+ libobjs=conftest.$ac_objext
+ deplibs=
+ wl=$lt_prog_compiler_wl
+ pic_flag=$lt_prog_compiler_pic
+ compiler_flags=-v
+ linker_flags=-v
+ verstring=
+ output_objdir=.
+ libname=conftest
+ lt_save_allow_undefined_flag=$allow_undefined_flag
+ allow_undefined_flag=
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5
+ (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+ then
+ archive_cmds_need_lc=no
+ else
+ archive_cmds_need_lc=yes
+ fi
+ allow_undefined_flag=$lt_save_allow_undefined_flag
+ else
+ cat conftest.err 1>&5
+ fi
+ $RM conftest*
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $archive_cmds_need_lc" >&5
+$as_echo "$archive_cmds_need_lc" >&6; }
+ ;;
+ esac
+ fi
+ ;;
+esac
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5
+$as_echo_n "checking dynamic linker characteristics... " >&6; }
+
+if test "$GCC" = yes; then
+ case $host_os in
+ darwin*) lt_awk_arg="/^libraries:/,/LR/" ;;
+ *) lt_awk_arg="/^libraries:/" ;;
+ esac
+ lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e "s,=/,/,g"`
+ if $ECHO "$lt_search_path_spec" | $GREP ';' >/dev/null ; then
+ # if the path contains ";" then we assume it to be the separator
+ # otherwise default to the standard path separator (i.e. ":") - it is
+ # assumed that no part of a normal pathname contains ";" but that should
+ # okay in the real world where ";" in dirpaths is itself problematic.
+ lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e 's/;/ /g'`
+ else
+ lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
+ fi
+ # Ok, now we have the path, separated by spaces, we can step through it
+ # and add multilib dir if necessary.
+ lt_tmp_lt_search_path_spec=
+ lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null`
+ for lt_sys_path in $lt_search_path_spec; do
+ if test -d "$lt_sys_path/$lt_multi_os_dir"; then
+ lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir"
+ else
+ test -d "$lt_sys_path" && \
+ lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path"
+ fi
+ done
+ lt_search_path_spec=`$ECHO $lt_tmp_lt_search_path_spec | awk '
+BEGIN {RS=" "; FS="/|\n";} {
+ lt_foo="";
+ lt_count=0;
+ for (lt_i = NF; lt_i > 0; lt_i--) {
+ if ($lt_i != "" && $lt_i != ".") {
+ if ($lt_i == "..") {
+ lt_count++;
+ } else {
+ if (lt_count == 0) {
+ lt_foo="/" $lt_i lt_foo;
+ } else {
+ lt_count--;
+ }
+ }
+ }
+ }
+ if (lt_foo != "") { lt_freq[lt_foo]++; }
+ if (lt_freq[lt_foo] == 1) { print lt_foo; }
+}'`
+ sys_lib_search_path_spec=`$ECHO $lt_search_path_spec`
+else
+ sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
+fi
+library_names_spec=
+libname_spec='lib$name'
+soname_spec=
+shrext_cmds=".so"
+postinstall_cmds=
+postuninstall_cmds=
+finish_cmds=
+finish_eval=
+shlibpath_var=
+shlibpath_overrides_runpath=unknown
+version_type=none
+dynamic_linker="$host_os ld.so"
+sys_lib_dlsearch_path_spec="/lib /usr/lib"
+need_lib_prefix=unknown
+hardcode_into_libs=no
+
+# when you set need_version to no, make sure it does not cause -set_version
+# flags to be left without arguments
+need_version=unknown
+
+case $host_os in
+aix3*)
+ version_type=linux
+ library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
+ shlibpath_var=LIBPATH
+
+ # AIX 3 has no versioning support, so we append a major version to the name.
+ soname_spec='${libname}${release}${shared_ext}$major'
+ ;;
+
+aix[4-9]*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ hardcode_into_libs=yes
+ if test "$host_cpu" = ia64; then
+ # AIX 5 supports IA64
+ library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
+ shlibpath_var=LD_LIBRARY_PATH
+ else
+ # With GCC up to 2.95.x, collect2 would create an import file
+ # for dependence libraries. The import file would start with
+ # the line `#! .'. This would cause the generated library to
+ # depend on `.', always an invalid library. This was fixed in
+ # development snapshots of GCC prior to 3.0.
+ case $host_os in
+ aix4 | aix4.[01] | aix4.[01].*)
+ if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
+ echo ' yes '
+ echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then
+ :
+ else
+ can_build_shared=no
+ fi
+ ;;
+ esac
+ # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
+ # soname into executable. Probably we can add versioning support to
+ # collect2, so additional links can be useful in future.
+ if test "$aix_use_runtimelinking" = yes; then
+ # If using run time linking (on AIX 4.2 or later) use lib<name>.so
+ # instead of lib<name>.a to let people know that these are not
+ # typical AIX shared libraries.
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ else
+ # We preserve .a as extension for shared libraries through AIX4.2
+ # and later when we are not doing run time linking.
+ library_names_spec='${libname}${release}.a $libname.a'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ fi
+ shlibpath_var=LIBPATH
+ fi
+ ;;
+
+amigaos*)
+ case $host_cpu in
+ powerpc)
+ # Since July 2007 AmigaOS4 officially supports .so libraries.
+ # When compiling the executable, add -use-dynld -Lsobjs: to the compileline.
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ ;;
+ m68k)
+ library_names_spec='$libname.ixlibrary $libname.a'
+ # Create ${libname}_ixlibrary.a entries in /sys/libs.
+ finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$ECHO "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
+ ;;
+ esac
+ ;;
+
+beos*)
+ library_names_spec='${libname}${shared_ext}'
+ dynamic_linker="$host_os ld.so"
+ shlibpath_var=LIBRARY_PATH
+ ;;
+
+bsdi[45]*)
+ version_type=linux
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
+ sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
+ # the default ld.so.conf also contains /usr/contrib/lib and
+ # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
+ # libtool to hard-code these into programs
+ ;;
+
+cygwin* | mingw* | pw32* | cegcc*)
+ version_type=windows
+ shrext_cmds=".dll"
+ need_version=no
+ need_lib_prefix=no
+
+ case $GCC,$host_os in
+ yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*)
+ library_names_spec='$libname.dll.a'
+ # DLL is installed to $(libdir)/../bin by postinstall_cmds
+ postinstall_cmds='base_file=`basename \${file}`~
+ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
+ dldir=$destdir/`dirname \$dlpath`~
+ test -d \$dldir || mkdir -p \$dldir~
+ $install_prog $dir/$dlname \$dldir/$dlname~
+ chmod a+x \$dldir/$dlname~
+ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then
+ eval '\''$striplib \$dldir/$dlname'\'' || exit \$?;
+ fi'
+ postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
+ dlpath=$dir/\$dldll~
+ $RM \$dlpath'
+ shlibpath_overrides_runpath=yes
+
+ case $host_os in
+ cygwin*)
+ # Cygwin DLLs use 'cyg' prefix rather than 'lib'
+ soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+ sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib"
+ ;;
+ mingw* | cegcc*)
+ # MinGW DLLs use traditional 'lib' prefix
+ soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+ sys_lib_search_path_spec=`$CC -print-search-dirs | $GREP "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
+ if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then
+ # It is most probably a Windows format PATH printed by
+ # mingw gcc, but we are running on Cygwin. Gcc prints its search
+ # path with ; separators, and with drive letters. We can handle the
+ # drive letters (cygwin fileutils understands them), so leave them,
+ # especially as we might pass files found there to a mingw objdump,
+ # which wouldn't understand a cygwinified path. Ahh.
+ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
+ else
+ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
+ fi
+ ;;
+ pw32*)
+ # pw32 DLLs use 'pw' prefix rather than 'lib'
+ library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+ ;;
+ esac
+ ;;
+
+ *)
+ library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib'
+ ;;
+ esac
+ dynamic_linker='Win32 ld.exe'
+ # FIXME: first we should search . and the directory the executable is in
+ shlibpath_var=PATH
+ ;;
+
+darwin* | rhapsody*)
+ dynamic_linker="$host_os dyld"
+ version_type=darwin
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext'
+ soname_spec='${libname}${release}${major}$shared_ext'
+ shlibpath_overrides_runpath=yes
+ shlibpath_var=DYLD_LIBRARY_PATH
+ shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
+
+ sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"
+ sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
+ ;;
+
+dgux*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ ;;
+
+freebsd1*)
+ dynamic_linker=no
+ ;;
+
+freebsd* | dragonfly*)
+ # DragonFly does not have aout. When/if they implement a new
+ # versioning mechanism, adjust this.
+ if test -x /usr/bin/objformat; then
+ objformat=`/usr/bin/objformat`
+ else
+ case $host_os in
+ freebsd[123]*) objformat=aout ;;
+ *) objformat=elf ;;
+ esac
+ fi
+ version_type=freebsd-$objformat
+ case $version_type in
+ freebsd-elf*)
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
+ need_version=no
+ need_lib_prefix=no
+ ;;
+ freebsd-*)
+ library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
+ need_version=yes
+ ;;
+ esac
+ shlibpath_var=LD_LIBRARY_PATH
+ case $host_os in
+ freebsd2*)
+ shlibpath_overrides_runpath=yes
+ ;;
+ freebsd3.[01]* | freebsdelf3.[01]*)
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ ;;
+ freebsd3.[2-9]* | freebsdelf3.[2-9]* | \
+ freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1)
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ ;;
+ *) # from 4.6 on, and DragonFly
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ ;;
+ esac
+ ;;
+
+gnu*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ hardcode_into_libs=yes
+ ;;
+
+hpux9* | hpux10* | hpux11*)
+ # Give a soname corresponding to the major version so that dld.sl refuses to
+ # link against other versions.
+ version_type=sunos
+ need_lib_prefix=no
+ need_version=no
+ case $host_cpu in
+ ia64*)
+ shrext_cmds='.so'
+ hardcode_into_libs=yes
+ dynamic_linker="$host_os dld.so"
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ if test "X$HPUX_IA64_MODE" = X32; then
+ sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
+ else
+ sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
+ fi
+ sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+ ;;
+ hppa*64*)
+ shrext_cmds='.sl'
+ hardcode_into_libs=yes
+ dynamic_linker="$host_os dld.sl"
+ shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
+ shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
+ sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+ ;;
+ *)
+ shrext_cmds='.sl'
+ dynamic_linker="$host_os dld.sl"
+ shlibpath_var=SHLIB_PATH
+ shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ ;;
+ esac
+ # HP-UX runs *really* slowly unless shared libraries are mode 555.
+ postinstall_cmds='chmod 555 $lib'
+ ;;
+
+interix[3-9]*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ ;;
+
+irix5* | irix6* | nonstopux*)
+ case $host_os in
+ nonstopux*) version_type=nonstopux ;;
+ *)
+ if test "$lt_cv_prog_gnu_ld" = yes; then
+ version_type=linux
+ else
+ version_type=irix
+ fi ;;
+ esac
+ need_lib_prefix=no
+ need_version=no
+ soname_spec='${libname}${release}${shared_ext}$major'
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
+ case $host_os in
+ irix5* | nonstopux*)
+ libsuff= shlibsuff=
+ ;;
+ *)
+ case $LD in # libtool.m4 will add one of these switches to LD
+ *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
+ libsuff= shlibsuff= libmagic=32-bit;;
+ *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
+ libsuff=32 shlibsuff=N32 libmagic=N32;;
+ *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
+ libsuff=64 shlibsuff=64 libmagic=64-bit;;
+ *) libsuff= shlibsuff= libmagic=never-match;;
+ esac
+ ;;
+ esac
+ shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
+ shlibpath_overrides_runpath=no
+ sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
+ sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
+ hardcode_into_libs=yes
+ ;;
+
+# No shared lib support for Linux oldld, aout, or coff.
+linux*oldld* | linux*aout* | linux*coff*)
+ dynamic_linker=no
+ ;;
+
+# This must be Linux ELF.
+linux* | k*bsd*-gnu | kopensolaris*-gnu)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ # Some binutils ld are patched to set DT_RUNPATH
+ save_LDFLAGS=$LDFLAGS
+ save_libdir=$libdir
+ eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \
+ LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\""
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then :
+ shlibpath_overrides_runpath=yes
+fi
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ LDFLAGS=$save_LDFLAGS
+ libdir=$save_libdir
+
+ # This implies no fast_install, which is unacceptable.
+ # Some rework will be needed to allow for fast_install
+ # before this can be enabled.
+ hardcode_into_libs=yes
+
+ # Append ld.so.conf contents to the search path
+ if test -f /etc/ld.so.conf; then
+ lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
+ sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
+ fi
+
+ # We used to test for /lib/ld.so.1 and disable shared libraries on
+ # powerpc, because MkLinux only supported shared libraries with the
+ # GNU dynamic linker. Since this was broken with cross compilers,
+ # most powerpc-linux boxes support dynamic linking these days and
+ # people can always --disable-shared, the test was removed, and we
+ # assume the GNU/Linux dynamic linker is in use.
+ dynamic_linker='GNU/Linux ld.so'
+ ;;
+
+netbsdelf*-gnu)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ dynamic_linker='NetBSD ld.elf_so'
+ ;;
+
+netbsd*)
+ version_type=sunos
+ need_lib_prefix=no
+ need_version=no
+ if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+ dynamic_linker='NetBSD (a.out) ld.so'
+ else
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ dynamic_linker='NetBSD ld.elf_so'
+ fi
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ ;;
+
+newsos6)
+ version_type=linux
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ ;;
+
+*nto* | *qnx*)
+ version_type=qnx
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ dynamic_linker='ldqnx.so'
+ ;;
+
+openbsd*)
+ version_type=sunos
+ sys_lib_dlsearch_path_spec="/usr/lib"
+ need_lib_prefix=no
+ # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs.
+ case $host_os in
+ openbsd3.3 | openbsd3.3.*) need_version=yes ;;
+ *) need_version=no ;;
+ esac
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+ case $host_os in
+ openbsd2.[89] | openbsd2.[89].*)
+ shlibpath_overrides_runpath=no
+ ;;
+ *)
+ shlibpath_overrides_runpath=yes
+ ;;
+ esac
+ else
+ shlibpath_overrides_runpath=yes
+ fi
+ ;;
+
+os2*)
+ libname_spec='$name'
+ shrext_cmds=".dll"
+ need_lib_prefix=no
+ library_names_spec='$libname${shared_ext} $libname.a'
+ dynamic_linker='OS/2 ld.exe'
+ shlibpath_var=LIBPATH
+ ;;
+
+osf3* | osf4* | osf5*)
+ version_type=osf
+ need_lib_prefix=no
+ need_version=no
+ soname_spec='${libname}${release}${shared_ext}$major'
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ shlibpath_var=LD_LIBRARY_PATH
+ sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
+ sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
+ ;;
+
+rdos*)
+ dynamic_linker=no
+ ;;
+
+solaris*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ # ldd complains unless libraries are executable
+ postinstall_cmds='chmod +x $lib'
+ ;;
+
+sunos4*)
+ version_type=sunos
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+ finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ if test "$with_gnu_ld" = yes; then
+ need_lib_prefix=no
+ fi
+ need_version=yes
+ ;;
+
+sysv4 | sysv4.3*)
+ version_type=linux
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ case $host_vendor in
+ sni)
+ shlibpath_overrides_runpath=no
+ need_lib_prefix=no
+ runpath_var=LD_RUN_PATH
+ ;;
+ siemens)
+ need_lib_prefix=no
+ ;;
+ motorola)
+ need_lib_prefix=no
+ need_version=no
+ shlibpath_overrides_runpath=no
+ sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
+ ;;
+ esac
+ ;;
+
+sysv4*MP*)
+ if test -d /usr/nec ;then
+ version_type=linux
+ library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
+ soname_spec='$libname${shared_ext}.$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ fi
+ ;;
+
+sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
+ version_type=freebsd-elf
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ if test "$with_gnu_ld" = yes; then
+ sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib'
+ else
+ sys_lib_search_path_spec='/usr/ccs/lib /usr/lib'
+ case $host_os in
+ sco3.2v5*)
+ sys_lib_search_path_spec="$sys_lib_search_path_spec /lib"
+ ;;
+ esac
+ fi
+ sys_lib_dlsearch_path_spec='/usr/lib'
+ ;;
+
+tpf*)
+ # TPF is a cross-target only. Preferred cross-host = GNU/Linux.
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ ;;
+
+uts4*)
+ version_type=linux
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ ;;
+
+*)
+ dynamic_linker=no
+ ;;
+esac
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5
+$as_echo "$dynamic_linker" >&6; }
+test "$dynamic_linker" = no && can_build_shared=no
+
+variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
+if test "$GCC" = yes; then
+ variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
+fi
+
+if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then
+ sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec"
+fi
+if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then
+ sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec"
+fi
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5
+$as_echo_n "checking how to hardcode library paths into programs... " >&6; }
+hardcode_action=
+if test -n "$hardcode_libdir_flag_spec" ||
+ test -n "$runpath_var" ||
+ test "X$hardcode_automatic" = "Xyes" ; then
+
+ # We can hardcode non-existent directories.
+ if test "$hardcode_direct" != no &&
+ # If the only mechanism to avoid hardcoding is shlibpath_var, we
+ # have to relink, otherwise we might link with an installed library
+ # when we should be linking with a yet-to-be-installed one
+ ## test "$_LT_TAGVAR(hardcode_shlibpath_var, )" != no &&
+ test "$hardcode_minus_L" != no; then
+ # Linking always hardcodes the temporary library directory.
+ hardcode_action=relink
+ else
+ # We can link without hardcoding, and we can hardcode nonexisting dirs.
+ hardcode_action=immediate
+ fi
+else
+ # We cannot hardcode anything, or else we can only hardcode existing
+ # directories.
+ hardcode_action=unsupported
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5
+$as_echo "$hardcode_action" >&6; }
+
+if test "$hardcode_action" = relink ||
+ test "$inherit_rpath" = yes; then
+ # Fast installation is not supported
+ enable_fast_install=no
+elif test "$shlibpath_overrides_runpath" = yes ||
+ test "$enable_shared" = no; then
+ # Fast installation is not necessary
+ enable_fast_install=needless
+fi
+
+
+
+
+
+
+ if test "x$enable_dlopen" != xyes; then
+ enable_dlopen=unknown
+ enable_dlopen_self=unknown
+ enable_dlopen_self_static=unknown
+else
+ lt_cv_dlopen=no
+ lt_cv_dlopen_libs=
+
+ case $host_os in
+ beos*)
+ lt_cv_dlopen="load_add_on"
+ lt_cv_dlopen_libs=
+ lt_cv_dlopen_self=yes
+ ;;
+
+ mingw* | pw32* | cegcc*)
+ lt_cv_dlopen="LoadLibrary"
+ lt_cv_dlopen_libs=
+ ;;
+
+ cygwin*)
+ lt_cv_dlopen="dlopen"
+ lt_cv_dlopen_libs=
+ ;;
+
+ darwin*)
+ # if libdl is installed we need to link against it
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
+$as_echo_n "checking for dlopen in -ldl... " >&6; }
+if test "${ac_cv_lib_dl_dlopen+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldl $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dlopen ();
+int
+main ()
+{
+return dlopen ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_dl_dlopen=yes
+else
+ ac_cv_lib_dl_dlopen=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
+$as_echo "$ac_cv_lib_dl_dlopen" >&6; }
+if test "x$ac_cv_lib_dl_dlopen" = x""yes; then :
+ lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
+else
+
+ lt_cv_dlopen="dyld"
+ lt_cv_dlopen_libs=
+ lt_cv_dlopen_self=yes
+
+fi
+
+ ;;
+
+ *)
+ ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load"
+if test "x$ac_cv_func_shl_load" = x""yes; then :
+ lt_cv_dlopen="shl_load"
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5
+$as_echo_n "checking for shl_load in -ldld... " >&6; }
+if test "${ac_cv_lib_dld_shl_load+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldld $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char shl_load ();
+int
+main ()
+{
+return shl_load ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_dld_shl_load=yes
+else
+ ac_cv_lib_dld_shl_load=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5
+$as_echo "$ac_cv_lib_dld_shl_load" >&6; }
+if test "x$ac_cv_lib_dld_shl_load" = x""yes; then :
+ lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"
+else
+ ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen"
+if test "x$ac_cv_func_dlopen" = x""yes; then :
+ lt_cv_dlopen="dlopen"
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
+$as_echo_n "checking for dlopen in -ldl... " >&6; }
+if test "${ac_cv_lib_dl_dlopen+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldl $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dlopen ();
+int
+main ()
+{
+return dlopen ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_dl_dlopen=yes
+else
+ ac_cv_lib_dl_dlopen=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
+$as_echo "$ac_cv_lib_dl_dlopen" >&6; }
+if test "x$ac_cv_lib_dl_dlopen" = x""yes; then :
+ lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5
+$as_echo_n "checking for dlopen in -lsvld... " >&6; }
+if test "${ac_cv_lib_svld_dlopen+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lsvld $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dlopen ();
+int
+main ()
+{
+return dlopen ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_svld_dlopen=yes
+else
+ ac_cv_lib_svld_dlopen=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5
+$as_echo "$ac_cv_lib_svld_dlopen" >&6; }
+if test "x$ac_cv_lib_svld_dlopen" = x""yes; then :
+ lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5
+$as_echo_n "checking for dld_link in -ldld... " >&6; }
+if test "${ac_cv_lib_dld_dld_link+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldld $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dld_link ();
+int
+main ()
+{
+return dld_link ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_dld_dld_link=yes
+else
+ ac_cv_lib_dld_dld_link=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5
+$as_echo "$ac_cv_lib_dld_dld_link" >&6; }
+if test "x$ac_cv_lib_dld_dld_link" = x""yes; then :
+ lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"
+fi
+
+
+fi
+
+
+fi
+
+
+fi
+
+
+fi
+
+
+fi
+
+ ;;
+ esac
+
+ if test "x$lt_cv_dlopen" != xno; then
+ enable_dlopen=yes
+ else
+ enable_dlopen=no
+ fi
+
+ case $lt_cv_dlopen in
+ dlopen)
+ save_CPPFLAGS="$CPPFLAGS"
+ test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
+
+ save_LDFLAGS="$LDFLAGS"
+ wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
+
+ save_LIBS="$LIBS"
+ LIBS="$lt_cv_dlopen_libs $LIBS"
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5
+$as_echo_n "checking whether a program can dlopen itself... " >&6; }
+if test "${lt_cv_dlopen_self+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "$cross_compiling" = yes; then :
+ lt_cv_dlopen_self=cross
+else
+ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+ lt_status=$lt_dlunknown
+ cat > conftest.$ac_ext <<_LT_EOF
+#line __oline__ "configure"
+#include "confdefs.h"
+
+#if HAVE_DLFCN_H
+#include <dlfcn.h>
+#endif
+
+#include <stdio.h>
+
+#ifdef RTLD_GLOBAL
+# define LT_DLGLOBAL RTLD_GLOBAL
+#else
+# ifdef DL_GLOBAL
+# define LT_DLGLOBAL DL_GLOBAL
+# else
+# define LT_DLGLOBAL 0
+# endif
+#endif
+
+/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
+ find out it does not work in some platform. */
+#ifndef LT_DLLAZY_OR_NOW
+# ifdef RTLD_LAZY
+# define LT_DLLAZY_OR_NOW RTLD_LAZY
+# else
+# ifdef DL_LAZY
+# define LT_DLLAZY_OR_NOW DL_LAZY
+# else
+# ifdef RTLD_NOW
+# define LT_DLLAZY_OR_NOW RTLD_NOW
+# else
+# ifdef DL_NOW
+# define LT_DLLAZY_OR_NOW DL_NOW
+# else
+# define LT_DLLAZY_OR_NOW 0
+# endif
+# endif
+# endif
+# endif
+#endif
+
+void fnord() { int i=42;}
+int main ()
+{
+ void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
+ int status = $lt_dlunknown;
+
+ if (self)
+ {
+ if (dlsym (self,"fnord")) status = $lt_dlno_uscore;
+ else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
+ /* dlclose (self); */
+ }
+ else
+ puts (dlerror ());
+
+ return status;
+}
+_LT_EOF
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then
+ (./conftest; exit; ) >&5 2>/dev/null
+ lt_status=$?
+ case x$lt_status in
+ x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;;
+ x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;;
+ x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;;
+ esac
+ else :
+ # compilation failed
+ lt_cv_dlopen_self=no
+ fi
+fi
+rm -fr conftest*
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5
+$as_echo "$lt_cv_dlopen_self" >&6; }
+
+ if test "x$lt_cv_dlopen_self" = xyes; then
+ wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5
+$as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; }
+if test "${lt_cv_dlopen_self_static+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "$cross_compiling" = yes; then :
+ lt_cv_dlopen_self_static=cross
+else
+ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+ lt_status=$lt_dlunknown
+ cat > conftest.$ac_ext <<_LT_EOF
+#line __oline__ "configure"
+#include "confdefs.h"
+
+#if HAVE_DLFCN_H
+#include <dlfcn.h>
+#endif
+
+#include <stdio.h>
+
+#ifdef RTLD_GLOBAL
+# define LT_DLGLOBAL RTLD_GLOBAL
+#else
+# ifdef DL_GLOBAL
+# define LT_DLGLOBAL DL_GLOBAL
+# else
+# define LT_DLGLOBAL 0
+# endif
+#endif
+
+/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
+ find out it does not work in some platform. */
+#ifndef LT_DLLAZY_OR_NOW
+# ifdef RTLD_LAZY
+# define LT_DLLAZY_OR_NOW RTLD_LAZY
+# else
+# ifdef DL_LAZY
+# define LT_DLLAZY_OR_NOW DL_LAZY
+# else
+# ifdef RTLD_NOW
+# define LT_DLLAZY_OR_NOW RTLD_NOW
+# else
+# ifdef DL_NOW
+# define LT_DLLAZY_OR_NOW DL_NOW
+# else
+# define LT_DLLAZY_OR_NOW 0
+# endif
+# endif
+# endif
+# endif
+#endif
+
+void fnord() { int i=42;}
+int main ()
+{
+ void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
+ int status = $lt_dlunknown;
+
+ if (self)
+ {
+ if (dlsym (self,"fnord")) status = $lt_dlno_uscore;
+ else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
+ /* dlclose (self); */
+ }
+ else
+ puts (dlerror ());
+
+ return status;
+}
+_LT_EOF
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then
+ (./conftest; exit; ) >&5 2>/dev/null
+ lt_status=$?
+ case x$lt_status in
+ x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;;
+ x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;;
+ x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;;
+ esac
+ else :
+ # compilation failed
+ lt_cv_dlopen_self_static=no
+ fi
+fi
+rm -fr conftest*
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5
+$as_echo "$lt_cv_dlopen_self_static" >&6; }
+ fi
+
+ CPPFLAGS="$save_CPPFLAGS"
+ LDFLAGS="$save_LDFLAGS"
+ LIBS="$save_LIBS"
+ ;;
+ esac
+
+ case $lt_cv_dlopen_self in
+ yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
+ *) enable_dlopen_self=unknown ;;
+ esac
+
+ case $lt_cv_dlopen_self_static in
+ yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
+ *) enable_dlopen_self_static=unknown ;;
+ esac
+fi
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+striplib=
+old_striplib=
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5
+$as_echo_n "checking whether stripping libraries is possible... " >&6; }
+if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then
+ test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
+ test -z "$striplib" && striplib="$STRIP --strip-unneeded"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+else
+# FIXME - insert some real tests, host_os isn't really good enough
+ case $host_os in
+ darwin*)
+ if test -n "$STRIP" ; then
+ striplib="$STRIP -x"
+ old_striplib="$STRIP -S"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ fi
+ ;;
+ *)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ ;;
+ esac
+fi
+
+
+
+
+
+
+
+
+
+
+
+
+ # Report which library types will actually be built
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5
+$as_echo_n "checking if libtool supports shared libraries... " >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5
+$as_echo "$can_build_shared" >&6; }
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5
+$as_echo_n "checking whether to build shared libraries... " >&6; }
+ test "$can_build_shared" = "no" && enable_shared=no
+
+ # On AIX, shared libraries and static libraries use the same namespace, and
+ # are all built from PIC.
+ case $host_os in
+ aix3*)
+ test "$enable_shared" = yes && enable_static=no
+ if test -n "$RANLIB"; then
+ archive_cmds="$archive_cmds~\$RANLIB \$lib"
+ postinstall_cmds='$RANLIB $lib'
+ fi
+ ;;
+
+ aix[4-9]*)
+ if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
+ test "$enable_shared" = yes && enable_static=no
+ fi
+ ;;
+ esac
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5
+$as_echo "$enable_shared" >&6; }
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5
+$as_echo_n "checking whether to build static libraries... " >&6; }
+ # Make sure either enable_shared or enable_static is yes.
+ test "$enable_shared" = yes || enable_static=yes
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5
+$as_echo "$enable_static" >&6; }
+
+
+
+
+fi
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+CC="$lt_save_CC"
+
+
+ac_ext=cpp
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+
+archive_cmds_need_lc_CXX=no
+allow_undefined_flag_CXX=
+always_export_symbols_CXX=no
+archive_expsym_cmds_CXX=
+compiler_needs_object_CXX=no
+export_dynamic_flag_spec_CXX=
+hardcode_direct_CXX=no
+hardcode_direct_absolute_CXX=no
+hardcode_libdir_flag_spec_CXX=
+hardcode_libdir_flag_spec_ld_CXX=
+hardcode_libdir_separator_CXX=
+hardcode_minus_L_CXX=no
+hardcode_shlibpath_var_CXX=unsupported
+hardcode_automatic_CXX=no
+inherit_rpath_CXX=no
+module_cmds_CXX=
+module_expsym_cmds_CXX=
+link_all_deplibs_CXX=unknown
+old_archive_cmds_CXX=$old_archive_cmds
+no_undefined_flag_CXX=
+whole_archive_flag_spec_CXX=
+enable_shared_with_static_runtimes_CXX=no
+
+# Source file extension for C++ test sources.
+ac_ext=cpp
+
+# Object file extension for compiled C++ test sources.
+objext=o
+objext_CXX=$objext
+
+# No sense in running all these tests if we already determined that
+# the CXX compiler isn't working. Some variables (like enable_shared)
+# are currently assumed to apply to all compilers on this platform,
+# and will be corrupted by setting them based on a non-working compiler.
+if test "$_lt_caught_CXX_error" != yes; then
+ # Code to be used in simple compile tests
+ lt_simple_compile_test_code="int some_variable = 0;"
+
+ # Code to be used in simple link tests
+ lt_simple_link_test_code='int main(int, char *[]) { return(0); }'
+
+ # ltmain only uses $CC for tagged configurations so make sure $CC is set.
+
+
+
+
+
+
+# If no C compiler was specified, use CC.
+LTCC=${LTCC-"$CC"}
+
+# If no C compiler flags were specified, use CFLAGS.
+LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
+
+# Allow CC to be a program name with arguments.
+compiler=$CC
+
+
+ # save warnings/boilerplate of simple test code
+ ac_outfile=conftest.$ac_objext
+echo "$lt_simple_compile_test_code" >conftest.$ac_ext
+eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
+_lt_compiler_boilerplate=`cat conftest.err`
+$RM conftest*
+
+ ac_outfile=conftest.$ac_objext
+echo "$lt_simple_link_test_code" >conftest.$ac_ext
+eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
+_lt_linker_boilerplate=`cat conftest.err`
+$RM -r conftest*
+
+
+ # Allow CC to be a program name with arguments.
+ lt_save_CC=$CC
+ lt_save_LD=$LD
+ lt_save_GCC=$GCC
+ GCC=$GXX
+ lt_save_with_gnu_ld=$with_gnu_ld
+ lt_save_path_LD=$lt_cv_path_LD
+ if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then
+ lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx
+ else
+ $as_unset lt_cv_prog_gnu_ld
+ fi
+ if test -n "${lt_cv_path_LDCXX+set}"; then
+ lt_cv_path_LD=$lt_cv_path_LDCXX
+ else
+ $as_unset lt_cv_path_LD
+ fi
+ test -z "${LDCXX+set}" || LD=$LDCXX
+ CC=${CXX-"c++"}
+ compiler=$CC
+ compiler_CXX=$CC
+ for cc_temp in $compiler""; do
+ case $cc_temp in
+ compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
+ distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
+ \-*) ;;
+ *) break;;
+ esac
+done
+cc_basename=`$ECHO "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
+
+
+ if test -n "$compiler"; then
+ # We don't want -fno-exception when compiling C++ code, so set the
+ # no_builtin_flag separately
+ if test "$GXX" = yes; then
+ lt_prog_compiler_no_builtin_flag_CXX=' -fno-builtin'
+ else
+ lt_prog_compiler_no_builtin_flag_CXX=
+ fi
+
+ if test "$GXX" = yes; then
+ # Set up default GNU C++ configuration
+
+
+
+@%:@ Check whether --with-gnu-ld was given.
+if test "${with_gnu_ld+set}" = set; then :
+ withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes
+else
+ with_gnu_ld=no
+fi
+
+ac_prog=ld
+if test "$GCC" = yes; then
+ # Check if gcc -print-prog-name=ld gives a path.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5
+$as_echo_n "checking for ld used by $CC... " >&6; }
+ case $host in
+ *-*-mingw*)
+ # gcc leaves a trailing carriage return which upsets mingw
+ ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
+ *)
+ ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
+ esac
+ case $ac_prog in
+ # Accept absolute paths.
+ [\\/]* | ?:[\\/]*)
+ re_direlt='/[^/][^/]*/\.\./'
+ # Canonicalize the pathname of ld
+ ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'`
+ while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do
+ ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"`
+ done
+ test -z "$LD" && LD="$ac_prog"
+ ;;
+ "")
+ # If it fails, then pretend we aren't using GCC.
+ ac_prog=ld
+ ;;
+ *)
+ # If it is relative, then search for the first ld in PATH.
+ with_gnu_ld=unknown
+ ;;
+ esac
+elif test "$with_gnu_ld" = yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5
+$as_echo_n "checking for GNU ld... " >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5
+$as_echo_n "checking for non-GNU ld... " >&6; }
+fi
+if test "${lt_cv_path_LD+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -z "$LD"; then
+ lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+ for ac_dir in $PATH; do
+ IFS="$lt_save_ifs"
+ test -z "$ac_dir" && ac_dir=.
+ if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
+ lt_cv_path_LD="$ac_dir/$ac_prog"
+ # Check to see if the program is GNU ld. I'd rather use --version,
+ # but apparently some variants of GNU ld only accept -v.
+ # Break only if it was the GNU/non-GNU ld that we prefer.
+ case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
+ *GNU* | *'with BFD'*)
+ test "$with_gnu_ld" != no && break
+ ;;
+ *)
+ test "$with_gnu_ld" != yes && break
+ ;;
+ esac
+ fi
+ done
+ IFS="$lt_save_ifs"
+else
+ lt_cv_path_LD="$LD" # Let the user override the test with a path.
+fi
+fi
+
+LD="$lt_cv_path_LD"
+if test -n "$LD"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LD" >&5
+$as_echo "$LD" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+test -z "$LD" && as_fn_error "no acceptable ld found in \$PATH" "$LINENO" 5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5
+$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; }
+if test "${lt_cv_prog_gnu_ld+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ # I'd rather use --version here, but apparently some GNU lds only accept -v.
+case `$LD -v 2>&1 </dev/null` in
+*GNU* | *'with BFD'*)
+ lt_cv_prog_gnu_ld=yes
+ ;;
+*)
+ lt_cv_prog_gnu_ld=no
+ ;;
+esac
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_gnu_ld" >&5
+$as_echo "$lt_cv_prog_gnu_ld" >&6; }
+with_gnu_ld=$lt_cv_prog_gnu_ld
+
+
+
+
+
+
+
+ # Check if GNU C++ uses GNU ld as the underlying linker, since the
+ # archiving commands below assume that GNU ld is being used.
+ if test "$with_gnu_ld" = yes; then
+ archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ archive_expsym_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+
+ hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
+ export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
+
+ # If archive_cmds runs LD, not CC, wlarc should be empty
+ # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to
+ # investigate it a little bit more. (MM)
+ wlarc='${wl}'
+
+ # ancient GNU ld didn't support --whole-archive et. al.
+ if eval "`$CC -print-prog-name=ld` --help 2>&1" |
+ $GREP 'no-whole-archive' > /dev/null; then
+ whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+ else
+ whole_archive_flag_spec_CXX=
+ fi
+ else
+ with_gnu_ld=no
+ wlarc=
+
+ # A generic and very simple default shared library creation
+ # command for GNU C++ for the case where it uses the native
+ # linker, instead of GNU ld. If possible, this setting should
+ # overridden to take advantage of the native linker features on
+ # the platform it is being used on.
+ archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
+ fi
+
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"'
+
+ else
+ GXX=no
+ with_gnu_ld=no
+ wlarc=
+ fi
+
+ # PORTME: fill in a description of your system's C++ link characteristics
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5
+$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; }
+ ld_shlibs_CXX=yes
+ case $host_os in
+ aix3*)
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+ aix[4-9]*)
+ if test "$host_cpu" = ia64; then
+ # On IA64, the linker does run time linking by default, so we don't
+ # have to do anything special.
+ aix_use_runtimelinking=no
+ exp_sym_flag='-Bexport'
+ no_entry_flag=""
+ else
+ aix_use_runtimelinking=no
+
+ # Test if we are trying to use run time linking or normal
+ # AIX style linking. If -brtl is somewhere in LDFLAGS, we
+ # need to do runtime linking.
+ case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*)
+ for ld_flag in $LDFLAGS; do
+ case $ld_flag in
+ *-brtl*)
+ aix_use_runtimelinking=yes
+ break
+ ;;
+ esac
+ done
+ ;;
+ esac
+
+ exp_sym_flag='-bexport'
+ no_entry_flag='-bnoentry'
+ fi
+
+ # When large executables or shared objects are built, AIX ld can
+ # have problems creating the table of contents. If linking a library
+ # or program results in "error TOC overflow" add -mminimal-toc to
+ # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not
+ # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
+
+ archive_cmds_CXX=''
+ hardcode_direct_CXX=yes
+ hardcode_direct_absolute_CXX=yes
+ hardcode_libdir_separator_CXX=':'
+ link_all_deplibs_CXX=yes
+ file_list_spec_CXX='${wl}-f,'
+
+ if test "$GXX" = yes; then
+ case $host_os in aix4.[012]|aix4.[012].*)
+ # We only want to do this on AIX 4.2 and lower, the check
+ # below for broken collect2 doesn't work under 4.3+
+ collect2name=`${CC} -print-prog-name=collect2`
+ if test -f "$collect2name" &&
+ strings "$collect2name" | $GREP resolve_lib_name >/dev/null
+ then
+ # We have reworked collect2
+ :
+ else
+ # We have old collect2
+ hardcode_direct_CXX=unsupported
+ # It fails to find uninstalled libraries when the uninstalled
+ # path is not listed in the libpath. Setting hardcode_minus_L
+ # to unsupported forces relinking
+ hardcode_minus_L_CXX=yes
+ hardcode_libdir_flag_spec_CXX='-L$libdir'
+ hardcode_libdir_separator_CXX=
+ fi
+ esac
+ shared_flag='-shared'
+ if test "$aix_use_runtimelinking" = yes; then
+ shared_flag="$shared_flag "'${wl}-G'
+ fi
+ else
+ # not using gcc
+ if test "$host_cpu" = ia64; then
+ # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
+ # chokes on -Wl,-G. The following line is correct:
+ shared_flag='-G'
+ else
+ if test "$aix_use_runtimelinking" = yes; then
+ shared_flag='${wl}-G'
+ else
+ shared_flag='${wl}-bM:SRE'
+ fi
+ fi
+ fi
+
+ export_dynamic_flag_spec_CXX='${wl}-bexpall'
+ # It seems that -bexpall does not export symbols beginning with
+ # underscore (_), so it is better to generate a list of symbols to
+ # export.
+ always_export_symbols_CXX=yes
+ if test "$aix_use_runtimelinking" = yes; then
+ # Warning - without using the other runtime loading flags (-brtl),
+ # -berok will link without error, but may produce a broken library.
+ allow_undefined_flag_CXX='-berok'
+ # Determine the default libpath from the value encoded in an empty
+ # executable.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_link "$LINENO"; then :
+
+lt_aix_libpath_sed='
+ /Import File Strings/,/^$/ {
+ /^0/ {
+ s/^0 *\(.*\)$/\1/
+ p
+ }
+ }'
+aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+# Check for a 64-bit object if we didn't find anything.
+if test -z "$aix_libpath"; then
+ aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+fi
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+
+ hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath"
+
+ archive_expsym_cmds_CXX='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+ else
+ if test "$host_cpu" = ia64; then
+ hardcode_libdir_flag_spec_CXX='${wl}-R $libdir:/usr/lib:/lib'
+ allow_undefined_flag_CXX="-z nodefs"
+ archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols"
+ else
+ # Determine the default libpath from the value encoded in an
+ # empty executable.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_link "$LINENO"; then :
+
+lt_aix_libpath_sed='
+ /Import File Strings/,/^$/ {
+ /^0/ {
+ s/^0 *\(.*\)$/\1/
+ p
+ }
+ }'
+aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+# Check for a 64-bit object if we didn't find anything.
+if test -z "$aix_libpath"; then
+ aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+fi
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+
+ hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath"
+ # Warning - without using the other run time loading flags,
+ # -berok will link without error, but may produce a broken library.
+ no_undefined_flag_CXX=' ${wl}-bernotok'
+ allow_undefined_flag_CXX=' ${wl}-berok'
+ # Exported symbols can be pulled into shared objects from archives
+ whole_archive_flag_spec_CXX='$convenience'
+ archive_cmds_need_lc_CXX=yes
+ # This is similar to how AIX traditionally builds its shared
+ # libraries.
+ archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
+ fi
+ fi
+ ;;
+
+ beos*)
+ if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+ allow_undefined_flag_CXX=unsupported
+ # Joseph Beckenbach <jrb3@best.com> says some releases of gcc
+ # support --undefined. This deserves some investigation. FIXME
+ archive_cmds_CXX='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ else
+ ld_shlibs_CXX=no
+ fi
+ ;;
+
+ chorus*)
+ case $cc_basename in
+ *)
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+ esac
+ ;;
+
+ cygwin* | mingw* | pw32* | cegcc*)
+ # _LT_TAGVAR(hardcode_libdir_flag_spec, CXX) is actually meaningless,
+ # as there is no search path for DLLs.
+ hardcode_libdir_flag_spec_CXX='-L$libdir'
+ allow_undefined_flag_CXX=unsupported
+ always_export_symbols_CXX=no
+ enable_shared_with_static_runtimes_CXX=yes
+
+ if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
+ archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+ # If the export-symbols file already is a .def file (1st line
+ # is EXPORTS), use it as is; otherwise, prepend...
+ archive_expsym_cmds_CXX='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+ cp $export_symbols $output_objdir/$soname.def;
+ else
+ echo EXPORTS > $output_objdir/$soname.def;
+ cat $export_symbols >> $output_objdir/$soname.def;
+ fi~
+ $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+ else
+ ld_shlibs_CXX=no
+ fi
+ ;;
+ darwin* | rhapsody*)
+
+
+ archive_cmds_need_lc_CXX=no
+ hardcode_direct_CXX=no
+ hardcode_automatic_CXX=yes
+ hardcode_shlibpath_var_CXX=unsupported
+ whole_archive_flag_spec_CXX=''
+ link_all_deplibs_CXX=yes
+ allow_undefined_flag_CXX="$_lt_dar_allow_undefined"
+ case $cc_basename in
+ ifort*) _lt_dar_can_shared=yes ;;
+ *) _lt_dar_can_shared=$GCC ;;
+ esac
+ if test "$_lt_dar_can_shared" = "yes"; then
+ output_verbose_link_cmd=echo
+ archive_cmds_CXX="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
+ module_cmds_CXX="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
+ archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
+ module_expsym_cmds_CXX="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
+ if test "$lt_cv_apple_cc_single_mod" != "yes"; then
+ archive_cmds_CXX="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}"
+ archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}"
+ fi
+
+ else
+ ld_shlibs_CXX=no
+ fi
+
+ ;;
+
+ dgux*)
+ case $cc_basename in
+ ec++*)
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+ ghcx*)
+ # Green Hills C++ Compiler
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+ *)
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+ esac
+ ;;
+
+ freebsd[12]*)
+ # C++ shared libraries reported to be fairly broken before
+ # switch to ELF
+ ld_shlibs_CXX=no
+ ;;
+
+ freebsd-elf*)
+ archive_cmds_need_lc_CXX=no
+ ;;
+
+ freebsd* | dragonfly*)
+ # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF
+ # conventions
+ ld_shlibs_CXX=yes
+ ;;
+
+ gnu*)
+ ;;
+
+ hpux9*)
+ hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir'
+ hardcode_libdir_separator_CXX=:
+ export_dynamic_flag_spec_CXX='${wl}-E'
+ hardcode_direct_CXX=yes
+ hardcode_minus_L_CXX=yes # Not in the search PATH,
+ # but as the default
+ # location of the library.
+
+ case $cc_basename in
+ CC*)
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+ aCC*)
+ archive_cmds_CXX='$RM $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ #
+ # There doesn't appear to be a way to prevent this compiler from
+ # explicitly linking system object files so we need to strip them
+ # from the output so that they don't get included in the library
+ # dependencies.
+ output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed'
+ ;;
+ *)
+ if test "$GXX" = yes; then
+ archive_cmds_CXX='$RM $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+ else
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ fi
+ ;;
+ esac
+ ;;
+
+ hpux10*|hpux11*)
+ if test $with_gnu_ld = no; then
+ hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir'
+ hardcode_libdir_separator_CXX=:
+
+ case $host_cpu in
+ hppa*64*|ia64*)
+ ;;
+ *)
+ export_dynamic_flag_spec_CXX='${wl}-E'
+ ;;
+ esac
+ fi
+ case $host_cpu in
+ hppa*64*|ia64*)
+ hardcode_direct_CXX=no
+ hardcode_shlibpath_var_CXX=no
+ ;;
+ *)
+ hardcode_direct_CXX=yes
+ hardcode_direct_absolute_CXX=yes
+ hardcode_minus_L_CXX=yes # Not in the search PATH,
+ # but as the default
+ # location of the library.
+ ;;
+ esac
+
+ case $cc_basename in
+ CC*)
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+ aCC*)
+ case $host_cpu in
+ hppa*64*)
+ archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+ ;;
+ ia64*)
+ archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+ ;;
+ *)
+ archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+ ;;
+ esac
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ #
+ # There doesn't appear to be a way to prevent this compiler from
+ # explicitly linking system object files so we need to strip them
+ # from the output so that they don't get included in the library
+ # dependencies.
+ output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed'
+ ;;
+ *)
+ if test "$GXX" = yes; then
+ if test $with_gnu_ld = no; then
+ case $host_cpu in
+ hppa*64*)
+ archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+ ;;
+ ia64*)
+ archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+ ;;
+ *)
+ archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+ ;;
+ esac
+ fi
+ else
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ fi
+ ;;
+ esac
+ ;;
+
+ interix[3-9]*)
+ hardcode_direct_CXX=no
+ hardcode_shlibpath_var_CXX=no
+ hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir'
+ export_dynamic_flag_spec_CXX='${wl}-E'
+ # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
+ # Instead, shared libraries are loaded at an image base (0x10000000 by
+ # default) and relocated if they conflict, which is a slow very memory
+ # consuming and fragmenting process. To avoid this, we pick a random,
+ # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
+ # time. Moving up from 0x10000000 also allows more sbrk(2) space.
+ archive_cmds_CXX='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+ archive_expsym_cmds_CXX='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+ ;;
+ irix5* | irix6*)
+ case $cc_basename in
+ CC*)
+ # SGI C++
+ archive_cmds_CXX='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
+
+ # Archives containing C++ object files must be created using
+ # "CC -ar", where "CC" is the IRIX C++ compiler. This is
+ # necessary to make sure instantiated templates are included
+ # in the archive.
+ old_archive_cmds_CXX='$CC -ar -WR,-u -o $oldlib $oldobjs'
+ ;;
+ *)
+ if test "$GXX" = yes; then
+ if test "$with_gnu_ld" = no; then
+ archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+ else
+ archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` -o $lib'
+ fi
+ fi
+ link_all_deplibs_CXX=yes
+ ;;
+ esac
+ hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
+ hardcode_libdir_separator_CXX=:
+ inherit_rpath_CXX=yes
+ ;;
+
+ linux* | k*bsd*-gnu | kopensolaris*-gnu)
+ case $cc_basename in
+ KCC*)
+ # Kuck and Associates, Inc. (KAI) C++ Compiler
+
+ # KCC will only create a shared library if the output file
+ # ends with ".so" (or ".sl" for HP-UX), so rename the library
+ # to its proper name (with version) after linking.
+ archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
+ archive_expsym_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib'
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ #
+ # There doesn't appear to be a way to prevent this compiler from
+ # explicitly linking system object files so we need to strip them
+ # from the output so that they don't get included in the library
+ # dependencies.
+ output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed'
+
+ hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir'
+ export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
+
+ # Archives containing C++ object files must be created using
+ # "CC -Bstatic", where "CC" is the KAI C++ compiler.
+ old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs'
+ ;;
+ icpc* | ecpc* )
+ # Intel C++
+ with_gnu_ld=yes
+ # version 8.0 and above of icpc choke on multiply defined symbols
+ # if we add $predep_objects and $postdep_objects, however 7.1 and
+ # earlier do not add the objects themselves.
+ case `$CC -V 2>&1` in
+ *"Version 7."*)
+ archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+ ;;
+ *) # Version 8.0 or newer
+ tmp_idyn=
+ case $host_cpu in
+ ia64*) tmp_idyn=' -i_dynamic';;
+ esac
+ archive_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ archive_expsym_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+ ;;
+ esac
+ archive_cmds_need_lc_CXX=no
+ hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir'
+ export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
+ whole_archive_flag_spec_CXX='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
+ ;;
+ pgCC* | pgcpp*)
+ # Portland Group C++ compiler
+ case `$CC -V` in
+ *pgCC\ [1-5]* | *pgcpp\ [1-5]*)
+ prelink_cmds_CXX='tpldir=Template.dir~
+ rm -rf $tpldir~
+ $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~
+ compile_command="$compile_command `find $tpldir -name \*.o | $NL2SP`"'
+ old_archive_cmds_CXX='tpldir=Template.dir~
+ rm -rf $tpldir~
+ $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~
+ $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | $NL2SP`~
+ $RANLIB $oldlib'
+ archive_cmds_CXX='tpldir=Template.dir~
+ rm -rf $tpldir~
+ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
+ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
+ archive_expsym_cmds_CXX='tpldir=Template.dir~
+ rm -rf $tpldir~
+ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
+ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
+ ;;
+ *) # Version 6 will use weak symbols
+ archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
+ archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
+ ;;
+ esac
+
+ hardcode_libdir_flag_spec_CXX='${wl}--rpath ${wl}$libdir'
+ export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
+ whole_archive_flag_spec_CXX='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
+ ;;
+ cxx*)
+ # Compaq C++
+ archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols'
+
+ runpath_var=LD_RUN_PATH
+ hardcode_libdir_flag_spec_CXX='-rpath $libdir'
+ hardcode_libdir_separator_CXX=:
+
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ #
+ # There doesn't appear to be a way to prevent this compiler from
+ # explicitly linking system object files so we need to strip them
+ # from the output so that they don't get included in the library
+ # dependencies.
+ output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`$ECHO "X$templist" | $Xsed -e "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed'
+ ;;
+ xl*)
+ # IBM XL 8.0 on PPC, with GNU ld
+ hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
+ export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
+ archive_cmds_CXX='$CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ if test "x$supports_anon_versioning" = xyes; then
+ archive_expsym_cmds_CXX='echo "{ global:" > $output_objdir/$libname.ver~
+ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+ echo "local: *; };" >> $output_objdir/$libname.ver~
+ $CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
+ fi
+ ;;
+ *)
+ case `$CC -V 2>&1 | sed 5q` in
+ *Sun\ C*)
+ # Sun C++ 5.9
+ no_undefined_flag_CXX=' -zdefs'
+ archive_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+ archive_expsym_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols'
+ hardcode_libdir_flag_spec_CXX='-R$libdir'
+ whole_archive_flag_spec_CXX='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
+ compiler_needs_object_CXX=yes
+
+ # Not sure whether something based on
+ # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1
+ # would be better.
+ output_verbose_link_cmd='echo'
+
+ # Archives containing C++ object files must be created using
+ # "CC -xar", where "CC" is the Sun C++ compiler. This is
+ # necessary to make sure instantiated templates are included
+ # in the archive.
+ old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs'
+ ;;
+ esac
+ ;;
+ esac
+ ;;
+
+ lynxos*)
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+
+ m88k*)
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+
+ mvs*)
+ case $cc_basename in
+ cxx*)
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+ *)
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+ esac
+ ;;
+
+ netbsd*)
+ if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
+ archive_cmds_CXX='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags'
+ wlarc=
+ hardcode_libdir_flag_spec_CXX='-R$libdir'
+ hardcode_direct_CXX=yes
+ hardcode_shlibpath_var_CXX=no
+ fi
+ # Workaround some broken pre-1.5 toolchains
+ output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"'
+ ;;
+
+ *nto* | *qnx*)
+ ld_shlibs_CXX=yes
+ ;;
+
+ openbsd2*)
+ # C++ shared libraries are fairly broken
+ ld_shlibs_CXX=no
+ ;;
+
+ openbsd*)
+ if test -f /usr/libexec/ld.so; then
+ hardcode_direct_CXX=yes
+ hardcode_shlibpath_var_CXX=no
+ hardcode_direct_absolute_CXX=yes
+ archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
+ hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir'
+ if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+ archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib'
+ export_dynamic_flag_spec_CXX='${wl}-E'
+ whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+ fi
+ output_verbose_link_cmd=echo
+ else
+ ld_shlibs_CXX=no
+ fi
+ ;;
+
+ osf3* | osf4* | osf5*)
+ case $cc_basename in
+ KCC*)
+ # Kuck and Associates, Inc. (KAI) C++ Compiler
+
+ # KCC will only create a shared library if the output file
+ # ends with ".so" (or ".sl" for HP-UX), so rename the library
+ # to its proper name (with version) after linking.
+ archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
+
+ hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir'
+ hardcode_libdir_separator_CXX=:
+
+ # Archives containing C++ object files must be created using
+ # the KAI C++ compiler.
+ case $host in
+ osf3*) old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs' ;;
+ *) old_archive_cmds_CXX='$CC -o $oldlib $oldobjs' ;;
+ esac
+ ;;
+ RCC*)
+ # Rational C++ 2.4.1
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+ cxx*)
+ case $host in
+ osf3*)
+ allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*'
+ archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && $ECHO "X${wl}-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
+ hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
+ ;;
+ *)
+ allow_undefined_flag_CXX=' -expect_unresolved \*'
+ archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
+ archive_expsym_cmds_CXX='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~
+ echo "-hidden">> $lib.exp~
+ $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~
+ $RM $lib.exp'
+ hardcode_libdir_flag_spec_CXX='-rpath $libdir'
+ ;;
+ esac
+
+ hardcode_libdir_separator_CXX=:
+
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ #
+ # There doesn't appear to be a way to prevent this compiler from
+ # explicitly linking system object files so we need to strip them
+ # from the output so that they don't get included in the library
+ # dependencies.
+ output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`$ECHO "X$templist" | $Xsed -e "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed'
+ ;;
+ *)
+ if test "$GXX" = yes && test "$with_gnu_ld" = no; then
+ allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*'
+ case $host in
+ osf3*)
+ archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+ ;;
+ *)
+ archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+ ;;
+ esac
+
+ hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
+ hardcode_libdir_separator_CXX=:
+
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"'
+
+ else
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ fi
+ ;;
+ esac
+ ;;
+
+ psos*)
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+
+ sunos4*)
+ case $cc_basename in
+ CC*)
+ # Sun C++ 4.x
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+ lcc*)
+ # Lucid
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+ *)
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+ esac
+ ;;
+
+ solaris*)
+ case $cc_basename in
+ CC*)
+ # Sun C++ 4.2, 5.x and Centerline C++
+ archive_cmds_need_lc_CXX=yes
+ no_undefined_flag_CXX=' -zdefs'
+ archive_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+ archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+ $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
+
+ hardcode_libdir_flag_spec_CXX='-R$libdir'
+ hardcode_shlibpath_var_CXX=no
+ case $host_os in
+ solaris2.[0-5] | solaris2.[0-5].*) ;;
+ *)
+ # The compiler driver will combine and reorder linker options,
+ # but understands `-z linker_flag'.
+ # Supported since Solaris 2.6 (maybe 2.5.1?)
+ whole_archive_flag_spec_CXX='-z allextract$convenience -z defaultextract'
+ ;;
+ esac
+ link_all_deplibs_CXX=yes
+
+ output_verbose_link_cmd='echo'
+
+ # Archives containing C++ object files must be created using
+ # "CC -xar", where "CC" is the Sun C++ compiler. This is
+ # necessary to make sure instantiated templates are included
+ # in the archive.
+ old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs'
+ ;;
+ gcx*)
+ # Green Hills C++ Compiler
+ archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
+
+ # The C++ compiler must be used to create the archive.
+ old_archive_cmds_CXX='$CC $LDFLAGS -archive -o $oldlib $oldobjs'
+ ;;
+ *)
+ # GNU C++ compiler with Solaris linker
+ if test "$GXX" = yes && test "$with_gnu_ld" = no; then
+ no_undefined_flag_CXX=' ${wl}-z ${wl}defs'
+ if $CC --version | $GREP -v '^2\.7' > /dev/null; then
+ archive_cmds_CXX='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
+ archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+ $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
+
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"'
+ else
+ # g++ 2.7 appears to require `-G' NOT `-shared' on this
+ # platform.
+ archive_cmds_CXX='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
+ archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+ $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
+
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"'
+ fi
+
+ hardcode_libdir_flag_spec_CXX='${wl}-R $wl$libdir'
+ case $host_os in
+ solaris2.[0-5] | solaris2.[0-5].*) ;;
+ *)
+ whole_archive_flag_spec_CXX='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
+ ;;
+ esac
+ fi
+ ;;
+ esac
+ ;;
+
+ sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*)
+ no_undefined_flag_CXX='${wl}-z,text'
+ archive_cmds_need_lc_CXX=no
+ hardcode_shlibpath_var_CXX=no
+ runpath_var='LD_RUN_PATH'
+
+ case $cc_basename in
+ CC*)
+ archive_cmds_CXX='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds_CXX='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ *)
+ archive_cmds_CXX='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds_CXX='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ esac
+ ;;
+
+ sysv5* | sco3.2v5* | sco5v6*)
+ # Note: We can NOT use -z defs as we might desire, because we do not
+ # link with -lc, and that would cause any symbols used from libc to
+ # always be unresolved, which means just about no library would
+ # ever link correctly. If we're not using GNU ld we use -z text
+ # though, which does catch some bad symbols but isn't as heavy-handed
+ # as -z defs.
+ no_undefined_flag_CXX='${wl}-z,text'
+ allow_undefined_flag_CXX='${wl}-z,nodefs'
+ archive_cmds_need_lc_CXX=no
+ hardcode_shlibpath_var_CXX=no
+ hardcode_libdir_flag_spec_CXX='${wl}-R,$libdir'
+ hardcode_libdir_separator_CXX=':'
+ link_all_deplibs_CXX=yes
+ export_dynamic_flag_spec_CXX='${wl}-Bexport'
+ runpath_var='LD_RUN_PATH'
+
+ case $cc_basename in
+ CC*)
+ archive_cmds_CXX='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds_CXX='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ *)
+ archive_cmds_CXX='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds_CXX='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ esac
+ ;;
+
+ tandem*)
+ case $cc_basename in
+ NCC*)
+ # NonStop-UX NCC 3.20
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+ *)
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+ esac
+ ;;
+
+ vxworks*)
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+
+ *)
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+ esac
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs_CXX" >&5
+$as_echo "$ld_shlibs_CXX" >&6; }
+ test "$ld_shlibs_CXX" = no && can_build_shared=no
+
+ GCC_CXX="$GXX"
+ LD_CXX="$LD"
+
+ ## CAVEAT EMPTOR:
+ ## There is no encapsulation within the following macros, do not change
+ ## the running order or otherwise move them around unless you know exactly
+ ## what you are doing...
+ # Dependencies to place before and after the object being linked:
+predep_objects_CXX=
+postdep_objects_CXX=
+predeps_CXX=
+postdeps_CXX=
+compiler_lib_search_path_CXX=
+
+cat > conftest.$ac_ext <<_LT_EOF
+class Foo
+{
+public:
+ Foo (void) { a = 0; }
+private:
+ int a;
+};
+_LT_EOF
+
+if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ # Parse the compiler output and extract the necessary
+ # objects, libraries and library flags.
+
+ # Sentinel used to keep track of whether or not we are before
+ # the conftest object file.
+ pre_test_object_deps_done=no
+
+ for p in `eval "$output_verbose_link_cmd"`; do
+ case $p in
+
+ -L* | -R* | -l*)
+ # Some compilers place space between "-{L,R}" and the path.
+ # Remove the space.
+ if test $p = "-L" ||
+ test $p = "-R"; then
+ prev=$p
+ continue
+ else
+ prev=
+ fi
+
+ if test "$pre_test_object_deps_done" = no; then
+ case $p in
+ -L* | -R*)
+ # Internal compiler library paths should come after those
+ # provided the user. The postdeps already come after the
+ # user supplied libs so there is no need to process them.
+ if test -z "$compiler_lib_search_path_CXX"; then
+ compiler_lib_search_path_CXX="${prev}${p}"
+ else
+ compiler_lib_search_path_CXX="${compiler_lib_search_path_CXX} ${prev}${p}"
+ fi
+ ;;
+ # The "-l" case would never come before the object being
+ # linked, so don't bother handling this case.
+ esac
+ else
+ if test -z "$postdeps_CXX"; then
+ postdeps_CXX="${prev}${p}"
+ else
+ postdeps_CXX="${postdeps_CXX} ${prev}${p}"
+ fi
+ fi
+ ;;
+
+ *.$objext)
+ # This assumes that the test object file only shows up
+ # once in the compiler output.
+ if test "$p" = "conftest.$objext"; then
+ pre_test_object_deps_done=yes
+ continue
+ fi
+
+ if test "$pre_test_object_deps_done" = no; then
+ if test -z "$predep_objects_CXX"; then
+ predep_objects_CXX="$p"
+ else
+ predep_objects_CXX="$predep_objects_CXX $p"
+ fi
+ else
+ if test -z "$postdep_objects_CXX"; then
+ postdep_objects_CXX="$p"
+ else
+ postdep_objects_CXX="$postdep_objects_CXX $p"
+ fi
+ fi
+ ;;
+
+ *) ;; # Ignore the rest.
+
+ esac
+ done
+
+ # Clean up.
+ rm -f a.out a.exe
+else
+ echo "libtool.m4: error: problem compiling CXX test program"
+fi
+
+$RM -f confest.$objext
+
+# PORTME: override above test on systems where it is broken
+case $host_os in
+interix[3-9]*)
+ # Interix 3.5 installs completely hosed .la files for C++, so rather than
+ # hack all around it, let's just trust "g++" to DTRT.
+ predep_objects_CXX=
+ postdep_objects_CXX=
+ postdeps_CXX=
+ ;;
+
+linux*)
+ case `$CC -V 2>&1 | sed 5q` in
+ *Sun\ C*)
+ # Sun C++ 5.9
+
+ # The more standards-conforming stlport4 library is
+ # incompatible with the Cstd library. Avoid specifying
+ # it if it's in CXXFLAGS. Ignore libCrun as
+ # -library=stlport4 depends on it.
+ case " $CXX $CXXFLAGS " in
+ *" -library=stlport4 "*)
+ solaris_use_stlport4=yes
+ ;;
+ esac
+
+ if test "$solaris_use_stlport4" != yes; then
+ postdeps_CXX='-library=Cstd -library=Crun'
+ fi
+ ;;
+ esac
+ ;;
+
+solaris*)
+ case $cc_basename in
+ CC*)
+ # The more standards-conforming stlport4 library is
+ # incompatible with the Cstd library. Avoid specifying
+ # it if it's in CXXFLAGS. Ignore libCrun as
+ # -library=stlport4 depends on it.
+ case " $CXX $CXXFLAGS " in
+ *" -library=stlport4 "*)
+ solaris_use_stlport4=yes
+ ;;
+ esac
+
+ # Adding this requires a known-good setup of shared libraries for
+ # Sun compiler versions before 5.6, else PIC objects from an old
+ # archive will be linked into the output, leading to subtle bugs.
+ if test "$solaris_use_stlport4" != yes; then
+ postdeps_CXX='-library=Cstd -library=Crun'
+ fi
+ ;;
+ esac
+ ;;
+esac
+
+
+case " $postdeps_CXX " in
+*" -lc "*) archive_cmds_need_lc_CXX=no ;;
+esac
+ compiler_lib_search_dirs_CXX=
+if test -n "${compiler_lib_search_path_CXX}"; then
+ compiler_lib_search_dirs_CXX=`echo " ${compiler_lib_search_path_CXX}" | ${SED} -e 's! -L! !g' -e 's!^ !!'`
+fi
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ lt_prog_compiler_wl_CXX=
+lt_prog_compiler_pic_CXX=
+lt_prog_compiler_static_CXX=
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5
+$as_echo_n "checking for $compiler option to produce PIC... " >&6; }
+
+ # C++ specific cases for pic, static, wl, etc.
+ if test "$GXX" = yes; then
+ lt_prog_compiler_wl_CXX='-Wl,'
+ lt_prog_compiler_static_CXX='-static'
+
+ case $host_os in
+ aix*)
+ # All AIX code is PIC.
+ if test "$host_cpu" = ia64; then
+ # AIX 5 now supports IA64 processor
+ lt_prog_compiler_static_CXX='-Bstatic'
+ fi
+ ;;
+
+ amigaos*)
+ case $host_cpu in
+ powerpc)
+ # see comment about AmigaOS4 .so support
+ lt_prog_compiler_pic_CXX='-fPIC'
+ ;;
+ m68k)
+ # FIXME: we need at least 68020 code to build shared libraries, but
+ # adding the `-m68020' flag to GCC prevents building anything better,
+ # like `-m68040'.
+ lt_prog_compiler_pic_CXX='-m68020 -resident32 -malways-restore-a4'
+ ;;
+ esac
+ ;;
+
+ beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+ # PIC is the default for these OSes.
+ ;;
+ mingw* | cygwin* | os2* | pw32* | cegcc*)
+ # This hack is so that the source file can tell whether it is being
+ # built for inclusion in a dll (and should export symbols for example).
+ # Although the cygwin gcc ignores -fPIC, still need this for old-style
+ # (--disable-auto-import) libraries
+ lt_prog_compiler_pic_CXX='-DDLL_EXPORT'
+ ;;
+ darwin* | rhapsody*)
+ # PIC is the default on this platform
+ # Common symbols not allowed in MH_DYLIB files
+ lt_prog_compiler_pic_CXX='-fno-common'
+ ;;
+ *djgpp*)
+ # DJGPP does not support shared libraries at all
+ lt_prog_compiler_pic_CXX=
+ ;;
+ interix[3-9]*)
+ # Interix 3.x gcc -fpic/-fPIC options generate broken code.
+ # Instead, we relocate shared libraries at runtime.
+ ;;
+ sysv4*MP*)
+ if test -d /usr/nec; then
+ lt_prog_compiler_pic_CXX=-Kconform_pic
+ fi
+ ;;
+ hpux*)
+ # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
+ # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag
+ # sets the default TLS model and affects inlining.
+ case $host_cpu in
+ hppa*64*)
+ ;;
+ *)
+ lt_prog_compiler_pic_CXX='-fPIC'
+ ;;
+ esac
+ ;;
+ *qnx* | *nto*)
+ # QNX uses GNU C++, but need to define -shared option too, otherwise
+ # it will coredump.
+ lt_prog_compiler_pic_CXX='-fPIC -shared'
+ ;;
+ *)
+ lt_prog_compiler_pic_CXX='-fPIC'
+ ;;
+ esac
+ else
+ case $host_os in
+ aix[4-9]*)
+ # All AIX code is PIC.
+ if test "$host_cpu" = ia64; then
+ # AIX 5 now supports IA64 processor
+ lt_prog_compiler_static_CXX='-Bstatic'
+ else
+ lt_prog_compiler_static_CXX='-bnso -bI:/lib/syscalls.exp'
+ fi
+ ;;
+ chorus*)
+ case $cc_basename in
+ cxch68*)
+ # Green Hills C++ Compiler
+ # _LT_TAGVAR(lt_prog_compiler_static, CXX)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a"
+ ;;
+ esac
+ ;;
+ dgux*)
+ case $cc_basename in
+ ec++*)
+ lt_prog_compiler_pic_CXX='-KPIC'
+ ;;
+ ghcx*)
+ # Green Hills C++ Compiler
+ lt_prog_compiler_pic_CXX='-pic'
+ ;;
+ *)
+ ;;
+ esac
+ ;;
+ freebsd* | dragonfly*)
+ # FreeBSD uses GNU C++
+ ;;
+ hpux9* | hpux10* | hpux11*)
+ case $cc_basename in
+ CC*)
+ lt_prog_compiler_wl_CXX='-Wl,'
+ lt_prog_compiler_static_CXX='${wl}-a ${wl}archive'
+ if test "$host_cpu" != ia64; then
+ lt_prog_compiler_pic_CXX='+Z'
+ fi
+ ;;
+ aCC*)
+ lt_prog_compiler_wl_CXX='-Wl,'
+ lt_prog_compiler_static_CXX='${wl}-a ${wl}archive'
+ case $host_cpu in
+ hppa*64*|ia64*)
+ # +Z the default
+ ;;
+ *)
+ lt_prog_compiler_pic_CXX='+Z'
+ ;;
+ esac
+ ;;
+ *)
+ ;;
+ esac
+ ;;
+ interix*)
+ # This is c89, which is MS Visual C++ (no shared libs)
+ # Anyone wants to do a port?
+ ;;
+ irix5* | irix6* | nonstopux*)
+ case $cc_basename in
+ CC*)
+ lt_prog_compiler_wl_CXX='-Wl,'
+ lt_prog_compiler_static_CXX='-non_shared'
+ # CC pic flag -KPIC is the default.
+ ;;
+ *)
+ ;;
+ esac
+ ;;
+ linux* | k*bsd*-gnu | kopensolaris*-gnu)
+ case $cc_basename in
+ KCC*)
+ # KAI C++ Compiler
+ lt_prog_compiler_wl_CXX='--backend -Wl,'
+ lt_prog_compiler_pic_CXX='-fPIC'
+ ;;
+ ecpc* )
+ # old Intel C++ for x86_64 which still supported -KPIC.
+ lt_prog_compiler_wl_CXX='-Wl,'
+ lt_prog_compiler_pic_CXX='-KPIC'
+ lt_prog_compiler_static_CXX='-static'
+ ;;
+ icpc* )
+ # Intel C++, used to be incompatible with GCC.
+ # ICC 10 doesn't accept -KPIC any more.
+ lt_prog_compiler_wl_CXX='-Wl,'
+ lt_prog_compiler_pic_CXX='-fPIC'
+ lt_prog_compiler_static_CXX='-static'
+ ;;
+ pgCC* | pgcpp*)
+ # Portland Group C++ compiler
+ lt_prog_compiler_wl_CXX='-Wl,'
+ lt_prog_compiler_pic_CXX='-fpic'
+ lt_prog_compiler_static_CXX='-Bstatic'
+ ;;
+ cxx*)
+ # Compaq C++
+ # Make sure the PIC flag is empty. It appears that all Alpha
+ # Linux and Compaq Tru64 Unix objects are PIC.
+ lt_prog_compiler_pic_CXX=
+ lt_prog_compiler_static_CXX='-non_shared'
+ ;;
+ xlc* | xlC*)
+ # IBM XL 8.0 on PPC
+ lt_prog_compiler_wl_CXX='-Wl,'
+ lt_prog_compiler_pic_CXX='-qpic'
+ lt_prog_compiler_static_CXX='-qstaticlink'
+ ;;
+ *)
+ case `$CC -V 2>&1 | sed 5q` in
+ *Sun\ C*)
+ # Sun C++ 5.9
+ lt_prog_compiler_pic_CXX='-KPIC'
+ lt_prog_compiler_static_CXX='-Bstatic'
+ lt_prog_compiler_wl_CXX='-Qoption ld '
+ ;;
+ esac
+ ;;
+ esac
+ ;;
+ lynxos*)
+ ;;
+ m88k*)
+ ;;
+ mvs*)
+ case $cc_basename in
+ cxx*)
+ lt_prog_compiler_pic_CXX='-W c,exportall'
+ ;;
+ *)
+ ;;
+ esac
+ ;;
+ netbsd* | netbsdelf*-gnu)
+ ;;
+ *qnx* | *nto*)
+ # QNX uses GNU C++, but need to define -shared option too, otherwise
+ # it will coredump.
+ lt_prog_compiler_pic_CXX='-fPIC -shared'
+ ;;
+ osf3* | osf4* | osf5*)
+ case $cc_basename in
+ KCC*)
+ lt_prog_compiler_wl_CXX='--backend -Wl,'
+ ;;
+ RCC*)
+ # Rational C++ 2.4.1
+ lt_prog_compiler_pic_CXX='-pic'
+ ;;
+ cxx*)
+ # Digital/Compaq C++
+ lt_prog_compiler_wl_CXX='-Wl,'
+ # Make sure the PIC flag is empty. It appears that all Alpha
+ # Linux and Compaq Tru64 Unix objects are PIC.
+ lt_prog_compiler_pic_CXX=
+ lt_prog_compiler_static_CXX='-non_shared'
+ ;;
+ *)
+ ;;
+ esac
+ ;;
+ psos*)
+ ;;
+ solaris*)
+ case $cc_basename in
+ CC*)
+ # Sun C++ 4.2, 5.x and Centerline C++
+ lt_prog_compiler_pic_CXX='-KPIC'
+ lt_prog_compiler_static_CXX='-Bstatic'
+ lt_prog_compiler_wl_CXX='-Qoption ld '
+ ;;
+ gcx*)
+ # Green Hills C++ Compiler
+ lt_prog_compiler_pic_CXX='-PIC'
+ ;;
+ *)
+ ;;
+ esac
+ ;;
+ sunos4*)
+ case $cc_basename in
+ CC*)
+ # Sun C++ 4.x
+ lt_prog_compiler_pic_CXX='-pic'
+ lt_prog_compiler_static_CXX='-Bstatic'
+ ;;
+ lcc*)
+ # Lucid
+ lt_prog_compiler_pic_CXX='-pic'
+ ;;
+ *)
+ ;;
+ esac
+ ;;
+ sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
+ case $cc_basename in
+ CC*)
+ lt_prog_compiler_wl_CXX='-Wl,'
+ lt_prog_compiler_pic_CXX='-KPIC'
+ lt_prog_compiler_static_CXX='-Bstatic'
+ ;;
+ esac
+ ;;
+ tandem*)
+ case $cc_basename in
+ NCC*)
+ # NonStop-UX NCC 3.20
+ lt_prog_compiler_pic_CXX='-KPIC'
+ ;;
+ *)
+ ;;
+ esac
+ ;;
+ vxworks*)
+ ;;
+ *)
+ lt_prog_compiler_can_build_shared_CXX=no
+ ;;
+ esac
+ fi
+
+case $host_os in
+ # For platforms which do not support PIC, -DPIC is meaningless:
+ *djgpp*)
+ lt_prog_compiler_pic_CXX=
+ ;;
+ *)
+ lt_prog_compiler_pic_CXX="$lt_prog_compiler_pic_CXX@&t@ -DPIC"
+ ;;
+esac
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_prog_compiler_pic_CXX" >&5
+$as_echo "$lt_prog_compiler_pic_CXX" >&6; }
+
+
+
+#
+# Check to make sure the PIC flag actually works.
+#
+if test -n "$lt_prog_compiler_pic_CXX"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works" >&5
+$as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works... " >&6; }
+if test "${lt_cv_prog_compiler_pic_works_CXX+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_prog_compiler_pic_works_CXX=no
+ ac_outfile=conftest.$ac_objext
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+ lt_compiler_flag="$lt_prog_compiler_pic_CXX@&t@ -DPIC"
+ # Insert the option either (1) after the last *FLAGS variable, or
+ # (2) before a word containing "conftest.", or (3) at the end.
+ # Note that $ac_compile itself does not contain backslashes and begins
+ # with a dollar sign (not a hyphen), so the echo should work correctly.
+ # The option is referenced via a variable to avoid confusing sed.
+ lt_compile=`echo "$ac_compile" | $SED \
+ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+ -e 's:$: $lt_compiler_flag:'`
+ (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&5)
+ (eval "$lt_compile" 2>conftest.err)
+ ac_status=$?
+ cat conftest.err >&5
+ echo "$as_me:__oline__: \$? = $ac_status" >&5
+ if (exit $ac_status) && test -s "$ac_outfile"; then
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings other than the usual output.
+ $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp
+ $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+ if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
+ lt_cv_prog_compiler_pic_works_CXX=yes
+ fi
+ fi
+ $RM conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works_CXX" >&5
+$as_echo "$lt_cv_prog_compiler_pic_works_CXX" >&6; }
+
+if test x"$lt_cv_prog_compiler_pic_works_CXX" = xyes; then
+ case $lt_prog_compiler_pic_CXX in
+ "" | " "*) ;;
+ *) lt_prog_compiler_pic_CXX=" $lt_prog_compiler_pic_CXX" ;;
+ esac
+else
+ lt_prog_compiler_pic_CXX=
+ lt_prog_compiler_can_build_shared_CXX=no
+fi
+
+fi
+
+
+
+#
+# Check to make sure the static flag actually works.
+#
+wl=$lt_prog_compiler_wl_CXX eval lt_tmp_static_flag=\"$lt_prog_compiler_static_CXX\"
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5
+$as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; }
+if test "${lt_cv_prog_compiler_static_works_CXX+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_prog_compiler_static_works_CXX=no
+ save_LDFLAGS="$LDFLAGS"
+ LDFLAGS="$LDFLAGS $lt_tmp_static_flag"
+ echo "$lt_simple_link_test_code" > conftest.$ac_ext
+ if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
+ # The linker can only warn and ignore the option if not recognized
+ # So say no if there are warnings
+ if test -s conftest.err; then
+ # Append any errors to the config.log.
+ cat conftest.err 1>&5
+ $ECHO "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp
+ $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+ if diff conftest.exp conftest.er2 >/dev/null; then
+ lt_cv_prog_compiler_static_works_CXX=yes
+ fi
+ else
+ lt_cv_prog_compiler_static_works_CXX=yes
+ fi
+ fi
+ $RM -r conftest*
+ LDFLAGS="$save_LDFLAGS"
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works_CXX" >&5
+$as_echo "$lt_cv_prog_compiler_static_works_CXX" >&6; }
+
+if test x"$lt_cv_prog_compiler_static_works_CXX" = xyes; then
+ :
+else
+ lt_prog_compiler_static_CXX=
+fi
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
+$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
+if test "${lt_cv_prog_compiler_c_o_CXX+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_prog_compiler_c_o_CXX=no
+ $RM -r conftest 2>/dev/null
+ mkdir conftest
+ cd conftest
+ mkdir out
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+ lt_compiler_flag="-o out/conftest2.$ac_objext"
+ # Insert the option either (1) after the last *FLAGS variable, or
+ # (2) before a word containing "conftest.", or (3) at the end.
+ # Note that $ac_compile itself does not contain backslashes and begins
+ # with a dollar sign (not a hyphen), so the echo should work correctly.
+ lt_compile=`echo "$ac_compile" | $SED \
+ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+ -e 's:$: $lt_compiler_flag:'`
+ (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&5)
+ (eval "$lt_compile" 2>out/conftest.err)
+ ac_status=$?
+ cat out/conftest.err >&5
+ echo "$as_me:__oline__: \$? = $ac_status" >&5
+ if (exit $ac_status) && test -s out/conftest2.$ac_objext
+ then
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings
+ $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp
+ $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
+ if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
+ lt_cv_prog_compiler_c_o_CXX=yes
+ fi
+ fi
+ chmod u+w . 2>&5
+ $RM conftest*
+ # SGI C++ compiler will create directory out/ii_files/ for
+ # template instantiation
+ test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
+ $RM out/* && rmdir out
+ cd ..
+ $RM -r conftest
+ $RM conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o_CXX" >&5
+$as_echo "$lt_cv_prog_compiler_c_o_CXX" >&6; }
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
+$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
+if test "${lt_cv_prog_compiler_c_o_CXX+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_prog_compiler_c_o_CXX=no
+ $RM -r conftest 2>/dev/null
+ mkdir conftest
+ cd conftest
+ mkdir out
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+ lt_compiler_flag="-o out/conftest2.$ac_objext"
+ # Insert the option either (1) after the last *FLAGS variable, or
+ # (2) before a word containing "conftest.", or (3) at the end.
+ # Note that $ac_compile itself does not contain backslashes and begins
+ # with a dollar sign (not a hyphen), so the echo should work correctly.
+ lt_compile=`echo "$ac_compile" | $SED \
+ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+ -e 's:$: $lt_compiler_flag:'`
+ (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&5)
+ (eval "$lt_compile" 2>out/conftest.err)
+ ac_status=$?
+ cat out/conftest.err >&5
+ echo "$as_me:__oline__: \$? = $ac_status" >&5
+ if (exit $ac_status) && test -s out/conftest2.$ac_objext
+ then
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings
+ $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp
+ $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
+ if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
+ lt_cv_prog_compiler_c_o_CXX=yes
+ fi
+ fi
+ chmod u+w . 2>&5
+ $RM conftest*
+ # SGI C++ compiler will create directory out/ii_files/ for
+ # template instantiation
+ test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
+ $RM out/* && rmdir out
+ cd ..
+ $RM -r conftest
+ $RM conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o_CXX" >&5
+$as_echo "$lt_cv_prog_compiler_c_o_CXX" >&6; }
+
+
+
+
+hard_links="nottested"
+if test "$lt_cv_prog_compiler_c_o_CXX" = no && test "$need_locks" != no; then
+ # do not overwrite the value of need_locks provided by the user
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5
+$as_echo_n "checking if we can lock with hard links... " >&6; }
+ hard_links=yes
+ $RM conftest*
+ ln conftest.a conftest.b 2>/dev/null && hard_links=no
+ touch conftest.a
+ ln conftest.a conftest.b 2>&5 || hard_links=no
+ ln conftest.a conftest.b 2>/dev/null && hard_links=no
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5
+$as_echo "$hard_links" >&6; }
+ if test "$hard_links" = no; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5
+$as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;}
+ need_locks=warn
+ fi
+else
+ need_locks=no
+fi
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5
+$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; }
+
+ export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+ case $host_os in
+ aix[4-9]*)
+ # If we're using GNU nm, then we don't want the "-C" option.
+ # -C means demangle to AIX nm, but means don't demangle with GNU nm
+ if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
+ export_symbols_cmds_CXX='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
+ else
+ export_symbols_cmds_CXX='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
+ fi
+ ;;
+ pw32*)
+ export_symbols_cmds_CXX="$ltdll_cmds"
+ ;;
+ cygwin* | mingw* | cegcc*)
+ export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;/^.*[ ]__nm__/s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols'
+ ;;
+ linux* | k*bsd*-gnu)
+ link_all_deplibs_CXX=no
+ ;;
+ *)
+ export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+ ;;
+ esac
+ exclude_expsyms_CXX='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs_CXX" >&5
+$as_echo "$ld_shlibs_CXX" >&6; }
+test "$ld_shlibs_CXX" = no && can_build_shared=no
+
+with_gnu_ld_CXX=$with_gnu_ld
+
+
+
+
+
+
+#
+# Do we need to explicitly link libc?
+#
+case "x$archive_cmds_need_lc_CXX" in
+x|xyes)
+ # Assume -lc should be added
+ archive_cmds_need_lc_CXX=yes
+
+ if test "$enable_shared" = yes && test "$GCC" = yes; then
+ case $archive_cmds_CXX in
+ *'~'*)
+ # FIXME: we may have to deal with multi-command sequences.
+ ;;
+ '$CC '*)
+ # Test whether the compiler implicitly links with -lc since on some
+ # systems, -lgcc has to come before -lc. If gcc already passes -lc
+ # to ld, don't add -lc before -lgcc.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5
+$as_echo_n "checking whether -lc should be explicitly linked in... " >&6; }
+ $RM conftest*
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } 2>conftest.err; then
+ soname=conftest
+ lib=conftest
+ libobjs=conftest.$ac_objext
+ deplibs=
+ wl=$lt_prog_compiler_wl_CXX
+ pic_flag=$lt_prog_compiler_pic_CXX
+ compiler_flags=-v
+ linker_flags=-v
+ verstring=
+ output_objdir=.
+ libname=conftest
+ lt_save_allow_undefined_flag=$allow_undefined_flag_CXX
+ allow_undefined_flag_CXX=
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds_CXX 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5
+ (eval $archive_cmds_CXX 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+ then
+ archive_cmds_need_lc_CXX=no
+ else
+ archive_cmds_need_lc_CXX=yes
+ fi
+ allow_undefined_flag_CXX=$lt_save_allow_undefined_flag
+ else
+ cat conftest.err 1>&5
+ fi
+ $RM conftest*
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $archive_cmds_need_lc_CXX" >&5
+$as_echo "$archive_cmds_need_lc_CXX" >&6; }
+ ;;
+ esac
+ fi
+ ;;
+esac
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5
+$as_echo_n "checking dynamic linker characteristics... " >&6; }
+
+library_names_spec=
+libname_spec='lib$name'
+soname_spec=
+shrext_cmds=".so"
+postinstall_cmds=
+postuninstall_cmds=
+finish_cmds=
+finish_eval=
+shlibpath_var=
+shlibpath_overrides_runpath=unknown
+version_type=none
+dynamic_linker="$host_os ld.so"
+sys_lib_dlsearch_path_spec="/lib /usr/lib"
+need_lib_prefix=unknown
+hardcode_into_libs=no
+
+# when you set need_version to no, make sure it does not cause -set_version
+# flags to be left without arguments
+need_version=unknown
+
+case $host_os in
+aix3*)
+ version_type=linux
+ library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
+ shlibpath_var=LIBPATH
+
+ # AIX 3 has no versioning support, so we append a major version to the name.
+ soname_spec='${libname}${release}${shared_ext}$major'
+ ;;
+
+aix[4-9]*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ hardcode_into_libs=yes
+ if test "$host_cpu" = ia64; then
+ # AIX 5 supports IA64
+ library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
+ shlibpath_var=LD_LIBRARY_PATH
+ else
+ # With GCC up to 2.95.x, collect2 would create an import file
+ # for dependence libraries. The import file would start with
+ # the line `#! .'. This would cause the generated library to
+ # depend on `.', always an invalid library. This was fixed in
+ # development snapshots of GCC prior to 3.0.
+ case $host_os in
+ aix4 | aix4.[01] | aix4.[01].*)
+ if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
+ echo ' yes '
+ echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then
+ :
+ else
+ can_build_shared=no
+ fi
+ ;;
+ esac
+ # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
+ # soname into executable. Probably we can add versioning support to
+ # collect2, so additional links can be useful in future.
+ if test "$aix_use_runtimelinking" = yes; then
+ # If using run time linking (on AIX 4.2 or later) use lib<name>.so
+ # instead of lib<name>.a to let people know that these are not
+ # typical AIX shared libraries.
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ else
+ # We preserve .a as extension for shared libraries through AIX4.2
+ # and later when we are not doing run time linking.
+ library_names_spec='${libname}${release}.a $libname.a'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ fi
+ shlibpath_var=LIBPATH
+ fi
+ ;;
+
+amigaos*)
+ case $host_cpu in
+ powerpc)
+ # Since July 2007 AmigaOS4 officially supports .so libraries.
+ # When compiling the executable, add -use-dynld -Lsobjs: to the compileline.
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ ;;
+ m68k)
+ library_names_spec='$libname.ixlibrary $libname.a'
+ # Create ${libname}_ixlibrary.a entries in /sys/libs.
+ finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$ECHO "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
+ ;;
+ esac
+ ;;
+
+beos*)
+ library_names_spec='${libname}${shared_ext}'
+ dynamic_linker="$host_os ld.so"
+ shlibpath_var=LIBRARY_PATH
+ ;;
+
+bsdi[45]*)
+ version_type=linux
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
+ sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
+ # the default ld.so.conf also contains /usr/contrib/lib and
+ # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
+ # libtool to hard-code these into programs
+ ;;
+
+cygwin* | mingw* | pw32* | cegcc*)
+ version_type=windows
+ shrext_cmds=".dll"
+ need_version=no
+ need_lib_prefix=no
+
+ case $GCC,$host_os in
+ yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*)
+ library_names_spec='$libname.dll.a'
+ # DLL is installed to $(libdir)/../bin by postinstall_cmds
+ postinstall_cmds='base_file=`basename \${file}`~
+ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
+ dldir=$destdir/`dirname \$dlpath`~
+ test -d \$dldir || mkdir -p \$dldir~
+ $install_prog $dir/$dlname \$dldir/$dlname~
+ chmod a+x \$dldir/$dlname~
+ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then
+ eval '\''$striplib \$dldir/$dlname'\'' || exit \$?;
+ fi'
+ postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
+ dlpath=$dir/\$dldll~
+ $RM \$dlpath'
+ shlibpath_overrides_runpath=yes
+
+ case $host_os in
+ cygwin*)
+ # Cygwin DLLs use 'cyg' prefix rather than 'lib'
+ soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+ sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib"
+ ;;
+ mingw* | cegcc*)
+ # MinGW DLLs use traditional 'lib' prefix
+ soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+ sys_lib_search_path_spec=`$CC -print-search-dirs | $GREP "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
+ if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then
+ # It is most probably a Windows format PATH printed by
+ # mingw gcc, but we are running on Cygwin. Gcc prints its search
+ # path with ; separators, and with drive letters. We can handle the
+ # drive letters (cygwin fileutils understands them), so leave them,
+ # especially as we might pass files found there to a mingw objdump,
+ # which wouldn't understand a cygwinified path. Ahh.
+ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
+ else
+ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
+ fi
+ ;;
+ pw32*)
+ # pw32 DLLs use 'pw' prefix rather than 'lib'
+ library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+ ;;
+ esac
+ ;;
+
+ *)
+ library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib'
+ ;;
+ esac
+ dynamic_linker='Win32 ld.exe'
+ # FIXME: first we should search . and the directory the executable is in
+ shlibpath_var=PATH
+ ;;
+
+darwin* | rhapsody*)
+ dynamic_linker="$host_os dyld"
+ version_type=darwin
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext'
+ soname_spec='${libname}${release}${major}$shared_ext'
+ shlibpath_overrides_runpath=yes
+ shlibpath_var=DYLD_LIBRARY_PATH
+ shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
+
+ sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
+ ;;
+
+dgux*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ ;;
+
+freebsd1*)
+ dynamic_linker=no
+ ;;
+
+freebsd* | dragonfly*)
+ # DragonFly does not have aout. When/if they implement a new
+ # versioning mechanism, adjust this.
+ if test -x /usr/bin/objformat; then
+ objformat=`/usr/bin/objformat`
+ else
+ case $host_os in
+ freebsd[123]*) objformat=aout ;;
+ *) objformat=elf ;;
+ esac
+ fi
+ version_type=freebsd-$objformat
+ case $version_type in
+ freebsd-elf*)
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
+ need_version=no
+ need_lib_prefix=no
+ ;;
+ freebsd-*)
+ library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
+ need_version=yes
+ ;;
+ esac
+ shlibpath_var=LD_LIBRARY_PATH
+ case $host_os in
+ freebsd2*)
+ shlibpath_overrides_runpath=yes
+ ;;
+ freebsd3.[01]* | freebsdelf3.[01]*)
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ ;;
+ freebsd3.[2-9]* | freebsdelf3.[2-9]* | \
+ freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1)
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ ;;
+ *) # from 4.6 on, and DragonFly
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ ;;
+ esac
+ ;;
+
+gnu*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ hardcode_into_libs=yes
+ ;;
+
+hpux9* | hpux10* | hpux11*)
+ # Give a soname corresponding to the major version so that dld.sl refuses to
+ # link against other versions.
+ version_type=sunos
+ need_lib_prefix=no
+ need_version=no
+ case $host_cpu in
+ ia64*)
+ shrext_cmds='.so'
+ hardcode_into_libs=yes
+ dynamic_linker="$host_os dld.so"
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ if test "X$HPUX_IA64_MODE" = X32; then
+ sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
+ else
+ sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
+ fi
+ sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+ ;;
+ hppa*64*)
+ shrext_cmds='.sl'
+ hardcode_into_libs=yes
+ dynamic_linker="$host_os dld.sl"
+ shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
+ shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
+ sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+ ;;
+ *)
+ shrext_cmds='.sl'
+ dynamic_linker="$host_os dld.sl"
+ shlibpath_var=SHLIB_PATH
+ shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ ;;
+ esac
+ # HP-UX runs *really* slowly unless shared libraries are mode 555.
+ postinstall_cmds='chmod 555 $lib'
+ ;;
+
+interix[3-9]*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ ;;
+
+irix5* | irix6* | nonstopux*)
+ case $host_os in
+ nonstopux*) version_type=nonstopux ;;
+ *)
+ if test "$lt_cv_prog_gnu_ld" = yes; then
+ version_type=linux
+ else
+ version_type=irix
+ fi ;;
+ esac
+ need_lib_prefix=no
+ need_version=no
+ soname_spec='${libname}${release}${shared_ext}$major'
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
+ case $host_os in
+ irix5* | nonstopux*)
+ libsuff= shlibsuff=
+ ;;
+ *)
+ case $LD in # libtool.m4 will add one of these switches to LD
+ *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
+ libsuff= shlibsuff= libmagic=32-bit;;
+ *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
+ libsuff=32 shlibsuff=N32 libmagic=N32;;
+ *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
+ libsuff=64 shlibsuff=64 libmagic=64-bit;;
+ *) libsuff= shlibsuff= libmagic=never-match;;
+ esac
+ ;;
+ esac
+ shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
+ shlibpath_overrides_runpath=no
+ sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
+ sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
+ hardcode_into_libs=yes
+ ;;
+
+# No shared lib support for Linux oldld, aout, or coff.
+linux*oldld* | linux*aout* | linux*coff*)
+ dynamic_linker=no
+ ;;
+
+# This must be Linux ELF.
+linux* | k*bsd*-gnu | kopensolaris*-gnu)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ # Some binutils ld are patched to set DT_RUNPATH
+ save_LDFLAGS=$LDFLAGS
+ save_libdir=$libdir
+ eval "libdir=/foo; wl=\"$lt_prog_compiler_wl_CXX\"; \
+ LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec_CXX\""
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_link "$LINENO"; then :
+ if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then :
+ shlibpath_overrides_runpath=yes
+fi
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ LDFLAGS=$save_LDFLAGS
+ libdir=$save_libdir
+
+ # This implies no fast_install, which is unacceptable.
+ # Some rework will be needed to allow for fast_install
+ # before this can be enabled.
+ hardcode_into_libs=yes
+
+ # Append ld.so.conf contents to the search path
+ if test -f /etc/ld.so.conf; then
+ lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
+ sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
+ fi
+
+ # We used to test for /lib/ld.so.1 and disable shared libraries on
+ # powerpc, because MkLinux only supported shared libraries with the
+ # GNU dynamic linker. Since this was broken with cross compilers,
+ # most powerpc-linux boxes support dynamic linking these days and
+ # people can always --disable-shared, the test was removed, and we
+ # assume the GNU/Linux dynamic linker is in use.
+ dynamic_linker='GNU/Linux ld.so'
+ ;;
+
+netbsdelf*-gnu)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ dynamic_linker='NetBSD ld.elf_so'
+ ;;
+
+netbsd*)
+ version_type=sunos
+ need_lib_prefix=no
+ need_version=no
+ if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+ dynamic_linker='NetBSD (a.out) ld.so'
+ else
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ dynamic_linker='NetBSD ld.elf_so'
+ fi
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ ;;
+
+newsos6)
+ version_type=linux
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ ;;
+
+*nto* | *qnx*)
+ version_type=qnx
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ dynamic_linker='ldqnx.so'
+ ;;
+
+openbsd*)
+ version_type=sunos
+ sys_lib_dlsearch_path_spec="/usr/lib"
+ need_lib_prefix=no
+ # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs.
+ case $host_os in
+ openbsd3.3 | openbsd3.3.*) need_version=yes ;;
+ *) need_version=no ;;
+ esac
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+ case $host_os in
+ openbsd2.[89] | openbsd2.[89].*)
+ shlibpath_overrides_runpath=no
+ ;;
+ *)
+ shlibpath_overrides_runpath=yes
+ ;;
+ esac
+ else
+ shlibpath_overrides_runpath=yes
+ fi
+ ;;
+
+os2*)
+ libname_spec='$name'
+ shrext_cmds=".dll"
+ need_lib_prefix=no
+ library_names_spec='$libname${shared_ext} $libname.a'
+ dynamic_linker='OS/2 ld.exe'
+ shlibpath_var=LIBPATH
+ ;;
+
+osf3* | osf4* | osf5*)
+ version_type=osf
+ need_lib_prefix=no
+ need_version=no
+ soname_spec='${libname}${release}${shared_ext}$major'
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ shlibpath_var=LD_LIBRARY_PATH
+ sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
+ sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
+ ;;
+
+rdos*)
+ dynamic_linker=no
+ ;;
+
+solaris*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ # ldd complains unless libraries are executable
+ postinstall_cmds='chmod +x $lib'
+ ;;
+
+sunos4*)
+ version_type=sunos
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+ finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ if test "$with_gnu_ld" = yes; then
+ need_lib_prefix=no
+ fi
+ need_version=yes
+ ;;
+
+sysv4 | sysv4.3*)
+ version_type=linux
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ case $host_vendor in
+ sni)
+ shlibpath_overrides_runpath=no
+ need_lib_prefix=no
+ runpath_var=LD_RUN_PATH
+ ;;
+ siemens)
+ need_lib_prefix=no
+ ;;
+ motorola)
+ need_lib_prefix=no
+ need_version=no
+ shlibpath_overrides_runpath=no
+ sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
+ ;;
+ esac
+ ;;
+
+sysv4*MP*)
+ if test -d /usr/nec ;then
+ version_type=linux
+ library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
+ soname_spec='$libname${shared_ext}.$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ fi
+ ;;
+
+sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
+ version_type=freebsd-elf
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ if test "$with_gnu_ld" = yes; then
+ sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib'
+ else
+ sys_lib_search_path_spec='/usr/ccs/lib /usr/lib'
+ case $host_os in
+ sco3.2v5*)
+ sys_lib_search_path_spec="$sys_lib_search_path_spec /lib"
+ ;;
+ esac
+ fi
+ sys_lib_dlsearch_path_spec='/usr/lib'
+ ;;
+
+tpf*)
+ # TPF is a cross-target only. Preferred cross-host = GNU/Linux.
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ ;;
+
+uts4*)
+ version_type=linux
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ ;;
+
+*)
+ dynamic_linker=no
+ ;;
+esac
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5
+$as_echo "$dynamic_linker" >&6; }
+test "$dynamic_linker" = no && can_build_shared=no
+
+variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
+if test "$GCC" = yes; then
+ variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
+fi
+
+if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then
+ sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec"
+fi
+if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then
+ sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec"
+fi
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5
+$as_echo_n "checking how to hardcode library paths into programs... " >&6; }
+hardcode_action_CXX=
+if test -n "$hardcode_libdir_flag_spec_CXX" ||
+ test -n "$runpath_var_CXX" ||
+ test "X$hardcode_automatic_CXX" = "Xyes" ; then
+
+ # We can hardcode non-existent directories.
+ if test "$hardcode_direct_CXX" != no &&
+ # If the only mechanism to avoid hardcoding is shlibpath_var, we
+ # have to relink, otherwise we might link with an installed library
+ # when we should be linking with a yet-to-be-installed one
+ ## test "$_LT_TAGVAR(hardcode_shlibpath_var, CXX)" != no &&
+ test "$hardcode_minus_L_CXX" != no; then
+ # Linking always hardcodes the temporary library directory.
+ hardcode_action_CXX=relink
+ else
+ # We can link without hardcoding, and we can hardcode nonexisting dirs.
+ hardcode_action_CXX=immediate
+ fi
+else
+ # We cannot hardcode anything, or else we can only hardcode existing
+ # directories.
+ hardcode_action_CXX=unsupported
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action_CXX" >&5
+$as_echo "$hardcode_action_CXX" >&6; }
+
+if test "$hardcode_action_CXX" = relink ||
+ test "$inherit_rpath_CXX" = yes; then
+ # Fast installation is not supported
+ enable_fast_install=no
+elif test "$shlibpath_overrides_runpath" = yes ||
+ test "$enable_shared" = no; then
+ # Fast installation is not necessary
+ enable_fast_install=needless
+fi
+
+
+
+
+
+
+
+ fi # test -n "$compiler"
+
+ CC=$lt_save_CC
+ LDCXX=$LD
+ LD=$lt_save_LD
+ GCC=$lt_save_GCC
+ with_gnu_ld=$lt_save_with_gnu_ld
+ lt_cv_path_LDCXX=$lt_cv_path_LD
+ lt_cv_path_LD=$lt_save_path_LD
+ lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld
+ lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld
+fi # test "$_lt_caught_CXX_error" != yes
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ac_config_commands="$ac_config_commands libtool"
+
+
+
+
+# Only expand once:
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5
+$as_echo_n "checking whether ln -s works... " >&6; }
+LN_S=$as_ln_s
+if test "$LN_S" = "ln -s"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5
+$as_echo "no, using $LN_S" >&6; }
+fi
+
+
+###############
+### DocBook ###
+###############
+for ac_prog in openjade jade
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_JADE+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$JADE"; then
+ ac_cv_prog_JADE="$JADE" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_JADE="$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+JADE=$ac_cv_prog_JADE
+if test -n "$JADE"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $JADE" >&5
+$as_echo "$JADE" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$JADE" && break
+done
+
+if test -n "$JADE"; then
+ for ac_prog in onsgmls nsgmls
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_NSGMLS+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$NSGMLS"; then
+ ac_cv_prog_NSGMLS="$NSGMLS" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_NSGMLS="$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+NSGMLS=$ac_cv_prog_NSGMLS
+if test -n "$NSGMLS"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NSGMLS" >&5
+$as_echo "$NSGMLS" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$NSGMLS" && break
+done
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for DocBook V4.1" >&5
+$as_echo_n "checking for DocBook V4.1... " >&6; }
+if test "${pgac_cv_check_docbook+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat >conftest.sgml <<EOF
+<!doctype book PUBLIC "-//OASIS//DTD DocBook V4.1//EN">
+<book>
+ <title>test</title>
+ <chapter>
+ <title>random</title>
+ <sect1>
+ <title>testsect</title>
+ <para>text</para>
+ </sect1>
+ </chapter>
+</book>
+EOF
+
+${NSGMLS-false} -s conftest.sgml 1>&5 2>&1
+if test $? -eq 0; then
+ pgac_cv_check_docbook=yes
+else
+ pgac_cv_check_docbook=no
+fi
+rm -f conftest.sgml
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $pgac_cv_check_docbook" >&5
+$as_echo "$pgac_cv_check_docbook" >&6; }
+
+have_docbook=$pgac_cv_check_docbook
+
+
+ if test "$pgac_cv_check_docbook" = "yes"; then
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for DocBook stylesheets" >&5
+$as_echo_n "checking for DocBook stylesheets... " >&6; }
+
+@%:@ Check whether --with-docbook-stylesheets was given.
+if test "${with_docbook_stylesheets+set}" = set; then :
+ withval=$with_docbook_stylesheets; muse_docbook_prefix="$withval"
+fi
+
+if test "${pgac_cv_path_stylesheets+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+
+if test -n "$muse_docbook_prefix"; then
+ if test -r "$muse_docbook_prefix/html/docbook.dsl" \
+ && test -r "$muse_docbook_prefix/print/docbook.dsl"; then
+ pgac_cv_path_stylesheets="$muse_docbook_prefix"
+ fi
+fi
+if test -z "$pgac_cv_path_stylesheets"; then
+ if test -n "$DOCBOOKSTYLE"; then
+ if test -r "$DOCBOOKSTYLE/html/docbook.dsl" \
+ && test -r "$DOCBOOKSTYLE/print/docbook.dsl"; then
+ pgac_cv_path_stylesheets="$DOCBOOKSTYLE"
+ fi
+ fi
+fi
+if test -z "$pgac_cv_path_stylesheets"; then
+ for pgac_prefix in /usr /usr/local /opt; do
+ for pgac_infix in share lib; do
+ for pgac_postfix in \
+ sgml/stylesheets/nwalsh-modular \
+ sgml/stylesheets/docbook \
+ sgml/docbook/dsssl/modular \
+ sgml/docbook/stylesheet/dsssl/modular
+ do
+ pgac_candidate=$pgac_prefix/$pgac_infix/$pgac_postfix
+ if test -r "$pgac_candidate/html/docbook.dsl" \
+ && test -r "$pgac_candidate/print/docbook.dsl"
+ then
+ pgac_cv_path_stylesheets=$pgac_candidate
+ break 3
+ fi
+ done
+ done
+ done
+fi
+
+fi
+
+DOCBOOKSTYLE=$pgac_cv_path_stylesheets
+
+if test -n "$DOCBOOKSTYLE"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DOCBOOKSTYLE" >&5
+$as_echo "$DOCBOOKSTYLE" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+ if test -n "$DOCBOOKSTYLE"; then
+ DOCBOOKTARGETS="book1.html"
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: DocBook stylesheets not found or not usable - documentation will not be built" >&5
+$as_echo "$as_me: WARNING: DocBook stylesheets not found or not usable - documentation will not be built" >&2;}
+ fi
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: DocBook 4.1 DTD not found or not usable - documentation will not be built" >&5
+$as_echo "$as_me: WARNING: DocBook 4.1 DTD not found or not usable - documentation will not be built" >&2;}
+ fi
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: jade not found - documentation will not be built" >&5
+$as_echo "$as_me: WARNING: jade not found - documentation will not be built" >&2;}
+fi
+
+
+###############
+### doxygen ###
+###############
+
+# Extract the first word of "doxygen", so it can be a program name with args.
+set dummy doxygen; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_DOXYGEN+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $DOXYGEN in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_DOXYGEN="$DOXYGEN" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_path_DOXYGEN="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ test -z "$ac_cv_path_DOXYGEN" && ac_cv_path_DOXYGEN="no"
+ ;;
+esac
+fi
+DOXYGEN=$ac_cv_path_DOXYGEN
+if test -n "$DOXYGEN"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DOXYGEN" >&5
+$as_echo "$DOXYGEN" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+
+################
+### graphviz ###
+################
+
+# Extract the first word of "dot", so it can be a program name with args.
+set dummy dot; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_DOT+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $DOT in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_DOT="$DOT" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_path_DOT="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ test -z "$ac_cv_path_DOT" && ac_cv_path_DOT="no"
+ ;;
+esac
+fi
+DOT=$ac_cv_path_DOT
+if test -n "$DOT"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DOT" >&5
+$as_echo "$DOT" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+if test "$DOT" != "no"; then
+ HAVEDOT=YES
+ DOTPATH=$( dirname "$DOT" )
+else
+ HAVEDOT=NO
+fi
+
+
+
+############
+### perl ###
+############
+
+# Extract the first word of "perl", so it can be a program name with args.
+set dummy perl; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_PERL+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $PERL in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_PERL="$PERL" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_path_PERL="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ test -z "$ac_cv_path_PERL" && ac_cv_path_PERL="no"
+ ;;
+esac
+fi
+PERL=$ac_cv_path_PERL
+if test -n "$PERL"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PERL" >&5
+$as_echo "$PERL" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+if test "$PERL" == "no"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: you don't have perl installed! wierdo! (and doxygen might not like this)" >&5
+$as_echo "$as_me: WARNING: you don't have perl installed! wierdo! (and doxygen might not like this)" >&2;}
+fi
+
+
+#########
+### X ###
+#########
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for X" >&5
+$as_echo_n "checking for X... " >&6; }
+
+
+@%:@ Check whether --with-x was given.
+if test "${with_x+set}" = set; then :
+ withval=$with_x;
+fi
+
+# $have_x is `yes', `no', `disabled', or empty when we do not yet know.
+if test "x$with_x" = xno; then
+ # The user explicitly disabled X.
+ have_x=disabled
+else
+ case $x_includes,$x_libraries in #(
+ *\'*) as_fn_error "cannot use X directory names containing '" "$LINENO" 5;; #(
+ *,NONE | NONE,*) if test "${ac_cv_have_x+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ # One or both of the vars are not set, and there is no cached value.
+ac_x_includes=no ac_x_libraries=no
+rm -f -r conftest.dir
+if mkdir conftest.dir; then
+ cd conftest.dir
+ cat >Imakefile <<'_ACEOF'
+incroot:
+ @echo incroot='${INCROOT}'
+usrlibdir:
+ @echo usrlibdir='${USRLIBDIR}'
+libdir:
+ @echo libdir='${LIBDIR}'
+_ACEOF
+ if (export CC; ${XMKMF-xmkmf}) >/dev/null 2>/dev/null && test -f Makefile; then
+ # GNU make sometimes prints "make[1]: Entering...", which would confuse us.
+ for ac_var in incroot usrlibdir libdir; do
+ eval "ac_im_$ac_var=\`\${MAKE-make} $ac_var 2>/dev/null | sed -n 's/^$ac_var=//p'\`"
+ done
+ # Open Windows xmkmf reportedly sets LIBDIR instead of USRLIBDIR.
+ for ac_extension in a so sl dylib la dll; do
+ if test ! -f "$ac_im_usrlibdir/libX11.$ac_extension" &&
+ test -f "$ac_im_libdir/libX11.$ac_extension"; then
+ ac_im_usrlibdir=$ac_im_libdir; break
+ fi
+ done
+ # Screen out bogus values from the imake configuration. They are
+ # bogus both because they are the default anyway, and because
+ # using them would break gcc on systems where it needs fixed includes.
+ case $ac_im_incroot in
+ /usr/include) ac_x_includes= ;;
+ *) test -f "$ac_im_incroot/X11/Xos.h" && ac_x_includes=$ac_im_incroot;;
+ esac
+ case $ac_im_usrlibdir in
+ /usr/lib | /usr/lib64 | /lib | /lib64) ;;
+ *) test -d "$ac_im_usrlibdir" && ac_x_libraries=$ac_im_usrlibdir ;;
+ esac
+ fi
+ cd ..
+ rm -f -r conftest.dir
+fi
+
+# Standard set of common directories for X headers.
+# Check X11 before X11Rn because it is often a symlink to the current release.
+ac_x_header_dirs='
+/usr/X11/include
+/usr/X11R7/include
+/usr/X11R6/include
+/usr/X11R5/include
+/usr/X11R4/include
+
+/usr/include/X11
+/usr/include/X11R7
+/usr/include/X11R6
+/usr/include/X11R5
+/usr/include/X11R4
+
+/usr/local/X11/include
+/usr/local/X11R7/include
+/usr/local/X11R6/include
+/usr/local/X11R5/include
+/usr/local/X11R4/include
+
+/usr/local/include/X11
+/usr/local/include/X11R7
+/usr/local/include/X11R6
+/usr/local/include/X11R5
+/usr/local/include/X11R4
+
+/usr/X386/include
+/usr/x386/include
+/usr/XFree86/include/X11
+
+/usr/include
+/usr/local/include
+/usr/unsupported/include
+/usr/athena/include
+/usr/local/x11r5/include
+/usr/lpp/Xamples/include
+
+/usr/openwin/include
+/usr/openwin/share/include'
+
+if test "$ac_x_includes" = no; then
+ # Guess where to find include files, by looking for Xlib.h.
+ # First, try using that file with no special directory specified.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+@%:@include <X11/Xlib.h>
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+ # We can compile using X headers with no special include directory.
+ac_x_includes=
+else
+ for ac_dir in $ac_x_header_dirs; do
+ if test -r "$ac_dir/X11/Xlib.h"; then
+ ac_x_includes=$ac_dir
+ break
+ fi
+done
+fi
+rm -f conftest.err conftest.$ac_ext
+fi # $ac_x_includes = no
+
+if test "$ac_x_libraries" = no; then
+ # Check for the libraries.
+ # See if we find them without any special options.
+ # Don't add to $LIBS permanently.
+ ac_save_LIBS=$LIBS
+ LIBS="-lX11 $LIBS"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+@%:@include <X11/Xlib.h>
+int
+main ()
+{
+XrmInitialize ()
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ LIBS=$ac_save_LIBS
+# We can link X programs with no special library path.
+ac_x_libraries=
+else
+ LIBS=$ac_save_LIBS
+for ac_dir in `$as_echo "$ac_x_includes $ac_x_header_dirs" | sed s/include/lib/g`
+do
+ # Don't even attempt the hair of trying to link an X program!
+ for ac_extension in a so sl dylib la dll; do
+ if test -r "$ac_dir/libX11.$ac_extension"; then
+ ac_x_libraries=$ac_dir
+ break 2
+ fi
+ done
+done
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+fi # $ac_x_libraries = no
+
+case $ac_x_includes,$ac_x_libraries in #(
+ no,* | *,no | *\'*)
+ # Didn't find X, or a directory has "'" in its name.
+ ac_cv_have_x="have_x=no";; #(
+ *)
+ # Record where we found X for the cache.
+ ac_cv_have_x="have_x=yes\
+ ac_x_includes='$ac_x_includes'\
+ ac_x_libraries='$ac_x_libraries'"
+esac
+fi
+;; #(
+ *) have_x=yes;;
+ esac
+ eval "$ac_cv_have_x"
+fi # $with_x != no
+
+if test "$have_x" != yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_x" >&5
+$as_echo "$have_x" >&6; }
+ no_x=yes
+else
+ # If each of the values was on the command line, it overrides each guess.
+ test "x$x_includes" = xNONE && x_includes=$ac_x_includes
+ test "x$x_libraries" = xNONE && x_libraries=$ac_x_libraries
+ # Update the cache value to reflect the command line values.
+ ac_cv_have_x="have_x=yes\
+ ac_x_includes='$x_includes'\
+ ac_x_libraries='$x_libraries'"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: libraries $x_libraries, headers $x_includes" >&5
+$as_echo "libraries $x_libraries, headers $x_includes" >&6; }
+fi
+
+if test "$no_x" = yes; then
+ # Not all programs may use this symbol, but it does not hurt to define it.
+
+$as_echo "@%:@define X_DISPLAY_MISSING 1" >>confdefs.h
+
+ X_CFLAGS= X_PRE_LIBS= X_LIBS= X_EXTRA_LIBS=
+else
+ if test -n "$x_includes"; then
+ X_CFLAGS="$X_CFLAGS -I$x_includes"
+ fi
+
+ # It would also be nice to do this for all -L options, not just this one.
+ if test -n "$x_libraries"; then
+ X_LIBS="$X_LIBS -L$x_libraries"
+ # For Solaris; some versions of Sun CC require a space after -R and
+ # others require no space. Words are not sufficient . . . .
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -R must be followed by a space" >&5
+$as_echo_n "checking whether -R must be followed by a space... " >&6; }
+ ac_xsave_LIBS=$LIBS; LIBS="$LIBS -R$x_libraries"
+ ac_xsave_c_werror_flag=$ac_c_werror_flag
+ ac_c_werror_flag=yes
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ X_LIBS="$X_LIBS -R$x_libraries"
+else
+ LIBS="$ac_xsave_LIBS -R $x_libraries"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ X_LIBS="$X_LIBS -R $x_libraries"
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: neither works" >&5
+$as_echo "neither works" >&6; }
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ ac_c_werror_flag=$ac_xsave_c_werror_flag
+ LIBS=$ac_xsave_LIBS
+ fi
+
+ # Check for system-dependent libraries X programs must link with.
+ # Do this before checking for the system-independent R6 libraries
+ # (-lICE), since we may need -lsocket or whatever for X linking.
+
+ if test "$ISC" = yes; then
+ X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl_s -linet"
+ else
+ # Martyn Johnson says this is needed for Ultrix, if the X
+ # libraries were built with DECnet support. And Karl Berry says
+ # the Alpha needs dnet_stub (dnet does not exist).
+ ac_xsave_LIBS="$LIBS"; LIBS="$LIBS $X_LIBS -lX11"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char XOpenDisplay ();
+int
+main ()
+{
+return XOpenDisplay ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dnet_ntoa in -ldnet" >&5
+$as_echo_n "checking for dnet_ntoa in -ldnet... " >&6; }
+if test "${ac_cv_lib_dnet_dnet_ntoa+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldnet $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dnet_ntoa ();
+int
+main ()
+{
+return dnet_ntoa ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_dnet_dnet_ntoa=yes
+else
+ ac_cv_lib_dnet_dnet_ntoa=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dnet_dnet_ntoa" >&5
+$as_echo "$ac_cv_lib_dnet_dnet_ntoa" >&6; }
+if test "x$ac_cv_lib_dnet_dnet_ntoa" = x""yes; then :
+ X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet"
+fi
+
+ if test $ac_cv_lib_dnet_dnet_ntoa = no; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dnet_ntoa in -ldnet_stub" >&5
+$as_echo_n "checking for dnet_ntoa in -ldnet_stub... " >&6; }
+if test "${ac_cv_lib_dnet_stub_dnet_ntoa+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldnet_stub $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dnet_ntoa ();
+int
+main ()
+{
+return dnet_ntoa ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_dnet_stub_dnet_ntoa=yes
+else
+ ac_cv_lib_dnet_stub_dnet_ntoa=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dnet_stub_dnet_ntoa" >&5
+$as_echo "$ac_cv_lib_dnet_stub_dnet_ntoa" >&6; }
+if test "x$ac_cv_lib_dnet_stub_dnet_ntoa" = x""yes; then :
+ X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet_stub"
+fi
+
+ fi
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ LIBS="$ac_xsave_LIBS"
+
+ # msh@cis.ufl.edu says -lnsl (and -lsocket) are needed for his 386/AT,
+ # to get the SysV transport functions.
+ # Chad R. Larson says the Pyramis MIS-ES running DC/OSx (SVR4)
+ # needs -lnsl.
+ # The nsl library prevents programs from opening the X display
+ # on Irix 5.2, according to T.E. Dickey.
+ # The functions gethostbyname, getservbyname, and inet_addr are
+ # in -lbsd on LynxOS 3.0.1/i386, according to Lars Hecking.
+ ac_fn_c_check_func "$LINENO" "gethostbyname" "ac_cv_func_gethostbyname"
+if test "x$ac_cv_func_gethostbyname" = x""yes; then :
+
+fi
+
+ if test $ac_cv_func_gethostbyname = no; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostbyname in -lnsl" >&5
+$as_echo_n "checking for gethostbyname in -lnsl... " >&6; }
+if test "${ac_cv_lib_nsl_gethostbyname+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lnsl $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char gethostbyname ();
+int
+main ()
+{
+return gethostbyname ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_nsl_gethostbyname=yes
+else
+ ac_cv_lib_nsl_gethostbyname=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_nsl_gethostbyname" >&5
+$as_echo "$ac_cv_lib_nsl_gethostbyname" >&6; }
+if test "x$ac_cv_lib_nsl_gethostbyname" = x""yes; then :
+ X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl"
+fi
+
+ if test $ac_cv_lib_nsl_gethostbyname = no; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostbyname in -lbsd" >&5
+$as_echo_n "checking for gethostbyname in -lbsd... " >&6; }
+if test "${ac_cv_lib_bsd_gethostbyname+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lbsd $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char gethostbyname ();
+int
+main ()
+{
+return gethostbyname ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_bsd_gethostbyname=yes
+else
+ ac_cv_lib_bsd_gethostbyname=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_bsd_gethostbyname" >&5
+$as_echo "$ac_cv_lib_bsd_gethostbyname" >&6; }
+if test "x$ac_cv_lib_bsd_gethostbyname" = x""yes; then :
+ X_EXTRA_LIBS="$X_EXTRA_LIBS -lbsd"
+fi
+
+ fi
+ fi
+
+ # lieder@skyler.mavd.honeywell.com says without -lsocket,
+ # socket/setsockopt and other routines are undefined under SCO ODT
+ # 2.0. But -lsocket is broken on IRIX 5.2 (and is not necessary
+ # on later versions), says Simon Leinen: it contains gethostby*
+ # variants that don't use the name server (or something). -lsocket
+ # must be given before -lnsl if both are needed. We assume that
+ # if connect needs -lnsl, so does gethostbyname.
+ ac_fn_c_check_func "$LINENO" "connect" "ac_cv_func_connect"
+if test "x$ac_cv_func_connect" = x""yes; then :
+
+fi
+
+ if test $ac_cv_func_connect = no; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for connect in -lsocket" >&5
+$as_echo_n "checking for connect in -lsocket... " >&6; }
+if test "${ac_cv_lib_socket_connect+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lsocket $X_EXTRA_LIBS $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char connect ();
+int
+main ()
+{
+return connect ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_socket_connect=yes
+else
+ ac_cv_lib_socket_connect=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_socket_connect" >&5
+$as_echo "$ac_cv_lib_socket_connect" >&6; }
+if test "x$ac_cv_lib_socket_connect" = x""yes; then :
+ X_EXTRA_LIBS="-lsocket $X_EXTRA_LIBS"
+fi
+
+ fi
+
+ # Guillermo Gomez says -lposix is necessary on A/UX.
+ ac_fn_c_check_func "$LINENO" "remove" "ac_cv_func_remove"
+if test "x$ac_cv_func_remove" = x""yes; then :
+
+fi
+
+ if test $ac_cv_func_remove = no; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for remove in -lposix" >&5
+$as_echo_n "checking for remove in -lposix... " >&6; }
+if test "${ac_cv_lib_posix_remove+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lposix $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char remove ();
+int
+main ()
+{
+return remove ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_posix_remove=yes
+else
+ ac_cv_lib_posix_remove=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_posix_remove" >&5
+$as_echo "$ac_cv_lib_posix_remove" >&6; }
+if test "x$ac_cv_lib_posix_remove" = x""yes; then :
+ X_EXTRA_LIBS="$X_EXTRA_LIBS -lposix"
+fi
+
+ fi
+
+ # BSDI BSD/OS 2.1 needs -lipc for XOpenDisplay.
+ ac_fn_c_check_func "$LINENO" "shmat" "ac_cv_func_shmat"
+if test "x$ac_cv_func_shmat" = x""yes; then :
+
+fi
+
+ if test $ac_cv_func_shmat = no; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shmat in -lipc" >&5
+$as_echo_n "checking for shmat in -lipc... " >&6; }
+if test "${ac_cv_lib_ipc_shmat+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lipc $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char shmat ();
+int
+main ()
+{
+return shmat ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_ipc_shmat=yes
+else
+ ac_cv_lib_ipc_shmat=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ipc_shmat" >&5
+$as_echo "$ac_cv_lib_ipc_shmat" >&6; }
+if test "x$ac_cv_lib_ipc_shmat" = x""yes; then :
+ X_EXTRA_LIBS="$X_EXTRA_LIBS -lipc"
+fi
+
+ fi
+ fi
+
+ # Check for libraries that X11R6 Xt/Xaw programs need.
+ ac_save_LDFLAGS=$LDFLAGS
+ test -n "$x_libraries" && LDFLAGS="$LDFLAGS -L$x_libraries"
+ # SM needs ICE to (dynamically) link under SunOS 4.x (so we have to
+ # check for ICE first), but we must link in the order -lSM -lICE or
+ # we get undefined symbols. So assume we have SM if we have ICE.
+ # These have to be linked with before -lX11, unlike the other
+ # libraries we check for below, so use a different variable.
+ # John Interrante, Karl Berry
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IceConnectionNumber in -lICE" >&5
+$as_echo_n "checking for IceConnectionNumber in -lICE... " >&6; }
+if test "${ac_cv_lib_ICE_IceConnectionNumber+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lICE $X_EXTRA_LIBS $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char IceConnectionNumber ();
+int
+main ()
+{
+return IceConnectionNumber ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_ICE_IceConnectionNumber=yes
+else
+ ac_cv_lib_ICE_IceConnectionNumber=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ICE_IceConnectionNumber" >&5
+$as_echo "$ac_cv_lib_ICE_IceConnectionNumber" >&6; }
+if test "x$ac_cv_lib_ICE_IceConnectionNumber" = x""yes; then :
+ X_PRE_LIBS="$X_PRE_LIBS -lSM -lICE"
+fi
+
+ LDFLAGS=$ac_save_LDFLAGS
+
+fi
+
+if test "$X_DISPLAY_MISSING" != ""; then
+ as_fn_error "X required" "$LINENO" 5
+fi
+
+
+
+##########
+### QT ###
+##########
+#CONFIGURE_QT(3.2.0, , AC_MSG_ERROR([need qt >= 3.2.0]))
+#if test "$muse_qttest" = "yes"; then
+# AC_LANG_PUSH([C++])
+# muse_save_CFLAGS="$CFLAGS"
+# CFLAGS="$CFLAGS $QT_CFLAGS"
+# muse_save_CXXFLAGS="$CXXFLAGS"
+# CXXFLAGS="$CXXFLAGS $QT_CFLAGS"
+# muse_save_LDFLAGS="$LDFLAGS"
+# LDFLAGS="$LDFLAGS $QT_LIBS"
+# AC_CHECK_LIB(qt-mt, qt_selection_property, [
+# true
+# ],[
+# AC_MSG_ERROR([
+#
+# MusE requires thread enabled QT (qt-mt) >= 3.2.0
+#
+# You can either compile your own version of QT (making sure you enable
+# threading!) or install the appropriate package for your distribution.
+#])
+# ])
+# CFLAGS="$muse_save_CFLAGS"
+# CXXFLAGS="$muse_save_CXXFLAGS"
+# LDFLAGS="$muse_save_LDFLAGS"
+# unset muse_save_CFLAGS
+# unset muse_save_CXXFLAGS
+# unset muse_save_LDFLAGS
+# AC_LANG_POP([C++])
+#fi
+
+QTDIR=/usr/share/qt4
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $QTDIR" >&5
+$as_echo "$QTDIR" >&6; }
+if test "$no_x" = yes; then
+ # Not all programs may use this symbol, but it does not hurt to define it.
+
+$as_echo "@%:@define X_DISPLAY_MISSING 1" >>confdefs.h
+
+ X_CFLAGS= X_PRE_LIBS= X_LIBS= X_EXTRA_LIBS=
+else
+ if test -n "$x_includes"; then
+ X_CFLAGS="$X_CFLAGS -I$x_includes"
+ fi
+
+ # It would also be nice to do this for all -L options, not just this one.
+ if test -n "$x_libraries"; then
+ X_LIBS="$X_LIBS -L$x_libraries"
+ # For Solaris; some versions of Sun CC require a space after -R and
+ # others require no space. Words are not sufficient . . . .
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -R must be followed by a space" >&5
+$as_echo_n "checking whether -R must be followed by a space... " >&6; }
+ ac_xsave_LIBS=$LIBS; LIBS="$LIBS -R$x_libraries"
+ ac_xsave_c_werror_flag=$ac_c_werror_flag
+ ac_c_werror_flag=yes
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ X_LIBS="$X_LIBS -R$x_libraries"
+else
+ LIBS="$ac_xsave_LIBS -R $x_libraries"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ X_LIBS="$X_LIBS -R $x_libraries"
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: neither works" >&5
+$as_echo "neither works" >&6; }
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ ac_c_werror_flag=$ac_xsave_c_werror_flag
+ LIBS=$ac_xsave_LIBS
+ fi
+
+ # Check for system-dependent libraries X programs must link with.
+ # Do this before checking for the system-independent R6 libraries
+ # (-lICE), since we may need -lsocket or whatever for X linking.
+
+ if test "$ISC" = yes; then
+ X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl_s -linet"
+ else
+ # Martyn Johnson says this is needed for Ultrix, if the X
+ # libraries were built with DECnet support. And Karl Berry says
+ # the Alpha needs dnet_stub (dnet does not exist).
+ ac_xsave_LIBS="$LIBS"; LIBS="$LIBS $X_LIBS -lX11"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char XOpenDisplay ();
+int
+main ()
+{
+return XOpenDisplay ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dnet_ntoa in -ldnet" >&5
+$as_echo_n "checking for dnet_ntoa in -ldnet... " >&6; }
+if test "${ac_cv_lib_dnet_dnet_ntoa+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldnet $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dnet_ntoa ();
+int
+main ()
+{
+return dnet_ntoa ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_dnet_dnet_ntoa=yes
+else
+ ac_cv_lib_dnet_dnet_ntoa=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dnet_dnet_ntoa" >&5
+$as_echo "$ac_cv_lib_dnet_dnet_ntoa" >&6; }
+if test "x$ac_cv_lib_dnet_dnet_ntoa" = x""yes; then :
+ X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet"
+fi
+
+ if test $ac_cv_lib_dnet_dnet_ntoa = no; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dnet_ntoa in -ldnet_stub" >&5
+$as_echo_n "checking for dnet_ntoa in -ldnet_stub... " >&6; }
+if test "${ac_cv_lib_dnet_stub_dnet_ntoa+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldnet_stub $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dnet_ntoa ();
+int
+main ()
+{
+return dnet_ntoa ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_dnet_stub_dnet_ntoa=yes
+else
+ ac_cv_lib_dnet_stub_dnet_ntoa=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dnet_stub_dnet_ntoa" >&5
+$as_echo "$ac_cv_lib_dnet_stub_dnet_ntoa" >&6; }
+if test "x$ac_cv_lib_dnet_stub_dnet_ntoa" = x""yes; then :
+ X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet_stub"
+fi
+
+ fi
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ LIBS="$ac_xsave_LIBS"
+
+ # msh@cis.ufl.edu says -lnsl (and -lsocket) are needed for his 386/AT,
+ # to get the SysV transport functions.
+ # Chad R. Larson says the Pyramis MIS-ES running DC/OSx (SVR4)
+ # needs -lnsl.
+ # The nsl library prevents programs from opening the X display
+ # on Irix 5.2, according to T.E. Dickey.
+ # The functions gethostbyname, getservbyname, and inet_addr are
+ # in -lbsd on LynxOS 3.0.1/i386, according to Lars Hecking.
+ ac_fn_c_check_func "$LINENO" "gethostbyname" "ac_cv_func_gethostbyname"
+if test "x$ac_cv_func_gethostbyname" = x""yes; then :
+
+fi
+
+ if test $ac_cv_func_gethostbyname = no; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostbyname in -lnsl" >&5
+$as_echo_n "checking for gethostbyname in -lnsl... " >&6; }
+if test "${ac_cv_lib_nsl_gethostbyname+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lnsl $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char gethostbyname ();
+int
+main ()
+{
+return gethostbyname ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_nsl_gethostbyname=yes
+else
+ ac_cv_lib_nsl_gethostbyname=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_nsl_gethostbyname" >&5
+$as_echo "$ac_cv_lib_nsl_gethostbyname" >&6; }
+if test "x$ac_cv_lib_nsl_gethostbyname" = x""yes; then :
+ X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl"
+fi
+
+ if test $ac_cv_lib_nsl_gethostbyname = no; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostbyname in -lbsd" >&5
+$as_echo_n "checking for gethostbyname in -lbsd... " >&6; }
+if test "${ac_cv_lib_bsd_gethostbyname+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lbsd $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char gethostbyname ();
+int
+main ()
+{
+return gethostbyname ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_bsd_gethostbyname=yes
+else
+ ac_cv_lib_bsd_gethostbyname=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_bsd_gethostbyname" >&5
+$as_echo "$ac_cv_lib_bsd_gethostbyname" >&6; }
+if test "x$ac_cv_lib_bsd_gethostbyname" = x""yes; then :
+ X_EXTRA_LIBS="$X_EXTRA_LIBS -lbsd"
+fi
+
+ fi
+ fi
+
+ # lieder@skyler.mavd.honeywell.com says without -lsocket,
+ # socket/setsockopt and other routines are undefined under SCO ODT
+ # 2.0. But -lsocket is broken on IRIX 5.2 (and is not necessary
+ # on later versions), says Simon Leinen: it contains gethostby*
+ # variants that don't use the name server (or something). -lsocket
+ # must be given before -lnsl if both are needed. We assume that
+ # if connect needs -lnsl, so does gethostbyname.
+ ac_fn_c_check_func "$LINENO" "connect" "ac_cv_func_connect"
+if test "x$ac_cv_func_connect" = x""yes; then :
+
+fi
+
+ if test $ac_cv_func_connect = no; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for connect in -lsocket" >&5
+$as_echo_n "checking for connect in -lsocket... " >&6; }
+if test "${ac_cv_lib_socket_connect+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lsocket $X_EXTRA_LIBS $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char connect ();
+int
+main ()
+{
+return connect ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_socket_connect=yes
+else
+ ac_cv_lib_socket_connect=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_socket_connect" >&5
+$as_echo "$ac_cv_lib_socket_connect" >&6; }
+if test "x$ac_cv_lib_socket_connect" = x""yes; then :
+ X_EXTRA_LIBS="-lsocket $X_EXTRA_LIBS"
+fi
+
+ fi
+
+ # Guillermo Gomez says -lposix is necessary on A/UX.
+ ac_fn_c_check_func "$LINENO" "remove" "ac_cv_func_remove"
+if test "x$ac_cv_func_remove" = x""yes; then :
+
+fi
+
+ if test $ac_cv_func_remove = no; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for remove in -lposix" >&5
+$as_echo_n "checking for remove in -lposix... " >&6; }
+if test "${ac_cv_lib_posix_remove+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lposix $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char remove ();
+int
+main ()
+{
+return remove ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_posix_remove=yes
+else
+ ac_cv_lib_posix_remove=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_posix_remove" >&5
+$as_echo "$ac_cv_lib_posix_remove" >&6; }
+if test "x$ac_cv_lib_posix_remove" = x""yes; then :
+ X_EXTRA_LIBS="$X_EXTRA_LIBS -lposix"
+fi
+
+ fi
+
+ # BSDI BSD/OS 2.1 needs -lipc for XOpenDisplay.
+ ac_fn_c_check_func "$LINENO" "shmat" "ac_cv_func_shmat"
+if test "x$ac_cv_func_shmat" = x""yes; then :
+
+fi
+
+ if test $ac_cv_func_shmat = no; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shmat in -lipc" >&5
+$as_echo_n "checking for shmat in -lipc... " >&6; }
+if test "${ac_cv_lib_ipc_shmat+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lipc $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char shmat ();
+int
+main ()
+{
+return shmat ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_ipc_shmat=yes
+else
+ ac_cv_lib_ipc_shmat=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ipc_shmat" >&5
+$as_echo "$ac_cv_lib_ipc_shmat" >&6; }
+if test "x$ac_cv_lib_ipc_shmat" = x""yes; then :
+ X_EXTRA_LIBS="$X_EXTRA_LIBS -lipc"
+fi
+
+ fi
+ fi
+
+ # Check for libraries that X11R6 Xt/Xaw programs need.
+ ac_save_LDFLAGS=$LDFLAGS
+ test -n "$x_libraries" && LDFLAGS="$LDFLAGS -L$x_libraries"
+ # SM needs ICE to (dynamically) link under SunOS 4.x (so we have to
+ # check for ICE first), but we must link in the order -lSM -lICE or
+ # we get undefined symbols. So assume we have SM if we have ICE.
+ # These have to be linked with before -lX11, unlike the other
+ # libraries we check for below, so use a different variable.
+ # John Interrante, Karl Berry
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IceConnectionNumber in -lICE" >&5
+$as_echo_n "checking for IceConnectionNumber in -lICE... " >&6; }
+if test "${ac_cv_lib_ICE_IceConnectionNumber+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lICE $X_EXTRA_LIBS $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char IceConnectionNumber ();
+int
+main ()
+{
+return IceConnectionNumber ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_ICE_IceConnectionNumber=yes
+else
+ ac_cv_lib_ICE_IceConnectionNumber=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ICE_IceConnectionNumber" >&5
+$as_echo "$ac_cv_lib_ICE_IceConnectionNumber" >&6; }
+if test "x$ac_cv_lib_ICE_IceConnectionNumber" = x""yes; then :
+ X_PRE_LIBS="$X_PRE_LIBS -lSM -lICE"
+fi
+
+ LDFLAGS=$ac_save_LDFLAGS
+
+fi
+
+QT_LIBS="-Wl,-rpath,$QTDIR/lib -L$QTDIR/lib -lQtGui -lQtOpenGL -lQtCore -lQt3Support $X_LIBS -lX11 -lXext -lXmu -lXt -lXi $X_EXTRA_LIBS -lGLU -lGL -lpthread"
+QTDIR_INC="-I$QTDIR/include -I$QTDIR/include/QtGui -I$QTDIR/include/QtCore -I$QTDIR/include/Qt3Support $X_CFLAGS -DQT_OPENGL_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED"
+QTDIR_BIN="$QTDIR/bin"
+
+
+############
+### ALSA ###
+############
+alsa_save_CFLAGS="$CFLAGS"
+alsa_save_LDFLAGS="$LDFLAGS"
+alsa_save_LIBS="$LIBS"
+alsa_found=yes
+
+
+@%:@ Check whether --with-alsa-prefix was given.
+if test "${with_alsa_prefix+set}" = set; then :
+ withval=$with_alsa_prefix; alsa_prefix="$withval"
+else
+ alsa_prefix=""
+fi
+
+
+
+@%:@ Check whether --with-alsa-inc-prefix was given.
+if test "${with_alsa_inc_prefix+set}" = set; then :
+ withval=$with_alsa_inc_prefix; alsa_inc_prefix="$withval"
+else
+ alsa_inc_prefix=""
+fi
+
+
+@%:@ Check whether --enable-alsatest was given.
+if test "${enable_alsatest+set}" = set; then :
+ enableval=$enable_alsatest; enable_alsatest=no
+else
+ enable_alsatest=yes
+fi
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ALSA CFLAGS" >&5
+$as_echo_n "checking for ALSA CFLAGS... " >&6; }
+if test "$alsa_inc_prefix" != "" ; then
+ ALSA_CFLAGS="$ALSA_CFLAGS -I$alsa_inc_prefix"
+ CFLAGS="$CFLAGS -I$alsa_inc_prefix"
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ALSA_CFLAGS" >&5
+$as_echo "$ALSA_CFLAGS" >&6; }
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ALSA LDFLAGS" >&5
+$as_echo_n "checking for ALSA LDFLAGS... " >&6; }
+if test "$alsa_prefix" != "" ; then
+ ALSA_LIBS="$ALSA_LIBS -L$alsa_prefix"
+ LDFLAGS="$LDFLAGS $ALSA_LIBS"
+fi
+
+ALSA_LIBS="$ALSA_LIBS -lasound -lm -ldl"
+LIBS=`echo $LIBS | sed 's/-lm//'`
+LIBS=`echo $LIBS | sed 's/-ldl//'`
+LIBS=`echo $LIBS | sed 's/ //'`
+LIBS="$ALSA_LIBS $LIBS"
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ALSA_LIBS" >&5
+$as_echo "$ALSA_LIBS" >&6; }
+
+min_alsa_version=0.9.0
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for libasound headers version >= $min_alsa_version" >&5
+$as_echo_n "checking for libasound headers version >= $min_alsa_version... " >&6; }
+no_alsa=""
+ alsa_min_major_version=`echo $min_alsa_version | \
+ sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\1/'`
+ alsa_min_minor_version=`echo $min_alsa_version | \
+ sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\2/'`
+ alsa_min_micro_version=`echo $min_alsa_version | \
+ sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\3/'`
+
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <alsa/asoundlib.h>
+
+int
+main ()
+{
+
+void main(void)
+{
+/* ensure backward compatibility */
+#if !defined(SND_LIB_MAJOR) && defined(SOUNDLIB_VERSION_MAJOR)
+#define SND_LIB_MAJOR SOUNDLIB_VERSION_MAJOR
+#endif
+#if !defined(SND_LIB_MINOR) && defined(SOUNDLIB_VERSION_MINOR)
+#define SND_LIB_MINOR SOUNDLIB_VERSION_MINOR
+#endif
+#if !defined(SND_LIB_SUBMINOR) && defined(SOUNDLIB_VERSION_SUBMINOR)
+#define SND_LIB_SUBMINOR SOUNDLIB_VERSION_SUBMINOR
+#endif
+
+# if(SND_LIB_MAJOR > $alsa_min_major_version)
+ exit(0);
+# else
+# if(SND_LIB_MAJOR < $alsa_min_major_version)
+# error not present
+# endif
+
+# if(SND_LIB_MINOR > $alsa_min_minor_version)
+ exit(0);
+# else
+# if(SND_LIB_MINOR < $alsa_min_minor_version)
+# error not present
+# endif
+
+# if(SND_LIB_SUBMINOR < $alsa_min_micro_version)
+# error not present
+# endif
+# endif
+# endif
+exit(0);
+}
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: found." >&5
+$as_echo "found." >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not present." >&5
+$as_echo "not present." >&6; }
+
+ alsa_found=no
+
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+
+ac_ext=cpp
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for snd_seq_create_event in -lasound" >&5
+$as_echo_n "checking for snd_seq_create_event in -lasound... " >&6; }
+if test "${ac_cv_lib_asound_snd_seq_create_event+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lasound $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char snd_seq_create_event ();
+int
+main ()
+{
+return snd_seq_create_event ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_link "$LINENO"; then :
+ ac_cv_lib_asound_snd_seq_create_event=yes
+else
+ ac_cv_lib_asound_snd_seq_create_event=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_asound_snd_seq_create_event" >&5
+$as_echo "$ac_cv_lib_asound_snd_seq_create_event" >&6; }
+if test "x$ac_cv_lib_asound_snd_seq_create_event" = x""yes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_LIBASOUND 1
+_ACEOF
+
+ LIBS="-lasound $LIBS"
+
+else
+
+ alsa_found=no
+
+fi
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+if test "x$alsa_found" = "xyes" ; then
+ true
+ LIBS=`echo $LIBS | sed 's/-lasound//g'`
+ LIBS=`echo $LIBS | sed 's/ //'`
+ LIBS="-lasound $LIBS"
+fi
+if test "x$alsa_found" = "xno" ; then
+ as_fn_error "latest alsa (0.9.x) is required" "$LINENO" 5
+
+ CFLAGS="$alsa_save_CFLAGS"
+ LDFLAGS="$alsa_save_LDFLAGS"
+ LIBS="$alsa_save_LIBS"
+ ALSA_CFLAGS=""
+ ALSA_LIBS=""
+fi
+
+
+
+
+
+#################
+### fluidsynth ###
+#################
+LIBFLUIDSYNTH=
+muse_enable_fluidlib="yes"
+synth_fluidsynth="fluidsynth"
+synth_fluid="fluid"
+@%:@ Check whether --enable-fluidsynth was given.
+if test "${enable_fluidsynth+set}" = set; then :
+ enableval=$enable_fluidsynth;
+ case "$enableval" in
+ "yes")
+ synth_fluidsynth="fluidsynth"
+ synth_fluid="fluid"
+ ;;
+ "no")
+ muse_enable_fluidlib="no"
+ synth_fluidsynth=""
+ synth_fluid=""
+ ;;
+ *)
+ as_fn_error "must use --enable-fluidsynth(=yes/no) or --disable-fluidsynth" "$LINENO" 5
+ ;;
+ esac
+
+fi
+
+
+ if test "$muse_enable_fluidlib" = "yes"; then
+ ENABLEFLUIDSYNTH_TRUE=
+ ENABLEFLUIDSYNTH_FALSE='#'
+else
+ ENABLEFLUIDSYNTH_TRUE='#'
+ ENABLEFLUIDSYNTH_FALSE=
+fi
+
+
+
+if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
+set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_PKG_CONFIG+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $PKG_CONFIG in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+PKG_CONFIG=$ac_cv_path_PKG_CONFIG
+if test -n "$PKG_CONFIG"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5
+$as_echo "$PKG_CONFIG" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_path_PKG_CONFIG"; then
+ ac_pt_PKG_CONFIG=$PKG_CONFIG
+ # Extract the first word of "pkg-config", so it can be a program name with args.
+set dummy pkg-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $ac_pt_PKG_CONFIG in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
+if test -n "$ac_pt_PKG_CONFIG"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5
+$as_echo "$ac_pt_PKG_CONFIG" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_pt_PKG_CONFIG" = x; then
+ PKG_CONFIG=""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ PKG_CONFIG=$ac_pt_PKG_CONFIG
+ fi
+else
+ PKG_CONFIG="$ac_cv_path_PKG_CONFIG"
+fi
+
+fi
+if test -n "$PKG_CONFIG"; then
+ _pkg_min_version=0.9.0
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5
+$as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; }
+ if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ PKG_CONFIG=""
+ fi
+
+fi
+
+pkg_failed=no
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for Fluidsynth" >&5
+$as_echo_n "checking for Fluidsynth... " >&6; }
+
+if test -n "$PKG_CONFIG"; then
+ if test -n "$Fluidsynth_CFLAGS"; then
+ pkg_cv_Fluidsynth_CFLAGS="$Fluidsynth_CFLAGS"
+ else
+ if test -n "$PKG_CONFIG" && \
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"fluidsynth\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "fluidsynth") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ pkg_cv_Fluidsynth_CFLAGS=`$PKG_CONFIG --cflags "fluidsynth" 2>/dev/null`
+else
+ pkg_failed=yes
+fi
+ fi
+else
+ pkg_failed=untried
+fi
+if test -n "$PKG_CONFIG"; then
+ if test -n "$Fluidsynth_LIBS"; then
+ pkg_cv_Fluidsynth_LIBS="$Fluidsynth_LIBS"
+ else
+ if test -n "$PKG_CONFIG" && \
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"fluidsynth\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "fluidsynth") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ pkg_cv_Fluidsynth_LIBS=`$PKG_CONFIG --libs "fluidsynth" 2>/dev/null`
+else
+ pkg_failed=yes
+fi
+ fi
+else
+ pkg_failed=untried
+fi
+
+
+
+if test $pkg_failed = yes; then
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+ _pkg_short_errors_supported=yes
+else
+ _pkg_short_errors_supported=no
+fi
+ if test $_pkg_short_errors_supported = yes; then
+ Fluidsynth_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "fluidsynth"`
+ else
+ Fluidsynth_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "fluidsynth"`
+ fi
+ # Put the nasty error message in config.log where it belongs
+ echo "$Fluidsynth_PKG_ERRORS" >&5
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libfluidsynth not found; disabling fluidsynth plugins" >&5
+$as_echo "$as_me: WARNING: libfluidsynth not found; disabling fluidsynth plugins" >&2;} ;
+ muse_enable_fluidlib="no"
+
+elif test $pkg_failed = untried; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libfluidsynth not found; disabling fluidsynth plugins" >&5
+$as_echo "$as_me: WARNING: libfluidsynth not found; disabling fluidsynth plugins" >&2;} ;
+ muse_enable_fluidlib="no"
+
+else
+ Fluidsynth_CFLAGS=$pkg_cv_Fluidsynth_CFLAGS
+ Fluidsynth_LIBS=$pkg_cv_Fluidsynth_LIBS
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ FLUIDSYNTHDIRS="fluid fluidsynth";
+$as_echo "@%:@define ENABLEFLUIDSYNTH 1" >>confdefs.h
+
+fi
+
+
+
+if test "$muse_enable_fluidlib" = "no"; then
+ synth_fluidsynth=""
+ synth_fluid=""
+fi
+
+
+###############
+### sndfile ###
+###############
+
+pkg_failed=no
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for SNDFILE" >&5
+$as_echo_n "checking for SNDFILE... " >&6; }
+
+if test -n "$PKG_CONFIG"; then
+ if test -n "$SNDFILE_CFLAGS"; then
+ pkg_cv_SNDFILE_CFLAGS="$SNDFILE_CFLAGS"
+ else
+ if test -n "$PKG_CONFIG" && \
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"sndfile >= 1.0.0\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "sndfile >= 1.0.0") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ pkg_cv_SNDFILE_CFLAGS=`$PKG_CONFIG --cflags "sndfile >= 1.0.0" 2>/dev/null`
+else
+ pkg_failed=yes
+fi
+ fi
+else
+ pkg_failed=untried
+fi
+if test -n "$PKG_CONFIG"; then
+ if test -n "$SNDFILE_LIBS"; then
+ pkg_cv_SNDFILE_LIBS="$SNDFILE_LIBS"
+ else
+ if test -n "$PKG_CONFIG" && \
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"sndfile >= 1.0.0\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "sndfile >= 1.0.0") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ pkg_cv_SNDFILE_LIBS=`$PKG_CONFIG --libs "sndfile >= 1.0.0" 2>/dev/null`
+else
+ pkg_failed=yes
+fi
+ fi
+else
+ pkg_failed=untried
+fi
+
+
+
+if test $pkg_failed = yes; then
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+ _pkg_short_errors_supported=yes
+else
+ _pkg_short_errors_supported=no
+fi
+ if test $_pkg_short_errors_supported = yes; then
+ SNDFILE_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "sndfile >= 1.0.0"`
+ else
+ SNDFILE_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "sndfile >= 1.0.0"`
+ fi
+ # Put the nasty error message in config.log where it belongs
+ echo "$SNDFILE_PKG_ERRORS" >&5
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ as_fn_error "need libsndfile >= 1.0.0" "$LINENO" 5
+
+elif test $pkg_failed = untried; then
+ as_fn_error "need libsndfile >= 1.0.0" "$LINENO" 5
+
+else
+ SNDFILE_CFLAGS=$pkg_cv_SNDFILE_CFLAGS
+ SNDFILE_LIBS=$pkg_cv_SNDFILE_LIBS
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ true
+fi
+
+###############
+### libsamplerate ###
+###############
+
+pkg_failed=no
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for SAMPLERATE" >&5
+$as_echo_n "checking for SAMPLERATE... " >&6; }
+
+if test -n "$PKG_CONFIG"; then
+ if test -n "$SAMPLERATE_CFLAGS"; then
+ pkg_cv_SAMPLERATE_CFLAGS="$SAMPLERATE_CFLAGS"
+ else
+ if test -n "$PKG_CONFIG" && \
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"samplerate >= 0.1.0\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "samplerate >= 0.1.0") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ pkg_cv_SAMPLERATE_CFLAGS=`$PKG_CONFIG --cflags "samplerate >= 0.1.0" 2>/dev/null`
+else
+ pkg_failed=yes
+fi
+ fi
+else
+ pkg_failed=untried
+fi
+if test -n "$PKG_CONFIG"; then
+ if test -n "$SAMPLERATE_LIBS"; then
+ pkg_cv_SAMPLERATE_LIBS="$SAMPLERATE_LIBS"
+ else
+ if test -n "$PKG_CONFIG" && \
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"samplerate >= 0.1.0\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "samplerate >= 0.1.0") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ pkg_cv_SAMPLERATE_LIBS=`$PKG_CONFIG --libs "samplerate >= 0.1.0" 2>/dev/null`
+else
+ pkg_failed=yes
+fi
+ fi
+else
+ pkg_failed=untried
+fi
+
+
+
+if test $pkg_failed = yes; then
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+ _pkg_short_errors_supported=yes
+else
+ _pkg_short_errors_supported=no
+fi
+ if test $_pkg_short_errors_supported = yes; then
+ SAMPLERATE_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "samplerate >= 0.1.0"`
+ else
+ SAMPLERATE_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "samplerate >= 0.1.0"`
+ fi
+ # Put the nasty error message in config.log where it belongs
+ echo "$SAMPLERATE_PKG_ERRORS" >&5
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ as_fn_error "need libsamplerate" "$LINENO" 5
+
+elif test $pkg_failed = untried; then
+ as_fn_error "need libsamplerate" "$LINENO" 5
+
+else
+ SAMPLERATE_CFLAGS=$pkg_cv_SAMPLERATE_CFLAGS
+ SAMPLERATE_LIBS=$pkg_cv_SAMPLERATE_LIBS
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ true
+fi
+
+###############
+### libuuid ###
+###############
+ac_fn_c_check_header_mongrel "$LINENO" "uuid/uuid.h" "ac_cv_header_uuid_uuid_h" "$ac_includes_default"
+if test "x$ac_cv_header_uuid_uuid_h" = x""yes; then :
+ UUID_FOUND="yes"
+else
+ UUID_FOUND="no"
+fi
+
+
+if test x$UUID_FOUND = xno; then
+ as_fn_error "Header file uuid.h, from the uuid-dev (sometimes in e2fsprogs) package, is required" "$LINENO" 5
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for uuid_generate in -luuid" >&5
+$as_echo_n "checking for uuid_generate in -luuid... " >&6; }
+if test "${ac_cv_lib_uuid_uuid_generate+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-luuid $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char uuid_generate ();
+int
+main ()
+{
+return uuid_generate ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_uuid_uuid_generate=yes
+else
+ ac_cv_lib_uuid_uuid_generate=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_uuid_uuid_generate" >&5
+$as_echo "$ac_cv_lib_uuid_uuid_generate" >&6; }
+if test "x$ac_cv_lib_uuid_uuid_generate" = x""yes; then :
+ UUID_FOUND="yes"
+else
+ UUID_FOUND="no"
+fi
+
+if test x$UUID_FOUND = xno; then
+ as_fn_error "libuuid (sometimes in e2fsprogs package) is required" "$LINENO" 5
+fi
+UUID_LIBS="-luuid"
+
+
+
+## PKG_CHECK_MODULES(UUID, uuid >= 1.0,
+## true,
+## AC_MSG_ERROR([need libuuid >= 1.0 from e2fsprogs package])
+## )
+
+############
+### JACK ###
+############
+
+
+pkg_failed=no
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for JACK" >&5
+$as_echo_n "checking for JACK... " >&6; }
+
+if test -n "$PKG_CONFIG"; then
+ if test -n "$JACK_CFLAGS"; then
+ pkg_cv_JACK_CFLAGS="$JACK_CFLAGS"
+ else
+ if test -n "$PKG_CONFIG" && \
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"jack >= 0.98.0\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "jack >= 0.98.0") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ pkg_cv_JACK_CFLAGS=`$PKG_CONFIG --cflags "jack >= 0.98.0" 2>/dev/null`
+else
+ pkg_failed=yes
+fi
+ fi
+else
+ pkg_failed=untried
+fi
+if test -n "$PKG_CONFIG"; then
+ if test -n "$JACK_LIBS"; then
+ pkg_cv_JACK_LIBS="$JACK_LIBS"
+ else
+ if test -n "$PKG_CONFIG" && \
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"jack >= 0.98.0\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "jack >= 0.98.0") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ pkg_cv_JACK_LIBS=`$PKG_CONFIG --libs "jack >= 0.98.0" 2>/dev/null`
+else
+ pkg_failed=yes
+fi
+ fi
+else
+ pkg_failed=untried
+fi
+
+
+
+if test $pkg_failed = yes; then
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+ _pkg_short_errors_supported=yes
+else
+ _pkg_short_errors_supported=no
+fi
+ if test $_pkg_short_errors_supported = yes; then
+ JACK_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "jack >= 0.98.0"`
+ else
+ JACK_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "jack >= 0.98.0"`
+ fi
+ # Put the nasty error message in config.log where it belongs
+ echo "$JACK_PKG_ERRORS" >&5
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ as_fn_error "need JACK >= 0.98.0" "$LINENO" 5
+
+elif test $pkg_failed = untried; then
+ as_fn_error "need JACK >= 0.98.0" "$LINENO" 5
+
+else
+ JACK_CFLAGS=$pkg_cv_JACK_CFLAGS
+ JACK_LIBS=$pkg_cv_JACK_LIBS
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ true
+fi
+
+##############
+### LASH ###
+##############
+muse_enable_lash="no"
+@%:@ Check whether --enable-lash was given.
+if test "${enable_lash+set}" = set; then :
+ enableval=$enable_lash;
+ case "$enableval" in
+ "yes")
+ muse_enable_lash="yes"
+ ;;
+ "no")
+ muse_enable_lash="no"
+ ;;
+ *)
+ as_fn_error "must use --enable-lash(=yes/no) or --disable-lash" "$LINENO" 5
+ ;;
+ esac
+
+fi
+
+
+if test "$muse_enable_lash" = "yes"; then
+
+pkg_failed=no
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for LASH" >&5
+$as_echo_n "checking for LASH... " >&6; }
+
+if test -n "$PKG_CONFIG"; then
+ if test -n "$LASH_CFLAGS"; then
+ pkg_cv_LASH_CFLAGS="$LASH_CFLAGS"
+ else
+ if test -n "$PKG_CONFIG" && \
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"lash-1.0 >= 0.2\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "lash-1.0 >= 0.2") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ pkg_cv_LASH_CFLAGS=`$PKG_CONFIG --cflags "lash-1.0 >= 0.2" 2>/dev/null`
+else
+ pkg_failed=yes
+fi
+ fi
+else
+ pkg_failed=untried
+fi
+if test -n "$PKG_CONFIG"; then
+ if test -n "$LASH_LIBS"; then
+ pkg_cv_LASH_LIBS="$LASH_LIBS"
+ else
+ if test -n "$PKG_CONFIG" && \
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"lash-1.0 >= 0.2\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "lash-1.0 >= 0.2") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ pkg_cv_LASH_LIBS=`$PKG_CONFIG --libs "lash-1.0 >= 0.2" 2>/dev/null`
+else
+ pkg_failed=yes
+fi
+ fi
+else
+ pkg_failed=untried
+fi
+
+
+
+if test $pkg_failed = yes; then
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+ _pkg_short_errors_supported=yes
+else
+ _pkg_short_errors_supported=no
+fi
+ if test $_pkg_short_errors_supported = yes; then
+ LASH_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "lash-1.0 >= 0.2"`
+ else
+ LASH_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "lash-1.0 >= 0.2"`
+ fi
+ # Put the nasty error message in config.log where it belongs
+ echo "$LASH_PKG_ERRORS" >&5
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ LASH_FOUND="no"
+elif test $pkg_failed = untried; then
+ LASH_FOUND="no"
+else
+ LASH_CFLAGS=$pkg_cv_LASH_CFLAGS
+ LASH_LIBS=$pkg_cv_LASH_LIBS
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ LASH_FOUND="yes"
+fi
+
+
+
+ if test "$LASH_FOUND" = "yes"; then
+
+$as_echo "@%:@define HAVE_LASH 1" >>confdefs.h
+
+ LASH_VERSION=$( pkg-config --modversion lash-1.0 )
+
+cat >>confdefs.h <<_ACEOF
+@%:@define LASH_VERSION "$LASH_VERSION"
+_ACEOF
+
+ fi
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: LASH support is disabled" >&5
+$as_echo "$as_me: WARNING: LASH support is disabled" >&2;}
+ LASH_FOUND="no"
+fi
+ if test "$LASH_FOUND" = "yes"; then
+ HAVE_LASH_TRUE=
+ HAVE_LASH_FALSE='#'
+else
+ HAVE_LASH_TRUE='#'
+ HAVE_LASH_FALSE=
+fi
+
+
+
+
+
+#################
+### givertcap ###
+#################
+
+GIVERTCAP=
+report_rtcap="no"
+@%:@ Check whether --enable-rtcap was given.
+if test "${enable_rtcap+set}" = set; then :
+ enableval=$enable_rtcap;
+ case "$enableval" in
+ "yes")
+
+$as_echo "@%:@define RTCAP 1" >>confdefs.h
+
+ MUSECXXFLAGS="$MUSECXXFLAGS -DRTCAP"
+ GIVERTCAP="givertcap"
+
+ ac_fn_c_check_header_mongrel "$LINENO" "sys/capability.h" "ac_cv_header_sys_capability_h" "$ac_includes_default"
+if test "x$ac_cv_header_sys_capability_h" = x""yes; then :
+ report_rtcap="yes"
+else
+ as_fn_error "Missing sys/capability.h" "$LINENO" 5
+fi
+
+
+ ;;
+ "no")
+ ;;
+ *)
+ as_fn_error "must use --enable-rtcap(=yes/no) or --disable-rtcap" "$LINENO" 5
+ esac
+
+fi
+
+ if test "$report_rtcap" = "yes"; then
+ RTCAP_TRUE=
+ RTCAP_FALSE='#'
+else
+ RTCAP_TRUE='#'
+ RTCAP_FALSE=
+fi
+
+
+
+
+####################
+### suid-install ###
+####################
+
+SUIDINSTALL="no"
+@%:@ Check whether --enable-suid-install was given.
+if test "${enable_suid_install+set}" = set; then :
+ enableval=$enable_suid_install;
+ case "$enableval" in
+ "yes")
+ SUIDINSTALL="yes"
+ ;;
+ "no")
+ ;;
+ *)
+ as_fn_error "must use --enable-suid-install(=yes/no) or --disable-suid-install" "$LINENO" 5
+ ;;
+ esac
+
+fi
+
+
+
+##################
+### suid-build ###
+##################
+SUIDBUILD="no"
+@%:@ Check whether --enable-suid-build was given.
+if test "${enable_suid_build+set}" = set; then :
+ enableval=$enable_suid_build;
+ case "$enableval" in
+ "yes")
+ SUIDBUILD="yes"
+ ;;
+ "no")
+ SUIDBUILD="no"
+ ;;
+ *)
+ as_fn_error "must use --enable-suid-build(=yes/no) or --disable-suid-build" "$LINENO" 5
+ ;;
+ esac
+
+fi
+
+
+
+
+########################
+### doxygen-treeview ###
+########################
+DOXYGEN_TREEVIEW="YES"
+report_doxy_treeview="yes";
+@%:@ Check whether --enable-doxy-treeview was given.
+if test "${enable_doxy_treeview+set}" = set; then :
+ enableval=$enable_doxy_treeview;
+ case "$enableval" in
+ "yes")
+ ;;
+ "no")
+ DOXYGEN_TREEVIEW="NO"
+ report_doxy_treeview="no";
+ ;;
+ *)
+ as_fn_error "must use --enable-doxy-treeview(=yes/no) or --disable-doxy-treeview" "$LINENO" 5
+ ;;
+ esac
+
+fi
+
+
+
+################
+### patchbay ###
+################
+###PATCHBAY="no"
+###AC_SUBST(PATCHBAY)
+###AM_CONDITIONAL(PATCHBAY, test "$PATCHBAY" == "yes")
+
+## -DQT_NO_CAST_ASCII
+MUSECXXFLAGS="-g -fno-exceptions -Wall -W -D_GNU_SOURCE -D_REENTRANT \
+ -DQT_CLEAN_NAMESPACE -DQT_NO_COMPAT \
+ -I\$(top_srcdir) -I\$(top_srcdir)/muse/widgets \$(QT_CFLAGS)"
+
+#MUSEOPTCXXFLAGS="-O6 -fomit-frame-pointer -ffast-math -fstrength-reduce \
+#-funroll-loops"
+#MUSEOPTCXXFLAGS="-O2"
+MUSEOPTCXXFLAGS="-O3 -fomit-frame-pointer -ffast-math -fstrength-reduce -funroll-loops"
+
+# -fmove-all-movables
+
+################
+### optimize ###
+################
+report_optimise="no"
+@%:@ Check whether --enable-optimize was given.
+if test "${enable_optimize+set}" = set; then :
+ enableval=$enable_optimize;
+ case "$enableval" in
+ "yes")
+ report_optimise="yes"
+ CXXFLAGS="$( echo "$CXXFLAGS" | sed "s/-O. *//" )"
+ MUSECXXFLAGS="$MUSECXXFLAGS $MUSEOPTCXXFLAGS"
+ ;;
+ "no")
+ ;;
+ *)
+ as_fn_error "must use --enable-optimize(=yes/no) or --disable-optimize" "$LINENO" 5
+ ;;
+ esac
+
+fi
+
+
+#############
+### debug ###
+#############
+report_debug="no"
+@%:@ Check whether --enable-debug was given.
+if test "${enable_debug+set}" = set; then :
+ enableval=$enable_debug;
+ case "$enableval" in
+ "yes")
+ report_debug="yes"
+ CXXFLAGS=""
+ ;;
+ "no")
+ ;;
+ *)
+ as_fn_error "must use --enable-debug(=yes/no) or --disable-debug" "$LINENO" 5
+ ;;
+ esac
+
+fi
+
+
+###########################
+### PCH ###
+### precompiled headers ###
+###########################
+
+@%:@ Check whether --enable-pch was given.
+if test "${enable_pch+set}" = set; then :
+ enableval=$enable_pch;
+ case "$enableval" in
+ "yes")
+ MUSECXXFLAGS="$MUSECXXFLAGS -Winvalid-pch"
+ PCH="yes"
+
+
+$as_echo "@%:@define PCH 1" >>confdefs.h
+
+ ;;
+ "no")
+ ;;
+ *)
+ as_fn_error "must use --enable-pch(=yes/no) or --disable-pch" "$LINENO" 5
+ ;;
+ esac
+
+fi
+
+ if test "$PCH" = "yes"; then
+ PCH_TRUE=
+ PCH_FALSE='#'
+else
+ PCH_TRUE='#'
+ PCH_FALSE=
+fi
+
+
+############
+### arch ###
+############
+
+report_march="none"
+@%:@ Check whether --enable-arch was given.
+if test "${enable_arch+set}" = set; then :
+ enableval=$enable_arch;
+ case "$enableval" in
+ "no")
+ ;;
+ *)
+ report_march="$enableval"
+ MUSECXXFLAGS="$MUSECXXFLAGS -mtune=$enableval -march=$enableval"
+ ;;
+ esac
+
+fi
+
+
+###########################
+### SSE ###
+### SSE optimizations ###
+###########################
+
+report_sse="no"
+@%:@ Check whether --enable-sse was given.
+if test "${enable_sse+set}" = set; then :
+ enableval=$enable_sse;
+ case "$enableval" in
+ "yes")
+ ## MUSECXXFLAGS="$MUSECXXFLAGS -Winvalid-pch"
+ report_sse="yes"
+ USE_SSE="yes"
+
+
+$as_echo "@%:@define USE_SSE 1" >>confdefs.h
+
+ ;;
+ "no")
+ ;;
+ *)
+ as_fn_error "must use --enable-sse(=yes/no) or --disable-sse" "$LINENO" 5
+ ;;
+ esac
+
+fi
+
+ if test "$USE_SSE" = "yes"; then
+ USE_SSE_TRUE=
+ USE_SSE_FALSE='#'
+else
+ USE_SSE_TRUE='#'
+ USE_SSE_FALSE=
+fi
+
+
+##########
+# PYTHON #
+##########
+# python detection borrowed from libvirt (http://libvirt.org)
+
+@%:@ Check whether --with-python was given.
+if test "${with_python+set}" = set; then :
+ withval=$with_python;
+else
+ enable_python=yes
+fi
+
+
+PYTHON_VERSION=
+PYTHON_INCLUDES=
+if test "$enable_python" != "no" ; then
+ if test -x "$enable_python/bin/python"
+ then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Found python in $enable_python/bin/python" >&5
+$as_echo "$as_me: Found python in $enable_python/bin/python" >&6;}
+ PYTHON="$enable_python/bin/python"
+ enable_python=yes
+ else
+ if test -x "$enable_python"
+ then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Found python in $enable_python" >&5
+$as_echo "$as_me: Found python in $enable_python" >&6;}
+ PYTHON="$enable_python"
+ enable_python=yes
+ else
+ if test -x "$PYTHON"
+ then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Found python in environment PYTHON=$PYTHON" >&5
+$as_echo "$as_me: Found python in environment PYTHON=$PYTHON" >&6;}
+ enable_python=yes
+ fi
+ fi
+ fi
+
+ if test "$enable_python" == "yes" ; then
+
+
+
+
+ # Find any Python interpreter.
+ if test -z "$PYTHON"; then
+ for ac_prog in python python2 python3 python3.0 python2.5 python2.4 python2.3 python2.2 python2.1 python2.0
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_PYTHON+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $PYTHON in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_PYTHON="$PYTHON" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_path_PYTHON="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+PYTHON=$ac_cv_path_PYTHON
+if test -n "$PYTHON"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PYTHON" >&5
+$as_echo "$PYTHON" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$PYTHON" && break
+done
+test -n "$PYTHON" || PYTHON=":"
+
+ fi
+ am_display_PYTHON=python
+
+
+ if test "$PYTHON" = :; then
+ :
+ else
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $am_display_PYTHON version" >&5
+$as_echo_n "checking for $am_display_PYTHON version... " >&6; }
+if test "${am_cv_python_version+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ am_cv_python_version=`$PYTHON -c "import sys; sys.stdout.write(sys.version[:3])"`
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_python_version" >&5
+$as_echo "$am_cv_python_version" >&6; }
+ PYTHON_VERSION=$am_cv_python_version
+
+
+
+ PYTHON_PREFIX='${prefix}'
+
+ PYTHON_EXEC_PREFIX='${exec_prefix}'
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $am_display_PYTHON platform" >&5
+$as_echo_n "checking for $am_display_PYTHON platform... " >&6; }
+if test "${am_cv_python_platform+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ am_cv_python_platform=`$PYTHON -c "import sys; sys.stdout.write(sys.platform)"`
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_python_platform" >&5
+$as_echo "$am_cv_python_platform" >&6; }
+ PYTHON_PLATFORM=$am_cv_python_platform
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $am_display_PYTHON script directory" >&5
+$as_echo_n "checking for $am_display_PYTHON script directory... " >&6; }
+if test "${am_cv_python_pythondir+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "x$prefix" = xNONE
+ then
+ am_py_prefix=$ac_default_prefix
+ else
+ am_py_prefix=$prefix
+ fi
+ am_cv_python_pythondir=`$PYTHON -c "import sys; from distutils import sysconfig; sys.stdout.write(sysconfig.get_python_lib(0,0,prefix='$am_py_prefix'))" 2>/dev/null ||
+ echo "$PYTHON_PREFIX/lib/python$PYTHON_VERSION/site-packages"`
+ case $am_cv_python_pythondir in
+ $am_py_prefix*)
+ am__strip_prefix=`echo "$am_py_prefix" | sed 's|.|.|g'`
+ am_cv_python_pythondir=`echo "$am_cv_python_pythondir" | sed "s,^$am__strip_prefix,$PYTHON_PREFIX,"`
+ ;;
+ *)
+ case $am_py_prefix in
+ /usr|/System*) ;;
+ *)
+ am_cv_python_pythondir=$PYTHON_PREFIX/lib/python$PYTHON_VERSION/site-packages
+ ;;
+ esac
+ ;;
+ esac
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_python_pythondir" >&5
+$as_echo "$am_cv_python_pythondir" >&6; }
+ pythondir=$am_cv_python_pythondir
+
+
+
+ pkgpythondir=\${pythondir}/$PACKAGE
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $am_display_PYTHON extension module directory" >&5
+$as_echo_n "checking for $am_display_PYTHON extension module directory... " >&6; }
+if test "${am_cv_python_pyexecdir+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "x$exec_prefix" = xNONE
+ then
+ am_py_exec_prefix=$am_py_prefix
+ else
+ am_py_exec_prefix=$exec_prefix
+ fi
+ am_cv_python_pyexecdir=`$PYTHON -c "import sys; from distutils import sysconfig; sys.stdout.write(sysconfig.get_python_lib(1,0,prefix='$am_py_exec_prefix'))" 2>/dev/null ||
+ echo "$PYTHON_EXEC_PREFIX/lib/python$PYTHON_VERSION/site-packages"`
+ case $am_cv_python_pyexecdir in
+ $am_py_exec_prefix*)
+ am__strip_prefix=`echo "$am_py_exec_prefix" | sed 's|.|.|g'`
+ am_cv_python_pyexecdir=`echo "$am_cv_python_pyexecdir" | sed "s,^$am__strip_prefix,$PYTHON_EXEC_PREFIX,"`
+ ;;
+ *)
+ case $am_py_exec_prefix in
+ /usr|/System*) ;;
+ *)
+ am_cv_python_pyexecdir=$PYTHON_EXEC_PREFIX/lib/python$PYTHON_VERSION/site-packages
+ ;;
+ esac
+ ;;
+ esac
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_python_pyexecdir" >&5
+$as_echo "$am_cv_python_pyexecdir" >&6; }
+ pyexecdir=$am_cv_python_pyexecdir
+
+
+
+ pkgpyexecdir=\${pyexecdir}/$PACKAGE
+
+
+
+ fi
+
+
+
+ if test "$PYTHON" != : ; then
+ PYTHON_CONFIG="$PYTHON-config"
+
+ if test -x "$PYTHON_CONFIG"
+ then
+ PYTHON_INCLUDES=`$PYTHON_CONFIG --includes`
+ PYTHON_LIB=`$PYTHON_CONFIG --libs`
+ else
+ if test -r $PYTHON_EXEC_PREFIX/include/python$PYTHON_VERSION/Python.h
+ then
+ PYTHON_INCLUDES=-I$PYTHON_EXEC_PREFIX/include/python$PYTHON_VERSION
+ else
+ if test -r $prefix/include/python$PYTHON_VERSION/Python.h
+ then
+ PYTHON_INCLUDES=-I$prefix/include/python$PYTHON_VERSION
+ else
+ if test -r /usr/include/python$PYTHON_VERSION/Python.h
+ then
+ PYTHON_INCLUDES=-I/usr/include/python$PYTHON_VERSION
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Could not find python$PYTHON_VERSION/Python.h, disabling bindings" >&5
+$as_echo "$as_me: Could not find python$PYTHON_VERSION/Python.h, disabling bindings" >&6;}
+ enable_python=no
+ fi
+ fi
+ fi
+ fi
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Could not find python interpreter, disabling bindings" >&5
+$as_echo "$as_me: Could not find python interpreter, disabling bindings" >&6;}
+ enable_python=no
+ fi
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Could not find python in $enable_python, disabling bindings" >&5
+$as_echo "$as_me: Could not find python in $enable_python, disabling bindings" >&6;}
+ enable_python=no
+ fi
+fi
+ if test "$enable_python" = "yes"; then
+ ENABLE_PYTHON_TRUE=
+ ENABLE_PYTHON_FALSE='#'
+else
+ ENABLE_PYTHON_TRUE='#'
+ ENABLE_PYTHON_FALSE=
+fi
+
+
+
+
+
+#AC_ARG_ENABLE(python,
+#enable_python="yes"
+# [ --disable-python disable python bindings for MusE],[
+# case "$enableval" in
+# "no")
+# enable_python="no"
+# ;;
+# *)
+# AC_MSG_ERROR([must use --enable-python(=yes/no) or --disable-python])
+# ;;
+# esac
+# ])
+#
+#if test "$enable_python" = "yes"; then
+# AM_PATH_PYTHON
+# PYTHON_INCLUDE_DIR=""
+# if test -n "$PYTHON_INCLUDES" ; then
+# PYTHON_INCLUDE_DIR=$PYTHON_INCLUDES
+# python_bindings="yes"
+# else
+# python_bindings="no - devel pkg not found"
+# fi
+#fi
+#AM_CONDITIONAL(ENABLE_PYTHON, test "$python_bindings" = "yes")
+
+###################
+### vst plugins ###
+###################
+
+vst_possible=no
+VST="no"
+@%:@ Check whether --enable-vst was given.
+if test "${enable_vst+set}" = set; then :
+ enableval=$enable_vst; if test x$enable_vst = xyes ; then
+ vst_requested=yes;
+ fi
+
+
+fi
+
+
+if test x$vst_requested = xyes ; then
+
+pkg_failed=no
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for FST" >&5
+$as_echo_n "checking for FST... " >&6; }
+
+if test -n "$PKG_CONFIG"; then
+ if test -n "$FST_CFLAGS"; then
+ pkg_cv_FST_CFLAGS="$FST_CFLAGS"
+ else
+ if test -n "$PKG_CONFIG" && \
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libfst\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "libfst") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ pkg_cv_FST_CFLAGS=`$PKG_CONFIG --cflags "libfst" 2>/dev/null`
+else
+ pkg_failed=yes
+fi
+ fi
+else
+ pkg_failed=untried
+fi
+if test -n "$PKG_CONFIG"; then
+ if test -n "$FST_LIBS"; then
+ pkg_cv_FST_LIBS="$FST_LIBS"
+ else
+ if test -n "$PKG_CONFIG" && \
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libfst\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "libfst") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ pkg_cv_FST_LIBS=`$PKG_CONFIG --libs "libfst" 2>/dev/null`
+else
+ pkg_failed=yes
+fi
+ fi
+else
+ pkg_failed=untried
+fi
+
+
+
+if test $pkg_failed = yes; then
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+ _pkg_short_errors_supported=yes
+else
+ _pkg_short_errors_supported=no
+fi
+ if test $_pkg_short_errors_supported = yes; then
+ FST_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "libfst"`
+ else
+ FST_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "libfst"`
+ fi
+ # Put the nasty error message in config.log where it belongs
+ echo "$FST_PKG_ERRORS" >&5
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ vst_possible=no
+elif test $pkg_failed = untried; then
+ vst_possible=no
+else
+ FST_CFLAGS=$pkg_cv_FST_CFLAGS
+ FST_LIBS=$pkg_cv_FST_LIBS
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ vst_possible=yes
+fi
+fi
+
+if test x$vst_possible = xyes -a x$vst_requested = xyes ; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking support for VST/win plugins" >&5
+$as_echo_n "checking support for VST/win plugins... " >&6; }
+ VST_CFLAGS="$FST_CFLAGS"
+ VST_LIBS="$FST_LIBS"
+ VST="yes"
+
+$as_echo "@%:@define VST_SUPPORT 1" >>confdefs.h
+
+fi
+
+ if test x$vst_possible = xyes -a x$vst_requested = xyes; then
+ VST_SUPPORT_TRUE=
+ VST_SUPPORT_FALSE='#'
+else
+ VST_SUPPORT_TRUE='#'
+ VST_SUPPORT_FALSE=
+fi
+
+
+
+###################
+### OSC support ###
+###################
+
+osc_requested=no
+LO_LIB_FOUND="no"
+OSC="no"
+@%:@ Check whether --enable-osc was given.
+if test "${enable_osc+set}" = set; then :
+ enableval=$enable_osc; if test x$enable_osc = xyes ; then
+ osc_requested=yes;
+ fi
+
+
+fi
+
+
+if test x$osc_requested = xyes ; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking support for OSC" >&5
+$as_echo_n "checking support for OSC... " >&6; }
+## AC_CHECK_LIB(lo, lo_send, LO_LIB_FOUND="yes", LO_LIB_FOUND="no")
+## PKG_CHECK_MODULES(LO, lo >= 0.2, LO_LIB_FOUND="yes", LO_LIB_FOUND="no")
+
+pkg_failed=no
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for LO" >&5
+$as_echo_n "checking for LO... " >&6; }
+
+if test -n "$PKG_CONFIG"; then
+ if test -n "$LO_CFLAGS"; then
+ pkg_cv_LO_CFLAGS="$LO_CFLAGS"
+ else
+ if test -n "$PKG_CONFIG" && \
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"liblo\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "liblo") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ pkg_cv_LO_CFLAGS=`$PKG_CONFIG --cflags "liblo" 2>/dev/null`
+else
+ pkg_failed=yes
+fi
+ fi
+else
+ pkg_failed=untried
+fi
+if test -n "$PKG_CONFIG"; then
+ if test -n "$LO_LIBS"; then
+ pkg_cv_LO_LIBS="$LO_LIBS"
+ else
+ if test -n "$PKG_CONFIG" && \
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"liblo\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "liblo") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ pkg_cv_LO_LIBS=`$PKG_CONFIG --libs "liblo" 2>/dev/null`
+else
+ pkg_failed=yes
+fi
+ fi
+else
+ pkg_failed=untried
+fi
+
+
+
+if test $pkg_failed = yes; then
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+ _pkg_short_errors_supported=yes
+else
+ _pkg_short_errors_supported=no
+fi
+ if test $_pkg_short_errors_supported = yes; then
+ LO_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "liblo"`
+ else
+ LO_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "liblo"`
+ fi
+ # Put the nasty error message in config.log where it belongs
+ echo "$LO_PKG_ERRORS" >&5
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ LO_LIB_FOUND=no
+elif test $pkg_failed = untried; then
+ LO_LIB_FOUND=no
+else
+ LO_CFLAGS=$pkg_cv_LO_CFLAGS
+ LO_LIBS=$pkg_cv_LO_LIBS
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ LO_LIB_FOUND=yes
+fi
+ if test x$LO_LIB_FOUND = xno; then
+ as_fn_error "Library liblo from The Lightweight OSC Implementation is required" "$LINENO" 5
+ fi
+fi
+
+if test x$LO_LIB_FOUND = xyes ; then
+ LO_CFLAGS="$LO_CFLAGS"
+ ##LO_LIBS="$LO_LIBS"
+ LO_LIBS="-llo"
+ OSC="yes"
+
+
+
+$as_echo "@%:@define OSC_SUPPORT 1" >>confdefs.h
+
+fi
+
+ if test x$LO_LIB_FOUND = xyes; then
+ OSC_SUPPORT_TRUE=
+ OSC_SUPPORT_FALSE='#'
+else
+ OSC_SUPPORT_TRUE='#'
+ OSC_SUPPORT_FALSE=
+fi
+
+
+## LO_LIBS="-llo"
+## AC_SUBST(LO_CFLAGS)
+## AC_SUBST(LO_LIBS)
+
+## PKG_CHECK_MODULES(LO, lo >= 0.23,
+## true,
+## AC_MSG_ERROR([need liblo >= 0.23 ])
+## )
+
+
+
+###################
+### dssi plugins ###
+###################
+
+dssi_requested=no
+## LO_LIB_FOUND="no"
+DSSI_H_FOUND="no"
+DSSI="no"
+@%:@ Check whether --enable-dssi was given.
+if test "${enable_dssi+set}" = set; then :
+ enableval=$enable_dssi; if test x$enable_dssi = xyes ; then
+ dssi_requested=yes;
+ fi
+
+
+fi
+
+
+
+if test x$dssi_requested = xyes ; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking support for DSSI + DSSI-Vst plugins" >&5
+$as_echo_n "checking support for DSSI + DSSI-Vst plugins... " >&6; }
+ ## AC_CHECK_LIB(lo, lo_send, LO_LIB_FOUND="yes", LO_LIB_FOUND="no")
+ ## PKG_CHECK_MODULES(LO, lo >= 0.2, LO_LIB_FOUND="yes", LO_LIB_FOUND="no")
+## PKG_CHECK_MODULES(LO,liblo, [ LO_LIB_FOUND=yes ], [ LO_LIB_FOUND=no ])
+## if test x$LO_LIB_FOUND = xno; then
+## AC_MSG_ERROR([Library liblo from The Lightweight OSC Implementation is required])
+## fi
+
+ ac_fn_c_check_header_mongrel "$LINENO" "dssi.h" "ac_cv_header_dssi_h" "$ac_includes_default"
+if test "x$ac_cv_header_dssi_h" = x""yes; then :
+ DSSI_FOUND="yes"
+else
+ DSSI_FOUND="no"
+fi
+
+
+ ## PKG_CHECK_MODULES(DSSI [ DSSI_FOUND=yes ], [ DSSI_FOUND=no ])
+ if test x$DSSI_FOUND = xno; then
+ as_fn_error "Header file dssi.h from DSSI (Disposable Soft Synth Interface) is required" "$LINENO" 5
+ fi
+fi
+
+## if test x$LO_LIB_FOUND = xyes -a x$DSSI_FOUND = xyes ; then
+if test x$DSSI_FOUND = xyes ; then
+## LO_CFLAGS="$LO_CFLAGS"
+ ##LO_LIBS="$LO_LIBS"
+## LO_LIBS="-llo"
+ DSSI="yes"
+## AC_SUBST(LO_CFLAGS)
+## AC_SUBST(LO_LIBS)
+
+$as_echo "@%:@define DSSI_SUPPORT 1" >>confdefs.h
+
+fi
+
+## AM_CONDITIONAL(DSSI_SUPPORT, test x$LO_LIB_FOUND = xyes -a x$DSSI_FOUND = xyes)
+ if test x$DSSI_FOUND = xyes; then
+ DSSI_SUPPORT_TRUE=
+ DSSI_SUPPORT_FALSE='#'
+else
+ DSSI_SUPPORT_TRUE='#'
+ DSSI_SUPPORT_FALSE=
+fi
+
+
+## LO_LIBS="-llo"
+## AC_SUBST(LO_CFLAGS)
+## AC_SUBST(LO_LIBS)
+
+## PKG_CHECK_MODULES(LO, lo >= 0.23,
+## true,
+## AC_MSG_ERROR([need liblo >= 0.23 ])
+## )
+
+
+
+
+######################################
+
+
+
+$as_echo "@%:@define HAVE_AUDIO 1" >>confdefs.h
+
+ if test "yes" = "yes"; then
+ HAVE_AUDIO_TRUE=
+ HAVE_AUDIO_FALSE='#'
+else
+ HAVE_AUDIO_TRUE='#'
+ HAVE_AUDIO_FALSE=
+fi
+
+
+
+
+
+
+if test -n "$GIVERTCAP"; then
+ SUIDINSTALL="no"
+ SUIDBUILD="no"
+ fi
+
+
+ac_config_files="$ac_config_files Makefile m4/Makefile al/Makefile doc/Makefile xpm/Makefile demos/Makefile grepmidi/Makefile packaging/Makefile muse/Makefile muse/widgets/Makefile muse/master/Makefile muse/midiedit/Makefile muse/arranger/Makefile muse/liste/Makefile muse/driver/Makefile muse/waveedit/Makefile muse/ctrl/Makefile muse/instruments/Makefile muse/mixer/Makefile muse/cliplist/Makefile muse/marker/Makefile muse/mplugins/Makefile muse/remote/Makefile share/Makefile share/drummaps/Makefile share/html/Makefile share/locale/Makefile share/wallpapers/Makefile share/instruments/Makefile share/plugins/Makefile share/templates/Makefile share/pybridge/Makefile share/scripts/Makefile synti/Makefile synti/libsynti/Makefile synti/fluidsynth/Makefile synti/fluid/Makefile synti/organ/Makefile synti/s1/Makefile synti/vam/Makefile synti/deicsonze/Makefile synti/simpledrums/Makefile lib/Makefile lib/synthi/Makefile lib/plugins/Makefile plugins/Makefile plugins/freeverb/Makefile plugins/pandelay/Makefile plugins/doublechorus/Makefile Doxyfile utils/Makefile"
+
+cat >confcache <<\_ACEOF
+# This file is a shell script that caches the results of configure
+# tests run on this system so they can be shared between configure
+# scripts and configure runs, see configure's option --config-cache.
+# It is not useful on other systems. If it contains results you don't
+# want to keep, you may remove or edit it.
+#
+# config.status only pays attention to the cache file if you give it
+# the --recheck option to rerun configure.
+#
+# `ac_cv_env_foo' variables (set or unset) will be overridden when
+# loading this file, other *unset* `ac_cv_foo' will be assigned the
+# following values.
+
+_ACEOF
+
+# The following way of writing the cache mishandles newlines in values,
+# but we know of no workaround that is simple, portable, and efficient.
+# So, we kill variables containing newlines.
+# Ultrix sh set writes to stderr and can't be redirected directly,
+# and sets the high bit in the cache file unless we assign to the vars.
+(
+ for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do
+ eval ac_val=\$$ac_var
+ case $ac_val in #(
+ *${as_nl}*)
+ case $ac_var in #(
+ *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
+$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
+ esac
+ case $ac_var in #(
+ _ | IFS | as_nl) ;; #(
+ BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
+ *) { eval $ac_var=; unset $ac_var;} ;;
+ esac ;;
+ esac
+ done
+
+ (set) 2>&1 |
+ case $as_nl`(ac_space=' '; set) 2>&1` in #(
+ *${as_nl}ac_space=\ *)
+ # `set' does not quote correctly, so add quotes: double-quote
+ # substitution turns \\\\ into \\, and sed turns \\ into \.
+ sed -n \
+ "s/'/'\\\\''/g;
+ s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
+ ;; #(
+ *)
+ # `set' quotes correctly as required by POSIX, so do not add quotes.
+ sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
+ ;;
+ esac |
+ sort
+) |
+ sed '
+ /^ac_cv_env_/b end
+ t clear
+ :clear
+ s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
+ t end
+ s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
+ :end' >>confcache
+if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
+ if test -w "$cache_file"; then
+ test "x$cache_file" != "x/dev/null" &&
+ { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5
+$as_echo "$as_me: updating cache $cache_file" >&6;}
+ cat confcache >$cache_file
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5
+$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;}
+ fi
+fi
+rm -f confcache
+
+test "x$prefix" = xNONE && prefix=$ac_default_prefix
+# Let make expand exec_prefix.
+test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
+
+DEFS=-DHAVE_CONFIG_H
+
+ac_libobjs=
+ac_ltlibobjs=
+for ac_i in : $LIB@&t@OBJS; do test "x$ac_i" = x: && continue
+ # 1. Remove the extension, and $U if already installed.
+ ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
+ ac_i=`$as_echo "$ac_i" | sed "$ac_script"`
+ # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR
+ # will be set to the directory where LIBOBJS objects are built.
+ as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext"
+ as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo'
+done
+LIB@&t@OBJS=$ac_libobjs
+
+LTLIBOBJS=$ac_ltlibobjs
+
+
+ if test -n "$EXEEXT"; then
+ am__EXEEXT_TRUE=
+ am__EXEEXT_FALSE='#'
+else
+ am__EXEEXT_TRUE='#'
+ am__EXEEXT_FALSE=
+fi
+
+if test -z "${INSIDE_GNOME_COMMON_TRUE}" && test -z "${INSIDE_GNOME_COMMON_FALSE}"; then
+ as_fn_error "conditional \"INSIDE_GNOME_COMMON\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then
+ as_fn_error "conditional \"AMDEP\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then
+ as_fn_error "conditional \"am__fastdepCXX\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
+ as_fn_error "conditional \"am__fastdepCC\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then
+ as_fn_error "conditional \"am__fastdepCXX\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${ENABLEFLUIDSYNTH_TRUE}" && test -z "${ENABLEFLUIDSYNTH_FALSE}"; then
+ as_fn_error "conditional \"ENABLEFLUIDSYNTH\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${HAVE_LASH_TRUE}" && test -z "${HAVE_LASH_FALSE}"; then
+ as_fn_error "conditional \"HAVE_LASH\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${RTCAP_TRUE}" && test -z "${RTCAP_FALSE}"; then
+ as_fn_error "conditional \"RTCAP\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${PCH_TRUE}" && test -z "${PCH_FALSE}"; then
+ as_fn_error "conditional \"PCH\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${USE_SSE_TRUE}" && test -z "${USE_SSE_FALSE}"; then
+ as_fn_error "conditional \"USE_SSE\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${ENABLE_PYTHON_TRUE}" && test -z "${ENABLE_PYTHON_FALSE}"; then
+ as_fn_error "conditional \"ENABLE_PYTHON\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${VST_SUPPORT_TRUE}" && test -z "${VST_SUPPORT_FALSE}"; then
+ as_fn_error "conditional \"VST_SUPPORT\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${OSC_SUPPORT_TRUE}" && test -z "${OSC_SUPPORT_FALSE}"; then
+ as_fn_error "conditional \"OSC_SUPPORT\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${DSSI_SUPPORT_TRUE}" && test -z "${DSSI_SUPPORT_FALSE}"; then
+ as_fn_error "conditional \"DSSI_SUPPORT\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${HAVE_AUDIO_TRUE}" && test -z "${HAVE_AUDIO_FALSE}"; then
+ as_fn_error "conditional \"HAVE_AUDIO\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+
+: ${CONFIG_STATUS=./config.status}
+ac_write_fail=0
+ac_clean_files_save=$ac_clean_files
+ac_clean_files="$ac_clean_files $CONFIG_STATUS"
+{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5
+$as_echo "$as_me: creating $CONFIG_STATUS" >&6;}
+as_write_fail=0
+cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1
+#! $SHELL
+# Generated by $as_me.
+# Run this file to recreate the current configuration.
+# Compiler output produced by configure, useful for debugging
+# configure, is in config.log if it exists.
+
+debug=false
+ac_cs_recheck=false
+ac_cs_silent=false
+
+SHELL=\${CONFIG_SHELL-$SHELL}
+export SHELL
+_ASEOF
+cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1
+## -------------------- ##
+## M4sh Initialization. ##
+## -------------------- ##
+
+# Be more Bourne compatible
+DUALCASE=1; export DUALCASE # for MKS sh
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
+ emulate sh
+ NULLCMD=:
+ # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
+ # is contrary to our usage. Disable this feature.
+ alias -g '${1+"$@"}'='"$@"'
+ setopt NO_GLOB_SUBST
+else
+ case `(set -o) 2>/dev/null` in @%:@(
+ *posix*) :
+ set -o posix ;; @%:@(
+ *) :
+ ;;
+esac
+fi
+
+
+as_nl='
+'
+export as_nl
+# Printing a long string crashes Solaris 7 /usr/bin/printf.
+as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
+# Prefer a ksh shell builtin over an external printf program on Solaris,
+# but without wasting forks for bash or zsh.
+if test -z "$BASH_VERSION$ZSH_VERSION" \
+ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
+ as_echo='print -r --'
+ as_echo_n='print -rn --'
+elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
+ as_echo='printf %s\n'
+ as_echo_n='printf %s'
+else
+ if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
+ as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
+ as_echo_n='/usr/ucb/echo -n'
+ else
+ as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
+ as_echo_n_body='eval
+ arg=$1;
+ case $arg in @%:@(
+ *"$as_nl"*)
+ expr "X$arg" : "X\\(.*\\)$as_nl";
+ arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
+ esac;
+ expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
+ '
+ export as_echo_n_body
+ as_echo_n='sh -c $as_echo_n_body as_echo'
+ fi
+ export as_echo_body
+ as_echo='sh -c $as_echo_body as_echo'
+fi
+
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+ PATH_SEPARATOR=:
+ (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
+ (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
+ PATH_SEPARATOR=';'
+ }
+fi
+
+
+# IFS
+# We need space, tab and new line, in precisely that order. Quoting is
+# there to prevent editors from complaining about space-tab.
+# (If _AS_PATH_WALK were called with IFS unset, it would disable word
+# splitting by setting IFS to empty value.)
+IFS=" "" $as_nl"
+
+# Find who we are. Look in the path if we contain no directory separator.
+case $0 in @%:@((
+ *[\\/]* ) as_myself=$0 ;;
+ *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+# We did not find ourselves, most probably we were run as `sh COMMAND'
+# in which case we are not to be found in the path.
+if test "x$as_myself" = x; then
+ as_myself=$0
+fi
+if test ! -f "$as_myself"; then
+ $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
+ exit 1
+fi
+
+# Unset variables that we do not need and which cause bugs (e.g. in
+# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1"
+# suppresses any "Segmentation fault" message there. '((' could
+# trigger a bug in pdksh 5.2.14.
+for as_var in BASH_ENV ENV MAIL MAILPATH
+do eval test x\${$as_var+set} = xset \
+ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
+done
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# NLS nuisances.
+LC_ALL=C
+export LC_ALL
+LANGUAGE=C
+export LANGUAGE
+
+# CDPATH.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+
+@%:@ as_fn_error ERROR [LINENO LOG_FD]
+@%:@ ---------------------------------
+@%:@ Output "`basename @S|@0`: error: ERROR" to stderr. If LINENO and LOG_FD are
+@%:@ provided, also output the error to LOG_FD, referencing LINENO. Then exit the
+@%:@ script with status @S|@?, using 1 if that was 0.
+as_fn_error ()
+{
+ as_status=$?; test $as_status -eq 0 && as_status=1
+ if test "$3"; then
+ as_lineno=${as_lineno-"$2"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ $as_echo "$as_me:${as_lineno-$LINENO}: error: $1" >&$3
+ fi
+ $as_echo "$as_me: error: $1" >&2
+ as_fn_exit $as_status
+} @%:@ as_fn_error
+
+
+@%:@ as_fn_set_status STATUS
+@%:@ -----------------------
+@%:@ Set @S|@? to STATUS, without forking.
+as_fn_set_status ()
+{
+ return $1
+} @%:@ as_fn_set_status
+
+@%:@ as_fn_exit STATUS
+@%:@ -----------------
+@%:@ Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
+as_fn_exit ()
+{
+ set +e
+ as_fn_set_status $1
+ exit $1
+} @%:@ as_fn_exit
+
+@%:@ as_fn_unset VAR
+@%:@ ---------------
+@%:@ Portably unset VAR.
+as_fn_unset ()
+{
+ { eval $1=; unset $1;}
+}
+as_unset=as_fn_unset
+@%:@ as_fn_append VAR VALUE
+@%:@ ----------------------
+@%:@ Append the text in VALUE to the end of the definition contained in VAR. Take
+@%:@ advantage of any shell optimizations that allow amortized linear growth over
+@%:@ repeated appends, instead of the typical quadratic growth present in naive
+@%:@ implementations.
+if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
+ eval 'as_fn_append ()
+ {
+ eval $1+=\$2
+ }'
+else
+ as_fn_append ()
+ {
+ eval $1=\$$1\$2
+ }
+fi # as_fn_append
+
+@%:@ as_fn_arith ARG...
+@%:@ ------------------
+@%:@ Perform arithmetic evaluation on the ARGs, and store the result in the
+@%:@ global @S|@as_val. Take advantage of shells that can avoid forks. The arguments
+@%:@ must be portable across @S|@(()) and expr.
+if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
+ eval 'as_fn_arith ()
+ {
+ as_val=$(( $* ))
+ }'
+else
+ as_fn_arith ()
+ {
+ as_val=`expr "$@" || test $? -eq 1`
+ }
+fi # as_fn_arith
+
+
+if expr a : '\(a\)' >/dev/null 2>&1 &&
+ test "X`expr 00001 : '.*\(...\)'`" = X001; then
+ as_expr=expr
+else
+ as_expr=false
+fi
+
+if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
+ as_basename=basename
+else
+ as_basename=false
+fi
+
+if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
+ as_dirname=dirname
+else
+ as_dirname=false
+fi
+
+as_me=`$as_basename -- "$0" ||
+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+ X"$0" : 'X\(//\)$' \| \
+ X"$0" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X/"$0" |
+ sed '/^.*\/\([^/][^/]*\)\/*$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits
+
+ECHO_C= ECHO_N= ECHO_T=
+case `echo -n x` in @%:@(((((
+-n*)
+ case `echo 'xy\c'` in
+ *c*) ECHO_T=' ';; # ECHO_T is single tab character.
+ xy) ECHO_C='\c';;
+ *) echo `echo ksh88 bug on AIX 6.1` > /dev/null
+ ECHO_T=' ';;
+ esac;;
+*)
+ ECHO_N='-n';;
+esac
+
+rm -f conf$$ conf$$.exe conf$$.file
+if test -d conf$$.dir; then
+ rm -f conf$$.dir/conf$$.file
+else
+ rm -f conf$$.dir
+ mkdir conf$$.dir 2>/dev/null
+fi
+if (echo >conf$$.file) 2>/dev/null; then
+ if ln -s conf$$.file conf$$ 2>/dev/null; then
+ as_ln_s='ln -s'
+ # ... but there are two gotchas:
+ # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
+ # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
+ # In both cases, we have to default to `cp -p'.
+ ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
+ as_ln_s='cp -p'
+ elif ln conf$$.file conf$$ 2>/dev/null; then
+ as_ln_s=ln
+ else
+ as_ln_s='cp -p'
+ fi
+else
+ as_ln_s='cp -p'
+fi
+rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
+rmdir conf$$.dir 2>/dev/null
+
+
+@%:@ as_fn_mkdir_p
+@%:@ -------------
+@%:@ Create "@S|@as_dir" as a directory, including parents if necessary.
+as_fn_mkdir_p ()
+{
+
+ case $as_dir in #(
+ -*) as_dir=./$as_dir;;
+ esac
+ test -d "$as_dir" || eval $as_mkdir_p || {
+ as_dirs=
+ while :; do
+ case $as_dir in #(
+ *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
+ *) as_qdir=$as_dir;;
+ esac
+ as_dirs="'$as_qdir' $as_dirs"
+ as_dir=`$as_dirname -- "$as_dir" ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$as_dir" : 'X\(//\)[^/]' \| \
+ X"$as_dir" : 'X\(//\)$' \| \
+ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$as_dir" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ test -d "$as_dir" && break
+ done
+ test -z "$as_dirs" || eval "mkdir $as_dirs"
+ } || test -d "$as_dir" || as_fn_error "cannot create directory $as_dir"
+
+
+} @%:@ as_fn_mkdir_p
+if mkdir -p . 2>/dev/null; then
+ as_mkdir_p='mkdir -p "$as_dir"'
+else
+ test -d ./-p && rmdir ./-p
+ as_mkdir_p=false
+fi
+
+if test -x / >/dev/null 2>&1; then
+ as_test_x='test -x'
+else
+ if ls -dL / >/dev/null 2>&1; then
+ as_ls_L_option=L
+ else
+ as_ls_L_option=
+ fi
+ as_test_x='
+ eval sh -c '\''
+ if test -d "$1"; then
+ test -d "$1/.";
+ else
+ case $1 in @%:@(
+ -*)set "./$1";;
+ esac;
+ case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in @%:@((
+ ???[sx]*):;;*)false;;esac;fi
+ '\'' sh
+ '
+fi
+as_executable_p=$as_test_x
+
+# Sed expression to map a string onto a valid CPP name.
+as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
+
+# Sed expression to map a string onto a valid variable name.
+as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
+
+
+exec 6>&1
+## ----------------------------------- ##
+## Main body of $CONFIG_STATUS script. ##
+## ----------------------------------- ##
+_ASEOF
+test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+# Save the log message, to keep $0 and so on meaningful, and to
+# report actual input values of CONFIG_FILES etc. instead of their
+# values after options handling.
+ac_log="
+This file was extended by MusE $as_me 1.1, which was
+generated by GNU Autoconf 2.65. Invocation command line was
+
+ CONFIG_FILES = $CONFIG_FILES
+ CONFIG_HEADERS = $CONFIG_HEADERS
+ CONFIG_LINKS = $CONFIG_LINKS
+ CONFIG_COMMANDS = $CONFIG_COMMANDS
+ $ $0 $@
+
+on `(hostname || uname -n) 2>/dev/null | sed 1q`
+"
+
+_ACEOF
+
+case $ac_config_files in *"
+"*) set x $ac_config_files; shift; ac_config_files=$*;;
+esac
+
+case $ac_config_headers in *"
+"*) set x $ac_config_headers; shift; ac_config_headers=$*;;
+esac
+
+
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+# Files that config.status was made for.
+config_files="$ac_config_files"
+config_headers="$ac_config_headers"
+config_commands="$ac_config_commands"
+
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+ac_cs_usage="\
+\`$as_me' instantiates files and other configuration actions
+from templates according to the current configuration. Unless the files
+and actions are specified as TAGs, all are instantiated by default.
+
+Usage: $0 [OPTION]... [TAG]...
+
+ -h, --help print this help, then exit
+ -V, --version print version number and configuration settings, then exit
+ --config print configuration, then exit
+ -q, --quiet, --silent
+ do not print progress messages
+ -d, --debug don't remove temporary files
+ --recheck update $as_me by reconfiguring in the same conditions
+ --file=FILE[:TEMPLATE]
+ instantiate the configuration file FILE
+ --header=FILE[:TEMPLATE]
+ instantiate the configuration header FILE
+
+Configuration files:
+$config_files
+
+Configuration headers:
+$config_headers
+
+Configuration commands:
+$config_commands
+
+Report bugs to the package provider."
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
+ac_cs_version="\\
+MusE config.status 1.1
+configured by $0, generated by GNU Autoconf 2.65,
+ with options \\"\$ac_cs_config\\"
+
+Copyright (C) 2009 Free Software Foundation, Inc.
+This config.status script is free software; the Free Software Foundation
+gives unlimited permission to copy, distribute and modify it."
+
+ac_pwd='$ac_pwd'
+srcdir='$srcdir'
+INSTALL='$INSTALL'
+MKDIR_P='$MKDIR_P'
+AWK='$AWK'
+test -n "\$AWK" || AWK=awk
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+# The default lists apply if the user does not specify any file.
+ac_need_defaults=:
+while test $# != 0
+do
+ case $1 in
+ --*=*)
+ ac_option=`expr "X$1" : 'X\([^=]*\)='`
+ ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'`
+ ac_shift=:
+ ;;
+ *)
+ ac_option=$1
+ ac_optarg=$2
+ ac_shift=shift
+ ;;
+ esac
+
+ case $ac_option in
+ # Handling of the options.
+ -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
+ ac_cs_recheck=: ;;
+ --version | --versio | --versi | --vers | --ver | --ve | --v | -V )
+ $as_echo "$ac_cs_version"; exit ;;
+ --config | --confi | --conf | --con | --co | --c )
+ $as_echo "$ac_cs_config"; exit ;;
+ --debug | --debu | --deb | --de | --d | -d )
+ debug=: ;;
+ --file | --fil | --fi | --f )
+ $ac_shift
+ case $ac_optarg in
+ *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
+ esac
+ as_fn_append CONFIG_FILES " '$ac_optarg'"
+ ac_need_defaults=false;;
+ --header | --heade | --head | --hea )
+ $ac_shift
+ case $ac_optarg in
+ *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
+ esac
+ as_fn_append CONFIG_HEADERS " '$ac_optarg'"
+ ac_need_defaults=false;;
+ --he | --h)
+ # Conflict between --help and --header
+ as_fn_error "ambiguous option: \`$1'
+Try \`$0 --help' for more information.";;
+ --help | --hel | -h )
+ $as_echo "$ac_cs_usage"; exit ;;
+ -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+ | -silent | --silent | --silen | --sile | --sil | --si | --s)
+ ac_cs_silent=: ;;
+
+ # This is an error.
+ -*) as_fn_error "unrecognized option: \`$1'
+Try \`$0 --help' for more information." ;;
+
+ *) as_fn_append ac_config_targets " $1"
+ ac_need_defaults=false ;;
+
+ esac
+ shift
+done
+
+ac_configure_extra_args=
+
+if $ac_cs_silent; then
+ exec 6>/dev/null
+ ac_configure_extra_args="$ac_configure_extra_args --silent"
+fi
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+if \$ac_cs_recheck; then
+ set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
+ shift
+ \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6
+ CONFIG_SHELL='$SHELL'
+ export CONFIG_SHELL
+ exec "\$@"
+fi
+
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+exec 5>>config.log
+{
+ echo
+ sed 'h;s/./-/g;s/^.../@%:@@%:@ /;s/...$/ @%:@@%:@/;p;x;p;x' <<_ASBOX
+@%:@@%:@ Running $as_me. @%:@@%:@
+_ASBOX
+ $as_echo "$ac_log"
+} >&5
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+#
+# INIT-COMMANDS
+#
+AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"
+
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+sed_quote_subst='$sed_quote_subst'
+double_quote_subst='$double_quote_subst'
+delay_variable_subst='$delay_variable_subst'
+macro_version='`$ECHO "X$macro_version" | $Xsed -e "$delay_single_quote_subst"`'
+macro_revision='`$ECHO "X$macro_revision" | $Xsed -e "$delay_single_quote_subst"`'
+enable_shared='`$ECHO "X$enable_shared" | $Xsed -e "$delay_single_quote_subst"`'
+enable_static='`$ECHO "X$enable_static" | $Xsed -e "$delay_single_quote_subst"`'
+pic_mode='`$ECHO "X$pic_mode" | $Xsed -e "$delay_single_quote_subst"`'
+enable_fast_install='`$ECHO "X$enable_fast_install" | $Xsed -e "$delay_single_quote_subst"`'
+host_alias='`$ECHO "X$host_alias" | $Xsed -e "$delay_single_quote_subst"`'
+host='`$ECHO "X$host" | $Xsed -e "$delay_single_quote_subst"`'
+host_os='`$ECHO "X$host_os" | $Xsed -e "$delay_single_quote_subst"`'
+build_alias='`$ECHO "X$build_alias" | $Xsed -e "$delay_single_quote_subst"`'
+build='`$ECHO "X$build" | $Xsed -e "$delay_single_quote_subst"`'
+build_os='`$ECHO "X$build_os" | $Xsed -e "$delay_single_quote_subst"`'
+SED='`$ECHO "X$SED" | $Xsed -e "$delay_single_quote_subst"`'
+Xsed='`$ECHO "X$Xsed" | $Xsed -e "$delay_single_quote_subst"`'
+GREP='`$ECHO "X$GREP" | $Xsed -e "$delay_single_quote_subst"`'
+EGREP='`$ECHO "X$EGREP" | $Xsed -e "$delay_single_quote_subst"`'
+FGREP='`$ECHO "X$FGREP" | $Xsed -e "$delay_single_quote_subst"`'
+LD='`$ECHO "X$LD" | $Xsed -e "$delay_single_quote_subst"`'
+NM='`$ECHO "X$NM" | $Xsed -e "$delay_single_quote_subst"`'
+LN_S='`$ECHO "X$LN_S" | $Xsed -e "$delay_single_quote_subst"`'
+max_cmd_len='`$ECHO "X$max_cmd_len" | $Xsed -e "$delay_single_quote_subst"`'
+ac_objext='`$ECHO "X$ac_objext" | $Xsed -e "$delay_single_quote_subst"`'
+exeext='`$ECHO "X$exeext" | $Xsed -e "$delay_single_quote_subst"`'
+lt_unset='`$ECHO "X$lt_unset" | $Xsed -e "$delay_single_quote_subst"`'
+lt_SP2NL='`$ECHO "X$lt_SP2NL" | $Xsed -e "$delay_single_quote_subst"`'
+lt_NL2SP='`$ECHO "X$lt_NL2SP" | $Xsed -e "$delay_single_quote_subst"`'
+reload_flag='`$ECHO "X$reload_flag" | $Xsed -e "$delay_single_quote_subst"`'
+reload_cmds='`$ECHO "X$reload_cmds" | $Xsed -e "$delay_single_quote_subst"`'
+OBJDUMP='`$ECHO "X$OBJDUMP" | $Xsed -e "$delay_single_quote_subst"`'
+deplibs_check_method='`$ECHO "X$deplibs_check_method" | $Xsed -e "$delay_single_quote_subst"`'
+file_magic_cmd='`$ECHO "X$file_magic_cmd" | $Xsed -e "$delay_single_quote_subst"`'
+AR='`$ECHO "X$AR" | $Xsed -e "$delay_single_quote_subst"`'
+AR_FLAGS='`$ECHO "X$AR_FLAGS" | $Xsed -e "$delay_single_quote_subst"`'
+STRIP='`$ECHO "X$STRIP" | $Xsed -e "$delay_single_quote_subst"`'
+RANLIB='`$ECHO "X$RANLIB" | $Xsed -e "$delay_single_quote_subst"`'
+old_postinstall_cmds='`$ECHO "X$old_postinstall_cmds" | $Xsed -e "$delay_single_quote_subst"`'
+old_postuninstall_cmds='`$ECHO "X$old_postuninstall_cmds" | $Xsed -e "$delay_single_quote_subst"`'
+old_archive_cmds='`$ECHO "X$old_archive_cmds" | $Xsed -e "$delay_single_quote_subst"`'
+CC='`$ECHO "X$CC" | $Xsed -e "$delay_single_quote_subst"`'
+CFLAGS='`$ECHO "X$CFLAGS" | $Xsed -e "$delay_single_quote_subst"`'
+compiler='`$ECHO "X$compiler" | $Xsed -e "$delay_single_quote_subst"`'
+GCC='`$ECHO "X$GCC" | $Xsed -e "$delay_single_quote_subst"`'
+lt_cv_sys_global_symbol_pipe='`$ECHO "X$lt_cv_sys_global_symbol_pipe" | $Xsed -e "$delay_single_quote_subst"`'
+lt_cv_sys_global_symbol_to_cdecl='`$ECHO "X$lt_cv_sys_global_symbol_to_cdecl" | $Xsed -e "$delay_single_quote_subst"`'
+lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "X$lt_cv_sys_global_symbol_to_c_name_address" | $Xsed -e "$delay_single_quote_subst"`'
+lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "X$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $Xsed -e "$delay_single_quote_subst"`'
+objdir='`$ECHO "X$objdir" | $Xsed -e "$delay_single_quote_subst"`'
+SHELL='`$ECHO "X$SHELL" | $Xsed -e "$delay_single_quote_subst"`'
+ECHO='`$ECHO "X$ECHO" | $Xsed -e "$delay_single_quote_subst"`'
+MAGIC_CMD='`$ECHO "X$MAGIC_CMD" | $Xsed -e "$delay_single_quote_subst"`'
+lt_prog_compiler_no_builtin_flag='`$ECHO "X$lt_prog_compiler_no_builtin_flag" | $Xsed -e "$delay_single_quote_subst"`'
+lt_prog_compiler_wl='`$ECHO "X$lt_prog_compiler_wl" | $Xsed -e "$delay_single_quote_subst"`'
+lt_prog_compiler_pic='`$ECHO "X$lt_prog_compiler_pic" | $Xsed -e "$delay_single_quote_subst"`'
+lt_prog_compiler_static='`$ECHO "X$lt_prog_compiler_static" | $Xsed -e "$delay_single_quote_subst"`'
+lt_cv_prog_compiler_c_o='`$ECHO "X$lt_cv_prog_compiler_c_o" | $Xsed -e "$delay_single_quote_subst"`'
+need_locks='`$ECHO "X$need_locks" | $Xsed -e "$delay_single_quote_subst"`'
+DSYMUTIL='`$ECHO "X$DSYMUTIL" | $Xsed -e "$delay_single_quote_subst"`'
+NMEDIT='`$ECHO "X$NMEDIT" | $Xsed -e "$delay_single_quote_subst"`'
+LIPO='`$ECHO "X$LIPO" | $Xsed -e "$delay_single_quote_subst"`'
+OTOOL='`$ECHO "X$OTOOL" | $Xsed -e "$delay_single_quote_subst"`'
+OTOOL64='`$ECHO "X$OTOOL64" | $Xsed -e "$delay_single_quote_subst"`'
+libext='`$ECHO "X$libext" | $Xsed -e "$delay_single_quote_subst"`'
+shrext_cmds='`$ECHO "X$shrext_cmds" | $Xsed -e "$delay_single_quote_subst"`'
+extract_expsyms_cmds='`$ECHO "X$extract_expsyms_cmds" | $Xsed -e "$delay_single_quote_subst"`'
+archive_cmds_need_lc='`$ECHO "X$archive_cmds_need_lc" | $Xsed -e "$delay_single_quote_subst"`'
+enable_shared_with_static_runtimes='`$ECHO "X$enable_shared_with_static_runtimes" | $Xsed -e "$delay_single_quote_subst"`'
+export_dynamic_flag_spec='`$ECHO "X$export_dynamic_flag_spec" | $Xsed -e "$delay_single_quote_subst"`'
+whole_archive_flag_spec='`$ECHO "X$whole_archive_flag_spec" | $Xsed -e "$delay_single_quote_subst"`'
+compiler_needs_object='`$ECHO "X$compiler_needs_object" | $Xsed -e "$delay_single_quote_subst"`'
+old_archive_from_new_cmds='`$ECHO "X$old_archive_from_new_cmds" | $Xsed -e "$delay_single_quote_subst"`'
+old_archive_from_expsyms_cmds='`$ECHO "X$old_archive_from_expsyms_cmds" | $Xsed -e "$delay_single_quote_subst"`'
+archive_cmds='`$ECHO "X$archive_cmds" | $Xsed -e "$delay_single_quote_subst"`'
+archive_expsym_cmds='`$ECHO "X$archive_expsym_cmds" | $Xsed -e "$delay_single_quote_subst"`'
+module_cmds='`$ECHO "X$module_cmds" | $Xsed -e "$delay_single_quote_subst"`'
+module_expsym_cmds='`$ECHO "X$module_expsym_cmds" | $Xsed -e "$delay_single_quote_subst"`'
+with_gnu_ld='`$ECHO "X$with_gnu_ld" | $Xsed -e "$delay_single_quote_subst"`'
+allow_undefined_flag='`$ECHO "X$allow_undefined_flag" | $Xsed -e "$delay_single_quote_subst"`'
+no_undefined_flag='`$ECHO "X$no_undefined_flag" | $Xsed -e "$delay_single_quote_subst"`'
+hardcode_libdir_flag_spec='`$ECHO "X$hardcode_libdir_flag_spec" | $Xsed -e "$delay_single_quote_subst"`'
+hardcode_libdir_flag_spec_ld='`$ECHO "X$hardcode_libdir_flag_spec_ld" | $Xsed -e "$delay_single_quote_subst"`'
+hardcode_libdir_separator='`$ECHO "X$hardcode_libdir_separator" | $Xsed -e "$delay_single_quote_subst"`'
+hardcode_direct='`$ECHO "X$hardcode_direct" | $Xsed -e "$delay_single_quote_subst"`'
+hardcode_direct_absolute='`$ECHO "X$hardcode_direct_absolute" | $Xsed -e "$delay_single_quote_subst"`'
+hardcode_minus_L='`$ECHO "X$hardcode_minus_L" | $Xsed -e "$delay_single_quote_subst"`'
+hardcode_shlibpath_var='`$ECHO "X$hardcode_shlibpath_var" | $Xsed -e "$delay_single_quote_subst"`'
+hardcode_automatic='`$ECHO "X$hardcode_automatic" | $Xsed -e "$delay_single_quote_subst"`'
+inherit_rpath='`$ECHO "X$inherit_rpath" | $Xsed -e "$delay_single_quote_subst"`'
+link_all_deplibs='`$ECHO "X$link_all_deplibs" | $Xsed -e "$delay_single_quote_subst"`'
+fix_srcfile_path='`$ECHO "X$fix_srcfile_path" | $Xsed -e "$delay_single_quote_subst"`'
+always_export_symbols='`$ECHO "X$always_export_symbols" | $Xsed -e "$delay_single_quote_subst"`'
+export_symbols_cmds='`$ECHO "X$export_symbols_cmds" | $Xsed -e "$delay_single_quote_subst"`'
+exclude_expsyms='`$ECHO "X$exclude_expsyms" | $Xsed -e "$delay_single_quote_subst"`'
+include_expsyms='`$ECHO "X$include_expsyms" | $Xsed -e "$delay_single_quote_subst"`'
+prelink_cmds='`$ECHO "X$prelink_cmds" | $Xsed -e "$delay_single_quote_subst"`'
+file_list_spec='`$ECHO "X$file_list_spec" | $Xsed -e "$delay_single_quote_subst"`'
+variables_saved_for_relink='`$ECHO "X$variables_saved_for_relink" | $Xsed -e "$delay_single_quote_subst"`'
+need_lib_prefix='`$ECHO "X$need_lib_prefix" | $Xsed -e "$delay_single_quote_subst"`'
+need_version='`$ECHO "X$need_version" | $Xsed -e "$delay_single_quote_subst"`'
+version_type='`$ECHO "X$version_type" | $Xsed -e "$delay_single_quote_subst"`'
+runpath_var='`$ECHO "X$runpath_var" | $Xsed -e "$delay_single_quote_subst"`'
+shlibpath_var='`$ECHO "X$shlibpath_var" | $Xsed -e "$delay_single_quote_subst"`'
+shlibpath_overrides_runpath='`$ECHO "X$shlibpath_overrides_runpath" | $Xsed -e "$delay_single_quote_subst"`'
+libname_spec='`$ECHO "X$libname_spec" | $Xsed -e "$delay_single_quote_subst"`'
+library_names_spec='`$ECHO "X$library_names_spec" | $Xsed -e "$delay_single_quote_subst"`'
+soname_spec='`$ECHO "X$soname_spec" | $Xsed -e "$delay_single_quote_subst"`'
+postinstall_cmds='`$ECHO "X$postinstall_cmds" | $Xsed -e "$delay_single_quote_subst"`'
+postuninstall_cmds='`$ECHO "X$postuninstall_cmds" | $Xsed -e "$delay_single_quote_subst"`'
+finish_cmds='`$ECHO "X$finish_cmds" | $Xsed -e "$delay_single_quote_subst"`'
+finish_eval='`$ECHO "X$finish_eval" | $Xsed -e "$delay_single_quote_subst"`'
+hardcode_into_libs='`$ECHO "X$hardcode_into_libs" | $Xsed -e "$delay_single_quote_subst"`'
+sys_lib_search_path_spec='`$ECHO "X$sys_lib_search_path_spec" | $Xsed -e "$delay_single_quote_subst"`'
+sys_lib_dlsearch_path_spec='`$ECHO "X$sys_lib_dlsearch_path_spec" | $Xsed -e "$delay_single_quote_subst"`'
+hardcode_action='`$ECHO "X$hardcode_action" | $Xsed -e "$delay_single_quote_subst"`'
+enable_dlopen='`$ECHO "X$enable_dlopen" | $Xsed -e "$delay_single_quote_subst"`'
+enable_dlopen_self='`$ECHO "X$enable_dlopen_self" | $Xsed -e "$delay_single_quote_subst"`'
+enable_dlopen_self_static='`$ECHO "X$enable_dlopen_self_static" | $Xsed -e "$delay_single_quote_subst"`'
+old_striplib='`$ECHO "X$old_striplib" | $Xsed -e "$delay_single_quote_subst"`'
+striplib='`$ECHO "X$striplib" | $Xsed -e "$delay_single_quote_subst"`'
+compiler_lib_search_dirs='`$ECHO "X$compiler_lib_search_dirs" | $Xsed -e "$delay_single_quote_subst"`'
+predep_objects='`$ECHO "X$predep_objects" | $Xsed -e "$delay_single_quote_subst"`'
+postdep_objects='`$ECHO "X$postdep_objects" | $Xsed -e "$delay_single_quote_subst"`'
+predeps='`$ECHO "X$predeps" | $Xsed -e "$delay_single_quote_subst"`'
+postdeps='`$ECHO "X$postdeps" | $Xsed -e "$delay_single_quote_subst"`'
+compiler_lib_search_path='`$ECHO "X$compiler_lib_search_path" | $Xsed -e "$delay_single_quote_subst"`'
+LD_CXX='`$ECHO "X$LD_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+old_archive_cmds_CXX='`$ECHO "X$old_archive_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+compiler_CXX='`$ECHO "X$compiler_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+GCC_CXX='`$ECHO "X$GCC_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+lt_prog_compiler_no_builtin_flag_CXX='`$ECHO "X$lt_prog_compiler_no_builtin_flag_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+lt_prog_compiler_wl_CXX='`$ECHO "X$lt_prog_compiler_wl_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+lt_prog_compiler_pic_CXX='`$ECHO "X$lt_prog_compiler_pic_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+lt_prog_compiler_static_CXX='`$ECHO "X$lt_prog_compiler_static_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+lt_cv_prog_compiler_c_o_CXX='`$ECHO "X$lt_cv_prog_compiler_c_o_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+archive_cmds_need_lc_CXX='`$ECHO "X$archive_cmds_need_lc_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+enable_shared_with_static_runtimes_CXX='`$ECHO "X$enable_shared_with_static_runtimes_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+export_dynamic_flag_spec_CXX='`$ECHO "X$export_dynamic_flag_spec_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+whole_archive_flag_spec_CXX='`$ECHO "X$whole_archive_flag_spec_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+compiler_needs_object_CXX='`$ECHO "X$compiler_needs_object_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+old_archive_from_new_cmds_CXX='`$ECHO "X$old_archive_from_new_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+old_archive_from_expsyms_cmds_CXX='`$ECHO "X$old_archive_from_expsyms_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+archive_cmds_CXX='`$ECHO "X$archive_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+archive_expsym_cmds_CXX='`$ECHO "X$archive_expsym_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+module_cmds_CXX='`$ECHO "X$module_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+module_expsym_cmds_CXX='`$ECHO "X$module_expsym_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+with_gnu_ld_CXX='`$ECHO "X$with_gnu_ld_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+allow_undefined_flag_CXX='`$ECHO "X$allow_undefined_flag_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+no_undefined_flag_CXX='`$ECHO "X$no_undefined_flag_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+hardcode_libdir_flag_spec_CXX='`$ECHO "X$hardcode_libdir_flag_spec_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+hardcode_libdir_flag_spec_ld_CXX='`$ECHO "X$hardcode_libdir_flag_spec_ld_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+hardcode_libdir_separator_CXX='`$ECHO "X$hardcode_libdir_separator_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+hardcode_direct_CXX='`$ECHO "X$hardcode_direct_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+hardcode_direct_absolute_CXX='`$ECHO "X$hardcode_direct_absolute_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+hardcode_minus_L_CXX='`$ECHO "X$hardcode_minus_L_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+hardcode_shlibpath_var_CXX='`$ECHO "X$hardcode_shlibpath_var_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+hardcode_automatic_CXX='`$ECHO "X$hardcode_automatic_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+inherit_rpath_CXX='`$ECHO "X$inherit_rpath_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+link_all_deplibs_CXX='`$ECHO "X$link_all_deplibs_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+fix_srcfile_path_CXX='`$ECHO "X$fix_srcfile_path_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+always_export_symbols_CXX='`$ECHO "X$always_export_symbols_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+export_symbols_cmds_CXX='`$ECHO "X$export_symbols_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+exclude_expsyms_CXX='`$ECHO "X$exclude_expsyms_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+include_expsyms_CXX='`$ECHO "X$include_expsyms_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+prelink_cmds_CXX='`$ECHO "X$prelink_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+file_list_spec_CXX='`$ECHO "X$file_list_spec_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+hardcode_action_CXX='`$ECHO "X$hardcode_action_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+compiler_lib_search_dirs_CXX='`$ECHO "X$compiler_lib_search_dirs_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+predep_objects_CXX='`$ECHO "X$predep_objects_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+postdep_objects_CXX='`$ECHO "X$postdep_objects_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+predeps_CXX='`$ECHO "X$predeps_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+postdeps_CXX='`$ECHO "X$postdeps_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+compiler_lib_search_path_CXX='`$ECHO "X$compiler_lib_search_path_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+
+LTCC='$LTCC'
+LTCFLAGS='$LTCFLAGS'
+compiler='$compiler_DEFAULT'
+
+# Quote evaled strings.
+for var in SED \
+GREP \
+EGREP \
+FGREP \
+LD \
+NM \
+LN_S \
+lt_SP2NL \
+lt_NL2SP \
+reload_flag \
+OBJDUMP \
+deplibs_check_method \
+file_magic_cmd \
+AR \
+AR_FLAGS \
+STRIP \
+RANLIB \
+CC \
+CFLAGS \
+compiler \
+lt_cv_sys_global_symbol_pipe \
+lt_cv_sys_global_symbol_to_cdecl \
+lt_cv_sys_global_symbol_to_c_name_address \
+lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \
+SHELL \
+ECHO \
+lt_prog_compiler_no_builtin_flag \
+lt_prog_compiler_wl \
+lt_prog_compiler_pic \
+lt_prog_compiler_static \
+lt_cv_prog_compiler_c_o \
+need_locks \
+DSYMUTIL \
+NMEDIT \
+LIPO \
+OTOOL \
+OTOOL64 \
+shrext_cmds \
+export_dynamic_flag_spec \
+whole_archive_flag_spec \
+compiler_needs_object \
+with_gnu_ld \
+allow_undefined_flag \
+no_undefined_flag \
+hardcode_libdir_flag_spec \
+hardcode_libdir_flag_spec_ld \
+hardcode_libdir_separator \
+fix_srcfile_path \
+exclude_expsyms \
+include_expsyms \
+file_list_spec \
+variables_saved_for_relink \
+libname_spec \
+library_names_spec \
+soname_spec \
+finish_eval \
+old_striplib \
+striplib \
+compiler_lib_search_dirs \
+predep_objects \
+postdep_objects \
+predeps \
+postdeps \
+compiler_lib_search_path \
+LD_CXX \
+compiler_CXX \
+lt_prog_compiler_no_builtin_flag_CXX \
+lt_prog_compiler_wl_CXX \
+lt_prog_compiler_pic_CXX \
+lt_prog_compiler_static_CXX \
+lt_cv_prog_compiler_c_o_CXX \
+export_dynamic_flag_spec_CXX \
+whole_archive_flag_spec_CXX \
+compiler_needs_object_CXX \
+with_gnu_ld_CXX \
+allow_undefined_flag_CXX \
+no_undefined_flag_CXX \
+hardcode_libdir_flag_spec_CXX \
+hardcode_libdir_flag_spec_ld_CXX \
+hardcode_libdir_separator_CXX \
+fix_srcfile_path_CXX \
+exclude_expsyms_CXX \
+include_expsyms_CXX \
+file_list_spec_CXX \
+compiler_lib_search_dirs_CXX \
+predep_objects_CXX \
+postdep_objects_CXX \
+predeps_CXX \
+postdeps_CXX \
+compiler_lib_search_path_CXX; do
+ case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in
+ *[\\\\\\\`\\"\\\$]*)
+ eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$sed_quote_subst\\"\\\`\\\\\\""
+ ;;
+ *)
+ eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
+ ;;
+ esac
+done
+
+# Double-quote double-evaled strings.
+for var in reload_cmds \
+old_postinstall_cmds \
+old_postuninstall_cmds \
+old_archive_cmds \
+extract_expsyms_cmds \
+old_archive_from_new_cmds \
+old_archive_from_expsyms_cmds \
+archive_cmds \
+archive_expsym_cmds \
+module_cmds \
+module_expsym_cmds \
+export_symbols_cmds \
+prelink_cmds \
+postinstall_cmds \
+postuninstall_cmds \
+finish_cmds \
+sys_lib_search_path_spec \
+sys_lib_dlsearch_path_spec \
+old_archive_cmds_CXX \
+old_archive_from_new_cmds_CXX \
+old_archive_from_expsyms_cmds_CXX \
+archive_cmds_CXX \
+archive_expsym_cmds_CXX \
+module_cmds_CXX \
+module_expsym_cmds_CXX \
+export_symbols_cmds_CXX \
+prelink_cmds_CXX; do
+ case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in
+ *[\\\\\\\`\\"\\\$]*)
+ eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\""
+ ;;
+ *)
+ eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
+ ;;
+ esac
+done
+
+# Fix-up fallback echo if it was mangled by the above quoting rules.
+case \$lt_ECHO in
+*'\\\$0 --fallback-echo"') lt_ECHO=\`\$ECHO "X\$lt_ECHO" | \$Xsed -e 's/\\\\\\\\\\\\\\\$0 --fallback-echo"\$/\$0 --fallback-echo"/'\`
+ ;;
+esac
+
+ac_aux_dir='$ac_aux_dir'
+xsi_shell='$xsi_shell'
+lt_shell_append='$lt_shell_append'
+
+# See if we are running on zsh, and set the options which allow our
+# commands through without removal of \ escapes INIT.
+if test -n "\${ZSH_VERSION+set}" ; then
+ setopt NO_GLOB_SUBST
+fi
+
+
+ PACKAGE='$PACKAGE'
+ VERSION='$VERSION'
+ TIMESTAMP='$TIMESTAMP'
+ RM='$RM'
+ ofile='$ofile'
+
+
+
+
+
+
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+
+# Handling of arguments.
+for ac_config_target in $ac_config_targets
+do
+ case $ac_config_target in
+ "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;;
+ "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;
+ "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;;
+ "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
+ "m4/Makefile") CONFIG_FILES="$CONFIG_FILES m4/Makefile" ;;
+ "al/Makefile") CONFIG_FILES="$CONFIG_FILES al/Makefile" ;;
+ "doc/Makefile") CONFIG_FILES="$CONFIG_FILES doc/Makefile" ;;
+ "xpm/Makefile") CONFIG_FILES="$CONFIG_FILES xpm/Makefile" ;;
+ "demos/Makefile") CONFIG_FILES="$CONFIG_FILES demos/Makefile" ;;
+ "grepmidi/Makefile") CONFIG_FILES="$CONFIG_FILES grepmidi/Makefile" ;;
+ "packaging/Makefile") CONFIG_FILES="$CONFIG_FILES packaging/Makefile" ;;
+ "muse/Makefile") CONFIG_FILES="$CONFIG_FILES muse/Makefile" ;;
+ "muse/widgets/Makefile") CONFIG_FILES="$CONFIG_FILES muse/widgets/Makefile" ;;
+ "muse/master/Makefile") CONFIG_FILES="$CONFIG_FILES muse/master/Makefile" ;;
+ "muse/midiedit/Makefile") CONFIG_FILES="$CONFIG_FILES muse/midiedit/Makefile" ;;
+ "muse/arranger/Makefile") CONFIG_FILES="$CONFIG_FILES muse/arranger/Makefile" ;;
+ "muse/liste/Makefile") CONFIG_FILES="$CONFIG_FILES muse/liste/Makefile" ;;
+ "muse/driver/Makefile") CONFIG_FILES="$CONFIG_FILES muse/driver/Makefile" ;;
+ "muse/waveedit/Makefile") CONFIG_FILES="$CONFIG_FILES muse/waveedit/Makefile" ;;
+ "muse/ctrl/Makefile") CONFIG_FILES="$CONFIG_FILES muse/ctrl/Makefile" ;;
+ "muse/instruments/Makefile") CONFIG_FILES="$CONFIG_FILES muse/instruments/Makefile" ;;
+ "muse/mixer/Makefile") CONFIG_FILES="$CONFIG_FILES muse/mixer/Makefile" ;;
+ "muse/cliplist/Makefile") CONFIG_FILES="$CONFIG_FILES muse/cliplist/Makefile" ;;
+ "muse/marker/Makefile") CONFIG_FILES="$CONFIG_FILES muse/marker/Makefile" ;;
+ "muse/mplugins/Makefile") CONFIG_FILES="$CONFIG_FILES muse/mplugins/Makefile" ;;
+ "muse/remote/Makefile") CONFIG_FILES="$CONFIG_FILES muse/remote/Makefile" ;;
+ "share/Makefile") CONFIG_FILES="$CONFIG_FILES share/Makefile" ;;
+ "share/drummaps/Makefile") CONFIG_FILES="$CONFIG_FILES share/drummaps/Makefile" ;;
+ "share/html/Makefile") CONFIG_FILES="$CONFIG_FILES share/html/Makefile" ;;
+ "share/locale/Makefile") CONFIG_FILES="$CONFIG_FILES share/locale/Makefile" ;;
+ "share/wallpapers/Makefile") CONFIG_FILES="$CONFIG_FILES share/wallpapers/Makefile" ;;
+ "share/instruments/Makefile") CONFIG_FILES="$CONFIG_FILES share/instruments/Makefile" ;;
+ "share/plugins/Makefile") CONFIG_FILES="$CONFIG_FILES share/plugins/Makefile" ;;
+ "share/templates/Makefile") CONFIG_FILES="$CONFIG_FILES share/templates/Makefile" ;;
+ "share/pybridge/Makefile") CONFIG_FILES="$CONFIG_FILES share/pybridge/Makefile" ;;
+ "share/scripts/Makefile") CONFIG_FILES="$CONFIG_FILES share/scripts/Makefile" ;;
+ "synti/Makefile") CONFIG_FILES="$CONFIG_FILES synti/Makefile" ;;
+ "synti/libsynti/Makefile") CONFIG_FILES="$CONFIG_FILES synti/libsynti/Makefile" ;;
+ "synti/fluidsynth/Makefile") CONFIG_FILES="$CONFIG_FILES synti/fluidsynth/Makefile" ;;
+ "synti/fluid/Makefile") CONFIG_FILES="$CONFIG_FILES synti/fluid/Makefile" ;;
+ "synti/organ/Makefile") CONFIG_FILES="$CONFIG_FILES synti/organ/Makefile" ;;
+ "synti/s1/Makefile") CONFIG_FILES="$CONFIG_FILES synti/s1/Makefile" ;;
+ "synti/vam/Makefile") CONFIG_FILES="$CONFIG_FILES synti/vam/Makefile" ;;
+ "synti/deicsonze/Makefile") CONFIG_FILES="$CONFIG_FILES synti/deicsonze/Makefile" ;;
+ "synti/simpledrums/Makefile") CONFIG_FILES="$CONFIG_FILES synti/simpledrums/Makefile" ;;
+ "lib/Makefile") CONFIG_FILES="$CONFIG_FILES lib/Makefile" ;;
+ "lib/synthi/Makefile") CONFIG_FILES="$CONFIG_FILES lib/synthi/Makefile" ;;
+ "lib/plugins/Makefile") CONFIG_FILES="$CONFIG_FILES lib/plugins/Makefile" ;;
+ "plugins/Makefile") CONFIG_FILES="$CONFIG_FILES plugins/Makefile" ;;
+ "plugins/freeverb/Makefile") CONFIG_FILES="$CONFIG_FILES plugins/freeverb/Makefile" ;;
+ "plugins/pandelay/Makefile") CONFIG_FILES="$CONFIG_FILES plugins/pandelay/Makefile" ;;
+ "plugins/doublechorus/Makefile") CONFIG_FILES="$CONFIG_FILES plugins/doublechorus/Makefile" ;;
+ "Doxyfile") CONFIG_FILES="$CONFIG_FILES Doxyfile" ;;
+ "utils/Makefile") CONFIG_FILES="$CONFIG_FILES utils/Makefile" ;;
+
+ *) as_fn_error "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
+ esac
+done
+
+
+# If the user did not use the arguments to specify the items to instantiate,
+# then the envvar interface is used. Set only those that are not.
+# We use the long form for the default assignment because of an extremely
+# bizarre bug on SunOS 4.1.3.
+if $ac_need_defaults; then
+ test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
+ test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers
+ test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands
+fi
+
+# Have a temporary directory for convenience. Make it in the build tree
+# simply because there is no reason against having it here, and in addition,
+# creating and moving files from /tmp can sometimes cause problems.
+# Hook for its removal unless debugging.
+# Note that there is a small window in which the directory will not be cleaned:
+# after its creation but before its name has been assigned to `$tmp'.
+$debug ||
+{
+ tmp=
+ trap 'exit_status=$?
+ { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status
+' 0
+ trap 'as_fn_exit 1' 1 2 13 15
+}
+# Create a (secure) tmp directory for tmp files.
+
+{
+ tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` &&
+ test -n "$tmp" && test -d "$tmp"
+} ||
+{
+ tmp=./conf$$-$RANDOM
+ (umask 077 && mkdir "$tmp")
+} || as_fn_error "cannot create a temporary directory in ." "$LINENO" 5
+
+# Set up the scripts for CONFIG_FILES section.
+# No need to generate them if there are no CONFIG_FILES.
+# This happens for instance with `./config.status config.h'.
+if test -n "$CONFIG_FILES"; then
+
+
+ac_cr=`echo X | tr X '\015'`
+# On cygwin, bash can eat \r inside `` if the user requested igncr.
+# But we know of no other shell where ac_cr would be empty at this
+# point, so we can use a bashism as a fallback.
+if test "x$ac_cr" = x; then
+ eval ac_cr=\$\'\\r\'
+fi
+ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null`
+if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then
+ ac_cs_awk_cr='\r'
+else
+ ac_cs_awk_cr=$ac_cr
+fi
+
+echo 'BEGIN {' >"$tmp/subs1.awk" &&
+_ACEOF
+
+
+{
+ echo "cat >conf$$subs.awk <<_ACEOF" &&
+ echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' &&
+ echo "_ACEOF"
+} >conf$$subs.sh ||
+ as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5
+ac_delim_num=`echo "$ac_subst_vars" | grep -c '$'`
+ac_delim='%!_!# '
+for ac_last_try in false false false false false :; do
+ . ./conf$$subs.sh ||
+ as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5
+
+ ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X`
+ if test $ac_delim_n = $ac_delim_num; then
+ break
+ elif $ac_last_try; then
+ as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5
+ else
+ ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
+ fi
+done
+rm -f conf$$subs.sh
+
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+cat >>"\$tmp/subs1.awk" <<\\_ACAWK &&
+_ACEOF
+sed -n '
+h
+s/^/S["/; s/!.*/"]=/
+p
+g
+s/^[^!]*!//
+:repl
+t repl
+s/'"$ac_delim"'$//
+t delim
+:nl
+h
+s/\(.\{148\}\)..*/\1/
+t more1
+s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/
+p
+n
+b repl
+:more1
+s/["\\]/\\&/g; s/^/"/; s/$/"\\/
+p
+g
+s/.\{148\}//
+t nl
+:delim
+h
+s/\(.\{148\}\)..*/\1/
+t more2
+s/["\\]/\\&/g; s/^/"/; s/$/"/
+p
+b
+:more2
+s/["\\]/\\&/g; s/^/"/; s/$/"\\/
+p
+g
+s/.\{148\}//
+t delim
+' <conf$$subs.awk | sed '
+/^[^""]/{
+ N
+ s/\n//
+}
+' >>$CONFIG_STATUS || ac_write_fail=1
+rm -f conf$$subs.awk
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+_ACAWK
+cat >>"\$tmp/subs1.awk" <<_ACAWK &&
+ for (key in S) S_is_set[key] = 1
+ FS = ""
+
+}
+{
+ line = $ 0
+ nfields = split(line, field, "@")
+ substed = 0
+ len = length(field[1])
+ for (i = 2; i < nfields; i++) {
+ key = field[i]
+ keylen = length(key)
+ if (S_is_set[key]) {
+ value = S[key]
+ line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3)
+ len += length(value) + length(field[++i])
+ substed = 1
+ } else
+ len += 1 + keylen
+ }
+
+ print line
+}
+
+_ACAWK
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then
+ sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g"
+else
+ cat
+fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \
+ || as_fn_error "could not setup config files machinery" "$LINENO" 5
+_ACEOF
+
+# VPATH may cause trouble with some makes, so we remove $(srcdir),
+# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and
+# trailing colons and then remove the whole line if VPATH becomes empty
+# (actually we leave an empty line to preserve line numbers).
+if test "x$srcdir" = x.; then
+ ac_vpsub='/^[ ]*VPATH[ ]*=/{
+s/:*\$(srcdir):*/:/
+s/:*\${srcdir}:*/:/
+s/:*@srcdir@:*/:/
+s/^\([^=]*=[ ]*\):*/\1/
+s/:*$//
+s/^[^=]*=[ ]*$//
+}'
+fi
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+fi # test -n "$CONFIG_FILES"
+
+# Set up the scripts for CONFIG_HEADERS section.
+# No need to generate them if there are no CONFIG_HEADERS.
+# This happens for instance with `./config.status Makefile'.
+if test -n "$CONFIG_HEADERS"; then
+cat >"$tmp/defines.awk" <<\_ACAWK ||
+BEGIN {
+_ACEOF
+
+# Transform confdefs.h into an awk script `defines.awk', embedded as
+# here-document in config.status, that substitutes the proper values into
+# config.h.in to produce config.h.
+
+# Create a delimiter string that does not exist in confdefs.h, to ease
+# handling of long lines.
+ac_delim='%!_!# '
+for ac_last_try in false false :; do
+ ac_t=`sed -n "/$ac_delim/p" confdefs.h`
+ if test -z "$ac_t"; then
+ break
+ elif $ac_last_try; then
+ as_fn_error "could not make $CONFIG_HEADERS" "$LINENO" 5
+ else
+ ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
+ fi
+done
+
+# For the awk script, D is an array of macro values keyed by name,
+# likewise P contains macro parameters if any. Preserve backslash
+# newline sequences.
+
+ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]*
+sed -n '
+s/.\{148\}/&'"$ac_delim"'/g
+t rset
+:rset
+s/^[ ]*#[ ]*define[ ][ ]*/ /
+t def
+d
+:def
+s/\\$//
+t bsnl
+s/["\\]/\\&/g
+s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\
+D["\1"]=" \3"/p
+s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p
+d
+:bsnl
+s/["\\]/\\&/g
+s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\
+D["\1"]=" \3\\\\\\n"\\/p
+t cont
+s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p
+t cont
+d
+:cont
+n
+s/.\{148\}/&'"$ac_delim"'/g
+t clear
+:clear
+s/\\$//
+t bsnlc
+s/["\\]/\\&/g; s/^/"/; s/$/"/p
+d
+:bsnlc
+s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p
+b cont
+' <confdefs.h | sed '
+s/'"$ac_delim"'/"\\\
+"/g' >>$CONFIG_STATUS || ac_write_fail=1
+
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ for (key in D) D_is_set[key] = 1
+ FS = ""
+}
+/^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ {
+ line = \$ 0
+ split(line, arg, " ")
+ if (arg[1] == "#") {
+ defundef = arg[2]
+ mac1 = arg[3]
+ } else {
+ defundef = substr(arg[1], 2)
+ mac1 = arg[2]
+ }
+ split(mac1, mac2, "(") #)
+ macro = mac2[1]
+ prefix = substr(line, 1, index(line, defundef) - 1)
+ if (D_is_set[macro]) {
+ # Preserve the white space surrounding the "#".
+ print prefix "define", macro P[macro] D[macro]
+ next
+ } else {
+ # Replace #undef with comments. This is necessary, for example,
+ # in the case of _POSIX_SOURCE, which is predefined and required
+ # on some systems where configure will not decide to define it.
+ if (defundef == "undef") {
+ print "/*", prefix defundef, macro, "*/"
+ next
+ }
+ }
+}
+{ print }
+_ACAWK
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+ as_fn_error "could not setup config headers machinery" "$LINENO" 5
+fi # test -n "$CONFIG_HEADERS"
+
+
+eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS"
+shift
+for ac_tag
+do
+ case $ac_tag in
+ :[FHLC]) ac_mode=$ac_tag; continue;;
+ esac
+ case $ac_mode$ac_tag in
+ :[FHL]*:*);;
+ :L* | :C*:*) as_fn_error "invalid tag \`$ac_tag'" "$LINENO" 5;;
+ :[FH]-) ac_tag=-:-;;
+ :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
+ esac
+ ac_save_IFS=$IFS
+ IFS=:
+ set x $ac_tag
+ IFS=$ac_save_IFS
+ shift
+ ac_file=$1
+ shift
+
+ case $ac_mode in
+ :L) ac_source=$1;;
+ :[FH])
+ ac_file_inputs=
+ for ac_f
+ do
+ case $ac_f in
+ -) ac_f="$tmp/stdin";;
+ *) # Look for the file first in the build tree, then in the source tree
+ # (if the path is not absolute). The absolute path cannot be DOS-style,
+ # because $ac_f cannot contain `:'.
+ test -f "$ac_f" ||
+ case $ac_f in
+ [\\/$]*) false;;
+ *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
+ esac ||
+ as_fn_error "cannot find input file: \`$ac_f'" "$LINENO" 5;;
+ esac
+ case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
+ as_fn_append ac_file_inputs " '$ac_f'"
+ done
+
+ # Let's still pretend it is `configure' which instantiates (i.e., don't
+ # use $as_me), people would be surprised to read:
+ # /* config.h. Generated by config.status. */
+ configure_input='Generated from '`
+ $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g'
+ `' by configure.'
+ if test x"$ac_file" != x-; then
+ configure_input="$ac_file. $configure_input"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5
+$as_echo "$as_me: creating $ac_file" >&6;}
+ fi
+ # Neutralize special characters interpreted by sed in replacement strings.
+ case $configure_input in #(
+ *\&* | *\|* | *\\* )
+ ac_sed_conf_input=`$as_echo "$configure_input" |
+ sed 's/[\\\\&|]/\\\\&/g'`;; #(
+ *) ac_sed_conf_input=$configure_input;;
+ esac
+
+ case $ac_tag in
+ *:-:* | *:-) cat >"$tmp/stdin" \
+ || as_fn_error "could not create $ac_file" "$LINENO" 5 ;;
+ esac
+ ;;
+ esac
+
+ ac_dir=`$as_dirname -- "$ac_file" ||
+$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$ac_file" : 'X\(//\)[^/]' \| \
+ X"$ac_file" : 'X\(//\)$' \| \
+ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$ac_file" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ as_dir="$ac_dir"; as_fn_mkdir_p
+ ac_builddir=.
+
+case "$ac_dir" in
+.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
+*)
+ ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
+ # A ".." for each directory in $ac_dir_suffix.
+ ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
+ case $ac_top_builddir_sub in
+ "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
+ *) ac_top_build_prefix=$ac_top_builddir_sub/ ;;
+ esac ;;
+esac
+ac_abs_top_builddir=$ac_pwd
+ac_abs_builddir=$ac_pwd$ac_dir_suffix
+# for backward compatibility:
+ac_top_builddir=$ac_top_build_prefix
+
+case $srcdir in
+ .) # We are building in place.
+ ac_srcdir=.
+ ac_top_srcdir=$ac_top_builddir_sub
+ ac_abs_top_srcdir=$ac_pwd ;;
+ [\\/]* | ?:[\\/]* ) # Absolute name.
+ ac_srcdir=$srcdir$ac_dir_suffix;
+ ac_top_srcdir=$srcdir
+ ac_abs_top_srcdir=$srcdir ;;
+ *) # Relative name.
+ ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
+ ac_top_srcdir=$ac_top_build_prefix$srcdir
+ ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
+esac
+ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
+
+
+ case $ac_mode in
+ :F)
+ #
+ # CONFIG_FILE
+ #
+
+ case $INSTALL in
+ [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
+ *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;;
+ esac
+ ac_MKDIR_P=$MKDIR_P
+ case $MKDIR_P in
+ [\\/$]* | ?:[\\/]* ) ;;
+ */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;;
+ esac
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+# If the template does not know about datarootdir, expand it.
+# FIXME: This hack should be removed a few years after 2.60.
+ac_datarootdir_hack=; ac_datarootdir_seen=
+ac_sed_dataroot='
+/datarootdir/ {
+ p
+ q
+}
+/@datadir@/p
+/@docdir@/p
+/@infodir@/p
+/@localedir@/p
+/@mandir@/p'
+case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in
+*datarootdir*) ac_datarootdir_seen=yes;;
+*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
+$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ ac_datarootdir_hack='
+ s&@datadir@&$datadir&g
+ s&@docdir@&$docdir&g
+ s&@infodir@&$infodir&g
+ s&@localedir@&$localedir&g
+ s&@mandir@&$mandir&g
+ s&\\\${datarootdir}&$datarootdir&g' ;;
+esac
+_ACEOF
+
+# Neutralize VPATH when `$srcdir' = `.'.
+# Shell code in configure.ac might set extrasub.
+# FIXME: do we really want to maintain this feature?
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ac_sed_extra="$ac_vpsub
+$extrasub
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+:t
+/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
+s|@configure_input@|$ac_sed_conf_input|;t t
+s&@top_builddir@&$ac_top_builddir_sub&;t t
+s&@top_build_prefix@&$ac_top_build_prefix&;t t
+s&@srcdir@&$ac_srcdir&;t t
+s&@abs_srcdir@&$ac_abs_srcdir&;t t
+s&@top_srcdir@&$ac_top_srcdir&;t t
+s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t
+s&@builddir@&$ac_builddir&;t t
+s&@abs_builddir@&$ac_abs_builddir&;t t
+s&@abs_top_builddir@&$ac_abs_top_builddir&;t t
+s&@INSTALL@&$ac_INSTALL&;t t
+s&@MKDIR_P@&$ac_MKDIR_P&;t t
+$ac_datarootdir_hack
+"
+eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \
+ || as_fn_error "could not create $ac_file" "$LINENO" 5
+
+test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
+ { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } &&
+ { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } &&
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
+which seems to be undefined. Please make sure it is defined." >&5
+$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
+which seems to be undefined. Please make sure it is defined." >&2;}
+
+ rm -f "$tmp/stdin"
+ case $ac_file in
+ -) cat "$tmp/out" && rm -f "$tmp/out";;
+ *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";;
+ esac \
+ || as_fn_error "could not create $ac_file" "$LINENO" 5
+ ;;
+ :H)
+ #
+ # CONFIG_HEADER
+ #
+ if test x"$ac_file" != x-; then
+ {
+ $as_echo "/* $configure_input */" \
+ && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs"
+ } >"$tmp/config.h" \
+ || as_fn_error "could not create $ac_file" "$LINENO" 5
+ if diff "$ac_file" "$tmp/config.h" >/dev/null 2>&1; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5
+$as_echo "$as_me: $ac_file is unchanged" >&6;}
+ else
+ rm -f "$ac_file"
+ mv "$tmp/config.h" "$ac_file" \
+ || as_fn_error "could not create $ac_file" "$LINENO" 5
+ fi
+ else
+ $as_echo "/* $configure_input */" \
+ && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" \
+ || as_fn_error "could not create -" "$LINENO" 5
+ fi
+# Compute "$ac_file"'s index in $config_headers.
+_am_arg="$ac_file"
+_am_stamp_count=1
+for _am_header in $config_headers :; do
+ case $_am_header in
+ $_am_arg | $_am_arg:* )
+ break ;;
+ * )
+ _am_stamp_count=`expr $_am_stamp_count + 1` ;;
+ esac
+done
+echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" ||
+$as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$_am_arg" : 'X\(//\)[^/]' \| \
+ X"$_am_arg" : 'X\(//\)$' \| \
+ X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$_am_arg" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`/stamp-h$_am_stamp_count
+ ;;
+
+ :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5
+$as_echo "$as_me: executing $ac_file commands" >&6;}
+ ;;
+ esac
+
+
+ case $ac_file$ac_mode in
+ "depfiles":C) test x"$AMDEP_TRUE" != x"" || {
+ # Autoconf 2.62 quotes --file arguments for eval, but not when files
+ # are listed without --file. Let's play safe and only enable the eval
+ # if we detect the quoting.
+ case $CONFIG_FILES in
+ *\'*) eval set x "$CONFIG_FILES" ;;
+ *) set x $CONFIG_FILES ;;
+ esac
+ shift
+ for mf
+ do
+ # Strip MF so we end up with the name of the file.
+ mf=`echo "$mf" | sed -e 's/:.*$//'`
+ # Check whether this is an Automake generated Makefile or not.
+ # We used to match only the files named `Makefile.in', but
+ # some people rename them; so instead we look at the file content.
+ # Grep'ing the first line is not enough: some people post-process
+ # each Makefile.in and add a new line on top of each file to say so.
+ # Grep'ing the whole file is not good either: AIX grep has a line
+ # limit of 2048, but all sed's we know have understand at least 4000.
+ if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then
+ dirpart=`$as_dirname -- "$mf" ||
+$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$mf" : 'X\(//\)[^/]' \| \
+ X"$mf" : 'X\(//\)$' \| \
+ X"$mf" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$mf" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ else
+ continue
+ fi
+ # Extract the definition of DEPDIR, am__include, and am__quote
+ # from the Makefile without running `make'.
+ DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
+ test -z "$DEPDIR" && continue
+ am__include=`sed -n 's/^am__include = //p' < "$mf"`
+ test -z "am__include" && continue
+ am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
+ # When using ansi2knr, U may be empty or an underscore; expand it
+ U=`sed -n 's/^U = //p' < "$mf"`
+ # Find all dependency output files, they are included files with
+ # $(DEPDIR) in their names. We invoke sed twice because it is the
+ # simplest approach to changing $(DEPDIR) to its actual value in the
+ # expansion.
+ for file in `sed -n "
+ s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
+ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
+ # Make sure the directory exists.
+ test -f "$dirpart/$file" && continue
+ fdir=`$as_dirname -- "$file" ||
+$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$file" : 'X\(//\)[^/]' \| \
+ X"$file" : 'X\(//\)$' \| \
+ X"$file" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$file" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ as_dir=$dirpart/$fdir; as_fn_mkdir_p
+ # echo "creating $dirpart/$file"
+ echo '# dummy' > "$dirpart/$file"
+ done
+ done
+}
+ ;;
+ "libtool":C)
+
+ # See if we are running on zsh, and set the options which allow our
+ # commands through without removal of \ escapes.
+ if test -n "${ZSH_VERSION+set}" ; then
+ setopt NO_GLOB_SUBST
+ fi
+
+ cfgfile="${ofile}T"
+ trap "$RM \"$cfgfile\"; exit 1" 1 2 15
+ $RM "$cfgfile"
+
+ cat <<_LT_EOF >> "$cfgfile"
+#! $SHELL
+
+# `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services.
+# Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION
+# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
+# NOTE: Changes made to this file will be lost: look at ltmain.sh.
+#
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
+# 2006, 2007, 2008 Free Software Foundation, Inc.
+# Written by Gordon Matzigkeit, 1996
+#
+# This file is part of GNU Libtool.
+#
+# GNU Libtool 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.
+#
+# As a special exception to the GNU General Public License,
+# if you distribute this file as part of a program or library that
+# is built using GNU Libtool, you may include this file under the
+# same distribution terms that you use for the rest of that program.
+#
+# GNU Libtool is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GNU Libtool; see the file COPYING. If not, a copy
+# can be downloaded from http://www.gnu.org/licenses/gpl.html, or
+# obtained by writing to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+
+
+# The names of the tagged configurations supported by this script.
+available_tags="CXX "
+
+# ### BEGIN LIBTOOL CONFIG
+
+# Which release of libtool.m4 was used?
+macro_version=$macro_version
+macro_revision=$macro_revision
+
+# Whether or not to build shared libraries.
+build_libtool_libs=$enable_shared
+
+# Whether or not to build static libraries.
+build_old_libs=$enable_static
+
+# What type of objects to build.
+pic_mode=$pic_mode
+
+# Whether or not to optimize for fast installation.
+fast_install=$enable_fast_install
+
+# The host system.
+host_alias=$host_alias
+host=$host
+host_os=$host_os
+
+# The build system.
+build_alias=$build_alias
+build=$build
+build_os=$build_os
+
+# A sed program that does not truncate output.
+SED=$lt_SED
+
+# Sed that helps us avoid accidentally triggering echo(1) options like -n.
+Xsed="\$SED -e 1s/^X//"
+
+# A grep program that handles long lines.
+GREP=$lt_GREP
+
+# An ERE matcher.
+EGREP=$lt_EGREP
+
+# A literal string matcher.
+FGREP=$lt_FGREP
+
+# A BSD- or MS-compatible name lister.
+NM=$lt_NM
+
+# Whether we need soft or hard links.
+LN_S=$lt_LN_S
+
+# What is the maximum length of a command?
+max_cmd_len=$max_cmd_len
+
+# Object file suffix (normally "o").
+objext=$ac_objext
+
+# Executable file suffix (normally "").
+exeext=$exeext
+
+# whether the shell understands "unset".
+lt_unset=$lt_unset
+
+# turn spaces into newlines.
+SP2NL=$lt_lt_SP2NL
+
+# turn newlines into spaces.
+NL2SP=$lt_lt_NL2SP
+
+# How to create reloadable object files.
+reload_flag=$lt_reload_flag
+reload_cmds=$lt_reload_cmds
+
+# An object symbol dumper.
+OBJDUMP=$lt_OBJDUMP
+
+# Method to check whether dependent libraries are shared objects.
+deplibs_check_method=$lt_deplibs_check_method
+
+# Command to use when deplibs_check_method == "file_magic".
+file_magic_cmd=$lt_file_magic_cmd
+
+# The archiver.
+AR=$lt_AR
+AR_FLAGS=$lt_AR_FLAGS
+
+# A symbol stripping program.
+STRIP=$lt_STRIP
+
+# Commands used to install an old-style archive.
+RANLIB=$lt_RANLIB
+old_postinstall_cmds=$lt_old_postinstall_cmds
+old_postuninstall_cmds=$lt_old_postuninstall_cmds
+
+# A C compiler.
+LTCC=$lt_CC
+
+# LTCC compiler flags.
+LTCFLAGS=$lt_CFLAGS
+
+# Take the output of nm and produce a listing of raw symbols and C names.
+global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe
+
+# Transform the output of nm in a proper C declaration.
+global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl
+
+# Transform the output of nm in a C name address pair.
+global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
+
+# Transform the output of nm in a C name address pair when lib prefix is needed.
+global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix
+
+# The name of the directory that contains temporary libtool files.
+objdir=$objdir
+
+# Shell to use when invoking shell scripts.
+SHELL=$lt_SHELL
+
+# An echo program that does not interpret backslashes.
+ECHO=$lt_ECHO
+
+# Used to examine libraries when file_magic_cmd begins with "file".
+MAGIC_CMD=$MAGIC_CMD
+
+# Must we lock files when doing compilation?
+need_locks=$lt_need_locks
+
+# Tool to manipulate archived DWARF debug symbol files on Mac OS X.
+DSYMUTIL=$lt_DSYMUTIL
+
+# Tool to change global to local symbols on Mac OS X.
+NMEDIT=$lt_NMEDIT
+
+# Tool to manipulate fat objects and archives on Mac OS X.
+LIPO=$lt_LIPO
+
+# ldd/readelf like tool for Mach-O binaries on Mac OS X.
+OTOOL=$lt_OTOOL
+
+# ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4.
+OTOOL64=$lt_OTOOL64
+
+# Old archive suffix (normally "a").
+libext=$libext
+
+# Shared library suffix (normally ".so").
+shrext_cmds=$lt_shrext_cmds
+
+# The commands to extract the exported symbol list from a shared archive.
+extract_expsyms_cmds=$lt_extract_expsyms_cmds
+
+# Variables whose values should be saved in libtool wrapper scripts and
+# restored at link time.
+variables_saved_for_relink=$lt_variables_saved_for_relink
+
+# Do we need the "lib" prefix for modules?
+need_lib_prefix=$need_lib_prefix
+
+# Do we need a version for libraries?
+need_version=$need_version
+
+# Library versioning type.
+version_type=$version_type
+
+# Shared library runtime path variable.
+runpath_var=$runpath_var
+
+# Shared library path variable.
+shlibpath_var=$shlibpath_var
+
+# Is shlibpath searched before the hard-coded library search path?
+shlibpath_overrides_runpath=$shlibpath_overrides_runpath
+
+# Format of library name prefix.
+libname_spec=$lt_libname_spec
+
+# List of archive names. First name is the real one, the rest are links.
+# The last name is the one that the linker finds with -lNAME
+library_names_spec=$lt_library_names_spec
+
+# The coded name of the library, if different from the real name.
+soname_spec=$lt_soname_spec
+
+# Command to use after installation of a shared archive.
+postinstall_cmds=$lt_postinstall_cmds
+
+# Command to use after uninstallation of a shared archive.
+postuninstall_cmds=$lt_postuninstall_cmds
+
+# Commands used to finish a libtool library installation in a directory.
+finish_cmds=$lt_finish_cmds
+
+# As "finish_cmds", except a single script fragment to be evaled but
+# not shown.
+finish_eval=$lt_finish_eval
+
+# Whether we should hardcode library paths into libraries.
+hardcode_into_libs=$hardcode_into_libs
+
+# Compile-time system search path for libraries.
+sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
+
+# Run-time system search path for libraries.
+sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
+
+# Whether dlopen is supported.
+dlopen_support=$enable_dlopen
+
+# Whether dlopen of programs is supported.
+dlopen_self=$enable_dlopen_self
+
+# Whether dlopen of statically linked programs is supported.
+dlopen_self_static=$enable_dlopen_self_static
+
+# Commands to strip libraries.
+old_striplib=$lt_old_striplib
+striplib=$lt_striplib
+
+
+# The linker used to build libraries.
+LD=$lt_LD
+
+# Commands used to build an old-style archive.
+old_archive_cmds=$lt_old_archive_cmds
+
+# A language specific compiler.
+CC=$lt_compiler
+
+# Is the compiler the GNU compiler?
+with_gcc=$GCC
+
+# Compiler flag to turn off builtin functions.
+no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag
+
+# How to pass a linker flag through the compiler.
+wl=$lt_lt_prog_compiler_wl
+
+# Additional compiler flags for building library objects.
+pic_flag=$lt_lt_prog_compiler_pic
+
+# Compiler flag to prevent dynamic linking.
+link_static_flag=$lt_lt_prog_compiler_static
+
+# Does compiler simultaneously support -c and -o options?
+compiler_c_o=$lt_lt_cv_prog_compiler_c_o
+
+# Whether or not to add -lc for building shared libraries.
+build_libtool_need_lc=$archive_cmds_need_lc
+
+# Whether or not to disallow shared libs when runtime libs are static.
+allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes
+
+# Compiler flag to allow reflexive dlopens.
+export_dynamic_flag_spec=$lt_export_dynamic_flag_spec
+
+# Compiler flag to generate shared objects directly from archives.
+whole_archive_flag_spec=$lt_whole_archive_flag_spec
+
+# Whether the compiler copes with passing no objects directly.
+compiler_needs_object=$lt_compiler_needs_object
+
+# Create an old-style archive from a shared archive.
+old_archive_from_new_cmds=$lt_old_archive_from_new_cmds
+
+# Create a temporary old-style archive to link instead of a shared archive.
+old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds
+
+# Commands used to build a shared archive.
+archive_cmds=$lt_archive_cmds
+archive_expsym_cmds=$lt_archive_expsym_cmds
+
+# Commands used to build a loadable module if different from building
+# a shared archive.
+module_cmds=$lt_module_cmds
+module_expsym_cmds=$lt_module_expsym_cmds
+
+# Whether we are building with GNU ld or not.
+with_gnu_ld=$lt_with_gnu_ld
+
+# Flag that allows shared libraries with undefined symbols to be built.
+allow_undefined_flag=$lt_allow_undefined_flag
+
+# Flag that enforces no undefined symbols.
+no_undefined_flag=$lt_no_undefined_flag
+
+# Flag to hardcode \$libdir into a binary during linking.
+# This must work even if \$libdir does not exist
+hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec
+
+# If ld is used when linking, flag to hardcode \$libdir into a binary
+# during linking. This must work even if \$libdir does not exist.
+hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld
+
+# Whether we need a single "-rpath" flag with a separated argument.
+hardcode_libdir_separator=$lt_hardcode_libdir_separator
+
+# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes
+# DIR into the resulting binary.
+hardcode_direct=$hardcode_direct
+
+# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes
+# DIR into the resulting binary and the resulting library dependency is
+# "absolute",i.e impossible to change by setting \${shlibpath_var} if the
+# library is relocated.
+hardcode_direct_absolute=$hardcode_direct_absolute
+
+# Set to "yes" if using the -LDIR flag during linking hardcodes DIR
+# into the resulting binary.
+hardcode_minus_L=$hardcode_minus_L
+
+# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR
+# into the resulting binary.
+hardcode_shlibpath_var=$hardcode_shlibpath_var
+
+# Set to "yes" if building a shared library automatically hardcodes DIR
+# into the library and all subsequent libraries and executables linked
+# against it.
+hardcode_automatic=$hardcode_automatic
+
+# Set to yes if linker adds runtime paths of dependent libraries
+# to runtime path list.
+inherit_rpath=$inherit_rpath
+
+# Whether libtool must link a program against all its dependency libraries.
+link_all_deplibs=$link_all_deplibs
+
+# Fix the shell variable \$srcfile for the compiler.
+fix_srcfile_path=$lt_fix_srcfile_path
+
+# Set to "yes" if exported symbols are required.
+always_export_symbols=$always_export_symbols
+
+# The commands to list exported symbols.
+export_symbols_cmds=$lt_export_symbols_cmds
+
+# Symbols that should not be listed in the preloaded symbols.
+exclude_expsyms=$lt_exclude_expsyms
+
+# Symbols that must always be exported.
+include_expsyms=$lt_include_expsyms
+
+# Commands necessary for linking programs (against libraries) with templates.
+prelink_cmds=$lt_prelink_cmds
+
+# Specify filename containing input files.
+file_list_spec=$lt_file_list_spec
+
+# How to hardcode a shared library path into an executable.
+hardcode_action=$hardcode_action
+
+# The directories searched by this compiler when creating a shared library.
+compiler_lib_search_dirs=$lt_compiler_lib_search_dirs
+
+# Dependencies to place before and after the objects being linked to
+# create a shared library.
+predep_objects=$lt_predep_objects
+postdep_objects=$lt_postdep_objects
+predeps=$lt_predeps
+postdeps=$lt_postdeps
+
+# The library search path used internally by the compiler when linking
+# a shared library.
+compiler_lib_search_path=$lt_compiler_lib_search_path
+
+# ### END LIBTOOL CONFIG
+
+_LT_EOF
+
+ case $host_os in
+ aix3*)
+ cat <<\_LT_EOF >> "$cfgfile"
+# AIX sometimes has problems with the GCC collect2 program. For some
+# reason, if we set the COLLECT_NAMES environment variable, the problems
+# vanish in a puff of smoke.
+if test "X${COLLECT_NAMES+set}" != Xset; then
+ COLLECT_NAMES=
+ export COLLECT_NAMES
+fi
+_LT_EOF
+ ;;
+ esac
+
+
+ltmain="$ac_aux_dir/ltmain.sh"
+
+
+ # We use sed instead of cat because bash on DJGPP gets confused if
+ # if finds mixed CR/LF and LF-only lines. Since sed operates in
+ # text mode, it properly converts lines to CR/LF. This bash problem
+ # is reportedly fixed, but why not run on old versions too?
+ sed '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \
+ || (rm -f "$cfgfile"; exit 1)
+
+ case $xsi_shell in
+ yes)
+ cat << \_LT_EOF >> "$cfgfile"
+
+# func_dirname file append nondir_replacement
+# Compute the dirname of FILE. If nonempty, add APPEND to the result,
+# otherwise set result to NONDIR_REPLACEMENT.
+func_dirname ()
+{
+ case ${1} in
+ */*) func_dirname_result="${1%/*}${2}" ;;
+ * ) func_dirname_result="${3}" ;;
+ esac
+}
+
+# func_basename file
+func_basename ()
+{
+ func_basename_result="${1##*/}"
+}
+
+# func_dirname_and_basename file append nondir_replacement
+# perform func_basename and func_dirname in a single function
+# call:
+# dirname: Compute the dirname of FILE. If nonempty,
+# add APPEND to the result, otherwise set result
+# to NONDIR_REPLACEMENT.
+# value returned in "$func_dirname_result"
+# basename: Compute filename of FILE.
+# value retuned in "$func_basename_result"
+# Implementation must be kept synchronized with func_dirname
+# and func_basename. For efficiency, we do not delegate to
+# those functions but instead duplicate the functionality here.
+func_dirname_and_basename ()
+{
+ case ${1} in
+ */*) func_dirname_result="${1%/*}${2}" ;;
+ * ) func_dirname_result="${3}" ;;
+ esac
+ func_basename_result="${1##*/}"
+}
+
+# func_stripname prefix suffix name
+# strip PREFIX and SUFFIX off of NAME.
+# PREFIX and SUFFIX must not contain globbing or regex special
+# characters, hashes, percent signs, but SUFFIX may contain a leading
+# dot (in which case that matches only a dot).
+func_stripname ()
+{
+ # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are
+ # positional parameters, so assign one to ordinary parameter first.
+ func_stripname_result=${3}
+ func_stripname_result=${func_stripname_result#"${1}"}
+ func_stripname_result=${func_stripname_result%"${2}"}
+}
+
+# func_opt_split
+func_opt_split ()
+{
+ func_opt_split_opt=${1%%=*}
+ func_opt_split_arg=${1#*=}
+}
+
+# func_lo2o object
+func_lo2o ()
+{
+ case ${1} in
+ *.lo) func_lo2o_result=${1%.lo}.${objext} ;;
+ *) func_lo2o_result=${1} ;;
+ esac
+}
+
+# func_xform libobj-or-source
+func_xform ()
+{
+ func_xform_result=${1%.*}.lo
+}
+
+# func_arith arithmetic-term...
+func_arith ()
+{
+ func_arith_result=$(( $* ))
+}
+
+# func_len string
+# STRING may not start with a hyphen.
+func_len ()
+{
+ func_len_result=${#1}
+}
+
+_LT_EOF
+ ;;
+ *) # Bourne compatible functions.
+ cat << \_LT_EOF >> "$cfgfile"
+
+# func_dirname file append nondir_replacement
+# Compute the dirname of FILE. If nonempty, add APPEND to the result,
+# otherwise set result to NONDIR_REPLACEMENT.
+func_dirname ()
+{
+ # Extract subdirectory from the argument.
+ func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"`
+ if test "X$func_dirname_result" = "X${1}"; then
+ func_dirname_result="${3}"
+ else
+ func_dirname_result="$func_dirname_result${2}"
+ fi
+}
+
+# func_basename file
+func_basename ()
+{
+ func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"`
+}
+
+
+# func_stripname prefix suffix name
+# strip PREFIX and SUFFIX off of NAME.
+# PREFIX and SUFFIX must not contain globbing or regex special
+# characters, hashes, percent signs, but SUFFIX may contain a leading
+# dot (in which case that matches only a dot).
+# func_strip_suffix prefix name
+func_stripname ()
+{
+ case ${2} in
+ .*) func_stripname_result=`$ECHO "X${3}" \
+ | $Xsed -e "s%^${1}%%" -e "s%\\\\${2}\$%%"`;;
+ *) func_stripname_result=`$ECHO "X${3}" \
+ | $Xsed -e "s%^${1}%%" -e "s%${2}\$%%"`;;
+ esac
+}
+
+# sed scripts:
+my_sed_long_opt='1s/^\(-[^=]*\)=.*/\1/;q'
+my_sed_long_arg='1s/^-[^=]*=//'
+
+# func_opt_split
+func_opt_split ()
+{
+ func_opt_split_opt=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_opt"`
+ func_opt_split_arg=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_arg"`
+}
+
+# func_lo2o object
+func_lo2o ()
+{
+ func_lo2o_result=`$ECHO "X${1}" | $Xsed -e "$lo2o"`
+}
+
+# func_xform libobj-or-source
+func_xform ()
+{
+ func_xform_result=`$ECHO "X${1}" | $Xsed -e 's/\.[^.]*$/.lo/'`
+}
+
+# func_arith arithmetic-term...
+func_arith ()
+{
+ func_arith_result=`expr "$@"`
+}
+
+# func_len string
+# STRING may not start with a hyphen.
+func_len ()
+{
+ func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len`
+}
+
+_LT_EOF
+esac
+
+case $lt_shell_append in
+ yes)
+ cat << \_LT_EOF >> "$cfgfile"
+
+# func_append var value
+# Append VALUE to the end of shell variable VAR.
+func_append ()
+{
+ eval "$1+=\$2"
+}
+_LT_EOF
+ ;;
+ *)
+ cat << \_LT_EOF >> "$cfgfile"
+
+# func_append var value
+# Append VALUE to the end of shell variable VAR.
+func_append ()
+{
+ eval "$1=\$$1\$2"
+}
+
+_LT_EOF
+ ;;
+ esac
+
+
+ sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \
+ || (rm -f "$cfgfile"; exit 1)
+
+ mv -f "$cfgfile" "$ofile" ||
+ (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
+ chmod +x "$ofile"
+
+
+ cat <<_LT_EOF >> "$ofile"
+
+# ### BEGIN LIBTOOL TAG CONFIG: CXX
+
+# The linker used to build libraries.
+LD=$lt_LD_CXX
+
+# Commands used to build an old-style archive.
+old_archive_cmds=$lt_old_archive_cmds_CXX
+
+# A language specific compiler.
+CC=$lt_compiler_CXX
+
+# Is the compiler the GNU compiler?
+with_gcc=$GCC_CXX
+
+# Compiler flag to turn off builtin functions.
+no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_CXX
+
+# How to pass a linker flag through the compiler.
+wl=$lt_lt_prog_compiler_wl_CXX
+
+# Additional compiler flags for building library objects.
+pic_flag=$lt_lt_prog_compiler_pic_CXX
+
+# Compiler flag to prevent dynamic linking.
+link_static_flag=$lt_lt_prog_compiler_static_CXX
+
+# Does compiler simultaneously support -c and -o options?
+compiler_c_o=$lt_lt_cv_prog_compiler_c_o_CXX
+
+# Whether or not to add -lc for building shared libraries.
+build_libtool_need_lc=$archive_cmds_need_lc_CXX
+
+# Whether or not to disallow shared libs when runtime libs are static.
+allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_CXX
+
+# Compiler flag to allow reflexive dlopens.
+export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_CXX
+
+# Compiler flag to generate shared objects directly from archives.
+whole_archive_flag_spec=$lt_whole_archive_flag_spec_CXX
+
+# Whether the compiler copes with passing no objects directly.
+compiler_needs_object=$lt_compiler_needs_object_CXX
+
+# Create an old-style archive from a shared archive.
+old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_CXX
+
+# Create a temporary old-style archive to link instead of a shared archive.
+old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_CXX
+
+# Commands used to build a shared archive.
+archive_cmds=$lt_archive_cmds_CXX
+archive_expsym_cmds=$lt_archive_expsym_cmds_CXX
+
+# Commands used to build a loadable module if different from building
+# a shared archive.
+module_cmds=$lt_module_cmds_CXX
+module_expsym_cmds=$lt_module_expsym_cmds_CXX
+
+# Whether we are building with GNU ld or not.
+with_gnu_ld=$lt_with_gnu_ld_CXX
+
+# Flag that allows shared libraries with undefined symbols to be built.
+allow_undefined_flag=$lt_allow_undefined_flag_CXX
+
+# Flag that enforces no undefined symbols.
+no_undefined_flag=$lt_no_undefined_flag_CXX
+
+# Flag to hardcode \$libdir into a binary during linking.
+# This must work even if \$libdir does not exist
+hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_CXX
+
+# If ld is used when linking, flag to hardcode \$libdir into a binary
+# during linking. This must work even if \$libdir does not exist.
+hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_CXX
+
+# Whether we need a single "-rpath" flag with a separated argument.
+hardcode_libdir_separator=$lt_hardcode_libdir_separator_CXX
+
+# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes
+# DIR into the resulting binary.
+hardcode_direct=$hardcode_direct_CXX
+
+# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes
+# DIR into the resulting binary and the resulting library dependency is
+# "absolute",i.e impossible to change by setting \${shlibpath_var} if the
+# library is relocated.
+hardcode_direct_absolute=$hardcode_direct_absolute_CXX
+
+# Set to "yes" if using the -LDIR flag during linking hardcodes DIR
+# into the resulting binary.
+hardcode_minus_L=$hardcode_minus_L_CXX
+
+# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR
+# into the resulting binary.
+hardcode_shlibpath_var=$hardcode_shlibpath_var_CXX
+
+# Set to "yes" if building a shared library automatically hardcodes DIR
+# into the library and all subsequent libraries and executables linked
+# against it.
+hardcode_automatic=$hardcode_automatic_CXX
+
+# Set to yes if linker adds runtime paths of dependent libraries
+# to runtime path list.
+inherit_rpath=$inherit_rpath_CXX
+
+# Whether libtool must link a program against all its dependency libraries.
+link_all_deplibs=$link_all_deplibs_CXX
+
+# Fix the shell variable \$srcfile for the compiler.
+fix_srcfile_path=$lt_fix_srcfile_path_CXX
+
+# Set to "yes" if exported symbols are required.
+always_export_symbols=$always_export_symbols_CXX
+
+# The commands to list exported symbols.
+export_symbols_cmds=$lt_export_symbols_cmds_CXX
+
+# Symbols that should not be listed in the preloaded symbols.
+exclude_expsyms=$lt_exclude_expsyms_CXX
+
+# Symbols that must always be exported.
+include_expsyms=$lt_include_expsyms_CXX
+
+# Commands necessary for linking programs (against libraries) with templates.
+prelink_cmds=$lt_prelink_cmds_CXX
+
+# Specify filename containing input files.
+file_list_spec=$lt_file_list_spec_CXX
+
+# How to hardcode a shared library path into an executable.
+hardcode_action=$hardcode_action_CXX
+
+# The directories searched by this compiler when creating a shared library.
+compiler_lib_search_dirs=$lt_compiler_lib_search_dirs_CXX
+
+# Dependencies to place before and after the objects being linked to
+# create a shared library.
+predep_objects=$lt_predep_objects_CXX
+postdep_objects=$lt_postdep_objects_CXX
+predeps=$lt_predeps_CXX
+postdeps=$lt_postdeps_CXX
+
+# The library search path used internally by the compiler when linking
+# a shared library.
+compiler_lib_search_path=$lt_compiler_lib_search_path_CXX
+
+# ### END LIBTOOL TAG CONFIG: CXX
+_LT_EOF
+
+ ;;
+
+ esac
+done # for ac_tag
+
+
+as_fn_exit 0
+_ACEOF
+ac_clean_files=$ac_clean_files_save
+
+test $ac_write_fail = 0 ||
+ as_fn_error "write failure creating $CONFIG_STATUS" "$LINENO" 5
+
+
+# configure is writing to config.log, and then calls config.status.
+# config.status does its own redirection, appending to config.log.
+# Unfortunately, on DOS this fails, as config.log is still kept open
+# by configure, so config.status won't be able to write to it; its
+# output is simply discarded. So we exec the FD to /dev/null,
+# effectively closing config.log, so it can be properly (re)opened and
+# appended to by config.status. When coming back to configure, we
+# need to make the FD available again.
+if test "$no_create" != yes; then
+ ac_cs_success=:
+ ac_config_status_args=
+ test "$silent" = yes &&
+ ac_config_status_args="$ac_config_status_args --quiet"
+ exec 5>/dev/null
+ $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false
+ exec 5>>config.log
+ # Use ||, not &&, to avoid exiting from the if with $? = 1, which
+ # would make configure fail if this is the last instruction.
+ $ac_cs_success || as_fn_exit $?
+fi
+if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
+$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
+fi
+
+
+######## Show a configuration report ########
+if test -n "$JADE"; then
+ jade_report="$JADE";
+else
+ jade_report="not present"
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}:
+ QTDIR $QTDIR
+ QTDIR_INC $QTDIR_INC
+ QTDIR_BIN $QTDIR_BIN
+ QT_LIBS $QT_LIBS
+
+ MusE configured
+
+ LASH support: $LASH_FOUND
+ OSC support: $OSC
+ DSSI support: $DSSI
+ FluidSynth: $muse_enable_fluidlib
+
+ jade: $jade_report
+ doxygen: $DOXYGEN
+ graphviz: $DOT
+ perl: $PERL
+ treeviews in doxygen
+ html output: $report_doxy_treeview
+
+ C++ compiler: $CXX
+ optimizing: $report_optimise
+ debug: $report_debug
+ optimise for arch: $report_march
+ SSE optimizations $report_sse
+ python bindings: $enable_python
+
+ installation prefix: $prefix
+
+ Deprecated:
+ ---------------------------------------------------
+ using rtcap: $report_rtcap
+ setuid root install: $SUIDINSTALL
+ setuid root build: $SUIDBUILD
+ VST/win support: $VST
+
+" >&5
+$as_echo "$as_me:
+ QTDIR $QTDIR
+ QTDIR_INC $QTDIR_INC
+ QTDIR_BIN $QTDIR_BIN
+ QT_LIBS $QT_LIBS
+
+ MusE configured
+
+ LASH support: $LASH_FOUND
+ OSC support: $OSC
+ DSSI support: $DSSI
+ FluidSynth: $muse_enable_fluidlib
+
+ jade: $jade_report
+ doxygen: $DOXYGEN
+ graphviz: $DOT
+ perl: $PERL
+ treeviews in doxygen
+ html output: $report_doxy_treeview
+
+ C++ compiler: $CXX
+ optimizing: $report_optimise
+ debug: $report_debug
+ optimise for arch: $report_march
+ SSE optimizations $report_sse
+ python bindings: $enable_python
+
+ installation prefix: $prefix
+
+ Deprecated:
+ ---------------------------------------------------
+ using rtcap: $report_rtcap
+ setuid root install: $SUIDINSTALL
+ setuid root build: $SUIDBUILD
+ VST/win support: $VST
+
+" >&6;}
+
diff --git a/muse2/autom4te.cache/requests b/muse2/autom4te.cache/requests
new file mode 100644
index 00000000..3af686c5
--- /dev/null
+++ b/muse2/autom4te.cache/requests
@@ -0,0 +1,516 @@
+# This file was generated by Autom4te Tue Dec 22 07:01:21 UTC 2009.
+# It contains the lists of macros which have been traced.
+# It can be safely removed.
+
+@request = (
+ bless( [
+ '0',
+ 1,
+ [
+ '/usr/share/autoconf'
+ ],
+ [
+ '/usr/share/autoconf/autoconf/autoconf.m4f',
+ '/usr/share/aclocal/argz.m4',
+ '/usr/share/aclocal/ltdl.m4',
+ '/usr/share/aclocal/pkg.m4',
+ '/usr/share/aclocal-1.11/amversion.m4',
+ '/usr/share/aclocal-1.11/auxdir.m4',
+ '/usr/share/aclocal-1.11/cond.m4',
+ '/usr/share/aclocal-1.11/depend.m4',
+ '/usr/share/aclocal-1.11/depout.m4',
+ '/usr/share/aclocal-1.11/header.m4',
+ '/usr/share/aclocal-1.11/init.m4',
+ '/usr/share/aclocal-1.11/install-sh.m4',
+ '/usr/share/aclocal-1.11/lead-dot.m4',
+ '/usr/share/aclocal-1.11/make.m4',
+ '/usr/share/aclocal-1.11/missing.m4',
+ '/usr/share/aclocal-1.11/mkdirp.m4',
+ '/usr/share/aclocal-1.11/options.m4',
+ '/usr/share/aclocal-1.11/python.m4',
+ '/usr/share/aclocal-1.11/runlog.m4',
+ '/usr/share/aclocal-1.11/sanity.m4',
+ '/usr/share/aclocal-1.11/silent.m4',
+ '/usr/share/aclocal-1.11/strip.m4',
+ '/usr/share/aclocal-1.11/substnot.m4',
+ '/usr/share/aclocal-1.11/tar.m4',
+ 'm4/aclocal-include.m4',
+ 'm4/alsa.m4',
+ 'm4/docbook.m4',
+ 'm4/libtool.m4',
+ 'm4/ltoptions.m4',
+ 'm4/ltsugar.m4',
+ 'm4/ltversion.m4',
+ 'm4/lt~obsolete.m4',
+ 'm4/qt.m4',
+ 'configure.ac'
+ ],
+ {
+ 'AM_ENABLE_STATIC' => 1,
+ 'AC_LIBTOOL_LANG_RC_CONFIG' => 1,
+ '_LT_AC_SHELL_INIT' => 1,
+ 'AC_DEFUN' => 1,
+ 'AC_PROG_LIBTOOL' => 1,
+ '_LT_AC_LANG_CXX_CONFIG' => 1,
+ 'AM_PROG_MKDIR_P' => 1,
+ 'AM_PYTHON_CHECK_VERSION' => 1,
+ 'AM_AUTOMAKE_VERSION' => 1,
+ 'AM_SUBST_NOTMAKE' => 1,
+ 'AM_MISSING_PROG' => 1,
+ 'AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH' => 1,
+ '_LT_AC_LANG_C_CONFIG' => 1,
+ 'AM_PROG_INSTALL_STRIP' => 1,
+ '_m4_warn' => 1,
+ 'AC_LIBTOOL_OBJDIR' => 1,
+ 'gl_FUNC_ARGZ' => 1,
+ 'LTOBSOLETE_VERSION' => 1,
+ 'AM_SANITY_CHECK' => 1,
+ 'AC_LIBTOOL_LANG_GCJ_CONFIG' => 1,
+ 'AC_LIBTOOL_PROG_COMPILER_PIC' => 1,
+ 'LT_LIB_M' => 1,
+ '_LT_AC_CHECK_DLFCN' => 1,
+ 'AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE' => 1,
+ 'LTSUGAR_VERSION' => 1,
+ '_LT_PROG_LTMAIN' => 1,
+ 'LT_SYS_SYMBOL_USCORE' => 1,
+ '_AM_PROG_TAR' => 1,
+ 'AC_LIBTOOL_GCJ' => 1,
+ 'LT_FUNC_DLSYM_USCORE' => 1,
+ 'PGAC_CHECK_DOCBOOK' => 1,
+ 'LT_SYS_DLOPEN_DEPLIBS' => 1,
+ 'AC_LIBTOOL_CONFIG' => 1,
+ '_LT_AC_LANG_F77' => 1,
+ 'AC_LTDL_DLLIB' => 1,
+ '_AM_SUBST_NOTMAKE' => 1,
+ '_AM_AUTOCONF_VERSION' => 1,
+ 'AM_DISABLE_SHARED' => 1,
+ '_LTDL_SETUP' => 1,
+ 'AM_PROG_LIBTOOL' => 1,
+ '_LT_AC_LANG_CXX' => 1,
+ 'PGAC_PROG_NSGMLS' => 1,
+ 'AM_PROG_LD' => 1,
+ '_LT_AC_FILE_LTDLL_C' => 1,
+ 'AC_LIB_LTDL' => 1,
+ 'AU_DEFUN' => 1,
+ 'AC_PROG_NM' => 1,
+ 'AC_LIBTOOL_DLOPEN' => 1,
+ 'AC_PROG_LD' => 1,
+ 'AC_PROG_LD_GNU' => 1,
+ 'AC_ENABLE_FAST_INSTALL' => 1,
+ 'AC_LIBTOOL_FC' => 1,
+ 'LTDL_CONVENIENCE' => 1,
+ '_AM_SET_OPTION' => 1,
+ 'AC_LTDL_PREOPEN' => 1,
+ '_LT_LINKER_BOILERPLATE' => 1,
+ 'AC_LIBTOOL_LANG_CXX_CONFIG' => 1,
+ 'AC_LIBTOOL_PROG_CC_C_O' => 1,
+ 'gl_PREREQ_ARGZ' => 1,
+ 'PGAC_PATH_DOCBOOK_STYLESHEETS' => 1,
+ 'LT_SUPPORTED_TAG' => 1,
+ 'AM_OUTPUT_DEPENDENCY_COMMANDS' => 1,
+ 'LT_PROG_RC' => 1,
+ 'LT_SYS_MODULE_EXT' => 1,
+ 'AC_DEFUN_ONCE' => 1,
+ '_LT_AC_LANG_GCJ' => 1,
+ 'AC_LTDL_OBJDIR' => 1,
+ '_LT_PATH_TOOL_PREFIX' => 1,
+ 'AC_LIBTOOL_RC' => 1,
+ '_LT_AC_PROG_ECHO_BACKSLASH' => 1,
+ 'AC_DISABLE_FAST_INSTALL' => 1,
+ 'AM_SILENT_RULES' => 1,
+ 'include' => 1,
+ '_LT_AC_TRY_DLOPEN_SELF' => 1,
+ '_LT_AC_SYS_LIBPATH_AIX' => 1,
+ 'LT_AC_PROG_SED' => 1,
+ 'AM_ENABLE_SHARED' => 1,
+ 'LTDL_INSTALLABLE' => 1,
+ '_LT_AC_LANG_GCJ_CONFIG' => 1,
+ 'AC_ENABLE_SHARED' => 1,
+ 'AC_LIBTOOL_SYS_HARD_LINK_LOCKS' => 1,
+ 'AC_ENABLE_STATIC' => 1,
+ '_LT_AC_TAGVAR' => 1,
+ 'AC_LIBTOOL_LANG_F77_CONFIG' => 1,
+ 'AM_CONDITIONAL' => 1,
+ 'LT_LIB_DLLOAD' => 1,
+ 'LTVERSION_VERSION' => 1,
+ 'LTDL_INIT' => 1,
+ 'm4_include' => 1,
+ 'AM_PROG_INSTALL_SH' => 1,
+ 'AC_PROG_EGREP' => 1,
+ 'AM_PATH_PYTHON' => 1,
+ 'AC_PATH_MAGIC' => 1,
+ '_AC_AM_CONFIG_HEADER_HOOK' => 1,
+ 'AC_LTDL_SYSSEARCHPATH' => 1,
+ 'AM_MAKE_INCLUDE' => 1,
+ 'LT_CMD_MAX_LEN' => 1,
+ '_LT_AC_TAGCONFIG' => 1,
+ 'm4_pattern_forbid' => 1,
+ '_LT_LINKER_OPTION' => 1,
+ 'AC_LIBTOOL_COMPILER_OPTION' => 1,
+ 'AC_DISABLE_SHARED' => 1,
+ '_LT_COMPILER_BOILERPLATE' => 1,
+ 'AC_LIBTOOL_WIN32_DLL' => 1,
+ 'AC_LIBTOOL_SETUP' => 1,
+ 'AC_PROG_LD_RELOAD_FLAG' => 1,
+ 'AC_LTDL_DLSYM_USCORE' => 1,
+ 'AM_MISSING_HAS_RUN' => 1,
+ 'LT_LANG' => 1,
+ 'LT_SYS_DLSEARCH_PATH' => 1,
+ 'LT_CONFIG_LTDL_DIR' => 1,
+ 'AC_LIBTOOL_DLOPEN_SELF' => 1,
+ 'LT_OUTPUT' => 1,
+ 'AC_LIBTOOL_PROG_LD_SHLIBS' => 1,
+ '_PKG_SHORT_ERRORS_SUPPORTED' => 1,
+ 'AC_WITH_LTDL' => 1,
+ 'AC_LIBTOOL_LINKER_OPTION' => 1,
+ 'PKG_CHECK_EXISTS' => 1,
+ 'LT_AC_PROG_RC' => 1,
+ 'AC_LIBTOOL_CXX' => 1,
+ 'LT_INIT' => 1,
+ 'LT_AC_PROG_GCJ' => 1,
+ 'LT_SYS_DLOPEN_SELF' => 1,
+ 'AM_DEP_TRACK' => 1,
+ 'AM_DISABLE_STATIC' => 1,
+ 'PGAC_PROG_JADE' => 1,
+ 'AM_CONFIG_HEADER' => 1,
+ '_AC_PROG_LIBTOOL' => 1,
+ '_AM_IF_OPTION' => 1,
+ 'AC_PATH_TOOL_PREFIX' => 1,
+ 'm4_pattern_allow' => 1,
+ 'AC_LIBTOOL_F77' => 1,
+ 'AM_SET_LEADING_DOT' => 1,
+ 'LT_AC_PROG_EGREP' => 1,
+ '_AM_DEPENDENCIES' => 1,
+ 'AC_LIBTOOL_LANG_C_CONFIG' => 1,
+ 'LTOPTIONS_VERSION' => 1,
+ '_LT_AC_SYS_COMPILER' => 1,
+ 'AM_PROG_NM' => 1,
+ 'PKG_CHECK_MODULES' => 1,
+ 'AC_LIBLTDL_CONVENIENCE' => 1,
+ 'AC_DEPLIBS_CHECK_METHOD' => 1,
+ 'AC_LIBLTDL_INSTALLABLE' => 1,
+ 'AM_SET_CURRENT_AUTOMAKE_VERSION' => 1,
+ 'AC_LTDL_ENABLE_INSTALL' => 1,
+ 'LT_PROG_GCJ' => 1,
+ 'AC_LIBTOOL_SYS_DYNAMIC_LINKER' => 1,
+ 'AM_INIT_AUTOMAKE' => 1,
+ 'AC_DISABLE_STATIC' => 1,
+ 'AM_PATH_ALSA' => 1,
+ 'LT_PATH_NM' => 1,
+ 'AC_LTDL_SHLIBEXT' => 1,
+ 'AM_ACLOCAL_INCLUDE' => 1,
+ '_LT_AC_LOCK' => 1,
+ '_LT_AC_LANG_RC_CONFIG' => 1,
+ 'LT_SYS_MODULE_PATH' => 1,
+ 'LT_WITH_LTDL' => 1,
+ 'AC_LIBTOOL_POSTDEP_PREDEP' => 1,
+ 'AC_LTDL_SHLIBPATH' => 1,
+ 'AM_AUX_DIR_EXPAND' => 1,
+ 'AC_LIBTOOL_PROG_COMPILER_NO_RTTI' => 1,
+ '_LT_AC_LANG_F77_CONFIG' => 1,
+ 'CONFIGURE_QT' => 1,
+ '_LT_COMPILER_OPTION' => 1,
+ '_AM_SET_OPTIONS' => 1,
+ 'AM_RUN_LOG' => 1,
+ '_AM_OUTPUT_DEPENDENCY_COMMANDS' => 1,
+ 'AC_LIBTOOL_PICMODE' => 1,
+ 'AC_LTDL_SYS_DLOPEN_DEPLIBS' => 1,
+ 'AC_LIBTOOL_SYS_OLD_ARCHIVE' => 1,
+ 'AC_CHECK_LIBM' => 1,
+ 'LT_PATH_LD' => 1,
+ 'AC_LIBTOOL_SYS_LIB_STRIP' => 1,
+ '_AM_MANGLE_OPTION' => 1,
+ 'AC_LIBTOOL_SYS_MAX_CMD_LEN' => 1,
+ 'AC_LTDL_SYMBOL_USCORE' => 1,
+ 'AM_SET_DEPDIR' => 1,
+ 'PKG_PROG_PKG_CONFIG' => 1,
+ '_LT_CC_BASENAME' => 1,
+ '_LT_LIBOBJ' => 1
+ }
+ ], 'Autom4te::Request' ),
+ bless( [
+ '1',
+ 1,
+ [
+ '/usr/share/autoconf'
+ ],
+ [
+ '/usr/share/autoconf/autoconf/autoconf.m4f',
+ 'aclocal.m4',
+ 'configure.ac'
+ ],
+ {
+ 'AM_PROG_F77_C_O' => 1,
+ '_LT_AC_TAGCONFIG' => 1,
+ 'm4_pattern_forbid' => 1,
+ 'AC_INIT' => 1,
+ 'AC_CANONICAL_TARGET' => 1,
+ '_AM_COND_IF' => 1,
+ 'AC_CONFIG_LIBOBJ_DIR' => 1,
+ 'AC_SUBST' => 1,
+ 'AC_CANONICAL_HOST' => 1,
+ 'AC_FC_SRCEXT' => 1,
+ 'AC_PROG_LIBTOOL' => 1,
+ 'AM_INIT_AUTOMAKE' => 1,
+ 'AC_CONFIG_SUBDIRS' => 1,
+ 'AM_AUTOMAKE_VERSION' => 1,
+ 'LT_CONFIG_LTDL_DIR' => 1,
+ 'AC_CONFIG_LINKS' => 1,
+ 'AC_REQUIRE_AUX_FILE' => 1,
+ 'LT_SUPPORTED_TAG' => 1,
+ 'm4_sinclude' => 1,
+ 'AM_MAINTAINER_MODE' => 1,
+ 'AM_GNU_GETTEXT_INTL_SUBDIR' => 1,
+ '_m4_warn' => 1,
+ 'AM_PROG_CXX_C_O' => 1,
+ '_AM_COND_ENDIF' => 1,
+ 'AM_ENABLE_MULTILIB' => 1,
+ 'AM_SILENT_RULES' => 1,
+ 'AC_CONFIG_FILES' => 1,
+ 'include' => 1,
+ 'LT_INIT' => 1,
+ 'AM_GNU_GETTEXT' => 1,
+ 'AC_LIBSOURCE' => 1,
+ 'AC_CANONICAL_BUILD' => 1,
+ 'AM_PROG_FC_C_O' => 1,
+ 'AC_FC_FREEFORM' => 1,
+ 'AH_OUTPUT' => 1,
+ 'AC_CONFIG_AUX_DIR' => 1,
+ '_AM_SUBST_NOTMAKE' => 1,
+ 'm4_pattern_allow' => 1,
+ 'AM_PROG_CC_C_O' => 1,
+ 'sinclude' => 1,
+ 'AM_CONDITIONAL' => 1,
+ 'AC_CANONICAL_SYSTEM' => 1,
+ 'AC_CONFIG_HEADERS' => 1,
+ 'AC_DEFINE_TRACE_LITERAL' => 1,
+ 'm4_include' => 1,
+ '_AM_COND_ELSE' => 1,
+ 'AC_SUBST_TRACE' => 1
+ }
+ ], 'Autom4te::Request' ),
+ bless( [
+ '2',
+ 1,
+ [
+ '/usr/share/autoconf'
+ ],
+ [
+ '/usr/share/autoconf/autoconf/autoconf.m4f',
+ '/usr/share/aclocal/argz.m4',
+ '/usr/share/aclocal/ltdl.m4',
+ '/usr/share/aclocal/pkg.m4',
+ '/usr/share/aclocal-1.11/amversion.m4',
+ '/usr/share/aclocal-1.11/auxdir.m4',
+ '/usr/share/aclocal-1.11/cond.m4',
+ '/usr/share/aclocal-1.11/depend.m4',
+ '/usr/share/aclocal-1.11/depout.m4',
+ '/usr/share/aclocal-1.11/header.m4',
+ '/usr/share/aclocal-1.11/init.m4',
+ '/usr/share/aclocal-1.11/install-sh.m4',
+ '/usr/share/aclocal-1.11/lead-dot.m4',
+ '/usr/share/aclocal-1.11/make.m4',
+ '/usr/share/aclocal-1.11/missing.m4',
+ '/usr/share/aclocal-1.11/mkdirp.m4',
+ '/usr/share/aclocal-1.11/options.m4',
+ '/usr/share/aclocal-1.11/python.m4',
+ '/usr/share/aclocal-1.11/runlog.m4',
+ '/usr/share/aclocal-1.11/sanity.m4',
+ '/usr/share/aclocal-1.11/silent.m4',
+ '/usr/share/aclocal-1.11/strip.m4',
+ '/usr/share/aclocal-1.11/substnot.m4',
+ '/usr/share/aclocal-1.11/tar.m4',
+ 'm4/aclocal-include.m4',
+ 'm4/alsa.m4',
+ 'm4/docbook.m4',
+ 'm4/libtool.m4',
+ 'm4/ltoptions.m4',
+ 'm4/ltsugar.m4',
+ 'm4/ltversion.m4',
+ 'm4/lt~obsolete.m4',
+ 'configure.ac'
+ ],
+ {
+ 'AM_ENABLE_STATIC' => 1,
+ 'AC_LIBTOOL_LANG_RC_CONFIG' => 1,
+ '_LT_AC_SHELL_INIT' => 1,
+ 'AC_DEFUN' => 1,
+ 'AC_PROG_LIBTOOL' => 1,
+ '_LT_AC_LANG_CXX_CONFIG' => 1,
+ 'AM_PROG_MKDIR_P' => 1,
+ 'AM_PYTHON_CHECK_VERSION' => 1,
+ 'AM_AUTOMAKE_VERSION' => 1,
+ 'AM_SUBST_NOTMAKE' => 1,
+ 'AM_MISSING_PROG' => 1,
+ 'AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH' => 1,
+ '_LT_AC_LANG_C_CONFIG' => 1,
+ 'AM_PROG_INSTALL_STRIP' => 1,
+ '_m4_warn' => 1,
+ 'AC_LIBTOOL_OBJDIR' => 1,
+ 'gl_FUNC_ARGZ' => 1,
+ 'LTOBSOLETE_VERSION' => 1,
+ 'AM_SANITY_CHECK' => 1,
+ 'AC_LIBTOOL_LANG_GCJ_CONFIG' => 1,
+ 'AC_LIBTOOL_PROG_COMPILER_PIC' => 1,
+ 'LT_LIB_M' => 1,
+ '_LT_AC_CHECK_DLFCN' => 1,
+ 'AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE' => 1,
+ 'LTSUGAR_VERSION' => 1,
+ '_LT_PROG_LTMAIN' => 1,
+ 'LT_SYS_SYMBOL_USCORE' => 1,
+ '_AM_PROG_TAR' => 1,
+ 'AC_LIBTOOL_GCJ' => 1,
+ 'LT_FUNC_DLSYM_USCORE' => 1,
+ 'PGAC_CHECK_DOCBOOK' => 1,
+ 'LT_SYS_DLOPEN_DEPLIBS' => 1,
+ 'AC_LIBTOOL_CONFIG' => 1,
+ '_LT_AC_LANG_F77' => 1,
+ 'AC_LTDL_DLLIB' => 1,
+ '_AM_SUBST_NOTMAKE' => 1,
+ '_AM_AUTOCONF_VERSION' => 1,
+ 'AM_DISABLE_SHARED' => 1,
+ '_LTDL_SETUP' => 1,
+ 'AM_PROG_LIBTOOL' => 1,
+ '_LT_AC_LANG_CXX' => 1,
+ 'PGAC_PROG_NSGMLS' => 1,
+ 'AM_PROG_LD' => 1,
+ '_LT_AC_FILE_LTDLL_C' => 1,
+ 'AC_LIB_LTDL' => 1,
+ 'AU_DEFUN' => 1,
+ 'AC_PROG_NM' => 1,
+ 'AC_LIBTOOL_DLOPEN' => 1,
+ 'AC_PROG_LD' => 1,
+ 'AC_PROG_LD_GNU' => 1,
+ 'AC_ENABLE_FAST_INSTALL' => 1,
+ 'AC_LIBTOOL_FC' => 1,
+ 'LTDL_CONVENIENCE' => 1,
+ '_AM_SET_OPTION' => 1,
+ 'AC_LTDL_PREOPEN' => 1,
+ '_LT_LINKER_BOILERPLATE' => 1,
+ 'AC_LIBTOOL_LANG_CXX_CONFIG' => 1,
+ 'AC_LIBTOOL_PROG_CC_C_O' => 1,
+ 'gl_PREREQ_ARGZ' => 1,
+ 'PGAC_PATH_DOCBOOK_STYLESHEETS' => 1,
+ 'LT_SUPPORTED_TAG' => 1,
+ 'AM_OUTPUT_DEPENDENCY_COMMANDS' => 1,
+ 'LT_PROG_RC' => 1,
+ 'LT_SYS_MODULE_EXT' => 1,
+ 'AC_DEFUN_ONCE' => 1,
+ '_LT_AC_LANG_GCJ' => 1,
+ 'AC_LTDL_OBJDIR' => 1,
+ '_LT_PATH_TOOL_PREFIX' => 1,
+ 'AC_LIBTOOL_RC' => 1,
+ '_LT_AC_PROG_ECHO_BACKSLASH' => 1,
+ 'AC_DISABLE_FAST_INSTALL' => 1,
+ 'AM_SILENT_RULES' => 1,
+ 'include' => 1,
+ '_LT_AC_TRY_DLOPEN_SELF' => 1,
+ '_LT_AC_SYS_LIBPATH_AIX' => 1,
+ 'LT_AC_PROG_SED' => 1,
+ 'AM_ENABLE_SHARED' => 1,
+ 'LTDL_INSTALLABLE' => 1,
+ '_LT_AC_LANG_GCJ_CONFIG' => 1,
+ 'AC_ENABLE_SHARED' => 1,
+ 'AC_LIBTOOL_SYS_HARD_LINK_LOCKS' => 1,
+ 'AC_ENABLE_STATIC' => 1,
+ '_LT_AC_TAGVAR' => 1,
+ 'AC_LIBTOOL_LANG_F77_CONFIG' => 1,
+ 'AM_CONDITIONAL' => 1,
+ 'LT_LIB_DLLOAD' => 1,
+ 'LTVERSION_VERSION' => 1,
+ 'LTDL_INIT' => 1,
+ 'm4_include' => 1,
+ 'AM_PROG_INSTALL_SH' => 1,
+ 'AC_PROG_EGREP' => 1,
+ 'AM_PATH_PYTHON' => 1,
+ 'AC_PATH_MAGIC' => 1,
+ '_AC_AM_CONFIG_HEADER_HOOK' => 1,
+ 'AC_LTDL_SYSSEARCHPATH' => 1,
+ 'AM_MAKE_INCLUDE' => 1,
+ 'LT_CMD_MAX_LEN' => 1,
+ '_LT_AC_TAGCONFIG' => 1,
+ 'm4_pattern_forbid' => 1,
+ '_LT_LINKER_OPTION' => 1,
+ 'AC_LIBTOOL_COMPILER_OPTION' => 1,
+ 'AC_DISABLE_SHARED' => 1,
+ '_LT_COMPILER_BOILERPLATE' => 1,
+ 'AC_LIBTOOL_WIN32_DLL' => 1,
+ 'AC_LIBTOOL_SETUP' => 1,
+ 'AC_PROG_LD_RELOAD_FLAG' => 1,
+ 'AC_LTDL_DLSYM_USCORE' => 1,
+ 'AM_MISSING_HAS_RUN' => 1,
+ 'LT_LANG' => 1,
+ 'LT_SYS_DLSEARCH_PATH' => 1,
+ 'LT_CONFIG_LTDL_DIR' => 1,
+ 'AC_LIBTOOL_DLOPEN_SELF' => 1,
+ 'LT_OUTPUT' => 1,
+ 'AC_LIBTOOL_PROG_LD_SHLIBS' => 1,
+ '_PKG_SHORT_ERRORS_SUPPORTED' => 1,
+ 'AC_WITH_LTDL' => 1,
+ 'AC_LIBTOOL_LINKER_OPTION' => 1,
+ 'PKG_CHECK_EXISTS' => 1,
+ 'LT_AC_PROG_RC' => 1,
+ 'AC_LIBTOOL_CXX' => 1,
+ 'LT_INIT' => 1,
+ 'LT_AC_PROG_GCJ' => 1,
+ 'LT_SYS_DLOPEN_SELF' => 1,
+ 'AM_DEP_TRACK' => 1,
+ 'AM_DISABLE_STATIC' => 1,
+ 'PGAC_PROG_JADE' => 1,
+ 'AM_CONFIG_HEADER' => 1,
+ '_AC_PROG_LIBTOOL' => 1,
+ '_AM_IF_OPTION' => 1,
+ 'AC_PATH_TOOL_PREFIX' => 1,
+ 'm4_pattern_allow' => 1,
+ 'AC_LIBTOOL_F77' => 1,
+ 'AM_SET_LEADING_DOT' => 1,
+ 'LT_AC_PROG_EGREP' => 1,
+ '_AM_DEPENDENCIES' => 1,
+ 'AC_LIBTOOL_LANG_C_CONFIG' => 1,
+ 'LTOPTIONS_VERSION' => 1,
+ '_LT_AC_SYS_COMPILER' => 1,
+ 'AM_PROG_NM' => 1,
+ 'PKG_CHECK_MODULES' => 1,
+ 'AC_LIBLTDL_CONVENIENCE' => 1,
+ 'AC_DEPLIBS_CHECK_METHOD' => 1,
+ 'AC_LIBLTDL_INSTALLABLE' => 1,
+ 'AM_SET_CURRENT_AUTOMAKE_VERSION' => 1,
+ 'AC_LTDL_ENABLE_INSTALL' => 1,
+ 'LT_PROG_GCJ' => 1,
+ 'AC_LIBTOOL_SYS_DYNAMIC_LINKER' => 1,
+ 'AM_INIT_AUTOMAKE' => 1,
+ 'AC_DISABLE_STATIC' => 1,
+ 'AM_PATH_ALSA' => 1,
+ 'LT_PATH_NM' => 1,
+ 'AC_LTDL_SHLIBEXT' => 1,
+ 'AM_ACLOCAL_INCLUDE' => 1,
+ '_LT_AC_LOCK' => 1,
+ '_LT_AC_LANG_RC_CONFIG' => 1,
+ 'LT_SYS_MODULE_PATH' => 1,
+ 'LT_WITH_LTDL' => 1,
+ 'AC_LIBTOOL_POSTDEP_PREDEP' => 1,
+ 'AC_LTDL_SHLIBPATH' => 1,
+ 'AM_AUX_DIR_EXPAND' => 1,
+ 'AC_LIBTOOL_PROG_COMPILER_NO_RTTI' => 1,
+ '_LT_AC_LANG_F77_CONFIG' => 1,
+ '_LT_COMPILER_OPTION' => 1,
+ '_AM_SET_OPTIONS' => 1,
+ 'AM_RUN_LOG' => 1,
+ '_AM_OUTPUT_DEPENDENCY_COMMANDS' => 1,
+ 'AC_LIBTOOL_PICMODE' => 1,
+ 'AC_LTDL_SYS_DLOPEN_DEPLIBS' => 1,
+ 'AC_LIBTOOL_SYS_OLD_ARCHIVE' => 1,
+ 'AC_CHECK_LIBM' => 1,
+ 'LT_PATH_LD' => 1,
+ 'AC_LIBTOOL_SYS_LIB_STRIP' => 1,
+ '_AM_MANGLE_OPTION' => 1,
+ 'AC_LIBTOOL_SYS_MAX_CMD_LEN' => 1,
+ 'AC_LTDL_SYMBOL_USCORE' => 1,
+ 'AM_SET_DEPDIR' => 1,
+ 'PKG_PROG_PKG_CONFIG' => 1,
+ '_LT_CC_BASENAME' => 1,
+ '_LT_LIBOBJ' => 1
+ }
+ ], 'Autom4te::Request' )
+ );
+
diff --git a/muse2/autom4te.cache/traces.0 b/muse2/autom4te.cache/traces.0
new file mode 100644
index 00000000..fe17865f
--- /dev/null
+++ b/muse2/autom4te.cache/traces.0
@@ -0,0 +1,3343 @@
+m4trace:/usr/share/aclocal/argz.m4:12: -1- AC_DEFUN([gl_FUNC_ARGZ], [gl_PREREQ_ARGZ
+
+AC_CHECK_HEADERS([argz.h], [], [], [AC_INCLUDES_DEFAULT])
+
+AC_CHECK_TYPES([error_t],
+ [],
+ [AC_DEFINE([error_t], [int],
+ [Define to a type to use for `error_t' if it is not otherwise available.])
+ AC_DEFINE([__error_t_defined], [1], [Define so that glibc/gnulib argp.h
+ does not typedef error_t.])],
+ [#if defined(HAVE_ARGZ_H)
+# include <argz.h>
+#endif])
+
+ARGZ_H=
+AC_CHECK_FUNCS([argz_add argz_append argz_count argz_create_sep argz_insert \
+ argz_next argz_stringify], [], [ARGZ_H=argz.h; AC_LIBOBJ([argz])])
+
+dnl if have system argz functions, allow forced use of
+dnl libltdl-supplied implementation (and default to do so
+dnl on "known bad" systems). Could use a runtime check, but
+dnl (a) detecting malloc issues is notoriously unreliable
+dnl (b) only known system that declares argz functions,
+dnl provides them, yet they are broken, is cygwin
+dnl releases prior to 16-Mar-2007 (1.5.24 and earlier)
+dnl So, it's more straightforward simply to special case
+dnl this for known bad systems.
+AS_IF([test -z "$ARGZ_H"],
+ [AC_CACHE_CHECK(
+ [if argz actually works],
+ [lt_cv_sys_argz_works],
+ [[case $host_os in #(
+ *cygwin*)
+ lt_cv_sys_argz_works=no
+ if test "$cross_compiling" != no; then
+ lt_cv_sys_argz_works="guessing no"
+ else
+ lt_sed_extract_leading_digits='s/^\([0-9\.]*\).*/\1/'
+ save_IFS=$IFS
+ IFS=-.
+ set x `uname -r | sed -e "$lt_sed_extract_leading_digits"`
+ IFS=$save_IFS
+ lt_os_major=${2-0}
+ lt_os_minor=${3-0}
+ lt_os_micro=${4-0}
+ if test "$lt_os_major" -gt 1 \
+ || { test "$lt_os_major" -eq 1 \
+ && { test "$lt_os_minor" -gt 5 \
+ || { test "$lt_os_minor" -eq 5 \
+ && test "$lt_os_micro" -gt 24; }; }; }; then
+ lt_cv_sys_argz_works=yes
+ fi
+ fi
+ ;; #(
+ *) lt_cv_sys_argz_works=yes ;;
+ esac]])
+ AS_IF([test $lt_cv_sys_argz_works = yes],
+ [AC_DEFINE([HAVE_WORKING_ARGZ], 1,
+ [This value is set to 1 to indicate that the system argz facility works])],
+ [ARGZ_H=argz.h
+ AC_LIBOBJ([argz])])])
+
+AC_SUBST([ARGZ_H])
+])
+m4trace:/usr/share/aclocal/argz.m4:79: -1- AC_DEFUN([gl_PREREQ_ARGZ], [:])
+m4trace:/usr/share/aclocal/ltdl.m4:16: -1- AC_DEFUN([LT_CONFIG_LTDL_DIR], [AC_BEFORE([$0], [LTDL_INIT])
+_$0($*)
+])
+m4trace:/usr/share/aclocal/ltdl.m4:68: -1- AC_DEFUN([LTDL_CONVENIENCE], [AC_BEFORE([$0], [LTDL_INIT])dnl
+dnl Although the argument is deprecated and no longer documented,
+dnl LTDL_CONVENIENCE used to take a DIRECTORY orgument, if we have one
+dnl here make sure it is the same as any other declaration of libltdl's
+dnl location! This also ensures lt_ltdl_dir is set when configure.ac is
+dnl not yet using an explicit LT_CONFIG_LTDL_DIR.
+m4_ifval([$1], [_LT_CONFIG_LTDL_DIR([$1])])dnl
+_$0()
+])
+m4trace:/usr/share/aclocal/ltdl.m4:81: -1- AU_DEFUN([AC_LIBLTDL_CONVENIENCE], [_LT_CONFIG_LTDL_DIR([m4_default([$1], [libltdl])])
+_LTDL_CONVENIENCE])
+m4trace:/usr/share/aclocal/ltdl.m4:81: -1- AC_DEFUN([AC_LIBLTDL_CONVENIENCE], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBLTDL_CONVENIENCE' is obsolete.
+You should run autoupdate.])dnl
+_LT_CONFIG_LTDL_DIR([m4_default([$1], [libltdl])])
+_LTDL_CONVENIENCE])
+m4trace:/usr/share/aclocal/ltdl.m4:124: -1- AC_DEFUN([LTDL_INSTALLABLE], [AC_BEFORE([$0], [LTDL_INIT])dnl
+dnl Although the argument is deprecated and no longer documented,
+dnl LTDL_INSTALLABLE used to take a DIRECTORY orgument, if we have one
+dnl here make sure it is the same as any other declaration of libltdl's
+dnl location! This also ensures lt_ltdl_dir is set when configure.ac is
+dnl not yet using an explicit LT_CONFIG_LTDL_DIR.
+m4_ifval([$1], [_LT_CONFIG_LTDL_DIR([$1])])dnl
+_$0()
+])
+m4trace:/usr/share/aclocal/ltdl.m4:137: -1- AU_DEFUN([AC_LIBLTDL_INSTALLABLE], [_LT_CONFIG_LTDL_DIR([m4_default([$1], [libltdl])])
+_LTDL_INSTALLABLE])
+m4trace:/usr/share/aclocal/ltdl.m4:137: -1- AC_DEFUN([AC_LIBLTDL_INSTALLABLE], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBLTDL_INSTALLABLE' is obsolete.
+You should run autoupdate.])dnl
+_LT_CONFIG_LTDL_DIR([m4_default([$1], [libltdl])])
+_LTDL_INSTALLABLE])
+m4trace:/usr/share/aclocal/ltdl.m4:213: -1- AC_DEFUN([_LT_LIBOBJ], [
+ m4_pattern_allow([^_LT_LIBOBJS$])
+ _LT_LIBOBJS="$_LT_LIBOBJS $1.$ac_objext"
+])
+m4trace:/usr/share/aclocal/ltdl.m4:226: -1- AC_DEFUN([LTDL_INIT], [dnl Parse OPTIONS
+_LT_SET_OPTIONS([$0], [$1])
+
+dnl We need to keep our own list of libobjs separate from our parent project,
+dnl and the easiest way to do that is redefine the AC_LIBOBJs macro while
+dnl we look for our own LIBOBJs.
+m4_pushdef([AC_LIBOBJ], m4_defn([_LT_LIBOBJ]))
+m4_pushdef([AC_LIBSOURCES])
+
+dnl If not otherwise defined, default to the 1.5.x compatible subproject mode:
+m4_if(_LTDL_MODE, [],
+ [m4_define([_LTDL_MODE], m4_default([$2], [subproject]))
+ m4_if([-1], [m4_bregexp(_LTDL_MODE, [\(subproject\|\(non\)?recursive\)])],
+ [m4_fatal([unknown libltdl mode: ]_LTDL_MODE)])])
+
+AC_ARG_WITH([included_ltdl],
+ [AS_HELP_STRING([--with-included-ltdl],
+ [use the GNU ltdl sources included here])])
+
+if test "x$with_included_ltdl" != xyes; then
+ # We are not being forced to use the included libltdl sources, so
+ # decide whether there is a useful installed version we can use.
+ AC_CHECK_HEADER([ltdl.h],
+ [AC_CHECK_DECL([lt_dlinterface_register],
+ [AC_CHECK_LIB([ltdl], [lt_dladvise_preload],
+ [with_included_ltdl=no],
+ [with_included_ltdl=yes])],
+ [with_included_ltdl=yes],
+ [AC_INCLUDES_DEFAULT
+ #include <ltdl.h>])],
+ [with_included_ltdl=yes],
+ [AC_INCLUDES_DEFAULT]
+ )
+fi
+
+dnl If neither LT_CONFIG_LTDL_DIR, LTDL_CONVENIENCE nor LTDL_INSTALLABLE
+dnl was called yet, then for old times' sake, we assume libltdl is in an
+dnl eponymous directory:
+AC_PROVIDE_IFELSE([LT_CONFIG_LTDL_DIR], [], [_LT_CONFIG_LTDL_DIR([libltdl])])
+
+AC_ARG_WITH([ltdl_include],
+ [AS_HELP_STRING([--with-ltdl-include=DIR],
+ [use the ltdl headers installed in DIR])])
+
+if test -n "$with_ltdl_include"; then
+ if test -f "$with_ltdl_include/ltdl.h"; then :
+ else
+ AC_MSG_ERROR([invalid ltdl include directory: `$with_ltdl_include'])
+ fi
+else
+ with_ltdl_include=no
+fi
+
+AC_ARG_WITH([ltdl_lib],
+ [AS_HELP_STRING([--with-ltdl-lib=DIR],
+ [use the libltdl.la installed in DIR])])
+
+if test -n "$with_ltdl_lib"; then
+ if test -f "$with_ltdl_lib/libltdl.la"; then :
+ else
+ AC_MSG_ERROR([invalid ltdl library directory: `$with_ltdl_lib'])
+ fi
+else
+ with_ltdl_lib=no
+fi
+
+case ,$with_included_ltdl,$with_ltdl_include,$with_ltdl_lib, in
+ ,yes,no,no,)
+ m4_case(m4_default(_LTDL_TYPE, [convenience]),
+ [convenience], [_LTDL_CONVENIENCE],
+ [installable], [_LTDL_INSTALLABLE],
+ [m4_fatal([unknown libltdl build type: ]_LTDL_TYPE)])
+ ;;
+ ,no,no,no,)
+ # If the included ltdl is not to be used, then use the
+ # preinstalled libltdl we found.
+ AC_DEFINE([HAVE_LTDL], [1],
+ [Define this if a modern libltdl is already installed])
+ LIBLTDL=-lltdl
+ LTDLDEPS=
+ LTDLINCL=
+ ;;
+ ,no*,no,*)
+ AC_MSG_ERROR([`--with-ltdl-include' and `--with-ltdl-lib' options must be used together])
+ ;;
+ *) with_included_ltdl=no
+ LIBLTDL="-L$with_ltdl_lib -lltdl"
+ LTDLDEPS=
+ LTDLINCL="-I$with_ltdl_include"
+ ;;
+esac
+INCLTDL="$LTDLINCL"
+
+# Report our decision...
+AC_MSG_CHECKING([where to find libltdl headers])
+AC_MSG_RESULT([$LTDLINCL])
+AC_MSG_CHECKING([where to find libltdl library])
+AC_MSG_RESULT([$LIBLTDL])
+
+_LTDL_SETUP
+
+dnl restore autoconf definition.
+m4_popdef([AC_LIBOBJ])
+m4_popdef([AC_LIBSOURCES])
+
+AC_CONFIG_COMMANDS_PRE([
+ _ltdl_libobjs=
+ _ltdl_ltlibobjs=
+ if test -n "$_LT_LIBOBJS"; then
+ # Remove the extension.
+ _lt_sed_drop_objext='s/\.o$//;s/\.obj$//'
+ for i in `for i in $_LT_LIBOBJS; do echo "$i"; done | sed "$_lt_sed_drop_objext" | sort -u`; do
+ _ltdl_libobjs="$_ltdl_libobjs $lt_libobj_prefix$i.$ac_objext"
+ _ltdl_ltlibobjs="$_ltdl_ltlibobjs $lt_libobj_prefix$i.lo"
+ done
+ fi
+ AC_SUBST([ltdl_LIBOBJS], [$_ltdl_libobjs])
+ AC_SUBST([ltdl_LTLIBOBJS], [$_ltdl_ltlibobjs])
+])
+
+# Only expand once:
+m4_define([LTDL_INIT])
+])
+m4trace:/usr/share/aclocal/ltdl.m4:352: -1- AU_DEFUN([AC_LIB_LTDL], [LTDL_INIT($@)])
+m4trace:/usr/share/aclocal/ltdl.m4:352: -1- AC_DEFUN([AC_LIB_LTDL], [AC_DIAGNOSE([obsolete], [The macro `AC_LIB_LTDL' is obsolete.
+You should run autoupdate.])dnl
+LTDL_INIT($@)])
+m4trace:/usr/share/aclocal/ltdl.m4:353: -1- AU_DEFUN([AC_WITH_LTDL], [LTDL_INIT($@)])
+m4trace:/usr/share/aclocal/ltdl.m4:353: -1- AC_DEFUN([AC_WITH_LTDL], [AC_DIAGNOSE([obsolete], [The macro `AC_WITH_LTDL' is obsolete.
+You should run autoupdate.])dnl
+LTDL_INIT($@)])
+m4trace:/usr/share/aclocal/ltdl.m4:354: -1- AU_DEFUN([LT_WITH_LTDL], [LTDL_INIT($@)])
+m4trace:/usr/share/aclocal/ltdl.m4:354: -1- AC_DEFUN([LT_WITH_LTDL], [AC_DIAGNOSE([obsolete], [The macro `LT_WITH_LTDL' is obsolete.
+You should run autoupdate.])dnl
+LTDL_INIT($@)])
+m4trace:/usr/share/aclocal/ltdl.m4:367: -1- AC_DEFUN([_LTDL_SETUP], [AC_REQUIRE([AC_PROG_CC])dnl
+AC_REQUIRE([LT_SYS_MODULE_EXT])dnl
+AC_REQUIRE([LT_SYS_MODULE_PATH])dnl
+AC_REQUIRE([LT_SYS_DLSEARCH_PATH])dnl
+AC_REQUIRE([LT_LIB_DLLOAD])dnl
+AC_REQUIRE([LT_SYS_SYMBOL_USCORE])dnl
+AC_REQUIRE([LT_FUNC_DLSYM_USCORE])dnl
+AC_REQUIRE([LT_SYS_DLOPEN_DEPLIBS])dnl
+AC_REQUIRE([gl_FUNC_ARGZ])dnl
+
+m4_require([_LT_CHECK_OBJDIR])dnl
+m4_require([_LT_HEADER_DLFCN])dnl
+m4_require([_LT_CHECK_DLPREOPEN])dnl
+m4_require([_LT_DECL_SED])dnl
+
+dnl Don't require this, or it will be expanded earlier than the code
+dnl that sets the variables it relies on:
+_LT_ENABLE_INSTALL
+
+dnl _LTDL_MODE specific code must be called at least once:
+_LTDL_MODE_DISPATCH
+
+# In order that ltdl.c can compile, find out the first AC_CONFIG_HEADERS
+# the user used. This is so that ltdl.h can pick up the parent projects
+# config.h file, The first file in AC_CONFIG_HEADERS must contain the
+# definitions required by ltdl.c.
+# FIXME: Remove use of undocumented AC_LIST_HEADERS (2.59 compatibility).
+AC_CONFIG_COMMANDS_PRE([dnl
+m4_pattern_allow([^LT_CONFIG_H$])dnl
+m4_ifset([AH_HEADER],
+ [LT_CONFIG_H=AH_HEADER],
+ [m4_ifset([AC_LIST_HEADERS],
+ [LT_CONFIG_H=`echo "AC_LIST_HEADERS" | $SED 's,^[[ ]]*,,;s,[[ :]].*$,,'`],
+ [])])])
+AC_SUBST([LT_CONFIG_H])
+
+AC_CHECK_HEADERS([unistd.h dl.h sys/dl.h dld.h mach-o/dyld.h dirent.h],
+ [], [], [AC_INCLUDES_DEFAULT])
+
+AC_CHECK_FUNCS([closedir opendir readdir], [], [AC_LIBOBJ([lt__dirent])])
+AC_CHECK_FUNCS([strlcat strlcpy], [], [AC_LIBOBJ([lt__strl])])
+
+AC_DEFINE_UNQUOTED([LT_LIBEXT],["$libext"],[The archive extension])
+
+name=ltdl
+LTDLOPEN=`eval "\\$ECHO \"$libname_spec\""`
+AC_SUBST([LTDLOPEN])
+])
+m4trace:/usr/share/aclocal/ltdl.m4:437: -1- AC_DEFUN([LT_SYS_DLOPEN_DEPLIBS], [AC_REQUIRE([AC_CANONICAL_HOST])dnl
+AC_CACHE_CHECK([whether deplibs are loaded by dlopen],
+ [lt_cv_sys_dlopen_deplibs],
+ [# PORTME does your system automatically load deplibs for dlopen?
+ # or its logical equivalent (e.g. shl_load for HP-UX < 11)
+ # For now, we just catch OSes we know something about -- in the
+ # future, we'll try test this programmatically.
+ lt_cv_sys_dlopen_deplibs=unknown
+ case $host_os in
+ aix3*|aix4.1.*|aix4.2.*)
+ # Unknown whether this is true for these versions of AIX, but
+ # we want this `case' here to explicitly catch those versions.
+ lt_cv_sys_dlopen_deplibs=unknown
+ ;;
+ aix[[4-9]]*)
+ lt_cv_sys_dlopen_deplibs=yes
+ ;;
+ amigaos*)
+ case $host_cpu in
+ powerpc)
+ lt_cv_sys_dlopen_deplibs=no
+ ;;
+ esac
+ ;;
+ darwin*)
+ # Assuming the user has installed a libdl from somewhere, this is true
+ # If you are looking for one http://www.opendarwin.org/projects/dlcompat
+ lt_cv_sys_dlopen_deplibs=yes
+ ;;
+ freebsd* | dragonfly*)
+ lt_cv_sys_dlopen_deplibs=yes
+ ;;
+ gnu* | linux* | k*bsd*-gnu | kopensolaris*-gnu)
+ # GNU and its variants, using gnu ld.so (Glibc)
+ lt_cv_sys_dlopen_deplibs=yes
+ ;;
+ hpux10*|hpux11*)
+ lt_cv_sys_dlopen_deplibs=yes
+ ;;
+ interix*)
+ lt_cv_sys_dlopen_deplibs=yes
+ ;;
+ irix[[12345]]*|irix6.[[01]]*)
+ # Catch all versions of IRIX before 6.2, and indicate that we don't
+ # know how it worked for any of those versions.
+ lt_cv_sys_dlopen_deplibs=unknown
+ ;;
+ irix*)
+ # The case above catches anything before 6.2, and it's known that
+ # at 6.2 and later dlopen does load deplibs.
+ lt_cv_sys_dlopen_deplibs=yes
+ ;;
+ netbsd* | netbsdelf*-gnu)
+ lt_cv_sys_dlopen_deplibs=yes
+ ;;
+ openbsd*)
+ lt_cv_sys_dlopen_deplibs=yes
+ ;;
+ osf[[1234]]*)
+ # dlopen did load deplibs (at least at 4.x), but until the 5.x series,
+ # it did *not* use an RPATH in a shared library to find objects the
+ # library depends on, so we explicitly say `no'.
+ lt_cv_sys_dlopen_deplibs=no
+ ;;
+ osf5.0|osf5.0a|osf5.1)
+ # dlopen *does* load deplibs and with the right loader patch applied
+ # it even uses RPATH in a shared library to search for shared objects
+ # that the library depends on, but there's no easy way to know if that
+ # patch is installed. Since this is the case, all we can really
+ # say is unknown -- it depends on the patch being installed. If
+ # it is, this changes to `yes'. Without it, it would be `no'.
+ lt_cv_sys_dlopen_deplibs=unknown
+ ;;
+ osf*)
+ # the two cases above should catch all versions of osf <= 5.1. Read
+ # the comments above for what we know about them.
+ # At > 5.1, deplibs are loaded *and* any RPATH in a shared library
+ # is used to find them so we can finally say `yes'.
+ lt_cv_sys_dlopen_deplibs=yes
+ ;;
+ qnx*)
+ lt_cv_sys_dlopen_deplibs=yes
+ ;;
+ solaris*)
+ lt_cv_sys_dlopen_deplibs=yes
+ ;;
+ sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
+ libltdl_cv_sys_dlopen_deplibs=yes
+ ;;
+ esac
+ ])
+if test "$lt_cv_sys_dlopen_deplibs" != yes; then
+ AC_DEFINE([LTDL_DLOPEN_DEPLIBS], [1],
+ [Define if the OS needs help to load dependent libraries for dlopen().])
+fi
+])
+m4trace:/usr/share/aclocal/ltdl.m4:536: -1- AU_DEFUN([AC_LTDL_SYS_DLOPEN_DEPLIBS], [m4_if($#, 0, [LT_SYS_DLOPEN_DEPLIBS], [LT_SYS_DLOPEN_DEPLIBS($@)])])
+m4trace:/usr/share/aclocal/ltdl.m4:536: -1- AC_DEFUN([AC_LTDL_SYS_DLOPEN_DEPLIBS], [AC_DIAGNOSE([obsolete], [The macro `AC_LTDL_SYS_DLOPEN_DEPLIBS' is obsolete.
+You should run autoupdate.])dnl
+m4_if($#, 0, [LT_SYS_DLOPEN_DEPLIBS], [LT_SYS_DLOPEN_DEPLIBS($@)])])
+m4trace:/usr/share/aclocal/ltdl.m4:543: -1- AC_DEFUN([LT_SYS_MODULE_EXT], [m4_require([_LT_SYS_DYNAMIC_LINKER])dnl
+AC_CACHE_CHECK([which extension is used for runtime loadable modules],
+ [libltdl_cv_shlibext],
+[
+module=yes
+eval libltdl_cv_shlibext=$shrext_cmds
+ ])
+if test -n "$libltdl_cv_shlibext"; then
+ m4_pattern_allow([LT_MODULE_EXT])dnl
+ AC_DEFINE_UNQUOTED([LT_MODULE_EXT], ["$libltdl_cv_shlibext"],
+ [Define to the extension used for runtime loadable modules, say, ".so".])
+fi
+])
+m4trace:/usr/share/aclocal/ltdl.m4:559: -1- AU_DEFUN([AC_LTDL_SHLIBEXT], [m4_if($#, 0, [LT_SYS_MODULE_EXT], [LT_SYS_MODULE_EXT($@)])])
+m4trace:/usr/share/aclocal/ltdl.m4:559: -1- AC_DEFUN([AC_LTDL_SHLIBEXT], [AC_DIAGNOSE([obsolete], [The macro `AC_LTDL_SHLIBEXT' is obsolete.
+You should run autoupdate.])dnl
+m4_if($#, 0, [LT_SYS_MODULE_EXT], [LT_SYS_MODULE_EXT($@)])])
+m4trace:/usr/share/aclocal/ltdl.m4:566: -1- AC_DEFUN([LT_SYS_MODULE_PATH], [m4_require([_LT_SYS_DYNAMIC_LINKER])dnl
+AC_CACHE_CHECK([which variable specifies run-time module search path],
+ [lt_cv_module_path_var], [lt_cv_module_path_var="$shlibpath_var"])
+if test -n "$lt_cv_module_path_var"; then
+ m4_pattern_allow([LT_MODULE_PATH_VAR])dnl
+ AC_DEFINE_UNQUOTED([LT_MODULE_PATH_VAR], ["$lt_cv_module_path_var"],
+ [Define to the name of the environment variable that determines the run-time module search path.])
+fi
+])
+m4trace:/usr/share/aclocal/ltdl.m4:578: -1- AU_DEFUN([AC_LTDL_SHLIBPATH], [m4_if($#, 0, [LT_SYS_MODULE_PATH], [LT_SYS_MODULE_PATH($@)])])
+m4trace:/usr/share/aclocal/ltdl.m4:578: -1- AC_DEFUN([AC_LTDL_SHLIBPATH], [AC_DIAGNOSE([obsolete], [The macro `AC_LTDL_SHLIBPATH' is obsolete.
+You should run autoupdate.])dnl
+m4_if($#, 0, [LT_SYS_MODULE_PATH], [LT_SYS_MODULE_PATH($@)])])
+m4trace:/usr/share/aclocal/ltdl.m4:585: -1- AC_DEFUN([LT_SYS_DLSEARCH_PATH], [m4_require([_LT_SYS_DYNAMIC_LINKER])dnl
+AC_CACHE_CHECK([for the default library search path],
+ [lt_cv_sys_dlsearch_path],
+ [lt_cv_sys_dlsearch_path="$sys_lib_dlsearch_path_spec"])
+if test -n "$lt_cv_sys_dlsearch_path"; then
+ sys_dlsearch_path=
+ for dir in $lt_cv_sys_dlsearch_path; do
+ if test -z "$sys_dlsearch_path"; then
+ sys_dlsearch_path="$dir"
+ else
+ sys_dlsearch_path="$sys_dlsearch_path$PATH_SEPARATOR$dir"
+ fi
+ done
+ m4_pattern_allow([LT_DLSEARCH_PATH])dnl
+ AC_DEFINE_UNQUOTED([LT_DLSEARCH_PATH], ["$sys_dlsearch_path"],
+ [Define to the system default library search path.])
+fi
+])
+m4trace:/usr/share/aclocal/ltdl.m4:606: -1- AU_DEFUN([AC_LTDL_SYSSEARCHPATH], [m4_if($#, 0, [LT_SYS_DLSEARCH_PATH], [LT_SYS_DLSEARCH_PATH($@)])])
+m4trace:/usr/share/aclocal/ltdl.m4:606: -1- AC_DEFUN([AC_LTDL_SYSSEARCHPATH], [AC_DIAGNOSE([obsolete], [The macro `AC_LTDL_SYSSEARCHPATH' is obsolete.
+You should run autoupdate.])dnl
+m4_if($#, 0, [LT_SYS_DLSEARCH_PATH], [LT_SYS_DLSEARCH_PATH($@)])])
+m4trace:/usr/share/aclocal/ltdl.m4:632: -1- AC_DEFUN([LT_LIB_DLLOAD], [m4_pattern_allow([^LT_DLLOADERS$])
+LT_DLLOADERS=
+AC_SUBST([LT_DLLOADERS])
+
+AC_LANG_PUSH([C])
+
+LIBADD_DLOPEN=
+AC_SEARCH_LIBS([dlopen], [dl],
+ [AC_DEFINE([HAVE_LIBDL], [1],
+ [Define if you have the libdl library or equivalent.])
+ if test "$ac_cv_search_dlopen" != "none required" ; then
+ LIBADD_DLOPEN="-ldl"
+ fi
+ libltdl_cv_lib_dl_dlopen="yes"
+ LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}dlopen.la"],
+ [AC_LINK_IFELSE([AC_LANG_PROGRAM([[#if HAVE_DLFCN_H
+# include <dlfcn.h>
+#endif
+ ]], [[dlopen(0, 0);]])],
+ [AC_DEFINE([HAVE_LIBDL], [1],
+ [Define if you have the libdl library or equivalent.])
+ libltdl_cv_func_dlopen="yes"
+ LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}dlopen.la"],
+ [AC_CHECK_LIB([svld], [dlopen],
+ [AC_DEFINE([HAVE_LIBDL], [1],
+ [Define if you have the libdl library or equivalent.])
+ LIBADD_DLOPEN="-lsvld" libltdl_cv_func_dlopen="yes"
+ LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}dlopen.la"])])])
+if test x"$libltdl_cv_func_dlopen" = xyes || test x"$libltdl_cv_lib_dl_dlopen" = xyes
+then
+ lt_save_LIBS="$LIBS"
+ LIBS="$LIBS $LIBADD_DLOPEN"
+ AC_CHECK_FUNCS([dlerror])
+ LIBS="$lt_save_LIBS"
+fi
+AC_SUBST([LIBADD_DLOPEN])
+
+LIBADD_SHL_LOAD=
+AC_CHECK_FUNC([shl_load],
+ [AC_DEFINE([HAVE_SHL_LOAD], [1],
+ [Define if you have the shl_load function.])
+ LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}shl_load.la"],
+ [AC_CHECK_LIB([dld], [shl_load],
+ [AC_DEFINE([HAVE_SHL_LOAD], [1],
+ [Define if you have the shl_load function.])
+ LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}shl_load.la"
+ LIBADD_SHL_LOAD="-ldld"])])
+AC_SUBST([LIBADD_SHL_LOAD])
+
+case $host_os in
+darwin[[1567]].*)
+# We only want this for pre-Mac OS X 10.4.
+ AC_CHECK_FUNC([_dyld_func_lookup],
+ [AC_DEFINE([HAVE_DYLD], [1],
+ [Define if you have the _dyld_func_lookup function.])
+ LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}dyld.la"])
+ ;;
+beos*)
+ LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}load_add_on.la"
+ ;;
+cygwin* | mingw* | os2* | pw32*)
+ AC_CHECK_DECLS([cygwin_conv_path], [], [], [[#include <sys/cygwin.h>]])
+ LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}loadlibrary.la"
+ ;;
+esac
+
+AC_CHECK_LIB([dld], [dld_link],
+ [AC_DEFINE([HAVE_DLD], [1],
+ [Define if you have the GNU dld library.])
+ LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}dld_link.la"])
+AC_SUBST([LIBADD_DLD_LINK])
+
+m4_pattern_allow([^LT_DLPREOPEN$])
+LT_DLPREOPEN=
+if test -n "$LT_DLLOADERS"
+then
+ for lt_loader in $LT_DLLOADERS; do
+ LT_DLPREOPEN="$LT_DLPREOPEN-dlpreopen $lt_loader "
+ done
+ AC_DEFINE([HAVE_LIBDLLOADER], [1],
+ [Define if libdlloader will be built on this platform])
+fi
+AC_SUBST([LT_DLPREOPEN])
+
+dnl This isn't used anymore, but set it for backwards compatibility
+LIBADD_DL="$LIBADD_DLOPEN $LIBADD_SHL_LOAD"
+AC_SUBST([LIBADD_DL])
+
+AC_LANG_POP
+])
+m4trace:/usr/share/aclocal/ltdl.m4:725: -1- AU_DEFUN([AC_LTDL_DLLIB], [m4_if($#, 0, [LT_LIB_DLLOAD], [LT_LIB_DLLOAD($@)])])
+m4trace:/usr/share/aclocal/ltdl.m4:725: -1- AC_DEFUN([AC_LTDL_DLLIB], [AC_DIAGNOSE([obsolete], [The macro `AC_LTDL_DLLIB' is obsolete.
+You should run autoupdate.])dnl
+m4_if($#, 0, [LT_LIB_DLLOAD], [LT_LIB_DLLOAD($@)])])
+m4trace:/usr/share/aclocal/ltdl.m4:733: -1- AC_DEFUN([LT_SYS_SYMBOL_USCORE], [m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl
+AC_CACHE_CHECK([for _ prefix in compiled symbols],
+ [lt_cv_sys_symbol_underscore],
+ [lt_cv_sys_symbol_underscore=no
+ cat > conftest.$ac_ext <<_LT_EOF
+void nm_test_func(){}
+int main(){nm_test_func;return 0;}
+_LT_EOF
+ if AC_TRY_EVAL(ac_compile); then
+ # Now try to grab the symbols.
+ ac_nlist=conftest.nm
+ if AC_TRY_EVAL(NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $ac_nlist) && test -s "$ac_nlist"; then
+ # See whether the symbols have a leading underscore.
+ if grep '^. _nm_test_func' "$ac_nlist" >/dev/null; then
+ lt_cv_sys_symbol_underscore=yes
+ else
+ if grep '^. nm_test_func ' "$ac_nlist" >/dev/null; then
+ :
+ else
+ echo "configure: cannot find nm_test_func in $ac_nlist" >&AS_MESSAGE_LOG_FD
+ fi
+ fi
+ else
+ echo "configure: cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD
+ fi
+ else
+ echo "configure: failed program was:" >&AS_MESSAGE_LOG_FD
+ cat conftest.c >&AS_MESSAGE_LOG_FD
+ fi
+ rm -rf conftest*
+ ])
+ sys_symbol_underscore=$lt_cv_sys_symbol_underscore
+ AC_SUBST([sys_symbol_underscore])
+])
+m4trace:/usr/share/aclocal/ltdl.m4:770: -1- AU_DEFUN([AC_LTDL_SYMBOL_USCORE], [m4_if($#, 0, [LT_SYS_SYMBOL_USCORE], [LT_SYS_SYMBOL_USCORE($@)])])
+m4trace:/usr/share/aclocal/ltdl.m4:770: -1- AC_DEFUN([AC_LTDL_SYMBOL_USCORE], [AC_DIAGNOSE([obsolete], [The macro `AC_LTDL_SYMBOL_USCORE' is obsolete.
+You should run autoupdate.])dnl
+m4_if($#, 0, [LT_SYS_SYMBOL_USCORE], [LT_SYS_SYMBOL_USCORE($@)])])
+m4trace:/usr/share/aclocal/ltdl.m4:777: -1- AC_DEFUN([LT_FUNC_DLSYM_USCORE], [AC_REQUIRE([LT_SYS_SYMBOL_USCORE])dnl
+if test x"$lt_cv_sys_symbol_underscore" = xyes; then
+ if test x"$libltdl_cv_func_dlopen" = xyes ||
+ test x"$libltdl_cv_lib_dl_dlopen" = xyes ; then
+ AC_CACHE_CHECK([whether we have to add an underscore for dlsym],
+ [libltdl_cv_need_uscore],
+ [libltdl_cv_need_uscore=unknown
+ save_LIBS="$LIBS"
+ LIBS="$LIBS $LIBADD_DLOPEN"
+ _LT_TRY_DLOPEN_SELF(
+ [libltdl_cv_need_uscore=no], [libltdl_cv_need_uscore=yes],
+ [], [libltdl_cv_need_uscore=cross])
+ LIBS="$save_LIBS"
+ ])
+ fi
+fi
+
+if test x"$libltdl_cv_need_uscore" = xyes; then
+ AC_DEFINE([NEED_USCORE], [1],
+ [Define if dlsym() requires a leading underscore in symbol names.])
+fi
+])
+m4trace:/usr/share/aclocal/ltdl.m4:802: -1- AU_DEFUN([AC_LTDL_DLSYM_USCORE], [m4_if($#, 0, [LT_FUNC_DLSYM_USCORE], [LT_FUNC_DLSYM_USCORE($@)])])
+m4trace:/usr/share/aclocal/ltdl.m4:802: -1- AC_DEFUN([AC_LTDL_DLSYM_USCORE], [AC_DIAGNOSE([obsolete], [The macro `AC_LTDL_DLSYM_USCORE' is obsolete.
+You should run autoupdate.])dnl
+m4_if($#, 0, [LT_FUNC_DLSYM_USCORE], [LT_FUNC_DLSYM_USCORE($@)])])
+m4trace:/usr/share/aclocal/pkg.m4:26: -1- AC_DEFUN([PKG_PROG_PKG_CONFIG], [m4_pattern_forbid([^_?PKG_[A-Z_]+$])
+m4_pattern_allow([^PKG_CONFIG(_PATH)?$])
+AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility])dnl
+if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
+ AC_PATH_TOOL([PKG_CONFIG], [pkg-config])
+fi
+if test -n "$PKG_CONFIG"; then
+ _pkg_min_version=m4_default([$1], [0.9.0])
+ AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version])
+ if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then
+ AC_MSG_RESULT([yes])
+ else
+ AC_MSG_RESULT([no])
+ PKG_CONFIG=""
+ fi
+
+fi[]dnl
+])
+m4trace:/usr/share/aclocal/pkg.m4:56: -1- AC_DEFUN([PKG_CHECK_EXISTS], [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
+if test -n "$PKG_CONFIG" && \
+ AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then
+ m4_ifval([$2], [$2], [:])
+m4_ifvaln([$3], [else
+ $3])dnl
+fi])
+m4trace:/usr/share/aclocal/pkg.m4:84: -1- AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED], [AC_REQUIRE([PKG_PROG_PKG_CONFIG])
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+ _pkg_short_errors_supported=yes
+else
+ _pkg_short_errors_supported=no
+fi[]dnl
+])
+m4trace:/usr/share/aclocal/pkg.m4:104: -1- AC_DEFUN([PKG_CHECK_MODULES], [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
+AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl
+AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl
+
+pkg_failed=no
+AC_MSG_CHECKING([for $1])
+
+_PKG_CONFIG([$1][_CFLAGS], [cflags], [$2])
+_PKG_CONFIG([$1][_LIBS], [libs], [$2])
+
+m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS
+and $1[]_LIBS to avoid the need to call pkg-config.
+See the pkg-config man page for more details.])
+
+if test $pkg_failed = yes; then
+ _PKG_SHORT_ERRORS_SUPPORTED
+ if test $_pkg_short_errors_supported = yes; then
+ $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "$2"`
+ else
+ $1[]_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$2"`
+ fi
+ # Put the nasty error message in config.log where it belongs
+ echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD
+
+ ifelse([$4], , [AC_MSG_ERROR(dnl
+[Package requirements ($2) were not met:
+
+$$1_PKG_ERRORS
+
+Consider adjusting the PKG_CONFIG_PATH environment variable if you
+installed software in a non-standard prefix.
+
+_PKG_TEXT
+])],
+ [AC_MSG_RESULT([no])
+ $4])
+elif test $pkg_failed = untried; then
+ ifelse([$4], , [AC_MSG_FAILURE(dnl
+[The pkg-config script could not be found or is too old. Make sure it
+is in your PATH or set the PKG_CONFIG environment variable to the full
+path to pkg-config.
+
+_PKG_TEXT
+
+To get pkg-config, see <http://pkg-config.freedesktop.org/>.])],
+ [$4])
+else
+ $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS
+ $1[]_LIBS=$pkg_cv_[]$1[]_LIBS
+ AC_MSG_RESULT([yes])
+ ifelse([$3], , :, [$3])
+fi[]dnl
+])
+m4trace:/usr/share/aclocal-1.11/amversion.m4:14: -1- AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version='1.11'
+dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
+dnl require some minimum version. Point them to the right macro.
+m4_if([$1], [1.11.1], [],
+ [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
+])
+m4trace:/usr/share/aclocal-1.11/amversion.m4:33: -1- AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], [AM_AUTOMAKE_VERSION([1.11.1])dnl
+m4_ifndef([AC_AUTOCONF_VERSION],
+ [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
+_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
+m4trace:/usr/share/aclocal-1.11/auxdir.m4:47: -1- AC_DEFUN([AM_AUX_DIR_EXPAND], [dnl Rely on autoconf to set up CDPATH properly.
+AC_PREREQ([2.50])dnl
+# expand $ac_aux_dir to an absolute path
+am_aux_dir=`cd $ac_aux_dir && pwd`
+])
+m4trace:/usr/share/aclocal-1.11/cond.m4:15: -1- AC_DEFUN([AM_CONDITIONAL], [AC_PREREQ(2.52)dnl
+ ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])],
+ [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl
+AC_SUBST([$1_TRUE])dnl
+AC_SUBST([$1_FALSE])dnl
+_AM_SUBST_NOTMAKE([$1_TRUE])dnl
+_AM_SUBST_NOTMAKE([$1_FALSE])dnl
+m4_define([_AM_COND_VALUE_$1], [$2])dnl
+if $2; then
+ $1_TRUE=
+ $1_FALSE='#'
+else
+ $1_TRUE='#'
+ $1_FALSE=
+fi
+AC_CONFIG_COMMANDS_PRE(
+[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then
+ AC_MSG_ERROR([[conditional "$1" was never defined.
+Usually this means the macro was only invoked conditionally.]])
+fi])])
+m4trace:/usr/share/aclocal-1.11/depend.m4:28: -1- AC_DEFUN([_AM_DEPENDENCIES], [AC_REQUIRE([AM_SET_DEPDIR])dnl
+AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl
+AC_REQUIRE([AM_MAKE_INCLUDE])dnl
+AC_REQUIRE([AM_DEP_TRACK])dnl
+
+ifelse([$1], CC, [depcc="$CC" am_compiler_list=],
+ [$1], CXX, [depcc="$CXX" am_compiler_list=],
+ [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'],
+ [$1], UPC, [depcc="$UPC" am_compiler_list=],
+ [$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'],
+ [depcc="$$1" am_compiler_list=])
+
+AC_CACHE_CHECK([dependency style of $depcc],
+ [am_cv_$1_dependencies_compiler_type],
+[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
+ # We make a subdir and do the tests there. Otherwise we can end up
+ # making bogus files that we don't know about and never remove. For
+ # instance it was reported that on HP-UX the gcc test will end up
+ # making a dummy file named `D' -- because `-MD' means `put the output
+ # in D'.
+ mkdir conftest.dir
+ # Copy depcomp to subdir because otherwise we won't find it if we're
+ # using a relative directory.
+ cp "$am_depcomp" conftest.dir
+ cd conftest.dir
+ # We will build objects and dependencies in a subdirectory because
+ # it helps to detect inapplicable dependency modes. For instance
+ # both Tru64's cc and ICC support -MD to output dependencies as a
+ # side effect of compilation, but ICC will put the dependencies in
+ # the current directory while Tru64 will put them in the object
+ # directory.
+ mkdir sub
+
+ am_cv_$1_dependencies_compiler_type=none
+ if test "$am_compiler_list" = ""; then
+ am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp`
+ fi
+ am__universal=false
+ m4_case([$1], [CC],
+ [case " $depcc " in #(
+ *\ -arch\ *\ -arch\ *) am__universal=true ;;
+ esac],
+ [CXX],
+ [case " $depcc " in #(
+ *\ -arch\ *\ -arch\ *) am__universal=true ;;
+ esac])
+
+ for depmode in $am_compiler_list; do
+ # Setup a source with many dependencies, because some compilers
+ # like to wrap large dependency lists on column 80 (with \), and
+ # we should not choose a depcomp mode which is confused by this.
+ #
+ # We need to recreate these files for each test, as the compiler may
+ # overwrite some of them when testing with obscure command lines.
+ # This happens at least with the AIX C compiler.
+ : > sub/conftest.c
+ for i in 1 2 3 4 5 6; do
+ echo '#include "conftst'$i'.h"' >> sub/conftest.c
+ # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
+ # Solaris 8's {/usr,}/bin/sh.
+ touch sub/conftst$i.h
+ done
+ echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
+
+ # We check with `-c' and `-o' for the sake of the "dashmstdout"
+ # mode. It turns out that the SunPro C++ compiler does not properly
+ # handle `-M -o', and we need to detect this. Also, some Intel
+ # versions had trouble with output in subdirs
+ am__obj=sub/conftest.${OBJEXT-o}
+ am__minus_obj="-o $am__obj"
+ case $depmode in
+ gcc)
+ # This depmode causes a compiler race in universal mode.
+ test "$am__universal" = false || continue
+ ;;
+ nosideeffect)
+ # after this tag, mechanisms are not by side-effect, so they'll
+ # only be used when explicitly requested
+ if test "x$enable_dependency_tracking" = xyes; then
+ continue
+ else
+ break
+ fi
+ ;;
+ msvisualcpp | msvcmsys)
+ # This compiler won't grok `-c -o', but also, the minuso test has
+ # not run yet. These depmodes are late enough in the game, and
+ # so weak that their functioning should not be impacted.
+ am__obj=conftest.${OBJEXT-o}
+ am__minus_obj=
+ ;;
+ none) break ;;
+ esac
+ if depmode=$depmode \
+ source=sub/conftest.c object=$am__obj \
+ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
+ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
+ >/dev/null 2>conftest.err &&
+ grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
+ grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
+ grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
+ ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
+ # icc doesn't choke on unknown options, it will just issue warnings
+ # or remarks (even with -Werror). So we grep stderr for any message
+ # that says an option was ignored or not supported.
+ # When given -MP, icc 7.0 and 7.1 complain thusly:
+ # icc: Command line warning: ignoring option '-M'; no argument required
+ # The diagnosis changed in icc 8.0:
+ # icc: Command line remark: option '-MP' not supported
+ if (grep 'ignoring option' conftest.err ||
+ grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
+ am_cv_$1_dependencies_compiler_type=$depmode
+ break
+ fi
+ fi
+ done
+
+ cd ..
+ rm -rf conftest.dir
+else
+ am_cv_$1_dependencies_compiler_type=none
+fi
+])
+AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type])
+AM_CONDITIONAL([am__fastdep$1], [
+ test "x$enable_dependency_tracking" != xno \
+ && test "$am_cv_$1_dependencies_compiler_type" = gcc3])
+])
+m4trace:/usr/share/aclocal-1.11/depend.m4:163: -1- AC_DEFUN([AM_SET_DEPDIR], [AC_REQUIRE([AM_SET_LEADING_DOT])dnl
+AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl
+])
+m4trace:/usr/share/aclocal-1.11/depend.m4:171: -1- AC_DEFUN([AM_DEP_TRACK], [AC_ARG_ENABLE(dependency-tracking,
+[ --disable-dependency-tracking speeds up one-time build
+ --enable-dependency-tracking do not reject slow dependency extractors])
+if test "x$enable_dependency_tracking" != xno; then
+ am_depcomp="$ac_aux_dir/depcomp"
+ AMDEPBACKSLASH='\'
+fi
+AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
+AC_SUBST([AMDEPBACKSLASH])dnl
+_AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl
+])
+m4trace:/usr/share/aclocal-1.11/depout.m4:14: -1- AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], [{
+ # Autoconf 2.62 quotes --file arguments for eval, but not when files
+ # are listed without --file. Let's play safe and only enable the eval
+ # if we detect the quoting.
+ case $CONFIG_FILES in
+ *\'*) eval set x "$CONFIG_FILES" ;;
+ *) set x $CONFIG_FILES ;;
+ esac
+ shift
+ for mf
+ do
+ # Strip MF so we end up with the name of the file.
+ mf=`echo "$mf" | sed -e 's/:.*$//'`
+ # Check whether this is an Automake generated Makefile or not.
+ # We used to match only the files named `Makefile.in', but
+ # some people rename them; so instead we look at the file content.
+ # Grep'ing the first line is not enough: some people post-process
+ # each Makefile.in and add a new line on top of each file to say so.
+ # Grep'ing the whole file is not good either: AIX grep has a line
+ # limit of 2048, but all sed's we know have understand at least 4000.
+ if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then
+ dirpart=`AS_DIRNAME("$mf")`
+ else
+ continue
+ fi
+ # Extract the definition of DEPDIR, am__include, and am__quote
+ # from the Makefile without running `make'.
+ DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
+ test -z "$DEPDIR" && continue
+ am__include=`sed -n 's/^am__include = //p' < "$mf"`
+ test -z "am__include" && continue
+ am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
+ # When using ansi2knr, U may be empty or an underscore; expand it
+ U=`sed -n 's/^U = //p' < "$mf"`
+ # Find all dependency output files, they are included files with
+ # $(DEPDIR) in their names. We invoke sed twice because it is the
+ # simplest approach to changing $(DEPDIR) to its actual value in the
+ # expansion.
+ for file in `sed -n "
+ s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
+ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
+ # Make sure the directory exists.
+ test -f "$dirpart/$file" && continue
+ fdir=`AS_DIRNAME(["$file"])`
+ AS_MKDIR_P([$dirpart/$fdir])
+ # echo "creating $dirpart/$file"
+ echo '# dummy' > "$dirpart/$file"
+ done
+ done
+}
+])
+m4trace:/usr/share/aclocal-1.11/depout.m4:75: -1- AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], [AC_CONFIG_COMMANDS([depfiles],
+ [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS],
+ [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"])
+])
+m4trace:/usr/share/aclocal-1.11/header.m4:12: -1- AU_DEFUN([AM_CONFIG_HEADER], [AC_CONFIG_HEADERS($@)])
+m4trace:/usr/share/aclocal-1.11/header.m4:12: -1- AC_DEFUN([AM_CONFIG_HEADER], [AC_DIAGNOSE([obsolete], [The macro `AM_CONFIG_HEADER' is obsolete.
+You should run autoupdate.])dnl
+AC_CONFIG_HEADERS($@)])
+m4trace:/usr/share/aclocal-1.11/init.m4:26: -1- AC_DEFUN([AM_INIT_AUTOMAKE], [AC_PREREQ([2.62])dnl
+dnl Autoconf wants to disallow AM_ names. We explicitly allow
+dnl the ones we care about.
+m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl
+AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl
+AC_REQUIRE([AC_PROG_INSTALL])dnl
+if test "`cd $srcdir && pwd`" != "`pwd`"; then
+ # Use -I$(srcdir) only when $(srcdir) != ., so that make's output
+ # is not polluted with repeated "-I."
+ AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl
+ # test to see if srcdir already configured
+ if test -f $srcdir/config.status; then
+ AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
+ fi
+fi
+
+# test whether we have cygpath
+if test -z "$CYGPATH_W"; then
+ if (cygpath --version) >/dev/null 2>/dev/null; then
+ CYGPATH_W='cygpath -w'
+ else
+ CYGPATH_W=echo
+ fi
+fi
+AC_SUBST([CYGPATH_W])
+
+# Define the identity of the package.
+dnl Distinguish between old-style and new-style calls.
+m4_ifval([$2],
+[m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl
+ AC_SUBST([PACKAGE], [$1])dnl
+ AC_SUBST([VERSION], [$2])],
+[_AM_SET_OPTIONS([$1])dnl
+dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT.
+m4_if(m4_ifdef([AC_PACKAGE_NAME], 1)m4_ifdef([AC_PACKAGE_VERSION], 1), 11,,
+ [m4_fatal([AC_INIT should be called with package and version arguments])])dnl
+ AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl
+ AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl
+
+_AM_IF_OPTION([no-define],,
+[AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
+ AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl
+
+# Some tools Automake needs.
+AC_REQUIRE([AM_SANITY_CHECK])dnl
+AC_REQUIRE([AC_ARG_PROGRAM])dnl
+AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version})
+AM_MISSING_PROG(AUTOCONF, autoconf)
+AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version})
+AM_MISSING_PROG(AUTOHEADER, autoheader)
+AM_MISSING_PROG(MAKEINFO, makeinfo)
+AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
+AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl
+AC_REQUIRE([AM_PROG_MKDIR_P])dnl
+# We need awk for the "check" target. The system "awk" is bad on
+# some platforms.
+AC_REQUIRE([AC_PROG_AWK])dnl
+AC_REQUIRE([AC_PROG_MAKE_SET])dnl
+AC_REQUIRE([AM_SET_LEADING_DOT])dnl
+_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])],
+ [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])],
+ [_AM_PROG_TAR([v7])])])
+_AM_IF_OPTION([no-dependencies],,
+[AC_PROVIDE_IFELSE([AC_PROG_CC],
+ [_AM_DEPENDENCIES(CC)],
+ [define([AC_PROG_CC],
+ defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl
+AC_PROVIDE_IFELSE([AC_PROG_CXX],
+ [_AM_DEPENDENCIES(CXX)],
+ [define([AC_PROG_CXX],
+ defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl
+AC_PROVIDE_IFELSE([AC_PROG_OBJC],
+ [_AM_DEPENDENCIES(OBJC)],
+ [define([AC_PROG_OBJC],
+ defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl
+])
+_AM_IF_OPTION([silent-rules], [AC_REQUIRE([AM_SILENT_RULES])])dnl
+dnl The `parallel-tests' driver may need to know about EXEEXT, so add the
+dnl `am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This macro
+dnl is hooked onto _AC_COMPILER_EXEEXT early, see below.
+AC_CONFIG_COMMANDS_PRE(dnl
+[m4_provide_if([_AM_COMPILER_EXEEXT],
+ [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl
+])
+m4trace:/usr/share/aclocal-1.11/init.m4:126: -1- AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], [# Compute $1's index in $config_headers.
+_am_arg=$1
+_am_stamp_count=1
+for _am_header in $config_headers :; do
+ case $_am_header in
+ $_am_arg | $_am_arg:* )
+ break ;;
+ * )
+ _am_stamp_count=`expr $_am_stamp_count + 1` ;;
+ esac
+done
+echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])
+m4trace:/usr/share/aclocal-1.11/install-sh.m4:11: -1- AC_DEFUN([AM_PROG_INSTALL_SH], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
+if test x"${install_sh}" != xset; then
+ case $am_aux_dir in
+ *\ * | *\ *)
+ install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;;
+ *)
+ install_sh="\${SHELL} $am_aux_dir/install-sh"
+ esac
+fi
+AC_SUBST(install_sh)])
+m4trace:/usr/share/aclocal-1.11/lead-dot.m4:12: -1- AC_DEFUN([AM_SET_LEADING_DOT], [rm -rf .tst 2>/dev/null
+mkdir .tst 2>/dev/null
+if test -d .tst; then
+ am__leading_dot=.
+else
+ am__leading_dot=_
+fi
+rmdir .tst 2>/dev/null
+AC_SUBST([am__leading_dot])])
+m4trace:/usr/share/aclocal-1.11/make.m4:14: -1- AC_DEFUN([AM_MAKE_INCLUDE], [am_make=${MAKE-make}
+cat > confinc << 'END'
+am__doit:
+ @echo this is the am__doit target
+.PHONY: am__doit
+END
+# If we don't find an include directive, just comment out the code.
+AC_MSG_CHECKING([for style of include used by $am_make])
+am__include="#"
+am__quote=
+_am_result=none
+# First try GNU make style include.
+echo "include confinc" > confmf
+# Ignore all kinds of additional output from `make'.
+case `$am_make -s -f confmf 2> /dev/null` in #(
+*the\ am__doit\ target*)
+ am__include=include
+ am__quote=
+ _am_result=GNU
+ ;;
+esac
+# Now try BSD make style include.
+if test "$am__include" = "#"; then
+ echo '.include "confinc"' > confmf
+ case `$am_make -s -f confmf 2> /dev/null` in #(
+ *the\ am__doit\ target*)
+ am__include=.include
+ am__quote="\""
+ _am_result=BSD
+ ;;
+ esac
+fi
+AC_SUBST([am__include])
+AC_SUBST([am__quote])
+AC_MSG_RESULT([$_am_result])
+rm -f confinc confmf
+])
+m4trace:/usr/share/aclocal-1.11/missing.m4:14: -1- AC_DEFUN([AM_MISSING_PROG], [AC_REQUIRE([AM_MISSING_HAS_RUN])
+$1=${$1-"${am_missing_run}$2"}
+AC_SUBST($1)])
+m4trace:/usr/share/aclocal-1.11/missing.m4:24: -1- AC_DEFUN([AM_MISSING_HAS_RUN], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
+AC_REQUIRE_AUX_FILE([missing])dnl
+if test x"${MISSING+set}" != xset; then
+ case $am_aux_dir in
+ *\ * | *\ *)
+ MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;;
+ *)
+ MISSING="\${SHELL} $am_aux_dir/missing" ;;
+ esac
+fi
+# Use eval to expand $SHELL
+if eval "$MISSING --run true"; then
+ am_missing_run="$MISSING --run "
+else
+ am_missing_run=
+ AC_MSG_WARN([`missing' script is too old or missing])
+fi
+])
+m4trace:/usr/share/aclocal-1.11/mkdirp.m4:11: -1- AC_DEFUN([AM_PROG_MKDIR_P], [AC_PREREQ([2.60])dnl
+AC_REQUIRE([AC_PROG_MKDIR_P])dnl
+dnl Automake 1.8 to 1.9.6 used to define mkdir_p. We now use MKDIR_P,
+dnl while keeping a definition of mkdir_p for backward compatibility.
+dnl @MKDIR_P@ is magic: AC_OUTPUT adjusts its value for each Makefile.
+dnl However we cannot define mkdir_p as $(MKDIR_P) for the sake of
+dnl Makefile.ins that do not define MKDIR_P, so we do our own
+dnl adjustment using top_builddir (which is defined more often than
+dnl MKDIR_P).
+AC_SUBST([mkdir_p], ["$MKDIR_P"])dnl
+case $mkdir_p in
+ [[\\/$]]* | ?:[[\\/]]*) ;;
+ */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;;
+esac
+])
+m4trace:/usr/share/aclocal-1.11/options.m4:13: -1- AC_DEFUN([_AM_MANGLE_OPTION], [[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])])
+m4trace:/usr/share/aclocal-1.11/options.m4:19: -1- AC_DEFUN([_AM_SET_OPTION], [m4_define(_AM_MANGLE_OPTION([$1]), 1)])
+m4trace:/usr/share/aclocal-1.11/options.m4:25: -1- AC_DEFUN([_AM_SET_OPTIONS], [m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])])
+m4trace:/usr/share/aclocal-1.11/options.m4:31: -1- AC_DEFUN([_AM_IF_OPTION], [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
+m4trace:/usr/share/aclocal-1.11/python.m4:35: -1- AC_DEFUN([AM_PATH_PYTHON], [
+ dnl Find a Python interpreter. Python versions prior to 2.0 are not
+ dnl supported. (2.0 was released on October 16, 2000).
+ m4_define_default([_AM_PYTHON_INTERPRETER_LIST],
+ [python python2 python3 python3.0 python2.5 python2.4 python2.3 python2.2 dnl
+python2.1 python2.0])
+
+ m4_if([$1],[],[
+ dnl No version check is needed.
+ # Find any Python interpreter.
+ if test -z "$PYTHON"; then
+ AC_PATH_PROGS([PYTHON], _AM_PYTHON_INTERPRETER_LIST, :)
+ fi
+ am_display_PYTHON=python
+ ], [
+ dnl A version check is needed.
+ if test -n "$PYTHON"; then
+ # If the user set $PYTHON, use it and don't search something else.
+ AC_MSG_CHECKING([whether $PYTHON version >= $1])
+ AM_PYTHON_CHECK_VERSION([$PYTHON], [$1],
+ [AC_MSG_RESULT(yes)],
+ [AC_MSG_ERROR(too old)])
+ am_display_PYTHON=$PYTHON
+ else
+ # Otherwise, try each interpreter until we find one that satisfies
+ # VERSION.
+ AC_CACHE_CHECK([for a Python interpreter with version >= $1],
+ [am_cv_pathless_PYTHON],[
+ for am_cv_pathless_PYTHON in _AM_PYTHON_INTERPRETER_LIST none; do
+ test "$am_cv_pathless_PYTHON" = none && break
+ AM_PYTHON_CHECK_VERSION([$am_cv_pathless_PYTHON], [$1], [break])
+ done])
+ # Set $PYTHON to the absolute path of $am_cv_pathless_PYTHON.
+ if test "$am_cv_pathless_PYTHON" = none; then
+ PYTHON=:
+ else
+ AC_PATH_PROG([PYTHON], [$am_cv_pathless_PYTHON])
+ fi
+ am_display_PYTHON=$am_cv_pathless_PYTHON
+ fi
+ ])
+
+ if test "$PYTHON" = :; then
+ dnl Run any user-specified action, or abort.
+ m4_default([$3], [AC_MSG_ERROR([no suitable Python interpreter found])])
+ else
+
+ dnl Query Python for its version number. Getting [:3] seems to be
+ dnl the best way to do this; it's what "site.py" does in the standard
+ dnl library.
+
+ AC_CACHE_CHECK([for $am_display_PYTHON version], [am_cv_python_version],
+ [am_cv_python_version=`$PYTHON -c "import sys; sys.stdout.write(sys.version[[:3]])"`])
+ AC_SUBST([PYTHON_VERSION], [$am_cv_python_version])
+
+ dnl Use the values of $prefix and $exec_prefix for the corresponding
+ dnl values of PYTHON_PREFIX and PYTHON_EXEC_PREFIX. These are made
+ dnl distinct variables so they can be overridden if need be. However,
+ dnl general consensus is that you shouldn't need this ability.
+
+ AC_SUBST([PYTHON_PREFIX], ['${prefix}'])
+ AC_SUBST([PYTHON_EXEC_PREFIX], ['${exec_prefix}'])
+
+ dnl At times (like when building shared libraries) you may want
+ dnl to know which OS platform Python thinks this is.
+
+ AC_CACHE_CHECK([for $am_display_PYTHON platform], [am_cv_python_platform],
+ [am_cv_python_platform=`$PYTHON -c "import sys; sys.stdout.write(sys.platform)"`])
+ AC_SUBST([PYTHON_PLATFORM], [$am_cv_python_platform])
+
+
+ dnl Set up 4 directories:
+
+ dnl pythondir -- where to install python scripts. This is the
+ dnl site-packages directory, not the python standard library
+ dnl directory like in previous automake betas. This behavior
+ dnl is more consistent with lispdir.m4 for example.
+ dnl Query distutils for this directory. distutils does not exist in
+ dnl Python 1.5, so we fall back to the hardcoded directory if it
+ dnl doesn't work.
+ AC_CACHE_CHECK([for $am_display_PYTHON script directory],
+ [am_cv_python_pythondir],
+ [if test "x$prefix" = xNONE
+ then
+ am_py_prefix=$ac_default_prefix
+ else
+ am_py_prefix=$prefix
+ fi
+ am_cv_python_pythondir=`$PYTHON -c "import sys; from distutils import sysconfig; sys.stdout.write(sysconfig.get_python_lib(0,0,prefix='$am_py_prefix'))" 2>/dev/null ||
+ echo "$PYTHON_PREFIX/lib/python$PYTHON_VERSION/site-packages"`
+ case $am_cv_python_pythondir in
+ $am_py_prefix*)
+ am__strip_prefix=`echo "$am_py_prefix" | sed 's|.|.|g'`
+ am_cv_python_pythondir=`echo "$am_cv_python_pythondir" | sed "s,^$am__strip_prefix,$PYTHON_PREFIX,"`
+ ;;
+ *)
+ case $am_py_prefix in
+ /usr|/System*) ;;
+ *)
+ am_cv_python_pythondir=$PYTHON_PREFIX/lib/python$PYTHON_VERSION/site-packages
+ ;;
+ esac
+ ;;
+ esac
+ ])
+ AC_SUBST([pythondir], [$am_cv_python_pythondir])
+
+ dnl pkgpythondir -- $PACKAGE directory under pythondir. Was
+ dnl PYTHON_SITE_PACKAGE in previous betas, but this naming is
+ dnl more consistent with the rest of automake.
+
+ AC_SUBST([pkgpythondir], [\${pythondir}/$PACKAGE])
+
+ dnl pyexecdir -- directory for installing python extension modules
+ dnl (shared libraries)
+ dnl Query distutils for this directory. distutils does not exist in
+ dnl Python 1.5, so we fall back to the hardcoded directory if it
+ dnl doesn't work.
+ AC_CACHE_CHECK([for $am_display_PYTHON extension module directory],
+ [am_cv_python_pyexecdir],
+ [if test "x$exec_prefix" = xNONE
+ then
+ am_py_exec_prefix=$am_py_prefix
+ else
+ am_py_exec_prefix=$exec_prefix
+ fi
+ am_cv_python_pyexecdir=`$PYTHON -c "import sys; from distutils import sysconfig; sys.stdout.write(sysconfig.get_python_lib(1,0,prefix='$am_py_exec_prefix'))" 2>/dev/null ||
+ echo "$PYTHON_EXEC_PREFIX/lib/python$PYTHON_VERSION/site-packages"`
+ case $am_cv_python_pyexecdir in
+ $am_py_exec_prefix*)
+ am__strip_prefix=`echo "$am_py_exec_prefix" | sed 's|.|.|g'`
+ am_cv_python_pyexecdir=`echo "$am_cv_python_pyexecdir" | sed "s,^$am__strip_prefix,$PYTHON_EXEC_PREFIX,"`
+ ;;
+ *)
+ case $am_py_exec_prefix in
+ /usr|/System*) ;;
+ *)
+ am_cv_python_pyexecdir=$PYTHON_EXEC_PREFIX/lib/python$PYTHON_VERSION/site-packages
+ ;;
+ esac
+ ;;
+ esac
+ ])
+ AC_SUBST([pyexecdir], [$am_cv_python_pyexecdir])
+
+ dnl pkgpyexecdir -- $(pyexecdir)/$(PACKAGE)
+
+ AC_SUBST([pkgpyexecdir], [\${pyexecdir}/$PACKAGE])
+
+ dnl Run any user-specified action.
+ $2
+ fi
+
+])
+m4trace:/usr/share/aclocal-1.11/python.m4:199: -1- AC_DEFUN([AM_PYTHON_CHECK_VERSION], [prog="import sys
+# split strings by '.' and convert to numeric. Append some zeros
+# because we need at least 4 digits for the hex conversion.
+# map returns an iterator in Python 3.0 and a list in 2.x
+minver = list(map(int, '$2'.split('.'))) + [[0, 0, 0]]
+minverhex = 0
+# xrange is not present in Python 3.0 and range returns an iterator
+for i in list(range(0, 4)): minverhex = (minverhex << 8) + minver[[i]]
+sys.exit(sys.hexversion < minverhex)"
+ AS_IF([AM_RUN_LOG([$1 -c "$prog"])], [$3], [$4])])
+m4trace:/usr/share/aclocal-1.11/runlog.m4:12: -1- AC_DEFUN([AM_RUN_LOG], [{ echo "$as_me:$LINENO: $1" >&AS_MESSAGE_LOG_FD
+ ($1) >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
+ (exit $ac_status); }])
+m4trace:/usr/share/aclocal-1.11/sanity.m4:14: -1- AC_DEFUN([AM_SANITY_CHECK], [AC_MSG_CHECKING([whether build environment is sane])
+# Just in case
+sleep 1
+echo timestamp > conftest.file
+# Reject unsafe characters in $srcdir or the absolute working directory
+# name. Accept space and tab only in the latter.
+am_lf='
+'
+case `pwd` in
+ *[[\\\"\#\$\&\'\`$am_lf]]*)
+ AC_MSG_ERROR([unsafe absolute working directory name]);;
+esac
+case $srcdir in
+ *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*)
+ AC_MSG_ERROR([unsafe srcdir value: `$srcdir']);;
+esac
+
+# Do `set' in a subshell so we don't clobber the current shell's
+# arguments. Must try -L first in case configure is actually a
+# symlink; some systems play weird games with the mod time of symlinks
+# (eg FreeBSD returns the mod time of the symlink's containing
+# directory).
+if (
+ set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
+ if test "$[*]" = "X"; then
+ # -L didn't work.
+ set X `ls -t "$srcdir/configure" conftest.file`
+ fi
+ rm -f conftest.file
+ if test "$[*]" != "X $srcdir/configure conftest.file" \
+ && test "$[*]" != "X conftest.file $srcdir/configure"; then
+
+ # If neither matched, then we have a broken ls. This can happen
+ # if, for instance, CONFIG_SHELL is bash and it inherits a
+ # broken ls alias from the environment. This has actually
+ # happened. Such a system could not be considered "sane".
+ AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken
+alias in your environment])
+ fi
+
+ test "$[2]" = conftest.file
+ )
+then
+ # Ok.
+ :
+else
+ AC_MSG_ERROR([newly created file is older than distributed files!
+Check your system clock])
+fi
+AC_MSG_RESULT(yes)])
+m4trace:/usr/share/aclocal-1.11/silent.m4:14: -1- AC_DEFUN([AM_SILENT_RULES], [AC_ARG_ENABLE([silent-rules],
+[ --enable-silent-rules less verbose build output (undo: `make V=1')
+ --disable-silent-rules verbose build output (undo: `make V=0')])
+case $enable_silent_rules in
+yes) AM_DEFAULT_VERBOSITY=0;;
+no) AM_DEFAULT_VERBOSITY=1;;
+*) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);;
+esac
+AC_SUBST([AM_DEFAULT_VERBOSITY])dnl
+AM_BACKSLASH='\'
+AC_SUBST([AM_BACKSLASH])dnl
+_AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl
+])
+m4trace:/usr/share/aclocal-1.11/strip.m4:17: -1- AC_DEFUN([AM_PROG_INSTALL_STRIP], [AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
+# Installed binaries are usually stripped using `strip' when the user
+# run `make install-strip'. However `strip' might not be the right
+# tool to use in cross-compilation environments, therefore Automake
+# will honor the `STRIP' environment variable to overrule this program.
+dnl Don't test for $cross_compiling = yes, because it might be `maybe'.
+if test "$cross_compiling" != no; then
+ AC_CHECK_TOOL([STRIP], [strip], :)
+fi
+INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
+AC_SUBST([INSTALL_STRIP_PROGRAM])])
+m4trace:/usr/share/aclocal-1.11/substnot.m4:14: -1- AC_DEFUN([_AM_SUBST_NOTMAKE])
+m4trace:/usr/share/aclocal-1.11/substnot.m4:19: -1- AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])
+m4trace:/usr/share/aclocal-1.11/tar.m4:24: -1- AC_DEFUN([_AM_PROG_TAR], [# Always define AMTAR for backward compatibility.
+AM_MISSING_PROG([AMTAR], [tar])
+m4_if([$1], [v7],
+ [am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'],
+ [m4_case([$1], [ustar],, [pax],,
+ [m4_fatal([Unknown tar format])])
+AC_MSG_CHECKING([how to create a $1 tar archive])
+# Loop over all known methods to create a tar archive until one works.
+_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none'
+_am_tools=${am_cv_prog_tar_$1-$_am_tools}
+# Do not fold the above two line into one, because Tru64 sh and
+# Solaris sh will not grok spaces in the rhs of `-'.
+for _am_tool in $_am_tools
+do
+ case $_am_tool in
+ gnutar)
+ for _am_tar in tar gnutar gtar;
+ do
+ AM_RUN_LOG([$_am_tar --version]) && break
+ done
+ am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"'
+ am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"'
+ am__untar="$_am_tar -xf -"
+ ;;
+ plaintar)
+ # Must skip GNU tar: if it does not support --format= it doesn't create
+ # ustar tarball either.
+ (tar --version) >/dev/null 2>&1 && continue
+ am__tar='tar chf - "$$tardir"'
+ am__tar_='tar chf - "$tardir"'
+ am__untar='tar xf -'
+ ;;
+ pax)
+ am__tar='pax -L -x $1 -w "$$tardir"'
+ am__tar_='pax -L -x $1 -w "$tardir"'
+ am__untar='pax -r'
+ ;;
+ cpio)
+ am__tar='find "$$tardir" -print | cpio -o -H $1 -L'
+ am__tar_='find "$tardir" -print | cpio -o -H $1 -L'
+ am__untar='cpio -i -H $1 -d'
+ ;;
+ none)
+ am__tar=false
+ am__tar_=false
+ am__untar=false
+ ;;
+ esac
+
+ # If the value was cached, stop now. We just wanted to have am__tar
+ # and am__untar set.
+ test -n "${am_cv_prog_tar_$1}" && break
+
+ # tar/untar a dummy directory, and stop if the command works
+ rm -rf conftest.dir
+ mkdir conftest.dir
+ echo GrepMe > conftest.dir/file
+ AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar])
+ rm -rf conftest.dir
+ if test -s conftest.tar; then
+ AM_RUN_LOG([$am__untar <conftest.tar])
+ grep GrepMe conftest.dir/file >/dev/null 2>&1 && break
+ fi
+done
+rm -rf conftest.dir
+
+AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool])
+AC_MSG_RESULT([$am_cv_prog_tar_$1])])
+AC_SUBST([am__tar])
+AC_SUBST([am__untar])
+])
+m4trace:m4/aclocal-include.m4:9: -1- AC_DEFUN([AM_ACLOCAL_INCLUDE], [
+ AM_CONDITIONAL(INSIDE_GNOME_COMMON, test x = y)
+
+ test -n "$ACLOCAL_FLAGS" && ACLOCAL="$ACLOCAL $ACLOCAL_FLAGS"
+
+ for k in $1 ; do ACLOCAL="$ACLOCAL -I $k" ; done
+])
+m4trace:m4/alsa.m4:15: -1- AC_DEFUN([AM_PATH_ALSA], [dnl Save the original CFLAGS, LDFLAGS, and LIBS
+alsa_save_CFLAGS="$CFLAGS"
+alsa_save_LDFLAGS="$LDFLAGS"
+alsa_save_LIBS="$LIBS"
+alsa_found=yes
+
+dnl
+dnl Get the cflags and libraries for alsa
+dnl
+AC_ARG_WITH(alsa-prefix,
+[ --with-alsa-prefix=PFX prefix where alsa library is installed (optional)],
+[alsa_prefix="$withval"], [alsa_prefix=""])
+
+AC_ARG_WITH(alsa-inc-prefix,
+[ --with-alsa-inc-prefix=PFX prefix where include libraries are (optional)],
+[alsa_inc_prefix="$withval"], [alsa_inc_prefix=""])
+
+dnl FIXME: this is not yet implemented
+AC_ARG_ENABLE(alsatest,
+[ --disable-alsatest do not try to compile and run a test alsa program],
+[enable_alsatest=no],
+[enable_alsatest=yes])
+
+dnl Add any special include directories
+AC_MSG_CHECKING(for ALSA CFLAGS)
+if test "$alsa_inc_prefix" != "" ; then
+ ALSA_CFLAGS="$ALSA_CFLAGS -I$alsa_inc_prefix"
+ CFLAGS="$CFLAGS -I$alsa_inc_prefix"
+fi
+AC_MSG_RESULT($ALSA_CFLAGS)
+
+dnl add any special lib dirs
+AC_MSG_CHECKING(for ALSA LDFLAGS)
+if test "$alsa_prefix" != "" ; then
+ ALSA_LIBS="$ALSA_LIBS -L$alsa_prefix"
+ LDFLAGS="$LDFLAGS $ALSA_LIBS"
+fi
+
+dnl add the alsa library
+ALSA_LIBS="$ALSA_LIBS -lasound -lm -ldl"
+LIBS=`echo $LIBS | sed 's/-lm//'`
+LIBS=`echo $LIBS | sed 's/-ldl//'`
+LIBS=`echo $LIBS | sed 's/ //'`
+LIBS="$ALSA_LIBS $LIBS"
+AC_MSG_RESULT($ALSA_LIBS)
+
+dnl Check for a working version of libasound that is of the right version.
+min_alsa_version=ifelse([$1], ,0.1.1,$1)
+AC_MSG_CHECKING(for libasound headers version >= $min_alsa_version)
+no_alsa=""
+ alsa_min_major_version=`echo $min_alsa_version | \
+ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
+ alsa_min_minor_version=`echo $min_alsa_version | \
+ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
+ alsa_min_micro_version=`echo $min_alsa_version | \
+ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
+
+AC_LANG_SAVE
+AC_LANG_C
+AC_TRY_COMPILE([
+#include <alsa/asoundlib.h>
+], [
+void main(void)
+{
+/* ensure backward compatibility */
+#if !defined(SND_LIB_MAJOR) && defined(SOUNDLIB_VERSION_MAJOR)
+#define SND_LIB_MAJOR SOUNDLIB_VERSION_MAJOR
+#endif
+#if !defined(SND_LIB_MINOR) && defined(SOUNDLIB_VERSION_MINOR)
+#define SND_LIB_MINOR SOUNDLIB_VERSION_MINOR
+#endif
+#if !defined(SND_LIB_SUBMINOR) && defined(SOUNDLIB_VERSION_SUBMINOR)
+#define SND_LIB_SUBMINOR SOUNDLIB_VERSION_SUBMINOR
+#endif
+
+# if(SND_LIB_MAJOR > $alsa_min_major_version)
+ exit(0);
+# else
+# if(SND_LIB_MAJOR < $alsa_min_major_version)
+# error not present
+# endif
+
+# if(SND_LIB_MINOR > $alsa_min_minor_version)
+ exit(0);
+# else
+# if(SND_LIB_MINOR < $alsa_min_minor_version)
+# error not present
+# endif
+
+# if(SND_LIB_SUBMINOR < $alsa_min_micro_version)
+# error not present
+# endif
+# endif
+# endif
+exit(0);
+}
+],
+ [AC_MSG_RESULT(found.)],
+ [AC_MSG_RESULT(not present.)
+ ifelse([$3], , [AC_MSG_ERROR(Sufficiently new version of libasound not found.)])
+ alsa_found=no]
+)
+AC_LANG_RESTORE
+
+dnl Now that we know that we have the right version, let's see if we have the library and not just the headers.
+AC_LANG_SAVE
+AC_LANG_CPLUSPLUS
+AC_CHECK_LIB([asound], [snd_seq_create_event],,
+ [ifelse([$3], , [AC_MSG_ERROR(No linkable libasound was found.)])
+ alsa_found=no]
+)
+AC_LANG_RESTORE
+
+if test "x$alsa_found" = "xyes" ; then
+ ifelse([$2], , :, [$2])
+ LIBS=`echo $LIBS | sed 's/-lasound//g'`
+ LIBS=`echo $LIBS | sed 's/ //'`
+ LIBS="-lasound $LIBS"
+fi
+if test "x$alsa_found" = "xno" ; then
+ ifelse([$3], , :, [$3])
+ CFLAGS="$alsa_save_CFLAGS"
+ LDFLAGS="$alsa_save_LDFLAGS"
+ LIBS="$alsa_save_LIBS"
+ ALSA_CFLAGS=""
+ ALSA_LIBS=""
+fi
+
+dnl That should be it. Now just export out symbols:
+AC_SUBST(ALSA_CFLAGS)
+AC_SUBST(ALSA_LIBS)
+])
+m4trace:m4/docbook.m4:5: -1- AC_DEFUN([PGAC_PROG_JADE], [AC_CHECK_PROGS([JADE], [openjade jade])])
+m4trace:m4/docbook.m4:11: -1- AC_DEFUN([PGAC_PROG_NSGMLS], [AC_CHECK_PROGS([NSGMLS], [onsgmls nsgmls])])
+m4trace:m4/docbook.m4:17: -1- AC_DEFUN([PGAC_CHECK_DOCBOOK], [AC_REQUIRE([PGAC_PROG_NSGMLS])
+AC_CACHE_CHECK([for DocBook V$1], [pgac_cv_check_docbook],
+[cat >conftest.sgml <<EOF
+<!doctype book PUBLIC "-//OASIS//DTD DocBook V$1//EN">
+<book>
+ <title>test</title>
+ <chapter>
+ <title>random</title>
+ <sect1>
+ <title>testsect</title>
+ <para>text</para>
+ </sect1>
+ </chapter>
+</book>
+EOF
+
+${NSGMLS-false} -s conftest.sgml 1>&5 2>&1
+if test $? -eq 0; then
+ pgac_cv_check_docbook=yes
+else
+ pgac_cv_check_docbook=no
+fi
+rm -f conftest.sgml])
+
+have_docbook=$pgac_cv_check_docbook
+AC_SUBST([have_docbook])
+])
+m4trace:m4/docbook.m4:50: -1- AC_DEFUN([PGAC_PATH_DOCBOOK_STYLESHEETS], [
+AC_MSG_CHECKING([for DocBook stylesheets])
+AC_ARG_WITH(docbook-stylesheets,
+ [ --with-docbook-stylesheets=DIR use DIR/html/docbook.dsl],
+ [muse_docbook_prefix="$withval"])
+AC_CACHE_VAL([pgac_cv_path_stylesheets], [
+if test -n "$muse_docbook_prefix"; then
+ if test -r "$muse_docbook_prefix/html/docbook.dsl" \
+ && test -r "$muse_docbook_prefix/print/docbook.dsl"; then
+ pgac_cv_path_stylesheets="$muse_docbook_prefix"
+ fi
+fi
+if test -z "$pgac_cv_path_stylesheets"; then
+ if test -n "$DOCBOOKSTYLE"; then
+ if test -r "$DOCBOOKSTYLE/html/docbook.dsl" \
+ && test -r "$DOCBOOKSTYLE/print/docbook.dsl"; then
+ pgac_cv_path_stylesheets="$DOCBOOKSTYLE"
+ fi
+ fi
+fi
+if test -z "$pgac_cv_path_stylesheets"; then
+ for pgac_prefix in /usr /usr/local /opt; do
+ for pgac_infix in share lib; do
+ for pgac_postfix in \
+ sgml/stylesheets/nwalsh-modular \
+ sgml/stylesheets/docbook \
+ sgml/docbook/dsssl/modular \
+ sgml/docbook/stylesheet/dsssl/modular
+ do
+ pgac_candidate=$pgac_prefix/$pgac_infix/$pgac_postfix
+ if test -r "$pgac_candidate/html/docbook.dsl" \
+ && test -r "$pgac_candidate/print/docbook.dsl"
+ then
+ pgac_cv_path_stylesheets=$pgac_candidate
+ break 3
+ fi
+ done
+ done
+ done
+fi
+])
+DOCBOOKSTYLE=$pgac_cv_path_stylesheets
+AC_SUBST([DOCBOOKSTYLE])
+if test -n "$DOCBOOKSTYLE"; then
+ AC_MSG_RESULT([$DOCBOOKSTYLE])
+else
+ AC_MSG_RESULT(no)
+fi])
+m4trace:m4/libtool.m4:67: -1- AC_DEFUN([LT_INIT], [AC_PREREQ([2.58])dnl We use AC_INCLUDES_DEFAULT
+AC_BEFORE([$0], [LT_LANG])dnl
+AC_BEFORE([$0], [LT_OUTPUT])dnl
+AC_BEFORE([$0], [LTDL_INIT])dnl
+m4_require([_LT_CHECK_BUILDDIR])dnl
+
+dnl Autoconf doesn't catch unexpanded LT_ macros by default:
+m4_pattern_forbid([^_?LT_[A-Z_]+$])dnl
+m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$])dnl
+dnl aclocal doesn't pull ltoptions.m4, ltsugar.m4, or ltversion.m4
+dnl unless we require an AC_DEFUNed macro:
+AC_REQUIRE([LTOPTIONS_VERSION])dnl
+AC_REQUIRE([LTSUGAR_VERSION])dnl
+AC_REQUIRE([LTVERSION_VERSION])dnl
+AC_REQUIRE([LTOBSOLETE_VERSION])dnl
+m4_require([_LT_PROG_LTMAIN])dnl
+
+dnl Parse OPTIONS
+_LT_SET_OPTIONS([$0], [$1])
+
+# This can be used to rebuild libtool when needed
+LIBTOOL_DEPS="$ltmain"
+
+# Always use our own libtool.
+LIBTOOL='$(SHELL) $(top_builddir)/libtool'
+AC_SUBST(LIBTOOL)dnl
+
+_LT_SETUP
+
+# Only expand once:
+m4_define([LT_INIT])
+])
+m4trace:m4/libtool.m4:102: -1- AU_DEFUN([AC_PROG_LIBTOOL], [m4_if($#, 0, [LT_INIT], [LT_INIT($@)])])
+m4trace:m4/libtool.m4:102: -1- AC_DEFUN([AC_PROG_LIBTOOL], [AC_DIAGNOSE([obsolete], [The macro `AC_PROG_LIBTOOL' is obsolete.
+You should run autoupdate.])dnl
+m4_if($#, 0, [LT_INIT], [LT_INIT($@)])])
+m4trace:m4/libtool.m4:103: -1- AU_DEFUN([AM_PROG_LIBTOOL], [m4_if($#, 0, [LT_INIT], [LT_INIT($@)])])
+m4trace:m4/libtool.m4:103: -1- AC_DEFUN([AM_PROG_LIBTOOL], [AC_DIAGNOSE([obsolete], [The macro `AM_PROG_LIBTOOL' is obsolete.
+You should run autoupdate.])dnl
+m4_if($#, 0, [LT_INIT], [LT_INIT($@)])])
+m4trace:m4/libtool.m4:562: -1- AC_DEFUN([LT_OUTPUT], [: ${CONFIG_LT=./config.lt}
+AC_MSG_NOTICE([creating $CONFIG_LT])
+cat >"$CONFIG_LT" <<_LTEOF
+#! $SHELL
+# Generated by $as_me.
+# Run this file to recreate a libtool stub with the current configuration.
+
+lt_cl_silent=false
+SHELL=\${CONFIG_SHELL-$SHELL}
+_LTEOF
+
+cat >>"$CONFIG_LT" <<\_LTEOF
+AS_SHELL_SANITIZE
+_AS_PREPARE
+
+exec AS_MESSAGE_FD>&1
+exec AS_MESSAGE_LOG_FD>>config.log
+{
+ echo
+ AS_BOX([Running $as_me.])
+} >&AS_MESSAGE_LOG_FD
+
+lt_cl_help="\
+\`$as_me' creates a local libtool stub from the current configuration,
+for use in further configure time tests before the real libtool is
+generated.
+
+Usage: $[0] [[OPTIONS]]
+
+ -h, --help print this help, then exit
+ -V, --version print version number, then exit
+ -q, --quiet do not print progress messages
+ -d, --debug don't remove temporary files
+
+Report bugs to <bug-libtool@gnu.org>."
+
+lt_cl_version="\
+m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl
+m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION])
+configured by $[0], generated by m4_PACKAGE_STRING.
+
+Copyright (C) 2008 Free Software Foundation, Inc.
+This config.lt script is free software; the Free Software Foundation
+gives unlimited permision to copy, distribute and modify it."
+
+while test $[#] != 0
+do
+ case $[1] in
+ --version | --v* | -V )
+ echo "$lt_cl_version"; exit 0 ;;
+ --help | --h* | -h )
+ echo "$lt_cl_help"; exit 0 ;;
+ --debug | --d* | -d )
+ debug=: ;;
+ --quiet | --q* | --silent | --s* | -q )
+ lt_cl_silent=: ;;
+
+ -*) AC_MSG_ERROR([unrecognized option: $[1]
+Try \`$[0] --help' for more information.]) ;;
+
+ *) AC_MSG_ERROR([unrecognized argument: $[1]
+Try \`$[0] --help' for more information.]) ;;
+ esac
+ shift
+done
+
+if $lt_cl_silent; then
+ exec AS_MESSAGE_FD>/dev/null
+fi
+_LTEOF
+
+cat >>"$CONFIG_LT" <<_LTEOF
+_LT_OUTPUT_LIBTOOL_COMMANDS_INIT
+_LTEOF
+
+cat >>"$CONFIG_LT" <<\_LTEOF
+AC_MSG_NOTICE([creating $ofile])
+_LT_OUTPUT_LIBTOOL_COMMANDS
+AS_EXIT(0)
+_LTEOF
+chmod +x "$CONFIG_LT"
+
+# configure is writing to config.log, but config.lt does its own redirection,
+# appending to config.log, which fails on DOS, as config.log is still kept
+# open by configure. Here we exec the FD to /dev/null, effectively closing
+# config.log, so it can be properly (re)opened and appended to by config.lt.
+if test "$no_create" != yes; then
+ lt_cl_success=:
+ test "$silent" = yes &&
+ lt_config_lt_args="$lt_config_lt_args --quiet"
+ exec AS_MESSAGE_LOG_FD>/dev/null
+ $SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false
+ exec AS_MESSAGE_LOG_FD>>config.log
+ $lt_cl_success || AS_EXIT(1)
+fi
+])
+m4trace:m4/libtool.m4:757: -1- AC_DEFUN([LT_SUPPORTED_TAG], [])
+m4trace:m4/libtool.m4:768: -1- AC_DEFUN([LT_LANG], [AC_BEFORE([$0], [LT_OUTPUT])dnl
+m4_case([$1],
+ [C], [_LT_LANG(C)],
+ [C++], [_LT_LANG(CXX)],
+ [Java], [_LT_LANG(GCJ)],
+ [Fortran 77], [_LT_LANG(F77)],
+ [Fortran], [_LT_LANG(FC)],
+ [Windows Resource], [_LT_LANG(RC)],
+ [m4_ifdef([_LT_LANG_]$1[_CONFIG],
+ [_LT_LANG($1)],
+ [m4_fatal([$0: unsupported language: "$1"])])])dnl
+])
+m4trace:m4/libtool.m4:830: -1- AU_DEFUN([AC_LIBTOOL_CXX], [LT_LANG(C++)])
+m4trace:m4/libtool.m4:830: -1- AC_DEFUN([AC_LIBTOOL_CXX], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBTOOL_CXX' is obsolete.
+You should run autoupdate.])dnl
+LT_LANG(C++)])
+m4trace:m4/libtool.m4:831: -1- AU_DEFUN([AC_LIBTOOL_F77], [LT_LANG(Fortran 77)])
+m4trace:m4/libtool.m4:831: -1- AC_DEFUN([AC_LIBTOOL_F77], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBTOOL_F77' is obsolete.
+You should run autoupdate.])dnl
+LT_LANG(Fortran 77)])
+m4trace:m4/libtool.m4:832: -1- AU_DEFUN([AC_LIBTOOL_FC], [LT_LANG(Fortran)])
+m4trace:m4/libtool.m4:832: -1- AC_DEFUN([AC_LIBTOOL_FC], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBTOOL_FC' is obsolete.
+You should run autoupdate.])dnl
+LT_LANG(Fortran)])
+m4trace:m4/libtool.m4:833: -1- AU_DEFUN([AC_LIBTOOL_GCJ], [LT_LANG(Java)])
+m4trace:m4/libtool.m4:833: -1- AC_DEFUN([AC_LIBTOOL_GCJ], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBTOOL_GCJ' is obsolete.
+You should run autoupdate.])dnl
+LT_LANG(Java)])
+m4trace:m4/libtool.m4:1402: -1- AC_DEFUN([_LT_COMPILER_OPTION], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+m4_require([_LT_DECL_SED])dnl
+AC_CACHE_CHECK([$1], [$2],
+ [$2=no
+ m4_if([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4])
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+ lt_compiler_flag="$3"
+ # Insert the option either (1) after the last *FLAGS variable, or
+ # (2) before a word containing "conftest.", or (3) at the end.
+ # Note that $ac_compile itself does not contain backslashes and begins
+ # with a dollar sign (not a hyphen), so the echo should work correctly.
+ # The option is referenced via a variable to avoid confusing sed.
+ lt_compile=`echo "$ac_compile" | $SED \
+ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+ -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \
+ -e 's:$: $lt_compiler_flag:'`
+ (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
+ (eval "$lt_compile" 2>conftest.err)
+ ac_status=$?
+ cat conftest.err >&AS_MESSAGE_LOG_FD
+ echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
+ if (exit $ac_status) && test -s "$ac_outfile"; then
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings other than the usual output.
+ $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp
+ $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+ if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
+ $2=yes
+ fi
+ fi
+ $RM conftest*
+])
+
+if test x"[$]$2" = xyes; then
+ m4_if([$5], , :, [$5])
+else
+ m4_if([$6], , :, [$6])
+fi
+])
+m4trace:m4/libtool.m4:1444: -1- AU_DEFUN([AC_LIBTOOL_COMPILER_OPTION], [m4_if($#, 0, [_LT_COMPILER_OPTION], [_LT_COMPILER_OPTION($@)])])
+m4trace:m4/libtool.m4:1444: -1- AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBTOOL_COMPILER_OPTION' is obsolete.
+You should run autoupdate.])dnl
+m4_if($#, 0, [_LT_COMPILER_OPTION], [_LT_COMPILER_OPTION($@)])])
+m4trace:m4/libtool.m4:1453: -1- AC_DEFUN([_LT_LINKER_OPTION], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+m4_require([_LT_DECL_SED])dnl
+AC_CACHE_CHECK([$1], [$2],
+ [$2=no
+ save_LDFLAGS="$LDFLAGS"
+ LDFLAGS="$LDFLAGS $3"
+ echo "$lt_simple_link_test_code" > conftest.$ac_ext
+ if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
+ # The linker can only warn and ignore the option if not recognized
+ # So say no if there are warnings
+ if test -s conftest.err; then
+ # Append any errors to the config.log.
+ cat conftest.err 1>&AS_MESSAGE_LOG_FD
+ $ECHO "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp
+ $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+ if diff conftest.exp conftest.er2 >/dev/null; then
+ $2=yes
+ fi
+ else
+ $2=yes
+ fi
+ fi
+ $RM -r conftest*
+ LDFLAGS="$save_LDFLAGS"
+])
+
+if test x"[$]$2" = xyes; then
+ m4_if([$4], , :, [$4])
+else
+ m4_if([$5], , :, [$5])
+fi
+])
+m4trace:m4/libtool.m4:1488: -1- AU_DEFUN([AC_LIBTOOL_LINKER_OPTION], [m4_if($#, 0, [_LT_LINKER_OPTION], [_LT_LINKER_OPTION($@)])])
+m4trace:m4/libtool.m4:1488: -1- AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBTOOL_LINKER_OPTION' is obsolete.
+You should run autoupdate.])dnl
+m4_if($#, 0, [_LT_LINKER_OPTION], [_LT_LINKER_OPTION($@)])])
+m4trace:m4/libtool.m4:1495: -1- AC_DEFUN([LT_CMD_MAX_LEN], [AC_REQUIRE([AC_CANONICAL_HOST])dnl
+# find the maximum length of command line arguments
+AC_MSG_CHECKING([the maximum length of command line arguments])
+AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl
+ i=0
+ teststring="ABCD"
+
+ case $build_os in
+ msdosdjgpp*)
+ # On DJGPP, this test can blow up pretty badly due to problems in libc
+ # (any single argument exceeding 2000 bytes causes a buffer overrun
+ # during glob expansion). Even if it were fixed, the result of this
+ # check would be larger than it should be.
+ lt_cv_sys_max_cmd_len=12288; # 12K is about right
+ ;;
+
+ gnu*)
+ # Under GNU Hurd, this test is not required because there is
+ # no limit to the length of command line arguments.
+ # Libtool will interpret -1 as no limit whatsoever
+ lt_cv_sys_max_cmd_len=-1;
+ ;;
+
+ cygwin* | mingw* | cegcc*)
+ # On Win9x/ME, this test blows up -- it succeeds, but takes
+ # about 5 minutes as the teststring grows exponentially.
+ # Worse, since 9x/ME are not pre-emptively multitasking,
+ # you end up with a "frozen" computer, even though with patience
+ # the test eventually succeeds (with a max line length of 256k).
+ # Instead, let's just punt: use the minimum linelength reported by
+ # all of the supported platforms: 8192 (on NT/2K/XP).
+ lt_cv_sys_max_cmd_len=8192;
+ ;;
+
+ amigaos*)
+ # On AmigaOS with pdksh, this test takes hours, literally.
+ # So we just punt and use a minimum line length of 8192.
+ lt_cv_sys_max_cmd_len=8192;
+ ;;
+
+ netbsd* | freebsd* | openbsd* | darwin* | dragonfly*)
+ # This has been around since 386BSD, at least. Likely further.
+ if test -x /sbin/sysctl; then
+ lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax`
+ elif test -x /usr/sbin/sysctl; then
+ lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax`
+ else
+ lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs
+ fi
+ # And add a safety zone
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
+ ;;
+
+ interix*)
+ # We know the value 262144 and hardcode it with a safety zone (like BSD)
+ lt_cv_sys_max_cmd_len=196608
+ ;;
+
+ osf*)
+ # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure
+ # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not
+ # nice to cause kernel panics so lets avoid the loop below.
+ # First set a reasonable default.
+ lt_cv_sys_max_cmd_len=16384
+ #
+ if test -x /sbin/sysconfig; then
+ case `/sbin/sysconfig -q proc exec_disable_arg_limit` in
+ *1*) lt_cv_sys_max_cmd_len=-1 ;;
+ esac
+ fi
+ ;;
+ sco3.2v5*)
+ lt_cv_sys_max_cmd_len=102400
+ ;;
+ sysv5* | sco5v6* | sysv4.2uw2*)
+ kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null`
+ if test -n "$kargmax"; then
+ lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[ ]]//'`
+ else
+ lt_cv_sys_max_cmd_len=32768
+ fi
+ ;;
+ *)
+ lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null`
+ if test -n "$lt_cv_sys_max_cmd_len"; then
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
+ else
+ # Make teststring a little bigger before we do anything with it.
+ # a 1K string should be a reasonable start.
+ for i in 1 2 3 4 5 6 7 8 ; do
+ teststring=$teststring$teststring
+ done
+ SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}}
+ # If test is not a shell built-in, we'll probably end up computing a
+ # maximum length that is only half of the actual maximum length, but
+ # we can't tell.
+ while { test "X"`$SHELL [$]0 --fallback-echo "X$teststring$teststring" 2>/dev/null` \
+ = "XX$teststring$teststring"; } >/dev/null 2>&1 &&
+ test $i != 17 # 1/2 MB should be enough
+ do
+ i=`expr $i + 1`
+ teststring=$teststring$teststring
+ done
+ # Only check the string length outside the loop.
+ lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1`
+ teststring=
+ # Add a significant safety factor because C++ compilers can tack on
+ # massive amounts of additional arguments before passing them to the
+ # linker. It appears as though 1/2 is a usable value.
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2`
+ fi
+ ;;
+ esac
+])
+if test -n $lt_cv_sys_max_cmd_len ; then
+ AC_MSG_RESULT($lt_cv_sys_max_cmd_len)
+else
+ AC_MSG_RESULT(none)
+fi
+max_cmd_len=$lt_cv_sys_max_cmd_len
+_LT_DECL([], [max_cmd_len], [0],
+ [What is the maximum length of a command?])
+])
+m4trace:m4/libtool.m4:1623: -1- AU_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], [m4_if($#, 0, [LT_CMD_MAX_LEN], [LT_CMD_MAX_LEN($@)])])
+m4trace:m4/libtool.m4:1623: -1- AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBTOOL_SYS_MAX_CMD_LEN' is obsolete.
+You should run autoupdate.])dnl
+m4_if($#, 0, [LT_CMD_MAX_LEN], [LT_CMD_MAX_LEN($@)])])
+m4trace:m4/libtool.m4:1724: -1- AC_DEFUN([LT_SYS_DLOPEN_SELF], [m4_require([_LT_HEADER_DLFCN])dnl
+if test "x$enable_dlopen" != xyes; then
+ enable_dlopen=unknown
+ enable_dlopen_self=unknown
+ enable_dlopen_self_static=unknown
+else
+ lt_cv_dlopen=no
+ lt_cv_dlopen_libs=
+
+ case $host_os in
+ beos*)
+ lt_cv_dlopen="load_add_on"
+ lt_cv_dlopen_libs=
+ lt_cv_dlopen_self=yes
+ ;;
+
+ mingw* | pw32* | cegcc*)
+ lt_cv_dlopen="LoadLibrary"
+ lt_cv_dlopen_libs=
+ ;;
+
+ cygwin*)
+ lt_cv_dlopen="dlopen"
+ lt_cv_dlopen_libs=
+ ;;
+
+ darwin*)
+ # if libdl is installed we need to link against it
+ AC_CHECK_LIB([dl], [dlopen],
+ [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],[
+ lt_cv_dlopen="dyld"
+ lt_cv_dlopen_libs=
+ lt_cv_dlopen_self=yes
+ ])
+ ;;
+
+ *)
+ AC_CHECK_FUNC([shl_load],
+ [lt_cv_dlopen="shl_load"],
+ [AC_CHECK_LIB([dld], [shl_load],
+ [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"],
+ [AC_CHECK_FUNC([dlopen],
+ [lt_cv_dlopen="dlopen"],
+ [AC_CHECK_LIB([dl], [dlopen],
+ [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],
+ [AC_CHECK_LIB([svld], [dlopen],
+ [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"],
+ [AC_CHECK_LIB([dld], [dld_link],
+ [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"])
+ ])
+ ])
+ ])
+ ])
+ ])
+ ;;
+ esac
+
+ if test "x$lt_cv_dlopen" != xno; then
+ enable_dlopen=yes
+ else
+ enable_dlopen=no
+ fi
+
+ case $lt_cv_dlopen in
+ dlopen)
+ save_CPPFLAGS="$CPPFLAGS"
+ test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
+
+ save_LDFLAGS="$LDFLAGS"
+ wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
+
+ save_LIBS="$LIBS"
+ LIBS="$lt_cv_dlopen_libs $LIBS"
+
+ AC_CACHE_CHECK([whether a program can dlopen itself],
+ lt_cv_dlopen_self, [dnl
+ _LT_TRY_DLOPEN_SELF(
+ lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes,
+ lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross)
+ ])
+
+ if test "x$lt_cv_dlopen_self" = xyes; then
+ wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\"
+ AC_CACHE_CHECK([whether a statically linked program can dlopen itself],
+ lt_cv_dlopen_self_static, [dnl
+ _LT_TRY_DLOPEN_SELF(
+ lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes,
+ lt_cv_dlopen_self_static=no, lt_cv_dlopen_self_static=cross)
+ ])
+ fi
+
+ CPPFLAGS="$save_CPPFLAGS"
+ LDFLAGS="$save_LDFLAGS"
+ LIBS="$save_LIBS"
+ ;;
+ esac
+
+ case $lt_cv_dlopen_self in
+ yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
+ *) enable_dlopen_self=unknown ;;
+ esac
+
+ case $lt_cv_dlopen_self_static in
+ yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
+ *) enable_dlopen_self_static=unknown ;;
+ esac
+fi
+_LT_DECL([dlopen_support], [enable_dlopen], [0],
+ [Whether dlopen is supported])
+_LT_DECL([dlopen_self], [enable_dlopen_self], [0],
+ [Whether dlopen of programs is supported])
+_LT_DECL([dlopen_self_static], [enable_dlopen_self_static], [0],
+ [Whether dlopen of statically linked programs is supported])
+])
+m4trace:m4/libtool.m4:1841: -1- AU_DEFUN([AC_LIBTOOL_DLOPEN_SELF], [m4_if($#, 0, [LT_SYS_DLOPEN_SELF], [LT_SYS_DLOPEN_SELF($@)])])
+m4trace:m4/libtool.m4:1841: -1- AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBTOOL_DLOPEN_SELF' is obsolete.
+You should run autoupdate.])dnl
+m4_if($#, 0, [LT_SYS_DLOPEN_SELF], [LT_SYS_DLOPEN_SELF($@)])])
+m4trace:m4/libtool.m4:2741: -1- AC_DEFUN([_LT_PATH_TOOL_PREFIX], [m4_require([_LT_DECL_EGREP])dnl
+AC_MSG_CHECKING([for $1])
+AC_CACHE_VAL(lt_cv_path_MAGIC_CMD,
+[case $MAGIC_CMD in
+[[\\/*] | ?:[\\/]*])
+ lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
+ ;;
+*)
+ lt_save_MAGIC_CMD="$MAGIC_CMD"
+ lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+dnl $ac_dummy forces splitting on constant user-supplied paths.
+dnl POSIX.2 word splitting is done only on the output of word expansions,
+dnl not every word. This closes a longstanding sh security hole.
+ ac_dummy="m4_if([$2], , $PATH, [$2])"
+ for ac_dir in $ac_dummy; do
+ IFS="$lt_save_ifs"
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/$1; then
+ lt_cv_path_MAGIC_CMD="$ac_dir/$1"
+ if test -n "$file_magic_test_file"; then
+ case $deplibs_check_method in
+ "file_magic "*)
+ file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
+ MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+ if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
+ $EGREP "$file_magic_regex" > /dev/null; then
+ :
+ else
+ cat <<_LT_EOF 1>&2
+
+*** Warning: the command libtool uses to detect shared libraries,
+*** $file_magic_cmd, produces output that libtool cannot recognize.
+*** The result is that libtool may fail to recognize shared libraries
+*** as such. This will affect the creation of libtool libraries that
+*** depend on shared libraries, but programs linked with such libtool
+*** libraries will work regardless of this problem. Nevertheless, you
+*** may want to report the problem to your system manager and/or to
+*** bug-libtool@gnu.org
+
+_LT_EOF
+ fi ;;
+ esac
+ fi
+ break
+ fi
+ done
+ IFS="$lt_save_ifs"
+ MAGIC_CMD="$lt_save_MAGIC_CMD"
+ ;;
+esac])
+MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+if test -n "$MAGIC_CMD"; then
+ AC_MSG_RESULT($MAGIC_CMD)
+else
+ AC_MSG_RESULT(no)
+fi
+_LT_DECL([], [MAGIC_CMD], [0],
+ [Used to examine libraries when file_magic_cmd begins with "file"])dnl
+])
+m4trace:m4/libtool.m4:2803: -1- AU_DEFUN([AC_PATH_TOOL_PREFIX], [m4_if($#, 0, [_LT_PATH_TOOL_PREFIX], [_LT_PATH_TOOL_PREFIX($@)])])
+m4trace:m4/libtool.m4:2803: -1- AC_DEFUN([AC_PATH_TOOL_PREFIX], [AC_DIAGNOSE([obsolete], [The macro `AC_PATH_TOOL_PREFIX' is obsolete.
+You should run autoupdate.])dnl
+m4_if($#, 0, [_LT_PATH_TOOL_PREFIX], [_LT_PATH_TOOL_PREFIX($@)])])
+m4trace:m4/libtool.m4:2826: -1- AC_DEFUN([LT_PATH_LD], [AC_REQUIRE([AC_PROG_CC])dnl
+AC_REQUIRE([AC_CANONICAL_HOST])dnl
+AC_REQUIRE([AC_CANONICAL_BUILD])dnl
+m4_require([_LT_DECL_SED])dnl
+m4_require([_LT_DECL_EGREP])dnl
+
+AC_ARG_WITH([gnu-ld],
+ [AS_HELP_STRING([--with-gnu-ld],
+ [assume the C compiler uses GNU ld @<:@default=no@:>@])],
+ [test "$withval" = no || with_gnu_ld=yes],
+ [with_gnu_ld=no])dnl
+
+ac_prog=ld
+if test "$GCC" = yes; then
+ # Check if gcc -print-prog-name=ld gives a path.
+ AC_MSG_CHECKING([for ld used by $CC])
+ case $host in
+ *-*-mingw*)
+ # gcc leaves a trailing carriage return which upsets mingw
+ ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
+ *)
+ ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
+ esac
+ case $ac_prog in
+ # Accept absolute paths.
+ [[\\/]]* | ?:[[\\/]]*)
+ re_direlt='/[[^/]][[^/]]*/\.\./'
+ # Canonicalize the pathname of ld
+ ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'`
+ while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do
+ ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"`
+ done
+ test -z "$LD" && LD="$ac_prog"
+ ;;
+ "")
+ # If it fails, then pretend we aren't using GCC.
+ ac_prog=ld
+ ;;
+ *)
+ # If it is relative, then search for the first ld in PATH.
+ with_gnu_ld=unknown
+ ;;
+ esac
+elif test "$with_gnu_ld" = yes; then
+ AC_MSG_CHECKING([for GNU ld])
+else
+ AC_MSG_CHECKING([for non-GNU ld])
+fi
+AC_CACHE_VAL(lt_cv_path_LD,
+[if test -z "$LD"; then
+ lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+ for ac_dir in $PATH; do
+ IFS="$lt_save_ifs"
+ test -z "$ac_dir" && ac_dir=.
+ if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
+ lt_cv_path_LD="$ac_dir/$ac_prog"
+ # Check to see if the program is GNU ld. I'd rather use --version,
+ # but apparently some variants of GNU ld only accept -v.
+ # Break only if it was the GNU/non-GNU ld that we prefer.
+ case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
+ *GNU* | *'with BFD'*)
+ test "$with_gnu_ld" != no && break
+ ;;
+ *)
+ test "$with_gnu_ld" != yes && break
+ ;;
+ esac
+ fi
+ done
+ IFS="$lt_save_ifs"
+else
+ lt_cv_path_LD="$LD" # Let the user override the test with a path.
+fi])
+LD="$lt_cv_path_LD"
+if test -n "$LD"; then
+ AC_MSG_RESULT($LD)
+else
+ AC_MSG_RESULT(no)
+fi
+test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
+_LT_PATH_LD_GNU
+AC_SUBST([LD])
+
+_LT_TAGDECL([], [LD], [1], [The linker used to build libraries])
+])
+m4trace:m4/libtool.m4:2914: -1- AU_DEFUN([AM_PROG_LD], [m4_if($#, 0, [LT_PATH_LD], [LT_PATH_LD($@)])])
+m4trace:m4/libtool.m4:2914: -1- AC_DEFUN([AM_PROG_LD], [AC_DIAGNOSE([obsolete], [The macro `AM_PROG_LD' is obsolete.
+You should run autoupdate.])dnl
+m4_if($#, 0, [LT_PATH_LD], [LT_PATH_LD($@)])])
+m4trace:m4/libtool.m4:2915: -1- AU_DEFUN([AC_PROG_LD], [m4_if($#, 0, [LT_PATH_LD], [LT_PATH_LD($@)])])
+m4trace:m4/libtool.m4:2915: -1- AC_DEFUN([AC_PROG_LD], [AC_DIAGNOSE([obsolete], [The macro `AC_PROG_LD' is obsolete.
+You should run autoupdate.])dnl
+m4_if($#, 0, [LT_PATH_LD], [LT_PATH_LD($@)])])
+m4trace:m4/libtool.m4:3179: -1- AC_DEFUN([LT_PATH_NM], [AC_REQUIRE([AC_PROG_CC])dnl
+AC_CACHE_CHECK([for BSD- or MS-compatible name lister (nm)], lt_cv_path_NM,
+[if test -n "$NM"; then
+ # Let the user override the test.
+ lt_cv_path_NM="$NM"
+else
+ lt_nm_to_check="${ac_tool_prefix}nm"
+ if test -n "$ac_tool_prefix" && test "$build" = "$host"; then
+ lt_nm_to_check="$lt_nm_to_check nm"
+ fi
+ for lt_tmp_nm in $lt_nm_to_check; do
+ lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+ for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do
+ IFS="$lt_save_ifs"
+ test -z "$ac_dir" && ac_dir=.
+ tmp_nm="$ac_dir/$lt_tmp_nm"
+ if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then
+ # Check to see if the nm accepts a BSD-compat flag.
+ # Adding the `sed 1q' prevents false positives on HP-UX, which says:
+ # nm: unknown option "B" ignored
+ # Tru64's nm complains that /dev/null is an invalid object file
+ case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in
+ */dev/null* | *'Invalid file or object type'*)
+ lt_cv_path_NM="$tmp_nm -B"
+ break
+ ;;
+ *)
+ case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in
+ */dev/null*)
+ lt_cv_path_NM="$tmp_nm -p"
+ break
+ ;;
+ *)
+ lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but
+ continue # so that we can try to find one that supports BSD flags
+ ;;
+ esac
+ ;;
+ esac
+ fi
+ done
+ IFS="$lt_save_ifs"
+ done
+ : ${lt_cv_path_NM=no}
+fi])
+if test "$lt_cv_path_NM" != "no"; then
+ NM="$lt_cv_path_NM"
+else
+ # Didn't find any BSD compatible name lister, look for dumpbin.
+ AC_CHECK_TOOLS(DUMPBIN, ["dumpbin -symbols" "link -dump -symbols"], :)
+ AC_SUBST([DUMPBIN])
+ if test "$DUMPBIN" != ":"; then
+ NM="$DUMPBIN"
+ fi
+fi
+test -z "$NM" && NM=nm
+AC_SUBST([NM])
+_LT_DECL([], [NM], [1], [A BSD- or MS-compatible name lister])dnl
+
+AC_CACHE_CHECK([the name lister ($NM) interface], [lt_cv_nm_interface],
+ [lt_cv_nm_interface="BSD nm"
+ echo "int some_variable = 0;" > conftest.$ac_ext
+ (eval echo "\"\$as_me:__oline__: $ac_compile\"" >&AS_MESSAGE_LOG_FD)
+ (eval "$ac_compile" 2>conftest.err)
+ cat conftest.err >&AS_MESSAGE_LOG_FD
+ (eval echo "\"\$as_me:__oline__: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD)
+ (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
+ cat conftest.err >&AS_MESSAGE_LOG_FD
+ (eval echo "\"\$as_me:__oline__: output\"" >&AS_MESSAGE_LOG_FD)
+ cat conftest.out >&AS_MESSAGE_LOG_FD
+ if $GREP 'External.*some_variable' conftest.out > /dev/null; then
+ lt_cv_nm_interface="MS dumpbin"
+ fi
+ rm -f conftest*])
+])
+m4trace:m4/libtool.m4:3257: -1- AU_DEFUN([AM_PROG_NM], [m4_if($#, 0, [LT_PATH_NM], [LT_PATH_NM($@)])])
+m4trace:m4/libtool.m4:3257: -1- AC_DEFUN([AM_PROG_NM], [AC_DIAGNOSE([obsolete], [The macro `AM_PROG_NM' is obsolete.
+You should run autoupdate.])dnl
+m4_if($#, 0, [LT_PATH_NM], [LT_PATH_NM($@)])])
+m4trace:m4/libtool.m4:3258: -1- AU_DEFUN([AC_PROG_NM], [m4_if($#, 0, [LT_PATH_NM], [LT_PATH_NM($@)])])
+m4trace:m4/libtool.m4:3258: -1- AC_DEFUN([AC_PROG_NM], [AC_DIAGNOSE([obsolete], [The macro `AC_PROG_NM' is obsolete.
+You should run autoupdate.])dnl
+m4_if($#, 0, [LT_PATH_NM], [LT_PATH_NM($@)])])
+m4trace:m4/libtool.m4:3267: -1- AC_DEFUN([LT_LIB_M], [AC_REQUIRE([AC_CANONICAL_HOST])dnl
+LIBM=
+case $host in
+*-*-beos* | *-*-cygwin* | *-*-pw32* | *-*-darwin*)
+ # These system don't have libm, or don't need it
+ ;;
+*-ncr-sysv4.3*)
+ AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw")
+ AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm")
+ ;;
+*)
+ AC_CHECK_LIB(m, cos, LIBM="-lm")
+ ;;
+esac
+AC_SUBST([LIBM])
+])
+m4trace:m4/libtool.m4:3286: -1- AU_DEFUN([AC_CHECK_LIBM], [m4_if($#, 0, [LT_LIB_M], [LT_LIB_M($@)])])
+m4trace:m4/libtool.m4:3286: -1- AC_DEFUN([AC_CHECK_LIBM], [AC_DIAGNOSE([obsolete], [The macro `AC_CHECK_LIBM' is obsolete.
+You should run autoupdate.])dnl
+m4_if($#, 0, [LT_LIB_M], [LT_LIB_M($@)])])
+m4trace:m4/libtool.m4:6987: -1- AC_DEFUN([LT_PROG_GCJ], [m4_ifdef([AC_PROG_GCJ], [AC_PROG_GCJ],
+ [m4_ifdef([A][M_PROG_GCJ], [A][M_PROG_GCJ],
+ [AC_CHECK_TOOL(GCJ, gcj,)
+ test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2"
+ AC_SUBST(GCJFLAGS)])])[]dnl
+])
+m4trace:m4/libtool.m4:6996: -1- AU_DEFUN([LT_AC_PROG_GCJ], [m4_if($#, 0, [LT_PROG_GCJ], [LT_PROG_GCJ($@)])])
+m4trace:m4/libtool.m4:6996: -1- AC_DEFUN([LT_AC_PROG_GCJ], [AC_DIAGNOSE([obsolete], [The macro `LT_AC_PROG_GCJ' is obsolete.
+You should run autoupdate.])dnl
+m4_if($#, 0, [LT_PROG_GCJ], [LT_PROG_GCJ($@)])])
+m4trace:m4/libtool.m4:7003: -1- AC_DEFUN([LT_PROG_RC], [AC_CHECK_TOOL(RC, windres,)
+])
+m4trace:m4/libtool.m4:7008: -1- AU_DEFUN([LT_AC_PROG_RC], [m4_if($#, 0, [LT_PROG_RC], [LT_PROG_RC($@)])])
+m4trace:m4/libtool.m4:7008: -1- AC_DEFUN([LT_AC_PROG_RC], [AC_DIAGNOSE([obsolete], [The macro `LT_AC_PROG_RC' is obsolete.
+You should run autoupdate.])dnl
+m4_if($#, 0, [LT_PROG_RC], [LT_PROG_RC($@)])])
+m4trace:m4/libtool.m4:7119: -1- AU_DEFUN([LT_AC_PROG_SED], [m4_if($#, 0, [AC_PROG_SED], [AC_PROG_SED($@)])])
+m4trace:m4/libtool.m4:7119: -1- AC_DEFUN([LT_AC_PROG_SED], [AC_DIAGNOSE([obsolete], [The macro `LT_AC_PROG_SED' is obsolete.
+You should run autoupdate.])dnl
+m4_if($#, 0, [AC_PROG_SED], [AC_PROG_SED($@)])])
+m4trace:m4/ltoptions.m4:13: -1- AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])])
+m4trace:m4/ltoptions.m4:110: -1- AU_DEFUN([AC_LIBTOOL_DLOPEN], [_LT_SET_OPTION([LT_INIT], [dlopen])
+AC_DIAGNOSE([obsolete],
+[$0: Remove this warning and the call to _LT_SET_OPTION when you
+put the `dlopen' option into LT_INIT's first parameter.])
+])
+m4trace:m4/ltoptions.m4:110: -1- AC_DEFUN([AC_LIBTOOL_DLOPEN], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBTOOL_DLOPEN' is obsolete.
+You should run autoupdate.])dnl
+_LT_SET_OPTION([LT_INIT], [dlopen])
+AC_DIAGNOSE([obsolete],
+[$0: Remove this warning and the call to _LT_SET_OPTION when you
+put the `dlopen' option into LT_INIT's first parameter.])
+])
+m4trace:m4/ltoptions.m4:145: -1- AU_DEFUN([AC_LIBTOOL_WIN32_DLL], [AC_REQUIRE([AC_CANONICAL_HOST])dnl
+_LT_SET_OPTION([LT_INIT], [win32-dll])
+AC_DIAGNOSE([obsolete],
+[$0: Remove this warning and the call to _LT_SET_OPTION when you
+put the `win32-dll' option into LT_INIT's first parameter.])
+])
+m4trace:m4/ltoptions.m4:145: -1- AC_DEFUN([AC_LIBTOOL_WIN32_DLL], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBTOOL_WIN32_DLL' is obsolete.
+You should run autoupdate.])dnl
+AC_REQUIRE([AC_CANONICAL_HOST])dnl
+_LT_SET_OPTION([LT_INIT], [win32-dll])
+AC_DIAGNOSE([obsolete],
+[$0: Remove this warning and the call to _LT_SET_OPTION when you
+put the `win32-dll' option into LT_INIT's first parameter.])
+])
+m4trace:m4/ltoptions.m4:194: -1- AC_DEFUN([AC_ENABLE_SHARED], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[shared])
+])
+m4trace:m4/ltoptions.m4:198: -1- AC_DEFUN([AC_DISABLE_SHARED], [_LT_SET_OPTION([LT_INIT], [disable-shared])
+])
+m4trace:m4/ltoptions.m4:202: -1- AU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)])
+m4trace:m4/ltoptions.m4:202: -1- AC_DEFUN([AM_ENABLE_SHARED], [AC_DIAGNOSE([obsolete], [The macro `AM_ENABLE_SHARED' is obsolete.
+You should run autoupdate.])dnl
+AC_ENABLE_SHARED($@)])
+m4trace:m4/ltoptions.m4:203: -1- AU_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)])
+m4trace:m4/ltoptions.m4:203: -1- AC_DEFUN([AM_DISABLE_SHARED], [AC_DIAGNOSE([obsolete], [The macro `AM_DISABLE_SHARED' is obsolete.
+You should run autoupdate.])dnl
+AC_DISABLE_SHARED($@)])
+m4trace:m4/ltoptions.m4:248: -1- AC_DEFUN([AC_ENABLE_STATIC], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static])
+])
+m4trace:m4/ltoptions.m4:252: -1- AC_DEFUN([AC_DISABLE_STATIC], [_LT_SET_OPTION([LT_INIT], [disable-static])
+])
+m4trace:m4/ltoptions.m4:256: -1- AU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)])
+m4trace:m4/ltoptions.m4:256: -1- AC_DEFUN([AM_ENABLE_STATIC], [AC_DIAGNOSE([obsolete], [The macro `AM_ENABLE_STATIC' is obsolete.
+You should run autoupdate.])dnl
+AC_ENABLE_STATIC($@)])
+m4trace:m4/ltoptions.m4:257: -1- AU_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)])
+m4trace:m4/ltoptions.m4:257: -1- AC_DEFUN([AM_DISABLE_STATIC], [AC_DIAGNOSE([obsolete], [The macro `AM_DISABLE_STATIC' is obsolete.
+You should run autoupdate.])dnl
+AC_DISABLE_STATIC($@)])
+m4trace:m4/ltoptions.m4:302: -1- AU_DEFUN([AC_ENABLE_FAST_INSTALL], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install])
+AC_DIAGNOSE([obsolete],
+[$0: Remove this warning and the call to _LT_SET_OPTION when you put
+the `fast-install' option into LT_INIT's first parameter.])
+])
+m4trace:m4/ltoptions.m4:302: -1- AC_DEFUN([AC_ENABLE_FAST_INSTALL], [AC_DIAGNOSE([obsolete], [The macro `AC_ENABLE_FAST_INSTALL' is obsolete.
+You should run autoupdate.])dnl
+_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install])
+AC_DIAGNOSE([obsolete],
+[$0: Remove this warning and the call to _LT_SET_OPTION when you put
+the `fast-install' option into LT_INIT's first parameter.])
+])
+m4trace:m4/ltoptions.m4:309: -1- AU_DEFUN([AC_DISABLE_FAST_INSTALL], [_LT_SET_OPTION([LT_INIT], [disable-fast-install])
+AC_DIAGNOSE([obsolete],
+[$0: Remove this warning and the call to _LT_SET_OPTION when you put
+the `disable-fast-install' option into LT_INIT's first parameter.])
+])
+m4trace:m4/ltoptions.m4:309: -1- AC_DEFUN([AC_DISABLE_FAST_INSTALL], [AC_DIAGNOSE([obsolete], [The macro `AC_DISABLE_FAST_INSTALL' is obsolete.
+You should run autoupdate.])dnl
+_LT_SET_OPTION([LT_INIT], [disable-fast-install])
+AC_DIAGNOSE([obsolete],
+[$0: Remove this warning and the call to _LT_SET_OPTION when you put
+the `disable-fast-install' option into LT_INIT's first parameter.])
+])
+m4trace:m4/ltoptions.m4:342: -1- AU_DEFUN([AC_LIBTOOL_PICMODE], [_LT_SET_OPTION([LT_INIT], [pic-only])
+AC_DIAGNOSE([obsolete],
+[$0: Remove this warning and the call to _LT_SET_OPTION when you
+put the `pic-only' option into LT_INIT's first parameter.])
+])
+m4trace:m4/ltoptions.m4:342: -1- AC_DEFUN([AC_LIBTOOL_PICMODE], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBTOOL_PICMODE' is obsolete.
+You should run autoupdate.])dnl
+_LT_SET_OPTION([LT_INIT], [pic-only])
+AC_DIAGNOSE([obsolete],
+[$0: Remove this warning and the call to _LT_SET_OPTION when you
+put the `pic-only' option into LT_INIT's first parameter.])
+])
+m4trace:m4/ltsugar.m4:13: -1- AC_DEFUN([LTSUGAR_VERSION], [m4_if([0.1])])
+m4trace:m4/ltversion.m4:18: -1- AC_DEFUN([LTVERSION_VERSION], [macro_version='2.2.6b'
+macro_revision='1.3017'
+_LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?])
+_LT_DECL(, macro_revision, 0)
+])
+m4trace:m4/lt~obsolete.m4:36: -1- AC_DEFUN([LTOBSOLETE_VERSION], [m4_if([1])])
+m4trace:m4/lt~obsolete.m4:40: -1- AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH])
+m4trace:m4/lt~obsolete.m4:41: -1- AC_DEFUN([_LT_AC_SHELL_INIT])
+m4trace:m4/lt~obsolete.m4:42: -1- AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX])
+m4trace:m4/lt~obsolete.m4:44: -1- AC_DEFUN([_LT_AC_TAGVAR])
+m4trace:m4/lt~obsolete.m4:45: -1- AC_DEFUN([AC_LTDL_ENABLE_INSTALL])
+m4trace:m4/lt~obsolete.m4:46: -1- AC_DEFUN([AC_LTDL_PREOPEN])
+m4trace:m4/lt~obsolete.m4:47: -1- AC_DEFUN([_LT_AC_SYS_COMPILER])
+m4trace:m4/lt~obsolete.m4:48: -1- AC_DEFUN([_LT_AC_LOCK])
+m4trace:m4/lt~obsolete.m4:49: -1- AC_DEFUN([AC_LIBTOOL_SYS_OLD_ARCHIVE])
+m4trace:m4/lt~obsolete.m4:50: -1- AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF])
+m4trace:m4/lt~obsolete.m4:51: -1- AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O])
+m4trace:m4/lt~obsolete.m4:52: -1- AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS])
+m4trace:m4/lt~obsolete.m4:53: -1- AC_DEFUN([AC_LIBTOOL_OBJDIR])
+m4trace:m4/lt~obsolete.m4:54: -1- AC_DEFUN([AC_LTDL_OBJDIR])
+m4trace:m4/lt~obsolete.m4:55: -1- AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH])
+m4trace:m4/lt~obsolete.m4:56: -1- AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP])
+m4trace:m4/lt~obsolete.m4:57: -1- AC_DEFUN([AC_PATH_MAGIC])
+m4trace:m4/lt~obsolete.m4:58: -1- AC_DEFUN([AC_PROG_LD_GNU])
+m4trace:m4/lt~obsolete.m4:59: -1- AC_DEFUN([AC_PROG_LD_RELOAD_FLAG])
+m4trace:m4/lt~obsolete.m4:60: -1- AC_DEFUN([AC_DEPLIBS_CHECK_METHOD])
+m4trace:m4/lt~obsolete.m4:61: -1- AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI])
+m4trace:m4/lt~obsolete.m4:62: -1- AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])
+m4trace:m4/lt~obsolete.m4:63: -1- AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC])
+m4trace:m4/lt~obsolete.m4:64: -1- AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS])
+m4trace:m4/lt~obsolete.m4:65: -1- AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP])
+m4trace:m4/lt~obsolete.m4:66: -1- AC_DEFUN([LT_AC_PROG_EGREP])
+m4trace:m4/lt~obsolete.m4:71: -1- AC_DEFUN([_AC_PROG_LIBTOOL])
+m4trace:m4/lt~obsolete.m4:72: -1- AC_DEFUN([AC_LIBTOOL_SETUP])
+m4trace:m4/lt~obsolete.m4:73: -1- AC_DEFUN([_LT_AC_CHECK_DLFCN])
+m4trace:m4/lt~obsolete.m4:74: -1- AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER])
+m4trace:m4/lt~obsolete.m4:75: -1- AC_DEFUN([_LT_AC_TAGCONFIG])
+m4trace:m4/lt~obsolete.m4:77: -1- AC_DEFUN([_LT_AC_LANG_CXX])
+m4trace:m4/lt~obsolete.m4:78: -1- AC_DEFUN([_LT_AC_LANG_F77])
+m4trace:m4/lt~obsolete.m4:79: -1- AC_DEFUN([_LT_AC_LANG_GCJ])
+m4trace:m4/lt~obsolete.m4:80: -1- AC_DEFUN([AC_LIBTOOL_RC])
+m4trace:m4/lt~obsolete.m4:81: -1- AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG])
+m4trace:m4/lt~obsolete.m4:82: -1- AC_DEFUN([_LT_AC_LANG_C_CONFIG])
+m4trace:m4/lt~obsolete.m4:83: -1- AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG])
+m4trace:m4/lt~obsolete.m4:84: -1- AC_DEFUN([_LT_AC_LANG_CXX_CONFIG])
+m4trace:m4/lt~obsolete.m4:85: -1- AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG])
+m4trace:m4/lt~obsolete.m4:86: -1- AC_DEFUN([_LT_AC_LANG_F77_CONFIG])
+m4trace:m4/lt~obsolete.m4:87: -1- AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG])
+m4trace:m4/lt~obsolete.m4:88: -1- AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG])
+m4trace:m4/lt~obsolete.m4:89: -1- AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG])
+m4trace:m4/lt~obsolete.m4:90: -1- AC_DEFUN([_LT_AC_LANG_RC_CONFIG])
+m4trace:m4/lt~obsolete.m4:91: -1- AC_DEFUN([AC_LIBTOOL_CONFIG])
+m4trace:m4/lt~obsolete.m4:92: -1- AC_DEFUN([_LT_AC_FILE_LTDLL_C])
+m4trace:m4/qt.m4:5: -1- AC_DEFUN([CONFIGURE_QT], [
+ qt_error="no"
+
+ QT_CFLAGS=""
+ QT_LIBS=""
+ MOC="moc"
+ UIC="uic"
+ qt_includes="/usr/include/qt"
+ qt_libraries=""
+ qt_binaries=""
+
+ if test "$qt_error" = "no"; then
+ AC_MSG_CHECKING([for QT environment variable QTDIR])
+ if test -z "$QTDIR"; then
+ AC_MSG_RESULT(no)
+ AC_MSG_WARN([
+
+ ***************** WARNING *****************
+
+YOU HAVE NOT SET YOUR 'QTDIR' ENVIRONMENT VARIABLE!!!
+
+This is the source of most people's problems when
+configuring muse. If the configuration fails to find
+qt, try setting your QTDIR environment variable to
+the directory where qt is installed.
+
+ *******************************************
+
+])
+ echo -ne "\a"
+ echo -ne "\a"
+ echo -ne "\a"
+ sleep 7
+ else
+ AC_MSG_RESULT(yes)
+ qt_includes="$QTDIR/include"
+ qt_libraries="$QTDIR/lib"
+ qt_binaries="$QTDIR/bin"
+ MOC="$qt_binaries/moc";
+ UIC="$qt_binaries/uic";
+ fi
+ fi
+
+ muse_qttest="yes"
+ AC_ARG_ENABLE(qttest,
+ [ --disable-qttest do not try to compile and run a test libqt program],[
+ case "$enableval" in
+ "yes")
+ muse_qttest="yes"
+ ;;
+ "no")
+ muse_qttest="no"
+ ;;
+ *)
+ AC_MSG_ERROR([must use --enable-qttest(=yes/no) or --disable-qttest])
+ ;;
+ esac
+ ])
+
+
+ AC_ARG_WITH(qt-prefix,
+ [ --with-qt-prefix=PFX where the root of Qt is installed ],
+ [
+ qt_includes="$withval/include"
+ qt_libraries="$withval/lib"
+ qt_binaries="$withval/bin"
+ MOC="$qt_binaries/moc";
+ UIC="$qt_binaries/uic";
+ ])
+
+ AC_ARG_WITH(qt-includes,
+ [ --with-qt-includes=DIR where the Qt includes are installed ],
+ [
+ qt_includes="$withval"
+ ])
+
+ AC_ARG_WITH(qt-libraries,
+ [ --with-qt-libraries=DIR where the Qt libraries are installed.],
+ [
+ qt_libraries="$withval"
+ ])
+
+ AC_ARG_WITH(qt-binaries,
+ [ --with-qt-binaries=DIR where the Qt binaries are installed.],
+ [
+ qt_binaries="$withval"
+ MOC="$qt_binaries/moc";
+ UIC="$qt_binaries/uic";
+ ])
+
+ AC_ARG_WITH(qt-moc,
+ [ --with-qt-moc=PROG where the Qt meta object compiler is installed.],
+ [
+ MOC="$withval"
+ ])
+
+ AC_ARG_WITH(qt-uic,
+ [ --with-qt-uic=PROG where the Qt user interface compiler is installed.],
+ [
+ UIC="$withval"
+ ])
+
+ if test "$qt_error" = "no"; then
+ saved_CPPFLAGS="$CPPFLAGS"
+ saved_LIBS="$LIBS"
+ CPPFLAGS="$saved_CPPFLAGS -I$qt_includes"
+ if test -n "$qt_libraries"; then
+ LIBS="$saved_LIBS -L$qt_libraries -lqt-mt -lqui"
+ QT_LIBS="-L$qt_libraries -lqt-mt -lqui"
+ else
+ LIBS="$saved_LIBS -lqt-mt -lqui -lm $X11_LIBS"
+ QT_LIBS="-lqt-mt -lqui"
+ fi
+ AC_MSG_CHECKING([for QT includes ($qt_includes)])
+ AC_CACHE_VAL(qt_includes_found,
+ [
+ AC_LANG_PUSH(C++)
+ AC_TRY_CPP([#include <qapplication.h>],
+ qt_includes_found=yes, qt_includes_found=no)
+ AC_LANG_POP(C++)
+ if test "$qt_includes_found" = "yes"; then
+ QT_CFLAGS="-I$qt_includes"
+ AC_MSG_RESULT(yes)
+ else
+ qt_error=yes
+ AC_MSG_RESULT(no)
+ fi
+ ])
+
+ AC_MSG_CHECKING([for QT libraries ($qt_libraries)])
+ AC_CACHE_VAL(qt_libraries_found,
+ [
+ AC_LANG_SAVE
+ AC_LANG_CPLUSPLUS
+ saved_CXXFLAGS="$CXXFLAGS"
+ saved_LIBS="$LIBS"
+ CXXFLAGS="$QT_CFLAGS $LIBS"
+ LIBS="$QT_LIBS $LIBS"
+
+
+ if test "$muse_qttest" = "yes"; then
+ AC_TRY_RUN([
+ #include <qapplication.h>
+ int main(int argc, char **argv)
+ {
+ QApplication app(argc, argv, false);
+
+ }
+ ],[
+ AC_MSG_RESULT(yes)
+ ],[
+ AC_MSG_RESULT(no)
+ qt_error="yes"
+ ],
+ AC_MSG_ERROR([cross compiling unsupported])
+ )
+ else
+ AC_MSG_RESULT([yes (assumed due to --disable-qttest)])
+ fi
+
+ LIBS="$saved_LIBS"
+ CXXFLAGS="$saved_CXXFLAGS"
+ AC_LANG_RESTORE
+ ])
+
+ AC_MSG_CHECKING([for QT moc ($MOC)])
+ output=`eval "$MOC --help 2>&1 | grep Qt"`
+ if test -z "$output"; then
+ AC_MSG_RESULT(no)
+ qt_error="yes"
+ else
+ AC_MSG_RESULT(yes)
+ fi
+
+ AC_MSG_CHECKING([for QT uic ($UIC)])
+ output=`eval "$UIC --help 2>&1 | grep Qt"`
+ if test -z "$output"; then
+ AC_MSG_RESULT(no)
+ qt_error="yes"
+ else
+ AC_MSG_RESULT(yes)
+ fi
+ CPPFLAGS="$saved_CPPFLAGS"
+ LIBS="$saved_LIBS"
+ fi
+
+ if test "$qt_error" = "no"; then
+ AC_MSG_CHECKING([for QT version >= $1])
+ qt_major_version=`echo $1 | \
+ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
+ qt_minor_version=`echo $1 | \
+ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
+ qt_micro_version=`echo $1 | \
+ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
+ qt_version="$qt_major_version$qt_minor_version$qt_micro_version"
+
+ AC_LANG_SAVE
+ AC_LANG_CPLUSPLUS
+ saved_CXXFLAGS="$CXXFLAGS"
+ saved_LIBS="$LIBS"
+ CXXFLAGS="$QT_CFLAGS $LIBS"
+ LIBS="$QT_LIBS $LIBS"
+
+ if test "$muse_qttest" = "yes"; then
+ AC_TRY_RUN([
+ #include <qglobal.h>
+ int main()
+ {
+ int version = ($qt_major_version << 16)
+ + ($qt_minor_version << 8)
+ + $qt_micro_version;
+ if (QT_VERSION < version) return(1);
+ return(0);
+ }
+ ],[
+ AC_MSG_RESULT(yes)
+ ],[
+ AC_MSG_RESULT(no)
+ qt_error="yes"
+ ],
+ AC_MSG_ERROR([cross compiling unsupported])
+ )
+ else
+ AC_MSG_RESULT([yes (assumed due to --disable-qttest)])
+ fi
+
+ LIBS="$saved_LIBS"
+ CXXFLAGS="$saved_CXXFLAGS"
+ AC_LANG_RESTORE
+ fi
+
+ AC_SUBST(QT_CFLAGS)
+ AC_SUBST(QT_LIBS)
+ AC_SUBST(MOC)
+ AC_SUBST(UIC)
+ if test "$qt_error" = "no"; then
+ ifelse([$2], , :, [$2])
+ else
+ ifelse([$3], , :, [$3])
+ fi
+])
+m4trace:configure.ac:5: -1- m4_pattern_forbid([^_?A[CHUM]_])
+m4trace:configure.ac:5: -1- m4_pattern_forbid([_AC_])
+m4trace:configure.ac:5: -1- m4_pattern_forbid([^LIBOBJS$], [do not use LIBOBJS directly, use AC_LIBOBJ (see section `AC_LIBOBJ vs LIBOBJS'])
+m4trace:configure.ac:5: -1- m4_pattern_allow([^AS_FLAGS$])
+m4trace:configure.ac:5: -1- m4_pattern_forbid([^_?m4_])
+m4trace:configure.ac:5: -1- m4_pattern_forbid([^dnl$])
+m4trace:configure.ac:5: -1- m4_pattern_forbid([^_?AS_])
+m4trace:configure.ac:5: -1- m4_pattern_allow([^SHELL$])
+m4trace:configure.ac:5: -1- m4_pattern_allow([^PATH_SEPARATOR$])
+m4trace:configure.ac:5: -1- m4_pattern_allow([^PACKAGE_NAME$])
+m4trace:configure.ac:5: -1- m4_pattern_allow([^PACKAGE_TARNAME$])
+m4trace:configure.ac:5: -1- m4_pattern_allow([^PACKAGE_VERSION$])
+m4trace:configure.ac:5: -1- m4_pattern_allow([^PACKAGE_STRING$])
+m4trace:configure.ac:5: -1- m4_pattern_allow([^PACKAGE_BUGREPORT$])
+m4trace:configure.ac:5: -1- m4_pattern_allow([^PACKAGE_URL$])
+m4trace:configure.ac:5: -1- m4_pattern_allow([^exec_prefix$])
+m4trace:configure.ac:5: -1- m4_pattern_allow([^prefix$])
+m4trace:configure.ac:5: -1- m4_pattern_allow([^program_transform_name$])
+m4trace:configure.ac:5: -1- m4_pattern_allow([^bindir$])
+m4trace:configure.ac:5: -1- m4_pattern_allow([^sbindir$])
+m4trace:configure.ac:5: -1- m4_pattern_allow([^libexecdir$])
+m4trace:configure.ac:5: -1- m4_pattern_allow([^datarootdir$])
+m4trace:configure.ac:5: -1- m4_pattern_allow([^datadir$])
+m4trace:configure.ac:5: -1- m4_pattern_allow([^sysconfdir$])
+m4trace:configure.ac:5: -1- m4_pattern_allow([^sharedstatedir$])
+m4trace:configure.ac:5: -1- m4_pattern_allow([^localstatedir$])
+m4trace:configure.ac:5: -1- m4_pattern_allow([^includedir$])
+m4trace:configure.ac:5: -1- m4_pattern_allow([^oldincludedir$])
+m4trace:configure.ac:5: -1- m4_pattern_allow([^docdir$])
+m4trace:configure.ac:5: -1- m4_pattern_allow([^infodir$])
+m4trace:configure.ac:5: -1- m4_pattern_allow([^htmldir$])
+m4trace:configure.ac:5: -1- m4_pattern_allow([^dvidir$])
+m4trace:configure.ac:5: -1- m4_pattern_allow([^pdfdir$])
+m4trace:configure.ac:5: -1- m4_pattern_allow([^psdir$])
+m4trace:configure.ac:5: -1- m4_pattern_allow([^libdir$])
+m4trace:configure.ac:5: -1- m4_pattern_allow([^localedir$])
+m4trace:configure.ac:5: -1- m4_pattern_allow([^mandir$])
+m4trace:configure.ac:5: -1- m4_pattern_allow([^PACKAGE_NAME$])
+m4trace:configure.ac:5: -1- m4_pattern_allow([^PACKAGE_TARNAME$])
+m4trace:configure.ac:5: -1- m4_pattern_allow([^PACKAGE_VERSION$])
+m4trace:configure.ac:5: -1- m4_pattern_allow([^PACKAGE_STRING$])
+m4trace:configure.ac:5: -1- m4_pattern_allow([^PACKAGE_BUGREPORT$])
+m4trace:configure.ac:5: -1- m4_pattern_allow([^PACKAGE_URL$])
+m4trace:configure.ac:5: -1- m4_pattern_allow([^DEFS$])
+m4trace:configure.ac:5: -1- m4_pattern_allow([^ECHO_C$])
+m4trace:configure.ac:5: -1- m4_pattern_allow([^ECHO_N$])
+m4trace:configure.ac:5: -1- m4_pattern_allow([^ECHO_T$])
+m4trace:configure.ac:5: -1- m4_pattern_allow([^LIBS$])
+m4trace:configure.ac:5: -1- m4_pattern_allow([^build_alias$])
+m4trace:configure.ac:5: -1- m4_pattern_allow([^host_alias$])
+m4trace:configure.ac:5: -1- m4_pattern_allow([^target_alias$])
+m4trace:configure.ac:7: -1- AM_INIT_AUTOMAKE([1.1])
+m4trace:configure.ac:7: -1- m4_pattern_allow([^AM_[A-Z]+FLAGS$])
+m4trace:configure.ac:7: -1- AM_SET_CURRENT_AUTOMAKE_VERSION
+m4trace:configure.ac:7: -1- AM_AUTOMAKE_VERSION([1.11.1])
+m4trace:configure.ac:7: -1- _AM_AUTOCONF_VERSION([2.65])
+m4trace:configure.ac:7: -1- m4_pattern_allow([^INSTALL_PROGRAM$])
+m4trace:configure.ac:7: -1- m4_pattern_allow([^INSTALL_SCRIPT$])
+m4trace:configure.ac:7: -1- m4_pattern_allow([^INSTALL_DATA$])
+m4trace:configure.ac:7: -1- m4_pattern_allow([^am__isrc$])
+m4trace:configure.ac:7: -1- _AM_SUBST_NOTMAKE([am__isrc])
+m4trace:configure.ac:7: -1- m4_pattern_allow([^CYGPATH_W$])
+m4trace:configure.ac:7: -1- _AM_SET_OPTIONS([1.1])
+m4trace:configure.ac:7: -1- _AM_SET_OPTION([1.1])
+m4trace:configure.ac:7: -2- _AM_MANGLE_OPTION([1.1])
+m4trace:configure.ac:7: -1- m4_pattern_allow([^PACKAGE$])
+m4trace:configure.ac:7: -1- m4_pattern_allow([^VERSION$])
+m4trace:configure.ac:7: -1- _AM_IF_OPTION([no-define], [], [AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
+ AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])
+m4trace:configure.ac:7: -2- _AM_MANGLE_OPTION([no-define])
+m4trace:configure.ac:7: -1- m4_pattern_allow([^PACKAGE$])
+m4trace:configure.ac:7: -1- m4_pattern_allow([^VERSION$])
+m4trace:configure.ac:7: -1- AM_SANITY_CHECK
+m4trace:configure.ac:7: -1- AM_MISSING_PROG([ACLOCAL], [aclocal-${am__api_version}])
+m4trace:configure.ac:7: -1- AM_MISSING_HAS_RUN
+m4trace:configure.ac:7: -1- AM_AUX_DIR_EXPAND
+m4trace:configure.ac:7: -1- m4_pattern_allow([^ACLOCAL$])
+m4trace:configure.ac:7: -1- AM_MISSING_PROG([AUTOCONF], [autoconf])
+m4trace:configure.ac:7: -1- m4_pattern_allow([^AUTOCONF$])
+m4trace:configure.ac:7: -1- AM_MISSING_PROG([AUTOMAKE], [automake-${am__api_version}])
+m4trace:configure.ac:7: -1- m4_pattern_allow([^AUTOMAKE$])
+m4trace:configure.ac:7: -1- AM_MISSING_PROG([AUTOHEADER], [autoheader])
+m4trace:configure.ac:7: -1- m4_pattern_allow([^AUTOHEADER$])
+m4trace:configure.ac:7: -1- AM_MISSING_PROG([MAKEINFO], [makeinfo])
+m4trace:configure.ac:7: -1- m4_pattern_allow([^MAKEINFO$])
+m4trace:configure.ac:7: -1- AM_PROG_INSTALL_SH
+m4trace:configure.ac:7: -1- m4_pattern_allow([^install_sh$])
+m4trace:configure.ac:7: -1- AM_PROG_INSTALL_STRIP
+m4trace:configure.ac:7: -1- m4_pattern_allow([^STRIP$])
+m4trace:configure.ac:7: -1- m4_pattern_allow([^INSTALL_STRIP_PROGRAM$])
+m4trace:configure.ac:7: -1- AM_PROG_MKDIR_P
+m4trace:configure.ac:7: -1- m4_pattern_allow([^MKDIR_P$])
+m4trace:configure.ac:7: -1- m4_pattern_allow([^mkdir_p$])
+m4trace:configure.ac:7: -1- m4_pattern_allow([^AWK$])
+m4trace:configure.ac:7: -1- m4_pattern_allow([^SET_MAKE$])
+m4trace:configure.ac:7: -1- AM_SET_LEADING_DOT
+m4trace:configure.ac:7: -1- m4_pattern_allow([^am__leading_dot$])
+m4trace:configure.ac:7: -1- _AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])],
+ [_AM_PROG_TAR([v7])])])
+m4trace:configure.ac:7: -2- _AM_MANGLE_OPTION([tar-ustar])
+m4trace:configure.ac:7: -1- _AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], [_AM_PROG_TAR([v7])])
+m4trace:configure.ac:7: -2- _AM_MANGLE_OPTION([tar-pax])
+m4trace:configure.ac:7: -1- _AM_PROG_TAR([v7])
+m4trace:configure.ac:7: -1- AM_MISSING_PROG([AMTAR], [tar])
+m4trace:configure.ac:7: -1- m4_pattern_allow([^AMTAR$])
+m4trace:configure.ac:7: -1- m4_pattern_allow([^am__tar$])
+m4trace:configure.ac:7: -1- m4_pattern_allow([^am__untar$])
+m4trace:configure.ac:7: -1- _AM_IF_OPTION([no-dependencies], [], [AC_PROVIDE_IFELSE([AC_PROG_CC],
+ [_AM_DEPENDENCIES(CC)],
+ [define([AC_PROG_CC],
+ defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl
+AC_PROVIDE_IFELSE([AC_PROG_CXX],
+ [_AM_DEPENDENCIES(CXX)],
+ [define([AC_PROG_CXX],
+ defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl
+AC_PROVIDE_IFELSE([AC_PROG_OBJC],
+ [_AM_DEPENDENCIES(OBJC)],
+ [define([AC_PROG_OBJC],
+ defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl
+])
+m4trace:configure.ac:7: -2- _AM_MANGLE_OPTION([no-dependencies])
+m4trace:configure.ac:7: -1- _AM_IF_OPTION([silent-rules], [AC_REQUIRE([AM_SILENT_RULES])])
+m4trace:configure.ac:7: -2- _AM_MANGLE_OPTION([silent-rules])
+m4trace:configure.ac:8: -1- AM_CONFIG_HEADER([config.h])
+m4trace:configure.ac:8: -1- _m4_warn([obsolete], [The macro `AM_CONFIG_HEADER' is obsolete.
+You should run autoupdate.], [/usr/share/aclocal-1.11/header.m4:12: AM_CONFIG_HEADER is expanded from...
+configure.ac:8: the top level])
+m4trace:configure.ac:10: -1- AM_ACLOCAL_INCLUDE([m4])
+m4trace:configure.ac:10: -1- AM_CONDITIONAL([INSIDE_GNOME_COMMON], [test x = y])
+m4trace:configure.ac:10: -1- m4_pattern_allow([^INSIDE_GNOME_COMMON_TRUE$])
+m4trace:configure.ac:10: -1- m4_pattern_allow([^INSIDE_GNOME_COMMON_FALSE$])
+m4trace:configure.ac:10: -1- _AM_SUBST_NOTMAKE([INSIDE_GNOME_COMMON_TRUE])
+m4trace:configure.ac:10: -1- _AM_SUBST_NOTMAKE([INSIDE_GNOME_COMMON_FALSE])
+m4trace:configure.ac:13: -1- m4_pattern_allow([^CXX$])
+m4trace:configure.ac:13: -1- m4_pattern_allow([^CXXFLAGS$])
+m4trace:configure.ac:13: -1- m4_pattern_allow([^LDFLAGS$])
+m4trace:configure.ac:13: -1- m4_pattern_allow([^LIBS$])
+m4trace:configure.ac:13: -1- m4_pattern_allow([^CPPFLAGS$])
+m4trace:configure.ac:13: -1- m4_pattern_allow([^CXX$])
+m4trace:configure.ac:13: -1- m4_pattern_allow([^ac_ct_CXX$])
+m4trace:configure.ac:13: -1- m4_pattern_allow([^EXEEXT$])
+m4trace:configure.ac:13: -1- m4_pattern_allow([^OBJEXT$])
+m4trace:configure.ac:13: -1- _AM_DEPENDENCIES([CXX])
+m4trace:configure.ac:13: -1- AM_SET_DEPDIR
+m4trace:configure.ac:13: -1- m4_pattern_allow([^DEPDIR$])
+m4trace:configure.ac:13: -1- AM_OUTPUT_DEPENDENCY_COMMANDS
+m4trace:configure.ac:13: -1- AM_MAKE_INCLUDE
+m4trace:configure.ac:13: -1- m4_pattern_allow([^am__include$])
+m4trace:configure.ac:13: -1- m4_pattern_allow([^am__quote$])
+m4trace:configure.ac:13: -1- AM_DEP_TRACK
+m4trace:configure.ac:13: -1- AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
+m4trace:configure.ac:13: -1- m4_pattern_allow([^AMDEP_TRUE$])
+m4trace:configure.ac:13: -1- m4_pattern_allow([^AMDEP_FALSE$])
+m4trace:configure.ac:13: -1- _AM_SUBST_NOTMAKE([AMDEP_TRUE])
+m4trace:configure.ac:13: -1- _AM_SUBST_NOTMAKE([AMDEP_FALSE])
+m4trace:configure.ac:13: -1- m4_pattern_allow([^AMDEPBACKSLASH$])
+m4trace:configure.ac:13: -1- _AM_SUBST_NOTMAKE([AMDEPBACKSLASH])
+m4trace:configure.ac:13: -1- m4_pattern_allow([^CXXDEPMODE$])
+m4trace:configure.ac:13: -1- AM_CONDITIONAL([am__fastdepCXX], [
+ test "x$enable_dependency_tracking" != xno \
+ && test "$am_cv_CXX_dependencies_compiler_type" = gcc3])
+m4trace:configure.ac:13: -1- m4_pattern_allow([^am__fastdepCXX_TRUE$])
+m4trace:configure.ac:13: -1- m4_pattern_allow([^am__fastdepCXX_FALSE$])
+m4trace:configure.ac:13: -1- _AM_SUBST_NOTMAKE([am__fastdepCXX_TRUE])
+m4trace:configure.ac:13: -1- _AM_SUBST_NOTMAKE([am__fastdepCXX_FALSE])
+m4trace:configure.ac:14: -1- AC_PROG_LIBTOOL
+m4trace:configure.ac:14: -1- _m4_warn([obsolete], [The macro `AC_PROG_LIBTOOL' is obsolete.
+You should run autoupdate.], [m4/libtool.m4:102: AC_PROG_LIBTOOL is expanded from...
+configure.ac:14: the top level])
+m4trace:configure.ac:14: -1- LT_INIT
+m4trace:configure.ac:14: -1- m4_pattern_forbid([^_?LT_[A-Z_]+$])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$])
+m4trace:configure.ac:14: -1- LTOPTIONS_VERSION
+m4trace:configure.ac:14: -1- LTSUGAR_VERSION
+m4trace:configure.ac:14: -1- LTVERSION_VERSION
+m4trace:configure.ac:14: -1- LTOBSOLETE_VERSION
+m4trace:configure.ac:14: -1- _LT_PROG_LTMAIN
+m4trace:configure.ac:14: -1- m4_pattern_allow([^LIBTOOL$])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^build$])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^build_cpu$])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^build_vendor$])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^build_os$])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^host$])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^host_cpu$])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^host_vendor$])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^host_os$])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^CC$])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^CFLAGS$])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^LDFLAGS$])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^LIBS$])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^CPPFLAGS$])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^CC$])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^CC$])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^CC$])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^CC$])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^ac_ct_CC$])
+m4trace:configure.ac:14: -1- _AM_DEPENDENCIES([CC])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^CCDEPMODE$])
+m4trace:configure.ac:14: -1- AM_CONDITIONAL([am__fastdepCC], [
+ test "x$enable_dependency_tracking" != xno \
+ && test "$am_cv_CC_dependencies_compiler_type" = gcc3])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^am__fastdepCC_TRUE$])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^am__fastdepCC_FALSE$])
+m4trace:configure.ac:14: -1- _AM_SUBST_NOTMAKE([am__fastdepCC_TRUE])
+m4trace:configure.ac:14: -1- _AM_SUBST_NOTMAKE([am__fastdepCC_FALSE])
+m4trace:configure.ac:14: -1- LT_PATH_LD
+m4trace:configure.ac:14: -1- m4_pattern_allow([^SED$])
+m4trace:configure.ac:14: -1- AC_PROG_EGREP
+m4trace:configure.ac:14: -1- m4_pattern_allow([^GREP$])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^EGREP$])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^FGREP$])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^GREP$])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^LD$])
+m4trace:configure.ac:14: -1- LT_PATH_NM
+m4trace:configure.ac:14: -1- m4_pattern_allow([^DUMPBIN$])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^ac_ct_DUMPBIN$])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^DUMPBIN$])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^NM$])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^LN_S$])
+m4trace:configure.ac:14: -1- LT_CMD_MAX_LEN
+m4trace:configure.ac:14: -1- m4_pattern_allow([^OBJDUMP$])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^OBJDUMP$])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^AR$])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^STRIP$])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^RANLIB$])
+m4trace:configure.ac:14: -1- m4_pattern_allow([LT_OBJDIR])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^LT_OBJDIR$])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^lt_ECHO$])
+m4trace:configure.ac:14: -1- _LT_CC_BASENAME([$compiler])
+m4trace:configure.ac:14: -1- _LT_PATH_TOOL_PREFIX([${ac_tool_prefix}file], [/usr/bin$PATH_SEPARATOR$PATH])
+m4trace:configure.ac:14: -1- _LT_PATH_TOOL_PREFIX([file], [/usr/bin$PATH_SEPARATOR$PATH])
+m4trace:configure.ac:14: -1- LT_SUPPORTED_TAG([CC])
+m4trace:configure.ac:14: -1- _LT_COMPILER_BOILERPLATE
+m4trace:configure.ac:14: -1- _LT_LINKER_BOILERPLATE
+m4trace:configure.ac:14: -1- _LT_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions], [lt_cv_prog_compiler_rtti_exceptions], [-fno-rtti -fno-exceptions], [], [_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, )="$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, ) -fno-rtti -fno-exceptions"])
+m4trace:configure.ac:14: -1- _LT_COMPILER_OPTION([if $compiler PIC flag $_LT_TAGVAR(lt_prog_compiler_pic, ) works], [_LT_TAGVAR(lt_cv_prog_compiler_pic_works, )], [$_LT_TAGVAR(lt_prog_compiler_pic, )@&t@m4_if([],[],[ -DPIC],[m4_if([],[CXX],[ -DPIC],[])])], [], [case $_LT_TAGVAR(lt_prog_compiler_pic, ) in
+ "" | " "*) ;;
+ *) _LT_TAGVAR(lt_prog_compiler_pic, )=" $_LT_TAGVAR(lt_prog_compiler_pic, )" ;;
+ esac], [_LT_TAGVAR(lt_prog_compiler_pic, )=
+ _LT_TAGVAR(lt_prog_compiler_can_build_shared, )=no])
+m4trace:configure.ac:14: -1- _LT_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works], [lt_cv_prog_compiler_static_works], [$lt_tmp_static_flag], [], [_LT_TAGVAR(lt_prog_compiler_static, )=])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^DSYMUTIL$])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^NMEDIT$])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^LIPO$])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^OTOOL$])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^OTOOL64$])
+m4trace:configure.ac:14: -1- LT_SYS_DLOPEN_SELF
+m4trace:configure.ac:14: -1- m4_pattern_allow([^CPP$])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^CPPFLAGS$])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^CPP$])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^STDC_HEADERS$])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^HAVE_DLFCN_H$])
+m4trace:configure.ac:14: -1- LT_LANG([CXX])
+m4trace:configure.ac:14: -1- LT_SUPPORTED_TAG([CXX])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^CXX$])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^CXXFLAGS$])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^LDFLAGS$])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^LIBS$])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^CPPFLAGS$])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^CXX$])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^ac_ct_CXX$])
+m4trace:configure.ac:14: -1- _AM_DEPENDENCIES([CXX])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^CXXDEPMODE$])
+m4trace:configure.ac:14: -1- AM_CONDITIONAL([am__fastdepCXX], [
+ test "x$enable_dependency_tracking" != xno \
+ && test "$am_cv_CXX_dependencies_compiler_type" = gcc3])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^am__fastdepCXX_TRUE$])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^am__fastdepCXX_FALSE$])
+m4trace:configure.ac:14: -1- _AM_SUBST_NOTMAKE([am__fastdepCXX_TRUE])
+m4trace:configure.ac:14: -1- _AM_SUBST_NOTMAKE([am__fastdepCXX_FALSE])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^CXXCPP$])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^CPPFLAGS$])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^CXXCPP$])
+m4trace:configure.ac:14: -1- _LT_COMPILER_BOILERPLATE
+m4trace:configure.ac:14: -1- _LT_LINKER_BOILERPLATE
+m4trace:configure.ac:14: -1- _LT_CC_BASENAME([$compiler])
+m4trace:configure.ac:14: -1- LT_PATH_LD
+m4trace:configure.ac:14: -1- m4_pattern_allow([^LD$])
+m4trace:configure.ac:14: -1- _LT_COMPILER_OPTION([if $compiler PIC flag $_LT_TAGVAR(lt_prog_compiler_pic, CXX) works], [_LT_TAGVAR(lt_cv_prog_compiler_pic_works, CXX)], [$_LT_TAGVAR(lt_prog_compiler_pic, CXX)@&t@m4_if([CXX],[],[ -DPIC],[m4_if([CXX],[CXX],[ -DPIC],[])])], [], [case $_LT_TAGVAR(lt_prog_compiler_pic, CXX) in
+ "" | " "*) ;;
+ *) _LT_TAGVAR(lt_prog_compiler_pic, CXX)=" $_LT_TAGVAR(lt_prog_compiler_pic, CXX)" ;;
+ esac], [_LT_TAGVAR(lt_prog_compiler_pic, CXX)=
+ _LT_TAGVAR(lt_prog_compiler_can_build_shared, CXX)=no])
+m4trace:configure.ac:14: -1- _LT_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works], [lt_cv_prog_compiler_static_works_CXX], [$lt_tmp_static_flag], [], [_LT_TAGVAR(lt_prog_compiler_static, CXX)=])
+m4trace:configure.ac:15: -1- m4_pattern_allow([^LN_S$])
+m4trace:configure.ac:20: -1- PGAC_PROG_JADE
+m4trace:configure.ac:20: -1- m4_pattern_allow([^JADE$])
+m4trace:configure.ac:22: -1- PGAC_CHECK_DOCBOOK([4.1])
+m4trace:configure.ac:22: -1- PGAC_PROG_NSGMLS
+m4trace:configure.ac:22: -1- m4_pattern_allow([^NSGMLS$])
+m4trace:configure.ac:22: -1- m4_pattern_allow([^have_docbook$])
+m4trace:configure.ac:24: -1- PGAC_PATH_DOCBOOK_STYLESHEETS
+m4trace:configure.ac:24: -1- m4_pattern_allow([^DOCBOOKSTYLE$])
+m4trace:configure.ac:36: -1- m4_pattern_allow([^DOCBOOKTARGETS$])
+m4trace:configure.ac:41: -1- m4_pattern_allow([^DOXYGEN$])
+m4trace:configure.ac:42: -1- m4_pattern_allow([^DOXYGEN$])
+m4trace:configure.ac:47: -1- m4_pattern_allow([^DOT$])
+m4trace:configure.ac:48: -1- m4_pattern_allow([^DOT$])
+m4trace:configure.ac:55: -1- m4_pattern_allow([^HAVEDOT$])
+m4trace:configure.ac:56: -1- m4_pattern_allow([^DOTPATH$])
+m4trace:configure.ac:61: -1- m4_pattern_allow([^PERL$])
+m4trace:configure.ac:62: -1- m4_pattern_allow([^PERL$])
+m4trace:configure.ac:72: -1- m4_pattern_allow([^XMKMF$])
+m4trace:configure.ac:72: -1- m4_pattern_allow([^X_DISPLAY_MISSING$])
+m4trace:configure.ac:72: -1- m4_pattern_allow([^X_CFLAGS$])
+m4trace:configure.ac:72: -1- m4_pattern_allow([^X_PRE_LIBS$])
+m4trace:configure.ac:72: -1- m4_pattern_allow([^X_LIBS$])
+m4trace:configure.ac:72: -1- m4_pattern_allow([^X_EXTRA_LIBS$])
+m4trace:configure.ac:82: -1- CONFIGURE_QT([3.2.0], [], [as_fn_error "need qt >= 3.2.0" "$LINENO" 5])
+m4trace:configure.ac:82: -1- _m4_warn([syntax], [AC_CACHE_VAL(qt_includes_found, ...): suspicious cache-id, must contain _cv_ to be cached], [../../lib/autoconf/general.m4:1998: AC_CACHE_VAL is expanded from...
+m4/qt.m4:5: CONFIGURE_QT is expanded from...
+configure.ac:82: the top level])
+m4trace:configure.ac:82: -1- _m4_warn([obsolete], [The macro `AC_TRY_CPP' is obsolete.
+You should run autoupdate.], [../../lib/autoconf/general.m4:2496: AC_TRY_CPP is expanded from...
+../../lib/m4sugar/m4sh.m4:598: AS_IF is expanded from...
+../../lib/autoconf/general.m4:1998: AC_CACHE_VAL is expanded from...
+m4/qt.m4:5: CONFIGURE_QT is expanded from...
+configure.ac:82: the top level])
+m4trace:configure.ac:82: -1- _m4_warn([syntax], [AC_CACHE_VAL(qt_libraries_found, ...): suspicious cache-id, must contain _cv_ to be cached], [../../lib/autoconf/general.m4:1998: AC_CACHE_VAL is expanded from...
+m4/qt.m4:5: CONFIGURE_QT is expanded from...
+configure.ac:82: the top level])
+m4trace:configure.ac:82: -1- _m4_warn([obsolete], [The macro `AC_LANG_SAVE' is obsolete.
+You should run autoupdate.], [../../lib/autoconf/lang.m4:126: AC_LANG_SAVE is expanded from...
+../../lib/m4sugar/m4sh.m4:598: AS_IF is expanded from...
+../../lib/autoconf/general.m4:1998: AC_CACHE_VAL is expanded from...
+m4/qt.m4:5: CONFIGURE_QT is expanded from...
+configure.ac:82: the top level])
+m4trace:configure.ac:82: -1- _m4_warn([obsolete], [The macro `AC_LANG_CPLUSPLUS' is obsolete.
+You should run autoupdate.], [../../lib/autoconf/c.m4:252: AC_LANG_CPLUSPLUS is expanded from...
+../../lib/m4sugar/m4sh.m4:598: AS_IF is expanded from...
+../../lib/autoconf/general.m4:1998: AC_CACHE_VAL is expanded from...
+m4/qt.m4:5: CONFIGURE_QT is expanded from...
+configure.ac:82: the top level])
+m4trace:configure.ac:82: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete.
+You should run autoupdate.], [../../lib/autoconf/general.m4:2731: AC_TRY_RUN is expanded from...
+../../lib/m4sugar/m4sh.m4:598: AS_IF is expanded from...
+../../lib/autoconf/general.m4:1998: AC_CACHE_VAL is expanded from...
+m4/qt.m4:5: CONFIGURE_QT is expanded from...
+configure.ac:82: the top level])
+m4trace:configure.ac:82: -1- _m4_warn([obsolete], [The macro `AC_LANG_RESTORE' is obsolete.
+You should run autoupdate.], [../../lib/autoconf/lang.m4:135: AC_LANG_RESTORE is expanded from...
+../../lib/m4sugar/m4sh.m4:598: AS_IF is expanded from...
+../../lib/autoconf/general.m4:1998: AC_CACHE_VAL is expanded from...
+m4/qt.m4:5: CONFIGURE_QT is expanded from...
+configure.ac:82: the top level])
+m4trace:configure.ac:82: -1- _m4_warn([obsolete], [The macro `AC_LANG_SAVE' is obsolete.
+You should run autoupdate.], [../../lib/autoconf/lang.m4:126: AC_LANG_SAVE is expanded from...
+m4/qt.m4:5: CONFIGURE_QT is expanded from...
+configure.ac:82: the top level])
+m4trace:configure.ac:82: -1- _m4_warn([obsolete], [The macro `AC_LANG_CPLUSPLUS' is obsolete.
+You should run autoupdate.], [../../lib/autoconf/c.m4:252: AC_LANG_CPLUSPLUS is expanded from...
+m4/qt.m4:5: CONFIGURE_QT is expanded from...
+configure.ac:82: the top level])
+m4trace:configure.ac:82: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete.
+You should run autoupdate.], [../../lib/autoconf/general.m4:2731: AC_TRY_RUN is expanded from...
+m4/qt.m4:5: CONFIGURE_QT is expanded from...
+configure.ac:82: the top level])
+m4trace:configure.ac:82: -1- _m4_warn([obsolete], [The macro `AC_LANG_RESTORE' is obsolete.
+You should run autoupdate.], [../../lib/autoconf/lang.m4:135: AC_LANG_RESTORE is expanded from...
+m4/qt.m4:5: CONFIGURE_QT is expanded from...
+configure.ac:82: the top level])
+m4trace:configure.ac:82: -1- m4_pattern_allow([^QT_CFLAGS$])
+m4trace:configure.ac:82: -1- m4_pattern_allow([^QT_LIBS$])
+m4trace:configure.ac:82: -1- m4_pattern_allow([^MOC$])
+m4trace:configure.ac:82: -1- m4_pattern_allow([^UIC$])
+m4trace:configure.ac:114: -1- AM_PATH_ALSA([0.9.0], [true], [as_fn_error "latest alsa (0.9.x) is required" "$LINENO" 5
+])
+m4trace:configure.ac:114: -1- _m4_warn([obsolete], [The macro `AC_LANG_SAVE' is obsolete.
+You should run autoupdate.], [../../lib/autoconf/lang.m4:126: AC_LANG_SAVE is expanded from...
+m4/alsa.m4:15: AM_PATH_ALSA is expanded from...
+configure.ac:114: the top level])
+m4trace:configure.ac:114: -1- _m4_warn([obsolete], [The macro `AC_LANG_C' is obsolete.
+You should run autoupdate.], [../../lib/autoconf/c.m4:73: AC_LANG_C is expanded from...
+m4/alsa.m4:15: AM_PATH_ALSA is expanded from...
+configure.ac:114: the top level])
+m4trace:configure.ac:114: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete.
+You should run autoupdate.], [../../lib/autoconf/general.m4:2581: AC_TRY_COMPILE is expanded from...
+m4/alsa.m4:15: AM_PATH_ALSA is expanded from...
+configure.ac:114: the top level])
+m4trace:configure.ac:114: -1- _m4_warn([obsolete], [The macro `AC_LANG_RESTORE' is obsolete.
+You should run autoupdate.], [../../lib/autoconf/lang.m4:135: AC_LANG_RESTORE is expanded from...
+m4/alsa.m4:15: AM_PATH_ALSA is expanded from...
+configure.ac:114: the top level])
+m4trace:configure.ac:114: -1- _m4_warn([obsolete], [The macro `AC_LANG_SAVE' is obsolete.
+You should run autoupdate.], [../../lib/autoconf/lang.m4:126: AC_LANG_SAVE is expanded from...
+m4/alsa.m4:15: AM_PATH_ALSA is expanded from...
+configure.ac:114: the top level])
+m4trace:configure.ac:114: -1- _m4_warn([obsolete], [The macro `AC_LANG_CPLUSPLUS' is obsolete.
+You should run autoupdate.], [../../lib/autoconf/c.m4:252: AC_LANG_CPLUSPLUS is expanded from...
+m4/alsa.m4:15: AM_PATH_ALSA is expanded from...
+configure.ac:114: the top level])
+m4trace:configure.ac:114: -1- m4_pattern_allow([^HAVE_LIBASOUND$])
+m4trace:configure.ac:114: -1- _m4_warn([obsolete], [The macro `AC_LANG_RESTORE' is obsolete.
+You should run autoupdate.], [../../lib/autoconf/lang.m4:135: AC_LANG_RESTORE is expanded from...
+m4/alsa.m4:15: AM_PATH_ALSA is expanded from...
+configure.ac:114: the top level])
+m4trace:configure.ac:114: -1- m4_pattern_allow([^ALSA_CFLAGS$])
+m4trace:configure.ac:114: -1- m4_pattern_allow([^ALSA_LIBS$])
+m4trace:configure.ac:143: -1- AM_CONDITIONAL([ENABLEFLUIDSYNTH], [test "$muse_enable_fluidlib" = "yes"])
+m4trace:configure.ac:143: -1- m4_pattern_allow([^ENABLEFLUIDSYNTH_TRUE$])
+m4trace:configure.ac:143: -1- m4_pattern_allow([^ENABLEFLUIDSYNTH_FALSE$])
+m4trace:configure.ac:143: -1- _AM_SUBST_NOTMAKE([ENABLEFLUIDSYNTH_TRUE])
+m4trace:configure.ac:143: -1- _AM_SUBST_NOTMAKE([ENABLEFLUIDSYNTH_FALSE])
+m4trace:configure.ac:144: -1- PKG_CHECK_MODULES([Fluidsynth], [fluidsynth], [FLUIDSYNTHDIRS="fluid fluidsynth"; AC_DEFINE(ENABLEFLUIDSYNTH, 1, [Compile fluidsynth])], [AC_MSG_WARN([libfluidsynth not found; disabling fluidsynth plugins]) ;
+ muse_enable_fluidlib="no"
+ ])
+m4trace:configure.ac:144: -1- PKG_PROG_PKG_CONFIG
+m4trace:configure.ac:144: -1- m4_pattern_forbid([^_?PKG_[A-Z_]+$])
+m4trace:configure.ac:144: -1- m4_pattern_allow([^PKG_CONFIG(_PATH)?$])
+m4trace:configure.ac:144: -1- m4_pattern_allow([^PKG_CONFIG$])
+m4trace:configure.ac:144: -1- m4_pattern_allow([^PKG_CONFIG$])
+m4trace:configure.ac:144: -1- m4_pattern_allow([^Fluidsynth_CFLAGS$])
+m4trace:configure.ac:144: -1- m4_pattern_allow([^Fluidsynth_LIBS$])
+m4trace:configure.ac:144: -1- PKG_CHECK_EXISTS([fluidsynth], [pkg_cv_[]Fluidsynth_CFLAGS=`$PKG_CONFIG --[]cflags "fluidsynth" 2>/dev/null`], [pkg_failed=yes])
+m4trace:configure.ac:144: -1- PKG_CHECK_EXISTS([fluidsynth], [pkg_cv_[]Fluidsynth_LIBS=`$PKG_CONFIG --[]libs "fluidsynth" 2>/dev/null`], [pkg_failed=yes])
+m4trace:configure.ac:144: -1- _PKG_SHORT_ERRORS_SUPPORTED
+m4trace:configure.ac:144: -1- m4_pattern_allow([^ENABLEFLUIDSYNTH$])
+m4trace:configure.ac:149: -1- m4_pattern_allow([^FLUIDSYNTHDIRS$])
+m4trace:configure.ac:150: -1- m4_pattern_allow([^synth_fluidsynth$])
+m4trace:configure.ac:151: -1- m4_pattern_allow([^synth_fluid$])
+m4trace:configure.ac:161: -1- PKG_CHECK_MODULES([SNDFILE], [sndfile >= 1.0.0], [true], [as_fn_error "need libsndfile >= 1.0.0" "$LINENO" 5
+])
+m4trace:configure.ac:161: -1- m4_pattern_allow([^SNDFILE_CFLAGS$])
+m4trace:configure.ac:161: -1- m4_pattern_allow([^SNDFILE_LIBS$])
+m4trace:configure.ac:161: -1- PKG_CHECK_EXISTS([sndfile >= 1.0.0], [pkg_cv_[]SNDFILE_CFLAGS=`$PKG_CONFIG --[]cflags "sndfile >= 1.0.0" 2>/dev/null`], [pkg_failed=yes])
+m4trace:configure.ac:161: -1- PKG_CHECK_EXISTS([sndfile >= 1.0.0], [pkg_cv_[]SNDFILE_LIBS=`$PKG_CONFIG --[]libs "sndfile >= 1.0.0" 2>/dev/null`], [pkg_failed=yes])
+m4trace:configure.ac:161: -1- _PKG_SHORT_ERRORS_SUPPORTED
+m4trace:configure.ac:169: -1- PKG_CHECK_MODULES([SAMPLERATE], [samplerate >= 0.1.0], [true], [as_fn_error "need libsamplerate" "$LINENO" 5
+])
+m4trace:configure.ac:169: -1- m4_pattern_allow([^SAMPLERATE_CFLAGS$])
+m4trace:configure.ac:169: -1- m4_pattern_allow([^SAMPLERATE_LIBS$])
+m4trace:configure.ac:169: -1- PKG_CHECK_EXISTS([samplerate >= 0.1.0], [pkg_cv_[]SAMPLERATE_CFLAGS=`$PKG_CONFIG --[]cflags "samplerate >= 0.1.0" 2>/dev/null`], [pkg_failed=yes])
+m4trace:configure.ac:169: -1- PKG_CHECK_EXISTS([samplerate >= 0.1.0], [pkg_cv_[]SAMPLERATE_LIBS=`$PKG_CONFIG --[]libs "samplerate >= 0.1.0" 2>/dev/null`], [pkg_failed=yes])
+m4trace:configure.ac:169: -1- _PKG_SHORT_ERRORS_SUPPORTED
+m4trace:configure.ac:187: -1- m4_pattern_allow([^UUID_CFLAGS$])
+m4trace:configure.ac:188: -1- m4_pattern_allow([^UUID_LIBS$])
+m4trace:configure.ac:199: -1- PKG_CHECK_MODULES([JACK], [jack >= 0.98.0], [true], [as_fn_error "need JACK >= 0.98.0" "$LINENO" 5
+ ])
+m4trace:configure.ac:199: -1- m4_pattern_allow([^JACK_CFLAGS$])
+m4trace:configure.ac:199: -1- m4_pattern_allow([^JACK_LIBS$])
+m4trace:configure.ac:199: -1- PKG_CHECK_EXISTS([jack >= 0.98.0], [pkg_cv_[]JACK_CFLAGS=`$PKG_CONFIG --[]cflags "jack >= 0.98.0" 2>/dev/null`], [pkg_failed=yes])
+m4trace:configure.ac:199: -1- PKG_CHECK_EXISTS([jack >= 0.98.0], [pkg_cv_[]JACK_LIBS=`$PKG_CONFIG --[]libs "jack >= 0.98.0" 2>/dev/null`], [pkg_failed=yes])
+m4trace:configure.ac:199: -1- _PKG_SHORT_ERRORS_SUPPORTED
+m4trace:configure.ac:225: -1- PKG_CHECK_MODULES([LASH], [lash-1.0 >= 0.2], [LASH_FOUND="yes"], [LASH_FOUND="no"])
+m4trace:configure.ac:225: -1- m4_pattern_allow([^LASH_CFLAGS$])
+m4trace:configure.ac:225: -1- m4_pattern_allow([^LASH_LIBS$])
+m4trace:configure.ac:225: -1- PKG_CHECK_EXISTS([lash-1.0 >= 0.2], [pkg_cv_[]LASH_CFLAGS=`$PKG_CONFIG --[]cflags "lash-1.0 >= 0.2" 2>/dev/null`], [pkg_failed=yes])
+m4trace:configure.ac:225: -1- PKG_CHECK_EXISTS([lash-1.0 >= 0.2], [pkg_cv_[]LASH_LIBS=`$PKG_CONFIG --[]libs "lash-1.0 >= 0.2" 2>/dev/null`], [pkg_failed=yes])
+m4trace:configure.ac:225: -1- _PKG_SHORT_ERRORS_SUPPORTED
+m4trace:configure.ac:226: -1- m4_pattern_allow([^LASH_CFLAGS$])
+m4trace:configure.ac:227: -1- m4_pattern_allow([^LASH_LIBS$])
+m4trace:configure.ac:230: -1- m4_pattern_allow([^HAVE_LASH$])
+m4trace:configure.ac:232: -1- m4_pattern_allow([^LASH_VERSION$])
+m4trace:configure.ac:238: -1- AM_CONDITIONAL([HAVE_LASH], [test "$LASH_FOUND" = "yes"])
+m4trace:configure.ac:238: -1- m4_pattern_allow([^HAVE_LASH_TRUE$])
+m4trace:configure.ac:238: -1- m4_pattern_allow([^HAVE_LASH_FALSE$])
+m4trace:configure.ac:238: -1- _AM_SUBST_NOTMAKE([HAVE_LASH_TRUE])
+m4trace:configure.ac:238: -1- _AM_SUBST_NOTMAKE([HAVE_LASH_FALSE])
+m4trace:configure.ac:251: -1- m4_pattern_allow([^RTCAP$])
+m4trace:configure.ac:270: -1- AM_CONDITIONAL([RTCAP], [test "$report_rtcap" = "yes"])
+m4trace:configure.ac:270: -1- m4_pattern_allow([^RTCAP_TRUE$])
+m4trace:configure.ac:270: -1- m4_pattern_allow([^RTCAP_FALSE$])
+m4trace:configure.ac:270: -1- _AM_SUBST_NOTMAKE([RTCAP_TRUE])
+m4trace:configure.ac:270: -1- _AM_SUBST_NOTMAKE([RTCAP_FALSE])
+m4trace:configure.ac:271: -1- m4_pattern_allow([^GIVERTCAP$])
+m4trace:configure.ac:292: -1- m4_pattern_allow([^SUIDINSTALL$])
+m4trace:configure.ac:312: -1- m4_pattern_allow([^SUIDBUILD$])
+m4trace:configure.ac:335: -1- m4_pattern_allow([^DOXYGEN_TREEVIEW$])
+m4trace:configure.ac:400: -1- m4_pattern_allow([^PCH$])
+m4trace:configure.ac:400: -1- m4_pattern_allow([^PCH$])
+m4trace:configure.ac:416: -1- AM_CONDITIONAL([PCH], [test "$PCH" = "yes"])
+m4trace:configure.ac:416: -1- m4_pattern_allow([^PCH_TRUE$])
+m4trace:configure.ac:416: -1- m4_pattern_allow([^PCH_FALSE$])
+m4trace:configure.ac:416: -1- _AM_SUBST_NOTMAKE([PCH_TRUE])
+m4trace:configure.ac:416: -1- _AM_SUBST_NOTMAKE([PCH_FALSE])
+m4trace:configure.ac:443: -1- m4_pattern_allow([^USE_SSE$])
+m4trace:configure.ac:443: -1- m4_pattern_allow([^USE_SSE$])
+m4trace:configure.ac:460: -1- AM_CONDITIONAL([USE_SSE], [test "$USE_SSE" = "yes"])
+m4trace:configure.ac:460: -1- m4_pattern_allow([^USE_SSE_TRUE$])
+m4trace:configure.ac:460: -1- m4_pattern_allow([^USE_SSE_FALSE$])
+m4trace:configure.ac:460: -1- _AM_SUBST_NOTMAKE([USE_SSE_TRUE])
+m4trace:configure.ac:460: -1- _AM_SUBST_NOTMAKE([USE_SSE_FALSE])
+m4trace:configure.ac:493: -1- AM_PATH_PYTHON([], [], [:])
+m4trace:configure.ac:493: -1- m4_pattern_allow([^PYTHON$])
+m4trace:configure.ac:493: -1- m4_pattern_allow([^PYTHON_VERSION$])
+m4trace:configure.ac:493: -1- m4_pattern_allow([^PYTHON_PREFIX$])
+m4trace:configure.ac:493: -1- m4_pattern_allow([^PYTHON_EXEC_PREFIX$])
+m4trace:configure.ac:493: -1- m4_pattern_allow([^PYTHON_PLATFORM$])
+m4trace:configure.ac:493: -1- m4_pattern_allow([^pythondir$])
+m4trace:configure.ac:493: -1- m4_pattern_allow([^pkgpythondir$])
+m4trace:configure.ac:493: -1- m4_pattern_allow([^pyexecdir$])
+m4trace:configure.ac:493: -1- m4_pattern_allow([^pkgpyexecdir$])
+m4trace:configure.ac:530: -1- AM_CONDITIONAL([ENABLE_PYTHON], [test "$enable_python" = "yes"])
+m4trace:configure.ac:530: -1- m4_pattern_allow([^ENABLE_PYTHON_TRUE$])
+m4trace:configure.ac:530: -1- m4_pattern_allow([^ENABLE_PYTHON_FALSE$])
+m4trace:configure.ac:530: -1- _AM_SUBST_NOTMAKE([ENABLE_PYTHON_TRUE])
+m4trace:configure.ac:530: -1- _AM_SUBST_NOTMAKE([ENABLE_PYTHON_FALSE])
+m4trace:configure.ac:531: -1- m4_pattern_allow([^PYTHON_VERSION$])
+m4trace:configure.ac:532: -1- m4_pattern_allow([^PYTHON_INCLUDES$])
+m4trace:configure.ac:533: -1- m4_pattern_allow([^PYTHON_LIB$])
+m4trace:configure.ac:574: -1- PKG_CHECK_MODULES([FST], [libfst], [ vst_possible=yes ], [ vst_possible=no ])
+m4trace:configure.ac:574: -1- m4_pattern_allow([^FST_CFLAGS$])
+m4trace:configure.ac:574: -1- m4_pattern_allow([^FST_LIBS$])
+m4trace:configure.ac:574: -1- PKG_CHECK_EXISTS([libfst], [pkg_cv_[]FST_CFLAGS=`$PKG_CONFIG --[]cflags "libfst" 2>/dev/null`], [pkg_failed=yes])
+m4trace:configure.ac:574: -1- PKG_CHECK_EXISTS([libfst], [pkg_cv_[]FST_LIBS=`$PKG_CONFIG --[]libs "libfst" 2>/dev/null`], [pkg_failed=yes])
+m4trace:configure.ac:574: -1- _PKG_SHORT_ERRORS_SUPPORTED
+m4trace:configure.ac:582: -1- m4_pattern_allow([^VST_SUPPORT$])
+m4trace:configure.ac:585: -1- AM_CONDITIONAL([VST_SUPPORT], [test x$vst_possible = xyes -a x$vst_requested = xyes])
+m4trace:configure.ac:585: -1- m4_pattern_allow([^VST_SUPPORT_TRUE$])
+m4trace:configure.ac:585: -1- m4_pattern_allow([^VST_SUPPORT_FALSE$])
+m4trace:configure.ac:585: -1- _AM_SUBST_NOTMAKE([VST_SUPPORT_TRUE])
+m4trace:configure.ac:585: -1- _AM_SUBST_NOTMAKE([VST_SUPPORT_FALSE])
+m4trace:configure.ac:607: -1- PKG_CHECK_MODULES([LO], [liblo], [ LO_LIB_FOUND=yes ], [ LO_LIB_FOUND=no ])
+m4trace:configure.ac:607: -1- m4_pattern_allow([^LO_CFLAGS$])
+m4trace:configure.ac:607: -1- m4_pattern_allow([^LO_LIBS$])
+m4trace:configure.ac:607: -1- PKG_CHECK_EXISTS([liblo], [pkg_cv_[]LO_CFLAGS=`$PKG_CONFIG --[]cflags "liblo" 2>/dev/null`], [pkg_failed=yes])
+m4trace:configure.ac:607: -1- PKG_CHECK_EXISTS([liblo], [pkg_cv_[]LO_LIBS=`$PKG_CONFIG --[]libs "liblo" 2>/dev/null`], [pkg_failed=yes])
+m4trace:configure.ac:607: -1- _PKG_SHORT_ERRORS_SUPPORTED
+m4trace:configure.ac:618: -1- m4_pattern_allow([^LO_CFLAGS$])
+m4trace:configure.ac:619: -1- m4_pattern_allow([^LO_LIBS$])
+m4trace:configure.ac:620: -1- m4_pattern_allow([^OSC_SUPPORT$])
+m4trace:configure.ac:623: -1- AM_CONDITIONAL([OSC_SUPPORT], [test x$LO_LIB_FOUND = xyes])
+m4trace:configure.ac:623: -1- m4_pattern_allow([^OSC_SUPPORT_TRUE$])
+m4trace:configure.ac:623: -1- m4_pattern_allow([^OSC_SUPPORT_FALSE$])
+m4trace:configure.ac:623: -1- _AM_SUBST_NOTMAKE([OSC_SUPPORT_TRUE])
+m4trace:configure.ac:623: -1- _AM_SUBST_NOTMAKE([OSC_SUPPORT_FALSE])
+m4trace:configure.ac:677: -1- m4_pattern_allow([^DSSI_SUPPORT$])
+m4trace:configure.ac:681: -1- AM_CONDITIONAL([DSSI_SUPPORT], [test x$DSSI_FOUND = xyes])
+m4trace:configure.ac:681: -1- m4_pattern_allow([^DSSI_SUPPORT_TRUE$])
+m4trace:configure.ac:681: -1- m4_pattern_allow([^DSSI_SUPPORT_FALSE$])
+m4trace:configure.ac:681: -1- _AM_SUBST_NOTMAKE([DSSI_SUPPORT_TRUE])
+m4trace:configure.ac:681: -1- _AM_SUBST_NOTMAKE([DSSI_SUPPORT_FALSE])
+m4trace:configure.ac:698: -1- m4_pattern_allow([^HAVE_AUDIO$])
+m4trace:configure.ac:699: -1- AM_CONDITIONAL([HAVE_AUDIO], [test "yes" = "yes"])
+m4trace:configure.ac:699: -1- m4_pattern_allow([^HAVE_AUDIO_TRUE$])
+m4trace:configure.ac:699: -1- m4_pattern_allow([^HAVE_AUDIO_FALSE$])
+m4trace:configure.ac:699: -1- _AM_SUBST_NOTMAKE([HAVE_AUDIO_TRUE])
+m4trace:configure.ac:699: -1- _AM_SUBST_NOTMAKE([HAVE_AUDIO_FALSE])
+m4trace:configure.ac:700: -1- m4_pattern_allow([^MUSECXXFLAGS$])
+m4trace:configure.ac:708: -1- _m4_warn([obsolete], [AC_OUTPUT should be used without arguments.
+You should run autoupdate.], [])
+m4trace:configure.ac:708: -1- m4_pattern_allow([^LIB@&t@OBJS$])
+m4trace:configure.ac:708: -1- m4_pattern_allow([^LTLIBOBJS$])
+m4trace:configure.ac:708: -1- AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])
+m4trace:configure.ac:708: -1- m4_pattern_allow([^am__EXEEXT_TRUE$])
+m4trace:configure.ac:708: -1- m4_pattern_allow([^am__EXEEXT_FALSE$])
+m4trace:configure.ac:708: -1- _AM_SUBST_NOTMAKE([am__EXEEXT_TRUE])
+m4trace:configure.ac:708: -1- _AM_SUBST_NOTMAKE([am__EXEEXT_FALSE])
+m4trace:configure.ac:708: -1- _AC_AM_CONFIG_HEADER_HOOK(["$ac_file"])
+m4trace:configure.ac:708: -1- _AM_OUTPUT_DEPENDENCY_COMMANDS
+m4trace:configure.ac:708: -1- _LT_PROG_LTMAIN
diff --git a/muse2/autom4te.cache/traces.1 b/muse2/autom4te.cache/traces.1
new file mode 100644
index 00000000..5d60049a
--- /dev/null
+++ b/muse2/autom4te.cache/traces.1
@@ -0,0 +1,1025 @@
+m4trace:aclocal.m4:1327: -1- m4_include([m4/aclocal-include.m4])
+m4trace:aclocal.m4:1328: -1- m4_include([m4/alsa.m4])
+m4trace:aclocal.m4:1329: -1- m4_include([m4/docbook.m4])
+m4trace:aclocal.m4:1330: -1- m4_include([m4/libtool.m4])
+m4trace:aclocal.m4:1331: -1- m4_include([m4/ltoptions.m4])
+m4trace:aclocal.m4:1332: -1- m4_include([m4/ltsugar.m4])
+m4trace:aclocal.m4:1333: -1- m4_include([m4/ltversion.m4])
+m4trace:aclocal.m4:1334: -1- m4_include([m4/lt~obsolete.m4])
+m4trace:configure.ac:5: -1- AC_INIT([MusE], [1.1])
+m4trace:configure.ac:5: -1- m4_pattern_forbid([^_?A[CHUM]_])
+m4trace:configure.ac:5: -1- m4_pattern_forbid([_AC_])
+m4trace:configure.ac:5: -1- m4_pattern_forbid([^LIBOBJS$], [do not use LIBOBJS directly, use AC_LIBOBJ (see section `AC_LIBOBJ vs LIBOBJS'])
+m4trace:configure.ac:5: -1- m4_pattern_allow([^AS_FLAGS$])
+m4trace:configure.ac:5: -1- m4_pattern_forbid([^_?m4_])
+m4trace:configure.ac:5: -1- m4_pattern_forbid([^dnl$])
+m4trace:configure.ac:5: -1- m4_pattern_forbid([^_?AS_])
+m4trace:configure.ac:5: -1- AC_SUBST([SHELL])
+m4trace:configure.ac:5: -1- AC_SUBST_TRACE([SHELL])
+m4trace:configure.ac:5: -1- m4_pattern_allow([^SHELL$])
+m4trace:configure.ac:5: -1- AC_SUBST([PATH_SEPARATOR])
+m4trace:configure.ac:5: -1- AC_SUBST_TRACE([PATH_SEPARATOR])
+m4trace:configure.ac:5: -1- m4_pattern_allow([^PATH_SEPARATOR$])
+m4trace:configure.ac:5: -1- AC_SUBST([PACKAGE_NAME], [m4_ifdef([AC_PACKAGE_NAME], ['AC_PACKAGE_NAME'])])
+m4trace:configure.ac:5: -1- AC_SUBST_TRACE([PACKAGE_NAME])
+m4trace:configure.ac:5: -1- m4_pattern_allow([^PACKAGE_NAME$])
+m4trace:configure.ac:5: -1- AC_SUBST([PACKAGE_TARNAME], [m4_ifdef([AC_PACKAGE_TARNAME], ['AC_PACKAGE_TARNAME'])])
+m4trace:configure.ac:5: -1- AC_SUBST_TRACE([PACKAGE_TARNAME])
+m4trace:configure.ac:5: -1- m4_pattern_allow([^PACKAGE_TARNAME$])
+m4trace:configure.ac:5: -1- AC_SUBST([PACKAGE_VERSION], [m4_ifdef([AC_PACKAGE_VERSION], ['AC_PACKAGE_VERSION'])])
+m4trace:configure.ac:5: -1- AC_SUBST_TRACE([PACKAGE_VERSION])
+m4trace:configure.ac:5: -1- m4_pattern_allow([^PACKAGE_VERSION$])
+m4trace:configure.ac:5: -1- AC_SUBST([PACKAGE_STRING], [m4_ifdef([AC_PACKAGE_STRING], ['AC_PACKAGE_STRING'])])
+m4trace:configure.ac:5: -1- AC_SUBST_TRACE([PACKAGE_STRING])
+m4trace:configure.ac:5: -1- m4_pattern_allow([^PACKAGE_STRING$])
+m4trace:configure.ac:5: -1- AC_SUBST([PACKAGE_BUGREPORT], [m4_ifdef([AC_PACKAGE_BUGREPORT], ['AC_PACKAGE_BUGREPORT'])])
+m4trace:configure.ac:5: -1- AC_SUBST_TRACE([PACKAGE_BUGREPORT])
+m4trace:configure.ac:5: -1- m4_pattern_allow([^PACKAGE_BUGREPORT$])
+m4trace:configure.ac:5: -1- AC_SUBST([PACKAGE_URL], [m4_ifdef([AC_PACKAGE_URL], ['AC_PACKAGE_URL'])])
+m4trace:configure.ac:5: -1- AC_SUBST_TRACE([PACKAGE_URL])
+m4trace:configure.ac:5: -1- m4_pattern_allow([^PACKAGE_URL$])
+m4trace:configure.ac:5: -1- AC_SUBST([exec_prefix], [NONE])
+m4trace:configure.ac:5: -1- AC_SUBST_TRACE([exec_prefix])
+m4trace:configure.ac:5: -1- m4_pattern_allow([^exec_prefix$])
+m4trace:configure.ac:5: -1- AC_SUBST([prefix], [NONE])
+m4trace:configure.ac:5: -1- AC_SUBST_TRACE([prefix])
+m4trace:configure.ac:5: -1- m4_pattern_allow([^prefix$])
+m4trace:configure.ac:5: -1- AC_SUBST([program_transform_name], [s,x,x,])
+m4trace:configure.ac:5: -1- AC_SUBST_TRACE([program_transform_name])
+m4trace:configure.ac:5: -1- m4_pattern_allow([^program_transform_name$])
+m4trace:configure.ac:5: -1- AC_SUBST([bindir], ['${exec_prefix}/bin'])
+m4trace:configure.ac:5: -1- AC_SUBST_TRACE([bindir])
+m4trace:configure.ac:5: -1- m4_pattern_allow([^bindir$])
+m4trace:configure.ac:5: -1- AC_SUBST([sbindir], ['${exec_prefix}/sbin'])
+m4trace:configure.ac:5: -1- AC_SUBST_TRACE([sbindir])
+m4trace:configure.ac:5: -1- m4_pattern_allow([^sbindir$])
+m4trace:configure.ac:5: -1- AC_SUBST([libexecdir], ['${exec_prefix}/libexec'])
+m4trace:configure.ac:5: -1- AC_SUBST_TRACE([libexecdir])
+m4trace:configure.ac:5: -1- m4_pattern_allow([^libexecdir$])
+m4trace:configure.ac:5: -1- AC_SUBST([datarootdir], ['${prefix}/share'])
+m4trace:configure.ac:5: -1- AC_SUBST_TRACE([datarootdir])
+m4trace:configure.ac:5: -1- m4_pattern_allow([^datarootdir$])
+m4trace:configure.ac:5: -1- AC_SUBST([datadir], ['${datarootdir}'])
+m4trace:configure.ac:5: -1- AC_SUBST_TRACE([datadir])
+m4trace:configure.ac:5: -1- m4_pattern_allow([^datadir$])
+m4trace:configure.ac:5: -1- AC_SUBST([sysconfdir], ['${prefix}/etc'])
+m4trace:configure.ac:5: -1- AC_SUBST_TRACE([sysconfdir])
+m4trace:configure.ac:5: -1- m4_pattern_allow([^sysconfdir$])
+m4trace:configure.ac:5: -1- AC_SUBST([sharedstatedir], ['${prefix}/com'])
+m4trace:configure.ac:5: -1- AC_SUBST_TRACE([sharedstatedir])
+m4trace:configure.ac:5: -1- m4_pattern_allow([^sharedstatedir$])
+m4trace:configure.ac:5: -1- AC_SUBST([localstatedir], ['${prefix}/var'])
+m4trace:configure.ac:5: -1- AC_SUBST_TRACE([localstatedir])
+m4trace:configure.ac:5: -1- m4_pattern_allow([^localstatedir$])
+m4trace:configure.ac:5: -1- AC_SUBST([includedir], ['${prefix}/include'])
+m4trace:configure.ac:5: -1- AC_SUBST_TRACE([includedir])
+m4trace:configure.ac:5: -1- m4_pattern_allow([^includedir$])
+m4trace:configure.ac:5: -1- AC_SUBST([oldincludedir], ['/usr/include'])
+m4trace:configure.ac:5: -1- AC_SUBST_TRACE([oldincludedir])
+m4trace:configure.ac:5: -1- m4_pattern_allow([^oldincludedir$])
+m4trace:configure.ac:5: -1- AC_SUBST([docdir], [m4_ifset([AC_PACKAGE_TARNAME],
+ ['${datarootdir}/doc/${PACKAGE_TARNAME}'],
+ ['${datarootdir}/doc/${PACKAGE}'])])
+m4trace:configure.ac:5: -1- AC_SUBST_TRACE([docdir])
+m4trace:configure.ac:5: -1- m4_pattern_allow([^docdir$])
+m4trace:configure.ac:5: -1- AC_SUBST([infodir], ['${datarootdir}/info'])
+m4trace:configure.ac:5: -1- AC_SUBST_TRACE([infodir])
+m4trace:configure.ac:5: -1- m4_pattern_allow([^infodir$])
+m4trace:configure.ac:5: -1- AC_SUBST([htmldir], ['${docdir}'])
+m4trace:configure.ac:5: -1- AC_SUBST_TRACE([htmldir])
+m4trace:configure.ac:5: -1- m4_pattern_allow([^htmldir$])
+m4trace:configure.ac:5: -1- AC_SUBST([dvidir], ['${docdir}'])
+m4trace:configure.ac:5: -1- AC_SUBST_TRACE([dvidir])
+m4trace:configure.ac:5: -1- m4_pattern_allow([^dvidir$])
+m4trace:configure.ac:5: -1- AC_SUBST([pdfdir], ['${docdir}'])
+m4trace:configure.ac:5: -1- AC_SUBST_TRACE([pdfdir])
+m4trace:configure.ac:5: -1- m4_pattern_allow([^pdfdir$])
+m4trace:configure.ac:5: -1- AC_SUBST([psdir], ['${docdir}'])
+m4trace:configure.ac:5: -1- AC_SUBST_TRACE([psdir])
+m4trace:configure.ac:5: -1- m4_pattern_allow([^psdir$])
+m4trace:configure.ac:5: -1- AC_SUBST([libdir], ['${exec_prefix}/lib'])
+m4trace:configure.ac:5: -1- AC_SUBST_TRACE([libdir])
+m4trace:configure.ac:5: -1- m4_pattern_allow([^libdir$])
+m4trace:configure.ac:5: -1- AC_SUBST([localedir], ['${datarootdir}/locale'])
+m4trace:configure.ac:5: -1- AC_SUBST_TRACE([localedir])
+m4trace:configure.ac:5: -1- m4_pattern_allow([^localedir$])
+m4trace:configure.ac:5: -1- AC_SUBST([mandir], ['${datarootdir}/man'])
+m4trace:configure.ac:5: -1- AC_SUBST_TRACE([mandir])
+m4trace:configure.ac:5: -1- m4_pattern_allow([^mandir$])
+m4trace:configure.ac:5: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_NAME])
+m4trace:configure.ac:5: -1- m4_pattern_allow([^PACKAGE_NAME$])
+m4trace:configure.ac:5: -1- AH_OUTPUT([PACKAGE_NAME], [/* Define to the full name of this package. */
+@%:@undef PACKAGE_NAME])
+m4trace:configure.ac:5: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_TARNAME])
+m4trace:configure.ac:5: -1- m4_pattern_allow([^PACKAGE_TARNAME$])
+m4trace:configure.ac:5: -1- AH_OUTPUT([PACKAGE_TARNAME], [/* Define to the one symbol short name of this package. */
+@%:@undef PACKAGE_TARNAME])
+m4trace:configure.ac:5: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_VERSION])
+m4trace:configure.ac:5: -1- m4_pattern_allow([^PACKAGE_VERSION$])
+m4trace:configure.ac:5: -1- AH_OUTPUT([PACKAGE_VERSION], [/* Define to the version of this package. */
+@%:@undef PACKAGE_VERSION])
+m4trace:configure.ac:5: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_STRING])
+m4trace:configure.ac:5: -1- m4_pattern_allow([^PACKAGE_STRING$])
+m4trace:configure.ac:5: -1- AH_OUTPUT([PACKAGE_STRING], [/* Define to the full name and version of this package. */
+@%:@undef PACKAGE_STRING])
+m4trace:configure.ac:5: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_BUGREPORT])
+m4trace:configure.ac:5: -1- m4_pattern_allow([^PACKAGE_BUGREPORT$])
+m4trace:configure.ac:5: -1- AH_OUTPUT([PACKAGE_BUGREPORT], [/* Define to the address where bug reports for this package should be sent. */
+@%:@undef PACKAGE_BUGREPORT])
+m4trace:configure.ac:5: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_URL])
+m4trace:configure.ac:5: -1- m4_pattern_allow([^PACKAGE_URL$])
+m4trace:configure.ac:5: -1- AH_OUTPUT([PACKAGE_URL], [/* Define to the home page for this package. */
+@%:@undef PACKAGE_URL])
+m4trace:configure.ac:5: -1- AC_SUBST([DEFS])
+m4trace:configure.ac:5: -1- AC_SUBST_TRACE([DEFS])
+m4trace:configure.ac:5: -1- m4_pattern_allow([^DEFS$])
+m4trace:configure.ac:5: -1- AC_SUBST([ECHO_C])
+m4trace:configure.ac:5: -1- AC_SUBST_TRACE([ECHO_C])
+m4trace:configure.ac:5: -1- m4_pattern_allow([^ECHO_C$])
+m4trace:configure.ac:5: -1- AC_SUBST([ECHO_N])
+m4trace:configure.ac:5: -1- AC_SUBST_TRACE([ECHO_N])
+m4trace:configure.ac:5: -1- m4_pattern_allow([^ECHO_N$])
+m4trace:configure.ac:5: -1- AC_SUBST([ECHO_T])
+m4trace:configure.ac:5: -1- AC_SUBST_TRACE([ECHO_T])
+m4trace:configure.ac:5: -1- m4_pattern_allow([^ECHO_T$])
+m4trace:configure.ac:5: -1- AC_SUBST([LIBS])
+m4trace:configure.ac:5: -1- AC_SUBST_TRACE([LIBS])
+m4trace:configure.ac:5: -1- m4_pattern_allow([^LIBS$])
+m4trace:configure.ac:5: -1- AC_SUBST([build_alias])
+m4trace:configure.ac:5: -1- AC_SUBST_TRACE([build_alias])
+m4trace:configure.ac:5: -1- m4_pattern_allow([^build_alias$])
+m4trace:configure.ac:5: -1- AC_SUBST([host_alias])
+m4trace:configure.ac:5: -1- AC_SUBST_TRACE([host_alias])
+m4trace:configure.ac:5: -1- m4_pattern_allow([^host_alias$])
+m4trace:configure.ac:5: -1- AC_SUBST([target_alias])
+m4trace:configure.ac:5: -1- AC_SUBST_TRACE([target_alias])
+m4trace:configure.ac:5: -1- m4_pattern_allow([^target_alias$])
+m4trace:configure.ac:7: -1- AM_INIT_AUTOMAKE([1.1])
+m4trace:configure.ac:7: -1- m4_pattern_allow([^AM_[A-Z]+FLAGS$])
+m4trace:configure.ac:7: -1- AM_AUTOMAKE_VERSION([1.11.1])
+m4trace:configure.ac:7: -1- AC_REQUIRE_AUX_FILE([install-sh])
+m4trace:configure.ac:7: -1- AC_SUBST([INSTALL_PROGRAM])
+m4trace:configure.ac:7: -1- AC_SUBST_TRACE([INSTALL_PROGRAM])
+m4trace:configure.ac:7: -1- m4_pattern_allow([^INSTALL_PROGRAM$])
+m4trace:configure.ac:7: -1- AC_SUBST([INSTALL_SCRIPT])
+m4trace:configure.ac:7: -1- AC_SUBST_TRACE([INSTALL_SCRIPT])
+m4trace:configure.ac:7: -1- m4_pattern_allow([^INSTALL_SCRIPT$])
+m4trace:configure.ac:7: -1- AC_SUBST([INSTALL_DATA])
+m4trace:configure.ac:7: -1- AC_SUBST_TRACE([INSTALL_DATA])
+m4trace:configure.ac:7: -1- m4_pattern_allow([^INSTALL_DATA$])
+m4trace:configure.ac:7: -1- AC_SUBST([am__isrc], [' -I$(srcdir)'])
+m4trace:configure.ac:7: -1- AC_SUBST_TRACE([am__isrc])
+m4trace:configure.ac:7: -1- m4_pattern_allow([^am__isrc$])
+m4trace:configure.ac:7: -1- _AM_SUBST_NOTMAKE([am__isrc])
+m4trace:configure.ac:7: -1- AC_SUBST([CYGPATH_W])
+m4trace:configure.ac:7: -1- AC_SUBST_TRACE([CYGPATH_W])
+m4trace:configure.ac:7: -1- m4_pattern_allow([^CYGPATH_W$])
+m4trace:configure.ac:7: -1- AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])
+m4trace:configure.ac:7: -1- AC_SUBST_TRACE([PACKAGE])
+m4trace:configure.ac:7: -1- m4_pattern_allow([^PACKAGE$])
+m4trace:configure.ac:7: -1- AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])
+m4trace:configure.ac:7: -1- AC_SUBST_TRACE([VERSION])
+m4trace:configure.ac:7: -1- m4_pattern_allow([^VERSION$])
+m4trace:configure.ac:7: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE])
+m4trace:configure.ac:7: -1- m4_pattern_allow([^PACKAGE$])
+m4trace:configure.ac:7: -1- AH_OUTPUT([PACKAGE], [/* Name of package */
+@%:@undef PACKAGE])
+m4trace:configure.ac:7: -1- AC_DEFINE_TRACE_LITERAL([VERSION])
+m4trace:configure.ac:7: -1- m4_pattern_allow([^VERSION$])
+m4trace:configure.ac:7: -1- AH_OUTPUT([VERSION], [/* Version number of package */
+@%:@undef VERSION])
+m4trace:configure.ac:7: -1- AC_REQUIRE_AUX_FILE([missing])
+m4trace:configure.ac:7: -1- AC_SUBST([ACLOCAL])
+m4trace:configure.ac:7: -1- AC_SUBST_TRACE([ACLOCAL])
+m4trace:configure.ac:7: -1- m4_pattern_allow([^ACLOCAL$])
+m4trace:configure.ac:7: -1- AC_SUBST([AUTOCONF])
+m4trace:configure.ac:7: -1- AC_SUBST_TRACE([AUTOCONF])
+m4trace:configure.ac:7: -1- m4_pattern_allow([^AUTOCONF$])
+m4trace:configure.ac:7: -1- AC_SUBST([AUTOMAKE])
+m4trace:configure.ac:7: -1- AC_SUBST_TRACE([AUTOMAKE])
+m4trace:configure.ac:7: -1- m4_pattern_allow([^AUTOMAKE$])
+m4trace:configure.ac:7: -1- AC_SUBST([AUTOHEADER])
+m4trace:configure.ac:7: -1- AC_SUBST_TRACE([AUTOHEADER])
+m4trace:configure.ac:7: -1- m4_pattern_allow([^AUTOHEADER$])
+m4trace:configure.ac:7: -1- AC_SUBST([MAKEINFO])
+m4trace:configure.ac:7: -1- AC_SUBST_TRACE([MAKEINFO])
+m4trace:configure.ac:7: -1- m4_pattern_allow([^MAKEINFO$])
+m4trace:configure.ac:7: -1- AC_SUBST([install_sh])
+m4trace:configure.ac:7: -1- AC_SUBST_TRACE([install_sh])
+m4trace:configure.ac:7: -1- m4_pattern_allow([^install_sh$])
+m4trace:configure.ac:7: -1- AC_SUBST([STRIP])
+m4trace:configure.ac:7: -1- AC_SUBST_TRACE([STRIP])
+m4trace:configure.ac:7: -1- m4_pattern_allow([^STRIP$])
+m4trace:configure.ac:7: -1- AC_SUBST([INSTALL_STRIP_PROGRAM])
+m4trace:configure.ac:7: -1- AC_SUBST_TRACE([INSTALL_STRIP_PROGRAM])
+m4trace:configure.ac:7: -1- m4_pattern_allow([^INSTALL_STRIP_PROGRAM$])
+m4trace:configure.ac:7: -1- AC_REQUIRE_AUX_FILE([install-sh])
+m4trace:configure.ac:7: -1- AC_SUBST([MKDIR_P])
+m4trace:configure.ac:7: -1- AC_SUBST_TRACE([MKDIR_P])
+m4trace:configure.ac:7: -1- m4_pattern_allow([^MKDIR_P$])
+m4trace:configure.ac:7: -1- AC_SUBST([mkdir_p], ["$MKDIR_P"])
+m4trace:configure.ac:7: -1- AC_SUBST_TRACE([mkdir_p])
+m4trace:configure.ac:7: -1- m4_pattern_allow([^mkdir_p$])
+m4trace:configure.ac:7: -1- AC_SUBST([AWK])
+m4trace:configure.ac:7: -1- AC_SUBST_TRACE([AWK])
+m4trace:configure.ac:7: -1- m4_pattern_allow([^AWK$])
+m4trace:configure.ac:7: -1- AC_SUBST([SET_MAKE])
+m4trace:configure.ac:7: -1- AC_SUBST_TRACE([SET_MAKE])
+m4trace:configure.ac:7: -1- m4_pattern_allow([^SET_MAKE$])
+m4trace:configure.ac:7: -1- AC_SUBST([am__leading_dot])
+m4trace:configure.ac:7: -1- AC_SUBST_TRACE([am__leading_dot])
+m4trace:configure.ac:7: -1- m4_pattern_allow([^am__leading_dot$])
+m4trace:configure.ac:7: -1- AC_SUBST([AMTAR])
+m4trace:configure.ac:7: -1- AC_SUBST_TRACE([AMTAR])
+m4trace:configure.ac:7: -1- m4_pattern_allow([^AMTAR$])
+m4trace:configure.ac:7: -1- AC_SUBST([am__tar])
+m4trace:configure.ac:7: -1- AC_SUBST_TRACE([am__tar])
+m4trace:configure.ac:7: -1- m4_pattern_allow([^am__tar$])
+m4trace:configure.ac:7: -1- AC_SUBST([am__untar])
+m4trace:configure.ac:7: -1- AC_SUBST_TRACE([am__untar])
+m4trace:configure.ac:7: -1- m4_pattern_allow([^am__untar$])
+m4trace:configure.ac:8: -1- _m4_warn([obsolete], [The macro `AM_CONFIG_HEADER' is obsolete.
+You should run autoupdate.], [aclocal.m4:577: AM_CONFIG_HEADER is expanded from...
+configure.ac:8: the top level])
+m4trace:configure.ac:8: -1- AC_CONFIG_HEADERS([config.h])
+m4trace:configure.ac:10: -1- AM_CONDITIONAL([INSIDE_GNOME_COMMON], [test x = y])
+m4trace:configure.ac:10: -1- AC_SUBST([INSIDE_GNOME_COMMON_TRUE])
+m4trace:configure.ac:10: -1- AC_SUBST_TRACE([INSIDE_GNOME_COMMON_TRUE])
+m4trace:configure.ac:10: -1- m4_pattern_allow([^INSIDE_GNOME_COMMON_TRUE$])
+m4trace:configure.ac:10: -1- AC_SUBST([INSIDE_GNOME_COMMON_FALSE])
+m4trace:configure.ac:10: -1- AC_SUBST_TRACE([INSIDE_GNOME_COMMON_FALSE])
+m4trace:configure.ac:10: -1- m4_pattern_allow([^INSIDE_GNOME_COMMON_FALSE$])
+m4trace:configure.ac:10: -1- _AM_SUBST_NOTMAKE([INSIDE_GNOME_COMMON_TRUE])
+m4trace:configure.ac:10: -1- _AM_SUBST_NOTMAKE([INSIDE_GNOME_COMMON_FALSE])
+m4trace:configure.ac:13: -1- AC_SUBST([CXX])
+m4trace:configure.ac:13: -1- AC_SUBST_TRACE([CXX])
+m4trace:configure.ac:13: -1- m4_pattern_allow([^CXX$])
+m4trace:configure.ac:13: -1- AC_SUBST([CXXFLAGS])
+m4trace:configure.ac:13: -1- AC_SUBST_TRACE([CXXFLAGS])
+m4trace:configure.ac:13: -1- m4_pattern_allow([^CXXFLAGS$])
+m4trace:configure.ac:13: -1- AC_SUBST([LDFLAGS])
+m4trace:configure.ac:13: -1- AC_SUBST_TRACE([LDFLAGS])
+m4trace:configure.ac:13: -1- m4_pattern_allow([^LDFLAGS$])
+m4trace:configure.ac:13: -1- AC_SUBST([LIBS])
+m4trace:configure.ac:13: -1- AC_SUBST_TRACE([LIBS])
+m4trace:configure.ac:13: -1- m4_pattern_allow([^LIBS$])
+m4trace:configure.ac:13: -1- AC_SUBST([CPPFLAGS])
+m4trace:configure.ac:13: -1- AC_SUBST_TRACE([CPPFLAGS])
+m4trace:configure.ac:13: -1- m4_pattern_allow([^CPPFLAGS$])
+m4trace:configure.ac:13: -1- AC_SUBST([CXX])
+m4trace:configure.ac:13: -1- AC_SUBST_TRACE([CXX])
+m4trace:configure.ac:13: -1- m4_pattern_allow([^CXX$])
+m4trace:configure.ac:13: -1- AC_SUBST([ac_ct_CXX])
+m4trace:configure.ac:13: -1- AC_SUBST_TRACE([ac_ct_CXX])
+m4trace:configure.ac:13: -1- m4_pattern_allow([^ac_ct_CXX$])
+m4trace:configure.ac:13: -1- AC_SUBST([EXEEXT], [$ac_cv_exeext])
+m4trace:configure.ac:13: -1- AC_SUBST_TRACE([EXEEXT])
+m4trace:configure.ac:13: -1- m4_pattern_allow([^EXEEXT$])
+m4trace:configure.ac:13: -1- AC_SUBST([OBJEXT], [$ac_cv_objext])
+m4trace:configure.ac:13: -1- AC_SUBST_TRACE([OBJEXT])
+m4trace:configure.ac:13: -1- m4_pattern_allow([^OBJEXT$])
+m4trace:configure.ac:13: -1- AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])
+m4trace:configure.ac:13: -1- AC_SUBST_TRACE([DEPDIR])
+m4trace:configure.ac:13: -1- m4_pattern_allow([^DEPDIR$])
+m4trace:configure.ac:13: -1- AC_SUBST([am__include])
+m4trace:configure.ac:13: -1- AC_SUBST_TRACE([am__include])
+m4trace:configure.ac:13: -1- m4_pattern_allow([^am__include$])
+m4trace:configure.ac:13: -1- AC_SUBST([am__quote])
+m4trace:configure.ac:13: -1- AC_SUBST_TRACE([am__quote])
+m4trace:configure.ac:13: -1- m4_pattern_allow([^am__quote$])
+m4trace:configure.ac:13: -1- AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
+m4trace:configure.ac:13: -1- AC_SUBST([AMDEP_TRUE])
+m4trace:configure.ac:13: -1- AC_SUBST_TRACE([AMDEP_TRUE])
+m4trace:configure.ac:13: -1- m4_pattern_allow([^AMDEP_TRUE$])
+m4trace:configure.ac:13: -1- AC_SUBST([AMDEP_FALSE])
+m4trace:configure.ac:13: -1- AC_SUBST_TRACE([AMDEP_FALSE])
+m4trace:configure.ac:13: -1- m4_pattern_allow([^AMDEP_FALSE$])
+m4trace:configure.ac:13: -1- _AM_SUBST_NOTMAKE([AMDEP_TRUE])
+m4trace:configure.ac:13: -1- _AM_SUBST_NOTMAKE([AMDEP_FALSE])
+m4trace:configure.ac:13: -1- AC_SUBST([AMDEPBACKSLASH])
+m4trace:configure.ac:13: -1- AC_SUBST_TRACE([AMDEPBACKSLASH])
+m4trace:configure.ac:13: -1- m4_pattern_allow([^AMDEPBACKSLASH$])
+m4trace:configure.ac:13: -1- _AM_SUBST_NOTMAKE([AMDEPBACKSLASH])
+m4trace:configure.ac:13: -1- AC_SUBST([CXXDEPMODE], [depmode=$am_cv_CXX_dependencies_compiler_type])
+m4trace:configure.ac:13: -1- AC_SUBST_TRACE([CXXDEPMODE])
+m4trace:configure.ac:13: -1- m4_pattern_allow([^CXXDEPMODE$])
+m4trace:configure.ac:13: -1- AM_CONDITIONAL([am__fastdepCXX], [
+ test "x$enable_dependency_tracking" != xno \
+ && test "$am_cv_CXX_dependencies_compiler_type" = gcc3])
+m4trace:configure.ac:13: -1- AC_SUBST([am__fastdepCXX_TRUE])
+m4trace:configure.ac:13: -1- AC_SUBST_TRACE([am__fastdepCXX_TRUE])
+m4trace:configure.ac:13: -1- m4_pattern_allow([^am__fastdepCXX_TRUE$])
+m4trace:configure.ac:13: -1- AC_SUBST([am__fastdepCXX_FALSE])
+m4trace:configure.ac:13: -1- AC_SUBST_TRACE([am__fastdepCXX_FALSE])
+m4trace:configure.ac:13: -1- m4_pattern_allow([^am__fastdepCXX_FALSE$])
+m4trace:configure.ac:13: -1- _AM_SUBST_NOTMAKE([am__fastdepCXX_TRUE])
+m4trace:configure.ac:13: -1- _AM_SUBST_NOTMAKE([am__fastdepCXX_FALSE])
+m4trace:configure.ac:14: -1- AC_PROG_LIBTOOL
+m4trace:configure.ac:14: -1- _m4_warn([obsolete], [The macro `AC_PROG_LIBTOOL' is obsolete.
+You should run autoupdate.], [m4/libtool.m4:102: AC_PROG_LIBTOOL is expanded from...
+configure.ac:14: the top level])
+m4trace:configure.ac:14: -1- LT_INIT
+m4trace:configure.ac:14: -1- m4_pattern_forbid([^_?LT_[A-Z_]+$])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$])
+m4trace:configure.ac:14: -1- AC_REQUIRE_AUX_FILE([ltmain.sh])
+m4trace:configure.ac:14: -1- AC_SUBST([LIBTOOL])
+m4trace:configure.ac:14: -1- AC_SUBST_TRACE([LIBTOOL])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^LIBTOOL$])
+m4trace:configure.ac:14: -1- AC_CANONICAL_HOST
+m4trace:configure.ac:14: -1- AC_CANONICAL_BUILD
+m4trace:configure.ac:14: -1- AC_REQUIRE_AUX_FILE([config.sub])
+m4trace:configure.ac:14: -1- AC_REQUIRE_AUX_FILE([config.guess])
+m4trace:configure.ac:14: -1- AC_SUBST([build], [$ac_cv_build])
+m4trace:configure.ac:14: -1- AC_SUBST_TRACE([build])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^build$])
+m4trace:configure.ac:14: -1- AC_SUBST([build_cpu], [$[1]])
+m4trace:configure.ac:14: -1- AC_SUBST_TRACE([build_cpu])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^build_cpu$])
+m4trace:configure.ac:14: -1- AC_SUBST([build_vendor], [$[2]])
+m4trace:configure.ac:14: -1- AC_SUBST_TRACE([build_vendor])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^build_vendor$])
+m4trace:configure.ac:14: -1- AC_SUBST([build_os])
+m4trace:configure.ac:14: -1- AC_SUBST_TRACE([build_os])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^build_os$])
+m4trace:configure.ac:14: -1- AC_SUBST([host], [$ac_cv_host])
+m4trace:configure.ac:14: -1- AC_SUBST_TRACE([host])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^host$])
+m4trace:configure.ac:14: -1- AC_SUBST([host_cpu], [$[1]])
+m4trace:configure.ac:14: -1- AC_SUBST_TRACE([host_cpu])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^host_cpu$])
+m4trace:configure.ac:14: -1- AC_SUBST([host_vendor], [$[2]])
+m4trace:configure.ac:14: -1- AC_SUBST_TRACE([host_vendor])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^host_vendor$])
+m4trace:configure.ac:14: -1- AC_SUBST([host_os])
+m4trace:configure.ac:14: -1- AC_SUBST_TRACE([host_os])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^host_os$])
+m4trace:configure.ac:14: -1- AC_SUBST([CC])
+m4trace:configure.ac:14: -1- AC_SUBST_TRACE([CC])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^CC$])
+m4trace:configure.ac:14: -1- AC_SUBST([CFLAGS])
+m4trace:configure.ac:14: -1- AC_SUBST_TRACE([CFLAGS])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^CFLAGS$])
+m4trace:configure.ac:14: -1- AC_SUBST([LDFLAGS])
+m4trace:configure.ac:14: -1- AC_SUBST_TRACE([LDFLAGS])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^LDFLAGS$])
+m4trace:configure.ac:14: -1- AC_SUBST([LIBS])
+m4trace:configure.ac:14: -1- AC_SUBST_TRACE([LIBS])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^LIBS$])
+m4trace:configure.ac:14: -1- AC_SUBST([CPPFLAGS])
+m4trace:configure.ac:14: -1- AC_SUBST_TRACE([CPPFLAGS])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^CPPFLAGS$])
+m4trace:configure.ac:14: -1- AC_SUBST([CC])
+m4trace:configure.ac:14: -1- AC_SUBST_TRACE([CC])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^CC$])
+m4trace:configure.ac:14: -1- AC_SUBST([CC])
+m4trace:configure.ac:14: -1- AC_SUBST_TRACE([CC])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^CC$])
+m4trace:configure.ac:14: -1- AC_SUBST([CC])
+m4trace:configure.ac:14: -1- AC_SUBST_TRACE([CC])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^CC$])
+m4trace:configure.ac:14: -1- AC_SUBST([CC])
+m4trace:configure.ac:14: -1- AC_SUBST_TRACE([CC])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^CC$])
+m4trace:configure.ac:14: -1- AC_SUBST([ac_ct_CC])
+m4trace:configure.ac:14: -1- AC_SUBST_TRACE([ac_ct_CC])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^ac_ct_CC$])
+m4trace:configure.ac:14: -1- AC_SUBST([CCDEPMODE], [depmode=$am_cv_CC_dependencies_compiler_type])
+m4trace:configure.ac:14: -1- AC_SUBST_TRACE([CCDEPMODE])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^CCDEPMODE$])
+m4trace:configure.ac:14: -1- AM_CONDITIONAL([am__fastdepCC], [
+ test "x$enable_dependency_tracking" != xno \
+ && test "$am_cv_CC_dependencies_compiler_type" = gcc3])
+m4trace:configure.ac:14: -1- AC_SUBST([am__fastdepCC_TRUE])
+m4trace:configure.ac:14: -1- AC_SUBST_TRACE([am__fastdepCC_TRUE])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^am__fastdepCC_TRUE$])
+m4trace:configure.ac:14: -1- AC_SUBST([am__fastdepCC_FALSE])
+m4trace:configure.ac:14: -1- AC_SUBST_TRACE([am__fastdepCC_FALSE])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^am__fastdepCC_FALSE$])
+m4trace:configure.ac:14: -1- _AM_SUBST_NOTMAKE([am__fastdepCC_TRUE])
+m4trace:configure.ac:14: -1- _AM_SUBST_NOTMAKE([am__fastdepCC_FALSE])
+m4trace:configure.ac:14: -1- AC_SUBST([SED])
+m4trace:configure.ac:14: -1- AC_SUBST_TRACE([SED])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^SED$])
+m4trace:configure.ac:14: -1- AC_SUBST([GREP])
+m4trace:configure.ac:14: -1- AC_SUBST_TRACE([GREP])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^GREP$])
+m4trace:configure.ac:14: -1- AC_SUBST([EGREP])
+m4trace:configure.ac:14: -1- AC_SUBST_TRACE([EGREP])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^EGREP$])
+m4trace:configure.ac:14: -1- AC_SUBST([FGREP])
+m4trace:configure.ac:14: -1- AC_SUBST_TRACE([FGREP])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^FGREP$])
+m4trace:configure.ac:14: -1- AC_SUBST([GREP])
+m4trace:configure.ac:14: -1- AC_SUBST_TRACE([GREP])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^GREP$])
+m4trace:configure.ac:14: -1- AC_SUBST([LD])
+m4trace:configure.ac:14: -1- AC_SUBST_TRACE([LD])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^LD$])
+m4trace:configure.ac:14: -1- AC_SUBST([DUMPBIN])
+m4trace:configure.ac:14: -1- AC_SUBST_TRACE([DUMPBIN])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^DUMPBIN$])
+m4trace:configure.ac:14: -1- AC_SUBST([ac_ct_DUMPBIN])
+m4trace:configure.ac:14: -1- AC_SUBST_TRACE([ac_ct_DUMPBIN])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^ac_ct_DUMPBIN$])
+m4trace:configure.ac:14: -1- AC_SUBST([DUMPBIN])
+m4trace:configure.ac:14: -1- AC_SUBST_TRACE([DUMPBIN])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^DUMPBIN$])
+m4trace:configure.ac:14: -1- AC_SUBST([NM])
+m4trace:configure.ac:14: -1- AC_SUBST_TRACE([NM])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^NM$])
+m4trace:configure.ac:14: -1- AC_SUBST([LN_S], [$as_ln_s])
+m4trace:configure.ac:14: -1- AC_SUBST_TRACE([LN_S])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^LN_S$])
+m4trace:configure.ac:14: -1- AC_SUBST([OBJDUMP])
+m4trace:configure.ac:14: -1- AC_SUBST_TRACE([OBJDUMP])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^OBJDUMP$])
+m4trace:configure.ac:14: -1- AC_SUBST([OBJDUMP])
+m4trace:configure.ac:14: -1- AC_SUBST_TRACE([OBJDUMP])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^OBJDUMP$])
+m4trace:configure.ac:14: -1- AC_SUBST([AR])
+m4trace:configure.ac:14: -1- AC_SUBST_TRACE([AR])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^AR$])
+m4trace:configure.ac:14: -1- AC_SUBST([STRIP])
+m4trace:configure.ac:14: -1- AC_SUBST_TRACE([STRIP])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^STRIP$])
+m4trace:configure.ac:14: -1- AC_SUBST([RANLIB])
+m4trace:configure.ac:14: -1- AC_SUBST_TRACE([RANLIB])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^RANLIB$])
+m4trace:configure.ac:14: -1- m4_pattern_allow([LT_OBJDIR])
+m4trace:configure.ac:14: -1- AC_DEFINE_TRACE_LITERAL([LT_OBJDIR])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^LT_OBJDIR$])
+m4trace:configure.ac:14: -1- AH_OUTPUT([LT_OBJDIR], [/* Define to the sub-directory in which libtool stores uninstalled libraries.
+ */
+@%:@undef LT_OBJDIR])
+m4trace:configure.ac:14: -1- AC_SUBST([lt_ECHO])
+m4trace:configure.ac:14: -1- AC_SUBST_TRACE([lt_ECHO])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^lt_ECHO$])
+m4trace:configure.ac:14: -1- LT_SUPPORTED_TAG([CC])
+m4trace:configure.ac:14: -1- AC_SUBST([DSYMUTIL])
+m4trace:configure.ac:14: -1- AC_SUBST_TRACE([DSYMUTIL])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^DSYMUTIL$])
+m4trace:configure.ac:14: -1- AC_SUBST([NMEDIT])
+m4trace:configure.ac:14: -1- AC_SUBST_TRACE([NMEDIT])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^NMEDIT$])
+m4trace:configure.ac:14: -1- AC_SUBST([LIPO])
+m4trace:configure.ac:14: -1- AC_SUBST_TRACE([LIPO])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^LIPO$])
+m4trace:configure.ac:14: -1- AC_SUBST([OTOOL])
+m4trace:configure.ac:14: -1- AC_SUBST_TRACE([OTOOL])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^OTOOL$])
+m4trace:configure.ac:14: -1- AC_SUBST([OTOOL64])
+m4trace:configure.ac:14: -1- AC_SUBST_TRACE([OTOOL64])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^OTOOL64$])
+m4trace:configure.ac:14: -1- AH_OUTPUT([HAVE_DLFCN_H], [/* Define to 1 if you have the <dlfcn.h> header file. */
+@%:@undef HAVE_DLFCN_H])
+m4trace:configure.ac:14: -1- AC_SUBST([CPP])
+m4trace:configure.ac:14: -1- AC_SUBST_TRACE([CPP])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^CPP$])
+m4trace:configure.ac:14: -1- AC_SUBST([CPPFLAGS])
+m4trace:configure.ac:14: -1- AC_SUBST_TRACE([CPPFLAGS])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^CPPFLAGS$])
+m4trace:configure.ac:14: -1- AC_SUBST([CPP])
+m4trace:configure.ac:14: -1- AC_SUBST_TRACE([CPP])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^CPP$])
+m4trace:configure.ac:14: -1- AC_DEFINE_TRACE_LITERAL([STDC_HEADERS])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^STDC_HEADERS$])
+m4trace:configure.ac:14: -1- AH_OUTPUT([STDC_HEADERS], [/* Define to 1 if you have the ANSI C header files. */
+@%:@undef STDC_HEADERS])
+m4trace:configure.ac:14: -1- AH_OUTPUT([HAVE_SYS_TYPES_H], [/* Define to 1 if you have the <sys/types.h> header file. */
+@%:@undef HAVE_SYS_TYPES_H])
+m4trace:configure.ac:14: -1- AH_OUTPUT([HAVE_SYS_STAT_H], [/* Define to 1 if you have the <sys/stat.h> header file. */
+@%:@undef HAVE_SYS_STAT_H])
+m4trace:configure.ac:14: -1- AH_OUTPUT([HAVE_STDLIB_H], [/* Define to 1 if you have the <stdlib.h> header file. */
+@%:@undef HAVE_STDLIB_H])
+m4trace:configure.ac:14: -1- AH_OUTPUT([HAVE_STRING_H], [/* Define to 1 if you have the <string.h> header file. */
+@%:@undef HAVE_STRING_H])
+m4trace:configure.ac:14: -1- AH_OUTPUT([HAVE_MEMORY_H], [/* Define to 1 if you have the <memory.h> header file. */
+@%:@undef HAVE_MEMORY_H])
+m4trace:configure.ac:14: -1- AH_OUTPUT([HAVE_STRINGS_H], [/* Define to 1 if you have the <strings.h> header file. */
+@%:@undef HAVE_STRINGS_H])
+m4trace:configure.ac:14: -1- AH_OUTPUT([HAVE_INTTYPES_H], [/* Define to 1 if you have the <inttypes.h> header file. */
+@%:@undef HAVE_INTTYPES_H])
+m4trace:configure.ac:14: -1- AH_OUTPUT([HAVE_STDINT_H], [/* Define to 1 if you have the <stdint.h> header file. */
+@%:@undef HAVE_STDINT_H])
+m4trace:configure.ac:14: -1- AH_OUTPUT([HAVE_UNISTD_H], [/* Define to 1 if you have the <unistd.h> header file. */
+@%:@undef HAVE_UNISTD_H])
+m4trace:configure.ac:14: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DLFCN_H])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^HAVE_DLFCN_H$])
+m4trace:configure.ac:14: -1- LT_SUPPORTED_TAG([CXX])
+m4trace:configure.ac:14: -1- AC_SUBST([CXX])
+m4trace:configure.ac:14: -1- AC_SUBST_TRACE([CXX])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^CXX$])
+m4trace:configure.ac:14: -1- AC_SUBST([CXXFLAGS])
+m4trace:configure.ac:14: -1- AC_SUBST_TRACE([CXXFLAGS])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^CXXFLAGS$])
+m4trace:configure.ac:14: -1- AC_SUBST([LDFLAGS])
+m4trace:configure.ac:14: -1- AC_SUBST_TRACE([LDFLAGS])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^LDFLAGS$])
+m4trace:configure.ac:14: -1- AC_SUBST([LIBS])
+m4trace:configure.ac:14: -1- AC_SUBST_TRACE([LIBS])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^LIBS$])
+m4trace:configure.ac:14: -1- AC_SUBST([CPPFLAGS])
+m4trace:configure.ac:14: -1- AC_SUBST_TRACE([CPPFLAGS])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^CPPFLAGS$])
+m4trace:configure.ac:14: -1- AC_SUBST([CXX])
+m4trace:configure.ac:14: -1- AC_SUBST_TRACE([CXX])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^CXX$])
+m4trace:configure.ac:14: -1- AC_SUBST([ac_ct_CXX])
+m4trace:configure.ac:14: -1- AC_SUBST_TRACE([ac_ct_CXX])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^ac_ct_CXX$])
+m4trace:configure.ac:14: -1- AC_SUBST([CXXDEPMODE], [depmode=$am_cv_CXX_dependencies_compiler_type])
+m4trace:configure.ac:14: -1- AC_SUBST_TRACE([CXXDEPMODE])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^CXXDEPMODE$])
+m4trace:configure.ac:14: -1- AM_CONDITIONAL([am__fastdepCXX], [
+ test "x$enable_dependency_tracking" != xno \
+ && test "$am_cv_CXX_dependencies_compiler_type" = gcc3])
+m4trace:configure.ac:14: -1- AC_SUBST([am__fastdepCXX_TRUE])
+m4trace:configure.ac:14: -1- AC_SUBST_TRACE([am__fastdepCXX_TRUE])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^am__fastdepCXX_TRUE$])
+m4trace:configure.ac:14: -1- AC_SUBST([am__fastdepCXX_FALSE])
+m4trace:configure.ac:14: -1- AC_SUBST_TRACE([am__fastdepCXX_FALSE])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^am__fastdepCXX_FALSE$])
+m4trace:configure.ac:14: -1- _AM_SUBST_NOTMAKE([am__fastdepCXX_TRUE])
+m4trace:configure.ac:14: -1- _AM_SUBST_NOTMAKE([am__fastdepCXX_FALSE])
+m4trace:configure.ac:14: -1- AC_SUBST([CXXCPP])
+m4trace:configure.ac:14: -1- AC_SUBST_TRACE([CXXCPP])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^CXXCPP$])
+m4trace:configure.ac:14: -1- AC_SUBST([CPPFLAGS])
+m4trace:configure.ac:14: -1- AC_SUBST_TRACE([CPPFLAGS])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^CPPFLAGS$])
+m4trace:configure.ac:14: -1- AC_SUBST([CXXCPP])
+m4trace:configure.ac:14: -1- AC_SUBST_TRACE([CXXCPP])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^CXXCPP$])
+m4trace:configure.ac:14: -1- AC_SUBST([LD])
+m4trace:configure.ac:14: -1- AC_SUBST_TRACE([LD])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^LD$])
+m4trace:configure.ac:15: -1- AC_SUBST([LN_S], [$as_ln_s])
+m4trace:configure.ac:15: -1- AC_SUBST_TRACE([LN_S])
+m4trace:configure.ac:15: -1- m4_pattern_allow([^LN_S$])
+m4trace:configure.ac:20: -1- AC_SUBST([JADE])
+m4trace:configure.ac:20: -1- AC_SUBST_TRACE([JADE])
+m4trace:configure.ac:20: -1- m4_pattern_allow([^JADE$])
+m4trace:configure.ac:22: -1- AC_SUBST([NSGMLS])
+m4trace:configure.ac:22: -1- AC_SUBST_TRACE([NSGMLS])
+m4trace:configure.ac:22: -1- m4_pattern_allow([^NSGMLS$])
+m4trace:configure.ac:22: -1- AC_SUBST([have_docbook])
+m4trace:configure.ac:22: -1- AC_SUBST_TRACE([have_docbook])
+m4trace:configure.ac:22: -1- m4_pattern_allow([^have_docbook$])
+m4trace:configure.ac:24: -1- AC_SUBST([DOCBOOKSTYLE])
+m4trace:configure.ac:24: -1- AC_SUBST_TRACE([DOCBOOKSTYLE])
+m4trace:configure.ac:24: -1- m4_pattern_allow([^DOCBOOKSTYLE$])
+m4trace:configure.ac:36: -1- AC_SUBST([DOCBOOKTARGETS])
+m4trace:configure.ac:36: -1- AC_SUBST_TRACE([DOCBOOKTARGETS])
+m4trace:configure.ac:36: -1- m4_pattern_allow([^DOCBOOKTARGETS$])
+m4trace:configure.ac:41: -1- AC_SUBST([DOXYGEN])
+m4trace:configure.ac:41: -1- AC_SUBST_TRACE([DOXYGEN])
+m4trace:configure.ac:41: -1- m4_pattern_allow([^DOXYGEN$])
+m4trace:configure.ac:42: -1- AC_SUBST([DOXYGEN])
+m4trace:configure.ac:42: -1- AC_SUBST_TRACE([DOXYGEN])
+m4trace:configure.ac:42: -1- m4_pattern_allow([^DOXYGEN$])
+m4trace:configure.ac:47: -1- AC_SUBST([DOT])
+m4trace:configure.ac:47: -1- AC_SUBST_TRACE([DOT])
+m4trace:configure.ac:47: -1- m4_pattern_allow([^DOT$])
+m4trace:configure.ac:48: -1- AC_SUBST([DOT])
+m4trace:configure.ac:48: -1- AC_SUBST_TRACE([DOT])
+m4trace:configure.ac:48: -1- m4_pattern_allow([^DOT$])
+m4trace:configure.ac:55: -1- AC_SUBST([HAVEDOT])
+m4trace:configure.ac:55: -1- AC_SUBST_TRACE([HAVEDOT])
+m4trace:configure.ac:55: -1- m4_pattern_allow([^HAVEDOT$])
+m4trace:configure.ac:56: -1- AC_SUBST([DOTPATH])
+m4trace:configure.ac:56: -1- AC_SUBST_TRACE([DOTPATH])
+m4trace:configure.ac:56: -1- m4_pattern_allow([^DOTPATH$])
+m4trace:configure.ac:61: -1- AC_SUBST([PERL])
+m4trace:configure.ac:61: -1- AC_SUBST_TRACE([PERL])
+m4trace:configure.ac:61: -1- m4_pattern_allow([^PERL$])
+m4trace:configure.ac:62: -1- AC_SUBST([PERL])
+m4trace:configure.ac:62: -1- AC_SUBST_TRACE([PERL])
+m4trace:configure.ac:62: -1- m4_pattern_allow([^PERL$])
+m4trace:configure.ac:72: -1- AC_SUBST([XMKMF])
+m4trace:configure.ac:72: -1- AC_SUBST_TRACE([XMKMF])
+m4trace:configure.ac:72: -1- m4_pattern_allow([^XMKMF$])
+m4trace:configure.ac:72: -1- AC_DEFINE_TRACE_LITERAL([X_DISPLAY_MISSING])
+m4trace:configure.ac:72: -1- m4_pattern_allow([^X_DISPLAY_MISSING$])
+m4trace:configure.ac:72: -1- AH_OUTPUT([X_DISPLAY_MISSING], [/* Define to 1 if the X Window System is missing or not being used. */
+@%:@undef X_DISPLAY_MISSING])
+m4trace:configure.ac:72: -1- AC_SUBST([X_CFLAGS])
+m4trace:configure.ac:72: -1- AC_SUBST_TRACE([X_CFLAGS])
+m4trace:configure.ac:72: -1- m4_pattern_allow([^X_CFLAGS$])
+m4trace:configure.ac:72: -1- AC_SUBST([X_PRE_LIBS])
+m4trace:configure.ac:72: -1- AC_SUBST_TRACE([X_PRE_LIBS])
+m4trace:configure.ac:72: -1- m4_pattern_allow([^X_PRE_LIBS$])
+m4trace:configure.ac:72: -1- AC_SUBST([X_LIBS])
+m4trace:configure.ac:72: -1- AC_SUBST_TRACE([X_LIBS])
+m4trace:configure.ac:72: -1- m4_pattern_allow([^X_LIBS$])
+m4trace:configure.ac:72: -1- AC_SUBST([X_EXTRA_LIBS])
+m4trace:configure.ac:72: -1- AC_SUBST_TRACE([X_EXTRA_LIBS])
+m4trace:configure.ac:72: -1- m4_pattern_allow([^X_EXTRA_LIBS$])
+m4trace:configure.ac:114: -1- AC_DEFINE_TRACE_LITERAL([X_DISPLAY_MISSING])
+m4trace:configure.ac:114: -1- m4_pattern_allow([^X_DISPLAY_MISSING$])
+m4trace:configure.ac:114: -1- AH_OUTPUT([X_DISPLAY_MISSING], [/* Define to 1 if the X Window System is missing or not being used. */
+@%:@undef X_DISPLAY_MISSING])
+m4trace:configure.ac:114: -1- AC_SUBST([X_CFLAGS])
+m4trace:configure.ac:114: -1- AC_SUBST_TRACE([X_CFLAGS])
+m4trace:configure.ac:114: -1- m4_pattern_allow([^X_CFLAGS$])
+m4trace:configure.ac:114: -1- AC_SUBST([X_PRE_LIBS])
+m4trace:configure.ac:114: -1- AC_SUBST_TRACE([X_PRE_LIBS])
+m4trace:configure.ac:114: -1- m4_pattern_allow([^X_PRE_LIBS$])
+m4trace:configure.ac:114: -1- AC_SUBST([X_LIBS])
+m4trace:configure.ac:114: -1- AC_SUBST_TRACE([X_LIBS])
+m4trace:configure.ac:114: -1- m4_pattern_allow([^X_LIBS$])
+m4trace:configure.ac:114: -1- AC_SUBST([X_EXTRA_LIBS])
+m4trace:configure.ac:114: -1- AC_SUBST_TRACE([X_EXTRA_LIBS])
+m4trace:configure.ac:114: -1- m4_pattern_allow([^X_EXTRA_LIBS$])
+m4trace:configure.ac:123: -1- _m4_warn([obsolete], [The macro `AC_LANG_SAVE' is obsolete.
+You should run autoupdate.], [../../lib/autoconf/lang.m4:126: AC_LANG_SAVE is expanded from...
+m4/alsa.m4:15: AM_PATH_ALSA is expanded from...
+configure.ac:123: the top level])
+m4trace:configure.ac:123: -1- _m4_warn([obsolete], [The macro `AC_LANG_C' is obsolete.
+You should run autoupdate.], [../../lib/autoconf/c.m4:73: AC_LANG_C is expanded from...
+m4/alsa.m4:15: AM_PATH_ALSA is expanded from...
+configure.ac:123: the top level])
+m4trace:configure.ac:123: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete.
+You should run autoupdate.], [../../lib/autoconf/general.m4:2581: AC_TRY_COMPILE is expanded from...
+m4/alsa.m4:15: AM_PATH_ALSA is expanded from...
+configure.ac:123: the top level])
+m4trace:configure.ac:123: -1- _m4_warn([obsolete], [The macro `AC_LANG_RESTORE' is obsolete.
+You should run autoupdate.], [../../lib/autoconf/lang.m4:135: AC_LANG_RESTORE is expanded from...
+m4/alsa.m4:15: AM_PATH_ALSA is expanded from...
+configure.ac:123: the top level])
+m4trace:configure.ac:123: -1- _m4_warn([obsolete], [The macro `AC_LANG_SAVE' is obsolete.
+You should run autoupdate.], [../../lib/autoconf/lang.m4:126: AC_LANG_SAVE is expanded from...
+m4/alsa.m4:15: AM_PATH_ALSA is expanded from...
+configure.ac:123: the top level])
+m4trace:configure.ac:123: -1- _m4_warn([obsolete], [The macro `AC_LANG_CPLUSPLUS' is obsolete.
+You should run autoupdate.], [../../lib/autoconf/c.m4:252: AC_LANG_CPLUSPLUS is expanded from...
+m4/alsa.m4:15: AM_PATH_ALSA is expanded from...
+configure.ac:123: the top level])
+m4trace:configure.ac:123: -1- AH_OUTPUT([HAVE_LIBASOUND], [/* Define to 1 if you have the `asound\' library (-lasound). */
+@%:@undef HAVE_LIBASOUND])
+m4trace:configure.ac:123: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LIBASOUND])
+m4trace:configure.ac:123: -1- m4_pattern_allow([^HAVE_LIBASOUND$])
+m4trace:configure.ac:123: -1- _m4_warn([obsolete], [The macro `AC_LANG_RESTORE' is obsolete.
+You should run autoupdate.], [../../lib/autoconf/lang.m4:135: AC_LANG_RESTORE is expanded from...
+m4/alsa.m4:15: AM_PATH_ALSA is expanded from...
+configure.ac:123: the top level])
+m4trace:configure.ac:123: -1- AC_SUBST([ALSA_CFLAGS])
+m4trace:configure.ac:123: -1- AC_SUBST_TRACE([ALSA_CFLAGS])
+m4trace:configure.ac:123: -1- m4_pattern_allow([^ALSA_CFLAGS$])
+m4trace:configure.ac:123: -1- AC_SUBST([ALSA_LIBS])
+m4trace:configure.ac:123: -1- AC_SUBST_TRACE([ALSA_LIBS])
+m4trace:configure.ac:123: -1- m4_pattern_allow([^ALSA_LIBS$])
+m4trace:configure.ac:152: -1- AM_CONDITIONAL([ENABLEFLUIDSYNTH], [test "$muse_enable_fluidlib" = "yes"])
+m4trace:configure.ac:152: -1- AC_SUBST([ENABLEFLUIDSYNTH_TRUE])
+m4trace:configure.ac:152: -1- AC_SUBST_TRACE([ENABLEFLUIDSYNTH_TRUE])
+m4trace:configure.ac:152: -1- m4_pattern_allow([^ENABLEFLUIDSYNTH_TRUE$])
+m4trace:configure.ac:152: -1- AC_SUBST([ENABLEFLUIDSYNTH_FALSE])
+m4trace:configure.ac:152: -1- AC_SUBST_TRACE([ENABLEFLUIDSYNTH_FALSE])
+m4trace:configure.ac:152: -1- m4_pattern_allow([^ENABLEFLUIDSYNTH_FALSE$])
+m4trace:configure.ac:152: -1- _AM_SUBST_NOTMAKE([ENABLEFLUIDSYNTH_TRUE])
+m4trace:configure.ac:152: -1- _AM_SUBST_NOTMAKE([ENABLEFLUIDSYNTH_FALSE])
+m4trace:configure.ac:153: -1- m4_pattern_forbid([^_?PKG_[A-Z_]+$])
+m4trace:configure.ac:153: -1- m4_pattern_allow([^PKG_CONFIG(_PATH)?$])
+m4trace:configure.ac:153: -1- AC_SUBST([PKG_CONFIG])
+m4trace:configure.ac:153: -1- AC_SUBST_TRACE([PKG_CONFIG])
+m4trace:configure.ac:153: -1- m4_pattern_allow([^PKG_CONFIG$])
+m4trace:configure.ac:153: -1- AC_SUBST([PKG_CONFIG])
+m4trace:configure.ac:153: -1- AC_SUBST_TRACE([PKG_CONFIG])
+m4trace:configure.ac:153: -1- m4_pattern_allow([^PKG_CONFIG$])
+m4trace:configure.ac:153: -1- AC_SUBST([Fluidsynth_CFLAGS])
+m4trace:configure.ac:153: -1- AC_SUBST_TRACE([Fluidsynth_CFLAGS])
+m4trace:configure.ac:153: -1- m4_pattern_allow([^Fluidsynth_CFLAGS$])
+m4trace:configure.ac:153: -1- AC_SUBST([Fluidsynth_LIBS])
+m4trace:configure.ac:153: -1- AC_SUBST_TRACE([Fluidsynth_LIBS])
+m4trace:configure.ac:153: -1- m4_pattern_allow([^Fluidsynth_LIBS$])
+m4trace:configure.ac:153: -1- AC_DEFINE_TRACE_LITERAL([ENABLEFLUIDSYNTH])
+m4trace:configure.ac:153: -1- m4_pattern_allow([^ENABLEFLUIDSYNTH$])
+m4trace:configure.ac:153: -1- AH_OUTPUT([ENABLEFLUIDSYNTH], [/* Compile fluidsynth */
+@%:@undef ENABLEFLUIDSYNTH])
+m4trace:configure.ac:158: -1- AC_SUBST([FLUIDSYNTHDIRS])
+m4trace:configure.ac:158: -1- AC_SUBST_TRACE([FLUIDSYNTHDIRS])
+m4trace:configure.ac:158: -1- m4_pattern_allow([^FLUIDSYNTHDIRS$])
+m4trace:configure.ac:159: -1- AC_SUBST([synth_fluidsynth])
+m4trace:configure.ac:159: -1- AC_SUBST_TRACE([synth_fluidsynth])
+m4trace:configure.ac:159: -1- m4_pattern_allow([^synth_fluidsynth$])
+m4trace:configure.ac:160: -1- AC_SUBST([synth_fluid])
+m4trace:configure.ac:160: -1- AC_SUBST_TRACE([synth_fluid])
+m4trace:configure.ac:160: -1- m4_pattern_allow([^synth_fluid$])
+m4trace:configure.ac:170: -1- AC_SUBST([SNDFILE_CFLAGS])
+m4trace:configure.ac:170: -1- AC_SUBST_TRACE([SNDFILE_CFLAGS])
+m4trace:configure.ac:170: -1- m4_pattern_allow([^SNDFILE_CFLAGS$])
+m4trace:configure.ac:170: -1- AC_SUBST([SNDFILE_LIBS])
+m4trace:configure.ac:170: -1- AC_SUBST_TRACE([SNDFILE_LIBS])
+m4trace:configure.ac:170: -1- m4_pattern_allow([^SNDFILE_LIBS$])
+m4trace:configure.ac:178: -1- AC_SUBST([SAMPLERATE_CFLAGS])
+m4trace:configure.ac:178: -1- AC_SUBST_TRACE([SAMPLERATE_CFLAGS])
+m4trace:configure.ac:178: -1- m4_pattern_allow([^SAMPLERATE_CFLAGS$])
+m4trace:configure.ac:178: -1- AC_SUBST([SAMPLERATE_LIBS])
+m4trace:configure.ac:178: -1- AC_SUBST_TRACE([SAMPLERATE_LIBS])
+m4trace:configure.ac:178: -1- m4_pattern_allow([^SAMPLERATE_LIBS$])
+m4trace:configure.ac:196: -1- AC_SUBST([UUID_CFLAGS])
+m4trace:configure.ac:196: -1- AC_SUBST_TRACE([UUID_CFLAGS])
+m4trace:configure.ac:196: -1- m4_pattern_allow([^UUID_CFLAGS$])
+m4trace:configure.ac:197: -1- AC_SUBST([UUID_LIBS])
+m4trace:configure.ac:197: -1- AC_SUBST_TRACE([UUID_LIBS])
+m4trace:configure.ac:197: -1- m4_pattern_allow([^UUID_LIBS$])
+m4trace:configure.ac:208: -1- AC_SUBST([JACK_CFLAGS])
+m4trace:configure.ac:208: -1- AC_SUBST_TRACE([JACK_CFLAGS])
+m4trace:configure.ac:208: -1- m4_pattern_allow([^JACK_CFLAGS$])
+m4trace:configure.ac:208: -1- AC_SUBST([JACK_LIBS])
+m4trace:configure.ac:208: -1- AC_SUBST_TRACE([JACK_LIBS])
+m4trace:configure.ac:208: -1- m4_pattern_allow([^JACK_LIBS$])
+m4trace:configure.ac:234: -1- AC_SUBST([LASH_CFLAGS])
+m4trace:configure.ac:234: -1- AC_SUBST_TRACE([LASH_CFLAGS])
+m4trace:configure.ac:234: -1- m4_pattern_allow([^LASH_CFLAGS$])
+m4trace:configure.ac:234: -1- AC_SUBST([LASH_LIBS])
+m4trace:configure.ac:234: -1- AC_SUBST_TRACE([LASH_LIBS])
+m4trace:configure.ac:234: -1- m4_pattern_allow([^LASH_LIBS$])
+m4trace:configure.ac:235: -1- AC_SUBST([LASH_CFLAGS])
+m4trace:configure.ac:235: -1- AC_SUBST_TRACE([LASH_CFLAGS])
+m4trace:configure.ac:235: -1- m4_pattern_allow([^LASH_CFLAGS$])
+m4trace:configure.ac:236: -1- AC_SUBST([LASH_LIBS])
+m4trace:configure.ac:236: -1- AC_SUBST_TRACE([LASH_LIBS])
+m4trace:configure.ac:236: -1- m4_pattern_allow([^LASH_LIBS$])
+m4trace:configure.ac:239: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LASH])
+m4trace:configure.ac:239: -1- m4_pattern_allow([^HAVE_LASH$])
+m4trace:configure.ac:239: -1- AH_OUTPUT([HAVE_LASH], [/* whether or not we are supporting lash */
+@%:@undef HAVE_LASH])
+m4trace:configure.ac:241: -1- AC_DEFINE_TRACE_LITERAL([LASH_VERSION])
+m4trace:configure.ac:241: -1- m4_pattern_allow([^LASH_VERSION$])
+m4trace:configure.ac:241: -1- AH_OUTPUT([LASH_VERSION], [/* The version of lash we\'re compiling against */
+@%:@undef LASH_VERSION])
+m4trace:configure.ac:247: -1- AM_CONDITIONAL([HAVE_LASH], [test "$LASH_FOUND" = "yes"])
+m4trace:configure.ac:247: -1- AC_SUBST([HAVE_LASH_TRUE])
+m4trace:configure.ac:247: -1- AC_SUBST_TRACE([HAVE_LASH_TRUE])
+m4trace:configure.ac:247: -1- m4_pattern_allow([^HAVE_LASH_TRUE$])
+m4trace:configure.ac:247: -1- AC_SUBST([HAVE_LASH_FALSE])
+m4trace:configure.ac:247: -1- AC_SUBST_TRACE([HAVE_LASH_FALSE])
+m4trace:configure.ac:247: -1- m4_pattern_allow([^HAVE_LASH_FALSE$])
+m4trace:configure.ac:247: -1- _AM_SUBST_NOTMAKE([HAVE_LASH_TRUE])
+m4trace:configure.ac:247: -1- _AM_SUBST_NOTMAKE([HAVE_LASH_FALSE])
+m4trace:configure.ac:260: -1- AC_DEFINE_TRACE_LITERAL([RTCAP])
+m4trace:configure.ac:260: -1- m4_pattern_allow([^RTCAP$])
+m4trace:configure.ac:260: -1- AH_OUTPUT([RTCAP], [/* Use givertcap */
+@%:@undef RTCAP])
+m4trace:configure.ac:279: -1- AM_CONDITIONAL([RTCAP], [test "$report_rtcap" = "yes"])
+m4trace:configure.ac:279: -1- AC_SUBST([RTCAP_TRUE])
+m4trace:configure.ac:279: -1- AC_SUBST_TRACE([RTCAP_TRUE])
+m4trace:configure.ac:279: -1- m4_pattern_allow([^RTCAP_TRUE$])
+m4trace:configure.ac:279: -1- AC_SUBST([RTCAP_FALSE])
+m4trace:configure.ac:279: -1- AC_SUBST_TRACE([RTCAP_FALSE])
+m4trace:configure.ac:279: -1- m4_pattern_allow([^RTCAP_FALSE$])
+m4trace:configure.ac:279: -1- _AM_SUBST_NOTMAKE([RTCAP_TRUE])
+m4trace:configure.ac:279: -1- _AM_SUBST_NOTMAKE([RTCAP_FALSE])
+m4trace:configure.ac:280: -1- AC_SUBST([GIVERTCAP])
+m4trace:configure.ac:280: -1- AC_SUBST_TRACE([GIVERTCAP])
+m4trace:configure.ac:280: -1- m4_pattern_allow([^GIVERTCAP$])
+m4trace:configure.ac:301: -1- AC_SUBST([SUIDINSTALL])
+m4trace:configure.ac:301: -1- AC_SUBST_TRACE([SUIDINSTALL])
+m4trace:configure.ac:301: -1- m4_pattern_allow([^SUIDINSTALL$])
+m4trace:configure.ac:321: -1- AC_SUBST([SUIDBUILD])
+m4trace:configure.ac:321: -1- AC_SUBST_TRACE([SUIDBUILD])
+m4trace:configure.ac:321: -1- m4_pattern_allow([^SUIDBUILD$])
+m4trace:configure.ac:344: -1- AC_SUBST([DOXYGEN_TREEVIEW])
+m4trace:configure.ac:344: -1- AC_SUBST_TRACE([DOXYGEN_TREEVIEW])
+m4trace:configure.ac:344: -1- m4_pattern_allow([^DOXYGEN_TREEVIEW$])
+m4trace:configure.ac:409: -1- AC_SUBST([PCH])
+m4trace:configure.ac:409: -1- AC_SUBST_TRACE([PCH])
+m4trace:configure.ac:409: -1- m4_pattern_allow([^PCH$])
+m4trace:configure.ac:409: -1- AC_DEFINE_TRACE_LITERAL([PCH])
+m4trace:configure.ac:409: -1- m4_pattern_allow([^PCH$])
+m4trace:configure.ac:409: -1- AH_OUTPUT([PCH], [/* whether or not we use precompiled headers */
+@%:@undef PCH])
+m4trace:configure.ac:425: -1- AM_CONDITIONAL([PCH], [test "$PCH" = "yes"])
+m4trace:configure.ac:425: -1- AC_SUBST([PCH_TRUE])
+m4trace:configure.ac:425: -1- AC_SUBST_TRACE([PCH_TRUE])
+m4trace:configure.ac:425: -1- m4_pattern_allow([^PCH_TRUE$])
+m4trace:configure.ac:425: -1- AC_SUBST([PCH_FALSE])
+m4trace:configure.ac:425: -1- AC_SUBST_TRACE([PCH_FALSE])
+m4trace:configure.ac:425: -1- m4_pattern_allow([^PCH_FALSE$])
+m4trace:configure.ac:425: -1- _AM_SUBST_NOTMAKE([PCH_TRUE])
+m4trace:configure.ac:425: -1- _AM_SUBST_NOTMAKE([PCH_FALSE])
+m4trace:configure.ac:452: -1- AC_SUBST([USE_SSE])
+m4trace:configure.ac:452: -1- AC_SUBST_TRACE([USE_SSE])
+m4trace:configure.ac:452: -1- m4_pattern_allow([^USE_SSE$])
+m4trace:configure.ac:452: -1- AC_DEFINE_TRACE_LITERAL([USE_SSE])
+m4trace:configure.ac:452: -1- m4_pattern_allow([^USE_SSE$])
+m4trace:configure.ac:452: -1- AH_OUTPUT([USE_SSE], [/* whether or not to enable SSE */
+@%:@undef USE_SSE])
+m4trace:configure.ac:469: -1- AM_CONDITIONAL([USE_SSE], [test "$USE_SSE" = "yes"])
+m4trace:configure.ac:469: -1- AC_SUBST([USE_SSE_TRUE])
+m4trace:configure.ac:469: -1- AC_SUBST_TRACE([USE_SSE_TRUE])
+m4trace:configure.ac:469: -1- m4_pattern_allow([^USE_SSE_TRUE$])
+m4trace:configure.ac:469: -1- AC_SUBST([USE_SSE_FALSE])
+m4trace:configure.ac:469: -1- AC_SUBST_TRACE([USE_SSE_FALSE])
+m4trace:configure.ac:469: -1- m4_pattern_allow([^USE_SSE_FALSE$])
+m4trace:configure.ac:469: -1- _AM_SUBST_NOTMAKE([USE_SSE_TRUE])
+m4trace:configure.ac:469: -1- _AM_SUBST_NOTMAKE([USE_SSE_FALSE])
+m4trace:configure.ac:502: -1- AC_SUBST([PYTHON])
+m4trace:configure.ac:502: -1- AC_SUBST_TRACE([PYTHON])
+m4trace:configure.ac:502: -1- m4_pattern_allow([^PYTHON$])
+m4trace:configure.ac:502: -1- AC_SUBST([PYTHON_VERSION], [$am_cv_python_version])
+m4trace:configure.ac:502: -1- AC_SUBST_TRACE([PYTHON_VERSION])
+m4trace:configure.ac:502: -1- m4_pattern_allow([^PYTHON_VERSION$])
+m4trace:configure.ac:502: -1- AC_SUBST([PYTHON_PREFIX], ['${prefix}'])
+m4trace:configure.ac:502: -1- AC_SUBST_TRACE([PYTHON_PREFIX])
+m4trace:configure.ac:502: -1- m4_pattern_allow([^PYTHON_PREFIX$])
+m4trace:configure.ac:502: -1- AC_SUBST([PYTHON_EXEC_PREFIX], ['${exec_prefix}'])
+m4trace:configure.ac:502: -1- AC_SUBST_TRACE([PYTHON_EXEC_PREFIX])
+m4trace:configure.ac:502: -1- m4_pattern_allow([^PYTHON_EXEC_PREFIX$])
+m4trace:configure.ac:502: -1- AC_SUBST([PYTHON_PLATFORM], [$am_cv_python_platform])
+m4trace:configure.ac:502: -1- AC_SUBST_TRACE([PYTHON_PLATFORM])
+m4trace:configure.ac:502: -1- m4_pattern_allow([^PYTHON_PLATFORM$])
+m4trace:configure.ac:502: -1- AC_SUBST([pythondir], [$am_cv_python_pythondir])
+m4trace:configure.ac:502: -1- AC_SUBST_TRACE([pythondir])
+m4trace:configure.ac:502: -1- m4_pattern_allow([^pythondir$])
+m4trace:configure.ac:502: -1- AC_SUBST([pkgpythondir], [\${pythondir}/$PACKAGE])
+m4trace:configure.ac:502: -1- AC_SUBST_TRACE([pkgpythondir])
+m4trace:configure.ac:502: -1- m4_pattern_allow([^pkgpythondir$])
+m4trace:configure.ac:502: -1- AC_SUBST([pyexecdir], [$am_cv_python_pyexecdir])
+m4trace:configure.ac:502: -1- AC_SUBST_TRACE([pyexecdir])
+m4trace:configure.ac:502: -1- m4_pattern_allow([^pyexecdir$])
+m4trace:configure.ac:502: -1- AC_SUBST([pkgpyexecdir], [\${pyexecdir}/$PACKAGE])
+m4trace:configure.ac:502: -1- AC_SUBST_TRACE([pkgpyexecdir])
+m4trace:configure.ac:502: -1- m4_pattern_allow([^pkgpyexecdir$])
+m4trace:configure.ac:539: -1- AM_CONDITIONAL([ENABLE_PYTHON], [test "$enable_python" = "yes"])
+m4trace:configure.ac:539: -1- AC_SUBST([ENABLE_PYTHON_TRUE])
+m4trace:configure.ac:539: -1- AC_SUBST_TRACE([ENABLE_PYTHON_TRUE])
+m4trace:configure.ac:539: -1- m4_pattern_allow([^ENABLE_PYTHON_TRUE$])
+m4trace:configure.ac:539: -1- AC_SUBST([ENABLE_PYTHON_FALSE])
+m4trace:configure.ac:539: -1- AC_SUBST_TRACE([ENABLE_PYTHON_FALSE])
+m4trace:configure.ac:539: -1- m4_pattern_allow([^ENABLE_PYTHON_FALSE$])
+m4trace:configure.ac:539: -1- _AM_SUBST_NOTMAKE([ENABLE_PYTHON_TRUE])
+m4trace:configure.ac:539: -1- _AM_SUBST_NOTMAKE([ENABLE_PYTHON_FALSE])
+m4trace:configure.ac:540: -1- AC_SUBST([PYTHON_VERSION])
+m4trace:configure.ac:540: -1- AC_SUBST_TRACE([PYTHON_VERSION])
+m4trace:configure.ac:540: -1- m4_pattern_allow([^PYTHON_VERSION$])
+m4trace:configure.ac:541: -1- AC_SUBST([PYTHON_INCLUDES])
+m4trace:configure.ac:541: -1- AC_SUBST_TRACE([PYTHON_INCLUDES])
+m4trace:configure.ac:541: -1- m4_pattern_allow([^PYTHON_INCLUDES$])
+m4trace:configure.ac:542: -1- AC_SUBST([PYTHON_LIB])
+m4trace:configure.ac:542: -1- AC_SUBST_TRACE([PYTHON_LIB])
+m4trace:configure.ac:542: -1- m4_pattern_allow([^PYTHON_LIB$])
+m4trace:configure.ac:583: -1- AC_SUBST([FST_CFLAGS])
+m4trace:configure.ac:583: -1- AC_SUBST_TRACE([FST_CFLAGS])
+m4trace:configure.ac:583: -1- m4_pattern_allow([^FST_CFLAGS$])
+m4trace:configure.ac:583: -1- AC_SUBST([FST_LIBS])
+m4trace:configure.ac:583: -1- AC_SUBST_TRACE([FST_LIBS])
+m4trace:configure.ac:583: -1- m4_pattern_allow([^FST_LIBS$])
+m4trace:configure.ac:591: -1- AC_DEFINE_TRACE_LITERAL([VST_SUPPORT])
+m4trace:configure.ac:591: -1- m4_pattern_allow([^VST_SUPPORT$])
+m4trace:configure.ac:591: -1- AH_OUTPUT([VST_SUPPORT], [/* support for VST/win plugins */
+@%:@undef VST_SUPPORT])
+m4trace:configure.ac:594: -1- AM_CONDITIONAL([VST_SUPPORT], [test x$vst_possible = xyes -a x$vst_requested = xyes])
+m4trace:configure.ac:594: -1- AC_SUBST([VST_SUPPORT_TRUE])
+m4trace:configure.ac:594: -1- AC_SUBST_TRACE([VST_SUPPORT_TRUE])
+m4trace:configure.ac:594: -1- m4_pattern_allow([^VST_SUPPORT_TRUE$])
+m4trace:configure.ac:594: -1- AC_SUBST([VST_SUPPORT_FALSE])
+m4trace:configure.ac:594: -1- AC_SUBST_TRACE([VST_SUPPORT_FALSE])
+m4trace:configure.ac:594: -1- m4_pattern_allow([^VST_SUPPORT_FALSE$])
+m4trace:configure.ac:594: -1- _AM_SUBST_NOTMAKE([VST_SUPPORT_TRUE])
+m4trace:configure.ac:594: -1- _AM_SUBST_NOTMAKE([VST_SUPPORT_FALSE])
+m4trace:configure.ac:616: -1- AC_SUBST([LO_CFLAGS])
+m4trace:configure.ac:616: -1- AC_SUBST_TRACE([LO_CFLAGS])
+m4trace:configure.ac:616: -1- m4_pattern_allow([^LO_CFLAGS$])
+m4trace:configure.ac:616: -1- AC_SUBST([LO_LIBS])
+m4trace:configure.ac:616: -1- AC_SUBST_TRACE([LO_LIBS])
+m4trace:configure.ac:616: -1- m4_pattern_allow([^LO_LIBS$])
+m4trace:configure.ac:627: -1- AC_SUBST([LO_CFLAGS])
+m4trace:configure.ac:627: -1- AC_SUBST_TRACE([LO_CFLAGS])
+m4trace:configure.ac:627: -1- m4_pattern_allow([^LO_CFLAGS$])
+m4trace:configure.ac:628: -1- AC_SUBST([LO_LIBS])
+m4trace:configure.ac:628: -1- AC_SUBST_TRACE([LO_LIBS])
+m4trace:configure.ac:628: -1- m4_pattern_allow([^LO_LIBS$])
+m4trace:configure.ac:629: -1- AC_DEFINE_TRACE_LITERAL([OSC_SUPPORT])
+m4trace:configure.ac:629: -1- m4_pattern_allow([^OSC_SUPPORT$])
+m4trace:configure.ac:629: -1- AH_OUTPUT([OSC_SUPPORT], [/* support for OSC */
+@%:@undef OSC_SUPPORT])
+m4trace:configure.ac:632: -1- AM_CONDITIONAL([OSC_SUPPORT], [test x$LO_LIB_FOUND = xyes])
+m4trace:configure.ac:632: -1- AC_SUBST([OSC_SUPPORT_TRUE])
+m4trace:configure.ac:632: -1- AC_SUBST_TRACE([OSC_SUPPORT_TRUE])
+m4trace:configure.ac:632: -1- m4_pattern_allow([^OSC_SUPPORT_TRUE$])
+m4trace:configure.ac:632: -1- AC_SUBST([OSC_SUPPORT_FALSE])
+m4trace:configure.ac:632: -1- AC_SUBST_TRACE([OSC_SUPPORT_FALSE])
+m4trace:configure.ac:632: -1- m4_pattern_allow([^OSC_SUPPORT_FALSE$])
+m4trace:configure.ac:632: -1- _AM_SUBST_NOTMAKE([OSC_SUPPORT_TRUE])
+m4trace:configure.ac:632: -1- _AM_SUBST_NOTMAKE([OSC_SUPPORT_FALSE])
+m4trace:configure.ac:686: -1- AC_DEFINE_TRACE_LITERAL([DSSI_SUPPORT])
+m4trace:configure.ac:686: -1- m4_pattern_allow([^DSSI_SUPPORT$])
+m4trace:configure.ac:686: -1- AH_OUTPUT([DSSI_SUPPORT], [/* support for DSSI + DSSI-Vst plugins */
+@%:@undef DSSI_SUPPORT])
+m4trace:configure.ac:690: -1- AM_CONDITIONAL([DSSI_SUPPORT], [test x$DSSI_FOUND = xyes])
+m4trace:configure.ac:690: -1- AC_SUBST([DSSI_SUPPORT_TRUE])
+m4trace:configure.ac:690: -1- AC_SUBST_TRACE([DSSI_SUPPORT_TRUE])
+m4trace:configure.ac:690: -1- m4_pattern_allow([^DSSI_SUPPORT_TRUE$])
+m4trace:configure.ac:690: -1- AC_SUBST([DSSI_SUPPORT_FALSE])
+m4trace:configure.ac:690: -1- AC_SUBST_TRACE([DSSI_SUPPORT_FALSE])
+m4trace:configure.ac:690: -1- m4_pattern_allow([^DSSI_SUPPORT_FALSE$])
+m4trace:configure.ac:690: -1- _AM_SUBST_NOTMAKE([DSSI_SUPPORT_TRUE])
+m4trace:configure.ac:690: -1- _AM_SUBST_NOTMAKE([DSSI_SUPPORT_FALSE])
+m4trace:configure.ac:707: -1- AC_DEFINE_TRACE_LITERAL([HAVE_AUDIO])
+m4trace:configure.ac:707: -1- m4_pattern_allow([^HAVE_AUDIO$])
+m4trace:configure.ac:707: -1- AH_OUTPUT([HAVE_AUDIO], [/* Make audio-specific code */
+@%:@undef HAVE_AUDIO])
+m4trace:configure.ac:708: -1- AM_CONDITIONAL([HAVE_AUDIO], [test "yes" = "yes"])
+m4trace:configure.ac:708: -1- AC_SUBST([HAVE_AUDIO_TRUE])
+m4trace:configure.ac:708: -1- AC_SUBST_TRACE([HAVE_AUDIO_TRUE])
+m4trace:configure.ac:708: -1- m4_pattern_allow([^HAVE_AUDIO_TRUE$])
+m4trace:configure.ac:708: -1- AC_SUBST([HAVE_AUDIO_FALSE])
+m4trace:configure.ac:708: -1- AC_SUBST_TRACE([HAVE_AUDIO_FALSE])
+m4trace:configure.ac:708: -1- m4_pattern_allow([^HAVE_AUDIO_FALSE$])
+m4trace:configure.ac:708: -1- _AM_SUBST_NOTMAKE([HAVE_AUDIO_TRUE])
+m4trace:configure.ac:708: -1- _AM_SUBST_NOTMAKE([HAVE_AUDIO_FALSE])
+m4trace:configure.ac:709: -1- AC_SUBST([MUSECXXFLAGS])
+m4trace:configure.ac:709: -1- AC_SUBST_TRACE([MUSECXXFLAGS])
+m4trace:configure.ac:709: -1- m4_pattern_allow([^MUSECXXFLAGS$])
+m4trace:configure.ac:710: -1- AC_SUBST([QTDIR_INC])
+m4trace:configure.ac:710: -1- AC_SUBST_TRACE([QTDIR_INC])
+m4trace:configure.ac:710: -1- m4_pattern_allow([^QTDIR_INC$])
+m4trace:configure.ac:711: -1- AC_SUBST([QT_LIBS])
+m4trace:configure.ac:711: -1- AC_SUBST_TRACE([QT_LIBS])
+m4trace:configure.ac:711: -1- m4_pattern_allow([^QT_LIBS$])
+m4trace:configure.ac:712: -1- AC_SUBST([QTDIR_BIN])
+m4trace:configure.ac:712: -1- AC_SUBST_TRACE([QTDIR_BIN])
+m4trace:configure.ac:712: -1- m4_pattern_allow([^QTDIR_BIN$])
+m4trace:configure.ac:720: -1- AC_CONFIG_FILES([
+Makefile
+m4/Makefile
+al/Makefile
+doc/Makefile
+xpm/Makefile
+demos/Makefile
+grepmidi/Makefile
+packaging/Makefile
+muse/Makefile
+muse/widgets/Makefile
+muse/master/Makefile
+muse/midiedit/Makefile
+muse/arranger/Makefile
+muse/liste/Makefile
+muse/driver/Makefile
+muse/waveedit/Makefile
+muse/ctrl/Makefile
+muse/instruments/Makefile
+muse/mixer/Makefile
+muse/cliplist/Makefile
+muse/marker/Makefile
+muse/mplugins/Makefile
+muse/remote/Makefile
+share/Makefile
+share/drummaps/Makefile
+share/html/Makefile
+share/locale/Makefile
+share/wallpapers/Makefile
+share/instruments/Makefile
+share/plugins/Makefile
+share/templates/Makefile
+share/pybridge/Makefile
+share/scripts/Makefile
+synti/Makefile
+synti/libsynti/Makefile
+synti/fluidsynth/Makefile
+synti/fluid/Makefile
+synti/organ/Makefile
+synti/s1/Makefile
+synti/vam/Makefile
+synti/deicsonze/Makefile
+synti/simpledrums/Makefile
+lib/Makefile
+lib/synthi/Makefile
+lib/plugins/Makefile
+plugins/Makefile
+plugins/freeverb/Makefile
+plugins/pandelay/Makefile
+plugins/doublechorus/Makefile
+Doxyfile
+utils/Makefile
+])
+m4trace:configure.ac:720: -1- _m4_warn([obsolete], [AC_OUTPUT should be used without arguments.
+You should run autoupdate.], [])
+m4trace:configure.ac:720: -1- AC_SUBST([LIB@&t@OBJS], [$ac_libobjs])
+m4trace:configure.ac:720: -1- AC_SUBST_TRACE([LIB@&t@OBJS])
+m4trace:configure.ac:720: -1- m4_pattern_allow([^LIB@&t@OBJS$])
+m4trace:configure.ac:720: -1- AC_SUBST([LTLIBOBJS], [$ac_ltlibobjs])
+m4trace:configure.ac:720: -1- AC_SUBST_TRACE([LTLIBOBJS])
+m4trace:configure.ac:720: -1- m4_pattern_allow([^LTLIBOBJS$])
+m4trace:configure.ac:720: -1- AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])
+m4trace:configure.ac:720: -1- AC_SUBST([am__EXEEXT_TRUE])
+m4trace:configure.ac:720: -1- AC_SUBST_TRACE([am__EXEEXT_TRUE])
+m4trace:configure.ac:720: -1- m4_pattern_allow([^am__EXEEXT_TRUE$])
+m4trace:configure.ac:720: -1- AC_SUBST([am__EXEEXT_FALSE])
+m4trace:configure.ac:720: -1- AC_SUBST_TRACE([am__EXEEXT_FALSE])
+m4trace:configure.ac:720: -1- m4_pattern_allow([^am__EXEEXT_FALSE$])
+m4trace:configure.ac:720: -1- _AM_SUBST_NOTMAKE([am__EXEEXT_TRUE])
+m4trace:configure.ac:720: -1- _AM_SUBST_NOTMAKE([am__EXEEXT_FALSE])
+m4trace:configure.ac:720: -1- AC_SUBST_TRACE([top_builddir])
+m4trace:configure.ac:720: -1- AC_SUBST_TRACE([top_build_prefix])
+m4trace:configure.ac:720: -1- AC_SUBST_TRACE([srcdir])
+m4trace:configure.ac:720: -1- AC_SUBST_TRACE([abs_srcdir])
+m4trace:configure.ac:720: -1- AC_SUBST_TRACE([top_srcdir])
+m4trace:configure.ac:720: -1- AC_SUBST_TRACE([abs_top_srcdir])
+m4trace:configure.ac:720: -1- AC_SUBST_TRACE([builddir])
+m4trace:configure.ac:720: -1- AC_SUBST_TRACE([abs_builddir])
+m4trace:configure.ac:720: -1- AC_SUBST_TRACE([abs_top_builddir])
+m4trace:configure.ac:720: -1- AC_SUBST_TRACE([INSTALL])
+m4trace:configure.ac:720: -1- AC_SUBST_TRACE([MKDIR_P])
+m4trace:configure.ac:720: -1- AC_REQUIRE_AUX_FILE([ltmain.sh])
diff --git a/muse2/autom4te.cache/traces.2 b/muse2/autom4te.cache/traces.2
new file mode 100644
index 00000000..21d0d3d4
--- /dev/null
+++ b/muse2/autom4te.cache/traces.2
@@ -0,0 +1,3053 @@
+m4trace:/usr/share/aclocal/argz.m4:12: -1- AC_DEFUN([gl_FUNC_ARGZ], [gl_PREREQ_ARGZ
+
+AC_CHECK_HEADERS([argz.h], [], [], [AC_INCLUDES_DEFAULT])
+
+AC_CHECK_TYPES([error_t],
+ [],
+ [AC_DEFINE([error_t], [int],
+ [Define to a type to use for `error_t' if it is not otherwise available.])
+ AC_DEFINE([__error_t_defined], [1], [Define so that glibc/gnulib argp.h
+ does not typedef error_t.])],
+ [#if defined(HAVE_ARGZ_H)
+# include <argz.h>
+#endif])
+
+ARGZ_H=
+AC_CHECK_FUNCS([argz_add argz_append argz_count argz_create_sep argz_insert \
+ argz_next argz_stringify], [], [ARGZ_H=argz.h; AC_LIBOBJ([argz])])
+
+dnl if have system argz functions, allow forced use of
+dnl libltdl-supplied implementation (and default to do so
+dnl on "known bad" systems). Could use a runtime check, but
+dnl (a) detecting malloc issues is notoriously unreliable
+dnl (b) only known system that declares argz functions,
+dnl provides them, yet they are broken, is cygwin
+dnl releases prior to 16-Mar-2007 (1.5.24 and earlier)
+dnl So, it's more straightforward simply to special case
+dnl this for known bad systems.
+AS_IF([test -z "$ARGZ_H"],
+ [AC_CACHE_CHECK(
+ [if argz actually works],
+ [lt_cv_sys_argz_works],
+ [[case $host_os in #(
+ *cygwin*)
+ lt_cv_sys_argz_works=no
+ if test "$cross_compiling" != no; then
+ lt_cv_sys_argz_works="guessing no"
+ else
+ lt_sed_extract_leading_digits='s/^\([0-9\.]*\).*/\1/'
+ save_IFS=$IFS
+ IFS=-.
+ set x `uname -r | sed -e "$lt_sed_extract_leading_digits"`
+ IFS=$save_IFS
+ lt_os_major=${2-0}
+ lt_os_minor=${3-0}
+ lt_os_micro=${4-0}
+ if test "$lt_os_major" -gt 1 \
+ || { test "$lt_os_major" -eq 1 \
+ && { test "$lt_os_minor" -gt 5 \
+ || { test "$lt_os_minor" -eq 5 \
+ && test "$lt_os_micro" -gt 24; }; }; }; then
+ lt_cv_sys_argz_works=yes
+ fi
+ fi
+ ;; #(
+ *) lt_cv_sys_argz_works=yes ;;
+ esac]])
+ AS_IF([test $lt_cv_sys_argz_works = yes],
+ [AC_DEFINE([HAVE_WORKING_ARGZ], 1,
+ [This value is set to 1 to indicate that the system argz facility works])],
+ [ARGZ_H=argz.h
+ AC_LIBOBJ([argz])])])
+
+AC_SUBST([ARGZ_H])
+])
+m4trace:/usr/share/aclocal/argz.m4:79: -1- AC_DEFUN([gl_PREREQ_ARGZ], [:])
+m4trace:/usr/share/aclocal/ltdl.m4:16: -1- AC_DEFUN([LT_CONFIG_LTDL_DIR], [AC_BEFORE([$0], [LTDL_INIT])
+_$0($*)
+])
+m4trace:/usr/share/aclocal/ltdl.m4:68: -1- AC_DEFUN([LTDL_CONVENIENCE], [AC_BEFORE([$0], [LTDL_INIT])dnl
+dnl Although the argument is deprecated and no longer documented,
+dnl LTDL_CONVENIENCE used to take a DIRECTORY orgument, if we have one
+dnl here make sure it is the same as any other declaration of libltdl's
+dnl location! This also ensures lt_ltdl_dir is set when configure.ac is
+dnl not yet using an explicit LT_CONFIG_LTDL_DIR.
+m4_ifval([$1], [_LT_CONFIG_LTDL_DIR([$1])])dnl
+_$0()
+])
+m4trace:/usr/share/aclocal/ltdl.m4:81: -1- AU_DEFUN([AC_LIBLTDL_CONVENIENCE], [_LT_CONFIG_LTDL_DIR([m4_default([$1], [libltdl])])
+_LTDL_CONVENIENCE])
+m4trace:/usr/share/aclocal/ltdl.m4:81: -1- AC_DEFUN([AC_LIBLTDL_CONVENIENCE], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBLTDL_CONVENIENCE' is obsolete.
+You should run autoupdate.])dnl
+_LT_CONFIG_LTDL_DIR([m4_default([$1], [libltdl])])
+_LTDL_CONVENIENCE])
+m4trace:/usr/share/aclocal/ltdl.m4:124: -1- AC_DEFUN([LTDL_INSTALLABLE], [AC_BEFORE([$0], [LTDL_INIT])dnl
+dnl Although the argument is deprecated and no longer documented,
+dnl LTDL_INSTALLABLE used to take a DIRECTORY orgument, if we have one
+dnl here make sure it is the same as any other declaration of libltdl's
+dnl location! This also ensures lt_ltdl_dir is set when configure.ac is
+dnl not yet using an explicit LT_CONFIG_LTDL_DIR.
+m4_ifval([$1], [_LT_CONFIG_LTDL_DIR([$1])])dnl
+_$0()
+])
+m4trace:/usr/share/aclocal/ltdl.m4:137: -1- AU_DEFUN([AC_LIBLTDL_INSTALLABLE], [_LT_CONFIG_LTDL_DIR([m4_default([$1], [libltdl])])
+_LTDL_INSTALLABLE])
+m4trace:/usr/share/aclocal/ltdl.m4:137: -1- AC_DEFUN([AC_LIBLTDL_INSTALLABLE], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBLTDL_INSTALLABLE' is obsolete.
+You should run autoupdate.])dnl
+_LT_CONFIG_LTDL_DIR([m4_default([$1], [libltdl])])
+_LTDL_INSTALLABLE])
+m4trace:/usr/share/aclocal/ltdl.m4:213: -1- AC_DEFUN([_LT_LIBOBJ], [
+ m4_pattern_allow([^_LT_LIBOBJS$])
+ _LT_LIBOBJS="$_LT_LIBOBJS $1.$ac_objext"
+])
+m4trace:/usr/share/aclocal/ltdl.m4:226: -1- AC_DEFUN([LTDL_INIT], [dnl Parse OPTIONS
+_LT_SET_OPTIONS([$0], [$1])
+
+dnl We need to keep our own list of libobjs separate from our parent project,
+dnl and the easiest way to do that is redefine the AC_LIBOBJs macro while
+dnl we look for our own LIBOBJs.
+m4_pushdef([AC_LIBOBJ], m4_defn([_LT_LIBOBJ]))
+m4_pushdef([AC_LIBSOURCES])
+
+dnl If not otherwise defined, default to the 1.5.x compatible subproject mode:
+m4_if(_LTDL_MODE, [],
+ [m4_define([_LTDL_MODE], m4_default([$2], [subproject]))
+ m4_if([-1], [m4_bregexp(_LTDL_MODE, [\(subproject\|\(non\)?recursive\)])],
+ [m4_fatal([unknown libltdl mode: ]_LTDL_MODE)])])
+
+AC_ARG_WITH([included_ltdl],
+ [AS_HELP_STRING([--with-included-ltdl],
+ [use the GNU ltdl sources included here])])
+
+if test "x$with_included_ltdl" != xyes; then
+ # We are not being forced to use the included libltdl sources, so
+ # decide whether there is a useful installed version we can use.
+ AC_CHECK_HEADER([ltdl.h],
+ [AC_CHECK_DECL([lt_dlinterface_register],
+ [AC_CHECK_LIB([ltdl], [lt_dladvise_preload],
+ [with_included_ltdl=no],
+ [with_included_ltdl=yes])],
+ [with_included_ltdl=yes],
+ [AC_INCLUDES_DEFAULT
+ #include <ltdl.h>])],
+ [with_included_ltdl=yes],
+ [AC_INCLUDES_DEFAULT]
+ )
+fi
+
+dnl If neither LT_CONFIG_LTDL_DIR, LTDL_CONVENIENCE nor LTDL_INSTALLABLE
+dnl was called yet, then for old times' sake, we assume libltdl is in an
+dnl eponymous directory:
+AC_PROVIDE_IFELSE([LT_CONFIG_LTDL_DIR], [], [_LT_CONFIG_LTDL_DIR([libltdl])])
+
+AC_ARG_WITH([ltdl_include],
+ [AS_HELP_STRING([--with-ltdl-include=DIR],
+ [use the ltdl headers installed in DIR])])
+
+if test -n "$with_ltdl_include"; then
+ if test -f "$with_ltdl_include/ltdl.h"; then :
+ else
+ AC_MSG_ERROR([invalid ltdl include directory: `$with_ltdl_include'])
+ fi
+else
+ with_ltdl_include=no
+fi
+
+AC_ARG_WITH([ltdl_lib],
+ [AS_HELP_STRING([--with-ltdl-lib=DIR],
+ [use the libltdl.la installed in DIR])])
+
+if test -n "$with_ltdl_lib"; then
+ if test -f "$with_ltdl_lib/libltdl.la"; then :
+ else
+ AC_MSG_ERROR([invalid ltdl library directory: `$with_ltdl_lib'])
+ fi
+else
+ with_ltdl_lib=no
+fi
+
+case ,$with_included_ltdl,$with_ltdl_include,$with_ltdl_lib, in
+ ,yes,no,no,)
+ m4_case(m4_default(_LTDL_TYPE, [convenience]),
+ [convenience], [_LTDL_CONVENIENCE],
+ [installable], [_LTDL_INSTALLABLE],
+ [m4_fatal([unknown libltdl build type: ]_LTDL_TYPE)])
+ ;;
+ ,no,no,no,)
+ # If the included ltdl is not to be used, then use the
+ # preinstalled libltdl we found.
+ AC_DEFINE([HAVE_LTDL], [1],
+ [Define this if a modern libltdl is already installed])
+ LIBLTDL=-lltdl
+ LTDLDEPS=
+ LTDLINCL=
+ ;;
+ ,no*,no,*)
+ AC_MSG_ERROR([`--with-ltdl-include' and `--with-ltdl-lib' options must be used together])
+ ;;
+ *) with_included_ltdl=no
+ LIBLTDL="-L$with_ltdl_lib -lltdl"
+ LTDLDEPS=
+ LTDLINCL="-I$with_ltdl_include"
+ ;;
+esac
+INCLTDL="$LTDLINCL"
+
+# Report our decision...
+AC_MSG_CHECKING([where to find libltdl headers])
+AC_MSG_RESULT([$LTDLINCL])
+AC_MSG_CHECKING([where to find libltdl library])
+AC_MSG_RESULT([$LIBLTDL])
+
+_LTDL_SETUP
+
+dnl restore autoconf definition.
+m4_popdef([AC_LIBOBJ])
+m4_popdef([AC_LIBSOURCES])
+
+AC_CONFIG_COMMANDS_PRE([
+ _ltdl_libobjs=
+ _ltdl_ltlibobjs=
+ if test -n "$_LT_LIBOBJS"; then
+ # Remove the extension.
+ _lt_sed_drop_objext='s/\.o$//;s/\.obj$//'
+ for i in `for i in $_LT_LIBOBJS; do echo "$i"; done | sed "$_lt_sed_drop_objext" | sort -u`; do
+ _ltdl_libobjs="$_ltdl_libobjs $lt_libobj_prefix$i.$ac_objext"
+ _ltdl_ltlibobjs="$_ltdl_ltlibobjs $lt_libobj_prefix$i.lo"
+ done
+ fi
+ AC_SUBST([ltdl_LIBOBJS], [$_ltdl_libobjs])
+ AC_SUBST([ltdl_LTLIBOBJS], [$_ltdl_ltlibobjs])
+])
+
+# Only expand once:
+m4_define([LTDL_INIT])
+])
+m4trace:/usr/share/aclocal/ltdl.m4:352: -1- AU_DEFUN([AC_LIB_LTDL], [LTDL_INIT($@)])
+m4trace:/usr/share/aclocal/ltdl.m4:352: -1- AC_DEFUN([AC_LIB_LTDL], [AC_DIAGNOSE([obsolete], [The macro `AC_LIB_LTDL' is obsolete.
+You should run autoupdate.])dnl
+LTDL_INIT($@)])
+m4trace:/usr/share/aclocal/ltdl.m4:353: -1- AU_DEFUN([AC_WITH_LTDL], [LTDL_INIT($@)])
+m4trace:/usr/share/aclocal/ltdl.m4:353: -1- AC_DEFUN([AC_WITH_LTDL], [AC_DIAGNOSE([obsolete], [The macro `AC_WITH_LTDL' is obsolete.
+You should run autoupdate.])dnl
+LTDL_INIT($@)])
+m4trace:/usr/share/aclocal/ltdl.m4:354: -1- AU_DEFUN([LT_WITH_LTDL], [LTDL_INIT($@)])
+m4trace:/usr/share/aclocal/ltdl.m4:354: -1- AC_DEFUN([LT_WITH_LTDL], [AC_DIAGNOSE([obsolete], [The macro `LT_WITH_LTDL' is obsolete.
+You should run autoupdate.])dnl
+LTDL_INIT($@)])
+m4trace:/usr/share/aclocal/ltdl.m4:367: -1- AC_DEFUN([_LTDL_SETUP], [AC_REQUIRE([AC_PROG_CC])dnl
+AC_REQUIRE([LT_SYS_MODULE_EXT])dnl
+AC_REQUIRE([LT_SYS_MODULE_PATH])dnl
+AC_REQUIRE([LT_SYS_DLSEARCH_PATH])dnl
+AC_REQUIRE([LT_LIB_DLLOAD])dnl
+AC_REQUIRE([LT_SYS_SYMBOL_USCORE])dnl
+AC_REQUIRE([LT_FUNC_DLSYM_USCORE])dnl
+AC_REQUIRE([LT_SYS_DLOPEN_DEPLIBS])dnl
+AC_REQUIRE([gl_FUNC_ARGZ])dnl
+
+m4_require([_LT_CHECK_OBJDIR])dnl
+m4_require([_LT_HEADER_DLFCN])dnl
+m4_require([_LT_CHECK_DLPREOPEN])dnl
+m4_require([_LT_DECL_SED])dnl
+
+dnl Don't require this, or it will be expanded earlier than the code
+dnl that sets the variables it relies on:
+_LT_ENABLE_INSTALL
+
+dnl _LTDL_MODE specific code must be called at least once:
+_LTDL_MODE_DISPATCH
+
+# In order that ltdl.c can compile, find out the first AC_CONFIG_HEADERS
+# the user used. This is so that ltdl.h can pick up the parent projects
+# config.h file, The first file in AC_CONFIG_HEADERS must contain the
+# definitions required by ltdl.c.
+# FIXME: Remove use of undocumented AC_LIST_HEADERS (2.59 compatibility).
+AC_CONFIG_COMMANDS_PRE([dnl
+m4_pattern_allow([^LT_CONFIG_H$])dnl
+m4_ifset([AH_HEADER],
+ [LT_CONFIG_H=AH_HEADER],
+ [m4_ifset([AC_LIST_HEADERS],
+ [LT_CONFIG_H=`echo "AC_LIST_HEADERS" | $SED 's,^[[ ]]*,,;s,[[ :]].*$,,'`],
+ [])])])
+AC_SUBST([LT_CONFIG_H])
+
+AC_CHECK_HEADERS([unistd.h dl.h sys/dl.h dld.h mach-o/dyld.h dirent.h],
+ [], [], [AC_INCLUDES_DEFAULT])
+
+AC_CHECK_FUNCS([closedir opendir readdir], [], [AC_LIBOBJ([lt__dirent])])
+AC_CHECK_FUNCS([strlcat strlcpy], [], [AC_LIBOBJ([lt__strl])])
+
+AC_DEFINE_UNQUOTED([LT_LIBEXT],["$libext"],[The archive extension])
+
+name=ltdl
+LTDLOPEN=`eval "\\$ECHO \"$libname_spec\""`
+AC_SUBST([LTDLOPEN])
+])
+m4trace:/usr/share/aclocal/ltdl.m4:437: -1- AC_DEFUN([LT_SYS_DLOPEN_DEPLIBS], [AC_REQUIRE([AC_CANONICAL_HOST])dnl
+AC_CACHE_CHECK([whether deplibs are loaded by dlopen],
+ [lt_cv_sys_dlopen_deplibs],
+ [# PORTME does your system automatically load deplibs for dlopen?
+ # or its logical equivalent (e.g. shl_load for HP-UX < 11)
+ # For now, we just catch OSes we know something about -- in the
+ # future, we'll try test this programmatically.
+ lt_cv_sys_dlopen_deplibs=unknown
+ case $host_os in
+ aix3*|aix4.1.*|aix4.2.*)
+ # Unknown whether this is true for these versions of AIX, but
+ # we want this `case' here to explicitly catch those versions.
+ lt_cv_sys_dlopen_deplibs=unknown
+ ;;
+ aix[[4-9]]*)
+ lt_cv_sys_dlopen_deplibs=yes
+ ;;
+ amigaos*)
+ case $host_cpu in
+ powerpc)
+ lt_cv_sys_dlopen_deplibs=no
+ ;;
+ esac
+ ;;
+ darwin*)
+ # Assuming the user has installed a libdl from somewhere, this is true
+ # If you are looking for one http://www.opendarwin.org/projects/dlcompat
+ lt_cv_sys_dlopen_deplibs=yes
+ ;;
+ freebsd* | dragonfly*)
+ lt_cv_sys_dlopen_deplibs=yes
+ ;;
+ gnu* | linux* | k*bsd*-gnu | kopensolaris*-gnu)
+ # GNU and its variants, using gnu ld.so (Glibc)
+ lt_cv_sys_dlopen_deplibs=yes
+ ;;
+ hpux10*|hpux11*)
+ lt_cv_sys_dlopen_deplibs=yes
+ ;;
+ interix*)
+ lt_cv_sys_dlopen_deplibs=yes
+ ;;
+ irix[[12345]]*|irix6.[[01]]*)
+ # Catch all versions of IRIX before 6.2, and indicate that we don't
+ # know how it worked for any of those versions.
+ lt_cv_sys_dlopen_deplibs=unknown
+ ;;
+ irix*)
+ # The case above catches anything before 6.2, and it's known that
+ # at 6.2 and later dlopen does load deplibs.
+ lt_cv_sys_dlopen_deplibs=yes
+ ;;
+ netbsd* | netbsdelf*-gnu)
+ lt_cv_sys_dlopen_deplibs=yes
+ ;;
+ openbsd*)
+ lt_cv_sys_dlopen_deplibs=yes
+ ;;
+ osf[[1234]]*)
+ # dlopen did load deplibs (at least at 4.x), but until the 5.x series,
+ # it did *not* use an RPATH in a shared library to find objects the
+ # library depends on, so we explicitly say `no'.
+ lt_cv_sys_dlopen_deplibs=no
+ ;;
+ osf5.0|osf5.0a|osf5.1)
+ # dlopen *does* load deplibs and with the right loader patch applied
+ # it even uses RPATH in a shared library to search for shared objects
+ # that the library depends on, but there's no easy way to know if that
+ # patch is installed. Since this is the case, all we can really
+ # say is unknown -- it depends on the patch being installed. If
+ # it is, this changes to `yes'. Without it, it would be `no'.
+ lt_cv_sys_dlopen_deplibs=unknown
+ ;;
+ osf*)
+ # the two cases above should catch all versions of osf <= 5.1. Read
+ # the comments above for what we know about them.
+ # At > 5.1, deplibs are loaded *and* any RPATH in a shared library
+ # is used to find them so we can finally say `yes'.
+ lt_cv_sys_dlopen_deplibs=yes
+ ;;
+ qnx*)
+ lt_cv_sys_dlopen_deplibs=yes
+ ;;
+ solaris*)
+ lt_cv_sys_dlopen_deplibs=yes
+ ;;
+ sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
+ libltdl_cv_sys_dlopen_deplibs=yes
+ ;;
+ esac
+ ])
+if test "$lt_cv_sys_dlopen_deplibs" != yes; then
+ AC_DEFINE([LTDL_DLOPEN_DEPLIBS], [1],
+ [Define if the OS needs help to load dependent libraries for dlopen().])
+fi
+])
+m4trace:/usr/share/aclocal/ltdl.m4:536: -1- AU_DEFUN([AC_LTDL_SYS_DLOPEN_DEPLIBS], [m4_if($#, 0, [LT_SYS_DLOPEN_DEPLIBS], [LT_SYS_DLOPEN_DEPLIBS($@)])])
+m4trace:/usr/share/aclocal/ltdl.m4:536: -1- AC_DEFUN([AC_LTDL_SYS_DLOPEN_DEPLIBS], [AC_DIAGNOSE([obsolete], [The macro `AC_LTDL_SYS_DLOPEN_DEPLIBS' is obsolete.
+You should run autoupdate.])dnl
+m4_if($#, 0, [LT_SYS_DLOPEN_DEPLIBS], [LT_SYS_DLOPEN_DEPLIBS($@)])])
+m4trace:/usr/share/aclocal/ltdl.m4:543: -1- AC_DEFUN([LT_SYS_MODULE_EXT], [m4_require([_LT_SYS_DYNAMIC_LINKER])dnl
+AC_CACHE_CHECK([which extension is used for runtime loadable modules],
+ [libltdl_cv_shlibext],
+[
+module=yes
+eval libltdl_cv_shlibext=$shrext_cmds
+ ])
+if test -n "$libltdl_cv_shlibext"; then
+ m4_pattern_allow([LT_MODULE_EXT])dnl
+ AC_DEFINE_UNQUOTED([LT_MODULE_EXT], ["$libltdl_cv_shlibext"],
+ [Define to the extension used for runtime loadable modules, say, ".so".])
+fi
+])
+m4trace:/usr/share/aclocal/ltdl.m4:559: -1- AU_DEFUN([AC_LTDL_SHLIBEXT], [m4_if($#, 0, [LT_SYS_MODULE_EXT], [LT_SYS_MODULE_EXT($@)])])
+m4trace:/usr/share/aclocal/ltdl.m4:559: -1- AC_DEFUN([AC_LTDL_SHLIBEXT], [AC_DIAGNOSE([obsolete], [The macro `AC_LTDL_SHLIBEXT' is obsolete.
+You should run autoupdate.])dnl
+m4_if($#, 0, [LT_SYS_MODULE_EXT], [LT_SYS_MODULE_EXT($@)])])
+m4trace:/usr/share/aclocal/ltdl.m4:566: -1- AC_DEFUN([LT_SYS_MODULE_PATH], [m4_require([_LT_SYS_DYNAMIC_LINKER])dnl
+AC_CACHE_CHECK([which variable specifies run-time module search path],
+ [lt_cv_module_path_var], [lt_cv_module_path_var="$shlibpath_var"])
+if test -n "$lt_cv_module_path_var"; then
+ m4_pattern_allow([LT_MODULE_PATH_VAR])dnl
+ AC_DEFINE_UNQUOTED([LT_MODULE_PATH_VAR], ["$lt_cv_module_path_var"],
+ [Define to the name of the environment variable that determines the run-time module search path.])
+fi
+])
+m4trace:/usr/share/aclocal/ltdl.m4:578: -1- AU_DEFUN([AC_LTDL_SHLIBPATH], [m4_if($#, 0, [LT_SYS_MODULE_PATH], [LT_SYS_MODULE_PATH($@)])])
+m4trace:/usr/share/aclocal/ltdl.m4:578: -1- AC_DEFUN([AC_LTDL_SHLIBPATH], [AC_DIAGNOSE([obsolete], [The macro `AC_LTDL_SHLIBPATH' is obsolete.
+You should run autoupdate.])dnl
+m4_if($#, 0, [LT_SYS_MODULE_PATH], [LT_SYS_MODULE_PATH($@)])])
+m4trace:/usr/share/aclocal/ltdl.m4:585: -1- AC_DEFUN([LT_SYS_DLSEARCH_PATH], [m4_require([_LT_SYS_DYNAMIC_LINKER])dnl
+AC_CACHE_CHECK([for the default library search path],
+ [lt_cv_sys_dlsearch_path],
+ [lt_cv_sys_dlsearch_path="$sys_lib_dlsearch_path_spec"])
+if test -n "$lt_cv_sys_dlsearch_path"; then
+ sys_dlsearch_path=
+ for dir in $lt_cv_sys_dlsearch_path; do
+ if test -z "$sys_dlsearch_path"; then
+ sys_dlsearch_path="$dir"
+ else
+ sys_dlsearch_path="$sys_dlsearch_path$PATH_SEPARATOR$dir"
+ fi
+ done
+ m4_pattern_allow([LT_DLSEARCH_PATH])dnl
+ AC_DEFINE_UNQUOTED([LT_DLSEARCH_PATH], ["$sys_dlsearch_path"],
+ [Define to the system default library search path.])
+fi
+])
+m4trace:/usr/share/aclocal/ltdl.m4:606: -1- AU_DEFUN([AC_LTDL_SYSSEARCHPATH], [m4_if($#, 0, [LT_SYS_DLSEARCH_PATH], [LT_SYS_DLSEARCH_PATH($@)])])
+m4trace:/usr/share/aclocal/ltdl.m4:606: -1- AC_DEFUN([AC_LTDL_SYSSEARCHPATH], [AC_DIAGNOSE([obsolete], [The macro `AC_LTDL_SYSSEARCHPATH' is obsolete.
+You should run autoupdate.])dnl
+m4_if($#, 0, [LT_SYS_DLSEARCH_PATH], [LT_SYS_DLSEARCH_PATH($@)])])
+m4trace:/usr/share/aclocal/ltdl.m4:632: -1- AC_DEFUN([LT_LIB_DLLOAD], [m4_pattern_allow([^LT_DLLOADERS$])
+LT_DLLOADERS=
+AC_SUBST([LT_DLLOADERS])
+
+AC_LANG_PUSH([C])
+
+LIBADD_DLOPEN=
+AC_SEARCH_LIBS([dlopen], [dl],
+ [AC_DEFINE([HAVE_LIBDL], [1],
+ [Define if you have the libdl library or equivalent.])
+ if test "$ac_cv_search_dlopen" != "none required" ; then
+ LIBADD_DLOPEN="-ldl"
+ fi
+ libltdl_cv_lib_dl_dlopen="yes"
+ LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}dlopen.la"],
+ [AC_LINK_IFELSE([AC_LANG_PROGRAM([[#if HAVE_DLFCN_H
+# include <dlfcn.h>
+#endif
+ ]], [[dlopen(0, 0);]])],
+ [AC_DEFINE([HAVE_LIBDL], [1],
+ [Define if you have the libdl library or equivalent.])
+ libltdl_cv_func_dlopen="yes"
+ LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}dlopen.la"],
+ [AC_CHECK_LIB([svld], [dlopen],
+ [AC_DEFINE([HAVE_LIBDL], [1],
+ [Define if you have the libdl library or equivalent.])
+ LIBADD_DLOPEN="-lsvld" libltdl_cv_func_dlopen="yes"
+ LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}dlopen.la"])])])
+if test x"$libltdl_cv_func_dlopen" = xyes || test x"$libltdl_cv_lib_dl_dlopen" = xyes
+then
+ lt_save_LIBS="$LIBS"
+ LIBS="$LIBS $LIBADD_DLOPEN"
+ AC_CHECK_FUNCS([dlerror])
+ LIBS="$lt_save_LIBS"
+fi
+AC_SUBST([LIBADD_DLOPEN])
+
+LIBADD_SHL_LOAD=
+AC_CHECK_FUNC([shl_load],
+ [AC_DEFINE([HAVE_SHL_LOAD], [1],
+ [Define if you have the shl_load function.])
+ LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}shl_load.la"],
+ [AC_CHECK_LIB([dld], [shl_load],
+ [AC_DEFINE([HAVE_SHL_LOAD], [1],
+ [Define if you have the shl_load function.])
+ LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}shl_load.la"
+ LIBADD_SHL_LOAD="-ldld"])])
+AC_SUBST([LIBADD_SHL_LOAD])
+
+case $host_os in
+darwin[[1567]].*)
+# We only want this for pre-Mac OS X 10.4.
+ AC_CHECK_FUNC([_dyld_func_lookup],
+ [AC_DEFINE([HAVE_DYLD], [1],
+ [Define if you have the _dyld_func_lookup function.])
+ LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}dyld.la"])
+ ;;
+beos*)
+ LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}load_add_on.la"
+ ;;
+cygwin* | mingw* | os2* | pw32*)
+ AC_CHECK_DECLS([cygwin_conv_path], [], [], [[#include <sys/cygwin.h>]])
+ LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}loadlibrary.la"
+ ;;
+esac
+
+AC_CHECK_LIB([dld], [dld_link],
+ [AC_DEFINE([HAVE_DLD], [1],
+ [Define if you have the GNU dld library.])
+ LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}dld_link.la"])
+AC_SUBST([LIBADD_DLD_LINK])
+
+m4_pattern_allow([^LT_DLPREOPEN$])
+LT_DLPREOPEN=
+if test -n "$LT_DLLOADERS"
+then
+ for lt_loader in $LT_DLLOADERS; do
+ LT_DLPREOPEN="$LT_DLPREOPEN-dlpreopen $lt_loader "
+ done
+ AC_DEFINE([HAVE_LIBDLLOADER], [1],
+ [Define if libdlloader will be built on this platform])
+fi
+AC_SUBST([LT_DLPREOPEN])
+
+dnl This isn't used anymore, but set it for backwards compatibility
+LIBADD_DL="$LIBADD_DLOPEN $LIBADD_SHL_LOAD"
+AC_SUBST([LIBADD_DL])
+
+AC_LANG_POP
+])
+m4trace:/usr/share/aclocal/ltdl.m4:725: -1- AU_DEFUN([AC_LTDL_DLLIB], [m4_if($#, 0, [LT_LIB_DLLOAD], [LT_LIB_DLLOAD($@)])])
+m4trace:/usr/share/aclocal/ltdl.m4:725: -1- AC_DEFUN([AC_LTDL_DLLIB], [AC_DIAGNOSE([obsolete], [The macro `AC_LTDL_DLLIB' is obsolete.
+You should run autoupdate.])dnl
+m4_if($#, 0, [LT_LIB_DLLOAD], [LT_LIB_DLLOAD($@)])])
+m4trace:/usr/share/aclocal/ltdl.m4:733: -1- AC_DEFUN([LT_SYS_SYMBOL_USCORE], [m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl
+AC_CACHE_CHECK([for _ prefix in compiled symbols],
+ [lt_cv_sys_symbol_underscore],
+ [lt_cv_sys_symbol_underscore=no
+ cat > conftest.$ac_ext <<_LT_EOF
+void nm_test_func(){}
+int main(){nm_test_func;return 0;}
+_LT_EOF
+ if AC_TRY_EVAL(ac_compile); then
+ # Now try to grab the symbols.
+ ac_nlist=conftest.nm
+ if AC_TRY_EVAL(NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $ac_nlist) && test -s "$ac_nlist"; then
+ # See whether the symbols have a leading underscore.
+ if grep '^. _nm_test_func' "$ac_nlist" >/dev/null; then
+ lt_cv_sys_symbol_underscore=yes
+ else
+ if grep '^. nm_test_func ' "$ac_nlist" >/dev/null; then
+ :
+ else
+ echo "configure: cannot find nm_test_func in $ac_nlist" >&AS_MESSAGE_LOG_FD
+ fi
+ fi
+ else
+ echo "configure: cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD
+ fi
+ else
+ echo "configure: failed program was:" >&AS_MESSAGE_LOG_FD
+ cat conftest.c >&AS_MESSAGE_LOG_FD
+ fi
+ rm -rf conftest*
+ ])
+ sys_symbol_underscore=$lt_cv_sys_symbol_underscore
+ AC_SUBST([sys_symbol_underscore])
+])
+m4trace:/usr/share/aclocal/ltdl.m4:770: -1- AU_DEFUN([AC_LTDL_SYMBOL_USCORE], [m4_if($#, 0, [LT_SYS_SYMBOL_USCORE], [LT_SYS_SYMBOL_USCORE($@)])])
+m4trace:/usr/share/aclocal/ltdl.m4:770: -1- AC_DEFUN([AC_LTDL_SYMBOL_USCORE], [AC_DIAGNOSE([obsolete], [The macro `AC_LTDL_SYMBOL_USCORE' is obsolete.
+You should run autoupdate.])dnl
+m4_if($#, 0, [LT_SYS_SYMBOL_USCORE], [LT_SYS_SYMBOL_USCORE($@)])])
+m4trace:/usr/share/aclocal/ltdl.m4:777: -1- AC_DEFUN([LT_FUNC_DLSYM_USCORE], [AC_REQUIRE([LT_SYS_SYMBOL_USCORE])dnl
+if test x"$lt_cv_sys_symbol_underscore" = xyes; then
+ if test x"$libltdl_cv_func_dlopen" = xyes ||
+ test x"$libltdl_cv_lib_dl_dlopen" = xyes ; then
+ AC_CACHE_CHECK([whether we have to add an underscore for dlsym],
+ [libltdl_cv_need_uscore],
+ [libltdl_cv_need_uscore=unknown
+ save_LIBS="$LIBS"
+ LIBS="$LIBS $LIBADD_DLOPEN"
+ _LT_TRY_DLOPEN_SELF(
+ [libltdl_cv_need_uscore=no], [libltdl_cv_need_uscore=yes],
+ [], [libltdl_cv_need_uscore=cross])
+ LIBS="$save_LIBS"
+ ])
+ fi
+fi
+
+if test x"$libltdl_cv_need_uscore" = xyes; then
+ AC_DEFINE([NEED_USCORE], [1],
+ [Define if dlsym() requires a leading underscore in symbol names.])
+fi
+])
+m4trace:/usr/share/aclocal/ltdl.m4:802: -1- AU_DEFUN([AC_LTDL_DLSYM_USCORE], [m4_if($#, 0, [LT_FUNC_DLSYM_USCORE], [LT_FUNC_DLSYM_USCORE($@)])])
+m4trace:/usr/share/aclocal/ltdl.m4:802: -1- AC_DEFUN([AC_LTDL_DLSYM_USCORE], [AC_DIAGNOSE([obsolete], [The macro `AC_LTDL_DLSYM_USCORE' is obsolete.
+You should run autoupdate.])dnl
+m4_if($#, 0, [LT_FUNC_DLSYM_USCORE], [LT_FUNC_DLSYM_USCORE($@)])])
+m4trace:/usr/share/aclocal/pkg.m4:26: -1- AC_DEFUN([PKG_PROG_PKG_CONFIG], [m4_pattern_forbid([^_?PKG_[A-Z_]+$])
+m4_pattern_allow([^PKG_CONFIG(_PATH)?$])
+AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility])dnl
+if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
+ AC_PATH_TOOL([PKG_CONFIG], [pkg-config])
+fi
+if test -n "$PKG_CONFIG"; then
+ _pkg_min_version=m4_default([$1], [0.9.0])
+ AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version])
+ if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then
+ AC_MSG_RESULT([yes])
+ else
+ AC_MSG_RESULT([no])
+ PKG_CONFIG=""
+ fi
+
+fi[]dnl
+])
+m4trace:/usr/share/aclocal/pkg.m4:56: -1- AC_DEFUN([PKG_CHECK_EXISTS], [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
+if test -n "$PKG_CONFIG" && \
+ AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then
+ m4_ifval([$2], [$2], [:])
+m4_ifvaln([$3], [else
+ $3])dnl
+fi])
+m4trace:/usr/share/aclocal/pkg.m4:84: -1- AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED], [AC_REQUIRE([PKG_PROG_PKG_CONFIG])
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+ _pkg_short_errors_supported=yes
+else
+ _pkg_short_errors_supported=no
+fi[]dnl
+])
+m4trace:/usr/share/aclocal/pkg.m4:104: -1- AC_DEFUN([PKG_CHECK_MODULES], [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
+AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl
+AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl
+
+pkg_failed=no
+AC_MSG_CHECKING([for $1])
+
+_PKG_CONFIG([$1][_CFLAGS], [cflags], [$2])
+_PKG_CONFIG([$1][_LIBS], [libs], [$2])
+
+m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS
+and $1[]_LIBS to avoid the need to call pkg-config.
+See the pkg-config man page for more details.])
+
+if test $pkg_failed = yes; then
+ _PKG_SHORT_ERRORS_SUPPORTED
+ if test $_pkg_short_errors_supported = yes; then
+ $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "$2"`
+ else
+ $1[]_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$2"`
+ fi
+ # Put the nasty error message in config.log where it belongs
+ echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD
+
+ ifelse([$4], , [AC_MSG_ERROR(dnl
+[Package requirements ($2) were not met:
+
+$$1_PKG_ERRORS
+
+Consider adjusting the PKG_CONFIG_PATH environment variable if you
+installed software in a non-standard prefix.
+
+_PKG_TEXT
+])],
+ [AC_MSG_RESULT([no])
+ $4])
+elif test $pkg_failed = untried; then
+ ifelse([$4], , [AC_MSG_FAILURE(dnl
+[The pkg-config script could not be found or is too old. Make sure it
+is in your PATH or set the PKG_CONFIG environment variable to the full
+path to pkg-config.
+
+_PKG_TEXT
+
+To get pkg-config, see <http://pkg-config.freedesktop.org/>.])],
+ [$4])
+else
+ $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS
+ $1[]_LIBS=$pkg_cv_[]$1[]_LIBS
+ AC_MSG_RESULT([yes])
+ ifelse([$3], , :, [$3])
+fi[]dnl
+])
+m4trace:/usr/share/aclocal-1.11/amversion.m4:14: -1- AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version='1.11'
+dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
+dnl require some minimum version. Point them to the right macro.
+m4_if([$1], [1.11.1], [],
+ [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
+])
+m4trace:/usr/share/aclocal-1.11/amversion.m4:33: -1- AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], [AM_AUTOMAKE_VERSION([1.11.1])dnl
+m4_ifndef([AC_AUTOCONF_VERSION],
+ [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
+_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
+m4trace:/usr/share/aclocal-1.11/auxdir.m4:47: -1- AC_DEFUN([AM_AUX_DIR_EXPAND], [dnl Rely on autoconf to set up CDPATH properly.
+AC_PREREQ([2.50])dnl
+# expand $ac_aux_dir to an absolute path
+am_aux_dir=`cd $ac_aux_dir && pwd`
+])
+m4trace:/usr/share/aclocal-1.11/cond.m4:15: -1- AC_DEFUN([AM_CONDITIONAL], [AC_PREREQ(2.52)dnl
+ ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])],
+ [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl
+AC_SUBST([$1_TRUE])dnl
+AC_SUBST([$1_FALSE])dnl
+_AM_SUBST_NOTMAKE([$1_TRUE])dnl
+_AM_SUBST_NOTMAKE([$1_FALSE])dnl
+m4_define([_AM_COND_VALUE_$1], [$2])dnl
+if $2; then
+ $1_TRUE=
+ $1_FALSE='#'
+else
+ $1_TRUE='#'
+ $1_FALSE=
+fi
+AC_CONFIG_COMMANDS_PRE(
+[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then
+ AC_MSG_ERROR([[conditional "$1" was never defined.
+Usually this means the macro was only invoked conditionally.]])
+fi])])
+m4trace:/usr/share/aclocal-1.11/depend.m4:28: -1- AC_DEFUN([_AM_DEPENDENCIES], [AC_REQUIRE([AM_SET_DEPDIR])dnl
+AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl
+AC_REQUIRE([AM_MAKE_INCLUDE])dnl
+AC_REQUIRE([AM_DEP_TRACK])dnl
+
+ifelse([$1], CC, [depcc="$CC" am_compiler_list=],
+ [$1], CXX, [depcc="$CXX" am_compiler_list=],
+ [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'],
+ [$1], UPC, [depcc="$UPC" am_compiler_list=],
+ [$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'],
+ [depcc="$$1" am_compiler_list=])
+
+AC_CACHE_CHECK([dependency style of $depcc],
+ [am_cv_$1_dependencies_compiler_type],
+[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
+ # We make a subdir and do the tests there. Otherwise we can end up
+ # making bogus files that we don't know about and never remove. For
+ # instance it was reported that on HP-UX the gcc test will end up
+ # making a dummy file named `D' -- because `-MD' means `put the output
+ # in D'.
+ mkdir conftest.dir
+ # Copy depcomp to subdir because otherwise we won't find it if we're
+ # using a relative directory.
+ cp "$am_depcomp" conftest.dir
+ cd conftest.dir
+ # We will build objects and dependencies in a subdirectory because
+ # it helps to detect inapplicable dependency modes. For instance
+ # both Tru64's cc and ICC support -MD to output dependencies as a
+ # side effect of compilation, but ICC will put the dependencies in
+ # the current directory while Tru64 will put them in the object
+ # directory.
+ mkdir sub
+
+ am_cv_$1_dependencies_compiler_type=none
+ if test "$am_compiler_list" = ""; then
+ am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp`
+ fi
+ am__universal=false
+ m4_case([$1], [CC],
+ [case " $depcc " in #(
+ *\ -arch\ *\ -arch\ *) am__universal=true ;;
+ esac],
+ [CXX],
+ [case " $depcc " in #(
+ *\ -arch\ *\ -arch\ *) am__universal=true ;;
+ esac])
+
+ for depmode in $am_compiler_list; do
+ # Setup a source with many dependencies, because some compilers
+ # like to wrap large dependency lists on column 80 (with \), and
+ # we should not choose a depcomp mode which is confused by this.
+ #
+ # We need to recreate these files for each test, as the compiler may
+ # overwrite some of them when testing with obscure command lines.
+ # This happens at least with the AIX C compiler.
+ : > sub/conftest.c
+ for i in 1 2 3 4 5 6; do
+ echo '#include "conftst'$i'.h"' >> sub/conftest.c
+ # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
+ # Solaris 8's {/usr,}/bin/sh.
+ touch sub/conftst$i.h
+ done
+ echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
+
+ # We check with `-c' and `-o' for the sake of the "dashmstdout"
+ # mode. It turns out that the SunPro C++ compiler does not properly
+ # handle `-M -o', and we need to detect this. Also, some Intel
+ # versions had trouble with output in subdirs
+ am__obj=sub/conftest.${OBJEXT-o}
+ am__minus_obj="-o $am__obj"
+ case $depmode in
+ gcc)
+ # This depmode causes a compiler race in universal mode.
+ test "$am__universal" = false || continue
+ ;;
+ nosideeffect)
+ # after this tag, mechanisms are not by side-effect, so they'll
+ # only be used when explicitly requested
+ if test "x$enable_dependency_tracking" = xyes; then
+ continue
+ else
+ break
+ fi
+ ;;
+ msvisualcpp | msvcmsys)
+ # This compiler won't grok `-c -o', but also, the minuso test has
+ # not run yet. These depmodes are late enough in the game, and
+ # so weak that their functioning should not be impacted.
+ am__obj=conftest.${OBJEXT-o}
+ am__minus_obj=
+ ;;
+ none) break ;;
+ esac
+ if depmode=$depmode \
+ source=sub/conftest.c object=$am__obj \
+ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
+ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
+ >/dev/null 2>conftest.err &&
+ grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
+ grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
+ grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
+ ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
+ # icc doesn't choke on unknown options, it will just issue warnings
+ # or remarks (even with -Werror). So we grep stderr for any message
+ # that says an option was ignored or not supported.
+ # When given -MP, icc 7.0 and 7.1 complain thusly:
+ # icc: Command line warning: ignoring option '-M'; no argument required
+ # The diagnosis changed in icc 8.0:
+ # icc: Command line remark: option '-MP' not supported
+ if (grep 'ignoring option' conftest.err ||
+ grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
+ am_cv_$1_dependencies_compiler_type=$depmode
+ break
+ fi
+ fi
+ done
+
+ cd ..
+ rm -rf conftest.dir
+else
+ am_cv_$1_dependencies_compiler_type=none
+fi
+])
+AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type])
+AM_CONDITIONAL([am__fastdep$1], [
+ test "x$enable_dependency_tracking" != xno \
+ && test "$am_cv_$1_dependencies_compiler_type" = gcc3])
+])
+m4trace:/usr/share/aclocal-1.11/depend.m4:163: -1- AC_DEFUN([AM_SET_DEPDIR], [AC_REQUIRE([AM_SET_LEADING_DOT])dnl
+AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl
+])
+m4trace:/usr/share/aclocal-1.11/depend.m4:171: -1- AC_DEFUN([AM_DEP_TRACK], [AC_ARG_ENABLE(dependency-tracking,
+[ --disable-dependency-tracking speeds up one-time build
+ --enable-dependency-tracking do not reject slow dependency extractors])
+if test "x$enable_dependency_tracking" != xno; then
+ am_depcomp="$ac_aux_dir/depcomp"
+ AMDEPBACKSLASH='\'
+fi
+AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
+AC_SUBST([AMDEPBACKSLASH])dnl
+_AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl
+])
+m4trace:/usr/share/aclocal-1.11/depout.m4:14: -1- AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], [{
+ # Autoconf 2.62 quotes --file arguments for eval, but not when files
+ # are listed without --file. Let's play safe and only enable the eval
+ # if we detect the quoting.
+ case $CONFIG_FILES in
+ *\'*) eval set x "$CONFIG_FILES" ;;
+ *) set x $CONFIG_FILES ;;
+ esac
+ shift
+ for mf
+ do
+ # Strip MF so we end up with the name of the file.
+ mf=`echo "$mf" | sed -e 's/:.*$//'`
+ # Check whether this is an Automake generated Makefile or not.
+ # We used to match only the files named `Makefile.in', but
+ # some people rename them; so instead we look at the file content.
+ # Grep'ing the first line is not enough: some people post-process
+ # each Makefile.in and add a new line on top of each file to say so.
+ # Grep'ing the whole file is not good either: AIX grep has a line
+ # limit of 2048, but all sed's we know have understand at least 4000.
+ if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then
+ dirpart=`AS_DIRNAME("$mf")`
+ else
+ continue
+ fi
+ # Extract the definition of DEPDIR, am__include, and am__quote
+ # from the Makefile without running `make'.
+ DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
+ test -z "$DEPDIR" && continue
+ am__include=`sed -n 's/^am__include = //p' < "$mf"`
+ test -z "am__include" && continue
+ am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
+ # When using ansi2knr, U may be empty or an underscore; expand it
+ U=`sed -n 's/^U = //p' < "$mf"`
+ # Find all dependency output files, they are included files with
+ # $(DEPDIR) in their names. We invoke sed twice because it is the
+ # simplest approach to changing $(DEPDIR) to its actual value in the
+ # expansion.
+ for file in `sed -n "
+ s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
+ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
+ # Make sure the directory exists.
+ test -f "$dirpart/$file" && continue
+ fdir=`AS_DIRNAME(["$file"])`
+ AS_MKDIR_P([$dirpart/$fdir])
+ # echo "creating $dirpart/$file"
+ echo '# dummy' > "$dirpart/$file"
+ done
+ done
+}
+])
+m4trace:/usr/share/aclocal-1.11/depout.m4:75: -1- AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], [AC_CONFIG_COMMANDS([depfiles],
+ [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS],
+ [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"])
+])
+m4trace:/usr/share/aclocal-1.11/header.m4:12: -1- AU_DEFUN([AM_CONFIG_HEADER], [AC_CONFIG_HEADERS($@)])
+m4trace:/usr/share/aclocal-1.11/header.m4:12: -1- AC_DEFUN([AM_CONFIG_HEADER], [AC_DIAGNOSE([obsolete], [The macro `AM_CONFIG_HEADER' is obsolete.
+You should run autoupdate.])dnl
+AC_CONFIG_HEADERS($@)])
+m4trace:/usr/share/aclocal-1.11/init.m4:26: -1- AC_DEFUN([AM_INIT_AUTOMAKE], [AC_PREREQ([2.62])dnl
+dnl Autoconf wants to disallow AM_ names. We explicitly allow
+dnl the ones we care about.
+m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl
+AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl
+AC_REQUIRE([AC_PROG_INSTALL])dnl
+if test "`cd $srcdir && pwd`" != "`pwd`"; then
+ # Use -I$(srcdir) only when $(srcdir) != ., so that make's output
+ # is not polluted with repeated "-I."
+ AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl
+ # test to see if srcdir already configured
+ if test -f $srcdir/config.status; then
+ AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
+ fi
+fi
+
+# test whether we have cygpath
+if test -z "$CYGPATH_W"; then
+ if (cygpath --version) >/dev/null 2>/dev/null; then
+ CYGPATH_W='cygpath -w'
+ else
+ CYGPATH_W=echo
+ fi
+fi
+AC_SUBST([CYGPATH_W])
+
+# Define the identity of the package.
+dnl Distinguish between old-style and new-style calls.
+m4_ifval([$2],
+[m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl
+ AC_SUBST([PACKAGE], [$1])dnl
+ AC_SUBST([VERSION], [$2])],
+[_AM_SET_OPTIONS([$1])dnl
+dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT.
+m4_if(m4_ifdef([AC_PACKAGE_NAME], 1)m4_ifdef([AC_PACKAGE_VERSION], 1), 11,,
+ [m4_fatal([AC_INIT should be called with package and version arguments])])dnl
+ AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl
+ AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl
+
+_AM_IF_OPTION([no-define],,
+[AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
+ AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl
+
+# Some tools Automake needs.
+AC_REQUIRE([AM_SANITY_CHECK])dnl
+AC_REQUIRE([AC_ARG_PROGRAM])dnl
+AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version})
+AM_MISSING_PROG(AUTOCONF, autoconf)
+AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version})
+AM_MISSING_PROG(AUTOHEADER, autoheader)
+AM_MISSING_PROG(MAKEINFO, makeinfo)
+AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
+AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl
+AC_REQUIRE([AM_PROG_MKDIR_P])dnl
+# We need awk for the "check" target. The system "awk" is bad on
+# some platforms.
+AC_REQUIRE([AC_PROG_AWK])dnl
+AC_REQUIRE([AC_PROG_MAKE_SET])dnl
+AC_REQUIRE([AM_SET_LEADING_DOT])dnl
+_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])],
+ [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])],
+ [_AM_PROG_TAR([v7])])])
+_AM_IF_OPTION([no-dependencies],,
+[AC_PROVIDE_IFELSE([AC_PROG_CC],
+ [_AM_DEPENDENCIES(CC)],
+ [define([AC_PROG_CC],
+ defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl
+AC_PROVIDE_IFELSE([AC_PROG_CXX],
+ [_AM_DEPENDENCIES(CXX)],
+ [define([AC_PROG_CXX],
+ defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl
+AC_PROVIDE_IFELSE([AC_PROG_OBJC],
+ [_AM_DEPENDENCIES(OBJC)],
+ [define([AC_PROG_OBJC],
+ defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl
+])
+_AM_IF_OPTION([silent-rules], [AC_REQUIRE([AM_SILENT_RULES])])dnl
+dnl The `parallel-tests' driver may need to know about EXEEXT, so add the
+dnl `am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This macro
+dnl is hooked onto _AC_COMPILER_EXEEXT early, see below.
+AC_CONFIG_COMMANDS_PRE(dnl
+[m4_provide_if([_AM_COMPILER_EXEEXT],
+ [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl
+])
+m4trace:/usr/share/aclocal-1.11/init.m4:126: -1- AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], [# Compute $1's index in $config_headers.
+_am_arg=$1
+_am_stamp_count=1
+for _am_header in $config_headers :; do
+ case $_am_header in
+ $_am_arg | $_am_arg:* )
+ break ;;
+ * )
+ _am_stamp_count=`expr $_am_stamp_count + 1` ;;
+ esac
+done
+echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])
+m4trace:/usr/share/aclocal-1.11/install-sh.m4:11: -1- AC_DEFUN([AM_PROG_INSTALL_SH], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
+if test x"${install_sh}" != xset; then
+ case $am_aux_dir in
+ *\ * | *\ *)
+ install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;;
+ *)
+ install_sh="\${SHELL} $am_aux_dir/install-sh"
+ esac
+fi
+AC_SUBST(install_sh)])
+m4trace:/usr/share/aclocal-1.11/lead-dot.m4:12: -1- AC_DEFUN([AM_SET_LEADING_DOT], [rm -rf .tst 2>/dev/null
+mkdir .tst 2>/dev/null
+if test -d .tst; then
+ am__leading_dot=.
+else
+ am__leading_dot=_
+fi
+rmdir .tst 2>/dev/null
+AC_SUBST([am__leading_dot])])
+m4trace:/usr/share/aclocal-1.11/make.m4:14: -1- AC_DEFUN([AM_MAKE_INCLUDE], [am_make=${MAKE-make}
+cat > confinc << 'END'
+am__doit:
+ @echo this is the am__doit target
+.PHONY: am__doit
+END
+# If we don't find an include directive, just comment out the code.
+AC_MSG_CHECKING([for style of include used by $am_make])
+am__include="#"
+am__quote=
+_am_result=none
+# First try GNU make style include.
+echo "include confinc" > confmf
+# Ignore all kinds of additional output from `make'.
+case `$am_make -s -f confmf 2> /dev/null` in #(
+*the\ am__doit\ target*)
+ am__include=include
+ am__quote=
+ _am_result=GNU
+ ;;
+esac
+# Now try BSD make style include.
+if test "$am__include" = "#"; then
+ echo '.include "confinc"' > confmf
+ case `$am_make -s -f confmf 2> /dev/null` in #(
+ *the\ am__doit\ target*)
+ am__include=.include
+ am__quote="\""
+ _am_result=BSD
+ ;;
+ esac
+fi
+AC_SUBST([am__include])
+AC_SUBST([am__quote])
+AC_MSG_RESULT([$_am_result])
+rm -f confinc confmf
+])
+m4trace:/usr/share/aclocal-1.11/missing.m4:14: -1- AC_DEFUN([AM_MISSING_PROG], [AC_REQUIRE([AM_MISSING_HAS_RUN])
+$1=${$1-"${am_missing_run}$2"}
+AC_SUBST($1)])
+m4trace:/usr/share/aclocal-1.11/missing.m4:24: -1- AC_DEFUN([AM_MISSING_HAS_RUN], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
+AC_REQUIRE_AUX_FILE([missing])dnl
+if test x"${MISSING+set}" != xset; then
+ case $am_aux_dir in
+ *\ * | *\ *)
+ MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;;
+ *)
+ MISSING="\${SHELL} $am_aux_dir/missing" ;;
+ esac
+fi
+# Use eval to expand $SHELL
+if eval "$MISSING --run true"; then
+ am_missing_run="$MISSING --run "
+else
+ am_missing_run=
+ AC_MSG_WARN([`missing' script is too old or missing])
+fi
+])
+m4trace:/usr/share/aclocal-1.11/mkdirp.m4:11: -1- AC_DEFUN([AM_PROG_MKDIR_P], [AC_PREREQ([2.60])dnl
+AC_REQUIRE([AC_PROG_MKDIR_P])dnl
+dnl Automake 1.8 to 1.9.6 used to define mkdir_p. We now use MKDIR_P,
+dnl while keeping a definition of mkdir_p for backward compatibility.
+dnl @MKDIR_P@ is magic: AC_OUTPUT adjusts its value for each Makefile.
+dnl However we cannot define mkdir_p as $(MKDIR_P) for the sake of
+dnl Makefile.ins that do not define MKDIR_P, so we do our own
+dnl adjustment using top_builddir (which is defined more often than
+dnl MKDIR_P).
+AC_SUBST([mkdir_p], ["$MKDIR_P"])dnl
+case $mkdir_p in
+ [[\\/$]]* | ?:[[\\/]]*) ;;
+ */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;;
+esac
+])
+m4trace:/usr/share/aclocal-1.11/options.m4:13: -1- AC_DEFUN([_AM_MANGLE_OPTION], [[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])])
+m4trace:/usr/share/aclocal-1.11/options.m4:19: -1- AC_DEFUN([_AM_SET_OPTION], [m4_define(_AM_MANGLE_OPTION([$1]), 1)])
+m4trace:/usr/share/aclocal-1.11/options.m4:25: -1- AC_DEFUN([_AM_SET_OPTIONS], [m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])])
+m4trace:/usr/share/aclocal-1.11/options.m4:31: -1- AC_DEFUN([_AM_IF_OPTION], [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
+m4trace:/usr/share/aclocal-1.11/python.m4:35: -1- AC_DEFUN([AM_PATH_PYTHON], [
+ dnl Find a Python interpreter. Python versions prior to 2.0 are not
+ dnl supported. (2.0 was released on October 16, 2000).
+ m4_define_default([_AM_PYTHON_INTERPRETER_LIST],
+ [python python2 python3 python3.0 python2.5 python2.4 python2.3 python2.2 dnl
+python2.1 python2.0])
+
+ m4_if([$1],[],[
+ dnl No version check is needed.
+ # Find any Python interpreter.
+ if test -z "$PYTHON"; then
+ AC_PATH_PROGS([PYTHON], _AM_PYTHON_INTERPRETER_LIST, :)
+ fi
+ am_display_PYTHON=python
+ ], [
+ dnl A version check is needed.
+ if test -n "$PYTHON"; then
+ # If the user set $PYTHON, use it and don't search something else.
+ AC_MSG_CHECKING([whether $PYTHON version >= $1])
+ AM_PYTHON_CHECK_VERSION([$PYTHON], [$1],
+ [AC_MSG_RESULT(yes)],
+ [AC_MSG_ERROR(too old)])
+ am_display_PYTHON=$PYTHON
+ else
+ # Otherwise, try each interpreter until we find one that satisfies
+ # VERSION.
+ AC_CACHE_CHECK([for a Python interpreter with version >= $1],
+ [am_cv_pathless_PYTHON],[
+ for am_cv_pathless_PYTHON in _AM_PYTHON_INTERPRETER_LIST none; do
+ test "$am_cv_pathless_PYTHON" = none && break
+ AM_PYTHON_CHECK_VERSION([$am_cv_pathless_PYTHON], [$1], [break])
+ done])
+ # Set $PYTHON to the absolute path of $am_cv_pathless_PYTHON.
+ if test "$am_cv_pathless_PYTHON" = none; then
+ PYTHON=:
+ else
+ AC_PATH_PROG([PYTHON], [$am_cv_pathless_PYTHON])
+ fi
+ am_display_PYTHON=$am_cv_pathless_PYTHON
+ fi
+ ])
+
+ if test "$PYTHON" = :; then
+ dnl Run any user-specified action, or abort.
+ m4_default([$3], [AC_MSG_ERROR([no suitable Python interpreter found])])
+ else
+
+ dnl Query Python for its version number. Getting [:3] seems to be
+ dnl the best way to do this; it's what "site.py" does in the standard
+ dnl library.
+
+ AC_CACHE_CHECK([for $am_display_PYTHON version], [am_cv_python_version],
+ [am_cv_python_version=`$PYTHON -c "import sys; sys.stdout.write(sys.version[[:3]])"`])
+ AC_SUBST([PYTHON_VERSION], [$am_cv_python_version])
+
+ dnl Use the values of $prefix and $exec_prefix for the corresponding
+ dnl values of PYTHON_PREFIX and PYTHON_EXEC_PREFIX. These are made
+ dnl distinct variables so they can be overridden if need be. However,
+ dnl general consensus is that you shouldn't need this ability.
+
+ AC_SUBST([PYTHON_PREFIX], ['${prefix}'])
+ AC_SUBST([PYTHON_EXEC_PREFIX], ['${exec_prefix}'])
+
+ dnl At times (like when building shared libraries) you may want
+ dnl to know which OS platform Python thinks this is.
+
+ AC_CACHE_CHECK([for $am_display_PYTHON platform], [am_cv_python_platform],
+ [am_cv_python_platform=`$PYTHON -c "import sys; sys.stdout.write(sys.platform)"`])
+ AC_SUBST([PYTHON_PLATFORM], [$am_cv_python_platform])
+
+
+ dnl Set up 4 directories:
+
+ dnl pythondir -- where to install python scripts. This is the
+ dnl site-packages directory, not the python standard library
+ dnl directory like in previous automake betas. This behavior
+ dnl is more consistent with lispdir.m4 for example.
+ dnl Query distutils for this directory. distutils does not exist in
+ dnl Python 1.5, so we fall back to the hardcoded directory if it
+ dnl doesn't work.
+ AC_CACHE_CHECK([for $am_display_PYTHON script directory],
+ [am_cv_python_pythondir],
+ [if test "x$prefix" = xNONE
+ then
+ am_py_prefix=$ac_default_prefix
+ else
+ am_py_prefix=$prefix
+ fi
+ am_cv_python_pythondir=`$PYTHON -c "import sys; from distutils import sysconfig; sys.stdout.write(sysconfig.get_python_lib(0,0,prefix='$am_py_prefix'))" 2>/dev/null ||
+ echo "$PYTHON_PREFIX/lib/python$PYTHON_VERSION/site-packages"`
+ case $am_cv_python_pythondir in
+ $am_py_prefix*)
+ am__strip_prefix=`echo "$am_py_prefix" | sed 's|.|.|g'`
+ am_cv_python_pythondir=`echo "$am_cv_python_pythondir" | sed "s,^$am__strip_prefix,$PYTHON_PREFIX,"`
+ ;;
+ *)
+ case $am_py_prefix in
+ /usr|/System*) ;;
+ *)
+ am_cv_python_pythondir=$PYTHON_PREFIX/lib/python$PYTHON_VERSION/site-packages
+ ;;
+ esac
+ ;;
+ esac
+ ])
+ AC_SUBST([pythondir], [$am_cv_python_pythondir])
+
+ dnl pkgpythondir -- $PACKAGE directory under pythondir. Was
+ dnl PYTHON_SITE_PACKAGE in previous betas, but this naming is
+ dnl more consistent with the rest of automake.
+
+ AC_SUBST([pkgpythondir], [\${pythondir}/$PACKAGE])
+
+ dnl pyexecdir -- directory for installing python extension modules
+ dnl (shared libraries)
+ dnl Query distutils for this directory. distutils does not exist in
+ dnl Python 1.5, so we fall back to the hardcoded directory if it
+ dnl doesn't work.
+ AC_CACHE_CHECK([for $am_display_PYTHON extension module directory],
+ [am_cv_python_pyexecdir],
+ [if test "x$exec_prefix" = xNONE
+ then
+ am_py_exec_prefix=$am_py_prefix
+ else
+ am_py_exec_prefix=$exec_prefix
+ fi
+ am_cv_python_pyexecdir=`$PYTHON -c "import sys; from distutils import sysconfig; sys.stdout.write(sysconfig.get_python_lib(1,0,prefix='$am_py_exec_prefix'))" 2>/dev/null ||
+ echo "$PYTHON_EXEC_PREFIX/lib/python$PYTHON_VERSION/site-packages"`
+ case $am_cv_python_pyexecdir in
+ $am_py_exec_prefix*)
+ am__strip_prefix=`echo "$am_py_exec_prefix" | sed 's|.|.|g'`
+ am_cv_python_pyexecdir=`echo "$am_cv_python_pyexecdir" | sed "s,^$am__strip_prefix,$PYTHON_EXEC_PREFIX,"`
+ ;;
+ *)
+ case $am_py_exec_prefix in
+ /usr|/System*) ;;
+ *)
+ am_cv_python_pyexecdir=$PYTHON_EXEC_PREFIX/lib/python$PYTHON_VERSION/site-packages
+ ;;
+ esac
+ ;;
+ esac
+ ])
+ AC_SUBST([pyexecdir], [$am_cv_python_pyexecdir])
+
+ dnl pkgpyexecdir -- $(pyexecdir)/$(PACKAGE)
+
+ AC_SUBST([pkgpyexecdir], [\${pyexecdir}/$PACKAGE])
+
+ dnl Run any user-specified action.
+ $2
+ fi
+
+])
+m4trace:/usr/share/aclocal-1.11/python.m4:199: -1- AC_DEFUN([AM_PYTHON_CHECK_VERSION], [prog="import sys
+# split strings by '.' and convert to numeric. Append some zeros
+# because we need at least 4 digits for the hex conversion.
+# map returns an iterator in Python 3.0 and a list in 2.x
+minver = list(map(int, '$2'.split('.'))) + [[0, 0, 0]]
+minverhex = 0
+# xrange is not present in Python 3.0 and range returns an iterator
+for i in list(range(0, 4)): minverhex = (minverhex << 8) + minver[[i]]
+sys.exit(sys.hexversion < minverhex)"
+ AS_IF([AM_RUN_LOG([$1 -c "$prog"])], [$3], [$4])])
+m4trace:/usr/share/aclocal-1.11/runlog.m4:12: -1- AC_DEFUN([AM_RUN_LOG], [{ echo "$as_me:$LINENO: $1" >&AS_MESSAGE_LOG_FD
+ ($1) >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
+ (exit $ac_status); }])
+m4trace:/usr/share/aclocal-1.11/sanity.m4:14: -1- AC_DEFUN([AM_SANITY_CHECK], [AC_MSG_CHECKING([whether build environment is sane])
+# Just in case
+sleep 1
+echo timestamp > conftest.file
+# Reject unsafe characters in $srcdir or the absolute working directory
+# name. Accept space and tab only in the latter.
+am_lf='
+'
+case `pwd` in
+ *[[\\\"\#\$\&\'\`$am_lf]]*)
+ AC_MSG_ERROR([unsafe absolute working directory name]);;
+esac
+case $srcdir in
+ *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*)
+ AC_MSG_ERROR([unsafe srcdir value: `$srcdir']);;
+esac
+
+# Do `set' in a subshell so we don't clobber the current shell's
+# arguments. Must try -L first in case configure is actually a
+# symlink; some systems play weird games with the mod time of symlinks
+# (eg FreeBSD returns the mod time of the symlink's containing
+# directory).
+if (
+ set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
+ if test "$[*]" = "X"; then
+ # -L didn't work.
+ set X `ls -t "$srcdir/configure" conftest.file`
+ fi
+ rm -f conftest.file
+ if test "$[*]" != "X $srcdir/configure conftest.file" \
+ && test "$[*]" != "X conftest.file $srcdir/configure"; then
+
+ # If neither matched, then we have a broken ls. This can happen
+ # if, for instance, CONFIG_SHELL is bash and it inherits a
+ # broken ls alias from the environment. This has actually
+ # happened. Such a system could not be considered "sane".
+ AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken
+alias in your environment])
+ fi
+
+ test "$[2]" = conftest.file
+ )
+then
+ # Ok.
+ :
+else
+ AC_MSG_ERROR([newly created file is older than distributed files!
+Check your system clock])
+fi
+AC_MSG_RESULT(yes)])
+m4trace:/usr/share/aclocal-1.11/silent.m4:14: -1- AC_DEFUN([AM_SILENT_RULES], [AC_ARG_ENABLE([silent-rules],
+[ --enable-silent-rules less verbose build output (undo: `make V=1')
+ --disable-silent-rules verbose build output (undo: `make V=0')])
+case $enable_silent_rules in
+yes) AM_DEFAULT_VERBOSITY=0;;
+no) AM_DEFAULT_VERBOSITY=1;;
+*) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);;
+esac
+AC_SUBST([AM_DEFAULT_VERBOSITY])dnl
+AM_BACKSLASH='\'
+AC_SUBST([AM_BACKSLASH])dnl
+_AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl
+])
+m4trace:/usr/share/aclocal-1.11/strip.m4:17: -1- AC_DEFUN([AM_PROG_INSTALL_STRIP], [AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
+# Installed binaries are usually stripped using `strip' when the user
+# run `make install-strip'. However `strip' might not be the right
+# tool to use in cross-compilation environments, therefore Automake
+# will honor the `STRIP' environment variable to overrule this program.
+dnl Don't test for $cross_compiling = yes, because it might be `maybe'.
+if test "$cross_compiling" != no; then
+ AC_CHECK_TOOL([STRIP], [strip], :)
+fi
+INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
+AC_SUBST([INSTALL_STRIP_PROGRAM])])
+m4trace:/usr/share/aclocal-1.11/substnot.m4:14: -1- AC_DEFUN([_AM_SUBST_NOTMAKE])
+m4trace:/usr/share/aclocal-1.11/substnot.m4:19: -1- AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])
+m4trace:/usr/share/aclocal-1.11/tar.m4:24: -1- AC_DEFUN([_AM_PROG_TAR], [# Always define AMTAR for backward compatibility.
+AM_MISSING_PROG([AMTAR], [tar])
+m4_if([$1], [v7],
+ [am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'],
+ [m4_case([$1], [ustar],, [pax],,
+ [m4_fatal([Unknown tar format])])
+AC_MSG_CHECKING([how to create a $1 tar archive])
+# Loop over all known methods to create a tar archive until one works.
+_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none'
+_am_tools=${am_cv_prog_tar_$1-$_am_tools}
+# Do not fold the above two line into one, because Tru64 sh and
+# Solaris sh will not grok spaces in the rhs of `-'.
+for _am_tool in $_am_tools
+do
+ case $_am_tool in
+ gnutar)
+ for _am_tar in tar gnutar gtar;
+ do
+ AM_RUN_LOG([$_am_tar --version]) && break
+ done
+ am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"'
+ am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"'
+ am__untar="$_am_tar -xf -"
+ ;;
+ plaintar)
+ # Must skip GNU tar: if it does not support --format= it doesn't create
+ # ustar tarball either.
+ (tar --version) >/dev/null 2>&1 && continue
+ am__tar='tar chf - "$$tardir"'
+ am__tar_='tar chf - "$tardir"'
+ am__untar='tar xf -'
+ ;;
+ pax)
+ am__tar='pax -L -x $1 -w "$$tardir"'
+ am__tar_='pax -L -x $1 -w "$tardir"'
+ am__untar='pax -r'
+ ;;
+ cpio)
+ am__tar='find "$$tardir" -print | cpio -o -H $1 -L'
+ am__tar_='find "$tardir" -print | cpio -o -H $1 -L'
+ am__untar='cpio -i -H $1 -d'
+ ;;
+ none)
+ am__tar=false
+ am__tar_=false
+ am__untar=false
+ ;;
+ esac
+
+ # If the value was cached, stop now. We just wanted to have am__tar
+ # and am__untar set.
+ test -n "${am_cv_prog_tar_$1}" && break
+
+ # tar/untar a dummy directory, and stop if the command works
+ rm -rf conftest.dir
+ mkdir conftest.dir
+ echo GrepMe > conftest.dir/file
+ AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar])
+ rm -rf conftest.dir
+ if test -s conftest.tar; then
+ AM_RUN_LOG([$am__untar <conftest.tar])
+ grep GrepMe conftest.dir/file >/dev/null 2>&1 && break
+ fi
+done
+rm -rf conftest.dir
+
+AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool])
+AC_MSG_RESULT([$am_cv_prog_tar_$1])])
+AC_SUBST([am__tar])
+AC_SUBST([am__untar])
+])
+m4trace:m4/aclocal-include.m4:9: -1- AC_DEFUN([AM_ACLOCAL_INCLUDE], [
+ AM_CONDITIONAL(INSIDE_GNOME_COMMON, test x = y)
+
+ test -n "$ACLOCAL_FLAGS" && ACLOCAL="$ACLOCAL $ACLOCAL_FLAGS"
+
+ for k in $1 ; do ACLOCAL="$ACLOCAL -I $k" ; done
+])
+m4trace:m4/alsa.m4:15: -1- AC_DEFUN([AM_PATH_ALSA], [dnl Save the original CFLAGS, LDFLAGS, and LIBS
+alsa_save_CFLAGS="$CFLAGS"
+alsa_save_LDFLAGS="$LDFLAGS"
+alsa_save_LIBS="$LIBS"
+alsa_found=yes
+
+dnl
+dnl Get the cflags and libraries for alsa
+dnl
+AC_ARG_WITH(alsa-prefix,
+[ --with-alsa-prefix=PFX prefix where alsa library is installed (optional)],
+[alsa_prefix="$withval"], [alsa_prefix=""])
+
+AC_ARG_WITH(alsa-inc-prefix,
+[ --with-alsa-inc-prefix=PFX prefix where include libraries are (optional)],
+[alsa_inc_prefix="$withval"], [alsa_inc_prefix=""])
+
+dnl FIXME: this is not yet implemented
+AC_ARG_ENABLE(alsatest,
+[ --disable-alsatest do not try to compile and run a test alsa program],
+[enable_alsatest=no],
+[enable_alsatest=yes])
+
+dnl Add any special include directories
+AC_MSG_CHECKING(for ALSA CFLAGS)
+if test "$alsa_inc_prefix" != "" ; then
+ ALSA_CFLAGS="$ALSA_CFLAGS -I$alsa_inc_prefix"
+ CFLAGS="$CFLAGS -I$alsa_inc_prefix"
+fi
+AC_MSG_RESULT($ALSA_CFLAGS)
+
+dnl add any special lib dirs
+AC_MSG_CHECKING(for ALSA LDFLAGS)
+if test "$alsa_prefix" != "" ; then
+ ALSA_LIBS="$ALSA_LIBS -L$alsa_prefix"
+ LDFLAGS="$LDFLAGS $ALSA_LIBS"
+fi
+
+dnl add the alsa library
+ALSA_LIBS="$ALSA_LIBS -lasound -lm -ldl"
+LIBS=`echo $LIBS | sed 's/-lm//'`
+LIBS=`echo $LIBS | sed 's/-ldl//'`
+LIBS=`echo $LIBS | sed 's/ //'`
+LIBS="$ALSA_LIBS $LIBS"
+AC_MSG_RESULT($ALSA_LIBS)
+
+dnl Check for a working version of libasound that is of the right version.
+min_alsa_version=ifelse([$1], ,0.1.1,$1)
+AC_MSG_CHECKING(for libasound headers version >= $min_alsa_version)
+no_alsa=""
+ alsa_min_major_version=`echo $min_alsa_version | \
+ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
+ alsa_min_minor_version=`echo $min_alsa_version | \
+ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
+ alsa_min_micro_version=`echo $min_alsa_version | \
+ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
+
+AC_LANG_SAVE
+AC_LANG_C
+AC_TRY_COMPILE([
+#include <alsa/asoundlib.h>
+], [
+void main(void)
+{
+/* ensure backward compatibility */
+#if !defined(SND_LIB_MAJOR) && defined(SOUNDLIB_VERSION_MAJOR)
+#define SND_LIB_MAJOR SOUNDLIB_VERSION_MAJOR
+#endif
+#if !defined(SND_LIB_MINOR) && defined(SOUNDLIB_VERSION_MINOR)
+#define SND_LIB_MINOR SOUNDLIB_VERSION_MINOR
+#endif
+#if !defined(SND_LIB_SUBMINOR) && defined(SOUNDLIB_VERSION_SUBMINOR)
+#define SND_LIB_SUBMINOR SOUNDLIB_VERSION_SUBMINOR
+#endif
+
+# if(SND_LIB_MAJOR > $alsa_min_major_version)
+ exit(0);
+# else
+# if(SND_LIB_MAJOR < $alsa_min_major_version)
+# error not present
+# endif
+
+# if(SND_LIB_MINOR > $alsa_min_minor_version)
+ exit(0);
+# else
+# if(SND_LIB_MINOR < $alsa_min_minor_version)
+# error not present
+# endif
+
+# if(SND_LIB_SUBMINOR < $alsa_min_micro_version)
+# error not present
+# endif
+# endif
+# endif
+exit(0);
+}
+],
+ [AC_MSG_RESULT(found.)],
+ [AC_MSG_RESULT(not present.)
+ ifelse([$3], , [AC_MSG_ERROR(Sufficiently new version of libasound not found.)])
+ alsa_found=no]
+)
+AC_LANG_RESTORE
+
+dnl Now that we know that we have the right version, let's see if we have the library and not just the headers.
+AC_LANG_SAVE
+AC_LANG_CPLUSPLUS
+AC_CHECK_LIB([asound], [snd_seq_create_event],,
+ [ifelse([$3], , [AC_MSG_ERROR(No linkable libasound was found.)])
+ alsa_found=no]
+)
+AC_LANG_RESTORE
+
+if test "x$alsa_found" = "xyes" ; then
+ ifelse([$2], , :, [$2])
+ LIBS=`echo $LIBS | sed 's/-lasound//g'`
+ LIBS=`echo $LIBS | sed 's/ //'`
+ LIBS="-lasound $LIBS"
+fi
+if test "x$alsa_found" = "xno" ; then
+ ifelse([$3], , :, [$3])
+ CFLAGS="$alsa_save_CFLAGS"
+ LDFLAGS="$alsa_save_LDFLAGS"
+ LIBS="$alsa_save_LIBS"
+ ALSA_CFLAGS=""
+ ALSA_LIBS=""
+fi
+
+dnl That should be it. Now just export out symbols:
+AC_SUBST(ALSA_CFLAGS)
+AC_SUBST(ALSA_LIBS)
+])
+m4trace:m4/docbook.m4:5: -1- AC_DEFUN([PGAC_PROG_JADE], [AC_CHECK_PROGS([JADE], [openjade jade])])
+m4trace:m4/docbook.m4:11: -1- AC_DEFUN([PGAC_PROG_NSGMLS], [AC_CHECK_PROGS([NSGMLS], [onsgmls nsgmls])])
+m4trace:m4/docbook.m4:17: -1- AC_DEFUN([PGAC_CHECK_DOCBOOK], [AC_REQUIRE([PGAC_PROG_NSGMLS])
+AC_CACHE_CHECK([for DocBook V$1], [pgac_cv_check_docbook],
+[cat >conftest.sgml <<EOF
+<!doctype book PUBLIC "-//OASIS//DTD DocBook V$1//EN">
+<book>
+ <title>test</title>
+ <chapter>
+ <title>random</title>
+ <sect1>
+ <title>testsect</title>
+ <para>text</para>
+ </sect1>
+ </chapter>
+</book>
+EOF
+
+${NSGMLS-false} -s conftest.sgml 1>&5 2>&1
+if test $? -eq 0; then
+ pgac_cv_check_docbook=yes
+else
+ pgac_cv_check_docbook=no
+fi
+rm -f conftest.sgml])
+
+have_docbook=$pgac_cv_check_docbook
+AC_SUBST([have_docbook])
+])
+m4trace:m4/docbook.m4:50: -1- AC_DEFUN([PGAC_PATH_DOCBOOK_STYLESHEETS], [
+AC_MSG_CHECKING([for DocBook stylesheets])
+AC_ARG_WITH(docbook-stylesheets,
+ [ --with-docbook-stylesheets=DIR use DIR/html/docbook.dsl],
+ [muse_docbook_prefix="$withval"])
+AC_CACHE_VAL([pgac_cv_path_stylesheets], [
+if test -n "$muse_docbook_prefix"; then
+ if test -r "$muse_docbook_prefix/html/docbook.dsl" \
+ && test -r "$muse_docbook_prefix/print/docbook.dsl"; then
+ pgac_cv_path_stylesheets="$muse_docbook_prefix"
+ fi
+fi
+if test -z "$pgac_cv_path_stylesheets"; then
+ if test -n "$DOCBOOKSTYLE"; then
+ if test -r "$DOCBOOKSTYLE/html/docbook.dsl" \
+ && test -r "$DOCBOOKSTYLE/print/docbook.dsl"; then
+ pgac_cv_path_stylesheets="$DOCBOOKSTYLE"
+ fi
+ fi
+fi
+if test -z "$pgac_cv_path_stylesheets"; then
+ for pgac_prefix in /usr /usr/local /opt; do
+ for pgac_infix in share lib; do
+ for pgac_postfix in \
+ sgml/stylesheets/nwalsh-modular \
+ sgml/stylesheets/docbook \
+ sgml/docbook/dsssl/modular \
+ sgml/docbook/stylesheet/dsssl/modular
+ do
+ pgac_candidate=$pgac_prefix/$pgac_infix/$pgac_postfix
+ if test -r "$pgac_candidate/html/docbook.dsl" \
+ && test -r "$pgac_candidate/print/docbook.dsl"
+ then
+ pgac_cv_path_stylesheets=$pgac_candidate
+ break 3
+ fi
+ done
+ done
+ done
+fi
+])
+DOCBOOKSTYLE=$pgac_cv_path_stylesheets
+AC_SUBST([DOCBOOKSTYLE])
+if test -n "$DOCBOOKSTYLE"; then
+ AC_MSG_RESULT([$DOCBOOKSTYLE])
+else
+ AC_MSG_RESULT(no)
+fi])
+m4trace:m4/libtool.m4:67: -1- AC_DEFUN([LT_INIT], [AC_PREREQ([2.58])dnl We use AC_INCLUDES_DEFAULT
+AC_BEFORE([$0], [LT_LANG])dnl
+AC_BEFORE([$0], [LT_OUTPUT])dnl
+AC_BEFORE([$0], [LTDL_INIT])dnl
+m4_require([_LT_CHECK_BUILDDIR])dnl
+
+dnl Autoconf doesn't catch unexpanded LT_ macros by default:
+m4_pattern_forbid([^_?LT_[A-Z_]+$])dnl
+m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$])dnl
+dnl aclocal doesn't pull ltoptions.m4, ltsugar.m4, or ltversion.m4
+dnl unless we require an AC_DEFUNed macro:
+AC_REQUIRE([LTOPTIONS_VERSION])dnl
+AC_REQUIRE([LTSUGAR_VERSION])dnl
+AC_REQUIRE([LTVERSION_VERSION])dnl
+AC_REQUIRE([LTOBSOLETE_VERSION])dnl
+m4_require([_LT_PROG_LTMAIN])dnl
+
+dnl Parse OPTIONS
+_LT_SET_OPTIONS([$0], [$1])
+
+# This can be used to rebuild libtool when needed
+LIBTOOL_DEPS="$ltmain"
+
+# Always use our own libtool.
+LIBTOOL='$(SHELL) $(top_builddir)/libtool'
+AC_SUBST(LIBTOOL)dnl
+
+_LT_SETUP
+
+# Only expand once:
+m4_define([LT_INIT])
+])
+m4trace:m4/libtool.m4:102: -1- AU_DEFUN([AC_PROG_LIBTOOL], [m4_if($#, 0, [LT_INIT], [LT_INIT($@)])])
+m4trace:m4/libtool.m4:102: -1- AC_DEFUN([AC_PROG_LIBTOOL], [AC_DIAGNOSE([obsolete], [The macro `AC_PROG_LIBTOOL' is obsolete.
+You should run autoupdate.])dnl
+m4_if($#, 0, [LT_INIT], [LT_INIT($@)])])
+m4trace:m4/libtool.m4:103: -1- AU_DEFUN([AM_PROG_LIBTOOL], [m4_if($#, 0, [LT_INIT], [LT_INIT($@)])])
+m4trace:m4/libtool.m4:103: -1- AC_DEFUN([AM_PROG_LIBTOOL], [AC_DIAGNOSE([obsolete], [The macro `AM_PROG_LIBTOOL' is obsolete.
+You should run autoupdate.])dnl
+m4_if($#, 0, [LT_INIT], [LT_INIT($@)])])
+m4trace:m4/libtool.m4:562: -1- AC_DEFUN([LT_OUTPUT], [: ${CONFIG_LT=./config.lt}
+AC_MSG_NOTICE([creating $CONFIG_LT])
+cat >"$CONFIG_LT" <<_LTEOF
+#! $SHELL
+# Generated by $as_me.
+# Run this file to recreate a libtool stub with the current configuration.
+
+lt_cl_silent=false
+SHELL=\${CONFIG_SHELL-$SHELL}
+_LTEOF
+
+cat >>"$CONFIG_LT" <<\_LTEOF
+AS_SHELL_SANITIZE
+_AS_PREPARE
+
+exec AS_MESSAGE_FD>&1
+exec AS_MESSAGE_LOG_FD>>config.log
+{
+ echo
+ AS_BOX([Running $as_me.])
+} >&AS_MESSAGE_LOG_FD
+
+lt_cl_help="\
+\`$as_me' creates a local libtool stub from the current configuration,
+for use in further configure time tests before the real libtool is
+generated.
+
+Usage: $[0] [[OPTIONS]]
+
+ -h, --help print this help, then exit
+ -V, --version print version number, then exit
+ -q, --quiet do not print progress messages
+ -d, --debug don't remove temporary files
+
+Report bugs to <bug-libtool@gnu.org>."
+
+lt_cl_version="\
+m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl
+m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION])
+configured by $[0], generated by m4_PACKAGE_STRING.
+
+Copyright (C) 2008 Free Software Foundation, Inc.
+This config.lt script is free software; the Free Software Foundation
+gives unlimited permision to copy, distribute and modify it."
+
+while test $[#] != 0
+do
+ case $[1] in
+ --version | --v* | -V )
+ echo "$lt_cl_version"; exit 0 ;;
+ --help | --h* | -h )
+ echo "$lt_cl_help"; exit 0 ;;
+ --debug | --d* | -d )
+ debug=: ;;
+ --quiet | --q* | --silent | --s* | -q )
+ lt_cl_silent=: ;;
+
+ -*) AC_MSG_ERROR([unrecognized option: $[1]
+Try \`$[0] --help' for more information.]) ;;
+
+ *) AC_MSG_ERROR([unrecognized argument: $[1]
+Try \`$[0] --help' for more information.]) ;;
+ esac
+ shift
+done
+
+if $lt_cl_silent; then
+ exec AS_MESSAGE_FD>/dev/null
+fi
+_LTEOF
+
+cat >>"$CONFIG_LT" <<_LTEOF
+_LT_OUTPUT_LIBTOOL_COMMANDS_INIT
+_LTEOF
+
+cat >>"$CONFIG_LT" <<\_LTEOF
+AC_MSG_NOTICE([creating $ofile])
+_LT_OUTPUT_LIBTOOL_COMMANDS
+AS_EXIT(0)
+_LTEOF
+chmod +x "$CONFIG_LT"
+
+# configure is writing to config.log, but config.lt does its own redirection,
+# appending to config.log, which fails on DOS, as config.log is still kept
+# open by configure. Here we exec the FD to /dev/null, effectively closing
+# config.log, so it can be properly (re)opened and appended to by config.lt.
+if test "$no_create" != yes; then
+ lt_cl_success=:
+ test "$silent" = yes &&
+ lt_config_lt_args="$lt_config_lt_args --quiet"
+ exec AS_MESSAGE_LOG_FD>/dev/null
+ $SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false
+ exec AS_MESSAGE_LOG_FD>>config.log
+ $lt_cl_success || AS_EXIT(1)
+fi
+])
+m4trace:m4/libtool.m4:757: -1- AC_DEFUN([LT_SUPPORTED_TAG], [])
+m4trace:m4/libtool.m4:768: -1- AC_DEFUN([LT_LANG], [AC_BEFORE([$0], [LT_OUTPUT])dnl
+m4_case([$1],
+ [C], [_LT_LANG(C)],
+ [C++], [_LT_LANG(CXX)],
+ [Java], [_LT_LANG(GCJ)],
+ [Fortran 77], [_LT_LANG(F77)],
+ [Fortran], [_LT_LANG(FC)],
+ [Windows Resource], [_LT_LANG(RC)],
+ [m4_ifdef([_LT_LANG_]$1[_CONFIG],
+ [_LT_LANG($1)],
+ [m4_fatal([$0: unsupported language: "$1"])])])dnl
+])
+m4trace:m4/libtool.m4:830: -1- AU_DEFUN([AC_LIBTOOL_CXX], [LT_LANG(C++)])
+m4trace:m4/libtool.m4:830: -1- AC_DEFUN([AC_LIBTOOL_CXX], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBTOOL_CXX' is obsolete.
+You should run autoupdate.])dnl
+LT_LANG(C++)])
+m4trace:m4/libtool.m4:831: -1- AU_DEFUN([AC_LIBTOOL_F77], [LT_LANG(Fortran 77)])
+m4trace:m4/libtool.m4:831: -1- AC_DEFUN([AC_LIBTOOL_F77], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBTOOL_F77' is obsolete.
+You should run autoupdate.])dnl
+LT_LANG(Fortran 77)])
+m4trace:m4/libtool.m4:832: -1- AU_DEFUN([AC_LIBTOOL_FC], [LT_LANG(Fortran)])
+m4trace:m4/libtool.m4:832: -1- AC_DEFUN([AC_LIBTOOL_FC], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBTOOL_FC' is obsolete.
+You should run autoupdate.])dnl
+LT_LANG(Fortran)])
+m4trace:m4/libtool.m4:833: -1- AU_DEFUN([AC_LIBTOOL_GCJ], [LT_LANG(Java)])
+m4trace:m4/libtool.m4:833: -1- AC_DEFUN([AC_LIBTOOL_GCJ], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBTOOL_GCJ' is obsolete.
+You should run autoupdate.])dnl
+LT_LANG(Java)])
+m4trace:m4/libtool.m4:1402: -1- AC_DEFUN([_LT_COMPILER_OPTION], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+m4_require([_LT_DECL_SED])dnl
+AC_CACHE_CHECK([$1], [$2],
+ [$2=no
+ m4_if([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4])
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+ lt_compiler_flag="$3"
+ # Insert the option either (1) after the last *FLAGS variable, or
+ # (2) before a word containing "conftest.", or (3) at the end.
+ # Note that $ac_compile itself does not contain backslashes and begins
+ # with a dollar sign (not a hyphen), so the echo should work correctly.
+ # The option is referenced via a variable to avoid confusing sed.
+ lt_compile=`echo "$ac_compile" | $SED \
+ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+ -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \
+ -e 's:$: $lt_compiler_flag:'`
+ (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
+ (eval "$lt_compile" 2>conftest.err)
+ ac_status=$?
+ cat conftest.err >&AS_MESSAGE_LOG_FD
+ echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
+ if (exit $ac_status) && test -s "$ac_outfile"; then
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings other than the usual output.
+ $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp
+ $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+ if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
+ $2=yes
+ fi
+ fi
+ $RM conftest*
+])
+
+if test x"[$]$2" = xyes; then
+ m4_if([$5], , :, [$5])
+else
+ m4_if([$6], , :, [$6])
+fi
+])
+m4trace:m4/libtool.m4:1444: -1- AU_DEFUN([AC_LIBTOOL_COMPILER_OPTION], [m4_if($#, 0, [_LT_COMPILER_OPTION], [_LT_COMPILER_OPTION($@)])])
+m4trace:m4/libtool.m4:1444: -1- AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBTOOL_COMPILER_OPTION' is obsolete.
+You should run autoupdate.])dnl
+m4_if($#, 0, [_LT_COMPILER_OPTION], [_LT_COMPILER_OPTION($@)])])
+m4trace:m4/libtool.m4:1453: -1- AC_DEFUN([_LT_LINKER_OPTION], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+m4_require([_LT_DECL_SED])dnl
+AC_CACHE_CHECK([$1], [$2],
+ [$2=no
+ save_LDFLAGS="$LDFLAGS"
+ LDFLAGS="$LDFLAGS $3"
+ echo "$lt_simple_link_test_code" > conftest.$ac_ext
+ if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
+ # The linker can only warn and ignore the option if not recognized
+ # So say no if there are warnings
+ if test -s conftest.err; then
+ # Append any errors to the config.log.
+ cat conftest.err 1>&AS_MESSAGE_LOG_FD
+ $ECHO "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp
+ $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+ if diff conftest.exp conftest.er2 >/dev/null; then
+ $2=yes
+ fi
+ else
+ $2=yes
+ fi
+ fi
+ $RM -r conftest*
+ LDFLAGS="$save_LDFLAGS"
+])
+
+if test x"[$]$2" = xyes; then
+ m4_if([$4], , :, [$4])
+else
+ m4_if([$5], , :, [$5])
+fi
+])
+m4trace:m4/libtool.m4:1488: -1- AU_DEFUN([AC_LIBTOOL_LINKER_OPTION], [m4_if($#, 0, [_LT_LINKER_OPTION], [_LT_LINKER_OPTION($@)])])
+m4trace:m4/libtool.m4:1488: -1- AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBTOOL_LINKER_OPTION' is obsolete.
+You should run autoupdate.])dnl
+m4_if($#, 0, [_LT_LINKER_OPTION], [_LT_LINKER_OPTION($@)])])
+m4trace:m4/libtool.m4:1495: -1- AC_DEFUN([LT_CMD_MAX_LEN], [AC_REQUIRE([AC_CANONICAL_HOST])dnl
+# find the maximum length of command line arguments
+AC_MSG_CHECKING([the maximum length of command line arguments])
+AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl
+ i=0
+ teststring="ABCD"
+
+ case $build_os in
+ msdosdjgpp*)
+ # On DJGPP, this test can blow up pretty badly due to problems in libc
+ # (any single argument exceeding 2000 bytes causes a buffer overrun
+ # during glob expansion). Even if it were fixed, the result of this
+ # check would be larger than it should be.
+ lt_cv_sys_max_cmd_len=12288; # 12K is about right
+ ;;
+
+ gnu*)
+ # Under GNU Hurd, this test is not required because there is
+ # no limit to the length of command line arguments.
+ # Libtool will interpret -1 as no limit whatsoever
+ lt_cv_sys_max_cmd_len=-1;
+ ;;
+
+ cygwin* | mingw* | cegcc*)
+ # On Win9x/ME, this test blows up -- it succeeds, but takes
+ # about 5 minutes as the teststring grows exponentially.
+ # Worse, since 9x/ME are not pre-emptively multitasking,
+ # you end up with a "frozen" computer, even though with patience
+ # the test eventually succeeds (with a max line length of 256k).
+ # Instead, let's just punt: use the minimum linelength reported by
+ # all of the supported platforms: 8192 (on NT/2K/XP).
+ lt_cv_sys_max_cmd_len=8192;
+ ;;
+
+ amigaos*)
+ # On AmigaOS with pdksh, this test takes hours, literally.
+ # So we just punt and use a minimum line length of 8192.
+ lt_cv_sys_max_cmd_len=8192;
+ ;;
+
+ netbsd* | freebsd* | openbsd* | darwin* | dragonfly*)
+ # This has been around since 386BSD, at least. Likely further.
+ if test -x /sbin/sysctl; then
+ lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax`
+ elif test -x /usr/sbin/sysctl; then
+ lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax`
+ else
+ lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs
+ fi
+ # And add a safety zone
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
+ ;;
+
+ interix*)
+ # We know the value 262144 and hardcode it with a safety zone (like BSD)
+ lt_cv_sys_max_cmd_len=196608
+ ;;
+
+ osf*)
+ # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure
+ # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not
+ # nice to cause kernel panics so lets avoid the loop below.
+ # First set a reasonable default.
+ lt_cv_sys_max_cmd_len=16384
+ #
+ if test -x /sbin/sysconfig; then
+ case `/sbin/sysconfig -q proc exec_disable_arg_limit` in
+ *1*) lt_cv_sys_max_cmd_len=-1 ;;
+ esac
+ fi
+ ;;
+ sco3.2v5*)
+ lt_cv_sys_max_cmd_len=102400
+ ;;
+ sysv5* | sco5v6* | sysv4.2uw2*)
+ kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null`
+ if test -n "$kargmax"; then
+ lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[ ]]//'`
+ else
+ lt_cv_sys_max_cmd_len=32768
+ fi
+ ;;
+ *)
+ lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null`
+ if test -n "$lt_cv_sys_max_cmd_len"; then
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
+ else
+ # Make teststring a little bigger before we do anything with it.
+ # a 1K string should be a reasonable start.
+ for i in 1 2 3 4 5 6 7 8 ; do
+ teststring=$teststring$teststring
+ done
+ SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}}
+ # If test is not a shell built-in, we'll probably end up computing a
+ # maximum length that is only half of the actual maximum length, but
+ # we can't tell.
+ while { test "X"`$SHELL [$]0 --fallback-echo "X$teststring$teststring" 2>/dev/null` \
+ = "XX$teststring$teststring"; } >/dev/null 2>&1 &&
+ test $i != 17 # 1/2 MB should be enough
+ do
+ i=`expr $i + 1`
+ teststring=$teststring$teststring
+ done
+ # Only check the string length outside the loop.
+ lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1`
+ teststring=
+ # Add a significant safety factor because C++ compilers can tack on
+ # massive amounts of additional arguments before passing them to the
+ # linker. It appears as though 1/2 is a usable value.
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2`
+ fi
+ ;;
+ esac
+])
+if test -n $lt_cv_sys_max_cmd_len ; then
+ AC_MSG_RESULT($lt_cv_sys_max_cmd_len)
+else
+ AC_MSG_RESULT(none)
+fi
+max_cmd_len=$lt_cv_sys_max_cmd_len
+_LT_DECL([], [max_cmd_len], [0],
+ [What is the maximum length of a command?])
+])
+m4trace:m4/libtool.m4:1623: -1- AU_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], [m4_if($#, 0, [LT_CMD_MAX_LEN], [LT_CMD_MAX_LEN($@)])])
+m4trace:m4/libtool.m4:1623: -1- AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBTOOL_SYS_MAX_CMD_LEN' is obsolete.
+You should run autoupdate.])dnl
+m4_if($#, 0, [LT_CMD_MAX_LEN], [LT_CMD_MAX_LEN($@)])])
+m4trace:m4/libtool.m4:1724: -1- AC_DEFUN([LT_SYS_DLOPEN_SELF], [m4_require([_LT_HEADER_DLFCN])dnl
+if test "x$enable_dlopen" != xyes; then
+ enable_dlopen=unknown
+ enable_dlopen_self=unknown
+ enable_dlopen_self_static=unknown
+else
+ lt_cv_dlopen=no
+ lt_cv_dlopen_libs=
+
+ case $host_os in
+ beos*)
+ lt_cv_dlopen="load_add_on"
+ lt_cv_dlopen_libs=
+ lt_cv_dlopen_self=yes
+ ;;
+
+ mingw* | pw32* | cegcc*)
+ lt_cv_dlopen="LoadLibrary"
+ lt_cv_dlopen_libs=
+ ;;
+
+ cygwin*)
+ lt_cv_dlopen="dlopen"
+ lt_cv_dlopen_libs=
+ ;;
+
+ darwin*)
+ # if libdl is installed we need to link against it
+ AC_CHECK_LIB([dl], [dlopen],
+ [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],[
+ lt_cv_dlopen="dyld"
+ lt_cv_dlopen_libs=
+ lt_cv_dlopen_self=yes
+ ])
+ ;;
+
+ *)
+ AC_CHECK_FUNC([shl_load],
+ [lt_cv_dlopen="shl_load"],
+ [AC_CHECK_LIB([dld], [shl_load],
+ [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"],
+ [AC_CHECK_FUNC([dlopen],
+ [lt_cv_dlopen="dlopen"],
+ [AC_CHECK_LIB([dl], [dlopen],
+ [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],
+ [AC_CHECK_LIB([svld], [dlopen],
+ [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"],
+ [AC_CHECK_LIB([dld], [dld_link],
+ [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"])
+ ])
+ ])
+ ])
+ ])
+ ])
+ ;;
+ esac
+
+ if test "x$lt_cv_dlopen" != xno; then
+ enable_dlopen=yes
+ else
+ enable_dlopen=no
+ fi
+
+ case $lt_cv_dlopen in
+ dlopen)
+ save_CPPFLAGS="$CPPFLAGS"
+ test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
+
+ save_LDFLAGS="$LDFLAGS"
+ wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
+
+ save_LIBS="$LIBS"
+ LIBS="$lt_cv_dlopen_libs $LIBS"
+
+ AC_CACHE_CHECK([whether a program can dlopen itself],
+ lt_cv_dlopen_self, [dnl
+ _LT_TRY_DLOPEN_SELF(
+ lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes,
+ lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross)
+ ])
+
+ if test "x$lt_cv_dlopen_self" = xyes; then
+ wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\"
+ AC_CACHE_CHECK([whether a statically linked program can dlopen itself],
+ lt_cv_dlopen_self_static, [dnl
+ _LT_TRY_DLOPEN_SELF(
+ lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes,
+ lt_cv_dlopen_self_static=no, lt_cv_dlopen_self_static=cross)
+ ])
+ fi
+
+ CPPFLAGS="$save_CPPFLAGS"
+ LDFLAGS="$save_LDFLAGS"
+ LIBS="$save_LIBS"
+ ;;
+ esac
+
+ case $lt_cv_dlopen_self in
+ yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
+ *) enable_dlopen_self=unknown ;;
+ esac
+
+ case $lt_cv_dlopen_self_static in
+ yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
+ *) enable_dlopen_self_static=unknown ;;
+ esac
+fi
+_LT_DECL([dlopen_support], [enable_dlopen], [0],
+ [Whether dlopen is supported])
+_LT_DECL([dlopen_self], [enable_dlopen_self], [0],
+ [Whether dlopen of programs is supported])
+_LT_DECL([dlopen_self_static], [enable_dlopen_self_static], [0],
+ [Whether dlopen of statically linked programs is supported])
+])
+m4trace:m4/libtool.m4:1841: -1- AU_DEFUN([AC_LIBTOOL_DLOPEN_SELF], [m4_if($#, 0, [LT_SYS_DLOPEN_SELF], [LT_SYS_DLOPEN_SELF($@)])])
+m4trace:m4/libtool.m4:1841: -1- AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBTOOL_DLOPEN_SELF' is obsolete.
+You should run autoupdate.])dnl
+m4_if($#, 0, [LT_SYS_DLOPEN_SELF], [LT_SYS_DLOPEN_SELF($@)])])
+m4trace:m4/libtool.m4:2741: -1- AC_DEFUN([_LT_PATH_TOOL_PREFIX], [m4_require([_LT_DECL_EGREP])dnl
+AC_MSG_CHECKING([for $1])
+AC_CACHE_VAL(lt_cv_path_MAGIC_CMD,
+[case $MAGIC_CMD in
+[[\\/*] | ?:[\\/]*])
+ lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
+ ;;
+*)
+ lt_save_MAGIC_CMD="$MAGIC_CMD"
+ lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+dnl $ac_dummy forces splitting on constant user-supplied paths.
+dnl POSIX.2 word splitting is done only on the output of word expansions,
+dnl not every word. This closes a longstanding sh security hole.
+ ac_dummy="m4_if([$2], , $PATH, [$2])"
+ for ac_dir in $ac_dummy; do
+ IFS="$lt_save_ifs"
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/$1; then
+ lt_cv_path_MAGIC_CMD="$ac_dir/$1"
+ if test -n "$file_magic_test_file"; then
+ case $deplibs_check_method in
+ "file_magic "*)
+ file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
+ MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+ if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
+ $EGREP "$file_magic_regex" > /dev/null; then
+ :
+ else
+ cat <<_LT_EOF 1>&2
+
+*** Warning: the command libtool uses to detect shared libraries,
+*** $file_magic_cmd, produces output that libtool cannot recognize.
+*** The result is that libtool may fail to recognize shared libraries
+*** as such. This will affect the creation of libtool libraries that
+*** depend on shared libraries, but programs linked with such libtool
+*** libraries will work regardless of this problem. Nevertheless, you
+*** may want to report the problem to your system manager and/or to
+*** bug-libtool@gnu.org
+
+_LT_EOF
+ fi ;;
+ esac
+ fi
+ break
+ fi
+ done
+ IFS="$lt_save_ifs"
+ MAGIC_CMD="$lt_save_MAGIC_CMD"
+ ;;
+esac])
+MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+if test -n "$MAGIC_CMD"; then
+ AC_MSG_RESULT($MAGIC_CMD)
+else
+ AC_MSG_RESULT(no)
+fi
+_LT_DECL([], [MAGIC_CMD], [0],
+ [Used to examine libraries when file_magic_cmd begins with "file"])dnl
+])
+m4trace:m4/libtool.m4:2803: -1- AU_DEFUN([AC_PATH_TOOL_PREFIX], [m4_if($#, 0, [_LT_PATH_TOOL_PREFIX], [_LT_PATH_TOOL_PREFIX($@)])])
+m4trace:m4/libtool.m4:2803: -1- AC_DEFUN([AC_PATH_TOOL_PREFIX], [AC_DIAGNOSE([obsolete], [The macro `AC_PATH_TOOL_PREFIX' is obsolete.
+You should run autoupdate.])dnl
+m4_if($#, 0, [_LT_PATH_TOOL_PREFIX], [_LT_PATH_TOOL_PREFIX($@)])])
+m4trace:m4/libtool.m4:2826: -1- AC_DEFUN([LT_PATH_LD], [AC_REQUIRE([AC_PROG_CC])dnl
+AC_REQUIRE([AC_CANONICAL_HOST])dnl
+AC_REQUIRE([AC_CANONICAL_BUILD])dnl
+m4_require([_LT_DECL_SED])dnl
+m4_require([_LT_DECL_EGREP])dnl
+
+AC_ARG_WITH([gnu-ld],
+ [AS_HELP_STRING([--with-gnu-ld],
+ [assume the C compiler uses GNU ld @<:@default=no@:>@])],
+ [test "$withval" = no || with_gnu_ld=yes],
+ [with_gnu_ld=no])dnl
+
+ac_prog=ld
+if test "$GCC" = yes; then
+ # Check if gcc -print-prog-name=ld gives a path.
+ AC_MSG_CHECKING([for ld used by $CC])
+ case $host in
+ *-*-mingw*)
+ # gcc leaves a trailing carriage return which upsets mingw
+ ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
+ *)
+ ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
+ esac
+ case $ac_prog in
+ # Accept absolute paths.
+ [[\\/]]* | ?:[[\\/]]*)
+ re_direlt='/[[^/]][[^/]]*/\.\./'
+ # Canonicalize the pathname of ld
+ ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'`
+ while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do
+ ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"`
+ done
+ test -z "$LD" && LD="$ac_prog"
+ ;;
+ "")
+ # If it fails, then pretend we aren't using GCC.
+ ac_prog=ld
+ ;;
+ *)
+ # If it is relative, then search for the first ld in PATH.
+ with_gnu_ld=unknown
+ ;;
+ esac
+elif test "$with_gnu_ld" = yes; then
+ AC_MSG_CHECKING([for GNU ld])
+else
+ AC_MSG_CHECKING([for non-GNU ld])
+fi
+AC_CACHE_VAL(lt_cv_path_LD,
+[if test -z "$LD"; then
+ lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+ for ac_dir in $PATH; do
+ IFS="$lt_save_ifs"
+ test -z "$ac_dir" && ac_dir=.
+ if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
+ lt_cv_path_LD="$ac_dir/$ac_prog"
+ # Check to see if the program is GNU ld. I'd rather use --version,
+ # but apparently some variants of GNU ld only accept -v.
+ # Break only if it was the GNU/non-GNU ld that we prefer.
+ case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
+ *GNU* | *'with BFD'*)
+ test "$with_gnu_ld" != no && break
+ ;;
+ *)
+ test "$with_gnu_ld" != yes && break
+ ;;
+ esac
+ fi
+ done
+ IFS="$lt_save_ifs"
+else
+ lt_cv_path_LD="$LD" # Let the user override the test with a path.
+fi])
+LD="$lt_cv_path_LD"
+if test -n "$LD"; then
+ AC_MSG_RESULT($LD)
+else
+ AC_MSG_RESULT(no)
+fi
+test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
+_LT_PATH_LD_GNU
+AC_SUBST([LD])
+
+_LT_TAGDECL([], [LD], [1], [The linker used to build libraries])
+])
+m4trace:m4/libtool.m4:2914: -1- AU_DEFUN([AM_PROG_LD], [m4_if($#, 0, [LT_PATH_LD], [LT_PATH_LD($@)])])
+m4trace:m4/libtool.m4:2914: -1- AC_DEFUN([AM_PROG_LD], [AC_DIAGNOSE([obsolete], [The macro `AM_PROG_LD' is obsolete.
+You should run autoupdate.])dnl
+m4_if($#, 0, [LT_PATH_LD], [LT_PATH_LD($@)])])
+m4trace:m4/libtool.m4:2915: -1- AU_DEFUN([AC_PROG_LD], [m4_if($#, 0, [LT_PATH_LD], [LT_PATH_LD($@)])])
+m4trace:m4/libtool.m4:2915: -1- AC_DEFUN([AC_PROG_LD], [AC_DIAGNOSE([obsolete], [The macro `AC_PROG_LD' is obsolete.
+You should run autoupdate.])dnl
+m4_if($#, 0, [LT_PATH_LD], [LT_PATH_LD($@)])])
+m4trace:m4/libtool.m4:3179: -1- AC_DEFUN([LT_PATH_NM], [AC_REQUIRE([AC_PROG_CC])dnl
+AC_CACHE_CHECK([for BSD- or MS-compatible name lister (nm)], lt_cv_path_NM,
+[if test -n "$NM"; then
+ # Let the user override the test.
+ lt_cv_path_NM="$NM"
+else
+ lt_nm_to_check="${ac_tool_prefix}nm"
+ if test -n "$ac_tool_prefix" && test "$build" = "$host"; then
+ lt_nm_to_check="$lt_nm_to_check nm"
+ fi
+ for lt_tmp_nm in $lt_nm_to_check; do
+ lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+ for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do
+ IFS="$lt_save_ifs"
+ test -z "$ac_dir" && ac_dir=.
+ tmp_nm="$ac_dir/$lt_tmp_nm"
+ if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then
+ # Check to see if the nm accepts a BSD-compat flag.
+ # Adding the `sed 1q' prevents false positives on HP-UX, which says:
+ # nm: unknown option "B" ignored
+ # Tru64's nm complains that /dev/null is an invalid object file
+ case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in
+ */dev/null* | *'Invalid file or object type'*)
+ lt_cv_path_NM="$tmp_nm -B"
+ break
+ ;;
+ *)
+ case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in
+ */dev/null*)
+ lt_cv_path_NM="$tmp_nm -p"
+ break
+ ;;
+ *)
+ lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but
+ continue # so that we can try to find one that supports BSD flags
+ ;;
+ esac
+ ;;
+ esac
+ fi
+ done
+ IFS="$lt_save_ifs"
+ done
+ : ${lt_cv_path_NM=no}
+fi])
+if test "$lt_cv_path_NM" != "no"; then
+ NM="$lt_cv_path_NM"
+else
+ # Didn't find any BSD compatible name lister, look for dumpbin.
+ AC_CHECK_TOOLS(DUMPBIN, ["dumpbin -symbols" "link -dump -symbols"], :)
+ AC_SUBST([DUMPBIN])
+ if test "$DUMPBIN" != ":"; then
+ NM="$DUMPBIN"
+ fi
+fi
+test -z "$NM" && NM=nm
+AC_SUBST([NM])
+_LT_DECL([], [NM], [1], [A BSD- or MS-compatible name lister])dnl
+
+AC_CACHE_CHECK([the name lister ($NM) interface], [lt_cv_nm_interface],
+ [lt_cv_nm_interface="BSD nm"
+ echo "int some_variable = 0;" > conftest.$ac_ext
+ (eval echo "\"\$as_me:__oline__: $ac_compile\"" >&AS_MESSAGE_LOG_FD)
+ (eval "$ac_compile" 2>conftest.err)
+ cat conftest.err >&AS_MESSAGE_LOG_FD
+ (eval echo "\"\$as_me:__oline__: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD)
+ (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
+ cat conftest.err >&AS_MESSAGE_LOG_FD
+ (eval echo "\"\$as_me:__oline__: output\"" >&AS_MESSAGE_LOG_FD)
+ cat conftest.out >&AS_MESSAGE_LOG_FD
+ if $GREP 'External.*some_variable' conftest.out > /dev/null; then
+ lt_cv_nm_interface="MS dumpbin"
+ fi
+ rm -f conftest*])
+])
+m4trace:m4/libtool.m4:3257: -1- AU_DEFUN([AM_PROG_NM], [m4_if($#, 0, [LT_PATH_NM], [LT_PATH_NM($@)])])
+m4trace:m4/libtool.m4:3257: -1- AC_DEFUN([AM_PROG_NM], [AC_DIAGNOSE([obsolete], [The macro `AM_PROG_NM' is obsolete.
+You should run autoupdate.])dnl
+m4_if($#, 0, [LT_PATH_NM], [LT_PATH_NM($@)])])
+m4trace:m4/libtool.m4:3258: -1- AU_DEFUN([AC_PROG_NM], [m4_if($#, 0, [LT_PATH_NM], [LT_PATH_NM($@)])])
+m4trace:m4/libtool.m4:3258: -1- AC_DEFUN([AC_PROG_NM], [AC_DIAGNOSE([obsolete], [The macro `AC_PROG_NM' is obsolete.
+You should run autoupdate.])dnl
+m4_if($#, 0, [LT_PATH_NM], [LT_PATH_NM($@)])])
+m4trace:m4/libtool.m4:3267: -1- AC_DEFUN([LT_LIB_M], [AC_REQUIRE([AC_CANONICAL_HOST])dnl
+LIBM=
+case $host in
+*-*-beos* | *-*-cygwin* | *-*-pw32* | *-*-darwin*)
+ # These system don't have libm, or don't need it
+ ;;
+*-ncr-sysv4.3*)
+ AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw")
+ AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm")
+ ;;
+*)
+ AC_CHECK_LIB(m, cos, LIBM="-lm")
+ ;;
+esac
+AC_SUBST([LIBM])
+])
+m4trace:m4/libtool.m4:3286: -1- AU_DEFUN([AC_CHECK_LIBM], [m4_if($#, 0, [LT_LIB_M], [LT_LIB_M($@)])])
+m4trace:m4/libtool.m4:3286: -1- AC_DEFUN([AC_CHECK_LIBM], [AC_DIAGNOSE([obsolete], [The macro `AC_CHECK_LIBM' is obsolete.
+You should run autoupdate.])dnl
+m4_if($#, 0, [LT_LIB_M], [LT_LIB_M($@)])])
+m4trace:m4/libtool.m4:6987: -1- AC_DEFUN([LT_PROG_GCJ], [m4_ifdef([AC_PROG_GCJ], [AC_PROG_GCJ],
+ [m4_ifdef([A][M_PROG_GCJ], [A][M_PROG_GCJ],
+ [AC_CHECK_TOOL(GCJ, gcj,)
+ test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2"
+ AC_SUBST(GCJFLAGS)])])[]dnl
+])
+m4trace:m4/libtool.m4:6996: -1- AU_DEFUN([LT_AC_PROG_GCJ], [m4_if($#, 0, [LT_PROG_GCJ], [LT_PROG_GCJ($@)])])
+m4trace:m4/libtool.m4:6996: -1- AC_DEFUN([LT_AC_PROG_GCJ], [AC_DIAGNOSE([obsolete], [The macro `LT_AC_PROG_GCJ' is obsolete.
+You should run autoupdate.])dnl
+m4_if($#, 0, [LT_PROG_GCJ], [LT_PROG_GCJ($@)])])
+m4trace:m4/libtool.m4:7003: -1- AC_DEFUN([LT_PROG_RC], [AC_CHECK_TOOL(RC, windres,)
+])
+m4trace:m4/libtool.m4:7008: -1- AU_DEFUN([LT_AC_PROG_RC], [m4_if($#, 0, [LT_PROG_RC], [LT_PROG_RC($@)])])
+m4trace:m4/libtool.m4:7008: -1- AC_DEFUN([LT_AC_PROG_RC], [AC_DIAGNOSE([obsolete], [The macro `LT_AC_PROG_RC' is obsolete.
+You should run autoupdate.])dnl
+m4_if($#, 0, [LT_PROG_RC], [LT_PROG_RC($@)])])
+m4trace:m4/libtool.m4:7119: -1- AU_DEFUN([LT_AC_PROG_SED], [m4_if($#, 0, [AC_PROG_SED], [AC_PROG_SED($@)])])
+m4trace:m4/libtool.m4:7119: -1- AC_DEFUN([LT_AC_PROG_SED], [AC_DIAGNOSE([obsolete], [The macro `LT_AC_PROG_SED' is obsolete.
+You should run autoupdate.])dnl
+m4_if($#, 0, [AC_PROG_SED], [AC_PROG_SED($@)])])
+m4trace:m4/ltoptions.m4:13: -1- AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])])
+m4trace:m4/ltoptions.m4:110: -1- AU_DEFUN([AC_LIBTOOL_DLOPEN], [_LT_SET_OPTION([LT_INIT], [dlopen])
+AC_DIAGNOSE([obsolete],
+[$0: Remove this warning and the call to _LT_SET_OPTION when you
+put the `dlopen' option into LT_INIT's first parameter.])
+])
+m4trace:m4/ltoptions.m4:110: -1- AC_DEFUN([AC_LIBTOOL_DLOPEN], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBTOOL_DLOPEN' is obsolete.
+You should run autoupdate.])dnl
+_LT_SET_OPTION([LT_INIT], [dlopen])
+AC_DIAGNOSE([obsolete],
+[$0: Remove this warning and the call to _LT_SET_OPTION when you
+put the `dlopen' option into LT_INIT's first parameter.])
+])
+m4trace:m4/ltoptions.m4:145: -1- AU_DEFUN([AC_LIBTOOL_WIN32_DLL], [AC_REQUIRE([AC_CANONICAL_HOST])dnl
+_LT_SET_OPTION([LT_INIT], [win32-dll])
+AC_DIAGNOSE([obsolete],
+[$0: Remove this warning and the call to _LT_SET_OPTION when you
+put the `win32-dll' option into LT_INIT's first parameter.])
+])
+m4trace:m4/ltoptions.m4:145: -1- AC_DEFUN([AC_LIBTOOL_WIN32_DLL], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBTOOL_WIN32_DLL' is obsolete.
+You should run autoupdate.])dnl
+AC_REQUIRE([AC_CANONICAL_HOST])dnl
+_LT_SET_OPTION([LT_INIT], [win32-dll])
+AC_DIAGNOSE([obsolete],
+[$0: Remove this warning and the call to _LT_SET_OPTION when you
+put the `win32-dll' option into LT_INIT's first parameter.])
+])
+m4trace:m4/ltoptions.m4:194: -1- AC_DEFUN([AC_ENABLE_SHARED], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[shared])
+])
+m4trace:m4/ltoptions.m4:198: -1- AC_DEFUN([AC_DISABLE_SHARED], [_LT_SET_OPTION([LT_INIT], [disable-shared])
+])
+m4trace:m4/ltoptions.m4:202: -1- AU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)])
+m4trace:m4/ltoptions.m4:202: -1- AC_DEFUN([AM_ENABLE_SHARED], [AC_DIAGNOSE([obsolete], [The macro `AM_ENABLE_SHARED' is obsolete.
+You should run autoupdate.])dnl
+AC_ENABLE_SHARED($@)])
+m4trace:m4/ltoptions.m4:203: -1- AU_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)])
+m4trace:m4/ltoptions.m4:203: -1- AC_DEFUN([AM_DISABLE_SHARED], [AC_DIAGNOSE([obsolete], [The macro `AM_DISABLE_SHARED' is obsolete.
+You should run autoupdate.])dnl
+AC_DISABLE_SHARED($@)])
+m4trace:m4/ltoptions.m4:248: -1- AC_DEFUN([AC_ENABLE_STATIC], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static])
+])
+m4trace:m4/ltoptions.m4:252: -1- AC_DEFUN([AC_DISABLE_STATIC], [_LT_SET_OPTION([LT_INIT], [disable-static])
+])
+m4trace:m4/ltoptions.m4:256: -1- AU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)])
+m4trace:m4/ltoptions.m4:256: -1- AC_DEFUN([AM_ENABLE_STATIC], [AC_DIAGNOSE([obsolete], [The macro `AM_ENABLE_STATIC' is obsolete.
+You should run autoupdate.])dnl
+AC_ENABLE_STATIC($@)])
+m4trace:m4/ltoptions.m4:257: -1- AU_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)])
+m4trace:m4/ltoptions.m4:257: -1- AC_DEFUN([AM_DISABLE_STATIC], [AC_DIAGNOSE([obsolete], [The macro `AM_DISABLE_STATIC' is obsolete.
+You should run autoupdate.])dnl
+AC_DISABLE_STATIC($@)])
+m4trace:m4/ltoptions.m4:302: -1- AU_DEFUN([AC_ENABLE_FAST_INSTALL], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install])
+AC_DIAGNOSE([obsolete],
+[$0: Remove this warning and the call to _LT_SET_OPTION when you put
+the `fast-install' option into LT_INIT's first parameter.])
+])
+m4trace:m4/ltoptions.m4:302: -1- AC_DEFUN([AC_ENABLE_FAST_INSTALL], [AC_DIAGNOSE([obsolete], [The macro `AC_ENABLE_FAST_INSTALL' is obsolete.
+You should run autoupdate.])dnl
+_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install])
+AC_DIAGNOSE([obsolete],
+[$0: Remove this warning and the call to _LT_SET_OPTION when you put
+the `fast-install' option into LT_INIT's first parameter.])
+])
+m4trace:m4/ltoptions.m4:309: -1- AU_DEFUN([AC_DISABLE_FAST_INSTALL], [_LT_SET_OPTION([LT_INIT], [disable-fast-install])
+AC_DIAGNOSE([obsolete],
+[$0: Remove this warning and the call to _LT_SET_OPTION when you put
+the `disable-fast-install' option into LT_INIT's first parameter.])
+])
+m4trace:m4/ltoptions.m4:309: -1- AC_DEFUN([AC_DISABLE_FAST_INSTALL], [AC_DIAGNOSE([obsolete], [The macro `AC_DISABLE_FAST_INSTALL' is obsolete.
+You should run autoupdate.])dnl
+_LT_SET_OPTION([LT_INIT], [disable-fast-install])
+AC_DIAGNOSE([obsolete],
+[$0: Remove this warning and the call to _LT_SET_OPTION when you put
+the `disable-fast-install' option into LT_INIT's first parameter.])
+])
+m4trace:m4/ltoptions.m4:342: -1- AU_DEFUN([AC_LIBTOOL_PICMODE], [_LT_SET_OPTION([LT_INIT], [pic-only])
+AC_DIAGNOSE([obsolete],
+[$0: Remove this warning and the call to _LT_SET_OPTION when you
+put the `pic-only' option into LT_INIT's first parameter.])
+])
+m4trace:m4/ltoptions.m4:342: -1- AC_DEFUN([AC_LIBTOOL_PICMODE], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBTOOL_PICMODE' is obsolete.
+You should run autoupdate.])dnl
+_LT_SET_OPTION([LT_INIT], [pic-only])
+AC_DIAGNOSE([obsolete],
+[$0: Remove this warning and the call to _LT_SET_OPTION when you
+put the `pic-only' option into LT_INIT's first parameter.])
+])
+m4trace:m4/ltsugar.m4:13: -1- AC_DEFUN([LTSUGAR_VERSION], [m4_if([0.1])])
+m4trace:m4/ltversion.m4:18: -1- AC_DEFUN([LTVERSION_VERSION], [macro_version='2.2.6b'
+macro_revision='1.3017'
+_LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?])
+_LT_DECL(, macro_revision, 0)
+])
+m4trace:m4/lt~obsolete.m4:36: -1- AC_DEFUN([LTOBSOLETE_VERSION], [m4_if([1])])
+m4trace:m4/lt~obsolete.m4:40: -1- AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH])
+m4trace:m4/lt~obsolete.m4:41: -1- AC_DEFUN([_LT_AC_SHELL_INIT])
+m4trace:m4/lt~obsolete.m4:42: -1- AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX])
+m4trace:m4/lt~obsolete.m4:44: -1- AC_DEFUN([_LT_AC_TAGVAR])
+m4trace:m4/lt~obsolete.m4:45: -1- AC_DEFUN([AC_LTDL_ENABLE_INSTALL])
+m4trace:m4/lt~obsolete.m4:46: -1- AC_DEFUN([AC_LTDL_PREOPEN])
+m4trace:m4/lt~obsolete.m4:47: -1- AC_DEFUN([_LT_AC_SYS_COMPILER])
+m4trace:m4/lt~obsolete.m4:48: -1- AC_DEFUN([_LT_AC_LOCK])
+m4trace:m4/lt~obsolete.m4:49: -1- AC_DEFUN([AC_LIBTOOL_SYS_OLD_ARCHIVE])
+m4trace:m4/lt~obsolete.m4:50: -1- AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF])
+m4trace:m4/lt~obsolete.m4:51: -1- AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O])
+m4trace:m4/lt~obsolete.m4:52: -1- AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS])
+m4trace:m4/lt~obsolete.m4:53: -1- AC_DEFUN([AC_LIBTOOL_OBJDIR])
+m4trace:m4/lt~obsolete.m4:54: -1- AC_DEFUN([AC_LTDL_OBJDIR])
+m4trace:m4/lt~obsolete.m4:55: -1- AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH])
+m4trace:m4/lt~obsolete.m4:56: -1- AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP])
+m4trace:m4/lt~obsolete.m4:57: -1- AC_DEFUN([AC_PATH_MAGIC])
+m4trace:m4/lt~obsolete.m4:58: -1- AC_DEFUN([AC_PROG_LD_GNU])
+m4trace:m4/lt~obsolete.m4:59: -1- AC_DEFUN([AC_PROG_LD_RELOAD_FLAG])
+m4trace:m4/lt~obsolete.m4:60: -1- AC_DEFUN([AC_DEPLIBS_CHECK_METHOD])
+m4trace:m4/lt~obsolete.m4:61: -1- AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI])
+m4trace:m4/lt~obsolete.m4:62: -1- AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])
+m4trace:m4/lt~obsolete.m4:63: -1- AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC])
+m4trace:m4/lt~obsolete.m4:64: -1- AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS])
+m4trace:m4/lt~obsolete.m4:65: -1- AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP])
+m4trace:m4/lt~obsolete.m4:66: -1- AC_DEFUN([LT_AC_PROG_EGREP])
+m4trace:m4/lt~obsolete.m4:71: -1- AC_DEFUN([_AC_PROG_LIBTOOL])
+m4trace:m4/lt~obsolete.m4:72: -1- AC_DEFUN([AC_LIBTOOL_SETUP])
+m4trace:m4/lt~obsolete.m4:73: -1- AC_DEFUN([_LT_AC_CHECK_DLFCN])
+m4trace:m4/lt~obsolete.m4:74: -1- AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER])
+m4trace:m4/lt~obsolete.m4:75: -1- AC_DEFUN([_LT_AC_TAGCONFIG])
+m4trace:m4/lt~obsolete.m4:77: -1- AC_DEFUN([_LT_AC_LANG_CXX])
+m4trace:m4/lt~obsolete.m4:78: -1- AC_DEFUN([_LT_AC_LANG_F77])
+m4trace:m4/lt~obsolete.m4:79: -1- AC_DEFUN([_LT_AC_LANG_GCJ])
+m4trace:m4/lt~obsolete.m4:80: -1- AC_DEFUN([AC_LIBTOOL_RC])
+m4trace:m4/lt~obsolete.m4:81: -1- AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG])
+m4trace:m4/lt~obsolete.m4:82: -1- AC_DEFUN([_LT_AC_LANG_C_CONFIG])
+m4trace:m4/lt~obsolete.m4:83: -1- AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG])
+m4trace:m4/lt~obsolete.m4:84: -1- AC_DEFUN([_LT_AC_LANG_CXX_CONFIG])
+m4trace:m4/lt~obsolete.m4:85: -1- AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG])
+m4trace:m4/lt~obsolete.m4:86: -1- AC_DEFUN([_LT_AC_LANG_F77_CONFIG])
+m4trace:m4/lt~obsolete.m4:87: -1- AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG])
+m4trace:m4/lt~obsolete.m4:88: -1- AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG])
+m4trace:m4/lt~obsolete.m4:89: -1- AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG])
+m4trace:m4/lt~obsolete.m4:90: -1- AC_DEFUN([_LT_AC_LANG_RC_CONFIG])
+m4trace:m4/lt~obsolete.m4:91: -1- AC_DEFUN([AC_LIBTOOL_CONFIG])
+m4trace:m4/lt~obsolete.m4:92: -1- AC_DEFUN([_LT_AC_FILE_LTDLL_C])
+m4trace:configure.ac:5: -1- m4_pattern_forbid([^_?A[CHUM]_])
+m4trace:configure.ac:5: -1- m4_pattern_forbid([_AC_])
+m4trace:configure.ac:5: -1- m4_pattern_forbid([^LIBOBJS$], [do not use LIBOBJS directly, use AC_LIBOBJ (see section `AC_LIBOBJ vs LIBOBJS'])
+m4trace:configure.ac:5: -1- m4_pattern_allow([^AS_FLAGS$])
+m4trace:configure.ac:5: -1- m4_pattern_forbid([^_?m4_])
+m4trace:configure.ac:5: -1- m4_pattern_forbid([^dnl$])
+m4trace:configure.ac:5: -1- m4_pattern_forbid([^_?AS_])
+m4trace:configure.ac:5: -1- m4_pattern_allow([^SHELL$])
+m4trace:configure.ac:5: -1- m4_pattern_allow([^PATH_SEPARATOR$])
+m4trace:configure.ac:5: -1- m4_pattern_allow([^PACKAGE_NAME$])
+m4trace:configure.ac:5: -1- m4_pattern_allow([^PACKAGE_TARNAME$])
+m4trace:configure.ac:5: -1- m4_pattern_allow([^PACKAGE_VERSION$])
+m4trace:configure.ac:5: -1- m4_pattern_allow([^PACKAGE_STRING$])
+m4trace:configure.ac:5: -1- m4_pattern_allow([^PACKAGE_BUGREPORT$])
+m4trace:configure.ac:5: -1- m4_pattern_allow([^PACKAGE_URL$])
+m4trace:configure.ac:5: -1- m4_pattern_allow([^exec_prefix$])
+m4trace:configure.ac:5: -1- m4_pattern_allow([^prefix$])
+m4trace:configure.ac:5: -1- m4_pattern_allow([^program_transform_name$])
+m4trace:configure.ac:5: -1- m4_pattern_allow([^bindir$])
+m4trace:configure.ac:5: -1- m4_pattern_allow([^sbindir$])
+m4trace:configure.ac:5: -1- m4_pattern_allow([^libexecdir$])
+m4trace:configure.ac:5: -1- m4_pattern_allow([^datarootdir$])
+m4trace:configure.ac:5: -1- m4_pattern_allow([^datadir$])
+m4trace:configure.ac:5: -1- m4_pattern_allow([^sysconfdir$])
+m4trace:configure.ac:5: -1- m4_pattern_allow([^sharedstatedir$])
+m4trace:configure.ac:5: -1- m4_pattern_allow([^localstatedir$])
+m4trace:configure.ac:5: -1- m4_pattern_allow([^includedir$])
+m4trace:configure.ac:5: -1- m4_pattern_allow([^oldincludedir$])
+m4trace:configure.ac:5: -1- m4_pattern_allow([^docdir$])
+m4trace:configure.ac:5: -1- m4_pattern_allow([^infodir$])
+m4trace:configure.ac:5: -1- m4_pattern_allow([^htmldir$])
+m4trace:configure.ac:5: -1- m4_pattern_allow([^dvidir$])
+m4trace:configure.ac:5: -1- m4_pattern_allow([^pdfdir$])
+m4trace:configure.ac:5: -1- m4_pattern_allow([^psdir$])
+m4trace:configure.ac:5: -1- m4_pattern_allow([^libdir$])
+m4trace:configure.ac:5: -1- m4_pattern_allow([^localedir$])
+m4trace:configure.ac:5: -1- m4_pattern_allow([^mandir$])
+m4trace:configure.ac:5: -1- m4_pattern_allow([^PACKAGE_NAME$])
+m4trace:configure.ac:5: -1- m4_pattern_allow([^PACKAGE_TARNAME$])
+m4trace:configure.ac:5: -1- m4_pattern_allow([^PACKAGE_VERSION$])
+m4trace:configure.ac:5: -1- m4_pattern_allow([^PACKAGE_STRING$])
+m4trace:configure.ac:5: -1- m4_pattern_allow([^PACKAGE_BUGREPORT$])
+m4trace:configure.ac:5: -1- m4_pattern_allow([^PACKAGE_URL$])
+m4trace:configure.ac:5: -1- m4_pattern_allow([^DEFS$])
+m4trace:configure.ac:5: -1- m4_pattern_allow([^ECHO_C$])
+m4trace:configure.ac:5: -1- m4_pattern_allow([^ECHO_N$])
+m4trace:configure.ac:5: -1- m4_pattern_allow([^ECHO_T$])
+m4trace:configure.ac:5: -1- m4_pattern_allow([^LIBS$])
+m4trace:configure.ac:5: -1- m4_pattern_allow([^build_alias$])
+m4trace:configure.ac:5: -1- m4_pattern_allow([^host_alias$])
+m4trace:configure.ac:5: -1- m4_pattern_allow([^target_alias$])
+m4trace:configure.ac:7: -1- AM_INIT_AUTOMAKE([1.1])
+m4trace:configure.ac:7: -1- m4_pattern_allow([^AM_[A-Z]+FLAGS$])
+m4trace:configure.ac:7: -1- AM_SET_CURRENT_AUTOMAKE_VERSION
+m4trace:configure.ac:7: -1- AM_AUTOMAKE_VERSION([1.11.1])
+m4trace:configure.ac:7: -1- _AM_AUTOCONF_VERSION([2.65])
+m4trace:configure.ac:7: -1- m4_pattern_allow([^INSTALL_PROGRAM$])
+m4trace:configure.ac:7: -1- m4_pattern_allow([^INSTALL_SCRIPT$])
+m4trace:configure.ac:7: -1- m4_pattern_allow([^INSTALL_DATA$])
+m4trace:configure.ac:7: -1- m4_pattern_allow([^am__isrc$])
+m4trace:configure.ac:7: -1- _AM_SUBST_NOTMAKE([am__isrc])
+m4trace:configure.ac:7: -1- m4_pattern_allow([^CYGPATH_W$])
+m4trace:configure.ac:7: -1- _AM_SET_OPTIONS([1.1])
+m4trace:configure.ac:7: -1- _AM_SET_OPTION([1.1])
+m4trace:configure.ac:7: -2- _AM_MANGLE_OPTION([1.1])
+m4trace:configure.ac:7: -1- m4_pattern_allow([^PACKAGE$])
+m4trace:configure.ac:7: -1- m4_pattern_allow([^VERSION$])
+m4trace:configure.ac:7: -1- _AM_IF_OPTION([no-define], [], [AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
+ AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])
+m4trace:configure.ac:7: -2- _AM_MANGLE_OPTION([no-define])
+m4trace:configure.ac:7: -1- m4_pattern_allow([^PACKAGE$])
+m4trace:configure.ac:7: -1- m4_pattern_allow([^VERSION$])
+m4trace:configure.ac:7: -1- AM_SANITY_CHECK
+m4trace:configure.ac:7: -1- AM_MISSING_PROG([ACLOCAL], [aclocal-${am__api_version}])
+m4trace:configure.ac:7: -1- AM_MISSING_HAS_RUN
+m4trace:configure.ac:7: -1- AM_AUX_DIR_EXPAND
+m4trace:configure.ac:7: -1- m4_pattern_allow([^ACLOCAL$])
+m4trace:configure.ac:7: -1- AM_MISSING_PROG([AUTOCONF], [autoconf])
+m4trace:configure.ac:7: -1- m4_pattern_allow([^AUTOCONF$])
+m4trace:configure.ac:7: -1- AM_MISSING_PROG([AUTOMAKE], [automake-${am__api_version}])
+m4trace:configure.ac:7: -1- m4_pattern_allow([^AUTOMAKE$])
+m4trace:configure.ac:7: -1- AM_MISSING_PROG([AUTOHEADER], [autoheader])
+m4trace:configure.ac:7: -1- m4_pattern_allow([^AUTOHEADER$])
+m4trace:configure.ac:7: -1- AM_MISSING_PROG([MAKEINFO], [makeinfo])
+m4trace:configure.ac:7: -1- m4_pattern_allow([^MAKEINFO$])
+m4trace:configure.ac:7: -1- AM_PROG_INSTALL_SH
+m4trace:configure.ac:7: -1- m4_pattern_allow([^install_sh$])
+m4trace:configure.ac:7: -1- AM_PROG_INSTALL_STRIP
+m4trace:configure.ac:7: -1- m4_pattern_allow([^STRIP$])
+m4trace:configure.ac:7: -1- m4_pattern_allow([^INSTALL_STRIP_PROGRAM$])
+m4trace:configure.ac:7: -1- AM_PROG_MKDIR_P
+m4trace:configure.ac:7: -1- m4_pattern_allow([^MKDIR_P$])
+m4trace:configure.ac:7: -1- m4_pattern_allow([^mkdir_p$])
+m4trace:configure.ac:7: -1- m4_pattern_allow([^AWK$])
+m4trace:configure.ac:7: -1- m4_pattern_allow([^SET_MAKE$])
+m4trace:configure.ac:7: -1- AM_SET_LEADING_DOT
+m4trace:configure.ac:7: -1- m4_pattern_allow([^am__leading_dot$])
+m4trace:configure.ac:7: -1- _AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])],
+ [_AM_PROG_TAR([v7])])])
+m4trace:configure.ac:7: -2- _AM_MANGLE_OPTION([tar-ustar])
+m4trace:configure.ac:7: -1- _AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], [_AM_PROG_TAR([v7])])
+m4trace:configure.ac:7: -2- _AM_MANGLE_OPTION([tar-pax])
+m4trace:configure.ac:7: -1- _AM_PROG_TAR([v7])
+m4trace:configure.ac:7: -1- AM_MISSING_PROG([AMTAR], [tar])
+m4trace:configure.ac:7: -1- m4_pattern_allow([^AMTAR$])
+m4trace:configure.ac:7: -1- m4_pattern_allow([^am__tar$])
+m4trace:configure.ac:7: -1- m4_pattern_allow([^am__untar$])
+m4trace:configure.ac:7: -1- _AM_IF_OPTION([no-dependencies], [], [AC_PROVIDE_IFELSE([AC_PROG_CC],
+ [_AM_DEPENDENCIES(CC)],
+ [define([AC_PROG_CC],
+ defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl
+AC_PROVIDE_IFELSE([AC_PROG_CXX],
+ [_AM_DEPENDENCIES(CXX)],
+ [define([AC_PROG_CXX],
+ defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl
+AC_PROVIDE_IFELSE([AC_PROG_OBJC],
+ [_AM_DEPENDENCIES(OBJC)],
+ [define([AC_PROG_OBJC],
+ defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl
+])
+m4trace:configure.ac:7: -2- _AM_MANGLE_OPTION([no-dependencies])
+m4trace:configure.ac:7: -1- _AM_IF_OPTION([silent-rules], [AC_REQUIRE([AM_SILENT_RULES])])
+m4trace:configure.ac:7: -2- _AM_MANGLE_OPTION([silent-rules])
+m4trace:configure.ac:8: -1- AM_CONFIG_HEADER([config.h])
+m4trace:configure.ac:8: -1- _m4_warn([obsolete], [The macro `AM_CONFIG_HEADER' is obsolete.
+You should run autoupdate.], [/usr/share/aclocal-1.11/header.m4:12: AM_CONFIG_HEADER is expanded from...
+configure.ac:8: the top level])
+m4trace:configure.ac:10: -1- AM_ACLOCAL_INCLUDE([m4])
+m4trace:configure.ac:10: -1- AM_CONDITIONAL([INSIDE_GNOME_COMMON], [test x = y])
+m4trace:configure.ac:10: -1- m4_pattern_allow([^INSIDE_GNOME_COMMON_TRUE$])
+m4trace:configure.ac:10: -1- m4_pattern_allow([^INSIDE_GNOME_COMMON_FALSE$])
+m4trace:configure.ac:10: -1- _AM_SUBST_NOTMAKE([INSIDE_GNOME_COMMON_TRUE])
+m4trace:configure.ac:10: -1- _AM_SUBST_NOTMAKE([INSIDE_GNOME_COMMON_FALSE])
+m4trace:configure.ac:13: -1- m4_pattern_allow([^CXX$])
+m4trace:configure.ac:13: -1- m4_pattern_allow([^CXXFLAGS$])
+m4trace:configure.ac:13: -1- m4_pattern_allow([^LDFLAGS$])
+m4trace:configure.ac:13: -1- m4_pattern_allow([^LIBS$])
+m4trace:configure.ac:13: -1- m4_pattern_allow([^CPPFLAGS$])
+m4trace:configure.ac:13: -1- m4_pattern_allow([^CXX$])
+m4trace:configure.ac:13: -1- m4_pattern_allow([^ac_ct_CXX$])
+m4trace:configure.ac:13: -1- m4_pattern_allow([^EXEEXT$])
+m4trace:configure.ac:13: -1- m4_pattern_allow([^OBJEXT$])
+m4trace:configure.ac:13: -1- _AM_DEPENDENCIES([CXX])
+m4trace:configure.ac:13: -1- AM_SET_DEPDIR
+m4trace:configure.ac:13: -1- m4_pattern_allow([^DEPDIR$])
+m4trace:configure.ac:13: -1- AM_OUTPUT_DEPENDENCY_COMMANDS
+m4trace:configure.ac:13: -1- AM_MAKE_INCLUDE
+m4trace:configure.ac:13: -1- m4_pattern_allow([^am__include$])
+m4trace:configure.ac:13: -1- m4_pattern_allow([^am__quote$])
+m4trace:configure.ac:13: -1- AM_DEP_TRACK
+m4trace:configure.ac:13: -1- AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
+m4trace:configure.ac:13: -1- m4_pattern_allow([^AMDEP_TRUE$])
+m4trace:configure.ac:13: -1- m4_pattern_allow([^AMDEP_FALSE$])
+m4trace:configure.ac:13: -1- _AM_SUBST_NOTMAKE([AMDEP_TRUE])
+m4trace:configure.ac:13: -1- _AM_SUBST_NOTMAKE([AMDEP_FALSE])
+m4trace:configure.ac:13: -1- m4_pattern_allow([^AMDEPBACKSLASH$])
+m4trace:configure.ac:13: -1- _AM_SUBST_NOTMAKE([AMDEPBACKSLASH])
+m4trace:configure.ac:13: -1- m4_pattern_allow([^CXXDEPMODE$])
+m4trace:configure.ac:13: -1- AM_CONDITIONAL([am__fastdepCXX], [
+ test "x$enable_dependency_tracking" != xno \
+ && test "$am_cv_CXX_dependencies_compiler_type" = gcc3])
+m4trace:configure.ac:13: -1- m4_pattern_allow([^am__fastdepCXX_TRUE$])
+m4trace:configure.ac:13: -1- m4_pattern_allow([^am__fastdepCXX_FALSE$])
+m4trace:configure.ac:13: -1- _AM_SUBST_NOTMAKE([am__fastdepCXX_TRUE])
+m4trace:configure.ac:13: -1- _AM_SUBST_NOTMAKE([am__fastdepCXX_FALSE])
+m4trace:configure.ac:14: -1- AC_PROG_LIBTOOL
+m4trace:configure.ac:14: -1- _m4_warn([obsolete], [The macro `AC_PROG_LIBTOOL' is obsolete.
+You should run autoupdate.], [m4/libtool.m4:102: AC_PROG_LIBTOOL is expanded from...
+configure.ac:14: the top level])
+m4trace:configure.ac:14: -1- LT_INIT
+m4trace:configure.ac:14: -1- m4_pattern_forbid([^_?LT_[A-Z_]+$])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$])
+m4trace:configure.ac:14: -1- LTOPTIONS_VERSION
+m4trace:configure.ac:14: -1- LTSUGAR_VERSION
+m4trace:configure.ac:14: -1- LTVERSION_VERSION
+m4trace:configure.ac:14: -1- LTOBSOLETE_VERSION
+m4trace:configure.ac:14: -1- _LT_PROG_LTMAIN
+m4trace:configure.ac:14: -1- m4_pattern_allow([^LIBTOOL$])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^build$])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^build_cpu$])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^build_vendor$])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^build_os$])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^host$])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^host_cpu$])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^host_vendor$])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^host_os$])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^CC$])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^CFLAGS$])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^LDFLAGS$])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^LIBS$])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^CPPFLAGS$])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^CC$])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^CC$])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^CC$])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^CC$])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^ac_ct_CC$])
+m4trace:configure.ac:14: -1- _AM_DEPENDENCIES([CC])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^CCDEPMODE$])
+m4trace:configure.ac:14: -1- AM_CONDITIONAL([am__fastdepCC], [
+ test "x$enable_dependency_tracking" != xno \
+ && test "$am_cv_CC_dependencies_compiler_type" = gcc3])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^am__fastdepCC_TRUE$])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^am__fastdepCC_FALSE$])
+m4trace:configure.ac:14: -1- _AM_SUBST_NOTMAKE([am__fastdepCC_TRUE])
+m4trace:configure.ac:14: -1- _AM_SUBST_NOTMAKE([am__fastdepCC_FALSE])
+m4trace:configure.ac:14: -1- LT_PATH_LD
+m4trace:configure.ac:14: -1- m4_pattern_allow([^SED$])
+m4trace:configure.ac:14: -1- AC_PROG_EGREP
+m4trace:configure.ac:14: -1- m4_pattern_allow([^GREP$])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^EGREP$])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^FGREP$])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^GREP$])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^LD$])
+m4trace:configure.ac:14: -1- LT_PATH_NM
+m4trace:configure.ac:14: -1- m4_pattern_allow([^DUMPBIN$])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^ac_ct_DUMPBIN$])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^DUMPBIN$])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^NM$])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^LN_S$])
+m4trace:configure.ac:14: -1- LT_CMD_MAX_LEN
+m4trace:configure.ac:14: -1- m4_pattern_allow([^OBJDUMP$])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^OBJDUMP$])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^AR$])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^STRIP$])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^RANLIB$])
+m4trace:configure.ac:14: -1- m4_pattern_allow([LT_OBJDIR])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^LT_OBJDIR$])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^lt_ECHO$])
+m4trace:configure.ac:14: -1- _LT_CC_BASENAME([$compiler])
+m4trace:configure.ac:14: -1- _LT_PATH_TOOL_PREFIX([${ac_tool_prefix}file], [/usr/bin$PATH_SEPARATOR$PATH])
+m4trace:configure.ac:14: -1- _LT_PATH_TOOL_PREFIX([file], [/usr/bin$PATH_SEPARATOR$PATH])
+m4trace:configure.ac:14: -1- LT_SUPPORTED_TAG([CC])
+m4trace:configure.ac:14: -1- _LT_COMPILER_BOILERPLATE
+m4trace:configure.ac:14: -1- _LT_LINKER_BOILERPLATE
+m4trace:configure.ac:14: -1- _LT_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions], [lt_cv_prog_compiler_rtti_exceptions], [-fno-rtti -fno-exceptions], [], [_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, )="$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, ) -fno-rtti -fno-exceptions"])
+m4trace:configure.ac:14: -1- _LT_COMPILER_OPTION([if $compiler PIC flag $_LT_TAGVAR(lt_prog_compiler_pic, ) works], [_LT_TAGVAR(lt_cv_prog_compiler_pic_works, )], [$_LT_TAGVAR(lt_prog_compiler_pic, )@&t@m4_if([],[],[ -DPIC],[m4_if([],[CXX],[ -DPIC],[])])], [], [case $_LT_TAGVAR(lt_prog_compiler_pic, ) in
+ "" | " "*) ;;
+ *) _LT_TAGVAR(lt_prog_compiler_pic, )=" $_LT_TAGVAR(lt_prog_compiler_pic, )" ;;
+ esac], [_LT_TAGVAR(lt_prog_compiler_pic, )=
+ _LT_TAGVAR(lt_prog_compiler_can_build_shared, )=no])
+m4trace:configure.ac:14: -1- _LT_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works], [lt_cv_prog_compiler_static_works], [$lt_tmp_static_flag], [], [_LT_TAGVAR(lt_prog_compiler_static, )=])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^DSYMUTIL$])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^NMEDIT$])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^LIPO$])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^OTOOL$])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^OTOOL64$])
+m4trace:configure.ac:14: -1- LT_SYS_DLOPEN_SELF
+m4trace:configure.ac:14: -1- m4_pattern_allow([^CPP$])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^CPPFLAGS$])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^CPP$])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^STDC_HEADERS$])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^HAVE_DLFCN_H$])
+m4trace:configure.ac:14: -1- LT_LANG([CXX])
+m4trace:configure.ac:14: -1- LT_SUPPORTED_TAG([CXX])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^CXX$])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^CXXFLAGS$])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^LDFLAGS$])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^LIBS$])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^CPPFLAGS$])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^CXX$])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^ac_ct_CXX$])
+m4trace:configure.ac:14: -1- _AM_DEPENDENCIES([CXX])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^CXXDEPMODE$])
+m4trace:configure.ac:14: -1- AM_CONDITIONAL([am__fastdepCXX], [
+ test "x$enable_dependency_tracking" != xno \
+ && test "$am_cv_CXX_dependencies_compiler_type" = gcc3])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^am__fastdepCXX_TRUE$])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^am__fastdepCXX_FALSE$])
+m4trace:configure.ac:14: -1- _AM_SUBST_NOTMAKE([am__fastdepCXX_TRUE])
+m4trace:configure.ac:14: -1- _AM_SUBST_NOTMAKE([am__fastdepCXX_FALSE])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^CXXCPP$])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^CPPFLAGS$])
+m4trace:configure.ac:14: -1- m4_pattern_allow([^CXXCPP$])
+m4trace:configure.ac:14: -1- _LT_COMPILER_BOILERPLATE
+m4trace:configure.ac:14: -1- _LT_LINKER_BOILERPLATE
+m4trace:configure.ac:14: -1- _LT_CC_BASENAME([$compiler])
+m4trace:configure.ac:14: -1- LT_PATH_LD
+m4trace:configure.ac:14: -1- m4_pattern_allow([^LD$])
+m4trace:configure.ac:14: -1- _LT_COMPILER_OPTION([if $compiler PIC flag $_LT_TAGVAR(lt_prog_compiler_pic, CXX) works], [_LT_TAGVAR(lt_cv_prog_compiler_pic_works, CXX)], [$_LT_TAGVAR(lt_prog_compiler_pic, CXX)@&t@m4_if([CXX],[],[ -DPIC],[m4_if([CXX],[CXX],[ -DPIC],[])])], [], [case $_LT_TAGVAR(lt_prog_compiler_pic, CXX) in
+ "" | " "*) ;;
+ *) _LT_TAGVAR(lt_prog_compiler_pic, CXX)=" $_LT_TAGVAR(lt_prog_compiler_pic, CXX)" ;;
+ esac], [_LT_TAGVAR(lt_prog_compiler_pic, CXX)=
+ _LT_TAGVAR(lt_prog_compiler_can_build_shared, CXX)=no])
+m4trace:configure.ac:14: -1- _LT_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works], [lt_cv_prog_compiler_static_works_CXX], [$lt_tmp_static_flag], [], [_LT_TAGVAR(lt_prog_compiler_static, CXX)=])
+m4trace:configure.ac:15: -1- m4_pattern_allow([^LN_S$])
+m4trace:configure.ac:20: -1- PGAC_PROG_JADE
+m4trace:configure.ac:20: -1- m4_pattern_allow([^JADE$])
+m4trace:configure.ac:22: -1- PGAC_CHECK_DOCBOOK([4.1])
+m4trace:configure.ac:22: -1- PGAC_PROG_NSGMLS
+m4trace:configure.ac:22: -1- m4_pattern_allow([^NSGMLS$])
+m4trace:configure.ac:22: -1- m4_pattern_allow([^have_docbook$])
+m4trace:configure.ac:24: -1- PGAC_PATH_DOCBOOK_STYLESHEETS
+m4trace:configure.ac:24: -1- m4_pattern_allow([^DOCBOOKSTYLE$])
+m4trace:configure.ac:36: -1- m4_pattern_allow([^DOCBOOKTARGETS$])
+m4trace:configure.ac:41: -1- m4_pattern_allow([^DOXYGEN$])
+m4trace:configure.ac:42: -1- m4_pattern_allow([^DOXYGEN$])
+m4trace:configure.ac:47: -1- m4_pattern_allow([^DOT$])
+m4trace:configure.ac:48: -1- m4_pattern_allow([^DOT$])
+m4trace:configure.ac:55: -1- m4_pattern_allow([^HAVEDOT$])
+m4trace:configure.ac:56: -1- m4_pattern_allow([^DOTPATH$])
+m4trace:configure.ac:61: -1- m4_pattern_allow([^PERL$])
+m4trace:configure.ac:62: -1- m4_pattern_allow([^PERL$])
+m4trace:configure.ac:72: -1- m4_pattern_allow([^XMKMF$])
+m4trace:configure.ac:72: -1- m4_pattern_allow([^X_DISPLAY_MISSING$])
+m4trace:configure.ac:72: -1- m4_pattern_allow([^X_CFLAGS$])
+m4trace:configure.ac:72: -1- m4_pattern_allow([^X_PRE_LIBS$])
+m4trace:configure.ac:72: -1- m4_pattern_allow([^X_LIBS$])
+m4trace:configure.ac:72: -1- m4_pattern_allow([^X_EXTRA_LIBS$])
+m4trace:configure.ac:114: -1- m4_pattern_allow([^X_DISPLAY_MISSING$])
+m4trace:configure.ac:114: -1- m4_pattern_allow([^X_CFLAGS$])
+m4trace:configure.ac:114: -1- m4_pattern_allow([^X_PRE_LIBS$])
+m4trace:configure.ac:114: -1- m4_pattern_allow([^X_LIBS$])
+m4trace:configure.ac:114: -1- m4_pattern_allow([^X_EXTRA_LIBS$])
+m4trace:configure.ac:123: -1- AM_PATH_ALSA([0.9.0], [true], [as_fn_error "latest alsa (0.9.x) is required" "$LINENO" 5
+])
+m4trace:configure.ac:123: -1- _m4_warn([obsolete], [The macro `AC_LANG_SAVE' is obsolete.
+You should run autoupdate.], [../../lib/autoconf/lang.m4:126: AC_LANG_SAVE is expanded from...
+m4/alsa.m4:15: AM_PATH_ALSA is expanded from...
+configure.ac:123: the top level])
+m4trace:configure.ac:123: -1- _m4_warn([obsolete], [The macro `AC_LANG_C' is obsolete.
+You should run autoupdate.], [../../lib/autoconf/c.m4:73: AC_LANG_C is expanded from...
+m4/alsa.m4:15: AM_PATH_ALSA is expanded from...
+configure.ac:123: the top level])
+m4trace:configure.ac:123: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete.
+You should run autoupdate.], [../../lib/autoconf/general.m4:2581: AC_TRY_COMPILE is expanded from...
+m4/alsa.m4:15: AM_PATH_ALSA is expanded from...
+configure.ac:123: the top level])
+m4trace:configure.ac:123: -1- _m4_warn([obsolete], [The macro `AC_LANG_RESTORE' is obsolete.
+You should run autoupdate.], [../../lib/autoconf/lang.m4:135: AC_LANG_RESTORE is expanded from...
+m4/alsa.m4:15: AM_PATH_ALSA is expanded from...
+configure.ac:123: the top level])
+m4trace:configure.ac:123: -1- _m4_warn([obsolete], [The macro `AC_LANG_SAVE' is obsolete.
+You should run autoupdate.], [../../lib/autoconf/lang.m4:126: AC_LANG_SAVE is expanded from...
+m4/alsa.m4:15: AM_PATH_ALSA is expanded from...
+configure.ac:123: the top level])
+m4trace:configure.ac:123: -1- _m4_warn([obsolete], [The macro `AC_LANG_CPLUSPLUS' is obsolete.
+You should run autoupdate.], [../../lib/autoconf/c.m4:252: AC_LANG_CPLUSPLUS is expanded from...
+m4/alsa.m4:15: AM_PATH_ALSA is expanded from...
+configure.ac:123: the top level])
+m4trace:configure.ac:123: -1- m4_pattern_allow([^HAVE_LIBASOUND$])
+m4trace:configure.ac:123: -1- _m4_warn([obsolete], [The macro `AC_LANG_RESTORE' is obsolete.
+You should run autoupdate.], [../../lib/autoconf/lang.m4:135: AC_LANG_RESTORE is expanded from...
+m4/alsa.m4:15: AM_PATH_ALSA is expanded from...
+configure.ac:123: the top level])
+m4trace:configure.ac:123: -1- m4_pattern_allow([^ALSA_CFLAGS$])
+m4trace:configure.ac:123: -1- m4_pattern_allow([^ALSA_LIBS$])
+m4trace:configure.ac:152: -1- AM_CONDITIONAL([ENABLEFLUIDSYNTH], [test "$muse_enable_fluidlib" = "yes"])
+m4trace:configure.ac:152: -1- m4_pattern_allow([^ENABLEFLUIDSYNTH_TRUE$])
+m4trace:configure.ac:152: -1- m4_pattern_allow([^ENABLEFLUIDSYNTH_FALSE$])
+m4trace:configure.ac:152: -1- _AM_SUBST_NOTMAKE([ENABLEFLUIDSYNTH_TRUE])
+m4trace:configure.ac:152: -1- _AM_SUBST_NOTMAKE([ENABLEFLUIDSYNTH_FALSE])
+m4trace:configure.ac:153: -1- PKG_CHECK_MODULES([Fluidsynth], [fluidsynth], [FLUIDSYNTHDIRS="fluid fluidsynth"; AC_DEFINE(ENABLEFLUIDSYNTH, 1, [Compile fluidsynth])], [AC_MSG_WARN([libfluidsynth not found; disabling fluidsynth plugins]) ;
+ muse_enable_fluidlib="no"
+ ])
+m4trace:configure.ac:153: -1- PKG_PROG_PKG_CONFIG
+m4trace:configure.ac:153: -1- m4_pattern_forbid([^_?PKG_[A-Z_]+$])
+m4trace:configure.ac:153: -1- m4_pattern_allow([^PKG_CONFIG(_PATH)?$])
+m4trace:configure.ac:153: -1- m4_pattern_allow([^PKG_CONFIG$])
+m4trace:configure.ac:153: -1- m4_pattern_allow([^PKG_CONFIG$])
+m4trace:configure.ac:153: -1- m4_pattern_allow([^Fluidsynth_CFLAGS$])
+m4trace:configure.ac:153: -1- m4_pattern_allow([^Fluidsynth_LIBS$])
+m4trace:configure.ac:153: -1- PKG_CHECK_EXISTS([fluidsynth], [pkg_cv_[]Fluidsynth_CFLAGS=`$PKG_CONFIG --[]cflags "fluidsynth" 2>/dev/null`], [pkg_failed=yes])
+m4trace:configure.ac:153: -1- PKG_CHECK_EXISTS([fluidsynth], [pkg_cv_[]Fluidsynth_LIBS=`$PKG_CONFIG --[]libs "fluidsynth" 2>/dev/null`], [pkg_failed=yes])
+m4trace:configure.ac:153: -1- _PKG_SHORT_ERRORS_SUPPORTED
+m4trace:configure.ac:153: -1- m4_pattern_allow([^ENABLEFLUIDSYNTH$])
+m4trace:configure.ac:158: -1- m4_pattern_allow([^FLUIDSYNTHDIRS$])
+m4trace:configure.ac:159: -1- m4_pattern_allow([^synth_fluidsynth$])
+m4trace:configure.ac:160: -1- m4_pattern_allow([^synth_fluid$])
+m4trace:configure.ac:170: -1- PKG_CHECK_MODULES([SNDFILE], [sndfile >= 1.0.0], [true], [as_fn_error "need libsndfile >= 1.0.0" "$LINENO" 5
+])
+m4trace:configure.ac:170: -1- m4_pattern_allow([^SNDFILE_CFLAGS$])
+m4trace:configure.ac:170: -1- m4_pattern_allow([^SNDFILE_LIBS$])
+m4trace:configure.ac:170: -1- PKG_CHECK_EXISTS([sndfile >= 1.0.0], [pkg_cv_[]SNDFILE_CFLAGS=`$PKG_CONFIG --[]cflags "sndfile >= 1.0.0" 2>/dev/null`], [pkg_failed=yes])
+m4trace:configure.ac:170: -1- PKG_CHECK_EXISTS([sndfile >= 1.0.0], [pkg_cv_[]SNDFILE_LIBS=`$PKG_CONFIG --[]libs "sndfile >= 1.0.0" 2>/dev/null`], [pkg_failed=yes])
+m4trace:configure.ac:170: -1- _PKG_SHORT_ERRORS_SUPPORTED
+m4trace:configure.ac:178: -1- PKG_CHECK_MODULES([SAMPLERATE], [samplerate >= 0.1.0], [true], [as_fn_error "need libsamplerate" "$LINENO" 5
+])
+m4trace:configure.ac:178: -1- m4_pattern_allow([^SAMPLERATE_CFLAGS$])
+m4trace:configure.ac:178: -1- m4_pattern_allow([^SAMPLERATE_LIBS$])
+m4trace:configure.ac:178: -1- PKG_CHECK_EXISTS([samplerate >= 0.1.0], [pkg_cv_[]SAMPLERATE_CFLAGS=`$PKG_CONFIG --[]cflags "samplerate >= 0.1.0" 2>/dev/null`], [pkg_failed=yes])
+m4trace:configure.ac:178: -1- PKG_CHECK_EXISTS([samplerate >= 0.1.0], [pkg_cv_[]SAMPLERATE_LIBS=`$PKG_CONFIG --[]libs "samplerate >= 0.1.0" 2>/dev/null`], [pkg_failed=yes])
+m4trace:configure.ac:178: -1- _PKG_SHORT_ERRORS_SUPPORTED
+m4trace:configure.ac:196: -1- m4_pattern_allow([^UUID_CFLAGS$])
+m4trace:configure.ac:197: -1- m4_pattern_allow([^UUID_LIBS$])
+m4trace:configure.ac:208: -1- PKG_CHECK_MODULES([JACK], [jack >= 0.98.0], [true], [as_fn_error "need JACK >= 0.98.0" "$LINENO" 5
+ ])
+m4trace:configure.ac:208: -1- m4_pattern_allow([^JACK_CFLAGS$])
+m4trace:configure.ac:208: -1- m4_pattern_allow([^JACK_LIBS$])
+m4trace:configure.ac:208: -1- PKG_CHECK_EXISTS([jack >= 0.98.0], [pkg_cv_[]JACK_CFLAGS=`$PKG_CONFIG --[]cflags "jack >= 0.98.0" 2>/dev/null`], [pkg_failed=yes])
+m4trace:configure.ac:208: -1- PKG_CHECK_EXISTS([jack >= 0.98.0], [pkg_cv_[]JACK_LIBS=`$PKG_CONFIG --[]libs "jack >= 0.98.0" 2>/dev/null`], [pkg_failed=yes])
+m4trace:configure.ac:208: -1- _PKG_SHORT_ERRORS_SUPPORTED
+m4trace:configure.ac:234: -1- PKG_CHECK_MODULES([LASH], [lash-1.0 >= 0.2], [LASH_FOUND="yes"], [LASH_FOUND="no"])
+m4trace:configure.ac:234: -1- m4_pattern_allow([^LASH_CFLAGS$])
+m4trace:configure.ac:234: -1- m4_pattern_allow([^LASH_LIBS$])
+m4trace:configure.ac:234: -1- PKG_CHECK_EXISTS([lash-1.0 >= 0.2], [pkg_cv_[]LASH_CFLAGS=`$PKG_CONFIG --[]cflags "lash-1.0 >= 0.2" 2>/dev/null`], [pkg_failed=yes])
+m4trace:configure.ac:234: -1- PKG_CHECK_EXISTS([lash-1.0 >= 0.2], [pkg_cv_[]LASH_LIBS=`$PKG_CONFIG --[]libs "lash-1.0 >= 0.2" 2>/dev/null`], [pkg_failed=yes])
+m4trace:configure.ac:234: -1- _PKG_SHORT_ERRORS_SUPPORTED
+m4trace:configure.ac:235: -1- m4_pattern_allow([^LASH_CFLAGS$])
+m4trace:configure.ac:236: -1- m4_pattern_allow([^LASH_LIBS$])
+m4trace:configure.ac:239: -1- m4_pattern_allow([^HAVE_LASH$])
+m4trace:configure.ac:241: -1- m4_pattern_allow([^LASH_VERSION$])
+m4trace:configure.ac:247: -1- AM_CONDITIONAL([HAVE_LASH], [test "$LASH_FOUND" = "yes"])
+m4trace:configure.ac:247: -1- m4_pattern_allow([^HAVE_LASH_TRUE$])
+m4trace:configure.ac:247: -1- m4_pattern_allow([^HAVE_LASH_FALSE$])
+m4trace:configure.ac:247: -1- _AM_SUBST_NOTMAKE([HAVE_LASH_TRUE])
+m4trace:configure.ac:247: -1- _AM_SUBST_NOTMAKE([HAVE_LASH_FALSE])
+m4trace:configure.ac:260: -1- m4_pattern_allow([^RTCAP$])
+m4trace:configure.ac:279: -1- AM_CONDITIONAL([RTCAP], [test "$report_rtcap" = "yes"])
+m4trace:configure.ac:279: -1- m4_pattern_allow([^RTCAP_TRUE$])
+m4trace:configure.ac:279: -1- m4_pattern_allow([^RTCAP_FALSE$])
+m4trace:configure.ac:279: -1- _AM_SUBST_NOTMAKE([RTCAP_TRUE])
+m4trace:configure.ac:279: -1- _AM_SUBST_NOTMAKE([RTCAP_FALSE])
+m4trace:configure.ac:280: -1- m4_pattern_allow([^GIVERTCAP$])
+m4trace:configure.ac:301: -1- m4_pattern_allow([^SUIDINSTALL$])
+m4trace:configure.ac:321: -1- m4_pattern_allow([^SUIDBUILD$])
+m4trace:configure.ac:344: -1- m4_pattern_allow([^DOXYGEN_TREEVIEW$])
+m4trace:configure.ac:409: -1- m4_pattern_allow([^PCH$])
+m4trace:configure.ac:409: -1- m4_pattern_allow([^PCH$])
+m4trace:configure.ac:425: -1- AM_CONDITIONAL([PCH], [test "$PCH" = "yes"])
+m4trace:configure.ac:425: -1- m4_pattern_allow([^PCH_TRUE$])
+m4trace:configure.ac:425: -1- m4_pattern_allow([^PCH_FALSE$])
+m4trace:configure.ac:425: -1- _AM_SUBST_NOTMAKE([PCH_TRUE])
+m4trace:configure.ac:425: -1- _AM_SUBST_NOTMAKE([PCH_FALSE])
+m4trace:configure.ac:452: -1- m4_pattern_allow([^USE_SSE$])
+m4trace:configure.ac:452: -1- m4_pattern_allow([^USE_SSE$])
+m4trace:configure.ac:469: -1- AM_CONDITIONAL([USE_SSE], [test "$USE_SSE" = "yes"])
+m4trace:configure.ac:469: -1- m4_pattern_allow([^USE_SSE_TRUE$])
+m4trace:configure.ac:469: -1- m4_pattern_allow([^USE_SSE_FALSE$])
+m4trace:configure.ac:469: -1- _AM_SUBST_NOTMAKE([USE_SSE_TRUE])
+m4trace:configure.ac:469: -1- _AM_SUBST_NOTMAKE([USE_SSE_FALSE])
+m4trace:configure.ac:502: -1- AM_PATH_PYTHON([], [], [:])
+m4trace:configure.ac:502: -1- m4_pattern_allow([^PYTHON$])
+m4trace:configure.ac:502: -1- m4_pattern_allow([^PYTHON_VERSION$])
+m4trace:configure.ac:502: -1- m4_pattern_allow([^PYTHON_PREFIX$])
+m4trace:configure.ac:502: -1- m4_pattern_allow([^PYTHON_EXEC_PREFIX$])
+m4trace:configure.ac:502: -1- m4_pattern_allow([^PYTHON_PLATFORM$])
+m4trace:configure.ac:502: -1- m4_pattern_allow([^pythondir$])
+m4trace:configure.ac:502: -1- m4_pattern_allow([^pkgpythondir$])
+m4trace:configure.ac:502: -1- m4_pattern_allow([^pyexecdir$])
+m4trace:configure.ac:502: -1- m4_pattern_allow([^pkgpyexecdir$])
+m4trace:configure.ac:539: -1- AM_CONDITIONAL([ENABLE_PYTHON], [test "$enable_python" = "yes"])
+m4trace:configure.ac:539: -1- m4_pattern_allow([^ENABLE_PYTHON_TRUE$])
+m4trace:configure.ac:539: -1- m4_pattern_allow([^ENABLE_PYTHON_FALSE$])
+m4trace:configure.ac:539: -1- _AM_SUBST_NOTMAKE([ENABLE_PYTHON_TRUE])
+m4trace:configure.ac:539: -1- _AM_SUBST_NOTMAKE([ENABLE_PYTHON_FALSE])
+m4trace:configure.ac:540: -1- m4_pattern_allow([^PYTHON_VERSION$])
+m4trace:configure.ac:541: -1- m4_pattern_allow([^PYTHON_INCLUDES$])
+m4trace:configure.ac:542: -1- m4_pattern_allow([^PYTHON_LIB$])
+m4trace:configure.ac:583: -1- PKG_CHECK_MODULES([FST], [libfst], [ vst_possible=yes ], [ vst_possible=no ])
+m4trace:configure.ac:583: -1- m4_pattern_allow([^FST_CFLAGS$])
+m4trace:configure.ac:583: -1- m4_pattern_allow([^FST_LIBS$])
+m4trace:configure.ac:583: -1- PKG_CHECK_EXISTS([libfst], [pkg_cv_[]FST_CFLAGS=`$PKG_CONFIG --[]cflags "libfst" 2>/dev/null`], [pkg_failed=yes])
+m4trace:configure.ac:583: -1- PKG_CHECK_EXISTS([libfst], [pkg_cv_[]FST_LIBS=`$PKG_CONFIG --[]libs "libfst" 2>/dev/null`], [pkg_failed=yes])
+m4trace:configure.ac:583: -1- _PKG_SHORT_ERRORS_SUPPORTED
+m4trace:configure.ac:591: -1- m4_pattern_allow([^VST_SUPPORT$])
+m4trace:configure.ac:594: -1- AM_CONDITIONAL([VST_SUPPORT], [test x$vst_possible = xyes -a x$vst_requested = xyes])
+m4trace:configure.ac:594: -1- m4_pattern_allow([^VST_SUPPORT_TRUE$])
+m4trace:configure.ac:594: -1- m4_pattern_allow([^VST_SUPPORT_FALSE$])
+m4trace:configure.ac:594: -1- _AM_SUBST_NOTMAKE([VST_SUPPORT_TRUE])
+m4trace:configure.ac:594: -1- _AM_SUBST_NOTMAKE([VST_SUPPORT_FALSE])
+m4trace:configure.ac:616: -1- PKG_CHECK_MODULES([LO], [liblo], [ LO_LIB_FOUND=yes ], [ LO_LIB_FOUND=no ])
+m4trace:configure.ac:616: -1- m4_pattern_allow([^LO_CFLAGS$])
+m4trace:configure.ac:616: -1- m4_pattern_allow([^LO_LIBS$])
+m4trace:configure.ac:616: -1- PKG_CHECK_EXISTS([liblo], [pkg_cv_[]LO_CFLAGS=`$PKG_CONFIG --[]cflags "liblo" 2>/dev/null`], [pkg_failed=yes])
+m4trace:configure.ac:616: -1- PKG_CHECK_EXISTS([liblo], [pkg_cv_[]LO_LIBS=`$PKG_CONFIG --[]libs "liblo" 2>/dev/null`], [pkg_failed=yes])
+m4trace:configure.ac:616: -1- _PKG_SHORT_ERRORS_SUPPORTED
+m4trace:configure.ac:627: -1- m4_pattern_allow([^LO_CFLAGS$])
+m4trace:configure.ac:628: -1- m4_pattern_allow([^LO_LIBS$])
+m4trace:configure.ac:629: -1- m4_pattern_allow([^OSC_SUPPORT$])
+m4trace:configure.ac:632: -1- AM_CONDITIONAL([OSC_SUPPORT], [test x$LO_LIB_FOUND = xyes])
+m4trace:configure.ac:632: -1- m4_pattern_allow([^OSC_SUPPORT_TRUE$])
+m4trace:configure.ac:632: -1- m4_pattern_allow([^OSC_SUPPORT_FALSE$])
+m4trace:configure.ac:632: -1- _AM_SUBST_NOTMAKE([OSC_SUPPORT_TRUE])
+m4trace:configure.ac:632: -1- _AM_SUBST_NOTMAKE([OSC_SUPPORT_FALSE])
+m4trace:configure.ac:686: -1- m4_pattern_allow([^DSSI_SUPPORT$])
+m4trace:configure.ac:690: -1- AM_CONDITIONAL([DSSI_SUPPORT], [test x$DSSI_FOUND = xyes])
+m4trace:configure.ac:690: -1- m4_pattern_allow([^DSSI_SUPPORT_TRUE$])
+m4trace:configure.ac:690: -1- m4_pattern_allow([^DSSI_SUPPORT_FALSE$])
+m4trace:configure.ac:690: -1- _AM_SUBST_NOTMAKE([DSSI_SUPPORT_TRUE])
+m4trace:configure.ac:690: -1- _AM_SUBST_NOTMAKE([DSSI_SUPPORT_FALSE])
+m4trace:configure.ac:707: -1- m4_pattern_allow([^HAVE_AUDIO$])
+m4trace:configure.ac:708: -1- AM_CONDITIONAL([HAVE_AUDIO], [test "yes" = "yes"])
+m4trace:configure.ac:708: -1- m4_pattern_allow([^HAVE_AUDIO_TRUE$])
+m4trace:configure.ac:708: -1- m4_pattern_allow([^HAVE_AUDIO_FALSE$])
+m4trace:configure.ac:708: -1- _AM_SUBST_NOTMAKE([HAVE_AUDIO_TRUE])
+m4trace:configure.ac:708: -1- _AM_SUBST_NOTMAKE([HAVE_AUDIO_FALSE])
+m4trace:configure.ac:709: -1- m4_pattern_allow([^MUSECXXFLAGS$])
+m4trace:configure.ac:710: -1- m4_pattern_allow([^QTDIR_INC$])
+m4trace:configure.ac:711: -1- m4_pattern_allow([^QT_LIBS$])
+m4trace:configure.ac:712: -1- m4_pattern_allow([^QTDIR_BIN$])
+m4trace:configure.ac:720: -1- _m4_warn([obsolete], [AC_OUTPUT should be used without arguments.
+You should run autoupdate.], [])
+m4trace:configure.ac:720: -1- m4_pattern_allow([^LIB@&t@OBJS$])
+m4trace:configure.ac:720: -1- m4_pattern_allow([^LTLIBOBJS$])
+m4trace:configure.ac:720: -1- AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])
+m4trace:configure.ac:720: -1- m4_pattern_allow([^am__EXEEXT_TRUE$])
+m4trace:configure.ac:720: -1- m4_pattern_allow([^am__EXEEXT_FALSE$])
+m4trace:configure.ac:720: -1- _AM_SUBST_NOTMAKE([am__EXEEXT_TRUE])
+m4trace:configure.ac:720: -1- _AM_SUBST_NOTMAKE([am__EXEEXT_FALSE])
+m4trace:configure.ac:720: -1- _AC_AM_CONFIG_HEADER_HOOK(["$ac_file"])
+m4trace:configure.ac:720: -1- _AM_OUTPUT_DEPENDENCY_COMMANDS
+m4trace:configure.ac:720: -1- _LT_PROG_LTMAIN
diff --git a/muse2/common.am b/muse2/common.am
new file mode 100644
index 00000000..919f8593
--- /dev/null
+++ b/muse2/common.am
@@ -0,0 +1,47 @@
+AM_CXXFLAGS = $(MUSECXXFLAGS) -I.. -I$(top_srcdir)/synti -I$(top_srcdir)/muse/widgets
+AM_CXXFLAGS += -DQT_SHARED -DQT_THREAD_SUPPORT -DQT_PLUGIN $(QTDIR_INC) -DQT3_SUPPORT
+AM_CPPFLAGS =
+MOC = $(QTDIR_BIN)/moc
+#UIC = $(QTDIR_BIN)/uic3
+UIC = /usr/bin/uic3
+
+UIFILES = $(wildcard *.ui)
+
+MOCFILES = $(shell for h in $(filter %.h,$(SOURCES)); do \
+ if grep -q Q_OBJECT $$h; then \
+ echo $$h | sed "s/\(.*\)\.h/moc_\1.cpp/"; \
+ fi; \
+ done)
+
+BUILT_SOURCES = $(MOCFILES) $(UIFILES:%.ui=%.h)
+
+MOSTLYCLEANFILES = $(MOCFILES) $(UIFILES:%.ui=%.h)
+
+de:
+ @for base in $(MOCFILES); do echo -e "\t$${base}.cpp $${base}.h \\"; done
+
+nde:
+ @for base in $(MOCFILES); do echo -e "\tmoc_$${base}.cpp \\"; done
+
+SUFFIXES = .ui .h.gch
+
+.ui.o: %.h
+ $(UIC) -L $(top_srcdir)/muse/widgets -o $*.cpp -impl $*.h $*.ui
+ $(MOC) $*.h >> $*.cpp
+ $(CXXCOMPILE) -c $*.cpp -o $*.o
+ $(RM) $*.cpp moc_$*.cpp moc_$*.o
+
+.ui.lo: %.h
+ $(UIC) -L $(top_srcdir)/muse/widgets -o $*.cpp -impl $*.h $*.ui
+ $(MOC) $*.h >> $*.cpp
+ $(LTCXXCOMPILE) -c $*.cpp -o $*.lo
+ $(RM) $*.cpp moc_$*.cpp moc_$*.lo moc_$*.o
+
+
+moc_%.cpp: %.h
+ $(MOC) $< -o $@
+
+%.h: %.ui
+ $(UIC) -o $@ $<
+# $(UIC) -L $(top_srcdir)/muse/widgets -o $@ $<
+
diff --git a/muse2/config.guess b/muse2/config.guess
new file mode 120000
index 00000000..405bc323
--- /dev/null
+++ b/muse2/config.guess
@@ -0,0 +1 @@
+/usr/share/automake-1.11/config.guess \ No newline at end of file
diff --git a/muse2/config.h.in b/muse2/config.h.in
new file mode 100644
index 00000000..cd2d6948
--- /dev/null
+++ b/muse2/config.h.in
@@ -0,0 +1,98 @@
+/* config.h.in. Generated from configure.ac by autoheader. */
+
+/* support for DSSI + DSSI-Vst plugins */
+#undef DSSI_SUPPORT
+
+/* Compile fluidsynth */
+#undef ENABLEFLUIDSYNTH
+
+/* Make audio-specific code */
+#undef HAVE_AUDIO
+
+/* Define to 1 if you have the <dlfcn.h> header file. */
+#undef HAVE_DLFCN_H
+
+/* Define to 1 if you have the <inttypes.h> header file. */
+#undef HAVE_INTTYPES_H
+
+/* whether or not we are supporting lash */
+#undef HAVE_LASH
+
+/* Define to 1 if you have the `asound' library (-lasound). */
+#undef HAVE_LIBASOUND
+
+/* Define to 1 if you have the <memory.h> header file. */
+#undef HAVE_MEMORY_H
+
+/* Define to 1 if you have the <stdint.h> header file. */
+#undef HAVE_STDINT_H
+
+/* Define to 1 if you have the <stdlib.h> header file. */
+#undef HAVE_STDLIB_H
+
+/* Define to 1 if you have the <strings.h> header file. */
+#undef HAVE_STRINGS_H
+
+/* Define to 1 if you have the <string.h> header file. */
+#undef HAVE_STRING_H
+
+/* Define to 1 if you have the <sys/stat.h> header file. */
+#undef HAVE_SYS_STAT_H
+
+/* Define to 1 if you have the <sys/types.h> header file. */
+#undef HAVE_SYS_TYPES_H
+
+/* Define to 1 if you have the <unistd.h> header file. */
+#undef HAVE_UNISTD_H
+
+/* The version of lash we're compiling against */
+#undef LASH_VERSION
+
+/* Define to the sub-directory in which libtool stores uninstalled libraries.
+ */
+#undef LT_OBJDIR
+
+/* support for OSC */
+#undef OSC_SUPPORT
+
+/* Name of package */
+#undef PACKAGE
+
+/* Define to the address where bug reports for this package should be sent. */
+#undef PACKAGE_BUGREPORT
+
+/* Define to the full name of this package. */
+#undef PACKAGE_NAME
+
+/* Define to the full name and version of this package. */
+#undef PACKAGE_STRING
+
+/* Define to the one symbol short name of this package. */
+#undef PACKAGE_TARNAME
+
+/* Define to the home page for this package. */
+#undef PACKAGE_URL
+
+/* Define to the version of this package. */
+#undef PACKAGE_VERSION
+
+/* whether or not we use precompiled headers */
+#undef PCH
+
+/* Use givertcap */
+#undef RTCAP
+
+/* Define to 1 if you have the ANSI C header files. */
+#undef STDC_HEADERS
+
+/* whether or not to enable SSE */
+#undef USE_SSE
+
+/* Version number of package */
+#undef VERSION
+
+/* support for VST/win plugins */
+#undef VST_SUPPORT
+
+/* Define to 1 if the X Window System is missing or not being used. */
+#undef X_DISPLAY_MISSING
diff --git a/muse2/config.sub b/muse2/config.sub
new file mode 120000
index 00000000..4d47fbcb
--- /dev/null
+++ b/muse2/config.sub
@@ -0,0 +1 @@
+/usr/share/automake-1.11/config.sub \ No newline at end of file
diff --git a/muse2/configure b/muse2/configure
new file mode 100755
index 00000000..3af64d7b
--- /dev/null
+++ b/muse2/configure
@@ -0,0 +1,20639 @@
+#! /bin/sh
+# Guess values for system-dependent variables and create Makefiles.
+# Generated by GNU Autoconf 2.65 for MusE 1.1.
+#
+#
+# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
+# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
+# Inc.
+#
+#
+# This configure script is free software; the Free Software Foundation
+# gives unlimited permission to copy, distribute and modify it.
+## -------------------- ##
+## M4sh Initialization. ##
+## -------------------- ##
+
+# Be more Bourne compatible
+DUALCASE=1; export DUALCASE # for MKS sh
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
+ emulate sh
+ NULLCMD=:
+ # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
+ # is contrary to our usage. Disable this feature.
+ alias -g '${1+"$@"}'='"$@"'
+ setopt NO_GLOB_SUBST
+else
+ case `(set -o) 2>/dev/null` in #(
+ *posix*) :
+ set -o posix ;; #(
+ *) :
+ ;;
+esac
+fi
+
+
+as_nl='
+'
+export as_nl
+# Printing a long string crashes Solaris 7 /usr/bin/printf.
+as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
+# Prefer a ksh shell builtin over an external printf program on Solaris,
+# but without wasting forks for bash or zsh.
+if test -z "$BASH_VERSION$ZSH_VERSION" \
+ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
+ as_echo='print -r --'
+ as_echo_n='print -rn --'
+elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
+ as_echo='printf %s\n'
+ as_echo_n='printf %s'
+else
+ if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
+ as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
+ as_echo_n='/usr/ucb/echo -n'
+ else
+ as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
+ as_echo_n_body='eval
+ arg=$1;
+ case $arg in #(
+ *"$as_nl"*)
+ expr "X$arg" : "X\\(.*\\)$as_nl";
+ arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
+ esac;
+ expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
+ '
+ export as_echo_n_body
+ as_echo_n='sh -c $as_echo_n_body as_echo'
+ fi
+ export as_echo_body
+ as_echo='sh -c $as_echo_body as_echo'
+fi
+
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+ PATH_SEPARATOR=:
+ (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
+ (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
+ PATH_SEPARATOR=';'
+ }
+fi
+
+
+# IFS
+# We need space, tab and new line, in precisely that order. Quoting is
+# there to prevent editors from complaining about space-tab.
+# (If _AS_PATH_WALK were called with IFS unset, it would disable word
+# splitting by setting IFS to empty value.)
+IFS=" "" $as_nl"
+
+# Find who we are. Look in the path if we contain no directory separator.
+case $0 in #((
+ *[\\/]* ) as_myself=$0 ;;
+ *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+# We did not find ourselves, most probably we were run as `sh COMMAND'
+# in which case we are not to be found in the path.
+if test "x$as_myself" = x; then
+ as_myself=$0
+fi
+if test ! -f "$as_myself"; then
+ $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
+ exit 1
+fi
+
+# Unset variables that we do not need and which cause bugs (e.g. in
+# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1"
+# suppresses any "Segmentation fault" message there. '((' could
+# trigger a bug in pdksh 5.2.14.
+for as_var in BASH_ENV ENV MAIL MAILPATH
+do eval test x\${$as_var+set} = xset \
+ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
+done
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# NLS nuisances.
+LC_ALL=C
+export LC_ALL
+LANGUAGE=C
+export LANGUAGE
+
+# CDPATH.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+if test "x$CONFIG_SHELL" = x; then
+ as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then :
+ emulate sh
+ NULLCMD=:
+ # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which
+ # is contrary to our usage. Disable this feature.
+ alias -g '\${1+\"\$@\"}'='\"\$@\"'
+ setopt NO_GLOB_SUBST
+else
+ case \`(set -o) 2>/dev/null\` in #(
+ *posix*) :
+ set -o posix ;; #(
+ *) :
+ ;;
+esac
+fi
+"
+ as_required="as_fn_return () { (exit \$1); }
+as_fn_success () { as_fn_return 0; }
+as_fn_failure () { as_fn_return 1; }
+as_fn_ret_success () { return 0; }
+as_fn_ret_failure () { return 1; }
+
+exitcode=0
+as_fn_success || { exitcode=1; echo as_fn_success failed.; }
+as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; }
+as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; }
+as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; }
+if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then :
+
+else
+ exitcode=1; echo positional parameters were not saved.
+fi
+test x\$exitcode = x0 || exit 1"
+ as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO
+ as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
+ eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
+ test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1
+test \$(( 1 + 1 )) = 2 || exit 1"
+ if (eval "$as_required") 2>/dev/null; then :
+ as_have_required=yes
+else
+ as_have_required=no
+fi
+ if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then :
+
+else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+as_found=false
+for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ as_found=:
+ case $as_dir in #(
+ /*)
+ for as_base in sh bash ksh sh5; do
+ # Try only shells that exist, to save several forks.
+ as_shell=$as_dir/$as_base
+ if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
+ { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then :
+ CONFIG_SHELL=$as_shell as_have_required=yes
+ if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then :
+ break 2
+fi
+fi
+ done;;
+ esac
+ as_found=false
+done
+$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } &&
+ { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then :
+ CONFIG_SHELL=$SHELL as_have_required=yes
+fi; }
+IFS=$as_save_IFS
+
+
+ if test "x$CONFIG_SHELL" != x; then :
+ # We cannot yet assume a decent shell, so we have to provide a
+ # neutralization value for shells without unset; and this also
+ # works around shells that cannot unset nonexistent variables.
+ BASH_ENV=/dev/null
+ ENV=/dev/null
+ (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
+ export CONFIG_SHELL
+ exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"}
+fi
+
+ if test x$as_have_required = xno; then :
+ $as_echo "$0: This script requires a shell more modern than all"
+ $as_echo "$0: the shells that I found on your system."
+ if test x${ZSH_VERSION+set} = xset ; then
+ $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should"
+ $as_echo "$0: be upgraded to zsh 4.3.4 or later."
+ else
+ $as_echo "$0: Please tell bug-autoconf@gnu.org about your system,
+$0: including any error possibly output before this
+$0: message. Then install a modern shell, or manually run
+$0: the script under such a shell if you do have one."
+ fi
+ exit 1
+fi
+fi
+fi
+SHELL=${CONFIG_SHELL-/bin/sh}
+export SHELL
+# Unset more variables known to interfere with behavior of common tools.
+CLICOLOR_FORCE= GREP_OPTIONS=
+unset CLICOLOR_FORCE GREP_OPTIONS
+
+## --------------------- ##
+## M4sh Shell Functions. ##
+## --------------------- ##
+# as_fn_unset VAR
+# ---------------
+# Portably unset VAR.
+as_fn_unset ()
+{
+ { eval $1=; unset $1;}
+}
+as_unset=as_fn_unset
+
+# as_fn_set_status STATUS
+# -----------------------
+# Set $? to STATUS, without forking.
+as_fn_set_status ()
+{
+ return $1
+} # as_fn_set_status
+
+# as_fn_exit STATUS
+# -----------------
+# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
+as_fn_exit ()
+{
+ set +e
+ as_fn_set_status $1
+ exit $1
+} # as_fn_exit
+
+# as_fn_mkdir_p
+# -------------
+# Create "$as_dir" as a directory, including parents if necessary.
+as_fn_mkdir_p ()
+{
+
+ case $as_dir in #(
+ -*) as_dir=./$as_dir;;
+ esac
+ test -d "$as_dir" || eval $as_mkdir_p || {
+ as_dirs=
+ while :; do
+ case $as_dir in #(
+ *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
+ *) as_qdir=$as_dir;;
+ esac
+ as_dirs="'$as_qdir' $as_dirs"
+ as_dir=`$as_dirname -- "$as_dir" ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$as_dir" : 'X\(//\)[^/]' \| \
+ X"$as_dir" : 'X\(//\)$' \| \
+ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$as_dir" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ test -d "$as_dir" && break
+ done
+ test -z "$as_dirs" || eval "mkdir $as_dirs"
+ } || test -d "$as_dir" || as_fn_error "cannot create directory $as_dir"
+
+
+} # as_fn_mkdir_p
+# as_fn_append VAR VALUE
+# ----------------------
+# Append the text in VALUE to the end of the definition contained in VAR. Take
+# advantage of any shell optimizations that allow amortized linear growth over
+# repeated appends, instead of the typical quadratic growth present in naive
+# implementations.
+if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
+ eval 'as_fn_append ()
+ {
+ eval $1+=\$2
+ }'
+else
+ as_fn_append ()
+ {
+ eval $1=\$$1\$2
+ }
+fi # as_fn_append
+
+# as_fn_arith ARG...
+# ------------------
+# Perform arithmetic evaluation on the ARGs, and store the result in the
+# global $as_val. Take advantage of shells that can avoid forks. The arguments
+# must be portable across $(()) and expr.
+if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
+ eval 'as_fn_arith ()
+ {
+ as_val=$(( $* ))
+ }'
+else
+ as_fn_arith ()
+ {
+ as_val=`expr "$@" || test $? -eq 1`
+ }
+fi # as_fn_arith
+
+
+# as_fn_error ERROR [LINENO LOG_FD]
+# ---------------------------------
+# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
+# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
+# script with status $?, using 1 if that was 0.
+as_fn_error ()
+{
+ as_status=$?; test $as_status -eq 0 && as_status=1
+ if test "$3"; then
+ as_lineno=${as_lineno-"$2"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ $as_echo "$as_me:${as_lineno-$LINENO}: error: $1" >&$3
+ fi
+ $as_echo "$as_me: error: $1" >&2
+ as_fn_exit $as_status
+} # as_fn_error
+
+if expr a : '\(a\)' >/dev/null 2>&1 &&
+ test "X`expr 00001 : '.*\(...\)'`" = X001; then
+ as_expr=expr
+else
+ as_expr=false
+fi
+
+if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
+ as_basename=basename
+else
+ as_basename=false
+fi
+
+if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
+ as_dirname=dirname
+else
+ as_dirname=false
+fi
+
+as_me=`$as_basename -- "$0" ||
+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+ X"$0" : 'X\(//\)$' \| \
+ X"$0" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X/"$0" |
+ sed '/^.*\/\([^/][^/]*\)\/*$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits
+
+
+ as_lineno_1=$LINENO as_lineno_1a=$LINENO
+ as_lineno_2=$LINENO as_lineno_2a=$LINENO
+ eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" &&
+ test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || {
+ # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-)
+ sed -n '
+ p
+ /[$]LINENO/=
+ ' <$as_myself |
+ sed '
+ s/[$]LINENO.*/&-/
+ t lineno
+ b
+ :lineno
+ N
+ :loop
+ s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
+ t loop
+ s/-\n.*//
+ ' >$as_me.lineno &&
+ chmod +x "$as_me.lineno" ||
+ { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
+
+ # Don't try to exec as it changes $[0], causing all sort of problems
+ # (the dirname of $[0] is not the place where we might find the
+ # original and so on. Autoconf is especially sensitive to this).
+ . "./$as_me.lineno"
+ # Exit status is that of the last command.
+ exit
+}
+
+ECHO_C= ECHO_N= ECHO_T=
+case `echo -n x` in #(((((
+-n*)
+ case `echo 'xy\c'` in
+ *c*) ECHO_T=' ';; # ECHO_T is single tab character.
+ xy) ECHO_C='\c';;
+ *) echo `echo ksh88 bug on AIX 6.1` > /dev/null
+ ECHO_T=' ';;
+ esac;;
+*)
+ ECHO_N='-n';;
+esac
+
+rm -f conf$$ conf$$.exe conf$$.file
+if test -d conf$$.dir; then
+ rm -f conf$$.dir/conf$$.file
+else
+ rm -f conf$$.dir
+ mkdir conf$$.dir 2>/dev/null
+fi
+if (echo >conf$$.file) 2>/dev/null; then
+ if ln -s conf$$.file conf$$ 2>/dev/null; then
+ as_ln_s='ln -s'
+ # ... but there are two gotchas:
+ # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
+ # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
+ # In both cases, we have to default to `cp -p'.
+ ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
+ as_ln_s='cp -p'
+ elif ln conf$$.file conf$$ 2>/dev/null; then
+ as_ln_s=ln
+ else
+ as_ln_s='cp -p'
+ fi
+else
+ as_ln_s='cp -p'
+fi
+rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
+rmdir conf$$.dir 2>/dev/null
+
+if mkdir -p . 2>/dev/null; then
+ as_mkdir_p='mkdir -p "$as_dir"'
+else
+ test -d ./-p && rmdir ./-p
+ as_mkdir_p=false
+fi
+
+if test -x / >/dev/null 2>&1; then
+ as_test_x='test -x'
+else
+ if ls -dL / >/dev/null 2>&1; then
+ as_ls_L_option=L
+ else
+ as_ls_L_option=
+ fi
+ as_test_x='
+ eval sh -c '\''
+ if test -d "$1"; then
+ test -d "$1/.";
+ else
+ case $1 in #(
+ -*)set "./$1";;
+ esac;
+ case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #((
+ ???[sx]*):;;*)false;;esac;fi
+ '\'' sh
+ '
+fi
+as_executable_p=$as_test_x
+
+# Sed expression to map a string onto a valid CPP name.
+as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
+
+# Sed expression to map a string onto a valid variable name.
+as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
+
+
+
+# Check that we are running under the correct shell.
+SHELL=${CONFIG_SHELL-/bin/sh}
+
+case X$lt_ECHO in
+X*--fallback-echo)
+ # Remove one level of quotation (which was required for Make).
+ ECHO=`echo "$lt_ECHO" | sed 's,\\\\\$\\$0,'$0','`
+ ;;
+esac
+
+ECHO=${lt_ECHO-echo}
+if test "X$1" = X--no-reexec; then
+ # Discard the --no-reexec flag, and continue.
+ shift
+elif test "X$1" = X--fallback-echo; then
+ # Avoid inline document here, it may be left over
+ :
+elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' ; then
+ # Yippee, $ECHO works!
+ :
+else
+ # Restart under the correct shell.
+ exec $SHELL "$0" --no-reexec ${1+"$@"}
+fi
+
+if test "X$1" = X--fallback-echo; then
+ # used as fallback echo
+ shift
+ cat <<_LT_EOF
+$*
+_LT_EOF
+ exit 0
+fi
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+if test -z "$lt_ECHO"; then
+ if test "X${echo_test_string+set}" != Xset; then
+ # find a string as large as possible, as long as the shell can cope with it
+ for cmd in 'sed 50q "$0"' 'sed 20q "$0"' 'sed 10q "$0"' 'sed 2q "$0"' 'echo test'; do
+ # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ...
+ if { echo_test_string=`eval $cmd`; } 2>/dev/null &&
+ { test "X$echo_test_string" = "X$echo_test_string"; } 2>/dev/null
+ then
+ break
+ fi
+ done
+ fi
+
+ if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' &&
+ echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` &&
+ test "X$echo_testing_string" = "X$echo_test_string"; then
+ :
+ else
+ # The Solaris, AIX, and Digital Unix default echo programs unquote
+ # backslashes. This makes it impossible to quote backslashes using
+ # echo "$something" | sed 's/\\/\\\\/g'
+ #
+ # So, first we look for a working echo in the user's PATH.
+
+ lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+ for dir in $PATH /usr/ucb; do
+ IFS="$lt_save_ifs"
+ if (test -f $dir/echo || test -f $dir/echo$ac_exeext) &&
+ test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' &&
+ echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` &&
+ test "X$echo_testing_string" = "X$echo_test_string"; then
+ ECHO="$dir/echo"
+ break
+ fi
+ done
+ IFS="$lt_save_ifs"
+
+ if test "X$ECHO" = Xecho; then
+ # We didn't find a better echo, so look for alternatives.
+ if test "X`{ print -r '\t'; } 2>/dev/null`" = 'X\t' &&
+ echo_testing_string=`{ print -r "$echo_test_string"; } 2>/dev/null` &&
+ test "X$echo_testing_string" = "X$echo_test_string"; then
+ # This shell has a builtin print -r that does the trick.
+ ECHO='print -r'
+ elif { test -f /bin/ksh || test -f /bin/ksh$ac_exeext; } &&
+ test "X$CONFIG_SHELL" != X/bin/ksh; then
+ # If we have ksh, try running configure again with it.
+ ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
+ export ORIGINAL_CONFIG_SHELL
+ CONFIG_SHELL=/bin/ksh
+ export CONFIG_SHELL
+ exec $CONFIG_SHELL "$0" --no-reexec ${1+"$@"}
+ else
+ # Try using printf.
+ ECHO='printf %s\n'
+ if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' &&
+ echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` &&
+ test "X$echo_testing_string" = "X$echo_test_string"; then
+ # Cool, printf works
+ :
+ elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` &&
+ test "X$echo_testing_string" = 'X\t' &&
+ echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
+ test "X$echo_testing_string" = "X$echo_test_string"; then
+ CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL
+ export CONFIG_SHELL
+ SHELL="$CONFIG_SHELL"
+ export SHELL
+ ECHO="$CONFIG_SHELL $0 --fallback-echo"
+ elif echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` &&
+ test "X$echo_testing_string" = 'X\t' &&
+ echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
+ test "X$echo_testing_string" = "X$echo_test_string"; then
+ ECHO="$CONFIG_SHELL $0 --fallback-echo"
+ else
+ # maybe with a smaller string...
+ prev=:
+
+ for cmd in 'echo test' 'sed 2q "$0"' 'sed 10q "$0"' 'sed 20q "$0"' 'sed 50q "$0"'; do
+ if { test "X$echo_test_string" = "X`eval $cmd`"; } 2>/dev/null
+ then
+ break
+ fi
+ prev="$cmd"
+ done
+
+ if test "$prev" != 'sed 50q "$0"'; then
+ echo_test_string=`eval $prev`
+ export echo_test_string
+ exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "$0" ${1+"$@"}
+ else
+ # Oops. We lost completely, so just stick with echo.
+ ECHO=echo
+ fi
+ fi
+ fi
+ fi
+ fi
+fi
+
+# Copy echo and quote the copy suitably for passing to libtool from
+# the Makefile, instead of quoting the original, which is used later.
+lt_ECHO=$ECHO
+if test "X$lt_ECHO" = "X$CONFIG_SHELL $0 --fallback-echo"; then
+ lt_ECHO="$CONFIG_SHELL \\\$\$0 --fallback-echo"
+fi
+
+
+
+
+test -n "$DJDIR" || exec 7<&0 </dev/null
+exec 6>&1
+
+# Name of the host.
+# hostname on some systems (SVR3.2, Linux) returns a bogus exit status,
+# so uname gets run too.
+ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
+
+#
+# Initializations.
+#
+ac_default_prefix=/usr/local
+ac_clean_files=
+ac_config_libobj_dir=.
+LIBOBJS=
+cross_compiling=no
+subdirs=
+MFLAGS=
+MAKEFLAGS=
+
+# Identity of this package.
+PACKAGE_NAME='MusE'
+PACKAGE_TARNAME='muse'
+PACKAGE_VERSION='1.1'
+PACKAGE_STRING='MusE 1.1'
+PACKAGE_BUGREPORT=''
+PACKAGE_URL=''
+
+ac_unique_file="muse/app.cpp"
+# Factoring default headers for most tests.
+ac_includes_default="\
+#include <stdio.h>
+#ifdef HAVE_SYS_TYPES_H
+# include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_STAT_H
+# include <sys/stat.h>
+#endif
+#ifdef STDC_HEADERS
+# include <stdlib.h>
+# include <stddef.h>
+#else
+# ifdef HAVE_STDLIB_H
+# include <stdlib.h>
+# endif
+#endif
+#ifdef HAVE_STRING_H
+# if !defined STDC_HEADERS && defined HAVE_MEMORY_H
+# include <memory.h>
+# endif
+# include <string.h>
+#endif
+#ifdef HAVE_STRINGS_H
+# include <strings.h>
+#endif
+#ifdef HAVE_INTTYPES_H
+# include <inttypes.h>
+#endif
+#ifdef HAVE_STDINT_H
+# include <stdint.h>
+#endif
+#ifdef HAVE_UNISTD_H
+# include <unistd.h>
+#endif"
+
+ac_subst_vars='am__EXEEXT_FALSE
+am__EXEEXT_TRUE
+LTLIBOBJS
+LIBOBJS
+QTDIR_BIN
+QT_LIBS
+QTDIR_INC
+MUSECXXFLAGS
+HAVE_AUDIO_FALSE
+HAVE_AUDIO_TRUE
+DSSI_SUPPORT_FALSE
+DSSI_SUPPORT_TRUE
+OSC_SUPPORT_FALSE
+OSC_SUPPORT_TRUE
+LO_LIBS
+LO_CFLAGS
+VST_SUPPORT_FALSE
+VST_SUPPORT_TRUE
+FST_LIBS
+FST_CFLAGS
+PYTHON_LIB
+PYTHON_INCLUDES
+ENABLE_PYTHON_FALSE
+ENABLE_PYTHON_TRUE
+pkgpyexecdir
+pyexecdir
+pkgpythondir
+pythondir
+PYTHON_PLATFORM
+PYTHON_EXEC_PREFIX
+PYTHON_PREFIX
+PYTHON_VERSION
+PYTHON
+USE_SSE_FALSE
+USE_SSE_TRUE
+USE_SSE
+PCH_FALSE
+PCH_TRUE
+PCH
+DOXYGEN_TREEVIEW
+SUIDBUILD
+SUIDINSTALL
+GIVERTCAP
+RTCAP_FALSE
+RTCAP_TRUE
+HAVE_LASH_FALSE
+HAVE_LASH_TRUE
+LASH_LIBS
+LASH_CFLAGS
+JACK_LIBS
+JACK_CFLAGS
+UUID_LIBS
+UUID_CFLAGS
+SAMPLERATE_LIBS
+SAMPLERATE_CFLAGS
+SNDFILE_LIBS
+SNDFILE_CFLAGS
+synth_fluid
+synth_fluidsynth
+FLUIDSYNTHDIRS
+Fluidsynth_LIBS
+Fluidsynth_CFLAGS
+PKG_CONFIG
+ENABLEFLUIDSYNTH_FALSE
+ENABLEFLUIDSYNTH_TRUE
+ALSA_LIBS
+ALSA_CFLAGS
+X_EXTRA_LIBS
+X_LIBS
+X_PRE_LIBS
+X_CFLAGS
+XMKMF
+PERL
+DOTPATH
+HAVEDOT
+DOT
+DOXYGEN
+DOCBOOKTARGETS
+DOCBOOKSTYLE
+have_docbook
+NSGMLS
+JADE
+CXXCPP
+CPP
+OTOOL64
+OTOOL
+LIPO
+NMEDIT
+DSYMUTIL
+lt_ECHO
+RANLIB
+AR
+OBJDUMP
+LN_S
+NM
+ac_ct_DUMPBIN
+DUMPBIN
+LD
+FGREP
+EGREP
+GREP
+SED
+am__fastdepCC_FALSE
+am__fastdepCC_TRUE
+CCDEPMODE
+ac_ct_CC
+CFLAGS
+CC
+host_os
+host_vendor
+host_cpu
+host
+build_os
+build_vendor
+build_cpu
+build
+LIBTOOL
+am__fastdepCXX_FALSE
+am__fastdepCXX_TRUE
+CXXDEPMODE
+AMDEPBACKSLASH
+AMDEP_FALSE
+AMDEP_TRUE
+am__quote
+am__include
+DEPDIR
+OBJEXT
+EXEEXT
+ac_ct_CXX
+CPPFLAGS
+LDFLAGS
+CXXFLAGS
+CXX
+INSIDE_GNOME_COMMON_FALSE
+INSIDE_GNOME_COMMON_TRUE
+am__untar
+am__tar
+AMTAR
+am__leading_dot
+SET_MAKE
+AWK
+mkdir_p
+MKDIR_P
+INSTALL_STRIP_PROGRAM
+STRIP
+install_sh
+MAKEINFO
+AUTOHEADER
+AUTOMAKE
+AUTOCONF
+ACLOCAL
+VERSION
+PACKAGE
+CYGPATH_W
+am__isrc
+INSTALL_DATA
+INSTALL_SCRIPT
+INSTALL_PROGRAM
+target_alias
+host_alias
+build_alias
+LIBS
+ECHO_T
+ECHO_N
+ECHO_C
+DEFS
+mandir
+localedir
+libdir
+psdir
+pdfdir
+dvidir
+htmldir
+infodir
+docdir
+oldincludedir
+includedir
+localstatedir
+sharedstatedir
+sysconfdir
+datadir
+datarootdir
+libexecdir
+sbindir
+bindir
+program_transform_name
+prefix
+exec_prefix
+PACKAGE_URL
+PACKAGE_BUGREPORT
+PACKAGE_STRING
+PACKAGE_VERSION
+PACKAGE_TARNAME
+PACKAGE_NAME
+PATH_SEPARATOR
+SHELL'
+ac_subst_files=''
+ac_user_opts='
+enable_option_checking
+enable_dependency_tracking
+enable_shared
+enable_static
+with_pic
+enable_fast_install
+with_gnu_ld
+enable_libtool_lock
+with_docbook_stylesheets
+with_x
+with_alsa_prefix
+with_alsa_inc_prefix
+enable_alsatest
+enable_fluidsynth
+enable_lash
+enable_rtcap
+enable_suid_install
+enable_suid_build
+enable_doxy_treeview
+enable_optimize
+enable_debug
+enable_pch
+enable_arch
+enable_sse
+with_python
+enable_vst
+enable_osc
+enable_dssi
+'
+ ac_precious_vars='build_alias
+host_alias
+target_alias
+CXX
+CXXFLAGS
+LDFLAGS
+LIBS
+CPPFLAGS
+CCC
+CC
+CFLAGS
+CPP
+CXXCPP
+DOXYGEN
+DOT
+PERL
+XMKMF
+PKG_CONFIG
+Fluidsynth_CFLAGS
+Fluidsynth_LIBS
+SNDFILE_CFLAGS
+SNDFILE_LIBS
+SAMPLERATE_CFLAGS
+SAMPLERATE_LIBS
+JACK_CFLAGS
+JACK_LIBS
+LASH_CFLAGS
+LASH_LIBS
+FST_CFLAGS
+FST_LIBS
+LO_CFLAGS
+LO_LIBS'
+
+
+# Initialize some variables set by options.
+ac_init_help=
+ac_init_version=false
+ac_unrecognized_opts=
+ac_unrecognized_sep=
+# The variables have the same names as the options, with
+# dashes changed to underlines.
+cache_file=/dev/null
+exec_prefix=NONE
+no_create=
+no_recursion=
+prefix=NONE
+program_prefix=NONE
+program_suffix=NONE
+program_transform_name=s,x,x,
+silent=
+site=
+srcdir=
+verbose=
+x_includes=NONE
+x_libraries=NONE
+
+# Installation directory options.
+# These are left unexpanded so users can "make install exec_prefix=/foo"
+# and all the variables that are supposed to be based on exec_prefix
+# by default will actually change.
+# Use braces instead of parens because sh, perl, etc. also accept them.
+# (The list follows the same order as the GNU Coding Standards.)
+bindir='${exec_prefix}/bin'
+sbindir='${exec_prefix}/sbin'
+libexecdir='${exec_prefix}/libexec'
+datarootdir='${prefix}/share'
+datadir='${datarootdir}'
+sysconfdir='${prefix}/etc'
+sharedstatedir='${prefix}/com'
+localstatedir='${prefix}/var'
+includedir='${prefix}/include'
+oldincludedir='/usr/include'
+docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
+infodir='${datarootdir}/info'
+htmldir='${docdir}'
+dvidir='${docdir}'
+pdfdir='${docdir}'
+psdir='${docdir}'
+libdir='${exec_prefix}/lib'
+localedir='${datarootdir}/locale'
+mandir='${datarootdir}/man'
+
+ac_prev=
+ac_dashdash=
+for ac_option
+do
+ # If the previous option needs an argument, assign it.
+ if test -n "$ac_prev"; then
+ eval $ac_prev=\$ac_option
+ ac_prev=
+ continue
+ fi
+
+ case $ac_option in
+ *=*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
+ *) ac_optarg=yes ;;
+ esac
+
+ # Accept the important Cygnus configure options, so we can diagnose typos.
+
+ case $ac_dashdash$ac_option in
+ --)
+ ac_dashdash=yes ;;
+
+ -bindir | --bindir | --bindi | --bind | --bin | --bi)
+ ac_prev=bindir ;;
+ -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
+ bindir=$ac_optarg ;;
+
+ -build | --build | --buil | --bui | --bu)
+ ac_prev=build_alias ;;
+ -build=* | --build=* | --buil=* | --bui=* | --bu=*)
+ build_alias=$ac_optarg ;;
+
+ -cache-file | --cache-file | --cache-fil | --cache-fi \
+ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
+ ac_prev=cache_file ;;
+ -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
+ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
+ cache_file=$ac_optarg ;;
+
+ --config-cache | -C)
+ cache_file=config.cache ;;
+
+ -datadir | --datadir | --datadi | --datad)
+ ac_prev=datadir ;;
+ -datadir=* | --datadir=* | --datadi=* | --datad=*)
+ datadir=$ac_optarg ;;
+
+ -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \
+ | --dataroo | --dataro | --datar)
+ ac_prev=datarootdir ;;
+ -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \
+ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*)
+ datarootdir=$ac_optarg ;;
+
+ -disable-* | --disable-*)
+ ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+ as_fn_error "invalid feature name: $ac_useropt"
+ ac_useropt_orig=$ac_useropt
+ ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+ case $ac_user_opts in
+ *"
+"enable_$ac_useropt"
+"*) ;;
+ *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig"
+ ac_unrecognized_sep=', ';;
+ esac
+ eval enable_$ac_useropt=no ;;
+
+ -docdir | --docdir | --docdi | --doc | --do)
+ ac_prev=docdir ;;
+ -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*)
+ docdir=$ac_optarg ;;
+
+ -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv)
+ ac_prev=dvidir ;;
+ -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*)
+ dvidir=$ac_optarg ;;
+
+ -enable-* | --enable-*)
+ ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+ as_fn_error "invalid feature name: $ac_useropt"
+ ac_useropt_orig=$ac_useropt
+ ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+ case $ac_user_opts in
+ *"
+"enable_$ac_useropt"
+"*) ;;
+ *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig"
+ ac_unrecognized_sep=', ';;
+ esac
+ eval enable_$ac_useropt=\$ac_optarg ;;
+
+ -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
+ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
+ | --exec | --exe | --ex)
+ ac_prev=exec_prefix ;;
+ -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
+ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
+ | --exec=* | --exe=* | --ex=*)
+ exec_prefix=$ac_optarg ;;
+
+ -gas | --gas | --ga | --g)
+ # Obsolete; use --with-gas.
+ with_gas=yes ;;
+
+ -help | --help | --hel | --he | -h)
+ ac_init_help=long ;;
+ -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
+ ac_init_help=recursive ;;
+ -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
+ ac_init_help=short ;;
+
+ -host | --host | --hos | --ho)
+ ac_prev=host_alias ;;
+ -host=* | --host=* | --hos=* | --ho=*)
+ host_alias=$ac_optarg ;;
+
+ -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht)
+ ac_prev=htmldir ;;
+ -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \
+ | --ht=*)
+ htmldir=$ac_optarg ;;
+
+ -includedir | --includedir | --includedi | --included | --include \
+ | --includ | --inclu | --incl | --inc)
+ ac_prev=includedir ;;
+ -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
+ | --includ=* | --inclu=* | --incl=* | --inc=*)
+ includedir=$ac_optarg ;;
+
+ -infodir | --infodir | --infodi | --infod | --info | --inf)
+ ac_prev=infodir ;;
+ -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
+ infodir=$ac_optarg ;;
+
+ -libdir | --libdir | --libdi | --libd)
+ ac_prev=libdir ;;
+ -libdir=* | --libdir=* | --libdi=* | --libd=*)
+ libdir=$ac_optarg ;;
+
+ -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
+ | --libexe | --libex | --libe)
+ ac_prev=libexecdir ;;
+ -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
+ | --libexe=* | --libex=* | --libe=*)
+ libexecdir=$ac_optarg ;;
+
+ -localedir | --localedir | --localedi | --localed | --locale)
+ ac_prev=localedir ;;
+ -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*)
+ localedir=$ac_optarg ;;
+
+ -localstatedir | --localstatedir | --localstatedi | --localstated \
+ | --localstate | --localstat | --localsta | --localst | --locals)
+ ac_prev=localstatedir ;;
+ -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
+ | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*)
+ localstatedir=$ac_optarg ;;
+
+ -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
+ ac_prev=mandir ;;
+ -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
+ mandir=$ac_optarg ;;
+
+ -nfp | --nfp | --nf)
+ # Obsolete; use --without-fp.
+ with_fp=no ;;
+
+ -no-create | --no-create | --no-creat | --no-crea | --no-cre \
+ | --no-cr | --no-c | -n)
+ no_create=yes ;;
+
+ -no-recursion | --no-recursion | --no-recursio | --no-recursi \
+ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
+ no_recursion=yes ;;
+
+ -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
+ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
+ | --oldin | --oldi | --old | --ol | --o)
+ ac_prev=oldincludedir ;;
+ -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
+ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
+ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
+ oldincludedir=$ac_optarg ;;
+
+ -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
+ ac_prev=prefix ;;
+ -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
+ prefix=$ac_optarg ;;
+
+ -program-prefix | --program-prefix | --program-prefi | --program-pref \
+ | --program-pre | --program-pr | --program-p)
+ ac_prev=program_prefix ;;
+ -program-prefix=* | --program-prefix=* | --program-prefi=* \
+ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
+ program_prefix=$ac_optarg ;;
+
+ -program-suffix | --program-suffix | --program-suffi | --program-suff \
+ | --program-suf | --program-su | --program-s)
+ ac_prev=program_suffix ;;
+ -program-suffix=* | --program-suffix=* | --program-suffi=* \
+ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
+ program_suffix=$ac_optarg ;;
+
+ -program-transform-name | --program-transform-name \
+ | --program-transform-nam | --program-transform-na \
+ | --program-transform-n | --program-transform- \
+ | --program-transform | --program-transfor \
+ | --program-transfo | --program-transf \
+ | --program-trans | --program-tran \
+ | --progr-tra | --program-tr | --program-t)
+ ac_prev=program_transform_name ;;
+ -program-transform-name=* | --program-transform-name=* \
+ | --program-transform-nam=* | --program-transform-na=* \
+ | --program-transform-n=* | --program-transform-=* \
+ | --program-transform=* | --program-transfor=* \
+ | --program-transfo=* | --program-transf=* \
+ | --program-trans=* | --program-tran=* \
+ | --progr-tra=* | --program-tr=* | --program-t=*)
+ program_transform_name=$ac_optarg ;;
+
+ -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd)
+ ac_prev=pdfdir ;;
+ -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*)
+ pdfdir=$ac_optarg ;;
+
+ -psdir | --psdir | --psdi | --psd | --ps)
+ ac_prev=psdir ;;
+ -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*)
+ psdir=$ac_optarg ;;
+
+ -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+ | -silent | --silent | --silen | --sile | --sil)
+ silent=yes ;;
+
+ -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
+ ac_prev=sbindir ;;
+ -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
+ | --sbi=* | --sb=*)
+ sbindir=$ac_optarg ;;
+
+ -sharedstatedir | --sharedstatedir | --sharedstatedi \
+ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
+ | --sharedst | --shareds | --shared | --share | --shar \
+ | --sha | --sh)
+ ac_prev=sharedstatedir ;;
+ -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
+ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
+ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
+ | --sha=* | --sh=*)
+ sharedstatedir=$ac_optarg ;;
+
+ -site | --site | --sit)
+ ac_prev=site ;;
+ -site=* | --site=* | --sit=*)
+ site=$ac_optarg ;;
+
+ -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
+ ac_prev=srcdir ;;
+ -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
+ srcdir=$ac_optarg ;;
+
+ -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
+ | --syscon | --sysco | --sysc | --sys | --sy)
+ ac_prev=sysconfdir ;;
+ -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
+ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
+ sysconfdir=$ac_optarg ;;
+
+ -target | --target | --targe | --targ | --tar | --ta | --t)
+ ac_prev=target_alias ;;
+ -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
+ target_alias=$ac_optarg ;;
+
+ -v | -verbose | --verbose | --verbos | --verbo | --verb)
+ verbose=yes ;;
+
+ -version | --version | --versio | --versi | --vers | -V)
+ ac_init_version=: ;;
+
+ -with-* | --with-*)
+ ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+ as_fn_error "invalid package name: $ac_useropt"
+ ac_useropt_orig=$ac_useropt
+ ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+ case $ac_user_opts in
+ *"
+"with_$ac_useropt"
+"*) ;;
+ *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig"
+ ac_unrecognized_sep=', ';;
+ esac
+ eval with_$ac_useropt=\$ac_optarg ;;
+
+ -without-* | --without-*)
+ ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+ as_fn_error "invalid package name: $ac_useropt"
+ ac_useropt_orig=$ac_useropt
+ ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+ case $ac_user_opts in
+ *"
+"with_$ac_useropt"
+"*) ;;
+ *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig"
+ ac_unrecognized_sep=', ';;
+ esac
+ eval with_$ac_useropt=no ;;
+
+ --x)
+ # Obsolete; use --with-x.
+ with_x=yes ;;
+
+ -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
+ | --x-incl | --x-inc | --x-in | --x-i)
+ ac_prev=x_includes ;;
+ -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
+ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
+ x_includes=$ac_optarg ;;
+
+ -x-libraries | --x-libraries | --x-librarie | --x-librari \
+ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
+ ac_prev=x_libraries ;;
+ -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
+ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
+ x_libraries=$ac_optarg ;;
+
+ -*) as_fn_error "unrecognized option: \`$ac_option'
+Try \`$0 --help' for more information."
+ ;;
+
+ *=*)
+ ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
+ # Reject names that are not valid shell variable names.
+ case $ac_envvar in #(
+ '' | [0-9]* | *[!_$as_cr_alnum]* )
+ as_fn_error "invalid variable name: \`$ac_envvar'" ;;
+ esac
+ eval $ac_envvar=\$ac_optarg
+ export $ac_envvar ;;
+
+ *)
+ # FIXME: should be removed in autoconf 3.0.
+ $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2
+ expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
+ $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2
+ : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}
+ ;;
+
+ esac
+done
+
+if test -n "$ac_prev"; then
+ ac_option=--`echo $ac_prev | sed 's/_/-/g'`
+ as_fn_error "missing argument to $ac_option"
+fi
+
+if test -n "$ac_unrecognized_opts"; then
+ case $enable_option_checking in
+ no) ;;
+ fatal) as_fn_error "unrecognized options: $ac_unrecognized_opts" ;;
+ *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
+ esac
+fi
+
+# Check all directory arguments for consistency.
+for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \
+ datadir sysconfdir sharedstatedir localstatedir includedir \
+ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
+ libdir localedir mandir
+do
+ eval ac_val=\$$ac_var
+ # Remove trailing slashes.
+ case $ac_val in
+ */ )
+ ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'`
+ eval $ac_var=\$ac_val;;
+ esac
+ # Be sure to have absolute directory names.
+ case $ac_val in
+ [\\/$]* | ?:[\\/]* ) continue;;
+ NONE | '' ) case $ac_var in *prefix ) continue;; esac;;
+ esac
+ as_fn_error "expected an absolute directory name for --$ac_var: $ac_val"
+done
+
+# There might be people who depend on the old broken behavior: `$host'
+# used to hold the argument of --host etc.
+# FIXME: To remove some day.
+build=$build_alias
+host=$host_alias
+target=$target_alias
+
+# FIXME: To remove some day.
+if test "x$host_alias" != x; then
+ if test "x$build_alias" = x; then
+ cross_compiling=maybe
+ $as_echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host.
+ If a cross compiler is detected then cross compile mode will be used." >&2
+ elif test "x$build_alias" != "x$host_alias"; then
+ cross_compiling=yes
+ fi
+fi
+
+ac_tool_prefix=
+test -n "$host_alias" && ac_tool_prefix=$host_alias-
+
+test "$silent" = yes && exec 6>/dev/null
+
+
+ac_pwd=`pwd` && test -n "$ac_pwd" &&
+ac_ls_di=`ls -di .` &&
+ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||
+ as_fn_error "working directory cannot be determined"
+test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
+ as_fn_error "pwd does not report name of working directory"
+
+
+# Find the source files, if location was not specified.
+if test -z "$srcdir"; then
+ ac_srcdir_defaulted=yes
+ # Try the directory containing this script, then the parent directory.
+ ac_confdir=`$as_dirname -- "$as_myself" ||
+$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$as_myself" : 'X\(//\)[^/]' \| \
+ X"$as_myself" : 'X\(//\)$' \| \
+ X"$as_myself" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$as_myself" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ srcdir=$ac_confdir
+ if test ! -r "$srcdir/$ac_unique_file"; then
+ srcdir=..
+ fi
+else
+ ac_srcdir_defaulted=no
+fi
+if test ! -r "$srcdir/$ac_unique_file"; then
+ test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."
+ as_fn_error "cannot find sources ($ac_unique_file) in $srcdir"
+fi
+ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"
+ac_abs_confdir=`(
+ cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error "$ac_msg"
+ pwd)`
+# When building in place, set srcdir=.
+if test "$ac_abs_confdir" = "$ac_pwd"; then
+ srcdir=.
+fi
+# Remove unnecessary trailing slashes from srcdir.
+# Double slashes in file names in object file debugging info
+# mess up M-x gdb in Emacs.
+case $srcdir in
+*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;;
+esac
+for ac_var in $ac_precious_vars; do
+ eval ac_env_${ac_var}_set=\${${ac_var}+set}
+ eval ac_env_${ac_var}_value=\$${ac_var}
+ eval ac_cv_env_${ac_var}_set=\${${ac_var}+set}
+ eval ac_cv_env_${ac_var}_value=\$${ac_var}
+done
+
+#
+# Report the --help message.
+#
+if test "$ac_init_help" = "long"; then
+ # Omit some internal or obsolete options to make the list less imposing.
+ # This message is too long to be a string in the A/UX 3.1 sh.
+ cat <<_ACEOF
+\`configure' configures MusE 1.1 to adapt to many kinds of systems.
+
+Usage: $0 [OPTION]... [VAR=VALUE]...
+
+To assign environment variables (e.g., CC, CFLAGS...), specify them as
+VAR=VALUE. See below for descriptions of some of the useful variables.
+
+Defaults for the options are specified in brackets.
+
+Configuration:
+ -h, --help display this help and exit
+ --help=short display options specific to this package
+ --help=recursive display the short help of all the included packages
+ -V, --version display version information and exit
+ -q, --quiet, --silent do not print \`checking...' messages
+ --cache-file=FILE cache test results in FILE [disabled]
+ -C, --config-cache alias for \`--cache-file=config.cache'
+ -n, --no-create do not create output files
+ --srcdir=DIR find the sources in DIR [configure dir or \`..']
+
+Installation directories:
+ --prefix=PREFIX install architecture-independent files in PREFIX
+ [$ac_default_prefix]
+ --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
+ [PREFIX]
+
+By default, \`make install' will install all the files in
+\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify
+an installation prefix other than \`$ac_default_prefix' using \`--prefix',
+for instance \`--prefix=\$HOME'.
+
+For better control, use the options below.
+
+Fine tuning of the installation directories:
+ --bindir=DIR user executables [EPREFIX/bin]
+ --sbindir=DIR system admin executables [EPREFIX/sbin]
+ --libexecdir=DIR program executables [EPREFIX/libexec]
+ --sysconfdir=DIR read-only single-machine data [PREFIX/etc]
+ --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
+ --localstatedir=DIR modifiable single-machine data [PREFIX/var]
+ --libdir=DIR object code libraries [EPREFIX/lib]
+ --includedir=DIR C header files [PREFIX/include]
+ --oldincludedir=DIR C header files for non-gcc [/usr/include]
+ --datarootdir=DIR read-only arch.-independent data root [PREFIX/share]
+ --datadir=DIR read-only architecture-independent data [DATAROOTDIR]
+ --infodir=DIR info documentation [DATAROOTDIR/info]
+ --localedir=DIR locale-dependent data [DATAROOTDIR/locale]
+ --mandir=DIR man documentation [DATAROOTDIR/man]
+ --docdir=DIR documentation root [DATAROOTDIR/doc/muse]
+ --htmldir=DIR html documentation [DOCDIR]
+ --dvidir=DIR dvi documentation [DOCDIR]
+ --pdfdir=DIR pdf documentation [DOCDIR]
+ --psdir=DIR ps documentation [DOCDIR]
+_ACEOF
+
+ cat <<\_ACEOF
+
+Program names:
+ --program-prefix=PREFIX prepend PREFIX to installed program names
+ --program-suffix=SUFFIX append SUFFIX to installed program names
+ --program-transform-name=PROGRAM run sed PROGRAM on installed program names
+
+X features:
+ --x-includes=DIR X include files are in DIR
+ --x-libraries=DIR X library files are in DIR
+
+System types:
+ --build=BUILD configure for building on BUILD [guessed]
+ --host=HOST cross-compile to build programs to run on HOST [BUILD]
+_ACEOF
+fi
+
+if test -n "$ac_init_help"; then
+ case $ac_init_help in
+ short | recursive ) echo "Configuration of MusE 1.1:";;
+ esac
+ cat <<\_ACEOF
+
+Optional Features:
+ --disable-option-checking ignore unrecognized --enable/--with options
+ --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
+ --enable-FEATURE[=ARG] include FEATURE [ARG=yes]
+ --disable-dependency-tracking speeds up one-time build
+ --enable-dependency-tracking do not reject slow dependency extractors
+ --enable-shared[=PKGS] build shared libraries [default=yes]
+ --enable-static[=PKGS] build static libraries [default=yes]
+ --enable-fast-install[=PKGS]
+ optimize for fast installation [default=yes]
+ --disable-libtool-lock avoid locking (might break parallel builds)
+ --disable-alsatest do not try to compile and run a test alsa program
+ --disable-fluidsynth disable fluidsynth softsynth plugin
+ --enable-lash enable LASH support
+ --enable-rtcap (deprecated) use Tommi Ilmonen's "givertcap" to give
+ realtime capabilities
+ --enable-suid-install (deprecated) install MusE setuid root (with kernel 2.6, use realtime-lsm instead)
+ --enable-suid-build (deprecated) build MusE setuid root(with kernel 2.6, use realtime-lsm instead)
+ --disable-doxy-treeview stop Doxygen from generating java-ified
+ treeview menus in its HTML output
+ --enable-optimize ask the compiler for its best optimizations (possibly only i386)
+ --enable-debug disable optimizations
+ --enable-pch enable precompiled headers (gcc 3.4 required)
+ --enable-arch=ARCH use -march=ARCH and -mtune=ARCH argument to CXX
+ choose from any supported gcc architecture such as:
+ 386, 486, 586, 686, pentium, pentiumpro, k6, athlon...
+ --enable-sse enable SSE optimizations
+ --enable-vst (deprecated, use dssi) build VST/win support. (disabled by default)
+ --enable-osc build OSC support. (disabled by default)
+ --enable-dssi is also recommended!
+ --enable-dssi build DSSI + DSSI-Vst support. (disabled by default)
+ --enable-osc is also recommended!
+
+Optional Packages:
+ --with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
+ --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
+ --with-pic try to use only PIC/non-PIC objects [default=use
+ both]
+ --with-gnu-ld assume the C compiler uses GNU ld [default=no]
+ --with-docbook-stylesheets=DIR use DIR/html/docbook.dsl
+ --with-x use the X Window System
+ --with-alsa-prefix=PFX prefix where alsa library is installed (optional)
+ --with-alsa-inc-prefix=PFX prefix where include libraries are (optional)
+ --enable-python Build python bindings (on)
+
+Some influential environment variables:
+ CXX C++ compiler command
+ CXXFLAGS C++ compiler flags
+ LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries in a
+ nonstandard directory <lib dir>
+ LIBS libraries to pass to the linker, e.g. -l<library>
+ CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if
+ you have headers in a nonstandard directory <include dir>
+ CC C compiler command
+ CFLAGS C compiler flags
+ CPP C preprocessor
+ CXXCPP C++ preprocessor
+ DOXYGEN Doxygen
+ DOT The "dot" program from graphviz
+ PERL Perl
+ XMKMF Path to xmkmf, Makefile generator for X Window System
+ PKG_CONFIG path to pkg-config utility
+ Fluidsynth_CFLAGS
+ C compiler flags for Fluidsynth, overriding pkg-config
+ Fluidsynth_LIBS
+ linker flags for Fluidsynth, overriding pkg-config
+ SNDFILE_CFLAGS
+ C compiler flags for SNDFILE, overriding pkg-config
+ SNDFILE_LIBS
+ linker flags for SNDFILE, overriding pkg-config
+ SAMPLERATE_CFLAGS
+ C compiler flags for SAMPLERATE, overriding pkg-config
+ SAMPLERATE_LIBS
+ linker flags for SAMPLERATE, overriding pkg-config
+ JACK_CFLAGS C compiler flags for JACK, overriding pkg-config
+ JACK_LIBS linker flags for JACK, overriding pkg-config
+ LASH_CFLAGS C compiler flags for LASH, overriding pkg-config
+ LASH_LIBS linker flags for LASH, overriding pkg-config
+ FST_CFLAGS C compiler flags for FST, overriding pkg-config
+ FST_LIBS linker flags for FST, overriding pkg-config
+ LO_CFLAGS C compiler flags for LO, overriding pkg-config
+ LO_LIBS linker flags for LO, overriding pkg-config
+
+Use these variables to override the choices made by `configure' or to help
+it to find libraries and programs with nonstandard names/locations.
+
+Report bugs to the package provider.
+_ACEOF
+ac_status=$?
+fi
+
+if test "$ac_init_help" = "recursive"; then
+ # If there are subdirs, report their specific --help.
+ for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
+ test -d "$ac_dir" ||
+ { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } ||
+ continue
+ ac_builddir=.
+
+case "$ac_dir" in
+.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
+*)
+ ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
+ # A ".." for each directory in $ac_dir_suffix.
+ ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
+ case $ac_top_builddir_sub in
+ "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
+ *) ac_top_build_prefix=$ac_top_builddir_sub/ ;;
+ esac ;;
+esac
+ac_abs_top_builddir=$ac_pwd
+ac_abs_builddir=$ac_pwd$ac_dir_suffix
+# for backward compatibility:
+ac_top_builddir=$ac_top_build_prefix
+
+case $srcdir in
+ .) # We are building in place.
+ ac_srcdir=.
+ ac_top_srcdir=$ac_top_builddir_sub
+ ac_abs_top_srcdir=$ac_pwd ;;
+ [\\/]* | ?:[\\/]* ) # Absolute name.
+ ac_srcdir=$srcdir$ac_dir_suffix;
+ ac_top_srcdir=$srcdir
+ ac_abs_top_srcdir=$srcdir ;;
+ *) # Relative name.
+ ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
+ ac_top_srcdir=$ac_top_build_prefix$srcdir
+ ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
+esac
+ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
+
+ cd "$ac_dir" || { ac_status=$?; continue; }
+ # Check for guested configure.
+ if test -f "$ac_srcdir/configure.gnu"; then
+ echo &&
+ $SHELL "$ac_srcdir/configure.gnu" --help=recursive
+ elif test -f "$ac_srcdir/configure"; then
+ echo &&
+ $SHELL "$ac_srcdir/configure" --help=recursive
+ else
+ $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
+ fi || ac_status=$?
+ cd "$ac_pwd" || { ac_status=$?; break; }
+ done
+fi
+
+test -n "$ac_init_help" && exit $ac_status
+if $ac_init_version; then
+ cat <<\_ACEOF
+MusE configure 1.1
+generated by GNU Autoconf 2.65
+
+Copyright (C) 2009 Free Software Foundation, Inc.
+This configure script is free software; the Free Software Foundation
+gives unlimited permission to copy, distribute and modify it.
+_ACEOF
+ exit
+fi
+
+## ------------------------ ##
+## Autoconf initialization. ##
+## ------------------------ ##
+
+# ac_fn_cxx_try_compile LINENO
+# ----------------------------
+# Try to compile conftest.$ac_ext, and return whether this succeeded.
+ac_fn_cxx_try_compile ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ rm -f conftest.$ac_objext
+ if { { ac_try="$ac_compile"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_compile") 2>conftest.err
+ ac_status=$?
+ if test -s conftest.err; then
+ grep -v '^ *+' conftest.err >conftest.er1
+ cat conftest.er1 >&5
+ mv -f conftest.er1 conftest.err
+ fi
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && {
+ test -z "$ac_cxx_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest.$ac_objext; then :
+ ac_retval=0
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_retval=1
+fi
+ eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+ as_fn_set_status $ac_retval
+
+} # ac_fn_cxx_try_compile
+
+# ac_fn_c_try_compile LINENO
+# --------------------------
+# Try to compile conftest.$ac_ext, and return whether this succeeded.
+ac_fn_c_try_compile ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ rm -f conftest.$ac_objext
+ if { { ac_try="$ac_compile"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_compile") 2>conftest.err
+ ac_status=$?
+ if test -s conftest.err; then
+ grep -v '^ *+' conftest.err >conftest.er1
+ cat conftest.er1 >&5
+ mv -f conftest.er1 conftest.err
+ fi
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && {
+ test -z "$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest.$ac_objext; then :
+ ac_retval=0
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_retval=1
+fi
+ eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+ as_fn_set_status $ac_retval
+
+} # ac_fn_c_try_compile
+
+# ac_fn_c_try_link LINENO
+# -----------------------
+# Try to link conftest.$ac_ext, and return whether this succeeded.
+ac_fn_c_try_link ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ rm -f conftest.$ac_objext conftest$ac_exeext
+ if { { ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_link") 2>conftest.err
+ ac_status=$?
+ if test -s conftest.err; then
+ grep -v '^ *+' conftest.err >conftest.er1
+ cat conftest.er1 >&5
+ mv -f conftest.er1 conftest.err
+ fi
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && {
+ test -z "$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest$ac_exeext && {
+ test "$cross_compiling" = yes ||
+ $as_test_x conftest$ac_exeext
+ }; then :
+ ac_retval=0
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_retval=1
+fi
+ # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information
+ # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would
+ # interfere with the next link command; also delete a directory that is
+ # left behind by Apple's compiler. We do this before executing the actions.
+ rm -rf conftest.dSYM conftest_ipa8_conftest.oo
+ eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+ as_fn_set_status $ac_retval
+
+} # ac_fn_c_try_link
+
+# ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES
+# -------------------------------------------------------
+# Tests whether HEADER exists and can be compiled using the include files in
+# INCLUDES, setting the cache variable VAR accordingly.
+ac_fn_c_check_header_compile ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$4
+#include <$2>
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ eval "$3=yes"
+else
+ eval "$3=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$3
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+ eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+
+} # ac_fn_c_check_header_compile
+
+# ac_fn_c_try_cpp LINENO
+# ----------------------
+# Try to preprocess conftest.$ac_ext, and return whether this succeeded.
+ac_fn_c_try_cpp ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ if { { ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err
+ ac_status=$?
+ if test -s conftest.err; then
+ grep -v '^ *+' conftest.err >conftest.er1
+ cat conftest.er1 >&5
+ mv -f conftest.er1 conftest.err
+ fi
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } >/dev/null && {
+ test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ }; then :
+ ac_retval=0
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_retval=1
+fi
+ eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+ as_fn_set_status $ac_retval
+
+} # ac_fn_c_try_cpp
+
+# ac_fn_c_try_run LINENO
+# ----------------------
+# Try to link conftest.$ac_ext, and return whether this succeeded. Assumes
+# that executables *can* be run.
+ac_fn_c_try_run ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ if { { ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_link") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && { ac_try='./conftest$ac_exeext'
+ { { case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_try") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; }; then :
+ ac_retval=0
+else
+ $as_echo "$as_me: program exited with status $ac_status" >&5
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_retval=$ac_status
+fi
+ rm -rf conftest.dSYM conftest_ipa8_conftest.oo
+ eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+ as_fn_set_status $ac_retval
+
+} # ac_fn_c_try_run
+
+# ac_fn_c_check_func LINENO FUNC VAR
+# ----------------------------------
+# Tests whether FUNC exists, setting the cache variable VAR accordingly
+ac_fn_c_check_func ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+/* Define $2 to an innocuous variant, in case <limits.h> declares $2.
+ For example, HP-UX 11i <limits.h> declares gettimeofday. */
+#define $2 innocuous_$2
+
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char $2 (); below.
+ Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ <limits.h> exists even on freestanding compilers. */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef $2
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char $2 ();
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined __stub_$2 || defined __stub___$2
+choke me
+#endif
+
+int
+main ()
+{
+return $2 ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ eval "$3=yes"
+else
+ eval "$3=no"
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+fi
+eval ac_res=\$$3
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+ eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+
+} # ac_fn_c_check_func
+
+# ac_fn_cxx_try_cpp LINENO
+# ------------------------
+# Try to preprocess conftest.$ac_ext, and return whether this succeeded.
+ac_fn_cxx_try_cpp ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ if { { ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err
+ ac_status=$?
+ if test -s conftest.err; then
+ grep -v '^ *+' conftest.err >conftest.er1
+ cat conftest.er1 >&5
+ mv -f conftest.er1 conftest.err
+ fi
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } >/dev/null && {
+ test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" ||
+ test ! -s conftest.err
+ }; then :
+ ac_retval=0
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_retval=1
+fi
+ eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+ as_fn_set_status $ac_retval
+
+} # ac_fn_cxx_try_cpp
+
+# ac_fn_cxx_try_link LINENO
+# -------------------------
+# Try to link conftest.$ac_ext, and return whether this succeeded.
+ac_fn_cxx_try_link ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ rm -f conftest.$ac_objext conftest$ac_exeext
+ if { { ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_link") 2>conftest.err
+ ac_status=$?
+ if test -s conftest.err; then
+ grep -v '^ *+' conftest.err >conftest.er1
+ cat conftest.er1 >&5
+ mv -f conftest.er1 conftest.err
+ fi
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && {
+ test -z "$ac_cxx_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest$ac_exeext && {
+ test "$cross_compiling" = yes ||
+ $as_test_x conftest$ac_exeext
+ }; then :
+ ac_retval=0
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_retval=1
+fi
+ # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information
+ # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would
+ # interfere with the next link command; also delete a directory that is
+ # left behind by Apple's compiler. We do this before executing the actions.
+ rm -rf conftest.dSYM conftest_ipa8_conftest.oo
+ eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+ as_fn_set_status $ac_retval
+
+} # ac_fn_cxx_try_link
+
+# ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES
+# -------------------------------------------------------
+# Tests whether HEADER exists, giving a warning if it cannot be compiled using
+# the include files in INCLUDES and setting the cache variable VAR
+# accordingly.
+ac_fn_c_check_header_mongrel ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
+ $as_echo_n "(cached) " >&6
+fi
+eval ac_res=\$$3
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+else
+ # Is the header compilable?
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5
+$as_echo_n "checking $2 usability... " >&6; }
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$4
+#include <$2>
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_header_compiler=yes
+else
+ ac_header_compiler=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5
+$as_echo "$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5
+$as_echo_n "checking $2 presence... " >&6; }
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <$2>
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+ ac_header_preproc=yes
+else
+ ac_header_preproc=no
+fi
+rm -f conftest.err conftest.$ac_ext
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5
+$as_echo "$ac_header_preproc" >&6; }
+
+# So? What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #((
+ yes:no: )
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5
+$as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
+$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
+ ;;
+ no:yes:* )
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5
+$as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5
+$as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5
+$as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5
+$as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
+$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
+ ;;
+esac
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
+ $as_echo_n "(cached) " >&6
+else
+ eval "$3=\$ac_header_compiler"
+fi
+eval ac_res=\$$3
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+fi
+ eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+
+} # ac_fn_c_check_header_mongrel
+cat >config.log <<_ACEOF
+This file contains any messages produced by compilers while
+running configure, to aid debugging if configure makes a mistake.
+
+It was created by MusE $as_me 1.1, which was
+generated by GNU Autoconf 2.65. Invocation command line was
+
+ $ $0 $@
+
+_ACEOF
+exec 5>>config.log
+{
+cat <<_ASUNAME
+## --------- ##
+## Platform. ##
+## --------- ##
+
+hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
+uname -m = `(uname -m) 2>/dev/null || echo unknown`
+uname -r = `(uname -r) 2>/dev/null || echo unknown`
+uname -s = `(uname -s) 2>/dev/null || echo unknown`
+uname -v = `(uname -v) 2>/dev/null || echo unknown`
+
+/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
+/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown`
+
+/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown`
+/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown`
+/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
+/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown`
+/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown`
+/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown`
+/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown`
+
+_ASUNAME
+
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ $as_echo "PATH: $as_dir"
+ done
+IFS=$as_save_IFS
+
+} >&5
+
+cat >&5 <<_ACEOF
+
+
+## ----------- ##
+## Core tests. ##
+## ----------- ##
+
+_ACEOF
+
+
+# Keep a trace of the command line.
+# Strip out --no-create and --no-recursion so they do not pile up.
+# Strip out --silent because we don't want to record it for future runs.
+# Also quote any args containing shell meta-characters.
+# Make two passes to allow for proper duplicate-argument suppression.
+ac_configure_args=
+ac_configure_args0=
+ac_configure_args1=
+ac_must_keep_next=false
+for ac_pass in 1 2
+do
+ for ac_arg
+ do
+ case $ac_arg in
+ -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;
+ -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+ | -silent | --silent | --silen | --sile | --sil)
+ continue ;;
+ *\'*)
+ ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
+ esac
+ case $ac_pass in
+ 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;;
+ 2)
+ as_fn_append ac_configure_args1 " '$ac_arg'"
+ if test $ac_must_keep_next = true; then
+ ac_must_keep_next=false # Got value, back to normal.
+ else
+ case $ac_arg in
+ *=* | --config-cache | -C | -disable-* | --disable-* \
+ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
+ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
+ | -with-* | --with-* | -without-* | --without-* | --x)
+ case "$ac_configure_args0 " in
+ "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
+ esac
+ ;;
+ -* ) ac_must_keep_next=true ;;
+ esac
+ fi
+ as_fn_append ac_configure_args " '$ac_arg'"
+ ;;
+ esac
+ done
+done
+{ ac_configure_args0=; unset ac_configure_args0;}
+{ ac_configure_args1=; unset ac_configure_args1;}
+
+# When interrupted or exit'd, cleanup temporary files, and complete
+# config.log. We remove comments because anyway the quotes in there
+# would cause problems or look ugly.
+# WARNING: Use '\'' to represent an apostrophe within the trap.
+# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug.
+trap 'exit_status=$?
+ # Save into config.log some information that might help in debugging.
+ {
+ echo
+
+ cat <<\_ASBOX
+## ---------------- ##
+## Cache variables. ##
+## ---------------- ##
+_ASBOX
+ echo
+ # The following way of writing the cache mishandles newlines in values,
+(
+ for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do
+ eval ac_val=\$$ac_var
+ case $ac_val in #(
+ *${as_nl}*)
+ case $ac_var in #(
+ *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
+$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
+ esac
+ case $ac_var in #(
+ _ | IFS | as_nl) ;; #(
+ BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
+ *) { eval $ac_var=; unset $ac_var;} ;;
+ esac ;;
+ esac
+ done
+ (set) 2>&1 |
+ case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #(
+ *${as_nl}ac_space=\ *)
+ sed -n \
+ "s/'\''/'\''\\\\'\'''\''/g;
+ s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p"
+ ;; #(
+ *)
+ sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
+ ;;
+ esac |
+ sort
+)
+ echo
+
+ cat <<\_ASBOX
+## ----------------- ##
+## Output variables. ##
+## ----------------- ##
+_ASBOX
+ echo
+ for ac_var in $ac_subst_vars
+ do
+ eval ac_val=\$$ac_var
+ case $ac_val in
+ *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
+ esac
+ $as_echo "$ac_var='\''$ac_val'\''"
+ done | sort
+ echo
+
+ if test -n "$ac_subst_files"; then
+ cat <<\_ASBOX
+## ------------------- ##
+## File substitutions. ##
+## ------------------- ##
+_ASBOX
+ echo
+ for ac_var in $ac_subst_files
+ do
+ eval ac_val=\$$ac_var
+ case $ac_val in
+ *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
+ esac
+ $as_echo "$ac_var='\''$ac_val'\''"
+ done | sort
+ echo
+ fi
+
+ if test -s confdefs.h; then
+ cat <<\_ASBOX
+## ----------- ##
+## confdefs.h. ##
+## ----------- ##
+_ASBOX
+ echo
+ cat confdefs.h
+ echo
+ fi
+ test "$ac_signal" != 0 &&
+ $as_echo "$as_me: caught signal $ac_signal"
+ $as_echo "$as_me: exit $exit_status"
+ } >&5
+ rm -f core *.core core.conftest.* &&
+ rm -f -r conftest* confdefs* conf$$* $ac_clean_files &&
+ exit $exit_status
+' 0
+for ac_signal in 1 2 13 15; do
+ trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal
+done
+ac_signal=0
+
+# confdefs.h avoids OS command line length limits that DEFS can exceed.
+rm -f -r conftest* confdefs.h
+
+$as_echo "/* confdefs.h */" > confdefs.h
+
+# Predefined preprocessor variables.
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_NAME "$PACKAGE_NAME"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_TARNAME "$PACKAGE_TARNAME"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_VERSION "$PACKAGE_VERSION"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_STRING "$PACKAGE_STRING"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_URL "$PACKAGE_URL"
+_ACEOF
+
+
+# Let the site file select an alternate cache file if it wants to.
+# Prefer an explicitly selected file to automatically selected ones.
+ac_site_file1=NONE
+ac_site_file2=NONE
+if test -n "$CONFIG_SITE"; then
+ ac_site_file1=$CONFIG_SITE
+elif test "x$prefix" != xNONE; then
+ ac_site_file1=$prefix/share/config.site
+ ac_site_file2=$prefix/etc/config.site
+else
+ ac_site_file1=$ac_default_prefix/share/config.site
+ ac_site_file2=$ac_default_prefix/etc/config.site
+fi
+for ac_site_file in "$ac_site_file1" "$ac_site_file2"
+do
+ test "x$ac_site_file" = xNONE && continue
+ if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5
+$as_echo "$as_me: loading site script $ac_site_file" >&6;}
+ sed 's/^/| /' "$ac_site_file" >&5
+ . "$ac_site_file"
+ fi
+done
+
+if test -r "$cache_file"; then
+ # Some versions of bash will fail to source /dev/null (special files
+ # actually), so we avoid doing that. DJGPP emulates it as a regular file.
+ if test /dev/null != "$cache_file" && test -f "$cache_file"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5
+$as_echo "$as_me: loading cache $cache_file" >&6;}
+ case $cache_file in
+ [\\/]* | ?:[\\/]* ) . "$cache_file";;
+ *) . "./$cache_file";;
+ esac
+ fi
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5
+$as_echo "$as_me: creating cache $cache_file" >&6;}
+ >$cache_file
+fi
+
+# Check that the precious variables saved in the cache have kept the same
+# value.
+ac_cache_corrupted=false
+for ac_var in $ac_precious_vars; do
+ eval ac_old_set=\$ac_cv_env_${ac_var}_set
+ eval ac_new_set=\$ac_env_${ac_var}_set
+ eval ac_old_val=\$ac_cv_env_${ac_var}_value
+ eval ac_new_val=\$ac_env_${ac_var}_value
+ case $ac_old_set,$ac_new_set in
+ set,)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
+$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
+ ac_cache_corrupted=: ;;
+ ,set)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5
+$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
+ ac_cache_corrupted=: ;;
+ ,);;
+ *)
+ if test "x$ac_old_val" != "x$ac_new_val"; then
+ # differences in whitespace do not lead to failure.
+ ac_old_val_w=`echo x $ac_old_val`
+ ac_new_val_w=`echo x $ac_new_val`
+ if test "$ac_old_val_w" != "$ac_new_val_w"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5
+$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
+ ac_cache_corrupted=:
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5
+$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;}
+ eval $ac_var=\$ac_old_val
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5
+$as_echo "$as_me: former value: \`$ac_old_val'" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5
+$as_echo "$as_me: current value: \`$ac_new_val'" >&2;}
+ fi;;
+ esac
+ # Pass precious variables to config.status.
+ if test "$ac_new_set" = set; then
+ case $ac_new_val in
+ *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
+ *) ac_arg=$ac_var=$ac_new_val ;;
+ esac
+ case " $ac_configure_args " in
+ *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy.
+ *) as_fn_append ac_configure_args " '$ac_arg'" ;;
+ esac
+ fi
+done
+if $ac_cache_corrupted; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5
+$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;}
+ as_fn_error "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5
+fi
+## -------------------- ##
+## Main body of script. ##
+## -------------------- ##
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+
+am__api_version='1.11'
+
+ac_aux_dir=
+for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do
+ for ac_t in install-sh install.sh shtool; do
+ if test -f "$ac_dir/$ac_t"; then
+ ac_aux_dir=$ac_dir
+ ac_install_sh="$ac_aux_dir/$ac_t -c"
+ break 2
+ fi
+ done
+done
+if test -z "$ac_aux_dir"; then
+ as_fn_error "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5
+fi
+
+# These three variables are undocumented and unsupported,
+# and are intended to be withdrawn in a future Autoconf release.
+# They can cause serious problems if a builder's source tree is in a directory
+# whose full name contains unusual characters.
+ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var.
+ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var.
+ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var.
+
+
+# Find a good install program. We prefer a C program (faster),
+# so one script is as good as another. But avoid the broken or
+# incompatible versions:
+# SysV /etc/install, /usr/sbin/install
+# SunOS /usr/etc/install
+# IRIX /sbin/install
+# AIX /bin/install
+# AmigaOS /C/install, which installs bootblocks on floppy discs
+# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
+# AFS /usr/afsws/bin/install, which mishandles nonexistent args
+# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
+# OS/2's system install, which has a completely different semantic
+# ./install, which can be erroneously created by make from ./install.sh.
+# Reject install programs that cannot install multiple files.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5
+$as_echo_n "checking for a BSD-compatible install... " >&6; }
+if test -z "$INSTALL"; then
+if test "${ac_cv_path_install+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ # Account for people who put trailing slashes in PATH elements.
+case $as_dir/ in #((
+ ./ | .// | /[cC]/* | \
+ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
+ ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \
+ /usr/ucb/* ) ;;
+ *)
+ # OSF1 and SCO ODT 3.0 have their own names for install.
+ # Don't use installbsd from OSF since it installs stuff as root
+ # by default.
+ for ac_prog in ginstall scoinst install; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then
+ if test $ac_prog = install &&
+ grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
+ # AIX install. It has an incompatible calling convention.
+ :
+ elif test $ac_prog = install &&
+ grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
+ # program-specific install script used by HP pwplus--don't use.
+ :
+ else
+ rm -rf conftest.one conftest.two conftest.dir
+ echo one > conftest.one
+ echo two > conftest.two
+ mkdir conftest.dir
+ if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" &&
+ test -s conftest.one && test -s conftest.two &&
+ test -s conftest.dir/conftest.one &&
+ test -s conftest.dir/conftest.two
+ then
+ ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
+ break 3
+ fi
+ fi
+ fi
+ done
+ done
+ ;;
+esac
+
+ done
+IFS=$as_save_IFS
+
+rm -rf conftest.one conftest.two conftest.dir
+
+fi
+ if test "${ac_cv_path_install+set}" = set; then
+ INSTALL=$ac_cv_path_install
+ else
+ # As a last resort, use the slow shell script. Don't cache a
+ # value for INSTALL within a source directory, because that will
+ # break other packages using the cache if that directory is
+ # removed, or if the value is a relative name.
+ INSTALL=$ac_install_sh
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5
+$as_echo "$INSTALL" >&6; }
+
+# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
+# It thinks the first close brace ends the variable substitution.
+test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
+
+test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
+
+test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5
+$as_echo_n "checking whether build environment is sane... " >&6; }
+# Just in case
+sleep 1
+echo timestamp > conftest.file
+# Reject unsafe characters in $srcdir or the absolute working directory
+# name. Accept space and tab only in the latter.
+am_lf='
+'
+case `pwd` in
+ *[\\\"\#\$\&\'\`$am_lf]*)
+ as_fn_error "unsafe absolute working directory name" "$LINENO" 5;;
+esac
+case $srcdir in
+ *[\\\"\#\$\&\'\`$am_lf\ \ ]*)
+ as_fn_error "unsafe srcdir value: \`$srcdir'" "$LINENO" 5;;
+esac
+
+# Do `set' in a subshell so we don't clobber the current shell's
+# arguments. Must try -L first in case configure is actually a
+# symlink; some systems play weird games with the mod time of symlinks
+# (eg FreeBSD returns the mod time of the symlink's containing
+# directory).
+if (
+ set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
+ if test "$*" = "X"; then
+ # -L didn't work.
+ set X `ls -t "$srcdir/configure" conftest.file`
+ fi
+ rm -f conftest.file
+ if test "$*" != "X $srcdir/configure conftest.file" \
+ && test "$*" != "X conftest.file $srcdir/configure"; then
+
+ # If neither matched, then we have a broken ls. This can happen
+ # if, for instance, CONFIG_SHELL is bash and it inherits a
+ # broken ls alias from the environment. This has actually
+ # happened. Such a system could not be considered "sane".
+ as_fn_error "ls -t appears to fail. Make sure there is not a broken
+alias in your environment" "$LINENO" 5
+ fi
+
+ test "$2" = conftest.file
+ )
+then
+ # Ok.
+ :
+else
+ as_fn_error "newly created file is older than distributed files!
+Check your system clock" "$LINENO" 5
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+test "$program_prefix" != NONE &&
+ program_transform_name="s&^&$program_prefix&;$program_transform_name"
+# Use a double $ so make ignores it.
+test "$program_suffix" != NONE &&
+ program_transform_name="s&\$&$program_suffix&;$program_transform_name"
+# Double any \ or $.
+# By default was `s,x,x', remove it if useless.
+ac_script='s/[\\$]/&&/g;s/;s,x,x,$//'
+program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"`
+
+# expand $ac_aux_dir to an absolute path
+am_aux_dir=`cd $ac_aux_dir && pwd`
+
+if test x"${MISSING+set}" != xset; then
+ case $am_aux_dir in
+ *\ * | *\ *)
+ MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;;
+ *)
+ MISSING="\${SHELL} $am_aux_dir/missing" ;;
+ esac
+fi
+# Use eval to expand $SHELL
+if eval "$MISSING --run true"; then
+ am_missing_run="$MISSING --run "
+else
+ am_missing_run=
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`missing' script is too old or missing" >&5
+$as_echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;}
+fi
+
+if test x"${install_sh}" != xset; then
+ case $am_aux_dir in
+ *\ * | *\ *)
+ install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;;
+ *)
+ install_sh="\${SHELL} $am_aux_dir/install-sh"
+ esac
+fi
+
+# Installed binaries are usually stripped using `strip' when the user
+# run `make install-strip'. However `strip' might not be the right
+# tool to use in cross-compilation environments, therefore Automake
+# will honor the `STRIP' environment variable to overrule this program.
+if test "$cross_compiling" != no; then
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
+set dummy ${ac_tool_prefix}strip; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_STRIP+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$STRIP"; then
+ ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_STRIP="${ac_tool_prefix}strip"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+STRIP=$ac_cv_prog_STRIP
+if test -n "$STRIP"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5
+$as_echo "$STRIP" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_STRIP"; then
+ ac_ct_STRIP=$STRIP
+ # Extract the first word of "strip", so it can be a program name with args.
+set dummy strip; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_STRIP"; then
+ ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_ac_ct_STRIP="strip"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
+if test -n "$ac_ct_STRIP"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5
+$as_echo "$ac_ct_STRIP" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_STRIP" = x; then
+ STRIP=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ STRIP=$ac_ct_STRIP
+ fi
+else
+ STRIP="$ac_cv_prog_STRIP"
+fi
+
+fi
+INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5
+$as_echo_n "checking for a thread-safe mkdir -p... " >&6; }
+if test -z "$MKDIR_P"; then
+ if test "${ac_cv_path_mkdir+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_prog in mkdir gmkdir; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; } || continue
+ case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #(
+ 'mkdir (GNU coreutils) '* | \
+ 'mkdir (coreutils) '* | \
+ 'mkdir (fileutils) '4.1*)
+ ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext
+ break 3;;
+ esac
+ done
+ done
+ done
+IFS=$as_save_IFS
+
+fi
+
+ test -d ./--version && rmdir ./--version
+ if test "${ac_cv_path_mkdir+set}" = set; then
+ MKDIR_P="$ac_cv_path_mkdir -p"
+ else
+ # As a last resort, use the slow shell script. Don't cache a
+ # value for MKDIR_P within a source directory, because that will
+ # break other packages using the cache if that directory is
+ # removed, or if the value is a relative name.
+ MKDIR_P="$ac_install_sh -d"
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5
+$as_echo "$MKDIR_P" >&6; }
+
+mkdir_p="$MKDIR_P"
+case $mkdir_p in
+ [\\/$]* | ?:[\\/]*) ;;
+ */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;;
+esac
+
+for ac_prog in gawk mawk nawk awk
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_AWK+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$AWK"; then
+ ac_cv_prog_AWK="$AWK" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_AWK="$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+AWK=$ac_cv_prog_AWK
+if test -n "$AWK"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5
+$as_echo "$AWK" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$AWK" && break
+done
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5
+$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
+set x ${MAKE-make}
+ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
+if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat >conftest.make <<\_ACEOF
+SHELL = /bin/sh
+all:
+ @echo '@@@%%%=$(MAKE)=@@@%%%'
+_ACEOF
+# GNU make sometimes prints "make[1]: Entering...", which would confuse us.
+case `${MAKE-make} -f conftest.make 2>/dev/null` in
+ *@@@%%%=?*=@@@%%%*)
+ eval ac_cv_prog_make_${ac_make}_set=yes;;
+ *)
+ eval ac_cv_prog_make_${ac_make}_set=no;;
+esac
+rm -f conftest.make
+fi
+if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ SET_MAKE=
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ SET_MAKE="MAKE=${MAKE-make}"
+fi
+
+rm -rf .tst 2>/dev/null
+mkdir .tst 2>/dev/null
+if test -d .tst; then
+ am__leading_dot=.
+else
+ am__leading_dot=_
+fi
+rmdir .tst 2>/dev/null
+
+if test "`cd $srcdir && pwd`" != "`pwd`"; then
+ # Use -I$(srcdir) only when $(srcdir) != ., so that make's output
+ # is not polluted with repeated "-I."
+ am__isrc=' -I$(srcdir)'
+ # test to see if srcdir already configured
+ if test -f $srcdir/config.status; then
+ as_fn_error "source directory already configured; run \"make distclean\" there first" "$LINENO" 5
+ fi
+fi
+
+# test whether we have cygpath
+if test -z "$CYGPATH_W"; then
+ if (cygpath --version) >/dev/null 2>/dev/null; then
+ CYGPATH_W='cygpath -w'
+ else
+ CYGPATH_W=echo
+ fi
+fi
+
+
+# Define the identity of the package.
+ PACKAGE='muse'
+ VERSION='1.1'
+
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE "$PACKAGE"
+_ACEOF
+
+
+cat >>confdefs.h <<_ACEOF
+#define VERSION "$VERSION"
+_ACEOF
+
+# Some tools Automake needs.
+
+ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"}
+
+
+AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"}
+
+
+AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"}
+
+
+AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"}
+
+
+MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"}
+
+# We need awk for the "check" target. The system "awk" is bad on
+# some platforms.
+# Always define AMTAR for backward compatibility.
+
+AMTAR=${AMTAR-"${am_missing_run}tar"}
+
+am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'
+
+
+
+
+
+ac_config_headers="$ac_config_headers config.h"
+
+### AM_MAINTAINER_MODE
+
+ if test x = y; then
+ INSIDE_GNOME_COMMON_TRUE=
+ INSIDE_GNOME_COMMON_FALSE='#'
+else
+ INSIDE_GNOME_COMMON_TRUE='#'
+ INSIDE_GNOME_COMMON_FALSE=
+fi
+
+
+ test -n "$ACLOCAL_FLAGS" && ACLOCAL="$ACLOCAL $ACLOCAL_FLAGS"
+
+ for k in m4 ; do ACLOCAL="$ACLOCAL -I $k" ; done
+
+
+ac_ext=cpp
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+if test -z "$CXX"; then
+ if test -n "$CCC"; then
+ CXX=$CCC
+ else
+ if test -n "$ac_tool_prefix"; then
+ for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC
+ do
+ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_CXX+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$CXX"; then
+ ac_cv_prog_CXX="$CXX" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_CXX="$ac_tool_prefix$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+CXX=$ac_cv_prog_CXX
+if test -n "$CXX"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXX" >&5
+$as_echo "$CXX" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$CXX" && break
+ done
+fi
+if test -z "$CXX"; then
+ ac_ct_CXX=$CXX
+ for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_CXX"; then
+ ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_ac_ct_CXX="$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_CXX=$ac_cv_prog_ac_ct_CXX
+if test -n "$ac_ct_CXX"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CXX" >&5
+$as_echo "$ac_ct_CXX" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$ac_ct_CXX" && break
+done
+
+ if test "x$ac_ct_CXX" = x; then
+ CXX="g++"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ CXX=$ac_ct_CXX
+ fi
+fi
+
+ fi
+fi
+# Provide some information about the compiler.
+$as_echo "$as_me:${as_lineno-$LINENO}: checking for C++ compiler version" >&5
+set X $ac_compile
+ac_compiler=$2
+for ac_option in --version -v -V -qversion; do
+ { { ac_try="$ac_compiler $ac_option >&5"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_compiler $ac_option >&5") 2>conftest.err
+ ac_status=$?
+ if test -s conftest.err; then
+ sed '10a\
+... rest of stderr output deleted ...
+ 10q' conftest.err >conftest.er1
+ cat conftest.er1 >&5
+ fi
+ rm -f conftest.er1 conftest.err
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+done
+
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+ac_clean_files_save=$ac_clean_files
+ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out"
+# Try to create an executable without -o first, disregard a.out.
+# It will help us diagnose broken compilers, and finding out an intuition
+# of exeext.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C++ compiler works" >&5
+$as_echo_n "checking whether the C++ compiler works... " >&6; }
+ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
+
+# The possible output files:
+ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*"
+
+ac_rmfiles=
+for ac_file in $ac_files
+do
+ case $ac_file in
+ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
+ * ) ac_rmfiles="$ac_rmfiles $ac_file";;
+ esac
+done
+rm -f $ac_rmfiles
+
+if { { ac_try="$ac_link_default"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_link_default") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then :
+ # Autoconf-2.13 could set the ac_cv_exeext variable to `no'.
+# So ignore a value of `no', otherwise this would lead to `EXEEXT = no'
+# in a Makefile. We should not override ac_cv_exeext if it was cached,
+# so that the user can short-circuit this test for compilers unknown to
+# Autoconf.
+for ac_file in $ac_files ''
+do
+ test -f "$ac_file" || continue
+ case $ac_file in
+ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj )
+ ;;
+ [ab].out )
+ # We found the default executable, but exeext='' is most
+ # certainly right.
+ break;;
+ *.* )
+ if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no;
+ then :; else
+ ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
+ fi
+ # We set ac_cv_exeext here because the later test for it is not
+ # safe: cross compilers may not add the suffix if given an `-o'
+ # argument, so we may need to know it at that point already.
+ # Even if this section looks crufty: it has the advantage of
+ # actually working.
+ break;;
+ * )
+ break;;
+ esac
+done
+test "$ac_cv_exeext" = no && ac_cv_exeext=
+
+else
+ ac_file=''
+fi
+if test -z "$ac_file"; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+$as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+{ as_fn_set_status 77
+as_fn_error "C++ compiler cannot create executables
+See \`config.log' for more details." "$LINENO" 5; }; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C++ compiler default output file name" >&5
+$as_echo_n "checking for C++ compiler default output file name... " >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5
+$as_echo "$ac_file" >&6; }
+ac_exeext=$ac_cv_exeext
+
+rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out
+ac_clean_files=$ac_clean_files_save
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5
+$as_echo_n "checking for suffix of executables... " >&6; }
+if { { ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_link") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then :
+ # If both `conftest.exe' and `conftest' are `present' (well, observable)
+# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will
+# work properly (i.e., refer to `conftest.exe'), while it won't with
+# `rm'.
+for ac_file in conftest.exe conftest conftest.*; do
+ test -f "$ac_file" || continue
+ case $ac_file in
+ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
+ *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
+ break;;
+ * ) break;;
+ esac
+done
+else
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error "cannot compute suffix of executables: cannot compile and link
+See \`config.log' for more details." "$LINENO" 5; }
+fi
+rm -f conftest conftest$ac_cv_exeext
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5
+$as_echo "$ac_cv_exeext" >&6; }
+
+rm -f conftest.$ac_ext
+EXEEXT=$ac_cv_exeext
+ac_exeext=$EXEEXT
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdio.h>
+int
+main ()
+{
+FILE *f = fopen ("conftest.out", "w");
+ return ferror (f) || fclose (f) != 0;
+
+ ;
+ return 0;
+}
+_ACEOF
+ac_clean_files="$ac_clean_files conftest.out"
+# Check that the compiler produces executables we can run. If not, either
+# the compiler is broken, or we cross compile.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5
+$as_echo_n "checking whether we are cross compiling... " >&6; }
+if test "$cross_compiling" != yes; then
+ { { ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_link") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+ if { ac_try='./conftest$ac_cv_exeext'
+ { { case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_try") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; }; then
+ cross_compiling=no
+ else
+ if test "$cross_compiling" = maybe; then
+ cross_compiling=yes
+ else
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error "cannot run C++ compiled programs.
+If you meant to cross compile, use \`--host'.
+See \`config.log' for more details." "$LINENO" 5; }
+ fi
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5
+$as_echo "$cross_compiling" >&6; }
+
+rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out
+ac_clean_files=$ac_clean_files_save
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5
+$as_echo_n "checking for suffix of object files... " >&6; }
+if test "${ac_cv_objext+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.o conftest.obj
+if { { ac_try="$ac_compile"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_compile") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then :
+ for ac_file in conftest.o conftest.obj conftest.*; do
+ test -f "$ac_file" || continue;
+ case $ac_file in
+ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;;
+ *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
+ break;;
+ esac
+done
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error "cannot compute suffix of object files: cannot compile
+See \`config.log' for more details." "$LINENO" 5; }
+fi
+rm -f conftest.$ac_cv_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5
+$as_echo "$ac_cv_objext" >&6; }
+OBJEXT=$ac_cv_objext
+ac_objext=$OBJEXT
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C++ compiler" >&5
+$as_echo_n "checking whether we are using the GNU C++ compiler... " >&6; }
+if test "${ac_cv_cxx_compiler_gnu+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+#ifndef __GNUC__
+ choke me
+#endif
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_compile "$LINENO"; then :
+ ac_compiler_gnu=yes
+else
+ ac_compiler_gnu=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ac_cv_cxx_compiler_gnu=$ac_compiler_gnu
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cxx_compiler_gnu" >&5
+$as_echo "$ac_cv_cxx_compiler_gnu" >&6; }
+if test $ac_compiler_gnu = yes; then
+ GXX=yes
+else
+ GXX=
+fi
+ac_test_CXXFLAGS=${CXXFLAGS+set}
+ac_save_CXXFLAGS=$CXXFLAGS
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX accepts -g" >&5
+$as_echo_n "checking whether $CXX accepts -g... " >&6; }
+if test "${ac_cv_prog_cxx_g+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_save_cxx_werror_flag=$ac_cxx_werror_flag
+ ac_cxx_werror_flag=yes
+ ac_cv_prog_cxx_g=no
+ CXXFLAGS="-g"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_compile "$LINENO"; then :
+ ac_cv_prog_cxx_g=yes
+else
+ CXXFLAGS=""
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_compile "$LINENO"; then :
+
+else
+ ac_cxx_werror_flag=$ac_save_cxx_werror_flag
+ CXXFLAGS="-g"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_compile "$LINENO"; then :
+ ac_cv_prog_cxx_g=yes
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ ac_cxx_werror_flag=$ac_save_cxx_werror_flag
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_g" >&5
+$as_echo "$ac_cv_prog_cxx_g" >&6; }
+if test "$ac_test_CXXFLAGS" = set; then
+ CXXFLAGS=$ac_save_CXXFLAGS
+elif test $ac_cv_prog_cxx_g = yes; then
+ if test "$GXX" = yes; then
+ CXXFLAGS="-g -O2"
+ else
+ CXXFLAGS="-g"
+ fi
+else
+ if test "$GXX" = yes; then
+ CXXFLAGS="-O2"
+ else
+ CXXFLAGS=
+ fi
+fi
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+DEPDIR="${am__leading_dot}deps"
+
+ac_config_commands="$ac_config_commands depfiles"
+
+
+am_make=${MAKE-make}
+cat > confinc << 'END'
+am__doit:
+ @echo this is the am__doit target
+.PHONY: am__doit
+END
+# If we don't find an include directive, just comment out the code.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5
+$as_echo_n "checking for style of include used by $am_make... " >&6; }
+am__include="#"
+am__quote=
+_am_result=none
+# First try GNU make style include.
+echo "include confinc" > confmf
+# Ignore all kinds of additional output from `make'.
+case `$am_make -s -f confmf 2> /dev/null` in #(
+*the\ am__doit\ target*)
+ am__include=include
+ am__quote=
+ _am_result=GNU
+ ;;
+esac
+# Now try BSD make style include.
+if test "$am__include" = "#"; then
+ echo '.include "confinc"' > confmf
+ case `$am_make -s -f confmf 2> /dev/null` in #(
+ *the\ am__doit\ target*)
+ am__include=.include
+ am__quote="\""
+ _am_result=BSD
+ ;;
+ esac
+fi
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5
+$as_echo "$_am_result" >&6; }
+rm -f confinc confmf
+
+# Check whether --enable-dependency-tracking was given.
+if test "${enable_dependency_tracking+set}" = set; then :
+ enableval=$enable_dependency_tracking;
+fi
+
+if test "x$enable_dependency_tracking" != xno; then
+ am_depcomp="$ac_aux_dir/depcomp"
+ AMDEPBACKSLASH='\'
+fi
+ if test "x$enable_dependency_tracking" != xno; then
+ AMDEP_TRUE=
+ AMDEP_FALSE='#'
+else
+ AMDEP_TRUE='#'
+ AMDEP_FALSE=
+fi
+
+
+
+depcc="$CXX" am_compiler_list=
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
+$as_echo_n "checking dependency style of $depcc... " >&6; }
+if test "${am_cv_CXX_dependencies_compiler_type+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
+ # We make a subdir and do the tests there. Otherwise we can end up
+ # making bogus files that we don't know about and never remove. For
+ # instance it was reported that on HP-UX the gcc test will end up
+ # making a dummy file named `D' -- because `-MD' means `put the output
+ # in D'.
+ mkdir conftest.dir
+ # Copy depcomp to subdir because otherwise we won't find it if we're
+ # using a relative directory.
+ cp "$am_depcomp" conftest.dir
+ cd conftest.dir
+ # We will build objects and dependencies in a subdirectory because
+ # it helps to detect inapplicable dependency modes. For instance
+ # both Tru64's cc and ICC support -MD to output dependencies as a
+ # side effect of compilation, but ICC will put the dependencies in
+ # the current directory while Tru64 will put them in the object
+ # directory.
+ mkdir sub
+
+ am_cv_CXX_dependencies_compiler_type=none
+ if test "$am_compiler_list" = ""; then
+ am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
+ fi
+ am__universal=false
+ case " $depcc " in #(
+ *\ -arch\ *\ -arch\ *) am__universal=true ;;
+ esac
+
+ for depmode in $am_compiler_list; do
+ # Setup a source with many dependencies, because some compilers
+ # like to wrap large dependency lists on column 80 (with \), and
+ # we should not choose a depcomp mode which is confused by this.
+ #
+ # We need to recreate these files for each test, as the compiler may
+ # overwrite some of them when testing with obscure command lines.
+ # This happens at least with the AIX C compiler.
+ : > sub/conftest.c
+ for i in 1 2 3 4 5 6; do
+ echo '#include "conftst'$i'.h"' >> sub/conftest.c
+ # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
+ # Solaris 8's {/usr,}/bin/sh.
+ touch sub/conftst$i.h
+ done
+ echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
+
+ # We check with `-c' and `-o' for the sake of the "dashmstdout"
+ # mode. It turns out that the SunPro C++ compiler does not properly
+ # handle `-M -o', and we need to detect this. Also, some Intel
+ # versions had trouble with output in subdirs
+ am__obj=sub/conftest.${OBJEXT-o}
+ am__minus_obj="-o $am__obj"
+ case $depmode in
+ gcc)
+ # This depmode causes a compiler race in universal mode.
+ test "$am__universal" = false || continue
+ ;;
+ nosideeffect)
+ # after this tag, mechanisms are not by side-effect, so they'll
+ # only be used when explicitly requested
+ if test "x$enable_dependency_tracking" = xyes; then
+ continue
+ else
+ break
+ fi
+ ;;
+ msvisualcpp | msvcmsys)
+ # This compiler won't grok `-c -o', but also, the minuso test has
+ # not run yet. These depmodes are late enough in the game, and
+ # so weak that their functioning should not be impacted.
+ am__obj=conftest.${OBJEXT-o}
+ am__minus_obj=
+ ;;
+ none) break ;;
+ esac
+ if depmode=$depmode \
+ source=sub/conftest.c object=$am__obj \
+ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
+ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
+ >/dev/null 2>conftest.err &&
+ grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
+ grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
+ grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
+ ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
+ # icc doesn't choke on unknown options, it will just issue warnings
+ # or remarks (even with -Werror). So we grep stderr for any message
+ # that says an option was ignored or not supported.
+ # When given -MP, icc 7.0 and 7.1 complain thusly:
+ # icc: Command line warning: ignoring option '-M'; no argument required
+ # The diagnosis changed in icc 8.0:
+ # icc: Command line remark: option '-MP' not supported
+ if (grep 'ignoring option' conftest.err ||
+ grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
+ am_cv_CXX_dependencies_compiler_type=$depmode
+ break
+ fi
+ fi
+ done
+
+ cd ..
+ rm -rf conftest.dir
+else
+ am_cv_CXX_dependencies_compiler_type=none
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CXX_dependencies_compiler_type" >&5
+$as_echo "$am_cv_CXX_dependencies_compiler_type" >&6; }
+CXXDEPMODE=depmode=$am_cv_CXX_dependencies_compiler_type
+
+ if
+ test "x$enable_dependency_tracking" != xno \
+ && test "$am_cv_CXX_dependencies_compiler_type" = gcc3; then
+ am__fastdepCXX_TRUE=
+ am__fastdepCXX_FALSE='#'
+else
+ am__fastdepCXX_TRUE='#'
+ am__fastdepCXX_FALSE=
+fi
+
+
+case `pwd` in
+ *\ * | *\ *)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5
+$as_echo "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;;
+esac
+
+
+
+macro_version='2.2.6b'
+macro_revision='1.3017'
+
+
+
+
+
+
+
+
+
+
+
+
+
+ltmain="$ac_aux_dir/ltmain.sh"
+
+# Make sure we can run config.sub.
+$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
+ as_fn_error "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5
+$as_echo_n "checking build system type... " >&6; }
+if test "${ac_cv_build+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_build_alias=$build_alias
+test "x$ac_build_alias" = x &&
+ ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"`
+test "x$ac_build_alias" = x &&
+ as_fn_error "cannot guess build type; you must specify one" "$LINENO" 5
+ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||
+ as_fn_error "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5
+$as_echo "$ac_cv_build" >&6; }
+case $ac_cv_build in
+*-*-*) ;;
+*) as_fn_error "invalid value of canonical build" "$LINENO" 5;;
+esac
+build=$ac_cv_build
+ac_save_IFS=$IFS; IFS='-'
+set x $ac_cv_build
+shift
+build_cpu=$1
+build_vendor=$2
+shift; shift
+# Remember, the first character of IFS is used to create $*,
+# except with old shells:
+build_os=$*
+IFS=$ac_save_IFS
+case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5
+$as_echo_n "checking host system type... " >&6; }
+if test "${ac_cv_host+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "x$host_alias" = x; then
+ ac_cv_host=$ac_cv_build
+else
+ ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` ||
+ as_fn_error "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5
+$as_echo "$ac_cv_host" >&6; }
+case $ac_cv_host in
+*-*-*) ;;
+*) as_fn_error "invalid value of canonical host" "$LINENO" 5;;
+esac
+host=$ac_cv_host
+ac_save_IFS=$IFS; IFS='-'
+set x $ac_cv_host
+shift
+host_cpu=$1
+host_vendor=$2
+shift; shift
+# Remember, the first character of IFS is used to create $*,
+# except with old shells:
+host_os=$*
+IFS=$ac_save_IFS
+case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac
+
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
+set dummy ${ac_tool_prefix}gcc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_CC+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_CC="${ac_tool_prefix}gcc"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_CC"; then
+ ac_ct_CC=$CC
+ # Extract the first word of "gcc", so it can be a program name with args.
+set dummy gcc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_ac_ct_CC+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_CC"; then
+ ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_ac_ct_CC="gcc"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
+$as_echo "$ac_ct_CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_CC" = x; then
+ CC=""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ CC=$ac_ct_CC
+ fi
+else
+ CC="$ac_cv_prog_CC"
+fi
+
+if test -z "$CC"; then
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
+set dummy ${ac_tool_prefix}cc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_CC+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_CC="${ac_tool_prefix}cc"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ fi
+fi
+if test -z "$CC"; then
+ # Extract the first word of "cc", so it can be a program name with args.
+set dummy cc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_CC+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+ ac_prog_rejected=no
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
+ ac_prog_rejected=yes
+ continue
+ fi
+ ac_cv_prog_CC="cc"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+if test $ac_prog_rejected = yes; then
+ # We found a bogon in the path, so make sure we never use it.
+ set dummy $ac_cv_prog_CC
+ shift
+ if test $# != 0; then
+ # We chose a different compiler from the bogus one.
+ # However, it has the same basename, so the bogon will be chosen
+ # first if we set CC to just the basename; use the full file name.
+ shift
+ ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
+ fi
+fi
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$CC"; then
+ if test -n "$ac_tool_prefix"; then
+ for ac_prog in cl.exe
+ do
+ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_CC+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$CC" && break
+ done
+fi
+if test -z "$CC"; then
+ ac_ct_CC=$CC
+ for ac_prog in cl.exe
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_ac_ct_CC+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_CC"; then
+ ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_ac_ct_CC="$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
+$as_echo "$ac_ct_CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$ac_ct_CC" && break
+done
+
+ if test "x$ac_ct_CC" = x; then
+ CC=""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ CC=$ac_ct_CC
+ fi
+fi
+
+fi
+
+
+test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error "no acceptable C compiler found in \$PATH
+See \`config.log' for more details." "$LINENO" 5; }
+
+# Provide some information about the compiler.
+$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
+set X $ac_compile
+ac_compiler=$2
+for ac_option in --version -v -V -qversion; do
+ { { ac_try="$ac_compiler $ac_option >&5"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_compiler $ac_option >&5") 2>conftest.err
+ ac_status=$?
+ if test -s conftest.err; then
+ sed '10a\
+... rest of stderr output deleted ...
+ 10q' conftest.err >conftest.er1
+ cat conftest.er1 >&5
+ fi
+ rm -f conftest.er1 conftest.err
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+done
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5
+$as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
+if test "${ac_cv_c_compiler_gnu+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+#ifndef __GNUC__
+ choke me
+#endif
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_compiler_gnu=yes
+else
+ ac_compiler_gnu=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ac_cv_c_compiler_gnu=$ac_compiler_gnu
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
+$as_echo "$ac_cv_c_compiler_gnu" >&6; }
+if test $ac_compiler_gnu = yes; then
+ GCC=yes
+else
+ GCC=
+fi
+ac_test_CFLAGS=${CFLAGS+set}
+ac_save_CFLAGS=$CFLAGS
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
+$as_echo_n "checking whether $CC accepts -g... " >&6; }
+if test "${ac_cv_prog_cc_g+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_save_c_werror_flag=$ac_c_werror_flag
+ ac_c_werror_flag=yes
+ ac_cv_prog_cc_g=no
+ CFLAGS="-g"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_prog_cc_g=yes
+else
+ CFLAGS=""
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+
+else
+ ac_c_werror_flag=$ac_save_c_werror_flag
+ CFLAGS="-g"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_prog_cc_g=yes
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ ac_c_werror_flag=$ac_save_c_werror_flag
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
+$as_echo "$ac_cv_prog_cc_g" >&6; }
+if test "$ac_test_CFLAGS" = set; then
+ CFLAGS=$ac_save_CFLAGS
+elif test $ac_cv_prog_cc_g = yes; then
+ if test "$GCC" = yes; then
+ CFLAGS="-g -O2"
+ else
+ CFLAGS="-g"
+ fi
+else
+ if test "$GCC" = yes; then
+ CFLAGS="-O2"
+ else
+ CFLAGS=
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5
+$as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
+if test "${ac_cv_prog_cc_c89+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_cv_prog_cc_c89=no
+ac_save_CC=$CC
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdarg.h>
+#include <stdio.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
+struct buf { int x; };
+FILE * (*rcsopen) (struct buf *, struct stat *, int);
+static char *e (p, i)
+ char **p;
+ int i;
+{
+ return p[i];
+}
+static char *f (char * (*g) (char **, int), char **p, ...)
+{
+ char *s;
+ va_list v;
+ va_start (v,p);
+ s = g (p, va_arg (v,int));
+ va_end (v);
+ return s;
+}
+
+/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has
+ function prototypes and stuff, but not '\xHH' hex character constants.
+ These don't provoke an error unfortunately, instead are silently treated
+ as 'x'. The following induces an error, until -std is added to get
+ proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an
+ array size at least. It's necessary to write '\x00'==0 to get something
+ that's true only with -std. */
+int osf4_cc_array ['\x00' == 0 ? 1 : -1];
+
+/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
+ inside strings and character constants. */
+#define FOO(x) 'x'
+int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];
+
+int test (int i, double x);
+struct s1 {int (*f) (int a);};
+struct s2 {int (*f) (double a);};
+int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
+int argc;
+char **argv;
+int
+main ()
+{
+return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1];
+ ;
+ return 0;
+}
+_ACEOF
+for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
+ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
+do
+ CC="$ac_save_CC $ac_arg"
+ if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_prog_cc_c89=$ac_arg
+fi
+rm -f core conftest.err conftest.$ac_objext
+ test "x$ac_cv_prog_cc_c89" != "xno" && break
+done
+rm -f conftest.$ac_ext
+CC=$ac_save_CC
+
+fi
+# AC_CACHE_VAL
+case "x$ac_cv_prog_cc_c89" in
+ x)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
+$as_echo "none needed" >&6; } ;;
+ xno)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
+$as_echo "unsupported" >&6; } ;;
+ *)
+ CC="$CC $ac_cv_prog_cc_c89"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
+$as_echo "$ac_cv_prog_cc_c89" >&6; } ;;
+esac
+if test "x$ac_cv_prog_cc_c89" != xno; then :
+
+fi
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+depcc="$CC" am_compiler_list=
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
+$as_echo_n "checking dependency style of $depcc... " >&6; }
+if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
+ # We make a subdir and do the tests there. Otherwise we can end up
+ # making bogus files that we don't know about and never remove. For
+ # instance it was reported that on HP-UX the gcc test will end up
+ # making a dummy file named `D' -- because `-MD' means `put the output
+ # in D'.
+ mkdir conftest.dir
+ # Copy depcomp to subdir because otherwise we won't find it if we're
+ # using a relative directory.
+ cp "$am_depcomp" conftest.dir
+ cd conftest.dir
+ # We will build objects and dependencies in a subdirectory because
+ # it helps to detect inapplicable dependency modes. For instance
+ # both Tru64's cc and ICC support -MD to output dependencies as a
+ # side effect of compilation, but ICC will put the dependencies in
+ # the current directory while Tru64 will put them in the object
+ # directory.
+ mkdir sub
+
+ am_cv_CC_dependencies_compiler_type=none
+ if test "$am_compiler_list" = ""; then
+ am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
+ fi
+ am__universal=false
+ case " $depcc " in #(
+ *\ -arch\ *\ -arch\ *) am__universal=true ;;
+ esac
+
+ for depmode in $am_compiler_list; do
+ # Setup a source with many dependencies, because some compilers
+ # like to wrap large dependency lists on column 80 (with \), and
+ # we should not choose a depcomp mode which is confused by this.
+ #
+ # We need to recreate these files for each test, as the compiler may
+ # overwrite some of them when testing with obscure command lines.
+ # This happens at least with the AIX C compiler.
+ : > sub/conftest.c
+ for i in 1 2 3 4 5 6; do
+ echo '#include "conftst'$i'.h"' >> sub/conftest.c
+ # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
+ # Solaris 8's {/usr,}/bin/sh.
+ touch sub/conftst$i.h
+ done
+ echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
+
+ # We check with `-c' and `-o' for the sake of the "dashmstdout"
+ # mode. It turns out that the SunPro C++ compiler does not properly
+ # handle `-M -o', and we need to detect this. Also, some Intel
+ # versions had trouble with output in subdirs
+ am__obj=sub/conftest.${OBJEXT-o}
+ am__minus_obj="-o $am__obj"
+ case $depmode in
+ gcc)
+ # This depmode causes a compiler race in universal mode.
+ test "$am__universal" = false || continue
+ ;;
+ nosideeffect)
+ # after this tag, mechanisms are not by side-effect, so they'll
+ # only be used when explicitly requested
+ if test "x$enable_dependency_tracking" = xyes; then
+ continue
+ else
+ break
+ fi
+ ;;
+ msvisualcpp | msvcmsys)
+ # This compiler won't grok `-c -o', but also, the minuso test has
+ # not run yet. These depmodes are late enough in the game, and
+ # so weak that their functioning should not be impacted.
+ am__obj=conftest.${OBJEXT-o}
+ am__minus_obj=
+ ;;
+ none) break ;;
+ esac
+ if depmode=$depmode \
+ source=sub/conftest.c object=$am__obj \
+ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
+ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
+ >/dev/null 2>conftest.err &&
+ grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
+ grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
+ grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
+ ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
+ # icc doesn't choke on unknown options, it will just issue warnings
+ # or remarks (even with -Werror). So we grep stderr for any message
+ # that says an option was ignored or not supported.
+ # When given -MP, icc 7.0 and 7.1 complain thusly:
+ # icc: Command line warning: ignoring option '-M'; no argument required
+ # The diagnosis changed in icc 8.0:
+ # icc: Command line remark: option '-MP' not supported
+ if (grep 'ignoring option' conftest.err ||
+ grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
+ am_cv_CC_dependencies_compiler_type=$depmode
+ break
+ fi
+ fi
+ done
+
+ cd ..
+ rm -rf conftest.dir
+else
+ am_cv_CC_dependencies_compiler_type=none
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5
+$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; }
+CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type
+
+ if
+ test "x$enable_dependency_tracking" != xno \
+ && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then
+ am__fastdepCC_TRUE=
+ am__fastdepCC_FALSE='#'
+else
+ am__fastdepCC_TRUE='#'
+ am__fastdepCC_FALSE=
+fi
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5
+$as_echo_n "checking for a sed that does not truncate output... " >&6; }
+if test "${ac_cv_path_SED+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/
+ for ac_i in 1 2 3 4 5 6 7; do
+ ac_script="$ac_script$as_nl$ac_script"
+ done
+ echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed
+ { ac_script=; unset ac_script;}
+ if test -z "$SED"; then
+ ac_path_SED_found=false
+ # Loop through the user's path and test for each of PROGNAME-LIST
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_prog in sed gsed; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ ac_path_SED="$as_dir/$ac_prog$ac_exec_ext"
+ { test -f "$ac_path_SED" && $as_test_x "$ac_path_SED"; } || continue
+# Check for GNU ac_path_SED and select it if it is found.
+ # Check for GNU $ac_path_SED
+case `"$ac_path_SED" --version 2>&1` in
+*GNU*)
+ ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;;
+*)
+ ac_count=0
+ $as_echo_n 0123456789 >"conftest.in"
+ while :
+ do
+ cat "conftest.in" "conftest.in" >"conftest.tmp"
+ mv "conftest.tmp" "conftest.in"
+ cp "conftest.in" "conftest.nl"
+ $as_echo '' >> "conftest.nl"
+ "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break
+ diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+ as_fn_arith $ac_count + 1 && ac_count=$as_val
+ if test $ac_count -gt ${ac_path_SED_max-0}; then
+ # Best one so far, save it but keep looking for a better one
+ ac_cv_path_SED="$ac_path_SED"
+ ac_path_SED_max=$ac_count
+ fi
+ # 10*(2^10) chars as input seems more than enough
+ test $ac_count -gt 10 && break
+ done
+ rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+ $ac_path_SED_found && break 3
+ done
+ done
+ done
+IFS=$as_save_IFS
+ if test -z "$ac_cv_path_SED"; then
+ as_fn_error "no acceptable sed could be found in \$PATH" "$LINENO" 5
+ fi
+else
+ ac_cv_path_SED=$SED
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5
+$as_echo "$ac_cv_path_SED" >&6; }
+ SED="$ac_cv_path_SED"
+ rm -f conftest.sed
+
+test -z "$SED" && SED=sed
+Xsed="$SED -e 1s/^X//"
+
+
+
+
+
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
+$as_echo_n "checking for grep that handles long lines and -e... " >&6; }
+if test "${ac_cv_path_GREP+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -z "$GREP"; then
+ ac_path_GREP_found=false
+ # Loop through the user's path and test for each of PROGNAME-LIST
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_prog in grep ggrep; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
+ { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue
+# Check for GNU ac_path_GREP and select it if it is found.
+ # Check for GNU $ac_path_GREP
+case `"$ac_path_GREP" --version 2>&1` in
+*GNU*)
+ ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;;
+*)
+ ac_count=0
+ $as_echo_n 0123456789 >"conftest.in"
+ while :
+ do
+ cat "conftest.in" "conftest.in" >"conftest.tmp"
+ mv "conftest.tmp" "conftest.in"
+ cp "conftest.in" "conftest.nl"
+ $as_echo 'GREP' >> "conftest.nl"
+ "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break
+ diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+ as_fn_arith $ac_count + 1 && ac_count=$as_val
+ if test $ac_count -gt ${ac_path_GREP_max-0}; then
+ # Best one so far, save it but keep looking for a better one
+ ac_cv_path_GREP="$ac_path_GREP"
+ ac_path_GREP_max=$ac_count
+ fi
+ # 10*(2^10) chars as input seems more than enough
+ test $ac_count -gt 10 && break
+ done
+ rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+ $ac_path_GREP_found && break 3
+ done
+ done
+ done
+IFS=$as_save_IFS
+ if test -z "$ac_cv_path_GREP"; then
+ as_fn_error "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+ fi
+else
+ ac_cv_path_GREP=$GREP
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5
+$as_echo "$ac_cv_path_GREP" >&6; }
+ GREP="$ac_cv_path_GREP"
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
+$as_echo_n "checking for egrep... " >&6; }
+if test "${ac_cv_path_EGREP+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
+ then ac_cv_path_EGREP="$GREP -E"
+ else
+ if test -z "$EGREP"; then
+ ac_path_EGREP_found=false
+ # Loop through the user's path and test for each of PROGNAME-LIST
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_prog in egrep; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
+ { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue
+# Check for GNU ac_path_EGREP and select it if it is found.
+ # Check for GNU $ac_path_EGREP
+case `"$ac_path_EGREP" --version 2>&1` in
+*GNU*)
+ ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;;
+*)
+ ac_count=0
+ $as_echo_n 0123456789 >"conftest.in"
+ while :
+ do
+ cat "conftest.in" "conftest.in" >"conftest.tmp"
+ mv "conftest.tmp" "conftest.in"
+ cp "conftest.in" "conftest.nl"
+ $as_echo 'EGREP' >> "conftest.nl"
+ "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
+ diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+ as_fn_arith $ac_count + 1 && ac_count=$as_val
+ if test $ac_count -gt ${ac_path_EGREP_max-0}; then
+ # Best one so far, save it but keep looking for a better one
+ ac_cv_path_EGREP="$ac_path_EGREP"
+ ac_path_EGREP_max=$ac_count
+ fi
+ # 10*(2^10) chars as input seems more than enough
+ test $ac_count -gt 10 && break
+ done
+ rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+ $ac_path_EGREP_found && break 3
+ done
+ done
+ done
+IFS=$as_save_IFS
+ if test -z "$ac_cv_path_EGREP"; then
+ as_fn_error "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+ fi
+else
+ ac_cv_path_EGREP=$EGREP
+fi
+
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5
+$as_echo "$ac_cv_path_EGREP" >&6; }
+ EGREP="$ac_cv_path_EGREP"
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5
+$as_echo_n "checking for fgrep... " >&6; }
+if test "${ac_cv_path_FGREP+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1
+ then ac_cv_path_FGREP="$GREP -F"
+ else
+ if test -z "$FGREP"; then
+ ac_path_FGREP_found=false
+ # Loop through the user's path and test for each of PROGNAME-LIST
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_prog in fgrep; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext"
+ { test -f "$ac_path_FGREP" && $as_test_x "$ac_path_FGREP"; } || continue
+# Check for GNU ac_path_FGREP and select it if it is found.
+ # Check for GNU $ac_path_FGREP
+case `"$ac_path_FGREP" --version 2>&1` in
+*GNU*)
+ ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_found=:;;
+*)
+ ac_count=0
+ $as_echo_n 0123456789 >"conftest.in"
+ while :
+ do
+ cat "conftest.in" "conftest.in" >"conftest.tmp"
+ mv "conftest.tmp" "conftest.in"
+ cp "conftest.in" "conftest.nl"
+ $as_echo 'FGREP' >> "conftest.nl"
+ "$ac_path_FGREP" FGREP < "conftest.nl" >"conftest.out" 2>/dev/null || break
+ diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+ as_fn_arith $ac_count + 1 && ac_count=$as_val
+ if test $ac_count -gt ${ac_path_FGREP_max-0}; then
+ # Best one so far, save it but keep looking for a better one
+ ac_cv_path_FGREP="$ac_path_FGREP"
+ ac_path_FGREP_max=$ac_count
+ fi
+ # 10*(2^10) chars as input seems more than enough
+ test $ac_count -gt 10 && break
+ done
+ rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+ $ac_path_FGREP_found && break 3
+ done
+ done
+ done
+IFS=$as_save_IFS
+ if test -z "$ac_cv_path_FGREP"; then
+ as_fn_error "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+ fi
+else
+ ac_cv_path_FGREP=$FGREP
+fi
+
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5
+$as_echo "$ac_cv_path_FGREP" >&6; }
+ FGREP="$ac_cv_path_FGREP"
+
+
+test -z "$GREP" && GREP=grep
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+# Check whether --with-gnu-ld was given.
+if test "${with_gnu_ld+set}" = set; then :
+ withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes
+else
+ with_gnu_ld=no
+fi
+
+ac_prog=ld
+if test "$GCC" = yes; then
+ # Check if gcc -print-prog-name=ld gives a path.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5
+$as_echo_n "checking for ld used by $CC... " >&6; }
+ case $host in
+ *-*-mingw*)
+ # gcc leaves a trailing carriage return which upsets mingw
+ ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
+ *)
+ ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
+ esac
+ case $ac_prog in
+ # Accept absolute paths.
+ [\\/]* | ?:[\\/]*)
+ re_direlt='/[^/][^/]*/\.\./'
+ # Canonicalize the pathname of ld
+ ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'`
+ while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do
+ ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"`
+ done
+ test -z "$LD" && LD="$ac_prog"
+ ;;
+ "")
+ # If it fails, then pretend we aren't using GCC.
+ ac_prog=ld
+ ;;
+ *)
+ # If it is relative, then search for the first ld in PATH.
+ with_gnu_ld=unknown
+ ;;
+ esac
+elif test "$with_gnu_ld" = yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5
+$as_echo_n "checking for GNU ld... " >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5
+$as_echo_n "checking for non-GNU ld... " >&6; }
+fi
+if test "${lt_cv_path_LD+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -z "$LD"; then
+ lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+ for ac_dir in $PATH; do
+ IFS="$lt_save_ifs"
+ test -z "$ac_dir" && ac_dir=.
+ if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
+ lt_cv_path_LD="$ac_dir/$ac_prog"
+ # Check to see if the program is GNU ld. I'd rather use --version,
+ # but apparently some variants of GNU ld only accept -v.
+ # Break only if it was the GNU/non-GNU ld that we prefer.
+ case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
+ *GNU* | *'with BFD'*)
+ test "$with_gnu_ld" != no && break
+ ;;
+ *)
+ test "$with_gnu_ld" != yes && break
+ ;;
+ esac
+ fi
+ done
+ IFS="$lt_save_ifs"
+else
+ lt_cv_path_LD="$LD" # Let the user override the test with a path.
+fi
+fi
+
+LD="$lt_cv_path_LD"
+if test -n "$LD"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LD" >&5
+$as_echo "$LD" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+test -z "$LD" && as_fn_error "no acceptable ld found in \$PATH" "$LINENO" 5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5
+$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; }
+if test "${lt_cv_prog_gnu_ld+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ # I'd rather use --version here, but apparently some GNU lds only accept -v.
+case `$LD -v 2>&1 </dev/null` in
+*GNU* | *'with BFD'*)
+ lt_cv_prog_gnu_ld=yes
+ ;;
+*)
+ lt_cv_prog_gnu_ld=no
+ ;;
+esac
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_gnu_ld" >&5
+$as_echo "$lt_cv_prog_gnu_ld" >&6; }
+with_gnu_ld=$lt_cv_prog_gnu_ld
+
+
+
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5
+$as_echo_n "checking for BSD- or MS-compatible name lister (nm)... " >&6; }
+if test "${lt_cv_path_NM+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$NM"; then
+ # Let the user override the test.
+ lt_cv_path_NM="$NM"
+else
+ lt_nm_to_check="${ac_tool_prefix}nm"
+ if test -n "$ac_tool_prefix" && test "$build" = "$host"; then
+ lt_nm_to_check="$lt_nm_to_check nm"
+ fi
+ for lt_tmp_nm in $lt_nm_to_check; do
+ lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+ for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do
+ IFS="$lt_save_ifs"
+ test -z "$ac_dir" && ac_dir=.
+ tmp_nm="$ac_dir/$lt_tmp_nm"
+ if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then
+ # Check to see if the nm accepts a BSD-compat flag.
+ # Adding the `sed 1q' prevents false positives on HP-UX, which says:
+ # nm: unknown option "B" ignored
+ # Tru64's nm complains that /dev/null is an invalid object file
+ case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in
+ */dev/null* | *'Invalid file or object type'*)
+ lt_cv_path_NM="$tmp_nm -B"
+ break
+ ;;
+ *)
+ case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in
+ */dev/null*)
+ lt_cv_path_NM="$tmp_nm -p"
+ break
+ ;;
+ *)
+ lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but
+ continue # so that we can try to find one that supports BSD flags
+ ;;
+ esac
+ ;;
+ esac
+ fi
+ done
+ IFS="$lt_save_ifs"
+ done
+ : ${lt_cv_path_NM=no}
+fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5
+$as_echo "$lt_cv_path_NM" >&6; }
+if test "$lt_cv_path_NM" != "no"; then
+ NM="$lt_cv_path_NM"
+else
+ # Didn't find any BSD compatible name lister, look for dumpbin.
+ if test -n "$ac_tool_prefix"; then
+ for ac_prog in "dumpbin -symbols" "link -dump -symbols"
+ do
+ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_DUMPBIN+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$DUMPBIN"; then
+ ac_cv_prog_DUMPBIN="$DUMPBIN" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+DUMPBIN=$ac_cv_prog_DUMPBIN
+if test -n "$DUMPBIN"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DUMPBIN" >&5
+$as_echo "$DUMPBIN" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$DUMPBIN" && break
+ done
+fi
+if test -z "$DUMPBIN"; then
+ ac_ct_DUMPBIN=$DUMPBIN
+ for ac_prog in "dumpbin -symbols" "link -dump -symbols"
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_ac_ct_DUMPBIN+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_DUMPBIN"; then
+ ac_cv_prog_ac_ct_DUMPBIN="$ac_ct_DUMPBIN" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_ac_ct_DUMPBIN="$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN
+if test -n "$ac_ct_DUMPBIN"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DUMPBIN" >&5
+$as_echo "$ac_ct_DUMPBIN" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$ac_ct_DUMPBIN" && break
+done
+
+ if test "x$ac_ct_DUMPBIN" = x; then
+ DUMPBIN=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ DUMPBIN=$ac_ct_DUMPBIN
+ fi
+fi
+
+
+ if test "$DUMPBIN" != ":"; then
+ NM="$DUMPBIN"
+ fi
+fi
+test -z "$NM" && NM=nm
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5
+$as_echo_n "checking the name lister ($NM) interface... " >&6; }
+if test "${lt_cv_nm_interface+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_nm_interface="BSD nm"
+ echo "int some_variable = 0;" > conftest.$ac_ext
+ (eval echo "\"\$as_me:5167: $ac_compile\"" >&5)
+ (eval "$ac_compile" 2>conftest.err)
+ cat conftest.err >&5
+ (eval echo "\"\$as_me:5170: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
+ (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
+ cat conftest.err >&5
+ (eval echo "\"\$as_me:5173: output\"" >&5)
+ cat conftest.out >&5
+ if $GREP 'External.*some_variable' conftest.out > /dev/null; then
+ lt_cv_nm_interface="MS dumpbin"
+ fi
+ rm -f conftest*
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5
+$as_echo "$lt_cv_nm_interface" >&6; }
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5
+$as_echo_n "checking whether ln -s works... " >&6; }
+LN_S=$as_ln_s
+if test "$LN_S" = "ln -s"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5
+$as_echo "no, using $LN_S" >&6; }
+fi
+
+# find the maximum length of command line arguments
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5
+$as_echo_n "checking the maximum length of command line arguments... " >&6; }
+if test "${lt_cv_sys_max_cmd_len+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ i=0
+ teststring="ABCD"
+
+ case $build_os in
+ msdosdjgpp*)
+ # On DJGPP, this test can blow up pretty badly due to problems in libc
+ # (any single argument exceeding 2000 bytes causes a buffer overrun
+ # during glob expansion). Even if it were fixed, the result of this
+ # check would be larger than it should be.
+ lt_cv_sys_max_cmd_len=12288; # 12K is about right
+ ;;
+
+ gnu*)
+ # Under GNU Hurd, this test is not required because there is
+ # no limit to the length of command line arguments.
+ # Libtool will interpret -1 as no limit whatsoever
+ lt_cv_sys_max_cmd_len=-1;
+ ;;
+
+ cygwin* | mingw* | cegcc*)
+ # On Win9x/ME, this test blows up -- it succeeds, but takes
+ # about 5 minutes as the teststring grows exponentially.
+ # Worse, since 9x/ME are not pre-emptively multitasking,
+ # you end up with a "frozen" computer, even though with patience
+ # the test eventually succeeds (with a max line length of 256k).
+ # Instead, let's just punt: use the minimum linelength reported by
+ # all of the supported platforms: 8192 (on NT/2K/XP).
+ lt_cv_sys_max_cmd_len=8192;
+ ;;
+
+ amigaos*)
+ # On AmigaOS with pdksh, this test takes hours, literally.
+ # So we just punt and use a minimum line length of 8192.
+ lt_cv_sys_max_cmd_len=8192;
+ ;;
+
+ netbsd* | freebsd* | openbsd* | darwin* | dragonfly*)
+ # This has been around since 386BSD, at least. Likely further.
+ if test -x /sbin/sysctl; then
+ lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax`
+ elif test -x /usr/sbin/sysctl; then
+ lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax`
+ else
+ lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs
+ fi
+ # And add a safety zone
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
+ ;;
+
+ interix*)
+ # We know the value 262144 and hardcode it with a safety zone (like BSD)
+ lt_cv_sys_max_cmd_len=196608
+ ;;
+
+ osf*)
+ # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure
+ # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not
+ # nice to cause kernel panics so lets avoid the loop below.
+ # First set a reasonable default.
+ lt_cv_sys_max_cmd_len=16384
+ #
+ if test -x /sbin/sysconfig; then
+ case `/sbin/sysconfig -q proc exec_disable_arg_limit` in
+ *1*) lt_cv_sys_max_cmd_len=-1 ;;
+ esac
+ fi
+ ;;
+ sco3.2v5*)
+ lt_cv_sys_max_cmd_len=102400
+ ;;
+ sysv5* | sco5v6* | sysv4.2uw2*)
+ kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null`
+ if test -n "$kargmax"; then
+ lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[ ]//'`
+ else
+ lt_cv_sys_max_cmd_len=32768
+ fi
+ ;;
+ *)
+ lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null`
+ if test -n "$lt_cv_sys_max_cmd_len"; then
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
+ else
+ # Make teststring a little bigger before we do anything with it.
+ # a 1K string should be a reasonable start.
+ for i in 1 2 3 4 5 6 7 8 ; do
+ teststring=$teststring$teststring
+ done
+ SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}}
+ # If test is not a shell built-in, we'll probably end up computing a
+ # maximum length that is only half of the actual maximum length, but
+ # we can't tell.
+ while { test "X"`$SHELL $0 --fallback-echo "X$teststring$teststring" 2>/dev/null` \
+ = "XX$teststring$teststring"; } >/dev/null 2>&1 &&
+ test $i != 17 # 1/2 MB should be enough
+ do
+ i=`expr $i + 1`
+ teststring=$teststring$teststring
+ done
+ # Only check the string length outside the loop.
+ lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1`
+ teststring=
+ # Add a significant safety factor because C++ compilers can tack on
+ # massive amounts of additional arguments before passing them to the
+ # linker. It appears as though 1/2 is a usable value.
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2`
+ fi
+ ;;
+ esac
+
+fi
+
+if test -n $lt_cv_sys_max_cmd_len ; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5
+$as_echo "$lt_cv_sys_max_cmd_len" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5
+$as_echo "none" >&6; }
+fi
+max_cmd_len=$lt_cv_sys_max_cmd_len
+
+
+
+
+
+
+: ${CP="cp -f"}
+: ${MV="mv -f"}
+: ${RM="rm -f"}
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands some XSI constructs" >&5
+$as_echo_n "checking whether the shell understands some XSI constructs... " >&6; }
+# Try some XSI features
+xsi_shell=no
+( _lt_dummy="a/b/c"
+ test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \
+ = c,a/b,, \
+ && eval 'test $(( 1 + 1 )) -eq 2 \
+ && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \
+ && xsi_shell=yes
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xsi_shell" >&5
+$as_echo "$xsi_shell" >&6; }
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands \"+=\"" >&5
+$as_echo_n "checking whether the shell understands \"+=\"... " >&6; }
+lt_shell_append=no
+( foo=bar; set foo baz; eval "$1+=\$2" && test "$foo" = barbaz ) \
+ >/dev/null 2>&1 \
+ && lt_shell_append=yes
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_shell_append" >&5
+$as_echo "$lt_shell_append" >&6; }
+
+
+if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
+ lt_unset=unset
+else
+ lt_unset=false
+fi
+
+
+
+
+
+# test EBCDIC or ASCII
+case `echo X|tr X '\101'` in
+ A) # ASCII based system
+ # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr
+ lt_SP2NL='tr \040 \012'
+ lt_NL2SP='tr \015\012 \040\040'
+ ;;
+ *) # EBCDIC based system
+ lt_SP2NL='tr \100 \n'
+ lt_NL2SP='tr \r\n \100\100'
+ ;;
+esac
+
+
+
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5
+$as_echo_n "checking for $LD option to reload object files... " >&6; }
+if test "${lt_cv_ld_reload_flag+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_ld_reload_flag='-r'
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5
+$as_echo "$lt_cv_ld_reload_flag" >&6; }
+reload_flag=$lt_cv_ld_reload_flag
+case $reload_flag in
+"" | " "*) ;;
+*) reload_flag=" $reload_flag" ;;
+esac
+reload_cmds='$LD$reload_flag -o $output$reload_objs'
+case $host_os in
+ darwin*)
+ if test "$GCC" = yes; then
+ reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs'
+ else
+ reload_cmds='$LD$reload_flag -o $output$reload_objs'
+ fi
+ ;;
+esac
+
+
+
+
+
+
+
+
+
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args.
+set dummy ${ac_tool_prefix}objdump; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_OBJDUMP+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$OBJDUMP"; then
+ ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+OBJDUMP=$ac_cv_prog_OBJDUMP
+if test -n "$OBJDUMP"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5
+$as_echo "$OBJDUMP" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_OBJDUMP"; then
+ ac_ct_OBJDUMP=$OBJDUMP
+ # Extract the first word of "objdump", so it can be a program name with args.
+set dummy objdump; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_ac_ct_OBJDUMP+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_OBJDUMP"; then
+ ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_ac_ct_OBJDUMP="objdump"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP
+if test -n "$ac_ct_OBJDUMP"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5
+$as_echo "$ac_ct_OBJDUMP" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_OBJDUMP" = x; then
+ OBJDUMP="false"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ OBJDUMP=$ac_ct_OBJDUMP
+ fi
+else
+ OBJDUMP="$ac_cv_prog_OBJDUMP"
+fi
+
+test -z "$OBJDUMP" && OBJDUMP=objdump
+
+
+
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5
+$as_echo_n "checking how to recognize dependent libraries... " >&6; }
+if test "${lt_cv_deplibs_check_method+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_file_magic_cmd='$MAGIC_CMD'
+lt_cv_file_magic_test_file=
+lt_cv_deplibs_check_method='unknown'
+# Need to set the preceding variable on all platforms that support
+# interlibrary dependencies.
+# 'none' -- dependencies not supported.
+# `unknown' -- same as none, but documents that we really don't know.
+# 'pass_all' -- all dependencies passed with no checks.
+# 'test_compile' -- check by making test program.
+# 'file_magic [[regex]]' -- check by looking for files in library path
+# which responds to the $file_magic_cmd with a given extended regex.
+# If you have `file' or equivalent on your system and you're not sure
+# whether `pass_all' will *always* work, you probably want this one.
+
+case $host_os in
+aix[4-9]*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+beos*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+bsdi[45]*)
+ lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)'
+ lt_cv_file_magic_cmd='/usr/bin/file -L'
+ lt_cv_file_magic_test_file=/shlib/libc.so
+ ;;
+
+cygwin*)
+ # func_win32_libid is a shell function defined in ltmain.sh
+ lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
+ lt_cv_file_magic_cmd='func_win32_libid'
+ ;;
+
+mingw* | pw32*)
+ # Base MSYS/MinGW do not provide the 'file' command needed by
+ # func_win32_libid shell function, so use a weaker test based on 'objdump',
+ # unless we find 'file', for example because we are cross-compiling.
+ if ( file / ) >/dev/null 2>&1; then
+ lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
+ lt_cv_file_magic_cmd='func_win32_libid'
+ else
+ lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?'
+ lt_cv_file_magic_cmd='$OBJDUMP -f'
+ fi
+ ;;
+
+cegcc)
+ # use the weaker test based on 'objdump'. See mingw*.
+ lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?'
+ lt_cv_file_magic_cmd='$OBJDUMP -f'
+ ;;
+
+darwin* | rhapsody*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+freebsd* | dragonfly*)
+ if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
+ case $host_cpu in
+ i*86 )
+ # Not sure whether the presence of OpenBSD here was a mistake.
+ # Let's accept both of them until this is cleared up.
+ lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library'
+ lt_cv_file_magic_cmd=/usr/bin/file
+ lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
+ ;;
+ esac
+ else
+ lt_cv_deplibs_check_method=pass_all
+ fi
+ ;;
+
+gnu*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+hpux10.20* | hpux11*)
+ lt_cv_file_magic_cmd=/usr/bin/file
+ case $host_cpu in
+ ia64*)
+ lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64'
+ lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so
+ ;;
+ hppa*64*)
+ lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]'
+ lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl
+ ;;
+ *)
+ lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9].[0-9]) shared library'
+ lt_cv_file_magic_test_file=/usr/lib/libc.sl
+ ;;
+ esac
+ ;;
+
+interix[3-9]*)
+ # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here
+ lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$'
+ ;;
+
+irix5* | irix6* | nonstopux*)
+ case $LD in
+ *-32|*"-32 ") libmagic=32-bit;;
+ *-n32|*"-n32 ") libmagic=N32;;
+ *-64|*"-64 ") libmagic=64-bit;;
+ *) libmagic=never-match;;
+ esac
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+# This must be Linux ELF.
+linux* | k*bsd*-gnu | kopensolaris*-gnu)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+netbsd* | netbsdelf*-gnu)
+ if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
+ lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$'
+ else
+ lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$'
+ fi
+ ;;
+
+newos6*)
+ lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)'
+ lt_cv_file_magic_cmd=/usr/bin/file
+ lt_cv_file_magic_test_file=/usr/lib/libnls.so
+ ;;
+
+*nto* | *qnx*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+openbsd*)
+ if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+ lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$'
+ else
+ lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$'
+ fi
+ ;;
+
+osf3* | osf4* | osf5*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+rdos*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+solaris*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+sysv4 | sysv4.3*)
+ case $host_vendor in
+ motorola)
+ lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]'
+ lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*`
+ ;;
+ ncr)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+ sequent)
+ lt_cv_file_magic_cmd='/bin/file'
+ lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )'
+ ;;
+ sni)
+ lt_cv_file_magic_cmd='/bin/file'
+ lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib"
+ lt_cv_file_magic_test_file=/lib/libc.so
+ ;;
+ siemens)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+ pc)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+ esac
+ ;;
+
+tpf*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+esac
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5
+$as_echo "$lt_cv_deplibs_check_method" >&6; }
+file_magic_cmd=$lt_cv_file_magic_cmd
+deplibs_check_method=$lt_cv_deplibs_check_method
+test -z "$deplibs_check_method" && deplibs_check_method=unknown
+
+
+
+
+
+
+
+
+
+
+
+
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
+set dummy ${ac_tool_prefix}ar; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_AR+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$AR"; then
+ ac_cv_prog_AR="$AR" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_AR="${ac_tool_prefix}ar"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+AR=$ac_cv_prog_AR
+if test -n "$AR"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
+$as_echo "$AR" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_AR"; then
+ ac_ct_AR=$AR
+ # Extract the first word of "ar", so it can be a program name with args.
+set dummy ar; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_ac_ct_AR+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_AR"; then
+ ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_ac_ct_AR="ar"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_AR=$ac_cv_prog_ac_ct_AR
+if test -n "$ac_ct_AR"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
+$as_echo "$ac_ct_AR" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_AR" = x; then
+ AR="false"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ AR=$ac_ct_AR
+ fi
+else
+ AR="$ac_cv_prog_AR"
+fi
+
+test -z "$AR" && AR=ar
+test -z "$AR_FLAGS" && AR_FLAGS=cru
+
+
+
+
+
+
+
+
+
+
+
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
+set dummy ${ac_tool_prefix}strip; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_STRIP+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$STRIP"; then
+ ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_STRIP="${ac_tool_prefix}strip"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+STRIP=$ac_cv_prog_STRIP
+if test -n "$STRIP"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5
+$as_echo "$STRIP" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_STRIP"; then
+ ac_ct_STRIP=$STRIP
+ # Extract the first word of "strip", so it can be a program name with args.
+set dummy strip; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_STRIP"; then
+ ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_ac_ct_STRIP="strip"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
+if test -n "$ac_ct_STRIP"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5
+$as_echo "$ac_ct_STRIP" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_STRIP" = x; then
+ STRIP=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ STRIP=$ac_ct_STRIP
+ fi
+else
+ STRIP="$ac_cv_prog_STRIP"
+fi
+
+test -z "$STRIP" && STRIP=:
+
+
+
+
+
+
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
+set dummy ${ac_tool_prefix}ranlib; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_RANLIB+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$RANLIB"; then
+ ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+RANLIB=$ac_cv_prog_RANLIB
+if test -n "$RANLIB"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5
+$as_echo "$RANLIB" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_RANLIB"; then
+ ac_ct_RANLIB=$RANLIB
+ # Extract the first word of "ranlib", so it can be a program name with args.
+set dummy ranlib; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_RANLIB"; then
+ ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_ac_ct_RANLIB="ranlib"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
+if test -n "$ac_ct_RANLIB"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5
+$as_echo "$ac_ct_RANLIB" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_RANLIB" = x; then
+ RANLIB=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ RANLIB=$ac_ct_RANLIB
+ fi
+else
+ RANLIB="$ac_cv_prog_RANLIB"
+fi
+
+test -z "$RANLIB" && RANLIB=:
+
+
+
+
+
+
+# Determine commands to create old-style static archives.
+old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs'
+old_postinstall_cmds='chmod 644 $oldlib'
+old_postuninstall_cmds=
+
+if test -n "$RANLIB"; then
+ case $host_os in
+ openbsd*)
+ old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib"
+ ;;
+ *)
+ old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib"
+ ;;
+ esac
+ old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib"
+fi
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+# If no C compiler was specified, use CC.
+LTCC=${LTCC-"$CC"}
+
+# If no C compiler flags were specified, use CFLAGS.
+LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
+
+# Allow CC to be a program name with arguments.
+compiler=$CC
+
+
+# Check for command to grab the raw symbol name followed by C symbol from nm.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5
+$as_echo_n "checking command to parse $NM output from $compiler object... " >&6; }
+if test "${lt_cv_sys_global_symbol_pipe+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+
+# These are sane defaults that work on at least a few old systems.
+# [They come from Ultrix. What could be older than Ultrix?!! ;)]
+
+# Character class describing NM global symbol codes.
+symcode='[BCDEGRST]'
+
+# Regexp to match symbols that can be accessed directly from C.
+sympat='\([_A-Za-z][_A-Za-z0-9]*\)'
+
+# Define system-specific variables.
+case $host_os in
+aix*)
+ symcode='[BCDT]'
+ ;;
+cygwin* | mingw* | pw32* | cegcc*)
+ symcode='[ABCDGISTW]'
+ ;;
+hpux*)
+ if test "$host_cpu" = ia64; then
+ symcode='[ABCDEGRST]'
+ fi
+ ;;
+irix* | nonstopux*)
+ symcode='[BCDEGRST]'
+ ;;
+osf*)
+ symcode='[BCDEGQRST]'
+ ;;
+solaris*)
+ symcode='[BDRT]'
+ ;;
+sco3.2v5*)
+ symcode='[DT]'
+ ;;
+sysv4.2uw2*)
+ symcode='[DT]'
+ ;;
+sysv5* | sco5v6* | unixware* | OpenUNIX*)
+ symcode='[ABDT]'
+ ;;
+sysv4)
+ symcode='[DFNSTU]'
+ ;;
+esac
+
+# If we're using GNU nm, then use its standard symbol codes.
+case `$NM -V 2>&1` in
+*GNU* | *'with BFD'*)
+ symcode='[ABCDGIRSTW]' ;;
+esac
+
+# Transform an extracted symbol line into a proper C declaration.
+# Some systems (esp. on ia64) link data and code symbols differently,
+# so use this general approach.
+lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
+
+# Transform an extracted symbol line into symbol name and symbol address
+lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'"
+lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'"
+
+# Handle CRLF in mingw tool chain
+opt_cr=
+case $build_os in
+mingw*)
+ opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp
+ ;;
+esac
+
+# Try without a prefix underscore, then with it.
+for ac_symprfx in "" "_"; do
+
+ # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol.
+ symxfrm="\\1 $ac_symprfx\\2 \\2"
+
+ # Write the raw and C identifiers.
+ if test "$lt_cv_nm_interface" = "MS dumpbin"; then
+ # Fake it for dumpbin and say T for any non-static function
+ # and D for any global variable.
+ # Also find C++ and __fastcall symbols from MSVC++,
+ # which start with @ or ?.
+ lt_cv_sys_global_symbol_pipe="$AWK '"\
+" {last_section=section; section=\$ 3};"\
+" /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\
+" \$ 0!~/External *\|/{next};"\
+" / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\
+" {if(hide[section]) next};"\
+" {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\
+" {split(\$ 0, a, /\||\r/); split(a[2], s)};"\
+" s[1]~/^[@?]/{print s[1], s[1]; next};"\
+" s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\
+" ' prfx=^$ac_symprfx"
+ else
+ lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
+ fi
+
+ # Check to see that the pipe works correctly.
+ pipe_works=no
+
+ rm -f conftest*
+ cat > conftest.$ac_ext <<_LT_EOF
+#ifdef __cplusplus
+extern "C" {
+#endif
+char nm_test_var;
+void nm_test_func(void);
+void nm_test_func(void){}
+#ifdef __cplusplus
+}
+#endif
+int main(){nm_test_var='a';nm_test_func();return(0);}
+_LT_EOF
+
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ # Now try to grab the symbols.
+ nlist=conftest.nm
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist\""; } >&5
+ (eval $NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && test -s "$nlist"; then
+ # Try sorting and uniquifying the output.
+ if sort "$nlist" | uniq > "$nlist"T; then
+ mv -f "$nlist"T "$nlist"
+ else
+ rm -f "$nlist"T
+ fi
+
+ # Make sure that we snagged all the symbols we need.
+ if $GREP ' nm_test_var$' "$nlist" >/dev/null; then
+ if $GREP ' nm_test_func$' "$nlist" >/dev/null; then
+ cat <<_LT_EOF > conftest.$ac_ext
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+_LT_EOF
+ # Now generate the symbol file.
+ eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext'
+
+ cat <<_LT_EOF >> conftest.$ac_ext
+
+/* The mapping between symbol names and symbols. */
+const struct {
+ const char *name;
+ void *address;
+}
+lt__PROGRAM__LTX_preloaded_symbols[] =
+{
+ { "@PROGRAM@", (void *) 0 },
+_LT_EOF
+ $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext
+ cat <<\_LT_EOF >> conftest.$ac_ext
+ {0, (void *) 0}
+};
+
+/* This works around a problem in FreeBSD linker */
+#ifdef FREEBSD_WORKAROUND
+static const void *lt_preloaded_setup() {
+ return lt__PROGRAM__LTX_preloaded_symbols;
+}
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+_LT_EOF
+ # Now try linking the two files.
+ mv conftest.$ac_objext conftstm.$ac_objext
+ lt_save_LIBS="$LIBS"
+ lt_save_CFLAGS="$CFLAGS"
+ LIBS="conftstm.$ac_objext"
+ CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag"
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && test -s conftest${ac_exeext}; then
+ pipe_works=yes
+ fi
+ LIBS="$lt_save_LIBS"
+ CFLAGS="$lt_save_CFLAGS"
+ else
+ echo "cannot find nm_test_func in $nlist" >&5
+ fi
+ else
+ echo "cannot find nm_test_var in $nlist" >&5
+ fi
+ else
+ echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5
+ fi
+ else
+ echo "$progname: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ fi
+ rm -rf conftest* conftst*
+
+ # Do not use the global_symbol_pipe unless it works.
+ if test "$pipe_works" = yes; then
+ break
+ else
+ lt_cv_sys_global_symbol_pipe=
+ fi
+done
+
+fi
+
+if test -z "$lt_cv_sys_global_symbol_pipe"; then
+ lt_cv_sys_global_symbol_to_cdecl=
+fi
+if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5
+$as_echo "failed" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
+$as_echo "ok" >&6; }
+fi
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+# Check whether --enable-libtool-lock was given.
+if test "${enable_libtool_lock+set}" = set; then :
+ enableval=$enable_libtool_lock;
+fi
+
+test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes
+
+# Some flags need to be propagated to the compiler or linker for good
+# libtool support.
+case $host in
+ia64-*-hpux*)
+ # Find out which ABI we are using.
+ echo 'int i;' > conftest.$ac_ext
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ case `/usr/bin/file conftest.$ac_objext` in
+ *ELF-32*)
+ HPUX_IA64_MODE="32"
+ ;;
+ *ELF-64*)
+ HPUX_IA64_MODE="64"
+ ;;
+ esac
+ fi
+ rm -rf conftest*
+ ;;
+*-*-irix6*)
+ # Find out which ABI we are using.
+ echo '#line 6379 "configure"' > conftest.$ac_ext
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ if test "$lt_cv_prog_gnu_ld" = yes; then
+ case `/usr/bin/file conftest.$ac_objext` in
+ *32-bit*)
+ LD="${LD-ld} -melf32bsmip"
+ ;;
+ *N32*)
+ LD="${LD-ld} -melf32bmipn32"
+ ;;
+ *64-bit*)
+ LD="${LD-ld} -melf64bmip"
+ ;;
+ esac
+ else
+ case `/usr/bin/file conftest.$ac_objext` in
+ *32-bit*)
+ LD="${LD-ld} -32"
+ ;;
+ *N32*)
+ LD="${LD-ld} -n32"
+ ;;
+ *64-bit*)
+ LD="${LD-ld} -64"
+ ;;
+ esac
+ fi
+ fi
+ rm -rf conftest*
+ ;;
+
+x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \
+s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
+ # Find out which ABI we are using.
+ echo 'int i;' > conftest.$ac_ext
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ case `/usr/bin/file conftest.o` in
+ *32-bit*)
+ case $host in
+ x86_64-*kfreebsd*-gnu)
+ LD="${LD-ld} -m elf_i386_fbsd"
+ ;;
+ x86_64-*linux*)
+ LD="${LD-ld} -m elf_i386"
+ ;;
+ ppc64-*linux*|powerpc64-*linux*)
+ LD="${LD-ld} -m elf32ppclinux"
+ ;;
+ s390x-*linux*)
+ LD="${LD-ld} -m elf_s390"
+ ;;
+ sparc64-*linux*)
+ LD="${LD-ld} -m elf32_sparc"
+ ;;
+ esac
+ ;;
+ *64-bit*)
+ case $host in
+ x86_64-*kfreebsd*-gnu)
+ LD="${LD-ld} -m elf_x86_64_fbsd"
+ ;;
+ x86_64-*linux*)
+ LD="${LD-ld} -m elf_x86_64"
+ ;;
+ ppc*-*linux*|powerpc*-*linux*)
+ LD="${LD-ld} -m elf64ppc"
+ ;;
+ s390*-*linux*|s390*-*tpf*)
+ LD="${LD-ld} -m elf64_s390"
+ ;;
+ sparc*-*linux*)
+ LD="${LD-ld} -m elf64_sparc"
+ ;;
+ esac
+ ;;
+ esac
+ fi
+ rm -rf conftest*
+ ;;
+
+*-*-sco3.2v5*)
+ # On SCO OpenServer 5, we need -belf to get full-featured binaries.
+ SAVE_CFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS -belf"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5
+$as_echo_n "checking whether the C compiler needs -belf... " >&6; }
+if test "${lt_cv_cc_needs_belf+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ lt_cv_cc_needs_belf=yes
+else
+ lt_cv_cc_needs_belf=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5
+$as_echo "$lt_cv_cc_needs_belf" >&6; }
+ if test x"$lt_cv_cc_needs_belf" != x"yes"; then
+ # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
+ CFLAGS="$SAVE_CFLAGS"
+ fi
+ ;;
+sparc*-*solaris*)
+ # Find out which ABI we are using.
+ echo 'int i;' > conftest.$ac_ext
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ case `/usr/bin/file conftest.o` in
+ *64-bit*)
+ case $lt_cv_prog_gnu_ld in
+ yes*) LD="${LD-ld} -m elf64_sparc" ;;
+ *)
+ if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then
+ LD="${LD-ld} -64"
+ fi
+ ;;
+ esac
+ ;;
+ esac
+ fi
+ rm -rf conftest*
+ ;;
+esac
+
+need_locks="$enable_libtool_lock"
+
+
+ case $host_os in
+ rhapsody* | darwin*)
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args.
+set dummy ${ac_tool_prefix}dsymutil; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_DSYMUTIL+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$DSYMUTIL"; then
+ ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+DSYMUTIL=$ac_cv_prog_DSYMUTIL
+if test -n "$DSYMUTIL"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5
+$as_echo "$DSYMUTIL" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_DSYMUTIL"; then
+ ac_ct_DSYMUTIL=$DSYMUTIL
+ # Extract the first word of "dsymutil", so it can be a program name with args.
+set dummy dsymutil; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_ac_ct_DSYMUTIL+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_DSYMUTIL"; then
+ ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_ac_ct_DSYMUTIL="dsymutil"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL
+if test -n "$ac_ct_DSYMUTIL"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DSYMUTIL" >&5
+$as_echo "$ac_ct_DSYMUTIL" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_DSYMUTIL" = x; then
+ DSYMUTIL=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ DSYMUTIL=$ac_ct_DSYMUTIL
+ fi
+else
+ DSYMUTIL="$ac_cv_prog_DSYMUTIL"
+fi
+
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args.
+set dummy ${ac_tool_prefix}nmedit; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_NMEDIT+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$NMEDIT"; then
+ ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+NMEDIT=$ac_cv_prog_NMEDIT
+if test -n "$NMEDIT"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NMEDIT" >&5
+$as_echo "$NMEDIT" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_NMEDIT"; then
+ ac_ct_NMEDIT=$NMEDIT
+ # Extract the first word of "nmedit", so it can be a program name with args.
+set dummy nmedit; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_ac_ct_NMEDIT+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_NMEDIT"; then
+ ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_ac_ct_NMEDIT="nmedit"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT
+if test -n "$ac_ct_NMEDIT"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NMEDIT" >&5
+$as_echo "$ac_ct_NMEDIT" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_NMEDIT" = x; then
+ NMEDIT=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ NMEDIT=$ac_ct_NMEDIT
+ fi
+else
+ NMEDIT="$ac_cv_prog_NMEDIT"
+fi
+
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}lipo", so it can be a program name with args.
+set dummy ${ac_tool_prefix}lipo; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_LIPO+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$LIPO"; then
+ ac_cv_prog_LIPO="$LIPO" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_LIPO="${ac_tool_prefix}lipo"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+LIPO=$ac_cv_prog_LIPO
+if test -n "$LIPO"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIPO" >&5
+$as_echo "$LIPO" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_LIPO"; then
+ ac_ct_LIPO=$LIPO
+ # Extract the first word of "lipo", so it can be a program name with args.
+set dummy lipo; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_ac_ct_LIPO+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_LIPO"; then
+ ac_cv_prog_ac_ct_LIPO="$ac_ct_LIPO" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_ac_ct_LIPO="lipo"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_LIPO=$ac_cv_prog_ac_ct_LIPO
+if test -n "$ac_ct_LIPO"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LIPO" >&5
+$as_echo "$ac_ct_LIPO" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_LIPO" = x; then
+ LIPO=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ LIPO=$ac_ct_LIPO
+ fi
+else
+ LIPO="$ac_cv_prog_LIPO"
+fi
+
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}otool", so it can be a program name with args.
+set dummy ${ac_tool_prefix}otool; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_OTOOL+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$OTOOL"; then
+ ac_cv_prog_OTOOL="$OTOOL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_OTOOL="${ac_tool_prefix}otool"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+OTOOL=$ac_cv_prog_OTOOL
+if test -n "$OTOOL"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL" >&5
+$as_echo "$OTOOL" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_OTOOL"; then
+ ac_ct_OTOOL=$OTOOL
+ # Extract the first word of "otool", so it can be a program name with args.
+set dummy otool; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_ac_ct_OTOOL+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_OTOOL"; then
+ ac_cv_prog_ac_ct_OTOOL="$ac_ct_OTOOL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_ac_ct_OTOOL="otool"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_OTOOL=$ac_cv_prog_ac_ct_OTOOL
+if test -n "$ac_ct_OTOOL"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL" >&5
+$as_echo "$ac_ct_OTOOL" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_OTOOL" = x; then
+ OTOOL=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ OTOOL=$ac_ct_OTOOL
+ fi
+else
+ OTOOL="$ac_cv_prog_OTOOL"
+fi
+
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args.
+set dummy ${ac_tool_prefix}otool64; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_OTOOL64+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$OTOOL64"; then
+ ac_cv_prog_OTOOL64="$OTOOL64" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+OTOOL64=$ac_cv_prog_OTOOL64
+if test -n "$OTOOL64"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL64" >&5
+$as_echo "$OTOOL64" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_OTOOL64"; then
+ ac_ct_OTOOL64=$OTOOL64
+ # Extract the first word of "otool64", so it can be a program name with args.
+set dummy otool64; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_ac_ct_OTOOL64+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_OTOOL64"; then
+ ac_cv_prog_ac_ct_OTOOL64="$ac_ct_OTOOL64" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_ac_ct_OTOOL64="otool64"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64
+if test -n "$ac_ct_OTOOL64"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL64" >&5
+$as_echo "$ac_ct_OTOOL64" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_OTOOL64" = x; then
+ OTOOL64=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ OTOOL64=$ac_ct_OTOOL64
+ fi
+else
+ OTOOL64="$ac_cv_prog_OTOOL64"
+fi
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5
+$as_echo_n "checking for -single_module linker flag... " >&6; }
+if test "${lt_cv_apple_cc_single_mod+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_apple_cc_single_mod=no
+ if test -z "${LT_MULTI_MODULE}"; then
+ # By default we will add the -single_module flag. You can override
+ # by either setting the environment variable LT_MULTI_MODULE
+ # non-empty at configure time, or by adding -multi_module to the
+ # link flags.
+ rm -rf libconftest.dylib*
+ echo "int foo(void){return 1;}" > conftest.c
+ echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
+-dynamiclib -Wl,-single_module conftest.c" >&5
+ $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
+ -dynamiclib -Wl,-single_module conftest.c 2>conftest.err
+ _lt_result=$?
+ if test -f libconftest.dylib && test ! -s conftest.err && test $_lt_result = 0; then
+ lt_cv_apple_cc_single_mod=yes
+ else
+ cat conftest.err >&5
+ fi
+ rm -rf libconftest.dylib*
+ rm -f conftest.*
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5
+$as_echo "$lt_cv_apple_cc_single_mod" >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5
+$as_echo_n "checking for -exported_symbols_list linker flag... " >&6; }
+if test "${lt_cv_ld_exported_symbols_list+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_ld_exported_symbols_list=no
+ save_LDFLAGS=$LDFLAGS
+ echo "_main" > conftest.sym
+ LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ lt_cv_ld_exported_symbols_list=yes
+else
+ lt_cv_ld_exported_symbols_list=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ LDFLAGS="$save_LDFLAGS"
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5
+$as_echo "$lt_cv_ld_exported_symbols_list" >&6; }
+ case $host_os in
+ rhapsody* | darwin1.[012])
+ _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;;
+ darwin1.*)
+ _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
+ darwin*) # darwin 5.x on
+ # if running on 10.5 or later, the deployment target defaults
+ # to the OS version, if on x86, and 10.4, the deployment
+ # target defaults to 10.4. Don't you love it?
+ case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in
+ 10.0,*86*-darwin8*|10.0,*-darwin[91]*)
+ _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
+ 10.[012]*)
+ _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
+ 10.*)
+ _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
+ esac
+ ;;
+ esac
+ if test "$lt_cv_apple_cc_single_mod" = "yes"; then
+ _lt_dar_single_mod='$single_module'
+ fi
+ if test "$lt_cv_ld_exported_symbols_list" = "yes"; then
+ _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym'
+ else
+ _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}'
+ fi
+ if test "$DSYMUTIL" != ":"; then
+ _lt_dsymutil='~$DSYMUTIL $lib || :'
+ else
+ _lt_dsymutil=
+ fi
+ ;;
+ esac
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5
+$as_echo_n "checking how to run the C preprocessor... " >&6; }
+# On Suns, sometimes $CPP names a directory.
+if test -n "$CPP" && test -d "$CPP"; then
+ CPP=
+fi
+if test -z "$CPP"; then
+ if test "${ac_cv_prog_CPP+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ # Double quotes because CPP needs to be expanded
+ for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
+ do
+ ac_preproc_ok=false
+for ac_c_preproc_warn_flag in '' yes
+do
+ # Use a header file that comes with gcc, so configuring glibc
+ # with a fresh cross-compiler works.
+ # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ # <limits.h> exists even on freestanding compilers.
+ # On the NeXT, cc -E runs the code through the compiler's parser,
+ # not just through cpp. "Syntax error" is here to catch this case.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+ Syntax error
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+
+else
+ # Broken: fails on valid input.
+continue
+fi
+rm -f conftest.err conftest.$ac_ext
+
+ # OK, works on sane cases. Now check whether nonexistent headers
+ # can be detected and how.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <ac_nonexistent.h>
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+ # Broken: success on invalid input.
+continue
+else
+ # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+rm -f conftest.err conftest.$ac_ext
+
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then :
+ break
+fi
+
+ done
+ ac_cv_prog_CPP=$CPP
+
+fi
+ CPP=$ac_cv_prog_CPP
+else
+ ac_cv_prog_CPP=$CPP
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5
+$as_echo "$CPP" >&6; }
+ac_preproc_ok=false
+for ac_c_preproc_warn_flag in '' yes
+do
+ # Use a header file that comes with gcc, so configuring glibc
+ # with a fresh cross-compiler works.
+ # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ # <limits.h> exists even on freestanding compilers.
+ # On the NeXT, cc -E runs the code through the compiler's parser,
+ # not just through cpp. "Syntax error" is here to catch this case.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+ Syntax error
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+
+else
+ # Broken: fails on valid input.
+continue
+fi
+rm -f conftest.err conftest.$ac_ext
+
+ # OK, works on sane cases. Now check whether nonexistent headers
+ # can be detected and how.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <ac_nonexistent.h>
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+ # Broken: success on invalid input.
+continue
+else
+ # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+rm -f conftest.err conftest.$ac_ext
+
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then :
+
+else
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error "C preprocessor \"$CPP\" fails sanity check
+See \`config.log' for more details." "$LINENO" 5; }
+fi
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
+$as_echo_n "checking for ANSI C header files... " >&6; }
+if test "${ac_cv_header_stdc+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdlib.h>
+#include <stdarg.h>
+#include <string.h>
+#include <float.h>
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_header_stdc=yes
+else
+ ac_cv_header_stdc=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+if test $ac_cv_header_stdc = yes; then
+ # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <string.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "memchr" >/dev/null 2>&1; then :
+
+else
+ ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+ # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdlib.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "free" >/dev/null 2>&1; then :
+
+else
+ ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+ # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
+ if test "$cross_compiling" = yes; then :
+ :
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <ctype.h>
+#include <stdlib.h>
+#if ((' ' & 0x0FF) == 0x020)
+# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
+# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
+#else
+# define ISLOWER(c) \
+ (('a' <= (c) && (c) <= 'i') \
+ || ('j' <= (c) && (c) <= 'r') \
+ || ('s' <= (c) && (c) <= 'z'))
+# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
+#endif
+
+#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
+int
+main ()
+{
+ int i;
+ for (i = 0; i < 256; i++)
+ if (XOR (islower (i), ISLOWER (i))
+ || toupper (i) != TOUPPER (i))
+ return 2;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+
+else
+ ac_cv_header_stdc=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5
+$as_echo "$ac_cv_header_stdc" >&6; }
+if test $ac_cv_header_stdc = yes; then
+
+$as_echo "#define STDC_HEADERS 1" >>confdefs.h
+
+fi
+
+# On IRIX 5.3, sys/types and inttypes.h are conflicting.
+for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
+ inttypes.h stdint.h unistd.h
+do :
+ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
+"
+eval as_val=\$$as_ac_Header
+ if test "x$as_val" = x""yes; then :
+ cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+
+for ac_header in dlfcn.h
+do :
+ ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default
+"
+if test "x$ac_cv_header_dlfcn_h" = x""yes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_DLFCN_H 1
+_ACEOF
+
+fi
+
+done
+
+
+
+ac_ext=cpp
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+if test -z "$CXX"; then
+ if test -n "$CCC"; then
+ CXX=$CCC
+ else
+ if test -n "$ac_tool_prefix"; then
+ for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC
+ do
+ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_CXX+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$CXX"; then
+ ac_cv_prog_CXX="$CXX" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_CXX="$ac_tool_prefix$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+CXX=$ac_cv_prog_CXX
+if test -n "$CXX"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXX" >&5
+$as_echo "$CXX" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$CXX" && break
+ done
+fi
+if test -z "$CXX"; then
+ ac_ct_CXX=$CXX
+ for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_CXX"; then
+ ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_ac_ct_CXX="$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_CXX=$ac_cv_prog_ac_ct_CXX
+if test -n "$ac_ct_CXX"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CXX" >&5
+$as_echo "$ac_ct_CXX" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$ac_ct_CXX" && break
+done
+
+ if test "x$ac_ct_CXX" = x; then
+ CXX="g++"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ CXX=$ac_ct_CXX
+ fi
+fi
+
+ fi
+fi
+# Provide some information about the compiler.
+$as_echo "$as_me:${as_lineno-$LINENO}: checking for C++ compiler version" >&5
+set X $ac_compile
+ac_compiler=$2
+for ac_option in --version -v -V -qversion; do
+ { { ac_try="$ac_compiler $ac_option >&5"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_compiler $ac_option >&5") 2>conftest.err
+ ac_status=$?
+ if test -s conftest.err; then
+ sed '10a\
+... rest of stderr output deleted ...
+ 10q' conftest.err >conftest.er1
+ cat conftest.er1 >&5
+ fi
+ rm -f conftest.er1 conftest.err
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+done
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C++ compiler" >&5
+$as_echo_n "checking whether we are using the GNU C++ compiler... " >&6; }
+if test "${ac_cv_cxx_compiler_gnu+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+#ifndef __GNUC__
+ choke me
+#endif
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_compile "$LINENO"; then :
+ ac_compiler_gnu=yes
+else
+ ac_compiler_gnu=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ac_cv_cxx_compiler_gnu=$ac_compiler_gnu
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cxx_compiler_gnu" >&5
+$as_echo "$ac_cv_cxx_compiler_gnu" >&6; }
+if test $ac_compiler_gnu = yes; then
+ GXX=yes
+else
+ GXX=
+fi
+ac_test_CXXFLAGS=${CXXFLAGS+set}
+ac_save_CXXFLAGS=$CXXFLAGS
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX accepts -g" >&5
+$as_echo_n "checking whether $CXX accepts -g... " >&6; }
+if test "${ac_cv_prog_cxx_g+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_save_cxx_werror_flag=$ac_cxx_werror_flag
+ ac_cxx_werror_flag=yes
+ ac_cv_prog_cxx_g=no
+ CXXFLAGS="-g"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_compile "$LINENO"; then :
+ ac_cv_prog_cxx_g=yes
+else
+ CXXFLAGS=""
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_compile "$LINENO"; then :
+
+else
+ ac_cxx_werror_flag=$ac_save_cxx_werror_flag
+ CXXFLAGS="-g"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_compile "$LINENO"; then :
+ ac_cv_prog_cxx_g=yes
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ ac_cxx_werror_flag=$ac_save_cxx_werror_flag
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_g" >&5
+$as_echo "$ac_cv_prog_cxx_g" >&6; }
+if test "$ac_test_CXXFLAGS" = set; then
+ CXXFLAGS=$ac_save_CXXFLAGS
+elif test $ac_cv_prog_cxx_g = yes; then
+ if test "$GXX" = yes; then
+ CXXFLAGS="-g -O2"
+ else
+ CXXFLAGS="-g"
+ fi
+else
+ if test "$GXX" = yes; then
+ CXXFLAGS="-O2"
+ else
+ CXXFLAGS=
+ fi
+fi
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+depcc="$CXX" am_compiler_list=
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
+$as_echo_n "checking dependency style of $depcc... " >&6; }
+if test "${am_cv_CXX_dependencies_compiler_type+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
+ # We make a subdir and do the tests there. Otherwise we can end up
+ # making bogus files that we don't know about and never remove. For
+ # instance it was reported that on HP-UX the gcc test will end up
+ # making a dummy file named `D' -- because `-MD' means `put the output
+ # in D'.
+ mkdir conftest.dir
+ # Copy depcomp to subdir because otherwise we won't find it if we're
+ # using a relative directory.
+ cp "$am_depcomp" conftest.dir
+ cd conftest.dir
+ # We will build objects and dependencies in a subdirectory because
+ # it helps to detect inapplicable dependency modes. For instance
+ # both Tru64's cc and ICC support -MD to output dependencies as a
+ # side effect of compilation, but ICC will put the dependencies in
+ # the current directory while Tru64 will put them in the object
+ # directory.
+ mkdir sub
+
+ am_cv_CXX_dependencies_compiler_type=none
+ if test "$am_compiler_list" = ""; then
+ am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
+ fi
+ am__universal=false
+ case " $depcc " in #(
+ *\ -arch\ *\ -arch\ *) am__universal=true ;;
+ esac
+
+ for depmode in $am_compiler_list; do
+ # Setup a source with many dependencies, because some compilers
+ # like to wrap large dependency lists on column 80 (with \), and
+ # we should not choose a depcomp mode which is confused by this.
+ #
+ # We need to recreate these files for each test, as the compiler may
+ # overwrite some of them when testing with obscure command lines.
+ # This happens at least with the AIX C compiler.
+ : > sub/conftest.c
+ for i in 1 2 3 4 5 6; do
+ echo '#include "conftst'$i'.h"' >> sub/conftest.c
+ # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
+ # Solaris 8's {/usr,}/bin/sh.
+ touch sub/conftst$i.h
+ done
+ echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
+
+ # We check with `-c' and `-o' for the sake of the "dashmstdout"
+ # mode. It turns out that the SunPro C++ compiler does not properly
+ # handle `-M -o', and we need to detect this. Also, some Intel
+ # versions had trouble with output in subdirs
+ am__obj=sub/conftest.${OBJEXT-o}
+ am__minus_obj="-o $am__obj"
+ case $depmode in
+ gcc)
+ # This depmode causes a compiler race in universal mode.
+ test "$am__universal" = false || continue
+ ;;
+ nosideeffect)
+ # after this tag, mechanisms are not by side-effect, so they'll
+ # only be used when explicitly requested
+ if test "x$enable_dependency_tracking" = xyes; then
+ continue
+ else
+ break
+ fi
+ ;;
+ msvisualcpp | msvcmsys)
+ # This compiler won't grok `-c -o', but also, the minuso test has
+ # not run yet. These depmodes are late enough in the game, and
+ # so weak that their functioning should not be impacted.
+ am__obj=conftest.${OBJEXT-o}
+ am__minus_obj=
+ ;;
+ none) break ;;
+ esac
+ if depmode=$depmode \
+ source=sub/conftest.c object=$am__obj \
+ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
+ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
+ >/dev/null 2>conftest.err &&
+ grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
+ grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
+ grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
+ ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
+ # icc doesn't choke on unknown options, it will just issue warnings
+ # or remarks (even with -Werror). So we grep stderr for any message
+ # that says an option was ignored or not supported.
+ # When given -MP, icc 7.0 and 7.1 complain thusly:
+ # icc: Command line warning: ignoring option '-M'; no argument required
+ # The diagnosis changed in icc 8.0:
+ # icc: Command line remark: option '-MP' not supported
+ if (grep 'ignoring option' conftest.err ||
+ grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
+ am_cv_CXX_dependencies_compiler_type=$depmode
+ break
+ fi
+ fi
+ done
+
+ cd ..
+ rm -rf conftest.dir
+else
+ am_cv_CXX_dependencies_compiler_type=none
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CXX_dependencies_compiler_type" >&5
+$as_echo "$am_cv_CXX_dependencies_compiler_type" >&6; }
+CXXDEPMODE=depmode=$am_cv_CXX_dependencies_compiler_type
+
+ if
+ test "x$enable_dependency_tracking" != xno \
+ && test "$am_cv_CXX_dependencies_compiler_type" = gcc3; then
+ am__fastdepCXX_TRUE=
+ am__fastdepCXX_FALSE='#'
+else
+ am__fastdepCXX_TRUE='#'
+ am__fastdepCXX_FALSE=
+fi
+
+
+if test -n "$CXX" && ( test "X$CXX" != "Xno" &&
+ ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) ||
+ (test "X$CXX" != "Xg++"))) ; then
+ ac_ext=cpp
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C++ preprocessor" >&5
+$as_echo_n "checking how to run the C++ preprocessor... " >&6; }
+if test -z "$CXXCPP"; then
+ if test "${ac_cv_prog_CXXCPP+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ # Double quotes because CXXCPP needs to be expanded
+ for CXXCPP in "$CXX -E" "/lib/cpp"
+ do
+ ac_preproc_ok=false
+for ac_cxx_preproc_warn_flag in '' yes
+do
+ # Use a header file that comes with gcc, so configuring glibc
+ # with a fresh cross-compiler works.
+ # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ # <limits.h> exists even on freestanding compilers.
+ # On the NeXT, cc -E runs the code through the compiler's parser,
+ # not just through cpp. "Syntax error" is here to catch this case.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+ Syntax error
+_ACEOF
+if ac_fn_cxx_try_cpp "$LINENO"; then :
+
+else
+ # Broken: fails on valid input.
+continue
+fi
+rm -f conftest.err conftest.$ac_ext
+
+ # OK, works on sane cases. Now check whether nonexistent headers
+ # can be detected and how.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <ac_nonexistent.h>
+_ACEOF
+if ac_fn_cxx_try_cpp "$LINENO"; then :
+ # Broken: success on invalid input.
+continue
+else
+ # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+rm -f conftest.err conftest.$ac_ext
+
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then :
+ break
+fi
+
+ done
+ ac_cv_prog_CXXCPP=$CXXCPP
+
+fi
+ CXXCPP=$ac_cv_prog_CXXCPP
+else
+ ac_cv_prog_CXXCPP=$CXXCPP
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXXCPP" >&5
+$as_echo "$CXXCPP" >&6; }
+ac_preproc_ok=false
+for ac_cxx_preproc_warn_flag in '' yes
+do
+ # Use a header file that comes with gcc, so configuring glibc
+ # with a fresh cross-compiler works.
+ # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ # <limits.h> exists even on freestanding compilers.
+ # On the NeXT, cc -E runs the code through the compiler's parser,
+ # not just through cpp. "Syntax error" is here to catch this case.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+ Syntax error
+_ACEOF
+if ac_fn_cxx_try_cpp "$LINENO"; then :
+
+else
+ # Broken: fails on valid input.
+continue
+fi
+rm -f conftest.err conftest.$ac_ext
+
+ # OK, works on sane cases. Now check whether nonexistent headers
+ # can be detected and how.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <ac_nonexistent.h>
+_ACEOF
+if ac_fn_cxx_try_cpp "$LINENO"; then :
+ # Broken: success on invalid input.
+continue
+else
+ # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+rm -f conftest.err conftest.$ac_ext
+
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then :
+
+else
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+_lt_caught_CXX_error=yes; }
+fi
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+else
+ _lt_caught_CXX_error=yes
+fi
+
+
+
+
+
+# Set options
+
+
+
+ enable_dlopen=no
+
+
+ enable_win32_dll=no
+
+
+ # Check whether --enable-shared was given.
+if test "${enable_shared+set}" = set; then :
+ enableval=$enable_shared; p=${PACKAGE-default}
+ case $enableval in
+ yes) enable_shared=yes ;;
+ no) enable_shared=no ;;
+ *)
+ enable_shared=no
+ # Look at the argument we got. We use all the common list separators.
+ lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+ for pkg in $enableval; do
+ IFS="$lt_save_ifs"
+ if test "X$pkg" = "X$p"; then
+ enable_shared=yes
+ fi
+ done
+ IFS="$lt_save_ifs"
+ ;;
+ esac
+else
+ enable_shared=yes
+fi
+
+
+
+
+
+
+
+
+
+ # Check whether --enable-static was given.
+if test "${enable_static+set}" = set; then :
+ enableval=$enable_static; p=${PACKAGE-default}
+ case $enableval in
+ yes) enable_static=yes ;;
+ no) enable_static=no ;;
+ *)
+ enable_static=no
+ # Look at the argument we got. We use all the common list separators.
+ lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+ for pkg in $enableval; do
+ IFS="$lt_save_ifs"
+ if test "X$pkg" = "X$p"; then
+ enable_static=yes
+ fi
+ done
+ IFS="$lt_save_ifs"
+ ;;
+ esac
+else
+ enable_static=yes
+fi
+
+
+
+
+
+
+
+
+
+
+# Check whether --with-pic was given.
+if test "${with_pic+set}" = set; then :
+ withval=$with_pic; pic_mode="$withval"
+else
+ pic_mode=default
+fi
+
+
+test -z "$pic_mode" && pic_mode=default
+
+
+
+
+
+
+
+ # Check whether --enable-fast-install was given.
+if test "${enable_fast_install+set}" = set; then :
+ enableval=$enable_fast_install; p=${PACKAGE-default}
+ case $enableval in
+ yes) enable_fast_install=yes ;;
+ no) enable_fast_install=no ;;
+ *)
+ enable_fast_install=no
+ # Look at the argument we got. We use all the common list separators.
+ lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+ for pkg in $enableval; do
+ IFS="$lt_save_ifs"
+ if test "X$pkg" = "X$p"; then
+ enable_fast_install=yes
+ fi
+ done
+ IFS="$lt_save_ifs"
+ ;;
+ esac
+else
+ enable_fast_install=yes
+fi
+
+
+
+
+
+
+
+
+
+
+
+# This can be used to rebuild libtool when needed
+LIBTOOL_DEPS="$ltmain"
+
+# Always use our own libtool.
+LIBTOOL='$(SHELL) $(top_builddir)/libtool'
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+test -z "$LN_S" && LN_S="ln -s"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+if test -n "${ZSH_VERSION+set}" ; then
+ setopt NO_GLOB_SUBST
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5
+$as_echo_n "checking for objdir... " >&6; }
+if test "${lt_cv_objdir+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ rm -f .libs 2>/dev/null
+mkdir .libs 2>/dev/null
+if test -d .libs; then
+ lt_cv_objdir=.libs
+else
+ # MS-DOS does not allow filenames that begin with a dot.
+ lt_cv_objdir=_libs
+fi
+rmdir .libs 2>/dev/null
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5
+$as_echo "$lt_cv_objdir" >&6; }
+objdir=$lt_cv_objdir
+
+
+
+
+
+cat >>confdefs.h <<_ACEOF
+#define LT_OBJDIR "$lt_cv_objdir/"
+_ACEOF
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+case $host_os in
+aix3*)
+ # AIX sometimes has problems with the GCC collect2 program. For some
+ # reason, if we set the COLLECT_NAMES environment variable, the problems
+ # vanish in a puff of smoke.
+ if test "X${COLLECT_NAMES+set}" != Xset; then
+ COLLECT_NAMES=
+ export COLLECT_NAMES
+ fi
+ ;;
+esac
+
+# Sed substitution that helps us do robust quoting. It backslashifies
+# metacharacters that are still active within double-quoted strings.
+sed_quote_subst='s/\(["`$\\]\)/\\\1/g'
+
+# Same as above, but do not quote variable references.
+double_quote_subst='s/\(["`\\]\)/\\\1/g'
+
+# Sed substitution to delay expansion of an escaped shell variable in a
+# double_quote_subst'ed string.
+delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
+
+# Sed substitution to delay expansion of an escaped single quote.
+delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g'
+
+# Sed substitution to avoid accidental globbing in evaled expressions
+no_glob_subst='s/\*/\\\*/g'
+
+# Global variables:
+ofile=libtool
+can_build_shared=yes
+
+# All known linkers require a `.a' archive for static linking (except MSVC,
+# which needs '.lib').
+libext=a
+
+with_gnu_ld="$lt_cv_prog_gnu_ld"
+
+old_CC="$CC"
+old_CFLAGS="$CFLAGS"
+
+# Set sane defaults for various variables
+test -z "$CC" && CC=cc
+test -z "$LTCC" && LTCC=$CC
+test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS
+test -z "$LD" && LD=ld
+test -z "$ac_objext" && ac_objext=o
+
+for cc_temp in $compiler""; do
+ case $cc_temp in
+ compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
+ distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
+ \-*) ;;
+ *) break;;
+ esac
+done
+cc_basename=`$ECHO "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
+
+
+# Only perform the check for file, if the check method requires it
+test -z "$MAGIC_CMD" && MAGIC_CMD=file
+case $deplibs_check_method in
+file_magic*)
+ if test "$file_magic_cmd" = '$MAGIC_CMD'; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5
+$as_echo_n "checking for ${ac_tool_prefix}file... " >&6; }
+if test "${lt_cv_path_MAGIC_CMD+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $MAGIC_CMD in
+[\\/*] | ?:[\\/]*)
+ lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
+ ;;
+*)
+ lt_save_MAGIC_CMD="$MAGIC_CMD"
+ lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+ ac_dummy="/usr/bin$PATH_SEPARATOR$PATH"
+ for ac_dir in $ac_dummy; do
+ IFS="$lt_save_ifs"
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/${ac_tool_prefix}file; then
+ lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file"
+ if test -n "$file_magic_test_file"; then
+ case $deplibs_check_method in
+ "file_magic "*)
+ file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
+ MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+ if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
+ $EGREP "$file_magic_regex" > /dev/null; then
+ :
+ else
+ cat <<_LT_EOF 1>&2
+
+*** Warning: the command libtool uses to detect shared libraries,
+*** $file_magic_cmd, produces output that libtool cannot recognize.
+*** The result is that libtool may fail to recognize shared libraries
+*** as such. This will affect the creation of libtool libraries that
+*** depend on shared libraries, but programs linked with such libtool
+*** libraries will work regardless of this problem. Nevertheless, you
+*** may want to report the problem to your system manager and/or to
+*** bug-libtool@gnu.org
+
+_LT_EOF
+ fi ;;
+ esac
+ fi
+ break
+ fi
+ done
+ IFS="$lt_save_ifs"
+ MAGIC_CMD="$lt_save_MAGIC_CMD"
+ ;;
+esac
+fi
+
+MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+if test -n "$MAGIC_CMD"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5
+$as_echo "$MAGIC_CMD" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+
+
+
+if test -z "$lt_cv_path_MAGIC_CMD"; then
+ if test -n "$ac_tool_prefix"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for file" >&5
+$as_echo_n "checking for file... " >&6; }
+if test "${lt_cv_path_MAGIC_CMD+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $MAGIC_CMD in
+[\\/*] | ?:[\\/]*)
+ lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
+ ;;
+*)
+ lt_save_MAGIC_CMD="$MAGIC_CMD"
+ lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+ ac_dummy="/usr/bin$PATH_SEPARATOR$PATH"
+ for ac_dir in $ac_dummy; do
+ IFS="$lt_save_ifs"
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/file; then
+ lt_cv_path_MAGIC_CMD="$ac_dir/file"
+ if test -n "$file_magic_test_file"; then
+ case $deplibs_check_method in
+ "file_magic "*)
+ file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
+ MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+ if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
+ $EGREP "$file_magic_regex" > /dev/null; then
+ :
+ else
+ cat <<_LT_EOF 1>&2
+
+*** Warning: the command libtool uses to detect shared libraries,
+*** $file_magic_cmd, produces output that libtool cannot recognize.
+*** The result is that libtool may fail to recognize shared libraries
+*** as such. This will affect the creation of libtool libraries that
+*** depend on shared libraries, but programs linked with such libtool
+*** libraries will work regardless of this problem. Nevertheless, you
+*** may want to report the problem to your system manager and/or to
+*** bug-libtool@gnu.org
+
+_LT_EOF
+ fi ;;
+ esac
+ fi
+ break
+ fi
+ done
+ IFS="$lt_save_ifs"
+ MAGIC_CMD="$lt_save_MAGIC_CMD"
+ ;;
+esac
+fi
+
+MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+if test -n "$MAGIC_CMD"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5
+$as_echo "$MAGIC_CMD" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ else
+ MAGIC_CMD=:
+ fi
+fi
+
+ fi
+ ;;
+esac
+
+# Use C for the default configuration in the libtool script
+
+lt_save_CC="$CC"
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+# Source file extension for C test sources.
+ac_ext=c
+
+# Object file extension for compiled C test sources.
+objext=o
+objext=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code="int some_variable = 0;"
+
+# Code to be used in simple link tests
+lt_simple_link_test_code='int main(){return(0);}'
+
+
+
+
+
+
+
+# If no C compiler was specified, use CC.
+LTCC=${LTCC-"$CC"}
+
+# If no C compiler flags were specified, use CFLAGS.
+LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
+
+# Allow CC to be a program name with arguments.
+compiler=$CC
+
+# Save the default compiler, since it gets overwritten when the other
+# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP.
+compiler_DEFAULT=$CC
+
+# save warnings/boilerplate of simple test code
+ac_outfile=conftest.$ac_objext
+echo "$lt_simple_compile_test_code" >conftest.$ac_ext
+eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
+_lt_compiler_boilerplate=`cat conftest.err`
+$RM conftest*
+
+ac_outfile=conftest.$ac_objext
+echo "$lt_simple_link_test_code" >conftest.$ac_ext
+eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
+_lt_linker_boilerplate=`cat conftest.err`
+$RM -r conftest*
+
+
+## CAVEAT EMPTOR:
+## There is no encapsulation within the following macros, do not change
+## the running order or otherwise move them around unless you know exactly
+## what you are doing...
+if test -n "$compiler"; then
+
+lt_prog_compiler_no_builtin_flag=
+
+if test "$GCC" = yes; then
+ lt_prog_compiler_no_builtin_flag=' -fno-builtin'
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5
+$as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; }
+if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_prog_compiler_rtti_exceptions=no
+ ac_outfile=conftest.$ac_objext
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+ lt_compiler_flag="-fno-rtti -fno-exceptions"
+ # Insert the option either (1) after the last *FLAGS variable, or
+ # (2) before a word containing "conftest.", or (3) at the end.
+ # Note that $ac_compile itself does not contain backslashes and begins
+ # with a dollar sign (not a hyphen), so the echo should work correctly.
+ # The option is referenced via a variable to avoid confusing sed.
+ lt_compile=`echo "$ac_compile" | $SED \
+ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+ -e 's:$: $lt_compiler_flag:'`
+ (eval echo "\"\$as_me:8436: $lt_compile\"" >&5)
+ (eval "$lt_compile" 2>conftest.err)
+ ac_status=$?
+ cat conftest.err >&5
+ echo "$as_me:8440: \$? = $ac_status" >&5
+ if (exit $ac_status) && test -s "$ac_outfile"; then
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings other than the usual output.
+ $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp
+ $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+ if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
+ lt_cv_prog_compiler_rtti_exceptions=yes
+ fi
+ fi
+ $RM conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5
+$as_echo "$lt_cv_prog_compiler_rtti_exceptions" >&6; }
+
+if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then
+ lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions"
+else
+ :
+fi
+
+fi
+
+
+
+
+
+
+ lt_prog_compiler_wl=
+lt_prog_compiler_pic=
+lt_prog_compiler_static=
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5
+$as_echo_n "checking for $compiler option to produce PIC... " >&6; }
+
+ if test "$GCC" = yes; then
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_static='-static'
+
+ case $host_os in
+ aix*)
+ # All AIX code is PIC.
+ if test "$host_cpu" = ia64; then
+ # AIX 5 now supports IA64 processor
+ lt_prog_compiler_static='-Bstatic'
+ fi
+ ;;
+
+ amigaos*)
+ case $host_cpu in
+ powerpc)
+ # see comment about AmigaOS4 .so support
+ lt_prog_compiler_pic='-fPIC'
+ ;;
+ m68k)
+ # FIXME: we need at least 68020 code to build shared libraries, but
+ # adding the `-m68020' flag to GCC prevents building anything better,
+ # like `-m68040'.
+ lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4'
+ ;;
+ esac
+ ;;
+
+ beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+ # PIC is the default for these OSes.
+ ;;
+
+ mingw* | cygwin* | pw32* | os2* | cegcc*)
+ # This hack is so that the source file can tell whether it is being
+ # built for inclusion in a dll (and should export symbols for example).
+ # Although the cygwin gcc ignores -fPIC, still need this for old-style
+ # (--disable-auto-import) libraries
+ lt_prog_compiler_pic='-DDLL_EXPORT'
+ ;;
+
+ darwin* | rhapsody*)
+ # PIC is the default on this platform
+ # Common symbols not allowed in MH_DYLIB files
+ lt_prog_compiler_pic='-fno-common'
+ ;;
+
+ hpux*)
+ # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
+ # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag
+ # sets the default TLS model and affects inlining.
+ case $host_cpu in
+ hppa*64*)
+ # +Z the default
+ ;;
+ *)
+ lt_prog_compiler_pic='-fPIC'
+ ;;
+ esac
+ ;;
+
+ interix[3-9]*)
+ # Interix 3.x gcc -fpic/-fPIC options generate broken code.
+ # Instead, we relocate shared libraries at runtime.
+ ;;
+
+ msdosdjgpp*)
+ # Just because we use GCC doesn't mean we suddenly get shared libraries
+ # on systems that don't support them.
+ lt_prog_compiler_can_build_shared=no
+ enable_shared=no
+ ;;
+
+ *nto* | *qnx*)
+ # QNX uses GNU C++, but need to define -shared option too, otherwise
+ # it will coredump.
+ lt_prog_compiler_pic='-fPIC -shared'
+ ;;
+
+ sysv4*MP*)
+ if test -d /usr/nec; then
+ lt_prog_compiler_pic=-Kconform_pic
+ fi
+ ;;
+
+ *)
+ lt_prog_compiler_pic='-fPIC'
+ ;;
+ esac
+ else
+ # PORTME Check for flag to pass linker flags through the system compiler.
+ case $host_os in
+ aix*)
+ lt_prog_compiler_wl='-Wl,'
+ if test "$host_cpu" = ia64; then
+ # AIX 5 now supports IA64 processor
+ lt_prog_compiler_static='-Bstatic'
+ else
+ lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp'
+ fi
+ ;;
+
+ mingw* | cygwin* | pw32* | os2* | cegcc*)
+ # This hack is so that the source file can tell whether it is being
+ # built for inclusion in a dll (and should export symbols for example).
+ lt_prog_compiler_pic='-DDLL_EXPORT'
+ ;;
+
+ hpux9* | hpux10* | hpux11*)
+ lt_prog_compiler_wl='-Wl,'
+ # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
+ # not for PA HP-UX.
+ case $host_cpu in
+ hppa*64*|ia64*)
+ # +Z the default
+ ;;
+ *)
+ lt_prog_compiler_pic='+Z'
+ ;;
+ esac
+ # Is there a better lt_prog_compiler_static that works with the bundled CC?
+ lt_prog_compiler_static='${wl}-a ${wl}archive'
+ ;;
+
+ irix5* | irix6* | nonstopux*)
+ lt_prog_compiler_wl='-Wl,'
+ # PIC (with -KPIC) is the default.
+ lt_prog_compiler_static='-non_shared'
+ ;;
+
+ linux* | k*bsd*-gnu | kopensolaris*-gnu)
+ case $cc_basename in
+ # old Intel for x86_64 which still supported -KPIC.
+ ecc*)
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_pic='-KPIC'
+ lt_prog_compiler_static='-static'
+ ;;
+ # icc used to be incompatible with GCC.
+ # ICC 10 doesn't accept -KPIC any more.
+ icc* | ifort*)
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_pic='-fPIC'
+ lt_prog_compiler_static='-static'
+ ;;
+ # Lahey Fortran 8.1.
+ lf95*)
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_pic='--shared'
+ lt_prog_compiler_static='--static'
+ ;;
+ pgcc* | pgf77* | pgf90* | pgf95*)
+ # Portland Group compilers (*not* the Pentium gcc compiler,
+ # which looks to be a dead project)
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_pic='-fpic'
+ lt_prog_compiler_static='-Bstatic'
+ ;;
+ ccc*)
+ lt_prog_compiler_wl='-Wl,'
+ # All Alpha code is PIC.
+ lt_prog_compiler_static='-non_shared'
+ ;;
+ xl*)
+ # IBM XL C 8.0/Fortran 10.1 on PPC
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_pic='-qpic'
+ lt_prog_compiler_static='-qstaticlink'
+ ;;
+ *)
+ case `$CC -V 2>&1 | sed 5q` in
+ *Sun\ C*)
+ # Sun C 5.9
+ lt_prog_compiler_pic='-KPIC'
+ lt_prog_compiler_static='-Bstatic'
+ lt_prog_compiler_wl='-Wl,'
+ ;;
+ *Sun\ F*)
+ # Sun Fortran 8.3 passes all unrecognized flags to the linker
+ lt_prog_compiler_pic='-KPIC'
+ lt_prog_compiler_static='-Bstatic'
+ lt_prog_compiler_wl=''
+ ;;
+ esac
+ ;;
+ esac
+ ;;
+
+ newsos6)
+ lt_prog_compiler_pic='-KPIC'
+ lt_prog_compiler_static='-Bstatic'
+ ;;
+
+ *nto* | *qnx*)
+ # QNX uses GNU C++, but need to define -shared option too, otherwise
+ # it will coredump.
+ lt_prog_compiler_pic='-fPIC -shared'
+ ;;
+
+ osf3* | osf4* | osf5*)
+ lt_prog_compiler_wl='-Wl,'
+ # All OSF/1 code is PIC.
+ lt_prog_compiler_static='-non_shared'
+ ;;
+
+ rdos*)
+ lt_prog_compiler_static='-non_shared'
+ ;;
+
+ solaris*)
+ lt_prog_compiler_pic='-KPIC'
+ lt_prog_compiler_static='-Bstatic'
+ case $cc_basename in
+ f77* | f90* | f95*)
+ lt_prog_compiler_wl='-Qoption ld ';;
+ *)
+ lt_prog_compiler_wl='-Wl,';;
+ esac
+ ;;
+
+ sunos4*)
+ lt_prog_compiler_wl='-Qoption ld '
+ lt_prog_compiler_pic='-PIC'
+ lt_prog_compiler_static='-Bstatic'
+ ;;
+
+ sysv4 | sysv4.2uw2* | sysv4.3*)
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_pic='-KPIC'
+ lt_prog_compiler_static='-Bstatic'
+ ;;
+
+ sysv4*MP*)
+ if test -d /usr/nec ;then
+ lt_prog_compiler_pic='-Kconform_pic'
+ lt_prog_compiler_static='-Bstatic'
+ fi
+ ;;
+
+ sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_pic='-KPIC'
+ lt_prog_compiler_static='-Bstatic'
+ ;;
+
+ unicos*)
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_can_build_shared=no
+ ;;
+
+ uts4*)
+ lt_prog_compiler_pic='-pic'
+ lt_prog_compiler_static='-Bstatic'
+ ;;
+
+ *)
+ lt_prog_compiler_can_build_shared=no
+ ;;
+ esac
+ fi
+
+case $host_os in
+ # For platforms which do not support PIC, -DPIC is meaningless:
+ *djgpp*)
+ lt_prog_compiler_pic=
+ ;;
+ *)
+ lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC"
+ ;;
+esac
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_prog_compiler_pic" >&5
+$as_echo "$lt_prog_compiler_pic" >&6; }
+
+
+
+
+
+
+#
+# Check to make sure the PIC flag actually works.
+#
+if test -n "$lt_prog_compiler_pic"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5
+$as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; }
+if test "${lt_cv_prog_compiler_pic_works+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_prog_compiler_pic_works=no
+ ac_outfile=conftest.$ac_objext
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+ lt_compiler_flag="$lt_prog_compiler_pic -DPIC"
+ # Insert the option either (1) after the last *FLAGS variable, or
+ # (2) before a word containing "conftest.", or (3) at the end.
+ # Note that $ac_compile itself does not contain backslashes and begins
+ # with a dollar sign (not a hyphen), so the echo should work correctly.
+ # The option is referenced via a variable to avoid confusing sed.
+ lt_compile=`echo "$ac_compile" | $SED \
+ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+ -e 's:$: $lt_compiler_flag:'`
+ (eval echo "\"\$as_me:8775: $lt_compile\"" >&5)
+ (eval "$lt_compile" 2>conftest.err)
+ ac_status=$?
+ cat conftest.err >&5
+ echo "$as_me:8779: \$? = $ac_status" >&5
+ if (exit $ac_status) && test -s "$ac_outfile"; then
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings other than the usual output.
+ $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp
+ $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+ if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
+ lt_cv_prog_compiler_pic_works=yes
+ fi
+ fi
+ $RM conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5
+$as_echo "$lt_cv_prog_compiler_pic_works" >&6; }
+
+if test x"$lt_cv_prog_compiler_pic_works" = xyes; then
+ case $lt_prog_compiler_pic in
+ "" | " "*) ;;
+ *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;;
+ esac
+else
+ lt_prog_compiler_pic=
+ lt_prog_compiler_can_build_shared=no
+fi
+
+fi
+
+
+
+
+
+
+#
+# Check to make sure the static flag actually works.
+#
+wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\"
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5
+$as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; }
+if test "${lt_cv_prog_compiler_static_works+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_prog_compiler_static_works=no
+ save_LDFLAGS="$LDFLAGS"
+ LDFLAGS="$LDFLAGS $lt_tmp_static_flag"
+ echo "$lt_simple_link_test_code" > conftest.$ac_ext
+ if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
+ # The linker can only warn and ignore the option if not recognized
+ # So say no if there are warnings
+ if test -s conftest.err; then
+ # Append any errors to the config.log.
+ cat conftest.err 1>&5
+ $ECHO "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp
+ $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+ if diff conftest.exp conftest.er2 >/dev/null; then
+ lt_cv_prog_compiler_static_works=yes
+ fi
+ else
+ lt_cv_prog_compiler_static_works=yes
+ fi
+ fi
+ $RM -r conftest*
+ LDFLAGS="$save_LDFLAGS"
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5
+$as_echo "$lt_cv_prog_compiler_static_works" >&6; }
+
+if test x"$lt_cv_prog_compiler_static_works" = xyes; then
+ :
+else
+ lt_prog_compiler_static=
+fi
+
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
+$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
+if test "${lt_cv_prog_compiler_c_o+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_prog_compiler_c_o=no
+ $RM -r conftest 2>/dev/null
+ mkdir conftest
+ cd conftest
+ mkdir out
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+ lt_compiler_flag="-o out/conftest2.$ac_objext"
+ # Insert the option either (1) after the last *FLAGS variable, or
+ # (2) before a word containing "conftest.", or (3) at the end.
+ # Note that $ac_compile itself does not contain backslashes and begins
+ # with a dollar sign (not a hyphen), so the echo should work correctly.
+ lt_compile=`echo "$ac_compile" | $SED \
+ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+ -e 's:$: $lt_compiler_flag:'`
+ (eval echo "\"\$as_me:8880: $lt_compile\"" >&5)
+ (eval "$lt_compile" 2>out/conftest.err)
+ ac_status=$?
+ cat out/conftest.err >&5
+ echo "$as_me:8884: \$? = $ac_status" >&5
+ if (exit $ac_status) && test -s out/conftest2.$ac_objext
+ then
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings
+ $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp
+ $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
+ if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
+ lt_cv_prog_compiler_c_o=yes
+ fi
+ fi
+ chmod u+w . 2>&5
+ $RM conftest*
+ # SGI C++ compiler will create directory out/ii_files/ for
+ # template instantiation
+ test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
+ $RM out/* && rmdir out
+ cd ..
+ $RM -r conftest
+ $RM conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5
+$as_echo "$lt_cv_prog_compiler_c_o" >&6; }
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
+$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
+if test "${lt_cv_prog_compiler_c_o+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_prog_compiler_c_o=no
+ $RM -r conftest 2>/dev/null
+ mkdir conftest
+ cd conftest
+ mkdir out
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+ lt_compiler_flag="-o out/conftest2.$ac_objext"
+ # Insert the option either (1) after the last *FLAGS variable, or
+ # (2) before a word containing "conftest.", or (3) at the end.
+ # Note that $ac_compile itself does not contain backslashes and begins
+ # with a dollar sign (not a hyphen), so the echo should work correctly.
+ lt_compile=`echo "$ac_compile" | $SED \
+ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+ -e 's:$: $lt_compiler_flag:'`
+ (eval echo "\"\$as_me:8935: $lt_compile\"" >&5)
+ (eval "$lt_compile" 2>out/conftest.err)
+ ac_status=$?
+ cat out/conftest.err >&5
+ echo "$as_me:8939: \$? = $ac_status" >&5
+ if (exit $ac_status) && test -s out/conftest2.$ac_objext
+ then
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings
+ $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp
+ $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
+ if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
+ lt_cv_prog_compiler_c_o=yes
+ fi
+ fi
+ chmod u+w . 2>&5
+ $RM conftest*
+ # SGI C++ compiler will create directory out/ii_files/ for
+ # template instantiation
+ test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
+ $RM out/* && rmdir out
+ cd ..
+ $RM -r conftest
+ $RM conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5
+$as_echo "$lt_cv_prog_compiler_c_o" >&6; }
+
+
+
+
+hard_links="nottested"
+if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then
+ # do not overwrite the value of need_locks provided by the user
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5
+$as_echo_n "checking if we can lock with hard links... " >&6; }
+ hard_links=yes
+ $RM conftest*
+ ln conftest.a conftest.b 2>/dev/null && hard_links=no
+ touch conftest.a
+ ln conftest.a conftest.b 2>&5 || hard_links=no
+ ln conftest.a conftest.b 2>/dev/null && hard_links=no
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5
+$as_echo "$hard_links" >&6; }
+ if test "$hard_links" = no; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5
+$as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;}
+ need_locks=warn
+ fi
+else
+ need_locks=no
+fi
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5
+$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; }
+
+ runpath_var=
+ allow_undefined_flag=
+ always_export_symbols=no
+ archive_cmds=
+ archive_expsym_cmds=
+ compiler_needs_object=no
+ enable_shared_with_static_runtimes=no
+ export_dynamic_flag_spec=
+ export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+ hardcode_automatic=no
+ hardcode_direct=no
+ hardcode_direct_absolute=no
+ hardcode_libdir_flag_spec=
+ hardcode_libdir_flag_spec_ld=
+ hardcode_libdir_separator=
+ hardcode_minus_L=no
+ hardcode_shlibpath_var=unsupported
+ inherit_rpath=no
+ link_all_deplibs=unknown
+ module_cmds=
+ module_expsym_cmds=
+ old_archive_from_new_cmds=
+ old_archive_from_expsyms_cmds=
+ thread_safe_flag_spec=
+ whole_archive_flag_spec=
+ # include_expsyms should be a list of space-separated symbols to be *always*
+ # included in the symbol list
+ include_expsyms=
+ # exclude_expsyms can be an extended regexp of symbols to exclude
+ # it will be wrapped by ` (' and `)$', so one must not match beginning or
+ # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
+ # as well as any symbol that contains `d'.
+ exclude_expsyms='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'
+ # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
+ # platforms (ab)use it in PIC code, but their linkers get confused if
+ # the symbol is explicitly referenced. Since portable code cannot
+ # rely on this symbol name, it's probably fine to never include it in
+ # preloaded symbol tables.
+ # Exclude shared library initialization/finalization symbols.
+ extract_expsyms_cmds=
+
+ case $host_os in
+ cygwin* | mingw* | pw32* | cegcc*)
+ # FIXME: the MSVC++ port hasn't been tested in a loooong time
+ # When not using gcc, we currently assume that we are using
+ # Microsoft Visual C++.
+ if test "$GCC" != yes; then
+ with_gnu_ld=no
+ fi
+ ;;
+ interix*)
+ # we just hope/assume this is gcc and not c89 (= MSVC++)
+ with_gnu_ld=yes
+ ;;
+ openbsd*)
+ with_gnu_ld=no
+ ;;
+ linux* | k*bsd*-gnu)
+ link_all_deplibs=no
+ ;;
+ esac
+
+ ld_shlibs=yes
+ if test "$with_gnu_ld" = yes; then
+ # If archive_cmds runs LD, not CC, wlarc should be empty
+ wlarc='${wl}'
+
+ # Set some defaults for GNU ld with shared library support. These
+ # are reset later if shared libraries are not supported. Putting them
+ # here allows them to be overridden if necessary.
+ runpath_var=LD_RUN_PATH
+ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+ export_dynamic_flag_spec='${wl}--export-dynamic'
+ # ancient GNU ld didn't support --whole-archive et. al.
+ if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then
+ whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+ else
+ whole_archive_flag_spec=
+ fi
+ supports_anon_versioning=no
+ case `$LD -v 2>&1` in
+ *GNU\ gold*) supports_anon_versioning=yes ;;
+ *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11
+ *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
+ *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...
+ *\ 2.11.*) ;; # other 2.11 versions
+ *) supports_anon_versioning=yes ;;
+ esac
+
+ # See if GNU ld supports shared libraries.
+ case $host_os in
+ aix[3-9]*)
+ # On AIX/PPC, the GNU linker is very broken
+ if test "$host_cpu" != ia64; then
+ ld_shlibs=no
+ cat <<_LT_EOF 1>&2
+
+*** Warning: the GNU linker, at least up to release 2.9.1, is reported
+*** to be unable to reliably create shared libraries on AIX.
+*** Therefore, libtool is disabling shared libraries support. If you
+*** really care for shared libraries, you may want to modify your PATH
+*** so that a non-GNU linker is found, and then restart.
+
+_LT_EOF
+ fi
+ ;;
+
+ amigaos*)
+ case $host_cpu in
+ powerpc)
+ # see comment about AmigaOS4 .so support
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ archive_expsym_cmds=''
+ ;;
+ m68k)
+ archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_minus_L=yes
+ ;;
+ esac
+ ;;
+
+ beos*)
+ if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+ allow_undefined_flag=unsupported
+ # Joseph Beckenbach <jrb3@best.com> says some releases of gcc
+ # support --undefined. This deserves some investigation. FIXME
+ archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ else
+ ld_shlibs=no
+ fi
+ ;;
+
+ cygwin* | mingw* | pw32* | cegcc*)
+ # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless,
+ # as there is no search path for DLLs.
+ hardcode_libdir_flag_spec='-L$libdir'
+ allow_undefined_flag=unsupported
+ always_export_symbols=no
+ enable_shared_with_static_runtimes=yes
+ export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols'
+
+ if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+ # If the export-symbols file already is a .def file (1st line
+ # is EXPORTS), use it as is; otherwise, prepend...
+ archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+ cp $export_symbols $output_objdir/$soname.def;
+ else
+ echo EXPORTS > $output_objdir/$soname.def;
+ cat $export_symbols >> $output_objdir/$soname.def;
+ fi~
+ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+ else
+ ld_shlibs=no
+ fi
+ ;;
+
+ interix[3-9]*)
+ hardcode_direct=no
+ hardcode_shlibpath_var=no
+ hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
+ export_dynamic_flag_spec='${wl}-E'
+ # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
+ # Instead, shared libraries are loaded at an image base (0x10000000 by
+ # default) and relocated if they conflict, which is a slow very memory
+ # consuming and fragmenting process. To avoid this, we pick a random,
+ # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
+ # time. Moving up from 0x10000000 also allows more sbrk(2) space.
+ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+ archive_expsym_cmds='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+ ;;
+
+ gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu)
+ tmp_diet=no
+ if test "$host_os" = linux-dietlibc; then
+ case $cc_basename in
+ diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn)
+ esac
+ fi
+ if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
+ && test "$tmp_diet" = no
+ then
+ tmp_addflag=
+ tmp_sharedflag='-shared'
+ case $cc_basename,$host_cpu in
+ pgcc*) # Portland Group C compiler
+ whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
+ tmp_addflag=' $pic_flag'
+ ;;
+ pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers
+ whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
+ tmp_addflag=' $pic_flag -Mnomain' ;;
+ ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64
+ tmp_addflag=' -i_dynamic' ;;
+ efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64
+ tmp_addflag=' -i_dynamic -nofor_main' ;;
+ ifc* | ifort*) # Intel Fortran compiler
+ tmp_addflag=' -nofor_main' ;;
+ lf95*) # Lahey Fortran 8.1
+ whole_archive_flag_spec=
+ tmp_sharedflag='--shared' ;;
+ xl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below)
+ tmp_sharedflag='-qmkshrobj'
+ tmp_addflag= ;;
+ esac
+ case `$CC -V 2>&1 | sed 5q` in
+ *Sun\ C*) # Sun C 5.9
+ whole_archive_flag_spec='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
+ compiler_needs_object=yes
+ tmp_sharedflag='-G' ;;
+ *Sun\ F*) # Sun Fortran 8.3
+ tmp_sharedflag='-G' ;;
+ esac
+ archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+
+ if test "x$supports_anon_versioning" = xyes; then
+ archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~
+ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+ echo "local: *; };" >> $output_objdir/$libname.ver~
+ $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
+ fi
+
+ case $cc_basename in
+ xlf*)
+ # IBM XL Fortran 10.1 on PPC cannot create shared libs itself
+ whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive'
+ hardcode_libdir_flag_spec=
+ hardcode_libdir_flag_spec_ld='-rpath $libdir'
+ archive_cmds='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib'
+ if test "x$supports_anon_versioning" = xyes; then
+ archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~
+ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+ echo "local: *; };" >> $output_objdir/$libname.ver~
+ $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
+ fi
+ ;;
+ esac
+ else
+ ld_shlibs=no
+ fi
+ ;;
+
+ netbsd* | netbsdelf*-gnu)
+ if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
+ archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
+ wlarc=
+ else
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+ fi
+ ;;
+
+ solaris*)
+ if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then
+ ld_shlibs=no
+ cat <<_LT_EOF 1>&2
+
+*** Warning: The releases 2.8.* of the GNU linker cannot reliably
+*** create shared libraries on Solaris systems. Therefore, libtool
+*** is disabling shared libraries support. We urge you to upgrade GNU
+*** binutils to release 2.9.1 or newer. Another option is to modify
+*** your PATH or compiler configuration so that the native linker is
+*** used, and then restart.
+
+_LT_EOF
+ elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+ else
+ ld_shlibs=no
+ fi
+ ;;
+
+ sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*)
+ case `$LD -v 2>&1` in
+ *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*)
+ ld_shlibs=no
+ cat <<_LT_EOF 1>&2
+
+*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not
+*** reliably create shared libraries on SCO systems. Therefore, libtool
+*** is disabling shared libraries support. We urge you to upgrade GNU
+*** binutils to release 2.16.91.0.3 or newer. Another option is to modify
+*** your PATH or compiler configuration so that the native linker is
+*** used, and then restart.
+
+_LT_EOF
+ ;;
+ *)
+ # For security reasons, it is highly recommended that you always
+ # use absolute paths for naming shared libraries, and exclude the
+ # DT_RUNPATH tag from executables and libraries. But doing so
+ # requires that you compile everything twice, which is a pain.
+ if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+ else
+ ld_shlibs=no
+ fi
+ ;;
+ esac
+ ;;
+
+ sunos4*)
+ archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+ wlarc=
+ hardcode_direct=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ *)
+ if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+ else
+ ld_shlibs=no
+ fi
+ ;;
+ esac
+
+ if test "$ld_shlibs" = no; then
+ runpath_var=
+ hardcode_libdir_flag_spec=
+ export_dynamic_flag_spec=
+ whole_archive_flag_spec=
+ fi
+ else
+ # PORTME fill in a description of your system's linker (not GNU ld)
+ case $host_os in
+ aix3*)
+ allow_undefined_flag=unsupported
+ always_export_symbols=yes
+ archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname'
+ # Note: this linker hardcodes the directories in LIBPATH if there
+ # are no directories specified by -L.
+ hardcode_minus_L=yes
+ if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then
+ # Neither direct hardcoding nor static linking is supported with a
+ # broken collect2.
+ hardcode_direct=unsupported
+ fi
+ ;;
+
+ aix[4-9]*)
+ if test "$host_cpu" = ia64; then
+ # On IA64, the linker does run time linking by default, so we don't
+ # have to do anything special.
+ aix_use_runtimelinking=no
+ exp_sym_flag='-Bexport'
+ no_entry_flag=""
+ else
+ # If we're using GNU nm, then we don't want the "-C" option.
+ # -C means demangle to AIX nm, but means don't demangle with GNU nm
+ if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
+ export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
+ else
+ export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
+ fi
+ aix_use_runtimelinking=no
+
+ # Test if we are trying to use run time linking or normal
+ # AIX style linking. If -brtl is somewhere in LDFLAGS, we
+ # need to do runtime linking.
+ case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*)
+ for ld_flag in $LDFLAGS; do
+ if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
+ aix_use_runtimelinking=yes
+ break
+ fi
+ done
+ ;;
+ esac
+
+ exp_sym_flag='-bexport'
+ no_entry_flag='-bnoentry'
+ fi
+
+ # When large executables or shared objects are built, AIX ld can
+ # have problems creating the table of contents. If linking a library
+ # or program results in "error TOC overflow" add -mminimal-toc to
+ # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not
+ # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
+
+ archive_cmds=''
+ hardcode_direct=yes
+ hardcode_direct_absolute=yes
+ hardcode_libdir_separator=':'
+ link_all_deplibs=yes
+ file_list_spec='${wl}-f,'
+
+ if test "$GCC" = yes; then
+ case $host_os in aix4.[012]|aix4.[012].*)
+ # We only want to do this on AIX 4.2 and lower, the check
+ # below for broken collect2 doesn't work under 4.3+
+ collect2name=`${CC} -print-prog-name=collect2`
+ if test -f "$collect2name" &&
+ strings "$collect2name" | $GREP resolve_lib_name >/dev/null
+ then
+ # We have reworked collect2
+ :
+ else
+ # We have old collect2
+ hardcode_direct=unsupported
+ # It fails to find uninstalled libraries when the uninstalled
+ # path is not listed in the libpath. Setting hardcode_minus_L
+ # to unsupported forces relinking
+ hardcode_minus_L=yes
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_libdir_separator=
+ fi
+ ;;
+ esac
+ shared_flag='-shared'
+ if test "$aix_use_runtimelinking" = yes; then
+ shared_flag="$shared_flag "'${wl}-G'
+ fi
+ link_all_deplibs=no
+ else
+ # not using gcc
+ if test "$host_cpu" = ia64; then
+ # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
+ # chokes on -Wl,-G. The following line is correct:
+ shared_flag='-G'
+ else
+ if test "$aix_use_runtimelinking" = yes; then
+ shared_flag='${wl}-G'
+ else
+ shared_flag='${wl}-bM:SRE'
+ fi
+ fi
+ fi
+
+ export_dynamic_flag_spec='${wl}-bexpall'
+ # It seems that -bexpall does not export symbols beginning with
+ # underscore (_), so it is better to generate a list of symbols to export.
+ always_export_symbols=yes
+ if test "$aix_use_runtimelinking" = yes; then
+ # Warning - without using the other runtime loading flags (-brtl),
+ # -berok will link without error, but may produce a broken library.
+ allow_undefined_flag='-berok'
+ # Determine the default libpath from the value encoded in an
+ # empty executable.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+
+lt_aix_libpath_sed='
+ /Import File Strings/,/^$/ {
+ /^0/ {
+ s/^0 *\(.*\)$/\1/
+ p
+ }
+ }'
+aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+# Check for a 64-bit object if we didn't find anything.
+if test -z "$aix_libpath"; then
+ aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+fi
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+
+ hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
+ archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+ else
+ if test "$host_cpu" = ia64; then
+ hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib'
+ allow_undefined_flag="-z nodefs"
+ archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols"
+ else
+ # Determine the default libpath from the value encoded in an
+ # empty executable.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+
+lt_aix_libpath_sed='
+ /Import File Strings/,/^$/ {
+ /^0/ {
+ s/^0 *\(.*\)$/\1/
+ p
+ }
+ }'
+aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+# Check for a 64-bit object if we didn't find anything.
+if test -z "$aix_libpath"; then
+ aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+fi
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+
+ hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
+ # Warning - without using the other run time loading flags,
+ # -berok will link without error, but may produce a broken library.
+ no_undefined_flag=' ${wl}-bernotok'
+ allow_undefined_flag=' ${wl}-berok'
+ # Exported symbols can be pulled into shared objects from archives
+ whole_archive_flag_spec='$convenience'
+ archive_cmds_need_lc=yes
+ # This is similar to how AIX traditionally builds its shared libraries.
+ archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
+ fi
+ fi
+ ;;
+
+ amigaos*)
+ case $host_cpu in
+ powerpc)
+ # see comment about AmigaOS4 .so support
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ archive_expsym_cmds=''
+ ;;
+ m68k)
+ archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_minus_L=yes
+ ;;
+ esac
+ ;;
+
+ bsdi[45]*)
+ export_dynamic_flag_spec=-rdynamic
+ ;;
+
+ cygwin* | mingw* | pw32* | cegcc*)
+ # When not using gcc, we currently assume that we are using
+ # Microsoft Visual C++.
+ # hardcode_libdir_flag_spec is actually meaningless, as there is
+ # no search path for DLLs.
+ hardcode_libdir_flag_spec=' '
+ allow_undefined_flag=unsupported
+ # Tell ltmain to make .lib files, not .a files.
+ libext=lib
+ # Tell ltmain to make .dll files, not .so files.
+ shrext_cmds=".dll"
+ # FIXME: Setting linknames here is a bad hack.
+ archive_cmds='$CC -o $lib $libobjs $compiler_flags `$ECHO "X$deplibs" | $Xsed -e '\''s/ -lc$//'\''` -link -dll~linknames='
+ # The linker will automatically build a .lib file if we build a DLL.
+ old_archive_from_new_cmds='true'
+ # FIXME: Should let the user specify the lib program.
+ old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs'
+ fix_srcfile_path='`cygpath -w "$srcfile"`'
+ enable_shared_with_static_runtimes=yes
+ ;;
+
+ darwin* | rhapsody*)
+
+
+ archive_cmds_need_lc=no
+ hardcode_direct=no
+ hardcode_automatic=yes
+ hardcode_shlibpath_var=unsupported
+ whole_archive_flag_spec=''
+ link_all_deplibs=yes
+ allow_undefined_flag="$_lt_dar_allow_undefined"
+ case $cc_basename in
+ ifort*) _lt_dar_can_shared=yes ;;
+ *) _lt_dar_can_shared=$GCC ;;
+ esac
+ if test "$_lt_dar_can_shared" = "yes"; then
+ output_verbose_link_cmd=echo
+ archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
+ module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
+ archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
+ module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
+
+ else
+ ld_shlibs=no
+ fi
+
+ ;;
+
+ dgux*)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_shlibpath_var=no
+ ;;
+
+ freebsd1*)
+ ld_shlibs=no
+ ;;
+
+ # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
+ # support. Future versions do this automatically, but an explicit c++rt0.o
+ # does not break anything, and helps significantly (at the cost of a little
+ # extra space).
+ freebsd2.2*)
+ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
+ hardcode_libdir_flag_spec='-R$libdir'
+ hardcode_direct=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ # Unfortunately, older versions of FreeBSD 2 do not have this feature.
+ freebsd2*)
+ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_direct=yes
+ hardcode_minus_L=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
+ freebsd* | dragonfly*)
+ archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags'
+ hardcode_libdir_flag_spec='-R$libdir'
+ hardcode_direct=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ hpux9*)
+ if test "$GCC" = yes; then
+ archive_cmds='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+ else
+ archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+ fi
+ hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
+ hardcode_libdir_separator=:
+ hardcode_direct=yes
+
+ # hardcode_minus_L: Not really in the search PATH,
+ # but as the default location of the library.
+ hardcode_minus_L=yes
+ export_dynamic_flag_spec='${wl}-E'
+ ;;
+
+ hpux10*)
+ if test "$GCC" = yes -a "$with_gnu_ld" = no; then
+ archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+ else
+ archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
+ fi
+ if test "$with_gnu_ld" = no; then
+ hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
+ hardcode_libdir_flag_spec_ld='+b $libdir'
+ hardcode_libdir_separator=:
+ hardcode_direct=yes
+ hardcode_direct_absolute=yes
+ export_dynamic_flag_spec='${wl}-E'
+ # hardcode_minus_L: Not really in the search PATH,
+ # but as the default location of the library.
+ hardcode_minus_L=yes
+ fi
+ ;;
+
+ hpux11*)
+ if test "$GCC" = yes -a "$with_gnu_ld" = no; then
+ case $host_cpu in
+ hppa*64*)
+ archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ ia64*)
+ archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ *)
+ archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ esac
+ else
+ case $host_cpu in
+ hppa*64*)
+ archive_cmds='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ ia64*)
+ archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ *)
+ archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ esac
+ fi
+ if test "$with_gnu_ld" = no; then
+ hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
+ hardcode_libdir_separator=:
+
+ case $host_cpu in
+ hppa*64*|ia64*)
+ hardcode_direct=no
+ hardcode_shlibpath_var=no
+ ;;
+ *)
+ hardcode_direct=yes
+ hardcode_direct_absolute=yes
+ export_dynamic_flag_spec='${wl}-E'
+
+ # hardcode_minus_L: Not really in the search PATH,
+ # but as the default location of the library.
+ hardcode_minus_L=yes
+ ;;
+ esac
+ fi
+ ;;
+
+ irix5* | irix6* | nonstopux*)
+ if test "$GCC" = yes; then
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+ # Try to use the -exported_symbol ld option, if it does not
+ # work, assume that -exports_file does not work either and
+ # implicitly export all symbols.
+ save_LDFLAGS="$LDFLAGS"
+ LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+int foo(void) {}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib'
+
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ LDFLAGS="$save_LDFLAGS"
+ else
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
+ archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib'
+ fi
+ archive_cmds_need_lc='no'
+ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+ hardcode_libdir_separator=:
+ inherit_rpath=yes
+ link_all_deplibs=yes
+ ;;
+
+ netbsd* | netbsdelf*-gnu)
+ if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
+ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out
+ else
+ archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF
+ fi
+ hardcode_libdir_flag_spec='-R$libdir'
+ hardcode_direct=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ newsos6)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_direct=yes
+ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+ hardcode_libdir_separator=:
+ hardcode_shlibpath_var=no
+ ;;
+
+ *nto* | *qnx*)
+ ;;
+
+ openbsd*)
+ if test -f /usr/libexec/ld.so; then
+ hardcode_direct=yes
+ hardcode_shlibpath_var=no
+ hardcode_direct_absolute=yes
+ if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+ archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols'
+ hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
+ export_dynamic_flag_spec='${wl}-E'
+ else
+ case $host_os in
+ openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*)
+ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_libdir_flag_spec='-R$libdir'
+ ;;
+ *)
+ archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+ hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
+ ;;
+ esac
+ fi
+ else
+ ld_shlibs=no
+ fi
+ ;;
+
+ os2*)
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_minus_L=yes
+ allow_undefined_flag=unsupported
+ archive_cmds='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$ECHO DATA >> $output_objdir/$libname.def~$ECHO " SINGLE NONSHARED" >> $output_objdir/$libname.def~$ECHO EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
+ old_archive_from_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
+ ;;
+
+ osf3*)
+ if test "$GCC" = yes; then
+ allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
+ archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+ else
+ allow_undefined_flag=' -expect_unresolved \*'
+ archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
+ fi
+ archive_cmds_need_lc='no'
+ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+ hardcode_libdir_separator=:
+ ;;
+
+ osf4* | osf5*) # as osf3* with the addition of -msym flag
+ if test "$GCC" = yes; then
+ allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
+ archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+ else
+ allow_undefined_flag=' -expect_unresolved \*'
+ archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
+ archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~
+ $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp'
+
+ # Both c and cxx compiler support -rpath directly
+ hardcode_libdir_flag_spec='-rpath $libdir'
+ fi
+ archive_cmds_need_lc='no'
+ hardcode_libdir_separator=:
+ ;;
+
+ solaris*)
+ no_undefined_flag=' -z defs'
+ if test "$GCC" = yes; then
+ wlarc='${wl}'
+ archive_cmds='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+ $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
+ else
+ case `$CC -V 2>&1` in
+ *"Compilers 5.0"*)
+ wlarc=''
+ archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp'
+ ;;
+ *)
+ wlarc='${wl}'
+ archive_cmds='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+ $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
+ ;;
+ esac
+ fi
+ hardcode_libdir_flag_spec='-R$libdir'
+ hardcode_shlibpath_var=no
+ case $host_os in
+ solaris2.[0-5] | solaris2.[0-5].*) ;;
+ *)
+ # The compiler driver will combine and reorder linker options,
+ # but understands `-z linker_flag'. GCC discards it without `$wl',
+ # but is careful enough not to reorder.
+ # Supported since Solaris 2.6 (maybe 2.5.1?)
+ if test "$GCC" = yes; then
+ whole_archive_flag_spec='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
+ else
+ whole_archive_flag_spec='-z allextract$convenience -z defaultextract'
+ fi
+ ;;
+ esac
+ link_all_deplibs=yes
+ ;;
+
+ sunos4*)
+ if test "x$host_vendor" = xsequent; then
+ # Use $CC to link under sequent, because it throws in some extra .o
+ # files that make .init and .fini sections work.
+ archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags'
+ else
+ archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
+ fi
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_direct=yes
+ hardcode_minus_L=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ sysv4)
+ case $host_vendor in
+ sni)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_direct=yes # is this really true???
+ ;;
+ siemens)
+ ## LD is ld it makes a PLAMLIB
+ ## CC just makes a GrossModule.
+ archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags'
+ reload_cmds='$CC -r -o $output$reload_objs'
+ hardcode_direct=no
+ ;;
+ motorola)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_direct=no #Motorola manual says yes, but my tests say they lie
+ ;;
+ esac
+ runpath_var='LD_RUN_PATH'
+ hardcode_shlibpath_var=no
+ ;;
+
+ sysv4.3*)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_shlibpath_var=no
+ export_dynamic_flag_spec='-Bexport'
+ ;;
+
+ sysv4*MP*)
+ if test -d /usr/nec; then
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_shlibpath_var=no
+ runpath_var=LD_RUN_PATH
+ hardcode_runpath_var=yes
+ ld_shlibs=yes
+ fi
+ ;;
+
+ sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*)
+ no_undefined_flag='${wl}-z,text'
+ archive_cmds_need_lc=no
+ hardcode_shlibpath_var=no
+ runpath_var='LD_RUN_PATH'
+
+ if test "$GCC" = yes; then
+ archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ else
+ archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ fi
+ ;;
+
+ sysv5* | sco3.2v5* | sco5v6*)
+ # Note: We can NOT use -z defs as we might desire, because we do not
+ # link with -lc, and that would cause any symbols used from libc to
+ # always be unresolved, which means just about no library would
+ # ever link correctly. If we're not using GNU ld we use -z text
+ # though, which does catch some bad symbols but isn't as heavy-handed
+ # as -z defs.
+ no_undefined_flag='${wl}-z,text'
+ allow_undefined_flag='${wl}-z,nodefs'
+ archive_cmds_need_lc=no
+ hardcode_shlibpath_var=no
+ hardcode_libdir_flag_spec='${wl}-R,$libdir'
+ hardcode_libdir_separator=':'
+ link_all_deplibs=yes
+ export_dynamic_flag_spec='${wl}-Bexport'
+ runpath_var='LD_RUN_PATH'
+
+ if test "$GCC" = yes; then
+ archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ else
+ archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ fi
+ ;;
+
+ uts4*)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_shlibpath_var=no
+ ;;
+
+ *)
+ ld_shlibs=no
+ ;;
+ esac
+
+ if test x$host_vendor = xsni; then
+ case $host in
+ sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+ export_dynamic_flag_spec='${wl}-Blargedynsym'
+ ;;
+ esac
+ fi
+ fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5
+$as_echo "$ld_shlibs" >&6; }
+test "$ld_shlibs" = no && can_build_shared=no
+
+with_gnu_ld=$with_gnu_ld
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#
+# Do we need to explicitly link libc?
+#
+case "x$archive_cmds_need_lc" in
+x|xyes)
+ # Assume -lc should be added
+ archive_cmds_need_lc=yes
+
+ if test "$enable_shared" = yes && test "$GCC" = yes; then
+ case $archive_cmds in
+ *'~'*)
+ # FIXME: we may have to deal with multi-command sequences.
+ ;;
+ '$CC '*)
+ # Test whether the compiler implicitly links with -lc since on some
+ # systems, -lgcc has to come before -lc. If gcc already passes -lc
+ # to ld, don't add -lc before -lgcc.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5
+$as_echo_n "checking whether -lc should be explicitly linked in... " >&6; }
+ $RM conftest*
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } 2>conftest.err; then
+ soname=conftest
+ lib=conftest
+ libobjs=conftest.$ac_objext
+ deplibs=
+ wl=$lt_prog_compiler_wl
+ pic_flag=$lt_prog_compiler_pic
+ compiler_flags=-v
+ linker_flags=-v
+ verstring=
+ output_objdir=.
+ libname=conftest
+ lt_save_allow_undefined_flag=$allow_undefined_flag
+ allow_undefined_flag=
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5
+ (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+ then
+ archive_cmds_need_lc=no
+ else
+ archive_cmds_need_lc=yes
+ fi
+ allow_undefined_flag=$lt_save_allow_undefined_flag
+ else
+ cat conftest.err 1>&5
+ fi
+ $RM conftest*
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $archive_cmds_need_lc" >&5
+$as_echo "$archive_cmds_need_lc" >&6; }
+ ;;
+ esac
+ fi
+ ;;
+esac
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5
+$as_echo_n "checking dynamic linker characteristics... " >&6; }
+
+if test "$GCC" = yes; then
+ case $host_os in
+ darwin*) lt_awk_arg="/^libraries:/,/LR/" ;;
+ *) lt_awk_arg="/^libraries:/" ;;
+ esac
+ lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e "s,=/,/,g"`
+ if $ECHO "$lt_search_path_spec" | $GREP ';' >/dev/null ; then
+ # if the path contains ";" then we assume it to be the separator
+ # otherwise default to the standard path separator (i.e. ":") - it is
+ # assumed that no part of a normal pathname contains ";" but that should
+ # okay in the real world where ";" in dirpaths is itself problematic.
+ lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e 's/;/ /g'`
+ else
+ lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
+ fi
+ # Ok, now we have the path, separated by spaces, we can step through it
+ # and add multilib dir if necessary.
+ lt_tmp_lt_search_path_spec=
+ lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null`
+ for lt_sys_path in $lt_search_path_spec; do
+ if test -d "$lt_sys_path/$lt_multi_os_dir"; then
+ lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir"
+ else
+ test -d "$lt_sys_path" && \
+ lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path"
+ fi
+ done
+ lt_search_path_spec=`$ECHO $lt_tmp_lt_search_path_spec | awk '
+BEGIN {RS=" "; FS="/|\n";} {
+ lt_foo="";
+ lt_count=0;
+ for (lt_i = NF; lt_i > 0; lt_i--) {
+ if ($lt_i != "" && $lt_i != ".") {
+ if ($lt_i == "..") {
+ lt_count++;
+ } else {
+ if (lt_count == 0) {
+ lt_foo="/" $lt_i lt_foo;
+ } else {
+ lt_count--;
+ }
+ }
+ }
+ }
+ if (lt_foo != "") { lt_freq[lt_foo]++; }
+ if (lt_freq[lt_foo] == 1) { print lt_foo; }
+}'`
+ sys_lib_search_path_spec=`$ECHO $lt_search_path_spec`
+else
+ sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
+fi
+library_names_spec=
+libname_spec='lib$name'
+soname_spec=
+shrext_cmds=".so"
+postinstall_cmds=
+postuninstall_cmds=
+finish_cmds=
+finish_eval=
+shlibpath_var=
+shlibpath_overrides_runpath=unknown
+version_type=none
+dynamic_linker="$host_os ld.so"
+sys_lib_dlsearch_path_spec="/lib /usr/lib"
+need_lib_prefix=unknown
+hardcode_into_libs=no
+
+# when you set need_version to no, make sure it does not cause -set_version
+# flags to be left without arguments
+need_version=unknown
+
+case $host_os in
+aix3*)
+ version_type=linux
+ library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
+ shlibpath_var=LIBPATH
+
+ # AIX 3 has no versioning support, so we append a major version to the name.
+ soname_spec='${libname}${release}${shared_ext}$major'
+ ;;
+
+aix[4-9]*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ hardcode_into_libs=yes
+ if test "$host_cpu" = ia64; then
+ # AIX 5 supports IA64
+ library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
+ shlibpath_var=LD_LIBRARY_PATH
+ else
+ # With GCC up to 2.95.x, collect2 would create an import file
+ # for dependence libraries. The import file would start with
+ # the line `#! .'. This would cause the generated library to
+ # depend on `.', always an invalid library. This was fixed in
+ # development snapshots of GCC prior to 3.0.
+ case $host_os in
+ aix4 | aix4.[01] | aix4.[01].*)
+ if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
+ echo ' yes '
+ echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then
+ :
+ else
+ can_build_shared=no
+ fi
+ ;;
+ esac
+ # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
+ # soname into executable. Probably we can add versioning support to
+ # collect2, so additional links can be useful in future.
+ if test "$aix_use_runtimelinking" = yes; then
+ # If using run time linking (on AIX 4.2 or later) use lib<name>.so
+ # instead of lib<name>.a to let people know that these are not
+ # typical AIX shared libraries.
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ else
+ # We preserve .a as extension for shared libraries through AIX4.2
+ # and later when we are not doing run time linking.
+ library_names_spec='${libname}${release}.a $libname.a'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ fi
+ shlibpath_var=LIBPATH
+ fi
+ ;;
+
+amigaos*)
+ case $host_cpu in
+ powerpc)
+ # Since July 2007 AmigaOS4 officially supports .so libraries.
+ # When compiling the executable, add -use-dynld -Lsobjs: to the compileline.
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ ;;
+ m68k)
+ library_names_spec='$libname.ixlibrary $libname.a'
+ # Create ${libname}_ixlibrary.a entries in /sys/libs.
+ finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$ECHO "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
+ ;;
+ esac
+ ;;
+
+beos*)
+ library_names_spec='${libname}${shared_ext}'
+ dynamic_linker="$host_os ld.so"
+ shlibpath_var=LIBRARY_PATH
+ ;;
+
+bsdi[45]*)
+ version_type=linux
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
+ sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
+ # the default ld.so.conf also contains /usr/contrib/lib and
+ # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
+ # libtool to hard-code these into programs
+ ;;
+
+cygwin* | mingw* | pw32* | cegcc*)
+ version_type=windows
+ shrext_cmds=".dll"
+ need_version=no
+ need_lib_prefix=no
+
+ case $GCC,$host_os in
+ yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*)
+ library_names_spec='$libname.dll.a'
+ # DLL is installed to $(libdir)/../bin by postinstall_cmds
+ postinstall_cmds='base_file=`basename \${file}`~
+ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
+ dldir=$destdir/`dirname \$dlpath`~
+ test -d \$dldir || mkdir -p \$dldir~
+ $install_prog $dir/$dlname \$dldir/$dlname~
+ chmod a+x \$dldir/$dlname~
+ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then
+ eval '\''$striplib \$dldir/$dlname'\'' || exit \$?;
+ fi'
+ postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
+ dlpath=$dir/\$dldll~
+ $RM \$dlpath'
+ shlibpath_overrides_runpath=yes
+
+ case $host_os in
+ cygwin*)
+ # Cygwin DLLs use 'cyg' prefix rather than 'lib'
+ soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+ sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib"
+ ;;
+ mingw* | cegcc*)
+ # MinGW DLLs use traditional 'lib' prefix
+ soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+ sys_lib_search_path_spec=`$CC -print-search-dirs | $GREP "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
+ if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then
+ # It is most probably a Windows format PATH printed by
+ # mingw gcc, but we are running on Cygwin. Gcc prints its search
+ # path with ; separators, and with drive letters. We can handle the
+ # drive letters (cygwin fileutils understands them), so leave them,
+ # especially as we might pass files found there to a mingw objdump,
+ # which wouldn't understand a cygwinified path. Ahh.
+ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
+ else
+ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
+ fi
+ ;;
+ pw32*)
+ # pw32 DLLs use 'pw' prefix rather than 'lib'
+ library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+ ;;
+ esac
+ ;;
+
+ *)
+ library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib'
+ ;;
+ esac
+ dynamic_linker='Win32 ld.exe'
+ # FIXME: first we should search . and the directory the executable is in
+ shlibpath_var=PATH
+ ;;
+
+darwin* | rhapsody*)
+ dynamic_linker="$host_os dyld"
+ version_type=darwin
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext'
+ soname_spec='${libname}${release}${major}$shared_ext'
+ shlibpath_overrides_runpath=yes
+ shlibpath_var=DYLD_LIBRARY_PATH
+ shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
+
+ sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"
+ sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
+ ;;
+
+dgux*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ ;;
+
+freebsd1*)
+ dynamic_linker=no
+ ;;
+
+freebsd* | dragonfly*)
+ # DragonFly does not have aout. When/if they implement a new
+ # versioning mechanism, adjust this.
+ if test -x /usr/bin/objformat; then
+ objformat=`/usr/bin/objformat`
+ else
+ case $host_os in
+ freebsd[123]*) objformat=aout ;;
+ *) objformat=elf ;;
+ esac
+ fi
+ version_type=freebsd-$objformat
+ case $version_type in
+ freebsd-elf*)
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
+ need_version=no
+ need_lib_prefix=no
+ ;;
+ freebsd-*)
+ library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
+ need_version=yes
+ ;;
+ esac
+ shlibpath_var=LD_LIBRARY_PATH
+ case $host_os in
+ freebsd2*)
+ shlibpath_overrides_runpath=yes
+ ;;
+ freebsd3.[01]* | freebsdelf3.[01]*)
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ ;;
+ freebsd3.[2-9]* | freebsdelf3.[2-9]* | \
+ freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1)
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ ;;
+ *) # from 4.6 on, and DragonFly
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ ;;
+ esac
+ ;;
+
+gnu*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ hardcode_into_libs=yes
+ ;;
+
+hpux9* | hpux10* | hpux11*)
+ # Give a soname corresponding to the major version so that dld.sl refuses to
+ # link against other versions.
+ version_type=sunos
+ need_lib_prefix=no
+ need_version=no
+ case $host_cpu in
+ ia64*)
+ shrext_cmds='.so'
+ hardcode_into_libs=yes
+ dynamic_linker="$host_os dld.so"
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ if test "X$HPUX_IA64_MODE" = X32; then
+ sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
+ else
+ sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
+ fi
+ sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+ ;;
+ hppa*64*)
+ shrext_cmds='.sl'
+ hardcode_into_libs=yes
+ dynamic_linker="$host_os dld.sl"
+ shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
+ shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
+ sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+ ;;
+ *)
+ shrext_cmds='.sl'
+ dynamic_linker="$host_os dld.sl"
+ shlibpath_var=SHLIB_PATH
+ shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ ;;
+ esac
+ # HP-UX runs *really* slowly unless shared libraries are mode 555.
+ postinstall_cmds='chmod 555 $lib'
+ ;;
+
+interix[3-9]*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ ;;
+
+irix5* | irix6* | nonstopux*)
+ case $host_os in
+ nonstopux*) version_type=nonstopux ;;
+ *)
+ if test "$lt_cv_prog_gnu_ld" = yes; then
+ version_type=linux
+ else
+ version_type=irix
+ fi ;;
+ esac
+ need_lib_prefix=no
+ need_version=no
+ soname_spec='${libname}${release}${shared_ext}$major'
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
+ case $host_os in
+ irix5* | nonstopux*)
+ libsuff= shlibsuff=
+ ;;
+ *)
+ case $LD in # libtool.m4 will add one of these switches to LD
+ *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
+ libsuff= shlibsuff= libmagic=32-bit;;
+ *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
+ libsuff=32 shlibsuff=N32 libmagic=N32;;
+ *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
+ libsuff=64 shlibsuff=64 libmagic=64-bit;;
+ *) libsuff= shlibsuff= libmagic=never-match;;
+ esac
+ ;;
+ esac
+ shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
+ shlibpath_overrides_runpath=no
+ sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
+ sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
+ hardcode_into_libs=yes
+ ;;
+
+# No shared lib support for Linux oldld, aout, or coff.
+linux*oldld* | linux*aout* | linux*coff*)
+ dynamic_linker=no
+ ;;
+
+# This must be Linux ELF.
+linux* | k*bsd*-gnu | kopensolaris*-gnu)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ # Some binutils ld are patched to set DT_RUNPATH
+ save_LDFLAGS=$LDFLAGS
+ save_libdir=$libdir
+ eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \
+ LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\""
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then :
+ shlibpath_overrides_runpath=yes
+fi
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ LDFLAGS=$save_LDFLAGS
+ libdir=$save_libdir
+
+ # This implies no fast_install, which is unacceptable.
+ # Some rework will be needed to allow for fast_install
+ # before this can be enabled.
+ hardcode_into_libs=yes
+
+ # Append ld.so.conf contents to the search path
+ if test -f /etc/ld.so.conf; then
+ lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
+ sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
+ fi
+
+ # We used to test for /lib/ld.so.1 and disable shared libraries on
+ # powerpc, because MkLinux only supported shared libraries with the
+ # GNU dynamic linker. Since this was broken with cross compilers,
+ # most powerpc-linux boxes support dynamic linking these days and
+ # people can always --disable-shared, the test was removed, and we
+ # assume the GNU/Linux dynamic linker is in use.
+ dynamic_linker='GNU/Linux ld.so'
+ ;;
+
+netbsdelf*-gnu)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ dynamic_linker='NetBSD ld.elf_so'
+ ;;
+
+netbsd*)
+ version_type=sunos
+ need_lib_prefix=no
+ need_version=no
+ if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+ dynamic_linker='NetBSD (a.out) ld.so'
+ else
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ dynamic_linker='NetBSD ld.elf_so'
+ fi
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ ;;
+
+newsos6)
+ version_type=linux
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ ;;
+
+*nto* | *qnx*)
+ version_type=qnx
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ dynamic_linker='ldqnx.so'
+ ;;
+
+openbsd*)
+ version_type=sunos
+ sys_lib_dlsearch_path_spec="/usr/lib"
+ need_lib_prefix=no
+ # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs.
+ case $host_os in
+ openbsd3.3 | openbsd3.3.*) need_version=yes ;;
+ *) need_version=no ;;
+ esac
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+ case $host_os in
+ openbsd2.[89] | openbsd2.[89].*)
+ shlibpath_overrides_runpath=no
+ ;;
+ *)
+ shlibpath_overrides_runpath=yes
+ ;;
+ esac
+ else
+ shlibpath_overrides_runpath=yes
+ fi
+ ;;
+
+os2*)
+ libname_spec='$name'
+ shrext_cmds=".dll"
+ need_lib_prefix=no
+ library_names_spec='$libname${shared_ext} $libname.a'
+ dynamic_linker='OS/2 ld.exe'
+ shlibpath_var=LIBPATH
+ ;;
+
+osf3* | osf4* | osf5*)
+ version_type=osf
+ need_lib_prefix=no
+ need_version=no
+ soname_spec='${libname}${release}${shared_ext}$major'
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ shlibpath_var=LD_LIBRARY_PATH
+ sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
+ sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
+ ;;
+
+rdos*)
+ dynamic_linker=no
+ ;;
+
+solaris*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ # ldd complains unless libraries are executable
+ postinstall_cmds='chmod +x $lib'
+ ;;
+
+sunos4*)
+ version_type=sunos
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+ finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ if test "$with_gnu_ld" = yes; then
+ need_lib_prefix=no
+ fi
+ need_version=yes
+ ;;
+
+sysv4 | sysv4.3*)
+ version_type=linux
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ case $host_vendor in
+ sni)
+ shlibpath_overrides_runpath=no
+ need_lib_prefix=no
+ runpath_var=LD_RUN_PATH
+ ;;
+ siemens)
+ need_lib_prefix=no
+ ;;
+ motorola)
+ need_lib_prefix=no
+ need_version=no
+ shlibpath_overrides_runpath=no
+ sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
+ ;;
+ esac
+ ;;
+
+sysv4*MP*)
+ if test -d /usr/nec ;then
+ version_type=linux
+ library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
+ soname_spec='$libname${shared_ext}.$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ fi
+ ;;
+
+sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
+ version_type=freebsd-elf
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ if test "$with_gnu_ld" = yes; then
+ sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib'
+ else
+ sys_lib_search_path_spec='/usr/ccs/lib /usr/lib'
+ case $host_os in
+ sco3.2v5*)
+ sys_lib_search_path_spec="$sys_lib_search_path_spec /lib"
+ ;;
+ esac
+ fi
+ sys_lib_dlsearch_path_spec='/usr/lib'
+ ;;
+
+tpf*)
+ # TPF is a cross-target only. Preferred cross-host = GNU/Linux.
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ ;;
+
+uts4*)
+ version_type=linux
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ ;;
+
+*)
+ dynamic_linker=no
+ ;;
+esac
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5
+$as_echo "$dynamic_linker" >&6; }
+test "$dynamic_linker" = no && can_build_shared=no
+
+variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
+if test "$GCC" = yes; then
+ variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
+fi
+
+if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then
+ sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec"
+fi
+if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then
+ sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec"
+fi
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5
+$as_echo_n "checking how to hardcode library paths into programs... " >&6; }
+hardcode_action=
+if test -n "$hardcode_libdir_flag_spec" ||
+ test -n "$runpath_var" ||
+ test "X$hardcode_automatic" = "Xyes" ; then
+
+ # We can hardcode non-existent directories.
+ if test "$hardcode_direct" != no &&
+ # If the only mechanism to avoid hardcoding is shlibpath_var, we
+ # have to relink, otherwise we might link with an installed library
+ # when we should be linking with a yet-to-be-installed one
+ ## test "$_LT_TAGVAR(hardcode_shlibpath_var, )" != no &&
+ test "$hardcode_minus_L" != no; then
+ # Linking always hardcodes the temporary library directory.
+ hardcode_action=relink
+ else
+ # We can link without hardcoding, and we can hardcode nonexisting dirs.
+ hardcode_action=immediate
+ fi
+else
+ # We cannot hardcode anything, or else we can only hardcode existing
+ # directories.
+ hardcode_action=unsupported
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5
+$as_echo "$hardcode_action" >&6; }
+
+if test "$hardcode_action" = relink ||
+ test "$inherit_rpath" = yes; then
+ # Fast installation is not supported
+ enable_fast_install=no
+elif test "$shlibpath_overrides_runpath" = yes ||
+ test "$enable_shared" = no; then
+ # Fast installation is not necessary
+ enable_fast_install=needless
+fi
+
+
+
+
+
+
+ if test "x$enable_dlopen" != xyes; then
+ enable_dlopen=unknown
+ enable_dlopen_self=unknown
+ enable_dlopen_self_static=unknown
+else
+ lt_cv_dlopen=no
+ lt_cv_dlopen_libs=
+
+ case $host_os in
+ beos*)
+ lt_cv_dlopen="load_add_on"
+ lt_cv_dlopen_libs=
+ lt_cv_dlopen_self=yes
+ ;;
+
+ mingw* | pw32* | cegcc*)
+ lt_cv_dlopen="LoadLibrary"
+ lt_cv_dlopen_libs=
+ ;;
+
+ cygwin*)
+ lt_cv_dlopen="dlopen"
+ lt_cv_dlopen_libs=
+ ;;
+
+ darwin*)
+ # if libdl is installed we need to link against it
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
+$as_echo_n "checking for dlopen in -ldl... " >&6; }
+if test "${ac_cv_lib_dl_dlopen+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldl $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dlopen ();
+int
+main ()
+{
+return dlopen ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_dl_dlopen=yes
+else
+ ac_cv_lib_dl_dlopen=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
+$as_echo "$ac_cv_lib_dl_dlopen" >&6; }
+if test "x$ac_cv_lib_dl_dlopen" = x""yes; then :
+ lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
+else
+
+ lt_cv_dlopen="dyld"
+ lt_cv_dlopen_libs=
+ lt_cv_dlopen_self=yes
+
+fi
+
+ ;;
+
+ *)
+ ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load"
+if test "x$ac_cv_func_shl_load" = x""yes; then :
+ lt_cv_dlopen="shl_load"
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5
+$as_echo_n "checking for shl_load in -ldld... " >&6; }
+if test "${ac_cv_lib_dld_shl_load+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldld $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char shl_load ();
+int
+main ()
+{
+return shl_load ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_dld_shl_load=yes
+else
+ ac_cv_lib_dld_shl_load=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5
+$as_echo "$ac_cv_lib_dld_shl_load" >&6; }
+if test "x$ac_cv_lib_dld_shl_load" = x""yes; then :
+ lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"
+else
+ ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen"
+if test "x$ac_cv_func_dlopen" = x""yes; then :
+ lt_cv_dlopen="dlopen"
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
+$as_echo_n "checking for dlopen in -ldl... " >&6; }
+if test "${ac_cv_lib_dl_dlopen+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldl $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dlopen ();
+int
+main ()
+{
+return dlopen ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_dl_dlopen=yes
+else
+ ac_cv_lib_dl_dlopen=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
+$as_echo "$ac_cv_lib_dl_dlopen" >&6; }
+if test "x$ac_cv_lib_dl_dlopen" = x""yes; then :
+ lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5
+$as_echo_n "checking for dlopen in -lsvld... " >&6; }
+if test "${ac_cv_lib_svld_dlopen+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lsvld $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dlopen ();
+int
+main ()
+{
+return dlopen ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_svld_dlopen=yes
+else
+ ac_cv_lib_svld_dlopen=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5
+$as_echo "$ac_cv_lib_svld_dlopen" >&6; }
+if test "x$ac_cv_lib_svld_dlopen" = x""yes; then :
+ lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5
+$as_echo_n "checking for dld_link in -ldld... " >&6; }
+if test "${ac_cv_lib_dld_dld_link+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldld $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dld_link ();
+int
+main ()
+{
+return dld_link ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_dld_dld_link=yes
+else
+ ac_cv_lib_dld_dld_link=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5
+$as_echo "$ac_cv_lib_dld_dld_link" >&6; }
+if test "x$ac_cv_lib_dld_dld_link" = x""yes; then :
+ lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"
+fi
+
+
+fi
+
+
+fi
+
+
+fi
+
+
+fi
+
+
+fi
+
+ ;;
+ esac
+
+ if test "x$lt_cv_dlopen" != xno; then
+ enable_dlopen=yes
+ else
+ enable_dlopen=no
+ fi
+
+ case $lt_cv_dlopen in
+ dlopen)
+ save_CPPFLAGS="$CPPFLAGS"
+ test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
+
+ save_LDFLAGS="$LDFLAGS"
+ wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
+
+ save_LIBS="$LIBS"
+ LIBS="$lt_cv_dlopen_libs $LIBS"
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5
+$as_echo_n "checking whether a program can dlopen itself... " >&6; }
+if test "${lt_cv_dlopen_self+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "$cross_compiling" = yes; then :
+ lt_cv_dlopen_self=cross
+else
+ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+ lt_status=$lt_dlunknown
+ cat > conftest.$ac_ext <<_LT_EOF
+#line 11319 "configure"
+#include "confdefs.h"
+
+#if HAVE_DLFCN_H
+#include <dlfcn.h>
+#endif
+
+#include <stdio.h>
+
+#ifdef RTLD_GLOBAL
+# define LT_DLGLOBAL RTLD_GLOBAL
+#else
+# ifdef DL_GLOBAL
+# define LT_DLGLOBAL DL_GLOBAL
+# else
+# define LT_DLGLOBAL 0
+# endif
+#endif
+
+/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
+ find out it does not work in some platform. */
+#ifndef LT_DLLAZY_OR_NOW
+# ifdef RTLD_LAZY
+# define LT_DLLAZY_OR_NOW RTLD_LAZY
+# else
+# ifdef DL_LAZY
+# define LT_DLLAZY_OR_NOW DL_LAZY
+# else
+# ifdef RTLD_NOW
+# define LT_DLLAZY_OR_NOW RTLD_NOW
+# else
+# ifdef DL_NOW
+# define LT_DLLAZY_OR_NOW DL_NOW
+# else
+# define LT_DLLAZY_OR_NOW 0
+# endif
+# endif
+# endif
+# endif
+#endif
+
+void fnord() { int i=42;}
+int main ()
+{
+ void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
+ int status = $lt_dlunknown;
+
+ if (self)
+ {
+ if (dlsym (self,"fnord")) status = $lt_dlno_uscore;
+ else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
+ /* dlclose (self); */
+ }
+ else
+ puts (dlerror ());
+
+ return status;
+}
+_LT_EOF
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then
+ (./conftest; exit; ) >&5 2>/dev/null
+ lt_status=$?
+ case x$lt_status in
+ x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;;
+ x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;;
+ x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;;
+ esac
+ else :
+ # compilation failed
+ lt_cv_dlopen_self=no
+ fi
+fi
+rm -fr conftest*
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5
+$as_echo "$lt_cv_dlopen_self" >&6; }
+
+ if test "x$lt_cv_dlopen_self" = xyes; then
+ wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5
+$as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; }
+if test "${lt_cv_dlopen_self_static+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "$cross_compiling" = yes; then :
+ lt_cv_dlopen_self_static=cross
+else
+ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+ lt_status=$lt_dlunknown
+ cat > conftest.$ac_ext <<_LT_EOF
+#line 11415 "configure"
+#include "confdefs.h"
+
+#if HAVE_DLFCN_H
+#include <dlfcn.h>
+#endif
+
+#include <stdio.h>
+
+#ifdef RTLD_GLOBAL
+# define LT_DLGLOBAL RTLD_GLOBAL
+#else
+# ifdef DL_GLOBAL
+# define LT_DLGLOBAL DL_GLOBAL
+# else
+# define LT_DLGLOBAL 0
+# endif
+#endif
+
+/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
+ find out it does not work in some platform. */
+#ifndef LT_DLLAZY_OR_NOW
+# ifdef RTLD_LAZY
+# define LT_DLLAZY_OR_NOW RTLD_LAZY
+# else
+# ifdef DL_LAZY
+# define LT_DLLAZY_OR_NOW DL_LAZY
+# else
+# ifdef RTLD_NOW
+# define LT_DLLAZY_OR_NOW RTLD_NOW
+# else
+# ifdef DL_NOW
+# define LT_DLLAZY_OR_NOW DL_NOW
+# else
+# define LT_DLLAZY_OR_NOW 0
+# endif
+# endif
+# endif
+# endif
+#endif
+
+void fnord() { int i=42;}
+int main ()
+{
+ void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
+ int status = $lt_dlunknown;
+
+ if (self)
+ {
+ if (dlsym (self,"fnord")) status = $lt_dlno_uscore;
+ else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
+ /* dlclose (self); */
+ }
+ else
+ puts (dlerror ());
+
+ return status;
+}
+_LT_EOF
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then
+ (./conftest; exit; ) >&5 2>/dev/null
+ lt_status=$?
+ case x$lt_status in
+ x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;;
+ x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;;
+ x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;;
+ esac
+ else :
+ # compilation failed
+ lt_cv_dlopen_self_static=no
+ fi
+fi
+rm -fr conftest*
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5
+$as_echo "$lt_cv_dlopen_self_static" >&6; }
+ fi
+
+ CPPFLAGS="$save_CPPFLAGS"
+ LDFLAGS="$save_LDFLAGS"
+ LIBS="$save_LIBS"
+ ;;
+ esac
+
+ case $lt_cv_dlopen_self in
+ yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
+ *) enable_dlopen_self=unknown ;;
+ esac
+
+ case $lt_cv_dlopen_self_static in
+ yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
+ *) enable_dlopen_self_static=unknown ;;
+ esac
+fi
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+striplib=
+old_striplib=
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5
+$as_echo_n "checking whether stripping libraries is possible... " >&6; }
+if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then
+ test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
+ test -z "$striplib" && striplib="$STRIP --strip-unneeded"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+else
+# FIXME - insert some real tests, host_os isn't really good enough
+ case $host_os in
+ darwin*)
+ if test -n "$STRIP" ; then
+ striplib="$STRIP -x"
+ old_striplib="$STRIP -S"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ fi
+ ;;
+ *)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ ;;
+ esac
+fi
+
+
+
+
+
+
+
+
+
+
+
+
+ # Report which library types will actually be built
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5
+$as_echo_n "checking if libtool supports shared libraries... " >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5
+$as_echo "$can_build_shared" >&6; }
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5
+$as_echo_n "checking whether to build shared libraries... " >&6; }
+ test "$can_build_shared" = "no" && enable_shared=no
+
+ # On AIX, shared libraries and static libraries use the same namespace, and
+ # are all built from PIC.
+ case $host_os in
+ aix3*)
+ test "$enable_shared" = yes && enable_static=no
+ if test -n "$RANLIB"; then
+ archive_cmds="$archive_cmds~\$RANLIB \$lib"
+ postinstall_cmds='$RANLIB $lib'
+ fi
+ ;;
+
+ aix[4-9]*)
+ if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
+ test "$enable_shared" = yes && enable_static=no
+ fi
+ ;;
+ esac
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5
+$as_echo "$enable_shared" >&6; }
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5
+$as_echo_n "checking whether to build static libraries... " >&6; }
+ # Make sure either enable_shared or enable_static is yes.
+ test "$enable_shared" = yes || enable_static=yes
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5
+$as_echo "$enable_static" >&6; }
+
+
+
+
+fi
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+CC="$lt_save_CC"
+
+
+ac_ext=cpp
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+
+archive_cmds_need_lc_CXX=no
+allow_undefined_flag_CXX=
+always_export_symbols_CXX=no
+archive_expsym_cmds_CXX=
+compiler_needs_object_CXX=no
+export_dynamic_flag_spec_CXX=
+hardcode_direct_CXX=no
+hardcode_direct_absolute_CXX=no
+hardcode_libdir_flag_spec_CXX=
+hardcode_libdir_flag_spec_ld_CXX=
+hardcode_libdir_separator_CXX=
+hardcode_minus_L_CXX=no
+hardcode_shlibpath_var_CXX=unsupported
+hardcode_automatic_CXX=no
+inherit_rpath_CXX=no
+module_cmds_CXX=
+module_expsym_cmds_CXX=
+link_all_deplibs_CXX=unknown
+old_archive_cmds_CXX=$old_archive_cmds
+no_undefined_flag_CXX=
+whole_archive_flag_spec_CXX=
+enable_shared_with_static_runtimes_CXX=no
+
+# Source file extension for C++ test sources.
+ac_ext=cpp
+
+# Object file extension for compiled C++ test sources.
+objext=o
+objext_CXX=$objext
+
+# No sense in running all these tests if we already determined that
+# the CXX compiler isn't working. Some variables (like enable_shared)
+# are currently assumed to apply to all compilers on this platform,
+# and will be corrupted by setting them based on a non-working compiler.
+if test "$_lt_caught_CXX_error" != yes; then
+ # Code to be used in simple compile tests
+ lt_simple_compile_test_code="int some_variable = 0;"
+
+ # Code to be used in simple link tests
+ lt_simple_link_test_code='int main(int, char *[]) { return(0); }'
+
+ # ltmain only uses $CC for tagged configurations so make sure $CC is set.
+
+
+
+
+
+
+# If no C compiler was specified, use CC.
+LTCC=${LTCC-"$CC"}
+
+# If no C compiler flags were specified, use CFLAGS.
+LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
+
+# Allow CC to be a program name with arguments.
+compiler=$CC
+
+
+ # save warnings/boilerplate of simple test code
+ ac_outfile=conftest.$ac_objext
+echo "$lt_simple_compile_test_code" >conftest.$ac_ext
+eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
+_lt_compiler_boilerplate=`cat conftest.err`
+$RM conftest*
+
+ ac_outfile=conftest.$ac_objext
+echo "$lt_simple_link_test_code" >conftest.$ac_ext
+eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
+_lt_linker_boilerplate=`cat conftest.err`
+$RM -r conftest*
+
+
+ # Allow CC to be a program name with arguments.
+ lt_save_CC=$CC
+ lt_save_LD=$LD
+ lt_save_GCC=$GCC
+ GCC=$GXX
+ lt_save_with_gnu_ld=$with_gnu_ld
+ lt_save_path_LD=$lt_cv_path_LD
+ if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then
+ lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx
+ else
+ $as_unset lt_cv_prog_gnu_ld
+ fi
+ if test -n "${lt_cv_path_LDCXX+set}"; then
+ lt_cv_path_LD=$lt_cv_path_LDCXX
+ else
+ $as_unset lt_cv_path_LD
+ fi
+ test -z "${LDCXX+set}" || LD=$LDCXX
+ CC=${CXX-"c++"}
+ compiler=$CC
+ compiler_CXX=$CC
+ for cc_temp in $compiler""; do
+ case $cc_temp in
+ compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
+ distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
+ \-*) ;;
+ *) break;;
+ esac
+done
+cc_basename=`$ECHO "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
+
+
+ if test -n "$compiler"; then
+ # We don't want -fno-exception when compiling C++ code, so set the
+ # no_builtin_flag separately
+ if test "$GXX" = yes; then
+ lt_prog_compiler_no_builtin_flag_CXX=' -fno-builtin'
+ else
+ lt_prog_compiler_no_builtin_flag_CXX=
+ fi
+
+ if test "$GXX" = yes; then
+ # Set up default GNU C++ configuration
+
+
+
+# Check whether --with-gnu-ld was given.
+if test "${with_gnu_ld+set}" = set; then :
+ withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes
+else
+ with_gnu_ld=no
+fi
+
+ac_prog=ld
+if test "$GCC" = yes; then
+ # Check if gcc -print-prog-name=ld gives a path.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5
+$as_echo_n "checking for ld used by $CC... " >&6; }
+ case $host in
+ *-*-mingw*)
+ # gcc leaves a trailing carriage return which upsets mingw
+ ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
+ *)
+ ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
+ esac
+ case $ac_prog in
+ # Accept absolute paths.
+ [\\/]* | ?:[\\/]*)
+ re_direlt='/[^/][^/]*/\.\./'
+ # Canonicalize the pathname of ld
+ ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'`
+ while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do
+ ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"`
+ done
+ test -z "$LD" && LD="$ac_prog"
+ ;;
+ "")
+ # If it fails, then pretend we aren't using GCC.
+ ac_prog=ld
+ ;;
+ *)
+ # If it is relative, then search for the first ld in PATH.
+ with_gnu_ld=unknown
+ ;;
+ esac
+elif test "$with_gnu_ld" = yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5
+$as_echo_n "checking for GNU ld... " >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5
+$as_echo_n "checking for non-GNU ld... " >&6; }
+fi
+if test "${lt_cv_path_LD+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -z "$LD"; then
+ lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+ for ac_dir in $PATH; do
+ IFS="$lt_save_ifs"
+ test -z "$ac_dir" && ac_dir=.
+ if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
+ lt_cv_path_LD="$ac_dir/$ac_prog"
+ # Check to see if the program is GNU ld. I'd rather use --version,
+ # but apparently some variants of GNU ld only accept -v.
+ # Break only if it was the GNU/non-GNU ld that we prefer.
+ case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
+ *GNU* | *'with BFD'*)
+ test "$with_gnu_ld" != no && break
+ ;;
+ *)
+ test "$with_gnu_ld" != yes && break
+ ;;
+ esac
+ fi
+ done
+ IFS="$lt_save_ifs"
+else
+ lt_cv_path_LD="$LD" # Let the user override the test with a path.
+fi
+fi
+
+LD="$lt_cv_path_LD"
+if test -n "$LD"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LD" >&5
+$as_echo "$LD" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+test -z "$LD" && as_fn_error "no acceptable ld found in \$PATH" "$LINENO" 5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5
+$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; }
+if test "${lt_cv_prog_gnu_ld+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ # I'd rather use --version here, but apparently some GNU lds only accept -v.
+case `$LD -v 2>&1 </dev/null` in
+*GNU* | *'with BFD'*)
+ lt_cv_prog_gnu_ld=yes
+ ;;
+*)
+ lt_cv_prog_gnu_ld=no
+ ;;
+esac
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_gnu_ld" >&5
+$as_echo "$lt_cv_prog_gnu_ld" >&6; }
+with_gnu_ld=$lt_cv_prog_gnu_ld
+
+
+
+
+
+
+
+ # Check if GNU C++ uses GNU ld as the underlying linker, since the
+ # archiving commands below assume that GNU ld is being used.
+ if test "$with_gnu_ld" = yes; then
+ archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ archive_expsym_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+
+ hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
+ export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
+
+ # If archive_cmds runs LD, not CC, wlarc should be empty
+ # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to
+ # investigate it a little bit more. (MM)
+ wlarc='${wl}'
+
+ # ancient GNU ld didn't support --whole-archive et. al.
+ if eval "`$CC -print-prog-name=ld` --help 2>&1" |
+ $GREP 'no-whole-archive' > /dev/null; then
+ whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+ else
+ whole_archive_flag_spec_CXX=
+ fi
+ else
+ with_gnu_ld=no
+ wlarc=
+
+ # A generic and very simple default shared library creation
+ # command for GNU C++ for the case where it uses the native
+ # linker, instead of GNU ld. If possible, this setting should
+ # overridden to take advantage of the native linker features on
+ # the platform it is being used on.
+ archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
+ fi
+
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"'
+
+ else
+ GXX=no
+ with_gnu_ld=no
+ wlarc=
+ fi
+
+ # PORTME: fill in a description of your system's C++ link characteristics
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5
+$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; }
+ ld_shlibs_CXX=yes
+ case $host_os in
+ aix3*)
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+ aix[4-9]*)
+ if test "$host_cpu" = ia64; then
+ # On IA64, the linker does run time linking by default, so we don't
+ # have to do anything special.
+ aix_use_runtimelinking=no
+ exp_sym_flag='-Bexport'
+ no_entry_flag=""
+ else
+ aix_use_runtimelinking=no
+
+ # Test if we are trying to use run time linking or normal
+ # AIX style linking. If -brtl is somewhere in LDFLAGS, we
+ # need to do runtime linking.
+ case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*)
+ for ld_flag in $LDFLAGS; do
+ case $ld_flag in
+ *-brtl*)
+ aix_use_runtimelinking=yes
+ break
+ ;;
+ esac
+ done
+ ;;
+ esac
+
+ exp_sym_flag='-bexport'
+ no_entry_flag='-bnoentry'
+ fi
+
+ # When large executables or shared objects are built, AIX ld can
+ # have problems creating the table of contents. If linking a library
+ # or program results in "error TOC overflow" add -mminimal-toc to
+ # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not
+ # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
+
+ archive_cmds_CXX=''
+ hardcode_direct_CXX=yes
+ hardcode_direct_absolute_CXX=yes
+ hardcode_libdir_separator_CXX=':'
+ link_all_deplibs_CXX=yes
+ file_list_spec_CXX='${wl}-f,'
+
+ if test "$GXX" = yes; then
+ case $host_os in aix4.[012]|aix4.[012].*)
+ # We only want to do this on AIX 4.2 and lower, the check
+ # below for broken collect2 doesn't work under 4.3+
+ collect2name=`${CC} -print-prog-name=collect2`
+ if test -f "$collect2name" &&
+ strings "$collect2name" | $GREP resolve_lib_name >/dev/null
+ then
+ # We have reworked collect2
+ :
+ else
+ # We have old collect2
+ hardcode_direct_CXX=unsupported
+ # It fails to find uninstalled libraries when the uninstalled
+ # path is not listed in the libpath. Setting hardcode_minus_L
+ # to unsupported forces relinking
+ hardcode_minus_L_CXX=yes
+ hardcode_libdir_flag_spec_CXX='-L$libdir'
+ hardcode_libdir_separator_CXX=
+ fi
+ esac
+ shared_flag='-shared'
+ if test "$aix_use_runtimelinking" = yes; then
+ shared_flag="$shared_flag "'${wl}-G'
+ fi
+ else
+ # not using gcc
+ if test "$host_cpu" = ia64; then
+ # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
+ # chokes on -Wl,-G. The following line is correct:
+ shared_flag='-G'
+ else
+ if test "$aix_use_runtimelinking" = yes; then
+ shared_flag='${wl}-G'
+ else
+ shared_flag='${wl}-bM:SRE'
+ fi
+ fi
+ fi
+
+ export_dynamic_flag_spec_CXX='${wl}-bexpall'
+ # It seems that -bexpall does not export symbols beginning with
+ # underscore (_), so it is better to generate a list of symbols to
+ # export.
+ always_export_symbols_CXX=yes
+ if test "$aix_use_runtimelinking" = yes; then
+ # Warning - without using the other runtime loading flags (-brtl),
+ # -berok will link without error, but may produce a broken library.
+ allow_undefined_flag_CXX='-berok'
+ # Determine the default libpath from the value encoded in an empty
+ # executable.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_link "$LINENO"; then :
+
+lt_aix_libpath_sed='
+ /Import File Strings/,/^$/ {
+ /^0/ {
+ s/^0 *\(.*\)$/\1/
+ p
+ }
+ }'
+aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+# Check for a 64-bit object if we didn't find anything.
+if test -z "$aix_libpath"; then
+ aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+fi
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+
+ hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath"
+
+ archive_expsym_cmds_CXX='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+ else
+ if test "$host_cpu" = ia64; then
+ hardcode_libdir_flag_spec_CXX='${wl}-R $libdir:/usr/lib:/lib'
+ allow_undefined_flag_CXX="-z nodefs"
+ archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols"
+ else
+ # Determine the default libpath from the value encoded in an
+ # empty executable.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_link "$LINENO"; then :
+
+lt_aix_libpath_sed='
+ /Import File Strings/,/^$/ {
+ /^0/ {
+ s/^0 *\(.*\)$/\1/
+ p
+ }
+ }'
+aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+# Check for a 64-bit object if we didn't find anything.
+if test -z "$aix_libpath"; then
+ aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+fi
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+
+ hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath"
+ # Warning - without using the other run time loading flags,
+ # -berok will link without error, but may produce a broken library.
+ no_undefined_flag_CXX=' ${wl}-bernotok'
+ allow_undefined_flag_CXX=' ${wl}-berok'
+ # Exported symbols can be pulled into shared objects from archives
+ whole_archive_flag_spec_CXX='$convenience'
+ archive_cmds_need_lc_CXX=yes
+ # This is similar to how AIX traditionally builds its shared
+ # libraries.
+ archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
+ fi
+ fi
+ ;;
+
+ beos*)
+ if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+ allow_undefined_flag_CXX=unsupported
+ # Joseph Beckenbach <jrb3@best.com> says some releases of gcc
+ # support --undefined. This deserves some investigation. FIXME
+ archive_cmds_CXX='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ else
+ ld_shlibs_CXX=no
+ fi
+ ;;
+
+ chorus*)
+ case $cc_basename in
+ *)
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+ esac
+ ;;
+
+ cygwin* | mingw* | pw32* | cegcc*)
+ # _LT_TAGVAR(hardcode_libdir_flag_spec, CXX) is actually meaningless,
+ # as there is no search path for DLLs.
+ hardcode_libdir_flag_spec_CXX='-L$libdir'
+ allow_undefined_flag_CXX=unsupported
+ always_export_symbols_CXX=no
+ enable_shared_with_static_runtimes_CXX=yes
+
+ if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
+ archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+ # If the export-symbols file already is a .def file (1st line
+ # is EXPORTS), use it as is; otherwise, prepend...
+ archive_expsym_cmds_CXX='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+ cp $export_symbols $output_objdir/$soname.def;
+ else
+ echo EXPORTS > $output_objdir/$soname.def;
+ cat $export_symbols >> $output_objdir/$soname.def;
+ fi~
+ $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+ else
+ ld_shlibs_CXX=no
+ fi
+ ;;
+ darwin* | rhapsody*)
+
+
+ archive_cmds_need_lc_CXX=no
+ hardcode_direct_CXX=no
+ hardcode_automatic_CXX=yes
+ hardcode_shlibpath_var_CXX=unsupported
+ whole_archive_flag_spec_CXX=''
+ link_all_deplibs_CXX=yes
+ allow_undefined_flag_CXX="$_lt_dar_allow_undefined"
+ case $cc_basename in
+ ifort*) _lt_dar_can_shared=yes ;;
+ *) _lt_dar_can_shared=$GCC ;;
+ esac
+ if test "$_lt_dar_can_shared" = "yes"; then
+ output_verbose_link_cmd=echo
+ archive_cmds_CXX="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
+ module_cmds_CXX="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
+ archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
+ module_expsym_cmds_CXX="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
+ if test "$lt_cv_apple_cc_single_mod" != "yes"; then
+ archive_cmds_CXX="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}"
+ archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}"
+ fi
+
+ else
+ ld_shlibs_CXX=no
+ fi
+
+ ;;
+
+ dgux*)
+ case $cc_basename in
+ ec++*)
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+ ghcx*)
+ # Green Hills C++ Compiler
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+ *)
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+ esac
+ ;;
+
+ freebsd[12]*)
+ # C++ shared libraries reported to be fairly broken before
+ # switch to ELF
+ ld_shlibs_CXX=no
+ ;;
+
+ freebsd-elf*)
+ archive_cmds_need_lc_CXX=no
+ ;;
+
+ freebsd* | dragonfly*)
+ # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF
+ # conventions
+ ld_shlibs_CXX=yes
+ ;;
+
+ gnu*)
+ ;;
+
+ hpux9*)
+ hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir'
+ hardcode_libdir_separator_CXX=:
+ export_dynamic_flag_spec_CXX='${wl}-E'
+ hardcode_direct_CXX=yes
+ hardcode_minus_L_CXX=yes # Not in the search PATH,
+ # but as the default
+ # location of the library.
+
+ case $cc_basename in
+ CC*)
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+ aCC*)
+ archive_cmds_CXX='$RM $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ #
+ # There doesn't appear to be a way to prevent this compiler from
+ # explicitly linking system object files so we need to strip them
+ # from the output so that they don't get included in the library
+ # dependencies.
+ output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed'
+ ;;
+ *)
+ if test "$GXX" = yes; then
+ archive_cmds_CXX='$RM $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+ else
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ fi
+ ;;
+ esac
+ ;;
+
+ hpux10*|hpux11*)
+ if test $with_gnu_ld = no; then
+ hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir'
+ hardcode_libdir_separator_CXX=:
+
+ case $host_cpu in
+ hppa*64*|ia64*)
+ ;;
+ *)
+ export_dynamic_flag_spec_CXX='${wl}-E'
+ ;;
+ esac
+ fi
+ case $host_cpu in
+ hppa*64*|ia64*)
+ hardcode_direct_CXX=no
+ hardcode_shlibpath_var_CXX=no
+ ;;
+ *)
+ hardcode_direct_CXX=yes
+ hardcode_direct_absolute_CXX=yes
+ hardcode_minus_L_CXX=yes # Not in the search PATH,
+ # but as the default
+ # location of the library.
+ ;;
+ esac
+
+ case $cc_basename in
+ CC*)
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+ aCC*)
+ case $host_cpu in
+ hppa*64*)
+ archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+ ;;
+ ia64*)
+ archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+ ;;
+ *)
+ archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+ ;;
+ esac
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ #
+ # There doesn't appear to be a way to prevent this compiler from
+ # explicitly linking system object files so we need to strip them
+ # from the output so that they don't get included in the library
+ # dependencies.
+ output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed'
+ ;;
+ *)
+ if test "$GXX" = yes; then
+ if test $with_gnu_ld = no; then
+ case $host_cpu in
+ hppa*64*)
+ archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+ ;;
+ ia64*)
+ archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+ ;;
+ *)
+ archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+ ;;
+ esac
+ fi
+ else
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ fi
+ ;;
+ esac
+ ;;
+
+ interix[3-9]*)
+ hardcode_direct_CXX=no
+ hardcode_shlibpath_var_CXX=no
+ hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir'
+ export_dynamic_flag_spec_CXX='${wl}-E'
+ # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
+ # Instead, shared libraries are loaded at an image base (0x10000000 by
+ # default) and relocated if they conflict, which is a slow very memory
+ # consuming and fragmenting process. To avoid this, we pick a random,
+ # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
+ # time. Moving up from 0x10000000 also allows more sbrk(2) space.
+ archive_cmds_CXX='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+ archive_expsym_cmds_CXX='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+ ;;
+ irix5* | irix6*)
+ case $cc_basename in
+ CC*)
+ # SGI C++
+ archive_cmds_CXX='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
+
+ # Archives containing C++ object files must be created using
+ # "CC -ar", where "CC" is the IRIX C++ compiler. This is
+ # necessary to make sure instantiated templates are included
+ # in the archive.
+ old_archive_cmds_CXX='$CC -ar -WR,-u -o $oldlib $oldobjs'
+ ;;
+ *)
+ if test "$GXX" = yes; then
+ if test "$with_gnu_ld" = no; then
+ archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+ else
+ archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` -o $lib'
+ fi
+ fi
+ link_all_deplibs_CXX=yes
+ ;;
+ esac
+ hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
+ hardcode_libdir_separator_CXX=:
+ inherit_rpath_CXX=yes
+ ;;
+
+ linux* | k*bsd*-gnu | kopensolaris*-gnu)
+ case $cc_basename in
+ KCC*)
+ # Kuck and Associates, Inc. (KAI) C++ Compiler
+
+ # KCC will only create a shared library if the output file
+ # ends with ".so" (or ".sl" for HP-UX), so rename the library
+ # to its proper name (with version) after linking.
+ archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
+ archive_expsym_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib'
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ #
+ # There doesn't appear to be a way to prevent this compiler from
+ # explicitly linking system object files so we need to strip them
+ # from the output so that they don't get included in the library
+ # dependencies.
+ output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed'
+
+ hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir'
+ export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
+
+ # Archives containing C++ object files must be created using
+ # "CC -Bstatic", where "CC" is the KAI C++ compiler.
+ old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs'
+ ;;
+ icpc* | ecpc* )
+ # Intel C++
+ with_gnu_ld=yes
+ # version 8.0 and above of icpc choke on multiply defined symbols
+ # if we add $predep_objects and $postdep_objects, however 7.1 and
+ # earlier do not add the objects themselves.
+ case `$CC -V 2>&1` in
+ *"Version 7."*)
+ archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+ ;;
+ *) # Version 8.0 or newer
+ tmp_idyn=
+ case $host_cpu in
+ ia64*) tmp_idyn=' -i_dynamic';;
+ esac
+ archive_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ archive_expsym_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+ ;;
+ esac
+ archive_cmds_need_lc_CXX=no
+ hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir'
+ export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
+ whole_archive_flag_spec_CXX='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
+ ;;
+ pgCC* | pgcpp*)
+ # Portland Group C++ compiler
+ case `$CC -V` in
+ *pgCC\ [1-5]* | *pgcpp\ [1-5]*)
+ prelink_cmds_CXX='tpldir=Template.dir~
+ rm -rf $tpldir~
+ $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~
+ compile_command="$compile_command `find $tpldir -name \*.o | $NL2SP`"'
+ old_archive_cmds_CXX='tpldir=Template.dir~
+ rm -rf $tpldir~
+ $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~
+ $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | $NL2SP`~
+ $RANLIB $oldlib'
+ archive_cmds_CXX='tpldir=Template.dir~
+ rm -rf $tpldir~
+ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
+ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
+ archive_expsym_cmds_CXX='tpldir=Template.dir~
+ rm -rf $tpldir~
+ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
+ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
+ ;;
+ *) # Version 6 will use weak symbols
+ archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
+ archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
+ ;;
+ esac
+
+ hardcode_libdir_flag_spec_CXX='${wl}--rpath ${wl}$libdir'
+ export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
+ whole_archive_flag_spec_CXX='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
+ ;;
+ cxx*)
+ # Compaq C++
+ archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols'
+
+ runpath_var=LD_RUN_PATH
+ hardcode_libdir_flag_spec_CXX='-rpath $libdir'
+ hardcode_libdir_separator_CXX=:
+
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ #
+ # There doesn't appear to be a way to prevent this compiler from
+ # explicitly linking system object files so we need to strip them
+ # from the output so that they don't get included in the library
+ # dependencies.
+ output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`$ECHO "X$templist" | $Xsed -e "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed'
+ ;;
+ xl*)
+ # IBM XL 8.0 on PPC, with GNU ld
+ hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
+ export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
+ archive_cmds_CXX='$CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ if test "x$supports_anon_versioning" = xyes; then
+ archive_expsym_cmds_CXX='echo "{ global:" > $output_objdir/$libname.ver~
+ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+ echo "local: *; };" >> $output_objdir/$libname.ver~
+ $CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
+ fi
+ ;;
+ *)
+ case `$CC -V 2>&1 | sed 5q` in
+ *Sun\ C*)
+ # Sun C++ 5.9
+ no_undefined_flag_CXX=' -zdefs'
+ archive_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+ archive_expsym_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols'
+ hardcode_libdir_flag_spec_CXX='-R$libdir'
+ whole_archive_flag_spec_CXX='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
+ compiler_needs_object_CXX=yes
+
+ # Not sure whether something based on
+ # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1
+ # would be better.
+ output_verbose_link_cmd='echo'
+
+ # Archives containing C++ object files must be created using
+ # "CC -xar", where "CC" is the Sun C++ compiler. This is
+ # necessary to make sure instantiated templates are included
+ # in the archive.
+ old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs'
+ ;;
+ esac
+ ;;
+ esac
+ ;;
+
+ lynxos*)
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+
+ m88k*)
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+
+ mvs*)
+ case $cc_basename in
+ cxx*)
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+ *)
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+ esac
+ ;;
+
+ netbsd*)
+ if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
+ archive_cmds_CXX='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags'
+ wlarc=
+ hardcode_libdir_flag_spec_CXX='-R$libdir'
+ hardcode_direct_CXX=yes
+ hardcode_shlibpath_var_CXX=no
+ fi
+ # Workaround some broken pre-1.5 toolchains
+ output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"'
+ ;;
+
+ *nto* | *qnx*)
+ ld_shlibs_CXX=yes
+ ;;
+
+ openbsd2*)
+ # C++ shared libraries are fairly broken
+ ld_shlibs_CXX=no
+ ;;
+
+ openbsd*)
+ if test -f /usr/libexec/ld.so; then
+ hardcode_direct_CXX=yes
+ hardcode_shlibpath_var_CXX=no
+ hardcode_direct_absolute_CXX=yes
+ archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
+ hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir'
+ if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+ archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib'
+ export_dynamic_flag_spec_CXX='${wl}-E'
+ whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+ fi
+ output_verbose_link_cmd=echo
+ else
+ ld_shlibs_CXX=no
+ fi
+ ;;
+
+ osf3* | osf4* | osf5*)
+ case $cc_basename in
+ KCC*)
+ # Kuck and Associates, Inc. (KAI) C++ Compiler
+
+ # KCC will only create a shared library if the output file
+ # ends with ".so" (or ".sl" for HP-UX), so rename the library
+ # to its proper name (with version) after linking.
+ archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
+
+ hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir'
+ hardcode_libdir_separator_CXX=:
+
+ # Archives containing C++ object files must be created using
+ # the KAI C++ compiler.
+ case $host in
+ osf3*) old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs' ;;
+ *) old_archive_cmds_CXX='$CC -o $oldlib $oldobjs' ;;
+ esac
+ ;;
+ RCC*)
+ # Rational C++ 2.4.1
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+ cxx*)
+ case $host in
+ osf3*)
+ allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*'
+ archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && $ECHO "X${wl}-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
+ hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
+ ;;
+ *)
+ allow_undefined_flag_CXX=' -expect_unresolved \*'
+ archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
+ archive_expsym_cmds_CXX='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~
+ echo "-hidden">> $lib.exp~
+ $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~
+ $RM $lib.exp'
+ hardcode_libdir_flag_spec_CXX='-rpath $libdir'
+ ;;
+ esac
+
+ hardcode_libdir_separator_CXX=:
+
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ #
+ # There doesn't appear to be a way to prevent this compiler from
+ # explicitly linking system object files so we need to strip them
+ # from the output so that they don't get included in the library
+ # dependencies.
+ output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`$ECHO "X$templist" | $Xsed -e "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed'
+ ;;
+ *)
+ if test "$GXX" = yes && test "$with_gnu_ld" = no; then
+ allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*'
+ case $host in
+ osf3*)
+ archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+ ;;
+ *)
+ archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+ ;;
+ esac
+
+ hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
+ hardcode_libdir_separator_CXX=:
+
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"'
+
+ else
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ fi
+ ;;
+ esac
+ ;;
+
+ psos*)
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+
+ sunos4*)
+ case $cc_basename in
+ CC*)
+ # Sun C++ 4.x
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+ lcc*)
+ # Lucid
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+ *)
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+ esac
+ ;;
+
+ solaris*)
+ case $cc_basename in
+ CC*)
+ # Sun C++ 4.2, 5.x and Centerline C++
+ archive_cmds_need_lc_CXX=yes
+ no_undefined_flag_CXX=' -zdefs'
+ archive_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+ archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+ $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
+
+ hardcode_libdir_flag_spec_CXX='-R$libdir'
+ hardcode_shlibpath_var_CXX=no
+ case $host_os in
+ solaris2.[0-5] | solaris2.[0-5].*) ;;
+ *)
+ # The compiler driver will combine and reorder linker options,
+ # but understands `-z linker_flag'.
+ # Supported since Solaris 2.6 (maybe 2.5.1?)
+ whole_archive_flag_spec_CXX='-z allextract$convenience -z defaultextract'
+ ;;
+ esac
+ link_all_deplibs_CXX=yes
+
+ output_verbose_link_cmd='echo'
+
+ # Archives containing C++ object files must be created using
+ # "CC -xar", where "CC" is the Sun C++ compiler. This is
+ # necessary to make sure instantiated templates are included
+ # in the archive.
+ old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs'
+ ;;
+ gcx*)
+ # Green Hills C++ Compiler
+ archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
+
+ # The C++ compiler must be used to create the archive.
+ old_archive_cmds_CXX='$CC $LDFLAGS -archive -o $oldlib $oldobjs'
+ ;;
+ *)
+ # GNU C++ compiler with Solaris linker
+ if test "$GXX" = yes && test "$with_gnu_ld" = no; then
+ no_undefined_flag_CXX=' ${wl}-z ${wl}defs'
+ if $CC --version | $GREP -v '^2\.7' > /dev/null; then
+ archive_cmds_CXX='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
+ archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+ $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
+
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"'
+ else
+ # g++ 2.7 appears to require `-G' NOT `-shared' on this
+ # platform.
+ archive_cmds_CXX='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
+ archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+ $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
+
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"'
+ fi
+
+ hardcode_libdir_flag_spec_CXX='${wl}-R $wl$libdir'
+ case $host_os in
+ solaris2.[0-5] | solaris2.[0-5].*) ;;
+ *)
+ whole_archive_flag_spec_CXX='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
+ ;;
+ esac
+ fi
+ ;;
+ esac
+ ;;
+
+ sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*)
+ no_undefined_flag_CXX='${wl}-z,text'
+ archive_cmds_need_lc_CXX=no
+ hardcode_shlibpath_var_CXX=no
+ runpath_var='LD_RUN_PATH'
+
+ case $cc_basename in
+ CC*)
+ archive_cmds_CXX='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds_CXX='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ *)
+ archive_cmds_CXX='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds_CXX='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ esac
+ ;;
+
+ sysv5* | sco3.2v5* | sco5v6*)
+ # Note: We can NOT use -z defs as we might desire, because we do not
+ # link with -lc, and that would cause any symbols used from libc to
+ # always be unresolved, which means just about no library would
+ # ever link correctly. If we're not using GNU ld we use -z text
+ # though, which does catch some bad symbols but isn't as heavy-handed
+ # as -z defs.
+ no_undefined_flag_CXX='${wl}-z,text'
+ allow_undefined_flag_CXX='${wl}-z,nodefs'
+ archive_cmds_need_lc_CXX=no
+ hardcode_shlibpath_var_CXX=no
+ hardcode_libdir_flag_spec_CXX='${wl}-R,$libdir'
+ hardcode_libdir_separator_CXX=':'
+ link_all_deplibs_CXX=yes
+ export_dynamic_flag_spec_CXX='${wl}-Bexport'
+ runpath_var='LD_RUN_PATH'
+
+ case $cc_basename in
+ CC*)
+ archive_cmds_CXX='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds_CXX='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ *)
+ archive_cmds_CXX='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds_CXX='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ esac
+ ;;
+
+ tandem*)
+ case $cc_basename in
+ NCC*)
+ # NonStop-UX NCC 3.20
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+ *)
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+ esac
+ ;;
+
+ vxworks*)
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+
+ *)
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+ esac
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs_CXX" >&5
+$as_echo "$ld_shlibs_CXX" >&6; }
+ test "$ld_shlibs_CXX" = no && can_build_shared=no
+
+ GCC_CXX="$GXX"
+ LD_CXX="$LD"
+
+ ## CAVEAT EMPTOR:
+ ## There is no encapsulation within the following macros, do not change
+ ## the running order or otherwise move them around unless you know exactly
+ ## what you are doing...
+ # Dependencies to place before and after the object being linked:
+predep_objects_CXX=
+postdep_objects_CXX=
+predeps_CXX=
+postdeps_CXX=
+compiler_lib_search_path_CXX=
+
+cat > conftest.$ac_ext <<_LT_EOF
+class Foo
+{
+public:
+ Foo (void) { a = 0; }
+private:
+ int a;
+};
+_LT_EOF
+
+if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ # Parse the compiler output and extract the necessary
+ # objects, libraries and library flags.
+
+ # Sentinel used to keep track of whether or not we are before
+ # the conftest object file.
+ pre_test_object_deps_done=no
+
+ for p in `eval "$output_verbose_link_cmd"`; do
+ case $p in
+
+ -L* | -R* | -l*)
+ # Some compilers place space between "-{L,R}" and the path.
+ # Remove the space.
+ if test $p = "-L" ||
+ test $p = "-R"; then
+ prev=$p
+ continue
+ else
+ prev=
+ fi
+
+ if test "$pre_test_object_deps_done" = no; then
+ case $p in
+ -L* | -R*)
+ # Internal compiler library paths should come after those
+ # provided the user. The postdeps already come after the
+ # user supplied libs so there is no need to process them.
+ if test -z "$compiler_lib_search_path_CXX"; then
+ compiler_lib_search_path_CXX="${prev}${p}"
+ else
+ compiler_lib_search_path_CXX="${compiler_lib_search_path_CXX} ${prev}${p}"
+ fi
+ ;;
+ # The "-l" case would never come before the object being
+ # linked, so don't bother handling this case.
+ esac
+ else
+ if test -z "$postdeps_CXX"; then
+ postdeps_CXX="${prev}${p}"
+ else
+ postdeps_CXX="${postdeps_CXX} ${prev}${p}"
+ fi
+ fi
+ ;;
+
+ *.$objext)
+ # This assumes that the test object file only shows up
+ # once in the compiler output.
+ if test "$p" = "conftest.$objext"; then
+ pre_test_object_deps_done=yes
+ continue
+ fi
+
+ if test "$pre_test_object_deps_done" = no; then
+ if test -z "$predep_objects_CXX"; then
+ predep_objects_CXX="$p"
+ else
+ predep_objects_CXX="$predep_objects_CXX $p"
+ fi
+ else
+ if test -z "$postdep_objects_CXX"; then
+ postdep_objects_CXX="$p"
+ else
+ postdep_objects_CXX="$postdep_objects_CXX $p"
+ fi
+ fi
+ ;;
+
+ *) ;; # Ignore the rest.
+
+ esac
+ done
+
+ # Clean up.
+ rm -f a.out a.exe
+else
+ echo "libtool.m4: error: problem compiling CXX test program"
+fi
+
+$RM -f confest.$objext
+
+# PORTME: override above test on systems where it is broken
+case $host_os in
+interix[3-9]*)
+ # Interix 3.5 installs completely hosed .la files for C++, so rather than
+ # hack all around it, let's just trust "g++" to DTRT.
+ predep_objects_CXX=
+ postdep_objects_CXX=
+ postdeps_CXX=
+ ;;
+
+linux*)
+ case `$CC -V 2>&1 | sed 5q` in
+ *Sun\ C*)
+ # Sun C++ 5.9
+
+ # The more standards-conforming stlport4 library is
+ # incompatible with the Cstd library. Avoid specifying
+ # it if it's in CXXFLAGS. Ignore libCrun as
+ # -library=stlport4 depends on it.
+ case " $CXX $CXXFLAGS " in
+ *" -library=stlport4 "*)
+ solaris_use_stlport4=yes
+ ;;
+ esac
+
+ if test "$solaris_use_stlport4" != yes; then
+ postdeps_CXX='-library=Cstd -library=Crun'
+ fi
+ ;;
+ esac
+ ;;
+
+solaris*)
+ case $cc_basename in
+ CC*)
+ # The more standards-conforming stlport4 library is
+ # incompatible with the Cstd library. Avoid specifying
+ # it if it's in CXXFLAGS. Ignore libCrun as
+ # -library=stlport4 depends on it.
+ case " $CXX $CXXFLAGS " in
+ *" -library=stlport4 "*)
+ solaris_use_stlport4=yes
+ ;;
+ esac
+
+ # Adding this requires a known-good setup of shared libraries for
+ # Sun compiler versions before 5.6, else PIC objects from an old
+ # archive will be linked into the output, leading to subtle bugs.
+ if test "$solaris_use_stlport4" != yes; then
+ postdeps_CXX='-library=Cstd -library=Crun'
+ fi
+ ;;
+ esac
+ ;;
+esac
+
+
+case " $postdeps_CXX " in
+*" -lc "*) archive_cmds_need_lc_CXX=no ;;
+esac
+ compiler_lib_search_dirs_CXX=
+if test -n "${compiler_lib_search_path_CXX}"; then
+ compiler_lib_search_dirs_CXX=`echo " ${compiler_lib_search_path_CXX}" | ${SED} -e 's! -L! !g' -e 's!^ !!'`
+fi
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ lt_prog_compiler_wl_CXX=
+lt_prog_compiler_pic_CXX=
+lt_prog_compiler_static_CXX=
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5
+$as_echo_n "checking for $compiler option to produce PIC... " >&6; }
+
+ # C++ specific cases for pic, static, wl, etc.
+ if test "$GXX" = yes; then
+ lt_prog_compiler_wl_CXX='-Wl,'
+ lt_prog_compiler_static_CXX='-static'
+
+ case $host_os in
+ aix*)
+ # All AIX code is PIC.
+ if test "$host_cpu" = ia64; then
+ # AIX 5 now supports IA64 processor
+ lt_prog_compiler_static_CXX='-Bstatic'
+ fi
+ ;;
+
+ amigaos*)
+ case $host_cpu in
+ powerpc)
+ # see comment about AmigaOS4 .so support
+ lt_prog_compiler_pic_CXX='-fPIC'
+ ;;
+ m68k)
+ # FIXME: we need at least 68020 code to build shared libraries, but
+ # adding the `-m68020' flag to GCC prevents building anything better,
+ # like `-m68040'.
+ lt_prog_compiler_pic_CXX='-m68020 -resident32 -malways-restore-a4'
+ ;;
+ esac
+ ;;
+
+ beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+ # PIC is the default for these OSes.
+ ;;
+ mingw* | cygwin* | os2* | pw32* | cegcc*)
+ # This hack is so that the source file can tell whether it is being
+ # built for inclusion in a dll (and should export symbols for example).
+ # Although the cygwin gcc ignores -fPIC, still need this for old-style
+ # (--disable-auto-import) libraries
+ lt_prog_compiler_pic_CXX='-DDLL_EXPORT'
+ ;;
+ darwin* | rhapsody*)
+ # PIC is the default on this platform
+ # Common symbols not allowed in MH_DYLIB files
+ lt_prog_compiler_pic_CXX='-fno-common'
+ ;;
+ *djgpp*)
+ # DJGPP does not support shared libraries at all
+ lt_prog_compiler_pic_CXX=
+ ;;
+ interix[3-9]*)
+ # Interix 3.x gcc -fpic/-fPIC options generate broken code.
+ # Instead, we relocate shared libraries at runtime.
+ ;;
+ sysv4*MP*)
+ if test -d /usr/nec; then
+ lt_prog_compiler_pic_CXX=-Kconform_pic
+ fi
+ ;;
+ hpux*)
+ # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
+ # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag
+ # sets the default TLS model and affects inlining.
+ case $host_cpu in
+ hppa*64*)
+ ;;
+ *)
+ lt_prog_compiler_pic_CXX='-fPIC'
+ ;;
+ esac
+ ;;
+ *qnx* | *nto*)
+ # QNX uses GNU C++, but need to define -shared option too, otherwise
+ # it will coredump.
+ lt_prog_compiler_pic_CXX='-fPIC -shared'
+ ;;
+ *)
+ lt_prog_compiler_pic_CXX='-fPIC'
+ ;;
+ esac
+ else
+ case $host_os in
+ aix[4-9]*)
+ # All AIX code is PIC.
+ if test "$host_cpu" = ia64; then
+ # AIX 5 now supports IA64 processor
+ lt_prog_compiler_static_CXX='-Bstatic'
+ else
+ lt_prog_compiler_static_CXX='-bnso -bI:/lib/syscalls.exp'
+ fi
+ ;;
+ chorus*)
+ case $cc_basename in
+ cxch68*)
+ # Green Hills C++ Compiler
+ # _LT_TAGVAR(lt_prog_compiler_static, CXX)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a"
+ ;;
+ esac
+ ;;
+ dgux*)
+ case $cc_basename in
+ ec++*)
+ lt_prog_compiler_pic_CXX='-KPIC'
+ ;;
+ ghcx*)
+ # Green Hills C++ Compiler
+ lt_prog_compiler_pic_CXX='-pic'
+ ;;
+ *)
+ ;;
+ esac
+ ;;
+ freebsd* | dragonfly*)
+ # FreeBSD uses GNU C++
+ ;;
+ hpux9* | hpux10* | hpux11*)
+ case $cc_basename in
+ CC*)
+ lt_prog_compiler_wl_CXX='-Wl,'
+ lt_prog_compiler_static_CXX='${wl}-a ${wl}archive'
+ if test "$host_cpu" != ia64; then
+ lt_prog_compiler_pic_CXX='+Z'
+ fi
+ ;;
+ aCC*)
+ lt_prog_compiler_wl_CXX='-Wl,'
+ lt_prog_compiler_static_CXX='${wl}-a ${wl}archive'
+ case $host_cpu in
+ hppa*64*|ia64*)
+ # +Z the default
+ ;;
+ *)
+ lt_prog_compiler_pic_CXX='+Z'
+ ;;
+ esac
+ ;;
+ *)
+ ;;
+ esac
+ ;;
+ interix*)
+ # This is c89, which is MS Visual C++ (no shared libs)
+ # Anyone wants to do a port?
+ ;;
+ irix5* | irix6* | nonstopux*)
+ case $cc_basename in
+ CC*)
+ lt_prog_compiler_wl_CXX='-Wl,'
+ lt_prog_compiler_static_CXX='-non_shared'
+ # CC pic flag -KPIC is the default.
+ ;;
+ *)
+ ;;
+ esac
+ ;;
+ linux* | k*bsd*-gnu | kopensolaris*-gnu)
+ case $cc_basename in
+ KCC*)
+ # KAI C++ Compiler
+ lt_prog_compiler_wl_CXX='--backend -Wl,'
+ lt_prog_compiler_pic_CXX='-fPIC'
+ ;;
+ ecpc* )
+ # old Intel C++ for x86_64 which still supported -KPIC.
+ lt_prog_compiler_wl_CXX='-Wl,'
+ lt_prog_compiler_pic_CXX='-KPIC'
+ lt_prog_compiler_static_CXX='-static'
+ ;;
+ icpc* )
+ # Intel C++, used to be incompatible with GCC.
+ # ICC 10 doesn't accept -KPIC any more.
+ lt_prog_compiler_wl_CXX='-Wl,'
+ lt_prog_compiler_pic_CXX='-fPIC'
+ lt_prog_compiler_static_CXX='-static'
+ ;;
+ pgCC* | pgcpp*)
+ # Portland Group C++ compiler
+ lt_prog_compiler_wl_CXX='-Wl,'
+ lt_prog_compiler_pic_CXX='-fpic'
+ lt_prog_compiler_static_CXX='-Bstatic'
+ ;;
+ cxx*)
+ # Compaq C++
+ # Make sure the PIC flag is empty. It appears that all Alpha
+ # Linux and Compaq Tru64 Unix objects are PIC.
+ lt_prog_compiler_pic_CXX=
+ lt_prog_compiler_static_CXX='-non_shared'
+ ;;
+ xlc* | xlC*)
+ # IBM XL 8.0 on PPC
+ lt_prog_compiler_wl_CXX='-Wl,'
+ lt_prog_compiler_pic_CXX='-qpic'
+ lt_prog_compiler_static_CXX='-qstaticlink'
+ ;;
+ *)
+ case `$CC -V 2>&1 | sed 5q` in
+ *Sun\ C*)
+ # Sun C++ 5.9
+ lt_prog_compiler_pic_CXX='-KPIC'
+ lt_prog_compiler_static_CXX='-Bstatic'
+ lt_prog_compiler_wl_CXX='-Qoption ld '
+ ;;
+ esac
+ ;;
+ esac
+ ;;
+ lynxos*)
+ ;;
+ m88k*)
+ ;;
+ mvs*)
+ case $cc_basename in
+ cxx*)
+ lt_prog_compiler_pic_CXX='-W c,exportall'
+ ;;
+ *)
+ ;;
+ esac
+ ;;
+ netbsd* | netbsdelf*-gnu)
+ ;;
+ *qnx* | *nto*)
+ # QNX uses GNU C++, but need to define -shared option too, otherwise
+ # it will coredump.
+ lt_prog_compiler_pic_CXX='-fPIC -shared'
+ ;;
+ osf3* | osf4* | osf5*)
+ case $cc_basename in
+ KCC*)
+ lt_prog_compiler_wl_CXX='--backend -Wl,'
+ ;;
+ RCC*)
+ # Rational C++ 2.4.1
+ lt_prog_compiler_pic_CXX='-pic'
+ ;;
+ cxx*)
+ # Digital/Compaq C++
+ lt_prog_compiler_wl_CXX='-Wl,'
+ # Make sure the PIC flag is empty. It appears that all Alpha
+ # Linux and Compaq Tru64 Unix objects are PIC.
+ lt_prog_compiler_pic_CXX=
+ lt_prog_compiler_static_CXX='-non_shared'
+ ;;
+ *)
+ ;;
+ esac
+ ;;
+ psos*)
+ ;;
+ solaris*)
+ case $cc_basename in
+ CC*)
+ # Sun C++ 4.2, 5.x and Centerline C++
+ lt_prog_compiler_pic_CXX='-KPIC'
+ lt_prog_compiler_static_CXX='-Bstatic'
+ lt_prog_compiler_wl_CXX='-Qoption ld '
+ ;;
+ gcx*)
+ # Green Hills C++ Compiler
+ lt_prog_compiler_pic_CXX='-PIC'
+ ;;
+ *)
+ ;;
+ esac
+ ;;
+ sunos4*)
+ case $cc_basename in
+ CC*)
+ # Sun C++ 4.x
+ lt_prog_compiler_pic_CXX='-pic'
+ lt_prog_compiler_static_CXX='-Bstatic'
+ ;;
+ lcc*)
+ # Lucid
+ lt_prog_compiler_pic_CXX='-pic'
+ ;;
+ *)
+ ;;
+ esac
+ ;;
+ sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
+ case $cc_basename in
+ CC*)
+ lt_prog_compiler_wl_CXX='-Wl,'
+ lt_prog_compiler_pic_CXX='-KPIC'
+ lt_prog_compiler_static_CXX='-Bstatic'
+ ;;
+ esac
+ ;;
+ tandem*)
+ case $cc_basename in
+ NCC*)
+ # NonStop-UX NCC 3.20
+ lt_prog_compiler_pic_CXX='-KPIC'
+ ;;
+ *)
+ ;;
+ esac
+ ;;
+ vxworks*)
+ ;;
+ *)
+ lt_prog_compiler_can_build_shared_CXX=no
+ ;;
+ esac
+ fi
+
+case $host_os in
+ # For platforms which do not support PIC, -DPIC is meaningless:
+ *djgpp*)
+ lt_prog_compiler_pic_CXX=
+ ;;
+ *)
+ lt_prog_compiler_pic_CXX="$lt_prog_compiler_pic_CXX -DPIC"
+ ;;
+esac
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_prog_compiler_pic_CXX" >&5
+$as_echo "$lt_prog_compiler_pic_CXX" >&6; }
+
+
+
+#
+# Check to make sure the PIC flag actually works.
+#
+if test -n "$lt_prog_compiler_pic_CXX"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works" >&5
+$as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works... " >&6; }
+if test "${lt_cv_prog_compiler_pic_works_CXX+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_prog_compiler_pic_works_CXX=no
+ ac_outfile=conftest.$ac_objext
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+ lt_compiler_flag="$lt_prog_compiler_pic_CXX -DPIC"
+ # Insert the option either (1) after the last *FLAGS variable, or
+ # (2) before a word containing "conftest.", or (3) at the end.
+ # Note that $ac_compile itself does not contain backslashes and begins
+ # with a dollar sign (not a hyphen), so the echo should work correctly.
+ # The option is referenced via a variable to avoid confusing sed.
+ lt_compile=`echo "$ac_compile" | $SED \
+ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+ -e 's:$: $lt_compiler_flag:'`
+ (eval echo "\"\$as_me:13371: $lt_compile\"" >&5)
+ (eval "$lt_compile" 2>conftest.err)
+ ac_status=$?
+ cat conftest.err >&5
+ echo "$as_me:13375: \$? = $ac_status" >&5
+ if (exit $ac_status) && test -s "$ac_outfile"; then
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings other than the usual output.
+ $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp
+ $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+ if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
+ lt_cv_prog_compiler_pic_works_CXX=yes
+ fi
+ fi
+ $RM conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works_CXX" >&5
+$as_echo "$lt_cv_prog_compiler_pic_works_CXX" >&6; }
+
+if test x"$lt_cv_prog_compiler_pic_works_CXX" = xyes; then
+ case $lt_prog_compiler_pic_CXX in
+ "" | " "*) ;;
+ *) lt_prog_compiler_pic_CXX=" $lt_prog_compiler_pic_CXX" ;;
+ esac
+else
+ lt_prog_compiler_pic_CXX=
+ lt_prog_compiler_can_build_shared_CXX=no
+fi
+
+fi
+
+
+
+#
+# Check to make sure the static flag actually works.
+#
+wl=$lt_prog_compiler_wl_CXX eval lt_tmp_static_flag=\"$lt_prog_compiler_static_CXX\"
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5
+$as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; }
+if test "${lt_cv_prog_compiler_static_works_CXX+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_prog_compiler_static_works_CXX=no
+ save_LDFLAGS="$LDFLAGS"
+ LDFLAGS="$LDFLAGS $lt_tmp_static_flag"
+ echo "$lt_simple_link_test_code" > conftest.$ac_ext
+ if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
+ # The linker can only warn and ignore the option if not recognized
+ # So say no if there are warnings
+ if test -s conftest.err; then
+ # Append any errors to the config.log.
+ cat conftest.err 1>&5
+ $ECHO "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp
+ $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+ if diff conftest.exp conftest.er2 >/dev/null; then
+ lt_cv_prog_compiler_static_works_CXX=yes
+ fi
+ else
+ lt_cv_prog_compiler_static_works_CXX=yes
+ fi
+ fi
+ $RM -r conftest*
+ LDFLAGS="$save_LDFLAGS"
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works_CXX" >&5
+$as_echo "$lt_cv_prog_compiler_static_works_CXX" >&6; }
+
+if test x"$lt_cv_prog_compiler_static_works_CXX" = xyes; then
+ :
+else
+ lt_prog_compiler_static_CXX=
+fi
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
+$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
+if test "${lt_cv_prog_compiler_c_o_CXX+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_prog_compiler_c_o_CXX=no
+ $RM -r conftest 2>/dev/null
+ mkdir conftest
+ cd conftest
+ mkdir out
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+ lt_compiler_flag="-o out/conftest2.$ac_objext"
+ # Insert the option either (1) after the last *FLAGS variable, or
+ # (2) before a word containing "conftest.", or (3) at the end.
+ # Note that $ac_compile itself does not contain backslashes and begins
+ # with a dollar sign (not a hyphen), so the echo should work correctly.
+ lt_compile=`echo "$ac_compile" | $SED \
+ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+ -e 's:$: $lt_compiler_flag:'`
+ (eval echo "\"\$as_me:13470: $lt_compile\"" >&5)
+ (eval "$lt_compile" 2>out/conftest.err)
+ ac_status=$?
+ cat out/conftest.err >&5
+ echo "$as_me:13474: \$? = $ac_status" >&5
+ if (exit $ac_status) && test -s out/conftest2.$ac_objext
+ then
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings
+ $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp
+ $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
+ if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
+ lt_cv_prog_compiler_c_o_CXX=yes
+ fi
+ fi
+ chmod u+w . 2>&5
+ $RM conftest*
+ # SGI C++ compiler will create directory out/ii_files/ for
+ # template instantiation
+ test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
+ $RM out/* && rmdir out
+ cd ..
+ $RM -r conftest
+ $RM conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o_CXX" >&5
+$as_echo "$lt_cv_prog_compiler_c_o_CXX" >&6; }
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
+$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
+if test "${lt_cv_prog_compiler_c_o_CXX+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_prog_compiler_c_o_CXX=no
+ $RM -r conftest 2>/dev/null
+ mkdir conftest
+ cd conftest
+ mkdir out
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+ lt_compiler_flag="-o out/conftest2.$ac_objext"
+ # Insert the option either (1) after the last *FLAGS variable, or
+ # (2) before a word containing "conftest.", or (3) at the end.
+ # Note that $ac_compile itself does not contain backslashes and begins
+ # with a dollar sign (not a hyphen), so the echo should work correctly.
+ lt_compile=`echo "$ac_compile" | $SED \
+ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+ -e 's:$: $lt_compiler_flag:'`
+ (eval echo "\"\$as_me:13522: $lt_compile\"" >&5)
+ (eval "$lt_compile" 2>out/conftest.err)
+ ac_status=$?
+ cat out/conftest.err >&5
+ echo "$as_me:13526: \$? = $ac_status" >&5
+ if (exit $ac_status) && test -s out/conftest2.$ac_objext
+ then
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings
+ $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp
+ $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
+ if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
+ lt_cv_prog_compiler_c_o_CXX=yes
+ fi
+ fi
+ chmod u+w . 2>&5
+ $RM conftest*
+ # SGI C++ compiler will create directory out/ii_files/ for
+ # template instantiation
+ test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
+ $RM out/* && rmdir out
+ cd ..
+ $RM -r conftest
+ $RM conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o_CXX" >&5
+$as_echo "$lt_cv_prog_compiler_c_o_CXX" >&6; }
+
+
+
+
+hard_links="nottested"
+if test "$lt_cv_prog_compiler_c_o_CXX" = no && test "$need_locks" != no; then
+ # do not overwrite the value of need_locks provided by the user
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5
+$as_echo_n "checking if we can lock with hard links... " >&6; }
+ hard_links=yes
+ $RM conftest*
+ ln conftest.a conftest.b 2>/dev/null && hard_links=no
+ touch conftest.a
+ ln conftest.a conftest.b 2>&5 || hard_links=no
+ ln conftest.a conftest.b 2>/dev/null && hard_links=no
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5
+$as_echo "$hard_links" >&6; }
+ if test "$hard_links" = no; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5
+$as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;}
+ need_locks=warn
+ fi
+else
+ need_locks=no
+fi
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5
+$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; }
+
+ export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+ case $host_os in
+ aix[4-9]*)
+ # If we're using GNU nm, then we don't want the "-C" option.
+ # -C means demangle to AIX nm, but means don't demangle with GNU nm
+ if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
+ export_symbols_cmds_CXX='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
+ else
+ export_symbols_cmds_CXX='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
+ fi
+ ;;
+ pw32*)
+ export_symbols_cmds_CXX="$ltdll_cmds"
+ ;;
+ cygwin* | mingw* | cegcc*)
+ export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;/^.*[ ]__nm__/s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols'
+ ;;
+ linux* | k*bsd*-gnu)
+ link_all_deplibs_CXX=no
+ ;;
+ *)
+ export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+ ;;
+ esac
+ exclude_expsyms_CXX='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs_CXX" >&5
+$as_echo "$ld_shlibs_CXX" >&6; }
+test "$ld_shlibs_CXX" = no && can_build_shared=no
+
+with_gnu_ld_CXX=$with_gnu_ld
+
+
+
+
+
+
+#
+# Do we need to explicitly link libc?
+#
+case "x$archive_cmds_need_lc_CXX" in
+x|xyes)
+ # Assume -lc should be added
+ archive_cmds_need_lc_CXX=yes
+
+ if test "$enable_shared" = yes && test "$GCC" = yes; then
+ case $archive_cmds_CXX in
+ *'~'*)
+ # FIXME: we may have to deal with multi-command sequences.
+ ;;
+ '$CC '*)
+ # Test whether the compiler implicitly links with -lc since on some
+ # systems, -lgcc has to come before -lc. If gcc already passes -lc
+ # to ld, don't add -lc before -lgcc.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5
+$as_echo_n "checking whether -lc should be explicitly linked in... " >&6; }
+ $RM conftest*
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } 2>conftest.err; then
+ soname=conftest
+ lib=conftest
+ libobjs=conftest.$ac_objext
+ deplibs=
+ wl=$lt_prog_compiler_wl_CXX
+ pic_flag=$lt_prog_compiler_pic_CXX
+ compiler_flags=-v
+ linker_flags=-v
+ verstring=
+ output_objdir=.
+ libname=conftest
+ lt_save_allow_undefined_flag=$allow_undefined_flag_CXX
+ allow_undefined_flag_CXX=
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds_CXX 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5
+ (eval $archive_cmds_CXX 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+ then
+ archive_cmds_need_lc_CXX=no
+ else
+ archive_cmds_need_lc_CXX=yes
+ fi
+ allow_undefined_flag_CXX=$lt_save_allow_undefined_flag
+ else
+ cat conftest.err 1>&5
+ fi
+ $RM conftest*
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $archive_cmds_need_lc_CXX" >&5
+$as_echo "$archive_cmds_need_lc_CXX" >&6; }
+ ;;
+ esac
+ fi
+ ;;
+esac
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5
+$as_echo_n "checking dynamic linker characteristics... " >&6; }
+
+library_names_spec=
+libname_spec='lib$name'
+soname_spec=
+shrext_cmds=".so"
+postinstall_cmds=
+postuninstall_cmds=
+finish_cmds=
+finish_eval=
+shlibpath_var=
+shlibpath_overrides_runpath=unknown
+version_type=none
+dynamic_linker="$host_os ld.so"
+sys_lib_dlsearch_path_spec="/lib /usr/lib"
+need_lib_prefix=unknown
+hardcode_into_libs=no
+
+# when you set need_version to no, make sure it does not cause -set_version
+# flags to be left without arguments
+need_version=unknown
+
+case $host_os in
+aix3*)
+ version_type=linux
+ library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
+ shlibpath_var=LIBPATH
+
+ # AIX 3 has no versioning support, so we append a major version to the name.
+ soname_spec='${libname}${release}${shared_ext}$major'
+ ;;
+
+aix[4-9]*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ hardcode_into_libs=yes
+ if test "$host_cpu" = ia64; then
+ # AIX 5 supports IA64
+ library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
+ shlibpath_var=LD_LIBRARY_PATH
+ else
+ # With GCC up to 2.95.x, collect2 would create an import file
+ # for dependence libraries. The import file would start with
+ # the line `#! .'. This would cause the generated library to
+ # depend on `.', always an invalid library. This was fixed in
+ # development snapshots of GCC prior to 3.0.
+ case $host_os in
+ aix4 | aix4.[01] | aix4.[01].*)
+ if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
+ echo ' yes '
+ echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then
+ :
+ else
+ can_build_shared=no
+ fi
+ ;;
+ esac
+ # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
+ # soname into executable. Probably we can add versioning support to
+ # collect2, so additional links can be useful in future.
+ if test "$aix_use_runtimelinking" = yes; then
+ # If using run time linking (on AIX 4.2 or later) use lib<name>.so
+ # instead of lib<name>.a to let people know that these are not
+ # typical AIX shared libraries.
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ else
+ # We preserve .a as extension for shared libraries through AIX4.2
+ # and later when we are not doing run time linking.
+ library_names_spec='${libname}${release}.a $libname.a'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ fi
+ shlibpath_var=LIBPATH
+ fi
+ ;;
+
+amigaos*)
+ case $host_cpu in
+ powerpc)
+ # Since July 2007 AmigaOS4 officially supports .so libraries.
+ # When compiling the executable, add -use-dynld -Lsobjs: to the compileline.
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ ;;
+ m68k)
+ library_names_spec='$libname.ixlibrary $libname.a'
+ # Create ${libname}_ixlibrary.a entries in /sys/libs.
+ finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$ECHO "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
+ ;;
+ esac
+ ;;
+
+beos*)
+ library_names_spec='${libname}${shared_ext}'
+ dynamic_linker="$host_os ld.so"
+ shlibpath_var=LIBRARY_PATH
+ ;;
+
+bsdi[45]*)
+ version_type=linux
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
+ sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
+ # the default ld.so.conf also contains /usr/contrib/lib and
+ # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
+ # libtool to hard-code these into programs
+ ;;
+
+cygwin* | mingw* | pw32* | cegcc*)
+ version_type=windows
+ shrext_cmds=".dll"
+ need_version=no
+ need_lib_prefix=no
+
+ case $GCC,$host_os in
+ yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*)
+ library_names_spec='$libname.dll.a'
+ # DLL is installed to $(libdir)/../bin by postinstall_cmds
+ postinstall_cmds='base_file=`basename \${file}`~
+ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
+ dldir=$destdir/`dirname \$dlpath`~
+ test -d \$dldir || mkdir -p \$dldir~
+ $install_prog $dir/$dlname \$dldir/$dlname~
+ chmod a+x \$dldir/$dlname~
+ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then
+ eval '\''$striplib \$dldir/$dlname'\'' || exit \$?;
+ fi'
+ postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
+ dlpath=$dir/\$dldll~
+ $RM \$dlpath'
+ shlibpath_overrides_runpath=yes
+
+ case $host_os in
+ cygwin*)
+ # Cygwin DLLs use 'cyg' prefix rather than 'lib'
+ soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+ sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib"
+ ;;
+ mingw* | cegcc*)
+ # MinGW DLLs use traditional 'lib' prefix
+ soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+ sys_lib_search_path_spec=`$CC -print-search-dirs | $GREP "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
+ if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then
+ # It is most probably a Windows format PATH printed by
+ # mingw gcc, but we are running on Cygwin. Gcc prints its search
+ # path with ; separators, and with drive letters. We can handle the
+ # drive letters (cygwin fileutils understands them), so leave them,
+ # especially as we might pass files found there to a mingw objdump,
+ # which wouldn't understand a cygwinified path. Ahh.
+ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
+ else
+ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
+ fi
+ ;;
+ pw32*)
+ # pw32 DLLs use 'pw' prefix rather than 'lib'
+ library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+ ;;
+ esac
+ ;;
+
+ *)
+ library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib'
+ ;;
+ esac
+ dynamic_linker='Win32 ld.exe'
+ # FIXME: first we should search . and the directory the executable is in
+ shlibpath_var=PATH
+ ;;
+
+darwin* | rhapsody*)
+ dynamic_linker="$host_os dyld"
+ version_type=darwin
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext'
+ soname_spec='${libname}${release}${major}$shared_ext'
+ shlibpath_overrides_runpath=yes
+ shlibpath_var=DYLD_LIBRARY_PATH
+ shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
+
+ sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
+ ;;
+
+dgux*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ ;;
+
+freebsd1*)
+ dynamic_linker=no
+ ;;
+
+freebsd* | dragonfly*)
+ # DragonFly does not have aout. When/if they implement a new
+ # versioning mechanism, adjust this.
+ if test -x /usr/bin/objformat; then
+ objformat=`/usr/bin/objformat`
+ else
+ case $host_os in
+ freebsd[123]*) objformat=aout ;;
+ *) objformat=elf ;;
+ esac
+ fi
+ version_type=freebsd-$objformat
+ case $version_type in
+ freebsd-elf*)
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
+ need_version=no
+ need_lib_prefix=no
+ ;;
+ freebsd-*)
+ library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
+ need_version=yes
+ ;;
+ esac
+ shlibpath_var=LD_LIBRARY_PATH
+ case $host_os in
+ freebsd2*)
+ shlibpath_overrides_runpath=yes
+ ;;
+ freebsd3.[01]* | freebsdelf3.[01]*)
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ ;;
+ freebsd3.[2-9]* | freebsdelf3.[2-9]* | \
+ freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1)
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ ;;
+ *) # from 4.6 on, and DragonFly
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ ;;
+ esac
+ ;;
+
+gnu*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ hardcode_into_libs=yes
+ ;;
+
+hpux9* | hpux10* | hpux11*)
+ # Give a soname corresponding to the major version so that dld.sl refuses to
+ # link against other versions.
+ version_type=sunos
+ need_lib_prefix=no
+ need_version=no
+ case $host_cpu in
+ ia64*)
+ shrext_cmds='.so'
+ hardcode_into_libs=yes
+ dynamic_linker="$host_os dld.so"
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ if test "X$HPUX_IA64_MODE" = X32; then
+ sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
+ else
+ sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
+ fi
+ sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+ ;;
+ hppa*64*)
+ shrext_cmds='.sl'
+ hardcode_into_libs=yes
+ dynamic_linker="$host_os dld.sl"
+ shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
+ shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
+ sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+ ;;
+ *)
+ shrext_cmds='.sl'
+ dynamic_linker="$host_os dld.sl"
+ shlibpath_var=SHLIB_PATH
+ shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ ;;
+ esac
+ # HP-UX runs *really* slowly unless shared libraries are mode 555.
+ postinstall_cmds='chmod 555 $lib'
+ ;;
+
+interix[3-9]*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ ;;
+
+irix5* | irix6* | nonstopux*)
+ case $host_os in
+ nonstopux*) version_type=nonstopux ;;
+ *)
+ if test "$lt_cv_prog_gnu_ld" = yes; then
+ version_type=linux
+ else
+ version_type=irix
+ fi ;;
+ esac
+ need_lib_prefix=no
+ need_version=no
+ soname_spec='${libname}${release}${shared_ext}$major'
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
+ case $host_os in
+ irix5* | nonstopux*)
+ libsuff= shlibsuff=
+ ;;
+ *)
+ case $LD in # libtool.m4 will add one of these switches to LD
+ *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
+ libsuff= shlibsuff= libmagic=32-bit;;
+ *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
+ libsuff=32 shlibsuff=N32 libmagic=N32;;
+ *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
+ libsuff=64 shlibsuff=64 libmagic=64-bit;;
+ *) libsuff= shlibsuff= libmagic=never-match;;
+ esac
+ ;;
+ esac
+ shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
+ shlibpath_overrides_runpath=no
+ sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
+ sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
+ hardcode_into_libs=yes
+ ;;
+
+# No shared lib support for Linux oldld, aout, or coff.
+linux*oldld* | linux*aout* | linux*coff*)
+ dynamic_linker=no
+ ;;
+
+# This must be Linux ELF.
+linux* | k*bsd*-gnu | kopensolaris*-gnu)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ # Some binutils ld are patched to set DT_RUNPATH
+ save_LDFLAGS=$LDFLAGS
+ save_libdir=$libdir
+ eval "libdir=/foo; wl=\"$lt_prog_compiler_wl_CXX\"; \
+ LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec_CXX\""
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_link "$LINENO"; then :
+ if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then :
+ shlibpath_overrides_runpath=yes
+fi
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ LDFLAGS=$save_LDFLAGS
+ libdir=$save_libdir
+
+ # This implies no fast_install, which is unacceptable.
+ # Some rework will be needed to allow for fast_install
+ # before this can be enabled.
+ hardcode_into_libs=yes
+
+ # Append ld.so.conf contents to the search path
+ if test -f /etc/ld.so.conf; then
+ lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
+ sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
+ fi
+
+ # We used to test for /lib/ld.so.1 and disable shared libraries on
+ # powerpc, because MkLinux only supported shared libraries with the
+ # GNU dynamic linker. Since this was broken with cross compilers,
+ # most powerpc-linux boxes support dynamic linking these days and
+ # people can always --disable-shared, the test was removed, and we
+ # assume the GNU/Linux dynamic linker is in use.
+ dynamic_linker='GNU/Linux ld.so'
+ ;;
+
+netbsdelf*-gnu)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ dynamic_linker='NetBSD ld.elf_so'
+ ;;
+
+netbsd*)
+ version_type=sunos
+ need_lib_prefix=no
+ need_version=no
+ if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+ dynamic_linker='NetBSD (a.out) ld.so'
+ else
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ dynamic_linker='NetBSD ld.elf_so'
+ fi
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ ;;
+
+newsos6)
+ version_type=linux
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ ;;
+
+*nto* | *qnx*)
+ version_type=qnx
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ dynamic_linker='ldqnx.so'
+ ;;
+
+openbsd*)
+ version_type=sunos
+ sys_lib_dlsearch_path_spec="/usr/lib"
+ need_lib_prefix=no
+ # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs.
+ case $host_os in
+ openbsd3.3 | openbsd3.3.*) need_version=yes ;;
+ *) need_version=no ;;
+ esac
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+ case $host_os in
+ openbsd2.[89] | openbsd2.[89].*)
+ shlibpath_overrides_runpath=no
+ ;;
+ *)
+ shlibpath_overrides_runpath=yes
+ ;;
+ esac
+ else
+ shlibpath_overrides_runpath=yes
+ fi
+ ;;
+
+os2*)
+ libname_spec='$name'
+ shrext_cmds=".dll"
+ need_lib_prefix=no
+ library_names_spec='$libname${shared_ext} $libname.a'
+ dynamic_linker='OS/2 ld.exe'
+ shlibpath_var=LIBPATH
+ ;;
+
+osf3* | osf4* | osf5*)
+ version_type=osf
+ need_lib_prefix=no
+ need_version=no
+ soname_spec='${libname}${release}${shared_ext}$major'
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ shlibpath_var=LD_LIBRARY_PATH
+ sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
+ sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
+ ;;
+
+rdos*)
+ dynamic_linker=no
+ ;;
+
+solaris*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ # ldd complains unless libraries are executable
+ postinstall_cmds='chmod +x $lib'
+ ;;
+
+sunos4*)
+ version_type=sunos
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+ finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ if test "$with_gnu_ld" = yes; then
+ need_lib_prefix=no
+ fi
+ need_version=yes
+ ;;
+
+sysv4 | sysv4.3*)
+ version_type=linux
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ case $host_vendor in
+ sni)
+ shlibpath_overrides_runpath=no
+ need_lib_prefix=no
+ runpath_var=LD_RUN_PATH
+ ;;
+ siemens)
+ need_lib_prefix=no
+ ;;
+ motorola)
+ need_lib_prefix=no
+ need_version=no
+ shlibpath_overrides_runpath=no
+ sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
+ ;;
+ esac
+ ;;
+
+sysv4*MP*)
+ if test -d /usr/nec ;then
+ version_type=linux
+ library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
+ soname_spec='$libname${shared_ext}.$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ fi
+ ;;
+
+sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
+ version_type=freebsd-elf
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ if test "$with_gnu_ld" = yes; then
+ sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib'
+ else
+ sys_lib_search_path_spec='/usr/ccs/lib /usr/lib'
+ case $host_os in
+ sco3.2v5*)
+ sys_lib_search_path_spec="$sys_lib_search_path_spec /lib"
+ ;;
+ esac
+ fi
+ sys_lib_dlsearch_path_spec='/usr/lib'
+ ;;
+
+tpf*)
+ # TPF is a cross-target only. Preferred cross-host = GNU/Linux.
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ ;;
+
+uts4*)
+ version_type=linux
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ ;;
+
+*)
+ dynamic_linker=no
+ ;;
+esac
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5
+$as_echo "$dynamic_linker" >&6; }
+test "$dynamic_linker" = no && can_build_shared=no
+
+variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
+if test "$GCC" = yes; then
+ variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
+fi
+
+if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then
+ sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec"
+fi
+if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then
+ sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec"
+fi
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5
+$as_echo_n "checking how to hardcode library paths into programs... " >&6; }
+hardcode_action_CXX=
+if test -n "$hardcode_libdir_flag_spec_CXX" ||
+ test -n "$runpath_var_CXX" ||
+ test "X$hardcode_automatic_CXX" = "Xyes" ; then
+
+ # We can hardcode non-existent directories.
+ if test "$hardcode_direct_CXX" != no &&
+ # If the only mechanism to avoid hardcoding is shlibpath_var, we
+ # have to relink, otherwise we might link with an installed library
+ # when we should be linking with a yet-to-be-installed one
+ ## test "$_LT_TAGVAR(hardcode_shlibpath_var, CXX)" != no &&
+ test "$hardcode_minus_L_CXX" != no; then
+ # Linking always hardcodes the temporary library directory.
+ hardcode_action_CXX=relink
+ else
+ # We can link without hardcoding, and we can hardcode nonexisting dirs.
+ hardcode_action_CXX=immediate
+ fi
+else
+ # We cannot hardcode anything, or else we can only hardcode existing
+ # directories.
+ hardcode_action_CXX=unsupported
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action_CXX" >&5
+$as_echo "$hardcode_action_CXX" >&6; }
+
+if test "$hardcode_action_CXX" = relink ||
+ test "$inherit_rpath_CXX" = yes; then
+ # Fast installation is not supported
+ enable_fast_install=no
+elif test "$shlibpath_overrides_runpath" = yes ||
+ test "$enable_shared" = no; then
+ # Fast installation is not necessary
+ enable_fast_install=needless
+fi
+
+
+
+
+
+
+
+ fi # test -n "$compiler"
+
+ CC=$lt_save_CC
+ LDCXX=$LD
+ LD=$lt_save_LD
+ GCC=$lt_save_GCC
+ with_gnu_ld=$lt_save_with_gnu_ld
+ lt_cv_path_LDCXX=$lt_cv_path_LD
+ lt_cv_path_LD=$lt_save_path_LD
+ lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld
+ lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld
+fi # test "$_lt_caught_CXX_error" != yes
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ac_config_commands="$ac_config_commands libtool"
+
+
+
+
+# Only expand once:
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5
+$as_echo_n "checking whether ln -s works... " >&6; }
+LN_S=$as_ln_s
+if test "$LN_S" = "ln -s"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5
+$as_echo "no, using $LN_S" >&6; }
+fi
+
+
+###############
+### DocBook ###
+###############
+for ac_prog in openjade jade
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_JADE+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$JADE"; then
+ ac_cv_prog_JADE="$JADE" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_JADE="$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+JADE=$ac_cv_prog_JADE
+if test -n "$JADE"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $JADE" >&5
+$as_echo "$JADE" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$JADE" && break
+done
+
+if test -n "$JADE"; then
+ for ac_prog in onsgmls nsgmls
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_NSGMLS+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$NSGMLS"; then
+ ac_cv_prog_NSGMLS="$NSGMLS" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_NSGMLS="$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+NSGMLS=$ac_cv_prog_NSGMLS
+if test -n "$NSGMLS"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NSGMLS" >&5
+$as_echo "$NSGMLS" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$NSGMLS" && break
+done
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for DocBook V4.1" >&5
+$as_echo_n "checking for DocBook V4.1... " >&6; }
+if test "${pgac_cv_check_docbook+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat >conftest.sgml <<EOF
+<!doctype book PUBLIC "-//OASIS//DTD DocBook V4.1//EN">
+<book>
+ <title>test</title>
+ <chapter>
+ <title>random</title>
+ <sect1>
+ <title>testsect</title>
+ <para>text</para>
+ </sect1>
+ </chapter>
+</book>
+EOF
+
+${NSGMLS-false} -s conftest.sgml 1>&5 2>&1
+if test $? -eq 0; then
+ pgac_cv_check_docbook=yes
+else
+ pgac_cv_check_docbook=no
+fi
+rm -f conftest.sgml
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $pgac_cv_check_docbook" >&5
+$as_echo "$pgac_cv_check_docbook" >&6; }
+
+have_docbook=$pgac_cv_check_docbook
+
+
+ if test "$pgac_cv_check_docbook" = "yes"; then
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for DocBook stylesheets" >&5
+$as_echo_n "checking for DocBook stylesheets... " >&6; }
+
+# Check whether --with-docbook-stylesheets was given.
+if test "${with_docbook_stylesheets+set}" = set; then :
+ withval=$with_docbook_stylesheets; muse_docbook_prefix="$withval"
+fi
+
+if test "${pgac_cv_path_stylesheets+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+
+if test -n "$muse_docbook_prefix"; then
+ if test -r "$muse_docbook_prefix/html/docbook.dsl" \
+ && test -r "$muse_docbook_prefix/print/docbook.dsl"; then
+ pgac_cv_path_stylesheets="$muse_docbook_prefix"
+ fi
+fi
+if test -z "$pgac_cv_path_stylesheets"; then
+ if test -n "$DOCBOOKSTYLE"; then
+ if test -r "$DOCBOOKSTYLE/html/docbook.dsl" \
+ && test -r "$DOCBOOKSTYLE/print/docbook.dsl"; then
+ pgac_cv_path_stylesheets="$DOCBOOKSTYLE"
+ fi
+ fi
+fi
+if test -z "$pgac_cv_path_stylesheets"; then
+ for pgac_prefix in /usr /usr/local /opt; do
+ for pgac_infix in share lib; do
+ for pgac_postfix in \
+ sgml/stylesheets/nwalsh-modular \
+ sgml/stylesheets/docbook \
+ sgml/docbook/dsssl/modular \
+ sgml/docbook/stylesheet/dsssl/modular
+ do
+ pgac_candidate=$pgac_prefix/$pgac_infix/$pgac_postfix
+ if test -r "$pgac_candidate/html/docbook.dsl" \
+ && test -r "$pgac_candidate/print/docbook.dsl"
+ then
+ pgac_cv_path_stylesheets=$pgac_candidate
+ break 3
+ fi
+ done
+ done
+ done
+fi
+
+fi
+
+DOCBOOKSTYLE=$pgac_cv_path_stylesheets
+
+if test -n "$DOCBOOKSTYLE"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DOCBOOKSTYLE" >&5
+$as_echo "$DOCBOOKSTYLE" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+ if test -n "$DOCBOOKSTYLE"; then
+ DOCBOOKTARGETS="book1.html"
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: DocBook stylesheets not found or not usable - documentation will not be built" >&5
+$as_echo "$as_me: WARNING: DocBook stylesheets not found or not usable - documentation will not be built" >&2;}
+ fi
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: DocBook 4.1 DTD not found or not usable - documentation will not be built" >&5
+$as_echo "$as_me: WARNING: DocBook 4.1 DTD not found or not usable - documentation will not be built" >&2;}
+ fi
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: jade not found - documentation will not be built" >&5
+$as_echo "$as_me: WARNING: jade not found - documentation will not be built" >&2;}
+fi
+
+
+###############
+### doxygen ###
+###############
+
+# Extract the first word of "doxygen", so it can be a program name with args.
+set dummy doxygen; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_DOXYGEN+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $DOXYGEN in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_DOXYGEN="$DOXYGEN" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_path_DOXYGEN="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ test -z "$ac_cv_path_DOXYGEN" && ac_cv_path_DOXYGEN="no"
+ ;;
+esac
+fi
+DOXYGEN=$ac_cv_path_DOXYGEN
+if test -n "$DOXYGEN"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DOXYGEN" >&5
+$as_echo "$DOXYGEN" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+
+################
+### graphviz ###
+################
+
+# Extract the first word of "dot", so it can be a program name with args.
+set dummy dot; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_DOT+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $DOT in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_DOT="$DOT" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_path_DOT="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ test -z "$ac_cv_path_DOT" && ac_cv_path_DOT="no"
+ ;;
+esac
+fi
+DOT=$ac_cv_path_DOT
+if test -n "$DOT"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DOT" >&5
+$as_echo "$DOT" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+if test "$DOT" != "no"; then
+ HAVEDOT=YES
+ DOTPATH=$( dirname "$DOT" )
+else
+ HAVEDOT=NO
+fi
+
+
+
+############
+### perl ###
+############
+
+# Extract the first word of "perl", so it can be a program name with args.
+set dummy perl; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_PERL+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $PERL in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_PERL="$PERL" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_path_PERL="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ test -z "$ac_cv_path_PERL" && ac_cv_path_PERL="no"
+ ;;
+esac
+fi
+PERL=$ac_cv_path_PERL
+if test -n "$PERL"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PERL" >&5
+$as_echo "$PERL" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+if test "$PERL" == "no"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: you don't have perl installed! wierdo! (and doxygen might not like this)" >&5
+$as_echo "$as_me: WARNING: you don't have perl installed! wierdo! (and doxygen might not like this)" >&2;}
+fi
+
+
+#########
+### X ###
+#########
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for X" >&5
+$as_echo_n "checking for X... " >&6; }
+
+
+# Check whether --with-x was given.
+if test "${with_x+set}" = set; then :
+ withval=$with_x;
+fi
+
+# $have_x is `yes', `no', `disabled', or empty when we do not yet know.
+if test "x$with_x" = xno; then
+ # The user explicitly disabled X.
+ have_x=disabled
+else
+ case $x_includes,$x_libraries in #(
+ *\'*) as_fn_error "cannot use X directory names containing '" "$LINENO" 5;; #(
+ *,NONE | NONE,*) if test "${ac_cv_have_x+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ # One or both of the vars are not set, and there is no cached value.
+ac_x_includes=no ac_x_libraries=no
+rm -f -r conftest.dir
+if mkdir conftest.dir; then
+ cd conftest.dir
+ cat >Imakefile <<'_ACEOF'
+incroot:
+ @echo incroot='${INCROOT}'
+usrlibdir:
+ @echo usrlibdir='${USRLIBDIR}'
+libdir:
+ @echo libdir='${LIBDIR}'
+_ACEOF
+ if (export CC; ${XMKMF-xmkmf}) >/dev/null 2>/dev/null && test -f Makefile; then
+ # GNU make sometimes prints "make[1]: Entering...", which would confuse us.
+ for ac_var in incroot usrlibdir libdir; do
+ eval "ac_im_$ac_var=\`\${MAKE-make} $ac_var 2>/dev/null | sed -n 's/^$ac_var=//p'\`"
+ done
+ # Open Windows xmkmf reportedly sets LIBDIR instead of USRLIBDIR.
+ for ac_extension in a so sl dylib la dll; do
+ if test ! -f "$ac_im_usrlibdir/libX11.$ac_extension" &&
+ test -f "$ac_im_libdir/libX11.$ac_extension"; then
+ ac_im_usrlibdir=$ac_im_libdir; break
+ fi
+ done
+ # Screen out bogus values from the imake configuration. They are
+ # bogus both because they are the default anyway, and because
+ # using them would break gcc on systems where it needs fixed includes.
+ case $ac_im_incroot in
+ /usr/include) ac_x_includes= ;;
+ *) test -f "$ac_im_incroot/X11/Xos.h" && ac_x_includes=$ac_im_incroot;;
+ esac
+ case $ac_im_usrlibdir in
+ /usr/lib | /usr/lib64 | /lib | /lib64) ;;
+ *) test -d "$ac_im_usrlibdir" && ac_x_libraries=$ac_im_usrlibdir ;;
+ esac
+ fi
+ cd ..
+ rm -f -r conftest.dir
+fi
+
+# Standard set of common directories for X headers.
+# Check X11 before X11Rn because it is often a symlink to the current release.
+ac_x_header_dirs='
+/usr/X11/include
+/usr/X11R7/include
+/usr/X11R6/include
+/usr/X11R5/include
+/usr/X11R4/include
+
+/usr/include/X11
+/usr/include/X11R7
+/usr/include/X11R6
+/usr/include/X11R5
+/usr/include/X11R4
+
+/usr/local/X11/include
+/usr/local/X11R7/include
+/usr/local/X11R6/include
+/usr/local/X11R5/include
+/usr/local/X11R4/include
+
+/usr/local/include/X11
+/usr/local/include/X11R7
+/usr/local/include/X11R6
+/usr/local/include/X11R5
+/usr/local/include/X11R4
+
+/usr/X386/include
+/usr/x386/include
+/usr/XFree86/include/X11
+
+/usr/include
+/usr/local/include
+/usr/unsupported/include
+/usr/athena/include
+/usr/local/x11r5/include
+/usr/lpp/Xamples/include
+
+/usr/openwin/include
+/usr/openwin/share/include'
+
+if test "$ac_x_includes" = no; then
+ # Guess where to find include files, by looking for Xlib.h.
+ # First, try using that file with no special directory specified.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <X11/Xlib.h>
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+ # We can compile using X headers with no special include directory.
+ac_x_includes=
+else
+ for ac_dir in $ac_x_header_dirs; do
+ if test -r "$ac_dir/X11/Xlib.h"; then
+ ac_x_includes=$ac_dir
+ break
+ fi
+done
+fi
+rm -f conftest.err conftest.$ac_ext
+fi # $ac_x_includes = no
+
+if test "$ac_x_libraries" = no; then
+ # Check for the libraries.
+ # See if we find them without any special options.
+ # Don't add to $LIBS permanently.
+ ac_save_LIBS=$LIBS
+ LIBS="-lX11 $LIBS"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <X11/Xlib.h>
+int
+main ()
+{
+XrmInitialize ()
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ LIBS=$ac_save_LIBS
+# We can link X programs with no special library path.
+ac_x_libraries=
+else
+ LIBS=$ac_save_LIBS
+for ac_dir in `$as_echo "$ac_x_includes $ac_x_header_dirs" | sed s/include/lib/g`
+do
+ # Don't even attempt the hair of trying to link an X program!
+ for ac_extension in a so sl dylib la dll; do
+ if test -r "$ac_dir/libX11.$ac_extension"; then
+ ac_x_libraries=$ac_dir
+ break 2
+ fi
+ done
+done
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+fi # $ac_x_libraries = no
+
+case $ac_x_includes,$ac_x_libraries in #(
+ no,* | *,no | *\'*)
+ # Didn't find X, or a directory has "'" in its name.
+ ac_cv_have_x="have_x=no";; #(
+ *)
+ # Record where we found X for the cache.
+ ac_cv_have_x="have_x=yes\
+ ac_x_includes='$ac_x_includes'\
+ ac_x_libraries='$ac_x_libraries'"
+esac
+fi
+;; #(
+ *) have_x=yes;;
+ esac
+ eval "$ac_cv_have_x"
+fi # $with_x != no
+
+if test "$have_x" != yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_x" >&5
+$as_echo "$have_x" >&6; }
+ no_x=yes
+else
+ # If each of the values was on the command line, it overrides each guess.
+ test "x$x_includes" = xNONE && x_includes=$ac_x_includes
+ test "x$x_libraries" = xNONE && x_libraries=$ac_x_libraries
+ # Update the cache value to reflect the command line values.
+ ac_cv_have_x="have_x=yes\
+ ac_x_includes='$x_includes'\
+ ac_x_libraries='$x_libraries'"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: libraries $x_libraries, headers $x_includes" >&5
+$as_echo "libraries $x_libraries, headers $x_includes" >&6; }
+fi
+
+if test "$no_x" = yes; then
+ # Not all programs may use this symbol, but it does not hurt to define it.
+
+$as_echo "#define X_DISPLAY_MISSING 1" >>confdefs.h
+
+ X_CFLAGS= X_PRE_LIBS= X_LIBS= X_EXTRA_LIBS=
+else
+ if test -n "$x_includes"; then
+ X_CFLAGS="$X_CFLAGS -I$x_includes"
+ fi
+
+ # It would also be nice to do this for all -L options, not just this one.
+ if test -n "$x_libraries"; then
+ X_LIBS="$X_LIBS -L$x_libraries"
+ # For Solaris; some versions of Sun CC require a space after -R and
+ # others require no space. Words are not sufficient . . . .
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -R must be followed by a space" >&5
+$as_echo_n "checking whether -R must be followed by a space... " >&6; }
+ ac_xsave_LIBS=$LIBS; LIBS="$LIBS -R$x_libraries"
+ ac_xsave_c_werror_flag=$ac_c_werror_flag
+ ac_c_werror_flag=yes
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ X_LIBS="$X_LIBS -R$x_libraries"
+else
+ LIBS="$ac_xsave_LIBS -R $x_libraries"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ X_LIBS="$X_LIBS -R $x_libraries"
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: neither works" >&5
+$as_echo "neither works" >&6; }
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ ac_c_werror_flag=$ac_xsave_c_werror_flag
+ LIBS=$ac_xsave_LIBS
+ fi
+
+ # Check for system-dependent libraries X programs must link with.
+ # Do this before checking for the system-independent R6 libraries
+ # (-lICE), since we may need -lsocket or whatever for X linking.
+
+ if test "$ISC" = yes; then
+ X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl_s -linet"
+ else
+ # Martyn Johnson says this is needed for Ultrix, if the X
+ # libraries were built with DECnet support. And Karl Berry says
+ # the Alpha needs dnet_stub (dnet does not exist).
+ ac_xsave_LIBS="$LIBS"; LIBS="$LIBS $X_LIBS -lX11"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char XOpenDisplay ();
+int
+main ()
+{
+return XOpenDisplay ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dnet_ntoa in -ldnet" >&5
+$as_echo_n "checking for dnet_ntoa in -ldnet... " >&6; }
+if test "${ac_cv_lib_dnet_dnet_ntoa+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldnet $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dnet_ntoa ();
+int
+main ()
+{
+return dnet_ntoa ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_dnet_dnet_ntoa=yes
+else
+ ac_cv_lib_dnet_dnet_ntoa=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dnet_dnet_ntoa" >&5
+$as_echo "$ac_cv_lib_dnet_dnet_ntoa" >&6; }
+if test "x$ac_cv_lib_dnet_dnet_ntoa" = x""yes; then :
+ X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet"
+fi
+
+ if test $ac_cv_lib_dnet_dnet_ntoa = no; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dnet_ntoa in -ldnet_stub" >&5
+$as_echo_n "checking for dnet_ntoa in -ldnet_stub... " >&6; }
+if test "${ac_cv_lib_dnet_stub_dnet_ntoa+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldnet_stub $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dnet_ntoa ();
+int
+main ()
+{
+return dnet_ntoa ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_dnet_stub_dnet_ntoa=yes
+else
+ ac_cv_lib_dnet_stub_dnet_ntoa=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dnet_stub_dnet_ntoa" >&5
+$as_echo "$ac_cv_lib_dnet_stub_dnet_ntoa" >&6; }
+if test "x$ac_cv_lib_dnet_stub_dnet_ntoa" = x""yes; then :
+ X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet_stub"
+fi
+
+ fi
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ LIBS="$ac_xsave_LIBS"
+
+ # msh@cis.ufl.edu says -lnsl (and -lsocket) are needed for his 386/AT,
+ # to get the SysV transport functions.
+ # Chad R. Larson says the Pyramis MIS-ES running DC/OSx (SVR4)
+ # needs -lnsl.
+ # The nsl library prevents programs from opening the X display
+ # on Irix 5.2, according to T.E. Dickey.
+ # The functions gethostbyname, getservbyname, and inet_addr are
+ # in -lbsd on LynxOS 3.0.1/i386, according to Lars Hecking.
+ ac_fn_c_check_func "$LINENO" "gethostbyname" "ac_cv_func_gethostbyname"
+if test "x$ac_cv_func_gethostbyname" = x""yes; then :
+
+fi
+
+ if test $ac_cv_func_gethostbyname = no; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostbyname in -lnsl" >&5
+$as_echo_n "checking for gethostbyname in -lnsl... " >&6; }
+if test "${ac_cv_lib_nsl_gethostbyname+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lnsl $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char gethostbyname ();
+int
+main ()
+{
+return gethostbyname ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_nsl_gethostbyname=yes
+else
+ ac_cv_lib_nsl_gethostbyname=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_nsl_gethostbyname" >&5
+$as_echo "$ac_cv_lib_nsl_gethostbyname" >&6; }
+if test "x$ac_cv_lib_nsl_gethostbyname" = x""yes; then :
+ X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl"
+fi
+
+ if test $ac_cv_lib_nsl_gethostbyname = no; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostbyname in -lbsd" >&5
+$as_echo_n "checking for gethostbyname in -lbsd... " >&6; }
+if test "${ac_cv_lib_bsd_gethostbyname+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lbsd $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char gethostbyname ();
+int
+main ()
+{
+return gethostbyname ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_bsd_gethostbyname=yes
+else
+ ac_cv_lib_bsd_gethostbyname=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_bsd_gethostbyname" >&5
+$as_echo "$ac_cv_lib_bsd_gethostbyname" >&6; }
+if test "x$ac_cv_lib_bsd_gethostbyname" = x""yes; then :
+ X_EXTRA_LIBS="$X_EXTRA_LIBS -lbsd"
+fi
+
+ fi
+ fi
+
+ # lieder@skyler.mavd.honeywell.com says without -lsocket,
+ # socket/setsockopt and other routines are undefined under SCO ODT
+ # 2.0. But -lsocket is broken on IRIX 5.2 (and is not necessary
+ # on later versions), says Simon Leinen: it contains gethostby*
+ # variants that don't use the name server (or something). -lsocket
+ # must be given before -lnsl if both are needed. We assume that
+ # if connect needs -lnsl, so does gethostbyname.
+ ac_fn_c_check_func "$LINENO" "connect" "ac_cv_func_connect"
+if test "x$ac_cv_func_connect" = x""yes; then :
+
+fi
+
+ if test $ac_cv_func_connect = no; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for connect in -lsocket" >&5
+$as_echo_n "checking for connect in -lsocket... " >&6; }
+if test "${ac_cv_lib_socket_connect+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lsocket $X_EXTRA_LIBS $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char connect ();
+int
+main ()
+{
+return connect ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_socket_connect=yes
+else
+ ac_cv_lib_socket_connect=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_socket_connect" >&5
+$as_echo "$ac_cv_lib_socket_connect" >&6; }
+if test "x$ac_cv_lib_socket_connect" = x""yes; then :
+ X_EXTRA_LIBS="-lsocket $X_EXTRA_LIBS"
+fi
+
+ fi
+
+ # Guillermo Gomez says -lposix is necessary on A/UX.
+ ac_fn_c_check_func "$LINENO" "remove" "ac_cv_func_remove"
+if test "x$ac_cv_func_remove" = x""yes; then :
+
+fi
+
+ if test $ac_cv_func_remove = no; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for remove in -lposix" >&5
+$as_echo_n "checking for remove in -lposix... " >&6; }
+if test "${ac_cv_lib_posix_remove+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lposix $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char remove ();
+int
+main ()
+{
+return remove ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_posix_remove=yes
+else
+ ac_cv_lib_posix_remove=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_posix_remove" >&5
+$as_echo "$ac_cv_lib_posix_remove" >&6; }
+if test "x$ac_cv_lib_posix_remove" = x""yes; then :
+ X_EXTRA_LIBS="$X_EXTRA_LIBS -lposix"
+fi
+
+ fi
+
+ # BSDI BSD/OS 2.1 needs -lipc for XOpenDisplay.
+ ac_fn_c_check_func "$LINENO" "shmat" "ac_cv_func_shmat"
+if test "x$ac_cv_func_shmat" = x""yes; then :
+
+fi
+
+ if test $ac_cv_func_shmat = no; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shmat in -lipc" >&5
+$as_echo_n "checking for shmat in -lipc... " >&6; }
+if test "${ac_cv_lib_ipc_shmat+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lipc $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char shmat ();
+int
+main ()
+{
+return shmat ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_ipc_shmat=yes
+else
+ ac_cv_lib_ipc_shmat=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ipc_shmat" >&5
+$as_echo "$ac_cv_lib_ipc_shmat" >&6; }
+if test "x$ac_cv_lib_ipc_shmat" = x""yes; then :
+ X_EXTRA_LIBS="$X_EXTRA_LIBS -lipc"
+fi
+
+ fi
+ fi
+
+ # Check for libraries that X11R6 Xt/Xaw programs need.
+ ac_save_LDFLAGS=$LDFLAGS
+ test -n "$x_libraries" && LDFLAGS="$LDFLAGS -L$x_libraries"
+ # SM needs ICE to (dynamically) link under SunOS 4.x (so we have to
+ # check for ICE first), but we must link in the order -lSM -lICE or
+ # we get undefined symbols. So assume we have SM if we have ICE.
+ # These have to be linked with before -lX11, unlike the other
+ # libraries we check for below, so use a different variable.
+ # John Interrante, Karl Berry
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IceConnectionNumber in -lICE" >&5
+$as_echo_n "checking for IceConnectionNumber in -lICE... " >&6; }
+if test "${ac_cv_lib_ICE_IceConnectionNumber+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lICE $X_EXTRA_LIBS $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char IceConnectionNumber ();
+int
+main ()
+{
+return IceConnectionNumber ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_ICE_IceConnectionNumber=yes
+else
+ ac_cv_lib_ICE_IceConnectionNumber=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ICE_IceConnectionNumber" >&5
+$as_echo "$ac_cv_lib_ICE_IceConnectionNumber" >&6; }
+if test "x$ac_cv_lib_ICE_IceConnectionNumber" = x""yes; then :
+ X_PRE_LIBS="$X_PRE_LIBS -lSM -lICE"
+fi
+
+ LDFLAGS=$ac_save_LDFLAGS
+
+fi
+
+if test "$X_DISPLAY_MISSING" != ""; then
+ as_fn_error "X required" "$LINENO" 5
+fi
+
+
+
+##########
+### QT ###
+##########
+#CONFIGURE_QT(3.2.0, , AC_MSG_ERROR([need qt >= 3.2.0]))
+#if test "$muse_qttest" = "yes"; then
+# AC_LANG_PUSH([C++])
+# muse_save_CFLAGS="$CFLAGS"
+# CFLAGS="$CFLAGS $QT_CFLAGS"
+# muse_save_CXXFLAGS="$CXXFLAGS"
+# CXXFLAGS="$CXXFLAGS $QT_CFLAGS"
+# muse_save_LDFLAGS="$LDFLAGS"
+# LDFLAGS="$LDFLAGS $QT_LIBS"
+# AC_CHECK_LIB(qt-mt, qt_selection_property, [
+# true
+# ],[
+# AC_MSG_ERROR([
+#
+# MusE requires thread enabled QT (qt-mt) >= 3.2.0
+#
+# You can either compile your own version of QT (making sure you enable
+# threading!) or install the appropriate package for your distribution.
+#])
+# ])
+# CFLAGS="$muse_save_CFLAGS"
+# CXXFLAGS="$muse_save_CXXFLAGS"
+# LDFLAGS="$muse_save_LDFLAGS"
+# unset muse_save_CFLAGS
+# unset muse_save_CXXFLAGS
+# unset muse_save_LDFLAGS
+# AC_LANG_POP([C++])
+#fi
+
+QTDIR=/usr/share/qt4
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $QTDIR" >&5
+$as_echo "$QTDIR" >&6; }
+if test "$no_x" = yes; then
+ # Not all programs may use this symbol, but it does not hurt to define it.
+
+$as_echo "#define X_DISPLAY_MISSING 1" >>confdefs.h
+
+ X_CFLAGS= X_PRE_LIBS= X_LIBS= X_EXTRA_LIBS=
+else
+ if test -n "$x_includes"; then
+ X_CFLAGS="$X_CFLAGS -I$x_includes"
+ fi
+
+ # It would also be nice to do this for all -L options, not just this one.
+ if test -n "$x_libraries"; then
+ X_LIBS="$X_LIBS -L$x_libraries"
+ # For Solaris; some versions of Sun CC require a space after -R and
+ # others require no space. Words are not sufficient . . . .
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -R must be followed by a space" >&5
+$as_echo_n "checking whether -R must be followed by a space... " >&6; }
+ ac_xsave_LIBS=$LIBS; LIBS="$LIBS -R$x_libraries"
+ ac_xsave_c_werror_flag=$ac_c_werror_flag
+ ac_c_werror_flag=yes
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ X_LIBS="$X_LIBS -R$x_libraries"
+else
+ LIBS="$ac_xsave_LIBS -R $x_libraries"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ X_LIBS="$X_LIBS -R $x_libraries"
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: neither works" >&5
+$as_echo "neither works" >&6; }
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ ac_c_werror_flag=$ac_xsave_c_werror_flag
+ LIBS=$ac_xsave_LIBS
+ fi
+
+ # Check for system-dependent libraries X programs must link with.
+ # Do this before checking for the system-independent R6 libraries
+ # (-lICE), since we may need -lsocket or whatever for X linking.
+
+ if test "$ISC" = yes; then
+ X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl_s -linet"
+ else
+ # Martyn Johnson says this is needed for Ultrix, if the X
+ # libraries were built with DECnet support. And Karl Berry says
+ # the Alpha needs dnet_stub (dnet does not exist).
+ ac_xsave_LIBS="$LIBS"; LIBS="$LIBS $X_LIBS -lX11"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char XOpenDisplay ();
+int
+main ()
+{
+return XOpenDisplay ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dnet_ntoa in -ldnet" >&5
+$as_echo_n "checking for dnet_ntoa in -ldnet... " >&6; }
+if test "${ac_cv_lib_dnet_dnet_ntoa+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldnet $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dnet_ntoa ();
+int
+main ()
+{
+return dnet_ntoa ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_dnet_dnet_ntoa=yes
+else
+ ac_cv_lib_dnet_dnet_ntoa=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dnet_dnet_ntoa" >&5
+$as_echo "$ac_cv_lib_dnet_dnet_ntoa" >&6; }
+if test "x$ac_cv_lib_dnet_dnet_ntoa" = x""yes; then :
+ X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet"
+fi
+
+ if test $ac_cv_lib_dnet_dnet_ntoa = no; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dnet_ntoa in -ldnet_stub" >&5
+$as_echo_n "checking for dnet_ntoa in -ldnet_stub... " >&6; }
+if test "${ac_cv_lib_dnet_stub_dnet_ntoa+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldnet_stub $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dnet_ntoa ();
+int
+main ()
+{
+return dnet_ntoa ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_dnet_stub_dnet_ntoa=yes
+else
+ ac_cv_lib_dnet_stub_dnet_ntoa=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dnet_stub_dnet_ntoa" >&5
+$as_echo "$ac_cv_lib_dnet_stub_dnet_ntoa" >&6; }
+if test "x$ac_cv_lib_dnet_stub_dnet_ntoa" = x""yes; then :
+ X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet_stub"
+fi
+
+ fi
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ LIBS="$ac_xsave_LIBS"
+
+ # msh@cis.ufl.edu says -lnsl (and -lsocket) are needed for his 386/AT,
+ # to get the SysV transport functions.
+ # Chad R. Larson says the Pyramis MIS-ES running DC/OSx (SVR4)
+ # needs -lnsl.
+ # The nsl library prevents programs from opening the X display
+ # on Irix 5.2, according to T.E. Dickey.
+ # The functions gethostbyname, getservbyname, and inet_addr are
+ # in -lbsd on LynxOS 3.0.1/i386, according to Lars Hecking.
+ ac_fn_c_check_func "$LINENO" "gethostbyname" "ac_cv_func_gethostbyname"
+if test "x$ac_cv_func_gethostbyname" = x""yes; then :
+
+fi
+
+ if test $ac_cv_func_gethostbyname = no; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostbyname in -lnsl" >&5
+$as_echo_n "checking for gethostbyname in -lnsl... " >&6; }
+if test "${ac_cv_lib_nsl_gethostbyname+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lnsl $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char gethostbyname ();
+int
+main ()
+{
+return gethostbyname ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_nsl_gethostbyname=yes
+else
+ ac_cv_lib_nsl_gethostbyname=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_nsl_gethostbyname" >&5
+$as_echo "$ac_cv_lib_nsl_gethostbyname" >&6; }
+if test "x$ac_cv_lib_nsl_gethostbyname" = x""yes; then :
+ X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl"
+fi
+
+ if test $ac_cv_lib_nsl_gethostbyname = no; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostbyname in -lbsd" >&5
+$as_echo_n "checking for gethostbyname in -lbsd... " >&6; }
+if test "${ac_cv_lib_bsd_gethostbyname+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lbsd $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char gethostbyname ();
+int
+main ()
+{
+return gethostbyname ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_bsd_gethostbyname=yes
+else
+ ac_cv_lib_bsd_gethostbyname=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_bsd_gethostbyname" >&5
+$as_echo "$ac_cv_lib_bsd_gethostbyname" >&6; }
+if test "x$ac_cv_lib_bsd_gethostbyname" = x""yes; then :
+ X_EXTRA_LIBS="$X_EXTRA_LIBS -lbsd"
+fi
+
+ fi
+ fi
+
+ # lieder@skyler.mavd.honeywell.com says without -lsocket,
+ # socket/setsockopt and other routines are undefined under SCO ODT
+ # 2.0. But -lsocket is broken on IRIX 5.2 (and is not necessary
+ # on later versions), says Simon Leinen: it contains gethostby*
+ # variants that don't use the name server (or something). -lsocket
+ # must be given before -lnsl if both are needed. We assume that
+ # if connect needs -lnsl, so does gethostbyname.
+ ac_fn_c_check_func "$LINENO" "connect" "ac_cv_func_connect"
+if test "x$ac_cv_func_connect" = x""yes; then :
+
+fi
+
+ if test $ac_cv_func_connect = no; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for connect in -lsocket" >&5
+$as_echo_n "checking for connect in -lsocket... " >&6; }
+if test "${ac_cv_lib_socket_connect+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lsocket $X_EXTRA_LIBS $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char connect ();
+int
+main ()
+{
+return connect ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_socket_connect=yes
+else
+ ac_cv_lib_socket_connect=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_socket_connect" >&5
+$as_echo "$ac_cv_lib_socket_connect" >&6; }
+if test "x$ac_cv_lib_socket_connect" = x""yes; then :
+ X_EXTRA_LIBS="-lsocket $X_EXTRA_LIBS"
+fi
+
+ fi
+
+ # Guillermo Gomez says -lposix is necessary on A/UX.
+ ac_fn_c_check_func "$LINENO" "remove" "ac_cv_func_remove"
+if test "x$ac_cv_func_remove" = x""yes; then :
+
+fi
+
+ if test $ac_cv_func_remove = no; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for remove in -lposix" >&5
+$as_echo_n "checking for remove in -lposix... " >&6; }
+if test "${ac_cv_lib_posix_remove+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lposix $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char remove ();
+int
+main ()
+{
+return remove ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_posix_remove=yes
+else
+ ac_cv_lib_posix_remove=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_posix_remove" >&5
+$as_echo "$ac_cv_lib_posix_remove" >&6; }
+if test "x$ac_cv_lib_posix_remove" = x""yes; then :
+ X_EXTRA_LIBS="$X_EXTRA_LIBS -lposix"
+fi
+
+ fi
+
+ # BSDI BSD/OS 2.1 needs -lipc for XOpenDisplay.
+ ac_fn_c_check_func "$LINENO" "shmat" "ac_cv_func_shmat"
+if test "x$ac_cv_func_shmat" = x""yes; then :
+
+fi
+
+ if test $ac_cv_func_shmat = no; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shmat in -lipc" >&5
+$as_echo_n "checking for shmat in -lipc... " >&6; }
+if test "${ac_cv_lib_ipc_shmat+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lipc $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char shmat ();
+int
+main ()
+{
+return shmat ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_ipc_shmat=yes
+else
+ ac_cv_lib_ipc_shmat=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ipc_shmat" >&5
+$as_echo "$ac_cv_lib_ipc_shmat" >&6; }
+if test "x$ac_cv_lib_ipc_shmat" = x""yes; then :
+ X_EXTRA_LIBS="$X_EXTRA_LIBS -lipc"
+fi
+
+ fi
+ fi
+
+ # Check for libraries that X11R6 Xt/Xaw programs need.
+ ac_save_LDFLAGS=$LDFLAGS
+ test -n "$x_libraries" && LDFLAGS="$LDFLAGS -L$x_libraries"
+ # SM needs ICE to (dynamically) link under SunOS 4.x (so we have to
+ # check for ICE first), but we must link in the order -lSM -lICE or
+ # we get undefined symbols. So assume we have SM if we have ICE.
+ # These have to be linked with before -lX11, unlike the other
+ # libraries we check for below, so use a different variable.
+ # John Interrante, Karl Berry
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IceConnectionNumber in -lICE" >&5
+$as_echo_n "checking for IceConnectionNumber in -lICE... " >&6; }
+if test "${ac_cv_lib_ICE_IceConnectionNumber+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lICE $X_EXTRA_LIBS $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char IceConnectionNumber ();
+int
+main ()
+{
+return IceConnectionNumber ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_ICE_IceConnectionNumber=yes
+else
+ ac_cv_lib_ICE_IceConnectionNumber=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ICE_IceConnectionNumber" >&5
+$as_echo "$ac_cv_lib_ICE_IceConnectionNumber" >&6; }
+if test "x$ac_cv_lib_ICE_IceConnectionNumber" = x""yes; then :
+ X_PRE_LIBS="$X_PRE_LIBS -lSM -lICE"
+fi
+
+ LDFLAGS=$ac_save_LDFLAGS
+
+fi
+
+QT_LIBS="-Wl,-rpath,$QTDIR/lib -L$QTDIR/lib -lQtGui -lQtOpenGL -lQtCore -lQt3Support $X_LIBS -lX11 -lXext -lXmu -lXt -lXi $X_EXTRA_LIBS -lGLU -lGL -lpthread"
+QTDIR_INC="-I$QTDIR/include -I$QTDIR/include/QtGui -I$QTDIR/include/QtCore -I$QTDIR/include/Qt3Support $X_CFLAGS -DQT_OPENGL_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED"
+QTDIR_BIN="$QTDIR/bin"
+
+
+############
+### ALSA ###
+############
+alsa_save_CFLAGS="$CFLAGS"
+alsa_save_LDFLAGS="$LDFLAGS"
+alsa_save_LIBS="$LIBS"
+alsa_found=yes
+
+
+# Check whether --with-alsa-prefix was given.
+if test "${with_alsa_prefix+set}" = set; then :
+ withval=$with_alsa_prefix; alsa_prefix="$withval"
+else
+ alsa_prefix=""
+fi
+
+
+
+# Check whether --with-alsa-inc-prefix was given.
+if test "${with_alsa_inc_prefix+set}" = set; then :
+ withval=$with_alsa_inc_prefix; alsa_inc_prefix="$withval"
+else
+ alsa_inc_prefix=""
+fi
+
+
+# Check whether --enable-alsatest was given.
+if test "${enable_alsatest+set}" = set; then :
+ enableval=$enable_alsatest; enable_alsatest=no
+else
+ enable_alsatest=yes
+fi
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ALSA CFLAGS" >&5
+$as_echo_n "checking for ALSA CFLAGS... " >&6; }
+if test "$alsa_inc_prefix" != "" ; then
+ ALSA_CFLAGS="$ALSA_CFLAGS -I$alsa_inc_prefix"
+ CFLAGS="$CFLAGS -I$alsa_inc_prefix"
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ALSA_CFLAGS" >&5
+$as_echo "$ALSA_CFLAGS" >&6; }
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ALSA LDFLAGS" >&5
+$as_echo_n "checking for ALSA LDFLAGS... " >&6; }
+if test "$alsa_prefix" != "" ; then
+ ALSA_LIBS="$ALSA_LIBS -L$alsa_prefix"
+ LDFLAGS="$LDFLAGS $ALSA_LIBS"
+fi
+
+ALSA_LIBS="$ALSA_LIBS -lasound -lm -ldl"
+LIBS=`echo $LIBS | sed 's/-lm//'`
+LIBS=`echo $LIBS | sed 's/-ldl//'`
+LIBS=`echo $LIBS | sed 's/ //'`
+LIBS="$ALSA_LIBS $LIBS"
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ALSA_LIBS" >&5
+$as_echo "$ALSA_LIBS" >&6; }
+
+min_alsa_version=0.9.0
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for libasound headers version >= $min_alsa_version" >&5
+$as_echo_n "checking for libasound headers version >= $min_alsa_version... " >&6; }
+no_alsa=""
+ alsa_min_major_version=`echo $min_alsa_version | \
+ sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\1/'`
+ alsa_min_minor_version=`echo $min_alsa_version | \
+ sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\2/'`
+ alsa_min_micro_version=`echo $min_alsa_version | \
+ sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\3/'`
+
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <alsa/asoundlib.h>
+
+int
+main ()
+{
+
+void main(void)
+{
+/* ensure backward compatibility */
+#if !defined(SND_LIB_MAJOR) && defined(SOUNDLIB_VERSION_MAJOR)
+#define SND_LIB_MAJOR SOUNDLIB_VERSION_MAJOR
+#endif
+#if !defined(SND_LIB_MINOR) && defined(SOUNDLIB_VERSION_MINOR)
+#define SND_LIB_MINOR SOUNDLIB_VERSION_MINOR
+#endif
+#if !defined(SND_LIB_SUBMINOR) && defined(SOUNDLIB_VERSION_SUBMINOR)
+#define SND_LIB_SUBMINOR SOUNDLIB_VERSION_SUBMINOR
+#endif
+
+# if(SND_LIB_MAJOR > $alsa_min_major_version)
+ exit(0);
+# else
+# if(SND_LIB_MAJOR < $alsa_min_major_version)
+# error not present
+# endif
+
+# if(SND_LIB_MINOR > $alsa_min_minor_version)
+ exit(0);
+# else
+# if(SND_LIB_MINOR < $alsa_min_minor_version)
+# error not present
+# endif
+
+# if(SND_LIB_SUBMINOR < $alsa_min_micro_version)
+# error not present
+# endif
+# endif
+# endif
+exit(0);
+}
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: found." >&5
+$as_echo "found." >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not present." >&5
+$as_echo "not present." >&6; }
+
+ alsa_found=no
+
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+
+ac_ext=cpp
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for snd_seq_create_event in -lasound" >&5
+$as_echo_n "checking for snd_seq_create_event in -lasound... " >&6; }
+if test "${ac_cv_lib_asound_snd_seq_create_event+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lasound $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char snd_seq_create_event ();
+int
+main ()
+{
+return snd_seq_create_event ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_link "$LINENO"; then :
+ ac_cv_lib_asound_snd_seq_create_event=yes
+else
+ ac_cv_lib_asound_snd_seq_create_event=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_asound_snd_seq_create_event" >&5
+$as_echo "$ac_cv_lib_asound_snd_seq_create_event" >&6; }
+if test "x$ac_cv_lib_asound_snd_seq_create_event" = x""yes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_LIBASOUND 1
+_ACEOF
+
+ LIBS="-lasound $LIBS"
+
+else
+
+ alsa_found=no
+
+fi
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+if test "x$alsa_found" = "xyes" ; then
+ true
+ LIBS=`echo $LIBS | sed 's/-lasound//g'`
+ LIBS=`echo $LIBS | sed 's/ //'`
+ LIBS="-lasound $LIBS"
+fi
+if test "x$alsa_found" = "xno" ; then
+ as_fn_error "latest alsa (0.9.x) is required" "$LINENO" 5
+
+ CFLAGS="$alsa_save_CFLAGS"
+ LDFLAGS="$alsa_save_LDFLAGS"
+ LIBS="$alsa_save_LIBS"
+ ALSA_CFLAGS=""
+ ALSA_LIBS=""
+fi
+
+
+
+
+
+#################
+### fluidsynth ###
+#################
+LIBFLUIDSYNTH=
+muse_enable_fluidlib="yes"
+synth_fluidsynth="fluidsynth"
+synth_fluid="fluid"
+# Check whether --enable-fluidsynth was given.
+if test "${enable_fluidsynth+set}" = set; then :
+ enableval=$enable_fluidsynth;
+ case "$enableval" in
+ "yes")
+ synth_fluidsynth="fluidsynth"
+ synth_fluid="fluid"
+ ;;
+ "no")
+ muse_enable_fluidlib="no"
+ synth_fluidsynth=""
+ synth_fluid=""
+ ;;
+ *)
+ as_fn_error "must use --enable-fluidsynth(=yes/no) or --disable-fluidsynth" "$LINENO" 5
+ ;;
+ esac
+
+fi
+
+
+ if test "$muse_enable_fluidlib" = "yes"; then
+ ENABLEFLUIDSYNTH_TRUE=
+ ENABLEFLUIDSYNTH_FALSE='#'
+else
+ ENABLEFLUIDSYNTH_TRUE='#'
+ ENABLEFLUIDSYNTH_FALSE=
+fi
+
+
+
+if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
+set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_PKG_CONFIG+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $PKG_CONFIG in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+PKG_CONFIG=$ac_cv_path_PKG_CONFIG
+if test -n "$PKG_CONFIG"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5
+$as_echo "$PKG_CONFIG" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_path_PKG_CONFIG"; then
+ ac_pt_PKG_CONFIG=$PKG_CONFIG
+ # Extract the first word of "pkg-config", so it can be a program name with args.
+set dummy pkg-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $ac_pt_PKG_CONFIG in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
+if test -n "$ac_pt_PKG_CONFIG"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5
+$as_echo "$ac_pt_PKG_CONFIG" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_pt_PKG_CONFIG" = x; then
+ PKG_CONFIG=""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ PKG_CONFIG=$ac_pt_PKG_CONFIG
+ fi
+else
+ PKG_CONFIG="$ac_cv_path_PKG_CONFIG"
+fi
+
+fi
+if test -n "$PKG_CONFIG"; then
+ _pkg_min_version=0.9.0
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5
+$as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; }
+ if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ PKG_CONFIG=""
+ fi
+
+fi
+
+pkg_failed=no
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for Fluidsynth" >&5
+$as_echo_n "checking for Fluidsynth... " >&6; }
+
+if test -n "$PKG_CONFIG"; then
+ if test -n "$Fluidsynth_CFLAGS"; then
+ pkg_cv_Fluidsynth_CFLAGS="$Fluidsynth_CFLAGS"
+ else
+ if test -n "$PKG_CONFIG" && \
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"fluidsynth\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "fluidsynth") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ pkg_cv_Fluidsynth_CFLAGS=`$PKG_CONFIG --cflags "fluidsynth" 2>/dev/null`
+else
+ pkg_failed=yes
+fi
+ fi
+else
+ pkg_failed=untried
+fi
+if test -n "$PKG_CONFIG"; then
+ if test -n "$Fluidsynth_LIBS"; then
+ pkg_cv_Fluidsynth_LIBS="$Fluidsynth_LIBS"
+ else
+ if test -n "$PKG_CONFIG" && \
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"fluidsynth\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "fluidsynth") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ pkg_cv_Fluidsynth_LIBS=`$PKG_CONFIG --libs "fluidsynth" 2>/dev/null`
+else
+ pkg_failed=yes
+fi
+ fi
+else
+ pkg_failed=untried
+fi
+
+
+
+if test $pkg_failed = yes; then
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+ _pkg_short_errors_supported=yes
+else
+ _pkg_short_errors_supported=no
+fi
+ if test $_pkg_short_errors_supported = yes; then
+ Fluidsynth_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "fluidsynth"`
+ else
+ Fluidsynth_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "fluidsynth"`
+ fi
+ # Put the nasty error message in config.log where it belongs
+ echo "$Fluidsynth_PKG_ERRORS" >&5
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libfluidsynth not found; disabling fluidsynth plugins" >&5
+$as_echo "$as_me: WARNING: libfluidsynth not found; disabling fluidsynth plugins" >&2;} ;
+ muse_enable_fluidlib="no"
+
+elif test $pkg_failed = untried; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libfluidsynth not found; disabling fluidsynth plugins" >&5
+$as_echo "$as_me: WARNING: libfluidsynth not found; disabling fluidsynth plugins" >&2;} ;
+ muse_enable_fluidlib="no"
+
+else
+ Fluidsynth_CFLAGS=$pkg_cv_Fluidsynth_CFLAGS
+ Fluidsynth_LIBS=$pkg_cv_Fluidsynth_LIBS
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ FLUIDSYNTHDIRS="fluid fluidsynth";
+$as_echo "#define ENABLEFLUIDSYNTH 1" >>confdefs.h
+
+fi
+
+
+
+if test "$muse_enable_fluidlib" = "no"; then
+ synth_fluidsynth=""
+ synth_fluid=""
+fi
+
+
+###############
+### sndfile ###
+###############
+
+pkg_failed=no
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for SNDFILE" >&5
+$as_echo_n "checking for SNDFILE... " >&6; }
+
+if test -n "$PKG_CONFIG"; then
+ if test -n "$SNDFILE_CFLAGS"; then
+ pkg_cv_SNDFILE_CFLAGS="$SNDFILE_CFLAGS"
+ else
+ if test -n "$PKG_CONFIG" && \
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"sndfile >= 1.0.0\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "sndfile >= 1.0.0") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ pkg_cv_SNDFILE_CFLAGS=`$PKG_CONFIG --cflags "sndfile >= 1.0.0" 2>/dev/null`
+else
+ pkg_failed=yes
+fi
+ fi
+else
+ pkg_failed=untried
+fi
+if test -n "$PKG_CONFIG"; then
+ if test -n "$SNDFILE_LIBS"; then
+ pkg_cv_SNDFILE_LIBS="$SNDFILE_LIBS"
+ else
+ if test -n "$PKG_CONFIG" && \
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"sndfile >= 1.0.0\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "sndfile >= 1.0.0") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ pkg_cv_SNDFILE_LIBS=`$PKG_CONFIG --libs "sndfile >= 1.0.0" 2>/dev/null`
+else
+ pkg_failed=yes
+fi
+ fi
+else
+ pkg_failed=untried
+fi
+
+
+
+if test $pkg_failed = yes; then
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+ _pkg_short_errors_supported=yes
+else
+ _pkg_short_errors_supported=no
+fi
+ if test $_pkg_short_errors_supported = yes; then
+ SNDFILE_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "sndfile >= 1.0.0"`
+ else
+ SNDFILE_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "sndfile >= 1.0.0"`
+ fi
+ # Put the nasty error message in config.log where it belongs
+ echo "$SNDFILE_PKG_ERRORS" >&5
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ as_fn_error "need libsndfile >= 1.0.0" "$LINENO" 5
+
+elif test $pkg_failed = untried; then
+ as_fn_error "need libsndfile >= 1.0.0" "$LINENO" 5
+
+else
+ SNDFILE_CFLAGS=$pkg_cv_SNDFILE_CFLAGS
+ SNDFILE_LIBS=$pkg_cv_SNDFILE_LIBS
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ true
+fi
+
+###############
+### libsamplerate ###
+###############
+
+pkg_failed=no
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for SAMPLERATE" >&5
+$as_echo_n "checking for SAMPLERATE... " >&6; }
+
+if test -n "$PKG_CONFIG"; then
+ if test -n "$SAMPLERATE_CFLAGS"; then
+ pkg_cv_SAMPLERATE_CFLAGS="$SAMPLERATE_CFLAGS"
+ else
+ if test -n "$PKG_CONFIG" && \
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"samplerate >= 0.1.0\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "samplerate >= 0.1.0") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ pkg_cv_SAMPLERATE_CFLAGS=`$PKG_CONFIG --cflags "samplerate >= 0.1.0" 2>/dev/null`
+else
+ pkg_failed=yes
+fi
+ fi
+else
+ pkg_failed=untried
+fi
+if test -n "$PKG_CONFIG"; then
+ if test -n "$SAMPLERATE_LIBS"; then
+ pkg_cv_SAMPLERATE_LIBS="$SAMPLERATE_LIBS"
+ else
+ if test -n "$PKG_CONFIG" && \
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"samplerate >= 0.1.0\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "samplerate >= 0.1.0") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ pkg_cv_SAMPLERATE_LIBS=`$PKG_CONFIG --libs "samplerate >= 0.1.0" 2>/dev/null`
+else
+ pkg_failed=yes
+fi
+ fi
+else
+ pkg_failed=untried
+fi
+
+
+
+if test $pkg_failed = yes; then
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+ _pkg_short_errors_supported=yes
+else
+ _pkg_short_errors_supported=no
+fi
+ if test $_pkg_short_errors_supported = yes; then
+ SAMPLERATE_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "samplerate >= 0.1.0"`
+ else
+ SAMPLERATE_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "samplerate >= 0.1.0"`
+ fi
+ # Put the nasty error message in config.log where it belongs
+ echo "$SAMPLERATE_PKG_ERRORS" >&5
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ as_fn_error "need libsamplerate" "$LINENO" 5
+
+elif test $pkg_failed = untried; then
+ as_fn_error "need libsamplerate" "$LINENO" 5
+
+else
+ SAMPLERATE_CFLAGS=$pkg_cv_SAMPLERATE_CFLAGS
+ SAMPLERATE_LIBS=$pkg_cv_SAMPLERATE_LIBS
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ true
+fi
+
+###############
+### libuuid ###
+###############
+ac_fn_c_check_header_mongrel "$LINENO" "uuid/uuid.h" "ac_cv_header_uuid_uuid_h" "$ac_includes_default"
+if test "x$ac_cv_header_uuid_uuid_h" = x""yes; then :
+ UUID_FOUND="yes"
+else
+ UUID_FOUND="no"
+fi
+
+
+if test x$UUID_FOUND = xno; then
+ as_fn_error "Header file uuid.h, from the uuid-dev (sometimes in e2fsprogs) package, is required" "$LINENO" 5
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for uuid_generate in -luuid" >&5
+$as_echo_n "checking for uuid_generate in -luuid... " >&6; }
+if test "${ac_cv_lib_uuid_uuid_generate+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-luuid $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char uuid_generate ();
+int
+main ()
+{
+return uuid_generate ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_uuid_uuid_generate=yes
+else
+ ac_cv_lib_uuid_uuid_generate=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_uuid_uuid_generate" >&5
+$as_echo "$ac_cv_lib_uuid_uuid_generate" >&6; }
+if test "x$ac_cv_lib_uuid_uuid_generate" = x""yes; then :
+ UUID_FOUND="yes"
+else
+ UUID_FOUND="no"
+fi
+
+if test x$UUID_FOUND = xno; then
+ as_fn_error "libuuid (sometimes in e2fsprogs package) is required" "$LINENO" 5
+fi
+UUID_LIBS="-luuid"
+
+
+
+## PKG_CHECK_MODULES(UUID, uuid >= 1.0,
+## true,
+## AC_MSG_ERROR([need libuuid >= 1.0 from e2fsprogs package])
+## )
+
+############
+### JACK ###
+############
+
+
+pkg_failed=no
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for JACK" >&5
+$as_echo_n "checking for JACK... " >&6; }
+
+if test -n "$PKG_CONFIG"; then
+ if test -n "$JACK_CFLAGS"; then
+ pkg_cv_JACK_CFLAGS="$JACK_CFLAGS"
+ else
+ if test -n "$PKG_CONFIG" && \
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"jack >= 0.98.0\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "jack >= 0.98.0") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ pkg_cv_JACK_CFLAGS=`$PKG_CONFIG --cflags "jack >= 0.98.0" 2>/dev/null`
+else
+ pkg_failed=yes
+fi
+ fi
+else
+ pkg_failed=untried
+fi
+if test -n "$PKG_CONFIG"; then
+ if test -n "$JACK_LIBS"; then
+ pkg_cv_JACK_LIBS="$JACK_LIBS"
+ else
+ if test -n "$PKG_CONFIG" && \
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"jack >= 0.98.0\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "jack >= 0.98.0") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ pkg_cv_JACK_LIBS=`$PKG_CONFIG --libs "jack >= 0.98.0" 2>/dev/null`
+else
+ pkg_failed=yes
+fi
+ fi
+else
+ pkg_failed=untried
+fi
+
+
+
+if test $pkg_failed = yes; then
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+ _pkg_short_errors_supported=yes
+else
+ _pkg_short_errors_supported=no
+fi
+ if test $_pkg_short_errors_supported = yes; then
+ JACK_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "jack >= 0.98.0"`
+ else
+ JACK_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "jack >= 0.98.0"`
+ fi
+ # Put the nasty error message in config.log where it belongs
+ echo "$JACK_PKG_ERRORS" >&5
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ as_fn_error "need JACK >= 0.98.0" "$LINENO" 5
+
+elif test $pkg_failed = untried; then
+ as_fn_error "need JACK >= 0.98.0" "$LINENO" 5
+
+else
+ JACK_CFLAGS=$pkg_cv_JACK_CFLAGS
+ JACK_LIBS=$pkg_cv_JACK_LIBS
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ true
+fi
+
+##############
+### LASH ###
+##############
+muse_enable_lash="no"
+# Check whether --enable-lash was given.
+if test "${enable_lash+set}" = set; then :
+ enableval=$enable_lash;
+ case "$enableval" in
+ "yes")
+ muse_enable_lash="yes"
+ ;;
+ "no")
+ muse_enable_lash="no"
+ ;;
+ *)
+ as_fn_error "must use --enable-lash(=yes/no) or --disable-lash" "$LINENO" 5
+ ;;
+ esac
+
+fi
+
+
+if test "$muse_enable_lash" = "yes"; then
+
+pkg_failed=no
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for LASH" >&5
+$as_echo_n "checking for LASH... " >&6; }
+
+if test -n "$PKG_CONFIG"; then
+ if test -n "$LASH_CFLAGS"; then
+ pkg_cv_LASH_CFLAGS="$LASH_CFLAGS"
+ else
+ if test -n "$PKG_CONFIG" && \
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"lash-1.0 >= 0.2\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "lash-1.0 >= 0.2") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ pkg_cv_LASH_CFLAGS=`$PKG_CONFIG --cflags "lash-1.0 >= 0.2" 2>/dev/null`
+else
+ pkg_failed=yes
+fi
+ fi
+else
+ pkg_failed=untried
+fi
+if test -n "$PKG_CONFIG"; then
+ if test -n "$LASH_LIBS"; then
+ pkg_cv_LASH_LIBS="$LASH_LIBS"
+ else
+ if test -n "$PKG_CONFIG" && \
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"lash-1.0 >= 0.2\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "lash-1.0 >= 0.2") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ pkg_cv_LASH_LIBS=`$PKG_CONFIG --libs "lash-1.0 >= 0.2" 2>/dev/null`
+else
+ pkg_failed=yes
+fi
+ fi
+else
+ pkg_failed=untried
+fi
+
+
+
+if test $pkg_failed = yes; then
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+ _pkg_short_errors_supported=yes
+else
+ _pkg_short_errors_supported=no
+fi
+ if test $_pkg_short_errors_supported = yes; then
+ LASH_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "lash-1.0 >= 0.2"`
+ else
+ LASH_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "lash-1.0 >= 0.2"`
+ fi
+ # Put the nasty error message in config.log where it belongs
+ echo "$LASH_PKG_ERRORS" >&5
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ LASH_FOUND="no"
+elif test $pkg_failed = untried; then
+ LASH_FOUND="no"
+else
+ LASH_CFLAGS=$pkg_cv_LASH_CFLAGS
+ LASH_LIBS=$pkg_cv_LASH_LIBS
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ LASH_FOUND="yes"
+fi
+
+
+
+ if test "$LASH_FOUND" = "yes"; then
+
+$as_echo "#define HAVE_LASH 1" >>confdefs.h
+
+ LASH_VERSION=$( pkg-config --modversion lash-1.0 )
+
+cat >>confdefs.h <<_ACEOF
+#define LASH_VERSION "$LASH_VERSION"
+_ACEOF
+
+ fi
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: LASH support is disabled" >&5
+$as_echo "$as_me: WARNING: LASH support is disabled" >&2;}
+ LASH_FOUND="no"
+fi
+ if test "$LASH_FOUND" = "yes"; then
+ HAVE_LASH_TRUE=
+ HAVE_LASH_FALSE='#'
+else
+ HAVE_LASH_TRUE='#'
+ HAVE_LASH_FALSE=
+fi
+
+
+
+
+
+#################
+### givertcap ###
+#################
+
+GIVERTCAP=
+report_rtcap="no"
+# Check whether --enable-rtcap was given.
+if test "${enable_rtcap+set}" = set; then :
+ enableval=$enable_rtcap;
+ case "$enableval" in
+ "yes")
+
+$as_echo "#define RTCAP 1" >>confdefs.h
+
+ MUSECXXFLAGS="$MUSECXXFLAGS -DRTCAP"
+ GIVERTCAP="givertcap"
+
+ ac_fn_c_check_header_mongrel "$LINENO" "sys/capability.h" "ac_cv_header_sys_capability_h" "$ac_includes_default"
+if test "x$ac_cv_header_sys_capability_h" = x""yes; then :
+ report_rtcap="yes"
+else
+ as_fn_error "Missing sys/capability.h" "$LINENO" 5
+fi
+
+
+ ;;
+ "no")
+ ;;
+ *)
+ as_fn_error "must use --enable-rtcap(=yes/no) or --disable-rtcap" "$LINENO" 5
+ esac
+
+fi
+
+ if test "$report_rtcap" = "yes"; then
+ RTCAP_TRUE=
+ RTCAP_FALSE='#'
+else
+ RTCAP_TRUE='#'
+ RTCAP_FALSE=
+fi
+
+
+
+
+####################
+### suid-install ###
+####################
+
+SUIDINSTALL="no"
+# Check whether --enable-suid-install was given.
+if test "${enable_suid_install+set}" = set; then :
+ enableval=$enable_suid_install;
+ case "$enableval" in
+ "yes")
+ SUIDINSTALL="yes"
+ ;;
+ "no")
+ ;;
+ *)
+ as_fn_error "must use --enable-suid-install(=yes/no) or --disable-suid-install" "$LINENO" 5
+ ;;
+ esac
+
+fi
+
+
+
+##################
+### suid-build ###
+##################
+SUIDBUILD="no"
+# Check whether --enable-suid-build was given.
+if test "${enable_suid_build+set}" = set; then :
+ enableval=$enable_suid_build;
+ case "$enableval" in
+ "yes")
+ SUIDBUILD="yes"
+ ;;
+ "no")
+ SUIDBUILD="no"
+ ;;
+ *)
+ as_fn_error "must use --enable-suid-build(=yes/no) or --disable-suid-build" "$LINENO" 5
+ ;;
+ esac
+
+fi
+
+
+
+
+########################
+### doxygen-treeview ###
+########################
+DOXYGEN_TREEVIEW="YES"
+report_doxy_treeview="yes";
+# Check whether --enable-doxy-treeview was given.
+if test "${enable_doxy_treeview+set}" = set; then :
+ enableval=$enable_doxy_treeview;
+ case "$enableval" in
+ "yes")
+ ;;
+ "no")
+ DOXYGEN_TREEVIEW="NO"
+ report_doxy_treeview="no";
+ ;;
+ *)
+ as_fn_error "must use --enable-doxy-treeview(=yes/no) or --disable-doxy-treeview" "$LINENO" 5
+ ;;
+ esac
+
+fi
+
+
+
+################
+### patchbay ###
+################
+###PATCHBAY="no"
+###AC_SUBST(PATCHBAY)
+###AM_CONDITIONAL(PATCHBAY, test "$PATCHBAY" == "yes")
+
+## -DQT_NO_CAST_ASCII
+MUSECXXFLAGS="-g -fno-exceptions -Wall -W -D_GNU_SOURCE -D_REENTRANT \
+ -DQT_CLEAN_NAMESPACE -DQT_NO_COMPAT \
+ -I\$(top_srcdir) -I\$(top_srcdir)/muse/widgets \$(QT_CFLAGS)"
+
+#MUSEOPTCXXFLAGS="-O6 -fomit-frame-pointer -ffast-math -fstrength-reduce \
+#-funroll-loops"
+#MUSEOPTCXXFLAGS="-O2"
+MUSEOPTCXXFLAGS="-O3 -fomit-frame-pointer -ffast-math -fstrength-reduce -funroll-loops"
+
+# -fmove-all-movables
+
+################
+### optimize ###
+################
+report_optimise="no"
+# Check whether --enable-optimize was given.
+if test "${enable_optimize+set}" = set; then :
+ enableval=$enable_optimize;
+ case "$enableval" in
+ "yes")
+ report_optimise="yes"
+ CXXFLAGS="$( echo "$CXXFLAGS" | sed "s/-O. *//" )"
+ MUSECXXFLAGS="$MUSECXXFLAGS $MUSEOPTCXXFLAGS"
+ ;;
+ "no")
+ ;;
+ *)
+ as_fn_error "must use --enable-optimize(=yes/no) or --disable-optimize" "$LINENO" 5
+ ;;
+ esac
+
+fi
+
+
+#############
+### debug ###
+#############
+report_debug="no"
+# Check whether --enable-debug was given.
+if test "${enable_debug+set}" = set; then :
+ enableval=$enable_debug;
+ case "$enableval" in
+ "yes")
+ report_debug="yes"
+ CXXFLAGS=""
+ ;;
+ "no")
+ ;;
+ *)
+ as_fn_error "must use --enable-debug(=yes/no) or --disable-debug" "$LINENO" 5
+ ;;
+ esac
+
+fi
+
+
+###########################
+### PCH ###
+### precompiled headers ###
+###########################
+
+# Check whether --enable-pch was given.
+if test "${enable_pch+set}" = set; then :
+ enableval=$enable_pch;
+ case "$enableval" in
+ "yes")
+ MUSECXXFLAGS="$MUSECXXFLAGS -Winvalid-pch"
+ PCH="yes"
+
+
+$as_echo "#define PCH 1" >>confdefs.h
+
+ ;;
+ "no")
+ ;;
+ *)
+ as_fn_error "must use --enable-pch(=yes/no) or --disable-pch" "$LINENO" 5
+ ;;
+ esac
+
+fi
+
+ if test "$PCH" = "yes"; then
+ PCH_TRUE=
+ PCH_FALSE='#'
+else
+ PCH_TRUE='#'
+ PCH_FALSE=
+fi
+
+
+############
+### arch ###
+############
+
+report_march="none"
+# Check whether --enable-arch was given.
+if test "${enable_arch+set}" = set; then :
+ enableval=$enable_arch;
+ case "$enableval" in
+ "no")
+ ;;
+ *)
+ report_march="$enableval"
+ MUSECXXFLAGS="$MUSECXXFLAGS -mtune=$enableval -march=$enableval"
+ ;;
+ esac
+
+fi
+
+
+###########################
+### SSE ###
+### SSE optimizations ###
+###########################
+
+report_sse="no"
+# Check whether --enable-sse was given.
+if test "${enable_sse+set}" = set; then :
+ enableval=$enable_sse;
+ case "$enableval" in
+ "yes")
+ ## MUSECXXFLAGS="$MUSECXXFLAGS -Winvalid-pch"
+ report_sse="yes"
+ USE_SSE="yes"
+
+
+$as_echo "#define USE_SSE 1" >>confdefs.h
+
+ ;;
+ "no")
+ ;;
+ *)
+ as_fn_error "must use --enable-sse(=yes/no) or --disable-sse" "$LINENO" 5
+ ;;
+ esac
+
+fi
+
+ if test "$USE_SSE" = "yes"; then
+ USE_SSE_TRUE=
+ USE_SSE_FALSE='#'
+else
+ USE_SSE_TRUE='#'
+ USE_SSE_FALSE=
+fi
+
+
+##########
+# PYTHON #
+##########
+# python detection borrowed from libvirt (http://libvirt.org)
+
+# Check whether --with-python was given.
+if test "${with_python+set}" = set; then :
+ withval=$with_python;
+else
+ enable_python=yes
+fi
+
+
+PYTHON_VERSION=
+PYTHON_INCLUDES=
+if test "$enable_python" != "no" ; then
+ if test -x "$enable_python/bin/python"
+ then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Found python in $enable_python/bin/python" >&5
+$as_echo "$as_me: Found python in $enable_python/bin/python" >&6;}
+ PYTHON="$enable_python/bin/python"
+ enable_python=yes
+ else
+ if test -x "$enable_python"
+ then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Found python in $enable_python" >&5
+$as_echo "$as_me: Found python in $enable_python" >&6;}
+ PYTHON="$enable_python"
+ enable_python=yes
+ else
+ if test -x "$PYTHON"
+ then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Found python in environment PYTHON=$PYTHON" >&5
+$as_echo "$as_me: Found python in environment PYTHON=$PYTHON" >&6;}
+ enable_python=yes
+ fi
+ fi
+ fi
+
+ if test "$enable_python" == "yes" ; then
+
+
+
+
+ # Find any Python interpreter.
+ if test -z "$PYTHON"; then
+ for ac_prog in python python2 python3 python3.0 python2.5 python2.4 python2.3 python2.2 python2.1 python2.0
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_PYTHON+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $PYTHON in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_PYTHON="$PYTHON" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_path_PYTHON="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+PYTHON=$ac_cv_path_PYTHON
+if test -n "$PYTHON"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PYTHON" >&5
+$as_echo "$PYTHON" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$PYTHON" && break
+done
+test -n "$PYTHON" || PYTHON=":"
+
+ fi
+ am_display_PYTHON=python
+
+
+ if test "$PYTHON" = :; then
+ :
+ else
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $am_display_PYTHON version" >&5
+$as_echo_n "checking for $am_display_PYTHON version... " >&6; }
+if test "${am_cv_python_version+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ am_cv_python_version=`$PYTHON -c "import sys; sys.stdout.write(sys.version[:3])"`
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_python_version" >&5
+$as_echo "$am_cv_python_version" >&6; }
+ PYTHON_VERSION=$am_cv_python_version
+
+
+
+ PYTHON_PREFIX='${prefix}'
+
+ PYTHON_EXEC_PREFIX='${exec_prefix}'
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $am_display_PYTHON platform" >&5
+$as_echo_n "checking for $am_display_PYTHON platform... " >&6; }
+if test "${am_cv_python_platform+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ am_cv_python_platform=`$PYTHON -c "import sys; sys.stdout.write(sys.platform)"`
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_python_platform" >&5
+$as_echo "$am_cv_python_platform" >&6; }
+ PYTHON_PLATFORM=$am_cv_python_platform
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $am_display_PYTHON script directory" >&5
+$as_echo_n "checking for $am_display_PYTHON script directory... " >&6; }
+if test "${am_cv_python_pythondir+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "x$prefix" = xNONE
+ then
+ am_py_prefix=$ac_default_prefix
+ else
+ am_py_prefix=$prefix
+ fi
+ am_cv_python_pythondir=`$PYTHON -c "import sys; from distutils import sysconfig; sys.stdout.write(sysconfig.get_python_lib(0,0,prefix='$am_py_prefix'))" 2>/dev/null ||
+ echo "$PYTHON_PREFIX/lib/python$PYTHON_VERSION/site-packages"`
+ case $am_cv_python_pythondir in
+ $am_py_prefix*)
+ am__strip_prefix=`echo "$am_py_prefix" | sed 's|.|.|g'`
+ am_cv_python_pythondir=`echo "$am_cv_python_pythondir" | sed "s,^$am__strip_prefix,$PYTHON_PREFIX,"`
+ ;;
+ *)
+ case $am_py_prefix in
+ /usr|/System*) ;;
+ *)
+ am_cv_python_pythondir=$PYTHON_PREFIX/lib/python$PYTHON_VERSION/site-packages
+ ;;
+ esac
+ ;;
+ esac
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_python_pythondir" >&5
+$as_echo "$am_cv_python_pythondir" >&6; }
+ pythondir=$am_cv_python_pythondir
+
+
+
+ pkgpythondir=\${pythondir}/$PACKAGE
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $am_display_PYTHON extension module directory" >&5
+$as_echo_n "checking for $am_display_PYTHON extension module directory... " >&6; }
+if test "${am_cv_python_pyexecdir+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "x$exec_prefix" = xNONE
+ then
+ am_py_exec_prefix=$am_py_prefix
+ else
+ am_py_exec_prefix=$exec_prefix
+ fi
+ am_cv_python_pyexecdir=`$PYTHON -c "import sys; from distutils import sysconfig; sys.stdout.write(sysconfig.get_python_lib(1,0,prefix='$am_py_exec_prefix'))" 2>/dev/null ||
+ echo "$PYTHON_EXEC_PREFIX/lib/python$PYTHON_VERSION/site-packages"`
+ case $am_cv_python_pyexecdir in
+ $am_py_exec_prefix*)
+ am__strip_prefix=`echo "$am_py_exec_prefix" | sed 's|.|.|g'`
+ am_cv_python_pyexecdir=`echo "$am_cv_python_pyexecdir" | sed "s,^$am__strip_prefix,$PYTHON_EXEC_PREFIX,"`
+ ;;
+ *)
+ case $am_py_exec_prefix in
+ /usr|/System*) ;;
+ *)
+ am_cv_python_pyexecdir=$PYTHON_EXEC_PREFIX/lib/python$PYTHON_VERSION/site-packages
+ ;;
+ esac
+ ;;
+ esac
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_python_pyexecdir" >&5
+$as_echo "$am_cv_python_pyexecdir" >&6; }
+ pyexecdir=$am_cv_python_pyexecdir
+
+
+
+ pkgpyexecdir=\${pyexecdir}/$PACKAGE
+
+
+
+ fi
+
+
+
+ if test "$PYTHON" != : ; then
+ PYTHON_CONFIG="$PYTHON-config"
+
+ if test -x "$PYTHON_CONFIG"
+ then
+ PYTHON_INCLUDES=`$PYTHON_CONFIG --includes`
+ PYTHON_LIB=`$PYTHON_CONFIG --libs`
+ else
+ if test -r $PYTHON_EXEC_PREFIX/include/python$PYTHON_VERSION/Python.h
+ then
+ PYTHON_INCLUDES=-I$PYTHON_EXEC_PREFIX/include/python$PYTHON_VERSION
+ else
+ if test -r $prefix/include/python$PYTHON_VERSION/Python.h
+ then
+ PYTHON_INCLUDES=-I$prefix/include/python$PYTHON_VERSION
+ else
+ if test -r /usr/include/python$PYTHON_VERSION/Python.h
+ then
+ PYTHON_INCLUDES=-I/usr/include/python$PYTHON_VERSION
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Could not find python$PYTHON_VERSION/Python.h, disabling bindings" >&5
+$as_echo "$as_me: Could not find python$PYTHON_VERSION/Python.h, disabling bindings" >&6;}
+ enable_python=no
+ fi
+ fi
+ fi
+ fi
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Could not find python interpreter, disabling bindings" >&5
+$as_echo "$as_me: Could not find python interpreter, disabling bindings" >&6;}
+ enable_python=no
+ fi
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Could not find python in $enable_python, disabling bindings" >&5
+$as_echo "$as_me: Could not find python in $enable_python, disabling bindings" >&6;}
+ enable_python=no
+ fi
+fi
+ if test "$enable_python" = "yes"; then
+ ENABLE_PYTHON_TRUE=
+ ENABLE_PYTHON_FALSE='#'
+else
+ ENABLE_PYTHON_TRUE='#'
+ ENABLE_PYTHON_FALSE=
+fi
+
+
+
+
+
+#AC_ARG_ENABLE(python,
+#enable_python="yes"
+# [ --disable-python disable python bindings for MusE],[
+# case "$enableval" in
+# "no")
+# enable_python="no"
+# ;;
+# *)
+# AC_MSG_ERROR([must use --enable-python(=yes/no) or --disable-python])
+# ;;
+# esac
+# ])
+#
+#if test "$enable_python" = "yes"; then
+# AM_PATH_PYTHON
+# PYTHON_INCLUDE_DIR=""
+# if test -n "$PYTHON_INCLUDES" ; then
+# PYTHON_INCLUDE_DIR=$PYTHON_INCLUDES
+# python_bindings="yes"
+# else
+# python_bindings="no - devel pkg not found"
+# fi
+#fi
+#AM_CONDITIONAL(ENABLE_PYTHON, test "$python_bindings" = "yes")
+
+###################
+### vst plugins ###
+###################
+
+vst_possible=no
+VST="no"
+# Check whether --enable-vst was given.
+if test "${enable_vst+set}" = set; then :
+ enableval=$enable_vst; if test x$enable_vst = xyes ; then
+ vst_requested=yes;
+ fi
+
+
+fi
+
+
+if test x$vst_requested = xyes ; then
+
+pkg_failed=no
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for FST" >&5
+$as_echo_n "checking for FST... " >&6; }
+
+if test -n "$PKG_CONFIG"; then
+ if test -n "$FST_CFLAGS"; then
+ pkg_cv_FST_CFLAGS="$FST_CFLAGS"
+ else
+ if test -n "$PKG_CONFIG" && \
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libfst\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "libfst") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ pkg_cv_FST_CFLAGS=`$PKG_CONFIG --cflags "libfst" 2>/dev/null`
+else
+ pkg_failed=yes
+fi
+ fi
+else
+ pkg_failed=untried
+fi
+if test -n "$PKG_CONFIG"; then
+ if test -n "$FST_LIBS"; then
+ pkg_cv_FST_LIBS="$FST_LIBS"
+ else
+ if test -n "$PKG_CONFIG" && \
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libfst\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "libfst") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ pkg_cv_FST_LIBS=`$PKG_CONFIG --libs "libfst" 2>/dev/null`
+else
+ pkg_failed=yes
+fi
+ fi
+else
+ pkg_failed=untried
+fi
+
+
+
+if test $pkg_failed = yes; then
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+ _pkg_short_errors_supported=yes
+else
+ _pkg_short_errors_supported=no
+fi
+ if test $_pkg_short_errors_supported = yes; then
+ FST_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "libfst"`
+ else
+ FST_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "libfst"`
+ fi
+ # Put the nasty error message in config.log where it belongs
+ echo "$FST_PKG_ERRORS" >&5
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ vst_possible=no
+elif test $pkg_failed = untried; then
+ vst_possible=no
+else
+ FST_CFLAGS=$pkg_cv_FST_CFLAGS
+ FST_LIBS=$pkg_cv_FST_LIBS
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ vst_possible=yes
+fi
+fi
+
+if test x$vst_possible = xyes -a x$vst_requested = xyes ; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking support for VST/win plugins" >&5
+$as_echo_n "checking support for VST/win plugins... " >&6; }
+ VST_CFLAGS="$FST_CFLAGS"
+ VST_LIBS="$FST_LIBS"
+ VST="yes"
+
+$as_echo "#define VST_SUPPORT 1" >>confdefs.h
+
+fi
+
+ if test x$vst_possible = xyes -a x$vst_requested = xyes; then
+ VST_SUPPORT_TRUE=
+ VST_SUPPORT_FALSE='#'
+else
+ VST_SUPPORT_TRUE='#'
+ VST_SUPPORT_FALSE=
+fi
+
+
+
+###################
+### OSC support ###
+###################
+
+osc_requested=no
+LO_LIB_FOUND="no"
+OSC="no"
+# Check whether --enable-osc was given.
+if test "${enable_osc+set}" = set; then :
+ enableval=$enable_osc; if test x$enable_osc = xyes ; then
+ osc_requested=yes;
+ fi
+
+
+fi
+
+
+if test x$osc_requested = xyes ; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking support for OSC" >&5
+$as_echo_n "checking support for OSC... " >&6; }
+## AC_CHECK_LIB(lo, lo_send, LO_LIB_FOUND="yes", LO_LIB_FOUND="no")
+## PKG_CHECK_MODULES(LO, lo >= 0.2, LO_LIB_FOUND="yes", LO_LIB_FOUND="no")
+
+pkg_failed=no
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for LO" >&5
+$as_echo_n "checking for LO... " >&6; }
+
+if test -n "$PKG_CONFIG"; then
+ if test -n "$LO_CFLAGS"; then
+ pkg_cv_LO_CFLAGS="$LO_CFLAGS"
+ else
+ if test -n "$PKG_CONFIG" && \
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"liblo\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "liblo") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ pkg_cv_LO_CFLAGS=`$PKG_CONFIG --cflags "liblo" 2>/dev/null`
+else
+ pkg_failed=yes
+fi
+ fi
+else
+ pkg_failed=untried
+fi
+if test -n "$PKG_CONFIG"; then
+ if test -n "$LO_LIBS"; then
+ pkg_cv_LO_LIBS="$LO_LIBS"
+ else
+ if test -n "$PKG_CONFIG" && \
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"liblo\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "liblo") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ pkg_cv_LO_LIBS=`$PKG_CONFIG --libs "liblo" 2>/dev/null`
+else
+ pkg_failed=yes
+fi
+ fi
+else
+ pkg_failed=untried
+fi
+
+
+
+if test $pkg_failed = yes; then
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+ _pkg_short_errors_supported=yes
+else
+ _pkg_short_errors_supported=no
+fi
+ if test $_pkg_short_errors_supported = yes; then
+ LO_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "liblo"`
+ else
+ LO_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "liblo"`
+ fi
+ # Put the nasty error message in config.log where it belongs
+ echo "$LO_PKG_ERRORS" >&5
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ LO_LIB_FOUND=no
+elif test $pkg_failed = untried; then
+ LO_LIB_FOUND=no
+else
+ LO_CFLAGS=$pkg_cv_LO_CFLAGS
+ LO_LIBS=$pkg_cv_LO_LIBS
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ LO_LIB_FOUND=yes
+fi
+ if test x$LO_LIB_FOUND = xno; then
+ as_fn_error "Library liblo from The Lightweight OSC Implementation is required" "$LINENO" 5
+ fi
+fi
+
+if test x$LO_LIB_FOUND = xyes ; then
+ LO_CFLAGS="$LO_CFLAGS"
+ ##LO_LIBS="$LO_LIBS"
+ LO_LIBS="-llo"
+ OSC="yes"
+
+
+
+$as_echo "#define OSC_SUPPORT 1" >>confdefs.h
+
+fi
+
+ if test x$LO_LIB_FOUND = xyes; then
+ OSC_SUPPORT_TRUE=
+ OSC_SUPPORT_FALSE='#'
+else
+ OSC_SUPPORT_TRUE='#'
+ OSC_SUPPORT_FALSE=
+fi
+
+
+## LO_LIBS="-llo"
+## AC_SUBST(LO_CFLAGS)
+## AC_SUBST(LO_LIBS)
+
+## PKG_CHECK_MODULES(LO, lo >= 0.23,
+## true,
+## AC_MSG_ERROR([need liblo >= 0.23 ])
+## )
+
+
+
+###################
+### dssi plugins ###
+###################
+
+dssi_requested=no
+## LO_LIB_FOUND="no"
+DSSI_H_FOUND="no"
+DSSI="no"
+# Check whether --enable-dssi was given.
+if test "${enable_dssi+set}" = set; then :
+ enableval=$enable_dssi; if test x$enable_dssi = xyes ; then
+ dssi_requested=yes;
+ fi
+
+
+fi
+
+
+
+if test x$dssi_requested = xyes ; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking support for DSSI + DSSI-Vst plugins" >&5
+$as_echo_n "checking support for DSSI + DSSI-Vst plugins... " >&6; }
+ ## AC_CHECK_LIB(lo, lo_send, LO_LIB_FOUND="yes", LO_LIB_FOUND="no")
+ ## PKG_CHECK_MODULES(LO, lo >= 0.2, LO_LIB_FOUND="yes", LO_LIB_FOUND="no")
+## PKG_CHECK_MODULES(LO,liblo, [ LO_LIB_FOUND=yes ], [ LO_LIB_FOUND=no ])
+## if test x$LO_LIB_FOUND = xno; then
+## AC_MSG_ERROR([Library liblo from The Lightweight OSC Implementation is required])
+## fi
+
+ ac_fn_c_check_header_mongrel "$LINENO" "dssi.h" "ac_cv_header_dssi_h" "$ac_includes_default"
+if test "x$ac_cv_header_dssi_h" = x""yes; then :
+ DSSI_FOUND="yes"
+else
+ DSSI_FOUND="no"
+fi
+
+
+ ## PKG_CHECK_MODULES(DSSI [ DSSI_FOUND=yes ], [ DSSI_FOUND=no ])
+ if test x$DSSI_FOUND = xno; then
+ as_fn_error "Header file dssi.h from DSSI (Disposable Soft Synth Interface) is required" "$LINENO" 5
+ fi
+fi
+
+## if test x$LO_LIB_FOUND = xyes -a x$DSSI_FOUND = xyes ; then
+if test x$DSSI_FOUND = xyes ; then
+## LO_CFLAGS="$LO_CFLAGS"
+ ##LO_LIBS="$LO_LIBS"
+## LO_LIBS="-llo"
+ DSSI="yes"
+## AC_SUBST(LO_CFLAGS)
+## AC_SUBST(LO_LIBS)
+
+$as_echo "#define DSSI_SUPPORT 1" >>confdefs.h
+
+fi
+
+## AM_CONDITIONAL(DSSI_SUPPORT, test x$LO_LIB_FOUND = xyes -a x$DSSI_FOUND = xyes)
+ if test x$DSSI_FOUND = xyes; then
+ DSSI_SUPPORT_TRUE=
+ DSSI_SUPPORT_FALSE='#'
+else
+ DSSI_SUPPORT_TRUE='#'
+ DSSI_SUPPORT_FALSE=
+fi
+
+
+## LO_LIBS="-llo"
+## AC_SUBST(LO_CFLAGS)
+## AC_SUBST(LO_LIBS)
+
+## PKG_CHECK_MODULES(LO, lo >= 0.23,
+## true,
+## AC_MSG_ERROR([need liblo >= 0.23 ])
+## )
+
+
+
+
+######################################
+
+
+
+$as_echo "#define HAVE_AUDIO 1" >>confdefs.h
+
+ if test "yes" = "yes"; then
+ HAVE_AUDIO_TRUE=
+ HAVE_AUDIO_FALSE='#'
+else
+ HAVE_AUDIO_TRUE='#'
+ HAVE_AUDIO_FALSE=
+fi
+
+
+
+
+
+
+if test -n "$GIVERTCAP"; then
+ SUIDINSTALL="no"
+ SUIDBUILD="no"
+ fi
+
+
+ac_config_files="$ac_config_files Makefile m4/Makefile al/Makefile doc/Makefile xpm/Makefile demos/Makefile grepmidi/Makefile packaging/Makefile muse/Makefile muse/widgets/Makefile muse/master/Makefile muse/midiedit/Makefile muse/arranger/Makefile muse/liste/Makefile muse/driver/Makefile muse/waveedit/Makefile muse/ctrl/Makefile muse/instruments/Makefile muse/mixer/Makefile muse/cliplist/Makefile muse/marker/Makefile muse/mplugins/Makefile muse/remote/Makefile share/Makefile share/drummaps/Makefile share/html/Makefile share/locale/Makefile share/wallpapers/Makefile share/instruments/Makefile share/plugins/Makefile share/templates/Makefile share/pybridge/Makefile share/scripts/Makefile synti/Makefile synti/libsynti/Makefile synti/fluidsynth/Makefile synti/fluid/Makefile synti/organ/Makefile synti/s1/Makefile synti/vam/Makefile synti/deicsonze/Makefile synti/simpledrums/Makefile lib/Makefile lib/synthi/Makefile lib/plugins/Makefile plugins/Makefile plugins/freeverb/Makefile plugins/pandelay/Makefile plugins/doublechorus/Makefile Doxyfile utils/Makefile"
+
+cat >confcache <<\_ACEOF
+# This file is a shell script that caches the results of configure
+# tests run on this system so they can be shared between configure
+# scripts and configure runs, see configure's option --config-cache.
+# It is not useful on other systems. If it contains results you don't
+# want to keep, you may remove or edit it.
+#
+# config.status only pays attention to the cache file if you give it
+# the --recheck option to rerun configure.
+#
+# `ac_cv_env_foo' variables (set or unset) will be overridden when
+# loading this file, other *unset* `ac_cv_foo' will be assigned the
+# following values.
+
+_ACEOF
+
+# The following way of writing the cache mishandles newlines in values,
+# but we know of no workaround that is simple, portable, and efficient.
+# So, we kill variables containing newlines.
+# Ultrix sh set writes to stderr and can't be redirected directly,
+# and sets the high bit in the cache file unless we assign to the vars.
+(
+ for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do
+ eval ac_val=\$$ac_var
+ case $ac_val in #(
+ *${as_nl}*)
+ case $ac_var in #(
+ *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
+$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
+ esac
+ case $ac_var in #(
+ _ | IFS | as_nl) ;; #(
+ BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
+ *) { eval $ac_var=; unset $ac_var;} ;;
+ esac ;;
+ esac
+ done
+
+ (set) 2>&1 |
+ case $as_nl`(ac_space=' '; set) 2>&1` in #(
+ *${as_nl}ac_space=\ *)
+ # `set' does not quote correctly, so add quotes: double-quote
+ # substitution turns \\\\ into \\, and sed turns \\ into \.
+ sed -n \
+ "s/'/'\\\\''/g;
+ s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
+ ;; #(
+ *)
+ # `set' quotes correctly as required by POSIX, so do not add quotes.
+ sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
+ ;;
+ esac |
+ sort
+) |
+ sed '
+ /^ac_cv_env_/b end
+ t clear
+ :clear
+ s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
+ t end
+ s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
+ :end' >>confcache
+if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
+ if test -w "$cache_file"; then
+ test "x$cache_file" != "x/dev/null" &&
+ { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5
+$as_echo "$as_me: updating cache $cache_file" >&6;}
+ cat confcache >$cache_file
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5
+$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;}
+ fi
+fi
+rm -f confcache
+
+test "x$prefix" = xNONE && prefix=$ac_default_prefix
+# Let make expand exec_prefix.
+test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
+
+DEFS=-DHAVE_CONFIG_H
+
+ac_libobjs=
+ac_ltlibobjs=
+for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
+ # 1. Remove the extension, and $U if already installed.
+ ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
+ ac_i=`$as_echo "$ac_i" | sed "$ac_script"`
+ # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR
+ # will be set to the directory where LIBOBJS objects are built.
+ as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext"
+ as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo'
+done
+LIBOBJS=$ac_libobjs
+
+LTLIBOBJS=$ac_ltlibobjs
+
+
+ if test -n "$EXEEXT"; then
+ am__EXEEXT_TRUE=
+ am__EXEEXT_FALSE='#'
+else
+ am__EXEEXT_TRUE='#'
+ am__EXEEXT_FALSE=
+fi
+
+if test -z "${INSIDE_GNOME_COMMON_TRUE}" && test -z "${INSIDE_GNOME_COMMON_FALSE}"; then
+ as_fn_error "conditional \"INSIDE_GNOME_COMMON\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then
+ as_fn_error "conditional \"AMDEP\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then
+ as_fn_error "conditional \"am__fastdepCXX\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
+ as_fn_error "conditional \"am__fastdepCC\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then
+ as_fn_error "conditional \"am__fastdepCXX\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${ENABLEFLUIDSYNTH_TRUE}" && test -z "${ENABLEFLUIDSYNTH_FALSE}"; then
+ as_fn_error "conditional \"ENABLEFLUIDSYNTH\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${HAVE_LASH_TRUE}" && test -z "${HAVE_LASH_FALSE}"; then
+ as_fn_error "conditional \"HAVE_LASH\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${RTCAP_TRUE}" && test -z "${RTCAP_FALSE}"; then
+ as_fn_error "conditional \"RTCAP\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${PCH_TRUE}" && test -z "${PCH_FALSE}"; then
+ as_fn_error "conditional \"PCH\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${USE_SSE_TRUE}" && test -z "${USE_SSE_FALSE}"; then
+ as_fn_error "conditional \"USE_SSE\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${ENABLE_PYTHON_TRUE}" && test -z "${ENABLE_PYTHON_FALSE}"; then
+ as_fn_error "conditional \"ENABLE_PYTHON\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${VST_SUPPORT_TRUE}" && test -z "${VST_SUPPORT_FALSE}"; then
+ as_fn_error "conditional \"VST_SUPPORT\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${OSC_SUPPORT_TRUE}" && test -z "${OSC_SUPPORT_FALSE}"; then
+ as_fn_error "conditional \"OSC_SUPPORT\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${DSSI_SUPPORT_TRUE}" && test -z "${DSSI_SUPPORT_FALSE}"; then
+ as_fn_error "conditional \"DSSI_SUPPORT\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${HAVE_AUDIO_TRUE}" && test -z "${HAVE_AUDIO_FALSE}"; then
+ as_fn_error "conditional \"HAVE_AUDIO\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+
+: ${CONFIG_STATUS=./config.status}
+ac_write_fail=0
+ac_clean_files_save=$ac_clean_files
+ac_clean_files="$ac_clean_files $CONFIG_STATUS"
+{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5
+$as_echo "$as_me: creating $CONFIG_STATUS" >&6;}
+as_write_fail=0
+cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1
+#! $SHELL
+# Generated by $as_me.
+# Run this file to recreate the current configuration.
+# Compiler output produced by configure, useful for debugging
+# configure, is in config.log if it exists.
+
+debug=false
+ac_cs_recheck=false
+ac_cs_silent=false
+
+SHELL=\${CONFIG_SHELL-$SHELL}
+export SHELL
+_ASEOF
+cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1
+## -------------------- ##
+## M4sh Initialization. ##
+## -------------------- ##
+
+# Be more Bourne compatible
+DUALCASE=1; export DUALCASE # for MKS sh
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
+ emulate sh
+ NULLCMD=:
+ # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
+ # is contrary to our usage. Disable this feature.
+ alias -g '${1+"$@"}'='"$@"'
+ setopt NO_GLOB_SUBST
+else
+ case `(set -o) 2>/dev/null` in #(
+ *posix*) :
+ set -o posix ;; #(
+ *) :
+ ;;
+esac
+fi
+
+
+as_nl='
+'
+export as_nl
+# Printing a long string crashes Solaris 7 /usr/bin/printf.
+as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
+# Prefer a ksh shell builtin over an external printf program on Solaris,
+# but without wasting forks for bash or zsh.
+if test -z "$BASH_VERSION$ZSH_VERSION" \
+ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
+ as_echo='print -r --'
+ as_echo_n='print -rn --'
+elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
+ as_echo='printf %s\n'
+ as_echo_n='printf %s'
+else
+ if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
+ as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
+ as_echo_n='/usr/ucb/echo -n'
+ else
+ as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
+ as_echo_n_body='eval
+ arg=$1;
+ case $arg in #(
+ *"$as_nl"*)
+ expr "X$arg" : "X\\(.*\\)$as_nl";
+ arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
+ esac;
+ expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
+ '
+ export as_echo_n_body
+ as_echo_n='sh -c $as_echo_n_body as_echo'
+ fi
+ export as_echo_body
+ as_echo='sh -c $as_echo_body as_echo'
+fi
+
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+ PATH_SEPARATOR=:
+ (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
+ (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
+ PATH_SEPARATOR=';'
+ }
+fi
+
+
+# IFS
+# We need space, tab and new line, in precisely that order. Quoting is
+# there to prevent editors from complaining about space-tab.
+# (If _AS_PATH_WALK were called with IFS unset, it would disable word
+# splitting by setting IFS to empty value.)
+IFS=" "" $as_nl"
+
+# Find who we are. Look in the path if we contain no directory separator.
+case $0 in #((
+ *[\\/]* ) as_myself=$0 ;;
+ *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+# We did not find ourselves, most probably we were run as `sh COMMAND'
+# in which case we are not to be found in the path.
+if test "x$as_myself" = x; then
+ as_myself=$0
+fi
+if test ! -f "$as_myself"; then
+ $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
+ exit 1
+fi
+
+# Unset variables that we do not need and which cause bugs (e.g. in
+# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1"
+# suppresses any "Segmentation fault" message there. '((' could
+# trigger a bug in pdksh 5.2.14.
+for as_var in BASH_ENV ENV MAIL MAILPATH
+do eval test x\${$as_var+set} = xset \
+ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
+done
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# NLS nuisances.
+LC_ALL=C
+export LC_ALL
+LANGUAGE=C
+export LANGUAGE
+
+# CDPATH.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+
+# as_fn_error ERROR [LINENO LOG_FD]
+# ---------------------------------
+# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
+# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
+# script with status $?, using 1 if that was 0.
+as_fn_error ()
+{
+ as_status=$?; test $as_status -eq 0 && as_status=1
+ if test "$3"; then
+ as_lineno=${as_lineno-"$2"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ $as_echo "$as_me:${as_lineno-$LINENO}: error: $1" >&$3
+ fi
+ $as_echo "$as_me: error: $1" >&2
+ as_fn_exit $as_status
+} # as_fn_error
+
+
+# as_fn_set_status STATUS
+# -----------------------
+# Set $? to STATUS, without forking.
+as_fn_set_status ()
+{
+ return $1
+} # as_fn_set_status
+
+# as_fn_exit STATUS
+# -----------------
+# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
+as_fn_exit ()
+{
+ set +e
+ as_fn_set_status $1
+ exit $1
+} # as_fn_exit
+
+# as_fn_unset VAR
+# ---------------
+# Portably unset VAR.
+as_fn_unset ()
+{
+ { eval $1=; unset $1;}
+}
+as_unset=as_fn_unset
+# as_fn_append VAR VALUE
+# ----------------------
+# Append the text in VALUE to the end of the definition contained in VAR. Take
+# advantage of any shell optimizations that allow amortized linear growth over
+# repeated appends, instead of the typical quadratic growth present in naive
+# implementations.
+if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
+ eval 'as_fn_append ()
+ {
+ eval $1+=\$2
+ }'
+else
+ as_fn_append ()
+ {
+ eval $1=\$$1\$2
+ }
+fi # as_fn_append
+
+# as_fn_arith ARG...
+# ------------------
+# Perform arithmetic evaluation on the ARGs, and store the result in the
+# global $as_val. Take advantage of shells that can avoid forks. The arguments
+# must be portable across $(()) and expr.
+if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
+ eval 'as_fn_arith ()
+ {
+ as_val=$(( $* ))
+ }'
+else
+ as_fn_arith ()
+ {
+ as_val=`expr "$@" || test $? -eq 1`
+ }
+fi # as_fn_arith
+
+
+if expr a : '\(a\)' >/dev/null 2>&1 &&
+ test "X`expr 00001 : '.*\(...\)'`" = X001; then
+ as_expr=expr
+else
+ as_expr=false
+fi
+
+if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
+ as_basename=basename
+else
+ as_basename=false
+fi
+
+if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
+ as_dirname=dirname
+else
+ as_dirname=false
+fi
+
+as_me=`$as_basename -- "$0" ||
+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+ X"$0" : 'X\(//\)$' \| \
+ X"$0" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X/"$0" |
+ sed '/^.*\/\([^/][^/]*\)\/*$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits
+
+ECHO_C= ECHO_N= ECHO_T=
+case `echo -n x` in #(((((
+-n*)
+ case `echo 'xy\c'` in
+ *c*) ECHO_T=' ';; # ECHO_T is single tab character.
+ xy) ECHO_C='\c';;
+ *) echo `echo ksh88 bug on AIX 6.1` > /dev/null
+ ECHO_T=' ';;
+ esac;;
+*)
+ ECHO_N='-n';;
+esac
+
+rm -f conf$$ conf$$.exe conf$$.file
+if test -d conf$$.dir; then
+ rm -f conf$$.dir/conf$$.file
+else
+ rm -f conf$$.dir
+ mkdir conf$$.dir 2>/dev/null
+fi
+if (echo >conf$$.file) 2>/dev/null; then
+ if ln -s conf$$.file conf$$ 2>/dev/null; then
+ as_ln_s='ln -s'
+ # ... but there are two gotchas:
+ # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
+ # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
+ # In both cases, we have to default to `cp -p'.
+ ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
+ as_ln_s='cp -p'
+ elif ln conf$$.file conf$$ 2>/dev/null; then
+ as_ln_s=ln
+ else
+ as_ln_s='cp -p'
+ fi
+else
+ as_ln_s='cp -p'
+fi
+rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
+rmdir conf$$.dir 2>/dev/null
+
+
+# as_fn_mkdir_p
+# -------------
+# Create "$as_dir" as a directory, including parents if necessary.
+as_fn_mkdir_p ()
+{
+
+ case $as_dir in #(
+ -*) as_dir=./$as_dir;;
+ esac
+ test -d "$as_dir" || eval $as_mkdir_p || {
+ as_dirs=
+ while :; do
+ case $as_dir in #(
+ *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
+ *) as_qdir=$as_dir;;
+ esac
+ as_dirs="'$as_qdir' $as_dirs"
+ as_dir=`$as_dirname -- "$as_dir" ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$as_dir" : 'X\(//\)[^/]' \| \
+ X"$as_dir" : 'X\(//\)$' \| \
+ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$as_dir" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ test -d "$as_dir" && break
+ done
+ test -z "$as_dirs" || eval "mkdir $as_dirs"
+ } || test -d "$as_dir" || as_fn_error "cannot create directory $as_dir"
+
+
+} # as_fn_mkdir_p
+if mkdir -p . 2>/dev/null; then
+ as_mkdir_p='mkdir -p "$as_dir"'
+else
+ test -d ./-p && rmdir ./-p
+ as_mkdir_p=false
+fi
+
+if test -x / >/dev/null 2>&1; then
+ as_test_x='test -x'
+else
+ if ls -dL / >/dev/null 2>&1; then
+ as_ls_L_option=L
+ else
+ as_ls_L_option=
+ fi
+ as_test_x='
+ eval sh -c '\''
+ if test -d "$1"; then
+ test -d "$1/.";
+ else
+ case $1 in #(
+ -*)set "./$1";;
+ esac;
+ case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #((
+ ???[sx]*):;;*)false;;esac;fi
+ '\'' sh
+ '
+fi
+as_executable_p=$as_test_x
+
+# Sed expression to map a string onto a valid CPP name.
+as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
+
+# Sed expression to map a string onto a valid variable name.
+as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
+
+
+exec 6>&1
+## ----------------------------------- ##
+## Main body of $CONFIG_STATUS script. ##
+## ----------------------------------- ##
+_ASEOF
+test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+# Save the log message, to keep $0 and so on meaningful, and to
+# report actual input values of CONFIG_FILES etc. instead of their
+# values after options handling.
+ac_log="
+This file was extended by MusE $as_me 1.1, which was
+generated by GNU Autoconf 2.65. Invocation command line was
+
+ CONFIG_FILES = $CONFIG_FILES
+ CONFIG_HEADERS = $CONFIG_HEADERS
+ CONFIG_LINKS = $CONFIG_LINKS
+ CONFIG_COMMANDS = $CONFIG_COMMANDS
+ $ $0 $@
+
+on `(hostname || uname -n) 2>/dev/null | sed 1q`
+"
+
+_ACEOF
+
+case $ac_config_files in *"
+"*) set x $ac_config_files; shift; ac_config_files=$*;;
+esac
+
+case $ac_config_headers in *"
+"*) set x $ac_config_headers; shift; ac_config_headers=$*;;
+esac
+
+
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+# Files that config.status was made for.
+config_files="$ac_config_files"
+config_headers="$ac_config_headers"
+config_commands="$ac_config_commands"
+
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+ac_cs_usage="\
+\`$as_me' instantiates files and other configuration actions
+from templates according to the current configuration. Unless the files
+and actions are specified as TAGs, all are instantiated by default.
+
+Usage: $0 [OPTION]... [TAG]...
+
+ -h, --help print this help, then exit
+ -V, --version print version number and configuration settings, then exit
+ --config print configuration, then exit
+ -q, --quiet, --silent
+ do not print progress messages
+ -d, --debug don't remove temporary files
+ --recheck update $as_me by reconfiguring in the same conditions
+ --file=FILE[:TEMPLATE]
+ instantiate the configuration file FILE
+ --header=FILE[:TEMPLATE]
+ instantiate the configuration header FILE
+
+Configuration files:
+$config_files
+
+Configuration headers:
+$config_headers
+
+Configuration commands:
+$config_commands
+
+Report bugs to the package provider."
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
+ac_cs_version="\\
+MusE config.status 1.1
+configured by $0, generated by GNU Autoconf 2.65,
+ with options \\"\$ac_cs_config\\"
+
+Copyright (C) 2009 Free Software Foundation, Inc.
+This config.status script is free software; the Free Software Foundation
+gives unlimited permission to copy, distribute and modify it."
+
+ac_pwd='$ac_pwd'
+srcdir='$srcdir'
+INSTALL='$INSTALL'
+MKDIR_P='$MKDIR_P'
+AWK='$AWK'
+test -n "\$AWK" || AWK=awk
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+# The default lists apply if the user does not specify any file.
+ac_need_defaults=:
+while test $# != 0
+do
+ case $1 in
+ --*=*)
+ ac_option=`expr "X$1" : 'X\([^=]*\)='`
+ ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'`
+ ac_shift=:
+ ;;
+ *)
+ ac_option=$1
+ ac_optarg=$2
+ ac_shift=shift
+ ;;
+ esac
+
+ case $ac_option in
+ # Handling of the options.
+ -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
+ ac_cs_recheck=: ;;
+ --version | --versio | --versi | --vers | --ver | --ve | --v | -V )
+ $as_echo "$ac_cs_version"; exit ;;
+ --config | --confi | --conf | --con | --co | --c )
+ $as_echo "$ac_cs_config"; exit ;;
+ --debug | --debu | --deb | --de | --d | -d )
+ debug=: ;;
+ --file | --fil | --fi | --f )
+ $ac_shift
+ case $ac_optarg in
+ *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
+ esac
+ as_fn_append CONFIG_FILES " '$ac_optarg'"
+ ac_need_defaults=false;;
+ --header | --heade | --head | --hea )
+ $ac_shift
+ case $ac_optarg in
+ *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
+ esac
+ as_fn_append CONFIG_HEADERS " '$ac_optarg'"
+ ac_need_defaults=false;;
+ --he | --h)
+ # Conflict between --help and --header
+ as_fn_error "ambiguous option: \`$1'
+Try \`$0 --help' for more information.";;
+ --help | --hel | -h )
+ $as_echo "$ac_cs_usage"; exit ;;
+ -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+ | -silent | --silent | --silen | --sile | --sil | --si | --s)
+ ac_cs_silent=: ;;
+
+ # This is an error.
+ -*) as_fn_error "unrecognized option: \`$1'
+Try \`$0 --help' for more information." ;;
+
+ *) as_fn_append ac_config_targets " $1"
+ ac_need_defaults=false ;;
+
+ esac
+ shift
+done
+
+ac_configure_extra_args=
+
+if $ac_cs_silent; then
+ exec 6>/dev/null
+ ac_configure_extra_args="$ac_configure_extra_args --silent"
+fi
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+if \$ac_cs_recheck; then
+ set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
+ shift
+ \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6
+ CONFIG_SHELL='$SHELL'
+ export CONFIG_SHELL
+ exec "\$@"
+fi
+
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+exec 5>>config.log
+{
+ echo
+ sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
+## Running $as_me. ##
+_ASBOX
+ $as_echo "$ac_log"
+} >&5
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+#
+# INIT-COMMANDS
+#
+AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"
+
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+sed_quote_subst='$sed_quote_subst'
+double_quote_subst='$double_quote_subst'
+delay_variable_subst='$delay_variable_subst'
+macro_version='`$ECHO "X$macro_version" | $Xsed -e "$delay_single_quote_subst"`'
+macro_revision='`$ECHO "X$macro_revision" | $Xsed -e "$delay_single_quote_subst"`'
+enable_shared='`$ECHO "X$enable_shared" | $Xsed -e "$delay_single_quote_subst"`'
+enable_static='`$ECHO "X$enable_static" | $Xsed -e "$delay_single_quote_subst"`'
+pic_mode='`$ECHO "X$pic_mode" | $Xsed -e "$delay_single_quote_subst"`'
+enable_fast_install='`$ECHO "X$enable_fast_install" | $Xsed -e "$delay_single_quote_subst"`'
+host_alias='`$ECHO "X$host_alias" | $Xsed -e "$delay_single_quote_subst"`'
+host='`$ECHO "X$host" | $Xsed -e "$delay_single_quote_subst"`'
+host_os='`$ECHO "X$host_os" | $Xsed -e "$delay_single_quote_subst"`'
+build_alias='`$ECHO "X$build_alias" | $Xsed -e "$delay_single_quote_subst"`'
+build='`$ECHO "X$build" | $Xsed -e "$delay_single_quote_subst"`'
+build_os='`$ECHO "X$build_os" | $Xsed -e "$delay_single_quote_subst"`'
+SED='`$ECHO "X$SED" | $Xsed -e "$delay_single_quote_subst"`'
+Xsed='`$ECHO "X$Xsed" | $Xsed -e "$delay_single_quote_subst"`'
+GREP='`$ECHO "X$GREP" | $Xsed -e "$delay_single_quote_subst"`'
+EGREP='`$ECHO "X$EGREP" | $Xsed -e "$delay_single_quote_subst"`'
+FGREP='`$ECHO "X$FGREP" | $Xsed -e "$delay_single_quote_subst"`'
+LD='`$ECHO "X$LD" | $Xsed -e "$delay_single_quote_subst"`'
+NM='`$ECHO "X$NM" | $Xsed -e "$delay_single_quote_subst"`'
+LN_S='`$ECHO "X$LN_S" | $Xsed -e "$delay_single_quote_subst"`'
+max_cmd_len='`$ECHO "X$max_cmd_len" | $Xsed -e "$delay_single_quote_subst"`'
+ac_objext='`$ECHO "X$ac_objext" | $Xsed -e "$delay_single_quote_subst"`'
+exeext='`$ECHO "X$exeext" | $Xsed -e "$delay_single_quote_subst"`'
+lt_unset='`$ECHO "X$lt_unset" | $Xsed -e "$delay_single_quote_subst"`'
+lt_SP2NL='`$ECHO "X$lt_SP2NL" | $Xsed -e "$delay_single_quote_subst"`'
+lt_NL2SP='`$ECHO "X$lt_NL2SP" | $Xsed -e "$delay_single_quote_subst"`'
+reload_flag='`$ECHO "X$reload_flag" | $Xsed -e "$delay_single_quote_subst"`'
+reload_cmds='`$ECHO "X$reload_cmds" | $Xsed -e "$delay_single_quote_subst"`'
+OBJDUMP='`$ECHO "X$OBJDUMP" | $Xsed -e "$delay_single_quote_subst"`'
+deplibs_check_method='`$ECHO "X$deplibs_check_method" | $Xsed -e "$delay_single_quote_subst"`'
+file_magic_cmd='`$ECHO "X$file_magic_cmd" | $Xsed -e "$delay_single_quote_subst"`'
+AR='`$ECHO "X$AR" | $Xsed -e "$delay_single_quote_subst"`'
+AR_FLAGS='`$ECHO "X$AR_FLAGS" | $Xsed -e "$delay_single_quote_subst"`'
+STRIP='`$ECHO "X$STRIP" | $Xsed -e "$delay_single_quote_subst"`'
+RANLIB='`$ECHO "X$RANLIB" | $Xsed -e "$delay_single_quote_subst"`'
+old_postinstall_cmds='`$ECHO "X$old_postinstall_cmds" | $Xsed -e "$delay_single_quote_subst"`'
+old_postuninstall_cmds='`$ECHO "X$old_postuninstall_cmds" | $Xsed -e "$delay_single_quote_subst"`'
+old_archive_cmds='`$ECHO "X$old_archive_cmds" | $Xsed -e "$delay_single_quote_subst"`'
+CC='`$ECHO "X$CC" | $Xsed -e "$delay_single_quote_subst"`'
+CFLAGS='`$ECHO "X$CFLAGS" | $Xsed -e "$delay_single_quote_subst"`'
+compiler='`$ECHO "X$compiler" | $Xsed -e "$delay_single_quote_subst"`'
+GCC='`$ECHO "X$GCC" | $Xsed -e "$delay_single_quote_subst"`'
+lt_cv_sys_global_symbol_pipe='`$ECHO "X$lt_cv_sys_global_symbol_pipe" | $Xsed -e "$delay_single_quote_subst"`'
+lt_cv_sys_global_symbol_to_cdecl='`$ECHO "X$lt_cv_sys_global_symbol_to_cdecl" | $Xsed -e "$delay_single_quote_subst"`'
+lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "X$lt_cv_sys_global_symbol_to_c_name_address" | $Xsed -e "$delay_single_quote_subst"`'
+lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "X$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $Xsed -e "$delay_single_quote_subst"`'
+objdir='`$ECHO "X$objdir" | $Xsed -e "$delay_single_quote_subst"`'
+SHELL='`$ECHO "X$SHELL" | $Xsed -e "$delay_single_quote_subst"`'
+ECHO='`$ECHO "X$ECHO" | $Xsed -e "$delay_single_quote_subst"`'
+MAGIC_CMD='`$ECHO "X$MAGIC_CMD" | $Xsed -e "$delay_single_quote_subst"`'
+lt_prog_compiler_no_builtin_flag='`$ECHO "X$lt_prog_compiler_no_builtin_flag" | $Xsed -e "$delay_single_quote_subst"`'
+lt_prog_compiler_wl='`$ECHO "X$lt_prog_compiler_wl" | $Xsed -e "$delay_single_quote_subst"`'
+lt_prog_compiler_pic='`$ECHO "X$lt_prog_compiler_pic" | $Xsed -e "$delay_single_quote_subst"`'
+lt_prog_compiler_static='`$ECHO "X$lt_prog_compiler_static" | $Xsed -e "$delay_single_quote_subst"`'
+lt_cv_prog_compiler_c_o='`$ECHO "X$lt_cv_prog_compiler_c_o" | $Xsed -e "$delay_single_quote_subst"`'
+need_locks='`$ECHO "X$need_locks" | $Xsed -e "$delay_single_quote_subst"`'
+DSYMUTIL='`$ECHO "X$DSYMUTIL" | $Xsed -e "$delay_single_quote_subst"`'
+NMEDIT='`$ECHO "X$NMEDIT" | $Xsed -e "$delay_single_quote_subst"`'
+LIPO='`$ECHO "X$LIPO" | $Xsed -e "$delay_single_quote_subst"`'
+OTOOL='`$ECHO "X$OTOOL" | $Xsed -e "$delay_single_quote_subst"`'
+OTOOL64='`$ECHO "X$OTOOL64" | $Xsed -e "$delay_single_quote_subst"`'
+libext='`$ECHO "X$libext" | $Xsed -e "$delay_single_quote_subst"`'
+shrext_cmds='`$ECHO "X$shrext_cmds" | $Xsed -e "$delay_single_quote_subst"`'
+extract_expsyms_cmds='`$ECHO "X$extract_expsyms_cmds" | $Xsed -e "$delay_single_quote_subst"`'
+archive_cmds_need_lc='`$ECHO "X$archive_cmds_need_lc" | $Xsed -e "$delay_single_quote_subst"`'
+enable_shared_with_static_runtimes='`$ECHO "X$enable_shared_with_static_runtimes" | $Xsed -e "$delay_single_quote_subst"`'
+export_dynamic_flag_spec='`$ECHO "X$export_dynamic_flag_spec" | $Xsed -e "$delay_single_quote_subst"`'
+whole_archive_flag_spec='`$ECHO "X$whole_archive_flag_spec" | $Xsed -e "$delay_single_quote_subst"`'
+compiler_needs_object='`$ECHO "X$compiler_needs_object" | $Xsed -e "$delay_single_quote_subst"`'
+old_archive_from_new_cmds='`$ECHO "X$old_archive_from_new_cmds" | $Xsed -e "$delay_single_quote_subst"`'
+old_archive_from_expsyms_cmds='`$ECHO "X$old_archive_from_expsyms_cmds" | $Xsed -e "$delay_single_quote_subst"`'
+archive_cmds='`$ECHO "X$archive_cmds" | $Xsed -e "$delay_single_quote_subst"`'
+archive_expsym_cmds='`$ECHO "X$archive_expsym_cmds" | $Xsed -e "$delay_single_quote_subst"`'
+module_cmds='`$ECHO "X$module_cmds" | $Xsed -e "$delay_single_quote_subst"`'
+module_expsym_cmds='`$ECHO "X$module_expsym_cmds" | $Xsed -e "$delay_single_quote_subst"`'
+with_gnu_ld='`$ECHO "X$with_gnu_ld" | $Xsed -e "$delay_single_quote_subst"`'
+allow_undefined_flag='`$ECHO "X$allow_undefined_flag" | $Xsed -e "$delay_single_quote_subst"`'
+no_undefined_flag='`$ECHO "X$no_undefined_flag" | $Xsed -e "$delay_single_quote_subst"`'
+hardcode_libdir_flag_spec='`$ECHO "X$hardcode_libdir_flag_spec" | $Xsed -e "$delay_single_quote_subst"`'
+hardcode_libdir_flag_spec_ld='`$ECHO "X$hardcode_libdir_flag_spec_ld" | $Xsed -e "$delay_single_quote_subst"`'
+hardcode_libdir_separator='`$ECHO "X$hardcode_libdir_separator" | $Xsed -e "$delay_single_quote_subst"`'
+hardcode_direct='`$ECHO "X$hardcode_direct" | $Xsed -e "$delay_single_quote_subst"`'
+hardcode_direct_absolute='`$ECHO "X$hardcode_direct_absolute" | $Xsed -e "$delay_single_quote_subst"`'
+hardcode_minus_L='`$ECHO "X$hardcode_minus_L" | $Xsed -e "$delay_single_quote_subst"`'
+hardcode_shlibpath_var='`$ECHO "X$hardcode_shlibpath_var" | $Xsed -e "$delay_single_quote_subst"`'
+hardcode_automatic='`$ECHO "X$hardcode_automatic" | $Xsed -e "$delay_single_quote_subst"`'
+inherit_rpath='`$ECHO "X$inherit_rpath" | $Xsed -e "$delay_single_quote_subst"`'
+link_all_deplibs='`$ECHO "X$link_all_deplibs" | $Xsed -e "$delay_single_quote_subst"`'
+fix_srcfile_path='`$ECHO "X$fix_srcfile_path" | $Xsed -e "$delay_single_quote_subst"`'
+always_export_symbols='`$ECHO "X$always_export_symbols" | $Xsed -e "$delay_single_quote_subst"`'
+export_symbols_cmds='`$ECHO "X$export_symbols_cmds" | $Xsed -e "$delay_single_quote_subst"`'
+exclude_expsyms='`$ECHO "X$exclude_expsyms" | $Xsed -e "$delay_single_quote_subst"`'
+include_expsyms='`$ECHO "X$include_expsyms" | $Xsed -e "$delay_single_quote_subst"`'
+prelink_cmds='`$ECHO "X$prelink_cmds" | $Xsed -e "$delay_single_quote_subst"`'
+file_list_spec='`$ECHO "X$file_list_spec" | $Xsed -e "$delay_single_quote_subst"`'
+variables_saved_for_relink='`$ECHO "X$variables_saved_for_relink" | $Xsed -e "$delay_single_quote_subst"`'
+need_lib_prefix='`$ECHO "X$need_lib_prefix" | $Xsed -e "$delay_single_quote_subst"`'
+need_version='`$ECHO "X$need_version" | $Xsed -e "$delay_single_quote_subst"`'
+version_type='`$ECHO "X$version_type" | $Xsed -e "$delay_single_quote_subst"`'
+runpath_var='`$ECHO "X$runpath_var" | $Xsed -e "$delay_single_quote_subst"`'
+shlibpath_var='`$ECHO "X$shlibpath_var" | $Xsed -e "$delay_single_quote_subst"`'
+shlibpath_overrides_runpath='`$ECHO "X$shlibpath_overrides_runpath" | $Xsed -e "$delay_single_quote_subst"`'
+libname_spec='`$ECHO "X$libname_spec" | $Xsed -e "$delay_single_quote_subst"`'
+library_names_spec='`$ECHO "X$library_names_spec" | $Xsed -e "$delay_single_quote_subst"`'
+soname_spec='`$ECHO "X$soname_spec" | $Xsed -e "$delay_single_quote_subst"`'
+postinstall_cmds='`$ECHO "X$postinstall_cmds" | $Xsed -e "$delay_single_quote_subst"`'
+postuninstall_cmds='`$ECHO "X$postuninstall_cmds" | $Xsed -e "$delay_single_quote_subst"`'
+finish_cmds='`$ECHO "X$finish_cmds" | $Xsed -e "$delay_single_quote_subst"`'
+finish_eval='`$ECHO "X$finish_eval" | $Xsed -e "$delay_single_quote_subst"`'
+hardcode_into_libs='`$ECHO "X$hardcode_into_libs" | $Xsed -e "$delay_single_quote_subst"`'
+sys_lib_search_path_spec='`$ECHO "X$sys_lib_search_path_spec" | $Xsed -e "$delay_single_quote_subst"`'
+sys_lib_dlsearch_path_spec='`$ECHO "X$sys_lib_dlsearch_path_spec" | $Xsed -e "$delay_single_quote_subst"`'
+hardcode_action='`$ECHO "X$hardcode_action" | $Xsed -e "$delay_single_quote_subst"`'
+enable_dlopen='`$ECHO "X$enable_dlopen" | $Xsed -e "$delay_single_quote_subst"`'
+enable_dlopen_self='`$ECHO "X$enable_dlopen_self" | $Xsed -e "$delay_single_quote_subst"`'
+enable_dlopen_self_static='`$ECHO "X$enable_dlopen_self_static" | $Xsed -e "$delay_single_quote_subst"`'
+old_striplib='`$ECHO "X$old_striplib" | $Xsed -e "$delay_single_quote_subst"`'
+striplib='`$ECHO "X$striplib" | $Xsed -e "$delay_single_quote_subst"`'
+compiler_lib_search_dirs='`$ECHO "X$compiler_lib_search_dirs" | $Xsed -e "$delay_single_quote_subst"`'
+predep_objects='`$ECHO "X$predep_objects" | $Xsed -e "$delay_single_quote_subst"`'
+postdep_objects='`$ECHO "X$postdep_objects" | $Xsed -e "$delay_single_quote_subst"`'
+predeps='`$ECHO "X$predeps" | $Xsed -e "$delay_single_quote_subst"`'
+postdeps='`$ECHO "X$postdeps" | $Xsed -e "$delay_single_quote_subst"`'
+compiler_lib_search_path='`$ECHO "X$compiler_lib_search_path" | $Xsed -e "$delay_single_quote_subst"`'
+LD_CXX='`$ECHO "X$LD_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+old_archive_cmds_CXX='`$ECHO "X$old_archive_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+compiler_CXX='`$ECHO "X$compiler_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+GCC_CXX='`$ECHO "X$GCC_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+lt_prog_compiler_no_builtin_flag_CXX='`$ECHO "X$lt_prog_compiler_no_builtin_flag_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+lt_prog_compiler_wl_CXX='`$ECHO "X$lt_prog_compiler_wl_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+lt_prog_compiler_pic_CXX='`$ECHO "X$lt_prog_compiler_pic_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+lt_prog_compiler_static_CXX='`$ECHO "X$lt_prog_compiler_static_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+lt_cv_prog_compiler_c_o_CXX='`$ECHO "X$lt_cv_prog_compiler_c_o_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+archive_cmds_need_lc_CXX='`$ECHO "X$archive_cmds_need_lc_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+enable_shared_with_static_runtimes_CXX='`$ECHO "X$enable_shared_with_static_runtimes_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+export_dynamic_flag_spec_CXX='`$ECHO "X$export_dynamic_flag_spec_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+whole_archive_flag_spec_CXX='`$ECHO "X$whole_archive_flag_spec_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+compiler_needs_object_CXX='`$ECHO "X$compiler_needs_object_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+old_archive_from_new_cmds_CXX='`$ECHO "X$old_archive_from_new_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+old_archive_from_expsyms_cmds_CXX='`$ECHO "X$old_archive_from_expsyms_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+archive_cmds_CXX='`$ECHO "X$archive_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+archive_expsym_cmds_CXX='`$ECHO "X$archive_expsym_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+module_cmds_CXX='`$ECHO "X$module_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+module_expsym_cmds_CXX='`$ECHO "X$module_expsym_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+with_gnu_ld_CXX='`$ECHO "X$with_gnu_ld_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+allow_undefined_flag_CXX='`$ECHO "X$allow_undefined_flag_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+no_undefined_flag_CXX='`$ECHO "X$no_undefined_flag_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+hardcode_libdir_flag_spec_CXX='`$ECHO "X$hardcode_libdir_flag_spec_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+hardcode_libdir_flag_spec_ld_CXX='`$ECHO "X$hardcode_libdir_flag_spec_ld_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+hardcode_libdir_separator_CXX='`$ECHO "X$hardcode_libdir_separator_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+hardcode_direct_CXX='`$ECHO "X$hardcode_direct_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+hardcode_direct_absolute_CXX='`$ECHO "X$hardcode_direct_absolute_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+hardcode_minus_L_CXX='`$ECHO "X$hardcode_minus_L_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+hardcode_shlibpath_var_CXX='`$ECHO "X$hardcode_shlibpath_var_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+hardcode_automatic_CXX='`$ECHO "X$hardcode_automatic_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+inherit_rpath_CXX='`$ECHO "X$inherit_rpath_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+link_all_deplibs_CXX='`$ECHO "X$link_all_deplibs_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+fix_srcfile_path_CXX='`$ECHO "X$fix_srcfile_path_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+always_export_symbols_CXX='`$ECHO "X$always_export_symbols_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+export_symbols_cmds_CXX='`$ECHO "X$export_symbols_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+exclude_expsyms_CXX='`$ECHO "X$exclude_expsyms_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+include_expsyms_CXX='`$ECHO "X$include_expsyms_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+prelink_cmds_CXX='`$ECHO "X$prelink_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+file_list_spec_CXX='`$ECHO "X$file_list_spec_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+hardcode_action_CXX='`$ECHO "X$hardcode_action_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+compiler_lib_search_dirs_CXX='`$ECHO "X$compiler_lib_search_dirs_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+predep_objects_CXX='`$ECHO "X$predep_objects_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+postdep_objects_CXX='`$ECHO "X$postdep_objects_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+predeps_CXX='`$ECHO "X$predeps_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+postdeps_CXX='`$ECHO "X$postdeps_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+compiler_lib_search_path_CXX='`$ECHO "X$compiler_lib_search_path_CXX" | $Xsed -e "$delay_single_quote_subst"`'
+
+LTCC='$LTCC'
+LTCFLAGS='$LTCFLAGS'
+compiler='$compiler_DEFAULT'
+
+# Quote evaled strings.
+for var in SED \
+GREP \
+EGREP \
+FGREP \
+LD \
+NM \
+LN_S \
+lt_SP2NL \
+lt_NL2SP \
+reload_flag \
+OBJDUMP \
+deplibs_check_method \
+file_magic_cmd \
+AR \
+AR_FLAGS \
+STRIP \
+RANLIB \
+CC \
+CFLAGS \
+compiler \
+lt_cv_sys_global_symbol_pipe \
+lt_cv_sys_global_symbol_to_cdecl \
+lt_cv_sys_global_symbol_to_c_name_address \
+lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \
+SHELL \
+ECHO \
+lt_prog_compiler_no_builtin_flag \
+lt_prog_compiler_wl \
+lt_prog_compiler_pic \
+lt_prog_compiler_static \
+lt_cv_prog_compiler_c_o \
+need_locks \
+DSYMUTIL \
+NMEDIT \
+LIPO \
+OTOOL \
+OTOOL64 \
+shrext_cmds \
+export_dynamic_flag_spec \
+whole_archive_flag_spec \
+compiler_needs_object \
+with_gnu_ld \
+allow_undefined_flag \
+no_undefined_flag \
+hardcode_libdir_flag_spec \
+hardcode_libdir_flag_spec_ld \
+hardcode_libdir_separator \
+fix_srcfile_path \
+exclude_expsyms \
+include_expsyms \
+file_list_spec \
+variables_saved_for_relink \
+libname_spec \
+library_names_spec \
+soname_spec \
+finish_eval \
+old_striplib \
+striplib \
+compiler_lib_search_dirs \
+predep_objects \
+postdep_objects \
+predeps \
+postdeps \
+compiler_lib_search_path \
+LD_CXX \
+compiler_CXX \
+lt_prog_compiler_no_builtin_flag_CXX \
+lt_prog_compiler_wl_CXX \
+lt_prog_compiler_pic_CXX \
+lt_prog_compiler_static_CXX \
+lt_cv_prog_compiler_c_o_CXX \
+export_dynamic_flag_spec_CXX \
+whole_archive_flag_spec_CXX \
+compiler_needs_object_CXX \
+with_gnu_ld_CXX \
+allow_undefined_flag_CXX \
+no_undefined_flag_CXX \
+hardcode_libdir_flag_spec_CXX \
+hardcode_libdir_flag_spec_ld_CXX \
+hardcode_libdir_separator_CXX \
+fix_srcfile_path_CXX \
+exclude_expsyms_CXX \
+include_expsyms_CXX \
+file_list_spec_CXX \
+compiler_lib_search_dirs_CXX \
+predep_objects_CXX \
+postdep_objects_CXX \
+predeps_CXX \
+postdeps_CXX \
+compiler_lib_search_path_CXX; do
+ case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in
+ *[\\\\\\\`\\"\\\$]*)
+ eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$sed_quote_subst\\"\\\`\\\\\\""
+ ;;
+ *)
+ eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
+ ;;
+ esac
+done
+
+# Double-quote double-evaled strings.
+for var in reload_cmds \
+old_postinstall_cmds \
+old_postuninstall_cmds \
+old_archive_cmds \
+extract_expsyms_cmds \
+old_archive_from_new_cmds \
+old_archive_from_expsyms_cmds \
+archive_cmds \
+archive_expsym_cmds \
+module_cmds \
+module_expsym_cmds \
+export_symbols_cmds \
+prelink_cmds \
+postinstall_cmds \
+postuninstall_cmds \
+finish_cmds \
+sys_lib_search_path_spec \
+sys_lib_dlsearch_path_spec \
+old_archive_cmds_CXX \
+old_archive_from_new_cmds_CXX \
+old_archive_from_expsyms_cmds_CXX \
+archive_cmds_CXX \
+archive_expsym_cmds_CXX \
+module_cmds_CXX \
+module_expsym_cmds_CXX \
+export_symbols_cmds_CXX \
+prelink_cmds_CXX; do
+ case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in
+ *[\\\\\\\`\\"\\\$]*)
+ eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\""
+ ;;
+ *)
+ eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
+ ;;
+ esac
+done
+
+# Fix-up fallback echo if it was mangled by the above quoting rules.
+case \$lt_ECHO in
+*'\\\$0 --fallback-echo"') lt_ECHO=\`\$ECHO "X\$lt_ECHO" | \$Xsed -e 's/\\\\\\\\\\\\\\\$0 --fallback-echo"\$/\$0 --fallback-echo"/'\`
+ ;;
+esac
+
+ac_aux_dir='$ac_aux_dir'
+xsi_shell='$xsi_shell'
+lt_shell_append='$lt_shell_append'
+
+# See if we are running on zsh, and set the options which allow our
+# commands through without removal of \ escapes INIT.
+if test -n "\${ZSH_VERSION+set}" ; then
+ setopt NO_GLOB_SUBST
+fi
+
+
+ PACKAGE='$PACKAGE'
+ VERSION='$VERSION'
+ TIMESTAMP='$TIMESTAMP'
+ RM='$RM'
+ ofile='$ofile'
+
+
+
+
+
+
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+
+# Handling of arguments.
+for ac_config_target in $ac_config_targets
+do
+ case $ac_config_target in
+ "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;;
+ "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;
+ "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;;
+ "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
+ "m4/Makefile") CONFIG_FILES="$CONFIG_FILES m4/Makefile" ;;
+ "al/Makefile") CONFIG_FILES="$CONFIG_FILES al/Makefile" ;;
+ "doc/Makefile") CONFIG_FILES="$CONFIG_FILES doc/Makefile" ;;
+ "xpm/Makefile") CONFIG_FILES="$CONFIG_FILES xpm/Makefile" ;;
+ "demos/Makefile") CONFIG_FILES="$CONFIG_FILES demos/Makefile" ;;
+ "grepmidi/Makefile") CONFIG_FILES="$CONFIG_FILES grepmidi/Makefile" ;;
+ "packaging/Makefile") CONFIG_FILES="$CONFIG_FILES packaging/Makefile" ;;
+ "muse/Makefile") CONFIG_FILES="$CONFIG_FILES muse/Makefile" ;;
+ "muse/widgets/Makefile") CONFIG_FILES="$CONFIG_FILES muse/widgets/Makefile" ;;
+ "muse/master/Makefile") CONFIG_FILES="$CONFIG_FILES muse/master/Makefile" ;;
+ "muse/midiedit/Makefile") CONFIG_FILES="$CONFIG_FILES muse/midiedit/Makefile" ;;
+ "muse/arranger/Makefile") CONFIG_FILES="$CONFIG_FILES muse/arranger/Makefile" ;;
+ "muse/liste/Makefile") CONFIG_FILES="$CONFIG_FILES muse/liste/Makefile" ;;
+ "muse/driver/Makefile") CONFIG_FILES="$CONFIG_FILES muse/driver/Makefile" ;;
+ "muse/waveedit/Makefile") CONFIG_FILES="$CONFIG_FILES muse/waveedit/Makefile" ;;
+ "muse/ctrl/Makefile") CONFIG_FILES="$CONFIG_FILES muse/ctrl/Makefile" ;;
+ "muse/instruments/Makefile") CONFIG_FILES="$CONFIG_FILES muse/instruments/Makefile" ;;
+ "muse/mixer/Makefile") CONFIG_FILES="$CONFIG_FILES muse/mixer/Makefile" ;;
+ "muse/cliplist/Makefile") CONFIG_FILES="$CONFIG_FILES muse/cliplist/Makefile" ;;
+ "muse/marker/Makefile") CONFIG_FILES="$CONFIG_FILES muse/marker/Makefile" ;;
+ "muse/mplugins/Makefile") CONFIG_FILES="$CONFIG_FILES muse/mplugins/Makefile" ;;
+ "muse/remote/Makefile") CONFIG_FILES="$CONFIG_FILES muse/remote/Makefile" ;;
+ "share/Makefile") CONFIG_FILES="$CONFIG_FILES share/Makefile" ;;
+ "share/drummaps/Makefile") CONFIG_FILES="$CONFIG_FILES share/drummaps/Makefile" ;;
+ "share/html/Makefile") CONFIG_FILES="$CONFIG_FILES share/html/Makefile" ;;
+ "share/locale/Makefile") CONFIG_FILES="$CONFIG_FILES share/locale/Makefile" ;;
+ "share/wallpapers/Makefile") CONFIG_FILES="$CONFIG_FILES share/wallpapers/Makefile" ;;
+ "share/instruments/Makefile") CONFIG_FILES="$CONFIG_FILES share/instruments/Makefile" ;;
+ "share/plugins/Makefile") CONFIG_FILES="$CONFIG_FILES share/plugins/Makefile" ;;
+ "share/templates/Makefile") CONFIG_FILES="$CONFIG_FILES share/templates/Makefile" ;;
+ "share/pybridge/Makefile") CONFIG_FILES="$CONFIG_FILES share/pybridge/Makefile" ;;
+ "share/scripts/Makefile") CONFIG_FILES="$CONFIG_FILES share/scripts/Makefile" ;;
+ "synti/Makefile") CONFIG_FILES="$CONFIG_FILES synti/Makefile" ;;
+ "synti/libsynti/Makefile") CONFIG_FILES="$CONFIG_FILES synti/libsynti/Makefile" ;;
+ "synti/fluidsynth/Makefile") CONFIG_FILES="$CONFIG_FILES synti/fluidsynth/Makefile" ;;
+ "synti/fluid/Makefile") CONFIG_FILES="$CONFIG_FILES synti/fluid/Makefile" ;;
+ "synti/organ/Makefile") CONFIG_FILES="$CONFIG_FILES synti/organ/Makefile" ;;
+ "synti/s1/Makefile") CONFIG_FILES="$CONFIG_FILES synti/s1/Makefile" ;;
+ "synti/vam/Makefile") CONFIG_FILES="$CONFIG_FILES synti/vam/Makefile" ;;
+ "synti/deicsonze/Makefile") CONFIG_FILES="$CONFIG_FILES synti/deicsonze/Makefile" ;;
+ "synti/simpledrums/Makefile") CONFIG_FILES="$CONFIG_FILES synti/simpledrums/Makefile" ;;
+ "lib/Makefile") CONFIG_FILES="$CONFIG_FILES lib/Makefile" ;;
+ "lib/synthi/Makefile") CONFIG_FILES="$CONFIG_FILES lib/synthi/Makefile" ;;
+ "lib/plugins/Makefile") CONFIG_FILES="$CONFIG_FILES lib/plugins/Makefile" ;;
+ "plugins/Makefile") CONFIG_FILES="$CONFIG_FILES plugins/Makefile" ;;
+ "plugins/freeverb/Makefile") CONFIG_FILES="$CONFIG_FILES plugins/freeverb/Makefile" ;;
+ "plugins/pandelay/Makefile") CONFIG_FILES="$CONFIG_FILES plugins/pandelay/Makefile" ;;
+ "plugins/doublechorus/Makefile") CONFIG_FILES="$CONFIG_FILES plugins/doublechorus/Makefile" ;;
+ "Doxyfile") CONFIG_FILES="$CONFIG_FILES Doxyfile" ;;
+ "utils/Makefile") CONFIG_FILES="$CONFIG_FILES utils/Makefile" ;;
+
+ *) as_fn_error "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
+ esac
+done
+
+
+# If the user did not use the arguments to specify the items to instantiate,
+# then the envvar interface is used. Set only those that are not.
+# We use the long form for the default assignment because of an extremely
+# bizarre bug on SunOS 4.1.3.
+if $ac_need_defaults; then
+ test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
+ test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers
+ test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands
+fi
+
+# Have a temporary directory for convenience. Make it in the build tree
+# simply because there is no reason against having it here, and in addition,
+# creating and moving files from /tmp can sometimes cause problems.
+# Hook for its removal unless debugging.
+# Note that there is a small window in which the directory will not be cleaned:
+# after its creation but before its name has been assigned to `$tmp'.
+$debug ||
+{
+ tmp=
+ trap 'exit_status=$?
+ { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status
+' 0
+ trap 'as_fn_exit 1' 1 2 13 15
+}
+# Create a (secure) tmp directory for tmp files.
+
+{
+ tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` &&
+ test -n "$tmp" && test -d "$tmp"
+} ||
+{
+ tmp=./conf$$-$RANDOM
+ (umask 077 && mkdir "$tmp")
+} || as_fn_error "cannot create a temporary directory in ." "$LINENO" 5
+
+# Set up the scripts for CONFIG_FILES section.
+# No need to generate them if there are no CONFIG_FILES.
+# This happens for instance with `./config.status config.h'.
+if test -n "$CONFIG_FILES"; then
+
+
+ac_cr=`echo X | tr X '\015'`
+# On cygwin, bash can eat \r inside `` if the user requested igncr.
+# But we know of no other shell where ac_cr would be empty at this
+# point, so we can use a bashism as a fallback.
+if test "x$ac_cr" = x; then
+ eval ac_cr=\$\'\\r\'
+fi
+ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null`
+if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then
+ ac_cs_awk_cr='\r'
+else
+ ac_cs_awk_cr=$ac_cr
+fi
+
+echo 'BEGIN {' >"$tmp/subs1.awk" &&
+_ACEOF
+
+
+{
+ echo "cat >conf$$subs.awk <<_ACEOF" &&
+ echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' &&
+ echo "_ACEOF"
+} >conf$$subs.sh ||
+ as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5
+ac_delim_num=`echo "$ac_subst_vars" | grep -c '$'`
+ac_delim='%!_!# '
+for ac_last_try in false false false false false :; do
+ . ./conf$$subs.sh ||
+ as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5
+
+ ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X`
+ if test $ac_delim_n = $ac_delim_num; then
+ break
+ elif $ac_last_try; then
+ as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5
+ else
+ ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
+ fi
+done
+rm -f conf$$subs.sh
+
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+cat >>"\$tmp/subs1.awk" <<\\_ACAWK &&
+_ACEOF
+sed -n '
+h
+s/^/S["/; s/!.*/"]=/
+p
+g
+s/^[^!]*!//
+:repl
+t repl
+s/'"$ac_delim"'$//
+t delim
+:nl
+h
+s/\(.\{148\}\)..*/\1/
+t more1
+s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/
+p
+n
+b repl
+:more1
+s/["\\]/\\&/g; s/^/"/; s/$/"\\/
+p
+g
+s/.\{148\}//
+t nl
+:delim
+h
+s/\(.\{148\}\)..*/\1/
+t more2
+s/["\\]/\\&/g; s/^/"/; s/$/"/
+p
+b
+:more2
+s/["\\]/\\&/g; s/^/"/; s/$/"\\/
+p
+g
+s/.\{148\}//
+t delim
+' <conf$$subs.awk | sed '
+/^[^""]/{
+ N
+ s/\n//
+}
+' >>$CONFIG_STATUS || ac_write_fail=1
+rm -f conf$$subs.awk
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+_ACAWK
+cat >>"\$tmp/subs1.awk" <<_ACAWK &&
+ for (key in S) S_is_set[key] = 1
+ FS = ""
+
+}
+{
+ line = $ 0
+ nfields = split(line, field, "@")
+ substed = 0
+ len = length(field[1])
+ for (i = 2; i < nfields; i++) {
+ key = field[i]
+ keylen = length(key)
+ if (S_is_set[key]) {
+ value = S[key]
+ line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3)
+ len += length(value) + length(field[++i])
+ substed = 1
+ } else
+ len += 1 + keylen
+ }
+
+ print line
+}
+
+_ACAWK
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then
+ sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g"
+else
+ cat
+fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \
+ || as_fn_error "could not setup config files machinery" "$LINENO" 5
+_ACEOF
+
+# VPATH may cause trouble with some makes, so we remove $(srcdir),
+# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and
+# trailing colons and then remove the whole line if VPATH becomes empty
+# (actually we leave an empty line to preserve line numbers).
+if test "x$srcdir" = x.; then
+ ac_vpsub='/^[ ]*VPATH[ ]*=/{
+s/:*\$(srcdir):*/:/
+s/:*\${srcdir}:*/:/
+s/:*@srcdir@:*/:/
+s/^\([^=]*=[ ]*\):*/\1/
+s/:*$//
+s/^[^=]*=[ ]*$//
+}'
+fi
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+fi # test -n "$CONFIG_FILES"
+
+# Set up the scripts for CONFIG_HEADERS section.
+# No need to generate them if there are no CONFIG_HEADERS.
+# This happens for instance with `./config.status Makefile'.
+if test -n "$CONFIG_HEADERS"; then
+cat >"$tmp/defines.awk" <<\_ACAWK ||
+BEGIN {
+_ACEOF
+
+# Transform confdefs.h into an awk script `defines.awk', embedded as
+# here-document in config.status, that substitutes the proper values into
+# config.h.in to produce config.h.
+
+# Create a delimiter string that does not exist in confdefs.h, to ease
+# handling of long lines.
+ac_delim='%!_!# '
+for ac_last_try in false false :; do
+ ac_t=`sed -n "/$ac_delim/p" confdefs.h`
+ if test -z "$ac_t"; then
+ break
+ elif $ac_last_try; then
+ as_fn_error "could not make $CONFIG_HEADERS" "$LINENO" 5
+ else
+ ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
+ fi
+done
+
+# For the awk script, D is an array of macro values keyed by name,
+# likewise P contains macro parameters if any. Preserve backslash
+# newline sequences.
+
+ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]*
+sed -n '
+s/.\{148\}/&'"$ac_delim"'/g
+t rset
+:rset
+s/^[ ]*#[ ]*define[ ][ ]*/ /
+t def
+d
+:def
+s/\\$//
+t bsnl
+s/["\\]/\\&/g
+s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\
+D["\1"]=" \3"/p
+s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p
+d
+:bsnl
+s/["\\]/\\&/g
+s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\
+D["\1"]=" \3\\\\\\n"\\/p
+t cont
+s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p
+t cont
+d
+:cont
+n
+s/.\{148\}/&'"$ac_delim"'/g
+t clear
+:clear
+s/\\$//
+t bsnlc
+s/["\\]/\\&/g; s/^/"/; s/$/"/p
+d
+:bsnlc
+s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p
+b cont
+' <confdefs.h | sed '
+s/'"$ac_delim"'/"\\\
+"/g' >>$CONFIG_STATUS || ac_write_fail=1
+
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ for (key in D) D_is_set[key] = 1
+ FS = ""
+}
+/^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ {
+ line = \$ 0
+ split(line, arg, " ")
+ if (arg[1] == "#") {
+ defundef = arg[2]
+ mac1 = arg[3]
+ } else {
+ defundef = substr(arg[1], 2)
+ mac1 = arg[2]
+ }
+ split(mac1, mac2, "(") #)
+ macro = mac2[1]
+ prefix = substr(line, 1, index(line, defundef) - 1)
+ if (D_is_set[macro]) {
+ # Preserve the white space surrounding the "#".
+ print prefix "define", macro P[macro] D[macro]
+ next
+ } else {
+ # Replace #undef with comments. This is necessary, for example,
+ # in the case of _POSIX_SOURCE, which is predefined and required
+ # on some systems where configure will not decide to define it.
+ if (defundef == "undef") {
+ print "/*", prefix defundef, macro, "*/"
+ next
+ }
+ }
+}
+{ print }
+_ACAWK
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+ as_fn_error "could not setup config headers machinery" "$LINENO" 5
+fi # test -n "$CONFIG_HEADERS"
+
+
+eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS"
+shift
+for ac_tag
+do
+ case $ac_tag in
+ :[FHLC]) ac_mode=$ac_tag; continue;;
+ esac
+ case $ac_mode$ac_tag in
+ :[FHL]*:*);;
+ :L* | :C*:*) as_fn_error "invalid tag \`$ac_tag'" "$LINENO" 5;;
+ :[FH]-) ac_tag=-:-;;
+ :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
+ esac
+ ac_save_IFS=$IFS
+ IFS=:
+ set x $ac_tag
+ IFS=$ac_save_IFS
+ shift
+ ac_file=$1
+ shift
+
+ case $ac_mode in
+ :L) ac_source=$1;;
+ :[FH])
+ ac_file_inputs=
+ for ac_f
+ do
+ case $ac_f in
+ -) ac_f="$tmp/stdin";;
+ *) # Look for the file first in the build tree, then in the source tree
+ # (if the path is not absolute). The absolute path cannot be DOS-style,
+ # because $ac_f cannot contain `:'.
+ test -f "$ac_f" ||
+ case $ac_f in
+ [\\/$]*) false;;
+ *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
+ esac ||
+ as_fn_error "cannot find input file: \`$ac_f'" "$LINENO" 5;;
+ esac
+ case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
+ as_fn_append ac_file_inputs " '$ac_f'"
+ done
+
+ # Let's still pretend it is `configure' which instantiates (i.e., don't
+ # use $as_me), people would be surprised to read:
+ # /* config.h. Generated by config.status. */
+ configure_input='Generated from '`
+ $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g'
+ `' by configure.'
+ if test x"$ac_file" != x-; then
+ configure_input="$ac_file. $configure_input"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5
+$as_echo "$as_me: creating $ac_file" >&6;}
+ fi
+ # Neutralize special characters interpreted by sed in replacement strings.
+ case $configure_input in #(
+ *\&* | *\|* | *\\* )
+ ac_sed_conf_input=`$as_echo "$configure_input" |
+ sed 's/[\\\\&|]/\\\\&/g'`;; #(
+ *) ac_sed_conf_input=$configure_input;;
+ esac
+
+ case $ac_tag in
+ *:-:* | *:-) cat >"$tmp/stdin" \
+ || as_fn_error "could not create $ac_file" "$LINENO" 5 ;;
+ esac
+ ;;
+ esac
+
+ ac_dir=`$as_dirname -- "$ac_file" ||
+$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$ac_file" : 'X\(//\)[^/]' \| \
+ X"$ac_file" : 'X\(//\)$' \| \
+ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$ac_file" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ as_dir="$ac_dir"; as_fn_mkdir_p
+ ac_builddir=.
+
+case "$ac_dir" in
+.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
+*)
+ ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
+ # A ".." for each directory in $ac_dir_suffix.
+ ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
+ case $ac_top_builddir_sub in
+ "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
+ *) ac_top_build_prefix=$ac_top_builddir_sub/ ;;
+ esac ;;
+esac
+ac_abs_top_builddir=$ac_pwd
+ac_abs_builddir=$ac_pwd$ac_dir_suffix
+# for backward compatibility:
+ac_top_builddir=$ac_top_build_prefix
+
+case $srcdir in
+ .) # We are building in place.
+ ac_srcdir=.
+ ac_top_srcdir=$ac_top_builddir_sub
+ ac_abs_top_srcdir=$ac_pwd ;;
+ [\\/]* | ?:[\\/]* ) # Absolute name.
+ ac_srcdir=$srcdir$ac_dir_suffix;
+ ac_top_srcdir=$srcdir
+ ac_abs_top_srcdir=$srcdir ;;
+ *) # Relative name.
+ ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
+ ac_top_srcdir=$ac_top_build_prefix$srcdir
+ ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
+esac
+ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
+
+
+ case $ac_mode in
+ :F)
+ #
+ # CONFIG_FILE
+ #
+
+ case $INSTALL in
+ [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
+ *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;;
+ esac
+ ac_MKDIR_P=$MKDIR_P
+ case $MKDIR_P in
+ [\\/$]* | ?:[\\/]* ) ;;
+ */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;;
+ esac
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+# If the template does not know about datarootdir, expand it.
+# FIXME: This hack should be removed a few years after 2.60.
+ac_datarootdir_hack=; ac_datarootdir_seen=
+ac_sed_dataroot='
+/datarootdir/ {
+ p
+ q
+}
+/@datadir@/p
+/@docdir@/p
+/@infodir@/p
+/@localedir@/p
+/@mandir@/p'
+case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in
+*datarootdir*) ac_datarootdir_seen=yes;;
+*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
+$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ ac_datarootdir_hack='
+ s&@datadir@&$datadir&g
+ s&@docdir@&$docdir&g
+ s&@infodir@&$infodir&g
+ s&@localedir@&$localedir&g
+ s&@mandir@&$mandir&g
+ s&\\\${datarootdir}&$datarootdir&g' ;;
+esac
+_ACEOF
+
+# Neutralize VPATH when `$srcdir' = `.'.
+# Shell code in configure.ac might set extrasub.
+# FIXME: do we really want to maintain this feature?
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ac_sed_extra="$ac_vpsub
+$extrasub
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+:t
+/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
+s|@configure_input@|$ac_sed_conf_input|;t t
+s&@top_builddir@&$ac_top_builddir_sub&;t t
+s&@top_build_prefix@&$ac_top_build_prefix&;t t
+s&@srcdir@&$ac_srcdir&;t t
+s&@abs_srcdir@&$ac_abs_srcdir&;t t
+s&@top_srcdir@&$ac_top_srcdir&;t t
+s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t
+s&@builddir@&$ac_builddir&;t t
+s&@abs_builddir@&$ac_abs_builddir&;t t
+s&@abs_top_builddir@&$ac_abs_top_builddir&;t t
+s&@INSTALL@&$ac_INSTALL&;t t
+s&@MKDIR_P@&$ac_MKDIR_P&;t t
+$ac_datarootdir_hack
+"
+eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \
+ || as_fn_error "could not create $ac_file" "$LINENO" 5
+
+test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
+ { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } &&
+ { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } &&
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
+which seems to be undefined. Please make sure it is defined." >&5
+$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
+which seems to be undefined. Please make sure it is defined." >&2;}
+
+ rm -f "$tmp/stdin"
+ case $ac_file in
+ -) cat "$tmp/out" && rm -f "$tmp/out";;
+ *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";;
+ esac \
+ || as_fn_error "could not create $ac_file" "$LINENO" 5
+ ;;
+ :H)
+ #
+ # CONFIG_HEADER
+ #
+ if test x"$ac_file" != x-; then
+ {
+ $as_echo "/* $configure_input */" \
+ && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs"
+ } >"$tmp/config.h" \
+ || as_fn_error "could not create $ac_file" "$LINENO" 5
+ if diff "$ac_file" "$tmp/config.h" >/dev/null 2>&1; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5
+$as_echo "$as_me: $ac_file is unchanged" >&6;}
+ else
+ rm -f "$ac_file"
+ mv "$tmp/config.h" "$ac_file" \
+ || as_fn_error "could not create $ac_file" "$LINENO" 5
+ fi
+ else
+ $as_echo "/* $configure_input */" \
+ && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" \
+ || as_fn_error "could not create -" "$LINENO" 5
+ fi
+# Compute "$ac_file"'s index in $config_headers.
+_am_arg="$ac_file"
+_am_stamp_count=1
+for _am_header in $config_headers :; do
+ case $_am_header in
+ $_am_arg | $_am_arg:* )
+ break ;;
+ * )
+ _am_stamp_count=`expr $_am_stamp_count + 1` ;;
+ esac
+done
+echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" ||
+$as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$_am_arg" : 'X\(//\)[^/]' \| \
+ X"$_am_arg" : 'X\(//\)$' \| \
+ X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$_am_arg" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`/stamp-h$_am_stamp_count
+ ;;
+
+ :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5
+$as_echo "$as_me: executing $ac_file commands" >&6;}
+ ;;
+ esac
+
+
+ case $ac_file$ac_mode in
+ "depfiles":C) test x"$AMDEP_TRUE" != x"" || {
+ # Autoconf 2.62 quotes --file arguments for eval, but not when files
+ # are listed without --file. Let's play safe and only enable the eval
+ # if we detect the quoting.
+ case $CONFIG_FILES in
+ *\'*) eval set x "$CONFIG_FILES" ;;
+ *) set x $CONFIG_FILES ;;
+ esac
+ shift
+ for mf
+ do
+ # Strip MF so we end up with the name of the file.
+ mf=`echo "$mf" | sed -e 's/:.*$//'`
+ # Check whether this is an Automake generated Makefile or not.
+ # We used to match only the files named `Makefile.in', but
+ # some people rename them; so instead we look at the file content.
+ # Grep'ing the first line is not enough: some people post-process
+ # each Makefile.in and add a new line on top of each file to say so.
+ # Grep'ing the whole file is not good either: AIX grep has a line
+ # limit of 2048, but all sed's we know have understand at least 4000.
+ if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then
+ dirpart=`$as_dirname -- "$mf" ||
+$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$mf" : 'X\(//\)[^/]' \| \
+ X"$mf" : 'X\(//\)$' \| \
+ X"$mf" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$mf" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ else
+ continue
+ fi
+ # Extract the definition of DEPDIR, am__include, and am__quote
+ # from the Makefile without running `make'.
+ DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
+ test -z "$DEPDIR" && continue
+ am__include=`sed -n 's/^am__include = //p' < "$mf"`
+ test -z "am__include" && continue
+ am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
+ # When using ansi2knr, U may be empty or an underscore; expand it
+ U=`sed -n 's/^U = //p' < "$mf"`
+ # Find all dependency output files, they are included files with
+ # $(DEPDIR) in their names. We invoke sed twice because it is the
+ # simplest approach to changing $(DEPDIR) to its actual value in the
+ # expansion.
+ for file in `sed -n "
+ s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
+ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
+ # Make sure the directory exists.
+ test -f "$dirpart/$file" && continue
+ fdir=`$as_dirname -- "$file" ||
+$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$file" : 'X\(//\)[^/]' \| \
+ X"$file" : 'X\(//\)$' \| \
+ X"$file" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$file" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ as_dir=$dirpart/$fdir; as_fn_mkdir_p
+ # echo "creating $dirpart/$file"
+ echo '# dummy' > "$dirpart/$file"
+ done
+ done
+}
+ ;;
+ "libtool":C)
+
+ # See if we are running on zsh, and set the options which allow our
+ # commands through without removal of \ escapes.
+ if test -n "${ZSH_VERSION+set}" ; then
+ setopt NO_GLOB_SUBST
+ fi
+
+ cfgfile="${ofile}T"
+ trap "$RM \"$cfgfile\"; exit 1" 1 2 15
+ $RM "$cfgfile"
+
+ cat <<_LT_EOF >> "$cfgfile"
+#! $SHELL
+
+# `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services.
+# Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION
+# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
+# NOTE: Changes made to this file will be lost: look at ltmain.sh.
+#
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
+# 2006, 2007, 2008 Free Software Foundation, Inc.
+# Written by Gordon Matzigkeit, 1996
+#
+# This file is part of GNU Libtool.
+#
+# GNU Libtool 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.
+#
+# As a special exception to the GNU General Public License,
+# if you distribute this file as part of a program or library that
+# is built using GNU Libtool, you may include this file under the
+# same distribution terms that you use for the rest of that program.
+#
+# GNU Libtool is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GNU Libtool; see the file COPYING. If not, a copy
+# can be downloaded from http://www.gnu.org/licenses/gpl.html, or
+# obtained by writing to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+
+
+# The names of the tagged configurations supported by this script.
+available_tags="CXX "
+
+# ### BEGIN LIBTOOL CONFIG
+
+# Which release of libtool.m4 was used?
+macro_version=$macro_version
+macro_revision=$macro_revision
+
+# Whether or not to build shared libraries.
+build_libtool_libs=$enable_shared
+
+# Whether or not to build static libraries.
+build_old_libs=$enable_static
+
+# What type of objects to build.
+pic_mode=$pic_mode
+
+# Whether or not to optimize for fast installation.
+fast_install=$enable_fast_install
+
+# The host system.
+host_alias=$host_alias
+host=$host
+host_os=$host_os
+
+# The build system.
+build_alias=$build_alias
+build=$build
+build_os=$build_os
+
+# A sed program that does not truncate output.
+SED=$lt_SED
+
+# Sed that helps us avoid accidentally triggering echo(1) options like -n.
+Xsed="\$SED -e 1s/^X//"
+
+# A grep program that handles long lines.
+GREP=$lt_GREP
+
+# An ERE matcher.
+EGREP=$lt_EGREP
+
+# A literal string matcher.
+FGREP=$lt_FGREP
+
+# A BSD- or MS-compatible name lister.
+NM=$lt_NM
+
+# Whether we need soft or hard links.
+LN_S=$lt_LN_S
+
+# What is the maximum length of a command?
+max_cmd_len=$max_cmd_len
+
+# Object file suffix (normally "o").
+objext=$ac_objext
+
+# Executable file suffix (normally "").
+exeext=$exeext
+
+# whether the shell understands "unset".
+lt_unset=$lt_unset
+
+# turn spaces into newlines.
+SP2NL=$lt_lt_SP2NL
+
+# turn newlines into spaces.
+NL2SP=$lt_lt_NL2SP
+
+# How to create reloadable object files.
+reload_flag=$lt_reload_flag
+reload_cmds=$lt_reload_cmds
+
+# An object symbol dumper.
+OBJDUMP=$lt_OBJDUMP
+
+# Method to check whether dependent libraries are shared objects.
+deplibs_check_method=$lt_deplibs_check_method
+
+# Command to use when deplibs_check_method == "file_magic".
+file_magic_cmd=$lt_file_magic_cmd
+
+# The archiver.
+AR=$lt_AR
+AR_FLAGS=$lt_AR_FLAGS
+
+# A symbol stripping program.
+STRIP=$lt_STRIP
+
+# Commands used to install an old-style archive.
+RANLIB=$lt_RANLIB
+old_postinstall_cmds=$lt_old_postinstall_cmds
+old_postuninstall_cmds=$lt_old_postuninstall_cmds
+
+# A C compiler.
+LTCC=$lt_CC
+
+# LTCC compiler flags.
+LTCFLAGS=$lt_CFLAGS
+
+# Take the output of nm and produce a listing of raw symbols and C names.
+global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe
+
+# Transform the output of nm in a proper C declaration.
+global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl
+
+# Transform the output of nm in a C name address pair.
+global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
+
+# Transform the output of nm in a C name address pair when lib prefix is needed.
+global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix
+
+# The name of the directory that contains temporary libtool files.
+objdir=$objdir
+
+# Shell to use when invoking shell scripts.
+SHELL=$lt_SHELL
+
+# An echo program that does not interpret backslashes.
+ECHO=$lt_ECHO
+
+# Used to examine libraries when file_magic_cmd begins with "file".
+MAGIC_CMD=$MAGIC_CMD
+
+# Must we lock files when doing compilation?
+need_locks=$lt_need_locks
+
+# Tool to manipulate archived DWARF debug symbol files on Mac OS X.
+DSYMUTIL=$lt_DSYMUTIL
+
+# Tool to change global to local symbols on Mac OS X.
+NMEDIT=$lt_NMEDIT
+
+# Tool to manipulate fat objects and archives on Mac OS X.
+LIPO=$lt_LIPO
+
+# ldd/readelf like tool for Mach-O binaries on Mac OS X.
+OTOOL=$lt_OTOOL
+
+# ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4.
+OTOOL64=$lt_OTOOL64
+
+# Old archive suffix (normally "a").
+libext=$libext
+
+# Shared library suffix (normally ".so").
+shrext_cmds=$lt_shrext_cmds
+
+# The commands to extract the exported symbol list from a shared archive.
+extract_expsyms_cmds=$lt_extract_expsyms_cmds
+
+# Variables whose values should be saved in libtool wrapper scripts and
+# restored at link time.
+variables_saved_for_relink=$lt_variables_saved_for_relink
+
+# Do we need the "lib" prefix for modules?
+need_lib_prefix=$need_lib_prefix
+
+# Do we need a version for libraries?
+need_version=$need_version
+
+# Library versioning type.
+version_type=$version_type
+
+# Shared library runtime path variable.
+runpath_var=$runpath_var
+
+# Shared library path variable.
+shlibpath_var=$shlibpath_var
+
+# Is shlibpath searched before the hard-coded library search path?
+shlibpath_overrides_runpath=$shlibpath_overrides_runpath
+
+# Format of library name prefix.
+libname_spec=$lt_libname_spec
+
+# List of archive names. First name is the real one, the rest are links.
+# The last name is the one that the linker finds with -lNAME
+library_names_spec=$lt_library_names_spec
+
+# The coded name of the library, if different from the real name.
+soname_spec=$lt_soname_spec
+
+# Command to use after installation of a shared archive.
+postinstall_cmds=$lt_postinstall_cmds
+
+# Command to use after uninstallation of a shared archive.
+postuninstall_cmds=$lt_postuninstall_cmds
+
+# Commands used to finish a libtool library installation in a directory.
+finish_cmds=$lt_finish_cmds
+
+# As "finish_cmds", except a single script fragment to be evaled but
+# not shown.
+finish_eval=$lt_finish_eval
+
+# Whether we should hardcode library paths into libraries.
+hardcode_into_libs=$hardcode_into_libs
+
+# Compile-time system search path for libraries.
+sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
+
+# Run-time system search path for libraries.
+sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
+
+# Whether dlopen is supported.
+dlopen_support=$enable_dlopen
+
+# Whether dlopen of programs is supported.
+dlopen_self=$enable_dlopen_self
+
+# Whether dlopen of statically linked programs is supported.
+dlopen_self_static=$enable_dlopen_self_static
+
+# Commands to strip libraries.
+old_striplib=$lt_old_striplib
+striplib=$lt_striplib
+
+
+# The linker used to build libraries.
+LD=$lt_LD
+
+# Commands used to build an old-style archive.
+old_archive_cmds=$lt_old_archive_cmds
+
+# A language specific compiler.
+CC=$lt_compiler
+
+# Is the compiler the GNU compiler?
+with_gcc=$GCC
+
+# Compiler flag to turn off builtin functions.
+no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag
+
+# How to pass a linker flag through the compiler.
+wl=$lt_lt_prog_compiler_wl
+
+# Additional compiler flags for building library objects.
+pic_flag=$lt_lt_prog_compiler_pic
+
+# Compiler flag to prevent dynamic linking.
+link_static_flag=$lt_lt_prog_compiler_static
+
+# Does compiler simultaneously support -c and -o options?
+compiler_c_o=$lt_lt_cv_prog_compiler_c_o
+
+# Whether or not to add -lc for building shared libraries.
+build_libtool_need_lc=$archive_cmds_need_lc
+
+# Whether or not to disallow shared libs when runtime libs are static.
+allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes
+
+# Compiler flag to allow reflexive dlopens.
+export_dynamic_flag_spec=$lt_export_dynamic_flag_spec
+
+# Compiler flag to generate shared objects directly from archives.
+whole_archive_flag_spec=$lt_whole_archive_flag_spec
+
+# Whether the compiler copes with passing no objects directly.
+compiler_needs_object=$lt_compiler_needs_object
+
+# Create an old-style archive from a shared archive.
+old_archive_from_new_cmds=$lt_old_archive_from_new_cmds
+
+# Create a temporary old-style archive to link instead of a shared archive.
+old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds
+
+# Commands used to build a shared archive.
+archive_cmds=$lt_archive_cmds
+archive_expsym_cmds=$lt_archive_expsym_cmds
+
+# Commands used to build a loadable module if different from building
+# a shared archive.
+module_cmds=$lt_module_cmds
+module_expsym_cmds=$lt_module_expsym_cmds
+
+# Whether we are building with GNU ld or not.
+with_gnu_ld=$lt_with_gnu_ld
+
+# Flag that allows shared libraries with undefined symbols to be built.
+allow_undefined_flag=$lt_allow_undefined_flag
+
+# Flag that enforces no undefined symbols.
+no_undefined_flag=$lt_no_undefined_flag
+
+# Flag to hardcode \$libdir into a binary during linking.
+# This must work even if \$libdir does not exist
+hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec
+
+# If ld is used when linking, flag to hardcode \$libdir into a binary
+# during linking. This must work even if \$libdir does not exist.
+hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld
+
+# Whether we need a single "-rpath" flag with a separated argument.
+hardcode_libdir_separator=$lt_hardcode_libdir_separator
+
+# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes
+# DIR into the resulting binary.
+hardcode_direct=$hardcode_direct
+
+# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes
+# DIR into the resulting binary and the resulting library dependency is
+# "absolute",i.e impossible to change by setting \${shlibpath_var} if the
+# library is relocated.
+hardcode_direct_absolute=$hardcode_direct_absolute
+
+# Set to "yes" if using the -LDIR flag during linking hardcodes DIR
+# into the resulting binary.
+hardcode_minus_L=$hardcode_minus_L
+
+# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR
+# into the resulting binary.
+hardcode_shlibpath_var=$hardcode_shlibpath_var
+
+# Set to "yes" if building a shared library automatically hardcodes DIR
+# into the library and all subsequent libraries and executables linked
+# against it.
+hardcode_automatic=$hardcode_automatic
+
+# Set to yes if linker adds runtime paths of dependent libraries
+# to runtime path list.
+inherit_rpath=$inherit_rpath
+
+# Whether libtool must link a program against all its dependency libraries.
+link_all_deplibs=$link_all_deplibs
+
+# Fix the shell variable \$srcfile for the compiler.
+fix_srcfile_path=$lt_fix_srcfile_path
+
+# Set to "yes" if exported symbols are required.
+always_export_symbols=$always_export_symbols
+
+# The commands to list exported symbols.
+export_symbols_cmds=$lt_export_symbols_cmds
+
+# Symbols that should not be listed in the preloaded symbols.
+exclude_expsyms=$lt_exclude_expsyms
+
+# Symbols that must always be exported.
+include_expsyms=$lt_include_expsyms
+
+# Commands necessary for linking programs (against libraries) with templates.
+prelink_cmds=$lt_prelink_cmds
+
+# Specify filename containing input files.
+file_list_spec=$lt_file_list_spec
+
+# How to hardcode a shared library path into an executable.
+hardcode_action=$hardcode_action
+
+# The directories searched by this compiler when creating a shared library.
+compiler_lib_search_dirs=$lt_compiler_lib_search_dirs
+
+# Dependencies to place before and after the objects being linked to
+# create a shared library.
+predep_objects=$lt_predep_objects
+postdep_objects=$lt_postdep_objects
+predeps=$lt_predeps
+postdeps=$lt_postdeps
+
+# The library search path used internally by the compiler when linking
+# a shared library.
+compiler_lib_search_path=$lt_compiler_lib_search_path
+
+# ### END LIBTOOL CONFIG
+
+_LT_EOF
+
+ case $host_os in
+ aix3*)
+ cat <<\_LT_EOF >> "$cfgfile"
+# AIX sometimes has problems with the GCC collect2 program. For some
+# reason, if we set the COLLECT_NAMES environment variable, the problems
+# vanish in a puff of smoke.
+if test "X${COLLECT_NAMES+set}" != Xset; then
+ COLLECT_NAMES=
+ export COLLECT_NAMES
+fi
+_LT_EOF
+ ;;
+ esac
+
+
+ltmain="$ac_aux_dir/ltmain.sh"
+
+
+ # We use sed instead of cat because bash on DJGPP gets confused if
+ # if finds mixed CR/LF and LF-only lines. Since sed operates in
+ # text mode, it properly converts lines to CR/LF. This bash problem
+ # is reportedly fixed, but why not run on old versions too?
+ sed '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \
+ || (rm -f "$cfgfile"; exit 1)
+
+ case $xsi_shell in
+ yes)
+ cat << \_LT_EOF >> "$cfgfile"
+
+# func_dirname file append nondir_replacement
+# Compute the dirname of FILE. If nonempty, add APPEND to the result,
+# otherwise set result to NONDIR_REPLACEMENT.
+func_dirname ()
+{
+ case ${1} in
+ */*) func_dirname_result="${1%/*}${2}" ;;
+ * ) func_dirname_result="${3}" ;;
+ esac
+}
+
+# func_basename file
+func_basename ()
+{
+ func_basename_result="${1##*/}"
+}
+
+# func_dirname_and_basename file append nondir_replacement
+# perform func_basename and func_dirname in a single function
+# call:
+# dirname: Compute the dirname of FILE. If nonempty,
+# add APPEND to the result, otherwise set result
+# to NONDIR_REPLACEMENT.
+# value returned in "$func_dirname_result"
+# basename: Compute filename of FILE.
+# value retuned in "$func_basename_result"
+# Implementation must be kept synchronized with func_dirname
+# and func_basename. For efficiency, we do not delegate to
+# those functions but instead duplicate the functionality here.
+func_dirname_and_basename ()
+{
+ case ${1} in
+ */*) func_dirname_result="${1%/*}${2}" ;;
+ * ) func_dirname_result="${3}" ;;
+ esac
+ func_basename_result="${1##*/}"
+}
+
+# func_stripname prefix suffix name
+# strip PREFIX and SUFFIX off of NAME.
+# PREFIX and SUFFIX must not contain globbing or regex special
+# characters, hashes, percent signs, but SUFFIX may contain a leading
+# dot (in which case that matches only a dot).
+func_stripname ()
+{
+ # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are
+ # positional parameters, so assign one to ordinary parameter first.
+ func_stripname_result=${3}
+ func_stripname_result=${func_stripname_result#"${1}"}
+ func_stripname_result=${func_stripname_result%"${2}"}
+}
+
+# func_opt_split
+func_opt_split ()
+{
+ func_opt_split_opt=${1%%=*}
+ func_opt_split_arg=${1#*=}
+}
+
+# func_lo2o object
+func_lo2o ()
+{
+ case ${1} in
+ *.lo) func_lo2o_result=${1%.lo}.${objext} ;;
+ *) func_lo2o_result=${1} ;;
+ esac
+}
+
+# func_xform libobj-or-source
+func_xform ()
+{
+ func_xform_result=${1%.*}.lo
+}
+
+# func_arith arithmetic-term...
+func_arith ()
+{
+ func_arith_result=$(( $* ))
+}
+
+# func_len string
+# STRING may not start with a hyphen.
+func_len ()
+{
+ func_len_result=${#1}
+}
+
+_LT_EOF
+ ;;
+ *) # Bourne compatible functions.
+ cat << \_LT_EOF >> "$cfgfile"
+
+# func_dirname file append nondir_replacement
+# Compute the dirname of FILE. If nonempty, add APPEND to the result,
+# otherwise set result to NONDIR_REPLACEMENT.
+func_dirname ()
+{
+ # Extract subdirectory from the argument.
+ func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"`
+ if test "X$func_dirname_result" = "X${1}"; then
+ func_dirname_result="${3}"
+ else
+ func_dirname_result="$func_dirname_result${2}"
+ fi
+}
+
+# func_basename file
+func_basename ()
+{
+ func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"`
+}
+
+
+# func_stripname prefix suffix name
+# strip PREFIX and SUFFIX off of NAME.
+# PREFIX and SUFFIX must not contain globbing or regex special
+# characters, hashes, percent signs, but SUFFIX may contain a leading
+# dot (in which case that matches only a dot).
+# func_strip_suffix prefix name
+func_stripname ()
+{
+ case ${2} in
+ .*) func_stripname_result=`$ECHO "X${3}" \
+ | $Xsed -e "s%^${1}%%" -e "s%\\\\${2}\$%%"`;;
+ *) func_stripname_result=`$ECHO "X${3}" \
+ | $Xsed -e "s%^${1}%%" -e "s%${2}\$%%"`;;
+ esac
+}
+
+# sed scripts:
+my_sed_long_opt='1s/^\(-[^=]*\)=.*/\1/;q'
+my_sed_long_arg='1s/^-[^=]*=//'
+
+# func_opt_split
+func_opt_split ()
+{
+ func_opt_split_opt=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_opt"`
+ func_opt_split_arg=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_arg"`
+}
+
+# func_lo2o object
+func_lo2o ()
+{
+ func_lo2o_result=`$ECHO "X${1}" | $Xsed -e "$lo2o"`
+}
+
+# func_xform libobj-or-source
+func_xform ()
+{
+ func_xform_result=`$ECHO "X${1}" | $Xsed -e 's/\.[^.]*$/.lo/'`
+}
+
+# func_arith arithmetic-term...
+func_arith ()
+{
+ func_arith_result=`expr "$@"`
+}
+
+# func_len string
+# STRING may not start with a hyphen.
+func_len ()
+{
+ func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len`
+}
+
+_LT_EOF
+esac
+
+case $lt_shell_append in
+ yes)
+ cat << \_LT_EOF >> "$cfgfile"
+
+# func_append var value
+# Append VALUE to the end of shell variable VAR.
+func_append ()
+{
+ eval "$1+=\$2"
+}
+_LT_EOF
+ ;;
+ *)
+ cat << \_LT_EOF >> "$cfgfile"
+
+# func_append var value
+# Append VALUE to the end of shell variable VAR.
+func_append ()
+{
+ eval "$1=\$$1\$2"
+}
+
+_LT_EOF
+ ;;
+ esac
+
+
+ sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \
+ || (rm -f "$cfgfile"; exit 1)
+
+ mv -f "$cfgfile" "$ofile" ||
+ (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
+ chmod +x "$ofile"
+
+
+ cat <<_LT_EOF >> "$ofile"
+
+# ### BEGIN LIBTOOL TAG CONFIG: CXX
+
+# The linker used to build libraries.
+LD=$lt_LD_CXX
+
+# Commands used to build an old-style archive.
+old_archive_cmds=$lt_old_archive_cmds_CXX
+
+# A language specific compiler.
+CC=$lt_compiler_CXX
+
+# Is the compiler the GNU compiler?
+with_gcc=$GCC_CXX
+
+# Compiler flag to turn off builtin functions.
+no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_CXX
+
+# How to pass a linker flag through the compiler.
+wl=$lt_lt_prog_compiler_wl_CXX
+
+# Additional compiler flags for building library objects.
+pic_flag=$lt_lt_prog_compiler_pic_CXX
+
+# Compiler flag to prevent dynamic linking.
+link_static_flag=$lt_lt_prog_compiler_static_CXX
+
+# Does compiler simultaneously support -c and -o options?
+compiler_c_o=$lt_lt_cv_prog_compiler_c_o_CXX
+
+# Whether or not to add -lc for building shared libraries.
+build_libtool_need_lc=$archive_cmds_need_lc_CXX
+
+# Whether or not to disallow shared libs when runtime libs are static.
+allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_CXX
+
+# Compiler flag to allow reflexive dlopens.
+export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_CXX
+
+# Compiler flag to generate shared objects directly from archives.
+whole_archive_flag_spec=$lt_whole_archive_flag_spec_CXX
+
+# Whether the compiler copes with passing no objects directly.
+compiler_needs_object=$lt_compiler_needs_object_CXX
+
+# Create an old-style archive from a shared archive.
+old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_CXX
+
+# Create a temporary old-style archive to link instead of a shared archive.
+old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_CXX
+
+# Commands used to build a shared archive.
+archive_cmds=$lt_archive_cmds_CXX
+archive_expsym_cmds=$lt_archive_expsym_cmds_CXX
+
+# Commands used to build a loadable module if different from building
+# a shared archive.
+module_cmds=$lt_module_cmds_CXX
+module_expsym_cmds=$lt_module_expsym_cmds_CXX
+
+# Whether we are building with GNU ld or not.
+with_gnu_ld=$lt_with_gnu_ld_CXX
+
+# Flag that allows shared libraries with undefined symbols to be built.
+allow_undefined_flag=$lt_allow_undefined_flag_CXX
+
+# Flag that enforces no undefined symbols.
+no_undefined_flag=$lt_no_undefined_flag_CXX
+
+# Flag to hardcode \$libdir into a binary during linking.
+# This must work even if \$libdir does not exist
+hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_CXX
+
+# If ld is used when linking, flag to hardcode \$libdir into a binary
+# during linking. This must work even if \$libdir does not exist.
+hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_CXX
+
+# Whether we need a single "-rpath" flag with a separated argument.
+hardcode_libdir_separator=$lt_hardcode_libdir_separator_CXX
+
+# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes
+# DIR into the resulting binary.
+hardcode_direct=$hardcode_direct_CXX
+
+# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes
+# DIR into the resulting binary and the resulting library dependency is
+# "absolute",i.e impossible to change by setting \${shlibpath_var} if the
+# library is relocated.
+hardcode_direct_absolute=$hardcode_direct_absolute_CXX
+
+# Set to "yes" if using the -LDIR flag during linking hardcodes DIR
+# into the resulting binary.
+hardcode_minus_L=$hardcode_minus_L_CXX
+
+# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR
+# into the resulting binary.
+hardcode_shlibpath_var=$hardcode_shlibpath_var_CXX
+
+# Set to "yes" if building a shared library automatically hardcodes DIR
+# into the library and all subsequent libraries and executables linked
+# against it.
+hardcode_automatic=$hardcode_automatic_CXX
+
+# Set to yes if linker adds runtime paths of dependent libraries
+# to runtime path list.
+inherit_rpath=$inherit_rpath_CXX
+
+# Whether libtool must link a program against all its dependency libraries.
+link_all_deplibs=$link_all_deplibs_CXX
+
+# Fix the shell variable \$srcfile for the compiler.
+fix_srcfile_path=$lt_fix_srcfile_path_CXX
+
+# Set to "yes" if exported symbols are required.
+always_export_symbols=$always_export_symbols_CXX
+
+# The commands to list exported symbols.
+export_symbols_cmds=$lt_export_symbols_cmds_CXX
+
+# Symbols that should not be listed in the preloaded symbols.
+exclude_expsyms=$lt_exclude_expsyms_CXX
+
+# Symbols that must always be exported.
+include_expsyms=$lt_include_expsyms_CXX
+
+# Commands necessary for linking programs (against libraries) with templates.
+prelink_cmds=$lt_prelink_cmds_CXX
+
+# Specify filename containing input files.
+file_list_spec=$lt_file_list_spec_CXX
+
+# How to hardcode a shared library path into an executable.
+hardcode_action=$hardcode_action_CXX
+
+# The directories searched by this compiler when creating a shared library.
+compiler_lib_search_dirs=$lt_compiler_lib_search_dirs_CXX
+
+# Dependencies to place before and after the objects being linked to
+# create a shared library.
+predep_objects=$lt_predep_objects_CXX
+postdep_objects=$lt_postdep_objects_CXX
+predeps=$lt_predeps_CXX
+postdeps=$lt_postdeps_CXX
+
+# The library search path used internally by the compiler when linking
+# a shared library.
+compiler_lib_search_path=$lt_compiler_lib_search_path_CXX
+
+# ### END LIBTOOL TAG CONFIG: CXX
+_LT_EOF
+
+ ;;
+
+ esac
+done # for ac_tag
+
+
+as_fn_exit 0
+_ACEOF
+ac_clean_files=$ac_clean_files_save
+
+test $ac_write_fail = 0 ||
+ as_fn_error "write failure creating $CONFIG_STATUS" "$LINENO" 5
+
+
+# configure is writing to config.log, and then calls config.status.
+# config.status does its own redirection, appending to config.log.
+# Unfortunately, on DOS this fails, as config.log is still kept open
+# by configure, so config.status won't be able to write to it; its
+# output is simply discarded. So we exec the FD to /dev/null,
+# effectively closing config.log, so it can be properly (re)opened and
+# appended to by config.status. When coming back to configure, we
+# need to make the FD available again.
+if test "$no_create" != yes; then
+ ac_cs_success=:
+ ac_config_status_args=
+ test "$silent" = yes &&
+ ac_config_status_args="$ac_config_status_args --quiet"
+ exec 5>/dev/null
+ $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false
+ exec 5>>config.log
+ # Use ||, not &&, to avoid exiting from the if with $? = 1, which
+ # would make configure fail if this is the last instruction.
+ $ac_cs_success || as_fn_exit $?
+fi
+if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
+$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
+fi
+
+
+######## Show a configuration report ########
+if test -n "$JADE"; then
+ jade_report="$JADE";
+else
+ jade_report="not present"
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}:
+ QTDIR $QTDIR
+ QTDIR_INC $QTDIR_INC
+ QTDIR_BIN $QTDIR_BIN
+ QT_LIBS $QT_LIBS
+
+ MusE configured
+
+ LASH support: $LASH_FOUND
+ OSC support: $OSC
+ DSSI support: $DSSI
+ FluidSynth: $muse_enable_fluidlib
+
+ jade: $jade_report
+ doxygen: $DOXYGEN
+ graphviz: $DOT
+ perl: $PERL
+ treeviews in doxygen
+ html output: $report_doxy_treeview
+
+ C++ compiler: $CXX
+ optimizing: $report_optimise
+ debug: $report_debug
+ optimise for arch: $report_march
+ SSE optimizations $report_sse
+ python bindings: $enable_python
+
+ installation prefix: $prefix
+
+ Deprecated:
+ ---------------------------------------------------
+ using rtcap: $report_rtcap
+ setuid root install: $SUIDINSTALL
+ setuid root build: $SUIDBUILD
+ VST/win support: $VST
+
+" >&5
+$as_echo "$as_me:
+ QTDIR $QTDIR
+ QTDIR_INC $QTDIR_INC
+ QTDIR_BIN $QTDIR_BIN
+ QT_LIBS $QT_LIBS
+
+ MusE configured
+
+ LASH support: $LASH_FOUND
+ OSC support: $OSC
+ DSSI support: $DSSI
+ FluidSynth: $muse_enable_fluidlib
+
+ jade: $jade_report
+ doxygen: $DOXYGEN
+ graphviz: $DOT
+ perl: $PERL
+ treeviews in doxygen
+ html output: $report_doxy_treeview
+
+ C++ compiler: $CXX
+ optimizing: $report_optimise
+ debug: $report_debug
+ optimise for arch: $report_march
+ SSE optimizations $report_sse
+ python bindings: $enable_python
+
+ installation prefix: $prefix
+
+ Deprecated:
+ ---------------------------------------------------
+ using rtcap: $report_rtcap
+ setuid root install: $SUIDINSTALL
+ setuid root build: $SUIDBUILD
+ VST/win support: $VST
+
+" >&6;}
+
diff --git a/muse2/configure.ac b/muse2/configure.ac
new file mode 100644
index 00000000..7fa05361
--- /dev/null
+++ b/muse2/configure.ac
@@ -0,0 +1,817 @@
+dnl --------------------------------------------------
+dnl configure.ac for the MusE
+dnl --------------------------------------------------
+
+AC_INIT(MusE, 1.1)
+AC_CONFIG_SRCDIR(muse/app.cpp)
+AM_INIT_AUTOMAKE(1.1)
+AM_CONFIG_HEADER(config.h)
+### AM_MAINTAINER_MODE
+AM_ACLOCAL_INCLUDE(m4)
+
+dnl ***** Check for programs *****
+AC_PROG_CXX
+AC_PROG_LIBTOOL
+AC_PROG_LN_S
+
+###############
+### DocBook ###
+###############
+PGAC_PROG_JADE
+if test -n "$JADE"; then
+ PGAC_CHECK_DOCBOOK(4.1)
+ if test "$pgac_cv_check_docbook" = "yes"; then
+ PGAC_PATH_DOCBOOK_STYLESHEETS
+ if test -n "$DOCBOOKSTYLE"; then
+ DOCBOOKTARGETS="book1.html"
+ else
+ AC_MSG_WARN([DocBook stylesheets not found or not usable - documentation will not be built])
+ fi
+ else
+ AC_MSG_WARN([DocBook 4.1 DTD not found or not usable - documentation will not be built])
+ fi
+else
+ AC_MSG_WARN([jade not found - documentation will not be built])
+fi
+AC_SUBST(DOCBOOKTARGETS)
+
+###############
+### doxygen ###
+###############
+AC_ARG_VAR(DOXYGEN, Doxygen)
+AC_PATH_PROG(DOXYGEN, doxygen, no)
+
+################
+### graphviz ###
+################
+AC_ARG_VAR(DOT, The "dot" program from graphviz)
+AC_PATH_PROG(DOT, dot, no)
+if test "$DOT" != "no"; then
+ HAVEDOT=YES
+ DOTPATH=$( dirname "$DOT" )
+else
+ HAVEDOT=NO
+fi
+AC_SUBST(HAVEDOT)
+AC_SUBST(DOTPATH)
+
+############
+### perl ###
+############
+AC_ARG_VAR(PERL, Perl)
+AC_PATH_PROG(PERL, perl, no)
+if test "$PERL" == "no"; then
+ AC_MSG_WARN([you don't have perl installed! wierdo! (and doxygen might not like this)])
+fi
+
+dnl ***** Check for libraries *****
+
+#########
+### X ###
+#########
+AC_PATH_XTRA
+if test "$X_DISPLAY_MISSING" != ""; then
+ AC_MSG_ERROR([X required])
+fi
+
+
+
+##########
+### QT ###
+##########
+#CONFIGURE_QT(3.2.0, , AC_MSG_ERROR([need qt >= 3.2.0]))
+#if test "$muse_qttest" = "yes"; then
+# AC_LANG_PUSH([C++])
+# muse_save_CFLAGS="$CFLAGS"
+# CFLAGS="$CFLAGS $QT_CFLAGS"
+# muse_save_CXXFLAGS="$CXXFLAGS"
+# CXXFLAGS="$CXXFLAGS $QT_CFLAGS"
+# muse_save_LDFLAGS="$LDFLAGS"
+# LDFLAGS="$LDFLAGS $QT_LIBS"
+# AC_CHECK_LIB(qt-mt, qt_selection_property, [
+# true
+# ],[
+# AC_MSG_ERROR([
+#
+# MusE requires thread enabled QT (qt-mt) >= 3.2.0
+#
+# You can either compile your own version of QT (making sure you enable
+# threading!) or install the appropriate package for your distribution.
+#])
+# ])
+# CFLAGS="$muse_save_CFLAGS"
+# CXXFLAGS="$muse_save_CXXFLAGS"
+# LDFLAGS="$muse_save_LDFLAGS"
+# unset muse_save_CFLAGS
+# unset muse_save_CXXFLAGS
+# unset muse_save_LDFLAGS
+# AC_LANG_POP([C++])
+#fi
+
+QTDIR=/usr/share/qt4
+
+AC_MSG_RESULT($QTDIR)
+AC_PATH_XTRA
+QT_LIBS="-Wl,-rpath,$QTDIR/lib -L$QTDIR/lib -lQtGui -lQtOpenGL -lQtCore -lQt3Support $X_LIBS -lX11 -lXext -lXmu -lXt -lXi $X_EXTRA_LIBS -lGLU -lGL -lpthread"
+QTDIR_INC="-I$QTDIR/include -I$QTDIR/include/QtGui -I$QTDIR/include/QtCore -I$QTDIR/include/Qt3Support $X_CFLAGS -DQT_OPENGL_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED"
+QTDIR_BIN="$QTDIR/bin"
+
+
+############
+### ALSA ###
+############
+AM_PATH_ALSA(0.9.0,
+ true,
+ AC_MSG_ERROR([latest alsa (0.9.x) is required])
+)
+
+#################
+### fluidsynth ###
+#################
+LIBFLUIDSYNTH=
+muse_enable_fluidlib="yes"
+synth_fluidsynth="fluidsynth"
+synth_fluid="fluid"
+AC_ARG_ENABLE(fluidsynth,[ --disable-fluidsynth disable fluidsynth softsynth plugin],[
+ case "$enableval" in
+ "yes")
+ synth_fluidsynth="fluidsynth"
+ synth_fluid="fluid"
+ ;;
+ "no")
+ muse_enable_fluidlib="no"
+ synth_fluidsynth=""
+ synth_fluid=""
+ ;;
+ *)
+ AC_MSG_ERROR([must use --enable-fluidsynth(=yes/no) or --disable-fluidsynth])
+ ;;
+ esac
+])
+
+AM_CONDITIONAL(ENABLEFLUIDSYNTH, test "$muse_enable_fluidlib" = "yes")
+PKG_CHECK_MODULES(Fluidsynth, fluidsynth,
+ [FLUIDSYNTHDIRS="fluid fluidsynth"; AC_DEFINE(ENABLEFLUIDSYNTH, 1, [Compile fluidsynth])],
+ [AC_MSG_WARN([libfluidsynth not found; disabling fluidsynth plugins]) ;
+ muse_enable_fluidlib="no"]
+ )
+AC_SUBST(FLUIDSYNTHDIRS)
+AC_SUBST(synth_fluidsynth)
+AC_SUBST(synth_fluid)
+if test "$muse_enable_fluidlib" = "no"; then
+ synth_fluidsynth=""
+ synth_fluid=""
+fi
+
+
+###############
+### sndfile ###
+###############
+PKG_CHECK_MODULES(SNDFILE, sndfile >= 1.0.0,
+ true,
+ AC_MSG_ERROR([need libsndfile >= 1.0.0])
+)
+
+###############
+### libsamplerate ###
+###############
+PKG_CHECK_MODULES(SAMPLERATE, samplerate >= 0.1.0,
+ true,
+ AC_MSG_ERROR([need libsamplerate])
+)
+
+###############
+### libuuid ###
+###############
+AC_CHECK_HEADER(uuid/uuid.h, UUID_FOUND="yes", UUID_FOUND="no")
+if test x$UUID_FOUND = xno; then
+ AC_MSG_ERROR([Header file uuid.h, from the uuid-dev (sometimes in e2fsprogs) package, is required])
+fi
+
+AC_CHECK_LIB(uuid, uuid_generate, UUID_FOUND="yes", UUID_FOUND="no")
+if test x$UUID_FOUND = xno; then
+ AC_MSG_ERROR([libuuid (sometimes in e2fsprogs package) is required])
+fi
+UUID_LIBS="-luuid"
+AC_SUBST(UUID_CFLAGS)
+AC_SUBST(UUID_LIBS)
+
+## PKG_CHECK_MODULES(UUID, uuid >= 1.0,
+## true,
+## AC_MSG_ERROR([need libuuid >= 1.0 from e2fsprogs package])
+## )
+
+############
+### JACK ###
+############
+
+PKG_CHECK_MODULES(JACK,
+ jack >= 0.98.0,
+ true,
+ AC_MSG_ERROR([need JACK >= 0.98.0])
+ )
+
+##############
+### LASH ###
+##############
+muse_enable_lash="no"
+AC_ARG_ENABLE(lash,
+ [ --enable-lash enable LASH support],[
+ case "$enableval" in
+ "yes")
+ muse_enable_lash="yes"
+ ;;
+ "no")
+ muse_enable_lash="no"
+ ;;
+ *)
+ AC_MSG_ERROR([must use --enable-lash(=yes/no) or --disable-lash])
+ ;;
+ esac
+])
+
+if test "$muse_enable_lash" = "yes"; then
+ PKG_CHECK_MODULES(LASH, lash-1.0 >= 0.2, LASH_FOUND="yes", LASH_FOUND="no")
+ AC_SUBST(LASH_CFLAGS)
+ AC_SUBST(LASH_LIBS)
+
+ if test "$LASH_FOUND" = "yes"; then
+ AC_DEFINE(HAVE_LASH, 1, [whether or not we are supporting lash])
+ LASH_VERSION=$( pkg-config --modversion lash-1.0 )
+ AC_DEFINE_UNQUOTED(LASH_VERSION, "$LASH_VERSION", [The version of lash we're compiling against])
+ fi
+else
+ AC_MSG_WARN([LASH support is disabled])
+ LASH_FOUND="no"
+fi
+AM_CONDITIONAL(HAVE_LASH, test "$LASH_FOUND" = "yes")
+
+
+dnl ***** Check for header files *****
+
+dnl ***** Check for options *****
+
+#################
+### givertcap ###
+#################
+
+GIVERTCAP=
+report_rtcap="no"
+AC_ARG_ENABLE(rtcap,
+ [ --enable-rtcap (deprecated) use Tommi Ilmonen's "givertcap" to give
+ realtime capabilities],[
+ case "$enableval" in
+ "yes")
+ AC_DEFINE(RTCAP, 1, [Use givertcap])
+ MUSECXXFLAGS="$MUSECXXFLAGS -DRTCAP"
+ GIVERTCAP="givertcap"
+
+ AC_CHECK_HEADER(sys/capability.h,
+ report_rtcap="yes",
+ AC_MSG_ERROR([Missing sys/capability.h]))
+ ;;
+ "no")
+ ;;
+ *)
+ AC_MSG_ERROR([must use --enable-rtcap(=yes/no) or --disable-rtcap])
+ esac
+])
+AM_CONDITIONAL(RTCAP, test "$report_rtcap" = "yes")
+AC_SUBST(GIVERTCAP)
+
+
+####################
+### suid-install ###
+####################
+
+SUIDINSTALL="no"
+AC_ARG_ENABLE(suid-install,
+ [ --enable-suid-install (deprecated) install MusE setuid root (with kernel 2.6, use realtime-lsm instead)],[
+ case "$enableval" in
+ "yes")
+ SUIDINSTALL="yes"
+ ;;
+ "no")
+ ;;
+ *)
+ AC_MSG_ERROR([must use --enable-suid-install(=yes/no) or --disable-suid-install])
+ ;;
+ esac
+])
+AC_SUBST(SUIDINSTALL)
+
+##################
+### suid-build ###
+##################
+SUIDBUILD="no"
+AC_ARG_ENABLE(suid-build,
+ [ --enable-suid-build (deprecated) build MusE setuid root(with kernel 2.6, use realtime-lsm instead)],[
+ case "$enableval" in
+ "yes")
+ SUIDBUILD="yes"
+ ;;
+ "no")
+ SUIDBUILD="no"
+ ;;
+ *)
+ AC_MSG_ERROR([must use --enable-suid-build(=yes/no) or --disable-suid-build])
+ ;;
+ esac
+])
+AC_SUBST(SUIDBUILD)
+
+
+########################
+### doxygen-treeview ###
+########################
+DOXYGEN_TREEVIEW="YES"
+report_doxy_treeview="yes";
+AC_ARG_ENABLE(doxy-treeview,
+ [ --disable-doxy-treeview stop Doxygen from generating java-ified
+ treeview menus in its HTML output],[
+ case "$enableval" in
+ "yes")
+ ;;
+ "no")
+ DOXYGEN_TREEVIEW="NO"
+ report_doxy_treeview="no";
+ ;;
+ *)
+ AC_MSG_ERROR([must use --enable-doxy-treeview(=yes/no) or --disable-doxy-treeview])
+ ;;
+ esac
+])
+AC_SUBST(DOXYGEN_TREEVIEW)
+
+################
+### patchbay ###
+################
+###PATCHBAY="no"
+###AC_SUBST(PATCHBAY)
+###AM_CONDITIONAL(PATCHBAY, test "$PATCHBAY" == "yes")
+
+## -DQT_NO_CAST_ASCII
+MUSECXXFLAGS="-g -fno-exceptions -Wall -W -D_GNU_SOURCE -D_REENTRANT \
+ -DQT_CLEAN_NAMESPACE -DQT_NO_COMPAT \
+ -I\$(top_srcdir) -I\$(top_srcdir)/muse/widgets \$(QT_CFLAGS)"
+
+#MUSEOPTCXXFLAGS="-O6 -fomit-frame-pointer -ffast-math -fstrength-reduce \
+#-funroll-loops"
+#MUSEOPTCXXFLAGS="-O2"
+MUSEOPTCXXFLAGS="-O3 -fomit-frame-pointer -ffast-math -fstrength-reduce -funroll-loops"
+
+# -fmove-all-movables
+
+################
+### optimize ###
+################
+report_optimise="no"
+AC_ARG_ENABLE(optimize,
+ [ --enable-optimize ask the compiler for its best optimizations (possibly only i386)],[
+ case "$enableval" in
+ "yes")
+ report_optimise="yes"
+ CXXFLAGS="$( echo "$CXXFLAGS" | sed "s/-O.[ ]*//" )"
+ MUSECXXFLAGS="$MUSECXXFLAGS $MUSEOPTCXXFLAGS"
+ ;;
+ "no")
+ ;;
+ *)
+ AC_MSG_ERROR([must use --enable-optimize(=yes/no) or --disable-optimize])
+ ;;
+ esac
+ ])
+
+#############
+### debug ###
+#############
+report_debug="no"
+AC_ARG_ENABLE(debug,
+ [ --enable-debug disable optimizations],[
+ case "$enableval" in
+ "yes")
+ report_debug="yes"
+ CXXFLAGS=""
+ ;;
+ "no")
+ ;;
+ *)
+ AC_MSG_ERROR([must use --enable-debug(=yes/no) or --disable-debug])
+ ;;
+ esac
+ ])
+
+###########################
+### PCH ###
+### precompiled headers ###
+###########################
+
+AC_ARG_ENABLE(pch,
+ [ --enable-pch enable precompiled headers (gcc 3.4 required)],[
+ case "$enableval" in
+ "yes")
+ MUSECXXFLAGS="$MUSECXXFLAGS -Winvalid-pch"
+ PCH="yes"
+ AC_SUBST(PCH)
+ AC_DEFINE(PCH, 1, [whether or not we use precompiled headers])
+ ;;
+ "no")
+ ;;
+ *)
+ AC_MSG_ERROR([must use --enable-pch(=yes/no) or --disable-pch])
+ ;;
+ esac
+ ])
+AM_CONDITIONAL(PCH, test "$PCH" = "yes")
+
+############
+### arch ###
+############
+
+report_march="none"
+AC_ARG_ENABLE(arch,
+[ --enable-arch=ARCH use -march=ARCH and -mtune=ARCH argument to CXX
+ choose from any supported gcc architecture such as:
+ 386, 486, 586, 686, pentium, pentiumpro, k6, athlon...],[
+ case "$enableval" in
+ "no")
+ ;;
+ *)
+ report_march="$enableval"
+ MUSECXXFLAGS="$MUSECXXFLAGS -mtune=$enableval -march=$enableval"
+ ;;
+ esac
+ ])
+
+###########################
+### SSE ###
+### SSE optimizations ###
+###########################
+
+report_sse="no"
+AC_ARG_ENABLE(sse,
+ [ --enable-sse enable SSE optimizations],[
+ case "$enableval" in
+ "yes")
+ ## MUSECXXFLAGS="$MUSECXXFLAGS -Winvalid-pch"
+ report_sse="yes"
+ USE_SSE="yes"
+ AC_SUBST(USE_SSE)
+ AC_DEFINE(USE_SSE, 1, [whether or not to enable SSE])
+ ;;
+ "no")
+ ;;
+ *)
+ AC_MSG_ERROR([must use --enable-sse(=yes/no) or --disable-sse])
+ ;;
+ esac
+ ])
+AM_CONDITIONAL(USE_SSE, test "$USE_SSE" = "yes")
+
+##########
+# PYTHON #
+##########
+# python detection borrowed from libvirt (http://libvirt.org)
+AC_ARG_WITH([python],
+[ --enable-python Build python bindings (on)],[],[enable_python=yes])
+
+PYTHON_VERSION=
+PYTHON_INCLUDES=
+if test "$enable_python" != "no" ; then
+ if test -x "$enable_python/bin/python"
+ then
+ AC_MSG_NOTICE(Found python in $enable_python/bin/python)
+ PYTHON="$enable_python/bin/python"
+ enable_python=yes
+ else
+ if test -x "$enable_python"
+ then
+ AC_MSG_NOTICE(Found python in $enable_python)
+ PYTHON="$enable_python"
+ enable_python=yes
+ else
+ if test -x "$PYTHON"
+ then
+ AC_MSG_NOTICE(Found python in environment PYTHON=$PYTHON)
+ enable_python=yes
+ fi
+ fi
+ fi
+
+ if test "$enable_python" == "yes" ; then
+ AM_PATH_PYTHON(,, [:])
+
+ if test "$PYTHON" != : ; then
+ PYTHON_CONFIG="$PYTHON-config"
+
+ if test -x "$PYTHON_CONFIG"
+ then
+ PYTHON_INCLUDES=`$PYTHON_CONFIG --includes`
+ PYTHON_LIB=`$PYTHON_CONFIG --libs`
+ else
+ if test -r $PYTHON_EXEC_PREFIX/include/python$PYTHON_VERSION/Python.h
+ then
+ PYTHON_INCLUDES=-I$PYTHON_EXEC_PREFIX/include/python$PYTHON_VERSION
+ else
+ if test -r $prefix/include/python$PYTHON_VERSION/Python.h
+ then
+ PYTHON_INCLUDES=-I$prefix/include/python$PYTHON_VERSION
+ else
+ if test -r /usr/include/python$PYTHON_VERSION/Python.h
+ then
+ PYTHON_INCLUDES=-I/usr/include/python$PYTHON_VERSION
+ else
+ AC_MSG_NOTICE([Could not find python$PYTHON_VERSION/Python.h, disabling bindings])
+ enable_python=no
+ fi
+ fi
+ fi
+ fi
+ else
+ AC_MSG_NOTICE([Could not find python interpreter, disabling bindings])
+ enable_python=no
+ fi
+ else
+ AC_MSG_NOTICE([Could not find python in $enable_python, disabling bindings])
+ enable_python=no
+ fi
+fi
+AM_CONDITIONAL(ENABLE_PYTHON, test "$enable_python" = "yes")
+AC_SUBST([PYTHON_VERSION])
+AC_SUBST([PYTHON_INCLUDES])
+AC_SUBST([PYTHON_LIB])
+
+#AC_ARG_ENABLE(python,
+#enable_python="yes"
+# [ --disable-python disable python bindings for MusE],[
+# case "$enableval" in
+# "no")
+# enable_python="no"
+# ;;
+# *)
+# AC_MSG_ERROR([must use --enable-python(=yes/no) or --disable-python])
+# ;;
+# esac
+# ])
+#
+#if test "$enable_python" = "yes"; then
+# AM_PATH_PYTHON
+# PYTHON_INCLUDE_DIR=""
+# if test -n "$PYTHON_INCLUDES" ; then
+# PYTHON_INCLUDE_DIR=$PYTHON_INCLUDES
+# python_bindings="yes"
+# else
+# python_bindings="no - devel pkg not found"
+# fi
+#fi
+#AM_CONDITIONAL(ENABLE_PYTHON, test "$python_bindings" = "yes")
+
+###################
+### vst plugins ###
+###################
+
+vst_possible=no
+VST="no"
+AC_ARG_ENABLE(vst,[ --enable-vst (deprecated, use dssi) build VST/win support. (disabled by default) ],
+ [ if test x$enable_vst = xyes ; then
+ vst_requested=yes;
+ fi
+ ]
+)
+
+if test x$vst_requested = xyes ; then
+ PKG_CHECK_MODULES(FST,libfst, [ vst_possible=yes ], [ vst_possible=no ])
+fi
+
+if test x$vst_possible = xyes -a x$vst_requested = xyes ; then
+ AC_MSG_CHECKING([support for VST/win plugins])
+ VST_CFLAGS="$FST_CFLAGS"
+ VST_LIBS="$FST_LIBS"
+ VST="yes"
+ AC_DEFINE(VST_SUPPORT, 1, [support for VST/win plugins])
+fi
+
+AM_CONDITIONAL(VST_SUPPORT, test x$vst_possible = xyes -a x$vst_requested = xyes)
+
+
+###################
+### OSC support ###
+###################
+
+osc_requested=no
+LO_LIB_FOUND="no"
+OSC="no"
+AC_ARG_ENABLE(osc,[ --enable-osc build OSC support. (disabled by default)
+ --enable-dssi is also recommended! ],
+ [ if test x$enable_osc = xyes ; then
+ osc_requested=yes;
+ fi
+ ]
+)
+
+if test x$osc_requested = xyes ; then
+ AC_MSG_CHECKING([support for OSC])
+## AC_CHECK_LIB(lo, lo_send, LO_LIB_FOUND="yes", LO_LIB_FOUND="no")
+## PKG_CHECK_MODULES(LO, lo >= 0.2, LO_LIB_FOUND="yes", LO_LIB_FOUND="no")
+ PKG_CHECK_MODULES(LO,liblo, [ LO_LIB_FOUND=yes ], [ LO_LIB_FOUND=no ])
+ if test x$LO_LIB_FOUND = xno; then
+ AC_MSG_ERROR([Library liblo from The Lightweight OSC Implementation is required])
+ fi
+fi
+
+if test x$LO_LIB_FOUND = xyes ; then
+ LO_CFLAGS="$LO_CFLAGS"
+ ##LO_LIBS="$LO_LIBS"
+ LO_LIBS="-llo"
+ OSC="yes"
+ AC_SUBST(LO_CFLAGS)
+ AC_SUBST(LO_LIBS)
+ AC_DEFINE(OSC_SUPPORT, 1, [support for OSC])
+fi
+
+AM_CONDITIONAL(OSC_SUPPORT, test x$LO_LIB_FOUND = xyes)
+
+## LO_LIBS="-llo"
+## AC_SUBST(LO_CFLAGS)
+## AC_SUBST(LO_LIBS)
+
+## PKG_CHECK_MODULES(LO, lo >= 0.23,
+## true,
+## AC_MSG_ERROR([need liblo >= 0.23 ])
+## )
+
+
+
+###################
+### dssi plugins ###
+###################
+
+dssi_requested=no
+## LO_LIB_FOUND="no"
+DSSI_H_FOUND="no"
+DSSI="no"
+AC_ARG_ENABLE(dssi,[ --enable-dssi build DSSI + DSSI-Vst support. (disabled by default)
+ --enable-osc is also recommended! ],
+ [ if test x$enable_dssi = xyes ; then
+ dssi_requested=yes;
+ fi
+ ]
+)
+
+
+if test x$dssi_requested = xyes ; then
+ AC_MSG_CHECKING([support for DSSI + DSSI-Vst plugins])
+ ## AC_CHECK_LIB(lo, lo_send, LO_LIB_FOUND="yes", LO_LIB_FOUND="no")
+ ## PKG_CHECK_MODULES(LO, lo >= 0.2, LO_LIB_FOUND="yes", LO_LIB_FOUND="no")
+## PKG_CHECK_MODULES(LO,liblo, [ LO_LIB_FOUND=yes ], [ LO_LIB_FOUND=no ])
+## if test x$LO_LIB_FOUND = xno; then
+## AC_MSG_ERROR([Library liblo from The Lightweight OSC Implementation is required])
+## fi
+
+ AC_CHECK_HEADER(dssi.h, DSSI_FOUND="yes", DSSI_FOUND="no")
+ ## PKG_CHECK_MODULES(DSSI [ DSSI_FOUND=yes ], [ DSSI_FOUND=no ])
+ if test x$DSSI_FOUND = xno; then
+ AC_MSG_ERROR([Header file dssi.h from DSSI (Disposable Soft Synth Interface) is required])
+ fi
+fi
+
+## if test x$LO_LIB_FOUND = xyes -a x$DSSI_FOUND = xyes ; then
+if test x$DSSI_FOUND = xyes ; then
+## LO_CFLAGS="$LO_CFLAGS"
+ ##LO_LIBS="$LO_LIBS"
+## LO_LIBS="-llo"
+ DSSI="yes"
+## AC_SUBST(LO_CFLAGS)
+## AC_SUBST(LO_LIBS)
+ AC_DEFINE(DSSI_SUPPORT, 1, [support for DSSI + DSSI-Vst plugins])
+fi
+
+## AM_CONDITIONAL(DSSI_SUPPORT, test x$LO_LIB_FOUND = xyes -a x$DSSI_FOUND = xyes)
+AM_CONDITIONAL(DSSI_SUPPORT, test x$DSSI_FOUND = xyes)
+
+## LO_LIBS="-llo"
+## AC_SUBST(LO_CFLAGS)
+## AC_SUBST(LO_LIBS)
+
+## PKG_CHECK_MODULES(LO, lo >= 0.23,
+## true,
+## AC_MSG_ERROR([need liblo >= 0.23 ])
+## )
+
+
+
+
+######################################
+
+
+AC_DEFINE(HAVE_AUDIO, 1, [Make audio-specific code])
+AM_CONDITIONAL(HAVE_AUDIO, test "yes" = "yes")
+AC_SUBST(MUSECXXFLAGS)
+AC_SUBST(QTDIR_INC)
+AC_SUBST(QT_LIBS)
+AC_SUBST(QTDIR_BIN)
+
+if test -n "$GIVERTCAP"; then
+ SUIDINSTALL="no"
+ SUIDBUILD="no"
+ fi
+
+
+AC_OUTPUT([
+Makefile
+m4/Makefile
+al/Makefile
+doc/Makefile
+xpm/Makefile
+demos/Makefile
+grepmidi/Makefile
+packaging/Makefile
+muse/Makefile
+muse/widgets/Makefile
+muse/master/Makefile
+muse/midiedit/Makefile
+muse/arranger/Makefile
+muse/liste/Makefile
+muse/driver/Makefile
+muse/waveedit/Makefile
+muse/ctrl/Makefile
+muse/instruments/Makefile
+muse/mixer/Makefile
+muse/cliplist/Makefile
+muse/marker/Makefile
+muse/mplugins/Makefile
+muse/remote/Makefile
+share/Makefile
+share/drummaps/Makefile
+share/html/Makefile
+share/locale/Makefile
+share/wallpapers/Makefile
+share/instruments/Makefile
+share/plugins/Makefile
+share/templates/Makefile
+share/pybridge/Makefile
+share/scripts/Makefile
+synti/Makefile
+synti/libsynti/Makefile
+synti/fluidsynth/Makefile
+synti/fluid/Makefile
+synti/organ/Makefile
+synti/s1/Makefile
+synti/vam/Makefile
+synti/deicsonze/Makefile
+synti/simpledrums/Makefile
+lib/Makefile
+lib/synthi/Makefile
+lib/plugins/Makefile
+plugins/Makefile
+plugins/freeverb/Makefile
+plugins/pandelay/Makefile
+plugins/doublechorus/Makefile
+Doxyfile
+utils/Makefile
+])
+
+######## Show a configuration report ########
+if test -n "$JADE"; then
+ jade_report="$JADE";
+else
+ jade_report="not present"
+fi
+AC_MSG_NOTICE([
+ QTDIR $QTDIR
+ QTDIR_INC $QTDIR_INC
+ QTDIR_BIN $QTDIR_BIN
+ QT_LIBS $QT_LIBS
+
+ MusE configured
+
+ LASH support: $LASH_FOUND
+ OSC support: $OSC
+ DSSI support: $DSSI
+ FluidSynth: $muse_enable_fluidlib
+
+ jade: $jade_report
+ doxygen: $DOXYGEN
+ graphviz: $DOT
+ perl: $PERL
+ treeviews in doxygen
+ html output: $report_doxy_treeview
+
+ C++ compiler: $CXX
+ optimizing: $report_optimise
+ debug: $report_debug
+ optimise for arch: $report_march
+ SSE optimizations $report_sse
+ python bindings: $enable_python
+
+ installation prefix: $prefix
+
+ Deprecated:
+ ---------------------------------------------------
+ using rtcap: $report_rtcap
+ setuid root install: $SUIDINSTALL
+ setuid root build: $SUIDBUILD
+ VST/win support: $VST
+
+])
+
diff --git a/muse2/demos/Makefile.am b/muse2/demos/Makefile.am
new file mode 100644
index 00000000..c0a4c0bb
--- /dev/null
+++ b/muse2/demos/Makefile.am
@@ -0,0 +1 @@
+EXTRA_DIST = rasen.med
diff --git a/muse2/demos/Makefile.in b/muse2/demos/Makefile.in
new file mode 100644
index 00000000..5dde5fa7
--- /dev/null
+++ b/muse2/demos/Makefile.in
@@ -0,0 +1,415 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = demos
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal-include.m4 \
+ $(top_srcdir)/m4/alsa.m4 $(top_srcdir)/m4/docbook.m4 \
+ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
+ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
+ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+SOURCES =
+DIST_SOURCES =
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ALSA_CFLAGS = @ALSA_CFLAGS@
+ALSA_LIBS = @ALSA_LIBS@
+AMTAR = @AMTAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DOCBOOKSTYLE = @DOCBOOKSTYLE@
+DOCBOOKTARGETS = @DOCBOOKTARGETS@
+DOT = @DOT@
+DOTPATH = @DOTPATH@
+DOXYGEN = @DOXYGEN@
+DOXYGEN_TREEVIEW = @DOXYGEN_TREEVIEW@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+FLUIDSYNTHDIRS = @FLUIDSYNTHDIRS@
+FST_CFLAGS = @FST_CFLAGS@
+FST_LIBS = @FST_LIBS@
+Fluidsynth_CFLAGS = @Fluidsynth_CFLAGS@
+Fluidsynth_LIBS = @Fluidsynth_LIBS@
+GIVERTCAP = @GIVERTCAP@
+GREP = @GREP@
+HAVEDOT = @HAVEDOT@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JACK_CFLAGS = @JACK_CFLAGS@
+JACK_LIBS = @JACK_LIBS@
+JADE = @JADE@
+LASH_CFLAGS = @LASH_CFLAGS@
+LASH_LIBS = @LASH_LIBS@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LO_CFLAGS = @LO_CFLAGS@
+LO_LIBS = @LO_LIBS@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+MUSECXXFLAGS = @MUSECXXFLAGS@
+NM = @NM@
+NMEDIT = @NMEDIT@
+NSGMLS = @NSGMLS@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PCH = @PCH@
+PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+PYTHON = @PYTHON@
+PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
+PYTHON_INCLUDES = @PYTHON_INCLUDES@
+PYTHON_LIB = @PYTHON_LIB@
+PYTHON_PLATFORM = @PYTHON_PLATFORM@
+PYTHON_PREFIX = @PYTHON_PREFIX@
+PYTHON_VERSION = @PYTHON_VERSION@
+QTDIR_BIN = @QTDIR_BIN@
+QTDIR_INC = @QTDIR_INC@
+QT_LIBS = @QT_LIBS@
+RANLIB = @RANLIB@
+SAMPLERATE_CFLAGS = @SAMPLERATE_CFLAGS@
+SAMPLERATE_LIBS = @SAMPLERATE_LIBS@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SNDFILE_CFLAGS = @SNDFILE_CFLAGS@
+SNDFILE_LIBS = @SNDFILE_LIBS@
+STRIP = @STRIP@
+SUIDBUILD = @SUIDBUILD@
+SUIDINSTALL = @SUIDINSTALL@
+USE_SSE = @USE_SSE@
+UUID_CFLAGS = @UUID_CFLAGS@
+UUID_LIBS = @UUID_LIBS@
+VERSION = @VERSION@
+XMKMF = @XMKMF@
+X_CFLAGS = @X_CFLAGS@
+X_EXTRA_LIBS = @X_EXTRA_LIBS@
+X_LIBS = @X_LIBS@
+X_PRE_LIBS = @X_PRE_LIBS@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+have_docbook = @have_docbook@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+lt_ECHO = @lt_ECHO@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+pkgpyexecdir = @pkgpyexecdir@
+pkgpythondir = @pkgpythondir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+pyexecdir = @pyexecdir@
+pythondir = @pythondir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+synth_fluid = @synth_fluid@
+synth_fluidsynth = @synth_fluidsynth@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+EXTRA_DIST = rasen.med
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu demos/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu demos/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: install-am install-strip
+
+.PHONY: all all-am check check-am clean clean-generic clean-libtool \
+ distclean distclean-generic distclean-libtool distdir dvi \
+ dvi-am html html-am info info-am install install-am \
+ install-data install-data-am install-dvi install-dvi-am \
+ install-exec install-exec-am install-html install-html-am \
+ install-info install-info-am install-man install-pdf \
+ install-pdf-am install-ps install-ps-am install-strip \
+ installcheck installcheck-am installdirs maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-generic \
+ mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/muse2/demos/rasen.med b/muse2/demos/rasen.med
new file mode 100644
index 00000000..244a2158
--- /dev/null
+++ b/muse2/demos/rasen.med
@@ -0,0 +1,377 @@
+<?xml version="1.0"?>
+<muse version="1.0">
+ <configuration>
+ <geometry x="507" y="369" w="621" h="383">
+ </geometry>
+ <segmentsize>128</segmentsize>
+ <useAlsa>1</useAlsa>
+ <audioInput>Maestro3</audioInput>
+ <audioOutput>Maestro3</audioOutput>
+ <extendedMidi>1</extendedMidi>
+ <midiExportDivision>384</midiExportDivision>
+ <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>
+ <theme>Windows</theme>
+ <font0>Arial,10,-1,5,50,0,0,0,0,0</font0>
+ <font1>arial,8,-1,5,50,0,0,0,0,0</font1>
+ <font2>arial,10,-1,5,50,0,0,0,0,0</font2>
+ <font3>arial,10,-1,5,75,0,0,0,0,0</font3>
+ <font4>arial,8,-1,5,75,0,0,0,0,0</font4>
+ <font5>Lucidatypewriter,14,-1,5,75,0,0,0,0,0</font5>
+ <activityColor r="0" g="0" b="0"></activityColor>
+ <activityMode>0</activityMode>
+ <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>
+ <score>
+ <image>/usr/kde2/share/wallpapers/Paper01.jpg</image>
+ </score>
+ <printer type=1>
+ <cmd>lpr -</cmd>
+ <preview>gv %s &amp;</preview>
+ <file>mops.ps</file>
+ </printer>
+ <transport visible=0>
+ <geometry x="0" y="0" w="688" h="94"></geometry>
+ <handlecolor r="0" g="0" b="255"></handlecolor>
+ </transport>
+ <bigtime visible=0>
+ <geometry x="288" y="259" w="320" h="100"></geometry>
+ <foregroundcolor r="255" g="0" b="0"></foregroundcolor>
+ <backgroundcolor r="0" g="0" b="0"></backgroundcolor>
+ </bigtime>
+ <serialPort>
+ <name>serial1</name>
+ <path>/dev/cua/0</path>
+ <type>1</type>
+ <speed>15</speed>
+ <handshaking>0</handshaking>
+ <ports>1</ports>
+ </serialPort>
+ <arranger>
+ <info>1</info>
+ <split>347 247 </split>
+ <list>
+ <header> 7 6 5 4 3 2 1 0 8 </header>
+ </list>
+ <part_type>3</part_type>
+ <show_events>5</show_events>
+ <image>/usr/share/muse/wallpapers/stone1.gif</image>
+ <xpos>0</xpos>
+ <xmag>355</xmag>
+ <ypos>0</ypos>
+ <ymag>1</ymag>
+ <grid>0</grid>
+ </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>
+ <audiogroup idx="0">
+ <audionode>
+ <channels>2</channels>
+ <connect>Master</connect>
+ <volume>0.000000</volume>
+ <pan>0.000000</pan>
+ <mute>0</mute>
+ <solo>0</solo>
+ <prefader>0</prefader>
+ <off>0</off>
+ </audionode>
+ </audiogroup>
+ <audiogroup idx="1">
+ <audionode>
+ <channels>2</channels>
+ <connect>Master</connect>
+ <volume>0.000000</volume>
+ <pan>0.000000</pan>
+ <mute>0</mute>
+ <solo>0</solo>
+ <prefader>0</prefader>
+ <off>0</off>
+ </audionode>
+ </audiogroup>
+ <audiogroup idx="2">
+ <audionode>
+ <channels>2</channels>
+ <connect>Master</connect>
+ <volume>0.000000</volume>
+ <pan>0.000000</pan>
+ <mute>0</mute>
+ <solo>0</solo>
+ <prefader>1</prefader>
+ <off>0</off>
+ </audionode>
+ </audiogroup>
+ <audiogroup idx="3">
+ <audionode>
+ <channels>2</channels>
+ <connect>Master</connect>
+ <volume>0.000000</volume>
+ <pan>0.000000</pan>
+ <mute>0</mute>
+ <solo>0</solo>
+ <prefader>1</prefader>
+ <off>0</off>
+ </audionode>
+ </audiogroup>
+ <audiomaster>
+ <audionode>
+ <channels>2</channels>
+ <volume>1.000000</volume>
+ <pan>0.000000</pan>
+ <mute>0</mute>
+ <solo>0</solo>
+ <prefader>1</prefader>
+ <off>0</off>
+ </audionode>
+ </audiomaster>
+ <audioinput>
+ <audionode>
+ <channels>2</channels>
+ <connect>Master</connect>
+ <volume>0.000000</volume>
+ <pan>0.000000</pan>
+ <mute>1</mute>
+ <solo>0</solo>
+ <prefader>0</prefader>
+ <off>0</off>
+ </audionode>
+ </audioinput>
+ </sequencer>
+ <drumedit>
+ <quant>96</quant>
+ <raster>96</raster>
+ <width>600</width>
+ <height>400</height>
+ </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>
+ <score>
+ <quant>96</quant>
+ <raster>96</raster>
+ </score>
+ <waveedit>
+ <bgcolor r="255" g="255" b="255"></bgcolor>
+ <width>600</width>
+ <height>400</height>
+ </waveedit>
+ </configuration>
+ <song>
+ <name>Auf dem grünen Rasen</name>
+ <komponist1>Kinderlied</komponist1>
+ <name_font family="Carter" size="18" />
+ <author_font family="Carter" size="10" />
+ <pageno_font family="Carter" size="12" />
+ <measureno_font family="Carter" size="8" />
+ <trackname_font family="Carter" size="12" />
+ <lyrics_font family="Carter" size="8" />
+ <show_page_no>0</show_page_no>
+ <show_measure_no>1</show_measure_no>
+ <paper_width>210.000000</paper_width>
+ <paper_height>297.000000</paper_height>
+ <top_margin>10.000000</top_margin>
+ <bottom_margin>10.000000</bottom_margin>
+ <left_margin>10.000000</left_margin>
+ <right_margin>10.000000</right_margin>
+ <bars_page>4</bars_page>
+ <print_scale>1.000000</print_scale>
+ <show_track_name>0</show_track_name>
+ <master>1</master>
+ <loop>1</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>12288</len>
+ <follow>1</follow>
+ <miditrack>
+ <track type="0">
+ <channel>0</channel>
+ <device>0</device>
+ <inportMap>1</inportMap>
+ <inchannelMap>0</inchannelMap>
+ <name>piano</name>
+ <locked>0</locked>
+ <selected>1</selected>
+ <part>
+ <name>thats all</name>
+ <poslen tick="0" len="12288" />
+ <selected>1</selected>
+ <color>0</color>
+ <event tick="0" len="768" a="48" b="70" />
+ <event tick="0" len="384" a="64" b="70">
+ <attribute type="0" y="50">Auf</attribute>
+ </event>
+ <event tick="384" len="384" a="64" b="70">
+ <attribute type="0" y="50">dem</attribute>
+ </event>
+ <event tick="768" len="768" a="52" b="70" />
+ <event tick="768" len="384" a="67" b="70">
+ <attribute type="0" y="50">grü</attribute>
+ </event>
+ <event tick="1152" len="384" a="67" b="70">
+ <attribute type="0" y="50">nen</attribute>
+ </event>
+ <event tick="1536" len="1536" a="50" b="70" />
+ <event tick="1536" len="768" a="65" b="70">
+ <attribute type="0" y="50">Ra-</attribute>
+ </event>
+ <event tick="2304" len="768" a="62" b="70">
+ <attribute type="0" y="50">sen,</attribute>
+ </event>
+ <event tick="3072" len="768" a="52" b="70" />
+ <event tick="3072" len="384" a="60" b="70">
+ <attribute type="0" y="50">wo</attribute>
+ </event>
+ <event tick="3456" len="384" a="62" b="70">
+ <attribute type="0" y="50">die</attribute>
+ </event>
+ <event tick="3840" len="768" a="48" b="70" />
+ <event tick="3840" len="384" a="64" b="70">
+ <attribute type="0" y="50">Veil-</attribute>
+ </event>
+ <event tick="4224" len="384" a="65" b="70">
+ <attribute type="0" y="50">chen</attribute>
+ </event>
+ <event tick="4608" len="1152" a="55" b="70" />
+ <event tick="4608" len="1152" a="62" b="70">
+ <attribute type="0" y="50">blühn,</attribute>
+ </event>
+ <event tick="6144" len="768" a="50" b="70" />
+ <event tick="6144" len="384" a="65" b="70">
+ <attribute type="0" y="50">geht</attribute>
+ </event>
+ <event tick="6528" len="384" a="65" b="70">
+ <attribute type="0" y="50">mein</attribute>
+ </event>
+ <event tick="6912" len="768" a="55" b="70" />
+ <event tick="6912" len="384" a="64" b="70">
+ <attribute type="0" y="50">Schäf</attribute>
+ </event>
+ <event tick="7296" len="384" a="64" b="70">
+ <attribute type="0" y="50">chen</attribute>
+ </event>
+ <event tick="7680" len="768" a="53" b="70" />
+ <event tick="7680" len="768" a="62" b="70">
+ <attribute type="0" y="50">gra-</attribute>
+ </event>
+ <event tick="8448" len="768" a="52" b="70" />
+ <event tick="8448" len="768" a="67" b="70">
+ <attribute type="0" y="50">sen,</attribute>
+ </event>
+ <event tick="9216" len="768" a="53" b="70" />
+ <event tick="9216" len="384" a="67" b="70">
+ <attribute type="0" y="50">in</attribute>
+ </event>
+ <event tick="9600" len="384" a="65" b="70">
+ <attribute type="0" y="50">dem</attribute>
+ </event>
+ <event tick="9984" len="768" a="55" b="70" />
+ <event tick="9984" len="384" a="64" b="70">
+ <attribute type="0" y="50">fri-</attribute>
+ </event>
+ <event tick="10368" len="384" a="62" b="70">
+ <attribute type="0" y="50">schen</attribute>
+ </event>
+ <event tick="10752" len="1152" a="48" b="70" />
+ <event tick="10752" len="1152" a="60" b="70">
+ <attribute type="0" y="50">Grün.</attribute>
+ </event>
+ </part>
+ </track>
+ <staff sys=0>
+ <key>0</key>
+ <scale>0</scale>
+ </staff>
+ <staff sys=1>
+ <key>4</key>
+ <scale>0</scale>
+ </staff>
+ <noteQuant>384</noteQuant>
+ <restQuant>384</restQuant>
+ <staffmode>1</staffmode>
+ <splitpoint>60</splitpoint>
+ <transposition>0</transposition>
+ <velocity>0</velocity>
+ <delay>0</delay>
+ <len>100</len>
+ <compression>100</compression>
+ <mute>0</mute>
+ <solo>0</solo>
+ <midiThru>1</midiThru>
+ <record>0</record>
+ </miditrack>
+ <tempolist fix="500000">
+ <tempo at="21474836">
+ <tick>0</tick>
+ <val>500000</val>
+ </tempo>
+ </tempolist>
+ <siglist>
+ <sig at="21474836">
+ <tick>0</tick>
+ <nom>4</nom>
+ <denom>4</denom>
+ </sig>
+ </siglist>
+ <AudioInRoute>Master</AudioInRoute>
+ </song>
+ <cpos>3840</cpos>
+ <rpos>12288</rpos>
+ <lpos>0</lpos>
+ <drummap>
+ </drummap>
+ </muse>
diff --git a/muse2/depcomp b/muse2/depcomp
new file mode 120000
index 00000000..b0ad20c0
--- /dev/null
+++ b/muse2/depcomp
@@ -0,0 +1 @@
+/usr/share/automake-1.11/depcomp \ No newline at end of file
diff --git a/muse2/doc/Makefile.am b/muse2/doc/Makefile.am
new file mode 100644
index 00000000..50a9d8d8
--- /dev/null
+++ b/muse2/doc/Makefile.am
@@ -0,0 +1,13 @@
+EXTRA_DIST = midieditfunctions.png muse.sgm
+
+CLEANFILES = $(wildcard *.html) $(wildcard *.fot) doxygen-stamp
+
+all-local: @DOCBOOKTARGETS@
+
+manual: book1.html
+
+book1.html: muse.sgm
+ $(JADE) -t sgml -d @DOCBOOKSTYLE@/html/docbook.dsl muse.sgm
+
+distclean-local:
+ rm -rf html/
diff --git a/muse2/doc/Makefile.in b/muse2/doc/Makefile.in
new file mode 100644
index 00000000..bc152692
--- /dev/null
+++ b/muse2/doc/Makefile.in
@@ -0,0 +1,428 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = doc
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal-include.m4 \
+ $(top_srcdir)/m4/alsa.m4 $(top_srcdir)/m4/docbook.m4 \
+ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
+ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
+ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+SOURCES =
+DIST_SOURCES =
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ALSA_CFLAGS = @ALSA_CFLAGS@
+ALSA_LIBS = @ALSA_LIBS@
+AMTAR = @AMTAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DOCBOOKSTYLE = @DOCBOOKSTYLE@
+DOCBOOKTARGETS = @DOCBOOKTARGETS@
+DOT = @DOT@
+DOTPATH = @DOTPATH@
+DOXYGEN = @DOXYGEN@
+DOXYGEN_TREEVIEW = @DOXYGEN_TREEVIEW@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+FLUIDSYNTHDIRS = @FLUIDSYNTHDIRS@
+FST_CFLAGS = @FST_CFLAGS@
+FST_LIBS = @FST_LIBS@
+Fluidsynth_CFLAGS = @Fluidsynth_CFLAGS@
+Fluidsynth_LIBS = @Fluidsynth_LIBS@
+GIVERTCAP = @GIVERTCAP@
+GREP = @GREP@
+HAVEDOT = @HAVEDOT@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JACK_CFLAGS = @JACK_CFLAGS@
+JACK_LIBS = @JACK_LIBS@
+JADE = @JADE@
+LASH_CFLAGS = @LASH_CFLAGS@
+LASH_LIBS = @LASH_LIBS@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LO_CFLAGS = @LO_CFLAGS@
+LO_LIBS = @LO_LIBS@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+MUSECXXFLAGS = @MUSECXXFLAGS@
+NM = @NM@
+NMEDIT = @NMEDIT@
+NSGMLS = @NSGMLS@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PCH = @PCH@
+PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+PYTHON = @PYTHON@
+PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
+PYTHON_INCLUDES = @PYTHON_INCLUDES@
+PYTHON_LIB = @PYTHON_LIB@
+PYTHON_PLATFORM = @PYTHON_PLATFORM@
+PYTHON_PREFIX = @PYTHON_PREFIX@
+PYTHON_VERSION = @PYTHON_VERSION@
+QTDIR_BIN = @QTDIR_BIN@
+QTDIR_INC = @QTDIR_INC@
+QT_LIBS = @QT_LIBS@
+RANLIB = @RANLIB@
+SAMPLERATE_CFLAGS = @SAMPLERATE_CFLAGS@
+SAMPLERATE_LIBS = @SAMPLERATE_LIBS@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SNDFILE_CFLAGS = @SNDFILE_CFLAGS@
+SNDFILE_LIBS = @SNDFILE_LIBS@
+STRIP = @STRIP@
+SUIDBUILD = @SUIDBUILD@
+SUIDINSTALL = @SUIDINSTALL@
+USE_SSE = @USE_SSE@
+UUID_CFLAGS = @UUID_CFLAGS@
+UUID_LIBS = @UUID_LIBS@
+VERSION = @VERSION@
+XMKMF = @XMKMF@
+X_CFLAGS = @X_CFLAGS@
+X_EXTRA_LIBS = @X_EXTRA_LIBS@
+X_LIBS = @X_LIBS@
+X_PRE_LIBS = @X_PRE_LIBS@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+have_docbook = @have_docbook@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+lt_ECHO = @lt_ECHO@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+pkgpyexecdir = @pkgpyexecdir@
+pkgpythondir = @pkgpythondir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+pyexecdir = @pyexecdir@
+pythondir = @pythondir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+synth_fluid = @synth_fluid@
+synth_fluidsynth = @synth_fluidsynth@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+EXTRA_DIST = midieditfunctions.png muse.sgm
+CLEANFILES = $(wildcard *.html) $(wildcard *.fot) doxygen-stamp
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu doc/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu doc/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile all-local
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+ -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-local
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: install-am install-strip
+
+.PHONY: all all-am all-local check check-am clean clean-generic \
+ clean-libtool distclean distclean-generic distclean-libtool \
+ distclean-local distdir dvi dvi-am html html-am info info-am \
+ install install-am install-data install-data-am install-dvi \
+ install-dvi-am install-exec install-exec-am install-html \
+ install-html-am install-info install-info-am install-man \
+ install-pdf install-pdf-am install-ps install-ps-am \
+ install-strip installcheck installcheck-am installdirs \
+ maintainer-clean maintainer-clean-generic mostlyclean \
+ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+ uninstall uninstall-am
+
+
+all-local: @DOCBOOKTARGETS@
+
+manual: book1.html
+
+book1.html: muse.sgm
+ $(JADE) -t sgml -d @DOCBOOKSTYLE@/html/docbook.dsl muse.sgm
+
+distclean-local:
+ rm -rf html/
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/muse2/doc/midieditfunctions.png b/muse2/doc/midieditfunctions.png
new file mode 100644
index 00000000..d3c7676a
--- /dev/null
+++ b/muse2/doc/midieditfunctions.png
Binary files differ
diff --git a/muse2/doc/muse.sgm b/muse2/doc/muse.sgm
new file mode 100644
index 00000000..4fbfd19a
--- /dev/null
+++ b/muse2/doc/muse.sgm
@@ -0,0 +1,493 @@
+<!doctype book public "-//OASIS//DTD DocBook V4.1//EN">
+<book lang="de">
+
+<!--comment-->
+<chapter><title>Einführung</title>
+ <sect1><title>Sequencer</title>
+ <para>
+ gibt einen kurzen Überblick über MusE; was ist MusE
+ und was kann man damit machen; zeigt den grundsätzlichen
+ Aufbau von Songfile <-> Sequencer/Editor <-> Tongenerator
+ </para>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="button_bar.jpg" format="jpg">
+ </imageobject>
+ </mediaobject>
+
+ <para>
+ Stichworte:
+ <itemizedlist>
+ <listitem><para>Sequencer</para></listitem>
+ <listitem><para>Midifiles</para></listitem>
+ <listitem><para>Kompositionstool</para></listitem>
+ <listitem><para>Editor</para></listitem>
+ </itemizedlist>
+ </para>
+ </sect1>
+
+ <sect1><title>Midi</title>
+ <para>
+ gibt eine kurze Einführung in Midi, soweit wie
+ für das Verständnis der nachfolgenden Kapitel
+ erforderlich
+ </para>
+ </sect1>
+
+ <sect1><title>Song</title>
+ <para>
+ Ein Song besteht in MusE aus Spuren (Tracks). Es gibt
+ mehrere verschiedene Spurklassen:
+
+ <itemizedlist>
+ <listitem><para>Midispuren</para>
+ <para>
+ </para>
+ </listitem>
+ <listitem><para>Schlagzeugspuren</para>
+ <para>
+ Eine Schlagzeugspur ist eine Midispur, die
+ Schlagzeug Noten enthält.
+ </para>
+ </listitem>
+ <listitem><para>Audiospuren</para>
+ <para>
+ eine Audiospur enthält Audiodaten
+ </para>
+ </listitem>
+ </itemizedlist>
+
+ Eine Spur ist in "Parts" unterteilt. Ein Part enthält
+ wiederum "Events".
+
+ </para>
+ </sect1>
+
+ <sect1><title>Konfiguration</title>
+ <sect2><title>Midi Ports</title>
+ <para>
+ Jeder Midispur von MusE muß ein Midigerät zugewiesen werden,
+ damit Events ausgegeben werden können. Dies geschieht nicht
+ direkt, sondern über eine Midi Port Liste. Die Portliste
+ verweist erst auf das eigentliche Midigerät. Dieser Mechanismus
+ erlaubt es, durch einfaches umkonfigurieren eines Midi Ports
+ auf ein anderes Midigerät, einen kompletten Song auf einen
+ anderen Ausgang umzuleiten, ohne jede Spur einzeln umändern
+ zu müssen.
+ </para>
+ <para>
+ MusE erlaubt die Konfiguration von bis zu 16 Midi Ports.
+ Ports werden von 0-15 gezählt.
+ Um überhaupt Midi spielen zu können muß mindestens ein
+ Port mit einem Midigerät konfiguriert werden.
+
+ <itemizedlist>
+ <listitem><para> start MusE
+ </para></listitem>
+ <listitem><para> öffne Pulldown Menu <command>Config->MidiPorts</command>
+ </para></listitem>
+ <listitem><para> click in Spalte <command>Name</command>
+ um die Midi Treiberliste zu bekommen
+ </para></listitem>
+ <listitem><para> Miditreiber auswählen
+ </para></listitem>
+ <listitem><para> prüfen der Spalte <literal>State</literal>
+ auf <literal> OK </literal>
+ </para></listitem>
+ <listitem><para> wird in <literal>State</literal> ein
+ device
+ </para></listitem>
+ </itemizedlist>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="midiports.png" format="png">
+ </imageobject>
+ </mediaobject>
+
+ </para>
+ </sect2>
+ </sect1>
+
+ <sect1><title>Erste Schritte</title>
+ <sect2><title>Abspielen eines Midi Files</title>
+ <para></para>
+ </sect2>
+ <sect2><title>Erstellen eines neuen Songs</title>
+ <para></para>
+ </sect2>
+ </sect1>
+ </chapter>
+
+
+<chapter><title>Arranger Funktionen</title>
+ <sect1><title>Übersicht</title>
+ <para>
+ Arranger Window (Main-Window)
+ - Part Canvas
+ - Trackliste
+ - Trackinfo
+ - Channelinfo
+ </para>
+ </sect1>
+
+ <sect1><title>Tracks</title>
+ <para>
+ die Trackliste
+ - Bedeutung der Spalten
+ Trackinfo
+ - Bedeutung der Werte
+ Channelinfo
+ - Bedeutung der Werte
+ - Wie funktionieren Initialwerte?
+
+ Tracks editieren
+ - markieren
+ - umbenennen
+ - verschieben
+ - löschen
+ - neue Tracks erstellen
+ </para>
+ </sect1>
+
+ <sect1><title>Parts</title>
+ <para>
+ Parts erstellen
+ Parts löschen
+ Parts editieren
+ - markieren
+ - verschieben
+ - verlängern/verkürzen
+ - dublizieren
+ - schneiden
+ - kleben
+ - umbenennen
+ </para>
+ </sect1>
+ </chapter>
+
+
+<chapter><title>Der Sequencer</title>
+ <sect1><title>Die Zeitachse</title>
+ <para>
+ Stickworte: ticks, beats, bar, resolution,
+ tempo, smpte zeit
+ </para>
+ </sect1>
+ <sect1><title>Transportfunktionen</title>
+ <para>
+ - Transportwindow
+ - start, stop, forward, rewind, ToStart, record
+ - marker: left, right, current
+ - loop, punchin, punchout
+ </para>
+ </sect1>
+
+ <sect1><title>Textmarker</title>
+ <para> </para>
+ </sect1>
+ </chapter>
+
+
+<chapter><title>Die Midi Editoren</title>
+ <sect1><title>Raster und Quantisierung</title>
+ <para> </para>
+ </sect1>
+ <sect1><title>Pianoroll Editor</title>
+ <para> </para>
+ </sect1>
+ <sect1><title>Drum Editor</title>
+ <para> </para>
+ </sect1>
+ <sect1><title>Kontroller Editor</title>
+ <para>
+ Beim Start eines Songs sind zunächst alle Midi Kontroller
+ undefiniert. Für Kontroller im ChannelInfo wird dies durch
+ den Wert "off" angezeigt. Wird ein Kontroller im ChannelInfo
+ auf einen Anfangswert gesetzt, so wird dieser Wert jeweils
+ beim Start des Songs gesendet.
+ </para>
+ <para>
+ -- erklären Timing-Probleme bei zu dicht gesetzten
+ kontrollern ---
+ </para>
+ <sect2><title>Midi Kontroller Typen</title>
+ <sect3><title>Velocity</title>
+ <para>
+ Die Anschlagstärke für ein Notenevent ist eigentlich
+ kein Midi Kontroller Wert, kann jedoch im Kontroller
+ Editor verändert werden. Die Anschlagstärke wird dabei
+ für jeden Ton als Strich dargestellt.
+ </para>
+ </sect3>
+ <sect3><title>7 Bit Kontroller</title>
+ <para> </para>
+ </sect3>
+ <sect3><title>14 Bit Kontroller</title>
+ <para> </para>
+ </sect3>
+ <sect3><title>RPN</title>
+ <para> </para>
+ </sect3>
+ <sect3><title>NRPN</title>
+ <para> </para>
+ </sect3>
+ <sect3><title>XG SysEx</title>
+ <para>
+ XG SysEx Controller sind z.Z. noch nicht implementiert.
+ </para>
+ </sect3>
+ <sect3><title>SysEx</title>
+ <para>
+ SysEx Controller sind z.Z. noch nicht implementiert.
+ </para>
+ </sect3>
+ </sect2>
+ <sect2><title>Editieren von Kontroller Events</title>
+ <para> </para>
+ </sect2>
+ <sect2><title>Einfügen von neuen Events</title>
+ <para> </para>
+ </sect2>
+ <sect2><title>Konfiguration von Kontroller Typen</title>
+ <para> </para>
+ </sect2>
+ </sect1>
+ <sect1><title>Score Editor</title>
+ <para> </para>
+ </sect1>
+ <sect1><title>List Editor</title>
+ <para> </para>
+ </sect1>
+ <sect1><title>Mastertrack Editor</title>
+ <sect2><title>Tempo</title>
+ <para> </para>
+ </sect2>
+ <sect2><title>Taktart</title>
+ <para> </para>
+ </sect2>
+ </sect1>
+
+ <sect1><title>Midi Editor Funktionen</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="midieditfunctions.png" format="png">
+ </imageobject>
+ </mediaobject>
+
+
+ <sect2><title>Quantize</title>
+ <para> </para>
+ </sect2>
+ <sect2><title>Modify Gate Time</title>
+ <para>
+ Mit der "Modify Gate Time" Funktion kann die Länge der
+ ausgewählten Noten absolut und relativ geändert werden.
+ </para>
+ <para>
+ Rate (0% ... 200%): Alle Gate Time-Werte werden mit diesem
+ Betrag multipliziert (relative Änderung). Wird 100% gewählt,
+ dann bleibt die Notenlänge erhalten. Größere Werte verlängern
+ Noten, kleinere Werte verkürzen Noten. Der Wert 0% stellt
+ die Länge der Note auf 1.
+ </para>
+ <para>
+ Offset (-999...+999): Der hier eingegebene Wert verlängert
+ eine Note um entsprechend viele Ticks.
+ </para>
+ <para>
+ Die beide Parameter "Rate" und "Offset" können getrennt oder
+ gemeinsam eingesetzt werden. Die Länge einer Note wird
+ zunächst mit dem "Rate"-Quotienten multipliziert. Erst
+ danach wird der Offset-Wert addiert.
+ </para>
+ </sect2>
+ <sect2><title>Modify Velocity</title>
+ <para> </para>
+ </sect2>
+ <sect2><title>Crescendo</title>
+ <para> </para>
+ </sect2>
+ <sect2><title>Transpose</title>
+ <para> </para>
+ </sect2>
+ <sect2><title>Thin Out</title>
+ <para> </para>
+ </sect2>
+ <sect2><title>Erase Event</title>
+ <para> </para>
+ </sect2>
+ <sect2><title>Note Shift</title>
+ <para> </para>
+ </sect2>
+ <sect2><title>Move Clock</title>
+ <para> </para>
+ </sect2>
+ <sect2><title>Copy Measure</title>
+ <para> </para>
+ </sect2>
+ <sect2><title>Erase Measure</title>
+ <para> </para>
+ </sect2>
+ <sect2><title>Delete Measure</title>
+ <para> </para>
+ </sect2>
+ <sect2><title>Create Measure</title>
+ <para> </para>
+ </sect2>
+ <sect2><title>Remove Overlaps</title>
+ <para> </para>
+ </sect2>
+ </sect1>
+
+ </chapter>
+
+<chapter><title>Midi Recording</title>
+ <sect1><title>Realtime Recording</title>
+ <sect2><title>Punchin und Punchout</title>
+ <para></para>
+ </sect2>
+ <sect2><title>Loop Recording</title>
+ <para></para>
+ </sect2>
+ <sect2><title>Metronome</title>
+ <para></para>
+ </sect2>
+ <sect2><title>Midi Fernsteuerung</title>
+ <para></para>
+ </sect2>
+ </sect1>
+ <sect1><title>Step Recording</title>
+ <para> </para>
+ </sect1>
+ <sect1><title>Midi Input Filter</title>
+ <para> </para>
+ </sect1>
+ <sect1><title>Midi Input Transformator</title>
+ <para> </para>
+ </sect1>
+ <sect1><title>Midi Mixer</title>
+ <para> </para>
+ </sect1>
+ </chapter>
+
+<chapter><title>Midi Sync</title>
+ <sect1><title>Master Mode</title>
+ <para> </para>
+ </sect1>
+ <sect1><title>Slave Mode</title>
+ <para> </para>
+ </sect1>
+ </chapter>
+
+<chapter><title>Device Konfiguration</title>
+ <para>
+ MusE benutzt für die Midi Ein- Ausgabe Midi Raw Devices.
+ Dies gibt MusE die volle Kontrolle über das
+ Midi Timing. Dies ist im wesentlichen der Grund, warum
+ MusE das RTC-Device benötigt.
+ MusE nutzt _nicht_ den OSS sequencer /dev/sequencer.
+ Bei ALSA nutzt MusE lediglich die Routing Funktionen
+ des ALSA Sequencers, nicht jedoch die Möglichkeit,
+ Events zu schedulen.
+ </para>
+ <sect1><title>Midi Devices</title>
+ <sect2><title>Serielle Geräte</title>
+ <para></para>
+ </sect2>
+ <sect2><title>OSS</title>
+ <para></para>
+ </sect2>
+ <sect2><title>ALSA</title>
+ <para></para>
+ </sect2>
+ <sect2><title>Pipes</title>
+ <para></para>
+ </sect2>
+ <sect2><title>virtuelle Ports</title>
+ <para></para>
+ </sect2>
+ </sect1>
+ <sect1><title>Audio Devices</title>
+ <sect2><title>ALSA</title>
+ <para></para>
+ </sect2>
+ <sect2><title>OSS</title>
+ <para></para>
+ </sect2>
+ <sect2><title>aRts</title>
+ <para></para>
+ </sect2>
+ </sect1>
+ </chapter>
+
+<chapter><title>Dateien</title>
+ <sect1><title>Midifile Import/Export</title>
+ <para></para>
+ </sect1>
+ <sect1><title>Muse Songfiles *.med</title>
+ <para></para>
+ </sect1>
+ <sect1><title>das globale Konfigurationsfile</title>
+ <para></para>
+ </sect1>
+ <sect1><title>das globale Konfigurationsfile</title>
+ <para></para>
+ </sect1>
+ <sect1><title>Drummaps</title>
+ <para></para>
+ </sect1>
+ </chapter>
+
+<appendix><title>Eine Einführung in Midi</title>
+ <sect1><title>Das Midi Protokoll</title>
+ <para> </para>
+ </sect1>
+ <sect1><title>Die Midi Hardware</title>
+ <para> </para>
+ </sect1>
+ <sect1><title>GM</title>
+ <para> </para>
+ </sect1>
+ <sect1><title>GS</title>
+ <para> </para>
+ </sect1>
+ <sect1><title>XG</title>
+ <para> </para>
+ </sect1>
+ <sect1><title>Standard Midi Files</title>
+ <para> </para>
+ </sect1>
+ <sect1><title>Midi Timing</title>
+ <para> </para>
+ </sect1>
+ <sect1><title>MTC</title>
+ <para> </para>
+ </sect1>
+ <sect1><title>MMC</title>
+ <para> </para>
+ </sect1>
+ </appendix>
+
+<appendix><title>MusE Installation</title>
+ <sect1><title>Systemvorraussetzungen</title>
+ <para> </para>
+ </sect1>
+ <sect1><title>Wo gibt es MusE</title>
+ <para> </para>
+ </sect1>
+ <sect1><title>Kompilieren</title>
+ <para> </para>
+ </sect1>
+ <sect1><title>Installation</title>
+ <para> </para>
+ </sect1>
+ </appendix>
+
+<appendix><title>Liste der Tastaturabkürzungen</title>
+ <para> </para>
+ </appendix>
+
+</book>
+
diff --git a/muse2/grepmidi/Makefile.am b/muse2/grepmidi/Makefile.am
new file mode 100644
index 00000000..8d77beea
--- /dev/null
+++ b/muse2/grepmidi/Makefile.am
@@ -0,0 +1,8 @@
+include $(top_srcdir)/common.am
+
+ACLOCAL_AMFLAGS = -I m4
+
+bin_PROGRAMS = grepmidi
+
+grepmidi_SOURCES = grepmidi.cpp
+
diff --git a/muse2/grepmidi/Makefile.in b/muse2/grepmidi/Makefile.in
new file mode 100644
index 00000000..0fec1ed1
--- /dev/null
+++ b/muse2/grepmidi/Makefile.in
@@ -0,0 +1,618 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
+ $(top_srcdir)/common.am
+bin_PROGRAMS = grepmidi$(EXEEXT)
+subdir = grepmidi
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal-include.m4 \
+ $(top_srcdir)/m4/alsa.m4 $(top_srcdir)/m4/docbook.m4 \
+ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
+ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
+ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+am__installdirs = "$(DESTDIR)$(bindir)"
+PROGRAMS = $(bin_PROGRAMS)
+am_grepmidi_OBJECTS = grepmidi.$(OBJEXT)
+grepmidi_OBJECTS = $(am_grepmidi_OBJECTS)
+grepmidi_LDADD = $(LDADD)
+DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
+depcomp = $(SHELL) $(top_srcdir)/depcomp
+am__depfiles_maybe = depfiles
+am__mv = mv -f
+CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
+LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
+CXXLD = $(CXX)
+CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \
+ $(LDFLAGS) -o $@
+SOURCES = $(grepmidi_SOURCES)
+DIST_SOURCES = $(grepmidi_SOURCES)
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ALSA_CFLAGS = @ALSA_CFLAGS@
+ALSA_LIBS = @ALSA_LIBS@
+AMTAR = @AMTAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DOCBOOKSTYLE = @DOCBOOKSTYLE@
+DOCBOOKTARGETS = @DOCBOOKTARGETS@
+DOT = @DOT@
+DOTPATH = @DOTPATH@
+DOXYGEN = @DOXYGEN@
+DOXYGEN_TREEVIEW = @DOXYGEN_TREEVIEW@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+FLUIDSYNTHDIRS = @FLUIDSYNTHDIRS@
+FST_CFLAGS = @FST_CFLAGS@
+FST_LIBS = @FST_LIBS@
+Fluidsynth_CFLAGS = @Fluidsynth_CFLAGS@
+Fluidsynth_LIBS = @Fluidsynth_LIBS@
+GIVERTCAP = @GIVERTCAP@
+GREP = @GREP@
+HAVEDOT = @HAVEDOT@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JACK_CFLAGS = @JACK_CFLAGS@
+JACK_LIBS = @JACK_LIBS@
+JADE = @JADE@
+LASH_CFLAGS = @LASH_CFLAGS@
+LASH_LIBS = @LASH_LIBS@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LO_CFLAGS = @LO_CFLAGS@
+LO_LIBS = @LO_LIBS@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+MUSECXXFLAGS = @MUSECXXFLAGS@
+NM = @NM@
+NMEDIT = @NMEDIT@
+NSGMLS = @NSGMLS@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PCH = @PCH@
+PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+PYTHON = @PYTHON@
+PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
+PYTHON_INCLUDES = @PYTHON_INCLUDES@
+PYTHON_LIB = @PYTHON_LIB@
+PYTHON_PLATFORM = @PYTHON_PLATFORM@
+PYTHON_PREFIX = @PYTHON_PREFIX@
+PYTHON_VERSION = @PYTHON_VERSION@
+QTDIR_BIN = @QTDIR_BIN@
+QTDIR_INC = @QTDIR_INC@
+QT_LIBS = @QT_LIBS@
+RANLIB = @RANLIB@
+SAMPLERATE_CFLAGS = @SAMPLERATE_CFLAGS@
+SAMPLERATE_LIBS = @SAMPLERATE_LIBS@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SNDFILE_CFLAGS = @SNDFILE_CFLAGS@
+SNDFILE_LIBS = @SNDFILE_LIBS@
+STRIP = @STRIP@
+SUIDBUILD = @SUIDBUILD@
+SUIDINSTALL = @SUIDINSTALL@
+USE_SSE = @USE_SSE@
+UUID_CFLAGS = @UUID_CFLAGS@
+UUID_LIBS = @UUID_LIBS@
+VERSION = @VERSION@
+XMKMF = @XMKMF@
+X_CFLAGS = @X_CFLAGS@
+X_EXTRA_LIBS = @X_EXTRA_LIBS@
+X_LIBS = @X_LIBS@
+X_PRE_LIBS = @X_PRE_LIBS@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+have_docbook = @have_docbook@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+lt_ECHO = @lt_ECHO@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+pkgpyexecdir = @pkgpyexecdir@
+pkgpythondir = @pkgpythondir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+pyexecdir = @pyexecdir@
+pythondir = @pythondir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+synth_fluid = @synth_fluid@
+synth_fluidsynth = @synth_fluidsynth@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+AM_CXXFLAGS = $(MUSECXXFLAGS) -I.. -I$(top_srcdir)/synti \
+ -I$(top_srcdir)/muse/widgets -DQT_SHARED -DQT_THREAD_SUPPORT \
+ -DQT_PLUGIN $(QTDIR_INC) -DQT3_SUPPORT
+AM_CPPFLAGS =
+MOC = $(QTDIR_BIN)/moc
+#UIC = $(QTDIR_BIN)/uic3
+UIC = /usr/bin/uic3
+UIFILES = $(wildcard *.ui)
+MOCFILES = $(shell for h in $(filter %.h,$(SOURCES)); do \
+ if grep -q Q_OBJECT $$h; then \
+ echo $$h | sed "s/\(.*\)\.h/moc_\1.cpp/"; \
+ fi; \
+ done)
+
+BUILT_SOURCES = $(MOCFILES) $(UIFILES:%.ui=%.h)
+MOSTLYCLEANFILES = $(MOCFILES) $(UIFILES:%.ui=%.h)
+SUFFIXES = .ui .h.gch
+ACLOCAL_AMFLAGS = -I m4
+grepmidi_SOURCES = grepmidi.cpp
+all: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) all-am
+
+.SUFFIXES:
+.SUFFIXES: .ui .h.gch .cpp .lo .o .obj
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/common.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu grepmidi/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu grepmidi/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+install-binPROGRAMS: $(bin_PROGRAMS)
+ @$(NORMAL_INSTALL)
+ test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)"
+ @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed 's/$(EXEEXT)$$//' | \
+ while read p p1; do if test -f $$p || test -f $$p1; \
+ then echo "$$p"; echo "$$p"; else :; fi; \
+ done | \
+ sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \
+ -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
+ sed 'N;N;N;s,\n, ,g' | \
+ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
+ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
+ if ($$2 == $$4) files[d] = files[d] " " $$1; \
+ else { print "f", $$3 "/" $$4, $$1; } } \
+ END { for (d in files) print "f", d, files[d] }' | \
+ while read type dir files; do \
+ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
+ test -z "$$files" || { \
+ echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \
+ $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \
+ } \
+ ; done
+
+uninstall-binPROGRAMS:
+ @$(NORMAL_UNINSTALL)
+ @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
+ files=`for p in $$list; do echo "$$p"; done | \
+ sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
+ -e 's/$$/$(EXEEXT)/' `; \
+ test -n "$$list" || exit 0; \
+ echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \
+ cd "$(DESTDIR)$(bindir)" && rm -f $$files
+
+clean-binPROGRAMS:
+ @list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \
+ echo " rm -f" $$list; \
+ rm -f $$list || exit $$?; \
+ test -n "$(EXEEXT)" || exit 0; \
+ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
+ echo " rm -f" $$list; \
+ rm -f $$list
+grepmidi$(EXEEXT): $(grepmidi_OBJECTS) $(grepmidi_DEPENDENCIES)
+ @rm -f grepmidi$(EXEEXT)
+ $(CXXLINK) $(grepmidi_OBJECTS) $(grepmidi_LDADD) $(LIBS)
+
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT)
+
+distclean-compile:
+ -rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/grepmidi.Po@am__quote@
+
+.cpp.o:
+@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $<
+
+.cpp.obj:
+@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+
+.cpp.lo:
+@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $<
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ mkid -fID $$unique
+tags: TAGS
+
+TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ set x; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: CTAGS
+CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) check-am
+all-am: Makefile $(PROGRAMS)
+installdirs:
+ for dir in "$(DESTDIR)$(bindir)"; do \
+ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ done
+install: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+ -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES)
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+ -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
+clean: clean-am
+
+clean-am: clean-binPROGRAMS clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+ distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am: install-binPROGRAMS
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+ mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-binPROGRAMS
+
+.MAKE: all check install install-am install-strip
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \
+ clean-generic clean-libtool ctags distclean distclean-compile \
+ distclean-generic distclean-libtool distclean-tags distdir dvi \
+ dvi-am html html-am info info-am install install-am \
+ install-binPROGRAMS install-data install-data-am install-dvi \
+ install-dvi-am install-exec install-exec-am install-html \
+ install-html-am install-info install-info-am install-man \
+ install-pdf install-pdf-am install-ps install-ps-am \
+ install-strip installcheck installcheck-am installdirs \
+ maintainer-clean maintainer-clean-generic mostlyclean \
+ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
+ pdf pdf-am ps ps-am tags uninstall uninstall-am \
+ uninstall-binPROGRAMS
+
+
+de:
+ @for base in $(MOCFILES); do echo -e "\t$${base}.cpp $${base}.h \\"; done
+
+nde:
+ @for base in $(MOCFILES); do echo -e "\tmoc_$${base}.cpp \\"; done
+
+.ui.o: %.h
+ $(UIC) -L $(top_srcdir)/muse/widgets -o $*.cpp -impl $*.h $*.ui
+ $(MOC) $*.h >> $*.cpp
+ $(CXXCOMPILE) -c $*.cpp -o $*.o
+ $(RM) $*.cpp moc_$*.cpp moc_$*.o
+
+.ui.lo: %.h
+ $(UIC) -L $(top_srcdir)/muse/widgets -o $*.cpp -impl $*.h $*.ui
+ $(MOC) $*.h >> $*.cpp
+ $(LTCXXCOMPILE) -c $*.cpp -o $*.lo
+ $(RM) $*.cpp moc_$*.cpp moc_$*.lo moc_$*.o
+
+moc_%.cpp: %.h
+ $(MOC) $< -o $@
+
+%.h: %.ui
+ $(UIC) -o $@ $<
+# $(UIC) -L $(top_srcdir)/muse/widgets -o $@ $<
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/muse2/grepmidi/grepmidi.cpp b/muse2/grepmidi/grepmidi.cpp
new file mode 100644
index 00000000..1d33b4ac
--- /dev/null
+++ b/muse2/grepmidi/grepmidi.cpp
@@ -0,0 +1,348 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: grepmidi.cpp,v 1.1.1.1.2.1 2009/03/09 02:05:17 terminator356 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;
+const 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(const char* name)
+ {
+ curName = name;
+ const 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;
+ const 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/muse2/grid.med b/muse2/grid.med
new file mode 100644
index 00000000..8beb9b13
--- /dev/null
+++ b/muse2/grid.med
@@ -0,0 +1,467 @@
+<?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>
+ <mtctype>1</mtctype>
+ <mtcoffset>00:00:00:00:00</mtcoffset>
+ <useJackTransport>1</useJackTransport>
+ <extSync>0</extSync>
+ <bigtimeVisible>0</bigtimeVisible>
+ <transportVisible>0</transportVisible>
+ <markerVisible>0</markerVisible>
+ <mixerVisible>0</mixerVisible>
+ <geometryMain x="0" y="0" w="972" h="623"></geometryMain>
+ <geometryTransport x="0" y="0" w="696" h="320"></geometryTransport>
+ <arranger>
+ <info>1</info>
+ <split>440 526 </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>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>
+ <midiport idx="0">
+ <instrument>generic midi</instrument>
+ <channel idx="0">
+ <controller id="7">
+ </controller>
+ <controller id="10">
+ </controller>
+ <controller id="262145">
+ </controller>
+ </channel>
+ <channel idx="1">
+ <controller id="7">
+ </controller>
+ <controller id="10">
+ </controller>
+ <controller id="262145">
+ </controller>
+ </channel>
+ <channel idx="2">
+ <controller id="7">
+ </controller>
+ <controller id="10">
+ </controller>
+ <controller id="262145">
+ </controller>
+ </channel>
+ <channel idx="3">
+ <controller id="7">
+ </controller>
+ <controller id="10">
+ </controller>
+ <controller id="262145">
+ </controller>
+ </channel>
+ <channel idx="4">
+ <controller id="7">
+ </controller>
+ <controller id="10">
+ </controller>
+ <controller id="262145">
+ </controller>
+ </channel>
+ <channel idx="5">
+ <controller id="7">
+ </controller>
+ <controller id="10">
+ </controller>
+ <controller id="262145">
+ </controller>
+ </channel>
+ <channel idx="6">
+ <controller id="7">
+ </controller>
+ <controller id="10">
+ </controller>
+ <controller id="262145">
+ </controller>
+ </channel>
+ <channel idx="7">
+ <controller id="7">
+ </controller>
+ <controller id="10">
+ </controller>
+ <controller id="262145">
+ </controller>
+ </channel>
+ <channel idx="8">
+ <controller id="7">
+ </controller>
+ <controller id="10">
+ </controller>
+ <controller id="262145">
+ </controller>
+ </channel>
+ <channel idx="9">
+ <controller id="7">
+ </controller>
+ <controller id="10">
+ </controller>
+ <controller id="262145">
+ </controller>
+ </channel>
+ <channel idx="10">
+ <controller id="7">
+ </controller>
+ <controller id="10">
+ </controller>
+ <controller id="262145">
+ </controller>
+ </channel>
+ <channel idx="11">
+ <controller id="7">
+ </controller>
+ <controller id="10">
+ </controller>
+ <controller id="262145">
+ </controller>
+ </channel>
+ <channel idx="12">
+ <controller id="7">
+ </controller>
+ <controller id="10">
+ </controller>
+ <controller id="262145">
+ </controller>
+ </channel>
+ <channel idx="13">
+ <controller id="7">
+ </controller>
+ <controller id="10">
+ </controller>
+ <controller id="262145">
+ </controller>
+ </channel>
+ <channel idx="14">
+ <controller id="7">
+ </controller>
+ <controller id="10">
+ </controller>
+ <controller id="262145">
+ </controller>
+ </channel>
+ <channel idx="15">
+ <controller id="7">
+ </controller>
+ <controller id="10">
+ </controller>
+ <controller id="262145">
+ </controller>
+ </channel>
+ </midiport>
+ </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>
+ <info></info>
+ <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>
+ <prefader>0</prefader>
+ <sendMetronome>0</sendMetronome>
+ <automation>1</automation>
+ <controller id="0" cur="1.02164">
+ </controller>
+ <controller id="1" cur="0">
+ </controller>
+ <controller id="2" cur="0">
+ </controller>
+ </AudioOutput>
+ <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>
+ <device>0</device>
+ <channel>0</channel>
+ <inportMap>4294967295</inportMap>
+ <inchannelMap>65535</inchannelMap>
+ <locked>0</locked>
+ <echo>1</echo>
+ <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>4294967295</inportMap>
+ <inchannelMap>65535</inchannelMap>
+ <locked>0</locked>
+ <echo>1</echo>
+ <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>4294967295</inportMap>
+ <inchannelMap>65535</inchannelMap>
+ <locked>0</locked>
+ <echo>1</echo>
+ <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>4294967295</inportMap>
+ <inchannelMap>65535</inchannelMap>
+ <locked>0</locked>
+ <echo>1</echo>
+ <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>4294967295</inportMap>
+ <inchannelMap>65535</inchannelMap>
+ <locked>0</locked>
+ <echo>1</echo>
+ <transposition>0</transposition>
+ <velocity>0</velocity>
+ <delay>0</delay>
+ <len>100</len>
+ <compression>100</compression>
+ <automation>1</automation>
+ </drumtrack>
+ <wavetrack>
+ <name>Track 6</name>
+ <record>0</record>
+ <mute>0</mute>
+ <solo>0</solo>
+ <off>0</off>
+ <channels>2</channels>
+ <height>20</height>
+ <locked>0</locked>
+ <prefader>0</prefader>
+ <sendMetronome>0</sendMetronome>
+ <automation>1</automation>
+ <controller id="0" cur="1">
+ </controller>
+ <controller id="1" cur="0">
+ </controller>
+ <controller id="2" cur="0">
+ </controller>
+ </wavetrack>
+ <AudioOutput>
+ <name>Out 2</name>
+ <record>0</record>
+ <mute>0</mute>
+ <solo>0</solo>
+ <off>0</off>
+ <channels>2</channels>
+ <height>20</height>
+ <locked>0</locked>
+ <prefader>0</prefader>
+ <sendMetronome>0</sendMetronome>
+ <automation>1</automation>
+ <controller id="0" cur="1">
+ </controller>
+ <controller id="1" cur="0">
+ </controller>
+ <controller id="2" cur="0">
+ </controller>
+ </AudioOutput>
+ <AudioOutput>
+ <name>Out 3</name>
+ <record>0</record>
+ <mute>0</mute>
+ <solo>0</solo>
+ <off>0</off>
+ <channels>2</channels>
+ <height>20</height>
+ <locked>0</locked>
+ <prefader>0</prefader>
+ <sendMetronome>0</sendMetronome>
+ <automation>1</automation>
+ <controller id="0" cur="1">
+ </controller>
+ <controller id="1" cur="0">
+ </controller>
+ <controller id="2" cur="0">
+ </controller>
+ </AudioOutput>
+ <AudioInput>
+ <name>Input 1</name>
+ <record>0</record>
+ <mute>1</mute>
+ <solo>0</solo>
+ <off>0</off>
+ <channels>2</channels>
+ <height>20</height>
+ <locked>0</locked>
+ <selected>1</selected>
+ <prefader>0</prefader>
+ <sendMetronome>0</sendMetronome>
+ <automation>1</automation>
+ <controller id="0" cur="1">
+ </controller>
+ <controller id="1" cur="0">
+ </controller>
+ <controller id="2" cur="0">
+ </controller>
+ </AudioInput>
+ <Route>
+ <srcNode>Track 6</srcNode>
+ <dstNode>Out 1</dstNode>
+ </Route>
+ <Route>
+ <srcNode>Input 1</srcNode>
+ <dstNode>Out 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>
+ </toplevels>
+ </muse>
diff --git a/muse2/install-sh b/muse2/install-sh
new file mode 120000
index 00000000..205f21c6
--- /dev/null
+++ b/muse2/install-sh
@@ -0,0 +1 @@
+/usr/share/automake-1.11/install-sh \ No newline at end of file
diff --git a/muse2/lib/Makefile.am b/muse2/lib/Makefile.am
new file mode 100644
index 00000000..7cd3c5dd
--- /dev/null
+++ b/muse2/lib/Makefile.am
@@ -0,0 +1 @@
+SUBDIRS = synthi plugins
diff --git a/muse2/lib/Makefile.in b/muse2/lib/Makefile.in
new file mode 100644
index 00000000..7bf5ba06
--- /dev/null
+++ b/muse2/lib/Makefile.in
@@ -0,0 +1,617 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = lib
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal-include.m4 \
+ $(top_srcdir)/m4/alsa.m4 $(top_srcdir)/m4/docbook.m4 \
+ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
+ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
+ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+SOURCES =
+DIST_SOURCES =
+RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
+ html-recursive info-recursive install-data-recursive \
+ install-dvi-recursive install-exec-recursive \
+ install-html-recursive install-info-recursive \
+ install-pdf-recursive install-ps-recursive install-recursive \
+ installcheck-recursive installdirs-recursive pdf-recursive \
+ ps-recursive uninstall-recursive
+RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
+ distclean-recursive maintainer-clean-recursive
+AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
+ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
+ distdir
+ETAGS = etags
+CTAGS = ctags
+DIST_SUBDIRS = $(SUBDIRS)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+am__relativize = \
+ dir0=`pwd`; \
+ sed_first='s,^\([^/]*\)/.*$$,\1,'; \
+ sed_rest='s,^[^/]*/*,,'; \
+ sed_last='s,^.*/\([^/]*\)$$,\1,'; \
+ sed_butlast='s,/*[^/]*$$,,'; \
+ while test -n "$$dir1"; do \
+ first=`echo "$$dir1" | sed -e "$$sed_first"`; \
+ if test "$$first" != "."; then \
+ if test "$$first" = ".."; then \
+ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
+ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
+ else \
+ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
+ if test "$$first2" = "$$first"; then \
+ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
+ else \
+ dir2="../$$dir2"; \
+ fi; \
+ dir0="$$dir0"/"$$first"; \
+ fi; \
+ fi; \
+ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
+ done; \
+ reldir="$$dir2"
+ACLOCAL = @ACLOCAL@
+ALSA_CFLAGS = @ALSA_CFLAGS@
+ALSA_LIBS = @ALSA_LIBS@
+AMTAR = @AMTAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DOCBOOKSTYLE = @DOCBOOKSTYLE@
+DOCBOOKTARGETS = @DOCBOOKTARGETS@
+DOT = @DOT@
+DOTPATH = @DOTPATH@
+DOXYGEN = @DOXYGEN@
+DOXYGEN_TREEVIEW = @DOXYGEN_TREEVIEW@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+FLUIDSYNTHDIRS = @FLUIDSYNTHDIRS@
+FST_CFLAGS = @FST_CFLAGS@
+FST_LIBS = @FST_LIBS@
+Fluidsynth_CFLAGS = @Fluidsynth_CFLAGS@
+Fluidsynth_LIBS = @Fluidsynth_LIBS@
+GIVERTCAP = @GIVERTCAP@
+GREP = @GREP@
+HAVEDOT = @HAVEDOT@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JACK_CFLAGS = @JACK_CFLAGS@
+JACK_LIBS = @JACK_LIBS@
+JADE = @JADE@
+LASH_CFLAGS = @LASH_CFLAGS@
+LASH_LIBS = @LASH_LIBS@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LO_CFLAGS = @LO_CFLAGS@
+LO_LIBS = @LO_LIBS@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+MUSECXXFLAGS = @MUSECXXFLAGS@
+NM = @NM@
+NMEDIT = @NMEDIT@
+NSGMLS = @NSGMLS@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PCH = @PCH@
+PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+PYTHON = @PYTHON@
+PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
+PYTHON_INCLUDES = @PYTHON_INCLUDES@
+PYTHON_LIB = @PYTHON_LIB@
+PYTHON_PLATFORM = @PYTHON_PLATFORM@
+PYTHON_PREFIX = @PYTHON_PREFIX@
+PYTHON_VERSION = @PYTHON_VERSION@
+QTDIR_BIN = @QTDIR_BIN@
+QTDIR_INC = @QTDIR_INC@
+QT_LIBS = @QT_LIBS@
+RANLIB = @RANLIB@
+SAMPLERATE_CFLAGS = @SAMPLERATE_CFLAGS@
+SAMPLERATE_LIBS = @SAMPLERATE_LIBS@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SNDFILE_CFLAGS = @SNDFILE_CFLAGS@
+SNDFILE_LIBS = @SNDFILE_LIBS@
+STRIP = @STRIP@
+SUIDBUILD = @SUIDBUILD@
+SUIDINSTALL = @SUIDINSTALL@
+USE_SSE = @USE_SSE@
+UUID_CFLAGS = @UUID_CFLAGS@
+UUID_LIBS = @UUID_LIBS@
+VERSION = @VERSION@
+XMKMF = @XMKMF@
+X_CFLAGS = @X_CFLAGS@
+X_EXTRA_LIBS = @X_EXTRA_LIBS@
+X_LIBS = @X_LIBS@
+X_PRE_LIBS = @X_PRE_LIBS@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+have_docbook = @have_docbook@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+lt_ECHO = @lt_ECHO@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+pkgpyexecdir = @pkgpyexecdir@
+pkgpythondir = @pkgpythondir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+pyexecdir = @pyexecdir@
+pythondir = @pythondir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+synth_fluid = @synth_fluid@
+synth_fluidsynth = @synth_fluidsynth@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+SUBDIRS = synthi plugins
+all: all-recursive
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu lib/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu lib/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+
+# This directory's subdirectories are mostly independent; you can cd
+# into them and run `make' without going through this Makefile.
+# To change the values of `make' variables: instead of editing Makefiles,
+# (1) if the variable is set in `config.status', edit `config.status'
+# (which will cause the Makefiles to be regenerated when you run `make');
+# (2) otherwise, pass the desired values on the `make' command line.
+$(RECURSIVE_TARGETS):
+ @fail= failcom='exit 1'; \
+ for f in x $$MAKEFLAGS; do \
+ case $$f in \
+ *=* | --[!k]*);; \
+ *k*) failcom='fail=yes';; \
+ esac; \
+ done; \
+ dot_seen=no; \
+ target=`echo $@ | sed s/-recursive//`; \
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ echo "Making $$target in $$subdir"; \
+ if test "$$subdir" = "."; then \
+ dot_seen=yes; \
+ local_target="$$target-am"; \
+ else \
+ local_target="$$target"; \
+ fi; \
+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ || eval $$failcom; \
+ done; \
+ if test "$$dot_seen" = "no"; then \
+ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
+ fi; test -z "$$fail"
+
+$(RECURSIVE_CLEAN_TARGETS):
+ @fail= failcom='exit 1'; \
+ for f in x $$MAKEFLAGS; do \
+ case $$f in \
+ *=* | --[!k]*);; \
+ *k*) failcom='fail=yes';; \
+ esac; \
+ done; \
+ dot_seen=no; \
+ case "$@" in \
+ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+ *) list='$(SUBDIRS)' ;; \
+ esac; \
+ rev=''; for subdir in $$list; do \
+ if test "$$subdir" = "."; then :; else \
+ rev="$$subdir $$rev"; \
+ fi; \
+ done; \
+ rev="$$rev ."; \
+ target=`echo $@ | sed s/-recursive//`; \
+ for subdir in $$rev; do \
+ echo "Making $$target in $$subdir"; \
+ if test "$$subdir" = "."; then \
+ local_target="$$target-am"; \
+ else \
+ local_target="$$target"; \
+ fi; \
+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ || eval $$failcom; \
+ done && test -z "$$fail"
+tags-recursive:
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+ done
+ctags-recursive:
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
+ done
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ mkid -fID $$unique
+tags: TAGS
+
+TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ set x; \
+ here=`pwd`; \
+ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
+ include_option=--etags-include; \
+ empty_fix=.; \
+ else \
+ include_option=--include; \
+ empty_fix=; \
+ fi; \
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ test ! -f $$subdir/TAGS || \
+ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
+ fi; \
+ done; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: CTAGS
+CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+ @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ test -d "$(distdir)/$$subdir" \
+ || $(MKDIR_P) "$(distdir)/$$subdir" \
+ || exit 1; \
+ fi; \
+ done
+ @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
+ $(am__relativize); \
+ new_distdir=$$reldir; \
+ dir1=$$subdir; dir2="$(top_distdir)"; \
+ $(am__relativize); \
+ new_top_distdir=$$reldir; \
+ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
+ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
+ ($(am__cd) $$subdir && \
+ $(MAKE) $(AM_MAKEFLAGS) \
+ top_distdir="$$new_top_distdir" \
+ distdir="$$new_distdir" \
+ am__remove_distdir=: \
+ am__skip_length_check=: \
+ am__skip_mode_fix=: \
+ distdir) \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-recursive
+all-am: Makefile
+installdirs: installdirs-recursive
+installdirs-am:
+install: install-recursive
+install-exec: install-exec-recursive
+install-data: install-data-recursive
+uninstall: uninstall-recursive
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-recursive
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-recursive
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-recursive
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-tags
+
+dvi: dvi-recursive
+
+dvi-am:
+
+html: html-recursive
+
+html-am:
+
+info: info-recursive
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-recursive
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-recursive
+
+install-html-am:
+
+install-info: install-info-recursive
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-recursive
+
+install-pdf-am:
+
+install-ps: install-ps-recursive
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-recursive
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-recursive
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-recursive
+
+pdf-am:
+
+ps: ps-recursive
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \
+ install-am install-strip tags-recursive
+
+.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
+ all all-am check check-am clean clean-generic clean-libtool \
+ ctags ctags-recursive distclean distclean-generic \
+ distclean-libtool distclean-tags distdir dvi dvi-am html \
+ html-am info info-am install install-am install-data \
+ install-data-am install-dvi install-dvi-am install-exec \
+ install-exec-am install-html install-html-am install-info \
+ install-info-am install-man install-pdf install-pdf-am \
+ install-ps install-ps-am install-strip installcheck \
+ installcheck-am installdirs installdirs-am maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-generic \
+ mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \
+ uninstall uninstall-am
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/muse2/lib/plugins/Makefile.am b/muse2/lib/plugins/Makefile.am
new file mode 100644
index 00000000..8b6c0ce2
--- /dev/null
+++ b/muse2/lib/plugins/Makefile.am
@@ -0,0 +1,23 @@
+all-local: link
+
+PLUGINDIRS = $(shell find ../../plugins -type d \
+ \( -not -name obj \
+ -not -name CVS \
+ -not -name ".*" \
+ -not -name plugins \))
+
+PLUGINS = $(notdir $(PLUGINDIRS))
+
+link:
+ find -type l -exec rm {} \;
+ for plugin in $(PLUGINS); do \
+ if test -e ../../plugins/$${plugin}/$${plugin}; then \
+ ln -s ../../plugins/$${plugin}/$${plugin} .; \
+ fi; \
+ if test -e ../../plugins/$${plugin}/$${plugin}.so; then \
+ ln -s ../../plugins/$${plugin}/$${plugin}.so .; \
+ fi; \
+ done
+
+CLEANFILES = $(PLUGINS) $(PLUGINS:%=%.so)
+
diff --git a/muse2/lib/plugins/Makefile.in b/muse2/lib/plugins/Makefile.in
new file mode 100644
index 00000000..e9673a29
--- /dev/null
+++ b/muse2/lib/plugins/Makefile.in
@@ -0,0 +1,436 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = lib/plugins
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal-include.m4 \
+ $(top_srcdir)/m4/alsa.m4 $(top_srcdir)/m4/docbook.m4 \
+ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
+ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
+ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+SOURCES =
+DIST_SOURCES =
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ALSA_CFLAGS = @ALSA_CFLAGS@
+ALSA_LIBS = @ALSA_LIBS@
+AMTAR = @AMTAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DOCBOOKSTYLE = @DOCBOOKSTYLE@
+DOCBOOKTARGETS = @DOCBOOKTARGETS@
+DOT = @DOT@
+DOTPATH = @DOTPATH@
+DOXYGEN = @DOXYGEN@
+DOXYGEN_TREEVIEW = @DOXYGEN_TREEVIEW@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+FLUIDSYNTHDIRS = @FLUIDSYNTHDIRS@
+FST_CFLAGS = @FST_CFLAGS@
+FST_LIBS = @FST_LIBS@
+Fluidsynth_CFLAGS = @Fluidsynth_CFLAGS@
+Fluidsynth_LIBS = @Fluidsynth_LIBS@
+GIVERTCAP = @GIVERTCAP@
+GREP = @GREP@
+HAVEDOT = @HAVEDOT@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JACK_CFLAGS = @JACK_CFLAGS@
+JACK_LIBS = @JACK_LIBS@
+JADE = @JADE@
+LASH_CFLAGS = @LASH_CFLAGS@
+LASH_LIBS = @LASH_LIBS@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LO_CFLAGS = @LO_CFLAGS@
+LO_LIBS = @LO_LIBS@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+MUSECXXFLAGS = @MUSECXXFLAGS@
+NM = @NM@
+NMEDIT = @NMEDIT@
+NSGMLS = @NSGMLS@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PCH = @PCH@
+PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+PYTHON = @PYTHON@
+PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
+PYTHON_INCLUDES = @PYTHON_INCLUDES@
+PYTHON_LIB = @PYTHON_LIB@
+PYTHON_PLATFORM = @PYTHON_PLATFORM@
+PYTHON_PREFIX = @PYTHON_PREFIX@
+PYTHON_VERSION = @PYTHON_VERSION@
+QTDIR_BIN = @QTDIR_BIN@
+QTDIR_INC = @QTDIR_INC@
+QT_LIBS = @QT_LIBS@
+RANLIB = @RANLIB@
+SAMPLERATE_CFLAGS = @SAMPLERATE_CFLAGS@
+SAMPLERATE_LIBS = @SAMPLERATE_LIBS@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SNDFILE_CFLAGS = @SNDFILE_CFLAGS@
+SNDFILE_LIBS = @SNDFILE_LIBS@
+STRIP = @STRIP@
+SUIDBUILD = @SUIDBUILD@
+SUIDINSTALL = @SUIDINSTALL@
+USE_SSE = @USE_SSE@
+UUID_CFLAGS = @UUID_CFLAGS@
+UUID_LIBS = @UUID_LIBS@
+VERSION = @VERSION@
+XMKMF = @XMKMF@
+X_CFLAGS = @X_CFLAGS@
+X_EXTRA_LIBS = @X_EXTRA_LIBS@
+X_LIBS = @X_LIBS@
+X_PRE_LIBS = @X_PRE_LIBS@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+have_docbook = @have_docbook@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+lt_ECHO = @lt_ECHO@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+pkgpyexecdir = @pkgpyexecdir@
+pkgpythondir = @pkgpythondir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+pyexecdir = @pyexecdir@
+pythondir = @pythondir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+synth_fluid = @synth_fluid@
+synth_fluidsynth = @synth_fluidsynth@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+PLUGINDIRS = $(shell find ../../plugins -type d \
+ \( -not -name obj \
+ -not -name CVS \
+ -not -name ".*" \
+ -not -name plugins \))
+
+PLUGINS = $(notdir $(PLUGINDIRS))
+CLEANFILES = $(PLUGINS) $(PLUGINS:%=%.so)
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu lib/plugins/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu lib/plugins/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile all-local
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+ -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: install-am install-strip
+
+.PHONY: all all-am all-local check check-am clean clean-generic \
+ clean-libtool distclean distclean-generic distclean-libtool \
+ distdir dvi dvi-am html html-am info info-am install \
+ install-am install-data install-data-am install-dvi \
+ install-dvi-am install-exec install-exec-am install-html \
+ install-html-am install-info install-info-am install-man \
+ install-pdf install-pdf-am install-ps install-ps-am \
+ install-strip installcheck installcheck-am installdirs \
+ maintainer-clean maintainer-clean-generic mostlyclean \
+ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+ uninstall uninstall-am
+
+all-local: link
+
+link:
+ find -type l -exec rm {} \;
+ for plugin in $(PLUGINS); do \
+ if test -e ../../plugins/$${plugin}/$${plugin}; then \
+ ln -s ../../plugins/$${plugin}/$${plugin} .; \
+ fi; \
+ if test -e ../../plugins/$${plugin}/$${plugin}.so; then \
+ ln -s ../../plugins/$${plugin}/$${plugin}.so .; \
+ fi; \
+ done
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/muse2/lib/synthi/Makefile.am b/muse2/lib/synthi/Makefile.am
new file mode 100644
index 00000000..37137dd2
--- /dev/null
+++ b/muse2/lib/synthi/Makefile.am
@@ -0,0 +1,23 @@
+all-local: link
+
+SOFTSYNTHDIRS = $(shell find ../../synti -type d \
+ \( -not -name obj \
+ -not -name CVS \
+ -not -name ".*" \
+ -not -name synti \))
+
+SOFTSYNTHS = $(notdir $(SOFTSYNTHDIRS))
+
+link:
+ find -type l -exec rm {} \;
+ for synth in $(SOFTSYNTHS); do \
+ if test -e ../../synti/$${synth}/$${synth}; then \
+ ln -s ../../synti/$${synth}/$${synth} .; \
+ fi; \
+ if test -e ../../synti/$${synth}/$${synth}.so; then \
+ ln -s ../../synti/$${synth}/$${synth}.so .; \
+ fi; \
+ done
+
+CLEANFILES = $(SOFTSYNTHS) $(SOFTSYNTHS:%=%.so)
+
diff --git a/muse2/lib/synthi/Makefile.in b/muse2/lib/synthi/Makefile.in
new file mode 100644
index 00000000..ab8820a4
--- /dev/null
+++ b/muse2/lib/synthi/Makefile.in
@@ -0,0 +1,436 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = lib/synthi
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal-include.m4 \
+ $(top_srcdir)/m4/alsa.m4 $(top_srcdir)/m4/docbook.m4 \
+ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
+ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
+ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+SOURCES =
+DIST_SOURCES =
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ALSA_CFLAGS = @ALSA_CFLAGS@
+ALSA_LIBS = @ALSA_LIBS@
+AMTAR = @AMTAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DOCBOOKSTYLE = @DOCBOOKSTYLE@
+DOCBOOKTARGETS = @DOCBOOKTARGETS@
+DOT = @DOT@
+DOTPATH = @DOTPATH@
+DOXYGEN = @DOXYGEN@
+DOXYGEN_TREEVIEW = @DOXYGEN_TREEVIEW@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+FLUIDSYNTHDIRS = @FLUIDSYNTHDIRS@
+FST_CFLAGS = @FST_CFLAGS@
+FST_LIBS = @FST_LIBS@
+Fluidsynth_CFLAGS = @Fluidsynth_CFLAGS@
+Fluidsynth_LIBS = @Fluidsynth_LIBS@
+GIVERTCAP = @GIVERTCAP@
+GREP = @GREP@
+HAVEDOT = @HAVEDOT@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JACK_CFLAGS = @JACK_CFLAGS@
+JACK_LIBS = @JACK_LIBS@
+JADE = @JADE@
+LASH_CFLAGS = @LASH_CFLAGS@
+LASH_LIBS = @LASH_LIBS@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LO_CFLAGS = @LO_CFLAGS@
+LO_LIBS = @LO_LIBS@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+MUSECXXFLAGS = @MUSECXXFLAGS@
+NM = @NM@
+NMEDIT = @NMEDIT@
+NSGMLS = @NSGMLS@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PCH = @PCH@
+PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+PYTHON = @PYTHON@
+PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
+PYTHON_INCLUDES = @PYTHON_INCLUDES@
+PYTHON_LIB = @PYTHON_LIB@
+PYTHON_PLATFORM = @PYTHON_PLATFORM@
+PYTHON_PREFIX = @PYTHON_PREFIX@
+PYTHON_VERSION = @PYTHON_VERSION@
+QTDIR_BIN = @QTDIR_BIN@
+QTDIR_INC = @QTDIR_INC@
+QT_LIBS = @QT_LIBS@
+RANLIB = @RANLIB@
+SAMPLERATE_CFLAGS = @SAMPLERATE_CFLAGS@
+SAMPLERATE_LIBS = @SAMPLERATE_LIBS@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SNDFILE_CFLAGS = @SNDFILE_CFLAGS@
+SNDFILE_LIBS = @SNDFILE_LIBS@
+STRIP = @STRIP@
+SUIDBUILD = @SUIDBUILD@
+SUIDINSTALL = @SUIDINSTALL@
+USE_SSE = @USE_SSE@
+UUID_CFLAGS = @UUID_CFLAGS@
+UUID_LIBS = @UUID_LIBS@
+VERSION = @VERSION@
+XMKMF = @XMKMF@
+X_CFLAGS = @X_CFLAGS@
+X_EXTRA_LIBS = @X_EXTRA_LIBS@
+X_LIBS = @X_LIBS@
+X_PRE_LIBS = @X_PRE_LIBS@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+have_docbook = @have_docbook@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+lt_ECHO = @lt_ECHO@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+pkgpyexecdir = @pkgpyexecdir@
+pkgpythondir = @pkgpythondir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+pyexecdir = @pyexecdir@
+pythondir = @pythondir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+synth_fluid = @synth_fluid@
+synth_fluidsynth = @synth_fluidsynth@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+SOFTSYNTHDIRS = $(shell find ../../synti -type d \
+ \( -not -name obj \
+ -not -name CVS \
+ -not -name ".*" \
+ -not -name synti \))
+
+SOFTSYNTHS = $(notdir $(SOFTSYNTHDIRS))
+CLEANFILES = $(SOFTSYNTHS) $(SOFTSYNTHS:%=%.so)
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu lib/synthi/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu lib/synthi/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile all-local
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+ -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: install-am install-strip
+
+.PHONY: all all-am all-local check check-am clean clean-generic \
+ clean-libtool distclean distclean-generic distclean-libtool \
+ distdir dvi dvi-am html html-am info info-am install \
+ install-am install-data install-data-am install-dvi \
+ install-dvi-am install-exec install-exec-am install-html \
+ install-html-am install-info install-info-am install-man \
+ install-pdf install-pdf-am install-ps install-ps-am \
+ install-strip installcheck installcheck-am installdirs \
+ maintainer-clean maintainer-clean-generic mostlyclean \
+ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+ uninstall uninstall-am
+
+all-local: link
+
+link:
+ find -type l -exec rm {} \;
+ for synth in $(SOFTSYNTHS); do \
+ if test -e ../../synti/$${synth}/$${synth}; then \
+ ln -s ../../synti/$${synth}/$${synth} .; \
+ fi; \
+ if test -e ../../synti/$${synth}/$${synth}.so; then \
+ ln -s ../../synti/$${synth}/$${synth}.so .; \
+ fi; \
+ done
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/muse2/ltmain.sh b/muse2/ltmain.sh
new file mode 120000
index 00000000..41599586
--- /dev/null
+++ b/muse2/ltmain.sh
@@ -0,0 +1 @@
+/usr/share/libtool/config/ltmain.sh \ No newline at end of file
diff --git a/muse2/m4/Makefile.am b/muse2/m4/Makefile.am
new file mode 100644
index 00000000..f7870828
--- /dev/null
+++ b/muse2/m4/Makefile.am
@@ -0,0 +1 @@
+EXTRA_DIST = $(wildcard *.m4) \ No newline at end of file
diff --git a/muse2/m4/Makefile.in b/muse2/m4/Makefile.in
new file mode 100644
index 00000000..3ae01121
--- /dev/null
+++ b/muse2/m4/Makefile.in
@@ -0,0 +1,415 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = m4
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal-include.m4 \
+ $(top_srcdir)/m4/alsa.m4 $(top_srcdir)/m4/docbook.m4 \
+ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
+ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
+ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+SOURCES =
+DIST_SOURCES =
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ALSA_CFLAGS = @ALSA_CFLAGS@
+ALSA_LIBS = @ALSA_LIBS@
+AMTAR = @AMTAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DOCBOOKSTYLE = @DOCBOOKSTYLE@
+DOCBOOKTARGETS = @DOCBOOKTARGETS@
+DOT = @DOT@
+DOTPATH = @DOTPATH@
+DOXYGEN = @DOXYGEN@
+DOXYGEN_TREEVIEW = @DOXYGEN_TREEVIEW@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+FLUIDSYNTHDIRS = @FLUIDSYNTHDIRS@
+FST_CFLAGS = @FST_CFLAGS@
+FST_LIBS = @FST_LIBS@
+Fluidsynth_CFLAGS = @Fluidsynth_CFLAGS@
+Fluidsynth_LIBS = @Fluidsynth_LIBS@
+GIVERTCAP = @GIVERTCAP@
+GREP = @GREP@
+HAVEDOT = @HAVEDOT@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JACK_CFLAGS = @JACK_CFLAGS@
+JACK_LIBS = @JACK_LIBS@
+JADE = @JADE@
+LASH_CFLAGS = @LASH_CFLAGS@
+LASH_LIBS = @LASH_LIBS@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LO_CFLAGS = @LO_CFLAGS@
+LO_LIBS = @LO_LIBS@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+MUSECXXFLAGS = @MUSECXXFLAGS@
+NM = @NM@
+NMEDIT = @NMEDIT@
+NSGMLS = @NSGMLS@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PCH = @PCH@
+PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+PYTHON = @PYTHON@
+PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
+PYTHON_INCLUDES = @PYTHON_INCLUDES@
+PYTHON_LIB = @PYTHON_LIB@
+PYTHON_PLATFORM = @PYTHON_PLATFORM@
+PYTHON_PREFIX = @PYTHON_PREFIX@
+PYTHON_VERSION = @PYTHON_VERSION@
+QTDIR_BIN = @QTDIR_BIN@
+QTDIR_INC = @QTDIR_INC@
+QT_LIBS = @QT_LIBS@
+RANLIB = @RANLIB@
+SAMPLERATE_CFLAGS = @SAMPLERATE_CFLAGS@
+SAMPLERATE_LIBS = @SAMPLERATE_LIBS@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SNDFILE_CFLAGS = @SNDFILE_CFLAGS@
+SNDFILE_LIBS = @SNDFILE_LIBS@
+STRIP = @STRIP@
+SUIDBUILD = @SUIDBUILD@
+SUIDINSTALL = @SUIDINSTALL@
+USE_SSE = @USE_SSE@
+UUID_CFLAGS = @UUID_CFLAGS@
+UUID_LIBS = @UUID_LIBS@
+VERSION = @VERSION@
+XMKMF = @XMKMF@
+X_CFLAGS = @X_CFLAGS@
+X_EXTRA_LIBS = @X_EXTRA_LIBS@
+X_LIBS = @X_LIBS@
+X_PRE_LIBS = @X_PRE_LIBS@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+have_docbook = @have_docbook@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+lt_ECHO = @lt_ECHO@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+pkgpyexecdir = @pkgpyexecdir@
+pkgpythondir = @pkgpythondir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+pyexecdir = @pyexecdir@
+pythondir = @pythondir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+synth_fluid = @synth_fluid@
+synth_fluidsynth = @synth_fluidsynth@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+EXTRA_DIST = $(wildcard *.m4)
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu m4/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu m4/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: install-am install-strip
+
+.PHONY: all all-am check check-am clean clean-generic clean-libtool \
+ distclean distclean-generic distclean-libtool distdir dvi \
+ dvi-am html html-am info info-am install install-am \
+ install-data install-data-am install-dvi install-dvi-am \
+ install-exec install-exec-am install-html install-html-am \
+ install-info install-info-am install-man install-pdf \
+ install-pdf-am install-ps install-ps-am install-strip \
+ installcheck installcheck-am installdirs maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-generic \
+ mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/muse2/m4/aclocal-include.m4 b/muse2/m4/aclocal-include.m4
new file mode 100644
index 00000000..abf6533f
--- /dev/null
+++ b/muse2/m4/aclocal-include.m4
@@ -0,0 +1,16 @@
+# aclocal-include.m4
+#
+# This macro adds the name macrodir to the set of directories
+# that `aclocal' searches for macros.
+
+# serial 1
+
+dnl AM_ACLOCAL_INCLUDE(macrodir)
+AC_DEFUN([AM_ACLOCAL_INCLUDE],
+[
+ AM_CONDITIONAL(INSIDE_GNOME_COMMON, test x = y)
+
+ test -n "$ACLOCAL_FLAGS" && ACLOCAL="$ACLOCAL $ACLOCAL_FLAGS"
+
+ for k in $1 ; do ACLOCAL="$ACLOCAL -I $k" ; done
+])
diff --git a/muse2/m4/alsa.m4 b/muse2/m4/alsa.m4
new file mode 100644
index 00000000..da57ad4f
--- /dev/null
+++ b/muse2/m4/alsa.m4
@@ -0,0 +1,148 @@
+dnl Configure Paths for Alsa
+dnl Some modifications by Richard Boulton <richard-alsa@tartarus.org>
+dnl Christopher Lansdown <lansdoct@cs.alfred.edu>
+dnl Jaroslav Kysela <perex@suse.cz>
+dnl Last modification: 07/01/2001
+dnl AM_PATH_ALSA([MINIMUM-VERSION [, ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
+dnl Test for libasound, and define ALSA_CFLAGS and ALSA_LIBS as appropriate.
+dnl enables arguments --with-alsa-prefix=
+dnl --with-alsa-enc-prefix=
+dnl --disable-alsatest (this has no effect, as yet)
+dnl
+dnl For backwards compatibility, if ACTION_IF_NOT_FOUND is not specified,
+dnl and the alsa libraries are not found, a fatal AC_MSG_ERROR() will result.
+dnl
+AC_DEFUN([AM_PATH_ALSA],
+[dnl Save the original CFLAGS, LDFLAGS, and LIBS
+alsa_save_CFLAGS="$CFLAGS"
+alsa_save_LDFLAGS="$LDFLAGS"
+alsa_save_LIBS="$LIBS"
+alsa_found=yes
+
+dnl
+dnl Get the cflags and libraries for alsa
+dnl
+AC_ARG_WITH(alsa-prefix,
+[ --with-alsa-prefix=PFX prefix where alsa library is installed (optional)],
+[alsa_prefix="$withval"], [alsa_prefix=""])
+
+AC_ARG_WITH(alsa-inc-prefix,
+[ --with-alsa-inc-prefix=PFX prefix where include libraries are (optional)],
+[alsa_inc_prefix="$withval"], [alsa_inc_prefix=""])
+
+dnl FIXME: this is not yet implemented
+AC_ARG_ENABLE(alsatest,
+[ --disable-alsatest do not try to compile and run a test alsa program],
+[enable_alsatest=no],
+[enable_alsatest=yes])
+
+dnl Add any special include directories
+AC_MSG_CHECKING(for ALSA CFLAGS)
+if test "$alsa_inc_prefix" != "" ; then
+ ALSA_CFLAGS="$ALSA_CFLAGS -I$alsa_inc_prefix"
+ CFLAGS="$CFLAGS -I$alsa_inc_prefix"
+fi
+AC_MSG_RESULT($ALSA_CFLAGS)
+
+dnl add any special lib dirs
+AC_MSG_CHECKING(for ALSA LDFLAGS)
+if test "$alsa_prefix" != "" ; then
+ ALSA_LIBS="$ALSA_LIBS -L$alsa_prefix"
+ LDFLAGS="$LDFLAGS $ALSA_LIBS"
+fi
+
+dnl add the alsa library
+ALSA_LIBS="$ALSA_LIBS -lasound -lm -ldl"
+LIBS=`echo $LIBS | sed 's/-lm//'`
+LIBS=`echo $LIBS | sed 's/-ldl//'`
+LIBS=`echo $LIBS | sed 's/ //'`
+LIBS="$ALSA_LIBS $LIBS"
+AC_MSG_RESULT($ALSA_LIBS)
+
+dnl Check for a working version of libasound that is of the right version.
+min_alsa_version=ifelse([$1], ,0.1.1,$1)
+AC_MSG_CHECKING(for libasound headers version >= $min_alsa_version)
+no_alsa=""
+ alsa_min_major_version=`echo $min_alsa_version | \
+ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
+ alsa_min_minor_version=`echo $min_alsa_version | \
+ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
+ alsa_min_micro_version=`echo $min_alsa_version | \
+ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
+
+AC_LANG_SAVE
+AC_LANG_C
+AC_TRY_COMPILE([
+#include <alsa/asoundlib.h>
+], [
+void main(void)
+{
+/* ensure backward compatibility */
+#if !defined(SND_LIB_MAJOR) && defined(SOUNDLIB_VERSION_MAJOR)
+#define SND_LIB_MAJOR SOUNDLIB_VERSION_MAJOR
+#endif
+#if !defined(SND_LIB_MINOR) && defined(SOUNDLIB_VERSION_MINOR)
+#define SND_LIB_MINOR SOUNDLIB_VERSION_MINOR
+#endif
+#if !defined(SND_LIB_SUBMINOR) && defined(SOUNDLIB_VERSION_SUBMINOR)
+#define SND_LIB_SUBMINOR SOUNDLIB_VERSION_SUBMINOR
+#endif
+
+# if(SND_LIB_MAJOR > $alsa_min_major_version)
+ exit(0);
+# else
+# if(SND_LIB_MAJOR < $alsa_min_major_version)
+# error not present
+# endif
+
+# if(SND_LIB_MINOR > $alsa_min_minor_version)
+ exit(0);
+# else
+# if(SND_LIB_MINOR < $alsa_min_minor_version)
+# error not present
+# endif
+
+# if(SND_LIB_SUBMINOR < $alsa_min_micro_version)
+# error not present
+# endif
+# endif
+# endif
+exit(0);
+}
+],
+ [AC_MSG_RESULT(found.)],
+ [AC_MSG_RESULT(not present.)
+ ifelse([$3], , [AC_MSG_ERROR(Sufficiently new version of libasound not found.)])
+ alsa_found=no]
+)
+AC_LANG_RESTORE
+
+dnl Now that we know that we have the right version, let's see if we have the library and not just the headers.
+AC_LANG_SAVE
+AC_LANG_CPLUSPLUS
+AC_CHECK_LIB([asound], [snd_seq_create_event],,
+ [ifelse([$3], , [AC_MSG_ERROR(No linkable libasound was found.)])
+ alsa_found=no]
+)
+AC_LANG_RESTORE
+
+if test "x$alsa_found" = "xyes" ; then
+ ifelse([$2], , :, [$2])
+ LIBS=`echo $LIBS | sed 's/-lasound//g'`
+ LIBS=`echo $LIBS | sed 's/ //'`
+ LIBS="-lasound $LIBS"
+fi
+if test "x$alsa_found" = "xno" ; then
+ ifelse([$3], , :, [$3])
+ CFLAGS="$alsa_save_CFLAGS"
+ LDFLAGS="$alsa_save_LDFLAGS"
+ LIBS="$alsa_save_LIBS"
+ ALSA_CFLAGS=""
+ ALSA_LIBS=""
+fi
+
+dnl That should be it. Now just export out symbols:
+AC_SUBST(ALSA_CFLAGS)
+AC_SUBST(ALSA_LIBS)
+])
+
diff --git a/muse2/m4/docbook.m4 b/muse2/m4/docbook.m4
new file mode 100644
index 00000000..eed96346
--- /dev/null
+++ b/muse2/m4/docbook.m4
@@ -0,0 +1,97 @@
+# $Header: /cvsroot/lmuse/muse/m4/docbook.m4,v 1.1.1.1 2003/10/27 18:51:13 wschweer Exp $
+
+# PGAC_PROG_JADE
+# --------------
+AC_DEFUN([PGAC_PROG_JADE],
+[AC_CHECK_PROGS([JADE], [openjade jade])])
+
+
+# PGAC_PROG_NSGMLS
+# ----------------
+AC_DEFUN([PGAC_PROG_NSGMLS],
+[AC_CHECK_PROGS([NSGMLS], [onsgmls nsgmls])])
+
+
+# PGAC_CHECK_DOCBOOK(VERSION)
+# ---------------------------
+AC_DEFUN([PGAC_CHECK_DOCBOOK],
+[AC_REQUIRE([PGAC_PROG_NSGMLS])
+AC_CACHE_CHECK([for DocBook V$1], [pgac_cv_check_docbook],
+[cat >conftest.sgml <<EOF
+<!doctype book PUBLIC "-//OASIS//DTD DocBook V$1//EN">
+<book>
+ <title>test</title>
+ <chapter>
+ <title>random</title>
+ <sect1>
+ <title>testsect</title>
+ <para>text</para>
+ </sect1>
+ </chapter>
+</book>
+EOF
+
+${NSGMLS-false} -s conftest.sgml 1>&5 2>&1
+if test $? -eq 0; then
+ pgac_cv_check_docbook=yes
+else
+ pgac_cv_check_docbook=no
+fi
+rm -f conftest.sgml])
+
+have_docbook=$pgac_cv_check_docbook
+AC_SUBST([have_docbook])
+])
+# PGAC_CHECK_DOCBOOK
+
+
+# PGAC_PATH_DOCBOOK_STYLESHEETS
+# -----------------------------
+AC_DEFUN([PGAC_PATH_DOCBOOK_STYLESHEETS], [
+AC_MSG_CHECKING([for DocBook stylesheets])
+AC_ARG_WITH(docbook-stylesheets,
+ [ --with-docbook-stylesheets=DIR use DIR/html/docbook.dsl],
+ [muse_docbook_prefix="$withval"])
+AC_CACHE_VAL([pgac_cv_path_stylesheets], [
+if test -n "$muse_docbook_prefix"; then
+ if test -r "$muse_docbook_prefix/html/docbook.dsl" \
+ && test -r "$muse_docbook_prefix/print/docbook.dsl"; then
+ pgac_cv_path_stylesheets="$muse_docbook_prefix"
+ fi
+fi
+if test -z "$pgac_cv_path_stylesheets"; then
+ if test -n "$DOCBOOKSTYLE"; then
+ if test -r "$DOCBOOKSTYLE/html/docbook.dsl" \
+ && test -r "$DOCBOOKSTYLE/print/docbook.dsl"; then
+ pgac_cv_path_stylesheets="$DOCBOOKSTYLE"
+ fi
+ fi
+fi
+if test -z "$pgac_cv_path_stylesheets"; then
+ for pgac_prefix in /usr /usr/local /opt; do
+ for pgac_infix in share lib; do
+ for pgac_postfix in \
+ sgml/stylesheets/nwalsh-modular \
+ sgml/stylesheets/docbook \
+ sgml/docbook/dsssl/modular \
+ sgml/docbook/stylesheet/dsssl/modular
+ do
+ pgac_candidate=$pgac_prefix/$pgac_infix/$pgac_postfix
+ if test -r "$pgac_candidate/html/docbook.dsl" \
+ && test -r "$pgac_candidate/print/docbook.dsl"
+ then
+ pgac_cv_path_stylesheets=$pgac_candidate
+ break 3
+ fi
+ done
+ done
+ done
+fi
+])
+DOCBOOKSTYLE=$pgac_cv_path_stylesheets
+AC_SUBST([DOCBOOKSTYLE])
+if test -n "$DOCBOOKSTYLE"; then
+ AC_MSG_RESULT([$DOCBOOKSTYLE])
+else
+ AC_MSG_RESULT(no)
+fi]) # PGAC_PATH_DOCBOOK_STYLESHEETS
diff --git a/muse2/m4/libtool.m4 b/muse2/m4/libtool.m4
new file mode 120000
index 00000000..f3504e92
--- /dev/null
+++ b/muse2/m4/libtool.m4
@@ -0,0 +1 @@
+/usr/share/aclocal/libtool.m4 \ No newline at end of file
diff --git a/muse2/m4/ltoptions.m4 b/muse2/m4/ltoptions.m4
new file mode 120000
index 00000000..b81279e3
--- /dev/null
+++ b/muse2/m4/ltoptions.m4
@@ -0,0 +1 @@
+/usr/share/aclocal/ltoptions.m4 \ No newline at end of file
diff --git a/muse2/m4/ltsugar.m4 b/muse2/m4/ltsugar.m4
new file mode 120000
index 00000000..4d76cc70
--- /dev/null
+++ b/muse2/m4/ltsugar.m4
@@ -0,0 +1 @@
+/usr/share/aclocal/ltsugar.m4 \ No newline at end of file
diff --git a/muse2/m4/ltversion.m4 b/muse2/m4/ltversion.m4
new file mode 120000
index 00000000..5eb474fd
--- /dev/null
+++ b/muse2/m4/ltversion.m4
@@ -0,0 +1 @@
+/usr/share/aclocal/ltversion.m4 \ No newline at end of file
diff --git a/muse2/m4/lt~obsolete.m4 b/muse2/m4/lt~obsolete.m4
new file mode 120000
index 00000000..de0b9f94
--- /dev/null
+++ b/muse2/m4/lt~obsolete.m4
@@ -0,0 +1 @@
+/usr/share/aclocal/lt~obsolete.m4 \ No newline at end of file
diff --git a/muse2/m4/qt.m4 b/muse2/m4/qt.m4
new file mode 100644
index 00000000..5aceb294
--- /dev/null
+++ b/muse2/m4/qt.m4
@@ -0,0 +1,246 @@
+dnl
+dnl CONFIGURE_QT([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
+dnl \author J.E. Hoffmann <je-h@gmx.net>
+dnl
+AC_DEFUN([CONFIGURE_QT],
+[
+ qt_error="no"
+
+ QT_CFLAGS=""
+ QT_LIBS=""
+ MOC="moc"
+ UIC="uic"
+ qt_includes="/usr/include/qt"
+ qt_libraries=""
+ qt_binaries=""
+
+ if test "$qt_error" = "no"; then
+ AC_MSG_CHECKING([for QT environment variable QTDIR])
+ if test -z "$QTDIR"; then
+ AC_MSG_RESULT(no)
+ AC_MSG_WARN([
+
+ ***************** WARNING *****************
+
+YOU HAVE NOT SET YOUR 'QTDIR' ENVIRONMENT VARIABLE!!!
+
+This is the source of most people's problems when
+configuring muse. If the configuration fails to find
+qt, try setting your QTDIR environment variable to
+the directory where qt is installed.
+
+ *******************************************
+
+])
+ echo -ne "\a"
+ echo -ne "\a"
+ echo -ne "\a"
+ sleep 7
+ else
+ AC_MSG_RESULT(yes)
+ qt_includes="$QTDIR/include"
+ qt_libraries="$QTDIR/lib"
+ qt_binaries="$QTDIR/bin"
+ MOC="$qt_binaries/moc";
+ UIC="$qt_binaries/uic";
+ fi
+ fi
+
+ muse_qttest="yes"
+ AC_ARG_ENABLE(qttest,
+ [ --disable-qttest do not try to compile and run a test libqt program],[
+ case "$enableval" in
+ "yes")
+ muse_qttest="yes"
+ ;;
+ "no")
+ muse_qttest="no"
+ ;;
+ *)
+ AC_MSG_ERROR([must use --enable-qttest(=yes/no) or --disable-qttest])
+ ;;
+ esac
+ ])
+
+
+ AC_ARG_WITH(qt-prefix,
+ [ --with-qt-prefix=PFX where the root of Qt is installed ],
+ [
+ qt_includes="$withval/include"
+ qt_libraries="$withval/lib"
+ qt_binaries="$withval/bin"
+ MOC="$qt_binaries/moc";
+ UIC="$qt_binaries/uic";
+ ])
+
+ AC_ARG_WITH(qt-includes,
+ [ --with-qt-includes=DIR where the Qt includes are installed ],
+ [
+ qt_includes="$withval"
+ ])
+
+ AC_ARG_WITH(qt-libraries,
+ [ --with-qt-libraries=DIR where the Qt libraries are installed.],
+ [
+ qt_libraries="$withval"
+ ])
+
+ AC_ARG_WITH(qt-binaries,
+ [ --with-qt-binaries=DIR where the Qt binaries are installed.],
+ [
+ qt_binaries="$withval"
+ MOC="$qt_binaries/moc";
+ UIC="$qt_binaries/uic";
+ ])
+
+ AC_ARG_WITH(qt-moc,
+ [ --with-qt-moc=PROG where the Qt meta object compiler is installed.],
+ [
+ MOC="$withval"
+ ])
+
+ AC_ARG_WITH(qt-uic,
+ [ --with-qt-uic=PROG where the Qt user interface compiler is installed.],
+ [
+ UIC="$withval"
+ ])
+
+ if test "$qt_error" = "no"; then
+ saved_CPPFLAGS="$CPPFLAGS"
+ saved_LIBS="$LIBS"
+ CPPFLAGS="$saved_CPPFLAGS -I$qt_includes"
+ if test -n "$qt_libraries"; then
+ LIBS="$saved_LIBS -L$qt_libraries -lqt-mt -lqui"
+ QT_LIBS="-L$qt_libraries -lqt-mt -lqui"
+ else
+ LIBS="$saved_LIBS -lqt-mt -lqui -lm $X11_LIBS"
+ QT_LIBS="-lqt-mt -lqui"
+ fi
+ AC_MSG_CHECKING([for QT includes ($qt_includes)])
+ AC_CACHE_VAL(qt_includes_found,
+ [
+ AC_LANG_PUSH(C++)
+ AC_TRY_CPP([#include <qapplication.h>],
+ qt_includes_found=yes, qt_includes_found=no)
+ AC_LANG_POP(C++)
+ if test "$qt_includes_found" = "yes"; then
+ QT_CFLAGS="-I$qt_includes"
+ AC_MSG_RESULT(yes)
+ else
+ qt_error=yes
+ AC_MSG_RESULT(no)
+ fi
+ ])
+
+ AC_MSG_CHECKING([for QT libraries ($qt_libraries)])
+ AC_CACHE_VAL(qt_libraries_found,
+ [
+ AC_LANG_SAVE
+ AC_LANG_CPLUSPLUS
+ saved_CXXFLAGS="$CXXFLAGS"
+ saved_LIBS="$LIBS"
+ CXXFLAGS="$QT_CFLAGS $LIBS"
+ LIBS="$QT_LIBS $LIBS"
+
+
+ if test "$muse_qttest" = "yes"; then
+ AC_TRY_RUN([
+ #include <qapplication.h>
+ int main(int argc, char **argv)
+ {
+ QApplication app(argc, argv, false);
+
+ }
+ ],[
+ AC_MSG_RESULT(yes)
+ ],[
+ AC_MSG_RESULT(no)
+ qt_error="yes"
+ ],
+ AC_MSG_ERROR([cross compiling unsupported])
+ )
+ else
+ AC_MSG_RESULT([yes (assumed due to --disable-qttest)])
+ fi
+
+ LIBS="$saved_LIBS"
+ CXXFLAGS="$saved_CXXFLAGS"
+ AC_LANG_RESTORE
+ ])
+
+ AC_MSG_CHECKING([for QT moc ($MOC)])
+ output=`eval "$MOC --help 2>&1 | grep Qt"`
+ if test -z "$output"; then
+ AC_MSG_RESULT(no)
+ qt_error="yes"
+ else
+ AC_MSG_RESULT(yes)
+ fi
+
+ AC_MSG_CHECKING([for QT uic ($UIC)])
+ output=`eval "$UIC --help 2>&1 | grep Qt"`
+ if test -z "$output"; then
+ AC_MSG_RESULT(no)
+ qt_error="yes"
+ else
+ AC_MSG_RESULT(yes)
+ fi
+ CPPFLAGS="$saved_CPPFLAGS"
+ LIBS="$saved_LIBS"
+ fi
+
+ if test "$qt_error" = "no"; then
+ AC_MSG_CHECKING([for QT version >= $1])
+ qt_major_version=`echo $1 | \
+ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
+ qt_minor_version=`echo $1 | \
+ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
+ qt_micro_version=`echo $1 | \
+ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
+ qt_version="$qt_major_version$qt_minor_version$qt_micro_version"
+
+ AC_LANG_SAVE
+ AC_LANG_CPLUSPLUS
+ saved_CXXFLAGS="$CXXFLAGS"
+ saved_LIBS="$LIBS"
+ CXXFLAGS="$QT_CFLAGS $LIBS"
+ LIBS="$QT_LIBS $LIBS"
+
+ if test "$muse_qttest" = "yes"; then
+ AC_TRY_RUN([
+ #include <qglobal.h>
+ int main()
+ {
+ int version = ($qt_major_version << 16)
+ + ($qt_minor_version << 8)
+ + $qt_micro_version;
+ if (QT_VERSION < version) return(1);
+ return(0);
+ }
+ ],[
+ AC_MSG_RESULT(yes)
+ ],[
+ AC_MSG_RESULT(no)
+ qt_error="yes"
+ ],
+ AC_MSG_ERROR([cross compiling unsupported])
+ )
+ else
+ AC_MSG_RESULT([yes (assumed due to --disable-qttest)])
+ fi
+
+ LIBS="$saved_LIBS"
+ CXXFLAGS="$saved_CXXFLAGS"
+ AC_LANG_RESTORE
+ fi
+
+ AC_SUBST(QT_CFLAGS)
+ AC_SUBST(QT_LIBS)
+ AC_SUBST(MOC)
+ AC_SUBST(UIC)
+ if test "$qt_error" = "no"; then
+ ifelse([$2], , :, [$2])
+ else
+ ifelse([$3], , :, [$3])
+ fi
+])
diff --git a/muse2/missing b/muse2/missing
new file mode 120000
index 00000000..20bc5b0e
--- /dev/null
+++ b/muse2/missing
@@ -0,0 +1 @@
+/usr/share/automake-1.11/missing \ No newline at end of file
diff --git a/muse2/muse.prj b/muse2/muse.prj
new file mode 100644
index 00000000..233830cb
--- /dev/null
+++ b/muse2/muse.prj
@@ -0,0 +1,697 @@
+;; -*- Prcs -*-
+(Created-By-Prcs-Version 1 2 15)
+(Project-Description "")
+(Project-Version muse 0 7)
+(Parent-Version muse 0 6)
+(Version-Log "")
+(New-Version-Log "")
+(Checkin-Time "Mon, 27 Oct 2003 19:28:49 +0100")
+(Checkin-Login ws)
+(Populate-Ignore ("^\\." "/\\." "\\.o$" "\\.lo$" "^core$"
+ "^autom4te.cache/" "moc_" "mops" "klops"
+ "Makefile$" "Makefile.in$" "\\.la$"
+ "\\.non-libtool\\.cpp$" "~$"
+ "^config.h.in$" "^config.h$" "^stamp.h1$" "^configure$"
+ "^config.log$" "^config.status$"
+ "\\.so$"
+ ))
+(Project-Keywords)
+(Files
+ (ChangeLog (muse/l/38_ChangeLog 1.1 644))
+ (NEWS (muse/l/39_NEWS 1.1 644))
+ (TODO (muse/l/40_TODO 1.1 644))
+ (Doxyfile.in (muse/l/41_Doxyfile.i 1.1 644))
+ (AUTHORS (muse/l/42_AUTHORS 1.1 644))
+ (README (muse/l/43_README 1.1 644))
+ (README.de (muse/l/44_README.de 1.1 644))
+ (SECURITY (muse/l/45_SECURITY 1.1 644))
+ (README.shortcuts (muse/l/46_README.sho 1.1 644))
+ (README.CVS (muse/l/47_README.CVS 1.1 644))
+ (README.softsynth (muse/l/48_README.sof 1.1 644))
+ (README.ladspaguis (muse/l/49_README.lad 1.1 644))
+ (Makefile.am (muse/l/50_Makefile.a 1.1 644))
+ (README.instruments (muse/l/51_README.ins 1.1 644))
+ (autogen.sh (muse/m/0_autogen.sh 1.1 755))
+ (configure.ac (muse/m/1_configure. 1.1 644))
+ (README.translate (muse/m/2_README.tra 1.1 644))
+ (libtool (muse/m/3_libtool 1.2 755))
+ (common.am (muse/m/4_common.am 1.1 644))
+ (aclocal.m4 (muse/m/5_aclocal.m4 1.1 644))
+ (COPYING (/usr/share/automake-1.7/COPYING) :symlink)
+ (INSTALL (/usr/share/automake-1.7/INSTALL) :symlink)
+ (config.sub (/usr/share/automake-1.7/config.sub) :symlink)
+ (config.guess (/usr/share/automake-1.7/config.guess) :symlink)
+ (ltmain.sh (/usr/share/libtool/ltmain.sh) :symlink)
+
+ (grepmidi/grepmidi.cpp (muse/m/6_grepmidi.c 1.1 644))
+ (grepmidi/Makefile.am (muse/m/7_Makefile.a 1.1 644))
+
+ (plugins/freeverb/denormals.h (muse/m/8_denormals. 1.1 644))
+ (plugins/freeverb/tuning.h (muse/m/9_tuning.h 1.1 644))
+ (plugins/freeverb/readme.txt (muse/m/10_readme.txt 1.1 644))
+ (plugins/freeverb/revmodel.h (muse/m/11_revmodel.h 1.1 644))
+ (plugins/freeverb/Makefile.am (muse/m/12_Makefile.a 1.1 644))
+ (plugins/freeverb/comb.h (muse/m/13_comb.h 1.1 644))
+ (plugins/freeverb/freeverb.cpp (muse/m/14_freeverb.c 1.1 644))
+ (plugins/freeverb/allpass.h (muse/m/15_allpass.h 1.1 644))
+ (plugins/freeverb/revmodel.cpp (muse/m/16_revmodel.c 1.1 644))
+ (plugins/Makefile.am (muse/m/17_Makefile.a 1.1 644))
+
+ (plugins/plugins-install.am (muse/m/18_plugins-in 1.1 644))
+
+ (synti/Makefile.am (muse/m/19_Makefile.a 1.1 644))
+ (synti/synti-install.am (muse/m/20_synti-inst 1.1 644))
+ (synti/organ/organ.cpp (muse/m/21_organ.cpp 1.1 644))
+ (synti/organ/organ.h (muse/m/22_organ.h 1.1 644))
+ (synti/organ/organguibase.ui (muse/m/23_organguiba 1.1 644))
+ (synti/organ/Makefile.am (muse/m/24_Makefile.a 1.1 644))
+ (synti/organ/fdialogbuttons.h (muse/m/25_fdialogbut 1.2 644))
+ (synti/organ/organgui.h (muse/m/26_organgui.h 1.1 644))
+ (synti/organ/fdialogbuttons.ui (muse/m/27_fdialogbut 1.1 644))
+ (synti/organ/organgui.cpp (muse/m/28_organgui.c 1.1 644))
+ (synti/organ/organguibase.h (muse/m/29_organguiba 1.2 644))
+ (synti/fluid/fluidgui.cpp (muse/m/30_fluidgui.c 1.1 644))
+ (synti/fluid/fluidguibase.ui (muse/m/31_fluidguiba 1.1 644))
+ (synti/fluid/synth.cpp (muse/m/32_synth.cpp 1.1 644))
+ (synti/fluid/Makefile.am (muse/m/33_Makefile.a 1.1 644))
+ (synti/fluid/synth.h (muse/m/34_synth.h 1.1 644))
+
+ (synti/fluid/fluid.cpp (muse/m/35_fluid.cpp 1.1 644))
+ (synti/fluid/fluidgui.h (muse/m/36_fluidgui.h 1.1 644))
+
+ (synti/vam/vamgui.cpp (muse/m/37_vamgui.cpp 1.1 644))
+ (synti/vam/COPYING (muse/m/38_COPYING 1.1 644))
+ (synti/vam/ChangeLog (muse/m/39_ChangeLog 1.1 644))
+ (synti/vam/vamgui.h (muse/m/40_vamgui.h 1.1 644))
+ (synti/vam/vam.cpp (muse/m/41_vam.cpp 1.1 644))
+ (synti/vam/Makefile.am (muse/m/42_Makefile.a 1.1 644))
+ (synti/vam/fdialogbuttons.h (muse/m/43_fdialogbut 1.1 644))
+ (synti/vam/fdialogbuttons.ui (muse/m/44_fdialogbut 1.1 644))
+ (synti/vam/vamguibase.h (muse/m/45_vamguibase 1.1 644))
+ (synti/vam/README (muse/m/46_README 1.1 644))
+ (synti/vam/vam.h (muse/m/47_vam.h 1.1 644))
+ (synti/vam/vamguibase.ui (muse/m/48_vamguibase 1.1 644))
+ (synti/vam/TODO (muse/m/49_TODO 1.1 644))
+
+ (synti/s1/s1.cpp (muse/m/50_s1.cpp 1.1 644))
+ (synti/s1/Makefile.am (muse/m/51_Makefile.a 1.1 644))
+
+ (share/plugins/1050.ui (muse/n/0_1050.ui 1.1 644))
+ (share/plugins/Makefile.am (muse/n/1_Makefile.a 1.1 644))
+
+ (share/instruments/Yamaha-P50m.idf (muse/n/2_Yamaha-P50 1.1 644))
+ (share/instruments/ns5r.idf (muse/n/3_ns5r.idf 1.1 644))
+ (share/instruments/Roland-XP30.idf (muse/n/4_Roland-XP3 1.1 644))
+ (share/instruments/MC303.idf (muse/n/5_MC303.idf 1.1 644))
+ (share/instruments/Makefile.am (muse/n/6_Makefile.a 1.1 644))
+ (share/instruments/gm.idf (muse/n/7_gm.idf 1.1 644))
+ (share/instruments/Yamaha-S90.idf (muse/n/8_Yamaha-S90 1.1 644))
+ (share/instruments/AlesisQS6.idf (muse/n/9_AlesisQS6. 1.1 644))
+ (share/instruments/xg.idf (muse/x/29_xg.idf 1.1 644))
+ (share/instruments/gs.idf (muse/x/30_gs.idf 1.1 644))
+
+ (share/drummaps/Makefile.am (muse/n/10_Makefile.a 1.1 644))
+ (share/drummaps/sc88-pc1.map (muse/n/11_sc88-pc1.m 1.1 644))
+
+ (share/locale/muse_sv_SE.ts (muse/n/12_muse_sv_SE 1.1 644))
+ (share/locale/muse_sv_SE.qm (muse/n/13_muse_sv_SE 1.1 644) :no-keywords)
+ (share/locale/Makefile.am (muse/n/14_Makefile.a 1.1 644))
+ (share/locale/muse_ru.ts (muse/n/15_muse_ru.ts 1.1 644))
+ (share/locale/muse_ru.qm (muse/n/16_muse_ru.qm 1.1 644) :no-keywords)
+ (share/locale/muse_fr.ts (muse/n/17_muse_fr.ts 1.1 644))
+ (share/locale/muse_fr.qm (muse/n/18_muse_fr.qm 1.1 644) :no-keywords)
+ (share/locale/muse_es.ts (muse/n/19_muse_es.ts 1.1 644))
+ (share/locale/muse_es.qm (muse/n/20_muse_es.qm 1.1 644) :no-keywords)
+ (share/locale/muse_de.ts (muse/n/21_muse_de.ts 1.1 644))
+ (share/locale/muse_de.qm (muse/n/22_muse_de.qm 1.1 644) :no-keywords)
+
+ (share/Makefile.am (muse/n/23_Makefile.a 1.1 644))
+ (share/wallpapers/paper1.jpg (muse/n/24_paper1.jpg 1.1 644) :no-keywords)
+ (share/wallpapers/Makefile.am (muse/n/25_Makefile.a 1.1 644))
+ (share/wallpapers/gray_rock.gif (muse/n/26_gray_rock. 1.1 644) :no-keywords)
+ (share/wallpapers/gray.gif (muse/n/27_gray.gif 1.1 644) :no-keywords)
+ (share/wallpapers/gray_stucco.gif (muse/n/28_gray_stucc 1.1 644) :no-keywords)
+ (share/wallpapers/stone1.gif (muse/n/29_stone1.gif 1.1 644) :no-keywords)
+ (share/html/invocation.html (muse/n/30_invocation 1.1 644))
+ (share/html/left_pane.jpg (muse/n/31_left_pane. 1.1 644) :no-keywords)
+ (share/html/styles.css (muse/n/32_styles.css 1.1 644))
+ (share/html/button_bar.jpg (muse/n/33_button_bar 1.1 644) :no-keywords)
+ (share/html/COPYING.html (muse/n/34_COPYING.ht 1.1 644))
+ (share/html/main_window.jpg (muse/n/35_main_windo 1.1 644) :no-keywords)
+ (share/html/toc_.txt (muse/n/36_toc_.txt 1.1 644))
+ (share/html/Makefile.am (muse/n/37_Makefile.a 1.1 644))
+ (share/html/track_info.jpg (muse/n/38_track_info 1.1 644) :no-keywords)
+ (share/html/getting_started.html (muse/n/39_getting_st 1.1 644))
+ (share/html/index.html (muse/n/40_index.html 1.1 644))
+ (share/html/window_ref.html (muse/n/41_window_ref 1.1 644))
+ (share/html/installation.html (muse/n/42_installati 1.1 644))
+ (share/html/main_window_track_info.jpg (muse/n/43_main_windo 1.1 644) :no-keywords)
+ (share/html/right_pane.jpg (muse/n/44_right_pane 1.1 644) :no-keywords)
+
+ (demos/Makefile.am (muse/n/45_Makefile.a 1.1 644))
+ (demos/rasen.med (muse/n/46_rasen.med 1.1 644))
+
+ (muse/Makefile.am (muse/n/47_Makefile.a 1.1 644))
+
+ (muse/helper.h (muse/n/48_helper.h 1.1 644))
+ (muse/tempo.cpp (muse/n/49_tempo.cpp 1.1 644))
+ (muse/memory.h (muse/n/50_memory.h 1.1 644))
+ (muse/help.cpp (muse/n/51_help.cpp 1.1 644))
+ (muse/cliplist/cliplist.cpp (muse/o/0_cliplist.c 1.1 644))
+ (muse/cliplist/Makefile.am (muse/o/1_Makefile.a 1.1 644))
+ (muse/cliplist/cliplist.h (muse/o/2_cliplist.h 1.1 644))
+ (muse/thread.cpp (muse/o/3_thread.cpp 1.2 644))
+ (muse/globals.cpp (muse/o/4_globals.cp 1.2 644))
+ (muse/pos.cpp (muse/o/5_pos.cpp 1.2 644))
+ (muse/track.cpp (muse/o/6_track.cpp 1.1 644))
+ (muse/midictrl.h (muse/o/7_midictrl.h 1.2 644))
+ (muse/node.cpp (muse/o/8_node.cpp 1.2 644))
+
+ (muse/widgets/mmath.cpp (muse/o/9_mmath.cpp 1.1 644))
+ (muse/widgets/dimap.cpp (muse/o/10_dimap.cpp 1.1 644))
+ (muse/widgets/utils.cpp (muse/o/11_utils.cpp 1.1 644))
+ (muse/widgets/sclif.cpp (muse/o/12_sclif.cpp 1.1 644))
+ (muse/widgets/filedialog.cpp (muse/o/13_filedialog 1.1 644))
+ (muse/widgets/citem.h (muse/o/14_citem.h 1.1 644))
+ (muse/widgets/bigtime.cpp (muse/o/15_bigtime.cp 1.1 644))
+ (muse/widgets/velocitybase.h (muse/o/16_velocityba 1.2 644))
+ (muse/widgets/view.cpp (muse/o/17_view.cpp 1.1 644))
+ (muse/widgets/scldraw.h (muse/o/18_scldraw.h 1.1 644))
+ (muse/widgets/sliderbase.h (muse/o/19_sliderbase 1.1 644))
+ (muse/widgets/hitscale.cpp (muse/o/20_hitscale.c 1.1 644))
+ (muse/widgets/itransformbase.ui (muse/o/21_itransform 1.1 644))
+ (muse/widgets/header.cpp (muse/o/22_header.cpp 1.1 644))
+ (muse/widgets/.cvsignore (muse/o/23_.cvsignore 1.1 644))
+ (muse/widgets/mittransposebase.h (muse/o/24_mittranspo 1.2 644))
+ (muse/widgets/tempolabel.h (muse/o/25_tempolabel 1.1 644))
+ (muse/widgets/velocity.cpp (muse/o/26_velocity.c 1.1 644))
+ (muse/widgets/midirawbase.ui (muse/o/27_midirawbas 1.1 644))
+ (muse/widgets/drange.cpp (muse/o/28_drange.cpp 1.1 644))
+ (muse/widgets/header.h (muse/o/29_header.h 1.1 644))
+ (muse/widgets/mlabel.h (muse/o/30_mlabel.h 1.1 644))
+ (muse/widgets/spinboxFP.cpp (muse/o/31_spinboxFP. 1.1 644))
+ (muse/widgets/mlabel.cpp (muse/o/32_mlabel.cpp 1.1 644))
+ (muse/widgets/metronome.cpp (muse/o/33_metronome. 1.1 644))
+ (muse/widgets/ctrlcombo.cw (muse/o/34_ctrlcombo. 1.1 644))
+ (muse/widgets/sigedit.h (muse/o/35_sigedit.h 1.1 644))
+ (muse/widgets/intlabel.h (muse/o/36_intlabel.h 1.1 644))
+ (muse/widgets/comment.cpp (muse/o/37_comment.cp 1.1 644))
+ (muse/widgets/ctrlcombo.cpp (muse/o/38_ctrlcombo. 1.1 644))
+ (muse/widgets/mixdowndialog.cpp (muse/o/39_mixdowndia 1.1 644))
+ (muse/widgets/mtrackinfobase.h (muse/o/40_mtrackinfo 1.2 644))
+ (muse/widgets/fontsel.cpp (muse/o/41_fontsel.cp 1.1 644))
+ (muse/widgets/hitscale.h (muse/o/42_hitscale.h 1.1 644))
+ (muse/widgets/posedit.cpp (muse/o/43_posedit.cp 1.1 644))
+ (muse/widgets/audioconfbase.ui (muse/o/44_audioconfb 1.2 644))
+ (muse/widgets/utils.h (muse/o/45_utils.h 1.1 644))
+ (muse/widgets/splitter.cpp (muse/o/46_splitter.c 1.1 644))
+ (muse/widgets/editctrl7dialogbase.ui (muse/o/47_editctrl7d 1.1 644))
+ (muse/widgets/doublelabel.h (muse/o/48_doublelabe 1.1 644))
+ (muse/widgets/noteinfo.h (muse/o/49_noteinfo.h 1.1 644))
+ (muse/widgets/sigscale.h (muse/o/50_sigscale.h 1.1 644))
+ (muse/widgets/canvas.cpp (muse/o/51_canvas.cpp 1.1 644))
+ (muse/widgets/view.h (muse/p/0_view.h 1.1 644))
+ (muse/widgets/audioconf.h (muse/p/1_audioconf. 1.2 644))
+ (muse/widgets/transposebase.ui (muse/p/2_transposeb 1.1 644))
+ (muse/widgets/spinboxFP.h (muse/p/3_spinboxFP. 1.1 644))
+ (muse/widgets/mtscale.h (muse/p/4_mtscale.h 1.1 644))
+ (muse/widgets/wtrackinfobase.h (muse/p/5_wtrackinfo 1.2 644))
+ (muse/widgets/editsysexdialogbase.h (muse/p/6_editsysexd 1.2 644))
+ (muse/widgets/editmetadialogbase.h (muse/p/7_editmetadi 1.2 644))
+ (muse/widgets/nentry.cpp (muse/p/8_nentry.cpp 1.1 644))
+ (muse/widgets/siglabel.h (muse/p/9_siglabel.h 1.1 644))
+ (muse/widgets/transformbase.ui (muse/p/10_transformb 1.1 644))
+ (muse/widgets/mittransposebase.ui (muse/p/11_mittranspo 1.1 644))
+ (muse/widgets/dentry.h (muse/p/12_dentry.h 1.1 644))
+ (muse/widgets/slider.h (muse/p/13_slider.h 1.1 644))
+ (muse/widgets/wtscale.cpp (muse/p/14_wtscale.cp 1.1 644))
+ (muse/widgets/action.h (muse/p/15_action.h 1.1 644))
+ (muse/widgets/audioconfbase.h (muse/p/16_audioconfb 1.2 644))
+ (muse/widgets/nentry.h (muse/p/17_nentry.h 1.1 644))
+ (muse/widgets/ttoolbar.h (muse/p/18_ttoolbar.h 1.1 644))
+ (muse/widgets/comboQuant.cpp (muse/p/19_comboQuant 1.1 644))
+ (muse/widgets/midisyncimpl.h (muse/p/20_midisyncim 1.1 644))
+ (muse/widgets/sliderbase.cpp (muse/p/21_sliderbase 1.1 644))
+ (muse/widgets/genset.cpp (muse/p/22_genset.cpp 1.1 644))
+ (muse/widgets/mktest (muse/p/23_mktest 1.1 644))
+ (muse/widgets/velocity.h (muse/p/24_velocity.h 1.1 644))
+ (muse/widgets/poslabel.h (muse/p/25_poslabel.h 1.1 644))
+ (muse/widgets/knob.h (muse/p/26_knob.h 1.1 644))
+ (muse/widgets/cliplisteditorbase.ui (muse/p/27_cliplisted 1.1 644))
+ (muse/widgets/splitter.h (muse/p/28_splitter.h 1.1 644))
+ (muse/widgets/sigedit.cpp (muse/p/29_sigedit.cp 1.1 644))
+ (muse/widgets/audioconf.cpp (muse/p/30_audioconf. 1.2 644))
+ (muse/widgets/itransformbase.h (muse/p/31_itransform 1.2 644))
+ (muse/widgets/swidget.h (muse/p/32_swidget.h 1.1 644))
+ (muse/widgets/tools.h (muse/p/33_tools.h 1.1 644))
+ (muse/widgets/pitchlabel.h (muse/p/34_pitchlabel 1.1 644))
+ (muse/widgets/Makefile.am (muse/p/35_Makefile.a 1.1 644))
+ (muse/widgets/intlabel.cpp (muse/p/36_intlabel.c 1.1 644))
+ (muse/widgets/citem.cpp (muse/p/37_citem.cpp 1.1 644))
+ (muse/widgets/canvas.h (muse/p/38_canvas.h 1.1 644))
+ (muse/widgets/doublelabel.cpp (muse/p/39_doublelabe 1.1 644))
+ (muse/widgets/slider.cpp (muse/p/40_slider.cpp 1.1 644))
+ (muse/widgets/mmath.h (muse/p/41_mmath.h 1.1 644))
+ (muse/widgets/wtscale.h (muse/p/42_wtscale.h 1.1 644))
+ (muse/widgets/genset.h (muse/p/43_genset.h 1.1 644))
+ (muse/widgets/posedit.h (muse/p/44_posedit.h 1.1 644))
+ (muse/widgets/velocitybase.ui (muse/p/45_velocityba 1.1 644))
+ (muse/widgets/ttoolbar.cpp (muse/p/46_ttoolbar.c 1.1 644))
+ (muse/widgets/scrollscale.cpp (muse/p/47_scrollscal 1.1 644))
+ (muse/widgets/mtscale.cpp (muse/p/48_mtscale.cp 1.1 644))
+ (muse/widgets/fdialogbuttons.h (muse/p/49_fdialogbut 1.2 644))
+ (muse/widgets/noteinfo.cpp (muse/p/50_noteinfo.c 1.1 644))
+ (muse/widgets/lcombo.cpp (muse/p/51_lcombo.cpp 1.1 644))
+ (muse/widgets/appearancebase.ui (muse/q/0_appearance 1.1 644))
+ (muse/widgets/vscale.h (muse/q/1_vscale.h 1.1 644))
+ (muse/widgets/scldiv.h (muse/q/2_scldiv.h 1.1 644))
+ (muse/widgets/drange.h (muse/q/3_drange.h 1.1 644))
+ (muse/widgets/midirawbase.h (muse/q/4_midirawbas 1.2 644))
+ (muse/widgets/midisync.ui (muse/q/5_midisync.u 1.1 644))
+ (muse/widgets/wtrackinfobase.ui (muse/q/6_wtrackinfo 1.1 644))
+ (muse/widgets/vscale.cpp (muse/q/7_vscale.cpp 1.1 644))
+ (muse/widgets/editsysexdialogbase.ui (muse/q/8_editsysexd 1.1 644))
+ (muse/widgets/cliplisteditorbase.h (muse/q/9_cliplisted 1.2 644))
+ (muse/widgets/gatetimebase.ui (muse/q/10_gatetimeba 1.1 644))
+ (muse/widgets/editmetadialogbase.ui (muse/q/11_editmetadi 1.1 644))
+ (muse/widgets/sigscale.cpp (muse/q/12_sigscale.c 1.1 644))
+ (muse/widgets/mtrackinfobase.ui (muse/q/13_mtrackinfo 1.2 644))
+ (muse/widgets/metronome.h (muse/q/14_metronome. 1.1 644))
+ (muse/widgets/mixdowndialogbase.h (muse/q/15_mixdowndia 1.2 644))
+ (muse/widgets/synthconfigbase.h (muse/q/16_synthconfi 1.2 644))
+ (muse/widgets/gatetime.cpp (muse/q/17_gatetime.c 1.1 644))
+ (muse/widgets/tb1.cpp (muse/q/18_tb1.cpp 1.1 644))
+ (muse/widgets/gensetbase.ui (muse/q/19_gensetbase 1.1 644))
+ (muse/widgets/editctrl7dialogbase.h (muse/q/20_editctrl7d 1.2 644))
+ (muse/widgets/scldraw.cpp (muse/q/21_scldraw.cp 1.1 644))
+ (muse/widgets/bigtime.h (muse/q/22_bigtime.h 1.1 644))
+ (muse/widgets/poslabel.cpp (muse/q/23_poslabel.c 1.1 644))
+ (muse/widgets/metronomebase.ui (muse/q/24_metronomeb 1.1 644))
+ (muse/widgets/scrollscale.h (muse/q/25_scrollscal 1.1 644))
+ (muse/widgets/fdialogbuttons.ui (muse/q/26_fdialogbut 1.1 644))
+ (muse/widgets/sclif.h (muse/q/27_sclif.h 1.1 644))
+ (muse/widgets/tools.cpp (muse/q/28_tools.cpp 1.1 644))
+ (muse/widgets/metronomebase.h (muse/q/29_metronomeb 1.2 644))
+ (muse/widgets/filedialog.h (muse/q/30_filedialog 1.1 644))
+ (muse/widgets/pitchlabel.cpp (muse/q/31_pitchlabel 1.1 644))
+ (muse/widgets/scldiv.cpp (muse/q/32_scldiv.cpp 1.1 644))
+ (muse/widgets/musewidgetsplug.cpp (muse/q/33_musewidget 1.1 644))
+ (muse/widgets/midisyncimpl.cpp (muse/q/34_midisyncim 1.1 644))
+ (muse/widgets/commentbase.ui (muse/q/35_commentbas 1.1 644))
+ (muse/widgets/dentry.cpp (muse/q/36_dentry.cpp 1.1 644))
+ (muse/widgets/comment.h (muse/q/37_comment.h 1.1 644))
+ (muse/widgets/ctrlcombo.h (muse/q/38_ctrlcombo. 1.1 644))
+ (muse/widgets/comboQuant.h (muse/q/39_comboQuant 1.1 644))
+ (muse/widgets/gatetime.h (muse/q/40_gatetime.h 1.1 644))
+ (muse/widgets/tb1.h (muse/q/41_tb1.h 1.1 644))
+ (muse/widgets/editnotedialogbase.ui (muse/q/42_editnotedi 1.1 644))
+ (muse/widgets/pitchedit.h (muse/q/43_pitchedit. 1.1 644))
+ (muse/widgets/lcombo.h (muse/q/44_lcombo.h 1.1 644))
+ (muse/widgets/appearancebase.h (muse/q/45_appearance 1.2 644))
+ (muse/widgets/midisync.h (muse/q/46_midisync.h 1.2 644))
+ (muse/widgets/fontsel.h (muse/q/47_fontsel.h 1.1 644))
+ (muse/widgets/gatetimebase.h (muse/q/48_gatetimeba 1.2 644))
+ (muse/widgets/tempolabel.cpp (muse/q/49_tempolabel 1.1 644))
+ (muse/widgets/gensetbase.h (muse/q/50_gensetbase 1.2 644))
+ (muse/widgets/knob.cpp (muse/q/51_knob.cpp 1.1 644))
+ (muse/widgets/dimap.h (muse/r/0_dimap.h 1.1 644))
+ (muse/widgets/pitchedit.cpp (muse/r/1_pitchedit. 1.1 644))
+ (muse/widgets/siglabel.cpp (muse/r/2_siglabel.c 1.1 644))
+ (muse/widgets/mixdowndialog.h (muse/r/3_mixdowndia 1.1 644))
+ (muse/widgets/transposebase.h (muse/r/4_transposeb 1.2 644))
+ (muse/widgets/transformbase.h (muse/r/5_transformb 1.2 644))
+ (muse/widgets/mixdowndialogbase.ui (muse/r/6_mixdowndia 1.1 644))
+ (muse/widgets/synthconfigbase.ui (muse/r/7_synthconfi 1.1 644))
+ (muse/widgets/swidget.cpp (muse/r/8_swidget.cp 1.1 644))
+ (muse/widgets/section.h (muse/r/9_section.h 1.1 644))
+ (muse/widgets/commentbase.h (muse/r/10_commentbas 1.2 644))
+ (muse/widgets/editnotedialogbase.h (muse/r/11_editnotedi 1.2 644))
+ (muse/transport.h (muse/r/12_transport. 1.1 644))
+ (muse/transpose.h (muse/r/13_transpose. 1.1 644))
+ (muse/seqmsg.cpp (muse/r/14_seqmsg.cpp 1.2 644))
+ (muse/audio.h (muse/r/15_audio.h 1.2 644))
+ (muse/globals.h (muse/r/16_globals.h 1.2 644))
+ (muse/arranger/pcanvas.h (muse/r/17_pcanvas.h 1.1 644))
+ (muse/arranger/alayout.h (muse/r/18_alayout.h 1.1 644))
+ (muse/arranger/tlist.cpp (muse/r/19_tlist.cpp 1.1 644))
+ (muse/arranger/arranger.h (muse/r/20_arranger.h 1.2 644))
+ (muse/arranger/alayout.cpp (muse/r/21_alayout.cp 1.2 644))
+ (muse/arranger/Makefile.am (muse/r/22_Makefile.a 1.1 644))
+ (muse/arranger/tlist.h (muse/r/23_tlist.h 1.1 644))
+ (muse/arranger/pcanvas.cpp (muse/r/24_pcanvas.cp 1.1 644))
+ (muse/arranger/arranger.cpp (muse/r/25_arranger.c 1.2 644))
+ (muse/app.cpp (muse/r/26_app.cpp 1.2 644))
+ (muse/thread.h (muse/r/27_thread.h 1.1 644))
+ (muse/icons.h (muse/r/28_icons.h 1.1 644))
+
+ (muse/instruments/editinstrument.h (muse/r/29_editinstru 1.1 644))
+ (muse/instruments/ccontrolbase.h (muse/r/30_ccontrolba 1.2 644))
+ (muse/instruments/ccontrolbase.ui (muse/r/31_ccontrolba 1.1 644))
+ (muse/instruments/midictrledit.cpp (muse/r/32_midictrled 1.1 644))
+ (muse/instruments/minstrument.h (muse/r/33_minstrumen 1.2 644))
+ (muse/instruments/Makefile.am (muse/r/34_Makefile.a 1.1 644))
+ (muse/instruments/midictrledit.h (muse/r/35_midictrled 1.1 644))
+ (muse/instruments/editinstrument.cpp (muse/r/36_editinstru 1.1 644))
+ (muse/instruments/minstrument.cpp (muse/r/37_minstrumen 1.2 644))
+ (muse/instruments/editinstrumentbase.ui (muse/r/38_editinstru 1.1 644))
+ (muse/instruments/editinstrumentbase.h (muse/r/39_editinstru 1.2 644))
+ (muse/device.h (muse/r/40_device.h 1.1 644))
+ (muse/icons.cpp (muse/r/41_icons.cpp 1.1 644))
+ (muse/wave.h (muse/r/42_wave.h 1.1 644))
+ (muse/ladspa.h (muse/r/43_ladspa.h 1.1 644))
+ (muse/stamp-h1 (muse/r/44_stamp-h1 1.1 644))
+ (muse/undo.h (muse/r/45_undo.h 1.1 644))
+ (muse/sync.h (muse/r/46_sync.h 1.1 644))
+ (muse/stamp-chown (muse/r/47_stamp-chow 1.1 644))
+
+ (muse/waveevent.cpp (muse/r/48_waveevent. 1.1 644))
+ (muse/song.h (muse/r/49_song.h 1.2 644))
+ (muse/synth.cpp (muse/r/50_synth.cpp 1.1 644))
+ (muse/value.cpp (muse/r/51_value.cpp 1.1 644))
+ (muse/midiport.cpp (muse/s/0_midiport.c 1.3 644))
+ (muse/givertcap.c (muse/s/1_givertcap. 1.1 644))
+ (muse/value.h (muse/s/2_value.h 1.1 644))
+ (muse/part.h (muse/s/3_part.h 1.1 644))
+ (muse/node.h (muse/s/4_node.h 1.1 644))
+ (muse/synthconfig.h (muse/s/5_synthconfi 1.1 644))
+ (muse/cobject.cpp (muse/s/6_cobject.cp 1.1 644))
+
+ (muse/mplugins/midifilterimpl.cpp (muse/s/7_midifilter 1.1 644))
+ (muse/mplugins/rhythm.cpp (muse/s/8_rhythm.cpp 1.1 644))
+ (muse/mplugins/.cvsignore (muse/s/9_.cvsignore 1.1 644))
+ (muse/mplugins/rhythmbase.ui (muse/s/10_rhythmbase 1.1 644))
+ (muse/mplugins/midifilter.ui (muse/s/11_midifilter 1.1 644))
+ (muse/mplugins/mitplugin.h (muse/s/12_mitplugin. 1.1 644))
+ (muse/mplugins/rhythm.h (muse/s/13_rhythm.h 1.1 644))
+ (muse/mplugins/midifilter.h (muse/s/14_midifilter 1.2 644))
+ (muse/mplugins/midiitransform.h (muse/s/15_midiitrans 1.1 644))
+ (muse/mplugins/mittranspose.cpp (muse/s/16_mittranspo 1.1 644))
+ (muse/mplugins/mrconfigbase.ui (muse/s/17_mrconfigba 1.1 644))
+ (muse/mplugins/mrconfig.cpp (muse/s/18_mrconfig.c 1.1 644))
+ (muse/mplugins/mrconfig.h (muse/s/19_mrconfig.h 1.1 644))
+ (muse/mplugins/Makefile.am (muse/s/20_Makefile.a 1.1 644))
+ (muse/mplugins/random.h (muse/s/21_random.h 1.1 644))
+ (muse/mplugins/midiitransform.cpp (muse/s/22_midiitrans 1.1 644))
+ (muse/mplugins/mrconfigbase.h (muse/s/23_mrconfigba 1.2 644))
+ (muse/mplugins/mittranspose.h (muse/s/24_mittranspo 1.1 644))
+ (muse/mplugins/rhythmbase.h (muse/s/25_rhythmbase 1.2 644))
+ (muse/mplugins/mitplugin.cpp (muse/s/26_mitplugin. 1.1 644))
+ (muse/mplugins/midifilterimpl.h (muse/s/27_midifilter 1.1 644))
+ (muse/mplugins/random.cpp (muse/s/28_random.cpp 1.1 644))
+ (muse/waveedit/Makefile.am (muse/s/29_Makefile.a 1.1 644))
+ (muse/waveedit/waveview.h (muse/s/30_waveview.h 1.1 644))
+ (muse/waveedit/waveedit.cpp (muse/s/31_waveedit.c 1.1 644))
+ (muse/waveedit/waveedit.h (muse/s/32_waveedit.h 1.1 644))
+ (muse/waveedit/waveview.cpp (muse/s/33_waveview.c 1.1 644))
+ (muse/midieditor.cpp (muse/s/34_midieditor 1.1 644))
+ (muse/wave.cpp (muse/s/35_wave.cpp 1.1 644))
+ (muse/midi.h (muse/s/36_midi.h 1.1 644))
+ (muse/mess.h (muse/s/37_mess.h 1.1 644))
+ (muse/sync.cpp (muse/s/38_sync.cpp 1.1 644))
+ (muse/master/masteredit.cpp (muse/s/39_masteredit 1.1 644))
+ (muse/master/lmaster.cpp (muse/s/40_lmaster.cp 1.1 644))
+ (muse/master/tscale.cpp (muse/s/41_tscale.cpp 1.1 644))
+ (muse/master/Makefile.am (muse/s/42_Makefile.a 1.1 644))
+ (muse/master/master.h (muse/s/43_master.h 1.1 644))
+ (muse/master/masteredit.h (muse/s/44_masteredit 1.1 644))
+ (muse/master/lmaster.h (muse/s/45_lmaster.h 1.1 644))
+ (muse/master/tscale.h (muse/s/46_tscale.h 1.1 644))
+ (muse/master/master.cpp (muse/s/47_master.cpp 1.1 644))
+ (muse/marker/Makefile.am (muse/s/48_Makefile.a 1.1 644))
+ (muse/marker/marker.h (muse/s/49_marker.h 1.1 644))
+ (muse/marker/markerview.cpp (muse/s/50_markerview 1.1 644))
+ (muse/marker/markerview.h (muse/s/51_markerview 1.1 644))
+ (muse/marker/marker.cpp (muse/t/0_marker.cpp 1.1 644))
+ (muse/track.h (muse/t/1_track.h 1.1 644))
+ (muse/mtc.cpp (muse/t/2_mtc.cpp 1.1 644))
+ (muse/cobject.h (muse/t/3_cobject.h 1.1 644))
+ (muse/synth.h (muse/t/4_synth.h 1.2 644))
+ (muse/songfile.cpp (muse/t/5_songfile.c 1.1 644))
+ (muse/midictrl.cpp (muse/t/6_midictrl.c 1.2 644))
+ (muse/mpevent.h (muse/t/7_mpevent.h 1.1 644))
+
+ (muse/driver/audiodev.h (muse/t/8_audiodev.h 1.1 644))
+ (muse/driver/midiserial.h (muse/t/9_midiserial 1.1 644))
+
+ (muse/driver/midirawin.h (muse/t/10_midirawin. 1.1 644))
+ (muse/driver/midirawdev.h (muse/t/11_midirawdev 1.2 644))
+ (muse/driver/alsamidi.cpp (muse/t/12_alsamidi.c 1.3 644))
+ (muse/driver/alsamidi.h (muse/t/13_alsamidi.h 1.3 644))
+ (muse/driver/Makefile.am (muse/t/14_Makefile.a 1.1 644))
+ (muse/driver/jack.cpp (muse/t/15_jack.cpp 1.2 644))
+ (muse/driver/midirawin.cpp (muse/t/16_midirawin. 1.1 644))
+ (muse/driver/alsaaudio.h (muse/t/17_alsaaudio. 1.2 644))
+ (muse/driver/midiserial.cpp (muse/t/18_midiserial 1.1 644))
+ (muse/driver/alsaaudio.cpp (muse/t/19_alsaaudio. 1.2 644))
+ (muse/driver/midirawdev.cpp (muse/t/20_midirawdev 1.2 644))
+ (muse/driver/jackaudio.h (muse/t/21_jackaudio. 1.2 644))
+
+ (muse/conf.cpp (muse/t/22_conf.cpp 1.2 644))
+ (muse/conf.h (muse/t/23_conf.h 1.1 644))
+ (muse/midiedit/drummap.cpp (muse/t/24_drummap.cp 1.1 644))
+ (muse/midiedit/dcanvas.h (muse/t/25_dcanvas.h 1.1 644))
+ (muse/midiedit/piano.h (muse/t/26_piano.h 1.1 644))
+ (muse/midiedit/drummap.h (muse/t/27_drummap.h 1.1 644))
+ (muse/midiedit/drumedit.h (muse/t/28_drumedit.h 1.1 644))
+ (muse/midiedit/prcanvas.cpp (muse/t/29_prcanvas.c 1.1 644))
+ (muse/midiedit/dcanvas.cpp (muse/t/30_dcanvas.cp 1.1 644))
+ (muse/midiedit/Makefile.am (muse/t/31_Makefile.a 1.1 644))
+ (muse/midiedit/dlist.cpp (muse/t/32_dlist.cpp 1.1 644))
+ (muse/midiedit/pianoroll.cpp (muse/t/33_pianoroll. 1.1 644))
+ (muse/midiedit/ecanvas.h (muse/t/34_ecanvas.h 1.1 644))
+ (muse/midiedit/quantconfig.h (muse/t/35_quantconfi 1.1 644))
+ (muse/midiedit/quantconfig.cpp (muse/t/36_quantconfi 1.1 644))
+ (muse/midiedit/ecanvas.cpp (muse/t/37_ecanvas.cp 1.1 644))
+ (muse/midiedit/piano.cpp (muse/t/38_piano.cpp 1.1 644))
+ (muse/midiedit/prcanvas.h (muse/t/39_prcanvas.h 1.1 644))
+ (muse/midiedit/drumedit.cpp (muse/t/40_drumedit.c 1.1 644))
+ (muse/midiedit/dlist.h (muse/t/41_dlist.h 1.1 644))
+ (muse/midiedit/cmd.h (muse/t/42_cmd.h 1.1 644))
+ (muse/midiedit/pianoroll.h (muse/t/43_pianoroll. 1.1 644))
+ (muse/event.cpp (muse/t/44_event.cpp 1.1 644))
+ (muse/midi.cpp (muse/t/45_midi.cpp 1.2 644))
+ (muse/waveevent.h (muse/t/46_waveevent. 1.1 644))
+ (muse/event.h (muse/t/47_event.h 1.1 644))
+ (muse/audioprefetch.h (muse/t/48_audioprefe 1.1 644))
+ (muse/mpevent.cpp (muse/t/49_mpevent.cp 1.3 644))
+ (muse/appearance.cpp (muse/t/50_appearance 1.1 644))
+ (muse/tempo.h (muse/t/51_tempo.h 1.1 644))
+ (muse/muse.pro (muse/u/0_muse.pro 1.1 644))
+ (muse/muse.log (muse/u/1_muse.log 1.1 644))
+ (muse/patchbay/Makefile.am (muse/u/2_Makefile.a 1.1 644))
+ (muse/patchbay/patchbay.cpp (muse/u/3_patchbay.c 1.1 644))
+ (muse/patchbay/patchbaybase.ui (muse/u/4_patchbayba 1.1 644))
+ (muse/patchbay/patchbay.h (muse/u/5_patchbay.h 1.1 644))
+ (muse/part.cpp (muse/u/6_part.cpp 1.1 644))
+ (muse/make.inc (muse/u/7_make.inc 1.1 644))
+ (muse/confmport.h (muse/u/8_confmport. 1.1 644))
+ (muse/audio.cpp (muse/u/9_audio.cpp 1.3 644))
+ (muse/confmport.cpp (muse/u/10_confmport. 1.1 644))
+ (muse/synthconfig.cpp (muse/u/11_synthconfi 1.1 644))
+ (muse/cfprint.h (muse/u/12_cfprint.h 1.1 644))
+ (muse/eventlist.h (muse/u/13_eventlist. 1.1 644))
+ (muse/sig.cpp (muse/u/14_sig.cpp 1.1 644))
+
+ (muse/midieditor.h (muse/u/15_midieditor 1.1 644))
+ (muse/midievent.h (muse/u/16_midievent. 1.2 644))
+ (muse/appearance.h (muse/u/17_appearance 1.1 644))
+ (muse/globaldefs.h (muse/u/18_globaldefs 1.1 644))
+
+ (muse/miditransform.cpp (muse/u/19_miditransf 1.1 644))
+ (muse/helper.cpp (muse/u/20_helper.cpp 1.1 644))
+ (muse/miditransform.h (muse/u/21_miditransf 1.1 644))
+ (muse/audioprefetch.cpp (muse/u/22_audioprefe 1.1 644))
+ (muse/transport.cpp (muse/u/23_transport. 1.1 644))
+ (muse/eventlist.cpp (muse/u/24_eventlist. 1.1 644))
+ (muse/transpose.cpp (muse/u/25_transpose. 1.1 644))
+ (muse/xml.h (muse/u/26_xml.h 1.1 644))
+ (muse/sig.h (muse/u/27_sig.h 1.1 644))
+
+ (muse/pos.h (muse/u/28_pos.h 1.2 644))
+ (muse/mtc.h (muse/u/29_mtc.h 1.1 644))
+ (muse/mixer/amixer.h (muse/u/30_amixer.h 1.1 644))
+ (muse/mixer/meter.cpp (muse/u/31_meter.cpp 1.1 644))
+ (muse/mixer/mixer.cpp (muse/u/32_mixer.cpp 1.1 644))
+ (muse/mixer/routecombo.cpp (muse/u/33_routecombo 1.1 644))
+ (muse/mixer/volslider.h (muse/u/34_volslider. 1.1 644))
+ (muse/mixer/rack.h (muse/u/35_rack.h 1.1 644))
+ (muse/mixer/Makefile.am (muse/u/36_Makefile.a 1.1 644))
+ (muse/mixer/mixer.h (muse/u/37_mixer.h 1.1 644))
+ (muse/mixer/panknob.h (muse/u/38_panknob.h 1.1 644))
+ (muse/mixer/panknob.cpp (muse/u/39_panknob.cp 1.1 644))
+ (muse/mixer/amixer.cpp (muse/u/40_amixer.cpp 1.1 644))
+ (muse/mixer/meter.h (muse/u/41_meter.h 1.1 644))
+ (muse/mixer/rack.cpp (muse/u/42_rack.cpp 1.1 644))
+ (muse/mixer/routecombo.h (muse/u/43_routecombo 1.1 644))
+ (muse/mixer/audionodebutton.h (muse/u/44_audionodeb 1.1 644))
+ (muse/mixer/dot.xpm (muse/u/45_dot.xpm 1.1 644))
+ (muse/mixer/volslider.cpp (muse/u/46_volslider. 1.1 644))
+ (muse/mixer/audionodebutton.cpp (muse/u/47_audionodeb 1.1 644))
+ (muse/liste/editevent.cpp (muse/u/48_editevent. 1.1 644))
+ (muse/liste/editctrlbase.h (muse/u/49_editctrlba 1.2 644))
+ (muse/liste/editevent.h (muse/u/50_editevent. 1.1 644))
+ (muse/liste/Makefile.am (muse/u/51_Makefile.a 1.1 644))
+ (muse/liste/listedit.h (muse/v/0_listedit.h 1.1 644))
+ (muse/liste/listedit.cpp (muse/v/1_listedit.c 1.2 644))
+ (muse/liste/editctrlbase.ui (muse/v/2_editctrlba 1.1 644))
+ (muse/key.h (muse/v/3_key.h 1.1 644))
+ (muse/app.h (muse/v/4_app.h 1.2 644))
+ (muse/song.cpp (muse/v/5_song.cpp 1.2 644))
+ (muse/key.cpp (muse/v/6_key.cpp 1.1 644))
+ (muse/memory.cpp (muse/v/7_memory.cpp 1.2 644))
+ (muse/midiport.h (muse/v/8_midiport.h 1.2 644))
+ (muse/xml.cpp (muse/v/9_xml.cpp 1.1 644))
+ (muse/midievent.cpp (muse/v/10_midievent. 1.2 644))
+ (muse/undo.cpp (muse/v/11_undo.cpp 1.1 644))
+ (muse/debug.h (muse/v/12_debug.h 1.1 644))
+ (muse/ctrl/ctrlcanvas.cpp (muse/v/13_ctrlcanvas 1.1 644))
+ (muse/ctrl/ctrlpanel.h (muse/v/14_ctrlpanel. 1.1 644))
+ (muse/ctrl/ctrlcanvas.h (muse/v/15_ctrlcanvas 1.1 644))
+ (muse/ctrl/ctrledit.h (muse/v/16_ctrledit.h 1.1 644))
+ (muse/ctrl/Makefile.am (muse/v/17_Makefile.a 1.1 644))
+ (muse/ctrl/ctrledit.cpp (muse/v/18_ctrledit.c 1.1 644))
+ (muse/ctrl/ctrlpanel.cpp (muse/v/19_ctrlpanel. 1.1 644))
+ (muse/cfprint.cpp (muse/v/20_cfprint.cp 1.1 644))
+
+ (xpm/darkreddot.xpm (muse/v/21_darkreddot 1.1 644))
+ (xpm/editmuteS.xpm (muse/v/22_editmuteS. 1.1 644))
+ (xpm/midiin.xpm (muse/v/23_midiin.xpm 1.1 644))
+ (xpm/editpasteS.xpm (muse/v/24_editpasteS 1.1 644))
+ (xpm/pitch.xpm (muse/v/25_pitch.xpm 1.1 644))
+ (xpm/italic.xpm (muse/v/26_italic.xpm 1.1 644))
+ (xpm/redo.xpm (muse/v/27_redo.xpm 1.1 644))
+ (xpm/filesaveS.xpm (muse/v/28_filesaveS. 1.1 644))
+ (xpm/scoreS.xpm (muse/v/29_scoreS.xpm 1.1 644))
+ (xpm/exit.xpm (muse/v/30_exit.xpm 1.1 644))
+ (xpm/rmark.xpm (muse/v/31_rmark.xpm 1.1 644))
+ (xpm/frewind.xpm (muse/v/32_frewind.xp 1.1 644))
+ (xpm/stop.xpm (muse/v/33_stop.xpm 1.1 644))
+ (xpm/graydot.xpm (muse/v/34_graydot.xp 1.1 644))
+ (xpm/loop.xpm (muse/v/35_loop.xpm 1.1 644))
+ (xpm/steprec.xpm (muse/v/36_steprec.xp 1.1 644))
+ (xpm/recordoffbutton.xpm (muse/v/37_recordoffb 1.1 644))
+ (xpm/filenewS.xpm (muse/v/38_filenewS.x 1.1 644))
+ (xpm/bold.xpm (muse/v/39_bold.xpm 1.1 644))
+ (xpm/fileopen.xpm (muse/v/40_fileopen.x 1.1 644))
+ (xpm/editpaste.xpm (muse/v/41_editpaste. 1.1 644))
+ (xpm/speaker.xpm (muse/v/42_speaker.xp 1.1 644))
+ (xpm/delete.xpm (muse/v/43_delete.xpm 1.1 644))
+ (xpm/pianoS.xpm (muse/v/44_pianoS.xpm 1.1 644))
+ (xpm/start.xpm (muse/v/45_start.xpm 1.1 644))
+ (xpm/punchin.xpm (muse/v/46_punchin.xp 1.1 644))
+ (xpm/fileprint.xpm (muse/v/47_fileprint. 1.1 644))
+ (xpm/editcopy.xpm (muse/v/48_editcopy.x 1.1 644))
+ (xpm/play.xpm (muse/v/49_play.xpm 1.1 644))
+ (xpm/filesaveasS.xpm (muse/v/50_filesaveas 1.1 644))
+ (xpm/stick.xpm (muse/v/51_stick.xpm 1.1 644))
+ (xpm/fforward.xpm (muse/w/0_fforward.x 1.1 644))
+ (xpm/lock.xpm (muse/w/1_lock.xpm 1.1 644))
+ (xpm/back.xpm (muse/w/2_back.xpm 1.1 644))
+ (xpm/up.xpm (muse/w/3_up.xpm 1.1 644))
+ (xpm/cafter.xpm (muse/w/4_cafter.xpm 1.1 644))
+ (xpm/recordonbutton.xpm (muse/w/5_recordonbu 1.1 644))
+ (xpm/flag.xpm (muse/w/6_flag.xpm 1.1 644))
+ (xpm/off.xpm (muse/w/7_off.xpm 1.1 644))
+ (xpm/editcutS.xpm (muse/w/8_editcutS.x 1.1 644))
+ (xpm/editmute.xpm (muse/w/9_editmute.x 1.1 644))
+ (xpm/pencil.xpm (muse/w/10_pencil.xpm 1.1 644))
+ (xpm/pointer.xpm (muse/w/11_pointer.xp 1.1 644))
+ (xpm/wave.xpm (muse/w/12_wave.xpm 1.1 644))
+ (xpm/undoS.xpm (muse/w/13_undoS.xpm 1.1 644))
+ (xpm/loop1.xpm (muse/w/14_loop1.xpm 1.1 644))
+ (xpm/score.xpm (muse/w/15_score.xpm 1.1 644))
+ (xpm/glue.xpm (muse/w/16_glue.xpm 1.1 644))
+ (xpm/Makefile.am (muse/w/17_Makefile.a 1.1 644))
+ (xpm/gv.xpm (muse/w/18_gv.xpm 1.1 644))
+ (xpm/redoS.xpm (muse/w/19_redoS.xpm 1.1 644))
+ (xpm/toc.xpm (muse/w/20_toc.xpm 1.1 644))
+ (xpm/greendot.xpm (muse/w/21_greendot.x 1.1 644))
+ (xpm/configure.xpm (muse/w/22_configure. 1.1 644))
+ (xpm/forward.xpm (muse/w/23_forward.xp 1.1 644))
+ (xpm/underlined.xpm (muse/w/24_underlined 1.1 644))
+ (xpm/home.xpm (muse/w/25_home.xpm 1.1 644))
+ (xpm/record1.xpm (muse/w/26_record1.xp 1.1 644))
+ (xpm/lmark.xpm (muse/w/27_lmark.xpm 1.1 644))
+ (xpm/record.xpm (muse/w/28_record.xpm 1.1 644))
+ (xpm/mute.xpm (muse/w/29_mute.xpm 1.1 644))
+ (xpm/darkgreendot.xpm (muse/w/30_darkgreend 1.1 644))
+ (xpm/find.xpm (muse/w/31_find.xpm 1.1 644))
+ (xpm/reddot.xpm (muse/w/32_reddot.xpm 1.1 644))
+ (xpm/punchout.xpm (muse/w/33_punchout.x 1.1 644))
+ (xpm/panic.xpm (muse/w/34_panic.xpm 1.1 644))
+ (xpm/fileprintS.xpm (muse/w/35_fileprintS 1.1 644))
+ (xpm/draw.xpm (muse/w/36_draw.xpm 1.1 644))
+ (xpm/filesave.xpm (muse/w/37_filesave.x 1.1 644))
+ (xpm/filenew.xpm (muse/w/38_filenew.xp 1.1 644))
+ (xpm/piano.xpm (muse/w/39_piano.xpm 1.1 644))
+ (xpm/solobutton.xpm (muse/w/40_solobutton 1.1 644))
+ (xpm/punchin1.xpm (muse/w/41_punchin1.x 1.1 644))
+ (xpm/idea.xpm (muse/w/42_idea.xpm 1.1 644))
+ (xpm/editcut.xpm (muse/w/43_editcut.xp 1.1 644))
+ (xpm/editcopyS.xpm (muse/w/44_editcopyS. 1.1 644))
+ (xpm/cmark.xpm (muse/w/45_cmark.xpm 1.1 644))
+ (xpm/fileopenS.xpm (muse/w/46_fileopenS. 1.1 644))
+ (xpm/ctrl.xpm (muse/w/47_ctrl.xpm 1.1 644))
+ (xpm/note1.xpm (muse/w/48_note1.xpm 1.1 644))
+ (xpm/context_help.xpm (muse/w/49_context_he 1.1 644))
+ (xpm/exitS.xpm (muse/w/50_exitS.xpm 1.1 644))
+ (xpm/flagS.xpm (muse/w/51_flagS.xpm 1.1 644))
+ (xpm/iiwusynth.xpm (muse/x/0_iiwusynth. 1.1 644))
+ (xpm/sysex.xpm (muse/x/1_sysex.xpm 1.1 644))
+ (xpm/down.xpm (muse/x/2_down.xpm 1.1 644))
+ (xpm/dot.xpm (muse/x/3_dot.xpm 1.1 644))
+ (xpm/quant.xpm (muse/x/4_quant.xpm 1.1 644))
+ (xpm/doth.xpm (muse/x/5_doth.xpm 1.1 644))
+ (xpm/punchout1.xpm (muse/x/6_punchout1. 1.1 644))
+ (xpm/cut.xpm (muse/x/7_cut.xpm 1.1 644))
+ (xpm/note.xpm (muse/x/8_note.xpm 1.1 644))
+ (xpm/buttondown.xpm (muse/x/9_buttondown 1.1 644))
+ (xpm/dot1.xpm (muse/x/10_dot1.xpm 1.1 644))
+ (xpm/meta.xpm (muse/x/11_meta.xpm 1.1 644))
+ (xpm/undo.xpm (muse/x/12_undo.xpm 1.1 644))
+ (xpm/master.xpm (muse/x/13_master.xpm 1.1 644))
+ (xpm/bluedot.xpm (muse/x/14_bluedot.xp 1.1 644))
+ (xpm/newmutebutton.xpm (muse/x/15_newmutebut 1.1 644))
+ (xpm/pafter.xpm (muse/x/16_pafter.xpm 1.1 644))
+
+ (lib/plugins/Makefile.am (muse/x/17_Makefile.a 1.1 644))
+ (lib/synthi/Makefile.am (muse/x/18_Makefile.a 1.1 644))
+ (lib/Makefile.am (muse/x/19_Makefile.a 1.1 644))
+
+ (doc/midieditfunctions.png (muse/x/20_midieditfu 1.1 644) :no-keywords)
+ (doc/Makefile.am (muse/x/21_Makefile.a 1.1 644))
+ (doc/muse.sgm (muse/x/22_muse.sgm 1.1 644))
+
+ (m4/alsa.m4 (muse/x/23_alsa.m4 1.1 644))
+ (m4/docbook.m4 (muse/x/24_docbook.m4 1.1 644))
+ (m4/Makefile.am (muse/x/25_Makefile.a 1.1 644))
+ (m4/aclocal-include.m4 (muse/x/26_aclocal-in 1.1 644))
+ (m4/qt.m4 (muse/x/27_qt.m4 1.1 644))
+
+;; Files added by populate at Thu, 16 Oct 2003 12:04:05 +0200,
+;; to version 0.0(w), by ws:
+
+ (Doxyfile (muse/x/28_Doxyfile 1.1 644))
+ (mkinstalldirs (/usr/share/automake-1.7/mkinstalldirs) :symlink)
+ (missing (/usr/share/automake-1.7/missing) :symlink)
+ (depcomp (/usr/share/automake-1.7/depcomp) :symlink)
+ (install-sh (/usr/share/automake-1.7/install-sh) :symlink)
+
+ (muse/plugin.h (muse/x/31_plugin.h 1.1 644))
+ (muse/importmidi.cpp (muse/x/32_importmidi 1.2 644))
+ (muse/midifile.h (muse/x/33_midifile.h 1.2 644))
+ (muse/midiseq.h (muse/x/34_midiseq.h 1.1 644))
+ (muse/mididev.h (muse/x/35_mididev.h 1.2 644))
+ (muse/mididev.cpp (muse/x/36_mididev.cp 1.3 644))
+ (muse/widgets/synthwizardbase.h (muse/x/37_synthwizar 1.2 644))
+ (muse/widgets/synthwizardbase.ui (muse/x/38_synthwizar 1.1 644))
+ (muse/instruments/instr (muse/x/39_instr 1.1 755) :no-keywords)
+ (muse/exportmidi.cpp (muse/x/40_exportmidi 1.1 644))
+ (muse/midifile.cpp (muse/x/41_midifile.c 1.2 644))
+ (muse/evdata.h (muse/x/42_evdata.h 1.1 644))
+ (muse/plugin.cpp (muse/x/43_plugin.cpp 1.1 644))
+ (muse/midiseq.cpp (muse/x/44_midiseq.cp 1.2 644))
+ (muse/TODO (muse/x/45_TODO 1.2 644))
+)
+(Merge-Parents)
+(New-Merge-Parents)
diff --git a/muse2/muse.pro b/muse2/muse.pro
new file mode 100644
index 00000000..364ab42b
--- /dev/null
+++ b/muse2/muse.pro
@@ -0,0 +1,688 @@
+HEADERS = \
+./muse/midictrl.h \
+./muse/driver/timerdev.h \
+./muse/driver/audiodev.h \
+./muse/driver/jackmidi.h \
+./muse/driver/alsamidi.h \
+./muse/driver/jackaudio.h \
+./muse/driver/rtctimer.h \
+./muse/driver/alsatimer.h \
+./muse/gconfig.h \
+./muse/remote/pyapi.h \
+./muse/part.h \
+./muse/app.h \
+./muse/plugin.h \
+./muse/synth.h \
+./muse/song.h \
+./muse/instruments/minstrument.h \
+./muse/instruments/editinstrument.h \
+./muse/instruments/ccontrolbase.h \
+./muse/instruments/editinstrumentbase.h \
+./muse/instruments/midictrledit.h \
+./muse/midievent.h \
+./muse/dssihost.h \
+./muse/master/master.h \
+./muse/master/tscale.h \
+./muse/master/masteredit.h \
+./muse/master/lmaster.h \
+./muse/stringparam.h \
+./muse/conf.h \
+./muse/key.h \
+./muse/thread.h \
+./muse/sig.h \
+./muse/arranger/alayout.h \
+./muse/arranger/arranger.h \
+./muse/arranger/trackautomationview.h \
+./muse/arranger/pcanvas.h \
+./muse/arranger/tlist.h \
+./muse/globaldefs.h \
+./muse/midi.h \
+./muse/osc.h \
+./muse/mpevent.h \
+./muse/pos.h \
+./muse/waveevent.h \
+./muse/audioprefetch.h \
+./muse/transpose.h \
+./muse/waveedit/waveview.h \
+./muse/waveedit/waveedit.h \
+./muse/waveedit/editgain.h \
+./muse/waveedit/editgainbase.h \
+./muse/mtc.h \
+./muse/patchbay/patchbay.h \
+./muse/default_click.h \
+./muse/ctrl.h \
+./muse/tempo.h \
+./muse/ctrl/ctrlcanvas.h \
+./muse/ctrl/ctrlpanel.h \
+./muse/ctrl/ctrledit.h \
+./muse/eventbase.h \
+./muse/debug.h \
+./muse/ticksynth.h \
+./muse/ladspa.h \
+./muse/midifile.h \
+./muse/audioconvert.h \
+./muse/transport.h \
+./muse/cobject.h \
+./muse/fastlog.h \
+./muse/cliplist/cliplist.h \
+./muse/mididev.h \
+./muse/value.h \
+./muse/miditransform.h \
+./muse/appearance.h \
+./muse/undo.h \
+./muse/widgets/tb1.h \
+./muse/widgets/canvas.h \
+./muse/widgets/sclif.h \
+./muse/widgets/citem.h \
+./muse/widgets/lcombo.h \
+./muse/widgets/aboutbox_impl.h \
+./muse/widgets/appearancebase.h \
+./muse/widgets/mixdowndialogbase.h \
+./muse/widgets/pitchedit.h \
+./muse/widgets/intlabel.h \
+./muse/widgets/songinfo.h \
+./muse/widgets/nentry.h \
+./muse/widgets/fdialogbuttons.h \
+./muse/widgets/wtscale.h \
+./muse/widgets/posedit.h \
+./muse/widgets/sigscale.h \
+./muse/widgets/metronome.h \
+./muse/widgets/slider.h \
+./muse/widgets/checkbox.h \
+./muse/widgets/aboutbox.h \
+./muse/widgets/siglabel.h \
+./muse/widgets/shortcutconfigbase.h \
+./muse/widgets/scrollscale.h \
+./muse/widgets/drange.h \
+./muse/widgets/editmetadialogbase.h \
+./muse/widgets/cliplisteditorbase.h \
+./muse/widgets/genset.h \
+./muse/widgets/synthconfigbase.h \
+./muse/widgets/ttoolbar.h \
+./muse/widgets/gatetime.h \
+./muse/widgets/editctrl7dialogbase.h \
+./muse/widgets/scldiv.h \
+./muse/widgets/shortcutcapturedialog.h \
+./muse/widgets/didyouknow.h \
+./muse/widgets/splitter.h \
+./muse/widgets/mixdowndialog.h \
+./muse/widgets/knob.h \
+./muse/widgets/shortcutcapturedialogbase.h \
+./muse/widgets/editnotedialogbase.h \
+./muse/widgets/tools.h \
+./muse/widgets/bigtime.h \
+./muse/widgets/gatetimebase.h \
+./muse/widgets/mlabel.h \
+./muse/widgets/synthwizardbase.h \
+./muse/widgets/scldraw.h \
+./muse/widgets/velocitybase.h \
+./muse/widgets/midisync.h \
+./muse/widgets/action.h \
+./muse/widgets/spinbox.h \
+./muse/widgets/sliderbase.h \
+./muse/widgets/ctrlcombo.h \
+./muse/widgets/section.h \
+./muse/widgets/velocity.h \
+./muse/widgets/pitchlabel.h \
+./muse/widgets/fontsel.h \
+./muse/widgets/doublelabel.h \
+./muse/widgets/hitscale.h \
+./muse/widgets/editsysexdialogbase.h \
+./muse/widgets/utils.h \
+./muse/widgets/dimap.h \
+./muse/widgets/filedialog.h \
+./muse/widgets/shortcutconfig.h \
+./muse/widgets/comment.h \
+./muse/widgets/mmath.h \
+./muse/widgets/comboQuant.h \
+./muse/widgets/spinboxFP.h \
+./muse/widgets/mtrackinfobase.h \
+./muse/widgets/configmidifilebase.h \
+./muse/widgets/swidget.h \
+./muse/widgets/ttoolbutton.h \
+./muse/widgets/metronomebase.h \
+./muse/widgets/header.h \
+./muse/widgets/gensetbase.h \
+./muse/widgets/itransformbase.h \
+./muse/widgets/view.h \
+./muse/widgets/combobox.h \
+./muse/widgets/mittransposebase.h \
+./muse/widgets/transformbase.h \
+./muse/widgets/midisyncimpl.h \
+./muse/widgets/vscale.h \
+./muse/widgets/wtrackinfobase.h \
+./muse/widgets/poslabel.h \
+./muse/widgets/menutitleitem.h \
+./muse/widgets/listitem.h \
+./muse/widgets/popupmenu.h \
+./muse/widgets/sigedit.h \
+./muse/widgets/commentbase.h \
+./muse/widgets/tempolabel.h \
+./muse/widgets/noteinfo.h \
+./muse/widgets/mtscale.h \
+./muse/widgets/transposebase.h \
+./muse/widgets/dentry.h \
+./muse/event.h \
+./muse/sync.h \
+./muse/confmport.h \
+./muse/icons.h \
+./muse/route.h \
+./muse/xml.h \
+./muse/track.h \
+./muse/audio.h \
+./muse/vst.h \
+./muse/mixer/astrip.h \
+./muse/mixer/panknob.h \
+./muse/mixer/routedialogbase.h \
+./muse/mixer/strip.h \
+./muse/mixer/meter.h \
+./muse/mixer/mstrip.h \
+./muse/mixer/rack.h \
+./muse/mixer/amixer.h \
+./muse/mixer/auxknob.h \
+./muse/mixer/midiportroutebase.h \
+./muse/mixer/routedialog.h \
+./muse/marker/markerview.h \
+./muse/marker/marker.h \
+./muse/midiseq.h \
+./muse/memory.h \
+./muse/liste/editevent.h \
+./muse/liste/listedit.h \
+./muse/liste/editctrlbase.h \
+./muse/evdata.h \
+./muse/node.h \
+./muse/midiedit/pianoroll.h \
+./muse/midiedit/piano.h \
+./muse/midiedit/prcanvas.h \
+./muse/midiedit/dlist.h \
+./muse/midiedit/cmd.h \
+./muse/midiedit/drummap.h \
+./muse/midiedit/dcanvas.h \
+./muse/midiedit/quantconfig.h \
+./muse/midiedit/drumedit.h \
+./muse/midiedit/ecanvas.h \
+./muse/helper.h \
+./muse/globals.h \
+./muse/mplugins/rhythm.h \
+./muse/mplugins/midiitransform.h \
+./muse/mplugins/mittranspose.h \
+./muse/mplugins/mrconfig.h \
+./muse/mplugins/midifilter.h \
+./muse/mplugins/mitplugin.h \
+./muse/mplugins/mrconfigbase.h \
+./muse/mplugins/random.h \
+./muse/mplugins/midifilterimpl.h \
+./muse/mplugins/rhythmbase.h \
+./muse/wave.h \
+./muse/shortcuts.h \
+./muse/midieditor.h \
+./muse/midiport.h \
+./muse/device.h \
+./plugins/freeverb/denormals.h \
+./plugins/freeverb/comb.h \
+./plugins/freeverb/tuning.h \
+./plugins/freeverb/revmodel.h \
+./plugins/freeverb/allpass.h \
+./plugins/doublechorus/simplechorusmodel.h \
+./plugins/doublechorus/doublechorusmodel.h \
+./plugins/pandelay/ladspapandelay.h \
+./plugins/pandelay/pandelaymodel.h \
+./config.h \
+./synti/deicsonze/newpreset.h \
+./synti/deicsonze/deicsonze.h \
+./synti/deicsonze/deicsonzeguibase.h \
+./synti/deicsonze/deicsonzegui.h \
+./synti/deicsonze2/deicsonzeplugin.h \
+./synti/deicsonze2/deicsonzefilter.h \
+./synti/deicsonze2/deicsonze.h \
+./synti/deicsonze2/deicsonzeguibase.h \
+./synti/deicsonze2/deicsonzepreset.h \
+./synti/deicsonze2/deicsonzegui.h \
+./synti/fluid/fluidgui.h \
+./synti/fluid/fluidguibase.h \
+./synti/fluid/fluid.h \
+./synti/vam/vamguibase.h \
+./synti/vam/vamgui.h \
+./synti/vam/vam.h \
+./synti/organ/organguibase.h \
+./synti/organ/fdialogbuttons.h \
+./synti/organ/organ.h \
+./synti/organ/organgui.h \
+./synti/libsynti/mono.h \
+./synti/libsynti/mpevent.h \
+./synti/libsynti/poly.h \
+./synti/libsynti/gui.h \
+./synti/libsynti/mess.h \
+./synti/libsynti/evdata.h \
+./synti/simpledrums/common.h \
+./synti/simpledrums/simpledrums.h \
+./synti/simpledrums/sspluginchooserbase.h \
+./synti/simpledrums/simpledrumsgui.h \
+./synti/simpledrums/simpledrumsguibase.h \
+./synti/simpledrums/ssplugin.h \
+./synti/simpledrums/ssplugingui.h \
+./synti/fluidsynth/fluidsynthgui.h \
+./synti/fluidsynth/fluidsynthguibase.h \
+./synti/fluidsynth/fluidsynti.h
+
+
+SOURCES = \
+./al/dspSSE.cpp \
+./al/dspXMM.cpp \
+./al/al.cpp \
+./al/dsp.cpp \
+./muse/sig.cpp \
+./muse/seqmsg.cpp \
+./muse/dssihost.cpp \
+./muse/driver/rtctimer.cpp \
+./muse/driver/jackmidi.cpp \
+./muse/driver/alsamidi.cpp \
+./muse/driver/dummyaudio.cpp \
+./muse/driver/jack.cpp \
+./muse/driver/alsatimer.cpp \
+./muse/key.cpp \
+./muse/moc_midieditor.cpp \
+./muse/remote/pyapi.cpp \
+./muse/moc_conf.cpp \
+./muse/gconfig.cpp \
+./muse/waveevent.cpp \
+./muse/moc_appearance.cpp \
+./muse/moc_transpose.cpp \
+./muse/instruments/editinstrument.cpp \
+./muse/instruments/moc_editinstrument.cpp \
+./muse/instruments/minstrument.cpp \
+./muse/instruments/midictrledit.cpp \
+./muse/ticksynth.cpp \
+./muse/master/moc_lmaster.cpp \
+./muse/master/lmaster.cpp \
+./muse/master/tscale.cpp \
+./muse/master/masteredit.cpp \
+./muse/master/master.cpp \
+./muse/master/moc_master.cpp \
+./muse/master/moc_tscale.cpp \
+./muse/master/moc_masteredit.cpp \
+./muse/midifile.cpp \
+./muse/undo.cpp \
+./muse/arranger/moc_pcanvas.cpp \
+./muse/arranger/tlist.cpp \
+./muse/arranger/pcanvas.cpp \
+./muse/arranger/moc_alayout.cpp \
+./muse/arranger/trackinfo.cpp \
+./muse/arranger/alayout.cpp \
+./muse/arranger/arranger.cpp \
+./muse/arranger/moc_tlist.cpp \
+./muse/arranger/trackautomationview.cpp \
+./muse/arranger/moc_arranger.cpp \
+./muse/moc_cobject.cpp \
+./muse/songfile.cpp \
+./muse/xml.cpp \
+./muse/midiport.cpp \
+./muse/tempo.cpp \
+./muse/exportmidi.cpp \
+./muse/thread.cpp \
+./muse/moc_confmport.cpp \
+./muse/waveedit/moc_waveedit.cpp \
+./muse/waveedit/waveview.cpp \
+./muse/waveedit/moc_editgain.cpp \
+./muse/waveedit/waveedit.cpp \
+./muse/waveedit/moc_waveview.cpp \
+./muse/waveedit/editgain.cpp \
+./muse/synth.cpp \
+./muse/patchbay/patchbay.cpp \
+./muse/pos.cpp \
+./muse/midievent.cpp \
+./muse/value.cpp \
+./muse/event.cpp \
+./muse/midictrl.cpp \
+./muse/audioprefetch.cpp \
+./muse/ctrl/ctrledit.cpp \
+./muse/ctrl/moc_ctrledit.cpp \
+./muse/ctrl/ctrlpanel.cpp \
+./muse/ctrl/moc_ctrlcanvas.cpp \
+./muse/ctrl/moc_ctrlpanel.cpp \
+./muse/ctrl/ctrlcanvas.cpp \
+./muse/moc_value.cpp \
+./muse/stringparam.cpp \
+./muse/icons.cpp \
+./muse/conf.cpp \
+./muse/miditransform.cpp \
+./muse/osc.cpp \
+./muse/midi.cpp \
+./muse/helper.cpp \
+./muse/mpevent.cpp \
+./muse/appearance.cpp \
+./muse/song.cpp \
+./muse/moc_app.cpp \
+./muse/eventlist.cpp \
+./muse/memory.cpp \
+./muse/moc_miditransform.cpp \
+./muse/wave.cpp \
+./muse/cliplist/cliplist.cpp \
+./muse/cliplist/moc_cliplist.cpp \
+./muse/mididev.cpp \
+./muse/midieditor.cpp \
+./muse/wavetrack.cpp \
+./muse/confmport.cpp \
+./muse/transpose.cpp \
+./muse/plugin.cpp \
+./muse/importmidi.cpp \
+./muse/widgets/slider.non-libtool.cpp \
+./muse/widgets/moc_bigtime.cpp \
+./muse/widgets/sigedit.cpp \
+./muse/widgets/moc_mixdowndialog.cpp \
+./muse/widgets/sigscale.cpp \
+./muse/widgets/mmath.non-libtool.cpp \
+./muse/widgets/moc_popupmenu.cpp \
+./muse/widgets/moc_didyouknow.cpp \
+./muse/widgets/moc_swidget.cpp \
+./muse/widgets/moc_sliderbase.non-libtool.cpp \
+./muse/widgets/doublelabel.non-libtool.cpp \
+./muse/widgets/moc_tb1.cpp \
+./muse/widgets/moc_slider.non-libtool.cpp \
+./muse/widgets/moc_songinfo.cpp \
+./muse/widgets/moc_tempolabel.cpp \
+./muse/widgets/sigedit.non-libtool.cpp \
+./muse/widgets/moc_sigedit.non-libtool.cpp \
+./muse/widgets/moc_dentry.cpp \
+./muse/widgets/aboutbox_impl.cpp \
+./muse/widgets/scldiv.non-libtool.cpp \
+./muse/widgets/moc_splitter.cpp \
+./muse/widgets/musewidgetsplug.cpp \
+./muse/widgets/comboQuant.cpp \
+./muse/widgets/moc_mlabel.cpp \
+./muse/widgets/shortcutconfig.cpp \
+./muse/widgets/scldraw.non-libtool.cpp \
+./muse/widgets/moc_spinboxFP.cpp \
+./muse/widgets/poslabel.cpp \
+./muse/widgets/vscale.cpp \
+./muse/widgets/tb1.cpp \
+./muse/widgets/hitscale.cpp \
+./muse/widgets/sliderbase.cpp \
+./muse/widgets/moc_shortcutcapturedialog.cpp \
+./muse/widgets/mixdowndialog.cpp \
+./muse/widgets/moc_doublelabel.cpp \
+./muse/widgets/moc_combobox.cpp \
+./muse/widgets/moc_spinbox.cpp \
+./muse/widgets/moc_mtscale.cpp \
+./muse/widgets/mtscale.cpp \
+./muse/widgets/ttoolbutton.cpp \
+./muse/widgets/spinbox.cpp \
+./muse/widgets/drange.cpp \
+./muse/widgets/posedit.non-libtool.cpp \
+./muse/widgets/pitchedit.non-libtool.cpp \
+./muse/widgets/citem.cpp \
+./muse/widgets/moc_canvas.cpp \
+./muse/widgets/moc_slider.cpp \
+./muse/widgets/knob.cpp \
+./muse/widgets/utils.cpp \
+./muse/widgets/metronome.cpp \
+./muse/widgets/gatetime.cpp \
+./muse/widgets/checkbox.cpp \
+./muse/widgets/moc_lcombo.cpp \
+./muse/widgets/moc_filedialog.cpp \
+./muse/widgets/moc_hitscale.cpp \
+./muse/widgets/moc_checkbox.non-libtool.cpp \
+./muse/widgets/velocity.cpp \
+./muse/widgets/ttoolbar.cpp \
+./muse/widgets/moc_shortcutconfig.cpp \
+./muse/widgets/wtscale.cpp \
+./muse/widgets/moc_intlabel.cpp \
+./muse/widgets/moc_fontsel.cpp \
+./muse/widgets/moc_header.cpp \
+./muse/widgets/moc_comboQuant.cpp \
+./muse/widgets/doublelabel.cpp \
+./muse/widgets/view.cpp \
+./muse/widgets/moc_action.cpp \
+./muse/widgets/poslabel.non-libtool.cpp \
+./muse/widgets/pitchedit.cpp \
+./muse/widgets/moc_checkbox.cpp \
+./muse/widgets/moc_posedit.non-libtool.cpp \
+./muse/widgets/moc_midisyncimpl.cpp \
+./muse/widgets/scldiv.cpp \
+./muse/widgets/moc_velocity.cpp \
+./muse/widgets/slider.cpp \
+./muse/widgets/pitchlabel.cpp \
+./muse/widgets/header.cpp \
+./muse/widgets/moc_ttoolbutton.cpp \
+./muse/widgets/sliderbase.non-libtool.cpp \
+./muse/widgets/moc_sigedit.cpp \
+./muse/widgets/nentry.cpp \
+./muse/widgets/fontsel.cpp \
+./muse/widgets/siglabel.cpp \
+./muse/widgets/moc_doublelabel.non-libtool.cpp \
+./muse/widgets/scldraw.cpp \
+./muse/widgets/moc_pitchedit.non-libtool.cpp \
+./muse/widgets/moc_comment.cpp \
+./muse/widgets/canvas.cpp \
+./muse/widgets/dimap.cpp \
+./muse/widgets/moc_noteinfo.cpp \
+./muse/widgets/moc_scrollscale.cpp \
+./muse/widgets/moc_tempolabel.non-libtool.cpp \
+./muse/widgets/dentry.cpp \
+./muse/widgets/swidget.cpp \
+./muse/widgets/checkbox.non-libtool.cpp \
+./muse/widgets/moc_siglabel.cpp \
+./muse/widgets/combobox.non-libtool.cpp \
+./muse/widgets/posedit.cpp \
+./muse/widgets/combobox.cpp \
+./muse/widgets/noteinfo.cpp \
+./muse/widgets/ctrlcombo.cpp \
+./muse/widgets/moc_pitchedit.cpp \
+./muse/widgets/moc_ctrlcombo.cpp \
+./muse/widgets/moc_posedit.cpp \
+./muse/widgets/moc_poslabel.non-libtool.cpp \
+./muse/widgets/moc_tools.cpp \
+./muse/widgets/moc_gatetime.cpp \
+./muse/widgets/moc_dentry.non-libtool.cpp \
+./muse/widgets/bigtime.cpp \
+./muse/widgets/comment.cpp \
+./muse/widgets/moc_genset.cpp \
+./muse/widgets/moc_knob.cpp \
+./muse/widgets/shortcutcapturedialog.cpp \
+./muse/widgets/sclif.cpp \
+./muse/widgets/sclif.non-libtool.cpp \
+./muse/widgets/midisyncimpl.cpp \
+./muse/widgets/moc_sigscale.cpp \
+./muse/widgets/moc_aboutbox.cpp \
+./muse/widgets/moc_pitchlabel.cpp \
+./muse/widgets/tools.cpp \
+./muse/widgets/drange.non-libtool.cpp \
+./muse/widgets/dimap.non-libtool.cpp \
+./muse/widgets/moc_view.cpp \
+./muse/widgets/lcombo.cpp \
+./muse/widgets/scrollscale.cpp \
+./muse/widgets/mlabel.cpp \
+./muse/widgets/moc_vscale.cpp \
+./muse/widgets/genset.cpp \
+./muse/widgets/moc_pitchlabel.non-libtool.cpp \
+./muse/widgets/filedialog.cpp \
+./muse/widgets/tempolabel.non-libtool.cpp \
+./muse/widgets/splitter.cpp \
+./muse/widgets/moc_aboutbox_impl.cpp \
+./muse/widgets/intlabel.cpp \
+./muse/widgets/tempolabel.cpp \
+./muse/widgets/moc_poslabel.cpp \
+./muse/widgets/pitchlabel.non-libtool.cpp \
+./muse/widgets/spinboxFP.cpp \
+./muse/widgets/popupmenu.cpp \
+./muse/widgets/moc_metronome.cpp \
+./muse/widgets/mmath.cpp \
+./muse/widgets/dentry.non-libtool.cpp \
+./muse/widgets/moc_nentry.cpp \
+./muse/widgets/moc_combobox.non-libtool.cpp \
+./muse/widgets/moc_sliderbase.cpp \
+./muse/widgets/moc_ttoolbar.cpp \
+./muse/help.cpp \
+./muse/audioconvert.cpp \
+./muse/globals.cpp \
+./muse/route.cpp \
+./muse/transport.cpp \
+./muse/moc_plugin.cpp \
+./muse/part.cpp \
+./muse/audio.cpp \
+./muse/mixer/panknob.cpp \
+./muse/mixer/routedialog.cpp \
+./muse/mixer/auxknob.cpp \
+./muse/mixer/moc_amixer.cpp \
+./muse/mixer/moc_routedialog.cpp \
+./muse/mixer/moc_auxknob.cpp \
+./muse/mixer/meter.cpp \
+./muse/mixer/moc_meter.cpp \
+./muse/mixer/mstrip.cpp \
+./muse/mixer/moc_rack.cpp \
+./muse/mixer/moc_panknob.cpp \
+./muse/mixer/moc_strip.cpp \
+./muse/mixer/strip.cpp \
+./muse/mixer/astrip.cpp \
+./muse/mixer/amixer.cpp \
+./muse/mixer/moc_mstrip.cpp \
+./muse/mixer/moc_astrip.cpp \
+./muse/mixer/rack.cpp \
+./muse/moc_transport.cpp \
+./muse/marker/marker.cpp \
+./muse/marker/markerview.cpp \
+./muse/marker/moc_markerview.cpp \
+./muse/moc_song.cpp \
+./muse/audiotrack.cpp \
+./muse/track.cpp \
+./muse/liste/moc_editevent.cpp \
+./muse/liste/listedit.cpp \
+./muse/liste/moc_listedit.cpp \
+./muse/liste/editevent.cpp \
+./muse/vst.cpp \
+./muse/midiedit/drumedit.cpp \
+./muse/midiedit/moc_pianoroll.cpp \
+./muse/midiedit/moc_drumedit.cpp \
+./muse/midiedit/dlist.cpp \
+./muse/midiedit/piano.cpp \
+./muse/midiedit/moc_piano.cpp \
+./muse/midiedit/dcanvas.cpp \
+./muse/midiedit/moc_quantconfig.cpp \
+./muse/midiedit/moc_dcanvas.cpp \
+./muse/midiedit/pianoroll.cpp \
+./muse/midiedit/moc_prcanvas.cpp \
+./muse/midiedit/drummap.cpp \
+./muse/midiedit/moc_dlist.cpp \
+./muse/midiedit/ecanvas.cpp \
+./muse/midiedit/prcanvas.cpp \
+./muse/midiedit/quantconfig.cpp \
+./muse/midiedit/moc_ecanvas.cpp \
+./muse/app.cpp \
+./muse/cobject.cpp \
+./muse/midiseq.cpp \
+./muse/mplugins/mitplugin.cpp \
+./muse/mplugins/moc_mittranspose.cpp \
+./muse/mplugins/random.cpp \
+./muse/mplugins/rhythm.cpp \
+./muse/mplugins/moc_rhythm.cpp \
+./muse/mplugins/moc_mrconfig.cpp \
+./muse/mplugins/moc_midifilterimpl.cpp \
+./muse/mplugins/moc_midiitransform.cpp \
+./muse/mplugins/midiitransform.cpp \
+./muse/mplugins/midifilterimpl.cpp \
+./muse/mplugins/mrconfig.cpp \
+./muse/mplugins/mittranspose.cpp \
+./muse/mtc.cpp \
+./muse/node.cpp \
+./muse/ctrl.cpp \
+./muse/shortcuts.cpp \
+./muse/sync.cpp \
+./plugins/freeverb/freeverb.cpp \
+./plugins/freeverb/revmodel.cpp \
+./plugins/doublechorus/simplechorusmodel.cpp \
+./plugins/doublechorus/doublechorusmodel.cpp \
+./plugins/doublechorus/doublechorus.cpp \
+./plugins/pandelay/ladspapandelay.cpp \
+./plugins/pandelay/pandelaymodel.cpp \
+./plugins/pandelay/pandelay.cpp \
+./grepmidi/grepmidi.cpp \
+./synti/deicsonze/moc_deicsonzegui.cpp \
+./synti/deicsonze/deicsonze.cpp \
+./synti/deicsonze/deicsonzegui.cpp \
+./synti/deicsonze2/deicsonzepreset.cpp \
+./synti/deicsonze2/deicsonze.cpp \
+./synti/deicsonze2/deicsonzegui.cpp \
+./synti/deicsonze2/deicsonzeplugin.cpp \
+./synti/deicsonze2/deicsonzefilter.cpp \
+./synti/fluid/fluidgui.cpp \
+./synti/fluid/fluid.cpp \
+./synti/fluid/moc_fluidgui.cpp \
+./synti/s1/s1.cpp \
+./synti/vam/vamgui.cpp \
+./synti/vam/moc_vamgui.cpp \
+./synti/vam/vam.cpp \
+./synti/organ/organgui.cpp \
+./synti/organ/moc_organgui.cpp \
+./synti/organ/organ.cpp \
+./synti/libsynti/poly.cpp \
+./synti/libsynti/mono.cpp \
+./synti/libsynti/gui.cpp \
+./synti/libsynti/mpevent.cpp \
+./synti/libsynti/mess.cpp \
+./synti/simpledrums/simpledrums.cpp \
+./synti/simpledrums/moc_ssplugingui.cpp \
+./synti/simpledrums/ssplugin.cpp \
+./synti/simpledrums/ssplugingui.cpp \
+./synti/simpledrums/moc_simpledrumsgui.cpp \
+./synti/simpledrums/simpledrumsgui.cpp \
+./synti/fluidsynth/fluidsynthgui.cpp \
+./synti/fluidsynth/moc_fluidsynthgui.cpp \
+./synti/fluidsynth/fluidsynti.cpp
+
+
+#The following line was changed from FORMS to FORMS3 by qt3to4
+FORMS3 = \
+./muse/instruments/ccontrolbase.ui \
+./muse/instruments/editinstrumentbase.ui \
+./muse/waveedit/editgainbase.ui \
+./muse/patchbay/patchbaybase.ui \
+./muse/widgets/transposebase.ui \
+./muse/widgets/configmidifilebase.ui \
+./muse/widgets/wtrackinfobase.ui \
+./muse/widgets/itransformbase.ui \
+./muse/widgets/mixdowndialogbase.ui \
+./muse/widgets/gatetimebase.ui \
+./muse/widgets/shortcutcapturedialogbase.ui \
+./muse/widgets/didyouknow.ui \
+./muse/widgets/appearancebase.ui \
+./muse/widgets/shortcutconfigbase.ui \
+./muse/widgets/editmetadialogbase.ui \
+./muse/widgets/fdialogbuttons.ui \
+./muse/widgets/songinfo.ui \
+./muse/widgets/mtrackinfobase.ui \
+./muse/widgets/synthconfigbase.ui \
+./muse/widgets/velocitybase.ui \
+./muse/widgets/transformbase.ui \
+./muse/widgets/metronomebase.ui \
+./muse/widgets/aboutbox.ui \
+./muse/widgets/gensetbase.ui \
+./muse/widgets/editsysexdialogbase.ui \
+./muse/widgets/editctrl7dialogbase.ui \
+./muse/widgets/editnotedialogbase.ui \
+./muse/widgets/commentbase.ui \
+./muse/widgets/mittransposebase.ui \
+./muse/widgets/midisync.ui \
+./muse/widgets/cliplisteditorbase.ui \
+./muse/mixer/midiportroutebase.ui \
+./muse/mixer/routedialogbase.ui \
+./muse/liste/editctrlbase.ui \
+./muse/mplugins/mrconfigbase.ui \
+./muse/mplugins/rhythmbase.ui \
+./muse/mplugins/midifilter.ui \
+./share/plugins/1050.ui \
+./share/plugins/2142.ui \
+./synti/deicsonze/newpreset.ui \
+./synti/deicsonze/deicsonzeguibase.ui \
+./synti/deicsonze2/deicsonzegui.ui \
+./synti/fluid/fluidguibase.ui \
+./synti/vam/vamguibase.ui \
+./synti/organ/organguibase.ui \
+./synti/organ/fdialogbuttons.ui \
+./synti/simpledrums/simpledrumsguibase.ui \
+./synti/simpledrums/sspluginchooserbase.ui \
+./synti/fluidsynth/fluidsynthguibase.ui
+#The following line was inserted by qt3to4
+QT += xml qt3support
+#The following line was inserted by qt3to4
+CONFIG += uic3
+
diff --git a/muse2/muse/Makefile.am b/muse2/muse/Makefile.am
new file mode 100644
index 00000000..253add16
--- /dev/null
+++ b/muse2/muse/Makefile.am
@@ -0,0 +1,168 @@
+include $(top_srcdir)/common.am
+
+ACLOCAL_AMFLAGS = -I m4
+
+AM_CPPFLAGS += -Imidiedit -Iarranger -Iliste \
+ -Iwidgets -Imixer -Idriver -Iwaveedit -Implugins -Iinstruments -Iremote\
+ -DINSTPREFIX=\"$(prefix)\" -DINSTLIBDIR=\"$(libdir)\"
+
+SUBDIRS = widgets master midiedit mixer arranger \
+ liste driver waveedit ctrl cliplist \
+ instruments marker mplugins
+
+if PCH
+AM_CXXFLAGS += $(LASH_CFLAGS) -include $(top_srcdir)/all.h
+else
+AM_CXXFLAGS += $(LASH_CFLAGS)
+endif
+
+if ENABLE_PYTHON
+AM_CPPFLAGS += -DENABLE_PYTHON
+SUBDIRS += remote
+PYLIBS=$(PYTHON_LIB) remote/libremote.a
+endif
+AM_CXXFLAGS +=-DSVNVERSION=\"$(shell svnversion)\"
+
+
+EXTRA_PROGRAMS = givertcap
+bin_PROGRAMS = muse @GIVERTCAP@
+
+givertcap_LDADD = -lcap
+
+dist_muse_SOURCES = \
+ ticksynth.h ticksynth.cpp \
+ vst.h vst.cpp \
+ dssihost.h dssihost.cpp \
+ osc.cpp osc.h \
+ stringparam.cpp stringparam.h \
+ synth.h synth.cpp \
+ plugin.cpp plugin.h \
+ mtc.cpp mtc.h \
+ thread.cpp thread.h \
+ audio.cpp audio.h \
+ audioprefetch.cpp audioprefetch.h \
+ audioconvert.cpp audioconvert.h \
+ globals.cpp globals.h \
+ sync.cpp sync.h \
+ midiport.cpp midiport.h \
+ part.cpp part.h \
+ tempo.cpp tempo.h \
+ pos.cpp pos.h \
+ sig.cpp sig.h \
+ key.cpp key.h \
+ undo.cpp undo.h \
+ songfile.cpp \
+ midi.cpp midi.h \
+ importmidi.cpp \
+ exportmidi.cpp \
+ midifile.h midifile.cpp \
+ xml.cpp xml.h \
+ icons.cpp icons.h \
+ event.cpp event.h eventbase.h evdata.h \
+ eventlist.cpp \
+ midievent.h midievent.cpp \
+ waveevent.h waveevent.cpp \
+ mpevent.cpp mpevent.h \
+ track.cpp track.h \
+ audiotrack.cpp wavetrack.cpp \
+ wave.cpp wave.h \
+ seqmsg.cpp \
+ device.h \
+ globaldefs.h \
+ ladspa.h \
+ app.cpp app.h \
+ song.cpp song.h \
+ transport.cpp transport.h \
+ conf.cpp conf.h \
+ confmport.cpp confmport.h \
+ help.cpp \
+ midieditor.cpp midieditor.h \
+ cobject.cpp cobject.h \
+ value.cpp value.h \
+ midictrl.cpp midictrl.h \
+ transpose.cpp transpose.h \
+ miditransform.cpp miditransform.h \
+ appearance.cpp appearance.h \
+ node.cpp node.h \
+ midiseq.cpp midiseq.h \
+ helper.cpp helper.h \
+ debug.h memory.h memory.cpp \
+ mididev.h mididev.cpp \
+ route.h route.cpp\
+ shortcuts.h shortcuts.cpp \
+ ctrl.cpp ctrl.h \
+ gconfig.h gconfig.cpp \
+ fastlog.h \
+ default_click.h
+
+nodist_muse_SOURCES = \
+ moc_plugin.cpp \
+ moc_app.cpp \
+ moc_song.cpp \
+ moc_transport.cpp \
+ moc_conf.cpp \
+ moc_confmport.cpp \
+ moc_midieditor.cpp \
+ moc_cobject.cpp \
+ moc_value.cpp \
+ moc_transpose.cpp \
+ moc_miditransform.cpp \
+ moc_appearance.cpp
+
+muse_LDADD = $(X_LIBS) $(QT_LIBS) -lasound $(SNDFILE_LIBS) $(SAMPLERATE_LIBS) $(JACK_LIBS) $(PYLIBS) \
+ $(LASH_LIBS) $(FST_LIBS) $(UUID_LIBS) $(LO_LIBS) midiedit/libmidiedit.a ctrl/libctrl.a \
+ liste/libliste.a mixer/libmixer.a driver/libdriver.a marker/libmarker.a \
+ master/libmaster.a waveedit/libwaveedit.a mplugins/libmplugins.a arranger/libarranger.a \
+ cliplist/libcliplist.a instruments/libinstruments.a widgets/libwidgets.a \
+ ../synti/libsynti/libsynti.la ../al/libal.a
+muse_LDFLAGS = -fno_exceptions
+
+
+
+CLEANFILES = stamp-chown
+
+DISTCLEANFILES = .muse.bin.bak
+
+MAINTAINERCLEANFILES = depcomp config.guess \
+ install-sh config.sub missing mkinstalldirs INSTALL COPYING
+
+EXTRA_DIST =
+
+all-local: stamp-chown .muse.bin.bak
+
+stamp-chown: muse @GIVERTCAP@
+ if test "$(SUIDBUILD)" = "yes"; then \
+ su -c "chown root muse; chmod +s muse"; \
+ fi
+if RTCAP
+ su -c "chown root givertcap; chmod +s givertcap";
+endif
+ touch stamp-chown
+
+install-exec-local:
+ if test "$(SUIDINSTALL)" = "yes"; then \
+ su -c "chown root $(bindir)/muse; chmod +s $(bindir)/muse"; \
+ fi
+if RTCAP
+ su -c "chown root $(bindir)/givertcap; chmod +s $(bindir)/givertcap";
+endif
+
+update_translations:
+ genpro > muse.pro
+ lupdate muse.pro
+
+release_translations:
+ lrelease muse.pro
+
+.muse.bin.bak:
+ if test -e muse; then cp muse .muse.bin.bak; fi
+
+clean-local:
+ if test -e .muse.bin.bak; then cp .muse.bin.bak muse; fi
+
+
+dox: stamp-doxygen
+
+stamp-doxygen: $(shell find -name "*.cpp" -or -name "*.h")
+ $(DOXYGEN) Doxyfile
+ touch stamp-doxygen
diff --git a/muse2/muse/Makefile.in b/muse2/muse/Makefile.in
new file mode 100644
index 00000000..927c49c5
--- /dev/null
+++ b/muse2/muse/Makefile.in
@@ -0,0 +1,1067 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
+ $(top_srcdir)/common.am
+@PCH_TRUE@am__append_1 = $(LASH_CFLAGS) -include $(top_srcdir)/all.h
+@PCH_FALSE@am__append_2 = $(LASH_CFLAGS)
+@ENABLE_PYTHON_TRUE@am__append_3 = -DENABLE_PYTHON
+@ENABLE_PYTHON_TRUE@am__append_4 = remote
+EXTRA_PROGRAMS = givertcap$(EXEEXT)
+bin_PROGRAMS = muse$(EXEEXT) @GIVERTCAP@
+subdir = muse
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal-include.m4 \
+ $(top_srcdir)/m4/alsa.m4 $(top_srcdir)/m4/docbook.m4 \
+ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
+ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
+ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+am__installdirs = "$(DESTDIR)$(bindir)"
+PROGRAMS = $(bin_PROGRAMS)
+givertcap_SOURCES = givertcap.c
+givertcap_OBJECTS = givertcap.$(OBJEXT)
+givertcap_DEPENDENCIES =
+dist_muse_OBJECTS = ticksynth.$(OBJEXT) vst.$(OBJEXT) \
+ dssihost.$(OBJEXT) osc.$(OBJEXT) stringparam.$(OBJEXT) \
+ synth.$(OBJEXT) plugin.$(OBJEXT) mtc.$(OBJEXT) \
+ thread.$(OBJEXT) audio.$(OBJEXT) audioprefetch.$(OBJEXT) \
+ audioconvert.$(OBJEXT) globals.$(OBJEXT) sync.$(OBJEXT) \
+ midiport.$(OBJEXT) part.$(OBJEXT) tempo.$(OBJEXT) \
+ pos.$(OBJEXT) sig.$(OBJEXT) key.$(OBJEXT) undo.$(OBJEXT) \
+ songfile.$(OBJEXT) midi.$(OBJEXT) importmidi.$(OBJEXT) \
+ exportmidi.$(OBJEXT) midifile.$(OBJEXT) xml.$(OBJEXT) \
+ icons.$(OBJEXT) event.$(OBJEXT) eventlist.$(OBJEXT) \
+ midievent.$(OBJEXT) waveevent.$(OBJEXT) mpevent.$(OBJEXT) \
+ track.$(OBJEXT) audiotrack.$(OBJEXT) wavetrack.$(OBJEXT) \
+ wave.$(OBJEXT) seqmsg.$(OBJEXT) app.$(OBJEXT) song.$(OBJEXT) \
+ transport.$(OBJEXT) conf.$(OBJEXT) confmport.$(OBJEXT) \
+ help.$(OBJEXT) midieditor.$(OBJEXT) cobject.$(OBJEXT) \
+ value.$(OBJEXT) midictrl.$(OBJEXT) transpose.$(OBJEXT) \
+ miditransform.$(OBJEXT) appearance.$(OBJEXT) node.$(OBJEXT) \
+ midiseq.$(OBJEXT) helper.$(OBJEXT) memory.$(OBJEXT) \
+ mididev.$(OBJEXT) route.$(OBJEXT) shortcuts.$(OBJEXT) \
+ ctrl.$(OBJEXT) gconfig.$(OBJEXT)
+nodist_muse_OBJECTS = moc_plugin.$(OBJEXT) moc_app.$(OBJEXT) \
+ moc_song.$(OBJEXT) moc_transport.$(OBJEXT) moc_conf.$(OBJEXT) \
+ moc_confmport.$(OBJEXT) moc_midieditor.$(OBJEXT) \
+ moc_cobject.$(OBJEXT) moc_value.$(OBJEXT) \
+ moc_transpose.$(OBJEXT) moc_miditransform.$(OBJEXT) \
+ moc_appearance.$(OBJEXT)
+muse_OBJECTS = $(dist_muse_OBJECTS) $(nodist_muse_OBJECTS)
+am__DEPENDENCIES_1 =
+@ENABLE_PYTHON_TRUE@am__DEPENDENCIES_2 = $(am__DEPENDENCIES_1) \
+@ENABLE_PYTHON_TRUE@ remote/libremote.a
+muse_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
+ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
+ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2) \
+ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
+ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
+ midiedit/libmidiedit.a ctrl/libctrl.a liste/libliste.a \
+ mixer/libmixer.a driver/libdriver.a marker/libmarker.a \
+ master/libmaster.a waveedit/libwaveedit.a \
+ mplugins/libmplugins.a arranger/libarranger.a \
+ cliplist/libcliplist.a instruments/libinstruments.a \
+ widgets/libwidgets.a ../synti/libsynti/libsynti.la \
+ ../al/libal.a
+muse_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \
+ $(muse_LDFLAGS) $(LDFLAGS) -o $@
+DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
+depcomp = $(SHELL) $(top_srcdir)/depcomp
+am__depfiles_maybe = depfiles
+am__mv = mv -f
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
+ $(LDFLAGS) -o $@
+CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
+LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
+CXXLD = $(CXX)
+CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \
+ $(LDFLAGS) -o $@
+SOURCES = givertcap.c $(dist_muse_SOURCES) $(nodist_muse_SOURCES)
+DIST_SOURCES = givertcap.c $(dist_muse_SOURCES)
+RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
+ html-recursive info-recursive install-data-recursive \
+ install-dvi-recursive install-exec-recursive \
+ install-html-recursive install-info-recursive \
+ install-pdf-recursive install-ps-recursive install-recursive \
+ installcheck-recursive installdirs-recursive pdf-recursive \
+ ps-recursive uninstall-recursive
+RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
+ distclean-recursive maintainer-clean-recursive
+AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
+ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
+ distdir
+ETAGS = etags
+CTAGS = ctags
+DIST_SUBDIRS = widgets master midiedit mixer arranger liste driver \
+ waveedit ctrl cliplist instruments marker mplugins remote
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+am__relativize = \
+ dir0=`pwd`; \
+ sed_first='s,^\([^/]*\)/.*$$,\1,'; \
+ sed_rest='s,^[^/]*/*,,'; \
+ sed_last='s,^.*/\([^/]*\)$$,\1,'; \
+ sed_butlast='s,/*[^/]*$$,,'; \
+ while test -n "$$dir1"; do \
+ first=`echo "$$dir1" | sed -e "$$sed_first"`; \
+ if test "$$first" != "."; then \
+ if test "$$first" = ".."; then \
+ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
+ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
+ else \
+ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
+ if test "$$first2" = "$$first"; then \
+ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
+ else \
+ dir2="../$$dir2"; \
+ fi; \
+ dir0="$$dir0"/"$$first"; \
+ fi; \
+ fi; \
+ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
+ done; \
+ reldir="$$dir2"
+ACLOCAL = @ACLOCAL@
+ALSA_CFLAGS = @ALSA_CFLAGS@
+ALSA_LIBS = @ALSA_LIBS@
+AMTAR = @AMTAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DOCBOOKSTYLE = @DOCBOOKSTYLE@
+DOCBOOKTARGETS = @DOCBOOKTARGETS@
+DOT = @DOT@
+DOTPATH = @DOTPATH@
+DOXYGEN = @DOXYGEN@
+DOXYGEN_TREEVIEW = @DOXYGEN_TREEVIEW@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+FLUIDSYNTHDIRS = @FLUIDSYNTHDIRS@
+FST_CFLAGS = @FST_CFLAGS@
+FST_LIBS = @FST_LIBS@
+Fluidsynth_CFLAGS = @Fluidsynth_CFLAGS@
+Fluidsynth_LIBS = @Fluidsynth_LIBS@
+GIVERTCAP = @GIVERTCAP@
+GREP = @GREP@
+HAVEDOT = @HAVEDOT@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JACK_CFLAGS = @JACK_CFLAGS@
+JACK_LIBS = @JACK_LIBS@
+JADE = @JADE@
+LASH_CFLAGS = @LASH_CFLAGS@
+LASH_LIBS = @LASH_LIBS@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LO_CFLAGS = @LO_CFLAGS@
+LO_LIBS = @LO_LIBS@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+MUSECXXFLAGS = @MUSECXXFLAGS@
+NM = @NM@
+NMEDIT = @NMEDIT@
+NSGMLS = @NSGMLS@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PCH = @PCH@
+PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+PYTHON = @PYTHON@
+PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
+PYTHON_INCLUDES = @PYTHON_INCLUDES@
+PYTHON_LIB = @PYTHON_LIB@
+PYTHON_PLATFORM = @PYTHON_PLATFORM@
+PYTHON_PREFIX = @PYTHON_PREFIX@
+PYTHON_VERSION = @PYTHON_VERSION@
+QTDIR_BIN = @QTDIR_BIN@
+QTDIR_INC = @QTDIR_INC@
+QT_LIBS = @QT_LIBS@
+RANLIB = @RANLIB@
+SAMPLERATE_CFLAGS = @SAMPLERATE_CFLAGS@
+SAMPLERATE_LIBS = @SAMPLERATE_LIBS@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SNDFILE_CFLAGS = @SNDFILE_CFLAGS@
+SNDFILE_LIBS = @SNDFILE_LIBS@
+STRIP = @STRIP@
+SUIDBUILD = @SUIDBUILD@
+SUIDINSTALL = @SUIDINSTALL@
+USE_SSE = @USE_SSE@
+UUID_CFLAGS = @UUID_CFLAGS@
+UUID_LIBS = @UUID_LIBS@
+VERSION = @VERSION@
+XMKMF = @XMKMF@
+X_CFLAGS = @X_CFLAGS@
+X_EXTRA_LIBS = @X_EXTRA_LIBS@
+X_LIBS = @X_LIBS@
+X_PRE_LIBS = @X_PRE_LIBS@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+have_docbook = @have_docbook@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+lt_ECHO = @lt_ECHO@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+pkgpyexecdir = @pkgpyexecdir@
+pkgpythondir = @pkgpythondir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+pyexecdir = @pyexecdir@
+pythondir = @pythondir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+synth_fluid = @synth_fluid@
+synth_fluidsynth = @synth_fluidsynth@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+AM_CXXFLAGS = $(MUSECXXFLAGS) -I.. -I$(top_srcdir)/synti \
+ -I$(top_srcdir)/muse/widgets -DQT_SHARED -DQT_THREAD_SUPPORT \
+ -DQT_PLUGIN $(QTDIR_INC) -DQT3_SUPPORT $(am__append_1) \
+ $(am__append_2) -DSVNVERSION=\"$(shell svnversion)\"
+AM_CPPFLAGS = -Imidiedit -Iarranger -Iliste -Iwidgets -Imixer -Idriver \
+ -Iwaveedit -Implugins -Iinstruments -Iremote \
+ -DINSTPREFIX=\"$(prefix)\" -DINSTLIBDIR=\"$(libdir)\" \
+ $(am__append_3)
+MOC = $(QTDIR_BIN)/moc
+#UIC = $(QTDIR_BIN)/uic3
+UIC = /usr/bin/uic3
+UIFILES = $(wildcard *.ui)
+MOCFILES = $(shell for h in $(filter %.h,$(SOURCES)); do \
+ if grep -q Q_OBJECT $$h; then \
+ echo $$h | sed "s/\(.*\)\.h/moc_\1.cpp/"; \
+ fi; \
+ done)
+
+BUILT_SOURCES = $(MOCFILES) $(UIFILES:%.ui=%.h)
+MOSTLYCLEANFILES = $(MOCFILES) $(UIFILES:%.ui=%.h)
+SUFFIXES = .ui .h.gch
+ACLOCAL_AMFLAGS = -I m4
+SUBDIRS = widgets master midiedit mixer arranger liste driver waveedit \
+ ctrl cliplist instruments marker mplugins $(am__append_4)
+@ENABLE_PYTHON_TRUE@PYLIBS = $(PYTHON_LIB) remote/libremote.a
+givertcap_LDADD = -lcap
+dist_muse_SOURCES = \
+ ticksynth.h ticksynth.cpp \
+ vst.h vst.cpp \
+ dssihost.h dssihost.cpp \
+ osc.cpp osc.h \
+ stringparam.cpp stringparam.h \
+ synth.h synth.cpp \
+ plugin.cpp plugin.h \
+ mtc.cpp mtc.h \
+ thread.cpp thread.h \
+ audio.cpp audio.h \
+ audioprefetch.cpp audioprefetch.h \
+ audioconvert.cpp audioconvert.h \
+ globals.cpp globals.h \
+ sync.cpp sync.h \
+ midiport.cpp midiport.h \
+ part.cpp part.h \
+ tempo.cpp tempo.h \
+ pos.cpp pos.h \
+ sig.cpp sig.h \
+ key.cpp key.h \
+ undo.cpp undo.h \
+ songfile.cpp \
+ midi.cpp midi.h \
+ importmidi.cpp \
+ exportmidi.cpp \
+ midifile.h midifile.cpp \
+ xml.cpp xml.h \
+ icons.cpp icons.h \
+ event.cpp event.h eventbase.h evdata.h \
+ eventlist.cpp \
+ midievent.h midievent.cpp \
+ waveevent.h waveevent.cpp \
+ mpevent.cpp mpevent.h \
+ track.cpp track.h \
+ audiotrack.cpp wavetrack.cpp \
+ wave.cpp wave.h \
+ seqmsg.cpp \
+ device.h \
+ globaldefs.h \
+ ladspa.h \
+ app.cpp app.h \
+ song.cpp song.h \
+ transport.cpp transport.h \
+ conf.cpp conf.h \
+ confmport.cpp confmport.h \
+ help.cpp \
+ midieditor.cpp midieditor.h \
+ cobject.cpp cobject.h \
+ value.cpp value.h \
+ midictrl.cpp midictrl.h \
+ transpose.cpp transpose.h \
+ miditransform.cpp miditransform.h \
+ appearance.cpp appearance.h \
+ node.cpp node.h \
+ midiseq.cpp midiseq.h \
+ helper.cpp helper.h \
+ debug.h memory.h memory.cpp \
+ mididev.h mididev.cpp \
+ route.h route.cpp\
+ shortcuts.h shortcuts.cpp \
+ ctrl.cpp ctrl.h \
+ gconfig.h gconfig.cpp \
+ fastlog.h \
+ default_click.h
+
+nodist_muse_SOURCES = \
+ moc_plugin.cpp \
+ moc_app.cpp \
+ moc_song.cpp \
+ moc_transport.cpp \
+ moc_conf.cpp \
+ moc_confmport.cpp \
+ moc_midieditor.cpp \
+ moc_cobject.cpp \
+ moc_value.cpp \
+ moc_transpose.cpp \
+ moc_miditransform.cpp \
+ moc_appearance.cpp
+
+muse_LDADD = $(X_LIBS) $(QT_LIBS) -lasound $(SNDFILE_LIBS) $(SAMPLERATE_LIBS) $(JACK_LIBS) $(PYLIBS) \
+ $(LASH_LIBS) $(FST_LIBS) $(UUID_LIBS) $(LO_LIBS) midiedit/libmidiedit.a ctrl/libctrl.a \
+ liste/libliste.a mixer/libmixer.a driver/libdriver.a marker/libmarker.a \
+ master/libmaster.a waveedit/libwaveedit.a mplugins/libmplugins.a arranger/libarranger.a \
+ cliplist/libcliplist.a instruments/libinstruments.a widgets/libwidgets.a \
+ ../synti/libsynti/libsynti.la ../al/libal.a
+
+muse_LDFLAGS = -fno_exceptions
+CLEANFILES = stamp-chown
+DISTCLEANFILES = .muse.bin.bak
+MAINTAINERCLEANFILES = depcomp config.guess \
+ install-sh config.sub missing mkinstalldirs INSTALL COPYING
+
+EXTRA_DIST =
+all: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) all-recursive
+
+.SUFFIXES:
+.SUFFIXES: .ui .h.gch .c .cpp .lo .o .obj
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/common.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu muse/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu muse/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+install-binPROGRAMS: $(bin_PROGRAMS)
+ @$(NORMAL_INSTALL)
+ test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)"
+ @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed 's/$(EXEEXT)$$//' | \
+ while read p p1; do if test -f $$p || test -f $$p1; \
+ then echo "$$p"; echo "$$p"; else :; fi; \
+ done | \
+ sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \
+ -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
+ sed 'N;N;N;s,\n, ,g' | \
+ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
+ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
+ if ($$2 == $$4) files[d] = files[d] " " $$1; \
+ else { print "f", $$3 "/" $$4, $$1; } } \
+ END { for (d in files) print "f", d, files[d] }' | \
+ while read type dir files; do \
+ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
+ test -z "$$files" || { \
+ echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \
+ $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \
+ } \
+ ; done
+
+uninstall-binPROGRAMS:
+ @$(NORMAL_UNINSTALL)
+ @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
+ files=`for p in $$list; do echo "$$p"; done | \
+ sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
+ -e 's/$$/$(EXEEXT)/' `; \
+ test -n "$$list" || exit 0; \
+ echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \
+ cd "$(DESTDIR)$(bindir)" && rm -f $$files
+
+clean-binPROGRAMS:
+ @list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \
+ echo " rm -f" $$list; \
+ rm -f $$list || exit $$?; \
+ test -n "$(EXEEXT)" || exit 0; \
+ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
+ echo " rm -f" $$list; \
+ rm -f $$list
+givertcap$(EXEEXT): $(givertcap_OBJECTS) $(givertcap_DEPENDENCIES)
+ @rm -f givertcap$(EXEEXT)
+ $(LINK) $(givertcap_OBJECTS) $(givertcap_LDADD) $(LIBS)
+muse$(EXEEXT): $(muse_OBJECTS) $(muse_DEPENDENCIES)
+ @rm -f muse$(EXEEXT)
+ $(muse_LINK) $(muse_OBJECTS) $(muse_LDADD) $(LIBS)
+
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT)
+
+distclean-compile:
+ -rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/app.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/appearance.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audio.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audioconvert.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audioprefetch.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audiotrack.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cobject.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/conf.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/confmport.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ctrl.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dssihost.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/event.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eventlist.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/exportmidi.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gconfig.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/givertcap.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/globals.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/help.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/helper.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/icons.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/importmidi.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/key.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/memory.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/midi.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/midictrl.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mididev.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/midieditor.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/midievent.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/midifile.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/midiport.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/midiseq.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/miditransform.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/moc_app.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/moc_appearance.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/moc_cobject.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/moc_conf.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/moc_confmport.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/moc_midieditor.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/moc_miditransform.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/moc_plugin.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/moc_song.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/moc_transport.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/moc_transpose.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/moc_value.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mpevent.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mtc.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/node.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/osc.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/part.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/plugin.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pos.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/route.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/seqmsg.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/shortcuts.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sig.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/song.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/songfile.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stringparam.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sync.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/synth.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tempo.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/thread.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ticksynth.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/track.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/transport.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/transpose.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/undo.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/value.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vst.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wave.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/waveevent.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wavetrack.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xml.Po@am__quote@
+
+.c.o:
+@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(COMPILE) -c $<
+
+.c.obj:
+@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
+
+.c.lo:
+@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $<
+
+.cpp.o:
+@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $<
+
+.cpp.obj:
+@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+
+.cpp.lo:
+@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $<
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+
+# This directory's subdirectories are mostly independent; you can cd
+# into them and run `make' without going through this Makefile.
+# To change the values of `make' variables: instead of editing Makefiles,
+# (1) if the variable is set in `config.status', edit `config.status'
+# (which will cause the Makefiles to be regenerated when you run `make');
+# (2) otherwise, pass the desired values on the `make' command line.
+$(RECURSIVE_TARGETS):
+ @fail= failcom='exit 1'; \
+ for f in x $$MAKEFLAGS; do \
+ case $$f in \
+ *=* | --[!k]*);; \
+ *k*) failcom='fail=yes';; \
+ esac; \
+ done; \
+ dot_seen=no; \
+ target=`echo $@ | sed s/-recursive//`; \
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ echo "Making $$target in $$subdir"; \
+ if test "$$subdir" = "."; then \
+ dot_seen=yes; \
+ local_target="$$target-am"; \
+ else \
+ local_target="$$target"; \
+ fi; \
+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ || eval $$failcom; \
+ done; \
+ if test "$$dot_seen" = "no"; then \
+ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
+ fi; test -z "$$fail"
+
+$(RECURSIVE_CLEAN_TARGETS):
+ @fail= failcom='exit 1'; \
+ for f in x $$MAKEFLAGS; do \
+ case $$f in \
+ *=* | --[!k]*);; \
+ *k*) failcom='fail=yes';; \
+ esac; \
+ done; \
+ dot_seen=no; \
+ case "$@" in \
+ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+ *) list='$(SUBDIRS)' ;; \
+ esac; \
+ rev=''; for subdir in $$list; do \
+ if test "$$subdir" = "."; then :; else \
+ rev="$$subdir $$rev"; \
+ fi; \
+ done; \
+ rev="$$rev ."; \
+ target=`echo $@ | sed s/-recursive//`; \
+ for subdir in $$rev; do \
+ echo "Making $$target in $$subdir"; \
+ if test "$$subdir" = "."; then \
+ local_target="$$target-am"; \
+ else \
+ local_target="$$target"; \
+ fi; \
+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ || eval $$failcom; \
+ done && test -z "$$fail"
+tags-recursive:
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+ done
+ctags-recursive:
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
+ done
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ mkid -fID $$unique
+tags: TAGS
+
+TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ set x; \
+ here=`pwd`; \
+ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
+ include_option=--etags-include; \
+ empty_fix=.; \
+ else \
+ include_option=--include; \
+ empty_fix=; \
+ fi; \
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ test ! -f $$subdir/TAGS || \
+ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
+ fi; \
+ done; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: CTAGS
+CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+ @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ test -d "$(distdir)/$$subdir" \
+ || $(MKDIR_P) "$(distdir)/$$subdir" \
+ || exit 1; \
+ fi; \
+ done
+ @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
+ $(am__relativize); \
+ new_distdir=$$reldir; \
+ dir1=$$subdir; dir2="$(top_distdir)"; \
+ $(am__relativize); \
+ new_top_distdir=$$reldir; \
+ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
+ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
+ ($(am__cd) $$subdir && \
+ $(MAKE) $(AM_MAKEFLAGS) \
+ top_distdir="$$new_top_distdir" \
+ distdir="$$new_distdir" \
+ am__remove_distdir=: \
+ am__skip_length_check=: \
+ am__skip_mode_fix=: \
+ distdir) \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) check-recursive
+all-am: Makefile $(PROGRAMS) all-local
+installdirs: installdirs-recursive
+installdirs-am:
+ for dir in "$(DESTDIR)$(bindir)"; do \
+ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ done
+install: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) install-recursive
+install-exec: install-exec-recursive
+install-data: install-data-recursive
+uninstall: uninstall-recursive
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-recursive
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+ -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES)
+
+clean-generic:
+ -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+ -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+ -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
+ -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
+clean: clean-recursive
+
+clean-am: clean-binPROGRAMS clean-generic clean-libtool clean-local \
+ mostlyclean-am
+
+distclean: distclean-recursive
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+ distclean-tags
+
+dvi: dvi-recursive
+
+dvi-am:
+
+html: html-recursive
+
+html-am:
+
+info: info-recursive
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-recursive
+
+install-dvi-am:
+
+install-exec-am: install-binPROGRAMS install-exec-local
+
+install-html: install-html-recursive
+
+install-html-am:
+
+install-info: install-info-recursive
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-recursive
+
+install-pdf-am:
+
+install-ps: install-ps-recursive
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-recursive
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-recursive
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+ mostlyclean-libtool
+
+pdf: pdf-recursive
+
+pdf-am:
+
+ps: ps-recursive
+
+ps-am:
+
+uninstall-am: uninstall-binPROGRAMS
+
+.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) all check \
+ ctags-recursive install install-am install-strip \
+ tags-recursive
+
+.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
+ all all-am all-local check check-am clean clean-binPROGRAMS \
+ clean-generic clean-libtool clean-local ctags ctags-recursive \
+ distclean distclean-compile distclean-generic \
+ distclean-libtool distclean-tags distdir dvi dvi-am html \
+ html-am info info-am install install-am install-binPROGRAMS \
+ install-data install-data-am install-dvi install-dvi-am \
+ install-exec install-exec-am install-exec-local install-html \
+ install-html-am install-info install-info-am install-man \
+ install-pdf install-pdf-am install-ps install-ps-am \
+ install-strip installcheck installcheck-am installdirs \
+ installdirs-am maintainer-clean maintainer-clean-generic \
+ mostlyclean mostlyclean-compile mostlyclean-generic \
+ mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \
+ uninstall uninstall-am uninstall-binPROGRAMS
+
+
+de:
+ @for base in $(MOCFILES); do echo -e "\t$${base}.cpp $${base}.h \\"; done
+
+nde:
+ @for base in $(MOCFILES); do echo -e "\tmoc_$${base}.cpp \\"; done
+
+.ui.o: %.h
+ $(UIC) -L $(top_srcdir)/muse/widgets -o $*.cpp -impl $*.h $*.ui
+ $(MOC) $*.h >> $*.cpp
+ $(CXXCOMPILE) -c $*.cpp -o $*.o
+ $(RM) $*.cpp moc_$*.cpp moc_$*.o
+
+.ui.lo: %.h
+ $(UIC) -L $(top_srcdir)/muse/widgets -o $*.cpp -impl $*.h $*.ui
+ $(MOC) $*.h >> $*.cpp
+ $(LTCXXCOMPILE) -c $*.cpp -o $*.lo
+ $(RM) $*.cpp moc_$*.cpp moc_$*.lo moc_$*.o
+
+moc_%.cpp: %.h
+ $(MOC) $< -o $@
+
+%.h: %.ui
+ $(UIC) -o $@ $<
+# $(UIC) -L $(top_srcdir)/muse/widgets -o $@ $<
+
+all-local: stamp-chown .muse.bin.bak
+
+stamp-chown: muse @GIVERTCAP@
+ if test "$(SUIDBUILD)" = "yes"; then \
+ su -c "chown root muse; chmod +s muse"; \
+ fi
+@RTCAP_TRUE@ su -c "chown root givertcap; chmod +s givertcap";
+ touch stamp-chown
+
+install-exec-local:
+ if test "$(SUIDINSTALL)" = "yes"; then \
+ su -c "chown root $(bindir)/muse; chmod +s $(bindir)/muse"; \
+ fi
+@RTCAP_TRUE@ su -c "chown root $(bindir)/givertcap; chmod +s $(bindir)/givertcap";
+
+update_translations:
+ genpro > muse.pro
+ lupdate muse.pro
+
+release_translations:
+ lrelease muse.pro
+
+.muse.bin.bak:
+ if test -e muse; then cp muse .muse.bin.bak; fi
+
+clean-local:
+ if test -e .muse.bin.bak; then cp .muse.bin.bak muse; fi
+
+dox: stamp-doxygen
+
+stamp-doxygen: $(shell find -name "*.cpp" -or -name "*.h")
+ $(DOXYGEN) Doxyfile
+ touch stamp-doxygen
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/muse2/muse/app.cpp b/muse2/muse/app.cpp
new file mode 100644
index 00000000..707c3734
--- /dev/null
+++ b/muse2/muse/app.cpp
@@ -0,0 +1,4767 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: app.cpp,v 1.113.2.68 2009/12/21 14:51:51 spamatica Exp $
+//
+// (C) Copyright 1999-2004 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include "config.h"
+
+#include <string>
+#include <map>
+#include <assert.h>
+#include <getopt.h>
+#include <errno.h>
+#include <sys/mman.h>
+#include <sys/wait.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <time.h>
+#include <signal.h>
+#include <stdarg.h>
+
+#include <q3buttongroup.h>
+#include <q3popupmenu.h>
+#include <qmessagebox.h>
+#include <qclipboard.h>
+#include <qsocketnotifier.h>
+#include <qtextcodec.h>
+#include <qstylefactory.h>
+#include <qmenubar.h>
+#include <qapplication.h>
+#include <qtimer.h>
+#include <qstyle.h>
+#include <qsplashscreen.h>
+#include <qobject.h>
+//Added by qt3to4:
+#include <QTimerEvent>
+#include <Q3CString>
+#include <QFocusEvent>
+#include <QTranslator>
+#include <QKeyEvent>
+#include <QEvent>
+#include <Q3ActionGroup>
+#include <QPixmap>
+#include <QCloseEvent>
+
+#include "app.h"
+#include "popupmenu.h"
+#include "transport.h"
+#include "bigtime.h"
+#include "arranger.h"
+#include "pianoroll.h"
+#include "xml.h"
+#include "midi.h"
+#include "conf.h"
+#include "listedit.h"
+#include "master/masteredit.h"
+#include "master/lmaster.h"
+#include "drumedit.h"
+#include "ttoolbar.h"
+#include "amixer.h"
+#include "cliplist/cliplist.h"
+#include "midiport.h"
+#include "audiodev.h"
+#include "mididev.h"
+#include "waveedit.h"
+#include "icons.h"
+#include "minstrument.h"
+#include "mixdowndialog.h"
+#include "midictrl.h"
+#include "filedialog.h"
+#include "plugin.h"
+#include "marker/markerview.h"
+#include "transpose.h"
+#include "appearance.h"
+#include "gatetime.h"
+#include "metronome.h"
+#include "debug.h"
+#include "event.h"
+#include "audio.h"
+#include "midiseq.h"
+#include "audioprefetch.h"
+#include "wave.h"
+#include "shortcutconfig.h"
+#include "gconfig.h"
+#include "driver/jackaudio.h"
+#include "track.h"
+#include "ticksynth.h"
+#include "instruments/editinstrument.h"
+#include "synth.h"
+#include "remote/pyapi.h"
+#include "al/dsp.h"
+
+#ifdef DSSI_SUPPORT
+#include "dssihost.h"
+#endif
+
+#ifdef VST_SUPPORT
+#include "vst.h"
+#endif
+
+#include <alsa/asoundlib.h>
+#include "songinfo.h"
+#include "didyouknow.h"
+#include <q3textedit.h>
+
+//extern void cacheJackRouteNames();
+
+static pthread_t watchdogThread;
+//ErrorHandler *error;
+static const char* fileOpenText =
+ QT_TR_NOOP("Click this button to open a <em>new song</em>.<br>"
+ "You can also select the <b>Open command</b> from the File menu.");
+static const char* fileSaveText =
+ QT_TR_NOOP("Click this button to save the song you are "
+ "editing. You will be prompted for a file name.\n"
+ "You can also select the Save command from the File menu.");
+static const char* fileNewText = QT_TR_NOOP("Create New Song");
+
+static const char* infoLoopButton = QT_TR_NOOP("loop between left mark and right mark");
+static const char* infoPunchinButton = QT_TR_NOOP("record starts at left mark");
+static const char* infoPunchoutButton = QT_TR_NOOP("record stops at right mark");
+static const char* infoStartButton = QT_TR_NOOP("rewind to start position");
+static const char* infoRewindButton = QT_TR_NOOP("rewind current position");
+static const char* infoForwardButton = QT_TR_NOOP("move current position");
+static const char* infoStopButton = QT_TR_NOOP("stop sequencer");
+static const char* infoPlayButton = QT_TR_NOOP("start sequencer play");
+static const char* infoRecordButton = QT_TR_NOOP("to record press record and then play");
+static const char* infoPanicButton = QT_TR_NOOP("send note off to all midi channels");
+
+#define PROJECT_LIST_LEN 6
+static QString* projectList[PROJECT_LIST_LEN];
+
+extern void initIcons();
+extern void initMidiSynth();
+extern bool initJackAudio();
+extern void exitJackAudio();
+extern bool initDummyAudio();
+extern void exitDummyAudio();
+extern void initVST_fst_init();
+extern void initVST();
+extern void initDSSI();
+// p3.3.39
+extern void initOSC();
+extern void exitOSC();
+
+#ifdef HAVE_LASH
+#include <lash/lash.h>
+lash_client_t * lash_client = 0;
+extern snd_seq_t * alsaSeq;
+#endif /* HAVE_LASH */
+
+int watchAudio, watchAudioPrefetch, watchMidi;
+pthread_t splashThread;
+
+
+//PyScript *pyscript;
+// void MusE::runPythonScript()
+// {
+// QString script("test.py");
+// // pyscript->runPythonScript(script);
+// }
+
+//---------------------------------------------------------
+// getCapabilities
+//---------------------------------------------------------
+
+static void getCapabilities()
+ {
+#ifdef RTCAP
+#ifdef __linux__
+ const char* napp = getenv("GIVERTCAP");
+ if (napp == 0)
+ napp = "givertcap";
+ int pid = fork();
+ if (pid == 0) {
+ if (execlp(napp, napp, 0) == -1)
+ perror("exec givertcap failed");
+ }
+ else if (pid == -1) {
+ perror("fork givertcap failed");
+ }
+ else {
+ waitpid(pid, 0, 0);
+ }
+#endif // __linux__
+#endif
+ }
+
+
+//---------------------------------------------------------
+// sleep function
+//---------------------------------------------------------
+void microSleep(long msleep)
+{
+ bool sleepOk=-1;
+
+ while(sleepOk==-1)
+ sleepOk=usleep(msleep);
+}
+
+// Removed p3.3.17
+/*
+//---------------------------------------------------------
+// watchdog thread
+//---------------------------------------------------------
+
+static void* watchdog(void*)
+ {
+ doSetuid();
+
+ struct sched_param rt_param;
+ memset(&rt_param, 0, sizeof(rt_param));
+ rt_param.sched_priority = sched_get_priority_max(SCHED_FIFO);
+ int rv = pthread_setschedparam(pthread_self(), SCHED_FIFO, &rt_param);
+ if (rv != 0)
+ perror("Set realtime scheduler");
+
+ int policy;
+ if (pthread_getschedparam(pthread_self(), &policy, &rt_param)!= 0) {
+ printf("Cannot get current client scheduler: %s\n", strerror(errno));
+ }
+ if (policy != SCHED_FIFO)
+ printf("watchdog process %d _NOT_ running SCHED_FIFO\n", getpid());
+ else if (debugMsg)
+ printf("watchdog set to SCHED_FIFO priority %d\n",
+ sched_get_priority_max(SCHED_FIFO));
+
+ undoSetuid();
+ int fatal = 0;
+ for (;;) {
+ watchAudio = 0;
+ watchMidi = 0;
+ static const int WD_TIMEOUT = 3;
+
+ // sleep can be interrpted by signals:
+ int to = WD_TIMEOUT;
+ while (to > 0)
+ to = sleep(to);
+
+ bool timeout = false;
+ if (midiSeqRunning && watchMidi == 0)
+ {
+ printf("midiSeqRunning = %i watchMidi %i\n", midiSeqRunning, watchMidi);
+ timeout = true;
+ }
+ if (watchAudio == 0)
+ timeout = true;
+ if (watchAudio > 500000)
+ timeout = true;
+ if (timeout)
+ ++fatal;
+ else
+ fatal = 0;
+ if (fatal >= 3) {
+ printf("WatchDog: fatal error, realtime task timeout\n");
+ printf(" (%d,%d-%d) - stopping all services\n",
+ watchMidi, watchAudio, fatal);
+ break;
+ }
+// printf("wd %d %d %d\n", watchMidi, watchAudio, fatal);
+ }
+ audio->stop(true);
+ audioPrefetch->stop(true);
+ printf("watchdog exit\n");
+ exit(-1);
+ }
+*/
+
+//---------------------------------------------------------
+// seqStart
+//---------------------------------------------------------
+
+bool MusE::seqStart()
+ {
+ // Changed by Tim. p3.3.17
+
+ /*
+ if (audio->isRunning()) {
+ printf("seqStart(): already running\n");
+ return true;
+ }
+
+ if (realTimeScheduling) {
+ //
+ // create watchdog thread with max priority
+ //
+ doSetuid();
+ struct sched_param rt_param;
+ memset(&rt_param, 0, sizeof(rt_param));
+ rt_param.sched_priority = realTimePriority +1;//sched_get_priority_max(SCHED_FIFO);
+
+ pthread_attr_t* attributes = (pthread_attr_t*) malloc(sizeof(pthread_attr_t));
+ pthread_attr_init(attributes);
+
+// if (pthread_attr_setschedpolicy(attributes, SCHED_FIFO)) {
+// printf("MusE: cannot set FIFO scheduling class for RT thread\n");
+// }
+// if (pthread_attr_setschedparam (attributes, &rt_param)) {
+// // printf("Cannot set scheduling priority for RT thread (%s)\n", strerror(errno));
+// }
+// if (pthread_attr_setscope (attributes, PTHREAD_SCOPE_SYSTEM)) {
+// printf("MusE: Cannot set scheduling scope for RT thread\n");
+// }
+ if (pthread_create(&watchdogThread, attributes, ::watchdog, 0))
+ perror("MusE: creating watchdog thread failed:");
+ pthread_attr_destroy(attributes);
+ undoSetuid();
+ }
+ audioPrefetch->start();
+ audioPrefetch->msgSeek(0, true); // force
+ midiSeqRunning = !midiSeq->start();
+
+ if (!audio->start()) {
+ QMessageBox::critical( muse, tr(QString("Failed to start audio!")),
+ tr(QString("Was not able to start audio, check if jack is running.\n")));
+ return false;
+ }
+
+ return true;
+ */
+
+ if (audio->isRunning()) {
+ printf("seqStart(): already running\n");
+ return true;
+ }
+
+ if (!audio->start()) {
+ QMessageBox::critical( muse, tr(QString("Failed to start audio!")),
+ tr(QString("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)
+ if(audio->isRunning())
+ break;
+ sleep(1);
+ }
+ //if (audioState != AUDIO_START2) {
+ if(!audio->isRunning())
+ {
+ QMessageBox::critical( muse, tr("Failed to start audio!"),
+ tr("Timeout waiting for audio to run. Check if jack is running.\n"));
+ }
+ //
+ // now its safe to ask the driver for realtime
+ // priority
+
+ realTimePriority = audioDevice->realtimePriority();
+ if(debugMsg)
+ printf("MusE::seqStart: getting audio driver realTimePriority:%d\n", realTimePriority);
+
+ // Disabled by Tim. p3.3.22
+ /*
+ if(realTimeScheduling)
+ {
+ //
+ // create watchdog thread with max priority
+ //
+ doSetuid();
+ struct sched_param rt_param;
+ memset(&rt_param, 0, sizeof(rt_param));
+ rt_param.sched_priority = realTimePriority + 1;//sched_get_priority_max(SCHED_FIFO);
+
+ pthread_attr_t* attributes = (pthread_attr_t*) malloc(sizeof(pthread_attr_t));
+ pthread_attr_init(attributes);
+
+// if (pthread_attr_setschedpolicy(attributes, SCHED_FIFO)) {
+// printf("MusE: cannot set FIFO scheduling class for RT thread\n");
+// }
+// if (pthread_attr_setschedparam (attributes, &rt_param)) {
+// // printf("Cannot set scheduling priority for RT thread (%s)\n", strerror(errno));
+// }
+// if (pthread_attr_setscope (attributes, PTHREAD_SCOPE_SYSTEM)) {
+// printf("MusE: Cannot set scheduling scope for RT thread\n");
+// }
+ if (pthread_create(&watchdogThread, attributes, ::watchdog, 0))
+ perror("MusE: creating watchdog thread failed");
+ pthread_attr_destroy(attributes);
+ undoSetuid();
+ }
+ */
+
+ //int policy;
+ //if ((policy = sched_getscheduler (0)) < 0) {
+ // printf("Cannot get current client scheduler: %s\n", strerror(errno));
+ // }
+ //if (policy != SCHED_FIFO)
+ // printf("midi thread %d _NOT_ running SCHED_FIFO\n", getpid());
+
+
+ //audioState = AUDIO_RUNNING;
+ // Changed by Tim. p3.3.22
+ /*
+ //if(realTimePriority)
+ if(realTimeScheduling)
+ {
+ int pr = realTimePriority;
+ if(pr > 5)
+ pr -= 5;
+ else
+ pr = 0;
+ audioPrefetch->start(pr);
+ //audioWriteback->start(realTimePriority - 5);
+ }
+ else
+ {
+ audioPrefetch->start(0);
+ //audioWriteback->start(0);
+ }
+ */
+
+ int pfprio = 0;
+ int midiprio = 0;
+
+ // NOTE: realTimeScheduling can be true (gotten using jack_is_realtime()),
+ // while the determined realTimePriority can be 0.
+ // realTimePriority is gotten using pthread_getschedparam() on the client thread
+ // in JackAudioDevice::realtimePriority() which is a bit flawed - it reports there's no RT...
+ if(realTimeScheduling)
+ {
+ //if(realTimePriority < 5)
+ // printf("MusE: WARNING: Recommend setting audio realtime priority to a higher value!\n");
+ /*
+ if(realTimePriority == 0)
+ {
+ pfprio = 1;
+ midiprio = 2;
+ }
+ else
+ if(realTimePriority == 1)
+ {
+ pfprio = 2;
+ midiprio = 3;
+ }
+ else
+ if(realTimePriority == 2)
+ {
+ pfprio = 1;
+ midiprio = 3;
+ }
+ else
+ if(realTimePriority == 3)
+ {
+ pfprio = 1;
+ //midiprio = 2;
+ // p3.3.37
+ midiprio = 4;
+ }
+ else
+ if(realTimePriority == 4)
+ {
+ pfprio = 1;
+ //midiprio = 3;
+ // p3.3.37
+ midiprio = 5;
+ }
+ else
+ if(realTimePriority == 5)
+ {
+ pfprio = 1;
+ //midiprio = 3;
+ // p3.3.37
+ midiprio = 6;
+ }
+ else
+ */
+ {
+ //pfprio = realTimePriority - 5;
+ // p3.3.40
+ pfprio = realTimePriority + 1;
+
+ //midiprio = realTimePriority - 2;
+ // p3.3.37
+ //midiprio = realTimePriority + 1;
+ // p3.3.40
+ midiprio = realTimePriority + 2;
+ }
+ }
+
+ if(midiRTPrioOverride > 0)
+ midiprio = midiRTPrioOverride;
+
+ // FIXME FIXME: The realTimePriority of the Jack thread seems to always be 5 less than the value passed to jackd command.
+ //if(midiprio == realTimePriority)
+ // printf("MusE: WARNING: Midi realtime priority %d is the same as audio realtime priority %d. Try a different setting.\n",
+ // midiprio, realTimePriority);
+ //if(midiprio == pfprio)
+ // printf("MusE: WARNING: Midi realtime priority %d is the same as audio prefetch realtime priority %d. Try a different setting.\n",
+ // midiprio, pfprio);
+
+ audioPrefetch->start(pfprio);
+
+ audioPrefetch->msgSeek(0, true); // force
+
+ //midiSeqRunning = !midiSeq->start(realTimeScheduling ? realTimePriority : 0);
+ // Changed by Tim. p3.3.22
+ //midiSeq->start(realTimeScheduling ? realTimePriority : 0);
+ midiSeq->start(midiprio);
+
+ int counter=0;
+ while (++counter) {
+ //if (counter > 10) {
+ if (counter > 1000) {
+ fprintf(stderr,"midi sequencer thread does not start!? Exiting...\n");
+ exit(33);
+ }
+ midiSeqRunning = midiSeq->isRunning();
+ if (midiSeqRunning)
+ break;
+ usleep(1000);
+ printf("looping waiting for sequencer thread to start\n");
+ }
+ if(!midiSeqRunning)
+ {
+ fprintf(stderr, "midiSeq is not running! Exiting...\n");
+ exit(33);
+ }
+ return true;
+ }
+
+//---------------------------------------------------------
+// stop
+//---------------------------------------------------------
+
+void MusE::seqStop()
+ {
+ // label sequencer as disabled before it actually happened to minimize race condition
+ midiSeqRunning = false;
+
+ song->setStop(true);
+ song->setStopPlay(false);
+ midiSeq->stop(true);
+ audio->stop(true);
+ audioPrefetch->stop(true);
+ if (realTimeScheduling && watchdogThread)
+ pthread_cancel(watchdogThread);
+ }
+
+//---------------------------------------------------------
+// seqRestart
+//---------------------------------------------------------
+
+bool MusE::seqRestart()
+{
+ bool restartSequencer = audio->isRunning();
+ if (restartSequencer) {
+ if (audio->isPlaying()) {
+ audio->msgPlay(false);
+ while (audio->isPlaying())
+ qApp->processEvents();
+ }
+ seqStop();
+ }
+ if(!seqStart())
+ return false;
+
+ audioDevice->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);
+ }
+
+//---------------------------------------------------------
+// populateAddSynth
+//---------------------------------------------------------
+
+/*
+struct addSynth_cmp_str
+{
+ bool operator()(std::string a, std::string b)
+ {
+ return (a < b);
+ }
+};
+*/
+
+Q3PopupMenu* populateAddSynth(QWidget* parent, QObject* obj = 0, const char* slot = 0)
+{
+ Q3PopupMenu* synp = new Q3PopupMenu(parent);
+
+ //typedef std::multimap<std::string, int, addSynth_cmp_str > asmap;
+ typedef std::multimap<std::string, int > asmap;
+
+ //typedef std::multimap<std::string, int, addSynth_cmp_str >::iterator imap;
+ typedef std::multimap<std::string, int >::iterator imap;
+
+ MessSynth* synMESS = 0;
+ Q3PopupMenu* synpMESS = 0;
+ asmap mapMESS;
+
+ #ifdef DSSI_SUPPORT
+ DssiSynth* synDSSI = 0;
+ Q3PopupMenu* synpDSSI = 0;
+ asmap mapDSSI;
+ #endif
+
+ #ifdef VST_SUPPORT
+ VstSynth* synVST = 0;
+ Q3PopupMenu* synpVST = 0;
+ asmap mapVST;
+ #endif
+
+ // Not necessary, but what the heck.
+ Q3PopupMenu* synpOther = 0;
+ asmap mapOther;
+
+ //const int synth_base_id = 0x1000;
+ int ii = 0;
+ for(std::vector<Synth*>::iterator i = synthis.begin(); i != synthis.end(); ++i)
+ {
+ synMESS = dynamic_cast<MessSynth*>(*i);
+ if(synMESS)
+ {
+ mapMESS.insert( std::pair<std::string, int> (std::string(synMESS->description().lower().latin1()), ii) );
+ }
+ else
+ {
+
+ #ifdef DSSI_SUPPORT
+ synDSSI = dynamic_cast<DssiSynth*>(*i);
+ if(synDSSI)
+ {
+ mapDSSI.insert( std::pair<std::string, int> (std::string(synDSSI->description().lower().latin1()), ii) );
+ }
+ else
+ #endif
+
+ {
+ #ifdef VST_SUPPORT
+ synVST = dynamic_cast<VstSynth*>(*i);
+ if(synVST)
+ {
+ mapVST.insert( std::pair<std::string, int> (std::string(synVST->description().lower().latin1()), ii) );
+ }
+ else
+ #endif
+
+ {
+ mapOther.insert( std::pair<std::string, int> (std::string((*i)->description().lower().latin1()), ii) );
+ }
+ }
+ }
+
+ ++ii;
+ }
+
+ int sz = synthis.size();
+ for(imap i = mapMESS.begin(); i != mapMESS.end(); ++i)
+ {
+ int idx = i->second;
+ if(idx > sz) // Sanity check
+ continue;
+ Synth* s = synthis[idx];
+ if(s)
+ {
+ // No MESS sub-menu yet? Create it now.
+ if(!synpMESS)
+ synpMESS = new Q3PopupMenu(parent);
+ synpMESS->insertItem(QT_TR_NOOP(s->description()) + " <" + QT_TR_NOOP(s->name()) + ">", MENU_ADD_SYNTH_ID_BASE + idx);
+ }
+ }
+
+ #ifdef DSSI_SUPPORT
+ for(imap i = mapDSSI.begin(); i != mapDSSI.end(); ++i)
+ {
+ int idx = i->second;
+ if(idx > sz)
+ continue;
+ Synth* s = synthis[idx];
+ if(s)
+ {
+ // No DSSI sub-menu yet? Create it now.
+ if(!synpDSSI)
+ synpDSSI = new Q3PopupMenu(parent);
+ synpDSSI->insertItem(QT_TR_NOOP(s->description()) + " <" + QT_TR_NOOP(s->name()) + ">", MENU_ADD_SYNTH_ID_BASE + idx);
+ }
+ }
+ #endif
+
+ #ifdef VST_SUPPORT
+ for(imap i = mapVST.begin(); i != mapVST.end(); ++i)
+ {
+ int idx = i->second;
+ if(idx > sz)
+ continue;
+ Synth* s = synthis[idx];
+ if(s)
+ {
+ // No VST sub-menu yet? Create it now.
+ if(!synpVST)
+ synpVST = new Q3PopupMenu(parent);
+ synpVST->insertItem(QT_TR_NOOP(s->description()) + " <" + QT_TR_NOOP(s->name()) + ">", MENU_ADD_SYNTH_ID_BASE + idx);
+ }
+ }
+ #endif
+
+ for(imap i = mapOther.begin(); i != mapOther.end(); ++i)
+ {
+ int idx = i->second;
+ if(idx > sz)
+ continue;
+ Synth* s = synthis[idx];
+ // No Other sub-menu yet? Create it now.
+ if(!synpOther)
+ synpOther = new Q3PopupMenu(parent);
+ synpOther->insertItem(QT_TR_NOOP(s->description()) + " <" + QT_TR_NOOP(s->name()) + ">", MENU_ADD_SYNTH_ID_BASE + idx);
+ }
+
+ if(synpMESS)
+ {
+ synp->insertItem(*synthIcon, QT_TR_NOOP("MESS"), synpMESS, Track::AUDIO_SOFTSYNTH);
+ if(obj && slot)
+ QObject::connect(synpMESS, SIGNAL(activated(int)), obj, slot);
+ }
+
+ #ifdef DSSI_SUPPORT
+ if(synpDSSI)
+ {
+ synp->insertItem(*synthIcon, QT_TR_NOOP("DSSI"), synpDSSI, Track::AUDIO_SOFTSYNTH);
+ if(obj && slot)
+ QObject::connect(synpDSSI, SIGNAL(activated(int)), obj, slot);
+ }
+ #endif
+
+ #ifdef VST_SUPPORT
+ if(synpVST)
+ {
+ synp->insertItem(*synthIcon, QT_TR_NOOP("FST"), synpVST, Track::AUDIO_SOFTSYNTH);
+ if(obj && slot)
+ QObject::connect(synpVST, SIGNAL(activated(int)), obj, slot);
+ }
+ #endif
+
+ if(synpOther)
+ {
+ synp->insertItem(*synthIcon, QObject::tr("Other"), synpOther, Track::AUDIO_SOFTSYNTH);
+ if(obj && slot)
+ QObject::connect(synpOther, SIGNAL(activated(int)), obj, slot);
+ }
+
+ return synp;
+}
+
+//---------------------------------------------------------
+// populateAddTrack
+// this is also used in "mixer"
+//---------------------------------------------------------
+
+void populateAddTrack(Q3PopupMenu* addTrack)
+ {
+ addTrack->insertItem(QIcon(*addtrack_addmiditrackIcon),
+ QT_TR_NOOP("Add Midi Track"), Track::MIDI);
+ addTrack->insertItem(QIcon(*addtrack_drumtrackIcon),
+ QT_TR_NOOP("Add Drum Track"), Track::DRUM);
+ addTrack->insertItem(QIcon(*addtrack_wavetrackIcon),
+ QT_TR_NOOP("Add Wave Track"), Track::WAVE);
+ addTrack->insertItem(QIcon(*addtrack_audiooutputIcon),
+ QT_TR_NOOP("Add Audio Output"), Track::AUDIO_OUTPUT);
+ addTrack->insertItem(QIcon(*addtrack_audiogroupIcon),
+ QT_TR_NOOP("Add Audio Group"), Track::AUDIO_GROUP);
+ addTrack->insertItem(QIcon(*addtrack_audioinputIcon),
+ QT_TR_NOOP("Add Audio Input"), Track::AUDIO_INPUT);
+ addTrack->insertItem(QIcon(*addtrack_auxsendIcon),
+ QT_TR_NOOP("Add Aux Send"), Track::AUDIO_AUX);
+
+ // Create a sub-menu and fill it with found synth types. Make addTrack the owner.
+ Q3PopupMenu* synp = populateAddSynth(addTrack, song, SLOT(addNewTrack(int)));
+ // Add the sub-menu to the given menu.
+ addTrack->insertItem(*synthIcon, QT_TR_NOOP("Add Synth"), synp, Track::AUDIO_SOFTSYNTH);
+
+ //addTrack->connect(addTrack, SIGNAL(activated(int)), song, SLOT(addTrack(int)));
+ addTrack->connect(addTrack, SIGNAL(activated(int)), song, SLOT(addNewTrack(int)));
+ //synp->connect(synp, SIGNAL(activated(int)), song, SLOT(addNewTrack(int)));
+ }
+
+//---------------------------------------------------------
+// MusE
+//---------------------------------------------------------
+
+MusE::MusE(int argc, char** argv) : Q3MainWindow(0, "mainwindow")
+ {
+ // By T356. For LADSPA plugins in plugin.cpp
+ // QWidgetFactory::addWidgetFactory( new PluginWidgetFactory ); ddskrjo
+
+ setFocusPolicy(Qt::WheelFocus);
+ muse = this; // hack
+ clipListEdit = 0;
+ midiSyncConfig = 0;
+ midiRemoteConfig = 0;
+ midiPortConfig = 0;
+ metronomeConfig = 0;
+ audioConfig = 0;
+ midiFileConfig = 0;
+ midiFilterConfig = 0;
+ midiInputTransform = 0;
+ midiRhythmGenerator = 0;
+ globalSettingsConfig = 0;
+ markerView = 0;
+ softSynthesizerConfig = 0;
+ midiTransformerDialog = 0;
+ shortcutConfig = 0;
+ appearance = 0;
+ //audioMixer = 0;
+ mixer1 = 0;
+ mixer2 = 0;
+ watchdogThread = 0;
+ editInstrument = 0;
+ routingPopupMenu = 0;
+
+ appName = QString("MusE");
+
+ song = new Song("song");
+ song->blockSignals(true);
+ heartBeatTimer = new QTimer(this, "timer");
+ connect(heartBeatTimer, SIGNAL(timeout()), song, SLOT(beat()));
+
+#ifdef ENABLE_PYTHON
+ //---------------------------------------------------
+ // Python bridge
+ //---------------------------------------------------
+ // Uncomment in order to enable MusE Python bridge:
+ if (usePythonBridge) {
+ printf("Initializing python bridge!\n");
+ if (initPythonBridge() == false) {
+ printf("Could not initialize Python bridge\n");
+ exit(1);
+ }
+ }
+#endif
+
+ //---------------------------------------------------
+ // undo/redo
+ //---------------------------------------------------
+ undoRedo = new Q3ActionGroup(this, tr("UndoRedo"), false);
+ undoAction = new Q3Action(tr("undo"), QIcon(*undoIconS), tr("Und&o"), // ddskrjo
+ Qt::CTRL+Qt::Key_Z, undoRedo, "undo");
+ redoAction = new Q3Action(tr("redo"), QIcon(*redoIconS), tr("Re&do"), // ddskrjo
+ Qt::CTRL+Qt::Key_Y, undoRedo, "redo");
+ undoAction->setWhatsThis(tr("undo last change to song"));
+ redoAction->setWhatsThis(tr("redo last undo"));
+ undoAction->setEnabled(false);
+ redoAction->setEnabled(false);
+ connect(redoAction, SIGNAL(activated()), song, SLOT(redo()));
+ connect(undoAction, SIGNAL(activated()), song, SLOT(undo()));
+
+ //---------------------------------------------------
+ // Transport
+ //---------------------------------------------------
+
+ transportAction = new Q3ActionGroup(this, tr("Transport"), false);
+
+ loopAction = new Q3Action(tr("loop"), QIcon(*loop1Icon),
+ tr("Loop"), 0, transportAction, "loop", true);
+ loopAction->setWhatsThis(tr(infoLoopButton));
+ connect(loopAction, SIGNAL(toggled(bool)), song, SLOT(setLoop(bool)));
+
+ punchinAction = new Q3Action(tr("punchin"), QIcon(*punchin1Icon),
+ tr("Punchin"), 0, transportAction, "Punchin", true);
+ punchinAction->setWhatsThis(tr(infoPunchinButton));
+ connect(punchinAction, SIGNAL(toggled(bool)), song, SLOT(setPunchin(bool)));
+
+ punchoutAction = new Q3Action(tr("punchout"), QIcon(*punchout1Icon),
+ tr("Punchout"), 0, transportAction, "punchout", true);
+ punchoutAction->setWhatsThis(tr(infoPunchoutButton));
+ connect(punchoutAction, SIGNAL(toggled(bool)), song, SLOT(setPunchout(bool)));
+
+ transportAction->addSeparator();
+
+ startAction = new Q3Action(tr("start"), QIcon(*startIcon),
+ tr("Start"), 0, transportAction, "start");
+ startAction->setWhatsThis(tr(infoStartButton));
+ connect(startAction, SIGNAL(activated()), song, SLOT(rewindStart()));
+
+ rewindAction = new Q3Action(tr("rewind"), QIcon(*frewindIcon),
+ tr("Rewind"), 0, transportAction, "rewind");
+ rewindAction->setWhatsThis(tr(infoRewindButton));
+ connect(rewindAction, SIGNAL(activated()), song, SLOT(rewind()));
+
+ forwardAction = new Q3Action(tr("forward"), QIcon(*fforwardIcon),
+ tr("Forward"), 0, transportAction, "forward");
+ forwardAction->setWhatsThis(tr(infoForwardButton));
+ connect(forwardAction, SIGNAL(activated()), song, SLOT(forward()));
+
+ stopAction = new Q3Action(tr("stop"), QIcon(*stopIcon),
+ tr("Stop"), 0, transportAction, "stop", true);
+ stopAction->setWhatsThis(tr(infoStopButton));
+ stopAction->setOn(true);
+ connect(stopAction, SIGNAL(toggled(bool)), song, SLOT(setStop(bool)));
+
+ playAction = new Q3Action(tr("play"), QIcon(*playIcon),
+ tr("Play"), 0, transportAction, "play", true);
+ playAction->setWhatsThis(tr(infoPlayButton));
+ playAction->setOn(false);
+ connect(playAction, SIGNAL(toggled(bool)), song, SLOT(setPlay(bool)));
+
+ recordAction = new Q3Action(tr("record"), QIcon(*recordIcon),
+ tr("Record"), 0, transportAction, "record", true);
+ recordAction->setWhatsThis(tr(infoRecordButton));
+ connect(recordAction, SIGNAL(toggled(bool)), song, SLOT(setRecord(bool)));
+
+ panicAction = new Q3Action(tr("panic"), QIcon(*panicIcon),
+ tr("Panic"), 0, 0, "panic", false);
+ panicAction->setWhatsThis(tr(infoPanicButton));
+ connect(panicAction, SIGNAL(activated()), song, SLOT(panic()));
+
+ initMidiInstruments();
+ initMidiPorts();
+ ::initMidiDevices();
+
+ //----Actions
+
+ fileNewAction = new Q3Action(tr("new"),
+ QIcon(*filenewIcon), tr("&New"), 0, this, "new"); // ddskrjo
+ fileNewAction->setToolTip(tr(fileNewText));
+ fileNewAction->setWhatsThis(tr(fileNewText));
+
+ fileOpenAction = new Q3Action(tr("open"),
+ QIcon(*openIcon), tr("&Open"), 0, this, "open"); // ddskrjo
+ fileOpenAction->setToolTip(tr(fileOpenText));
+ fileOpenAction->setWhatsThis(tr(fileOpenText));
+
+ fileSaveAction = new Q3Action(tr("save"),
+ QIcon(*saveIcon), tr("&Save"), 0, this, "save"); // ddskrjo
+ fileSaveAction->setToolTip(tr(fileSaveText));
+ fileSaveAction->setWhatsThis(tr(fileSaveText));
+
+ pianoAction = new Q3Action(tr("pianoroll"),
+ *pianoIconSet, tr("Pianoroll"), 0, this, "pianoroll");
+ connect(pianoAction, SIGNAL(activated()), SLOT(startPianoroll()));
+
+// markerAction = new QAction(tr("marker"), QIconSet(*view_markerIcon), tr("Marker"),
+// 0, this, "marker");
+// connect(markerAction, SIGNAL(activated()), SLOT(startMarkerView()));
+
+ connect(fileNewAction, SIGNAL(activated()), SLOT(loadTemplate()));
+ connect(fileOpenAction, SIGNAL(activated()), SLOT(loadProject()));
+ connect(fileSaveAction, SIGNAL(activated()), SLOT(save()));
+
+ //--------------------------------------------------
+ // Toolbar
+ //--------------------------------------------------
+
+ tools = new Q3ToolBar(tr("File Buttons"), this);
+ fileNewAction->addTo(tools);
+ fileOpenAction->addTo(tools);
+ fileSaveAction->addTo(tools);
+
+ //
+ // Whats This
+ //
+ Q3WhatsThis::whatsThisButton(tools);
+
+ tools->addSeparator();
+ undoRedo->addTo(tools);
+
+ tools1 = new EditToolBar(this, arrangerTools);
+
+ Q3ToolBar* transportToolbar = new Q3ToolBar(this);
+ transportAction->addTo(transportToolbar);
+
+ Q3ToolBar* panicToolbar = new Q3ToolBar(this);
+ panicAction->addTo(panicToolbar);
+
+ if (realTimePriority < sched_get_priority_min(SCHED_FIFO))
+ realTimePriority = sched_get_priority_min(SCHED_FIFO);
+ else if (realTimePriority > sched_get_priority_max(SCHED_FIFO))
+ realTimePriority = sched_get_priority_max(SCHED_FIFO);
+
+ // If we requested to force the midi thread priority...
+ if(midiRTPrioOverride > 0)
+ {
+ if (midiRTPrioOverride < sched_get_priority_min(SCHED_FIFO))
+ midiRTPrioOverride = sched_get_priority_min(SCHED_FIFO);
+ else if (midiRTPrioOverride > sched_get_priority_max(SCHED_FIFO))
+ midiRTPrioOverride = sched_get_priority_max(SCHED_FIFO);
+ }
+
+ // Changed by Tim. p3.3.17
+ //midiSeq = new MidiSeq(realTimeScheduling ? realTimePriority : 0, "Midi");
+ midiSeq = new MidiSeq("Midi");
+ audio = new Audio();
+ //audioPrefetch = new AudioPrefetch(0, "Disc");
+ audioPrefetch = new AudioPrefetch("Prefetch");
+
+ //---------------------------------------------------
+ // Popups
+ //---------------------------------------------------
+
+// QPopupMenu *foo = new QPopupMenu(this);
+// testAction = new QAction(foo,"testPython");
+// testAction->addTo(foo);
+// menuBar()->insertItem(tr("&testpython"), foo);
+// connect(testAction, SIGNAL(activated()), this, SLOT(runPythonScript()));
+
+
+ //-------------------------------------------------------------
+ // popup File
+ //-------------------------------------------------------------
+
+ menu_file = new Q3PopupMenu(this);
+ menuBar()->insertItem(tr("&File"), menu_file);
+ fileNewAction->addTo(menu_file);
+ fileOpenAction->addTo(menu_file);
+ openRecent = new Q3PopupMenu(menu_file);
+ connect(openRecent, SIGNAL(aboutToShow()), this, SLOT(openRecentMenu()));
+ connect(openRecent, SIGNAL(activated(int)), this, SLOT(selectProject(int)));
+ menu_ids[CMD_OPEN_RECENT] = menu_file->insertItem(tr("Open &Recent"), openRecent, 0);
+ menu_file->insertSeparator();
+ fileSaveAction->addTo(menu_file);
+ menu_ids[CMD_SAVE_AS] = menu_file->insertItem(tr("Save &As"), this, SLOT(saveAs()), 0, -2);
+ menu_file->insertSeparator();
+ menu_ids[CMD_IMPORT_MIDI] = menu_file->insertItem(*openIconS, tr("Import Midifile"), this, SLOT(importMidi()), 0, -2);
+ menu_ids[CMD_EXPORT_MIDI] = menu_file->insertItem(*saveIconS, tr("Export Midifile"), this, SLOT(exportMidi()), 0, -2);
+ menu_ids[CMD_IMPORT_PART] = menu_file->insertItem(*openIconS, tr("Import Part"), this, SLOT(importPart()), 0, -2);
+ menu_file->insertSeparator();
+ menu_ids[CMD_IMPORT_AUDIO] = menu_file->insertItem(*openIconS, tr("Import Wave File"), this, SLOT(importWave()), 0, -2);
+
+
+ menu_file->insertSeparator();
+ menu_ids[CMD_QUIT] = menu_file->insertItem(*exitIconS, tr("&Quit"), this, SLOT(quitDoc()), 0, -2);
+ menu_file->insertSeparator();
+
+ //-------------------------------------------------------------
+ // popup Edit
+ //-------------------------------------------------------------
+
+ menuEdit = new Q3PopupMenu(this);
+ undoRedo->addTo(menuEdit);
+ menuEdit->insertSeparator();
+ menuBar()->insertItem(tr("&Edit"), menuEdit);
+
+ menuEdit->insertItem(*editcutIconSet, tr("C&ut"), CMD_CUT);
+ menuEdit->setAccel(Qt::CTRL+Qt::Key_X, CMD_CUT);
+ menuEdit->insertItem(*editcopyIconSet, tr("&Copy"), CMD_COPY);
+ menuEdit->setAccel(Qt::CTRL+Qt::Key_C, CMD_COPY);
+ menuEdit->insertItem(*editpasteIconSet, tr("&Paste"), CMD_PASTE);
+ menuEdit->setAccel(Qt::CTRL+Qt::Key_V, CMD_PASTE);
+ menuEdit->insertItem(*editpasteIconSet, tr("&Insert"), CMD_INSERT);
+ menuEdit->setAccel(Qt::CTRL+Qt::SHIFT+Qt::Key_I, CMD_INSERT);
+ menuEdit->insertItem(*editpasteCloneIconSet, tr("Paste c&lone"), CMD_PASTE_CLONE);
+ menuEdit->setAccel(Qt::CTRL+Qt::SHIFT+Qt::Key_V, CMD_PASTE_CLONE);
+ menuEdit->insertItem(*editpaste2TrackIconSet, tr("Paste to &track"), CMD_PASTE_TO_TRACK);
+ menuEdit->setAccel(Qt::CTRL+Qt::Key_B, CMD_PASTE_TO_TRACK);
+ menuEdit->insertItem(*editpasteClone2TrackIconSet, tr("Paste clone to trac&k"), CMD_PASTE_CLONE_TO_TRACK);
+ menuEdit->setAccel(Qt::CTRL+Qt::SHIFT+Qt::Key_B, CMD_PASTE_CLONE_TO_TRACK);
+
+ menuEdit->insertItem(*editpasteIconSet, tr("&Insert empty measure"), CMD_INSERTMEAS);
+ menuEdit->setAccel(Qt::CTRL+Qt::SHIFT+Qt::Key_X, CMD_INSERTMEAS);
+ menuEdit->insertSeparator();
+ menuEdit->insertItem(QIcon(*edit_track_delIcon),
+ tr("Delete Selected Tracks"), CMD_DELETE_TRACK);
+
+ addTrack = new Q3PopupMenu(this);
+ // Moved below. Have to wait until synths are available...
+ //populateAddTrack(addTrack);
+
+ menuEdit->insertItem(QIcon(*edit_track_addIcon),
+ tr("Add Track"), addTrack);
+
+ select = new Q3PopupMenu(this);
+ select->insertItem(QIcon(*select_allIcon),
+ tr("Select &All"), CMD_SELECT_ALL);
+ select->insertItem(QIcon(*select_deselect_allIcon),
+ tr("&Deselect All"), CMD_SELECT_NONE);
+ menuEdit->insertSeparator();
+ select->insertItem(QIcon(*select_invert_selectionIcon),
+ tr("Invert &Selection"), CMD_SELECT_INVERT);
+ select->insertItem(QIcon(*select_inside_loopIcon),
+ tr("&Inside Loop"), CMD_SELECT_ILOOP);
+ select->insertItem(QIcon(*select_outside_loopIcon),
+ tr("&Outside Loop"), CMD_SELECT_OLOOP);
+ select->insertItem(QIcon(*select_all_parts_on_trackIcon),
+ tr("All &Parts on Track"), CMD_SELECT_PARTS);
+ menuEdit->insertItem(QIcon(*selectIcon),
+ tr("Select"), select);
+ menuEdit->insertSeparator();
+
+ pianoAction->addTo(menuEdit);
+ menu_ids[CMD_OPEN_DRUMS] = menuEdit->insertItem(
+ QIcon(*edit_drummsIcon), tr("Drums"), this, SLOT(startDrumEditor()), 0);
+ menu_ids[CMD_OPEN_LIST] = menuEdit->insertItem(
+ QIcon(*edit_listIcon), tr("List"), this, SLOT(startListEditor()), 0);
+ menu_ids[CMD_OPEN_WAVE] = menuEdit->insertItem(
+ QIcon(*edit_waveIcon), tr("Wave"), this, SLOT(startWaveEditor()), 0);
+
+ master = new Q3PopupMenu(this);
+ master->setCheckable(false);
+ menu_ids[CMD_OPEN_GRAPHIC_MASTER] = master->insertItem(
+ QIcon(*mastertrack_graphicIcon),tr("Graphic"), this, SLOT(startMasterEditor()), 0);
+ menu_ids[CMD_OPEN_LIST_MASTER] = master->insertItem(
+ QIcon(*mastertrack_listIcon),tr("List"), this, SLOT(startLMasterEditor()), 0);
+ menuEdit->insertItem(QIcon(*edit_mastertrackIcon),
+ tr("Mastertrack"), master, Qt::Key_F);
+
+ menuEdit->insertSeparator();
+ connect(menuEdit, SIGNAL(activated(int)), SLOT(cmd(int)));
+ connect(select, SIGNAL(activated(int)), SLOT(cmd(int)));
+
+ midiEdit = new Q3PopupMenu(this);
+ midiEdit->setCheckable(false);
+#if 0 // TODO
+ menu_ids[CMD_OPEN_MIDI_TRANSFORM] = midiEdit->insertItem(
+ QIcon(*midi_transformIcon), tr("Midi &Transform"), this, SLOT(startMidiTransformer()), 0);
+ 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
+ menu_ids[CMD_TRANSPOSE] = midiEdit->insertItem(
+ QIcon(*midi_transposeIcon), tr("Transpose"), this, SLOT(transpose()), 0);
+ menuEdit->insertItem(
+ QIcon(*edit_midiIcon), tr("Midi"), midiEdit);
+
+ menuEdit->insertSeparator();
+ menuEdit->insertItem(
+ QIcon(*edit_listIcon), tr("Song info"), this, SLOT(startSongInfo()), 0);
+ //-------------------------------------------------------------
+ // popup View
+ //-------------------------------------------------------------
+
+ menuView = new Q3PopupMenu(this);
+ menuView->setCheckable(true);
+ menuBar()->insertItem(tr("View"), menuView);
+
+ tr_id = menuView->insertItem(
+ QIcon(*view_transport_windowIcon), tr("Transport Panel"), this, SLOT(toggleTransport()), 0);
+ bt_id = menuView->insertItem(
+ QIcon(*view_bigtime_windowIcon), tr("Bigtime window"), this, SLOT(toggleBigTime()), 0);
+ //aid1 = menuView->insertItem(
+ // QIconSet(*mixerSIcon), tr("Mixer"), this, SLOT(toggleMixer()), 0);
+ aid1a = menuView->insertItem(
+ QIcon(*mixerSIcon), tr("Mixer A"), this, SLOT(toggleMixer1()), 0);
+ aid1b = menuView->insertItem(
+ QIcon(*mixerSIcon), tr("Mixer B"), this, SLOT(toggleMixer2()), 0);
+ // p3.2.24
+ aid2 = menuView->insertItem(
+ QIcon(*cliplistSIcon), tr("Cliplist"), this, SLOT(startClipList()), 0);
+ mr_id = menuView->insertItem(
+ QIcon(*view_markerIcon), tr("Marker View"), this, SLOT(toggleMarker()), 0);
+ //markerAction->addTo(menuView);
+
+
+ //-------------------------------------------------------------
+ // popup Structure
+ //-------------------------------------------------------------
+
+ menuStructure = new Q3PopupMenu(this);
+ menuStructure->setCheckable(false);
+ menuBar()->insertItem(tr("&Structure"), menuStructure);
+ menu_ids[CMD_GLOBAL_CUT] = menuStructure->insertItem(tr("Global Cut"), this, SLOT(globalCut()), 0);
+ menu_ids[CMD_GLOBAL_INSERT] = menuStructure->insertItem(tr("Global Insert"), this, SLOT(globalInsert()), 0);
+ menu_ids[CMD_GLOBAL_SPLIT] = menuStructure->insertItem(tr("Global Split"), this, SLOT(globalSplit()), 0);
+ menu_ids[CMD_COPY_RANGE] = menuStructure->insertItem(tr("Copy Range"), this, SLOT(copyRange()), 0);
+ menuStructure->setItemEnabled(menu_ids[CMD_COPY_RANGE], false);
+ menuStructure->insertSeparator();
+ menu_ids[CMD_CUT_EVENTS] = menuStructure->insertItem(tr("Cut Events"), this, SLOT(cutEvents()), 0);
+ menuStructure->setItemEnabled(menu_ids[CMD_CUT_EVENTS], false);
+
+ //-------------------------------------------------------------
+ // popup Midi
+ //-------------------------------------------------------------
+
+ midiInputPlugins = new Q3PopupMenu(this);
+ midiInputPlugins->setCheckable(false);
+ mpid0 = midiInputPlugins->insertItem(
+ QIcon(*midi_inputplugins_transposeIcon), tr("Transpose"), 0);
+ mpid1 = midiInputPlugins->insertItem(
+ QIcon(*midi_inputplugins_midi_input_transformIcon), tr("Midi Input Transform"), 1);
+ mpid2 = midiInputPlugins->insertItem(
+ QIcon(*midi_inputplugins_midi_input_filterIcon), tr("Midi Input Filter"), 2);
+ mpid3 = midiInputPlugins->insertItem(
+ QIcon(*midi_inputplugins_remote_controlIcon), tr("Midi Remote Control"), 3);
+/*
+** mpid4 = midiInputPlugins->insertItem(
+** QIconSet(*midi_inputplugins_random_rhythm_generatorIcon), tr("Random Rhythm Generator"), 4);
+*/
+ connect(midiInputPlugins, SIGNAL(activated(int)), SLOT(startMidiInputPlugin(int)));
+
+// midiInputPlugins->setItemEnabled(mpid4, false);
+
+ menu_functions = new Q3PopupMenu(this);
+ menu_functions->setCheckable(true);
+ menuBar()->insertItem(tr("&Midi"), menu_functions);
+ menu_functions->setCaption(tr("Midi"));
+
+ menuScriptPlugins = new Q3PopupMenu(this);
+ song->populateScriptMenu(menuScriptPlugins, this);
+ menu_functions->insertItem(tr("&Plugins"), menuScriptPlugins);
+
+ menu_ids[CMD_MIDI_EDIT_INSTRUMENTS] = menu_functions->insertItem(
+ QIcon(*midi_edit_instrumentIcon), tr("Edit Instrument"), this, SLOT(startEditInstrument()), 0);
+ menu_functions->insertItem(
+ QIcon(*midi_inputpluginsIcon), tr("Input Plugins"), midiInputPlugins, Qt::Key_P);
+ menu_functions->insertSeparator();
+ menu_ids[CMD_MIDI_RESET] = menu_functions->insertItem(
+ QIcon(*midi_reset_instrIcon), tr("Reset Instr."), this, SLOT(resetMidiDevices()), 0);
+ menu_ids[CMD_MIDI_INIT] = menu_functions->insertItem(
+ QIcon(*midi_init_instrIcon), tr("Init Instr."), this, SLOT(initMidiDevices()), 0);
+ menu_ids[CMD_MIDI_LOCAL_OFF] = menu_functions->insertItem(
+ QIcon(*midi_local_offIcon), tr("local off"), this, SLOT(localOff()), 0);
+
+ //-------------------------------------------------------------
+ // popup Audio
+ //-------------------------------------------------------------
+
+ menu_audio = new Q3PopupMenu(this);
+ menu_audio->setCheckable(true);
+ menuBar()->insertItem(tr("&Audio"), menu_audio);
+ menu_ids[CMD_AUDIO_BOUNCE_TO_TRACK] = menu_audio->insertItem(
+ QIcon(*audio_bounce_to_trackIcon), tr("Bounce to Track"), this, SLOT(bounceToTrack()), 0);
+ menu_ids[CMD_AUDIO_BOUNCE_TO_FILE] = menu_audio->insertItem(
+ QIcon(*audio_bounce_to_fileIcon), tr("Bounce to File"), this, SLOT(bounceToFile()), 0);
+ menu_audio->insertSeparator();
+ menu_ids[CMD_AUDIO_RESTART] = menu_audio->insertItem(
+ QIcon(*audio_restartaudioIcon), tr("Restart Audio"), this, SLOT(seqRestart()), 0);
+
+ //-------------------------------------------------------------
+ // popup Automation
+ //-------------------------------------------------------------
+
+ menuAutomation = new Q3PopupMenu(this);
+ menuAutomation->setCheckable(true);
+ menuBar()->insertItem(tr("Automation"), menuAutomation);
+ autoId = menuAutomation->insertItem(
+ QIcon(*automation_mixerIcon), tr("Mixer Automation"), this, SLOT(switchMixerAutomation()), 0);
+ menuAutomation->insertSeparator();
+ menu_ids[CMD_MIXER_SNAPSHOT] = menuAutomation->insertItem(
+ QIcon(*automation_take_snapshotIcon), tr("Take Snapshot"), this, SLOT(takeAutomationSnapshot()), 0);
+ menu_ids[CMD_MIXER_AUTOMATION_CLEAR] = menuAutomation->insertItem(
+ QIcon(*automation_clear_dataIcon), tr("Clear Automation Data"), this, SLOT(clearAutomation()), 0);
+ menuAutomation->setItemEnabled(menu_ids[CMD_MIXER_AUTOMATION_CLEAR], false);
+
+ //-------------------------------------------------------------
+ // popup Settings
+ //-------------------------------------------------------------
+
+ follow = new Q3PopupMenu(this);
+ follow->setCheckable(false);
+ fid0 = follow->insertItem(tr("dont follow Song"), CMD_FOLLOW_NO);
+ fid1 = follow->insertItem(tr("follow page"), CMD_FOLLOW_JUMP);
+ fid2 = follow->insertItem(tr("follow continuous"), CMD_FOLLOW_CONTINUOUS);
+ follow->setItemChecked(fid1, true);
+ connect(follow, SIGNAL(activated(int)), SLOT(cmd(int)));
+
+ menuSettings = new Q3PopupMenu(this);
+ menuSettings->setCheckable(false);
+ menuBar()->insertItem(tr("Settings"), menuSettings);
+ menu_ids[CMD_GLOBAL_CONFIG] = menuSettings->insertItem(
+ QIcon(*settings_globalsettingsIcon), tr("Global Settings"), this, SLOT(configGlobalSettings()),0);
+ menu_ids[CMD_CONFIG_SHORTCUTS] = menuSettings->insertItem(
+ QIcon(*settings_configureshortcutsIcon), tr("Configure shortcuts"), this, SLOT(configShortCuts()), 0);
+ menuSettings->insertItem(
+ QIcon(*settings_follow_songIcon), tr("follow song"), follow, Qt::Key_F);
+ menu_ids[CMD_CONFIG_METRONOME] = menuSettings->insertItem(
+ QIcon(*settings_metronomeIcon), tr("Metronome"), this, SLOT(configMetronome()), 0);
+ menuSettings->insertSeparator();
+ menu_ids[CMD_CONFIG_MIDISYNC] = menuSettings->insertItem(
+ QIcon(*settings_midisyncIcon), tr("Midi Sync"), this, SLOT(configMidiSync()), 0);
+ menu_ids[CMD_MIDI_FILE_CONFIG] = menuSettings->insertItem(
+ QIcon(*settings_midifileexportIcon), tr("Midi File Import/Export"), this, SLOT(configMidiFile()), 0);
+ menuSettings->insertSeparator();
+ menu_ids[CMD_APPEARANCE_SETTINGS] = menuSettings->insertItem(
+ QIcon(*settings_appearance_settingsIcon), tr("Appearance settings"), this, SLOT(configAppearance()), 0);
+ menuSettings->insertSeparator();
+ menu_ids[CMD_CONFIG_MIDI_PORTS] = menuSettings->insertItem(
+ QIcon(*settings_midiport_softsynthsIcon), tr("Midi Ports / Soft Synth"), this, SLOT(configMidiPorts()), 0);
+
+ //---------------------------------------------------
+ // popup Help
+ //---------------------------------------------------
+
+ menuBar()->insertSeparator();
+ menu_help = new Q3PopupMenu(this);
+ menu_help->setCheckable(false);
+ menuBar()->insertItem(tr("&Help"), menu_help);
+
+ menu_ids[CMD_OPEN_HELP] = menu_help->insertItem(tr("&Manual"), this, SLOT(startHelpBrowser()), 0);
+ menu_ids[CMD_OPEN_HOMEPAGE] = menu_help->insertItem(tr("&MusE homepage"), this, SLOT(startHomepageBrowser()), 0);
+ menu_help->insertSeparator();
+ menu_ids[CMD_OPEN_BUG] = menu_help->insertItem(tr("&Report Bug..."), this, SLOT(startBugBrowser()), 0);
+ menu_help->insertSeparator();
+ menu_help->insertItem(tr("&About MusE"), this, SLOT(about()));
+ //menu_help->insertItem(tr("About&Qt"), this, SLOT(aboutQt()));
+ //menu_help->insertSeparator();
+ //menu_ids[CMD_START_WHATSTHIS] = menu_help->insertItem(tr("What's &This?"), this, SLOT(whatsThis()), 0);
+
+ //---------------------------------------------------
+ // Central Widget
+ //---------------------------------------------------
+
+ arranger = new Arranger(this, "arranger");
+ setCentralWidget(arranger);
+
+ connect(tools1, SIGNAL(toolChanged(int)), arranger, SLOT(setTool(int)));
+ connect(arranger, SIGNAL(editPart(Track*)), SLOT(startEditor(Track*)));
+ connect(arranger, SIGNAL(dropSongFile(const QString&)), SLOT(loadProjectFile(const QString&)));
+ connect(arranger, SIGNAL(dropMidiFile(const QString&)), SLOT(importMidi(const QString&)));
+ connect(arranger, SIGNAL(startEditor(PartList*,int)), SLOT(startEditor(PartList*,int)));
+ connect(arranger, SIGNAL(toolChanged(int)), tools1, SLOT(set(int)));
+ connect(this, SIGNAL(configChanged()), arranger, SLOT(configChanged()));
+
+ connect(arranger, SIGNAL(setUsedTool(int)), SLOT(setUsedTool(int)));
+
+ //---------------------------------------------------
+ // read list of "Recent Projects"
+ //---------------------------------------------------
+
+ QString prjPath(getenv("HOME"));
+ prjPath += QString("/.musePrj");
+ FILE* f = fopen(prjPath.latin1(), "r");
+ if (f == 0) {
+ perror("open projectfile");
+ 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();
+
+ populateAddTrack(addTrack);
+
+ transport = new Transport(this, "transport");
+ bigtime = 0;
+
+ QClipboard* cb = QApplication::clipboard();
+ connect(cb, SIGNAL(dataChanged()), SLOT(clipboardChanged()));
+ connect(cb, SIGNAL(selectionChanged()), SLOT(clipboardChanged()));
+ connect(arranger, SIGNAL(selectionChanged()), SLOT(selectionChanged()));
+
+ //---------------------------------------------------
+ // load project
+ // if no songname entered on command line:
+ // startMode: 0 - load last song
+ // 1 - load default template
+ // 2 - load configured start song
+ //---------------------------------------------------
+
+ QString name;
+ bool useTemplate = false;
+ if (argc >= 2)
+ name = argv[0];
+ else if (config.startMode == 0) {
+ if (argc < 2)
+ name = projectList[0] ? *projectList[0] : QString("untitled");
+ else
+ name = argv[0];
+ printf("starting with selected song %s\n", config.startSong.latin1());
+ }
+ else if (config.startMode == 1) {
+ printf("starting with default template\n");
+ name = museGlobalShare + QString("/templates/default.med");
+ useTemplate = true;
+ }
+ else if (config.startMode == 2) {
+ printf("starting with pre configured song %s\n", config.startSong.latin1());
+ name = config.startSong;
+ }
+ song->blockSignals(false);
+ loadProjectFile(name, useTemplate, true);
+ changeConfig(false);
+
+ song->update();
+ }
+
+//---------------------------------------------------------
+// setHeartBeat
+//---------------------------------------------------------
+
+void MusE::setHeartBeat()
+ {
+ heartBeatTimer->start(1000/config.guiRefresh);
+ }
+
+//---------------------------------------------------------
+// resetDevices
+//---------------------------------------------------------
+
+void MusE::resetMidiDevices()
+ {
+ audio->msgResetMidiDevices();
+ }
+
+//---------------------------------------------------------
+// initMidiDevices
+//---------------------------------------------------------
+
+void MusE::initMidiDevices()
+ {
+ // Added by T356
+ //audio->msgIdle(true);
+
+ audio->msgInitMidiDevices();
+
+ // Added by T356
+ //audio->msgIdle(false);
+ }
+
+//---------------------------------------------------------
+// localOff
+//---------------------------------------------------------
+
+void MusE::localOff()
+ {
+ audio->msgLocalOff();
+ }
+
+//---------------------------------------------------------
+// loadProjectFile
+// load *.med, *.mid, *.kar
+//
+// template - if true, load file but do not change
+// project name
+//---------------------------------------------------------
+
+// for drop:
+void MusE::loadProjectFile(const QString& name)
+ {
+ loadProjectFile(name, false, false);
+ }
+
+void MusE::loadProjectFile(const QString& name, bool songTemplate, bool loadAll)
+ {
+ //
+ // stop audio threads if running
+ //
+ bool restartSequencer = audio->isRunning();
+ if (restartSequencer) {
+ if (audio->isPlaying()) {
+ audio->msgPlay(false);
+ while (audio->isPlaying())
+ qApp->processEvents();
+ }
+ seqStop();
+ }
+ microSleep(200000);
+ loadProjectFile1(name, songTemplate, loadAll);
+ microSleep(200000);
+ if (restartSequencer)
+ seqStart();
+
+ if (song->getSongInfo().length()>0)
+ startSongInfo(false);
+ }
+
+//---------------------------------------------------------
+// loadProjectFile
+// load *.med, *.mid, *.kar
+//
+// template - if true, load file but do not change
+// project name
+// loadAll - load song data + configuration data
+//---------------------------------------------------------
+
+void MusE::loadProjectFile1(const QString& name, bool songTemplate, bool loadAll)
+ {
+ //if (audioMixer)
+ // audioMixer->clear();
+ if (mixer1)
+ mixer1->clear();
+ if (mixer2)
+ mixer2->clear();
+ arranger->clear(); // clear track info
+ if (clearSong())
+ return;
+
+ QFileInfo fi(name);
+ if (songTemplate) {
+ if (!fi.isReadable()) {
+ QMessageBox::critical(this, QString("MusE"),
+ tr("Cannot read template"));
+ return;
+ }
+ project.setFile("untitled");
+ }
+ else {
+ printf("Setting project path to %s\n", fi.dirPath(true).latin1());
+ museProject = fi.dirPath(true);
+ project.setFile(name);
+ }
+ // Changed by T356. 01/19/2010. We want the complete extension here.
+ //QString ex = fi.extension(false).lower();
+ //if (ex.length() == 3)
+ // ex += ".";
+ //ex = ex.left(4);
+ QString ex = fi.extension(true).lower();
+ QString mex = ex.section('.', -1, -1);
+ if((mex == "gz") || (mex == "bz2"))
+ mex = ex.section('.', -2, -2);
+
+ //if (ex.isEmpty() || ex == "med.") {
+ if (ex.isEmpty() || mex == "med") {
+ //
+ // read *.med file
+ //
+ bool popenFlag;
+ FILE* f = fileOpen(this, fi.filePath(), QString(".med"), "r", popenFlag, true);
+ if (f == 0) {
+ if (errno != ENOENT) {
+ QMessageBox::critical(this, QString("MusE"),
+ tr("File open error"));
+ setUntitledProject();
+ }
+ else
+ setConfigDefaults();
+ }
+ else {
+ Xml xml(f);
+ read(xml, !loadAll);
+ bool fileError = ferror(f);
+ popenFlag ? pclose(f) : fclose(f);
+ if (fileError) {
+ QMessageBox::critical(this, QString("MusE"),
+ tr("File read error"));
+ setUntitledProject();
+ }
+ }
+ }
+ //else if (ex == "mid." || ex == "kar.") {
+ else if (mex == "mid" || mex == "kar") {
+ setConfigDefaults();
+ if (!importMidi(name, false))
+ setUntitledProject();
+ }
+ else {
+ QMessageBox::critical(this, QString("MusE"),
+ tr("Unknown File Format: ") + ex);
+ setUntitledProject();
+ }
+ if (!songTemplate) {
+ addProject(project.absFilePath());
+ setCaption(QString("MusE: Song: ") + project.baseName(true));
+ }
+ song->dirty = false;
+
+ menuView->setItemChecked(tr_id, config.transportVisible);
+ menuView->setItemChecked(bt_id, config.bigTimeVisible);
+ menuView->setItemChecked(mr_id, config.markerVisible);
+ menuAutomation->setItemChecked(autoId, automation);
+
+ if (loadAll) {
+ showBigtime(config.bigTimeVisible);
+ //showMixer(config.mixerVisible);
+ showMixer1(config.mixer1Visible);
+ showMixer2(config.mixer2Visible);
+
+ // Added p3.3.43 Make sure the geometry is correct because showMixerX() will NOT
+ // set the geometry if the mixer has already been created.
+ if(mixer1)
+ {
+ //if(mixer1->geometry().size() != config.mixer1.geometry.size()) // p3.3.53 Moved below
+ // mixer1->resize(config.mixer1.geometry.size());
+
+ if(mixer1->geometry().topLeft() != config.mixer1.geometry.topLeft())
+ mixer1->move(config.mixer1.geometry.topLeft());
+ }
+ if(mixer2)
+ {
+ //if(mixer2->geometry().size() != config.mixer2.geometry.size()) // p3.3.53 Moved below
+ // mixer2->resize(config.mixer2.geometry.size());
+
+ if(mixer2->geometry().topLeft() != config.mixer2.geometry.topLeft())
+ mixer2->move(config.mixer2.geometry.topLeft());
+ }
+
+ showMarker(config.markerVisible);
+ resize(config.geometryMain.size());
+ move(config.geometryMain.topLeft());
+
+ if (config.transportVisible)
+ transport->show();
+ transport->move(config.geometryTransport.topLeft());
+ showTransport(config.transportVisible);
+ }
+
+ transport->setMasterFlag(song->masterFlag());
+ punchinAction->setOn(song->punchin());
+ punchoutAction->setOn(song->punchout());
+ loopAction->setOn(song->loop());
+ song->update();
+ song->updatePos();
+ clipboardChanged(); // enable/disable "Paste"
+ selectionChanged(); // enable/disable "Copy" & "Paste"
+
+ // p3.3.53 Try this AFTER the song update above which does a mixer update... Tested OK - mixers resize properly now.
+ if (loadAll)
+ {
+ if(mixer1)
+ {
+ if(mixer1->geometry().size() != config.mixer1.geometry.size())
+ {
+ //printf("MusE::loadProjectFile1 resizing mixer1 x:%d y:%d w:%d h:%d\n", config.mixer1.geometry.x(),
+ // config.mixer1.geometry.y(),
+ // config.mixer1.geometry.width(),
+ // config.mixer1.geometry.height()
+ // );
+ mixer1->resize(config.mixer1.geometry.size());
+ }
+ }
+ if(mixer2)
+ {
+ if(mixer2->geometry().size() != config.mixer2.geometry.size())
+ {
+ //printf("MusE::loadProjectFile1 resizing mixer2 x:%d y:%d w:%d h:%d\n", config.mixer2.geometry.x(),
+ // config.mixer2.geometry.y(),
+ // config.mixer2.geometry.width(),
+ // config.mixer2.geometry.height()
+ // );
+ mixer2->resize(config.mixer2.geometry.size());
+ }
+ }
+ }
+
+ }
+
+//---------------------------------------------------------
+// setUntitledProject
+//---------------------------------------------------------
+
+void MusE::setUntitledProject()
+ {
+ setConfigDefaults();
+ QString name("untitled");
+ museProject = QFileInfo(name).dirPath(true);
+ project.setFile(name);
+ setCaption(tr("MusE: Song: ") + project.baseName(true));
+ }
+
+//---------------------------------------------------------
+// setConfigDefaults
+//---------------------------------------------------------
+
+void MusE::setConfigDefaults()
+ {
+ readConfiguration(); // used for reading midi files
+#if 0
+ if (readConfiguration()) {
+ //
+ // failed to load config file
+ // set buildin defaults
+ //
+ configTransportVisible = false;
+ configBigTimeVisible = false;
+
+ for (int channel = 0; channel < 2; ++channel)
+ song->addTrack(Track::AUDIO_GROUP);
+ AudioTrack* out = (AudioTrack*)song->addTrack(Track::AUDIO_OUTPUT);
+ AudioTrack* in = (AudioTrack*)song->addTrack(Track::AUDIO_INPUT);
+
+ // set some default routes
+ std::list<QString> il = audioDevice->inputPorts();
+ int channel = 0;
+ for (std::list<QString>::iterator i = il.begin(); i != il.end(); ++i, ++channel) {
+ if (channel == 2)
+ break;
+ audio->msgAddRoute(Route(out,channel), Route(*i,channel));
+ }
+ channel = 0;
+ std::list<QString> ol = audioDevice->outputPorts();
+ for (std::list<QString>::iterator i = ol.begin(); i != ol.end(); ++i, ++channel) {
+ if (channel == 2)
+ break;
+ audio->msgAddRoute(Route(*i, channel), Route(in,channel));
+ }
+ }
+#endif
+ song->dirty = false;
+ }
+
+//---------------------------------------------------------
+// setFollow
+//---------------------------------------------------------
+
+void MusE::setFollow()
+ {
+ Song::FollowMode fm = song->follow();
+ follow->setItemChecked(fid0, fm == Song::NO);
+ follow->setItemChecked(fid1, fm == Song::JUMP);
+ follow->setItemChecked(fid2, fm == Song::CONTINUOUS);
+ }
+
+//---------------------------------------------------------
+// MusE::loadProject
+//---------------------------------------------------------
+
+void MusE::loadProject()
+ {
+ bool loadAll;
+ QString fn = getOpenFileName(QString(""), med_file_pattern, this,
+ tr("MusE: load project"), &loadAll);
+ if (!fn.isEmpty()) {
+ museProject = QFileInfo(fn).dirPath(true);
+ loadProjectFile(fn, false, loadAll);
+ }
+ }
+
+//---------------------------------------------------------
+// loadTemplate
+//---------------------------------------------------------
+
+void MusE::loadTemplate()
+ {
+ QString fn = getOpenFileName(QString("templates"), med_file_pattern, this,
+ tr("MusE: load template"), 0);
+ if (!fn.isEmpty()) {
+ // museProject = QFileInfo(fn).dirPath(true);
+ loadProjectFile(fn, true, true);
+ setUntitledProject();
+ }
+ }
+
+//---------------------------------------------------------
+// save
+//---------------------------------------------------------
+
+bool MusE::save()
+ {
+ if (project.baseName(true) == "untitled")
+ return saveAs();
+ else
+ return save(project.filePath(), false);
+ }
+
+//---------------------------------------------------------
+// save
+//---------------------------------------------------------
+
+bool MusE::save(const QString& name, bool overwriteWarn)
+ {
+ QString backupCommand;
+
+ // By T356. Cache the jack in/out route names BEFORE saving.
+ // Because jack often shuts down during save, causing the routes to be lost in the file.
+ // Not required any more...
+ //cacheJackRouteNames();
+
+ if (QFile::exists(name)) {
+ backupCommand.sprintf("cp \"%s\" \"%s.backup\"", name.latin1(), name.latin1());
+ }
+ else if (QFile::exists(name + QString(".med"))) {
+ backupCommand.sprintf("cp \"%s.med\" \"%s.med.backup\"", name.latin1(), name.latin1());
+ }
+ if (!backupCommand.isEmpty())
+ system(backupCommand.latin1());
+
+ bool popenFlag;
+ FILE* f = fileOpen(this, name, QString(".med"), "w", popenFlag, false, overwriteWarn);
+ if (f == 0)
+ return false;
+ Xml xml(f);
+ write(xml);
+ if (ferror(f)) {
+ QString s = "Write File\n" + name + "\nfailed: "
+ + strerror(errno);
+ QMessageBox::critical(this,
+ tr("MusE: Write File failed"), s);
+ popenFlag? pclose(f) : fclose(f);
+ unlink(name.latin1());
+ return false;
+ }
+ else {
+ popenFlag? pclose(f) : fclose(f);
+ song->dirty = false;
+ return true;
+ }
+ }
+
+//---------------------------------------------------------
+// quitDoc
+//---------------------------------------------------------
+
+void MusE::quitDoc()
+ {
+ close(true);
+ }
+
+//---------------------------------------------------------
+// closeEvent
+//---------------------------------------------------------
+
+void MusE::closeEvent(QCloseEvent*)
+ {
+ song->setStop(true);
+ //
+ // wait for sequencer
+ //
+ while (audio->isPlaying()) {
+ qApp->processEvents();
+ }
+ 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("&Skip"), tr("&Abort"), 0, 2);
+ if (n == 0) {
+ if (!save()) // dont quit if save failed
+ return;
+ }
+ else if (n == 2)
+ return;
+ }
+ seqStop();
+
+ WaveTrackList* wt = song->waves();
+ for (iWaveTrack iwt = wt->begin(); iwt != wt->end(); ++iwt) {
+ WaveTrack* t = *iwt;
+ if (t->recFile() && t->recFile()->samples() == 0) {
+ t->recFile()->remove();
+ }
+ }
+
+ // save "Open Recent" list
+ QString prjPath(getenv("HOME"));
+ prjPath += "/.musePrj";
+ FILE* f = fopen(prjPath.latin1(), "w");
+ if (f) {
+ for (int i = 0; i < PROJECT_LIST_LEN; ++i) {
+ fprintf(f, "%s\n", projectList[i] ? projectList[i]->latin1() : "");
+ }
+ fclose(f);
+ }
+ if(debugMsg)
+ printf("Muse: Exiting JackAudio\n");
+ exitJackAudio();
+ if(debugMsg)
+ printf("Muse: Exiting DummyAudio\n");
+ exitDummyAudio();
+ if(debugMsg)
+ printf("Muse: Exiting Metronome\n");
+ exitMetronome();
+
+ // p3.3.47
+ // Make sure to clear the menu, which deletes any sub menus.
+ if(routingPopupMenu)
+ routingPopupMenu->clear();
+
+ // Changed by Tim. p3.3.14
+ //SynthIList* sl = song->syntis();
+ //for (iSynthI i = sl->begin(); i != sl->end(); ++i)
+ // delete *i;
+ song->cleanupForQuit();
+
+ if(debugMsg)
+ printf("Muse: Cleaning up temporary wavefiles + peakfiles\n");
+ // 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(true) + ".wca");
+ }
+
+ // Added by Tim. p3.3.14
+
+#ifdef HAVE_LASH
+ // Disconnect gracefully from LASH.
+ if(lash_client)
+ {
+ if(debugMsg)
+ printf("Muse: Disconnecting from LASH\n");
+ lash_event_t* lashev = lash_event_new_with_type (LASH_Quit);
+ lash_send_event(lash_client, lashev);
+ }
+#endif
+
+ if(debugMsg)
+ printf("Muse: Exiting Dsp\n");
+ AL::exitDsp();
+
+ if(debugMsg)
+ printf("Muse: Exiting OSC\n");
+ exitOSC();
+
+ // p3.3.47
+ delete audioPrefetch;
+ delete audio;
+ delete midiSeq;
+ delete song;
+
+ qApp->quit();
+ }
+
+//---------------------------------------------------------
+// toggleMarker
+//---------------------------------------------------------
+
+void MusE::toggleMarker()
+ {
+ showMarker(!menuView->isItemChecked(mr_id));
+ }
+
+//---------------------------------------------------------
+// showMarker
+//---------------------------------------------------------
+
+void MusE::showMarker(bool flag)
+ {
+ //printf("showMarker %d\n",flag);
+ if (markerView == 0) {
+ markerView = new MarkerView(this);
+
+ // Removed p3.3.43
+ // Song::addMarker() already emits a 'markerChanged'.
+ //connect(arranger, SIGNAL(addMarker(int)), markerView, SLOT(addMarker(int)));
+
+ connect(markerView, SIGNAL(closed()), SLOT(markerClosed()));
+ toplevels.push_back(Toplevel(Toplevel::MARKER, (unsigned long)(markerView), markerView));
+ markerView->show();
+ }
+
+ markerView->setShown(flag);
+ menuView->setItemChecked(mr_id, flag);
+ }
+
+//---------------------------------------------------------
+// markerClosed
+//---------------------------------------------------------
+
+void MusE::markerClosed()
+ {
+ menuView->setItemChecked(mr_id, false);
+ }
+
+//---------------------------------------------------------
+// toggleTransport
+//---------------------------------------------------------
+
+void MusE::toggleTransport()
+ {
+ showTransport(!menuView->isItemChecked(tr_id));
+ }
+
+//---------------------------------------------------------
+// showTransport
+//---------------------------------------------------------
+
+void MusE::showTransport(bool flag)
+ {
+ transport->setShown(flag);
+ menuView->setItemChecked(tr_id, flag);
+ }
+
+//---------------------------------------------------------
+// getRoutingPopupMenu
+//---------------------------------------------------------
+
+PopupMenu* MusE::getRoutingPopupMenu()
+{
+ if(!routingPopupMenu)
+ routingPopupMenu = new PopupMenu(this);
+ return routingPopupMenu;
+}
+
+//---------------------------------------------------------
+// updateRouteMenus
+//---------------------------------------------------------
+
+//void MusE::updateRouteMenus(Track* track)
+void MusE::updateRouteMenus(Track* track, QObject* master) // p3.3.50
+{
+ //if(!track || track != gRoutingPopupMenuMaster || track->type() == Track::AUDIO_AUX)
+ //if(!track || track->type() == Track::AUDIO_AUX)
+ if(!track || gRoutingPopupMenuMaster != master) // p3.3.50
+ return;
+
+ //QPopupMenu* pup = muse->getORoutesPopup();
+ PopupMenu* pup = getRoutingPopupMenu();
+
+ if(pup->count() == 0)
+ return;
+
+ //AudioTrack* t = (AudioTrack*)track;
+ RouteList* rl = gIsOutRoutingPopupMenu ? track->outRoutes() : track->inRoutes();
+
+ /*
+ iRoute iorl = orl->begin();
+ for(; iorl != orl->end(); ++iorl)
+ {
+ iRouteMenuMap imm = ormm->begin();
+ for(; imm != ormm->end(); ++imm)
+ {
+ if(*iorl == imm->second)
+ {
+ orpup->setItemChecked(imm->first, true);
+ break;
+ }
+ }
+ //if(imm == ormm->end())
+ //{
+ //}
+
+ }
+ //if (iorl == orl->end())
+ //{
+ //}
+ */
+
+ iRouteMenuMap imm = gRoutingMenuMap.begin();
+ for(; imm != gRoutingMenuMap.end(); ++imm)
+ {
+ // p3.3.50 Ignore the 'toggle' items.
+ if(imm->second.type == Route::MIDI_PORT_ROUTE &&
+ imm->first >= (MIDI_PORTS * MIDI_CHANNELS) && imm->first < (MIDI_PORTS * MIDI_CHANNELS + MIDI_PORTS))
+ continue;
+
+ //bool found = false;
+ iRoute irl = rl->begin();
+ for(; irl != rl->end(); ++irl)
+ {
+ if(imm->second.type == Route::MIDI_PORT_ROUTE) // p3.3.50 Is the map route a midi port route?
+ {
+ if(irl->type == Route::MIDI_PORT_ROUTE && irl->midiPort == imm->second.midiPort // Is the track route a midi port route?
+ && (irl->channel & imm->second.channel) == imm->second.channel) // Is the exact channel mask bit(s) set?
+ {
+ //found = true;
+ break;
+ }
+ }
+ else
+ if(*irl == imm->second)
+ {
+ //found = true;
+ break;
+ }
+ }
+ //pup->setItemChecked(imm->first, found);
+ pup->setItemChecked(imm->first, irl != rl->end());
+ }
+
+
+ return;
+}
+
+//---------------------------------------------------------
+// routingPopupMenuActivated
+//---------------------------------------------------------
+
+void MusE::routingPopupMenuActivated(Track* track, int n)
+{
+ //if(!track || (track != gRoutingPopupMenuMaster))
+ if(!track)
+ return;
+
+ if(track->isMidiTrack())
+ {
+ PopupMenu* pup = getRoutingPopupMenu();
+
+ //printf("MusE::routingPopupMenuActivated midi n:%d count:%d\n", n, pup->count());
+
+ if(pup->count() == 0)
+ return;
+
+ //MidiTrack* t = (MidiTrack*)track;
+ RouteList* rl = gIsOutRoutingPopupMenu ? track->outRoutes() : track->inRoutes();
+
+ if(n == -1)
+ {
+ //printf("MusE::routingPopupMenuActivated midi n = -1\n");
+ ///delete pup;
+ ///pup = 0;
+ return;
+ }
+ else
+ {
+ //int mdidx = n / MIDI_CHANNELS;
+ //int ch = n % MIDI_CHANNELS;
+ //int chbit = 1 << ch; // p3.3.50
+ //int chmask = 0;
+
+ //if(n >= MIDI_PORTS * MIDI_CHANNELS) // p3.3.50 Toggle channels.
+ //{
+ //for (int i = 0; i < MIDI_CHANNELS; i++)
+ //muse->routingPopupMenuActivated(selected, i + MIDI_CHANNELS * (n-1000));
+ //muse->routingPopupMenuActivated(selected, i + MIDI_CHANNELS * (n - MIDI_PORTS * MIDI_CHANNELS)); // p3.3.50
+ // chbit = (1 << MIDI_CHANNELS) - 1;
+ //}
+ //if(debugMsg)
+ //printf("MusE::routingPopupMenuActivated mdidx:%d ch:%d\n", mdidx, ch);
+
+ // p3.3.50
+ iRouteMenuMap imm = gRoutingMenuMap.find(n);
+ if(imm == gRoutingMenuMap.end())
+ return;
+ if(imm->second.type != Route::MIDI_PORT_ROUTE)
+ return;
+ Route &aRoute = imm->second;
+ int chbit = aRoute.channel;
+ Route bRoute(track, chbit);
+ int mdidx = aRoute.midiPort;
+
+ MidiPort* mp = &midiPorts[mdidx];
+ MidiDevice* md = mp->device();
+ if(!md)
+ {
+ ///delete pup;
+ return;
+ }
+
+ //if(!(md->rwFlags() & 2))
+ if(!(md->rwFlags() & (gIsOutRoutingPopupMenu ? 1 : 2)))
+ {
+ ///delete pup;
+ return;
+ }
+
+ //QString s(pup->text(n));
+ //QT_TR_NOOP(md->name())
+
+ //Route srcRoute(s, false, -1);
+
+ //Route aRoute(md, ch);
+ //Route aRoute(mdidx, ch); // p3.3.49
+ //Route aRoute(mdidx, chbit); // p3.3.50 In accordance with new channel mask, use the bit position.
+
+ //Route srcRoute(md, -1);
+ //Route dstRoute(track, -1);
+ //Route bRoute(track, ch);
+ //Route bRoute(track, chbit); // p3.3.50
+
+ //if (track->type() == Track::AUDIO_INPUT)
+ // srcRoute.channel = dstRoute.channel = n & 0xf;
+
+ int chmask = 0;
+ iRoute iir = rl->begin();
+ for (; iir != rl->end(); ++iir)
+ {
+ //if(*iir == (dst ? bRoute : aRoute))
+ //if(*iir == aRoute)
+ if(iir->type == Route::MIDI_PORT_ROUTE && iir->midiPort == mdidx) // p3.3.50 Is there already a route to this port?
+ {
+ chmask = iir->channel; // p3.3.50 Grab the channel mask.
+ break;
+ }
+ }
+ //if (iir != rl->end())
+ if ((chmask & chbit) == chbit) // p3.3.50 Is the channel's bit(s) set?
+ {
+ // disconnect
+ if(gIsOutRoutingPopupMenu)
+ {
+ //printf("MusE::routingPopupMenuActivated removing route src track name: %s dst device name: %s\n", track->name().latin1(), md->name().latin1());
+ audio->msgRemoveRoute(bRoute, aRoute);
+ }
+ else
+ {
+ //printf("MusE::routingPopupMenuActivated removing route src device name: %s dst track name: %s\n", md->name().latin1(), track->name().latin1());
+ audio->msgRemoveRoute(aRoute, bRoute);
+ }
+ }
+ else
+ {
+ // connect
+ if(gIsOutRoutingPopupMenu)
+ {
+ //printf("MusE::routingPopupMenuActivated adding route src track name: %s dst device name: %s\n", track->name().latin1(), md->name().latin1());
+ audio->msgAddRoute(bRoute, aRoute);
+ }
+ else
+ {
+ //printf("MusE::routingPopupMenuActivated adding route src device name: %s dst track name: %s\n", md->name().latin1(), track->name().latin1());
+ audio->msgAddRoute(aRoute, bRoute);
+ }
+ }
+
+ //printf("MusE::routingPopupMenuActivated calling msgUpdateSoloStates\n");
+ audio->msgUpdateSoloStates();
+ //printf("MusE::routingPopupMenuActivated calling song->update\n");
+ song->update(SC_ROUTE);
+ }
+ }
+ else
+ {
+ // TODO: Try to move code from AudioStrip::routingPopupMenuActivated into here.
+
+ /*
+ PopupMenu* pup = getRoutingPopupMenu();
+
+ printf("MusE::routingPopupMenuActivated audio n:%d count:%d\n", n, pup->count());
+
+ if(pup->count() == 0)
+ return;
+
+ AudioTrack* t = (AudioTrack*)track;
+ RouteList* rl = gIsOutRoutingPopupMenu ? t->outRoutes() : t->inRoutes();
+
+ //QPoint ppt = QCursor::pos();
+
+ if(n == -1)
+ {
+ //printf("MusE::routingPopupMenuActivated audio n = -1 deleting popup...\n");
+ printf("MusE::routingPopupMenuActivated audio n = -1\n");
+ ///delete pup;
+ ///pup = 0;
+ return;
+ }
+ else
+ //if(n == 0)
+ //{
+ //printf("MusE::routingPopupMenuActivated audio n = 0 = tearOffHandle\n");
+ //oR->setDown(false);
+ // return;
+ //}
+ //else
+ {
+ if(gIsOutRoutingPopupMenu)
+ {
+ QString s(pup->text(n));
+
+ //printf("AudioStrip::routingPopupMenuActivated audio text:%s\n", s.latin1());
+
+ if(track->type() == Track::AUDIO_OUTPUT)
+ {
+ ///delete orpup;
+
+ int chan = n & 0xf;
+
+ //Route srcRoute(t, -1);
+ //Route srcRoute(t, chan, chans);
+ //Route srcRoute(t, chan, 1);
+ Route srcRoute(t, chan);
+
+ //Route dstRoute(s, true, -1);
+ Route dstRoute(s, true, -1, Route::JACK_ROUTE);
+ //Route dstRoute(s, true, 0, Route::JACK_ROUTE);
+
+ //srcRoute.channel = dstRoute.channel = chan;
+ dstRoute.channel = chan;
+ //dstRoute.channels = 1;
+
+ // check if route src->dst exists:
+ iRoute irl = rl->begin();
+ for (; irl != rl->end(); ++irl) {
+ if (*irl == dstRoute)
+ break;
+ }
+ if (irl != rl->end()) {
+ // disconnect if route exists
+ audio->msgRemoveRoute(srcRoute, dstRoute);
+ }
+ else {
+ // connect if route does not exist
+ audio->msgAddRoute(srcRoute, dstRoute);
+ }
+ audio->msgUpdateSoloStates();
+ song->update(SC_ROUTE);
+
+ // p3.3.47
+ //pup->popup(ppt, 0);
+
+ //oR->setDown(false);
+ return;
+
+ // p3.3.46
+ ///goto _redisplay;
+ }
+
+ iRouteMenuMap imm = gRoutingMenuMap.find(n);
+ if(imm == gRoutingMenuMap.end())
+ {
+ ///delete orpup;
+ //oR->setDown(false); // orpup->exec() catches mouse release event
+ return;
+ }
+
+ //int chan = n >> 16;
+ //int chans = (chan >> 15) + 1; // Bit 31 MSB: Mono or stereo.
+ //chan &= 0xffff;
+ //int chan = imm->second.channel;
+ //int chans = imm->second.channels;
+
+ //Route srcRoute(t, -1);
+ //srcRoute.remoteChannel = chan;
+ //Route srcRoute(t, chan, chans);
+ Route srcRoute(t, imm->second.channel, imm->second.channels);
+ //Route srcRoute(t, imm->second.channel);
+ srcRoute.remoteChannel = imm->second.remoteChannel;
+
+ //Route dstRoute(s, true, -1);
+ //Route dstRoute(s, true, -1, Route::TRACK_ROUTE);
+ Route &dstRoute = imm->second;
+
+ // check if route src->dst exists:
+ iRoute irl = rl->begin();
+ for (; irl != rl->end(); ++irl) {
+ if (*irl == dstRoute)
+ break;
+ }
+ if (irl != rl->end()) {
+ // disconnect if route exists
+ audio->msgRemoveRoute(srcRoute, dstRoute);
+ }
+ else {
+ // connect if route does not exist
+ audio->msgAddRoute(srcRoute, dstRoute);
+ }
+ audio->msgUpdateSoloStates();
+ song->update(SC_ROUTE);
+
+ // p3.3.46
+ //oR->setDown(false);
+ ///goto _redisplay;
+
+ // p3.3.47
+ //pup->popup(ppt, 0);
+ }
+ else
+ {
+ QString s(pup->text(n));
+
+ if(track->type() == Track::AUDIO_INPUT)
+ {
+ ///delete pup;
+ int chan = n & 0xf;
+
+ Route srcRoute(s, false, -1, Route::JACK_ROUTE);
+ Route dstRoute(t, chan);
+
+ srcRoute.channel = chan;
+
+ iRoute irl = rl->begin();
+ for(; irl != rl->end(); ++irl)
+ {
+ if(*irl == srcRoute)
+ break;
+ }
+ if(irl != rl->end())
+ // disconnect
+ audio->msgRemoveRoute(srcRoute, dstRoute);
+ else
+ // connect
+ audio->msgAddRoute(srcRoute, dstRoute);
+
+ audio->msgUpdateSoloStates();
+ song->update(SC_ROUTE);
+ //iR->setDown(false); // pup->exec() catches mouse release event
+ return;
+
+ // p3.3.46
+ ///goto _redisplay;
+ }
+
+ iRouteMenuMap imm = gRoutingMenuMap.find(n);
+ if(imm == gRoutingMenuMap.end())
+ {
+ //delete pup;
+ //iR->setDown(false); // pup->exec() catches mouse release event
+ return;
+ }
+
+ //int chan = n >> 16;
+ //int chans = (chan >> 15) + 1; // Bit 31 MSB: Mono or stereo.
+ //chan &= 0xffff;
+ //int chan = imm->second.channel;
+ //int chans = imm->second.channels;
+
+ //Route srcRoute(s, false, -1);
+ //Route srcRoute(s, false, -1, Route::TRACK_ROUTE);
+ Route &srcRoute = imm->second;
+
+ //Route dstRoute(t, -1);
+ //Route dstRoute(t, chan, chans);
+ Route dstRoute(t, imm->second.channel, imm->second.channels);
+ //Route dstRoute(t, imm->second.channel);
+ dstRoute.remoteChannel = imm->second.remoteChannel;
+
+ iRoute irl = rl->begin();
+ for (; irl != rl->end(); ++irl) {
+ if (*irl == srcRoute)
+ break;
+ }
+ if (irl != rl->end()) {
+ // disconnect
+ audio->msgRemoveRoute(srcRoute, dstRoute);
+ }
+ else {
+ // connect
+ audio->msgAddRoute(srcRoute, dstRoute);
+ }
+ audio->msgUpdateSoloStates();
+ song->update(SC_ROUTE);
+
+ // p3.3.46
+ //iR->setDown(false);
+ ///goto _redisplay;
+
+
+
+
+ }
+
+ }
+ */
+
+ }
+ //else
+ //{
+ //}
+
+ ///delete pup;
+ //oR->setDown(false);
+}
+
+//---------------------------------------------------------
+// routingPopupMenuAboutToHide
+//---------------------------------------------------------
+
+void MusE::routingPopupMenuAboutToHide()
+{
+ // p3.3.47
+ //printf("MusE::routingPopupMenuAboutToHide\n");
+ //if(track)
+ // printf("%s", track->name().latin1());
+ //printf("\n");
+
+ // Hmm, can't do this? Sub-menus stay open with this. Re-arranged, testing... Nope.
+ //PopupMenu* pup = muse->getRoutingPopupMenu();
+ //pup->disconnect();
+ //pup->clear();
+ gRoutingMenuMap.clear();
+ gRoutingPopupMenuMaster = 0;
+}
+
+//---------------------------------------------------------
+// prepareRoutingPopupMenu
+//---------------------------------------------------------
+
+PopupMenu* MusE::prepareRoutingPopupMenu(Track* track, bool dst)
+{
+ if(!track)
+ return 0;
+
+ //QPoint ppt = QCursor::pos();
+
+ if(track->isMidiTrack())
+ {
+
+ //QPoint ppt = parent->rect().bottomLeft();
+
+ //if(dst)
+ //{
+ // TODO
+
+ //}
+ //else
+ //{
+ RouteList* rl = dst ? track->outRoutes() : track->inRoutes();
+ //Route dst(track, -1);
+
+ ///QPopupMenu* pup = new QPopupMenu(parent);
+
+ PopupMenu* pup = getRoutingPopupMenu();
+ pup->disconnect();
+ //connect(pup, SIGNAL(activated(int)), SLOT(routingPopupMenuActivated(int)));
+ //connect(pup, SIGNAL(aboutToHide()), SLOT(routingPopupMenuAboutToHide()));
+
+ pup->setCheckable(true);
+
+ int gid = 0;
+ //int n;
+
+ // Routes can't be re-read until the message sent from msgAddRoute1()
+ // has had time to be sent and actually affected the routes.
+ ///_redisplay:
+
+ pup->clear();
+ gRoutingMenuMap.clear();
+ gid = 0;
+
+ //MidiInPortList* tl = song->midiInPorts();
+ //for(iMidiInPort i = tl->begin();i != tl->end(); ++i)
+ for(int i = 0; i < MIDI_PORTS; ++i)
+ {
+ //MidiInPort* track = *i;
+ // NOTE: Could possibly list all devices, bypassing ports, but no, let's stick with ports.
+ MidiPort* mp = &midiPorts[i];
+ MidiDevice* md = mp->device();
+ if(!md)
+ continue;
+
+ if(!(md->rwFlags() & (dst ? 1 : 2)))
+ continue;
+
+ //printf("MusE::prepareRoutingPopupMenu adding submenu portnum:%d\n", i);
+
+ //QMenu* m = menu->addMenu(track->name());
+ //QPopupMenu* subp = new QPopupMenu(parent);
+ //PopupMenu* subp = new PopupMenu(this);
+ PopupMenu* subp = new PopupMenu();
+ connect(subp, SIGNAL(activated(int)), pup, SIGNAL(activated(int)));
+ //connect(subp, SIGNAL(aboutToHide()), pup, SIGNAL(aboutToHide()));
+
+ int chanmask = 0;
+ // p3.3.50 To reduce number of routes required, from one per channel to just one containing a channel mask.
+ // Look for the first route to this midi port. There should always be only a single route for each midi port, now.
+ for(iRoute ir = rl->begin(); ir != rl->end(); ++ir)
+ {
+ if(ir->type == Route::MIDI_PORT_ROUTE && ir->midiPort == i)
+ {
+ // We have a route to the midi port. Grab the channel mask.
+ chanmask = ir->channel;
+ break;
+ }
+ }
+
+ for(int ch = 0; ch < MIDI_CHANNELS; ++ch)
+ {
+ //QAction* a = m->addAction(QString("Channel %1").arg(ch+1));
+ //subp->insertItem(QT_TR_NOOP(QString("Channel %1").arg(ch+1)), i * MIDI_CHANNELS + ch);
+ gid = i * MIDI_CHANNELS + ch;
+
+ //printf("MusE::prepareRoutingPopupMenu inserting gid:%d\n", gid);
+
+ subp->insertItem(QString("Channel %1").arg(ch+1), gid);
+ //a->setCheckable(true);
+ //Route src(track, ch, RouteNode::TRACK);
+ //Route src(md, ch);
+ //Route r = Route(src, dst);
+ //a->setData(QVariant::fromValue(r));
+ //a->setChecked(rl->indexOf(r) != -1);
+
+ //Route srcRoute(md, ch);
+ //Route srcRoute(i, ch); // p3.3.49 New: Midi port route.
+ int chbit = 1 << ch;
+ Route srcRoute(i, chbit); // p3.3.50 In accordance with new channel mask, use the bit position.
+
+ gRoutingMenuMap.insert( pRouteMenuMap(gid, srcRoute) );
+
+ //for(iRoute ir = rl->begin(); ir != rl->end(); ++ir) // p3.3.50 Removed.
+ //{
+ //if(*ir == dst)
+ // if(*ir == srcRoute)
+ // {
+ // subp->setItemChecked(id, true);
+ // break;
+ // }
+ //}
+ if(chanmask & chbit) // p3.3.50 Is the channel already set? Show item check mark.
+ subp->setItemChecked(gid, true);
+ }
+ //subp->insertItem(QString("Toggle all"), 1000+i);
+ // p3.3.50 One route with all channel bits set.
+ gid = MIDI_PORTS * MIDI_CHANNELS + i; // Make sure each 'toggle' item gets a unique id.
+ subp->insertItem(QString("Toggle all"), gid);
+ Route togRoute(i, (1 << MIDI_CHANNELS) - 1); // Set all channel bits.
+ gRoutingMenuMap.insert( pRouteMenuMap(gid, togRoute) );
+
+ pup->insertItem(QT_TR_NOOP(md->name()), subp);
+ }
+
+ /*
+ QPopupMenu* pup = new QPopupMenu(iR);
+ pup->setCheckable(true);
+ //MidiTrack* t = (MidiTrack*)track;
+ RouteList* irl = track->inRoutes();
+
+ MidiTrack* t = (MidiTrack*)track;
+ int gid = 0;
+ for (int i = 0; i < channel; ++i)
+ {
+ char buffer[128];
+ snprintf(buffer, 128, "%s %d", tr("Channel").latin1(), i+1);
+ MenuTitleItem* titel = new MenuTitleItem(QString(buffer));
+ pup->insertItem(titel);
+
+ if (!checkAudioDevice()) return;
+ std::list<QString> ol = audioDevice->outputPorts();
+ for (std::list<QString>::iterator ip = ol.begin(); ip != ol.end(); ++ip) {
+ int id = pup->insertItem(*ip, (gid * 16) + i);
+ Route dst(*ip, true, i);
+ ++gid;
+ for (iRoute ir = irl->begin(); ir != irl->end(); ++ir) {
+ if (*ir == dst) {
+ pup->setItemChecked(id, true);
+ break;
+ }
+ }
+ }
+ if (i+1 != channel)
+ pup->insertSeparator();
+ }
+ */
+
+ if(pup->count() == 0)
+ {
+ ///delete pup;
+ gRoutingPopupMenuMaster = 0;
+ //pup->clear();
+ //pup->disconnect();
+ gRoutingMenuMap.clear();
+ //oR->setDown(false);
+ return 0;
+ }
+
+ gIsOutRoutingPopupMenu = dst;
+ return pup;
+ }
+
+ return 0;
+}
+
+//---------------------------------------------------------
+// saveAs
+//---------------------------------------------------------
+
+bool MusE::saveAs()
+ {
+// QString name = getSaveFileName(museProject, med_file_pattern, this,
+// QString name = getSaveFileName(QString(""), med_file_pattern, this,
+ QString name = getSaveFileName(QString(""), med_file_save_pattern, this,
+ tr("MusE: Save As"));
+ bool ok = false;
+ if (!name.isEmpty()) {
+ QString tempOldProj = museProject;
+ museProject = QFileInfo(name).dirPath(true);
+ ok = save(name, true);
+ if (ok) {
+ project.setFile(name);
+ setCaption(tr("MusE: Song: ") + project.baseName(true));
+ addProject(name);
+ }
+ else
+ museProject = tempOldProj;
+ }
+
+ return ok;
+ }
+
+//---------------------------------------------------------
+// printVersion
+//---------------------------------------------------------
+
+static void printVersion(const char* prog)
+ {
+ fprintf(stderr, "%s: Linux Music Editor; Version %s, (svn revision %s)\n", prog, VERSION, SVNVERSION);
+ }
+
+//---------------------------------------------------------
+// startEditor
+//---------------------------------------------------------
+
+void MusE::startEditor(PartList* pl, int type)
+ {
+ switch (type) {
+ case 0: startPianoroll(pl); break;
+ case 1: startListEditor(pl); break;
+ case 3: startDrumEditor(pl); break;
+ case 4: startWaveEditor(pl); break;
+ }
+ }
+
+//---------------------------------------------------------
+// startEditor
+//---------------------------------------------------------
+
+void MusE::startEditor(Track* t)
+ {
+ switch (t->type()) {
+ case Track::MIDI: startPianoroll(); break;
+ case Track::DRUM: startDrumEditor(); break;
+ case Track::WAVE: startWaveEditor(); break;
+ default:
+ break;
+ }
+ }
+
+//---------------------------------------------------------
+// getMidiPartsToEdit
+//---------------------------------------------------------
+
+PartList* MusE::getMidiPartsToEdit()
+ {
+ PartList* pl = song->getSelectedMidiParts();
+ if (pl->empty()) {
+ QMessageBox::critical(this, QString("MusE"), tr("Nothing to edit"));
+ 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, this, 0, arranger->cursorValue());
+ pianoroll->show();
+ toplevels.push_back(Toplevel(Toplevel::PIANO_ROLL, (unsigned long)(pianoroll), pianoroll));
+ connect(pianoroll, SIGNAL(deleted(unsigned long)), SLOT(toplevelDeleted(unsigned long)));
+ connect(muse, SIGNAL(configChanged()), pianoroll, SLOT(configChanged()));
+ }
+
+//---------------------------------------------------------
+// startListenEditor
+//---------------------------------------------------------
+
+void MusE::startListEditor()
+ {
+ PartList* pl = getMidiPartsToEdit();
+ if (pl == 0)
+ return;
+ startListEditor(pl);
+ }
+
+void MusE::startListEditor(PartList* pl)
+ {
+ ListEdit* listEditor = new ListEdit(pl);
+ listEditor->show();
+ toplevels.push_back(Toplevel(Toplevel::LISTE, (unsigned long)(listEditor), listEditor));
+ connect(listEditor, SIGNAL(deleted(unsigned long)), SLOT(toplevelDeleted(unsigned long)));
+ connect(muse,SIGNAL(configChanged()), listEditor, SLOT(configChanged()));
+ }
+
+//---------------------------------------------------------
+// startMasterEditor
+//---------------------------------------------------------
+
+void MusE::startMasterEditor()
+ {
+ MasterEdit* masterEditor = new MasterEdit();
+ masterEditor->show();
+ toplevels.push_back(Toplevel(Toplevel::MASTER, (unsigned long)(masterEditor), masterEditor));
+ connect(masterEditor, SIGNAL(deleted(unsigned long)), SLOT(toplevelDeleted(unsigned long)));
+ }
+
+//---------------------------------------------------------
+// startLMasterEditor
+//---------------------------------------------------------
+
+void MusE::startLMasterEditor()
+ {
+ LMaster* lmaster = new LMaster();
+ lmaster->show();
+ toplevels.push_back(Toplevel(Toplevel::LMASTER, (unsigned long)(lmaster), lmaster));
+ connect(lmaster, SIGNAL(deleted(unsigned long)), SLOT(toplevelDeleted(unsigned long)));
+ connect(muse, SIGNAL(configChanged()), lmaster, SLOT(configChanged()));
+ }
+
+//---------------------------------------------------------
+// startDrumEditor
+//---------------------------------------------------------
+
+void MusE::startDrumEditor()
+ {
+ PartList* pl = getMidiPartsToEdit();
+ if (pl == 0)
+ return;
+ startDrumEditor(pl);
+ }
+
+void MusE::startDrumEditor(PartList* pl)
+ {
+
+ DrumEdit* drumEditor = new DrumEdit(pl, this, 0, arranger->cursorValue());
+ drumEditor->show();
+ toplevels.push_back(Toplevel(Toplevel::DRUM, (unsigned long)(drumEditor), drumEditor));
+ connect(drumEditor, SIGNAL(deleted(unsigned long)), SLOT(toplevelDeleted(unsigned long)));
+ 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"));
+ return;
+ }
+ startWaveEditor(pl);
+ }
+
+void MusE::startWaveEditor(PartList* pl)
+ {
+ WaveEdit* waveEditor = new WaveEdit(pl);
+ waveEditor->show();
+ connect(muse, SIGNAL(configChanged()), waveEditor, SLOT(configChanged()));
+ toplevels.push_back(Toplevel(Toplevel::WAVE, (unsigned long)(waveEditor), waveEditor));
+ connect(waveEditor, SIGNAL(deleted(unsigned long)), SLOT(toplevelDeleted(unsigned long)));
+ }
+
+
+//---------------------------------------------------------
+// startSongInfo
+//---------------------------------------------------------
+void MusE::startSongInfo(bool editable)
+ {
+ printf("startSongInfo!!!!\n");
+ SongInfo info;
+ info.songInfoText->setText(song->getSongInfo());
+ info.songInfoText->setReadOnly(!editable);
+ info.show();
+ if( info.exec() == QDialog::Accepted) {
+ if (editable)
+ song->setSongInfo(info.songInfoText->text());
+ }
+
+ }
+
+//---------------------------------------------------------
+// showDidYouKnowDialog
+//---------------------------------------------------------
+void MusE::showDidYouKnowDialog()
+ {
+ if ((bool)config.showDidYouKnow == true) {
+ printf("show did you know dialog!!!!\n");
+ DidYouKnow dyk;
+ dyk.tipText->setText("To get started with MusE why don't you try some demo songs available at http://demos.muse-sequencer.org/");
+ dyk.show();
+ if( dyk.exec()) {
+ if (dyk.dontShowCheckBox->isChecked()) {
+ printf("disables dialog!\n");
+ config.showDidYouKnow=false;
+ muse->changeConfig(true); // save settings
+ }
+ }
+ }
+ }
+//---------------------------------------------------------
+// startDefineController
+//---------------------------------------------------------
+
+
+//---------------------------------------------------------
+// startClipList
+//---------------------------------------------------------
+
+void MusE::startClipList()
+ {
+ if (clipListEdit == 0) {
+ clipListEdit = new ClipListEdit();
+ toplevels.push_back(Toplevel(Toplevel::CLIPLIST, (unsigned long)(clipListEdit), clipListEdit));
+ connect(clipListEdit, SIGNAL(deleted(unsigned long)), SLOT(toplevelDeleted(unsigned long)));
+ }
+ clipListEdit->show();
+ menu_audio->setItemChecked(aid2, true);
+ }
+
+//---------------------------------------------------------
+// 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]->latin1();
+ const char* p = strrchr(path, '/');
+ if (p == 0)
+ p = path;
+ else
+ ++p;
+ openRecent->insertItem(QString(p), i);
+ }
+ }
+
+//---------------------------------------------------------
+// selectProject
+//---------------------------------------------------------
+
+void MusE::selectProject(int id)
+ {
+ if (id < 0)
+ return;
+ assert(id < PROJECT_LIST_LEN);
+ QString* name = projectList[id];
+ if (name == 0)
+ return;
+ loadProjectFile(*name, false, true);
+ }
+
+//---------------------------------------------------------
+// toplevelDeleted
+//---------------------------------------------------------
+
+void MusE::toplevelDeleted(unsigned long tl)
+ {
+ for (iToplevel i = toplevels.begin(); i != toplevels.end(); ++i) {
+ if (i->object() == tl) {
+ switch(i->type()) {
+ case Toplevel::MARKER:
+ break;
+ case Toplevel::CLIPLIST:
+ menu_audio->setItemChecked(aid2, false);
+ return;
+ // the followin editors can exist in more than
+ // one instantiation:
+ case Toplevel::PIANO_ROLL:
+ case Toplevel::LISTE:
+ case Toplevel::DRUM:
+ case Toplevel::MASTER:
+ case Toplevel::WAVE:
+ case Toplevel::LMASTER:
+ break;
+ }
+ toplevels.erase(i);
+ return;
+ }
+ }
+ printf("topLevelDeleted: top level %lx not found\n", tl);
+ //assert(false);
+ }
+
+//---------------------------------------------------------
+// ctrlChanged
+// midi ctrl value changed
+//---------------------------------------------------------
+
+#if 0
+void MusE::ctrlChanged()
+ {
+ arranger->updateInspector();
+ }
+#endif
+
+//---------------------------------------------------------
+// kbAccel
+//---------------------------------------------------------
+
+void MusE::kbAccel(int key)
+ {
+ if (key == shortcuts[SHRT_TOGGLE_METRO].key) {
+ song->setClick(!song->click());
+ }
+ else if (key == shortcuts[SHRT_PLAY_TOGGLE].key) {
+ if (audio->isPlaying())
+ //song->setStopPlay(false);
+ song->setStop(true);
+ else if (!config.useOldStyleStopShortCut)
+ song->setPlay(true);
+ else if (song->cpos() != song->lpos())
+ song->setPos(0, song->lPos());
+ else {
+ Pos p(0, true);
+ song->setPos(0, p);
+ }
+ }
+ else if (key == shortcuts[SHRT_STOP].key) {
+ //song->setPlay(false);
+ song->setStop(true);
+ }
+ else if (key == shortcuts[SHRT_GOTO_START].key) {
+ Pos p(0, true);
+ song->setPos(0, p);
+ }
+ else if (key == shortcuts[SHRT_PLAY_SONG].key ) {
+ song->setPlay(true);
+ }
+ else if (key == shortcuts[SHRT_GOTO_LEFT].key) {
+ if (!song->record())
+ song->setPos(0, song->lPos());
+ }
+ else if (key == shortcuts[SHRT_GOTO_RIGHT].key) {
+ if (!song->record())
+ song->setPos(0, song->rPos());
+ }
+ else if (key == shortcuts[SHRT_TOGGLE_LOOP].key) {
+ song->setLoop(!song->loop());
+ }
+ else if (key == shortcuts[SHRT_START_REC].key) {
+ if (!audio->isPlaying()) {
+ song->setRecord(!song->record());
+ }
+ }
+ else if (key == shortcuts[SHRT_REC_CLEAR].key) {
+ if (!audio->isPlaying()) {
+ song->clearTrackRec();
+ }
+ }
+ else if (key == shortcuts[SHRT_OPEN_TRANSPORT].key) {
+ toggleTransport();
+ }
+ else if (key == shortcuts[SHRT_OPEN_BIGTIME].key) {
+ toggleBigTime();
+ }
+ //else if (key == shortcuts[SHRT_OPEN_MIXER].key) {
+ // toggleMixer();
+ // }
+ else if (key == shortcuts[SHRT_OPEN_MIXER].key) {
+ toggleMixer1();
+ }
+ else if (key == shortcuts[SHRT_OPEN_MIXER2].key) {
+ toggleMixer2();
+ }
+ else if (key == shortcuts[SHRT_NEXT_MARKER].key) {
+ if (markerView)
+ markerView->nextMarker();
+ }
+ else if (key == shortcuts[SHRT_PREV_MARKER].key) {
+ if (markerView)
+ markerView->prevMarker();
+ }
+ else {
+ if (debugMsg)
+ printf("unknown kbAccel 0x%x\n", key);
+ }
+ }
+
+//---------------------------------------------------------
+// MuseApplication
+//---------------------------------------------------------
+
+class MuseApplication : public QApplication {
+ MusE* muse;
+
+ public:
+ MuseApplication(int& argc, char** argv)
+ : QApplication(argc, argv)
+ {
+ muse = 0;
+ }
+
+
+ void setMuse(MusE* m) {
+ muse = m;
+#ifdef HAVE_LASH
+ if(useLASH)
+ startTimer (300);
+#endif
+ }
+
+ bool notify(QObject* receiver, QEvent* event) {
+ bool flag = QApplication::notify(receiver, event);
+ if (event->type() == QEvent::KeyPress) {
+ QKeyEvent* ke = (QKeyEvent*)event;
+ globalKeyState = ke->stateAfter();
+ bool accepted = ke->isAccepted();
+ if (!accepted) {
+ int key = ke->key();
+ if (ke->state() & Qt::ShiftModifier)
+ key += Qt::SHIFT;
+ if (ke->state() & Qt::AltModifier)
+ key += Qt::ALT;
+ if (ke->state() & Qt::ControlModifier)
+ key+= Qt::CTRL;
+ muse->kbAccel(key);
+ return true;
+ }
+ }
+ if (event->type() == QEvent::KeyRelease) {
+ QKeyEvent* ke = (QKeyEvent*)event;
+ globalKeyState = ke->stateAfter();
+ }
+
+ return flag;
+ }
+
+#ifdef HAVE_LASH
+ virtual void timerEvent (QTimerEvent * /* e */) {
+ if(useLASH)
+ muse->lash_idle_cb ();
+ }
+#endif /* HAVE_LASH */
+
+ };
+
+//---------------------------------------------------------
+// usage
+//---------------------------------------------------------
+
+static void usage(const char* prog, const char* txt)
+ {
+ fprintf(stderr, "%s: %s\nusage: %s flags midifile\n Flags:\n",
+ prog, txt, prog);
+ fprintf(stderr, " -h this help\n");
+ fprintf(stderr, " -v print version\n");
+ fprintf(stderr, " -d debug mode: no threads, no RT\n");
+ fprintf(stderr, " -D debug mode: enable some debug messages\n");
+ fprintf(stderr, " -m debug mode: trace midi Input\n");
+ fprintf(stderr, " -M debug mode: trace midi Output\n");
+ fprintf(stderr, " -s debug mode: trace sync\n");
+ fprintf(stderr, " -a no audio\n");
+ //fprintf(stderr, " -P n set real time priority to n (default: 50)\n");
+ fprintf(stderr, " -P n set audio driver real time priority to n (Dummy only, default 40. Else fixed by Jack.)\n");
+ fprintf(stderr, " -Y n force midi real time priority to n (default: audio driver prio +2)\n");
+ fprintf(stderr, " -p don't load LADSPA plugins\n");
+#ifdef ENABLE_PYTHON
+ fprintf(stderr, " -y enable Python control support\n");
+#endif
+#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
+#ifdef HAVE_LASH
+ fprintf(stderr, " -L don't use LASH\n");
+#endif
+ fprintf(stderr, "useful environment variables:\n");
+ fprintf(stderr, " MUSE override library and shared directories location\n");
+ fprintf(stderr, " MUSEHOME override user home directory (HOME/)\n");
+ fprintf(stderr, " MUSEINSTRUMENTS override user instrument directory (MUSEHOME/muse_instruments)\n");
+ }
+
+//---------------------------------------------------------
+// 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
+
+//---------------------------------------------------------
+// main
+//---------------------------------------------------------
+
+int main(int argc, char* argv[])
+ {
+
+// error = ErrorHandler::create(argv[0]);
+ ruid = getuid();
+ euid = geteuid();
+ undoSetuid();
+ getCapabilities();
+ int noAudio = false;
+
+ const char* mu = getenv("MUSEHOME");
+ if(mu)
+ museUser = QString(mu);
+ if(museUser.isEmpty())
+ museUser = QString(getenv("HOME"));
+
+ QString museGlobal;
+ const char* p = getenv("MUSE");
+ if (p)
+ museGlobal = p;
+
+ if (museGlobal.isEmpty()) {
+ QString museGlobal(INSTPREFIX);
+ QString museGlobalLibDir(INSTLIBDIR);
+ museGlobalLib = museGlobalLibDir + "/muse";
+ museGlobalShare = museGlobal + "/share/muse";
+ }
+ else {
+ museGlobalLib = museGlobal + "/lib";
+ museGlobalShare = museGlobal + "/share";
+ }
+ museProject = museProjectInitPath; //getcwd(0, 0);
+ configName = QString(getenv("HOME")) + QString("/.MusE");
+
+ museInstruments = museGlobalShare + QString("/instruments");
+
+ const char* ins = getenv("MUSEINSTRUMENTS");
+ if(ins)
+ museUserInstruments = QString(ins);
+ if(museUserInstruments.isEmpty())
+ museUserInstruments = museUser + QString("/muse_instruments");
+
+#ifdef HAVE_LASH
+ lash_args_t * lash_args = 0;
+ if(useLASH)
+ lash_args = lash_extract_args (&argc, &argv);
+#endif
+
+ srand(time(0)); // initialize random number generator
+// signal(SIGCHLD, catchSignal); // interferes with initVST()
+ initMidiController();
+ QApplication::setColorSpec(QApplication::ManyColor);
+ MuseApplication app(argc, argv);
+
+ initShortCuts();
+ readConfiguration();
+
+ if (config.useDenormalBias)
+ printf("Denormal protection enabled.\n");
+ // SHOW MUSE SPLASH SCREEN
+ if (config.showSplashScreen) {
+ QPixmap splsh(museGlobalShare + "/splash.png");
+
+ if (!splsh.isNull()) {
+ QSplashScreen* muse_splash = new QSplashScreen(splsh,
+ Qt::WStyle_StaysOnTop | Qt::WDestructiveClose);
+ muse_splash->show();
+ QTimer* stimer = new QTimer(0);
+ muse_splash->connect(stimer, SIGNAL(timeout()), muse_splash, SLOT(close()));
+ stimer->start(6000, true);
+ }
+ }
+ int i;
+
+ QString optstr("ahvdDmMsP:Y:py");
+#ifdef VST_SUPPORT
+ optstr += QString("V");
+#endif
+#ifdef DSSI_SUPPORT
+ optstr += QString("I");
+#endif
+#ifdef HAVE_LASH
+ optstr += QString("L");
+#endif
+
+//#ifdef VST_SUPPORT
+// while ((i = getopt(argc, argv, "ahvdDmMsVP:py")) != EOF) {
+//#else
+// while ((i = getopt(argc, argv, "ahvdDmMsP:py")) != EOF) {
+//#endif
+
+ while ((i = getopt(argc, argv, optstr.latin1())) != EOF) {
+ char c = (char)i;
+ switch (c) {
+ case 'v': printVersion(argv[0]); return 0;
+ case 'd':
+ debugMode = true;
+ realTimeScheduling = false;
+ break;
+ case 'a':
+ noAudio = true;
+ break;
+ case 'D': debugMsg = true; break;
+ case 'm': midiInputTrace = true; break;
+ case 'M': midiOutputTrace = true; break;
+ case 's': debugSync = true; break;
+ case 'P': realTimePriority = atoi(optarg); break;
+ case 'Y': midiRTPrioOverride = atoi(optarg); break;
+ case 'p': loadPlugins = false; break;
+ case 'V': loadVST = false; break;
+ case 'I': loadDSSI = false; break;
+ case 'L': useLASH = false; break;
+ case 'y': usePythonBridge = true; break;
+ case 'h': usage(argv[0], argv[1]); return -1;
+ default: usage(argv[0], "bad argument"); return -1;
+ }
+ }
+
+ AL::initDsp();
+
+ if (debugMsg)
+ printf("Start euid: %d ruid: %d, Now euid %d\n",
+ euid, ruid, geteuid());
+ if (debugMode) {
+ initDummyAudio();
+ realTimeScheduling = false;
+ }
+ else if (noAudio) {
+ initDummyAudio();
+ realTimeScheduling = true;
+ //if (debugMode) { // ??
+ // realTimeScheduling = false;
+ // }
+ }
+ else if (initJackAudio()) {
+ if (!debugMode)
+ {
+ QMessageBox::critical(NULL, "MusE fatal error", "MusE <b>failed</b> to find a <b>Jack audio server</b>.<br><br>"
+ "<i>MusE will continue without audio support (-a switch)!</i><br><br>"
+ "If this was not intended check that Jack was started. "
+ "If Jack <i>was</i> started check that it was\n"
+ "started as the same user as MusE.\n");
+
+ initDummyAudio();
+ noAudio = true;
+ realTimeScheduling = true;
+ if (debugMode) {
+ realTimeScheduling = false;
+ }
+ }
+ 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");
+ initDummyAudio();
+ //realTimeScheduling = audioDevice->isRealtime();
+ }
+ realTimeScheduling = true;
+ }
+ else
+ realTimeScheduling = audioDevice->isRealtime();
+
+ useJackTransport.setValue(true);
+ // setup the prefetch fifo length now that the segmentSize is known
+ // Changed by Tim. p3.3.17
+ // Changed to 4 *, JUST FOR TEST!!!
+ fifoLength = 131072/segmentSize;
+ //fifoLength = (131072/segmentSize) * 4;
+
+
+ argc -= optind;
+ ++argc;
+
+ if (debugMsg) {
+ printf("global lib: <%s>\n", museGlobalLib.latin1());
+ printf("global share: <%s>\n", museGlobalShare.latin1());
+ printf("muse home: <%s>\n", museUser.latin1());
+ printf("project dir: <%s>\n", museProject.latin1());
+ printf("user instruments: <%s>\n", museUserInstruments.latin1());
+ }
+
+ static QTranslator translator(0);
+ QString locale(QTextCodec::locale());
+ if (locale != "C") {
+ QString loc("muse_");
+ loc += QString(QTextCodec::locale());
+ if (translator.load(loc, QString(".")) == false) {
+ QString lp(museGlobalShare);
+ lp += QString("/locale");
+ if (translator.load(loc, lp) == false) {
+ printf("no locale <%s>/<%s>\n", loc.latin1(), lp.latin1());
+ }
+ }
+ app.installTranslator(&translator);
+ }
+
+ if (locale == "de") {
+ printf("locale de\n");
+ hIsB = false;
+ }
+
+ if (loadPlugins)
+ initPlugins();
+
+ if (loadVST)
+ initVST();
+
+ if(loadDSSI)
+ initDSSI();
+
+ // p3.3.39
+ initOSC();
+
+ initIcons();
+
+ initMetronome();
+ //QApplication::clipboard()->setSelectionMode(false); ddskrjo
+
+ QApplication::addLibraryPath(museGlobalLib + "/qtplugins");
+ if (debugMsg) {
+ QStringList list = app.libraryPaths();
+ QStringList::Iterator it = list.begin();
+ printf("QtLibraryPath:\n");
+ while(it != list.end()) {
+ printf(" <%s>\n", (*it).latin1());
+ ++it;
+ }
+ }
+
+ muse = new MusE(argc, &argv[optind]);
+ app.setMuse(muse);
+ muse->setIcon(*museIcon);
+ // Added by Tim. p3.3.22
+ if (!debugMode) {
+ if (mlockall(MCL_CURRENT | MCL_FUTURE))
+ perror("WARNING: Cannot lock memory:");
+ }
+
+ muse->show();
+ muse->seqStart();
+
+#ifdef HAVE_LASH
+ {
+ if(useLASH)
+ {
+ int lash_flags = LASH_Config_File;
+ const char *muse_name = PACKAGE_NAME;
+ lash_client = lash_init (lash_args, muse_name, lash_flags, LASH_PROTOCOL(2,0));
+ lash_alsa_client_id (lash_client, snd_seq_client_id (alsaSeq));
+ if (!noAudio) {
+ // p3.3.38
+ //char *jack_name = ((JackAudioDevice*)audioDevice)->getJackName();
+ const char *jack_name = audioDevice->clientName();
+ lash_jack_client_name (lash_client, jack_name);
+ }
+ }
+ }
+#endif /* HAVE_LASH */
+ QTimer::singleShot(100, muse, SLOT(showDidYouKnowDialog()));
+
+ return app.exec();
+ // p3.3.47
+ //int rv = app.exec();
+ // FIXME: Can't do, seg fault at MarkerView::~MarkerView()
+ // due to already deleted undoRedo.
+ //delete muse;
+ //return rv;
+
+ }
+
+#if 0
+//---------------------------------------------------------
+// configPart
+//---------------------------------------------------------
+
+void MusE::configPart(int id)
+ {
+ if (id < 3) {
+ partConfig->setItemChecked(0, id == 0);
+ partConfig->setItemChecked(1, id == 1);
+ partConfig->setItemChecked(2, id == 2);
+ arranger->setShowPartType(id);
+ for (int i = 3; i < 10; ++i) {
+ partConfig->setItemEnabled(i, id == 2);
+ }
+ }
+ else {
+ bool flag = !partConfig->isItemChecked(id);
+ partConfig->setItemChecked(id, flag);
+ int val = arranger->showPartEvent();
+ if (flag) {
+ val |= 1 << (id-3);
+ }
+ else {
+ val &= ~(1 << (id-3));
+ }
+ arranger->setShowPartEvent(val);
+ }
+ }
+#endif
+
+//---------------------------------------------------------
+// cmd
+// some cmd's from pulldown menu
+//---------------------------------------------------------
+
+void MusE::cmd(int cmd)
+ {
+ TrackList* tracks = song->tracks();
+ int l = song->lpos();
+ int r = song->rpos();
+
+ switch(cmd) {
+ case CMD_CUT:
+ arranger->cmd(Arranger::CMD_CUT_PART);
+ break;
+ case CMD_COPY:
+ arranger->cmd(Arranger::CMD_COPY_PART);
+ break;
+ case CMD_PASTE:
+ arranger->cmd(Arranger::CMD_PASTE_PART);
+ break;
+ case CMD_PASTE_CLONE:
+ arranger->cmd(Arranger::CMD_PASTE_CLONE_PART);
+ break;
+ case CMD_PASTE_TO_TRACK:
+ arranger->cmd(Arranger::CMD_PASTE_PART_TO_TRACK);
+ break;
+ case CMD_PASTE_CLONE_TO_TRACK:
+ arranger->cmd(Arranger::CMD_PASTE_CLONE_PART_TO_TRACK);
+ break;
+ case CMD_INSERT:
+ arranger->cmd(Arranger::CMD_INSERT_PART);
+ break;
+ case CMD_INSERTMEAS:
+ arranger->cmd(Arranger::CMD_INSERT_EMPTYMEAS);
+ break;
+ case CMD_DELETE:
+ song->startUndo();
+ if (song->msgRemoveParts()) {
+ song->endUndo(SC_PART_REMOVED);
+ break;
+ }
+ else
+ audio->msgRemoveTracks();
+ song->endUndo(SC_TRACK_REMOVED);
+ break;
+ case CMD_DELETE_TRACK:
+ song->startUndo();
+ audio->msgRemoveTracks();
+ song->endUndo(SC_TRACK_REMOVED);
+ audio->msgUpdateSoloStates();
+ break;
+
+ case CMD_SELECT_ALL:
+ case CMD_SELECT_NONE:
+ case CMD_SELECT_INVERT:
+ case CMD_SELECT_ILOOP:
+ case CMD_SELECT_OLOOP:
+ 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));
+ switch(cmd) {
+ case CMD_SELECT_INVERT:
+ f = !p->second->selected();
+ break;
+ case CMD_SELECT_NONE:
+ f = false;
+ break;
+ case CMD_SELECT_ALL:
+ f = true;
+ break;
+ case CMD_SELECT_ILOOP:
+ f = inside;
+ break;
+ case CMD_SELECT_OLOOP:
+ f = !inside;
+ break;
+ }
+ p->second->setSelected(f);
+ }
+ }
+ song->update();
+ break;
+
+ case CMD_SELECT_PARTS:
+ 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();
+ break;
+ case CMD_FOLLOW_NO:
+ song->setFollow(Song::NO);
+ setFollow();
+ break;
+ case CMD_FOLLOW_JUMP:
+ song->setFollow(Song::JUMP);
+ setFollow();
+ break;
+ case CMD_FOLLOW_CONTINUOUS:
+ song->setFollow(Song::CONTINUOUS);
+ setFollow();
+ break;
+ }
+ }
+
+//---------------------------------------------------------
+// clipboardChanged
+//---------------------------------------------------------
+
+void MusE::clipboardChanged()
+ {
+ Q3CString subtype("partlist");
+ QMimeSource* ms = QApplication::clipboard()->data(QClipboard::Clipboard);
+ if (ms == 0)
+ return;
+ bool flag = false;
+ for (int i = 0; ms->format(i); ++i) {
+// printf("Format <%s\n", ms->format(i));
+ if ((strncmp(ms->format(i), "text/midipartlist", 17) == 0)
+ || (strncmp(ms->format(i), "text/wavepartlist", 17) == 0)
+ // Added by T356. Support mixed .mpt files.
+ || (strncmp(ms->format(i), "text/mixedpartlist", 18) == 0)) {
+ flag = true;
+ break;
+ }
+ }
+ menuEdit->setItemEnabled(CMD_PASTE, flag);
+ menuEdit->setItemEnabled(CMD_INSERT, flag);
+ menuEdit->setItemEnabled(CMD_PASTE_CLONE, flag);
+ menuEdit->setItemEnabled(CMD_PASTE_TO_TRACK, flag);
+ menuEdit->setItemEnabled(CMD_PASTE_CLONE_TO_TRACK, flag);
+ }
+
+//---------------------------------------------------------
+// selectionChanged
+//---------------------------------------------------------
+
+void MusE::selectionChanged()
+ {
+ bool flag = arranger->isSingleSelection();
+ menuEdit->setItemEnabled(CMD_CUT, flag);
+ //menuEdit->setItemEnabled(CMD_COPY, flag); // Now possible
+ }
+
+//---------------------------------------------------------
+// transpose
+//---------------------------------------------------------
+
+void MusE::transpose()
+ {
+ Transpose *w = new Transpose();
+ w->show();
+ }
+
+//---------------------------------------------------------
+// modifyGateTime
+//---------------------------------------------------------
+
+void MusE::modifyGateTime()
+ {
+ 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();
+ if(appearance->isVisible()) {
+ appearance->raise();
+ appearance->setActiveWindow();
+ }
+ else
+ appearance->show();
+ }
+
+//---------------------------------------------------------
+// loadTheme
+//---------------------------------------------------------
+
+void MusE::loadTheme(QString s)
+ {
+ if (style()->name() != s)
+ QApplication::setStyle(s);
+ }
+
+//---------------------------------------------------------
+// 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();
+ loadTheme(config.style);
+ QApplication::setFont(config.fonts[0], true);
+ // Added by Tim. p3.3.6
+ //printf("MusE::changeConfig writeFlag:%d emitting configChanged\n", writeFlag);
+
+ emit configChanged();
+ updateConfiguration();
+ }
+
+//---------------------------------------------------------
+// configMetronome
+//---------------------------------------------------------
+
+void MusE::configMetronome()
+ {
+ if (!metronomeConfig)
+ metronomeConfig = new MetronomeConfig(this, "metronome");
+
+ if(metronomeConfig->isVisible()) {
+ metronomeConfig->raise();
+ metronomeConfig->setActiveWindow();
+ }
+ else
+ metronomeConfig->show();
+ }
+
+
+//---------------------------------------------------------
+// configShortCuts
+//---------------------------------------------------------
+
+void MusE::configShortCuts()
+ {
+ if (!shortcutConfig)
+ shortcutConfig = new ShortcutConfig(this, "shortcutconfig");
+ 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();
+ TrackList* tracks = song->tracks();
+ for (iTrack it = tracks->begin(); it != tracks->end(); ++it) {
+ MidiTrack* track = dynamic_cast<MidiTrack*>(*it);
+ if (track == 0 || 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)) {
+ audio->msgRemovePart(part, false);
+ }
+ else if ((t < lpos) && ((t+l) > lpos) && ((t+l) <= rpos)) {
+ // remove part tail
+ int len = lpos - t;
+ MidiPart* nPart = new MidiPart(*(MidiPart*)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;
+ // Indicate no undo, and do not do port controller values and clone parts.
+ //audio->msgDeleteEvent(i->second, nPart, false);
+ audio->msgDeleteEvent(i->second, nPart, false, false, false);
+ }
+ // Indicate no undo, and do port controller values and clone parts.
+ //audio->msgChangePart(part, nPart, false);
+ audio->msgChangePart(part, nPart, false, true, true);
+ }
+ else if ((t < lpos) && ((t+l) > lpos) && ((t+l) > rpos)) {
+ //----------------------
+ // remove part middle
+ //----------------------
+
+ MidiPart* nPart = new MidiPart(*(MidiPart*)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;
+ // Indicate no undo, and do not do port controller values and clone parts.
+ //audio->msgDeleteEvent(ii->second, nPart, false);
+ audio->msgDeleteEvent(ii->second, nPart, false, false, 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));
+ // Indicate no undo, and do not do port controller values and clone parts.
+ //audio->msgChangeEvent(event, nEvent, nPart, false);
+ audio->msgChangeEvent(event, nEvent, nPart, false, false, false);
+ }
+ nPart->setLenTick(l - (rpos-lpos));
+ // Indicate no undo, and do port controller values and clone parts.
+ //audio->msgChangePart(part, nPart, false);
+ audio->msgChangePart(part, nPart, false, true, true);
+ }
+ else if ((t >= lpos) && (t < rpos) && (t+l) > rpos) {
+ // TODO: remove part head
+ }
+ else if (t >= rpos) {
+ MidiPart* nPart = new MidiPart(*(MidiPart*)part);
+ int nt = part->tick();
+ nPart->setTick(nt - (rpos -lpos));
+ // Indicate no undo, and do port controller values but not clone parts.
+ //audio->msgChangePart(part, nPart, false);
+ audio->msgChangePart(part, nPart, false, true, false);
+ }
+ }
+ }
+ // 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();
+ TrackList* tracks = song->tracks();
+ for (iTrack it = tracks->begin(); it != tracks->end(); ++it) {
+ MidiTrack* track = dynamic_cast<MidiTrack*>(*it);
+ //
+ // process only non muted midi tracks
+ //
+ if (track == 0 || 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)) {
+ MidiPart* nPart = new MidiPart(*(MidiPart*)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));
+ // Indicate no undo, and do not do port controller values and clone parts.
+ //audio->msgChangeEvent(event, nEvent, nPart, false);
+ audio->msgChangeEvent(event, nEvent, nPart, false, false, false);
+ }
+ // Indicate no undo, and do port controller values and clone parts.
+ //audio->msgChangePart(part, nPart, false);
+ audio->msgChangePart(part, nPart, false, true, true);
+ }
+ else if (t > lpos) {
+ MidiPart* nPart = new MidiPart(*(MidiPart*)part);
+ nPart->setTick(t + (rpos -lpos));
+ // Indicate no undo, and do port controller values but not clone parts.
+ //audio->msgChangePart(part, nPart, false);
+ audio->msgChangePart(part, nPart, false, true, false);
+ }
+ }
+ }
+ // 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);
+ // Indicate no undo, and do port controller values but not clone parts.
+ //audio->msgChangePart(part, p1, false);
+ audio->msgChangePart(part, p1, false, true, false);
+ audio->msgAddPart(p2, false);
+ 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;
+ }
+
+#if 0
+//---------------------------------------------------------
+// openAudioFileManagement
+//---------------------------------------------------------
+void MusE::openAudioFileManagement()
+ {
+ if (!audioFileManager) {
+ audioFileManager = new AudioFileManager(this, "audiofilemanager", false);
+ audioFileManager->show();
+ }
+ audioFileManager->setShown(true);
+ }
+#endif
+//---------------------------------------------------------
+// bounceToTrack
+//---------------------------------------------------------
+
+void MusE::bounceToTrack()
+ {
+ if(audio->bounce())
+ return;
+
+ song->bounceOutput = 0;
+
+ if(song->waves()->empty())
+ {
+ QMessageBox::critical(this,
+ tr("MusE: Bounce to Track"),
+ tr("No wave tracks found")
+ );
+ return;
+ }
+
+ OutputList* ol = song->outputs();
+ if(ol->empty())
+ {
+ QMessageBox::critical(this,
+ tr("MusE: Bounce to Track"),
+ tr("No audio output tracks found")
+ );
+ return;
+ }
+
+ if(checkRegionNotNull())
+ return;
+
+ AudioOutput* out = 0;
+ // If only one output, pick it, else pick the first selected.
+ if(ol->size() == 1)
+ out = ol->front();
+ else
+ {
+ for(iAudioOutput iao = ol->begin(); iao != ol->end(); ++iao)
+ {
+ AudioOutput* o = *iao;
+ if(o->selected())
+ {
+ if(out)
+ {
+ out = 0;
+ break;
+ }
+ out = o;
+ }
+ }
+ if(!out)
+ {
+ QMessageBox::critical(this,
+ tr("MusE: Bounce to Track"),
+ tr("Select one audio output track,\nand one target wave track")
+ );
+ 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(t->type() != Track::WAVE && t->type() != Track::AUDIO_OUTPUT) {
+ track = 0;
+ break;
+ }
+ if(t->type() == Track::WAVE)
+ {
+ if(track)
+ {
+ track = 0;
+ break;
+ }
+ track = (WaveTrack*)t;
+ }
+
+ }
+ }
+
+ if (track == 0) {
+ if(ol->size() == 1) {
+ QMessageBox::critical(this,
+ tr("MusE: Bounce to Track"),
+ tr("Select one target wave track")
+ );
+ return;
+ }
+ else
+ {
+ QMessageBox::critical(this,
+ tr("MusE: Bounce to Track"),
+ tr("Select one target wave track,\nand one audio output track")
+ );
+ return;
+ }
+ }
+ song->bounceOutput = out;
+ song->bounceTrack = track;
+ song->setRecord(true);
+ song->setRecordFlag(track, true);
+ audio->msgBounce();
+ }
+
+//---------------------------------------------------------
+// bounceToFile
+//---------------------------------------------------------
+
+void MusE::bounceToFile(AudioOutput* ao)
+ {
+ if(audio->bounce())
+ return;
+ song->bounceOutput = 0;
+ if(!ao)
+ {
+ OutputList* ol = song->outputs();
+ if(ol->empty())
+ {
+ QMessageBox::critical(this,
+ tr("MusE: Bounce to Track"),
+ tr("No audio output tracks found")
+ );
+ return;
+ }
+ // If only one output, pick it, else pick the first selected.
+ if(ol->size() == 1)
+ ao = ol->front();
+ else
+ {
+ for(iAudioOutput iao = ol->begin(); iao != ol->end(); ++iao)
+ {
+ AudioOutput* o = *iao;
+ if(o->selected())
+ {
+ if(ao)
+ {
+ ao = 0;
+ break;
+ }
+ ao = o;
+ }
+ }
+ if (ao == 0) {
+ QMessageBox::critical(this,
+ tr("MusE: Bounce to File"),
+ tr("Select one audio output track")
+ );
+ return;
+ }
+ }
+ }
+
+ if (checkRegionNotNull())
+ return;
+
+ SndFile* sf = getSndFile(0, this, 0);
+ if (sf == 0)
+ return;
+
+ song->bounceOutput = ao;
+ ao->setRecFile(sf);
+ song->setRecord(true, false);
+ song->setRecordFlag(ao, true);
+ audio->msgBounce();
+ }
+
+#ifdef HAVE_LASH
+//---------------------------------------------------------
+// lash_idle_cb
+//---------------------------------------------------------
+#include <iostream>
+void
+MusE::lash_idle_cb ()
+{
+ lash_event_t * event;
+ if (!lash_client)
+ return;
+
+ while ( (event = lash_get_event (lash_client)) )
+ {
+ switch (lash_event_get_type (event))
+ {
+ case LASH_Save_File:
+ {
+ /* save file */
+ QString ss = QString(lash_event_get_string(event)) + QString("/lash-project-muse.med");
+ int ok = save (ss.ascii(), false);
+ if (ok) {
+ project.setFile(ss.ascii());
+ setCaption(tr("MusE: Song: ") + project.baseName(true));
+ addProject(ss.ascii());
+ museProject = QFileInfo(ss.ascii()).dirPath(true);
+ }
+ lash_send_event (lash_client, event);
+ }
+ break;
+
+ case LASH_Restore_File:
+ {
+ /* load file */
+ QString sr = QString(lash_event_get_string(event)) + QString("/lash-project-muse.med");
+ loadProjectFile(sr.ascii(), false, true);
+ lash_send_event (lash_client, event);
+ }
+ break;
+
+ case LASH_Quit:
+ {
+ /* quit muse */
+ std::cout << "MusE::lash_idle_cb Received LASH_Quit"
+ << std::endl;
+ lash_event_destroy (event);
+ }
+ break;
+
+ default:
+ {
+ std::cout << "MusE::lash_idle_cb Received unknown LASH event of type "
+ << lash_event_get_type (event)
+ << std::endl;
+ lash_event_destroy (event);
+ }
+ break;
+ }
+ }
+}
+#endif /* HAVE_LASH */
+
+//---------------------------------------------------------
+// clearSong
+// return true if operation aborted
+// called with sequencer stopped
+//---------------------------------------------------------
+
+bool MusE::clearSong()
+ {
+ if (song->dirty) {
+ int n = 0;
+ n = QMessageBox::warning(this, appName,
+ tr("The current Project contains unsaved data\n"
+ "Load overwrites current Project:\n"
+ "Save Current Project?"),
+ tr("&Save"), tr("&Skip"), tr("&Abort"), 0, 2);
+ switch (n) {
+ case 0:
+ if (!save()) // abort if save failed
+ return true;
+ break;
+ case 1:
+ break;
+ case 2:
+ return true;
+ default:
+ printf("InternalError: gibt %d\n", n);
+ }
+ }
+ if (audio->isPlaying()) {
+ audio->msgPlay(false);
+ while (audio->isPlaying())
+ qApp->processEvents();
+ }
+
+again:
+ for (iToplevel i = toplevels.begin(); i != toplevels.end(); ++i) {
+ Toplevel tl = *i;
+ unsigned long obj = tl.object();
+ switch (tl.type()) {
+ case Toplevel::CLIPLIST:
+ case Toplevel::MARKER:
+ break;
+ case Toplevel::PIANO_ROLL:
+ case Toplevel::LISTE:
+ case Toplevel::DRUM:
+ case Toplevel::MASTER:
+ case Toplevel::WAVE:
+ case Toplevel::LMASTER:
+ ((QWidget*)(obj))->close(true);
+ goto again;
+ }
+ }
+ song->clear(false);
+ return false;
+ }
+
+//---------------------------------------------------------
+// startEditInstrument
+//---------------------------------------------------------
+
+void MusE::startEditInstrument()
+ {
+ if(editInstrument == 0)
+ {
+ editInstrument = new EditInstrument(this);
+ editInstrument->show();
+ }
+ else
+ {
+ if(editInstrument->isShown())
+ editInstrument->hide();
+ else
+ editInstrument->show();
+ }
+
+ }
+
+//---------------------------------------------------------
+// switchMixerAutomation
+//---------------------------------------------------------
+
+void MusE::switchMixerAutomation()
+ {
+ automation = !automation;
+ // Clear all pressed and touched and rec event lists.
+ song->clearRecAutomation(true);
+
+printf("automation = %d\n", automation);
+ menuAutomation->setItemChecked(autoId, automation);
+ }
+
+//---------------------------------------------------------
+// clearAutomation
+//---------------------------------------------------------
+
+void MusE::clearAutomation()
+ {
+ printf("not implemented\n");
+ }
+
+//---------------------------------------------------------
+// takeAutomationSnapshot
+//---------------------------------------------------------
+
+void MusE::takeAutomationSnapshot()
+ {
+ int frame = song->cPos().frame();
+ TrackList* tracks = song->tracks();
+ for (iTrack i = tracks->begin(); i != tracks->end(); ++i) {
+ if ((*i)->isMidiTrack())
+ continue;
+ AudioTrack* track = (AudioTrack*)*i;
+ CtrlListList* cll = track->controller();
+ for (iCtrlList icl = cll->begin(); icl != cll->end(); ++icl) {
+ double val = icl->second->curVal();
+ icl->second->add(frame, val);
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// updateConfiguration
+// called whenever the configuration has changed
+//---------------------------------------------------------
+
+void MusE::updateConfiguration()
+ {
+ fileOpenAction->setAccel(shortcuts[SHRT_OPEN].key);
+ fileNewAction->setAccel(shortcuts[SHRT_NEW].key);
+ fileSaveAction->setAccel(shortcuts[SHRT_SAVE].key);
+
+ menu_file->setAccel(shortcuts[SHRT_OPEN_RECENT].key, menu_ids[CMD_OPEN_RECENT]);
+ menu_file->setAccel(shortcuts[SHRT_LOAD_TEMPLATE].key, menu_ids[CMD_LOAD_TEMPLATE]);
+ menu_file->setAccel(shortcuts[SHRT_SAVE_AS].key, menu_ids[CMD_SAVE_AS]);
+ menu_file->setAccel(shortcuts[SHRT_IMPORT_MIDI].key, menu_ids[CMD_IMPORT_MIDI]);
+ menu_file->setAccel(shortcuts[SHRT_EXPORT_MIDI].key, menu_ids[CMD_EXPORT_MIDI]);
+ menu_file->setAccel(shortcuts[SHRT_IMPORT_PART].key, menu_ids[CMD_IMPORT_PART]);
+ menu_file->setAccel(shortcuts[SHRT_IMPORT_AUDIO].key, menu_ids[CMD_IMPORT_AUDIO]);
+ menu_file->setAccel(shortcuts[SHRT_QUIT].key, menu_ids[CMD_QUIT]);
+
+ menuEdit->setAccel(Qt::Key_Delete, CMD_DELETE);
+ menuEdit->setAccel(shortcuts[SHRT_OPEN_DRUMS].key, menu_ids[CMD_OPEN_DRUMS]);
+ menuEdit->setAccel(shortcuts[SHRT_OPEN_LIST].key, menu_ids[CMD_OPEN_LIST]);
+ menuEdit->setAccel(shortcuts[SHRT_OPEN_WAVE].key, menu_ids[CMD_OPEN_WAVE]);
+ menuEdit->setAccel(shortcuts[SHRT_OPEN_MIDI_TRANSFORM].key, menu_ids[CMD_OPEN_MIDI_TRANSFORM]);
+
+ midiEdit->setAccel(shortcuts[SHRT_TRANSPOSE].key, menu_ids[CMD_TRANSPOSE]);
+
+ master->setAccel(shortcuts[SHRT_OPEN_GRAPHIC_MASTER].key, menu_ids[CMD_OPEN_GRAPHIC_MASTER]);
+ master->setAccel(shortcuts[SHRT_OPEN_LIST_MASTER].key, menu_ids[CMD_OPEN_LIST_MASTER]);
+
+ menuStructure->setAccel(shortcuts[SHRT_GLOBAL_CUT].key, menu_ids[CMD_GLOBAL_CUT]);
+ menuStructure->setAccel(shortcuts[SHRT_GLOBAL_INSERT].key, menu_ids[CMD_GLOBAL_INSERT]);
+ menuStructure->setAccel(shortcuts[SHRT_GLOBAL_SPLIT].key, menu_ids[CMD_GLOBAL_SPLIT]);
+ menuStructure->setAccel(shortcuts[SHRT_COPY_RANGE].key, menu_ids[CMD_COPY_RANGE]);
+ menuStructure->setAccel(shortcuts[SHRT_CUT_EVENTS].key, menu_ids[CMD_CUT_EVENTS]);
+
+ menuView->setAccel(shortcuts[SHRT_OPEN_TRANSPORT].key, tr_id);
+ menuView->setAccel(shortcuts[SHRT_OPEN_BIGTIME].key, bt_id);
+ //menuView->setAccel(shortcuts[SHRT_OPEN_MIXER].key, aid1);
+ menuView->setAccel(shortcuts[SHRT_OPEN_MIXER].key, aid1a);
+ menuView->setAccel(shortcuts[SHRT_OPEN_MIXER2].key, aid1b);
+// menuView->setAccel(shortcuts[SHRT_OPEN_CLIPS].key, aid2);
+// markerAction->setAccel(shortcuts[SHRT_OPEN_MARKER].key );
+ menuView->setAccel(shortcuts[SHRT_OPEN_MARKER].key, mr_id );
+
+ menuSettings->setAccel(shortcuts[SHRT_GLOBAL_CONFIG].key, menu_ids[CMD_GLOBAL_CONFIG]);
+ menuSettings->setAccel(shortcuts[SHRT_CONFIG_SHORTCUTS].key, menu_ids[CMD_CONFIG_SHORTCUTS]);
+ menuSettings->setAccel(shortcuts[SHRT_CONFIG_METRONOME].key, menu_ids[CMD_CONFIG_METRONOME]);
+ menuSettings->setAccel(shortcuts[SHRT_CONFIG_MIDISYNC].key, menu_ids[CMD_CONFIG_MIDISYNC]);
+ menuSettings->setAccel(shortcuts[SHRT_APPEARANCE_SETTINGS].key, menu_ids[CMD_APPEARANCE_SETTINGS]);
+ menuSettings->setAccel(shortcuts[SHRT_CONFIG_MIDI_PORTS].key, menu_ids[CMD_CONFIG_MIDI_PORTS]);
+ menuSettings->setAccel(shortcuts[SHRT_CONFIG_AUDIO_PORTS].key, menu_ids[CMD_CONFIG_AUDIO_PORTS]);
+
+// menu_functions->setAccel(shortcuts[SHRT_MIDI_EDIT_INSTRUMENTS].key, menu_ids[CMD_MIDI_EDIT_INSTRUMENTS]);
+ menu_functions->setAccel(shortcuts[SHRT_MIDI_RESET].key, menu_ids[CMD_MIDI_RESET]);
+ menu_functions->setAccel(shortcuts[SHRT_MIDI_INIT].key, menu_ids[CMD_MIDI_INIT]);
+ menu_functions->setAccel(shortcuts[SHRT_MIDI_LOCAL_OFF].key, menu_ids[CMD_MIDI_LOCAL_OFF]);
+
+ menu_audio->setAccel(shortcuts[SHRT_AUDIO_BOUNCE_TO_TRACK].key, menu_ids[CMD_AUDIO_BOUNCE_TO_TRACK]);
+ menu_audio->setAccel(shortcuts[SHRT_AUDIO_BOUNCE_TO_FILE].key , menu_ids[CMD_AUDIO_BOUNCE_TO_FILE]);
+ menu_audio->setAccel(shortcuts[SHRT_AUDIO_RESTART].key, menu_ids[CMD_AUDIO_RESTART]);
+
+ menuAutomation->setAccel(shortcuts[SHRT_MIXER_AUTOMATION].key, autoId);
+ menuAutomation->setAccel(shortcuts[SHRT_MIXER_SNAPSHOT].key, menu_ids[CMD_MIXER_SNAPSHOT]);
+ menuAutomation->setAccel(shortcuts[SHRT_MIXER_AUTOMATION_CLEAR].key, menu_ids[CMD_MIXER_AUTOMATION_CLEAR]);
+
+ menu_help->setAccel(menu_ids[CMD_OPEN_HELP], shortcuts[SHRT_OPEN_HELP].key);
+ menu_help->setAccel(menu_ids[CMD_START_WHATSTHIS], shortcuts[SHRT_START_WHATSTHIS].key);
+ pianoAction->setAccel(shortcuts[SHRT_OPEN_PIANO].key);
+
+ select->setAccel(shortcuts[SHRT_SELECT_ALL].key, CMD_SELECT_ALL);
+
+// select->setAccel(shortcuts[SHRT_DESEL_PARTS].key, CMD_SELECT_NONE);
+ select->setAccel(shortcuts[SHRT_SELECT_NONE].key, CMD_SELECT_NONE);
+
+ select->setAccel(shortcuts[SHRT_SELECT_INVERT].key, CMD_SELECT_INVERT);
+ select->setAccel(shortcuts[SHRT_SELECT_ILOOP].key, CMD_SELECT_ILOOP);
+ select->setAccel(shortcuts[SHRT_SELECT_OLOOP].key, CMD_SELECT_OLOOP);
+ select->setAccel(shortcuts[SHRT_SELECT_PRTSTRACK].key, CMD_SELECT_PARTS);
+ follow->setAccel(shortcuts[SHRT_FOLLOW_JUMP].key, CMD_FOLLOW_JUMP);
+ follow->setAccel(shortcuts[SHRT_FOLLOW_NO].key, CMD_FOLLOW_NO);
+ follow->setAccel(shortcuts[SHRT_FOLLOW_CONTINUOUS].key, CMD_FOLLOW_CONTINUOUS);
+ midiInputPlugins->setAccel(shortcuts[SHRT_MIDI_INPUT_TRANSPOSE].key, 0);
+ midiInputPlugins->setAccel(shortcuts[SHRT_MIDI_INPUT_TRANSFORM].key, 1);
+ midiInputPlugins->setAccel(shortcuts[SHRT_MIDI_INPUT_FILTER].key, 2);
+ midiInputPlugins->setAccel(shortcuts[SHRT_MIDI_REMOTE_CONTROL].key, 3);
+ midiInputPlugins->setAccel(shortcuts[SHRT_RANDOM_RHYTHM_GENERATOR].key, 4);
+
+ addTrack->setAccel(shortcuts[SHRT_ADD_MIDI_TRACK].key, Track::MIDI);
+ addTrack->setAccel(shortcuts[SHRT_ADD_DRUM_TRACK].key, Track::DRUM);
+ addTrack->setAccel(shortcuts[SHRT_ADD_WAVE_TRACK].key, Track::WAVE);
+ addTrack->setAccel(shortcuts[SHRT_ADD_AUDIO_OUTPUT].key, Track::AUDIO_OUTPUT);
+ addTrack->setAccel(shortcuts[SHRT_ADD_AUDIO_GROUP].key, Track::AUDIO_GROUP);
+ addTrack->setAccel(shortcuts[SHRT_ADD_AUDIO_INPUT].key, Track::AUDIO_INPUT);
+ addTrack->setAccel(shortcuts[SHRT_ADD_AUDIO_AUX].key, Track::AUDIO_AUX);
+ }
+
+//---------------------------------------------------------
+// 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, unsigned, bool)), bigtime, SLOT(setPos(int, unsigned, 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);
+ menuView->setItemChecked(bt_id, on);
+ }
+
+//---------------------------------------------------------
+// toggleBigTime
+//---------------------------------------------------------
+
+void MusE::toggleBigTime()
+ {
+ showBigtime(!menuView->isItemChecked(bt_id));
+ }
+
+//---------------------------------------------------------
+// bigtimeClosed
+//---------------------------------------------------------
+
+void MusE::bigtimeClosed()
+ {
+ menuView->setItemChecked(bt_id, false);
+ }
+
+//---------------------------------------------------------
+// showMixer
+//---------------------------------------------------------
+
+/*
+void MusE::showMixer(bool on)
+ {
+ if (on && audioMixer == 0) {
+ audioMixer = new AudioMixerApp(this);
+ connect(audioMixer, SIGNAL(closed()), SLOT(mixerClosed()));
+ audioMixer->resize(config.geometryMixer.size());
+ audioMixer->move(config.geometryMixer.topLeft());
+ }
+ if (audioMixer)
+ audioMixer->setShown(on);
+ menuView->setItemChecked(aid1, on);
+ }
+*/
+
+//---------------------------------------------------------
+// showMixer1
+//---------------------------------------------------------
+
+void MusE::showMixer1(bool on)
+ {
+ if (on && mixer1 == 0) {
+ mixer1 = new AudioMixerApp(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);
+ menuView->setItemChecked(aid1a, on);
+ }
+
+//---------------------------------------------------------
+// showMixer2
+//---------------------------------------------------------
+
+void MusE::showMixer2(bool on)
+ {
+ if (on && mixer2 == 0) {
+ mixer2 = new AudioMixerApp(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);
+ menuView->setItemChecked(aid1b, on);
+ }
+
+//---------------------------------------------------------
+// toggleMixer
+//---------------------------------------------------------
+
+/*
+void MusE::toggleMixer()
+ {
+ showMixer(!menuView->isItemChecked(aid1));
+ }
+*/
+
+//---------------------------------------------------------
+// toggleMixer1
+//---------------------------------------------------------
+
+void MusE::toggleMixer1()
+ {
+ printf("toggle mixer1\n");
+ //showMixer1(!menuView->isItemChecked(aid1a));
+ showMixer1(true);
+ }
+
+//---------------------------------------------------------
+// toggleMixer2
+//---------------------------------------------------------
+
+void MusE::toggleMixer2()
+ {
+ showMixer2(!menuView->isItemChecked(aid1b));
+ }
+
+//---------------------------------------------------------
+// mixerClosed
+//---------------------------------------------------------
+
+/*
+void MusE::mixerClosed()
+ {
+ menuView->setItemChecked(aid1, false);
+ }
+*/
+
+//---------------------------------------------------------
+// mixer1Closed
+//---------------------------------------------------------
+
+void MusE::mixer1Closed()
+ {
+ //aid1a->setChecked(false);
+ menuView->setItemChecked(aid1a, false);
+ }
+
+//---------------------------------------------------------
+// mixer2Closed
+//---------------------------------------------------------
+
+void MusE::mixer2Closed()
+ {
+ //aid1b->setChecked(false);
+ menuView->setItemChecked(aid1b, false);
+ }
+
+
+//QWidget* MusE::mixerWindow() { return audioMixer; }
+QWidget* MusE::mixer1Window() { return mixer1; }
+QWidget* MusE::mixer2Window() { return mixer2; }
+
+QWidget* MusE::transportWindow() { return transport; }
+QWidget* MusE::bigtimeWindow() { return bigtime; }
+
+//---------------------------------------------------------
+// focusInEvent
+//---------------------------------------------------------
+
+void MusE::focusInEvent(QFocusEvent* ev)
+ {
+ //if (audioMixer)
+ // audioMixer->raise();
+ if (mixer1)
+ mixer1->raise();
+ if (mixer2)
+ mixer2->raise();
+ raise();
+ Q3MainWindow::focusInEvent(ev);
+ }
+
+//---------------------------------------------------------
+// setUsedTool
+//---------------------------------------------------------
+
+void MusE::setUsedTool(int tool)
+ {
+ tools1->set(tool);
+ }
+
+
+//---------------------------------------------------------
+// execDeliveredScript
+//---------------------------------------------------------
+void MusE::execDeliveredScript(int id)
+{
+ //QString scriptfile = QString(INSTPREFIX) + SCRIPTSSUFFIX + deliveredScriptNames[id];
+ song->executeScript(song->getScriptPath(id, true), song->getSelectedMidiParts(), 0, false); // TODO: get quant from arranger
+}
+//---------------------------------------------------------
+// execUserScript
+//---------------------------------------------------------
+void MusE::execUserScript(int id)
+{
+ song->executeScript(song->getScriptPath(id, false), song->getSelectedMidiParts(), 0, false); // TODO: get quant from arranger
+}
+
diff --git a/muse2/muse/app.cpp.orig b/muse2/muse/app.cpp.orig
new file mode 100644
index 00000000..219f59bd
--- /dev/null
+++ b/muse2/muse/app.cpp.orig
@@ -0,0 +1,3969 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: app.cpp,v 1.113.2.68 2009/12/21 14:51:51 spamatica Exp $
+//
+// (C) Copyright 1999-2004 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include "config.h"
+
+#include <string>
+#include <map>
+#include <assert.h>
+#include <getopt.h>
+#include <errno.h>
+#include <sys/mman.h>
+#include <sys/wait.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <time.h>
+#include <signal.h>
+#include <stdarg.h>
+
+#include <qbuttongroup.h>
+#include <qpopupmenu.h>
+#include <qmessagebox.h>
+#include <qclipboard.h>
+#include <qsocketnotifier.h>
+#include <qtextcodec.h>
+#include <qstylefactory.h>
+#include <qmenubar.h>
+#include <qapplication.h>
+#include <qtimer.h>
+#include <qstyle.h>
+#include <qsplashscreen.h>
+#include <qobject.h>
+
+#include "app.h"
+#include "transport.h"
+#include "bigtime.h"
+#include "arranger.h"
+#include "pianoroll.h"
+#include "xml.h"
+#include "midi.h"
+#include "conf.h"
+#include "listedit.h"
+#include "master/masteredit.h"
+#include "master/lmaster.h"
+#include "drumedit.h"
+#include "ttoolbar.h"
+#include "amixer.h"
+#include "cliplist/cliplist.h"
+#include "midiport.h"
+#include "audiodev.h"
+#include "mididev.h"
+#include "waveedit.h"
+#include "icons.h"
+#include "minstrument.h"
+#include "mixdowndialog.h"
+#include "midictrl.h"
+#include "filedialog.h"
+#include "plugin.h"
+#include "marker/markerview.h"
+#include "transpose.h"
+#include "appearance.h"
+#include "gatetime.h"
+#include "metronome.h"
+#include "debug.h"
+#include "event.h"
+#include "audio.h"
+#include "midiseq.h"
+#include "audioprefetch.h"
+#include "wave.h"
+#include "shortcutconfig.h"
+#include "gconfig.h"
+#include "driver/jackaudio.h"
+#include "track.h"
+#include "ticksynth.h"
+#include "instruments/editinstrument.h"
+#include "synth.h"
+#include "remote/pyapi.h"
+#include "al/dsp.h"
+
+#ifdef DSSI_SUPPORT
+#include "dssihost.h"
+#endif
+
+#ifdef VST_SUPPORT
+#include "vst.h"
+#endif
+
+#include <alsa/asoundlib.h>
+#include "songinfo.h"
+#include "didyouknow.h"
+#include <qtextedit.h>
+
+//extern void cacheJackRouteNames();
+
+static pthread_t watchdogThread;
+//ErrorHandler *error;
+static const char* fileOpenText =
+ QT_TR_NOOP("Click this button to open a <em>new song</em>.<br>"
+ "You can also select the <b>Open command</b> from the File menu.");
+static const char* fileSaveText =
+ QT_TR_NOOP("Click this button to save the song you are "
+ "editing. You will be prompted for a file name.\n"
+ "You can also select the Save command from the File menu.");
+static const char* fileNewText = QT_TR_NOOP("Create New Song");
+
+static const char* infoLoopButton = QT_TR_NOOP("loop between left mark and right mark");
+static const char* infoPunchinButton = QT_TR_NOOP("record starts at left mark");
+static const char* infoPunchoutButton = QT_TR_NOOP("record stops at right mark");
+static const char* infoStartButton = QT_TR_NOOP("rewind to start position");
+static const char* infoRewindButton = QT_TR_NOOP("rewind current position");
+static const char* infoForwardButton = QT_TR_NOOP("move current position");
+static const char* infoStopButton = QT_TR_NOOP("stop sequencer");
+static const char* infoPlayButton = QT_TR_NOOP("start sequencer play");
+static const char* infoRecordButton = QT_TR_NOOP("to record press record and then play");
+static const char* infoPanicButton = QT_TR_NOOP("send note off to all midi channels");
+
+#define PROJECT_LIST_LEN 6
+static QString* projectList[PROJECT_LIST_LEN];
+
+extern void initIcons();
+extern void initMidiSynth();
+extern bool initJackAudio();
+extern void exitJackAudio();
+extern bool initDummyAudio();
+extern void exitDummyAudio();
+extern void initVST_fst_init();
+extern void initVST();
+extern void initDSSI();
+
+#ifdef HAVE_LASH
+#include <lash/lash.h>
+lash_client_t * lash_client = 0;
+extern snd_seq_t * alsaSeq;
+#endif /* HAVE_LASH */
+
+int watchAudio, watchAudioPrefetch, watchMidi;
+pthread_t splashThread;
+
+
+//PyScript *pyscript;
+// void MusE::runPythonScript()
+// {
+// QString script("test.py");
+// // pyscript->runPythonScript(script);
+// }
+
+//---------------------------------------------------------
+// getCapabilities
+//---------------------------------------------------------
+
+static void getCapabilities()
+ {
+#ifdef RTCAP
+#ifdef __linux__
+ const char* napp = getenv("GIVERTCAP");
+ if (napp == 0)
+ napp = "givertcap";
+ int pid = fork();
+ if (pid == 0) {
+ if (execlp(napp, napp, 0) == -1)
+ perror("exec givertcap failed");
+ }
+ else if (pid == -1) {
+ perror("fork givertcap failed");
+ }
+ else {
+ waitpid(pid, 0, 0);
+ }
+#endif // __linux__
+#endif
+ }
+
+
+//---------------------------------------------------------
+// sleep function
+//---------------------------------------------------------
+void microSleep(long msleep)
+{
+ bool sleepOk=-1;
+
+ while(sleepOk==-1)
+ sleepOk=usleep(msleep);
+}
+
+// Removed p3.3.17
+/*
+//---------------------------------------------------------
+// watchdog thread
+//---------------------------------------------------------
+
+static void* watchdog(void*)
+ {
+ doSetuid();
+
+ struct sched_param rt_param;
+ memset(&rt_param, 0, sizeof(rt_param));
+ rt_param.sched_priority = sched_get_priority_max(SCHED_FIFO);
+ int rv = pthread_setschedparam(pthread_self(), SCHED_FIFO, &rt_param);
+ if (rv != 0)
+ perror("Set realtime scheduler");
+
+ int policy;
+ if (pthread_getschedparam(pthread_self(), &policy, &rt_param)!= 0) {
+ printf("Cannot get current client scheduler: %s\n", strerror(errno));
+ }
+ if (policy != SCHED_FIFO)
+ printf("watchdog process %d _NOT_ running SCHED_FIFO\n", getpid());
+ else if (debugMsg)
+ printf("watchdog set to SCHED_FIFO priority %d\n",
+ sched_get_priority_max(SCHED_FIFO));
+
+ undoSetuid();
+ int fatal = 0;
+ for (;;) {
+ watchAudio = 0;
+ watchMidi = 0;
+ static const int WD_TIMEOUT = 3;
+
+ // sleep can be interrpted by signals:
+ int to = WD_TIMEOUT;
+ while (to > 0)
+ to = sleep(to);
+
+ bool timeout = false;
+ if (midiSeqRunning && watchMidi == 0)
+ {
+ printf("midiSeqRunning = %i watchMidi %i\n", midiSeqRunning, watchMidi);
+ timeout = true;
+ }
+ if (watchAudio == 0)
+ timeout = true;
+ if (watchAudio > 500000)
+ timeout = true;
+ if (timeout)
+ ++fatal;
+ else
+ fatal = 0;
+ if (fatal >= 3) {
+ printf("WatchDog: fatal error, realtime task timeout\n");
+ printf(" (%d,%d-%d) - stopping all services\n",
+ watchMidi, watchAudio, fatal);
+ break;
+ }
+// printf("wd %d %d %d\n", watchMidi, watchAudio, fatal);
+ }
+ audio->stop(true);
+ audioPrefetch->stop(true);
+ printf("watchdog exit\n");
+ exit(-1);
+ }
+*/
+
+//---------------------------------------------------------
+// seqStart
+//---------------------------------------------------------
+
+bool MusE::seqStart()
+ {
+ // Changed by Tim. p3.3.17
+
+ /*
+ if (audio->isRunning()) {
+ printf("seqStart(): already running\n");
+ return true;
+ }
+
+ if (realTimeScheduling) {
+ //
+ // create watchdog thread with max priority
+ //
+ doSetuid();
+ struct sched_param rt_param;
+ memset(&rt_param, 0, sizeof(rt_param));
+ rt_param.sched_priority = realTimePriority +1;//sched_get_priority_max(SCHED_FIFO);
+
+ pthread_attr_t* attributes = (pthread_attr_t*) malloc(sizeof(pthread_attr_t));
+ pthread_attr_init(attributes);
+
+// if (pthread_attr_setschedpolicy(attributes, SCHED_FIFO)) {
+// printf("MusE: cannot set FIFO scheduling class for RT thread\n");
+// }
+// if (pthread_attr_setschedparam (attributes, &rt_param)) {
+// // printf("Cannot set scheduling priority for RT thread (%s)\n", strerror(errno));
+// }
+// if (pthread_attr_setscope (attributes, PTHREAD_SCOPE_SYSTEM)) {
+// printf("MusE: Cannot set scheduling scope for RT thread\n");
+// }
+ if (pthread_create(&watchdogThread, attributes, ::watchdog, 0))
+ perror("MusE: creating watchdog thread failed:");
+ pthread_attr_destroy(attributes);
+ undoSetuid();
+ }
+ audioPrefetch->start();
+ audioPrefetch->msgSeek(0, true); // force
+ midiSeqRunning = !midiSeq->start();
+
+ if (!audio->start()) {
+ QMessageBox::critical( muse, tr(QString("Failed to start audio!")),
+ tr(QString("Was not able to start audio, check if jack is running.\n")));
+ return false;
+ }
+
+ return true;
+ */
+
+ if (audio->isRunning()) {
+ printf("seqStart(): already running\n");
+ return true;
+ }
+
+ if (!audio->start()) {
+ QMessageBox::critical( muse, tr(QString("Failed to start audio!")),
+ tr(QString("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)
+ if(audio->isRunning())
+ break;
+ sleep(1);
+ }
+ //if (audioState != AUDIO_START2) {
+ if(!audio->isRunning())
+ {
+ QMessageBox::critical( muse, tr("Failed to start audio!"),
+ tr("Timeout waiting for audio to run. Check if jack is running.\n"));
+ }
+ //
+ // now its safe to ask the driver for realtime
+ // priority
+
+ realTimePriority = audioDevice->realtimePriority();
+ if(debugMsg)
+ printf("MusE::seqStart: getting audio driver realTimePriority:%d\n", realTimePriority);
+
+ // Disabled by Tim. p3.3.22
+ /*
+ if(realTimeScheduling)
+ {
+ //
+ // create watchdog thread with max priority
+ //
+ doSetuid();
+ struct sched_param rt_param;
+ memset(&rt_param, 0, sizeof(rt_param));
+ rt_param.sched_priority = realTimePriority + 1;//sched_get_priority_max(SCHED_FIFO);
+
+ pthread_attr_t* attributes = (pthread_attr_t*) malloc(sizeof(pthread_attr_t));
+ pthread_attr_init(attributes);
+
+// if (pthread_attr_setschedpolicy(attributes, SCHED_FIFO)) {
+// printf("MusE: cannot set FIFO scheduling class for RT thread\n");
+// }
+// if (pthread_attr_setschedparam (attributes, &rt_param)) {
+// // printf("Cannot set scheduling priority for RT thread (%s)\n", strerror(errno));
+// }
+// if (pthread_attr_setscope (attributes, PTHREAD_SCOPE_SYSTEM)) {
+// printf("MusE: Cannot set scheduling scope for RT thread\n");
+// }
+ if (pthread_create(&watchdogThread, attributes, ::watchdog, 0))
+ perror("MusE: creating watchdog thread failed");
+ pthread_attr_destroy(attributes);
+ undoSetuid();
+ }
+ */
+
+ //int policy;
+ //if ((policy = sched_getscheduler (0)) < 0) {
+ // printf("Cannot get current client scheduler: %s\n", strerror(errno));
+ // }
+ //if (policy != SCHED_FIFO)
+ // printf("midi thread %d _NOT_ running SCHED_FIFO\n", getpid());
+
+
+ //audioState = AUDIO_RUNNING;
+ // Changed by Tim. p3.3.22
+ /*
+ //if(realTimePriority)
+ if(realTimeScheduling)
+ {
+ int pr = realTimePriority;
+ if(pr > 5)
+ pr -= 5;
+ else
+ pr = 0;
+ audioPrefetch->start(pr);
+ //audioWriteback->start(realTimePriority - 5);
+ }
+ else
+ {
+ audioPrefetch->start(0);
+ //audioWriteback->start(0);
+ }
+ */
+ int pfprio = 0;
+ int midiprio = 0;
+ if(realTimeScheduling)
+ {
+ if(realTimePriority < 5)
+ printf("MusE: WARNING: Recommend setting audio realtime priority to at least 5!\n");
+ if(realTimePriority == 1)
+ {
+ pfprio = 2;
+ midiprio = 3;
+ }
+ else
+ if(realTimePriority == 2)
+ {
+ pfprio = 1;
+ midiprio = 3;
+ }
+ else
+ if(realTimePriority == 3)
+ {
+ pfprio = 1;
+ //midiprio = 2;
+ // p3.3.37
+ midiprio = 4;
+ }
+ else
+ if(realTimePriority == 4)
+ {
+ pfprio = 1;
+ //midiprio = 3;
+ // p3.3.37
+ midiprio = 5;
+ }
+ else
+ if(realTimePriority == 5)
+ {
+ pfprio = 1;
+ //midiprio = 3;
+ // p3.3.37
+ midiprio = 6;
+ }
+ else
+ {
+ pfprio = realTimePriority - 5;
+ //midiprio = realTimePriority - 2;
+ // p3.3.37
+ midiprio = realTimePriority + 1;
+ }
+ }
+
+ if(midiRTPrioOverride > 0)
+ midiprio = midiRTPrioOverride;
+
+ // FIXME FIXME: The realTimePriority of the Jack thread seems to always be 5 less than the value passed to jackd command.
+ //if(midiprio == realTimePriority)
+ // printf("MusE: WARNING: Midi realtime priority %d is the same as audio realtime priority %d. Try a different setting.\n",
+ // midiprio, realTimePriority);
+ //if(midiprio == pfprio)
+ // printf("MusE: WARNING: Midi realtime priority %d is the same as audio prefetch realtime priority %d. Try a different setting.\n",
+ // midiprio, pfprio);
+
+ audioPrefetch->start(pfprio);
+
+ audioPrefetch->msgSeek(0, true); // force
+
+ //midiSeqRunning = !midiSeq->start(realTimeScheduling ? realTimePriority : 0);
+ // Changed by Tim. p3.3.22
+ //midiSeq->start(realTimeScheduling ? realTimePriority : 0);
+ midiSeq->start(midiprio);
+
+ int counter=0;
+ while (++counter) {
+ //if (counter > 10) {
+ if (counter > 1000) {
+ fprintf(stderr,"midi sequencer thread does not start!? Exiting...\n");
+ exit(33);
+ }
+ midiSeqRunning = midiSeq->isRunning();
+ if (midiSeqRunning)
+ break;
+ usleep(1000);
+ printf("looping waiting for sequencer thread to start\n");
+ }
+ if(!midiSeqRunning)
+ {
+ fprintf(stderr, "midiSeq is not running! Exiting...\n");
+ exit(33);
+ }
+ return true;
+ }
+
+//---------------------------------------------------------
+// stop
+//---------------------------------------------------------
+
+void MusE::seqStop()
+ {
+ // label sequencer as disabled before it actually happened to minimize race condition
+ midiSeqRunning = false;
+
+ song->setStop(true);
+ song->setStopPlay(false);
+ midiSeq->stop(true);
+ audio->stop(true);
+ audioPrefetch->stop(true);
+ if (realTimeScheduling && watchdogThread)
+ pthread_cancel(watchdogThread);
+ }
+
+//---------------------------------------------------------
+// seqRestart
+//---------------------------------------------------------
+
+bool MusE::seqRestart()
+{
+ bool restartSequencer = audio->isRunning();
+ if (restartSequencer) {
+ if (audio->isPlaying()) {
+ audio->msgPlay(false);
+ while (audio->isPlaying())
+ qApp->processEvents();
+ }
+ seqStop();
+ }
+ if(!seqStart())
+ return false;
+
+ audioDevice->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);
+ }
+
+//---------------------------------------------------------
+// populateAddSynth
+//---------------------------------------------------------
+
+/*
+struct addSynth_cmp_str
+{
+ bool operator()(std::string a, std::string b)
+ {
+ return (a < b);
+ }
+};
+*/
+
+QPopupMenu* populateAddSynth(QWidget* parent, QObject* obj = 0, const char* slot = 0)
+{
+ QPopupMenu* synp = new QPopupMenu(parent);
+
+ //typedef std::multimap<std::string, int, addSynth_cmp_str > asmap;
+ typedef std::multimap<std::string, int > asmap;
+
+ //typedef std::multimap<std::string, int, addSynth_cmp_str >::iterator imap;
+ typedef std::multimap<std::string, int >::iterator imap;
+
+ MessSynth* synMESS = 0;
+ QPopupMenu* synpMESS = 0;
+ asmap mapMESS;
+
+ #ifdef DSSI_SUPPORT
+ DssiSynth* synDSSI = 0;
+ QPopupMenu* synpDSSI = 0;
+ asmap mapDSSI;
+ #endif
+
+ #ifdef VST_SUPPORT
+ VstSynth* synVST = 0;
+ QPopupMenu* synpVST = 0;
+ asmap mapVST;
+ #endif
+
+ // Not neccessary, but what the heck.
+ QPopupMenu* synpOther = 0;
+ asmap mapOther;
+
+ //const int synth_base_id = 0x1000;
+ int ii = 0;
+ for(std::vector<Synth*>::iterator i = synthis.begin(); i != synthis.end(); ++i)
+ {
+ synMESS = dynamic_cast<MessSynth*>(*i);
+ if(synMESS)
+ {
+ mapMESS.insert( std::pair<std::string, int> (std::string(synMESS->description().lower().latin1()), ii) );
+ }
+ else
+ {
+
+ #ifdef DSSI_SUPPORT
+ synDSSI = dynamic_cast<DssiSynth*>(*i);
+ if(synDSSI)
+ {
+ mapDSSI.insert( std::pair<std::string, int> (std::string(synDSSI->description().lower().latin1()), ii) );
+ }
+ else
+ #endif
+
+ {
+ #ifdef VST_SUPPORT
+ synVST = dynamic_cast<VstSynth*>(*i);
+ if(synVST)
+ {
+ mapVST.insert( std::pair<std::string, int> (std::string(synVST->description().lower().latin1()), ii) );
+ }
+ else
+ #endif
+
+ {
+ mapOther.insert( std::pair<std::string, int> (std::string((*i)->description().lower().latin1()), ii) );
+ }
+ }
+ }
+
+ ++ii;
+ }
+
+ int sz = synthis.size();
+ for(imap i = mapMESS.begin(); i != mapMESS.end(); ++i)
+ {
+ int idx = i->second;
+ if(idx > sz) // Sanity check
+ continue;
+ Synth* s = synthis[idx];
+ if(s)
+ {
+ // No MESS sub-menu yet? Create it now.
+ if(!synpMESS)
+ synpMESS = new QPopupMenu(parent);
+ synpMESS->insertItem(QT_TR_NOOP(s->description()) + " <" + QT_TR_NOOP(s->name()) + ">", MENU_ADD_SYNTH_ID_BASE + idx);
+ }
+ }
+
+ #ifdef DSSI_SUPPORT
+ for(imap i = mapDSSI.begin(); i != mapDSSI.end(); ++i)
+ {
+ int idx = i->second;
+ if(idx > sz)
+ continue;
+ Synth* s = synthis[idx];
+ if(s)
+ {
+ // No DSSI sub-menu yet? Create it now.
+ if(!synpDSSI)
+ synpDSSI = new QPopupMenu(parent);
+ synpDSSI->insertItem(QT_TR_NOOP(s->description()) + " <" + QT_TR_NOOP(s->name()) + ">", MENU_ADD_SYNTH_ID_BASE + idx);
+ }
+ }
+ #endif
+
+ #ifdef VST_SUPPORT
+ for(imap i = mapVST.begin(); i != mapVST.end(); ++i)
+ {
+ int idx = i->second;
+ if(idx > sz)
+ continue;
+ Synth* s = synthis[idx];
+ if(s)
+ {
+ // No VST sub-menu yet? Create it now.
+ if(!synpVST)
+ synpVST = new QPopupMenu(parent);
+ synpVST->insertItem(QT_TR_NOOP(s->description()) + " <" + QT_TR_NOOP(s->name()) + ">", MENU_ADD_SYNTH_ID_BASE + idx);
+ }
+ }
+ #endif
+
+ for(imap i = mapOther.begin(); i != mapOther.end(); ++i)
+ {
+ int idx = i->second;
+ if(idx > sz)
+ continue;
+ Synth* s = synthis[idx];
+ // No Other sub-menu yet? Create it now.
+ if(!synpOther)
+ synpOther = new QPopupMenu(parent);
+ synpOther->insertItem(QT_TR_NOOP(s->description()) + " <" + QT_TR_NOOP(s->name()) + ">", MENU_ADD_SYNTH_ID_BASE + idx);
+ }
+
+ if(synpMESS)
+ {
+ synp->insertItem(*synthIcon, QT_TR_NOOP("MESS"), synpMESS, Track::AUDIO_SOFTSYNTH);
+ if(obj && slot)
+ QObject::connect(synpMESS, SIGNAL(activated(int)), obj, slot);
+ }
+
+ #ifdef DSSI_SUPPORT
+ if(synpDSSI)
+ {
+ synp->insertItem(*synthIcon, QT_TR_NOOP("DSSI"), synpDSSI, Track::AUDIO_SOFTSYNTH);
+ if(obj && slot)
+ QObject::connect(synpDSSI, SIGNAL(activated(int)), obj, slot);
+ }
+ #endif
+
+ #ifdef VST_SUPPORT
+ if(synpVST)
+ {
+ synp->insertItem(*synthIcon, QT_TR_NOOP("FST"), synpVST, Track::AUDIO_SOFTSYNTH);
+ if(obj && slot)
+ QObject::connect(synpVST, SIGNAL(activated(int)), obj, slot);
+ }
+ #endif
+
+ if(synpOther)
+ {
+ synp->insertItem(*synthIcon, QObject::tr("Other"), synpOther, Track::AUDIO_SOFTSYNTH);
+ if(obj && slot)
+ QObject::connect(synpOther, SIGNAL(activated(int)), obj, slot);
+ }
+
+ return synp;
+}
+
+//---------------------------------------------------------
+// populateAddTrack
+// this is also used in "mixer"
+//---------------------------------------------------------
+
+void populateAddTrack(QPopupMenu* addTrack)
+ {
+ addTrack->insertItem(QIconSet(*addtrack_addmiditrackIcon),
+ QT_TR_NOOP("Add Midi Track"), Track::MIDI);
+ addTrack->insertItem(QIconSet(*addtrack_drumtrackIcon),
+ QT_TR_NOOP("Add Drum Track"), Track::DRUM);
+ addTrack->insertItem(QIconSet(*addtrack_wavetrackIcon),
+ QT_TR_NOOP("Add Wave Track"), Track::WAVE);
+ addTrack->insertItem(QIconSet(*addtrack_audiooutputIcon),
+ QT_TR_NOOP("Add Audio Output"), Track::AUDIO_OUTPUT);
+ addTrack->insertItem(QIconSet(*addtrack_audiogroupIcon),
+ QT_TR_NOOP("Add Audio Group"), Track::AUDIO_GROUP);
+ addTrack->insertItem(QIconSet(*addtrack_audioinputIcon),
+ QT_TR_NOOP("Add Audio Input"), Track::AUDIO_INPUT);
+ addTrack->insertItem(QIconSet(*addtrack_auxsendIcon),
+ QT_TR_NOOP("Add Aux Send"), Track::AUDIO_AUX);
+
+ // Create a sub-menu and fill it with found synth types. Make addTrack the owner.
+ QPopupMenu* synp = populateAddSynth(addTrack, song, SLOT(addNewTrack(int)));
+ // Add the sub-menu to the given menu.
+ addTrack->insertItem(*synthIcon, QT_TR_NOOP("Add Synth"), synp, Track::AUDIO_SOFTSYNTH);
+
+ //addTrack->connect(addTrack, SIGNAL(activated(int)), song, SLOT(addTrack(int)));
+ addTrack->connect(addTrack, SIGNAL(activated(int)), song, SLOT(addNewTrack(int)));
+ //synp->connect(synp, SIGNAL(activated(int)), song, SLOT(addNewTrack(int)));
+ }
+
+//---------------------------------------------------------
+// MusE
+//---------------------------------------------------------
+
+MusE::MusE(int argc, char** argv) : QMainWindow(0, "mainwindow")
+ {
+ // By T356. For LADSPA plugins in plugin.cpp
+ QWidgetFactory::addWidgetFactory( new PluginWidgetFactory );
+
+ setFocusPolicy(WheelFocus);
+ muse = this; // hack
+ clipListEdit = 0;
+ midiSyncConfig = 0;
+ midiRemoteConfig = 0;
+ midiPortConfig = 0;
+ metronomeConfig = 0;
+ audioConfig = 0;
+ midiFileConfig = 0;
+ midiFilterConfig = 0;
+ midiInputTransform = 0;
+ midiRhythmGenerator = 0;
+ globalSettingsConfig = 0;
+ markerView = 0;
+ softSynthesizerConfig = 0;
+ midiTransformerDialog = 0;
+ shortcutConfig = 0;
+ appearance = 0;
+ //audioMixer = 0;
+ mixer1 = 0;
+ mixer2 = 0;
+ watchdogThread = 0;
+ editInstrument = 0;
+
+ appName = QString("MusE");
+
+ song = new Song("song");
+ song->blockSignals(true);
+ heartBeatTimer = new QTimer(this, "timer");
+ connect(heartBeatTimer, SIGNAL(timeout()), song, SLOT(beat()));
+
+#ifdef ENABLE_PYTHON
+ //---------------------------------------------------
+ // Python bridge
+ //---------------------------------------------------
+ // Uncomment in order to enable MusE Python bridge:
+ if (usePythonBridge) {
+ printf("Initializing python bridge!\n");
+ if (initPythonBridge() == false) {
+ printf("Could not initialize Python bridge\n");
+ exit(1);
+ }
+ }
+#endif
+
+ //---------------------------------------------------
+ // undo/redo
+ //---------------------------------------------------
+ undoRedo = new QActionGroup(this, tr("UndoRedo"), false);
+ undoAction = new QAction(tr("undo"), QIconSet(*undoIconS, *undoIcon), tr("Und&o"),
+ CTRL+Key_Z, undoRedo, "undo");
+ redoAction = new QAction(tr("redo"), QIconSet(*redoIconS, *redoIcon), tr("Re&do"),
+ CTRL+Key_Y, undoRedo, "redo");
+ undoAction->setWhatsThis(tr("undo last change to song"));
+ redoAction->setWhatsThis(tr("redo last undo"));
+ undoAction->setEnabled(false);
+ redoAction->setEnabled(false);
+ connect(redoAction, SIGNAL(activated()), song, SLOT(redo()));
+ connect(undoAction, SIGNAL(activated()), song, SLOT(undo()));
+
+ //---------------------------------------------------
+ // Transport
+ //---------------------------------------------------
+
+ transportAction = new QActionGroup(this, tr("Transport"), false);
+
+ loopAction = new QAction(tr("loop"), QIconSet(*loop1Icon),
+ tr("Loop"), 0, transportAction, "loop", true);
+ loopAction->setWhatsThis(tr(infoLoopButton));
+ connect(loopAction, SIGNAL(toggled(bool)), song, SLOT(setLoop(bool)));
+
+ punchinAction = new QAction(tr("punchin"), QIconSet(*punchin1Icon),
+ tr("Punchin"), 0, transportAction, "Punchin", true);
+ punchinAction->setWhatsThis(tr(infoPunchinButton));
+ connect(punchinAction, SIGNAL(toggled(bool)), song, SLOT(setPunchin(bool)));
+
+ punchoutAction = new QAction(tr("punchout"), QIconSet(*punchout1Icon),
+ tr("Punchout"), 0, transportAction, "punchout", true);
+ punchoutAction->setWhatsThis(tr(infoPunchoutButton));
+ connect(punchoutAction, SIGNAL(toggled(bool)), song, SLOT(setPunchout(bool)));
+
+ transportAction->addSeparator();
+
+ startAction = new QAction(tr("start"), QIconSet(*startIcon),
+ tr("Start"), 0, transportAction, "start");
+ startAction->setWhatsThis(tr(infoStartButton));
+ connect(startAction, SIGNAL(activated()), song, SLOT(rewindStart()));
+
+ rewindAction = new QAction(tr("rewind"), QIconSet(*frewindIcon),
+ tr("Rewind"), 0, transportAction, "rewind");
+ rewindAction->setWhatsThis(tr(infoRewindButton));
+ connect(rewindAction, SIGNAL(activated()), song, SLOT(rewind()));
+
+ forwardAction = new QAction(tr("forward"), QIconSet(*fforwardIcon),
+ tr("Forward"), 0, transportAction, "forward");
+ forwardAction->setWhatsThis(tr(infoForwardButton));
+ connect(forwardAction, SIGNAL(activated()), song, SLOT(forward()));
+
+ stopAction = new QAction(tr("stop"), QIconSet(*stopIcon),
+ tr("Stop"), 0, transportAction, "stop", true);
+ stopAction->setWhatsThis(tr(infoStopButton));
+ stopAction->setOn(true);
+ connect(stopAction, SIGNAL(toggled(bool)), song, SLOT(setStop(bool)));
+
+ playAction = new QAction(tr("play"), QIconSet(*playIcon),
+ tr("Play"), 0, transportAction, "play", true);
+ playAction->setWhatsThis(tr(infoPlayButton));
+ playAction->setOn(false);
+ connect(playAction, SIGNAL(toggled(bool)), song, SLOT(setPlay(bool)));
+
+ recordAction = new QAction(tr("record"), QIconSet(*recordIcon),
+ tr("Record"), 0, transportAction, "record", true);
+ recordAction->setWhatsThis(tr(infoRecordButton));
+ connect(recordAction, SIGNAL(toggled(bool)), song, SLOT(setRecord(bool)));
+
+ panicAction = new QAction(tr("panic"), QIconSet(*panicIcon),
+ tr("Panic"), 0, 0, "panic", false);
+ panicAction->setWhatsThis(tr(infoPanicButton));
+ connect(panicAction, SIGNAL(activated()), song, SLOT(panic()));
+
+ initMidiInstruments();
+ initMidiPorts();
+ ::initMidiDevices();
+
+ //----Actions
+
+ fileNewAction = new QAction(tr("new"),
+ QIconSet(*filenewIconS, *filenewIcon), tr("&New"), 0, this, "new");
+ fileNewAction->setToolTip(tr(fileNewText));
+ fileNewAction->setWhatsThis(tr(fileNewText));
+
+ fileOpenAction = new QAction(tr("open"),
+ QIconSet(*openIconS, *openIcon), tr("&Open"), 0, this, "open");
+ fileOpenAction->setToolTip(tr(fileOpenText));
+ fileOpenAction->setWhatsThis(tr(fileOpenText));
+
+ fileSaveAction = new QAction(tr("save"),
+ QIconSet(*saveIconS, *saveIcon), tr("&Save"), 0, this, "save");
+ fileSaveAction->setToolTip(tr(fileSaveText));
+ fileSaveAction->setWhatsThis(tr(fileSaveText));
+
+ pianoAction = new QAction(tr("pianoroll"),
+ *pianoIconSet, tr("Pianoroll"), 0, this, "pianoroll");
+ connect(pianoAction, SIGNAL(activated()), SLOT(startPianoroll()));
+
+// markerAction = new QAction(tr("marker"), QIconSet(*view_markerIcon), tr("Marker"),
+// 0, this, "marker");
+// connect(markerAction, SIGNAL(activated()), SLOT(startMarkerView()));
+
+ connect(fileNewAction, SIGNAL(activated()), SLOT(loadTemplate()));
+ connect(fileOpenAction, SIGNAL(activated()), SLOT(loadProject()));
+ connect(fileSaveAction, SIGNAL(activated()), SLOT(save()));
+
+ //--------------------------------------------------
+ // Toolbar
+ //--------------------------------------------------
+
+ tools = new QToolBar(tr("File Buttons"), this);
+ fileNewAction->addTo(tools);
+ fileOpenAction->addTo(tools);
+ fileSaveAction->addTo(tools);
+
+ //
+ // Whats This
+ //
+ QWhatsThis::whatsThisButton(tools);
+
+ tools->addSeparator();
+ undoRedo->addTo(tools);
+
+ tools1 = new EditToolBar(this, arrangerTools);
+
+ QToolBar* transportToolbar = new QToolBar(this);
+ transportAction->addTo(transportToolbar);
+
+ QToolBar* panicToolbar = new QToolBar(this);
+ panicAction->addTo(panicToolbar);
+
+ if (realTimePriority < sched_get_priority_min(SCHED_FIFO))
+ realTimePriority = sched_get_priority_min(SCHED_FIFO);
+ else if (realTimePriority > sched_get_priority_max(SCHED_FIFO))
+ realTimePriority = sched_get_priority_max(SCHED_FIFO);
+
+ // If we requested to force the midi thread priority...
+ if(midiRTPrioOverride > 0)
+ {
+ if (midiRTPrioOverride < sched_get_priority_min(SCHED_FIFO))
+ midiRTPrioOverride = sched_get_priority_min(SCHED_FIFO);
+ else if (midiRTPrioOverride > sched_get_priority_max(SCHED_FIFO))
+ midiRTPrioOverride = sched_get_priority_max(SCHED_FIFO);
+ }
+
+ // Changed by Tim. p3.3.17
+ //midiSeq = new MidiSeq(realTimeScheduling ? realTimePriority : 0, "Midi");
+ midiSeq = new MidiSeq("Midi");
+ audio = new Audio();
+ //audioPrefetch = new AudioPrefetch(0, "Disc");
+ audioPrefetch = new AudioPrefetch("Prefetch");
+
+ //---------------------------------------------------
+ // Popups
+ //---------------------------------------------------
+
+// QPopupMenu *foo = new QPopupMenu(this);
+// testAction = new QAction(foo,"testPython");
+// testAction->addTo(foo);
+// menuBar()->insertItem(tr("&testpython"), foo);
+// connect(testAction, SIGNAL(activated()), this, SLOT(runPythonScript()));
+
+
+ //-------------------------------------------------------------
+ // popup File
+ //-------------------------------------------------------------
+
+ menu_file = new QPopupMenu(this);
+ menuBar()->insertItem(tr("&File"), menu_file);
+ fileNewAction->addTo(menu_file);
+ fileOpenAction->addTo(menu_file);
+ openRecent = new QPopupMenu(menu_file);
+ connect(openRecent, SIGNAL(aboutToShow()), this, SLOT(openRecentMenu()));
+ connect(openRecent, SIGNAL(activated(int)), this, SLOT(selectProject(int)));
+ menu_ids[CMD_OPEN_RECENT] = menu_file->insertItem(tr("Open &Recent"), openRecent, 0);
+ menu_file->insertSeparator();
+ fileSaveAction->addTo(menu_file);
+ menu_ids[CMD_SAVE_AS] = menu_file->insertItem(tr("Save &As"), this, SLOT(saveAs()), 0, -2);
+ menu_file->insertSeparator();
+ menu_ids[CMD_IMPORT_MIDI] = menu_file->insertItem(*openIconS, tr("Import Midifile"), this, SLOT(importMidi()), 0, -2);
+ menu_ids[CMD_EXPORT_MIDI] = menu_file->insertItem(*saveIconS, tr("Export Midifile"), this, SLOT(exportMidi()), 0, -2);
+ menu_ids[CMD_IMPORT_PART] = menu_file->insertItem(*openIconS, tr("Import Part"), this, SLOT(importPart()), 0, -2);
+ menu_file->insertSeparator();
+ menu_ids[CMD_IMPORT_AUDIO] = menu_file->insertItem(*openIconS, tr("Import Wave File"), this, SLOT(importWave()), 0, -2);
+
+
+ menu_file->insertSeparator();
+ menu_ids[CMD_QUIT] = menu_file->insertItem(*exitIconS, tr("&Quit"), this, SLOT(quitDoc()), 0, -2);
+ menu_file->insertSeparator();
+
+ //-------------------------------------------------------------
+ // popup Edit
+ //-------------------------------------------------------------
+
+ menuEdit = new QPopupMenu(this);
+ undoRedo->addTo(menuEdit);
+ menuEdit->insertSeparator();
+ menuBar()->insertItem(tr("&Edit"), menuEdit);
+
+ menuEdit->insertItem(*editcutIconSet, tr("C&ut"), CMD_CUT);
+ menuEdit->setAccel(CTRL+Key_X, CMD_CUT);
+ menuEdit->insertItem(*editcopyIconSet, tr("&Copy"), CMD_COPY);
+ menuEdit->setAccel(CTRL+Key_C, CMD_COPY);
+ menuEdit->insertItem(*editpasteIconSet, tr("&Paste"), CMD_PASTE);
+ menuEdit->setAccel(CTRL+Key_V, CMD_PASTE);
+ menuEdit->insertItem(*editpasteCloneIconSet, tr("Paste c&lone"), CMD_PASTE_CLONE);
+ menuEdit->setAccel(CTRL+SHIFT+Key_V, CMD_PASTE_CLONE);
+ menuEdit->insertItem(*editpaste2TrackIconSet, tr("Paste to &track"), CMD_PASTE_TO_TRACK);
+ menuEdit->setAccel(CTRL+Key_B, CMD_PASTE_TO_TRACK);
+ menuEdit->insertItem(*editpasteClone2TrackIconSet, tr("Paste clone to trac&k"), CMD_PASTE_CLONE_TO_TRACK);
+ menuEdit->setAccel(CTRL+SHIFT+Key_B, CMD_PASTE_CLONE_TO_TRACK);
+
+ menuEdit->insertSeparator();
+ menuEdit->insertItem(QIconSet(*edit_track_delIcon),
+ tr("Delete Selected Tracks"), CMD_DELETE_TRACK);
+
+ addTrack = new QPopupMenu(this);
+ // Moved below. Have to wait until synths are available...
+ //populateAddTrack(addTrack);
+
+ menuEdit->insertItem(QIconSet(*edit_track_addIcon),
+ tr("Add Track"), addTrack);
+
+ select = new QPopupMenu(this);
+ select->insertItem(QIconSet(*select_allIcon),
+ tr("Select &All"), CMD_SELECT_ALL);
+ select->insertItem(QIconSet(*select_deselect_allIcon),
+ tr("&Deselect All"), CMD_SELECT_NONE);
+ menuEdit->insertSeparator();
+ select->insertItem(QIconSet(*select_invert_selectionIcon),
+ tr("Invert &Selection"), CMD_SELECT_INVERT);
+ select->insertItem(QIconSet(*select_inside_loopIcon),
+ tr("&Inside Loop"), CMD_SELECT_ILOOP);
+ select->insertItem(QIconSet(*select_outside_loopIcon),
+ tr("&Outside Loop"), CMD_SELECT_OLOOP);
+ select->insertItem(QIconSet(*select_all_parts_on_trackIcon),
+ tr("All &Parts on Track"), CMD_SELECT_PARTS);
+ menuEdit->insertItem(QIconSet(*selectIcon),
+ tr("Select"), select);
+ menuEdit->insertSeparator();
+
+ pianoAction->addTo(menuEdit);
+ menu_ids[CMD_OPEN_DRUMS] = menuEdit->insertItem(
+ QIconSet(*edit_drummsIcon), tr("Drums"), this, SLOT(startDrumEditor()), 0);
+ menu_ids[CMD_OPEN_LIST] = menuEdit->insertItem(
+ QIconSet(*edit_listIcon), tr("List"), this, SLOT(startListEditor()), 0);
+ menu_ids[CMD_OPEN_WAVE] = menuEdit->insertItem(
+ QIconSet(*edit_waveIcon), tr("Wave"), this, SLOT(startWaveEditor()), 0);
+
+ master = new QPopupMenu(this);
+ master->setCheckable(false);
+ menu_ids[CMD_OPEN_GRAPHIC_MASTER] = master->insertItem(
+ QIconSet(*mastertrack_graphicIcon),tr("Graphic"), this, SLOT(startMasterEditor()), 0);
+ menu_ids[CMD_OPEN_LIST_MASTER] = master->insertItem(
+ QIconSet(*mastertrack_listIcon),tr("List"), this, SLOT(startLMasterEditor()), 0);
+ menuEdit->insertItem(QIconSet(*edit_mastertrackIcon),
+ tr("Mastertrack"), master, Key_F);
+
+ menuEdit->insertSeparator();
+ connect(menuEdit, SIGNAL(activated(int)), SLOT(cmd(int)));
+ connect(select, SIGNAL(activated(int)), SLOT(cmd(int)));
+
+ midiEdit = new QPopupMenu(this);
+ midiEdit->setCheckable(false);
+#if 0 // TODO
+ menu_ids[CMD_OPEN_MIDI_TRANSFORM] = midiEdit->insertItem(
+ QIconSet(*midi_transformIcon), tr("Midi &Transform"), this, SLOT(startMidiTransformer()), 0);
+ 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
+ menu_ids[CMD_TRANSPOSE] = midiEdit->insertItem(
+ QIconSet(*midi_transposeIcon), tr("Transpose"), this, SLOT(transpose()), 0);
+ menuEdit->insertItem(
+ QIconSet(*edit_midiIcon), tr("Midi"), midiEdit);
+
+ menuEdit->insertSeparator();
+ menuEdit->insertItem(
+ QIconSet(*edit_listIcon), tr("Song info"), this, SLOT(startSongInfo()), 0);
+ //-------------------------------------------------------------
+ // popup View
+ //-------------------------------------------------------------
+
+ menuView = new QPopupMenu(this);
+ menuView->setCheckable(true);
+ menuBar()->insertItem(tr("View"), menuView);
+
+ tr_id = menuView->insertItem(
+ QIconSet(*view_transport_windowIcon), tr("Transport Panel"), this, SLOT(toggleTransport()), 0);
+ bt_id = menuView->insertItem(
+ QIconSet(*view_bigtime_windowIcon), tr("Bigtime window"), this, SLOT(toggleBigTime()), 0);
+ //aid1 = menuView->insertItem(
+ // QIconSet(*mixerSIcon), tr("Mixer"), this, SLOT(toggleMixer()), 0);
+ aid1a = menuView->insertItem(
+ QIconSet(*mixerSIcon), tr("Mixer A"), this, SLOT(toggleMixer1()), 0);
+ aid1b = menuView->insertItem(
+ QIconSet(*mixerSIcon), tr("Mixer B"), this, SLOT(toggleMixer2()), 0);
+ // p3.2.24
+ aid2 = menuView->insertItem(
+ QIconSet(*cliplistSIcon), tr("Cliplist"), this, SLOT(startClipList()), 0);
+ mr_id = menuView->insertItem(
+ QIconSet(*view_markerIcon), tr("Marker View"), this, SLOT(toggleMarker()), 0);
+ //markerAction->addTo(menuView);
+
+
+ //-------------------------------------------------------------
+ // popup Structure
+ //-------------------------------------------------------------
+
+ menuStructure = new QPopupMenu(this);
+ menuStructure->setCheckable(false);
+ menuBar()->insertItem(tr("&Structure"), menuStructure);
+ menu_ids[CMD_GLOBAL_CUT] = menuStructure->insertItem(tr("Global Cut"), this, SLOT(globalCut()), 0);
+ menu_ids[CMD_GLOBAL_INSERT] = menuStructure->insertItem(tr("Global Insert"), this, SLOT(globalInsert()), 0);
+ menu_ids[CMD_GLOBAL_SPLIT] = menuStructure->insertItem(tr("Global Split"), this, SLOT(globalSplit()), 0);
+ menu_ids[CMD_COPY_RANGE] = menuStructure->insertItem(tr("Copy Range"), this, SLOT(copyRange()), 0);
+ menuStructure->setItemEnabled(menu_ids[CMD_COPY_RANGE], false);
+ menuStructure->insertSeparator();
+ menu_ids[CMD_CUT_EVENTS] = menuStructure->insertItem(tr("Cut Events"), this, SLOT(cutEvents()), 0);
+ menuStructure->setItemEnabled(menu_ids[CMD_CUT_EVENTS], false);
+
+ //-------------------------------------------------------------
+ // popup Midi
+ //-------------------------------------------------------------
+
+ midiInputPlugins = new QPopupMenu(this);
+ midiInputPlugins->setCheckable(false);
+ mpid0 = midiInputPlugins->insertItem(
+ QIconSet(*midi_inputplugins_transposeIcon), tr("Transpose"), 0);
+ mpid1 = midiInputPlugins->insertItem(
+ QIconSet(*midi_inputplugins_midi_input_transformIcon), tr("Midi Input Transform"), 1);
+ mpid2 = midiInputPlugins->insertItem(
+ QIconSet(*midi_inputplugins_midi_input_filterIcon), tr("Midi Input Filter"), 2);
+ mpid3 = midiInputPlugins->insertItem(
+ QIconSet(*midi_inputplugins_remote_controlIcon), tr("Midi Remote Control"), 3);
+/*
+** mpid4 = midiInputPlugins->insertItem(
+** QIconSet(*midi_inputplugins_random_rhythm_generatorIcon), tr("Random Rhythm Generator"), 4);
+*/
+ connect(midiInputPlugins, SIGNAL(activated(int)), SLOT(startMidiInputPlugin(int)));
+
+// midiInputPlugins->setItemEnabled(mpid4, false);
+
+ menu_functions = new QPopupMenu(this);
+ menu_functions->setCheckable(true);
+ menuBar()->insertItem(tr("&Midi"), menu_functions);
+ menu_functions->setCaption(tr("Midi"));
+
+ menuScriptPlugins = new QPopupMenu(this);
+ song->populateScriptMenu(menuScriptPlugins, this);
+ menu_functions->insertItem(tr("&Plugins"), menuScriptPlugins);
+
+ menu_ids[CMD_MIDI_EDIT_INSTRUMENTS] = menu_functions->insertItem(
+ QIconSet(*midi_edit_instrumentIcon), tr("Edit Instrument"), this, SLOT(startEditInstrument()), 0);
+ menu_functions->insertItem(
+ QIconSet(*midi_inputpluginsIcon), tr("Input Plugins"), midiInputPlugins, Key_P);
+ menu_functions->insertSeparator();
+ menu_ids[CMD_MIDI_RESET] = menu_functions->insertItem(
+ QIconSet(*midi_reset_instrIcon), tr("Reset Instr."), this, SLOT(resetMidiDevices()), 0);
+ menu_ids[CMD_MIDI_INIT] = menu_functions->insertItem(
+ QIconSet(*midi_init_instrIcon), tr("Init Instr."), this, SLOT(initMidiDevices()), 0);
+ menu_ids[CMD_MIDI_LOCAL_OFF] = menu_functions->insertItem(
+ QIconSet(*midi_local_offIcon), tr("local off"), this, SLOT(localOff()), 0);
+
+ //-------------------------------------------------------------
+ // popup Audio
+ //-------------------------------------------------------------
+
+ menu_audio = new QPopupMenu(this);
+ menu_audio->setCheckable(true);
+ menuBar()->insertItem(tr("&Audio"), menu_audio);
+ menu_ids[CMD_AUDIO_BOUNCE_TO_TRACK] = menu_audio->insertItem(
+ QIconSet(*audio_bounce_to_trackIcon), tr("Bounce to Track"), this, SLOT(bounceToTrack()), 0);
+ menu_ids[CMD_AUDIO_BOUNCE_TO_FILE] = menu_audio->insertItem(
+ QIconSet(*audio_bounce_to_fileIcon), tr("Bounce to File"), this, SLOT(bounceToFile()), 0);
+ menu_audio->insertSeparator();
+ menu_ids[CMD_AUDIO_RESTART] = menu_audio->insertItem(
+ QIconSet(*audio_restartaudioIcon), tr("Restart Audio"), this, SLOT(seqRestart()), 0);
+
+ //-------------------------------------------------------------
+ // popup Automation
+ //-------------------------------------------------------------
+
+ menuAutomation = new QPopupMenu(this);
+ menuAutomation->setCheckable(true);
+ menuBar()->insertItem(tr("Automation"), menuAutomation);
+ autoId = menuAutomation->insertItem(
+ QIconSet(*automation_mixerIcon), tr("Mixer Automation"), this, SLOT(switchMixerAutomation()), 0);
+ menuAutomation->insertSeparator();
+ menu_ids[CMD_MIXER_SNAPSHOT] = menuAutomation->insertItem(
+ QIconSet(*automation_take_snapshotIcon), tr("Take Snapshot"), this, SLOT(takeAutomationSnapshot()), 0);
+ menu_ids[CMD_MIXER_AUTOMATION_CLEAR] = menuAutomation->insertItem(
+ QIconSet(*automation_clear_dataIcon), tr("Clear Automation Data"), this, SLOT(clearAutomation()), 0);
+ menuAutomation->setItemEnabled(menu_ids[CMD_MIXER_AUTOMATION_CLEAR], false);
+
+ //-------------------------------------------------------------
+ // popup Settings
+ //-------------------------------------------------------------
+
+ follow = new QPopupMenu(this);
+ follow->setCheckable(false);
+ fid0 = follow->insertItem(tr("dont follow Song"), CMD_FOLLOW_NO);
+ fid1 = follow->insertItem(tr("follow page"), CMD_FOLLOW_JUMP);
+ fid2 = follow->insertItem(tr("follow continuous"), CMD_FOLLOW_CONTINUOUS);
+ follow->setItemChecked(fid1, true);
+ connect(follow, SIGNAL(activated(int)), SLOT(cmd(int)));
+
+ menuSettings = new QPopupMenu(this);
+ menuSettings->setCheckable(false);
+ menuBar()->insertItem(tr("Settings"), menuSettings);
+ menu_ids[CMD_GLOBAL_CONFIG] = menuSettings->insertItem(
+ QIconSet(*settings_globalsettingsIcon), tr("Global Settings"), this, SLOT(configGlobalSettings()),0);
+ menu_ids[CMD_CONFIG_SHORTCUTS] = menuSettings->insertItem(
+ QIconSet(*settings_configureshortcutsIcon), tr("Configure shortcuts"), this, SLOT(configShortCuts()), 0);
+ menuSettings->insertItem(
+ QIconSet(*settings_follow_songIcon), tr("follow song"), follow, Key_F);
+ menu_ids[CMD_CONFIG_METRONOME] = menuSettings->insertItem(
+ QIconSet(*settings_metronomeIcon), tr("Metronome"), this, SLOT(configMetronome()), 0);
+ menuSettings->insertSeparator();
+ menu_ids[CMD_CONFIG_MIDISYNC] = menuSettings->insertItem(
+ QIconSet(*settings_midisyncIcon), tr("Midi Sync"), this, SLOT(configMidiSync()), 0);
+ menu_ids[CMD_MIDI_FILE_CONFIG] = menuSettings->insertItem(
+ QIconSet(*settings_midifileexportIcon), tr("Midi File Import/Export"), this, SLOT(configMidiFile()), 0);
+ menuSettings->insertSeparator();
+ menu_ids[CMD_APPEARANCE_SETTINGS] = menuSettings->insertItem(
+ QIconSet(*settings_appearance_settingsIcon), tr("Appearance settings"), this, SLOT(configAppearance()), 0);
+ menuSettings->insertSeparator();
+ menu_ids[CMD_CONFIG_MIDI_PORTS] = menuSettings->insertItem(
+ QIconSet(*settings_midiport_softsynthsIcon), tr("Midi Ports / Soft Synth"), this, SLOT(configMidiPorts()), 0);
+
+ //---------------------------------------------------
+ // popup Help
+ //---------------------------------------------------
+
+ menuBar()->insertSeparator();
+ menu_help = new QPopupMenu(this);
+ menu_help->setCheckable(false);
+ menuBar()->insertItem(tr("&Help"), menu_help);
+
+ menu_ids[CMD_OPEN_HELP] = menu_help->insertItem(tr("&Manual"), this, SLOT(startHelpBrowser()), 0);
+ menu_ids[CMD_OPEN_HOMEPAGE] = menu_help->insertItem(tr("&MusE homepage"), this, SLOT(startHomepageBrowser()), 0);
+ menu_help->insertSeparator();
+ menu_ids[CMD_OPEN_BUG] = menu_help->insertItem(tr("&Report Bug..."), this, SLOT(startBugBrowser()), 0);
+ menu_help->insertSeparator();
+ menu_help->insertItem(tr("&About MusE"), this, SLOT(about()));
+ menu_help->insertItem(tr("About&Qt"), this, SLOT(aboutQt()));
+ menu_help->insertSeparator();
+ menu_ids[CMD_START_WHATSTHIS] = menu_help->insertItem(tr("What's &This?"), this, SLOT(whatsThis()), 0);
+
+ //---------------------------------------------------
+ // Central Widget
+ //---------------------------------------------------
+
+ arranger = new Arranger(this, "arranger");
+ setCentralWidget(arranger);
+
+ connect(tools1, SIGNAL(toolChanged(int)), arranger, SLOT(setTool(int)));
+ connect(arranger, SIGNAL(editPart(Track*)), SLOT(startEditor(Track*)));
+ connect(arranger, SIGNAL(dropSongFile(const QString&)), SLOT(loadProjectFile(const QString&)));
+ connect(arranger, SIGNAL(dropMidiFile(const QString&)), SLOT(importMidi(const QString&)));
+ connect(arranger, SIGNAL(startEditor(PartList*,int)), SLOT(startEditor(PartList*,int)));
+ connect(arranger, SIGNAL(toolChanged(int)), tools1, SLOT(set(int)));
+ connect(this, SIGNAL(configChanged()), arranger, SLOT(configChanged()));
+
+ connect(arranger, SIGNAL(setUsedTool(int)), SLOT(setUsedTool(int)));
+
+ //---------------------------------------------------
+ // read list of "Recent Projects"
+ //---------------------------------------------------
+
+ QString prjPath(getenv("HOME"));
+ prjPath += QString("/.musePrj");
+ FILE* f = fopen(prjPath.latin1(), "r");
+ if (f == 0) {
+ perror("open projectfile");
+ 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();
+
+ populateAddTrack(addTrack);
+
+ transport = new Transport(this, "transport");
+ bigtime = 0;
+
+ QClipboard* cb = QApplication::clipboard();
+ connect(cb, SIGNAL(dataChanged()), SLOT(clipboardChanged()));
+ connect(cb, SIGNAL(selectionChanged()), SLOT(clipboardChanged()));
+ connect(arranger, SIGNAL(selectionChanged()), SLOT(selectionChanged()));
+
+ //---------------------------------------------------
+ // load project
+ // if no songname entered on command line:
+ // startMode: 0 - load last song
+ // 1 - load default template
+ // 2 - load configured start song
+ //---------------------------------------------------
+
+ QString name;
+ bool useTemplate = false;
+ if (argc >= 2)
+ name = argv[0];
+ else if (config.startMode == 0) {
+ if (argc < 2)
+ name = projectList[0] ? *projectList[0] : QString("untitled");
+ else
+ name = argv[0];
+ printf("starting with selected song %s\n", config.startSong.latin1());
+ }
+ else if (config.startMode == 1) {
+ printf("starting with default template\n");
+ name = museGlobalShare + QString("/templates/default.med");
+ useTemplate = true;
+ }
+ else if (config.startMode == 2) {
+ printf("starting with pre configured song %s\n", config.startSong.latin1());
+ name = config.startSong;
+ }
+ song->blockSignals(false);
+ loadProjectFile(name, useTemplate, true);
+ changeConfig(false);
+
+ song->update();
+ }
+
+//---------------------------------------------------------
+// setHeartBeat
+//---------------------------------------------------------
+
+void MusE::setHeartBeat()
+ {
+ heartBeatTimer->start(1000/config.guiRefresh);
+ }
+
+//---------------------------------------------------------
+// resetDevices
+//---------------------------------------------------------
+
+void MusE::resetMidiDevices()
+ {
+ audio->msgResetMidiDevices();
+ }
+
+//---------------------------------------------------------
+// initMidiDevices
+//---------------------------------------------------------
+
+void MusE::initMidiDevices()
+ {
+ // Added by T356
+ //audio->msgIdle(true);
+
+ audio->msgInitMidiDevices();
+
+ // Added by T356
+ //audio->msgIdle(false);
+ }
+
+//---------------------------------------------------------
+// localOff
+//---------------------------------------------------------
+
+void MusE::localOff()
+ {
+ audio->msgLocalOff();
+ }
+
+//---------------------------------------------------------
+// loadProjectFile
+// load *.med, *.mid, *.kar
+//
+// template - if true, load file but do not change
+// project name
+//---------------------------------------------------------
+
+// for drop:
+void MusE::loadProjectFile(const QString& name)
+ {
+ loadProjectFile(name, false, false);
+ }
+
+void MusE::loadProjectFile(const QString& name, bool songTemplate, bool loadAll)
+ {
+ //
+ // stop audio threads if running
+ //
+ bool restartSequencer = audio->isRunning();
+ if (restartSequencer) {
+ if (audio->isPlaying()) {
+ audio->msgPlay(false);
+ while (audio->isPlaying())
+ qApp->processEvents();
+ }
+ seqStop();
+ }
+ microSleep(200000);
+ loadProjectFile1(name, songTemplate, loadAll);
+ microSleep(200000);
+ if (restartSequencer)
+ seqStart();
+
+ if (song->getSongInfo().length()>0)
+ startSongInfo(false);
+ }
+
+//---------------------------------------------------------
+// loadProjectFile
+// load *.med, *.mid, *.kar
+//
+// template - if true, load file but do not change
+// project name
+// loadAll - load song data + configuration data
+//---------------------------------------------------------
+
+void MusE::loadProjectFile1(const QString& name, bool songTemplate, bool loadAll)
+ {
+ //if (audioMixer)
+ // audioMixer->clear();
+ if (mixer1)
+ mixer1->clear();
+ if (mixer2)
+ mixer2->clear();
+ arranger->clear(); // clear track info
+ if (clearSong())
+ return;
+
+ QFileInfo fi(name);
+ if (songTemplate) {
+ if (!fi.isReadable()) {
+ QMessageBox::critical(this, QString("MusE"),
+ tr("Cannot read template"));
+ return;
+ }
+ project.setFile("untitled");
+ }
+ else {
+ printf("Setting project path to %s\n", fi.dirPath(true).latin1());
+ museProject = fi.dirPath(true);
+ project.setFile(name);
+ }
+ // Changed by T356. 01/19/2010. We want the complete extension here.
+ //QString ex = fi.extension(false).lower();
+ //if (ex.length() == 3)
+ // ex += ".";
+ //ex = ex.left(4);
+ QString ex = fi.extension(true).lower();
+ QString mex = ex.section('.', -1, -1);
+ if((mex == "gz") || (mex == "bz2"))
+ mex = ex.section('.', -2, -2);
+
+ //if (ex.isEmpty() || ex == "med.") {
+ if (ex.isEmpty() || mex == "med") {
+ //
+ // read *.med file
+ //
+ bool popenFlag;
+ FILE* f = fileOpen(this, fi.filePath(), QString(".med"), "r", popenFlag, true);
+ if (f == 0) {
+ if (errno != ENOENT) {
+ QMessageBox::critical(this, QString("MusE"),
+ tr("File open error"));
+ setUntitledProject();
+ }
+ else
+ setConfigDefaults();
+ }
+ else {
+ Xml xml(f);
+ read(xml, !loadAll);
+ bool fileError = ferror(f);
+ popenFlag ? pclose(f) : fclose(f);
+ if (fileError) {
+ QMessageBox::critical(this, QString("MusE"),
+ tr("File read error"));
+ setUntitledProject();
+ }
+ }
+ }
+ //else if (ex == "mid." || ex == "kar.") {
+ else if (mex == "mid" || mex == "kar") {
+ setConfigDefaults();
+ if (!importMidi(name, false))
+ setUntitledProject();
+ }
+ else {
+ QMessageBox::critical(this, QString("MusE"),
+ tr("Unknown File Format: ") + ex);
+ setUntitledProject();
+ }
+ if (!songTemplate) {
+ addProject(project.absFilePath());
+ setCaption(QString("MusE: Song: ") + project.baseName(true));
+ }
+ song->dirty = false;
+
+ menuView->setItemChecked(tr_id, config.transportVisible);
+ menuView->setItemChecked(bt_id, config.bigTimeVisible);
+ menuView->setItemChecked(mr_id, config.markerVisible);
+ menuAutomation->setItemChecked(autoId, automation);
+
+ if (loadAll) {
+ showBigtime(config.bigTimeVisible);
+ //showMixer(config.mixerVisible);
+ showMixer1(config.mixer1Visible);
+ showMixer2(config.mixer1Visible);
+ showMarker(config.markerVisible);
+ resize(config.geometryMain.size());
+ move(config.geometryMain.topLeft());
+
+ if (config.transportVisible)
+ transport->show();
+ transport->move(config.geometryTransport.topLeft());
+ showTransport(config.transportVisible);
+ }
+
+ transport->setMasterFlag(song->masterFlag());
+ punchinAction->setOn(song->punchin());
+ punchoutAction->setOn(song->punchout());
+ loopAction->setOn(song->loop());
+ song->update();
+ song->updatePos();
+ clipboardChanged(); // enable/disable "Paste"
+ selectionChanged(); // enable/disable "Copy" & "Paste"
+ }
+
+//---------------------------------------------------------
+// setUntitledProject
+//---------------------------------------------------------
+
+void MusE::setUntitledProject()
+ {
+ setConfigDefaults();
+ QString name("untitled");
+ museProject = QFileInfo(name).dirPath(true);
+ project.setFile(name);
+ setCaption(tr("MusE: Song: ") + project.baseName(true));
+ }
+
+//---------------------------------------------------------
+// setConfigDefaults
+//---------------------------------------------------------
+
+void MusE::setConfigDefaults()
+ {
+ readConfiguration(); // used for reading midi files
+#if 0
+ if (readConfiguration()) {
+ //
+ // failed to load config file
+ // set buildin defaults
+ //
+ configTransportVisible = false;
+ configBigTimeVisible = false;
+
+ for (int channel = 0; channel < 2; ++channel)
+ song->addTrack(Track::AUDIO_GROUP);
+ AudioTrack* out = (AudioTrack*)song->addTrack(Track::AUDIO_OUTPUT);
+ AudioTrack* in = (AudioTrack*)song->addTrack(Track::AUDIO_INPUT);
+
+ // set some default routes
+ std::list<QString> il = audioDevice->inputPorts();
+ int channel = 0;
+ for (std::list<QString>::iterator i = il.begin(); i != il.end(); ++i, ++channel) {
+ if (channel == 2)
+ break;
+ audio->msgAddRoute(Route(out,channel), Route(*i,channel));
+ }
+ channel = 0;
+ std::list<QString> ol = audioDevice->outputPorts();
+ for (std::list<QString>::iterator i = ol.begin(); i != ol.end(); ++i, ++channel) {
+ if (channel == 2)
+ break;
+ audio->msgAddRoute(Route(*i, channel), Route(in,channel));
+ }
+ }
+#endif
+ song->dirty = false;
+ }
+
+//---------------------------------------------------------
+// setFollow
+//---------------------------------------------------------
+
+void MusE::setFollow()
+ {
+ Song::FollowMode fm = song->follow();
+ follow->setItemChecked(fid0, fm == Song::NO);
+ follow->setItemChecked(fid1, fm == Song::JUMP);
+ follow->setItemChecked(fid2, fm == Song::CONTINUOUS);
+ }
+
+//---------------------------------------------------------
+// MusE::loadProject
+//---------------------------------------------------------
+
+void MusE::loadProject()
+ {
+ bool loadAll;
+ QString fn = getOpenFileName(QString(""), med_file_pattern, this,
+ tr("MusE: load project"), &loadAll);
+ if (!fn.isEmpty()) {
+ museProject = QFileInfo(fn).dirPath(true);
+ loadProjectFile(fn, false, loadAll);
+ }
+ }
+
+//---------------------------------------------------------
+// loadTemplate
+//---------------------------------------------------------
+
+void MusE::loadTemplate()
+ {
+ QString fn = getOpenFileName(QString("templates"), med_file_pattern, this,
+ tr("MusE: load template"), 0);
+ if (!fn.isEmpty()) {
+ // museProject = QFileInfo(fn).dirPath(true);
+ loadProjectFile(fn, true, true);
+ setUntitledProject();
+ }
+ }
+
+//---------------------------------------------------------
+// save
+//---------------------------------------------------------
+
+bool MusE::save()
+ {
+ if (project.baseName(true) == "untitled")
+ return saveAs();
+ else
+ return save(project.filePath(), false);
+ }
+
+//---------------------------------------------------------
+// save
+//---------------------------------------------------------
+
+bool MusE::save(const QString& name, bool overwriteWarn)
+ {
+ QString backupCommand;
+
+ // By T356. Cache the jack in/out route names BEFORE saving.
+ // Because jack often shuts down during save, causing the routes to be lost in the file.
+ // Not required any more...
+ //cacheJackRouteNames();
+
+ if (QFile::exists(name)) {
+ backupCommand.sprintf("cp \"%s\" \"%s.backup\"", name.latin1(), name.latin1());
+ }
+ else if (QFile::exists(name + QString(".med"))) {
+ backupCommand.sprintf("cp \"%s.med\" \"%s.med.backup\"", name.latin1(), name.latin1());
+ }
+ if (!backupCommand.isEmpty())
+ system(backupCommand.latin1());
+
+ bool popenFlag;
+ FILE* f = fileOpen(this, name, QString(".med"), "w", popenFlag, false, overwriteWarn);
+ if (f == 0)
+ return false;
+ Xml xml(f);
+ write(xml);
+ if (ferror(f)) {
+ QString s = "Write File\n" + name + "\nfailed: "
+ + strerror(errno);
+ QMessageBox::critical(this,
+ tr("MusE: Write File failed"), s);
+ popenFlag? pclose(f) : fclose(f);
+ unlink(name.latin1());
+ return false;
+ }
+ else {
+ popenFlag? pclose(f) : fclose(f);
+ song->dirty = false;
+ return true;
+ }
+ }
+
+//---------------------------------------------------------
+// quitDoc
+//---------------------------------------------------------
+
+void MusE::quitDoc()
+ {
+ close(true);
+ }
+
+//---------------------------------------------------------
+// closeEvent
+//---------------------------------------------------------
+
+void MusE::closeEvent(QCloseEvent*)
+ {
+ song->setStop(true);
+ //
+ // wait for sequencer
+ //
+ while (audio->isPlaying()) {
+ qApp->processEvents();
+ }
+ 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("&Skip"), tr("&Abort"), 0, 2);
+ if (n == 0) {
+ if (!save()) // dont quit if save failed
+ return;
+ }
+ else if (n == 2)
+ return;
+ }
+ seqStop();
+
+ WaveTrackList* wt = song->waves();
+ for (iWaveTrack iwt = wt->begin(); iwt != wt->end(); ++iwt) {
+ WaveTrack* t = *iwt;
+ if (t->recFile() && t->recFile()->samples() == 0) {
+ t->recFile()->remove();
+ }
+ }
+
+ // save "Open Recent" list
+ QString prjPath(getenv("HOME"));
+ prjPath += "/.musePrj";
+ FILE* f = fopen(prjPath.latin1(), "w");
+ if (f) {
+ for (int i = 0; i < PROJECT_LIST_LEN; ++i) {
+ fprintf(f, "%s\n", projectList[i] ? projectList[i]->latin1() : "");
+ }
+ fclose(f);
+ }
+ if(debugMsg)
+ printf("Muse: Exiting JackAudio\n");
+ exitJackAudio();
+ if(debugMsg)
+ printf("Muse: Exiting DummyAudio\n");
+ exitDummyAudio();
+ if(debugMsg)
+ printf("Muse: Exiting Metronome\n");
+ exitMetronome();
+
+ // Changed by Tim. p3.3.14
+ //SynthIList* sl = song->syntis();
+ //for (iSynthI i = sl->begin(); i != sl->end(); ++i)
+ // delete *i;
+ song->cleanupForQuit();
+
+ if(debugMsg)
+ printf("Muse: Cleaning up temporary wavefiles + peakfiles\n");
+ // 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(true) + ".wca");
+ }
+
+ // Added by Tim. p3.3.14
+
+#ifdef HAVE_LASH
+ // Disconnect gracefully from LASH.
+ if(lash_client)
+ {
+ if(debugMsg)
+ printf("Muse: Disconnecting from LASH\n");
+ lash_event_t* lashev = lash_event_new_with_type (LASH_Quit);
+ lash_send_event(lash_client, lashev);
+ }
+#endif
+
+ if(debugMsg)
+ printf("Muse: Exiting Dsp\n");
+ AL::exitDsp();
+
+ qApp->quit();
+ }
+
+//---------------------------------------------------------
+// toggleMarker
+//---------------------------------------------------------
+
+void MusE::toggleMarker()
+ {
+ showMarker(!menuView->isItemChecked(mr_id));
+ }
+
+//---------------------------------------------------------
+// showMarker
+//---------------------------------------------------------
+
+void MusE::showMarker(bool flag)
+ {
+ //printf("showMarker %d\n",flag);
+ if (markerView == 0) {
+ markerView = new MarkerView(this);
+
+ connect(arranger, SIGNAL(addMarker(int)), markerView, SLOT(addMarker(int)));
+ connect(markerView, SIGNAL(closed()), SLOT(markerClosed()));
+ toplevels.push_back(Toplevel(Toplevel::MARKER, (unsigned long)(markerView), markerView));
+ markerView->show();
+ }
+
+ markerView->setShown(flag);
+ menuView->setItemChecked(mr_id, flag);
+ }
+
+//---------------------------------------------------------
+// markerClosed
+//---------------------------------------------------------
+
+void MusE::markerClosed()
+ {
+ menuView->setItemChecked(mr_id, false);
+ }
+
+//---------------------------------------------------------
+// toggleTransport
+//---------------------------------------------------------
+
+void MusE::toggleTransport()
+ {
+ showTransport(!menuView->isItemChecked(tr_id));
+ }
+
+//---------------------------------------------------------
+// showTransport
+//---------------------------------------------------------
+
+void MusE::showTransport(bool flag)
+ {
+ transport->setShown(flag);
+ menuView->setItemChecked(tr_id, flag);
+ }
+
+//---------------------------------------------------------
+// saveAs
+//---------------------------------------------------------
+
+bool MusE::saveAs()
+ {
+// QString name = getSaveFileName(museProject, med_file_pattern, this,
+// QString name = getSaveFileName(QString(""), med_file_pattern, this,
+ QString name = getSaveFileName(QString(""), med_file_save_pattern, this,
+ tr("MusE: Save As"));
+ bool ok = false;
+ if (!name.isEmpty()) {
+ QString tempOldProj = museProject;
+ museProject = QFileInfo(name).dirPath(true);
+ ok = save(name, true);
+ if (ok) {
+ project.setFile(name);
+ setCaption(tr("MusE: Song: ") + project.baseName(true));
+ addProject(name);
+ }
+ else
+ museProject = tempOldProj;
+ }
+
+ return ok;
+ }
+
+//---------------------------------------------------------
+// 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 3: startDrumEditor(pl); break;
+ case 4: startWaveEditor(pl); break;
+ }
+ }
+
+//---------------------------------------------------------
+// startEditor
+//---------------------------------------------------------
+
+void MusE::startEditor(Track* t)
+ {
+ switch (t->type()) {
+ case Track::MIDI: startPianoroll(); break;
+ case Track::DRUM: startDrumEditor(); break;
+ case Track::WAVE: startWaveEditor(); break;
+ default:
+ break;
+ }
+ }
+
+//---------------------------------------------------------
+// getMidiPartsToEdit
+//---------------------------------------------------------
+
+PartList* MusE::getMidiPartsToEdit()
+ {
+ PartList* pl = song->getSelectedMidiParts();
+ if (pl->empty()) {
+ QMessageBox::critical(this, QString("MusE"), tr("Nothing to edit"));
+ 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, this, 0, arranger->cursorValue());
+ pianoroll->show();
+ toplevels.push_back(Toplevel(Toplevel::PIANO_ROLL, (unsigned long)(pianoroll), pianoroll));
+ connect(pianoroll, SIGNAL(deleted(unsigned long)), SLOT(toplevelDeleted(unsigned long)));
+ connect(muse, SIGNAL(configChanged()), pianoroll, SLOT(configChanged()));
+ }
+
+//---------------------------------------------------------
+// startListenEditor
+//---------------------------------------------------------
+
+void MusE::startListEditor()
+ {
+ PartList* pl = getMidiPartsToEdit();
+ if (pl == 0)
+ return;
+ startListEditor(pl);
+ }
+
+void MusE::startListEditor(PartList* pl)
+ {
+ ListEdit* listEditor = new ListEdit(pl);
+ listEditor->show();
+ toplevels.push_back(Toplevel(Toplevel::LISTE, (unsigned long)(listEditor), listEditor));
+ connect(listEditor, SIGNAL(deleted(unsigned long)), SLOT(toplevelDeleted(unsigned long)));
+ connect(muse,SIGNAL(configChanged()), listEditor, SLOT(configChanged()));
+ }
+
+//---------------------------------------------------------
+// startMasterEditor
+//---------------------------------------------------------
+
+void MusE::startMasterEditor()
+ {
+ MasterEdit* masterEditor = new MasterEdit();
+ masterEditor->show();
+ toplevels.push_back(Toplevel(Toplevel::MASTER, (unsigned long)(masterEditor), masterEditor));
+ connect(masterEditor, SIGNAL(deleted(unsigned long)), SLOT(toplevelDeleted(unsigned long)));
+ }
+
+//---------------------------------------------------------
+// startLMasterEditor
+//---------------------------------------------------------
+
+void MusE::startLMasterEditor()
+ {
+ LMaster* lmaster = new LMaster();
+ lmaster->show();
+ toplevels.push_back(Toplevel(Toplevel::LMASTER, (unsigned long)(lmaster), lmaster));
+ connect(lmaster, SIGNAL(deleted(unsigned long)), SLOT(toplevelDeleted(unsigned long)));
+ connect(muse, SIGNAL(configChanged()), lmaster, SLOT(configChanged()));
+ }
+
+//---------------------------------------------------------
+// startDrumEditor
+//---------------------------------------------------------
+
+void MusE::startDrumEditor()
+ {
+ PartList* pl = getMidiPartsToEdit();
+ if (pl == 0)
+ return;
+ startDrumEditor(pl);
+ }
+
+void MusE::startDrumEditor(PartList* pl)
+ {
+
+ DrumEdit* drumEditor = new DrumEdit(pl, this, 0, arranger->cursorValue());
+ drumEditor->show();
+ toplevels.push_back(Toplevel(Toplevel::DRUM, (unsigned long)(drumEditor), drumEditor));
+ connect(drumEditor, SIGNAL(deleted(unsigned long)), SLOT(toplevelDeleted(unsigned long)));
+ 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"));
+ return;
+ }
+ startWaveEditor(pl);
+ }
+
+void MusE::startWaveEditor(PartList* pl)
+ {
+ WaveEdit* waveEditor = new WaveEdit(pl);
+ waveEditor->show();
+ connect(muse, SIGNAL(configChanged()), waveEditor, SLOT(configChanged()));
+ toplevels.push_back(Toplevel(Toplevel::WAVE, (unsigned long)(waveEditor), waveEditor));
+ connect(waveEditor, SIGNAL(deleted(unsigned long)), SLOT(toplevelDeleted(unsigned long)));
+ }
+
+
+//---------------------------------------------------------
+// startSongInfo
+//---------------------------------------------------------
+void MusE::startSongInfo(bool editable)
+ {
+ printf("startSongInfo!!!!\n");
+ SongInfo info;
+ info.songInfoText->setText(song->getSongInfo());
+ info.songInfoText->setReadOnly(!editable);
+ info.show();
+ if( info.exec() == QDialog::Accepted) {
+ if (editable)
+ song->setSongInfo(info.songInfoText->text());
+ }
+
+ }
+
+//---------------------------------------------------------
+// showDidYouKnowDialog
+//---------------------------------------------------------
+void MusE::showDidYouKnowDialog()
+ {
+ if ((bool)config.showDidYouKnow == true) {
+ printf("show did you know dialog!!!!\n");
+ DidYouKnow dyk;
+ dyk.tipText->setText("To get started with MusE why don't you try some demo songs available at http://demos.muse-sequencer.org/");
+ dyk.show();
+ if( dyk.exec()) {
+ if (dyk.dontShowCheckBox->isChecked()) {
+ printf("disables dialog!\n");
+ config.showDidYouKnow=false;
+ muse->changeConfig(true); // save settings
+ }
+ }
+ }
+ }
+//---------------------------------------------------------
+// startDefineController
+//---------------------------------------------------------
+
+
+//---------------------------------------------------------
+// startClipList
+//---------------------------------------------------------
+
+void MusE::startClipList()
+ {
+ if (clipListEdit == 0) {
+ clipListEdit = new ClipListEdit();
+ toplevels.push_back(Toplevel(Toplevel::CLIPLIST, (unsigned long)(clipListEdit), clipListEdit));
+ connect(clipListEdit, SIGNAL(deleted(unsigned long)), SLOT(toplevelDeleted(unsigned long)));
+ }
+ clipListEdit->show();
+ menu_audio->setItemChecked(aid2, true);
+ }
+
+//---------------------------------------------------------
+// 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]->latin1();
+ const char* p = strrchr(path, '/');
+ if (p == 0)
+ p = path;
+ else
+ ++p;
+ openRecent->insertItem(QString(p), i);
+ }
+ }
+
+//---------------------------------------------------------
+// selectProject
+//---------------------------------------------------------
+
+void MusE::selectProject(int id)
+ {
+ if (id < 0)
+ return;
+ assert(id < PROJECT_LIST_LEN);
+ QString* name = projectList[id];
+ if (name == 0)
+ return;
+ loadProjectFile(*name, false, true);
+ }
+
+//---------------------------------------------------------
+// toplevelDeleted
+//---------------------------------------------------------
+
+void MusE::toplevelDeleted(unsigned long tl)
+ {
+ for (iToplevel i = toplevels.begin(); i != toplevels.end(); ++i) {
+ if (i->object() == tl) {
+ switch(i->type()) {
+ case Toplevel::MARKER:
+ break;
+ case Toplevel::CLIPLIST:
+ menu_audio->setItemChecked(aid2, false);
+ return;
+ // the followin editors can exist in more than
+ // one instantiation:
+ case Toplevel::PIANO_ROLL:
+ case Toplevel::LISTE:
+ case Toplevel::DRUM:
+ case Toplevel::MASTER:
+ case Toplevel::WAVE:
+ case Toplevel::LMASTER:
+ break;
+ }
+ toplevels.erase(i);
+ return;
+ }
+ }
+ printf("topLevelDeleted: top level %lx not found\n", tl);
+ //assert(false);
+ }
+
+//---------------------------------------------------------
+// ctrlChanged
+// midi ctrl value changed
+//---------------------------------------------------------
+
+#if 0
+void MusE::ctrlChanged()
+ {
+ arranger->updateInspector();
+ }
+#endif
+
+//---------------------------------------------------------
+// kbAccel
+//---------------------------------------------------------
+
+void MusE::kbAccel(int key)
+ {
+ if (key == shortcuts[SHRT_TOGGLE_METRO].key) {
+ song->setClick(!song->click());
+ }
+ else if (key == shortcuts[SHRT_PLAY_TOGGLE].key) {
+ if (audio->isPlaying())
+ //song->setStopPlay(false);
+ song->setStop(true);
+ else if (!config.useOldStyleStopShortCut)
+ song->setPlay(true);
+ else if (song->cpos() != song->lpos())
+ song->setPos(0, song->lPos());
+ else {
+ Pos p(0, true);
+ song->setPos(0, p);
+ }
+ }
+ else if (key == shortcuts[SHRT_STOP].key) {
+ //song->setPlay(false);
+ song->setStop(true);
+ }
+ else if (key == shortcuts[SHRT_GOTO_START].key) {
+ Pos p(0, true);
+ song->setPos(0, p);
+ }
+ else if (key == shortcuts[SHRT_PLAY_SONG].key ) {
+ song->setPlay(true);
+ }
+ else if (key == shortcuts[SHRT_GOTO_LEFT].key) {
+ if (!song->record())
+ song->setPos(0, song->lPos());
+ }
+ else if (key == shortcuts[SHRT_GOTO_RIGHT].key) {
+ if (!song->record())
+ song->setPos(0, song->rPos());
+ }
+ else if (key == shortcuts[SHRT_TOGGLE_LOOP].key) {
+ song->setLoop(!song->loop());
+ }
+ else if (key == shortcuts[SHRT_START_REC].key) {
+ if (!audio->isPlaying()) {
+ song->setRecord(!song->record());
+ }
+ }
+ else if (key == shortcuts[SHRT_OPEN_TRANSPORT].key) {
+ toggleTransport();
+ }
+ else if (key == shortcuts[SHRT_OPEN_BIGTIME].key) {
+ toggleBigTime();
+ }
+ //else if (key == shortcuts[SHRT_OPEN_MIXER].key) {
+ // toggleMixer();
+ // }
+ else if (key == shortcuts[SHRT_OPEN_MIXER].key) {
+ toggleMixer1();
+ }
+ else if (key == shortcuts[SHRT_OPEN_MIXER2].key) {
+ toggleMixer2();
+ }
+ else if (key == shortcuts[SHRT_NEXT_MARKER].key) {
+ if (markerView)
+ markerView->nextMarker();
+ }
+ else if (key == shortcuts[SHRT_PREV_MARKER].key) {
+ if (markerView)
+ markerView->prevMarker();
+ }
+ else {
+ if (debugMsg)
+ printf("unknown kbAccel 0x%x\n", key);
+ }
+ }
+
+//---------------------------------------------------------
+// MuseApplication
+//---------------------------------------------------------
+
+class MuseApplication : public QApplication {
+ MusE* muse;
+
+ public:
+ MuseApplication(int& argc, char** argv)
+ : QApplication(argc, argv)
+ {
+ muse = 0;
+ }
+
+
+ void setMuse(MusE* m) {
+ muse = m;
+#ifdef HAVE_LASH
+ if(useLASH)
+ startTimer (300);
+#endif
+ }
+
+ bool notify(QObject* receiver, QEvent* event) {
+ bool flag = QApplication::notify(receiver, event);
+ if (event->type() == QEvent::KeyPress) {
+ QKeyEvent* ke = (QKeyEvent*)event;
+ globalKeyState = ke->stateAfter();
+ bool accepted = ke->isAccepted();
+ if (!accepted) {
+ muse->kbAccel(ke->key());
+ return true;
+ }
+ }
+ if (event->type() == QEvent::KeyRelease) {
+ QKeyEvent* ke = (QKeyEvent*)event;
+ globalKeyState = ke->stateAfter();
+ }
+
+ return flag;
+ }
+
+#ifdef HAVE_LASH
+ virtual void timerEvent (QTimerEvent * /* e */) {
+ if(useLASH)
+ muse->lash_idle_cb ();
+ }
+#endif /* HAVE_LASH */
+
+ };
+
+//---------------------------------------------------------
+// usage
+//---------------------------------------------------------
+
+static void usage(const char* prog, const char* txt)
+ {
+ fprintf(stderr, "%s: %s\nusage: %s flags midifile\n Flags:\n",
+ prog, txt, prog);
+ fprintf(stderr, " -h this help\n");
+ fprintf(stderr, " -v print version\n");
+ fprintf(stderr, " -d debug mode: no threads, no RT\n");
+ fprintf(stderr, " -D debug mode: enable some debug messages\n");
+ fprintf(stderr, " -m debug mode: trace midi Input\n");
+ fprintf(stderr, " -M debug mode: trace midi Output\n");
+ fprintf(stderr, " -s debug mode: trace sync\n");
+ fprintf(stderr, " -a no audio\n");
+ //fprintf(stderr, " -P n set real time priority to n (default: 50)\n");
+ fprintf(stderr, " -P n set audio driver real time priority to n (Dummy only, default 40. Else fixed by Jack.)\n");
+ fprintf(stderr, " -Y n force midi real time priority to n (default: audio driver prio +1)\n");
+ fprintf(stderr, " -p don't load LADSPA plugins\n");
+#ifdef ENABLE_PYTHON
+ fprintf(stderr, " -y enable Python control support\n");
+#endif
+#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
+#ifdef HAVE_LASH
+ fprintf(stderr, " -L don't use LASH\n");
+#endif
+ fprintf(stderr, "useful environment variables:\n");
+ fprintf(stderr, " MUSE override library and shared directories location\n");
+ fprintf(stderr, " MUSEHOME override user home directory (HOME/)\n");
+ fprintf(stderr, " MUSEINSTRUMENTS override user instrument directory (MUSEHOME/muse_instruments)\n");
+ }
+
+//---------------------------------------------------------
+// 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
+
+//---------------------------------------------------------
+// main
+//---------------------------------------------------------
+
+int main(int argc, char* argv[])
+ {
+
+// error = ErrorHandler::create(argv[0]);
+ ruid = getuid();
+ euid = geteuid();
+ undoSetuid();
+ getCapabilities();
+ int noAudio = false;
+
+ const char* mu = getenv("MUSEHOME");
+ if(mu)
+ museUser = QString(mu);
+ if(museUser.isEmpty())
+ museUser = QString(getenv("HOME"));
+
+ QString museGlobal;
+ const char* p = getenv("MUSE");
+ if (p)
+ museGlobal = p;
+
+ if (museGlobal.isEmpty()) {
+ QString museGlobal(INSTPREFIX);
+ museGlobalLib = museGlobal + "/lib/muse";
+ museGlobalShare = museGlobal + "/share/muse";
+ }
+ else {
+ museGlobalLib = museGlobal + "/lib";
+ museGlobalShare = museGlobal + "/share";
+ }
+ museProject = museProjectInitPath; //getcwd(0, 0);
+ configName = QString(getenv("HOME")) + QString("/.MusE");
+
+ museInstruments = museGlobalShare + QString("/instruments");
+
+ const char* ins = getenv("MUSEINSTRUMENTS");
+ if(ins)
+ museUserInstruments = QString(ins);
+ if(museUserInstruments.isEmpty())
+ museUserInstruments = museUser + QString("/muse_instruments");
+
+#ifdef HAVE_LASH
+ lash_args_t * lash_args = 0;
+ if(useLASH)
+ lash_args = lash_extract_args (&argc, &argv);
+#endif
+
+ srand(time(0)); // initialize random number generator
+// signal(SIGCHLD, catchSignal); // interferes with initVST()
+ initMidiController();
+ QApplication::setColorSpec(QApplication::ManyColor);
+ MuseApplication app(argc, argv);
+
+ initShortCuts();
+ readConfiguration();
+
+ if (config.useDenormalBias)
+ printf("Denormal protection enabled.\n");
+ // SHOW MUSE SPLASH SCREEN
+ if (config.showSplashScreen) {
+ QPixmap splsh(museGlobalShare + "/splash.png");
+
+ if (!splsh.isNull()) {
+ QSplashScreen* muse_splash = new QSplashScreen(splsh,
+ Qt::WStyle_StaysOnTop | Qt::WDestructiveClose);
+ muse_splash->show();
+ QTimer* stimer = new QTimer(0);
+ muse_splash->connect(stimer, SIGNAL(timeout()), muse_splash, SLOT(close()));
+ stimer->start(6000, true);
+ }
+ }
+ int i;
+
+ QString optstr("ahvdDmMsP:Y:py");
+#ifdef VST_SUPPORT
+ optstr += QString("V");
+#endif
+#ifdef DSSI_SUPPORT
+ optstr += QString("I");
+#endif
+#ifdef HAVE_LASH
+ optstr += QString("L");
+#endif
+
+//#ifdef VST_SUPPORT
+// while ((i = getopt(argc, argv, "ahvdDmMsVP:py")) != EOF) {
+//#else
+// while ((i = getopt(argc, argv, "ahvdDmMsP:py")) != EOF) {
+//#endif
+
+ while ((i = getopt(argc, argv, optstr.latin1())) != EOF) {
+ char c = (char)i;
+ switch (c) {
+ case 'v': printVersion(argv[0]); return 0;
+ case 'd':
+ debugMode = true;
+ realTimeScheduling = false;
+ break;
+ case 'a':
+ noAudio = true;
+ break;
+ case 'D': debugMsg = true; break;
+ case 'm': midiInputTrace = true; break;
+ case 'M': midiOutputTrace = true; break;
+ case 's': debugSync = true; break;
+ case 'P': realTimePriority = atoi(optarg); break;
+ case 'Y': midiRTPrioOverride = atoi(optarg); break;
+ case 'p': loadPlugins = false; break;
+ case 'V': loadVST = false; break;
+ case 'I': loadDSSI = false; break;
+ case 'L': useLASH = false; break;
+ case 'y': usePythonBridge = true; break;
+ case 'h': usage(argv[0], argv[1]); return -1;
+ default: usage(argv[0], "bad argument"); return -1;
+ }
+ }
+
+ AL::initDsp();
+
+ if (debugMsg)
+ printf("Start euid: %d ruid: %d, Now euid %d\n",
+ euid, ruid, geteuid());
+ if (debugMode) {
+ initDummyAudio();
+ realTimeScheduling = false;
+ }
+ else if (noAudio) {
+ initDummyAudio();
+ realTimeScheduling = true;
+ //if (debugMode) { // ??
+ // realTimeScheduling = false;
+ // }
+ }
+ else if (initJackAudio()) {
+ if (!debugMode)
+ {
+ QMessageBox::critical(NULL, "MusE fatal error", "MusE <b>failed</b> to find a <b>Jack audio server</b>.<br><br>"
+ "<i>MusE will continue without audio support (-a switch)!</i><br><br>"
+ "If this was not intended check that Jack was started. "
+ "If Jack <i>was</i> started check that it was\n"
+ "started as the same user as MusE.\n");
+
+ initDummyAudio();
+ noAudio = true;
+ realTimeScheduling = true;
+ if (debugMode) {
+ realTimeScheduling = false;
+ }
+ }
+ 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");
+ initDummyAudio();
+ //realTimeScheduling = audioDevice->isRealtime();
+ }
+ realTimeScheduling = true;
+ }
+ else
+ realTimeScheduling = audioDevice->isRealtime();
+
+ // setup the prefetch fifo length now that the segmentSize is known
+ // Changed by Tim. p3.3.17
+ // Changed to 4 *, JUST FOR TEST!!!
+ fifoLength = 131072/segmentSize;
+ //fifoLength = (131072/segmentSize) * 4;
+
+
+ argc -= optind;
+ ++argc;
+
+ if (debugMsg) {
+ printf("global lib: <%s>\n", museGlobalLib.latin1());
+ printf("global share: <%s>\n", museGlobalShare.latin1());
+ printf("muse home: <%s>\n", museUser.latin1());
+ printf("project dir: <%s>\n", museProject.latin1());
+ printf("user instruments: <%s>\n", museUserInstruments.latin1());
+ }
+
+ static QTranslator translator(0);
+ QString locale(QTextCodec::locale());
+ if (locale != "C") {
+ QString loc("muse_");
+ loc += QString(QTextCodec::locale());
+ if (translator.load(loc, QString(".")) == false) {
+ QString lp(museGlobalShare);
+ lp += QString("/locale");
+ if (translator.load(loc, lp) == false) {
+ printf("no locale <%s>/<%s>\n", loc.latin1(), lp.latin1());
+ }
+ }
+ app.installTranslator(&translator);
+ }
+
+ if (locale == "de") {
+ printf("locale de\n");
+ hIsB = false;
+ }
+
+ if (loadPlugins)
+ initPlugins();
+
+ if (loadVST)
+ initVST();
+
+ if(loadDSSI)
+ initDSSI();
+
+ initIcons();
+
+ initMetronome();
+ QApplication::clipboard()->setSelectionMode(false);
+
+ QApplication::addLibraryPath(museGlobalLib + "/qtplugins");
+ if (debugMsg) {
+ QStringList list = app.libraryPaths();
+ QStringList::Iterator it = list.begin();
+ printf("QtLibraryPath:\n");
+ while(it != list.end()) {
+ printf(" <%s>\n", (*it).latin1());
+ ++it;
+ }
+ }
+
+ muse = new MusE(argc, &argv[optind]);
+ app.setMuse(muse);
+ muse->setIcon(*museIcon);
+ // Added by Tim. p3.3.22
+ if (!debugMode) {
+ if (mlockall(MCL_CURRENT | MCL_FUTURE))
+ perror("WARNING: Cannot lock memory:");
+ }
+
+ muse->show();
+ muse->seqStart();
+
+#ifdef HAVE_LASH
+ {
+ if(useLASH)
+ {
+ int lash_flags = LASH_Config_File;
+ const char *muse_name = PACKAGE_NAME;
+ lash_client = lash_init (lash_args, muse_name, lash_flags, LASH_PROTOCOL(2,0));
+ lash_alsa_client_id (lash_client, snd_seq_client_id (alsaSeq));
+ if (!noAudio) {
+ // p3.3.38
+ //char *jack_name = ((JackAudioDevice*)audioDevice)->getJackName();
+ const char *jack_name = audioDevice->clientName();
+ lash_jack_client_name (lash_client, jack_name);
+ }
+ }
+ }
+#endif /* HAVE_LASH */
+ QTimer::singleShot(100, muse, SLOT(showDidYouKnowDialog()));
+ return app.exec();
+ }
+
+#if 0
+//---------------------------------------------------------
+// configPart
+//---------------------------------------------------------
+
+void MusE::configPart(int id)
+ {
+ if (id < 3) {
+ partConfig->setItemChecked(0, id == 0);
+ partConfig->setItemChecked(1, id == 1);
+ partConfig->setItemChecked(2, id == 2);
+ arranger->setShowPartType(id);
+ for (int i = 3; i < 10; ++i) {
+ partConfig->setItemEnabled(i, id == 2);
+ }
+ }
+ else {
+ bool flag = !partConfig->isItemChecked(id);
+ partConfig->setItemChecked(id, flag);
+ int val = arranger->showPartEvent();
+ if (flag) {
+ val |= 1 << (id-3);
+ }
+ else {
+ val &= ~(1 << (id-3));
+ }
+ arranger->setShowPartEvent(val);
+ }
+ }
+#endif
+
+//---------------------------------------------------------
+// cmd
+// some cmd's from pulldown menu
+//---------------------------------------------------------
+
+void MusE::cmd(int cmd)
+ {
+ TrackList* tracks = song->tracks();
+ int l = song->lpos();
+ int r = song->rpos();
+
+ switch(cmd) {
+ case CMD_CUT:
+ arranger->cmd(Arranger::CMD_CUT_PART);
+ break;
+ case CMD_COPY:
+ arranger->cmd(Arranger::CMD_COPY_PART);
+ break;
+ case CMD_PASTE:
+ arranger->cmd(Arranger::CMD_PASTE_PART);
+ break;
+ case CMD_PASTE_CLONE:
+ arranger->cmd(Arranger::CMD_PASTE_CLONE_PART);
+ break;
+ case CMD_PASTE_TO_TRACK:
+ arranger->cmd(Arranger::CMD_PASTE_PART_TO_TRACK);
+ break;
+ case CMD_PASTE_CLONE_TO_TRACK:
+ arranger->cmd(Arranger::CMD_PASTE_CLONE_PART_TO_TRACK);
+ break;
+ case CMD_DELETE:
+ song->startUndo();
+ if (song->msgRemoveParts()) {
+ song->endUndo(SC_PART_REMOVED);
+ break;
+ }
+ else
+ audio->msgRemoveTracks();
+ song->endUndo(SC_TRACK_REMOVED);
+ break;
+ case CMD_DELETE_TRACK:
+ song->startUndo();
+ audio->msgRemoveTracks();
+ song->endUndo(SC_TRACK_REMOVED);
+ audio->msgUpdateSoloStates();
+ break;
+
+ case CMD_SELECT_ALL:
+ case CMD_SELECT_NONE:
+ case CMD_SELECT_INVERT:
+ case CMD_SELECT_ILOOP:
+ case CMD_SELECT_OLOOP:
+ 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));
+ switch(cmd) {
+ case CMD_SELECT_INVERT:
+ f = !p->second->selected();
+ break;
+ case CMD_SELECT_NONE:
+ f = false;
+ break;
+ case CMD_SELECT_ALL:
+ f = true;
+ break;
+ case CMD_SELECT_ILOOP:
+ f = inside;
+ break;
+ case CMD_SELECT_OLOOP:
+ f = !inside;
+ break;
+ }
+ p->second->setSelected(f);
+ }
+ }
+ song->update();
+ break;
+
+ case CMD_SELECT_PARTS:
+ 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();
+ break;
+ case CMD_FOLLOW_NO:
+ song->setFollow(Song::NO);
+ setFollow();
+ break;
+ case CMD_FOLLOW_JUMP:
+ song->setFollow(Song::JUMP);
+ setFollow();
+ break;
+ case CMD_FOLLOW_CONTINUOUS:
+ song->setFollow(Song::CONTINUOUS);
+ setFollow();
+ break;
+ }
+ }
+
+//---------------------------------------------------------
+// clipboardChanged
+//---------------------------------------------------------
+
+void MusE::clipboardChanged()
+ {
+ QCString subtype("partlist");
+ QMimeSource* ms = QApplication::clipboard()->data(QClipboard::Clipboard);
+ if (ms == 0)
+ return;
+ bool flag = false;
+ for (int i = 0; ms->format(i); ++i) {
+// printf("Format <%s\n", ms->format(i));
+ if ((strncmp(ms->format(i), "text/midipartlist", 17) == 0)
+ || (strncmp(ms->format(i), "text/wavepartlist", 17) == 0)
+ // Added by T356. Support mixed .mpt files.
+ || (strncmp(ms->format(i), "text/mixedpartlist", 18) == 0)) {
+ flag = true;
+ break;
+ }
+ }
+ menuEdit->setItemEnabled(CMD_PASTE, flag);
+ menuEdit->setItemEnabled(CMD_PASTE_CLONE, flag);
+ menuEdit->setItemEnabled(CMD_PASTE_TO_TRACK, flag);
+ menuEdit->setItemEnabled(CMD_PASTE_CLONE_TO_TRACK, flag);
+ }
+
+//---------------------------------------------------------
+// selectionChanged
+//---------------------------------------------------------
+
+void MusE::selectionChanged()
+ {
+ bool flag = arranger->isSingleSelection();
+ menuEdit->setItemEnabled(CMD_CUT, flag);
+ //menuEdit->setItemEnabled(CMD_COPY, flag); // Now possible
+ }
+
+//---------------------------------------------------------
+// transpose
+//---------------------------------------------------------
+
+void MusE::transpose()
+ {
+ Transpose *w = new Transpose();
+ w->show();
+ }
+
+//---------------------------------------------------------
+// modifyGateTime
+//---------------------------------------------------------
+
+void MusE::modifyGateTime()
+ {
+ 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();
+ if(appearance->isVisible()) {
+ appearance->raise();
+ appearance->setActiveWindow();
+ }
+ else
+ appearance->show();
+ }
+
+//---------------------------------------------------------
+// loadTheme
+//---------------------------------------------------------
+
+void MusE::loadTheme(QString s)
+ {
+ if (style().name() != s)
+ QApplication::setStyle(s);
+ }
+
+//---------------------------------------------------------
+// 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();
+ loadTheme(config.style);
+ QApplication::setFont(config.fonts[0], true);
+ // Added by Tim. p3.3.6
+ //printf("MusE::changeConfig writeFlag:%d emitting configChanged\n", writeFlag);
+
+ emit configChanged();
+ updateConfiguration();
+ }
+
+//---------------------------------------------------------
+// configMetronome
+//---------------------------------------------------------
+
+void MusE::configMetronome()
+ {
+ if (!metronomeConfig)
+ metronomeConfig = new MetronomeConfig(this, "metronome");
+
+ if(metronomeConfig->isVisible()) {
+ metronomeConfig->raise();
+ metronomeConfig->setActiveWindow();
+ }
+ else
+ metronomeConfig->show();
+ }
+
+
+//---------------------------------------------------------
+// configShortCuts
+//---------------------------------------------------------
+
+void MusE::configShortCuts()
+ {
+ if (!shortcutConfig)
+ shortcutConfig = new ShortcutConfig(this, "shortcutconfig");
+ 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();
+ TrackList* tracks = song->tracks();
+ for (iTrack it = tracks->begin(); it != tracks->end(); ++it) {
+ MidiTrack* track = dynamic_cast<MidiTrack*>(*it);
+ if (track == 0 || 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)) {
+ audio->msgRemovePart(part, false);
+ }
+ else if ((t < lpos) && ((t+l) > lpos) && ((t+l) <= rpos)) {
+ // remove part tail
+ int len = lpos - t;
+ MidiPart* nPart = new MidiPart(*(MidiPart*)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;
+ // Indicate no undo, and do not do port controller values and clone parts.
+ //audio->msgDeleteEvent(i->second, nPart, false);
+ audio->msgDeleteEvent(i->second, nPart, false, false, false);
+ }
+ // Indicate no undo, and do port controller values and clone parts.
+ //audio->msgChangePart(part, nPart, false);
+ audio->msgChangePart(part, nPart, false, true, true);
+ }
+ else if ((t < lpos) && ((t+l) > lpos) && ((t+l) > rpos)) {
+ //----------------------
+ // remove part middle
+ //----------------------
+
+ MidiPart* nPart = new MidiPart(*(MidiPart*)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;
+ // Indicate no undo, and do not do port controller values and clone parts.
+ //audio->msgDeleteEvent(ii->second, nPart, false);
+ audio->msgDeleteEvent(ii->second, nPart, false, false, 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));
+ // Indicate no undo, and do not do port controller values and clone parts.
+ //audio->msgChangeEvent(event, nEvent, nPart, false);
+ audio->msgChangeEvent(event, nEvent, nPart, false, false, false);
+ }
+ nPart->setLenTick(l - (rpos-lpos));
+ // Indicate no undo, and do port controller values and clone parts.
+ //audio->msgChangePart(part, nPart, false);
+ audio->msgChangePart(part, nPart, false, true, true);
+ }
+ else if ((t >= lpos) && (t < rpos) && (t+l) > rpos) {
+ // TODO: remove part head
+ }
+ else if (t >= rpos) {
+ MidiPart* nPart = new MidiPart(*(MidiPart*)part);
+ int nt = part->tick();
+ nPart->setTick(nt - (rpos -lpos));
+ // Indicate no undo, and do port controller values but not clone parts.
+ //audio->msgChangePart(part, nPart, false);
+ audio->msgChangePart(part, nPart, false, true, false);
+ }
+ }
+ }
+ // 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();
+ TrackList* tracks = song->tracks();
+ for (iTrack it = tracks->begin(); it != tracks->end(); ++it) {
+ MidiTrack* track = dynamic_cast<MidiTrack*>(*it);
+ //
+ // process only non muted midi tracks
+ //
+ if (track == 0 || 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)) {
+ MidiPart* nPart = new MidiPart(*(MidiPart*)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));
+ // Indicate no undo, and do not do port controller values and clone parts.
+ //audio->msgChangeEvent(event, nEvent, nPart, false);
+ audio->msgChangeEvent(event, nEvent, nPart, false, false, false);
+ }
+ // Indicate no undo, and do port controller values and clone parts.
+ //audio->msgChangePart(part, nPart, false);
+ audio->msgChangePart(part, nPart, false, true, true);
+ }
+ else if (t > lpos) {
+ MidiPart* nPart = new MidiPart(*(MidiPart*)part);
+ nPart->setTick(t + (rpos -lpos));
+ // Indicate no undo, and do port controller values but not clone parts.
+ //audio->msgChangePart(part, nPart, false);
+ audio->msgChangePart(part, nPart, false, true, false);
+ }
+ }
+ }
+ // 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);
+ // Indicate no undo, and do port controller values but not clone parts.
+ //audio->msgChangePart(part, p1, false);
+ audio->msgChangePart(part, p1, false, true, false);
+ audio->msgAddPart(p2, false);
+ 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;
+ }
+
+#if 0
+//---------------------------------------------------------
+// openAudioFileManagement
+//---------------------------------------------------------
+void MusE::openAudioFileManagement()
+ {
+ if (!audioFileManager) {
+ audioFileManager = new AudioFileManager(this, "audiofilemanager", false);
+ audioFileManager->show();
+ }
+ audioFileManager->setShown(true);
+ }
+#endif
+//---------------------------------------------------------
+// bounceToTrack
+//---------------------------------------------------------
+
+void MusE::bounceToTrack()
+ {
+ if(audio->bounce())
+ return;
+
+ song->bounceOutput = 0;
+
+ if(song->waves()->empty())
+ {
+ QMessageBox::critical(this,
+ tr("MusE: Bounce to Track"),
+ tr("No wave tracks found")
+ );
+ return;
+ }
+
+ OutputList* ol = song->outputs();
+ if(ol->empty())
+ {
+ QMessageBox::critical(this,
+ tr("MusE: Bounce to Track"),
+ tr("No audio output tracks found")
+ );
+ return;
+ }
+
+ if(checkRegionNotNull())
+ return;
+
+ AudioOutput* out = 0;
+ // If only one output, pick it, else pick the first selected.
+ if(ol->size() == 1)
+ out = ol->front();
+ else
+ {
+ for(iAudioOutput iao = ol->begin(); iao != ol->end(); ++iao)
+ {
+ AudioOutput* o = *iao;
+ if(o->selected())
+ {
+ if(out)
+ {
+ out = 0;
+ break;
+ }
+ out = o;
+ }
+ }
+ if(!out)
+ {
+ QMessageBox::critical(this,
+ tr("MusE: Bounce to Track"),
+ tr("Select one audio output track,\nand one target wave track")
+ );
+ 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(t->type() != Track::WAVE && t->type() != Track::AUDIO_OUTPUT) {
+ track = 0;
+ break;
+ }
+ if(t->type() == Track::WAVE)
+ {
+ if(track)
+ {
+ track = 0;
+ break;
+ }
+ track = (WaveTrack*)t;
+ }
+
+ }
+ }
+
+ if (track == 0) {
+ if(ol->size() == 1) {
+ QMessageBox::critical(this,
+ tr("MusE: Bounce to Track"),
+ tr("Select one target wave track")
+ );
+ return;
+ }
+ else
+ {
+ QMessageBox::critical(this,
+ tr("MusE: Bounce to Track"),
+ tr("Select one target wave track,\nand one audio output track")
+ );
+ return;
+ }
+ }
+ song->bounceOutput = out;
+ song->bounceTrack = track;
+ song->setRecord(true);
+ song->setRecordFlag(track, true);
+ audio->msgBounce();
+ }
+
+//---------------------------------------------------------
+// bounceToFile
+//---------------------------------------------------------
+
+void MusE::bounceToFile(AudioOutput* ao)
+ {
+ if(audio->bounce())
+ return;
+ song->bounceOutput = 0;
+ if(!ao)
+ {
+ OutputList* ol = song->outputs();
+ if(ol->empty())
+ {
+ QMessageBox::critical(this,
+ tr("MusE: Bounce to Track"),
+ tr("No audio output tracks found")
+ );
+ return;
+ }
+ // If only one output, pick it, else pick the first selected.
+ if(ol->size() == 1)
+ ao = ol->front();
+ else
+ {
+ for(iAudioOutput iao = ol->begin(); iao != ol->end(); ++iao)
+ {
+ AudioOutput* o = *iao;
+ if(o->selected())
+ {
+ if(ao)
+ {
+ ao = 0;
+ break;
+ }
+ ao = o;
+ }
+ }
+ if (ao == 0) {
+ QMessageBox::critical(this,
+ tr("MusE: Bounce to File"),
+ tr("Select one audio output track")
+ );
+ return;
+ }
+ }
+ }
+
+ if (checkRegionNotNull())
+ return;
+
+ SndFile* sf = getSndFile(0, this, 0);
+ if (sf == 0)
+ return;
+
+ song->bounceOutput = ao;
+ ao->setRecFile(sf);
+ song->setRecord(true, false);
+ song->setRecordFlag(ao, true);
+ audio->msgBounce();
+ }
+
+#ifdef HAVE_LASH
+//---------------------------------------------------------
+// lash_idle_cb
+//---------------------------------------------------------
+#include <iostream>
+void
+MusE::lash_idle_cb ()
+{
+ lash_event_t * event;
+ if (!lash_client)
+ return;
+
+ while ( (event = lash_get_event (lash_client)) )
+ {
+ switch (lash_event_get_type (event))
+ {
+ case LASH_Save_File:
+ {
+ /* save file */
+ QString ss = QString(lash_event_get_string(event)) + QString("/lash-project-muse.med");
+ int ok = save (ss.ascii(), false);
+ if (ok) {
+ project.setFile(ss.ascii());
+ setCaption(tr("MusE: Song: ") + project.baseName(true));
+ addProject(ss.ascii());
+ museProject = QFileInfo(ss.ascii()).dirPath(true);
+ }
+ lash_send_event (lash_client, event);
+ }
+ break;
+
+ case LASH_Restore_File:
+ {
+ /* load file */
+ QString sr = QString(lash_event_get_string(event)) + QString("/lash-project-muse.med");
+ loadProjectFile(sr.ascii(), false, true);
+ lash_send_event (lash_client, event);
+ }
+ break;
+
+ case LASH_Quit:
+ {
+ /* quit muse */
+ std::cout << "MusE::lash_idle_cb Received LASH_Quit"
+ << std::endl;
+ lash_event_destroy (event);
+ }
+ break;
+
+ default:
+ {
+ std::cout << "MusE::lash_idle_cb Received unknown LASH event of type "
+ << lash_event_get_type (event)
+ << std::endl;
+ lash_event_destroy (event);
+ }
+ break;
+ }
+ }
+}
+#endif /* HAVE_LASH */
+
+//---------------------------------------------------------
+// clearSong
+// return true if operation aborted
+// called with sequencer stopped
+//---------------------------------------------------------
+
+bool MusE::clearSong()
+ {
+ if (song->dirty) {
+ int n = 0;
+ n = QMessageBox::warning(this, appName,
+ tr("The current Project contains unsaved data\n"
+ "Load overwrites current Project:\n"
+ "Save Current Project?"),
+ tr("&Save"), tr("&Skip"), tr("&Abort"), 0, 2);
+ switch (n) {
+ case 0:
+ if (!save()) // abort if save failed
+ return true;
+ break;
+ case 1:
+ break;
+ case 2:
+ return true;
+ default:
+ printf("InternalError: gibt %d\n", n);
+ }
+ }
+ if (audio->isPlaying()) {
+ audio->msgPlay(false);
+ while (audio->isPlaying())
+ qApp->processEvents();
+ }
+
+again:
+ for (iToplevel i = toplevels.begin(); i != toplevels.end(); ++i) {
+ Toplevel tl = *i;
+ unsigned long obj = tl.object();
+ switch (tl.type()) {
+ case Toplevel::CLIPLIST:
+ case Toplevel::MARKER:
+ break;
+ case Toplevel::PIANO_ROLL:
+ case Toplevel::LISTE:
+ case Toplevel::DRUM:
+ case Toplevel::MASTER:
+ case Toplevel::WAVE:
+ case Toplevel::LMASTER:
+ ((QWidget*)(obj))->close(true);
+ goto again;
+ }
+ }
+ song->clear(false);
+ return false;
+ }
+
+//---------------------------------------------------------
+// startEditInstrument
+//---------------------------------------------------------
+
+void MusE::startEditInstrument()
+ {
+ if(editInstrument == 0)
+ {
+ editInstrument = new EditInstrument(this);
+ editInstrument->show();
+ }
+ else
+ {
+ if(editInstrument->isShown())
+ editInstrument->hide();
+ else
+ editInstrument->show();
+ }
+
+ }
+
+//---------------------------------------------------------
+// switchMixerAutomation
+//---------------------------------------------------------
+
+void MusE::switchMixerAutomation()
+ {
+ automation = !automation;
+ // Clear all pressed and touched and rec event lists.
+ song->clearRecAutomation(true);
+
+printf("automation = %d\n", automation);
+ menuAutomation->setItemChecked(autoId, automation);
+ }
+
+//---------------------------------------------------------
+// clearAutomation
+//---------------------------------------------------------
+
+void MusE::clearAutomation()
+ {
+ printf("not implemented\n");
+ }
+
+//---------------------------------------------------------
+// takeAutomationSnapshot
+//---------------------------------------------------------
+
+void MusE::takeAutomationSnapshot()
+ {
+ int frame = song->cPos().frame();
+ TrackList* tracks = song->tracks();
+ for (iTrack i = tracks->begin(); i != tracks->end(); ++i) {
+ if ((*i)->isMidiTrack())
+ continue;
+ AudioTrack* track = (AudioTrack*)*i;
+ CtrlListList* cll = track->controller();
+ for (iCtrlList icl = cll->begin(); icl != cll->end(); ++icl) {
+ double val = icl->second->curVal();
+ icl->second->add(frame, val);
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// updateConfiguration
+// called whenever the configuration has changed
+//---------------------------------------------------------
+
+void MusE::updateConfiguration()
+ {
+ fileOpenAction->setAccel(shortcuts[SHRT_OPEN].key);
+ fileNewAction->setAccel(shortcuts[SHRT_NEW].key);
+ fileSaveAction->setAccel(shortcuts[SHRT_SAVE].key);
+
+ menu_file->setAccel(shortcuts[SHRT_OPEN_RECENT].key, menu_ids[CMD_OPEN_RECENT]);
+ menu_file->setAccel(shortcuts[SHRT_LOAD_TEMPLATE].key, menu_ids[CMD_LOAD_TEMPLATE]);
+ menu_file->setAccel(shortcuts[SHRT_SAVE_AS].key, menu_ids[CMD_SAVE_AS]);
+ menu_file->setAccel(shortcuts[SHRT_IMPORT_MIDI].key, menu_ids[CMD_IMPORT_MIDI]);
+ menu_file->setAccel(shortcuts[SHRT_EXPORT_MIDI].key, menu_ids[CMD_EXPORT_MIDI]);
+ menu_file->setAccel(shortcuts[SHRT_IMPORT_PART].key, menu_ids[CMD_IMPORT_PART]);
+ menu_file->setAccel(shortcuts[SHRT_IMPORT_AUDIO].key, menu_ids[CMD_IMPORT_AUDIO]);
+ menu_file->setAccel(shortcuts[SHRT_QUIT].key, menu_ids[CMD_QUIT]);
+
+ menuEdit->setAccel(Key_Delete, CMD_DELETE);
+ menuEdit->setAccel(shortcuts[SHRT_OPEN_DRUMS].key, menu_ids[CMD_OPEN_DRUMS]);
+ menuEdit->setAccel(shortcuts[SHRT_OPEN_LIST].key, menu_ids[CMD_OPEN_LIST]);
+ menuEdit->setAccel(shortcuts[SHRT_OPEN_WAVE].key, menu_ids[CMD_OPEN_WAVE]);
+ menuEdit->setAccel(shortcuts[SHRT_OPEN_MIDI_TRANSFORM].key, menu_ids[CMD_OPEN_MIDI_TRANSFORM]);
+
+ midiEdit->setAccel(shortcuts[SHRT_TRANSPOSE].key, menu_ids[CMD_TRANSPOSE]);
+
+ master->setAccel(shortcuts[SHRT_OPEN_GRAPHIC_MASTER].key, menu_ids[CMD_OPEN_GRAPHIC_MASTER]);
+ master->setAccel(shortcuts[SHRT_OPEN_LIST_MASTER].key, menu_ids[CMD_OPEN_LIST_MASTER]);
+
+ menuStructure->setAccel(shortcuts[SHRT_GLOBAL_CUT].key, menu_ids[CMD_GLOBAL_CUT]);
+ menuStructure->setAccel(shortcuts[SHRT_GLOBAL_INSERT].key, menu_ids[CMD_GLOBAL_INSERT]);
+ menuStructure->setAccel(shortcuts[SHRT_GLOBAL_SPLIT].key, menu_ids[CMD_GLOBAL_SPLIT]);
+ menuStructure->setAccel(shortcuts[SHRT_COPY_RANGE].key, menu_ids[CMD_COPY_RANGE]);
+ menuStructure->setAccel(shortcuts[SHRT_CUT_EVENTS].key, menu_ids[CMD_CUT_EVENTS]);
+
+ menuView->setAccel(shortcuts[SHRT_OPEN_TRANSPORT].key, tr_id);
+ menuView->setAccel(shortcuts[SHRT_OPEN_BIGTIME].key, bt_id);
+ //menuView->setAccel(shortcuts[SHRT_OPEN_MIXER].key, aid1);
+ menuView->setAccel(shortcuts[SHRT_OPEN_MIXER].key, aid1a);
+ menuView->setAccel(shortcuts[SHRT_OPEN_MIXER2].key, aid1b);
+// menuView->setAccel(shortcuts[SHRT_OPEN_CLIPS].key, aid2);
+// markerAction->setAccel(shortcuts[SHRT_OPEN_MARKER].key );
+ menuView->setAccel(shortcuts[SHRT_OPEN_MARKER].key, mr_id );
+
+ menuSettings->setAccel(shortcuts[SHRT_GLOBAL_CONFIG].key, menu_ids[CMD_GLOBAL_CONFIG]);
+ menuSettings->setAccel(shortcuts[SHRT_CONFIG_SHORTCUTS].key, menu_ids[CMD_CONFIG_SHORTCUTS]);
+ menuSettings->setAccel(shortcuts[SHRT_CONFIG_METRONOME].key, menu_ids[CMD_CONFIG_METRONOME]);
+ menuSettings->setAccel(shortcuts[SHRT_CONFIG_MIDISYNC].key, menu_ids[CMD_CONFIG_MIDISYNC]);
+ menuSettings->setAccel(shortcuts[SHRT_APPEARANCE_SETTINGS].key, menu_ids[CMD_APPEARANCE_SETTINGS]);
+ menuSettings->setAccel(shortcuts[SHRT_CONFIG_MIDI_PORTS].key, menu_ids[CMD_CONFIG_MIDI_PORTS]);
+ menuSettings->setAccel(shortcuts[SHRT_CONFIG_AUDIO_PORTS].key, menu_ids[CMD_CONFIG_AUDIO_PORTS]);
+
+// menu_functions->setAccel(shortcuts[SHRT_MIDI_EDIT_INSTRUMENTS].key, menu_ids[CMD_MIDI_EDIT_INSTRUMENTS]);
+ menu_functions->setAccel(shortcuts[SHRT_MIDI_RESET].key, menu_ids[CMD_MIDI_RESET]);
+ menu_functions->setAccel(shortcuts[SHRT_MIDI_INIT].key, menu_ids[CMD_MIDI_INIT]);
+ menu_functions->setAccel(shortcuts[SHRT_MIDI_LOCAL_OFF].key, menu_ids[CMD_MIDI_LOCAL_OFF]);
+
+ menu_audio->setAccel(shortcuts[SHRT_AUDIO_BOUNCE_TO_TRACK].key, menu_ids[CMD_AUDIO_BOUNCE_TO_TRACK]);
+ menu_audio->setAccel(shortcuts[SHRT_AUDIO_BOUNCE_TO_FILE].key , menu_ids[CMD_AUDIO_BOUNCE_TO_FILE]);
+ menu_audio->setAccel(shortcuts[SHRT_AUDIO_RESTART].key, menu_ids[CMD_AUDIO_RESTART]);
+
+ menuAutomation->setAccel(shortcuts[SHRT_MIXER_AUTOMATION].key, autoId);
+ menuAutomation->setAccel(shortcuts[SHRT_MIXER_SNAPSHOT].key, menu_ids[CMD_MIXER_SNAPSHOT]);
+ menuAutomation->setAccel(shortcuts[SHRT_MIXER_AUTOMATION_CLEAR].key, menu_ids[CMD_MIXER_AUTOMATION_CLEAR]);
+
+ menu_help->setAccel(menu_ids[CMD_OPEN_HELP], shortcuts[SHRT_OPEN_HELP].key);
+ menu_help->setAccel(menu_ids[CMD_START_WHATSTHIS], shortcuts[SHRT_START_WHATSTHIS].key);
+ pianoAction->setAccel(shortcuts[SHRT_OPEN_PIANO].key);
+
+ select->setAccel(shortcuts[SHRT_SELECT_ALL].key, CMD_SELECT_ALL);
+
+// select->setAccel(shortcuts[SHRT_DESEL_PARTS].key, CMD_SELECT_NONE);
+ select->setAccel(shortcuts[SHRT_SELECT_NONE].key, CMD_SELECT_NONE);
+
+ select->setAccel(shortcuts[SHRT_SELECT_INVERT].key, CMD_SELECT_INVERT);
+ select->setAccel(shortcuts[SHRT_SELECT_ILOOP].key, CMD_SELECT_ILOOP);
+ select->setAccel(shortcuts[SHRT_SELECT_OLOOP].key, CMD_SELECT_OLOOP);
+ select->setAccel(shortcuts[SHRT_SELECT_PRTSTRACK].key, CMD_SELECT_PARTS);
+ follow->setAccel(shortcuts[SHRT_FOLLOW_JUMP].key, CMD_FOLLOW_JUMP);
+ follow->setAccel(shortcuts[SHRT_FOLLOW_NO].key, CMD_FOLLOW_NO);
+ follow->setAccel(shortcuts[SHRT_FOLLOW_CONTINUOUS].key, CMD_FOLLOW_CONTINUOUS);
+ midiInputPlugins->setAccel(shortcuts[SHRT_MIDI_INPUT_TRANSPOSE].key, 0);
+ midiInputPlugins->setAccel(shortcuts[SHRT_MIDI_INPUT_TRANSFORM].key, 1);
+ midiInputPlugins->setAccel(shortcuts[SHRT_MIDI_INPUT_FILTER].key, 2);
+ midiInputPlugins->setAccel(shortcuts[SHRT_MIDI_REMOTE_CONTROL].key, 3);
+ midiInputPlugins->setAccel(shortcuts[SHRT_RANDOM_RHYTHM_GENERATOR].key, 4);
+
+ addTrack->setAccel(shortcuts[SHRT_ADD_MIDI_TRACK].key, Track::MIDI);
+ addTrack->setAccel(shortcuts[SHRT_ADD_DRUM_TRACK].key, Track::DRUM);
+ addTrack->setAccel(shortcuts[SHRT_ADD_WAVE_TRACK].key, Track::WAVE);
+ addTrack->setAccel(shortcuts[SHRT_ADD_AUDIO_OUTPUT].key, Track::AUDIO_OUTPUT);
+ addTrack->setAccel(shortcuts[SHRT_ADD_AUDIO_GROUP].key, Track::AUDIO_GROUP);
+ addTrack->setAccel(shortcuts[SHRT_ADD_AUDIO_INPUT].key, Track::AUDIO_INPUT);
+ addTrack->setAccel(shortcuts[SHRT_ADD_AUDIO_AUX].key, Track::AUDIO_AUX);
+ }
+
+//---------------------------------------------------------
+// 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, unsigned, bool)), bigtime, SLOT(setPos(int, unsigned, 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);
+ menuView->setItemChecked(bt_id, on);
+ }
+
+//---------------------------------------------------------
+// toggleBigTime
+//---------------------------------------------------------
+
+void MusE::toggleBigTime()
+ {
+ showBigtime(!menuView->isItemChecked(bt_id));
+ }
+
+//---------------------------------------------------------
+// bigtimeClosed
+//---------------------------------------------------------
+
+void MusE::bigtimeClosed()
+ {
+ menuView->setItemChecked(bt_id, false);
+ }
+
+//---------------------------------------------------------
+// showMixer
+//---------------------------------------------------------
+
+/*
+void MusE::showMixer(bool on)
+ {
+ if (on && audioMixer == 0) {
+ audioMixer = new AudioMixerApp(this);
+ connect(audioMixer, SIGNAL(closed()), SLOT(mixerClosed()));
+ audioMixer->resize(config.geometryMixer.size());
+ audioMixer->move(config.geometryMixer.topLeft());
+ }
+ if (audioMixer)
+ audioMixer->setShown(on);
+ menuView->setItemChecked(aid1, on);
+ }
+*/
+
+//---------------------------------------------------------
+// showMixer1
+//---------------------------------------------------------
+
+void MusE::showMixer1(bool on)
+ {
+ if (on && mixer1 == 0) {
+ mixer1 = new AudioMixerApp(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);
+ menuView->setItemChecked(aid1a, on);
+ }
+
+//---------------------------------------------------------
+// showMixer2
+//---------------------------------------------------------
+
+void MusE::showMixer2(bool on)
+ {
+ if (on && mixer2 == 0) {
+ mixer2 = new AudioMixerApp(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);
+ menuView->setItemChecked(aid1b, on);
+ }
+
+//---------------------------------------------------------
+// toggleMixer
+//---------------------------------------------------------
+
+/*
+void MusE::toggleMixer()
+ {
+ showMixer(!menuView->isItemChecked(aid1));
+ }
+*/
+
+//---------------------------------------------------------
+// toggleMixer1
+//---------------------------------------------------------
+
+void MusE::toggleMixer1()
+ {
+ showMixer1(!menuView->isItemChecked(aid1a));
+ }
+
+//---------------------------------------------------------
+// toggleMixer2
+//---------------------------------------------------------
+
+void MusE::toggleMixer2()
+ {
+ showMixer2(!menuView->isItemChecked(aid1b));
+ }
+
+//---------------------------------------------------------
+// mixerClosed
+//---------------------------------------------------------
+
+/*
+void MusE::mixerClosed()
+ {
+ menuView->setItemChecked(aid1, false);
+ }
+*/
+
+//---------------------------------------------------------
+// mixer1Closed
+//---------------------------------------------------------
+
+void MusE::mixer1Closed()
+ {
+ //aid1a->setChecked(false);
+ menuView->setItemChecked(aid1a, false);
+ }
+
+//---------------------------------------------------------
+// mixer2Closed
+//---------------------------------------------------------
+
+void MusE::mixer2Closed()
+ {
+ //aid1b->setChecked(false);
+ menuView->setItemChecked(aid1b, false);
+ }
+
+
+//QWidget* MusE::mixerWindow() { return audioMixer; }
+QWidget* MusE::mixer1Window() { return mixer1; }
+QWidget* MusE::mixer2Window() { return mixer2; }
+
+QWidget* MusE::transportWindow() { return transport; }
+QWidget* MusE::bigtimeWindow() { return bigtime; }
+
+//---------------------------------------------------------
+// focusInEvent
+//---------------------------------------------------------
+
+void MusE::focusInEvent(QFocusEvent* ev)
+ {
+ //if (audioMixer)
+ // audioMixer->raise();
+ if (mixer1)
+ mixer1->raise();
+ if (mixer2)
+ mixer2->raise();
+ raise();
+ QMainWindow::focusInEvent(ev);
+ }
+
+//---------------------------------------------------------
+// setUsedTool
+//---------------------------------------------------------
+
+void MusE::setUsedTool(int tool)
+ {
+ tools1->set(tool);
+ }
+
+
+//---------------------------------------------------------
+// execDeliveredScript
+//---------------------------------------------------------
+void MusE::execDeliveredScript(int id)
+{
+ //QString scriptfile = QString(INSTPREFIX) + SCRIPTSSUFFIX + deliveredScriptNames[id];
+ song->executeScript(song->getScriptPath(id, true), song->getSelectedMidiParts(), 0, false); // TODO: get quant from arranger
+}
+//---------------------------------------------------------
+// execUserScript
+//---------------------------------------------------------
+void MusE::execUserScript(int id)
+{
+ song->executeScript(song->getScriptPath(id, false), song->getSelectedMidiParts(), 0, false); // TODO: get quant from arranger
+}
+
diff --git a/muse2/muse/app.h b/muse2/muse/app.h
new file mode 100644
index 00000000..3e0d36a6
--- /dev/null
+++ b/muse2/muse/app.h
@@ -0,0 +1,327 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: app.h,v 1.34.2.14 2009/11/16 11:29:33 lunar_shuttle Exp $
+//
+// (C) Copyright 1999-2004 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __APP_H__
+#define __APP_H__
+
+#include "config.h"
+
+#include <q3mainwindow.h>
+#include <qrect.h>
+//Added by qt3to4:
+#include <Qt3Support>
+#include <Q3PopupMenu>
+#include <QFocusEvent>
+#include <QCloseEvent>
+#include "cobject.h"
+#include "tools.h"
+#include <qfileinfo.h>
+
+class Part;
+class PartList;
+class Q3ToolBar;
+class Q3PopupMenu;
+class Transport;
+class BigTime;
+class Arranger;
+class Instrument;
+class Q3ListView;
+class Q3ListViewItem;
+class QPoint;
+class QToolButton;
+class PopupMenu;
+class Track;
+class PrinterConfig;
+class MidiSyncConfig;
+class MRConfig;
+class MetronomeConfig;
+class AudioConf;
+class Xml;
+class AudioMixerApp;
+class ClipListEdit;
+class AudioRecord;
+class MidiFileConfig;
+class MidiFilterConfig;
+class MarkerView;
+class GlobalSettingsConfig;
+class MidiControllerEditDialog;
+class MidiInputTransformDialog;
+class MidiTransformerDialog;
+class SynthI;
+class RhythmGen;
+class MidiTrack;
+class MidiInstrument;
+class MidiPort;
+class ShortcutConfig;
+class Appearance;
+class WaveTrack;
+class AudioOutput;
+class EditInstrument;
+
+#define MENU_ADD_SYNTH_ID_BASE 0x1000
+
+//---------------------------------------------------------
+// MusE
+//---------------------------------------------------------
+
+class MusE : public Q3MainWindow
+ {
+ Q_OBJECT
+ enum {CMD_CUT, CMD_COPY, CMD_PASTE, CMD_INSERT, CMD_INSERTMEAS, CMD_PASTE_CLONE,
+ CMD_PASTE_TO_TRACK, CMD_PASTE_CLONE_TO_TRACK, CMD_DELETE,
+ CMD_SELECT_ALL, CMD_SELECT_NONE, CMD_SELECT_INVERT,
+ CMD_SELECT_ILOOP, CMD_SELECT_OLOOP, CMD_SELECT_PARTS,
+ CMD_FOLLOW_NO, CMD_FOLLOW_JUMP, CMD_FOLLOW_CONTINUOUS ,
+ CMD_DELETE_TRACK
+ };
+
+ //File menu items:
+ enum { CMD_OPEN_RECENT=0, CMD_LOAD_TEMPLATE, CMD_SAVE_AS, CMD_IMPORT_MIDI,
+ CMD_EXPORT_MIDI, CMD_IMPORT_PART, CMD_IMPORT_AUDIO, CMD_QUIT, CMD_OPEN_DRUMS, CMD_OPEN_WAVE,
+ CMD_OPEN_LIST, CMD_OPEN_LIST_MASTER, CMD_GLOBAL_CONFIG,
+ CMD_OPEN_GRAPHIC_MASTER, CMD_OPEN_MIDI_TRANSFORM, CMD_TRANSPOSE,
+ CMD_GLOBAL_CUT, CMD_GLOBAL_INSERT, CMD_GLOBAL_SPLIT, CMD_COPY_RANGE,
+ CMD_CUT_EVENTS, CMD_CONFIG_SHORTCUTS, CMD_CONFIG_METRONOME, CMD_CONFIG_MIDISYNC,
+ CMD_MIDI_FILE_CONFIG, CMD_APPEARANCE_SETTINGS, CMD_CONFIG_MIDI_PORTS, CMD_CONFIG_AUDIO_PORTS,
+ CMD_MIDI_EDIT_INSTRUMENTS, CMD_MIDI_RESET, CMD_MIDI_INIT, CMD_MIDI_LOCAL_OFF,
+ CMD_MIXER_SNAPSHOT, CMD_MIXER_AUTOMATION_CLEAR, CMD_OPEN_HELP, CMD_OPEN_HOMEPAGE,
+ CMD_OPEN_BUG, CMD_START_WHATSTHIS,
+ CMD_AUDIO_BOUNCE_TO_FILE, CMD_AUDIO_BOUNCE_TO_TRACK, CMD_AUDIO_RESTART,
+ CMD_LAST };
+
+ int menu_ids[CMD_LAST];
+ Q3Action *fileSaveAction, *fileOpenAction, *pianoAction, *fileNewAction, /* *markerAction,*/ *testAction;
+ QString appName;
+
+ QFileInfo project;
+ Q3ToolBar *tools;
+ EditToolBar *tools1;
+
+ Transport* transport;
+ BigTime* bigtime;
+ EditInstrument* editInstrument;
+
+ Q3PopupMenu *menu_file, *menuView, *menuSettings, *menu_help;
+ Q3PopupMenu *menuEdit, *menuStructure;
+ Q3PopupMenu* menu_audio, *menuAutomation;
+ Q3PopupMenu* menu_functions, *menuScriptPlugins;
+ Q3PopupMenu* select, *master, *midiEdit, *addTrack;
+
+ // Special 'stay-open' menu for routes.
+ PopupMenu* routingPopupMenu;
+
+ int aid1a, aid1b, aid2, aid3, autoId;
+ int tr_id, bt_id, mr_id;
+ int cc_id;
+ Q3PopupMenu* follow;
+ int fid0, fid1, fid2;
+ Q3PopupMenu* midiInputPlugins;
+ int mpid0, mpid1, mpid2, mpid3, mpid4;
+
+ QWidget* midiPortConfig;
+ QWidget* softSynthesizerConfig;
+ MidiSyncConfig* midiSyncConfig;
+ MRConfig* midiRemoteConfig;
+ RhythmGen* midiRhythmGenerator;
+ MetronomeConfig* metronomeConfig;
+ AudioConf* audioConfig;
+ MidiFileConfig* midiFileConfig;
+ GlobalSettingsConfig* globalSettingsConfig;
+ MidiFilterConfig* midiFilterConfig;
+ MidiInputTransformDialog* midiInputTransform;
+ ShortcutConfig* shortcutConfig;
+ Appearance* appearance;
+ AudioMixerApp* mixer1;
+ AudioMixerApp* mixer2;
+
+ ToplevelList toplevels;
+ ClipListEdit* clipListEdit;
+ MarkerView* markerView;
+ MidiTransformerDialog* midiTransformerDialog;
+ Q3PopupMenu* openRecent;
+
+ bool readMidi(FILE*);
+ void read(Xml& xml, bool skipConfig);
+ void processTrack(MidiTrack* track);
+
+ void write(Xml& xml) const;
+ bool clearSong();
+ bool save(const QString&, bool);
+ void setUntitledProject();
+ void setConfigDefaults();
+
+ void setFollow();
+ void readConfigParts(Xml& xml);
+ void readMidiport(Xml& xml);
+ void readMidichannel(Xml& xml, int port);
+ void readCtrl(Xml& xml, int port, int channel);
+ void readToplevels(Xml& xml);
+ PartList* getMidiPartsToEdit();
+ Part* readPart(Xml& xml);
+ bool checkRegionNotNull();
+ void loadProjectFile1(const QString&, bool songTemplate, bool loadAll);
+ void writeGlobalConfiguration(int level, Xml&) const;
+ void writeConfiguration(int level, Xml&) const;
+ void updateConfiguration();
+
+ virtual void focusInEvent(QFocusEvent*);
+
+ signals:
+ void configChanged();
+
+ private slots:
+ //void runPythonScript();
+ void loadProject();
+ bool save();
+ void configGlobalSettings();
+ void quitDoc();
+ void about();
+ void aboutQt();
+ void startHelpBrowser();
+ void startHomepageBrowser();
+ void startBugBrowser();
+ void launchBrowser(QString &whereTo);
+ void importMidi();
+ void importWave();
+ void importPart();
+ void exportMidi();
+
+ void toggleTransport();
+ void toggleMarker();
+ void toggleBigTime();
+ //void toggleMixer();
+ void toggleMixer1();
+ void toggleMixer2();
+
+ void configMidiPorts();
+ void configMidiSync();
+ void configMidiFile();
+ void configShortCuts();
+ void configMetronome();
+ void configAppearance();
+ void startEditor(PartList*, int);
+ void startMasterEditor();
+ void startLMasterEditor();
+ void startListEditor();
+ void startListEditor(PartList*);
+ void startDrumEditor();
+ void startDrumEditor(PartList*);
+ void startEditor(Track*);
+ void startPianoroll();
+ void startPianoroll(PartList* pl);
+ void startWaveEditor();
+ void startWaveEditor(PartList*);
+ void startSongInfo(bool editable=true);
+
+ void startMidiTransformer();
+ void writeGlobalConfiguration() const;
+ void startEditInstrument();
+ void startClipList();
+
+ void openRecentMenu();
+ void selectProject(int id);
+ void cmd(int);
+ void clipboardChanged();
+ void selectionChanged();
+ 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 startMidiInputPlugin(int);
+ void hideMitPluginTranspose();
+ void hideMidiInputTransform();
+ void hideMidiFilterConfig();
+ void hideMidiRemoteConfig();
+ void hideMidiRhythmGenerator();
+ void globalCut();
+ void globalInsert();
+ void globalSplit();
+ void copyRange();
+ void cutEvents();
+ void bounceToTrack();
+ void resetMidiDevices();
+ void initMidiDevices();
+ void localOff();
+ void switchMixerAutomation();
+ void takeAutomationSnapshot();
+ void clearAutomation();
+ void bigtimeClosed();
+ //void mixerClosed();
+ void mixer1Closed();
+ void mixer2Closed();
+ void markerClosed();
+
+ void execDeliveredScript(int);
+ void execUserScript(int);
+
+ public slots:
+ bool saveAs();
+ void bounceToFile(AudioOutput* ao = 0);
+ void closeEvent(QCloseEvent*e);
+ void loadProjectFile(const QString&);
+ void loadProjectFile(const QString&, bool songTemplate, bool loadAll);
+ void toplevelDeleted(unsigned long tl);
+ void loadTheme(QString);
+ bool seqRestart();
+ void loadTemplate();
+ void showBigtime(bool);
+ //void showMixer(bool);
+ void showMixer1(bool);
+ void showMixer2(bool);
+ void showMarker(bool);
+ void importMidi(const QString &file);
+ void setUsedTool(int);
+ void showDidYouKnowDialog();
+
+ void routingPopupMenuAboutToHide();
+
+ public:
+ MusE(int argc, char** argv);
+ Arranger* arranger;
+ QRect configGeometryMain;
+ bool importMidi(const QString name, bool merge);
+ void kbAccel(int);
+ void changeConfig(bool writeFlag);
+
+ void seqStop();
+ bool seqStart();
+ void setHeartBeat();
+ void importController(int, MidiPort*, int);
+ //QWidget* mixerWindow();
+ QWidget* mixer1Window();
+ QWidget* mixer2Window();
+ QWidget* transportWindow();
+ QWidget* bigtimeWindow();
+ bool importWaveToTrack(QString& name, unsigned tick=0, Track* track=NULL);
+ void importPartToTrack(QString& filename, unsigned tick, Track* track);
+
+ void showTransport(bool flag);
+
+ // Special 'stay-open' menu for routes.
+ PopupMenu* getRoutingPopupMenu();
+ PopupMenu* prepareRoutingPopupMenu(Track* /*track*/, bool /*dst*/);
+ void routingPopupMenuActivated(Track* /*track*/, int /*id*/);
+ void updateRouteMenus(Track* /*track*/, QObject* /*master*/);
+
+#ifdef HAVE_LASH
+ void lash_idle_cb ();
+#endif
+ };
+
+extern void addProject(const QString& name);
+#endif
+
diff --git a/muse2/muse/appearance.cpp b/muse2/muse/appearance.cpp
new file mode 100644
index 00000000..201d0c4b
--- /dev/null
+++ b/muse2/muse/appearance.cpp
@@ -0,0 +1,718 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: appearance.cpp,v 1.11.2.5 2009/11/14 03:37:48 terminator356 Exp $
+//=========================================================
+
+#include <stdio.h>
+#include <q3button.h>
+#include <qstring.h>
+#include <qcombobox.h>
+#include <qspinbox.h>
+#include <q3buttongroup.h>
+#include <qradiobutton.h>
+#include <qcheckbox.h>
+#include <qlabel.h>
+#include <qpixmap.h>
+#include <qcolor.h>
+#include <qcolordialog.h>
+#include <q3listbox.h>
+#include <qlineedit.h>
+#include <qtoolbutton.h>
+#include <qfontdialog.h>
+#include <qapplication.h>
+#include <qstylefactory.h>
+#include <q3listview.h>
+#include <qslider.h>
+#include <qstyle.h>
+#include <qtooltip.h>
+
+#include "icons.h"
+#include "appearance.h"
+#include "track.h"
+#include "app.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"
+
+//---------------------------------------------------------
+// IdListViewItem
+//---------------------------------------------------------
+
+class IdListViewItem : public Q3ListViewItem {
+ int _id;
+
+ public:
+ IdListViewItem(int id, Q3ListViewItem* parent, QString s)
+ : Q3ListViewItem(parent, s)
+ {
+ _id = id;
+ }
+ IdListViewItem(int id, Q3ListView* parent, QString s)
+ : Q3ListViewItem(parent, s)
+ {
+ _id = id;
+ }
+ int id() const { return _id; }
+ };
+
+//---------------------------------------------------------
+// Appearance
+//---------------------------------------------------------
+
+Appearance::Appearance(Arranger* a, QWidget* parent, const char* name)
+ : AppearanceDialogBase(parent, name)
+ {
+ arr = a;
+ color = 0;
+ config = new GlobalConfigValues;
+
+ QToolTip::add(fontName0, tr("Main application font, and default font for any\n controls not defined here."));
+ QToolTip::add(fontName1, tr("For small controls like mixer strips.\nAlso timescale small numbers, arranger part name overlay,\n and effects rack."));
+ QToolTip::add(fontName2, tr("Midi track info panel. Transport controls."));
+ QToolTip::add(fontName3, tr("Controller graph and S/X buttons. Large numbers for time\n and tempo scale, and time signature."));
+ QToolTip::add(fontName4, tr("Time scale markers."));
+ QToolTip::add(fontName5, tr("List editor: meta event edit dialog multi-line edit box."));
+ QToolTip::add(fontName6, tr("Mixer label font. Auto-font-sizing up to chosen font size.\nWord-breaking but only with spaces."));
+ QToolTip::add(fontSize6, tr("Maximum mixer label auto-font-sizing font size."));
+
+ // ARRANGER
+
+ /*
+ currentBg = ::config.canvasBgPixmap;
+ if (currentBg.isEmpty())
+ currentBg = "<none>";
+ 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
+ IdListViewItem* id;
+ IdListViewItem* aid;
+ itemList->clear();
+ aid = new IdListViewItem(0, itemList, "Arranger");
+ id = new IdListViewItem(0, aid, "PartColors");
+ new IdListViewItem(0x400, id, "Default");
+ new IdListViewItem(0x401, id, "Refrain");
+ new IdListViewItem(0x402, id, "Bridge");
+ new IdListViewItem(0x403, id, "Intro");
+ new IdListViewItem(0x404, id, "Coda");
+ new IdListViewItem(0x405, id, "Chorus");
+ new IdListViewItem(0x406, id, "Solo");
+ new IdListViewItem(0x407, id, "Brass");
+ new IdListViewItem(0x408, id, "Percussion");
+ new IdListViewItem(0x409, id, "Drums");
+ new IdListViewItem(0x40a, id, "Guitar");
+ new IdListViewItem(0x40b, id, "Bass");
+ new IdListViewItem(0x40c, id, "Flute");
+ new IdListViewItem(0x40d, id, "Strings");
+ new IdListViewItem(0x40e, id, "Keyboard");
+ new IdListViewItem(0x40f, id, "Piano");
+ new IdListViewItem(0x410, id, "Saxophon");
+ new IdListViewItem(0x41c, aid, "part canvas background");
+ id = new IdListViewItem(0, aid, "Track List");
+ new IdListViewItem(0x411, id, "background");
+ new IdListViewItem(0x412, id, "midi background");
+ new IdListViewItem(0x413, id, "drum background");
+ new IdListViewItem(0x414, id, "wave background");
+ new IdListViewItem(0x415, id, "output background");
+ new IdListViewItem(0x416, id, "input background");
+ new IdListViewItem(0x417, id, "group background");
+ new IdListViewItem(0x418, id, "aux background");
+ new IdListViewItem(0x419, id, "synth background");
+ new IdListViewItem(0x41a, id, "selected track background");
+ new IdListViewItem(0x41b, id, "selected track foreground");
+ id = new IdListViewItem(0, itemList, "BigTime");
+ new IdListViewItem(0x100, id, "background");
+ new IdListViewItem(0x101, id, "foreground");
+ id = new IdListViewItem(0, itemList, "Transport");
+ new IdListViewItem(0x200, id, "handle");
+ id = new IdListViewItem(0, itemList, "Midi Editor");
+ new IdListViewItem(0x41d, id, "controller graph");
+ id = new IdListViewItem(0, itemList, "Wave Editor");
+ new IdListViewItem(0x300, id, "background");
+
+ connect(itemList, SIGNAL(selectionChanged()), SLOT(colorItemSelectionChanged()));
+ connect(aPalette, SIGNAL(clicked(int)), SLOT(paletteClicked(int)));
+ connect(rslider, SIGNAL(valueChanged(int)), SLOT(rsliderChanged(int)));
+ connect(gslider, SIGNAL(valueChanged(int)), SLOT(gsliderChanged(int)));
+ connect(bslider, SIGNAL(valueChanged(int)), SLOT(bsliderChanged(int)));
+ 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(rval, SIGNAL(valueChanged(int)), SLOT(rsliderChanged(int)));
+ connect(gval, SIGNAL(valueChanged(int)), SLOT(gsliderChanged(int)));
+ connect(bval, SIGNAL(valueChanged(int)), SLOT(bsliderChanged(int)));
+ connect(hval, SIGNAL(valueChanged(int)), SLOT(hsliderChanged(int)));
+ connect(sval, SIGNAL(valueChanged(int)), SLOT(ssliderChanged(int)));
+ connect(vval, SIGNAL(valueChanged(int)), SLOT(vsliderChanged(int)));
+
+ connect(addToPalette, SIGNAL(clicked()), SLOT(addToPaletteClicked()));
+
+ //---------------------------------------------------
+ // STYLE
+ //---------------------------------------------------
+
+ /*
+ themeComboBox->clear();
+ QString cs = muse->style().name();
+ cs = cs.lower();
+
+ themeComboBox->insertStringList(QStyleFactory::keys());
+ for (int i = 0; i < themeComboBox->count(); ++i) {
+ if (themeComboBox->text(i).lower() == cs) {
+ themeComboBox->setCurrentItem(i);
+ }
+ }
+ */
+
+ //---------------------------------------------------
+ // Fonts
+ //---------------------------------------------------
+
+ fontBrowse0->setPixmap(*openIcon);
+ fontBrowse1->setPixmap(*openIcon);
+ fontBrowse2->setPixmap(*openIcon);
+ fontBrowse3->setPixmap(*openIcon);
+ fontBrowse4->setPixmap(*openIcon);
+ fontBrowse5->setPixmap(*openIcon);
+ fontBrowse6->setPixmap(*openIcon);
+ connect(fontBrowse0, SIGNAL(clicked()), SLOT(browseFont0()));
+ connect(fontBrowse1, SIGNAL(clicked()), SLOT(browseFont1()));
+ connect(fontBrowse2, SIGNAL(clicked()), SLOT(browseFont2()));
+ connect(fontBrowse3, SIGNAL(clicked()), SLOT(browseFont3()));
+ connect(fontBrowse4, SIGNAL(clicked()), SLOT(browseFont4()));
+ connect(fontBrowse5, SIGNAL(clicked()), SLOT(browseFont5()));
+ connect(fontBrowse6, SIGNAL(clicked()), SLOT(browseFont6()));
+
+ connect(applyButton, SIGNAL(clicked()), SLOT(apply()));
+ connect(okButton, SIGNAL(clicked()), SLOT(ok()));
+ connect(cancelButton, SIGNAL(clicked()), SLOT(cancel()));
+ connect(selectBgButton, SIGNAL(clicked()), SLOT(configBackground()));
+ connect(clearBgButton, SIGNAL(clicked()), SLOT(clearBackground()));
+ connect(partShowevents, SIGNAL(toggled(bool)), eventButtonGroup, SLOT(setEnabled(bool)));
+ //updateColor();
+ }
+
+//---------------------------------------------------------
+// resetValues
+//---------------------------------------------------------
+
+void Appearance::resetValues()
+ {
+ *config = ::config; // init with global config values
+ updateFonts();
+ palette0->setPaletteBackgroundColor(config->palette[0]);
+ palette1->setPaletteBackgroundColor(config->palette[1]);
+ palette2->setPaletteBackgroundColor(config->palette[2]);
+ palette3->setPaletteBackgroundColor(config->palette[3]);
+ palette4->setPaletteBackgroundColor(config->palette[4]);
+ palette5->setPaletteBackgroundColor(config->palette[5]);
+ palette6->setPaletteBackgroundColor(config->palette[6]);
+ palette7->setPaletteBackgroundColor(config->palette[7]);
+ palette8->setPaletteBackgroundColor(config->palette[8]);
+ palette9->setPaletteBackgroundColor(config->palette[9]);
+ palette10->setPaletteBackgroundColor(config->palette[10]);
+ palette11->setPaletteBackgroundColor(config->palette[11]);
+ palette12->setPaletteBackgroundColor(config->palette[12]);
+ palette13->setPaletteBackgroundColor(config->palette[13]);
+ palette14->setPaletteBackgroundColor(config->palette[14]);
+ palette15->setPaletteBackgroundColor(config->palette[15]);
+
+ currentBg = ::config.canvasBgPixmap;
+ if (currentBg.isEmpty())
+ currentBg = tr("<none>");
+ 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);
+ eventButtonGroup->setEnabled(config->canvasShowPartType & 2);
+ arrGrid->setChecked(config->canvasShowGrid);
+
+ themeComboBox->clear();
+ QString cs = muse->style()->name();
+ cs = cs.lower();
+
+ themeComboBox->insertStringList(QStyleFactory::keys());
+ for (int i = 0; i < themeComboBox->count(); ++i) {
+ if (themeComboBox->text(i).lower() == cs) {
+ themeComboBox->setCurrentItem(i);
+ }
+ }
+
+ updateColor();
+
+ }
+
+//---------------------------------------------------------
+// Appearance
+//---------------------------------------------------------
+
+Appearance::~Appearance()
+ {
+ delete config;
+ }
+
+//---------------------------------------------------------
+// updateFonts
+//---------------------------------------------------------
+
+void Appearance::updateFonts()
+ {
+ fontSize0->setValue(config->fonts[0].pointSize());
+ fontName0->setText(config->fonts[0].family());
+ italic0->setChecked(config->fonts[0].italic());
+ bold0->setChecked(config->fonts[0].bold());
+
+ fontSize1->setValue(config->fonts[1].pointSize());
+ fontName1->setText(config->fonts[1].family());
+ italic1->setChecked(config->fonts[1].italic());
+ bold1->setChecked(config->fonts[1].bold());
+
+ fontSize2->setValue(config->fonts[2].pointSize());
+ fontName2->setText(config->fonts[2].family());
+ italic2->setChecked(config->fonts[2].italic());
+ bold2->setChecked(config->fonts[2].bold());
+
+ fontSize3->setValue(config->fonts[3].pointSize());
+ fontName3->setText(config->fonts[3].family());
+ italic3->setChecked(config->fonts[3].italic());
+ bold3->setChecked(config->fonts[3].bold());
+
+ fontSize4->setValue(config->fonts[4].pointSize());
+ fontName4->setText(config->fonts[4].family());
+ italic4->setChecked(config->fonts[4].italic());
+ bold4->setChecked(config->fonts[4].bold());
+
+ fontSize5->setValue(config->fonts[5].pointSize());
+ fontName5->setText(config->fonts[5].family());
+ italic5->setChecked(config->fonts[5].italic());
+ bold5->setChecked(config->fonts[5].bold());
+
+ fontSize6->setValue(config->fonts[6].pointSize());
+ fontName6->setText(config->fonts[6].family());
+ italic6->setChecked(config->fonts[6].italic());
+ bold6->setChecked(config->fonts[6].bold());
+ }
+
+//---------------------------------------------------------
+// apply
+//---------------------------------------------------------
+
+void Appearance::apply()
+ {
+ int showPartEvent = 0;
+ int showPartType = 0;
+
+ if (partShownames->isChecked())
+ showPartType |= 1;
+ if (partShowevents->isChecked())
+ showPartType |= 2;
+ //if (partShowCakes->isChecked())
+ // showPartType |= 4;
+
+ config->canvasShowPartType = showPartType;
+
+ 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->canvasShowPartEvent = showPartEvent;
+
+ if (currentBg == tr("<none>"))
+ config->canvasBgPixmap = QString();
+ else
+ config->canvasBgPixmap = currentBg;
+
+ // Added by Tim. p3.3.9
+ config->fonts[0].setFamily(fontName0->text());
+
+ config->fonts[0].setPointSize(fontSize0->value());
+ config->fonts[0].setItalic(italic0->isChecked());
+ config->fonts[0].setBold(bold0->isChecked());
+ QApplication::setFont(config->fonts[0], true);
+
+ config->fonts[1].setFamily(fontName1->text());
+ config->fonts[1].setPointSize(fontSize1->value());
+ config->fonts[1].setItalic(italic1->isChecked());
+ config->fonts[1].setBold(bold1->isChecked());
+
+ config->fonts[2].setFamily(fontName2->text());
+ config->fonts[2].setPointSize(fontSize2->value());
+ config->fonts[2].setItalic(italic2->isChecked());
+ config->fonts[2].setBold(bold2->isChecked());
+
+ config->fonts[3].setFamily(fontName3->text());
+ config->fonts[3].setPointSize(fontSize3->value());
+ config->fonts[3].setItalic(italic3->isChecked());
+ config->fonts[3].setBold(bold3->isChecked());
+
+ config->fonts[4].setFamily(fontName4->text());
+ config->fonts[4].setPointSize(fontSize4->value());
+ config->fonts[4].setItalic(italic4->isChecked());
+ config->fonts[4].setBold(bold4->isChecked());
+
+ config->fonts[5].setFamily(fontName5->text());
+ config->fonts[5].setPointSize(fontSize5->value());
+ config->fonts[5].setItalic(italic5->isChecked());
+ config->fonts[5].setBold(bold5->isChecked());
+
+ config->fonts[6].setFamily(fontName6->text());
+ config->fonts[6].setPointSize(fontSize6->value());
+ config->fonts[6].setItalic(italic6->isChecked());
+ config->fonts[6].setBold(bold6->isChecked());
+
+ config->style = themeComboBox->currentText();
+ // setting up a new theme might change the fontsize, so re-read
+ fontSize0->setValue(QApplication::font().pointSize());
+
+ config->canvasShowGrid = arrGrid->isChecked();
+
+ // set colors...
+ ::config = *config;
+ muse->changeConfig(true);
+ }
+
+//---------------------------------------------------------
+// ok
+//---------------------------------------------------------
+
+void Appearance::ok()
+ {
+ apply();
+ close(false);
+ }
+
+//---------------------------------------------------------
+// cancel
+//---------------------------------------------------------
+
+void Appearance::cancel()
+ {
+ close(false);
+ }
+
+//---------------------------------------------------------
+// configBackground
+//---------------------------------------------------------
+
+void Appearance::configBackground()
+ {
+ QString cur(currentBg);
+ if (cur == tr("<none>"))
+ cur = museGlobalShare + "/wallpapers";
+ currentBg = getImageFileName(cur, image_file_pattern, this,
+ tr("MusE: load image"));
+ if (currentBg.isEmpty())
+ currentBg = tr("<none>");
+ currentBgLabel->setText(currentBg);
+ }
+
+//---------------------------------------------------------
+// clearBackground
+//---------------------------------------------------------
+
+void Appearance::clearBackground()
+ {
+ currentBg = tr("<none>");
+ currentBgLabel->setText(currentBg);
+ }
+
+//---------------------------------------------------------
+// selectionChanged
+//---------------------------------------------------------
+
+void Appearance::colorItemSelectionChanged()
+ {
+ IdListViewItem* item = (IdListViewItem*)itemList->selectedItem();
+ QString txt = item->text(0);
+ int id = item->id();
+ if (id == 0) {
+ color = 0;
+ return;
+ }
+ switch(id) {
+ case 0x400: // "Default"
+ case 0x401: // "Refrain"
+ case 0x402: // "Bridge"
+ case 0x403: // "Intro"
+ case 0x404: // "Coda"
+ case 0x405: // "Chorus"
+ case 0x406: // "Solo"
+ case 0x407: // "Brass"
+ case 0x408: // "Percussion"
+ case 0x409: // "Drums"
+ case 0x40a: // "Guitar"
+ case 0x40b: // "Bass"
+ case 0x40c: // "Flute"
+ case 0x40d: // "Strings
+ case 0x40e: // "Keyboard
+ case 0x40f: // "Piano
+ case 0x410: // "Saxophon
+ 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 0x411: color = &config->trackBg; break;
+ case 0x412: color = &config->midiTrackBg; break;
+ case 0x413: color = &config->drumTrackBg; break;
+ case 0x414: color = &config->waveTrackBg; break;
+ case 0x415: color = &config->outputTrackBg; break;
+ case 0x416: color = &config->inputTrackBg; break;
+ case 0x417: color = &config->groupTrackBg; break;
+ case 0x418: color = &config->auxTrackBg; break;
+ case 0x419: color = &config->synthTrackBg; break;
+ case 0x41a: color = &config->selectTrackBg; break;
+ case 0x41b: color = &config->selectTrackFg; break;
+ case 0x41c: color = &config->partCanvasBg; break;
+ case 0x41d: color = &config->ctrlGraphFg; break;
+
+ default:
+ color = 0;
+ break;
+ }
+ updateColor();
+ }
+
+void Appearance::updateColor()
+ {
+ int r, g, b, h, s, v;
+ rslider->setEnabled(color);
+ gslider->setEnabled(color);
+ bslider->setEnabled(color);
+ hslider->setEnabled(color);
+ sslider->setEnabled(color);
+ vslider->setEnabled(color);
+ rval->setEnabled(color);
+ gval->setEnabled(color);
+ bval->setEnabled(color);
+ hval->setEnabled(color);
+ sval->setEnabled(color);
+ vval->setEnabled(color);
+ if (color == 0)
+ return;
+ colorframe->setBackgroundColor(*color);
+ color->getRgb(&r, &g, &b);
+ color->getHsv(&h, &s, &v);
+
+ rslider->blockSignals(true);
+ gslider->blockSignals(true);
+ bslider->blockSignals(true);
+ hslider->blockSignals(true);
+ sslider->blockSignals(true);
+ vslider->blockSignals(true);
+ rval->blockSignals(true);
+ gval->blockSignals(true);
+ bval->blockSignals(true);
+ hval->blockSignals(true);
+ sval->blockSignals(true);
+ vval->blockSignals(true);
+
+ rslider->setValue(r);
+ gslider->setValue(g);
+ bslider->setValue(b);
+ hslider->setValue(h);
+ sslider->setValue(s);
+ vslider->setValue(v);
+ rval->setValue(r);
+ gval->setValue(g);
+ bval->setValue(b);
+ hval->setValue(h);
+ sval->setValue(s);
+ vval->setValue(v);
+
+ rslider->blockSignals(false);
+ gslider->blockSignals(false);
+ bslider->blockSignals(false);
+ hslider->blockSignals(false);
+ sslider->blockSignals(false);
+ vslider->blockSignals(false);
+ rval->blockSignals(false);
+ gval->blockSignals(false);
+ bval->blockSignals(false);
+ hval->blockSignals(false);
+ sval->blockSignals(false);
+ vval->blockSignals(false);
+ }
+
+void Appearance::rsliderChanged(int val)
+ {
+ int r, g, b;
+ if (color) {
+ color->getRgb(&r, &g, &b);
+ color->setRgb(val, g, b);
+ }
+ updateColor();
+ }
+
+void Appearance::gsliderChanged(int val)
+ {
+ int r, g, b;
+ if (color) {
+ color->getRgb(&r, &g, &b);
+ color->setRgb(r, val, b);
+ }
+ updateColor();
+ }
+
+void Appearance::bsliderChanged(int val)
+ {
+ int r, g, b;
+ if (color) {
+ color->getRgb(&r, &g, &b);
+ color->setRgb(r, g, val);
+ }
+ updateColor();
+ }
+
+void Appearance::hsliderChanged(int val)
+ {
+ int h, s, v;
+ if (color) {
+ color->getHsv(&h, &s, &v);
+ color->setHsv(val, s, v);
+ }
+ updateColor();
+ }
+
+void Appearance::ssliderChanged(int val)
+ {
+ int h, s, v;
+ if (color) {
+ color->getHsv(&h, &s, &v);
+ color->setHsv(h, val, v);
+ }
+ updateColor();
+ }
+
+void Appearance::vsliderChanged(int val)
+ {
+ int h, s, v;
+ if (color) {
+ color->getHsv(&h, &s, &v);
+ color->setHsv(h, s, val);
+ }
+ updateColor();
+ }
+
+//---------------------------------------------------------
+// addToPaletteClicked
+//---------------------------------------------------------
+
+void Appearance::addToPaletteClicked()
+ {
+ if (!color)
+ return;
+ Q3Button* button = (Q3Button*)aPalette->selected(); // ddskrjo
+ int r, g, b;
+ QColor c;
+ if (button) {
+ int id = aPalette->id(button);
+ c = config->palette[id];
+ c.getRgb(&r, &g, &b);
+ }
+ if (button == 0 || r != 0xff || g != 0xff || b != 0xff) {
+ for (int i = 0; i < 16; ++i) {
+ c = config->palette[i];
+ c.getRgb(&r, &g, &b);
+ if (r == 0xff && g == 0xff && b == 0xff) {
+ // found empty slot
+ aPalette->setButton(i);
+ //aPalette->moveFocus(i); ddskrjo
+ button = (Q3Button*)aPalette->find(i); // ddskrjo
+ break;
+ }
+ }
+ }
+ if (button) {
+ int id = aPalette->id(button);
+ config->palette[id] = *color;
+ button->setPaletteBackgroundColor(*color);
+ button->update(); //??
+ }
+ }
+
+//---------------------------------------------------------
+// paletteClicked
+//---------------------------------------------------------
+
+void Appearance::paletteClicked(int id)
+ {
+ if (!color)
+ return;
+ Q3Button* button = (Q3Button*)aPalette->find(id); // ddskrjo
+ if (button) {
+ QColor c = button->paletteBackgroundColor();
+ 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();
+ }
+ }
+
+//---------------------------------------------------------
+// browseFont
+//---------------------------------------------------------
+
+void Appearance::browseFont0() { browseFont(0); }
+void Appearance::browseFont1() { browseFont(1); }
+void Appearance::browseFont2() { browseFont(2); }
+void Appearance::browseFont3() { browseFont(3); }
+void Appearance::browseFont4() { browseFont(4); }
+void Appearance::browseFont5() { browseFont(5); }
+void Appearance::browseFont6() { browseFont(6); }
+
+void Appearance::browseFont(int n)
+ {
+ bool ok;
+ QFont font = QFontDialog::getFont(&ok, config->fonts[n], this, "browseFont");
+ if (ok) {
+ config->fonts[n] = font;
+ updateFonts();
+ }
+ }
+
diff --git a/muse2/muse/appearance.h b/muse2/muse/appearance.h
new file mode 100644
index 00000000..1225d96a
--- /dev/null
+++ b/muse2/muse/appearance.h
@@ -0,0 +1,56 @@
+#ifndef __APPEARANCE_H__
+#define __APPEARANCE_H__
+
+#include "appearancebase.h"
+#include <qfont.h>
+
+class MusE;
+class Arranger;
+class QColor;
+class GlobalConfigValues;
+
+//---------------------------------------------------------
+// Appearance Dialog
+//---------------------------------------------------------
+
+class Appearance : public AppearanceDialogBase {
+ Arranger* arr;
+ QColor* color;
+ QString currentBg;
+ GlobalConfigValues* config;
+
+ Q_OBJECT
+ void updateFonts();
+ void updateColor();
+
+ private slots:
+ void apply();
+ void ok();
+ void cancel();
+ void configBackground();
+ void clearBackground();
+ void colorItemSelectionChanged();
+ void browseFont(int);
+ void browseFont0();
+ void browseFont1();
+ void browseFont2();
+ void browseFont3();
+ void browseFont4();
+ void browseFont5();
+ void browseFont6();
+ void rsliderChanged(int);
+ void gsliderChanged(int);
+ void bsliderChanged(int);
+ void hsliderChanged(int);
+ void ssliderChanged(int);
+ void vsliderChanged(int);
+ void addToPaletteClicked();
+ void paletteClicked(int);
+
+ public:
+ Appearance(Arranger*, QWidget* parent=0, const char* name=0);
+ ~Appearance();
+ void resetValues();
+ };
+
+#endif
diff --git a/muse2/muse/arranger/Makefile.am b/muse2/muse/arranger/Makefile.am
new file mode 100644
index 00000000..7b99b4c4
--- /dev/null
+++ b/muse2/muse/arranger/Makefile.am
@@ -0,0 +1,20 @@
+include $(top_srcdir)/common.am
+
+noinst_LIBRARIES = libarranger.a
+
+if PCH
+AM_CXXFLAGS += -include $(top_srcdir)/all.h
+endif
+
+dist_libarranger_a_SOURCES = \
+ arranger.cpp arranger.h \
+ pcanvas.cpp pcanvas.h \
+ tlist.cpp tlist.h \
+ alayout.cpp alayout.h \
+ trackinfo.cpp trackautomationview.h
+
+nodist_libarranger_a_SOURCES = \
+ moc_arranger.cpp \
+ moc_pcanvas.cpp \
+ moc_tlist.cpp \
+ moc_alayout.cpp
diff --git a/muse2/muse/arranger/Makefile.in b/muse2/muse/arranger/Makefile.in
new file mode 100644
index 00000000..02bb5920
--- /dev/null
+++ b/muse2/muse/arranger/Makefile.in
@@ -0,0 +1,612 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
+ $(top_srcdir)/common.am
+@PCH_TRUE@am__append_1 = -include $(top_srcdir)/all.h
+subdir = muse/arranger
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal-include.m4 \
+ $(top_srcdir)/m4/alsa.m4 $(top_srcdir)/m4/docbook.m4 \
+ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
+ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
+ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+LIBRARIES = $(noinst_LIBRARIES)
+ARFLAGS = cru
+libarranger_a_AR = $(AR) $(ARFLAGS)
+libarranger_a_LIBADD =
+dist_libarranger_a_OBJECTS = arranger.$(OBJEXT) pcanvas.$(OBJEXT) \
+ tlist.$(OBJEXT) alayout.$(OBJEXT) trackinfo.$(OBJEXT)
+nodist_libarranger_a_OBJECTS = moc_arranger.$(OBJEXT) \
+ moc_pcanvas.$(OBJEXT) moc_tlist.$(OBJEXT) \
+ moc_alayout.$(OBJEXT)
+libarranger_a_OBJECTS = $(dist_libarranger_a_OBJECTS) \
+ $(nodist_libarranger_a_OBJECTS)
+DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
+depcomp = $(SHELL) $(top_srcdir)/depcomp
+am__depfiles_maybe = depfiles
+am__mv = mv -f
+CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
+LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
+CXXLD = $(CXX)
+CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \
+ $(LDFLAGS) -o $@
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
+ $(LDFLAGS) -o $@
+SOURCES = $(dist_libarranger_a_SOURCES) \
+ $(nodist_libarranger_a_SOURCES)
+DIST_SOURCES = $(dist_libarranger_a_SOURCES)
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ALSA_CFLAGS = @ALSA_CFLAGS@
+ALSA_LIBS = @ALSA_LIBS@
+AMTAR = @AMTAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DOCBOOKSTYLE = @DOCBOOKSTYLE@
+DOCBOOKTARGETS = @DOCBOOKTARGETS@
+DOT = @DOT@
+DOTPATH = @DOTPATH@
+DOXYGEN = @DOXYGEN@
+DOXYGEN_TREEVIEW = @DOXYGEN_TREEVIEW@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+FLUIDSYNTHDIRS = @FLUIDSYNTHDIRS@
+FST_CFLAGS = @FST_CFLAGS@
+FST_LIBS = @FST_LIBS@
+Fluidsynth_CFLAGS = @Fluidsynth_CFLAGS@
+Fluidsynth_LIBS = @Fluidsynth_LIBS@
+GIVERTCAP = @GIVERTCAP@
+GREP = @GREP@
+HAVEDOT = @HAVEDOT@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JACK_CFLAGS = @JACK_CFLAGS@
+JACK_LIBS = @JACK_LIBS@
+JADE = @JADE@
+LASH_CFLAGS = @LASH_CFLAGS@
+LASH_LIBS = @LASH_LIBS@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LO_CFLAGS = @LO_CFLAGS@
+LO_LIBS = @LO_LIBS@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+MUSECXXFLAGS = @MUSECXXFLAGS@
+NM = @NM@
+NMEDIT = @NMEDIT@
+NSGMLS = @NSGMLS@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PCH = @PCH@
+PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+PYTHON = @PYTHON@
+PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
+PYTHON_INCLUDES = @PYTHON_INCLUDES@
+PYTHON_LIB = @PYTHON_LIB@
+PYTHON_PLATFORM = @PYTHON_PLATFORM@
+PYTHON_PREFIX = @PYTHON_PREFIX@
+PYTHON_VERSION = @PYTHON_VERSION@
+QTDIR_BIN = @QTDIR_BIN@
+QTDIR_INC = @QTDIR_INC@
+QT_LIBS = @QT_LIBS@
+RANLIB = @RANLIB@
+SAMPLERATE_CFLAGS = @SAMPLERATE_CFLAGS@
+SAMPLERATE_LIBS = @SAMPLERATE_LIBS@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SNDFILE_CFLAGS = @SNDFILE_CFLAGS@
+SNDFILE_LIBS = @SNDFILE_LIBS@
+STRIP = @STRIP@
+SUIDBUILD = @SUIDBUILD@
+SUIDINSTALL = @SUIDINSTALL@
+USE_SSE = @USE_SSE@
+UUID_CFLAGS = @UUID_CFLAGS@
+UUID_LIBS = @UUID_LIBS@
+VERSION = @VERSION@
+XMKMF = @XMKMF@
+X_CFLAGS = @X_CFLAGS@
+X_EXTRA_LIBS = @X_EXTRA_LIBS@
+X_LIBS = @X_LIBS@
+X_PRE_LIBS = @X_PRE_LIBS@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+have_docbook = @have_docbook@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+lt_ECHO = @lt_ECHO@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+pkgpyexecdir = @pkgpyexecdir@
+pkgpythondir = @pkgpythondir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+pyexecdir = @pyexecdir@
+pythondir = @pythondir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+synth_fluid = @synth_fluid@
+synth_fluidsynth = @synth_fluidsynth@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+AM_CXXFLAGS = $(MUSECXXFLAGS) -I.. -I$(top_srcdir)/synti \
+ -I$(top_srcdir)/muse/widgets -DQT_SHARED -DQT_THREAD_SUPPORT \
+ -DQT_PLUGIN $(QTDIR_INC) -DQT3_SUPPORT $(am__append_1)
+AM_CPPFLAGS =
+MOC = $(QTDIR_BIN)/moc
+#UIC = $(QTDIR_BIN)/uic3
+UIC = /usr/bin/uic3
+UIFILES = $(wildcard *.ui)
+MOCFILES = $(shell for h in $(filter %.h,$(SOURCES)); do \
+ if grep -q Q_OBJECT $$h; then \
+ echo $$h | sed "s/\(.*\)\.h/moc_\1.cpp/"; \
+ fi; \
+ done)
+
+BUILT_SOURCES = $(MOCFILES) $(UIFILES:%.ui=%.h)
+MOSTLYCLEANFILES = $(MOCFILES) $(UIFILES:%.ui=%.h)
+SUFFIXES = .ui .h.gch
+noinst_LIBRARIES = libarranger.a
+dist_libarranger_a_SOURCES = \
+ arranger.cpp arranger.h \
+ pcanvas.cpp pcanvas.h \
+ tlist.cpp tlist.h \
+ alayout.cpp alayout.h \
+ trackinfo.cpp trackautomationview.h
+
+nodist_libarranger_a_SOURCES = \
+ moc_arranger.cpp \
+ moc_pcanvas.cpp \
+ moc_tlist.cpp \
+ moc_alayout.cpp
+
+all: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) all-am
+
+.SUFFIXES:
+.SUFFIXES: .ui .h.gch .cpp .lo .o .obj
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/common.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu muse/arranger/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu muse/arranger/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+clean-noinstLIBRARIES:
+ -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
+libarranger.a: $(libarranger_a_OBJECTS) $(libarranger_a_DEPENDENCIES)
+ -rm -f libarranger.a
+ $(libarranger_a_AR) libarranger.a $(libarranger_a_OBJECTS) $(libarranger_a_LIBADD)
+ $(RANLIB) libarranger.a
+
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT)
+
+distclean-compile:
+ -rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/alayout.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/arranger.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/moc_alayout.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/moc_arranger.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/moc_pcanvas.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/moc_tlist.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pcanvas.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tlist.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/trackinfo.Po@am__quote@
+
+.cpp.o:
+@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $<
+
+.cpp.obj:
+@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+
+.cpp.lo:
+@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $<
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ mkid -fID $$unique
+tags: TAGS
+
+TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ set x; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: CTAGS
+CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) check-am
+all-am: Makefile $(LIBRARIES)
+installdirs:
+install: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+ -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES)
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+ -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
+clean: clean-am
+
+clean-am: clean-generic clean-libtool clean-noinstLIBRARIES \
+ mostlyclean-am
+
+distclean: distclean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+ distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+ mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: all check install install-am install-strip
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
+ clean-libtool clean-noinstLIBRARIES ctags distclean \
+ distclean-compile distclean-generic distclean-libtool \
+ distclean-tags distdir dvi dvi-am html html-am info info-am \
+ install install-am install-data install-data-am install-dvi \
+ install-dvi-am install-exec install-exec-am install-html \
+ install-html-am install-info install-info-am install-man \
+ install-pdf install-pdf-am install-ps install-ps-am \
+ install-strip installcheck installcheck-am installdirs \
+ maintainer-clean maintainer-clean-generic mostlyclean \
+ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
+ pdf pdf-am ps ps-am tags uninstall uninstall-am
+
+
+de:
+ @for base in $(MOCFILES); do echo -e "\t$${base}.cpp $${base}.h \\"; done
+
+nde:
+ @for base in $(MOCFILES); do echo -e "\tmoc_$${base}.cpp \\"; done
+
+.ui.o: %.h
+ $(UIC) -L $(top_srcdir)/muse/widgets -o $*.cpp -impl $*.h $*.ui
+ $(MOC) $*.h >> $*.cpp
+ $(CXXCOMPILE) -c $*.cpp -o $*.o
+ $(RM) $*.cpp moc_$*.cpp moc_$*.o
+
+.ui.lo: %.h
+ $(UIC) -L $(top_srcdir)/muse/widgets -o $*.cpp -impl $*.h $*.ui
+ $(MOC) $*.h >> $*.cpp
+ $(LTCXXCOMPILE) -c $*.cpp -o $*.lo
+ $(RM) $*.cpp moc_$*.cpp moc_$*.lo moc_$*.o
+
+moc_%.cpp: %.h
+ $(MOC) $< -o $@
+
+%.h: %.ui
+ $(UIC) -o $@ $<
+# $(UIC) -L $(top_srcdir)/muse/widgets -o $@ $<
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/muse2/muse/arranger/alayout.cpp b/muse2/muse/arranger/alayout.cpp
new file mode 100644
index 00000000..04665b24
--- /dev/null
+++ b/muse2/muse/arranger/alayout.cpp
@@ -0,0 +1,161 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: alayout.cpp,v 1.8 2004/02/28 14:58:24 wschweer Exp $
+// (C) Copyright 2002 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include "alayout.h"
+#include <qscrollbar.h>
+//Added by qt3to4:
+#include <Q3PtrList>
+
+#include "arranger.h"
+
+//---------------------------------------------------------
+// wadd
+//---------------------------------------------------------
+
+void TLLayout::wadd(int idx, QWidget* w)
+ {
+ li[idx] = new QWidgetItem(w);
+ if (idx == 0)
+ stack = (WidgetStack*)w;
+ if (idx == 1)
+ sb = (QScrollBar*)w;
+ addItem(li[idx]);
+ }
+
+//---------------------------------------------------------
+// TLLayoutIterator
+//---------------------------------------------------------
+
+class TLLayoutIterator // : public QGLayoutIterator ddskrjo
+ {
+ int idx;
+ Q3PtrList<QLayoutItem> *list;
+
+ public:
+ TLLayoutIterator(Q3PtrList<QLayoutItem> *l) : idx(0), list(l) {}
+ QLayoutItem *current() { return idx < int(list->count()) ? list->at(idx) : 0; }
+ QLayoutItem *next() { idx++; return current(); }
+ QLayoutItem *takeCurrent() { return list->take( idx ); }
+ };
+
+//---------------------------------------------------------
+// iterator
+//---------------------------------------------------------
+
+QLayoutIterator TLLayout::iterator()
+ {
+ return QLayoutIterator(0); //new TLLayoutIterator(&ilist)); ddskrjo
+ }
+
+void TLLayout::addItem(QLayoutItem *item)
+ {
+ ilist.append(item);
+ }
+
+TLLayout::~TLLayout()
+ {
+ deleteAllItems();
+ }
+
+//---------------------------------------------------------
+// setGeometry
+// perform geometry management for tracklist:
+//
+// 0 1 2
+// +-----------+--------+---------+
+// | Trackinfo | scroll | header 2|
+// | | bar +---------+ y1
+// | ^ | | ^ |
+// | | | <list> |
+// | 0 | 1 | 3 |
+// +-----------+--------+---------+ y2
+// | hline 4 |
+// +----------+-------------------+ y3
+// | button 5 | |
+// +----------+-------------------+
+//---------------------------------------------------------
+
+void TLLayout::setGeometry(const QRect &rect)
+ {
+ int w = rect.width();
+ int h = rect.height();
+
+ QSize s0;
+ if (stack->visibleWidget()) {
+ s0 = stack->visibleWidget()->minimumSizeHint();
+ if (!s0.isValid()) // widget has no geometry management
+ s0 = stack->visibleWidget()->size();
+ }
+ else
+ s0 = stack->minimumSizeHint();
+
+ QSize s1 = li[1]->sizeHint();
+ QSize s2 = li[2]->sizeHint();
+ QSize s3 = li[3]->sizeHint();
+ QSize s4 = li[4]->sizeHint();
+ QSize s5 = li[5]->sizeHint();
+
+ int y1 = 30; // fixed header height
+ int ah = h - s5.height() - s4.height() - y1; // list height
+ int aw = w - s1.width() - s0.width(); // list width
+
+ int y2 = ah + s2.height();
+ int y3 = y2 + s4.height();
+ int x1 = s0.width();
+ int x2 = x1 + s1.width();
+
+ li[0]->setGeometry(QRect(0, 0, s0.width(), y2));
+
+ QWidget* widget = stack->visibleWidget();
+ int range = s0.height() - y2;
+ if (range < 0)
+ range = 0;
+ sb->setShown(range != 0);
+ if (range)
+ sb->setMaxValue(range);
+
+ if (widget) {
+ QSize r(s0.width(), y2);
+ widget->setGeometry(0, 0, r.width(), r.height());
+ }
+
+ li[1]->setGeometry(QRect(x1, 0, s1.width(), y2));
+ li[2]->setGeometry(QRect(x2, 0, aw, s2.height()));
+ li[3]->setGeometry(QRect(x2, y1, aw, ah));
+ li[4]->setGeometry(QRect(0, y2, w, s4.height()));
+ li[5]->setGeometry(QRect(3, y3, s5.width(), s5.height()));
+ }
+
+//---------------------------------------------------------
+// sizeHint
+//---------------------------------------------------------
+
+QSize TLLayout::sizeHint() const
+ {
+ return QSize(150, 100);
+ }
+
+//---------------------------------------------------------
+// minimumSize
+//---------------------------------------------------------
+
+QSize TLLayout::minimumSize() const
+ {
+ int w = stack->minimumSizeHint().width();
+ w += li[1]->sizeHint().width();
+ return QSize(w, 50);
+ }
+
+//---------------------------------------------------------
+// maximumSize
+//---------------------------------------------------------
+
+QSize TLLayout::maximumSize() const
+ {
+ return QSize(440, 100000);
+ }
+
diff --git a/muse2/muse/arranger/alayout.h b/muse2/muse/arranger/alayout.h
new file mode 100644
index 00000000..1a1d5ee2
--- /dev/null
+++ b/muse2/muse/arranger/alayout.h
@@ -0,0 +1,48 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: alayout.h,v 1.3.2.1 2008/01/19 13:33:46 wschweer Exp $
+// (C) Copyright 2002 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __ALAYOUT_H__
+#define __ALAYOUT_H__
+
+#include <qlayout.h>
+#include <q3ptrlist.h>
+
+class QScrollBar;
+class WidgetStack;
+
+//---------------------------------------------------------
+// TLLayout
+// arranger trackList layout manager
+//---------------------------------------------------------
+
+class TLLayout : public QLayout
+ {
+ Q_OBJECT
+
+ Q3PtrList<QLayoutItem> ilist;
+ QLayoutItem* li[6];
+ QScrollBar* sb;
+ WidgetStack* stack;
+
+ public:
+ TLLayout(QWidget *parent) : QLayout(parent, 0, -1) {}
+ ~TLLayout();
+
+ void addItem(QLayoutItem *item);
+
+ void wadd(int idx, QWidget* w);
+ virtual QSize sizeHint() const;
+ virtual QSize minimumSize() const;
+ virtual QSize maximumSize() const;
+ QLayoutIterator iterator();
+ void setGeometry(const QRect &rect);
+
+ virtual QLayoutItem* itemAt(int) const { return 0;} // ddskrjo, is pure virtual, overridden
+ virtual QLayoutItem* takeAt(int) { return 0;} // ddskrjo, is pure virtual, overridden
+ virtual int count() const { return ilist.count(); } // ddskrjo, is pure virtual, overridden
+ };
+#endif
diff --git a/muse2/muse/arranger/arranger.cpp b/muse2/muse/arranger/arranger.cpp
new file mode 100644
index 00000000..d25911cd
--- /dev/null
+++ b/muse2/muse/arranger/arranger.cpp
@@ -0,0 +1,971 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: arranger.cpp,v 1.33.2.21 2009/11/17 22:08:22 terminator356 Exp $
+// (C) Copyright 1999-2004 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include "config.h"
+
+#include <stdio.h>
+
+#include <values.h>
+#include <qlayout.h>
+#include <qcombobox.h>
+#include <qtoolbutton.h>
+#include <q3buttongroup.h>
+#include <qlabel.h>
+#include <q3accel.h>
+#include <qcombobox.h>
+#include <q3whatsthis.h>
+#include <q3toolbar.h>
+#include <qtooltip.h>
+#include <q3popupmenu.h>
+#include <q3hbox.h>
+#include <qstringlist.h>
+#include <q3filedialog.h>
+#include <qcheckbox.h>
+#include <qpushbutton.h>
+#include <q3mainwindow.h>
+#include <q3widgetstack.h>
+#include <qscrollbar.h>
+//Added by qt3to4:
+#include <QKeyEvent>
+#include <Q3ValueList>
+#include <Q3GridLayout>
+#include <QPixmap>
+#include <Q3VBoxLayout>
+#include <QWheelEvent>
+
+#include "arranger.h"
+#include "song.h"
+#include "mtscale.h"
+#include "scrollscale.h"
+#include "pcanvas.h"
+#include "poslabel.h"
+#include "xml.h"
+#include "splitter.h"
+#include "lcombo.h"
+#include "midiport.h"
+#include "mididev.h"
+#include "utils.h"
+#include "globals.h"
+#include "tlist.h"
+#include "icons.h"
+#include "mtrackinfobase.h"
+#include "header.h"
+#include "utils.h"
+#include "alayout.h"
+#include "audio.h"
+#include "event.h"
+#include "midiseq.h"
+#include "midictrl.h"
+#include "mpevent.h"
+#include "gconfig.h"
+#include "mixer/astrip.h"
+#include "spinbox.h"
+//---------------------------------------------------------
+// TWhatsThis::text
+//---------------------------------------------------------
+
+QString TWhatsThis::text(const QPoint& pos)
+ {
+ int section = header->sectionAt(pos.x());
+ if (section == -1)
+ return QString::null;
+ switch(section) {
+ case COL_RECORD: return Q3Header::tr("Enable recording. Click to toggle."); break;
+ case COL_MUTE: return Q3Header::tr("Mute indicator. Click to toggle.\nRight-click to toggle track on/off.\nMute is designed for rapid, repeated action.\nOn/Off is not!"); break;
+ case COL_SOLO: return Q3Header::tr("Solo indicator. Click to toggle.\nConnected tracks are also 'phantom' soloed,\n indicated by a dark square."); break;
+ case COL_CLASS: return Q3Header::tr("Track type. Right-click to change\n midi and drum track types."); break;
+ case COL_NAME: return Q3Header::tr("Track name. Double-click to edit.\nRight-click for more options."); break;
+ case COL_OCHANNEL: return Q3Header::tr("Midi/drum track: Output channel number.\nAudio track: Channels.\nMid/right-click to change."); break;
+ case COL_OPORT: return Q3Header::tr("Midi/drum track: Output port.\nSynth track: Assigned midi port.\nLeft-click to change.\nRight-click to show GUI."); break;
+ case COL_TIMELOCK: return Q3Header::tr("Time lock"); break;
+ default: break;
+ }
+ return QString::null;
+ }
+
+//---------------------------------------------------------
+// Arranger
+// is the central widget in app
+//---------------------------------------------------------
+
+Arranger::Arranger(Q3MainWindow* parent, const char* name)
+ : QWidget(parent, name)
+ {
+ _raster = 0; // measure
+ selected = 0;
+ // Since program covers 3 controls at once, it is in 'midi controller' units rather than 'gui control' units.
+ //program = -1;
+ program = CTRL_VAL_UNKNOWN;
+ pan = -65;
+ volume = -1;
+ setMinimumSize(600, 50);
+ showTrackinfoFlag = true;
+
+ cursVal = MAXINT;
+ //---------------------------------------------------
+ // ToolBar
+ // create toolbar in toplevel widget
+ //---------------------------------------------------
+
+ Q3ToolBar* toolbar = new Q3ToolBar(tr("Arranger"), parent);
+
+ QLabel* label = new QLabel(tr("Cursor"), toolbar, "Cursor");
+ label->setAlignment(Qt::AlignRight|Qt::AlignVCenter);
+ label->setIndent(3);
+ cursorPos = new PosLabel(toolbar);
+ cursorPos->setEnabled(false);
+
+ const char* rastval[] = {
+ QT_TR_NOOP("Off"), QT_TR_NOOP("Bar"), "1/2", "1/4", "1/8", "1/16"
+ };
+ label = new QLabel(tr("Snap"), toolbar, "Snap");
+ label->setAlignment(Qt::AlignRight|Qt::AlignVCenter);
+ label->setIndent(3);
+ QComboBox* raster = new QComboBox(toolbar);
+ for (int i = 0; i < 6; i++)
+ raster->insertItem(tr(rastval[i]), i);
+ raster->setCurrentItem(1);
+ connect(raster, SIGNAL(activated(int)), SLOT(_setRaster(int)));
+ raster->setFocusPolicy(Qt::NoFocus);
+
+ // Song len
+ label = new QLabel(tr("Len"), toolbar, "Len");
+ label->setAlignment(Qt::AlignRight|Qt::AlignVCenter);
+ label->setIndent(3);
+
+ // song length is limited to 10000 bars; the real song len is limited
+ // by overflows in tick computations
+ //
+ lenEntry = new SpinBox(1, 10000, 1, toolbar);
+ lenEntry->setValue(song->len());
+ connect(lenEntry, SIGNAL(valueChanged(int)), SLOT(songlenChanged(int)));
+ QToolTip::add(lenEntry, tr("song length - bars"));
+ Q3WhatsThis::add(lenEntry, tr("song length - bars"));
+
+ typeBox = new LabelCombo(tr("Type"), toolbar);
+ typeBox->insertItem(tr("NO"), 0);
+ typeBox->insertItem(tr("GM"), 1);
+ typeBox->insertItem(tr("GS"), 2);
+ typeBox->insertItem(tr("XG"), 3);
+ typeBox->setCurrentItem(0);
+ connect(typeBox, SIGNAL(activated(int)), SLOT(modeChange(int)));
+ QToolTip::add(typeBox, tr("midi song type"));
+ Q3WhatsThis::add(typeBox, tr("midi song type"));
+ typeBox->setFocusPolicy(Qt::NoFocus);
+
+ label = new QLabel(tr("Pitch"), toolbar, "Pitch");
+ label->setAlignment(Qt::AlignRight|Qt::AlignVCenter);
+ label->setIndent(3);
+ globalPitchSpinBox = new SpinBox(-127, 127, 1, toolbar);
+ globalPitchSpinBox->setValue(song->globalPitchShift());
+ QToolTip::add(globalPitchSpinBox, tr("midi pitch"));
+ Q3WhatsThis::add(globalPitchSpinBox, tr("global midi pitch shift"));
+ connect(globalPitchSpinBox, SIGNAL(valueChanged(int)), SLOT(globalPitchChanged(int)));
+ label = new QLabel(tr("Tempo"), toolbar, "Tempo");
+ label->setAlignment(Qt::AlignRight|Qt::AlignVCenter);
+ label->setIndent(3);
+ globalTempoSpinBox = new SpinBox(50, 200, 1, toolbar);
+ globalTempoSpinBox->setSuffix(QString("%"));
+ globalTempoSpinBox->setValue(tempomap.globalTempo());
+ QToolTip::add(globalTempoSpinBox, tr("midi tempo"));
+ Q3WhatsThis::add(globalTempoSpinBox, tr("midi tempo"));
+ connect(globalTempoSpinBox, SIGNAL(valueChanged(int)), SLOT(globalTempoChanged(int)));
+ QToolButton* tempo50 = new QToolButton(toolbar, "tempo50");
+ tempo50->setText(QString("50%"));
+ connect(tempo50, SIGNAL(clicked()), SLOT(setTempo50()));
+ QToolButton* tempo100 = new QToolButton(toolbar, "tempo100");
+ tempo100->setText(tr("N"));
+ connect(tempo100, SIGNAL(clicked()), SLOT(setTempo100()));
+ QToolButton* tempo200 = new QToolButton(toolbar, "tempo200");
+ tempo200->setText(QString("200%"));
+ connect(tempo200, SIGNAL(clicked()), SLOT(setTempo200()));
+
+ Q3VBoxLayout* box = new Q3VBoxLayout(this);
+ box->addWidget(hLine(this), Qt::AlignTop);
+
+ //---------------------------------------------------
+ // Tracklist
+ //---------------------------------------------------
+
+ int xscale = -100;
+ int yscale = 1;
+
+ split = new Splitter(Qt::Horizontal, this, "split");
+ split->setSizePolicy(QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding));
+ box->addWidget(split, 1000);
+
+ QWidget* tracklist = new QWidget(split);
+ split->setResizeMode(tracklist, QSplitter::KeepSize);
+ tracklist->setSizePolicy(QSizePolicy(QSizePolicy::Fixed, QSizePolicy::Expanding, 0, 100));
+
+ QWidget* editor = new QWidget(split);
+ split->setResizeMode(editor, QSplitter::Stretch);
+ editor->setSizePolicy(QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding,
+ // Changed by T356. Was causing "large int implicitly truncated" warning. These are UCHAR values...
+ //1000, 100));
+ //232, 100)); // 232 is what it was being truncated to, but what is the right value?...
+ 255, 100));
+
+ //---------------------------------------------------
+ // Track Info
+ //---------------------------------------------------
+
+ infoScroll = new QScrollBar(Qt::Vertical, tracklist, "infoScrollBar");
+ genTrackInfo(tracklist);
+
+ // Track-Info Button
+ ib = new QToolButton(tracklist);
+ ib->setText(tr("TrackInfo"));
+ ib->setToggleButton(true);
+ ib->setOn(showTrackinfoFlag);
+
+ connect(ib, SIGNAL(toggled(bool)), SLOT(showTrackInfo(bool)));
+
+ // Changed by T356 Mar 8 2008. Did someone accidentally change to header1 recently?
+ // Muse was saying Tlist: unknown tag <header> at line 32
+ //header = new Header(tracklist, "header1");
+ header = new Header(tracklist, "header");
+
+ header->setFixedHeight(30);
+
+ QFontMetrics fm1(header->font());
+ int fw = 8;
+
+ header->addLabel(tr("R"), fm1.width('R')+fw);
+ header->addLabel(tr("M"), fm1.width('M')+fw);
+ header->addLabel(tr("S"), fm1.width('S')+fw);
+ header->addLabel(tr("C"), fm1.width('C')+fw);
+ header->addLabel(tr("Track"), 100);
+ //header->addLabel(tr("O-Port"), 60);
+ header->addLabel(tr("Port"), 60);
+ header->addLabel(tr("Ch"), 30);
+ header->addLabel(tr("T"), fm1.width('T')+fw);
+ //header->addLabel(tr("Automation"),30);
+ header->setResizeEnabled(false, COL_RECORD);
+ header->setResizeEnabled(false, COL_MUTE);
+ header->setResizeEnabled(false, COL_SOLO);
+ header->setResizeEnabled(false, COL_CLASS);
+ header->setResizeEnabled(false, COL_OCHANNEL);
+ header->setResizeEnabled(false, COL_TIMELOCK);
+ //header->setResizeEnabled(true, COL_AUTOMATION);
+ header->setResizeEnabled(true, COL_NAME);
+ header->setResizeEnabled(true, COL_OPORT);
+
+ header->setTracking(true);
+
+ new THeaderTip(header);
+ new TWhatsThis(header, header);
+
+ list = new TList(header, tracklist, "tracklist");
+
+ connect(list, SIGNAL(selectionChanged()), SLOT(trackSelectionChanged()));
+ connect(header, SIGNAL(sizeChange(int,int,int)), list, SLOT(redraw()));
+ connect(header, SIGNAL(moved(int,int)), list, SLOT(redraw()));
+ connect(header, SIGNAL(moved(int,int)), this, SLOT(headerMoved()));
+
+ // tracklist:
+ //
+ // 0 1 2
+ // +-----------+--------+---------+
+ // | Trackinfo | scroll | Header | 0
+ // | | bar +---------+
+ // | | | TList | 1
+ // +-----------+--------+---------+
+ // | hline | 2
+ // +-----+------------------------+
+ // | ib | | 3
+ // +-----+------------------------+
+
+ connect(infoScroll, SIGNAL(valueChanged(int)), SLOT(trackInfoScroll(int)));
+ tgrid = new TLLayout(tracklist); // layout manager for this
+ tgrid->wadd(0, trackInfo);
+ tgrid->wadd(1, infoScroll);
+ tgrid->wadd(2, header);
+ tgrid->wadd(3, list);
+ tgrid->wadd(4, hLine(tracklist));
+ tgrid->wadd(5, ib);
+
+ //---------------------------------------------------
+ // Editor
+ //---------------------------------------------------
+
+ int offset = sigmap.ticksMeasure(0);
+ hscroll = new ScrollScale(-1000, -10, xscale, song->len(), Qt::Horizontal, editor, -offset);
+ ib->setFixedHeight(hscroll->sizeHint().height());
+
+ // Changed p3.3.43 Too small steps for me...
+ //vscroll = new QScrollBar(1, 20*20, 1, 5, 0, Vertical, editor);
+ vscroll = new QScrollBar(1, 20*20, 5, 25, 0, Qt::Vertical, editor);
+
+ list->setScroll(vscroll);
+
+ Q3ValueList<int> vallist;
+ vallist.append(tgrid->maximumSize().width());
+ split->setSizes(vallist);
+
+ Q3GridLayout* egrid = new Q3GridLayout(editor);
+ egrid->setColStretch(0, 50);
+ egrid->setRowStretch(2, 50);
+
+ time = new MTScale(&_raster, editor, xscale);
+ time->setOrigin(-offset, 0);
+ canvas = new PartCanvas(&_raster, editor, xscale, yscale);
+ canvas->setBg(config.partCanvasBg);
+ canvas->setCanvasTools(arrangerTools);
+ canvas->setOrigin(-offset, 0);
+ canvas->setFocus();
+ connect(canvas, SIGNAL(setUsedTool(int)), this, SIGNAL(setUsedTool(int)));
+ connect(canvas, SIGNAL(trackChanged(Track*)), list, SLOT(selectTrack(Track*)));
+ connect(list, SIGNAL(keyPressExt(QKeyEvent*)), canvas, SLOT(redirKeypress(QKeyEvent*)));
+ connect(canvas, SIGNAL(selectTrackAbove()), list, SLOT(selectTrackAbove()));
+ connect(canvas, SIGNAL(selectTrackBelow()), list, SLOT(selectTrackBelow()));
+
+ connect(this, SIGNAL(redirectWheelEvent(QWheelEvent*)), canvas, SLOT(redirectedWheelEvent(QWheelEvent*)));
+ connect(list, SIGNAL(redirectWheelEvent(QWheelEvent*)), canvas, SLOT(redirectedWheelEvent(QWheelEvent*)));
+
+ egrid->addMultiCellWidget(time, 0, 0, 0, 1);
+ egrid->addMultiCellWidget(hLine(editor), 1, 1, 0, 1);
+ egrid->addWidget(canvas, 2, 0);
+ egrid->addWidget(vscroll, 2, 1);
+ egrid->addWidget(hscroll, 3, 0, Qt::AlignBottom);
+
+ connect(vscroll, SIGNAL(valueChanged(int)), canvas, SLOT(setYPos(int)));
+ connect(hscroll, SIGNAL(scrollChanged(int)), canvas, SLOT(setXPos(int)));
+ connect(hscroll, SIGNAL(scaleChanged(int)), canvas, SLOT(setXMag(int)));
+ connect(vscroll, SIGNAL(valueChanged(int)), list, SLOT(setYPos(int)));
+ connect(hscroll, SIGNAL(scrollChanged(int)), time, SLOT(setXPos(int)));
+ connect(hscroll, SIGNAL(scaleChanged(int)), time, SLOT(setXMag(int)));
+ connect(canvas, SIGNAL(timeChanged(unsigned)), SLOT(setTime(unsigned)));
+ connect(canvas, SIGNAL(verticalScroll(unsigned)),SLOT(verticalScrollSetYpos(unsigned)));
+ connect(canvas, SIGNAL(horizontalScroll(unsigned)),hscroll, SLOT(setPos(unsigned)));
+ connect(canvas, SIGNAL(horizontalScrollNoLimit(unsigned)),hscroll, SLOT(setPosNoLimit(unsigned)));
+ connect(time, SIGNAL(timeChanged(unsigned)), SLOT(setTime(unsigned)));
+
+ connect(canvas, SIGNAL(tracklistChanged()), list, SLOT(tracklistChanged()));
+ connect(canvas, SIGNAL(dclickPart(Track*)), SIGNAL(editPart(Track*)));
+ connect(canvas, SIGNAL(startEditor(PartList*,int)), SIGNAL(startEditor(PartList*, int)));
+
+ connect(song, SIGNAL(songChanged(int)), SLOT(songChanged(int)));
+ connect(canvas, SIGNAL(followEvent(int)), hscroll, SLOT(setOffset(int)));
+ connect(canvas, SIGNAL(selectionChanged()), SIGNAL(selectionChanged()));
+ connect(canvas, SIGNAL(dropSongFile(const QString&)), SIGNAL(dropSongFile(const QString&)));
+ connect(canvas, SIGNAL(dropMidiFile(const QString&)), SIGNAL(dropMidiFile(const QString&)));
+
+ connect(canvas, SIGNAL(toolChanged(int)), SIGNAL(toolChanged(int)));
+// connect(song, SIGNAL(posChanged(int, unsigned, bool)), SLOT(seek()));
+
+ // Removed p3.3.43
+ // Song::addMarker() already emits a 'markerChanged'.
+ //connect(time, SIGNAL(addMarker(int)), SIGNAL(addMarker(int)));
+
+ configChanged(); // set configuration values
+ showTrackInfo(showTrackinfoFlag);
+ }
+
+//---------------------------------------------------------
+// updateHScrollRange
+//---------------------------------------------------------
+
+//void Arranger::updateHScrollRange()
+//{
+// int s = 0, e = song->len();
+ // Show one more measure.
+// e += sigmap.ticksMeasure(e);
+ // Show another quarter measure due to imprecise drawing at canvas end point.
+// e += sigmap.ticksMeasure(e) / 4;
+ // Compensate for the fixed vscroll width.
+// e += canvas->rmapxDev(-vscroll->width());
+// int s1, e1;
+// hscroll->range(&s1, &e1);
+// if(s != s1 || e != e1)
+// hscroll->setRange(s, e);
+//}
+
+//---------------------------------------------------------
+// headerMoved
+//---------------------------------------------------------
+
+void Arranger::headerMoved()
+ {
+ header->setStretchEnabled(true, COL_NAME);
+ }
+
+//---------------------------------------------------------
+// setTime
+//---------------------------------------------------------
+
+void Arranger::setTime(unsigned tick)
+ {
+ if (tick == MAXINT)
+ cursorPos->setEnabled(false);
+ else {
+ cursVal = tick;
+ cursorPos->setEnabled(true);
+ cursorPos->setValue(tick);
+ time->setPos(3, tick, false);
+ }
+ }
+
+//---------------------------------------------------------
+// toolChange
+//---------------------------------------------------------
+
+void Arranger::setTool(int t)
+ {
+ canvas->setTool(t);
+ }
+
+//---------------------------------------------------------
+// dclickPart
+//---------------------------------------------------------
+
+void Arranger::dclickPart(Track* t)
+ {
+ emit editPart(t);
+ }
+
+//---------------------------------------------------------
+// configChanged
+//---------------------------------------------------------
+
+void Arranger::configChanged()
+ {
+ // Added by Tim. p3.3.6
+ //printf("Arranger::configChanged\n");
+
+ if (config.canvasBgPixmap.isEmpty()) {
+ canvas->setBg(config.partCanvasBg);
+ canvas->setBg(QPixmap());
+ //printf("Arranger::configChanged - no bitmap!\n");
+ }
+ else {
+
+ //printf("Arranger::configChanged - bitmap %s!\n", config.canvasBgPixmap.ascii());
+ canvas->setBg(QPixmap(config.canvasBgPixmap));
+ }
+ midiTrackInfo->setFont(config.fonts[2]);
+ //updateTrackInfo(type);
+ }
+
+//---------------------------------------------------------
+// songlenChanged
+//---------------------------------------------------------
+
+void Arranger::songlenChanged(int n)
+ {
+ int newLen = sigmap.bar2tick(n, 0, 0);
+ song->setLen(newLen);
+ }
+//---------------------------------------------------------
+// songChanged
+//---------------------------------------------------------
+
+void Arranger::songChanged(int type)
+ {
+ // Is it simply a midi controller value adjustment? Forget it.
+ if(type != SC_MIDI_CONTROLLER)
+ {
+ unsigned endTick = song->len();
+ int offset = sigmap.ticksMeasure(endTick);
+ hscroll->setRange(-offset, endTick + offset); //DEBUG
+ canvas->setOrigin(-offset, 0);
+ time->setOrigin(-offset, 0);
+
+ int bar, beat;
+ unsigned tick;
+ sigmap.tickValues(endTick, &bar, &beat, &tick);
+ if (tick || beat)
+ ++bar;
+ lenEntry->blockSignals(true);
+ lenEntry->setValue(bar);
+ lenEntry->blockSignals(false);
+
+ trackSelectionChanged();
+ canvas->partsChanged();
+ typeBox->setCurrentItem(int(song->mtype()));
+ if (type & SC_SIG)
+ time->redraw();
+ if (type & SC_TEMPO)
+ setGlobalTempo(tempomap.globalTempo());
+
+ if(type & SC_TRACK_REMOVED)
+ {
+ AudioStrip* w = (AudioStrip*)(trackInfo->getWidget(2));
+ if(w)
+ {
+ Track* t = w->getTrack();
+ if(t)
+ {
+ TrackList* tl = song->tracks();
+ iTrack it = tl->find(t);
+ if(it == tl->end())
+ {
+ delete w;
+ trackInfo->addWidget(0, 2);
+ selected = 0;
+ }
+ }
+ }
+ }
+ }
+
+ updateTrackInfo(type);
+ }
+
+//---------------------------------------------------------
+// trackSelectionChanged
+//---------------------------------------------------------
+
+void Arranger::trackSelectionChanged()
+ {
+ TrackList* tracks = song->tracks();
+ Track* track = 0;
+ for (iTrack t = tracks->begin(); t != tracks->end(); ++t) {
+ if ((*t)->selected()) {
+ track = *t;
+ break;
+ }
+ }
+ if (track == selected)
+ return;
+ selected = track;
+ updateTrackInfo(-1);
+ }
+
+//---------------------------------------------------------
+// modeChange
+//---------------------------------------------------------
+
+void Arranger::modeChange(int mode)
+ {
+ song->setMType(MType(mode));
+ updateTrackInfo(-1);
+ }
+
+//---------------------------------------------------------
+// setMode
+//---------------------------------------------------------
+
+void Arranger::setMode(int mode)
+ {
+ typeBox->setCurrentItem(mode);
+ }
+
+//---------------------------------------------------------
+// writeStatus
+//---------------------------------------------------------
+
+void Arranger::writeStatus(int level, Xml& xml)
+ {
+ xml.tag(level++, "arranger");
+ xml.intTag(level, "info", ib->isOn());
+ split->writeStatus(level, xml);
+ list->writeStatus(level, xml, "list");
+
+ xml.intTag(level, "xpos", hscroll->pos());
+ xml.intTag(level, "xmag", hscroll->mag());
+ xml.intTag(level, "ypos", vscroll->value());
+ xml.etag(level, "arranger");
+ }
+
+//---------------------------------------------------------
+// readStatus
+//---------------------------------------------------------
+
+void Arranger::readStatus(Xml& xml)
+ {
+ 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 == "info")
+ showTrackinfoFlag = xml.parseInt();
+ else if (tag == split->name())
+ split->readStatus(xml);
+ else if (tag == "list")
+ list->readStatus(xml, "list");
+ else if (tag == "xmag")
+ hscroll->setMag(xml.parseInt());
+ else if (tag == "xpos") {
+ int hpos = xml.parseInt();
+ hscroll->setPos(hpos);
+ }
+ else if (tag == "ypos")
+ vscroll->setValue(xml.parseInt());
+ else
+ xml.unknown("Arranger");
+ break;
+ case Xml::TagEnd:
+ if (tag == "arranger") {
+ ib->setOn(showTrackinfoFlag);
+ return;
+ }
+ default:
+ break;
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// setRaster
+//---------------------------------------------------------
+
+void Arranger::_setRaster(int index)
+ {
+ static int rasterTable[] = {
+ 1, 0, 768, 384, 192, 96
+ };
+ _raster = rasterTable[index];
+ // Set the audio record part snapping.
+ song->setRecRaster(_raster);
+ canvas->redraw();
+ }
+
+//---------------------------------------------------------
+// reset
+//---------------------------------------------------------
+
+void Arranger::reset()
+ {
+ canvas->setXPos(0);
+ canvas->setYPos(0);
+ hscroll->setPos(0);
+ vscroll->setValue(0);
+ time->setXPos(0);
+ time->setYPos(0);
+ }
+
+//---------------------------------------------------------
+// cmd
+//---------------------------------------------------------
+
+void Arranger::cmd(int cmd)
+ {
+ int ncmd;
+ switch (cmd) {
+ case CMD_CUT_PART:
+ ncmd = PartCanvas::CMD_CUT_PART;
+ break;
+ case CMD_COPY_PART:
+ ncmd = PartCanvas::CMD_COPY_PART;
+ break;
+ case CMD_PASTE_PART:
+ ncmd = PartCanvas::CMD_PASTE_PART;
+ break;
+ case CMD_PASTE_CLONE_PART:
+ ncmd = PartCanvas::CMD_PASTE_CLONE_PART;
+ break;
+ case CMD_PASTE_PART_TO_TRACK:
+ ncmd = PartCanvas::CMD_PASTE_PART_TO_TRACK;
+ break;
+ case CMD_PASTE_CLONE_PART_TO_TRACK:
+ ncmd = PartCanvas::CMD_PASTE_CLONE_PART_TO_TRACK;
+ break;
+ case CMD_INSERT_PART:
+ ncmd = PartCanvas::CMD_INSERT_PART;
+ break;
+ case CMD_INSERT_EMPTYMEAS:
+ ncmd = PartCanvas::CMD_INSERT_EMPTYMEAS;
+ break;
+ default:
+ return;
+ }
+ canvas->cmd(ncmd);
+ }
+
+//---------------------------------------------------------
+// globalPitchChanged
+//---------------------------------------------------------
+
+void Arranger::globalPitchChanged(int val)
+ {
+ song->setGlobalPitchShift(val);
+ }
+
+//---------------------------------------------------------
+// globalTempoChanged
+//---------------------------------------------------------
+
+void Arranger::globalTempoChanged(int val)
+ {
+ audio->msgSetGlobalTempo(val);
+ song->tempoChanged();
+ }
+
+//---------------------------------------------------------
+// setTempo50
+//---------------------------------------------------------
+
+void Arranger::setTempo50()
+ {
+ setGlobalTempo(50);
+ }
+
+//---------------------------------------------------------
+// setTempo100
+//---------------------------------------------------------
+
+void Arranger::setTempo100()
+ {
+ setGlobalTempo(100);
+ }
+
+//---------------------------------------------------------
+// setTempo200
+//---------------------------------------------------------
+
+void Arranger::setTempo200()
+ {
+ setGlobalTempo(200);
+ }
+
+//---------------------------------------------------------
+// setGlobalTempo
+//---------------------------------------------------------
+
+void Arranger::setGlobalTempo(int val)
+ {
+ if(val != globalTempoSpinBox->value())
+ globalTempoSpinBox->setValue(val);
+ }
+
+//---------------------------------------------------------
+// verticalScrollSetYpos
+//---------------------------------------------------------
+void Arranger::verticalScrollSetYpos(unsigned ypos)
+ {
+ vscroll->setValue(ypos);
+ }
+
+//---------------------------------------------------------
+// progRecClicked
+//---------------------------------------------------------
+
+void Arranger::progRecClicked()
+ {
+ MidiTrack* track = (MidiTrack*)selected;
+ int portno = track->outPort();
+ int channel = track->outChannel();
+ MidiPort* port = &midiPorts[portno];
+ int program = port->hwCtrlState(channel, CTRL_PROGRAM);
+ if(program == CTRL_VAL_UNKNOWN || program == 0xffffff)
+ return;
+
+ unsigned tick = song->cpos();
+ Event a(Controller);
+ a.setTick(tick);
+ a.setA(CTRL_PROGRAM);
+ a.setB(program);
+
+ song->recordEvent(track, a);
+ }
+
+//---------------------------------------------------------
+// volRecClicked
+//---------------------------------------------------------
+
+void Arranger::volRecClicked()
+ {
+ MidiTrack* track = (MidiTrack*)selected;
+ int portno = track->outPort();
+ int channel = track->outChannel();
+ MidiPort* port = &midiPorts[portno];
+ int volume = port->hwCtrlState(channel, CTRL_VOLUME);
+ if(volume == CTRL_VAL_UNKNOWN)
+ return;
+
+ unsigned tick = song->cpos();
+ Event a(Controller);
+ a.setTick(tick);
+ a.setA(CTRL_VOLUME);
+ a.setB(volume);
+
+ song->recordEvent(track, a);
+ }
+
+//---------------------------------------------------------
+// panRecClicked
+//---------------------------------------------------------
+
+void Arranger::panRecClicked()
+ {
+ MidiTrack* track = (MidiTrack*)selected;
+ int portno = track->outPort();
+ int channel = track->outChannel();
+ MidiPort* port = &midiPorts[portno];
+ int pan = port->hwCtrlState(channel, CTRL_PANPOT);
+ if(pan == CTRL_VAL_UNKNOWN)
+ return;
+
+ unsigned tick = song->cpos();
+ Event a(Controller);
+ a.setTick(tick);
+ a.setA(CTRL_PANPOT);
+ a.setB(pan);
+
+ song->recordEvent(track, a);
+ }
+
+//---------------------------------------------------------
+// recordClicked
+//---------------------------------------------------------
+
+void Arranger::recordClicked()
+ {
+ MidiTrack* track = (MidiTrack*)selected;
+ int portno = track->outPort();
+ int channel = track->outChannel();
+ MidiPort* port = &midiPorts[portno];
+ unsigned tick = song->cpos();
+
+ int program = port->hwCtrlState(channel, CTRL_PROGRAM);
+ if(program != CTRL_VAL_UNKNOWN && program != 0xffffff)
+ {
+ Event a(Controller);
+ a.setTick(tick);
+ a.setA(CTRL_PROGRAM);
+ a.setB(program);
+ song->recordEvent(track, a);
+ }
+ int volume = port->hwCtrlState(channel, CTRL_VOLUME);
+ if(volume != CTRL_VAL_UNKNOWN)
+ {
+ Event a(Controller);
+ a.setTick(tick);
+ a.setA(CTRL_VOLUME);
+ a.setB(volume);
+ song->recordEvent(track, a);
+ }
+ int pan = port->hwCtrlState(channel, CTRL_PANPOT);
+ if(pan != CTRL_VAL_UNKNOWN)
+ {
+ Event a(Controller);
+ a.setTick(tick);
+ a.setA(CTRL_PANPOT);
+ a.setB(pan);
+ song->recordEvent(track, a);
+ }
+ }
+
+//---------------------------------------------------------
+// trackInfoScroll
+//---------------------------------------------------------
+
+void Arranger::trackInfoScroll(int y)
+ {
+ if (trackInfo->visibleWidget())
+ trackInfo->visibleWidget()->move(0, -y);
+ }
+
+//---------------------------------------------------------
+// WidgetStack
+//---------------------------------------------------------
+
+WidgetStack::WidgetStack(QWidget* parent, const char* name)
+ : QWidget(parent, name)
+ {
+ top = -1;
+ }
+
+//---------------------------------------------------------
+// raiseWidget
+//---------------------------------------------------------
+
+void WidgetStack::raiseWidget(int idx)
+ {
+ if (top != -1) {
+ if (stack[top])
+ stack[top]->hide();
+ }
+ top = idx;
+ if (idx == -1)
+ return;
+ int n = stack.size();
+ if (idx >= n)
+ return;
+ if (stack[idx])
+ stack[idx]->show();
+ }
+
+//---------------------------------------------------------
+// addWidget
+//---------------------------------------------------------
+
+void WidgetStack::addWidget(QWidget* w, unsigned int n)
+ {
+ if (w)
+ w->hide();
+ if (stack.size() <= n )
+ stack.push_back(w);
+ else
+ stack[n] = w;
+ }
+
+QWidget* WidgetStack::getWidget(unsigned int n)
+ {
+ if (stack.size() <= n )
+ return 0;
+ return stack[n];
+ }
+
+//---------------------------------------------------------
+// visibleWidget
+//---------------------------------------------------------
+
+QWidget* WidgetStack::visibleWidget() const
+ {
+ if (top != -1)
+ return stack[top];
+ return 0;
+ }
+
+//---------------------------------------------------------
+// minimumSizeHint
+//---------------------------------------------------------
+
+QSize WidgetStack::minimumSizeHint() const
+ {
+ if (top == -1)
+ return (QSize(0, 0));
+ QSize s(0,0);
+ for (unsigned int i = 0; i < stack.size(); ++i) {
+ if (stack[i]) {
+ QSize ss = stack[i]->minimumSizeHint();
+ if (!ss.isValid())
+ ss = stack[i]->minimumSize();
+ s = s.expandedTo(ss);
+ }
+ }
+ return s;
+ }
+
+//---------------------------------------------------------
+// clear
+//---------------------------------------------------------
+
+void Arranger::clear()
+ {
+ AudioStrip* w = (AudioStrip*)(trackInfo->getWidget(2));
+ if (w)
+ delete w;
+ trackInfo->addWidget(0, 2);
+ selected = 0;
+ }
+
+void Arranger::wheelEvent(QWheelEvent* ev)
+ {
+ emit redirectWheelEvent(ev);
+ }
+
+void Arranger::controllerChanged(Track *t)
+{
+ canvas->controllerChanged(t);
+}
diff --git a/muse2/muse/arranger/arranger.h b/muse2/muse/arranger/arranger.h
new file mode 100644
index 00000000..b96a5602
--- /dev/null
+++ b/muse2/muse/arranger/arranger.h
@@ -0,0 +1,227 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: arranger.h,v 1.17.2.15 2009/11/14 03:37:48 terminator356 Exp $
+// (C) Copyright 1999 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __ARRANGER_H__
+#define __ARRANGER_H__
+
+#include <vector>
+
+#include <qwidget.h>
+#include <q3header.h>
+#include <q3whatsthis.h>
+//Added by qt3to4:
+#include <QWheelEvent>
+#include <Q3PopupMenu>
+
+#include "midieditor.h"
+#include "pcanvas.h"
+#include "mtrackinfobase.h"
+#include "trackautomationview.h"
+
+class Q3MainWindow;
+class QToolButton;
+class Header;
+class TList;
+class ScrollScale;
+class QScrollBar;
+class MTScale;
+class Track;
+class Xml;
+class Splitter;
+class LabelCombo;
+class PosLabel;
+class QCheckBox;
+class MidiTrackInfoBase;
+class WaveTrackInfoBase;
+class TLLayout;
+class WidgetStack;
+class AudioStrip;
+class SpinBox;
+//---------------------------------------------------------
+// TWhatsThis
+//---------------------------------------------------------
+
+class TWhatsThis : public Q3WhatsThis {
+ Header* header;
+ protected:
+ QString text(const QPoint&);
+ public:
+ TWhatsThis(QWidget* parent, Header* h) : Q3WhatsThis(parent) {
+ header = h;
+ }
+ };
+
+//---------------------------------------------------------
+// WidgetStack
+//---------------------------------------------------------
+
+class WidgetStack : public QWidget {
+ Q_OBJECT
+ std::vector<QWidget*> stack;
+ int top;
+
+ public:
+ WidgetStack(QWidget* parent, const char* name = 0);
+ void raiseWidget(int idx);
+ void addWidget(QWidget* w, unsigned int idx);
+ QWidget* getWidget(unsigned int idx);
+ QWidget* visibleWidget() const;
+ int curIdx() const { return top; }
+ QSize minimumSizeHint() const;
+ };
+
+//---------------------------------------------------------
+// MidiTrackInfo
+//---------------------------------------------------------
+
+class MidiTrackInfo : public MidiTrackInfoBase {
+ public:
+ bool _midiDetect;
+ MidiTrackInfo(QWidget* parent) : MidiTrackInfoBase(parent) { _midiDetect = false; }
+ };
+
+//---------------------------------------------------------
+// Arranger
+//---------------------------------------------------------
+
+class Arranger : public QWidget {
+ Q_OBJECT
+
+ int _quant, _raster;
+ PartCanvas* canvas;
+ ScrollScale* hscroll;
+ QScrollBar* vscroll;
+ TList* list;
+ Header* header;
+ MTScale* time;
+ SpinBox* lenEntry;
+ bool showTrackinfoFlag;
+ WidgetStack* trackInfo;
+ QScrollBar* infoScroll;
+ //MidiTrackInfoBase* midiTrackInfo;
+ MidiTrackInfo* midiTrackInfo;
+ AudioStrip* waveTrackInfo;
+ QWidget* noTrackInfo;
+ TLLayout* tgrid;
+
+ Track* selected;
+
+ LabelCombo* typeBox;
+ QToolButton* ib;
+ int trackInfoType;
+ Splitter* split;
+ Q3PopupMenu* pop;
+ int songType;
+ PosLabel* cursorPos;
+ SpinBox* globalTempoSpinBox;
+ SpinBox* globalPitchSpinBox;
+ int program, pan, volume;
+
+ unsigned cursVal;
+ void genTrackInfo(QWidget* parent);
+ void genMidiTrackInfo();
+ void genWaveTrackInfo();
+ void updateMidiTrackInfo(int flags);
+ void switchInfo(int);
+
+ private slots:
+ void _setRaster(int);
+ void songlenChanged(int);
+ void showTrackInfo(bool);
+ void trackSelectionChanged();
+ void trackInfoScroll(int);
+
+ //void iNameChanged();
+ ///void iInputChannelChanged(const QString&);
+ void iOutputChannelChanged(int);
+ ///void iInputPortChanged(const QString&);
+ void iOutputPortChanged(int);
+ void iProgHBankChanged();
+ void iProgLBankChanged();
+ void iProgramChanged();
+ void iProgramDoubleClicked();
+ void iLautstChanged(int);
+ void iLautstDoubleClicked();
+ void iTranspChanged(int);
+ void iAnschlChanged(int);
+ void iVerzChanged(int);
+ void iLenChanged(int);
+ void iKomprChanged(int);
+ void iPanChanged(int);
+ void iPanDoubleClicked();
+ void songChanged(int);
+ void modeChange(int);
+ void instrPopup();
+ void setTime(unsigned);
+ void headerMoved();
+ void globalPitchChanged(int);
+ void globalTempoChanged(int);
+ void setTempo50();
+ void setTempo100();
+ void setTempo200();
+ //void seek();
+ void recordClicked();
+ void progRecClicked();
+ void volRecClicked();
+ void panRecClicked();
+ void recEchoToggled(bool);
+ void verticalScrollSetYpos(unsigned);
+ void inRoutesPressed();
+ void outRoutesPressed();
+ void routingPopupMenuActivated(int /*id*/);
+
+ signals:
+ void redirectWheelEvent(QWheelEvent*);
+ void editPart(Track*);
+ void selectionChanged();
+ void dropSongFile(const QString&);
+ void dropMidiFile(const QString&);
+ void startEditor(PartList*, int);
+ void toolChanged(int);
+ //void addMarker(int);
+ void setUsedTool(int);
+
+
+ protected:
+
+ virtual void wheelEvent(QWheelEvent* e);
+
+ protected slots:
+ virtual void midiTrackInfoHeartBeat();
+
+ public slots:
+ void dclickPart(Track*);
+ void setTool(int);
+ void updateTrackInfo(int flags);
+ void configChanged();
+ void controllerChanged(Track *t);
+
+ public:
+ enum { CMD_CUT_PART, CMD_COPY_PART, CMD_PASTE_PART, CMD_PASTE_CLONE_PART, CMD_PASTE_PART_TO_TRACK, CMD_PASTE_CLONE_PART_TO_TRACK,
+ CMD_INSERT_PART, CMD_INSERT_EMPTYMEAS };
+
+ Arranger(Q3MainWindow* parent, const char* name = 0);
+ void setMode(int);
+ void reset();
+
+ void setTrackInfoLabelText();
+ void setTrackInfoLabelFont();
+
+ void writeStatus(int level, Xml&);
+ void readStatus(Xml&);
+
+ Track* curTrack() const { return selected; }
+ void cmd(int);
+ bool isSingleSelection() { return canvas->isSingleSelection(); }
+ void setGlobalTempo(int);
+ void clear();
+
+ unsigned cursorValue() { return cursVal; }
+ };
+
+#endif
+
diff --git a/muse2/muse/arranger/pcanvas.cpp b/muse2/muse/arranger/pcanvas.cpp
new file mode 100644
index 00000000..0569f03d
--- /dev/null
+++ b/muse2/muse/arranger/pcanvas.cpp
@@ -0,0 +1,2825 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: pcanvas.cpp,v 1.48.2.26 2009/11/22 11:08:33 spamatica Exp $
+// (C) Copyright 1999 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include <stdio.h>
+#include <sys/stat.h>
+#include <sys/mman.h>
+#include <errno.h>
+#include <values.h>
+#include <uuid/uuid.h>
+#include <math.h>
+
+#include <qapplication.h>
+#include <qclipboard.h>
+#include <qpainter.h>
+#include <qpoint.h>
+#include <qlineedit.h>
+#include <qmessagebox.h>
+#include <q3dragobject.h>
+#include <q3popupmenu.h>
+#include <q3url.h>
+#include <qmenudata.h>
+//Added by qt3to4:
+#include <QDragLeaveEvent>
+#include <QMouseEvent>
+#include <QDragEnterEvent>
+#include <QKeyEvent>
+#include <QEvent>
+#include <QDropEvent>
+#include <QDragMoveEvent>
+#include <Q3CString>
+
+#include "widgets/tools.h"
+#include "pcanvas.h"
+#include "midieditor.h"
+#include "globals.h"
+#include "icons.h"
+#include "event.h"
+#include "xml.h"
+#include "wave.h"
+#include "audio.h"
+#include "shortcuts.h"
+#include "gconfig.h"
+#include "app.h"
+#include "filedialog.h"
+#include "marker/marker.h"
+
+const char* partColorNames[] = {
+ "Default",
+ "Refrain",
+ "Bridge",
+ "Intro",
+ "Coda",
+ "Chorus",
+ "Solo",
+ "Brass",
+ "Percussion",
+ "Drums",
+ "Guitar",
+ "Bass",
+ "Flute",
+ "Strings",
+ "Keyboard",
+ "Piano",
+ "Saxophon",
+ };
+
+//---------------------------------------------------------
+// ColorListItem
+//---------------------------------------------------------
+
+class ColorListItem { //: public QCustomMenuItem { ddskrjo
+ QColor color;
+ int h;
+ int fontheight;
+ QString label;
+ virtual QSize sizeHint() { return QSize(80, h); }
+ virtual void paint(QPainter* p, const QColorGroup&, bool /*act*/, bool /*enabled*/, int x, int y, int /*w*/, int h)
+ {
+ p->fillRect(x+5, y+2, h-4, h-4, QBrush(color));
+ p->drawText(x+5 + h - 4 + 3, y+(fontheight * 3) / 4, label);
+ }
+
+ public:
+ ColorListItem(const QColor& c, int _h, int _fh, const char* txt)
+ : color(c), h(_h), fontheight(_fh), label(txt) {
+ }
+ QString text() const { return QString("PartColor"); }
+ };
+
+//---------------------------------------------------------
+// NPart
+//---------------------------------------------------------
+
+NPart::NPart(Part* e) : CItem(Event(), e)
+ {
+ int th = track()->height();
+ int y = track()->y();
+ setPos(QPoint(e->tick(), y + 1));
+ setBBox(QRect(e->tick(), y + 1, e->lenTick(), th));
+ }
+
+//---------------------------------------------------------
+// PartCanvas
+//---------------------------------------------------------
+
+PartCanvas::PartCanvas(int* r, QWidget* parent, int sx, int sy)
+ : Canvas(parent, sx, sy)
+ {
+ setAcceptDrops(true);
+ _raster = r;
+
+ setFocusPolicy(Qt::StrongFocus);
+ // Defaults:
+ lineEditor = 0;
+ editMode = false;
+
+ tracks = song->tracks();
+ setMouseTracking(true);
+ drag = DRAG_OFF;
+ curColorIndex = 0;
+ partsChanged();
+ }
+
+//---------------------------------------------------------
+// y2pitch
+//---------------------------------------------------------
+
+int PartCanvas::y2pitch(int y) const
+ {
+ TrackList* tl = song->tracks();
+ int yy = 0;
+ int idx = 0;
+ for (iTrack it = tl->begin(); it != tl->end(); ++it, ++idx) {
+ int h = (*it)->height();
+ // if ((y >= yy) && (y < yy+h))
+ if (y < yy+h)
+ break;
+ yy += h;
+ }
+ return idx;
+ }
+
+//---------------------------------------------------------
+// pitch2y
+//---------------------------------------------------------
+
+int PartCanvas::pitch2y(int p) const
+ {
+ TrackList* tl = song->tracks();
+ int yy = 0;
+ int idx = 0;
+ for (iTrack it = tl->begin(); it != tl->end(); ++it, ++idx) {
+ if (idx == p)
+ break;
+ yy += (*it)->height();
+ }
+ return yy;
+ }
+
+//---------------------------------------------------------
+// leaveEvent
+//---------------------------------------------------------
+
+void PartCanvas::leaveEvent(QEvent*)
+ {
+ emit timeChanged(MAXINT);
+ }
+
+//---------------------------------------------------------
+// returnPressed
+//---------------------------------------------------------
+
+void PartCanvas::returnPressed()
+ {
+ lineEditor->hide();
+ Part* oldPart = editPart->part();
+ Part* newPart = oldPart->clone();
+ // Added by Tim. p3.3.6
+ //printf("PartCanvas::returnPressed before msgChangePart oldPart refs:%d Arefs:%d newPart refs:%d Arefs:%d\n", oldPart->events()->refCount(), oldPart->events()->arefCount(), newPart->events()->refCount(), newPart->events()->arefCount());
+
+ newPart->setName(lineEditor->text());
+ // Indicate do undo, and do port controller values but not clone parts.
+ //audio->msgChangePart(oldPart, newPart);
+ audio->msgChangePart(oldPart, newPart, true, true, false);
+ // Added by Tim. p3.3.6
+ //printf("PartCanvas::returnPressed after msgChangePart oldPart refs:%d Arefs:%d newPart refs:%d Arefs:%d\n", oldPart->events()->refCount(), oldPart->events()->arefCount(), newPart->events()->refCount(), newPart->events()->arefCount());
+
+ editMode = false;
+ }
+
+//---------------------------------------------------------
+// viewMouseDoubleClick
+//---------------------------------------------------------
+
+void PartCanvas::viewMouseDoubleClickEvent(QMouseEvent* event)
+ {
+ if (_tool != PointerTool) {
+ viewMousePressEvent(event);
+ return;
+ }
+ QPoint cpos = event->pos();
+ curItem = items.find(cpos);
+ bool shift = event->state() & Qt::ShiftButton;
+ if (curItem) {
+ if (event->button() == Qt::LeftButton && shift) {
+ editPart = (NPart*)curItem;
+ QRect r = map(curItem->bbox());
+ if (lineEditor == 0) {
+ lineEditor = new QLineEdit(this);
+ lineEditor->setFrame(true);
+ }
+ editMode = true;
+ lineEditor->setGeometry(r);
+ lineEditor->setText(editPart->name());
+ lineEditor->setFocus();
+ lineEditor->show();
+ }
+ else if (event->button() == Qt::LeftButton) {
+ deselectAll();
+ selectItem(curItem, true);
+ emit dclickPart(((NPart*)(curItem))->track());
+ }
+ }
+ //
+ // double click creates new part between left and
+ // right mark
+
+ else {
+ TrackList* tl = song->tracks();
+ iTrack it;
+ int yy = 0;
+ int y = event->y();
+ for (it = tl->begin(); it != tl->end(); ++it) {
+ int h = (*it)->height();
+ if (y >= yy && y < (yy + h))
+ break;
+ yy += h;
+ }
+ if (pos[2] - pos[1] > 0 && it != tl->end()) {
+ Track* track = *it;
+ switch(track->type()) {
+ case Track::MIDI:
+ case Track::DRUM:
+ {
+ MidiPart* part = new MidiPart((MidiTrack*)track);
+ part->setTick(pos[1]);
+ part->setLenTick(pos[2]-pos[1]);
+ part->setName(track->name());
+ NPart* np = new NPart(part);
+ items.add(np);
+ deselectAll();
+ part->setSelected(true);
+ audio->msgAddPart(part);
+ }
+ break;
+ case Track::WAVE:
+ case Track::AUDIO_OUTPUT:
+ case Track::AUDIO_INPUT:
+ case Track::AUDIO_GROUP:
+ case Track::AUDIO_AUX:
+ case Track::AUDIO_SOFTSYNTH:
+ break;
+ }
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// startUndo
+//---------------------------------------------------------
+
+void PartCanvas::startUndo(DragType)
+ {
+ song->startUndo();
+ }
+
+//---------------------------------------------------------
+// endUndo
+//---------------------------------------------------------
+
+void PartCanvas::endUndo(DragType t, int flags)
+ {
+ song->endUndo(flags | ((t == MOVE_COPY || t == MOVE_CLONE)
+ ? SC_PART_INSERTED : SC_PART_MODIFIED));
+ }
+
+//---------------------------------------------------------
+// moveCanvasItems
+//---------------------------------------------------------
+
+void PartCanvas::moveCanvasItems(CItemList& items, int dp, int dx, DragType dtype, int*)
+{
+ /*
+ if(editor->parts()->empty())
+ return;
+
+ //struct p2c
+ //{
+ // Part* newp;
+ // int xdiff;
+ //}
+
+ //std::set<Part*> parts2change;
+ //typedef std::set<Part*>::iterator iptc;
+ std::map<Part*, Part*> parts2change;
+ typedef std::map<Part*, Part*>::iterator iP2C;
+
+ int modified = 0;
+ for(iPart ip = editor->parts()->begin(); ip != editor->parts()->end(); ++ip)
+ {
+ Part* part = ip->second;
+ if(!part)
+ continue;
+
+ int npartoffset = 0;
+ for(iCItem ici = items.begin(); ici != items.end(); ++ici)
+ {
+ CItem* ci = ici->second;
+ //Part* pt = ci->part();
+ //if(!pt)
+ if(ci->part() != part)
+ continue;
+
+ int x = ci->pos().x() + dx;
+ int y = pitch2y(y2pitch(ci->pos().y()) + dp);
+ QPoint newpos = raster(QPoint(x, y));
+
+ // Test moving the item...
+
+ //int offset = testMoveItem(ci, newpos, dragtype);
+ NEvent* nevent = (NEvent*) ci;
+ Event event = nevent->event();
+ //int npitch = y2pitch(newpos.y());
+ x = newpos.x();
+ if (x < 0)
+ x = 0;
+
+ int ntick = editor->rasterVal(x) - part->tick();
+ if (ntick < 0)
+ ntick = 0;
+ int diff = ntick + event.lenTick() - part->lenTick();
+
+ // If moving the item would require a new part size...
+ if(diff > npartoffset)
+ npartoffset = diff;
+ }
+
+ if(npartoffset > 0)
+ {
+ // Create new part...
+ // if there are several events that are moved outside the part, it will be recreated for each
+ // so the part _in_ the event will not be valid, ask the authority.
+ Part* newPart = part->clone();
+ //Part* newPart = Canvas::part()->clone();
+
+ newPart->setLenTick(newPart->lenTick() + npartoffset);
+ audio->msgChangePart(part, newPart,false);
+
+ modified = SC_PART_MODIFIED;
+
+ // BUG FIX: #1650953
+ // Added by T356.
+ // Fixes posted "select and drag past end of part - crashing" bug
+ for(iPart ip = editor->parts()->begin(); ip != editor->parts()->end(); ++ip)
+ {
+ if(ip->second == part)
+ {
+ editor->parts()->erase(ip);
+ break;
+ }
+ }
+
+ editor->parts()->add(newPart);
+ if(parts2change.find(part) == parts2change.end())
+ parts2change.insert(std::pair<Part*, Part*> (part, newPart));
+
+// part = newPart; // reassign
+// item->setPart(part);
+// item->setEvent(newEvent);
+// curPart = part;
+// curPartId = curPart->sn();
+
+ }
+ }
+*/
+
+// int modified = 0;
+ for(iCItem ici = items.begin(); ici != items.end(); ++ici)
+ {
+ CItem* ci = ici->second;
+
+ // If this item's part is in the parts2change list, change the item's part to the new part.
+ //Part* pt = ci->part();
+ //iP2C ip2c = parts2change.find(pt);
+ //if(ip2c != parts2change.end())
+ // ci->setPart(ip2c->second);
+
+ int x = ci->pos().x();
+ int y = ci->pos().y();
+ int nx = x + dx;
+ int ny = pitch2y(y2pitch(y) + dp);
+ QPoint newpos = raster(QPoint(nx, ny));
+ selectItem(ci, true);
+
+ if(moveItem(ci, newpos, dtype))
+ ci->move(newpos);
+ if(moving.size() == 1) {
+ itemReleased(curItem, newpos);
+ }
+ if(dtype == MOVE_COPY || dtype == MOVE_CLONE)
+ selectItem(ci, false);
+ }
+
+
+ //if(pflags)
+ // *pflags = modified;
+}
+
+//---------------------------------------------------------
+// moveItem
+// return false, if copy/move not allowed
+//---------------------------------------------------------
+
+// Changed by T356.
+//bool PartCanvas::moveItem(CItem* item, const QPoint& newpos, DragType t, int*)
+bool PartCanvas::moveItem(CItem* item, const QPoint& newpos, DragType t)
+ {
+ NPart* npart = (NPart*) item;
+ Part* spart = npart->part();
+ Track* track = npart->track();
+ unsigned dtick = newpos.x();
+ unsigned ntrack = y2pitch(item->mp().y());
+ Track::TrackType type = track->type();
+ if (tracks->index(track) == ntrack && (dtick == spart->tick())) {
+ return false;
+ }
+ if (ntrack >= tracks->size()) {
+ ntrack = tracks->size();
+ Track* newTrack = song->addTrack(int(type));
+ if (type == Track::WAVE) {
+ WaveTrack* st = (WaveTrack*) track;
+ WaveTrack* dt = (WaveTrack*) newTrack;
+ dt->setChannels(st->channels());
+ }
+ emit tracklistChanged();
+ }
+ Track* dtrack = tracks->index(ntrack);
+
+ if (dtrack->type() != type) {
+ QMessageBox::critical(this, QString("MusE"),
+ tr("Cannot copy/move/clone to different Track-Type"));
+ return false;
+ }
+
+ Part* dpart;
+ //bool clone = (t == MOVE_CLONE) || (spart->events()->arefCount() > 1);
+ //bool clone = (t == MOVE_CLONE);
+ bool clone = (t == MOVE_CLONE || (t == MOVE_COPY && spart->events()->arefCount() > 1));
+
+ if(t == MOVE_MOVE)
+ {
+ // This doesn't increment aref count, and doesn't chain clones.
+ // It also gives the new part a new serial number, but it is
+ // overwritten with the old one by Song::changePart(), from Audio::msgChangePart() below.
+ dpart = spart->clone();
+ dpart->setTrack(dtrack);
+ }
+ else
+ // This increments aref count if cloned, and chains clones.
+ // It also gives the new part a new serial number.
+ dpart = dtrack->newPart(spart, clone);
+
+ dpart->setTick(dtick);
+
+ // Added by Tim. p3.3.6
+ //printf("PartCanvas::moveItem before add/changePart clone:%d spart:%p events:%p refs:%d Arefs:%d sn:%d dpart:%p events:%p refs:%d Arefs:%d sn:%d\n", clone, spart, spart->events(), spart->events()->refCount(), spart->events()->arefCount(), spart->sn(), dpart, dpart->events(), dpart->events()->refCount(), dpart->events()->arefCount(), dpart->sn());
+
+ if(t == MOVE_MOVE)
+ item->setPart(dpart);
+ //if (!clone) {
+ if (t == MOVE_COPY && !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);
+ }
+ }
+ if (t == MOVE_COPY || t == MOVE_CLONE) {
+ // These will not increment ref count, and will not chain clones...
+ if (dtrack->type() == Track::WAVE)
+ audio->msgAddPart((WavePart*)dpart,false);
+ else
+ audio->msgAddPart(dpart,false);
+ }
+ else if (t == MOVE_MOVE) {
+ dpart->setSelected(spart->selected());
+ // These will increment ref count if not a clone, and will chain clones...
+ if (dtrack->type() == Track::WAVE)
+ // Indicate no undo, and do not do port controller values and clone parts.
+ //audio->msgChangePart((WavePart*)spart, (WavePart*)dpart,false);
+ audio->msgChangePart((WavePart*)spart, (WavePart*)dpart, false, false, false);
+ else
+ // Indicate no undo, and do port controller values but not clone parts.
+ //audio->msgChangePart(spart, dpart, false);
+ audio->msgChangePart(spart, dpart, false, true, false);
+
+ spart->setSelected(false);
+ }
+ // Added by Tim. p3.3.6
+ //printf("PartCanvas::moveItem after add/changePart spart:%p events:%p refs:%d Arefs:%d dpart:%p events:%p refs:%d Arefs:%d\n", spart, spart->events(), spart->events()->refCount(), spart->events()->arefCount(), dpart, dpart->events(), dpart->events()->refCount(), dpart->events()->arefCount());
+
+ if (song->len() < (dpart->lenTick() + dpart->tick()))
+ song->setLen(dpart->lenTick() + dpart->tick());
+ //endUndo(t);
+ return true;
+ }
+
+//---------------------------------------------------------
+// raster
+//---------------------------------------------------------
+
+QPoint PartCanvas::raster(const QPoint& p) const
+ {
+ int y = pitch2y(y2pitch(p.y()));
+ int x = p.x();
+ if (x < 0)
+ x = 0;
+ x = sigmap.raster(x, *_raster);
+ if (x < 0)
+ x = 0;
+ return QPoint(x, y);
+ }
+
+//---------------------------------------------------------
+// partsChanged
+//---------------------------------------------------------
+
+void PartCanvas::partsChanged()
+ {
+ items.clear();
+ int idx = 0;
+ for (iTrack t = tracks->begin(); t != tracks->end(); ++t) {
+ PartList* pl = (*t)->parts();
+ for (iPart i = pl->begin(); i != pl->end(); ++i) {
+ NPart* np = new NPart(i->second);
+ items.add(np);
+ if (i->second->selected()) {
+ selectItem(np, true);
+ }
+ }
+ ++idx;
+ }
+ redraw();
+ }
+
+//---------------------------------------------------------
+// updateSelection
+//---------------------------------------------------------
+
+void PartCanvas::updateSelection()
+ {
+ for (iCItem i = items.begin(); i != items.end(); ++i) {
+ NPart* part = (NPart*)(i->second);
+ part->part()->setSelected(i->second->isSelected());
+ }
+ emit selectionChanged();
+ redraw();
+ }
+
+//---------------------------------------------------------
+// resizeItem
+//---------------------------------------------------------
+
+void PartCanvas::resizeItem(CItem* i, bool noSnap)
+ {
+ Track* t = ((NPart*)(i))->track();
+ Part* p = ((NPart*)(i))->part();
+
+ int pos = p->tick() + i->width();
+ int snappedpos = p->tick();
+ if (!noSnap) {
+ snappedpos = sigmap.raster(pos, *_raster);
+ }
+ unsigned int newwidth = snappedpos - p->tick();
+ if (newwidth == 0)
+ newwidth = sigmap.rasterStep(p->tick(), *_raster);
+
+ song->cmdResizePart(t, p, newwidth);
+ }
+
+//---------------------------------------------------------
+// newItem
+// first create local Item
+//---------------------------------------------------------
+
+CItem* PartCanvas::newItem(const QPoint& pos, int)
+ {
+ int x = pos.x();
+ if (x < 0)
+ x = 0;
+ x = sigmap.raster(x, *_raster);
+ unsigned trackIndex = y2pitch(pos.y());
+ if (trackIndex >= tracks->size())
+ return 0;
+ Track* track = tracks->index(trackIndex);
+ if(!track)
+ return 0;
+
+ Part* pa = 0;
+ NPart* np = 0;
+ switch(track->type()) {
+ case Track::MIDI:
+ case Track::DRUM:
+ pa = new MidiPart((MidiTrack*)track);
+ pa->setTick(x);
+ pa->setLenTick(0);
+ break;
+ case Track::WAVE:
+ pa = new WavePart((WaveTrack*)track);
+ pa->setTick(x);
+ pa->setLenTick(0);
+ break;
+ case Track::AUDIO_OUTPUT:
+ case Track::AUDIO_INPUT:
+ case Track::AUDIO_GROUP:
+ case Track::AUDIO_AUX:
+ case Track::AUDIO_SOFTSYNTH:
+ return 0;
+ }
+ pa->setName(track->name());
+ pa->setColorIndex(curColorIndex);
+ np = new NPart(pa);
+ return np;
+ }
+
+//---------------------------------------------------------
+// newItem
+//---------------------------------------------------------
+
+void PartCanvas::newItem(CItem* i, bool noSnap)
+ {
+ Part* p = ((NPart*)(i))->part();
+
+ int len = i->width();
+ if (!noSnap)
+ len = sigmap.raster(len, *_raster);
+ if (len == 0)
+ len = sigmap.rasterStep(p->tick(), *_raster);
+ p->setLenTick(len);
+ p->setSelected(true);
+ audio->msgAddPart(p);
+ }
+
+//---------------------------------------------------------
+// deleteItem
+//---------------------------------------------------------
+
+bool PartCanvas::deleteItem(CItem* i)
+ {
+ Part* p = ((NPart*)(i))->part();
+ audio->msgRemovePart(p); //Invokes songChanged which calls partsChanged which makes it difficult to delete them there
+ return true;
+ }
+
+//---------------------------------------------------------
+// splitItem
+//---------------------------------------------------------
+
+void PartCanvas::splitItem(CItem* item, const QPoint& pt)
+ {
+ NPart* np = (NPart*) item;
+ Track* t = np->track();
+ Part* p = np->part();
+ int x = pt.x();
+ if (x < 0)
+ x = 0;
+ song->cmdSplitPart(t, p, sigmap.raster(x, *_raster));
+ }
+
+//---------------------------------------------------------
+// glueItem
+//---------------------------------------------------------
+
+void PartCanvas::glueItem(CItem* item)
+ {
+ NPart* np = (NPart*) item;
+ Track* t = np->track();
+ Part* p = np->part();
+ song->cmdGluePart(t, p);
+ }
+
+//---------------------------------------------------------
+// genItemPopup
+//---------------------------------------------------------
+
+Q3PopupMenu* PartCanvas::genItemPopup(CItem* item)
+ {
+ NPart* npart = (NPart*) item;
+ Track::TrackType trackType = npart->track()->type();
+
+ Q3PopupMenu* partPopup = new Q3PopupMenu(this);
+
+ partPopup->insertItem(*editcutIconSet, tr("C&ut"), 4);
+ partPopup->setAccel(Qt::CTRL+Qt::Key_X, 4);
+
+ partPopup->insertItem(*editcopyIconSet, tr("&Copy"), 5);
+ partPopup->setAccel(Qt::CTRL+Qt::Key_C, 5);
+
+ partPopup->insertSeparator();
+ int rc = npart->part()->events()->arefCount();
+ QString st = QString(tr("s&elect "));
+ if(rc > 1)
+ st += (QString().setNum(rc) + QString(" "));
+ st += QString(tr("clones"));
+ partPopup->insertItem(st, 18);
+
+ partPopup->insertSeparator();
+ partPopup->insertItem(tr("rename"), 0);
+ Q3PopupMenu* colorPopup = new Q3PopupMenu(this);
+ partPopup->insertItem(tr("color"), colorPopup);
+
+ // part color selection
+ const QFontMetrics& fm = colorPopup->fontMetrics();
+ int h = fm.lineSpacing();
+
+ for (int i = 0; i < NUM_PARTCOLORS; ++i) {
+ ColorListItem* item = new ColorListItem(config.partColors[i], h, fontMetrics().height(), partColorNames[i]);
+ //colorPopup->insertItem(item, 20+i); ddskrjo
+ }
+
+ partPopup->insertItem(QIcon(*deleteIcon), tr("delete"), 1); // ddskrjo added QIcon to all
+ partPopup->insertItem(QIcon(*cutIcon), tr("split"), 2);
+ partPopup->insertItem(QIcon(*glueIcon), tr("glue"), 3);
+ partPopup->insertItem(tr("de-clone"), 15);
+
+ partPopup->insertSeparator();
+ switch(trackType) {
+ case Track::MIDI:
+ partPopup->insertItem(QIcon(*pianoIconSet), tr("pianoroll"), 10);
+ partPopup->insertItem(QIcon(*edit_listIcon), tr("list"), 12);
+ partPopup->insertItem(tr("export"), 16);
+ break;
+ case Track::DRUM:
+ partPopup->insertItem(QIcon(*edit_listIcon), tr("list"), 12);
+ partPopup->insertItem(QIcon(*edit_drummsIcon), tr("drums"), 13);
+ partPopup->insertItem(tr("export"), 16);
+ break;
+ case Track::WAVE:
+ partPopup->insertItem(QIcon(*edit_waveIcon), tr("wave edit"), 14);
+ partPopup->insertItem(tr("export"), 16);
+ partPopup->insertItem(tr("file info"), 17);
+ break;
+ case Track::AUDIO_OUTPUT:
+ case Track::AUDIO_INPUT:
+ case Track::AUDIO_GROUP:
+ case Track::AUDIO_AUX:
+ case Track::AUDIO_SOFTSYNTH:
+ break;
+ }
+
+ partPopup->setItemEnabled(18, rc > 1);
+ partPopup->setItemEnabled(1, true);
+ partPopup->setItemEnabled(4, true);
+ partPopup->setItemEnabled(15, rc > 1);
+
+ return partPopup;
+ }
+
+//---------------------------------------------------------
+// itemPopup
+//---------------------------------------------------------
+
+void PartCanvas::itemPopup(CItem* item, int n, const QPoint& pt)
+ {
+ PartList* pl = new PartList;
+ NPart* npart = (NPart*)(item);
+ pl->add(npart->part());
+ switch(n) {
+ case 0: // rename
+ {
+ editPart = npart;
+ QRect r = map(curItem->bbox());
+ if (lineEditor == 0) {
+ lineEditor = new QLineEdit(this);
+ lineEditor->setFrame(true);
+ }
+ lineEditor->setText(editPart->name());
+ lineEditor->setFocus();
+ lineEditor->show();
+ lineEditor->setGeometry(r);
+ editMode = true;
+ }
+ break;
+ case 1: // delete
+ deleteItem(item);
+ break;
+ case 2: // split
+ splitItem(item, pt);
+ break;
+ case 3: // glue
+ glueItem(item);
+ break;
+ case 4:
+ copy(pl);
+ audio->msgRemovePart(npart->part());
+ break;
+ case 5:
+ copy(pl);
+ break;
+ case 10: // pianoroll edit
+ emit startEditor(pl, 0);
+ return;
+ case 12: // list edit
+ emit startEditor(pl, 1);
+ return;
+ case 13: // drum edit
+ emit startEditor(pl, 3);
+ return;
+ case 14: // wave edit
+ {
+ // Changed to allow multiple selected parts to be shown. By T356
+ // Slightly inefficient to add (above), then clear here.
+ // Should really only add npart->part() to pl only if NOT here.
+ // Removed. Added wave editor menu item instead.
+ //pl->clear();
+ //PartList* ptl = npart->track()->parts();
+ //for(ciPart pi = ptl->begin(); pi != ptl->end(); pi++)
+ //{
+ // if(pi->second->selected())
+ // pl->add(pi->second);
+ //}
+ emit startEditor(pl, 4);
+ }
+ return;
+ case 15: // declone
+ {
+ Part* spart = npart->part();
+ Track* track = npart->track();
+ Part* dpart = track->newPart(spart, false);
+ // Added by Tim. p3.3.6
+ //printf("PartCanvas::itemPopup: #1 spart %s %p next:%s %p prev:%s %p\n", spart->name().latin1(), spart, spart->nextClone()->name().latin1(), spart->nextClone(), spart->prevClone()->name().latin1(), spart->prevClone());
+ //printf("PartCanvas::itemPopup: #1 dpart %s %p next:%s %p prev:%s %p\n", dpart->name().latin1(), dpart, dpart->nextClone()->name().latin1(), dpart->nextClone(), dpart->prevClone()->name().latin1(), dpart->prevClone());
+
+ 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);
+ }
+ song->startUndo();
+ // Indicate no undo, and do port controller values but not clone parts.
+ //audio->msgChangePart(spart, dpart, false);
+ audio->msgChangePart(spart, dpart, false, true, false);
+ // Added by Tim. p3.3.6
+ //printf("PartCanvas::itemPopup: #2 spart %s %p next:%s %p prev:%s %p\n", spart->name().latin1(), spart, spart->nextClone()->name().latin1(), spart->nextClone(), spart->prevClone()->name().latin1(), spart->prevClone());
+ //printf("PartCanvas::itemPopup: #2 dpart %s %p next:%s %p prev:%s %p\n", dpart->name().latin1(), dpart, dpart->nextClone()->name().latin1(), dpart->nextClone(), dpart->prevClone()->name().latin1(), dpart->prevClone());
+
+ song->endUndo(SC_PART_MODIFIED);
+ break; // Has to be break here, right?
+ }
+ case 16: // Export to file
+ {
+ const Part* part = item->part();
+ bool popenFlag = false;
+ //QString fn = getSaveFileName(QString(""), part_file_pattern, this, tr("MusE: save part"));
+ QString fn = getSaveFileName(QString(""), part_file_save_pattern, this, tr("MusE: save part"));
+ if (!fn.isEmpty()) {
+ FILE* fp = fileOpen(this, fn, ".mpt", "w", popenFlag, false, false);
+ if (fp) {
+ Xml tmpXml = Xml(fp);
+ //part->write(0, tmpXml);
+ // Write the part. Indicate that it's a copy operation - to add special markers,
+ // and force full wave paths.
+ part->write(0, tmpXml, true, true);
+ fclose(fp);
+ }
+ }
+ break;
+ }
+
+ case 17: // File info
+ {
+ Part* p = item->part();
+ EventList* el = p->events();
+ QString str = tr("Part name") + ": " + p->name() + "\n" + tr("Files") + ":";
+ for (iEvent e = el->begin(); e != el->end(); ++e)
+ {
+ Event event = e->second;
+ SndFileR f = event.sndFile();
+ if (f.isNull())
+ continue;
+ //str.append("\n" + f.path());
+ str.append(QString("\n@") + QString().setNum(event.tick()) + QString(" len:") +
+ QString().setNum(event.lenTick()) + QString(" ") + f.path());
+ }
+ QMessageBox::information(this, "File info", str, "Ok", 0);
+ break;
+ }
+ case 18: // Select clones
+ {
+ Part* part = item->part();
+
+ // Traverse and process the clone chain ring until we arrive at the same part again.
+ // The loop is a safety net.
+ Part* p = part;
+ int j = part->cevents()->arefCount();
+ if(j > 0)
+ {
+ for(int i = 0; i < j; ++i)
+ {
+ // Added by Tim. p3.3.6
+ //printf("PartCanvas::itemPopup i:%d %s %p events %p refs:%d arefs:%d\n", i, p->name().latin1(), p, part->cevents(), part->cevents()->refCount(), j);
+
+ p->setSelected(true);
+ p = p->nextClone();
+ if(p == part)
+ break;
+ }
+ //song->update();
+ song->update(SC_SELECTION);
+ }
+
+ break;
+ }
+ case 20 ... NUM_PARTCOLORS+20:
+ {
+ curColorIndex = n - 20;
+ bool selfound = false;
+ //Loop through all parts and set color on selected:
+ for (iCItem i = items.begin(); i != items.end(); i++) {
+ if (i->second->isSelected()) {
+ selfound = true;
+ i->second->part()->setColorIndex(curColorIndex);
+ }
+ }
+
+ // If no items selected, use the one clicked on.
+ if(!selfound)
+ item->part()->setColorIndex(curColorIndex);
+
+ redraw();
+ break;
+ }
+ default:
+ printf("unknown action %d\n", n);
+ break;
+ }
+ delete pl;
+ }
+
+//---------------------------------------------------------
+// viewMousePressEvent
+//---------------------------------------------------------
+
+void PartCanvas::mousePress(QMouseEvent* event)
+ {
+ if (event->state() & Qt::ShiftButton) {
+ return;
+ }
+ QPoint pt = event->pos();
+ CItem* item = items.find(pt);
+ if (item == 0)
+ return;
+ switch (_tool) {
+ default:
+ emit trackChanged(item->part()->track());
+ break;
+ case CutTool:
+ splitItem(item, pt);
+ break;
+ case GlueTool:
+ glueItem(item);
+ break;
+ case MuteTool:
+ {
+ NPart* np = (NPart*) item;
+ Part* p = np->part();
+ p->setMute(!p->mute());
+ redraw();
+ break;
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// viewMouseReleaseEvent
+//---------------------------------------------------------
+
+void PartCanvas::mouseRelease(const QPoint&)
+ {
+ }
+
+//---------------------------------------------------------
+// viewMouseMoveEvent
+//---------------------------------------------------------
+
+void PartCanvas::mouseMove(const QPoint& pos)
+ {
+ int x = pos.x();
+ if (x < 0)
+ x = 0;
+ emit timeChanged(sigmap.raster(x, *_raster));
+ }
+
+//---------------------------------------------------------
+// y2Track
+//---------------------------------------------------------
+
+Track* PartCanvas::y2Track(int y) const
+ {
+ TrackList* l = song->tracks();
+ int ty = 0;
+ for (iTrack it = l->begin(); it != l->end(); ++it) {
+ int h = (*it)->height();
+ if (y >= ty && y < ty + h)
+ return *it;
+ ty += h;
+ }
+ return 0;
+ }
+
+//---------------------------------------------------------
+// keyPress
+//---------------------------------------------------------
+
+void PartCanvas::keyPress(QKeyEvent* event)
+ {
+ int key = event->key();
+ if (editMode) {
+ returnPressed();
+ return;
+ }
+
+ if (event->state() & Qt::ShiftButton)
+ key += Qt::SHIFT;
+ if (event->state() & Qt::AltButton)
+ key += Qt::ALT;
+ if (event->state() & Qt::ControlButton)
+ key += Qt::CTRL;
+
+ if (key == shortcuts[SHRT_DELETE].key) {
+ if (getCurrentDrag()) {
+ //printf("dragging!!\n");
+ return;
+ }
+
+ song->startUndo();
+ song->msgRemoveParts();
+ song->endUndo(SC_PART_REMOVED);
+ return;
+ }
+ else if (key == shortcuts[SHRT_POS_DEC].key) {
+ int frames = pos[0] - sigmap.rasterStep(pos[0], *_raster);
+ if (frames < 0)
+ frames = 0;
+ Pos p(frames,true);
+ song->setPos(0, p, true, true, true);
+ return;
+ }
+ else if (key == shortcuts[SHRT_POS_INC].key) {
+ Pos p(pos[0] + sigmap.rasterStep(pos[0], *_raster), true);
+ song->setPos(0, p, true, true, true); //CDW
+ return;
+ }
+ else if (key == shortcuts[SHRT_TOOL_POINTER].key) {
+ emit setUsedTool(PointerTool);
+ return;
+ }
+ else if (key == shortcuts[SHRT_TOOL_PENCIL].key) {
+ emit setUsedTool(PencilTool);
+ return;
+ }
+ else if (key == shortcuts[SHRT_TOOL_RUBBER].key) {
+ emit setUsedTool(RubberTool);
+ return;
+ }
+ else if (key == shortcuts[SHRT_TOOL_SCISSORS].key) {
+ emit setUsedTool(CutTool);
+ return;
+ }
+ else if (key == shortcuts[SHRT_TOOL_GLUE].key) {
+ emit setUsedTool(GlueTool);
+ return;
+ }
+ else if (key == shortcuts[SHRT_TOOL_MUTE].key) {
+ emit setUsedTool(MuteTool);
+ return;
+ }
+ else if (key == shortcuts[SHRT_SEL_TRACK_ABOVE].key) {
+ emit selectTrackAbove();
+ return;
+ }
+ else if (key == shortcuts[SHRT_SEL_TRACK_BELOW].key) {
+ emit selectTrackBelow();
+ return;
+ }
+
+ //
+ // Shortcuts that require selected parts from here
+ //
+ if (!curItem) {
+ if (items.size()==0) {
+ return;
+ }
+ for (iCItem i = items.begin(); i != items.end(); ++i) {
+ NPart* part = (NPart*)(i->second);
+ if (part->isSelected()) {
+ curItem=part;
+ break;
+ }
+ }
+ if (!curItem)
+ curItem = (NPart*)items.begin()->second; // just grab the first part
+ }
+
+ CItem* newItem = 0;
+ bool singleSelection = isSingleSelection();
+ bool add = false;
+ //Locators to selection
+ if (key == shortcuts[SHRT_LOCATORS_TO_SELECTION].key) {
+ CItem *leftmost = 0, *rightmost = 0;
+ for (iCItem i = items.begin(); i != items.end(); i++) {
+ if (i->second->isSelected()) {
+ // Check leftmost:
+ if (!leftmost)
+ leftmost = i->second;
+ else
+ if (leftmost->x() > i->second->x())
+ leftmost = i->second;
+
+ // Check rightmost:
+ if (!rightmost)
+ rightmost = i->second;
+ else
+ if (rightmost->x() < i->second->x())
+ rightmost = i->second;
+ }
+ }
+
+ int left_tick = leftmost->part()->tick();
+ int right_tick = rightmost->part()->tick() + rightmost->part()->lenTick();
+ Pos p1(left_tick, true);
+ Pos p2(right_tick, true);
+ song->setPos(1, p1);
+ song->setPos(2, p2);
+ return;
+ }
+
+ // Select part to the right
+ else if (key == shortcuts[SHRT_SEL_RIGHT].key || key == shortcuts[SHRT_SEL_RIGHT_ADD].key) {
+ if (key == shortcuts[SHRT_SEL_RIGHT_ADD].key)
+ add = true;
+
+ Part* part = curItem->part();
+ Track* track = part->track();
+ unsigned int tick = part->tick();
+ bool afterthis = false;
+ for (iCItem i = items.begin(); i != items.end(); ++i) {
+ NPart* npart = (NPart*)(i->second);
+ Part* ipart = npart->part();
+ if (ipart->track() != track)
+ continue;
+ if (ipart->tick() < tick)
+ continue;
+ if (ipart == part)
+ {
+ afterthis = true;
+ continue;
+ }
+ if(afterthis)
+ {
+ newItem = i->second;
+ break;
+ }
+ }
+ }
+ // Select part to the left
+ else if (key == shortcuts[SHRT_SEL_LEFT].key || key == shortcuts[SHRT_SEL_LEFT_ADD].key) {
+ if (key == shortcuts[SHRT_SEL_LEFT_ADD].key)
+ add = true;
+
+ Part* part = curItem->part();
+ Track* track = part->track();
+ unsigned int tick = part->tick();
+
+ for (iCItem i = items.begin(); i != items.end(); ++i) {
+ NPart* npart = (NPart*)(i->second);
+ Part* ipart = npart->part();
+
+ if (ipart->track() != track)
+ continue;
+ if (ipart->tick() > tick)
+ continue;
+ if (ipart == part)
+ break;
+ newItem = i->second;
+ }
+ }
+
+ // Select nearest part on track above
+ else if (key == shortcuts[SHRT_SEL_ABOVE].key || key == shortcuts[SHRT_SEL_ABOVE_ADD].key) {
+ if (key == shortcuts[SHRT_SEL_ABOVE_ADD].key)
+ add = true;
+ //To get an idea of which track is above us:
+ int stepsize = rmapxDev(1);
+ Track* track = curItem->part()->track();//top->part()->track();
+ track = y2Track(track->y() - 1);
+
+ //If we're at topmost, leave
+ if (!track) {
+ printf("no track above!\n");
+ return;
+ }
+ int middle = curItem->x() + curItem->part()->lenTick()/2;
+ CItem *aboveL = 0, *aboveR = 0;
+ //Upper limit: song end, lower limit: song start
+ int ulimit = song->len();
+ int llimit = 0;
+
+ while (newItem == 0) {
+ int y = track->y() + 2;
+ int xoffset = 0;
+ int xleft = middle - xoffset;
+ int xright = middle + xoffset;
+ while ((xleft > llimit || xright < ulimit) && (aboveL == 0) && (aboveR == 0)) {
+ xoffset += stepsize;
+ xleft = middle - xoffset;
+ xright = middle + xoffset;
+ if (xleft >= 0)
+ aboveL = items.find(QPoint(xleft,y));
+ if (xright <= ulimit)
+ aboveR = items.find(QPoint(xright,y));
+ }
+
+ if ((aboveL || aboveR) != 0) { //We've hit something
+ CItem* above = 0;
+ above = (aboveL !=0) ? aboveL : aboveR;
+ newItem = above;
+ }
+ else { //We didn't hit anything. Move to track above, if there is one
+ track = y2Track(track->y() - 1);
+ if (track == 0)
+ return;
+ }
+ }
+ emit trackChanged(track);
+ }
+ // Select nearest part on track below
+ else if (key == shortcuts[SHRT_SEL_BELOW].key || key == shortcuts[SHRT_SEL_BELOW_ADD].key) {
+ if (key == shortcuts[SHRT_SEL_BELOW_ADD].key)
+ add = true;
+
+ //To get an idea of which track is below us:
+ int stepsize = rmapxDev(1);
+ Track* track = curItem->part()->track();//bottom->part()->track();
+ track = y2Track(track->y() + track->height() + 1 );
+ int middle = curItem->x() + curItem->part()->lenTick()/2;
+ //If we're at bottommost, leave
+ if (!track)
+ return;
+
+ CItem *belowL = 0, *belowR = 0;
+ //Upper limit: song end , lower limit: song start
+ int ulimit = song->len();
+ int llimit = 0;
+ while (newItem == 0) {
+ int y = track->y() + 1;
+ int xoffset = 0;
+ int xleft = middle - xoffset;
+ int xright = middle + xoffset;
+ while ((xleft > llimit || xright < ulimit) && (belowL == 0) && (belowR == 0)) {
+ xoffset += stepsize;
+ xleft = middle - xoffset;
+ xright = middle + xoffset;
+ if (xleft >= 0)
+ belowL = items.find(QPoint(xleft,y));
+ if (xright <= ulimit)
+ belowR = items.find(QPoint(xright,y));
+ }
+
+ if ((belowL || belowR) != 0) { //We've hit something
+ CItem* below = 0;
+ below = (belowL !=0) ? belowL : belowR;
+ newItem = below;
+ }
+ else {
+ //Get next track below, or abort if this is the lowest
+ track = y2Track(track->y() + track->height() + 1 );
+ if (track == 0)
+ return;
+ }
+ }
+ emit trackChanged(track);
+ }
+ else if (key == shortcuts[SHRT_EDIT_PART].key && curItem) { //This should be the other way around - singleSelection first.
+ if (!singleSelection) {
+ event->ignore();
+ return;
+ }
+ PartList* pl = new PartList;
+ NPart* npart = (NPart*)(curItem);
+ Track* track = npart->part()->track();
+ pl->add(npart->part());
+ int type = 0;
+
+ // Check if track is wave or drum,
+ // else track is midi
+
+ switch (track->type()) {
+ case Track::DRUM:
+ type = 3;
+ break;
+
+ case Track::WAVE:
+ type = 4;
+ break;
+
+ case Track::MIDI:
+ case Track::AUDIO_OUTPUT:
+ case Track::AUDIO_INPUT:
+ case Track::AUDIO_GROUP:
+ case Track::AUDIO_AUX:
+ case Track::AUDIO_SOFTSYNTH: //TODO
+ break;
+ }
+ emit startEditor(pl, type);
+ }
+ else {
+ event->ignore(); // give global accelerators a chance
+ return;
+ }
+
+
+ // Check if anything happened to the selected parts
+ if (newItem) {
+ //If this is a single selection, toggle previous item
+ if (singleSelection && !add)
+ selectItem(curItem, false);
+ else if(!add)
+ deselectAll();
+
+ curItem = newItem;
+ selectItem(newItem, true);
+
+ //Check if we've hit the upper or lower boundaries of the window. If so, set a new position
+ if (newItem->x() < mapxDev(0)) {
+ int curpos = pos[0];
+ setPos(0,newItem->x(),true);
+ setPos(0,curpos,false); //Dummy to put the current position back once we've scrolled
+ }
+ else if (newItem->x() > mapxDev(width())) {
+ int curpos = pos[0];
+ setPos(0,newItem->x(),true);
+ setPos(0,curpos,false); //Dummy to put the current position back once we've scrolled
+ }
+ redraw();
+ }
+ }
+
+//---------------------------------------------------------
+// drawPart
+// draws a part
+//---------------------------------------------------------
+
+void PartCanvas::drawItem(QPainter& p, const CItem* item, const QRect& rect)
+ {
+ int from = rect.x();
+ int to = from + rect.width();
+
+ //printf("from %d to %d\n", from,to);
+ Part* part = ((NPart*)item)->part();
+ int pTick = part->tick();
+ from -= pTick;
+ to -= pTick;
+ if(from < 0)
+ from = 0;
+ if((unsigned int)to > part->lenTick())
+ to = part->lenTick();
+
+ QRect r = item->bbox();
+ //QRect r = item->bbox().intersect(rect);
+ int i = part->colorIndex();
+
+ //printf("part start tick %d part start pixel %d\n", part->tick(), r.x());
+
+ // Added by Tim. p3.3.6
+ //printf("PartCanvas::drawItem %s evRefs:%d pTick:%d pLen:%d bb.x:%d bb.w:%d rect.x:%d rect.w:%d r.x:%d r.w:%d\n", part->name().latin1(), part->events()->arefCount(), pTick, part->lenTick(), item->bbox().x(), item->bbox().width(), rect.x(), rect.width(), r.x(), r.width());
+
+ // Must be reasonable about very low negative x values! With long songs > 15min
+ // and with high horizontal magnification, 'ghost' drawings appeared,
+ // apparently the result of truncation later (xp = -65006 caused ghosting
+ // at bar 245 with magnification at max.), even with correct clipping region
+ // applied to painter in View::paint(). Tim. Apr 5 2009
+ // Quote: "Warning: Note that QPainter does not attempt to work around
+ // coordinate limitations in the underlying window system. Some platforms may
+ // behave incorrectly with coordinates as small as +/-4000."
+ //if(r.isEmpty())
+ // return;
+
+ p.setPen(Qt::black);
+ if (part->mute()) {
+ p.setBrush(Qt::gray);
+ p.drawRect(r);
+ return;
+ }
+ if (item->isMoving()) {
+ p.setBrush(Qt::gray);
+ p.drawRect(r);
+ }
+ //else if (part->mute())
+ // return;
+ else if (part->selected()) {
+ bool clone = part->events()->arefCount() > 1;
+ //p.setPen(config.partColors[i]);
+ p.setPen(QPen(config.partColors[i], 2, clone ? Qt::DashLine : Qt::SolidLine));
+ p.setBrush(Qt::black);
+ p.drawRect(r);
+ }
+ else {
+ bool clone = part->events()->arefCount() > 1;
+ p.setPen(QPen(Qt::black, 2, clone ? Qt::DashLine : Qt::SolidLine));
+ p.setBrush(config.partColors[i]);
+ p.drawRect(r);
+ }
+
+ MidiPart* mp = 0;
+ WavePart* wp = 0;
+ Track::TrackType type = part->track()->type();
+ if (type == Track::WAVE) {
+ wp =(WavePart*)part;
+ }
+ else {
+ mp = (MidiPart*)part;
+ }
+
+ if (config.canvasShowPartType & 2) { // show events
+ if (mp)
+ {
+ // Do not allow this, causes segfault.
+ if(from <= to)
+ {
+ p.setPen(Qt::darkGray);
+ EventList* events = mp->events();
+ iEvent ito(events->lower_bound(to));
+
+ 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 = i->first + pTick;
+ int th = part->track()->height();
+ if(t >= r.left() && t <= r.right())
+ p.drawLine(t, r.y()+2, t, r.y()+th-4);
+ }
+ }
+ }
+ }
+ else if (wp)
+ drawWavePart(p, rect, wp, r);
+ }
+
+ else { // show Cakewalk Style
+ if (mp) {
+ p.setPen(Qt::darkGray);
+ EventList* events = mp->events();
+ iEvent ito(events->lower_bound(to));
+ //printf("PartCanvas::drawItem pTick:%d from:%d to:%d part len:%d\n", pTick, from, to, part->lenTick());
+
+ for (iEvent i = events->begin(); i != ito; ++i) {
+ int t = i->first + pTick;
+ int te = t + i->second.lenTick();
+
+ if (t > (to + pTick))
+ {
+ printf("PartCanvas::drawItem t:%d > to:%d + pTick:%d i->first:%d\n", t, to, pTick, i->first);
+
+ break;
+ }
+
+ if (te < (from + pTick))
+ continue;
+
+ if (te > (to + pTick))
+ te = to + pTick;
+
+ EventType type = i->second.type();
+ if (type == Note) {
+ int pitch = i->second.pitch();
+ int th = int(part->track()->height() * 0.75); // only draw on three quarters
+ int hoffset = (part->track()->height() - th ) / 2; // offset from bottom
+ int y = hoffset + (r.y() + th - (pitch * (th) / 127));
+ p.drawLine(t, y, te, y);
+ }
+ }
+ }
+ else if (wp)
+ drawWavePart(p, rect, wp, r);
+ }
+ if (config.canvasShowPartType & 1) { // show names
+ // draw name
+ // FN: Set text color depending on part color (black / white)
+ int part_r, part_g, part_b, brightness;
+ config.partColors[i].getRgb(&part_r, &part_g, &part_b);
+ brightness = part_r*29 + part_g*59 + part_b*12;
+ if (brightness < 12000 || part->selected())
+ p.setPen(Qt::white); /* too dark: use white for text color */
+ else
+ p.setPen(Qt::black); /* otherwise use black */
+ QRect rr = map(r);
+ rr.setX(rr.x() + 3);
+ p.save();
+ p.setFont(config.fonts[1]);
+ p.setWorldXForm(false);
+ p.drawText(rr, Qt::AlignVCenter|Qt::AlignLeft, part->name());
+ p.restore();
+ }
+ }
+
+//---------------------------------------------------------
+// drawMoving
+// draws moving items
+//---------------------------------------------------------
+
+void PartCanvas::drawMoving(QPainter& p, const CItem* item, const QRect&)
+ {
+ //if(!item->isMoving())
+ // return;
+ p.setPen( Qt::black);
+ p.setBrush( Qt::NoBrush);
+ p.drawRect(item->mp().x(), item->mp().y()+1, item->width(), item->height());
+ }
+
+//---------------------------------------------------------
+// drawWavePart
+// bb - bounding box of paint area
+// pr - part rectangle
+//---------------------------------------------------------
+
+void PartCanvas::drawWavePart(QPainter& p,
+ const QRect& bb, WavePart* wp, const QRect& _pr)
+ {
+ QRect rr = p.worldMatrix().map(bb);
+ QRect pr = p.worldMatrix().map(_pr);
+
+ p.save();
+ p.resetXForm();
+
+ int x2 = 1;
+ int x1 = rr.x() > pr.x() ? rr.x() : pr.x();
+ x2 += rr.right() < pr.right() ? rr.right() : pr.right();
+
+ if (x1 < 0)
+ x1 = 0;
+ if (x2 > width())
+ x2 = width();
+ int hh = pr.height();
+ int h = hh/2;
+ int y = pr.y() + h;
+
+ EventList* el = wp->events();
+ for (iEvent e = el->begin(); e != el->end(); ++e) {
+ int cc = hh % 2 ? 0 : 1;
+ 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.name().latin1());
+ continue;
+ }
+
+ int xScale;
+ int pos;
+ int tickstep = rmapxDev(1);
+ int postick = tempomap.frame2tick(wp->frame() + event.frame());
+ int eventx = mapx(postick);
+ int drawoffset;
+ if((x1 - eventx) < 0)
+ drawoffset = 0;
+ else
+ drawoffset = rmapxDev(x1 - eventx);
+ postick += drawoffset;
+ pos = event.spos() + tempomap.tick2frame(postick) - wp->frame() - event.frame();
+
+ int i;
+ if(x1 < eventx)
+ i = eventx;
+ else
+ i = x1;
+ int ex = mapx(tempomap.frame2tick(wp->frame() + event.frame() + event.lenFrame()));
+ if(ex > x2)
+ ex = x2;
+ if (h < 20) {
+ //
+ // combine multi channels into one waveform
+ //
+ for (; i < ex; i++) {
+ SampleV sa[channels];
+ xScale = tempomap.deltaTick2frame(postick, postick + tickstep);
+ f.read(sa, xScale, pos);
+ postick += tickstep;
+ pos += 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 * (hh-2)) >> 9;
+ rms = (rms * (hh-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
+ //
+ int hm = hh / (channels * 2);
+ int cc = hh % (channels * 2) ? 0 : 1;
+ for (; i < ex; i++) {
+ y = pr.y() + hm;
+ SampleV sa[channels];
+ xScale = tempomap.deltaTick2frame(postick, postick + tickstep);
+ f.read(sa, xScale, pos);
+ postick += tickstep;
+ pos += xScale;
+ for (unsigned k = 0; k < channels; ++k) {
+ int peak = (sa[k].peak * (hm - 1)) >> 8;
+ int rms = (sa[k].rms * (hm - 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 * hm;
+ }
+ }
+ }
+ }
+ p.restore();
+ }
+//---------------------------------------------------------
+// cmd
+//---------------------------------------------------------
+
+void PartCanvas::cmd(int cmd)
+ {
+ PartList pl;
+ for (iCItem i = items.begin(); i != items.end(); ++i) {
+ if (!i->second->isSelected())
+ continue;
+ NPart* npart = (NPart*)(i->second);
+ pl.add(npart->part());
+ }
+ switch (cmd) {
+ case CMD_CUT_PART:
+ copy(&pl);
+ song->startUndo();
+
+ bool loop;
+ do
+ {
+ loop = false;
+ for (iCItem i = items.begin(); i != items.end(); ++i) {
+ if (!i->second->isSelected())
+ continue;
+ NPart* p = (NPart*)(i->second);
+ Part* part = p->part();
+ audio->msgRemovePart(part);
+
+ loop = true;
+ break;
+ }
+ } while (loop);
+ song->endUndo(SC_PART_REMOVED);
+ break;
+ case CMD_COPY_PART:
+ copy(&pl);
+ break;
+ case CMD_PASTE_PART:
+ paste(false, false);
+ break;
+ case CMD_PASTE_CLONE_PART:
+ paste(true, false);
+ break;
+ case CMD_PASTE_PART_TO_TRACK:
+ paste();
+ break;
+ case CMD_PASTE_CLONE_PART_TO_TRACK:
+ paste(true);
+ break;
+ case CMD_INSERT_PART:
+ paste(false, false, true);
+ break;
+ case CMD_INSERT_EMPTYMEAS:
+ song->startUndo();
+ int startPos=song->vcpos();
+ int oneMeas=sigmap.ticksMeasure(startPos);
+ movePartsTotheRight(startPos,oneMeas);
+ song->endUndo(SC_PART_INSERTED);
+ break;
+ }
+ }
+
+//---------------------------------------------------------
+// copy
+// cut copy paste
+//---------------------------------------------------------
+
+void PartCanvas::copy(PartList* pl)
+ {
+ //printf("void PartCanvas::copy(PartList* pl)\n");
+ if (pl->empty())
+ return;
+ // Changed by T356. Support mixed .mpt files.
+ //bool isWave = pl->begin()->second->track()->type() == Track::WAVE;
+ bool wave = false;
+ bool midi = false;
+ for(ciPart p = pl->begin(); p != pl->end(); ++p)
+ {
+ if(p->second->track()->isMidiTrack())
+ midi = true;
+ else
+ if(p->second->track()->type() == Track::WAVE)
+ wave = true;
+ if(midi && wave)
+ break;
+ }
+ if(!(midi || wave))
+ return;
+
+ //---------------------------------------------------
+ // write parts as XML into tmp file
+ //---------------------------------------------------
+
+ FILE* tmp = tmpfile();
+ if (tmp == 0) {
+ fprintf(stderr, "PartCanvas::copy() fopen failed: %s\n",
+ strerror(errno));
+ return;
+ }
+ Xml xml(tmp);
+
+ // Clear the copy clone list.
+ cloneList.clear();
+ //copyCloneList.clear();
+
+ int level = 0;
+ int tick = 0;
+ for (ciPart p = pl->begin(); p != pl->end(); ++p) {
+ // Indicate this is a copy operation. Also force full wave paths.
+ //p->second->write(level, xml);
+ p->second->write(level, xml, true, true);
+
+ int endTick = p->second->endTick();
+ if (endTick > tick)
+ tick = endTick;
+ }
+ Pos p(tick, true);
+ song->setPos(0, p);
+
+ //---------------------------------------------------
+ // read tmp file into QTextDrag Object
+ //---------------------------------------------------
+
+ fflush(tmp);
+ struct stat f_stat;
+ if (fstat(fileno(tmp), &f_stat) == -1) {
+ fprintf(stderr, "PartCanvas::copy() fstat failed:<%s>\n",
+ strerror(errno));
+ fclose(tmp);
+ return;
+ }
+ int n = f_stat.st_size;
+ char* fbuf = (char*)mmap(0, n+1, PROT_READ|PROT_WRITE,
+ MAP_PRIVATE, fileno(tmp), 0);
+ fbuf[n] = 0;
+ Q3TextDrag* drag = new Q3TextDrag(QString(fbuf));
+ // Changed by T356. Support mixed .mpt files.
+ //drag->setSubtype(QCString(isWave ? "wavepartlist" : "midipartlist"));
+ if(midi && wave)
+ drag->setSubtype(Q3CString("mixedpartlist"));
+ else
+ if(midi)
+ drag->setSubtype(Q3CString("midipartlist"));
+ else
+ if(wave)
+ drag->setSubtype(Q3CString("wavepartlist"));
+
+ QApplication::clipboard()->setData(drag, QClipboard::Clipboard);
+ munmap(fbuf, n);
+ fclose(tmp);
+ }
+
+//---------------------------------------------------------
+// pasteAt
+//---------------------------------------------------------
+
+int PartCanvas::pasteAt(const QString& pt, Track* track, int pos, bool clone, bool toTrack)
+ {
+ //printf("int PartCanvas::pasteAt(const QString& pt, Track* track, int pos)\n");
+ const char* ptxt = pt.latin1();
+ Xml xml(ptxt);
+ bool firstPart=true;
+ int posOffset=0;
+ //int finalPos=0;
+ int finalPos = pos;
+ int notDone = 0;
+ int done = 0;
+ bool end = false;
+
+ //song->startUndo();
+ for (;;) {
+ Xml::Token token = xml.parse();
+ const QString& tag = xml.s1();
+ switch (token) {
+ case Xml::Error:
+ case Xml::End:
+ end = true;
+ break;
+ case Xml::TagStart:
+ if (tag == "part") {
+ /*
+ Part* p = 0;
+ if(clone)
+ {
+ if(!(p = readClone(xml, track, toTrack)))
+ break;
+ }
+ else
+ {
+ if (track->type() == Track::MIDI || track->type() == Track::DRUM)
+ p = new MidiPart((MidiTrack*)track);
+ else if (track->type() == Track::WAVE)
+ p = new WavePart((WaveTrack*)track);
+ else
+ break;
+ p->read(xml, 0, toTrack);
+ }
+ */
+
+ // Read the part.
+ Part* p = 0;
+ p = readXmlPart(xml, track, clone, toTrack);
+ // If it could not be created...
+ if(!p)
+ {
+ // Increment the number of parts not done and break.
+ ++notDone;
+ break;
+ }
+
+ // Increment the number of parts done.
+ ++done;
+
+ if (firstPart) {
+ firstPart=false;
+ posOffset=pos-p->tick();
+ }
+ p->setTick(p->tick()+posOffset);
+ if (p->tick()+p->lenTick()>finalPos) {
+ finalPos=p->tick()+p->lenTick();
+ }
+ //pos += p->lenTick();
+ audio->msgAddPart(p,false);
+ }
+ else
+ xml.unknown("PartCanvas::pasteAt");
+ break;
+ case Xml::TagEnd:
+ break;
+ default:
+ end = true;
+ break;
+ }
+ if(end)
+ break;
+ }
+
+ //song->endUndo(SC_PART_INSERTED);
+ //return pos;
+
+ if(notDone)
+ {
+ int tot = notDone + done;
+ QMessageBox::critical(this, QString("MusE"),
+ QString().setNum(notDone) + (tot > 1 ? (tr(" out of ") + QString().setNum(tot)) : QString("")) +
+ (tot > 1 ? tr(" parts") : tr(" part")) +
+ tr(" could not be pasted.\nLikely the selected track is the wrong type."));
+ }
+
+ return finalPos;
+ }
+
+/*
+//---------------------------------------------------------
+// PartCanvas::readPart
+//---------------------------------------------------------
+
+Part* PartCanvas::readPart(Xml& xml, Track* track, bool doClone, bool toTrack)
+ {
+ int id = -1;
+ Part* npart = 0;
+ uuid_t uuid;
+ uuid_clear(uuid);
+ bool uuidvalid = false;
+ bool clone = true;
+
+ for (;;) {
+ Xml::Token token = xml.parse();
+ const QString& tag = xml.s1();
+ switch (token) {
+ case Xml::Error:
+ case Xml::End:
+ return npart;
+ case Xml::TagStart:
+ // If the part has not been created yet...
+ if(!npart)
+ {
+ // Attribute section did not create a clone from any matching part. Create a non-clone part now.
+ if(!track)
+ {
+ xml.skip("part");
+ return 0;
+ }
+ if (track->type() == Track::MIDI || track->type() == Track::DRUM)
+ npart = new MidiPart((MidiTrack*)track);
+ else if (track->type() == Track::WAVE)
+ npart = new WavePart((WaveTrack*)track);
+ else
+ {
+ xml.skip("part");
+ return 0;
+ }
+
+ // Signify a new non-clone part was created.
+ // Even if the original part was itself a clone, clear this because the
+ // attribute section did not create a clone from any matching part.
+ clone = false;
+
+ // If an id or uuid was found, add the part to the clone list
+ // so that subsequent parts can look it up and clone from it...
+ if(id != -1)
+ {
+ ClonePart ncp(npart, id);
+ cloneList.push_back(ncp);
+ }
+ else
+ if(uuidvalid)
+ {
+ ClonePart ncp(npart);
+ // New ClonePart creates its own uuid, but we need to replace it.
+ uuid_copy(ncp.uuid, uuid);
+ cloneList.push_back(ncp);
+ }
+ }
+
+ if (tag == "name")
+ npart->setName(xml.parse1());
+ else if (tag == "poslen") {
+ ((PosLen*)npart)->read(xml, "poslen");
+ }
+ else if (tag == "pos") {
+ Pos pos;
+ pos.read(xml, "pos"); // obsolete
+ npart->setTick(pos.tick());
+ }
+ else if (tag == "len") {
+ Pos len;
+ len.read(xml, "len"); // obsolete
+ npart->setLenTick(len.tick());
+ }
+ else if (tag == "selected")
+ npart->setSelected(xml.parseInt());
+ else if (tag == "color")
+ npart->setColorIndex(xml.parseInt());
+ else if (tag == "mute")
+ npart->setMute(xml.parseInt());
+ else if (tag == "event")
+ {
+ // If a new non-clone part was created, accept the events...
+ if(!clone)
+ {
+ EventType type = Wave;
+ if(track->isMidiTrack())
+ type = Note;
+ Event e(type);
+ e.read(xml);
+ // stored tickpos for event has absolute value. However internally
+ // tickpos is relative to start of part, we substract tick().
+ // TODO: better handling for wave event
+ e.move( -npart->tick() );
+ int tick = e.tick();
+
+ // Do not discard events belonging to clone parts,
+ // at least not yet. A later clone might have a longer,
+ // fully accommodating part length!
+ //if ((tick < 0) || (tick >= (int) lenTick())) {
+ //if ((tick < 0) || ( id == -1 && !clone && (tick >= (int)lenTick()) ))
+ // No way to tell at the moment whether there will be clones referencing this...
+ // No choice but to accept all events past 0.
+ if(tick < 0)
+ {
+ //printf("readClone: warning: event not in part: %d - %d -%d, discarded\n",
+ printf("readClone: warning: event at tick:%d not in part:%s, discarded\n",
+ tick, npart->name().latin1());
+ }
+ else
+ {
+ npart->events()->add(e);
+ }
+ }
+ else
+ // ...Otherwise a clone was created, so we don't need the events.
+ xml.skip(tag);
+ }
+ else
+ xml.unknown("PartCanvas::readClone");
+ break;
+ case Xml::Attribut:
+ if (tag == "cloneId")
+ {
+ id = xml.s2().toInt();
+ if(id != -1)
+ {
+ for(iClone i = cloneList.begin(); i != cloneList.end(); ++i)
+ {
+ // Is a matching part found in the clone list?
+ if(i->id == id)
+ {
+ // If it's a regular paste (not paste clone), and the original part is
+ // not a clone, defer so that a new copy is created in TagStart above.
+ if(!doClone && i->cp->cevents()->arefCount() <= 1)
+ break;
+
+ // This makes a clone, chains the part, and increases ref counts.
+ npart = track->newPart((Part*)i->cp, true);
+ break;
+ }
+ }
+ }
+ }
+ else if (tag == "uuid")
+ {
+ uuid_parse(xml.s2().latin1(), uuid);
+ if(!uuid_is_null(uuid))
+ {
+ uuidvalid = true;
+ for(iClone i = cloneList.begin(); i != cloneList.end(); ++i)
+ {
+ // Is a matching part found in the clone list?
+ if(uuid_compare(uuid, i->uuid) == 0)
+ {
+ Track* cpt = i->cp->track();
+ // If we want to paste to the given track...
+ if(toTrack)
+ {
+ // If the given track type is not the same as the part's
+ // original track type, we can't continue. Just return.
+ if(!track || cpt->type() != track->type())
+ {
+ xml.skip("part");
+ return 0;
+ }
+ }
+ else
+ // ...else we want to paste to the part's original track.
+ {
+ // Make sure the track exists (has not been deleted).
+ if((cpt->isMidiTrack() && song->midis()->find(cpt) != song->midis()->end()) ||
+ (cpt->type() == Track::WAVE && song->waves()->find(cpt) != song->waves()->end()))
+ track = cpt;
+ else
+ // Track was not found. Try pasting to the given track, as above...
+ {
+ if(!track || cpt->type() != track->type())
+ {
+ // No luck. Just return.
+ xml.skip("part");
+ return 0;
+ }
+ }
+ }
+
+ // If it's a regular paste (not paste clone), and the original part is
+ // not a clone, defer so that a new copy is created in TagStart above.
+ if(!doClone && i->cp->cevents()->arefCount() <= 1)
+ break;
+
+ // This makes a clone, chains the part, and increases ref counts.
+ npart = track->newPart((Part*)i->cp, true);
+ break;
+ }
+ }
+ }
+ }
+ //else if(tag == "isclone") // Ignore
+ // clone = xml.s2().toInt();
+ break;
+ case Xml::TagEnd:
+ if (tag == "part")
+ return npart;
+ default:
+ break;
+ }
+ }
+ return npart;
+}
+*/
+
+/*
+//---------------------------------------------------------
+// PartCanvas::readClone
+//---------------------------------------------------------
+
+Part* PartCanvas::readClone(Xml& xml, Track* track, bool toTrack)
+ {
+ int id = -1;
+ Part* npart = 0;
+ uuid_t uuid;
+ uuid_clear(uuid);
+ bool uuidvalid = false;
+ bool clone = true;
+
+ for (;;) {
+ Xml::Token token = xml.parse();
+ const QString& tag = xml.s1();
+ switch (token) {
+ case Xml::Error:
+ case Xml::End:
+ return npart;
+ case Xml::TagStart:
+ // If the part has not been created yet...
+ if(!npart)
+ {
+ // Attribute section did not create a clone from any matching part. Create a non-clone part now.
+ if (track->type() == Track::MIDI || track->type() == Track::DRUM)
+ npart = new MidiPart((MidiTrack*)track);
+ else if (track->type() == Track::WAVE)
+ npart = new WavePart((WaveTrack*)track);
+ else
+ return 0;
+
+ // Signify a new non-clone part was created.
+ // Even if the original part was itself a clone, clear this because the
+ // attribute section did not create a clone from any matching part.
+ clone = false;
+
+ // If an id or uuid was found, add the part to the clone list
+ // so that subsequent parts can look it up and clone from it...
+ if(id != -1)
+ {
+ ClonePart ncp(npart, id);
+ cloneList.push_back(ncp);
+ }
+ else
+ if(uuidvalid)
+ {
+ ClonePart ncp(npart);
+ // New ClonePart creates its own uuid, but we need to replace it.
+ uuid_copy(ncp.uuid, uuid);
+ cloneList.push_back(ncp);
+ }
+ }
+
+ if (tag == "name")
+ npart->setName(xml.parse1());
+ else if (tag == "poslen") {
+ ((PosLen*)npart)->read(xml, "poslen");
+ }
+ else if (tag == "pos") {
+ Pos pos;
+ pos.read(xml, "pos"); // obsolete
+ npart->setTick(pos.tick());
+ }
+ else if (tag == "len") {
+ Pos len;
+ len.read(xml, "len"); // obsolete
+ npart->setLenTick(len.tick());
+ }
+ else if (tag == "selected")
+ npart->setSelected(xml.parseInt());
+ else if (tag == "color")
+ npart->setColorIndex(xml.parseInt());
+ else if (tag == "mute")
+ npart->setMute(xml.parseInt());
+ else if (tag == "event")
+ {
+ // If a new non-clone part was created, accept the events...
+ if(!clone)
+ {
+ EventType type = Wave;
+ if(track->isMidiTrack())
+ type = Note;
+ Event e(type);
+ e.read(xml);
+ // stored tickpos for event has absolute value. However internally
+ // tickpos is relative to start of part, we substract tick().
+ // TODO: better handling for wave event
+ e.move( -npart->tick() );
+ int tick = e.tick();
+
+ // Do not discard events belonging to clone parts,
+ // at least not yet. A later clone might have a longer,
+ // fully accommodating part length!
+ //if ((tick < 0) || (tick >= (int) lenTick())) {
+ //if ((tick < 0) || ( id == -1 && !clone && (tick >= (int)lenTick()) ))
+ // No way to tell at the moment whether there will be clones referencing this...
+ // No choice but to accept all events past 0.
+ if(tick < 0)
+ {
+ //printf("readClone: warning: event not in part: %d - %d -%d, discarded\n",
+ printf("readClone: warning: event at tick:%d not in part:%s, discarded\n",
+ tick, npart->name().latin1());
+ }
+ else
+ {
+ npart->events()->add(e);
+ }
+ }
+ else
+ // ...Otherwise a clone was created, so we don't need the events.
+ xml.skip(tag);
+ }
+ else
+ xml.unknown("PartCanvas::readClone");
+ break;
+ case Xml::Attribut:
+ if (tag == "cloneId")
+ {
+ id = xml.s2().toInt();
+ if(id != -1)
+ {
+ for(iClone i = cloneList.begin(); i != cloneList.end(); ++i)
+ {
+ // Is a matching part found in the clone list?
+ if(i->id == id)
+ {
+ // This makes a clone, chains the part, and increases ref counts.
+ npart = track->newPart((Part*)i->cp, true);
+ break;
+ }
+ }
+ }
+ }
+ else if (tag == "uuid")
+ {
+ uuid_parse(xml.s2().latin1(), uuid);
+ if(!uuid_is_null(uuid))
+ {
+ uuidvalid = true;
+ for(iClone i = cloneList.begin(); i != cloneList.end(); ++i)
+ {
+ // Is a matching part found in the clone list?
+ if(uuid_compare(uuid, i->uuid) == 0)
+ {
+ // If we want to paste to the part's original track...
+ if(!toTrack)
+ {
+ // Make sure the track exists (has not been deleted).
+ if((i->cp->track()->isMidiTrack() && song->midis()->find(i->cp->track()) != song->midis()->end()) ||
+ (i->cp->track()->type() == Track::WAVE && song->waves()->find(i->cp->track()) != song->waves()->end()))
+ track = i->cp->track();
+ }
+ // This makes a clone, chains the part, and increases ref counts.
+ npart = track->newPart((Part*)i->cp, true);
+ break;
+ }
+ }
+ }
+ }
+ //else if(tag == "isclone") // Ignore
+ // clone = xml.s2().toInt();
+ break;
+ case Xml::TagEnd:
+ if (tag == "part")
+ return npart;
+ default:
+ break;
+ }
+ }
+ return npart;
+}
+*/
+
+//---------------------------------------------------------
+// paste
+// paste part to current selected track at cpos
+//---------------------------------------------------------
+
+//void PartCanvas::paste()
+void PartCanvas::paste(bool clone, bool toTrack, bool doInsert)
+{
+ Track* track = 0;
+
+ if (doInsert) // logic depends on keeping track of newly selected tracks
+ deselectAll();
+
+
+ // If we want to paste to a selected track...
+ if(toTrack)
+ {
+ TrackList* tl = song->tracks();
+ for (iTrack i = tl->begin(); i != tl->end(); ++i) {
+ if ((*i)->selected()) {
+ if (track) {
+ QMessageBox::critical(this, QString("MusE"),
+ tr("Cannot paste: multiple tracks selected"));
+ return;
+ }
+ else
+ track = *i;
+ }
+ }
+ if (track == 0) {
+ QMessageBox::critical(this, QString("MusE"),
+ tr("Cannot paste: no track selected"));
+ return;
+ }
+ }
+
+ QClipboard* cb = QApplication::clipboard();
+ QMimeSource* ms = cb->data(QClipboard::Clipboard);
+
+ bool midiPart = false;
+ bool wavePart = false;
+
+ // If we want to paste to a selected track...
+ if(toTrack)
+ {
+ for (int i = 0; const char* format = ms->format(i); ++i) {
+ format = ms->format(i);
+ if (strcmp(format, "text/midipartlist") == 0) {
+ if (!track->isMidiTrack()) {
+ QMessageBox::critical(this, QString("MusE"),
+ tr("Can only paste to midi/drum track"));
+ return;
+ }
+ midiPart = true;
+ }
+ else if (strcmp(format, "text/wavepartlist") == 0) {
+ if (track->type() != Track::WAVE) {
+ QMessageBox::critical(this, QString("MusE"),
+ tr("Can only paste to wave track"));
+ return;
+ }
+ wavePart = true;
+ }
+ // Added by T356. Support mixed .mpt files.
+ else if (strcmp(format, "text/mixedpartlist") == 0) {
+ if (!track->isMidiTrack() && track->type() != Track::WAVE) {
+ QMessageBox::critical(this, QString("MusE"),
+ tr("Can only paste to midi or wave track"));
+ return;
+ }
+ midiPart = true;
+ wavePart = true;
+ }
+ }
+
+ if (!(midiPart || wavePart)) {
+ QMessageBox::critical(this, QString("MusE"),
+ tr("Cannot paste: wrong data type"));
+ return;
+ }
+ }
+
+ QString subtype = 0;
+ QString txt = cb->text(subtype);
+ int endPos=0;
+ int startPos=song->vcpos();
+ if (!txt.isEmpty())
+ {
+ song->startUndo();
+ endPos=pasteAt(txt, track, startPos, clone, toTrack);
+ Pos p(endPos, true);
+ song->setPos(0, p);
+ if (!doInsert)
+ song->endUndo(SC_PART_INSERTED);
+
+ }
+
+ if (doInsert) {
+ int offset = endPos-startPos;
+ movePartsTotheRight(startPos, offset);
+ song->endUndo(SC_PART_INSERTED);
+ }
+ }
+
+//---------------------------------------------------------
+// movePartsToTheRight
+//---------------------------------------------------------
+void PartCanvas::movePartsTotheRight(int startTicks, int length)
+{
+ // all parts that start after the pasted parts will be moved the entire length of the pasted parts
+ for (iCItem i = items.begin(); i != items.end(); ++i) {
+ if (!i->second->isSelected()) {
+ Part* part = i->second->part();
+ if (part->tick() >= startTicks) {
+ //void Audio::msgChangePart(Part* oldPart, Part* newPart, bool doUndoFlag, bool doCtrls, bool doClones)
+ Part *newPart = part->clone();
+ newPart->setTick(newPart->tick()+length);
+ if (part->track()->type() == Track::WAVE) {
+ audio->msgChangePart((WavePart*)part,(WavePart*)newPart,false,false,false);
+ } else {
+ audio->msgChangePart(part,newPart,false,false,false);
+ }
+
+ }
+ }
+ }
+ // perhaps ask if markers should be moved?
+ MarkerList *markerlist = song->marker();
+ for(iMarker i = markerlist->begin(); i != markerlist->end(); ++i)
+ {
+ Marker* m = &i->second;
+ if (m->tick() >= startTicks) {
+ Marker *oldMarker = new Marker();
+ *oldMarker = *m;
+ m->setTick(m->tick()+length);
+ song->undoOp(UndoOp::ModifyMarker,oldMarker, m);
+ }
+ }
+}
+//---------------------------------------------------------
+// startDrag
+//---------------------------------------------------------
+
+void PartCanvas::startDrag(CItem* item, DragType t)
+ {
+ //printf("PartCanvas::startDrag(CItem* item, DragType t)\n");
+ NPart* p = (NPart*)(item);
+ Part* part = p->part();
+
+ //---------------------------------------------------
+ // write part as XML into tmp file
+ //---------------------------------------------------
+
+ FILE* tmp = tmpfile();
+ if (tmp == 0) {
+ fprintf(stderr, "PartCanvas::startDrag() fopen failed: %s\n",
+ strerror(errno));
+ return;
+ }
+ Xml xml(tmp);
+ int level = 0;
+ part->write(level, xml);
+
+ //---------------------------------------------------
+ // read tmp file into QTextDrag Object
+ //---------------------------------------------------
+
+ fflush(tmp);
+ struct stat f_stat;
+ if (fstat(fileno(tmp), &f_stat) == -1) {
+ fprintf(stderr, "PartCanvas::startDrag fstat failed:<%s>\n",
+ strerror(errno));
+ fclose(tmp);
+ return;
+ }
+ int n = f_stat.st_size + 1;
+ char* fbuf = (char*)mmap(0, n, PROT_READ|PROT_WRITE,
+ MAP_PRIVATE, fileno(tmp), 0);
+ fbuf[n] = 0;
+ Q3TextDrag* drag = new Q3TextDrag(QString(fbuf), this);
+ drag->setSubtype("partlist");
+ if (t == MOVE_COPY || t == MOVE_CLONE)
+ drag->dragCopy();
+ else
+ drag->dragMove();
+ munmap(fbuf, n);
+ fclose(tmp);
+ }
+
+//---------------------------------------------------------
+// dragEnterEvent
+//---------------------------------------------------------
+
+void PartCanvas::dragEnterEvent(QDragEnterEvent* event)
+ {
+ event->accept(Q3TextDrag::canDecode(event));
+ }
+
+//---------------------------------------------------------
+// dragMoveEvent
+//---------------------------------------------------------
+
+void PartCanvas::dragMoveEvent(QDragMoveEvent*)
+ {
+// printf("drag move %x\n", this);
+ }
+
+//---------------------------------------------------------
+// dragLeaveEvent
+//---------------------------------------------------------
+
+void PartCanvas::dragLeaveEvent(QDragLeaveEvent*)
+ {
+// printf("drag leave\n");
+ }
+
+//---------------------------------------------------------
+// dropEvent
+//---------------------------------------------------------
+
+void PartCanvas::viewDropEvent(QDropEvent* event)
+ {
+ //printf("void PartCanvas::viewDropEvent(QDropEvent* event)\n");
+ if (event->source() == this) {
+ printf("no local DROP\n");
+ return;
+ }
+ int type = 0; // 0 = unknown, 1 = partlist, 2 = uri-list
+ QString text;
+ for (int i = 0; ; ++i) {
+ const char* p= event->format(i);
+ if (p == 0)
+ break;
+ if (strncmp(p, "text/partlist", 13) == 0) {
+ type = 1;
+ break;
+ }
+ else if (strcmp(p, "text/uri-list") == 0) {
+ type = 2;
+ break;
+ }
+ else {
+ if (debugMsg)
+ printf("unknown drop format <%s>\n", p);
+ }
+ }
+ if (type == 0)
+ return;
+
+ // Make a backup of the current clone list, to retain any 'copy' items,
+ // so that pasting works properly after.
+ CloneList copyCloneList = cloneList;
+ // Clear the clone list to prevent any dangerous associations with
+ // current non-original parts.
+ cloneList.clear();
+
+ if (Q3TextDrag::decode(event, text)) {
+ if (type == 1) {
+ int x = sigmap.raster(event->pos().x(), *_raster);
+ if (x < 0)
+ x = 0;
+ unsigned trackNo = y2pitch(event->pos().y());
+ Track* track = 0;
+ if (trackNo < tracks->size())
+ track = tracks->index(trackNo);
+ if (track) {
+ song->startUndo();
+ pasteAt(text, track, x);
+ song->endUndo(SC_PART_INSERTED);
+ }
+ }
+ else if (type == 2) {
+ text = text.stripWhiteSpace();
+ if (text.endsWith(".wav",false) || text.endsWith(".ogg",false) || text.endsWith(".mpt", false) )
+ {
+ int x = sigmap.raster(event->pos().x(), *_raster);
+ if (x < 0)
+ x = 0;
+ unsigned trackNo = y2pitch(event->pos().y());
+ Track* track = 0;
+ if (trackNo < tracks->size())
+ track = tracks->index(trackNo);
+ if (track)
+ {
+ Q3Url url(text);
+ QString newPath = url.path();
+ if (track->type() == Track::WAVE && (text.endsWith(".wav", false) || (text.endsWith(".ogg", false))))
+ {
+ unsigned tick = x;
+ muse->importWaveToTrack(newPath, tick, track);
+ }
+ // Changed by T356. Support mixed .mpt files.
+ //else if ((track->type() == Track::MIDI || track->type() == Track::DRUM) && text.endsWith(".mpt", false))
+ else if ((track->isMidiTrack() || track->type() == Track::WAVE) && text.endsWith(".mpt", false))
+ {
+ unsigned tick = x;
+ muse->importPartToTrack(newPath, tick, track);
+ }
+ }
+ }
+ else if(text.endsWith(".med",false))
+ {
+ Q3Url url(text);
+ emit dropSongFile(url.path());
+ }
+ else if(text.endsWith(".mid",false))
+ {
+ Q3Url url(text);
+ emit dropMidiFile(url.path());
+ }
+ else
+ {
+ printf("dropped... something... no hable...\n");
+ }
+ }
+ }
+ // Restore backup of the clone list, to retain any 'copy' items,
+ // so that pasting works properly after.
+ cloneList.clear();
+ cloneList = copyCloneList;
+ }
+
+//---------------------------------------------------------
+// drawCanvas
+//---------------------------------------------------------
+
+void PartCanvas::drawCanvas(QPainter& p, const QRect& rect)
+{
+ int x = rect.x();
+ int y = rect.y();
+ int w = rect.width();
+ int h = rect.height();
+
+ //////////
+ // GRID //
+ //////////
+ QColor baseColor(config.partCanvasBg.light(104));
+ p.setPen(baseColor);
+
+ //--------------------------------
+ // vertical lines
+ //-------------------------------
+ //printf("raster=%d\n", *_raster);
+ if (config.canvasShowGrid) {
+ int bar, beat;
+ unsigned tick;
+
+ sigmap.tickValues(x, &bar, &beat, &tick);
+ for (;;) {
+ int xt = sigmap.bar2tick(bar++, 0, 0);
+ if (xt >= x + w)
+ break;
+ if (!((bar-1) % 4))
+ p.setPen(baseColor.dark(115));
+ else
+ p.setPen(baseColor);
+ p.drawLine(xt, y, xt, y+h);
+
+ // append
+ int noDivisors=0;
+ if (*_raster == config.division *2) // 1/2
+ noDivisors=2;
+ else if (*_raster== config.division) // 1/4
+ noDivisors=4;
+ else if (*_raster==config.division/2) // 1/8
+ noDivisors=8;
+ else if (*_raster==config.division/4) // 1/16
+ noDivisors=16;
+ else if (*_raster==config.division/8) // 1/16
+ noDivisors=32;
+ else if (*_raster==config.division/16) // 1/16
+ noDivisors=64;
+
+ int r = *_raster;
+ int rr = rmapx(r);
+ if (*_raster > 1) {
+ while (rr < 4) {
+ r *= 2;
+ rr = rmapx(r);
+ noDivisors=noDivisors/2;
+ }
+ p.setPen(baseColor);
+ for (int t=1;t< noDivisors;t++)
+ p.drawLine(xt+r*t, y, xt+r*t, y+h);
+ }
+ }
+ }
+ //--------------------------------
+ // horizontal lines
+ //--------------------------------
+
+ TrackList* tl = song->tracks();
+ int yy = 0;
+ for (iTrack it = tl->begin(); it != tl->end(); ++it) {
+ if (yy > y + h)
+ break;
+ Track* track = *it;
+ if (/*config.canvasShowGrid ||*/ !track->isMidiTrack()) {
+ p.setPen(baseColor.dark(130));
+ p.drawLine(x, yy, x + w, yy);
+ p.setPen(baseColor);
+ }
+ if (!track->isMidiTrack() && (track->type() != Track::WAVE)) {
+ QRect r = rect & QRect(x, yy, w, track->height());
+ drawAudioTrack(p, r, (AudioTrack*)track);
+ p.setPen(baseColor);
+ }
+ if (!track->isMidiTrack()) { // draw automation
+ QRect r = rect & QRect(x, yy, w, track->height());
+ drawAutomation(p, r, (AudioTrack*)track);
+ p.setPen(baseColor);
+
+ }
+ yy += track->height();
+ }
+}
+
+//---------------------------------------------------------
+// drawAudioTrack
+//---------------------------------------------------------
+
+void PartCanvas::drawAudioTrack(QPainter& p, const QRect& r, AudioTrack *t)
+{
+ p.setPen(QPen(Qt::black, 2, Qt::SolidLine));
+ p.setBrush(Qt::gray);
+ p.drawRect(r);
+}
+
+//---------------------------------------------------------
+// drawAutomation
+//---------------------------------------------------------
+
+void PartCanvas::drawAutomation(QPainter& p, const QRect& r, AudioTrack *t)
+{
+// printf("drawAudioTrack %d x %d y %d w %d h %d\n",t, r.x(), r.y(), r.width(), r.height());
+ //int v2=r.x()+r.width();
+ //printf("v2=%d mapx=%d rmapx=%d mapxdev=%d rmapxdev=%d\n",v2, mapx(v2),rmapx(v2),mapxDev(v2),rmapxDev(v2));
+ return;
+
+ p.setPen(QPen(Qt::black, 2, Qt::SolidLine));
+ int height=r.bottom()-r.top()-4; // limit height
+
+ CtrlListList* cll = t->controller();
+ QColor cols[10];
+ cols[0]=Qt::white;
+ cols[1]=Qt::red;
+ cols[2]=Qt::yellow;
+ cols[3]=Qt::black;
+ cols[4]=Qt::blue;
+ int colIndex=0;
+ bool firstRun=true;
+ for(CtrlListList::iterator icll =cll->begin();icll!=cll->end();++icll)
+ {
+ //iCtrlList *icl = icll->second;
+ CtrlList *cl = icll->second;
+ double prevVal;
+ iCtrl ic=cl->begin();
+ p.setPen(QPen(cols[colIndex++],1,Qt::SolidLine));
+
+ if (ic!=cl->end()) { // if there are no automation values we don't draw at all
+ CtrlVal cvFirst = ic->second;
+ ic++;
+ int prevPos=cvFirst.frame;
+ prevVal = cvFirst.val;
+ if (cl->id() == AC_VOLUME ) { // use db scale for volume
+ prevVal = (20.0*log10(cvFirst.val)+60) / 70.0; // represent volume between 0 and 1
+ if (prevVal < 0) prevVal = 0.0;
+ }
+ else {
+ // we need to set curVal between 0 and 1
+ double min, max;
+ cl->range(&min,&max);
+ prevVal = (prevVal- min)/(max-min);
+ }
+ for (; ic !=cl->end(); ++ic)
+ {
+ CtrlVal cv = ic->second;
+ double nextVal = cv.val; // was curVal
+ if (cl->id() == AC_VOLUME ) { // use db scale for volume
+ nextVal = (20.0*log10(cv.val)+60) / 70.0; // represent volume between 0 and 1
+ if (nextVal < 0) nextVal = 0.0;
+ }
+ else {
+ // we need to set curVal between 0 and 1
+ double min, max;
+ cl->range(&min,&max);
+ nextVal = (nextVal- min)/(max-min);
+ }
+ //printf("volume automation event %d %f %f %d\n",cv.frame,cv.val, tempomap.frame2tick(cv.frame));
+ //p.drawLine(r.x(),(r.bottom()-2)-lastVal*height,r.x()+r.width(),(r.bottom()-2)-curVal*height); // debuggingtest
+ int leftX=tempomap.frame2tick(prevPos);
+ if (firstRun && leftX>r.x()) {
+ printf("first run\n");
+ leftX=r.x();
+ }
+
+ printf("inner draw\n");
+ p.drawLine(leftX,(r.bottom()-2)-prevVal*height,tempomap.frame2tick(cv.frame),(r.bottom()-2)-prevVal*height);
+ firstRun=false;
+ //printf("draw line: %d %f %d %f\n",tempomap.frame2tick(lastPos),r.bottom()-lastVal*height,tempomap.frame2tick(cv.frame),r.bottom()-curVal*height);
+ prevPos=cv.frame;
+ prevVal=nextVal;
+ }
+ printf("outer draw %f\n", cvFirst.val);
+ p.drawLine(tempomap.frame2tick(prevPos),(r.bottom()-2)-prevVal*height,tempomap.frame2tick(prevPos)+r.width(),(r.bottom()-2)-prevVal*height);
+ //printf("draw last line: %d %f %d %f\n",tempomap.frame2tick(lastPos),r.bottom()-lastVal*height,150000,r.bottom()-lastVal*height);
+ }
+// if (height >100) {
+// p.drawText(tempomap.frame2tick(0)+1000,40,"FOOO");
+// printf("drawText %s\n", cl->name().latin1());
+// }
+ }
+}
+
+
+void PartCanvas::controllerChanged(Track *t)
+{
+ redraw();
+}
diff --git a/muse2/muse/arranger/pcanvas.h b/muse2/muse/arranger/pcanvas.h
new file mode 100644
index 00000000..b8f133fe
--- /dev/null
+++ b/muse2/muse/arranger/pcanvas.h
@@ -0,0 +1,139 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: pcanvas.h,v 1.11.2.4 2009/05/24 21:43:44 terminator356 Exp $
+// (C) Copyright 1999 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __PCANVAS_H__
+#define __PCANVAS_H__
+
+#include "song.h"
+#include "canvas.h"
+#include "trackautomationview.h"
+//Added by qt3to4:
+#include <QDragMoveEvent>
+#include <QDropEvent>
+#include <QDragLeaveEvent>
+#include <QMouseEvent>
+#include <Q3PopupMenu>
+#include <QKeyEvent>
+#include <QEvent>
+#include <QDragEnterEvent>
+#define beats 4
+
+//---------------------------------------------------------
+// NPart
+// ''visual'' Part
+// wraps Parts with additional information needed
+// for displaying
+//---------------------------------------------------------
+
+class NPart : public CItem {
+ public:
+ NPart(Part* e);
+ const QString name() const { return part()->name(); }
+ void setName(const QString& s) { part()->setName(s); }
+ Track* track() const { return part()->track(); }
+ };
+
+class QLineEdit;
+class MidiEditor;
+class Q3PopupMenu;
+class Xml;
+
+//---------------------------------------------------------
+// PartCanvas
+//---------------------------------------------------------
+
+class PartCanvas : public Canvas {
+ int* _raster;
+ TrackList* tracks;
+
+ Part* resizePart;
+ QLineEdit* lineEditor;
+ NPart* editPart;
+ int curColorIndex;
+ bool editMode;
+
+ std::vector<TrackAutomationView*> automationViews;
+ Q_OBJECT
+ virtual void keyPress(QKeyEvent*);
+ virtual void mousePress(QMouseEvent*);
+ virtual void mouseMove(const QPoint&);
+ virtual void mouseRelease(const QPoint&);
+ virtual void viewMouseDoubleClickEvent(QMouseEvent*);
+ virtual void leaveEvent(QEvent*e);
+ virtual void drawItem(QPainter&, const CItem*, const QRect&);
+ virtual void drawMoving(QPainter&, const CItem*, const QRect&);
+ virtual void updateSelection();
+ virtual QPoint raster(const QPoint&) const;
+ virtual int y2pitch(int y) const;
+ virtual int pitch2y(int p) const;
+
+ virtual void moveCanvasItems(CItemList&, int, int, DragType, int*);
+ // Changed by T356.
+ //virtual bool moveItem(CItem*, const QPoint&, DragType, int*);
+ virtual bool moveItem(CItem*, const QPoint&, DragType);
+ virtual CItem* newItem(const QPoint&, int);
+ virtual void resizeItem(CItem*,bool);
+ virtual void newItem(CItem*,bool);
+ virtual bool deleteItem(CItem*);
+ virtual void startUndo(DragType);
+
+ virtual void endUndo(DragType, int);
+ virtual void startDrag(CItem*, DragType);
+ virtual void dragEnterEvent(QDragEnterEvent*);
+ virtual void dragMoveEvent(QDragMoveEvent*);
+ virtual void dragLeaveEvent(QDragLeaveEvent*);
+ virtual void viewDropEvent(QDropEvent*);
+
+ virtual Q3PopupMenu* genItemPopup(CItem*);
+ virtual void itemPopup(CItem*, int, const QPoint&);
+
+ void glueItem(CItem* item);
+ void splitItem(CItem* item, const QPoint&);
+
+ void copy(PartList*);
+ void paste(bool clone = false, bool toTrack = true, bool doInsert=false);
+ int pasteAt(const QString&, Track*, int, bool clone = false, bool toTrack = true);
+ void movePartsTotheRight(int startTick, int length);
+ //Part* readClone(Xml&, Track*, bool toTrack = true);
+ void drawWavePart(QPainter&, const QRect&, WavePart*, const QRect&);
+ Track* y2Track(int) const;
+ void drawAudioTrack(QPainter& p, const QRect& r, AudioTrack* track);
+ void drawAutomation(QPainter& p, const QRect& r, AudioTrack* track);
+
+
+ protected:
+ virtual void drawCanvas(QPainter&, const QRect&);
+
+ signals:
+ void timeChanged(unsigned);
+ void tracklistChanged();
+ void dclickPart(Track*);
+ void selectionChanged();
+ void dropSongFile(const QString&);
+ void dropMidiFile(const QString&);
+ void setUsedTool(int);
+ void trackChanged(Track*);
+ void selectTrackAbove();
+ void selectTrackBelow();
+
+ void startEditor(PartList*, int);
+
+ private slots:
+ void returnPressed();
+
+ public:
+ enum { CMD_CUT_PART, CMD_COPY_PART, CMD_PASTE_PART, CMD_PASTE_CLONE_PART, CMD_PASTE_PART_TO_TRACK, CMD_PASTE_CLONE_PART_TO_TRACK,
+ CMD_INSERT_PART, CMD_INSERT_EMPTYMEAS };
+
+ PartCanvas(int* raster, QWidget* parent, int, int);
+ void partsChanged();
+ void cmd(int);
+ void controllerChanged(Track *t);
+ public slots:
+ void redirKeypress(QKeyEvent* e) { keyPress(e); }
+ };
+#endif
diff --git a/muse2/muse/arranger/tlist.cpp b/muse2/muse/arranger/tlist.cpp
new file mode 100644
index 00000000..618dc2e6
--- /dev/null
+++ b/muse2/muse/arranger/tlist.cpp
@@ -0,0 +1,1555 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: tlist.cpp,v 1.31.2.31 2009/12/15 03:39:58 terminator356 Exp $
+// (C) Copyright 1999 Werner Schweer (ws@seh.de)
+//=========================================================
+
+//#include "config.h"
+
+#include <cmath>
+
+#include <qpainter.h>
+#include <qlineedit.h>
+#include <q3popupmenu.h>
+#include <qmessagebox.h>
+#include <qscrollbar.h>
+#include <qtimer.h>
+#include <qfileinfo.h>
+//Added by qt3to4:
+#include <QKeyEvent>
+#include <QPixmap>
+#include <QResizeEvent>
+#include <QMouseEvent>
+#include <QPaintEvent>
+#include <QWheelEvent>
+
+#include "globals.h"
+#include "icons.h"
+#include "scrollscale.h"
+#include "tlist.h"
+#include "xml.h"
+#include "mididev.h"
+#include "midiport.h"
+#include "midiseq.h"
+#include "comment.h"
+#include "track.h"
+#include "song.h"
+#include "header.h"
+#include "node.h"
+#include "audio.h"
+#include "instruments/minstrument.h"
+#include "app.h"
+#include "gconfig.h"
+#include "event.h"
+#include "midiedit/drummap.h"
+#include "synth.h"
+#include "config.h"
+
+#ifdef DSSI_SUPPORT
+#include "dssihost.h"
+#endif
+
+extern Q3PopupMenu* populateAddSynth(QWidget* parent, QObject* obj = 0, const char* slot = 0);
+
+static const int MIN_TRACKHEIGHT = 20;
+static const int WHEEL_DELTA = 120;
+
+//---------------------------------------------------------
+// THeaderTip::maybeTip
+//---------------------------------------------------------
+
+void THeaderTip::maybeTip(const QPoint &pos)
+ {
+#if 0 //ddskrjo
+ Header* w = (Header*)parentWidget();
+ int section = w->sectionAt(pos.x());
+ if (section == -1)
+ return;
+ QRect r(w->sectionPos(section), 0, w->sectionSize(section),
+ w->height());
+ QString p;
+ switch (section) {
+ case COL_RECORD: p = Q3Header::tr("Enable Recording"); break;
+ case COL_MUTE: p = Q3Header::tr("Mute/Off Indicator"); break;
+ case COL_SOLO: p = Q3Header::tr("Solo Indicator"); break;
+ case COL_CLASS: p = Q3Header::tr("Track Type"); break;
+ case COL_NAME: p = Q3Header::tr("Track Name"); break;
+ case COL_OCHANNEL: p = Q3Header::tr("Midi output channel number or audio channels"); break;
+ //case COL_OPORT: p = QHeader::tr("Output Port"); break;
+ case COL_OPORT: p = Q3Header::tr("Midi output port or synth midi port"); break;
+ case COL_TIMELOCK: p = Q3Header::tr("Time Lock"); break;
+// case COL_AUTOMATION: p = QHeader::tr("Automation parameter selection"); break;
+ default: return;
+ }
+ tip(r, p);
+#endif
+ }
+
+//---------------------------------------------------------
+// TList
+//---------------------------------------------------------
+
+TList::TList(Header* hdr, QWidget* parent, const char* name)
+ : QWidget(parent, name, Qt::WNoAutoErase | Qt::WResizeNoErase)
+ {
+ ypos = 0;
+ editMode = false;
+ setFocusPolicy(Qt::StrongFocus);
+ setMouseTracking(true);
+ header = hdr;
+
+ scroll = 0;
+ editTrack = 0;
+ editor = 0;
+ mode = NORMAL;
+
+ setBackgroundMode(Qt::NoBackground);
+ resizeFlag = false;
+
+ connect(song, SIGNAL(songChanged(int)), SLOT(songChanged(int)));
+ connect(muse, SIGNAL(configChanged()), SLOT(redraw()));
+ }
+
+//---------------------------------------------------------
+// songChanged
+//---------------------------------------------------------
+
+void TList::songChanged(int flags)
+ {
+ if (flags & (SC_MUTE | SC_SOLO | SC_RECFLAG | SC_TRACK_INSERTED
+ | SC_TRACK_REMOVED | SC_TRACK_MODIFIED | SC_ROUTE | SC_CHANNELS | SC_MIDI_CHANNEL))
+ redraw();
+ if (flags & (SC_TRACK_INSERTED | SC_TRACK_REMOVED | SC_TRACK_MODIFIED))
+ adjustScrollbar();
+ }
+
+//---------------------------------------------------------
+// drawCenteredPixmap
+// small helper function for "draw()" below
+//---------------------------------------------------------
+
+static void drawCenteredPixmap(QPainter& p, const QPixmap* pm, const QRect& r)
+ {
+ p.drawPixmap(r.x() + (r.width() - pm->width())/2, r.y() + (r.height() - pm->height())/2, *pm);
+ }
+
+//---------------------------------------------------------
+// paintEvent
+//---------------------------------------------------------
+
+void TList::paintEvent(QPaintEvent* ev)
+ {
+ if (!pmValid)
+ paint(ev->rect());
+ bitBlt(this, ev->rect().topLeft(), &pm, ev->rect(), true); //CopyROP, true); ddskrjo
+ }
+
+//---------------------------------------------------------
+// redraw
+//---------------------------------------------------------
+
+void TList::redraw()
+ {
+ paint(QRect(0, 0, pm.width(), pm.height()));
+ update();
+ }
+
+//---------------------------------------------------------
+// redraw
+//---------------------------------------------------------
+
+void TList::redraw(const QRect& r)
+ {
+ paint(r);
+ update(r);
+ }
+
+//---------------------------------------------------------
+// paint
+//---------------------------------------------------------
+
+void TList::paint(const QRect& r)
+ {
+ if (!isVisible())
+ return;
+ QRect rect(r);
+ if (!pmValid) {
+ pmValid = true;
+ rect = QRect(0, 0, pm.width(), pm.height());
+ }
+ QPainter p(&pm);
+
+ if (bgPixmap.isNull())
+ p.fillRect(rect, config.trackBg);
+ else
+ p.drawTiledPixmap(rect, bgPixmap, QPoint(rect.x(), ypos + rect.y()));
+ p.setClipRegion(rect);
+
+ //printf("TList::paint hasClipping:%d\n", p.hasClipping()); // Tested true.
+
+ int y = rect.y();
+ int w = rect.width();
+ int h = rect.height();
+ int x1 = rect.x();
+ int x2 = rect.x() + w;
+
+ //---------------------------------------------------
+ // Tracks
+ //---------------------------------------------------
+
+ TrackList* l = song->tracks();
+ int idx = 0;
+ int yy = -ypos;
+ for (iTrack i = l->begin(); i != l->end(); ++idx, yy += (*i)->height(), ++i) {
+ Track* track = *i;
+ Track::TrackType type = track->type();
+ int trackHeight = track->height();
+ if (yy >= (y + h))
+ break;
+ if ((yy + trackHeight) < y)
+ continue;
+ //
+ // clear one row
+ //
+ QColor bg;
+ if (track->selected()) {
+ bg = config.selectTrackBg;
+ p.setPen(config.selectTrackFg);
+ }
+ else {
+ switch(type) {
+ case Track::MIDI:
+ bg = config.midiTrackBg;
+ break;
+ case Track::DRUM:
+ bg = config.drumTrackBg;
+ break;
+ case Track::WAVE:
+ bg = config.waveTrackBg;
+ break;
+ case Track::AUDIO_OUTPUT:
+ bg = config.outputTrackBg;
+ break;
+ case Track::AUDIO_INPUT:
+ bg = config.inputTrackBg;
+ break;
+ case Track::AUDIO_GROUP:
+ bg = config.groupTrackBg;
+ break;
+ case Track::AUDIO_AUX:
+ bg = config.auxTrackBg;
+ break;
+ case Track::AUDIO_SOFTSYNTH:
+ bg = config.synthTrackBg;
+ break;
+ }
+ p.setPen(palette().active().text());
+ }
+ p.fillRect(x1, yy, w, trackHeight, bg);
+
+ int x = 0;
+ for (int index = 0; index < header->count(); ++index) {
+ int section = header->mapToSection(index);
+ int w = header->sectionSize(section);
+ QRect r = p.xForm(QRect(x+2, yy, w-4, trackHeight));
+
+ switch (section) {
+ case COL_RECORD:
+ if (track->canRecord()) {
+ drawCenteredPixmap(p,
+ track->recordFlag() ? record_on_Icon : record_off_Icon, r);
+ }
+ break;
+ case COL_CLASS:
+ {
+ const QPixmap* pm = 0;
+ switch(type) {
+ case Track::MIDI:
+ pm = addtrack_addmiditrackIcon;
+ break;
+ case Track::DRUM:
+ pm = addtrack_drumtrackIcon;
+ break;
+ case Track::WAVE:
+ pm = addtrack_wavetrackIcon;
+ break;
+ case Track::AUDIO_OUTPUT:
+ pm = addtrack_audiooutputIcon;
+ break;
+ case Track::AUDIO_INPUT:
+ pm = addtrack_audioinputIcon;
+ break;
+ case Track::AUDIO_GROUP:
+ pm = addtrack_audiogroupIcon;
+ break;
+ case Track::AUDIO_AUX:
+ pm = addtrack_auxsendIcon;
+ break;
+ case Track::AUDIO_SOFTSYNTH:
+ //pm = waveIcon;
+ pm = synthIcon;
+ break;
+ }
+ drawCenteredPixmap(p, pm, r);
+ }
+ break;
+ case COL_MUTE:
+ if (track->off())
+ drawCenteredPixmap(p, offIcon, r);
+ else if (track->mute())
+ drawCenteredPixmap(p, editmuteSIcon, r);
+ break;
+ case COL_SOLO:
+ if(track->solo() && track->internalSolo())
+ drawCenteredPixmap(p, blacksqcheckIcon, r);
+ else
+ if(track->internalSolo())
+ drawCenteredPixmap(p, blacksquareIcon, r);
+ else
+ if (track->solo())
+ drawCenteredPixmap(p, bluedotIcon, r);
+ break;
+ case COL_TIMELOCK:
+ if (track->isMidiTrack()
+ && track->locked()) {
+ drawCenteredPixmap(p, lockIcon, r);
+ }
+ break;
+ case COL_NAME:
+ p.drawText(r, Qt::AlignVCenter|Qt::AlignLeft, track->name());
+ break;
+ case COL_OCHANNEL:
+ {
+ QString s;
+ int n;
+ if (track->isMidiTrack()) {
+ n = ((MidiTrack*)track)->outChannel() + 1;
+ }
+ else {
+ // show number of ports
+ n = ((WaveTrack*)track)->channels();
+ }
+ s.setNum(n);
+ p.drawText(r, Qt::AlignVCenter|Qt::AlignHCenter, s);
+ }
+ break;
+ case COL_OPORT:
+ {
+ QString s;
+ if (track->isMidiTrack()) {
+ int outport = ((MidiTrack*)track)->outPort();
+ s.sprintf("%d:%s", outport+1, midiPorts[outport].portname().latin1());
+ }
+ // Added by Tim. p3.3.9
+
+ else
+ if(track->type() == Track::AUDIO_SOFTSYNTH)
+ {
+ MidiDevice* md = dynamic_cast<MidiDevice*>(track);
+ if(md)
+ {
+ int outport = md->midiPort();
+ if((outport >= 0) && (outport < MIDI_PORTS))
+ s.sprintf("%d:%s", outport+1, midiPorts[outport].portname().latin1());
+ else
+ s = tr("<none>");
+ }
+ }
+
+ p.drawText(r, Qt::AlignVCenter|Qt::AlignLeft, s);
+ }
+ break;
+// case COL_AUTOMATION:
+// {
+// QString s="-";
+//
+// if (!track->isMidiTrack()) {
+// int count = ((AudioTrack*)track)->controller()->size();
+// s.sprintf("%d", count);
+// }
+//
+//
+// p.drawText(r, Qt::AlignVCenter|Qt::AlignLeft, s);
+// }
+// break;
+ default:
+ break;
+ }
+ x += header->sectionSize(section);
+ }
+ p.setPen(Qt::gray);
+ p.drawLine(x1, yy, x2, yy);
+ }
+ p.drawLine(x1, yy, x2, yy);
+
+ if (mode == DRAG) {
+ int yy = curY - dragYoff;
+ p.setPen(Qt::green);
+ p.drawLine(x1, yy, x2, yy);
+ p.drawLine(x1, yy + dragHeight, x2, yy+dragHeight);
+ }
+
+ //---------------------------------------------------
+ // draw vertical lines
+ //---------------------------------------------------
+
+ int n = header->count();
+ int xpos = 0;
+ p.setPen(Qt::gray);
+ for (int index = 0; index < n; index++) {
+ int section = header->mapToSection(index);
+ xpos += header->sectionSize(section);
+ p.drawLine(xpos, 0, xpos, height());
+ }
+ }
+
+//---------------------------------------------------------
+// returnPressed
+//---------------------------------------------------------
+
+void TList::returnPressed()
+ {
+ editor->hide();
+ if (editor->text() != editTrack->name()) {
+ TrackList* tl = song->tracks();
+ for (iTrack i = tl->begin(); i != tl->end(); ++i) {
+ if ((*i)->name() == editor->text()) {
+ QMessageBox::critical(this,
+ tr("MusE: bad trackname"),
+ tr("please choose a unique track name"),
+ QMessageBox::Ok,
+ Qt::NoButton,
+ Qt::NoButton);
+ editTrack = 0;
+ setFocus();
+ return;
+ }
+ }
+ //Track* track = editTrack->clone();
+ Track* track = editTrack->clone(false);
+ editTrack->setName(editor->text());
+ audio->msgChangeTrack(track, editTrack);
+ }
+ editTrack = 0;
+ editMode = false;
+ setFocus();
+ }
+
+//---------------------------------------------------------
+// adjustScrollbar
+//---------------------------------------------------------
+
+void TList::adjustScrollbar()
+ {
+ int h = 0;
+ TrackList* l = song->tracks();
+ for (iTrack it = l->begin(); it != l->end(); ++it)
+ h += (*it)->height();
+ scroll->setMaxValue(h +30);
+ redraw();
+ }
+
+//---------------------------------------------------------
+// y2Track
+//---------------------------------------------------------
+
+Track* TList::y2Track(int y) const
+ {
+ TrackList* l = song->tracks();
+ int ty = 0;
+ for (iTrack it = l->begin(); it != l->end(); ++it) {
+ int h = (*it)->height();
+ if (y >= ty && y < ty + h)
+ return *it;
+ ty += h;
+ }
+ return 0;
+ }
+
+//---------------------------------------------------------
+// viewMouseDoubleClickEvent
+//---------------------------------------------------------
+
+void TList::mouseDoubleClickEvent(QMouseEvent* ev)
+ {
+ int x = ev->x();
+ int section = header->sectionAt(x);
+ if (section == -1)
+ return;
+
+ Track* t = y2Track(ev->y() + ypos);
+
+ if (t) {
+ int colx = header->sectionPos(section);
+ int colw = header->sectionSize(section);
+ int coly = t->y() - ypos;
+ int colh = t->height();
+
+ if (section == COL_NAME) {
+ editTrack = t;
+ if (editor == 0) {
+ editor = new QLineEdit(this);
+ /*connect(editor, SIGNAL(returnPressed()),
+ SLOT(returnPressed()));*/
+ editor->setFrame(true);
+ }
+ editor->setText(editTrack->name());
+ editor->end(false);
+ editor->setGeometry(colx, coly, colw, colh);
+ editMode = true;
+ editor->show();
+ }
+ else
+ mousePressEvent(ev);
+ }
+ }
+
+//---------------------------------------------------------
+// portsPopupMenu
+//---------------------------------------------------------
+
+void TList::portsPopupMenu(Track* t, int x, int y)
+ {
+ switch(t->type()) {
+ case Track::MIDI:
+ case Track::DRUM:
+ case Track::AUDIO_SOFTSYNTH:
+ {
+ MidiTrack* track = (MidiTrack*)t;
+
+ //QPopupMenu* p = midiPortsPopup(0);
+ MidiDevice* md = 0;
+ int port = -1;
+ if(t->type() == Track::AUDIO_SOFTSYNTH)
+ {
+ //MidiDevice* md = dynamic_cast<MidiDevice*>((SynthI*)t);
+ md = dynamic_cast<MidiDevice*>(t);
+ if(md)
+ port = md->midiPort();
+ }
+ else
+ port = track->outPort();
+
+ Q3PopupMenu* p = midiPortsPopup(0, port);
+ int n = p->exec(mapToGlobal(QPoint(x, y)), 0);
+ if (n != -1) {
+ // Changed by T356.
+ //track->setOutPort(n);
+ //audio->msgSetTrackOutPort(track, n);
+
+ //song->update();
+ if (t->type() == Track::DRUM) {
+ bool change = QMessageBox::question(this, tr("Update drummap?"),
+ tr("Do you want to use same port for all instruments in the drummap?"),
+ tr("&Yes"), tr("&No"), QString::null, 0, 1);
+ audio->msgIdle(true);
+ if (!change)
+ {
+ // Delete all port controller events.
+ //audio->msgChangeAllPortDrumCtrlEvents(false);
+ song->changeAllPortDrumCtrlEvents(false);
+ track->setOutPort(n);
+
+ for (int i=0; i<DRUM_MAPSIZE; i++) //Remap all drum instruments to this port
+ drumMap[i].port = track->outPort();
+ // Add all port controller events.
+ //audio->msgChangeAllPortDrumCtrlEvents(true);
+ song->changeAllPortDrumCtrlEvents(true);
+ }
+ else
+ {
+ //audio->msgSetTrackOutPort(track, n);
+ track->setOutPortAndUpdate(n);
+ }
+ audio->msgIdle(false);
+ song->update();
+ }
+ else
+ if (t->type() == Track::AUDIO_SOFTSYNTH)
+ {
+ if(md != 0)
+ {
+ // Idling is already handled in msgSetMidiDevice.
+ //audio->msgIdle(true);
+
+ // Compiler complains if simple cast from Track to SynthI...
+ midiSeq->msgSetMidiDevice(&midiPorts[n], (midiPorts[n].device() == md) ? 0 : md);
+ muse->changeConfig(true); // save configuration file
+
+ //audio->msgIdle(false);
+ song->update();
+ }
+ }
+ else
+ {
+ audio->msgIdle(true);
+ //audio->msgSetTrackOutPort(track, n);
+ track->setOutPortAndUpdate(n);
+ audio->msgIdle(false);
+ song->update();
+ }
+ }
+ delete p;
+ }
+ break;
+
+ case Track::WAVE:
+ case Track::AUDIO_OUTPUT:
+ case Track::AUDIO_INPUT:
+ case Track::AUDIO_GROUP:
+ case Track::AUDIO_AUX: //TODO
+ break;
+ }
+ }
+
+//---------------------------------------------------------
+// oportPropertyPopupMenu
+//---------------------------------------------------------
+
+void TList::oportPropertyPopupMenu(Track* t, int x, int y)
+ {
+ // Added by Tim. p3.3.9
+ if(t->type() == Track::AUDIO_SOFTSYNTH)
+ {
+ SynthI* synth = (SynthI*)t;
+
+ Q3PopupMenu* p = new Q3PopupMenu(this);
+ p->setCheckable(true);
+ p->insertItem(tr("Show Gui"), 0);
+ printf("synth hasgui %d, gui visible %d\n",synth->hasGui(), synth->guiVisible());
+ p->setItemEnabled(0, synth->hasGui());
+ p->setItemChecked(0, synth->guiVisible());
+
+ #ifndef OSC_SUPPORT
+ #ifdef DSSI_SUPPORT
+ if(dynamic_cast<DssiSynthIF*>(synth->sif()))
+ {
+ printf("entering this wierd if statement\n");
+ p->setItemChecked(0, false);
+ p->setItemEnabled(0, false);
+ }
+ #endif
+ #endif
+
+ int n = p->exec(mapToGlobal(QPoint(x, y)), 0);
+ if (n == 0) {
+ bool show = !synth->guiVisible();
+ audio->msgShowInstrumentGui(synth, show);
+ }
+ delete p;
+ return;
+ }
+
+
+ if (t->type() != Track::MIDI && t->type() != Track::DRUM)
+ return;
+ int oPort = ((MidiTrack*)t)->outPort();
+ MidiPort* port = &midiPorts[oPort];
+
+ Q3PopupMenu* p = new Q3PopupMenu(this);
+ p->setCheckable(true);
+ p->insertItem(tr("Show Gui"), 0);
+
+ p->setItemEnabled(0, port->hasGui());
+ p->setItemChecked(0, port->guiVisible());
+
+ #ifndef OSC_SUPPORT
+ #ifdef DSSI_SUPPORT
+ MidiDevice* dev = port->device();
+ if(dev && dev->isSynti() && (dynamic_cast<DssiSynthIF*>(((SynthI*)dev)->sif())))
+ {
+ p->setItemChecked(0, false);
+ p->setItemEnabled(0, false);
+ }
+ #endif
+ #endif
+
+ int n = p->exec(mapToGlobal(QPoint(x, y)), 0);
+ if (n == 0) {
+ bool show = !port->guiVisible();
+ audio->msgShowInstrumentGui(port->instrument(), show);
+ }
+ delete p;
+
+ }
+
+//---------------------------------------------------------
+// tracklistChanged
+//---------------------------------------------------------
+
+void TList::tracklistChanged()
+ {
+ redraw();
+ }
+
+//---------------------------------------------------------
+// keyPressEvent
+//---------------------------------------------------------
+
+void TList::keyPressEvent(QKeyEvent* e)
+ {
+ if (editMode) {
+ // First time we get a keypress event when lineedit is open is on the return key:
+ returnPressed();
+ return;
+ }
+ emit keyPressExt(e); //redirect keypress events to main app
+ e->ignore();
+ /*
+ int key = e->key();
+ switch (key) {
+ case Key_Up:
+ moveSelection(-1);
+ break;
+ case Key_Down:
+ moveSelection(1);
+ break;
+ default:
+
+ break;
+ }
+ */
+ }
+
+//---------------------------------------------------------
+// moveSelection
+//---------------------------------------------------------
+
+void TList::moveSelection(int n)
+ {
+ TrackList* tracks = song->tracks();
+
+ // check for single selection
+ int nselect = 0;
+ for (iTrack t = tracks->begin(); t != tracks->end(); ++t)
+ if ((*t)->selected())
+ ++nselect;
+ if (nselect != 1)
+ return;
+ for (iTrack t = tracks->begin(); t != tracks->end(); ++t) {
+ iTrack s = t;
+ if ((*t)->selected()) {
+ if (n > 0) {
+ while (n--) {
+ ++t;
+ if (t == tracks->end()) {
+ --t;
+ break;
+ }
+ }
+ }
+ else {
+ while (n++ != 0) {
+ if (t == tracks->begin())
+ break;
+ --t;
+ }
+ }
+ (*s)->setSelected(false);
+ (*t)->setSelected(true);
+
+ // rec enable track if expected
+ TrackList recd = getRecEnabledTracks();
+ if (recd.size() == 1 && config.moveArmedCheckBox) { // one rec enabled track, move rec enabled with selection
+ song->setRecordFlag((Track*)recd.front(),false);
+ song->setRecordFlag((*t),true);
+ }
+
+ if (editTrack && editTrack != *t)
+ returnPressed();
+ redraw();
+ break;
+ }
+ }
+ emit selectionChanged();
+ }
+
+TrackList TList::getRecEnabledTracks()
+{
+ //printf("getRecEnabledTracks\n");
+ TrackList recEnabled;
+ TrackList* tracks = song->tracks();
+ for (iTrack t = tracks->begin(); t != tracks->end(); ++t) {
+ if ((*t)->recordFlag()) {
+ //printf("rec enabled track\n");
+ recEnabled.push_back(*t);
+ }
+ }
+ return recEnabled;
+}
+
+//---------------------------------------------------------
+// mousePressEvent
+//---------------------------------------------------------
+
+void TList::mousePressEvent(QMouseEvent* ev)
+ {
+ int x = ev->x();
+ int y = ev->y();
+ int button = ev->button();
+ bool shift = ev->state() & Qt::ShiftModifier;
+
+ Track* t = y2Track(y + ypos);
+
+ TrackColumn col = TrackColumn(header->sectionAt(x));
+ if (t == 0) {
+ if (button == Qt::RightButton) {
+ Q3PopupMenu* p = new Q3PopupMenu(this);
+ p->clear();
+ p->insertItem(*addtrack_addmiditrackIcon,
+ tr("Add Midi Track"), Track::MIDI, 0);
+ p->insertItem(*addtrack_drumtrackIcon,
+ tr("Add Drum Track"),Track::DRUM, 1);
+ p->insertItem(*addtrack_wavetrackIcon,
+ tr("Add Wave Track"), Track::WAVE, 2);
+ p->insertItem(*addtrack_audiooutputIcon,
+ tr("Add Output"), Track::AUDIO_OUTPUT, 3);
+ p->insertItem(*addtrack_audiogroupIcon,
+ tr("Add Group"), Track::AUDIO_GROUP, 4);
+ p->insertItem(*addtrack_audioinputIcon,
+ tr("Add Input"), Track::AUDIO_INPUT, 5);
+ p->insertItem(*addtrack_auxsendIcon,
+ tr("Add Aux Send"), Track::AUDIO_AUX, 6);
+
+ // Create a sub-menu and fill it with found synth types. Make p the owner.
+ Q3PopupMenu* synp = populateAddSynth(p);
+ // Add the 'Add Synth' sub-menu to the menu.
+ p->insertItem(*synthIcon, tr("Add Synth"), synp, Track::AUDIO_SOFTSYNTH);
+
+ // Show the menu
+ int n = p->exec(ev->globalPos(), 0);
+
+ // Valid click?
+ if((n >= 0) && ((Track::TrackType)n != Track::AUDIO_SOFTSYNTH))
+ {
+ // Synth sub-menu id?
+ if(n >= MENU_ADD_SYNTH_ID_BASE)
+ {
+ n -= MENU_ADD_SYNTH_ID_BASE;
+ //if(n < synthis.size())
+ // t = song->createSynthI(synthis[n]->baseName());
+ //if((n - MENU_ADD_SYNTH_ID_BASE) < (int)synthis.size())
+ if(n < (int)synthis.size())
+ {
+ //t = song->createSynthI(synp->text(n));
+ //t = song->createSynthI(synthis[n]->name());
+ t = song->createSynthI(synthis[n]->baseName(), synthis[n]->name());
+
+ if(t)
+ {
+ // Add instance last in midi device list.
+ for (int i = 0; i < MIDI_PORTS; ++i)
+ {
+ MidiPort* port = &midiPorts[i];
+ MidiDevice* dev = port->device();
+ if (dev==0)
+ {
+ midiSeq->msgSetMidiDevice(port, (SynthI*)t);
+ muse->changeConfig(true); // save configuration file
+ song->update();
+ break;
+ }
+ }
+ }
+ }
+ }
+ // Normal track.
+ else
+ t = song->addTrack((Track::TrackType)n);
+
+ if(t)
+ {
+ song->deselectTracks();
+ t->setSelected(true);
+
+ emit selectionChanged();
+ adjustScrollbar();
+ }
+ }
+
+ // Just delete p, and all its children will go too, right?
+ //delete synp;
+ delete p;
+ }
+ return;
+ }
+
+ TrackList* tracks = song->tracks();
+ dragYoff = y - (t->y() - ypos);
+ startY = y;
+
+ if (resizeFlag) {
+ mode = RESIZE;
+ int y = ev->y();
+ int ty = -ypos;
+ sTrack = 0;
+ for (iTrack it = tracks->begin(); it != tracks->end(); ++it, ++sTrack) {
+ int h = (*it)->height();
+ ty += h;
+ if (y >= (ty-2)) {
+
+ if ( (*it) == tracks->back() && y > ty ) {
+ //printf("tracks->back() && y > ty\n");
+ }
+ else if ( y > (ty+2) ) {
+ //printf(" y > (ty+2) \n");
+ }
+ else {
+ //printf("ogga ogga\n");
+
+ break;
+ }
+
+
+ //&& y < (ty))
+ // break;
+ }
+ }
+
+ return;
+ }
+ mode = START_DRAG;
+
+ switch (col) {
+ case COL_RECORD:
+ {
+ bool val = !(t->recordFlag());
+ if (!t->isMidiTrack()) {
+ if (t->type() == Track::AUDIO_OUTPUT) {
+ if (val && t->recordFlag() == false) {
+ muse->bounceToFile((AudioOutput*)t);
+ }
+ audio->msgSetRecord((AudioOutput*)t, val);
+ if (!((AudioOutput*)t)->recFile())
+ val = false;
+ else
+ return;
+ }
+ song->setRecordFlag(t, val);
+ }
+ else
+ song->setRecordFlag(t, val);
+ }
+ break;
+ case COL_NONE:
+ break;
+ case COL_CLASS:
+ if (t->isMidiTrack())
+ classesPopupMenu(t, x, t->y() - ypos);
+ break;
+ case COL_OPORT:
+ // Changed by Tim. p3.3.9
+ // Reverted.
+ if (button == Qt::LeftButton)
+ portsPopupMenu(t, x, t->y() - ypos);
+ else if (button == Qt::RightButton)
+ oportPropertyPopupMenu(t, x, t->y() - ypos);
+ //if(((button == QMouseEvent::LeftButton) && (t->type() == Track::AUDIO_SOFTSYNTH)) || (button == QMouseEvent::RightButton))
+ // oportPropertyPopupMenu(t, x, t->y() - ypos);
+ //else
+ //if(button == QMouseEvent::LeftButton)
+ // portsPopupMenu(t, x, t->y() - ypos);
+
+ break;
+ case COL_MUTE:
+ // p3.3.29
+ if ((button == Qt::RightButton) || (ev->state() & Qt::ControlModifier))
+ t->setOff(!t->off());
+ else
+ {
+ if (t->off())
+ t->setOff(false);
+ else
+ t->setMute(!t->mute());
+ }
+ song->update(SC_MUTE);
+ break;
+ case COL_SOLO:
+ audio->msgSetSolo(t, !t->solo());
+ song->update(SC_SOLO);
+ break;
+
+ case COL_NAME:
+ if (button == Qt::LeftButton) {
+ if (!shift) {
+ song->deselectTracks();
+ t->setSelected(true);
+
+ // rec enable track if expected
+ TrackList recd = getRecEnabledTracks();
+ if (recd.size() == 1 && config.moveArmedCheckBox) { // one rec enabled track, move rec enabled with selection
+ song->setRecordFlag((Track*)recd.front(),false);
+ song->setRecordFlag(t,true);
+ }
+ }
+ else
+ t->setSelected(!t->selected());
+ if (editTrack && editTrack != t)
+ returnPressed();
+ emit selectionChanged();
+ }
+ else if (button == Qt::RightButton) {
+ mode = NORMAL;
+ Q3PopupMenu* p = new Q3PopupMenu(this);
+ p->clear();
+ p->insertItem(QIcon(*automation_clear_dataIcon), tr("Delete Track"), 0); // ddskrjo
+ p->insertItem(QIcon(*track_commentIcon), tr("Track Comment"), 1);
+ int n = p->exec(ev->globalPos(), 0);
+ if (n != -1) {
+ switch (n) {
+ case 0: // delete track
+ song->removeTrack0(t);
+ audio->msgUpdateSoloStates();
+ break;
+
+ case 1: // show track comment
+ {
+ TrackComment* tc = new TrackComment(t, 0);
+ tc->show();
+ //QToolTip::add( this, "FOOOOOOOOOOOOO" );
+ }
+ break;
+
+ default:
+ printf("action %d\n", n);
+ break;
+ }
+
+ }
+ delete p;
+ }
+ break;
+
+ case COL_TIMELOCK:
+ t->setLocked(!t->locked());
+ break;
+
+ case COL_OCHANNEL:
+ {
+ int delta = 0;
+ if (button == Qt::RightButton)
+ delta = 1;
+ else if (button == Qt::MidButton)
+ delta = -1;
+ if (t->isMidiTrack())
+ {
+ MidiTrack* mt = dynamic_cast<MidiTrack*>(t);
+ if (mt == 0)
+ break;
+
+ int channel = mt->outChannel();
+ channel += delta;
+ if(channel >= MIDI_CHANNELS)
+ channel = MIDI_CHANNELS - 1;
+ if(channel < 0)
+ channel = 0;
+ //if (channel != ((MidiTrack*)t)->outChannel())
+ if (channel != mt->outChannel())
+ {
+ // Changed by T356.
+ //mt->setOutChannel(channel);
+ audio->msgIdle(true);
+ //audio->msgSetTrackOutChannel(mt, channel);
+ mt->setOutChanAndUpdate(channel);
+ audio->msgIdle(false);
+
+ /* --- I really don't like this, you can mess up the whole map "as easy as dell"
+ if (mt->type() == MidiTrack::DRUM) {//Change channel on all drum instruments
+ for (int i=0; i<DRUM_MAPSIZE; i++)
+ drumMap[i].channel = channel;
+ }*/
+
+ // may result in adding/removing mixer strip:
+ //song->update(-1);
+ //song->update(SC_CHANNELS);
+ song->update(SC_MIDI_CHANNEL);
+ }
+ }
+ else
+ {
+ if(t->type() != Track::AUDIO_SOFTSYNTH)
+ {
+ AudioTrack* at = dynamic_cast<AudioTrack*>(t);
+ if (at == 0)
+ break;
+
+ int n = t->channels() + delta;
+ if (n > MAX_CHANNELS)
+ n = MAX_CHANNELS;
+ else if (n < 1)
+ n = 1;
+ if (n != t->channels()) {
+ audio->msgSetChannels(at, n);
+ song->update(SC_CHANNELS);
+ }
+ }
+ }
+ }
+ break;
+ }
+ redraw();
+ }
+
+//---------------------------------------------------------
+// selectTrack
+//---------------------------------------------------------
+void TList::selectTrack(Track* tr)
+ {
+ song->deselectTracks();
+ tr->setSelected(true);
+
+
+ // rec enable track if expected
+ TrackList recd = getRecEnabledTracks();
+ if (recd.size() == 1 && config.moveArmedCheckBox) { // one rec enabled track, move rec enabled with selection
+ song->setRecordFlag((Track*)recd.front(),false);
+ song->setRecordFlag(tr,true);
+ }
+
+ // By T356. Force a redraw for wave tracks, since it does not seem to happen.
+ //if(!tr->isMidiTrack())
+ redraw();
+ emit selectionChanged();
+ }
+
+//---------------------------------------------------------
+// selectTrackAbove
+//---------------------------------------------------------
+void TList::selectTrackAbove()
+{
+ moveSelection(-1);
+}
+//---------------------------------------------------------
+// selectTrackBelow
+//---------------------------------------------------------
+void TList::selectTrackBelow()
+{
+ moveSelection(1);
+}
+
+//---------------------------------------------------------
+// mouseMoveEvent
+//---------------------------------------------------------
+
+void TList::mouseMoveEvent(QMouseEvent* ev)
+ {
+ if (ev->state() == 0) {
+ int y = ev->y();
+ int ty = -ypos;
+ TrackList* tracks = song->tracks();
+ iTrack it;
+ for (it = tracks->begin(); it != tracks->end(); ++it) {
+ int h = (*it)->height();
+ ty += h;
+ if (y >= (ty-2)) {
+ if ( (*it) == tracks->back() && y >= ty ) {
+ // outside last track don't change to splitVCursor
+ }
+ else if ( y > (ty+2) ) {
+ //printf(" y > (ty+2) \n");
+ }
+ else {
+ if (!resizeFlag) {
+ resizeFlag = true;
+ setCursor(QCursor(Qt::splitVCursor));
+ }
+ break;
+ }
+ }
+ }
+ if (it == tracks->end() && resizeFlag) {
+ setCursor(QCursor(Qt::arrowCursor));
+ resizeFlag = false;
+ }
+ return;
+ }
+ curY = ev->y();
+ int delta = curY - startY;
+ switch (mode) {
+ case START_DRAG:
+ if (delta < 0)
+ delta = -delta;
+ if (delta <= 2)
+ break;
+ {
+ Track* t = y2Track(startY + ypos);
+ if (t == 0)
+ mode = NORMAL;
+ else {
+ mode = DRAG;
+ dragHeight = t->height();
+ sTrack = song->tracks()->index(t);
+ setCursor(QCursor(Qt::sizeVerCursor));
+ redraw();
+ }
+ }
+ break;
+ case NORMAL:
+ break;
+ case DRAG:
+ redraw();
+ break;
+ case RESIZE:
+ {
+ if(sTrack >= 0 && sTrack < song->tracks()->size())
+ {
+ Track* t = song->tracks()->index(sTrack);
+ if(t)
+ {
+ int h = t->height() + delta;
+ startY = curY;
+ if (h < MIN_TRACKHEIGHT)
+ h = MIN_TRACKHEIGHT;
+ t->setHeight(h);
+ song->update(SC_TRACK_MODIFIED);
+ }
+ }
+ }
+ break;
+ }
+ }
+
+//---------------------------------------------------------
+// mouseReleaseEvent
+//---------------------------------------------------------
+
+void TList::mouseReleaseEvent(QMouseEvent* ev)
+ {
+ if (mode == DRAG) {
+ Track* t = y2Track(ev->y() + ypos);
+ if (t) {
+ int dTrack = song->tracks()->index(t);
+ audio->msgMoveTrack(sTrack, dTrack);
+ }
+ }
+ if (mode != NORMAL) {
+ mode = NORMAL;
+ setCursor(QCursor(Qt::arrowCursor));
+ redraw();
+ }
+ if (editTrack)
+ editor->setFocus();
+ adjustScrollbar();
+ }
+
+//---------------------------------------------------------
+// wheelEvent
+//---------------------------------------------------------
+
+void TList::wheelEvent(QWheelEvent* ev)
+ {
+ int x = ev->x();
+ int y = ev->y();
+ Track* t = y2Track(y + ypos);
+ if (t == 0) {
+ emit redirectWheelEvent(ev);
+ return;
+ }
+ TrackColumn col = TrackColumn(header->sectionAt(x));
+ int delta = ev->delta() / WHEEL_DELTA;
+ ev->accept();
+
+ switch (col) {
+ case COL_RECORD:
+ case COL_NONE:
+ case COL_CLASS:
+ case COL_NAME:
+ //case COL_AUTOMATION:
+ break;
+ case COL_MUTE:
+ // p3.3.29
+ if (ev->state() & Qt::ControlModifier)
+ t->setOff(!t->off());
+ else
+ {
+ if (t->off())
+ t->setOff(false);
+ else
+ t->setMute(!t->mute());
+ }
+ song->update(SC_MUTE);
+ break;
+
+ case COL_SOLO:
+ audio->msgSetSolo(t, !t->solo());
+ song->update(SC_SOLO);
+ break;
+
+ case COL_TIMELOCK:
+ t->setLocked(!t->locked());
+ break;
+
+ case COL_OPORT:
+ if (t->isMidiTrack()) {
+ MidiTrack* mt = (MidiTrack*)t;
+ int port = mt->outPort() + delta;
+
+ if (port >= MIDI_PORTS)
+ port = MIDI_PORTS-1;
+ else if (port < 0)
+ port = 0;
+ if (port != ((MidiTrack*)t)->outPort()) {
+ // Changed by T356.
+ //mt->setOutPort(port);
+ audio->msgIdle(true);
+ //audio->msgSetTrackOutPort(mt, port);
+ mt->setOutPortAndUpdate(port);
+ audio->msgIdle(false);
+
+ song->update(SC_ROUTE);
+ }
+ }
+ break;
+
+ case COL_OCHANNEL:
+ if (t->isMidiTrack()) {
+ MidiTrack* mt = (MidiTrack*)t;
+ int channel = mt->outChannel() + delta;
+
+ if (channel >= MIDI_CHANNELS)
+ channel = MIDI_CHANNELS-1;
+ else if (channel < 0)
+ channel = 0;
+ if (channel != ((MidiTrack*)t)->outChannel()) {
+ // Changed by T356.
+ //mt->setOutChannel(channel);
+ audio->msgIdle(true);
+ //audio->msgSetTrackOutChannel(mt, channel);
+ mt->setOutChanAndUpdate(channel);
+ audio->msgIdle(false);
+
+ // may result in adding/removing mixer strip:
+ //song->update(-1);
+ song->update(SC_MIDI_CHANNEL);
+ }
+ }
+ else {
+ int n = t->channels() + delta;
+ if (n > MAX_CHANNELS)
+ n = MAX_CHANNELS;
+ else if (n < 1)
+ n = 1;
+ if (n != t->channels()) {
+ audio->msgSetChannels((AudioTrack*)t, n);
+ song->update(SC_CHANNELS);
+ }
+ }
+ break;
+ default:
+ break;
+ }
+ }
+
+//---------------------------------------------------------
+// writeStatus
+//---------------------------------------------------------
+
+void TList::writeStatus(int level, Xml& xml, const char* name) const
+ {
+ xml.tag(level++, name);
+ header->writeStatus(level, xml);
+ xml.etag(level, name);
+ }
+
+//---------------------------------------------------------
+// readStatus
+//---------------------------------------------------------
+
+void TList::readStatus(Xml& xml, const char* name)
+ {
+ 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 == header->name())
+ header->readStatus(xml);
+ else
+ xml.unknown("Tlist");
+ break;
+ case Xml::TagEnd:
+ if (tag == name)
+ return;
+ default:
+ break;
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// setYPos
+//---------------------------------------------------------
+
+void TList::setYPos(int y)
+ {
+ int delta = ypos - y; // - -> shift up
+ ypos = y;
+ if (pm.isNull())
+ return;
+ if (!pmValid) {
+ //printf("TList::setYPos y:%d delta:%d pmValid is false - redrawing...\n", y, delta);
+ redraw();
+ return;
+ }
+ int w = width();
+ int h = height();
+ QRect r;
+ //printf("TList::setYPos y:%d delta:%d w:%d h:%d\n", y, delta, w, h);
+
+ if (delta >= h || delta <= -h)
+ {
+ //printf("TList::setYPos delta >= h || delta <= -h\n");
+ r = QRect(0, 0, w, h);
+ }
+ else if (delta < 0) { // shift up
+ //printf("TList::setYPos delta < 0 : shift up\n");
+ bitBlt(&pm, 0, 0, &pm, 0, -delta, w, h + delta, true); //CopyROP, true); ddskrjo
+ r = QRect(0, h + delta, w, -delta);
+ }
+ else { // shift down
+ //printf("TList::setYPos delta !< 0 : shift down\n");
+ bitBlt(&pm, 0, delta, &pm, 0, 0, w, h-delta, true); //CopyROP, true); ddskrjo
+
+ // NOTE: June 2 2010: On my machine with an old NV V8200 + prop drivers (curr 96.43.11),
+ // this is a problem. There is severe graphical corruption.
+ // Not just here but several other windows (ex. ladspa browser),
+ // and I believe (?) other QT3 apps. QT4 apps don't do it.
+ // Neither does it happen when xorg drivers used.
+ //
+ // FIXME: This change cures it for me, but we shouldn't leave this in - shouldn't need to do this...
+ //
+ //r = QRect(0, 0, w, delta);
+ // Changed p3.3.43
+ r = QRect(0, 0, w, h);
+
+ }
+ paint(r);
+ update();
+ }
+
+//---------------------------------------------------------
+// resizeEvent
+//---------------------------------------------------------
+
+void TList::resizeEvent(QResizeEvent* ev)
+ {
+ pm.resize(ev->size());
+ pmValid = false;
+ }
+
+//---------------------------------------------------------
+// classesPopupMenu
+//---------------------------------------------------------
+
+void TList::classesPopupMenu(Track* t, int x, int y)
+ {
+ Q3PopupMenu p(this);
+ p.clear();
+ p.insertItem(QIcon(*addtrack_addmiditrackIcon), tr("Midi"), Track::MIDI);
+ p.insertItem(QIcon(*addtrack_drumtrackIcon), tr("Drum"), Track::DRUM);
+ int n = p.exec(mapToGlobal(QPoint(x, y)), 0);
+
+ if (n == -1)
+ return;
+
+ if (Track::TrackType(n) == Track::MIDI && t->type() == Track::DRUM) {
+ //
+ // Drum -> Midi
+ //
+ audio->msgIdle(true);
+ PartList* pl = t->parts();
+ MidiTrack* m = (MidiTrack*) t;
+ for (iPart ip = pl->begin(); ip != pl->end(); ++ip) {
+ EventList* el = ip->second->events();
+ for (iEvent ie = el->begin(); ie != el->end(); ++ie) {
+ Event ev = ie->second;
+ if(ev.type() == Note)
+ {
+ int pitch = ev.pitch();
+ // Changed by T356.
+ // Tested: Notes were being mixed up switching back and forth between midi and drum.
+ //pitch = drumMap[pitch].anote;
+ pitch = drumMap[pitch].enote;
+
+ ev.setPitch(pitch);
+ }
+ else
+ if(ev.type() == Controller)
+ {
+ int ctl = ev.dataA();
+ // Is it a drum controller event, according to the track port's instrument?
+ MidiController *mc = midiPorts[m->outPort()].drumController(ctl);
+ if(mc)
+ // Change the controller event's index into the drum map to an instrument note.
+ ev.setA((ctl & ~0xff) | drumMap[ctl & 0x7f].enote);
+ }
+
+ }
+ }
+ t->setType(Track::MIDI);
+ audio->msgIdle(false);
+ }
+ else if (Track::TrackType(n) == Track::DRUM && t->type() == Track::MIDI) {
+ //
+ // Midi -> Drum
+ //
+ bool change = QMessageBox::question(this, tr("Update drummap?"),
+ tr("Do you want to use same port and channel for all instruments in the drummap?"),
+ tr("&Yes"), tr("&No"), QString::null, 0, 1);
+
+ audio->msgIdle(true);
+ // Delete all port controller events.
+ //audio->msgChangeAllPortDrumCtrlEvents(false);
+ song->changeAllPortDrumCtrlEvents(false);
+
+ if (!change) {
+ MidiTrack* m = (MidiTrack*) t;
+ for (int i=0; i<DRUM_MAPSIZE; i++) {
+ drumMap[i].channel = m->outChannel();
+ drumMap[i].port = m->outPort();
+ }
+ }
+
+ //audio->msgIdle(true);
+ PartList* pl = t->parts();
+ MidiTrack* m = (MidiTrack*) t;
+ for (iPart ip = pl->begin(); ip != pl->end(); ++ip) {
+ EventList* el = ip->second->events();
+ for (iEvent ie = el->begin(); ie != el->end(); ++ie) {
+ Event ev = ie->second;
+ if (ev.type() == Note)
+ {
+ int pitch = ev.pitch();
+ pitch = drumInmap[pitch];
+ ev.setPitch(pitch);
+ }
+ else
+ {
+ if(ev.type() == Controller)
+ {
+ int ctl = ev.dataA();
+ // Is it a drum controller event, according to the track port's instrument?
+ MidiController *mc = midiPorts[m->outPort()].drumController(ctl);
+ if(mc)
+ // Change the controller event's instrument note to an index into the drum map.
+ ev.setA((ctl & ~0xff) | drumInmap[ctl & 0x7f]);
+ }
+
+ }
+
+ }
+ }
+ t->setType(Track::DRUM);
+
+ // Add all port controller events.
+ //audio->msgChangeAllPortDrumCtrlEvents(true);
+ song->changeAllPortDrumCtrlEvents(true);
+
+ audio->msgIdle(false);
+ }
+ }
+
diff --git a/muse2/muse/arranger/tlist.h b/muse2/muse/arranger/tlist.h
new file mode 100644
index 00000000..147a61e2
--- /dev/null
+++ b/muse2/muse/arranger/tlist.h
@@ -0,0 +1,131 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: tlist.h,v 1.8.2.5 2008/01/19 13:33:46 wschweer Exp $
+// (C) Copyright 1999 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __TLIST_H__
+#define __TLIST_H__
+
+#include <qtooltip.h>
+#include <q3whatsthis.h>
+#include <q3header.h>
+//Added by qt3to4:
+#include <QPixmap>
+#include <QResizeEvent>
+#include <QWheelEvent>
+#include <QMouseEvent>
+#include <QKeyEvent>
+#include <QPaintEvent>
+#include "track.h"
+
+class QPainter;
+class ScrollScale;
+class QScrollBar;
+class QLineEdit;
+class Track;
+class Xml;
+class Header;
+
+enum TrackColumn {
+ COL_RECORD = 0,
+ COL_MUTE,
+ COL_SOLO,
+ COL_CLASS,
+ COL_NAME,
+ COL_OPORT,
+ COL_OCHANNEL,
+ COL_TIMELOCK,
+ COL_NONE = -1
+ };
+// COL_AUTOMATION, -- not enabled
+
+//----------------------------------------------------------
+// THeaderTip
+//----------------------------------------------------------
+
+class THeaderTip { //: public QToolTip { ddskrjo
+
+ public:
+ THeaderTip(QWidget * parent) {} //: QToolTip(parent) {} ddskrjo
+ virtual ~THeaderTip() {}
+ protected:
+ void maybeTip(const QPoint &);
+ };
+
+//---------------------------------------------------------
+// TList
+//---------------------------------------------------------
+
+class TList : public QWidget {
+ Q_OBJECT
+
+ int ypos;
+ bool editMode;
+
+ QPixmap pm; // for double buffering
+ bool pmValid;
+ QPixmap bgPixmap; // background Pixmap
+
+ bool resizeFlag; // true if resize cursor is shown
+
+ Header* header;
+ QScrollBar* scroll;
+ QLineEdit* editor;
+ Track* editTrack;
+
+ int startY;
+ int curY;
+ int sTrack;
+ int dragHeight;
+ int dragYoff;
+
+ enum { NORMAL, START_DRAG, DRAG, RESIZE} mode;
+
+ virtual void paintEvent(QPaintEvent*);
+ virtual void mousePressEvent(QMouseEvent* event);
+ virtual void mouseDoubleClickEvent(QMouseEvent*);
+ virtual void mouseMoveEvent(QMouseEvent*);
+ virtual void mouseReleaseEvent(QMouseEvent*);
+ virtual void keyPressEvent(QKeyEvent* e);
+ virtual void wheelEvent(QWheelEvent* e);
+
+ void portsPopupMenu(Track*, int, int);
+ void oportPropertyPopupMenu(Track*, int x, int y);
+ void moveSelection(int n);
+ void adjustScrollbar();
+ void paint(const QRect& r);
+ virtual void resizeEvent(QResizeEvent*);
+ void redraw(const QRect& r);
+ Track* y2Track(int) const;
+ void classesPopupMenu(Track*, int x, int y);
+ TrackList getRecEnabledTracks();
+
+ private slots:
+ void returnPressed();
+ void songChanged(int flags);
+
+ signals:
+ void selectionChanged();
+ void keyPressExt(QKeyEvent*);
+ void redirectWheelEvent(QWheelEvent*);
+
+ public slots:
+ void tracklistChanged();
+ void setYPos(int);
+ void redraw();
+ void selectTrack(Track*);
+ void selectTrackAbove();
+ void selectTrackBelow();
+
+ public:
+ TList(Header*, QWidget* parent, const char* name);
+ void setScroll(QScrollBar* s) { scroll = s; }
+ Track* track() const { return editTrack; }
+ void writeStatus(int level, Xml&, const char* name) const;
+ void readStatus(Xml&, const char* name);
+ };
+
+#endif
+
diff --git a/muse2/muse/arranger/trackautomationview.cpp b/muse2/muse/arranger/trackautomationview.cpp
new file mode 100644
index 00000000..43abcc69
--- /dev/null
+++ b/muse2/muse/arranger/trackautomationview.cpp
@@ -0,0 +1,53 @@
+#include "trackautomationview.h"
+#include "math.h"
+#include <qpainter.h>
+#include <qbitmap.h>
+#include <qimage.h>
+//Added by qt3to4:
+#include <QPaintEvent>
+#include "track.h"
+
+TrackAutomationView::TrackAutomationView(QWidget *parent, Track *t) : QWidget(parent)
+{
+ printf("created trackautomationview\n");
+ _t = t;
+ //show();
+}
+
+void TrackAutomationView::paintEvent(QPaintEvent* e)
+{
+ QPainter p(this);
+ const QRect &r = e->rect();
+
+ // temporary solution, audio track drawing moved here.
+ // best would be to get transparency to work correctly
+ p.setPen(QPen(Qt::black, 2, Qt::SolidLine));
+ p.setBrush(Qt::gray);
+ p.drawRect(r);
+
+ int height=r.bottom()-r.top();
+ if( _t->type()>1) { // audio type
+ double volume = ((AudioTrack*)_t)->volume();
+ double dbvolume = (20.0*log10(volume)+60) /70.0; // represent volume between 0 and 1
+ if (dbvolume < 0) dbvolume =0.0;
+ printf("height=%d volume=%f dbvolume=%f\n", height, volume, dbvolume);
+ p.setPen(QPen(Qt::yellow,1,Qt::SolidLine));
+ p.drawLine(r.left(),r.bottom()-dbvolume*height,r.right(),r.bottom()-dbvolume*height);
+
+ }
+
+
+
+ printf("paintEvent\n");
+}
+
+void TrackAutomationView::collectAutomationData()
+{
+ // here we should collect all automation data that is currently selected for viewing and
+ // prepare an event list that is easy to draw in paintEvent
+ // the main reason being that the event list in it's entirety likely contains too much data to
+ // be processed in the paintEvent. Better to preprocess.
+
+// CtrlListList cll =((AudioTrack*)_t)->controller();
+// cll.count()
+}
diff --git a/muse2/muse/arranger/trackautomationview.h b/muse2/muse/arranger/trackautomationview.h
new file mode 100644
index 00000000..2631035e
--- /dev/null
+++ b/muse2/muse/arranger/trackautomationview.h
@@ -0,0 +1,21 @@
+#ifndef TRACKAUTOMATIONVIEW_H
+#define TRACKAUTOMATIONVIEW_H
+
+#include <qwidget.h>
+//Added by qt3to4:
+#include <QPaintEvent>
+
+#include "track.h"
+
+class TrackAutomationView : public QWidget
+{
+ Track *_t;
+ void paintEvent(QPaintEvent *e);
+ std::map<int,int> automationList;
+public:
+ TrackAutomationView(QWidget *parent, Track *t);
+ Track *track() { return _t; }
+ void collectAutomationData();
+};
+
+#endif // TRACKAUTOMATIONVIEW_H
diff --git a/muse2/muse/arranger/trackinfo.cpp b/muse2/muse/arranger/trackinfo.cpp
new file mode 100644
index 00000000..a6bf0a4e
--- /dev/null
+++ b/muse2/muse/arranger/trackinfo.cpp
@@ -0,0 +1,1570 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: trackinfo.cpp,v 1.10.2.15 2009/11/14 03:37:48 terminator356 Exp $
+// (C) Copyright 1999-2004 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include <qlayout.h>
+#include <qcombobox.h>
+#include <qtoolbutton.h>
+#include <qlabel.h>
+#include <q3popupmenu.h>
+#include <qmessagebox.h>
+#include <q3hbox.h>
+#include <qcheckbox.h>
+#include <qpushbutton.h>
+#include <q3widgetstack.h>
+#include <qlineedit.h>
+#include <qtimer.h>
+//Added by qt3to4:
+#include <QPixmap>
+#include <math.h>
+#include <string.h>
+
+#include "song.h"
+#include "globals.h"
+#include "spinbox.h"
+#include "config.h"
+#include "gconfig.h"
+#include "arranger.h"
+#include "midiport.h"
+#include "mididev.h"
+#include "utils.h"
+#include "tlist.h"
+//#include "mtrackinfobase.h"
+#include "alayout.h"
+#include "audio.h"
+#include "mixer/amixer.h"
+#include "midi.h"
+#include "midictrl.h"
+#include "xpm/muse_leftside_logo.xpm"
+#include "mixer/astrip.h"
+#include "icons.h"
+#include "app.h"
+#include "route.h"
+#include "popupmenu.h"
+
+
+//---------------------------------------------------------
+// midiTrackInfoHeartBeat
+//---------------------------------------------------------
+
+void Arranger::midiTrackInfoHeartBeat()
+{
+ if(!showTrackinfoFlag || !selected)
+ return;
+ switch(selected->type())
+ {
+ case Track::MIDI:
+ case Track::DRUM:
+ {
+ MidiTrack* track = (MidiTrack*)selected;
+
+ int outChannel = track->outChannel();
+ int outPort = track->outPort();
+ ///int ichMask = track->inChannelMask();
+ //int iptMask = track->inPortMask();
+ ///unsigned int iptMask = track->inPortMask();
+
+ MidiPort* mp = &midiPorts[outPort];
+
+ // Set record echo.
+ if(midiTrackInfo->recEchoButton->isOn() != track->recEcho())
+ {
+ midiTrackInfo->recEchoButton->blockSignals(true);
+ midiTrackInfo->recEchoButton->setOn(track->recEcho());
+ midiTrackInfo->recEchoButton->blockSignals(false);
+ }
+
+ // Check for detection of midi general activity on chosen channels...
+ int mpt = 0;
+ //int mch = 0;
+ RouteList* rl = track->inRoutes();
+
+ ciRoute r = rl->begin();
+ //for( ; mpt < MIDI_PORTS; ++mpt)
+ for( ; r != rl->end(); ++r)
+ {
+ //if(!r->isValid() || ((r->type != Route::ALSA_MIDI_ROUTE) && (r->type != Route::JACK_MIDI_ROUTE)))
+ //if(!r->isValid() || (r->type != Route::MIDI_DEVICE_ROUTE))
+ if(!r->isValid() || (r->type != Route::MIDI_PORT_ROUTE)) // p3.3.49
+ continue;
+
+ // NOTE: TODO: Code for channelless events like sysex, ** IF we end up using the 'special channel 17' method.
+ //if(r->channel == -1)
+ if(r->channel == -1 || r->channel == 0) // p3.3.50
+ continue;
+
+ // No port assigned to the device?
+ //mpt = r->device->midiPort();
+ mpt = r->midiPort; // p3.3.49
+ if(mpt < 0 || mpt >= MIDI_PORTS)
+ continue;
+
+ //for(; mch < MIDI_CHANNELS; ++mch)
+ //{
+ //if(midiPorts[mpt].syncInfo().actDetect(mch) && (iptMask & (1 << mpt)) && (ichMask & (1 << mch)) )
+ //if((iptMask & bitShiftLU[mpt]) && (midiPorts[mpt].syncInfo().actDetectBits() & ichMask) )
+ //if(midiPorts[mpt].syncInfo().actDetectBits() & bitShiftLU[r->channel])
+ if(midiPorts[mpt].syncInfo().actDetectBits() & r->channel) // p3.3.50 Use new channel mask.
+ {
+ //if(midiTrackInfo->iChanTextLabel->paletteBackgroundColor() != green)
+ // midiTrackInfo->iChanTextLabel->setPaletteBackgroundColor(green);
+ //if(midiTrackInfo->iChanDetectLabel->pixmap() != greendotIcon)
+ if(!midiTrackInfo->_midiDetect)
+ {
+ //printf("Arranger::midiTrackInfoHeartBeat setting green icon\n");
+
+ midiTrackInfo->_midiDetect = true;
+ //midiTrackInfo->iChanDetectLabel->setPixmap(*greendotIcon);
+ midiTrackInfo->iChanDetectLabel->setPixmap(*redLedIcon);
+ }
+ break;
+ }
+ //}
+ }
+ // No activity detected?
+ //if(mch == MIDI_CHANNELS)
+ //if(mpt == MIDI_PORTS)
+ if(r == rl->end())
+ {
+ //if(midiTrackInfo->iChanTextLabel->paletteBackgroundColor() != darkGreen)
+ // midiTrackInfo->iChanTextLabel->setPaletteBackgroundColor(darkGreen);
+ //if(midiTrackInfo->iChanDetectLabel->pixmap() != darkgreendotIcon)
+ if(midiTrackInfo->_midiDetect)
+ {
+ //printf("Arranger::midiTrackInfoHeartBeat setting darkgreen icon\n");
+
+ midiTrackInfo->_midiDetect = false;
+ //midiTrackInfo->iChanDetectLabel->setPixmap(*darkgreendotIcon);
+ midiTrackInfo->iChanDetectLabel->setPixmap(*darkRedLedIcon);
+ }
+ }
+
+ int nprogram = mp->hwCtrlState(outChannel, CTRL_PROGRAM);
+ if(nprogram == CTRL_VAL_UNKNOWN)
+ {
+ if(program != CTRL_VAL_UNKNOWN)
+ {
+ //printf("Arranger::midiTrackInfoHeartBeat setting program to unknown\n");
+
+ program = CTRL_VAL_UNKNOWN;
+ if(midiTrackInfo->iHBank->value() != 0)
+ {
+ midiTrackInfo->iHBank->blockSignals(true);
+ midiTrackInfo->iHBank->setValue(0);
+ midiTrackInfo->iHBank->blockSignals(false);
+ }
+ if(midiTrackInfo->iLBank->value() != 0)
+ {
+ midiTrackInfo->iLBank->blockSignals(true);
+ midiTrackInfo->iLBank->setValue(0);
+ midiTrackInfo->iLBank->blockSignals(false);
+ }
+ if(midiTrackInfo->iProgram->value() != 0)
+ {
+ midiTrackInfo->iProgram->blockSignals(true);
+ midiTrackInfo->iProgram->setValue(0);
+ midiTrackInfo->iProgram->blockSignals(false);
+ }
+ }
+
+ nprogram = mp->lastValidHWCtrlState(outChannel, CTRL_PROGRAM);
+ if(nprogram == CTRL_VAL_UNKNOWN)
+ {
+ //const char* n = "<unknown>";
+ const QString n(tr("<unknown>"));
+ //if(strcmp(midiTrackInfo->iPatch->text().latin1(), n) != 0)
+ if(midiTrackInfo->iPatch->text() != n)
+ {
+ //printf("Arranger::midiTrackInfoHeartBeat setting patch <unknown>\n");
+
+ midiTrackInfo->iPatch->setText(n);
+ }
+ }
+ else
+ {
+ MidiInstrument* instr = mp->instrument();
+ const char* name = instr->getPatchName(outChannel, nprogram, song->mtype(), track->type() == Track::DRUM);
+ if(!name)
+ {
+ if(midiTrackInfo->iPatch->text() != ("???"))
+ midiTrackInfo->iPatch->setText("???");
+ }
+ else
+ if(strcmp(midiTrackInfo->iPatch->text().latin1(), name) != 0)
+ {
+ //printf("Arranger::midiTrackInfoHeartBeat setting patch name\n");
+
+ midiTrackInfo->iPatch->setText(name);
+ }
+ }
+ }
+ else
+ if(program != nprogram)
+ {
+ program = nprogram;
+
+ //int hb, lb, pr;
+ //if (program == CTRL_VAL_UNKNOWN) {
+ // hb = lb = pr = 0;
+ // iPatch->setText("---");
+ // }
+ //else
+ //{
+ MidiInstrument* instr = mp->instrument();
+ const char* name = instr->getPatchName(outChannel, program, song->mtype(), track->type() == Track::DRUM);
+ if(strcmp(midiTrackInfo->iPatch->text().latin1(), name) != 0)
+ midiTrackInfo->iPatch->setText(QString(name));
+
+ int hb = ((program >> 16) & 0xff) + 1;
+ if (hb == 0x100)
+ hb = 0;
+ int lb = ((program >> 8) & 0xff) + 1;
+ if (lb == 0x100)
+ lb = 0;
+ int pr = (program & 0xff) + 1;
+ if (pr == 0x100)
+ pr = 0;
+ //}
+
+ //printf("Arranger::midiTrackInfoHeartBeat setting program\n");
+
+ if(midiTrackInfo->iHBank->value() != hb)
+ {
+ midiTrackInfo->iHBank->blockSignals(true);
+ midiTrackInfo->iHBank->setValue(hb);
+ midiTrackInfo->iHBank->blockSignals(false);
+ }
+ if(midiTrackInfo->iLBank->value() != lb)
+ {
+ midiTrackInfo->iLBank->blockSignals(true);
+ midiTrackInfo->iLBank->setValue(lb);
+ midiTrackInfo->iLBank->blockSignals(false);
+ }
+ if(midiTrackInfo->iProgram->value() != pr)
+ {
+ midiTrackInfo->iProgram->blockSignals(true);
+ midiTrackInfo->iProgram->setValue(pr);
+ midiTrackInfo->iProgram->blockSignals(false);
+ }
+
+ }
+
+ MidiController* mc = mp->midiController(CTRL_VOLUME);
+ int mn = mc->minVal();
+ int v = mp->hwCtrlState(outChannel, CTRL_VOLUME);
+ if(v == CTRL_VAL_UNKNOWN)
+ //{
+ //v = mc->initVal();
+ //if(v == CTRL_VAL_UNKNOWN)
+ // v = 0;
+ v = mn - 1;
+ //}
+ else
+ // Auto bias...
+ v -= mc->bias();
+ if(volume != v)
+ {
+ volume = v;
+ if(midiTrackInfo->iLautst->value() != v)
+ {
+ //printf("Arranger::midiTrackInfoHeartBeat setting volume\n");
+
+ midiTrackInfo->iLautst->blockSignals(true);
+ //midiTrackInfo->iLautst->setRange(mn - 1, mc->maxVal());
+ midiTrackInfo->iLautst->setValue(v);
+ midiTrackInfo->iLautst->blockSignals(false);
+ }
+ }
+
+ mc = mp->midiController(CTRL_PANPOT);
+ mn = mc->minVal();
+ v = mp->hwCtrlState(outChannel, CTRL_PANPOT);
+ if(v == CTRL_VAL_UNKNOWN)
+ //{
+ //v = mc->initVal();
+ //if(v == CTRL_VAL_UNKNOWN)
+ // v = 0;
+ v = mn - 1;
+ //}
+ else
+ // Auto bias...
+ v -= mc->bias();
+ if(pan != v)
+ {
+ pan = v;
+ if(midiTrackInfo->iPan->value() != v)
+ {
+ //printf("Arranger::midiTrackInfoHeartBeat setting pan\n");
+
+ midiTrackInfo->iPan->blockSignals(true);
+ //midiTrackInfo->iPan->setRange(mn - 1, mc->maxVal());
+ midiTrackInfo->iPan->setValue(v);
+ midiTrackInfo->iPan->blockSignals(false);
+ }
+ }
+
+ // Does it include a midi controller value adjustment? Then handle it...
+ //if(flags & SC_MIDI_CONTROLLER)
+ // seek();
+
+ /*
+ if(midiTrackInfo->iTransp->value() != track->transposition)
+ midiTrackInfo->iTransp->setValue(track->transposition);
+ if(midiTrackInfo->iAnschl->value() != track->velocity)
+ midiTrackInfo->iAnschl->setValue(track->velocity);
+ if(midiTrackInfo->iVerz->value() != track->delay)
+ midiTrackInfo->iVerz->setValue(track->delay);
+ if(midiTrackInfo->iLen->value() != track->len)
+ midiTrackInfo->iLen->setValue(track->len);
+ if(midiTrackInfo->iKompr->value() != track->compression)
+ midiTrackInfo->iKompr->setValue(track->compression);
+ */
+ }
+ break;
+
+ case Track::WAVE:
+ case Track::AUDIO_OUTPUT:
+ case Track::AUDIO_INPUT:
+ case Track::AUDIO_GROUP:
+ case Track::AUDIO_AUX:
+ case Track::AUDIO_SOFTSYNTH:
+ break;
+ }
+}
+
+//---------------------------------------------------------
+// showTrackInfo
+//---------------------------------------------------------
+
+void Arranger::showTrackInfo(bool flag)
+ {
+ showTrackinfoFlag = flag;
+ trackInfo->setShown(flag);
+ infoScroll->setShown(flag);
+ updateTrackInfo(-1);
+ }
+
+//---------------------------------------------------------
+// genTrackInfo
+//---------------------------------------------------------
+
+void Arranger::genTrackInfo(QWidget* parent)
+ {
+ trackInfo = new WidgetStack(parent, "trackInfoStack");
+
+ noTrackInfo = new QWidget(trackInfo);
+ QPixmap *noInfoPix = new QPixmap(160, 1000); //muse_leftside_logo_xpm);
+ const QPixmap *logo = new QPixmap(muse_leftside_logo_xpm);
+ noInfoPix->fill(noTrackInfo->paletteBackgroundColor() );
+ copyBlt(noInfoPix, 10, 0, logo, 0,0, logo->width(), logo->height());
+ noTrackInfo->setPaletteBackgroundPixmap(*noInfoPix);
+ noTrackInfo->setGeometry(0, 0, 65, 200);
+ noTrackInfo->setSizePolicy(QSizePolicy(QSizePolicy::Fixed, QSizePolicy::Expanding));
+
+ midiTrackInfo = new MidiTrackInfo(trackInfo);
+ trackInfo->addWidget(noTrackInfo, 0);
+ trackInfo->addWidget(midiTrackInfo, 1);
+ trackInfo->addWidget(0, 2);
+
+ genMidiTrackInfo();
+ }
+
+//---------------------------------------------------------
+// updateTrackInfo
+//---------------------------------------------------------
+
+void Arranger::updateTrackInfo(int flags)
+ {
+ if (!showTrackinfoFlag) {
+ switchInfo(-1);
+ return;
+ }
+ if (selected == 0) {
+ switchInfo(0);
+ return;
+ }
+ if (selected->isMidiTrack()) {
+ switchInfo(1);
+ updateMidiTrackInfo(flags);
+ }
+ else {
+ switchInfo(2);
+ }
+ }
+
+//---------------------------------------------------------
+// switchInfo
+//---------------------------------------------------------
+
+void Arranger::switchInfo(int n)
+ {
+ if (n == 2) {
+ AudioStrip* w = (AudioStrip*)(trackInfo->getWidget(2));
+ if (w == 0 || selected != w->getTrack()) {
+ if (w)
+ delete w;
+ w = new AudioStrip(trackInfo, (AudioTrack*)selected);
+ connect(song, SIGNAL(songChanged(int)), w, SLOT(songChanged(int)));
+ connect(muse, SIGNAL(configChanged()), w, SLOT(configChanged()));
+ w->setSizePolicy(QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed));
+ trackInfo->addWidget(w, 2);
+ w->show();
+ tgrid->activate();
+ }
+ }
+ if (trackInfo->curIdx() == n)
+ return;
+ trackInfo->raiseWidget(n);
+ tgrid->activate();
+ }
+
+//---------------------------------------------------------
+// setTrackInfoLabelText
+//---------------------------------------------------------
+
+void Arranger::setTrackInfoLabelText()
+{
+ MidiTrack* track = (MidiTrack*)selected;
+ if(track)
+ midiTrackInfo->trackNameLabel->setText(track->name());
+ else
+ midiTrackInfo->trackNameLabel->setText(QString());
+}
+
+//---------------------------------------------------------
+// setTrackInfoLabelFont
+//---------------------------------------------------------
+
+void Arranger::setTrackInfoLabelFont()
+{
+ MidiTrack* track = (MidiTrack*)selected;
+ if(!track)
+ return;
+
+ // Use the new font #6 I created just for these labels (so far).
+ // Set the label's font.
+ midiTrackInfo->trackNameLabel->setFont(config.fonts[6]);
+ // Dealing with a horizontally constrained label. Ignore vertical. Use a minimum readable point size.
+ //autoAdjustFontSize(midiTrackInfo->trackNameLabel, midiTrackInfo->trackNameLabel->text(), false, true, config.fonts[6].pointSize(), 5); ddskrjo
+}
+
+// Removed by Tim. p3.3.9
+
+/*
+//---------------------------------------------------------
+// iNameChanged
+//---------------------------------------------------------
+
+void Arranger::iNameChanged()
+ {
+ QString txt = midiTrackInfo->iName->text();
+ if (txt == selected->name())
+ return;
+
+ TrackList* tl = song->tracks();
+ for(iTrack i = tl->begin(); i != tl->end(); ++i)
+ {
+ if((*i)->name() == txt)
+ {
+ // Restore the text.
+ midiTrackInfo->iName->blockSignals(true);
+ midiTrackInfo->iName->setText(selected->name());
+ midiTrackInfo->iName->blockSignals(false);
+
+ QMessageBox::critical(this,
+ tr("MusE: bad trackname"),
+ tr("please choose a unique track name"),
+ QMessageBox::Ok,
+ QMessageBox::NoButton,
+ QMessageBox::NoButton);
+
+ midiTrackInfo->iName->setFocus();
+ return;
+ }
+ }
+
+ //Track* track = selected->clone();
+ Track* track = selected->clone(false);
+ selected->setName(txt);
+ audio->msgChangeTrack(track, selected);
+ }
+*/
+
+//---------------------------------------------------------
+// iOutputChannelChanged
+//---------------------------------------------------------
+
+void Arranger::iOutputChannelChanged(int channel)
+ {
+ --channel;
+ MidiTrack* track = (MidiTrack*)selected;
+ if (channel != track->outChannel()) {
+ // Changed by T356.
+ //track->setOutChannel(channel);
+ audio->msgIdle(true);
+ //audio->msgSetTrackOutChannel(track, channel);
+ track->setOutChanAndUpdate(channel);
+ audio->msgIdle(false);
+
+ // may result in adding/removing mixer strip:
+ //song->update(-1);
+ song->update(SC_MIDI_CHANNEL);
+ }
+ }
+
+/*
+//---------------------------------------------------------
+// iKanalChanged
+//---------------------------------------------------------
+
+void Arranger::iInputChannelChanged(const QString& s)
+ {
+ MidiTrack* track = (MidiTrack*)selected;
+ int val = string2bitmap(s);
+ if (val != track->inChannelMask()) {
+ track->setInChannelMask(val);
+ list->redraw();
+ }
+ }
+*/
+
+//---------------------------------------------------------
+// iOutputPortChanged
+//---------------------------------------------------------
+
+void Arranger::iOutputPortChanged(int index)
+ {
+ MidiTrack* track = (MidiTrack*)selected;
+ if (index == track->outPort())
+ return;
+ // Changed by T356.
+ //track->setOutPort(index);
+ audio->msgIdle(true);
+ //audio->msgSetTrackOutPort(track, index);
+ track->setOutPortAndUpdate(index);
+ audio->msgIdle(false);
+
+ list->redraw();
+ }
+
+/*
+//---------------------------------------------------------
+// iInputPortChanged
+//---------------------------------------------------------
+
+void Arranger::iInputPortChanged(const QString& s)
+ {
+ // Changed by Tim. p3.3.8
+ //int val = string2bitmap(s);
+ unsigned int val = string2u32bitmap(s);
+
+ MidiTrack* track = (MidiTrack*)selected;
+ if (val == track->inPortMask())
+ return;
+ track->setInPortMask(val);
+ list->redraw();
+ }
+*/
+
+//---------------------------------------------------------
+// routingPopupMenuActivated
+//---------------------------------------------------------
+
+void Arranger::routingPopupMenuActivated(int n)
+{
+ //if(gRoutingPopupMenuMaster != this || !track || !track->isMidiTrack())
+ if(!midiTrackInfo || gRoutingPopupMenuMaster != midiTrackInfo || !selected || !selected->isMidiTrack())
+ return;
+ //if (n > 999) {
+ //if (n >= MIDI_PORTS * MIDI_CHANNELS) { // p3.3.50
+ // for (int i = 0; i < MIDI_CHANNELS; i++)
+ //muse->routingPopupMenuActivated(selected, i + MIDI_CHANNELS * (n-1000));
+ // muse->routingPopupMenuActivated(selected, i + MIDI_CHANNELS * (n - MIDI_PORTS * MIDI_CHANNELS)); // p3.3.50
+ //}
+ //else {
+ muse->routingPopupMenuActivated(selected, n);
+ //}
+}
+
+//---------------------------------------------------------
+// inRoutesPressed
+//---------------------------------------------------------
+
+void Arranger::inRoutesPressed()
+{
+ if(!selected)
+ return;
+
+ ///song->chooseMidiRoutes(midiTrackInfo->iRButton, (MidiTrack*)selected, false);
+
+ if(!selected->isMidiTrack())
+ return;
+
+ //song->chooseMidiRoutes(iR, (MidiTrack*)track, false);
+ PopupMenu* pup = muse->prepareRoutingPopupMenu(selected, false);
+ if(!pup)
+ return;
+
+ //pup->disconnect();
+ //gRoutingPopupMenuMaster = this;
+ gRoutingPopupMenuMaster = midiTrackInfo;
+ connect(pup, SIGNAL(activated(int)), SLOT(routingPopupMenuActivated(int)));
+ // Nope, can't clear menu and mm list in there, sub-menus stay open. Never mind for now...
+ connect(pup, SIGNAL(aboutToHide()), muse, SLOT(routingPopupMenuAboutToHide()));
+ pup->popup(QCursor::pos(), 0);
+ midiTrackInfo->iRButton->setDown(false);
+ return;
+}
+
+//---------------------------------------------------------
+// outRoutesPressed
+//---------------------------------------------------------
+
+void Arranger::outRoutesPressed()
+{
+ if(!selected)
+ return;
+
+ ///song->chooseMidiRoutes(midiTrackInfo->oRButton, (MidiTrack*)selected, true);
+
+ if(!selected->isMidiTrack())
+ return;
+
+ //song->chooseMidiRoutes(iR, (MidiTrack*)track, false);
+ PopupMenu* pup = muse->prepareRoutingPopupMenu(selected, true);
+ if(!pup)
+ return;
+
+ //pup->disconnect();
+ //gRoutingPopupMenuMaster = this;
+ gRoutingPopupMenuMaster = midiTrackInfo;
+ connect(pup, SIGNAL(activated(int)), SLOT(routingPopupMenuActivated(int)));
+ // Nope, can't clear menu and mm list in there, sub-menus stay open. Never mind for now...
+ connect(pup, SIGNAL(aboutToHide()), muse, SLOT(routingPopupMenuAboutToHide()));
+ pup->popup(QCursor::pos(), 0);
+ midiTrackInfo->oRButton->setDown(false);
+ return;
+}
+
+//---------------------------------------------------------
+// iProgHBankChanged
+//---------------------------------------------------------
+
+void Arranger::iProgHBankChanged()
+ {
+ MidiTrack* track = (MidiTrack*)selected;
+ int channel = track->outChannel();
+ int port = track->outPort();
+ int hbank = midiTrackInfo->iHBank->value();
+ int lbank = midiTrackInfo->iLBank->value();
+ int prog = midiTrackInfo->iProgram->value();
+
+ if (hbank > 0 && hbank < 129)
+ hbank -= 1;
+ else
+ hbank = 0xff;
+ if (lbank > 0 && lbank < 129)
+ lbank -= 1;
+ else
+ lbank = 0xff;
+ if (prog > 0 && prog < 129)
+ prog -= 1;
+ else
+ prog = 0xff;
+
+ MidiPort* mp = &midiPorts[port];
+ if(prog == 0xff && hbank == 0xff && lbank == 0xff)
+ {
+ program = CTRL_VAL_UNKNOWN;
+ if(mp->hwCtrlState(channel, CTRL_PROGRAM) != CTRL_VAL_UNKNOWN)
+ audio->msgSetHwCtrlState(mp, channel, CTRL_PROGRAM, CTRL_VAL_UNKNOWN);
+ return;
+ }
+
+ int np = mp->hwCtrlState(channel, CTRL_PROGRAM);
+ if(np == CTRL_VAL_UNKNOWN)
+ {
+ np = mp->lastValidHWCtrlState(channel, CTRL_PROGRAM);
+ if(np != CTRL_VAL_UNKNOWN)
+ {
+ lbank = (np & 0xff00) >> 8;
+ prog = np & 0xff;
+ if(prog == 0xff)
+ prog = 0;
+ int ilbnk = lbank;
+ int iprog = prog;
+ if(ilbnk == 0xff)
+ ilbnk = -1;
+ ++ilbnk;
+ ++iprog;
+ midiTrackInfo->iLBank->blockSignals(true);
+ midiTrackInfo->iProgram->blockSignals(true);
+ midiTrackInfo->iLBank->setValue(ilbnk);
+ midiTrackInfo->iProgram->setValue(iprog);
+ midiTrackInfo->iLBank->blockSignals(false);
+ midiTrackInfo->iProgram->blockSignals(false);
+ }
+ }
+
+ if(prog == 0xff && (hbank != 0xff || lbank != 0xff))
+ {
+ prog = 0;
+ midiTrackInfo->iProgram->blockSignals(true);
+ midiTrackInfo->iProgram->setValue(1);
+ midiTrackInfo->iProgram->blockSignals(false);
+ }
+ program = (hbank << 16) + (lbank << 8) + prog;
+ MidiPlayEvent ev(0, port, channel, ME_CONTROLLER, CTRL_PROGRAM, program);
+ audio->msgPlayMidiEvent(&ev);
+
+ MidiInstrument* instr = mp->instrument();
+ const char* name = instr->getPatchName(channel, program, song->mtype(), track->type() == Track::DRUM);
+ midiTrackInfo->iPatch->setText(QString(name));
+// updateTrackInfo();
+ }
+
+//---------------------------------------------------------
+// iProgLBankChanged
+//---------------------------------------------------------
+
+void Arranger::iProgLBankChanged()
+ {
+ MidiTrack* track = (MidiTrack*)selected;
+ int channel = track->outChannel();
+ int port = track->outPort();
+ int hbank = midiTrackInfo->iHBank->value();
+ int lbank = midiTrackInfo->iLBank->value();
+ int prog = midiTrackInfo->iProgram->value();
+
+ if (hbank > 0 && hbank < 129)
+ hbank -= 1;
+ else
+ hbank = 0xff;
+ if (lbank > 0 && lbank < 129)
+ lbank -= 1;
+ else
+ lbank = 0xff;
+ if (prog > 0 && prog < 129)
+ prog -= 1;
+ else
+ prog = 0xff;
+
+ MidiPort* mp = &midiPorts[port];
+ if(prog == 0xff && hbank == 0xff && lbank == 0xff)
+ {
+ program = CTRL_VAL_UNKNOWN;
+ if(mp->hwCtrlState(channel, CTRL_PROGRAM) != CTRL_VAL_UNKNOWN)
+ audio->msgSetHwCtrlState(mp, channel, CTRL_PROGRAM, CTRL_VAL_UNKNOWN);
+ return;
+ }
+
+ int np = mp->hwCtrlState(channel, CTRL_PROGRAM);
+ if(np == CTRL_VAL_UNKNOWN)
+ {
+ np = mp->lastValidHWCtrlState(channel, CTRL_PROGRAM);
+ if(np != CTRL_VAL_UNKNOWN)
+ {
+ hbank = (np & 0xff0000) >> 16;
+ prog = np & 0xff;
+ if(prog == 0xff)
+ prog = 0;
+ int ihbnk = hbank;
+ int iprog = prog;
+ if(ihbnk == 0xff)
+ ihbnk = -1;
+ ++ihbnk;
+ ++iprog;
+ midiTrackInfo->iHBank->blockSignals(true);
+ midiTrackInfo->iProgram->blockSignals(true);
+ midiTrackInfo->iHBank->setValue(ihbnk);
+ midiTrackInfo->iProgram->setValue(iprog);
+ midiTrackInfo->iHBank->blockSignals(false);
+ midiTrackInfo->iProgram->blockSignals(false);
+ }
+ }
+
+ if(prog == 0xff && (hbank != 0xff || lbank != 0xff))
+ {
+ prog = 0;
+ midiTrackInfo->iProgram->blockSignals(true);
+ midiTrackInfo->iProgram->setValue(1);
+ midiTrackInfo->iProgram->blockSignals(false);
+ }
+ program = (hbank << 16) + (lbank << 8) + prog;
+ MidiPlayEvent ev(0, port, channel, ME_CONTROLLER, CTRL_PROGRAM, program);
+ audio->msgPlayMidiEvent(&ev);
+
+ MidiInstrument* instr = mp->instrument();
+ const char* name = instr->getPatchName(channel, program, song->mtype(), track->type() == Track::DRUM);
+ midiTrackInfo->iPatch->setText(QString(name));
+// updateTrackInfo();
+ }
+
+//---------------------------------------------------------
+// iProgramChanged
+//---------------------------------------------------------
+
+void Arranger::iProgramChanged()
+ {
+ MidiTrack* track = (MidiTrack*)selected;
+ int channel = track->outChannel();
+ int port = track->outPort();
+ int hbank = midiTrackInfo->iHBank->value();
+ int lbank = midiTrackInfo->iLBank->value();
+ int prog = midiTrackInfo->iProgram->value();
+
+ if (hbank > 0 && hbank < 129)
+ hbank -= 1;
+ else
+ hbank = 0xff;
+ if (lbank > 0 && lbank < 129)
+ lbank -= 1;
+ else
+ lbank = 0xff;
+ if (prog > 0 && prog < 129)
+ prog -= 1;
+ else
+ prog = 0xff;
+
+ MidiPort *mp = &midiPorts[port];
+ if(prog == 0xff)
+ {
+ program = CTRL_VAL_UNKNOWN;
+ midiTrackInfo->iHBank->blockSignals(true);
+ midiTrackInfo->iLBank->blockSignals(true);
+ midiTrackInfo->iHBank->setValue(0);
+ midiTrackInfo->iLBank->setValue(0);
+ midiTrackInfo->iHBank->blockSignals(false);
+ midiTrackInfo->iLBank->blockSignals(false);
+
+ if(mp->hwCtrlState(channel, CTRL_PROGRAM) != CTRL_VAL_UNKNOWN)
+ audio->msgSetHwCtrlState(mp, channel, CTRL_PROGRAM, CTRL_VAL_UNKNOWN);
+ return;
+ }
+ else
+ {
+ int np = mp->hwCtrlState(channel, CTRL_PROGRAM);
+ if(np == CTRL_VAL_UNKNOWN)
+ {
+ np = mp->lastValidHWCtrlState(channel, CTRL_PROGRAM);
+ if(np != CTRL_VAL_UNKNOWN)
+ {
+ hbank = (np & 0xff0000) >> 16;
+ lbank = (np & 0xff00) >> 8;
+ int ihbnk = hbank;
+ int ilbnk = lbank;
+ if(ihbnk == 0xff)
+ ihbnk = -1;
+ if(ilbnk == 0xff)
+ ilbnk = -1;
+ ++ihbnk;
+ ++ilbnk;
+ midiTrackInfo->iHBank->blockSignals(true);
+ midiTrackInfo->iLBank->blockSignals(true);
+ midiTrackInfo->iHBank->setValue(ihbnk);
+ midiTrackInfo->iLBank->setValue(ilbnk);
+ midiTrackInfo->iHBank->blockSignals(false);
+ midiTrackInfo->iLBank->blockSignals(false);
+ }
+ }
+ program = (hbank << 16) + (lbank << 8) + prog;
+ MidiPlayEvent ev(0, port, channel, ME_CONTROLLER, CTRL_PROGRAM, program);
+ audio->msgPlayMidiEvent(&ev);
+
+ MidiInstrument* instr = mp->instrument();
+ const char* name = instr->getPatchName(channel, program, song->mtype(), track->type() == Track::DRUM);
+ midiTrackInfo->iPatch->setText(QString(name));
+ }
+
+// updateTrackInfo();
+ }
+
+//---------------------------------------------------------
+// iLautstChanged
+//---------------------------------------------------------
+
+void Arranger::iLautstChanged(int val)
+ {
+ MidiTrack* track = (MidiTrack*)selected;
+ int outPort = track->outPort();
+ int chan = track->outChannel();
+ MidiPort* mp = &midiPorts[outPort];
+ MidiController* mctl = mp->midiController(CTRL_VOLUME);
+ if((val < mctl->minVal()) || (val > mctl->maxVal()))
+ {
+ if(mp->hwCtrlState(chan, CTRL_VOLUME) != CTRL_VAL_UNKNOWN)
+ audio->msgSetHwCtrlState(mp, chan, CTRL_VOLUME, CTRL_VAL_UNKNOWN);
+ }
+ else
+ {
+ val += mctl->bias();
+
+ MidiPlayEvent ev(0, outPort, chan,
+ ME_CONTROLLER, CTRL_VOLUME, val);
+ audio->msgPlayMidiEvent(&ev);
+ }
+ song->update(SC_MIDI_CONTROLLER);
+ }
+
+//---------------------------------------------------------
+// iTranspChanged
+//---------------------------------------------------------
+
+void Arranger::iTranspChanged(int val)
+ {
+ MidiTrack* track = (MidiTrack*)selected;
+ track->transposition = val;
+ }
+
+//---------------------------------------------------------
+// iAnschlChanged
+//---------------------------------------------------------
+
+void Arranger::iAnschlChanged(int val)
+ {
+ MidiTrack* track = (MidiTrack*)selected;
+ track->velocity = val;
+ }
+
+//---------------------------------------------------------
+// iVerzChanged
+//---------------------------------------------------------
+
+void Arranger::iVerzChanged(int val)
+ {
+ MidiTrack* track = (MidiTrack*)selected;
+ track->delay = val;
+ }
+
+//---------------------------------------------------------
+// iLenChanged
+//---------------------------------------------------------
+
+void Arranger::iLenChanged(int val)
+ {
+ MidiTrack* track = (MidiTrack*)selected;
+ track->len = val;
+ }
+
+//---------------------------------------------------------
+// iKomprChanged
+//---------------------------------------------------------
+
+void Arranger::iKomprChanged(int val)
+ {
+ MidiTrack* track = (MidiTrack*)selected;
+ track->compression = val;
+ }
+
+//---------------------------------------------------------
+// iPanChanged
+//---------------------------------------------------------
+
+void Arranger::iPanChanged(int val)
+ {
+ MidiTrack* track = (MidiTrack*)selected;
+ int port = track->outPort();
+ int chan = track->outChannel();
+ MidiPort* mp = &midiPorts[port];
+ MidiController* mctl = mp->midiController(CTRL_PANPOT);
+ if((val < mctl->minVal()) || (val > mctl->maxVal()))
+ {
+ if(mp->hwCtrlState(chan, CTRL_PANPOT) != CTRL_VAL_UNKNOWN)
+ audio->msgSetHwCtrlState(mp, chan, CTRL_PANPOT, CTRL_VAL_UNKNOWN);
+ }
+ else
+ {
+ val += mctl->bias();
+
+ // Realtime Change:
+ MidiPlayEvent ev(0, port, chan,
+ ME_CONTROLLER, CTRL_PANPOT, val);
+ audio->msgPlayMidiEvent(&ev);
+ }
+ song->update(SC_MIDI_CONTROLLER);
+ }
+
+//---------------------------------------------------------
+// instrPopup
+//---------------------------------------------------------
+
+void Arranger::instrPopup()
+ {
+ MidiTrack* track = (MidiTrack*)selected;
+ int channel = track->outChannel();
+ int port = track->outPort();
+ MidiInstrument* instr = midiPorts[port].instrument();
+ instr->populatePatchPopup(pop, channel, song->mtype(), track->type() == Track::DRUM);
+
+ if(pop->count() == 0)
+ return;
+ int rv = pop->exec(midiTrackInfo->iPatch->mapToGlobal(QPoint(10,5)));
+ if (rv != -1) {
+ MidiPlayEvent ev(0, port, channel, ME_CONTROLLER, CTRL_PROGRAM, rv);
+ audio->msgPlayMidiEvent(&ev);
+ updateTrackInfo(-1);
+ }
+ }
+
+//---------------------------------------------------------
+// recEchoToggled
+//---------------------------------------------------------
+
+void Arranger::recEchoToggled(bool v)
+{
+ MidiTrack* track = (MidiTrack*)selected;
+ track->setRecEcho(v);
+
+ //song->update(SC_???);
+}
+
+//---------------------------------------------------------
+// iProgramDoubleClicked
+//---------------------------------------------------------
+
+void Arranger::iProgramDoubleClicked()
+{
+ MidiTrack* track = (MidiTrack*)selected;
+ int port = track->outPort();
+ int chan = track->outChannel();
+ MidiPort* mp = &midiPorts[port];
+ MidiController* mctl = mp->midiController(CTRL_PROGRAM);
+
+ if(!track || !mctl)
+ return;
+
+ int lastv = mp->lastValidHWCtrlState(chan, CTRL_PROGRAM);
+ int curv = mp->hwCtrlState(chan, CTRL_PROGRAM);
+
+ if(curv == CTRL_VAL_UNKNOWN)
+ {
+ // If no value has ever been set yet, use the current knob value
+ // (or the controller's initial value?) to 'turn on' the controller.
+ if(lastv == CTRL_VAL_UNKNOWN)
+ {
+ int kiv = mctl->initVal();
+ //int kiv = lrint(_knob->value());
+ if(kiv == CTRL_VAL_UNKNOWN)
+ kiv = 0;
+ //else
+ //{
+ //if(kiv < mctrl->minVal())
+ // kiv = mctrl->minVal();
+ //if(kiv > mctrl->maxVal())
+ // kiv = mctrl->maxVal();
+ //kiv += mctrl->bias();
+ //}
+
+ //MidiPlayEvent ev(0, port, chan, ME_CONTROLLER, num, kiv);
+ MidiPlayEvent ev(0, port, chan, ME_CONTROLLER, CTRL_PROGRAM, kiv);
+ audio->msgPlayMidiEvent(&ev);
+ }
+ else
+ {
+ MidiPlayEvent ev(0, port, chan, ME_CONTROLLER, CTRL_PROGRAM, lastv);
+ audio->msgPlayMidiEvent(&ev);
+ }
+ }
+ else
+ {
+ if(mp->hwCtrlState(chan, CTRL_PROGRAM) != CTRL_VAL_UNKNOWN)
+ audio->msgSetHwCtrlState(mp, chan, CTRL_PROGRAM, CTRL_VAL_UNKNOWN);
+ }
+
+ song->update(SC_MIDI_CONTROLLER);
+}
+
+//---------------------------------------------------------
+// iLautstDoubleClicked
+//---------------------------------------------------------
+
+void Arranger::iLautstDoubleClicked()
+{
+ MidiTrack* track = (MidiTrack*)selected;
+ int port = track->outPort();
+ int chan = track->outChannel();
+ MidiPort* mp = &midiPorts[port];
+ MidiController* mctl = mp->midiController(CTRL_VOLUME);
+
+ if(!track || !mctl)
+ return;
+
+ int lastv = mp->lastValidHWCtrlState(chan, CTRL_VOLUME);
+ int curv = mp->hwCtrlState(chan, CTRL_VOLUME);
+
+ if(curv == CTRL_VAL_UNKNOWN)
+ {
+ // If no value has ever been set yet, use the current knob value
+ // (or the controller's initial value?) to 'turn on' the controller.
+ if(lastv == CTRL_VAL_UNKNOWN)
+ {
+ int kiv = mctl->initVal();
+ //int kiv = lrint(_knob->value());
+ if(kiv == CTRL_VAL_UNKNOWN)
+ // Set volume to 78% of range, so that if range is 0 - 127, then value is 100.
+ kiv = lround(double(mctl->maxVal() - mctl->minVal()) * 0.7874);
+ else
+ {
+ if(kiv < mctl->minVal())
+ kiv = mctl->minVal();
+ if(kiv > mctl->maxVal())
+ kiv = mctl->maxVal();
+ kiv += mctl->bias();
+ }
+
+ MidiPlayEvent ev(0, port, chan, ME_CONTROLLER, CTRL_VOLUME, kiv);
+ audio->msgPlayMidiEvent(&ev);
+ }
+ else
+ {
+ MidiPlayEvent ev(0, port, chan, ME_CONTROLLER, CTRL_VOLUME, lastv);
+ audio->msgPlayMidiEvent(&ev);
+ }
+ }
+ else
+ {
+ if(mp->hwCtrlState(chan, CTRL_VOLUME) != CTRL_VAL_UNKNOWN)
+ audio->msgSetHwCtrlState(mp, chan, CTRL_VOLUME, CTRL_VAL_UNKNOWN);
+ }
+
+ song->update(SC_MIDI_CONTROLLER);
+}
+
+//---------------------------------------------------------
+// iPanDoubleClicked
+//---------------------------------------------------------
+
+void Arranger::iPanDoubleClicked()
+{
+ MidiTrack* track = (MidiTrack*)selected;
+ int port = track->outPort();
+ int chan = track->outChannel();
+ MidiPort* mp = &midiPorts[port];
+ MidiController* mctl = mp->midiController(CTRL_PANPOT);
+
+ if(!track || !mctl)
+ return;
+
+ int lastv = mp->lastValidHWCtrlState(chan, CTRL_PANPOT);
+ int curv = mp->hwCtrlState(chan, CTRL_PANPOT);
+
+ if(curv == CTRL_VAL_UNKNOWN)
+ {
+ // If no value has ever been set yet, use the current knob value
+ // (or the controller's initial value?) to 'turn on' the controller.
+ if(lastv == CTRL_VAL_UNKNOWN)
+ {
+ int kiv = mctl->initVal();
+ //int kiv = lrint(_knob->value());
+ if(kiv == CTRL_VAL_UNKNOWN)
+ // Set volume to 50% of range, so that if range is 0 - 127, then value is 64.
+ kiv = lround(double(mctl->maxVal() - mctl->minVal()) * 0.5);
+ else
+ {
+ if(kiv < mctl->minVal())
+ kiv = mctl->minVal();
+ if(kiv > mctl->maxVal())
+ kiv = mctl->maxVal();
+ kiv += mctl->bias();
+ }
+
+ MidiPlayEvent ev(0, port, chan, ME_CONTROLLER, CTRL_PANPOT, kiv);
+ audio->msgPlayMidiEvent(&ev);
+ }
+ else
+ {
+ MidiPlayEvent ev(0, port, chan, ME_CONTROLLER, CTRL_PANPOT, lastv);
+ audio->msgPlayMidiEvent(&ev);
+ }
+ }
+ else
+ {
+ if(mp->hwCtrlState(chan, CTRL_PANPOT) != CTRL_VAL_UNKNOWN)
+ audio->msgSetHwCtrlState(mp, chan, CTRL_PANPOT, CTRL_VAL_UNKNOWN);
+ }
+
+ song->update(SC_MIDI_CONTROLLER);
+}
+
+//---------------------------------------------------------
+// genMidiTrackInfo
+//---------------------------------------------------------
+
+void Arranger::genMidiTrackInfo()
+ {
+ //midiTrackInfo->iChanDetectLabel->setPixmap(*darkgreendotIcon);
+ midiTrackInfo->iChanDetectLabel->setPixmap(*darkRedLedIcon);
+
+ QIcon recEchoIconSet;
+ recEchoIconSet.setPixmap(*recEchoIconOn, QIcon::Automatic, QIcon::Normal, QIcon::On);
+ recEchoIconSet.setPixmap(*recEchoIconOff, QIcon::Automatic, QIcon::Normal, QIcon::Off);
+ midiTrackInfo->recEchoButton->setIconSet(recEchoIconSet);
+
+ //midiTrackInfo->trackNameLabel->setAlignment(AlignCenter | WordBreak);
+ //midiTrackInfo->trackNameLabel->setSizePolicy(QSizePolicy(QSizePolicy::Ignored, QSizePolicy::Minimum));
+ //frameShape WinPanel
+ //frameShadow Raised
+ //lineWidth 1
+ //midLineWidth 0
+ midiTrackInfo->trackNameLabel->setBackgroundColor(QColor(0, 160, 255)); // Med blue
+
+ // Added by Tim. p3.3.9
+ setTrackInfoLabelText();
+ setTrackInfoLabelFont();
+
+
+ connect(midiTrackInfo->iPatch, SIGNAL(released()), SLOT(instrPopup()));
+
+ pop = new Q3PopupMenu(midiTrackInfo->iPatch);
+ pop->setCheckable(false);
+
+ // Removed by Tim. p3.3.9
+ //connect(midiTrackInfo->iName, SIGNAL(returnPressed()), SLOT(iNameChanged()));
+
+ connect(midiTrackInfo->iOutputChannel, SIGNAL(valueChanged(int)), SLOT(iOutputChannelChanged(int)));
+ ///connect(midiTrackInfo->iInputChannel, SIGNAL(textChanged(const QString&)), SLOT(iInputChannelChanged(const QString&)));
+ connect(midiTrackInfo->iHBank, SIGNAL(valueChanged(int)), SLOT(iProgHBankChanged()));
+ connect(midiTrackInfo->iLBank, SIGNAL(valueChanged(int)), SLOT(iProgLBankChanged()));
+ connect(midiTrackInfo->iProgram, SIGNAL(valueChanged(int)), SLOT(iProgramChanged()));
+ connect(midiTrackInfo->iHBank, SIGNAL(doubleClicked()), SLOT(iProgramDoubleClicked()));
+ connect(midiTrackInfo->iLBank, SIGNAL(doubleClicked()), SLOT(iProgramDoubleClicked()));
+ connect(midiTrackInfo->iProgram, SIGNAL(doubleClicked()), SLOT(iProgramDoubleClicked()));
+ connect(midiTrackInfo->iLautst, SIGNAL(valueChanged(int)), SLOT(iLautstChanged(int)));
+ connect(midiTrackInfo->iLautst, SIGNAL(doubleClicked()), SLOT(iLautstDoubleClicked()));
+ connect(midiTrackInfo->iTransp, SIGNAL(valueChanged(int)), SLOT(iTranspChanged(int)));
+ connect(midiTrackInfo->iAnschl, SIGNAL(valueChanged(int)), SLOT(iAnschlChanged(int)));
+ connect(midiTrackInfo->iVerz, SIGNAL(valueChanged(int)), SLOT(iVerzChanged(int)));
+ connect(midiTrackInfo->iLen, SIGNAL(valueChanged(int)), SLOT(iLenChanged(int)));
+ connect(midiTrackInfo->iKompr, SIGNAL(valueChanged(int)), SLOT(iKomprChanged(int)));
+ connect(midiTrackInfo->iPan, SIGNAL(valueChanged(int)), SLOT(iPanChanged(int)));
+ connect(midiTrackInfo->iPan, SIGNAL(doubleClicked()), SLOT(iPanDoubleClicked()));
+ connect(midiTrackInfo->iOutput, SIGNAL(activated(int)), SLOT(iOutputPortChanged(int)));
+ ///connect(midiTrackInfo->iInput, SIGNAL(textChanged(const QString&)), SLOT(iInputPortChanged(const QString&)));
+ connect(midiTrackInfo->recordButton, SIGNAL(clicked()), SLOT(recordClicked()));
+ connect(midiTrackInfo->progRecButton, SIGNAL(clicked()), SLOT(progRecClicked()));
+ connect(midiTrackInfo->volRecButton, SIGNAL(clicked()), SLOT(volRecClicked()));
+ connect(midiTrackInfo->panRecButton, SIGNAL(clicked()), SLOT(panRecClicked()));
+ connect(midiTrackInfo->recEchoButton, SIGNAL(toggled(bool)), SLOT(recEchoToggled(bool)));
+ connect(midiTrackInfo->iRButton, SIGNAL(pressed()), SLOT(inRoutesPressed()));
+
+ // TODO: Works OK, but disabled for now, until we figure out what to do about multiple out routes and display values...
+ midiTrackInfo->oRButton->setEnabled(false);
+ connect(midiTrackInfo->oRButton, SIGNAL(pressed()), SLOT(outRoutesPressed()));
+
+ connect(heartBeatTimer, SIGNAL(timeout()), SLOT(midiTrackInfoHeartBeat()));
+ }
+
+//---------------------------------------------------------
+// updateMidiTrackInfo
+//---------------------------------------------------------
+
+void Arranger::updateMidiTrackInfo(int flags)
+{
+ MidiTrack* track = (MidiTrack*)selected;
+
+ // Is it simply a midi controller value adjustment? Forget it.
+ if(flags == SC_MIDI_CONTROLLER)
+ return;
+
+ // p3.3.47 Update the routing popup menu if anything relevant changes.
+ //if(gRoutingPopupMenuMaster == midiTrackInfo && selected && (flags & (SC_ROUTE | SC_CHANNELS | SC_CONFIG)))
+ if(flags & (SC_ROUTE | SC_CHANNELS | SC_CONFIG)) // p3.3.50
+ // Use this handy shared routine.
+ //muse->updateRouteMenus(selected);
+ muse->updateRouteMenus(selected, midiTrackInfo); // p3.3.50
+
+ // Added by Tim. p3.3.9
+ setTrackInfoLabelText();
+ setTrackInfoLabelFont();
+
+ //{
+ int outChannel = track->outChannel();
+ ///int inChannel = track->inChannelMask();
+ int outPort = track->outPort();
+ //int inPort = track->inPortMask();
+ ///unsigned int inPort = track->inPortMask();
+
+ //midiTrackInfo->iInput->clear();
+ midiTrackInfo->iOutput->clear();
+
+ for (int i = 0; i < MIDI_PORTS; ++i) {
+ QString name;
+ name.sprintf("%d:%s", i+1, midiPorts[i].portname().latin1());
+ midiTrackInfo->iOutput->insertItem(name, i);
+ if (i == outPort)
+ midiTrackInfo->iOutput->setCurrentItem(i);
+ }
+ //midiTrackInfo->iInput->setText(bitmap2String(inPort));
+ ///midiTrackInfo->iInput->setText(u32bitmap2String(inPort));
+
+ //midiTrackInfo->iInputChannel->setText(bitmap2String(inChannel));
+
+ // Removed by Tim. p3.3.9
+ //if (midiTrackInfo->iName->text() != selected->name()) {
+ // midiTrackInfo->iName->setText(selected->name());
+ // midiTrackInfo->iName->home(false);
+ // }
+
+ midiTrackInfo->iOutputChannel->setValue(outChannel+1);
+ ///midiTrackInfo->iInputChannel->setText(bitmap2String(inChannel));
+
+ // Set record echo.
+ if(midiTrackInfo->recEchoButton->isOn() != track->recEcho())
+ {
+ midiTrackInfo->recEchoButton->blockSignals(true);
+ midiTrackInfo->recEchoButton->setOn(track->recEcho());
+ midiTrackInfo->recEchoButton->blockSignals(false);
+ }
+
+ MidiPort* mp = &midiPorts[outPort];
+ int nprogram = mp->hwCtrlState(outChannel, CTRL_PROGRAM);
+ if(nprogram == CTRL_VAL_UNKNOWN)
+ {
+ midiTrackInfo->iHBank->blockSignals(true);
+ midiTrackInfo->iLBank->blockSignals(true);
+ midiTrackInfo->iProgram->blockSignals(true);
+ midiTrackInfo->iHBank->setValue(0);
+ midiTrackInfo->iLBank->setValue(0);
+ midiTrackInfo->iProgram->setValue(0);
+ midiTrackInfo->iHBank->blockSignals(false);
+ midiTrackInfo->iLBank->blockSignals(false);
+ midiTrackInfo->iProgram->blockSignals(false);
+
+ program = CTRL_VAL_UNKNOWN;
+ nprogram = mp->lastValidHWCtrlState(outChannel, CTRL_PROGRAM);
+ if(nprogram == CTRL_VAL_UNKNOWN)
+ //midiTrackInfo->iPatch->setText(QString("<unknown>"));
+ midiTrackInfo->iPatch->setText(tr("<unknown>"));
+ else
+ {
+ MidiInstrument* instr = mp->instrument();
+ const char* name = instr->getPatchName(outChannel, nprogram, song->mtype(), track->type() == Track::DRUM);
+ midiTrackInfo->iPatch->setText(QString(name));
+ }
+ }
+ else
+ //if (program != nprogram)
+ {
+ program = nprogram;
+
+ //int hb, lb, pr;
+ //if (program == CTRL_VAL_UNKNOWN) {
+ // hb = lb = pr = 0;
+ // midiTrackInfo->iPatch->setText("---");
+ // }
+ //else
+ //{
+ MidiInstrument* instr = mp->instrument();
+ const char* name = instr->getPatchName(outChannel, program, song->mtype(), track->type() == Track::DRUM);
+ midiTrackInfo->iPatch->setText(QString(name));
+
+ int hb = ((program >> 16) & 0xff) + 1;
+ if (hb == 0x100)
+ hb = 0;
+ int lb = ((program >> 8) & 0xff) + 1;
+ if (lb == 0x100)
+ lb = 0;
+ int pr = (program & 0xff) + 1;
+ if (pr == 0x100)
+ pr = 0;
+ //}
+ midiTrackInfo->iHBank->blockSignals(true);
+ midiTrackInfo->iLBank->blockSignals(true);
+ midiTrackInfo->iProgram->blockSignals(true);
+
+ midiTrackInfo->iHBank->setValue(hb);
+ midiTrackInfo->iLBank->setValue(lb);
+ midiTrackInfo->iProgram->setValue(pr);
+
+ midiTrackInfo->iHBank->blockSignals(false);
+ midiTrackInfo->iLBank->blockSignals(false);
+ midiTrackInfo->iProgram->blockSignals(false);
+ }
+
+ MidiController* mc = mp->midiController(CTRL_VOLUME);
+ int mn = mc->minVal();
+ int v = mp->hwCtrlState(outChannel, CTRL_VOLUME);
+ volume = v;
+ if(v == CTRL_VAL_UNKNOWN)
+ //{
+ //v = mc->initVal();
+ //if(v == CTRL_VAL_UNKNOWN)
+ // v = 0;
+ v = mn - 1;
+ //}
+ else
+ // Auto bias...
+ v -= mc->bias();
+ midiTrackInfo->iLautst->blockSignals(true);
+ midiTrackInfo->iLautst->setRange(mn - 1, mc->maxVal());
+ midiTrackInfo->iLautst->setValue(v);
+ midiTrackInfo->iLautst->blockSignals(false);
+
+ mc = mp->midiController(CTRL_PANPOT);
+ mn = mc->minVal();
+ v = mp->hwCtrlState(outChannel, CTRL_PANPOT);
+ pan = v;
+ if(v == CTRL_VAL_UNKNOWN)
+ //{
+ //v = mc->initVal();
+ //if(v == CTRL_VAL_UNKNOWN)
+ // v = 0;
+ v = mn - 1;
+ //}
+ else
+ // Auto bias...
+ v -= mc->bias();
+ midiTrackInfo->iPan->blockSignals(true);
+ midiTrackInfo->iPan->setRange(mn - 1, mc->maxVal());
+ midiTrackInfo->iPan->setValue(v);
+ midiTrackInfo->iPan->blockSignals(false);
+ //}
+
+
+ // Does it include a midi controller value adjustment? Then handle it...
+ //if(flags & SC_MIDI_CONTROLLER)
+ // seek();
+
+ // Is it simply a midi controller value adjustment? Forget it.
+ //if(flags != SC_MIDI_CONTROLLER)
+ //{
+ midiTrackInfo->iTransp->setValue(track->transposition);
+ midiTrackInfo->iAnschl->setValue(track->velocity);
+ midiTrackInfo->iVerz->setValue(track->delay);
+ midiTrackInfo->iLen->setValue(track->len);
+ midiTrackInfo->iKompr->setValue(track->compression);
+ //}
+}
+
+/*
+//---------------------------------------------------------
+// seek
+// change values akkording to seek position
+//---------------------------------------------------------
+
+void Arranger::seek()
+ {
+ if (!showTrackinfoFlag || !selected)
+ return;
+ switch(selected->type()) {
+ case Track::MIDI:
+ case Track::DRUM:
+ {
+ MidiTrack* track = (MidiTrack*)selected;
+ int outPort = track->outPort();
+ int outChannel = track->outChannel();
+ MidiPort* mp = &midiPorts[outPort];
+
+ // int nprogram = mp->getCtrl(outChannel, tick, CTRL_PROGRAM);
+ int nprogram = mp->hwCtrlState(outChannel, CTRL_PROGRAM);
+ if(nprogram == CTRL_VAL_UNKNOWN)
+ {
+ midiTrackInfo->iHBank->blockSignals(true);
+ midiTrackInfo->iLBank->blockSignals(true);
+ midiTrackInfo->iProgram->blockSignals(true);
+ midiTrackInfo->iHBank->setValue(0);
+ midiTrackInfo->iLBank->setValue(0);
+ midiTrackInfo->iProgram->setValue(0);
+ midiTrackInfo->iHBank->blockSignals(false);
+ midiTrackInfo->iLBank->blockSignals(false);
+ midiTrackInfo->iProgram->blockSignals(false);
+
+ program = CTRL_VAL_UNKNOWN;
+ nprogram = mp->lastValidHWCtrlState(outChannel, CTRL_PROGRAM);
+ if(nprogram == CTRL_VAL_UNKNOWN)
+ midiTrackInfo->iPatch->setText(QString("<unknown>"));
+ else
+ {
+ MidiInstrument* instr = mp->instrument();
+ const char* name = instr->getPatchName(outChannel, nprogram, song->mtype(), track->type() == Track::DRUM);
+ midiTrackInfo->iPatch->setText(QString(name));
+ }
+ }
+ else
+ if (program != nprogram) {
+ program = nprogram;
+
+ //int hb, lb, pr;
+ //if (program == CTRL_VAL_UNKNOWN) {
+ // hb = lb = pr = 0;
+ // midiTrackInfo->iPatch->setText("---");
+ // }
+ //else
+ //{
+ MidiInstrument* instr = mp->instrument();
+ const char* name = instr->getPatchName(outChannel, program, song->mtype(), track->type() == Track::DRUM);
+ midiTrackInfo->iPatch->setText(QString(name));
+
+ int hb = ((program >> 16) & 0xff) + 1;
+ if (hb == 0x100)
+ hb = 0;
+ int lb = ((program >> 8) & 0xff) + 1;
+ if (lb == 0x100)
+ lb = 0;
+ int pr = (program & 0xff) + 1;
+ if (pr == 0x100)
+ pr = 0;
+ //}
+ midiTrackInfo->iHBank->blockSignals(true);
+ midiTrackInfo->iLBank->blockSignals(true);
+ midiTrackInfo->iProgram->blockSignals(true);
+
+ midiTrackInfo->iHBank->setValue(hb);
+ midiTrackInfo->iLBank->setValue(lb);
+ midiTrackInfo->iProgram->setValue(pr);
+
+ midiTrackInfo->iHBank->blockSignals(false);
+ midiTrackInfo->iLBank->blockSignals(false);
+ midiTrackInfo->iProgram->blockSignals(false);
+ }
+
+ //int nvolume = midiPorts[outPort].getCtrl(outChannel, tick, CTRL_VOLUME);
+ // int npan = midiPorts[outPort].getCtrl(outChannel, tick, CTRL_PANPOT);
+ MidiController* mc = mp->midiController(CTRL_VOLUME);
+ int v = mp->hwCtrlState(outChannel, CTRL_VOLUME);
+ if(v != volume)
+ {
+ volume = v;
+ if(v == CTRL_VAL_UNKNOWN)
+ v = mc->minVal() - 1;
+ else
+ v -= mc->bias();
+ midiTrackInfo->iLautst->blockSignals(true);
+ midiTrackInfo->iLautst->setValue(v);
+ midiTrackInfo->iLautst->blockSignals(false);
+ }
+ mc = mp->midiController(CTRL_PANPOT);
+ v = mp->hwCtrlState(outChannel, CTRL_PANPOT);
+ if(v != pan)
+ {
+ pan = v;
+ if(v == CTRL_VAL_UNKNOWN)
+ //{
+ //v = mc->initVal();
+ //if(v == CTRL_VAL_UNKNOWN)
+ // v = 0;
+ v = mc->minVal() - 1;
+ //}
+ else
+ // Auto bias...
+ v -= mc->bias();
+ midiTrackInfo->iPan->blockSignals(true);
+ midiTrackInfo->iPan->setValue(v);
+ midiTrackInfo->iPan->blockSignals(false);
+ }
+
+ }
+ break;
+ case Track::WAVE:
+ case Track::AUDIO_OUTPUT:
+ case Track::AUDIO_INPUT:
+ case Track::AUDIO_GROUP:
+ case Track::AUDIO_AUX:
+ case Track::AUDIO_SOFTSYNTH:
+ break;
+ }
+ }
+*/
diff --git a/muse2/muse/audio.cpp b/muse2/muse/audio.cpp
new file mode 100644
index 00000000..9a7029db
--- /dev/null
+++ b/muse2/muse/audio.cpp
@@ -0,0 +1,1431 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: audio.cpp,v 1.59.2.30 2009/12/20 05:00:35 terminator356 Exp $
+//
+// (C) Copyright 2001-2004 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include <cmath>
+#include <errno.h>
+
+#include <qsocketnotifier.h>
+
+#include "app.h"
+#include "song.h"
+#include "node.h"
+#include "audiodev.h"
+#include "mididev.h"
+#include "alsamidi.h"
+#include "synth.h"
+#include "audioprefetch.h"
+#include "plugin.h"
+#include "audio.h"
+#include "wave.h"
+#include "midictrl.h"
+#include "midiseq.h"
+#include "sync.h"
+#include "midi.h"
+#include "event.h"
+#include "gconfig.h"
+#include "pos.h"
+#include "ticksynth.h"
+
+extern double curTime();
+Audio* audio;
+AudioDevice* audioDevice; // current audio device in use
+
+// p3.3.25
+extern unsigned int volatile midiExtSyncTicks;
+
+
+//static const unsigned char mmcDeferredPlayMsg[] = { 0x7f, 0x7f, 0x06, 0x03 };
+//static const unsigned char mmcStopMsg[] = { 0x7f, 0x7f, 0x06, 0x01 };
+
+const char* seqMsgList[] = {
+ "SEQM_ADD_TRACK", "SEQM_REMOVE_TRACK", "SEQM_CHANGE_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", "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", "SEQM_PANIC",
+ "SEQM_MIDI_LOCAL_OFF",
+ "SEQM_SET_MIDI_DEVICE",
+ "SEQM_PLAY_MIDI_EVENT",
+ "SEQM_SET_HW_CTRL_STATE",
+ "SEQM_SET_HW_CTRL_STATES",
+ "SEQM_SET_TRACK_OUT_PORT",
+ "SEQM_SET_TRACK_OUT_CHAN",
+ "SEQM_REMAP_PORT_DRUM_CTL_EVS",
+ "SEQM_CHANGE_ALL_PORT_DRUM_CTL_EVS",
+ "SEQM_SCAN_ALSA_MIDI_PORTS",
+ "SEQM_SET_AUX",
+ "SEQM_UPDATE_SOLO_STATES",
+ "MIDI_SHOW_INSTR_GUI",
+ "AUDIO_RECORD",
+ "AUDIO_ROUTEADD", "AUDIO_ROUTEREMOVE",
+ "AUDIO_VOL", "AUDIO_PAN",
+ "AUDIO_ADDPLUGIN",
+ "AUDIO_SET_SEG_SIZE",
+ "AUDIO_SET_PREFADER", "AUDIO_SET_CHANNELS",
+ "AUDIO_SET_PLUGIN_CTRL_VAL",
+ "AUDIO_SWAP_CONTROLLER_IDX",
+ "AUDIO_CLEAR_CONTROLLER_EVENTS",
+ "AUDIO_SEEK_PREV_AC_EVENT",
+ "AUDIO_SEEK_NEXT_AC_EVENT",
+ "AUDIO_ERASE_AC_EVENT",
+ "AUDIO_ERASE_RANGE_AC_EVENTS",
+ "AUDIO_ADD_AC_EVENT",
+ "AUDIO_SET_SOLO", "AUDIO_SET_SEND_METRONOME",
+ "MS_PROCESS", "MS_STOP", "MS_SET_RTC", "MS_UPDATE_POLL_FD",
+ "SEQM_IDLE", "SEQM_SEEK"
+ };
+
+const char* audioStates[] = {
+ "STOP", "START_PLAY", "PLAY", "LOOP1", "LOOP2", "SYNC", "PRECOUNT"
+ };
+
+
+//---------------------------------------------------------
+// Audio
+//---------------------------------------------------------
+
+Audio::Audio()
+ {
+ _running = false;
+ recording = false;
+ idle = false;
+ _freewheel = false;
+ _bounce = false;
+ //loopPassed = false;
+ _loopFrame = 0;
+ _loopCount = 0;
+
+ _pos.setType(Pos::FRAMES);
+ _pos.setFrame(0);
+ curTickPos = 0;
+
+ midiClick = 0;
+ clickno = 0;
+ clicksMeasure = 0;
+ ticksBeat = 0;
+
+ syncTime = 0.0;
+ syncFrame = 0;
+ frameOffset = 0;
+
+ state = STOP;
+ msg = 0;
+
+ // Changed by Tim. p3.3.8
+ //startRecordPos.setType(Pos::TICKS);
+ //endRecordPos.setType(Pos::TICKS);
+ startRecordPos.setType(Pos::FRAMES);
+ endRecordPos.setType(Pos::FRAMES);
+
+ _audioMonitor = 0;
+ _audioMaster = 0;
+
+ //---------------------------------------------------
+ // establish pipes/sockets
+ //---------------------------------------------------
+
+ int filedes[2]; // 0 - reading 1 - writing
+ if (pipe(filedes) == -1) {
+ perror("creating pipe0");
+ exit(-1);
+ }
+ fromThreadFdw = filedes[1];
+ fromThreadFdr = filedes[0];
+ int rv = fcntl(fromThreadFdw, F_SETFL, O_NONBLOCK);
+ if (rv == -1)
+ perror("set pipe O_NONBLOCK");
+
+ if (pipe(filedes) == -1) {
+ perror("creating pipe1");
+ exit(-1);
+ }
+ 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
+//---------------------------------------------------------
+
+extern bool initJackAudio();
+
+bool Audio::start()
+ {
+ //process(segmentSize); // warm up caches
+ state = STOP;
+ _loopCount = 0;
+ muse->setHeartBeat();
+ if (audioDevice) {
+ // Added by Tim. p3.3.6
+ //_running = true;
+
+ //audioDevice->start();
+ }
+ else {
+ if(false == initJackAudio()) {
+ // Added by Tim. p3.3.6
+ //_running = true;
+
+ InputList* itl = song->inputs();
+ for (iAudioInput i = itl->begin(); i != itl->end(); ++i) {
+ //printf("reconnecting input %s\n", (*i)->name().ascii());
+ for (int x=0; x < (*i)->channels();x++)
+ (*i)->setJackPort(x,0);
+ (*i)->setName((*i)->name()); // restore jack connection
+ }
+
+ OutputList* otl = song->outputs();
+ for (iAudioOutput i = otl->begin(); i != otl->end(); ++i) {
+ //printf("reconnecting output %s\n", (*i)->name().ascii());
+ for (int x=0; x < (*i)->channels();x++)
+ (*i)->setJackPort(x,0);
+ //printf("name=%s\n",(*i)->name().latin1());
+ (*i)->setName((*i)->name()); // restore jack connection
+ }
+ //audioDevice->start();
+ }
+ else {
+ printf("Failed to init audio!\n");
+ return false;
+ }
+ }
+
+ audioDevice->start(realTimePriority);
+
+ _running = true;
+
+ // shall we really stop JACK transport and locate to
+ // saved position?
+
+ audioDevice->stopTransport();
+ //audioDevice->seekTransport(song->cPos().frame());
+ audioDevice->seekTransport(song->cPos());
+ return true;
+ }
+
+//---------------------------------------------------------
+// stop
+// stop audio processing
+//---------------------------------------------------------
+
+void Audio::stop(bool)
+ {
+ if (audioDevice)
+ audioDevice->stop();
+ _running = false;
+ }
+
+//---------------------------------------------------------
+// sync
+// return true if sync is completed
+//---------------------------------------------------------
+
+bool Audio::sync(int jackState, unsigned frame)
+ {
+
+// Changed by Tim. p3.3.24
+/*
+ bool done = true;
+ if (state == LOOP1)
+ state = LOOP2;
+ else {
+ if (_pos.frame() != frame) {
+ Pos p(frame, false);
+ seek(p);
+ }
+ state = State(jackState);
+ if (!_freewheel)
+ //done = audioPrefetch->seekDone;
+ done = audioPrefetch->seekDone();
+ }
+
+ return done;
+*/
+ 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);
+ Pos p(frame, false);
+ seek(p);
+ if (!_freewheel)
+ done = audioPrefetch->seekDone();
+ if (s == START_PLAY)
+ state = START_PLAY;
+ }
+ else {
+ //if (frame != _seqTime.pos.frame()) {
+ if (frame != _pos.frame()) {
+ // seek during seek
+ //seek(Pos(frame, AL::FRAMES));
+ seek(Pos(frame, false));
+ }
+ done = audioPrefetch->seekDone();
+ }
+ }
+ return done;
+
+ }
+
+//---------------------------------------------------------
+// setFreewheel
+//---------------------------------------------------------
+
+void Audio::setFreewheel(bool val)
+ {
+// printf("JACK: freewheel callback %d\n", val);
+ _freewheel = val;
+ }
+
+//---------------------------------------------------------
+// shutdown
+//---------------------------------------------------------
+
+void Audio::shutdown()
+ {
+ _running = false;
+ printf("Audio::shutdown()\n");
+ write(sigFd, "S", 1);
+ }
+
+//---------------------------------------------------------
+// process
+// process one audio buffer at position "_pos "
+// of size "frames"
+//---------------------------------------------------------
+
+void Audio::process(unsigned frames)
+ {
+ // Disabled by Tim. p3.3.22
+// extern int watchAudio;
+// ++watchAudio; // make a simple watchdog happy
+
+ if (!checkAudioDevice()) return;
+ if (msg) {
+ processMsg(msg);
+ int sn = msg->serialNo;
+ msg = 0; // dont process again
+ int rv = write(fromThreadFdw, &sn, sizeof(int));
+ if (rv != sizeof(int)) {
+ fprintf(stderr, "audio: write(%d) pipe failed: %s\n",
+ fromThreadFdw, strerror(errno));
+ }
+ }
+
+ OutputList* ol = song->outputs();
+ if (idle) {
+ // deliver no audio
+ for (iAudioOutput i = ol->begin(); i != ol->end(); ++i)
+ (*i)->silence(frames);
+ return;
+ }
+
+ int jackState = audioDevice->getState();
+
+ //if(debugMsg)
+ // printf("Audio::process Current state:%s jackState:%s\n", audioStates[state], audioStates[jackState]);
+
+ if (state == START_PLAY && jackState == PLAY) {
+ _loopCount = 0;
+ startRolling();
+ if (_bounce)
+ write(sigFd, "f", 1);
+ }
+ else if (state == LOOP2 && jackState == PLAY) {
+ ++_loopCount; // Number of times we have looped so far
+ Pos newPos(_loopFrame, false);
+ seek(newPos);
+ startRolling();
+ }
+ else if (isPlaying() && jackState == STOP) {
+ // p3.3.43 Make sure to stop bounce and freewheel mode, for example if user presses stop
+ // in QJackCtl before right-hand marker is reached (which is handled below).
+ //printf("Audio::process isPlaying() && jackState == STOP\n");
+ //if (_bounce)
+ //{
+ //printf(" stopping bounce...\n");
+ // _bounce = false;
+ // write(sigFd, "F", 1);
+ //}
+
+ stopRolling();
+ }
+ else if (state == START_PLAY && jackState == STOP) {
+ state = STOP;
+ if (_bounce) {
+ audioDevice->startTransport();
+ }
+ else
+ write(sigFd, "3", 1); // abort rolling
+ }
+ else if (state == STOP && jackState == PLAY) {
+ _loopCount = 0;
+ startRolling();
+ }
+ else if (state == LOOP1 && jackState == PLAY)
+ ; // treat as play
+ else if (state == LOOP2 && jackState == START_PLAY) {
+ ; // sync cycle
+ }
+ else if (state != jackState)
+ printf("JACK: state transition %s -> %s ?\n",
+ audioStates[state], audioStates[jackState]);
+
+// printf("p %s %s %d\n", audioStates[jackState], audioStates[state], _pos.frame());
+
+ //
+ // clear aux send buffers
+ //
+ AuxList* al = song->auxs();
+ for (unsigned i = 0; i < al->size(); ++i) {
+ AudioAux* a = (AudioAux*)((*al)[i]);
+ float** dst = a->sendBuffer();
+ for (int ch = 0; ch < a->channels(); ++ch)
+ memset(dst[ch], 0, sizeof(float) * segmentSize);
+ }
+
+ for (iAudioOutput i = ol->begin(); i != ol->end(); ++i)
+ (*i)->processInit(frames);
+ int samplePos = _pos.frame();
+ int offset = 0; // buffer offset in audio buffers
+
+ if (isPlaying()) {
+ if (!freewheel())
+ audioPrefetch->msgTick();
+
+ if (_bounce && _pos >= song->rPos()) {
+ _bounce = false;
+ write(sigFd, "F", 1);
+ return;
+ }
+
+ //
+ // check for end of song
+ //
+ if ((curTickPos >= song->len())
+ && !(song->record()
+ || _bounce
+ || song->loop())) {
+ //if(debugMsg)
+ // printf("Audio::process curTickPos >= song->len\n");
+
+ audioDevice->stopTransport();
+ return;
+ }
+
+ //
+ // check for loop end
+ //
+ if (state == PLAY && song->loop() && !_bounce && !extSyncFlag.value()) {
+ const Pos& loop = song->rPos();
+ unsigned n = loop.frame() - samplePos - (3 * frames);
+ if (n < frames) {
+ // loop end in current cycle
+ unsigned lpos = song->lPos().frame();
+ // adjust loop start so we get exact loop len
+ if (n > lpos)
+ n = 0;
+ state = LOOP1;
+ _loopFrame = lpos - n;
+
+ // clear sustain
+ for (int i = 0; i < MIDI_PORTS; ++i) {
+ MidiPort* mp = &midiPorts[i];
+ for (int ch = 0; ch < MIDI_CHANNELS; ++ch) {
+ if (mp->hwCtrlState(ch, CTRL_SUSTAIN) == 127) {
+ if (mp->device()!=NULL) {
+ //printf("send clear sustain!!!!!!!! port %d ch %d\n", i,ch);
+ MidiPlayEvent ev(0, i, ch, ME_CONTROLLER, CTRL_SUSTAIN, 0);
+ // may cause problems, called from audio thread
+ mp->device()->putEvent(ev);
+ }
+ }
+ }
+ }
+
+ //audioDevice->seekTransport(_loopFrame);
+ Pos lp(_loopFrame, false);
+ audioDevice->seekTransport(lp);
+
+
+// printf(" process: seek to %d, end %d\n", _loopFrame, loop.frame());
+ }
+ }
+
+
+ // p3.3.25
+ if(extSyncFlag.value())
+ {
+ nextTickPos = curTickPos + midiExtSyncTicks;
+ // Probably not good - interfere with midi thread.
+ midiExtSyncTicks = 0;
+ }
+ else
+ {
+
+ Pos ppp(_pos);
+ ppp += frames;
+ nextTickPos = ppp.tick();
+ }
+ }
+ //
+ // resync with audio interface
+ //
+ syncFrame = audioDevice->framePos();
+ syncTime = curTime();
+ frameOffset = syncFrame - samplePos;
+
+ //printf("Audio::process calling process1:\n");
+
+ process1(samplePos, offset, frames);
+ for (iAudioOutput i = ol->begin(); i != ol->end(); ++i)
+ (*i)->processWrite();
+ if (isPlaying()) {
+ _pos += frames;
+ curTickPos = nextTickPos;
+ }
+ }
+
+//---------------------------------------------------------
+// process1
+//---------------------------------------------------------
+
+void Audio::process1(unsigned samplePos, unsigned offset, unsigned frames)
+ {
+ if (midiSeqRunning) {
+ processMidi();
+ }
+ //midiSeq->msgProcess();
+
+ //
+ // process not connected tracks
+ // to animate meter display
+ //
+ TrackList* tl = song->tracks();
+ AudioTrack* track;
+ int channels;
+ for(ciTrack it = tl->begin(); it != tl->end(); ++it)
+ {
+ if((*it)->isMidiTrack())
+ continue;
+ track = (AudioTrack*)(*it);
+
+ // Added by T356.
+ // For audio track types, synths etc. which need some kind of non-audio
+ // (but possibly audio-affecting) processing always, even if their output path
+ // is ultimately unconnected.
+ // Example: A fluidsynth instance whose output path ultimately led to nowhere
+ // would not allow us to load a font. Since process() was driven by audio output,
+ // in this case there was nothing driving the process() function which responds to
+ // such gui commands. So I separated the events processing from process(), into this.
+ // It should be used for things like midi events, gui events etc. - things which need to
+ // be done BEFORE all the AudioOutput::process() are called below. That does NOT include
+ // audio processing, because THAT is done at the very end of this routine.
+ // This will also reset the track's processed flag.
+ track->preProcessAlways();
+
+ // Removed by T356
+ /*
+ if (track->noOutRoute() && !track->noInRoute() &&
+ track->type() != Track::AUDIO_AUX && track->type() != Track::AUDIO_OUTPUT) {
+ channels = track->channels();
+ float* buffer[channels];
+ float data[frames * channels];
+ for (int i = 0; i < channels; ++i)
+ buffer[i] = data + i * frames;
+ track->copyData(samplePos, channels, frames, buffer);
+ }
+ */
+
+ }
+ // Pre-process the metronome.
+ ((AudioTrack*)metronome)->preProcessAlways();
+
+ OutputList* ol = song->outputs();
+ for (ciAudioOutput i = ol->begin(); i != ol->end(); ++i)
+ (*i)->process(samplePos, offset, frames);
+
+ // Removed by T356
+ /*
+ AuxList* auxl = song->auxs();
+ for (ciAudioAux ia = auxl->begin(); ia != auxl->end(); ++ia) {
+ track = (AudioTrack*)(*ia);
+ if (track->noOutRoute()) {
+ channels = track->channels();
+ float* buffer[channels];
+ float data[frames * channels];
+ for (int i = 0; i < channels; ++i)
+ buffer[i] = data + i * frames;
+ track->copyData(samplePos, channels, frames, buffer);
+ }
+ }
+ */
+
+ // Added by T356.
+ // Were ANY tracks unprocessed as a result of processing all the AudioOutputs, above?
+ // Not just unconnected ones, as previously done, but ones whose output path ultimately leads nowhere.
+ // Those tracks were missed, until this fix.
+ // Do them now. This will animate meters, and 'quietly' process some audio which needs to be done -
+ // for example synths really need to be processed, 'quietly' or not, otherwise the next time
+ // processing is 'turned on', if there was a backlog of events while it was off, then they all happen at once.
+ for(ciTrack it = tl->begin(); it != tl->end(); ++it)
+ {
+ if((*it)->isMidiTrack())
+ continue;
+ track = (AudioTrack*)(*it);
+ // Ignore unprocessed tracks which have an output route, because they will be processed by
+ // whatever track(s) they are routed to.
+ if(!track->processed() && track->noOutRoute() && (track->type() != Track::AUDIO_OUTPUT))
+ {
+ channels = track->channels();
+ // Just a dummy buffer.
+ float* buffer[channels];
+ float data[frames * channels];
+ for (int i = 0; i < channels; ++i)
+ buffer[i] = data + i * frames;
+ //printf("Audio::process1 calling track->copyData for track:%s\n", track->name().latin1());
+
+ // p3.3.38
+ //track->copyData(samplePos, channels, frames, buffer);
+ track->copyData(samplePos, channels, -1, -1, frames, buffer);
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// processMsg
+//---------------------------------------------------------
+
+void Audio::processMsg(AudioMsg* msg)
+ {
+ switch(msg->id) {
+ case AUDIO_RECORD:
+ msg->snode->setRecordFlag2(msg->ival);
+ break;
+ case AUDIO_ROUTEADD:
+ addRoute(msg->sroute, msg->droute);
+ break;
+ case AUDIO_ROUTEREMOVE:
+ removeRoute(msg->sroute, msg->droute);
+ break;
+ case AUDIO_VOL:
+ msg->snode->setVolume(msg->dval);
+ break;
+ case AUDIO_PAN:
+ msg->snode->setPan(msg->dval);
+ break;
+ case SEQM_SET_AUX:
+ msg->snode->setAuxSend(msg->ival, msg->dval);
+ break;
+ case AUDIO_SET_PREFADER:
+ msg->snode->setPrefader(msg->ival);
+ break;
+ case AUDIO_SET_CHANNELS:
+ msg->snode->setChannels(msg->ival);
+ break;
+ case AUDIO_ADDPLUGIN:
+ msg->snode->addPlugin(msg->plugin, msg->ival);
+ break;
+ case AUDIO_SET_PLUGIN_CTRL_VAL:
+ //msg->plugin->track()->setPluginCtrlVal(msg->ival, msg->dval);
+ // p3.3.43
+ msg->snode->setPluginCtrlVal(msg->ival, msg->dval);
+ break;
+ case AUDIO_SWAP_CONTROLLER_IDX:
+ msg->snode->swapControllerIDX(msg->a, msg->b);
+ break;
+ case AUDIO_CLEAR_CONTROLLER_EVENTS:
+ msg->snode->clearControllerEvents(msg->ival);
+ break;
+ case AUDIO_SEEK_PREV_AC_EVENT:
+ msg->snode->seekPrevACEvent(msg->ival);
+ break;
+ case AUDIO_SEEK_NEXT_AC_EVENT:
+ msg->snode->seekNextACEvent(msg->ival);
+ break;
+ case AUDIO_ERASE_AC_EVENT:
+ msg->snode->eraseACEvent(msg->ival, msg->a);
+ break;
+ case AUDIO_ERASE_RANGE_AC_EVENTS:
+ msg->snode->eraseRangeACEvents(msg->ival, msg->a, msg->b);
+ break;
+ case AUDIO_ADD_AC_EVENT:
+ msg->snode->addACEvent(msg->ival, msg->a, msg->dval);
+ break;
+ case AUDIO_SET_SOLO:
+ msg->track->setSolo((bool)msg->ival);
+ break;
+
+ case AUDIO_SET_SEND_METRONOME:
+ msg->snode->setSendMetronome((bool)msg->ival);
+ break;
+
+ case AUDIO_SET_SEG_SIZE:
+ segmentSize = msg->ival;
+ 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_RESET_DEVICES:
+ for (int i = 0; i < MIDI_PORTS; ++i)
+ midiPorts[i].instrument()->reset(i, song->mtype());
+ break;
+ case SEQM_INIT_DEVICES:
+ initDevices();
+ break;
+ case SEQM_MIDI_LOCAL_OFF:
+ sendLocalOff();
+ break;
+ case SEQM_PANIC:
+ panic();
+ break;
+ case SEQM_PLAY_MIDI_EVENT:
+ {
+ MidiPlayEvent* ev = (MidiPlayEvent*)(msg->p1);
+ midiPorts[ev->port()].sendEvent(*ev);
+ // Record??
+ }
+ break;
+ case SEQM_SET_HW_CTRL_STATE:
+ {
+ MidiPort* port = (MidiPort*)(msg->p1);
+ port->setHwCtrlState(msg->a, msg->b, msg->c);
+ }
+ break;
+ case SEQM_SET_HW_CTRL_STATES:
+ {
+ MidiPort* port = (MidiPort*)(msg->p1);
+ port->setHwCtrlStates(msg->a, msg->b, msg->c, msg->ival);
+ }
+ break;
+ case SEQM_SCAN_ALSA_MIDI_PORTS:
+ alsaScanMidiPorts();
+ break;
+ case MIDI_SHOW_INSTR_GUI:
+ midiSeq->msgUpdatePollFd();
+ break;
+ case SEQM_ADD_TEMPO:
+ case SEQM_REMOVE_TEMPO:
+ case SEQM_SET_GLOBAL_TEMPO:
+ case SEQM_SET_TEMPO:
+ song->processMsg(msg);
+ if (isPlaying()) {
+ if (!checkAudioDevice()) return;
+ _pos.setTick(curTickPos);
+ int samplePos = _pos.frame();
+ syncFrame = audioDevice->framePos();
+ syncTime = curTime();
+ frameOffset = syncFrame - samplePos;
+ }
+ break;
+ case SEQM_ADD_TRACK:
+ case SEQM_REMOVE_TRACK:
+ case SEQM_CHANGE_TRACK:
+ case SEQM_ADD_PART:
+ case SEQM_REMOVE_PART:
+ case SEQM_CHANGE_PART:
+ case SEQM_SET_TRACK_OUT_CHAN:
+ case SEQM_SET_TRACK_OUT_PORT:
+ case SEQM_REMAP_PORT_DRUM_CTL_EVS:
+ case SEQM_CHANGE_ALL_PORT_DRUM_CTL_EVS:
+ midiSeq->sendMsg(msg);
+ break;
+
+ case SEQM_IDLE:
+ idle = msg->a;
+ midiSeq->sendMsg(msg);
+ break;
+
+ default:
+ song->processMsg(msg);
+ break;
+ }
+ }
+
+//---------------------------------------------------------
+// seek
+// - called before start play
+// - initiated from gui
+//---------------------------------------------------------
+
+void Audio::seek(const Pos& p)
+ {
+ if (_pos == p) {
+ if(debugMsg)
+ printf("Audio::seek already there\n");
+ return;
+ }
+
+ // p3.3.23
+ //printf("Audio::seek frame:%d\n", p.frame());
+ _pos = p;
+ if (!checkAudioDevice()) return;
+ syncFrame = audioDevice->framePos();
+ frameOffset = syncFrame - _pos.frame();
+ curTickPos = _pos.tick();
+
+ midiSeq->msgSeek(); // handle stuck notes and set
+ // controller for new position
+
+ // p3.3.31
+ // Don't send if external sync is on. The master, and our sync routing system will take care of that.
+ if(!extSyncFlag.value())
+ {
+
+ for(int port = 0; port < MIDI_PORTS; ++port)
+ {
+ MidiPort* mp = &midiPorts[port];
+ MidiDevice* dev = mp->device();
+ //if(!dev || !mp->syncInfo().MCOut())
+ if(!dev || !mp->syncInfo().MRTOut())
+ continue;
+
+ // Added by T356: Shall we check for device write open flag to see if it's ok to send?...
+ // This means obey what the user has chosen for read/write in the midi port config dialog,
+ // which already takes into account whether the device is writable or not.
+ //if(!(dev->rwFlags() & 0x1) || !(dev->openFlags() & 1))
+ //if(!(dev->openFlags() & 1))
+ // continue;
+
+ //int port = dev->midiPort();
+
+ // By checking for no port here (-1), (and out of bounds), it means
+ // the device must be assigned to a port for these MMC commands to be sent.
+ // Without this check, interesting sync things can be done by the user without ever
+ // assigning any devices to ports !
+ //if(port < 0 || port > MIDI_PORTS)
+ //if(port < -1 || port > MIDI_PORTS)
+ // continue;
+
+ int beat = (curTickPos * 4) / config.division;
+
+ bool isPlaying=false;
+ if(state == PLAY)
+ isPlaying = true;
+
+ mp->sendStop();
+ mp->sendSongpos(beat);
+ if(isPlaying)
+ mp->sendContinue();
+ }
+ }
+
+ /*
+ if(genMCSync)
+ {
+ for(iMidiDevice imd = midiDevices.begin(); imd != midiDevices.end(); ++imd)
+ {
+ MidiDevice* dev = (*imd);
+ if(!dev->syncInfo().MCOut())
+ continue;
+
+ // Added by T356: Shall we check for device write open flag to see if it's ok to send?...
+ // This means obey what the user has chosen for read/write in the midi port config dialog,
+ // which already takes into account whether the device is writable or not.
+ //if(!(dev->rwFlags() & 0x1) || !(dev->openFlags() & 1))
+ //if(!(dev->openFlags() & 1))
+ // continue;
+
+ int port = dev->midiPort();
+
+ // By checking for no port here (-1), (and out of bounds), it means
+ // the device must be assigned to a port for these MMC commands to be sent.
+ // Without this check, interesting sync things can be done by the user without ever
+ // assigning any devices to ports !
+ //if(port < 0 || port > MIDI_PORTS)
+ if(port < -1 || port > MIDI_PORTS)
+ continue;
+
+ int beat = (curTickPos * 4) / config.division;
+
+ bool isPlaying=false;
+ if(state == PLAY)
+ isPlaying = true;
+
+ if(port == -1)
+ // Send straight to the device... Copied from MidiPort.
+ {
+ MidiPlayEvent event(0, 0, 0, ME_STOP, 0, 0);
+ dev->putEvent(event);
+
+ event.setType(ME_SONGPOS);
+ event.setA(beat);
+ dev->putEvent(event);
+
+ if(isPlaying)
+ {
+ event.setType(ME_CONTINUE);
+ event.setA(0);
+ dev->putEvent(event);
+ }
+ }
+ else
+ // Go through the port...
+ {
+ MidiPort* mp = &midiPorts[port];
+
+ mp->sendStop();
+ mp->sendSongpos(beat);
+ if(isPlaying)
+ mp->sendContinue();
+ }
+ }
+ }
+ */
+
+ //loopPassed = true; // for record loop mode
+ if (state != LOOP2 && !freewheel())
+ {
+ // Changed by T356 08/17/08. We need to force prefetch to update,
+ // to ensure the most recent data. Things can happen to a part
+ // before play is pressed - such as part muting, part moving etc.
+ // Without a force, the wrong data was being played.
+ //audioPrefetch->msgSeek(_pos.frame());
+ audioPrefetch->msgSeek(_pos.frame(), true);
+ }
+
+ write(sigFd, "G", 1); // signal seek to gui
+ }
+
+//---------------------------------------------------------
+// writeTick
+// called from audio prefetch thread context
+// write another buffer to soundfile
+//---------------------------------------------------------
+
+void Audio::writeTick()
+ {
+ AudioOutput* ao = song->bounceOutput;
+ if(ao && song->outputs()->find(ao) != song->outputs()->end())
+ {
+ 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();
+ }
+ }
+
+//---------------------------------------------------------
+// startRolling
+//---------------------------------------------------------
+
+void Audio::startRolling()
+ {
+ // Changed by Tim. p3.3.8
+ //startRecordPos = _pos;
+ if(_loopCount == 0)
+ startRecordPos = _pos;
+
+ if (song->record()) {
+ recording = true;
+ TrackList* tracks = song->tracks();
+ for (iTrack i = tracks->begin(); i != tracks->end(); ++i) {
+ if ((*i)->isMidiTrack())
+ continue;
+ if ((*i)->type() == Track::WAVE)
+ ((WaveTrack*)(*i))->resetMeter();
+ }
+ }
+ state = PLAY;
+ write(sigFd, "1", 1); // Play
+
+ // p3.3.31
+ // Don't send if external sync is on. The master, and our sync routing system will take care of that.
+ if(!extSyncFlag.value())
+ {
+
+ // Changed by Tim. p3.3.6
+ //if (genMMC)
+ // midiPorts[txSyncPort].sendSysex(mmcDeferredPlayMsg, sizeof(mmcDeferredPlayMsg));
+ //if (genMCSync) {
+ // if (curTickPos)
+ // midiPorts[txSyncPort].sendContinue();
+ // else
+ // midiPorts[txSyncPort].sendStart();
+ // }
+ for(int port = 0; port < MIDI_PORTS; ++port)
+ {
+ MidiPort* mp = &midiPorts[port];
+ MidiDevice* dev = mp->device();
+ if(!dev)
+ continue;
+
+ // Shall we check open flags?
+ //if(!(dev->rwFlags() & 0x1) || !(dev->openFlags() & 1))
+ //if(!(dev->openFlags() & 1))
+ // continue;
+
+ MidiSyncInfo& si = mp->syncInfo();
+
+ //if(genMMC && si.MMCOut())
+ if(si.MMCOut())
+ //mp->sendSysex(mmcDeferredPlayMsg, sizeof(mmcDeferredPlayMsg));
+ mp->sendMMCDeferredPlay();
+
+ //if(genMCSync && si.MCOut())
+ //if(si.MCOut())
+ if(si.MRTOut())
+ {
+ if(curTickPos)
+ mp->sendContinue();
+ else
+ mp->sendStart();
+ }
+ }
+ }
+
+ /*
+ for(iMidiDevice imd = midiDevices.begin(); imd != midiDevices.end(); ++imd)
+ {
+ MidiDevice* dev = (*imd);
+
+ // Shall we check open flags?
+ //if(!(dev->rwFlags() & 0x1) || !(dev->openFlags() & 1))
+ //if(!(dev->openFlags() & 1))
+ // continue;
+
+ int port = dev->midiPort();
+
+ // Without this -1 check, interesting sync things can be done by the user without ever
+ // assigning any devices to ports !
+ //if(port < 0 || port > MIDI_PORTS)
+ if(port < -1 || port > MIDI_PORTS)
+ continue;
+
+ MidiSyncInfo& si = dev->syncInfo();
+
+ if(port == -1)
+ // Send straight to the device... Copied from MidiPort.
+ {
+ if(genMMC && si.MMCOut())
+ {
+ MidiPlayEvent event(0, 0, ME_SYSEX, mmcDeferredPlayMsg, sizeof(mmcDeferredPlayMsg));
+ dev->putEvent(event);
+ }
+
+ if(genMCSync && si.MCOut())
+ {
+ if(curTickPos)
+ {
+ MidiPlayEvent event(0, 0, 0, ME_CONTINUE, 0, 0);
+ dev->putEvent(event);
+ }
+ else
+ {
+ MidiPlayEvent event(0, 0, 0, ME_START, 0, 0);
+ dev->putEvent(event);
+ }
+ }
+ }
+ else
+ // Go through the port...
+ {
+ MidiPort* mp = &midiPorts[port];
+
+ if(genMMC && si.MMCOut())
+ mp->sendSysex(mmcDeferredPlayMsg, sizeof(mmcDeferredPlayMsg));
+
+ if(genMCSync && si.MCOut())
+ {
+ if(curTickPos)
+ mp->sendContinue();
+ else
+ mp->sendStart();
+ }
+ }
+ }
+ */
+
+ if (precountEnableFlag
+ && song->click()
+ && !extSyncFlag.value()
+ && song->record()) {
+#if 0
+ state = PRECOUNT;
+ int z, n;
+ if (precountFromMastertrackFlag)
+ sigmap.timesig(playTickPos, z, n);
+ else {
+ z = precountSigZ;
+ n = precountSigN;
+ }
+ clickno = z * preMeasures;
+ clicksMeasure = z;
+ ticksBeat = (division * 4)/n;
+#endif
+ }
+ else {
+ //
+ // compute next midi metronome click position
+ //
+ int bar, beat;
+ unsigned tick;
+ sigmap.tickValues(curTickPos, &bar, &beat, &tick);
+ if (tick)
+ beat += 1;
+ midiClick = sigmap.bar2tick(bar, beat, 0);
+ }
+
+ // reenable sustain
+ for (int i = 0; i < MIDI_PORTS; ++i) {
+ MidiPort* mp = &midiPorts[i];
+ for (int ch = 0; ch < MIDI_CHANNELS; ++ch) {
+ if (mp->hwCtrlState(ch, CTRL_SUSTAIN) == 127) {
+ if(mp->device() != NULL) {
+ //printf("send enable sustain!!!!!!!! port %d ch %d\n", i,ch);
+ MidiPlayEvent ev(0, i, ch, ME_CONTROLLER, CTRL_SUSTAIN, 127);
+
+ // may cause problems, called from audio thread
+ mp->device()->playEvents()->add(ev);
+ }
+ }
+ }
+ }
+
+ //tempomap.clearExtTempoList();
+ }
+
+//---------------------------------------------------------
+// stopRolling
+//---------------------------------------------------------
+
+void Audio::stopRolling()
+ {
+ // Added by Tim. p3.3.20
+ //if(debugMsg)
+ // printf("Audio::stopRolling state %s\n", audioStates[state]);
+
+ state = STOP;
+ midiSeq->msgStop();
+
+#if 1 //TODO
+ //---------------------------------------------------
+ // reset sustain
+ //---------------------------------------------------
+
+
+ // clear sustain
+ for (int i = 0; i < MIDI_PORTS; ++i) {
+ MidiPort* mp = &midiPorts[i];
+ for (int ch = 0; ch < MIDI_CHANNELS; ++ch) {
+ if (mp->hwCtrlState(ch, CTRL_SUSTAIN) == 127) {
+ if(mp->device()!=NULL) {
+ //printf("send clear sustain!!!!!!!! port %d ch %d\n", i,ch);
+ MidiPlayEvent ev(0, i, ch, ME_CONTROLLER, CTRL_SUSTAIN, 0);
+ // may cause problems, called from audio thread
+ mp->device()->putEvent(ev);
+ }
+ }
+ }
+ }
+
+#endif
+
+ // p3.3.31
+ // Don't send if external sync is on. The master, and our sync routing system will take care of that.
+ if(!extSyncFlag.value())
+ {
+
+ // Changed by Tim. p3.3.6
+ //MidiPort* syncPort = &midiPorts[txSyncPort];
+ //if (genMMC) {
+ // unsigned char mmcPos[] = {
+ // 0x7f, 0x7f, 0x06, 0x44, 0x06, 0x01,
+ // 0, 0, 0, 0, 0
+ // };
+ // int frame = tempomap.tick2frame(curTickPos);
+ // MTC mtc(double(frame) / double(sampleRate));
+ // mmcPos[6] = mtc.h() | (mtcType << 5);
+ // mmcPos[7] = mtc.m();
+ // mmcPos[8] = mtc.s();
+ // mmcPos[9] = mtc.f();
+ // mmcPos[10] = mtc.sf();
+ // syncPort->sendSysex(mmcStopMsg, sizeof(mmcStopMsg));
+ // syncPort->sendSysex(mmcPos, sizeof(mmcPos));
+ // }
+ //if (genMCSync) { // Midi Clock
+ // send STOP and
+ // "set song position pointer"
+ // syncPort->sendStop();
+ // syncPort->sendSongpos(curTickPos * 4 / config.division);
+ // }
+ for(int port = 0; port < MIDI_PORTS; ++port)
+ {
+ MidiPort* mp = &midiPorts[port];
+ MidiDevice* dev = mp->device();
+ if(!dev)
+ continue;
+
+ // Shall we check open flags?
+ //if(!(dev->rwFlags() & 0x1) || !(dev->openFlags() & 1))
+ //if(!(dev->openFlags() & 1))
+ // continue;
+
+ MidiSyncInfo& si = mp->syncInfo();
+
+ //if(genMMC && si.MMCOut())
+ if(si.MMCOut())
+ {
+ //unsigned char mmcPos[] = {
+ // 0x7f, 0x7f, 0x06, 0x44, 0x06, 0x01,
+ // 0, 0, 0, 0, 0
+ // };
+
+ // p3.3.31
+ /*
+ int frame = tempomap.tick2frame(curTickPos);
+ MTC mtc(double(frame) / double(sampleRate));
+ */
+
+ //mmcPos[6] = mtc.h() | (mtcType << 5);
+ //mmcPos[7] = mtc.m();
+ //mmcPos[8] = mtc.s();
+ //mmcPos[9] = mtc.f();
+ //mmcPos[10] = mtc.sf();
+
+ //mp->sendSysex(mmcStopMsg, sizeof(mmcStopMsg));
+ mp->sendMMCStop();
+ //mp->sendSysex(mmcPos, sizeof(mmcPos));
+
+ // p3.3.31
+ // Added check of option send continue not start.
+ // Hmm, is this required? Seems to make other devices unhappy.
+ /*
+ if(!si.sendContNotStart())
+ mp->sendMMCLocate(mtc.h() | (mtcType << 5),
+ mtc.m(), mtc.s(), mtc.f(), mtc.sf());
+ */
+
+ }
+
+ //if(genMCSync && si.MCOut()) // Midi Clock
+ //if(si.MCOut()) // Midi Clock
+ if(si.MRTOut()) //
+ {
+ // send STOP and
+ // "set song position pointer"
+ mp->sendStop();
+
+ // p3.3.31
+ // Added check of option send continue not start.
+ // Hmm, is this required? Seems to make other devices unhappy.
+ /*
+ if(!si.sendContNotStart())
+ mp->sendSongpos(curTickPos * 4 / config.division);
+ */
+
+ }
+ }
+ }
+
+ /*
+ for(iMidiDevice imd = midiDevices.begin(); imd != midiDevices.end(); ++imd)
+ {
+ MidiDevice* dev = (*imd);
+
+ // Shall we check open flags?
+ //if(!(dev->rwFlags() & 0x1) || !(dev->openFlags() & 1))
+ //if(!(dev->openFlags() & 1))
+ // continue;
+
+ int port = dev->midiPort();
+
+ // Without this -1 check, interesting sync things can be done by the user without ever
+ // assigning any devices to ports !
+ //if(port < 0 || port > MIDI_PORTS)
+ if(port < -1 || port > MIDI_PORTS)
+ continue;
+
+ MidiSyncInfo& si = dev->syncInfo();
+
+ MidiPort* mp = 0;
+ if(port != -1)
+ mp = &midiPorts[port];
+
+ if(genMMC && si.MMCOut())
+ {
+ unsigned char mmcPos[] = {
+ 0x7f, 0x7f, 0x06, 0x44, 0x06, 0x01,
+ 0, 0, 0, 0, 0
+ };
+ int frame = tempomap.tick2frame(curTickPos);
+ MTC mtc(double(frame) / double(sampleRate));
+ mmcPos[6] = mtc.h() | (mtcType << 5);
+ mmcPos[7] = mtc.m();
+ mmcPos[8] = mtc.s();
+ mmcPos[9] = mtc.f();
+ mmcPos[10] = mtc.sf();
+
+ if(mp)
+ // Go through the port...
+ {
+ mp->sendSysex(mmcStopMsg, sizeof(mmcStopMsg));
+ mp->sendSysex(mmcPos, sizeof(mmcPos));
+ }
+ else
+ // Send straight to the device... Copied from MidiPort.
+ {
+ MidiPlayEvent event(0, 0, ME_SYSEX, mmcStopMsg, sizeof(mmcStopMsg));
+ dev->putEvent(event);
+
+ event.setData(mmcPos, sizeof(mmcPos));
+ dev->putEvent(event);
+ }
+ }
+
+ if(genMCSync && si.MCOut()) // Midi Clock
+ {
+ // send STOP and
+ // "set song position pointer"
+ if(mp)
+ // Go through the port...
+ {
+ mp->sendStop();
+ mp->sendSongpos(curTickPos * 4 / config.division);
+ }
+ else
+ // Send straight to the device... Copied from MidiPort.
+ {
+ MidiPlayEvent event(0, 0, 0, ME_STOP, 0, 0);
+ dev->putEvent(event);
+ event.setType(ME_SONGPOS);
+ event.setA(curTickPos * 4 / config.division);
+ dev->putEvent(event);
+ }
+ }
+ }
+ */
+
+ WaveTrackList* tracks = song->waves();
+ for (iWaveTrack i = tracks->begin(); i != tracks->end(); ++i) {
+ WaveTrack* track = *i;
+ track->resetMeter();
+ }
+ recording = false;
+ endRecordPos = _pos;
+ write(sigFd, "0", 1); // STOP
+ }
+
+//---------------------------------------------------------
+// recordStop
+// execution environment: gui thread
+//---------------------------------------------------------
+
+void Audio::recordStop()
+ {
+ audio->msgIdle(true); // gain access to all data structures
+
+ song->startUndo();
+ WaveTrackList* wl = song->waves();
+
+ for (iWaveTrack it = wl->begin(); it != wl->end(); ++it) {
+ WaveTrack* track = *it;
+ if (track->recordFlag() || song->bounceTrack == track) {
+ song->cmdAddRecordedWave(track, startRecordPos, endRecordPos);
+ // The track's _recFile pointer may have been kept and turned
+ // into a SndFileR and added to a new part.
+ // Or _recFile may have been discarded (no new recorded part created).
+ // Regardless, we are done with the pointer itself. Set to zero so
+ // song->setRecordFlag knows about it...
+ track->setRecFile(0);
+ song->setRecordFlag(track, false);
+ }
+ }
+ MidiTrackList* ml = song->midis();
+ for (iMidiTrack it = ml->begin(); it != ml->end(); ++it) {
+ MidiTrack* mt = *it;
+ MPEventList* mpel = mt->mpevents();
+ EventList* el = mt->events();
+
+ //---------------------------------------------------
+ // resolve NoteOff events, Controller etc.
+ //---------------------------------------------------
+
+ //buildMidiEventList(el, mpel, mt, config.division, true);
+ // Do SysexMeta. Do loops.
+ buildMidiEventList(el, mpel, mt, config.division, true, true);
+ song->cmdAddRecordedEvents(mt, el, startRecordPos.tick());
+ el->clear();
+ mpel->clear();
+ }
+
+ //
+ // bounce to file operates on the only
+ // selected output port
+ //
+
+ AudioOutput* ao = song->bounceOutput;
+ if(ao && song->outputs()->find(ao) != song->outputs()->end())
+ {
+ if(ao->recordFlag())
+ {
+ song->bounceOutput = 0;
+ SndFile* sf = ao->recFile();
+ if (sf)
+ delete sf; // close
+ ao->setRecFile(0);
+ ao->setRecordFlag1(false);
+ msgSetRecord(ao, false);
+ }
+ }
+ audio->msgIdle(false);
+ song->endUndo(0);
+ song->setRecord(false);
+ }
+
+//---------------------------------------------------------
+// curFrame
+// extrapolates current play frame on syncTime/syncFrame
+//---------------------------------------------------------
+
+unsigned int Audio::curFrame() const
+ {
+ return lrint((curTime() - syncTime) * sampleRate) + syncFrame;
+ }
+
+//---------------------------------------------------------
+// timestamp
+//---------------------------------------------------------
+
+int Audio::timestamp() const
+ {
+ int t = curFrame() - frameOffset;
+ return t;
+ }
+
+//---------------------------------------------------------
+// sendMsgToGui
+//---------------------------------------------------------
+
+void Audio::sendMsgToGui(char c)
+ {
+ write(sigFd, &c, 1);
+ }
+
diff --git a/muse2/muse/audio.h b/muse2/muse/audio.h
new file mode 100644
index 00000000..fb51ca03
--- /dev/null
+++ b/muse2/muse/audio.h
@@ -0,0 +1,299 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: audio.h,v 1.25.2.13 2009/12/20 05:00:35 terminator356 Exp $
+//
+// (C) Copyright 2001 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __AUDIO_H__
+#define __AUDIO_H__
+
+#include "thread.h"
+#include "pos.h"
+#include "mpevent.h"
+#include "route.h"
+#include "event.h"
+
+class SndFile;
+class PluginI;
+class SynthI;
+class MidiDevice;
+class AudioDevice;
+class Track;
+class AudioTrack;
+class Part;
+class Event;
+class MidiPlayEvent;
+class Event;
+class MidiPort;
+class EventList;
+class MidiInstrument;
+class MidiTrack;
+
+//---------------------------------------------------------
+// AudioMsgId
+// this are the messages send from the GUI thread to
+// the midi thread
+//---------------------------------------------------------
+
+enum {
+ SEQM_ADD_TRACK, SEQM_REMOVE_TRACK, SEQM_CHANGE_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, 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, SEQM_PANIC,
+ SEQM_MIDI_LOCAL_OFF,
+ SEQM_SET_MIDI_DEVICE,
+ SEQM_PLAY_MIDI_EVENT,
+ SEQM_SET_HW_CTRL_STATE,
+ SEQM_SET_HW_CTRL_STATES,
+ SEQM_SET_TRACK_OUT_PORT,
+ SEQM_SET_TRACK_OUT_CHAN,
+ SEQM_REMAP_PORT_DRUM_CTL_EVS,
+ SEQM_CHANGE_ALL_PORT_DRUM_CTL_EVS,
+ SEQM_SCAN_ALSA_MIDI_PORTS,
+ SEQM_SET_AUX,
+ SEQM_UPDATE_SOLO_STATES,
+ MIDI_SHOW_INSTR_GUI,
+ AUDIO_RECORD,
+ AUDIO_ROUTEADD, AUDIO_ROUTEREMOVE,
+ AUDIO_VOL, AUDIO_PAN,
+ AUDIO_ADDPLUGIN,
+ AUDIO_SET_SEG_SIZE,
+ AUDIO_SET_PREFADER, AUDIO_SET_CHANNELS,
+ AUDIO_SET_PLUGIN_CTRL_VAL,
+ AUDIO_SWAP_CONTROLLER_IDX,
+ AUDIO_CLEAR_CONTROLLER_EVENTS,
+ AUDIO_SEEK_PREV_AC_EVENT,
+ AUDIO_SEEK_NEXT_AC_EVENT,
+ AUDIO_ERASE_AC_EVENT,
+ AUDIO_ERASE_RANGE_AC_EVENTS,
+ AUDIO_ADD_AC_EVENT,
+ AUDIO_SET_SOLO, AUDIO_SET_SEND_METRONOME,
+ MS_PROCESS, MS_STOP, MS_SET_RTC, MS_UPDATE_POLL_FD,
+ SEQM_IDLE, SEQM_SEEK,
+ };
+
+extern const char* seqMsgList[]; // for debug
+
+//---------------------------------------------------------
+// Msg
+//---------------------------------------------------------
+
+struct AudioMsg : public ThreadMsg { // this should be an union
+ int serialNo;
+ SndFile* downmix;
+ AudioTrack* snode;
+ AudioTrack* dnode;
+ Route sroute, droute;
+ AudioDevice* device;
+ int ival;
+ int iival;
+ double dval;
+ PluginI* plugin;
+ SynthI* synth;
+ Part* spart;
+ Part* dpart;
+ Track* track;
+
+ const void *p1, *p2, *p3;
+ Event ev1, ev2;
+ char port, channel, ctrl;
+ int a, b, c;
+ Pos pos;
+ };
+
+class AudioOutput;
+
+//---------------------------------------------------------
+// Audio
+//---------------------------------------------------------
+
+class Audio {
+ public:
+ enum State {STOP, START_PLAY, PLAY, LOOP1, LOOP2, SYNC, PRECOUNT};
+
+ private:
+ bool _running; // audio is active
+ bool recording; // recording is active
+ bool idle; // do nothing in idle mode
+ bool _freewheel;
+ bool _bounce;
+ //bool loopPassed;
+ unsigned _loopFrame; // Startframe of loop if in LOOP mode. Not quite the same as left marker !
+ int _loopCount; // Number of times we have looped so far
+
+ 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
+
+ //metronome values
+ unsigned midiClick;
+ int clickno; // precount values
+ int clicksMeasure;
+ int ticksBeat;
+
+ double syncTime; // wall clock at last sync point
+ unsigned syncFrame; // corresponding frame no. to syncTime
+ int frameOffset; // offset to free running hw frame counter
+
+ State state;
+
+ AudioMsg* msg;
+ int fromThreadFdw, fromThreadFdr; // message pipe
+
+ int sigFd; // pipe fd for messages to gui
+
+ // record values:
+ Pos startRecordPos;
+ Pos endRecordPos;
+
+ //
+ AudioOutput* _audioMaster;
+ AudioOutput* _audioMonitor;
+
+ void sendLocalOff();
+ bool filterEvent(const MidiPlayEvent* event, int type, bool thru);
+
+ void startRolling();
+ void stopRolling();
+
+ void panic();
+ void processMsg(AudioMsg* msg);
+ void process1(unsigned samplePos, unsigned offset, unsigned samples);
+
+ void collectEvents(MidiTrack*, unsigned int startTick, unsigned int endTick);
+
+ public:
+ Audio();
+ virtual ~Audio() {}
+
+ void process(unsigned frames);
+ bool sync(int state, unsigned frame);
+ void shutdown();
+ void writeTick();
+
+ // transport:
+ bool start();
+ void stop(bool);
+ void seek(const Pos& pos);
+
+ bool isPlaying() const { return state == PLAY || state == LOOP1 || state == LOOP2; }
+ bool isRecording() const { return state == PLAY && recording; }
+ void setRunning(bool val) { _running = val; }
+ bool isRunning() const { return _running; }
+
+ //-----------------------------------------
+ // message interface
+ //-----------------------------------------
+
+ void msgSeek(const Pos&);
+ void msgPlay(bool val);
+
+ void msgRemoveTrack(Track*, bool u = true);
+ void msgRemoveTracks();
+ void msgChangeTrack(Track* oldTrack, Track* newTrack, bool u = true);
+ void msgMoveTrack(int idx1, int dx2, bool u = true);
+ void msgAddPart(Part*, bool u = true);
+ void msgRemovePart(Part*, bool u = true);
+ //void msgChangePart(Part* oldPart, Part* newPart, bool u = true);
+ void msgChangePart(Part* oldPart, Part* newPart, bool u = true, bool doCtrls = true, bool doClones = false);
+ //void msgAddEvent(Event&, Part*, bool u = true);
+ void msgAddEvent(Event&, Part*, bool u = true, bool doCtrls = true, bool doClones = false);
+ //void msgDeleteEvent(Event&, Part*, bool u = true);
+ void msgDeleteEvent(Event&, Part*, bool u = true, bool doCtrls = true, bool doClones = false);
+ //void msgChangeEvent(Event&, Event&, Part*, bool u = true);
+ void msgChangeEvent(Event&, Event&, Part*, bool u = true, bool doCtrls = true, bool doClones = false);
+ void msgScanAlsaMidiPorts();
+ void msgAddTempo(int tick, int tempo, bool doUndoFlag = true);
+ void msgSetTempo(int tick, int tempo, bool doUndoFlag = true);
+ void msgUpdateSoloStates();
+ void msgSetAux(AudioTrack*, int, double);
+ void msgSetGlobalTempo(int val);
+ void msgDeleteTempo(int tick, int tempo, bool doUndoFlag = true);
+ void msgAddSig(int tick, int z, int n, bool doUndoFlag = true);
+ void msgRemoveSig(int tick, int z, int n, bool doUndoFlag = true);
+ void msgShowInstrumentGui(MidiInstrument*, bool);
+ void msgPanic();
+ void sendMsg(AudioMsg*);
+ bool sendMessage(AudioMsg* m, bool doUndo);
+ void msgRemoveRoute(Route, Route);
+ void msgRemoveRoute1(Route, Route);
+ void msgAddRoute(Route, Route);
+ void msgAddRoute1(Route, Route);
+ void msgAddPlugin(AudioTrack*, int idx, PluginI* plugin);
+ void msgSetMute(AudioTrack*, bool val);
+ void msgSetVolume(AudioTrack*, double val);
+ void msgSetPan(AudioTrack*, double val);
+ void msgAddSynthI(SynthI* synth);
+ void msgRemoveSynthI(SynthI* synth);
+ void msgSetSegSize(int, int);
+ void msgSetPrefader(AudioTrack*, int);
+ void msgSetChannels(AudioTrack*, int);
+ void msgSetOff(AudioTrack*, bool);
+ void msgSetRecord(AudioTrack*, bool);
+ void msgUndo();
+ void msgRedo();
+ void msgLocalOff();
+ void msgInitMidiDevices();
+ void msgResetMidiDevices();
+ void msgIdle(bool);
+ void msgBounce();
+ //void msgSetPluginCtrlVal(PluginI* /*plugin*/, int /*param*/, double /*val*/);
+ void msgSetPluginCtrlVal(AudioTrack*, int /*param*/, double /*val*/);
+ void msgSwapControllerIDX(AudioTrack*, int, int);
+ void msgClearControllerEvents(AudioTrack*, int);
+ void msgSeekPrevACEvent(AudioTrack*, int);
+ void msgSeekNextACEvent(AudioTrack*, int);
+ void msgEraseACEvent(AudioTrack*, int, int);
+ void msgEraseRangeACEvents(AudioTrack*, int, int, int);
+ void msgAddACEvent(AudioTrack*, int, int, double);
+ void msgSetSolo(Track*, bool);
+ void msgSetHwCtrlState(MidiPort*, int, int, int);
+ void msgSetHwCtrlStates(MidiPort*, int, int, int, int);
+ void msgSetTrackOutChannel(MidiTrack*, int);
+ void msgSetTrackOutPort(MidiTrack*, int);
+ void msgRemapPortDrumCtlEvents(int, int, int, int);
+ void msgChangeAllPortDrumCtrlEvents(bool, bool);
+ void msgSetSendMetronome(AudioTrack*, bool);
+
+ void msgPlayMidiEvent(const MidiPlayEvent* event);
+ void rescanAlsaPorts();
+
+ void midiPortsChanged();
+
+ const Pos& pos() const { return _pos; }
+ const Pos& getStartRecordPos() const { return startRecordPos; }
+ const Pos& getEndRecordPos() const { return endRecordPos; }
+ int loopCount() { return _loopCount; } // Number of times we have looped so far
+ unsigned loopFrame() { return _loopFrame; }
+
+ int tickPos() const { return curTickPos; }
+ int timestamp() const;
+ void processMidi();
+ unsigned curFrame() const;
+ void recordStop();
+ bool freewheel() const { return _freewheel; }
+ void setFreewheel(bool val);
+ int getFrameOffset() const { return frameOffset; }
+ void initDevices();
+
+ AudioOutput* audioMaster() const { return _audioMaster; }
+ AudioOutput* audioMonitor() const { return _audioMonitor; }
+ void setMaster(AudioOutput* track) { _audioMaster = track; }
+ void setMonitor(AudioOutput* track) { _audioMonitor = track; }
+ void sendMsgToGui(char c);
+ bool bounce() const { return _bounce; }
+ };
+
+extern int processAudio(unsigned long, void*);
+extern void processAudio1(void*, void*);
+
+extern Audio* audio;
+extern AudioDevice* audioDevice; // current audio device in use
+#endif
+
diff --git a/muse2/muse/audioconvert.cpp b/muse2/muse/audioconvert.cpp
new file mode 100644
index 00000000..878bc8e7
--- /dev/null
+++ b/muse2/muse/audioconvert.cpp
@@ -0,0 +1,886 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: audioconvert.cpp,v 1.1.1.1 2009/12/28 16:07:33 terminator356 Exp $
+//
+// (C) Copyright 1999-2009 Werner Schweer (ws@seh.de)
+//
+// Audio converter module created by Tim terminator356
+//=========================================================
+
+#include <math.h>
+
+#include "wave.h"
+#include "globals.h"
+#include "audioconvert.h"
+#include "eventbase.h"
+
+//#define AUDIOCONVERT_DEBUG
+//#define AUDIOCONVERT_DEBUG_PRC
+
+//---------------------------------------------------------
+// AudioConvertMap
+//---------------------------------------------------------
+
+void AudioConvertMap::remapEvents(const EventList* el)
+{
+
+}
+
+iAudioConvertMap AudioConvertMap::addEvent(EventBase* eb)
+{
+ iAudioConvertMap iacm = getConverter(eb);
+ if(iacm == end())
+ {
+ AudioConverter* cv = 0;
+ if(!eb->sndFile().isNull())
+ cv = new SRCAudioConverter(eb->sndFile().channels(), SRC_SINC_MEDIUM_QUALITY);
+
+ // Use insert with hint for speed.
+ return insert(iacm, std::pair<EventBase*, AudioConverter*> (eb, cv));
+ }
+ else
+ // Adopt a policy of returning an already existing item to enforce no-duplicates.
+ return iacm;
+}
+
+void AudioConvertMap::removeEvent(EventBase* eb)
+{
+ iAudioConvertMap iacm = find(eb);
+ if(iacm != end())
+ {
+ AudioConverter* cv = iacm->second;
+ if(cv)
+ delete cv;
+ erase(iacm);
+ }
+}
+
+iAudioConvertMap AudioConvertMap::getConverter(EventBase* eb)
+{
+ return find(eb);
+}
+
+//---------------------------------------------------------
+// AudioConverter
+//---------------------------------------------------------
+
+AudioConverter::AudioConverter()
+{
+ #ifdef AUDIOCONVERT_DEBUG
+ printf("AudioConverter::AudioConverter this:%p\n", this);
+ #endif
+
+ _refCount = 1;
+ _sfCurFrame = 0;
+}
+
+AudioConverter::~AudioConverter()
+{
+ #ifdef AUDIOCONVERT_DEBUG
+ printf("AudioConverter::~AudioConverter this:%p\n", this);
+ #endif
+}
+
+AudioConverter* AudioConverter::reference()
+{
+ _refCount += 1;
+ #ifdef AUDIOCONVERT_DEBUG
+ printf("AudioConverter::reference this:%p current refcount:%d\n", this, _refCount);
+ #endif
+ return this;
+}
+
+AudioConverter* AudioConverter::release(AudioConverter* cv)
+{
+ if(!cv)
+ return 0;
+ //if(cv->incRefCount(-1) <= 0)
+ cv->_refCount -= 1;
+ #ifdef AUDIOCONVERT_DEBUG
+ printf("AudioConverter::release converter:%p current refcount:%d\n", cv, cv->_refCount);
+ #endif
+ if(cv->_refCount <= 0)
+ {
+ #ifdef AUDIOCONVERT_DEBUG
+ printf("AudioConverter::release deleting converter:%p\n", cv);
+ #endif
+ delete cv;
+ cv = 0;
+ }
+ return cv;
+}
+
+//off_t AudioConverter::readAudio(SndFileR& f, off_t sfCurFrame, unsigned offset, float** buffer, int channel, int n, bool doSeek, bool overwrite)
+off_t AudioConverter::readAudio(SndFileR& f, unsigned offset, float** buffer, int channel, int n, bool doSeek, bool overwrite)
+{
+ if(f.isNull())
+ return _sfCurFrame;
+
+ // Added by Tim. p3.3.17
+ //#ifdef AUDIOCONVERT_DEBUG_PRC
+ //printf("AudioConverter::process %s audConv:%p sfCurFrame:%ld offset:%u channel:%d fchan:%d n:%d\n",
+ // f.name().latin1(), this, sfCurFrame, offset, channel, f.channels(), n);
+ //#endif
+
+ off_t frame = offset; // _spos is added before the call.
+ unsigned fsrate = f.samplerate();
+ bool resample = isValid() && ((unsigned)sampleRate != fsrate);
+
+ // No resampling needed?
+ if(!resample)
+ {
+ // Sample rates are the same. Just a regular seek + read, no conversion.
+ _sfCurFrame = f.seek(frame, 0);
+ return _sfCurFrame + f.read(channel, buffer, n, overwrite);
+ }
+
+ // Is a 'transport' seek requested? (Not to be requested with every read! Should only be for 'first read' seeks, or positional 'transport' seeks.)
+ // Due to the support of sound file references in MusE, seek must ALWAYS be done before read, as before,
+ // except now we alter the seek position if sample rate conversion is being used and remember the seek positions.
+ if(doSeek)
+ {
+ // Sample rates are different. Seek to a calculated 'sample rate ratio factored' position.
+
+ double srcratio = (double)fsrate / (double)sampleRate;
+ //long inSize = long((double)frames * _src_ratio) + 1 // From MusE-2 file converter.
+ off_t newfr = (off_t)floor(((double)frame * srcratio)); // From simplesynth.
+
+ _sfCurFrame = f.seek(newfr, 0);
+
+ // Added by Tim. p3.3.17
+ //#ifdef AUDIOCONVERT_DEBUG_PRC
+ //printf("AudioConverter::process Seek frame:%ld converted to frame:%ld sfCurFrame:%ld\n", frame, newfr, sfCurFrame);
+ //#endif
+
+ // Reset the converter. Its current state is meaningless now.
+ reset();
+ }
+ else
+ {
+ // No seek requested.
+ // Added by Tim. p3.3.17
+ //#ifdef AUDIOCONVERT_DEBUG_PRC
+ //printf("AudioConverter::process No 'transport' seek, rates different. Seeking to sfCurFrame:%ld\n", sfCurFrame);
+ //#endif
+
+ // Sample rates are different. We can't just tell seek to go to an absolute calculated position,
+ // since the last position can vary - it might not be what the calculated position is.
+ // We must use the last position left by SRC conversion, ie. let the file position progress on its own.
+ _sfCurFrame = f.seek(_sfCurFrame, 0);
+ }
+
+ /*
+ int fchan = f.channels();
+ long outFrames = n;
+ long outSize = outFrames * fchan;
+ float outbuffer[outSize];
+ */
+
+ //sfCurFrame = process(f, sfCurFrame, offset, &outbuffer[0], channel, n);
+// sfCurFrame = process(f, sfCurFrame, outbuffer, channel, n);
+ //sfCurFrame = process(f, sfCurFrame, buffer, channel, n, overwrite);
+ _sfCurFrame = process(f, buffer, channel, n, overwrite);
+
+ /*
+ float* poutbuf = &outbuffer[0];
+ if(fchan == channel)
+ {
+ if(overwrite)
+ //for (size_t i = 0; i < rn; ++i)
+ for (int i = 0; i < n; ++i)
+ {
+ for(int ch = 0; ch < channel; ++ch)
+ *(buffer[ch] + i) = *poutbuf++;
+ }
+ else
+ //for(size_t i = 0; i < rn; ++i)
+ for(int i = 0; i < n; ++i)
+ {
+ for(int ch = 0; ch < channel; ++ch)
+ *(buffer[ch] + i) += *poutbuf++;
+ }
+ }
+ else if((fchan == 2) && (channel == 1))
+ {
+ // stereo to mono
+ if(overwrite)
+ //for(size_t i = 0; i < rn; ++i)
+ for(int i = 0; i < n; ++i)
+ *(buffer[0] + i) = poutbuf[i + i] + poutbuf[i + i + 1];
+ else
+ //for(size_t i = 0; i < rn; ++i)
+ for(int i = 0; i < n; ++i)
+ *(buffer[0] + i) += poutbuf[i + i] + poutbuf[i + i + 1];
+ }
+ else if((fchan == 1) && (channel == 2))
+ {
+ // mono to stereo
+ if(overwrite)
+ //for(size_t i = 0; i < rn; ++i)
+ for(int i = 0; i < n; ++i)
+ {
+ float data = *poutbuf++;
+ *(buffer[0]+i) = data;
+ *(buffer[1]+i) = data;
+ }
+ else
+ //for(size_t i = 0; i < rn; ++i)
+ for(int i = 0; i < n; ++i)
+ {
+ float data = *poutbuf++;
+ *(buffer[0]+i) += data;
+ *(buffer[1]+i) += data;
+ }
+ }
+ else
+ {
+ #ifdef AUDIOCONVERT_DEBUG
+ printf("AudioConverter::readAudio Channel mismatch: source chans:%d -> dst chans:%d\n", fchan, channel);
+ #endif
+ }
+ */
+
+ return _sfCurFrame;
+}
+
+//---------------------------------------------------------
+// SRCAudioConverter
+//---------------------------------------------------------
+
+SRCAudioConverter::SRCAudioConverter(int channels, int type) : AudioConverter()
+{
+ #ifdef AUDIOCONVERT_DEBUG
+ printf("SRCAudioConverter::SRCAudioConverter this:%p channels:%d type:%d\n", this, channels, type);
+ #endif
+
+ _type = type;
+ _src_state = 0;
+ _channels = channels;
+
+ int srcerr;
+ #ifdef AUDIOCONVERT_DEBUG
+ printf("SRCAudioConverter::SRCaudioConverter Creating samplerate converter type:%d with %d channels\n", _type, _channels);
+ #endif
+ _src_state = src_new(_type, _channels, &srcerr);
+ if(!_src_state)
+ printf("SRCAudioConverter::SRCaudioConverter Creation of samplerate converter type:%d with %d channels failed:%s\n", _type, _channels, src_strerror(srcerr));
+}
+
+SRCAudioConverter::~SRCAudioConverter()
+{
+ #ifdef AUDIOCONVERT_DEBUG
+ printf("SRCAudioConverter::~SRCAudioConverter this:%p\n", this);
+ #endif
+ if(_src_state)
+ src_delete(_src_state);
+}
+
+void SRCAudioConverter::setChannels(int ch)
+{
+ #ifdef AUDIOCONVERT_DEBUG
+ printf("SRCAudioConverter::setChannels this:%p channels:%d\n", this, ch);
+ #endif
+ if(_src_state)
+ src_delete(_src_state);
+ _src_state = 0;
+
+ _channels = ch;
+ int srcerr;
+ #ifdef AUDIOCONVERT_DEBUG
+ printf("SRCAudioConverter::setChannels Creating samplerate converter type:%d with %d channels\n", _type, ch);
+ #endif
+ _src_state = src_new(_type, ch, &srcerr);
+ if(!_src_state)
+ printf("SRCAudioConverter::setChannels of samplerate converter type:%d with %d channels failed:%s\n", _type, ch, src_strerror(srcerr));
+ return;
+}
+
+void SRCAudioConverter::reset()
+{
+ if(!_src_state)
+ return;
+ #ifdef AUDIOCONVERT_DEBUG
+ printf("SRCAudioConverter::reset this:%p\n", this);
+ #endif
+ int srcerr = src_reset(_src_state);
+ if(srcerr != 0)
+ printf("SRCAudioConverter::reset Converter reset failed: %s\n", src_strerror(srcerr));
+ return;
+}
+
+//off_t SRCAudioConverter::process(SndFileR& f, off_t sfCurFrame, float** buffer, int channel, int n, bool overwrite)
+off_t SRCAudioConverter::process(SndFileR& f, float** buffer, int channel, int n, bool overwrite)
+{
+ //return src_process(_src_state, sd);
+
+ if(f.isNull())
+ //return;
+ return _sfCurFrame;
+
+ // Added by Tim. p3.3.17
+ //#ifdef AUDIOCONVERT_DEBUG_PRC
+ //printf("AudioConverter::process %s audConv:%p sfCurFrame:%ld offset:%u channel:%d fchan:%d n:%d\n",
+ // f.name().latin1(), this, sfCurFrame, offset, channel, f.channels(), n);
+ //#endif
+
+// off_t frame = offset; // _spos is added before the call.
+ unsigned fsrate = f.samplerate();
+ //bool resample = src_state && ((unsigned)sampleRate != fsrate);
+// bool resample = isValid() && ((unsigned)sampleRate != fsrate);
+
+ if((sampleRate == 0) || (fsrate == 0))
+ {
+ #ifdef AUDIOCONVERT_DEBUG
+ printf("SRCAudioConverter::process Error: sampleRate or file samplerate is zero!\n");
+ #endif
+ return _sfCurFrame;
+ }
+
+ SRC_DATA srcdata;
+ int fchan = f.channels();
+ // Ratio is defined as output sample rate over input samplerate.
+ double srcratio = (double)sampleRate / (double)fsrate;
+ // Extra input compensation.
+ long inComp = 1;
+
+ long outFrames = n;
+ //long outSize = outFrames * channel;
+ long outSize = outFrames * fchan;
+
+ //long inSize = long(outSize * srcratio) + 1 // From MusE-2 file converter.
+ //long inSize = (long)floor(((double)outSize / srcratio)); // From simplesynth.
+ //long inFrames = (long)floor(((double)outFrames / srcratio)); // From simplesynth.
+ long inFrames = (long)ceil(((double)outFrames / srcratio)) + inComp; // From simplesynth.
+ //long inFrames = (long)floor(double(outFrames * sfinfo.samplerate) / double(sampleRate)); // From simplesynth.
+
+ long inSize = inFrames * fchan;
+ //long inSize = inFrames * channel;
+
+ // Start with buffers at expected sizes. We won't need anything larger than this, but add 4 for good luck.
+ float inbuffer[inSize + 4];
+ float outbuffer[outSize];
+
+ //size_t sfTotalRead = 0;
+ size_t rn = 0;
+ long totalOutFrames = 0;
+
+ srcdata.data_in = inbuffer;
+ srcdata.data_out = outbuffer;
+// srcdata.data_out = buffer;
+
+ // Set some kind of limit on the number of attempts to completely fill the output buffer,
+ // in case something is really screwed up - we don't want to get stuck in a loop here.
+ int attempts = 10;
+ for(int attempt = 0; attempt < attempts; ++attempt)
+ {
+ rn = f.readDirect(inbuffer, inFrames);
+ //sfTotalRead += rn;
+
+ // convert
+ //srcdata.data_in = inbuffer;
+ //srcdata.data_out = outbuffer;
+ //srcdata.data_out = poutbuf;
+ //srcdata.input_frames = inSize;
+ srcdata.input_frames = rn;
+ srcdata.output_frames = outFrames;
+ srcdata.end_of_input = ((long)rn != inFrames);
+ srcdata.src_ratio = srcratio;
+
+ //#ifdef AUDIOCONVERT_DEBUG_PRC
+ //printf("AudioConverter::process attempt:%d inFrames:%ld outFrames:%ld rn:%d data in:%p out:%p",
+ // attempt, inFrames, outFrames, rn, srcdata.data_in, srcdata.data_out);
+ //#endif
+
+ int srcerr = src_process(_src_state, &srcdata);
+ if(srcerr != 0)
+ {
+ printf("\nSRCAudioConverter::process SampleRate converter process failed: %s\n", src_strerror(srcerr));
+ return _sfCurFrame += rn;
+ }
+
+ totalOutFrames += srcdata.output_frames_gen;
+
+ //#ifdef AUDIOCONVERT_DEBUG_PRC
+ //printf(" frames used in:%ld out:%ld totalOutFrames:%ld data in:%p out:%p\n", srcdata.input_frames_used, srcdata.output_frames_gen, totalOutFrames, srcdata.data_in, srcdata.data_out);
+ //#endif
+
+ #ifdef AUDIOCONVERT_DEBUG
+ if(srcdata.output_frames_gen != outFrames)
+ printf("SRCAudioConverter::process %s output_frames_gen:%ld != outFrames:%ld inFrames:%ld srcdata.input_frames_used:%ld rn:%d\n",
+ f.name().latin1(), srcdata.output_frames_gen, outFrames, inFrames, srcdata.input_frames_used, rn);
+ #endif
+
+ // If the number of frames read by the soundfile equals the input frames, go back.
+ // Otherwise we have reached the end of the file, so going back is useless since
+ // there shouldn't be any further calls.
+ if((long)rn == inFrames)
+ {
+ // Go back by the amount of unused frames.
+ sf_count_t seekn = inFrames - srcdata.input_frames_used;
+ if(seekn != 0)
+ {
+ #ifdef AUDIOCONVERT_DEBUG_PRC
+ printf("SRCAudioConverter::process Seek-back by:%d\n", seekn);
+ #endif
+ _sfCurFrame = f.seek(-seekn, SEEK_CUR);
+ }
+ else
+ _sfCurFrame += rn;
+
+ if(totalOutFrames == n)
+ {
+ // We got our desired number of output frames. Stop attempting.
+ break;
+ }
+ else
+ {
+ // No point in continuing if on last attempt.
+ if(attempt == (attempts - 1))
+ break;
+
+ #ifdef AUDIOCONVERT_DEBUG
+ printf("SRCAudioConverter::process %s attempt:%d totalOutFrames:%ld != n:%d try again\n", f.name().latin1(), attempt, totalOutFrames, n);
+ #endif
+
+ // SRC didn't give us the number of frames we requested.
+ // This can occasionally be radically different from the requested frames, or zero,
+ // even when ample excess input frames are supplied.
+ // Move the src output pointer to a new position.
+ srcdata.data_out += srcdata.output_frames_gen * channel;
+ // Set new number of maximum out frames.
+ outFrames -= srcdata.output_frames_gen;
+ // Calculate the new number of file input frames required.
+ inFrames = (long)ceil(((double)outFrames / srcratio)) + inComp;
+ // Keep trying.
+ continue;
+ }
+ }
+ else
+ {
+ _sfCurFrame += rn;
+ #ifdef AUDIOCONVERT_DEBUG
+ printf("SRCAudioConverter::process %s rn:%zd != inFrames:%ld output_frames_gen:%ld outFrames:%ld srcdata.input_frames_used:%ld\n",
+ f.name().latin1(), rn, inFrames, srcdata.output_frames_gen, outFrames, srcdata.input_frames_used);
+ #endif
+
+ // We've reached the end of the file. Convert the number of frames read.
+ //rn = (double)rn * srcratio + 1;
+ //rn = (long)floor((double)rn * srcratio);
+ //if(rn > (size_t)outFrames)
+ // rn = outFrames;
+ // Stop attempting.
+ break;
+ }
+ }
+
+ // If we still didn't get the desired number of output frames.
+ if(totalOutFrames != n)
+ {
+ #ifdef AUDIOCONVERT_DEBUG
+ printf("SRCAudioConverter::process %s totalOutFrames:%ld != n:%d\n", f.name().latin1(), totalOutFrames, n);
+ #endif
+
+ // Let's zero the rest of it.
+ long b = totalOutFrames * channel;
+ long e = n * channel;
+ for(long i = b; i < e; ++i)
+ outbuffer[i] = 0.0f;
+ //buffer[i] = 0.0f;
+ }
+
+ //float* poutbuf = &outbuffer[0];
+ float* poutbuf = outbuffer;
+ if(fchan == channel)
+ {
+ if(overwrite)
+ //for (size_t i = 0; i < rn; ++i)
+ for (int i = 0; i < n; ++i)
+ {
+ for(int ch = 0; ch < channel; ++ch)
+ *(buffer[ch] + i) = *poutbuf++;
+ }
+ else
+ //for(size_t i = 0; i < rn; ++i)
+ for(int i = 0; i < n; ++i)
+ {
+ for(int ch = 0; ch < channel; ++ch)
+ *(buffer[ch] + i) += *poutbuf++;
+ }
+ }
+ else if((fchan == 2) && (channel == 1))
+ {
+ // stereo to mono
+ if(overwrite)
+ //for(size_t i = 0; i < rn; ++i)
+ for(int i = 0; i < n; ++i)
+ *(buffer[0] + i) = poutbuf[i + i] + poutbuf[i + i + 1];
+ else
+ //for(size_t i = 0; i < rn; ++i)
+ for(int i = 0; i < n; ++i)
+ *(buffer[0] + i) += poutbuf[i + i] + poutbuf[i + i + 1];
+ }
+ else if((fchan == 1) && (channel == 2))
+ {
+ // mono to stereo
+ if(overwrite)
+ //for(size_t i = 0; i < rn; ++i)
+ for(int i = 0; i < n; ++i)
+ {
+ float data = *poutbuf++;
+ *(buffer[0]+i) = data;
+ *(buffer[1]+i) = data;
+ }
+ else
+ //for(size_t i = 0; i < rn; ++i)
+ for(int i = 0; i < n; ++i)
+ {
+ float data = *poutbuf++;
+ *(buffer[0]+i) += data;
+ *(buffer[1]+i) += data;
+ }
+ }
+ else
+ {
+ #ifdef AUDIOCONVERT_DEBUG
+ printf("SRCAudioConverter::process Channel mismatch: source chans:%d -> dst chans:%d\n", fchan, channel);
+ #endif
+ }
+
+ return _sfCurFrame;
+}
+
+#ifdef RUBBERBAND_SUPPORT
+
+//---------------------------------------------------------
+// RubberBandAudioConverter
+//---------------------------------------------------------
+
+RubberBandAudioConverter::RubberBandAudioConverter(int channels, int options) : AudioConverter()
+{
+ #ifdef AUDIOCONVERT_DEBUG
+ printf("RubberBandAudioConverter::RubberBandAudioConverter this:%p channels:%d options:%x\n", this, channels, options);
+ #endif
+
+ _options = options;
+ _rbs = 0;
+ _channels = channels;
+
+ _rbs = new RubberBandStretcher(sampleRate, _channels, _options); // , initialTimeRatio = 1.0, initialPitchScale = 1.0
+}
+
+RubberBandAudioConverter::~RubberBandAudioConverter()
+{
+ #ifdef AUDIOCONVERT_DEBUG
+ printf("RubberBandAudioConverter::~RubberBandAudioConverter this:%p\n", this);
+ #endif
+ if(_rbs)
+ delete _rbs;
+}
+
+void RubberBandAudioConverter::setChannels(int ch)
+{
+ #ifdef AUDIOCONVERT_DEBUG
+ printf("RubberBandAudioConverter::setChannels this:%p channels:%d\n", this, ch);
+ #endif
+ if(_rbs)
+ delete _rbs;
+ _rbs = 0;
+
+ _channels = ch;
+ _rbs = new RubberBandStretcher(sampleRate, _channels, _options); // , initialTimeRatio = 1.0, initialPitchScale = 1.0
+}
+
+void RubberBandAudioConverter::reset()
+{
+ if(!_rbs)
+ return;
+ #ifdef AUDIOCONVERT_DEBUG
+ printf("RubberBandAudioConverter::reset this:%p\n", this);
+ #endif
+ _rbs->reset();
+ return;
+}
+
+/////////////////////////////////
+// TODO: Not finished yet..
+////////////////////////////////
+//off_t RubberBandAudioConverter::process(SndFileR& f, off_t sfCurFrame, float** buffer, int channel, int n, bool overwrite)
+off_t RubberBandAudioConverter::process(SndFileR& f, float** buffer, int channel, int n, bool overwrite)
+{
+ //return src_process(_src_state, sd);
+
+ if(f.isNull())
+ //return;
+ return _sfCurFrame;
+
+ // Added by Tim. p3.3.17
+ //#ifdef AUDIOCONVERT_DEBUG_PRC
+ //printf("AudioConverter::process %s audConv:%p sfCurFrame:%ld offset:%u channel:%d fchan:%d n:%d\n",
+ // f.name().latin1(), this, sfCurFrame, offset, channel, f.channels(), n);
+ //#endif
+
+// off_t frame = offset; // _spos is added before the call.
+ unsigned fsrate = f.samplerate();
+ //bool resample = src_state && ((unsigned)sampleRate != fsrate);
+// bool resample = isValid() && ((unsigned)sampleRate != fsrate);
+
+ if((sampleRate == 0) || (fsrate == 0))
+ {
+ #ifdef AUDIOCONVERT_DEBUG
+ printf("RubberBandAudioConverter::process Error: sampleRate or file samplerate is zero!\n");
+ #endif
+ return _sfCurFrame;
+ }
+
+// SRC_DATA srcdata;
+ int fchan = f.channels();
+ // Ratio is defined as output sample rate over input samplerate.
+ double srcratio = (double)sampleRate / (double)fsrate;
+ // Extra input compensation.
+ long inComp = 1;
+
+ long outFrames = n;
+ //long outSize = outFrames * channel;
+ long outSize = outFrames * fchan;
+
+ //long inSize = long(outSize * srcratio) + 1 // From MusE-2 file converter.
+ //long inSize = (long)floor(((double)outSize / srcratio)); // From simplesynth.
+ //long inFrames = (long)floor(((double)outFrames / srcratio)); // From simplesynth.
+ long inFrames = (long)ceil(((double)outFrames / srcratio)) + inComp; // From simplesynth.
+ //long inFrames = (long)floor(double(outFrames * sfinfo.samplerate) / double(sampleRate)); // From simplesynth.
+
+ long inSize = inFrames * fchan;
+ //long inSize = inFrames * channel;
+
+ // Start with buffers at expected sizes. We won't need anything larger than this, but add 4 for good luck.
+ float inbuffer[inSize]; // +4
+// float outbuffer[outSize];
+
+ //float* rbinbuffer[fchan];
+ //float rbindata[inSize];
+ //for (int i = 0; i < fchan; ++i)
+ // rbinbuffer[i] = rbindata + i * inFrames;
+
+ float* rboutbuffer[fchan];
+ float rboutdata[outSize];
+ for (int i = 0; i < fchan; ++i)
+ rboutbuffer[i] = rboutdata + i * outFrames;
+
+ //size_t sfTotalRead = 0;
+ size_t rn = 0;
+ long totalOutFrames = 0;
+
+// srcdata.data_in = inbuffer;
+ //srcdata.data_out = outbuffer;
+// srcdata.data_out = buffer;
+ float** data_out = rboutbuffer;
+
+ // For just sample rate conversion, apply same ratio to both time and pitch.
+ _rbs->setTimeRatio(srcratio);
+ _rbs->setPitchScale(srcratio);
+
+ // Set some kind of limit on the number of attempts to completely fill the output buffer,
+ // in case something is really screwed up - we don't want to get stuck in a loop here.
+ int attempts = 10;
+ for(int attempt = 0; attempt < attempts; ++attempt)
+ {
+ size_t sreq = _rbs->getSamplesRequired();
+
+ size_t rbinSize = sreq * fchan;
+ float* rbinbuffer[fchan];
+ float rbindata[rbinSize];
+ for(int i = 0; i < fchan; ++i)
+ rbinbuffer[i] = rbindata + i * sreq;
+
+// rn = f.readDirect(inbuffer, inFrames);
+ rn = f.readDirect(inbuffer, sreq);
+ //sfTotalRead += rn;
+
+ // Must de-interleave soundfile data to feed to rubberband.
+ for(size_t i = 0; i < rn; ++i)
+ {
+ for(int ch = 0; ch < fchan; ++ch)
+ *(rbinbuffer[ch] + i) = *inbuffer++;
+ }
+
+ _rbs->process(rbinbuffer, rn, (long)rn != inFrames);
+
+ // "This function returns -1 if all data has been fully processed and all output read, and the stretch process is now finished."
+ int savail = _rbs->available();
+
+
+ // convert
+ //srcdata.data_in = inbuffer;
+ //srcdata.data_out = outbuffer;
+ //srcdata.data_out = poutbuf;
+ //srcdata.input_frames = inSize;
+ srcdata.input_frames = rn;
+ srcdata.output_frames = outFrames;
+ srcdata.end_of_input = ((long)rn != inFrames);
+ srcdata.src_ratio = srcratio;
+
+ //#ifdef AUDIOCONVERT_DEBUG_PRC
+ //printf("AudioConverter::process attempt:%d inFrames:%ld outFrames:%ld rn:%d data in:%p out:%p",
+ // attempt, inFrames, outFrames, rn, srcdata.data_in, srcdata.data_out);
+ //#endif
+
+ int srcerr = src_process(_src_state, &srcdata);
+ if(srcerr != 0)
+ {
+ printf("\RubberBandAudioConverter::process SampleRate converter process failed: %s\n", src_strerror(srcerr));
+ return _sfCurFrame += rn;
+ }
+
+ totalOutFrames += srcdata.output_frames_gen;
+
+ //#ifdef AUDIOCONVERT_DEBUG_PRC
+ //printf(" frames used in:%ld out:%ld totalOutFrames:%ld data in:%p out:%p\n", srcdata.input_frames_used, srcdata.output_frames_gen, totalOutFrames, srcdata.data_in, srcdata.data_out);
+ //#endif
+
+ #ifdef AUDIOCONVERT_DEBUG
+ if(srcdata.output_frames_gen != outFrames)
+ printf("RubberBandAudioConverter::process %s output_frames_gen:%ld != outFrames:%ld inFrames:%ld srcdata.input_frames_used:%ld rn:%d\n",
+ f.name().latin1(), srcdata.output_frames_gen, outFrames, inFrames, srcdata.input_frames_used, rn);
+ #endif
+
+ // If the number of frames read by the soundfile equals the input frames, go back.
+ // Otherwise we have reached the end of the file, so going back is useless since
+ // there shouldn't be any further calls.
+ if((long)rn == inFrames)
+ {
+ // Go back by the amount of unused frames.
+ sf_count_t seekn = inFrames - srcdata.input_frames_used;
+ if(seekn != 0)
+ {
+ #ifdef AUDIOCONVERT_DEBUG_PRC
+ printf("RubberBandAudioConverter::process Seek-back by:%d\n", seekn);
+ #endif
+ _sfCurFrame = f.seek(-seekn, SEEK_CUR);
+ }
+ else
+ _sfCurFrame += rn;
+
+ if(totalOutFrames == n)
+ {
+ // We got our desired number of output frames. Stop attempting.
+ break;
+ }
+ else
+ {
+ // No point in continuing if on last attempt.
+ if(attempt == (attempts - 1))
+ break;
+
+ #ifdef AUDIOCONVERT_DEBUG
+ printf("RubberBandAudioConverter::process %s attempt:%d totalOutFrames:%ld != n:%d try again\n", f.name().latin1(), attempt, totalOutFrames, n);
+ #endif
+
+ // We didn't get the number of frames we requested.
+ // This can occasionally be radically different from the requested frames, or zero,
+ // even when ample excess input frames are supplied.
+ // Move the src output pointer to a new position.
+ srcdata.data_out += srcdata.output_frames_gen * channel;
+ // Set new number of maximum out frames.
+ outFrames -= srcdata.output_frames_gen;
+ // Calculate the new number of file input frames required.
+ inFrames = (long)ceil(((double)outFrames / srcratio)) + inComp;
+ // Keep trying.
+ continue;
+ }
+ }
+ else
+ {
+ _sfCurFrame += rn;
+ #ifdef AUDIOCONVERT_DEBUG
+ printf("RubberBandAudioConverter::process %s rn:%zd != inFrames:%ld output_frames_gen:%ld outFrames:%ld srcdata.input_frames_used:%ld\n",
+ f.name().latin1(), rn, inFrames, srcdata.output_frames_gen, outFrames, srcdata.input_frames_used);
+ #endif
+
+ // We've reached the end of the file. Convert the number of frames read.
+ //rn = (double)rn * srcratio + 1;
+ //rn = (long)floor((double)rn * srcratio);
+ //if(rn > (size_t)outFrames)
+ // rn = outFrames;
+ // Stop attempting.
+ break;
+ }
+ }
+
+ // If we still didn't get the desired number of output frames.
+ if(totalOutFrames != n)
+ {
+ #ifdef AUDIOCONVERT_DEBUG
+ printf("RubberBandAudioConverter::process %s totalOutFrames:%ld != n:%d\n", f.name().latin1(), totalOutFrames, n);
+ #endif
+
+ // Let's zero the rest of it.
+ long b = totalOutFrames * channel;
+ long e = n * channel;
+ for(long i = b; i < e; ++i)
+ //outbuffer[i] = 0.0f;
+ buffer[i] = 0.0f;
+ }
+
+ //float* poutbuf = &outbuffer[0];
+ float* poutbuf = outbuffer;
+ if(fchan == channel)
+ {
+ if(overwrite)
+ //for (size_t i = 0; i < rn; ++i)
+ for (int i = 0; i < n; ++i)
+ {
+ for(int ch = 0; ch < channel; ++ch)
+ *(buffer[ch] + i) = *poutbuf++;
+ }
+ else
+ //for(size_t i = 0; i < rn; ++i)
+ for(int i = 0; i < n; ++i)
+ {
+ for(int ch = 0; ch < channel; ++ch)
+ *(buffer[ch] + i) += *poutbuf++;
+ }
+ }
+ else if((fchan == 2) && (channel == 1))
+ {
+ // stereo to mono
+ if(overwrite)
+ //for(size_t i = 0; i < rn; ++i)
+ for(int i = 0; i < n; ++i)
+ *(buffer[0] + i) = poutbuf[i + i] + poutbuf[i + i + 1];
+ else
+ //for(size_t i = 0; i < rn; ++i)
+ for(int i = 0; i < n; ++i)
+ *(buffer[0] + i) += poutbuf[i + i] + poutbuf[i + i + 1];
+ }
+ else if((fchan == 1) && (channel == 2))
+ {
+ // mono to stereo
+ if(overwrite)
+ //for(size_t i = 0; i < rn; ++i)
+ for(int i = 0; i < n; ++i)
+ {
+ float data = *poutbuf++;
+ *(buffer[0]+i) = data;
+ *(buffer[1]+i) = data;
+ }
+ else
+ //for(size_t i = 0; i < rn; ++i)
+ for(int i = 0; i < n; ++i)
+ {
+ float data = *poutbuf++;
+ *(buffer[0]+i) += data;
+ *(buffer[1]+i) += data;
+ }
+ }
+ else
+ {
+ #ifdef AUDIOCONVERT_DEBUG
+ printf("RubberBandAudioConverter::process Channel mismatch: source chans:%d -> dst chans:%d\n", fchan, channel);
+ #endif
+ }
+
+ return _sfCurFrame;
+}
+
+#endif // RUBBERBAND_SUPPORT
diff --git a/muse2/muse/audioconvert.h b/muse2/muse/audioconvert.h
new file mode 100644
index 00000000..039af912
--- /dev/null
+++ b/muse2/muse/audioconvert.h
@@ -0,0 +1,129 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: audioconvert.h,v 1.1.1.1 2009/12/28 16:07:33 terminator356 Exp $
+//
+// (C) Copyright 1999-2009 Werner Schweer (ws@seh.de)
+//
+// Audio converter module created by Tim terminator356
+//=========================================================
+
+#ifndef __AUDIOCONVERT_H__
+#define __AUDIOCONVERT_H__
+
+#include <map>
+
+#ifdef RUBBERBAND_SUPPORT
+#include <RubberBandStretcher.h>
+#endif
+
+#include <samplerate.h>
+#include <sys/types.h>
+
+//#include "eventbase.h"
+class EventBase;
+class EventList;
+
+class SndFileR;
+
+//---------------------------------------------------------
+// AudioConverter
+//---------------------------------------------------------
+
+class AudioConverter
+{
+ protected:
+ int _refCount;
+ off_t _sfCurFrame;
+
+ public:
+ AudioConverter();
+ ~AudioConverter();
+
+ AudioConverter* reference();
+ static AudioConverter* release(AudioConverter* cv);
+
+ //off_t readAudio(SndFileR& /*sf*/, off_t /*sfCurFrame*/, unsigned /*offset*/, float** /*buffer*/,
+ // int /*channels*/, int /*frames*/, bool /*doSeek*/, bool /*overwrite*/);
+ off_t readAudio(SndFileR& /*sf*/, unsigned /*offset*/, float** /*buffer*/,
+ int /*channels*/, int /*frames*/, bool /*doSeek*/, bool /*overwrite*/);
+
+ virtual bool isValid() = 0;
+ virtual void reset() = 0;
+ virtual void setChannels(int ch) = 0;
+ //virtual off_t process(SndFileR& /*sf*/, off_t /*sfCurFrame*/, float** /*buffer*/,
+ // int /*channels*/, int /*frames*/, bool /*overwrite*/) = 0; // Interleaved buffer if stereo.
+ virtual off_t process(SndFileR& /*sf*/, float** /*buffer*/,
+ int /*channels*/, int /*frames*/, bool /*overwrite*/) = 0; // Interleaved buffer if stereo.
+};
+
+//---------------------------------------------------------
+// SRCAudioConverter
+//---------------------------------------------------------
+
+class SRCAudioConverter : public AudioConverter
+{
+ int _type;
+ int _channels;
+ SRC_STATE* _src_state;
+
+ public:
+ SRCAudioConverter(int channels, int type);
+ ~SRCAudioConverter();
+
+ virtual bool isValid() { return _src_state != 0; }
+ virtual void reset();
+ virtual void setChannels(int ch);
+ //virtual off_t process(SndFileR& /*sf*/, off_t /*sfCurFrame*/, float** /*buffer*/,
+ // int /*channels*/, int /*frames*/, bool /*overwrite*/); // Interleaved buffer if stereo.
+ virtual off_t process(SndFileR& /*sf*/, float** /*buffer*/,
+ int /*channels*/, int /*frames*/, bool /*overwrite*/); // Interleaved buffer if stereo.
+};
+
+#ifdef RUBBERBAND_SUPPORT
+
+//---------------------------------------------------------
+// RubberBandAudioConverter
+//---------------------------------------------------------
+
+class RubberBandAudioConverter : public AudioConverter
+{
+ int _options;
+ int _channels;
+ RubberBandStretcher* _rbs;
+
+ public:
+ RubberBandAudioConverter(int channels, int options);
+ ~RubberBandAudioConverter();
+
+ virtual bool isValid() { return _rbs != 0; }
+ virtual void reset();
+ virtual void setChannels(int ch);
+ //virtual off_t process(SndFileR& /*sf*/, off_t /*sfCurFrame*/, float** /*buffer*/,
+ // int /*channels*/, int /*frames*/, bool /*overwrite*/); // Interleaved buffer if stereo.
+ virtual off_t process(SndFileR& /*sf*/, float** /*buffer*/,
+ int /*channels*/, int /*frames*/, bool /*overwrite*/); // Interleaved buffer if stereo.
+};
+
+#endif // RUBBERBAND_SUPPORT
+
+//---------------------------------------------------------
+// AudioConvertMap
+//---------------------------------------------------------
+
+typedef std::map<EventBase*, AudioConverter*, std::less<EventBase*> >::iterator iAudioConvertMap;
+typedef std::map<EventBase*, AudioConverter*, std::less<EventBase*> >::const_iterator ciAudioConvertMap;
+
+//typedef std::map<EventBase*, AudioConverter*, std::less<EventBase*> > AudioConvertMap;
+class AudioConvertMap : public std::map<EventBase*, AudioConverter*, std::less<EventBase*> >
+{
+ public:
+ void remapEvents(const EventList*);
+ iAudioConvertMap addEvent(EventBase*);
+ void removeEvent(EventBase*);
+ //AudioConverter* getConverter(const EventBase*);
+ iAudioConvertMap getConverter(EventBase*);
+};
+
+#endif
+
diff --git a/muse2/muse/audioprefetch.cpp b/muse2/muse/audioprefetch.cpp
new file mode 100644
index 00000000..b2ddab8c
--- /dev/null
+++ b/muse2/muse/audioprefetch.cpp
@@ -0,0 +1,262 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: audioprefetch.cpp,v 1.14.2.7 2009/12/20 05:00:35 terminator356 Exp $
+//
+// (C) Copyright 2001 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include <poll.h>
+#include <stdio.h>
+#include <unistd.h>
+#include <values.h>
+
+#include "audioprefetch.h"
+#include "globals.h"
+#include "track.h"
+#include "song.h"
+#include "audio.h"
+#include "sync.h"
+
+// Added by Tim. p3.3.20
+//#define AUDIOPREFETCH_DEBUG
+
+enum { PREFETCH_TICK, PREFETCH_SEEK
+ };
+
+//---------------------------------------------------------
+// PrefetchMsg
+//---------------------------------------------------------
+
+struct PrefetchMsg : public ThreadMsg {
+ int pos;
+ };
+
+AudioPrefetch* audioPrefetch;
+
+//---------------------------------------------------------
+// AudioPrefetch
+//---------------------------------------------------------
+
+//AudioPrefetch::AudioPrefetch(int prio, const char* name)
+// : Thread(prio,name)
+AudioPrefetch::AudioPrefetch(const char* name)
+ : Thread(name)
+ {
+ seekPos = ~0;
+ writePos = ~0;
+ //seekDone = true;
+ seekCount = 0;
+ }
+
+//---------------------------------------------------------
+// readMsg
+//---------------------------------------------------------
+
+static void readMsgP(void* p, void*)
+ {
+ AudioPrefetch* at = (AudioPrefetch*)p;
+ at->readMsg1(sizeof(PrefetchMsg));
+ }
+
+//---------------------------------------------------------
+// start
+//---------------------------------------------------------
+
+//void AudioPrefetch::start()
+void AudioPrefetch::start(int priority)
+ {
+ clearPollFd();
+ addPollFd(toThreadFdr, POLLIN, ::readMsgP, this, 0);
+ //Thread::start();
+ Thread::start(priority);
+ }
+
+//---------------------------------------------------------
+// ~AudioPrefetch
+//---------------------------------------------------------
+
+AudioPrefetch::~AudioPrefetch()
+ {
+ }
+
+//---------------------------------------------------------
+// processMsg
+//---------------------------------------------------------
+
+void AudioPrefetch::processMsg1(const void* m)
+ {
+ const PrefetchMsg* msg = (PrefetchMsg*)m;
+ switch(msg->id) {
+ case PREFETCH_TICK:
+ if (audio->isRecording()) {
+ //puts("writeTick");
+ audio->writeTick();
+ }
+ // Indicate do not seek file before each read.
+ // Changed by Tim. p3.3.17
+ //prefetch();
+ prefetch(false);
+
+ seekPos = ~0; // invalidate cached last seek position
+ break;
+ case PREFETCH_SEEK:
+ #ifdef AUDIOPREFETCH_DEBUG
+ printf("AudioPrefetch::processMsg1 PREFETCH_SEEK msg->pos:%d\n", msg->pos);
+ #endif
+
+ // process seek in background
+ seek(msg->pos);
+ break;
+ default:
+ printf("AudioPrefetch::processMsg1: unknown message\n");
+ }
+ }
+
+//---------------------------------------------------------
+// msgTick
+//---------------------------------------------------------
+
+void AudioPrefetch::msgTick()
+ {
+ 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, bool force)
+ {
+ if (samplePos == seekPos && !force) {
+ //seekDone = true;
+ return;
+ }
+
+ ++seekCount;
+ //seekDone = false;
+
+ #ifdef AUDIOPREFETCH_DEBUG
+ printf("AudioPrefetch::msgSeek samplePos:%u force:%d seekCount:%d\n", samplePos, force, seekCount);
+ #endif
+
+ PrefetchMsg msg;
+ msg.id = PREFETCH_SEEK;
+ msg.pos = samplePos;
+ while (sendMsg1(&msg, sizeof(msg))) {
+ printf("AudioPrefetch::msgSeek::sleep(1)\n");
+ sleep(1);
+ }
+ }
+
+//---------------------------------------------------------
+// prefetch
+//---------------------------------------------------------
+
+//void AudioPrefetch::prefetch()
+void AudioPrefetch::prefetch(bool doSeek)
+ {
+ if (writePos == ~0U) {
+ printf("AudioPrefetch::prefetch: invalid write position\n");
+ return;
+ }
+ if (song->loop() && !audio->bounce() && !extSyncFlag.value()) {
+ const Pos& loop = song->rPos();
+ unsigned n = loop.frame() - writePos;
+ if (n < segmentSize) {
+ unsigned lpos = song->lPos().frame();
+ // adjust loop start so we get exact loop len
+ if (n > lpos)
+ n = 0;
+// printf("prefetch seek %d\n", writePos);
+ writePos = lpos - n;
+ }
+ }
+ WaveTrackList* tl = song->waves();
+ for (iWaveTrack it = tl->begin(); it != tl->end(); ++it) {
+ WaveTrack* track = *it;
+ // p3.3.29
+ // Save time. Don't bother if track is off. Track On/Off not designed for rapid repeated response (but mute is).
+ if(track->off())
+ continue;
+
+ int ch = track->channels();
+ float* bp[ch];
+// printf("prefetch %d\n", writePos);
+ if (track->prefetchFifo()->getWriteBuffer(ch, segmentSize, bp, writePos)) {
+ // printf("AudioPrefetch::prefetch No write buffer!\n"); // p3.3.46 Was getting this...
+ continue;
+ }
+ //track->fetchData(writePos, segmentSize, bp);
+ track->fetchData(writePos, segmentSize, bp, doSeek);
+
+ // p3.3.41
+ //fprintf(stderr, "AudioPrefetch::prefetch data: segmentSize:%ld %e %e %e %e\n", segmentSize, bp[0][0], bp[0][1], bp[0][2], bp[0][3]);
+
+ }
+ writePos += segmentSize;
+ }
+
+//---------------------------------------------------------
+// seek
+//---------------------------------------------------------
+
+void AudioPrefetch::seek(unsigned seekTo)
+ {
+// printf("seek %d\n", seekTo);
+ #ifdef AUDIOPREFETCH_DEBUG
+ printf("AudioPrefetch::seek to:%u seekCount:%d\n", seekTo, seekCount);
+ #endif
+
+ // Speedup: More than one seek message pending?
+ // Eat up seek messages until we get to the very LATEST one,
+ // because all the rest which came before it are irrelevant now,
+ // and processing them all was taking extreme time, especially with
+ // resampling enabled.
+ // In particular, when the user 'slides' the play cursor back and forth
+ // there are MANY seek messages in the pipe, and with resampling enabled
+ // it was taking minutes to finish seeking. If the user hit play during that time,
+ // things were messed up (FIFO underruns, choppy intermittent sound etc).
+ // Added by Tim. p3.3.20
+ if(seekCount > 1)
+ {
+ --seekCount;
+ return;
+ }
+
+ writePos = seekTo;
+ WaveTrackList* tl = song->waves();
+ for (iWaveTrack it = tl->begin(); it != tl->end(); ++it) {
+ WaveTrack* track = *it;
+ track->clearPrefetchFifo();
+ }
+
+ bool isFirstPrefetch = true;
+ for (unsigned int i = 0; i < (fifoLength)-1; ++i)//prevent compiler warning: comparison of signed/unsigned
+ {
+ // Indicate do a seek command before read, but only on the first pass.
+ // Changed by Tim. p3.3.17
+ //prefetch();
+ prefetch(isFirstPrefetch);
+
+ isFirstPrefetch = false;
+
+ // To help speed things up even more, check the count again. Return if more seek messages are pending.
+ // Added by Tim. p3.3.20
+ if(seekCount > 1)
+ {
+ --seekCount;
+ return;
+ }
+ }
+
+ seekPos = seekTo;
+ //seekDone = true;
+ --seekCount;
+ }
+
diff --git a/muse2/muse/audioprefetch.h b/muse2/muse/audioprefetch.h
new file mode 100644
index 00000000..dda4d895
--- /dev/null
+++ b/muse2/muse/audioprefetch.h
@@ -0,0 +1,46 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: audioprefetch.h,v 1.3.2.2 2009/12/20 05:00:35 terminator356 Exp $
+//
+// (C) Copyright 2001 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __AUDIOPREFETCH_H__
+#define __AUDIOPREFETCH_H__
+
+#include "thread.h"
+
+//---------------------------------------------------------
+// AudioPrefetch
+//---------------------------------------------------------
+
+class AudioPrefetch : public Thread {
+ unsigned writePos;
+ unsigned seekPos; // remember last seek to optimize seeks
+
+ virtual void processMsg1(const void*);
+ //void prefetch();
+ void prefetch(bool doSeek);
+ void seek(unsigned pos);
+
+ volatile int seekCount;
+
+ public:
+ //AudioPrefetch(int prio, const char* name);
+ AudioPrefetch(const char* name);
+
+ ~AudioPrefetch();
+ //virtual void start();
+ virtual void start(int);
+
+ void msgTick();
+ void msgSeek(unsigned samplePos, bool force=false);
+
+ //volatile bool seekDone;
+ bool seekDone() const { return seekCount == 0; }
+ };
+
+extern AudioPrefetch* audioPrefetch;
+
+#endif
diff --git a/muse2/muse/audiotrack.cpp b/muse2/muse/audiotrack.cpp
new file mode 100644
index 00000000..189e39d1
--- /dev/null
+++ b/muse2/muse/audiotrack.cpp
@@ -0,0 +1,1639 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: audiotrack.cpp,v 1.14.2.21 2009/12/20 05:00:35 terminator356 Exp $
+//
+// (C) Copyright 2004 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include <values.h>
+#include <stdlib.h>
+#include <qmessagebox.h>
+#include <map>
+#include "track.h"
+#include "event.h"
+#include "song.h"
+#include "audio.h"
+#include "wave.h"
+#include "xml.h"
+#include "plugin.h"
+#include "audiodev.h"
+
+// By T356. For caching jack in/out routing names BEFORE file save.
+// Jack often shuts down during file save, causing the routes to be lost in the file.
+// cacheJackRouteNames() is ONLY called from MusE::save() in app.cpp
+// Update: Not required any more because the real problem was Jack RT priority, which has been fixed.
+/*
+typedef std::multimap <const int, QString> jackRouteNameMap;
+std::map <const AudioTrack*, jackRouteNameMap > jackRouteNameCache;
+typedef std::multimap <const int, QString>::const_iterator ciJackRouteNameMap;
+typedef std::map <const AudioTrack*, jackRouteNameMap>::const_iterator ciJackRouteNameCache;
+void cacheJackRouteNames()
+{
+ jackRouteNameCache.clear();
+ const InputList* il = song->inputs();
+ for(ciAudioInput iai = il->begin(); iai != il->end(); ++iai)
+ {
+ const RouteList* rl = (*iai)->inRoutes();
+ if(!rl->empty())
+ {
+ jackRouteNameMap rm = jackRouteNameMap();
+ for(ciRoute r = rl->begin(); r != rl->end(); ++r)
+ rm.insert(std::pair<const int, QString>(r->channel, r->name()));
+ jackRouteNameCache.insert(std::pair<const AudioTrack*, jackRouteNameMap>(*iai, rm));
+ }
+ }
+ const OutputList* ol = song->outputs();
+ for(ciAudioOutput iao = ol->begin(); iao != ol->end(); ++iao)
+ {
+ const RouteList* rl = (*iao)->outRoutes();
+ if(!rl->empty())
+ {
+ jackRouteNameMap rm = jackRouteNameMap();
+ for(ciRoute r = rl->begin(); r != rl->end(); ++r)
+ rm.insert(std::pair<const int, QString>(r->channel, r->name()));
+ jackRouteNameCache.insert(std::pair<const AudioTrack*, jackRouteNameMap>(*iao, rm));
+ }
+ }
+}
+*/
+
+//---------------------------------------------------------
+// AudioTrack
+//---------------------------------------------------------
+
+AudioTrack::AudioTrack(TrackType t)
+//AudioTrack::AudioTrack(TrackType t, int num_out_bufs)
+ : Track(t)
+ {
+ //_totalOutChannels = num_out_bufs; // Is either parameter-default MAX_CHANNELS, or custom value passed (used by syntis).
+ _processed = false;
+ _haveData = false;
+ _sendMetronome = false;
+ _prefader = false;
+ _efxPipe = new Pipeline();
+ _recFile = 0;
+ _channels = 0;
+ _automationType = AUTO_OFF;
+ //setChannels(1);
+ setChannels(2);
+ addController(new CtrlList(AC_VOLUME,"Volume",0.0,1.0));
+ addController(new CtrlList(AC_PAN, "Pan", -1.0, 1.0));
+ addController(new CtrlList(AC_MUTE,"Mute",0.0,1.0));
+
+ // Changed by Tim. p3.3.15
+ //outBuffers = new float*[MAX_CHANNELS];
+ //for (int i = 0; i < MAX_CHANNELS; ++i)
+ // outBuffers[i] = new float[segmentSize];
+ //for (int i = 0; i < MAX_CHANNELS; ++i)
+ // posix_memalign((void**)(outBuffers + i), 16, sizeof(float) * segmentSize);
+
+ // Let's allocate it all in one block, and just point the remaining buffer pointers into the block
+ // which allows faster one-shot buffer copying.
+ // Nope. Nice but interferes with possibility we don't know if other buffers are contiguous (jack buffers, local stack buffers etc.).
+ //posix_memalign((void**)(outBuffers), 16, sizeof(float) * segmentSize * MAX_CHANNELS);
+ //for (int i = 0; i < MAX_CHANNELS; ++i)
+ // *(outBuffers + i) = sizeof(float) * segmentSize * i;
+
+ // p3.3.38
+ // Easy way, less desirable... Start out with enough for MAX_CHANNELS. Then multi-channel syntis can re-allocate,
+ // via a call to (a modified!) setChannels().
+ // Hard way, more desirable... Creating a synti instance passes the total channels to this constructor, overriding MAX_CHANNELS.
+ _totalOutChannels = MAX_CHANNELS;
+ outBuffers = new float*[_totalOutChannels];
+ for (int i = 0; i < _totalOutChannels; ++i)
+ posix_memalign((void**)&outBuffers[i], 16, sizeof(float) * segmentSize);
+
+ // This is only set by multi-channel syntis...
+ _totalInChannels = 0;
+
+ bufferPos = MAXINT;
+
+ setVolume(1.0);
+ }
+
+//AudioTrack::AudioTrack(const AudioTrack& t)
+// : Track(t)
+AudioTrack::AudioTrack(const AudioTrack& t, bool cloneParts)
+ : Track(t, cloneParts)
+ {
+ _totalOutChannels = t._totalOutChannels; // Is either MAX_CHANNELS, or custom value (used by syntis).
+ _processed = false;
+ _haveData = false;
+ _sendMetronome = t._sendMetronome;
+ _controller = t._controller;
+ _prefader = t._prefader;
+ _auxSend = t._auxSend;
+ _efxPipe = new Pipeline(*(t._efxPipe));
+ _automationType = t._automationType;
+ _inRoutes = t._inRoutes;
+ _outRoutes = t._outRoutes;
+ // Changed by Tim. p3.3.15
+ //outBuffers = new float*[MAX_CHANNELS];
+ //for (int i = 0; i < MAX_CHANNELS; ++i)
+ // outBuffers[i] = new float[segmentSize];
+ //for (int i = 0; i < MAX_CHANNELS; ++i)
+ // posix_memalign((void**)(outBuffers + i), 16, sizeof(float) * segmentSize);
+
+ // p3.3.38
+ int chans = _totalOutChannels;
+ // Number of allocated buffers is always MAX_CHANNELS or more, even if _totalOutChannels is less.
+ if(chans < MAX_CHANNELS)
+ chans = MAX_CHANNELS;
+ outBuffers = new float*[chans];
+ for (int i = 0; i < chans; ++i)
+ posix_memalign((void**)&outBuffers[i], 16, sizeof(float) * segmentSize);
+
+ bufferPos = MAXINT;
+ _recFile = t._recFile;
+ }
+
+AudioTrack::~AudioTrack()
+{
+ delete _efxPipe;
+ //for (int i = 0; i < MAX_CHANNELS; ++i)
+ // delete[] outBuffers[i];
+ //delete[] outBuffers;
+
+ // p3.3.15
+ //for(int i = 0; i < MAX_CHANNELS; ++i)
+ //{
+ // if(outBuffers[i])
+ // free(outBuffers[i]);
+ //}
+
+ // p3.3.38
+ int chans = _totalOutChannels;
+ // Number of allocated buffers is always MAX_CHANNELS or more, even if _totalOutChannels is less.
+ if(chans < MAX_CHANNELS)
+ chans = MAX_CHANNELS;
+ for(int i = 0; i < chans; ++i)
+ {
+ if(outBuffers[i])
+ free(outBuffers[i]);
+ }
+ delete[] outBuffers;
+
+}
+
+//---------------------------------------------------------
+// deleteAllEfxGuis
+//---------------------------------------------------------
+
+void AudioTrack::deleteAllEfxGuis()
+{
+ if(_efxPipe)
+ _efxPipe->deleteAllGuis();
+}
+
+//---------------------------------------------------------
+// clearEfxList
+//---------------------------------------------------------
+
+void AudioTrack::clearEfxList()
+{
+ if(_efxPipe)
+ for(int i = 0; i < PipelineDepth; i++)
+ (*_efxPipe)[i] = 0;
+}
+
+//---------------------------------------------------------
+// newPart
+//---------------------------------------------------------
+
+Part* AudioTrack::newPart(Part*, bool /*clone*/)
+ {
+ return 0;
+ }
+
+//---------------------------------------------------------
+// addPlugin
+//---------------------------------------------------------
+
+void AudioTrack::addPlugin(PluginI* plugin, int idx)
+{
+ if (plugin == 0)
+ {
+ PluginI* oldPlugin = (*_efxPipe)[idx];
+ if (oldPlugin)
+ {
+ oldPlugin->setID(-1);
+ oldPlugin->setTrack(0);
+
+ int controller = oldPlugin->parameters();
+ for (int i = 0; i < controller; ++i)
+ {
+ int id = genACnum(idx, i);
+ removeController(id);
+ }
+ }
+ }
+ efxPipe()->insert(plugin, idx);
+ if (plugin)
+ {
+ plugin->setID(idx);
+ plugin->setTrack(this);
+
+ int controller = plugin->parameters();
+ for (int i = 0; i < controller; ++i)
+ {
+ int id = genACnum(idx, i);
+ const char* name = plugin->paramName(i);
+ float min, max;
+ plugin->range(i, &min, &max);
+ CtrlValueType t = plugin->valueType();
+ CtrlList* cl = new CtrlList(id);
+ cl->setRange(min, max);
+ cl->setName(QString(name));
+ cl->setValueType(t);
+ LADSPA_PortRangeHint range = plugin->range(i);
+ if(LADSPA_IS_HINT_TOGGLED(range.HintDescriptor))
+ cl->setMode(CtrlList::DISCRETE);
+ else
+ cl->setMode(CtrlList::INTERPOLATE);
+ cl->setCurVal(plugin->param(i));
+ addController(cl);
+ }
+ }
+}
+
+//---------------------------------------------------------
+// addAuxSend
+//---------------------------------------------------------
+
+void AudioTrack::addAuxSend(int n)
+ {
+ int nn = _auxSend.size();
+ for (int i = nn; i < n; ++i) {
+ _auxSend.push_back(0.0);
+ _auxSend[i] = 0.0; //??
+ }
+ }
+
+//---------------------------------------------------------
+// addController
+//---------------------------------------------------------
+
+void AudioTrack::addController(CtrlList* list)
+ {
+ _controller.add(list);
+ }
+
+//---------------------------------------------------------
+// removeController
+//---------------------------------------------------------
+
+void AudioTrack::removeController(int id)
+ {
+ iCtrlList i = _controller.find(id);
+ if (i == _controller.end()) {
+ printf("AudioTrack::removeController id %d not found\n", id);
+ return;
+ }
+ _controller.erase(i);
+ }
+
+//---------------------------------------------------------
+// swapControllerIDX
+//---------------------------------------------------------
+
+void AudioTrack::swapControllerIDX(int idx1, int idx2)
+{
+ // FIXME This code is ugly.
+ // At best we would like to modify the keys (IDXs) in-place and
+ // do some kind of deferred re-sort, but it can't be done...
+
+ if(idx1 == idx2)
+ return;
+
+ if(idx1 < 0 || idx2 < 0 || idx1 >= PipelineDepth || idx2 >= PipelineDepth)
+ return;
+
+ CtrlList *cl;
+ CtrlList *newcl;
+ int id1 = (idx1 + 1) * AC_PLUGIN_CTL_BASE;
+ int id2 = (idx2 + 1) * AC_PLUGIN_CTL_BASE;
+ int i, j;
+
+ CtrlListList tmpcll;
+ CtrlVal cv(0, 0.0);
+
+ for(ciCtrlList icl = _controller.begin(); icl != _controller.end(); ++icl)
+ {
+ cl = icl->second;
+ i = cl->id() & AC_PLUGIN_CTL_ID_MASK;
+ j = cl->id() & ~((unsigned long)AC_PLUGIN_CTL_ID_MASK);
+ if(j == id1 || j == id2)
+ {
+ newcl = new CtrlList(i | (j == id1 ? id2 : id1));
+ newcl->setMode(cl->mode());
+ newcl->setValueType(cl->valueType());
+ newcl->setName(cl->name());
+ double min, max;
+ cl->range(&min, &max);
+ newcl->setRange(min, max);
+ newcl->setCurVal(cl->curVal());
+ newcl->setDefault(cl->getDefault());
+ for(iCtrl ic = cl->begin(); ic != cl->end(); ++ic)
+ {
+ cv = ic->second;
+ newcl->insert(std::pair<const int, CtrlVal>(cv.frame, cv));
+ }
+ tmpcll.insert(std::pair<const int, CtrlList*>(newcl->id(), newcl));
+ }
+ else
+ {
+ newcl = new CtrlList();
+ *newcl = *cl;
+ tmpcll.insert(std::pair<const int, CtrlList*>(newcl->id(), newcl));
+ }
+ }
+
+ for(iCtrlList ci = _controller.begin(); ci != _controller.end(); ++ci)
+ delete (*ci).second;
+
+ _controller.clear();
+
+ for(ciCtrlList icl = tmpcll.begin(); icl != tmpcll.end(); ++icl)
+ {
+ newcl = icl->second;
+ _controller.insert(std::pair<const int, CtrlList*>(newcl->id(), newcl));
+ }
+
+
+ /*
+ unsigned int idmask = ~AC_PLUGIN_CTL_ID_MASK;
+
+ CtrlList* cl;
+ CtrlList* ctl1 = 0;
+ CtrlList* ctl2 = 0;
+ CtrlList* newcl1 = 0;
+ CtrlList* newcl2 = 0;
+ CtrlVal cv(0, 0.0);
+ int id1 = (idx1 + 1) * AC_PLUGIN_CTL_BASE;
+ int id2 = (idx2 + 1) * AC_PLUGIN_CTL_BASE;
+ int i, j;
+ double min, max;
+
+ for(ciCtrlList icl = _controller.begin(); icl != _controller.end(); ++icl)
+ {
+ cl = icl->second;
+ i = cl->id() & AC_PLUGIN_CTL_ID_MASK;
+ j = cl->id() & idmask;
+
+ if(j == id1)
+ {
+ ctl1 = cl;
+ newcl1 = new CtrlList( i | id2 );
+ newcl1->setMode(cl->mode());
+ newcl1->setValueType(cl->valueType());
+ newcl1->setName(cl->name());
+ cl->range(&min, &max);
+ newcl1->setRange(min, max);
+ newcl1->setCurVal(cl->curVal());
+ newcl1->setDefault(cl->getDefault());
+ for(iCtrl ic = cl->begin(); ic != cl->end(); ++ic)
+ {
+ cv = ic->second;
+ newcl1->insert(std::pair<const int, CtrlVal>(cv.frame, cv));
+ }
+ }
+ //else
+ if(j == id2)
+ {
+ ctl2 = cl;
+ newcl2 = new CtrlList( i | id1 );
+ newcl2->setMode(cl->mode());
+ newcl2->setValueType(cl->valueType());
+ newcl2->setName(cl->name());
+ cl->range(&min, &max);
+ newcl2->setRange(min, max);
+ newcl2->setCurVal(cl->curVal());
+ newcl2->setDefault(cl->getDefault());
+ for(iCtrl ic = cl->begin(); ic != cl->end(); ++ic)
+ {
+ cv = ic->second;
+ newcl2->insert(std::pair<const int, CtrlVal>(cv.frame, cv));
+ }
+ }
+ }
+ if(ctl1)
+ _controller.erase(ctl1->id());
+ if(ctl2)
+ _controller.erase(ctl2->id());
+ if(newcl1)
+ //_controller.add(newcl1);
+ _controller.insert(std::pair<const int, CtrlList*>(newcl1->id(), newcl1));
+ if(newcl2)
+ _controller.insert(std::pair<const int, CtrlList*>(newcl2->id(), newcl2));
+ //_controller.add(newcl2);
+ */
+}
+
+//---------------------------------------------------------
+// setAutomationType
+//---------------------------------------------------------
+
+void AudioTrack::setAutomationType(AutomationType t)
+{
+ // Clear pressed and touched and rec event list.
+ clearRecAutomation(true);
+
+ // Now set the type.
+ _automationType = t;
+}
+
+//---------------------------------------------------------
+// processAutomationEvents
+//---------------------------------------------------------
+
+void AudioTrack::processAutomationEvents()
+{
+ if (_automationType != AUTO_TOUCH && _automationType != AUTO_WRITE)
+ return;
+
+ for (iCtrlList icl = _controller.begin(); icl != _controller.end(); ++icl)
+ {
+ CtrlList* cl = icl->second;
+ int id = cl->id();
+
+ // Remove old events from record region.
+ if (_automationType == AUTO_WRITE)
+ {
+ int start = audio->getStartRecordPos().frame();
+ int end = audio->getEndRecordPos().frame();
+ iCtrl s = cl->lower_bound(start);
+ iCtrl e = cl->lower_bound(end);
+
+ // Erase old events only if there were recorded events.
+ for(iCtrlRec icr = _recEvents.begin(); icr != _recEvents.end(); ++icr)
+ {
+ if(icr->id == id) // && icr->type == ARVT_VAL && icr->frame >= s->frame && icr->frame <= e->frame)
+ {
+ cl->erase(s, e);
+ break;
+ }
+ }
+ }
+ else
+ { // type AUTO_TOUCH
+ for (iCtrlRec icr = _recEvents.begin(); icr != _recEvents.end(); ++icr)
+ {
+ // Don't bother looking for start, it's OK, just take the first one.
+ // Needed for mousewheel and paging etc.
+ //if (icr->id == id && icr->type == ARVT_START)
+ if (icr->id == id)
+ {
+ int start = icr->frame;
+
+ if(icr == _recEvents.end())
+ {
+ int end = audio->getEndRecordPos().frame();
+ iCtrl s = cl->lower_bound(start);
+ iCtrl e = cl->lower_bound(end);
+ cl->erase(s, e);
+ break;
+ }
+
+ iCtrlRec icrlast = icr;
+ ++icr;
+ for(; ; ++icr)
+ {
+ if(icr == _recEvents.end())
+ {
+ int end = icrlast->frame;
+ iCtrl s = cl->lower_bound(start);
+ iCtrl e = cl->lower_bound(end);
+ cl->erase(s, e);
+ break;
+ }
+
+ if(icr->id == id && icr->type == ARVT_STOP)
+ {
+ int end = icr->frame;
+ // Erase everything up to, not including, this stop event's frame.
+ // Because an event was already stored directly when slider released.
+ if(end > start)
+ --end;
+
+ iCtrl s = cl->lower_bound(start);
+ iCtrl e = cl->lower_bound(end);
+
+ cl->erase(s, e);
+
+ break;
+ }
+
+ if(icr->id == id)
+ icrlast = icr;
+ }
+ if (icr == _recEvents.end())
+ break;
+ }
+ }
+ }
+
+ // Extract all recorded events for controller "id"
+ // from CtrlRecList and put into cl.
+ for (iCtrlRec icr = _recEvents.begin(); icr != _recEvents.end(); ++icr)
+ {
+ if (icr->id == id && (icr->type == ARVT_VAL || icr->type == ARVT_START))
+ cl->add(icr->frame, icr->val);
+ }
+ }
+
+ // Done with the recorded automation event list. Clear it.
+ _recEvents.clear();
+
+ // Try muse without this, so that the user can remain in automation write mode
+ // after a stop.
+ /*
+ if (automationType() == AUTO_WRITE)
+ {
+ setAutomationType(AUTO_READ);
+ song->update(SC_AUTOMATION);
+ }
+ */
+
+}
+
+//---------------------------------------------------------
+// setControllerMode
+//---------------------------------------------------------
+
+void AudioTrack::setControllerMode(int ctlID, CtrlList::Mode m)
+ {
+ ciCtrlList cl = _controller.find(ctlID);
+ if(cl == _controller.end())
+ return;
+
+ cl->second->setMode(m);
+ }
+
+//---------------------------------------------------------
+// clearControllerEvents
+//---------------------------------------------------------
+
+void AudioTrack::clearControllerEvents(int id)
+{
+ ciCtrlList icl = _controller.find(id);
+ if(icl == _controller.end())
+ return;
+
+ CtrlList* cl = icl->second;
+ cl->clear();
+ return;
+}
+
+//---------------------------------------------------------
+// seekPrevACEvent
+//---------------------------------------------------------
+
+void AudioTrack::seekPrevACEvent(int id)
+{
+ ciCtrlList icl = _controller.find(id);
+ if(icl == _controller.end())
+ return;
+
+ CtrlList* cl = icl->second;
+ if(cl->empty())
+ return;
+
+ iCtrl s = cl->lower_bound(song->cPos().frame());
+ if(s != cl->begin())
+ --s;
+ song->setPos(Song::CPOS, Pos(s->second.frame, false), true, false, true);
+ return;
+}
+
+//---------------------------------------------------------
+// seekNextACEvent
+//---------------------------------------------------------
+
+void AudioTrack::seekNextACEvent(int id)
+{
+ ciCtrlList icl = _controller.find(id);
+ if(icl == _controller.end())
+ return;
+
+ CtrlList* cl = icl->second;
+ if(cl->empty())
+ return;
+
+ iCtrl s = cl->upper_bound(song->cPos().frame());
+ if(s == cl->end())
+ {
+ --s;
+ }
+
+ song->setPos(Song::CPOS, Pos(s->second.frame, false), true, false, true);
+ return;
+}
+
+//---------------------------------------------------------
+// eraseACEvent
+//---------------------------------------------------------
+
+void AudioTrack::eraseACEvent(int id, int frame)
+{
+ ciCtrlList icl = _controller.find(id);
+ if(icl == _controller.end())
+ return;
+
+ CtrlList* cl = icl->second;
+ if(cl->empty())
+ return;
+
+ iCtrl s = cl->find(frame);
+ if(s != cl->end())
+ cl->erase(s);
+ return;
+}
+
+//---------------------------------------------------------
+// eraseRangeACEvents
+//---------------------------------------------------------
+
+void AudioTrack::eraseRangeACEvents(int id, int frame1, int frame2)
+{
+ ciCtrlList icl = _controller.find(id);
+ if(icl == _controller.end())
+ return;
+
+ CtrlList* cl = icl->second;
+ if(cl->empty())
+ return;
+
+ iCtrl s = cl->lower_bound(frame1);
+ iCtrl e = cl->lower_bound(frame2);
+ cl->erase(s, e);
+ return;
+}
+
+//---------------------------------------------------------
+// addACEvent
+//---------------------------------------------------------
+
+void AudioTrack::addACEvent(int id, int frame, double val)
+{
+ ciCtrlList icl = _controller.find(id);
+ if(icl == _controller.end())
+ return;
+
+ CtrlList* cl = icl->second;
+
+ // Add will replace if found.
+ cl->add(frame, val);
+ return;
+}
+
+//---------------------------------------------------------
+// volume
+//---------------------------------------------------------
+
+double AudioTrack::volume() const
+ {
+ ciCtrlList cl = _controller.find(AC_VOLUME);
+ if (cl == _controller.end())
+ return 0.0;
+
+ if (automation &&
+ automationType() != AUTO_OFF && _volumeEnCtrl && _volumeEn2Ctrl )
+ return cl->second->value(song->cPos().frame());
+ else
+ return cl->second->curVal();
+ }
+
+//---------------------------------------------------------
+// setVolume
+//---------------------------------------------------------
+
+void AudioTrack::setVolume(double val)
+ {
+ iCtrlList cl = _controller.find(AC_VOLUME);
+ if (cl == _controller.end()) {
+ printf("no volume controller %s %zd\n",
+ name().latin1(), _controller.size());
+ return;
+ }
+ cl->second->setCurVal(val);
+ }
+
+//---------------------------------------------------------
+// pan
+//---------------------------------------------------------
+
+double AudioTrack::pan() const
+ {
+ ciCtrlList cl = _controller.find(AC_PAN);
+ if (cl == _controller.end())
+ return 0.0;
+
+ if (automation &&
+ automationType() != AUTO_OFF && _panEnCtrl && _panEn2Ctrl )
+ return cl->second->value(song->cPos().frame());
+ else
+ return cl->second->curVal();
+ }
+
+//---------------------------------------------------------
+// setPan
+//---------------------------------------------------------
+
+void AudioTrack::setPan(double val)
+ {
+ iCtrlList cl = _controller.find(AC_PAN);
+ if (cl == _controller.end()) {
+ printf("no pan controller\n");
+ return;
+ }
+ cl->second->setCurVal(val);
+ }
+
+//---------------------------------------------------------
+// pluginCtrlVal
+//---------------------------------------------------------
+
+double AudioTrack::pluginCtrlVal(int ctlID) const
+ {
+ ciCtrlList cl = _controller.find(ctlID);
+ if (cl == _controller.end())
+ return 0.0;
+
+ if (automation && (automationType() != AUTO_OFF))
+ return cl->second->value(song->cPos().frame());
+ else
+ return cl->second->curVal();
+ }
+
+//---------------------------------------------------------
+// setPluginCtrlVal
+//---------------------------------------------------------
+
+void AudioTrack::setPluginCtrlVal(int param, double val)
+{
+ iCtrlList cl = _controller.find(param);
+ if (cl == _controller.end())
+ return;
+
+ cl->second->setCurVal(val);
+}
+
+void AudioTrack::recordAutomation(int n, double v)
+ {
+ if(!automation)
+ return;
+ if(audio->isPlaying())
+ _recEvents.push_back(CtrlRecVal(song->cPos().frame(), n, v));
+ else
+ {
+ if(automationType() == AUTO_WRITE)
+ _recEvents.push_back(CtrlRecVal(song->cPos().frame(), n, v));
+ else
+ if(automationType() == AUTO_TOUCH)
+ // In touch mode and not playing. Send directly to controller list.
+ {
+ iCtrlList cl = _controller.find(n);
+ if (cl == _controller.end())
+ return;
+ // Add will replace if found.
+ cl->second->add(song->cPos().frame(), v);
+ }
+ }
+ }
+
+void AudioTrack::startAutoRecord(int n, double v)
+ {
+ if(!automation)
+ return;
+ if(audio->isPlaying())
+ {
+ if(automationType() == AUTO_TOUCH)
+ _recEvents.push_back(CtrlRecVal(song->cPos().frame(), n, v, ARVT_START));
+ else
+ if(automationType() == AUTO_WRITE)
+ _recEvents.push_back(CtrlRecVal(song->cPos().frame(), n, v));
+ }
+ else
+ {
+ if(automationType() == AUTO_TOUCH)
+ // In touch mode and not playing. Send directly to controller list.
+ {
+ iCtrlList cl = _controller.find(n);
+ if (cl == _controller.end())
+ return;
+ // Add will replace if found.
+ cl->second->add(song->cPos().frame(), v);
+ }
+ else
+ if(automationType() == AUTO_WRITE)
+ _recEvents.push_back(CtrlRecVal(song->cPos().frame(), n, v));
+ }
+ }
+
+void AudioTrack::stopAutoRecord(int n, double v)
+ {
+ if(!automation)
+ return;
+ if(audio->isPlaying())
+ {
+ if(automationType() == AUTO_TOUCH)
+ {
+ audio->msgAddACEvent(this, n, song->cPos().frame(), v);
+ _recEvents.push_back(CtrlRecVal(song->cPos().frame(), n, v, ARVT_STOP));
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// AudioTrack::writeProperties
+//---------------------------------------------------------
+
+void AudioTrack::writeProperties(int level, Xml& xml) const
+ {
+ Track::writeProperties(level, xml);
+ xml.intTag(level, "prefader", prefader());
+ xml.intTag(level, "sendMetronome", sendMetronome());
+ xml.intTag(level, "automation", int(automationType()));
+ if (hasAuxSend()) {
+ int naux = song->auxs()->size();
+ for (int idx = 0; idx < naux; ++idx) {
+ QString s("<auxSend idx=%1>%2</auxSend>\n");
+ xml.nput(level, s.arg(idx).arg(_auxSend[idx]));
+ }
+ }
+ for (ciPluginI ip = _efxPipe->begin(); ip != _efxPipe->end(); ++ip) {
+ if (*ip)
+ (*ip)->writeConfiguration(level, xml);
+ }
+ for (ciCtrlList icl = _controller.begin(); icl != _controller.end(); ++icl) {
+ const CtrlList* cl = icl->second;
+ QString s("controller id=\"%1\" cur=\"%2\"");
+ xml.tag(level++, s.arg(cl->id()).arg(cl->curVal()));
+ int i = 0;
+ for (ciCtrl ic = cl->begin(); ic != cl->end(); ++ic) {
+ QString s("%1 %2, ");
+ xml.nput(level, s.arg(ic->second.frame).arg(ic->second.val));
+ ++i;
+ if (i >= 4) {
+ xml.put(level, "");
+ i = 0;
+ }
+ }
+ if (i)
+ xml.put(level, "");
+ xml.etag(level--, "controller");
+ }
+ }
+
+//---------------------------------------------------------
+// readAuxSend
+//---------------------------------------------------------
+
+void AudioTrack::readAuxSend(Xml& xml)
+ {
+ unsigned idx = 0;
+ double val;
+ for (;;) {
+ Xml::Token token = xml.parse();
+ const QString& tag = xml.s1();
+ switch (token) {
+ case Xml::Error:
+ case Xml::End:
+ return;
+ case Xml::Attribut:
+ if (tag == "idx")
+ idx = xml.s2().toInt();
+ break;
+ case Xml::Text:
+ val = tag.toDouble();
+ break;
+ case Xml::TagEnd:
+ if (xml.s1() == "auxSend") {
+ if (_auxSend.size() < idx+1)
+ _auxSend.push_back(val);
+ else
+ _auxSend[idx] = val;
+ return;
+ }
+ default:
+ break;
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// AudioTrack::readProperties
+//---------------------------------------------------------
+
+bool AudioTrack::readProperties(Xml& xml, const QString& tag)
+ {
+ if (tag == "plugin")
+ {
+ int rackpos;
+ for(rackpos = 0; rackpos < PipelineDepth; ++rackpos)
+ {
+ if(!(*_efxPipe)[rackpos])
+ break;
+ }
+ if(rackpos < PipelineDepth)
+ {
+ PluginI* pi = new PluginI();
+ pi->setTrack(this);
+ pi->setID(rackpos);
+ if(pi->readConfiguration(xml, false))
+ delete pi;
+ else
+ (*_efxPipe)[rackpos] = pi;
+ }
+ else
+ printf("can't load plugin - plugin rack is already full\n");
+ }
+ else if (tag == "auxSend")
+ readAuxSend(xml);
+ else if (tag == "prefader")
+ _prefader = xml.parseInt();
+ else if (tag == "sendMetronome")
+ _sendMetronome = xml.parseInt();
+ else if (tag == "automation")
+ setAutomationType(AutomationType(xml.parseInt()));
+ // Removed by T356
+ // "recfile" tag not saved anymore
+ //else if (tag == "recfile")
+ // readRecfile(xml);
+ else if (tag == "controller") {
+ CtrlList* l = new CtrlList();
+ l->read(xml);
+
+ // Since (until now) muse wrote a 'zero' for plugin controller current value
+ // in the XML file, we can't use that value, now that plugin automation is added.
+ // We must take the value from the plugin control value.
+ // Otherwise we break all existing .med files with plugins, because the gui
+ // controls would all be set to zero.
+ // But we will allow for the (unintended, useless) possibility of a controller
+ // with no matching plugin control.
+ PluginI* p = 0;
+ bool ctlfound = false;
+ int m = l->id() & AC_PLUGIN_CTL_ID_MASK;
+ int n = (l->id() >> AC_PLUGIN_CTL_BASE_POW) - 1;
+ if(n >= 0 && n < PipelineDepth)
+ {
+ p = (*_efxPipe)[n];
+ if(p && m < p->parameters())
+ ctlfound = true;
+ }
+
+ iCtrlList icl = _controller.find(l->id());
+ if (icl == _controller.end())
+ _controller.add(l);
+ else {
+ CtrlList* d = icl->second;
+ for (iCtrl i = l->begin(); i != l->end(); ++i)
+ d->insert(std::pair<const int, CtrlVal> (i->first, i->second));
+
+ if(!ctlfound)
+ d->setCurVal(l->curVal());
+
+ d->setDefault(l->getDefault());
+ delete l;
+ l = d;
+ }
+
+ if(ctlfound)
+ {
+ l->setCurVal(p->param(m));
+ LADSPA_PortRangeHint range = p->range(m);
+ if(LADSPA_IS_HINT_TOGGLED(range.HintDescriptor))
+ l->setMode(CtrlList::DISCRETE);
+ else
+ l->setMode(CtrlList::INTERPOLATE);
+ }
+ }
+ else
+ return Track::readProperties(xml, tag);
+ return false;
+ }
+
+//---------------------------------------------------------
+// showPendingPluginNativeGuis
+// This is needed because OSC needs all tracks with plugins to be already
+// added to their track lists so it can find them and show their native guis.
+//---------------------------------------------------------
+
+void AudioTrack::showPendingPluginNativeGuis()
+{
+ for(int idx = 0; idx < PipelineDepth; ++idx)
+ {
+ PluginI* p = (*_efxPipe)[idx];
+ if(!p)
+ continue;
+
+ if(p->isShowNativeGuiPending())
+ p->showNativeGui(true);
+ }
+}
+
+//---------------------------------------------------------
+// mapRackPluginsToControllers
+//---------------------------------------------------------
+
+void AudioTrack::mapRackPluginsToControllers()
+{
+ // Iterate all possible plugin controller indexes...
+ for(int idx = PipelineDepth - 1; idx >= 0; idx--)
+ {
+ iCtrlList icl = _controller.lower_bound((idx + 1) * AC_PLUGIN_CTL_BASE);
+ if(icl == _controller.end() || ((icl->second->id() >> AC_PLUGIN_CTL_BASE_POW) - 1) != idx)
+ continue;
+
+ // We found some controllers with that index. Now iterate the plugin rack...
+ for(int i = idx; i >= 0; i--)
+ {
+ PluginI* p = (*_efxPipe)[i];
+ if(!p)
+ continue;
+
+ // We found a plugin at a rack position. If the rack position is not the same as the controller index...
+ if(i != idx)
+ {
+ (*_efxPipe)[i] = 0;
+ (*_efxPipe)[idx] = p;
+ }
+ p->setID(idx);
+
+ // It is now safe to update the controllers.
+ p->updateControllers();
+
+ break;
+ }
+ }
+
+ // No matter of the outcome of the above - rack position is not too critical -
+ // making sure that each control has a controller is important. Otherwise they
+ // are stuck at zero can't be adjusted.
+ // Muse med files created before the automation patches (before 0.9pre1) may have broken
+ // controller sections, so this will allow more tolerance of them.
+ for(int idx = 0; idx < PipelineDepth; idx++)
+ {
+ PluginI* p = (*_efxPipe)[idx];
+ if(!p)
+ continue;
+
+ if(p->id() != idx)
+ p->setID(idx);
+
+ int j = p->parameters();
+
+ for(int i = 0; i < j; i++)
+ {
+ int id = genACnum(idx, i);
+ CtrlList* l = 0;
+
+ ciCtrlList icl = _controller.find(id);
+ if(icl == _controller.end())
+ {
+ l = new CtrlList(id);
+ addController(l);
+ }
+ else
+ l = icl->second;
+
+ // Force all of these now, even though they may have already been set. With a pre-
+ // 0.9pre1 med file with broken controller sections they may not be set correct.
+ float min, max;
+ p->range(i, &min, &max);
+ CtrlValueType t = p->valueType();
+ l->setRange(min, max);
+ l->setName(QString(p->paramName(i)));
+ l->setValueType(t);
+ LADSPA_PortRangeHint rh = p->range(i);
+ if(LADSPA_IS_HINT_TOGGLED(rh.HintDescriptor))
+ l->setMode(CtrlList::DISCRETE);
+ else
+ l->setMode(CtrlList::INTERPOLATE);
+ l->setCurVal(p->param(i));
+ //l->setDefault(p->defaultValue(i));
+ }
+ }
+
+ // The loop is a safe way to delete while iterating 'non-linear' lists.
+ bool loop;
+ do
+ {
+ loop = false;
+ for(ciCtrlList icl = _controller.begin(); icl != _controller.end(); ++icl)
+ {
+ CtrlList* l = icl->second;
+ int id = l->id();
+ // Ignore volume, pan, mute etc.
+ if(id < AC_PLUGIN_CTL_BASE)
+ continue;
+ int param = id & AC_PLUGIN_CTL_ID_MASK;
+ int idx = (id >> AC_PLUGIN_CTL_BASE_POW) - 1;
+ PluginI* p = (*_efxPipe)[idx];
+ // If there's no plugin at that rack position, or the param is out of range of
+ // the number of controls in the plugin, then it's a stray controller. Delete it.
+ // Future: Leave room for possible bypass controller at AC_PLUGIN_CTL_ID_MASK -1.
+ //if(!p || (param >= p->parameters() && (param != AC_PLUGIN_CTL_ID_MASK -1)))
+ if(!p || (param >= p->parameters()))
+ {
+ _controller.erase(id);
+
+ loop = true;
+ break;
+ }
+ }
+ }
+ while (loop);
+
+
+ // Although this tested OK, and is the 'official' way to erase while iterating,
+ // I don't trust it. I'm weary of this method. The technique didn't work
+ // in Audio::msgRemoveTracks(), see comments there.
+ /*
+
+ // Now delete any stray controllers which don't belong to anything.
+ for(iCtrlList icl = _controller.begin(); icl != _controller.end(); )
+ {
+ CtrlList* l = icl->second;
+ int id = l->id();
+ // Ignore volume, pan, mute etc.
+ if(id < AC_PLUGIN_CTL_BASE)
+ {
+ ++icl;
+ continue;
+ }
+ int param = id & AC_PLUGIN_CTL_ID_MASK;
+ int idx = (id >> AC_PLUGIN_CTL_BASE_POW) - 1;
+ PluginI* p = (*_efxPipe)[idx];
+ // If there's no plugin at that rack position, or the param is out of range of
+ // the number of controls in the plugin, then it's a stray controller. Delete it.
+ // Future: Leave room for possible bypass controller at AC_PLUGIN_CTL_ID_MASK -1.
+ //if(!p || (param >= p->parameters() && (param != AC_PLUGIN_CTL_ID_MASK -1)))
+ if(!p || (param >= p->parameters()))
+ _controller.erase(icl++);
+ else
+ ++icl;
+ }
+ */
+}
+
+/*
+//---------------------------------------------------------
+// writeRouting
+//---------------------------------------------------------
+
+void AudioTrack::writeRouting(int level, Xml& xml) const
+{
+ QString n;
+ if (type() == Track::AUDIO_INPUT) {
+ ciJackRouteNameCache circ = jackRouteNameCache.find(this);
+ if(circ != jackRouteNameCache.end())
+ {
+ jackRouteNameMap rm = circ->second;
+ for(ciJackRouteNameMap cirm = rm.begin(); cirm != rm.end(); ++cirm)
+ {
+ n = cirm->second;
+ if(!n.isEmpty())
+ {
+ Route dst(name(), true, cirm->first);
+ xml.tag(level++, "Route");
+ xml.strTag(level, "srcNode", n);
+ xml.strTag(level, "dstNode", dst.name());
+ xml.etag(level--, "Route");
+ }
+ }
+ }
+ }
+ if(type() == Track::AUDIO_OUTPUT)
+ {
+ ciJackRouteNameCache circ = jackRouteNameCache.find(this);
+ if(circ != jackRouteNameCache.end())
+ {
+ jackRouteNameMap rm = circ->second;
+ for(ciJackRouteNameMap cirm = rm.begin(); cirm != rm.end(); ++cirm)
+ {
+ n = cirm->second;
+ if(!n.isEmpty())
+ {
+ Route src(name(), false, cirm->first);
+ xml.tag(level++, "Route");
+ xml.strTag(level, "srcNode", src.name());
+ xml.strTag(level, "dstNode", n);
+ xml.etag(level--, "Route");
+ }
+ }
+ }
+ }
+ else
+ {
+ const RouteList* rl = &_outRoutes;
+ for (ciRoute r = rl->begin(); r != rl->end(); ++r) {
+ if(!r->name().isEmpty())
+ {
+ xml.tag(level++, "Route");
+ xml.strTag(level, "srcNode", name());
+ xml.strTag(level, "dstNode", r->name());
+ xml.etag(level--, "Route");
+ }
+ }
+ }
+}
+*/
+
+//---------------------------------------------------------
+// AudioInput
+//---------------------------------------------------------
+
+AudioInput::AudioInput()
+ : AudioTrack(AUDIO_INPUT)
+ {
+ // set Default for Input Ports:
+ _mute = true;
+ //setVolume(1.0);
+ for (int i = 0; i < MAX_CHANNELS; ++i)
+ jackPorts[i] = 0;
+ //_channels = 0;
+ //setChannels(2);
+ }
+
+//AudioInput::AudioInput(const AudioInput& t)
+// : AudioTrack(t)
+AudioInput::AudioInput(const AudioInput& t, bool cloneParts)
+ : AudioTrack(t, cloneParts)
+ {
+ for (int i = 0; i < MAX_CHANNELS; ++i)
+ jackPorts[i] = t.jackPorts[i];
+ }
+
+//---------------------------------------------------------
+// ~AudioInput
+//---------------------------------------------------------
+
+AudioInput::~AudioInput()
+ {
+ if (!checkAudioDevice()) return;
+ for (int i = 0; i < _channels; ++i)
+ if(jackPorts[i])
+ audioDevice->unregisterPort(jackPorts[i]);
+ }
+
+//---------------------------------------------------------
+// write
+//---------------------------------------------------------
+
+void AudioInput::write(int level, Xml& xml) const
+ {
+ xml.tag(level++, "AudioInput");
+ AudioTrack::writeProperties(level, xml);
+ xml.etag(level, "AudioInput");
+ }
+
+//---------------------------------------------------------
+// read
+//---------------------------------------------------------
+
+void AudioInput::read(Xml& xml)
+ {
+ for (;;) {
+ Xml::Token token = xml.parse();
+ const QString& tag = xml.s1();
+ switch (token) {
+ case Xml::Error:
+ case Xml::End:
+ return;
+ case Xml::TagStart:
+ if (AudioTrack::readProperties(xml, tag))
+ xml.unknown("AudioInput");
+ break;
+ case Xml::Attribut:
+ break;
+ case Xml::TagEnd:
+ if (tag == "AudioInput") {
+ setName(name()); // allocate jack ports
+ mapRackPluginsToControllers();
+ return;
+ }
+ default:
+ break;
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// AudioOutput
+//---------------------------------------------------------
+
+AudioOutput::AudioOutput()
+ : AudioTrack(AUDIO_OUTPUT)
+ {
+ for (int i = 0; i < MAX_CHANNELS; ++i)
+ jackPorts[i] = 0;
+ //_channels = 0;
+ //setChannels(2);
+ }
+
+//AudioOutput::AudioOutput(const AudioOutput& t)
+// : AudioTrack(t)
+AudioOutput::AudioOutput(const AudioOutput& t, bool cloneParts)
+ : AudioTrack(t, cloneParts)
+ {
+ for (int i = 0; i < MAX_CHANNELS; ++i)
+ jackPorts[i] = t.jackPorts[i];
+ _nframes = t._nframes;
+ }
+
+//---------------------------------------------------------
+// ~AudioOutput
+//---------------------------------------------------------
+
+AudioOutput::~AudioOutput()
+ {
+ if (!checkAudioDevice()) return;
+ for (int i = 0; i < _channels; ++i)
+ if(jackPorts[i])
+ audioDevice->unregisterPort(jackPorts[i]);
+ }
+
+//---------------------------------------------------------
+// write
+//---------------------------------------------------------
+
+void AudioOutput::write(int level, Xml& xml) const
+ {
+ xml.tag(level++, "AudioOutput");
+ AudioTrack::writeProperties(level, xml);
+ xml.etag(level, "AudioOutput");
+ }
+
+//---------------------------------------------------------
+// read
+//---------------------------------------------------------
+
+void AudioOutput::read(Xml& xml)
+ {
+ for (;;) {
+ Xml::Token token = xml.parse();
+ const QString& tag = xml.s1();
+ switch (token) {
+ case Xml::Error:
+ case Xml::End:
+ return;
+ case Xml::TagStart:
+ if (AudioTrack::readProperties(xml, tag))
+ xml.unknown("AudioOutput");
+ break;
+ case Xml::Attribut:
+ break;
+ case Xml::TagEnd:
+ if (tag == "AudioOutput") {
+ setName(name()); // allocate jack ports
+ mapRackPluginsToControllers();
+ return;
+ }
+ default:
+ break;
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// write
+//---------------------------------------------------------
+
+void AudioGroup::write(int level, Xml& xml) const
+ {
+ xml.tag(level++, "AudioGroup");
+ AudioTrack::writeProperties(level, xml);
+ xml.etag(level, "AudioGroup");
+ }
+
+//---------------------------------------------------------
+// read
+//---------------------------------------------------------
+
+void AudioGroup::read(Xml& xml)
+ {
+ for (;;) {
+ Xml::Token token = xml.parse();
+ const QString& tag = xml.s1();
+ switch (token) {
+ case Xml::Error:
+ case Xml::End:
+ return;
+ case Xml::TagStart:
+ if (AudioTrack::readProperties(xml, tag))
+ xml.unknown("AudioGroup");
+ break;
+ case Xml::Attribut:
+ break;
+ case Xml::TagEnd:
+ if (tag == "AudioGroup")
+ {
+ mapRackPluginsToControllers();
+ return;
+ }
+ default:
+ break;
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// write
+//---------------------------------------------------------
+
+void AudioAux::write(int level, Xml& xml) const
+ {
+ xml.tag(level++, "AudioAux");
+ AudioTrack::writeProperties(level, xml);
+ xml.etag(level, "AudioAux");
+ }
+
+//---------------------------------------------------------
+// AudioAux
+//---------------------------------------------------------
+
+AudioAux::AudioAux()
+ : AudioTrack(AUDIO_AUX)
+{
+ //_channels = 0;
+ //setChannels(2);
+ // Changed by Tim. p3.3.15
+ //for (int i = 0; i < MAX_CHANNELS; ++i)
+ // buffer[i] = (i < channels()) ? new float[segmentSize] : 0;
+ for(int i = 0; i < MAX_CHANNELS; ++i)
+ {
+ if(i < channels())
+ posix_memalign((void**)(buffer + i), 16, sizeof(float) * segmentSize);
+ else
+ buffer[i] = 0;
+ }
+}
+
+//---------------------------------------------------------
+// AudioAux
+//---------------------------------------------------------
+
+AudioAux::~AudioAux()
+ {
+ // Changed by Tim. p3.3.15
+ //for (int i = 0; i < channels(); ++i)
+ // delete[] buffer[i];
+ for (int i = 0; i < MAX_CHANNELS; ++i) {
+ if (buffer[i])
+ free(buffer[i]);
+ }
+ }
+
+//---------------------------------------------------------
+// read
+//---------------------------------------------------------
+
+void AudioAux::read(Xml& xml)
+ {
+ for (;;) {
+ Xml::Token token = xml.parse();
+ const QString& tag = xml.s1();
+ switch (token) {
+ case Xml::Error:
+ case Xml::End:
+ return;
+ case Xml::TagStart:
+ if (AudioTrack::readProperties(xml, tag))
+ xml.unknown("AudioAux");
+ break;
+ case Xml::Attribut:
+ break;
+ case Xml::TagEnd:
+ if (tag == "AudioAux")
+ {
+ mapRackPluginsToControllers();
+ return;
+ }
+ default:
+ break;
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// getData
+//---------------------------------------------------------
+
+bool AudioAux::getData(unsigned /*pos*/, int ch, unsigned /*samples*/, float** data)
+ {
+ for (int i = 0; i < ch; ++i)
+ data[i] = buffer[i % channels()];
+ return true;
+ }
+
+//---------------------------------------------------------
+// setChannels
+//---------------------------------------------------------
+
+void AudioAux::setChannels(int n)
+{
+ if(n > channels())
+ {
+ // Changed by Tim. p3.3.15
+ //for (int i = channels(); i < n; ++i)
+ // buffer[i] = new float[segmentSize];
+ for(int i = channels(); i < n; ++i)
+ posix_memalign((void**)(buffer + i), 16, sizeof(float) * segmentSize);
+ }
+ else if(n < channels())
+ {
+ // Changed by Tim. p3.3.15
+ //for (int i = n; i < channels(); ++i)
+ // delete[] buffer[i];
+ for(int i = n; i < channels(); ++i)
+ {
+ if(buffer[i])
+ free(buffer[i]);
+ }
+ }
+ AudioTrack::setChannels(n);
+}
+
+//---------------------------------------------------------
+// setRecordFlag1
+// gui part (executed in gui thread)
+//---------------------------------------------------------
+
+bool AudioTrack::setRecordFlag1(bool f)
+ {
+ if (f == _recordFlag)
+ return true;
+ if (f) {
+ if (_recFile == 0) {
+ //
+ // create soundfile for recording
+ //
+ char buffer[128];
+ QFile fil;
+ for (;;++recFileNumber) {
+ sprintf(buffer, "%s/rec%d.wav",
+ museProject.latin1(),
+ recFileNumber);
+ fil.setName(QString(buffer));
+ if (!fil.exists())
+ break;
+ }
+ _recFile = new SndFile(QString(buffer));
+ _recFile->setFormat(
+ SF_FORMAT_WAV | SF_FORMAT_FLOAT,
+ _channels, sampleRate);
+ }
+ if(_recFile->openWrite())
+ {
+ QMessageBox::critical(NULL, "MusE write error.", "Error creating target wave file\n"
+ "Check your configuration.");
+ return false;
+
+ }
+ if (debugMsg)
+ printf("AudioNode::setRecordFlag1: create internal file %s\n",
+ _recFile->path().latin1());
+ }
+ else {
+ if (_recFile) {
+ // this file has not been processed and can be
+ // deleted
+ // We should only arrive here if going from a 'record-armed' state
+ // to a non record-armed state. Because otherwise after actually
+ // recording, the _recFile pointer is made into an event,
+ // then _recFile is made zero before this function is called.
+ QString s = _recFile->path();
+ // Added by Tim. p3.3.8
+ delete _recFile;
+ setRecFile(0);
+
+ remove(s.latin1());
+ if(debugMsg)
+ printf("AudioNode::setRecordFlag1: remove file %s\n", s.latin1());
+ //_recFile = 0;
+ }
+ }
+ return true;
+ }
+double AudioTrack::auxSend(int idx) const
+ {
+ if (unsigned(idx) >= _auxSend.size()) {
+ printf("%s auxSend: bad index: %d >= %zd\n",
+ name().latin1(), idx, _auxSend.size());
+ return 0.0;
+ }
+ return _auxSend[idx];
+ }
+
+void AudioTrack::setAuxSend(int idx, double v)
+ {
+ if (unsigned(idx) >= _auxSend.size()) {
+ printf("%s setAuxSend: bad index: %d >= %zd\n",
+ name().latin1(), idx, _auxSend.size());
+ return;
+ }
+ _auxSend[idx] = v;
+ }
+
diff --git a/muse2/muse/cliplist/Makefile.am b/muse2/muse/cliplist/Makefile.am
new file mode 100644
index 00000000..7e28b9ef
--- /dev/null
+++ b/muse2/muse/cliplist/Makefile.am
@@ -0,0 +1,14 @@
+include $(top_srcdir)/common.am
+
+if PCH
+AM_CXXFLAGS += -include $(top_srcdir)/all.h
+endif
+
+noinst_LIBRARIES = libcliplist.a
+
+dist_libcliplist_a_SOURCES = \
+ cliplist.cpp \
+ cliplist.h
+
+nodist_libcliplist_a_SOURCES = \
+ moc_cliplist.cpp
diff --git a/muse2/muse/cliplist/Makefile.in b/muse2/muse/cliplist/Makefile.in
new file mode 100644
index 00000000..e1cad35c
--- /dev/null
+++ b/muse2/muse/cliplist/Makefile.in
@@ -0,0 +1,596 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
+ $(top_srcdir)/common.am
+@PCH_TRUE@am__append_1 = -include $(top_srcdir)/all.h
+subdir = muse/cliplist
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal-include.m4 \
+ $(top_srcdir)/m4/alsa.m4 $(top_srcdir)/m4/docbook.m4 \
+ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
+ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
+ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+LIBRARIES = $(noinst_LIBRARIES)
+ARFLAGS = cru
+libcliplist_a_AR = $(AR) $(ARFLAGS)
+libcliplist_a_LIBADD =
+dist_libcliplist_a_OBJECTS = cliplist.$(OBJEXT)
+nodist_libcliplist_a_OBJECTS = moc_cliplist.$(OBJEXT)
+libcliplist_a_OBJECTS = $(dist_libcliplist_a_OBJECTS) \
+ $(nodist_libcliplist_a_OBJECTS)
+DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
+depcomp = $(SHELL) $(top_srcdir)/depcomp
+am__depfiles_maybe = depfiles
+am__mv = mv -f
+CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
+LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
+CXXLD = $(CXX)
+CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \
+ $(LDFLAGS) -o $@
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
+ $(LDFLAGS) -o $@
+SOURCES = $(dist_libcliplist_a_SOURCES) \
+ $(nodist_libcliplist_a_SOURCES)
+DIST_SOURCES = $(dist_libcliplist_a_SOURCES)
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ALSA_CFLAGS = @ALSA_CFLAGS@
+ALSA_LIBS = @ALSA_LIBS@
+AMTAR = @AMTAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DOCBOOKSTYLE = @DOCBOOKSTYLE@
+DOCBOOKTARGETS = @DOCBOOKTARGETS@
+DOT = @DOT@
+DOTPATH = @DOTPATH@
+DOXYGEN = @DOXYGEN@
+DOXYGEN_TREEVIEW = @DOXYGEN_TREEVIEW@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+FLUIDSYNTHDIRS = @FLUIDSYNTHDIRS@
+FST_CFLAGS = @FST_CFLAGS@
+FST_LIBS = @FST_LIBS@
+Fluidsynth_CFLAGS = @Fluidsynth_CFLAGS@
+Fluidsynth_LIBS = @Fluidsynth_LIBS@
+GIVERTCAP = @GIVERTCAP@
+GREP = @GREP@
+HAVEDOT = @HAVEDOT@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JACK_CFLAGS = @JACK_CFLAGS@
+JACK_LIBS = @JACK_LIBS@
+JADE = @JADE@
+LASH_CFLAGS = @LASH_CFLAGS@
+LASH_LIBS = @LASH_LIBS@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LO_CFLAGS = @LO_CFLAGS@
+LO_LIBS = @LO_LIBS@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+MUSECXXFLAGS = @MUSECXXFLAGS@
+NM = @NM@
+NMEDIT = @NMEDIT@
+NSGMLS = @NSGMLS@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PCH = @PCH@
+PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+PYTHON = @PYTHON@
+PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
+PYTHON_INCLUDES = @PYTHON_INCLUDES@
+PYTHON_LIB = @PYTHON_LIB@
+PYTHON_PLATFORM = @PYTHON_PLATFORM@
+PYTHON_PREFIX = @PYTHON_PREFIX@
+PYTHON_VERSION = @PYTHON_VERSION@
+QTDIR_BIN = @QTDIR_BIN@
+QTDIR_INC = @QTDIR_INC@
+QT_LIBS = @QT_LIBS@
+RANLIB = @RANLIB@
+SAMPLERATE_CFLAGS = @SAMPLERATE_CFLAGS@
+SAMPLERATE_LIBS = @SAMPLERATE_LIBS@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SNDFILE_CFLAGS = @SNDFILE_CFLAGS@
+SNDFILE_LIBS = @SNDFILE_LIBS@
+STRIP = @STRIP@
+SUIDBUILD = @SUIDBUILD@
+SUIDINSTALL = @SUIDINSTALL@
+USE_SSE = @USE_SSE@
+UUID_CFLAGS = @UUID_CFLAGS@
+UUID_LIBS = @UUID_LIBS@
+VERSION = @VERSION@
+XMKMF = @XMKMF@
+X_CFLAGS = @X_CFLAGS@
+X_EXTRA_LIBS = @X_EXTRA_LIBS@
+X_LIBS = @X_LIBS@
+X_PRE_LIBS = @X_PRE_LIBS@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+have_docbook = @have_docbook@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+lt_ECHO = @lt_ECHO@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+pkgpyexecdir = @pkgpyexecdir@
+pkgpythondir = @pkgpythondir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+pyexecdir = @pyexecdir@
+pythondir = @pythondir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+synth_fluid = @synth_fluid@
+synth_fluidsynth = @synth_fluidsynth@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+AM_CXXFLAGS = $(MUSECXXFLAGS) -I.. -I$(top_srcdir)/synti \
+ -I$(top_srcdir)/muse/widgets -DQT_SHARED -DQT_THREAD_SUPPORT \
+ -DQT_PLUGIN $(QTDIR_INC) -DQT3_SUPPORT $(am__append_1)
+AM_CPPFLAGS =
+MOC = $(QTDIR_BIN)/moc
+#UIC = $(QTDIR_BIN)/uic3
+UIC = /usr/bin/uic3
+UIFILES = $(wildcard *.ui)
+MOCFILES = $(shell for h in $(filter %.h,$(SOURCES)); do \
+ if grep -q Q_OBJECT $$h; then \
+ echo $$h | sed "s/\(.*\)\.h/moc_\1.cpp/"; \
+ fi; \
+ done)
+
+BUILT_SOURCES = $(MOCFILES) $(UIFILES:%.ui=%.h)
+MOSTLYCLEANFILES = $(MOCFILES) $(UIFILES:%.ui=%.h)
+SUFFIXES = .ui .h.gch
+noinst_LIBRARIES = libcliplist.a
+dist_libcliplist_a_SOURCES = \
+ cliplist.cpp \
+ cliplist.h
+
+nodist_libcliplist_a_SOURCES = \
+ moc_cliplist.cpp
+
+all: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) all-am
+
+.SUFFIXES:
+.SUFFIXES: .ui .h.gch .cpp .lo .o .obj
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/common.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu muse/cliplist/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu muse/cliplist/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+clean-noinstLIBRARIES:
+ -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
+libcliplist.a: $(libcliplist_a_OBJECTS) $(libcliplist_a_DEPENDENCIES)
+ -rm -f libcliplist.a
+ $(libcliplist_a_AR) libcliplist.a $(libcliplist_a_OBJECTS) $(libcliplist_a_LIBADD)
+ $(RANLIB) libcliplist.a
+
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT)
+
+distclean-compile:
+ -rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cliplist.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/moc_cliplist.Po@am__quote@
+
+.cpp.o:
+@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $<
+
+.cpp.obj:
+@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+
+.cpp.lo:
+@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $<
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ mkid -fID $$unique
+tags: TAGS
+
+TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ set x; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: CTAGS
+CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) check-am
+all-am: Makefile $(LIBRARIES)
+installdirs:
+install: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+ -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES)
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+ -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
+clean: clean-am
+
+clean-am: clean-generic clean-libtool clean-noinstLIBRARIES \
+ mostlyclean-am
+
+distclean: distclean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+ distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+ mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: all check install install-am install-strip
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
+ clean-libtool clean-noinstLIBRARIES ctags distclean \
+ distclean-compile distclean-generic distclean-libtool \
+ distclean-tags distdir dvi dvi-am html html-am info info-am \
+ install install-am install-data install-data-am install-dvi \
+ install-dvi-am install-exec install-exec-am install-html \
+ install-html-am install-info install-info-am install-man \
+ install-pdf install-pdf-am install-ps install-ps-am \
+ install-strip installcheck installcheck-am installdirs \
+ maintainer-clean maintainer-clean-generic mostlyclean \
+ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
+ pdf pdf-am ps ps-am tags uninstall uninstall-am
+
+
+de:
+ @for base in $(MOCFILES); do echo -e "\t$${base}.cpp $${base}.h \\"; done
+
+nde:
+ @for base in $(MOCFILES); do echo -e "\tmoc_$${base}.cpp \\"; done
+
+.ui.o: %.h
+ $(UIC) -L $(top_srcdir)/muse/widgets -o $*.cpp -impl $*.h $*.ui
+ $(MOC) $*.h >> $*.cpp
+ $(CXXCOMPILE) -c $*.cpp -o $*.o
+ $(RM) $*.cpp moc_$*.cpp moc_$*.o
+
+.ui.lo: %.h
+ $(UIC) -L $(top_srcdir)/muse/widgets -o $*.cpp -impl $*.h $*.ui
+ $(MOC) $*.h >> $*.cpp
+ $(LTCXXCOMPILE) -c $*.cpp -o $*.lo
+ $(RM) $*.cpp moc_$*.cpp moc_$*.lo moc_$*.o
+
+moc_%.cpp: %.h
+ $(MOC) $< -o $@
+
+%.h: %.ui
+ $(UIC) -o $@ $<
+# $(UIC) -L $(top_srcdir)/muse/widgets -o $@ $<
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/muse2/muse/cliplist/cliplist.cpp b/muse2/muse/cliplist/cliplist.cpp
new file mode 100644
index 00000000..92002032
--- /dev/null
+++ b/muse2/muse/cliplist/cliplist.cpp
@@ -0,0 +1,260 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: cliplist.cpp,v 1.6.2.3 2008/08/18 00:15:24 terminator356 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"
+
+#include <q3listview.h>
+#include <qlayout.h>
+#include <q3groupbox.h>
+#include <qlabel.h>
+#include <qstyle.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, Qt::AlignRight);
+
+ QFontMetrics fm(editor->view->font());
+ int fw = style()->pixelMetric(QStyle::PM_DefaultFrameWidth,0, this); // ddskrjo 0
+ int w = 2 + fm.width('9') * 9 + fm.width(':') * 3 + fw * 4;
+ editor->view->setColumnAlignment(COL_POS, Qt::AlignRight);
+ editor->view->setColumnWidth(COL_POS, w);
+ editor->view->setColumnAlignment(COL_LEN, Qt::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((unsigned long)this);
+ e->accept();
+ }
+
+//---------------------------------------------------------
+// songChanged
+//---------------------------------------------------------
+
+void ClipListEdit::songChanged(int type)
+ {
+ // Is it simply a midi controller value adjustment? Forget it.
+ if(type == SC_MIDI_CONTROLLER)
+ return;
+
+ updateList();
+ }
+
+//---------------------------------------------------------
+// readStatus
+//---------------------------------------------------------
+
+void ClipListEdit::readStatus(Xml& xml)
+ {
+ 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;
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// writeStatus
+//---------------------------------------------------------
+
+void ClipListEdit::writeStatus(int level, Xml& xml) const
+ {
+ xml.tag(level++, "cliplist");
+ TopWin::writeStatus(level, xml);
+ xml.etag(level, "cliplist");
+ }
+
+//---------------------------------------------------------
+// startChanged
+//---------------------------------------------------------
+
+void ClipListEdit::startChanged(const Pos& /*pos*/)//prevent compiler warning: unsused parameter
+ {
+// editor->view->triggerUpdate();
+ }
+
+//---------------------------------------------------------
+// lenChanged
+//---------------------------------------------------------
+
+void ClipListEdit::lenChanged(const Pos& /*pos*/) //prevent compiler warning: unsused parameter
+ {
+// 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/muse2/muse/cliplist/cliplist.h b/muse2/muse/cliplist/cliplist.h
new file mode 100644
index 00000000..3f13d586
--- /dev/null
+++ b/muse2/muse/cliplist/cliplist.h
@@ -0,0 +1,51 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: cliplist.h,v 1.3.2.1 2005/12/11 21:29:23 spamatica Exp $
+//
+// (C) Copyright 2000 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __CLIPLIST_H__
+#define __CLIPLIST_H__
+
+#include "../cobject.h"
+#include "event.h"
+//Added by qt3to4:
+#include <QCloseEvent>
+
+class Q3ListView;
+class Q3ListViewItem;
+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(unsigned long);
+
+ public:
+ ClipListEdit();
+ virtual void readStatus(Xml&);
+ virtual void writeStatus(int, Xml&) const;
+ };
+
+#endif
+
diff --git a/muse2/muse/cobject.cpp b/muse2/muse/cobject.cpp
new file mode 100644
index 00000000..bf7d7e98
--- /dev/null
+++ b/muse2/muse/cobject.cpp
@@ -0,0 +1,62 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: cobject.cpp,v 1.4 2004/02/02 12:10:09 wschweer Exp $
+//
+// (C) Copyright 1999/2000 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include "cobject.h"
+#include "xml.h"
+
+//---------------------------------------------------------
+// readStatus
+//---------------------------------------------------------
+
+void TopWin::readStatus(Xml& xml)
+ {
+ for (;;) {
+ Xml::Token token = xml.parse();
+ if (token == Xml::Error || token == Xml::End)
+ break;
+ QString tag = xml.s1();
+ switch (token) {
+ case Xml::TagStart:
+ if (tag == "geometry") {
+ QRect r(readGeometry(xml, tag));
+ resize(r.size());
+ move(r.topLeft());
+ }
+ else
+ xml.unknown("TopWin");
+ break;
+ case Xml::TagEnd:
+ if (tag == "topwin")
+ return;
+ default:
+ break;
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// writeStatus
+//---------------------------------------------------------
+
+void TopWin::writeStatus(int level, Xml& xml) const
+ {
+ xml.tag(level++, "topwin");
+ xml.tag(level++, "geometry x=\"%d\" y=\"%d\" w=\"%d\" h=\"%d\"",
+ geometry().x(),
+ geometry().y(),
+ geometry().width(),
+ geometry().height());
+ xml.tag(level--, "/geometry");
+ xml.tag(level, "/topwin");
+ }
+
+TopWin::TopWin(QWidget* parent, const char* name,
+ Qt::WFlags f) : Q3MainWindow(parent, name, f)
+ {
+ }
+
diff --git a/muse2/muse/cobject.h b/muse2/muse/cobject.h
new file mode 100644
index 00000000..15c687fc
--- /dev/null
+++ b/muse2/muse/cobject.h
@@ -0,0 +1,66 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: cobject.h,v 1.3.2.1 2005/12/11 21:29:24 spamatica Exp $
+//
+// (C) Copyright 1999/2000 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __COBJECT_H__
+#define __COBJECT_H__
+
+#include "config.h"
+
+#include <q3mainwindow.h>
+#include <list>
+
+class Xml;
+
+//---------------------------------------------------------
+// TopWin
+//---------------------------------------------------------
+
+class TopWin : public Q3MainWindow
+ {
+ Q_OBJECT
+
+ public:
+ virtual void readStatus(Xml&);
+ virtual void writeStatus(int, Xml&) const;
+ TopWin(QWidget* parent=0, const char* name=0,
+ Qt::WFlags f = Qt::WType_TopLevel|Qt::WDestructiveClose);
+ };
+
+//---------------------------------------------------------
+// Toplevel
+//---------------------------------------------------------
+
+class Toplevel {
+ public:
+ enum ToplevelType { PIANO_ROLL, LISTE, DRUM, MASTER, WAVE,
+ LMASTER, CLIPLIST, MARKER
+#ifdef PATCHBAY
+ , M_PATCHBAY
+#endif /* PATCHBAY */
+ };
+ Toplevel(ToplevelType t, unsigned long obj, TopWin* cobj) {
+ _type = t;
+ _object = obj;
+ _cobject = cobj;
+ }
+ ToplevelType type() const { return _type; }
+ unsigned long object() const { return _object; }
+ TopWin* cobject() const { return _cobject; }
+
+ private:
+ ToplevelType _type;
+ unsigned long _object;
+ TopWin* _cobject;
+ };
+
+typedef std::list <Toplevel> ToplevelList;
+typedef ToplevelList::iterator iToplevel;
+typedef ToplevelList::const_iterator ciToplevel;
+
+#endif
+
diff --git a/muse2/muse/conf.cpp b/muse2/muse/conf.cpp
new file mode 100644
index 00000000..c44665e1
--- /dev/null
+++ b/muse2/muse/conf.cpp
@@ -0,0 +1,1499 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: conf.cpp,v 1.33.2.18 2009/12/01 03:52:40 terminator356 Exp $
+//
+// (C) Copyright 1999-2003 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include <sndfile.h>
+#include <errno.h>
+#include <q3listview.h>
+#include <qlayout.h>
+#include <qpushbutton.h>
+#include <qlineedit.h>
+#include <qcombobox.h>
+#include <qlabel.h>
+#include <q3buttongroup.h>
+#include <stdio.h>
+#include <q3popupmenu.h>
+#include <q3groupbox.h>
+#include <qradiobutton.h>
+#include <qspinbox.h>
+#include <qcheckbox.h>
+#include <qsignalmapper.h>
+#include <qtooltip.h>
+#include <qstyle.h>
+
+#include "app.h"
+#include "icons.h"
+#include "globals.h"
+#include "drumedit.h"
+#include "pianoroll.h"
+#include "master/masteredit.h"
+#include "transport.h"
+#include "bigtime.h"
+#include "arranger.h"
+#include "conf.h"
+#include "gconfig.h"
+#include "pitchedit.h"
+#include "midiport.h"
+#include "mididev.h"
+#include "driver/audiodev.h"
+#include "driver/jackmidi.h"
+#include "xml.h"
+#include "waveedit.h"
+#include "midi.h"
+#include "midisyncimpl.h"
+#include "midifilterimpl.h"
+#include "midictrl.h"
+#include "ctrlcombo.h"
+#include "genset.h"
+#include "midiitransform.h"
+#include "synth.h"
+#include "audio.h"
+#include "sync.h"
+#include "wave.h"
+#include "midiseq.h"
+#include "amixer.h"
+
+extern void writeMidiTransforms(int level, Xml& xml);
+extern void readMidiTransform(Xml&);
+
+extern void writeMidiInputTransforms(int level, Xml& xml);
+extern void readMidiInputTransform(Xml&);
+
+//---------------------------------------------------------
+// readGeometry
+//---------------------------------------------------------
+
+QRect readGeometry(Xml& xml, const QString& name)
+ {
+ QRect r(0, 0, 50, 50);
+ int val;
+
+ for (;;) {
+ Xml::Token token = xml.parse();
+ if (token == Xml::Error || token == Xml::End)
+ break;
+ QString tag = xml.s1();
+ switch (token) {
+ case Xml::TagStart:
+ xml.parse1();
+ break;
+ case Xml::Attribut:
+ val = xml.s2().toInt();
+ if (tag == "x")
+ r.setX(val);
+ else if (tag == "y")
+ r.setY(val);
+ else if (tag == "w")
+ r.setWidth(val);
+ else if (tag == "h")
+ r.setHeight(val);
+ break;
+ case Xml::TagEnd:
+ if (tag == name)
+ return r;
+ default:
+ break;
+ }
+ }
+ return r;
+ }
+
+
+//---------------------------------------------------------
+// readColor
+//---------------------------------------------------------
+
+QColor readColor(Xml& xml)
+ {
+ int val, r=0, g=0, b=0;
+
+ for (;;) {
+ Xml::Token token = xml.parse();
+ if (token != Xml::Attribut)
+ break;
+ QString tag = xml.s1();
+ switch (token) {
+ case Xml::Attribut:
+ val = xml.s2().toInt();
+ if (tag == "r")
+ r = val;
+ else if (tag == "g")
+ g = val;
+ else if (tag == "b")
+ b = val;
+ break;
+ default:
+ break;
+ }
+ }
+
+ return QColor(r, g, b);
+ }
+
+//---------------------------------------------------------
+// readController
+//---------------------------------------------------------
+
+static void readController(Xml& xml, int midiPort, int channel)
+ {
+ int id = 0;
+ int val = CTRL_VAL_UNKNOWN;
+
+ for (;;) {
+ Xml::Token token = xml.parse();
+ QString tag = xml.s1();
+ switch (token) {
+ case Xml::TagStart:
+ if (tag == "val")
+ val = xml.parseInt();
+ else
+ xml.unknown("controller");
+ break;
+ case Xml::Attribut:
+ if (tag == "id")
+ id = xml.s2().toInt();
+ break;
+ case Xml::TagEnd:
+ if (tag == "controller") {
+ MidiPort* port = &midiPorts[midiPort];
+ //port->addManagedController(channel, id);
+ val = port->limitValToInstrCtlRange(id, val);
+ // The value here will actually be sent to the device LATER, in MidiPort::setMidiDevice()
+ port->setHwCtrlState(channel, id, val);
+ return;
+ }
+ default:
+ return;
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// readPortChannel
+//---------------------------------------------------------
+
+static void readPortChannel(Xml& xml, int midiPort)
+ {
+ int idx = 0; //torbenh
+ for (;;) {
+ Xml::Token token = xml.parse();
+ if (token == Xml::Error || token == Xml::End)
+ break;
+ QString tag = xml.s1();
+ switch (token) {
+ case Xml::TagStart:
+ if (tag == "controller") {
+ readController(xml, midiPort, idx);
+ }
+ else
+ xml.unknown("MidiDevice");
+ break;
+ case Xml::Attribut:
+ if (tag == "idx")
+ idx = xml.s2().toInt();
+ break;
+ case Xml::TagEnd:
+ if (tag == "channel")
+ return;
+ default:
+ break;
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// readConfigMidiPort
+//---------------------------------------------------------
+
+static void readConfigMidiPort(Xml& xml)
+ {
+ int idx = 0;
+ QString device;
+ QString instrument;
+ int openFlags = 1;
+ bool thruFlag = false;
+ MidiSyncInfo tmpSi;
+ int type = MidiDevice::ALSA_MIDI;
+
+ for (;;) {
+ Xml::Token token = xml.parse();
+ if (token == Xml::Error || token == Xml::End)
+ break;
+ QString tag = xml.s1();
+ switch (token) {
+ case Xml::TagStart:
+ if (tag == "name")
+ device = xml.parse1();
+ else if (tag == "type")
+ type = xml.parseInt();
+ else if (tag == "record") { // old
+ bool f = xml.parseInt();
+ if (f)
+ openFlags |= 2;
+ }
+ else if (tag == "openFlags")
+ openFlags = xml.parseInt();
+ else if (tag == "midiSyncInfo")
+ tmpSi.read(xml);
+ else if (tag == "instrument") {
+ instrument = xml.parse1();
+ midiPorts[idx].setInstrument(
+ registerMidiInstrument(instrument)
+ );
+ }
+ else if (tag == "midithru")
+ thruFlag = xml.parseInt(); // obsolete
+ else if (tag == "channel") {
+ readPortChannel(xml, idx);
+ }
+ else
+ xml.unknown("MidiDevice");
+ break;
+ case Xml::Attribut:
+ if (tag == "idx") {
+ idx = xml.s2().toInt();
+ }
+ break;
+ case Xml::TagEnd:
+ if (tag == "midiport") {
+ //if (idx > MIDI_PORTS) {
+ if (idx < 0 || idx >= MIDI_PORTS) {
+ fprintf(stderr, "bad midi port %d (>%d)\n",
+ idx, MIDI_PORTS);
+ idx = 0;
+ }
+
+ MidiDevice* dev = midiDevices.find(device);
+
+ //if(debugMsg && !dev)
+ // fprintf(stderr, "readConfigMidiPort: device not found %s\n", device.latin1());
+
+ if(!dev && type == MidiDevice::JACK_MIDI)
+ {
+ if(debugMsg)
+ fprintf(stderr, "readConfigMidiPort: creating jack midi device %s\n", device.latin1());
+ dev = MidiJackDevice::createJackMidiDevice(device, openFlags);
+ }
+
+ if(debugMsg && !dev)
+ fprintf(stderr, "readConfigMidiPort: device not found %s\n", device.latin1());
+
+ MidiPort* mp = &midiPorts[idx];
+ mp->syncInfo().copyParams(tmpSi);
+ // p3.3.50 Indicate the port was found in the song file, even if no device is assigned to it.
+ mp->setFoundInSongFile(true);
+
+ if (dev) {
+ dev->setOpenFlags(openFlags);
+ midiSeq->msgSetMidiDevice(mp, dev);
+ }
+ return;
+ }
+ default:
+ break;
+ }
+ }
+ }
+
+/*
+//---------------------------------------------------------
+// readConfigMidiSyncInfo
+//---------------------------------------------------------
+
+static void readConfigMidiSyncInfo(Xml& xml)
+{
+ QString device;
+ int idOut = 127;
+ int idIn = 127;
+ bool sendMC = false;
+ bool sendMMC = false;
+ bool sendMTC = false;
+ bool recMC = false;
+ bool recMMC = false;
+ bool recMTC = false;
+
+ for (;;) {
+ Xml::Token token = xml.parse();
+ if (token == Xml::Error || token == Xml::End)
+ break;
+ QString tag = xml.s1();
+ switch (token) {
+ case Xml::TagStart:
+ if (tag == "device")
+ device = xml.parse1();
+ else if (tag == "idOut")
+ idOut = (xml.parseInt());
+ else if (tag == "idIn")
+ idIn = xml.parseInt();
+ else if (tag == "sendMC")
+ sendMC = xml.parseInt();
+ else if (tag == "sendMMC")
+ sendMMC = xml.parseInt();
+ else if (tag == "sendMTC")
+ sendMTC = xml.parseInt();
+ else if (tag == "recMC")
+ recMC = xml.parseInt();
+ else if (tag == "recMMC")
+ recMMC = xml.parseInt();
+ else if (tag == "recMTC")
+ recMTC = xml.parseInt();
+ else
+ xml.unknown("midiSyncInfo");
+ break;
+ case Xml::Attribut:
+ break;
+ case Xml::TagEnd:
+ if(tag == "midiSyncInfo")
+ {
+ MidiDevice* dev = midiDevices.find(device);
+ if(dev)
+ {
+ MidiSyncInfo& si = dev->syncInfo();
+ si.setIdIn(idIn);
+ si.setIdOut(idOut);
+
+ si.setMCIn(recMC);
+ si.setMMCIn(recMMC);
+ si.setMTCIn(recMTC);
+
+ si.setMCOut(sendMC);
+ si.setMMCOut(sendMMC);
+ si.setMTCOut(sendMTC);
+ }
+ else
+ fprintf(stderr, "Read configuration: Sync device: %s not found\n", device.latin1());
+
+ return;
+ }
+ default:
+ break;
+ }
+ }
+}
+*/
+
+//---------------------------------------------------------
+// loadConfigMetronom
+//---------------------------------------------------------
+
+static void loadConfigMetronom(Xml& xml)
+ {
+ for (;;) {
+ Xml::Token token = xml.parse();
+ if (token == Xml::Error || token == Xml::End)
+ break;
+ QString tag = xml.s1();
+ switch (token) {
+ case Xml::TagStart:
+ if (tag == "premeasures")
+ preMeasures = xml.parseInt();
+ else if (tag == "measurepitch")
+ measureClickNote = xml.parseInt();
+ else if (tag == "measurevelo")
+ measureClickVelo = xml.parseInt();
+ else if (tag == "beatpitch")
+ beatClickNote = xml.parseInt();
+ else if (tag == "beatvelo")
+ beatClickVelo = xml.parseInt();
+ else if (tag == "channel")
+ clickChan = xml.parseInt();
+ else if (tag == "port")
+ clickPort = xml.parseInt();
+ else if (tag == "precountEnable")
+ precountEnableFlag = xml.parseInt();
+ else if (tag == "fromMastertrack")
+ precountFromMastertrackFlag = xml.parseInt();
+ else if (tag == "signatureZ")
+ precountSigZ = xml.parseInt();
+ else if (tag == "signatureN")
+ precountSigN = xml.parseInt();
+ else if (tag == "prerecord")
+ precountPrerecord = xml.parseInt();
+ else if (tag == "preroll")
+ precountPreroll = xml.parseInt();
+ else if (tag == "midiClickEnable")
+ midiClickFlag = xml.parseInt();
+ else if (tag == "audioClickEnable")
+ audioClickFlag = xml.parseInt();
+ else if (tag == "audioClickVolume")
+ audioClickVolume = xml.parseFloat();
+ else
+ xml.unknown("Metronome");
+ break;
+ case Xml::TagEnd:
+ if (tag == "metronom")
+ return;
+ default:
+ break;
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// readSeqConfiguration
+//---------------------------------------------------------
+
+static void readSeqConfiguration(Xml& xml)
+ {
+ for (;;) {
+ Xml::Token token = xml.parse();
+ if (token == Xml::Error || token == Xml::End)
+ break;
+ const QString& tag = xml.s1();
+ switch (token) {
+ case Xml::TagStart:
+ if (tag == "metronom")
+ loadConfigMetronom(xml);
+ else if (tag == "midiport")
+ readConfigMidiPort(xml);
+ else if (tag == "rcStop")
+ rcStopNote = xml.parseInt();
+ else if (tag == "rcEnable")
+ rcEnable = xml.parseInt();
+ else if (tag == "rcRecord")
+ rcRecordNote = xml.parseInt();
+ else if (tag == "rcGotoLeft")
+ rcGotoLeftMarkNote = xml.parseInt();
+ else if (tag == "rcPlay")
+ rcPlayNote = xml.parseInt();
+ else
+ xml.unknown("Seq");
+ break;
+ case Xml::TagEnd:
+ if (tag == "sequencer") {
+ return;
+ }
+ default:
+ break;
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// readConfiguration
+//---------------------------------------------------------
+
+void readConfiguration(Xml& xml, bool readOnlySequencer)
+ {
+ int mixers = 0;
+ for (;;) {
+ Xml::Token token = xml.parse();
+ if (token == Xml::Error || token == Xml::End)
+ break;
+ QString tag = xml.s1();
+ switch (token) {
+ case Xml::TagStart:
+ /* the reading of configuration is split in two; read
+ "sequencer" and read ALL. The reason is that it is
+ possible to load a song without configuration. In
+ this case the <configuration> chapter in the song
+ file should be skipped. However the sub part
+ <sequencer> contains elements that are necessary
+ to preserve composition consistency. Mainly
+ midiport configuration and VOLUME.
+ */
+ if (tag == "sequencer") {
+ readSeqConfiguration(xml);
+ break;
+ }
+ else if (readOnlySequencer) {
+ xml.skip(tag);
+ break;
+ }
+
+ if (tag == "theme")
+ config.style = xml.parse1();
+ else if (tag == "useOldStyleStopShortCut")
+ config.useOldStyleStopShortCut = xml.parseInt();
+ else if (tag == "moveArmedCheckBox")
+ config.moveArmedCheckBox = xml.parseInt();
+ else if (tag == "externalWavEditor")
+ config.externalWavEditor = xml.parse1();
+ else if (tag == "font0")
+ config.fonts[0].fromString(xml.parse1());
+ else if (tag == "font1")
+ config.fonts[1].fromString(xml.parse1());
+ else if (tag == "font2")
+ config.fonts[2].fromString(xml.parse1());
+ else if (tag == "font3")
+ config.fonts[3].fromString(xml.parse1());
+ else if (tag == "font4")
+ config.fonts[4].fromString(xml.parse1());
+ else if (tag == "font5")
+ config.fonts[5].fromString(xml.parse1());
+ else if (tag == "font6")
+ config.fonts[6].fromString(xml.parse1());
+ else if (tag == "palette0")
+ config.palette[0] = readColor(xml);
+ else if (tag == "palette1")
+ config.palette[1] = readColor(xml);
+ else if (tag == "palette2")
+ config.palette[2] = readColor(xml);
+ else if (tag == "palette3")
+ config.palette[3] = readColor(xml);
+ else if (tag == "palette4")
+ config.palette[4] = readColor(xml);
+ else if (tag == "palette5")
+ config.palette[5] = readColor(xml);
+ else if (tag == "palette6")
+ config.palette[6] = readColor(xml);
+ else if (tag == "palette7")
+ config.palette[7] = readColor(xml);
+ else if (tag == "palette8")
+ config.palette[8] = readColor(xml);
+ else if (tag == "palette9")
+ config.palette[9] = readColor(xml);
+ else if (tag == "palette10")
+ config.palette[10] = readColor(xml);
+ else if (tag == "palette11")
+ config.palette[11] = readColor(xml);
+ else if (tag == "palette12")
+ config.palette[12] = readColor(xml);
+ else if (tag == "palette13")
+ config.palette[13] = readColor(xml);
+ else if (tag == "palette14")
+ config.palette[14] = readColor(xml);
+ else if (tag == "palette15")
+ config.palette[15] = readColor(xml);
+ else if (tag == "palette16")
+ config.palette[16] = readColor(xml);
+ else if (tag == "trackBg")
+ config.trackBg = readColor(xml);
+ else if (tag == "selectTrackBg")
+ config.selectTrackBg = readColor(xml);
+ else if (tag == "selectTrackFg")
+ config.selectTrackFg = readColor(xml);
+ else if (tag == "midiTrackBg")
+ config.midiTrackBg = readColor(xml);
+ else if (tag == "ctrlGraphFg")
+ config.ctrlGraphFg = readColor(xml);
+ else if (tag == "drumTrackBg")
+ config.drumTrackBg = readColor(xml);
+ else if (tag == "waveTrackBg")
+ config.waveTrackBg = readColor(xml);
+ else if (tag == "outputTrackBg")
+ config.outputTrackBg = readColor(xml);
+ else if (tag == "inputTrackBg")
+ config.inputTrackBg = readColor(xml);
+ else if (tag == "groupTrackBg")
+ config.groupTrackBg = readColor(xml);
+ else if (tag == "auxTrackBg")
+ config.auxTrackBg = readColor(xml);
+ else if (tag == "synthTrackBg")
+ config.synthTrackBg = readColor(xml);
+ else if (tag == "extendedMidi")
+ config.extendedMidi = xml.parseInt();
+ else if (tag == "midiExportDivision")
+ config.midiDivision = xml.parseInt();
+ else if (tag == "copyright")
+ config.copyright = xml.parse1();
+ else if (tag == "smfFormat")
+ config.smfFormat = xml.parseInt();
+ else if (tag == "exp2ByteTimeSigs")
+ config.exp2ByteTimeSigs = xml.parseInt();
+ else if (tag == "expOptimNoteOffs")
+ config.expOptimNoteOffs = xml.parseInt();
+ else if (tag == "importMidiSplitParts")
+ config.importMidiSplitParts = xml.parseInt();
+ else if (tag == "midiInputDevice")
+ midiInputPorts = xml.parseInt();
+ else if (tag == "midiInputChannel")
+ midiInputChannel = xml.parseInt();
+ else if (tag == "midiRecordType")
+ midiRecordType = xml.parseInt();
+ else if (tag == "midiThruType")
+ midiThruType = xml.parseInt();
+ else if (tag == "midiFilterCtrl1")
+ midiFilterCtrl1 = xml.parseInt();
+ else if (tag == "midiFilterCtrl2")
+ midiFilterCtrl2 = xml.parseInt();
+ else if (tag == "midiFilterCtrl3")
+ midiFilterCtrl3 = xml.parseInt();
+ else if (tag == "midiFilterCtrl4")
+ midiFilterCtrl4 = xml.parseInt();
+ else if (tag == "bigtimeVisible")
+ config.bigTimeVisible = xml.parseInt();
+ else if (tag == "transportVisible")
+ config.transportVisible = xml.parseInt();
+ else if (tag == "markerVisible")
+ config.markerVisible = xml.parseInt();
+
+ else if (tag == "mixerVisible")
+ // config.mixerVisible = xml.parseInt(); // Obsolete
+ xml.skip(tag);
+ else if (tag == "mixer1Visible")
+ config.mixer1Visible = xml.parseInt();
+ else if (tag == "mixer2Visible")
+ config.mixer2Visible = xml.parseInt();
+
+ else if (tag == "showSplashScreen")
+ config.showSplashScreen = xml.parseInt();
+ else if (tag == "canvasShowPartType")
+ config.canvasShowPartType = xml.parseInt();
+ else if (tag == "canvasShowPartEvent")
+ config.canvasShowPartEvent = xml.parseInt();
+ else if (tag == "canvasShowGrid")
+ config.canvasShowGrid = xml.parseInt();
+ else if (tag == "canvasBgPixmap")
+ config.canvasBgPixmap = xml.parse1();
+ else if (tag == "geometryMain")
+ config.geometryMain = readGeometry(xml, tag);
+ else if (tag == "geometryTransport")
+ config.geometryTransport = readGeometry(xml, tag);
+ else if (tag == "geometryBigTime")
+ config.geometryBigTime = readGeometry(xml, tag);
+ else if (tag == "geometryPianoroll")
+ config.geometryPianoroll = readGeometry(xml, tag);
+ else if (tag == "geometryDrumedit")
+ config.geometryDrumedit = readGeometry(xml, tag);
+
+ else if (tag == "geometryMixer")
+ // config.geometryMixer = readGeometry(xml, tag); // Obsolete
+ xml.skip(tag);
+ //else if (tag == "mixer1")
+ // config.mixer1.read(xml);
+ //else if (tag == "mixer2")
+ // config.mixer2.read(xml);
+ else if (tag == "Mixer")
+ {
+ if(mixers == 0)
+ config.mixer1.read(xml);
+ else
+ config.mixer2.read(xml);
+ ++mixers;
+ }
+
+ else if (tag == "bigtimeForegroundcolor")
+ config.bigTimeForegroundColor = readColor(xml);
+ else if (tag == "bigtimeBackgroundcolor")
+ config.bigTimeBackgroundColor = readColor(xml);
+ else if (tag == "transportHandleColor")
+ config.transportHandleColor = readColor(xml);
+ else if (tag == "txDeviceId")
+ //txDeviceId = xml.parseInt();
+ xml.parseInt();
+ else if (tag == "rxDeviceId")
+ //rxDeviceId = xml.parseInt();
+ xml.parseInt();
+ else if (tag == "txSyncPort")
+ //txSyncPort= xml.parseInt();
+ xml.parseInt();
+ else if (tag == "rxSyncPort")
+ //rxSyncPort= xml.parseInt();
+ xml.parseInt();
+ else if (tag == "mtctype")
+ mtcType= xml.parseInt();
+ else if (tag == "sendClockDelay")
+ syncSendFirstClockDelay = xml.parseUInt();
+ else if (tag == "extSync")
+ extSyncFlag.setValue(xml.parseInt());
+ else if (tag == "useJackTransport")
+ {
+ useJackTransport.setValue(xml.parseInt());
+ }
+ else if (tag == "jackTransportMaster")
+ {
+ jackTransportMaster = xml.parseInt();
+ if(audioDevice)
+ audioDevice->setMaster(jackTransportMaster);
+ }
+ else if (tag == "syncgentype") {
+ // for compatibility
+ //int syncGenType= xml.parseInt();
+ //genMTCSync = syncGenType == 1;
+ //genMCSync = syncGenType == 2;
+ xml.parseInt();
+ }
+ else if (tag == "genMTCSync")
+ //genMTCSync = xml.parseInt();
+ xml.parseInt();
+ else if (tag == "genMCSync")
+ //genMCSync = xml.parseInt();
+ xml.parseInt();
+ else if (tag == "genMMC")
+ //genMMC = xml.parseInt();
+ xml.parseInt();
+ else if (tag == "acceptMTC")
+ //acceptMTC = xml.parseInt();
+ xml.parseInt();
+ else if (tag == "acceptMMC")
+ //acceptMMC = xml.parseInt();
+ xml.parseInt();
+ else if (tag == "acceptMC")
+ //acceptMC = xml.parseInt();
+ xml.parseInt();
+ else if (tag == "mtcoffset") {
+ QString qs(xml.parse1());
+ const char* str = qs.latin1();
+ int h, m, s, f, sf;
+ sscanf(str, "%d:%d:%d:%d:%d", &h, &m, &s, &f, &sf);
+ mtcOffset = MTC(h, m, s, f, sf);
+ }
+ //else if (tag == "midiSyncInfo")
+ // readConfigMidiSyncInfo(xml);
+ else if (tag == "arranger") {
+ if (muse && muse->arranger)
+ muse->arranger->readStatus(xml);
+ else
+ xml.skip(tag);
+ }
+ else if (tag == "drumedit")
+ DrumEdit::readConfiguration(xml);
+ else if (tag == "pianoroll")
+ PianoRoll::readConfiguration(xml);
+ else if (tag == "masteredit")
+ MasterEdit::readConfiguration(xml);
+ else if (tag == "waveedit")
+ WaveEdit::readConfiguration(xml);
+ else if (tag == "shortcuts")
+ readShortCuts(xml);
+ else if (tag == "division")
+ config.division = xml.parseInt();
+ else if (tag == "guiDivision")
+ config.guiDivision = xml.parseInt();
+ else if (tag == "samplerate")
+ xml.parseInt();
+ else if (tag == "segmentsize")
+ xml.parseInt();
+ else if (tag == "segmentcount")
+ xml.parseInt();
+ else if (tag == "rtcTicks")
+ config.rtcTicks = xml.parseInt();
+ else if (tag == "minMeter")
+ config.minMeter = xml.parseInt();
+ else if (tag == "minSlider")
+ config.minSlider = xml.parseDouble();
+ else if (tag == "freewheelMode")
+ config.freewheelMode = xml.parseInt();
+ else if (tag == "denormalProtection")
+ config.useDenormalBias = xml.parseInt();
+ else if (tag == "didYouKnow")
+ config.showDidYouKnow = xml.parseInt();
+ else if (tag == "outputLimiter")
+ config.useOutputLimiter = xml.parseInt();
+ else if (tag == "vstInPlace")
+ config.vstInPlace = xml.parseInt();
+ else if (tag == "dummyAudioSampleRate")
+ config.dummyAudioSampleRate = xml.parseInt();
+ else if (tag == "dummyAudioBufSize")
+ config.dummyAudioBufSize = xml.parseInt();
+ else if (tag == "guiRefresh")
+ config.guiRefresh = xml.parseInt();
+ else if (tag == "helpBrowser")
+ {
+ QString tmp = xml.parse1();
+ if (tmp.isNull()) {tmp = "";}
+ config.helpBrowser = tmp;
+ }
+ else if (tag == "midiTransform")
+ readMidiTransform(xml);
+ else if (tag == "midiInputTransform")
+ readMidiInputTransform(xml);
+ else if (tag == "startMode")
+ config.startMode = xml.parseInt();
+ else if (tag == "startSong")
+ config.startSong = xml.parse1();
+ else
+ xml.unknown("configuration");
+ break;
+ case Xml::Text:
+ printf("text <%s>\n", xml.s1().latin1());
+ break;
+ case Xml::Attribut:
+ if (readOnlySequencer)
+ break;
+ if (tag == "version") {
+ int major = xml.s2().section('.', 0, 0).toInt();
+ int minor = xml.s2().section('.', 1, 1).toInt();
+ xml.setVersion(major, minor);
+ }
+ break;
+ case Xml::TagEnd:
+ if (tag == "configuration") {
+ return;
+ }
+ break;
+ case Xml::Proc:
+ default:
+ break;
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// 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 mozilla-firefox > /dev/null"))
+ {
+ config.helpBrowser = QString("mozilla-firefox");
+ }
+ else if (!system("which firefox > /dev/null"))
+ {
+ config.helpBrowser = QString("firefox");
+ }
+ else if (!system("which mozilla > /dev/null"))
+ {
+ config.helpBrowser = QString("mozilla");
+ }
+ else
+ {
+ config.helpBrowser = QString("");
+ // was not able to find a browser
+ }
+ // More preconfiguration
+ }
+
+//---------------------------------------------------------
+// readConfiguration
+//---------------------------------------------------------
+
+bool readConfiguration()
+ {
+ FILE* f = fopen(configName.latin1(), "r");
+ if (f == 0) {
+ if (debugMsg || debugMode)
+ fprintf(stderr, "NO Config File <%s> found\n", configName.latin1());
+
+ // if the config file does not exist launch probeMachineSpecificConfiguration
+ probeMachineSpecificConfiguration();
+ return true;
+ }
+ Xml xml(f);
+ bool skipmode = true;
+ for (;;) {
+ Xml::Token token = xml.parse();
+ const QString& tag = xml.s1();
+ switch (token) {
+ case Xml::Error:
+ case Xml::End:
+ fclose(f);
+ return true;
+ case Xml::TagStart:
+ if (skipmode && tag == "muse")
+ skipmode = false;
+ else if (skipmode)
+ break;
+ else if (tag == "configuration")
+ readConfiguration(xml,false);
+ else
+ xml.unknown("muse config");
+ break;
+ case Xml::Attribut:
+ if (tag == "version") {
+ int major = xml.s2().section('.', 0, 0).toInt();
+ int minor = xml.s2().section('.', 1, 1).toInt();
+ xml.setVersion(major, minor);
+ }
+ break;
+ case Xml::TagEnd:
+ if (!skipmode && tag == "muse") {
+ fclose(f);
+ return false;
+ }
+ default:
+ break;
+ }
+ }
+ fclose(f);
+ return true;
+ }
+
+//---------------------------------------------------------
+// writeSeqConfiguration
+//---------------------------------------------------------
+
+static void writeSeqConfiguration(int level, Xml& xml, bool writePortInfo)
+ {
+ xml.tag(level++, "sequencer");
+
+ xml.tag(level++, "metronom");
+ xml.intTag(level, "premeasures", preMeasures);
+ xml.intTag(level, "measurepitch", measureClickNote);
+ xml.intTag(level, "measurevelo", measureClickVelo);
+ xml.intTag(level, "beatpitch", beatClickNote);
+ xml.intTag(level, "beatvelo", beatClickVelo);
+ xml.intTag(level, "channel", clickChan);
+ xml.intTag(level, "port", clickPort);
+
+ xml.intTag(level, "precountEnable", precountEnableFlag);
+ xml.intTag(level, "fromMastertrack", precountFromMastertrackFlag);
+ xml.intTag(level, "signatureZ", precountSigZ);
+ xml.intTag(level, "signatureN", precountSigN);
+ xml.intTag(level, "prerecord", precountPrerecord);
+ xml.intTag(level, "preroll", precountPreroll);
+ xml.intTag(level, "midiClickEnable", midiClickFlag);
+ xml.intTag(level, "audioClickEnable", audioClickFlag);
+ xml.floatTag(level, "audioClickVolume", audioClickVolume);
+ xml.tag(level--, "/metronom");
+
+ xml.intTag(level, "rcEnable", rcEnable);
+ xml.intTag(level, "rcStop", rcStopNote);
+ xml.intTag(level, "rcRecord", rcRecordNote);
+ xml.intTag(level, "rcGotoLeft", rcGotoLeftMarkNote);
+ xml.intTag(level, "rcPlay", rcPlayNote);
+
+ if (writePortInfo) {
+ //
+ // write information about all midi ports, their assigned
+ // instruments and all managed midi controllers
+ //
+ for (int i = 0; i < MIDI_PORTS; ++i) {
+ bool used = false;
+ MidiTrackList* tl = song->midis();
+ for (iMidiTrack it = tl->begin(); it != tl->end(); ++it) {
+ MidiTrack* t = *it;
+ if (t->outPort() == i) {
+ used = true;
+ break;
+ }
+ }
+ MidiPort* mport = &midiPorts[i];
+ MidiDevice* dev = mport->device();
+ if (!used && !dev)
+ continue;
+ xml.tag(level++, "midiport idx=\"%d\"", i);
+ xml.strTag(level, "instrument", mport->instrument()->iname());
+ if (dev) {
+ xml.strTag(level, "name", dev->name());
+
+ // p3.3.38
+ //if(dynamic_cast<MidiJackDevice*>(dev))
+ if(dev->deviceType() != MidiDevice::ALSA_MIDI)
+ //xml.intTag(level, "type", MidiDevice::JACK_MIDI);
+ xml.intTag(level, "type", dev->deviceType());
+
+ // Changed by T356. "record" is old and by mistake written as rwFlags here.
+ // openFlags was read before, but never written here.
+ //xml.intTag(level, "record", dev->rwFlags() & 0x2 ? 1 : 0);
+ xml.intTag(level, "openFlags", dev->openFlags());
+ }
+ mport->syncInfo().write(level, xml);
+ // write out registered controller for all channels
+ MidiCtrlValListList* vll = mport->controller();
+ for (int k = 0; k < MIDI_CHANNELS; ++k) {
+ int min = k << 24;
+ int max = min + 0x100000;
+ xml.tag(level++, "channel idx=\"%d\"", k);
+ iMidiCtrlValList s = vll->lower_bound(min);
+ iMidiCtrlValList e = vll->lower_bound(max);
+ if (s != e) {
+ for (iMidiCtrlValList i = s; i != e; ++i) {
+ xml.tag(level++, "controller id=\"%d\"", i->second->num());
+ if (i->second->hwVal() != CTRL_VAL_UNKNOWN)
+ xml.intTag(level, "val", i->second->hwVal());
+ xml.etag(level--, "controller");
+ }
+ }
+ xml.etag(level--, "channel");
+ }
+ xml.etag(level--, "midiport");
+ }
+ }
+ xml.tag(level, "/sequencer");
+ }
+
+//---------------------------------------------------------
+// writeGlobalConfiguration
+//---------------------------------------------------------
+
+void MusE::writeGlobalConfiguration() const
+ {
+ FILE* f = fopen(configName.latin1(), "w");
+ if (f == 0) {
+ printf("save configuration to <%s> failed: %s\n",
+ configName.latin1(), strerror(errno));
+ return;
+ }
+ Xml xml(f);
+ xml.header();
+ xml.tag(0, "muse version=\"2.0\"");
+ writeGlobalConfiguration(1, xml);
+ xml.tag(1, "/muse");
+ fclose(f);
+ }
+
+void MusE::writeGlobalConfiguration(int level, Xml& xml) const
+ {
+ xml.tag(level++, "configuration");
+
+ xml.intTag(level, "division", config.division);
+ xml.intTag(level, "rtcTicks", config.rtcTicks);
+ xml.intTag(level, "minMeter", config.minMeter);
+ xml.doubleTag(level, "minSlider", config.minSlider);
+ xml.intTag(level, "freewheelMode", config.freewheelMode);
+ xml.intTag(level, "denormalProtection", config.useDenormalBias);
+ xml.intTag(level, "didYouKnow", config.showDidYouKnow);
+ xml.intTag(level, "outputLimiter", config.useOutputLimiter);
+ xml.intTag(level, "vstInPlace", config.vstInPlace);
+ xml.intTag(level, "dummyAudioBufSize", config.dummyAudioBufSize);
+ xml.intTag(level, "dummyAudioSampleRate", config.dummyAudioSampleRate);
+
+ xml.intTag(level, "guiRefresh", config.guiRefresh);
+ xml.strTag(level, "helpBrowser", config.helpBrowser);
+ xml.intTag(level, "extendedMidi", config.extendedMidi);
+ xml.intTag(level, "midiExportDivision", config.midiDivision);
+ xml.intTag(level, "guiDivision", config.guiDivision);
+ xml.strTag(level, "copyright", config.copyright);
+ xml.intTag(level, "smfFormat", config.smfFormat);
+ xml.intTag(level, "exp2ByteTimeSigs", config.exp2ByteTimeSigs);
+ xml.intTag(level, "expOptimNoteOffs", config.expOptimNoteOffs);
+ xml.intTag(level, "importMidiSplitParts", config.importMidiSplitParts);
+ xml.intTag(level, "startMode", config.startMode);
+ xml.strTag(level, "startSong", config.startSong);
+
+ xml.intTag(level, "midiInputDevice", midiInputPorts);
+ xml.intTag(level, "midiInputChannel", midiInputChannel);
+ xml.intTag(level, "midiRecordType", midiRecordType);
+ xml.intTag(level, "midiThruType", midiThruType);
+ xml.intTag(level, "midiFilterCtrl1", midiFilterCtrl1);
+ xml.intTag(level, "midiFilterCtrl2", midiFilterCtrl2);
+ xml.intTag(level, "midiFilterCtrl3", midiFilterCtrl3);
+ xml.intTag(level, "midiFilterCtrl4", midiFilterCtrl4);
+ // Removed by Tim. p3.3.6
+
+ //xml.intTag(level, "txDeviceId", txDeviceId);
+ //xml.intTag(level, "rxDeviceId", rxDeviceId);
+ xml.strTag(level, "theme", config.style);
+ xml.strTag(level, "externalWavEditor", config.externalWavEditor);
+ xml.intTag(level, "useOldStyleStopShortCut", config.useOldStyleStopShortCut);
+ xml.intTag(level, "moveArmedCheckBox", config.moveArmedCheckBox);
+
+ //for (int i = 0; i < 6; ++i) {
+ for (int i = 0; i < NUM_FONTS; ++i) {
+ char buffer[32];
+ sprintf(buffer, "font%d", i);
+ xml.strTag(level, buffer, config.fonts[i].toString());
+ }
+ for (int i = 0; i < 16; ++i) {
+ char buffer[32];
+ sprintf(buffer, "palette%d", i);
+ xml.colorTag(level, buffer, config.palette[i]);
+ }
+
+ xml.colorTag(level, "trackBg", config.trackBg);
+ xml.colorTag(level, "selectTrackBg", config.selectTrackBg);
+ xml.colorTag(level, "selectTrackFg", config.selectTrackFg);
+ xml.colorTag(level, "midiTrackBg", config.midiTrackBg);
+ xml.colorTag(level, "ctrlGraphFg", config.ctrlGraphFg);
+ xml.colorTag(level, "drumTrackBg", config.drumTrackBg);
+ xml.colorTag(level, "waveTrackBg", config.waveTrackBg);
+ xml.colorTag(level, "outputTrackBg", config.outputTrackBg);
+ xml.colorTag(level, "inputTrackBg", config.inputTrackBg);
+ xml.colorTag(level, "groupTrackBg", config.groupTrackBg);
+ xml.colorTag(level, "auxTrackBg", config.auxTrackBg);
+ xml.colorTag(level, "synthTrackBg", config.synthTrackBg);
+
+ // Changed by Tim. p3.3.6
+
+ //xml.intTag(level, "txSyncPort", txSyncPort);
+ /*
+ // To keep old muse versions happy...
+ bool mcsync = mmc = mtc = false;
+ for(int sp = 0; sp < MIDI_PORTS; ++sp)
+ {
+ MidiSyncTxPort* txPort = &midiSyncTxPorts[sp];
+ if(txPort->doMCSync() || txPort->doMMC() || txPort->doMTC())
+ {
+ if(txPort->doMCSync())
+ mcsync = true;
+ if(txPort->doMMC())
+ mmc = true;
+ if(txPort->doMTC())
+ mtc = true;
+ xml.intTag(level, "txSyncPort", sp);
+ break;
+ }
+ }
+ */
+
+ // Added by Tim. p3.3.6
+
+ //xml.tag(level++, "midiSyncInfo");
+ //for(iMidiDevice id = midiDevices.begin(); id != midiDevices.end(); ++id)
+ //{
+ // MidiDevice* md = *id;
+ // (*id)->syncInfo().write(level, xml, md);
+ //}
+ //xml.etag(level, "midiSyncInfo");
+
+ //xml.intTag(level, "rxSyncPort", rxSyncPort);
+ xml.intTag(level, "mtctype", mtcType);
+ xml.nput(level, "<mtcoffset>%02d:%02d:%02d:%02d:%02d</mtcoffset>\n",
+ mtcOffset.h(), mtcOffset.m(), mtcOffset.s(),
+ mtcOffset.f(), mtcOffset.sf());
+ //xml.uintTag(level, "sendClockDelay", syncSendFirstClockDelay);
+ //xml.intTag(level, "useJackTransport", useJackTransport);
+ //xml.intTag(level, "jackTransportMaster", jackTransportMaster);
+ extSyncFlag.save(level, xml);
+
+// xml.intTag(level, "genMTCSync", genMTCSync);
+// xml.intTag(level, "genMCSync", genMCSync);
+// xml.intTag(level, "genMMC", genMMC);
+// xml.intTag(level, "acceptMTC", acceptMTC);
+// xml.intTag(level, "acceptMMC", acceptMMC);
+// xml.intTag(level, "acceptMC", acceptMC);
+
+ xml.qrectTag(level, "geometryMain", config.geometryMain);
+ xml.qrectTag(level, "geometryTransport", config.geometryTransport);
+ xml.qrectTag(level, "geometryBigTime", config.geometryBigTime);
+ xml.qrectTag(level, "geometryPianoroll", config.geometryPianoroll);
+ xml.qrectTag(level, "geometryDrumedit", config.geometryDrumedit);
+ //xml.qrectTag(level, "geometryMixer", config.geometryMixer); // Obsolete
+
+ xml.intTag(level, "bigtimeVisible", config.bigTimeVisible);
+ xml.intTag(level, "transportVisible", config.transportVisible);
+
+ //xml.intTag(level, "mixerVisible", config.mixerVisible); // Obsolete
+ xml.intTag(level, "mixer1Visible", config.mixer1Visible);
+ xml.intTag(level, "mixer2Visible", config.mixer2Visible);
+ //config.mixer1.write(level, xml, "mixer1");
+ //config.mixer2.write(level, xml, "mixer2");
+ config.mixer1.write(level, xml);
+ config.mixer2.write(level, xml);
+
+ xml.intTag(level, "showSplashScreen", config.showSplashScreen);
+ xml.intTag(level, "canvasShowPartType", config.canvasShowPartType);
+ xml.intTag(level, "canvasShowPartEvent", config.canvasShowPartEvent);
+ xml.intTag(level, "canvasShowGrid", config.canvasShowGrid);
+ xml.strTag(level, "canvasBgPixmap", config.canvasBgPixmap);
+
+ xml.colorTag(level, "transportHandleColor", config.transportHandleColor);
+ xml.colorTag(level, "bigtimeForegroundcolor", config.bigTimeForegroundColor);
+ xml.colorTag(level, "bigtimeBackgroundcolor", config.bigTimeBackgroundColor);
+
+ writeSeqConfiguration(level, xml, false);
+
+ DrumEdit::writeConfiguration(level, xml);
+ PianoRoll::writeConfiguration(level, xml);
+ MasterEdit::writeConfiguration(level, xml);
+ WaveEdit::writeConfiguration(level, xml);
+
+ writeShortCuts(level, xml);
+ xml.etag(level, "configuration");
+ }
+
+//---------------------------------------------------------
+// writeConfiguration
+// write song specific configuration
+//---------------------------------------------------------
+
+void MusE::writeConfiguration(int level, Xml& xml) const
+ {
+ xml.tag(level++, "configuration");
+
+ xml.intTag(level, "midiInputDevice", midiInputPorts);
+ xml.intTag(level, "midiInputChannel", midiInputChannel);
+ xml.intTag(level, "midiRecordType", midiRecordType);
+ xml.intTag(level, "midiThruType", midiThruType);
+ xml.intTag(level, "midiFilterCtrl1", midiFilterCtrl1);
+ xml.intTag(level, "midiFilterCtrl2", midiFilterCtrl2);
+ xml.intTag(level, "midiFilterCtrl3", midiFilterCtrl3);
+ xml.intTag(level, "midiFilterCtrl4", midiFilterCtrl4);
+ // Removed by Tim. p3.3.6
+
+ //xml.intTag(level, "txDeviceId", txDeviceId);
+ //xml.intTag(level, "rxDeviceId", rxDeviceId);
+
+ // Changed by Tim. p3.3.6
+
+ //xml.intTag(level, "txSyncPort", txSyncPort);
+ /*
+ // To keep old muse versions happy...
+ bool mcsync = mmc = mtc = false;
+ for(int sp = 0; sp < MIDI_PORTS; ++sp)
+ {
+ MidiSyncTxPort* txPort = &midiSyncTxPorts[sp];
+ if(txPort->doMCSync() || txPort->doMMC() || txPort->doMTC())
+ {
+ if(txPort->doMCSync())
+ mcsync = true;
+ if(txPort->doMMC())
+ mmc = true;
+ if(txPort->doMTC())
+ mtc = true;
+ xml.intTag(level, "txSyncPort", sp);
+ break;
+ }
+ }
+ */
+
+ // Added by Tim. p3.3.6
+
+ //xml.tag(level++, "midiSyncInfo");
+ //for(iMidiDevice id = midiDevices.begin(); id != midiDevices.end(); ++id)
+ //{
+ // MidiDevice* md = *id;
+ // md->syncInfo().write(level, xml, md);
+ //}
+ //xml.etag(level, "midiSyncInfo");
+
+ //xml.intTag(level, "rxSyncPort", rxSyncPort);
+ xml.intTag(level, "mtctype", mtcType);
+ xml.nput(level, "<mtcoffset>%02d:%02d:%02d:%02d:%02d</mtcoffset>\n",
+ mtcOffset.h(), mtcOffset.m(), mtcOffset.s(),
+ mtcOffset.f(), mtcOffset.sf());
+ xml.uintTag(level, "sendClockDelay", syncSendFirstClockDelay);
+ xml.intTag(level, "useJackTransport", useJackTransport.value());
+ xml.intTag(level, "jackTransportMaster", jackTransportMaster);
+ extSyncFlag.save(level, xml);
+
+// xml.intTag(level, "genMTCSync", genMTCSync);
+// xml.intTag(level, "genMCSync", genMCSync);
+// xml.intTag(level, "genMMC", genMMC);
+// xml.intTag(level, "acceptMTC", acceptMTC);
+// xml.intTag(level, "acceptMMC", acceptMMC);
+// xml.intTag(level, "acceptMC", acceptMC);
+
+ xml.intTag(level, "bigtimeVisible", menuView->isItemChecked(bt_id));
+ xml.intTag(level, "transportVisible", menuView->isItemChecked(tr_id));
+ xml.intTag(level, "markerVisible", menuView->isItemChecked(mr_id));
+ //xml.intTag(level, "mixerVisible", menuView->isItemChecked(aid1)); // Obsolete
+
+ xml.geometryTag(level, "geometryMain", this);
+ if (transport)
+ xml.geometryTag(level, "geometryTransport", transport);
+ if (bigtime)
+ xml.geometryTag(level, "geometryBigTime", bigtime);
+
+ //if (audioMixer)
+ // xml.geometryTag(level, "geometryMixer", audioMixer); // Obsolete
+ xml.intTag(level, "mixer1Visible", menuView->isItemChecked(aid1a));
+ xml.intTag(level, "mixer2Visible", menuView->isItemChecked(aid1b));
+ if (mixer1)
+ //mixer1->write(level, xml, "mixer1");
+ mixer1->write(level, xml);
+ if (mixer2)
+ //mixer2->write(level, xml, "mixer2");
+ mixer2->write(level, xml);
+
+ arranger->writeStatus(level, xml);
+ writeSeqConfiguration(level, xml, true);
+
+ DrumEdit::writeConfiguration(level, xml);
+ PianoRoll::writeConfiguration(level, xml);
+ MasterEdit::writeConfiguration(level, xml);
+ WaveEdit::writeConfiguration(level, xml);
+
+ writeMidiTransforms(level, xml);
+ writeMidiInputTransforms(level, xml);
+ xml.etag(level, "configuration");
+ }
+
+//---------------------------------------------------------
+// configMidiSync
+//---------------------------------------------------------
+
+void MusE::configMidiSync()
+ {
+ if (!midiSyncConfig)
+ //midiSyncConfig = new MidiSyncConfig(this);
+ midiSyncConfig = new MidiSyncConfig(0, (char*) "midiSyncConfig");
+
+ if (midiSyncConfig->isVisible()) {
+ midiSyncConfig->raise();
+ midiSyncConfig->setActiveWindow();
+ }
+ else
+ midiSyncConfig->show();
+ }
+
+//---------------------------------------------------------
+// configMidiFile
+//---------------------------------------------------------
+
+void MusE::configMidiFile()
+ {
+ if (!midiFileConfig)
+ midiFileConfig = new MidiFileConfig();
+ midiFileConfig->updateValues();
+
+ if (midiFileConfig->isVisible()) {
+ midiFileConfig->raise();
+ midiFileConfig->setActiveWindow();
+ }
+ else
+ midiFileConfig->show();
+ }
+
+//---------------------------------------------------------
+// MidiFileConfig
+// config properties of exported midi files
+//---------------------------------------------------------
+
+MidiFileConfig::MidiFileConfig()
+ : ConfigMidiFileBase()
+ {
+ 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->setCurrentItem(divisionIdx);
+ formatCombo->setCurrentItem(config.smfFormat);
+ extendedFormat->setChecked(config.extendedMidi);
+ copyrightEdit->setText(config.copyright);
+ optNoteOffs->setChecked(config.expOptimNoteOffs);
+ twoByteTimeSigs->setChecked(config.exp2ByteTimeSigs);
+ splitPartsCheckBox->setChecked(config.importMidiSplitParts);
+ }
+
+//---------------------------------------------------------
+// okClicked
+//---------------------------------------------------------
+
+void MidiFileConfig::okClicked()
+ {
+ int divisionIdx = divisionCombo->currentItem();
+
+ int divisions[3] = { 96, 192, 384 };
+ if (divisionIdx >= 0 && divisionIdx < 3)
+ config.midiDivision = divisions[divisionIdx];
+ config.extendedMidi = extendedFormat->isChecked();
+ config.smfFormat = formatCombo->currentItem();
+ config.copyright = copyrightEdit->text();
+ config.expOptimNoteOffs = optNoteOffs->isChecked();
+ config.exp2ByteTimeSigs = twoByteTimeSigs->isChecked();
+ config.importMidiSplitParts = splitPartsCheckBox->isChecked();
+
+ 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();
+ globalSettingsConfig->setActiveWindow();
+ }
+ else
+ globalSettingsConfig->show();
+ }
+
+
+//---------------------------------------------------------
+// write
+//---------------------------------------------------------
+
+//void MixerConfig::write(Xml& xml, const char* name)
+void MixerConfig::write(int level, Xml& xml)
+//void MixerConfig::write(int level, Xml& xml, const char* name)
+ {
+ //xml.stag(QString(name));
+ //xml.tag(level++, name.latin1());
+ xml.tag(level++, "Mixer");
+ //xml.tag(level++, name);
+
+ xml.strTag(level, "name", name);
+
+ //xml.tag("geometry", geometry);
+ xml.qrectTag(level, "geometry", geometry);
+
+ xml.intTag(level, "showMidiTracks", showMidiTracks);
+ xml.intTag(level, "showDrumTracks", showDrumTracks);
+ xml.intTag(level, "showInputTracks", showInputTracks);
+ xml.intTag(level, "showOutputTracks", showOutputTracks);
+ xml.intTag(level, "showWaveTracks", showWaveTracks);
+ xml.intTag(level, "showGroupTracks", showGroupTracks);
+ xml.intTag(level, "showAuxTracks", showAuxTracks);
+ xml.intTag(level, "showSyntiTracks", showSyntiTracks);
+
+ //xml.etag(name);
+ //xml.etag(level, name.latin1());
+ xml.etag(level, "Mixer");
+ //xml.etag(level, name);
+ }
+
+//---------------------------------------------------------
+// read
+//---------------------------------------------------------
+
+//void MixerConfig::read(QDomNode node)
+void MixerConfig::read(Xml& xml)
+//void MixerConfig::read(Xml& xml, const QString& name)
+ {
+ 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 == "name")
+ name = xml.parse1();
+ else if (tag == "geometry")
+ geometry = readGeometry(xml, tag);
+ else if (tag == "showMidiTracks")
+ showMidiTracks = xml.parseInt();
+ else if (tag == "showDrumTracks")
+ showDrumTracks = xml.parseInt();
+ else if (tag == "showInputTracks")
+ showInputTracks = xml.parseInt();
+ else if (tag == "showOutputTracks")
+ showOutputTracks = xml.parseInt();
+ else if (tag == "showWaveTracks")
+ showWaveTracks = xml.parseInt();
+ else if (tag == "showGroupTracks")
+ showGroupTracks = xml.parseInt();
+ else if (tag == "showAuxTracks")
+ showAuxTracks = xml.parseInt();
+ else if (tag == "showSyntiTracks")
+ showSyntiTracks = xml.parseInt();
+ else
+ //xml.unknown(name.latin1());
+ xml.unknown("Mixer");
+ break;
+ case Xml::TagEnd:
+ //if (tag == name)
+ if (tag == "Mixer")
+ return;
+ default:
+ break;
+ }
+ }
+
+ }
+
diff --git a/muse2/muse/conf.h b/muse2/muse/conf.h
new file mode 100644
index 00000000..285f5e98
--- /dev/null
+++ b/muse2/muse/conf.h
@@ -0,0 +1,38 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: conf.h,v 1.4.2.1 2006/09/28 19:22:25 spamatica Exp $
+//
+// (C) Copyright 1999-2003 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __CONF_H__
+#define __CONF_H__
+
+#include <q3groupbox.h>
+#include "configmidifilebase.h"
+
+class QLineEdit;
+
+//---------------------------------------------------------
+// MidiFileConfig
+// config properties of exported midi files
+//---------------------------------------------------------
+
+class MidiFileConfig : public ConfigMidiFileBase {
+ Q_OBJECT
+
+ private slots:
+ void okClicked();
+ void cancelClicked();
+
+ public:
+ MidiFileConfig();
+ void updateValues();
+ };
+
+class Xml;
+extern bool readConfiguration();
+extern void readConfiguration(Xml&, bool readOnlySequencer);
+#endif
+
diff --git a/muse2/muse/confmport.cpp b/muse2/muse/confmport.cpp
new file mode 100644
index 00000000..bea2e714
--- /dev/null
+++ b/muse2/muse/confmport.cpp
@@ -0,0 +1,897 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: confmport.cpp,v 1.9.2.10 2009/12/15 03:39:58 terminator356 Exp $
+//
+// (C) Copyright 2000 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include <list>
+#include <termios.h>
+#include <iostream>
+
+#include <q3listview.h>
+#include <qlayout.h>
+#include <qpushbutton.h>
+#include <qlineedit.h>
+#include <qcombobox.h>
+#include <qlabel.h>
+#include <q3buttongroup.h>
+//Added by qt3to4:
+#include <QPixmap>
+#include <stdio.h>
+#include <q3popupmenu.h>
+#include <q3groupbox.h>
+#include <qradiobutton.h>
+#include <qspinbox.h>
+#include <qcheckbox.h>
+#include <qsignalmapper.h>
+#include <qtooltip.h>
+#include <q3filedialog.h>
+#include <qtoolbutton.h>
+#include <qmessagebox.h>
+#include <qpoint.h>
+
+#include "confmport.h"
+#include "app.h"
+#include "icons.h"
+#include "globals.h"
+#include "transport.h"
+#include "arranger.h"
+#include "midiport.h"
+#include "mididev.h"
+#include "xml.h"
+#include "midisyncimpl.h"
+#include "midifilterimpl.h"
+#include "ctrlcombo.h"
+#include "minstrument.h"
+#include "synth.h"
+#include "audio.h"
+#include "midiseq.h"
+#include "driver/alsamidi.h"
+#include "driver/jackmidi.h"
+#include "audiodev.h"
+#include "menutitleitem.h"
+
+extern std::vector<Synth*> synthis;
+
+enum { DEVCOL_NO = 0, DEVCOL_GUI, DEVCOL_REC, DEVCOL_PLAY, DEVCOL_INSTR, DEVCOL_NAME,
+ //DEVCOL_STATE };
+ DEVCOL_ROUTES, DEVCOL_STATE };
+
+//---------------------------------------------------------
+// mdevViewItemRenamed
+//---------------------------------------------------------
+
+void MPConfig::mdevViewItemRenamed(Q3ListViewItem* item, int col, const QString& s)
+{
+ //printf("MPConfig::mdevViewItemRenamed col:%d txt:%s\n", col, s.latin1());
+ if(item == 0)
+ return;
+ switch(col)
+ {
+ case DEVCOL_NAME:
+ {
+ QString id = item->text(DEVCOL_NO);
+ int no = atoi(id.latin1()) - 1;
+ if(no < 0 || no >= MIDI_PORTS)
+ return;
+
+ MidiPort* port = &midiPorts[no];
+ MidiDevice* dev = port->device();
+ // Only Jack midi devices.
+ if(!dev || dev->deviceType() != MidiDevice::JACK_MIDI)
+ return;
+ if(dev->name() == s)
+ return;
+
+ if(midiDevices.find(s))
+ {
+ QMessageBox::critical(this,
+ tr("MusE: bad device name"),
+ tr("please choose a unique device name"),
+ QMessageBox::Ok,
+ Qt::NoButton,
+ Qt::NoButton);
+ songChanged(-1);
+ return;
+ }
+ dev->setName(s);
+ song->update();
+ }
+ break;
+ default:
+ printf("MPConfig::mdevViewItemRenamed unknown column clicked col:%d txt:%s\n", col, s.latin1());
+ break;
+ }
+}
+
+//---------------------------------------------------------
+// rbClicked
+//---------------------------------------------------------
+
+void MPConfig::rbClicked(Q3ListViewItem* item, const QPoint& cpt, int col)
+ {
+ if (item == 0)
+ return;
+ QString id = item->text(DEVCOL_NO);
+ int no = atoi(id.latin1()) - 1;
+ if (no < 0 || no >= MIDI_PORTS)
+ return;
+
+ int n;
+ MidiPort* port = &midiPorts[no];
+ MidiDevice* dev = port->device();
+ int rwFlags = dev ? dev->rwFlags() : 0;
+ int openFlags = dev ? dev->openFlags() : 0;
+ Q3ListView* listView = item->listView();
+ //printf("MPConfig::rbClicked cpt x:%d y:%d\n", cpt.x(), cpt.y());
+ //printf("MPConfig::rbClicked new cpt x:%d y:%d\n", cpt.x(), cpt.y());
+ //printf("MPConfig::rbClicked new mapped cpt x:%d y:%d\n", cpt.x(), cpt.y());
+ QPoint ppt = listView->itemRect(item).bottomLeft();
+ //printf("MPConfig::rbClicked ppt x:%d y:%d\n", ppt.x(), ppt.y());
+ ppt += QPoint(listView->header()->sectionPos(col), listView->header()->height());
+ //printf("MPConfig::rbClicked new ppt x:%d y:%d\n", ppt.x(), ppt.y());
+ ppt = listView->mapToGlobal(ppt);
+ //printf("MPConfig::rbClicked new mapped ppt x:%d y:%d\n", ppt.x(), ppt.y());
+
+ switch (col) {
+ case DEVCOL_GUI:
+ if (dev == 0)
+ //break;
+ return;
+ if (port->hasGui())
+ {
+ port->instrument()->showGui(!port->guiVisible());
+ item->setPixmap(DEVCOL_GUI, port->guiVisible() ? *dotIcon : *dothIcon);
+ }
+ //break;
+ return;
+
+ case DEVCOL_REC:
+ if (dev == 0 || !(rwFlags & 2))
+ //break;
+ return;
+ openFlags ^= 0x2;
+ dev->setOpenFlags(openFlags);
+ midiSeq->msgSetMidiDevice(port, dev); // reopen device
+ item->setPixmap(DEVCOL_REC, openFlags & 2 ? *dotIcon : *dothIcon);
+ //break;
+ return;
+
+ case DEVCOL_PLAY:
+ if (dev == 0 || !(rwFlags & 1))
+ //break;
+ return;
+ openFlags ^= 0x1;
+ dev->setOpenFlags(openFlags);
+ midiSeq->msgSetMidiDevice(port, dev); // reopen device
+ item->setPixmap(DEVCOL_PLAY, openFlags & 1 ? *dotIcon : *dothIcon);
+ //break;
+ return;
+
+ case DEVCOL_ROUTES:
+ {
+ if(!checkAudioDevice())
+ return;
+
+ if(audioDevice->deviceType() != AudioDevice::JACK_AUDIO) // p3.3.52 Only if Jack is running.
+ return;
+
+ if(!dev)
+ return;
+
+ // Only Jack midi devices.
+ //MidiJackDevice* mjd = dynamic_cast<MidiJackDevice*>(dev);
+ //if(!mjd)
+ if(dev->deviceType() != MidiDevice::JACK_MIDI)
+ return;
+
+ if(!dev->rwFlags() & 3)
+ return;
+
+ RouteList* rl = (dev->rwFlags() & 1) ? dev->outRoutes() : dev->inRoutes();
+
+ Q3PopupMenu* pup = 0;
+ int gid = 0;
+ std::list<QString> sl;
+
+ pup = new Q3PopupMenu(this);
+ pup->setCheckable(true);
+
+ _redisplay:
+ pup->clear();
+ gid = 0;
+
+ // Jack input ports if device is writable, and jack output ports if device is readable.
+ sl = (dev->rwFlags() & 1) ? audioDevice->inputPorts(true, _showAliases) : audioDevice->outputPorts(true, _showAliases);
+
+ //for (int i = 0; i < channel; ++i)
+ //{
+ //char buffer[128];
+ //snprintf(buffer, 128, "%s %d", tr("Channel").latin1(), i+1);
+ //MenuTitleItem* titel = new MenuTitleItem(QString(buffer));
+ //pup->insertItem(titel);
+
+ pup->insertItem(tr("Show first aliases"), gid);
+ pup->setItemChecked(gid, (_showAliases == 0));
+ ++gid;
+ pup->insertItem(tr("Show second aliases"), gid);
+ pup->setItemChecked(gid, (_showAliases == 1));
+ ++gid;
+ pup->insertSeparator();
+
+ for(std::list<QString>::iterator ip = sl.begin(); ip != sl.end(); ++ip)
+ {
+ //int id = pup->insertItem(*ip, gid);
+ pup->insertItem(*ip, gid);
+ //Route dst(*ip, true, i);
+ Route rt(*ip, (dev->rwFlags() & 1), -1, Route::JACK_ROUTE);
+ for(iRoute ir = rl->begin(); ir != rl->end(); ++ir)
+ {
+ if (*ir == rt)
+ {
+ //pup->setItemChecked(id, true);
+ pup->setItemChecked(gid, true);
+ break;
+ }
+ }
+ ++gid;
+ }
+ //if (i+1 != channel)
+ // pup->insertSeparator();
+ //}
+
+ n = pup->exec(ppt, 0);
+ if (n != -1)
+ {
+ if(n == 0) // Show first aliases
+ {
+ ///delete pup;
+ if(_showAliases == 0)
+ _showAliases = -1;
+ else
+ _showAliases = 0;
+ goto _redisplay; // Go back
+ }
+ else
+ if(n == 1) // Show second aliases
+ {
+ ///delete pup;
+ if(_showAliases == 1)
+ _showAliases = -1;
+ else
+ _showAliases = 1;
+ goto _redisplay; // Go back
+ }
+
+ QString s(pup->text(n));
+
+ if(dev->rwFlags() & 1) // Writable
+ {
+ Route srcRoute(dev, -1);
+ Route dstRoute(s, true, -1, Route::JACK_ROUTE);
+
+ iRoute iir = rl->begin();
+ for(; iir != rl->end(); ++iir)
+ {
+ if(*iir == dstRoute)
+ break;
+ }
+ if(iir != rl->end())
+ // disconnect
+ audio->msgRemoveRoute(srcRoute, dstRoute);
+ else
+ // connect
+ audio->msgAddRoute(srcRoute, dstRoute);
+ }
+ else
+ if(dev->rwFlags() & 2) // Readable
+ {
+ Route srcRoute(s, false, -1, Route::JACK_ROUTE);
+ Route dstRoute(dev, -1);
+
+ iRoute iir = rl->begin();
+ for(; iir != rl->end(); ++iir)
+ {
+ if(*iir == srcRoute)
+ break;
+ }
+ if(iir != rl->end())
+ // disconnect
+ audio->msgRemoveRoute(srcRoute, dstRoute);
+ else
+ // connect
+ audio->msgAddRoute(srcRoute, dstRoute);
+ }
+
+ audio->msgUpdateSoloStates();
+ song->update(SC_ROUTE);
+
+ // p3.3.46
+ //delete pup;
+ // FIXME:
+ // Routes can't be re-read until the message sent from msgAddRoute1()
+ // has had time to be sent and actually affected the routes.
+ ///goto _redisplay; // Go back
+
+ }
+ delete pup;
+ //iR->setDown(false); // pup->exec() catches mouse release event
+
+ }
+ //break;
+ return;
+
+ case DEVCOL_NAME:
+ {
+ //printf("MPConfig::rbClicked DEVCOL_NAME\n");
+
+ // Did we click in the text area?
+ if((cpt.x() - ppt.x()) > buttondownIcon->width())
+ {
+ //printf("MPConfig::rbClicked starting item rename... enabled?:%d\n", item->renameEnabled(DEVCOL_NAME));
+ // Start the renaming of the cell...
+ if(item->renameEnabled(DEVCOL_NAME))
+ item->startRename(DEVCOL_NAME);
+
+ return;
+ }
+ else
+ // We clicked the 'down' button.
+ {
+ Q3PopupMenu* pup = new Q3PopupMenu(this);
+
+ pup->setCheckable(true);
+
+ pup->insertItem(tr("Create") + QT_TR_NOOP(" Jack") + tr(" input"), 0);
+ pup->insertItem(tr("Create") + QT_TR_NOOP(" Jack") + tr(" output"), 1);
+
+ typedef std::map<std::string, int > asmap;
+ typedef std::map<std::string, int >::iterator imap;
+
+ asmap mapALSA;
+ asmap mapJACK;
+ asmap mapSYNTH;
+
+ int aix = 2;
+ int jix = 0x10000000;
+ int six = 0x20000000;
+ for(iMidiDevice i = midiDevices.begin(); i != midiDevices.end(); ++i)
+ {
+ //devALSA = dynamic_cast<MidiAlsaDevice*>(*i);
+ //if(devALSA)
+ if((*i)->deviceType() == MidiDevice::ALSA_MIDI)
+ {
+ //mapALSA.insert( std::pair<std::string, int> (std::string(devALSA->name().lower().latin1()), ii) );
+ mapALSA.insert( std::pair<std::string, int> (std::string((*i)->name().latin1()), aix) );
+ ++aix;
+ }
+ else
+ if((*i)->deviceType() == MidiDevice::JACK_MIDI)
+ {
+ //devJACK = dynamic_cast<MidiJackDevice*>(*i);
+ //if(devJACK)
+ //mapJACK.insert( std::pair<std::string, int> (std::string(devJACK->name().lower().latin1()), ii) );
+ mapJACK.insert( std::pair<std::string, int> (std::string((*i)->name().latin1()), jix) );
+ ++jix;
+ }
+ else
+ if((*i)->deviceType() == MidiDevice::SYNTH_MIDI)
+ {
+ mapSYNTH.insert( std::pair<std::string, int> (std::string((*i)->name().latin1()), six) );
+ ++six;
+ }
+ else
+ printf("MPConfig::rbClicked unknown midi device: %s\n", (*i)->name().latin1());
+ }
+
+ //int sz = midiDevices.size();
+ if(!mapALSA.empty())
+ {
+ pup->insertSeparator();
+ // pup->insertItem(new MenuTitleItem(QT_TR_NOOP("ALSA:"))); ddskrjo
+
+ for(imap i = mapALSA.begin(); i != mapALSA.end(); ++i)
+ {
+ int idx = i->second;
+ //if(idx > sz) // Sanity check
+ // continue;
+ QString s(i->first.c_str());
+ MidiDevice* md = midiDevices.find(s, MidiDevice::ALSA_MIDI);
+ if(md)
+ {
+ //if(!dynamic_cast<MidiAlsaDevice*>(md))
+ if(md->deviceType() != MidiDevice::ALSA_MIDI)
+ continue;
+
+ //pup->insertItem(QT_TR_NOOP(md->name()), idx + 3);
+ pup->insertItem(QT_TR_NOOP(md->name()), idx);
+
+ //for(int k = 0; k < MIDI_PORTS; ++k)
+ //{
+ //MidiDevice* dev = midiPorts[k].device();
+ //if(dev && s == dev->name())
+ if(md == dev)
+ {
+ //pup->setItemEnabled(idx + 3, false);
+ //pup->setItemChecked(idx + 3, true);
+ pup->setItemChecked(idx, true);
+ //break;
+ }
+ //}
+ }
+ }
+ }
+
+ if(!mapJACK.empty())
+ {
+ pup->insertSeparator();
+ //pup->insertItem(new MenuTitleItem(QT_TR_NOOP("JACK:"))); ddskrjo
+
+ for(imap i = mapJACK.begin(); i != mapJACK.end(); ++i)
+ {
+ int idx = i->second;
+ //if(idx > sz)
+ // continue;
+ QString s(i->first.c_str());
+ MidiDevice* md = midiDevices.find(s, MidiDevice::JACK_MIDI);
+ if(md)
+ {
+ //if(!dynamic_cast<MidiJackDevice*>(md))
+ if(md->deviceType() != MidiDevice::JACK_MIDI)
+ continue;
+
+ //pup->insertItem(QT_TR_NOOP(md->name()), idx + 3);
+ pup->insertItem(QT_TR_NOOP(md->name()), idx);
+
+ //for(int k = 0; k < MIDI_PORTS; ++k)
+ //{
+ //MidiDevice* dev = midiPorts[k].device();
+ //if(dev && s == dev->name())
+ if(md == dev)
+ {
+ //pup->setItemEnabled(idx + 3, false);
+ //pup->setItemChecked(idx + 3, true);
+ pup->setItemChecked(idx, true);
+ //break;
+ }
+ //}
+ }
+ }
+ }
+
+ if(!mapSYNTH.empty())
+ {
+ pup->insertSeparator();
+ //pup->insertItem(new MenuTitleItem(QT_TR_NOOP("SYNTH:"))); ddskrjo
+
+ for(imap i = mapSYNTH.begin(); i != mapSYNTH.end(); ++i)
+ {
+ int idx = i->second;
+ //if(idx > sz)
+ // continue;
+ QString s(i->first.c_str());
+ MidiDevice* md = midiDevices.find(s, MidiDevice::SYNTH_MIDI);
+ if(md)
+ {
+ //if(!dynamic_cast<MidiJackDevice*>(md))
+ if(md->deviceType() != MidiDevice::SYNTH_MIDI)
+ continue;
+
+ //pup->insertItem(QT_TR_NOOP(md->name()), idx + 3);
+ pup->insertItem(QT_TR_NOOP(md->name()), idx);
+
+ //for(int k = 0; k < MIDI_PORTS; ++k)
+ //{
+ //MidiDevice* dev = midiPorts[k].device();
+ //if(dev && s == dev->name())
+ if(md == dev)
+ {
+ //pup->setItemEnabled(idx + 3, false);
+ //pup->setItemChecked(idx + 3, true);
+ pup->setItemChecked(idx, true);
+ //break;
+ }
+ //}
+ }
+ }
+ }
+
+ n = pup->exec(ppt, 0);
+ if(n == -1)
+ {
+ delete pup;
+ //break;
+ return;
+ }
+
+ //printf("MPConfig::rbClicked n:%d\n", n);
+
+ MidiDevice* sdev = 0;
+ if(n < 2)
+ {
+ delete pup;
+ if(n == 0)
+ sdev = MidiJackDevice::createJackMidiDevice(QString(), 2); // 2: Readable.
+ else
+ if(n == 1)
+ sdev = MidiJackDevice::createJackMidiDevice(QString(), 1); // 1:Writable.
+ }
+ else
+ {
+ int typ = MidiDevice::ALSA_MIDI;
+ if(n >= 0x10000000)
+ typ = MidiDevice::JACK_MIDI;
+ if(n >= 0x20000000)
+ typ = MidiDevice::SYNTH_MIDI;
+
+ sdev = midiDevices.find(pup->text(n), typ);
+ delete pup;
+ // Is it the current device? Reset it to <none>.
+ if(sdev == dev)
+ sdev = 0;
+ }
+
+ midiSeq->msgSetMidiDevice(port, sdev);
+ muse->changeConfig(true); // save configuration file
+ song->update();
+ }
+ }
+ //break;
+ return;
+
+ case DEVCOL_INSTR:
+ {
+ if (dev && dev->isSynti())
+ //break;
+ return;
+ if (instrPopup == 0)
+ instrPopup = new Q3PopupMenu(this);
+ instrPopup->clear();
+ for (iMidiInstrument i = midiInstruments.begin(); i
+ != midiInstruments.end(); ++i)
+ {
+ // By T356.
+ // Do not list synths. Although it is possible to assign a synth
+ // as an instrument to a non-synth device, we should not allow this.
+ // (One reason is that the 'show gui' column is then enabled, which
+ // makes no sense for a non-synth device).
+ SynthI* si = dynamic_cast<SynthI*>(*i);
+ if(!si)
+ instrPopup->insertItem((*i)->iname());
+ }
+ n = instrPopup->exec(ppt, 0);
+ if (n == -1)
+ //break;
+ return;
+ QString s = instrPopup->text(n);
+ item->setText(DEVCOL_INSTR, s);
+ for (iMidiInstrument i = midiInstruments.begin(); i
+ != midiInstruments.end(); ++i) {
+ if ((*i)->iname() == s) {
+ port->setInstrument(*i);
+ break;
+ }
+ }
+ song->update();
+ }
+ //break;
+ return;
+ }
+ //songChanged(-1);
+ }
+
+//---------------------------------------------------------
+// MPHeaderTip::maybeTip
+//---------------------------------------------------------
+
+void MPHeaderTip::maybeTip(const QPoint &pos)
+ {
+#if 0 // ddskrjo
+ Q3Header* w = (Q3Header*)parentWidget();
+ int section = w->sectionAt(pos.x());
+ if (section == -1)
+ return;
+ QRect r(w->sectionPos(section), 0, w->sectionSize(section),
+ w->height());
+ QString p;
+ switch (section) {
+ case DEVCOL_NO: p = Q3Header::tr("Port Number"); break;
+ case DEVCOL_GUI: p = Q3Header::tr("Enable gui"); break;
+ case DEVCOL_REC: p = Q3Header::tr("Enable reading"); break;
+ case DEVCOL_PLAY: p = Q3Header::tr("Enable writing"); break;
+ case DEVCOL_INSTR: p = Q3Header::tr("Port instrument"); break;
+ case DEVCOL_NAME: p = Q3Header::tr("Midi device name. Click to edit (Jack)"); break;
+ case DEVCOL_ROUTES: p = Q3Header::tr("Jack midi ports"); break;
+ case DEVCOL_STATE: p = Q3Header::tr("Device state"); break;
+ default: return;
+ }
+ tip(r, p);
+#endif
+ }
+
+//---------------------------------------------------------
+// MPWhatsThis::text
+//---------------------------------------------------------
+
+QString MPWhatsThis::text(const QPoint& pos)
+ {
+ int n = header->cellAt(pos.x());
+ if (n == -1)
+ return QString::null;
+ switch (header->mapToLogical(n)) {
+ case DEVCOL_NO:
+ return Q3Header::tr("Port Number");
+ case DEVCOL_GUI:
+ return Q3Header::tr("Enable gui for device");
+ case DEVCOL_REC:
+ return Q3Header::tr("Enable reading from device");
+ case DEVCOL_PLAY:
+ return Q3Header::tr("Enable writing to device");
+ case DEVCOL_NAME:
+ return Q3Header::tr("Name of the midi device associated with"
+ " this port number. Click to edit Jack midi name.");
+ case DEVCOL_INSTR:
+ return Q3Header::tr("Instrument connected to port");
+ case DEVCOL_ROUTES:
+ return Q3Header::tr("Jack midi ports");
+ case DEVCOL_STATE:
+ return Q3Header::tr("State: result of opening the device");
+ default:
+ break;
+ }
+ return QString::null;
+ }
+
+//---------------------------------------------------------
+// MPConfig
+// Midi Port Config
+//---------------------------------------------------------
+
+MPConfig::MPConfig(QWidget* parent, char* name)
+ : SynthConfigBase(parent, name)
+ {
+ _mptooltip = 0;
+ popup = 0;
+ instrPopup = 0;
+ _showAliases = -1; // 0: Show first aliases, if available. Nah, stick with -1: none at first.
+
+ mdevView->setSorting(-1);
+ mdevView->setAllColumnsShowFocus(true);
+ mdevView->addColumn(tr("Port"));
+ mdevView->addColumn(tr("GUI"));
+ mdevView->addColumn(tr("I"));
+ mdevView->addColumn(tr("O"));
+ mdevView->addColumn(tr("Instrument"), 120);
+ mdevView->addColumn(tr("Device Name"), 120);
+ mdevView->addColumn(tr("Routing"), 80);
+ mdevView->addColumn(tr("State"));
+ mdevView->setFocusPolicy(Qt::NoFocus);
+
+ mdevView->setColumnAlignment(DEVCOL_NO, Qt::AlignHCenter);
+ mdevView->setColumnAlignment(DEVCOL_GUI, Qt::AlignCenter);
+ mdevView->setColumnAlignment(DEVCOL_REC, Qt::AlignCenter);
+ mdevView->setColumnAlignment(DEVCOL_PLAY, Qt::AlignCenter);
+ mdevView->header()->setResizeEnabled(false, DEVCOL_NO);
+ mdevView->header()->setResizeEnabled(false, DEVCOL_REC);
+ mdevView->header()->setResizeEnabled(false, DEVCOL_GUI);
+ mdevView->setResizeMode(Q3ListView::LastColumn);
+
+ instanceList->setColumnAlignment(1, Qt::AlignHCenter);
+
+ new MPWhatsThis(mdevView, mdevView->header());
+ _mptooltip = new MPHeaderTip(mdevView->header());
+
+ connect(mdevView, SIGNAL(pressed(Q3ListViewItem*,const QPoint&,int)),
+ this, SLOT(rbClicked(Q3ListViewItem*,const QPoint&,int)));
+ connect(mdevView, SIGNAL(itemRenamed(Q3ListViewItem*,int,const QString&)),
+ this, SLOT(mdevViewItemRenamed(Q3ListViewItem*,int,const QString&)));
+ connect(song, SIGNAL(songChanged(int)), SLOT(songChanged(int)));
+
+ connect(synthList, SIGNAL(selectionChanged()), SLOT(selectionChanged()));
+ connect(instanceList, SIGNAL(selectionChanged()), SLOT(selectionChanged()));
+
+ connect(addInstance, SIGNAL(clicked()), SLOT(addInstanceClicked()));
+ connect(removeInstance, SIGNAL(clicked()), SLOT(removeInstanceClicked()));
+ songChanged(0);
+ }
+
+
+MPConfig::~MPConfig()
+{
+ delete _mptooltip;
+}
+
+//---------------------------------------------------------
+// selectionChanged
+//---------------------------------------------------------
+
+void MPConfig::selectionChanged()
+ {
+ addInstance->setEnabled(synthList->selectedItem());
+ removeInstance->setEnabled(instanceList->selectedItem());
+ }
+
+//---------------------------------------------------------
+// songChanged
+//---------------------------------------------------------
+
+void MPConfig::songChanged(int flags)
+ {
+ // Is it simply a midi controller value adjustment? Forget it.
+ if(flags == SC_MIDI_CONTROLLER)
+ return;
+
+ // Get currently selected index...
+ int no = -1;
+ Q3ListViewItem* sitem = mdevView->selectedItem();
+ if(sitem)
+ {
+ QString id = sitem->text(DEVCOL_NO);
+ no = atoi(id.latin1()) - 1;
+ if(no < 0 || no >= MIDI_PORTS)
+ no = -1;
+ }
+
+ sitem = 0;
+ mdevView->clear();
+ for (int i = MIDI_PORTS-1; i >= 0; --i)
+ {
+ MidiPort* port = &midiPorts[i];
+ MidiDevice* dev = port->device();
+ QString s;
+ s.setNum(i+1);
+ Q3ListViewItem* item = new Q3ListViewItem(mdevView);
+ item->setText(DEVCOL_NO, s);
+ item->setText(DEVCOL_STATE, port->state());
+ if (port->instrument())
+ item->setText(DEVCOL_INSTR, port->instrument()->iname() );
+ else
+ item->setText(DEVCOL_INSTR, tr("<unknown>"));
+ if (dev) {
+ item->setText(DEVCOL_NAME, dev->name());
+ // Is it a Jack midi device? Allow renaming.
+ //if(dynamic_cast<MidiJackDevice*>(dev))
+ if(dev->deviceType() == MidiDevice::JACK_MIDI)
+ item->setRenameEnabled(DEVCOL_NAME, true);
+
+ if (dev->rwFlags() & 0x2)
+ item->setPixmap(DEVCOL_REC, dev->openFlags() & 2 ? *dotIcon : *dothIcon);
+ else
+ item->setPixmap(DEVCOL_REC, QPixmap());
+ if (dev->rwFlags() & 0x1)
+ item->setPixmap(DEVCOL_PLAY, dev->openFlags() & 1 ? *dotIcon : *dothIcon);
+ else
+ item->setPixmap(DEVCOL_PLAY, QPixmap());
+ }
+ else {
+ item->setText(DEVCOL_NAME, tr("<none>"));
+ item->setPixmap(DEVCOL_GUI, *dothIcon);
+ item->setPixmap(DEVCOL_REC, QPixmap());
+ item->setPixmap(DEVCOL_PLAY, QPixmap());
+ }
+ if (port->hasGui()) {
+ item->setPixmap(DEVCOL_GUI, port->guiVisible() ? *dotIcon : *dothIcon);
+ }
+ else {
+ item->setPixmap(DEVCOL_GUI, QPixmap());
+ }
+ if (!(dev && dev->isSynti()))
+ item->setPixmap(DEVCOL_INSTR, *buttondownIcon);
+ item->setPixmap(DEVCOL_NAME, *buttondownIcon);
+
+ //if(dev && dynamic_cast<MidiJackDevice*>(dev))
+ if(dev && dev->deviceType() == MidiDevice::JACK_MIDI)
+ {
+ item->setPixmap(DEVCOL_ROUTES, *buttondownIcon);
+ item->setText(DEVCOL_ROUTES, tr("routes"));
+ }
+
+ mdevView->insertItem(item);
+ if(i == no)
+ sitem = item;
+ }
+ if(sitem)
+ {
+ mdevView->setSelected(sitem, true);
+ mdevView->ensureItemVisible(sitem);
+ }
+
+ QString s;
+ synthList->clear();
+ for (std::vector<Synth*>::iterator i = synthis.begin();
+ i != synthis.end(); ++i) {
+ //s = (*i)->baseName();
+ //s = (*i)->name();
+
+ Q3ListViewItem* item = new Q3ListViewItem(synthList);
+ //item->setText(0, s);
+ item->setText(0, QString((*i)->baseName()));
+ s.setNum((*i)->instances());
+ item->setText(1, s);
+ //item->setText(2, QString((*i)->baseName()));
+ item->setText(2, QString((*i)->name()));
+
+ item->setText(3, QString((*i)->version()));
+ item->setText(4, QString((*i)->description()));
+ }
+ instanceList->clear();
+ SynthIList* sl = song->syntis();
+ for (iSynthI si = sl->begin(); si != sl->end(); ++si) {
+ Q3ListViewItem* iitem = new Q3ListViewItem(instanceList);
+ iitem->setText(0, (*si)->name());
+ if ((*si)->midiPort() == -1)
+ s = tr("<none>");
+ else
+ s.setNum((*si)->midiPort() + 1);
+ iitem->setText(1, s);
+ }
+ selectionChanged();
+ }
+
+//---------------------------------------------------------
+// addInstanceClicked
+//---------------------------------------------------------
+
+void MPConfig::addInstanceClicked()
+ {
+ Q3ListViewItem* item = synthList->selectedItem();
+ if (item == 0)
+ return;
+ //SynthI *si = song->createSynthI(item->text(2));
+ SynthI *si = song->createSynthI(item->text(0), item->text(2));
+ if(!si)
+ return;
+
+ // add instance last in midi device list
+ for (int i = 0; i < MIDI_PORTS; ++i) {
+ MidiPort* port = &midiPorts[i];
+ MidiDevice* dev = port->device();
+ if (dev==0) {
+ midiSeq->msgSetMidiDevice(port, si);
+ muse->changeConfig(true); // save configuration file
+ song->update();
+ break;
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// removeInstanceClicked
+//---------------------------------------------------------
+
+void MPConfig::removeInstanceClicked()
+ {
+ Q3ListViewItem* item = instanceList->selectedItem();
+ if (item == 0)
+ return;
+ SynthIList* sl = song->syntis();
+ iSynthI ii;
+ for (ii = sl->begin(); ii != sl->end(); ++ii) {
+ if ((*ii)->iname() == item->text(0))
+ break;
+ }
+ if (ii == sl->end()) {
+ printf("synthesizerConfig::removeInstanceClicked(): synthi not found\n");
+ return;
+ }
+ audio->msgRemoveTrack(*ii);
+ }
+
+//---------------------------------------------------------
+// configMidiPorts
+//---------------------------------------------------------
+
+void MusE::configMidiPorts()
+ {
+ if (!midiPortConfig)
+ midiPortConfig = new MPConfig(0, (char*) "midiPortConfig");
+ if (midiPortConfig->isVisible()) {
+ midiPortConfig->raise();
+ midiPortConfig->setActiveWindow();
+ }
+ else
+ midiPortConfig->show();
+ }
+
diff --git a/muse2/muse/confmport.h b/muse2/muse/confmport.h
new file mode 100644
index 00000000..77683a3c
--- /dev/null
+++ b/muse2/muse/confmport.h
@@ -0,0 +1,83 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: confmport.h,v 1.3 2004/01/25 11:20:31 wschweer Exp $
+//
+// (C) Copyright 2000 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __CONFMPORT_H__
+#define __CONFMPORT_H__
+
+#include <qwidget.h>
+#include <q3whatsthis.h>
+#include <qtooltip.h>
+//Added by qt3to4:
+#include <Q3PopupMenu>
+
+#include "synthconfigbase.h"
+
+class Q3ListView;
+class Q3ListViewItem;
+class QPoint;
+class Q3PopupMenu;
+class Q3Header;
+class Xml;
+
+//----------------------------------------------------------
+// MPHeaderTip
+//----------------------------------------------------------
+
+class MPHeaderTip { // : public QToolTip { ddskrjo
+
+ public:
+ MPHeaderTip(QWidget * parent) {} // : QToolTip(parent) {} ddskrjo
+ virtual ~MPHeaderTip() {}
+ protected:
+ void maybeTip(const QPoint &);
+ };
+
+//---------------------------------------------------------
+// MPWhatsThis
+//---------------------------------------------------------
+
+class MPWhatsThis : public Q3WhatsThis {
+ Q3Header* header;
+
+ protected:
+ QString text(const QPoint&);
+
+ public:
+ MPWhatsThis(QWidget* parent, Q3Header* h) : Q3WhatsThis(parent) {
+ header = h;
+ }
+ };
+
+//---------------------------------------------------------
+// MPConfig
+// Midi Port Config
+//---------------------------------------------------------
+
+class MPConfig : public SynthConfigBase {
+ MPHeaderTip* _mptooltip;
+ Q3PopupMenu* popup;
+ Q3PopupMenu* instrPopup;
+
+ int _showAliases; // -1: None. 0: First aliases. 1: Second aliases etc.
+
+ Q_OBJECT
+
+ private slots:
+ void rbClicked(Q3ListViewItem*, const QPoint&,int);
+ void mdevViewItemRenamed(Q3ListViewItem*, int, const QString&);
+ void songChanged(int);
+ void selectionChanged();
+ void addInstanceClicked();
+ void removeInstanceClicked();
+
+ public:
+ MPConfig(QWidget* parent, char* name);
+ ~MPConfig();
+ };
+
+#endif
diff --git a/muse2/muse/ctrl.cpp b/muse2/muse/ctrl.cpp
new file mode 100644
index 00000000..fa7e5bd7
--- /dev/null
+++ b/muse2/muse/ctrl.cpp
@@ -0,0 +1,297 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: ctrl.cpp,v 1.1.2.4 2009/06/10 00:34:59 terminator356 Exp $
+//
+// controller handling for mixer automation
+//
+// (C) Copyright 2003 Werner Schweer (ws@seh.de)
+//=========================================================
+
+
+#include <qlocale.h>
+//#include <stdlib.h>
+#include "globals.h"
+#include "ctrl.h"
+#include "xml.h"
+// #include "audio.h"
+
+//---------------------------------------------------------
+// CtrlList
+//---------------------------------------------------------
+
+CtrlList::CtrlList(int id)
+ {
+ _id = id;
+ _default = 0.0;
+ _curVal = 0.0;
+ _mode = INTERPOLATE;
+ }
+//---------------------------------------------------------
+// CtrlList
+//---------------------------------------------------------
+CtrlList::CtrlList(int id, QString name, double min, double max)
+{
+ _id = id;
+ _default = 0.0;
+ _curVal = 0.0;
+ _mode = INTERPOLATE;
+ _name = name;
+ _min = min;
+ _max = max;
+}
+//---------------------------------------------------------
+// CtrlList
+//---------------------------------------------------------
+
+CtrlList::CtrlList()
+ {
+ _id = 0;
+ _default = 0.0;
+ _curVal = 0.0;
+ _mode = INTERPOLATE;
+ }
+
+//---------------------------------------------------------
+// value
+//---------------------------------------------------------
+
+double CtrlList::value(int frame)
+ {
+ if (!automation || empty()) {
+ return _curVal;
+ }
+ ciCtrl i = upper_bound(frame);
+ if (i == end()) {
+ ciCtrl i = end();
+ --i;
+ const CtrlVal& val = i->second;
+ _curVal = val.val;
+ }
+ else
+ if(_mode == DISCRETE)
+ {
+ if(i == begin())
+ _curVal = _default;
+ else
+ {
+ --i;
+ const CtrlVal& val = i->second;
+ _curVal = val.val;
+ }
+ }
+ else {
+ int frame2 = i->second.frame;
+ double val2 = i->second.val;
+ int frame1;
+ double val1;
+ if (i == begin()) {
+ frame1 = 0;
+ val1 = _default;
+ }
+ else {
+ --i;
+ frame1 = i->second.frame;
+ val1 = i->second.val;
+ }
+ frame -= frame1;
+ val2 -= val1;
+ frame2 -= frame1;
+ val1 += (frame * val2)/frame2;
+ _curVal = val1;
+ }
+// printf("autoVal %d %f\n", frame, _curVal);
+ return _curVal;
+ }
+
+
+//---------------------------------------------------------
+// setCurVal
+//---------------------------------------------------------
+void CtrlList::setCurVal(double val)
+{
+ _curVal = val;
+ if (size() < 2) {
+ add(0,val);
+ }
+}
+
+//---------------------------------------------------------
+// add
+//---------------------------------------------------------
+
+void CtrlList::add(int frame, double val)
+ {
+// printf("add %d %f\n", frame, val);
+ iCtrl e = find(frame);
+ if (e != end())
+ e->second.val = val;
+ else
+ insert(std::pair<const int, CtrlVal> (frame, CtrlVal(frame, val)));
+ }
+
+//---------------------------------------------------------
+// del
+//---------------------------------------------------------
+
+void CtrlList::del(int /* frame*/)
+ {
+ /*
+ iCtrl e = find(frame);
+ if (e == end()) {
+ printf("CtrlList::del(%d): not found\n", frame);
+ return;
+ }
+ erase(e);
+ */
+ }
+
+//---------------------------------------------------------
+// read
+//---------------------------------------------------------
+
+void CtrlList::read(Xml& xml)
+ {
+ QLocale loc = QLocale::c();
+ bool ok;
+ for (;;) {
+ Xml::Token token = xml.parse();
+ const QString& tag = xml.s1();
+ switch (token) {
+ case Xml::Error:
+ case Xml::End:
+ return;
+ case Xml::Attribut:
+ if (tag == "id")
+ {
+ //_id = xml.s2().toInt();
+ _id = loc.toInt(xml.s2(), &ok);
+ if(!ok)
+ printf("CtrlList::read failed reading _id string: %s\n", xml.s2().latin1());
+ }
+ else if (tag == "cur")
+ {
+ //_curVal = xml.s2().toDouble();
+ _curVal = loc.toDouble(xml.s2(), &ok);
+ if(!ok)
+ printf("CtrlList::read failed reading _curVal string: %s\n", xml.s2().latin1());
+ }
+ else
+ printf("unknown tag %s\n", tag.latin1());
+ break;
+ case Xml::Text:
+ {
+ // Changed by Tim. Users in some locales reported corrupt reading,
+ // because of the way floating point is represented (2,3456 not 2.3456).
+ /*
+ const char* s = tag.latin1();
+ int frame;
+ double val;
+
+ for (;;) {
+ char* endp;
+ while (*s == ' ' || *s == '\n')
+ ++s;
+ if (*s == 0)
+ break;
+ frame = strtol(s, &endp, 10);
+ s = endp;
+ while (*s == ' ' || *s == '\n')
+ ++s;
+ val = strtod(s, &endp);
+ add(frame, val);
+ s = endp;
+ ++s;
+ }
+ */
+
+ // Added by Tim. p3.3.6
+ //printf("CtrlList::read tag:%s\n", tag.latin1());
+
+ int len = tag.length();
+ int frame;
+ double val;
+
+ int i = 0;
+ for(;;)
+ {
+ while(i < len && (tag[i] == ',' || tag[i] == ' ' || tag[i] == '\n'))
+ ++i;
+ if(i == len)
+ break;
+
+ QString fs;
+ while(i < len && tag[i] != ' ')
+ {
+ fs.append(tag[i]);
+ ++i;
+ }
+ if(i == len)
+ break;
+
+ // Works OK, but only because if current locale fails it falls back on 'C' locale.
+ // So, let's skip the fallback and force use of 'C' locale.
+ //frame = fs.toInt(&ok);
+ frame = loc.toInt(fs, &ok);
+ if(!ok)
+ {
+ printf("CtrlList::read failed reading frame string: %s\n", fs.latin1());
+ break;
+ }
+
+ while(i < len && (tag[i] == ' ' || tag[i] == '\n'))
+ ++i;
+ if(i == len)
+ break;
+
+ QString vs;
+ while(i < len && tag[i] != ' ' && tag[i] != ',')
+ {
+ vs.append(tag[i]);
+ ++i;
+ }
+
+ // Works OK, but only because if current locale fails it falls back on 'C' locale.
+ // So, let's skip the fallback and force use of 'C' locale.
+ //val = vs.toDouble(&ok);
+ val = loc.toDouble(vs, &ok);
+ if(!ok)
+ {
+ printf("CtrlList::read failed reading value string: %s\n", vs.latin1());
+ break;
+ }
+
+ // Added by Tim. p3.3.6
+ //printf("CtrlList::read i:%d len:%d fs:%s frame %d: vs:%s val %f \n", i, len, fs.latin1(), frame, vs.latin1(), val);
+
+ add(frame, val);
+
+ if(i == len)
+ break;
+ }
+ }
+ break;
+ case Xml::TagEnd:
+ if (xml.s1() == "controller")
+ {
+ // Added by Tim. p3.3.6
+ //printf("CtrlList::read _id:%d _curVal:%f\n", _id, _curVal);
+
+ return;
+ }
+ default:
+ break;
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// add
+//---------------------------------------------------------
+
+void CtrlListList::add(CtrlList* vl)
+ {
+// printf("CtrlListList(%p)::add(id=%d) size %d\n", this, vl->id(), size());
+ insert(std::pair<const int, CtrlList*>(vl->id(), vl));
+ }
+
diff --git a/muse2/muse/ctrl.h b/muse2/muse/ctrl.h
new file mode 100644
index 00000000..99767b55
--- /dev/null
+++ b/muse2/muse/ctrl.h
@@ -0,0 +1,144 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: ctrl.h,v 1.4.2.2 2006/10/29 07:54:51 terminator356 Exp $
+//
+// controller for mixer automation
+//
+// (C) Copyright 2003-2004 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __CTRL_H__
+#define __CTRL_H__
+
+#include <map>
+#include <list>
+
+const int AC_VOLUME = 0;
+const int AC_PAN = 1;
+const int AC_MUTE = 2;
+
+#define AC_PLUGIN_CTL_BASE 0x1000
+#define AC_PLUGIN_CTL_BASE_POW 12
+#define AC_PLUGIN_CTL_ID_MASK 0xFFF
+
+inline int genACnum(int plugin, int ctrl) { return (plugin + 1) * AC_PLUGIN_CTL_BASE + ctrl; }
+
+class Xml;
+
+enum CtrlValueType { VAL_LOG, VAL_LINEAR, VAL_INT, VAL_BOOL };
+enum CtrlRecValueType { ARVT_VAL, ARVT_START, ARVT_STOP };
+
+//---------------------------------------------------------
+// CtrlVal
+// controller "event"
+//---------------------------------------------------------
+
+struct CtrlVal {
+ int frame;
+ double val;
+ CtrlVal(int f, double v) {
+ frame = f;
+ val = v;
+ }
+ };
+
+//---------------------------------------------------------
+// CtrlRecVal
+// recorded controller event, mixer automation
+//---------------------------------------------------------
+
+struct CtrlRecVal : public CtrlVal {
+ int id;
+ CtrlRecValueType type; // 0 - ctrlVal, 1 - start, 2 - end
+ CtrlRecVal(int f, int n, double v) : CtrlVal(f, v), id(n), type(ARVT_VAL) {}
+ CtrlRecVal(int f, int n, double v, CtrlRecValueType t) : CtrlVal(f, v), id(n), type(t) {}
+ };
+
+//---------------------------------------------------------
+// CtrlRecList
+//---------------------------------------------------------
+
+class CtrlRecList : public std::list<CtrlRecVal> {
+ public:
+ };
+
+typedef CtrlRecList::iterator iCtrlRec;
+
+//---------------------------------------------------------
+// CtrlList
+// arrange controller events of a specific type in a
+// list for easy retrieval
+//---------------------------------------------------------
+
+typedef std::map<int, CtrlVal, std::less<int> >::iterator iCtrl;
+typedef std::map<int, CtrlVal, std::less<int> >::const_iterator ciCtrl;
+
+class CtrlList : public std::map<int, CtrlVal, std::less<int> > {
+ public:
+ enum Mode { INTERPOLATE, DISCRETE};
+
+ private:
+ Mode _mode;
+ int _id;
+ double _default;
+ double _curVal;
+ void del(CtrlVal);
+ QString _name;
+ double _min, _max;
+ CtrlValueType _valueType;
+
+ public:
+ CtrlList();
+ CtrlList(int id);
+ CtrlList(int id, QString name, double min, double max);
+
+ Mode mode() const { return _mode; }
+ void setMode(Mode m) { _mode = m; }
+ double getDefault() const { return _default; }
+ void setDefault(double val) { _default = val; }
+ double curVal() const { return _curVal; }
+ void setCurVal(double val); // { _curVal = val; }
+ int id() const { return _id; }
+ QString name() const { return _name; }
+ void setName(const QString& s) { _name = s; }
+ void setRange(double min, double max) {
+ _min = min;
+ _max = max;
+ }
+ void range(double* min, double* max) const {
+ *min = _min;
+ *max = _max;
+ }
+ CtrlValueType valueType() const { return _valueType; }
+ void setValueType(CtrlValueType t) { _valueType = t; }
+
+ double value(int frame);
+ void add(int tick, double value);
+ void del(int tick);
+ void read(Xml& xml);
+ };
+
+//---------------------------------------------------------
+// CtrlListList
+// List of controller value lists.
+// This list represents the controller state of a
+// mixer strip
+//---------------------------------------------------------
+
+typedef std::map<int, CtrlList*, std::less<int> >::iterator iCtrlList;
+typedef std::map<int, CtrlList*, std::less<int> >::const_iterator ciCtrlList;
+
+class CtrlListList : public std::map<int, CtrlList*, std::less<int> > {
+ public:
+ void add(CtrlList* vl);
+ iCtrlList find(int id) {
+ return std::map<int, CtrlList*, std::less<int> >::find(id);
+ }
+ ciCtrlList find(int id) const {
+ return std::map<int, CtrlList*, std::less<int> >::find(id);
+ }
+ };
+
+#endif
+
diff --git a/muse2/muse/ctrl/Makefile.am b/muse2/muse/ctrl/Makefile.am
new file mode 100644
index 00000000..3aac8577
--- /dev/null
+++ b/muse2/muse/ctrl/Makefile.am
@@ -0,0 +1,17 @@
+include $(top_srcdir)/common.am
+
+if PCH
+AM_CXXFLAGS += -include $(top_srcdir)/all.h
+endif
+
+noinst_LIBRARIES = libctrl.a
+
+dist_libctrl_a_SOURCES = \
+ ctrledit.cpp ctrledit.h \
+ ctrlcanvas.cpp ctrlcanvas.h \
+ ctrlpanel.cpp ctrlpanel.h
+
+nodist_libctrl_a_SOURCES = \
+ moc_ctrledit.cpp \
+ moc_ctrlcanvas.cpp \
+ moc_ctrlpanel.cpp
diff --git a/muse2/muse/ctrl/Makefile.in b/muse2/muse/ctrl/Makefile.in
new file mode 100644
index 00000000..09912657
--- /dev/null
+++ b/muse2/muse/ctrl/Makefile.in
@@ -0,0 +1,604 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
+ $(top_srcdir)/common.am
+@PCH_TRUE@am__append_1 = -include $(top_srcdir)/all.h
+subdir = muse/ctrl
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal-include.m4 \
+ $(top_srcdir)/m4/alsa.m4 $(top_srcdir)/m4/docbook.m4 \
+ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
+ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
+ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+LIBRARIES = $(noinst_LIBRARIES)
+ARFLAGS = cru
+libctrl_a_AR = $(AR) $(ARFLAGS)
+libctrl_a_LIBADD =
+dist_libctrl_a_OBJECTS = ctrledit.$(OBJEXT) ctrlcanvas.$(OBJEXT) \
+ ctrlpanel.$(OBJEXT)
+nodist_libctrl_a_OBJECTS = moc_ctrledit.$(OBJEXT) \
+ moc_ctrlcanvas.$(OBJEXT) moc_ctrlpanel.$(OBJEXT)
+libctrl_a_OBJECTS = $(dist_libctrl_a_OBJECTS) \
+ $(nodist_libctrl_a_OBJECTS)
+DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
+depcomp = $(SHELL) $(top_srcdir)/depcomp
+am__depfiles_maybe = depfiles
+am__mv = mv -f
+CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
+LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
+CXXLD = $(CXX)
+CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \
+ $(LDFLAGS) -o $@
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
+ $(LDFLAGS) -o $@
+SOURCES = $(dist_libctrl_a_SOURCES) $(nodist_libctrl_a_SOURCES)
+DIST_SOURCES = $(dist_libctrl_a_SOURCES)
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ALSA_CFLAGS = @ALSA_CFLAGS@
+ALSA_LIBS = @ALSA_LIBS@
+AMTAR = @AMTAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DOCBOOKSTYLE = @DOCBOOKSTYLE@
+DOCBOOKTARGETS = @DOCBOOKTARGETS@
+DOT = @DOT@
+DOTPATH = @DOTPATH@
+DOXYGEN = @DOXYGEN@
+DOXYGEN_TREEVIEW = @DOXYGEN_TREEVIEW@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+FLUIDSYNTHDIRS = @FLUIDSYNTHDIRS@
+FST_CFLAGS = @FST_CFLAGS@
+FST_LIBS = @FST_LIBS@
+Fluidsynth_CFLAGS = @Fluidsynth_CFLAGS@
+Fluidsynth_LIBS = @Fluidsynth_LIBS@
+GIVERTCAP = @GIVERTCAP@
+GREP = @GREP@
+HAVEDOT = @HAVEDOT@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JACK_CFLAGS = @JACK_CFLAGS@
+JACK_LIBS = @JACK_LIBS@
+JADE = @JADE@
+LASH_CFLAGS = @LASH_CFLAGS@
+LASH_LIBS = @LASH_LIBS@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LO_CFLAGS = @LO_CFLAGS@
+LO_LIBS = @LO_LIBS@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+MUSECXXFLAGS = @MUSECXXFLAGS@
+NM = @NM@
+NMEDIT = @NMEDIT@
+NSGMLS = @NSGMLS@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PCH = @PCH@
+PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+PYTHON = @PYTHON@
+PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
+PYTHON_INCLUDES = @PYTHON_INCLUDES@
+PYTHON_LIB = @PYTHON_LIB@
+PYTHON_PLATFORM = @PYTHON_PLATFORM@
+PYTHON_PREFIX = @PYTHON_PREFIX@
+PYTHON_VERSION = @PYTHON_VERSION@
+QTDIR_BIN = @QTDIR_BIN@
+QTDIR_INC = @QTDIR_INC@
+QT_LIBS = @QT_LIBS@
+RANLIB = @RANLIB@
+SAMPLERATE_CFLAGS = @SAMPLERATE_CFLAGS@
+SAMPLERATE_LIBS = @SAMPLERATE_LIBS@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SNDFILE_CFLAGS = @SNDFILE_CFLAGS@
+SNDFILE_LIBS = @SNDFILE_LIBS@
+STRIP = @STRIP@
+SUIDBUILD = @SUIDBUILD@
+SUIDINSTALL = @SUIDINSTALL@
+USE_SSE = @USE_SSE@
+UUID_CFLAGS = @UUID_CFLAGS@
+UUID_LIBS = @UUID_LIBS@
+VERSION = @VERSION@
+XMKMF = @XMKMF@
+X_CFLAGS = @X_CFLAGS@
+X_EXTRA_LIBS = @X_EXTRA_LIBS@
+X_LIBS = @X_LIBS@
+X_PRE_LIBS = @X_PRE_LIBS@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+have_docbook = @have_docbook@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+lt_ECHO = @lt_ECHO@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+pkgpyexecdir = @pkgpyexecdir@
+pkgpythondir = @pkgpythondir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+pyexecdir = @pyexecdir@
+pythondir = @pythondir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+synth_fluid = @synth_fluid@
+synth_fluidsynth = @synth_fluidsynth@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+AM_CXXFLAGS = $(MUSECXXFLAGS) -I.. -I$(top_srcdir)/synti \
+ -I$(top_srcdir)/muse/widgets -DQT_SHARED -DQT_THREAD_SUPPORT \
+ -DQT_PLUGIN $(QTDIR_INC) -DQT3_SUPPORT $(am__append_1)
+AM_CPPFLAGS =
+MOC = $(QTDIR_BIN)/moc
+#UIC = $(QTDIR_BIN)/uic3
+UIC = /usr/bin/uic3
+UIFILES = $(wildcard *.ui)
+MOCFILES = $(shell for h in $(filter %.h,$(SOURCES)); do \
+ if grep -q Q_OBJECT $$h; then \
+ echo $$h | sed "s/\(.*\)\.h/moc_\1.cpp/"; \
+ fi; \
+ done)
+
+BUILT_SOURCES = $(MOCFILES) $(UIFILES:%.ui=%.h)
+MOSTLYCLEANFILES = $(MOCFILES) $(UIFILES:%.ui=%.h)
+SUFFIXES = .ui .h.gch
+noinst_LIBRARIES = libctrl.a
+dist_libctrl_a_SOURCES = \
+ ctrledit.cpp ctrledit.h \
+ ctrlcanvas.cpp ctrlcanvas.h \
+ ctrlpanel.cpp ctrlpanel.h
+
+nodist_libctrl_a_SOURCES = \
+ moc_ctrledit.cpp \
+ moc_ctrlcanvas.cpp \
+ moc_ctrlpanel.cpp
+
+all: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) all-am
+
+.SUFFIXES:
+.SUFFIXES: .ui .h.gch .cpp .lo .o .obj
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/common.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu muse/ctrl/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu muse/ctrl/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+clean-noinstLIBRARIES:
+ -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
+libctrl.a: $(libctrl_a_OBJECTS) $(libctrl_a_DEPENDENCIES)
+ -rm -f libctrl.a
+ $(libctrl_a_AR) libctrl.a $(libctrl_a_OBJECTS) $(libctrl_a_LIBADD)
+ $(RANLIB) libctrl.a
+
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT)
+
+distclean-compile:
+ -rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ctrlcanvas.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ctrledit.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ctrlpanel.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/moc_ctrlcanvas.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/moc_ctrledit.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/moc_ctrlpanel.Po@am__quote@
+
+.cpp.o:
+@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $<
+
+.cpp.obj:
+@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+
+.cpp.lo:
+@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $<
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ mkid -fID $$unique
+tags: TAGS
+
+TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ set x; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: CTAGS
+CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) check-am
+all-am: Makefile $(LIBRARIES)
+installdirs:
+install: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+ -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES)
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+ -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
+clean: clean-am
+
+clean-am: clean-generic clean-libtool clean-noinstLIBRARIES \
+ mostlyclean-am
+
+distclean: distclean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+ distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+ mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: all check install install-am install-strip
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
+ clean-libtool clean-noinstLIBRARIES ctags distclean \
+ distclean-compile distclean-generic distclean-libtool \
+ distclean-tags distdir dvi dvi-am html html-am info info-am \
+ install install-am install-data install-data-am install-dvi \
+ install-dvi-am install-exec install-exec-am install-html \
+ install-html-am install-info install-info-am install-man \
+ install-pdf install-pdf-am install-ps install-ps-am \
+ install-strip installcheck installcheck-am installdirs \
+ maintainer-clean maintainer-clean-generic mostlyclean \
+ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
+ pdf pdf-am ps ps-am tags uninstall uninstall-am
+
+
+de:
+ @for base in $(MOCFILES); do echo -e "\t$${base}.cpp $${base}.h \\"; done
+
+nde:
+ @for base in $(MOCFILES); do echo -e "\tmoc_$${base}.cpp \\"; done
+
+.ui.o: %.h
+ $(UIC) -L $(top_srcdir)/muse/widgets -o $*.cpp -impl $*.h $*.ui
+ $(MOC) $*.h >> $*.cpp
+ $(CXXCOMPILE) -c $*.cpp -o $*.o
+ $(RM) $*.cpp moc_$*.cpp moc_$*.o
+
+.ui.lo: %.h
+ $(UIC) -L $(top_srcdir)/muse/widgets -o $*.cpp -impl $*.h $*.ui
+ $(MOC) $*.h >> $*.cpp
+ $(LTCXXCOMPILE) -c $*.cpp -o $*.lo
+ $(RM) $*.cpp moc_$*.cpp moc_$*.lo moc_$*.o
+
+moc_%.cpp: %.h
+ $(MOC) $< -o $@
+
+%.h: %.ui
+ $(UIC) -o $@ $<
+# $(UIC) -L $(top_srcdir)/muse/widgets -o $@ $<
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/muse2/muse/ctrl/ctrlcanvas.cpp b/muse2/muse/ctrl/ctrlcanvas.cpp
new file mode 100644
index 00000000..6a7e0720
--- /dev/null
+++ b/muse2/muse/ctrl/ctrlcanvas.cpp
@@ -0,0 +1,1533 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: ctrlcanvas.cpp,v 1.15.2.10 2009/11/14 03:37:48 terminator356 Exp $
+// (C) Copyright 1999 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include <stdio.h>
+#include <values.h>
+
+#include <qlayout.h>
+#include <qpainter.h>
+#include <qtoolbutton.h>
+#include <q3popupmenu.h>
+#include <qlabel.h>
+#include <qcursor.h>
+//Added by qt3to4:
+#include <QMouseEvent>
+#include <QEvent>
+
+#include "globals.h"
+#include "ctrledit.h"
+#include "midieditor.h"
+#include "icons.h"
+#include "midiport.h"
+#include "song.h"
+#include "midictrl.h"
+#include "audio.h"
+#include "gconfig.h"
+#include "ctrlpanel.h"
+#include "midiedit/drummap.h"
+
+extern void drawTickRaster(QPainter& p, int x, int y,
+ int w, int h, int quant);
+
+static MidiCtrlValList veloList(CTRL_VELOCITY); // dummy
+
+//---------------------------------------------------------
+// computeVal
+//---------------------------------------------------------
+
+static int computeVal(MidiController* mc, int y, int height)
+ {
+ int min; int max;
+ if(mc->num() == CTRL_PROGRAM)
+ {
+ min = 1;
+ max = 128;
+ }
+ else
+ {
+ min = mc->minVal();
+ max = mc->maxVal();
+ }
+ int val = max - (y * (max-min) / height);
+ if (val < min)
+ val = min;
+ if (val > max)
+ val = max;
+ if(mc->num() != CTRL_PROGRAM)
+ val += mc->bias();
+ return val;
+ }
+
+//---------------------------------------------------------
+// CEvent
+//---------------------------------------------------------
+
+CEvent::CEvent(Event e, MidiPart* pt, int v)
+ {
+ _event = e;
+ _part = pt;
+ _val = v;
+ ex = !e.empty() ? e.tick() : 0;
+ }
+
+//---------------------------------------------------------
+// contains
+//---------------------------------------------------------
+
+bool CEvent::contains(int x1, int x2) const
+ {
+ int tick1 = !_event.empty() ? _event.tick() + _part->tick() : 0;
+ if(ex == -1)
+ return (tick1 < x2);
+
+ int tick2 = ex + _part->tick();
+ return ((tick1 >= x1 && tick1 < x2)
+ //|| (tick2 >= x1 && tick2 < x2)
+ || (tick2 > x1 && tick2 < x2)
+ || (tick1 < x1 && tick2 >= x2));
+ }
+
+//---------------------------------------------------------
+// clearDelete
+//---------------------------------------------------------
+
+void CEventList::clearDelete()
+{
+ for(ciCEvent i = begin(); i != end(); ++i)
+ {
+ CEvent* ce = *i;
+ if(ce)
+ delete ce;
+ }
+ clear();
+}
+
+//---------------------------------------------------------
+// CtrlCanvas
+//---------------------------------------------------------
+
+CtrlCanvas::CtrlCanvas(MidiEditor* e, QWidget* parent, int xmag,
+ const char* name, CtrlPanel* pnl) : View(parent, xmag, 1, name)
+ {
+ setBg(Qt::white);
+ editor = e;
+ drag = DRAG_OFF;
+ tool = PointerTool;
+ pos[0] = 0;
+ pos[1] = 0;
+ pos[2] = 0;
+ noEvents=false;
+
+ ctrl = &veloList;
+ _controller = &veloCtrl;
+ _panel = pnl;
+ _cnum = CTRL_VELOCITY;
+ _dnum = CTRL_VELOCITY;
+ _didx = CTRL_VELOCITY;
+ connect(song, SIGNAL(posChanged(int, unsigned, bool)), this, SLOT(setPos(int, unsigned, bool)));
+
+ setMouseTracking(true);
+ if (editor->parts()->empty()) {
+ curPart = 0;
+ curTrack = 0;
+ }
+ else {
+ setCurTrackAndPart();
+ }
+ connect(song, SIGNAL(songChanged(int)), SLOT(songChanged(int)));
+
+ curDrumInstrument = editor->curDrumInstrument();
+ //printf("CtrlCanvas::CtrlCanvas curDrumInstrument:%d\n", curDrumInstrument);
+
+ connect(editor, SIGNAL(curDrumInstrumentChanged(int)), SLOT(setCurDrumInstrument(int)));
+ updateItems();
+ }
+
+//---------------------------------------------------------
+// setPos
+// set one of three markers
+// idx - 0-cpos 1-lpos 2-rpos
+// flag - emit followEvent()
+//---------------------------------------------------------
+
+void CtrlCanvas::setPos(int idx, unsigned val, bool adjustScrollbar)
+ {
+ if (pos[idx] == val)
+ return;
+
+ int opos = mapx(pos[idx]);
+ int npos = mapx(val);
+
+ if (adjustScrollbar && idx == 0) {
+ switch (song->follow()) {
+ case Song::NO:
+ break;
+ case Song::JUMP:
+ if (npos >= width()) {
+ int ppos = val - rmapxDev(width()/4);
+ if (ppos < 0)
+ ppos = 0;
+ emit followEvent(ppos);
+ opos = mapx(pos[idx]);
+ npos = mapx(val);
+ }
+ else if (npos < 0) {
+ int ppos = val - rmapxDev(width()*3/4);
+ if (ppos < 0)
+ ppos = 0;
+ emit followEvent(ppos);
+ opos = mapx(pos[idx]);
+ npos = mapx(val);
+ }
+ break;
+ case Song::CONTINUOUS:
+ if (npos > (width()*5)/8) {
+ int ppos = pos[idx] - rmapxDev(width()*5/8);
+ if (ppos < 0)
+ ppos = 0;
+ emit followEvent(ppos);
+ opos = mapx(pos[idx]);
+ npos = mapx(val);
+ }
+ else if (npos < (width()*3)/8) {
+ int ppos = pos[idx] - rmapxDev(width()*3/8);
+ if (ppos < 0)
+ ppos = 0;
+ emit followEvent(ppos);
+ opos = mapx(pos[idx]);
+ npos = mapx(val);
+ }
+ break;
+ }
+ }
+
+ int x;
+ int w = 1;
+ if (opos > npos) {
+ w += opos - npos;
+ x = npos;
+ }
+ else {
+ w += npos - opos;
+ x = opos;
+ }
+ pos[idx] = val;
+ redraw(QRect(x, 0, w, height()));
+ }
+
+//---------------------------------------------------------
+// setMidiController
+//---------------------------------------------------------
+
+void CtrlCanvas::setMidiController(int num)
+ {
+ _cnum = num;
+ partControllers(curPart, _cnum, &_dnum, &_didx, &_controller, &ctrl);
+ if(_panel)
+ {
+ if(_cnum == CTRL_VELOCITY)
+ _panel->setHWController(curTrack, &veloCtrl);
+ else
+ _panel->setHWController(curTrack, _controller);
+ }
+ }
+
+//---------------------------------------------------------
+// leaveEvent
+//---------------------------------------------------------
+
+void CtrlCanvas::leaveEvent(QEvent*)
+ {
+ emit xposChanged(MAXINT);
+ emit yposChanged(-1);
+ }
+
+//---------------------------------------------------------
+// raster
+//---------------------------------------------------------
+
+QPoint CtrlCanvas::raster(const QPoint& p) const
+ {
+ return p;
+ }
+
+//---------------------------------------------------------
+// deselectAll
+//---------------------------------------------------------
+
+void CtrlCanvas::deselectAll()
+ {
+// for (iCEvent i = selection.begin(); i != selection.end(); ++i)
+// (*i)->setState(CEvent::Normal);
+// selection.clear();
+// update();
+ }
+
+//---------------------------------------------------------
+// selectItem
+//---------------------------------------------------------
+
+void CtrlCanvas::selectItem(CEvent*)
+ {
+// e->setState(CEvent::Selected);
+// selection.push_back(e);
+// update();
+ }
+
+//---------------------------------------------------------
+// deselectItem
+//---------------------------------------------------------
+
+void CtrlCanvas::deselectItem(CEvent*)
+ {
+/* e->setState(CEvent::Normal);
+ for (iCEvent i = selection.begin(); i != selection.end(); ++i) {
+ if (*i == e) {
+ selection.erase(i);
+ break;
+ }
+ }
+ update();
+ */
+ }
+
+//---------------------------------------------------------
+// setController
+//---------------------------------------------------------
+
+void CtrlCanvas::setController(int num)
+{
+ setMidiController(num);
+ updateItems();
+}
+
+
+//---------------------------------------------------------
+// setCurTrackAndPart
+//---------------------------------------------------------
+
+bool CtrlCanvas::setCurTrackAndPart()
+{
+ bool changed = false;
+ MidiPart* part = 0;
+ MidiTrack* track = 0;
+
+ if(!editor->parts()->empty())
+ {
+ Part* pt = editor->curCanvasPart();
+ if(pt && pt->track())
+ {
+ if(pt->track()->isMidiTrack())
+ {
+ part = (MidiPart*)pt;
+ track = part->track();
+ }
+ }
+ }
+
+ if(part != curPart)
+ {
+ curPart = part;
+ changed = true;
+ }
+
+ if(track != curTrack)
+ {
+ curTrack = track;
+ changed = true;
+ }
+
+ return changed;
+}
+
+//---------------------------------------------------------
+// songChanged
+// all marked parts are added to the internal event list
+//---------------------------------------------------------
+
+void CtrlCanvas::songChanged(int type)
+{
+ // Is it simply a midi controller value adjustment? Forget it.
+ if(type == SC_MIDI_CONTROLLER)
+ return;
+
+ bool changed = false;
+ if(type & (SC_CONFIG | SC_PART_MODIFIED | SC_SELECTION))
+ changed = setCurTrackAndPart();
+
+ // Although changing the instrument/device in the
+ // config window generates a type of -1, we can eliminate
+ // some other useless calls using SC_CONFIG, which was not used
+ // anywhere else in muse before now, except song header.
+ if((type & (SC_CONFIG | SC_DRUMMAP)) || ((type & (SC_PART_MODIFIED | SC_SELECTION)) && changed))
+ {
+ setMidiController(_cnum);
+ //return;
+ }
+
+ updateItems();
+
+}
+
+//---------------------------------------------------------
+// partControllers
+//---------------------------------------------------------
+
+void CtrlCanvas::partControllers(const MidiPart* part, int num, int* dnum, int* didx, MidiController** mc, MidiCtrlValList** mcvl)
+{
+ if(num == CTRL_VELOCITY) // special case
+ {
+ if(mcvl)
+ *mcvl = &veloList;
+ if(mc)
+ *mc = &veloCtrl;
+ if(dnum)
+ *dnum = num;
+ if(didx)
+ *didx = num;
+ }
+ else
+ {
+ MidiTrack* mt = part->track();
+ MidiPort* mp;
+ int di;
+ int n;
+
+ if((mt->type() != Track::DRUM) && curDrumInstrument != -1)
+ printf("keyfilter != -1 in non drum track?\n");
+
+ if((mt->type() == Track::DRUM) && (curDrumInstrument != -1) && ((num & 0xff) == 0xff))
+ {
+ di = (num & ~0xff) | curDrumInstrument;
+ n = (num & ~0xff) | drumMap[curDrumInstrument].anote; // construct real controller number
+ //num = (num & ~0xff) | curDrumInstrument); // construct real controller number
+ mp = &midiPorts[drumMap[curDrumInstrument].port];
+ }
+ else
+ {
+ di = num;
+ n = num;
+ mp = &midiPorts[mt->outPort()];
+ }
+
+ if(dnum)
+ *dnum = n;
+
+ if(didx)
+ *didx = di;
+
+ if(mc)
+ *mc = mp->midiController(n);
+
+ if(mcvl)
+ {
+ MidiCtrlValList* tmcvl = 0;
+ MidiCtrlValListList* cvll = mp->controller();
+ for(iMidiCtrlValList i = cvll->begin(); i != cvll->end(); ++i)
+ {
+ if(i->second->num() == n)
+ {
+ tmcvl = i->second;
+ break;
+ }
+ }
+ *mcvl = tmcvl;
+
+ // Removed by T356.
+ // MidiCtrlValList not found is now an acceptable state (for multiple part editing).
+ //if (i == cvll->end()) {
+ // printf("CtrlCanvas::setController(0x%x): not found\n", num);
+ // for (i = cvll->begin(); i != cvll->end(); ++i)
+ // printf(" 0x%x\n", i->second->num());
+ // return;
+ // }
+ }
+ }
+}
+
+//---------------------------------------------------------
+// updateItems
+//---------------------------------------------------------
+
+void CtrlCanvas::updateItems()
+ {
+ items.clearDelete();
+
+ /*
+ if(ctrl)
+ {
+ for(ciMidiCtrlVal imcv = ctrl->begin(); imcv != ctrl->end(); ++imcv)
+ {
+ MidiPart* part = (MidiPart*)imcv->part;
+ int val = imcv->val;
+
+ bool edpart = false;
+ if(editor->parts()->index(part) != -1)
+ edpart = true;
+
+ MidiController* mc;
+ MidiCtrlValList* mcvl;
+ partControllers(part, _cnum, 0, 0, &mc, &mcvl);
+
+ Event e(Controller);
+
+ if(_cnum == CTRL_VELOCITY && e.type() == Note)
+ {
+ items.add(new CEvent(e, part, e.velo()));
+
+ }
+
+ }
+ }
+ */
+
+ /*
+ MidiTrackList* mtl = song->midis();
+ for(ciMidiTrack imt = mtl->begin(); imt != mtl->end(); ++imt)
+ {
+ //MidiTrack* mt = *imt;
+ PartList* pl = (*imt)->parts();
+ for(ciPart p = pl->begin(); p != pl->end(); ++p)
+ {
+ MidiPart* part = (MidiPart*)(p->second);
+
+ bool edpart = false;
+ if(editor->parts()->index(part) != -1)
+ edpart = true;
+
+ EventList* el = part->events();
+ MidiController* mc;
+ MidiCtrlValList* mcvl;
+ partControllers(part, _cnum, 0, 0, &mc, &mcvl);
+
+ for(iEvent i = el->begin(); i != el->end(); ++i)
+ {
+ Event e = i->second;
+ if(_cnum == CTRL_VELOCITY && e.type() == Note)
+ {
+ if(curDrumInstrument == -1)
+ {
+ items.add(new CEvent(e, part, e.velo()));
+ }
+ else if (e.dataA() == curDrumInstrument) //same note
+ items.add(new CEvent(e, part, e.velo()));
+ }
+ else if (e.type() == Controller && e.dataA() == _didx)
+ {
+ if(mcvl && last.empty())
+ {
+ Event le(Controller);
+ //le.setType(Controller);
+ le.setA(_didx);
+ //le.setB(e.dataB());
+ le.setB(CTRL_VAL_UNKNOWN);
+ //lastce = new CEvent(Event(), part, mcvl->value(part->tick(), part));
+ //lastce = new CEvent(le, part, mcvl->value(part->tick(), part));
+ lastce = new CEvent(le, part, mcvl->value(part->tick()));
+ items.add(lastce);
+ }
+ if (lastce)
+ lastce->setEX(e.tick());
+ lastce = new CEvent(e, part, e.dataB());
+ items.add(lastce);
+ last = e;
+ }
+ }
+ }
+ }
+ */
+
+
+
+
+
+ if(!editor->parts()->empty())
+ {
+ //Event last;
+ //CEvent* lastce = 0;
+
+ for (iPart p = editor->parts()->begin(); p != editor->parts()->end(); ++p)
+ {
+ Event last;
+ CEvent* lastce = 0;
+
+ MidiPart* part = (MidiPart*)(p->second);
+ EventList* el = part->events();
+ MidiController* mc;
+ MidiCtrlValList* mcvl;
+ partControllers(part, _cnum, 0, 0, &mc, &mcvl);
+ unsigned len = part->lenTick();
+
+ for (iEvent i = el->begin(); i != el->end(); ++i)
+ {
+ Event e = i->second;
+ // Added by T356. Do not add events which are past the end of the part.
+ if(e.tick() >= len)
+ break;
+
+ if(_cnum == CTRL_VELOCITY && e.type() == Note)
+ {
+ //printf("CtrlCanvas::updateItems CTRL_VELOCITY curDrumInstrument:%d\n", curDrumInstrument);
+ if(curDrumInstrument == -1)
+ {
+ // This is interesting - it would allow ALL drum note velocities to be shown.
+ // But currently the drum list ALWAYS has a selected item so this is not supposed to happen.
+ items.add(new CEvent(e, part, e.velo()));
+ }
+ else if (e.dataA() == curDrumInstrument) //same note
+ items.add(new CEvent(e, part, e.velo()));
+ }
+ else if (e.type() == Controller && e.dataA() == _didx)
+ {
+ if(mcvl && last.empty())
+ {
+ lastce = new CEvent(Event(), part, mcvl->value(part->tick()));
+ items.add(lastce);
+ }
+ if (lastce)
+ lastce->setEX(e.tick());
+ lastce = new CEvent(e, part, e.dataB());
+ lastce->setEX(-1);
+ items.add(lastce);
+ last = e;
+ }
+ }
+ }
+ }
+
+
+ redraw();
+ }
+
+//---------------------------------------------------------
+// viewMousePressEvent
+//---------------------------------------------------------
+
+void CtrlCanvas::viewMousePressEvent(QMouseEvent* event)
+ {
+ start = event->pos();
+ Tool activeTool = tool;
+ bool shift = event->state() & Qt::ShiftButton;
+
+ int xpos = start.x();
+ int ypos = start.y();
+
+ MidiController::ControllerType type = midiControllerType(_controller->num());
+
+ switch (activeTool) {
+ case PointerTool:
+ drag = DRAG_LASSO_START;
+ break;
+
+ case PencilTool:
+ if (shift) {
+ if (type != MidiController::Velo) {
+ drag = DRAG_NEW;
+ song->startUndo();
+ newVal(xpos, xpos, ypos);
+ }
+ }
+ else {
+ drag = DRAG_RESIZE;
+ song->startUndo();
+ changeVal(xpos, xpos, ypos);
+ }
+ break;
+
+ case RubberTool:
+ if (type != MidiController::Velo) {
+ drag = DRAG_DELETE;
+ song->startUndo();
+ deleteVal(xpos, xpos, ypos);
+ }
+ break;
+
+ case DrawTool:
+ if (drawLineMode) {
+ line2x = xpos;
+ line2y = ypos;
+ if (shift)
+ newValRamp(line1x, line1y, line2x, line2y);
+ else
+ changeValRamp(line1x, line1y, line2x, line2y);
+ drawLineMode = false;
+ }
+ else {
+ line2x = line1x = xpos;
+ line2y = line1y = ypos;
+ drawLineMode = true;
+ }
+ redraw();
+ break;
+
+ default:
+ break;
+ }
+ }
+
+//---------------------------------------------------------
+// newValRamp
+//---------------------------------------------------------
+
+void CtrlCanvas::newValRamp(int x1, int y1, int x2, int y2)
+ {
+ int xx1 = editor->rasterVal1(x1);
+ int xx2 = editor->rasterVal2(x2);
+ int type = _controller->num();
+
+ int raster = editor->raster();
+ if (raster == 1) // set reasonable raster
+ raster = config.division/4;
+
+ song->startUndo();
+
+ // delete existing events
+
+ int lastpv = CTRL_VAL_UNKNOWN;
+ for (ciCEvent i = items.begin(); i != items.end(); ++i) {
+ CEvent* ev = *i;
+ if(ev->part() != curPart)
+ continue;
+ Event event = ev->event();
+ if (event.empty())
+ continue;
+ int x = event.tick() + curPart->tick();
+ // Added by Tim. p3.3.6
+ //printf("CtrlCanvas::newValRamp x:%d xx1:%d xx2:%d len:%d\n", x, xx1, xx2, curPart->lenTick());
+
+ if (x < xx1)
+ {
+ // if(event.dataB() != CTRL_VAL_UNKNOWN)
+ // lastpv = event.dataB();
+ continue;
+ }
+ //if (x <= xx1)
+ //{
+ // if(type == CTRL_PROGRAM && event.dataB() != CTRL_VAL_UNKNOWN && ((event.dataB() & 0xffffff) != 0xffffff))
+ // lastpv = event.dataB();
+ // if (x < xx1)
+ // continue;
+ //}
+ if (x >= xx2)
+ break;
+
+ // Indicate no undo, and do port controller values and clone parts.
+ //audio->msgDeleteEvent(event, ev->part(), false);
+ audio->msgDeleteEvent(event, curPart, false, true, true);
+ }
+
+ //if(type == CTRL_PROGRAM && lastpv == CTRL_VAL_UNKNOWN)
+ if(ctrl)
+ lastpv = ctrl->hwVal();
+
+ // insert new events
+ for (int x = xx1; x < xx2; x += raster) {
+ int y = (x2==x1) ? y1 : (((y2-y1)*(x-x1))/(x2-x1))+y1;
+ int nval = computeVal(_controller, y, height());
+ int tick = x - curPart->tick();
+ // Do not add events which are past the end of the part.
+ if((unsigned)tick >= curPart->lenTick())
+ break;
+ Event event(Controller);
+ event.setTick(tick);
+ event.setA(_didx);
+ if(type == CTRL_PROGRAM)
+ {
+ if(lastpv == CTRL_VAL_UNKNOWN)
+ {
+ if(song->mtype() == MT_GM)
+ event.setB(0xffff00 | (nval - 1));
+ else
+ event.setB(nval - 1);
+ }
+ else
+ event.setB((lastpv & 0xffff00) | (nval - 1));
+ }
+ else
+ event.setB(nval);
+
+ // Indicate no undo, and do port controller values and clone parts.
+ //audio->msgAddEvent(event, curPart, false);
+ audio->msgAddEvent(event, curPart, false, true, true);
+ }
+
+ song->update(0);
+ redraw();
+ song->endUndo(SC_EVENT_MODIFIED | SC_EVENT_INSERTED | SC_EVENT_REMOVED);
+ }
+
+//---------------------------------------------------------
+// changeValRamp
+//---------------------------------------------------------
+
+void CtrlCanvas::changeValRamp(int x1, int y1, int x2, int y2)
+ {
+ int h = height();
+ bool changed = false;
+ int type = _controller->num();
+ //int xx1 = editor->rasterVal1(x1);
+
+ song->startUndo();
+ for (ciCEvent i = items.begin(); i != items.end(); ++i) {
+ if ((*i)->contains(x1, x2)) {
+ //if ((*i)->contains(xx1, x2)) {
+ CEvent* ev = *i;
+ if(ev->part() != curPart)
+ continue;
+ Event event = ev->event();
+ if (event.empty())
+ continue;
+
+ //MidiPart* part = ev->part();
+ //int x = event.tick() + ev->part()->tick();
+ int x = event.tick() + curPart->tick();
+ int y = (x2==x1) ? y1 : (((y2-y1)*(x-x1))/(x2-x1))+y1;
+ int nval = computeVal(_controller, y, h);
+ if(type == CTRL_PROGRAM)
+ {
+ if(event.dataB() == CTRL_VAL_UNKNOWN)
+ {
+ --nval;
+ if(song->mtype() == MT_GM)
+ nval |= 0xffff00;
+ }
+ else
+ nval = (event.dataB() & 0xffff00) | (nval - 1);
+ }
+
+ ev->setVal(nval);
+
+ //MidiController::ControllerType type = midiControllerType(_controller->num());
+ //if (type == MidiController::Velo) {
+ if (type == CTRL_VELOCITY) {
+ if ((event.velo() != nval)) {
+ Event newEvent = event.clone();
+ newEvent.setVelo(nval);
+ // Indicate no undo, and do not do port controller values and clone parts.
+ //audio->msgChangeEvent(event, newEvent, part, false);
+ audio->msgChangeEvent(event, newEvent, curPart, false, false, false);
+ ev->setEvent(newEvent);
+ changed = true;
+ }
+ }
+ else {
+ if (!event.empty()) {
+ if ((event.dataB() != nval)) {
+ Event newEvent = event.clone();
+ newEvent.setB(nval);
+ // Indicate no undo, and do port controller values and clone parts.
+ //audio->msgChangeEvent(event, newEvent, part, false);
+ audio->msgChangeEvent(event, newEvent, curPart, false, true, true);
+ ev->setEvent(newEvent);
+ changed = true;
+ }
+ }
+ else {
+ //if(!ctrl)
+ //{
+ // ctrl =
+ //}
+
+ // Removed by T356. Never gets here? A good thing, don't wan't auto-create values.
+ //int oval = ctrl->value(0);
+ //if (oval != nval) {
+ // Changed by T356.
+ //ctrl->add(0, nval);
+ // ctrl->add(0, nval, part);
+ // changed = true;
+ // }
+
+ }
+ }
+ }
+ }
+ if (changed)
+ redraw();
+ song->endUndo(SC_EVENT_MODIFIED);
+ }
+
+//---------------------------------------------------------
+// viewMouseMoveEvent
+//---------------------------------------------------------
+
+void CtrlCanvas::viewMouseMoveEvent(QMouseEvent* event)
+ {
+ QPoint pos = event->pos();
+ QPoint dist = pos - start;
+ bool moving = dist.y() >= 3 || dist.y() <= 3 || dist.x() >= 3 || dist.x() <= 3;
+ switch (drag) {
+ case DRAG_LASSO_START:
+ if (!moving)
+ break;
+ drag = DRAG_LASSO;
+ // weiter mit DRAG_LASSO:
+ case DRAG_LASSO:
+ lasso.setRect(start.x(), start.y(), dist.x(), dist.y());
+ redraw();
+ break;
+ case DRAG_RESIZE:
+ changeVal(start.x(), pos.x(), pos.y());
+ start = pos;
+ break;
+
+ case DRAG_NEW:
+ newVal(start.x(), pos.x(), pos.y());
+ start = pos;
+ break;
+
+ case DRAG_DELETE:
+ deleteVal(start.x(), pos.x(), pos.y());
+ start = pos;
+ break;
+
+ default:
+ break;
+ }
+ if (tool == DrawTool && drawLineMode) {
+ line2x = pos.x();
+ line2y = pos.y();
+ redraw();
+ }
+ emit xposChanged(pos.x());
+
+
+ int val = computeVal(_controller, pos.y(), height());
+ emit yposChanged(val);
+ }
+
+//---------------------------------------------------------
+// viewMouseReleaseEvent
+//---------------------------------------------------------
+
+void CtrlCanvas::viewMouseReleaseEvent(QMouseEvent* event)
+ {
+ bool shift = event->state() & Qt::ShiftButton;
+
+ switch (drag) {
+ case DRAG_RESIZE:
+ case DRAG_NEW:
+ case DRAG_DELETE:
+ song->endUndo(SC_EVENT_MODIFIED | SC_EVENT_INSERTED);
+ break;
+
+ case DRAG_LASSO_START:
+ lasso.setRect(-1, -1, -1, -1);
+
+ case DRAG_LASSO:
+ if (!shift)
+ deselectAll();
+ lasso = lasso.normalize();
+ for (iCEvent i = items.begin(); i != items.end(); ++i) {
+#if 0
+ if ((*i)->intersects(lasso)) {
+ if (shift && (*i)->isSelected())
+ deselectItem(*i);
+ else
+ selectItem(*i);
+ }
+#endif
+ }
+ drag = DRAG_OFF;
+ redraw();
+ break;
+
+ default:
+ break;
+ }
+ drag = DRAG_OFF;
+ }
+
+//---------------------------------------------------------
+// changeVal
+//---------------------------------------------------------
+
+void CtrlCanvas::changeVal(int x1, int x2, int y)
+ {
+ bool changed = false;
+ int newval = computeVal(_controller, y, height());
+ int type = _controller->num();
+ //int xx1 = editor->rasterVal1(x1);
+
+ for (ciCEvent i = items.begin(); i != items.end(); ++i) {
+ if (!(*i)->contains(x1, x2))
+ //if (!(*i)->contains(xx1, x2))
+ continue;
+ CEvent* ev = *i;
+ if(ev->part() != curPart)
+ continue;
+ Event event = ev->event();
+ //if(event.tick() >= curPart->lenTick())
+ // break;
+
+ //MidiPart* part = ev->part();
+ //int nval = newval;
+ //if(type == CTRL_PROGRAM)
+ //{
+ // if(event.dataB() == CTRL_VAL_UNKNOWN)
+ // {
+ // --nval;
+ // if(song->mtype() == MT_GM)
+ // nval |= 0xffff00;
+ // }
+ // else
+ // nval = (event.dataB() & 0xffff00) | (nval - 1);
+ //}
+ //ev->setVal(nval);
+
+ //MidiController::ControllerType type = midiControllerType(_controller->num());
+ //if (type == MidiController::Velo) {
+ if (type == CTRL_VELOCITY) {
+ if ((event.velo() != newval)) {
+ ev->setVal(newval);
+ Event newEvent = event.clone();
+ newEvent.setVelo(newval);
+ // Indicate no undo, and do not do port controller values and clone parts.
+ //audio->msgChangeEvent(event, newEvent, part, false);
+ audio->msgChangeEvent(event, newEvent, curPart, false, false, false);
+ ev->setEvent(newEvent);
+ changed = true;
+ }
+ }
+ else {
+ if (!event.empty()) {
+ int nval = newval;
+ if(type == CTRL_PROGRAM)
+ {
+ if(event.dataB() == CTRL_VAL_UNKNOWN)
+ {
+ --nval;
+ if(song->mtype() == MT_GM)
+ nval |= 0xffff00;
+ }
+ else
+ nval = (event.dataB() & 0xffff00) | (nval - 1);
+ }
+ ev->setVal(nval);
+
+ if ((event.dataB() != nval)) {
+ Event newEvent = event.clone();
+ newEvent.setB(nval);
+ // Indicate no undo, and do port controller values and clone parts.
+ //audio->msgChangeEvent(event, newEvent, part, false);
+ audio->msgChangeEvent(event, newEvent, curPart, false, true, true);
+ ev->setEvent(newEvent);
+ changed = true;
+ }
+ }
+ else {
+ //if(!ctrl)
+ //{
+ // ctrl =
+ //}
+
+ // Removed by T356. Never gets here? A good thing, don't wan't auto-create values.
+ //int oval = ctrl->value(0);
+ //if (oval != nval) {
+ // Changed by T356.
+ //ctrl->add(0, nval);
+ // ctrl->add(0, nval, part);
+ // changed = true;
+ // }
+ }
+ }
+ }
+ if (changed)
+ redraw();
+ }
+
+//---------------------------------------------------------
+// newVal
+//---------------------------------------------------------
+
+void CtrlCanvas::newVal(int x1, int x2, int y)
+ {
+ int xx1 = editor->rasterVal1(x1);
+ int xx2 = editor->rasterVal2(x2);
+ int newval = computeVal(_controller, y, height());
+ int type = _controller->num();
+
+ bool found = false;
+ bool song_changed = false;
+
+ int lastpv = CTRL_VAL_UNKNOWN;
+ if(ctrl)
+ lastpv = ctrl->hwVal();
+
+ for (ciCEvent i = items.begin(); i != items.end(); ++i) {
+ CEvent* ev = *i;
+ if(ev->part() != curPart)
+ continue;
+ //int partTick = ev->part()->tick();
+ int partTick = curPart->tick();
+ Event event = ev->event();
+ if (event.empty())
+ continue;
+ int ax = event.tick() + partTick;
+ // Added by Tim. p3.3.6
+ //printf("CtrlCanvas::newVal ax:%d xx1:%d xx2:%d len:%d\n", ax, xx1, xx2, curPart->lenTick());
+
+ if (ax < xx1)
+ continue;
+ //if(ax <= xx1)
+ //{
+ // if(type == CTRL_PROGRAM && event.dataB() != CTRL_VAL_UNKNOWN && ((event.dataB() & 0xffffff) != 0xffffff))
+ // lastpv = event.dataB();
+ // if(ax < xx1)
+ // continue;
+ //}
+ if (ax >= xx2)
+ break;
+
+ // Added by T356. Do not add events which are past the end of the part.
+ //if(event.tick() >= curPart->lenTick())
+ // break;
+
+ int nval = newval;
+ if(type == CTRL_PROGRAM)
+ {
+ if(event.dataB() == CTRL_VAL_UNKNOWN)
+ {
+ //if(lastpv == CTRL_VAL_UNKNOWN)
+ // lastpv = ctrl->hwVal();
+
+ if(lastpv == CTRL_VAL_UNKNOWN)
+ {
+ --nval;
+ if(song->mtype() == MT_GM)
+ nval |= 0xffff00;
+ }
+ else
+ nval = (lastpv & 0xffff00) | (nval - 1);
+ }
+ else
+ nval = (event.dataB() & 0xffff00) | (nval - 1);
+ }
+
+ if (ax == xx1) {
+ // change event
+ found = true;
+ ev->setVal(nval);
+ if ((event.dataB() != nval)) {
+ Event newEvent = event.clone();
+ newEvent.setB(nval);
+ // Added by Tim. p3.3.6
+ //printf("CtrlCanvas::newVal change xx1:%d xx2:%d len:%d\n", xx1, xx2, curPart->lenTick());
+
+ // Indicate no undo, and do port controller values and clone parts.
+ //audio->msgChangeEvent(event, newEvent, ev->part(), false);
+ audio->msgChangeEvent(event, newEvent, curPart, false, true, true);
+
+ ev->setEvent(newEvent);
+ song_changed = true;
+ }
+ }
+ else if (ax < xx2) {
+ // delete event
+ // Added by Tim. p3.3.6
+ //printf("CtrlCanvas::newVal delete xx1:%d xx2:%d len:%d\n", xx1, xx2, curPart->lenTick());
+
+ // Indicate no undo, and do port controller values and clone parts.
+ //audio->msgDeleteEvent(event, ev->part(), false);
+ audio->msgDeleteEvent(event, curPart, false, true, true);
+
+ song_changed = true;
+ }
+ }
+ if (!found) {
+ // new event
+ int tick = xx1 - curPart->tick();
+ // Do not add events which are past the end of the part.
+ if((unsigned)tick < curPart->lenTick())
+ {
+ Event event(Controller);
+ event.setTick(tick);
+ event.setA(_didx);
+ if(type == CTRL_PROGRAM)
+ {
+ if(lastpv == CTRL_VAL_UNKNOWN)
+ {
+ if(song->mtype() == MT_GM)
+ event.setB(0xffff00 | (newval - 1));
+ else
+ event.setB(newval - 1);
+ }
+ else
+ event.setB((lastpv & 0xffff00) | (newval - 1));
+ }
+ else
+ event.setB(newval);
+
+ // Indicate no undo, and do port controller values and clone parts.
+ //audio->msgAddEvent(event, curPart, false);
+ audio->msgAddEvent(event, curPart, false, true, true);
+
+ song_changed = true;
+ }
+ }
+ if (song_changed) {
+ songChanged(0);
+ return;
+ }
+ redraw();
+ }
+
+//---------------------------------------------------------
+// deleteVal
+//---------------------------------------------------------
+
+void CtrlCanvas::deleteVal(int x1, int x2, int)
+ {
+ int xx1 = editor->rasterVal1(x1);
+ int xx2 = editor->rasterVal2(x2);
+
+ int partTick = curPart->tick();
+ xx1 -= partTick;
+ xx2 -= partTick;
+
+ bool song_changed = false;
+ for (ciCEvent i = items.begin(); i != items.end(); ++i) {
+ CEvent* ev = *i;
+ if(ev->part() != curPart)
+ continue;
+ Event event = ev->event();
+ if (event.empty())
+ continue;
+ int x = event.tick();
+ if (x < xx1)
+ continue;
+ if (x >= xx2)
+ break;
+ if (!event.empty()) {
+ // Indicate no undo, and do port controller values and clone parts.
+ //audio->msgDeleteEvent(event, ev->part(), false);
+ audio->msgDeleteEvent(event, curPart, false, true, true);
+ song_changed = true;
+ }
+ }
+ if (song_changed) {
+ songChanged(0);
+ return;
+ }
+ }
+
+//---------------------------------------------------------
+// setTool
+//---------------------------------------------------------
+
+void CtrlCanvas::setTool(int t)
+ {
+ if (tool == Tool(t))
+ return;
+ tool = Tool(t);
+ switch(tool) {
+ case PencilTool:
+ setCursor(QCursor(*pencilIcon, 4, 15));
+ break;
+ case DrawTool:
+ drawLineMode = false;
+ break;
+ default:
+ setCursor(QCursor(Qt::arrowCursor));
+ break;
+ }
+ }
+
+//---------------------------------------------------------
+// pdrawItems
+//---------------------------------------------------------
+
+void CtrlCanvas::pdrawItems(QPainter& p, const QRect& rect, const MidiPart* part, bool velo, bool fg)
+{
+ int x = rect.x() - 1; // compensate for 3 pixel line width
+ int w = rect.width() + 2;
+ int wh = height();
+
+ if(velo)
+ {
+ for(iCEvent i = items.begin(); i != items.end(); ++i)
+ {
+ CEvent* e = *i;
+ // Draw selected part velocity events on top of unselected part events.
+ //if((fg && e->part() != part) || (!fg && e->part() == part))
+ if(e->part() != part)
+ continue;
+ int tick = mapx(e->event().tick() + e->part()->tick());
+ if (tick <= x)
+ continue;
+ if (tick > x+w)
+ break;
+ int y1 = wh - (e->val() * wh / 128);
+ // fg means 'draw selected parts'.
+ if(fg)
+ p.setPen(QPen(config.ctrlGraphFg, 3));
+ else
+ p.setPen(QPen(Qt::darkGray, 3));
+ p.drawLine(tick, wh, tick, y1);
+ }
+ }
+ else
+ {
+ MidiTrack* mt = part->track();
+ MidiPort* mp;
+
+ if((mt->type() == Track::DRUM) && (curDrumInstrument != -1) && ((_cnum & 0xff) == 0xff))
+ mp = &midiPorts[drumMap[curDrumInstrument].port];
+ else
+ mp = &midiPorts[mt->outPort()];
+
+ MidiController* mc = mp->midiController(_cnum);
+
+ int min;
+ int max;
+ int bias;
+ if(_cnum == CTRL_PROGRAM)
+ {
+ min = 1;
+ max = 128;
+ bias = 0;
+ }
+ else
+ {
+ min = mc->minVal();
+ max = mc->maxVal();
+ bias = mc->bias();
+ }
+ int x1 = rect.x();
+ int lval = CTRL_VAL_UNKNOWN;
+ noEvents=false;
+ for (iCEvent i = items.begin(); i != items.end(); ++i)
+ {
+ CEvent* e = *i;
+ // Draw unselected part controller events (lines) on top of selected part events (bars).
+ //if((fg && (e->part() == part)) || (!fg && (e->part() != part)))
+ if(e->part() != part)
+ {
+ continue;
+ }
+ Event ev = e->event();
+ int tick = mapx(!ev.empty() ? ev.tick() + e->part()->tick() : 0);
+ int val = e->val();
+ int pval = val;
+ if(_cnum == CTRL_PROGRAM)
+ {
+ if((val & 0xff) == 0xff)
+ // What to do here? prog = 0xff should not be allowed, but may still be encountered.
+ pval = 1;
+ else
+ pval = (val & 0x7f) + 1;
+ }
+ if (tick <= x) {
+ if (val == CTRL_VAL_UNKNOWN)
+ lval = CTRL_VAL_UNKNOWN;
+ else
+ {
+ if(_cnum == CTRL_PROGRAM)
+ lval = wh - ((pval - min - bias) * wh / (max - min));
+ else
+ lval = wh - ((val - min - bias) * wh / (max - min));
+ }
+ continue;
+ }
+ if (tick > x+w)
+ break;
+ if (lval == CTRL_VAL_UNKNOWN)
+ {
+ // fg means 'draw unselected parts'.
+ if(!fg)
+ p.fillRect(x1, 0, tick - x1, wh, Qt::darkGray);
+ }
+ else
+ {
+ if(fg)
+ {
+ p.setPen(Qt::gray);
+ p.drawLine(x1, lval, tick, lval);
+ }
+ else
+ p.fillRect(x1, lval, tick - x1, wh - lval, config.ctrlGraphFg);
+ }
+
+
+ x1 = tick;
+ if (val == CTRL_VAL_UNKNOWN)
+ lval = CTRL_VAL_UNKNOWN;
+ else
+ {
+ if(_cnum == CTRL_PROGRAM)
+ lval = wh - ((pval - min - bias) * wh / (max - min));
+ else
+ lval = wh - ((val - min - bias) * wh / (max - min));
+ }
+ }
+ if (lval == CTRL_VAL_UNKNOWN)
+ {
+ if(!fg) {
+ p.fillRect(x1, 0, (x+w) - x1, wh, Qt::darkGray);
+ noEvents=true;
+ }
+ }
+ else
+ {
+ if(fg)
+ {
+ p.setPen(Qt::gray);
+ p.drawLine(x1, lval, x + w, lval);
+ }
+ else
+ p.fillRect(x1, lval, (x+w) - x1, wh - lval, config.ctrlGraphFg);
+ }
+ }
+}
+
+//---------------------------------------------------------
+// pdraw
+//---------------------------------------------------------
+
+void CtrlCanvas::pdraw(QPainter& p, const QRect& rect)
+ {
+
+ int x = rect.x() - 1; // compensate for 3 pixel line width
+ int y = rect.y();
+ int w = rect.width() + 2;
+ int h = rect.height();
+
+
+ //---------------------------------------------------
+ // draw Canvas Items
+ //---------------------------------------------------
+
+ bool velo = (midiControllerType(_controller->num()) == MidiController::Velo);
+ if(!velo)
+ {
+ pdrawItems(p, rect, curPart, false, false);
+ }
+ for(iPart ip = editor->parts()->begin(); ip != editor->parts()->end(); ++ip)
+ {
+ MidiPart* part = (MidiPart*)(ip->second);
+ //if((velo && part == curPart) || (!velo && part != curPart))
+ if(part == curPart)
+ continue;
+ pdrawItems(p, rect, part, velo, !velo);
+ }
+ if(velo)
+ {
+ pdrawItems(p, rect, curPart, true, true);
+ }
+
+ p.save();
+ View::pdraw(p, rect);
+ p.restore();
+
+ //---------------------------------------------------
+ // draw marker
+ //---------------------------------------------------
+
+ int xp = mapx(pos[0]);
+ if (xp >= x && xp < x+w) {
+ p.setPen(Qt::red);
+ p.drawLine(xp, y, xp, y+h);
+ }
+ xp = mapx(pos[1]);
+ if (xp >= x && xp < x+w) {
+ p.setPen(Qt::blue);
+ p.drawLine(xp, y, xp, y+h);
+ }
+ xp = mapx(pos[2]);
+ if (xp >= x && xp < x+w) {
+ p.setPen(Qt::blue);
+ p.drawLine(xp, y, xp, y+h);
+ }
+
+ //---------------------------------------------------
+ // draw lasso
+ //---------------------------------------------------
+
+ if (drag == DRAG_LASSO) {
+ setPainter(p);
+ p.setPen(Qt::blue);
+ p.setBrush(Qt::NoBrush);
+ p.drawRect(lasso);
+ }
+ }
+
+//---------------------------------------------------------
+// drawOverlay
+//---------------------------------------------------------
+
+void CtrlCanvas::drawOverlay(QPainter& p)
+ {
+ QString s(_controller->name());
+ p.setFont(config.fonts[3]);
+ p.setPen(Qt::black);
+ QFontMetrics fm(config.fonts[3]);
+ int y = fm.lineSpacing() + 2;
+ p.drawText(2, y, s);
+ if (noEvents) {
+ p.setFont(config.fonts[3]);
+ p.setPen(Qt::black);
+ p.drawText(width()/2-100,height()/2-10, "Use shift + pencil or line tool to draw new events");
+ //p.drawText(2 , y * 2, "Use shift + pencil or line tool to draw new events");
+ }
+ }
+
+//---------------------------------------------------------
+// overlayRect
+// returns geometry of overlay rectangle
+//---------------------------------------------------------
+
+QRect CtrlCanvas::overlayRect() const
+ {
+ QFontMetrics fm(config.fonts[3]);
+ QRect r(fm.boundingRect(_controller ? _controller->name() : QString("")));
+ r.moveBy(2, 2); // top/left margin
+ return r;
+ }
+
+//---------------------------------------------------------
+// draw
+//---------------------------------------------------------
+
+void CtrlCanvas::draw(QPainter& p, const QRect& rect)
+ {
+ drawTickRaster(p, rect.x(), rect.y(),
+ //rect.width(), rect.height(), editor->quant());
+ rect.width(), rect.height(), editor->raster());
+
+ //---------------------------------------------------
+ // draw line tool
+ //---------------------------------------------------
+
+ if (drawLineMode && (tool == DrawTool)) {
+ p.setPen(Qt::black);
+ p.drawLine(line1x, line1y, line2x, line2y);
+ }
+ }
+
+//---------------------------------------------------------
+// setCurDrumInstrument
+//---------------------------------------------------------
+
+void CtrlCanvas::setCurDrumInstrument(int di)
+ {
+ curDrumInstrument = di;
+ //printf("CtrlCanvas::setCurDrumInstrument curDrumInstrument:%d\n", curDrumInstrument);
+
+ //
+ // check if current controller is only valid for
+ // a specific drum instrument
+ //
+ // Removed by T356.
+ //if(curTrack && (curTrack->type() == Track::DRUM) && ((_controller->num() & 0xff) == 0xff)) {
+ //if(curTrack && (curTrack->type() == Track::DRUM) && ((_cnum & 0xff) == 0xff)) {
+ // reset to default
+ // TODO: check, if new drum instrument has a similar controller
+ // configured
+ // _cnum = CTRL_VELOCITY;
+ // }
+ // Removed by T356
+ //songChanged(-1);
+ }
diff --git a/muse2/muse/ctrl/ctrlcanvas.h b/muse2/muse/ctrl/ctrlcanvas.h
new file mode 100644
index 00000000..bb17fafb
--- /dev/null
+++ b/muse2/muse/ctrl/ctrlcanvas.h
@@ -0,0 +1,165 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: ctrlcanvas.h,v 1.7.2.4 2009/06/01 20:15:53 spamatica Exp $
+// (C) Copyright 1999 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __CTRLCANVAS_H__
+#define __CTRLCANVAS_H__
+
+#include <list>
+
+
+#include "view.h"
+#include "tools.h"
+#include "midictrl.h"
+#include "event.h"
+//Added by qt3to4:
+#include <QMouseEvent>
+#include <QEvent>
+
+class Event;
+class MidiPart;
+class PartList;
+class MidiTrack;
+class MidiEditor;
+class QWidget;
+class CtrlPanel;
+
+//---------------------------------------------------------
+// CEvent
+// ''visual'' Controller Event
+//---------------------------------------------------------
+
+class CEvent {
+ Event _event;
+ int _val;
+ MidiPart* _part;
+ int ex;
+
+ public:
+ CEvent(Event e, MidiPart* part, int v);
+ Event event() const { return _event; }
+ void setEvent(Event& ev) { _event = ev; }
+ int val() const { return _val; }
+ void setVal(int v) { _val = v; }
+ void setEX(int v) { ex = v; }
+ MidiPart* part() const { return _part; }
+ bool contains(int x1, int x2) const;
+ int x() { return ex; }
+ };
+
+typedef std::list<CEvent*>::iterator iCEvent;
+typedef std::list<CEvent*>::const_iterator ciCEvent;
+
+//---------------------------------------------------------
+// CEventList
+// Controller Item List
+//---------------------------------------------------------
+
+class CEventList: public std::list<CEvent*> {
+ public:
+ void add(CEvent* item) { push_back(item); }
+
+ void clearDelete();
+ };
+
+//---------------------------------------------------------
+// CtrlCanvas
+//---------------------------------------------------------
+
+class CtrlCanvas : public View {
+ MidiEditor* editor;
+ MidiTrack* curTrack;
+ MidiPart* curPart;
+ MidiCtrlValList* ctrl;
+ MidiController* _controller;
+ CtrlPanel* _panel;
+ int _cnum;
+ // Current real drum controller number (anote).
+ int _dnum;
+ // Current real drum controller index.
+ int _didx;
+ int line1x;
+ int line1y;
+ int line2x;
+ int line2y;
+ bool drawLineMode;
+ bool noEvents;
+
+ void viewMousePressEvent(QMouseEvent* event);
+ void viewMouseMoveEvent(QMouseEvent*);
+ void viewMouseReleaseEvent(QMouseEvent*);
+
+ virtual void draw(QPainter&, const QRect&);
+ virtual void pdraw(QPainter&, const QRect&);
+ virtual void drawOverlay(QPainter& p);
+ virtual QRect overlayRect() const;
+
+ void changeValRamp(int x1, int x2, int y1, int y2);
+ void newValRamp(int x1, int y1, int x2, int y2);
+ void changeVal(int x1, int x2, int y);
+ void newVal(int x1, int x2, int y);
+ void deleteVal(int x1, int x2, int y);
+
+ bool setCurTrackAndPart();
+ void pdrawItems(QPainter&, const QRect&, const MidiPart*, bool, bool);
+ void partControllers(const MidiPart*, int, int*, int*, MidiController**, MidiCtrlValList**);
+
+ Q_OBJECT
+
+ protected:
+ enum DragMode { DRAG_OFF, DRAG_NEW, DRAG_MOVE_START, DRAG_MOVE,
+ DRAG_DELETE, DRAG_COPY_START, DRAG_COPY,
+ DRAG_RESIZE, DRAG_LASSO_START, DRAG_LASSO
+ };
+
+ CEventList items;
+ CEventList selection;
+ CEventList moving;
+ CEvent* curItem;
+
+ DragMode drag;
+ QRect lasso;
+ QPoint start;
+ Tool tool;
+ unsigned pos[3];
+ int curDrumInstrument; //Used by the drum-editor to view velocity of only one key (one drum)
+
+ void leaveEvent(QEvent*e);
+ QPoint raster(const QPoint&) const;
+
+ // selection
+ bool isSingleSelection() { return selection.size() == 1; }
+ void deselectAll();
+ void selectItem(CEvent* e);
+ void deselectItem(CEvent* e);
+
+ void setMidiController(int);
+ void updateItems();
+
+ private slots:
+ void songChanged(int type);
+ void setCurDrumInstrument(int);
+
+ public slots:
+ void setTool(int t);
+ void setPos(int, unsigned, bool adjustScrollbar);
+ void setController(int ctrl);
+
+ signals:
+ void followEvent(int);
+ void xposChanged(unsigned);
+ void yposChanged(int);
+
+ public:
+ CtrlCanvas(MidiEditor*, QWidget* parent, int,
+ const char* name = 0, CtrlPanel* pnl = 0);
+ void setPanel(CtrlPanel* pnl) { _panel = pnl; }
+ MidiCtrlValList* ctrlValList() { return ctrl; }
+ MidiController* controller() { return _controller; }
+ MidiTrack* track() const { return curTrack; }
+ };
+#endif
+
diff --git a/muse2/muse/ctrl/ctrledit.cpp b/muse2/muse/ctrl/ctrledit.cpp
new file mode 100644
index 00000000..bca9d550
--- /dev/null
+++ b/muse2/muse/ctrl/ctrledit.cpp
@@ -0,0 +1,134 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: ctrledit.cpp,v 1.4.2.2 2009/02/02 21:38:00 terminator356 Exp $
+// (C) Copyright 1999 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include <stdio.h>
+#include "ctrledit.h"
+#include "ctrlcanvas.h"
+#include "midieditor.h"
+#include "xml.h"
+#include "vscale.h"
+#include "ctrlpanel.h"
+#include "globals.h"
+#include "midiport.h"
+#include "instruments/minstrument.h"
+#include "gconfig.h"
+
+#include <qlayout.h>
+#include <qpainter.h>
+#include <qtoolbutton.h>
+#include <q3popupmenu.h>
+#include <qlabel.h>
+//Added by qt3to4:
+#include <Q3HBoxLayout>
+
+//---------------------------------------------------------
+// setTool
+//---------------------------------------------------------
+
+void CtrlEdit::setTool(int t)
+ {
+ canvas->setTool(t);
+ }
+
+//---------------------------------------------------------
+// CtrlEdit
+//---------------------------------------------------------
+
+CtrlEdit::CtrlEdit(QWidget* parent, MidiEditor* e, int xmag,
+ bool expand, const char* name) : QWidget(parent, name)
+ {
+ Q3HBoxLayout* hbox = new Q3HBoxLayout(this);
+ panel = new CtrlPanel(this, e, "panel");
+ canvas = new CtrlCanvas(e, this, xmag, "ctrlcanvas", panel);
+ QWidget* vscale = new VScale(this);
+
+ canvas->setOrigin(-(config.division/4), 0);
+
+ canvas->setMinimumHeight(50);
+
+ panel->setFixedWidth(CTRL_PANEL_FIXED_WIDTH);
+ hbox->addWidget(panel, expand ? 100 : 0, Qt::AlignRight);
+ hbox->addWidget(canvas, 100);
+ hbox->addWidget(vscale, 0);
+
+ connect(panel, SIGNAL(destroyPanel()), SLOT(destroy()));
+ connect(panel, SIGNAL(controllerChanged(int)), canvas, SLOT(setController(int)));
+ connect(canvas, SIGNAL(xposChanged(unsigned)), SIGNAL(timeChanged(unsigned)));
+ connect(canvas, SIGNAL(yposChanged(int)), SIGNAL(yposChanged(int)));
+ }
+
+//---------------------------------------------------------
+// writeStatus
+//---------------------------------------------------------
+
+void CtrlEdit::writeStatus(int level, Xml& xml)
+ {
+ if (canvas->controller()) {
+ xml.tag(level++, "ctrledit");
+ xml.strTag(level, "ctrl", canvas->controller()->name());
+ xml.tag(level, "/ctrledit");
+ }
+ }
+
+//---------------------------------------------------------
+// readStatus
+//---------------------------------------------------------
+
+void CtrlEdit::readStatus(Xml& xml)
+ {
+ 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 == "ctrl") {
+ QString name = xml.parse1();
+ int portno = canvas->track()->outPort();
+ MidiPort* port = &midiPorts[portno];
+ MidiInstrument* instr = port->instrument();
+ MidiControllerList* mcl = instr->controller();
+
+ for (iMidiController ci = mcl->begin(); ci != mcl->end(); ++ci) {
+ if (ci->second->name() == name) {
+ canvas->setController(ci->second->num());
+ break;
+ }
+ }
+ }
+ else
+ xml.unknown("CtrlEdit");
+ break;
+ case Xml::TagEnd:
+ if (tag == "ctrledit")
+ return;
+ default:
+ break;
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// destroy
+//---------------------------------------------------------
+
+void CtrlEdit::destroy()
+ {
+ emit destroyedCtrl(this);
+ close(true); // close and destroy widget
+ }
+
+//---------------------------------------------------------
+// setCanvasWidth
+//---------------------------------------------------------
+
+void CtrlEdit::setCanvasWidth(int w)
+{
+ canvas->setFixedWidth(w);
+}
diff --git a/muse2/muse/ctrl/ctrledit.h b/muse2/muse/ctrl/ctrledit.h
new file mode 100644
index 00000000..2af7c528
--- /dev/null
+++ b/muse2/muse/ctrl/ctrledit.h
@@ -0,0 +1,56 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: ctrledit.h,v 1.4.2.1 2008/05/21 00:28:53 terminator356 Exp $
+// (C) Copyright 1999 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __CTRL_EDIT_H__
+#define __CTRL_EDIT_H__
+
+#include <qwidget.h>
+//Added by qt3to4:
+#include <QLabel>
+#include "ctrlcanvas.h"
+#include "song.h"
+
+class MidiEditor;
+class QLabel;
+class QToolButton;
+class CtrlView;
+class CtrlPanel;
+class Xml;
+
+#define CTRL_PANEL_FIXED_WIDTH 40
+//---------------------------------------------------------
+// CtrlEdit
+//---------------------------------------------------------
+
+class CtrlEdit : public QWidget {
+ CtrlCanvas* canvas;
+ CtrlPanel* panel;
+ Q_OBJECT
+
+ private slots:
+ void destroy();
+
+ public slots:
+ void setTool(int tool);
+ void setXPos(int val) { canvas->setXPos(val); }
+ void setXMag(int val) { canvas->setXMag(val); }
+ void setCanvasWidth(int w);
+ signals:
+ void timeChanged(unsigned);
+ void destroyedCtrl(CtrlEdit*);
+ void enterCanvas();
+ void yposChanged(int);
+
+ public:
+ CtrlEdit(QWidget*, MidiEditor* e, int xmag,
+ bool expand = false, const char* name = 0);
+ void readStatus(Xml&);
+ void writeStatus(int, Xml&);
+ };
+
+#endif
+
diff --git a/muse2/muse/ctrl/ctrlpanel.cpp b/muse2/muse/ctrl/ctrlpanel.cpp
new file mode 100644
index 00000000..820e6428
--- /dev/null
+++ b/muse2/muse/ctrl/ctrlpanel.cpp
@@ -0,0 +1,694 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: ctrlpanel.cpp,v 1.10.2.9 2009/06/14 05:24:45 terminator356 Exp $
+// (C) Copyright 1999-2004 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include <stdio.h>
+#include <list>
+
+#include "ctrlpanel.h"
+#include "ctrlcanvas.h"
+
+#include <qlayout.h>
+#include <qpushbutton.h>
+#include <q3popupmenu.h>
+#include <qlabel.h>
+#include <qtooltip.h>
+#include <qsizepolicy.h>
+#include <qtimer.h>
+//Added by qt3to4:
+#include <Q3HBoxLayout>
+#include <Q3VBoxLayout>
+#include <math.h>
+
+#include "globals.h"
+#include "midictrl.h"
+#include "instruments/minstrument.h"
+#include "midiport.h"
+#include "xml.h"
+#include "icons.h"
+#include "event.h"
+#include "midieditor.h"
+#include "track.h"
+#include "part.h"
+#include "midiedit/drummap.h"
+#include "gconfig.h"
+#include "song.h"
+#include "knob.h"
+#include "doublelabel.h"
+#include "midi.h"
+#include "audio.h"
+
+//---------------------------------------------------------
+// CtrlPanel
+//---------------------------------------------------------
+
+CtrlPanel::CtrlPanel(QWidget* parent, MidiEditor* e, const char* name)
+ : QWidget(parent, name)
+ {
+ inHeartBeat = true;
+ editor = e;
+ setSizePolicy(QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding));
+ Q3VBoxLayout* vbox = new Q3VBoxLayout(this);
+ Q3HBoxLayout* bbox = new Q3HBoxLayout(vbox);
+ vbox->addStretch();
+ Q3HBoxLayout* kbox = new Q3HBoxLayout(vbox);
+ Q3HBoxLayout* dbox = new Q3HBoxLayout(vbox);
+ vbox->addStretch();
+ selCtrl = new QPushButton(tr("S"), this, "selCtrl");
+ selCtrl->setFont(config.fonts[3]);
+ selCtrl->setFixedHeight(20);
+ selCtrl->setSizePolicy(
+ QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed));
+ QToolTip::add(selCtrl, tr("select controller"));
+ pop = new Q3PopupMenu(selCtrl);
+
+ // destroy button
+ QPushButton* destroy = new QPushButton(tr("X"), this, "destroy");
+ destroy->setFont(config.fonts[3]);
+ destroy->setFixedHeight(20);
+ destroy->setSizePolicy(
+ QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed));
+ QToolTip::add(destroy, tr("remove panel"));
+ // Cursor Position
+ connect(selCtrl, SIGNAL(clicked()), SLOT(ctrlPopup()));
+ connect(destroy, SIGNAL(clicked()), SIGNAL(destroyPanel()));
+
+ _track = 0;
+ _ctrl = 0;
+ _val = CTRL_VAL_UNKNOWN;
+ _dnum = -1;
+
+ _knob = new Knob(this);
+ _knob->setFixedWidth(25);
+ _knob->setFixedHeight(25);
+ QToolTip::add(_knob, tr("manual adjust"));
+ _knob->setRange(0.0, 127.0, 1.0);
+ _knob->setValue(0.0);
+ _knob->setEnabled(false);
+ _knob->hide();
+ _knob->setAltFaceColor(Qt::red);
+
+ _dl = new DoubleLabel(-1.0, 0.0, +127.0, this);
+ _dl->setPrecision(0);
+ QToolTip::add(_dl, tr("double click on/off"));
+ _dl->setSpecialText(tr("off"));
+ _dl->setFont(config.fonts[1]);
+ _dl->setBackgroundMode(Qt::PaletteMid);
+ _dl->setFrame(true);
+ _dl->setFixedWidth(36);
+ _dl->setFixedHeight(15);
+ _dl->setEnabled(false);
+ _dl->hide();
+
+ connect(_knob, SIGNAL(sliderMoved(double,int)), SLOT(ctrlChanged(double)));
+ connect(_knob, SIGNAL(sliderRightClicked(const QPoint&, int)), SLOT(ctrlRightClicked(const QPoint&, int)));
+ //connect(_knob, SIGNAL(sliderReleased(int)), SLOT(ctrlReleased(int)));
+ connect(_dl, SIGNAL(valueChanged(double,int)), SLOT(ctrlChanged(double)));
+ connect(_dl, SIGNAL(doubleClicked(int)), SLOT(labelDoubleClicked()));
+
+ bbox->addStretch();
+ bbox->addWidget(selCtrl);
+ bbox->addWidget(destroy);
+ bbox->addStretch();
+ kbox->addStretch();
+ kbox->addWidget(_knob);
+ kbox->addStretch();
+ dbox->addStretch();
+ dbox->addWidget(_dl);
+ dbox->addStretch();
+ connect(heartBeatTimer, SIGNAL(timeout()), SLOT(heartBeat()));
+ inHeartBeat = false;
+ }
+//---------------------------------------------------------
+// heartBeat
+//---------------------------------------------------------
+
+void CtrlPanel::heartBeat()
+{
+ inHeartBeat = true;
+
+ if(_track && _ctrl && _dnum != -1)
+ {
+ //if(_dnum != CTRL_VELOCITY && _dnum != CTRL_PROGRAM)
+ if(_dnum != CTRL_VELOCITY)
+ {
+ int outport;
+ int chan;
+ int cdi = editor->curDrumInstrument();
+ if(_track->type() == Track::DRUM && ((_ctrl->num() & 0xff) == 0xff) && cdi != -1)
+ {
+ outport = drumMap[cdi].port;
+ chan = drumMap[cdi].channel;
+ }
+ else
+ {
+ outport = _track->outPort();
+ chan = _track->outChannel();
+ }
+ MidiPort* mp = &midiPorts[outport];
+
+ int v = mp->hwCtrlState(chan, _dnum);
+ if(v == CTRL_VAL_UNKNOWN)
+ {
+ // DoubleLabel ignores the value if already set...
+ _dl->setValue(_dl->off() - 1.0);
+ _val = CTRL_VAL_UNKNOWN;
+ v = mp->lastValidHWCtrlState(chan, _dnum);
+ if(v != CTRL_VAL_UNKNOWN && ((_dnum != CTRL_PROGRAM) || ((v & 0xff) != 0xff) ))
+ {
+ if(_dnum == CTRL_PROGRAM)
+ v = (v & 0x7f) + 1;
+ else
+ // Auto bias...
+ v -= _ctrl->bias();
+ if(double(v) != _knob->value())
+ {
+ // Added by Tim. p3.3.6
+ //printf("CtrlPanel::heartBeat setting knob\n");
+
+ _knob->setValue(double(v));
+ }
+ }
+ }
+ else
+ if(v != _val)
+ {
+ _val = v;
+ if(v == CTRL_VAL_UNKNOWN || ((_dnum == CTRL_PROGRAM) && ((v & 0xff) == 0xff) ))
+ {
+ // DoubleLabel ignores the value if already set...
+ //_dl->setValue(double(_ctrl->minVal() - 1));
+ _dl->setValue(_dl->off() - 1.0);
+ }
+ else
+ {
+ if(_dnum == CTRL_PROGRAM)
+ v = (v & 0x7f) + 1;
+ else
+ // Auto bias...
+ v -= _ctrl->bias();
+
+ // Added by Tim. p3.3.6
+ //printf("CtrlPanel::heartBeat setting knob and label\n");
+
+ _knob->setValue(double(v));
+ _dl->setValue(double(v));
+ }
+ }
+ }
+ }
+
+ inHeartBeat = false;
+}
+
+//---------------------------------------------------------
+// labelDoubleClicked
+//---------------------------------------------------------
+
+void CtrlPanel::labelDoubleClicked()
+{
+ if(!_track || !_ctrl || _dnum == -1)
+ return;
+
+ int outport;
+ int chan;
+ int cdi = editor->curDrumInstrument();
+ if(_track->type() == Track::DRUM && ((_ctrl->num() & 0xff) == 0xff) && cdi != -1)
+ {
+ outport = drumMap[cdi].port;
+ chan = drumMap[cdi].channel;
+ }
+ else
+ {
+ outport = _track->outPort();
+ chan = _track->outChannel();
+ }
+ MidiPort* mp = &midiPorts[outport];
+ int lastv = mp->lastValidHWCtrlState(chan, _dnum);
+
+ int curv = mp->hwCtrlState(chan, _dnum);
+
+ if(_dnum == CTRL_PROGRAM)
+ {
+ if(curv == CTRL_VAL_UNKNOWN || ((curv & 0xffffff) == 0xffffff))
+ {
+ // If no value has ever been set yet, use the current knob value
+ // (or the controller's initial value?) to 'turn on' the controller.
+ if(lastv == CTRL_VAL_UNKNOWN || ((lastv & 0xffffff) == 0xffffff))
+ {
+ //int kiv = _ctrl->initVal());
+ int kiv = lrint(_knob->value());
+ --kiv;
+ kiv &= 0x7f;
+ kiv |= 0xffff00;
+ //MidiPlayEvent ev(song->cpos(), outport, chan, ME_CONTROLLER, _dnum, kiv);
+ MidiPlayEvent ev(0, outport, chan, ME_CONTROLLER, _dnum, kiv);
+ audio->msgPlayMidiEvent(&ev);
+ }
+ else
+ {
+ //MidiPlayEvent ev(song->cpos(), outport, chan, ME_CONTROLLER, _dnum, lastv);
+ MidiPlayEvent ev(0, outport, chan, ME_CONTROLLER, _dnum, lastv);
+ audio->msgPlayMidiEvent(&ev);
+ }
+ }
+ else
+ {
+ //if((curv & 0xffff00) == 0xffff00)
+ //{
+ ////if(mp->hwCtrlState(chan, _dnum) != CTRL_VAL_UNKNOWN)
+ audio->msgSetHwCtrlState(mp, chan, _dnum, CTRL_VAL_UNKNOWN);
+ //}
+ //else
+ //{
+ // MidiPlayEvent ev(song->cpos(), outport, chan, ME_CONTROLLER, _dnum, (curv & 0xffff00) | 0xff);
+ // audio->msgPlayMidiEvent(&ev);
+ //}
+ }
+ }
+ else
+ {
+ if(curv == CTRL_VAL_UNKNOWN)
+ {
+ // If no value has ever been set yet, use the current knob value
+ // (or the controller's initial value?) to 'turn on' the controller.
+ if(lastv == CTRL_VAL_UNKNOWN)
+ {
+ //int kiv = _ctrl->initVal());
+ int kiv = lrint(_knob->value());
+ if(kiv < _ctrl->minVal())
+ kiv = _ctrl->minVal();
+ if(kiv > _ctrl->maxVal())
+ kiv = _ctrl->maxVal();
+ kiv += _ctrl->bias();
+ //MidiPlayEvent ev(song->cpos(), outport, chan, ME_CONTROLLER, _dnum, kiv);
+ MidiPlayEvent ev(0, outport, chan, ME_CONTROLLER, _dnum, kiv);
+ audio->msgPlayMidiEvent(&ev);
+ }
+ else
+ {
+ //MidiPlayEvent ev(song->cpos(), outport, chan, ME_CONTROLLER, _dnum, lastv);
+ MidiPlayEvent ev(0, outport, chan, ME_CONTROLLER, _dnum, lastv);
+ audio->msgPlayMidiEvent(&ev);
+ }
+ }
+ else
+ {
+ //if(mp->hwCtrlState(chan, _dnum) != CTRL_VAL_UNKNOWN)
+ audio->msgSetHwCtrlState(mp, chan, _dnum, CTRL_VAL_UNKNOWN);
+ }
+ }
+ song->update(SC_MIDI_CONTROLLER);
+}
+
+//---------------------------------------------------------
+// ctrlChanged
+//---------------------------------------------------------
+
+void CtrlPanel::ctrlChanged(double val)
+ {
+ if (inHeartBeat)
+ return;
+ if(!_track || !_ctrl || _dnum == -1)
+ return;
+
+ int ival = lrint(val);
+
+ int outport;
+ int chan;
+ int cdi = editor->curDrumInstrument();
+ if(_track->type() == Track::DRUM && ((_ctrl->num() & 0xff) == 0xff) && cdi != -1)
+ {
+ outport = drumMap[cdi].port;
+ chan = drumMap[cdi].channel;
+ }
+ else
+ {
+ outport = _track->outPort();
+ chan = _track->outChannel();
+ }
+ MidiPort* mp = &midiPorts[outport];
+ int curval = mp->hwCtrlState(chan, _dnum);
+
+ if(_dnum == CTRL_PROGRAM)
+ {
+ --ival;
+ ival &= 0x7f;
+
+ if(curval == CTRL_VAL_UNKNOWN)
+ ival |= 0xffff00;
+ else
+ ival |= (curval & 0xffff00);
+ //MidiPlayEvent ev(song->cpos(), outport, chan, ME_CONTROLLER, _dnum, ival);
+ MidiPlayEvent ev(0, outport, chan, ME_CONTROLLER, _dnum, ival);
+ audio->msgPlayMidiEvent(&ev);
+ }
+ else
+ // Shouldn't happen, but...
+ if((ival < _ctrl->minVal()) || (ival > _ctrl->maxVal()))
+ {
+ //if(mp->hwCtrlState(chan, _dnum) != CTRL_VAL_UNKNOWN)
+ if(curval != CTRL_VAL_UNKNOWN)
+ audio->msgSetHwCtrlState(mp, chan, _dnum, CTRL_VAL_UNKNOWN);
+ }
+ else
+ {
+ // Auto bias...
+ ival += _ctrl->bias();
+
+ //MidiPlayEvent ev(song->cpos(), outport, chan, ME_CONTROLLER, _dnum, ival);
+ MidiPlayEvent ev(0, outport, chan, ME_CONTROLLER, _dnum, ival);
+ audio->msgPlayMidiEvent(&ev);
+ }
+ song->update(SC_MIDI_CONTROLLER);
+ }
+
+//---------------------------------------------------------
+// setHWController
+//---------------------------------------------------------
+
+void CtrlPanel::setHWController(MidiTrack* t, MidiController* ctrl)
+{
+ inHeartBeat = true;
+
+ _track = t; _ctrl = ctrl;
+
+ if(!_track || !_ctrl)
+ {
+ _knob->setEnabled(false);
+ _dl->setEnabled(false);
+ _knob->hide();
+ _dl->hide();
+ inHeartBeat = false;
+ return;
+ }
+
+ MidiPort* mp;
+ int ch;
+ int cdi = editor->curDrumInstrument();
+ _dnum = _ctrl->num();
+ if(_track->type() == Track::DRUM && ((_dnum & 0xff) == 0xff) && cdi != -1)
+ {
+ _dnum = (_dnum & ~0xff) | drumMap[cdi].anote;
+ mp = &midiPorts[drumMap[cdi].port];
+ ch = drumMap[cdi].channel;
+ }
+ else
+ {
+ mp = &midiPorts[_track->outPort()];
+ ch = _track->outChannel();
+ }
+
+ //if(_dnum == CTRL_VELOCITY || _dnum == CTRL_PROGRAM)
+ if(_dnum == CTRL_VELOCITY)
+ {
+ _knob->setEnabled(false);
+ _dl->setEnabled(false);
+ _knob->hide();
+ _dl->hide();
+ }
+ else
+ {
+ _knob->setEnabled(true);
+ _dl->setEnabled(true);
+ double dlv;
+ int mn; int mx; int v;
+ if(_dnum == CTRL_PROGRAM)
+ {
+ mn = 1;
+ mx = 128;
+ v = mp->hwCtrlState(ch, _dnum);
+ _val = v;
+ _knob->setRange(double(mn), double(mx), 1.0);
+ _dl->setRange(double(mn), double(mx));
+ //_dl->setOff(double(mn - 1));
+ if(v == CTRL_VAL_UNKNOWN || ((v & 0xffffff) == 0xffffff))
+ {
+ int lastv = mp->lastValidHWCtrlState(ch, _dnum);
+ if(lastv == CTRL_VAL_UNKNOWN || ((lastv & 0xffffff) == 0xffffff))
+ {
+ int initv = _ctrl->initVal();
+ if(initv == CTRL_VAL_UNKNOWN || ((initv & 0xffffff) == 0xffffff))
+ v = 1;
+ else
+ v = (initv + 1) & 0xff;
+ }
+ else
+ v = (lastv + 1) & 0xff;
+
+ if(v > 128)
+ v = 128;
+ //dlv = mn - 1;
+ dlv = _dl->off() - 1.0;
+ }
+ else
+ {
+ v = (v + 1) & 0xff;
+ if(v > 128)
+ v = 128;
+ dlv = double(v);
+ }
+ }
+ else
+ {
+ mn = _ctrl->minVal();
+ mx = _ctrl->maxVal();
+ v = mp->hwCtrlState(ch, _dnum);
+ _val = v;
+ _knob->setRange(double(mn), double(mx), 1.0);
+ _dl->setRange(double(mn), double(mx));
+ //_dl->setOff(double(mn - 1));
+ if(v == CTRL_VAL_UNKNOWN)
+ {
+ int lastv = mp->lastValidHWCtrlState(ch, _dnum);
+ if(lastv == CTRL_VAL_UNKNOWN)
+ {
+ if(_ctrl->initVal() == CTRL_VAL_UNKNOWN)
+ v = 0;
+ else
+ v = _ctrl->initVal();
+ }
+ else
+ v = lastv - _ctrl->bias();
+ //dlv = mn - 1;
+ dlv = _dl->off() - 1.0;
+ }
+ else
+ {
+ // Auto bias...
+ v -= _ctrl->bias();
+ dlv = double(v);
+ }
+ }
+ _knob->setValue(double(v));
+ _dl->setValue(dlv);
+
+ _knob->show();
+ _dl->show();
+ // Incomplete drawing sometimes. Update fixes it.
+ _knob->update();
+ _dl->update();
+ }
+
+ inHeartBeat = false;
+}
+
+//---------------------------------------------------------
+// setHeight
+//---------------------------------------------------------
+
+void CtrlPanel::setHeight(int h)
+ {
+ setFixedHeight(h);
+ }
+
+struct CI {
+ QString s;
+ bool used;
+ CI(const QString& ss, bool u) : s(ss), used(u) {}
+ };
+
+//---------------------------------------------------------
+// ctrlPopup
+//---------------------------------------------------------
+
+void CtrlPanel::ctrlPopup()
+ {
+ //---------------------------------------------------
+ // build list of midi controllers for current
+ // MidiPort/channel
+ //---------------------------------------------------
+
+ PartList* parts = editor->parts();
+ Part* part = editor->curCanvasPart();
+ MidiTrack* track = (MidiTrack*)(part->track());
+ int channel = track->outChannel();
+ MidiPort* port = &midiPorts[track->outPort()];
+ int curDrumInstrument = editor->curDrumInstrument();
+ bool isDrum = track->type() == Track::DRUM;
+
+ pop->clear();
+ pop->insertItem(tr("Velocity"), 1);
+
+ MidiCtrlValListList* cll = port->controller();
+ int min = channel << 24;
+ int max = min + 0x1000000;
+
+ std::list<CI> sList;
+ typedef std::list<CI>::iterator isList;
+
+ for (iMidiCtrlValList i = cll->lower_bound(min); i != cll->lower_bound(max); ++i) {
+ MidiCtrlValList* cl = i->second;
+ MidiController* c = port->midiController(cl->num());
+ // dont show drum specific controller if not a drum track
+ if ((c->num() & 0xff) == 0xff) {
+ if (!isDrum)
+ continue;
+ // only show controller for curDrumInstrument:
+ if ((cl->num() & 0xff) != drumMap[curDrumInstrument].anote) {
+ continue;
+ }
+ }
+ isList i = sList.begin();
+ for (; i != sList.end(); ++i) {
+ if (i->s == c->name())
+ break;
+ }
+ if (i == sList.end()) {
+ bool used = false;
+ for (iPart ip = parts->begin(); ip != parts->end(); ++ip) {
+ EventList* el = ip->second->events();
+ for (iEvent ie = el->begin(); ie != el->end(); ++ie) {
+ Event e = ie->second;
+ if ((e.type() == Controller) && (e.dataA() == cl->num())) {
+ used = true;
+ break;
+ }
+ }
+ if (used)
+ break;
+ }
+ sList.push_back(CI(c->name(), used));
+ }
+ }
+ for (isList i = sList.begin(); i != sList.end(); ++i) {
+ if (i->used)
+ pop->insertItem(QIcon(*greendotIcon), i->s);
+ else
+ pop->insertItem(i->s);
+ }
+
+ pop->insertItem(QIcon(*configureIcon), tr("add new ..."), 2);
+ int rv = pop->exec(selCtrl->mapToGlobal(QPoint(0,0)));
+ selCtrl->setDown(false);
+
+ if (rv == -1)
+ return;
+
+ QString s = pop->text(rv);
+ if (rv == 1) { // special case velocity
+ emit controllerChanged(CTRL_VELOCITY);
+ }
+ else if (rv == 2) {
+ //
+ // add new controller
+ //
+ Q3PopupMenu* pop1 = new Q3PopupMenu(this);
+ pop1->setCheckable(false);
+ //
+ // populate popup with all controllers available for
+ // current instrument
+ //
+ MidiInstrument* instr = port->instrument();
+ MidiControllerList* mcl = instr->controller();
+ for (iMidiController ci = mcl->begin(); ci != mcl->end(); ++ci)
+ {
+ int num = ci->second->num();
+ if (isDrum && ((num & 0xff) == 0xff))
+ num = (num & ~0xff) + drumMap[curDrumInstrument].anote;
+
+ if(cll->find(channel, num) == cll->end())
+ pop1->insertItem(ci->second->name());
+ }
+ int rv = pop1->exec(selCtrl->mapToGlobal(QPoint(0,0)));
+ if (rv != -1) {
+ QString s = pop1->text(rv);
+ MidiController* c;
+ for (iMidiController ci = mcl->begin(); ci != mcl->end(); ++ci) {
+ c = ci->second;
+ if (c->name() == s) {
+ int num = c->num();
+ if (isDrum && ((num & 0xff) == 0xff))
+ num = (num & ~0xff) + drumMap[curDrumInstrument].anote;
+
+ if(cll->find(channel, num) == cll->end())
+ {
+ MidiCtrlValList* vl = new MidiCtrlValList(num);
+
+ cll->add(channel, vl);
+ emit controllerChanged(c->num());
+ //song->update(SC_MIDI_CONTROLLER_ADD);
+ }
+ else
+ emit controllerChanged(c->num());
+ break;
+ }
+ }
+ }
+ }
+ else if (rv == -1)
+ return;
+ else {
+ QString s = pop->text(rv);
+ iMidiCtrlValList i = cll->begin();
+ for (; i != cll->end(); ++i) {
+ MidiCtrlValList* cl = i->second;
+ MidiController* c = port->midiController(cl->num());
+ if (c->name() == s) {
+ emit controllerChanged(c->num());
+ break;
+ }
+ }
+ if (i == cll->end()) {
+ printf("CtrlPanel: controller %s not found!", s.latin1());
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// ctrlRightClicked
+//---------------------------------------------------------
+
+void CtrlPanel::ctrlRightClicked(const QPoint& p, int /*id*/)
+{
+ //if(!_knob->selectedFaceColor())
+ // _knob->selectFaceColor(true);
+ //if(_dnum == -1)
+ // return;
+ if(!editor->curCanvasPart())
+ return;
+
+ int cdi = editor->curDrumInstrument();
+ int ctlnum = _ctrl->num();
+ if(_track->type() == Track::DRUM && ((ctlnum & 0xff) == 0xff) && cdi != -1)
+ //ctlnum = (ctlnum & ~0xff) | drumMap[cdi].enote;
+ ctlnum = (ctlnum & ~0xff) | cdi;
+
+ MidiPart* part = dynamic_cast<MidiPart*>(editor->curCanvasPart());
+ song->execMidiAutomationCtlPopup(0, part, p, ctlnum);
+}
+
+/*
+//---------------------------------------------------------
+// ctrlReleased
+//---------------------------------------------------------
+
+void CtrlPanel::ctrlReleased(int id)
+{
+ //if(_knob->selectedFaceColor())
+ // _knob->selectFaceColor(false);
+}
+*/
diff --git a/muse2/muse/ctrl/ctrlpanel.h b/muse2/muse/ctrl/ctrlpanel.h
new file mode 100644
index 00000000..8d3379c0
--- /dev/null
+++ b/muse2/muse/ctrl/ctrlpanel.h
@@ -0,0 +1,66 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: ctrlpanel.h,v 1.2.2.5 2009/06/10 00:34:59 terminator356 Exp $
+// (C) Copyright 1999-2001 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __CTRL_PANEL_H__
+#define __CTRL_PANEL_H__
+
+#include <qwidget.h>
+//Added by qt3to4:
+#include <Q3PopupMenu>
+#include <QLabel>
+
+class MidiController;
+class QLabel;
+class Q3PopupMenu;
+class QPushButton;
+class MidiEditor;
+class Knob;
+class DoubleLabel;
+class MidiPort;
+class MidiTrack;
+
+//---------------------------------------------------------
+// CtrlPanel
+//---------------------------------------------------------
+
+class CtrlPanel: public QWidget {
+ Q3PopupMenu* pop;
+ QPushButton* selCtrl;
+ MidiEditor* editor;
+
+ MidiTrack* _track;
+ MidiController* _ctrl;
+ int _dnum;
+ bool inHeartBeat;
+ Knob* _knob;
+ DoubleLabel* _dl;
+ int _val;
+
+ Q_OBJECT
+
+ signals:
+ void destroyPanel();
+ void controllerChanged(int);
+
+ private slots:
+ void ctrlChanged(double val);
+ void labelDoubleClicked();
+ void ctrlRightClicked(const QPoint& p, int id);
+ //void ctrlReleased(int id);
+
+ protected slots:
+ virtual void heartBeat();
+
+ public slots:
+ void setHeight(int);
+ void ctrlPopup();
+
+ public:
+ CtrlPanel(QWidget*, MidiEditor*, const char* name = 0);
+ void setHWController(MidiTrack* t, MidiController* ctrl);
+ };
+#endif
diff --git a/muse2/muse/debug.h b/muse2/muse/debug.h
new file mode 100644
index 00000000..7339a613
--- /dev/null
+++ b/muse2/muse/debug.h
@@ -0,0 +1,31 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: debug.h,v 1.1.1.1 2003/10/27 18:51:20 wschweer Exp $
+//=========================================================
+
+#ifndef __MUSE_DEBUG_H__
+#define __MUSE_DEBUG_H__
+
+#include <stdio.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/muse2/muse/default_click.h b/muse2/muse/default_click.h
new file mode 100644
index 00000000..7f074350
--- /dev/null
+++ b/muse2/muse/default_click.h
@@ -0,0 +1,1213 @@
+/*
+ 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 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.
+
+ $Id: default_click.h,v 1.1.2.1 2004/11/15 23:25:51 spamatica Exp $
+*/
+
+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/muse2/muse/device.h b/muse2/muse/device.h
new file mode 100644
index 00000000..f039fc11
--- /dev/null
+++ b/muse2/muse/device.h
@@ -0,0 +1,46 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: device.h,v 1.1.1.1 2003/10/27 18:51:58 wschweer Exp $
+//
+// (C) Copyright 1999/2000 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __DEVICE_H__
+#define __DEVICE_H__
+
+#include <qstring.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/muse2/muse/driver/Makefile.am b/muse2/muse/driver/Makefile.am
new file mode 100644
index 00000000..da3eba07
--- /dev/null
+++ b/muse2/muse/driver/Makefile.am
@@ -0,0 +1,10 @@
+include $(top_srcdir)/common.am
+
+noinst_LIBRARIES = libdriver.a
+
+AM_CXXFLAGS += $(JACK_CFLAGS)
+
+libdriver_a_SOURCES = audiodev.h alsamidi.cpp alsamidi.h jack.cpp jackaudio.h \
+ dummyaudio.cpp alsatimer.cpp alsatimer.h timerdev.h rtctimer.cpp rtctimer.h \
+ jackmidi.cpp jackmidi.h
+
diff --git a/muse2/muse/driver/Makefile.in b/muse2/muse/driver/Makefile.in
new file mode 100644
index 00000000..8c773db5
--- /dev/null
+++ b/muse2/muse/driver/Makefile.in
@@ -0,0 +1,595 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
+ $(top_srcdir)/common.am
+subdir = muse/driver
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal-include.m4 \
+ $(top_srcdir)/m4/alsa.m4 $(top_srcdir)/m4/docbook.m4 \
+ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
+ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
+ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+LIBRARIES = $(noinst_LIBRARIES)
+ARFLAGS = cru
+libdriver_a_AR = $(AR) $(ARFLAGS)
+libdriver_a_LIBADD =
+am_libdriver_a_OBJECTS = alsamidi.$(OBJEXT) jack.$(OBJEXT) \
+ dummyaudio.$(OBJEXT) alsatimer.$(OBJEXT) rtctimer.$(OBJEXT) \
+ jackmidi.$(OBJEXT)
+libdriver_a_OBJECTS = $(am_libdriver_a_OBJECTS)
+DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
+depcomp = $(SHELL) $(top_srcdir)/depcomp
+am__depfiles_maybe = depfiles
+am__mv = mv -f
+CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
+LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
+CXXLD = $(CXX)
+CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \
+ $(LDFLAGS) -o $@
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
+ $(LDFLAGS) -o $@
+SOURCES = $(libdriver_a_SOURCES)
+DIST_SOURCES = $(libdriver_a_SOURCES)
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ALSA_CFLAGS = @ALSA_CFLAGS@
+ALSA_LIBS = @ALSA_LIBS@
+AMTAR = @AMTAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DOCBOOKSTYLE = @DOCBOOKSTYLE@
+DOCBOOKTARGETS = @DOCBOOKTARGETS@
+DOT = @DOT@
+DOTPATH = @DOTPATH@
+DOXYGEN = @DOXYGEN@
+DOXYGEN_TREEVIEW = @DOXYGEN_TREEVIEW@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+FLUIDSYNTHDIRS = @FLUIDSYNTHDIRS@
+FST_CFLAGS = @FST_CFLAGS@
+FST_LIBS = @FST_LIBS@
+Fluidsynth_CFLAGS = @Fluidsynth_CFLAGS@
+Fluidsynth_LIBS = @Fluidsynth_LIBS@
+GIVERTCAP = @GIVERTCAP@
+GREP = @GREP@
+HAVEDOT = @HAVEDOT@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JACK_CFLAGS = @JACK_CFLAGS@
+JACK_LIBS = @JACK_LIBS@
+JADE = @JADE@
+LASH_CFLAGS = @LASH_CFLAGS@
+LASH_LIBS = @LASH_LIBS@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LO_CFLAGS = @LO_CFLAGS@
+LO_LIBS = @LO_LIBS@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+MUSECXXFLAGS = @MUSECXXFLAGS@
+NM = @NM@
+NMEDIT = @NMEDIT@
+NSGMLS = @NSGMLS@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PCH = @PCH@
+PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+PYTHON = @PYTHON@
+PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
+PYTHON_INCLUDES = @PYTHON_INCLUDES@
+PYTHON_LIB = @PYTHON_LIB@
+PYTHON_PLATFORM = @PYTHON_PLATFORM@
+PYTHON_PREFIX = @PYTHON_PREFIX@
+PYTHON_VERSION = @PYTHON_VERSION@
+QTDIR_BIN = @QTDIR_BIN@
+QTDIR_INC = @QTDIR_INC@
+QT_LIBS = @QT_LIBS@
+RANLIB = @RANLIB@
+SAMPLERATE_CFLAGS = @SAMPLERATE_CFLAGS@
+SAMPLERATE_LIBS = @SAMPLERATE_LIBS@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SNDFILE_CFLAGS = @SNDFILE_CFLAGS@
+SNDFILE_LIBS = @SNDFILE_LIBS@
+STRIP = @STRIP@
+SUIDBUILD = @SUIDBUILD@
+SUIDINSTALL = @SUIDINSTALL@
+USE_SSE = @USE_SSE@
+UUID_CFLAGS = @UUID_CFLAGS@
+UUID_LIBS = @UUID_LIBS@
+VERSION = @VERSION@
+XMKMF = @XMKMF@
+X_CFLAGS = @X_CFLAGS@
+X_EXTRA_LIBS = @X_EXTRA_LIBS@
+X_LIBS = @X_LIBS@
+X_PRE_LIBS = @X_PRE_LIBS@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+have_docbook = @have_docbook@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+lt_ECHO = @lt_ECHO@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+pkgpyexecdir = @pkgpyexecdir@
+pkgpythondir = @pkgpythondir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+pyexecdir = @pyexecdir@
+pythondir = @pythondir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+synth_fluid = @synth_fluid@
+synth_fluidsynth = @synth_fluidsynth@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+AM_CXXFLAGS = $(MUSECXXFLAGS) -I.. -I$(top_srcdir)/synti \
+ -I$(top_srcdir)/muse/widgets -DQT_SHARED -DQT_THREAD_SUPPORT \
+ -DQT_PLUGIN $(QTDIR_INC) -DQT3_SUPPORT $(JACK_CFLAGS)
+AM_CPPFLAGS =
+MOC = $(QTDIR_BIN)/moc
+#UIC = $(QTDIR_BIN)/uic3
+UIC = /usr/bin/uic3
+UIFILES = $(wildcard *.ui)
+MOCFILES = $(shell for h in $(filter %.h,$(SOURCES)); do \
+ if grep -q Q_OBJECT $$h; then \
+ echo $$h | sed "s/\(.*\)\.h/moc_\1.cpp/"; \
+ fi; \
+ done)
+
+BUILT_SOURCES = $(MOCFILES) $(UIFILES:%.ui=%.h)
+MOSTLYCLEANFILES = $(MOCFILES) $(UIFILES:%.ui=%.h)
+SUFFIXES = .ui .h.gch
+noinst_LIBRARIES = libdriver.a
+libdriver_a_SOURCES = audiodev.h alsamidi.cpp alsamidi.h jack.cpp jackaudio.h \
+ dummyaudio.cpp alsatimer.cpp alsatimer.h timerdev.h rtctimer.cpp rtctimer.h \
+ jackmidi.cpp jackmidi.h
+
+all: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) all-am
+
+.SUFFIXES:
+.SUFFIXES: .ui .h.gch .cpp .lo .o .obj
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/common.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu muse/driver/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu muse/driver/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+clean-noinstLIBRARIES:
+ -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
+libdriver.a: $(libdriver_a_OBJECTS) $(libdriver_a_DEPENDENCIES)
+ -rm -f libdriver.a
+ $(libdriver_a_AR) libdriver.a $(libdriver_a_OBJECTS) $(libdriver_a_LIBADD)
+ $(RANLIB) libdriver.a
+
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT)
+
+distclean-compile:
+ -rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/alsamidi.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/alsatimer.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dummyaudio.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/jack.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/jackmidi.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rtctimer.Po@am__quote@
+
+.cpp.o:
+@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $<
+
+.cpp.obj:
+@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+
+.cpp.lo:
+@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $<
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ mkid -fID $$unique
+tags: TAGS
+
+TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ set x; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: CTAGS
+CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) check-am
+all-am: Makefile $(LIBRARIES)
+installdirs:
+install: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+ -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES)
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+ -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
+clean: clean-am
+
+clean-am: clean-generic clean-libtool clean-noinstLIBRARIES \
+ mostlyclean-am
+
+distclean: distclean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+ distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+ mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: all check install install-am install-strip
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
+ clean-libtool clean-noinstLIBRARIES ctags distclean \
+ distclean-compile distclean-generic distclean-libtool \
+ distclean-tags distdir dvi dvi-am html html-am info info-am \
+ install install-am install-data install-data-am install-dvi \
+ install-dvi-am install-exec install-exec-am install-html \
+ install-html-am install-info install-info-am install-man \
+ install-pdf install-pdf-am install-ps install-ps-am \
+ install-strip installcheck installcheck-am installdirs \
+ maintainer-clean maintainer-clean-generic mostlyclean \
+ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
+ pdf pdf-am ps ps-am tags uninstall uninstall-am
+
+
+de:
+ @for base in $(MOCFILES); do echo -e "\t$${base}.cpp $${base}.h \\"; done
+
+nde:
+ @for base in $(MOCFILES); do echo -e "\tmoc_$${base}.cpp \\"; done
+
+.ui.o: %.h
+ $(UIC) -L $(top_srcdir)/muse/widgets -o $*.cpp -impl $*.h $*.ui
+ $(MOC) $*.h >> $*.cpp
+ $(CXXCOMPILE) -c $*.cpp -o $*.o
+ $(RM) $*.cpp moc_$*.cpp moc_$*.o
+
+.ui.lo: %.h
+ $(UIC) -L $(top_srcdir)/muse/widgets -o $*.cpp -impl $*.h $*.ui
+ $(MOC) $*.h >> $*.cpp
+ $(LTCXXCOMPILE) -c $*.cpp -o $*.lo
+ $(RM) $*.cpp moc_$*.cpp moc_$*.lo moc_$*.o
+
+moc_%.cpp: %.h
+ $(MOC) $< -o $@
+
+%.h: %.ui
+ $(UIC) -o $@ $<
+# $(UIC) -L $(top_srcdir)/muse/widgets -o $@ $<
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/muse2/muse/driver/alsamidi.cpp b/muse2/muse/driver/alsamidi.cpp
new file mode 100644
index 00000000..3b15fc6f
--- /dev/null
+++ b/muse2/muse/driver/alsamidi.cpp
@@ -0,0 +1,917 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: alsamidi.cpp,v 1.8.2.7 2009/11/19 04:20:33 terminator356 Exp $
+// (C) Copyright 2000-2001 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include <stdio.h>
+
+#include "alsamidi.h"
+#include "globals.h"
+#include "midi.h"
+#include "mididev.h"
+#include "../midiport.h"
+#include "../midiseq.h"
+#include "../midictrl.h"
+#include "../audio.h"
+#include "mpevent.h"
+//#include "sync.h"
+#include "utils.h"
+#include "audiodev.h"
+#include "xml.h"
+
+static int alsaSeqFdi = -1;
+static int alsaSeqFdo = -1;
+
+snd_seq_t* alsaSeq;
+static snd_seq_addr_t musePort;
+
+//---------------------------------------------------------
+// MidiAlsaDevice
+//---------------------------------------------------------
+
+MidiAlsaDevice::MidiAlsaDevice(const snd_seq_addr_t& a, const QString& n)
+ : MidiDevice(n)
+ {
+ adr = a;
+ init();
+ }
+
+//---------------------------------------------------------
+// selectWfd
+//---------------------------------------------------------
+
+int MidiAlsaDevice::selectWfd()
+ {
+ return alsaSeqFdo;
+ }
+
+//---------------------------------------------------------
+// open
+//---------------------------------------------------------
+
+QString MidiAlsaDevice::open()
+{
+ _openFlags &= _rwFlags; // restrict to available bits
+ snd_seq_port_subscribe_t* subs;
+ // Allocated on stack, no need to call snd_seq_port_subscribe_free() later.
+ snd_seq_port_subscribe_alloca(&subs);
+
+ QString estr;
+ int wer = 0;
+ int rer = 0;
+
+ // subscribe for writing
+ if (_openFlags & 1)
+ {
+ snd_seq_port_subscribe_set_sender(subs, &musePort);
+ snd_seq_port_subscribe_set_dest(subs, &adr);
+ // Not already subscribed (or error)? Then try subscribing.
+ if(snd_seq_get_port_subscription(alsaSeq, subs) < 0)
+ {
+ //int error = snd_seq_subscribe_port(alsaSeq, subs);
+ wer = snd_seq_subscribe_port(alsaSeq, subs);
+ //if (error < 0)
+ if(wer < 0)
+ //return QString("Play: ")+QString(snd_strerror(error));
+ estr += (QString("Play: ") + QString(snd_strerror(wer)) + QString(" "));
+ }
+ if(!wer)
+ _writeEnable = true;
+ }
+
+ // subscribe for reading
+ if (_openFlags & 2)
+ {
+ snd_seq_port_subscribe_set_dest(subs, &musePort);
+ snd_seq_port_subscribe_set_sender(subs, &adr);
+ // Not already subscribed (or error)? Then try subscribing.
+ if(snd_seq_get_port_subscription(alsaSeq, subs) < 0)
+ {
+ //int error = snd_seq_subscribe_port(alsaSeq, subs);
+ rer = snd_seq_subscribe_port(alsaSeq, subs);
+ //if (error < 0)
+ if(rer < 0)
+ //return QString("Rec: ") + QString(snd_strerror(error));
+ estr += (QString("Rec: ") + QString(snd_strerror(rer)));
+ }
+ if(!rer)
+ _readEnable = true;
+ }
+
+
+ if(wer < 0 || rer < 0)
+ return estr;
+
+ return QString("OK");
+}
+
+//---------------------------------------------------------
+// close
+//---------------------------------------------------------
+
+void MidiAlsaDevice::close()
+{
+ snd_seq_port_subscribe_t* subs;
+ // Allocated on stack, no need to call snd_seq_port_subscribe_free() later.
+ snd_seq_port_subscribe_alloca(&subs);
+
+ // Changed by T356. This function appears to be called only by MidiPort::setMidiDevice(),
+ // which closes then opens the device.
+ // Because the open flags are set BEFORE setMidiDevice() is called, we must ignore the flags.
+ //
+ // NOTE: Tested: The read unsubscribe works ok but not the write.
+ // As viewed in say, qjackctl, the connection is clearly lost,
+ // but strangely the events are still accepted, ie, playback notes
+ // are still heard etc. Tried an alsa midi device AND external fluidsynth inst.
+ //
+ // Also, jack running and with jack midi disabled, we get messages like
+ // MidiAlsaDevice::0x84512c0 putEvent(): midi write error: No such device
+ // dst 16:0
+ // only sometimes (not when playing notes), but with jack midi turned on,
+ // we don't get the messages. With jack stopped we get the messages
+ // no matter if jack midi is turned on or not.
+
+ //if (_openFlags & 1) {
+ //if (!(_openFlags & 1))
+ {
+ snd_seq_port_subscribe_set_sender(subs, &musePort);
+ snd_seq_port_subscribe_set_dest(subs, &adr);
+
+ // Already subscribed? Then unsubscribe.
+ if(!snd_seq_get_port_subscription(alsaSeq, subs))
+ {
+ if(!snd_seq_unsubscribe_port(alsaSeq, subs))
+ _writeEnable = false;
+ else
+ printf("MidiAlsaDevice::close Error unsubscribing alsa midi port for writing\n");
+ }
+ else
+ _writeEnable = false;
+ }
+
+ //if (_openFlags & 2) {
+ //if (!(_openFlags & 2))
+ {
+ snd_seq_port_subscribe_set_dest(subs, &musePort);
+ snd_seq_port_subscribe_set_sender(subs, &adr);
+
+ // Already subscribed? Then unsubscribe.
+ if(!snd_seq_get_port_subscription(alsaSeq, subs))
+ {
+ if(!snd_seq_unsubscribe_port(alsaSeq, subs))
+ _readEnable = false;
+ else
+ printf("MidiAlsaDevice::close Error unsubscribing alsa midi port for reading\n");
+ }
+ else
+ _readEnable = false;
+ }
+}
+
+//---------------------------------------------------------
+// writeRouting
+//---------------------------------------------------------
+
+void MidiAlsaDevice::writeRouting(int level, Xml& xml) const
+{
+ // p3.3.45
+ // If this device is not actually in use by the song, do not write any routes.
+ // This prevents bogus routes from being saved and propagated in the med file.
+ if(midiPort() == -1)
+ return;
+
+ QString s;
+ /*
+ //if(rwFlags() & 2) // Readable
+ {
+ //RouteList* rl = _inRoutes;
+ //for (ciRoute r = rl->begin(); r != rl->end(); ++r)
+ for (ciRoute r = _inRoutes.begin(); r != _inRoutes.end(); ++r)
+ {
+ // Since an ALSA midi device supports read + write, this is the only way we can tell if this route is using the device as input.
+ if(r->type == Route::TRACK_ROUTE)
+ continue;
+
+ if(!r->name().isEmpty())
+ {
+ xml.tag(level++, "Route");
+
+ //xml.strTag(level, "srcNode", r->name());
+ xml.tag(level, "source type=\"%d\" name=\"%s\"/", r->type, r->name().latin1());
+
+ //xml.strTag(level, "dstNode", name());
+ xml.tag(level, "dest type=\"%d\" name=\"%s\"/", Route::ALSA_MIDI_ROUTE, name().latin1());
+
+ xml.etag(level--, "Route");
+ }
+ }
+ }
+ */
+
+ for (ciRoute r = _outRoutes.begin(); r != _outRoutes.end(); ++r)
+ {
+ //if(r->type != Route::TRACK_ROUTE)
+ //{
+ // printf("MidiAlsaDevice::writeRouting Warning out route is not TRACK_ROUTE type\n");
+ // continue;
+ //}
+
+ if(!r->name().isEmpty())
+ {
+ //xml.tag(level++, "Route");
+
+ s = QT_TR_NOOP("Route");
+ if(r->channel != -1)
+ s += QString(QT_TR_NOOP(" channel=\"%1\"")).arg(r->channel);
+ xml.tag(level++, s);
+
+ /*
+ //xml.strTag(level, "srcNode", name());
+ if(r->channel != -1)
+ //xml.tag(level, "source type=\"%d\" channel=\"%d\" name=\"%s\"/", Route::ALSA_MIDI_ROUTE, r->channel, name().latin1());
+ //xml.tag(level, "source type=\"%d\" channel=\"%d\" name=\"%s\"/", Route::MIDI_DEVICE_ROUTE, r->channel, name().latin1());
+ xml.tag(level, "source devtype=\"%d\" channel=\"%d\" name=\"%s\"/", MidiDevice::ALSA_MIDI, r->channel, name().latin1());
+ else
+ //xml.tag(level, "source type=\"%d\" name=\"%s\"/", Route::ALSA_MIDI_ROUTE, name().latin1());
+ //xml.tag(level, "source type=\"%d\" name=\"%s\"/", Route::MIDI_DEVICE_ROUTE, name().latin1());
+ */
+ //xml.tag(level, "source devtype=\"%d\" name=\"%s\"/", MidiDevice::ALSA_MIDI, name().latin1());
+ xml.tag(level, "source devtype=\"%d\" name=\"%s\"/", MidiDevice::ALSA_MIDI, Xml::xmlString(name()).latin1());
+
+ /*
+ //xml.strTag(level, "dstNode", r->name());
+ if(r->channel != -1)
+ {
+ if(r->type == Route::MIDI_DEVICE_ROUTE)
+ xml.tag(level, "dest devtype=\"%d\" channel=\"%d\" name=\"%s\"/", r->device->deviceType(), r->channel, r->name().latin1());
+ else
+ xml.tag(level, "dest type=\"%d\" channel=\"%d\" name=\"%s\"/", r->type, r->channel, r->name().latin1());
+ }
+ else
+ {
+ if(r->type == Route::MIDI_DEVICE_ROUTE)
+ xml.tag(level, "dest devtype=\"%d\" name=\"%s\"/", r->device->deviceType(), r->name().latin1());
+ else
+ xml.tag(level, "dest type=\"%d\" name=\"%s\"/", r->type, r->name().latin1());
+ }
+ */
+
+ s = QT_TR_NOOP("dest");
+ if(r->type == Route::MIDI_DEVICE_ROUTE)
+ s += QString(QT_TR_NOOP(" devtype=\"%1\"")).arg(r->device->deviceType());
+ else
+ if(r->type != Route::TRACK_ROUTE)
+ s += QString(QT_TR_NOOP(" type=\"%1\"")).arg(r->type);
+ //s += QString(QT_TR_NOOP(" name=\"%1\"/")).arg(r->name());
+ s += QString(QT_TR_NOOP(" name=\"%1\"/")).arg(Xml::xmlString(r->name()));
+ xml.tag(level, s);
+
+ xml.etag(level--, "Route");
+ }
+ }
+}
+
+//---------------------------------------------------------
+// putEvent
+//---------------------------------------------------------
+
+bool MidiAlsaDevice::putMidiEvent(const MidiPlayEvent& e)
+ {
+ if (midiOutputTrace) {
+ printf("MidiOut: midiAlsa: ");
+ e.dump();
+ }
+ int chn = e.channel();
+ int a = e.dataA();
+ int b = e.dataB();
+
+ snd_seq_event_t event;
+ memset(&event, 0, sizeof(event));
+ event.queue = SND_SEQ_QUEUE_DIRECT;
+ event.source = musePort;
+ event.dest = adr;
+
+ switch(e.type()) {
+ case ME_NOTEON:
+ snd_seq_ev_set_noteon(&event, chn, a, b);
+ break;
+ case ME_NOTEOFF:
+ snd_seq_ev_set_noteoff(&event, chn, a, 0);
+ break;
+ case ME_PROGRAM:
+ snd_seq_ev_set_pgmchange(&event, chn, a);
+ break;
+ case ME_CONTROLLER:
+#if 1
+ snd_seq_ev_set_controller(&event, chn, a, b);
+#else
+ {
+ int a = e.dataA();
+ int b = e.dataB();
+ int chn = e.channel();
+ // p3.3.37
+ //if (a < 0x1000) { // 7 Bit Controller
+ if (a < CTRL_14_OFFSET) { // 7 Bit Controller
+ snd_seq_ev_set_controller(&event, chn, a, b);
+ }
+ //else if (a < 0x20000) { // 14 bit high resolution controller
+ else if (a < CTRL_RPN_OFFSET) { // 14 bit high resolution controller
+ int ctrlH = (a >> 8) & 0x7f;
+ int ctrlL = a & 0x7f;
+ a = (ctrlH << 7) + ctrlL;
+ snd_seq_ev_set_controller(&event, chn, a, b);
+ event.type = SND_SEQ_EVENT_CONTROL14;
+ }
+ //else if (a < 0x30000) { // RPN 7-Bit Controller
+ else if (a < CTRL_NRPN_OFFSET) { // RPN 7-Bit Controller
+ int ctrlH = (a >> 8) & 0x7f;
+ int ctrlL = a & 0x7f;
+ a = (ctrlH << 7) + ctrlL;
+ b <<= 7;
+ snd_seq_ev_set_controller(&event, chn, a, b);
+ event.type = SND_SEQ_EVENT_REGPARAM;
+ }
+ //else if (a < 0x40000) { // NRPN 7-Bit Controller
+ else if (a < CTRL_INTERNAL_OFFSET) { // NRPN 7-Bit Controller
+ int ctrlH = (a >> 8) & 0x7f;
+ int ctrlL = a & 0x7f;
+ a = (ctrlH << 7) + ctrlL;
+ b <<= 7;
+ snd_seq_ev_set_controller(&event, chn, a, b);
+ event.type = SND_SEQ_EVENT_NONREGPARAM;
+ }
+ //else if (a < 0x60000) { // RPN14 Controller
+ else if (a < CTRL_NRPN14_OFFSET) { // RPN14 Controller
+ int ctrlH = (a >> 8) & 0x7f;
+ int ctrlL = a & 0x7f;
+ a = (ctrlH << 7) + ctrlL;
+ snd_seq_ev_set_controller(&event, chn, a, b);
+ event.type = SND_SEQ_EVENT_REGPARAM;
+ }
+ //else if (a < 0x70000) { // NRPN14 Controller
+ else if (a < CTRL_NONE_OFFSET) { // NRPN14 Controller
+ int ctrlH = (a >> 8) & 0x7f;
+ int ctrlL = a & 0x7f;
+ a = (ctrlH << 7) + ctrlL;
+ snd_seq_ev_set_controller(&event, chn, a, b);
+ event.type = SND_SEQ_EVENT_NONREGPARAM;
+ }
+ else {
+ printf("putEvent: unknown controller type 0x%x\n", a);
+ }
+ }
+#endif
+ break;
+ case ME_PITCHBEND:
+ snd_seq_ev_set_pitchbend(&event, chn, a);
+ break;
+ case ME_POLYAFTER:
+ // chnEvent2(chn, 0xa0, a, b);
+ break;
+ case ME_AFTERTOUCH:
+ snd_seq_ev_set_chanpress(&event, chn, a);
+ break;
+ case ME_SYSEX:
+ {
+ const unsigned char* p = e.data();
+ int n = e.len();
+ int len = n + sizeof(event) + 2;
+ char buf[len];
+ event.type = SND_SEQ_EVENT_SYSEX;
+ event.flags = SND_SEQ_EVENT_LENGTH_VARIABLE;
+ event.data.ext.len = n + 2;
+ event.data.ext.ptr = (void*)(buf + sizeof(event));
+ memcpy(buf, &event, sizeof(event));
+ char* pp = buf + sizeof(event);
+ *pp++ = 0xf0;
+ memcpy(pp, p, n);
+ pp += n;
+ *pp = 0xf7;
+ return putEvent(&event);
+ }
+ case ME_SONGPOS:
+ event.data.control.value = a;
+ event.type = SND_SEQ_EVENT_SONGPOS;
+ break;
+ case ME_CLOCK:
+ event.type = SND_SEQ_EVENT_CLOCK;
+ break;
+ case ME_START:
+ event.type = SND_SEQ_EVENT_START;
+ break;
+ case ME_CONTINUE:
+ event.type = SND_SEQ_EVENT_CONTINUE;
+ break;
+ case ME_STOP:
+ event.type = SND_SEQ_EVENT_STOP;
+ break;
+ default:
+ printf("MidiAlsaDevice::putEvent(): event type %d not implemented\n",
+ e.type());
+ return true;
+ }
+ return putEvent(&event);
+ }
+
+//---------------------------------------------------------
+// putEvent
+// return false if event is delivered
+//---------------------------------------------------------
+
+bool MidiAlsaDevice::putEvent(snd_seq_event_t* event)
+ {
+ int error;
+
+ do {
+ error = snd_seq_event_output_direct(alsaSeq, event);
+ int len = snd_seq_event_length(event);
+ if (error == len) {
+// printf(".");fflush(stdout);
+ return false;
+ }
+ if (error < 0) {
+ if (error == -12) {
+// printf("?");fflush(stdout);
+ return true;
+ }
+ else {
+ fprintf(stderr, "MidiAlsaDevice::%p putEvent(): midi write error: %s\n",
+ this, snd_strerror(error));
+ fprintf(stderr, " dst %d:%d\n", adr.client, adr.port);
+ //exit(-1);
+ }
+ }
+ else
+ fprintf(stderr, "MidiAlsaDevice::putEvent(): midi write returns %d, expected %d: %s\n",
+ error, len, snd_strerror(error));
+ } while (error == -12);
+ return true;
+ }
+
+//---------------------------------------------------------
+// initMidiAlsa
+// return true on error
+//---------------------------------------------------------
+
+bool initMidiAlsa()
+ {
+ if (debugMsg)
+ printf("initMidiAlsa\n");
+ int error = snd_seq_open(&alsaSeq, "hw", SND_SEQ_OPEN_DUPLEX, SND_SEQ_NONBLOCK);
+ if (error < 0) {
+ fprintf(stderr, "Could not open ALSA sequencer: %s\n",
+ snd_strerror(error));
+ return true;
+ }
+ const int inCap = SND_SEQ_PORT_CAP_SUBS_READ;
+ const int outCap = SND_SEQ_PORT_CAP_SUBS_WRITE;
+
+ snd_seq_client_info_t *cinfo;
+ snd_seq_client_info_alloca(&cinfo);
+ snd_seq_client_info_set_client(cinfo, -1);
+
+ while (snd_seq_query_next_client(alsaSeq, cinfo) >= 0) {
+ snd_seq_port_info_t *pinfo;
+ snd_seq_port_info_alloca(&pinfo);
+ snd_seq_port_info_set_client(pinfo, snd_seq_client_info_get_client(cinfo));
+ snd_seq_port_info_set_port(pinfo, -1);
+
+ while (snd_seq_query_next_port(alsaSeq, pinfo) >= 0) {
+ unsigned int capability = snd_seq_port_info_get_capability(pinfo);
+ if ((capability & outCap) == 0) {
+ const char *name = snd_seq_port_info_get_name(pinfo);
+ if (strcmp("Timer", name) == 0 ||
+ strcmp("Announce", name) == 0 ||
+ strcmp("Receiver", name) == 0)
+ continue;
+ }
+ snd_seq_addr_t adr = *snd_seq_port_info_get_addr(pinfo);
+ MidiAlsaDevice* dev = new MidiAlsaDevice(adr, QString(snd_seq_port_info_get_name(pinfo)));
+ int flags = 0;
+ if (capability & outCap)
+ flags |= 1;
+ if (capability & inCap)
+ flags |= 2;
+ dev->setrwFlags(flags);
+ if (debugMsg)
+ printf("ALSA port add: <%s>, %d:%d flags %d 0x%0x\n",
+ snd_seq_port_info_get_name(pinfo),
+ adr.client, adr.port,
+ flags, capability);
+ midiDevices.add(dev);
+
+ /*
+ // Experimental... Need to list 'sensible' devices first and ignore unwanted ones...
+ // Add instance last in midi device list.
+ for(int i = 0; i < MIDI_PORTS; ++i)
+ {
+ MidiPort* mp = &midiPorts[i];
+ if(mp->device() == 0)
+ {
+ // midiSeq might not be initialzed yet!
+ //midiSeq->msgSetMidiDevice(mp, dev);
+ mp->setMidiDevice(dev);
+
+ //muse->changeConfig(true); // save configuration file
+ //update();
+ break;
+ }
+ }
+ */
+
+ }
+ }
+
+ // p3.3.38
+ //snd_seq_set_client_name(alsaSeq, "MusE Sequencer");
+ snd_seq_set_client_name(alsaSeq, audioDevice->clientName());
+
+ int ci = snd_seq_poll_descriptors_count(alsaSeq, POLLIN);
+ int co = snd_seq_poll_descriptors_count(alsaSeq, POLLOUT);
+
+ if (ci > 1 || co > 1) {
+ printf("ALSA midi: cannot handle more than one poll fd\n");
+ abort();
+ }
+
+ struct pollfd pfdi[ci];
+ struct pollfd pfdo[co];
+ snd_seq_poll_descriptors(alsaSeq, pfdi, ci, POLLIN);
+ snd_seq_poll_descriptors(alsaSeq, pfdo, co, POLLOUT);
+ alsaSeqFdo = pfdo[0].fd;
+ alsaSeqFdi = pfdi[0].fd;
+
+ int port = snd_seq_create_simple_port(alsaSeq, "MusE Port 0",
+ inCap | outCap | SND_SEQ_PORT_CAP_READ | SND_SEQ_PORT_CAP_WRITE,
+ SND_SEQ_PORT_TYPE_APPLICATION);
+ if (port < 0) {
+ perror("create port");
+ exit(1);
+ }
+ musePort.port = port;
+ musePort.client = snd_seq_client_id(alsaSeq);
+
+ //-----------------------------------------
+ // subscribe to "Announce"
+ // this enables callbacks for any
+ // alsa port changes
+ //-----------------------------------------
+
+ snd_seq_addr_t aadr;
+ aadr.client = SND_SEQ_CLIENT_SYSTEM;
+ aadr.port = SND_SEQ_PORT_SYSTEM_ANNOUNCE;
+
+ snd_seq_port_subscribe_t* subs;
+ snd_seq_port_subscribe_alloca(&subs);
+ snd_seq_port_subscribe_set_dest(subs, &musePort);
+ snd_seq_port_subscribe_set_sender(subs, &aadr);
+ error = snd_seq_subscribe_port(alsaSeq, subs);
+ if (error < 0) {
+ printf("Alsa: Subscribe System failed: %s", snd_strerror(error));
+ return true;
+ }
+ return false;
+ }
+
+struct AlsaPort {
+ snd_seq_addr_t adr;
+ char* name;
+ int flags;
+ AlsaPort(snd_seq_addr_t a, const char* s, int f) {
+ adr = a;
+ name = strdup(s);
+ flags = f;
+ }
+ };
+
+static std::list<AlsaPort> portList;
+
+//---------------------------------------------------------
+// alsaScanMidiPorts
+//---------------------------------------------------------
+
+void alsaScanMidiPorts()
+ {
+// printf("alsa scan midi ports\n");
+ const int inCap = SND_SEQ_PORT_CAP_SUBS_READ;
+ const int outCap = SND_SEQ_PORT_CAP_SUBS_WRITE;
+
+ portList.clear();
+
+ snd_seq_client_info_t* cinfo;
+ snd_seq_client_info_alloca(&cinfo);
+ snd_seq_client_info_set_client(cinfo, 0);
+
+ while (snd_seq_query_next_client(alsaSeq, cinfo) >= 0) {
+ snd_seq_port_info_t *pinfo;
+ snd_seq_port_info_alloca(&pinfo);
+ snd_seq_port_info_set_client(pinfo, snd_seq_client_info_get_client(cinfo));
+ snd_seq_port_info_set_port(pinfo, -1);
+ while (snd_seq_query_next_port(alsaSeq, pinfo) >= 0) {
+ unsigned int capability = snd_seq_port_info_get_capability(pinfo);
+ if (((capability & outCap) == 0)
+ && ((capability & inCap) == 0))
+ continue;
+ snd_seq_addr_t adr;
+ const char* name;
+ adr = *snd_seq_port_info_get_addr(pinfo);
+ name = snd_seq_port_info_get_name(pinfo);
+ if (adr.client == musePort.client && adr.port == musePort.port)
+ continue;
+ int flags = 0;
+ if (capability & outCap)
+ flags |= 1;
+ if (capability & inCap)
+ flags |= 2;
+// printf("ALSA port add: <%s>, flags %d\n", name, flags);
+ portList.push_back(AlsaPort(adr, name, flags));
+ }
+ }
+ //
+ // check for devices to delete
+ //
+ for (iMidiDevice i = midiDevices.begin(); i != midiDevices.end();) {
+ MidiAlsaDevice* d = dynamic_cast<MidiAlsaDevice*>(*i);
+ if (d == 0) {
+ ++i;
+ continue;
+ }
+ std::list<AlsaPort>::iterator k = portList.begin();
+ for (; k != portList.end(); ++k) {
+ if (k->adr.client == d->adr.client
+ && k->adr.port == d->adr.port) {
+ break;
+ }
+ }
+ if (k == portList.end()) {
+ if (d->midiPort() != -1)
+ midiPorts[d->midiPort()].setMidiDevice(0);
+ iMidiDevice k = i;
+// printf("erase device\n");
+ ++i;
+ midiDevices.erase(k);
+ }
+ else {
+ ++i;
+ }
+ }
+ //
+ // check for devices to add
+ //
+ for (std::list<AlsaPort>::iterator k = portList.begin(); k != portList.end(); ++k) {
+ iMidiDevice i = midiDevices.begin();
+// printf("ALSA port: <%s>\n", k->name);
+ for (;i != midiDevices.end(); ++i) {
+ MidiAlsaDevice* d = dynamic_cast<MidiAlsaDevice*>(*i);
+ if (d == 0)
+ continue;
+ if ((k->adr.client == d->adr.client) && (k->adr.port == d->adr.port)) {
+ break;
+ }
+ }
+ if (i == midiDevices.end()) {
+ // add device
+ MidiAlsaDevice* dev = new MidiAlsaDevice(k->adr,
+ QString(k->name));
+ dev->setrwFlags(k->flags);
+ midiDevices.add(dev);
+// printf("add device\n");
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// alsaSelectRfd
+//---------------------------------------------------------
+
+int alsaSelectRfd()
+ {
+ return alsaSeqFdi;
+ }
+
+//---------------------------------------------------------
+// alsaSelectWfd
+//---------------------------------------------------------
+
+int alsaSelectWfd()
+ {
+ return alsaSeqFdo;
+ }
+
+//---------------------------------------------------------
+// processInput
+//---------------------------------------------------------
+
+void alsaProcessMidiInput()
+{
+ MidiRecordEvent event;
+ snd_seq_event_t* ev;
+
+ for (;;)
+ {
+ int rv = snd_seq_event_input(alsaSeq, &ev);
+// printf("AlsaInput %d\n", rv);
+ if (rv < 0) {
+// printf("AlsaMidi: read error %s\n", snd_strerror(rv));
+ return;
+ }
+ switch(ev->type) {
+ case SND_SEQ_EVENT_PORT_SUBSCRIBED:
+ case SND_SEQ_EVENT_PORT_UNSUBSCRIBED:
+ return;
+ case SND_SEQ_EVENT_CLIENT_START:
+ case SND_SEQ_EVENT_CLIENT_EXIT:
+ // return;
+ // on first start of a software synthesizer we only
+ // get CLIENT_START event and no PORT_START, why?
+
+ case SND_SEQ_EVENT_PORT_START:
+ case SND_SEQ_EVENT_PORT_EXIT:
+ alsaScanMidiPorts();
+ audio->midiPortsChanged(); // signal gui
+ snd_seq_free_event(ev);
+ return;
+ }
+
+ int curPort = -1;
+ MidiAlsaDevice* mdev = 0;
+ //
+ // find real source device
+ //
+ for (iMidiDevice i = midiDevices.begin(); i != midiDevices.end(); ++i) {
+ MidiAlsaDevice* d = dynamic_cast<MidiAlsaDevice*>(*i);
+ if (d && d->adr.client == ev->source.client
+ && d->adr.port == ev->source.port) {
+ curPort = d->midiPort();
+ mdev = d;
+ }
+ }
+
+ if (mdev == 0 || curPort == -1) {
+ if (debugMsg) {
+ fprintf(stderr, "no port %d:%d found for received alsa event\n",
+ ev->source.client, ev->source.port);
+ }
+ snd_seq_free_event(ev);
+ return;
+ }
+
+ /*
+ if(curPort == -1)
+ {
+ if(mdev == 0)
+ {
+ if (debugMsg)
+ {
+ fprintf(stderr, "no port %d:%d found for received alsa event\n",
+ ev->source.client, ev->source.port);
+ }
+ }
+ else
+ {
+ // Allow the sync detect mechanisms to work, even if device is not assigned to a port.
+ if(ev->type == SND_SEQ_EVENT_CLOCK)
+ mdev->syncInfo().trigMCSyncDetect();
+ else
+ if(ev->type == SND_SEQ_EVENT_TICK)
+ mdev->syncInfo().trigTickDetect();
+ }
+ snd_seq_free_event(ev);
+ return;
+ }
+ */
+
+ event.setType(0); // mark as unused
+ event.setPort(curPort);
+ event.setB(0);
+
+ switch(ev->type)
+ {
+ case SND_SEQ_EVENT_NOTEON:
+ case SND_SEQ_EVENT_KEYPRESS:
+ event.setChannel(ev->data.note.channel);
+ event.setType(ME_NOTEON);
+ event.setA(ev->data.note.note);
+ event.setB(ev->data.note.velocity);
+ break;
+
+ case SND_SEQ_EVENT_NOTEOFF:
+ event.setChannel(ev->data.note.channel);
+ event.setType(ME_NOTEOFF);
+ event.setA(ev->data.note.note);
+ event.setB(ev->data.note.velocity);
+ break;
+
+ case SND_SEQ_EVENT_CHANPRESS:
+ event.setChannel(ev->data.control.channel);
+ event.setType(ME_AFTERTOUCH);
+ event.setA(ev->data.control.value);
+ break;
+
+ case SND_SEQ_EVENT_PGMCHANGE:
+ event.setChannel(ev->data.control.channel);
+ event.setType(ME_PROGRAM);
+ event.setA(ev->data.control.value);
+ break;
+
+ case SND_SEQ_EVENT_PITCHBEND:
+ event.setChannel(ev->data.control.channel);
+ event.setType(ME_PITCHBEND);
+ event.setA(ev->data.control.value);
+ break;
+
+ case SND_SEQ_EVENT_CONTROLLER:
+ event.setChannel(ev->data.control.channel);
+ event.setType(ME_CONTROLLER);
+ event.setA(ev->data.control.param);
+ event.setB(ev->data.control.value);
+ break;
+
+ case SND_SEQ_EVENT_CLOCK:
+ midiSeq->realtimeSystemInput(curPort, ME_CLOCK);
+ //mdev->syncInfo().trigMCSyncDetect();
+ break;
+
+ case SND_SEQ_EVENT_START:
+ midiSeq->realtimeSystemInput(curPort, ME_START);
+ break;
+
+ case SND_SEQ_EVENT_CONTINUE:
+ midiSeq->realtimeSystemInput(curPort, ME_CONTINUE);
+ break;
+
+ case SND_SEQ_EVENT_STOP:
+ midiSeq->realtimeSystemInput(curPort, ME_STOP);
+ break;
+
+ case SND_SEQ_EVENT_TICK:
+ midiSeq->realtimeSystemInput(curPort, ME_TICK);
+ //mdev->syncInfo().trigTickDetect();
+ break;
+
+ case SND_SEQ_EVENT_SYSEX:
+
+ // TODO: Deal with large sysex, which are broken up into chunks!
+ // For now, do not accept if the first byte is not SYSEX or the last byte is not EOX,
+ // meaning it's a chunk, possibly with more chunks to follow.
+ if((*((unsigned char*)ev->data.ext.ptr) != ME_SYSEX) ||
+ (*(((unsigned char*)ev->data.ext.ptr) + ev->data.ext.len - 1) != ME_SYSEX_END))
+ {
+ printf("MusE: alsaProcessMidiInput sysex chunks not supported!\n");
+ break;
+ }
+
+ event.setTime(0); // mark as used
+ event.setType(ME_SYSEX);
+ event.setData((unsigned char*)(ev->data.ext.ptr)+1,
+ ev->data.ext.len-2);
+ break;
+ case SND_SEQ_EVENT_PORT_SUBSCRIBED:
+ case SND_SEQ_EVENT_PORT_UNSUBSCRIBED: // write port is released
+ break;
+ case SND_SEQ_EVENT_SONGPOS:
+ midiSeq->setSongPosition(curPort, ev->data.control.value);
+ break;
+ case SND_SEQ_EVENT_SENSING:
+ break;
+ case SND_SEQ_EVENT_QFRAME:
+ midiSeq->mtcInputQuarter(curPort, ev->data.control.value);
+ break;
+ // case SND_SEQ_EVENT_CLIENT_START:
+ // case SND_SEQ_EVENT_CLIENT_EXIT:
+ // case SND_SEQ_EVENT_CLIENT_CHANGE:
+ // case SND_SEQ_EVENT_PORT_CHANGE:
+ // case SND_SEQ_EVENT_SONGSEL:
+ // case SND_SEQ_EVENT_TIMESIGN:
+ // case SND_SEQ_EVENT_KEYSIGN:
+ // case SND_SEQ_EVENT_SETPOS_TICK:
+ // case SND_SEQ_EVENT_SETPOS_TIME:
+ // case SND_SEQ_EVENT_TEMPO:
+ // case SND_SEQ_EVENT_TUNE_REQUEST:
+ // case SND_SEQ_EVENT_RESET:
+
+ // case SND_SEQ_EVENT_NOTE:
+ // case SND_SEQ_EVENT_CONTROL14:
+ // case SND_SEQ_EVENT_NONREGPARAM:
+ // case SND_SEQ_EVENT_REGPARAM:
+ default:
+ printf("ALSA Midi input: type %d not handled\n", ev->type);
+ break;
+ }
+ if(event.type())
+ {
+ mdev->recordEvent(event);
+ // p3.3.26 1/23/10 Moved to MidiDevice now. Anticipating Jack midi support, so don't make it ALSA specific. Tim.
+ //if(ev->type != SND_SEQ_EVENT_SYSEX)
+ // Trigger general activity indicator detector. Sysex has no channel, don't trigger.
+ // midiPorts[curPort].syncInfo().trigActDetect(event.channel());
+ }
+
+ snd_seq_free_event(ev);
+ if (rv == 0)
+ break;
+ }
+}
+
diff --git a/muse2/muse/driver/alsamidi.h b/muse2/muse/driver/alsamidi.h
new file mode 100644
index 00000000..6c19ff0d
--- /dev/null
+++ b/muse2/muse/driver/alsamidi.h
@@ -0,0 +1,53 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: alsamidi.h,v 1.2 2004/01/14 09:06:43 wschweer Exp $
+// (C) Copyright 2001 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __ALSAMIDI_H__
+#define __ALSAMIDI_H__
+
+#include <config.h>
+#include <alsa/asoundlib.h>
+
+#include "mididev.h"
+
+class Xml;
+
+//---------------------------------------------------------
+// MidiAlsaDevice
+//---------------------------------------------------------
+
+class MidiAlsaDevice : public MidiDevice {
+ public:
+ snd_seq_addr_t adr;
+
+ private:
+ virtual QString open();
+ virtual void close();
+ virtual void processInput() {}
+ virtual int selectRfd() { return -1; }
+ virtual int selectWfd();
+
+ bool putEvent(snd_seq_event_t*);
+ virtual bool putMidiEvent(const MidiPlayEvent&);
+
+ public:
+ MidiAlsaDevice() {}
+ MidiAlsaDevice(const snd_seq_addr_t&, const QString& name);
+ virtual ~MidiAlsaDevice() {}
+ virtual void* clientPort() { return (void*)&adr; }
+ virtual void writeRouting(int, Xml&) const;
+ virtual inline int deviceType() { return ALSA_MIDI; }
+ };
+
+extern bool initMidiAlsa();
+extern int alsaSelectRfd();
+extern int alsaSelectWfd();
+extern void alsaProcessMidiInput();
+extern void alsaScanMidiPorts();
+
+#endif
+
+
diff --git a/muse2/muse/driver/alsatimer.cpp b/muse2/muse/driver/alsatimer.cpp
new file mode 100644
index 00000000..d851410d
--- /dev/null
+++ b/muse2/muse/driver/alsatimer.cpp
@@ -0,0 +1,225 @@
+ //=========================================================
+ // MusE
+ // Linux Music Editor
+ // $Id: alsatimer.cpp,v 1.1.2.9 2009/03/28 01:46:10 terminator356 Exp $
+ //
+ // Plenty of code borrowed from timer.c example in
+ // alsalib 1.0.7
+ //
+ // (C) Copyright 2004 Robert Jonsson (rj@spamatica.se)
+ //=========================================================
+
+ #include "alsatimer.h"
+ #include <climits>
+
+#define TIMER_DEBUG 0
+
+ AlsaTimer::AlsaTimer()
+ {
+ if(TIMER_DEBUG)
+ fprintf(stderr,"AlsaTimer::AlsaTimer(this=%p) called\n",this);
+ handle = NULL;
+ id = NULL;
+ info = NULL;
+ params = NULL;
+ findBest = true;
+ }
+
+ AlsaTimer::~AlsaTimer()
+ {
+ if(TIMER_DEBUG)
+ fprintf(stderr,"AlsaTimer::~AlsaTimer(this=%p) called\n",this);
+ if (handle)
+ snd_timer_close(handle);
+ if (id) snd_timer_id_free(id);
+ if (info) snd_timer_info_free(info);
+ if (params) snd_timer_params_free(params);
+ }
+
+ signed int AlsaTimer::initTimer()
+ {
+ if(TIMER_DEBUG)
+ printf("AlsaTimer::initTimer(this=%p)\n",this);
+
+ int err;
+ int devclass = SND_TIMER_CLASS_GLOBAL;
+ int sclass = SND_TIMER_CLASS_NONE;
+ int card = 0;
+ int device = SND_TIMER_GLOBAL_SYSTEM;
+ int subdevice = 0;
+ int test_ids[] = { SND_TIMER_GLOBAL_SYSTEM
+ , SND_TIMER_GLOBAL_RTC
+#ifdef SND_TIMER_GLOBAL_HPET
+ , SND_TIMER_GLOBAL_HPET
+#endif
+ };
+ int max_ids = sizeof(test_ids) / sizeof(int);
+ long best_res = LONG_MAX;
+ //int best_dev = -1; // SND_TIMER_GLOBAL_SYSTEM;
+ int best_dev = SND_TIMER_GLOBAL_SYSTEM; // p3.3.51
+ int i;
+
+ if (id || info || params) {
+ fprintf(stderr,"AlsaTimer::initTimer(): called on initialised timer!\n");
+ return fds->fd;
+ }
+ snd_timer_id_malloc(&id);
+ snd_timer_info_malloc(&info);
+ snd_timer_params_malloc(&params);
+
+ if (findBest) {
+ for (i = 0; i < max_ids; ++i) {
+ device = test_ids[i];
+ sprintf(timername, "hw:CLASS=%i,SCLASS=%i,CARD=%i,DEV=%i,SUBDEV=%i", devclass, sclass, card, device, subdevice);
+ if ((err = snd_timer_open(&handle, timername, SND_TIMER_OPEN_NONBLOCK)) < 0) {
+ continue;
+ }
+ if ((err = snd_timer_info(handle, info)) < 0) {
+ snd_timer_close(handle);
+ continue;
+ }
+ // select a non slave timer with the lowest resolution value
+ int is_slave = snd_timer_info_is_slave(info);
+ long res = snd_timer_info_get_resolution(info);
+ if ((is_slave == 0) && (best_res > res)) {
+ best_res = res;
+ best_dev = device;
+ }
+ snd_timer_close(handle);
+ }
+ device = best_dev;
+ }
+
+ // p3.3.51 Removed.
+ //if(best_dev==-1)
+ // return -1; // no working timer found
+
+ sprintf(timername, "hw:CLASS=%i,SCLASS=%i,CARD=%i,DEV=%i,SUBDEV=%i", devclass, sclass, card, device, subdevice);
+ if ((err = snd_timer_open(&handle, timername, SND_TIMER_OPEN_NONBLOCK))<0) {
+ fprintf(stderr, "AlsaTimer::initTimer(): timer open %i (%s)\n", err, snd_strerror(err));
+ return -1; // p3.3.51
+ }
+
+ if ((err = snd_timer_info(handle, info)) < 0) {
+ fprintf(stderr, "AlsaTimer::initTimer(): timer info %i (%s)\n", err, snd_strerror(err));
+ return -1;
+ }
+
+ //if(debugMsg)
+ fprintf(stderr, "AlsaTimer::initTimer(): best available ALSA timer: %s\n", snd_timer_info_get_name(info));
+
+ snd_timer_params_set_auto_start(params, 1);
+ snd_timer_params_set_ticks(params, 1);
+
+ if ((err = snd_timer_params(handle, params)) < 0) {
+ fprintf(stderr, "AlsaTimer::initTimer(): timer params %i (%s)\n", err, snd_strerror(err));
+ return -1;
+ }
+
+ count = snd_timer_poll_descriptors_count(handle);
+ fds = (pollfd *)calloc(count, sizeof(pollfd));
+ if (fds == NULL) {
+ fprintf(stderr, "AlsaTimer::initTimer(): malloc error\n");
+ return -1;
+ }
+ if ((err = snd_timer_poll_descriptors(handle, fds, count)) < 0) {
+ fprintf(stderr, "AlsaTimer::initTimer(): snd_timer_poll_descriptors error: %s\n", snd_strerror(err));
+ return -1;
+ }
+ return fds->fd;
+ }
+
+ unsigned int AlsaTimer::setTimerResolution(unsigned int resolution)
+ {
+ if(TIMER_DEBUG)
+ printf("AlsaTimer::setTimerResolution(%d)\n",resolution);
+ /* Resolution of an AlsaTimer is fixed - it cannot be set */
+ return 0;
+ }
+
+ unsigned int AlsaTimer::setTimerFreq(unsigned int freq)
+ {
+ signed int err;
+ unsigned int setTick, actFreq;
+
+ if(TIMER_DEBUG)
+ printf("AlsaTimer::setTimerFreq(this=%p)\n",this);
+
+ setTick = (1000000000 / snd_timer_info_get_resolution(info)) / freq;
+
+ if (setTick == 0) {
+ // return, print error if freq is below 500 (timing will suffer)
+ if (((1000000000.0 / snd_timer_info_get_resolution(info)) / snd_timer_params_get_ticks(params)) < 500) {
+ fprintf(stderr,"AlsaTimer::setTimerTicks(): requested freq %u Hz too high for timer (max is %g)\n",
+ freq, 1000000000.0 / snd_timer_info_get_resolution(info));
+ fprintf(stderr," freq stays at %ld Hz\n",
+ (long int)((1000000000.0 / snd_timer_info_get_resolution(info)) / snd_timer_params_get_ticks(params)));
+ }
+
+ return 0;
+ }
+ actFreq = (1000000000 / snd_timer_info_get_resolution(info)) / setTick;
+ if (actFreq != freq) {
+ fprintf(stderr,"AlsaTimer::setTimerTicks(): warning: requested %u Hz, actual freq is %u Hz\n",
+ freq, actFreq);
+ }
+ if(TIMER_DEBUG)
+ printf("AlsaTimer::setTimerFreq(): Setting ticks (period) to %d ticks\n", setTick);
+ snd_timer_params_set_auto_start(params, 1);
+ snd_timer_params_set_ticks(params, setTick);
+ if ((err = snd_timer_params(handle, params)) < 0) {
+ fprintf(stderr, "AlsaTimer::setTimerFreq(): timer params %i (%s)\n", err, snd_strerror(err));
+ return 0;
+ }
+
+ return actFreq;
+ }
+
+ unsigned int AlsaTimer::getTimerResolution()
+ {
+ return snd_timer_info_get_resolution(info);
+ }
+
+ unsigned int AlsaTimer::getTimerFreq()
+ {
+ return (1000000000 / snd_timer_info_get_resolution(info)) / snd_timer_params_get_ticks(params);
+ }
+
+ bool AlsaTimer::startTimer()
+ {
+ if(TIMER_DEBUG)
+ printf("AlsaTimer::startTimer(this=%p): handle=%p\n",this,handle);
+ int err;
+ if ((err = snd_timer_start(handle)) < 0) {
+ fprintf(stderr, "AlsaTimer::startTimer(): timer start %i (%s)\n", err, snd_strerror(err));
+ return false;
+ }
+ return true;
+ }
+
+ bool AlsaTimer::stopTimer()
+ {
+ int err;
+ if(TIMER_DEBUG)
+ printf("AlsaTimer::stopTimer(this=%p): handle=%p\n",this,handle);
+ if ((err = snd_timer_stop(handle)) < 0) {
+ fprintf(stderr, "AlsaTimer::stopTimer(): timer stop %i (%s)\n", err, snd_strerror(err));
+ return false;
+ }
+ return true;
+ }
+
+ unsigned int AlsaTimer::getTimerTicks(bool printTicks)
+ {
+ //if(TIMER_DEBUG)
+ // printf("AlsaTimer::getTimerTicks\n");
+ snd_timer_read_t tr;
+ tr.ticks = 0;
+ while (snd_timer_read(handle, &tr, sizeof(tr)) == sizeof(tr)) {
+ if (printTicks) {
+ printf("TIMER: resolution = %uns, ticks = %u\n",
+ tr.resolution, tr.ticks);
+ }
+ }
+ return tr.ticks;
+ }
diff --git a/muse2/muse/driver/alsatimer.h b/muse2/muse/driver/alsatimer.h
new file mode 100644
index 00000000..211ba5ec
--- /dev/null
+++ b/muse2/muse/driver/alsatimer.h
@@ -0,0 +1,52 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: alsatimer.h,v 1.1.2.4 2009/03/09 02:05:18 terminator356 Exp $
+//
+// Plenty of code borrowed from timer.c example in
+// alsalib 1.0.7
+//
+// (C) Copyright 2004 Robert Jonsson (rj@spamatica.se)
+//=========================================================
+
+#ifndef __ALSATIMER_H__
+#define __ALSATIMER_H__
+
+#include "alsa/asoundlib.h"
+#include "timerdev.h"
+
+
+//---------------------------------------------------------
+// AlsaTimer
+//---------------------------------------------------------
+
+class AlsaTimer : public Timer{
+
+ snd_timer_t *handle;
+ snd_timer_id_t *id;
+ snd_timer_info_t *info;
+ snd_timer_params_t *params;
+ struct pollfd *fds;
+ char timername[64];
+ signed int count;
+ unsigned int ticks;
+ bool findBest;
+
+ public:
+ AlsaTimer();
+ virtual ~AlsaTimer();
+
+ virtual signed int initTimer();
+ virtual unsigned int setTimerResolution(unsigned int resolution);
+ virtual unsigned int getTimerResolution();
+ virtual unsigned int setTimerFreq(unsigned int freq);
+ virtual unsigned int getTimerFreq();
+
+ virtual bool startTimer();
+ virtual bool stopTimer();
+ virtual unsigned int getTimerTicks(bool printTicks=false);
+
+ void setFindBestTimer(bool b) { findBest = b; }
+};
+
+#endif //__ALSATIMER_H__
diff --git a/muse2/muse/driver/audiodev.h b/muse2/muse/driver/audiodev.h
new file mode 100644
index 00000000..39ff822e
--- /dev/null
+++ b/muse2/muse/driver/audiodev.h
@@ -0,0 +1,74 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: audiodev.h,v 1.5.2.2 2009/12/20 05:00:35 terminator356 Exp $
+//
+// (C) Copyright 1999/2000 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __AUDIODEV_H__
+#define __AUDIODEV_H__
+
+#include <qstring.h>
+#include <list>
+
+class MidiPlayEvent;
+
+//---------------------------------------------------------
+// AudioDevice
+//---------------------------------------------------------
+
+class AudioDevice {
+
+ public:
+ enum { DUMMY_AUDIO=0, JACK_AUDIO=1 }; // p3.3.52
+
+ AudioDevice() {}
+ virtual ~AudioDevice() {}
+
+ virtual int deviceType() = 0; // p3.3.52
+
+ //virtual void start() = 0;
+ virtual void start(int priority) = 0;
+
+ virtual void stop () = 0;
+ virtual int framePos() const = 0;
+ virtual unsigned frameTime() const = 0;
+
+ virtual float* getBuffer(void* port, unsigned long nframes) = 0;
+
+ virtual std::list<QString> outputPorts(bool midi = false, int aliases = -1) = 0;
+ virtual std::list<QString> inputPorts(bool midi = false, int aliases = -1) = 0;
+
+ virtual void registerClient() = 0;
+
+ virtual const char* clientName() = 0;
+
+ //virtual void* registerOutPort(const char* name) = 0;
+ //virtual void* registerInPort(const char* name) = 0;
+ virtual void* registerOutPort(const char* /*name*/, bool /*midi*/) = 0;
+ virtual void* registerInPort(const char* /*name*/, bool /*midi*/) = 0;
+
+ virtual void unregisterPort(void*) = 0;
+ virtual void connect(void*, void*) = 0;
+ virtual void disconnect(void*, void*) = 0;
+ virtual int connections(void* /*clientPort*/) = 0;
+ virtual void setPortName(void* p, const char* n) = 0;
+ virtual void* findPort(const char* name) = 0;
+ virtual QString portName(void* port) = 0;
+ virtual int getState() = 0;
+ virtual unsigned getCurFrame() = 0;
+ virtual bool isRealtime() = 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 seekTransport(const Pos &p) = 0;
+ virtual void setFreewheel(bool f) = 0;
+ virtual void graphChanged() {}
+ virtual void registrationChanged() {}
+ virtual int setMaster(bool f) = 0;
+ };
+
+#endif
+
diff --git a/muse2/muse/driver/dummyaudio.cpp b/muse2/muse/driver/dummyaudio.cpp
new file mode 100644
index 00000000..a17a99e7
--- /dev/null
+++ b/muse2/muse/driver/dummyaudio.cpp
@@ -0,0 +1,454 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: dummyaudio.cpp,v 1.3.2.16 2009/12/20 05:00:35 terminator356 Exp $
+// (C) Copyright 2002-2003 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <math.h>
+#include <errno.h>
+#include <stdarg.h>
+#include <pthread.h>
+#include <sys/poll.h>
+#include <qmessagebox.h>
+
+#include "config.h"
+#include "audio.h"
+#include "audiodev.h"
+#include "globals.h"
+#include "song.h"
+#include "driver/alsatimer.h"
+#include "pos.h"
+#include "gconfig.h"
+#include "utils.h"
+
+class MidiPlayEvent;
+
+#define DEBUG_DUMMY 0
+//---------------------------------------------------------
+// DummyAudioDevice
+//---------------------------------------------------------
+
+//static const unsigned dummyFrames = 1024;
+
+enum Cmd {
+trSeek,
+trStart,
+trStop
+};
+
+struct Msg {
+ enum Cmd cmd;
+ int arg;
+};
+
+
+class DummyAudioDevice : public AudioDevice {
+ pthread_t dummyThread;
+ // Changed by Tim. p3.3.15
+ //float buffer[1024];
+ float* buffer;
+ int _realTimePriority;
+
+ public:
+ std::list<Msg> cmdQueue;
+ Audio::State state;
+ int _framePos;
+ int playPos;
+ bool realtimeFlag;
+
+ DummyAudioDevice();
+ virtual ~DummyAudioDevice()
+ {
+ // Added by Tim. p3.3.15
+ free(buffer);
+ }
+
+ virtual inline int deviceType() { return DUMMY_AUDIO; } // p3.3.52
+
+ //virtual void start();
+ virtual void start(int);
+
+ virtual void stop ();
+ virtual int framePos() const {
+ if(DEBUG_DUMMY)
+ printf("DummyAudioDevice::framePos %d\n", _framePos);
+ return _framePos;
+ }
+
+ virtual float* getBuffer(void* /*port*/, unsigned long nframes)
+ {
+ // p3.3.30
+ //if (nframes > dummyFrames) {
+ //printf("error: segment size > 1024\n");
+ if (nframes > segmentSize) {
+ printf("DummyAudioDevice::getBuffer nframes > segment size\n");
+
+ exit(-1);
+ }
+ return buffer;
+ }
+
+ virtual std::list<QString> outputPorts(bool midi = false, int aliases = -1);
+ virtual std::list<QString> inputPorts(bool midi = false, int aliases = -1);
+
+ virtual void registerClient() {}
+
+ virtual const char* clientName() { return "MusE"; }
+
+ //virtual void* registerOutPort(const char*) {
+ virtual void* registerOutPort(const char*, bool) {
+ return (void*)1;
+ }
+ //virtual void* registerInPort(const char*) {
+ virtual void* registerInPort(const char*, bool) {
+ return (void*)2;
+ }
+ virtual void unregisterPort(void*) {}
+ virtual void connect(void*, void*) {}
+ virtual void disconnect(void*, void*) {}
+ virtual int connections(void* /*clientPort*/) { return 0; }
+ virtual void setPortName(void*, const char*) {}
+ virtual void* findPort(const char*) { return 0;}
+ virtual QString portName(void*) {
+ return QString("mops");
+ }
+ virtual int getState() {
+// if(DEBUG_DUMMY)
+// printf("DummyAudioDevice::getState %d\n", state);
+
+ return state; }
+ virtual unsigned getCurFrame() {
+ if(DEBUG_DUMMY)
+ printf("DummyAudioDevice::getCurFrame %d\n", _framePos);
+
+ return _framePos; }
+ virtual unsigned frameTime() const {
+ return lrint(curTime() * sampleRate);
+ }
+ virtual bool isRealtime() { return realtimeFlag; }
+ //virtual int realtimePriority() const { return 40; }
+ virtual int realtimePriority() const { return _realTimePriority; }
+ virtual void startTransport() {
+ if(DEBUG_DUMMY)
+ printf("DummyAudioDevice::startTransport playPos=%d\n", playPos);
+ Msg trcmd;
+ trcmd.cmd = trStart;
+ trcmd.arg = playPos;
+ cmdQueue.push_front(trcmd);
+/* state = Audio::START_PLAY;
+ audio->sync(state, playPos);
+ state = Audio::PLAY;*/
+ }
+ virtual void stopTransport() {
+ if(DEBUG_DUMMY)
+ printf("DummyAudioDevice::stopTransport, playPos=%d\n", playPos);
+ state = Audio::STOP;
+ }
+ virtual int setMaster(bool) { return 1; }
+
+ virtual void seekTransport(const Pos &p)
+ {
+ if(DEBUG_DUMMY)
+ printf("DummyAudioDevice::seekTransport frame=%d topos=%d\n",playPos, p.frame());
+ Msg trcmd;
+ trcmd.cmd = trSeek;
+ trcmd.arg = p.frame();
+ cmdQueue.push_front(trcmd);
+ playPos = p.frame();
+ }
+ virtual void seekTransport(unsigned pos) {
+ if(DEBUG_DUMMY)
+ printf("DummyAudioDevice::seekTransport frame=%d topos=%d\n",playPos,pos);
+ Msg trcmd;
+ trcmd.cmd = trSeek;
+ trcmd.arg = pos;
+ cmdQueue.push_front(trcmd);
+ playPos = pos;
+/*
+ Audio::State tempState = state;
+ state = Audio::START_PLAY;
+ audio->sync(state, playPos);
+ state = tempState;*/
+ }
+ virtual void setFreewheel(bool) {}
+ void setRealTime() { realtimeFlag = true; }
+ };
+
+DummyAudioDevice* dummyAudio = 0;
+
+DummyAudioDevice::DummyAudioDevice()
+ {
+ // Added by Tim. p3.3.15
+ // p3.3.30
+ //posix_memalign((void**)&buffer, 16, sizeof(float) * dummyFrames);
+ posix_memalign((void**)&buffer, 16, sizeof(float) * config.dummyAudioBufSize);
+
+ realtimeFlag = false;
+ state = Audio::STOP;
+ _framePos = 0;
+ playPos = 0;
+ cmdQueue.clear();
+ }
+
+//---------------------------------------------------------
+// exitDummyAudio
+//---------------------------------------------------------
+
+void exitDummyAudio()
+{
+ if(dummyAudio)
+ delete dummyAudio;
+ dummyAudio = NULL;
+ audioDevice = NULL;
+}
+
+//---------------------------------------------------------
+// initDummyAudio
+//---------------------------------------------------------
+
+bool initDummyAudio()
+ {
+ dummyAudio = new DummyAudioDevice();
+ audioDevice = dummyAudio;
+ return false;
+ }
+
+//---------------------------------------------------------
+// outputPorts
+//---------------------------------------------------------
+
+std::list<QString> DummyAudioDevice::outputPorts(bool midi, int /*aliases*/)
+ {
+ std::list<QString> clientList;
+ if(!midi)
+ {
+ clientList.push_back(QString("output1"));
+ clientList.push_back(QString("output2"));
+ }
+ return clientList;
+ }
+
+//---------------------------------------------------------
+// inputPorts
+//---------------------------------------------------------
+
+std::list<QString> DummyAudioDevice::inputPorts(bool midi, int /*aliases*/)
+ {
+ std::list<QString> clientList;
+ if(!midi)
+ {
+ clientList.push_back(QString("input1"));
+ clientList.push_back(QString("input2"));
+ }
+ return clientList;
+ }
+
+//---------------------------------------------------------
+// dummyLoop
+//---------------------------------------------------------
+
+static void* dummyLoop(void* ptr)
+ {
+ //unsigned int tickRate = 25;
+
+ // p3.3.30
+ //sampleRate = 25600;
+ sampleRate = config.dummyAudioSampleRate;
+ //segmentSize = dummyFrames;
+ segmentSize = config.dummyAudioBufSize;
+ //unsigned int tickRate = sampleRate / dummyFrames;
+ unsigned int tickRate = sampleRate / segmentSize;
+
+ AlsaTimer timer;
+ fprintf(stderr, "Get alsa timer for dummy driver:\n");
+ timer.setFindBestTimer(false);
+ int fd = timer.initTimer();
+ if (fd==-1) {
+ // QMessageBox::critical( 0, /*tr*/(QString("Failed to start timer for dummy audio driver!")),
+ // /*tr*/(QString("No functional timer was available.\n"
+ // "Alsa timer not available, check if module snd_timer is available and /dev/snd/timer is available")));
+ fprintf(stderr, "Failed to start timer for dummy audio driver! No functional timer was available.\n"
+ "Alsa timer not available, check if module snd_timer is available and /dev/snd/timer is available\n");
+ pthread_exit(0);
+ }
+
+ /* Depending on nature of the timer, the requested tickRate might not
+ * be available. The return value is the nearest available frequency,
+ * so use this to reset our dummpy sampleRate to keep everything
+ * consistent.
+ */
+ tickRate = timer.setTimerFreq( /*250*/ tickRate );
+
+ // p3.3.31
+ // If it didn't work, get the actual rate.
+ if(tickRate == 0)
+ tickRate = timer.getTimerFreq();
+
+ sampleRate = tickRate * segmentSize;
+ timer.startTimer();
+
+ DummyAudioDevice *drvPtr = (DummyAudioDevice *)ptr;
+
+ pollfd myPollFd;
+
+ myPollFd.fd = fd;
+ myPollFd.events = POLLIN;
+
+ /*
+ doSetuid();
+ struct sched_param rt_param;
+ int rv;
+ memset(&rt_param, 0, sizeof(sched_param));
+ int type;
+ rv = pthread_getschedparam(pthread_self(), &type, &rt_param);
+ if (rv != 0)
+ perror("get scheduler parameter");
+ if (type != SCHED_FIFO) {
+ fprintf(stderr, "Driver thread not running SCHED_FIFO, trying to set...\n");
+
+ memset(&rt_param, 0, sizeof(sched_param));
+ //rt_param.sched_priority = 1;
+ rt_param.sched_priority = realtimePriority();
+ rv = pthread_setschedparam(pthread_self(), SCHED_FIFO, &rt_param);
+ if (rv != 0)
+ perror("set realtime scheduler");
+ memset(&rt_param, 0, sizeof(sched_param));
+ rv = pthread_getschedparam(pthread_self(), &type, &rt_param);
+ if (rv != 0)
+ perror("get scheduler parameter");
+ if (type == SCHED_FIFO) {
+ drvPtr->setRealTime();
+ fprintf(stderr, "Thread succesfully set to SCHED_FIFO\n");
+ }
+ else {
+ fprintf(stderr, "Unable to set thread to SCHED_FIFO\n");
+ }
+ }
+ undoSetuid();
+ */
+
+#ifndef __APPLE__
+ doSetuid();
+ //if (realTimePriority) {
+ if (realTimeScheduling) {
+ //
+ // 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);
+ }
+ }
+ }
+ undoSetuid();
+#endif
+
+ /* unsigned long tick = 0;*/ // prevent compiler warning: unused variable
+ for (;;) {
+ int _pollWait = 10; // ms
+ unsigned long count = 0;
+ while (count < 1 /*250/tickRate*/) // will loop until the next tick occurs
+ {
+ /*int n = */ poll(&myPollFd, 1 /* npfd */, _pollWait);
+ count += timer.getTimerTicks();
+ while (drvPtr->cmdQueue.size())
+ {
+ Msg &msg = drvPtr->cmdQueue.back();
+ drvPtr->cmdQueue.pop_back();
+ switch(msg.cmd) {
+ case trSeek:
+ {
+ //printf("trSeek\n");
+ drvPtr->playPos = msg.arg;
+ Audio::State tempState = drvPtr->state;
+ drvPtr->state = Audio::START_PLAY;
+ audio->sync(drvPtr->state, msg.arg);
+ drvPtr->state = tempState;
+ }
+ break;
+ case trStart:
+ {
+ //printf("trStart\n");
+ drvPtr->state = Audio::START_PLAY;
+ audio->sync(drvPtr->state, msg.arg);
+ drvPtr->state = Audio::PLAY;
+ }
+ break;
+ case trStop:
+ break;
+ default:
+ printf("dummyLoop: Unknown command!\n");
+ }
+ }
+ }
+ audio->process(segmentSize);
+ int increment = segmentSize; // 1 //tickRate / sampleRate * segmentSize;
+ drvPtr->_framePos+=increment;
+ if (drvPtr->state == Audio::PLAY)
+ {
+ drvPtr->playPos+=increment;
+ }
+ }
+ timer.stopTimer();
+ pthread_exit(0);
+ }
+
+//void DummyAudioDevice::start()
+void DummyAudioDevice::start(int priority)
+ {
+ //realTimePriority = priority;
+ _realTimePriority = priority;
+ pthread_attr_t* attributes = 0;
+
+ //if (priority) {
+ if (realTimeScheduling && priority > 0) {
+ 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));
+ }
+ }
+
+ //pthread_attr_t* attributes = (pthread_attr_t*) malloc(sizeof(pthread_attr_t));
+ //pthread_attr_init(attributes);
+ if (pthread_create(&dummyThread, attributes, ::dummyLoop, this))
+ perror("creating thread failed:");
+ if (priority)
+ pthread_attr_destroy(attributes);
+ }
+
+void DummyAudioDevice::stop ()
+ {
+ pthread_cancel(dummyThread);
+ pthread_join(dummyThread, 0);
+ dummyThread = 0;
+ }
+
diff --git a/muse2/muse/driver/jack.cpp b/muse2/muse/driver/jack.cpp
new file mode 100644
index 00000000..2c5081fc
--- /dev/null
+++ b/muse2/muse/driver/jack.cpp
@@ -0,0 +1,2173 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: jack.cpp,v 1.30.2.17 2009/12/20 05:00:35 terminator356 Exp $
+// (C) Copyright 2002 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include "config.h"
+#include <string>
+#include <set>
+#include <stdio.h>
+#include <stdlib.h>
+#include <errno.h>
+#include <stdarg.h>
+//#include <time.h>
+#include <unistd.h>
+#include <jack/midiport.h>
+#include <string.h>
+
+#include "audio.h"
+#include "globals.h"
+#include "song.h"
+#include "jackaudio.h"
+#include "track.h"
+#include "pos.h"
+#include "tempo.h"
+#include "sync.h"
+#include "utils.h"
+
+#include "midi.h"
+#include "mididev.h"
+#include "mpevent.h"
+
+#include "jackmidi.h"
+
+
+#define JACK_DEBUG 0
+
+//#include "errorhandler.h"
+
+#ifndef RTCAP
+extern void doSetuid();
+extern void undoSetuid();
+#endif
+
+#ifdef VST_SUPPORT
+#include <fst.h>
+#endif
+
+//extern int jackmidi_pi[2];
+//extern int jackmidi_po[2];
+
+//jack_port_t *midi_port_in[JACK_MIDI_CHANNELS];
+//jack_port_t *midi_port_out[JACK_MIDI_CHANNELS];
+
+//muse_jack_midi_buffer jack_midi_out_data[JACK_MIDI_CHANNELS];
+//muse_jack_midi_buffer jack_midi_in_data[JACK_MIDI_CHANNELS];
+
+JackAudioDevice* jackAudio;
+
+//---------------------------------------------------------
+// checkJackClient - make sure client is valid
+//---------------------------------------------------------
+inline bool checkJackClient(jack_client_t* _client)
+ {
+ if (_client == NULL) {
+ printf("Panic! no _client!\n");
+ return false;
+ }
+ return true;
+ }
+//---------------------------------------------------------
+// checkAudioDevice - make sure audioDevice exists
+//---------------------------------------------------------
+bool checkAudioDevice()
+ {
+ if (audioDevice == NULL) {
+ printf("Muse:checkAudioDevice: no audioDevice\n");
+ return false;
+ }
+ return true;
+ }
+
+
+//---------------------------------------------------------
+// jack_thread_init
+//---------------------------------------------------------
+
+static void jack_thread_init (void* ) // data
+ {
+ doSetuid();
+ /*
+ if (jackAudio->isRealtime()) {
+ struct sched_param rt_param;
+ int rv;
+ memset(&rt_param, 0, sizeof(sched_param));
+ int type;
+ rv = pthread_getschedparam(pthread_self(), &type, &rt_param);
+ if (rv != 0)
+ perror("get scheduler parameter");
+ if (type != SCHED_FIFO) {
+ fprintf(stderr, "JACK thread not running SCHED_FIFO, try to set...\n");
+
+ memset(&rt_param, 0, sizeof(sched_param));
+ rt_param.sched_priority = 1;
+ rv = pthread_setschedparam(pthread_self(), SCHED_FIFO, &rt_param);
+ if (rv != 0)
+ perror("set realtime scheduler");
+ memset(&rt_param, 0, sizeof(sched_param));
+ rv = pthread_getschedparam(pthread_self(), &type, &rt_param);
+ if (rv != 0)
+ perror("get scheduler parameter");
+ if (type != SCHED_FIFO)
+ fprintf(stderr, "JACK still not running FIFO !?!\n"
+ "======reliable RT operation not possible!!======\n");
+ else
+ fprintf(stderr, "JACK thread succesfully set to SCHED_FIFO\n");
+ }
+ }
+ */
+#ifdef VST_SUPPORT
+ if (loadVST)
+ fst_adopt_thread();
+#endif
+ undoSetuid();
+ }
+
+/*
+//---------------------------------------------------------
+// processAudio + Midi
+// JACK callback
+//---------------------------------------------------------
+void
+print_triplet(unsigned char *data)
+{
+ int a,b,c;
+ a = b = c = 0;
+ memcpy(&a, data, 1);
+ memcpy(&b, data+1, 1);
+ memcpy(&c, data+2, 1);
+ fprintf(stderr, "%x,%x,%x", a, b, c);
+}
+*/
+
+/*
+void handle_jack_midi_in_events(jack_nframes_t frames)
+{
+ char buf = 0;
+ int i,j;
+ jack_midi_event_t midi_event;
+ unsigned char t,n,v;
+
+ for(j = 0; j < JACK_MIDI_CHANNELS; j++){
+ void *midi_buffer_in = jack_port_get_buffer(midi_port_in[j], frames);
+ int event_count = jack_midi_get_event_count(midi_buffer_in);
+
+ for(i = 0; i < event_count; i++){
+ jack_midi_event_get(&midi_event, midi_buffer_in, i);
+ t = midi_event.buffer[0];
+ n = midi_event.buffer[1];
+ v = midi_event.buffer[2];
+ if(((*(midi_event.buffer) & 0xf0)) == 0x90){
+ fprintf(stderr, "jack-midi-in-event: ON_ time=%d %u ", midi_event.time,
+ midi_event.size);
+ print_triplet(midi_event.buffer);
+ fprintf(stderr, "\n");
+ }else if(((*(midi_event.buffer)) & 0xf0) == 0x80){
+ fprintf(stderr, "jack-midi-in-event: OFF time=%d %u ", midi_event.time,
+ midi_event.size);
+ print_triplet(midi_event.buffer);
+ fprintf(stderr, "\n");
+ }else{
+ fprintf(stderr, "jack-midi-in-event: ??? time=%d %u ", midi_event.time,
+ midi_event.size);
+ print_triplet(midi_event.buffer);
+ fprintf(stderr, "\n");
+ }
+ jack_midi_in_data[j].buffer[0] = t;
+ jack_midi_in_data[j].buffer[1] = n;
+ jack_midi_in_data[j].buffer[2] = v;
+ jack_midi_in_data[j].buffer[3] = 1;
+ fprintf(stderr, "handle_jack_midi_in_events() w\n");
+ write(jackmidi_pi[1], &buf, 1);
+ fprintf(stderr, "handle_jack_midi_in_events() wd\n");
+ }
+ }
+}
+
+void handle_jack_midi_out_events(jack_nframes_t frames)
+{
+ unsigned char *data;
+ void *port_buf;
+ int i,j,n,x;
+
+ //for(i = 0; i < JACK_MIDI_CHANNELS; i++){
+ for(i = 0; i < JACK_MIDI_CHANNELS; ++i){
+ // jack-midi-clear any old events
+ while(jack_midi_out_data[i].buffer[jack_midi_out_data[i].take*4+3] == 2){
+ port_buf = jack_port_get_buffer(midi_port_out[i], frames);
+ jack_midi_clear_buffer(port_buf);
+ jack_midi_out_data[i].buffer[jack_midi_out_data[i].take*4+3] = 0;
+ // point the take to the next slot
+ jack_midi_out_data[i].take++;
+ if(jack_midi_out_data[i].take >= JACK_MIDI_BUFFER_SIZE){
+ jack_midi_out_data[i].take = 0;
+ }
+ }
+ // check if any incoming midi-events from muse
+ if(jack_midi_out_data[i].give != jack_midi_out_data[i].take){
+
+ if(jack_midi_out_data[i].give > jack_midi_out_data[i].take){
+ n = jack_midi_out_data[i].give - jack_midi_out_data[i].take;
+ }else{
+ n = jack_midi_out_data[i].give +
+ (JACK_MIDI_BUFFER_SIZE - jack_midi_out_data[i].take);
+ }
+ port_buf = jack_port_get_buffer(midi_port_out[i], frames);
+ jack_midi_clear_buffer(port_buf);
+ // FIX: midi events has different sizes, compare note-on to
+ // program-change. We should first walk over the events
+ // counting the size.
+ //data = jack_midi_event_reserve(port_buf, 0, n*3);
+ //x = jack_midi_out_data[i].take;
+ //for(j = 0; j < n; j++){
+ // data[j*3+0] = jack_midi_out_data[i].buffer[x*4+0];
+ // data[j*3+1] = jack_midi_out_data[i].buffer[x*4+1];
+ // data[j*3+2] = jack_midi_out_data[i].buffer[x*4+2];
+ // after having copied the buffer over to the jack-buffer,
+ // mark the muses midi-out buffer as 'need-cleaning'
+ // jack_midi_out_data[i].buffer[x*4+3] = 2;
+ // x++;
+ // if(x >= JACK_MIDI_BUFFER_SIZE){
+ // x = 0;
+ // }
+ //}
+
+ x = jack_midi_out_data[i].take;
+ for(j = 0; j < n; ++j)
+ {
+ data = jack_midi_event_reserve(port_buf, 0, 3);
+ if(data == 0)
+ {
+ fprintf(stderr, "handle_jack_midi_out_events: buffer overflow, event lost\n");
+ // Can do no more processing. Just return.
+ return;
+ }
+ data[0] = jack_midi_out_data[i].buffer[x*4+0];
+ data[1] = jack_midi_out_data[i].buffer[x*4+1];
+ data[2] = jack_midi_out_data[i].buffer[x*4+2];
+ // after having copied the buffer over to the jack-buffer,
+ // mark the muses midi-out buffer as 'need-cleaning'
+ jack_midi_out_data[i].buffer[x*4+3] = 2;
+ x++;
+ if(x >= JACK_MIDI_BUFFER_SIZE){
+ x = 0;
+ }
+ }
+
+ }
+ }
+}
+*/
+
+//static int processAudio(jack_nframes_t frames, void*)
+int JackAudioDevice::processAudio(jack_nframes_t frames, void*)
+{
+ jackAudio->_frameCounter += frames;
+
+/// handle_jack_midi_in_events(frames);
+/// handle_jack_midi_out_events(frames);
+
+// if (JACK_DEBUG)
+// printf("processAudio - >>>>\n");
+ segmentSize = frames;
+ if (audio->isRunning())
+ audio->process((unsigned long)frames);
+ else {
+ if (debugMsg)
+ puts("jack calling when audio is disconnected!\n");
+ }
+// if (JACK_DEBUG)
+// printf("processAudio - <<<<\n");
+ return 0;
+}
+
+//---------------------------------------------------------
+// processSync
+// return TRUE (non-zero) when ready to roll.
+//---------------------------------------------------------
+
+static int processSync(jack_transport_state_t state, jack_position_t* pos, void*)
+ {
+ if (JACK_DEBUG)
+ printf("processSync()\n");
+
+ if(!useJackTransport.value())
+ return 1;
+
+ int audioState = Audio::STOP;
+ switch (state) {
+ case JackTransportStopped:
+ audioState = Audio::STOP;
+ break;
+ case JackTransportLooping:
+ case JackTransportRolling:
+ audioState = Audio::PLAY;
+ break;
+ case JackTransportStarting:
+ //printf("processSync JackTransportStarting\n");
+
+ audioState = Audio::START_PLAY;
+ break;
+ //case JackTransportNetStarting:
+ // FIXME: Quick and dirty hack to support both Jack-1 and Jack-2
+ // Really need a config check of version...
+ case 4:
+ //printf("processSync JackTransportNetStarting\n");
+
+ audioState = Audio::START_PLAY;
+ break;
+ }
+
+ unsigned frame = pos->frame;
+ //printf("processSync valid:%d frame:%d\n", pos->valid, frame);
+
+ // p3.3.23
+ //printf("Jack processSync() before audio->sync frame:%d\n", frame);
+ //return audio->sync(audioState, frame);
+ int rv = audio->sync(audioState, frame);
+ //printf("Jack processSync() after audio->sync frame:%d\n", frame);
+ return rv;
+ }
+
+//---------------------------------------------------------
+// timebase_callback
+//---------------------------------------------------------
+
+static void timebase_callback(jack_transport_state_t /* state */,
+ jack_nframes_t /* nframes */,
+ jack_position_t* pos,
+ int /* new_pos */,
+ void*)
+ {
+ //printf("Jack timebase_callback pos->frame:%u audio->tickPos:%d song->cpos:%d\n", pos->frame, audio->tickPos(), song->cpos());
+
+ // p3.3.27
+ //Pos p(pos->frame, false);
+ Pos p(extSyncFlag.value() ? audio->tickPos() : pos->frame, extSyncFlag.value() ? true : false);
+ // Can't use song pos - it is only updated every (slow) GUI heartbeat !
+ //Pos p(extSyncFlag.value() ? song->cpos() : pos->frame, extSyncFlag.value() ? true : false);
+
+ 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:
+ //
+
+ // p3.3.26
+ //pos->beats_per_bar = 4;
+ //pos->beat_type = 4;
+ //pos->ticks_per_beat = 384;
+ //
+ /* // From example client transport.c :
+ float time_beats_per_bar = 4.0;
+ float time_beat_type = 0.25; // Huh? Inverted? From docs: "Time signature 'denominator'"
+ double time_ticks_per_beat = 1920.0; // Huh? Ticks per beat should be 24 etc. not 384 or 1920 etc. Otherwise it would be called 'frames_per_beat'.
+ double time_beats_per_minute = 120.0;
+ */
+ //
+ int z, n;
+ sigmap.timesig(p.tick(), z, n);
+ pos->beats_per_bar = z;
+ pos->beat_type = n;
+ //pos->ticks_per_beat = config.division;
+ pos->ticks_per_beat = 24;
+
+ int tempo = tempomap.tempo(p.tick());
+ pos->beats_per_minute = (60000000.0 / tempo) * tempomap.globalTempo()/100.0;
+ }
+
+//---------------------------------------------------------
+// processShutdown
+//---------------------------------------------------------
+
+static void processShutdown(void*)
+ {
+ if (JACK_DEBUG)
+ printf("processShutdown()\n");
+ //printf("processShutdown\n");
+ jackAudio->nullify_client();
+ audio->shutdown();
+
+ int c=0;
+ while(midiSeqRunning == true) {
+ if(c++ >10) {
+ fprintf(stderr, "sequencer still running, something is very wrong.\n");
+ break;
+ }
+ sleep(1);
+ }
+ delete jackAudio;
+ jackAudio=0;
+ audioDevice=0;
+ }
+
+//---------------------------------------------------------
+// jackError
+//---------------------------------------------------------
+
+static void jackError(const char *s)
+ {
+ //error->logError( "JACK ERROR: %s\n", s);
+ fprintf(stderr,"JACK ERROR: %s\n", s);
+ }
+
+//---------------------------------------------------------
+// noJackError
+//---------------------------------------------------------
+
+static void noJackError(const char* /* s */)
+ {
+ }
+
+//---------------------------------------------------------
+// JackAudioDevice
+//---------------------------------------------------------
+
+JackAudioDevice::JackAudioDevice(jack_client_t* cl, char* name)
+ : AudioDevice()
+ {
+ _frameCounter = 0;
+ //JackAudioDevice::jackStarted=false;
+ strcpy(jackRegisteredName, name);
+ _client = cl;
+ dummyState = Audio::STOP;
+ dummyPos = 0;
+ }
+
+//---------------------------------------------------------
+// ~JackAudioDevice
+//---------------------------------------------------------
+
+JackAudioDevice::~JackAudioDevice()
+ {
+ if (JACK_DEBUG)
+ printf("~JackAudioDevice()\n");
+ if (_client) {
+
+ /*
+ // p3.3.35
+ for(int i = 0; i < JACK_MIDI_CHANNELS; i++)
+ {
+ if(midi_port_in[i])
+ jack_port_unregister(_client, midi_port_in[i]);
+ if(midi_port_out[i])
+ jack_port_unregister(_client, midi_port_out[i]);
+ }
+ */
+
+ if (jack_client_close(_client)) {
+ //error->logError("jack_client_close() failed: %s\n", strerror(errno));
+ fprintf(stderr,"jack_client_close() failed: %s\n", strerror(errno));
+ }
+ }
+ if (JACK_DEBUG)
+ printf("~JackAudioDevice() after jack_client_close()\n");
+ }
+
+//---------------------------------------------------------
+// realtimePriority
+// return zero if not running realtime
+// can only be called if JACK client thread is already
+// running
+//---------------------------------------------------------
+
+int JackAudioDevice::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: JackAudioDevice::realtimePriority: Error: Get jack schedule parameter");
+ return 0;
+ }
+ if (policy != SCHED_FIFO) {
+ printf("MusE: JackAudioDevice::realtimePriority: JACK is not running realtime\n");
+ return 0;
+ }
+ return param.sched_priority;
+ }
+
+/*
+//---------------------------------------------------------
+// getJackName()
+//---------------------------------------------------------
+
+char* JackAudioDevice::getJackName()
+ {
+ return jackRegisteredName;
+ }
+*/
+
+/*
+//---------------------------------------------------------
+// clientName()
+//---------------------------------------------------------
+
+const char* JackAudioDevice::clientName()
+{
+ //if(_client)
+ // return jack_get_client_name(_client);
+ //else
+ // return "MusE";
+ return jackRegisteredName;
+}
+*/
+
+//---------------------------------------------------------
+// initJackAudio
+// return true if JACK not found
+//---------------------------------------------------------
+
+bool initJackAudio()
+ {
+ /*
+ // p3.3.35
+ for(int i = 0; i < JACK_MIDI_CHANNELS; i++)
+ {
+ midi_port_in[i] = 0;
+ midi_port_out[i] = 0;
+ }
+ */
+
+ if (JACK_DEBUG)
+ printf("initJackAudio()\n");
+ if (debugMsg) {
+ fprintf(stderr,"initJackAudio()\n");
+ jack_set_error_function(jackError);
+ }
+ else
+ jack_set_error_function(noJackError);
+ doSetuid();
+
+ //jack_client_t* client = 0;
+ //int i = 0;
+ //char jackIdString[8];
+ //for (i = 0; i < 5; ++i) {
+ // sprintf(jackIdString, "MusE-%d", i+1);
+ //client = jack_client_new(jackIdString);
+ // client = jack_client_open(jackIdString, JackNoStartServer, 0);
+ // if (client)
+ // break;
+ // }
+ //if (i == 5)
+ // return true;
+ jack_status_t status;
+ jack_client_t* client = jack_client_open("MusE", JackNoStartServer, &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");
+ undoSetuid(); // p3.3.51
+ return true;
+ }
+
+ if (debugMsg)
+ fprintf(stderr, "initJackAudio(): client %s opened.\n", jack_get_client_name(client));
+ if (client) {
+ jack_set_error_function(jackError);
+ //jackAudio = new JackAudioDevice(client, jackIdString);
+ jackAudio = new JackAudioDevice(client, jack_get_client_name(client));
+ if (debugMsg)
+ fprintf(stderr, "initJackAudio(): registering client...\n");
+ jackAudio->registerClient();
+ sampleRate = jack_get_sample_rate(client);
+ segmentSize = jack_get_buffer_size(client);
+ jack_set_thread_init_callback(client, (JackThreadInitCallback) jack_thread_init, 0);
+ //jack_set_timebase_callback(client, 0, (JackTimebaseCallback) timebase_callback, 0);
+ }
+ undoSetuid();
+
+ /*
+ // setup midi input/output
+ //memset(jack_midi_out_data, 0, JACK_MIDI_CHANNELS * sizeof(muse_jack_midi_buffer));
+ //memset(jack_midi_in_data, 0, JACK_MIDI_CHANNELS * sizeof(muse_jack_midi_buffer));
+ if(client){
+ for(i = 0; i < JACK_MIDI_CHANNELS; i++)
+ {
+ char buf[80];
+ snprintf(buf, 80, "muse-jack-midi-in-%d", i+1);
+ midi_port_in[i] = jack_port_register(client, buf,
+ JACK_DEFAULT_MIDI_TYPE,
+ JackPortIsInput, 0);
+ if(midi_port_in[i] == NULL){
+ fprintf(stderr, "failed to register jack-midi-in\n");
+ exit(-1);
+ }
+ snprintf(buf, 80, "muse-jack-midi-out-%d", i+1);
+ midi_port_out[i] = jack_port_register(client, buf,
+ JACK_DEFAULT_MIDI_TYPE,
+ JackPortIsOutput, 0);
+ if(midi_port_out == NULL)
+ {
+ fprintf(stderr, "failed to register jack-midi-out\n");
+ exit(-1);
+ }
+ }
+ }
+ else
+ {
+ fprintf(stderr, "WARNING NO muse-jack midi connection\n");
+ }
+ */
+
+ if (client) {
+ audioDevice = jackAudio;
+ jackAudio->scanMidiPorts();
+ return false;
+ }
+ return true;
+ }
+
+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*)
+ {
+ if (debugMsg || JACK_DEBUG)
+ printf("JACK: freewheel_callback: starting%d\n", starting);
+ audio->setFreewheel(starting);
+ }
+
+static int srate_callback(jack_nframes_t n, void*)
+ {
+ if (debugMsg || JACK_DEBUG)
+ printf("JACK: sample rate changed: %d\n", n);
+ return 0;
+ }
+
+//---------------------------------------------------------
+// registration_callback
+//---------------------------------------------------------
+
+static void registration_callback(jack_port_id_t, int, void*)
+{
+ if(debugMsg || JACK_DEBUG)
+ printf("JACK: registration changed\n");
+
+ audio->sendMsgToGui('R');
+}
+
+//---------------------------------------------------------
+// JackAudioDevice::registrationChanged
+// this is called from song in gui context triggered
+// by registration_callback()
+//---------------------------------------------------------
+
+void JackAudioDevice::registrationChanged()
+{
+ if(JACK_DEBUG)
+ printf("JackAudioDevice::registrationChanged()\n");
+
+ // Rescan.
+ scanMidiPorts();
+ // Connect the Jack midi client ports to the device ports.
+ //connectJackMidiPorts();
+}
+
+//---------------------------------------------------------
+// JackAudioDevice::connectJackMidiPorts
+//---------------------------------------------------------
+
+void JackAudioDevice::connectJackMidiPorts()
+{
+ if(JACK_DEBUG)
+ printf("JackAudioDevice::connectJackMidiPorts()\n");
+
+ for (iMidiDevice i = midiDevices.begin(); i != midiDevices.end(); ++i)
+ {
+ //MidiJackDevice* mjd = dynamic_cast<MidiJackDevice*>(*i);
+ //if(!mjd)
+ MidiDevice* md = *i;
+ if(md->deviceType() != MidiDevice::JACK_MIDI)
+ continue;
+
+ void* port = md->clientPort();
+ if(md->rwFlags() & 1)
+ {
+ RouteList* rl = md->outRoutes();
+ for (iRoute r = rl->begin(); r != rl->end(); ++r)
+ connect(port, r->jackPort);
+ }
+ else
+ if(md->rwFlags() & 2)
+ {
+ RouteList* rl = md->inRoutes();
+ for (iRoute r = rl->begin(); r != rl->end(); ++r)
+ connect(r->jackPort, port);
+ }
+ }
+
+
+ /*
+ const char* type = JACK_DEFAULT_MIDI_TYPE;
+ const char** ports = jack_get_ports(_client, 0, type, 0);
+ for (const char** p = ports; p && *p; ++p)
+ {
+ jack_port_t* port = jack_port_by_name(_client, *p);
+ if(!port)
+ continue;
+ // Ignore our own client ports.
+ if(jack_port_is_mine(_client, port))
+ {
+ if(debugMsg)
+ printf(" ignoring own port: %s\n", *p);
+ continue;
+ }
+ int nsz = jack_port_name_size();
+ char buffer[nsz];
+ strncpy(buffer, *p, nsz);
+ // Ignore the MusE Jack port.
+ //if(strncmp(buffer, "MusE", 4) == 0)
+ // continue;
+
+ if(debugMsg)
+ printf(" found port: %s ", buffer);
+
+ // If there are aliases for this port, use the first one - much better for identifying.
+ //char a1[nsz];
+ char a2[nsz];
+ char* aliases[2];
+ //aliases[0] = a1;
+ aliases[0] = buffer;
+ aliases[1] = a2;
+ // To disable aliases, just rem this line.
+ jack_port_get_aliases(port, aliases);
+ //int na = jack_port_get_aliases(port, aliases);
+ //char* namep = (na >= 1) ? aliases[0] : buffer;
+ char* namep = aliases[0];
+
+ if(debugMsg)
+ printf("alias: %s\n", aliases[0]);
+
+ //int flags = 0;
+ int pf = jack_port_flags(port);
+ // If Jack port can send data to us...
+ //if(pf & JackPortIsOutput)
+ // Mark as input capable.
+ // flags |= 2;
+ // If Jack port can receive data from us...
+ //if(pf & JackPortIsInput)
+ // Mark as output capable.
+ // flags |= 1;
+
+ //JackPort jp(0, QString(buffer), flags);
+ //portList.append(jp);
+
+ QString name(namep);
+
+ if(JACK_DEBUG)
+ printf("JackAudioDevice::graphChanged %s\n", name.latin1());
+
+ for(iMidiDevice imd = midiDevices.begin(); imd != midiDevices.end(); ++imd)
+ {
+ // Is it a Jack midi device?
+ MidiJackDevice* mjd = dynamic_cast<MidiJackDevice*>(*imd);
+ if(!mjd)
+ continue;
+
+ //if(dev->name() != name)
+ // continue;
+
+ // Is this port the one created for the Jack midi device?
+ if(!mjd->clientJackPort() || (mjd->clientJackPort() != port))
+ continue;
+
+ jack_port_t* devport = jack_port_by_name(_client, mjd->name().latin1());
+ if(!devport)
+ continue;
+
+ int ofl = mjd->openFlags();
+
+ if(JACK_DEBUG)
+ printf("JackAudioDevice::graphChanged found MidiJackDevice:%s\n", mjd->name().latin1());
+
+ // Note docs say it can't be both input and output. src, dest
+ // If Jack port can receive data from us and we actually want to...
+ if((pf & JackPortIsOutput) && (ofl & 1))
+ {
+ if(JACK_DEBUG)
+ printf("JackAudioDevice::graphChanged connecting MusE output\n");
+ audioDevice->connect(port, devport);
+ }
+ else
+ // If Jack port can send data to us and we actually want it...
+ if((pf & JackPortIsInput) && (ofl & 2))
+ {
+ if(JACK_DEBUG)
+ printf("JackAudioDevice::graphChanged connecting MusE input\n");
+ audioDevice->connect(devport, port);
+ }
+
+ break;
+ }
+ }
+
+ if(ports)
+ free(ports);
+
+ */
+}
+//---------------------------------------------------------
+// client_registration_callback
+//---------------------------------------------------------
+
+static void client_registration_callback(const char *name, int isRegister, void*)
+ {
+ if (debugMsg || JACK_DEBUG)
+ printf("JACK: client registration changed:%s register:%d\n", name, isRegister);
+ }
+
+//---------------------------------------------------------
+// port_connect_callback
+//---------------------------------------------------------
+
+static void port_connect_callback(jack_port_id_t a, jack_port_id_t b, int isConnect, void*)
+ {
+ if (debugMsg || JACK_DEBUG)
+ {
+ //jack_port_t* ap = jack_port_by_id(_client, a);
+ //jack_port_t* bp = jack_port_by_id(_client, b);
+ //printf("JACK: port connections changed: A:%d:%s B:%d:%s isConnect:%d\n", a, jack_port_name(ap), b, jack_port_name(bp), isConnect);
+ printf("JACK: port connections changed: A:%d B:%d isConnect:%d\n", a, b, isConnect);
+ }
+ }
+
+//---------------------------------------------------------
+// graph_callback
+// this is called from jack when the connections
+// changed
+//---------------------------------------------------------
+
+static int graph_callback(void*)
+ {
+ if (JACK_DEBUG)
+ printf("graph_callback()\n");
+ // we cannot call JackAudioDevice::graphChanged() from this
+ // context, so we send a message to the gui thread which in turn
+ // calls graphChanged()
+ audio->sendMsgToGui('C');
+ if (debugMsg)
+ printf("JACK: graph changed\n");
+ return 0;
+ }
+
+//---------------------------------------------------------
+// JackAudioDevice::graphChanged
+// this is called from song in gui context triggered
+// by graph_callback()
+//---------------------------------------------------------
+
+void JackAudioDevice::graphChanged()
+{
+ if (JACK_DEBUG)
+ printf("graphChanged()\n");
+ if(!checkJackClient(_client)) return;
+ InputList* il = song->inputs();
+ for (iAudioInput ii = il->begin(); ii != il->end(); ++ii) {
+ AudioInput* it = *ii;
+ int channels = it->channels();
+ for (int channel = 0; channel < channels; ++channel) {
+ jack_port_t* port = (jack_port_t*)(it->jackPort(channel));
+ if (port == 0)
+ continue;
+ const char** ports = jack_port_get_all_connections(_client, port);
+ RouteList* rl = it->inRoutes();
+
+ //---------------------------------------
+ // check for disconnects
+ //---------------------------------------
+
+ bool erased;
+ // limit set to 20 iterations for disconnects, don't know how to make it go
+ // the "right" amount
+ for (int i = 0;i < 20;i++) {
+ erased = false;
+ for (iRoute irl = rl->begin(); irl != rl->end(); ++irl) {
+ if (irl->channel != channel)
+ continue;
+ QString name = irl->name();
+ const char* portName = name.latin1();
+ //printf("portname=%s\n", portName);
+ bool found = false;
+ const char** pn = ports;
+ while (pn && *pn) {
+ if (strcmp(*pn, portName) == 0) {
+ found = true;
+ break;
+ }
+ ++pn;
+ }
+ if (!found) {
+ audio->msgRemoveRoute1(
+ //Route(portName, false, channel),
+ Route(portName, false, channel, Route::JACK_ROUTE),
+ Route(it, channel)
+ );
+ erased = true;
+ break;
+ }
+ }
+ if (!erased)
+ break;
+ }
+
+ //---------------------------------------
+ // check for connects
+ //---------------------------------------
+
+ if (ports) {
+ const char** pn = ports;
+ while (*pn) {
+ bool found = false;
+ for (iRoute irl = rl->begin(); irl != rl->end(); ++irl) {
+ if (irl->channel != channel)
+ continue;
+ QString name = irl->name();
+ const char* portName = name.latin1();
+ if (strcmp(*pn, portName) == 0) {
+ found = true;
+ break;
+ }
+ }
+ if (!found) {
+ audio->msgAddRoute1(
+ //Route(*pn, false, channel),
+ Route(*pn, false, channel, Route::JACK_ROUTE),
+ Route(it, channel)
+ );
+ }
+ ++pn;
+ }
+
+ // p3.3.37
+ //delete ports;
+ free(ports);
+
+ ports = NULL;
+ }
+ }
+ }
+ 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 = (jack_port_t*)(it->jackPort(channel));
+ if (port == 0)
+ continue;
+ const char** ports = jack_port_get_all_connections(_client, port);
+ RouteList* rl = it->outRoutes();
+
+ //---------------------------------------
+ // check for disconnects
+ //---------------------------------------
+
+ bool erased;
+ // limit set to 20 iterations for disconnects, don't know how to make it go
+ // the "right" amount
+ for (int i = 0; i < 20 ; i++) {
+ erased = false;
+ for (iRoute irl = rl->begin(); irl != rl->end(); ++irl) {
+ if (irl->channel != channel)
+ continue;
+ QString name = irl->name();
+ const char* portName = name.latin1();
+ bool found = false;
+ const char** pn = ports;
+ while (pn && *pn) {
+ if (strcmp(*pn, portName) == 0) {
+ found = true;
+ break;
+ }
+ ++pn;
+ }
+ if (!found) {
+ audio->msgRemoveRoute1(
+ Route(it, channel),
+ //Route(portName, false, channel)
+ Route(portName, false, channel, Route::JACK_ROUTE)
+ );
+ erased = true;
+ break;
+ }
+ }
+ if (!erased)
+ break;
+ }
+
+ //---------------------------------------
+ // check for connects
+ //---------------------------------------
+
+ if (ports) {
+ const char** pn = ports;
+ while (*pn) {
+ bool found = false;
+ for (iRoute irl = rl->begin(); irl != rl->end(); ++irl) {
+ if (irl->channel != channel)
+ continue;
+ QString name = irl->name();
+ const char* portName = name.latin1();
+ if (strcmp(*pn, portName) == 0) {
+ found = true;
+ break;
+ }
+ }
+ if (!found) {
+ audio->msgAddRoute1(
+ Route(it, channel),
+ //Route(*pn, false, channel)
+ Route(*pn, false, channel, Route::JACK_ROUTE)
+ );
+ }
+ ++pn;
+ }
+
+ // p3.3.37
+ //delete ports;
+ free(ports);
+
+ ports = NULL;
+ }
+ }
+ }
+
+ for (iMidiDevice ii = midiDevices.begin(); ii != midiDevices.end(); ++ii)
+ {
+ MidiDevice* md = *ii;
+ if(md->deviceType() != MidiDevice::JACK_MIDI)
+ continue;
+
+ //MidiJackDevice* mjd = dynamic_cast<MidiJackDevice*>(*ii);
+ //if(!mjd)
+ // continue;
+ //for (int channel = 0; channel < channels; ++channel)
+ //{
+ jack_port_t* port = (jack_port_t*)md->clientPort();
+ if (port == 0)
+ continue;
+ const char** ports = jack_port_get_all_connections(_client, port);
+
+ //---------------------------------------
+ // outputs
+ //---------------------------------------
+
+ if(md->rwFlags() & 1) // Writable
+ {
+ RouteList* rl = md->outRoutes();
+
+ //---------------------------------------
+ // check for disconnects
+ //---------------------------------------
+
+ bool erased;
+ // limit set to 20 iterations for disconnects, don't know how to make it go
+ // the "right" amount
+ for (int i = 0; i < 20 ; i++)
+ {
+ erased = false;
+ for (iRoute irl = rl->begin(); irl != rl->end(); ++irl) {
+ //if (irl->channel != channel)
+ // continue;
+ QString name = irl->name();
+ const char* portName = name.latin1();
+ bool found = false;
+ const char** pn = ports;
+ while (pn && *pn) {
+ if (strcmp(*pn, portName) == 0) {
+ found = true;
+ break;
+ }
+ ++pn;
+ }
+ if (!found) {
+ audio->msgRemoveRoute1(
+ //Route(it, channel),
+ //Route(mjd),
+ Route(md, -1),
+ //Route(portName, false, channel)
+ //Route(portName, false, -1)
+ Route(portName, false, -1, Route::JACK_ROUTE)
+ );
+ erased = true;
+ break;
+ }
+ }
+ if (!erased)
+ break;
+ }
+
+ //---------------------------------------
+ // check for connects
+ //---------------------------------------
+
+ if (ports)
+ {
+ const char** pn = ports;
+ while (*pn) {
+ bool found = false;
+ for (iRoute irl = rl->begin(); irl != rl->end(); ++irl) {
+ //if (irl->channel != channel)
+ // continue;
+ QString name = irl->name();
+ const char* portName = name.latin1();
+ if (strcmp(*pn, portName) == 0) {
+ found = true;
+ break;
+ }
+ }
+ if (!found) {
+ audio->msgAddRoute1(
+ //Route(it, channel),
+ //Route(mjd),
+ Route(md, -1),
+ //Route(*pn, false, channel)
+ //Route(*pn, false, -1)
+ Route(*pn, false, -1, Route::JACK_ROUTE)
+ );
+ }
+ ++pn;
+ }
+
+ // p3.3.37
+ //delete ports;
+ //free(ports);
+
+ //ports = NULL;
+ }
+ }
+
+
+ //------------------------
+ // Inputs
+ //------------------------
+
+ if(md->rwFlags() & 2) // Readable
+ {
+ RouteList* rl = md->inRoutes();
+
+ //---------------------------------------
+ // check for disconnects
+ //---------------------------------------
+
+ bool erased;
+ // limit set to 20 iterations for disconnects, don't know how to make it go
+ // the "right" amount
+ for (int i = 0; i < 20 ; i++)
+ {
+ erased = false;
+ for (iRoute irl = rl->begin(); irl != rl->end(); ++irl) {
+ //if (irl->channel != channel)
+ // continue;
+ QString name = irl->name();
+ const char* portName = name.latin1();
+ bool found = false;
+ const char** pn = ports;
+ while (pn && *pn) {
+ if (strcmp(*pn, portName) == 0) {
+ found = true;
+ break;
+ }
+ ++pn;
+ }
+ if (!found) {
+ audio->msgRemoveRoute1(
+ //Route(portName, false, channel),
+ //Route(portName, false, -1),
+ Route(portName, false, -1, Route::JACK_ROUTE),
+ //Route(it, channel)
+ //Route(mjd)
+ Route(md, -1)
+ );
+ erased = true;
+ break;
+ }
+ }
+ if (!erased)
+ break;
+ }
+
+ //---------------------------------------
+ // check for connects
+ //---------------------------------------
+
+ if (ports)
+ {
+ const char** pn = ports;
+ while (*pn) {
+ bool found = false;
+ for (iRoute irl = rl->begin(); irl != rl->end(); ++irl) {
+ //if (irl->channel != channel)
+ // continue;
+ QString name = irl->name();
+ const char* portName = name.latin1();
+ if (strcmp(*pn, portName) == 0) {
+ found = true;
+ break;
+ }
+ }
+ if (!found) {
+ audio->msgAddRoute1(
+ //Route(*pn, false, channel),
+ //Route(*pn, false, -1),
+ Route(*pn, false, -1, Route::JACK_ROUTE),
+ //Route(it, channel)
+ //Route(mjd)
+ Route(md, -1)
+ );
+ }
+ ++pn;
+ }
+ }
+ }
+ if(ports)
+ // Done with ports. Free them.
+ //delete ports;
+ free(ports);
+
+ ports = NULL;
+ }
+}
+
+//static int xrun_callback(void*)
+// {
+// printf("JACK: xrun\n");
+// return 0;
+// }
+
+//---------------------------------------------------------
+// register
+//---------------------------------------------------------
+
+void JackAudioDevice::registerClient()
+ {
+ if (JACK_DEBUG)
+ printf("registerClient()\n");
+ if(!checkJackClient(_client)) return;
+ jack_set_process_callback(_client, processAudio, 0);
+ jack_set_sync_callback(_client, processSync, 0);
+ // FIXME: FIXME:
+ // Added by Tim. p3.3.20
+ // Did not help. Seek during play: Jack keeps switching to STOP state after about 1-2 seconds timeout if sync is holding it up.
+ // Nothing in MusE seems to be telling it to stop.
+ jack_set_sync_timeout(_client, 5000000); // Change default 2 to 5 second sync timeout because prefetch may be very slow esp. with resampling !
+
+ 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);
+ // p3.3.37
+ jack_set_client_registration_callback(_client, client_registration_callback, 0);
+ jack_set_port_connect_callback(_client, port_connect_callback, 0);
+
+ jack_set_graph_order_callback(_client, graph_callback, 0);
+// jack_set_xrun_callback(client, xrun_callback, 0);
+ jack_set_freewheel_callback (_client, freewheel_callback, 0);
+ }
+
+//---------------------------------------------------------
+// registerInPort
+//---------------------------------------------------------
+
+//void* JackAudioDevice::registerInPort(const char* name)
+void* JackAudioDevice::registerInPort(const char* name, bool midi)
+ {
+ if (JACK_DEBUG)
+ printf("registerInPort()\n");
+ if(!checkJackClient(_client)) return NULL;
+ const char* type = midi ? JACK_DEFAULT_MIDI_TYPE : JACK_DEFAULT_AUDIO_TYPE;
+ //void* p = jack_port_register(_client, name, JACK_DEFAULT_AUDIO_TYPE, JackPortIsInput, 0);
+ void* p = jack_port_register(_client, name, type, JackPortIsInput, 0);
+// printf("JACK: registerInPort: <%s> %p\n", name, p);
+ return p;
+ }
+
+//---------------------------------------------------------
+// registerOutPort
+//---------------------------------------------------------
+
+//void* JackAudioDevice::registerOutPort(const char* name)
+void* JackAudioDevice::registerOutPort(const char* name, bool midi)
+ {
+ if (JACK_DEBUG)
+ printf("registerOutPort()\n");
+ if(!checkJackClient(_client)) return NULL;
+ const char* type = midi ? JACK_DEFAULT_MIDI_TYPE : JACK_DEFAULT_AUDIO_TYPE;
+ //void* p = jack_port_register(_client, name, JACK_DEFAULT_AUDIO_TYPE, JackPortIsOutput, 0);
+ void* p = jack_port_register(_client, name, type, JackPortIsOutput, 0);
+// printf("JACK: registerOutPort: <%s> %p\n", name, p);
+ return p;
+ }
+
+//---------------------------------------------------------
+// exitJackAudio
+//---------------------------------------------------------
+
+void exitJackAudio()
+ {
+ if (JACK_DEBUG)
+ printf("exitJackAudio()\n");
+ if (jackAudio)
+ delete jackAudio;
+
+ if (JACK_DEBUG)
+ printf("exitJackAudio() after delete jackAudio\n");
+
+ // Added by Tim. p3.3.14
+ audioDevice = NULL;
+
+ }
+
+//---------------------------------------------------------
+// connect
+//---------------------------------------------------------
+
+void JackAudioDevice::connect(void* src, void* dst)
+{
+ if (JACK_DEBUG)
+ printf("JackAudioDevice::connect()\n");
+ if(!checkJackClient(_client)) return;
+ const char* sn = jack_port_name((jack_port_t*) src);
+ const char* dn = jack_port_name((jack_port_t*) dst);
+ if (sn == 0 || dn == 0) {
+ fprintf(stderr, "JackAudio::connect: unknown jack ports\n");
+ return;
+ }
+ int err = jack_connect(_client, sn, dn);
+ //if (jack_connect(_client, sn, dn)) {
+ if (err) {
+ fprintf(stderr, "jack connect <%s>%p - <%s>%p failed with err:%d\n",
+ sn, src, dn, dst, err);
+ }
+ else
+ if (JACK_DEBUG)
+ {
+ fprintf(stderr, "jack connect <%s>%p - <%s>%p succeeded\n",
+ sn, src, dn, dst);
+ }
+}
+
+//---------------------------------------------------------
+// disconnect
+//---------------------------------------------------------
+
+void JackAudioDevice::disconnect(void* src, void* dst)
+{
+ if (JACK_DEBUG)
+ printf("JackAudioDevice::disconnect()\n");
+ if(!checkJackClient(_client)) return;
+ const char* sn = jack_port_name((jack_port_t*) src);
+ const char* dn = jack_port_name((jack_port_t*) dst);
+ if (sn == 0 || dn == 0) {
+ fprintf(stderr, "JackAudio::disconnect: unknown jack ports\n");
+ return;
+ }
+ int err = jack_disconnect(_client, sn, dn);
+ //if (jack_disconnect(_client, sn, dn)) {
+ if (err) {
+ fprintf(stderr, "jack disconnect <%s> - <%s> failed with err:%d\n",
+ sn, dn, err);
+ }
+ else
+ if (JACK_DEBUG)
+ {
+ fprintf(stderr, "jack disconnect <%s> - <%s> succeeded\n",
+ sn, dn);
+ }
+}
+
+//---------------------------------------------------------
+// start
+//---------------------------------------------------------
+
+//void JackAudioDevice::start()
+void JackAudioDevice::start(int /*priority*/)
+ {
+ if (JACK_DEBUG)
+ printf("JackAudioDevice::start()\n");
+ if(!checkJackClient(_client)) return;
+
+ doSetuid();
+
+ if (jack_activate(_client)) {
+ undoSetuid(); // p3.3.51
+ fprintf (stderr, "JACK: cannot activate client\n");
+ exit(-1);
+ }
+ /* connect the ports. Note: you can't do this before
+ the client is activated, because we can't allow
+ connections to be made to clients that aren't
+ running.
+ */
+
+ InputList* il = song->inputs();
+ for (iAudioInput i = il->begin(); i != il->end(); ++i) {
+ AudioInput* ai = *i;
+ int channel = ai->channels();
+ for (int ch = 0; ch < channel; ++ch) {
+ RouteList* rl = ai->inRoutes();
+ void* port = ai->jackPort(ch);
+ for (iRoute ir = rl->begin(); ir != rl->end(); ++ir) {
+ if (ir->channel == ch)
+ connect(ir->jackPort, port);
+ }
+ }
+ }
+ OutputList* ol = song->outputs();
+ for (iAudioOutput i = ol->begin(); i != ol->end(); ++i) {
+ AudioOutput* ai = *i;
+ int channel = ai->channels();
+ for (int ch = 0; ch < channel; ++ch) {
+ RouteList* rl = ai->outRoutes();
+ void* port = ai->jackPort(ch);
+ for (iRoute r = rl->begin(); r != rl->end(); ++r) {
+ if (r->channel == ch) {
+ connect(port, r->jackPort);
+ }
+ }
+ }
+ }
+
+ // p3.3.37
+ // Connect the Jack midi client ports to device ports.
+ connectJackMidiPorts();
+
+ undoSetuid();
+
+ //MUSE_DEBUG("JackAudioDevice::start()\n");
+ fflush(stdin);
+ //JackAudioDevice::jackStarted=true;
+ }
+
+//---------------------------------------------------------
+// stop
+//---------------------------------------------------------
+
+void JackAudioDevice::stop()
+ {
+ if (JACK_DEBUG)
+ printf("JackAudioDevice::stop()\n");
+ if(!checkJackClient(_client)) return;
+ if (jack_deactivate(_client)) {
+ fprintf (stderr, "cannot deactivate client\n");
+ }
+ //JackAudioDevice::jackStarted=false;
+ }
+
+//---------------------------------------------------------
+// transportQuery
+//---------------------------------------------------------
+
+jack_transport_state_t JackAudioDevice::transportQuery(jack_position_t* pos)
+{
+ if (JACK_DEBUG)
+ printf("JackAudioDevice::transportQuery pos:%d\n", (unsigned int)pos->frame);
+
+ // TODO: Compose and return a state if MusE is disengaged from Jack transport.
+
+ return jack_transport_query(_client, pos);
+}
+
+//---------------------------------------------------------
+// getCurFrame
+//---------------------------------------------------------
+
+unsigned int JackAudioDevice::getCurFrame()
+{
+ if (JACK_DEBUG)
+ printf("JackAudioDevice::getCurFrame pos.frame:%d\n", pos.frame);
+
+ if(!useJackTransport.value())
+ return (unsigned int)dummyPos;
+
+ return pos.frame;
+}
+
+//---------------------------------------------------------
+// framePos
+//---------------------------------------------------------
+
+int JackAudioDevice::framePos() const
+ {
+ //if(!useJackTransport.value())
+ //{
+ // if (JACK_DEBUG)
+ // printf("JackAudioDevice::framePos dummyPos:%d\n", dummyPos);
+ // return dummyPos;
+ //}
+
+ if(!checkJackClient(_client)) return 0;
+ jack_nframes_t n = jack_frame_time(_client);
+
+ //if (JACK_DEBUG)
+ // printf("JackAudioDevice::framePos jack frame:%d\n", (int)n);
+
+ return (int)n;
+ }
+
+#if 0
+//---------------------------------------------------------
+// framesSinceCycleStart
+//---------------------------------------------------------
+
+int JackAudioDevice::framesSinceCycleStart() const
+ {
+ jack_nframes_t n = jack_frames_since_cycle_start(client);
+ return (int)n;
+ }
+
+//---------------------------------------------------------
+// framesDelay
+// TODO
+//---------------------------------------------------------
+
+int JackAudioDevice::frameDelay() const
+ {
+ jack_nframes_t n = (segmentSize * (segmentCount-1)) - jack_frames_since_cycle_start(client);
+ return (int)n;
+ }
+#endif
+
+//---------------------------------------------------------
+// outputPorts
+//---------------------------------------------------------
+
+std::list<QString> JackAudioDevice::outputPorts(bool midi, int aliases)
+ {
+ if (JACK_DEBUG)
+ printf("JackAudioDevice::outputPorts()\n");
+ std::list<QString> clientList;
+ if(!checkJackClient(_client)) return clientList;
+ QString qname;
+ const char* type = midi ? JACK_DEFAULT_MIDI_TYPE : JACK_DEFAULT_AUDIO_TYPE;
+ const char** ports = jack_get_ports(_client, 0, type, JackPortIsOutput);
+ for (const char** p = ports; p && *p; ++p) {
+ jack_port_t* port = jack_port_by_name(_client, *p);
+ //int flags = jack_port_flags(port);
+ //if (!(flags & JackPortIsOutput))
+ // continue;
+ //char buffer[128];
+
+ int nsz = jack_port_name_size();
+ char buffer[nsz];
+
+ strncpy(buffer, *p, nsz);
+ //if (strncmp(buffer, "MusE", 4) == 0)
+ //{
+ // if(debugMsg)
+ // printf("JackAudioDevice::outputPorts ignoring own MusE port: %s\n", *p);
+ // continue;
+ //}
+
+ // Ignore our own client ports.
+ if(jack_port_is_mine(_client, port))
+ {
+ if(debugMsg)
+ printf("JackAudioDevice::outputPorts ignoring own port: %s\n", *p);
+ continue;
+ }
+
+ // p3.3.38
+ if((aliases == 0) || (aliases == 1))
+ {
+ //char a1[nsz];
+ char a2[nsz];
+ char* al[2];
+ //aliases[0] = a1;
+ al[0] = buffer;
+ al[1] = a2;
+ int na = jack_port_get_aliases(port, al);
+ int a = aliases;
+ if(a >= na)
+ {
+ a = na;
+ if(a > 0)
+ a--;
+ }
+ qname = QString(al[a]);
+ }
+ else
+ qname = QString(buffer);
+
+ //clientList.push_back(QString(buffer));
+ clientList.push_back(qname);
+ }
+
+ // p3.3.37
+ if(ports)
+ free(ports);
+
+ return clientList;
+ }
+
+//---------------------------------------------------------
+// inputPorts
+//---------------------------------------------------------
+
+std::list<QString> JackAudioDevice::inputPorts(bool midi, int aliases)
+ {
+ if (JACK_DEBUG)
+ printf("JackAudioDevice::inputPorts()\n");
+ std::list<QString> clientList;
+ if(!checkJackClient(_client)) return clientList;
+ QString qname;
+ const char* type = midi ? JACK_DEFAULT_MIDI_TYPE : JACK_DEFAULT_AUDIO_TYPE;
+ const char** ports = jack_get_ports(_client, 0, type, JackPortIsInput);
+ for (const char** p = ports; p && *p; ++p) {
+ jack_port_t* port = jack_port_by_name(_client, *p);
+ //int flags = jack_port_flags(port);
+ //if (!(flags & JackPortIsInput))
+ // continue;
+ //char buffer[128];
+
+ int nsz = jack_port_name_size();
+ char buffer[nsz];
+
+ strncpy(buffer, *p, nsz);
+ //if (strncmp(buffer, "MusE", 4) == 0)
+ //{
+ // if(debugMsg)
+ // printf("JackAudioDevice::inputPorts ignoring own MusE port: %s\n", *p);
+ // continue;
+ //}
+
+ // Ignore our own client ports.
+ if(jack_port_is_mine(_client, port))
+ {
+ if(debugMsg)
+ printf("JackAudioDevice::inputPorts ignoring own port: %s\n", *p);
+ continue;
+ }
+
+ // p3.3.38
+ if((aliases == 0) || (aliases == 1))
+ {
+ //char a1[nsz];
+ char a2[nsz];
+ char* al[2];
+ //aliases[0] = a1;
+ al[0] = buffer;
+ al[1] = a2;
+ int na = jack_port_get_aliases(port, al);
+ int a = aliases;
+ if(a >= na)
+ {
+ a = na;
+ if(a > 0)
+ a--;
+ }
+ qname = QString(al[a]);
+ }
+ else
+ qname = QString(buffer);
+
+ //clientList.push_back(QString(buffer));
+ clientList.push_back(qname);
+ }
+
+ // p3.3.37
+ if(ports)
+ free(ports);
+
+ return clientList;
+ }
+
+//---------------------------------------------------------
+// portName
+//---------------------------------------------------------
+
+QString JackAudioDevice::portName(void* port)
+ {
+ if (JACK_DEBUG)
+ printf("JackAudioDevice::portName(\n");
+ if(!checkJackClient(_client)) return "";
+ if (!port)
+ return "";
+
+ QString s(jack_port_name((jack_port_t*)port));
+ //printf("Jack::portName %p %s\n", port, s.latin1());
+ return s;
+ }
+
+//---------------------------------------------------------
+// unregisterPort
+//---------------------------------------------------------
+
+void JackAudioDevice::unregisterPort(void* p)
+ {
+ if (JACK_DEBUG)
+ printf("JackAudioDevice::unregisterPort(\n");
+ if(!checkJackClient(_client)) return;
+// printf("JACK: unregister Port\n");
+ jack_port_unregister(_client, (jack_port_t*)p);
+ }
+
+//---------------------------------------------------------
+// getState
+//---------------------------------------------------------
+
+int JackAudioDevice::getState()
+ {
+ // If we're not using Jack's transport, just return current state.
+ if(!useJackTransport.value())
+ {
+ //pos.valid = jack_position_bits_t(0);
+ //pos.frame = audio->pos().frame();
+ //return audio->getState();
+ //if (JACK_DEBUG)
+ // printf("JackAudioDevice::getState dummyState:%d\n", dummyState);
+ return dummyState;
+ }
+
+ //if (JACK_DEBUG)
+ // printf("JackAudioDevice::getState ()\n");
+ if(!checkJackClient(_client)) return 0;
+ transportState = jack_transport_query(_client, &pos);
+ //if (JACK_DEBUG)
+ // printf("JackAudioDevice::getState transportState:%d\n", transportState);
+
+ switch (transportState) {
+ case JackTransportStopped:
+ return Audio::STOP;
+ case JackTransportLooping:
+ case JackTransportRolling:
+ return Audio::PLAY;
+ case JackTransportStarting:
+ //printf("JackAudioDevice::getState JackTransportStarting\n");
+
+ return Audio::START_PLAY;
+ //case JackTransportNetStarting:
+ // FIXME: Quick and dirty hack to support both Jack-1 and Jack-2
+ // Really need a config check of version...
+ case 4:
+ //printf("JackAudioDevice::getState JackTransportNetStarting\n");
+
+ return Audio::START_PLAY;
+ break;
+ default:
+ return Audio::STOP;
+ }
+ }
+
+//---------------------------------------------------------
+// setFreewheel
+//---------------------------------------------------------
+
+void JackAudioDevice::setFreewheel(bool f)
+ {
+ if (JACK_DEBUG)
+ printf("JackAudioDevice::setFreewheel(\n");
+ if(!checkJackClient(_client)) return;
+// printf("JACK: setFreewheel %d\n", f);
+ jack_set_freewheel(_client, f);
+ }
+
+//---------------------------------------------------------
+// dummySync
+//---------------------------------------------------------
+
+bool JackAudioDevice::dummySync(int state)
+{
+ // Roughly segment time length.
+ //timespec ts = { 0, (1000000000 * segmentSize) / sampleRate }; // In nanoseconds.
+ unsigned int sl = (1000000 * segmentSize) / sampleRate; // In microseconds.
+
+ double ct = curTime();
+ // Wait for a default maximum of 5 seconds.
+ // Similar to how Jack is supposed to wait a default of 2 seconds for slow clients.
+ // TODO: Make this timeout a 'settings' option so it can be applied both to Jack and here.
+ while((curTime() - ct) < 5.0)
+ {
+ // Is MusE audio ready to roll?
+ if(audio->sync(state, dummyPos))
+ return true;
+
+ // Not ready. Wait a 'segment', try again...
+ //nanosleep(&ts, NULL);
+ usleep(sl); // usleep is supposed to be obsolete!
+ }
+
+ //if(JACK_DEBUG)
+ printf("JackAudioDevice::dummySync Sync timeout - audio not ready!\n");
+
+ return false;
+}
+
+//---------------------------------------------------------
+// startTransport
+//---------------------------------------------------------
+
+void JackAudioDevice::startTransport()
+ {
+ if (JACK_DEBUG)
+ printf("JackAudioDevice::startTransport()\n");
+
+ // If we're not using Jack's transport, just pass PLAY and current frame along
+ // as if processSync was called.
+ if(!useJackTransport.value())
+ {
+ //dummyState = Audio::START_PLAY;
+
+ // Is MusE audio ready to roll?
+ //if(dummySync(dummyState))
+ if(dummySync(Audio::START_PLAY))
+ {
+ // MusE audio is ready to roll. Let's play.
+ dummyState = Audio::PLAY;
+ return;
+ }
+
+ // Ready or not, we gotta roll. Similar to how Jack is supposed to roll anyway.
+ dummyState = Audio::PLAY;
+ return;
+ }
+
+ if(!checkJackClient(_client)) return;
+// printf("JACK: startTransport\n");
+ jack_transport_start(_client);
+ }
+
+//---------------------------------------------------------
+// stopTransport
+//---------------------------------------------------------
+
+void JackAudioDevice::stopTransport()
+ {
+ if (JACK_DEBUG)
+ printf("JackAudioDevice::stopTransport()\n");
+
+ dummyState = Audio::STOP;
+
+ if(!useJackTransport.value())
+ {
+ //dummyState = Audio::STOP;
+ return;
+ }
+
+ if(!checkJackClient(_client)) return;
+ if (transportState != JackTransportStopped) {
+ // printf("JACK: stopTransport\n");
+ jack_transport_stop(_client);
+ transportState=JackTransportStopped;
+ }
+ }
+
+//---------------------------------------------------------
+// seekTransport
+//---------------------------------------------------------
+
+void JackAudioDevice::seekTransport(unsigned frame)
+ {
+ if (JACK_DEBUG)
+ printf("JackAudioDevice::seekTransport() frame:%d\n", frame);
+
+ dummyPos = frame;
+ if(!useJackTransport.value())
+ {
+ // If we're not using Jack's transport, just pass the current state and new frame along
+ // as if processSync was called.
+ //dummyPos = frame;
+ int tempState = dummyState;
+ //dummyState = Audio::START_PLAY;
+
+ // Is MusE audio ready yet?
+ //audio->sync(dummyState, dummyPos);
+ //if(dummySync(dummyState))
+ if(dummySync(Audio::START_PLAY))
+ {
+ dummyState = tempState;
+ return;
+ }
+
+ // Not ready, resume previous state anyway.
+ // FIXME: Observed: Seek during play: Jack transport STOPs on timeout.
+ // Docs say when starting play, transport will roll anyway, ready or not (observed),
+ // but don't mention what should happen on seek during play.
+ // And setting the slow-sync timeout doesn't seem to do anything!
+ //dummyState = tempState;
+ dummyState = Audio::STOP;
+ return;
+ }
+
+ if(!checkJackClient(_client)) return;
+// printf("JACK: seekTransport %d\n", frame);
+ jack_transport_locate(_client, frame);
+ }
+
+//---------------------------------------------------------
+// seekTransport
+//---------------------------------------------------------
+
+void JackAudioDevice::seekTransport(const Pos &p)
+ {
+ if (JACK_DEBUG)
+ printf("JackAudioDevice::seekTransport() frame:%d\n", p.frame());
+
+ dummyPos = p.frame();
+ if(!useJackTransport.value())
+ {
+ // If we're not using Jack's transport, just pass the current state and new frame along
+ // as if processSync was called.
+ //dummyPos = p.frame();
+ int tempState = dummyState;
+ //dummyState = Audio::START_PLAY;
+
+ // Is MusE audio ready yet?
+ //audio->sync(dummyState, dummyPos);
+ //if(dummySync(dummyState))
+ if(dummySync(Audio::START_PLAY))
+ {
+ dummyState = tempState;
+ return;
+ }
+
+ // Not ready, resume previous state anyway.
+ // FIXME: See fixme in other seekTransport...
+ //dummyState = tempState;
+ dummyState = Audio::STOP;
+ return;
+ }
+
+ if(!checkJackClient(_client)) return;
+
+ /*
+ jack_position_t jp;
+ jp.valid = JackPositionBBT;
+ p.mbt(&jp.bar, &jp.beat, &jp.tick);
+ jp.bar++;
+ jp.beat++;
+ jp.bar_start_tick = Pos(jp.bar, 0, 0).tick();
+ //
+ // dummy:
+ //
+ jp.beats_per_bar = 4;
+ jp.beat_type = 4;
+ jp.ticks_per_beat = 384;
+ int tempo = tempomap.tempo(p.tick());
+ jp.beats_per_minute = (60000000.0 / tempo) * tempomap.globalTempo()/100.0;
+
+ jack_transport_reposition(_client, &jp);
+ */
+ jack_transport_locate(_client, p.frame());
+ }
+
+//---------------------------------------------------------
+// findPort
+//---------------------------------------------------------
+
+void* JackAudioDevice::findPort(const char* name)
+ {
+ if (JACK_DEBUG)
+ printf("JackAudioDevice::findPort(\n");
+ if(!checkJackClient(_client)) return NULL;
+ void* p = jack_port_by_name(_client, name);
+// printf("Jack::findPort <%s>, %p\n", name, p);
+ return p;
+ }
+
+//---------------------------------------------------------
+// setMaster
+//---------------------------------------------------------
+
+int JackAudioDevice::setMaster(bool f)
+{
+ if (JACK_DEBUG)
+ printf("JackAudioDevice::setMaster val:%d\n", f);
+ if(!checkJackClient(_client))
+ return 0;
+
+ int r = 0;
+ if(f)
+ {
+ if(useJackTransport.value())
+ {
+ // Make Muse the Jack timebase master. Do it unconditionally (second param = 0).
+ r = jack_set_timebase_callback(_client, 0, (JackTimebaseCallback) timebase_callback, 0);
+ if(debugMsg || JACK_DEBUG)
+ {
+ if(r)
+ printf("JackAudioDevice::setMaster jack_set_timebase_callback failed: result:%d\n", r);
+ }
+ }
+ else
+ {
+ r = 1;
+ printf("JackAudioDevice::setMaster cannot set master because useJackTransport is false\n");
+ }
+ }
+ else
+ {
+ r = jack_release_timebase(_client);
+ if(debugMsg || JACK_DEBUG)
+ {
+ if(r)
+ printf("JackAudioDevice::setMaster jack_release_timebase failed: result:%d\n", r);
+ }
+ }
+ return r;
+}
+
+//---------------------------------------------------------
+// scanMidiPorts
+//---------------------------------------------------------
+
+void JackAudioDevice::scanMidiPorts()
+{
+ if(debugMsg)
+ printf("JackAudioDevice::scanMidiPorts:\n");
+
+/*
+ const char* type = JACK_DEFAULT_MIDI_TYPE;
+ const char** ports = jack_get_ports(_client, 0, type, 0);
+
+ std::set<std::string> names;
+ for (const char** p = ports; p && *p; ++p)
+ {
+ jack_port_t* port = jack_port_by_name(_client, *p);
+ if(!port)
+ continue;
+ // Ignore our own client ports.
+ if(jack_port_is_mine(_client, port))
+ {
+ if(debugMsg)
+ printf(" ignoring own port: %s\n", *p);
+ continue;
+ }
+
+ int nsz = jack_port_name_size();
+ char buffer[nsz];
+ strncpy(buffer, *p, nsz);
+ // Ignore the MusE Jack port.
+ //if(strncmp(buffer, "MusE", 4) == 0)
+ // continue;
+
+ if(debugMsg)
+ printf(" found port: %s ", buffer);
+
+ // If there are aliases for this port, use the first one - much better for identifying.
+ //char a1[nsz];
+ char a2[nsz];
+ char* aliases[2];
+ //aliases[0] = a1;
+ aliases[0] = buffer;
+ aliases[1] = a2;
+ // To disable aliases, just rem this line.
+ jack_port_get_aliases(port, aliases);
+ //int na = jack_port_get_aliases(port, aliases);
+ //char* namep = (na >= 1) ? aliases[0] : buffer;
+ //char* namep = aliases[0];
+ //names.insert(std::string(*p));
+ if(debugMsg)
+ printf("alias: %s\n", aliases[0]);
+
+ names.insert(std::string(aliases[0]));
+ }
+ if(ports)
+ free(ports);
+
+ std::list<MidiDevice*> to_del;
+ for(iMidiDevice imd = midiDevices.begin(); imd != midiDevices.end(); ++imd)
+ {
+ // Only Jack midi devices.
+ if(dynamic_cast<MidiJackDevice*>(*imd) == 0)
+ continue;
+ if(names.find(std::string((*imd)->name().latin1())) == names.end())
+ to_del.push_back(*imd);
+ }
+
+ for(std::list<MidiDevice*>::iterator imd = to_del.begin(); imd != to_del.end(); ++imd)
+ {
+ if(debugMsg)
+ printf(" removing port device:%s\n", (*imd)->name().latin1());
+ midiDevices.remove(*imd);
+ // This will close (and unregister) the client port.
+ delete (*imd);
+ }
+
+ //for (const char** p = ports; p && *p; ++p)
+ for(std::set<std::string>::iterator is = names.begin(); is != names.end(); ++is)
+ {
+ //jack_port_t* port = jack_port_by_name(_client, *p);
+ jack_port_t* port = jack_port_by_name(_client, is->c_str());
+ if(!port)
+ continue;
+*/
+
+ /*
+ int nsz = jack_port_name_size();
+ char buffer[nsz];
+ //strncpy(buffer, *p, nsz);
+ strncpy(buffer, is->c_str(), nsz);
+ // Ignore the MusE Jack port.
+ //if(strncmp(buffer, "MusE", 4) == 0)
+ // continue;
+
+ // If there are aliases for this port, use the first one - much better for identifying.
+ //char a1[nsz];
+ char a2[nsz];
+ char* aliases[2];
+ //aliases[0] = a1;
+ aliases[0] = buffer;
+ aliases[1] = a2;
+ // To disable aliases, just rem this line.
+ jack_port_get_aliases(port, aliases);
+ //int na = jack_port_get_aliases(port, aliases);
+ //char* namep = (na >= 1) ? aliases[0] : buffer;
+ char* namep = aliases[0];
+ QString qname(namep);
+ */
+
+/*
+ QString qname(is->c_str());
+
+ // Port already exists?
+ if(midiDevices.find(qname))
+ continue;
+
+ int flags = 0;
+ int pf = jack_port_flags(port);
+ // If Jack port can send data to us...
+ if(pf & JackPortIsOutput)
+ // Mark as input capable.
+ flags |= 2;
+ // If Jack port can receive data from us...
+ if(pf & JackPortIsInput)
+ // Mark as output capable.
+ flags |= 1;
+
+ //JackPort jp(0, QString(buffer), flags);
+ //portList.append(jp);
+
+ if(debugMsg)
+ printf(" adding port device:%s\n", qname.latin1());
+
+ MidiJackDevice* dev = new MidiJackDevice(0, qname);
+ dev->setrwFlags(flags);
+ midiDevices.add(dev);
+ }
+*/
+}
+
diff --git a/muse2/muse/driver/jackaudio.h b/muse2/muse/driver/jackaudio.h
new file mode 100644
index 00000000..d3132efe
--- /dev/null
+++ b/muse2/muse/driver/jackaudio.h
@@ -0,0 +1,97 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: jackaudio.h,v 1.20.2.4 2009/12/20 05:00:35 terminator356 Exp $
+// (C) Copyright 2002 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __JACKAUDIO_H__
+#define __JACKAUDIO_H__
+
+#include <jack/jack.h>
+#include "audiodev.h"
+
+class MidiPlayEvent;
+
+//---------------------------------------------------------
+// JackAudioDevice
+//---------------------------------------------------------
+bool checkAudioDevice();
+
+class JackAudioDevice : public AudioDevice {
+
+ jack_client_t* _client;
+ double sampleTime;
+ int samplePos;
+ jack_transport_state_t transportState;
+ jack_position_t pos;
+ char jackRegisteredName[16];
+ int dummyState;
+ int dummyPos;
+ // Free-running frame counter incremented always in process.
+ jack_nframes_t _frameCounter;
+
+ static int processAudio(jack_nframes_t frames, void*);
+
+ public:
+ JackAudioDevice(jack_client_t* cl, char * jack_id_string);
+ virtual ~JackAudioDevice();
+ virtual void nullify_client() { _client = 0; }
+
+ virtual inline int deviceType() { return JACK_AUDIO; } // p3.3.52
+
+ void scanMidiPorts();
+
+ //virtual void start();
+ virtual void start(int);
+ virtual void stop ();
+ virtual bool dummySync(int state); // Artificial sync when not using Jack transport.
+
+ virtual int framePos() const;
+ virtual unsigned frameTime() const { return _frameCounter; }
+
+ virtual float* getBuffer(void* port, unsigned long nframes) {
+ return (float*)jack_port_get_buffer((jack_port_t*)port, nframes);
+ }
+
+ virtual std::list<QString> outputPorts(bool midi = false, int aliases = -1);
+ virtual std::list<QString> inputPorts(bool midi = false, int aliases = -1);
+
+ virtual void registerClient();
+ virtual const char* clientName() { return jackRegisteredName; }
+
+ //virtual void* registerOutPort(const char* name);
+ //virtual void* registerInPort(const char* name);
+ virtual void* registerOutPort(const char* /*name*/, bool /*midi*/);
+ virtual void* registerInPort(const char* /*name*/, bool /*midi*/);
+
+ //virtual char* getJackName();
+
+ virtual void unregisterPort(void*);
+ virtual void connect(void*, void*);
+ virtual void disconnect(void*, void*);
+ virtual int connections(void* clientPort) { return jack_port_connected((jack_port_t*)clientPort); }
+ virtual void setPortName(void* p, const char* n) { jack_port_set_name((jack_port_t*)p, n); }
+ virtual void* findPort(const char* name);
+ virtual QString portName(void* port);
+ virtual int getState();
+ virtual unsigned int getCurFrame();
+ virtual bool isRealtime() { return jack_is_realtime(_client); }
+ virtual int realtimePriority() const;
+ virtual void startTransport();
+ virtual void stopTransport();
+ virtual void seekTransport(unsigned frame);
+ virtual void seekTransport(const Pos &p);
+ virtual void setFreewheel(bool f);
+ jack_transport_state_t transportQuery(jack_position_t* pos);
+ void graphChanged();
+ void registrationChanged();
+ void connectJackMidiPorts();
+
+ virtual int setMaster(bool f);
+
+ //static bool jackStarted;
+ };
+
+#endif
+
diff --git a/muse2/muse/driver/jackmidi.cpp b/muse2/muse/driver/jackmidi.cpp
new file mode 100644
index 00000000..4e871a2f
--- /dev/null
+++ b/muse2/muse/driver/jackmidi.cpp
@@ -0,0 +1,1563 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: jackmidi.cpp,v 1.1.1.1 2010/01/27 09:06:43 terminator356 Exp $
+// (C) Copyright 1999-2010 Werner Schweer (ws@seh.de)
+//=========================================================
+
+//#include <qt.h>
+#include <qstring.h>
+#include <stdio.h>
+
+#include <jack/jack.h>
+//#include <jack/midiport.h>
+
+#include "jackmidi.h"
+#include "song.h"
+#include "globals.h"
+#include "midi.h"
+#include "mididev.h"
+#include "../midiport.h"
+#include "../midiseq.h"
+#include "../midictrl.h"
+#include "../audio.h"
+#include "mpevent.h"
+//#include "sync.h"
+#include "audiodev.h"
+#include "../mplugins/midiitransform.h"
+#include "../mplugins/mitplugin.h"
+#include "xml.h"
+
+// Turn on debug messages.
+//#define JACK_MIDI_DEBUG
+
+extern unsigned int volatile lastExtMidiSyncTick;
+
+///int jackmidi_pi[2];
+///int jackmidi_po[2];
+
+//extern muse_jack_midi_buffer jack_midi_out_data[JACK_MIDI_CHANNELS];
+//extern muse_jack_midi_buffer jack_midi_in_data[JACK_MIDI_CHANNELS];
+///extern jack_port_t *midi_port_in[JACK_MIDI_CHANNELS];
+///extern jack_port_t *midi_port_out[JACK_MIDI_CHANNELS];
+
+///MidiJackDevice* gmdev = NULL;
+
+///int* jackSeq;
+//static snd_seq_addr_t musePort;
+
+//int MidiJackDevice::_nextOutIdNum = 0;
+//int MidiJackDevice::_nextInIdNum = 0;
+
+//int JackMidiPortList::_nextOutIdNum = 0;
+//int JackMidiPortList::_nextInIdNum = 0;
+
+//JackMidiPortList jackMidiClientPorts;
+
+
+/*
+//---------------------------------------------------------
+// JackMidiPortList
+//---------------------------------------------------------
+
+JackMidiPortList::JackMidiPortList()
+{
+
+}
+
+JackMidiPortList::~JackMidiPortList()
+{
+
+}
+
+iJackMidiPort JackMidiPortList::createClientPort(int flags) // 1 = writable, 2 = readable - do not mix
+{
+ if(flags & 1)
+ {
+ char buf[80];
+ snprintf(buf, 80, "muse-jack-midi-out-%d", _nextOutIdNum);
+ jack_port_t* _client_jackport = (jack_port_t*)audioDevice->registerOutPort(buf, true);
+ if(_client_jackport == NULL)
+ {
+ fprintf(stderr, "JackMidiPortList::createClientPort failed to register jack-midi-out\n");
+ //return QString("Could not register jack-midi-out client port");
+ return end();
+ }
+ else
+ {
+ JackMidiPort jmp(_client_jackport, QString(buf), flags);
+ _nextOutIdNum++;
+ return insert(begin(), std::pair<jack_port_t*, JackMidiPort>(_client_jackport, jmp));
+ }
+ }
+ else
+ if(flags & 2)
+ {
+ char buf[80];
+ snprintf(buf, 80, "muse-jack-midi-in-%d", _nextInIdNum);
+ jack_port_t* _client_jackport = (jack_port_t*)audioDevice->registerInPort(buf, true);
+ if(_client_jackport == NULL)
+ {
+ fprintf(stderr, "JackMidiPortList::createClientPort failed to register jack-midi-in\n");
+ return end();
+ }
+ else
+ {
+ JackMidiPort jmp(_client_jackport, QString(buf), flags);
+ _nextInIdNum++;
+ return insert(begin(), std::pair<jack_port_t*, JackMidiPort>(_client_jackport, jmp));
+ }
+ }
+ return end();
+}
+
+// Return true if removed.
+bool JackMidiPortList::removeClientPort(jack_port_t* port)
+{
+ iJackMidiPort ijp = find(port);
+ if(ijp == end())
+ return false;
+
+ // Is output?
+ if(ijp->second._flags & 1)
+ _nextOutIdNum--;
+ // Is input?
+ if(ijp->second._flags & 2)
+ _nextInIdNum--;
+
+ erase(ijp);
+
+ audioDevice->unregisterPort(port);
+
+ return true;
+}
+*/
+
+//---------------------------------------------------------
+// MidiJackDevice
+//---------------------------------------------------------
+
+//MidiJackDevice::MidiJackDevice(const int& a, const QString& n)
+MidiJackDevice::MidiJackDevice(jack_port_t* jack_port, const QString& n)
+ : MidiDevice(n)
+{
+ //_client_jackport = 0;
+ _client_jackport = jack_port;
+ //adr = a;
+ init();
+}
+
+MidiJackDevice::~MidiJackDevice()
+{
+ #ifdef JACK_MIDI_DEBUG
+ printf("MidiJackDevice::~MidiJackDevice()\n");
+ #endif
+ if(_client_jackport)
+ audioDevice->unregisterPort(_client_jackport);
+ //close();
+}
+
+/*
+//---------------------------------------------------------
+// select[RW]fd
+//---------------------------------------------------------
+
+int MidiJackDevice::selectRfd()
+{
+ return jackmidi_pi[0];
+}
+
+int MidiJackDevice::selectWfd()
+{
+ return jackmidi_po[0];
+}
+*/
+
+//---------------------------------------------------------
+// createJackMidiDevice
+// If name parameter is blank, creates a new (locally) unique one.
+//---------------------------------------------------------
+
+//QString MidiJackDevice::createJackMidiDevice(int rwflags) // 1:Writable 2: Readable. Do not mix.
+MidiDevice* MidiJackDevice::createJackMidiDevice(QString name, int rwflags) // 1:Writable 2: Readable. Do not mix.
+{
+/// _openFlags &= _rwFlags; // restrict to available bits
+
+/// #ifdef JACK_MIDI_DEBUG
+/// printf("MidiJackDevice::open %s\n", name.latin1());
+/// #endif
+
+ //jack_port_t* jp = jack_port_by_name(_client, name().latin1());
+/// jack_port_t* jp = (jack_port_t*)audioDevice->findPort(name().latin1());
+
+/// if(!jp)
+/// {
+/// printf("MidiJackDevice::open: Jack midi port %s not found!\n", name().latin1());
+/// _writeEnable = false;
+/// _readEnable = false;
+/// return QString("Jack midi port not found");
+/// }
+
+/// int pf = jack_port_flags(jp);
+
+ //if(!name.isEmpty())
+ //{
+ // Does not work.
+ // if(audioDevice->findPort(name.latin1()))
+ // {
+ // fprintf(stderr, "MidiJackDevice::createJackMidiDevice failed! Given port name %s already exists!\n", name.latin1());
+ // return 0;
+ // }
+ //}
+
+ jack_port_t* client_jackport = NULL;
+ //char buf[80];
+
+
+ // If Jack port can receive data from us and we actually want to...
+ //if((pf & JackPortIsInput) && (_openFlags & 1))
+ if(rwflags & 1)
+ {
+ if(name.isEmpty())
+ {
+ //snprintf(buf, 80, "muse-jack-midi-out-%d", _nextOutIdNum);
+ for(int i = 0; ; ++i)
+ {
+ //snprintf(buf, 80, "midi-out-%d", i);
+ name.sprintf("midi-out-%d", i);
+
+ if(!midiDevices.find(name))
+ {
+ // Does not work.
+ //if(!audioDevice->findPort(buf))
+ // break;
+ //client_jackport = (jack_port_t*)audioDevice->registerOutPort(buf, true);
+ if(audioDevice->deviceType() == AudioDevice::JACK_AUDIO) // p3.3.52
+ {
+ client_jackport = (jack_port_t*)audioDevice->registerOutPort(name.latin1(), true);
+ if(client_jackport)
+ break;
+ }
+ else
+ break;
+ }
+
+ if(i == 65535)
+ {
+ fprintf(stderr, "MidiJackDevice::createJackMidiDevice failed! Can't find unused output port name!\n");
+ return 0;
+ }
+ }
+ //name = QString(buf);
+ }
+ else
+ {
+ if(audioDevice->deviceType() == AudioDevice::JACK_AUDIO) // p3.3.52
+ {
+ client_jackport = (jack_port_t*)audioDevice->registerOutPort(name.latin1(), true);
+ if(!client_jackport)
+ {
+ fprintf(stderr, "MidiJackDevice::createJackMidiDevice failed creating output port name %s\n", name.latin1());
+ return 0;
+ }
+ }
+ }
+ /*
+ else
+ {
+ client_jackport = (jack_port_t*)audioDevice->registerOutPort(name.latin1(), true);
+ if(!client_jackport)
+ {
+ for(int i = 0; ; ++i)
+ {
+ snprintf(buf, 80, "midi-out-%d", i);
+ // Does not work!
+ //if(!audioDevice->findPort(buf))
+ // break;
+ client_jackport = (jack_port_t*)audioDevice->registerOutPort(buf, true);
+ if(client_jackport)
+ break;
+
+ if(i == 65535)
+ {
+ fprintf(stderr, "MidiJackDevice::createJackMidiDevice failed! Can't find unused output port name!\n");
+ return 0;
+ }
+ }
+ name = QString(buf);
+ }
+ }
+ */
+
+ //client_jackport = (jack_port_t*)audioDevice->registerOutPort(name.latin1(), true);
+ //if(client_jackport == NULL)
+ //{
+ // fprintf(stderr, "MidiJackDevice::createJackMidiDevice failed to register jack midi client output port %s\n", name.latin1());
+ // return 0;
+ //}
+ //else
+ // _nextOutIdNum++;
+
+ }
+ else // Note docs say it can't be both input and output.
+ // If Jack port can send data to us and we actually want it...
+ //if((pf & JackPortIsOutput) && (_openFlags & 2))
+ if(rwflags & 2)
+ {
+ if(name.isEmpty())
+ {
+ //snprintf(buf, 80, "muse-jack-midi-in-%d", _nextInIdNum);
+ for(int i = 0; ; ++i)
+ {
+ //snprintf(buf, 80, "midi-in-%d", i);
+ name.sprintf("midi-in-%d", i);
+
+ if(!midiDevices.find(name))
+ {
+ // Does not work.
+ //if(!audioDevice->findPort(buf))
+ // break;
+ //client_jackport = (jack_port_t*)audioDevice->registerInPort(buf, true);
+ if(audioDevice->deviceType() == AudioDevice::JACK_AUDIO) // p3.3.52
+ {
+ client_jackport = (jack_port_t*)audioDevice->registerInPort(name.latin1(), true);
+ if(client_jackport)
+ break;
+ }
+ else
+ break;
+ }
+
+ if(i == 65535)
+ {
+ fprintf(stderr, "MidiJackDevice::createJackMidiDevice failed! Can't find unused input port name!\n");
+ return 0;
+ }
+ }
+ //name = QString(buf);
+ }
+ else
+ {
+ if(audioDevice->deviceType() == AudioDevice::JACK_AUDIO) // p3.3.52
+ {
+ client_jackport = (jack_port_t*)audioDevice->registerInPort(name.latin1(), true);
+ if(!client_jackport)
+ {
+ fprintf(stderr, "MidiJackDevice::createJackMidiDevice failed creating input port name %s\n", name.latin1());
+ return 0;
+ }
+ }
+ }
+
+ //client_jackport = (jack_port_t*)audioDevice->registerInPort(name.latin1(), true);
+
+ //if(client_jackport == NULL)
+ //{
+ // fprintf(stderr, "MidiJackDevice::createJackMidiDevice failed to register jack midi client input port %s\n", name.latin1());
+ //_readEnable = false;
+ //return QString("Could not register jack-midi-in client port");
+ // return 0;
+ //}
+ //else
+ // _nextInIdNum++;
+
+ }
+
+ //if(client_jackport == NULL) // p3.3.52 Removed. Allow the device to be created even if Jack isn't running.
+ // return 0;
+
+ MidiJackDevice* dev = new MidiJackDevice(client_jackport, name);
+ dev->setrwFlags(rwflags);
+ midiDevices.add(dev);
+ return dev;
+}
+
+//---------------------------------------------------------
+// setName
+//---------------------------------------------------------
+
+void MidiJackDevice::setName(const QString& s)
+{
+ #ifdef JACK_MIDI_DEBUG
+ printf("MidiJackDevice::setName %s new name:%s\n", name().latin1(), s.latin1());
+ #endif
+ _name = s;
+ if(clientPort()) // p3.3.52 Added check.
+ audioDevice->setPortName(clientPort(), s.latin1());
+}
+
+//---------------------------------------------------------
+// open
+//---------------------------------------------------------
+
+QString MidiJackDevice::open()
+{
+ _openFlags &= _rwFlags; // restrict to available bits
+
+ #ifdef JACK_MIDI_DEBUG
+ printf("MidiJackDevice::open %s\n", name().latin1());
+ #endif
+
+ /*
+ //jack_port_t* jp = jack_port_by_name(_client, name().latin1());
+ jack_port_t* jp = (jack_port_t*)audioDevice->findPort(name().latin1());
+
+ if(!jp)
+ {
+ printf("MidiJackDevice::open: Jack midi port %s not found!\n", name().latin1());
+ _writeEnable = false;
+ _readEnable = false;
+ return QString("Jack midi port not found");
+ }
+
+ int pf = jack_port_flags(jp);
+
+ // If Jack port can receive data from us and we actually want to...
+ if((pf & JackPortIsInput) && (_openFlags & 1))
+ {
+ char buf[80];
+ snprintf(buf, 80, "muse-jack-midi-out-%d", _nextOutIdNum);
+ _client_jackport = (jack_port_t*)audioDevice->registerOutPort(buf, true);
+ if(_client_jackport == NULL)
+ {
+ fprintf(stderr, "MidiJackDevice::open failed to register jack-midi-out\n");
+ _writeEnable = false;
+ return QString("Could not register jack-midi-out client port");
+ }
+ else
+ {
+ _nextOutIdNum++;
+ // src, dest
+ ///audioDevice->connect(_client_jackport, jp);
+ _writeEnable = true;
+ }
+ }
+ else // Note docs say it can't be both input and output.
+ // If Jack port can send data to us and we actually want it...
+ if((pf & JackPortIsOutput) && (_openFlags & 2))
+ {
+ char buf[80];
+ snprintf(buf, 80, "muse-jack-midi-in-%d", _nextInIdNum);
+ _client_jackport = (jack_port_t*)audioDevice->registerInPort(buf, true);
+ if(_client_jackport == NULL)
+ {
+ fprintf(stderr, "MidiJackDevice::open failed to register jack-midi-in\n");
+ _readEnable = false;
+ return QString("Could not register jack-midi-in client port");
+ }
+ else
+ {
+ _nextInIdNum++;
+ ///audioDevice->connect(jp, _client_jackport);
+ _readEnable = true;
+ }
+ }
+ */
+
+ _writeEnable = bool(_openFlags & 1);
+ _readEnable = bool(_openFlags & 2);
+
+ return QString("OK");
+}
+
+//---------------------------------------------------------
+// close
+//---------------------------------------------------------
+
+void MidiJackDevice::close()
+{
+ #ifdef JACK_MIDI_DEBUG
+ printf("MidiJackDevice::close %s\n", name().latin1());
+ #endif
+
+ /*
+ if(_client_jackport)
+ {
+ int pf = jack_port_flags(_client_jackport);
+
+ if(pf & JackPortIsOutput)
+ _nextOutIdNum--;
+ else
+ if(pf & JackPortIsInput)
+ _nextInIdNum--;
+ audioDevice->unregisterPort(_client_jackport);
+ _client_jackport = 0;
+ _writeEnable = false;
+ _readEnable = false;
+ return;
+ }
+ */
+
+ _writeEnable = false;
+ _readEnable = false;
+
+ /*
+ //jack_port_t* jp = jack_port_by_name(_client, name().latin1());
+ jack_port_t* jp = (jack_port_t*)audioDevice->findPort(name().latin1());
+
+ if(!jp)
+ {
+ printf("MidiJackDevice::close: Jack midi port %s not found!\n", name().latin1());
+ _writeEnable = false;
+ _readEnable = false;
+ return;
+ }
+
+ //int pf = jack_port_flags(jp);
+
+ // If Jack port can receive data from us and we actually want to...
+ //if((pf & JackPortIsInput) && (_openFlags & 1))
+ if(jack_port_connected_to(midi_port_out[0], name().latin1()))
+ {
+ // src, dest
+/// audioDevice->disconnect(midi_port_out[0], jp);
+ _writeEnable = false;
+ }
+ else // Note docs say it can't be both input and output.
+ // If Jack port can send data to us and we actually want it...
+ //if((pf & JackPortIsOutput) && (_openFlags & 2))
+ if(jack_port_connected_to(midi_port_in[0], name().latin1()))
+ {
+/// audioDevice->disconnect(jp, midi_port_in[0]);
+ _readEnable = false;
+ }
+ */
+}
+
+//---------------------------------------------------------
+// writeRouting
+//---------------------------------------------------------
+
+void MidiJackDevice::writeRouting(int level, Xml& xml) const
+{
+ // p3.3.45
+ // If this device is not actually in use by the song, do not write any routes.
+ // This prevents bogus routes from being saved and propagated in the med file.
+ if(midiPort() == -1)
+ return;
+
+ QString s;
+ if(rwFlags() & 2) // Readable
+ {
+ //RouteList* rl = _inRoutes;
+ //for (ciRoute r = rl->begin(); r != rl->end(); ++r)
+ for (ciRoute r = _inRoutes.begin(); r != _inRoutes.end(); ++r)
+ {
+ if(!r->name().isEmpty())
+ {
+ xml.tag(level++, "Route");
+
+ //xml.strTag(level, "srcNode", r->name());
+ //xml.tag(level, "source type=\"%d\" name=\"%s\"/", r->type, r->name().latin1());
+ s = QT_TR_NOOP("source");
+ if(r->type != Route::TRACK_ROUTE)
+ s += QString(QT_TR_NOOP(" type=\"%1\"")).arg(r->type);
+
+ //s += QString(QT_TR_NOOP(" name=\"%1\"/")).arg(r->name());
+ s += QString(QT_TR_NOOP(" name=\"%1\"/")).arg(Xml::xmlString(r->name()));
+ xml.tag(level, s);
+
+ //xml.strTag(level, "dstNode", name());
+ //xml.tag(level, "dest type=\"%d\" name=\"%s\"/", Route::JACK_MIDI_ROUTE, name().latin1());
+ //xml.tag(level, "dest type=\"%d\" name=\"%s\"/", Route::MIDI_DEVICE_ROUTE, name().latin1());
+ //xml.tag(level, "dest devtype=\"%d\" name=\"%s\"/", MidiDevice::JACK_MIDI, name().latin1());
+ xml.tag(level, "dest devtype=\"%d\" name=\"%s\"/", MidiDevice::JACK_MIDI, Xml::xmlString(name()).latin1());
+
+ xml.etag(level--, "Route");
+ }
+ }
+ }
+
+ for (ciRoute r = _outRoutes.begin(); r != _outRoutes.end(); ++r)
+ {
+ if(!r->name().isEmpty())
+ {
+ s = QT_TR_NOOP("Route");
+ if(r->channel != -1)
+ s += QString(QT_TR_NOOP(" channel=\"%1\"")).arg(r->channel);
+
+ //xml.tag(level++, "Route");
+ xml.tag(level++, s);
+
+ /*
+ //xml.strTag(level, "srcNode", name());
+ if(r->channel != -1)
+ //xml.tag(level, "source type=\"%d\" channel=\"%d\" name=\"%s\"/", Route::JACK_MIDI_ROUTE, r->channel, name().latin1());
+ //xml.tag(level, "source type=\"%d\" channel=\"%d\" name=\"%s\"/", Route::MIDI_DEVICE_ROUTE, r->channel, name().latin1());
+ xml.tag(level, "source devtype=\"%d\" channel=\"%d\" name=\"%s\"/", MidiDevice::JACK_MIDI, r->channel, name().latin1());
+ else
+ //xml.tag(level, "source type=\"%d\" name=\"%s\"/", Route::JACK_MIDI_ROUTE, name().latin1());
+ //xml.tag(level, "source type=\"%d\" name=\"%s\"/", Route::MIDI_DEVICE_ROUTE, name().latin1());
+ */
+ //xml.tag(level, "source devtype=\"%d\" name=\"%s\"/", MidiDevice::JACK_MIDI, name().latin1());
+ xml.tag(level, "source devtype=\"%d\" name=\"%s\"/", MidiDevice::JACK_MIDI, Xml::xmlString(name()).latin1());
+
+ /*
+ //xml.strTag(level, "dstNode", r->name());
+ if(r->channel != -1)
+ {
+ if(r->type == Route::MIDI_DEVICE_ROUTE)
+ xml.tag(level, "dest devtype=\"%d\" channel=\"%d\" name=\"%s\"/", r->device->deviceType(), r->channel, r->name().latin1());
+ else
+ xml.tag(level, "dest type=\"%d\" channel=\"%d\" name=\"%s\"/", r->type, r->channel, r->name().latin1());
+ }
+ else
+ {
+ if(r->type == Route::MIDI_DEVICE_ROUTE)
+ xml.tag(level, "dest devtype=\"%d\" name=\"%s\"/", r->device->deviceType(), r->name().latin1());
+ else
+ xml.tag(level, "dest type=\"%d\" name=\"%s\"/", r->type, r->name().latin1());
+ }
+ */
+
+ s = QT_TR_NOOP("dest");
+ if(r->type == Route::MIDI_DEVICE_ROUTE)
+ s += QString(QT_TR_NOOP(" devtype=\"%1\"")).arg(r->device->deviceType());
+ else
+ if(r->type != Route::TRACK_ROUTE)
+ s += QString(QT_TR_NOOP(" type=\"%1\"")).arg(r->type);
+
+ //s += QString(QT_TR_NOOP(" name=\"%1\"/")).arg(r->name());
+ s += QString(QT_TR_NOOP(" name=\"%1\"/")).arg(Xml::xmlString(r->name()));
+ xml.tag(level, s);
+
+
+ xml.etag(level--, "Route");
+ }
+ }
+
+ /*
+ else
+ if(rwFlags() & 1) // Writable
+ {
+ //RouteList* rl = _outRoutes;
+ //for (ciRoute r = rl->begin(); r != rl->end(); ++r)
+ for (ciRoute r = _outRoutes.begin(); r != _outRoutes.end(); ++r)
+ {
+ if(!r->name().isEmpty())
+ {
+ xml.tag(level++, "Route");
+
+ //xml.strTag(level, "srcNode", name());
+ //if(r->channel != -1)
+ // xml.tag(level, "srcNode type=\"%d\" channel=\"%d\" name=\"%s\"", Route::JACK_MIDI_ROUTE, r->channel, name().latin1());
+ //else
+ xml.tag(level, "source type=\"%d\" name=\"%s\"/", Route::JACK_MIDI_ROUTE, name().latin1());
+
+ //xml.strTag(level, "dstNode", r->name());
+ xml.tag(level, "dest type=\"%d\" name=\"%s\"/", r->type, r->name().latin1());
+
+ xml.etag(level--, "Route");
+ }
+ }
+ }
+ */
+}
+
+//---------------------------------------------------------
+// putEvent
+//---------------------------------------------------------
+
+/* FIX: if we fail to transmit the event,
+ * we return false (indicating OK). Otherwise
+ * it seems muse will retry forever
+ */
+bool MidiJackDevice::putMidiEvent(const MidiPlayEvent& /*event*/)
+{
+ /*
+ int give, channel = event.channel();
+ int x;
+
+ if(channel >= JACK_MIDI_CHANNELS) return false;
+
+ // buffer up events, because jack eats them in chunks, if
+ // the buffer is full, there isn't so much to do, than
+ // drop the event
+
+ give = jack_midi_out_data[channel].give;
+ if(jack_midi_out_data[channel].buffer[give*4+3]){
+ fprintf(stderr, "WARNING: muse-to-jack midi-buffer is full, channel=%u\n", channel);
+ return false;
+ }
+ // copy event(note-on etc..), pitch and volume
+ // see http://www.midi.org/techspecs/midimessages.php
+ switch(event.type()){
+ case ME_NOTEOFF:
+ jack_midi_out_data[channel].buffer[give*4+0] = 0x80;
+ jack_midi_out_data[channel].buffer[give*4+1] = event.dataA() & 0x7f;
+ jack_midi_out_data[channel].buffer[give*4+2] = event.dataB() & 0x7f;
+ break;
+ case ME_NOTEON:
+ jack_midi_out_data[channel].buffer[give*4+0] = 0x90;
+ jack_midi_out_data[channel].buffer[give*4+1] = event.dataA() & 0x7f;
+ jack_midi_out_data[channel].buffer[give*4+2] = event.dataB() & 0x7f;
+ break;
+ case ME_CONTROLLER:
+ jack_midi_out_data[channel].buffer[give*4+0] = 0xb0;
+ jack_midi_out_data[channel].buffer[give*4+1] = event.dataA() & 0x7f;
+ jack_midi_out_data[channel].buffer[give*4+2] = event.dataB() & 0x7f;
+ break;
+ case ME_PROGRAM:
+ jack_midi_out_data[channel].buffer[give*4+0] = 0xc0;
+ jack_midi_out_data[channel].buffer[give*4+1] = event.dataA() & 0x7f;
+ jack_midi_out_data[channel].buffer[give*4+2] = 0;
+ break;
+ case ME_PITCHBEND:
+ jack_midi_out_data[channel].buffer[give*4+0] = 0xE0;
+ // convert muse pitch-bend to midi standard
+ x = 0x2000 + event.dataA();
+ jack_midi_out_data[channel].buffer[give*4+1] = x & 0x7f;
+ jack_midi_out_data[channel].buffer[give*4+2] = (x >> 8) & 0x7f;
+ break;
+ default:
+ fprintf(stderr, "jack-midi-out %u WARNING: unknown event %x\n", channel, event.type());
+ return false;
+ }
+ jack_midi_out_data[channel].buffer[give*4+3] = 1; // mark state of this slot
+ // finally increase give position
+ give++;
+ if(give >= JACK_MIDI_BUFFER_SIZE){
+ give = 0;
+ }
+ jack_midi_out_data[channel].give = give;
+ return false;
+ */
+
+ return false;
+}
+
+/*
+//---------------------------------------------------------
+// putEvent
+// return false if event is delivered
+//---------------------------------------------------------
+
+bool MidiJackDevice::putEvent(int* event)
+{
+ int *y; y = event;
+ return false;
+}
+*/
+
+//---------------------------------------------------------
+// recordEvent
+//---------------------------------------------------------
+
+void MidiJackDevice::recordEvent(MidiRecordEvent& event)
+ {
+ // Set the loop number which the event came in at.
+ //if(audio->isRecording())
+ if(audio->isPlaying())
+ event.setLoopNum(audio->loopCount());
+
+ if (midiInputTrace) {
+ printf("Jack MidiInput: ");
+ event.dump();
+ }
+
+ int typ = event.type();
+
+ if(_port != -1)
+ {
+ int idin = midiPorts[_port].syncInfo().idIn();
+
+ //---------------------------------------------------
+ // filter some SYSEX events
+ //---------------------------------------------------
+
+ if (typ == ME_SYSEX) {
+ const unsigned char* p = event.data();
+ int n = event.len();
+ if (n >= 4) {
+ if ((p[0] == 0x7f)
+ //&& ((p[1] == 0x7f) || (p[1] == rxDeviceId))) {
+ && ((p[1] == 0x7f) || (idin == 0x7f) || (p[1] == idin))) {
+ if (p[2] == 0x06) {
+ //mmcInput(p, n);
+ midiSeq->mmcInput(_port, p, n);
+ return;
+ }
+ if (p[2] == 0x01) {
+ //mtcInputFull(p, n);
+ midiSeq->mtcInputFull(_port, p, n);
+ return;
+ }
+ }
+ else if (p[0] == 0x7e) {
+ //nonRealtimeSystemSysex(p, n);
+ midiSeq->nonRealtimeSystemSysex(_port, p, n);
+ return;
+ }
+ }
+ }
+ else
+ // Trigger general activity indicator detector. Sysex has no channel, don't trigger.
+ midiPorts[_port].syncInfo().trigActDetect(event.channel());
+ }
+
+ //
+ // process midi event input filtering and
+ // transformation
+ //
+
+ processMidiInputTransformPlugins(event);
+
+ if (filterEvent(event, midiRecordType, false))
+ return;
+
+ if (!applyMidiInputTransformation(event)) {
+ if (midiInputTrace)
+ printf(" midi input transformation: event filtered\n");
+ return;
+ }
+
+ //
+ // transfer noteOn events to gui for step recording and keyboard
+ // remote control
+ //
+ if (typ == ME_NOTEON) {
+ int pv = ((event.dataA() & 0xff)<<8) + (event.dataB() & 0xff);
+ song->putEvent(pv);
+ }
+
+ //if(_recordFifo.put(MidiPlayEvent(event)))
+ // printf("MidiJackDevice::recordEvent: fifo overflow\n");
+
+ // p3.3.38
+ // Do not bother recording if it is NOT actually being used by a port.
+ // Because from this point on, process handles things, by selected port.
+ if(_port == -1)
+ return;
+
+ // Split the events up into channel fifos. Special 'channel' number 17 for sysex events.
+ unsigned int ch = (typ == ME_SYSEX)? MIDI_CHANNELS : event.channel();
+ if(_recordFifo[ch].put(MidiPlayEvent(event)))
+ printf("MidiJackDevice::recordEvent: fifo channel %d overflow\n", ch);
+ }
+
+//---------------------------------------------------------
+// midiReceived
+//---------------------------------------------------------
+
+void MidiJackDevice::eventReceived(jack_midi_event_t* ev)
+ {
+ MidiRecordEvent event;
+ event.setB(0);
+
+ // NOTE: From MusE-2. Not done here in Muse-1 (yet).
+ // 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;
+ //int frameOffset = audio->getFrameOffset();
+ unsigned pos = audio->pos().frame();
+
+ //event.setTime(pos + ev->time);
+ event.setTime(extSyncFlag.value() ? lastExtMidiSyncTick : (pos + 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:
+
+ // TODO: Deal with large sysex, which are broken up into chunks!
+ // For now, do not accept if the last byte is not EOX, meaning it's a chunk with more chunks to follow.
+ if(*(((unsigned char*)ev->buffer) + ev->size - 1) != ME_SYSEX_END)
+ {
+ printf("MidiJackDevice::eventReceived sysex chunks not supported!\n");
+ return;
+ }
+
+ //event.setTime(0); // mark as used
+ event.setType(ME_SYSEX);
+ event.setData((unsigned char*)(ev->buffer + 1), ev->size - 2);
+ break;
+ case ME_MTC_QUARTER:
+ if(_port != -1)
+ midiSeq->mtcInputQuarter(_port, *(ev->buffer + 1));
+ return;
+ case ME_SONGPOS:
+ if(_port != -1)
+ midiSeq->setSongPosition(_port, *(ev->buffer + 1) | (*(ev->buffer + 2) >> 2 )); // LSB then MSB
+ return;
+ //case ME_SONGSEL:
+ //case ME_TUNE_REQ:
+ //case ME_SENSE:
+ case ME_CLOCK:
+ case ME_TICK:
+ case ME_START:
+ case ME_CONTINUE:
+ case ME_STOP:
+ if(_port != -1)
+ midiSeq->realtimeSystemInput(_port, type);
+ return;
+ //case ME_SYSEX_END:
+ //break;
+ // return;
+ default:
+ printf("MidiJackDevice::eventReceived unsupported system event 0x%02x\n", type);
+ return;
+ }
+ }
+ //return;
+ break;
+ default:
+ printf("MidiJackDevice::eventReceived unknown event 0x%02x\n", type);
+ //printf("MidiJackDevice::eventReceived unknown event 0x%02x size:%d buf:0x%02x 0x%02x 0x%02x ...0x%02x\n", type, ev->size, *(ev->buffer), *(ev->buffer + 1), *(ev->buffer + 2), *(ev->buffer + (ev->size - 1)));
+ return;
+ }
+
+ if (midiInputTrace) {
+ printf("MidiInput<%s>: ", name().latin1());
+ event.dump();
+ }
+
+ #ifdef JACK_MIDI_DEBUG
+ printf("MidiJackDevice::eventReceived time:%d type:%d ch:%d A:%d B:%d\n", event.time(), event.type(), event.channel(), event.dataA(), event.dataB());
+ #endif
+
+ // Let recordEvent handle it from here, with timestamps, filtering, gui triggering etc.
+ recordEvent(event);
+ }
+
+//---------------------------------------------------------
+// collectMidiEvents
+//---------------------------------------------------------
+
+void MidiJackDevice::collectMidiEvents()
+{
+ if(!_readEnable)
+ return;
+
+ if(!_client_jackport)
+ return;
+ void* port_buf = jack_port_get_buffer(_client_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);
+
+ #ifdef JACK_MIDI_DEBUG
+ printf("MidiJackDevice::collectMidiEvents number:%d time:%d\n", i, event.time);
+ #endif
+
+ eventReceived(&event);
+ }
+}
+
+//---------------------------------------------------------
+// putEvent
+// return true if event cannot be delivered
+//---------------------------------------------------------
+
+bool MidiJackDevice::putEvent(const MidiPlayEvent& ev)
+{
+ if(!_writeEnable)
+ //return true;
+ return false;
+
+ #ifdef JACK_MIDI_DEBUG
+ printf("MidiJackDevice::putEvent time:%d type:%d ch:%d A:%d B:%d\n", ev.time(), ev.type(), ev.channel(), ev.dataA(), ev.dataB());
+ #endif
+
+ bool rv = eventFifo.put(ev);
+ if(rv)
+ printf("MidiJackDevice::putEvent: port overflow\n");
+
+ return rv;
+}
+
+//---------------------------------------------------------
+// queueEvent
+// return true if successful
+//---------------------------------------------------------
+
+//void JackAudioDevice::putEvent(Port port, const MidiEvent& e)
+bool MidiJackDevice::queueEvent(const MidiPlayEvent& e)
+//bool MidiJackDevice::queueEvent(const MidiPlayEvent& e)
+{
+ // Perhaps we can find use for this value later, together with the Jack midi MusE port(s).
+ // No big deal if not. Not used for now.
+ //int port = e.port();
+
+ //if(port >= JACK_MIDI_CHANNELS)
+ // return false;
+
+ //if (midiOutputTrace) {
+ // printf("MidiOut<%s>: jackMidi: ", portName(port).toLatin1().data());
+ // e.dump();
+ // }
+
+ //if(debugMsg)
+ // printf("MidiJackDevice::queueEvent\n");
+
+ if(!_client_jackport)
+ return false;
+ void* pb = jack_port_get_buffer(_client_jackport, segmentSize);
+
+ //unsigned frameCounter = ->frameTime();
+ int frameOffset = audio->getFrameOffset();
+ unsigned pos = audio->pos().frame();
+ int ft = e.time() - frameOffset - pos;
+
+ if (ft < 0)
+ ft = 0;
+ if (ft >= (int)segmentSize) {
+ printf("MidiJackDevice::queueEvent: Event time:%d out of range. offset:%d ft:%d (seg=%d)\n", e.time(), frameOffset, ft, segmentSize);
+ if (ft > (int)segmentSize)
+ ft = segmentSize - 1;
+ }
+
+ #ifdef JACK_MIDI_DEBUG
+ printf("MidiJackDevice::queueEvent time:%d type:%d ch:%d A:%d B:%d\n", e.time(), e.type(), e.channel(), e.dataA(), e.dataB());
+ #endif
+
+ switch(e.type()) {
+ case ME_NOTEON:
+ case ME_NOTEOFF:
+ case ME_POLYAFTER:
+ case ME_CONTROLLER:
+ case ME_PITCHBEND:
+ {
+ #ifdef JACK_MIDI_DEBUG
+ printf("MidiJackDevice::queueEvent note on/off polyafter controller or pitch\n");
+ #endif
+
+ unsigned char* p = jack_midi_event_reserve(pb, ft, 3);
+ if (p == 0) {
+ fprintf(stderr, "MidiJackDevice::queueEvent #1: buffer overflow, event lost\n");
+ return false;
+ }
+ p[0] = e.type() | e.channel();
+ p[1] = e.dataA();
+ p[2] = e.dataB();
+ }
+ break;
+
+ case ME_PROGRAM:
+ case ME_AFTERTOUCH:
+ {
+ #ifdef JACK_MIDI_DEBUG
+ printf("MidiJackDevice::queueEvent program or aftertouch\n");
+ #endif
+
+ unsigned char* p = jack_midi_event_reserve(pb, ft, 2);
+ if (p == 0) {
+ fprintf(stderr, "MidiJackDevice::queueEvent #2: buffer overflow, event lost\n");
+ return false;
+ }
+ p[0] = e.type() | e.channel();
+ p[1] = e.dataA();
+ }
+ break;
+ case ME_SYSEX:
+ {
+ #ifdef JACK_MIDI_DEBUG
+ printf("MidiJackDevice::queueEvent sysex\n");
+ #endif
+
+ 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, "MidiJackDevice::queueEvent #3: buffer overflow, event lost\n");
+ return false;
+ }
+ 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("MidiJackDevice::queueEvent: event type %x not supported\n", e.type());
+ return false;
+ break;
+ }
+
+ return true;
+}
+
+//---------------------------------------------------------
+// processEvent
+//---------------------------------------------------------
+
+void MidiJackDevice::processEvent(const MidiPlayEvent& event)
+{
+ //int frameOffset = audio->getFrameOffset();
+ //unsigned pos = audio->pos().frame();
+
+ int chn = event.channel();
+ unsigned t = event.time();
+ int a = event.dataA();
+ int b = event.dataB();
+ // Perhaps we can find use for this value later, together with the Jack midi MusE port(s).
+ // No big deal if not. Not used for now.
+ int port = event.port();
+
+ // TODO: No sub-tick playback resolution yet, with external sync.
+ // Just do this 'standard midi 64T timing thing' for now until we figure out more precise external timings.
+ // Does require relatively short audio buffers, in order to catch the resolution, but buffer <= 256 should be OK...
+ // Tested OK so far with 128.
+ if(extSyncFlag.value())
+ t = audio->getFrameOffset() + audio->pos().frame();
+ //t = frameOffset + pos;
+
+ #ifdef JACK_MIDI_DEBUG
+ printf("MidiJackDevice::processEvent time:%d type:%d ch:%d A:%d B:%d\n", event.time(), event.type(), event.channel(), event.dataA(), event.dataB());
+ #endif
+
+ if(event.type() == ME_PROGRAM)
+ {
+ // don't output program changes for GM drum channel
+ //if (!(song->mtype() == MT_GM && chn == 9)) {
+ int hb = (a >> 16) & 0xff;
+ int lb = (a >> 8) & 0xff;
+ int pr = a & 0x7f;
+
+ // p3.3.44
+ //printf("MidiJackDevice::processEvent ME_PROGRAM time:%d type:%d ch:%d A:%d B:%d hb:%d lb:%d pr:%d\n",
+ // event.time(), event.type(), event.channel(), event.dataA(), event.dataB(), hb, lb, pr);
+
+ if (hb != 0xff)
+ queueEvent(MidiPlayEvent(t, port, chn, ME_CONTROLLER, CTRL_HBANK, hb));
+ if (lb != 0xff)
+ queueEvent(MidiPlayEvent(t+1, port, chn, ME_CONTROLLER, CTRL_LBANK, lb));
+ queueEvent(MidiPlayEvent(t+2, port, chn, ME_PROGRAM, pr, 0));
+ // }
+ }
+ else
+ if(event.type() == ME_PITCHBEND)
+ {
+ int v = a + 8192;
+ // p3.3.44
+ //printf("MidiJackDevice::processEvent ME_PITCHBEND v:%d time:%d type:%d ch:%d A:%d B:%d\n", v, event.time(), event.type(), event.channel(), event.dataA(), event.dataB());
+
+ queueEvent(MidiPlayEvent(t, port, chn, ME_PITCHBEND, v & 0x7f, (v >> 7) & 0x7f));
+ }
+ else
+ if(event.type() == ME_CONTROLLER)
+ {
+ //int a = event.dataA();
+ //int b = event.dataB();
+ // Perhaps we can find use for this value later, together with the Jack midi MusE port(s).
+ // No big deal if not. Not used for now.
+ //int port = event.port();
+
+ int nvh = 0xff;
+ int nvl = 0xff;
+ if(_port != -1)
+ {
+ int nv = midiPorts[_port].nullSendValue();
+ if(nv != -1)
+ {
+ nvh = (nv >> 8) & 0xff;
+ nvl = nv & 0xff;
+ }
+ }
+
+ if(a == CTRL_PITCH)
+ {
+ int v = b + 8192;
+ // p3.3.44
+ //printf("MidiJackDevice::processEvent CTRL_PITCH v:%d time:%d type:%d ch:%d A:%d B:%d\n", v, event.time(), event.type(), event.channel(), event.dataA(), event.dataB());
+
+ queueEvent(MidiPlayEvent(t, port, 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;
+
+ // p3.3.44
+ //printf("MidiJackDevice::processEvent CTRL_PROGRAM time:%d type:%d ch:%d A:%d B:%d hb:%d lb:%d pr:%d\n",
+ // event.time(), event.type(), event.channel(), event.dataA(), event.dataB(), hb, lb, pr);
+
+ if (hb != 0xff)
+ queueEvent(MidiPlayEvent(t, port, chn, ME_CONTROLLER, CTRL_HBANK, hb));
+ if (lb != 0xff)
+ queueEvent(MidiPlayEvent(t+1, port, chn, ME_CONTROLLER, CTRL_LBANK, lb));
+ queueEvent(MidiPlayEvent(t+2, port, 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;
+ queueEvent(MidiPlayEvent(t, port, ME_SYSEX, sysex, 6));
+ }
+ */
+ else if (a < CTRL_14_OFFSET)
+ { // 7 Bit Controller
+ queueEvent(event);
+ //queueEvent(museport, MidiPlayEvent(t, port, chn, event));
+ }
+ 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;
+ queueEvent(MidiPlayEvent(t, port, chn, ME_CONTROLLER, ctrlH, dataH));
+ queueEvent(MidiPlayEvent(t+1, port, chn, ME_CONTROLLER, ctrlL, dataL));
+ }
+ else if (a < CTRL_NRPN_OFFSET)
+ { // RPN 7-Bit Controller
+ int ctrlH = (a >> 8) & 0x7f;
+ int ctrlL = a & 0x7f;
+ queueEvent(MidiPlayEvent(t, port, chn, ME_CONTROLLER, CTRL_HRPN, ctrlH));
+ queueEvent(MidiPlayEvent(t+1, port, chn, ME_CONTROLLER, CTRL_LRPN, ctrlL));
+ queueEvent(MidiPlayEvent(t+2, port, chn, ME_CONTROLLER, CTRL_HDATA, b));
+
+ t += 3;
+ // Select null parameters so that subsequent data controller events do not upset the last *RPN controller.
+ //sendNullRPNParams(chn, false);
+ if(nvh != 0xff)
+ {
+ queueEvent(MidiPlayEvent(t, port, chn, ME_CONTROLLER, CTRL_HRPN, nvh & 0x7f));
+ t += 1;
+ }
+ if(nvl != 0xff)
+ queueEvent(MidiPlayEvent(t, port, chn, ME_CONTROLLER, CTRL_LRPN, nvl & 0x7f));
+ }
+ //else if (a < CTRL_RPN14_OFFSET)
+ else if (a < CTRL_INTERNAL_OFFSET)
+ { // NRPN 7-Bit Controller
+ int ctrlH = (a >> 8) & 0x7f;
+ int ctrlL = a & 0x7f;
+ queueEvent(MidiPlayEvent(t, port, chn, ME_CONTROLLER, CTRL_HNRPN, ctrlH));
+ queueEvent(MidiPlayEvent(t+1, port, chn, ME_CONTROLLER, CTRL_LNRPN, ctrlL));
+ queueEvent(MidiPlayEvent(t+2, port, chn, ME_CONTROLLER, CTRL_HDATA, b));
+
+ t += 3;
+ //sendNullRPNParams(chn, true);
+ if(nvh != 0xff)
+ {
+ queueEvent(MidiPlayEvent(t, port, chn, ME_CONTROLLER, CTRL_HNRPN, nvh & 0x7f));
+ t += 1;
+ }
+ if(nvl != 0xff)
+ queueEvent(MidiPlayEvent(t, port, chn, ME_CONTROLLER, CTRL_LNRPN, nvl & 0x7f));
+ }
+ 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;
+ queueEvent(MidiPlayEvent(t, port, chn, ME_CONTROLLER, CTRL_HRPN, ctrlH));
+ queueEvent(MidiPlayEvent(t+1, port, chn, ME_CONTROLLER, CTRL_LRPN, ctrlL));
+ queueEvent(MidiPlayEvent(t+2, port, chn, ME_CONTROLLER, CTRL_HDATA, dataH));
+ queueEvent(MidiPlayEvent(t+3, port, chn, ME_CONTROLLER, CTRL_LDATA, dataL));
+
+ t += 4;
+ //sendNullRPNParams(chn, false);
+ if(nvh != 0xff)
+ {
+ queueEvent(MidiPlayEvent(t, port, chn, ME_CONTROLLER, CTRL_HRPN, nvh & 0x7f));
+ t += 1;
+ }
+ if(nvl != 0xff)
+ queueEvent(MidiPlayEvent(t, port, chn, ME_CONTROLLER, CTRL_LRPN, nvl & 0x7f));
+ }
+ 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;
+ queueEvent(MidiPlayEvent(t, port, chn, ME_CONTROLLER, CTRL_HNRPN, ctrlH));
+ queueEvent(MidiPlayEvent(t+1, port, chn, ME_CONTROLLER, CTRL_LNRPN, ctrlL));
+ queueEvent(MidiPlayEvent(t+2, port, chn, ME_CONTROLLER, CTRL_HDATA, dataH));
+ queueEvent(MidiPlayEvent(t+3, port, chn, ME_CONTROLLER, CTRL_LDATA, dataL));
+
+ t += 4;
+ //sendNullRPNParams(chn, true);
+ if(nvh != 0xff)
+ {
+ queueEvent(MidiPlayEvent(t, port, chn, ME_CONTROLLER, CTRL_HNRPN, nvh & 0x7f));
+ t += 1;
+ }
+ if(nvl != 0xff)
+ queueEvent(MidiPlayEvent(t, port, chn, ME_CONTROLLER, CTRL_LNRPN, nvl & 0x7f));
+ }
+ else
+ {
+ printf("MidiJackDevice::processEvent: unknown controller type 0x%x\n", a);
+ }
+ }
+ else
+ {
+ queueEvent(event);
+ //queueEvent(MidiPlayEvent(t, port, chn, event));
+ }
+}
+
+//---------------------------------------------------------
+// processMidi called from audio process only.
+//---------------------------------------------------------
+
+void MidiJackDevice::processMidi()
+{
+ if(!_client_jackport)
+ return;
+ void* port_buf = jack_port_get_buffer(_client_jackport, segmentSize);
+ jack_midi_clear_buffer(port_buf);
+
+ while(!eventFifo.isEmpty())
+ {
+ MidiPlayEvent e(eventFifo.get());
+ int evTime = e.time();
+ // Is event marked to be played immediately?
+ if(evTime == 0)
+ {
+ // Nothing to do but stamp the event to be queued for frame 0+.
+ //e.setTime(frameOffset + pos);
+ e.setTime(audio->getFrameOffset() + audio->pos().frame());
+ }
+
+ #ifdef JACK_MIDI_DEBUG
+ printf("MidiJackDevice::processMidi eventFifo time:%d type:%d ch:%d A:%d B:%d\n", e.time(), e.type(), e.channel(), e.dataA(), e.dataB());
+ #endif
+
+ //el->insert(eventFifo.get());
+ //el->insert(e);
+ processEvent(e);
+ }
+
+ MPEventList* el = playEvents();
+ if(el->empty())
+ return;
+
+ iMPEvent i = nextPlayEvent();
+ for(; i != el->end(); ++i)
+ {
+ // p3.3.39 Update hardware state so knobs and boxes are updated. Optimize to avoid re-setting existing values.
+ // Same code as in MidiPort::sendEvent()
+ if(_port != -1)
+ {
+ MidiPort* mp = &midiPorts[_port];
+ if(i->type() == ME_CONTROLLER)
+ {
+ int da = i->dataA();
+ int db = i->dataB();
+ db = mp->limitValToInstrCtlRange(da, db);
+ if(!mp->setHwCtrlState(i->channel(), da, db))
+ continue;
+ //mp->setHwCtrlState(i->channel(), da, db);
+ }
+ else
+ if(i->type() == ME_PITCHBEND)
+ {
+ // p3.3.44
+ //printf("MidiJackDevice::processMidi playEvents ME_PITCHBEND time:%d type:%d ch:%d A:%d B:%d\n", (*i).time(), (*i).type(), (*i).channel(), (*i).dataA(), (*i).dataB());
+
+ int da = mp->limitValToInstrCtlRange(CTRL_PITCH, i->dataA());
+ if(!mp->setHwCtrlState(i->channel(), CTRL_PITCH, da))
+ continue;
+ //mp->setHwCtrlState(i->channel(), CTRL_PITCH, da);
+
+ //(MidiPlayEvent(t, port, chn, ME_PITCHBEND, v & 0x7f, (v >> 7) & 0x7f));
+ }
+ else
+ if(i->type() == ME_PROGRAM)
+ {
+ if(!mp->setHwCtrlState(i->channel(), CTRL_PROGRAM, i->dataA()))
+ continue;
+ //mp->setHwCtrlState(i->channel(), CTRL_PROGRAM, i->dataA());
+ }
+ }
+
+ processEvent(*i);
+ }
+
+ setNextPlayEvent(i);
+}
+
+//---------------------------------------------------------
+// initMidiJack
+// return true on error
+//---------------------------------------------------------
+
+bool initMidiJack()
+{
+ /*
+ int adr = 0;
+
+ memset(jack_midi_out_data, 0, JACK_MIDI_CHANNELS * sizeof(muse_jack_midi_buffer));
+ memset(jack_midi_in_data, 0, JACK_MIDI_CHANNELS * sizeof(muse_jack_midi_buffer));
+
+ MidiJackDevice* dev = new MidiJackDevice(adr, QString("jack-midi"));
+ dev->setrwFlags(3); // set read and write flags
+
+ if(pipe(jackmidi_pi) < 0){
+ fprintf(stderr, "cant create midi-jack input pipe\n");
+ }
+ if(pipe(jackmidi_po) < 0){
+ fprintf(stderr, "cant create midi-jack output pipe\n");
+ }
+
+ midiDevices.add(dev);
+
+ gmdev = dev; // proclaim the global jack-midi instance
+
+ //jackScanMidiPorts();
+ */
+
+ return false;
+}
+
+/*
+struct JackPort {
+ int adr;
+ //char* name;
+ QString name;
+ int flags;
+ //JackPort(int a, const char* s, int f) {
+ JackPort(int a, const QString& s, int f) {
+ adr = a;
+ //name = strdup(s);
+ name = QString(s);
+ flags = f;
+ }
+ };
+
+
+static std::list<JackPort> portList;
+
+//---------------------------------------------------------
+// jackScanMidiPorts
+//---------------------------------------------------------
+
+void jackScanMidiPorts()
+{
+ int adr;
+ const char* name;
+
+ portList.clear();
+ adr = 0;
+ name = strdup("namex");
+ portList.push_back(JackPort(adr, name, 0));
+ //
+ // check for devices to add
+ //
+ for (std::list<JackPort>::iterator k = portList.begin(); k != portList.end(); ++k) {
+ iMidiDevice i = midiDevices.begin();
+ for (;i != midiDevices.end(); ++i) {
+ //MidiJackDevice* d = dynamic_cast<MidiJackDevice*>(*i);
+ break;
+ //if (d == 0) continue;
+ //if ((k->adr.client == d->adr.client) && (k->adr.port == d->adr.port)) {
+ // break;
+ //}
+ }
+ if (i == midiDevices.end()) {
+ // add device
+ MidiJackDevice* dev = new MidiJackDevice(k->adr, QString(k->name));
+ dev->setrwFlags(k->flags);
+ midiDevices.add(dev);
+ }
+ }
+}
+*/
+
+/*
+//---------------------------------------------------------
+// processInput
+//---------------------------------------------------------
+static void handle_jack_midi_in(int channel)
+{
+ MidiRecordEvent event;
+ int t,n,v;
+ t = jack_midi_in_data[channel].buffer[0];
+ n = jack_midi_in_data[channel].buffer[1];
+ v = jack_midi_in_data[channel].buffer[2];
+
+ event.setType(0); // mark as unused
+ event.setPort(gmdev->midiPort());
+ event.setB(0);
+
+ if(t == 0x90){ // note on
+ fprintf(stderr, "jackProcessMidiInput note-on\n");
+ event.setChannel(channel);
+ event.setType(ME_NOTEON);
+ event.setA(n);
+ event.setB(v);
+ }else if (t == 0x80){ // note off
+ fprintf(stderr, "jackProcessMidiInput note-off\n");
+ event.setChannel(channel);
+ event.setType(ME_NOTEOFF);
+ event.setA(n);
+ event.setB(v);
+ }else{
+ fprintf(stderr, "WARNING: unknown midi-in on channel %d: %x,%x,%x\n",
+ channel, t, n, v);
+ return;
+ }
+ if(event.type()){
+ gmdev->recordEvent(event);
+ midiPorts[gmdev->midiPort()].syncInfo().trigActDetect(event.channel());
+ }
+}
+
+void MidiJackDevice::processInput()
+{
+ char buf;
+ int i,s;
+ read(gmdev->selectRfd(), &buf, 1);
+
+ s = 1;
+ for(i = 0; i < JACK_MIDI_CHANNELS; i++){
+ if(jack_midi_in_data[i].buffer[3]){
+ s = 0;
+ handle_jack_midi_in(i);
+ jack_midi_in_data[i].buffer[3] = 0;
+ }
+ }
+}
+
+*/
diff --git a/muse2/muse/driver/jackmidi.h b/muse2/muse/driver/jackmidi.h
new file mode 100644
index 00000000..12b967a9
--- /dev/null
+++ b/muse2/muse/driver/jackmidi.h
@@ -0,0 +1,156 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: jackmidi.h,v 1.1.1.1 2010/01/27 09:06:43 terminator356 Exp $
+// (C) Copyright 1999-2010 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __JACKMIDI_H__
+#define __JACKMIDI_H__
+
+//#include <config.h>
+
+#include <map>
+
+#include <jack/jack.h>
+#include <jack/midiport.h>
+
+#include "mididev.h"
+#include "route.h"
+
+class QString;
+class MidiFifo;
+class MidiRecordEvent;
+class MidiPlayEvent;
+//class RouteList;
+class Xml;
+
+// Turn on to show multiple devices, work in progress,
+// not working fully yet, can't seem to connect...
+#define JACK_MIDI_SHOW_MULTIPLE_DEVICES
+
+// It appears one client port per remote port will be necessary.
+// Jack doesn't seem to like manipulation of non-local ports buffers.
+#define JACK_MIDI_USE_MULTIPLE_CLIENT_PORTS
+
+/* jack-midi channels */
+//#define JACK_MIDI_CHANNELS 32
+
+/* jack-midi buffer size */
+//#define JACK_MIDI_BUFFER_SIZE 32
+
+/*
+typedef struct {
+ int give;
+ int take;
+ // 32 parallel midi events, where each event contains three
+ // midi-bytes and one busy-byte
+ char buffer[4 * JACK_MIDI_BUFFER_SIZE];
+} muse_jack_midi_buffer;
+*/
+
+/*
+struct JackMidiPort
+{
+ jack_port_t* _jackPort;
+ QString _name;
+ int _flags; // 1 = writable, 2 = readable - do not mix
+ JackMidiPort(jack_port_t* jp, const QString& s, int f)
+ {
+ _jackPort = jp;
+ _name = QString(s);
+ _flags = f;
+ }
+};
+
+typedef std::map<jack_port_t*, JackMidiPort, std::less<jack_port_t*> >::iterator iJackMidiPort;
+typedef std::map<jack_port_t*, JackMidiPort, std::less<jack_port_t*> >::const_iterator ciJackMidiPort;
+
+class JackMidiPortList : public std::map<jack_port_t*, JackMidiPort, std::less<jack_port_t*> >
+{
+ private:
+ static int _nextOutIdNum;
+ static int _nextInIdNum;
+
+ public:
+ JackMidiPortList();
+ ~JackMidiPortList();
+ iJackMidiPort createClientPort(int flags);
+ bool removeClientPort(jack_port_t* port);
+};
+
+extern JackMidiPortList jackMidiClientPorts;
+*/
+
+//---------------------------------------------------------
+// MidiJackDevice
+//---------------------------------------------------------
+
+class MidiJackDevice : public MidiDevice {
+ public:
+ //int adr;
+
+ private:
+ // fifo for midi events sent from gui
+ // direct to midi port:
+ MidiFifo eventFifo;
+
+ //static int _nextOutIdNum;
+ //static int _nextInIdNum;
+
+ jack_port_t* _client_jackport;
+ //RouteList _routes;
+
+ virtual QString open();
+ virtual void close();
+ //bool putEvent(int*);
+
+ void processEvent(const MidiPlayEvent&);
+ // Port is not midi port, it is the port(s) created for MusE.
+ bool queueEvent(const MidiPlayEvent&);
+
+ virtual bool putMidiEvent(const MidiPlayEvent&);
+ //bool sendEvent(const MidiPlayEvent&);
+
+ void eventReceived(jack_midi_event_t*);
+
+ public:
+ MidiJackDevice() {}
+ //MidiJackDevice(const int&, const QString& name);
+ MidiJackDevice(jack_port_t* jack_port, const QString& name);
+
+ static MidiDevice* createJackMidiDevice(QString /*name*/, int /*rwflags*/); // 1:Writable 2: Readable. Do not mix.
+
+ virtual inline int deviceType() { return JACK_MIDI; }
+
+ virtual void setName(const QString&);
+
+ virtual void processMidi();
+ virtual ~MidiJackDevice();
+ //virtual int selectRfd();
+ //virtual int selectWfd();
+ //virtual void processInput();
+
+ virtual void recordEvent(MidiRecordEvent&);
+
+ virtual bool putEvent(const MidiPlayEvent&);
+ virtual void collectMidiEvents();
+
+ //virtual jack_port_t* jackPort() { return _jackport; }
+ //virtual jack_port_t* clientJackPort() { return _client_jackport; }
+ virtual void* clientPort() { return (void*)_client_jackport; }
+
+ //RouteList* routes() { return &_routes; }
+ //bool noRoute() const { return _routes.empty(); }
+ virtual void writeRouting(int, Xml&) const;
+ };
+
+extern bool initMidiJack();
+//extern int jackSelectRfd();
+//extern int jackSelectWfd();
+//extern void jackProcessMidiInput();
+//extern void jackScanMidiPorts();
+
+#endif
+
+
diff --git a/muse2/muse/driver/rtctimer.cpp b/muse2/muse/driver/rtctimer.cpp
new file mode 100644
index 00000000..1a3cefa6
--- /dev/null
+++ b/muse2/muse/driver/rtctimer.cpp
@@ -0,0 +1,155 @@
+ //=========================================================
+ // MusE
+ // Linux Music Editor
+ // $Id: rtctimer.cpp,v 1.1.2.11 2009/03/09 02:05:18 terminator356 Exp $
+ //
+ // Most code moved from midiseq.cpp by Werner Schweer.
+ //
+ // (C) Copyright 2004 Robert Jonsson (rj@spamatica.se)
+ // (C) Copyright -2004 Werner Schweer (werner@seh.de)
+ //=========================================================
+
+#include <linux/version.h>
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,4,0)
+#include <linux/spinlock.h>
+#include <linux/mc146818rtc.h>
+#else
+#include <linux/rtc.h>
+#endif
+#include <stdio.h>
+#include <fcntl.h>
+#include <sys/ioctl.h>
+#include <poll.h>
+
+
+#include "rtctimer.h"
+#include "globals.h"
+#include "gconfig.h"
+
+
+RtcTimer::RtcTimer()
+ {
+ timerFd = -1;
+ }
+
+RtcTimer::~RtcTimer()
+ {
+ if (timerFd != -1)
+ close(timerFd);
+ }
+
+signed int RtcTimer::initTimer()
+ {
+ if(TIMER_DEBUG)
+ printf("RtcTimer::initTimer()\n");
+ if (timerFd != -1) {
+ fprintf(stderr,"RtcTimer::initTimer(): called on initialised timer!\n");
+ return -1;
+ }
+ doSetuid();
+
+ timerFd = ::open("/dev/rtc", O_RDONLY);
+ if (timerFd == -1) {
+ fprintf(stderr, "fatal error: open /dev/rtc failed: %s\n", strerror(errno));
+ fprintf(stderr, "hint: check if 'rtc' kernel module is loaded, or used by something else\n");
+ undoSetuid();
+ return timerFd;
+ }
+ if (!setTimerFreq(config.rtcTicks)) {
+ // unable to set timer frequency
+ return -1;
+ }
+ // check if timer really works, start and stop it once.
+ if (!startTimer()) {
+ return -1;
+ }
+ if (!stopTimer()) {
+ return -1;
+ }
+ return timerFd;
+ }
+
+unsigned int RtcTimer::setTimerResolution(unsigned int resolution)
+ {
+ if(TIMER_DEBUG)
+ printf("RtcTimer::setTimerResolution(%d)\n",resolution);
+ /* The RTC can take power-of-two frequencies from 2 to 8196 Hz.
+ * It doesn't really have a resolution as such.
+ */
+ return 0;
+ }
+
+unsigned int RtcTimer::setTimerFreq(unsigned int freq)
+ {
+ int rc = ioctl(timerFd, RTC_IRQP_SET, freq);
+ if (rc == -1) {
+ fprintf(stderr, "RtcTimer::setTimerFreq(): cannot set tick on /dev/rtc: %s\n",
+ strerror(errno));
+ fprintf(stderr, " precise timer not available\n");
+ return 0;
+ }
+ return freq;
+ }
+
+unsigned int RtcTimer::getTimerResolution()
+ {
+ /* The RTC doesn't really work with a set resolution as such.
+ * Not sure how this fits into things yet.
+ */
+ return 0;
+ }
+
+unsigned int RtcTimer::getTimerFreq()
+ {
+ unsigned int freq;
+ int rv = ioctl(timerFd, RTC_IRQP_READ, &freq);
+ if (rv < 1)
+ return 0;
+ return freq;
+ }
+
+bool RtcTimer::startTimer()
+ {
+ if(TIMER_DEBUG)
+ printf("RtcTimer::startTimer()\n");
+ if (timerFd == -1) {
+ fprintf(stderr, "RtcTimer::startTimer(): no timer open to start!\n");
+ return false;
+ }
+ if (ioctl(timerFd, RTC_PIE_ON, 0) == -1) {
+ perror("MidiThread: start: RTC_PIE_ON failed");
+ undoSetuid();
+ return false;
+ }
+ return true;
+ }
+
+bool RtcTimer::stopTimer()
+ {
+ if(TIMER_DEBUG)
+ printf("RtcTimer::stopTimer\n");
+ if (timerFd != -1) {
+ ioctl(timerFd, RTC_PIE_OFF, 0);
+ }
+ else {
+ fprintf(stderr,"RtcTimer::stopTimer(): no RTC to stop!\n");
+ return false;
+ }
+ return true;
+ }
+
+unsigned int RtcTimer::getTimerTicks(bool /*printTicks*/)// prevent compiler warning: unused parameter
+ {
+ if(TIMER_DEBUG)
+ printf("getTimerTicks()\n");
+ unsigned long int nn;
+ if (timerFd==-1) {
+ fprintf(stderr,"RtcTimer::getTimerTicks(): no RTC open to read!\n");
+ return 0;
+ }
+ if (read(timerFd, &nn, sizeof(unsigned long)) != sizeof(unsigned long)) {
+ fprintf(stderr,"RtcTimer::getTimerTicks(): error reading RTC\n");
+ return 0;
+ }
+ return nn;
+ }
diff --git a/muse2/muse/driver/rtctimer.h b/muse2/muse/driver/rtctimer.h
new file mode 100644
index 00000000..fa58b032
--- /dev/null
+++ b/muse2/muse/driver/rtctimer.h
@@ -0,0 +1,44 @@
+ //=========================================================
+ // MusE
+ // Linux Music Editor
+ // $Id: rtctimer.h,v 1.1.2.3 2005/08/21 18:11:28 spamatica Exp $
+ //
+ // Most code moved from midiseq.cpp
+ //
+ // (C) Copyright 2004 Robert Jonsson (rj@spamatica.se)
+ // (C) Copyright -2004 Werner Schweer (werner@seh.de)
+ //=========================================================
+
+#ifndef __RTCTIMER_H__
+#define __RTCTIMER_H__
+
+#include "timerdev.h"
+
+
+//---------------------------------------------------------
+// AlsaTimer
+//---------------------------------------------------------
+
+class RtcTimer : public Timer{
+
+
+ public:
+ RtcTimer();
+ virtual ~RtcTimer();
+
+ virtual signed int initTimer();
+ virtual unsigned int setTimerResolution(unsigned int resolution);
+ virtual unsigned int getTimerResolution();
+ virtual unsigned int setTimerFreq(unsigned int tick);
+ virtual unsigned int getTimerFreq();
+
+ virtual bool startTimer();
+ virtual bool stopTimer();
+ virtual unsigned int getTimerTicks(bool printTicks=false);
+
+ private:
+ int timerFd;
+
+};
+
+#endif //__ALSATIMER_H__
diff --git a/muse2/muse/driver/timerdev.h b/muse2/muse/driver/timerdev.h
new file mode 100644
index 00000000..944bc213
--- /dev/null
+++ b/muse2/muse/driver/timerdev.h
@@ -0,0 +1,41 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: timerdev.h,v 1.1.2.3 2005/08/21 18:11:28 spamatica Exp $
+//
+// Plenty of code borrowed from timer.c example in
+// alsalib 1.0.7
+//
+// (C) Copyright 2004 Robert Jonsson (rj@spamatica.se)
+//=========================================================
+
+#ifndef __TIMERDEV_H__
+#define __TIMERDEV_H__
+
+#include "alsa/asoundlib.h"
+
+#define TIMER_DEBUG 0
+
+//---------------------------------------------------------
+// AlsaTimer
+//---------------------------------------------------------
+
+class Timer {
+
+ public:
+ Timer() {};
+ virtual ~Timer() {};
+
+ virtual signed int initTimer() = 0;
+ virtual unsigned int setTimerResolution(unsigned int resolution) = 0;
+ virtual unsigned int getTimerResolution() = 0;
+ virtual unsigned int setTimerFreq(unsigned int freq) = 0;
+ virtual unsigned int getTimerFreq() = 0;
+
+ virtual bool startTimer() = 0;
+ virtual bool stopTimer() = 0;
+ virtual unsigned int getTimerTicks(bool printTicks = false) = 0;
+
+};
+
+#endif //__ALSATIMER_H__
diff --git a/muse2/muse/dssihost.cpp b/muse2/muse/dssihost.cpp
new file mode 100644
index 00000000..2c13d223
--- /dev/null
+++ b/muse2/muse/dssihost.cpp
@@ -0,0 +1,3055 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id: dssihost.cpp,v 1.15.2.16 2009/12/15 03:39:58 terminator356 Exp $
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the 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
+
+// Turn on debugging messages
+//#define DSSI_DEBUG
+
+// Support vst state saving/loading with vst chunks. Requires patches to DSSI and DSSI-vst!
+//#define DSSI_VST_CHUNK_SUPPORT
+
+#include <string.h>
+#include <signal.h>
+#include <dlfcn.h>
+#include <stdlib.h>
+#include <sys/stat.h>
+//#include <dssi.h>
+//#include <alsa/asoundlib.h>
+#include <qdir.h>
+//#include <qstringlist.h>
+#include <QFileInfo>
+#include <q3popupmenu.h>
+//#include <qprocess.h>
+
+#include "dssihost.h"
+#include "synth.h"
+#include "audio.h"
+#include "jackaudio.h"
+#include "midi.h"
+#include "midiport.h"
+#include "stringparam.h"
+#include "plugin.h"
+//#include "al/al.h"
+//#include "al/xml.h"
+#include "xml.h"
+#include "song.h"
+//#include "midictrl.h"
+//#include "ladspaplugin.h"
+
+#include "app.h"
+#include "globals.h"
+#include "globaldefs.h"
+//#include "al/dsp.h"
+#include "gconfig.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.
+
+
+ #ifdef DSSI_DEBUG
+ printf("DssiSynthIF::oscUpdate synth name:%s url:%s uiTarget:%p uiOscPath:%s uiOscConfigurePath:%s museProject:%s\n", synti->name().ascii(), url, uiTarget, uiOscPath, uiOscConfigurePath, museProject.ascii());
+ #endif
+
+ //lo_send(uiTarget, uiOscConfigurePath, "ss",
+ //DSSI_PROJECT_DIRECTORY_KEY, song->projectPath().toAscii().data());
+ lo_send(uiTarget, uiOscConfigurePath, "ss",
+ DSSI_PROJECT_DIRECTORY_KEY, museProject.ascii());
+
+#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;
+
+ #ifdef DSSI_DEBUG
+ if(argc)
+ {
+ printf("oscMessageHandler: path:%s argc:%d\n", path, argc);
+ for(int i = 0; i < argc; ++i)
+ {
+ printf(" ");
+ lo_arg_pp((lo_type)types[i], argv[i]);
+ }
+ printf("\n");
+ }
+ else
+ {
+ printf("%s\n", path);
+ printf("oscMessageHandler: no args, path:%s\n", path);
+ }
+ #endif
+
+ if (strncmp(p, "/dssi/", 6))
+ return oscDebugHandler(path, types, argv, argc, data, user_data);
+
+ p += 6;
+ //p = strrchr(p, "/");
+
+ SynthIList* sl = song->syntis();
+ DssiSynthIF* instance = 0;
+ SynthI* synti = 0;
+
+ #ifdef DSSI_DEBUG
+ fprintf(stderr, "oscMessageHandler: song->syntis() size:%d\n", sl->size());
+ #endif
+
+ for(int retry = 0; retry < 5; ++retry)
+ {
+ #ifdef DSSI_DEBUG
+ fprintf(stderr, "oscMessageHandler: search retry number:%d ...\n", retry);
+ #endif
+
+ //if(uiOscPath)
+ // break;
+
+ for(iSynthI si = sl->begin(); si != sl->end(); ++si)
+ {
+ #ifdef DSSI_DEBUG
+ fprintf(stderr, "oscMessageHandler: searching for synth p:%s: checking instances:%s\n", p, (*si)->name().ascii());
+ #endif
+
+ //int l = strlen((*si)->name().toAscii().data());
+ //if (!strncmp(p, (*si)->name().toAscii().data(), l)) {
+ //int l = strlen((*si)->name().ascii());
+ const char* sub = strstr(p, (*si)->name().ascii());
+
+ //if(!strncmp(p, (*si)->name().ascii(), l))
+ if(sub != NULL)
+ {
+ synti = *si;
+ instance = (DssiSynthIF*)(synti->sif());
+
+ //p += l;
+ p = sub + strlen((*si)->name().ascii());
+
+ break;
+ }
+ }
+ if(instance)
+ break;
+
+ sleep(1);
+ }
+
+ if(!instance)
+ {
+ fprintf(stderr, "oscMessageHandler: error: no instance\n");
+ return oscDebugHandler(path, types, argv, argc, data, user_data);
+ }
+
+ if (*p != '/' || *(p + 1) == 0)
+ {
+ fprintf(stderr, "oscMessageHandler: error: end or no /\n");
+ return oscDebugHandler(path, types, argv, argc, data, user_data);
+ }
+
+ ++p;
+
+ #ifdef DSSI_DEBUG
+ fprintf(stderr, "oscMessageHandler: method:%s\n", p);
+ #endif
+
+ 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(QFileInfo& fi) // ddskrjo removed const for argument
+ {
+ //void* handle = dlopen(fi.filePath().toAscii().data(), RTLD_NOW);
+ void* handle = dlopen(fi.filePath().latin1(), RTLD_NOW);
+ //void* handle = dlopen(fi.absFilePath().latin1(), RTLD_NOW);
+
+ if (handle == 0) {
+ fprintf(stderr, "scanDSSILib: dlopen(%s) failed: %s\n",
+ //fi.filePath().toAscii().data(), dlerror());
+ fi.filePath().latin1(), dlerror());
+ //fi.absFilePath().latin1(), 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(),
+ fi.filePath().ascii(),
+ //fi.absFilePath().latin1(),
+
+ txt);
+ dlclose(handle);
+ exit(1);
+ }
+ */
+ dlclose(handle);
+ return;
+ }
+ else
+ {
+ const DSSI_Descriptor* descr;
+ for (int i = 0;; ++i)
+ {
+ descr = dssi(i);
+ if (descr == 0)
+ break;
+
+ #ifdef DSSI_DEBUG
+ fprintf(stderr, "scanDSSILib: name:%s inPlaceBroken:%d\n", descr->LADSPA_Plugin->Name, LADSPA_IS_INPLACE_BROKEN(descr->LADSPA_Plugin->Properties));
+ #endif
+
+ // Listing synths only while excluding effect plugins:
+ // Do the exact opposite of what dssi-vst.cpp does for listing ladspa plugins.
+ // That way we cover all bases - effect plugins and synths.
+ // Non-synths will show up in the ladspa effect dialog, while synths will show up here...
+ // There should be nothing left out...
+ if(descr->run_synth ||
+ descr->run_synth_adding ||
+ descr->run_multiple_synths ||
+ descr->run_multiple_synths_adding)
+
+ {
+ const QString label(descr->LADSPA_Plugin->Label);
+
+ // Make sure it doesn't already exist.
+ std::vector<Synth*>::iterator is;
+ for(is = synthis.begin(); is != synthis.end(); ++is)
+ {
+ Synth* s = *is;
+ //#ifdef DSSI_DEBUG
+ // fprintf(stderr, "scanDSSILib: name:%s listname:%s lib:%s listlib:%s\n",
+ // label.latin1(), s->name().latin1(), fi.baseName(true).latin1(), s->baseName().latin1());
+ //#endif
+
+ if(s->name() == label && s->baseName() == fi.baseName(true))
+ break;
+ }
+ if(is != synthis.end())
+ continue;
+
+ DssiSynth* s = new DssiSynth(fi, descr);
+
+ if(debugMsg)
+ {
+ fprintf(stderr, "scanDSSILib: name:%s listname:%s lib:%s listlib:%s\n",
+ label.latin1(), s->name().latin1(), fi.baseName(true).latin1(), s->baseName().latin1());
+ int ai = 0, ao = 0, ci = 0, co = 0;
+ for(unsigned long pt = 0; pt < descr->LADSPA_Plugin->PortCount; ++pt)
+ {
+ LADSPA_PortDescriptor pd = descr->LADSPA_Plugin->PortDescriptors[pt];
+ if(LADSPA_IS_PORT_INPUT(pd) && LADSPA_IS_PORT_AUDIO(pd))
+ ai++;
+ else
+ if(LADSPA_IS_PORT_OUTPUT(pd) && LADSPA_IS_PORT_AUDIO(pd))
+ ao++;
+ else
+ if(LADSPA_IS_PORT_INPUT(pd) && LADSPA_IS_PORT_CONTROL(pd))
+ ci++;
+ else
+ if(LADSPA_IS_PORT_OUTPUT(pd) && LADSPA_IS_PORT_CONTROL(pd))
+ co++;
+ }
+ fprintf(stderr, "audio ins:%d outs:%d control ins:%d outs:%d\n", ai, ao, ci, co);
+ }
+
+ synthis.push_back(s);
+ }
+ else
+ {
+ // NOTE: Just a test
+ //QFileInfo ffi(fi);
+ //plugins.add(&ffi, LADSPA_Descriptor_Function(NULL), descr->LADSPA_Plugin, false);
+ //plugins.add(&ffi, descr, false);
+ }
+ }
+ }
+ dlclose(handle);
+ }
+
+//---------------------------------------------------------
+// scanVstDir
+//---------------------------------------------------------
+
+static void scanDSSIDir(QString& s) // ddskrjo removed const for argument
+{
+ if(debugMsg)
+ //printf("scan DSSI plugin dir <%s>\n", s.toAscii().data());
+ printf("scanDSSIDir: scan DSSI plugin dir <%s>\n", s.latin1());
+
+#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);
+ //}
+
+ QStringList list = pluginDir.entryList();
+ for(unsigned int i = 0; i < list.count(); ++i)
+ {
+ if(debugMsg)
+ printf("scanDSSIDir: found %s\n", (s + QString("/") + list[i]).latin1());
+
+ QFileInfo fi(s + QString("/") + list[i]);
+ scanDSSILib(fi);
+ }
+}
+
+//---------------------------------------------------------
+// initDSSI
+//---------------------------------------------------------
+
+void initDSSI()
+ {
+ const char* dssiPath = getenv("DSSI_PATH");
+ if (dssiPath == 0)
+ dssiPath = "/usr/local/lib64/dssi:/usr/lib64/dssi:/usr/local/lib/dssi:/usr/lib/dssi";
+
+ //const char* ladspaPath = getenv("LADSPA_PATH");
+ //if (ladspaPath == 0)
+ // ladspaPath = "/usr/local/lib64/ladspa:/usr/lib64/ladspa:/usr/local/lib/ladspa:/usr/lib/ladspa";
+
+ const char* p = dssiPath;
+ //QString pth = QString(dssiPath) + QString(":") + QString(ladspaPath);
+ //const char* p = pth.latin1();
+ 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';
+ QString tmpStr(buffer);
+ scanDSSIDir(tmpStr);
+ 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);
+ }
+
+//---------------------------------------------------------
+// DssiSynth
+// Synth.label = plug.Label
+// Synth.descr = plug.Name
+// Synth.maker = plug.maker
+// Synth.version = nil (no such field in ladspa, maybe try copyright instead)
+//---------------------------------------------------------
+
+DssiSynth::DssiSynth(QFileInfo& fi, const DSSI_Descriptor* d) : // ddskrjo removed const from QFileInfo
+ //Synth(fi, label, descr, maker, ver)
+ Synth(fi, QString(d->LADSPA_Plugin->Label), QString(d->LADSPA_Plugin->Name), QString(d->LADSPA_Plugin->Maker), QString())
+{
+ df = 0;
+ handle = 0;
+ dssi = 0;
+ _hasGui = false;
+
+ const LADSPA_Descriptor* descr = d->LADSPA_Plugin;
+
+ _portCount = descr->PortCount;
+ //_portDescriptors = 0;
+ //if(_portCount)
+ // _portDescriptors = new LADSPA_PortDescriptor[_portCount];
+
+ _inports = 0;
+ _outports = 0;
+ _controlInPorts = 0;
+ _controlOutPorts = 0;
+ for(unsigned long k = 0; k < _portCount; ++k)
+ {
+ LADSPA_PortDescriptor pd = descr->PortDescriptors[k];
+ //_portDescriptors[k] = pd;
+ if(pd & LADSPA_PORT_AUDIO)
+ {
+ if(pd & LADSPA_PORT_INPUT)
+ ++_inports;
+ else
+ if(pd & LADSPA_PORT_OUTPUT)
+ ++_outports;
+ }
+ else
+ if(pd & LADSPA_PORT_CONTROL)
+ {
+ if(pd & LADSPA_PORT_INPUT)
+ ++_controlInPorts;
+ else
+ if(pd & LADSPA_PORT_OUTPUT)
+ ++_controlOutPorts;
+ }
+ }
+
+ _inPlaceCapable = !LADSPA_IS_INPLACE_BROKEN(descr->Properties);
+
+ // Blacklist vst plugins in-place configurable for now.
+ if ((_inports != _outports) || (fi.baseName(true) == QString("dssi-vst") && !config.vstInPlace))
+ _inPlaceCapable = false;
+}
+
+DssiSynth::~DssiSynth()
+{
+
+}
+
+//---------------------------------------------------------
+// createSIF
+//---------------------------------------------------------
+
+SynthIF* DssiSynth::createSIF(SynthI* synti)
+{
+ if (_instances == 0)
+ {
+ //handle = dlopen(info.filePath().toAscii().data(), RTLD_NOW);
+ handle = dlopen(info.filePath().latin1(), RTLD_NOW);
+ //handle = dlopen(info.absFilePath().latin1(), RTLD_NOW);
+
+ if (handle == 0)
+ {
+ fprintf(stderr, "DssiSynth::createSIF dlopen(%s) failed: %s\n",
+ //info.filePath().toAscii().data(), dlerror());
+ info.filePath().latin1(), dlerror());
+ //info.absFilePath().latin1(), 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(),
+ info.filePath().latin1(),
+ //info.absFilePath().latin1(),
+
+ 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;
+ }
+
+ if(dssi != 0)
+ {
+ _inports = 0;
+ _outports = 0;
+ _controlInPorts = 0;
+ _controlOutPorts = 0;
+
+ pIdx.clear();
+ opIdx.clear();
+ iIdx.clear();
+ oIdx.clear();
+ rpIdx.clear();
+ iUsedIdx.clear();
+ midiCtl2PortMap.clear();
+ port2MidiCtlMap.clear();
+ //synti->_guiUpdateControls.clear();
+
+ const LADSPA_Descriptor* descr = dssi->LADSPA_Plugin;
+ //#ifdef DSSI_DEBUG
+ // printf("DssiSynth::createSIF ladspa plugin PortCount:%lu\n", d->PortCount);
+ //#endif
+
+ _portCount = descr->PortCount;
+
+ for (unsigned long k = 0; k < _portCount; ++k)
+ {
+ LADSPA_PortDescriptor pd = descr->PortDescriptors[k];
+
+ #ifdef DSSI_DEBUG
+ printf("DssiSynth::createSIF ladspa plugin Port:%ld Name:%s descriptor:%x\n", k, descr->PortNames[k], pd);
+ #endif
+
+ if (LADSPA_IS_PORT_AUDIO(pd))
+ {
+ if (LADSPA_IS_PORT_INPUT(pd))
+ {
+ ++_inports;
+ iIdx.push_back(k);
+ iUsedIdx.push_back(false); // Start out with all false.
+ }
+ else if (LADSPA_IS_PORT_OUTPUT(pd))
+ {
+ ++_outports;
+ oIdx.push_back(k);
+ }
+
+ rpIdx.push_back((unsigned long)-1);
+ }
+ else if (LADSPA_IS_PORT_CONTROL(pd))
+ {
+ if (LADSPA_IS_PORT_INPUT(pd))
+ {
+ rpIdx.push_back(_controlInPorts);
+ ++_controlInPorts;
+ pIdx.push_back(k);
+ // Set to false at first.
+ //synti->_guiUpdateControls.push_back(false);
+ }
+ else if (LADSPA_IS_PORT_OUTPUT(pd))
+ {
+ rpIdx.push_back((unsigned long)-1);
+ ++_controlOutPorts;
+ opIdx.push_back(k);
+ }
+ }
+ }
+
+ _inPlaceCapable = !LADSPA_IS_INPLACE_BROKEN(descr->Properties);
+ // Blacklist vst plugins in-place configurable for now.
+ if((_inports != _outports) || (info.baseName(true) == QString("dssi-vst") && !config.vstInPlace))
+ _inPlaceCapable = false;
+ }
+ }
+
+ if (dssi == 0)
+ {
+ //fprintf(stderr, "cannot found DSSI synti %s\n", _name.toAscii().data());
+ fprintf(stderr, "cannot find DSSI synti %s\n", _name.latin1());
+ dlclose(handle);
+ handle = 0;
+ df = 0;
+ return 0;
+ }
+
+ DssiSynthIF* sif = new DssiSynthIF(synti);
+ ++_instances;
+ sif->init(this);
+
+ //_plugin->incInstances(1);
+
+
+
+// static char oscUrl[1024];
+ //snprintf(oscUrl, 1024, "%s/%s", url, synti->name().toAscii().data());
+ //snprintf(oscUrl, 1024, "%s/%s", url, synti->name().latin1());
+// snprintf(oscUrl, 1024, "%s/%s/%s", url, info.baseName().latin1(), synti->name().latin1());
+ //QString guiPath(info.path() + "/" + info.baseName());
+ QString guiPath(info.dirPath() + "/" + info.baseName());
+ QDir guiDir(guiPath, "*", QDir::Unsorted, QDir::Files);
+ _hasGui = guiDir.exists();
+
+ //sif->initGui();
+
+ return sif;
+}
+
+//---------------------------------------------------------
+// guiVisible
+//---------------------------------------------------------
+
+bool DssiSynthIF::guiVisible() const
+ {
+ //return _guiVisible;
+ #ifdef OSC_SUPPORT
+ return _oscif.oscGuiVisible();
+ #endif
+ return false;
+ }
+
+//---------------------------------------------------------
+// showGui
+//---------------------------------------------------------
+
+void DssiSynthIF::showGui(bool v)
+ {
+ #ifdef OSC_SUPPORT
+
+ #ifdef DSSI_DEBUG
+ printf("DssiSynthIF::showGui(): v:%d visible:%d\n", v, guiVisible());
+ #endif
+
+ _oscif.oscShowGui(v);
+
+ #endif // OSC_SUPPORT
+
+ /*
+ if (v == guiVisible())
+ return;
+
+ //if(guiPid == -1)
+ if((guiQProc == 0) || (!guiQProc->isRunning()))
+ {
+ // We need an indicator that update was called - update must have been called to get new path etc...
+ // If the process is not running this path is invalid, right?
+ if(uiOscPath)
+ free(uiOscPath);
+ uiOscPath = 0;
+
+ #ifdef DSSI_DEBUG
+ printf("DssiSynthIF::showGui(): No QProcess or process not running. Starting gui...\n");
+ #endif
+
+ initGui();
+ }
+
+ //for (int i = 0; i < 5; ++i) {
+ for (int i = 0; i < 10; ++i) { // Give it a wee bit more time?
+ if (uiOscPath)
+ break;
+ sleep(1);
+ }
+ if (uiOscPath == 0) {
+ printf("DssiSynthIF::showGui(): no uiOscPath. Error: Timeout - synth gui did not start within 10 seconds.\n");
+ return;
+ }
+
+ char uiOscGuiPath[strlen(uiOscPath)+6];
+ sprintf(uiOscGuiPath, "%s/%s", uiOscPath, v ? "show" : "hide");
+ #ifdef DSSI_DEBUG
+ printf("DssiSynthIF::showGui(): Sending show/hide uiOscGuiPath:%s\n", uiOscGuiPath);
+ #endif
+
+ lo_send(uiTarget, uiOscGuiPath, "");
+ _guiVisible = v;
+ */
+ }
+
+//---------------------------------------------------------
+// receiveEvent
+//---------------------------------------------------------
+
+//MidiEvent DssiSynthIF::receiveEvent()
+// {
+// return MidiEvent();
+// }
+MidiPlayEvent DssiSynthIF::receiveEvent()
+ {
+ return MidiPlayEvent();
+ }
+
+//---------------------------------------------------------
+// init
+//---------------------------------------------------------
+
+bool DssiSynthIF::init(DssiSynth* s)
+ {
+ #ifdef DSSI_DEBUG
+ printf("DssiSynthIF::init\n");
+ #endif
+
+ synth = s;
+ const DSSI_Descriptor* dssi = synth->dssi;
+ const LADSPA_Descriptor* ld = dssi->LADSPA_Plugin;
+ handle = ld->instantiate(ld, sampleRate);
+
+ #ifdef OSC_SUPPORT
+ _oscif.oscSetSynthIF(this);
+ #endif
+
+ queryPrograms();
+
+ int inports = synth->_inports;
+ if(inports != 0)
+ {
+ audioInBuffers = new float*[inports];
+ for(int k = 0; k < inports; ++k)
+ {
+ //audioInBuffers[k] = new LADSPA_Data[segmentSize];
+ //posix_memalign((void**)(audioInBuffers + k), 16, sizeof(float) * segmentSize);
+ posix_memalign((void**)&audioInBuffers[k], 16, sizeof(float) * segmentSize);
+ memset(audioInBuffers[k], 0, sizeof(float) * segmentSize);
+ ld->connect_port(handle, synth->iIdx[k], audioInBuffers[k]);
+ }
+ }
+
+ int outports = synth->_outports;
+ if(outports != 0)
+ {
+ audioOutBuffers = new float*[outports];
+ for(int k = 0; k < outports; ++k)
+ {
+ //audioOutBuffers[k] = new LADSPA_Data[segmentSize];
+ //posix_memalign((void**)(audioOutBuffers + k), 16, sizeof(float) * segmentSize);
+ posix_memalign((void**)&audioOutBuffers[k], 16, sizeof(float) * segmentSize);
+ memset(audioOutBuffers[k], 0, sizeof(float) * segmentSize);
+ ld->connect_port(handle, synth->oIdx[k], audioOutBuffers[k]);
+ //printf("DssiSynthIF::init output port name: %s\n", ld->PortNames[synth->oIdx[k]]); // out1, out2, out3 etc
+ }
+ }
+
+ int controlPorts = synth->_controlInPorts;
+ int controlOutPorts = synth->_controlOutPorts;
+
+ if(controlPorts != 0)
+ controls = new Port[controlPorts];
+ else
+ controls = 0;
+
+ if(controlOutPorts != 0)
+ controlsOut = new Port[controlOutPorts];
+ else
+ controlsOut = 0;
+
+ synth->midiCtl2PortMap.clear();
+ synth->port2MidiCtlMap.clear();
+ synti->_guiUpdateControls.clear();
+ synti->_guiUpdateProgram = false;
+
+ for (int k = 0; k < controlPorts; ++k) {
+ int i = synth->pIdx[k];
+ //controls[k].val = ladspaDefaultValue(ld, i);
+ ladspaDefaultValue(ld, i, &controls[k].val);
+
+ // Set to false at first.
+ synti->_guiUpdateControls.push_back(false);
+
+ #ifdef DSSI_DEBUG
+ printf("DssiSynthIF::init control port:%d port idx:%d name:%s\n", k, i, ld->PortNames[i]);
+ #endif
+
+ // This code is duplicated in ::getControllerInfo()
+ //
+
+ int ctlnum = DSSI_NONE;
+ if(dssi->get_midi_controller_for_port)
+ ctlnum = dssi->get_midi_controller_for_port(handle, i);
+
+ // No controller number? Try to give it a unique one...
+ if(ctlnum == DSSI_NONE)
+ {
+ // FIXME: Be more careful. Must make sure to pick numbers not already chosen or which WILL BE chosen.
+ // Simple but flawed solution: Start them at 0x60000 + 0x2000 = 0x62000. Max NRPN number is 0x3fff.
+ // TODO: Update: Actually we want to try to use CC Controller7 controllers if possible (or a choice) because what if
+ // the user's controller hardware doesn't support RPN?
+ // If CC Controller7 is chosen we must make sure to use only non-common numbers. An already limited range
+ // of 127 now becomes narrower. See the cool document midi-controllers.txt in the DSSI source for a
+ // nice roundup of numbers and how to choose them and how they relate to synths and DSSI synths etc. !
+ ctlnum = CTRL_NRPN14_OFFSET + 0x2000 + k;
+ }
+ else
+ {
+ int c = ctlnum;
+ // Can be both CC and NRPN! Prefer CC over NRPN.
+ if(DSSI_IS_CC(ctlnum))
+ {
+ #ifdef DSSI_DEBUG
+ printf("DssiSynthIF::init is CC control\n");
+ #endif
+
+ ctlnum = DSSI_CC_NUMBER(c);
+ #ifdef DSSI_DEBUG
+ if(DSSI_IS_NRPN(ctlnum))
+ printf("DssiSynthIF::init is also NRPN control. Using CC.\n");
+ #endif
+ }
+ else
+ if(DSSI_IS_NRPN(ctlnum))
+ {
+ #ifdef DSSI_DEBUG
+ printf("DssiSynthIF::init is NRPN control\n");
+ #endif
+
+ ctlnum = DSSI_NRPN_NUMBER(c) + CTRL_NRPN14_OFFSET;
+ }
+
+ }
+
+ #ifdef DSSI_DEBUG
+ printf("DssiSynthIF::init inserting to midiCtl2PortMap: ctlnum:%d k:%d\n", ctlnum, k);
+ #endif
+
+ // We have a controller number! Insert it and the DSSI port number into both maps.
+ synth->midiCtl2PortMap.insert(std::pair<int, int>(ctlnum, k));
+ synth->port2MidiCtlMap.insert(std::pair<int, int>(k, ctlnum));
+ ld->connect_port(handle, i, &controls[k].val);
+ }
+
+ for (int k = 0; k < controlOutPorts; ++k) {
+ int i = synth->opIdx[k];
+
+ #ifdef DSSI_DEBUG
+ printf("DssiSynthIF::init control output port:%d port idx:%d name:%s\n", k, i, ld->PortNames[i]);
+ #endif
+
+ // p3.3.39 Removed.
+ /*
+
+ //controls[k].val = ladspaDefaultValue(ld, i);
+ ladspaDefaultValue(ld, i, &controlsOut[k].val);
+
+ // This code is duplicated in ::getControllerInfo()
+ //
+
+ int ctlnum = DSSI_NONE;
+ if(dssi->get_midi_controller_for_port)
+ ctlnum = dssi->get_midi_controller_for_port(handle, i);
+
+ // No controller number? Try to give it a unique one...
+ if(ctlnum == DSSI_NONE)
+ {
+ // FIXME: Be more careful. Must make sure to pick numbers not already chosen or which WILL BE chosen.
+ // Simple but flawed solution: Start them at 0x60000 + 0x3000 = 0x63000. Max NRPN number is 0x3fff.
+ // TODO: CC etc. etc.
+ ctlnum = CTRL_NRPN14_OFFSET + 0x3000 + k;
+ }
+ else
+ {
+ int c = ctlnum;
+ // Can be both CC and NRPN! Prefer CC over NRPN.
+ if(DSSI_IS_CC(ctlnum))
+ {
+ #ifdef DSSI_DEBUG
+ printf("DssiSynthIF::init is CC control\n");
+ #endif
+
+ ctlnum = DSSI_CC_NUMBER(c);
+
+ #ifdef DSSI_DEBUG
+ if(DSSI_IS_NRPN(ctlnum))
+ printf("DssiSynthIF::init is also NRPN control. Using CC.\n");
+ #endif
+ }
+ else
+ if(DSSI_IS_NRPN(ctlnum))
+ {
+ #ifdef DSSI_DEBUG
+ printf("DssiSynthIF::init is NRPN control\n");
+ #endif
+
+ ctlnum = DSSI_NRPN_NUMBER(c) + CTRL_NRPN14_OFFSET;
+ }
+
+ }
+
+ #ifdef DSSI_DEBUG
+ printf("DssiSynthIF::init inserting to midiCtl2PortMap: ctlnum:%d k:%d\n", ctlnum, k);
+ #endif
+
+ // We have a controller number! Insert it and the DSSI port number into the map.
+ // p3.3.39 Removed. Doesn't say whether it's in or out! Don't need this for now.
+ //synth->midiCtl2PortMap.insert(std::pair<int, int>(ctlnum, k));
+
+ */
+
+ // - Control outs are not handled but still must be connected to something.
+ ld->connect_port(handle, i, &controlsOut[k].val);
+ }
+
+ // Set the latency to zero.
+ //controls[controlPorts].val = 0.0;
+ // Insert a controller for latency and the DSSI port number into the map.
+ //synth->midiCtl2PortMap.insert(std::pair<int, int>(CTRL_NRPN14_OFFSET + 0x2000, controlPorts));
+ // Connect the port.
+ //ld->connect_port(handle, controlPorts, &controls[controlPorts].val);
+
+ // Just a test. It works! We can instantiate a ladspa plugin for the synth. But it needs more work...
+ //plugins.add(&synth->info, LADSPA_Descriptor_Function(NULL), ld, false);
+
+ if (ld->activate)
+ ld->activate(handle);
+
+ // Set current configuration values.
+ if(dssi->configure)
+ {
+ char *rv = dssi->configure(handle, DSSI_PROJECT_DIRECTORY_KEY,
+ museProject.latin1()); //song->projectPath()
+
+ if(rv)
+ {
+ fprintf(stderr, "MusE: Warning: plugin doesn't like project directory: \"%s\"\n", rv);
+ free(rv);
+ }
+
+ for(ciStringParamMap r = synti->_stringParamMap.begin(); r != synti->_stringParamMap.end(); ++r)
+ {
+ rv = 0;
+ rv = dssi->configure(handle, r->first.c_str(), r->second.c_str());
+ if(rv)
+ {
+ fprintf(stderr, "MusE: Warning: plugin config key: %s value: %s \"%s\"\n", r->first.c_str(), r->second.c_str(), rv);
+ free(rv);
+ }
+ }
+ }
+
+ // Set current program.
+ if(dssi->select_program)
+ dssi->select_program(handle, synti->_curBankL, synti->_curProgram);
+
+ //
+ // For stored initial control values, let SynthI::initInstance() take care of that via ::setParameter().
+ //
+
+ return true;
+ }
+
+//---------------------------------------------------------
+// DssiSynthIF
+//---------------------------------------------------------
+
+DssiSynthIF::DssiSynthIF(SynthI* s)
+ : SynthIF(s)
+ {
+ #ifdef DSSI_DEBUG
+ printf("DssiSynthIF::DssiSynthIF\n");
+ #endif
+
+ synth = 0;
+ handle = NULL;
+ controls = 0;
+ controlsOut = 0;
+
+ //_curBank = 0;
+ //_curProgram = 0;
+
+ //#ifdef OSC_SUPPORT
+ //_oscif.setSynthIF(this);
+ //#endif
+
+ //_guiVisible = false;
+ //uiTarget = 0;
+ //uiOscShowPath = 0;
+ //uiOscControlPath = 0;
+ //uiOscConfigurePath = 0;
+ //uiOscProgramPath = 0;
+ //uiOscPath = 0;
+ //guiPid = -1;
+ //guiQProc = 0;
+
+ audioInBuffers = 0;
+ audioOutBuffers = 0;
+ }
+
+//---------------------------------------------------------
+// ~DssiSynthIF
+//---------------------------------------------------------
+
+DssiSynthIF::~DssiSynthIF()
+{
+ #ifdef DSSI_DEBUG
+ printf("DssiSynthIF::~DssiSynthIF\n");
+ #endif
+
+ if(synth)
+ {
+ #ifdef DSSI_DEBUG
+ printf("DssiSynthIF::~DssiSynthIF synth:%p\n", synth);
+ #endif
+
+ if(synth->dssi)
+ {
+ #ifdef DSSI_DEBUG
+ printf("DssiSynthIF::~DssiSynthIF synth->dssi:%p\n", synth->dssi);
+ #endif
+
+ if(synth->dssi->LADSPA_Plugin)
+ {
+ #ifdef DSSI_DEBUG
+ printf("DssiSynthIF::~DssiSynthIFsynth->dssi->LADSPA_Plugin:%p\n", synth->dssi->LADSPA_Plugin);
+ #endif
+ }
+ }
+ }
+
+ if(synth && synth->dssi && synth->dssi->LADSPA_Plugin)
+ {
+ const DSSI_Descriptor* dssi = synth->dssi;
+ const LADSPA_Descriptor* descr = dssi->LADSPA_Plugin;
+
+ #ifdef DSSI_DEBUG
+ printf("DssiSynthIF::~DssiSynthIF checking cleanup function exists\n");
+ #endif
+
+ if(descr->cleanup)
+ {
+ #ifdef DSSI_DEBUG
+ printf("DssiSynthIF::~DssiSynthIF calling cleanup function\n");
+ #endif
+
+ descr->cleanup(handle);
+ }
+ }
+
+ /*
+ //if (guiPid != -1)
+ // kill(guiPid, SIGHUP);
+ if(guiQProc)
+ {
+ if(guiQProc->isRunning())
+ {
+ #ifdef DSSI_DEBUG
+ printf("DssiSynthIF::~DssiSynthIF killing guiQProc\n");
+ #endif
+
+ guiQProc->kill();
+ }
+
+ //delete guiQProc;
+ }
+
+ if(uiOscShowPath)
+ free(uiOscShowPath);
+ if(uiOscControlPath)
+ free(uiOscControlPath);
+ if(uiOscConfigurePath)
+ free(uiOscConfigurePath);
+ if(uiOscProgramPath)
+ free(uiOscProgramPath);
+ if(uiOscPath)
+ free(uiOscPath);
+ if(uiTarget)
+ lo_address_free(uiTarget);
+ */
+
+ if(audioInBuffers)
+ {
+ //for(int i = 0; i < synth->_inports; ++i)
+ //{
+ // if(audioInBuffers[i])
+ // delete[] audioInBuffers[i];
+ //}
+ for(unsigned long i = 0; i < synth->_inports; ++i)
+ {
+ if(audioInBuffers[i])
+ free(audioInBuffers[i]);
+ }
+ delete[] audioInBuffers;
+ }
+
+ if(audioOutBuffers)
+ {
+ //for(int i = 0; i < synth->_outports; ++i)
+ //{
+ // if(audioOutBuffers[i])
+ // delete[] audioOutBuffers[i];
+ //}
+ for(unsigned long i = 0; i < synth->_outports; ++i)
+ {
+ if(audioOutBuffers[i])
+ free(audioOutBuffers[i]);
+ }
+ delete[] audioOutBuffers;
+ }
+
+ if(controls)
+ delete[] controls;
+
+ if(controlsOut)
+ delete[] controlsOut;
+}
+
+//---------------------------------------------------------
+// getParameter
+//---------------------------------------------------------
+
+float DssiSynthIF::getParameter(unsigned long n) const
+{
+ if(n >= synth->_controlInPorts)
+ {
+ printf("DssiSynthIF::getParameter param number %ld out of range of ports:%ld\n", n, synth->_controlInPorts);
+ return 0.0;
+ }
+
+ if(!controls)
+ return 0.0;
+
+ return controls[n].val;
+}
+
+//---------------------------------------------------------
+// setParameter
+//---------------------------------------------------------
+
+void DssiSynthIF::setParameter(unsigned long n, float v)
+{
+ if(n >= synth->_controlInPorts)
+ {
+ printf("DssiSynthIF::setParameter param number %ld out of range of ports:%ld\n", n, synth->_controlInPorts);
+ return;
+ }
+
+ if(!controls)
+ return;
+
+ controls[n].val = v;
+
+ // Notify that changes are to be sent upon heartbeat.
+ // TODO: No, at least not for now. So far, setParameter is only called during loading of stored params,
+ // and we don't want this interfering with oscUpdate which also sends the values.
+ //synti->_guiUpdateControls[n] = true;
+}
+
+//---------------------------------------------------------
+// write
+//---------------------------------------------------------
+
+//void DssiSynthIF::write(Xml&) const
+void DssiSynthIF::write(int level, Xml& xml) const
+{
+ //bool vstsaved = false;
+
+#ifdef DSSI_VST_CHUNK_SUPPORT
+ //---------------------------------------------
+ // dump current state of synth
+ //---------------------------------------------
+ printf("dumping DSSI custom data! %d\n", synth->dssi->getCustomData);
+
+ // this is only needed and supported if
+ // we are talking to a VST plugin at the other end.
+ std::string name = synth->dssi->LADSPA_Plugin->Name;
+ if ((name.length()> 4) && name.substr(name.length() - 4) == " VST")
+ {
+ printf("is vst plugin, commencing data dump, apiversion=%d!\n", synth->dssi->DSSI_API_Version);
+ unsigned long len = 0;
+ void* p = 0;
+ synth->dssi->getCustomData(handle,&p, &len);
+ if (len) {
+ xml.tag(level++, "midistate");
+ xml.nput(level++, "<event type=\"%d\"", Sysex);
+ xml.nput(" datalen=\"%d\">\n", len+7 /*VSTSAVE*/);
+ xml.nput(level, "");
+ xml.nput("56 53 54 53 41 56 45 "); // embed a save marker "string 'VSTSAVE'
+ for (long unsigned int i = 0; i < len; ++i) {
+ if (i && (((i+7) % 16) == 0)) {
+ xml.nput("\n");
+ xml.nput(level, "");
+ }
+ xml.nput("%02x ", ((char*)(p))[i] & 0xff);
+ }
+ xml.nput("\n");
+ xml.tag(level--, "/event");
+ xml.etag(level--, "midistate");
+ //vstsaved = true;
+ }
+ }
+#else
+ printf("support for vst chunks not compiled in!\n");
+#endif
+
+ /*
+ // p3.3.39 Store the state of current program and bank and all input control values, but only if VSTSAVE above didn't do it already!
+ // TODO: Not quite good enough, we would want to store all controls for EACH program, not just the current one.
+ // Need to modify controls array to be inside a program array and act as a cache when the user changes a control on a particular program.
+ if(!vstsaved)
+ {
+ if(synth->_controlInPorts)
+ {
+ // TODO: Hmm, what if these sizes change (platform etc.)? Hard code? Not good - need to store complete value.
+ const int fs = sizeof(float);
+ const int uls = sizeof(unsigned long);
+
+ // Data length: Version major and minor bytes, bank + program, and controllers.
+ const unsigned long len = 2 + 2 * uls + synth->_controlInPorts * fs;
+
+ unsigned long prog = _curBank;
+ unsigned long bnk = _curProgram;
+
+ xml.tag(level++, "midistate");
+ xml.nput(level++, "<event type=\"%d\"", Sysex);
+ xml.nput(" datalen=\"%d\">\n", len+9); // "PARAMSAVE" length + data length.
+ xml.nput(level, "");
+ xml.nput("50 41 52 41 4d 53 41 56 45 "); // Embed a save marker string "PARAMSAVE".
+
+ unsigned long i = 9;
+
+ // Store PARAMSAVE version major...
+ char uc = DSSI_PARAMSAVE_VERSION_MAJOR;
+ if(i && ((i % 16) == 0))
+ {
+ xml.nput("\n");
+ xml.nput(level, "");
+ }
+ xml.nput("%02x ", uc & 0xff);
+ ++i;
+
+ // Store PARAMSAVE version minor...
+ uc = DSSI_PARAMSAVE_VERSION_MINOR;
+ if(i && ((i % 16) == 0))
+ {
+ xml.nput("\n");
+ xml.nput(level, "");
+ }
+ xml.nput("%02x ", uc & 0xff);
+ ++i;
+
+ // Store bank...
+ void* p = &bnk;
+ for(int j = 0; j < uls; ++j)
+ {
+ if(i && ((i % 16) == 0))
+ {
+ xml.nput("\n");
+ xml.nput(level, "");
+ }
+ xml.nput("%02x ", ((char*)(p))[j] & 0xff);
+ ++i;
+ }
+
+ // Store program...
+ p = &prog;
+ for(int j = 0; j < uls; ++j)
+ {
+ if(i && ((i % 16) == 0))
+ {
+ xml.nput("\n");
+ xml.nput(level, "");
+ }
+ xml.nput("%02x ", ((char*)(p))[j] & 0xff);
+ ++i;
+ }
+
+ // Store controls...
+ for(unsigned long c = 0; c < synth->_controlInPorts; ++c)
+ {
+ float v = controls[c].val;
+ p = &v;
+ for(int j = 0; j < fs; ++j)
+ {
+ if(i && ((i % 16) == 0))
+ {
+ xml.nput("\n");
+ xml.nput(level, "");
+ }
+ xml.nput("%02x ", ((char*)(p))[j] & 0xff);
+ ++i;
+ }
+ }
+ xml.nput("\n");
+ xml.tag(level--, "/event");
+ xml.etag(level--, "midistate");
+ }
+ }
+ */
+
+ // Store controls as parameters...
+ for(unsigned long c = 0; c < synth->_controlInPorts; ++c)
+ {
+ float f = controls[c].val;
+ xml.floatTag(level, "param", f);
+ //xml.tag(level, "param name=\"%s\" val=\"%s\"/", name, r->first.c_str(), r->second.c_str());
+ }
+}
+
+//---------------------------------------------------------
+// preProcessAlways
+//---------------------------------------------------------
+
+void DssiSynthIF::preProcessAlways()
+{
+
+}
+
+//---------------------------------------------------------
+// processEvent
+// Return true if event pointer filled.
+//--------------------------------------------------------
+
+bool DssiSynthIF::processEvent(const MidiPlayEvent& e, snd_seq_event_t* event)
+{
+ const DSSI_Descriptor* dssi = synth->dssi;
+
+ 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);
+
+ //QByteArray ba();
+ ////ba.assign((const char*)e.data(), e.len());
+ ////ba.duplicate((const char*)e.data(), e.len());
+ ////ba.setRawData((const char*)e.data(), e.len());
+ //int len = e.len() + 2;
+
+ int len = e.len();
+ char ca[len + 2];
+
+ ca[0] = 0xF0;
+ memcpy(ca + 1, (const char*)e.data(), len);
+ ca[len + 1] = 0xF7;
+
+ len += 2;
+
+ //snd_seq_event_t* event = &events[nevents];
+ event->queue = SND_SEQ_QUEUE_DIRECT;
+
+ #ifdef DSSI_DEBUG
+ fprintf(stderr, "DssiSynthIF::processEvent midi event type:%d chn:%d a:%d b:%d\n", e.type(), chn, a, b);
+ #endif
+
+ switch(e.type())
+ {
+ case ME_NOTEON:
+ #ifdef DSSI_DEBUG
+ fprintf(stderr, "DssiSynthIF::processEvent midi event is ME_NOTEON\n");
+ #endif
+
+ 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_PROGRAM:
+ {
+ #ifdef DSSI_DEBUG
+ fprintf(stderr, "DssiSynthIF::processEvent midi event is ME_PROGRAM\n");
+ #endif
+
+ int bank = (a >> 8) & 0xff;
+ int prog = a & 0xff;
+ //_curBank = bank;
+ //_curProgram = prog;
+ synti->_curBankH = 0;
+ synti->_curBankL = bank;
+ synti->_curProgram = prog;
+
+ if(dssi->select_program)
+ {
+ dssi->select_program(handle, bank, prog);
+ // Notify that changes are to be sent upon heartbeat.
+ synti->_guiUpdateProgram = true;
+ }
+ // Event pointer not filled. Return false.
+ return false;
+ }
+ break;
+ case ME_CONTROLLER:
+ {
+ #ifdef DSSI_DEBUG
+ fprintf(stderr, "DssiSynthIF::processEvent midi event is ME_CONTROLLER\n");
+ #endif
+
+ if((a == 0) || (a == 32))
+ return false;
+
+ if(a == CTRL_PROGRAM)
+ {
+ #ifdef DSSI_DEBUG
+ fprintf(stderr, "DssiSynthIF::processEvent midi event is ME_CONTROLLER, dataA is CTRL_PROGRAM\n");
+ #endif
+
+ int bank = (b >> 8) & 0xff;
+ int prog = b & 0xff;
+
+ //_curBank = bank;
+ //_curProgram = prog;
+ synti->_curBankH = 0;
+ synti->_curBankL = bank;
+ synti->_curProgram = prog;
+
+ if(dssi->select_program)
+ {
+ dssi->select_program(handle, bank, prog);
+ // Notify that changes are to be sent upon heartbeat.
+ synti->_guiUpdateProgram = true;
+ }
+ // Event pointer not filled. Return false.
+ return false;
+ }
+
+ if(a == CTRL_PITCH)
+ {
+ #ifdef DSSI_DEBUG
+ fprintf(stderr, "DssiSynthIF::processEvent midi event is ME_CONTROLLER, dataA is CTRL_PITCH\n");
+ #endif
+
+ b &= 0x3fff;
+ snd_seq_ev_set_pitchbend(event, chn, b);
+ // Event pointer filled. Return true.
+ return true;
+ }
+
+ const LADSPA_Descriptor* ld = dssi->LADSPA_Plugin;
+
+ ciMidiCtl2LadspaPort ip = synth->midiCtl2PortMap.find(a);
+ // Is it just a regular midi controller, not mapped to a LADSPA port (either by the plugin or by us)?
+ // NOTE: There's no way to tell which of these controllers is supported by the plugin.
+ // For example sustain footpedal or pitch bend may be supported, but not mapped to any LADSPA port.
+ if(ip == synth->midiCtl2PortMap.end())
+ {
+ // p3.3.39 Changed to return false because of crashes with unknown controllers when switching a midi track
+ // among different dssi synths and regular synths etc. For example high RPN offset numbers (set by another
+ // device selected into the midi port before selecting this synth) were passing through here when in fact
+ // the particular synth had no such midi controllers.
+ // ========================== No, that leaves out regular controllers like footpedal
+ //#ifdef DSSI_DEBUG
+ //fprintf(stderr, "DssiSynthIF::processEvent dataA:%d not found in map (not a ladspa controller). Ignoring.\n", a);
+ //#endif
+ //return false;
+
+ //#ifdef DSSI_DEBUG
+ //fprintf(stderr, "DssiSynthIF::processEvent dataA:%d not found in map (not a ladspa controller). Filling event as regular controller.\n", a);
+ //#endif
+ //snd_seq_ev_set_controller(event, chn, a, b);
+ //return true;
+
+ int ctlnum = a;
+ //switch(midiControllerType(a))
+ if(midiControllerType(a) != MidiController::Controller7)
+ return false;
+ else
+ {
+ /*
+ case MidiController::NRPN14:
+ case MidiController::Controller14:
+ case MidiController::Pitch:
+ case MidiController::Program:
+ case MidiController::RPN:
+ case MidiController::RPN14:
+ case MidiController::NRPN:
+ #ifdef DSSI_DEBUG
+ fprintf(stderr, "DssiSynthIF::processEvent non-ladspa midi event controller unsupported. DataA:%d\n", a);
+ #endif
+ return false;
+ */
+
+ //case MidiController::Controller7:
+ #ifdef DSSI_DEBUG
+ //fprintf(stderr, "DssiSynthIF::processEvent midi event is Controller7. Changing to DSSI_CC type. Current dataA:%d\n", a);
+ fprintf(stderr, "DssiSynthIF::processEvent non-ladspa midi event is Controller7. Current dataA:%d\n", a);
+ #endif
+ //a = DSSI_CC(a);
+ a &= 0x7f;
+ ctlnum = DSSI_CC_NUMBER(ctlnum);
+ // break;
+
+ /*
+ case MidiController::NRPN14:
+ #ifdef DSSI_DEBUG
+ // fprintf(stderr, "DssiSynthIF::processEvent midi event is NRPN. Changing to DSSI_NRPN type. Current dataA:%d\n", a);
+ fprintf(stderr, "DssiSynthIF::processEvent non-ladspa midi event is NRPN. Current dataA:%d\n", a);
+ #endif
+ //a = DSSI_NRPN(a - CTRL_NRPN14_OFFSET);
+ a &= 0x3fff;
+ ctlnum = DSSI_NRPN_NUMBER(ctlnum);
+ break;
+ case MidiController::Controller14:
+ a &= 0x7f;
+ break;
+ case MidiController::Pitch:
+ // Should be caught above!
+ #ifdef DSSI_DEBUG
+ //fprintf(stderr, "DssiSynthIF::processEvent non-ladspa midi event is Pitch. DataA:%d\n", a);
+ fprintf(stderr, "DssiSynthIF::processEvent Error! non-ladspa midi event is Pitch. Should have been caught already! DataA:%d\n", a);
+ #endif
+ //a &= 0x3fff;
+ //snd_seq_ev_set_pitchbend(event, chn, b);
+ // Event pointer filled. Return true.
+ //return true;
+ // Event pointer not filled. Return false.
+ return false;
+ case MidiController::Program:
+ // Should be caught above!
+ #ifdef DSSI_DEBUG
+ fprintf(stderr, "DssiSynthIF::processEvent Error! non-ladspa midi event is Program. Should have been caught already! DataA:%d\n", a);
+ #endif
+ return false;
+ case MidiController::RPN:
+ case MidiController::RPN14:
+ case MidiController::NRPN:
+ default:
+ #ifdef DSSI_DEBUG
+ fprintf(stderr, "DssiSynthIF::processEvent non-ladspa midi event is RPN, RPN14, or NRPN type. DataA:%d\n", a);
+ #endif
+ break;
+ */
+ }
+
+ // Verify it's the same number.
+ //if(ctlnum != a)
+ //{
+ // #ifdef DSSI_DEBUG
+ // printf("DssiSynthIF::processEvent Error! non-ladspa midi ctlnum:%d != event dataA:%d\n", ctlnum, a);
+ // #endif
+ // Event not filled. Return false.
+
+ // TEMP: TODO: Turn on later
+ //return false;
+ //}
+
+ // Fill the event.
+ #ifdef DSSI_DEBUG
+ printf("DssiSynthIF::processEvent non-ladspa filling midi event chn:%d dataA:%d dataB:%d\n", chn, a, b);
+ #endif
+ snd_seq_ev_set_controller(event, chn, a, b);
+ return true;
+ }
+
+ //int num = ip->first;
+ unsigned long k = ip->second;
+
+ unsigned long i = synth->pIdx[k];
+
+ int ctlnum = DSSI_NONE;
+ if(dssi->get_midi_controller_for_port)
+ ctlnum = dssi->get_midi_controller_for_port(handle, i);
+
+ // No midi controller for the ladspa port? Send to ladspa control.
+ if(ctlnum == DSSI_NONE)
+ {
+ // Sanity check.
+ if(k > synth->_controlInPorts)
+ return false;
+
+ // TODO: If necessary... choose non-existing numbers...
+ //for(int k = 0; k < controlPorts; ++k)
+ //{
+ // int i = synth->pIdx[k];
+ //}
+
+ // Simple but flawed solution: Start them at 0x60000 + 0x2000 = 0x62000. Max NRPN number is 0x3fff.
+ ctlnum = k + (CTRL_NRPN14_OFFSET + 0x2000);
+ }
+ // p3.3.39
+ else
+ {
+ #ifdef DSSI_DEBUG
+ printf("DssiSynthIF::processEvent plugin requests DSSI-style ctlnum:%x(h) %d(d) be mapped to control port:%ld...\n", ctlnum, ctlnum, i);
+ #endif
+
+ int c = ctlnum;
+ // Can be both CC and NRPN! Prefer CC over NRPN.
+ if(DSSI_IS_CC(ctlnum))
+ {
+ ctlnum = DSSI_CC_NUMBER(c);
+
+ #ifdef DSSI_DEBUG
+ printf("DssiSynthIF::processEvent is CC ctlnum:%d\n", ctlnum);
+ #endif
+
+ #ifdef DSSI_DEBUG
+ if(DSSI_IS_NRPN(ctlnum))
+ printf("DssiSynthIF::processEvent is also NRPN control. Using CC.\n");
+ #endif
+ }
+ else
+ if(DSSI_IS_NRPN(ctlnum))
+ {
+ ctlnum = DSSI_NRPN_NUMBER(c) + CTRL_NRPN14_OFFSET;
+
+ #ifdef DSSI_DEBUG
+ printf("DssiSynthIF::processEvent is NRPN ctlnum:%x(h) %d(d)\n", ctlnum, ctlnum);
+ #endif
+ }
+
+ }
+
+ //{
+ float val = midi2LadspaValue(ld, i, ctlnum, b);
+
+ #ifdef DSSI_DEBUG
+ //fprintf(stderr, "DssiSynthIF::processEvent No midi controller for control port:%d port:%d dataA:%d Converting val from:%d to ladspa:%f\n", i, k, a, b, val);
+ fprintf(stderr, "DssiSynthIF::processEvent control port:%ld port:%ld dataA:%d Converting val from:%d to ladspa:%f\n", i, k, a, b, val);
+ #endif
+
+ // Set the ladspa port value.
+ controls[k].val = val;
+ // FIXME: Testing - Works but is this safe in a RT process callback? Try hooking into gui heartbeat timer instead...
+ //lo_send(uiTarget, uiOscControlPath, "if", i, val);
+ // Notify that changes are to be sent upon heartbeat.
+ synti->_guiUpdateControls[k] = true;
+
+ // Since we absorbed the message as a ladspa control change, return false - the event is not filled.
+ return false;
+ //}
+
+ // p3.3.39 Removed.
+ // "Hosts should not deliver through run_synth any MIDI controller events that have already
+ // been mapped to control port values."
+ // D'oh! My mistake, did not understand that the mapping is only a *request* that the app map MIDI
+ // controller events to a LADSPA port, and must do the conversion, not to actually *send* them via MIDI...
+ /*
+ else
+ {
+ switch(midiControllerType(a))
+ {
+ case MidiController::Controller7:
+ #ifdef DSSI_DEBUG
+ //fprintf(stderr, "DssiSynthIF::processEvent midi event is Controller7. Changing to DSSI_CC type. Current dataA:%d\n", a);
+ fprintf(stderr, "DssiSynthIF::processEvent midi event is Controller7. Current dataA:%d\n", a);
+ #endif
+ //a = DSSI_CC(a);
+ a &= 0x7f;
+ ctlnum = DSSI_CC_NUMBER(ctlnum);
+ break;
+ case MidiController::NRPN14:
+ #ifdef DSSI_DEBUG
+ // fprintf(stderr, "DssiSynthIF::processEvent midi event is NRPN. Changing to DSSI_NRPN type. Current dataA:%d\n", a);
+ fprintf(stderr, "DssiSynthIF::processEvent midi event is NRPN. Current dataA:%d\n", a);
+ #endif
+ //a = DSSI_NRPN(a - CTRL_NRPN14_OFFSET);
+ a &= 0x3fff;
+ ctlnum = DSSI_NRPN_NUMBER(ctlnum);
+ break;
+ case MidiController::Controller14:
+ a &= 0x7f;
+ break;
+ case MidiController::Pitch:
+ #ifdef DSSI_DEBUG
+ fprintf(stderr, "DssiSynthIF::processEvent midi event is Pitch. DataA:%d\n", a);
+ #endif
+ a &= 0x3fff;
+ break;
+ case MidiController::Program:
+ #ifdef DSSI_DEBUG
+ fprintf(stderr, "DssiSynthIF::processEvent midi event is Program. DataA:%d\n", a);
+ #endif
+ a &= 0x3fff;
+ break;
+ case MidiController::RPN:
+ case MidiController::RPN14:
+ case MidiController::NRPN:
+ default:
+ #ifdef DSSI_DEBUG
+ fprintf(stderr, "DssiSynthIF::processEvent midi event is RPN, RPN14, or NRPN type. DataA:%d\n", a);
+ #endif
+ break;
+ }
+
+ // Verify it's the same number.
+ if(ctlnum != a)
+ {
+ #ifdef DSSI_DEBUG
+ printf("DssiSynthIF::processEvent Error! ctlnum:%d != event dataA:%d\n", ctlnum, a);
+ #endif
+ // Event not filled. Return false.
+
+ // TEMP: TODO: Turn on later
+ //return false;
+ }
+
+ // Fill the event.
+ // FIXME: Darn! We get to this point, but no change in sound (later). Nothing happens, at least with LTS -
+ // which is the only one I found so far with midi controllers.
+ // Tried with/without converting to DSSI_CC and DSSI_NRPN. What could be wrong here?
+ #ifdef DSSI_DEBUG
+ printf("DssiSynthIF::processEvent filling event chn:%d dataA:%d dataB:%d\n", chn, a, b);
+ #endif
+ 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:
+ #ifdef DSSI_DEBUG
+ fprintf(stderr, "DssiSynthIF::processEvent midi event is ME_SYSEX\n");
+ #endif
+
+ if (QString((const char*)e.data()).startsWith("VSTSAVE")) {
+#ifdef DSSI_VST_CHUNK_SUPPORT
+ printf("loading chunk from sysex %s!\n", e.data()+7);
+ dssi->setCustomData(handle, e.data()+7 /* len of str*/,e.len()-7);
+#else
+ printf("support for vst chunks not compiled in!\n");
+#endif
+ // Event not filled.
+ return false;
+ }
+ /*
+ // p3.3.39 Read the state of current bank and program and all input control values.
+ // TODO: Needs to be better. See write().
+ else
+ if (QString((const char*)e.data()).startsWith("PARAMSAVE"))
+ {
+ #ifdef DSSI_DEBUG
+ fprintf(stderr, "DssiSynthIF::processEvent midi event is ME_SYSEX PARAMSAVE\n");
+ #endif
+
+ unsigned long dlen = e.len() - 9; // Minus "PARAMSAVE"
+ if(dlen > 0)
+ {
+ //if(dlen < 2 * sizeof(unsigned long))
+ if(dlen < (2 + 2 * sizeof(unsigned long))) // Version major and minor bytes, bank and program.
+ printf("DssiSynthIF::processEvent Error: PARAMSAVE data length does not include at least version major and minor, bank and program!\n");
+ else
+ {
+ // Not required, yet.
+ //char vmaj = *((char*)(e.data() + 9)); // After "PARAMSAVE"
+ //char vmin = *((char*)(e.data() + 10));
+
+ unsigned long* const ulp = (unsigned long*)(e.data() + 11); // After "PARAMSAVE" + version major and minor.
+ // TODO: TODO: Set plugin bank and program.
+ _curBank = ulp[0];
+ _curProgram = ulp[1];
+
+ dlen -= (2 + 2 * sizeof(unsigned long)); // After the version major and minor, bank and program.
+
+ if(dlen > 0)
+ {
+ if((dlen % sizeof(float)) != 0)
+ printf("DssiSynthIF::processEvent Error: PARAMSAVE float data length not integral multiple of float size!\n");
+ else
+ {
+ const unsigned long n = dlen / sizeof(float);
+ if(n != synth->_controlInPorts)
+ printf("DssiSynthIF::processEvent Warning: PARAMSAVE number of floats:%ld != number of controls:%ld\n", n, synth->_controlInPorts);
+
+ // Point to location after "PARAMSAVE", version major and minor, bank and progam.
+ float* const fp = (float*)(e.data() + 9 + 2 + 2 * sizeof(unsigned long));
+
+ for(unsigned long i = 0; i < synth->_controlInPorts && i < n; ++i)
+ {
+ const float v = fp[i];
+ controls[i].val = v;
+ }
+ }
+ }
+ }
+ }
+ // Event not filled.
+ return false;
+ }
+ */
+ else
+ {
+ // NOTE: There is a limit on the size of a sysex. Got this:
+ // "DssiSynthIF::processEvent midi event is ME_SYSEX"
+ // "WARNING: MIDI event of type ? decoded to 367 bytes, discarding"
+ // That might be ALSA doing that.
+ snd_seq_ev_set_sysex(event, len,
+ //(unsigned char*)ba.data());
+ (unsigned char*)ca);
+ }
+ break;
+ default:
+ if(debugMsg)
+ fprintf(stderr, "DssiSynthIF::processEvent midi event unknown type:%d\n", e.type());
+ // Event not filled.
+ return false;
+ break;
+ }
+
+ return true;
+}
+
+//---------------------------------------------------------
+// getData
+//---------------------------------------------------------
+
+//void DssiSynthIF::getData(MidiEventList* el, unsigned pos, int ch, unsigned samples, float** data)
+iMPEvent DssiSynthIF::getData(MidiPort* /*mp*/, MPEventList* el, iMPEvent /*i*/, unsigned pos, int ports, unsigned n, float** buffer)
+{
+ //#ifdef DSSI_DEBUG
+ // fprintf(stderr, "DssiSynthIF::getData elsize:%d pos:%d ports:%d samples:%d processed already?:%d\n", el->size(), pos, ports, n, synti->processed());
+ //#endif
+
+ //BEGIN: Process midi events
+
+ // FIXME: Add 10(?) for good luck in case volatile size changes (increments) while we're processing.
+ //unsigned long nevents = el->size();
+ unsigned long nevents = el->size() + synti->putFifo.getSize() + 10;
+
+ /*
+ 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;
+
+ //int curPos = pos;
+ //unsigned endPos = pos + samples;
+ unsigned endPos = pos + n;
+ //int off = pos;
+ int frameOffset = audio->getFrameOffset();
+
+ //iMidiEvent i = el->begin();
+ iMPEvent i = el->begin();
+
+ // Process event list events...
+ for(; i != el->end(); ++i)
+ {
+ //if(i->time() >= endPos) // Doesn't work, at least here in muse-1. The event times are all
+ // just slightly after the endPos, EVEN IF transport is stopped.
+ // So it misses all the notes.
+ if(i->time() >= (endPos + frameOffset)) // NOTE: frameOffset? Tested, examined printouts of times: Seems OK for playback.
+ break;
+
+ #ifdef DSSI_DEBUG
+ fprintf(stderr, "DssiSynthIF::getData eventlist event time:%d\n", i->time());
+ #endif
+
+ // p3.3.39 Update hardware state so knobs and boxes are updated. Optimize to avoid re-setting existing values.
+ // Same code as in MidiPort::sendEvent()
+ if(synti->midiPort() != -1)
+ {
+ MidiPort* mp = &midiPorts[synti->midiPort()];
+ if(i->type() == ME_CONTROLLER)
+ {
+ int da = i->dataA();
+ int db = i->dataB();
+ db = mp->limitValToInstrCtlRange(da, db);
+ if(!mp->setHwCtrlState(i->channel(), da, db))
+ continue;
+ //mp->setHwCtrlState(i->channel(), da, db);
+ }
+ else
+ if(i->type() == ME_PITCHBEND)
+ {
+ int da = mp->limitValToInstrCtlRange(CTRL_PITCH, i->dataA());
+ if(!mp->setHwCtrlState(i->channel(), CTRL_PITCH, da))
+ continue;
+ //mp->setHwCtrlState(i->channel(), CTRL_PITCH, da);
+ }
+ else
+ if(i->type() == ME_PROGRAM)
+ {
+ if(!mp->setHwCtrlState(i->channel(), CTRL_PROGRAM, i->dataA()))
+ continue;
+ //mp->setHwCtrlState(i->channel(), CTRL_PROGRAM, i->dataA());
+ }
+ }
+
+ if(processEvent(*i, &events[nevents]))
+ ++nevents;
+ }
+
+ // Now process putEvent events...
+ while(!synti->putFifo.isEmpty())
+ {
+ MidiPlayEvent e = synti->putFifo.get();
+
+ #ifdef DSSI_DEBUG
+ fprintf(stderr, "DssiSynthIF::getData putFifo event time:%d\n", e.time());
+ #endif
+
+ // Set to the current time.
+ // FIXME: FIXME: Wrong - we should be setting some kind of linear realtime wallclock here, not song pos.
+ e.setTime(pos);
+ if(processEvent(e, &events[nevents]))
+ ++nevents;
+ }
+
+ // Now process OSC gui input control fifo events.
+ // It is probably more important that these are processed last so that they take precedence over all other
+ // events because OSC + DSSI/DSSI-VST are fussy about receiving feedback via these control ports, from GUI changes.
+ #ifdef OSC_SUPPORT
+ unsigned long ctls = synth->_controlInPorts;
+ for(unsigned long k = 0; k < ctls; ++k)
+ {
+ OscControlFifo* cfifo = _oscif.oscFifo(k);
+ if(!cfifo)
+ continue;
+
+ // If there are 'events' in the fifo, get exactly one 'event' per control per process cycle...
+ if(!cfifo->isEmpty())
+ {
+ OscControlValue v = cfifo->get();
+
+ #ifdef DSSI_DEBUG
+ fprintf(stderr, "DssiSynthIF::getData OscControlFifo event input control number:%ld value:%f\n", k, v.value);
+ #endif
+
+ // Set the ladspa control port value.
+ controls[k].val = v.value;
+
+ // TODO: (From plugin module, adapt for synth if/when our own plugin gui is added to synths).
+ // Need to update the automation value, otherwise the block above overwrites with the last automation value.
+ ///if(_track)
+ ///{
+ // Since we are now in the audio thread context, there's no need to send a message,
+ // just modify directly.
+ //audio->msgSetPluginCtrlVal(this, genACnum(_id, i), controls[i].val);
+ /// _track->setPluginCtrlVal(k, v.value)
+ ///}
+ }
+ }
+ #endif
+
+/* // This is from MESS... Tried this here, didn't work, need to re-adapt, try again.
+ int evTime = i->time();
+ if(evTime == 0)
+ {
+ printf("DssiSynthIF::getData - time is 0!\n");
+ //continue;
+ evTime=frameOffset; // will cause frame to be zero, problem?
+ }
+
+ int frame = evTime - frameOffset;
+
+ if(frame >= endPos)
+ {
+ printf("DssiSynthIF::getData frame > endPos!! frame = %d >= endPos %d, i->time() %d, frameOffset %d curPos=%d\n", frame, endPos, i->time(), frameOffset,curPos);
+ continue;
+ }
+
+ if(frame > curPos)
+ {
+ if(frame < pos)
+ printf("DssiSynthIF::getData should not happen: missed event %d\n", pos -frame);
+ else
+ {
+*/
+
+/*
+ }
+ curPos = frame;
+ }
+*/
+// }
+
+ el->erase(el->begin(), i);
+ //END: Process midi events
+
+ //BEGIN: Run the synth
+ // All ports must be connected to something!
+
+ // First, copy the given input buffers to our local input buffers.
+ unsigned long np, k;
+ //np = portsin > synth->_inports ? synth->_inports : portsin;
+ //for(k = 0; k < np; ++k)
+ // memcpy(audioInBuffers[k], inbuffer[k], sizeof(float) * n);
+ //for(; k < portsin; ++k)
+ // memset(audioInBuffers[k], 0, sizeof(float) * n);
+
+ // Watch our limits.
+ np = ports > synth->_outports ? synth->_outports : ports;
+
+ const DSSI_Descriptor* dssi = synth->dssi;
+ const LADSPA_Descriptor* descr = dssi->LADSPA_Plugin;
+ k = 0;
+ // Connect the given buffers directly to the ports, up to a max of synth ports.
+ for(; k < np; ++k)
+ descr->connect_port(handle, synth->oIdx[k], buffer[k]);
+ // Connect the remaining ports to some local buffers (not used yet).
+ for(; k < synth->_outports; ++k)
+ descr->connect_port(handle, synth->oIdx[k], audioOutBuffers[k]);
+
+ /*
+ //
+ // p3.3.39 Handle inputs...
+ //
+ //if((song->bounceTrack != this) && !noInRoute())
+ if(!((AudioTrack*)synti)->noInRoute())
+ {
+ RouteList* irl = ((AudioTrack*)synti)->inRoutes();
+ iRoute i = irl->begin();
+ if(!i->track->isMidiTrack())
+ {
+ //if(debugMsg)
+ printf("DssiSynthIF::getData: Error: First route is a midi track route!\n");
+ }
+ else
+ {
+ int ch = i->channel == -1 ? 0 : i->channel;
+ int remch = i->remoteChannel == -1 ? 0 : i->remoteChannel;
+ int chs = i->channels == -1 ? 0 : i->channels;
+
+ // TODO:
+ //if(ch >= synth->_inports)
+ //iUsedIdx[ch] = true;
+ //if(chs == 2)
+ // iUsedIdx[ch + 1] = true;
+
+ //((AudioTrack*)i->track)->copyData(framePos, channels, nframe, bp);
+ ((AudioTrack*)i->track)->copyData(pos, ports,
+ //(i->track->type() == Track::AUDIO_SOFTSYNTH && i->channel != -1) ? i->channel : 0,
+ i->channel,
+ i->channels,
+ n, bp);
+ }
+
+ //unsigned pos, int ports, unsigned n, float** buffer
+
+ ++i;
+ for(; i != irl->end(); ++i)
+ {
+ if(i->track->isMidiTrack())
+ {
+ //if(debugMsg)
+ printf("DssiSynthIF::getData: Error: Route is a midi track route!\n");
+ continue;
+ }
+ //((AudioTrack*)i->track)->addData(framePos, channels, nframe, bp);
+ ((AudioTrack*)i->track)->addData(framePos, channels,
+ //(i->track->type() == Track::AUDIO_SOFTSYNTH && i->channel != -1) ? i->channel : 0,
+ i->channel,
+ i->channels,
+ nframe, bp);
+ }
+ }
+ */
+
+ //#ifdef DSSI_DEBUG
+ //if(nevents)
+ // fprintf(stderr, "DssiSynthIF::getData run nevents:%d\n", nevents);
+ //#endif
+
+ // Run the synth for one segment. This processes events and gets/fills our local buffers...
+ if(synth->dssi->run_synth)
+ {
+ synth->dssi->run_synth(handle, n, events, nevents);
+
+ // NOTE: Just a test
+ //for(int m = 0; m < n; ++m)
+ //{
+ // synth->dssi->run_synth(handle, 1, events, nevents);
+ //}
+
+ }
+ else if (synth->dssi->run_multiple_synths)
+ {
+ snd_seq_event_t* ev = events;
+ synth->dssi->run_multiple_synths(1, &handle, n, &ev, &nevents);
+ }
+ //END: Run the synth
+
+ return i;
+}
+
+//---------------------------------------------------------
+// putEvent
+//---------------------------------------------------------
+
+//bool DssiSynthIF::putEvent(const MidiEvent& ev)
+bool DssiSynthIF::putEvent(const MidiPlayEvent& ev)
+ {
+ #ifdef DSSI_DEBUG
+ fprintf(stderr, "DssiSynthIF::putEvent midi event time:%d chn:%d a:%d b:%d\n", ev.time(), ev.channel(), ev.dataA(), ev.dataB());
+ #endif
+
+ if (midiOutputTrace)
+ ev.dump();
+
+ return synti->putFifo.put(ev);
+
+ //return false;
+ }
+
+
+//---------------------------------------------------------
+// incInstances
+//---------------------------------------------------------
+
+void DssiSynth::incInstances(int val)
+{
+ _instances += val;
+ if (_instances == 0)
+ {
+ if (handle)
+ {
+ #ifdef DSSI_DEBUG
+ fprintf(stderr, "DssiSynth::incInstances no more instances, closing library\n");
+ #endif
+
+ dlclose(handle);
+ }
+ handle = 0;
+ dssi = NULL;
+ df = NULL;
+ pIdx.clear();
+ opIdx.clear();
+ iIdx.clear();
+ oIdx.clear();
+ rpIdx.clear();
+ iUsedIdx.clear();
+ midiCtl2PortMap.clear();
+ port2MidiCtlMap.clear();
+ //synti->_guiUpdateControls.clear();
+ }
+}
+
+//---------------------------------------------------------
+// initGui
+//---------------------------------------------------------
+bool DssiSynthIF::initGui()
+{
+ #ifdef OSC_SUPPORT
+ return _oscif.oscInitGui();
+ #endif
+
+ return true;
+
+ /*
+ // Are we already running? We don't want to allow another process do we...
+ if((guiQProc != 0) && (guiQProc->isRunning()))
+ return true;
+
+ //
+ // start gui
+ //
+ static char oscUrl[1024];
+ //snprintf(oscUrl, 1024, "%s/%s", url, synti->name().toAscii().data());
+ //snprintf(oscUrl, 1024, "%s/%s", url, synti->name().latin1());
+ snprintf(oscUrl, 1024, "%s/%s/%s", url, synth->info.baseName().latin1(), synti->name().latin1());
+
+ //QString guiPath(info.path() + "/" + info.baseName());
+ QString guiPath(synth->info.dirPath() + "/" + synth->info.baseName());
+
+ QDir guiDir(guiPath, "*", QDir::Unsorted, QDir::Files);
+ if (guiDir.exists())
+ {
+ //const QFileInfoList list = guiDir.entryInfoList();
+ QStringList list = guiDir.entryList();
+
+ //for (int i = 0; i < list.size(); ++i) {
+ for (unsigned int i = 0; i < list.count(); ++i)
+ {
+
+ //QFileInfo fi = list.at(i);
+ QFileInfo fi(guiPath + QString("/") + list[i]);
+
+ QString gui(fi.filePath());
+ if (gui.contains('_') == 0)
+ continue;
+ struct stat buf;
+
+ //if (stat(gui.toAscii().data(), &buf)) {
+ if (stat(gui.latin1(), &buf)) {
+
+ perror("stat failed");
+ continue;
+ }
+
+ #ifdef DSSI_DEBUG
+ fprintf(stderr, "DssiSynthIF::initGui %s %s %s %s\n",
+ //fi.filePath().toAscii().data(),
+ //fi.fileName().toAscii().data(),
+ fi.filePath().latin1(),
+ //fi.fileName().latin1(),
+
+ oscUrl,
+
+ synth->info.filePath().latin1(),
+
+ //name().toAscii().data(),
+ synth->name().latin1());
+ #endif
+
+ if ((S_ISREG(buf.st_mode) || S_ISLNK(buf.st_mode)) &&
+ (buf.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH)))
+ {
+ // Changed by T356.
+ // fork + execlp were causing the processes to remain after closing gui, requiring manual kill.
+ // Changed to QProcess, works OK now.
+ //if((guiPid = fork()) == 0)
+ {
+ // No QProcess created yet? Do it now. Only once per SynthIF instance. Exists until parent destroyed.
+ if(guiQProc == 0)
+ guiQProc = new QProcess(muse);
+
+ // Don't forget this, he he...
+ guiQProc->clearArguments();
+
+ guiQProc->addArgument(fi.filePath());
+ //guiQProc->addArgument(fi.fileName()); // No conventional 'Arg0' here.
+ guiQProc->addArgument(QString(oscUrl));
+ guiQProc->addArgument(synth->info.filePath());
+ guiQProc->addArgument(synth->name());
+ guiQProc->addArgument(QString("channel 1"));
+
+ #ifdef DSSI_DEBUG
+ fprintf(stderr, "DssiSynthIF::initGui starting QProcess\n");
+ #endif
+
+ if(guiQProc->start() == TRUE)
+ {
+ #ifdef DSSI_DEBUG
+ fprintf(stderr, "DssiSynthIF::initGui started QProcess\n");
+ #endif
+
+ //guiPid = guiQProc->processIdentifier();
+ }
+ else
+ {
+
+ // execlp(
+ // fi.filePath().toAscii().data(),
+ // fi.fileName().toAscii().data(),
+ // fi.filePath().latin1(),
+ // fi.fileName().latin1(),
+
+ // oscUrl,
+
+ // info.filePath().toAscii().data(),
+ // name().toAscii().data(),
+ // synth->info.filePath().latin1(),
+ // synth->name().latin1(),
+
+ // "channel 1", (void*)0);
+
+ fprintf(stderr, "exec %s %s %s %s failed: %s\n",
+ // fi.filePath().toAscii().data(),
+ // fi.fileName().toAscii().data(),
+ fi.filePath().latin1(),
+ fi.fileName().latin1(),
+ oscUrl,
+ // name().toAscii().data(),
+ synth->name().latin1(),
+ strerror(errno));
+
+ // It's Ok, Keep going. So nothing happens. So what. The timeout in showGui will just leave.
+ // Maybe it's a 'busy' issue somewhere - allow to try again later + save work now.
+ // exit(1);
+
+ }
+
+ #ifdef DSSI_DEBUG
+ fprintf(stderr, "DssiSynthIF::initGui after QProcess\n");
+ #endif
+ }
+ }
+ }
+ //synth->_hasGui = true;
+ }
+ else {
+ printf("%s: no dir for dssi gui found: %s\n",
+ //name().toAscii().data(), guiPath.toAscii().data());
+ synth->name().latin1(), guiPath.latin1());
+
+ //synth->_hasGui = false;
+ }
+
+ return true;
+ */
+}
+
+//---------------------------------------------------------
+// guiHeartBeat
+//---------------------------------------------------------
+
+void DssiSynthIF::guiHeartBeat()
+{
+ #ifdef OSC_SUPPORT
+ // Update the gui's program if needed.
+ if(synti->_guiUpdateProgram)
+ {
+ _oscif.oscSendProgram(synti->_curProgram, synti->_curBankL);
+ synti->_guiUpdateProgram = false;
+ }
+
+ // Update the gui's controls if needed.
+ unsigned long ports = synth->_controlInPorts;
+ if(ports > synti->_guiUpdateControls.size())
+ return;
+ for(unsigned long i = 0; i < ports; ++i)
+ {
+ if(synti->_guiUpdateControls[i])
+ {
+ unsigned long k = synth->pIdx[i];
+ _oscif.oscSendControl(k, controls[i].val);
+
+ // Reset.
+ synti->_guiUpdateControls[i] = false;
+ }
+ }
+ #endif
+}
+
+#ifdef OSC_SUPPORT
+//---------------------------------------------------------
+// oscUpdate
+//---------------------------------------------------------
+
+int DssiSynthIF::oscUpdate()
+{
+ // Send project directory.
+ _oscif.oscSendConfigure(DSSI_PROJECT_DIRECTORY_KEY, museProject.latin1()); // song->projectPath()
+
+ // Send current string configuration parameters.
+ //StringParamMap& map = synti->_stringParamMap;
+ int i = 0;
+ for(ciStringParamMap r = synti->_stringParamMap.begin(); r != synti->_stringParamMap.end(); ++r)
+ {
+ _oscif.oscSendConfigure(r->first.c_str(), r->second.c_str());
+ // Avoid overloading the GUI if there are lots and lots of params.
+ if((i+1) % 50 == 0)
+ usleep(300000);
+ ++i;
+ }
+
+ // Send current bank and program.
+ //unsigned long bank, prog;
+ //synti->currentProg(&prog, &bank, 0);
+ //_oscif.oscSendProgram(prog, bank);
+ _oscif.oscSendProgram(synti->_curProgram, synti->_curBankL);
+
+ // Send current control values.
+ unsigned long ports = synth->_controlInPorts;
+ for(unsigned long i = 0; i < ports; ++i)
+ {
+ unsigned long k = synth->pIdx[i];
+ _oscif.oscSendControl(k, controls[i].val);
+ // Avoid overloading the GUI if there are lots and lots of ports.
+ if((i+1) % 50 == 0)
+ usleep(300000);
+ }
+
+
+#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;
+}
+
+//---------------------------------------------------------
+// oscProgram
+//---------------------------------------------------------
+
+int DssiSynthIF::oscProgram(unsigned long program, unsigned long bank)
+ {
+ //int bank = argv[0]->i;
+ //int program = argv[1]->i;
+
+ int ch = 0; // TODO: ??
+
+ int port = synti->midiPort();
+
+ //_curBank = bank;
+ //_curProgram = program;
+ synti->_curBankH = 0;
+ synti->_curBankL = bank;
+ synti->_curProgram = program;
+
+ bank &= 0xff;
+ program &= 0xff;
+
+ //MidiEvent event(0, ch, ME_CONTROLLER, CTRL_PROGRAM, (bank << 8) + program);
+
+ if(port != -1)
+ {
+ //MidiPlayEvent event(0, port, ch, ME_CONTROLLER, CTRL_PROGRAM, (bank << 8) + program);
+ MidiPlayEvent event(0, port, ch, ME_PROGRAM, (bank << 8) + program, 0);
+
+ #ifdef DSSI_DEBUG
+ fprintf(stderr, "DssiSynthIF::oscProgram midi event chn:%d a:%d b:%d\n", event.channel(), event.dataA(), event.dataB());
+ #endif
+
+ midiPorts[port].sendEvent(event);
+ }
+
+
+
+ //synti->playMidiEvent(&event); // TODO
+ //
+ //MidiDevice* md = dynamic_cast<MidiDevice*>(synti);
+ //if(md)
+ // md->putEvent(event);
+ //
+ //synti->putEvent(event);
+
+ return 0;
+ }
+
+//---------------------------------------------------------
+// oscControl
+//---------------------------------------------------------
+
+int DssiSynthIF::oscControl(unsigned long port, float value)
+ {
+ //int port = argv[0]->i;
+ //LADSPA_Data value = argv[1]->f;
+
+ #ifdef DSSI_DEBUG
+ printf("DssiSynthIF::oscControl received oscControl port:%ld val:%f\n", port, value);
+ #endif
+
+ //int controlPorts = synth->_controlInPorts;
+
+ //if(port >= controlPorts)
+ //if(port < 0 || port >= synth->rpIdx.size())
+ if(port >= synth->rpIdx.size())
+ {
+ //fprintf(stderr, "DssiSynthIF::oscControl: port number:%d is out of range of number of ports:%d\n", port, controlPorts);
+ fprintf(stderr, "DssiSynthIF::oscControl: port number:%ld is out of range of index list size:%d\n", port, synth->rpIdx.size());
+ return 0;
+ }
+
+ // Convert from DSSI port number to control input port index.
+ unsigned long cport = synth->rpIdx[port];
+
+ if((int)cport == -1)
+ {
+ fprintf(stderr, "DssiSynthIF::oscControl: port number:%ld is not a control input\n", port);
+ return 0;
+ }
+
+ // p3.3.39 Set the DSSI control input port's value.
+ // Observations: With a native DSSI synth like LessTrivialSynth, the native GUI's controls do not change the sound at all
+ // ie. they don't update the DSSI control port values themselves.
+ // Hence in response to the call to this oscControl, sent by the native GUI, it is required to that here.
+/// controls[cport].val = value;
+ // DSSI-VST synths however, unlike DSSI synths, DO change their OWN sound in response to their gui controls.
+ // AND this function is called.
+ // Despite the descrepency we are STILL required to update the DSSI control port values here
+ // because dssi-vst is WAITING FOR A RESPONSE. (A CHANGE in the control port value).
+ // It will output something like "...4 events expected..." and count that number down as 4 actual control port value CHANGES
+ // are done here in response. Normally it says "...0 events expected..." when MusE is the one doing the DSSI control changes.
+ // TODO: (Done) May need FIFOs on each control(!) so that the control changes get sent one per process cycle.
+ // Observed countdown not actually going to zero upon string of changes.
+ //
+ // NOTE: NOTE: This line in RemoteVSTServer::setParameter(int p, float v) in dssi-vst-server.cpp :
+ //
+ // " if (tv.tv_sec > m_lastGuiComms.tv_sec + 10) "
+ //
+ // explains an observation that after ten seconds, the server automatically clears the expected number to 0.
+ // TODO: Now MusE should forget about all the VST fifo events past ten+ (?) seconds. Add event timestamps...
+ // You can't send any 'new' values until either you a): send all the expected events or b): wait ten seconds.
+ // (Because the server simply ignores the 'expected' messages.)
+ //
+ // Well, at least here are the fifos. Try this ...
+ OscControlFifo* cfifo = _oscif.oscFifo(cport);
+ if(cfifo)
+ {
+ OscControlValue cv;
+ //cv.idx = cport;
+ cv.value = value;
+ if(cfifo->put(cv))
+ {
+ fprintf(stderr, "DssiSynthIF::oscControl: fifo overflow: in control number:%ld\n", cport);
+ }
+ }
+
+ //const DSSI_Descriptor* dssi = synth->dssi;
+ //const LADSPA_Descriptor* ld = dssi->LADSPA_Plugin;
+
+ ciMidiCtl2LadspaPort ip = synth->port2MidiCtlMap.find(cport);
+ if(ip != synth->port2MidiCtlMap.end())
+ {
+ // TODO: TODO: Update midi MusE's midi controller knobs, sliders, boxes etc with a call to the midi port's setHwCtrlState() etc.
+ // But first we need a ladspa2MidiValue() function! ...
+ //
+ //
+ //float val = ladspa2MidiValue(ld, i, ?, ?);
+
+ }
+
+#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");
+
+ // The gui is gone now, right?
+ _guiVisible = false;
+
+ //const DSSI_Descriptor* dssi = synth->dssi;
+ //const LADSPA_Descriptor* ld = dssi->LADSPA_Plugin;
+ //if(ld->deactivate)
+ // ld->deactivate(handle);
+
+ if (uiOscPath == 0) {
+ printf("DssiSynthIF::oscExiting(): no uiOscPath\n");
+ return 1;
+ }
+ char uiOscGuiPath[strlen(uiOscPath)+6];
+
+ sprintf(uiOscGuiPath, "%s/%s", uiOscPath, "quit");
+ #ifdef DSSI_DEBUG
+ printf("DssiSynthIF::oscExiting(): sending quit to uiOscGuiPath:%s\n", uiOscGuiPath);
+ #endif
+
+ lo_send(uiTarget, uiOscGuiPath, "");
+
+#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(int a, int b, int c)
+ {
+ //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; // TODO: ??
+
+ int port = synti->midiPort();
+
+ //MidiEvent event(0, channel, a, b, c);
+
+ if(port != -1)
+ {
+ MidiPlayEvent event(0, port, channel, a, b, c);
+
+ #ifdef DSSI_DEBUG
+ fprintf(stderr, "DssiSynthIF::oscMidi midi event chn:%d a:%d b:%d\n", event.channel(), event.dataA(), event.dataB());
+ #endif
+
+ midiPorts[port].sendEvent(event);
+ }
+
+ //synti->playMidiEvent(&event); // TODO
+ //
+ //MidiDevice* md = dynamic_cast<MidiDevice*>(synti);
+ //if(md)
+ // md->putEvent(event);
+ //
+ //synti->putEvent(event);
+ //
+
+ return 0;
+ }
+
+//---------------------------------------------------------
+// oscConfigure
+//---------------------------------------------------------
+
+int DssiSynthIF::oscConfigure(const char *key, const char *value)
+ {
+ //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.
+
+ #ifdef DSSI_DEBUG
+ printf("DssiSynthIF::oscConfigure synth name:%s key:%s value:%s\n", synti->name().latin1(), key, value);
+ #endif
+
+ // Add or modify the configuration map item.
+ synti->_stringParamMap.set(key, value);
+
+ 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);
+ synti->name().latin1(), key);
+
+ return 0;
+ }
+
+ if (!synth->dssi->configure)
+ 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);
+ key, value, synti->name().latin1(), 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;
+ }
+#endif // OSC_SUPPORT
+
+//---------------------------------------------------------
+// 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))
+ if (!synth->dssi->get_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)
+const char* DssiSynthIF::getPatchName(int /*chan*/, int prog, MType /*type*/, bool /*drum*/)
+ {
+ 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)
+void DssiSynthIF::populatePatchPopup(Q3PopupMenu* menu, int /*ch*/, MType /*type*/, bool /*drum*/)
+ {
+ // The plugin can change the programs, patches etc.
+ // So make sure we're up to date by calling queryPrograms.
+ queryPrograms();
+
+ 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);
+ menu->insertItem(QString(i->Name), id);
+ }
+ }
+
+int DssiSynthIF::getControllerInfo(int id, const char** name, int* ctrl, int* min, int* max, int* initval)
+{
+ int controlPorts = synth->_controlInPorts;
+ if(id >= controlPorts)
+ //if(id >= midiCtl2PortMap.size())
+ return 0;
+
+ const DSSI_Descriptor* dssi = synth->dssi;
+ const LADSPA_Descriptor* ld = dssi->LADSPA_Plugin;
+
+ // Hmm, <map> has a weird [] operator. Would it work?
+ // For now just use duplicate code found in ::init()
+ //iMidiCtl2LadspaPort ip = midiCtl2PortMap[id];
+ //int ctlnum = ip->first;
+ //int k = ip->second;
+
+ int i = synth->pIdx[id];
+ //int i = synth->pIdx[k];
+
+ //ladspaDefaultValue(ld, i, &controls[id].val);
+
+ #ifdef DSSI_DEBUG
+ printf("DssiSynthIF::getControllerInfo control port:%d port idx:%d name:%s\n", id, i, ld->PortNames[i]);
+ #endif
+
+ int ctlnum = DSSI_NONE;
+ if(dssi->get_midi_controller_for_port)
+ ctlnum = dssi->get_midi_controller_for_port(handle, i);
+
+
+ // No controller number? Give it one.
+ if(ctlnum == DSSI_NONE)
+ {
+ // TODO: If neccesary... choose non-existing numbers...
+ //for(int k = 0; k < controlPorts; ++k)
+ //{
+ // int i = synth->pIdx[k];
+ //}
+
+ // Simple but flawed solution: Start them at 0x60000 + 0x2000 = 0x62000. Max NRPN number is 0x3fff.
+ ctlnum = CTRL_NRPN14_OFFSET + 0x2000 + id;
+ }
+ else
+ {
+ #ifdef DSSI_DEBUG
+ printf("DssiSynthIF::getControllerInfo ctlnum:%d\n", ctlnum);
+ #endif
+
+ int c = ctlnum;
+ // Can be both CC and NRPN! Prefer CC over NRPN.
+ if(DSSI_IS_CC(ctlnum))
+ {
+ #ifdef DSSI_DEBUG
+ printf("DssiSynthIF::getControllerInfo is CC control\n");
+ #endif
+
+ ctlnum = DSSI_CC_NUMBER(c);
+
+ #ifdef DSSI_DEBUG
+ if(DSSI_IS_NRPN(ctlnum))
+ printf("DssiSynthIF::getControllerInfo is also NRPN control. Using CC.\n");
+ #endif
+ }
+ else
+ if(DSSI_IS_NRPN(ctlnum))
+ {
+ #ifdef DSSI_DEBUG
+ printf("DssiSynthIF::getControllerInfo is NRPN control\n");
+ #endif
+
+ ctlnum = DSSI_NRPN_NUMBER(c) + CTRL_NRPN14_OFFSET;
+ }
+ }
+
+ int def = CTRL_VAL_UNKNOWN;
+ if(ladspa2MidiControlValues(ld, i, ctlnum, min, max, &def))
+ *initval = def;
+ else
+ *initval = CTRL_VAL_UNKNOWN;
+
+ #ifdef DSSI_DEBUG
+ printf("DssiSynthIF::getControllerInfo passed ctlnum:%d min:%d max:%d initval:%d\n", ctlnum, *min, *max, *initval);
+ #endif
+
+ *ctrl = ctlnum;
+ *name = ld->PortNames[i];
+ return ++id;
+
+ /*
+ // ...now create midi controllers for ports which did not define them ...
+ for(int k = 0; k < controlPorts; ++k)
+ {
+ int i = synth->pIdx[k];
+ //controls[k].val = ladspaDefaultValue(ld, i);
+ ladspaDefaultValue(ld, i, &controls[k].val);
+
+ printf("DssiSynthIF::getControllerInfo #2 control port:%d port idx:%d name:%s\n", k, i, ld->PortNames[i]);
+
+ if(!dssi->get_midi_controller_for_port || (dssi->get_midi_controller_for_port(handle, i) == DSSI_NONE))
+ {
+ int ctlnum;
+ //printf("DssiSynthIF::getControllerInfo #2 midi controller number:%d\n", ctlnum);
+ printf("DssiSynthIF::getControllerInfo #2 creating MidiController number:%d\n", ctlnum);
+ MidiController* mc = ladspa2MidiController(ld, i, ctlnum);
+ // Add to MidiInstrument controller list.
+ if(mc)
+ {
+ printf("DssiSynthIF::getControllerInfo #2 adding MidiController to instrument\n");
+ ((MidiInstrument*)synti)->controller()->add(mc);
+ }
+ }
+ else
+ {
+
+ }
+ }
+ */
+
+}
+
+int DssiSynthIF::channels() const
+{
+ return synth->_outports > MAX_CHANNELS ? MAX_CHANNELS : synth->_outports;
+}
+
+int DssiSynthIF::totalOutChannels() const
+{
+ return synth->_outports;
+}
+
+int DssiSynthIF::totalInChannels() const
+{
+ return synth->_inports;
+}
+
+//--------------------------------
+// Methods for PluginIBase:
+//--------------------------------
+
+bool DssiSynthIF::on() const { return true; } // Synth is not part of a rack plugin chain. Always on.
+void DssiSynthIF::setOn(bool /*val*/) { }
+int DssiSynthIF::pluginID() { return (synth && synth->dssi) ? synth->dssi->LADSPA_Plugin->UniqueID : 0; }
+int DssiSynthIF::id() { return 0; } // Synth is not part of a rack plugin chain. Always 0.
+QString DssiSynthIF::pluginLabel() const { return (synth && synth->dssi) ? QString(synth->dssi->LADSPA_Plugin->Label) : QString(); }
+QString DssiSynthIF::name() const { return synti->name(); }
+AudioTrack* DssiSynthIF::track() { return (AudioTrack*)synti; }
+void DssiSynthIF::enableController(int i, bool v) { controls[i].enCtrl = v; }
+bool DssiSynthIF::controllerEnabled(int i) const { return controls[i].enCtrl; }
+bool DssiSynthIF::controllerEnabled2(int i) const { return controls[i].en2Ctrl; }
+void DssiSynthIF::updateControllers() { }
+void DssiSynthIF::writeConfiguration(int /*level*/, Xml& /*xml*/) { }
+bool DssiSynthIF::readConfiguration(Xml& /*xml*/, bool /*readPreset*/) { return false; }
+int DssiSynthIF::parameters() const { return synth ? synth->_controlInPorts : 0; }
+void DssiSynthIF::setParam(int i, double val) { setParameter(i, val); }
+double DssiSynthIF::param(int i) const { return getParameter(i); }
+const char* DssiSynthIF::paramName(int i) { return (synth && synth->dssi) ? synth->dssi->LADSPA_Plugin->PortNames[i] : 0; }
+//LADSPA_PortRangeHint DssiSynthIF::range(int i) { return (synth && synth->dssi) ? synth->dssi->LADSPA_Plugin->PortRangeHints[i] : 0; }
+LADSPA_PortRangeHint DssiSynthIF::range(int i) { return synth->dssi->LADSPA_Plugin->PortRangeHints[i]; }
+
+
+#else //DSSI_SUPPORT
+void initDSSI() {}
+#endif
+
diff --git a/muse2/muse/dssihost.h b/muse2/muse/dssihost.h
new file mode 100644
index 00000000..046343f5
--- /dev/null
+++ b/muse2/muse/dssihost.h
@@ -0,0 +1,256 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id: dssihost.h,v 1.10.2.7 2009/12/06 10:05:00 terminator356 Exp $
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the 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 "config.h"
+
+#include <vector>
+#include <map>
+#include <string>
+
+#ifdef OSC_SUPPORT
+#include <lo/lo.h>
+#include "osc.h"
+#endif
+
+#include "ladspa.h"
+#include <dssi.h>
+#include <alsa/asoundlib.h>
+
+#include "midictrl.h"
+#include "synth.h"
+#include "stringparam.h"
+
+#include "plugin.h"
+//Added by qt3to4:
+#include <Q3PopupMenu>
+
+#define DSSI_PARAMSAVE_VERSION_MAJOR 0
+#define DSSI_PARAMSAVE_VERSION_MINOR 1
+
+struct _DSSI;
+class DssiPluginIF;
+
+//class LadspaPort;
+class Port;
+class Q3Process;
+
+//---------------------------------------------------------
+// DssiSynth
+//---------------------------------------------------------
+
+class DssiSynth : public Synth {
+ protected:
+ //char* label;
+ void* handle;
+ const DSSI_Descriptor* dssi;
+ DSSI_Descriptor_Function df;
+ unsigned long _portCount, _inports, _outports, _controlInPorts, _controlOutPorts;
+ std::vector<unsigned long> pIdx; // Control input index to port number.
+ std::vector<unsigned long> opIdx; // Control output index to port number. This is sometimes a latency port and...?
+ std::vector<unsigned long> iIdx; // Audio input index to port number.
+ std::vector<unsigned long> oIdx; // Audio output index to port number.
+ std::vector<bool> iUsedIdx; // During process, tells whether an audio input port was used by any input routes.
+ std::vector<unsigned long> rpIdx; // Port number to control input index. Item is -1 if it's not a control input.
+ //unsigned long* rpIdx;
+ MidiCtl2LadspaPortMap midiCtl2PortMap; // Maps midi controller numbers to DSSI port numbers.
+ MidiCtl2LadspaPortMap port2MidiCtlMap; // Maps DSSI port numbers to midi controller numbers.
+ bool _hasGui;
+ bool _inPlaceCapable;
+
+ public:
+ //DssiSynth(const QFileInfo* fi, QString l) : Synth(fi, l) {
+ //DssiSynth(const QFileInfo& fi, QString l) : Synth(fi, l) {
+ //DssiSynth(const QFileInfo& fi, QString label, QString descr, QString maker, QString ver) :
+ // Synth(fi, label, descr, maker, ver) {
+ // rpIdx = 0;
+ // df = 0;
+ // handle = 0;
+ // dssi = 0;
+ // _hasGui = false;
+ // }
+ //DssiSynth(const QFileInfo& fi, QString label, QString descr, QString maker, QString ver);
+ DssiSynth(QFileInfo&, const DSSI_Descriptor*); // removed const for QFileInfo
+ virtual ~DssiSynth();
+ virtual void incInstances(int);
+
+ //virtual void* instantiate();
+
+ virtual SynthIF* createSIF(SynthI*);
+ //virtual SynthIF* createSIF();
+
+ friend class DssiSynthIF;
+ //float defaultValue(int); // Not required
+ unsigned long inPorts() const { return _inports; }
+ unsigned long outPorts() const { return _outports; }
+ unsigned long inControls() const { return _controlInPorts; }
+ unsigned long outControls() const { return _controlOutPorts; }
+
+ unsigned long inControlPortIdx(unsigned long i) { return pIdx[i]; }
+ };
+
+//---------------------------------------------------------
+// DssiSynthIF
+// VSTi synthesizer instance
+//---------------------------------------------------------
+
+//class DssiSynthIF : public SynthIF
+class DssiSynthIF : public SynthIF, public PluginIBase
+ {
+ //bool _guiVisible;
+ DssiSynth* synth;
+ LADSPA_Handle handle;
+
+ //LadspaPort* controls;
+ Port* controls;
+ Port* controlsOut;
+
+ //unsigned long _curBank;
+ //unsigned long _curProgram;
+
+ #ifdef OSC_SUPPORT
+ OscDssiIF _oscif;
+ #endif
+
+ //void* uiTarget;
+ //char* uiOscShowPath;
+ //char* uiOscControlPath;
+ //char* uiOscConfigurePath;
+ //char* uiOscProgramPath;
+ //char* uiOscPath;
+
+ std::vector<DSSI_Program_Descriptor> programs;
+ void queryPrograms();
+ bool processEvent(const MidiPlayEvent&, snd_seq_event_t*);
+
+ float** audioInBuffers;
+ float** audioOutBuffers;
+
+ protected:
+ //int guiPid;
+ //QProcess* guiQProc;
+
+ public:
+ DssiSynthIF(SynthI* s);
+ //DssiSynthIF();
+
+ virtual ~DssiSynthIF();
+
+ virtual DssiSynth* dssiSynth() { return synth; }
+ virtual SynthI* dssiSynthI() { return synti; }
+
+ virtual bool initGui();
+ virtual void guiHeartBeat();
+ 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 preProcessAlways();
+
+ //virtual void getData(MidiEventList*, unsigned pos, int ports, unsigned n, float** buffer) ;
+ virtual iMPEvent getData(MidiPort*, MPEventList*, iMPEvent, unsigned pos, int ports, unsigned n, float** buffer);
+
+ //virtual bool putEvent(const MidiEvent& ev);
+ virtual bool putEvent(const MidiPlayEvent& ev);
+
+ //virtual MidiEvent receiveEvent();
+ virtual MidiPlayEvent receiveEvent();
+
+ virtual int eventsPending() const { return 0; }
+
+ //virtual int channels() const { return synth->_outports; }
+ virtual int channels() const;
+ virtual int totalOutChannels() const;
+ virtual int totalInChannels() const;
+
+ virtual void deactivate3() {}
+
+ //virtual QString getPatchName(int, int);
+ virtual const char* getPatchName(int, int, int, bool) const { return ""; }
+ virtual const char* getPatchName(int, int, MType, bool);
+
+ //virtual void populatePatchPopup(QMenu*, int);
+ virtual void populatePatchPopup(Q3PopupMenu*, int, MType, bool);
+
+ //virtual void write(Xml& xml) const;
+ virtual void write(int level, Xml& xml) const;
+
+ virtual float getParameter(unsigned long /*idx*/) const;
+ virtual void setParameter(unsigned long /*idx*/, float /*value*/);
+
+ //virtual int getControllerInfo(int, const char**, int*, int*, int*) { return 0; }
+ virtual int getControllerInfo(int, const char**, int*, int*, int*, int*);
+
+ bool init(DssiSynth* s);
+
+ //StringParamMap& stringParameters() { return synti->stringParameters(); }
+
+ #ifdef OSC_SUPPORT
+ OscDssiIF& oscIF() { return _oscif; }
+ /*
+ int oscProgram(lo_arg**);
+ int oscControl(lo_arg**);
+ int oscMidi(lo_arg**);
+ int oscConfigure(lo_arg**);
+ int oscUpdate(lo_arg**);
+ //int oscExiting(lo_arg**);
+ */
+
+ int oscProgram(unsigned long /*prog*/, unsigned long /*bank*/);
+ int oscControl(unsigned long /*dssiPort*/, float /*val*/);
+ int oscMidi(int /*a*/, int /*b*/, int /*c*/);
+ int oscConfigure(const char */*key*/, const char */*val*/);
+ int oscUpdate();
+ //int oscExiting();
+ #endif
+
+ //-------------------------
+ // Methods for PluginIBase:
+ //-------------------------
+ bool on() const;
+ void setOn(bool /*val*/);
+ int pluginID();
+ int id();
+ QString pluginLabel() const;
+ QString name() const;
+ AudioTrack* track();
+ void enableController(int /*i*/, bool v = true);
+ bool controllerEnabled(int /*i*/) const;
+ bool controllerEnabled2(int /*i*/) const;
+ void updateControllers();
+ void writeConfiguration(int /*level*/, Xml& /*xml*/);
+ bool readConfiguration(Xml& /*xml*/, bool readPreset=false);
+ int parameters() const;
+ void setParam(int /*i*/, double /*val*/);
+ double param(int /*i*/) const;
+ const char* paramName(int /*i*/);
+ LADSPA_PortRangeHint range(int /*i*/);
+
+ friend class DssiSynth;
+ };
+
+extern void initDSSI();
+
+#endif
+
diff --git a/muse2/muse/evdata.h b/muse2/muse/evdata.h
new file mode 100644
index 00000000..59155d48
--- /dev/null
+++ b/muse2/muse/evdata.h
@@ -0,0 +1,67 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: evdata.h,v 1.2.2.2 2008/08/18 00:15:23 terminator356 Exp $
+//
+// (C) Copyright 1999-2003 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __EVDATA_H__
+#define __EVDATA_H__
+
+#include <string.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/muse2/muse/event.cpp b/muse2/muse/event.cpp
new file mode 100644
index 00000000..5d16fde9
--- /dev/null
+++ b/muse2/muse/event.cpp
@@ -0,0 +1,328 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: event.cpp,v 1.8.2.5 2009/12/20 05:00:35 terminator356 Exp $
+//
+// (C) Copyright 2000-2003 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include <stdio.h>
+// #include <memory.h>
+//#include "audioconvert.h"
+#include "event.h"
+#include "eventbase.h"
+#include "waveevent.h"
+#include "midievent.h"
+//#include "globals.h"
+
+// Added by Tim. p3.3.20
+//#define USE_SAMPLERATE
+
+//---------------------------------------------------------
+// Event
+//---------------------------------------------------------
+
+EventBase::EventBase(EventType t)
+ {
+ _type = t;
+ Pos::setType(_type == Wave ? FRAMES : TICKS);
+ refCount = 0;
+ _selected = false;
+ }
+
+EventBase::EventBase(const EventBase& ev)
+ : PosLen(ev)
+ {
+ refCount = 0;
+ _selected = ev._selected;
+ _type = ev._type;
+ }
+
+//---------------------------------------------------------
+// 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()
+ {
+ // p3.3.31
+ //printf("Event::clone() this:%p\n", this);
+
+ // p3.3.31
+ //return Event(ev->clone());
+ #ifdef USE_SAMPLERATE
+ return Event(ev->clone(), _audConv);
+ #else
+ return Event(ev->clone());
+ #endif
+ }
+
+Event::Event()
+{
+ ev = 0;
+ //_sfCurFrame = 0;
+ //_audConv = 0;
+}
+
+Event::Event(EventType t) {
+ //_sfCurFrame = 0;
+ //_audConv = 0;
+
+ if (t == Wave)
+ ev = new WaveEventBase(t);
+ else
+ ev = new MidiEventBase(t);
+ ++(ev->refCount);
+ }
+Event::Event(const Event& e) {
+ //_sfCurFrame = 0;
+ //_audConv = 0;
+
+ ev = e.ev;
+ if(ev)
+ ++(ev->refCount);
+
+ #ifdef USE_SAMPLERATE
+ //_audConv = AudioConverter::getAudioConverter(e._audConv);
+ if(e._audConv)
+ _audConv = e._audConv->reference();
+ #endif
+ }
+Event::Event(EventBase* eb) {
+ //_sfCurFrame = 0;
+ //_audConv = 0;
+
+ ev = eb;
+ ++(ev->refCount);
+
+ #ifdef USE_SAMPLERATE
+ if(!ev->sndFile().isNull())
+ //_audConv = AudioConverter::getAudioConverter(eb, SRC_SINC_MEDIUM_QUALITY);
+ //_audConv = new AudioConverter(ev->sndFile().channels(), SRC_SINC_MEDIUM_QUALITY);
+ _audConv = new SRCAudioConverter(ev->sndFile().channels(), SRC_SINC_MEDIUM_QUALITY);
+ #endif
+ }
+#ifdef USE_SAMPLERATE
+Event::Event(EventBase* eb, AudioConverter* cv) {
+ _sfCurFrame = 0;
+ _audConv = 0;
+
+ ev = eb;
+ ++(ev->refCount);
+
+ if(cv)
+ _audConv = cv->reference();
+ }
+#endif
+
+Event::~Event() {
+ if (ev && --(ev->refCount) == 0) {
+ delete ev;
+ ev=0;
+ }
+
+ #ifdef USE_SAMPLERATE
+ AudioConverter::release(_audConv);
+ #endif
+ }
+
+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;
+ ev = 0;
+ }
+ 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 = 0;
+ }
+ ev = e.ev;
+ if (ev)
+ ++(ev->refCount);
+ return *this;
+ */
+
+ if (ev != e.ev)
+ {
+ if (ev && --(ev->refCount) == 0) {
+ delete ev;
+ ev = 0;
+ }
+ ev = e.ev;
+ if (ev)
+ ++(ev->refCount);
+ }
+
+ #ifdef USE_SAMPLERATE
+ if (_audConv != e._audConv)
+ {
+ if(_audConv)
+ AudioConverter::release(_audConv);
+ //_audConv = AudioConverter::getAudioConverter(e._audConv);
+ _audConv = e._audConv->reference();
+ }
+ #endif
+ 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; }
+void Event::move(int offset) { ev->move(offset); }
+
+//void Event::read(Xml& xml) { ev->read(xml); }
+void Event::read(Xml& xml)
+{
+ ev->read(xml);
+
+ #ifdef USE_SAMPLERATE
+ if(!ev->sndFile().isNull())
+ {
+ if(_audConv)
+ {
+ _audConv->setChannels(ev->sndFile().channels());
+ }
+ else
+ {
+ //int srcerr;
+ //if(debugMsg)
+ // printf("Event::read Creating samplerate converter with %d channels\n", ev->sndFile().channels());
+ //_src_state = src_new(SRC_SINC_MEDIUM_QUALITY, ev->sndFile().channels(), &srcerr);
+// _audConv = new AudioConverter(ev->sndFile().channels(), SRC_SINC_MEDIUM_QUALITY);
+ _audConv = new SRCAudioConverter(ev->sndFile().channels(), SRC_SINC_MEDIUM_QUALITY);
+ //if(!_src_state)
+ //if(!_audConv)
+ // printf("Event::read Creation of samplerate converter with %d channels failed:%s\n", ev->sndFile().channels(), src_strerror(srcerr));
+ }
+ }
+ #endif
+}
+
+
+//void Event::write(int a, Xml& xml, const Pos& o) const { ev->write(a, xml, o); }
+void Event::write(int a, Xml& xml, const Pos& o, bool forceWavePaths) const { ev->write(a, xml, o, forceWavePaths); }
+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::setSndFile(SndFileR& sf)
+{
+ ev->setSndFile(sf);
+
+ #ifdef USE_SAMPLERATE
+ //if(_audConv)
+// if(_audConv && !sf.isNull())
+// {
+ //_audConv->setSndFile(sf);
+ //if(sf.isNull())
+ // AudioConverter::release(_audConv);
+ //else
+// _audConv->setChannels(sf.channels());
+// }
+
+ if(_audConv)
+ {
+ // Do we release? Or keep the converter around, while gaining speed since no rapid creation/destruction.
+ //if(sf.isNull())
+ // _audConv = AudioConverter::release(_audConv);
+ //else
+ // _audConv->setChannels(sf.channels());
+ if(!sf.isNull())
+ _audConv->setChannels(sf.channels());
+ }
+ else
+ {
+ if(!sf.isNull())
+ _audConv = new SRCAudioConverter(ev->sndFile().channels(), SRC_SINC_MEDIUM_QUALITY);
+ }
+ #endif
+}
+
+//void Event::read(unsigned offset, float** bpp, int channels, int nn, bool overwrite)
+//void Event::readAudio(unsigned offset, float** bpp, int channels, int nn, bool doSeek, bool overwrite)
+// p3.3.33
+void Event::readAudio(WavePart* part, unsigned offset, float** bpp, int channels, int nn, bool doSeek, bool overwrite)
+ {
+ //ev->read(offset, bpp, channels, nn, overwrite);
+ //ev->readAudio(offset, bpp, channels, nn, doSeek, overwrite);
+ //_sfCurFrame = ev->readAudio(_src_state, _sfCurFrame, offset, bpp, channels, nn, doSeek, overwrite);
+ // p3.3.33
+ ev->readAudio(part, offset, bpp, channels, nn, doSeek, overwrite);
+ }
+void Event::setTick(unsigned val) { ev->setTick(val); }
+unsigned Event::tick() const { return ev->tick(); }
+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); }
+
diff --git a/muse2/muse/event.h b/muse2/muse/event.h
new file mode 100644
index 00000000..0b0a2fbd
--- /dev/null
+++ b/muse2/muse/event.h
@@ -0,0 +1,150 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: event.h,v 1.7.2.4 2009/12/20 05:00:35 terminator356 Exp $
+//
+// (C) Copyright 1999-2004 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __EVENT_H__
+#define __EVENT_H__
+
+#include <qstring.h>
+#include <map>
+//#include <samplerate.h>
+#include <sys/types.h>
+
+#include "wave.h" // wg. SndFile
+#include "pos.h"
+#include "evdata.h"
+
+enum EventType { Note, Controller, Sysex, PAfter, CAfter, Meta, Wave };
+
+class Xml;
+class EventBase;
+//class AudioConverter;
+class WavePart;
+
+//---------------------------------------------------------
+// Event
+//---------------------------------------------------------
+
+class Event {
+ EventBase* ev;
+
+ //off_t _sfCurFrame;
+ //AudioConverter* _audConv;
+
+ public:
+ //Event() { ev = 0; }
+ Event();
+ Event(EventType t);
+ Event(const Event& e);
+ Event(EventBase* eb);
+
+ //#ifdef USE_SAMPLERATE
+ //Event(EventBase* eb, AudioConverter* cv);
+ //#endif
+
+ virtual ~Event();
+
+ bool empty() const;
+ EventType type() 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);
+ void move(int offset);
+
+ void read(Xml& xml);
+ //void write(int a, Xml& xml, const Pos& offset) const;
+ void write(int a, Xml& xml, const Pos& offset, bool ForceWavePaths = false) const;
+ void dump(int n = 0) const;
+ Event clone();
+ 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);
+ //AudioConverter* audioConverter() { return _audConv;}
+ SndFileR sndFile() const;
+ virtual void setSndFile(SndFileR& sf);
+
+ //virtual void read(unsigned offset, float** bpp, int channels, int nn, bool overwrite = true);
+ //virtual void readAudio(unsigned /*offset*/, float** /*bpp*/, int /*channels*/, int /*nn*/, bool /*doSeek*/, bool /*overwrite*/);
+ virtual void readAudio(WavePart* /*part*/, unsigned /*offset*/, float** /*bpp*/, int /*channels*/, int /*nn*/, bool /*doSeek*/, bool /*overwrite*/);
+
+ 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;
+ Pos end() 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 {
+ int ref; // number of references to this EventList
+ int aref; // number of active references (exclude undo list)
+ void deselect();
+
+ public:
+ EventList() { ref = 0; aref = 0; }
+ ~EventList() {}
+
+ void incRef(int n) { ref += n; }
+ int refCount() const { return ref; }
+ void incARef(int n) { aref += n; }
+ int arefCount() const { return aref; }
+
+ iEvent find(const Event&);
+ iEvent add(Event& event);
+ void move(Event& event, unsigned tick);
+ void dump() const;
+ void read(Xml& xml, const char* name, bool midi);
+ };
+
+#endif
+
diff --git a/muse2/muse/eventbase.h b/muse2/muse/eventbase.h
new file mode 100644
index 00000000..6684bf57
--- /dev/null
+++ b/muse2/muse/eventbase.h
@@ -0,0 +1,97 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: eventbase.h,v 1.3.2.3 2009/12/20 05:00:35 terminator356 Exp $
+//
+// (C) Copyright 1999-2004 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __EVENTBASE_H__
+#define __EVENTBASE_H__
+
+//#include <samplerate.h>
+#include <sys/types.h>
+
+#include "pos.h"
+#include "event.h"
+
+//class AudioConverter;
+class WavePart;
+
+//---------------------------------------------------------
+// EventBase
+//---------------------------------------------------------
+
+class EventBase : public PosLen {
+ EventType _type;
+
+ protected:
+ int refCount;
+ bool _selected;
+
+ public:
+ EventBase(EventType t);
+ EventBase(const EventBase& ev);
+
+ 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; }
+
+ void move(int offset);
+
+ virtual void read(Xml&) = 0;
+ //virtual void write(int, Xml&, const Pos& offset) const = 0;
+ virtual void write(int, Xml&, const Pos& offset, bool forcePath = false) 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() = 0;
+
+ //virtual void read(unsigned /*offset*/, float** /*bpp*/, int /*channels*/, int /*nn*/, bool /*doSeek*/, bool overwrite = true) {}
+ //virtual void readAudio(unsigned /*offset*/, float** /*bpp*/, int /*channels*/, int /*nn*/, bool /*doSeek*/, bool /*overwrite*/) {}
+ //virtual off_t readAudio(SRC_STATE* /*src_state*/, off_t /*sfCurFrame*/, unsigned /*offset*/,
+ // float** /*bpp*/, int /*channels*/, int /*nn*/, bool /*doSeek*/, bool /*overwrite*/) { return 0; }
+ //virtual off_t readAudio(AudioConverter* /*audConv*/, off_t /*sfCurFrame*/, unsigned /*offset*/,
+ // float** /*bpp*/, int /*channels*/, int /*nn*/, bool /*doSeek*/, bool /*overwrite*/) { return 0; }
+ virtual void readAudio(WavePart* /*part*/, unsigned /*offset*/,
+ float** /*bpp*/, int /*channels*/, int /*nn*/, bool /*doSeek*/, bool /*overwrite*/) { }
+ };
+#endif
+
diff --git a/muse2/muse/eventlist.cpp b/muse2/muse/eventlist.cpp
new file mode 100644
index 00000000..23fffc8c
--- /dev/null
+++ b/muse2/muse/eventlist.cpp
@@ -0,0 +1,112 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: eventlist.cpp,v 1.7.2.3 2009/11/05 03:14:35 terminator356 Exp $
+//
+// (C) Copyright 2000-2003 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include "tempo.h"
+#include "event.h"
+#include "xml.h"
+
+//---------------------------------------------------------
+// readEventList
+//---------------------------------------------------------
+
+void EventList::read(Xml& xml, const char* name, bool midi)
+ {
+ 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 == "event") {
+ Event e(midi ? Note : Wave);
+ e.read(xml);
+ add(e);
+ }
+ else
+ xml.unknown("readEventList");
+ break;
+ case Xml::TagEnd:
+ if (tag == name)
+ return;
+ default:
+ break;
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// add
+//---------------------------------------------------------
+
+iEvent EventList::add(Event& event)
+ {
+ // Added by T356. An event list containing wave events should be sorted by
+ // frames. WaveTrack::fetchData() relies on the sorting order, and
+ // there was a bug that waveparts were sometimes muted because of
+ // incorrect sorting order (by ticks).
+ // Also, when the tempo map is changed, every wave event would have to be
+ // re-added to the event list so that the proper sorting order (by ticks)
+ // could be achieved.
+ // Note that in a med file, the tempo list is loaded AFTER all the tracks.
+ // There was a bug that all the wave events' tick values were not correct,
+ // since they were computed BEFORE the tempo map was loaded.
+ if(event.type() == Wave)
+ return std::multimap<unsigned, Event, std::less<unsigned> >::insert(std::pair<const unsigned, Event> (event.frame(), event));
+ else
+
+ return std::multimap<unsigned, Event, std::less<unsigned> >::insert(std::pair<const unsigned, Event> (event.tick(), event));
+ }
+
+//---------------------------------------------------------
+// move
+//---------------------------------------------------------
+
+void EventList::move(Event& event, unsigned tick)
+ {
+ iEvent i = find(event);
+ erase(i);
+
+ // Added by T356.
+ if(event.type() == Wave)
+ std::multimap<unsigned, Event, std::less<unsigned> >::insert(std::pair<const unsigned, Event> (tempomap.tick2frame(tick), event));
+ else
+
+ std::multimap<unsigned, Event, std::less<unsigned> >::insert(std::pair<const unsigned, Event> (tick, event));
+ }
+
+//---------------------------------------------------------
+// find
+//---------------------------------------------------------
+
+iEvent EventList::find(const Event& event)
+ {
+ // Changed by T356.
+ // Changed by Tim. p3.3.8
+ //EventRange range = equal_range(event.tick());
+ EventRange range = equal_range(event.type() == Wave ? event.frame() : 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/muse2/muse/exportmidi.cpp b/muse2/muse/exportmidi.cpp
new file mode 100644
index 00000000..c068d719
--- /dev/null
+++ b/muse2/muse/exportmidi.cpp
@@ -0,0 +1,379 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: exportmidi.cpp,v 1.9.2.1 2009/04/01 01:37:10 terminator356 Exp $
+//
+// (C) Copyright 1999-2003 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include <stdio.h>
+#include <qstring.h>
+
+#include "app.h"
+#include "midifile.h"
+#include "midi.h"
+#include "midictrl.h"
+#include "globals.h"
+#include "filedialog.h"
+#include "track.h"
+#include "song.h"
+#include "mpevent.h"
+#include "event.h"
+#include "marker/marker.h"
+#include "drummap.h"
+#include "gconfig.h"
+
+//---------------------------------------------------------
+// addController
+//---------------------------------------------------------
+
+static void addController(MPEventList* l, int tick, int port, int channel, int a, int b)
+ {
+ // p3.3.37
+ //if (a < 0x1000) { // 7 Bit Controller
+ if (a < CTRL_14_OFFSET) { // 7 Bit Controller
+ l->add(MidiPlayEvent(tick, port, channel, ME_CONTROLLER, a, b));
+ }
+ //else if (a < 0x20000) { // 14 Bit Controller
+ else if (a < CTRL_RPN_OFFSET) { // 14 Bit Controller
+ int ctrlH = (a >> 8) & 0x7f;
+ int ctrlL = a & 0x7f;
+ int dataH = (b >> 7) & 0x7f;
+ int dataL = b & 0x7f;
+ l->add(MidiPlayEvent(tick, port, channel, ME_CONTROLLER, ctrlH, dataH));
+ l->add(MidiPlayEvent(tick+1, port, channel, ME_CONTROLLER, ctrlL, dataL));
+ }
+ //else if (a < 0x30000) { // RPN 7-Bit Controller
+ else if (a < CTRL_NRPN_OFFSET) { // RPN 7-Bit Controller
+ int ctrlH = (a >> 8) & 0x7f;
+ int ctrlL = a & 0x7f;
+ l->add(MidiPlayEvent(tick, port, channel, ME_CONTROLLER, CTRL_HRPN, ctrlH));
+ l->add(MidiPlayEvent(tick+1, port, channel, ME_CONTROLLER, CTRL_LRPN, ctrlL));
+ l->add(MidiPlayEvent(tick+2, port, channel, ME_CONTROLLER, CTRL_HDATA, b));
+ }
+ //else if (a < 0x40000) { // NRPN 7-Bit Controller
+ else if (a < CTRL_INTERNAL_OFFSET) { // NRPN 7-Bit Controller
+ int ctrlH = (a >> 8) & 0x7f;
+ int ctrlL = a & 0x7f;
+ l->add(MidiPlayEvent(tick, port, channel, ME_CONTROLLER, CTRL_HNRPN, ctrlH));
+ l->add(MidiPlayEvent(tick+1, port, channel, ME_CONTROLLER, CTRL_LNRPN, ctrlL));
+ l->add(MidiPlayEvent(tick+2, port, channel, ME_CONTROLLER, CTRL_HDATA, b));
+ }
+ else if (a == CTRL_PITCH) {
+ int a = b + 8192;
+ int b = a >> 7;
+ l->add(MidiPlayEvent(tick, port, 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;
+ switch(song->mtype()) {
+ case MT_GM: // no HBANK/LBANK
+ break;
+ case MT_GS:
+ case MT_XG:
+ case MT_UNKNOWN:
+ if (hb != 0xff) {
+ l->add(MidiPlayEvent(tick, port, channel, ME_CONTROLLER, CTRL_HBANK, hb));
+ ++tickoffset;
+ }
+ if (lb != 0xff) {
+ l->add(MidiPlayEvent(tick+tickoffset, port, channel, ME_CONTROLLER, CTRL_LBANK, lb));
+ ++tickoffset;
+ }
+ break;
+ }
+ l->add(MidiPlayEvent(tick+tickoffset, port, channel, ME_PROGRAM, pr, 0));
+ }
+ //else if (a < 0x60000) { // RPN14 Controller
+ 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;
+ l->add(MidiPlayEvent(tick, port, channel, ME_CONTROLLER, CTRL_HRPN, ctrlH));
+ l->add(MidiPlayEvent(tick+1, port, channel, ME_CONTROLLER, CTRL_LRPN, ctrlL));
+ l->add(MidiPlayEvent(tick+2, port, channel, ME_CONTROLLER, CTRL_HDATA, dataH));
+ l->add(MidiPlayEvent(tick+3, port, channel, ME_CONTROLLER, CTRL_LDATA, dataL));
+ }
+ //else if (a < 0x70000) { // NRPN14 Controller
+ 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;
+ l->add(MidiPlayEvent(tick, port, channel, ME_CONTROLLER, CTRL_HNRPN, ctrlH));
+ l->add(MidiPlayEvent(tick+1, port, channel, ME_CONTROLLER, CTRL_LNRPN, ctrlL));
+ l->add(MidiPlayEvent(tick+2, port, channel, ME_CONTROLLER, CTRL_HDATA, dataH));
+ l->add(MidiPlayEvent(tick+3, port, channel, ME_CONTROLLER, CTRL_LDATA, dataL));
+ }
+ }
+
+//---------------------------------------------------------
+// exportMidi
+//---------------------------------------------------------
+
+void MusE::exportMidi()
+ {
+ MFile file(QString("midis"), QString(".mid"));
+
+ //FILE* fp = file.open("w", midi_file_pattern, this, false, true,
+ FILE* fp = file.open("w", midi_file_save_pattern, this, false, true,
+ tr("MusE: Export Midi"));
+ if (fp == 0)
+ return;
+ MidiFile mf(fp);
+
+ MidiTrackList* tl = song->midis();
+ int ntracks = tl->size();
+ MidiFileTrackList* mtl = new MidiFileTrackList;
+
+ int i = 0;
+ for (iMidiTrack im = tl->begin(); im != tl->end(); ++im, ++i) {
+ MidiTrack* track = *im;
+ MidiFileTrack* mft = new MidiFileTrack;
+ mtl->push_back(mft);
+ MPEventList* l = &(mft->events);
+ int port = track->outPort();
+ int channel = track->outChannel();
+
+ //---------------------------------------------------
+ // only first midi track contains
+ // - Track Marker
+ // - copyright
+ // - time signature
+ // - tempo map
+ // - GM/GS/XG Initialization
+ //---------------------------------------------------
+
+ if (i == 0) {
+ //---------------------------------------------------
+ // Write Track Marker
+ //
+ MarkerList* ml = song->marker();
+ for (ciMarker m = ml->begin(); m != ml->end(); ++m) {
+ const char* name = m->second.name().latin1();
+ int len = strlen(name);
+ MidiPlayEvent ev(m->first, port, ME_META, (unsigned char*)name, len);
+ ev.setA(0x6);
+ l->add(ev);
+ }
+
+ //---------------------------------------------------
+ // Write Copyright
+ //
+ const char* copyright = config.copyright.latin1();
+ if (copyright && *copyright) {
+ int len = strlen(copyright);
+ MidiPlayEvent ev(0, port, ME_META, (unsigned char*)copyright, len);
+ ev.setA(0x2);
+ l->add(ev);
+ }
+
+ //---------------------------------------------------
+ // Write Coment
+ //
+ QString comment = track->comment();
+ if (!comment.isEmpty()) {
+ int len = comment.length();
+ MidiPlayEvent ev(0, port, ME_META, (const unsigned char*)(comment.latin1()), len);
+ ev.setA(0x1);
+ l->add(ev);
+ }
+
+ //---------------------------------------------------
+ // Write Songtype SYSEX: GM/GS/XG
+ //
+
+ switch(song->mtype()) {
+ case MT_GM:
+ l->add(MidiPlayEvent(0, port, ME_SYSEX, gmOnMsg, gmOnMsgLen));
+ break;
+ case MT_GS:
+ l->add(MidiPlayEvent(0, port, ME_SYSEX, gmOnMsg, gmOnMsgLen));
+ l->add(MidiPlayEvent(250, port, ME_SYSEX, gsOnMsg, gsOnMsgLen));
+ break;
+ case MT_XG:
+ l->add(MidiPlayEvent(0, port, ME_SYSEX, gmOnMsg, gmOnMsgLen));
+ l->add(MidiPlayEvent(250, port, ME_SYSEX, xgOnMsg, xgOnMsgLen));
+ break;
+ case MT_UNKNOWN:
+ break;
+ }
+
+ //---------------------------------------------------
+ // Write Tempomap
+ //
+ TempoList* tl = &tempomap;
+ for (ciTEvent e = tl->begin(); e != tl->end(); ++e) {
+ 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;
+ MidiPlayEvent ev(event->tick, port, ME_META, data, 3);
+ ev.setA(0x51);
+ l->add(ev);
+ }
+
+ //---------------------------------------------------
+ // Write Signatures
+ //
+ const SigList* sl = &sigmap;
+ for (ciSigEvent e = sl->begin(); e != sl->end(); ++e) {
+ SigEvent* event = e->second;
+ int sz = (config.exp2ByteTimeSigs ? 2 : 4); // export 2 byte timesigs instead of 4 ?
+ unsigned char data[sz];
+ data[0] = event->z;
+ switch(event->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->n);
+ break;
+ }
+ // By T356. In muse the metronome pulse is fixed at 24 (once per quarter-note).
+ // The number of 32nd notes per 24 MIDI clock signals (per quarter-note) is 8.
+ if(!config.exp2ByteTimeSigs)
+ {
+ data[2] = 24;
+ data[3] = 8;
+ }
+
+ MidiPlayEvent ev(event->tick, port, ME_META, data, sz);
+
+ ev.setA(0x58);
+ l->add(ev);
+ }
+ }
+
+ //-----------------------------------
+ // track name
+ //-----------------------------------
+
+ if (!track->name().isEmpty()) {
+ const char* name = track->name().latin1();
+ int len = strlen(name);
+ MidiPlayEvent ev(0, port, ME_META, (unsigned char*)name, len+1);
+ ev.setA(0x3); // Meta Sequence/Track Name
+ l->add(ev);
+ }
+
+ //-----------------------------------
+ // track comment
+ //-----------------------------------
+
+ if (!track->comment().isEmpty()) {
+ const char* comment = track->comment().latin1();
+ int len = strlen(comment);
+ MidiPlayEvent ev(0, port, ME_META, (unsigned char*)comment, len+1);
+ ev.setA(0xf); // Meta Text
+ l->add(ev);
+ }
+ PartList* parts = track->parts();
+ for (iPart p = parts->begin(); p != parts->end(); ++p) {
+ MidiPart* part = (MidiPart*) (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;
+ if (track->type() == Track::DRUM) {
+ //
+ // Map drum-notes to the drum-map values
+ //
+ int instr = ev.pitch();
+ pitch = drumMap[instr].anote;
+ // port = drumMap[instr].port;
+ // channel = drumMap[instr].channel;
+ }
+ else
+ 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->add(MidiPlayEvent(tick, port, channel, ME_NOTEON, pitch, velo));
+
+ if(config.expOptimNoteOffs) // Save space by replacing note offs with note on velocity 0
+ l->add(MidiPlayEvent(tick+len, port, channel, ME_NOTEON, pitch, 0));
+ else
+ l->add(MidiPlayEvent(tick+len, port, channel, ME_NOTEOFF, pitch, velo));
+ }
+ break;
+
+ case Controller:
+ addController(l, tick, port, channel, ev.dataA(), ev.dataB());
+ break;
+
+ case Sysex:
+ l->add(MidiPlayEvent(tick, port, ME_SYSEX, ev.eventData()));
+ break;
+
+ case PAfter:
+ l->add(MidiPlayEvent(tick, port, channel, ME_AFTERTOUCH, ev.dataA(), ev.dataB()));
+ break;
+
+ case CAfter:
+ l->add(MidiPlayEvent(tick, port, channel, ME_POLYAFTER, ev.dataA(), ev.dataB()));
+ break;
+
+ case Meta:
+ {
+ MidiPlayEvent mpev(tick, port, ME_META, ev.eventData());
+ mpev.setA(ev.dataA());
+ l->add(mpev);
+ }
+ break;
+ case Wave:
+ break;
+ }
+ }
+ }
+ }
+ mf.setDivision(config.midiDivision);
+ mf.setMType(song->mtype());
+ mf.setTrackList(mtl, ntracks);
+ mf.write();
+ }
+
diff --git a/muse2/muse/fastlog.h b/muse2/muse/fastlog.h
new file mode 100644
index 00000000..23710a8b
--- /dev/null
+++ b/muse2/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/muse2/muse/gconfig.cpp b/muse2/muse/gconfig.cpp
new file mode 100644
index 00000000..be92b6aa
--- /dev/null
+++ b/muse2/muse/gconfig.cpp
@@ -0,0 +1,135 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: gconfig.cpp,v 1.15.2.13 2009/12/01 03:52:40 terminator356 Exp $
+//
+// (C) Copyright 1999-2003 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include "gconfig.h"
+
+GlobalConfigValues config = {
+ {
+ QColor(0xff, 0xff, 0xff), // palette
+ QColor(0xff, 0xff, 0xff),
+ QColor(0xff, 0xff, 0xff),
+ QColor(0xff, 0xff, 0xff),
+ QColor(0xff, 0xff, 0xff),
+ QColor(0xff, 0xff, 0xff),
+ QColor(0xff, 0xff, 0xff),
+ QColor(0xff, 0xff, 0xff),
+ QColor(0xff, 0xff, 0xff),
+ QColor(0xff, 0xff, 0xff),
+ QColor(0xff, 0xff, 0xff),
+ QColor(0xff, 0xff, 0xff),
+ QColor(0xff, 0xff, 0xff),
+ QColor(0xff, 0xff, 0xff),
+ QColor(0xff, 0xff, 0xff),
+ QColor(0xff, 0xff, 0xff)
+ },
+ {
+ 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(0, 0, 255), // transportHandleColor;
+ QColor(255, 0, 0), // bigTimeForegroundColor;
+ QColor(0, 0, 0), // bigTimeBackgroundColor;
+ QColor(200, 200, 200), // waveEditBackgroundColor;
+ {
+ QFont(QString("arial"), 10, QFont::Normal),
+ QFont(QString("arial"), 8, QFont::Normal),
+ QFont(QString("arial"), 10, QFont::Normal),
+ QFont(QString("arial"), 10, QFont::Bold),
+ QFont(QString("arial"), 8, QFont::Bold), // timescale numbers
+ QFont(QString("Lucidatypewriter"), 14, QFont::Bold),
+ QFont(QString("arial"), 8, QFont::Bold, true) // Mixer strip labels. Looks and fits better with bold + italic than bold alone,
+ // at the price of only few more pixels than Normal mode.
+ },
+ QColor(84, 97, 114), // trackBg;
+ QColor(0x80, 0xff, 0x80), // selected track Bg;
+ QColor(0x00, 0x00, 0x00), // selected track Fg;
+ QColor(220, 220, 220), // midiTrackBg;
+ QColor(255, 170, 0), // ctrlGraphFg; Medium orange
+ QColor(220, 220, 220), // drumTrackBg;
+ QColor(220, 220, 220), // waveTrackBg;
+ QColor(189, 220, 193), // outputTrackBg;
+ QColor(189, 220, 193), // inputTrackBg;
+ QColor(220, 220, 220), // groupTrackBg;
+ QColor(220, 220, 220), // auxTrackBg;
+ QColor(220, 220, 220), // synthTrackBg;
+ QColor(98, 124, 168), // part canvas bg
+ QColor(0, 0, 0), // mixerBg;
+
+ 384, // division;
+ 1024, // rtcTicks
+ -60, // int minMeter;
+ -60.0, // double minSlider;
+ false, // use Jack freewheel
+ 20, // int guiRefresh;
+ QString(""), // helpBrowser
+ true, // extendedMidi
+ 384, // division for smf export
+ QString(""), // copyright string for smf export
+ 1, // smf export file format
+ false, // midi export file 2 byte timesigs instead of 4
+ true, // optimize midi export file note offs
+ true, // Split imported tracks into multiple parts.
+ 1, // startMode
+ QString(""), // start song path
+ 384, // gui division
+ QRect(0, 0, 400, 300), // GeometryMain;
+ QRect(0, 0, 200, 100), // GeometryTransport;
+ QRect(0, 0, 600, 200), // GeometryBigTime;
+ QRect(0, 0, 400, 300), // GeometryPianoroll;
+ QRect(0, 0, 400, 300), // GeometryDrumedit;
+ //QRect(0, 0, 300, 500), // GeometryMixer; // Obsolete
+ {
+ QString("Mixer A"),
+ QRect(0, 0, 300, 500), // Mixer1
+ true, true, true, true,
+ true, true, true, true
+ },
+ {
+ QString("Mixer B"),
+ QRect(200, 200, 300, 500), // Mixer2
+ true, true, true, true,
+ true, true, true, true
+ },
+ true, // TransportVisible;
+ false, // BigTimeVisible;
+ false, // mixer1Visible;
+ false, // mixer2Visible;
+
+ false, // markerVisible;
+ true, // showSplashScreen
+ 1, // canvasShowPartType 1 - names, 2 events
+ 5, // canvasShowPartEvent
+ true, // canvasShowGrid;
+ QString(""), // canvasBgPixmap;
+ QString(""), // style
+ QString("sweep"), // externalWavEditor
+ false, // useOldStyleStopShortCut
+ true, // moveArmedCheckBox
+ true, // useDenormalBias
+ false, // useOutputLimiter
+ true, // showDidYouKnow
+ false, // vstInPlace Enable VST in-place processing
+ 44100, // Dummy audio preferred sample rate
+ 512 // Dummy audio buffer size
+ };
+
diff --git a/muse2/muse/gconfig.h b/muse2/muse/gconfig.h
new file mode 100644
index 00000000..454ed05d
--- /dev/null
+++ b/muse2/muse/gconfig.h
@@ -0,0 +1,132 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: gconfig.h,v 1.12.2.10 2009/12/01 03:52:40 terminator356 Exp $
+//
+// (C) Copyright 1999-2003 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __CONFIG_H__
+#define __CONFIG_H__
+
+#include <qcolor.h>
+#include <qfont.h>
+#include <qstring.h>
+#include <qrect.h>
+
+#define NUM_PARTCOLORS 17
+#define NUM_FONTS 7
+
+class Xml;
+
+//---------------------------------------------------------
+// MixerConfig
+//---------------------------------------------------------
+
+struct MixerConfig {
+ QString name;
+ QRect geometry;
+ bool showMidiTracks;
+ bool showDrumTracks;
+ bool showInputTracks;
+ bool showOutputTracks;
+ bool showWaveTracks;
+ bool showGroupTracks;
+ bool showAuxTracks;
+ bool showSyntiTracks;
+
+ //void write(Xml&, const char* name);
+ //void write(int level, Xml& xml, const char* name);
+ void write(int level, Xml& xml);
+ //void read(QDomNode);
+ //void read(Xml& xml, const QString& name);
+ void read(Xml& xml);
+ };
+
+//---------------------------------------------------------
+// GlobalConfigValues
+//---------------------------------------------------------
+
+struct GlobalConfigValues {
+ QColor palette[16];
+ QColor partColors[NUM_PARTCOLORS];
+ QColor transportHandleColor;
+ QColor bigTimeForegroundColor;
+ QColor bigTimeBackgroundColor;
+ QColor waveEditBackgroundColor;
+ //QFont fonts[6];
+ QFont fonts[NUM_FONTS];
+ QColor trackBg;
+ QColor selectTrackBg;
+ QColor selectTrackFg;
+ QColor midiTrackBg;
+ QColor ctrlGraphFg;
+ QColor drumTrackBg;
+ QColor waveTrackBg;
+ QColor outputTrackBg;
+ QColor inputTrackBg;
+ QColor groupTrackBg;
+ QColor auxTrackBg;
+ QColor synthTrackBg;
+ QColor partCanvasBg;
+ QColor mixerBg;
+
+ int division;
+ int rtcTicks;
+ int minMeter;
+ double minSlider;
+ bool freewheelMode;
+ int guiRefresh;
+ 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
+ bool exp2ByteTimeSigs; // Export 2 byte time sigs instead of 4 bytes
+ bool expOptimNoteOffs; // Save space by replacing note offs with note on velocity 0
+ bool importMidiSplitParts; // Split imported tracks into multiple parts.
+
+ int startMode; // 0 - start with last song
+ // 1 - start with default template
+ // 2 - start with song
+ QString startSong; // path for start song
+ int guiDivision; // division for tick display
+
+ QRect geometryMain;
+ QRect geometryTransport;
+ QRect geometryBigTime;
+ QRect geometryPianoroll;
+ QRect geometryDrumedit;
+// QRect geometryMixer;
+ MixerConfig mixer1;
+ MixerConfig mixer2;
+ bool transportVisible;
+ bool bigTimeVisible;
+// bool mixerVisible;
+ bool mixer1Visible;
+ bool mixer2Visible;
+ bool markerVisible;
+
+ bool showSplashScreen;
+ int canvasShowPartType; // 1 - names, 2 events
+ int canvasShowPartEvent; //
+ bool canvasShowGrid;
+ QString canvasBgPixmap;
+ QString style;
+
+ QString externalWavEditor;
+ bool useOldStyleStopShortCut;
+ bool moveArmedCheckBox;
+ bool useDenormalBias;
+ bool useOutputLimiter;
+ bool showDidYouKnow;
+ bool vstInPlace; // Enable VST in-place processing
+ int dummyAudioSampleRate;
+ int dummyAudioBufSize;
+ };
+
+extern GlobalConfigValues config;
+
+#endif
+
diff --git a/muse2/muse/givertcap.c b/muse2/muse/givertcap.c
new file mode 100644
index 00000000..2511bc6c
--- /dev/null
+++ b/muse2/muse/givertcap.c
@@ -0,0 +1,94 @@
+/*
+ * COPYRIGHT
+ *
+ * This file is part of Mustajuuri GPL modules. You may distribute it
+ * with or without other Mustajuuri components.
+ *
+ * Author: Tommi Ilmonen, 2001.
+ * Tommi.Ilmonen@hut.fi
+ *
+ * http://www.tml.hut.fi/~tilmonen/mustajuuri/
+
+ * This app also has its own home page at (installation instruction
+ * etc.): http://www.tml.hut.fi/~tilmonen/givertcap/
+
+ * This file is licensed under the GNU Public License (GPL) version
+ * 2. The GPL can also be found from the givertcap home page. Any
+ * application may call civertcap (regardless of the license of the
+ * calling application).
+
+ * If you want a parallel license (for commercial reasons for example),
+ * you should negotiate the matter with the author(s).
+ *
+ */
+
+#include <stdio.h>
+#include <sys/types.h>
+#include <unistd.h>
+
+#undef _POSIX_SOURCE
+#include <sys/capability.h>
+/* If the compilation fails on the preceding line, then you probably
+ do not have the libcap installed.
+
+*/
+
+static void usage(const char *programName)
+{
+ fprintf(stderr,
+ "usage: %s \n\n"
+ " This program gives real-time application capabilities to the"
+ " parent process\n\n"
+ "[Copyright (c) 2001 Tommi Ilmonen <Tommi.Ilmonen@hut.fi>]\n"
+ "Home page: http://www.tml.hut.fi/~tilmonen/givertcap/\n",
+ programName);
+}
+
+int main(int argc, char **argv)
+{
+ if(argc > 1) {
+ usage(argv[0]);
+ return 1;
+ }
+
+ pid_t parentPid = getppid();
+
+ if(!parentPid)
+ return 1;
+
+ cap_t caps = cap_init();
+
+#define nofCaps 3
+
+ /* We need these capabilities:
+
+ CAP_SYS_NICE -> Real-time priority
+ CAP_SYS_RESOURCE -> RTC above 64 Hz
+ CAP_IPC_LOCK -> mlockall
+ */
+
+ cap_value_t capList[nofCaps] =
+ { CAP_SYS_NICE, CAP_SYS_RESOURCE, CAP_IPC_LOCK} ;
+
+ cap_clear(caps);
+ cap_set_flag(caps, CAP_EFFECTIVE, nofCaps, capList , CAP_SET);
+ cap_set_flag(caps, CAP_INHERITABLE, nofCaps, capList , CAP_SET);
+ cap_set_flag(caps, CAP_PERMITTED, nofCaps, capList , CAP_SET);
+
+ /* If your COMPILATION FAILS here then you probably are not running
+ Linux. the function "capsetp" is not part of the POSIX capability
+ standard, but a Linux-specific extension. */
+ if (capsetp(parentPid, caps)) {
+ perror("mjsucaps: capsetp");
+ return 1;
+ }
+
+ ssize_t x;
+// printf("The process %d was give capabilities %s\n",
+// (int) parentPid, cap_to_text(caps, &x));
+ fflush(0);
+
+ // Don't bother to free the memory...
+
+ return 0;
+}
diff --git a/muse2/muse/globaldefs.h b/muse2/muse/globaldefs.h
new file mode 100644
index 00000000..06661771
--- /dev/null
+++ b/muse2/muse/globaldefs.h
@@ -0,0 +1,34 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: globaldefs.h,v 1.3.2.1 2009/05/03 04:14:00 terminator356 Exp $
+//
+// (C) Copyright 2000 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __GLOBALDEFS_H__
+#define __GLOBALDEFS_H__
+
+// Midi Type
+// MT_GM - General Midi
+// MT_GS - Roland GS
+// MT_XG - Yamaha XG
+
+enum MType { MT_UNKNOWN=0, MT_GM, MT_GS, MT_XG };
+
+enum AutomationType {
+ AUTO_OFF, AUTO_READ, AUTO_TOUCH, AUTO_WRITE
+ };
+
+const int MAX_CHANNELS = 2; // max audio channels
+const int MAX_PLUGINS = 4; // plugins in mixer rack
+
+//const int MIDI_PORTS = 32; // max Number of Midi Ports
+const int MIDI_PORTS = 128; // max Number of Midi Ports
+
+#ifndef MIDI_CHANNELS
+#define MIDI_CHANNELS 16 // Channels per Port
+#endif
+
+#endif
+
diff --git a/muse2/muse/globals.cpp b/muse2/muse/globals.cpp
new file mode 100644
index 00000000..4e57cafd
--- /dev/null
+++ b/muse2/muse/globals.cpp
@@ -0,0 +1,396 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: globals.cpp,v 1.15.2.11 2009/11/25 09:09:43 terminator356 Exp $
+//
+// (C) Copyright 1999-2004 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include <stdio.h>
+#include <qpixmap.h>
+//Added by qt3to4:
+#include <Q3ActionGroup>
+#include <errno.h>
+#include <unistd.h>
+#include <stdlib.h>
+#include <qobject.h>
+#include "globals.h"
+#include "config.h"
+
+int recFileNumber = 1;
+
+int sampleRate = 44100;
+unsigned segmentSize = 1024U; // segmentSize in frames (set by JACK)
+unsigned fifoLength = 128; // 131072/segmentSize
+ // 131072 - magic number that gives a sufficient buffer size
+int segmentCount = 2;
+
+// denormal bias value used to eliminate the manifestation of denormals by
+// lifting the zero level slightly above zero
+// denormal problems occur when values get extremely close to zero
+const float denormalBias=1e-18;
+
+bool overrideAudioOutput = false;
+bool overrideAudioInput = false;
+
+QTimer* heartBeatTimer;
+
+bool hIsB = true; // call note h "b"
+
+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 museProject;
+QString museProjectInitPath("./");
+QString configName;
+QString museInstruments;
+QString museUserInstruments;
+
+QString lastWavePath(".");
+QString lastMidiPath(".");
+
+bool debugMode = false;
+bool debugMsg = false;
+bool midiInputTrace = false;
+bool midiOutputTrace = false;
+bool realTimeScheduling = false;
+int realTimePriority = 40; // 80
+int midiRTPrioOverride = -1;
+bool loadPlugins = true;
+bool loadVST = true;
+bool loadDSSI = true;
+bool usePythonBridge = false;
+bool useLASH = true;
+
+/*
+const char* midi_file_pattern[] = {
+ QT_TR_NOOP("Midi/Kar (*.mid *.MID *.kar *.KAR *.mid.gz *.mid.bz2)"),
+ QT_TR_NOOP("Midi (*.mid *.MID *.mid.gz *.mid.bz2)"),
+ QT_TR_NOOP("Karaoke (*.kar *.KAR *.kar.gz *.kar.bz2)"),
+ QT_TR_NOOP("All Files (*)"),
+ 0
+ };
+*/
+const QStringList midi_file_pattern =
+ QStringList::split(";;", QT_TR_NOOP(
+ QString("Midi/Kar (*.mid *.MID *.kar *.KAR *.mid.gz *.mid.bz2);;") +
+ QString("Midi (*.mid *.MID *.mid.gz *.mid.bz2);;") +
+ QString("Karaoke (*.kar *.KAR *.kar.gz *.kar.bz2);;") +
+ QString("All Files (*)")) );
+
+//FIXME: By T356 01/19/2010
+// If saving as a compressed file (gz or bz2),
+// the file is a pipe, and pipes can't seek !
+// This results in a corrupted midi file from MidiFile::writeTrack().
+// So exporting compressed midi has simply been disabled here for now...
+/*
+const char* midi_file_save_pattern[] = {
+ "Midi (*.mid)",
+ "gzip compressed Midi (*.mid.gz)",
+ "bzip2 compressed Midi (*.mid.bz2)",
+ "Karaoke (*.kar)",
+ "gzip compressed karaoke (*.kar.gz)",
+ "bzip2 compressed karaoke (*.kar.bz2)",
+ "All Files (*)",
+ 0
+ };
+QStringList midi_file_save_pattern =
+ QStringList::split(";;", QT_TR_NOOP(
+ QString("Midi (*.mid);;") +
+ QString("gzip compressed Midi (*.mid.gz);;") +
+ QString("bzip2 compressed Midi (*.mid.bz2);;") +
+ QString("Karaoke (*.kar);;") +
+ QString("gzip compressed karaoke (*.kar.gz);;") +
+ QString("bzip2 compressed karaoke (*.kar.bz2);;") +
+ QString("All Files (*)")) );
+*/
+/*
+const char* midi_file_save_pattern[] = {
+ QT_TR_NOOP("Midi (*.mid)"),
+ QT_TR_NOOP("Karaoke (*.kar)"),
+ QT_TR_NOOP("All Files (*)"),
+ 0
+ };
+*/
+const QStringList midi_file_save_pattern =
+ QStringList::split(";;", QT_TR_NOOP(
+ QString("Midi (*.mid);;") +
+ QString("Karaoke (*.kar);;") +
+ QString("All Files (*)")) );
+
+/*
+const char* med_file_pattern[] = {
+ QT_TR_NOOP("med Files (*.med *.med.gz *.med.bz2)"),
+ QT_TR_NOOP("Uncompressed med Files (*.med)"),
+ QT_TR_NOOP("gzip compressed med Files (*.med.gz)"),
+ QT_TR_NOOP("bzip2 compressed med Files (*.med.bz2)"),
+ QT_TR_NOOP("All Files (*)"),
+ 0
+ };
+const char* med_file_save_pattern[] = {
+ QT_TR_NOOP("Uncompressed med Files (*.med)"),
+ QT_TR_NOOP("gzip compressed med Files (*.med.gz)"),
+ QT_TR_NOOP("bzip2 compressed med Files (*.med.bz2)"),
+ QT_TR_NOOP("All Files (*)"),
+ 0
+ };
+*/
+const QStringList med_file_pattern =
+ QStringList::split(";;", QT_TR_NOOP(
+ QString("med Files (*.med *.med.gz *.med.bz2);;") +
+ QString("Uncompressed med Files (*.med);;") +
+ QString("gzip compressed med Files (*.med.gz);;") +
+ QString("bzip2 compressed med Files (*.med.bz2);;") +
+ QString("All Files (*)")) );
+const QStringList med_file_save_pattern =
+ QStringList::split(";;", QT_TR_NOOP(
+ QString("Uncompressed med Files (*.med);;") +
+ QString("gzip compressed med Files (*.med.gz);;") +
+ QString("bzip2 compressed med Files (*.med.bz2);;") +
+ QString("All Files (*)")) );
+
+/*
+const char* image_file_pattern[] = {
+ QT_TR_NOOP("(*.jpg *.gif *.png)"),
+ QT_TR_NOOP("(*.jpg)"),
+ QT_TR_NOOP("(*.gif)"),
+ QT_TR_NOOP("(*.png)"),
+ QT_TR_NOOP("All Files (*)"),
+ 0
+ };
+*/
+const QStringList image_file_pattern =
+ QStringList::split(";;", QT_TR_NOOP(
+ QString("(*.jpg *.gif *.png);;") +
+ QString("(*.jpg);;") +
+ QString("(*.gif);;") +
+ QString("(*.png);;") +
+ QString("All Files (*)")) );
+
+// Not used.
+/*
+const char* ctrl_file_pattern[] = {
+ "ctrl Files (*.ctrl *.ctrl.gz *.ctrl.bz2)",
+ "All Files (*)",
+ 0
+ };
+*/
+
+/*
+const char* part_file_pattern[] = {
+ //QT_TR_NOOP("part Files (*.mpt)"),
+ QT_TR_NOOP("part Files (*.mpt *.mpt.gz *.mpt.bz2)"),
+ QT_TR_NOOP("All Files (*)"),
+ 0
+ };
+const char* part_file_save_pattern[] = {
+ QT_TR_NOOP("part Files (*.mpt)"),
+ QT_TR_NOOP("gzip compressed part Files (*.mpt.gz)"),
+ QT_TR_NOOP("bzip2 compressed part Files (*.mpt.bz2)"),
+ QT_TR_NOOP("All Files (*)"),
+ 0
+ };
+*/
+const QStringList part_file_pattern =
+ QStringList::split(";;", QT_TR_NOOP(
+ QString("part Files (*.mpt *.mpt.gz *.mpt.bz2);;") +
+ QString("All Files (*)")) );
+
+const QStringList part_file_save_pattern =
+ QStringList::split(";;", QT_TR_NOOP(
+ QString("part Files (*.mpt);;") +
+ QString("gzip compressed part Files (*.mpt.gz);;") +
+ QString("bzip2 compressed part Files (*.mpt.bz2);;") +
+ QString("All Files (*)")) );
+
+/*
+const char* plug_file_pattern[] = {
+ QT_TR_NOOP("part Files (*.pre)"),
+ QT_TR_NOOP("All Files (*)"),
+ 0
+ };
+*/
+/*
+const char* preset_file_pattern[] = {
+ QT_TR_NOOP("Presets (*.pre *.pre.gz *.pre.bz2)"),
+ QT_TR_NOOP("All Files (*)"),
+ 0
+ };
+
+const char* preset_file_save_pattern[] = {
+ QT_TR_NOOP("Presets (*.pre)"),
+ QT_TR_NOOP("gzip compressed presets (*.pre.gz)"),
+ QT_TR_NOOP("bzip2 compressed presets (*.pre.bz2)"),
+ QT_TR_NOOP("All Files (*)"),
+ 0
+ };
+*/
+const QStringList preset_file_pattern =
+ QStringList::split(";;", QT_TR_NOOP(
+ QString("Presets (*.pre *.pre.gz *.pre.bz2);;") +
+ QString("All Files (*)")) );
+
+const QStringList preset_file_save_pattern =
+ QStringList::split(";;", QT_TR_NOOP(
+ QString("Presets (*.pre);;") +
+ QString("gzip compressed presets (*.pre.gz);;") +
+ QString("bzip2 compressed presets (*.pre.bz2);;") +
+ QString("All Files (*)")) );
+
+const QStringList drum_map_file_pattern =
+ QStringList::split(";;", QT_TR_NOOP(
+ QString("Presets (*.map *.map.gz *.map.bz2);;") +
+ QString("All Files (*)")) );
+const QStringList drum_map_file_save_pattern =
+ QStringList::split(";;", QT_TR_NOOP(
+ QString("Presets (*.map);;") +
+ QString("gzip compressed presets (*.map.gz);;") +
+ QString("bzip2 compressed presets (*.map.bz2);;") +
+ QString("All Files (*)")) );
+
+const QStringList audio_file_pattern =
+ QStringList::split(";;", QT_TR_NOOP(
+ QString("Wave/Binary (*.wav *.ogg *.bin);;") +
+ QString("Wave (*.wav *.ogg);;") +
+ QString("Binary (*.bin);;") +
+ QString("All Files (*)")) );
+
+Qt::ButtonState globalKeyState;
+
+// Midi Filter Parameter
+int midiInputPorts = 0; // receive from all devices
+int midiInputChannel = 0; // receive all channel
+int midiRecordType = 0; // receive all events
+int midiThruType = 0; // transmit all events
+int midiFilterCtrl1 = 0;
+int midiFilterCtrl2 = 0;
+int midiFilterCtrl3 = 0;
+int midiFilterCtrl4 = 0;
+
+Q3ActionGroup* undoRedo;
+Q3Action* undoAction;
+Q3Action* redoAction;
+Q3ActionGroup* transportAction;
+Q3Action* playAction;
+Q3Action* startAction;
+Q3Action* stopAction;
+Q3Action* rewindAction;
+Q3Action* forwardAction;
+Q3Action* loopAction;
+Q3Action* punchinAction;
+Q3Action* punchoutAction;
+Q3Action* recordAction;
+Q3Action* panicAction;
+
+//AudioMixerApp* audioMixer;
+MusE* muse;
+
+int preMeasures = 2;
+unsigned char measureClickNote = 63;
+unsigned char measureClickVelo = 127;
+unsigned char beatClickNote = 63;
+unsigned char beatClickVelo = 70;
+unsigned char clickChan = 9;
+unsigned char clickPort = 0;
+bool precountEnableFlag = false;
+bool precountFromMastertrackFlag = false;
+int precountSigZ = 4;
+int precountSigN = 4;
+bool precountPrerecord = false;
+bool precountPreroll = false;
+bool midiClickFlag = true;
+bool audioClickFlag = true;
+float audioClickVolume = 0.5f;
+
+bool rcEnable = false;
+unsigned char rcStopNote = 28;
+unsigned char rcRecordNote = 31;
+unsigned char rcGotoLeftMarkNote = 33;
+unsigned char rcPlayNote = 29;
+bool automation = true;
+
+QObject* gRoutingPopupMenuMaster = 0;
+RouteMenuMap gRoutingMenuMap;
+bool gIsOutRoutingPopupMenu = false;
+
+uid_t euid, ruid; // effective user id, real user id
+
+bool midiSeqRunning = false;
+
+//---------------------------------------------------------
+// doSetuid
+// Restore the effective UID to its original value.
+//---------------------------------------------------------
+
+void doSetuid()
+ {
+#ifndef RTCAP
+ int status;
+#ifdef _POSIX_SAVED_IDS
+ status = seteuid (euid);
+#else
+ status = setreuid (ruid, euid);
+#endif
+ if (status < 0) {
+ perror("doSetuid: Couldn't set uid");
+ }
+#endif
+ }
+
+//---------------------------------------------------------
+// undoSetuid
+// Set the effective UID to the real UID.
+//---------------------------------------------------------
+
+void undoSetuid()
+ {
+#ifndef RTCAP
+ int status;
+
+#ifdef _POSIX_SAVED_IDS
+ status = seteuid (ruid);
+#else
+ status = setreuid (euid, ruid);
+#endif
+ if (status < 0) {
+ fprintf(stderr, "undoSetuid: Couldn't set uid (eff:%d,real:%d): %s\n",
+ euid, ruid, strerror(errno));
+ exit (status);
+ }
+#endif
+ }
+
diff --git a/muse2/muse/globals.h b/muse2/muse/globals.h
new file mode 100644
index 00000000..5fdaf754
--- /dev/null
+++ b/muse2/muse/globals.h
@@ -0,0 +1,192 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: globals.h,v 1.10.2.11 2009/11/25 09:09:43 terminator356 Exp $
+//
+// (C) Copyright 1999/2000 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef GLOBALS_H
+#define GLOBALS_H
+
+#include <sys/types.h>
+//#include <qstring.h>
+//#include <qfont.h>
+//#include <qnamespace.h>
+//Added by qt3to4:
+#include <Q3ActionGroup>
+#include <Qt3Support>
+//#include <qaction.h>
+#include "value.h"
+#include "mtc.h"
+#include "route.h"
+
+#include <unistd.h>
+
+class QString;
+class QFont;
+class QAction;
+class Q3ActionGroup;
+class QStringList;
+
+extern const float denormalBias;
+
+extern int recFileNumber;
+
+extern int sampleRate;
+extern unsigned segmentSize;
+extern unsigned fifoLength; // inversely proportional to segmentSize
+extern int segmentCount;
+
+extern bool overrideAudioOutput;
+extern bool overrideAudioInput;
+
+class QTimer;
+extern QTimer* heartBeatTimer;
+
+extern bool hIsB;
+
+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 museProject;
+extern QString museProjectInitPath;
+extern QString configName;
+extern QString museInstruments;
+extern QString museUserInstruments;
+
+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 usePythonBridge;
+extern bool useLASH;
+
+extern bool realTimeScheduling;
+extern int realTimePriority;
+extern int midiRTPrioOverride;
+
+/*
+extern const char* midi_file_pattern[]; //!< File name pattern for midi files
+extern const char* midi_file_save_pattern[]; //!< File name pattern for saving midi files
+extern const char* med_file_pattern[]; //!< File name pattern for muse project files
+extern const char* med_file_save_pattern[]; //!< File name pattern for saving muse project files
+extern const char* image_file_pattern[]; //!< File name pattern for image files (gfx)
+//extern const char* ctrl_file_pattern[]; //!< File name pattern for controller-files
+extern const char* part_file_pattern[]; //!< File name pattern for part files
+extern const char* part_file_save_pattern[]; //!< File name pattern for saving part files
+//extern const char* plug_file_pattern[]; //!< File name pattern for plugin files
+extern const char* preset_file_pattern[]; //!< File name pattern for plugin files
+extern const char* preset_file_save_pattern[]; //!< File name pattern for saving plugin files
+*/
+
+extern const QStringList midi_file_pattern;
+extern const QStringList midi_file_save_pattern;
+extern const QStringList med_file_pattern;
+extern const QStringList med_file_save_pattern;
+extern const QStringList image_file_pattern;
+//extern const QStringList ctrl_file_pattern;
+extern const QStringList part_file_pattern;
+extern const QStringList part_file_save_pattern;
+extern const QStringList preset_file_pattern;
+extern const QStringList preset_file_save_pattern;
+extern const QStringList drum_map_file_pattern;
+extern const QStringList drum_map_file_save_pattern;
+extern const QStringList audio_file_pattern;
+
+extern Qt::ButtonState globalKeyState;
+
+extern int midiInputPorts; //!< receive from all devices
+extern int midiInputChannel; //!< receive all channel
+extern int midiRecordType; //!< receive all events
+
+#define MIDI_FILTER_NOTEON 1
+#define MIDI_FILTER_POLYP 2
+#define MIDI_FILTER_CTRL 4
+#define MIDI_FILTER_PROGRAM 8
+#define MIDI_FILTER_AT 16
+#define MIDI_FILTER_PITCH 32
+#define MIDI_FILTER_SYSEX 64
+
+extern int midiThruType; // transmit all events
+extern int midiFilterCtrl1;
+extern int midiFilterCtrl2;
+extern int midiFilterCtrl3;
+extern int midiFilterCtrl4;
+
+#define CMD_RANGE_ALL 0
+#define CMD_RANGE_SELECTED 1
+#define CMD_RANGE_LOOP 2
+
+extern Q3ActionGroup* undoRedo;
+extern Q3Action* undoAction;
+extern Q3Action* redoAction;
+
+extern Q3ActionGroup* transportAction;
+extern Q3Action* playAction;
+extern Q3Action* startAction;
+extern Q3Action* stopAction;
+extern Q3Action* rewindAction;
+extern Q3Action* forwardAction;
+extern Q3Action* loopAction;
+extern Q3Action* punchinAction;
+extern Q3Action* punchoutAction;
+extern Q3Action* recordAction;
+extern Q3Action* panicAction;
+
+//class AudioMixerApp;
+class MusE;
+//extern AudioMixerApp* audioMixer;
+extern MusE* muse;
+
+extern int preMeasures;
+extern unsigned char measureClickNote;
+extern unsigned char measureClickVelo;
+extern unsigned char beatClickNote;
+extern unsigned char beatClickVelo;
+extern unsigned char clickChan;
+extern unsigned char clickPort;
+extern bool precountEnableFlag;
+extern bool precountFromMastertrackFlag;
+extern int precountSigZ;
+extern int precountSigN;
+extern bool precountPrerecord;
+extern bool precountPreroll;
+extern bool midiClickFlag;
+extern bool audioClickFlag;
+extern float audioClickVolume;
+
+extern bool rcEnable;
+extern unsigned char rcStopNote;
+extern unsigned char rcRecordNote;
+extern unsigned char rcGotoLeftMarkNote;
+extern unsigned char rcPlayNote;
+
+extern bool midiSeqRunning;
+extern bool automation;
+
+class QObject;
+// Which audio strip, midi strip, or midi track info strip
+// was responsible for popping up the routing menu.
+extern QObject* gRoutingPopupMenuMaster;
+// Map of routing popup menu item IDs to Routes.
+extern RouteMenuMap gRoutingMenuMap;
+// Whether the routes popup was shown by clicking the output routes button, or input routes button.
+extern bool gIsOutRoutingPopupMenu;
+
+extern uid_t euid, ruid;
+extern void doSetuid();
+extern void undoSetuid();
+extern bool checkAudioDevice();
+#endif
+
diff --git a/muse2/muse/help.cpp b/muse2/muse/help.cpp
new file mode 100644
index 00000000..82d900f1
--- /dev/null
+++ b/muse2/muse/help.cpp
@@ -0,0 +1,112 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: help.cpp,v 1.7.2.4 2009/07/05 23:06:21 terminator356 Exp $
+//
+// (C) Copyright 1999/2000 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include <unistd.h>
+#include <stdlib.h>
+#include <qmessagebox.h>
+#include <q3process.h>
+
+#include "app.h"
+#include "globals.h"
+#include "gconfig.h"
+#include "icons.h"
+#include "aboutbox_impl.h"
+
+//---------------------------------------------------------
+// startHelpBrowser
+//---------------------------------------------------------
+
+void MusE::startHelpBrowser()
+ {
+ QString lang(getenv("LANG"));
+ QString museHelp = museGlobalShare + QString("/html/index_") + lang + QString(".html");
+ if (access(museHelp.latin1(), R_OK) != 0) {
+ museHelp = museGlobalShare + QString("/html/index.html");
+ if (access(museHelp.latin1(), R_OK) != 0) {
+ QString info(tr("no help found at: "));
+ info += museHelp;
+ QMessageBox::critical(this, tr("MusE: Open Help"), info);
+ return;
+ }
+ }
+ launchBrowser(museHelp);
+ }
+
+//---------------------------------------------------------
+// startHelpBrowser
+//---------------------------------------------------------
+
+void MusE::startHomepageBrowser()
+ {
+ QString museHome = QString("http://www.muse-sequencer.org");
+
+ launchBrowser(museHome);
+ }
+
+//---------------------------------------------------------
+// startBugBrowser
+//---------------------------------------------------------
+
+void MusE::startBugBrowser()
+ {
+ //QString museBugPage("http://www.muse-sequencer.org/wiki/index.php/Report_a_bug");
+ QString museBugPage("http://www.muse-sequencer.org/index.php/Report_a_bug");
+ launchBrowser(museBugPage);
+ }
+
+//---------------------------------------------------------
+// about
+//---------------------------------------------------------
+
+void MusE::about()
+ {
+ AboutBoxImpl ab;
+ ab.show();
+ ab.exec();
+ }
+
+//---------------------------------------------------------
+// aboutQt
+//---------------------------------------------------------
+
+void MusE::aboutQt()
+ {
+ QMessageBox::aboutQt(this, QString("MusE"));
+ }
+
+void MusE::launchBrowser(QString &whereTo)
+ {
+ char testStr[40];
+ strcpy(testStr, "which ");
+ strcat(testStr, config.helpBrowser.latin1());
+ if (config.helpBrowser == "" || system(testStr))
+ {
+ QMessageBox::information( this, "Unable to launch help",
+ "For some reason MusE has failed to detect or launch\n"
+ "a browser on your machine. Please go to Settings->Global Settings->GUI\n"
+ "and insert the program name of your favourite browser.",
+ "Ok",
+ 0 );
+ return;
+ }
+
+ QString exe = QString("/bin/sh");
+ if(QFile::exists(exe))
+ {
+ Q3Process helper(this);
+ helper.addArgument(exe);
+ helper.addArgument("-c");
+ helper.addArgument(config.helpBrowser + " " + whereTo);
+ helper.start();
+ }
+ else
+ {
+ printf("Unable to launch help\n");
+ }
+
+ }
diff --git a/muse2/muse/helper.cpp b/muse2/muse/helper.cpp
new file mode 100644
index 00000000..605d6f5c
--- /dev/null
+++ b/muse2/muse/helper.cpp
@@ -0,0 +1,40 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: helper.cpp,v 1.1.1.1 2003/10/27 18:51:27 wschweer Exp $
+// (C) Copyright 2003 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#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]);
+ if (hIsB) {
+ if (s == "h")
+ s = "b";
+ else if (s == "H")
+ s = "B";
+ }
+ return s + o;
+ }
+
+
diff --git a/muse2/muse/helper.h b/muse2/muse/helper.h
new file mode 100644
index 00000000..8c561db6
--- /dev/null
+++ b/muse2/muse/helper.h
@@ -0,0 +1,16 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: helper.h,v 1.1.1.1 2003/10/27 18:52:11 wschweer Exp $
+// (C) Copyright 2003 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __HELPER_H__
+#define __HELPER_H__
+
+#include <qstring.h>
+
+extern QString pitch2string(int v);
+
+#endif
+
diff --git a/muse2/muse/icons.cpp b/muse2/muse/icons.cpp
new file mode 100644
index 00000000..592ddcbd
--- /dev/null
+++ b/muse2/muse/icons.cpp
@@ -0,0 +1,612 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: icons.cpp,v 1.13.2.8 2009/11/14 03:37:48 terminator356 Exp $
+//
+// (C) Copyright 1999/2000 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include "globals.h"
+#include <qpixmap.h>
+#include <qicon.h>
+
+#include "xpm/track_comment.xpm"
+#include "xpm/audio_bounce_to_file.xpm"
+#include "xpm/audio_bounce_to_track.xpm"
+#include "xpm/audio_restartaudio.xpm"
+#include "xpm/automation_clear_data.xpm"
+#include "xpm/automation_mixer.xpm"
+#include "xpm/automation_take_snapshot.xpm"
+#include "xpm/edit_midi.xpm"
+#include "xpm/midi_edit_instrument.xpm"
+#include "xpm/midi_init_instr.xpm"
+#include "xpm/midi_inputplugins.xpm"
+#include "xpm/midi_inputplugins_midi_input_filter.xpm"
+#include "xpm/midi_inputplugins_midi_input_transform.xpm"
+#include "xpm/midi_inputplugins_random_rhythm_generator.xpm"
+#include "xpm/midi_inputplugins_remote_control.xpm"
+#include "xpm/midi_inputplugins_transpose.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_midiport_softsynths.xpm"
+#include "xpm/settings_midisync.xpm"
+#include "xpm/view_bigtime_window.xpm"
+#include "xpm/view_cliplist.xpm"
+#include "xpm/view_marker.xpm"
+#include "xpm/view_mixer.xpm"
+#include "xpm/view_transport_window.xpm"
+
+#include "xpm/pointer.xpm"
+#include "xpm/pencil.xpm"
+#include "xpm/delete.xpm"
+#include "xpm/play.xpm"
+
+#include "xpm/record1.xpm"
+#include "xpm/record.xpm"
+#include "xpm/record_on.xpm"
+#include "xpm/record_off.xpm"
+#include "xpm/stop.xpm"
+#include "xpm/start.xpm"
+#include "xpm/fforward.xpm"
+#include "xpm/frewind.xpm"
+#include "xpm/punchin.xpm"
+#include "xpm/punchout.xpm"
+#include "xpm/punchin1.xpm"
+#include "xpm/punchout1.xpm"
+#include "xpm/loop1.xpm"
+#include "xpm/loop.xpm"
+#include "xpm/dot.xpm"
+#include "xpm/doth.xpm"
+#include "xpm/dot1.xpm"
+#include "xpm/note.xpm"
+#include "xpm/note1.xpm"
+#include "xpm/stick.xpm"
+#include "xpm/wave.xpm"
+#include "xpm/synth.xpm"
+#include "xpm/cmark.xpm"
+#include "xpm/lmark.xpm"
+#include "xpm/rmark.xpm"
+#include "xpm/cut.xpm"
+#include "xpm/steprec.xpm"
+#include "xpm/glue.xpm"
+#include "xpm/draw.xpm"
+#include "xpm/quant.xpm"
+#include "xpm/fileprint.xpm"
+#include "xpm/filesave.xpm"
+#include "xpm/fileopen.xpm"
+#include "xpm/fileprintS.xpm"
+#include "xpm/filesaveS.xpm"
+#include "xpm/fileopenS.xpm"
+#include "xpm/master.xpm"
+#include "xpm/filenew.xpm"
+#include "xpm/filenewS.xpm"
+#include "xpm/home.xpm"
+#include "xpm/back.xpm"
+#include "xpm/forward.xpm"
+
+// #include "xpm/mute.xpm"
+#include "xpm/solobutton_on.xpm"
+#include "xpm/solobutton_off.xpm"
+#include "xpm/solobutton_on_blksq.xpm"
+#include "xpm/solobutton_off_blksq.xpm"
+#include "xpm/mutebutton_on.xpm"
+#include "xpm/mutebutton_off.xpm"
+#include "xpm/rec_echo_on.xpm"
+#include "xpm/rec_echo_off.xpm"
+
+#include "xpm/up.xpm"
+#include "xpm/down.xpm"
+#include "xpm/bold.xpm"
+#include "xpm/italic.xpm"
+#include "xpm/underlined.xpm"
+#include "xpm/gv.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/piano.xpm"
+// #include "xpm/pianoS.xpm"
+#include "xpm/exitS.xpm"
+
+#include "xpm/undo.xpm"
+#include "xpm/redo.xpm"
+#include "xpm/editcut.xpm"
+#include "xpm/editcopy.xpm"
+#include "xpm/editpaste.xpm"
+#include "xpm/undoS.xpm"
+#include "xpm/redoS.xpm"
+#include "xpm/editcutS.xpm"
+#include "xpm/editcopyS.xpm"
+#include "xpm/editpasteS.xpm"
+#include "xpm/editmute.xpm"
+#include "xpm/editmuteS.xpm"
+#include "xpm/editpasteclone.xpm"
+#include "xpm/editpastecloneS.xpm"
+#include "xpm/editpaste2track.xpm"
+#include "xpm/editpaste2trackS.xpm"
+#include "xpm/editpasteclone2track.xpm"
+#include "xpm/editpasteclone2trackS.xpm"
+
+#include "xpm/speaker.xpm"
+#include "xpm/buttondown.xpm"
+#include "xpm/configure.xpm"
+#include "xpm/panic.xpm"
+
+
+// next two lines will vanish soon
+#include "xpm/solobutton.xpm"
+#include "xpm/newmutebutton.xpm"
+#include "xpm/exit.xpm"
+#include "xpm/exit1.xpm"
+
+#include "xpm/redled.xpm"
+#include "xpm/darkredled.xpm"
+#include "xpm/greendot.xpm"
+//#include "xpm/darkgreendot.xpm"
+#include "xpm/bluedot.xpm"
+#include "xpm/graydot.xpm"
+#include "xpm/off.xpm"
+#include "xpm/blacksquare.xpm"
+#include "xpm/blacksqcheck.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/mustangS.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_auxsend.xpm"
+#include "xpm/addtrack_drumtrack.xpm"
+#include "xpm/addtrack_wavetrack.xpm"
+#include "xpm/edit_drumms.xpm"
+#include "xpm/edit_list.xpm"
+#include "xpm/edit_wave.xpm"
+#include "xpm/edit_mastertrack.xpm"
+#include "xpm/edit_pianoroll.xpm"
+#include "xpm/edit_score.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/mono.xpm"
+#include "xpm/stereo.xpm"
+#include "xpm/muse_icon.xpm"
+
+QPixmap* track_commentIcon;
+QPixmap* mastertrackSIcon;
+QPixmap* localoffSIcon;
+QPixmap* miditransformSIcon;
+QPixmap* midi_plugSIcon;
+QPixmap* miditransposeSIcon;
+QPixmap* mixerSIcon;
+QPixmap* mustangSIcon;
+QPixmap* resetSIcon;
+QPixmap* track_addIcon;
+QPixmap* track_deleteIcon;
+QPixmap* listSIcon;
+QPixmap* inputpluginSIcon;
+QPixmap* cliplistSIcon;
+QPixmap* mixerAudioSIcon;
+QPixmap* initSIcon;
+
+QPixmap* exitIcon;
+QPixmap* exit1Icon;
+QPixmap* newmuteIcon;
+QPixmap* soloIcon;
+
+QPixmap* pointerIcon;
+QPixmap* pencilIcon;
+QPixmap* deleteIcon;
+QPixmap* punchinIcon;
+QPixmap* punchoutIcon;
+QPixmap* punchin1Icon;
+QPixmap* punchout1Icon;
+QPixmap* loopIcon;
+QPixmap* loop1Icon;
+QPixmap* playIcon;
+
+QPixmap* record1_Icon;
+QPixmap* record_on_Icon;
+QPixmap* record_off_Icon;
+QPixmap* recordIcon;
+QPixmap* stopIcon;
+QPixmap* startIcon;
+QPixmap* fforwardIcon;
+QPixmap* frewindIcon;
+QPixmap* dotIcon;
+QPixmap* dothIcon;
+QPixmap* dot1Icon;
+QPixmap* note1Icon;
+QPixmap* noteIcon;
+QPixmap* stickIcon;
+QPixmap* waveIcon;
+QPixmap* synthIcon;
+QPixmap* markIcon[3];
+QPixmap* cutIcon;
+QPixmap* steprecIcon;
+QPixmap* glueIcon;
+QPixmap* drawIcon;
+QPixmap* quantIcon;
+QPixmap* printIcon;
+QPixmap* printIconS;
+QPixmap* openIcon;
+QPixmap* saveIcon;
+QPixmap* openIconS;
+QPixmap* saveIconS;
+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* gvIcon;
+QPixmap* midiinIcon;
+QPixmap* sysexIcon;
+QPixmap* ctrlIcon;
+QPixmap* metaIcon;
+QPixmap* pitchIcon;
+QPixmap* cafterIcon;
+QPixmap* pafterIcon;
+QPixmap* flagIcon;
+QPixmap* flagIconS;
+QPixmap* lockIcon;
+QPixmap* tocIcon;
+QPixmap* exitIconS;
+
+QPixmap* undoIcon;
+QPixmap* redoIcon;
+QPixmap* undoIconS;
+QPixmap* redoIconS;
+
+QPixmap* speakerIcon;
+QPixmap* buttondownIcon;
+QPixmap* configureIcon;
+
+QPixmap* recEchoIconOn;
+QPixmap* recEchoIconOff;
+QPixmap* muteIconOn;
+QPixmap* muteIconOff;
+QPixmap* soloIconOn;
+QPixmap* soloIconOff;
+QPixmap* soloblksqIconOn;
+QPixmap* soloblksqIconOff;
+QIcon* soloIconSet1;
+QIcon* soloIconSet2;
+
+QPixmap* editmuteIcon;
+QPixmap* editmuteSIcon;
+QPixmap* panicIcon;
+
+QIcon* pianoIconSet;
+QIcon* scoreIconSet;
+QIcon* editcutIconSet;
+QIcon* editmuteIconSet;
+QIcon* editcopyIconSet;
+QIcon* editpasteIconSet;
+QIcon* editpaste2TrackIconSet;
+QIcon* editpasteCloneIconSet;
+QIcon* editpasteClone2TrackIconSet;
+
+QPixmap* redLedIcon;
+QPixmap* darkRedLedIcon;
+QPixmap* greendotIcon;
+//QPixmap* darkgreendotIcon;
+QPixmap* graydotIcon;
+QPixmap* bluedotIcon;
+QPixmap* offIcon;
+QPixmap* blacksquareIcon;
+QPixmap* blacksqcheckIcon;
+
+QPixmap* addtrack_addmiditrackIcon;
+QPixmap* addtrack_audiogroupIcon;
+QPixmap* addtrack_audioinputIcon;
+QPixmap* addtrack_audiooutputIcon;
+QPixmap* addtrack_auxsendIcon;
+QPixmap* addtrack_drumtrackIcon;
+QPixmap* addtrack_wavetrackIcon;
+QPixmap* edit_drummsIcon;
+QPixmap* edit_listIcon;
+QPixmap* edit_waveIcon;
+QPixmap* edit_mastertrackIcon;
+QPixmap* edit_pianorollIcon;
+QPixmap* edit_scoreIcon;
+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* automation_clear_dataIcon;
+QPixmap* automation_mixerIcon;
+QPixmap* automation_take_snapshotIcon;
+QPixmap* edit_midiIcon;
+QPixmap* midi_edit_instrumentIcon;
+QPixmap* midi_init_instrIcon;
+QPixmap* midi_inputpluginsIcon;
+QPixmap* midi_inputplugins_midi_input_filterIcon;
+QPixmap* midi_inputplugins_midi_input_transformIcon;
+QPixmap* midi_inputplugins_random_rhythm_generatorIcon;
+QPixmap* midi_inputplugins_remote_controlIcon;
+QPixmap* midi_inputplugins_transposeIcon;
+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_midiport_softsynthsIcon;
+QPixmap* settings_midisyncIcon;
+QPixmap* view_bigtime_windowIcon;
+QPixmap* view_cliplistIcon;
+QPixmap* view_markerIcon;
+QPixmap* view_mixerIcon;
+QPixmap* view_transport_windowIcon;
+
+QPixmap* monoIcon;
+QPixmap* stereoIcon;
+QPixmap* museIcon;
+
+//---------------------------------------------------------
+// initIcons
+//---------------------------------------------------------
+
+void initIcons()
+ {
+ track_commentIcon = new QPixmap(track_comment_xpm);
+ pointerIcon = new QPixmap(pointer_xpm);
+ pencilIcon = new QPixmap(pencil_xpm);
+ deleteIcon = new QPixmap(delete_xpm);
+ punchinIcon = new QPixmap(punchin_xpm);
+ punchoutIcon = new QPixmap(punchout_xpm);
+ punchin1Icon = new QPixmap(punchin1_xpm);
+ punchout1Icon = new QPixmap(punchout1_xpm);
+ loopIcon = new QPixmap(loop_xpm);
+ loop1Icon = new QPixmap(loop1_xpm);
+ playIcon = new QPixmap(play_xpm);
+
+ record1_Icon = new QPixmap(record1_xpm);
+ record_on_Icon = new QPixmap(record_on_xpm);
+ record_off_Icon = new QPixmap(record_off_xpm);
+ recordIcon = new QPixmap(record_xpm);
+ stopIcon = new QPixmap(stop_xpm);
+ startIcon = new QPixmap(start_xpm);
+ fforwardIcon = new QPixmap(fforward_xpm);
+ frewindIcon = new QPixmap(frewind_xpm);
+ dotIcon = new QPixmap(dot_xpm);
+ dothIcon = new QPixmap(doth_xpm);
+ dot1Icon = new QPixmap(dot1_xpm);
+ noteIcon = new QPixmap(note_xpm);
+ note1Icon = new QPixmap(note1_xpm);
+ stickIcon = new QPixmap(stick_xpm);
+ waveIcon = new QPixmap(wave_xpm);
+ synthIcon = new QPixmap(synth_xpm);
+ markIcon[0] = new QPixmap(cmark_xpm);
+ markIcon[1] = new QPixmap(lmark_xpm);
+ markIcon[2] = new QPixmap(rmark_xpm);
+ cutIcon = new QPixmap(cut_xpm);
+ steprecIcon = new QPixmap(steprec_xpm);
+ glueIcon = new QPixmap(glue_xpm);
+ drawIcon = new QPixmap(draw_xpm);
+ quantIcon = new QPixmap(quant_xpm);
+ saveIcon = new QPixmap(filesave_xpm);
+ printIcon = new QPixmap(fileprint_xpm);
+ openIcon = new QPixmap(fileopen_xpm);
+ saveIconS = new QPixmap(filesaveS_xpm);
+ printIconS = new QPixmap(fileprintS_xpm);
+ openIconS = new QPixmap(fileopenS_xpm);
+ masterIcon = new QPixmap(master_xpm);
+ filenewIcon = new QPixmap(filenew_xpm);
+ filenewIconS = new QPixmap(filenewS_xpm);
+ homeIcon = new QPixmap(home_xpm);
+ backIcon = new QPixmap(back_xpm);
+ forwardIcon = new QPixmap(forward_xpm);
+ muteIcon = new QPixmap(editmuteS_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);
+ gvIcon = new QPixmap(gv_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);
+ exitIconS = new QPixmap(exitS_xpm);
+
+ undoIcon = new QPixmap(undo_xpm);
+ redoIcon = new QPixmap(redo_xpm);
+ undoIconS = new QPixmap(undoS_xpm);
+ redoIconS = new QPixmap(redoS_xpm);
+
+ speakerIcon = new QPixmap(speaker_xpm);
+ buttondownIcon = new QPixmap(buttondown_xpm);
+ configureIcon = new QPixmap(configure_xpm);
+
+ editmuteIcon = new QPixmap(editmute_xpm);
+ editmuteSIcon = new QPixmap(editmuteS_xpm);
+ panicIcon = new QPixmap(panic_xpm);
+
+ editcutIconSet = new QIcon(QPixmap(editcutS_xpm)); // ddskrjo
+ editcopyIconSet = new QIcon(QPixmap(editcopyS_xpm));
+ editpasteIconSet = new QIcon(QPixmap(editpasteS_xpm));
+ editmuteIconSet = new QIcon(QPixmap(editmuteS_xpm));
+ editpaste2TrackIconSet = new QIcon(QPixmap(editpaste2trackS_xpm));
+ editpasteCloneIconSet = new QIcon(QPixmap(editpastecloneS_xpm));
+ editpasteClone2TrackIconSet = new QIcon(QPixmap(editpasteclone2trackS_xpm)); // ..
+
+ exitIcon = new QPixmap(exit_xpm);
+ exit1Icon = new QPixmap(exit1_xpm);
+
+ // 2 lines odd code
+ newmuteIcon = new QPixmap(newmutebutton_xpm);
+ soloIcon = new QPixmap(solobutton_xpm);
+
+ recEchoIconOn = new QPixmap(rec_echo_on_xpm);
+ recEchoIconOff = new QPixmap(rec_echo_off_xpm);
+ muteIconOn = new QPixmap(mutebutton_on_xpm);
+ muteIconOff = new QPixmap(mutebutton_off_xpm);
+ soloIconOn = new QPixmap(solobutton_on_xpm);
+ soloIconOff = new QPixmap(solobutton_off_xpm);
+ soloblksqIconOn = new QPixmap(solobutton_on_blksq_xpm);
+ soloblksqIconOff = new QPixmap(solobutton_off_blksq_xpm);
+ soloIconSet1 = new QIcon();
+ soloIconSet2 = new QIcon();
+ soloIconSet1->setPixmap(*soloIconOn, QIcon::Automatic, QIcon::Normal, QIcon::On);
+ soloIconSet1->setPixmap(*soloIconOff, QIcon::Automatic, QIcon::Normal, QIcon::Off);
+ soloIconSet2->setPixmap(*soloblksqIconOn, QIcon::Automatic, QIcon::Normal, QIcon::On);
+ soloIconSet2->setPixmap(*soloblksqIconOff, QIcon::Automatic, QIcon::Normal, QIcon::Off);
+
+ redLedIcon = new QPixmap(redled_xpm);
+ darkRedLedIcon = new QPixmap(darkredled_xpm);
+ greendotIcon = new QPixmap(greendot_xpm);
+ //darkgreendotIcon = new QPixmap(darkgreendot_xpm);
+ bluedotIcon = new QPixmap(bluedot_xpm);
+ graydotIcon = new QPixmap(graydot_xpm);
+ offIcon = new QPixmap(off_xpm);
+ blacksquareIcon = new QPixmap(blacksquare_xpm);
+ blacksqcheckIcon = new QPixmap(blacksqcheck_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);
+ mustangSIcon = new QPixmap(mustangS_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_auxsendIcon = new QPixmap(addtrack_auxsend_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_waveIcon = new QPixmap(edit_wave_xpm);
+ edit_mastertrackIcon = new QPixmap(edit_mastertrack_xpm);
+ edit_pianorollIcon = new QPixmap(edit_pianoroll_xpm);
+ edit_scoreIcon = new QPixmap(edit_score_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);
+ pianoIconSet = new QIcon(*edit_pianorollIcon); // ddskrjo
+
+ 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);
+ automation_clear_dataIcon = new QPixmap(automation_clear_data_xpm);
+ automation_mixerIcon = new QPixmap(automation_mixer_xpm);
+ automation_take_snapshotIcon = new QPixmap(automation_take_snapshot_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_inputpluginsIcon = new QPixmap(midi_inputplugins_xpm);
+ midi_inputplugins_midi_input_filterIcon = new QPixmap(midi_inputplugins_midi_input_filter_xpm);
+ midi_inputplugins_midi_input_transformIcon = new QPixmap(midi_inputplugins_midi_input_transform_xpm);
+ midi_inputplugins_random_rhythm_generatorIcon = new QPixmap(midi_inputplugins_random_rhythm_generator_xpm);
+ midi_inputplugins_remote_controlIcon = new QPixmap(midi_inputplugins_remote_control_xpm);
+ midi_inputplugins_transposeIcon = new QPixmap(midi_inputplugins_transpose_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_midiport_softsynthsIcon = new QPixmap(settings_midiport_softsynths_xpm);
+ settings_midisyncIcon = new QPixmap(settings_midisync_xpm);
+ view_bigtime_windowIcon = new QPixmap(view_bigtime_window_xpm);
+ view_cliplistIcon = new QPixmap(view_cliplist_xpm);
+ view_markerIcon = new QPixmap(view_marker_xpm);
+ view_mixerIcon = new QPixmap(view_mixer_xpm);
+ view_transport_windowIcon = new QPixmap(view_transport_window_xpm);
+
+ monoIcon = new QPixmap(mono_xpm);
+ stereoIcon = new QPixmap(stereo_xpm);
+
+ museIcon = new QPixmap(muse_icon_xpm);
+ }
+
diff --git a/muse2/muse/icons.h b/muse2/muse/icons.h
new file mode 100644
index 00000000..ba069fbb
--- /dev/null
+++ b/muse2/muse/icons.h
@@ -0,0 +1,220 @@
+//Added by qt3to4:
+#include <QPixmap>
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: icons.h,v 1.11.2.8 2009/11/14 03:37:48 terminator356 Exp $
+//
+// (C) Copyright 2000 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef ICONS_H
+#define ICONS_H
+
+class QPixmap;
+class QIcon;
+
+extern QPixmap* track_commentIcon;
+extern QPixmap* pointerIcon;
+extern QPixmap* pencilIcon;
+extern QPixmap* deleteIcon;
+extern QPixmap* punchinIcon;
+extern QPixmap* punchoutIcon;
+extern QPixmap* punchin1Icon;
+extern QPixmap* punchout1Icon;
+extern QPixmap* loopIcon;
+extern QPixmap* loop1Icon;
+extern QPixmap* playIcon;
+extern QPixmap* recordIcon;
+extern QPixmap* stopIcon;
+extern QPixmap* startIcon;
+extern QPixmap* fforwardIcon;
+extern QPixmap* frewindIcon;
+extern QPixmap* dotIcon;
+extern QPixmap* dothIcon;
+extern QPixmap* dot1Icon;
+extern QPixmap* noteIcon;
+extern QPixmap* note1Icon;
+extern QPixmap* stickIcon;
+extern QPixmap* waveIcon;
+extern QPixmap* synthIcon;
+extern QPixmap* markIcon[3];
+
+extern QPixmap* recEchoIconOn;
+extern QPixmap* recEchoIconOff;
+extern QPixmap* muteIconOn;
+extern QPixmap* muteIconOff;
+extern QPixmap* soloIconOn;
+extern QPixmap* soloIconOff;
+
+extern QPixmap* cutIcon;
+extern QPixmap* steprecIcon;
+extern QPixmap* glueIcon;
+extern QPixmap* drawIcon;
+
+extern QPixmap* quantIcon;
+extern QPixmap* printIcon;
+extern QPixmap* printIconS;
+extern QPixmap* openIcon;
+extern QPixmap* saveIcon;
+extern QPixmap* openIconS;
+extern QPixmap* saveIconS;
+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* muteIcon;
+extern QPixmap* upIcon;
+extern QPixmap* downIcon;
+extern QPixmap* boldIcon;
+extern QPixmap* italicIcon;
+extern QPixmap* underlinedIcon;
+extern QPixmap* gvIcon;
+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* exitIconS;
+
+extern QPixmap* undoIcon;
+extern QPixmap* redoIcon;
+extern QPixmap* undoIconS;
+extern QPixmap* redoIconS;
+
+extern QPixmap* speakerIcon;
+extern QPixmap* buttondownIcon;
+extern QPixmap* configureIcon;
+
+extern QPixmap* editmuteIcon;
+extern QPixmap* editmuteSIcon;
+extern QPixmap* panicIcon;
+
+extern QIcon* pianoIconSet;
+extern QIcon* scoreIconSet;
+extern QIcon* editcutIconSet;
+extern QIcon* editmuteIconSet;
+extern QIcon* editcopyIconSet;
+extern QIcon* editpasteIconSet;
+extern QIcon* editpaste2TrackIconSet;
+extern QIcon* editpasteCloneIconSet;
+extern QIcon* editpasteClone2TrackIconSet;
+
+extern QPixmap* exitIcon;
+extern QPixmap* exit1Icon;
+extern QPixmap* record1_Icon;
+extern QPixmap* record_on_Icon;
+extern QPixmap* record_off_Icon;
+extern QPixmap* newmuteIcon;
+extern QPixmap* soloIcon;
+
+extern QPixmap* muteIconOn;
+extern QPixmap* muteIconOff;
+extern QPixmap* soloIconOn;
+extern QPixmap* soloIconOff;
+extern QPixmap* soloblksqIconOn;
+extern QPixmap* soloblksqIconOff;
+extern QIcon* soloIconSet1;
+extern QIcon* soloIconSet2;
+
+extern QPixmap* redLedIcon;
+extern QPixmap* darkRedLedIcon;
+extern QPixmap* greendotIcon;
+//extern QPixmap* darkgreendotIcon;
+extern QPixmap* graydotIcon;
+extern QPixmap* bluedotIcon;
+extern QPixmap* offIcon;
+extern QPixmap* blacksquareIcon;
+extern QPixmap* blacksqcheckIcon;
+
+extern QPixmap* mastertrackSIcon;
+extern QPixmap* localoffSIcon;
+extern QPixmap* miditransformSIcon;
+extern QPixmap* midi_plugSIcon;
+extern QPixmap* miditransposeSIcon;
+extern QPixmap* mixerSIcon;
+extern QPixmap* mustangSIcon;
+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_auxsendIcon;
+extern QPixmap* addtrack_drumtrackIcon;
+extern QPixmap* addtrack_wavetrackIcon;
+extern QPixmap* edit_drummsIcon;
+extern QPixmap* edit_listIcon;
+extern QPixmap* edit_waveIcon;
+extern QPixmap* edit_mastertrackIcon;
+extern QPixmap* edit_pianorollIcon;
+extern QPixmap* edit_scoreIcon;
+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* automation_clear_dataIcon;
+extern QPixmap* automation_mixerIcon;
+extern QPixmap* automation_take_snapshotIcon;
+extern QPixmap* edit_midiIcon;
+extern QPixmap* midi_edit_instrumentIcon;
+extern QPixmap* midi_init_instrIcon;
+extern QPixmap* midi_inputpluginsIcon;
+extern QPixmap* midi_inputplugins_midi_input_filterIcon;
+extern QPixmap* midi_inputplugins_midi_input_transformIcon;
+extern QPixmap* midi_inputplugins_random_rhythm_generatorIcon;
+extern QPixmap* midi_inputplugins_remote_controlIcon;
+extern QPixmap* midi_inputplugins_transposeIcon;
+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_midiport_softsynthsIcon;
+extern QPixmap* settings_midisyncIcon;
+extern QPixmap* view_bigtime_windowIcon;
+extern QPixmap* view_cliplistIcon;
+extern QPixmap* view_markerIcon;
+extern QPixmap* view_mixerIcon;
+extern QPixmap* view_transport_windowIcon;
+
+extern QPixmap* monoIcon;
+extern QPixmap* stereoIcon;
+
+extern QPixmap* museIcon;
+
+#endif
+
diff --git a/muse2/muse/importmidi.cpp b/muse2/muse/importmidi.cpp
new file mode 100644
index 00000000..2c8bfb24
--- /dev/null
+++ b/muse2/muse/importmidi.cpp
@@ -0,0 +1,608 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: importmidi.cpp,v 1.26.2.10 2009/11/05 03:14:35 terminator356 Exp $
+//
+// (C) Copyright 1999-2003 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include <assert.h>
+#include <errno.h>
+#include <values.h>
+#include <qmessagebox.h>
+
+#include "app.h"
+#include "song.h"
+#include "globals.h"
+#include "filedialog.h"
+#include "midi.h"
+#include "midifile.h"
+#include "midiport.h"
+#include "transport.h"
+#include "arranger.h"
+#include "mpevent.h"
+#include "event.h"
+#include "midictrl.h"
+#include "instruments/minstrument.h"
+#include "drummap.h"
+#include "xml.h"
+#include "audio.h"
+#include "gconfig.h"
+
+//---------------------------------------------------------
+// importMidi
+//---------------------------------------------------------
+
+void MusE::importMidi()
+ {
+ QString empty("");
+ importMidi(empty);
+ }
+
+void MusE::importMidi(const QString &file)
+ {
+ QString fn;
+ if (file.isEmpty()) {
+ fn = getOpenFileName(lastMidiPath, midi_file_pattern, this,
+ tr("MusE: Import Midi"), 0);
+ if (fn.isEmpty())
+ return;
+ lastMidiPath = fn;
+ }
+ else
+ fn = file;
+
+ int n = QMessageBox::question(this, appName,
+ tr("Add midi file to current project?\n"),
+ tr("&Add to Project"),
+ tr("&Replace"),
+ tr("&Abort"), 0, 2);
+
+ switch (n) {
+ case 0:
+ importMidi(fn, true);
+ song->update();
+ break;
+ case 1:
+ loadProjectFile(fn, false, false); // replace
+ break;
+ default:
+ return;
+ }
+ }
+
+//---------------------------------------------------------
+// importMidi
+// return true on error
+//---------------------------------------------------------
+
+bool MusE::importMidi(const QString name, bool merge)
+ {
+ bool popenFlag;
+ FILE* fp = fileOpen(this, name, QString(".mid"), "r", popenFlag);
+ if (fp == 0)
+ return true;
+ MidiFile mf(fp);
+ bool rv = mf.read();
+ popenFlag ? pclose(fp) : fclose(fp);
+ if (rv) {
+ QString s(tr("reading midifile\n "));
+ s += name;
+ s += tr("\nfailed: ");
+ s += mf.error();
+ QMessageBox::critical(this, QString("MusE"), s);
+ return rv;
+ }
+ //
+ // evaluate song Type (GM, XG, GS, unknown)
+ //
+ MType t = song->mtype();
+ if (!merge) {
+ t = mf.mtype();
+ song->setMType(t);
+ }
+ MidiInstrument* instr = 0;
+ for (iMidiInstrument i = midiInstruments.begin(); i != midiInstruments.end(); ++i) {
+ MidiInstrument* mi = *i;
+ if ((mi->iname() == "GM" && ((t == MT_UNKNOWN) || (t == MT_GM)))
+ || ((mi->iname() == "GS") && (t == MT_GS))
+ || ((mi->iname() == "XG") && (t == MT_XG))) {
+ instr = mi;
+ break;
+ }
+ }
+ if (instr == 0) {
+ // the standard instrument files (GM, GS, XG) must be present
+ printf("no instrument, type %d\n", t);
+ abort();
+ }
+
+ MidiFileTrackList* etl = mf.trackList();
+ int division = mf.division();
+
+ //
+ // create MidiTrack and copy events to ->events()
+ // - combine note on/off events
+ // - calculate tick value for internal resolution
+ //
+ for (iMidiFileTrack t = etl->begin(); t != etl->end(); ++t) {
+ MPEventList* 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;
+ // somewhat silly and slooow:
+ for (int port = 0; port < MIDI_PORTS; ++port) {
+ for (int channel = 0; channel < MIDI_CHANNELS; ++channel) {
+ //
+ // check if there are any events for port/channel in track:
+ //
+ iMPEvent i;
+ for (i = el->begin(); i != el->end(); ++i) {
+ MidiPlayEvent ev = *i;
+ if (ev.type() != ME_SYSEX && ev.type() != ME_META
+ && ev.channel() == channel && ev.port() == port)
+ break;
+ }
+ if (i == el->end())
+ continue;
+ MidiTrack* track = new MidiTrack();
+ if ((*t)->isDrumTrack)
+ {
+ track->setType(Track::DRUM);
+ }
+
+ track->setOutChannel(channel);
+ track->setOutPort(port);
+
+ MidiPort* mport = &midiPorts[track->outPort()];
+ // this overwrites any instrument set for this port:
+ mport->setInstrument(instr);
+
+ EventList* mel = track->events();
+ //buildMidiEventList(mel, el, track, division, first);
+ // Don't do loops.
+ buildMidiEventList(mel, el, track, division, first, false);
+ first = false;
+
+ // Removed by T356. Handled by addPortCtrlEvents() below.
+ //for (iEvent i = mel->begin(); i != mel->end(); ++i) {
+ // Event event = i->second;
+ // if (event.type() == Controller) {
+ // importController(channel, mport, event.dataA());
+ // midiPorts[track->outPort()].setCtrl(channel, event.tick(), event.dataA(), event.dataB());
+ // }
+ // }
+
+ // Comment Added by T356.
+ // Hmm. buildMidiEventList already takes care of this.
+ // But it seems to work. How? Must test.
+ if (channel == 9 && song->mtype() != MT_UNKNOWN) {
+ track->setType(Track::DRUM);
+ //
+ // remap drum pitch with drumInmap
+ //
+ EventList* tevents = track->events();
+ for (iEvent i = tevents->begin(); i != tevents->end(); ++i) {
+ Event ev = i->second;
+ if (ev.isNote()) {
+ int pitch = drumInmap[ev.pitch()];
+ ev.setPitch(pitch);
+ }
+ else
+ if(ev.type() == Controller)
+ {
+ int ctl = ev.dataA();
+ MidiController *mc = mport->drumController(ctl);
+ if(mc)
+ ev.setA((ctl & ~0xff) | drumInmap[ctl & 0x7f]);
+ }
+ }
+ }
+
+ processTrack(track);
+
+ // Added by T356. Send all controller values to the port's controller value list.
+ // No, done in song->insertTrack2() now.
+ //track->addPortCtrlEvents();
+
+ song->insertTrack0(track, -1);
+ }
+ }
+ if (first) {
+ //
+ // track does only contain non-channel messages
+ // (SYSEX or META)
+ //
+ MidiTrack* track = new MidiTrack();
+ track->setOutChannel(0);
+ track->setOutPort(0);
+ EventList* mel = track->events();
+ //buildMidiEventList(mel, el, track, division, true);
+ // Do SysexMeta. Don't do loops.
+ buildMidiEventList(mel, el, track, division, true, false);
+ processTrack(track);
+ song->insertTrack0(track, -1);
+ }
+ }
+
+ if (!merge) {
+ TrackList* tl = song->tracks();
+ if (!tl->empty()) {
+ Track* track = tl->front();
+ track->setSelected(true);
+ }
+ song->initLen();
+
+ int z, n;
+ sigmap.timesig(0, z, n);
+
+ int tempo = tempomap.tempo(0);
+ transport->setTimesig(z, n);
+ transport->setTempo(tempo);
+
+ bool masterF = !tempomap.empty();
+ song->setMasterFlag(masterF);
+ transport->setMasterFlag(masterF);
+
+ song->updatePos();
+
+ arranger->reset();
+ arranger->setMode(int(song->mtype()));
+ }
+ else {
+ song->initLen();
+ }
+
+ return false;
+ }
+
+//---------------------------------------------------------
+// processTrack
+// divide events into parts
+//---------------------------------------------------------
+
+void MusE::processTrack(MidiTrack* track)
+ {
+ EventList* tevents = track->events();
+ if (tevents->empty())
+ return;
+
+ //---------------------------------------------------
+ // Parts ermitteln
+ // die Midi-Spuren werden in Parts aufgebrochen;
+ // ein neuer Part wird bei einer L�cke von einem
+ // Takt gebildet; die L�nge wird jeweils auf
+ // Takte aufgerundet und aligned
+ //---------------------------------------------------
+
+ 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;
+ }
+
+ QString partname = track->name();
+ int len = song->roundUpBar(lastTick+1);
+
+ // p3.3.27
+ if(config.importMidiSplitParts)
+ {
+
+ int bar2, beat;
+ unsigned tick;
+ sigmap.tickValues(len, &bar2, &beat, &tick);
+
+ 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 = 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) {
+ MidiPart* part = new MidiPart(track);
+ part->setTick(st);
+ part->setLenTick(x1-st);
+ // printf("new part %d len: %d\n", st, 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) {
+ MidiPart* part = new MidiPart(track);
+ part->setTick(st);
+ // printf("new part %d len: %d\n", st, x2-st);
+ part->setLenTick(x2-st);
+ part->setName(partname);
+ pl->add(part);
+ }
+ }
+ else
+ {
+ // Just one long part...
+ MidiPart* part = new MidiPart(track);
+ //part->setTick(st);
+ part->setTick(0);
+ part->setLenTick(len);
+ part->setName(partname);
+ pl->add(part);
+ }
+
+ //-------------------------------------------------------------
+ // assign events to parts
+ //-------------------------------------------------------------
+
+ for (iPart p = pl->begin(); p != pl->end(); ++p) {
+ MidiPart* part = (MidiPart*)(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);
+ }
+ 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());
+ }
+
+//---------------------------------------------------------
+// importController
+//---------------------------------------------------------
+
+void MusE::importController(int channel, MidiPort* mport, int n)
+ {
+ MidiInstrument* instr = mport->instrument();
+ MidiCtrlValListList* vll = mport->controller();
+ iMidiCtrlValList i = vll->find(channel, n);
+ if (i != vll->end())
+ return; // controller does already exist
+ MidiController* ctrl = 0;
+ MidiControllerList* mcl = instr->controller();
+// printf("import Ctrl\n");
+ for (iMidiController i = mcl->begin(); i != mcl->end(); ++i) {
+ MidiController* mc = i->second;
+ int cn = mc->num();
+// printf(" %x %x\n", n, cn);
+ if (cn == n) {
+ ctrl = mc;
+ break;
+ }
+ // wildcard?
+ if (((cn & 0xff) == 0xff) && ((cn & ~0xff) == (n & ~0xff))) {
+ ctrl = i->second;
+ break;
+ }
+ }
+ if (ctrl == 0) {
+ printf("controller 0x%x not defined for instrument %s, channel %d\n",
+ n, instr->iname().latin1(), channel);
+// TODO: register default Controller
+// MidiController* MidiPort::midiController(int num) const
+ }
+ MidiCtrlValList* newValList = new MidiCtrlValList(n);
+ vll->add(channel, newValList);
+ }
+
+
+//---------------------------------------------------------
+// importPart
+//---------------------------------------------------------
+void MusE::importPart()
+ {
+ unsigned curPos = song->cpos();
+ TrackList* tracks = song->tracks();
+ Track* track = 0;
+ // Get first selected track:
+ for (iTrack i = tracks->begin(); i != tracks->end(); i++) {
+ Track* t = *i;
+ if (t->selected()) {
+ // Changed by T356. Support mixed .mpt files.
+ //if (t->isMidiTrack()) {
+ if (t->isMidiTrack() || t->type() == Track::WAVE) {
+ track = t;
+ break;
+ }
+ else {
+ //QMessageBox::warning(this, QString("MusE"), tr("Import part is only valid for midi tracks!"));
+ QMessageBox::warning(this, QString("MusE"), tr("Import part is only valid for midi and wave tracks!"));
+ return;
+ }
+ }
+ }
+
+ if (track) {
+ bool loadAll;
+ QString filename = getOpenFileName(QString(""), part_file_pattern, this, tr("MusE: load part"), &loadAll);
+ if (!filename.isEmpty()){
+ // Make a backup of the current clone list, to retain any 'copy' items,
+ // so that pasting works properly after.
+ CloneList copyCloneList = cloneList;
+ // Clear the clone list to prevent any dangerous associations with
+ // current non-original parts.
+ cloneList.clear();
+
+ importPartToTrack(filename, curPos, track);
+
+ // Restore backup of the clone list, to retain any 'copy' items,
+ // so that pasting works properly after.
+ cloneList.clear();
+ cloneList = copyCloneList;
+ }
+ }
+ else {
+ QMessageBox::warning(this, QString("MusE"), tr("No track selected for import"));
+ }
+ }
+
+//---------------------------------------------------------
+// importPartToTrack
+//---------------------------------------------------------
+void MusE::importPartToTrack(QString& filename, unsigned tick, Track* track)
+{
+ // Changed by T356
+ /*
+ bool popenFlag = false;
+ FILE* fp = fileOpen(this, filename, ".mpt", "r", popenFlag, false, false);
+
+ if(fp)
+ {
+ MidiPart* importedPart = new MidiPart((MidiTrack*)track);
+ Xml tmpXml = Xml(fp);
+
+ Xml::Token token = tmpXml.parse();
+ const QString& tag = tmpXml.s1();
+ if (token == Xml::TagStart && tag == "part")
+ {
+ // Make a backup of the current clone list, to retain any 'copy' items,
+ // so that pasting works properly after.
+ CloneList copyCloneList = cloneList;
+ // Clear the clone list to prevent any dangerous associations with
+ // current non-original parts.
+ cloneList.clear();
+
+ importedPart->read(tmpXml);
+ importedPart->setTick(tick);
+
+ // Restore backup of the clone list, to retain any 'copy' items,
+ // so that pasting works properly after.
+ cloneList.clear();
+ cloneList = copyCloneList;
+
+ audio->msgAddPart(importedPart);
+ }
+ else
+ {
+ printf("Unknown tag: %s\n", tag.latin1());
+ }
+ fclose(fp);
+ }
+ return;
+ */
+
+
+ bool popenFlag = false;
+ FILE* fp = fileOpen(this, filename, ".mpt", "r", popenFlag, false, false);
+
+ if(fp)
+ {
+ Xml xml = Xml(fp);
+ bool firstPart = true;
+ int posOffset = 0;
+ int notDone = 0;
+ int done = 0;
+
+ bool end = false;
+ song->startUndo();
+ for (;;)
+ {
+ Xml::Token token = xml.parse();
+ const QString& tag = xml.s1();
+ switch (token)
+ {
+ case Xml::Error:
+ case Xml::End:
+ end = true;
+ break;
+ case Xml::TagStart:
+ if (tag == "part") {
+ //MidiPart* p = new MidiPart((MidiTrack*)track);
+ //p->read(xml);
+
+ // Read the part.
+ Part* p = 0;
+ p = readXmlPart(xml, track);
+ // If it could not be created...
+ if(!p)
+ {
+ // Increment the number of parts not done and break.
+ ++notDone;
+ break;
+ }
+
+ // Increment the number of parts done.
+ ++done;
+
+ if(firstPart)
+ {
+ firstPart=false;
+ posOffset = tick - p->tick();
+ }
+ p->setTick(p->tick() + posOffset);
+ //finalPos=p->tick() + p->lenTick();
+ ////pos += p->lenTick();
+ audio->msgAddPart(p,false);
+ }
+ else
+ xml.unknown("MusE::importPartToTrack");
+ break;
+ case Xml::TagEnd:
+ break;
+ default:
+ end = true;
+ break;
+ }
+ if(end)
+ break;
+ }
+ fclose(fp);
+ song->endUndo(SC_PART_INSERTED);
+
+ if(notDone)
+ {
+ int tot = notDone + done;
+ QMessageBox::critical(this, QString("MusE"),
+ QString().setNum(notDone) + (tot > 1 ? (tr(" out of ") + QString().setNum(tot)) : QString("")) +
+ (tot > 1 ? tr(" parts") : tr(" part")) +
+ tr(" could not be imported.\nLikely the track is the wrong type."));
+ }
+
+ return;
+ }
+}
diff --git a/muse2/muse/instruments/Makefile.am b/muse2/muse/instruments/Makefile.am
new file mode 100644
index 00000000..6882f39b
--- /dev/null
+++ b/muse2/muse/instruments/Makefile.am
@@ -0,0 +1,15 @@
+include $(top_srcdir)/common.am
+
+if PCH
+AM_CXXFLAGS += -include $(top_srcdir)/all.h
+endif
+
+noinst_LIBRARIES = libinstruments.a
+
+dist_libinstruments_a_SOURCES = \
+ minstrument.cpp minstrument.h \
+ editinstrument.h editinstrument.cpp \
+ editinstrumentbase.ui
+
+nodist_libinstruments_a_SOURCES = \
+ moc_editinstrument.cpp
diff --git a/muse2/muse/instruments/Makefile.in b/muse2/muse/instruments/Makefile.in
new file mode 100644
index 00000000..f7eab504
--- /dev/null
+++ b/muse2/muse/instruments/Makefile.in
@@ -0,0 +1,599 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
+ $(top_srcdir)/common.am
+@PCH_TRUE@am__append_1 = -include $(top_srcdir)/all.h
+subdir = muse/instruments
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal-include.m4 \
+ $(top_srcdir)/m4/alsa.m4 $(top_srcdir)/m4/docbook.m4 \
+ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
+ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
+ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+LIBRARIES = $(noinst_LIBRARIES)
+ARFLAGS = cru
+libinstruments_a_AR = $(AR) $(ARFLAGS)
+libinstruments_a_LIBADD =
+dist_libinstruments_a_OBJECTS = minstrument.$(OBJEXT) \
+ editinstrument.$(OBJEXT) editinstrumentbase.$(OBJEXT)
+nodist_libinstruments_a_OBJECTS = moc_editinstrument.$(OBJEXT)
+libinstruments_a_OBJECTS = $(dist_libinstruments_a_OBJECTS) \
+ $(nodist_libinstruments_a_OBJECTS)
+DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
+depcomp = $(SHELL) $(top_srcdir)/depcomp
+am__depfiles_maybe = depfiles
+am__mv = mv -f
+CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
+LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
+CXXLD = $(CXX)
+CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \
+ $(LDFLAGS) -o $@
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
+ $(LDFLAGS) -o $@
+SOURCES = $(dist_libinstruments_a_SOURCES) \
+ $(nodist_libinstruments_a_SOURCES)
+DIST_SOURCES = $(dist_libinstruments_a_SOURCES)
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ALSA_CFLAGS = @ALSA_CFLAGS@
+ALSA_LIBS = @ALSA_LIBS@
+AMTAR = @AMTAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DOCBOOKSTYLE = @DOCBOOKSTYLE@
+DOCBOOKTARGETS = @DOCBOOKTARGETS@
+DOT = @DOT@
+DOTPATH = @DOTPATH@
+DOXYGEN = @DOXYGEN@
+DOXYGEN_TREEVIEW = @DOXYGEN_TREEVIEW@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+FLUIDSYNTHDIRS = @FLUIDSYNTHDIRS@
+FST_CFLAGS = @FST_CFLAGS@
+FST_LIBS = @FST_LIBS@
+Fluidsynth_CFLAGS = @Fluidsynth_CFLAGS@
+Fluidsynth_LIBS = @Fluidsynth_LIBS@
+GIVERTCAP = @GIVERTCAP@
+GREP = @GREP@
+HAVEDOT = @HAVEDOT@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JACK_CFLAGS = @JACK_CFLAGS@
+JACK_LIBS = @JACK_LIBS@
+JADE = @JADE@
+LASH_CFLAGS = @LASH_CFLAGS@
+LASH_LIBS = @LASH_LIBS@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LO_CFLAGS = @LO_CFLAGS@
+LO_LIBS = @LO_LIBS@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+MUSECXXFLAGS = @MUSECXXFLAGS@
+NM = @NM@
+NMEDIT = @NMEDIT@
+NSGMLS = @NSGMLS@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PCH = @PCH@
+PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+PYTHON = @PYTHON@
+PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
+PYTHON_INCLUDES = @PYTHON_INCLUDES@
+PYTHON_LIB = @PYTHON_LIB@
+PYTHON_PLATFORM = @PYTHON_PLATFORM@
+PYTHON_PREFIX = @PYTHON_PREFIX@
+PYTHON_VERSION = @PYTHON_VERSION@
+QTDIR_BIN = @QTDIR_BIN@
+QTDIR_INC = @QTDIR_INC@
+QT_LIBS = @QT_LIBS@
+RANLIB = @RANLIB@
+SAMPLERATE_CFLAGS = @SAMPLERATE_CFLAGS@
+SAMPLERATE_LIBS = @SAMPLERATE_LIBS@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SNDFILE_CFLAGS = @SNDFILE_CFLAGS@
+SNDFILE_LIBS = @SNDFILE_LIBS@
+STRIP = @STRIP@
+SUIDBUILD = @SUIDBUILD@
+SUIDINSTALL = @SUIDINSTALL@
+USE_SSE = @USE_SSE@
+UUID_CFLAGS = @UUID_CFLAGS@
+UUID_LIBS = @UUID_LIBS@
+VERSION = @VERSION@
+XMKMF = @XMKMF@
+X_CFLAGS = @X_CFLAGS@
+X_EXTRA_LIBS = @X_EXTRA_LIBS@
+X_LIBS = @X_LIBS@
+X_PRE_LIBS = @X_PRE_LIBS@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+have_docbook = @have_docbook@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+lt_ECHO = @lt_ECHO@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+pkgpyexecdir = @pkgpyexecdir@
+pkgpythondir = @pkgpythondir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+pyexecdir = @pyexecdir@
+pythondir = @pythondir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+synth_fluid = @synth_fluid@
+synth_fluidsynth = @synth_fluidsynth@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+AM_CXXFLAGS = $(MUSECXXFLAGS) -I.. -I$(top_srcdir)/synti \
+ -I$(top_srcdir)/muse/widgets -DQT_SHARED -DQT_THREAD_SUPPORT \
+ -DQT_PLUGIN $(QTDIR_INC) -DQT3_SUPPORT $(am__append_1)
+AM_CPPFLAGS =
+MOC = $(QTDIR_BIN)/moc
+#UIC = $(QTDIR_BIN)/uic3
+UIC = /usr/bin/uic3
+UIFILES = $(wildcard *.ui)
+MOCFILES = $(shell for h in $(filter %.h,$(SOURCES)); do \
+ if grep -q Q_OBJECT $$h; then \
+ echo $$h | sed "s/\(.*\)\.h/moc_\1.cpp/"; \
+ fi; \
+ done)
+
+BUILT_SOURCES = $(MOCFILES) $(UIFILES:%.ui=%.h)
+MOSTLYCLEANFILES = $(MOCFILES) $(UIFILES:%.ui=%.h)
+SUFFIXES = .ui .h.gch
+noinst_LIBRARIES = libinstruments.a
+dist_libinstruments_a_SOURCES = \
+ minstrument.cpp minstrument.h \
+ editinstrument.h editinstrument.cpp \
+ editinstrumentbase.ui
+
+nodist_libinstruments_a_SOURCES = \
+ moc_editinstrument.cpp
+
+all: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) all-am
+
+.SUFFIXES:
+.SUFFIXES: .ui .h.gch .cpp .lo .o .obj
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/common.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu muse/instruments/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu muse/instruments/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+clean-noinstLIBRARIES:
+ -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
+libinstruments.a: $(libinstruments_a_OBJECTS) $(libinstruments_a_DEPENDENCIES)
+ -rm -f libinstruments.a
+ $(libinstruments_a_AR) libinstruments.a $(libinstruments_a_OBJECTS) $(libinstruments_a_LIBADD)
+ $(RANLIB) libinstruments.a
+
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT)
+
+distclean-compile:
+ -rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/editinstrument.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/minstrument.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/moc_editinstrument.Po@am__quote@
+
+.cpp.o:
+@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $<
+
+.cpp.obj:
+@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+
+.cpp.lo:
+@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $<
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ mkid -fID $$unique
+tags: TAGS
+
+TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ set x; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: CTAGS
+CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) check-am
+all-am: Makefile $(LIBRARIES)
+installdirs:
+install: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+ -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES)
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+ -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
+clean: clean-am
+
+clean-am: clean-generic clean-libtool clean-noinstLIBRARIES \
+ mostlyclean-am
+
+distclean: distclean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+ distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+ mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: all check install install-am install-strip
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
+ clean-libtool clean-noinstLIBRARIES ctags distclean \
+ distclean-compile distclean-generic distclean-libtool \
+ distclean-tags distdir dvi dvi-am html html-am info info-am \
+ install install-am install-data install-data-am install-dvi \
+ install-dvi-am install-exec install-exec-am install-html \
+ install-html-am install-info install-info-am install-man \
+ install-pdf install-pdf-am install-ps install-ps-am \
+ install-strip installcheck installcheck-am installdirs \
+ maintainer-clean maintainer-clean-generic mostlyclean \
+ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
+ pdf pdf-am ps ps-am tags uninstall uninstall-am
+
+
+de:
+ @for base in $(MOCFILES); do echo -e "\t$${base}.cpp $${base}.h \\"; done
+
+nde:
+ @for base in $(MOCFILES); do echo -e "\tmoc_$${base}.cpp \\"; done
+
+.ui.o: %.h
+ $(UIC) -L $(top_srcdir)/muse/widgets -o $*.cpp -impl $*.h $*.ui
+ $(MOC) $*.h >> $*.cpp
+ $(CXXCOMPILE) -c $*.cpp -o $*.o
+ $(RM) $*.cpp moc_$*.cpp moc_$*.o
+
+.ui.lo: %.h
+ $(UIC) -L $(top_srcdir)/muse/widgets -o $*.cpp -impl $*.h $*.ui
+ $(MOC) $*.h >> $*.cpp
+ $(LTCXXCOMPILE) -c $*.cpp -o $*.lo
+ $(RM) $*.cpp moc_$*.cpp moc_$*.lo moc_$*.o
+
+moc_%.cpp: %.h
+ $(MOC) $< -o $@
+
+%.h: %.ui
+ $(UIC) -o $@ $<
+# $(UIC) -L $(top_srcdir)/muse/widgets -o $@ $<
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/muse2/muse/instruments/ccontrolbase.ui b/muse2/muse/instruments/ccontrolbase.ui
new file mode 100644
index 00000000..3094776f
--- /dev/null
+++ b/muse2/muse/instruments/ccontrolbase.ui
@@ -0,0 +1,525 @@
+<!DOCTYPE UI><UI version="3.1" stdsetdef="1">
+<class>MidiControllerEditDialogBase</class>
+<widget class="QDialog">
+ <property name="name">
+ <cstring>MidiControllerEditDialogBase</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>698</width>
+ <height>457</height>
+ </rect>
+ </property>
+ <property name="caption">
+ <string>MusE: Define Midi Controller</string>
+ </property>
+ <property name="sizeGripEnabled">
+ <bool>true</bool>
+ </property>
+ <grid>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>11</number>
+ </property>
+ <property name="spacing">
+ <number>6</number>
+ </property>
+ <widget class="QLayoutWidget" row="3" column="0" rowspan="1" colspan="2">
+ <property name="name">
+ <cstring>Layout2</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>0</number>
+ </property>
+ <property name="spacing">
+ <number>6</number>
+ </property>
+ <widget class="QPushButton">
+ <property name="name">
+ <cstring>buttonNew</cstring>
+ </property>
+ <property name="text">
+ <string>&amp;Add</string>
+ </property>
+ <property name="accel">
+ <string>Alt+A</string>
+ </property>
+ <property name="autoDefault">
+ <bool>false</bool>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>create new entry</string>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>pressing the New button you create a new entry
+in the MusE list of defined controllers</string>
+ </property>
+ </widget>
+ <widget class="QPushButton">
+ <property name="name">
+ <cstring>buttonDelete</cstring>
+ </property>
+ <property name="text">
+ <string>&amp;Delete</string>
+ </property>
+ <property name="autoDefault">
+ <bool>false</bool>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>delete selected entry</string>
+ </property>
+ </widget>
+ <spacer>
+ <property name="name">
+ <cstring>Spacer1</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>20</width>
+ <height>0</height>
+ </size>
+ </property>
+ </spacer>
+ <widget class="QPushButton">
+ <property name="name">
+ <cstring>buttonOk</cstring>
+ </property>
+ <property name="text">
+ <string>&amp;OK</string>
+ </property>
+ <property name="autoDefault">
+ <bool>false</bool>
+ </property>
+ </widget>
+ <widget class="QPushButton">
+ <property name="name">
+ <cstring>buttonApply</cstring>
+ </property>
+ <property name="text">
+ <string>A&amp;pply</string>
+ </property>
+ <property name="autoDefault">
+ <bool>false</bool>
+ </property>
+ </widget>
+ <widget class="QPushButton">
+ <property name="name">
+ <cstring>buttonCancel</cstring>
+ </property>
+ <property name="text">
+ <string>&amp;Cancel</string>
+ </property>
+ <property name="autoDefault">
+ <bool>false</bool>
+ </property>
+ </widget>
+ </hbox>
+ </widget>
+ <widget class="QLabel" row="0" column="0">
+ <property name="name">
+ <cstring>textLabel1</cstring>
+ </property>
+ <property name="text">
+ <string>Predefined Controller:</string>
+ </property>
+ </widget>
+ <widget class="QListView" row="1" column="1">
+ <column>
+ <property name="text">
+ <string>Name </string>
+ </property>
+ <property name="clickable">
+ <bool>true</bool>
+ </property>
+ <property name="resizable">
+ <bool>true</bool>
+ </property>
+ </column>
+ <column>
+ <property name="text">
+ <string>Type </string>
+ </property>
+ <property name="clickable">
+ <bool>true</bool>
+ </property>
+ <property name="resizable">
+ <bool>true</bool>
+ </property>
+ </column>
+ <column>
+ <property name="text">
+ <string>H-Ctrl</string>
+ </property>
+ <property name="clickable">
+ <bool>true</bool>
+ </property>
+ <property name="resizable">
+ <bool>false</bool>
+ </property>
+ </column>
+ <column>
+ <property name="text">
+ <string>L-Ctrl</string>
+ </property>
+ <property name="clickable">
+ <bool>true</bool>
+ </property>
+ <property name="resizable">
+ <bool>false</bool>
+ </property>
+ </column>
+ <column>
+ <property name="text">
+ <string>Min Val</string>
+ </property>
+ <property name="clickable">
+ <bool>true</bool>
+ </property>
+ <property name="resizable">
+ <bool>false</bool>
+ </property>
+ </column>
+ <column>
+ <property name="text">
+ <string>Max Val</string>
+ </property>
+ <property name="clickable">
+ <bool>true</bool>
+ </property>
+ <property name="resizable">
+ <bool>false</bool>
+ </property>
+ </column>
+ <property name="name">
+ <cstring>viewController</cstring>
+ </property>
+ <property name="frameShape">
+ <enum>StyledPanel</enum>
+ </property>
+ <property name="frameShadow">
+ <enum>Sunken</enum>
+ </property>
+ <property name="allColumnsShowFocus">
+ <bool>true</bool>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>list of defined controllers</string>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>This is the MusE list of defined controllers.</string>
+ </property>
+ </widget>
+ <widget class="QLayoutWidget" row="0" column="1">
+ <property name="name">
+ <cstring>layout2</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>textLabel2</cstring>
+ </property>
+ <property name="text">
+ <string>Managed Controller for Port</string>
+ </property>
+ </widget>
+ <widget class="QComboBox">
+ <property name="name">
+ <cstring>midiPortsList</cstring>
+ </property>
+ </widget>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>textLabel3</cstring>
+ </property>
+ <property name="text">
+ <string>Channel</string>
+ </property>
+ </widget>
+ <widget class="QSpinBox">
+ <property name="name">
+ <cstring>midiChannel</cstring>
+ </property>
+ <property name="maxValue">
+ <number>16</number>
+ </property>
+ <property name="minValue">
+ <number>1</number>
+ </property>
+ </widget>
+ </hbox>
+ </widget>
+ <widget class="QListBox" row="1" column="0" rowspan="2" colspan="1">
+ <property name="name">
+ <cstring>listController</cstring>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <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>
+ <widget class="QGroupBox" row="2" column="1">
+ <property name="name">
+ <cstring>GroupBox1</cstring>
+ </property>
+ <property name="title">
+ <string>Properties</string>
+ </property>
+ <grid>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>11</number>
+ </property>
+ <property name="spacing">
+ <number>6</number>
+ </property>
+ <widget class="QLabel" row="0" column="0">
+ <property name="name">
+ <cstring>TextLabel1</cstring>
+ </property>
+ <property name="text">
+ <string>Name</string>
+ </property>
+ </widget>
+ <widget class="QLayoutWidget" row="2" column="1">
+ <property name="name">
+ <cstring>layout3</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>TextLabel1_2</cstring>
+ </property>
+ <property name="text">
+ <string>Min Value</string>
+ </property>
+ <property name="indent">
+ <number>10</number>
+ </property>
+ </widget>
+ <widget class="QSpinBox">
+ <property name="name">
+ <cstring>spinboxMin</cstring>
+ </property>
+ <property name="maxValue">
+ <number>16384</number>
+ </property>
+ <property name="minValue">
+ <number>-16385</number>
+ </property>
+ </widget>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>TextLabel2_2</cstring>
+ </property>
+ <property name="text">
+ <string>Max Value</string>
+ </property>
+ <property name="indent">
+ <number>10</number>
+ </property>
+ </widget>
+ <widget class="QSpinBox">
+ <property name="name">
+ <cstring>spinboxMax</cstring>
+ </property>
+ <property name="maxValue">
+ <number>16384</number>
+ </property>
+ <property name="minValue">
+ <number>-16385</number>
+ </property>
+ <property name="value">
+ <number>127</number>
+ </property>
+ </widget>
+ </hbox>
+ </widget>
+ <widget class="QLabel" row="1" column="0">
+ <property name="name">
+ <cstring>TextLabel2</cstring>
+ </property>
+ <property name="text">
+ <string>Type</string>
+ </property>
+ </widget>
+ <widget class="QLineEdit" row="0" column="1">
+ <property name="name">
+ <cstring>entryName</cstring>
+ </property>
+ </widget>
+ <widget class="QLayoutWidget" row="1" column="1">
+ <property name="name">
+ <cstring>layout5</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QComboBox">
+ <item>
+ <property name="text">
+ <string>Control7</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Control14</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>RPN</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>NRPN</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>RPN14</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>NRPN14</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Pitch</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Program</string>
+ </property>
+ </item>
+ <property name="name">
+ <cstring>comboType</cstring>
+ </property>
+ </widget>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>TextLabel3</cstring>
+ </property>
+ <property name="text">
+ <string>H-Ctrl</string>
+ </property>
+ <property name="indent">
+ <number>10</number>
+ </property>
+ </widget>
+ <widget class="QSpinBox">
+ <property name="name">
+ <cstring>spinboxHCtrlNo</cstring>
+ </property>
+ <property name="maxValue">
+ <number>127</number>
+ </property>
+ <property name="minValue">
+ <number>0</number>
+ </property>
+ <property name="value">
+ <number>1</number>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Midi Controller Number High Byte</string>
+ </property>
+ </widget>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>TextLabel2_3</cstring>
+ </property>
+ <property name="text">
+ <string>L-Ctrl</string>
+ </property>
+ <property name="indent">
+ <number>10</number>
+ </property>
+ </widget>
+ <widget class="QSpinBox">
+ <property name="name">
+ <cstring>spinboxLCtrlNo</cstring>
+ </property>
+ <property name="maxValue">
+ <number>127</number>
+ </property>
+ <property name="minValue">
+ <number>0</number>
+ </property>
+ <property name="value">
+ <number>1</number>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Midi Controller Number Low Byte</string>
+ </property>
+ </widget>
+ </hbox>
+ </widget>
+ <widget class="QLabel" row="2" column="0">
+ <property name="name">
+ <cstring>textLabel4</cstring>
+ </property>
+ <property name="text">
+ <string>Range</string>
+ </property>
+ </widget>
+ </grid>
+ </widget>
+ </grid>
+</widget>
+<connections>
+ <connection>
+ <sender>buttonCancel</sender>
+ <signal>clicked()</signal>
+ <receiver>MidiControllerEditDialogBase</receiver>
+ <slot>reject()</slot>
+ </connection>
+ <connection>
+ <sender>buttonOk</sender>
+ <signal>clicked()</signal>
+ <receiver>MidiControllerEditDialogBase</receiver>
+ <slot>accept()</slot>
+ </connection>
+</connections>
+<tabstops>
+ <tabstop>viewController</tabstop>
+ <tabstop>entryName</tabstop>
+ <tabstop>comboType</tabstop>
+ <tabstop>spinboxHCtrlNo</tabstop>
+ <tabstop>spinboxLCtrlNo</tabstop>
+ <tabstop>spinboxMin</tabstop>
+ <tabstop>spinboxMax</tabstop>
+ <tabstop>buttonNew</tabstop>
+ <tabstop>buttonDelete</tabstop>
+ <tabstop>buttonOk</tabstop>
+ <tabstop>buttonApply</tabstop>
+ <tabstop>buttonCancel</tabstop>
+</tabstops>
+<layoutdefaults spacing="6" margin="11"/>
+</UI>
diff --git a/muse2/muse/instruments/editinstrument.cpp b/muse2/muse/instruments/editinstrument.cpp
new file mode 100644
index 00000000..9e85356a
--- /dev/null
+++ b/muse2/muse/instruments/editinstrument.cpp
@@ -0,0 +1,3541 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: editinstrument.cpp,v 1.2.2.6 2009/05/31 05:12:12 terminator356 Exp $
+//
+// (C) Copyright 2003 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include <q3listbox.h>
+//Added by qt3to4:
+#include <QCloseEvent>
+#include <stdio.h>
+#include <errno.h>
+#include <qmessagebox.h>
+#include <qspinbox.h>
+#include <qcombobox.h>
+#include <qlineedit.h>
+#include <qcheckbox.h>
+#include <qdir.h>
+#include <qfileinfo.h>
+#include <q3filedialog.h>
+#include <qtoolbutton.h>
+#include <q3popupmenu.h>
+#include <qpushbutton.h>
+#include <qtabwidget.h>
+#include <qinputdialog.h>
+
+#include "editinstrument.h"
+#include "minstrument.h"
+#include "globals.h"
+#include "listitem.h"
+#include "song.h"
+#include "xml.h"
+#include "midictrl.h"
+#include "gconfig.h"
+
+enum {
+ COL_NAME = 0, COL_TYPE,
+ COL_HNUM, COL_LNUM, COL_MIN, COL_MAX, COL_DEF
+ };
+
+//---------------------------------------------------------
+// EditInstrument
+//---------------------------------------------------------
+
+EditInstrument::EditInstrument(QWidget* parent, const char* name, Qt::WFlags fl)
+ : EditInstrumentBase(parent, name, fl)
+ {
+ patchpopup = new Q3PopupMenu(patchButton);
+ patchpopup->setCheckable(false);
+
+ // populate instrument list
+ // Populate common controller list.
+ for(int i = 0; i < 128; ++i)
+ listController->insertItem(midiCtrlName(i));
+
+ oldMidiInstrument = 0;
+ oldPatchItem = 0;
+ for (iMidiInstrument i = midiInstruments.begin(); i != midiInstruments.end(); ++i) {
+ // Imperfect, crude way of ignoring internal instruments, soft synths etc. If it has a gui,
+ // it must be an internal instrument. But this will still allow some vst instruments (without a gui)
+ // to show up in the list.
+ // Hmm, try file path instead...
+ //if((*i)->hasGui())
+ if((*i)->filePath().isEmpty())
+ continue;
+
+ ListBoxData* item = new ListBoxData((*i)->iname());
+ item->setData((void*)*i);
+ instrumentList->insertItem(item);
+ }
+ if(instrumentList->item(0))
+ instrumentList->setSelected(instrumentList->item(0), true);
+ //oldMidiInstrument = (MidiInstrument*)((ListBoxData*)instrumentList->item(0))->data();
+ //oldMidiInstrument = (ListBoxData*)instrumentList->item(0);
+ //oldMidiInstrument = (ListBoxData*)instrumentList->selectedItem();
+
+// MidiInstrument* wip = (MidiInstrument*)((ListBoxData*)instrumentList->item(0))->data();
+// if(wip)
+ // Assignment
+// workingInstrument.assign( *wip );
+
+
+ connect(instrumentList, SIGNAL(selectionChanged()), SLOT(instrumentChanged()));
+ connect(patchView, SIGNAL(selectionChanged()), SLOT(patchChanged()));
+
+ //instrumentChanged();
+ changeInstrument();
+
+ //connect(listController, SIGNAL(selectionChanged()), SLOT(controllerChanged()));
+ connect(viewController, SIGNAL(selectionChanged()), SLOT(controllerChanged()));
+
+ //connect(instrumentName, SIGNAL(textChanged(const QString&)), SLOT(instrumentNameChanged(const QString&)));
+ connect(instrumentName, SIGNAL(returnPressed()), SLOT(instrumentNameReturn()));
+ connect(instrumentName, SIGNAL(lostFocus()), SLOT(instrumentNameReturn()));
+
+ connect(patchNameEdit, SIGNAL(returnPressed()), SLOT(patchNameReturn()));
+ connect(patchNameEdit, SIGNAL(lostFocus()), SLOT(patchNameReturn()));
+ connect(patchDelete, SIGNAL(clicked()), SLOT(deletePatchClicked()));
+ connect(patchNew, SIGNAL(clicked()), SLOT(newPatchClicked()));
+ connect(patchNewGroup, SIGNAL(clicked()), SLOT(newGroupClicked()));
+ //connect(newCategory, SIGNAL(clicked()), SLOT(newCategoryClicked()));
+
+ connect(patchButton, SIGNAL(clicked()), SLOT(patchButtonClicked()));
+ connect(defPatchH, SIGNAL(valueChanged(int)), SLOT(defPatchChanged(int)));
+ connect(defPatchL, SIGNAL(valueChanged(int)), SLOT(defPatchChanged(int)));
+ connect(defPatchProg, SIGNAL(valueChanged(int)), SLOT(defPatchChanged(int)));
+ connect(deleteController, SIGNAL(clicked()), SLOT(deleteControllerClicked()));
+ connect(newController, SIGNAL(clicked()), SLOT(newControllerClicked()));
+ connect(addController, SIGNAL(clicked()), SLOT(addControllerClicked()));
+ connect(listController, SIGNAL(doubleClicked(Q3ListBoxItem*)), SLOT(addControllerClicked()));
+ connect(ctrlType,SIGNAL(activated(int)), SLOT(ctrlTypeChanged(int)));
+ connect(ctrlName, SIGNAL(returnPressed()), SLOT(ctrlNameReturn()));
+ connect(ctrlName, SIGNAL(lostFocus()), SLOT(ctrlNameReturn()));
+ //connect(ctrlName, SIGNAL(textChanged(const QString&)), SLOT(ctrlNameChanged(const QString&)));
+ connect(spinBoxHCtrlNo, SIGNAL(valueChanged(int)), SLOT(ctrlHNumChanged(int)));
+ connect(spinBoxLCtrlNo, SIGNAL(valueChanged(int)), SLOT(ctrlLNumChanged(int)));
+ connect(spinBoxMin, SIGNAL(valueChanged(int)), SLOT(ctrlMinChanged(int)));
+ connect(spinBoxMax, SIGNAL(valueChanged(int)), SLOT(ctrlMaxChanged(int)));
+ connect(spinBoxDefault, SIGNAL(valueChanged(int)), SLOT(ctrlDefaultChanged(int)));
+ connect(nullParamSpinBoxH, SIGNAL(valueChanged(int)), SLOT(ctrlNullParamHChanged(int)));
+ connect(nullParamSpinBoxL, SIGNAL(valueChanged(int)), SLOT(ctrlNullParamLChanged(int)));
+
+ connect(tabWidget3, SIGNAL(currentChanged(QWidget*)), SLOT(tabChanged(QWidget*)));
+ //connect(sysexList, SIGNAL(selectionChanged()), SLOT(sysexChanged()));
+ //connect(deleteSysex, SIGNAL(clicked()), SLOT(deleteSysexClicked()));
+ //connect(newSysex, SIGNAL(clicked()), SLOT(newSysexClicked()));
+ }
+
+//---------------------------------------------------------
+// helpWhatsThis
+//---------------------------------------------------------
+
+void EditInstrument::helpWhatsThis()
+{
+ whatsThis();
+}
+
+//---------------------------------------------------------
+// fileNew
+//---------------------------------------------------------
+
+void EditInstrument::fileNew()
+ {
+ // Allow these to update...
+ instrumentNameReturn();
+ patchNameReturn();
+ ctrlNameReturn();
+
+ 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) {
+ //if(oldMidiInstrument)
+ //{
+ //MidiInstrument* oi = (MidiInstrument*)old->data(Qt::UserRole).value<void*>();
+ MidiInstrument* oi = 0;
+ if(oldMidiInstrument)
+ oi = (MidiInstrument*)oldMidiInstrument->data();
+ MidiInstrument* wip = &workingInstrument;
+ //checkDirty(oi);
+ //if(checkDirty(oi))
+ if(checkDirty(wip))
+ // No save was chosen. Restore the actual instrument name.
+ {
+ if(oi)
+ {
+ oldMidiInstrument->setText(oi->iname());
+ //workingInstrument.setIName(oi->iname());
+
+ // No file path? Only a new unsaved instrument can do that. So delete it.
+ if(oi->filePath().isEmpty())
+ // Delete the list item and the instrument.
+ deleteInstrument(oldMidiInstrument);
+
+ instrumentList->triggerUpdate(true);
+ }
+ }
+ //else
+ //{
+ // if(oi)
+ // Save was chosen. Assign the working instrument to the actual instrument.
+ // oi->assign(workingInstrument);
+ //}
+
+ //oi->setDirty(false);
+ workingInstrument.setDirty(false);
+ //}
+
+ MidiInstrument* ni = new MidiInstrument(s);
+ //midiInstruments.append(ni);
+ midiInstruments.push_back(ni);
+ //QListWidgetItem* item = new QListWidgetItem(ni->iname());
+ //InstrumentListItem* item = new InstrumentListItem(ni->iname());
+ ListBoxData* item = new ListBoxData(ni->iname());
+
+ //oldMidiInstrument = item;
+ workingInstrument.assign( *ni );
+ //workingInstrument.setDirty(false);
+
+ //item->setText(ni->iname());
+ item->setData((void*)ni);
+ //QVariant v = qVariantFromValue((void*)(ni));
+ //item->setData(Qt::UserRole, v);
+ //instrumentList->addItem(item);
+ instrumentList->insertItem(item);
+
+ oldMidiInstrument = 0;
+
+ instrumentList->blockSignals(true);
+ instrumentList->setCurrentItem(item);
+ instrumentList->blockSignals(false);
+
+ changeInstrument();
+
+ // We have our new instrument! So set dirty to true.
+ workingInstrument.setDirty(true);
+
+ break;
+ }
+ }
+
+ }
+
+//---------------------------------------------------------
+// fileOpen
+//---------------------------------------------------------
+
+void EditInstrument::fileOpen()
+ {
+ // Allow these to update...
+ //instrumentNameReturn();
+ //patchNameReturn();
+ //ctrlNameReturn();
+
+
+ }
+
+//---------------------------------------------------------
+// fileSave
+//---------------------------------------------------------
+
+void EditInstrument::fileSave()
+{
+ //if (instrument->filePath().isEmpty())
+ if (workingInstrument.filePath().isEmpty())
+ {
+ //fileSaveAs();
+ saveAs();
+ return;
+ }
+
+ // Do not allow a direct overwrite of a 'built-in' muse instrument.
+ QFileInfo qfi(workingInstrument.filePath());
+ if(qfi.dirPath(true) == museInstruments)
+ {
+ //fileSaveAs();
+ saveAs();
+ return;
+ }
+
+ //QFile f(instrument->filePath());
+ //if (!f.open(QIODevice::WriteOnly)) {
+ //FILE* f = fopen(instrument->filePath().latin1(), "w");
+ FILE* f = fopen(workingInstrument.filePath().latin1(), "w");
+ if(f == 0)
+ {
+ //fileSaveAs();
+ saveAs();
+ return;
+ }
+
+ // Allow these to update...
+ instrumentNameReturn();
+ patchNameReturn();
+ ctrlNameReturn();
+
+ //f.close();
+ if(fclose(f) != 0)
+ {
+ //QString s = QString("Creating file:\n") + instrument->filePath() + QString("\nfailed: ")
+ QString s = QString("Creating file:\n") + workingInstrument.filePath() + QString("\nfailed: ")
+ //+ f.errorString();
+ + QString(strerror(errno) );
+ //fprintf(stderr, "poll failed: %s\n", strerror(errno));
+ QMessageBox::critical(this, tr("MusE: Create file failed"), s);
+ return;
+ }
+
+ //if(fileSave(instrument, instrument->filePath()))
+ // instrument->setDirty(false);
+ if(fileSave(&workingInstrument, workingInstrument.filePath()))
+ workingInstrument.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);
+
+ FILE* f = fopen(name.ascii(), "w");
+ if(f == 0)
+ {
+ //if(debugMsg)
+ // printf("READ IDF %s\n", fi->filePath().latin1());
+ QString s("Creating file failed: ");
+ s += QString(strerror(errno));
+ QMessageBox::critical(this,
+ tr("MusE: Create file failed"), s);
+ return false;
+ }
+
+ Xml xml(f);
+
+ updateInstrument(instrument);
+
+ //instrument->write(xml);
+ instrument->write(0, xml);
+
+ // Assign the working instrument values to the actual current selected instrument...
+ if(oldMidiInstrument)
+ {
+ MidiInstrument* oi = (MidiInstrument*)oldMidiInstrument->data();
+ if(oi)
+ {
+ oi->assign(workingInstrument);
+
+ // Now signal the rest of the app so stuff can change...
+ song->update(SC_CONFIG | SC_MIDI_CONTROLLER);
+ //song->update(SC_CONFIG | SC_MIDI_CONTROLLER | SC_MIDI_CONTROLLER_ADD);
+ }
+ }
+
+ //f.close();
+ //if (f.error()) {
+ if(fclose(f) != 0)
+ {
+ QString s = QString("Write File\n") + name + QString("\nfailed: ")
+ //+ f.errorString();
+ + QString(strerror(errno));
+ //fprintf(stderr, "poll failed: %s\n", strerror(errno));
+ QMessageBox::critical(this, tr("MusE: Write File failed"), s);
+ return false;
+ }
+ return true;
+ }
+
+//---------------------------------------------------------
+// saveAs
+//---------------------------------------------------------
+
+void EditInstrument::saveAs()
+ {
+ // Allow these to update...
+ instrumentNameReturn();
+ patchNameReturn();
+ ctrlNameReturn();
+
+ //QListWidgetItem* item = instrumentList->currentItem();
+// ListBoxData* item = (ListBoxData*)instrumentList->selectedItem();
+// if (item == 0)
+// return;
+ //MidiInstrument* instrument = (MidiInstrument*)item->data(Qt::UserRole).value<void*>();
+// MidiInstrument* instrument = (MidiInstrument*)item->data();
+
+ //QString path = QDir::homePath() + "/" + config.instrumentPath;
+ //QString path = QDir::homeDirPath() + "/" + museGlobalShare;
+ //QString path = museInstruments;
+ QString path = museUserInstruments;
+
+ if(!QDir(museUserInstruments).exists())
+ {
+ if(QMessageBox::question(this,
+ tr("MusE:"),
+ tr("The user instrument directory\n") + museUserInstruments + tr("\ndoes not exist yet. Create it now?\n") +
+ tr("(You can override with the environment variable MUSEINSTRUMENTS)"),
+ QMessageBox::Ok | QMessageBox::Default,
+ QMessageBox::Cancel | QMessageBox::Escape,
+ Qt::NoButton) == QMessageBox::Ok)
+ {
+ if(QDir().mkdir(museUserInstruments))
+ printf("Created user instrument directory: %s\n", museUserInstruments.latin1());
+ else
+ {
+ printf("Unable to create user instrument directory: %s\n", museUserInstruments.latin1());
+ QMessageBox::critical(this, tr("MusE:"), tr("Unable to create user instrument directory\n") + museUserInstruments);
+ //return;
+ path = museUser;
+ }
+ }
+ else
+ // return;
+ path = museUser;
+ }
+
+ //if (instrument->filePath().isEmpty())
+ if (workingInstrument.filePath().isEmpty())
+ path += QString("/%1.idf").arg(workingInstrument.iname());
+ else {
+ //QFileInfo fi(instrument->filePath());
+ QFileInfo fi(workingInstrument.filePath());
+
+ // Prompt for a new instrument name if the name has not been changed, to avoid duplicates.
+ if(oldMidiInstrument)
+ {
+ MidiInstrument* oi = (MidiInstrument*)oldMidiInstrument->data();
+ if(oi)
+ {
+ if(oi->iname() == workingInstrument.iname())
+ {
+ // Prompt only if it's a user instrument, to avoid duplicates in the user instrument dir.
+ // This will still allow a user instrument to override a built-in instrument with the same name.
+ if(fi.dirPath(true) != museInstruments)
+ {
+ //QMessageBox::critical(this,
+ // tr("MusE: Bad instrument name"),
+ // tr("Please change the instrument name to a new unique name before saving, to avoid duplicates"),
+ // QMessageBox::Ok,
+ // QMessageBox::NoButton,
+ // QMessageBox::NoButton);
+ printf("EditInstrument::saveAs Error: Instrument name %s already used!\n", workingInstrument.iname().latin1());
+ return;
+ }
+ }
+ }
+ }
+ path += QString("/%1.idf").arg(fi.baseName());
+ }
+ //QString s = QFileDialog::getSaveFileName(this,
+ // tr("MusE: Save Instrument Definition"),
+ // path,
+ // tr("Instrument Definition (*.idf)"));
+
+ QString s = Q3FileDialog::getSaveFileName(path, tr("Instrument Definition (*.idf)"), this,
+ tr("MusE: Save Instrument Definition").latin1());
+ if (s.isEmpty())
+ return;
+ //instrument->setFilePath(s);
+ workingInstrument.setFilePath(s);
+
+ //if (fileSave(instrument, s))
+ // instrument->setDirty(false);
+ if(fileSave(&workingInstrument, s))
+ workingInstrument.setDirty(false);
+ }
+
+//---------------------------------------------------------
+// fileSaveAs
+//---------------------------------------------------------
+
+void EditInstrument::fileSaveAs()
+ {
+ // Is this a new unsaved instrument? Just do a normal save.
+ if(workingInstrument.filePath().isEmpty())
+ {
+ saveAs();
+ return;
+ }
+
+ // Allow these to update...
+ instrumentNameReturn();
+ patchNameReturn();
+ ctrlNameReturn();
+
+ MidiInstrument* oi = 0;
+ if(oldMidiInstrument)
+ oi = (MidiInstrument*)oldMidiInstrument->data();
+
+ int res = checkDirty(&workingInstrument, true);
+ switch(res)
+ {
+ // No save:
+ case 1:
+ //item->setText(instrument->iname());
+ //instrumentList->triggerUpdate(true);
+ //instrument->setDirty(false);
+ workingInstrument.setDirty(false);
+ if(oi)
+ {
+ oldMidiInstrument->setText(oi->iname());
+ //workingInstrument.setIName(oi->iname());
+
+ //workingInstrument.assign(*oi);
+
+ // No file path? Only a new unsaved instrument can do that. So delete it.
+ if(oi->filePath().isEmpty())
+ {
+ // Delete the list item and the instrument.
+ deleteInstrument(oldMidiInstrument);
+ oldMidiInstrument = 0;
+ }
+
+ changeInstrument();
+
+ instrumentList->triggerUpdate(true);
+ }
+ return;
+ break;
+
+ // Abort:
+ case 2:
+ return;
+ break;
+
+ // Save:
+ case 0:
+ //if(oi)
+ // oi->assign(workingInstrument);
+ workingInstrument.setDirty(false);
+ break;
+ }
+
+ //QListWidgetItem* item = instrumentList->currentItem();
+// ListBoxData* item = (ListBoxData*)instrumentList->selectedItem();
+// if (item == 0)
+// return;
+ //MidiInstrument* instrument = (MidiInstrument*)item->data(Qt::UserRole).value<void*>();
+// MidiInstrument* instrument = (MidiInstrument*)item->data();
+
+ bool isuser = false;
+ QString so;
+ if(workingInstrument.iname().isEmpty())
+ so = QString("Instrument");
+ else
+ so = workingInstrument.iname();
+
+ for(int i = 1;; ++i)
+ {
+ QString s = so + QString("-%1").arg(i);
+
+ bool found = false;
+ for(iMidiInstrument imi = midiInstruments.begin(); imi != midiInstruments.end(); ++imi)
+ {
+ if(s == (*imi)->iname())
+ {
+ // Allow override of built-in instrument names.
+ QFileInfo fi((*imi)->filePath());
+ if(fi.dirPath(true) == museInstruments)
+ break;
+ found = true;
+ break;
+ }
+ }
+ if(found)
+ continue;
+
+ bool ok;
+ s = QInputDialog::getText(tr("MusE: Save instrument as"), tr("Enter a new unique instrument name:"),
+ QLineEdit::Normal, s, &ok, this);
+ if(!ok)
+ return;
+ if(s.isEmpty())
+ {
+ --i;
+ continue;
+ }
+
+ isuser = false;
+ bool builtin = false;
+ found = false;
+ for(iMidiInstrument imi = midiInstruments.begin(); imi != midiInstruments.end(); ++imi)
+ {
+ // If an instrument with the same name is found...
+ if((*imi)->iname() == s)
+ {
+ // If it's not the same name as the working instrument, and it's not an internal instrument (soft synth etc.)...
+ if(s != workingInstrument.iname() && !(*imi)->filePath().isEmpty())
+ {
+ QFileInfo fi((*imi)->filePath());
+ // Allow override of built-in and user instruments:
+ // If it's a user instrument, not a built-in instrument...
+ if(fi.dirPath(true) == museUserInstruments)
+ {
+ // No choice really but to overwrite the destination instrument file!
+ // Can not have two user files containing the same instrument name.
+ if(QMessageBox::question(this,
+ tr("MusE: Save instrument as"),
+ tr("The user instrument:\n") + s + tr("\nalready exists. This will overwrite its .idf instrument file.\nAre you sure?"),
+ QMessageBox::Ok | QMessageBox::Default,
+ QMessageBox::Cancel | QMessageBox::Escape,
+ Qt::NoButton) == QMessageBox::Ok)
+ {
+ // Set the working instrument's file path to the found instrument's path.
+ workingInstrument.setFilePath((*imi)->filePath());
+ // Mark as overwriting a user instrument.
+ isuser = true;
+ }
+ else
+ {
+ found = true;
+ break;
+ }
+ }
+ // Assign the found instrument to the working instrument.
+ //workingInstrument.assign(*(*imi));
+ // Assign the found instrument name to the working instrument name.
+ workingInstrument.setIName(s);
+
+ // Find the instrument in the list and set the old instrument to the item.
+ oldMidiInstrument = (ListBoxData*)instrumentList->findItem(s, Q3ListBox::ExactMatch);
+
+ // Mark as a built-in instrument.
+ builtin = true;
+ break;
+ }
+ found = true;
+ break;
+ }
+ }
+ if(found)
+ {
+ so = s;
+ i = 0;
+ continue;
+ }
+
+ so = s;
+
+ // If the name does not belong to a built-in instrument...
+ if(!builtin)
+ {
+ MidiInstrument* ni = new MidiInstrument();
+ ni->assign(workingInstrument);
+ ni->setIName(so);
+ ni->setFilePath(QString());
+ //midiInstruments.append(ni);
+ midiInstruments.push_back(ni);
+ //QListWidgetItem* item = new QListWidgetItem(ni->iname());
+ //InstrumentListItem* item = new InstrumentListItem(ni->iname());
+ //ListBoxData* item = new ListBoxData(ni->iname());
+ ListBoxData* item = new ListBoxData(so);
+
+ //oldMidiInstrument = item;
+ workingInstrument.assign( *ni );
+ //workingInstrument.setDirty(false);
+
+ //item->setText(ni->iname());
+ item->setData((void*)ni);
+ //QVariant v = qVariantFromValue((void*)(ni));
+ //item->setData(Qt::UserRole, v);
+ //instrumentList->addItem(item);
+ instrumentList->insertItem(item);
+
+ oldMidiInstrument = 0;
+
+ instrumentList->blockSignals(true);
+ instrumentList->setCurrentItem(item);
+ instrumentList->blockSignals(false);
+
+ changeInstrument();
+
+ // We have our new instrument! So set dirty to true.
+ workingInstrument.setDirty(true);
+ }
+
+ break;
+ }
+
+ //QString path = QDir::homePath() + "/" + config.instrumentPath;
+ //QString path = QDir::homeDirPath() + "/" + museGlobalShare;
+ //QString path = museInstruments;
+ QString path = museUserInstruments;
+
+ if(!QDir(museUserInstruments).exists())
+ {
+ if(QMessageBox::question(this,
+ tr("MusE:"),
+ tr("The user instrument directory\n") + museUserInstruments + tr("\ndoes not exist yet. Create it now?\n") +
+ tr("(You can override with the environment variable MUSEINSTRUMENTS)"),
+ QMessageBox::Ok | QMessageBox::Default,
+ QMessageBox::Cancel | QMessageBox::Escape,
+ Qt::NoButton) == QMessageBox::Ok)
+ {
+ if(QDir().mkdir(museUserInstruments))
+ printf("Created user instrument directory: %s\n", museUserInstruments.latin1());
+ else
+ {
+ printf("Unable to create user instrument directory: %s\n", museUserInstruments.latin1());
+ QMessageBox::critical(this, tr("MusE:"), tr("Unable to create user instrument directory\n") + museUserInstruments);
+ //return;
+ path = museUser;
+ }
+ }
+ else
+ // return;
+ path = museUser;
+ }
+ path += QString("/%1.idf").arg(so);
+
+ //QString s = QFileDialog::getSaveFileName(this,
+ // tr("MusE: Save Instrument Definition"),
+ // path,
+ // tr("Instrument Definition (*.idf)"));
+
+ QString sfn;
+ // If we are overwriting a user instrument just force the path.
+ if(isuser)
+ sfn = path;
+ else
+ {
+ sfn = Q3FileDialog::getSaveFileName(path, tr("Instrument Definition (*.idf)"), this,
+ tr("MusE: Save Instrument Definition").latin1());
+ if (sfn.isEmpty())
+ return;
+ //instrument->setFilePath(s);
+ workingInstrument.setFilePath(sfn);
+ }
+
+ //if (fileSave(instrument, s))
+ // instrument->setDirty(false);
+ if(fileSave(&workingInstrument, sfn))
+ workingInstrument.setDirty(false);
+ }
+
+//---------------------------------------------------------
+// fileExit
+//---------------------------------------------------------
+
+void EditInstrument::fileExit()
+ {
+
+ }
+
+//---------------------------------------------------------
+// closeEvent
+//---------------------------------------------------------
+
+void EditInstrument::closeEvent(QCloseEvent* ev)
+ {
+ // Allow these to update...
+ instrumentNameReturn();
+ patchNameReturn();
+ ctrlNameReturn();
+
+ //QListWidgetItem* item = instrumentList->currentItem();
+
+// ListBoxData* item = (ListBoxData*)instrumentList->selectedItem();
+
+// if(item)
+// {
+ //MidiInstrument* instrument = (MidiInstrument*)item->data(Qt::UserRole).value<void*>();
+// MidiInstrument* instrument = (MidiInstrument*)item->data();
+// int res = checkDirty(instrument, true);
+ MidiInstrument* oi = 0;
+ if(oldMidiInstrument)
+ oi = (MidiInstrument*)oldMidiInstrument->data();
+
+ int res = checkDirty(&workingInstrument, true);
+ switch(res)
+ {
+ // No save:
+ case 1:
+ //item->setText(instrument->iname());
+ //instrumentList->triggerUpdate(true);
+ //instrument->setDirty(false);
+ workingInstrument.setDirty(false);
+ if(oi)
+ {
+ oldMidiInstrument->setText(oi->iname());
+ //workingInstrument.setIName(oi->iname());
+
+ //workingInstrument.assign(*oi);
+
+ // No file path? Only a new unsaved instrument can do that. So delete it.
+ if(oi->filePath().isEmpty())
+ {
+ // Delete the list item and the instrument.
+ deleteInstrument(oldMidiInstrument);
+ oldMidiInstrument = 0;
+ }
+
+ changeInstrument();
+
+ instrumentList->triggerUpdate(true);
+ }
+ break;
+
+ // Abort:
+ case 2:
+ ev->ignore();
+ return;
+ break;
+
+ // Save:
+ case 0:
+ //if(oi)
+ // oi->assign(workingInstrument);
+ workingInstrument.setDirty(false);
+ break;
+
+ }
+
+// }
+
+ Q3MainWindow::closeEvent(ev);
+ }
+
+//---------------------------------------------------------
+// changeInstrument
+//---------------------------------------------------------
+
+void EditInstrument::changeInstrument()
+{
+ ListBoxData* sel = (ListBoxData*)instrumentList->selectedItem();
+ if(!sel)
+ return;
+
+ //oldMidiInstrument = (MidiInstrument*)sel->data();
+ oldMidiInstrument = sel;
+ // Assignment
+ //workingInstrument = *((MidiInstrument*)sel->data());
+
+ // Assign will 'delete' any existing patches, groups, or controllers.
+ workingInstrument.assign( *((MidiInstrument*)sel->data()) );
+
+ workingInstrument.setDirty(false);
+
+ // populate patch list
+
+ patchView->clear();
+ //listController->clear();
+ viewController->clear();
+ //category->clear();
+ //sysexList->clear();
+
+
+ //MidiInstrument* instrument = (MidiInstrument*)sel->data(Qt::UserRole).value<void*>();
+ //MidiInstrument* instrument = (MidiInstrument*)sel->data();
+ //instrument->setDirty(false);
+
+ instrumentName->blockSignals(true);
+ //instrumentName->setText(instrument->iname());
+ instrumentName->setText(workingInstrument.iname());
+ instrumentName->blockSignals(false);
+
+ nullParamSpinBoxH->blockSignals(true);
+ nullParamSpinBoxL->blockSignals(true);
+ int nv = workingInstrument.nullSendValue();
+ if(nv == -1)
+ {
+ nullParamSpinBoxH->setValue(-1);
+ nullParamSpinBoxL->setValue(-1);
+ }
+ else
+ {
+ int nvh = (nv >> 8) & 0xff;
+ int nvl = nv & 0xff;
+ if(nvh == 0xff)
+ nullParamSpinBoxH->setValue(-1);
+ else
+ nullParamSpinBoxH->setValue(nvh & 0x7f);
+ if(nvl == 0xff)
+ nullParamSpinBoxL->setValue(-1);
+ else
+ nullParamSpinBoxL->setValue(nvl & 0x7f);
+ }
+ nullParamSpinBoxH->blockSignals(false);
+ nullParamSpinBoxL->blockSignals(false);
+
+ //std::vector<PatchGroup>* pg = instrument->groups();
+ //PatchGroupList* pg = instrument->groups();
+ PatchGroupList* pg = workingInstrument.groups();
+ //for (std::vector<PatchGroup>::iterator g = pg->begin(); g != pg->end(); ++g) {
+ for (ciPatchGroup g = pg->begin(); g != pg->end(); ++g) {
+ PatchGroup* pgp = *g;
+ if(pgp)
+ {
+ //QTreeWidgetItem* item = new QTreeWidgetItem;
+ ListViewData* item = new ListViewData(patchView);
+
+ //item->setText(0, g->name);
+ item->setText(0, pgp->name);
+
+ //QVariant v = QVariant::fromValue((void*)0);
+ //item->setData(0, Qt::UserRole, v);
+ //item->setData((void*)*g);
+ //item->setData((void*)0);
+ //item->setData((void*)&*g);
+ item->setData((void*)pgp);
+ //patchView->addTopLevelItem(item);
+
+ //for (ciPatch p = g->patches.begin(); p != g->patches.end(); ++p)
+ for (ciPatch p = pgp->patches.begin(); p != pgp->patches.end(); ++p)
+ {
+ //const Patch& patch = *p;
+ Patch* patch = *p;
+ if(patch)
+ {
+ //QTreeWidgetItem* sitem = new QTreeWidgetItem;
+ ListViewData* sitem = new ListViewData(item);
+ //sitem->setText(0, patch.name);
+ //sitem->setText(0, p->name);
+ sitem->setText(0, patch->name);
+ //QVariant v = QVariant::fromValue((void*)patch);
+ //sitem->setData(0, Qt::UserRole, v);
+ //sitem->setData((void*)&*p);
+ sitem->setData((void*)patch);
+ //item->addChild(sitem);
+ }
+ }
+ }
+ }
+ //patchView->setSelected(patchView->item(0), true);
+
+ oldPatchItem = 0;
+
+ ListViewData* fc = (ListViewData*)patchView->firstChild();
+ if(fc)
+ {
+ // This may cause a patchChanged call.
+ //if(patchView->selectedItem() != fc)
+ patchView->blockSignals(true);
+ patchView->setSelected(fc, true);
+ patchView->blockSignals(false);
+ //else
+ // patchChanged();
+
+ //patchView->firstChild()->setSelected(true);
+ //patchView->triggerUpdate(true);
+ }
+
+ patchChanged();
+
+// oldPatchItem = (ListViewData*)patchView->selectedItem();
+ //patchChanged();
+// if(oldPatchItem)
+// {
+// if(oldPatchItem->parent())
+// patchNameEdit->setText( ((Patch*)oldPatchItem->data())->name );
+// else
+// patchNameEdit->setText( ((PatchGroup*)oldPatchItem->data())->name );
+// }
+
+ //MidiControllerList* cl = instrument->controller();
+ MidiControllerList* cl = workingInstrument.controller();
+ for (ciMidiController ic = cl->begin(); ic != cl->end(); ++ic) {
+ MidiController* c = ic->second;
+ //QListWidgetItem* item = new QListWidgetItem(c->name());
+ // ListBoxData* item = new ListBoxData(c->name());
+ //QVariant v = QVariant::fromValue((void*)c);
+ //item->setData(Qt::UserRole, v);
+ // item->setData((void*)c);
+ // listController->insertItem(item);
+
+ addControllerToView(c);
+ }
+
+
+ //listController->setItemSelected(listController->item(0), true);
+
+// oldController = 0;
+
+ //ListBoxData* ci = (ListBoxData*)listController->item(0);
+ ListViewData* ci = (ListViewData*)viewController->firstChild();
+
+ if(ci)
+ {
+ // This may cause a controllerChanged call.
+ //if(listController->selectedItem != ci)
+ // listController->blockSignals(true);
+ // listController->setSelected(ci, true);
+ // listController->blockSignals(false);
+ //else
+ // controllerChanged();
+
+ viewController->blockSignals(true);
+ viewController->setSelected(ci, true);
+ viewController->blockSignals(false);
+ }
+
+ controllerChanged();
+
+ //oldController = (ListBoxData*)listController->selectedItem();
+
+
+ //controllerChanged(listController->item(0), 0);
+ //controllerChanged();
+
+/*
+ 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);
+ }
+*/
+
+
+}
+
+//---------------------------------------------------------
+// instrumentChanged
+//---------------------------------------------------------
+
+void EditInstrument::instrumentChanged()
+ {
+ ListBoxData* sel = (ListBoxData*)instrumentList->selectedItem();
+ if(!sel)
+ return;
+
+ //printf("instrument changed: %s\n", sel->text().latin1());
+
+ //if (old) {
+ //if(oldMidiInstrument)
+ //{
+ //MidiInstrument* oi = (MidiInstrument*)old->data(Qt::UserRole).value<void*>();
+ MidiInstrument* oi = 0;
+ if(oldMidiInstrument)
+ oi = (MidiInstrument*)oldMidiInstrument->data();
+ MidiInstrument* wip = &workingInstrument;
+ // Returns true if aborted.
+ //checkDirty(oi);
+ //if(checkDirty(oi))
+ if(checkDirty(wip))
+ {
+ // No save was chosen. Abandon changes, or delete if it is new...
+ if(oi)
+ {
+ oldMidiInstrument->setText(oi->iname());
+ //wip->setText(oi->iname());
+
+ // No file path? Only a new unsaved instrument can do that. So delete it.
+ if(oi->filePath().isEmpty())
+ {
+ // Delete the list item and the instrument.
+ deleteInstrument(oldMidiInstrument);
+ oldMidiInstrument = 0;
+ }
+
+ instrumentList->triggerUpdate(true);
+ }
+ }
+ //else
+ //{
+ // Save was chosen.
+ // if(oi)
+ // oi->assign(workingInstrument);
+ //}
+
+ //oi->setDirty(false);
+ //wip->setDirty(false);
+ workingInstrument.setDirty(false);
+ //}
+
+ changeInstrument();
+
+ }
+
+//---------------------------------------------------------
+// instrumentNameReturn
+//---------------------------------------------------------
+
+void EditInstrument::instrumentNameReturn()
+//void EditInstrument::instrumentNameChanged(const QString& s)
+{
+ //instrumentNameChanged(instrumentName->text());
+ ListBoxData* item = (ListBoxData*)instrumentList->selectedItem();
+ if (item == 0)
+ return;
+ QString s = instrumentName->text();
+
+ if(s == item->text())
+ return;
+
+ MidiInstrument* curins = (MidiInstrument*)item->data();
+
+ for(iMidiInstrument i = midiInstruments.begin(); i != midiInstruments.end(); ++i)
+ {
+ if((*i) != curins && s == (*i)->iname())
+ {
+ instrumentName->blockSignals(true);
+ // Grab the last valid name from the item text, since the instrument has not been updated yet.
+ //instrumentName->setText(curins->iname());
+ instrumentName->setText(item->text());
+ instrumentName->blockSignals(false);
+
+ QMessageBox::critical(this,
+ tr("MusE: Bad instrument name"),
+ tr("Please choose a unique instrument name.\n(The name might be used by a hidden instrument.)"),
+ QMessageBox::Ok,
+ Qt::NoButton,
+ Qt::NoButton);
+
+ return;
+ }
+ }
+
+ //if (s != workingInstrument.iname()) {
+ item->setText(s);
+ //MidiInstrument* instrument = (MidiInstrument*)item->data(Qt::UserRole).value<void*>();
+ //MidiInstrument* instrument = (MidiInstrument*)item->data();
+ //instrument->setDirty(true);
+ workingInstrument.setIName(s);
+ workingInstrument.setDirty(true);
+ //instrumentList->updateItem(item);
+ instrumentList->triggerUpdate(true);
+ //instrumentList->update();
+ // }
+}
+
+//---------------------------------------------------------
+// deleteInstrument
+//---------------------------------------------------------
+
+void EditInstrument::deleteInstrument(ListBoxData* item)
+{
+ if(!item)
+ return;
+
+ //ListBoxData* curritem = (ListBoxData*)instrumentList->selectedItem();
+
+ MidiInstrument* ins = (MidiInstrument*)item->data();
+
+ // Be kind to the list item, just in case we install a delete handler or something.
+ //item->setData(0);
+
+ // Delete the list item.
+ // Test this: Is this going to change the current selection?
+ instrumentList->blockSignals(true);
+ delete item;
+ instrumentList->blockSignals(false);
+
+ // Test this: Neccessary?
+ // if(curritem)
+ // instrumentList->setCurrentItem(curritem);
+
+ if(!ins)
+ return;
+
+ // Remove the instrument from the list.
+ midiInstruments.remove(ins);
+
+ // Delete the instrument.
+ delete ins;
+}
+
+//---------------------------------------------------------
+// tabChanged
+// Added so that patch list is updated when switching tabs,
+// so that 'Program' default values and text are current in controller tab.
+//---------------------------------------------------------
+
+void EditInstrument::tabChanged(QWidget* w)
+{
+ if(!w)
+ return;
+
+ // If we're switching to the Patches tab, just ignore.
+ if(QString(w->name()) == QString("patchesTab"))
+ return;
+
+ if(oldPatchItem)
+ {
+ // Don't bother calling patchChanged, just update the patch or group.
+ if(oldPatchItem->parent())
+ updatePatch(&workingInstrument, (Patch*)oldPatchItem->data());
+ else
+ updatePatchGroup(&workingInstrument, (PatchGroup*)oldPatchItem->data());
+ }
+
+ // We're still on the same item. No need to set oldPatchItem as in patchChanged...
+
+ // If we're switching to the Controller tab, update the default patch button text in case a patch changed...
+ if(QString(w->name()) == QString("controllerTab"))
+ {
+ ListViewData* sel = (ListViewData*)viewController->selectedItem();
+
+ if(!sel || !sel->data())
+ return;
+
+ MidiController* c = (MidiController*)sel->data();
+ MidiController::ControllerType type = midiControllerType(c->num());
+
+ // Grab the controller number from the actual values showing
+ // and set the patch button text.
+ if(type == MidiController::Program)
+ setDefaultPatchName(getDefaultPatchNumber());
+ }
+}
+
+//---------------------------------------------------------
+// patchNameReturn
+//---------------------------------------------------------
+
+void EditInstrument::patchNameReturn()
+{
+ ListViewData* item = (ListViewData*)patchView->selectedItem();
+ if (item == 0)
+ return;
+
+ QString s = patchNameEdit->text();
+
+ if(item->text(0) == s)
+ return;
+
+ PatchGroupList* pg = workingInstrument.groups();
+ for(iPatchGroup g = pg->begin(); g != pg->end(); ++g)
+ {
+ PatchGroup* pgp = *g;
+ // If the item has a parent, it's a patch item.
+ if(item->parent())
+ {
+ Patch* curp = (Patch*)item->data();
+ for(iPatch p = pgp->patches.begin(); p != pgp->patches.end(); ++p)
+ {
+ if((*p) != curp && (*p)->name == s)
+ {
+ patchNameEdit->blockSignals(true);
+ // Grab the last valid name from the item text, since the patch has not been updated yet.
+ //patchNameEdit->setText(curp->name);
+ patchNameEdit->setText(item->text(0));
+ patchNameEdit->blockSignals(false);
+
+ QMessageBox::critical(this,
+ tr("MusE: Bad patch name"),
+ tr("Please choose a unique patch name"),
+ QMessageBox::Ok,
+ Qt::NoButton,
+ Qt::NoButton);
+
+ return;
+ }
+ }
+ }
+ else
+ // The item has no parent. It's a patch group item.
+ {
+ PatchGroup* curpg = (PatchGroup*)item->data();
+ if(pgp != curpg && pgp->name == s)
+ {
+ patchNameEdit->blockSignals(true);
+ // Grab the last valid name from the item text, since the patch group has not been updated yet.
+ //patchNameEdit->setText(curpg->name);
+ patchNameEdit->setText(item->text(0));
+ patchNameEdit->blockSignals(false);
+
+ QMessageBox::critical(this,
+ tr("MusE: Bad patchgroup name"),
+ tr("Please choose a unique patchgroup name"),
+ QMessageBox::Ok,
+ Qt::NoButton,
+ Qt::NoButton);
+
+ return;
+ }
+ }
+ }
+
+ item->setText(0, s);
+ workingInstrument.setDirty(true);
+
+ // Since the name of the patch/group in the working instrument will be updated later,
+ // there's no need to do manually set the name here now.
+ /*
+ // If the item has a parent, it's a patch item.
+ if(item->parent())
+ {
+ Patch* p = item->data();
+ if(s != p->name)
+ {
+ item->setText(s);
+ p->name = s;
+ workingInstrument.setDirty(true);
+ //patchView->triggerUpdate(true);
+ }
+ }
+ else
+ // The item has no parent. It's a patch group item.
+ {
+ PatchGroup* pg = (PatchGroup*)item->data();
+ if(s != pg->name)
+ {
+ item->setText(s);
+ pg->name = s;
+ workingInstrument.setDirty(true);
+ //patchView->triggerUpdate(true);
+ }
+ }
+ */
+}
+
+//---------------------------------------------------------
+// patchChanged
+//---------------------------------------------------------
+
+void EditInstrument::patchChanged()
+ {
+ //if (old && old->data(0, Qt::UserRole).value<void*>()) {
+ if(oldPatchItem)
+ {
+ //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(oldPatchItem->parent())
+ updatePatch(&workingInstrument, (Patch*)oldPatchItem->data());
+ else
+ updatePatchGroup(&workingInstrument, (PatchGroup*)oldPatchItem->data());
+ }
+
+
+ ListViewData* sel = (ListViewData*)patchView->selectedItem();
+ oldPatchItem = sel;
+
+ if(!sel || !sel->data())
+ {
+ patchNameEdit->setText("");
+ spinBoxHBank->setEnabled(false);
+ spinBoxLBank->setEnabled(false);
+ spinBoxProgram->setEnabled(false);
+ checkBoxDrum->setEnabled(false);
+ checkBoxGM->setEnabled(false);
+ checkBoxGS->setEnabled(false);
+ checkBoxXG->setEnabled(false);
+ return;
+ }
+
+ // If the item has a parent, it's a patch item.
+ if(sel->parent())
+ {
+ Patch* p = (Patch*)sel->data();
+ patchNameEdit->setText(p->name);
+ spinBoxHBank->setEnabled(true);
+ spinBoxLBank->setEnabled(true);
+ spinBoxProgram->setEnabled(true);
+ checkBoxDrum->setEnabled(true);
+ checkBoxGM->setEnabled(true);
+ checkBoxGS->setEnabled(true);
+ checkBoxXG->setEnabled(true);
+
+ int hb = ((p->hbank + 1) & 0xff);
+ int lb = ((p->lbank + 1) & 0xff);
+ int pr = ((p->prog + 1) & 0xff);
+ spinBoxHBank->setValue(hb);
+ spinBoxLBank->setValue(lb);
+ spinBoxProgram->setValue(pr);
+ //checkBoxDrum->setChecked(p->drumMap);
+ checkBoxDrum->setChecked(p->drum);
+ checkBoxGM->setChecked(p->typ & 1);
+ checkBoxGS->setChecked(p->typ & 2);
+ checkBoxXG->setChecked(p->typ & 4);
+ //category->setCurrentIndex(p->categorie);
+ }
+ else
+ // The item is a patch group item.
+ {
+ patchNameEdit->setText( ((PatchGroup*)sel->data())->name );
+ spinBoxHBank->setEnabled(false);
+ spinBoxLBank->setEnabled(false);
+ spinBoxProgram->setEnabled(false);
+ checkBoxDrum->setEnabled(false);
+ checkBoxGM->setEnabled(false);
+ checkBoxGS->setEnabled(false);
+ checkBoxXG->setEnabled(false);
+ }
+ }
+
+//---------------------------------------------------------
+// defPatchChanged
+//---------------------------------------------------------
+
+void EditInstrument::defPatchChanged(int)
+{
+ ListViewData* item = (ListViewData*)viewController->selectedItem();
+ if (!item)
+ return;
+
+ MidiController* c = (MidiController*)item->data();
+
+ int val = getDefaultPatchNumber();
+
+ //if(val == c->minVal() - 1)
+ // c->setInitVal(CTRL_VAL_UNKNOWN);
+ //else
+ c->setInitVal(val);
+
+ setDefaultPatchName(val);
+
+ item->setText(COL_DEF, getPatchItemText(val));
+ workingInstrument.setDirty(true);
+}
+
+//---------------------------------------------------------
+// patchButtonClicked
+//---------------------------------------------------------
+
+void EditInstrument::patchButtonClicked()
+{
+ //MidiTrack* track = (MidiTrack*)selected;
+ //int channel = track->outChannel();
+ //int port = track->outPort();
+ //MidiInstrument* instr = midiPorts[port].instrument();
+
+ patchpopup->clear();
+
+ PatchGroupList* pg = workingInstrument.groups();
+
+ if (pg->size() > 1) {
+ for (ciPatchGroup i = pg->begin(); i != pg->end(); ++i) {
+ PatchGroup* pgp = *i;
+ Q3PopupMenu* pm = new Q3PopupMenu(patchpopup);
+ pm->setCheckable(false);
+ pm->setFont(config.fonts[0]);
+ const PatchList& pl = pgp->patches;
+ for (ciPatch ipl = pl.begin(); ipl != pl.end(); ++ipl) {
+ const Patch* mp = *ipl;
+ //if ((mp->typ & mask) &&
+ // ((drum && songType != MT_GM) ||
+ // (mp->drum == drumchan)) )
+
+ // {
+ int id = ((mp->hbank & 0xff) << 16)
+ + ((mp->lbank & 0xff) << 8) + (mp->prog & 0xff);
+ pm->insertItem(mp->name, id);
+ // }
+
+ }
+ patchpopup->insertItem(pgp->name, pm);
+ }
+ }
+ else if (pg->size() == 1 ){
+ // no groups
+ const PatchList& pl = pg->front()->patches;
+ for (ciPatch 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);
+ patchpopup->insertItem(mp->name, id);
+ // }
+ }
+ }
+
+ if(patchpopup->count() == 0)
+ return;
+
+ int rv = patchpopup->exec(patchButton->mapToGlobal(QPoint(10,5)));
+
+ if (rv != -1)
+ {
+ //if(rv != workingInstrument.
+
+ setDefaultPatchControls(rv);
+
+ ListViewData* item = (ListViewData*)viewController->selectedItem();
+ if(item)
+ {
+ MidiController* c = (MidiController*)item->data();
+ c->setInitVal(rv);
+
+ item->setText(COL_DEF, getPatchItemText(rv));
+ }
+ workingInstrument.setDirty(true);
+ }
+
+}
+
+//---------------------------------------------------------
+// addControllerToView
+//---------------------------------------------------------
+
+ListViewData* EditInstrument::addControllerToView(MidiController* mctrl)
+{
+ QString hnum;
+ QString lnum;
+ QString min;
+ QString max;
+ QString def;
+ int defval = mctrl->initVal();
+ int n = mctrl->num();
+ //int h = (n >> 7) & 0x7f;
+ int h = (n >> 8) & 0x7f;
+ int l = n & 0x7f;
+ if((n & 0xff) == 0xff)
+ l = -1;
+
+ MidiController::ControllerType t = midiControllerType(n);
+ switch(t)
+ {
+ case MidiController::Controller7:
+ //case MidiController::RPN:
+ //case MidiController::NRPN:
+ hnum = "---";
+ if(l == -1)
+ lnum = "*";
+ else
+ lnum.setNum(l);
+ min.setNum(mctrl->minVal());
+ max.setNum(mctrl->maxVal());
+ if(defval == CTRL_VAL_UNKNOWN)
+ def = "---";
+ else
+ def.setNum(defval);
+ break;
+ case MidiController::RPN:
+ case MidiController::NRPN:
+ case MidiController::RPN14:
+ case MidiController::NRPN14:
+ case MidiController::Controller14:
+ hnum.setNum(h);
+ if(l == -1)
+ lnum = "*";
+ else
+ lnum.setNum(l);
+ min.setNum(mctrl->minVal());
+ max.setNum(mctrl->maxVal());
+ if(defval == CTRL_VAL_UNKNOWN)
+ def = "---";
+ else
+ def.setNum(defval);
+ break;
+ case MidiController::Pitch:
+ hnum = "---";
+ lnum = "---";
+ min.setNum(mctrl->minVal());
+ max.setNum(mctrl->maxVal());
+ if(defval == CTRL_VAL_UNKNOWN)
+ def = "---";
+ else
+ def.setNum(defval);
+ break;
+ case MidiController::Program:
+ hnum = "---";
+ lnum = "---";
+ min = "---";
+ max = "---";
+ def = getPatchItemText(defval);
+ break;
+
+ default:
+ hnum = "---";
+ lnum = "---";
+ //min.setNum(0);
+ //max.setNum(0);
+ min = "---";
+ max = "---";
+ def = "---";
+ break;
+ }
+
+ ListViewData* ci = new ListViewData(viewController, mctrl->name(), int2ctrlType(t),
+ hnum, lnum, min, max, def);
+ ci->setData((void*)mctrl);
+ //setModified(true);
+
+ return ci;
+}
+
+//---------------------------------------------------------
+// controllerChanged
+//---------------------------------------------------------
+
+void EditInstrument::controllerChanged()
+ {
+ //if (old) {
+// if(oldController)
+// {
+ //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);
+// updateController(&workingInstrument, (MidiController*)oldController->data());
+// }
+
+ // ListBoxData* sel = (ListBoxData*)listController->selectedItem();
+ ListViewData* sel = (ListViewData*)viewController->selectedItem();
+// oldController = sel;
+
+ if(!sel || !sel->data())
+ {
+ ctrlName->blockSignals(true);
+ ctrlName->setText("");
+ ctrlName->blockSignals(false);
+ //ctrlComment->setText("");
+ return;
+ }
+
+ //MidiController* c = (MidiController*)sel->data(Qt::UserRole).value<void*>();
+ MidiController* c = (MidiController*)sel->data();
+
+ ctrlName->blockSignals(true);
+ ctrlName->setText(c->name());
+ ctrlName->blockSignals(false);
+
+ //ctrlComment->setText(c->comment());
+ int ctrlH = (c->num() >> 8) & 0x7f;
+ int ctrlL = c->num() & 0x7f;
+ if((c->num() & 0xff) == 0xff)
+ ctrlL = -1;
+
+ //int type = int(c->type());
+ MidiController::ControllerType type = midiControllerType(c->num());
+
+ //ctrlType->setCurrentIndex(type);
+ ctrlType->blockSignals(true);
+ ctrlType->setCurrentItem(type);
+ ctrlType->blockSignals(false);
+
+ //ctrlTypeChanged(type);
+
+ spinBoxHCtrlNo->blockSignals(true);
+ spinBoxLCtrlNo->blockSignals(true);
+ spinBoxMin->blockSignals(true);
+ spinBoxMax->blockSignals(true);
+ spinBoxDefault->blockSignals(true);
+
+ //ctrlTypeChanged(type);
+
+ switch (type) {
+ //case MidiController::RPN:
+ //case MidiController::NRPN:
+ case MidiController::Controller7:
+ spinBoxHCtrlNo->setEnabled(false);
+ spinBoxLCtrlNo->setEnabled(true);
+ spinBoxHCtrlNo->setValue(0);
+ spinBoxLCtrlNo->setValue(ctrlL);
+ spinBoxMin->setEnabled(true);
+ spinBoxMax->setEnabled(true);
+ spinBoxMin->setRange(-128, 127);
+ spinBoxMax->setRange(-128, 127);
+ spinBoxMin->setValue(c->minVal());
+ spinBoxMax->setValue(c->maxVal());
+ enableDefaultControls(true, false);
+ break;
+ case MidiController::RPN:
+ case MidiController::NRPN:
+ spinBoxHCtrlNo->setEnabled(true);
+ spinBoxLCtrlNo->setEnabled(true);
+ spinBoxHCtrlNo->setValue(ctrlH);
+ spinBoxLCtrlNo->setValue(ctrlL);
+ spinBoxMin->setEnabled(true);
+ spinBoxMax->setEnabled(true);
+ spinBoxMin->setRange(-128, 127);
+ spinBoxMax->setRange(-128, 127);
+ spinBoxMin->setValue(c->minVal());
+ spinBoxMax->setValue(c->maxVal());
+ enableDefaultControls(true, false);
+ break;
+ case MidiController::Controller14:
+ case MidiController::RPN14:
+ case MidiController::NRPN14:
+ spinBoxHCtrlNo->setEnabled(true);
+ spinBoxLCtrlNo->setEnabled(true);
+ spinBoxHCtrlNo->setValue(ctrlH);
+ spinBoxLCtrlNo->setValue(ctrlL);
+ spinBoxMin->setEnabled(true);
+ spinBoxMax->setEnabled(true);
+ spinBoxMin->setRange(-16384, 16383);
+ spinBoxMax->setRange(-16384, 16383);
+ spinBoxMin->setValue(c->minVal());
+ spinBoxMax->setValue(c->maxVal());
+ enableDefaultControls(true, false);
+ break;
+ case MidiController::Pitch:
+ spinBoxHCtrlNo->setEnabled(false);
+ spinBoxLCtrlNo->setEnabled(false);
+ spinBoxHCtrlNo->setValue(0);
+ spinBoxLCtrlNo->setValue(0);
+ spinBoxMin->setEnabled(true);
+ spinBoxMax->setEnabled(true);
+ spinBoxMin->setRange(-8192, 8191);
+ spinBoxMax->setRange(-8192, 8191);
+ spinBoxMin->setValue(c->minVal());
+ spinBoxMax->setValue(c->maxVal());
+ enableDefaultControls(true, false);
+ break;
+ case MidiController::Program:
+ spinBoxHCtrlNo->setEnabled(false);
+ spinBoxLCtrlNo->setEnabled(false);
+ spinBoxHCtrlNo->setValue(0);
+ spinBoxLCtrlNo->setValue(0);
+ spinBoxMin->setEnabled(false);
+ spinBoxMax->setEnabled(false);
+ spinBoxMin->setRange(0, 0);
+ spinBoxMax->setRange(0, 0);
+ spinBoxMin->setValue(0);
+ spinBoxMax->setValue(0);
+ enableDefaultControls(false, true);
+ break;
+ default:
+ spinBoxHCtrlNo->setEnabled(false);
+ spinBoxLCtrlNo->setEnabled(false);
+ spinBoxMin->setEnabled(false);
+ spinBoxMax->setEnabled(false);
+ enableDefaultControls(false, false);
+ break;
+ }
+
+ if(type == MidiController::Program)
+ {
+ spinBoxDefault->setRange(0, 0);
+ spinBoxDefault->setValue(0);
+ setDefaultPatchControls(c->initVal());
+ }
+ else
+ {
+ spinBoxDefault->setRange(c->minVal() - 1, c->maxVal());
+ if(c->initVal() == CTRL_VAL_UNKNOWN)
+ //spinBoxDefault->setValue(c->minVal() - 1);
+ spinBoxDefault->setValue(spinBoxDefault->minValue());
+ else
+ spinBoxDefault->setValue(c->initVal());
+ }
+
+ //moveWithPart->setChecked(c->moveWithPart());
+
+ spinBoxHCtrlNo->blockSignals(false);
+ spinBoxLCtrlNo->blockSignals(false);
+ spinBoxMin->blockSignals(false);
+ spinBoxMax->blockSignals(false);
+ spinBoxDefault->blockSignals(false);
+ }
+
+//---------------------------------------------------------
+// ctrlNameReturn
+//---------------------------------------------------------
+
+void EditInstrument::ctrlNameReturn()
+//void EditInstrument::ctrlNameChanged(const QString& s)
+{
+ ListViewData* item = (ListViewData*)viewController->selectedItem();
+ if (item == 0)
+ return;
+ MidiController* c = (MidiController*)item->data();
+
+ QString cName = ctrlName->text();
+
+ if(c->name() == cName)
+ return;
+
+ //MidiControllerList* cl = instrument->controller();
+ MidiControllerList* cl = workingInstrument.controller();
+ for(ciMidiController ic = cl->begin(); ic != cl->end(); ++ic)
+ {
+ MidiController* mc = ic->second;
+ if(mc != c && mc->name() == cName)
+ {
+ ctrlName->blockSignals(true);
+ ctrlName->setText(c->name());
+ ctrlName->blockSignals(false);
+
+ QMessageBox::critical(this,
+ tr("MusE: Bad controller name"),
+ tr("Please choose a unique controller name"),
+ QMessageBox::Ok,
+ Qt::NoButton,
+ Qt::NoButton);
+
+ return;
+ }
+ }
+
+ c->setName(ctrlName->text());
+ item->setText(COL_NAME, ctrlName->text());
+ //c->setName(s);
+ //item->setText(COL_NAME, s);
+ workingInstrument.setDirty(true);
+}
+
+//---------------------------------------------------------
+// ctrlTypeChanged
+//---------------------------------------------------------
+
+void EditInstrument::ctrlTypeChanged(int idx)
+ {
+ ListViewData* item = (ListViewData*)viewController->selectedItem();
+ if (item == 0)
+ return;
+
+ MidiController::ControllerType t = (MidiController::ControllerType)idx;
+ MidiController* c = (MidiController*)item->data();
+ if(t == midiControllerType(c->num()))
+ return;
+
+ //if(item)
+ item->setText(COL_TYPE, ctrlType->currentText());
+
+ int hnum = 0, lnum = 0;
+ //int rng = 0;
+ //int min = 0, max = 0;
+
+ spinBoxMin->blockSignals(true);
+ spinBoxMax->blockSignals(true);
+ spinBoxDefault->blockSignals(true);
+
+ switch (t) {
+ //case MidiController::RPN:
+ //case MidiController::NRPN:
+ case MidiController::Controller7:
+ spinBoxHCtrlNo->setEnabled(false);
+ spinBoxLCtrlNo->setEnabled(true);
+ spinBoxMin->setEnabled(true);
+ spinBoxMax->setEnabled(true);
+ enableDefaultControls(true, false);
+ spinBoxMin->setRange(-128, 127);
+ spinBoxMax->setRange(-128, 127);
+
+ spinBoxMin->setValue(0);
+ spinBoxMax->setValue(127);
+ spinBoxDefault->setRange(spinBoxMin->value() - 1, spinBoxMax->value());
+
+ spinBoxDefault->setValue(spinBoxDefault->minValue());
+ lnum = spinBoxLCtrlNo->value();
+ //rng = 127;
+ //min = -128;
+ //max = 127;
+ //if(item)
+ //{
+ //item->setText(COL_LNUM, QString().setNum(spinBoxLCtrlNo->value()));
+ if(lnum == -1)
+ item->setText(COL_LNUM, QString("*"));
+ else
+ item->setText(COL_LNUM, QString().setNum(lnum));
+ item->setText(COL_HNUM, QString("---"));
+ item->setText(COL_MIN, QString().setNum(spinBoxMin->value()));
+ item->setText(COL_MAX, QString().setNum(spinBoxMax->value()));
+ item->setText(COL_DEF, QString("---"));
+ //}
+ break;
+ case MidiController::RPN:
+ case MidiController::NRPN:
+ spinBoxHCtrlNo->setEnabled(true);
+ spinBoxLCtrlNo->setEnabled(true);
+ spinBoxMin->setEnabled(true);
+ spinBoxMax->setEnabled(true);
+ enableDefaultControls(true, false);
+ spinBoxMin->setRange(-128, 127);
+ spinBoxMax->setRange(-128, 127);
+
+ spinBoxMin->setValue(0);
+ spinBoxMax->setValue(127);
+ spinBoxDefault->setRange(spinBoxMin->value() - 1, spinBoxMax->value());
+ spinBoxDefault->setValue(spinBoxDefault->minValue());
+
+ hnum = spinBoxHCtrlNo->value();
+ lnum = spinBoxLCtrlNo->value();
+ //rng = 127;
+ //min = -128;
+ //max = 127;
+ //if(item)
+ //{
+ //item->setText(COL_LNUM, QString().setNum(spinBoxLCtrlNo->value()));
+ //item->setText(COL_HNUM, QString().setNum(spinBoxHCtrlNo->value()));
+ if(lnum == -1)
+ item->setText(COL_LNUM, QString("*"));
+ else
+ item->setText(COL_LNUM, QString().setNum(lnum));
+ item->setText(COL_HNUM, QString().setNum(hnum));
+ item->setText(COL_MIN, QString().setNum(spinBoxMin->value()));
+ item->setText(COL_MAX, QString().setNum(spinBoxMax->value()));
+ item->setText(COL_DEF, QString("---"));
+ //}
+ break;
+ case MidiController::Controller14:
+ case MidiController::RPN14:
+ case MidiController::NRPN14:
+ spinBoxHCtrlNo->setEnabled(true);
+ spinBoxLCtrlNo->setEnabled(true);
+ spinBoxMin->setEnabled(true);
+ spinBoxMax->setEnabled(true);
+ enableDefaultControls(true, false);
+ spinBoxMin->setRange(-16384, 16383);
+ spinBoxMax->setRange(-16384, 16383);
+
+ spinBoxMin->setValue(0);
+ spinBoxMax->setValue(16383);
+ spinBoxDefault->setRange(spinBoxMin->value() - 1, spinBoxMax->value());
+ spinBoxDefault->setValue(spinBoxDefault->minValue());
+
+ hnum = spinBoxHCtrlNo->value();
+ lnum = spinBoxLCtrlNo->value();
+ //rng = 16383;
+ //min = -16384;
+ //max = 16383;
+ //if(item)
+ //{
+ //item->setText(COL_LNUM, QString().setNum(spinBoxLCtrlNo->value()));
+ //item->setText(COL_HNUM, QString().setNum(spinBoxHCtrlNo->value()));
+ if(lnum == -1)
+ item->setText(COL_LNUM, QString("*"));
+ else
+ item->setText(COL_LNUM, QString().setNum(lnum));
+ item->setText(COL_HNUM, QString().setNum(hnum));
+ item->setText(COL_MIN, QString().setNum(spinBoxMin->value()));
+ item->setText(COL_MAX, QString().setNum(spinBoxMax->value()));
+ item->setText(COL_DEF, QString("---"));
+ //}
+ break;
+ case MidiController::Pitch:
+ spinBoxHCtrlNo->setEnabled(false);
+ spinBoxLCtrlNo->setEnabled(false);
+ spinBoxMin->setEnabled(true);
+ spinBoxMax->setEnabled(true);
+ enableDefaultControls(true, false);
+ spinBoxMin->setRange(-8192, 8191);
+ spinBoxMax->setRange(-8192, 8191);
+
+ spinBoxMin->setValue(-8192);
+ spinBoxMax->setValue(8191);
+ spinBoxDefault->setRange(spinBoxMin->value() - 1, spinBoxMax->value());
+ spinBoxDefault->setValue(spinBoxDefault->minValue());
+
+ //rng = 8191;
+ //min = -8192;
+ //max = 8191;
+ //if(item)
+ //{
+ item->setText(COL_LNUM, QString("---"));
+ item->setText(COL_HNUM, QString("---"));
+ item->setText(COL_MIN, QString().setNum(spinBoxMin->value()));
+ item->setText(COL_MAX, QString().setNum(spinBoxMax->value()));
+ item->setText(COL_DEF, QString("---"));
+ //}
+ break;
+ case MidiController::Program:
+ spinBoxHCtrlNo->setEnabled(false);
+ spinBoxLCtrlNo->setEnabled(false);
+ spinBoxMin->setEnabled(false);
+ spinBoxMax->setEnabled(false);
+ enableDefaultControls(false, true);
+ spinBoxMin->setRange(0, 0);
+ spinBoxMax->setRange(0, 0);
+
+ spinBoxMin->setValue(0);
+ spinBoxMax->setValue(0);
+ spinBoxDefault->setRange(0, 0);
+ spinBoxDefault->setValue(0);
+
+ //if(item)
+ //{
+ item->setText(COL_LNUM, QString("---"));
+ item->setText(COL_HNUM, QString("---"));
+ item->setText(COL_MIN, QString("---"));
+ item->setText(COL_MAX, QString("---"));
+
+ //item->setText(COL_DEF, QString("0-0-0"));
+ item->setText(COL_DEF, QString("---"));
+ //}
+ break;
+ // Shouldn't happen...
+ default:
+ spinBoxHCtrlNo->setEnabled(false);
+ spinBoxLCtrlNo->setEnabled(false);
+ spinBoxMin->setEnabled(false);
+ spinBoxMax->setEnabled(false);
+ enableDefaultControls(false, false);
+
+ spinBoxMin->blockSignals(false);
+ spinBoxMax->blockSignals(false);
+ return;
+
+ break;
+ }
+
+ spinBoxMin->blockSignals(false);
+ spinBoxMax->blockSignals(false);
+ spinBoxDefault->blockSignals(false);
+
+ c->setNum(MidiController::genNum(t, hnum, lnum));
+
+ setDefaultPatchControls(0xffffff);
+ if(t == MidiController::Program)
+ {
+ c->setMinVal(0);
+ c->setMaxVal(0xffffff);
+ c->setInitVal(0xffffff);
+ }
+ else
+ {
+ c->setMinVal(spinBoxMin->value());
+ c->setMaxVal(spinBoxMax->value());
+ if(spinBoxDefault->value() == spinBoxDefault->minValue())
+ c->setInitVal(CTRL_VAL_UNKNOWN);
+ else
+ c->setInitVal(spinBoxDefault->value());
+ }
+
+
+ /*
+
+ if(rng != 0)
+ {
+ int mn = c->minVal();
+ int mx = c->maxVal();
+ //if(val > item->text(COL_MAX).toInt())
+ if(mx > max)
+ {
+ c->setMaxVal(max);
+ spinBoxMax->blockSignals(true);
+ spinBoxMax->setValue(max);
+ spinBoxMax->blockSignals(false);
+ if(item)
+ item->setText(COL_MAX, QString().setNum(max));
+ }
+ //else
+ if(mn < min)
+ {
+ c->setMinVal(min);
+ spinBoxMin->blockSignals(true);
+ spinBoxMin->setValue(min);
+ spinBoxMin->blockSignals(false);
+ if(item)
+ item->setText(COL_MIN, QString().setNum(min));
+ }
+ //else
+ if(mx - mn > rng)
+ {
+ //mx = val + rng;
+ c->setMinVal(0);
+ c->setMaxVal(rng);
+ spinBoxMin->blockSignals(true);
+ spinBoxMax->blockSignals(true);
+ spinBoxMin->setValue(0);
+ spinBoxMax->setValue(rng);
+ spinBoxMin->blockSignals(false);
+ spinBoxMax->blockSignals(false);
+ if(item)
+ {
+ item->setText(COL_MIN, QString().setNum(0));
+ item->setText(COL_MAX, QString().setNum(rng));
+ }
+ }
+
+ spinBoxDefault->blockSignals(true);
+
+ spinBoxDefault->setRange(spinBoxMin->value() - 1, spinBoxMax->value());
+ int inval = c->initVal();
+ if(inval == CTRL_VAL_UNKNOWN)
+ spinBoxDefault->setValue(spinBoxDefault->minValue());
+ else
+ {
+ if(inval < c->minVal())
+ {
+ c->setInitVal(c->minVal());
+ spinBoxDefault->setValue(c->minVal());
+ }
+ else
+ if(inval > c->maxVal())
+ {
+ c->setInitVal(c->maxVal());
+ spinBoxDefault->setValue(c->maxVal());
+ }
+ }
+
+ //spinBoxDefault->setRange(c->minVal() - 1, c->maxVal());
+ spinBoxDefault->blockSignals(false);
+
+ }
+
+ */
+
+ workingInstrument.setDirty(true);
+ }
+
+//---------------------------------------------------------
+// ctrlHNumChanged
+//---------------------------------------------------------
+
+void EditInstrument::ctrlHNumChanged(int val)
+ {
+ ListViewData* item = (ListViewData*)viewController->selectedItem();
+ if (item == 0)
+ return;
+ QString s;
+ s.setNum(val);
+ MidiController* c = (MidiController*)item->data();
+ //int n = c->num() & 0xff;
+ int n = c->num() & 0x7fff00ff;
+ c->setNum(n | ((val & 0xff) << 8));
+ item->setText(COL_HNUM, s);
+ workingInstrument.setDirty(true);
+ }
+
+//---------------------------------------------------------
+// ctrlLNumChanged
+//---------------------------------------------------------
+
+void EditInstrument::ctrlLNumChanged(int val)
+ {
+ ListViewData* item = (ListViewData*)viewController->selectedItem();
+ if (item == 0)
+ return;
+ MidiController* c = (MidiController*)item->data();
+ //int n = c->num() & 0xff00;
+ int n = c->num() & ~0xff;
+ c->setNum(n | (val & 0xff));
+ if(val == -1)
+ item->setText(COL_LNUM, QString("*"));
+ else
+ {
+ QString s;
+ s.setNum(val);
+ item->setText(COL_LNUM, s);
+ }
+ workingInstrument.setDirty(true);
+ }
+
+//---------------------------------------------------------
+// ctrlMinChanged
+//---------------------------------------------------------
+
+void EditInstrument::ctrlMinChanged(int val)
+{
+ ListViewData* item = (ListViewData*)viewController->selectedItem();
+ if (item == 0)
+ return;
+
+ QString s;
+ s.setNum(val);
+ item->setText(COL_MIN, s);
+
+ MidiController* c = (MidiController*)item->data();
+ c->setMinVal(val);
+
+ int rng = 0;
+ //switch((MidiController::ControllerType)ctrlType->currentItem())
+ switch(midiControllerType(c->num()))
+ {
+ case MidiController::Controller7:
+ case MidiController::RPN:
+ case MidiController::NRPN:
+ rng = 127;
+ break;
+ case MidiController::Controller14:
+ case MidiController::RPN14:
+ case MidiController::NRPN14:
+ case MidiController::Pitch:
+ rng = 16383;
+ break;
+ default:
+ break;
+ }
+
+ int mx = c->maxVal();
+
+ //if(val > item->text(COL_MAX).toInt())
+ if(val > mx)
+ {
+ c->setMaxVal(val);
+ spinBoxMax->blockSignals(true);
+ spinBoxMax->setValue(val);
+ spinBoxMax->blockSignals(false);
+ item->setText(COL_MAX, s);
+ }
+ else
+ if(mx - val > rng)
+ {
+ mx = val + rng;
+ c->setMaxVal(mx);
+ spinBoxMax->blockSignals(true);
+ spinBoxMax->setValue(mx);
+ spinBoxMax->blockSignals(false);
+ item->setText(COL_MAX, QString().setNum(mx));
+ }
+
+ spinBoxDefault->blockSignals(true);
+
+ spinBoxDefault->setRange(spinBoxMin->value() - 1, spinBoxMax->value());
+
+ int inval = c->initVal();
+ if(inval == CTRL_VAL_UNKNOWN)
+ spinBoxDefault->setValue(spinBoxDefault->minValue());
+ else
+ {
+ if(inval < c->minVal())
+ {
+ c->setInitVal(c->minVal());
+ spinBoxDefault->setValue(c->minVal());
+ }
+ else
+ if(inval > c->maxVal())
+ {
+ c->setInitVal(c->maxVal());
+ spinBoxDefault->setValue(c->maxVal());
+ }
+ }
+
+ spinBoxDefault->blockSignals(false);
+
+ workingInstrument.setDirty(true);
+}
+
+//---------------------------------------------------------
+// ctrlMaxChanged
+//---------------------------------------------------------
+
+void EditInstrument::ctrlMaxChanged(int val)
+{
+ ListViewData* item = (ListViewData*)viewController->selectedItem();
+ if (item == 0)
+ return;
+
+ QString s;
+ s.setNum(val);
+ item->setText(COL_MAX, s);
+
+ MidiController* c = (MidiController*)item->data();
+ c->setMaxVal(val);
+
+ int rng = 0;
+ //switch((MidiController::ControllerType)ctrlType->currentItem())
+ switch(midiControllerType(c->num()))
+ {
+ case MidiController::Controller7:
+ case MidiController::RPN:
+ case MidiController::NRPN:
+ rng = 127;
+ break;
+ case MidiController::Controller14:
+ case MidiController::RPN14:
+ case MidiController::NRPN14:
+ case MidiController::Pitch:
+ rng = 16383;
+ break;
+ default:
+ break;
+ }
+
+ int mn = c->minVal();
+
+ //if(val < item->text(COL_MIN).toInt())
+ if(val < mn)
+ {
+ c->setMinVal(val);
+ spinBoxMin->blockSignals(true);
+ spinBoxMin->setValue(val);
+ spinBoxMin->blockSignals(false);
+ item->setText(COL_MIN, s);
+ }
+ else
+ if(val - mn > rng)
+ {
+ mn = val - rng;
+ c->setMinVal(mn);
+ spinBoxMin->blockSignals(true);
+ spinBoxMin->setValue(mn);
+ spinBoxMin->blockSignals(false);
+ item->setText(COL_MIN, QString().setNum(mn));
+ }
+
+ spinBoxDefault->blockSignals(true);
+
+ spinBoxDefault->setRange(spinBoxMin->value() - 1, spinBoxMax->value());
+
+ int inval = c->initVal();
+ if(inval == CTRL_VAL_UNKNOWN)
+ spinBoxDefault->setValue(spinBoxDefault->minValue());
+ else
+ {
+ if(inval < c->minVal())
+ {
+ c->setInitVal(c->minVal());
+ spinBoxDefault->setValue(c->minVal());
+ }
+ else
+ if(inval > c->maxVal())
+ {
+ c->setInitVal(c->maxVal());
+ spinBoxDefault->setValue(c->maxVal());
+ }
+ }
+
+ spinBoxDefault->blockSignals(false);
+
+ workingInstrument.setDirty(true);
+}
+
+//---------------------------------------------------------
+// ctrlDefaultChanged
+//---------------------------------------------------------
+
+void EditInstrument::ctrlDefaultChanged(int val)
+{
+ ListViewData* item = (ListViewData*)viewController->selectedItem();
+ if (item == 0)
+ return;
+
+ MidiController* c = (MidiController*)item->data();
+
+ if(val == c->minVal() - 1)
+ {
+ c->setInitVal(CTRL_VAL_UNKNOWN);
+ item->setText(COL_DEF, QString("---"));
+ }
+ else
+ {
+ c->setInitVal(val);
+ item->setText(COL_DEF, QString().setNum(val));
+ }
+ workingInstrument.setDirty(true);
+}
+
+//---------------------------------------------------------
+// ctrlNullParamHChanged
+//---------------------------------------------------------
+
+void EditInstrument::ctrlNullParamHChanged(int nvh)
+{
+ int nvl = nullParamSpinBoxL->value();
+ if(nvh == -1)
+ {
+ nullParamSpinBoxL->blockSignals(true);
+ nullParamSpinBoxL->setValue(-1);
+ nullParamSpinBoxL->blockSignals(false);
+ nvl = -1;
+ }
+ else
+ {
+ if(nvl == -1)
+ {
+ nullParamSpinBoxL->blockSignals(true);
+ nullParamSpinBoxL->setValue(0);
+ nullParamSpinBoxL->blockSignals(false);
+ nvl = 0;
+ }
+ }
+ if(nvh == -1 && nvl == -1)
+ workingInstrument.setNullSendValue(-1);
+ else
+ workingInstrument.setNullSendValue((nvh << 8) | nvl);
+ workingInstrument.setDirty(true);
+}
+
+//---------------------------------------------------------
+// ctrlNullParamLChanged
+//---------------------------------------------------------
+
+void EditInstrument::ctrlNullParamLChanged(int nvl)
+{
+ int nvh = nullParamSpinBoxH->value();
+ if(nvl == -1)
+ {
+ nullParamSpinBoxH->blockSignals(true);
+ nullParamSpinBoxH->setValue(-1);
+ nullParamSpinBoxH->blockSignals(false);
+ nvh = -1;
+ }
+ else
+ {
+ if(nvh == -1)
+ {
+ nullParamSpinBoxH->blockSignals(true);
+ nullParamSpinBoxH->setValue(0);
+ nullParamSpinBoxH->blockSignals(false);
+ nvh = 0;
+ }
+ }
+ if(nvh == -1 && nvl == -1)
+ workingInstrument.setNullSendValue(-1);
+ else
+ workingInstrument.setNullSendValue((nvh << 8) | nvl);
+ workingInstrument.setDirty(true);
+}
+
+//---------------------------------------------------------
+// deletePatchClicked
+//---------------------------------------------------------
+
+void EditInstrument::deletePatchClicked()
+ {
+ //QListWidgetItem* item = instrumentList->currentItem();
+// ListBoxData* item = (ListBoxData*)instrumentList->selectedItem();
+// if (item == 0)
+// return;
+ //MidiInstrument* instrument = (MidiInstrument*)item->data(Qt::UserRole).value<void*>();
+// MidiInstrument* instrument = (MidiInstrument*)item->data();
+ //QTreeWidgetItem* pi = patchView->currentItem();
+ ListViewData* pi = (ListViewData*)patchView->selectedItem();
+ if (pi == 0)
+ return;
+
+ //void* p = pi->data(0, Qt::UserRole).value<void*>();
+// Patch* patch = (Patch*)pi->data();
+ //if (p == 0)
+ // If patch is zero it's a patch group.
+// if(patch == 0)
+
+ // If the item has a parent item, it's a patch item...
+ if(pi->parent())
+ {
+ PatchGroup* group = (PatchGroup*)((ListViewData*)pi->parent())->data();
+
+ // If there is an allocated patch in the data, delete it.
+ //Patch* patch = (Patch*)pi->auxData();
+ Patch* patch = (Patch*)pi->data();
+ if(patch)
+ {
+ if(group)
+ {
+ //for(iPatch ip = group->patches.begin(); ip != group->patches.end(); ++ip)
+ // if(&*ip == patch)
+ // if(*ip == patch)
+ // {
+ //
+ // printf("deletePatchClicked: erasing patch\n");
+ //
+ // group->patches.erase(ip);
+ // break;
+ // }
+ //group->patches.remove( (const Patch&)(*patch) );
+ group->patches.remove(patch);
+ }
+ delete patch;
+ }
+ }
+ else
+ // The item has no parent item, it's a patch group item...
+ {
+ // Is there an allocated patch group in the data?
+ //PatchGroup* group = (PatchGroup*)pi->auxData();
+ PatchGroup* group = (PatchGroup*)pi->data();
+ if(group)
+ {
+
+ PatchGroupList* pg = workingInstrument.groups();
+ //for(ciPatchGroup ipg = pg->begin(); ipg != pg->end(); ++ipg)
+ for(iPatchGroup ipg = pg->begin(); ipg != pg->end(); ++ipg)
+ {
+
+ //printf("deletePatchClicked: working patch group name:%s ad:%X group name:%s ad:%X\n", (*ipg)->name.latin1(), (unsigned int)(*ipg), group->name.latin1(), (unsigned int) group);
+
+ //if(&*ipg == group)
+ if(*ipg == group)
+ {
+ pg->erase(ipg);
+ break;
+ }
+ }
+
+ // Iterate all child list view (patch) items. Find and delete any allocated patches in the items' data.
+// for(ListViewData* i = (ListViewData*)pi->firstChild(); i; i = (ListViewData*)i->nextSibling())
+// {
+ //Patch* patch = (Patch*)i->auxData();
+// Patch* patch = (Patch*)i->data();
+// if(patch)
+// {
+ //delete patch;
+ //group->patches.remove(*patch);
+ const PatchList& pl = group->patches;
+ for(ciPatch ip = pl.begin(); ip != pl.end(); ++ip)
+ {
+// if(&*ip == patch)
+// {
+// group->patches.erase(ip);
+// break;
+// }
+
+ // Delete the patch.
+ if(*ip)
+ delete *ip;
+ }
+
+ //group->patches.clear();
+
+// }
+// }
+
+ // Now delete the group.
+ delete group;
+
+ }
+ }
+
+ //oldPatchItem = (ListViewData*)patchView->selectedItem();
+ //oldPatchItem = 0;
+
+ // Now delete the patch or group item (and any child patch items) from the list view tree.
+ // !!! This will trigger a patchChanged call.
+ patchView->blockSignals(true);
+ delete pi;
+ if(patchView->currentItem())
+ patchView->setSelected(patchView->currentItem(), true);
+ patchView->blockSignals(false);
+
+ oldPatchItem = 0;
+ patchChanged();
+
+ //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");
+ //delete patch;
+ //delete pi;
+
+
+ workingInstrument.setDirty(true);
+ }
+
+//---------------------------------------------------------
+// newPatchClicked
+//---------------------------------------------------------
+
+void EditInstrument::newPatchClicked()
+ {
+ //QListWidgetItem* item = instrumentList->currentItem();
+// ListBoxData* item = (ListBoxData*)instrumentList->selectedItem();
+// if (item == 0)
+// return;
+
+ if(oldPatchItem)
+ {
+ if(oldPatchItem->parent())
+ updatePatch(&workingInstrument, (Patch*)oldPatchItem->data());
+ else
+ updatePatchGroup(&workingInstrument, (PatchGroup*)oldPatchItem->data());
+ }
+
+ //MidiInstrument* instrument = (MidiInstrument*)item->data(Qt::UserRole).value<void*>();
+// MidiInstrument* instrument = (MidiInstrument*)item->data();
+ //std::vector<PatchGroup>* pg = instrument->groups();
+// PatchGroupList* pg = instrument->groups();
+ PatchGroupList* pg = workingInstrument.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 (iPatchGroup g = pg->begin(); g != pg->end(); ++g) {
+ PatchGroup* pgp = *g;
+ //for (iPatch p = g->patches.begin(); p != g->patches.end(); ++p) {
+ for (iPatch p = pgp->patches.begin(); p != pgp->patches.end(); ++p) {
+ //if (p->name == patchName) {
+ if ((*p)->name == patchName) {
+ found = true;
+ break;
+ }
+ }
+ if (found)
+ break;
+ }
+ if (!found)
+ break;
+ }
+
+ //
+ // search current patch group
+ //
+ //PatchGroup* pGroup = 0;
+ //QTreeWidgetItem* pi = patchView->currentItem();
+ ListViewData* pi = (ListViewData*)patchView->selectedItem();
+ if (pi == 0)
+ return;
+
+ // If there is data then pi is a patch item, and there must be a parent patch group item (with null data).
+ //if (pi->data(0, Qt::UserRole).value<void*>())
+ //if (pi->data())
+
+ Patch* selpatch = 0;
+
+ // If there is a parent item then pi is a patch item, and there must be a parent patch group item.
+ if(pi->parent())
+ {
+ // Remember the current selected patch.
+ selpatch = (Patch*)pi->data();
+
+ pi = (ListViewData*)pi->parent();
+ }
+
+ PatchGroup* group = (PatchGroup*)pi->data();
+ if(!group)
+ return;
+
+ //for (std::vector<PatchGroup>::iterator g = pg->begin(); g != pg->end(); ++g) {
+// for (ciPatchGroup 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;
+// }
+
+ // Create a new Patch, then store its pointer in a new patch item,
+ // to be added later to the patch group only upon save...
+ //Patch patch;
+ //patch.name = patchName;
+ Patch* patch = new Patch;
+ int hb = -1;
+ int lb = -1;
+ int prg = 0;
+ patch->hbank = hb;
+ patch->lbank = lb;
+ patch->prog = prg;
+ patch->typ = -1;
+ patch->drum = false;
+
+ if(selpatch)
+ {
+ hb = selpatch->hbank;
+ lb = selpatch->lbank;
+ prg = selpatch->prog;
+ patch->typ = selpatch->typ;
+ patch->drum = selpatch->drum;
+ }
+
+ bool found = false;
+
+ // The 129 is to accommodate -1 values. Yes, it may cause one extra redundant loop but hey,
+ // if it hasn't found an available patch number by then, another loop won't matter.
+ for(int k = 0; k < 129; ++k)
+ {
+ for(int j = 0; j < 129; ++j)
+ {
+ for(int i = 0; i < 128; ++i)
+ {
+ found = false;
+
+ for(iPatchGroup g = pg->begin(); g != pg->end(); ++g)
+ {
+ PatchGroup* pgp = *g;
+ for(iPatch ip = pgp->patches.begin(); ip != pgp->patches.end(); ++ip)
+ {
+ Patch* p = *ip;
+ if((p->prog == ((prg + i) & 0x7f)) &&
+ ((p->lbank == -1 && lb == -1) || (p->lbank == ((lb + j) & 0x7f))) &&
+ ((p->hbank == -1 && hb == -1) || (p->hbank == ((hb + k) & 0x7f))))
+ {
+ found = true;
+ break;
+ }
+ }
+ if(found)
+ break;
+ }
+
+ if(!found)
+ {
+ patch->prog = (prg + i) & 0x7f;
+ if(lb == -1)
+ patch->lbank = -1;
+ else
+ patch->lbank = (lb + j) & 0x7f;
+
+ if(hb == -1)
+ patch->hbank = -1;
+ else
+ patch->hbank = (hb + k) & 0x7f;
+
+ //patch->typ = selpatch->typ;
+ //patch->drum = selpatch->drum;
+ break;
+ }
+
+ }
+ if(!found)
+ break;
+ }
+ if(!found)
+ break;
+ }
+
+ patch->name = patchName;
+
+ group->patches.push_back(patch);
+ //Patch* pp = &(group->patches.back());
+
+ //QTreeWidgetItem* sitem = new QTreeWidgetItem;
+ ListViewData* sitem = new ListViewData(pi);
+ //sitem->setText(0, patch->name);
+ sitem->setText(0, patchName);
+
+ patchNameEdit->setText(patchName);
+
+ //QVariant v = QVariant::fromValue((void*)(patch));
+ //sitem->setData(0, Qt::UserRole, v);
+
+ // Set the list view item's data.
+ sitem->setData((void*)patch);
+ //sitem->setAuxData((void*)patch);
+ //sitem->setData((void*)pp);
+
+ //pi->addChild(sitem);
+
+ //printf("newPatchClicked: before patchView->setCurrentItem\n");
+
+ //patchView->setCurrentItem(sitem);
+
+ //printf("newPatchClicked: after patchView->setCurrentItem\n");
+
+ //oldPatchItem = 0;
+
+ // May cause patchChanged call.
+ patchView->blockSignals(true);
+ patchView->setSelected(sitem, true);
+ patchView->ensureItemVisible(sitem);
+ patchView->blockSignals(false);
+
+ //oldPatchItem = (ListViewData*)patchView->selectedItem();
+ //oldPatchItem = sitem;
+ //oldPatchItem = 0;
+
+ spinBoxHBank->setEnabled(true);
+ spinBoxLBank->setEnabled(true);
+ spinBoxProgram->setEnabled(true);
+ checkBoxDrum->setEnabled(true);
+ checkBoxGM->setEnabled(true);
+ checkBoxGS->setEnabled(true);
+ checkBoxXG->setEnabled(true);
+
+ oldPatchItem = 0;
+ patchChanged();
+
+ //instrument->setDirty(true);
+ workingInstrument.setDirty(true);
+ }
+
+//---------------------------------------------------------
+// newGroupClicked
+//---------------------------------------------------------
+
+void EditInstrument::newGroupClicked()
+ {
+ //QListWidgetItem* item = instrumentList->currentItem();
+// ListBoxData* item = (ListBoxData*)instrumentList->selectedItem();
+// if (item == 0)
+// return;
+
+ if(oldPatchItem)
+ {
+ if(oldPatchItem->parent())
+ updatePatch(&workingInstrument, (Patch*)oldPatchItem->data());
+ else
+ updatePatchGroup(&workingInstrument, (PatchGroup*)oldPatchItem->data());
+ }
+
+ //MidiInstrument* instrument = (MidiInstrument*)item->data(Qt::UserRole).value<void*>();
+// MidiInstrument* instrument = (MidiInstrument*)item->data();
+ //std::vector<PatchGroup>* pg = instrument->groups();
+// PatchGroupList* pg = instrument->groups();
+ PatchGroupList* pg = workingInstrument.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) {
+ for (ciPatchGroup g = pg->begin(); g != pg->end(); ++g) {
+ //if (g->name == groupName) {
+ if ((*g)->name == groupName) {
+ found = true;
+ break;
+ }
+ }
+ if (!found)
+ break;
+ }
+
+ // Create a new PatchGroup, then store its pointer in a new patch group item,
+ // to be added later to the instrument only upon save...
+ PatchGroup* group = new PatchGroup;
+ group->name = groupName;
+ //PatchGroup group;
+ //group.name = groupName;
+
+ pg->push_back(group);
+ //PatchGroup* pgp = &(pg->back());
+
+ //QTreeWidgetItem* sitem = new QTreeWidgetItem;
+ ListViewData* sitem = new ListViewData(patchView);
+ sitem->setText(0, groupName);
+
+ patchNameEdit->setText(groupName);
+
+ //QVariant v = QVariant::fromValue((void*)0);
+ //sitem->setData(0, Qt::UserRole, v);
+ //sitem->setData((void*)0);
+
+ // Set the list view item's data.
+ sitem->setData((void*)group);
+ //sitem->setAuxData((void*)pgp);
+
+ //patchView->addTopLevelItem(sitem);
+ //patchView->setCurrentItem(sitem);
+
+ //oldPatchItem = 0;
+
+ // May cause patchChanged call.
+ patchView->blockSignals(true);
+ patchView->setSelected(sitem, true);
+ patchView->blockSignals(false);
+
+ //oldPatchItem = (ListViewData*)patchView->selectedItem();
+ oldPatchItem = sitem;
+ //oldPatchItem = 0;
+ //patchChanged();
+
+ spinBoxHBank->setEnabled(false);
+ spinBoxLBank->setEnabled(false);
+ spinBoxProgram->setEnabled(false);
+ checkBoxDrum->setEnabled(false);
+ checkBoxGM->setEnabled(false);
+ checkBoxGS->setEnabled(false);
+ checkBoxXG->setEnabled(false);
+
+ //instrument->setDirty(true);
+ workingInstrument.setDirty(true);
+ }
+
+//---------------------------------------------------------
+// deleteControllerClicked
+//---------------------------------------------------------
+
+void EditInstrument::deleteControllerClicked()
+ {
+ //QListWidgetItem* item = instrumentList->currentItem();
+ //ListBoxData* item = (ListBoxData*)instrumentList->selectedItem();
+ //QListWidgetItem* item2 = listController->currentItem();
+// ListBoxData* item = (ListBoxData*)listController->selectedItem();
+ ListViewData* item = (ListViewData*)viewController->selectedItem();
+
+ //if (item == 0 || item2 == 0)
+ if(!item)
+ return;
+ //MidiInstrument* instrument = (MidiInstrument*)item->data(Qt::UserRole).value<void*>();
+// MidiInstrument* instrument = (MidiInstrument*)item->data();
+ //MidiController* ctrl = (MidiController*)item2->data(Qt::UserRole).value<void*>();
+ //MidiController* ctrl = (MidiController*)item2->data();
+ //MidiControllerList* cl = instrument->controller();
+ //cl->removeAll(ctrl);
+
+ MidiController* ctrl = (MidiController*)item->data();
+ if(!ctrl)
+ return;
+
+ workingInstrument.controller()->erase(ctrl->num());
+ // Now delete the controller.
+ delete ctrl;
+
+ // Now remove the controller item from the list.
+ // This may cause a controllerChanged call.
+// listController->blockSignals(true);
+ viewController->blockSignals(true);
+ delete item;
+ if(viewController->currentItem())
+ viewController->setSelected(viewController->currentItem(), true);
+// listController->blockSignals(false);
+ viewController->blockSignals(false);
+
+ //oldController = (ListBoxData*)listController->selectedItem();
+// oldController = 0;
+
+ controllerChanged();
+
+ //instrument->setDirty(true);
+ workingInstrument.setDirty(true);
+ }
+
+//---------------------------------------------------------
+// newControllerClicked
+//---------------------------------------------------------
+
+void EditInstrument::newControllerClicked()
+ {
+ //QListWidgetItem* item = instrumentList->currentItem();
+ //if (item == 0)
+ // return;
+ //MidiInstrument* instrument = (MidiInstrument*)item->data(Qt::UserRole).value<void*>();
+
+// if(oldController)
+// updateController(&workingInstrument, (MidiController*)oldController->data());
+
+ QString cName;
+ //MidiControllerList* cl = instrument->controller();
+ MidiControllerList* cl = workingInstrument.controller();
+ for (int i = 1;; ++i) {
+ //ctrlName = QString("Controller-%d").arg(i);
+ cName = QString("Controller-%1").arg(i);
+ bool found = false;
+ for (iMidiController ic = cl->begin(); ic != cl->end(); ++ic) {
+ MidiController* c = ic->second;
+ if (c->name() == cName) {
+ found = true;
+ break;
+ }
+ }
+ if (!found)
+ break;
+ }
+
+ MidiController* ctrl = new MidiController();
+ ctrl->setNum(CTRL_MODULATION);
+ ctrl->setMinVal(0);
+ ctrl->setMaxVal(127);
+ ctrl->setInitVal(CTRL_VAL_UNKNOWN);
+
+ ListViewData* ci = (ListViewData*)viewController->selectedItem();
+
+ // To allow for quick multiple successive controller creation.
+ // If there's a current controller item selected, copy initial values from it.
+ bool found = false;
+ if(ci)
+ {
+ MidiController* selctl = (MidiController*)ci->data();
+ // Assign.
+ // *ctrl = *selctl;
+
+ // Auto increment controller number.
+ //int l = ctrl->num() & 0x7f;
+ //int h = ctrl->num() & 0xffffff00;
+ int l = selctl->num() & 0x7f;
+ int h = selctl->num() & 0xffffff00;
+
+ // Ignore internal controllers and wild cards.
+ //if(((h & 0xff0000) != 0x40000) && ((ctrl->num() & 0xff) != 0xff))
+ if(((h & 0xff0000) != 0x40000) && ((selctl->num() & 0xff) != 0xff))
+ {
+ // Assign.
+ *ctrl = *selctl;
+
+ for (int i = 1; i < 128; ++i)
+ {
+ //ctrlName = QString("Controller-%d").arg(i);
+ //cName = QString("Controller-%1").arg(i);
+ int j = ((i + l) & 0x7f) | h;
+ found = false;
+ for (iMidiController ic = cl->begin(); ic != cl->end(); ++ic)
+ {
+ MidiController* c = ic->second;
+ if(c->num() == j)
+ {
+ found = true;
+ break;
+ }
+ }
+ if(!found)
+ {
+ ctrl->setNum(j);
+ break;
+ }
+ }
+ }
+ }
+
+ ctrl->setName(cName);
+
+ //item = new QListWidgetItem(ctrlName);
+// ListBoxData* item = new ListBoxData(ctrlName);
+
+ //QVariant v = qVariantFromValue((void*)(ctrl));
+ //item->setData(Qt::UserRole, v);
+// item->setData((void*)ctrl);
+ //listController->addItem(item);
+// listController->insertItem(item);
+ //listController->setCurrentItem(item);
+
+ workingInstrument.controller()->add(ctrl);
+ ListViewData* item = addControllerToView(ctrl);
+
+// listController->blockSignals(true);
+// listController->setSelected(item, true);
+// listController->blockSignals(false);
+ viewController->blockSignals(true);
+ viewController->setSelected(item, true);
+ viewController->blockSignals(false);
+
+ //oldController = (ListBoxData*)listController->selectedItem();
+// oldController = item;
+ //oldController = 0;
+ // MidiController is a class, with itialized values. We have to call this to show the values.
+ // To make multiple entries easier, don't bother calling this.
+ controllerChanged();
+
+ //instrument->setDirty(true);
+ workingInstrument.setDirty(true);
+ }
+
+//---------------------------------------------------------
+// addControllerClicked
+//---------------------------------------------------------
+
+void EditInstrument::addControllerClicked()
+{
+ //int lnum = listController->currentItem();
+ //if(lnum == -1)
+ // return;
+
+ //QString name = midiCtrlName(lnum);
+
+ int idx = listController->currentItem();
+ if(idx == -1)
+ return;
+
+ int lnum = -1;
+ QString name = listController->currentText();
+ for(int i = 0; i < 128; i++)
+ {
+ if(midiCtrlName(i) == name)
+ {
+ lnum = i;
+ break;
+ }
+ }
+ if(lnum == -1)
+ {
+ printf("Add controller: Controller not found: %s\n", name.latin1());
+ return;
+ }
+
+ int num = MidiController::genNum(MidiController::Controller7, 0, lnum);
+
+ MidiControllerList* cl = workingInstrument.controller();
+ for(iMidiController ic = cl->begin(); ic != cl->end(); ++ic)
+ {
+ MidiController* c = ic->second;
+ if(c->name() == name)
+ {
+ QMessageBox::critical(this,
+ tr("MusE: Cannot add common controller"),
+ tr("A controller named ") + name + tr(" already exists."),
+ QMessageBox::Ok,
+ Qt::NoButton,
+ Qt::NoButton);
+
+ return;
+ }
+
+ if(c->num() == num)
+ {
+ QMessageBox::critical(this,
+ tr("MusE: Cannot add common controller"),
+ tr("A controller number ") + QString().setNum(num) + tr(" already exists."),
+ QMessageBox::Ok,
+ Qt::NoButton,
+ Qt::NoButton);
+
+ return;
+ }
+ }
+
+ MidiController* ctrl = new MidiController();
+ ctrl->setNum(num);
+ ctrl->setMinVal(0);
+ ctrl->setMaxVal(127);
+ ctrl->setInitVal(CTRL_VAL_UNKNOWN);
+ ctrl->setName(name);
+
+ workingInstrument.controller()->add(ctrl);
+
+ ListViewData* item = addControllerToView(ctrl);
+
+ viewController->blockSignals(true);
+ viewController->setSelected(item, true);
+ viewController->blockSignals(false);
+
+ controllerChanged();
+
+ workingInstrument.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);
+
+
+
+ ListBoxData* item = (ListBoxData*)sysexList->selectedItem();
+ if(!item)
+ return;
+
+ EventList* el = (EventList*)item->data();
+ if(!el)
+ return;
+
+ }
+*/
+
+//---------------------------------------------------------
+// updatePatchGroup
+//---------------------------------------------------------
+
+void EditInstrument::updatePatchGroup(MidiInstrument* instrument, PatchGroup* pg)
+ {
+ if (pg->name != patchNameEdit->text()) {
+ pg->name = patchNameEdit->text();
+ instrument->setDirty(true);
+ }
+ }
+
+//---------------------------------------------------------
+// updatePatch
+//---------------------------------------------------------
+
+void EditInstrument::updatePatch(MidiInstrument* instrument, Patch* p)
+ {
+ if (p->name != patchNameEdit->text()) {
+ p->name = patchNameEdit->text();
+ instrument->setDirty(true);
+ }
+
+ signed char hb = (spinBoxHBank->value() - 1) & 0xff;
+ //if (p->hbank != (spinBoxHBank->value() & 0xff)) {
+ // p->hbank = spinBoxHBank->value() & 0xff;
+ if (p->hbank != hb) {
+ p->hbank = hb;
+
+ instrument->setDirty(true);
+ }
+
+ signed char lb = (spinBoxLBank->value() - 1) & 0xff;
+ //if (p->lbank != (spinBoxLBank->value() & 0xff)) {
+ // p->lbank = spinBoxLBank->value() & 0xff;
+ if (p->lbank != lb) {
+ p->lbank = lb;
+
+ instrument->setDirty(true);
+ }
+
+ signed char pr = (spinBoxProgram->value() - 1) & 0xff;
+ if (p->prog != pr) {
+ p->prog = pr;
+
+ instrument->setDirty(true);
+ }
+
+ if (p->drum != checkBoxDrum->isChecked()) {
+ p->drum = checkBoxDrum->isChecked();
+ 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);
+ // }
+ }
+
+/*
+//---------------------------------------------------------
+// updateController
+//---------------------------------------------------------
+
+void EditInstrument::updateController(MidiInstrument* instrument, MidiController* oc)
+ {
+ printf("updateController: A\n");
+
+ int ctrlH = spinBoxHCtrlNo->value();
+ int ctrlL = spinBoxLCtrlNo->value();
+ //MidiController::ControllerType type = (MidiController::ControllerType)ctrlType->currentIndex();
+ MidiController::ControllerType type = (MidiController::ControllerType)ctrlType->currentItem();
+ int num = MidiController::genNum(type, ctrlH, ctrlL);
+ //int num = (ctrlH << 8) & 0x7f + ctrlL & 0x7f;
+
+ printf("updateController: B\n");
+
+ if (num != oc->num()) {
+
+ printf("updateController: num changed, setting dirty. num:%d c->num:%d\n", num, oc->num());
+
+ oc->setNum(num);
+ instrument->setDirty(true);
+ }
+
+ if(type != MidiController::Pitch && type != MidiController::Program)
+ {
+ if (spinBoxMin->value() != oc->minVal()) {
+
+ printf("updateController: min changed, setting dirty. min:%d c->min:%d\n", spinBoxMin->value(), oc->minVal());
+
+ oc->setMinVal(spinBoxMin->value());
+ instrument->setDirty(true);
+ }
+ if (spinBoxMax->value() != oc->maxVal()) {
+
+ printf("updateController: max changed, setting dirty. num:%d max:%d c->max:%d\n", num, spinBoxMax->value(), oc->maxVal());
+
+ oc->setMaxVal(spinBoxMax->value());
+ instrument->setDirty(true);
+ }
+
+ int dv = spinBoxDefault->value();
+ if(dv == oc->minVal() - 1)
+ dv = CTRL_VAL_UNKNOWN;
+
+ //if (spinBoxDefault->value() != oc->initVal()) {
+ if(dv != oc->initVal()) {
+ //oc->setInitVal(spinBoxDefault->value());
+ oc->setInitVal(dv);
+
+ printf("updateController: default changed, setting dirty. def:%d c->init:%d\n", dv, oc->initVal());
+
+ instrument->setDirty(true);
+ }
+ }
+
+
+ printf("updateController: C\n");
+
+ //if (moveWithPart->isChecked() ^ oc->moveWithPart()) {
+ // oc->setMoveWithPart(moveWithPart->isChecked());
+ // instrument->setDirty(true);
+ // }
+ if (ctrlName->text() != oc->name()) {
+ oc->setName(ctrlName->text());
+
+ printf("updateController: name changed, setting dirty. name:%s c->name:%s\n", ctrlName->text().latin1(), oc->name().latin1());
+
+ instrument->setDirty(true);
+ }
+ //if (ctrlComment->toPlainText() != oc->comment()) {
+ // oc->setComment(ctrlComment->toPlainText());
+ // instrument->setDirty(true);
+ // }
+
+ printf("updateController: D\n");
+
+ }
+*/
+
+//---------------------------------------------------------
+// updateInstrument
+//---------------------------------------------------------
+
+void EditInstrument::updateInstrument(MidiInstrument* instrument)
+ {
+ //QListWidgetItem* sysexItem = sysexList->currentItem();
+ //ListBoxData* sysexItem = sysexList->currentItem();
+ //if (sysexItem) {
+ // SysEx* so = (SysEx*)sysexItem->data(Qt::UserRole).value<void*>();
+ // updateSysex(instrument, so);
+ // }
+
+ //QListWidgetItem* ctrlItem = listController->currentItem();
+ //ListBoxData* ctrlItem = (ListBoxData*)listController->currentItem();
+ //ListBoxData* ctrlItem = (ListBoxData*)listController->selectedItem();
+// ListViewData* ctrlItem = (ListViewData*)viewController->selectedItem();
+
+// if (ctrlItem) {
+ //MidiController* ctrl = (MidiController*)ctrlItem->data(Qt::UserRole).value<void*>();
+
+// printf("updateInstrument: AB\n");
+
+// MidiController* ctrl = (MidiController*)ctrlItem->data();
+
+// printf("updateInstrument: AC\n");
+
+// updateController(instrument, ctrl);
+// }
+
+// printf("updateInstrument: B\n");
+
+ //QTreeWidgetItem* patchItem = patchView->currentItem();
+ ListViewData* patchItem = (ListViewData*)patchView->selectedItem();
+ if (patchItem)
+ {
+ //Patch* p = (Patch*)patchItem->data(0, Qt::UserRole).value<void*>();
+
+ // If the item has a parent, it's a patch item.
+ if(patchItem->parent())
+ updatePatch(instrument, (Patch*)patchItem->data());
+ else
+ updatePatchGroup(instrument, (PatchGroup*)patchItem->data());
+
+ }
+ }
+
+//---------------------------------------------------------
+// checkDirty
+// return true on Abort
+//---------------------------------------------------------
+
+int EditInstrument::checkDirty(MidiInstrument* i, bool isClose)
+ {
+ updateInstrument(i);
+ if (!i->dirty())
+ //return false;
+ return 0;
+ int n;
+ if(isClose)
+ 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);
+ else
+ n = QMessageBox::warning(this, tr("MusE"),
+ tr("The current Instrument contains unsaved data\n"
+ "Save Current Instrument?"),
+ tr("&Save"), tr("&Nosave"), 0, 1);
+ if (n == 0) {
+ if (i->filePath().isEmpty())
+ {
+ //fileSaveAs();
+ saveAs();
+ }
+ else {
+ //QFile f(i->filePath());
+ //if (!f.open(QIODevice::WriteOnly))
+ FILE* f = fopen(i->filePath().latin1(), "w");
+ if(f == 0)
+ //fileSaveAs();
+ saveAs();
+ else {
+ //f.close();
+ if(fclose(f) != 0)
+ printf("EditInstrument::checkDirty: Error closing file\n");
+
+ if(fileSave(i, i->filePath()))
+ i->setDirty(false);
+ }
+ }
+ //return false;
+ return 0;
+ }
+ //return n == 2;
+ return n;
+ }
+
+//---------------------------------------------------------
+// getPatchItemText
+//---------------------------------------------------------
+
+QString EditInstrument::getPatchItemText(int val)
+{
+ QString s;
+ if(val == CTRL_VAL_UNKNOWN)
+ s = "---";
+ else
+ {
+ int hb = ((val >> 16) & 0xff) + 1;
+ if (hb == 0x100)
+ hb = 0;
+ int lb = ((val >> 8) & 0xff) + 1;
+ if (lb == 0x100)
+ lb = 0;
+ int pr = (val & 0xff) + 1;
+ if (pr == 0x100)
+ pr = 0;
+ s.sprintf("%d-%d-%d", hb, lb, pr);
+ }
+
+ return s;
+}
+
+//---------------------------------------------------------
+// enableDefaultControls
+//---------------------------------------------------------
+
+void EditInstrument::enableDefaultControls(bool enVal, bool enPatch)
+{
+ spinBoxDefault->setEnabled(enVal);
+ patchButton->setEnabled(enPatch);
+ if(!enPatch)
+ {
+ patchButton->blockSignals(true);
+ patchButton->setText("---");
+ patchButton->blockSignals(false);
+ }
+ defPatchH->setEnabled(enPatch);
+ defPatchL->setEnabled(enPatch);
+ defPatchProg->setEnabled(enPatch);
+}
+
+//---------------------------------------------------------
+// setDefaultPatchName
+//---------------------------------------------------------
+
+void EditInstrument::setDefaultPatchName(int val)
+{
+ const char* patchname = getPatchName(val);
+ patchButton->blockSignals(true);
+ patchButton->setText(QString(patchname));
+ patchButton->blockSignals(false);
+}
+
+//---------------------------------------------------------
+// getDefaultPatchNumber
+//---------------------------------------------------------
+
+int EditInstrument::getDefaultPatchNumber()
+{
+ int hval = defPatchH->value() - 1;
+ int lval = defPatchL->value() - 1;
+ int prog = defPatchProg->value() - 1;
+ if(hval == -1)
+ hval = 0xff;
+ if(lval == -1)
+ lval = 0xff;
+ if(prog == -1)
+ prog = 0xff;
+
+ return ((hval & 0xff) << 16) + ((lval & 0xff) << 8) + (prog & 0xff);
+}
+
+//---------------------------------------------------------
+// setDefaultPatchNumbers
+//---------------------------------------------------------
+
+void EditInstrument::setDefaultPatchNumbers(int val)
+{
+ int hb;
+ int lb;
+ int pr;
+
+ if(val == CTRL_VAL_UNKNOWN)
+ hb = lb = pr = 0;
+ else
+ {
+ hb = ((val >> 16) & 0xff) + 1;
+ if (hb == 0x100)
+ hb = 0;
+ lb = ((val >> 8) & 0xff) + 1;
+ if (lb == 0x100)
+ lb = 0;
+ pr = (val & 0xff) + 1;
+ if (pr == 0x100)
+ pr = 0;
+ }
+
+ defPatchH->blockSignals(true);
+ defPatchL->blockSignals(true);
+ defPatchProg->blockSignals(true);
+ defPatchH->setValue(hb);
+ defPatchL->setValue(lb);
+ defPatchProg->setValue(pr);
+ defPatchH->blockSignals(false);
+ defPatchL->blockSignals(false);
+ defPatchProg->blockSignals(false);
+}
+
+//---------------------------------------------------------
+// setDefaultPatchControls
+//---------------------------------------------------------
+
+void EditInstrument::setDefaultPatchControls(int val)
+{
+ setDefaultPatchNumbers(val);
+ setDefaultPatchName(val);
+}
+
+//---------------------------------------------------------
+// getPatchName
+//---------------------------------------------------------
+
+const char* EditInstrument::getPatchName(int prog)
+{
+ int pr = prog & 0xff;
+ if(prog == CTRL_VAL_UNKNOWN || pr == 0xff)
+ return "---";
+
+ //int hbank = (prog >> 16) & 0x7f;
+ //int lbank = (prog >> 8) & 0x7f;
+ int hbank = (prog >> 16) & 0xff;
+ int lbank = (prog >> 8) & 0xff;
+
+ PatchGroupList* pg = workingInstrument.groups();
+
+ for(ciPatchGroup i = pg->begin(); i != pg->end(); ++i) {
+ const PatchList& pl = (*i)->patches;
+ for (ciPatch ipl = pl.begin(); ipl != pl.end(); ++ipl) {
+ const Patch* mp = *ipl;
+ if (//(mp->typ & tmask) &&
+ (pr == mp->prog)
+ //&& ((drum && mode != MT_GM) ||
+ // (mp->drum == drumchan))
+
+ //&& (hbank == mp->hbank || !hb || mp->hbank == -1)
+ //&& (lbank == mp->lbank || !lb || mp->lbank == -1))
+ && (hbank == mp->hbank || mp->hbank == -1)
+ && (lbank == mp->lbank || mp->lbank == -1))
+ return mp->name.latin1();
+ }
+ }
+ return "---";
+}
+
diff --git a/muse2/muse/instruments/editinstrument.h b/muse2/muse/instruments/editinstrument.h
new file mode 100644
index 00000000..ef01f525
--- /dev/null
+++ b/muse2/muse/instruments/editinstrument.h
@@ -0,0 +1,92 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: editinstrument.h,v 1.1.1.1.2.4 2009/05/31 05:12:12 terminator356 Exp $
+//
+// (C) Copyright 2003 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __EDITINSTRUMENT_H__
+#define __EDITINSTRUMENT_H__
+
+#include "editinstrumentbase.h"
+#include "minstrument.h"
+#include "midictrl.h"
+//Added by qt3to4:
+#include <Q3PopupMenu>
+#include <QCloseEvent>
+class ListBoxData;
+class ListViewData;
+
+//---------------------------------------------------------
+// EditInstrument
+//---------------------------------------------------------
+
+class EditInstrument : public EditInstrumentBase {
+ Q_OBJECT
+
+ MidiInstrument workingInstrument;
+ ListBoxData* oldMidiInstrument;
+ ListViewData* oldPatchItem;
+ void closeEvent(QCloseEvent*);
+ int checkDirty(MidiInstrument*, bool isClose = false);
+ bool fileSave(MidiInstrument*, const QString&);
+ void saveAs();
+ void updateInstrument(MidiInstrument*);
+ void updatePatch(MidiInstrument*, Patch*);
+ void updatePatchGroup(MidiInstrument*, PatchGroup*);
+ void changeInstrument();
+ ListViewData* addControllerToView(MidiController* mctrl);
+ QString getPatchItemText(int);
+ void enableDefaultControls(bool, bool);
+ void setDefaultPatchName(int);
+ int getDefaultPatchNumber();
+ void setDefaultPatchNumbers(int);
+ void setDefaultPatchControls(int);
+ const char* getPatchName(int);
+ void deleteInstrument(ListBoxData*);
+ Q3PopupMenu* patchpopup;
+
+ private slots:
+ virtual void fileNew();
+ virtual void fileOpen();
+ virtual void fileSave();
+ virtual void fileSaveAs();
+ virtual void fileExit();
+ virtual void helpWhatsThis();
+ void instrumentChanged();
+ void tabChanged(QWidget*);
+ void patchChanged();
+ void controllerChanged();
+ //void instrumentNameChanged(const QString&);
+ void instrumentNameReturn();
+ void patchNameReturn();
+ void deletePatchClicked();
+ void newPatchClicked();
+ void newGroupClicked();
+ void patchButtonClicked();
+ void defPatchChanged(int);
+ //void newCategoryClicked();
+ void deleteControllerClicked();
+ void newControllerClicked();
+ void addControllerClicked();
+ void ctrlTypeChanged(int);
+ //void ctrlNameChanged(const QString&);
+ void ctrlNameReturn();
+ void ctrlHNumChanged(int);
+ void ctrlLNumChanged(int);
+ void ctrlMinChanged(int);
+ void ctrlMaxChanged(int);
+ void ctrlDefaultChanged(int);
+ //void sysexChanged();
+ //void deleteSysexClicked();
+ //void newSysexClicked();
+ void ctrlNullParamHChanged(int);
+ void ctrlNullParamLChanged(int);
+
+ public:
+ EditInstrument(QWidget* parent = 0, const char* name = 0, Qt::WFlags fl = Qt::WType_TopLevel);
+ };
+
+#endif
+
diff --git a/muse2/muse/instruments/editinstrumentbase.ui b/muse2/muse/instruments/editinstrumentbase.ui
new file mode 100644
index 00000000..8f5ecc7b
--- /dev/null
+++ b/muse2/muse/instruments/editinstrumentbase.ui
@@ -0,0 +1,1840 @@
+<!DOCTYPE UI><UI version="3.2" stdsetdef="1">
+<class>EditInstrumentBase</class>
+<widget class="QMainWindow">
+ <property name="name">
+ <cstring>Form1</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>802</width>
+ <height>505</height>
+ </rect>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>802</width>
+ <height>464</height>
+ </size>
+ </property>
+ <property name="caption">
+ <string>MusE: Instrument Editor</string>
+ </property>
+ <vbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QSplitter">
+ <property name="name">
+ <cstring>splitter4</cstring>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>780</width>
+ <height>365</height>
+ </size>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <widget class="QLayoutWidget">
+ <property name="name">
+ <cstring>layout26</cstring>
+ </property>
+ <vbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>textLabel2</cstring>
+ </property>
+ <property name="text">
+ <string>Instrument Name:</string>
+ </property>
+ </widget>
+ <widget class="QLineEdit">
+ <property name="name">
+ <cstring>instrumentName</cstring>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string></string>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>Selected instrument name.</string>
+ </property>
+ </widget>
+ <widget class="QListBox">
+ <property name="name">
+ <cstring>instrumentList</cstring>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>List of defined instruments.</string>
+ </property>
+ </widget>
+ </vbox>
+ </widget>
+ <widget class="QTabWidget">
+ <property name="name">
+ <cstring>tabWidget3</cstring>
+ </property>
+ <property name="enabled">
+ <bool>true</bool>
+ </property>
+ <widget class="QWidget">
+ <property name="name">
+ <cstring>patchesTab</cstring>
+ </property>
+ <attribute name="title">
+ <string>Pa&amp;tches</string>
+ </attribute>
+ <vbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QSplitter">
+ <property name="name">
+ <cstring>splitter5</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <widget class="QListView">
+ <column>
+ <property name="text">
+ <string>Group/Patch</string>
+ </property>
+ <property name="clickable">
+ <bool>true</bool>
+ </property>
+ <property name="resizable">
+ <bool>true</bool>
+ </property>
+ </column>
+ <property name="name">
+ <cstring>patchView</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>7</hsizetype>
+ <vsizetype>7</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="allColumnsShowFocus">
+ <bool>true</bool>
+ </property>
+ <property name="rootIsDecorated">
+ <bool>true</bool>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string></string>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>List of groups and patches.</string>
+ </property>
+ </widget>
+ <widget class="QLayoutWidget">
+ <property name="name">
+ <cstring>layout26</cstring>
+ </property>
+ <vbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QGroupBox">
+ <property name="name">
+ <cstring>groupBox2</cstring>
+ </property>
+ <property name="title">
+ <string>Properties</string>
+ </property>
+ <vbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>textLabelPatchName</cstring>
+ </property>
+ <property name="text">
+ <string>Name:</string>
+ </property>
+ </widget>
+ <widget class="QLineEdit">
+ <property name="name">
+ <cstring>patchNameEdit</cstring>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Group or patch name</string>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>Group or patch name</string>
+ </property>
+ </widget>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>textLabel2_2</cstring>
+ </property>
+ <property name="text">
+ <string>High Bank:</string>
+ </property>
+ </widget>
+ <widget class="QLayoutWidget">
+ <property name="name">
+ <cstring>layout22</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QSpinBox">
+ <property name="name">
+ <cstring>spinBoxHBank</cstring>
+ </property>
+ <property name="specialValueText">
+ <string>---</string>
+ <comment>dont care</comment>
+ </property>
+ <property name="maxValue">
+ <number>128</number>
+ </property>
+ <property name="minValue">
+ <number>0</number>
+ </property>
+ <property name="value">
+ <number>0</number>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Patch high bank number</string>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>Patch high bank number. --- means don't care.</string>
+ </property>
+ </widget>
+ <spacer>
+ <property name="name">
+ <cstring>spacer8</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>373</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </hbox>
+ </widget>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>textLabel3_2</cstring>
+ </property>
+ <property name="text">
+ <string>Low Bank:</string>
+ </property>
+ </widget>
+ <widget class="QLayoutWidget">
+ <property name="name">
+ <cstring>layout23</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QSpinBox">
+ <property name="name">
+ <cstring>spinBoxLBank</cstring>
+ </property>
+ <property name="specialValueText">
+ <string>---</string>
+ </property>
+ <property name="maxValue">
+ <number>128</number>
+ </property>
+ <property name="minValue">
+ <number>0</number>
+ </property>
+ <property name="value">
+ <number>0</number>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Patch low bank number</string>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>Patch low bank number. --- means don't care.</string>
+ </property>
+ </widget>
+ <spacer>
+ <property name="name">
+ <cstring>spacer9</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>373</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </hbox>
+ </widget>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>textLabel4_3</cstring>
+ </property>
+ <property name="text">
+ <string>Program:</string>
+ </property>
+ </widget>
+ <widget class="QLayoutWidget">
+ <property name="name">
+ <cstring>layout24</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QSpinBox">
+ <property name="name">
+ <cstring>spinBoxProgram</cstring>
+ </property>
+ <property name="maxValue">
+ <number>128</number>
+ </property>
+ <property name="minValue">
+ <number>1</number>
+ </property>
+ <property name="value">
+ <number>1</number>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Patch program number</string>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>Patch program number</string>
+ </property>
+ </widget>
+ <spacer>
+ <property name="name">
+ <cstring>spacer10</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>373</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </hbox>
+ </widget>
+ <widget class="QLayoutWidget">
+ <property name="name">
+ <cstring>layout6</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QCheckBox">
+ <property name="name">
+ <cstring>checkBoxDrum</cstring>
+ </property>
+ <property name="text">
+ <string>Drum</string>
+ </property>
+ <property name="accel">
+ <string></string>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Drum patch</string>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>If set, the patch is available only for drum channels.</string>
+ </property>
+ </widget>
+ <widget class="QCheckBox">
+ <property name="name">
+ <cstring>checkBoxGM</cstring>
+ </property>
+ <property name="text">
+ <string>GM</string>
+ </property>
+ <property name="accel">
+ <string></string>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>GM patch</string>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>If set, the patch is available in a 'GM' or 'NO' midi song type.</string>
+ </property>
+ </widget>
+ <widget class="QCheckBox">
+ <property name="name">
+ <cstring>checkBoxGS</cstring>
+ </property>
+ <property name="text">
+ <string>GS</string>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>GS patch</string>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>If set, the patch is available in a 'GS' or 'NO' midi song type.</string>
+ </property>
+ </widget>
+ <widget class="QCheckBox">
+ <property name="name">
+ <cstring>checkBoxXG</cstring>
+ </property>
+ <property name="text">
+ <string>XG</string>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>XG patch</string>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>If set, the patch is available in an 'XG' or 'NO' midi song type.</string>
+ </property>
+ </widget>
+ </hbox>
+ </widget>
+ </vbox>
+ </widget>
+ <spacer>
+ <property name="name">
+ <cstring>spacer7</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Vertical</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>20</width>
+ <height>90</height>
+ </size>
+ </property>
+ </spacer>
+ <widget class="QLayoutWidget">
+ <property name="name">
+ <cstring>layout5</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QToolButton">
+ <property name="name">
+ <cstring>patchDelete</cstring>
+ </property>
+ <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="accel">
+ <string>Alt+D</string>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Delete group or patch</string>
+ </property>
+ </widget>
+ <widget class="QToolButton">
+ <property name="name">
+ <cstring>patchNew</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>1</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>New &amp;Patch</string>
+ </property>
+ <property name="accel">
+ <string>Alt+P</string>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>New patch</string>
+ </property>
+ </widget>
+ <widget class="QToolButton">
+ <property name="name">
+ <cstring>patchNewGroup</cstring>
+ </property>
+ <property name="text">
+ <string>New &amp;Group</string>
+ </property>
+ <property name="accel">
+ <string>Alt+G</string>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>New group</string>
+ </property>
+ </widget>
+ <spacer>
+ <property name="name">
+ <cstring>spacer11</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>240</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </hbox>
+ </widget>
+ </vbox>
+ </widget>
+ </widget>
+ </vbox>
+ </widget>
+ <widget class="QWidget">
+ <property name="name">
+ <cstring>controllerTab</cstring>
+ </property>
+ <attribute name="title">
+ <string>Contro&amp;ller</string>
+ </attribute>
+ <vbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QSplitter">
+ <property name="name">
+ <cstring>splitter4</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <widget class="QLayoutWidget">
+ <property name="name">
+ <cstring>layout13</cstring>
+ </property>
+ <vbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>textLabel1</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>Common:</string>
+ </property>
+ </widget>
+ <widget class="QListBox">
+ <property name="name">
+ <cstring>listController</cstring>
+ </property>
+ <property name="variableWidth">
+ <bool>false</bool>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string></string>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <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>
+ </vbox>
+ </widget>
+ <widget class="QLayoutWidget">
+ <property name="name">
+ <cstring>layout17</cstring>
+ </property>
+ <vbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QListView">
+ <column>
+ <property name="text">
+ <string>Name </string>
+ </property>
+ <property name="clickable">
+ <bool>true</bool>
+ </property>
+ <property name="resizable">
+ <bool>true</bool>
+ </property>
+ </column>
+ <column>
+ <property name="text">
+ <string>Type </string>
+ </property>
+ <property name="clickable">
+ <bool>true</bool>
+ </property>
+ <property name="resizable">
+ <bool>true</bool>
+ </property>
+ </column>
+ <column>
+ <property name="text">
+ <string>H-Ctrl</string>
+ </property>
+ <property name="clickable">
+ <bool>true</bool>
+ </property>
+ <property name="resizable">
+ <bool>false</bool>
+ </property>
+ </column>
+ <column>
+ <property name="text">
+ <string>L-Ctrl</string>
+ </property>
+ <property name="clickable">
+ <bool>true</bool>
+ </property>
+ <property name="resizable">
+ <bool>false</bool>
+ </property>
+ </column>
+ <column>
+ <property name="text">
+ <string>Min </string>
+ </property>
+ <property name="clickable">
+ <bool>true</bool>
+ </property>
+ <property name="resizable">
+ <bool>false</bool>
+ </property>
+ </column>
+ <column>
+ <property name="text">
+ <string>Max </string>
+ </property>
+ <property name="clickable">
+ <bool>true</bool>
+ </property>
+ <property name="resizable">
+ <bool>false</bool>
+ </property>
+ </column>
+ <column>
+ <property name="text">
+ <string>Def </string>
+ </property>
+ <property name="clickable">
+ <bool>true</bool>
+ </property>
+ <property name="resizable">
+ <bool>false</bool>
+ </property>
+ </column>
+ <property name="name">
+ <cstring>viewController</cstring>
+ </property>
+ <property name="frameShape">
+ <enum>StyledPanel</enum>
+ </property>
+ <property name="frameShadow">
+ <enum>Sunken</enum>
+ </property>
+ <property name="allColumnsShowFocus">
+ <bool>true</bool>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>List of defined controllers</string>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>List of defined controllers.</string>
+ </property>
+ </widget>
+ <widget class="QGroupBox">
+ <property name="name">
+ <cstring>GroupBox1</cstring>
+ </property>
+ <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>
+ <vbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QLayoutWidget">
+ <property name="name">
+ <cstring>layout33</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>TextLabel1_3</cstring>
+ </property>
+ <property name="text">
+ <string>Name:</string>
+ </property>
+ </widget>
+ <widget class="QLineEdit">
+ <property name="name">
+ <cstring>ctrlName</cstring>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string></string>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>Midi controller name</string>
+ </property>
+ </widget>
+ </hbox>
+ </widget>
+ <widget class="QLayoutWidget">
+ <property name="name">
+ <cstring>layout37</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>TextLabel2_4</cstring>
+ </property>
+ <property name="text">
+ <string>Type:</string>
+ </property>
+ </widget>
+ <widget class="QComboBox">
+ <item>
+ <property name="text">
+ <string>Control7</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Control14</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>RPN</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>NRPN</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>RPN14</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>NRPN14</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Pitch</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Program</string>
+ </property>
+ </item>
+ <property name="name">
+ <cstring>ctrlType</cstring>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Midi controller type</string>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>Midi controller type</string>
+ </property>
+ </widget>
+ <spacer>
+ <property name="name">
+ <cstring>spacer15</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>40</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>TextLabel3_2</cstring>
+ </property>
+ <property name="text">
+ <string>H-Ctrl</string>
+ </property>
+ <property name="indent">
+ <number>10</number>
+ </property>
+ </widget>
+ <widget class="QSpinBox">
+ <property name="name">
+ <cstring>spinBoxHCtrlNo</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>7</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="maxValue">
+ <number>127</number>
+ </property>
+ <property name="minValue">
+ <number>0</number>
+ </property>
+ <property name="value">
+ <number>0</number>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Midi controller number high byte</string>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>Midi controller number high byte</string>
+ </property>
+ </widget>
+ <spacer>
+ <property name="name">
+ <cstring>spacer16</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>40</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>TextLabel2_3_2</cstring>
+ </property>
+ <property name="text">
+ <string>L-Ctrl</string>
+ </property>
+ <property name="indent">
+ <number>10</number>
+ </property>
+ </widget>
+ <widget class="QSpinBox">
+ <property name="name">
+ <cstring>spinBoxLCtrlNo</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>7</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="specialValueText">
+ <string>*</string>
+ <comment>wild card</comment>
+ </property>
+ <property name="maxValue">
+ <number>127</number>
+ </property>
+ <property name="minValue">
+ <number>-1</number>
+ </property>
+ <property name="value">
+ <number>0</number>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Midi controller number low byte (* means drum controller)</string>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>Midi controller number low byte.
+If low byte is * then the controller is a
+ 'drum controller'. For drum tracks and
+ GS/XG type songs and instruments.
+Allows controllers for each instrument in
+ Muse's drum map. The low byte will be
+ replaced by the 'ANote' in the drum map.
+Examples: The GS and XG instruments'
+ Drum controllers.</string>
+ </property>
+ </widget>
+ </hbox>
+ </widget>
+ <widget class="QLayoutWidget">
+ <property name="name">
+ <cstring>layout38</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>textLabel4_2</cstring>
+ </property>
+ <property name="text">
+ <string>Range:</string>
+ </property>
+ </widget>
+ <spacer>
+ <property name="name">
+ <cstring>spacer17</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>40</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>TextLabel1_2_2</cstring>
+ </property>
+ <property name="text">
+ <string>Min</string>
+ </property>
+ <property name="alignment">
+ <set>AlignVCenter|AlignRight</set>
+ </property>
+ <property name="indent">
+ <number>10</number>
+ </property>
+ </widget>
+ <widget class="QSpinBox">
+ <property name="name">
+ <cstring>spinBoxMin</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>7</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="maxValue">
+ <number>16383</number>
+ </property>
+ <property name="minValue">
+ <number>-16384</number>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Minimum value. If negative, auto-translate.</string>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>Minimum value. If the minimum value
+ is negative, the range will automatically
+ be translated to a positive range.
+
+Useful for controllers which should be
+ displayed with zero bias. For example,
+'Pan': Minimum: -64 Maximum: 63
+True range: Min: 0 Max: 127 (bias = 64)
+'CoarseTuning': Min: -24 Max: 23
+True range: Min: 40 Max: 87 (bias = 64)
+
+Bias is determined from controller type:
+7-bit Controller7 / RPN: Bias = 64
+14-bit Controller14 / RPN14: Bias = 8192
+
+Type 'Pitch' is the exception. It is biased
+ at zero, even with a negative minimum:
+'Pitch': Min: -8192 Max: 8191
+True range: Min: -8192 Max: 8191 (bias 0)</string>
+ </property>
+ </widget>
+ <spacer>
+ <property name="name">
+ <cstring>spacer18</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>40</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>TextLabel2_2_2</cstring>
+ </property>
+ <property name="text">
+ <string>Max</string>
+ </property>
+ <property name="alignment">
+ <set>AlignVCenter|AlignRight</set>
+ </property>
+ <property name="indent">
+ <number>10</number>
+ </property>
+ </widget>
+ <widget class="QSpinBox">
+ <property name="name">
+ <cstring>spinBoxMax</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>7</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="maxValue">
+ <number>16383</number>
+ </property>
+ <property name="minValue">
+ <number>-16384</number>
+ </property>
+ <property name="value">
+ <number>127</number>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Maximum value</string>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>Maximum value</string>
+ </property>
+ </widget>
+ </hbox>
+ </widget>
+ <widget class="QLayoutWidget">
+ <property name="name">
+ <cstring>layout16</cstring>
+ </property>
+ <grid>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <spacer row="1" column="0" rowspan="1" colspan="2">
+ <property name="name">
+ <cstring>spacer13_2</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>40</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ <widget class="QLabel" row="0" column="0">
+ <property name="name">
+ <cstring>textLabel1_3</cstring>
+ </property>
+ <property name="text">
+ <string>Default:</string>
+ </property>
+ <property name="alignment">
+ <set>AlignVCenter</set>
+ </property>
+ </widget>
+ <widget class="QLabel" row="0" column="6">
+ <property name="name">
+ <cstring>textLabel2_4</cstring>
+ </property>
+ <property name="text">
+ <string>L-Bank</string>
+ </property>
+ </widget>
+ <widget class="QSpinBox" row="0" column="5">
+ <property name="name">
+ <cstring>defPatchH</cstring>
+ </property>
+ <property name="specialValueText">
+ <string>off</string>
+ </property>
+ <property name="maxValue">
+ <number>128</number>
+ </property>
+ <property name="minValue">
+ <number>0</number>
+ </property>
+ <property name="value">
+ <number>0</number>
+ </property>
+ </widget>
+ <widget class="QSpinBox" row="0" column="7">
+ <property name="name">
+ <cstring>defPatchL</cstring>
+ </property>
+ <property name="specialValueText">
+ <string>off</string>
+ </property>
+ <property name="maxValue">
+ <number>128</number>
+ </property>
+ <property name="minValue">
+ <number>0</number>
+ </property>
+ <property name="value">
+ <number>0</number>
+ </property>
+ </widget>
+ <widget class="QLabel" row="1" column="6">
+ <property name="name">
+ <cstring>textLabel3</cstring>
+ </property>
+ <property name="text">
+ <string>Progr.</string>
+ </property>
+ </widget>
+ <widget class="QSpinBox" row="1" column="7">
+ <property name="name">
+ <cstring>defPatchProg</cstring>
+ </property>
+ <property name="specialValueText">
+ <string>off</string>
+ </property>
+ <property name="maxValue">
+ <number>128</number>
+ </property>
+ <property name="minValue">
+ <number>0</number>
+ </property>
+ <property name="value">
+ <number>0</number>
+ </property>
+ </widget>
+ <widget class="QPushButton" row="1" column="2" rowspan="1" colspan="4">
+ <property name="name">
+ <cstring>patchButton</cstring>
+ </property>
+ <property name="enabled">
+ <bool>true</bool>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>210</width>
+ <height>0</height>
+ </size>
+ </property>
+ <property name="text">
+ <string>???</string>
+ </property>
+ <property name="accel">
+ <string></string>
+ </property>
+ </widget>
+ <widget class="QLabel" row="0" column="4">
+ <property name="name">
+ <cstring>textLabel1_5</cstring>
+ </property>
+ <property name="text">
+ <string>H-Bank</string>
+ </property>
+ </widget>
+ <spacer row="0" column="3">
+ <property name="name">
+ <cstring>spacer12_2</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>40</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ <widget class="QSpinBox" row="0" column="1" rowspan="1" colspan="2">
+ <property name="name">
+ <cstring>spinBoxDefault</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>7</hsizetype>
+ <vsizetype>0</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>85</width>
+ <height>32767</height>
+ </size>
+ </property>
+ <property name="specialValueText">
+ <string>off</string>
+ <comment>dont care</comment>
+ </property>
+ <property name="maxValue">
+ <number>16383</number>
+ </property>
+ <property name="minValue">
+ <number>-1</number>
+ </property>
+ <property name="value">
+ <number>-1</number>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Default value. Off: No default.</string>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>Default (initial) value. Off means no default.
+
+If a default value is chosen, the value will be sent
+ to the controller when the controller is added to
+ the song (in piano roll or event editor). When
+ the song is re-loaded, the value is sent again.
+Otherwise the controller remains at its last value.
+Controllers are also automatically added to a
+ song upon reception of a midi controller event.
+
+Caution! Watch out for controllers such as
+ 'Sustain' and 'ResetAllController' with default
+ values. You should probably turn 'off' their
+ default (in piano roll or drum edit, and
+ instrument editor).</string>
+ </property>
+ </widget>
+ </grid>
+ </widget>
+ </vbox>
+ </widget>
+ <widget class="QLayoutWidget">
+ <property name="name">
+ <cstring>layout10</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QToolButton">
+ <property name="name">
+ <cstring>addController</cstring>
+ </property>
+ <property name="text">
+ <string>&amp;Add</string>
+ </property>
+ <property name="accel">
+ <string>Alt+A</string>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Add common controller</string>
+ </property>
+ </widget>
+ <widget class="QToolButton">
+ <property name="name">
+ <cstring>deleteController</cstring>
+ </property>
+ <property name="text">
+ <string>&amp;Delete</string>
+ </property>
+ <property name="accel">
+ <string>Alt+D</string>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Delete controller</string>
+ </property>
+ </widget>
+ <widget class="QToolButton">
+ <property name="name">
+ <cstring>newController</cstring>
+ </property>
+ <property name="text">
+ <string>New &amp;Controller</string>
+ </property>
+ <property name="accel">
+ <string>Alt+C</string>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Create a new controller</string>
+ </property>
+ </widget>
+ <spacer>
+ <property name="name">
+ <cstring>spacer13</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>200</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>nullValLabelH</cstring>
+ </property>
+ <property name="text">
+ <string>Null Param Hi:</string>
+ </property>
+ </widget>
+ <widget class="QSpinBox">
+ <property name="name">
+ <cstring>nullParamSpinBoxH</cstring>
+ </property>
+ <property name="specialValueText">
+ <string>off</string>
+ </property>
+ <property name="maxValue">
+ <number>127</number>
+ </property>
+ <property name="minValue">
+ <number>-1</number>
+ </property>
+ <property name="value">
+ <number>127</number>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Null parameter number High byte</string>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>If set, these 'null' parameter numbers will
+ be sent after each RPN/NRPN event.
+This prevents subsequent 'data' events
+ from corrupting the RPN/NRPN controller.
+Typically, set to 127/127, or an unused
+ RPN/NRPN controller number.</string>
+ </property>
+ </widget>
+ <spacer>
+ <property name="name">
+ <cstring>spacer13_3</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>200</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>nullValLabelL</cstring>
+ </property>
+ <property name="text">
+ <string> Lo:</string>
+ </property>
+ </widget>
+ <widget class="QSpinBox">
+ <property name="name">
+ <cstring>nullParamSpinBoxL</cstring>
+ </property>
+ <property name="specialValueText">
+ <string>off</string>
+ </property>
+ <property name="maxValue">
+ <number>127</number>
+ </property>
+ <property name="minValue">
+ <number>-1</number>
+ </property>
+ <property name="value">
+ <number>127</number>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Null parameter number Low byte</string>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>If set, these 'null' parameter numbers will
+ be sent after each RPN/NRPN event.
+This prevents subsequent 'data' events
+ from corrupting the RPN/NRPN controller.
+Typically, set to 127/127, or an unused
+ RPN/NRPN controller number.</string>
+ </property>
+ </widget>
+ </hbox>
+ </widget>
+ </vbox>
+ </widget>
+ </widget>
+ </vbox>
+ </widget>
+ <widget class="QWidget">
+ <property name="name">
+ <cstring>sysExTab</cstring>
+ </property>
+ <attribute name="title">
+ <string>S&amp;ysEx</string>
+ </attribute>
+ <vbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QSplitter">
+ <property name="name">
+ <cstring>splitter2</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <widget class="QLayoutWidget">
+ <property name="name">
+ <cstring>layout12</cstring>
+ </property>
+ <vbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>textLabel2_3</cstring>
+ </property>
+ <property name="text">
+ <string>SysEx List:</string>
+ </property>
+ </widget>
+ <widget class="QListBox">
+ <property name="name">
+ <cstring>sysexList</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>7</hsizetype>
+ <vsizetype>7</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ </widget>
+ </vbox>
+ </widget>
+ <widget class="QLayoutWidget">
+ <property name="name">
+ <cstring>layout11</cstring>
+ </property>
+ <vbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>textLabel1_4</cstring>
+ </property>
+ <property name="text">
+ <string>Name:</string>
+ </property>
+ </widget>
+ <widget class="QLineEdit">
+ <property name="name">
+ <cstring>sysexName</cstring>
+ </property>
+ </widget>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>textLabel1_2</cstring>
+ </property>
+ <property name="text">
+ <string>Hex Entry:</string>
+ </property>
+ </widget>
+ <widget class="QTextEdit">
+ <property name="name">
+ <cstring>sysexData</cstring>
+ </property>
+ </widget>
+ <widget class="QLayoutWidget">
+ <property name="name">
+ <cstring>layout10</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QToolButton">
+ <property name="name">
+ <cstring>deleteSysex</cstring>
+ </property>
+ <property name="text">
+ <string>&amp;Delete</string>
+ </property>
+ <property name="accel">
+ <string>Alt+D</string>
+ </property>
+ </widget>
+ <widget class="QToolButton">
+ <property name="name">
+ <cstring>newSysex</cstring>
+ </property>
+ <property name="text">
+ <string>New SysE&amp;x</string>
+ </property>
+ <property name="accel">
+ <string>Alt+X</string>
+ </property>
+ </widget>
+ <spacer>
+ <property name="name">
+ <cstring>spacer12</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>60</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </hbox>
+ </widget>
+ </vbox>
+ </widget>
+ </widget>
+ </vbox>
+ </widget>
+ </widget>
+ </widget>
+ </vbox>
+</widget>
+<menubar>
+ <property name="name">
+ <cstring>MenuBar</cstring>
+ </property>
+ <property name="defaultUp">
+ <bool>false</bool>
+ </property>
+ <item text="&amp;File" name="fileMenu">
+ <action name="fileNewAction"/>
+ <action name="fileOpenAction"/>
+ <action name="fileSaveAction"/>
+ <action name="fileSaveAsAction"/>
+ <separator/>
+ <action name="fileExitAction"/>
+ </item>
+ <item text="&amp;Help" name="Help">
+ <action name="whatsThisAction"/>
+ </item>
+</menubar>
+<toolbars>
+ <toolbar dock="2">
+ <property name="name">
+ <cstring>toolBar</cstring>
+ </property>
+ <property name="label">
+ <string>Tools</string>
+ </property>
+ <action name="fileNewAction"/>
+ <action name="fileOpenAction"/>
+ <action name="fileSaveAction"/>
+ <action name="fileSaveAsAction"/>
+ <action name="whatsThisAction"/>
+ </toolbar>
+</toolbars>
+<actions>
+ <action>
+ <property name="name">
+ <cstring>fileNewAction</cstring>
+ </property>
+ <property name="iconSet">
+ <iconset>image0</iconset>
+ </property>
+ <property name="text">
+ <string>New</string>
+ </property>
+ <property name="menuText">
+ <string>&amp;New</string>
+ </property>
+ <property name="accel">
+ <string>Ctrl+N</string>
+ </property>
+ </action>
+ <action>
+ <property name="name">
+ <cstring>fileOpenAction</cstring>
+ </property>
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="iconSet">
+ <iconset>image1</iconset>
+ </property>
+ <property name="text">
+ <string>Open</string>
+ </property>
+ <property name="menuText">
+ <string>&amp;Open...</string>
+ </property>
+ <property name="accel">
+ <string>Ctrl+O</string>
+ </property>
+ <property name="visible">
+ <bool>false</bool>
+ </property>
+ </action>
+ <action>
+ <property name="name">
+ <cstring>fileSaveAction</cstring>
+ </property>
+ <property name="iconSet">
+ <iconset>image2</iconset>
+ </property>
+ <property name="text">
+ <string>Save</string>
+ </property>
+ <property name="menuText">
+ <string>&amp;Save</string>
+ </property>
+ <property name="accel">
+ <string>Ctrl+S</string>
+ </property>
+ </action>
+ <action>
+ <property name="name">
+ <cstring>fileSaveAsAction</cstring>
+ </property>
+ <property name="iconSet">
+ <iconset>image3</iconset>
+ </property>
+ <property name="text">
+ <string>Save As</string>
+ </property>
+ <property name="menuText">
+ <string>Save &amp;As...</string>
+ </property>
+ <property name="accel">
+ <string></string>
+ </property>
+ </action>
+ <action>
+ <property name="name">
+ <cstring>fileExitAction</cstring>
+ </property>
+ <property name="text">
+ <string>Exit</string>
+ </property>
+ <property name="menuText">
+ <string>E&amp;xit</string>
+ </property>
+ <property name="accel">
+ <string></string>
+ </property>
+ </action>
+ <action>
+ <property name="name">
+ <cstring>filenew_itemAction</cstring>
+ </property>
+ <property name="text">
+ <string>new item</string>
+ </property>
+ <property name="menuText">
+ <string>new item</string>
+ </property>
+ </action>
+ <action>
+ <property name="name">
+ <cstring>whatsThisAction</cstring>
+ </property>
+ <property name="iconSet">
+ <iconset>image4</iconset>
+ </property>
+ <property name="text">
+ <string>What's this?</string>
+ </property>
+ <property name="menuText">
+ <string>What's this?</string>
+ </property>
+ </action>
+</actions>
+<images>
+ <image name="image0">
+ <data format="PNG" length="187">89504e470d0a1a0a0000000d4948445200000016000000160806000000c4b46c3b0000008249444154388ded95310ac0200c4593d2c334d0c535e0d2c3e75ae9d442353521e0e60741233ee5f355141198a1bd2d30b346168a088ee637aba8aabf0d00804e720f60823d95525c7867454474d0db6766b56c4981af7a7dc6163c05e6ca7dad81a7c088c340e4c04f32bccd52a98868811778810732af74e42df084b3febc6956dc1a2d33a3204eed990000000049454e44ae426082</data>
+ </image>
+ <image name="image1">
+ <data format="PNG" length="230">89504e470d0a1a0a0000000d4948445200000016000000160806000000c4b46c3b000000ad49444154388db594510ec3200c436db45371b7699a76375f8b7d8caa11cd18d1827f225af1621908256187ca16ea4ef02dbaa1d6daec5a12c7ff9218021f9bbc4692689b32ebf02c541253321ee3017ac6bf728b420180005a6b00d08e25c835eecc403fbc130ab077e2e57ba47931c68375aee2395eab73b91947b3f6e4666ca1af670c787f7caa9bf1bf50f34072a117c7595003ce859e56bbb2a08019f4995060f5b67fd16c56a4cde3516f027970cd357a563f0000000049454e44ae426082</data>
+ </image>
+ <image name="image2">
+ <data format="PNG" length="230">89504e470d0a1a0a0000000d4948445200000016000000160806000000c4b46c3b000000ad49444154388dd595c10a85201045af0f172e5af83d0afd5944f4670f9aef69e1a25d2d62c2b230c302cf460c3b5ca7310511e10d24001863e69c52221292277db78e4d0b0cff2149646bbbbd636b0b00f8650a1920e34bce514e63aac66dce49996862e53494d3c1735f0aaca5e472de123f255a8a63b2bbbc96b83c7150e3be0b5b2786df0d97e2ab85a97cdb6e4d9b2e3aeef2f191f67f5467dfa4bc762b4f2cf8cecb753d1191d88973b300c3df2bac2a2aaca70000000049454e44ae426082</data>
+ </image>
+ <image name="image3">
+ <data format="PNG" length="264">89504e470d0a1a0a0000000d49484452000000100000001008060000001ff3ff61000000cf49444154388da593410ec2300c0467090f4a8f3df421fd425f013f834b7af5872273a0a952a010c0926545ceaed6eb4480f3471c00628c009c3801978fb5c60870774712ee6d62246d15745df7b5f4a2e0f0d838eb8c74ddadafc2638cbe8cd21435a65981a43501ccac5d41e9d577b8afdf8fb529b5bb9b19df6ce7581f8ab37598d92ef113c1e36c2d0a36269a19ee4e4a49a5ee225f1100ccf3ac699a7c1c4772ce1f9fe6d3087ddfafa01082007fe781587e638c113323a5a49cb3871036b500866158cd36334829b190fc94376721c8f72ecfaff50000000049454e44ae426082</data>
+ </image>
+ <image name="image4">
+ <data format="PNG" length="243">89504e470d0a1a0a0000000d4948445200000016000000160806000000c4b46c3b000000ba49444154388dd594db0980300c451371aa0c90b93a5707b86be957306dd387423fbc206221a7370fc30068878e2dd45f824fff212217001e0588e4ab3e4b8948558bb8c6b18834813514500694537ac039971786a588e006351851e9d29f77c133e72b1a36cfc37dda269f7eed98fd0fd273d96ba82f4fddbc330a6801edb4f8464631cb73ecb3891a596bea7836d7afc000783415bdf4bd9a5298437bf766da9e25f0d7b423f16c1f9be3b7976edb6e53c75ff5bf45bf0d7c034d505e874a59314b0000000049454e44ae426082</data>
+ </image>
+</images>
+<connections>
+ <connection>
+ <sender>fileNewAction</sender>
+ <signal>activated()</signal>
+ <receiver>Form1</receiver>
+ <slot>fileNew()</slot>
+ </connection>
+ <connection>
+ <sender>fileOpenAction</sender>
+ <signal>activated()</signal>
+ <receiver>Form1</receiver>
+ <slot>fileOpen()</slot>
+ </connection>
+ <connection>
+ <sender>fileSaveAction</sender>
+ <signal>activated()</signal>
+ <receiver>Form1</receiver>
+ <slot>fileSave()</slot>
+ </connection>
+ <connection>
+ <sender>fileSaveAsAction</sender>
+ <signal>activated()</signal>
+ <receiver>Form1</receiver>
+ <slot>fileSaveAs()</slot>
+ </connection>
+ <connection>
+ <sender>fileExitAction</sender>
+ <signal>activated()</signal>
+ <receiver>Form1</receiver>
+ <slot>fileExit()</slot>
+ </connection>
+ <connection>
+ <sender>whatsThisAction</sender>
+ <signal>activated()</signal>
+ <receiver>Form1</receiver>
+ <slot>helpWhatsThis()</slot>
+ </connection>
+</connections>
+<tabstops>
+ <tabstop>instrumentName</tabstop>
+ <tabstop>instrumentList</tabstop>
+ <tabstop>tabWidget3</tabstop>
+ <tabstop>patchView</tabstop>
+ <tabstop>patchNameEdit</tabstop>
+ <tabstop>spinBoxHBank</tabstop>
+ <tabstop>spinBoxLBank</tabstop>
+ <tabstop>spinBoxProgram</tabstop>
+ <tabstop>checkBoxDrum</tabstop>
+ <tabstop>checkBoxGM</tabstop>
+ <tabstop>checkBoxGS</tabstop>
+ <tabstop>checkBoxXG</tabstop>
+ <tabstop>listController</tabstop>
+ <tabstop>viewController</tabstop>
+ <tabstop>ctrlName</tabstop>
+ <tabstop>ctrlType</tabstop>
+ <tabstop>spinBoxHCtrlNo</tabstop>
+ <tabstop>spinBoxLCtrlNo</tabstop>
+ <tabstop>spinBoxMin</tabstop>
+ <tabstop>spinBoxMax</tabstop>
+ <tabstop>spinBoxDefault</tabstop>
+ <tabstop>sysexList</tabstop>
+ <tabstop>sysexName</tabstop>
+ <tabstop>sysexData</tabstop>
+</tabstops>
+<slots>
+ <slot>fileNew()</slot>
+ <slot>fileOpen()</slot>
+ <slot>fileSave()</slot>
+ <slot>fileSaveAs()</slot>
+ <slot>fileExit()</slot>
+ <slot>helpWhatsThis()</slot>
+</slots>
+<layoutdefaults spacing="6" margin="11"/>
+</UI>
diff --git a/muse2/muse/instruments/midictrledit.cpp b/muse2/muse/instruments/midictrledit.cpp
new file mode 100644
index 00000000..6577b65f
--- /dev/null
+++ b/muse2/muse/instruments/midictrledit.cpp
@@ -0,0 +1,733 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: midictrledit.cpp,v 1.1.1.1.2.2 2008/08/18 00:15:24 terminator356 Exp $
+//
+// (C) Copyright 2003 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include <stdio.h>
+
+#include "app.h"
+#include "midiport.h"
+#include "mididev.h"
+#include "midictrl.h"
+#include "midictrledit.h"
+#include "minstrument.h"
+#include "song.h"
+#include "xml.h"
+#include "filedialog.h"
+#include "globals.h"
+
+#include <q3listview.h>
+#include <qlineedit.h>
+#include <q3listbox.h>
+#include <qcombobox.h>
+#include <qspinbox.h>
+#include <qpushbutton.h>
+#include <qtoolbutton.h>
+
+MidiControllerEditDialog* midiControllerEditDialog;
+
+static MidiController predefinedMidiController[] = {
+ MidiController(QString("Pitch"), 0x40000, -8192, +8191, 0),
+ };
+enum {
+ COL_NAME = 0, COL_TYPE,
+ COL_HNUM, COL_LNUM, COL_MIN, COL_MAX
+ };
+//---------------------------------------------------------
+// addControllerToView
+//---------------------------------------------------------
+
+void MidiControllerEditDialog::addControllerToView(MidiController* mctrl)
+ {
+ QString hnum;
+ QString lnum;
+ QString min;
+ QString max;
+ int n = mctrl->num();
+ int h = (n >> 8) & 0x7f;
+ int l = n & 0x7f;
+ MidiController::ControllerType t = midiControllerType(n);
+ switch(t)
+ {
+ case MidiController::Controller7:
+ hnum = "---";
+ lnum.setNum(l);
+ min.setNum(mctrl->minVal());
+ max.setNum(mctrl->maxVal());
+ break;
+ case MidiController::RPN:
+ case MidiController::NRPN:
+ case MidiController::RPN14:
+ case MidiController::NRPN14:
+ case MidiController::Controller14:
+ hnum.setNum(h);
+ lnum.setNum(l);
+ min.setNum(mctrl->minVal());
+ max.setNum(mctrl->maxVal());
+ break;
+ case MidiController::Pitch:
+ hnum = "---";
+ lnum = "---";
+ min.setNum(mctrl->minVal());
+ max.setNum(mctrl->maxVal());
+ break;
+ default:
+ hnum = "---";
+ lnum = "---";
+ min.setNum(0);
+ max.setNum(0);
+ break;
+ }
+
+ new Q3ListViewItem(viewController,
+ mctrl->name(),
+ int2ctrlType(t),
+ hnum, lnum, min, max
+ );
+
+ }
+//---------------------------------------------------------
+// MidiControllerEditDialog
+//---------------------------------------------------------
+
+MidiControllerEditDialog::MidiControllerEditDialog(QWidget* parent, const char* name, bool modal, Qt::WFlags fl)
+ : MidiControllerEditDialogBase(parent, name, modal, fl)
+ {
+ _lastPort = midiPortsList->currentItem();
+ viewController->setColumnAlignment(COL_HNUM, Qt::AlignCenter);
+ viewController->setColumnAlignment(COL_LNUM, Qt::AlignCenter);
+ viewController->setColumnAlignment(COL_MIN, Qt::AlignCenter);
+ viewController->setColumnAlignment(COL_MAX, Qt::AlignCenter);
+ viewController->setColumnWidthMode(COL_NAME, Q3ListView::Maximum);
+
+ // populate list of predefined controller
+ updatePredefinedList();
+
+ // populate ports pulldown
+ updateMidiPortsList();
+ 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()));
+ connect(buttonApply, SIGNAL(clicked()), SLOT(apply()));
+ connect(midiPortsList, SIGNAL(activated(int)), SLOT(portChanged(int)));
+
+ updateViewController();
+ _modified = false;
+ buttonApply->setEnabled(false);
+ connect(song, SIGNAL(songChanged(int)), SLOT(songChanged(int)));
+ }
+
+//---------------------------------------------------------
+// songChanged
+//---------------------------------------------------------
+
+void MidiControllerEditDialog::songChanged(int flags)
+{
+ // Is it simply a midi controller value adjustment? Forget it.
+ if(flags == SC_MIDI_CONTROLLER)
+ return;
+
+ if(flags & (SC_CONFIG | SC_MIDI_CONTROLLER))
+ //if(flags & (SC_CONFIG | SC_MIDI_CONTROLLER_ADD))
+ {
+ //listController->blockSignals(true);
+ midiPortsList->blockSignals(true);
+ //viewController->blockSignals(true);
+ updatePredefinedList();
+ updateMidiPortsList();
+ updateViewController();
+ //viewController->setCurrentItem(viewController->firstChild());
+ //controllerChanged(viewController->currentItem());
+ //listController->blockSignals(false);
+ midiPortsList->blockSignals(false);
+ //viewController->blockSignals(false);
+ }
+}
+
+//---------------------------------------------------------
+// updatePredefinedList
+//---------------------------------------------------------
+
+void MidiControllerEditDialog::updatePredefinedList()
+{
+ listController->clear();
+ int size = sizeof(predefinedMidiController) / sizeof(*predefinedMidiController);
+ for (int i = 0; i < size; ++i)
+ listController->insertItem(predefinedMidiController[i].name());
+ listController->setSelected(0, true);
+}
+
+//---------------------------------------------------------
+// updateMidiPortsList
+//---------------------------------------------------------
+
+void MidiControllerEditDialog::updateMidiPortsList()
+{
+ midiPortsList->clear();
+ 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);
+ }
+ _lastPort = midiPortsList->currentItem();
+}
+
+//---------------------------------------------------------
+// updateViewController
+//---------------------------------------------------------
+
+void MidiControllerEditDialog::updateViewController()
+{
+ //for (iMidiController i = midiControllerList.begin();
+ // i != midiControllerList.end(); ++i) {
+ // addControllerToView(&*i);
+ int mpidx = midiPortsList->currentItem();
+
+ viewController->clear();
+ //MidiControllerList* mcl;
+ MidiInstrument* mi = midiPorts[mpidx].instrument();
+ //if(mi)
+ MidiControllerList* mcl = mi->controller();
+ //else
+ // mcl = &defaultMidiController;
+ for (iMidiController i = mcl->begin(); i != mcl->end(); ++i)
+ addControllerToView(*i);
+
+ viewController->blockSignals(true);
+ viewController->setCurrentItem(viewController->firstChild());
+ controllerChanged(viewController->currentItem());
+ viewController->blockSignals(false);
+
+ setModified(false);
+}
+
+//---------------------------------------------------------
+// reject
+//---------------------------------------------------------
+
+void MidiControllerEditDialog::setModified(bool v)
+{
+ if(v == _modified)
+ return;
+
+ _modified = v;
+
+ if(v)
+ {
+ buttonApply->setEnabled(true);
+ }
+ else
+ {
+ buttonApply->setEnabled(false);
+ }
+}
+
+//---------------------------------------------------------
+// reject
+//---------------------------------------------------------
+
+void MidiControllerEditDialog::reject()
+ {
+ //MidiControllerList* mcl;
+// MidiInstrument* mi = midiPorts[mpidx].instrument();
+ //if(mi)
+// MidiControllerList* mcl = mi->controller();
+ //else
+ // mcl = &defaultMidiController;
+// for (iMidiController i = mcl->begin(); i != mcl->end(); ++i)
+// addControllerToView(*i);
+
+ // Restore the list before closing this dialog.
+ updateViewController();
+ //setModified(false);
+
+ MidiControllerEditDialogBase::reject();
+ }
+
+//---------------------------------------------------------
+// apply
+//---------------------------------------------------------
+
+void MidiControllerEditDialog::apply()
+{
+ int mpidx = midiPortsList->currentItem();
+ //MidiControllerList* mcl;
+ MidiInstrument* mi = midiPorts[mpidx].instrument();
+ //if(mi)
+ MidiControllerList* mcl = mi->controller();
+ //else
+ // mcl = &defaultMidiController;
+ mcl->clear();
+
+
+ Q3ListViewItem* item = viewController->firstChild();
+ int hval;
+ int lval;
+ while (item) {
+ hval = item->text(COL_HNUM).toInt();
+ lval = item->text(COL_LNUM).toInt();
+ MidiController* c = new MidiController();
+ c->setName(item->text(COL_NAME));
+
+ MidiController::ControllerType type = ctrlType2Int(item->text(COL_TYPE));
+
+ switch(type) {
+ case MidiController::Controller7:
+ c->setNum(lval);
+ break;
+ case MidiController::Controller14:
+ c->setNum((hval << 8 | lval) | CTRL_14_OFFSET);
+ break;
+ case MidiController::RPN:
+ c->setNum((hval << 8 | lval) | CTRL_RPN_OFFSET);
+ break;
+ case MidiController::NRPN:
+ c->setNum((hval << 8 | lval) | CTRL_NRPN_OFFSET);
+ break;
+ case MidiController::RPN14:
+ c->setNum((hval << 8 | lval) | CTRL_RPN14_OFFSET);
+ break;
+ case MidiController::NRPN14:
+ c->setNum((hval << 8 | lval) | CTRL_NRPN14_OFFSET);
+ break;
+ case MidiController::Program:
+ c->setNum(CTRL_PROGRAM);
+ break;
+ case MidiController::Pitch:
+ c->setNum(CTRL_PITCH);
+ break;
+ default:
+ break;
+ }
+ if(type == MidiController::Program)
+ {
+ c->setMinVal(0);
+ c->setMaxVal(0xffffff);
+ }
+ else
+ {
+ c->setMinVal(item->text(COL_MIN).toInt());
+ c->setMaxVal(item->text(COL_MAX).toInt());
+ }
+
+ mcl->push_back(c);
+
+ item = item->nextSibling();
+ }
+
+ // Update the list before closing this dialog.
+ //updateViewController();
+ //setModified(false);
+ song->update(SC_CONFIG | SC_MIDI_CONTROLLER);
+}
+
+//---------------------------------------------------------
+// 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 = midiControllerType(c->num());
+ QString type = int2ctrlType(t);
+ QString min, max;
+ QString hno, lno;
+ int h = (c->num() >> 8) & 0x7f;
+ int l = c->num() & 0x7f;
+
+ switch(t) {
+ case MidiController::Controller7:
+ min.setNum(c->minVal());
+ max.setNum(c->maxVal());
+ hno = "---";
+ lno.setNum(l);
+ break;
+ case MidiController::RPN:
+ case MidiController::NRPN:
+ case MidiController::RPN14:
+ case MidiController::NRPN14:
+ case MidiController::Controller14:
+ min.setNum(c->minVal());
+ max.setNum(c->maxVal());
+ hno.setNum(h);
+ lno.setNum(l);
+ break;
+ case MidiController::Pitch:
+ min.setNum(c->minVal());
+ max.setNum(c->maxVal());
+ hno = "---";
+ lno = "---";
+ break;
+ default:
+ hno = "---";
+ lno = "---";
+ min.setNum(0);
+ max.setNum(0);
+ break;
+ }
+
+ Q3ListViewItem* item = new Q3ListViewItem(viewController,
+ name, type, hno, lno, min, max);
+
+ viewController->blockSignals(true);
+ viewController->setCurrentItem(item);
+ controllerChanged(item);
+ viewController->blockSignals(false);
+
+ setModified(true);
+ break;
+ }
+ }
+
+//---------------------------------------------------------
+// ctrlDelete
+//---------------------------------------------------------
+
+void MidiControllerEditDialog::ctrlDelete()
+ {
+ Q3ListViewItem* item = viewController->currentItem();
+ if (item == 0)
+ return;
+ delete item;
+
+ setModified(true);
+ }
+
+//---------------------------------------------------------
+// accept
+//---------------------------------------------------------
+
+void MidiControllerEditDialog::accept()
+ {
+ apply();
+ MidiControllerEditDialogBase::accept();
+ }
+
+//---------------------------------------------------------
+// portChanged
+//---------------------------------------------------------
+
+void MidiControllerEditDialog::portChanged(int n)
+ {
+ if(n == _lastPort)
+ return;
+ _lastPort = n;
+
+ //listController->blockSignals(true);
+ //midiPortsList->blockSignals(true);
+ //viewController->blockSignals(true);
+ //updatePredefinedList();
+ //updateMidiPortsList();
+ //reject(); // populate list
+ updateViewController();
+ //viewController->setCurrentItem(viewController->firstChild());
+ //controllerChanged(viewController->currentItem());
+ //listController->blockSignals(false);
+ //midiPortsList->blockSignals(false);
+ //viewController->blockSignals(false);
+ }
+
+//---------------------------------------------------------
+// nameChanged
+//---------------------------------------------------------
+
+void MidiControllerEditDialog::nameChanged(const QString& s)
+ {
+ Q3ListViewItem* item = viewController->currentItem();
+ if (item == 0)
+ return;
+ item->setText(COL_NAME, s);
+
+ setModified(true);
+ }
+
+//---------------------------------------------------------
+// typeChanged
+//---------------------------------------------------------
+
+void MidiControllerEditDialog::typeChanged(const QString& s)
+ {
+ Q3ListViewItem* item = viewController->currentItem();
+ if (item == 0)
+ return;
+ item->setText(COL_TYPE, s);
+ switch(ctrlType2Int(s)) {
+ case MidiController::Controller14:
+ case MidiController::RPN14:
+ case MidiController::NRPN14:
+ item->setText(COL_LNUM, QString("0"));
+ item->setText(COL_HNUM, QString("0"));
+ item->setText(COL_MIN, QString("0"));
+ item->setText(COL_MAX, QString("16383"));
+ break;
+ case MidiController::Controller7:
+ item->setText(COL_MIN, QString("0"));
+ item->setText(COL_MAX, QString("127"));
+ item->setText(COL_LNUM, QString("0"));
+ item->setText(COL_HNUM, QString("---"));
+ break;
+ case MidiController::RPN:
+ case MidiController::NRPN:
+ item->setText(COL_MIN, QString("0"));
+ item->setText(COL_MAX, QString("127"));
+ item->setText(COL_LNUM, QString("0"));
+ item->setText(COL_HNUM, QString("0"));
+ break;
+
+ case MidiController::Program:
+
+ item->setText(COL_MIN, QString("---"));
+ item->setText(COL_MAX, QString("---"));
+ item->setText(COL_LNUM, QString("---"));
+ item->setText(COL_HNUM, QString("---"));
+ break;
+ case MidiController::Pitch:
+ item->setText(COL_MIN, QString("-8192"));
+ item->setText(COL_MAX, QString("8191"));
+ item->setText(COL_LNUM, QString("---"));
+ item->setText(COL_HNUM, QString("---"));
+ break;
+ default:
+ break;
+ }
+
+ setModified(true);
+
+ 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);
+
+ setModified(true);
+ }
+
+//---------------------------------------------------------
+// valueLChanged
+//---------------------------------------------------------
+
+void MidiControllerEditDialog::valueLChanged(int val)
+ {
+ Q3ListViewItem* item = viewController->currentItem();
+ if (item == 0)
+ return;
+ QString s;
+ s.setNum(val);
+ item->setText(COL_LNUM, s);
+
+ setModified(true);
+ }
+
+//---------------------------------------------------------
+// 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(0);
+ spinboxLCtrlNo->setValue(item->text(COL_LNUM).toInt());
+ spinboxMin->setRange(0, 127);
+ spinboxMax->setRange(0, 127);
+ spinboxMin->setValue(item->text(COL_MIN).toInt());
+ spinboxMax->setValue(item->text(COL_MAX).toInt());
+ break;
+
+ 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->setRange(0, 127);
+ spinboxMax->setRange(0, 127);
+ spinboxMin->setValue(item->text(COL_MIN).toInt());
+ spinboxMax->setValue(item->text(COL_MAX).toInt());
+ break;
+ case MidiController::Controller14:
+ case MidiController::RPN14:
+ case MidiController::NRPN14:
+ 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->setRange(0, 16383);
+ spinboxMax->setRange(0, 16383);
+ spinboxMin->setValue(item->text(COL_MIN).toInt());
+ spinboxMax->setValue(item->text(COL_MAX).toInt());
+ break;
+
+ case MidiController::Pitch:
+ comboType->setEnabled(true);
+ spinboxHCtrlNo->setEnabled(false);
+ spinboxLCtrlNo->setEnabled(false);
+ spinboxMin->setEnabled(true);
+ spinboxMax->setEnabled(true);
+ spinboxHCtrlNo->setValue(0);
+ spinboxLCtrlNo->setValue(0);
+ spinboxMin->setRange(-8192, 8191);
+ spinboxMax->setRange(-8192, 8191);
+ spinboxMin->setValue(item->text(COL_MIN).toInt());
+ spinboxMax->setValue(item->text(COL_MAX).toInt());
+ break;
+
+ case MidiController::Program:
+ comboType->setEnabled(true);
+ spinboxHCtrlNo->setEnabled(false);
+ spinboxLCtrlNo->setEnabled(false);
+ spinboxMin->setEnabled(false);
+ spinboxMax->setEnabled(false);
+ spinboxHCtrlNo->setValue(0);
+ spinboxLCtrlNo->setValue(0);
+ spinboxMin->setRange(0, 0);
+ spinboxMax->setRange(0, 0);
+ spinboxMin->setValue(0);
+ spinboxMax->setValue(0);
+ 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);
+
+ if(val > item->text(COL_MAX).toInt())
+ {
+ spinboxMax->blockSignals(true);
+ spinboxMax->setValue(val);
+ item->setText(COL_MAX, s);
+ spinboxMax->blockSignals(false);
+ }
+ setModified(true);
+ }
+
+//---------------------------------------------------------
+// maxChanged
+//---------------------------------------------------------
+
+void MidiControllerEditDialog::maxChanged(int val)
+ {
+ Q3ListViewItem* item = viewController->currentItem();
+ if (item == 0)
+ return;
+
+ QString s;
+ s.setNum(val);
+ item->setText(COL_MAX, s);
+
+ if(val < item->text(COL_MIN).toInt())
+ {
+ spinboxMin->blockSignals(true);
+ spinboxMin->setValue(val);
+ item->setText(COL_MIN, s);
+ spinboxMin->blockSignals(false);
+ }
+ setModified(true);
+ }
+
+//---------------------------------------------------------
+// configMidiController
+//---------------------------------------------------------
+
+void configMidiController()
+ {
+ if (midiControllerEditDialog == 0)
+ {
+ midiControllerEditDialog = new MidiControllerEditDialog();
+ midiControllerEditDialog->show();
+ }
+ else
+ {
+ if(midiControllerEditDialog->isShown())
+ midiControllerEditDialog->hide();
+ else
+ midiControllerEditDialog->show();
+ }
+ }
diff --git a/muse2/muse/instruments/midictrledit.h b/muse2/muse/instruments/midictrledit.h
new file mode 100644
index 00000000..e1624f29
--- /dev/null
+++ b/muse2/muse/instruments/midictrledit.h
@@ -0,0 +1,56 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: midictrledit.h,v 1.1.1.1.2.1 2008/08/18 00:15:25 terminator356 Exp $
+//
+// (C) Copyright 1999/2000 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __MIDICTRLEDIT_H__
+#define __MIDICTRLEDIT_H__
+
+#include "ccontrolbase.h"
+#include "midictrl.h"
+
+//---------------------------------------------------------
+// MidiControllerEditDialog
+//---------------------------------------------------------
+
+class MidiControllerEditDialog : public MidiControllerEditDialogBase {
+ Q_OBJECT
+
+ int _lastPort;
+ bool _modified;
+
+ void addControllerToView(MidiController* mctrl);
+ void mergeReplace(bool replace);
+ void updatePredefinedList();
+ void updateMidiPortsList();
+ void updateViewController();
+ void setModified(bool);
+
+ private slots:
+ void ctrlAdd();
+ void ctrlDelete();
+ virtual void accept();
+ virtual void reject();
+ void apply();
+ 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);
+ void portChanged(int);
+ void songChanged(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/muse2/muse/instruments/minstrument.cpp b/muse2/muse/instruments/minstrument.cpp
new file mode 100644
index 00000000..a69f504e
--- /dev/null
+++ b/muse2/muse/instruments/minstrument.cpp
@@ -0,0 +1,850 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: minstrument.cpp,v 1.10.2.5 2009/03/28 01:46:10 terminator356 Exp $
+//
+// (C) Copyright 2000-2003 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include <stdio.h>
+
+#include <q3popupmenu.h>
+#include <qdir.h>
+#include <qfileinfo.h>
+
+#include "minstrument.h"
+#include "midiport.h"
+#include "globals.h"
+#include "xml.h"
+#include "event.h"
+#include "mpevent.h"
+#include "midictrl.h"
+#include "gconfig.h"
+
+MidiInstrumentList midiInstruments;
+MidiInstrument* genericMidiInstrument;
+
+static const char* gmdrumname = "GM-drums";
+
+//---------------------------------------------------------
+// readEventList
+//---------------------------------------------------------
+
+static void readEventList(Xml& xml, EventList* el, const char* name)
+ {
+ 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 == "event") {
+ Event e(Note);
+ e.read(xml);
+ el->add(e);
+ }
+ else
+ xml.unknown("readEventList");
+ break;
+ case Xml::TagEnd:
+ if (tag == name)
+ return;
+ default:
+ break;
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// read
+//---------------------------------------------------------
+
+//---------------------------------------------------------
+// loadIDF
+//---------------------------------------------------------
+
+static void loadIDF(QFileInfo* fi)
+ {
+/*
+ QFile qf(fi->filePath());
+ if (!qf.open(IO_ReadOnly)) {
+ printf("cannot open file %s\n", fi->fileName().latin1());
+ return;
+ }
+ if (debugMsg)
+ printf(" load instrument definition <%s>\n", fi->filePath().local8Bit().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().latin1(), error.latin1());
+ 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().latin1());
+ node = node.nextSibling();
+ }
+ qf.close();
+*/
+
+ FILE* f = fopen(fi->filePath().ascii(), "r");
+ if (f == 0)
+ return;
+ if (debugMsg)
+ printf("READ IDF %s\n", fi->filePath().latin1());
+ Xml xml(f);
+
+ bool skipmode = true;
+ for (;;) {
+ Xml::Token token = xml.parse();
+ const QString& tag = xml.s1();
+ switch (token) {
+ case Xml::Error:
+ case Xml::End:
+ return;
+ case Xml::TagStart:
+ if (skipmode && tag == "muse")
+ skipmode = false;
+ else if (skipmode)
+ break;
+ else if (tag == "MidiInstrument") {
+ MidiInstrument* i = new MidiInstrument();
+ i->setFilePath(fi->filePath());
+ i->read(xml);
+ // Ignore duplicate named instruments.
+ iMidiInstrument ii = midiInstruments.begin();
+ for(; ii != midiInstruments.end(); ++ii)
+ {
+ if((*ii)->iname() == i->iname())
+ break;
+ }
+ if(ii == midiInstruments.end())
+ midiInstruments.push_back(i);
+ else
+ delete i;
+ }
+ else
+ xml.unknown("muse");
+ break;
+ case Xml::Attribut:
+ break;
+ case Xml::TagEnd:
+ if (!skipmode && tag == "muse") {
+ return;
+ }
+ default:
+ break;
+ }
+ }
+ fclose(f);
+
+
+ }
+
+//---------------------------------------------------------
+// initMidiInstruments
+//---------------------------------------------------------
+
+void initMidiInstruments()
+ {
+ genericMidiInstrument = new MidiInstrument(QWidget::tr("generic midi"));
+ midiInstruments.push_back(genericMidiInstrument);
+ if (debugMsg)
+ printf("load user instrument definitions from <%s>\n", museUserInstruments.latin1());
+ QDir usrInstrumentsDir(museUserInstruments, QString("*.idf"));
+ if (usrInstrumentsDir.exists()) {
+ QFileInfoList list = usrInstrumentsDir.entryInfoList();
+ QFileInfoList::iterator it=list.begin(); // ddskrjo
+ while(it != list.end()) { // ddskrjo
+ loadIDF(&*it);
+ ++it;
+ }
+ }
+ //else
+ //{
+ // if(usrInstrumentsDir.mkdir(museUserInstruments))
+ // printf("Created user instrument directory: %s\n", museUserInstruments.latin1());
+ // else
+ // printf("Unable to create user instrument directory: %s\n", museUserInstruments.latin1());
+ //}
+
+ if (debugMsg)
+ printf("load instrument definitions from <%s>\n", museInstruments.latin1());
+ QDir instrumentsDir(museInstruments, QString("*.idf"));
+ if (instrumentsDir.exists()) {
+ QFileInfoList list = instrumentsDir.entryInfoList();
+ QFileInfoListIterator it=list.begin(); // ddskrjo
+ while(it!=list.end()) {
+ loadIDF(&*it);
+ ++it;
+ }
+ }
+ else
+ printf("Instrument directory not found: %s\n", museInstruments.latin1());
+
+ }
+
+//---------------------------------------------------------
+// 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()
+ {
+ _nullvalue = -1;
+ _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, 0xffffff, 0);
+ _controller->add(prog);
+ _dirty = false;
+ }
+
+MidiInstrument::MidiInstrument()
+ {
+ init();
+ }
+
+//---------------------------------------------------------
+// MidiInstrument
+//---------------------------------------------------------
+
+MidiInstrument::MidiInstrument(const QString& txt)
+ {
+ _name = txt;
+ init();
+ }
+
+//---------------------------------------------------------
+// MidiInstrument
+//---------------------------------------------------------
+
+MidiInstrument::~MidiInstrument()
+ {
+ for (ciPatchGroup g = pg.begin(); g != pg.end(); ++g)
+ {
+ PatchGroup* pgp = *g;
+ const PatchList& pl = pgp->patches;
+ for (ciPatch p = pl.begin(); p != pl.end(); ++p)
+ {
+ delete *p;
+ }
+ delete pgp;
+ }
+
+
+ delete _midiInit;
+ delete _midiReset;
+ delete _midiState;
+ for(iMidiController i = _controller->begin(); i != _controller->end(); ++i)
+ delete i->second;
+ delete _controller;
+
+ if (_initScript)
+ delete _initScript;
+ }
+
+/*
+//---------------------------------------------------------
+// uniqueCopy
+//---------------------------------------------------------
+
+MidiInstrument& MidiInstrument::uniqueCopy(const MidiInstrument& ins)
+{
+ _initScript = 0;
+ _midiInit = new EventList();
+ _midiReset = new EventList();
+ _midiState = new EventList();
+ //---------------------------------------------------------
+ // TODO: Copy the init script, and the lists.
+ //---------------------------------------------------------
+ _controller = new MidiControllerList(*(ins._controller));
+
+ // Assignment
+ pg = ins.pg;
+
+ _name = ins._name;
+ _filePath = ins._filePath;
+
+ // Hmm, dirty, yes? But init sets it to false...
+ //_dirty = ins._dirty;
+ //_dirty = false;
+ _dirty = true;
+
+ return *this;
+}
+*/
+
+//---------------------------------------------------------
+// assign
+//---------------------------------------------------------
+
+MidiInstrument& MidiInstrument::assign(const MidiInstrument& ins)
+{
+ //---------------------------------------------------------
+ // TODO: Copy the _initScript, and _midiInit, _midiReset, and _midiState lists.
+ //---------------------------------------------------------
+
+ for(iMidiController i = _controller->begin(); i != _controller->end(); ++i)
+ delete i->second;
+ _controller->clear();
+
+ _nullvalue = ins._nullvalue;
+
+ // Assignment
+ // *_controller = *(ins._controller);
+ for(ciMidiController i = ins._controller->begin(); i != ins._controller->end(); ++i)
+ {
+ MidiController* mc = i->second;
+ _controller->add(new MidiController(*mc));
+ }
+
+// pg.clear();
+// for(iPatchGroup ipg = pg.begin(); ipg != pg.end(); ++ipg)
+// {
+ //ipg->patches.clear();
+
+ //const PatchGroup& g = *ipg;
+ //for(ciPatch ip = ipg->begin(); ip != ipg->end(); ++ipg)
+ //{
+
+ //}
+// }
+
+ for (ciPatchGroup g = pg.begin(); g != pg.end(); ++g)
+ {
+ PatchGroup* pgp = *g;
+ const PatchList& pl = pgp->patches;
+ for (ciPatch p = pl.begin(); p != pl.end(); ++p)
+ {
+ delete *p;
+ }
+
+ delete pgp;
+ }
+ pg.clear();
+
+ // Assignment
+// pg = ins.pg;
+ for(ciPatchGroup g = ins.pg.begin(); g != ins.pg.end(); ++g)
+ {
+ PatchGroup* pgp = *g;
+ const PatchList& pl = pgp->patches;
+ PatchGroup* npg = new PatchGroup;
+ npg->name = pgp->name;
+ pg.push_back(npg);
+ for (ciPatch p = pl.begin(); p != pl.end(); ++p)
+ {
+ Patch* pp = *p;
+ Patch* np = new Patch;
+ np->typ = pp->typ;
+ np->hbank = pp->hbank;
+ np->lbank = pp->lbank;
+ np->prog = pp->prog;
+ np->name = pp->name;
+ np->drum = pp->drum;
+ npg->patches.push_back(np);
+ }
+ }
+
+ _name = ins._name;
+ _filePath = ins._filePath;
+
+ // Hmm, dirty, yes? But init sets it to false...
+ //_dirty = ins._dirty;
+ //_dirty = false;
+ //_dirty = true;
+
+ return *this;
+}
+
+//---------------------------------------------------------
+// reset
+// send note off to all channels
+//---------------------------------------------------------
+
+void MidiInstrument::reset(int portNo, MType)
+ {
+ MidiPlayEvent ev;
+ ev.setType(0x90);
+ MidiPort* port = &midiPorts[portNo];
+ if (port == 0)
+ return;
+ ev.setPort(portNo);
+ for (int chan = 0; chan < MIDI_CHANNELS; ++chan) {
+ ev.setChannel(chan);
+ for (int pitch = 0; pitch < 128; ++pitch) {
+ ev.setA(pitch);
+ ev.setB(0);
+ port->sendEvent(ev);
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// readPatchGroup
+//---------------------------------------------------------
+
+void PatchGroup::read(Xml& xml)
+ {
+ 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 == "Patch") {
+ Patch* patch = new Patch;
+ patch->read(xml);
+ patches.push_back(patch);
+ }
+ else
+ xml.unknown("PatchGroup");
+ break;
+ case Xml::Attribut:
+ if (tag == "name")
+ name = xml.s2();
+ break;
+ case Xml::TagEnd:
+ if (tag == "PatchGroup")
+ return;
+ default:
+ break;
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// read
+//---------------------------------------------------------
+
+void Patch::read(Xml& xml)
+ {
+ typ = -1;
+ hbank = -1;
+ lbank = -1;
+ prog = 0;
+ drum = false;
+ 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("Patch");
+ break;
+ case Xml::Attribut:
+ if (tag == "name")
+ name = xml.s2();
+ else if (tag == "mode")
+ typ = xml.s2().toInt();
+ else if (tag == "hbank")
+ hbank = xml.s2().toInt();
+ else if (tag == "lbank")
+ lbank = xml.s2().toInt();
+ else if (tag == "prog")
+ prog = xml.s2().toInt();
+ else if (tag == "drum")
+ drum = xml.s2().toInt();
+ break;
+ case Xml::TagEnd:
+ if (tag == "Patch")
+ return;
+ default:
+ break;
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// write
+//---------------------------------------------------------
+
+void Patch::write(int level, 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);
+ xml.nput(level, "<Patch name=\"%s\"", Xml::xmlString(name).latin1());
+ if(typ != -1)
+ xml.nput(" mode=\"%d\"", typ);
+
+ if(hbank != -1)
+ xml.nput(" hbank=\"%d\"", hbank);
+
+ if(lbank != -1)
+ xml.nput(" lbank=\"%d\"", lbank);
+
+ xml.nput(" prog=\"%d\"", prog);
+
+ //xml.nput(level, " hbank=\"%d\" lbank=\"%d\" prog=\"%d\"", hbank, lbank, prog);
+ if(drum)
+ //xml.nput(level, " drum=\"%d\"", int(drum));
+ xml.nput(" drum=\"%d\"", int(drum));
+ //xml.put(level, " />");
+ xml.put(" />");
+
+ //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(Xml& xml)
+ {
+ _midiState->read(xml, "midistate", true);
+ }
+
+//---------------------------------------------------------
+// read
+//---------------------------------------------------------
+
+void MidiInstrument::read(Xml& xml)
+ {
+ bool ok;
+ int base = 10;
+ _nullvalue = -1;
+ 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 == "Patch") {
+ Patch* patch = new Patch;
+ patch->read(xml);
+ if (pg.empty()) {
+ PatchGroup* p = new PatchGroup;
+ p->patches.push_back(patch);
+ pg.push_back(p);
+ }
+ else
+ pg[0]->patches.push_back(patch);
+ }
+ else if (tag == "PatchGroup") {
+ PatchGroup* p = new PatchGroup;
+ p->read(xml);
+ pg.push_back(p);
+ }
+ else if (tag == "Controller") {
+ MidiController* mc = new MidiController();
+ mc->read(xml);
+ // Added by Tim. Copied from muse 2.
+ //
+ // HACK: make predefined "Program" controller overloadable
+ //
+ if (mc->name() == "Program") {
+ for (iMidiController i = _controller->begin(); i != _controller->end(); ++i) {
+ if (i->second->name() == mc->name()) {
+ delete i->second;
+ _controller->erase(i);
+ break;
+ }
+ }
+ }
+
+ _controller->add(mc);
+ }
+ else if (tag == "Init")
+ readEventList(xml, _midiInit, "Init");
+ else if (tag == "Reset")
+ readEventList(xml, _midiReset, "Reset");
+ else if (tag == "State")
+ readEventList(xml, _midiState, "State");
+ else if (tag == "InitScript") {
+ if (_initScript)
+ delete _initScript;
+ const char* istr = xml.parse1().latin1();
+ int len = strlen(istr) +1;
+ if (len > 1) {
+ _initScript = new char[len];
+ memcpy(_initScript, istr, len);
+ }
+ }
+
+ else
+ xml.unknown("MidiInstrument");
+ break;
+ case Xml::Attribut:
+ if (tag == "name")
+ setIName(xml.s2());
+ else if(tag == "nullparam") {
+ _nullvalue = xml.s2().toInt(&ok, base);
+ }
+ break;
+ case Xml::TagEnd:
+ if (tag == "MidiInstrument")
+ return;
+ default:
+ break;
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// write
+//---------------------------------------------------------
+
+void MidiInstrument::write(int level, Xml& xml)
+ {
+ xml.header();
+ //xml.stag("muse version=\"2.1\"");
+ xml.tag(level, "muse version=\"1.0\"");
+ //xml.stag(QString("MidiInstrument name=\"%1\"").arg(Xml::xmlString(iname())));
+ level++;
+ //xml.tag(level, "MidiInstrument name=\"%s\"", Xml::xmlString(iname()).latin1());
+ xml.nput(level, "<MidiInstrument name=\"%s\"", Xml::xmlString(iname()).latin1());
+
+ if(_nullvalue != -1)
+ {
+ QString nv;
+ nv.setNum(_nullvalue);
+ xml.nput(" nullparam=\"%s\"", nv.latin1());
+ }
+ xml.put(">");
+
+ // -------------
+ // What about Init, Reset, State, and InitScript ?
+ // -------------
+
+ //std::vector<PatchGroup>* pg = groups();
+ //for (std::vector<PatchGroup>::iterator g = pg->begin(); g != pg->end(); ++g) {
+ level++;
+ //for (std::vector<PatchGroup>::iterator g = pg.begin(); g != pg.end(); ++g) {
+ for (ciPatchGroup g = pg.begin(); g != pg.end(); ++g) {
+ PatchGroup* pgp = *g;
+ const PatchList& pl = pgp->patches;
+ //xml.stag(QString("PatchGroup name=\"%1\"").arg(Xml::xmlString(g->name)));
+ //xml.tag(level, "PatchGroup name=\"%s\"", Xml::xmlString(g->name).latin1());
+ xml.tag(level, "PatchGroup name=\"%s\"", Xml::xmlString(pgp->name).latin1());
+ level++;
+ //for (iPatch p = g->patches.begin(); p != g->patches.end(); ++p)
+ for (ciPatch p = pl.begin(); p != pl.end(); ++p)
+ //(*p)->write(xml);
+ //p->write(level, xml);
+ (*p)->write(level, xml);
+ level--;
+ //xml.etag("PatchGroup");
+ xml.etag(level, "PatchGroup");
+ }
+ for (iMidiController ic = _controller->begin(); ic != _controller->end(); ++ic)
+ //(*ic)->write(xml);
+ ic->second->write(level, xml);
+ //xml.etag("MidiInstrument");
+ level--;
+ xml.etag(level, "MidiInstrument");
+ //xml.etag("muse");
+ level--;
+ xml.etag(level, "muse");
+ }
+
+//---------------------------------------------------------
+// getPatchName
+//---------------------------------------------------------
+
+const char* MidiInstrument::getPatchName(int channel, int prog, MType mode, bool drum)
+ {
+ int pr = prog & 0xff;
+ if(prog == CTRL_VAL_UNKNOWN || pr == 0xff)
+ return "<unknown>";
+
+ int hbank = (prog >> 16) & 0xff;
+ int lbank = (prog >> 8) & 0xff;
+ int tmask = 1;
+ bool drumchan = channel == 9;
+ bool hb = false;
+ bool lb = false;
+ switch (mode) {
+ case MT_GS:
+ tmask = 2;
+ hb = true;
+ break;
+ case MT_XG:
+ hb = true;
+ lb = true;
+ tmask = 4;
+ break;
+ case MT_GM:
+ if(drumchan)
+ return gmdrumname;
+ tmask = 1;
+ break;
+ default:
+ hb = true; // MSB bank matters
+ lb = true; // LSB bank matters
+ break;
+ }
+ for (ciPatchGroup i = pg.begin(); i != pg.end(); ++i) {
+ const PatchList& pl = (*i)->patches;
+ for (ciPatch ipl = pl.begin(); ipl != pl.end(); ++ipl) {
+ const Patch* mp = *ipl;
+ if ((mp->typ & tmask)
+ && (pr == mp->prog)
+ && ((drum && mode != MT_GM) ||
+ (mp->drum == drumchan))
+
+ && (hbank == mp->hbank || !hb || mp->hbank == -1)
+ && (lbank == mp->lbank || !lb || mp->lbank == -1))
+ return mp->name.latin1();
+ }
+ }
+ return "<unknown>";
+ }
+
+//---------------------------------------------------------
+// populatePatchPopup
+//---------------------------------------------------------
+
+void MidiInstrument::populatePatchPopup(Q3PopupMenu* menu, int chan, MType songType, bool drum)
+ {
+ menu->clear();
+ int mask = 0;
+ bool drumchan = chan == 9;
+ switch (songType) {
+ case MT_XG: mask = 4; break;
+ case MT_GS: mask = 2; break;
+ case MT_GM:
+ if(drumchan)
+ return;
+ mask = 1;
+ break;
+ case MT_UNKNOWN: mask = 7; break;
+ }
+ if (pg.size() > 1) {
+ for (ciPatchGroup i = pg.begin(); i != pg.end(); ++i) {
+ PatchGroup* pgp = *i;
+ Q3PopupMenu* pm = new Q3PopupMenu(menu);
+ pm->setCheckable(false);
+ pm->setFont(config.fonts[0]);
+ const PatchList& pl = pgp->patches;
+ for (ciPatch ipl = pl.begin(); ipl != pl.end(); ++ipl) {
+ const Patch* mp = *ipl;
+ if ((mp->typ & mask) &&
+ ((drum && songType != MT_GM) ||
+ (mp->drum == drumchan)) )
+ {
+ int id = ((mp->hbank & 0xff) << 16)
+ + ((mp->lbank & 0xff) << 8) + (mp->prog & 0xff);
+ pm->insertItem(mp->name, id);
+ }
+
+ }
+ menu->insertItem(pgp->name, pm);
+ }
+ }
+ else if (pg.size() == 1 ){
+ // no groups
+ const PatchList& pl = pg.front()->patches;
+ for (ciPatch 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);
+ menu->insertItem(mp->name, id);
+ }
+ }
+ }
+ }
+
diff --git a/muse2/muse/instruments/minstrument.h b/muse2/muse/instruments/minstrument.h
new file mode 100644
index 00000000..70c123ec
--- /dev/null
+++ b/muse2/muse/instruments/minstrument.h
@@ -0,0 +1,135 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: minstrument.h,v 1.3.2.3 2009/03/09 02:05:18 terminator356 Exp $
+//
+// (C) Copyright 2000 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __MINSTRUMENT_H__
+#define __MINSTRUMENT_H__
+
+#include "globaldefs.h"
+#include <list>
+#include <vector>
+//Added by qt3to4:
+#include <Q3PopupMenu>
+
+class MidiPort;
+class Q3PopupMenu;
+class MidiPlayEvent;
+class Xml;
+class EventList;
+class MidiControllerList;
+class QString;
+
+//---------------------------------------------------------
+// Patch
+//---------------------------------------------------------
+
+struct Patch {
+ signed char typ; // 1 - GM 2 - GS 4 - XG
+ signed char hbank, lbank, prog;
+ QString name;
+ bool drum;
+ void read(Xml&);
+ void write(int level, Xml&);
+ };
+
+typedef std::list<Patch*> PatchList;
+typedef PatchList::iterator iPatch;
+typedef PatchList::const_iterator ciPatch;
+
+//---------------------------------------------------------
+// PatchGroup
+//---------------------------------------------------------
+
+struct PatchGroup {
+ QString name;
+ PatchList patches;
+ void read(Xml&);
+ };
+
+typedef std::vector<PatchGroup*> PatchGroupList;
+typedef PatchGroupList::iterator iPatchGroup;
+typedef PatchGroupList::const_iterator ciPatchGroup;
+
+//---------------------------------------------------------
+// MidiInstrument
+//---------------------------------------------------------
+
+class MidiInstrument {
+ PatchGroupList pg;
+ MidiControllerList* _controller;
+ bool _dirty;
+ int _nullvalue;
+
+ void init();
+
+ protected:
+ 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; }
+
+ //MidiInstrument& uniqueCopy(const MidiInstrument&);
+ // Assign will 'delete' all existing patches and groups from the instrument.
+ MidiInstrument& assign(const MidiInstrument&);
+ QString filePath() const { return _filePath; }
+ void setFilePath(const QString& s) { _filePath = s; }
+ bool dirty() const { return _dirty; }
+ void setDirty(bool v) { _dirty = 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; }
+ int nullSendValue() { return _nullvalue; }
+ void setNullSendValue(int v) { _nullvalue = v; }
+
+ void readMidiState(Xml& xml);
+ virtual bool guiVisible() const { return false; }
+ virtual void showGui(bool) {}
+ virtual bool hasGui() const { return false; }
+ virtual void writeToGui(const MidiPlayEvent&) {}
+
+ virtual void reset(int, MType);
+ virtual const char* getPatchName(int,int,MType,bool);
+ virtual void populatePatchPopup(Q3PopupMenu*, int, MType, bool);
+ void read(Xml&);
+ void write(int level, Xml&);
+ PatchGroupList* groups() { return &pg; }
+ };
+
+//---------------------------------------------------------
+// MidiInstrumentList
+//---------------------------------------------------------
+
+class MidiInstrumentList : public std::list<MidiInstrument*> {
+
+ public:
+ MidiInstrumentList() {}
+ };
+
+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/muse2/muse/key.cpp b/muse2/muse/key.cpp
new file mode 100644
index 00000000..0f34f8ea
--- /dev/null
+++ b/muse2/muse/key.cpp
@@ -0,0 +1,35 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: key.cpp,v 1.1.1.1 2003/10/27 18:51:22 wschweer Exp $
+//
+// (C) Copyright 1999/2000 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include <stdio.h>
+#include "key.h"
+#include "globals.h"
+
+int NKey::offsets[14] = {
+ 0, 7, 14, -7,
+ -(12),
+ -19, -26, -10, -14, -2, -4, -6, -8, 0
+ };
+
+int NKey::width() const
+ {
+ return 25;
+ }
+
+//---------------------------------------------------------
+// Scale::width
+//---------------------------------------------------------
+
+int Scale::width() const
+ {
+ int i = val;
+ if (i < 0)
+ i = -i;
+ return i * 7;
+ }
+
diff --git a/muse2/muse/key.h b/muse2/muse/key.h
new file mode 100644
index 00000000..1c1c4cac
--- /dev/null
+++ b/muse2/muse/key.h
@@ -0,0 +1,54 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: key.h,v 1.1.1.1 2003/10/27 18:51:25 wschweer Exp $
+//
+// (C) Copyright 1999/2000 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __KEY_H__
+#define __KEY_H__
+
+#include <stdio.h>
+class QPainter;
+class QPoint;
+class Xml;
+
+//---------------------------------------------------------
+// NKey
+//---------------------------------------------------------
+
+class NKey {
+ static int offsets[14];
+ int val;
+ public:
+ NKey() { val = 7; }
+ NKey(int k) { val = k; }
+ void draw(QPainter& p, const QPoint& pt) const;
+ int idx() const { return val; }
+ int offset() const { return offsets[val]; }
+ void read(Xml&);
+ void write(int, Xml&) const;
+ void set(int n) { val = n; }
+ int width() const;
+ };
+
+//---------------------------------------------------------
+// Scale
+//---------------------------------------------------------
+
+class Scale {
+ int val; // 1 = 1 sharp, -1 1 flat
+ bool minor;
+ public:
+ Scale() { val = 0; minor = false; }
+ Scale(int s, bool m = false) { val = s; minor = m; }
+ int idx() const { return val; }
+ void read(Xml&);
+ void write(int, Xml&) const;
+ void set(int n) { val = n; }
+ void setMajorMinor(bool f) { minor = f; } // true == minor
+ int width() const;
+ };
+#endif
+
diff --git a/muse2/muse/ladspa.h b/muse2/muse/ladspa.h
new file mode 100644
index 00000000..7bbc338f
--- /dev/null
+++ b/muse2/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/muse2/muse/liste/Makefile.am b/muse2/muse/liste/Makefile.am
new file mode 100644
index 00000000..3fa30b8b
--- /dev/null
+++ b/muse2/muse/liste/Makefile.am
@@ -0,0 +1,16 @@
+include $(top_srcdir)/common.am
+
+if PCH
+AM_CXXFLAGS += -include $(top_srcdir)/all.h
+endif
+
+noinst_LIBRARIES = libliste.a
+
+dist_libliste_a_SOURCES = \
+ listedit.cpp listedit.h \
+ editevent.cpp editevent.h \
+ editctrlbase.ui
+
+nodist_libliste_a_SOURCES = \
+ moc_listedit.cpp \
+ moc_editevent.cpp
diff --git a/muse2/muse/liste/Makefile.in b/muse2/muse/liste/Makefile.in
new file mode 100644
index 00000000..ca126675
--- /dev/null
+++ b/muse2/muse/liste/Makefile.in
@@ -0,0 +1,601 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
+ $(top_srcdir)/common.am
+@PCH_TRUE@am__append_1 = -include $(top_srcdir)/all.h
+subdir = muse/liste
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal-include.m4 \
+ $(top_srcdir)/m4/alsa.m4 $(top_srcdir)/m4/docbook.m4 \
+ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
+ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
+ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+LIBRARIES = $(noinst_LIBRARIES)
+ARFLAGS = cru
+libliste_a_AR = $(AR) $(ARFLAGS)
+libliste_a_LIBADD =
+dist_libliste_a_OBJECTS = listedit.$(OBJEXT) editevent.$(OBJEXT) \
+ editctrlbase.$(OBJEXT)
+nodist_libliste_a_OBJECTS = moc_listedit.$(OBJEXT) \
+ moc_editevent.$(OBJEXT)
+libliste_a_OBJECTS = $(dist_libliste_a_OBJECTS) \
+ $(nodist_libliste_a_OBJECTS)
+DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
+depcomp = $(SHELL) $(top_srcdir)/depcomp
+am__depfiles_maybe = depfiles
+am__mv = mv -f
+CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
+LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
+CXXLD = $(CXX)
+CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \
+ $(LDFLAGS) -o $@
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
+ $(LDFLAGS) -o $@
+SOURCES = $(dist_libliste_a_SOURCES) $(nodist_libliste_a_SOURCES)
+DIST_SOURCES = $(dist_libliste_a_SOURCES)
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ALSA_CFLAGS = @ALSA_CFLAGS@
+ALSA_LIBS = @ALSA_LIBS@
+AMTAR = @AMTAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DOCBOOKSTYLE = @DOCBOOKSTYLE@
+DOCBOOKTARGETS = @DOCBOOKTARGETS@
+DOT = @DOT@
+DOTPATH = @DOTPATH@
+DOXYGEN = @DOXYGEN@
+DOXYGEN_TREEVIEW = @DOXYGEN_TREEVIEW@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+FLUIDSYNTHDIRS = @FLUIDSYNTHDIRS@
+FST_CFLAGS = @FST_CFLAGS@
+FST_LIBS = @FST_LIBS@
+Fluidsynth_CFLAGS = @Fluidsynth_CFLAGS@
+Fluidsynth_LIBS = @Fluidsynth_LIBS@
+GIVERTCAP = @GIVERTCAP@
+GREP = @GREP@
+HAVEDOT = @HAVEDOT@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JACK_CFLAGS = @JACK_CFLAGS@
+JACK_LIBS = @JACK_LIBS@
+JADE = @JADE@
+LASH_CFLAGS = @LASH_CFLAGS@
+LASH_LIBS = @LASH_LIBS@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LO_CFLAGS = @LO_CFLAGS@
+LO_LIBS = @LO_LIBS@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+MUSECXXFLAGS = @MUSECXXFLAGS@
+NM = @NM@
+NMEDIT = @NMEDIT@
+NSGMLS = @NSGMLS@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PCH = @PCH@
+PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+PYTHON = @PYTHON@
+PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
+PYTHON_INCLUDES = @PYTHON_INCLUDES@
+PYTHON_LIB = @PYTHON_LIB@
+PYTHON_PLATFORM = @PYTHON_PLATFORM@
+PYTHON_PREFIX = @PYTHON_PREFIX@
+PYTHON_VERSION = @PYTHON_VERSION@
+QTDIR_BIN = @QTDIR_BIN@
+QTDIR_INC = @QTDIR_INC@
+QT_LIBS = @QT_LIBS@
+RANLIB = @RANLIB@
+SAMPLERATE_CFLAGS = @SAMPLERATE_CFLAGS@
+SAMPLERATE_LIBS = @SAMPLERATE_LIBS@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SNDFILE_CFLAGS = @SNDFILE_CFLAGS@
+SNDFILE_LIBS = @SNDFILE_LIBS@
+STRIP = @STRIP@
+SUIDBUILD = @SUIDBUILD@
+SUIDINSTALL = @SUIDINSTALL@
+USE_SSE = @USE_SSE@
+UUID_CFLAGS = @UUID_CFLAGS@
+UUID_LIBS = @UUID_LIBS@
+VERSION = @VERSION@
+XMKMF = @XMKMF@
+X_CFLAGS = @X_CFLAGS@
+X_EXTRA_LIBS = @X_EXTRA_LIBS@
+X_LIBS = @X_LIBS@
+X_PRE_LIBS = @X_PRE_LIBS@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+have_docbook = @have_docbook@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+lt_ECHO = @lt_ECHO@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+pkgpyexecdir = @pkgpyexecdir@
+pkgpythondir = @pkgpythondir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+pyexecdir = @pyexecdir@
+pythondir = @pythondir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+synth_fluid = @synth_fluid@
+synth_fluidsynth = @synth_fluidsynth@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+AM_CXXFLAGS = $(MUSECXXFLAGS) -I.. -I$(top_srcdir)/synti \
+ -I$(top_srcdir)/muse/widgets -DQT_SHARED -DQT_THREAD_SUPPORT \
+ -DQT_PLUGIN $(QTDIR_INC) -DQT3_SUPPORT $(am__append_1)
+AM_CPPFLAGS =
+MOC = $(QTDIR_BIN)/moc
+#UIC = $(QTDIR_BIN)/uic3
+UIC = /usr/bin/uic3
+UIFILES = $(wildcard *.ui)
+MOCFILES = $(shell for h in $(filter %.h,$(SOURCES)); do \
+ if grep -q Q_OBJECT $$h; then \
+ echo $$h | sed "s/\(.*\)\.h/moc_\1.cpp/"; \
+ fi; \
+ done)
+
+BUILT_SOURCES = $(MOCFILES) $(UIFILES:%.ui=%.h)
+MOSTLYCLEANFILES = $(MOCFILES) $(UIFILES:%.ui=%.h)
+SUFFIXES = .ui .h.gch
+noinst_LIBRARIES = libliste.a
+dist_libliste_a_SOURCES = \
+ listedit.cpp listedit.h \
+ editevent.cpp editevent.h \
+ editctrlbase.ui
+
+nodist_libliste_a_SOURCES = \
+ moc_listedit.cpp \
+ moc_editevent.cpp
+
+all: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) all-am
+
+.SUFFIXES:
+.SUFFIXES: .ui .h.gch .cpp .lo .o .obj
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/common.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu muse/liste/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu muse/liste/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+clean-noinstLIBRARIES:
+ -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
+libliste.a: $(libliste_a_OBJECTS) $(libliste_a_DEPENDENCIES)
+ -rm -f libliste.a
+ $(libliste_a_AR) libliste.a $(libliste_a_OBJECTS) $(libliste_a_LIBADD)
+ $(RANLIB) libliste.a
+
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT)
+
+distclean-compile:
+ -rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/editevent.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/listedit.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/moc_editevent.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/moc_listedit.Po@am__quote@
+
+.cpp.o:
+@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $<
+
+.cpp.obj:
+@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+
+.cpp.lo:
+@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $<
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ mkid -fID $$unique
+tags: TAGS
+
+TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ set x; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: CTAGS
+CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) check-am
+all-am: Makefile $(LIBRARIES)
+installdirs:
+install: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+ -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES)
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+ -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
+clean: clean-am
+
+clean-am: clean-generic clean-libtool clean-noinstLIBRARIES \
+ mostlyclean-am
+
+distclean: distclean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+ distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+ mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: all check install install-am install-strip
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
+ clean-libtool clean-noinstLIBRARIES ctags distclean \
+ distclean-compile distclean-generic distclean-libtool \
+ distclean-tags distdir dvi dvi-am html html-am info info-am \
+ install install-am install-data install-data-am install-dvi \
+ install-dvi-am install-exec install-exec-am install-html \
+ install-html-am install-info install-info-am install-man \
+ install-pdf install-pdf-am install-ps install-ps-am \
+ install-strip installcheck installcheck-am installdirs \
+ maintainer-clean maintainer-clean-generic mostlyclean \
+ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
+ pdf pdf-am ps ps-am tags uninstall uninstall-am
+
+
+de:
+ @for base in $(MOCFILES); do echo -e "\t$${base}.cpp $${base}.h \\"; done
+
+nde:
+ @for base in $(MOCFILES); do echo -e "\tmoc_$${base}.cpp \\"; done
+
+.ui.o: %.h
+ $(UIC) -L $(top_srcdir)/muse/widgets -o $*.cpp -impl $*.h $*.ui
+ $(MOC) $*.h >> $*.cpp
+ $(CXXCOMPILE) -c $*.cpp -o $*.o
+ $(RM) $*.cpp moc_$*.cpp moc_$*.o
+
+.ui.lo: %.h
+ $(UIC) -L $(top_srcdir)/muse/widgets -o $*.cpp -impl $*.h $*.ui
+ $(MOC) $*.h >> $*.cpp
+ $(LTCXXCOMPILE) -c $*.cpp -o $*.lo
+ $(RM) $*.cpp moc_$*.cpp moc_$*.lo moc_$*.o
+
+moc_%.cpp: %.h
+ $(MOC) $< -o $@
+
+%.h: %.ui
+ $(UIC) -o $@ $<
+# $(UIC) -L $(top_srcdir)/muse/widgets -o $@ $<
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/muse2/muse/liste/editctrlbase.ui b/muse2/muse/liste/editctrlbase.ui
new file mode 100644
index 00000000..e018a802
--- /dev/null
+++ b/muse2/muse/liste/editctrlbase.ui
@@ -0,0 +1,702 @@
+<!DOCTYPE UI><UI version="3.2" stdsetdef="1">
+<class>EditCtrlBase</class>
+<widget class="QDialog">
+ <property name="name">
+ <cstring>MyDialog</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>601</width>
+ <height>413</height>
+ </rect>
+ </property>
+ <property name="caption">
+ <string>MusE: Edit Controller Event</string>
+ </property>
+ <property name="sizeGripEnabled">
+ <bool>true</bool>
+ </property>
+ <grid>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QLabel" row="0" column="3">
+ <property name="name">
+ <cstring>textLabel1</cstring>
+ </property>
+ <property name="text">
+ <string>Time Position</string>
+ </property>
+ </widget>
+ <widget class="QLabel" row="0" column="0" rowspan="1" colspan="2">
+ <property name="name">
+ <cstring>textLabel1_2</cstring>
+ </property>
+ <property name="text">
+ <string>Available Controller:</string>
+ </property>
+ </widget>
+ <widget class="QPushButton" row="2" column="0">
+ <property name="name">
+ <cstring>buttonNewController</cstring>
+ </property>
+ <property name="text">
+ <string>Create New Controller</string>
+ </property>
+ <property name="accel">
+ <string></string>
+ </property>
+ <property name="autoDefault">
+ <bool>true</bool>
+ </property>
+ <property name="default">
+ <bool>true</bool>
+ </property>
+ </widget>
+ <widget class="PosEdit" row="0" column="4">
+ <property name="name">
+ <cstring>timePos</cstring>
+ </property>
+ </widget>
+ <widget class="QWidgetStack" row="1" column="3" rowspan="2" colspan="2">
+ <property name="name">
+ <cstring>widgetStack</cstring>
+ </property>
+ <property name="paletteBackgroundColor">
+ <color>
+ <red>104</red>
+ <green>137</green>
+ <blue>236</blue>
+ </color>
+ </property>
+ <property name="palette">
+ <palette>
+ <active>
+ <color>
+ <red>0</red>
+ <green>0</green>
+ <blue>0</blue>
+ </color>
+ <color>
+ <red>238</red>
+ <green>234</green>
+ <blue>222</blue>
+ </color>
+ <color>
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ <color>
+ <red>246</red>
+ <green>244</green>
+ <blue>238</blue>
+ </color>
+ <color>
+ <red>119</red>
+ <green>117</green>
+ <blue>111</blue>
+ </color>
+ <color>
+ <red>158</red>
+ <green>155</green>
+ <blue>147</blue>
+ </color>
+ <color>
+ <red>0</red>
+ <green>0</green>
+ <blue>0</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>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ <color>
+ <red>104</red>
+ <green>137</green>
+ <blue>236</blue>
+ </color>
+ <color>
+ <red>0</red>
+ <green>0</green>
+ <blue>0</blue>
+ </color>
+ <color>
+ <red>0</red>
+ <green>0</green>
+ <blue>128</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>0</red>
+ <green>0</green>
+ <blue>0</blue>
+ </color>
+ </active>
+ <disabled>
+ <color>
+ <red>128</red>
+ <green>128</green>
+ <blue>128</blue>
+ </color>
+ <color>
+ <red>238</red>
+ <green>234</green>
+ <blue>222</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>119</red>
+ <green>117</green>
+ <blue>111</blue>
+ </color>
+ <color>
+ <red>158</red>
+ <green>155</green>
+ <blue>147</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>128</red>
+ <green>128</green>
+ <blue>128</blue>
+ </color>
+ <color>
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ <color>
+ <red>104</red>
+ <green>137</green>
+ <blue>236</blue>
+ </color>
+ <color>
+ <red>0</red>
+ <green>0</green>
+ <blue>0</blue>
+ </color>
+ <color>
+ <red>0</red>
+ <green>0</green>
+ <blue>128</blue>
+ </color>
+ <color>
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ <color>
+ <red>0</red>
+ <green>0</green>
+ <blue>192</blue>
+ </color>
+ <color>
+ <red>128</red>
+ <green>0</green>
+ <blue>128</blue>
+ </color>
+ </disabled>
+ <inactive>
+ <color>
+ <red>0</red>
+ <green>0</green>
+ <blue>0</blue>
+ </color>
+ <color>
+ <red>238</red>
+ <green>234</green>
+ <blue>222</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>119</red>
+ <green>117</green>
+ <blue>111</blue>
+ </color>
+ <color>
+ <red>158</red>
+ <green>155</green>
+ <blue>147</blue>
+ </color>
+ <color>
+ <red>0</red>
+ <green>0</green>
+ <blue>0</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>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ <color>
+ <red>104</red>
+ <green>137</green>
+ <blue>236</blue>
+ </color>
+ <color>
+ <red>0</red>
+ <green>0</green>
+ <blue>0</blue>
+ </color>
+ <color>
+ <red>0</red>
+ <green>0</green>
+ <blue>128</blue>
+ </color>
+ <color>
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ <color>
+ <red>0</red>
+ <green>0</green>
+ <blue>192</blue>
+ </color>
+ <color>
+ <red>128</red>
+ <green>0</green>
+ <blue>128</blue>
+ </color>
+ </inactive>
+ </palette>
+ </property>
+ <widget class="QWidget">
+ <property name="name">
+ <cstring>WStackPage</cstring>
+ </property>
+ <attribute name="id">
+ <number>0</number>
+ </attribute>
+ <grid>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QSlider" row="3" column="0" rowspan="1" colspan="2">
+ <property name="name">
+ <cstring>valSlider</cstring>
+ </property>
+ <property name="maxValue">
+ <number>127</number>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ </widget>
+ <widget class="QLabel" row="1" column="1">
+ <property name="name">
+ <cstring>controllerName</cstring>
+ </property>
+ <property name="paletteBackgroundColor">
+ <color>
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ </property>
+ <property name="frameShape">
+ <enum>LineEditPanel</enum>
+ </property>
+ <property name="frameShadow">
+ <enum>Sunken</enum>
+ </property>
+ <property name="text">
+ <string>textLabel3</string>
+ </property>
+ </widget>
+ <widget class="QLabel" row="2" column="0">
+ <property name="name">
+ <cstring>textLabel4</cstring>
+ </property>
+ <property name="text">
+ <string>Value</string>
+ </property>
+ </widget>
+ <widget class="QLabel" row="1" column="0">
+ <property name="name">
+ <cstring>textLabel2</cstring>
+ </property>
+ <property name="text">
+ <string>Controller</string>
+ </property>
+ </widget>
+ <widget class="QSpinBox" row="2" column="1">
+ <property name="name">
+ <cstring>valSpinBox</cstring>
+ </property>
+ <property name="maxValue">
+ <number>127</number>
+ </property>
+ </widget>
+ <spacer row="0" column="1">
+ <property name="name">
+ <cstring>spacer2</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Vertical</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>20</width>
+ <height>40</height>
+ </size>
+ </property>
+ </spacer>
+ </grid>
+ </widget>
+ <widget class="QWidget">
+ <property name="name">
+ <cstring>WStackPage</cstring>
+ </property>
+ <attribute name="id">
+ <number>1</number>
+ </attribute>
+ <grid>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QLabel" row="2" column="0">
+ <property name="name">
+ <cstring>textLabel2_2</cstring>
+ </property>
+ <property name="text">
+ <string>H-Bank</string>
+ </property>
+ </widget>
+ <widget class="QLabel" row="3" column="0">
+ <property name="name">
+ <cstring>textLabel3</cstring>
+ </property>
+ <property name="text">
+ <string>L-Bank</string>
+ </property>
+ </widget>
+ <widget class="QLabel" row="4" column="0">
+ <property name="name">
+ <cstring>textLabel4_2</cstring>
+ </property>
+ <property name="text">
+ <string>Program</string>
+ </property>
+ </widget>
+ <widget class="QSpinBox" row="2" column="1">
+ <property name="name">
+ <cstring>hbank</cstring>
+ </property>
+ <property name="specialValueText">
+ <string>off</string>
+ </property>
+ <property name="maxValue">
+ <number>128</number>
+ </property>
+ <property name="minValue">
+ <number>0</number>
+ </property>
+ <property name="value">
+ <number>0</number>
+ </property>
+ </widget>
+ <widget class="QSpinBox" row="3" column="1">
+ <property name="name">
+ <cstring>lbank</cstring>
+ </property>
+ <property name="specialValueText">
+ <string>off</string>
+ </property>
+ <property name="maxValue">
+ <number>128</number>
+ </property>
+ <property name="minValue">
+ <number>0</number>
+ </property>
+ <property name="value">
+ <number>0</number>
+ </property>
+ </widget>
+ <widget class="QSpinBox" row="4" column="1">
+ <property name="name">
+ <cstring>program</cstring>
+ </property>
+ <property name="maxValue">
+ <number>128</number>
+ </property>
+ <property name="minValue">
+ <number>1</number>
+ </property>
+ </widget>
+ <spacer row="0" column="0" rowspan="1" colspan="2">
+ <property name="name">
+ <cstring>spacer4</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Vertical</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>20</width>
+ <height>140</height>
+ </size>
+ </property>
+ </spacer>
+ <widget class="QPushButton" row="1" column="0" rowspan="1" colspan="2">
+ <property name="name">
+ <cstring>patchName</cstring>
+ </property>
+ <property name="text">
+ <string>pushButton4</string>
+ </property>
+ </widget>
+ </grid>
+ </widget>
+ </widget>
+ <widget class="QLayoutWidget" row="4" column="0" rowspan="1" colspan="5">
+ <property name="name">
+ <cstring>Layout1</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>0</number>
+ </property>
+ <property name="spacing">
+ <number>6</number>
+ </property>
+ <spacer>
+ <property name="name">
+ <cstring>Horizontal Spacing2</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>20</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ <widget class="QPushButton">
+ <property name="name">
+ <cstring>buttonOk</cstring>
+ </property>
+ <property name="text">
+ <string>&amp;OK</string>
+ </property>
+ <property name="accel">
+ <string></string>
+ </property>
+ <property name="autoDefault">
+ <bool>true</bool>
+ </property>
+ <property name="default">
+ <bool>true</bool>
+ </property>
+ </widget>
+ <widget class="QPushButton">
+ <property name="name">
+ <cstring>buttonCancel</cstring>
+ </property>
+ <property name="text">
+ <string>&amp;Cancel</string>
+ </property>
+ <property name="accel">
+ <string></string>
+ </property>
+ <property name="autoDefault">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </hbox>
+ </widget>
+ <widget class="Line" row="3" column="0" rowspan="1" colspan="5">
+ <property name="name">
+ <cstring>line1</cstring>
+ </property>
+ <property name="frameShape">
+ <enum>HLine</enum>
+ </property>
+ <property name="frameShadow">
+ <enum>Raised</enum>
+ </property>
+ <property name="lineWidth">
+ <number>3</number>
+ </property>
+ <property name="margin">
+ <number>2</number>
+ </property>
+ <property name="midLineWidth">
+ <number>2</number>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ </widget>
+ <widget class="QListBox" row="1" column="0" rowspan="1" colspan="2">
+ <property name="name">
+ <cstring>ctrlList</cstring>
+ </property>
+ <property name="currentItem">
+ <number>-1</number>
+ </property>
+ </widget>
+ <spacer row="2" column="1">
+ <property name="name">
+ <cstring>spacer3</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>60</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ <widget class="Line" row="0" column="2" rowspan="3" colspan="1">
+ <property name="name">
+ <cstring>line2</cstring>
+ </property>
+ <property name="frameShape">
+ <enum>VLine</enum>
+ </property>
+ <property name="frameShadow">
+ <enum>Raised</enum>
+ </property>
+ <property name="lineWidth">
+ <number>3</number>
+ </property>
+ <property name="margin">
+ <number>2</number>
+ </property>
+ <property name="midLineWidth">
+ <number>2</number>
+ </property>
+ <property name="orientation">
+ <enum>Vertical</enum>
+ </property>
+ </widget>
+ </grid>
+</widget>
+<customwidgets>
+ <customwidget>
+ <class>PosEdit</class>
+ <header location="global">posedit.h</header>
+ <sizehint>
+ <width>50</width>
+ <height>20</height>
+ </sizehint>
+ <container>0</container>
+ <sizepolicy>
+ <hordata>5</hordata>
+ <verdata>5</verdata>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </customwidget>
+</customwidgets>
+<connections>
+ <connection>
+ <sender>buttonOk</sender>
+ <signal>clicked()</signal>
+ <receiver>MyDialog</receiver>
+ <slot>accept()</slot>
+ </connection>
+ <connection>
+ <sender>buttonCancel</sender>
+ <signal>clicked()</signal>
+ <receiver>MyDialog</receiver>
+ <slot>reject()</slot>
+ </connection>
+ <connection>
+ <sender>valSlider</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>valSpinBox</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>valSpinBox</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>valSlider</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+</connections>
+<layoutdefaults spacing="6" margin="11"/>
+<includehints>
+ <includehint>../widgets/posedit.h</includehint>
+</includehints>
+</UI>
diff --git a/muse2/muse/liste/editevent.cpp b/muse2/muse/liste/editevent.cpp
new file mode 100644
index 00000000..ef084440
--- /dev/null
+++ b/muse2/muse/liste/editevent.cpp
@@ -0,0 +1,853 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: editevent.cpp,v 1.12.2.6 2009/02/02 21:38:00 terminator356 Exp $
+// (C) Copyright 1999-2004 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include <stdio.h>
+
+#include <qlayout.h>
+#include <qlabel.h>
+#include <qpushbutton.h>
+#include <q3multilineedit.h>
+#include <qmessagebox.h>
+#include <qslider.h>
+#include <qradiobutton.h>
+#include <qspinbox.h>
+#include <q3listbox.h>
+#include <q3widgetstack.h>
+#include <q3popupmenu.h>
+//Added by qt3to4:
+#include <Q3HBoxLayout>
+#include <Q3GridLayout>
+#include <Q3VBoxLayout>
+#include <Q3BoxLayout>
+
+#include "song.h"
+#include "event.h"
+#include "midictrl.h"
+#include "editevent.h"
+#include "pitchedit.h"
+#include "intlabel.h"
+#include "globals.h"
+#include "posedit.h"
+#include "gconfig.h"
+#include "midiport.h"
+#include "midiedit/drummap.h"
+#include "instruments/minstrument.h"
+#include "midi.h"
+
+//---------------------------------------------------------
+// string2qhex
+//---------------------------------------------------------
+
+QString string2hex(const unsigned char* data, int len)
+ {
+ 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;
+ }
+
+//---------------------------------------------------------
+// hex2string
+//---------------------------------------------------------
+
+char* hex2string(QWidget* parent, const char* src, int& len)
+ {
+ char buffer[2048];
+ char* dst = buffer;
+
+ while (*src) {
+ while (*src == ' ' || *src == '\n')
+ ++src;
+ char* ep;
+ long val = strtol(src, &ep, 16);
+ if (ep == src) {
+ QMessageBox::information(parent,
+ QString("MusE"),
+ QWidget::tr("Cannot convert sysex string"));
+ return 0;
+ }
+ src = ep;
+ *dst++ = val;
+ if (dst - buffer >= 2048) {
+ QMessageBox::information(parent,
+ QString("MusE"),
+ QWidget::tr("Hex String too long (2048 bytes limit)"));
+ return 0;
+ }
+ }
+ len = dst - buffer;
+ char* b = new char[len+1];
+ memcpy(b, buffer, len);
+ b[len] = 0;
+ return b;
+ }
+
+//---------------------------------------------------------
+// getEvent
+//---------------------------------------------------------
+
+Event EditNoteDialog::getEvent(int tick, const Event& event, QWidget* parent)
+ {
+ EditNoteDialog* dlg = new EditNoteDialog(tick, event, parent);
+ Event nevent;
+ if (dlg->exec() == QDialog::Accepted) {
+ nevent = dlg->event();
+ }
+ delete dlg;
+ return nevent;
+ }
+
+Event EditSysexDialog::getEvent(int tick, const Event& event, QWidget* parent)
+ {
+ EditSysexDialog* dlg = new EditSysexDialog(tick, event, parent);
+ Event nevent;
+ if (dlg->exec() == QDialog::Accepted) {
+ nevent = dlg->event();
+ }
+ delete dlg;
+ return nevent;
+ }
+
+Event EditMetaDialog::getEvent(int tick, const Event& event, QWidget* parent)
+ {
+ EditEventDialog* dlg = new EditMetaDialog(tick, event, parent);
+ Event nevent;
+ if (dlg->exec() == QDialog::Accepted) {
+ nevent = dlg->event();
+ }
+ delete dlg;
+ return nevent;
+ }
+
+Event EditCAfterDialog::getEvent(int tick, const Event& event, QWidget* parent)
+ {
+ EditEventDialog* dlg = new EditCAfterDialog(tick, event, parent);
+ Event nevent;
+ if (dlg->exec() == QDialog::Accepted) {
+ nevent = dlg->event();
+ }
+ delete dlg;
+ return nevent;
+ }
+
+Event EditPAfterDialog::getEvent(int tick, const Event& event, QWidget* parent)
+ {
+ EditEventDialog* dlg = new EditPAfterDialog(tick, event, parent);
+ Event nevent;
+ if (dlg->exec() == QDialog::Accepted) {
+ nevent = dlg->event();
+ }
+ delete dlg;
+ return nevent;
+ }
+
+//---------------------------------------------------------
+// EditEventDialog
+//---------------------------------------------------------
+
+EditEventDialog::EditEventDialog(QWidget* parent, const char* name)
+ : QDialog(parent, name, true)
+ {
+ Q3VBoxLayout* xlayout = new Q3VBoxLayout(this);
+ layout1 = new Q3GridLayout(this); // ddskrjo this
+ xlayout->addLayout(layout1);
+
+ //---------------------------------------------------
+ // Ok, Cancel
+ //---------------------------------------------------
+
+ Q3BoxLayout* w5 = new Q3HBoxLayout(this); // ddskrjo this
+ xlayout->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);
+ w5->addStretch(1);
+ connect(cancelB, SIGNAL(clicked()), SLOT(reject()));
+ connect(okB, SIGNAL(clicked()), SLOT(accept()));
+ }
+
+//---------------------------------------------------------
+// EditNoteDialog
+//---------------------------------------------------------
+
+EditNoteDialog::EditNoteDialog(int tick, const Event& event,
+ QWidget* parent, const char* name)
+ : EditNoteDialogBase(parent, name)
+ {
+ if (!event.empty()) {
+ epos->setValue(tick);
+ il1->setValue(event.lenTick());
+ pl->setValue(event.pitch());
+ il2->setValue(event.velo());
+ il3->setValue(event.veloOff());
+ }
+ else {
+ epos->setValue(tick);
+ il1->setValue(96);
+ pl->setValue(64);
+ il2->setValue(100);
+ il3->setValue(0);
+ }
+ }
+
+//---------------------------------------------------------
+// EditNoteDialog::event
+//---------------------------------------------------------
+
+Event EditNoteDialog::event()
+ {
+ Event event(Note);
+ event.setTick(epos->pos().tick());
+ event.setA(pl->value());
+ event.setB(il2->value());
+ event.setC(il3->value());
+ event.setLenTick(il1->value());
+ return event;
+ }
+
+//---------------------------------------------------------
+// EditSysExDialog
+//---------------------------------------------------------
+
+EditSysexDialog::EditSysexDialog(int tick, const Event& event,
+ QWidget* parent, const char* name)
+ : EditSysexDialogBase(parent, name)
+ {
+ sysex = 0;
+ if (!event.empty()) {
+ epos->setValue(tick);
+ edit->setText(string2hex(event.data(), event.dataLen()));
+ }
+ else {
+ epos->setValue(tick);
+ }
+ }
+
+//---------------------------------------------------------
+// ~EditSysexDialog
+//---------------------------------------------------------
+
+EditSysexDialog::~EditSysexDialog()
+ {
+ if (sysex)
+ delete sysex;
+ }
+
+//---------------------------------------------------------
+// EditSysExDialog::event
+//---------------------------------------------------------
+
+Event EditSysexDialog::event()
+ {
+ Event event(Sysex);
+ event.setTick(epos->pos().tick());
+ event.setData(sysex, len);
+ return event;
+ }
+
+//---------------------------------------------------------
+// accept
+//---------------------------------------------------------
+
+void EditSysexDialog::accept()
+ {
+ QString qsrc = edit->text();
+ const char* src = qsrc.latin1();
+
+ sysex = (unsigned char*)hex2string(this, src, len);
+ if (sysex)
+ QDialog::accept();
+ }
+
+//---------------------------------------------------------
+// EditMetaDialog
+//---------------------------------------------------------
+
+EditMetaDialog::EditMetaDialog(int tick, const Event& ev,
+ QWidget* parent, const char* name)
+ : EditEventDialog(parent, name)
+ {
+ meta = 0;
+ setCaption(tr("MusE: Enter Meta Event"));
+
+ QLabel* l1 = new QLabel(tr("Time Position"), this);
+ epos = new PosEdit(this);
+
+ QLabel* l2 = new QLabel(tr("Meta Type"), this);
+ il2 = new IntLabel(-1, 0, 127, this, -1);
+ il2->setFixedWidth(100);
+ il2->setFrame(true);
+ il2->setDark();
+ typeLabel = new QLabel(this);
+ typeLabel->setAlignment(Qt::AlignLeft | Qt::AlignVCenter);
+ Q3HBoxLayout* typeLayout = new Q3HBoxLayout(this);
+ typeLayout->addWidget(il2);
+ typeLayout->addWidget(typeLabel);
+ typeLayout->addStretch();
+
+ hexButton = new QRadioButton(tr("Enter Hex"), this, "hextoggle");
+ hexButton->setChecked(true);
+ connect(hexButton, SIGNAL(toggled(bool)), SLOT(toggled(bool)));
+
+ edit = new Q3MultiLineEdit(this);
+ edit->setFont(config.fonts[5]);
+
+ if (!ev.empty()) {
+ epos->setValue(tick);
+ il2->setValue(ev.dataA());
+ toggled(true);
+ edit->setText(string2hex(ev.data(), ev.dataLen()));
+ }
+ else {
+ epos->setValue(tick);
+ il2->setValue(0);
+ }
+
+ typeChanged(il2->value());
+ connect(il2, SIGNAL(valueChanged(int)), SLOT(typeChanged(int)));
+
+ layout1->addWidget(l1, 0, 0);
+ layout1->addWidget(epos, 0, 1, Qt::AlignLeft);
+ layout1->addWidget(l2, 1, 0);
+
+ //layout1->addWidget(il2, 1, 1, AlignLeft);
+ layout1->addLayout(typeLayout, 1, 1);
+
+ layout1->addMultiCellWidget(hexButton, 2, 2, 0, 1);
+ layout1->addMultiCellWidget(edit, 3, 3, 0, 1);
+ }
+
+//---------------------------------------------------------
+// typeChanged
+//---------------------------------------------------------
+
+void EditMetaDialog::typeChanged(int val)
+{
+ typeLabel->setText(midiMetaName(val));
+}
+
+//---------------------------------------------------------
+// toggled
+//---------------------------------------------------------
+
+void EditMetaDialog::toggled(bool flag)
+ {
+ QString qsrc = edit->text();
+ const char* src = qsrc.latin1();
+ edit->clear();
+
+ QString dst;
+ if (flag) { // convert to hex
+ dst = string2hex((unsigned char*)src, strlen(src));
+ }
+ else { // convert to string
+ int len;
+ dst = hex2string(this, src, len);
+ }
+ edit->setText(dst);
+ }
+
+//---------------------------------------------------------
+// ~EditMetaDialog
+//---------------------------------------------------------
+
+EditMetaDialog::~EditMetaDialog()
+ {
+ if (meta)
+ delete meta;
+ }
+
+//---------------------------------------------------------
+// EditMetaDialog::event
+//---------------------------------------------------------
+
+Event EditMetaDialog::event()
+ {
+ Event event(Meta);
+ event.setTick(epos->pos().tick());
+ event.setA(il2->value());
+ event.setData(meta, len); // TODO ??
+ return event;
+ }
+
+//---------------------------------------------------------
+// accept
+//---------------------------------------------------------
+
+void EditMetaDialog::accept()
+ {
+ QString qsrc = edit->text();
+ const char* src = qsrc.latin1();
+ if (!hexButton->isChecked()) {
+ meta = (unsigned char*)strdup(src);
+ len = strlen(src);
+ QDialog::accept();
+ return;
+ }
+
+ meta = (unsigned char*)hex2string(this, src, len);
+ if (meta)
+ QDialog::accept();
+ }
+
+//---------------------------------------------------------
+// EditCAfterDialog
+//---------------------------------------------------------
+
+EditCAfterDialog::EditCAfterDialog(int tick, const Event& event,
+ QWidget* parent, const char* name)
+ : EditEventDialog(parent, name)
+ {
+ setCaption(tr("MusE: Enter Channel Aftertouch"));
+
+ QLabel* l1 = new QLabel(tr("Time Position"), this);
+ epos = new PosEdit(this);
+
+ QLabel* l2 = new QLabel(tr("Pressure"), this);
+ il2 = new IntLabel(-1, 0, 127, this, -1);
+ il2->setFrame(true);
+ il2->setDark();
+
+ QSlider* slider = new QSlider(0, 127, 1, 0, Qt::Horizontal, this);
+ connect(slider, SIGNAL(valueChanged(int)), il2, SLOT(setValue(int)));
+ connect(il2, SIGNAL(valueChanged(int)), slider, SLOT(setValue(int)));
+
+ if (!event.empty()) {
+ epos->setValue(tick);
+ il2->setValue(event.dataA());
+ slider->setValue(event.dataA());
+ }
+ else {
+ epos->setValue(tick);
+ il2->setValue(64);
+ slider->setValue(64);
+ }
+
+ layout1->addWidget(l1, 0, 0);
+ layout1->addWidget(epos, 0, 1, Qt::AlignLeft);
+ layout1->addWidget(l2, 1, 0);
+ layout1->addWidget(il2, 1, 1, Qt::AlignLeft);
+ layout1->addMultiCellWidget(slider, 2, 2, 0, 1);
+ }
+
+//---------------------------------------------------------
+// EditCAfterDialog::event
+//---------------------------------------------------------
+
+Event EditCAfterDialog::event()
+ {
+ Event event(CAfter);
+ event.setTick(epos->pos().tick());
+ event.setA(il2->value());
+ return event;
+ }
+
+//---------------------------------------------------------
+// EditPAfterDialog
+//---------------------------------------------------------
+
+EditPAfterDialog::EditPAfterDialog(int tick, const Event& event,
+ QWidget* parent, const char* name)
+ : EditEventDialog(parent, name)
+ {
+ setCaption(tr("MusE: Enter Poly Aftertouch"));
+
+ QLabel* l1 = new QLabel(tr("Time Position"), this);
+ epos = new PosEdit(this);
+
+ QLabel* l2 = new QLabel(tr("Pitch"), this);
+ pl = new PitchEdit(this);
+ QLabel* l3 = new QLabel(tr("Pressure"), this);
+ il2 = new IntLabel(-1, 0, 127, this, -1);
+ il2->setFrame(true);
+ il2->setDark();
+
+ QSlider* slider = new QSlider(0, 127, 1, 0, Qt::Horizontal, this);
+ connect(slider, SIGNAL(valueChanged(int)), il2, SLOT(setValue(int)));
+ connect(il2, SIGNAL(valueChanged(int)), slider, SLOT(setValue(int)));
+
+ if (!event.empty()) {
+ epos->setValue(tick);
+ pl->setValue(event.pitch());
+ il2->setValue(event.dataB());
+ slider->setValue(event.dataB());
+ }
+ else {
+ epos->setValue(tick);
+ pl->setValue(64);
+ il2->setValue(64);
+ slider->setValue(64);
+ }
+
+ layout1->addWidget(l1, 0, 0);
+ layout1->addWidget(epos, 0, 1, Qt::AlignLeft);
+ layout1->addWidget(l2, 1, 0);
+ layout1->addWidget(pl, 1, 1, Qt::AlignLeft);
+ layout1->addWidget(l3, 2, 0);
+ layout1->addWidget(il2, 2, 1, Qt::AlignLeft);
+ layout1->addMultiCellWidget(slider, 3, 3, 0, 1);
+ }
+
+//---------------------------------------------------------
+// EditPAfterDialog::event
+//---------------------------------------------------------
+
+Event EditPAfterDialog::event()
+ {
+ Event event(PAfter);
+ event.setTick(epos->pos().tick());
+ event.setA(pl->value());
+ event.setB(il2->value());
+ return event;
+ }
+//---------------------------------------------------------
+// getEvent
+//---------------------------------------------------------
+
+Event EditCtrlDialog::getEvent(int tick, const Event& event,
+ const MidiPart* part, QWidget* parent)
+ {
+ EditCtrlDialog* dlg = new EditCtrlDialog(tick, event, part, parent);
+ Event nevent;
+ if (dlg->exec() == QDialog::Accepted) {
+ nevent = dlg->event();
+ }
+ delete dlg;
+ return nevent;
+ }
+
+//---------------------------------------------------------
+// EditCtrlDialog::event
+//---------------------------------------------------------
+
+Event EditCtrlDialog::event()
+ {
+ Event event(Controller);
+ event.setTick(timePos->pos().tick());
+ event.setA(num);
+ if (num == CTRL_PROGRAM)
+ event.setB(val);
+ else
+ event.setB(valSlider->value() + midiPorts[part->track()->outPort()].midiController(num)->bias());
+ return event;
+ }
+
+//---------------------------------------------------------
+// EditCtrlDialog
+// PosEdit* timePos;
+// QSlider* valSlider;
+// QSpinBox* valSpinBox;
+// QLabel* controllerName;
+// QListBox* ctrlList;
+// QPushButton* buttonNewController;
+//---------------------------------------------------------
+
+EditCtrlDialog::EditCtrlDialog(int tick, const Event& event,
+ const MidiPart* p, QWidget* parent, const char* name)
+ : EditCtrlBase(parent, name), part(p)
+ {
+ val = 0;
+ num = 0;
+ if (!event.empty()) {
+ num = event.dataA();
+ val = event.dataB();
+ }
+
+ pop = new Q3PopupMenu(this);
+ pop->setCheckable(false);
+
+ MidiTrack* track = part->track();
+ int portn = track->outPort();
+ MidiPort* port = &midiPorts[portn];
+ bool isDrum = track->type() == Track::DRUM;
+ MidiCtrlValListList* cll = port->controller();
+
+ ctrlList->clear();
+ ctrlList->setSelectionMode(Q3ListBox::Single);
+
+ //
+ // populate list of available controller
+ //
+
+ std::list<QString> sList;
+ typedef std::list<QString>::iterator isList;
+
+ for (iMidiCtrlValList i = cll->begin(); i != cll->end(); ++i) {
+ MidiCtrlValList* cl = i->second;
+ int num = cl->num();
+
+ // dont show drum specific controller if not a drum track
+ if ((num & 0xff) == 0xff) {
+ if (!isDrum)
+ continue;
+ }
+ MidiController* c = port->midiController(num);
+ isList i = sList.begin();
+ for (; i != sList.end(); ++i) {
+ if (*i == c->name())
+ break;
+ }
+ if (i == sList.end())
+ sList.push_back(c->name());
+ }
+ MidiController* mc = port->midiController(num);
+ int idx = 0;
+ int selectionIndex = 0;
+ for (isList i = sList.begin(); i != sList.end(); ++i, ++idx) {
+ ctrlList->insertItem(*i);
+ if (mc->name() == *i)
+ selectionIndex = idx;
+ }
+ ctrlList->setSelected(selectionIndex, true);
+
+ valSlider->setRange(mc->minVal(), mc->maxVal());
+ valSpinBox->setRange(mc->minVal(), mc->maxVal());
+
+ controllerName->setText(mc->name());
+
+ if(!event.empty())
+ {
+ if(num == CTRL_PROGRAM)
+ {
+ widgetStack->raiseWidget(1);
+ updatePatch();
+ }
+ else
+ {
+ widgetStack->raiseWidget(0);
+ valSlider->setValue(val - mc->bias());
+ }
+ }
+ else
+ ctrlListClicked(ctrlList->selectedItem());
+ connect(ctrlList, SIGNAL(clicked(Q3ListBoxItem*)), SLOT(ctrlListClicked(Q3ListBoxItem*)));
+ connect(buttonNewController, SIGNAL(clicked()), SLOT(newController()));
+ connect(hbank, SIGNAL(valueChanged(int)), SLOT(programChanged()));
+ connect(lbank, SIGNAL(valueChanged(int)), SLOT(programChanged()));
+ connect(program, SIGNAL(valueChanged(int)), SLOT(programChanged()));
+ connect(patchName, SIGNAL(released()), SLOT(instrPopup()));
+ timePos->setValue(tick);
+
+ }
+//---------------------------------------------------------
+// newController
+//---------------------------------------------------------
+
+void EditCtrlDialog::newController()
+ {
+ Q3PopupMenu* pop = new Q3PopupMenu(this);
+ pop->setCheckable(this);
+ //
+ // populate popup with all controllers available for
+ // current instrument
+ //
+ MidiTrack* track = part->track();
+ int portn = track->outPort();
+ MidiPort* port = &midiPorts[portn];
+ MidiInstrument* instr = port->instrument();
+ MidiControllerList* mcl = instr->controller();
+
+ MidiCtrlValListList* cll = port->controller();
+ int channel = track->outChannel();
+ for (iMidiController ci = mcl->begin(); ci != mcl->end(); ++ci)
+ {
+ if(cll->find(channel, ci->second->num()) == cll->end())
+ pop->insertItem(ci->second->name());
+ }
+ int rv = pop->exec(buttonNewController->mapToGlobal(QPoint(0,0)));
+ if (rv != -1) {
+ QString s = pop->text(rv);
+ for (iMidiController ci = mcl->begin(); ci != mcl->end(); ++ci) {
+ MidiController* mc = ci->second;
+ if (mc->name() == s) {
+ if(cll->find(channel, mc->num()) == cll->end())
+ {
+ MidiCtrlValList* vl = new MidiCtrlValList(mc->num());
+ cll->add(channel, vl);
+ //song->update(SC_MIDI_CONTROLLER_ADD);
+ }
+ for (int idx = 0; ;++idx) {
+ QString str = ctrlList->text(idx);
+ if (s == str)
+ {
+ ctrlList->setSelected(idx, true);
+ ctrlListClicked(ctrlList->item(idx));
+ break;
+ }
+ if (str.isNull()) {
+ ctrlList->insertItem(s);
+ ctrlList->setSelected(idx, true);
+ ctrlListClicked(ctrlList->item(idx));
+ break;
+ }
+ }
+
+ break;
+ }
+ }
+ }
+ delete pop;
+ }
+//---------------------------------------------------------
+// ctrlListClicked
+//---------------------------------------------------------
+
+void EditCtrlDialog::ctrlListClicked(Q3ListBoxItem* item)
+ {
+ if (item == 0)
+ return;
+ QString s(item->text());
+
+ MidiTrack* track = part->track();
+ int portn = track->outPort();
+ MidiPort* port = &midiPorts[portn];
+ MidiCtrlValListList* cll = port->controller();
+
+ iMidiCtrlValList i;
+ for (i = cll->begin(); i != cll->end(); ++i) {
+ MidiCtrlValList* cl = i->second;
+ num = cl->num();
+ MidiController* c = port->midiController(num);
+ if (s == c->name()) {
+ if (num == CTRL_PROGRAM) {
+ widgetStack->raiseWidget(1);
+
+ val = c->initVal();
+ if(val == CTRL_VAL_UNKNOWN)
+ val = 0;
+ updatePatch();
+ }
+ else {
+ widgetStack->raiseWidget(0);
+ valSlider->setRange(c->minVal(), c->maxVal());
+ valSpinBox->setRange(c->minVal(), c->maxVal());
+ controllerName->setText(s);
+ val = c->initVal();
+
+ if(val == CTRL_VAL_UNKNOWN || val == 0)
+ {
+ switch(num)
+ {
+ case CTRL_PANPOT:
+ val = 64 - c->bias();
+ break;
+ case CTRL_VOLUME:
+ val = 100;
+ break;
+ default:
+ val = 0;
+ break;
+ }
+ }
+ valSlider->setValue(val);
+ }
+ break;
+ }
+ }
+ if (i == cll->end())
+ printf("controller %s not found!\n", s.latin1());
+ }
+
+//---------------------------------------------------------
+// updatePatch
+//---------------------------------------------------------
+
+void EditCtrlDialog::updatePatch()
+ {
+ MidiTrack* track = part->track();
+ int port = track->outPort();
+ int channel = track->outChannel();
+ MidiInstrument* instr = midiPorts[port].instrument();
+ const char* name = instr->getPatchName(channel, val, song->mtype(), track->type() == Track::DRUM);
+ patchName->setText(QString(name));
+
+ int hb = ((val >> 16) & 0xff) + 1;
+ if (hb == 0x100)
+ hb = 0;
+ int lb = ((val >> 8) & 0xff) + 1;
+ if (lb == 0x100)
+ lb = 0;
+ int pr = (val & 0xff) + 1;
+ if (pr == 0x100)
+ pr = 0;
+
+ hbank->blockSignals(true);
+ lbank->blockSignals(true);
+ program->blockSignals(true);
+
+ hbank->setValue(hb);
+ lbank->setValue(lb);
+ program->setValue(pr);
+
+ hbank->blockSignals(false);
+ lbank->blockSignals(false);
+ program->blockSignals(false);
+ }
+
+//---------------------------------------------------------
+// instrPopup
+//---------------------------------------------------------
+
+void EditCtrlDialog::instrPopup()
+ {
+ MidiTrack* track = part->track();
+ int channel = track->outChannel();
+ int port = track->outPort();
+ MidiInstrument* instr = midiPorts[port].instrument();
+ instr->populatePatchPopup(pop, channel, song->mtype(), track->type() == Track::DRUM);
+
+ if(pop->count() == 0)
+ return;
+ int rv = pop->exec(patchName->mapToGlobal(QPoint(10,5)));
+ if (rv != -1) {
+ val = rv;
+ updatePatch();
+ }
+ }
+
+//---------------------------------------------------------
+// programChanged
+//---------------------------------------------------------
+
+void EditCtrlDialog::programChanged()
+ {
+// MidiTrack* track = part->track();
+// int channel = track->outChannel();
+// int port = track->outPort();
+ int hb = hbank->value();
+ int lb = lbank->value();
+ int prog = program->value();
+
+ if (hb > 0 && hb < 129)
+ hb -= 1;
+ else
+ hb = 0xff;
+ if (lb > 0 && lb < 129)
+ lb -= 1;
+ else
+ lb = 0xff;
+ if (prog > 0 && prog < 129)
+ prog -= 1;
+ else
+ prog = 0xff;
+
+ val = (hb << 16) + (lb << 8) + prog;
+ updatePatch();
+ }
+
diff --git a/muse2/muse/liste/editevent.h b/muse2/muse/liste/editevent.h
new file mode 100644
index 00000000..769ba256
--- /dev/null
+++ b/muse2/muse/liste/editevent.h
@@ -0,0 +1,196 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: editevent.h,v 1.6.2.1 2008/05/21 00:28:53 terminator356 Exp $
+// (C) Copyright 1999 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __EDIT_EVENT_H__
+#define __EDIT_EVENT_H__
+
+#include <qdialog.h>
+//Added by qt3to4:
+#include <Q3PopupMenu>
+#include <Q3GridLayout>
+#include <QLabel>
+
+#include "editnotedialogbase.h"
+#include "editsysexdialogbase.h"
+#include "editctrlbase.h"
+#include "event.h"
+
+class PosEdit;
+class IntLabel;
+class PitchEdit;
+class Q3GridLayout;
+class Q3MultiLineEdit;
+class QRadioButton;
+class PosEdit;
+class MidiPart;
+class Q3ListBoxItem;
+class Q3PopupMenu;
+//---------------------------------------------------------
+// EditEventDialog
+//---------------------------------------------------------
+
+class EditEventDialog : public QDialog {
+ Q_OBJECT
+
+ protected:
+ Q3GridLayout* layout1;
+
+ public:
+ EditEventDialog(QWidget* parent=0, const char* name=0);
+ virtual Event event() = 0;
+ };
+
+//---------------------------------------------------------
+// EditNoteDialog
+//---------------------------------------------------------
+
+class EditNoteDialog : public EditNoteDialogBase {
+ Q_OBJECT
+
+ public:
+ EditNoteDialog(int tick, const Event&,
+ QWidget* parent=0, const char* name=0);
+ static Event getEvent(int tick, const Event&,
+ QWidget* parent = 0);
+ virtual Event event();
+ };
+
+//---------------------------------------------------------
+// EditSysExDialog
+//---------------------------------------------------------
+
+class EditSysexDialog : public EditSysexDialogBase {
+ Q_OBJECT
+
+ unsigned char* sysex;
+ int len;
+
+ protected:
+ Q3GridLayout* layout;
+
+ private slots:
+ virtual void accept();
+
+ public:
+ EditSysexDialog(int tick, const Event&,
+ QWidget* parent=0, const char* name=0);
+ ~EditSysexDialog();
+ static Event getEvent(int tick, const Event&,
+ QWidget* parent = 0);
+ virtual Event event();
+ };
+
+//---------------------------------------------------------
+// EditCtrlDialog
+//---------------------------------------------------------
+
+class EditCtrlDialog : public EditCtrlBase {
+ Q_OBJECT
+
+ int num; // controller number
+ int val; // controller value (for prog. changes)
+
+ const MidiPart* part;
+ Q3PopupMenu* pop;
+
+ void updatePatch();
+
+ private slots:
+ void ctrlListClicked(Q3ListBoxItem*);
+ void newController();
+ void programChanged();
+ void instrPopup();
+
+ protected:
+ Q3GridLayout* layout;
+
+
+ public:
+ EditCtrlDialog(int tick, const Event&,
+ const MidiPart*, QWidget* parent=0, const char* name=0);
+ static Event getEvent(int tick, const Event&, const MidiPart*,
+ QWidget* parent = 0);
+ virtual Event event();
+ };
+
+//---------------------------------------------------------
+// EditMetaDialog
+//---------------------------------------------------------
+
+class EditMetaDialog : public EditEventDialog {
+ Q_OBJECT
+
+ unsigned char* meta;
+ int len;
+ PosEdit* epos;
+ Q3MultiLineEdit* edit;
+ IntLabel* il2;
+ QRadioButton* hexButton;
+ QLabel* typeLabel;
+
+ protected:
+ Q3GridLayout* layout;
+
+ private slots:
+ virtual void accept();
+ void toggled(bool);
+ void typeChanged(int);
+
+ public:
+ EditMetaDialog(int tick, const Event&,
+ QWidget* parent=0, const char* name=0);
+ ~EditMetaDialog();
+ static Event getEvent(int tick, const Event&,
+ QWidget* parent = 0);
+ virtual Event event();
+ };
+
+//---------------------------------------------------------
+// EditCAfterDialog
+//---------------------------------------------------------
+
+class EditCAfterDialog : public EditEventDialog {
+ Q_OBJECT
+
+ PosEdit* epos;
+ IntLabel* il2;
+
+ protected:
+ Q3GridLayout* layout;
+
+ public:
+ EditCAfterDialog(int tick, const Event&,
+ QWidget* parent=0, const char* name=0);
+ static Event getEvent(int tick, const Event&,
+ QWidget* parent = 0);
+ virtual Event event();
+ };
+
+//---------------------------------------------------------
+// EditPAfterDialog
+//---------------------------------------------------------
+
+class EditPAfterDialog : public EditEventDialog {
+ Q_OBJECT
+
+ PosEdit* epos;
+ PitchEdit* pl;
+ IntLabel* il2;
+
+ protected:
+ Q3GridLayout* layout;
+
+ public:
+ EditPAfterDialog(int tick, const Event&,
+ QWidget* parent=0, const char* name=0);
+ static Event getEvent(int tick, const Event&,
+ QWidget* parent = 0);
+ virtual Event event();
+ };
+
+#endif
+
diff --git a/muse2/muse/liste/listedit.cpp b/muse2/muse/liste/listedit.cpp
new file mode 100644
index 00000000..4cdb7892
--- /dev/null
+++ b/muse2/muse/liste/listedit.cpp
@@ -0,0 +1,909 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: listedit.cpp,v 1.11.2.11 2009/05/24 21:43:44 terminator356 Exp $
+// (C) Copyright 1999 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include <q3toolbar.h>
+#include <qtooltip.h>
+#include <qtoolbutton.h>
+#include <qlayout.h>
+#include <q3hbox.h>
+#include <qscrollbar.h>
+#include <qlabel.h>
+#include <qpushbutton.h>
+#include <qradiobutton.h>
+#include <q3buttongroup.h>
+#include <q3listbox.h>
+#include <q3listview.h>
+#include <q3header.h>
+#include <q3popupmenu.h>
+#include <qmenubar.h>
+#include <qaction.h>
+#include <q3accel.h>
+#include <Qt3Support>
+//Added by qt3to4:
+#include <QKeyEvent>
+#include <Q3ActionGroup>
+#include <QCloseEvent>
+
+#include "listedit.h"
+#include "mtscale.h"
+#include "globals.h"
+#include "icons.h"
+#include "editevent.h"
+#include "xml.h"
+#include "pitchedit.h"
+#include "song.h"
+#include "audio.h"
+#include "shortcuts.h"
+#include "midi.h"
+#include "event.h"
+#include "midiport.h"
+#include "midictrl.h"
+
+//---------------------------------------------------------
+// EventListItem
+//---------------------------------------------------------
+
+class EventListItem : public Q3ListViewItem {
+ public:
+ Event event;
+ MidiPart* part;
+
+ EventListItem(Q3ListView* parent, Event ev, MidiPart* p)
+ : Q3ListViewItem(parent) {
+ event = ev;
+ part = p;
+ }
+ virtual QString text(int col) const;
+ virtual int compare(Q3ListViewItem* i, int col, bool ascend) const
+ {
+ EventListItem* eli = (EventListItem*)i;
+ switch(col)
+ {
+ case 0:
+ return event.tick() - eli->event.tick();
+ break;
+ case 1:
+ return part->tick() + event.tick() - (eli->part->tick() + eli->event.tick());
+ break;
+ case 2:
+ return key(col, ascend).localeAwareCompare(i->key(col, ascend));
+ break;
+ case 3:
+ return part->track()->outChannel() - eli->part->track()->outChannel();
+ break;
+ case 4:
+ return event.dataA() - eli->event.dataA();
+ break;
+ case 5:
+ return event.dataB() - eli->event.dataB();
+ break;
+ case 6:
+ return event.dataC() - eli->event.dataC();
+ break;
+ case 7:
+ return event.lenTick() - eli->event.lenTick();
+ break;
+ case 8:
+ return key(col, ascend).localeAwareCompare(i->key(col, ascend));
+ break;
+ default:
+ return 0;
+ }
+ }
+ };
+/*---------------------------------------------------------
+ * midi_meta_name
+ *---------------------------------------------------------*/
+
+static QString midiMetaComment(const Event& ev)
+ {
+ int meta = ev.dataA();
+ QString s = midiMetaName(meta);
+
+ switch (meta) {
+ case 0:
+ case 0x2f:
+ case 0x51:
+ case 0x54:
+ case 0x58:
+ case 0x59:
+ case 0x74:
+ case 0x7f: return s;
+
+ case 1:
+ case 2:
+ case 3:
+ case 4:
+ case 5:
+ case 6:
+ case 7:
+ case 8:
+ case 9:
+ case 0x0a:
+ case 0x0b:
+ case 0x0c:
+ case 0x0d:
+ case 0x0e:
+ case 0x0f:
+ {
+ s += QString(": ");
+ const char* txt = (char*)(ev.data());
+ int len = ev.dataLen();
+ char buffer[len+1];
+ memcpy(buffer, txt, len);
+ buffer[len] = 0;
+
+ for (int i = 0; i < len; ++i) {
+ if (buffer[i] == '\n' || buffer[i] == '\r')
+ buffer[i] = ' ';
+ }
+ return s + QString(buffer);
+ }
+
+ case 0x20:
+ case 0x21:
+ default:
+ {
+ s += QString(": ");
+ int i;
+ int len = ev.lenTick();
+ int n = len > 10 ? 10 : len;
+ for (i = 0; i < n; ++i) {
+ if (i >= ev.dataLen())
+ break;
+ s += QString(" 0x");
+ QString k;
+ k.setNum(ev.data()[i] & 0xff, 16);
+ s += k;
+ }
+ if (i == 10)
+ s += QString("...");
+ return s;
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// closeEvent
+//---------------------------------------------------------
+
+void ListEdit::closeEvent(QCloseEvent* e)
+ {
+ emit deleted((unsigned long)this);
+ e->accept();
+ }
+
+//---------------------------------------------------------
+// songChanged
+//---------------------------------------------------------
+
+void ListEdit::songChanged(int type)
+ {
+ if (type == 0)
+ return;
+ if (type & (SC_PART_REMOVED | SC_PART_MODIFIED
+ | SC_PART_INSERTED | SC_EVENT_REMOVED | SC_EVENT_MODIFIED
+ | SC_EVENT_INSERTED | SC_SELECTION)) {
+ if (type & (SC_PART_REMOVED | SC_PART_INSERTED))
+ genPartlist();
+ // close window if editor has no parts anymore
+ if (parts()->empty()) {
+ close(false);
+ return;
+ }
+ if (type == SC_SELECTION) {
+ bool update = false;
+ Q3ListViewItem* ci = 0;
+ for (Q3ListViewItem* i = liste->firstChild(); i; i = i->nextSibling()) {
+ if (i->isSelected() ^ ((EventListItem*)i)->event.selected()) {
+ i->setSelected(((EventListItem*)i)->event.selected());
+ if (i->isSelected())
+ ci = i;
+ update = true;
+ }
+ }
+ if (update) {
+ if (ci)
+ liste->setCurrentItem(ci);
+ liste->triggerUpdate();
+ }
+ }
+ else {
+ curPart = 0;
+ curTrack = 0;
+ liste->clear();
+ for (iPart p = parts()->begin(); p != parts()->end(); ++p) {
+ MidiPart* part = (MidiPart*) (p->second);
+ if (part->sn() == curPartId)
+ curPart = part;
+ EventList* el = part->events();
+ for (iEvent i = el->begin(); i != el->end(); ++i) {
+ EventListItem* item = new EventListItem(liste, i->second, part);
+ item->setSelected(i->second.selected());
+ if (item->event.tick() == (unsigned) selectedTick) { //prevent compiler warning: comparison of signed/unsigned)
+ liste->setCurrentItem(item);
+ item->setSelected(true);
+ liste->ensureItemVisible(item);
+ }
+ }
+ }
+ }
+
+ // p3.3.34
+ //if (curPart == 0)
+ // curPart = (MidiPart*)(parts()->begin()->second);
+ //curTrack = curPart->track();
+ if(!curPart)
+ {
+ if(!parts()->empty())
+ {
+ curPart = (MidiPart*)(parts()->begin()->second);
+ if(curPart)
+ curTrack = curPart->track();
+ else
+ curPart = 0;
+ }
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// text
+//---------------------------------------------------------
+
+QString EventListItem::text(int col) const
+ {
+ QString s;
+ QString commentLabel;
+ switch(col) {
+ case 0:
+ s.setNum(event.tick());
+ break;
+ case 1:
+ {
+ int t = event.tick() + part->tick();
+ int bar, beat;
+ unsigned tick;
+ sigmap.tickValues(t, &bar, &beat, &tick);
+ s.sprintf("%04d.%02d.%03d", bar+1, beat+1, tick);
+ }
+ break;
+ case 2:
+ switch(event.type()) {
+ case Note:
+ s = QString("Note");
+ break;
+ case Controller:
+ {
+ const char* cs;
+ switch (midiControllerType(event.dataA())) {
+ case MidiController::Controller7: cs = "Ctrl7"; break;
+ case MidiController::Controller14: cs = "Ctrl14"; break;
+ case MidiController::RPN: cs = "RPN"; break;
+ case MidiController::NRPN: cs = "NRPN"; break;
+ case MidiController::Pitch: cs = "Pitch"; break;
+ case MidiController::Program: cs = "Program"; break;
+ case MidiController::RPN14: cs = "RPN14"; break;
+ case MidiController::NRPN14: cs = "NRPN14"; break;
+ default: cs = "Ctrl?"; break;
+ }
+ s = QString(cs);
+ }
+ break;
+ case Sysex:
+ {
+ commentLabel = QString("len ");
+ QString k;
+ k.setNum(event.dataLen());
+ commentLabel += k;
+ commentLabel += QString(" ");
+
+ commentLabel += nameSysex(event.dataLen(), event.data());
+ int i;
+ for (i = 0; i < 10; ++i) {
+ if (i >= event.dataLen())
+ break;
+ commentLabel += QString(" 0x");
+ QString k;
+ k.setNum(event.data()[i] & 0xff, 16);
+ commentLabel += k;
+ }
+ if (i == 10)
+ commentLabel += QString("...");
+ }
+ s = QString("SysEx");
+ break;
+ case PAfter:
+ s = QString("PoAT");
+ break;
+ case CAfter:
+ s = QString("ChAT");
+ break;
+ case Meta:
+ commentLabel = midiMetaComment(event);
+ s = QString("Meta");
+ break;
+ case Wave:
+ break;
+ default:
+ printf("unknown event type %d\n", event.type());
+ }
+ break;
+ case 3:
+ s.setNum(part->track()->outChannel() + 1);
+ break;
+ case 4:
+ if (event.isNote() || event.type() == PAfter)
+ s = pitch2string(event.dataA());
+ else if (event.type() == Controller)
+ s.setNum(event.dataA() & 0xffff); // mask off type bits
+ else
+ s.setNum(event.dataA());
+ break;
+ case 5:
+ if(event.type() == Controller &&
+ midiControllerType(event.dataA()) == MidiController::Program)
+ {
+ int val = event.dataB();
+ int hb = ((val >> 16) & 0xff) + 1;
+ if (hb == 0x100)
+ hb = 0;
+ int lb = ((val >> 8) & 0xff) + 1;
+ if (lb == 0x100)
+ lb = 0;
+ int pr = (val & 0xff) + 1;
+ if (pr == 0x100)
+ pr = 0;
+ s.sprintf("%d-%d-%d", hb, lb, pr);
+ }
+ else
+ s.setNum(event.dataB());
+ break;
+ case 6:
+ s.setNum(event.dataC());
+ break;
+ case 7:
+ s.setNum(event.lenTick());
+ break;
+ case 8:
+ switch(event.type()) {
+ case Controller:
+ {
+ MidiPort* mp = &midiPorts[part->track()->outPort()];
+ MidiController* mc = mp->midiController(event.dataA());
+ s = mc->name();
+ }
+ break;
+ case Sysex:
+ {
+ s = QString("len ");
+ QString k;
+ k.setNum(event.dataLen());
+ s += k;
+ s += QString(" ");
+
+ commentLabel += nameSysex(event.dataLen(), event.data());
+ int i;
+ for (i = 0; i < 10; ++i) {
+ if (i >= event.dataLen())
+ break;
+ s += QString(" 0x");
+ QString k;
+ k.setNum(event.data()[i] & 0xff, 16);
+ s += k;
+ }
+ if (i == 10)
+ s += QString("...");
+ }
+ break;
+ case Meta:
+ s = midiMetaComment(event);
+ break;
+ default:
+ break;
+ }
+ break;
+
+ }
+ return s;
+ }
+
+//---------------------------------------------------------
+// ListEdit
+//---------------------------------------------------------
+
+ListEdit::ListEdit(PartList* pl)
+ : MidiEditor(0, 0, pl)
+ {
+ insertItems = new Q3ActionGroup(this, "InsertItems", false);
+ insertNote = new Q3Action(tr("Insert Note"), QIcon(*note1Icon), tr("insert Note"),
+ 0, insertItems);
+ insertSysEx = new Q3Action(tr("Insert SysEx"), QIcon(*sysexIcon), tr("insert SysEx"),
+ 0, insertItems);
+ insertCtrl = new Q3Action(tr("Insert Ctrl"), QIcon(*ctrlIcon), tr("insert Ctrl"),
+ 0, insertItems);
+ insertMeta = new Q3Action(tr("Insert Meta"), QIcon(*metaIcon), tr("insert Meta"),
+ 0, insertItems);
+ insertCAfter = new Q3Action(tr("Insert Channel Aftertouch"), QIcon(*cafterIcon), tr("insert Channel Aftertouch"),
+ 0, insertItems);
+ insertPAfter = new Q3Action(tr("Insert Key Aftertouch"), QIcon(*pafterIcon), tr("insert Poly Aftertouch"),
+ 0, insertItems);
+
+ connect(insertNote, SIGNAL(activated()), SLOT(editInsertNote()));
+ connect(insertSysEx, SIGNAL(activated()), SLOT(editInsertSysEx()));
+ connect(insertCtrl, SIGNAL(activated()), SLOT(editInsertCtrl()));
+ connect(insertMeta, SIGNAL(activated()), SLOT(editInsertMeta()));
+ connect(insertCAfter, SIGNAL(activated()), SLOT(editInsertCAfter()));
+ connect(insertPAfter, SIGNAL(activated()), SLOT(editInsertPAfter()));
+
+ //---------Pulldown Menu----------------------------
+ menuEdit = new Q3PopupMenu(this);
+ menuBar()->insertItem(tr("&Edit"), menuEdit);
+ undoRedo->addTo(menuEdit);
+
+ Q3Accel* qa = new Q3Accel(this);
+ qa->connectItem(qa->insertItem(Qt::CTRL+Qt::Key_Z), song, SLOT(undo()));
+ qa->connectItem(qa->insertItem(Qt::CTRL+Qt::Key_Y), song, SLOT(redo()));
+
+ menuEdit->insertSeparator();
+#if 0
+ menuEdit->insertItem(tr("Cut"), EList::CMD_CUT);
+ menuEdit->setAccel(Qt::CTRL+Qt::Key_X, EList::CMD_CUT);
+ menuEdit->insertItem(tr("Copy"), EList::CMD_COPY);
+ menuEdit->setAccel(Qt::CTRL+Qt::Key_C, EList::CMD_COPY);
+ menuEdit->insertItem(tr("Paste"), EList::CMD_PASTE);
+ menuEdit->setAccel(Qt::CTRL+Qt::Key_V, EList::CMD_PASTE);
+ menuEdit->insertSeparator();
+#endif
+ menuEdit->insertItem(tr("Delete Events"), CMD_DELETE);
+ menuEdit->setAccel(Qt::Key_Delete, CMD_DELETE);
+ menuEdit->insertSeparator();
+
+ insertItems->addTo(menuEdit);
+
+ connect(menuEdit, SIGNAL(activated(int)), SLOT(cmd(int)));
+
+ //---------ToolBar----------------------------------
+ listTools = new Q3ToolBar(this, "list-tools");
+ listTools->setLabel(tr("List Tools"));
+ undoRedo->addTo(listTools);
+ Q3ToolBar* insertTools = new Q3ToolBar(this, "insert");
+ insertTools->setLabel(tr("Insert Tools"));
+ insertItems->addTo(insertTools);
+
+ //
+ //---------------------------------------------------
+ // liste
+ //---------------------------------------------------
+ //
+
+ liste = new Q3ListView(mainw);
+ QFontMetrics fm(liste->font());
+ int n = fm.width('9');
+ int b = 24;
+ int c = fm.width(QString("Val B"));
+ int sortIndW = n * 3;
+ liste->setAllColumnsShowFocus(true);
+ liste->setSorting(0);
+ liste->setSelectionMode(Q3ListView::Extended);
+ liste->setShowSortIndicator(true);
+ liste->addColumn(tr("Tick"), n * 6 + b);
+ liste->addColumn(tr("Bar"), fm.width(QString("9999.99.999")) + b);
+ liste->addColumn(tr("Type"), fm.width(QString("Program")) + b);
+ liste->addColumn(tr("Ch"), n * 2 + b + sortIndW);
+ liste->addColumn(tr("Val A"), c + b + sortIndW);
+ liste->addColumn(tr("Val B"), c + b + sortIndW);
+ liste->addColumn(tr("Val C"), c + b + sortIndW);
+ liste->addColumn(tr("Len"), n * 4 + b + sortIndW);
+ liste->addColumn(tr("Comment"), fm.width(QString("MainVolume")) + 70);
+ liste->setResizeMode(Q3ListView::LastColumn);
+ connect(liste, SIGNAL(selectionChanged()), SLOT(selectionChanged()));
+ connect(liste, SIGNAL(doubleClicked(Q3ListViewItem*)), SLOT(doubleClicked(Q3ListViewItem*)));
+ //---------------------------------------------------
+ // Rest
+ //---------------------------------------------------
+
+ mainGrid->setRowStretch(1, 100);
+ mainGrid->setColStretch(0, 100);
+ mainGrid->addMultiCellWidget(liste, 1, 2, 0, 0);
+ connect(song, SIGNAL(songChanged(int)), SLOT(songChanged(int)));
+ songChanged(-1);
+
+ // p3.3.34
+ // Was crashing because of -1 stored, because there was an invalid
+ // part pointer stored.
+ //curPart = (MidiPart*)(pl->begin()->second);
+ if(pl->empty())
+ {
+ curPart = 0;
+ curPartId = -1;
+ }
+ else
+ {
+ curPart = (MidiPart*)pl->begin()->second;
+ if(curPart)
+ curPartId = curPart->sn();
+ else
+ {
+ curPart = 0;
+ curPartId = -1;
+ }
+ }
+
+ initShortcuts();
+ }
+
+//---------------------------------------------------------
+// ~ListEdit
+//---------------------------------------------------------
+
+ListEdit::~ListEdit()
+ {
+ undoRedo->removeFrom(listTools);
+ }
+
+//---------------------------------------------------------
+// editInsertNote
+//---------------------------------------------------------
+
+void ListEdit::editInsertNote()
+ {
+ // p3.3.34
+ if(!curPart)
+ return;
+
+ Event event = EditNoteDialog::getEvent(curPart->tick(), Event(), this);
+ if (!event.empty()) {
+ //No events before beginning of part + take Part offset into consideration
+ unsigned tick = event.tick();
+ if (tick < curPart->tick())
+ tick = 0;
+ else
+ tick-= curPart->tick();
+ event.setTick(tick);
+ // Indicate do undo, and do not handle port controller values.
+ //audio->msgAddEvent(event, curPart);
+ audio->msgAddEvent(event, curPart, true, false, false);
+ }
+ }
+
+//---------------------------------------------------------
+// editInsertSysEx
+//---------------------------------------------------------
+
+void ListEdit::editInsertSysEx()
+ {
+ // p3.3.34
+ if(!curPart)
+ return;
+
+ Event event = EditSysexDialog::getEvent(curPart->tick(), Event(), this);
+ if (!event.empty()) {
+ //No events before beginning of part + take Part offset into consideration
+ unsigned tick = event.tick();
+ if (tick < curPart->tick())
+ tick = 0;
+ else
+ tick-= curPart->tick();
+ event.setTick(tick);
+ // Indicate do undo, and do not handle port controller values.
+ //audio->msgAddEvent(event, curPart);
+ audio->msgAddEvent(event, curPart, true, false, false);
+ }
+ }
+
+//---------------------------------------------------------
+// editInsertCtrl
+//---------------------------------------------------------
+
+void ListEdit::editInsertCtrl()
+ {
+ // p3.3.34
+ if(!curPart)
+ return;
+
+ Event event = EditCtrlDialog::getEvent(curPart->tick(), Event(), curPart, this);
+ if (!event.empty()) {
+ //No events before beginning of part + take Part offset into consideration
+ unsigned tick = event.tick();
+ if (tick < curPart->tick())
+ tick = 0;
+ else
+ tick-= curPart->tick();
+ event.setTick(tick);
+ // Indicate do undo, and do port controller values and clone parts.
+ //audio->msgAddEvent(event, curPart);
+ audio->msgAddEvent(event, curPart, true, true, true);
+ }
+ }
+
+//---------------------------------------------------------
+// editInsertMeta
+//---------------------------------------------------------
+
+void ListEdit::editInsertMeta()
+ {
+ // p3.3.34
+ if(!curPart)
+ return;
+
+ Event event = EditMetaDialog::getEvent(curPart->tick(), Event(), this);
+ if (!event.empty()) {
+ //No events before beginning of part + take Part offset into consideration
+ unsigned tick = event.tick();
+ if (tick < curPart->tick())
+ tick = 0;
+ else
+ tick-= curPart->tick();
+ event.setTick(tick);
+ // Indicate do undo, and do not handle port controller values.
+ //audio->msgAddEvent(event, curPart);
+ audio->msgAddEvent(event, curPart, true, false, false);
+ }
+ }
+
+//---------------------------------------------------------
+// editInsertCAfter
+//---------------------------------------------------------
+
+void ListEdit::editInsertCAfter()
+ {
+ // p3.3.34
+ if(!curPart)
+ return;
+
+ Event event = EditCAfterDialog::getEvent(curPart->tick(), Event(), this);
+ if (!event.empty()) {
+ //No events before beginning of part + take Part offset into consideration
+ unsigned tick = event.tick();
+ if (tick < curPart->tick())
+ tick = 0;
+ else
+ tick-= curPart->tick();
+ event.setTick(tick);
+ // Indicate do undo, and do not handle port controller values.
+ //audio->msgAddEvent(event, curPart);
+ audio->msgAddEvent(event, curPart, true, false, false);
+ }
+ }
+
+//---------------------------------------------------------
+// editInsertPAfter
+//---------------------------------------------------------
+
+void ListEdit::editInsertPAfter()
+ {
+ // p3.3.34
+ if(!curPart)
+ return;
+
+ Event ev;
+ Event event = EditPAfterDialog::getEvent(curPart->tick(), ev, this);
+ if (!event.empty()) {
+ //No events before beginning of part + take Part offset into consideration
+ unsigned tick = event.tick();
+ if (tick < curPart->tick())
+ tick = 0;
+ else
+ tick-= curPart->tick();
+ event.setTick(tick);
+ // Indicate do undo, and do not handle port controller values.
+ //audio->msgAddEvent(event, curPart);
+ audio->msgAddEvent(event, curPart, true, false, false);
+ }
+ }
+
+//---------------------------------------------------------
+// editEvent
+//---------------------------------------------------------
+
+void ListEdit::editEvent(Event& event, MidiPart* part)
+ {
+ int tick = event.tick() + part->tick();
+ Event nevent;
+ switch(event.type()) {
+ case Note:
+ nevent = EditNoteDialog::getEvent(tick, event, this);
+ break;
+ case Controller:
+ nevent = EditCtrlDialog::getEvent(tick, event, part, this);
+ break;
+ case Sysex:
+ nevent = EditSysexDialog::getEvent(tick, event, this);
+ break;
+ case PAfter:
+ nevent = EditPAfterDialog::getEvent(tick, event, this);
+ break;
+ case CAfter:
+ nevent = EditCAfterDialog::getEvent(tick, event, this);
+ break;
+ case Meta:
+ nevent = EditMetaDialog::getEvent(tick, event, this);
+ break;
+ default:
+ return;
+ }
+ if (!nevent.empty()) {
+ // TODO: check for event != nevent
+ int tick = nevent.tick() - part->tick();
+ nevent.setTick(tick);
+ if (tick < 0)
+ printf("event not in part %d - %d - %d, not changed\n", part->tick(),
+ nevent.tick(), part->tick() + part->lenTick());
+ else
+ {
+ if(event.type() == Controller)
+ // Indicate do undo, and do port controller values and clone parts.
+ //audio->msgChangeEvent(event, nevent, part);
+ audio->msgChangeEvent(event, nevent, part, true, true, true);
+ else
+ // Indicate do undo, and do not do port controller values and clone parts.
+ //audio->msgChangeEvent(event, nevent, part);
+ audio->msgChangeEvent(event, nevent, part, true, false, false);
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// readStatus
+//---------------------------------------------------------
+
+void ListEdit::readStatus(Xml& xml)
+ {
+ 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 == "midieditor")
+ MidiEditor::readStatus(xml);
+ else
+ xml.unknown("ListEdit");
+ break;
+ case Xml::TagEnd:
+ if (tag == "listeditor")
+ return;
+ default:
+ break;
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// writeStatus
+//---------------------------------------------------------
+
+void ListEdit::writeStatus(int level, Xml& xml) const
+ {
+ writePartList(level, xml);
+ xml.tag(level++, "listeditor");
+ MidiEditor::writeStatus(level, xml);
+ xml.tag(level, "/listeditor");
+ }
+
+//---------------------------------------------------------
+// selectionChanged
+//---------------------------------------------------------
+
+void ListEdit::selectionChanged()
+ {
+ bool update = false;
+ for (Q3ListViewItem* i = liste->firstChild(); i; i = i->nextSibling()) {
+ if (i->isSelected() ^ ((EventListItem*)i)->event.selected()) {
+ ((EventListItem*)i)->event.setSelected(i->isSelected());
+ update = true;
+ }
+ }
+ if (update)
+ song->update(SC_SELECTION);
+ }
+
+//---------------------------------------------------------
+// doubleClicked
+//---------------------------------------------------------
+
+void ListEdit::doubleClicked(Q3ListViewItem* item)
+ {
+ EventListItem* ev = (EventListItem*) item;
+ editEvent(ev->event, ev->part);
+ }
+
+//---------------------------------------------------------
+// cmd
+//---------------------------------------------------------
+
+void ListEdit::cmd(int cmd)
+ {
+ switch(cmd) {
+ case CMD_DELETE:
+ bool found = false;
+ for (Q3ListViewItem* i = liste->firstChild(); i; i = i->nextSibling())
+ {
+ EventListItem *item = (EventListItem *) i;
+ if (i->isSelected() || item->event.selected())
+ {
+ found = true;
+ break;
+ }
+ }
+ if(!found)
+ break;
+ song->startUndo();
+
+ EventListItem *deletedEvent=NULL;
+ for (Q3ListViewItem* i = liste->firstChild(); i; i = i->nextSibling()) {
+ EventListItem *item = (EventListItem *) i;
+
+ if (i->isSelected() || item->event.selected()) {
+ deletedEvent=item;
+ // Indicate no undo, and do port controller values and clone parts.
+ //audio->msgDeleteEvent(item->event, item->part, false);
+ audio->msgDeleteEvent(item->event, item->part, false, true, true);
+ }
+ }
+
+ unsigned int nextTick=0;
+ // find biggest tick
+ for (Q3ListViewItem* i = liste->firstChild(); i; i = i->nextSibling()) {
+ EventListItem *item = (EventListItem *) i;
+ if (item->event.tick() > nextTick && item != deletedEvent)
+ nextTick=item->event.tick();
+ }
+ // check if there's a tick that is "just" bigger than the deleted
+ for (Q3ListViewItem* i = liste->firstChild(); i; i = i->nextSibling()) {
+ EventListItem *item = (EventListItem *) i;
+ if (item->event.tick() >= deletedEvent->event.tick() &&
+ item->event.tick() < nextTick &&
+ item != deletedEvent ) {
+ nextTick=item->event.tick();
+ }
+ }
+ selectedTick=nextTick;
+ song->endUndo(SC_EVENT_MODIFIED);
+ //printf("selected tick = %d\n", selectedTick);
+ //emit selectionChanged();
+ break;
+ }
+ }
+
+//---------------------------------------------------------
+// configChanged
+//---------------------------------------------------------
+
+void ListEdit::configChanged()
+ {
+ initShortcuts();
+ }
+
+//---------------------------------------------------------
+// initShortcuts
+//---------------------------------------------------------
+
+void ListEdit::initShortcuts()
+ {
+ insertNote->setAccel(shortcuts[SHRT_LE_INS_NOTES].key);
+ insertSysEx->setAccel(shortcuts[SHRT_LE_INS_SYSEX].key);
+ insertCtrl->setAccel(shortcuts[SHRT_LE_INS_CTRL].key);
+ insertMeta->setAccel(shortcuts[SHRT_LE_INS_META].key);
+ insertCAfter->setAccel(shortcuts[SHRT_LE_INS_CHAN_AFTERTOUCH].key);
+ insertPAfter->setAccel(shortcuts[SHRT_LE_INS_POLY_AFTERTOUCH].key);
+ }
+
+//---------------------------------------------------------
+// viewKeyPressEvent
+//---------------------------------------------------------
+
+void ListEdit::keyPressEvent(QKeyEvent* event)
+ {
+int key = event->key();
+if (key == Qt::Key_Escape) {
+ close();
+ return;
+ }
+ }
diff --git a/muse2/muse/liste/listedit.h b/muse2/muse/liste/listedit.h
new file mode 100644
index 00000000..efa0a591
--- /dev/null
+++ b/muse2/muse/liste/listedit.h
@@ -0,0 +1,81 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: listedit.h,v 1.3.2.3 2006/09/19 22:03:33 spamatica Exp $
+// (C) Copyright 1999 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __LIST_EDIT_H__
+#define __LIST_EDIT_H__
+
+#include "midieditor.h"
+#include "noteinfo.h"
+#include "cobject.h"
+//Added by qt3to4:
+#include <Q3PopupMenu>
+#include <QKeyEvent>
+#include <QCloseEvent>
+#include <Q3ActionGroup>
+#include <Qt3Support>
+
+class Event;
+class MidiTrack;
+class PartList;
+class MidiPart;
+class MidiPart;
+class Xml;
+class Q3ActionGroup;
+class QAction;
+class Q3ListView;
+class Q3ListViewItem;
+
+//---------------------------------------------------------
+// ListEdit
+//---------------------------------------------------------
+
+class ListEdit : public MidiEditor {
+ Q3ListView* liste;
+ Q3PopupMenu* menuEdit;
+ Q3ActionGroup* insertItems;
+ Q3ToolBar* listTools;
+ MidiTrack* curTrack;
+ MidiPart* curPart;
+ int selectedTick;
+ int curPartId;
+
+ enum { CMD_DELETE };
+
+ Q_OBJECT
+ virtual void closeEvent(QCloseEvent*);
+ virtual void keyPressEvent(QKeyEvent*);
+ void initShortcuts();
+ Q3Action *insertNote, *insertSysEx, *insertCtrl, *insertMeta, *insertCAfter, *insertPAfter;
+
+ private slots:
+ void editInsertNote();
+ void editInsertSysEx();
+ void editInsertCtrl();
+ void editInsertMeta();
+ void editInsertCAfter();
+ void editInsertPAfter();
+ void editEvent(Event&, MidiPart*);
+ void selectionChanged();
+ void doubleClicked(Q3ListViewItem*);
+ void cmd(int cmd);
+ void configChanged();
+
+ public slots:
+ void songChanged(int);
+
+ signals:
+ void deleted(unsigned long);
+
+ public:
+ ListEdit(PartList*);
+ ~ListEdit();
+ virtual void readStatus(Xml&);
+ virtual void writeStatus(int, Xml&) const;
+ };
+
+#endif
+
diff --git a/muse2/muse/make.inc b/muse2/muse/make.inc
new file mode 100644
index 00000000..a88e1f95
--- /dev/null
+++ b/muse2/muse/make.inc
@@ -0,0 +1,164 @@
+#=========================================================
+# MusE
+# Linux Music Editor
+# $Id: make.inc,v 1.1.1.1 2003/10/27 18:51:34 wschweer Exp $
+# (C) Copyright 1999-2001 Werner Schweer (ws@seh.de)
+#=========================================================
+
+#----------------------------------------------------
+# basic path
+#
+ifndef QTDIR_BIN
+QTDIR_BIN = /usr/qt3/bin
+endif
+
+ifndef QTDIR_LIB
+QTDIR_LIB = /usr/qt3/lib
+endif
+
+ifndef QTDIR_INC
+QTDIR_INC = /usr/qt3/include
+endif
+
+PREFIX = /usr/muse
+INSTDIR = $(PREFIX)/share
+INSTLIBDIR = $(PREFIX)/lib
+BINDIR = /usr/bin
+
+#-----------------------------------------------------
+# basic flags
+#
+# experimental KDE Flag
+# compiles with KDE Support:
+#
+# KMainWindow <--> QMainWindow
+# KToolbar <--> QToolBar
+#
+# Current Status: don´t use: (set to NO); there are some issues
+# If you want to debug this:
+# you also need Tommi Ilmonen´s "givertcap" because
+# you cannot run MusE suid root with KDE libs
+HAVE_KDE = no
+KDEDIR = /usr/kde2
+
+#
+# AUDIO, ALSA - always required
+# ALSACVS - use newest ALSA CVS (include /usr/include/alsa/asoundlib.h
+# instead of /usr/include/sys/asooundlib.h)
+AUDIO = yes
+ALSA = yes
+OSS = yes
+ALSACVS = yes
+
+# use Tommi Ilmonen´s "givertcap "to give RealTime capabilities to
+# MusE; with the use of this utility MusE did not need "suid root"
+# flags anymore
+# more info at http://www.tml.hut.fi/~tilmonen/givertcap/
+
+RTCAP = no
+
+#---------------------------------------------------------------
+
+CC = /usr/bin/g++
+QTLIB = qt-mt
+MOC = $(QTDIR_BIN)/moc
+UIC = $(QTDIR_BIN)/uic
+LUPDATE = $(QTDIR_BIN)/lupdate
+LRELEASE = $(QTDIR_BIN)/lrelease
+CPP = cpp
+
+#-----------------------------------------------------
+OLDVERSION = 0.5.1
+VERSION = 0.5.2
+
+INCLUDES = -I.
+#FLAGS = -Wall -W -Wshadow -D_GNU_SOURCE
+FLAGS = -Wall -W -D_GNU_SOURCE
+# FLAGS = -W -D_GNU_SOURCE
+ifeq ($(HAVE_KDE),yes)
+INCLUDES += -I$(KDEDIR)/include
+FLAGS += -DHAVE_KDE
+endif
+
+ifeq ($(ALSACVS),yes)
+FLAGS += -DALSACVS
+endif
+
+#-----------------------------------------------------
+# DEBUG = yes generates debuggable (non optimized) version
+#
+DEBUG = no
+
+ifeq ($(DEBUG),yes)
+FLAGS += -g # -DMEMORY_DEBUG
+else
+FLAGS += -O2 -g
+FLAGS += -DNDEBUG
+endif
+
+ifeq ($(AUDIO),yes)
+FLAGS += -DAUDIO
+endif
+
+ifeq ($(RTCAP),yes)
+FLAGS += -DRTCAP
+endif
+
+#-----------------------------------------------------
+# nothing to config below this line
+#
+ifdef TOPDIR
+INCLUDES += -Imidiedit -Iscore -Iarranger -Iliste
+INCLUDES += -Iwidgets -Imixer -Idriver -Iwaveedit -Implugins
+else
+INCLUDES += -I$(MUSETOP) -I$(MUSETOP)/widgets -I$(MUSETOP)/driver
+endif
+
+INCLUDES += -Iarchiv -I$(QTDIR_INC)
+FLAGS += -DQT_CLEAN_NAMESPACE -DQT_NOCOMPAT -DQT_NO_ASCII_CAST
+# FLAGS += -fno-exceptions
+FLAGS += -D_REENTRANT -DVERSION=\"$(VERSION)\"
+FLAGS += -DINSTDIR=\"$(INSTDIR)\"
+FLAGS += -DINSTLIBDIR=\"$(INSTLIBDIR)\"
+
+ifeq ($(ALSA),yes)
+FLAGS += -DALSA
+endif
+ifeq ($(OSS),yes)
+FLAGS += -DOSS
+endif
+
+ALL_CFLAGS = $(FLAGS) $(INCLUDES) $(CFLAGS)
+
+.PHONY: all target clean depend test translations
+.SUFFIXES: .ui
+
+%.o: %.c
+ $(CC) -c $(ALL_CFLAGS) $< -o $@
+obj/%.o: %.c
+ $(CC) -c $(ALL_CFLAGS) $< -o $@
+.ui.h:
+ $(UIC) $< -o $*.h
+.ui.c:
+ $(UIC) -o $*.c -impl $*.h $<
+obj/moc_%.c: %.h
+ $(MOC) $< -o obj/moc_$*.c
+
+
+all: target
+
+clean::
+ -@rm -f *.o obj/* *.bak $(GENSRC:=.h) $(GENSRC:=.c)
+
+depend:: $(GENSRC:=.h)
+depend::
+ -$(CC) -MM $(ALL_CFLAGS) $(SRC:=.c) $(MSRC:=.c) | sed -e 's/^.*\.o:/obj\/\0/' >.depend
+
+-include .depend
+
+ifndef TOPDIR
+MAKE = make
+endif
+
+install:: ;
+
diff --git a/muse2/muse/marker/Makefile.am b/muse2/muse/marker/Makefile.am
new file mode 100644
index 00000000..f577d695
--- /dev/null
+++ b/muse2/muse/marker/Makefile.am
@@ -0,0 +1,15 @@
+include $(top_srcdir)/common.am
+
+if PCH
+AM_CXXFLAGS += -include $(top_srcdir)/all.h
+endif
+
+noinst_LIBRARIES = libmarker.a
+
+dist_libmarker_a_SOURCES = \
+ marker.cpp marker.h \
+ markerview.cpp markerview.h
+
+nodist_libmarker_a_SOURCES = \
+ moc_markerview.cpp
+
diff --git a/muse2/muse/marker/Makefile.in b/muse2/muse/marker/Makefile.in
new file mode 100644
index 00000000..d9ed6779
--- /dev/null
+++ b/muse2/muse/marker/Makefile.in
@@ -0,0 +1,596 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
+ $(top_srcdir)/common.am
+@PCH_TRUE@am__append_1 = -include $(top_srcdir)/all.h
+subdir = muse/marker
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal-include.m4 \
+ $(top_srcdir)/m4/alsa.m4 $(top_srcdir)/m4/docbook.m4 \
+ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
+ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
+ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+LIBRARIES = $(noinst_LIBRARIES)
+ARFLAGS = cru
+libmarker_a_AR = $(AR) $(ARFLAGS)
+libmarker_a_LIBADD =
+dist_libmarker_a_OBJECTS = marker.$(OBJEXT) markerview.$(OBJEXT)
+nodist_libmarker_a_OBJECTS = moc_markerview.$(OBJEXT)
+libmarker_a_OBJECTS = $(dist_libmarker_a_OBJECTS) \
+ $(nodist_libmarker_a_OBJECTS)
+DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
+depcomp = $(SHELL) $(top_srcdir)/depcomp
+am__depfiles_maybe = depfiles
+am__mv = mv -f
+CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
+LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
+CXXLD = $(CXX)
+CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \
+ $(LDFLAGS) -o $@
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
+ $(LDFLAGS) -o $@
+SOURCES = $(dist_libmarker_a_SOURCES) $(nodist_libmarker_a_SOURCES)
+DIST_SOURCES = $(dist_libmarker_a_SOURCES)
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ALSA_CFLAGS = @ALSA_CFLAGS@
+ALSA_LIBS = @ALSA_LIBS@
+AMTAR = @AMTAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DOCBOOKSTYLE = @DOCBOOKSTYLE@
+DOCBOOKTARGETS = @DOCBOOKTARGETS@
+DOT = @DOT@
+DOTPATH = @DOTPATH@
+DOXYGEN = @DOXYGEN@
+DOXYGEN_TREEVIEW = @DOXYGEN_TREEVIEW@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+FLUIDSYNTHDIRS = @FLUIDSYNTHDIRS@
+FST_CFLAGS = @FST_CFLAGS@
+FST_LIBS = @FST_LIBS@
+Fluidsynth_CFLAGS = @Fluidsynth_CFLAGS@
+Fluidsynth_LIBS = @Fluidsynth_LIBS@
+GIVERTCAP = @GIVERTCAP@
+GREP = @GREP@
+HAVEDOT = @HAVEDOT@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JACK_CFLAGS = @JACK_CFLAGS@
+JACK_LIBS = @JACK_LIBS@
+JADE = @JADE@
+LASH_CFLAGS = @LASH_CFLAGS@
+LASH_LIBS = @LASH_LIBS@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LO_CFLAGS = @LO_CFLAGS@
+LO_LIBS = @LO_LIBS@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+MUSECXXFLAGS = @MUSECXXFLAGS@
+NM = @NM@
+NMEDIT = @NMEDIT@
+NSGMLS = @NSGMLS@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PCH = @PCH@
+PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+PYTHON = @PYTHON@
+PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
+PYTHON_INCLUDES = @PYTHON_INCLUDES@
+PYTHON_LIB = @PYTHON_LIB@
+PYTHON_PLATFORM = @PYTHON_PLATFORM@
+PYTHON_PREFIX = @PYTHON_PREFIX@
+PYTHON_VERSION = @PYTHON_VERSION@
+QTDIR_BIN = @QTDIR_BIN@
+QTDIR_INC = @QTDIR_INC@
+QT_LIBS = @QT_LIBS@
+RANLIB = @RANLIB@
+SAMPLERATE_CFLAGS = @SAMPLERATE_CFLAGS@
+SAMPLERATE_LIBS = @SAMPLERATE_LIBS@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SNDFILE_CFLAGS = @SNDFILE_CFLAGS@
+SNDFILE_LIBS = @SNDFILE_LIBS@
+STRIP = @STRIP@
+SUIDBUILD = @SUIDBUILD@
+SUIDINSTALL = @SUIDINSTALL@
+USE_SSE = @USE_SSE@
+UUID_CFLAGS = @UUID_CFLAGS@
+UUID_LIBS = @UUID_LIBS@
+VERSION = @VERSION@
+XMKMF = @XMKMF@
+X_CFLAGS = @X_CFLAGS@
+X_EXTRA_LIBS = @X_EXTRA_LIBS@
+X_LIBS = @X_LIBS@
+X_PRE_LIBS = @X_PRE_LIBS@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+have_docbook = @have_docbook@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+lt_ECHO = @lt_ECHO@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+pkgpyexecdir = @pkgpyexecdir@
+pkgpythondir = @pkgpythondir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+pyexecdir = @pyexecdir@
+pythondir = @pythondir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+synth_fluid = @synth_fluid@
+synth_fluidsynth = @synth_fluidsynth@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+AM_CXXFLAGS = $(MUSECXXFLAGS) -I.. -I$(top_srcdir)/synti \
+ -I$(top_srcdir)/muse/widgets -DQT_SHARED -DQT_THREAD_SUPPORT \
+ -DQT_PLUGIN $(QTDIR_INC) -DQT3_SUPPORT $(am__append_1)
+AM_CPPFLAGS =
+MOC = $(QTDIR_BIN)/moc
+#UIC = $(QTDIR_BIN)/uic3
+UIC = /usr/bin/uic3
+UIFILES = $(wildcard *.ui)
+MOCFILES = $(shell for h in $(filter %.h,$(SOURCES)); do \
+ if grep -q Q_OBJECT $$h; then \
+ echo $$h | sed "s/\(.*\)\.h/moc_\1.cpp/"; \
+ fi; \
+ done)
+
+BUILT_SOURCES = $(MOCFILES) $(UIFILES:%.ui=%.h)
+MOSTLYCLEANFILES = $(MOCFILES) $(UIFILES:%.ui=%.h)
+SUFFIXES = .ui .h.gch
+noinst_LIBRARIES = libmarker.a
+dist_libmarker_a_SOURCES = \
+ marker.cpp marker.h \
+ markerview.cpp markerview.h
+
+nodist_libmarker_a_SOURCES = \
+ moc_markerview.cpp
+
+all: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) all-am
+
+.SUFFIXES:
+.SUFFIXES: .ui .h.gch .cpp .lo .o .obj
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/common.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu muse/marker/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu muse/marker/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+clean-noinstLIBRARIES:
+ -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
+libmarker.a: $(libmarker_a_OBJECTS) $(libmarker_a_DEPENDENCIES)
+ -rm -f libmarker.a
+ $(libmarker_a_AR) libmarker.a $(libmarker_a_OBJECTS) $(libmarker_a_LIBADD)
+ $(RANLIB) libmarker.a
+
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT)
+
+distclean-compile:
+ -rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/marker.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/markerview.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/moc_markerview.Po@am__quote@
+
+.cpp.o:
+@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $<
+
+.cpp.obj:
+@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+
+.cpp.lo:
+@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $<
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ mkid -fID $$unique
+tags: TAGS
+
+TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ set x; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: CTAGS
+CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) check-am
+all-am: Makefile $(LIBRARIES)
+installdirs:
+install: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+ -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES)
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+ -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
+clean: clean-am
+
+clean-am: clean-generic clean-libtool clean-noinstLIBRARIES \
+ mostlyclean-am
+
+distclean: distclean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+ distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+ mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: all check install install-am install-strip
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
+ clean-libtool clean-noinstLIBRARIES ctags distclean \
+ distclean-compile distclean-generic distclean-libtool \
+ distclean-tags distdir dvi dvi-am html html-am info info-am \
+ install install-am install-data install-data-am install-dvi \
+ install-dvi-am install-exec install-exec-am install-html \
+ install-html-am install-info install-info-am install-man \
+ install-pdf install-pdf-am install-ps install-ps-am \
+ install-strip installcheck installcheck-am installdirs \
+ maintainer-clean maintainer-clean-generic mostlyclean \
+ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
+ pdf pdf-am ps ps-am tags uninstall uninstall-am
+
+
+de:
+ @for base in $(MOCFILES); do echo -e "\t$${base}.cpp $${base}.h \\"; done
+
+nde:
+ @for base in $(MOCFILES); do echo -e "\tmoc_$${base}.cpp \\"; done
+
+.ui.o: %.h
+ $(UIC) -L $(top_srcdir)/muse/widgets -o $*.cpp -impl $*.h $*.ui
+ $(MOC) $*.h >> $*.cpp
+ $(CXXCOMPILE) -c $*.cpp -o $*.o
+ $(RM) $*.cpp moc_$*.cpp moc_$*.o
+
+.ui.lo: %.h
+ $(UIC) -L $(top_srcdir)/muse/widgets -o $*.cpp -impl $*.h $*.ui
+ $(MOC) $*.h >> $*.cpp
+ $(LTCXXCOMPILE) -c $*.cpp -o $*.lo
+ $(RM) $*.cpp moc_$*.cpp moc_$*.lo moc_$*.o
+
+moc_%.cpp: %.h
+ $(MOC) $< -o $@
+
+%.h: %.ui
+ $(UIC) -o $@ $<
+# $(UIC) -L $(top_srcdir)/muse/widgets -o $@ $<
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/muse2/muse/marker/marker.cpp b/muse2/muse/marker/marker.cpp
new file mode 100644
index 00000000..eee0be02
--- /dev/null
+++ b/muse2/muse/marker/marker.cpp
@@ -0,0 +1,90 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: marker.cpp,v 1.2 2003/12/10 18:34:22 wschweer Exp $
+// (C) Copyright 2000 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include "marker.h"
+#include "xml.h"
+
+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, int t, bool lck)
+ {
+ Marker marker(s);
+ marker.setType(lck ? Pos::FRAMES : Pos::TICKS);
+ marker.setTick(t);
+ iMarker i = insert(std::pair<const int, Marker> (t, marker));
+ return &i->second;
+ }
+
+//---------------------------------------------------------
+// read
+//---------------------------------------------------------
+
+void Marker::read(Xml& xml)
+ {
+ 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("Marker");
+ break;
+ case Xml::Attribut:
+ if (tag == "tick")
+ setTick(xml.s2().toInt());
+ else if (tag == "lock")
+ setType(xml.s2().toInt() ? FRAMES:TICKS);
+ else if (tag == "name")
+ {
+ _name = xml.s2();
+ }
+ break;
+ case Xml::TagEnd:
+ if (xml.s1() == "marker")
+ return;
+ default:
+ break;
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// write
+//---------------------------------------------------------
+
+void MarkerList::write(int level, Xml& xml) const
+ {
+ for (ciMarker i = begin(); i != end(); ++i) {
+ const Marker& m = i->second;
+ xml.put(level, "<marker tick=\"%d\" lock=\"%d\" name=\"%s\" />",
+ //m.tick(), m.type()==Pos::FRAMES, m.name().latin1());
+ m.tick(), m.type()==Pos::FRAMES, Xml::xmlString(m.name()).latin1());
+ }
+ }
+
+//---------------------------------------------------------
+// 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/muse2/muse/marker/marker.h b/muse2/muse/marker/marker.h
new file mode 100644
index 00000000..a00e1fc6
--- /dev/null
+++ b/muse2/muse/marker/marker.h
@@ -0,0 +1,51 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: marker.h,v 1.2 2003/12/15 11:41:00 wschweer Exp $
+// (C) Copyright 2000 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __MARKER_H__
+#define __MARKER_H__
+
+#include <map>
+#include <qstring.h>
+#include "xml.h"
+#include "pos.h"
+
+//---------------------------------------------------------
+// Marker
+//---------------------------------------------------------
+
+class Marker : public Pos {
+ QString _name;
+ bool _current;
+
+ public:
+ Marker() : _current(false) {}
+ Marker(const QString& s, bool cur = false)
+ : _name(s), _current(cur) {}
+ void read(Xml&);
+ 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, int t, bool lck);
+ void write(int, 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;
+
+#endif
+
diff --git a/muse2/muse/marker/markerview.cpp b/muse2/muse/marker/markerview.cpp
new file mode 100644
index 00000000..39885ec7
--- /dev/null
+++ b/muse2/muse/marker/markerview.cpp
@@ -0,0 +1,597 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: markerview.cpp,v 1.7.2.6 2009/08/25 20:28:45 spamatica Exp $
+// (C) Copyright 2000 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include "marker.h"
+#include "markerview.h"
+#include "xml.h"
+#include "globals.h"
+#include "sync.h"
+#include "icons.h"
+#include "song.h"
+#include "posedit.h"
+
+#include <q3toolbar.h>
+#include <qtoolbutton.h>
+#include <qtooltip.h>
+#include <qlayout.h>
+#include <qsizegrip.h>
+#include <q3popupmenu.h>
+#include <qmenubar.h>
+#include <qaction.h>
+#include <q3groupbox.h>
+#include <qlineedit.h>
+#include <Qt3Support>
+//Added by qt3to4:
+#include <QCloseEvent>
+#include <Q3VBoxLayout>
+
+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() == Pos::FRAMES;
+ }
+
+//---------------------------------------------------------
+// MarkerItem
+//---------------------------------------------------------
+
+MarkerItem::MarkerItem(Q3ListView* parent, Marker* m)
+ : Q3ListViewItem(parent)
+ {
+ _marker = m;
+ setText(COL_NAME, m->name());
+ setTick(m->tick());
+ if (m->type() == Pos::FRAMES)
+ setPixmap(COL_LOCK, *lockIcon);
+ setLock(m->type() == Pos::FRAMES);
+ }
+
+//---------------------------------------------------------
+// setName
+//---------------------------------------------------------
+
+void MarkerItem::setName(const QString& s)
+ {
+ setText(COL_NAME, s);
+ _marker = song->setMarkerName(_marker, s);
+ }
+
+//---------------------------------------------------------
+// setLock
+//---------------------------------------------------------
+
+void MarkerItem::setLock(bool lck)
+ {
+ setPixmap(COL_LOCK, lck ? *lockIcon : 0);
+ _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;
+ unsigned tick;
+ sigmap.tickValues(v, &bar, &beat, &tick);
+ s.sprintf("%04d.%02d.%03d", bar+1, beat+1, tick);
+ setText(COL_TICK, s);
+
+ double time = double(tempomap.tick2frame(v))/double(sampleRate);
+ int hour = int(time) / 3600;
+ int min = (int(time) % 3600)/60;
+ int sec = int(time) % 60;
+ double rest = time - (hour*3600 + 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);
+ s.sprintf("%02d:%02d:%02d:%02d:%02d",
+ hour, min, sec, frame, subframe);
+ setText(COL_SMPTE, s);
+ }
+
+//---------------------------------------------------------
+// closeEvent
+//---------------------------------------------------------
+
+void MarkerView::closeEvent(QCloseEvent* e)
+ {
+ emit deleted((unsigned long)this);
+ emit closed();
+ e->accept();
+ }
+
+//---------------------------------------------------------
+// MarkerView
+//---------------------------------------------------------
+
+MarkerView::MarkerView(QWidget* parent)
+ : TopWin(parent, "markerview", Qt::WType_TopLevel /*| WDestructiveClose*/)
+ {
+ setCaption(tr("MusE: Marker"));
+
+ //---------Actions----------------------------
+ Q3Action* markerAdd = new Q3Action(tr("add marker"),
+ QIcon(*flagIcon), tr("Add Marker"),
+ 0, this, "add marker");
+ connect(markerAdd, SIGNAL(activated()), SLOT(addMarker()));
+
+ Q3Action* markerDelete = new Q3Action(tr("delete marker"),
+ QIcon(*deleteIcon), tr("Delete Marker"),
+ 0, this, "delete marker");
+ connect(markerDelete, SIGNAL(activated()), SLOT(deleteMarker()));
+
+ //---------Pulldown Menu----------------------------
+ Q3PopupMenu* fileMenu = new Q3PopupMenu(this);
+ menuBar()->insertItem(tr("&File"), fileMenu);
+ Q3PopupMenu* editMenu = new Q3PopupMenu(this);
+ menuBar()->insertItem(tr("&Edit"), editMenu);
+ markerAdd->addTo(editMenu);
+ markerDelete->addTo(editMenu);
+
+ //---------ToolBar----------------------------------
+ tools = new Q3ToolBar(this, "marker-tools");
+ undoRedo->addTo(tools);
+
+ Q3ToolBar* edit = new Q3ToolBar(this, "edit tools");
+ markerAdd->addTo(edit);
+ markerDelete->addTo(edit);
+
+ //---------------------------------------------------
+ // master
+ //---------------------------------------------------
+
+ QWidget* w = new QWidget(this, "main");
+ setCentralWidget(w);
+ Q3VBoxLayout* vbox = new Q3VBoxLayout(w);
+
+ table = new Q3ListView(w);
+ table->setAllColumnsShowFocus(true);
+ table->setSelectionMode(Q3ListView::Single);
+ table->setSorting(COL_TICK, true);
+
+ table->addColumn(tr("Bar:Beat:Tick"));
+ table->addColumn(tr("Hr:Mn:Sc:Fr:Sf"));
+ table->addColumn(tr("Lock"));
+ table->addColumn(tr("Text"));
+ table->setColumnWidth(3, 200);
+ table->setColumnWidthMode(3, Q3ListView::Maximum);
+ connect(table, SIGNAL(selectionChanged()),
+ SLOT(markerSelectionChanged()));
+ connect(table, SIGNAL(clicked(Q3ListViewItem*)),
+ SLOT(clicked(Q3ListViewItem*)));
+
+ Q3GroupBox* props = new Q3GroupBox(4, Qt::Horizontal, tr("Marker Properties"), w);
+
+ editTick = new PosEdit(props);
+ editTick->setSizePolicy(QSizePolicy(QSizePolicy::Fixed,
+ QSizePolicy::Fixed));
+
+ editSMPTE = new PosEdit(props);
+ editSMPTE->setSmpte(true);
+ editSMPTE->setSizePolicy(QSizePolicy(QSizePolicy::Fixed,
+ QSizePolicy::Fixed));
+
+ lock = new QToolButton(props);
+ lock->setPixmap(*lockIcon);
+ lock->setToggleButton(true);
+
+ editName = new QLineEdit(props);
+ 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()));
+ connect(song, SIGNAL(songChanged(int)), SLOT(songChanged(int)));
+
+ updateList();
+
+ // work around for probable QT/WM interaction bug.
+ // for certain window managers, e.g xfce, this window is
+ // is displayed although not specifically set to show();
+ // bug: 2811156 Softsynth GUI unclosable with XFCE4 (and a few others)
+ show();
+ hide();
+
+ }
+
+//---------------------------------------------------------
+// MArkerView
+//---------------------------------------------------------
+
+MarkerView::~MarkerView()
+ {
+ // p3.3.47
+ //printf("MarkerView::~MarkerView() before undoRedo->removeFrom(tools)\n");
+
+ undoRedo->removeFrom(tools);
+ }
+
+//---------------------------------------------------------
+// readStatus
+//---------------------------------------------------------
+
+void MarkerView::readStatus(Xml& xml)
+ {
+ for (;;) {
+ Xml::Token token = xml.parse();
+ const QString& tag = xml.s1();
+ if (token == Xml::Error || token == Xml::End)
+ break;
+ switch (token) {
+ case Xml::TagStart:
+ xml.unknown("Marker");
+ break;
+ case Xml::TagEnd:
+ if (tag == "marker")
+ return;
+ default:
+ break;
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// writeStatus
+//---------------------------------------------------------
+
+void MarkerView::writeStatus(int level, Xml& xml) const
+ {
+ xml.tag(level++, "marker");
+ xml.tag(level, "/marker");
+ }
+
+//---------------------------------------------------------
+// addMarker
+//---------------------------------------------------------
+void MarkerView::addMarker()
+ {
+ addMarker(-1);
+ }
+void MarkerView::addMarker(int i)
+ {
+ if( i==-1 ) i = song->cpos();
+
+ // Changed p3.3.43 Let Song::addMarker emit markerChanged(MARKER_ADD)
+ // and handle it in MarkerView::markerChanged(int)
+ //Marker* m = song->addMarker(QString(""), i, false);
+ //MarkerItem* newItem = new MarkerItem(table, m);
+ //table->setSelected(newItem, true);
+ //
+ song->addMarker(QString(""), i, false);
+ }
+
+//---------------------------------------------------------
+// deleteMarker
+//---------------------------------------------------------
+
+void MarkerView::deleteMarker()
+ {
+ MarkerItem* item = (MarkerItem*)table->selectedItem();
+ if (item) {
+ song->removeMarker(item->marker());
+
+ // Removed p3.3.43 Let Song::removeMarker emit markerChanged(MARKER_REMOVE)
+ // and handle it in MarkerView::markerChanged(int)
+ //delete item;
+ }
+ }
+
+//---------------------------------------------------------
+// songChanged
+//---------------------------------------------------------
+
+void MarkerView::songChanged(int flags)
+{
+ // Is it simply a midi controller value adjustment? Forget it.
+ if(flags == SC_MIDI_CONTROLLER)
+ return;
+
+ updateList();
+}
+
+//---------------------------------------------------------
+// updateList
+//---------------------------------------------------------
+
+void MarkerView::updateList()
+{
+ // Added p3.3.43 Manage selected item, due to clearing of table...
+ MarkerList* marker = song->marker();
+ MarkerItem* selitem = (MarkerItem*)table->selectedItem();
+ Marker* selm = selitem ? selitem->marker() : 0;
+ // p3.3.44 Look for removed markers before added markers...
+ if(selitem)
+ {
+ MarkerItem* mitem = (MarkerItem*)table->firstChild();
+ while(mitem)
+ {
+ bool found = false;
+ for(iMarker i = marker->begin(); i != marker->end(); ++i)
+ {
+ Marker* m = &i->second;
+ if(m == mitem->marker())
+ {
+ found = true;
+ break;
+ }
+ }
+ // Anything removed from the marker list?
+ if(!found)
+ {
+ // If it is the current selected item, it no longer exists. Make the next item be selected.
+ if(mitem == selitem)
+ {
+ MarkerItem* mi = (MarkerItem*)selitem->nextSibling();
+ if(mi)
+ {
+ selitem = mi;
+ selm = selitem->marker();
+ }
+ }
+ }
+ mitem = (MarkerItem*)mitem->nextSibling();
+ }
+ }
+ // Look for added markers...
+ for(iMarker i = marker->begin(); i != marker->end(); ++i)
+ {
+ Marker* m = &i->second;
+ bool found = false;
+ MarkerItem* item = (MarkerItem*)table->firstChild();
+ while(item)
+ {
+ if(item->marker() == m)
+ {
+ found = true;
+ break;
+ }
+ item = (MarkerItem*)item->nextSibling();
+ }
+ // Anything new found in the marker list?
+ if(!found)
+ selm = m;
+ }
+
+ table->clear();
+ //MarkerList* marker = song->marker();
+ for (iMarker i = marker->begin(); i != marker->end(); ++i)
+ {
+ Marker* m = &i->second;
+
+ // Changed p3.3.43
+ //QString tick;
+ //tick.setNum(i->first);
+ //new MarkerItem(table, m);
+ MarkerItem* item = new MarkerItem(table, m);
+ if(m == selm)
+ {
+ m->setCurrent(true);
+ table->setSelected(item, true);
+ }
+ else
+ {
+ m->setCurrent(false);
+ }
+ }
+}
+
+//---------------------------------------------------------
+// markerSelected
+//---------------------------------------------------------
+
+void MarkerView::markerSelectionChanged()
+ {
+ MarkerItem* item = (MarkerItem*)table->selectedItem();
+ if (item == 0) { // never triggered
+ editTick->setValue(0);
+ editSMPTE->setValue(0);
+ editName->setText(QString(""));
+ lock->setOn(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->setOn(item->lock());
+ lock->setEnabled(true);
+
+ //printf("MarkerView::markerSelectionChanged item->lock:%d\n", item->lock());
+
+ editSMPTE->setEnabled(item->lock());
+ editTick->setEnabled(!item->lock());
+ }
+ }
+
+void MarkerView::clicked(Q3ListViewItem* i)
+ {
+ MarkerItem* item = (MarkerItem*)i;
+ if (item == 0) {
+ table->clearSelection();
+ return;
+ }
+ Pos p(item->tick(), true);
+ song->setPos(0, p, true, true, false);
+ }
+
+//---------------------------------------------------------
+// nameChanged
+//---------------------------------------------------------
+
+void MarkerView::nameChanged(const QString& s)
+ {
+ MarkerItem* item = (MarkerItem*)table->selectedItem();
+ if (item)
+ item->setName(s);
+ }
+
+//---------------------------------------------------------
+// tickChanged
+//---------------------------------------------------------
+
+void MarkerView::tickChanged(const Pos& pos)
+ {
+ MarkerItem* item = (MarkerItem*)table->selectedItem();
+ if (item) {
+ item->setTick(pos.tick());
+ Pos p(pos.tick(), true);
+ song->setPos(0, p, true, true, false);
+ table->sort();
+ }
+ }
+
+//---------------------------------------------------------
+// lockChanged
+//---------------------------------------------------------
+
+void MarkerView::lockChanged(bool lck)
+ {
+ MarkerItem* item = (MarkerItem*)table->selectedItem();
+ if (item) {
+ item->setLock(lck);
+ editSMPTE->setEnabled(item->lock());
+ editTick->setEnabled(!item->lock());
+ }
+ }
+
+//---------------------------------------------------------
+// posChanged
+// select appropriate Marker
+//---------------------------------------------------------
+
+void MarkerView::markerChanged(int val)
+{
+ //if (val != Song::MARKER_CUR)
+ // return;
+ // p3.3.43
+ switch(val)
+ {
+ // MARKER_CUR, MARKER_ADD, MARKER_REMOVE, MARKER_NAME,
+ // MARKER_TICK, MARKER_LOCK
+ case Song::MARKER_ADD:
+ case Song::MARKER_REMOVE:
+ updateList();
+ break; // Try falling through and let it try to select something. No, let updateList() do it...
+
+ case Song::MARKER_CUR:
+ {
+
+ MarkerList* marker = song->marker();
+ for (iMarker i = marker->begin(); i != marker->end(); ++i) {
+ if (i->second.current()) {
+ MarkerItem* item = (MarkerItem*)table->firstChild();
+ while (item) {
+ if (item->marker() == &i->second) {
+ table->setSelected(item, true);
+ return;
+ }
+ item = (MarkerItem*)item->nextSibling();
+ }
+ }
+ }
+ }
+ break;
+
+ default:
+ break;
+ }
+}
+
+void MarkerView::nextMarker()
+ {
+ unsigned int curPos = song->cpos();//prevent compiler warning: comparison of sigend/unsigned
+ unsigned int nextPos = 0xFFFFFFFF;
+ MarkerList* marker = song->marker();
+ for (iMarker i = marker->begin(); i != marker->end(); ++i) {
+ if (i->second.tick() > curPos && i->second.tick() < nextPos)
+ nextPos = i->second.tick();
+ }
+ if (nextPos == 0xFFFFFFFF)
+ return;
+ Pos p(nextPos, true);
+ song->setPos(0, p, true, true, false);
+
+ }
+void MarkerView::prevMarker()
+ {
+ unsigned int curPos = song->cpos();//prevent compiler warning: comparison of sigend/unsigned
+ unsigned int nextPos = 0;
+ MarkerList* marker = song->marker();
+ for (iMarker i = marker->begin(); i != marker->end(); ++i) {
+ if (i->second.tick() < curPos && i->second.tick() > nextPos)
+ nextPos = i->second.tick();
+ }
+/* if (nextPos == 0)
+ return;*/
+ Pos p(nextPos, true);
+ song->setPos(0, p, true, true, false);
+ }
diff --git a/muse2/muse/marker/markerview.h b/muse2/muse/marker/markerview.h
new file mode 100644
index 00000000..b9f5a85d
--- /dev/null
+++ b/muse2/muse/marker/markerview.h
@@ -0,0 +1,84 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: markerview.h,v 1.4.2.3 2008/08/18 00:15:25 terminator356 Exp $
+// (C) Copyright 2000 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __MARKERVIEW_H__
+#define __MARKERVIEW_H__
+
+#include "cobject.h"
+#include <q3mainwindow.h>
+#include <q3listview.h>
+//Added by qt3to4:
+#include <QCloseEvent>
+
+class QLineEdit;
+class PosEdit;
+class QToolButton;
+class Marker;
+class Q3ToolBar;
+class Pos;
+
+//---------------------------------------------------------
+// MarkerItem
+//---------------------------------------------------------
+
+class MarkerItem : public Q3ListViewItem {
+ Marker* _marker;
+
+ public:
+ MarkerItem(Q3ListView* parent, Marker* m);
+ 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 {
+ Q3ListView* table;
+ QLineEdit* editName;
+ PosEdit* editSMPTE;
+ PosEdit* editTick;
+ QToolButton* lock;
+ Q3ToolBar* tools;
+
+ Q_OBJECT
+ virtual void closeEvent(QCloseEvent*);
+
+ private slots:
+ void addMarker();
+ void addMarker(int);
+ void deleteMarker();
+ void markerSelectionChanged();
+ void nameChanged(const QString&);
+ void tickChanged(const Pos&);
+ void lockChanged(bool);
+ void markerChanged(int);
+ void clicked(Q3ListViewItem*);
+ void updateList();
+ void songChanged(int);
+
+ signals:
+ void deleted(unsigned long);
+ void closed();
+
+ public:
+ MarkerView(QWidget* parent);
+ ~MarkerView();
+ virtual void readStatus(Xml&);
+ virtual void writeStatus(int, Xml&) const;
+ void nextMarker();
+ void prevMarker();
+ };
+
+#endif
+
diff --git a/muse2/muse/master/Makefile.am b/muse2/muse/master/Makefile.am
new file mode 100644
index 00000000..55222bd4
--- /dev/null
+++ b/muse2/muse/master/Makefile.am
@@ -0,0 +1,19 @@
+include $(top_srcdir)/common.am
+
+if PCH
+AM_CXXFLAGS += -include $(top_srcdir)/all.h
+endif
+
+noinst_LIBRARIES = libmaster.a
+
+dist_libmaster_a_SOURCES = \
+ lmaster.cpp lmaster.h \
+ masteredit.cpp masteredit.h \
+ master.cpp master.h \
+ tscale.cpp tscale.h
+
+nodist_libmaster_a_SOURCES = \
+ moc_lmaster.cpp \
+ moc_masteredit.cpp \
+ moc_master.cpp \
+ moc_tscale.cpp
diff --git a/muse2/muse/master/Makefile.in b/muse2/muse/master/Makefile.in
new file mode 100644
index 00000000..19449168
--- /dev/null
+++ b/muse2/muse/master/Makefile.in
@@ -0,0 +1,609 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
+ $(top_srcdir)/common.am
+@PCH_TRUE@am__append_1 = -include $(top_srcdir)/all.h
+subdir = muse/master
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal-include.m4 \
+ $(top_srcdir)/m4/alsa.m4 $(top_srcdir)/m4/docbook.m4 \
+ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
+ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
+ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+LIBRARIES = $(noinst_LIBRARIES)
+ARFLAGS = cru
+libmaster_a_AR = $(AR) $(ARFLAGS)
+libmaster_a_LIBADD =
+dist_libmaster_a_OBJECTS = lmaster.$(OBJEXT) masteredit.$(OBJEXT) \
+ master.$(OBJEXT) tscale.$(OBJEXT)
+nodist_libmaster_a_OBJECTS = moc_lmaster.$(OBJEXT) \
+ moc_masteredit.$(OBJEXT) moc_master.$(OBJEXT) \
+ moc_tscale.$(OBJEXT)
+libmaster_a_OBJECTS = $(dist_libmaster_a_OBJECTS) \
+ $(nodist_libmaster_a_OBJECTS)
+DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
+depcomp = $(SHELL) $(top_srcdir)/depcomp
+am__depfiles_maybe = depfiles
+am__mv = mv -f
+CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
+LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
+CXXLD = $(CXX)
+CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \
+ $(LDFLAGS) -o $@
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
+ $(LDFLAGS) -o $@
+SOURCES = $(dist_libmaster_a_SOURCES) $(nodist_libmaster_a_SOURCES)
+DIST_SOURCES = $(dist_libmaster_a_SOURCES)
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ALSA_CFLAGS = @ALSA_CFLAGS@
+ALSA_LIBS = @ALSA_LIBS@
+AMTAR = @AMTAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DOCBOOKSTYLE = @DOCBOOKSTYLE@
+DOCBOOKTARGETS = @DOCBOOKTARGETS@
+DOT = @DOT@
+DOTPATH = @DOTPATH@
+DOXYGEN = @DOXYGEN@
+DOXYGEN_TREEVIEW = @DOXYGEN_TREEVIEW@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+FLUIDSYNTHDIRS = @FLUIDSYNTHDIRS@
+FST_CFLAGS = @FST_CFLAGS@
+FST_LIBS = @FST_LIBS@
+Fluidsynth_CFLAGS = @Fluidsynth_CFLAGS@
+Fluidsynth_LIBS = @Fluidsynth_LIBS@
+GIVERTCAP = @GIVERTCAP@
+GREP = @GREP@
+HAVEDOT = @HAVEDOT@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JACK_CFLAGS = @JACK_CFLAGS@
+JACK_LIBS = @JACK_LIBS@
+JADE = @JADE@
+LASH_CFLAGS = @LASH_CFLAGS@
+LASH_LIBS = @LASH_LIBS@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LO_CFLAGS = @LO_CFLAGS@
+LO_LIBS = @LO_LIBS@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+MUSECXXFLAGS = @MUSECXXFLAGS@
+NM = @NM@
+NMEDIT = @NMEDIT@
+NSGMLS = @NSGMLS@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PCH = @PCH@
+PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+PYTHON = @PYTHON@
+PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
+PYTHON_INCLUDES = @PYTHON_INCLUDES@
+PYTHON_LIB = @PYTHON_LIB@
+PYTHON_PLATFORM = @PYTHON_PLATFORM@
+PYTHON_PREFIX = @PYTHON_PREFIX@
+PYTHON_VERSION = @PYTHON_VERSION@
+QTDIR_BIN = @QTDIR_BIN@
+QTDIR_INC = @QTDIR_INC@
+QT_LIBS = @QT_LIBS@
+RANLIB = @RANLIB@
+SAMPLERATE_CFLAGS = @SAMPLERATE_CFLAGS@
+SAMPLERATE_LIBS = @SAMPLERATE_LIBS@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SNDFILE_CFLAGS = @SNDFILE_CFLAGS@
+SNDFILE_LIBS = @SNDFILE_LIBS@
+STRIP = @STRIP@
+SUIDBUILD = @SUIDBUILD@
+SUIDINSTALL = @SUIDINSTALL@
+USE_SSE = @USE_SSE@
+UUID_CFLAGS = @UUID_CFLAGS@
+UUID_LIBS = @UUID_LIBS@
+VERSION = @VERSION@
+XMKMF = @XMKMF@
+X_CFLAGS = @X_CFLAGS@
+X_EXTRA_LIBS = @X_EXTRA_LIBS@
+X_LIBS = @X_LIBS@
+X_PRE_LIBS = @X_PRE_LIBS@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+have_docbook = @have_docbook@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+lt_ECHO = @lt_ECHO@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+pkgpyexecdir = @pkgpyexecdir@
+pkgpythondir = @pkgpythondir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+pyexecdir = @pyexecdir@
+pythondir = @pythondir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+synth_fluid = @synth_fluid@
+synth_fluidsynth = @synth_fluidsynth@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+AM_CXXFLAGS = $(MUSECXXFLAGS) -I.. -I$(top_srcdir)/synti \
+ -I$(top_srcdir)/muse/widgets -DQT_SHARED -DQT_THREAD_SUPPORT \
+ -DQT_PLUGIN $(QTDIR_INC) -DQT3_SUPPORT $(am__append_1)
+AM_CPPFLAGS =
+MOC = $(QTDIR_BIN)/moc
+#UIC = $(QTDIR_BIN)/uic3
+UIC = /usr/bin/uic3
+UIFILES = $(wildcard *.ui)
+MOCFILES = $(shell for h in $(filter %.h,$(SOURCES)); do \
+ if grep -q Q_OBJECT $$h; then \
+ echo $$h | sed "s/\(.*\)\.h/moc_\1.cpp/"; \
+ fi; \
+ done)
+
+BUILT_SOURCES = $(MOCFILES) $(UIFILES:%.ui=%.h)
+MOSTLYCLEANFILES = $(MOCFILES) $(UIFILES:%.ui=%.h)
+SUFFIXES = .ui .h.gch
+noinst_LIBRARIES = libmaster.a
+dist_libmaster_a_SOURCES = \
+ lmaster.cpp lmaster.h \
+ masteredit.cpp masteredit.h \
+ master.cpp master.h \
+ tscale.cpp tscale.h
+
+nodist_libmaster_a_SOURCES = \
+ moc_lmaster.cpp \
+ moc_masteredit.cpp \
+ moc_master.cpp \
+ moc_tscale.cpp
+
+all: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) all-am
+
+.SUFFIXES:
+.SUFFIXES: .ui .h.gch .cpp .lo .o .obj
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/common.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu muse/master/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu muse/master/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+clean-noinstLIBRARIES:
+ -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
+libmaster.a: $(libmaster_a_OBJECTS) $(libmaster_a_DEPENDENCIES)
+ -rm -f libmaster.a
+ $(libmaster_a_AR) libmaster.a $(libmaster_a_OBJECTS) $(libmaster_a_LIBADD)
+ $(RANLIB) libmaster.a
+
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT)
+
+distclean-compile:
+ -rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lmaster.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/master.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/masteredit.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/moc_lmaster.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/moc_master.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/moc_masteredit.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/moc_tscale.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tscale.Po@am__quote@
+
+.cpp.o:
+@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $<
+
+.cpp.obj:
+@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+
+.cpp.lo:
+@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $<
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ mkid -fID $$unique
+tags: TAGS
+
+TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ set x; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: CTAGS
+CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) check-am
+all-am: Makefile $(LIBRARIES)
+installdirs:
+install: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+ -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES)
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+ -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
+clean: clean-am
+
+clean-am: clean-generic clean-libtool clean-noinstLIBRARIES \
+ mostlyclean-am
+
+distclean: distclean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+ distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+ mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: all check install install-am install-strip
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
+ clean-libtool clean-noinstLIBRARIES ctags distclean \
+ distclean-compile distclean-generic distclean-libtool \
+ distclean-tags distdir dvi dvi-am html html-am info info-am \
+ install install-am install-data install-data-am install-dvi \
+ install-dvi-am install-exec install-exec-am install-html \
+ install-html-am install-info install-info-am install-man \
+ install-pdf install-pdf-am install-ps install-ps-am \
+ install-strip installcheck installcheck-am installdirs \
+ maintainer-clean maintainer-clean-generic mostlyclean \
+ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
+ pdf pdf-am ps ps-am tags uninstall uninstall-am
+
+
+de:
+ @for base in $(MOCFILES); do echo -e "\t$${base}.cpp $${base}.h \\"; done
+
+nde:
+ @for base in $(MOCFILES); do echo -e "\tmoc_$${base}.cpp \\"; done
+
+.ui.o: %.h
+ $(UIC) -L $(top_srcdir)/muse/widgets -o $*.cpp -impl $*.h $*.ui
+ $(MOC) $*.h >> $*.cpp
+ $(CXXCOMPILE) -c $*.cpp -o $*.o
+ $(RM) $*.cpp moc_$*.cpp moc_$*.o
+
+.ui.lo: %.h
+ $(UIC) -L $(top_srcdir)/muse/widgets -o $*.cpp -impl $*.h $*.ui
+ $(MOC) $*.h >> $*.cpp
+ $(LTCXXCOMPILE) -c $*.cpp -o $*.lo
+ $(RM) $*.cpp moc_$*.cpp moc_$*.lo moc_$*.o
+
+moc_%.cpp: %.h
+ $(MOC) $< -o $@
+
+%.h: %.ui
+ $(UIC) -o $@ $<
+# $(UIC) -L $(top_srcdir)/muse/widgets -o $@ $<
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/muse2/muse/master/lmaster.cpp b/muse2/muse/master/lmaster.cpp
new file mode 100644
index 00000000..0638049e
--- /dev/null
+++ b/muse2/muse/master/lmaster.cpp
@@ -0,0 +1,715 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: lmaster.cpp,v 1.2.2.8 2009/03/09 02:05:18 terminator356 Exp $
+// (C) Copyright 2000 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include "lmaster.h"
+#include "xml.h"
+#include "song.h"
+#include "globals.h"
+#include "audio.h"
+#include "posedit.h"
+#include "sigedit.h"
+#include "shortcuts.h"
+#include "debug.h"
+
+#include <q3toolbar.h>
+#include <qtoolbutton.h>
+#include <qtooltip.h>
+#include <qlayout.h>
+#include <qsizegrip.h>
+#include <q3popupmenu.h>
+#include <qmenubar.h>
+#include <q3listview.h>
+#include <qmessagebox.h>
+#include <qstyle.h>
+#include <q3accel.h>
+#include <qaction.h>
+//Added by qt3to4:
+#include <QCloseEvent>
+
+#define LMASTER_BEAT_COL 0
+#define LMASTER_TIME_COL 1
+#define LMASTER_TYPE_COL 2
+#define LMASTER_VAL_COL 3
+
+#define LMASTER_MSGBOX_STRING "MusE: List Editor"
+//---------------------------------------------------------
+// closeEvent
+//---------------------------------------------------------
+
+void LMaster::closeEvent(QCloseEvent* e)
+ {
+ emit deleted((unsigned long)this);
+ e->accept();
+ }
+
+//---------------------------------------------------------
+// songChanged
+//---------------------------------------------------------
+
+void LMaster::songChanged(int type)
+ {
+ if (type & (SC_SIG | SC_TEMPO))
+ updateList();
+ }
+
+//---------------------------------------------------------
+// LMaster
+//---------------------------------------------------------
+
+LMaster::LMaster()
+ : MidiEditor(0, 0, 0)
+ {
+ pos_editor = 0;
+ editor = 0;
+ sig_editor = 0;
+ editedItem = 0;
+ editingNewItem = false;
+ setCaption(tr("MusE: Mastertrack"));
+ setMinimumHeight(100);
+ setFixedWidth(400);
+
+ //---------Pulldown Menu----------------------------
+ menuEdit = new Q3PopupMenu(this);
+ menuBar()->insertItem(tr("&Edit"), menuEdit);
+ undoRedo->addTo(menuEdit);
+ menuEdit->insertSeparator();
+ menuEdit->insertItem(tr("Insert Tempo"), CMD_INSERT_TEMPO);
+ menuEdit->insertItem(tr("Insert Signature"), CMD_INSERT_SIG);
+ menuEdit->insertItem(tr("Edit Positon"), CMD_EDIT_BEAT);
+ menuEdit->insertItem(tr("Edit Value"), CMD_EDIT_VALUE);
+
+ menuEdit->insertItem(tr("Delete Event"), CMD_DELETE);
+ menuEdit->setAccel(Qt::Key_Delete, CMD_DELETE);
+
+ connect(menuEdit, SIGNAL(activated(int)), SLOT(cmd(int)));
+
+ //---------ToolBar----------------------------------
+ tools = new Q3ToolBar(this, "list-tools");
+ undoRedo->addTo(tools);
+
+ Q3ToolBar* edit = new Q3ToolBar(this, "edit tools");
+ QToolButton* tempoButton = new QToolButton(edit);
+ QToolButton* timeSigButton = new QToolButton(edit);
+ tempoButton->setText(tr("Tempo"));
+ timeSigButton->setText(tr("Timesig"));
+ QToolTip::add(tempoButton, tr("new tempo"));
+ QToolTip::add(timeSigButton, tr("new signature"));
+ Q3Accel* qa = new Q3Accel(this);
+ qa->connectItem(qa->insertItem(Qt::CTRL+Qt::Key_Z), song, SLOT(undo()));
+ qa->connectItem(qa->insertItem(Qt::CTRL+Qt::Key_Y), song, SLOT(redo()));
+
+ //---------------------------------------------------
+ // master
+ //---------------------------------------------------
+
+ view = new Q3ListView(mainw);
+ view->setAllColumnsShowFocus(true);
+ view->setSelectionMode(Q3ListView::Single);
+ view->addColumn(tr("Meter"), 100);
+ view->addColumn(tr("Time"), 100);
+ view->addColumn(tr("Type"), 100);
+ view->addColumn(tr("Value"), 100);
+ view->setSorting(-1);
+
+ //---------------------------------------------------
+ // Rest
+ //---------------------------------------------------
+
+// QSizeGrip* corner = new QSizeGrip(mainw);
+
+ mainGrid->setRowStretch(0, 100);
+ mainGrid->setColStretch(0, 100);
+
+ mainGrid->addWidget(view, 0, 0);
+// mainGrid->addWidget(corner, 1, 1, AlignBottom | AlignRight);
+ updateList();
+
+ connect(view, SIGNAL(selectionChanged(Q3ListViewItem*)), SLOT(select(Q3ListViewItem*)));
+ connect(view, SIGNAL(pressed(Q3ListViewItem*, const QPoint&, int)), SLOT(itemPressed(Q3ListViewItem*, const QPoint&, int)));
+ connect(view, SIGNAL(doubleClicked(Q3ListViewItem* )), SLOT(itemDoubleClicked(Q3ListViewItem*)));
+ connect(song, SIGNAL(songChanged(int)), SLOT(songChanged(int)));
+ connect(tempoButton, SIGNAL(clicked()), SLOT(tempoButtonClicked()));
+ connect(timeSigButton, SIGNAL(clicked()), SLOT(timeSigButtonClicked()));
+
+ initShortcuts();
+ }
+
+//---------------------------------------------------------
+// ~LMaster
+//---------------------------------------------------------
+
+LMaster::~LMaster()
+ {
+ undoRedo->removeFrom(tools);
+ }
+
+//---------------------------------------------------------
+// insertSig
+//---------------------------------------------------------
+
+void LMaster::insertSig(const SigEvent* ev)
+ {
+ new LMasterSigEventItem(view, ev);
+ }
+
+//---------------------------------------------------------
+// insertTempo
+//---------------------------------------------------------
+
+void LMaster::insertTempo(const TEvent* ev)
+ {
+ new LMasterTempoItem(view, ev);
+ }
+
+//---------------------------------------------------------
+// updateList
+//---------------------------------------------------------
+
+void LMaster::updateList()
+ {
+ LMasterLViewItem* selected = (LMasterLViewItem*) view->selectedItem();
+ LMASTER_LVTYPE type = LMASTER_TEMPO;
+ unsigned tick = 0;
+
+ if (selected) {
+ type = selected->getType();
+ tick = selected->tick();
+ }
+
+ view->clear();
+ const TempoList* t = &tempomap;
+ const SigList* s = &sigmap;
+
+ criTEvent it = t->rbegin();
+ criSigEvent is = s->rbegin();
+ for (;;) {
+ if (it == t->rend()) {
+ while(is != s->rend()) {
+ insertSig(is->second);
+ ++is;
+ }
+ break;
+ }
+ if (is == s->rend()) {
+ while (it != t->rend()) {
+ insertTempo(it->second);
+ ++it;
+ }
+ break;
+ }
+ if (is->second->tick > it->second->tick) {
+ insertSig(is->second);
+ ++is;
+ }
+ else {
+ insertTempo(it->second);
+ ++it;
+ }
+ }
+
+ // Try to reselect the previous selection:
+ if(selected)
+ {
+ LMasterLViewItem* tmp = getItemAtPos(tick, type);
+ if (tmp) {
+ view->clearSelection();
+ view->setSelected(tmp, true);
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// readStatus
+//---------------------------------------------------------
+
+void LMaster::readStatus(Xml& xml)
+ {
+ 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 == "midieditor")
+ MidiEditor::readStatus(xml);
+ else
+ xml.unknown("LMaster");
+ break;
+ case Xml::TagEnd:
+ if (tag == "lmaster")
+ return;
+ default:
+ break;
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// writeStatus
+//---------------------------------------------------------
+
+void LMaster::writeStatus(int level, Xml& xml) const
+ {
+ xml.tag(level++, "lmaster");
+ MidiEditor::writeStatus(level, xml);
+ xml.tag(level, "/lmaster");
+ }
+
+//---------------------------------------------------------
+// select
+//---------------------------------------------------------
+
+void LMaster::select(Q3ListViewItem* /*item*/)
+ {
+// printf("select %x\n", unsigned(item));
+ }
+
+//---------------------------------------------------------
+// cmd
+//---------------------------------------------------------
+
+void LMaster::cmd(int cmd)
+ {
+ switch(cmd) {
+ case CMD_DELETE: {
+ LMasterLViewItem* l = (LMasterLViewItem*) view->selectedItem();
+ if (!l)
+ return;
+ // Delete item:
+ if (l->tick() != 0) {
+ if (l == view->lastItem())
+ view->setSelected(l->itemAbove(), true);
+ else
+ view->setSelected(l->itemBelow(), true);
+
+ switch (l->getType()) {
+ case LMASTER_TEMPO:
+ {
+ LMasterTempoItem* t = (LMasterTempoItem*) l;
+ audio->msgDeleteTempo(t->tick(), t->tempo(), true);
+ break;
+ }
+ case LMASTER_SIGEVENT:
+ {
+ LMasterSigEventItem* s = (LMasterSigEventItem*) l;
+ audio->msgRemoveSig(s->tick(), s->z(), s->n());
+ break;
+ }
+ default:
+ M_ERROR("Default switch statement reached");
+ break;
+ }
+ }
+ break;
+ }
+ case CMD_INSERT_TEMPO:
+ tempoButtonClicked();
+ break;
+ case CMD_INSERT_SIG:
+ timeSigButtonClicked();
+ break;
+ case CMD_EDIT_BEAT:
+ case CMD_EDIT_VALUE:
+ cmd == CMD_EDIT_VALUE ? editorColumn = LMASTER_VAL_COL : editorColumn = LMASTER_BEAT_COL;
+ if (view->selectedItem() && !editedItem) {
+ itemDoubleClicked(view->selectedItem());
+ }
+ break;
+ }
+ }
+
+/*!
+ \fn LMaster::itemPressed(QListViewItem* i, const QPoint& p, int column)
+ */
+void LMaster::itemPressed(Q3ListViewItem* i, const QPoint& /*p*/, int column)
+ {
+ //printf("itemPressed, column: %d\n", column);
+ if (editedItem) {
+ if (editorColumn != column || editedItem != i)
+ returnPressed();
+ }
+ else
+ editorColumn = column;
+ }
+
+//---------------------------------------------------------
+// itemDoubleClicked(QListViewItem* item)
+//! Sets lmaster in edit mode, and opens editor for selected value
+//---------------------------------------------------------
+void LMaster::itemDoubleClicked(Q3ListViewItem* i)
+ {
+ //printf("itemDoubleClicked\n");
+
+ if (!editedItem && editorColumn == LMASTER_VAL_COL) {
+ editedItem = (LMasterLViewItem*) i;
+ QRect itemRect = view->itemRect(editedItem);
+ int x1 = view->columnWidth(LMASTER_BEAT_COL) + view->columnWidth(LMASTER_TIME_COL)
+ + view->columnWidth(LMASTER_TYPE_COL);
+ itemRect.setX(x1);
+ //Qt makes crazy things with itemRect if this is called directly..
+ if (editingNewItem) {
+ QFontMetrics fm(font());
+ int fw = style()->pixelMetric(QStyle::PM_DefaultFrameWidth,0 , this); // ddskrjo 0
+ int h = fm.height() + fw * 2;
+ itemRect.setWidth(view->columnWidth(LMASTER_VAL_COL));
+ itemRect.setY(1);
+ itemRect.setHeight(h);
+ }
+
+
+ // Edit tempo value:
+ if (editedItem->getType() == LMASTER_TEMPO) {
+ if (!editor)
+ editor = new QLineEdit(view->viewport(), "lineedit");
+ editor->setText(editedItem->text(LMASTER_VAL_COL));
+ editor->setGeometry(itemRect);
+ editor->show();
+ editor->setFocus();
+ editor->selectAll();
+ connect(editor, SIGNAL(returnPressed()), SLOT(returnPressed()));
+ }
+ else { // Edit signatur value:
+ if (!sig_editor)
+ sig_editor = new SigEdit(view->viewport(), "sigedit");
+ sig_editor->setValue(editedItem->text(LMASTER_VAL_COL));
+ sig_editor->setGeometry(itemRect);
+ sig_editor->show();
+ sig_editor->setFocus();
+ connect(sig_editor, SIGNAL(returnPressed()), SLOT(returnPressed()));
+ }
+ }
+ // Edit tempo or signal position:
+ else if (!editedItem && editorColumn == LMASTER_BEAT_COL) {
+ editedItem = (LMasterLViewItem*) i;
+ // Don't allow movement of initial values:
+ if (editedItem->tick() == 0) {
+ QMessageBox::information(this, tr(LMASTER_MSGBOX_STRING),
+ tr("Reposition of the initial tempo and signature events is not allowed") );
+ editedItem = 0;
+ }
+ // Everything OK
+ else {
+ if (!pos_editor)
+ pos_editor = new PosEdit(view->viewport(), "tmpposedit");
+ pos_editor->setValue(editedItem->tick());
+ QRect itemRect = view->itemRect(editedItem);
+ itemRect.setX(0);
+ itemRect.setWidth(view->columnWidth(LMASTER_BEAT_COL));
+ pos_editor->setGeometry(itemRect);
+ pos_editor->show();
+ pos_editor->setFocus();
+ connect(pos_editor, SIGNAL(returnPressed()), SLOT(returnPressed()));
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// returnPressed()
+//! called when editor is closed
+//---------------------------------------------------------
+void LMaster::returnPressed()
+ {
+ if (!editedItem)
+ return;
+
+ setFocus();
+ // Tempo event:
+ if (editedItem->getType() == LMASTER_TEMPO && editorColumn == LMASTER_VAL_COL) {
+ QString input = editor->text();
+ editor->hide();
+ repaint();
+ LMasterTempoItem* e = (LMasterTempoItem*) editedItem;
+ const TEvent* t = e->getEvent();
+ unsigned tick = t->tick;
+ bool conversionOK;
+ double dbl_input = input.toDouble(&conversionOK);
+ if (conversionOK && dbl_input < 250.0) {
+ int tempo = (int) ((1000000.0 * 60.0)/dbl_input);
+
+ if (!editingNewItem) {
+ song->startUndo();
+ audio->msgDeleteTempo(tick, e->tempo(), false);
+ audio->msgAddTempo(tick, tempo, false);
+ song->endUndo(SC_TEMPO);
+ }
+ //
+ // New item edited:
+ //
+ else {
+ audio->msgAddTempo(tick, tempo, true);
+ }
+ }
+ else {
+ QMessageBox::warning(this, tr("MusE: List Editor"),
+ tr("Input error, conversion not OK or value out of range"),
+ QMessageBox::Ok, Qt::NoButton
+ );
+ }
+ }
+ //
+ // Beat column, change position of a particular tempo or signature event
+ //
+ else if (editorColumn == LMASTER_BEAT_COL) {
+ int oldtick = editedItem->tick();
+ int newtick = pos_editor->pos().tick();
+ if (newtick == 0) { // Do not allow change of position to beginning of song
+ QMessageBox::warning(this, tr(LMASTER_MSGBOX_STRING),
+ tr("Reposition of tempo and signature events to start position is not allowed!"),
+ QMessageBox::Ok, Qt::NoButton
+ );
+ }
+ else if (oldtick != newtick) { // Ignore if tick hasn't changed
+ if (editedItem->getType() == LMASTER_TEMPO) {
+ LMasterTempoItem* t = (LMasterTempoItem*) editedItem;
+ int tempo = t->tempo();
+ song->startUndo();
+ audio->msgDeleteTempo(oldtick, tempo, false);
+ audio->msgAddTempo(newtick, tempo, false);
+ song->endUndo(SC_TEMPO);
+ // Select the item:
+ Q3ListViewItem* newSelected = (Q3ListViewItem*) getItemAtPos(newtick, LMASTER_TEMPO);
+ if (newSelected) {
+ view->clearSelection();
+ view->setSelected(newSelected, true);
+ }
+ }
+ else if (editedItem->getType() == LMASTER_SIGEVENT) {
+ LMasterSigEventItem* t = (LMasterSigEventItem*) editedItem;
+ int z = t->z();
+ int n = t->n();
+ if (!editingNewItem) {
+ song->startUndo();
+ audio->msgRemoveSig(oldtick, z, n, false); //Delete first, in order to get sane tick-value
+ newtick = pos_editor->pos().tick();
+ audio->msgAddSig(newtick, z, n, false);
+ song->endUndo(SC_SIG);
+ }
+ else
+ audio->msgAddSig(newtick, z, n, false);
+ //audio->msgAddSig(newtick, z, n, true);
+
+ // Select the item:
+ Q3ListViewItem* newSelected = (Q3ListViewItem*) getItemAtPos(newtick, LMASTER_SIGEVENT);
+ if (newSelected) {
+ view->clearSelection();
+ view->setSelected(newSelected, true);
+ }
+ }
+
+ }
+ pos_editor->hide();
+ repaint();
+ }
+ //
+ // SigEvent, value changed:
+ //
+ else if (editedItem->getType() == LMASTER_SIGEVENT && editorColumn == LMASTER_VAL_COL)
+ {
+ Sig newSig = sig_editor->sig();
+
+ sig_editor->hide();
+
+ // Added p3.3.43 Prevents aborting with 0 z or n.
+ if(newSig.isValid())
+ {
+
+ LMasterSigEventItem* e = (LMasterSigEventItem*) editedItem;
+ int tick = e->tick();
+ if (!editingNewItem) {
+ song->startUndo();
+ if (tick > 0)
+ audio->msgRemoveSig(tick, e->z(), e->n(), false);
+ audio->msgAddSig(tick, newSig.z, newSig.n, false);
+ song->endUndo(SC_SIG);
+ }
+ else
+ audio->msgAddSig(tick, newSig.z, newSig.n, true);
+ }
+ }
+
+ view->setFocus();
+ // No item edited now:
+ editedItem = 0;
+ editorColumn = -1;
+ editingNewItem = false;
+ }
+
+
+/*!
+ \fn LMasterLViewItem::text(int column)
+ \brief Returns the initialized text to the View
+ */
+QString LMasterLViewItem::text(int column) const
+ {
+ QString ret = "?";
+ switch (column) {
+ case LMASTER_BEAT_COL:
+ ret = c1;
+ break;
+ case LMASTER_TIME_COL:
+ ret = c2;
+ break;
+ case LMASTER_TYPE_COL:
+ ret = c3;
+ break;
+ case LMASTER_VAL_COL:
+ ret = c4;
+ break;
+ default:
+ fprintf(stderr,"LMasterLViewItem::text(int): Default switch statement reached... Unknown column.\n");
+ break;
+ }
+ return ret;
+ }
+
+//---------------------------------------------------------
+// LMasterTempoItem
+//! Initializes a LMasterTempoItem with a TEvent
+//---------------------------------------------------------
+LMasterTempoItem::LMasterTempoItem(Q3ListView* parent, const TEvent* ev)
+ : LMasterLViewItem(parent)
+ {
+ tempoEvent = ev;
+ unsigned t = ev->tick;
+ //QString c1, c2, c3, c4;
+ int bar, beat;
+ unsigned tick;
+ sigmap.tickValues(t, &bar, &beat, &tick);
+ c1.sprintf("%04d.%02d.%03d", bar+1, beat+1, tick);
+
+ double time = double(ev->frame) / double(sampleRate);
+ int min = int(time) / 60;
+ int sec = int(time) % 60;
+ int msec = int((time - (min*60 + sec)) * 1000.0);
+ c2.sprintf("%03d:%02d:%03d", min, sec, msec);
+ c3 = "Tempo";
+ double dt = (1000000.0 * 60.0)/ev->tempo;
+ c4.setNum(dt, 'f', 3);
+ }
+
+//---------------------------------------------------------
+// LMasterSigEventItem
+//! Initializes a ListView item with a SigEvent
+//---------------------------------------------------------
+LMasterSigEventItem::LMasterSigEventItem(Q3ListView* parent, const SigEvent* ev)
+ : LMasterLViewItem(parent)
+ {
+ sigEvent = ev;
+ unsigned t = ev->tick;
+ int bar, beat;
+ unsigned tick;
+ sigmap.tickValues(t, &bar, &beat, &tick);
+ c1.sprintf("%04d.%02d.%03d", bar+1, beat+1, tick);
+
+ double time = double(tempomap.tick2frame(t)) / double (sampleRate);
+ int min = int(time) / 60;
+ int sec = int(time) % 60;
+ int msec = int((time - (min*60 + sec)) * 1000.0);
+ c2.sprintf("%03d:%02d:%03d", min, sec, msec);
+ c3 = "Timesig";
+ c4.sprintf("%d/%d", ev->z, ev->n);
+ }
+
+//---------------------------------------------------------
+// tempoButtonClicked()
+//! inserts a new tempo-item in the list and starts the editor for it
+//---------------------------------------------------------
+void LMaster::tempoButtonClicked()
+ {
+ LMasterTempoItem* lastTempo = (LMasterTempoItem*) getLastOfType(LMASTER_TEMPO);
+ QString beatString = ((LMasterLViewItem*)lastTempo)->text(LMASTER_BEAT_COL);
+ int m, b, t;
+ Pos p = Pos(beatString);
+ p.mbt(&m, &b, &t);
+ m++; //Next bar
+ int newTick = sigmap.bar2tick(m, b, t);
+ TEvent* ev = new TEvent(lastTempo->tempo(), newTick);
+ new LMasterTempoItem(view, ev);
+ Q3ListViewItem* newTempoItem = view->firstChild();
+
+ editingNewItem = true; // State
+ editorColumn = LMASTER_VAL_COL; // Set that we edit editorColumn
+ view->clearSelection();
+ view->setSelected(newTempoItem, true);
+ itemDoubleClicked(newTempoItem);
+ }
+
+
+//---------------------------------------------------------
+// tempoButtonClicked()
+//! inserts a new sig-item in the list and starts the editor for it
+//---------------------------------------------------------
+void LMaster::timeSigButtonClicked()
+ {
+ LMasterSigEventItem* lastSig = (LMasterSigEventItem*) getLastOfType(LMASTER_SIGEVENT);
+ QString beatString = ((LMasterLViewItem*)lastSig)->text(LMASTER_BEAT_COL);
+ int m, b, t;
+ Pos p = Pos(beatString);
+ p.mbt(&m, &b, &t);
+ m++;
+ int newTick = sigmap.bar2tick(m, b, t);
+ SigEvent* ev = new SigEvent(lastSig->z(), lastSig->n(), newTick);
+ new LMasterSigEventItem(view, ev);
+ Q3ListViewItem* newSigItem = view->firstChild();
+
+ editingNewItem = true; // State
+ editorColumn = LMASTER_VAL_COL; // Set that we edit editorColumn
+ view->clearSelection();
+ view->setSelected(newSigItem, true);
+ itemDoubleClicked(newSigItem);
+ }
+
+
+/*!
+ \fn LMaster::getLastOfType(LMASTER_LVTYPE t)
+ */
+LMasterLViewItem* LMaster::getLastOfType(LMASTER_LVTYPE t)
+ {
+ LMasterLViewItem* tmp = (LMasterLViewItem*) view->lastItem();
+ while (tmp->getType() != t) {
+ tmp = (LMasterLViewItem*) tmp->itemAbove();
+ }
+ return tmp;
+ }
+
+
+/*!
+ \fn LMaster::getItemAtPos(unsigned tick, LMASTER_LVTYPE t)
+ */
+LMasterLViewItem* LMaster::getItemAtPos(unsigned tick, LMASTER_LVTYPE t)
+ {
+ LMasterLViewItem* tmp = (LMasterLViewItem*) view->firstChild();
+ while (tmp) {
+ if (tmp->getType() == t && tmp->tick() == tick)
+ return tmp;
+ tmp = (LMasterLViewItem*) tmp->itemBelow();
+ }
+
+ return 0;
+ }
+
+
+/*!
+ \fn LMaster::configChanged()
+ */
+void LMaster::configChanged()
+ {
+ initShortcuts();
+ }
+
+
+/*!
+ \fn LMaster::initShortcuts()
+ */
+void LMaster::initShortcuts()
+ {
+ menuEdit->setAccel(shortcuts[SHRT_LM_INS_TEMPO].key, CMD_INSERT_TEMPO);
+ menuEdit->setAccel(shortcuts[SHRT_LM_INS_SIG].key, CMD_INSERT_SIG);
+ menuEdit->setAccel(shortcuts[SHRT_LM_EDIT_BEAT].key, CMD_EDIT_BEAT);
+ menuEdit->setAccel(shortcuts[SHRT_LM_EDIT_VALUE].key, CMD_EDIT_VALUE);
+ }
diff --git a/muse2/muse/master/lmaster.h b/muse2/muse/master/lmaster.h
new file mode 100644
index 00000000..b67f64bf
--- /dev/null
+++ b/muse2/muse/master/lmaster.h
@@ -0,0 +1,145 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: lmaster.h,v 1.1.1.1.2.5 2005/12/11 21:29:23 spamatica Exp $
+// (C) Copyright 2000 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __LMASTER_EDIT_H__
+#define __LMASTER_EDIT_H__
+
+#include <qwidget.h>
+#include <qlineedit.h>
+//Added by qt3to4:
+#include <QMouseEvent>
+#include <Q3PopupMenu>
+#include <QCloseEvent>
+#include "midieditor.h"
+#include "noteinfo.h"
+#include "cobject.h"
+#include <q3mainwindow.h>
+#include <q3listview.h>
+#include "tempo.h"
+#include "sig.h"
+
+class QToolButton;
+class Q3ListView;
+class SigEvent;
+class QLineEdit;
+class QMouseEvent;
+class PosEdit;
+class SigEdit;
+
+enum LMASTER_LVTYPE
+ {
+ LMASTER_TEMPO = 0,
+ LMASTER_SIGEVENT
+ };
+
+//---------------------------------------------------------
+// LMasterLViewItem
+//! QListViewItem base class for LMasterTempoItem and LMasterSigEventItem
+//---------------------------------------------------------
+class LMasterLViewItem : public Q3ListViewItem {
+ protected:
+ QString c1, c2, c3, c4;
+
+ public:
+ LMasterLViewItem(Q3ListView* parent)
+ : Q3ListViewItem(parent) { }
+ LMasterLViewItem(Q3ListView* parent, Q3ListViewItem* after)
+ : Q3ListViewItem(parent, after) { }
+ virtual QString text(int column) const;
+ virtual LMASTER_LVTYPE getType() = 0;
+ virtual unsigned tick() = 0;
+ };
+
+//---------------------------------------------------------
+// LMasterTempoItem
+//! QListViewItem which holds data for a TEvent
+//---------------------------------------------------------
+class LMasterTempoItem : public LMasterLViewItem {
+
+ private:
+ const TEvent* tempoEvent;
+
+ public:
+ LMasterTempoItem(Q3ListView* parent, const TEvent* t);
+ virtual LMASTER_LVTYPE getType() { return LMASTER_TEMPO; }
+ const TEvent* getEvent() { return tempoEvent; }
+ virtual unsigned tick() { return tempoEvent->tick; }
+ int tempo() { return tempoEvent->tempo; }
+ };
+
+//---------------------------------------------------------
+// LMasterTempoItem
+//! QListViewItem which holds data for a SigEvent
+//---------------------------------------------------------
+class LMasterSigEventItem : public LMasterLViewItem {
+
+ private:
+ const SigEvent* sigEvent;
+
+ public:
+ LMasterSigEventItem(Q3ListView* parent, const SigEvent* s);
+ virtual LMASTER_LVTYPE getType() { return LMASTER_SIGEVENT; }
+ const SigEvent* getEvent() { return sigEvent; }
+ virtual unsigned tick() { return sigEvent->tick; }
+ int z() { return sigEvent->z; }
+ int n() { return sigEvent->n; }
+ };
+
+
+//---------------------------------------------------------
+// LMaster
+//---------------------------------------------------------
+
+class LMaster : public MidiEditor {
+ Q3ListView* view;
+ Q3ToolBar* tools;
+ Q3PopupMenu* menuEdit;
+
+ enum { CMD_DELETE, CMD_INSERT_SIG, CMD_INSERT_TEMPO, CMD_EDIT_BEAT, CMD_EDIT_VALUE };
+
+ Q_OBJECT
+ virtual void closeEvent(QCloseEvent*);
+ void updateList();
+ void insertTempo(const TEvent*);
+ void insertSig(const SigEvent*);
+ LMasterLViewItem* getItemAtPos(unsigned tick, LMASTER_LVTYPE t);
+ void initShortcuts();
+ QLineEdit* editor;
+ PosEdit* pos_editor;
+ // State-like members:
+ LMasterLViewItem* editedItem;
+ SigEdit* sig_editor;
+ int editorColumn;
+ bool editingNewItem;
+
+ private slots:
+ void select(Q3ListViewItem*);
+ void itemDoubleClicked(Q3ListViewItem* item);
+ void returnPressed();
+ void itemPressed(Q3ListViewItem* i, const QPoint& p, int column);
+ void tempoButtonClicked();
+ void timeSigButtonClicked();
+ void cmd(int cmd);
+
+ public slots:
+ void songChanged(int);
+ void configChanged();
+
+ signals:
+ void deleted(unsigned long);
+
+ public:
+ LMaster();
+ ~LMaster();
+ virtual void readStatus(Xml&);
+ virtual void writeStatus(int, Xml&) const;
+ LMasterLViewItem* getLastOfType(LMASTER_LVTYPE t);
+ };
+
+
+#endif
+
diff --git a/muse2/muse/master/master.cpp b/muse2/muse/master/master.cpp
new file mode 100644
index 00000000..65204bef
--- /dev/null
+++ b/muse2/muse/master/master.cpp
@@ -0,0 +1,341 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: master.cpp,v 1.3 2004/04/11 13:03:32 wschweer Exp $
+// (C) Copyright 2000 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include <stdio.h>
+#include <values.h>
+
+#include <qlineedit.h>
+#include <q3popupmenu.h>
+#include <qpainter.h>
+#include <q3header.h>
+#include <qcursor.h>
+//Added by qt3to4:
+#include <QMouseEvent>
+#include <QEvent>
+
+#include "globals.h"
+#include "master.h"
+#include "song.h"
+#include "scrollscale.h"
+#include "midi.h"
+#include "midieditor.h"
+#include "icons.h"
+#include "audio.h"
+
+extern void drawTickRaster(QPainter& p, int x, int y,
+ int w, int h, int quant);
+
+//---------------------------------------------------------
+// Master
+//---------------------------------------------------------
+
+Master::Master(MidiEditor* e, QWidget* parent, int xmag, int ymag)
+ : View(parent, xmag, ymag)
+ {
+ editor = e;
+ setBg(Qt::white);
+ vscroll = 0;
+ pos[0] = 0;
+ pos[1] = 0;
+ pos[2] = 0;
+ setMouseTracking(true);
+ connect(song, SIGNAL(posChanged(int, unsigned, bool)), this, SLOT(setPos(int, unsigned, bool)));
+ connect(song, SIGNAL(songChanged(int)), this, SLOT(redraw()));
+ }
+
+//---------------------------------------------------------
+// setPos
+//---------------------------------------------------------
+
+void Master::setPos(int idx, unsigned val, bool adjustScrollbar)
+ {
+ if (pos[idx] == val)
+ return;
+
+ int opos = mapx(pos[idx]);
+ int npos = mapx(val);
+
+ if (adjustScrollbar && idx == 0) {
+ switch (song->follow()) {
+ case Song::NO:
+ break;
+ case Song::JUMP:
+ if (npos >= width()) {
+ int ppos = val - rmapxDev(width()/8);
+ if (ppos < 0)
+ ppos = 0;
+ emit followEvent(ppos);
+ opos = mapx(pos[idx]);
+ npos = mapx(val);
+ }
+ else if (npos < 0) {
+ int ppos = val - rmapxDev(width()*3/4);
+ if (ppos < 0)
+ ppos = 0;
+ emit followEvent(ppos);
+ opos = mapx(pos[idx]);
+ npos = mapx(val);
+ }
+ break;
+ case Song::CONTINUOUS:
+ if (npos > (width()/2)) {
+ int ppos = pos[idx] - rmapxDev(width()/2);
+ if (ppos < 0)
+ ppos = 0;
+ emit followEvent(ppos);
+ opos = mapx(pos[idx]);
+ npos = mapx(val);
+ }
+ else if (npos < (width()/2)) {
+ int ppos = pos[idx] - rmapxDev(width()/2);
+ if (ppos < 0)
+ ppos = 0;
+ emit followEvent(ppos);
+ opos = mapx(pos[idx]);
+ npos = mapx(val);
+ }
+ break;
+ }
+ }
+
+ int x;
+ int w = 1;
+ if (opos > npos) {
+ w += opos - npos;
+ x = npos;
+ }
+ else {
+ w += npos - opos;
+ x = opos;
+ }
+ pos[idx] = val;
+ redraw(QRect(x-1, 0, w+2, height()));
+ }
+
+//---------------------------------------------------------
+// leaveEvent
+//---------------------------------------------------------
+
+void Master::leaveEvent(QEvent*)
+ {
+ emit tempoChanged(-1);
+ emit timeChanged(MAXINT);
+ }
+
+//---------------------------------------------------------
+// pdraw
+//---------------------------------------------------------
+
+void Master::pdraw(QPainter& p, const QRect& rect)
+ {
+ View::pdraw(p, rect); // calls draw()
+ p.resetXForm();
+
+ int x = rect.x();
+ int y = rect.y();
+ int w = rect.width() + 2;
+ int h = rect.height();
+
+ int wh = height();
+ //---------------------------------------------------
+ // draw Canvas Items
+ //---------------------------------------------------
+
+ const TempoList* tl = &tempomap;
+ for (ciTEvent i = tl->begin(); i != tl->end(); ++i) {
+ TEvent* e = i->second;
+ int etick = mapx(i->first);
+ int stick = mapx(i->second->tick);
+ int tempo = mapy(280000 - int(60000000000.0/(e->tempo)));
+
+ if (tempo < 0)
+ tempo = 0;
+ if (tempo < wh) {
+ p.fillRect(stick, tempo, etick-stick, wh, Qt::blue);
+ }
+ }
+
+ //---------------------------------------------------
+ // draw marker
+ //---------------------------------------------------
+
+ int xp = mapx(pos[0]);
+ if (xp >= x && xp < x+w) {
+ p.setPen(Qt::red);
+ p.drawLine(xp, y, xp, y+h);
+ }
+ xp = mapx(pos[1]);
+ if (xp >= x && xp < x+w) {
+ p.setPen(Qt::blue);
+ p.drawLine(xp, y, xp, y+h);
+ }
+ xp = mapx(pos[2]);
+ if (xp >= x && xp < x+w) {
+ p.setPen(Qt::blue);
+ p.drawLine(xp, y, xp, y+h);
+ }
+ }
+
+//---------------------------------------------------------
+// draw
+//---------------------------------------------------------
+
+void Master::draw(QPainter& p, const QRect& rect)
+ {
+ drawTickRaster(p, rect.x(), rect.y(),
+ rect.width(), rect.height(), 0);
+ }
+
+//---------------------------------------------------------
+// viewMousePressEvent
+//---------------------------------------------------------
+
+void Master::viewMousePressEvent(QMouseEvent* event)
+ {
+ start = event->pos();
+ Tool activeTool = tool;
+// bool shift = event->state() & ShiftButton;
+
+ switch (activeTool) {
+ case PointerTool:
+ drag = DRAG_LASSO_START;
+ break;
+
+ case PencilTool:
+ drag = DRAG_NEW;
+ song->startUndo();
+ newVal(start.x(), start.x(), start.y());
+ break;
+
+ case RubberTool:
+ drag = DRAG_DELETE;
+ song->startUndo();
+ deleteVal(start.x(), start.x());
+ break;
+
+ default:
+ break;
+ }
+ }
+
+//---------------------------------------------------------
+// viewMouseMoveEvent
+//---------------------------------------------------------
+
+void Master::viewMouseMoveEvent(QMouseEvent* event)
+ {
+ QPoint pos = event->pos();
+// QPoint dist = pos - start;
+// bool moving = dist.y() >= 3 || dist.y() <= 3 || dist.x() >= 3 || dist.x() <= 3;
+
+ switch (drag) {
+ case DRAG_NEW:
+ newVal(start.x(), pos.x(), pos.y());
+ start = pos;
+ break;
+
+ case DRAG_DELETE:
+ deleteVal(start.x(), pos.x());
+ start = pos;
+ break;
+
+ default:
+ break;
+ }
+ emit tempoChanged(280000 - event->y());
+ int x = pos.x();
+ if (x < 0)
+ x = 0;
+ emit timeChanged(editor->rasterVal(x));
+ }
+
+//---------------------------------------------------------
+// viewMouseReleaseEvent
+//---------------------------------------------------------
+
+void Master::viewMouseReleaseEvent(QMouseEvent*)
+ {
+ switch (drag) {
+ case DRAG_RESIZE:
+ case DRAG_NEW:
+ case DRAG_DELETE:
+ song->endUndo(SC_TEMPO);
+ break;
+ default:
+ break;
+ }
+ drag = DRAG_OFF;
+ }
+
+//---------------------------------------------------------
+// deleteVal
+//---------------------------------------------------------
+
+bool Master::deleteVal1(unsigned int x1, unsigned int x2)
+ {
+ bool songChanged = false;
+
+ TempoList* tl = &tempomap;
+ for (iTEvent i = tl->begin(); i != tl->end(); ++i) {
+ if (i->first < x1)
+ continue;
+ if (i->first >= x2)
+ break;
+ iTEvent ii = i;
+ ++ii;
+ if (ii != tl->end()) {
+ int tempo = ii->second->tempo;
+ audio->msgDeleteTempo(i->first, tempo, false);
+ songChanged = true;
+ }
+ }
+ return songChanged;
+ }
+
+void Master::deleteVal(int x1, int x2)
+ {
+ if (deleteVal1(editor->rasterVal1(x1), x2))
+ redraw();
+ }
+
+//---------------------------------------------------------
+// setTool
+//---------------------------------------------------------
+
+void Master::setTool(int t)
+ {
+ if (tool == Tool(t))
+ return;
+ tool = Tool(t);
+ switch(tool) {
+ case PencilTool:
+ setCursor(QCursor(*pencilIcon, 4, 15));
+ break;
+ default:
+ setCursor(QCursor(Qt::arrowCursor));
+ break;
+ }
+ }
+
+//---------------------------------------------------------
+// newVal
+//---------------------------------------------------------
+
+void Master::newVal(int x1, int x2, int y)
+ {
+ int xx1 = editor->rasterVal1(x1);
+ int xx2 = editor->rasterVal2(x2);
+
+ if (xx1 > xx2) {
+ int tmp = xx2;
+ xx2 = xx1;
+ xx1 = tmp;
+ }
+ deleteVal1(xx1, xx2);
+ audio->msgAddTempo(xx1, int(60000000000.0/(280000 - y)), false);
+ redraw();
+ }
diff --git a/muse2/muse/master/master.h b/muse2/muse/master/master.h
new file mode 100644
index 00000000..ee5bfd21
--- /dev/null
+++ b/muse2/muse/master/master.h
@@ -0,0 +1,69 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: master.h,v 1.3 2004/04/11 13:03:32 wschweer Exp $
+// (C) Copyright 1999 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __MASTER_H__
+#define __MASTER_H__
+
+#include <qpoint.h>
+//Added by qt3to4:
+#include <QMouseEvent>
+#include <QEvent>
+
+#include "view.h"
+#include "song.h"
+#include "tools.h"
+
+class ScrollScale;
+class QPainter;
+class QRect;
+class MidiEditor;
+
+//---------------------------------------------------------
+// Master
+//---------------------------------------------------------
+
+class Master : public View {
+ enum DragMode { DRAG_OFF, DRAG_NEW, DRAG_MOVE_START, DRAG_MOVE,
+ DRAG_DELETE, DRAG_COPY_START, DRAG_COPY,
+ DRAG_RESIZE, DRAG_LASSO_START, DRAG_LASSO
+ };
+ ScrollScale* vscroll;
+ unsigned pos[3];
+ QPoint start;
+ Tool tool;
+ DragMode drag;
+ MidiEditor* editor;
+
+ Q_OBJECT
+ virtual void pdraw(QPainter&, const QRect&);
+ virtual void viewMouseMoveEvent(QMouseEvent* event);
+ virtual void leaveEvent(QEvent*e);
+ virtual void viewMousePressEvent(QMouseEvent* event);
+ virtual void viewMouseReleaseEvent(QMouseEvent*);
+
+ void draw(QPainter&, const QRect&);
+ void newVal(int x1, int x2, int y);
+ bool deleteVal1(unsigned int x1, unsigned int x2);
+ void deleteVal(int x1, int x2);
+
+ signals:
+ void followEvent(int);
+ void xposChanged(int);
+ void yposChanged(int);
+ void timeChanged(unsigned);
+ void tempoChanged(int);
+
+ public slots:
+ void setPos(int, unsigned, bool adjustScrollbar);
+ void setTool(int t);
+
+ public:
+ Master(MidiEditor*, QWidget* parent, int xmag, int ymag);
+ };
+
+#endif
+
diff --git a/muse2/muse/master/masteredit.cpp b/muse2/muse/master/masteredit.cpp
new file mode 100644
index 00000000..ef8abde8
--- /dev/null
+++ b/muse2/muse/master/masteredit.cpp
@@ -0,0 +1,403 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: masteredit.cpp,v 1.4.2.5 2009/07/01 22:14:56 spamatica Exp $
+// (C) Copyright 1999 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include "masteredit.h"
+#include "mtscale.h"
+#include "hitscale.h"
+#include "sigscale.h"
+#include "scrollscale.h"
+#include "poslabel.h"
+#include "master.h"
+#include "utils.h"
+#include "tscale.h"
+#include "tempolabel.h"
+#include "xml.h"
+#include "lcombo.h"
+#include "doublelabel.h"
+#include "sigedit.h"
+#include "globals.h"
+
+#include <values.h>
+#include <q3toolbar.h>
+#include <qtoolbutton.h>
+#include <qtooltip.h>
+#include <q3accel.h>
+#include <qlayout.h>
+#include <q3hbox.h>
+#include <qsizegrip.h>
+#include <qscrollbar.h>
+#include <qlabel.h>
+#include <qpushbutton.h>
+#include <qradiobutton.h>
+#include <q3buttongroup.h>
+#include <q3listbox.h>
+#include <qcombobox.h>
+#include <q3header.h>
+#include <q3popupmenu.h>
+#include <qmenubar.h>
+#include <qaction.h>
+//Added by qt3to4:
+#include <QCloseEvent>
+
+int MasterEdit::_rasterInit = 0;
+
+//---------------------------------------------------------
+// closeEvent
+//---------------------------------------------------------
+
+void MasterEdit::closeEvent(QCloseEvent* e)
+ {
+ emit deleted((unsigned long)this);
+ e->accept();
+ }
+
+//---------------------------------------------------------
+// songChanged
+//---------------------------------------------------------
+
+void MasterEdit::songChanged(int type)
+ {
+ if (type & SC_TEMPO) {
+ int tempo = tempomap.tempo(song->cpos());
+ curTempo->blockSignals(true);
+ curTempo->setValue(double(60000000.0/tempo));
+
+ curTempo->blockSignals(false);
+ }
+ if (type & SC_SIG) {
+ int z, n;
+ sigmap.timesig(song->cpos(), z, n);
+ curSig->blockSignals(true);
+ curSig->setValue(Sig(z, n));
+ curSig->blockSignals(false);
+ sign->redraw();
+ }
+ if (type & SC_MASTER) {
+ enableButton->blockSignals(true);
+ enableButton->setOn(song->masterFlag());
+ enableButton->blockSignals(false);
+ }
+ }
+
+//---------------------------------------------------------
+// MasterEdit
+//---------------------------------------------------------
+
+MasterEdit::MasterEdit()
+ : MidiEditor(0, _rasterInit, 0)
+ {
+ setCaption(tr("MusE: Mastertrack"));
+ _raster = 0; // measure
+ setMinimumSize(400, 300);
+ resize(500, 350);
+
+ //---------Pulldown Menu----------------------------
+// QPopupMenu* file = new QPopupMenu(this);
+// menuBar()->insertItem("&File", file);
+
+ //---------ToolBar----------------------------------
+ tools = new Q3ToolBar(tr("edit tools"), this);
+ undoRedo->addTo(tools);
+
+ EditToolBar* tools2 = new EditToolBar(this,
+ PointerTool | PencilTool | RubberTool);
+
+ Q3ToolBar* enableMaster = new Q3ToolBar(tr("EnableMaster"), this);
+ enableButton = new QToolButton(enableMaster);
+ enableButton->setToggleButton(true);
+ enableButton->setText(tr("Enable"));
+ QToolTip::add(enableButton, tr("Enable usage of master track"));
+ enableButton->setOn(song->masterFlag());
+ connect(enableButton, SIGNAL(toggled(bool)), song, SLOT(setMasterFlag(bool)));
+
+ Q3ToolBar* info = new Q3ToolBar(tr("Info"), this);
+ QLabel* label = new QLabel(tr("Cursor"), info);
+ label->setAlignment(Qt::AlignRight|Qt::AlignVCenter);
+ label->setIndent(3);
+
+ cursorPos = new PosLabel(info);
+ tempo = new TempoLabel(info);
+
+ const char* rastval[] = {
+ QT_TR_NOOP("Off"), "Bar", "1/2", "1/4", "1/8", "1/16"
+ };
+ rasterLabel = new LabelCombo(tr("Snap"), info);
+ rasterLabel->setFocusPolicy(Qt::NoFocus);
+ for (int i = 0; i < 6; i++)
+ rasterLabel->insertItem(tr(rastval[i]), i);
+ rasterLabel->setCurrentItem(1);
+ connect(rasterLabel, SIGNAL(activated(int)), SLOT(_setRaster(int)));
+
+ QToolTip::add(cursorPos, tr("time at cursor position"));
+ QToolTip::add(tempo, tr("tempo at cursor position"));
+
+ //---------values for current position---------------
+ new QLabel(tr("CurPos "), info);
+ curTempo = new TempoEdit(info);
+ curSig = new SigEdit(info);
+ curSig->setValue(Sig(4, 4));
+ QToolTip::add(curTempo, tr("tempo at current position"));
+ QToolTip::add(curSig, tr("time signature at current position"));
+ connect(curSig, SIGNAL(valueChanged(int,int)), song, SLOT(setSig(int,int)));
+ connect(curTempo, SIGNAL(valueChanged(double)), song, SLOT(setTempo(double)));
+
+ //---------------------------------------------------
+ // master
+ //---------------------------------------------------
+
+ int xscale = -20;
+ int yscale = -500;
+ hscroll = new ScrollScale(-100, -2, xscale, song->len(), Qt::Horizontal, mainw);
+ vscroll = new ScrollScale(-1000, -100, yscale, 120000, Qt::Vertical, mainw);
+ vscroll->setRange(30000, 250000);
+ time1 = new MTScale(&_raster, mainw, xscale);
+ sign = new SigScale(&_raster, mainw, xscale);
+// thits = new HitScale(&_raster, mainw, xscale);
+
+ canvas = new Master(this, mainw, xscale, yscale);
+
+// zhits = new HitScale(&_raster, mainw, xscale);
+ time2 = new MTScale(&_raster, mainw, xscale);
+ tscale = new TScale(mainw, yscale);
+ time2->setBarLocator(true);
+
+ //---------------------------------------------------
+ // Rest
+ //---------------------------------------------------
+
+// QSizeGrip* corner = new QSizeGrip(mainw);
+
+ mainGrid->setRowStretch(5, 100);
+ mainGrid->setColStretch(1, 100);
+
+ mainGrid->addWidget(hLine(mainw), 0, 1);
+ mainGrid->addWidget(time1, 1, 1);
+ mainGrid->addWidget(hLine(mainw), 2, 1);
+ mainGrid->addWidget(sign, 3, 1);
+ mainGrid->addWidget(hLine(mainw), 4, 1);
+// mainGrid->addWidget(thits, 5, 1);
+// mainGrid->addWidget(hLine(mainw), 6, 1);
+ mainGrid->addWidget(canvas, 5, 1);
+ mainGrid->addWidget(tscale, 5, 0);
+ mainGrid->addWidget(hLine(mainw), 6, 1);
+// mainGrid->addWidget(zhits, 9, 1);
+// mainGrid->addWidget(hLine(mainw), 7, 1);
+ mainGrid->addWidget(time2, 7, 1);
+ mainGrid->addWidget(hscroll, 8, 1);
+ mainGrid->addMultiCellWidget(vscroll, 0, 9, 2, 2);
+// mainGrid->addWidget(corner, 9, 2, AlignBottom | AlignRight);
+
+ connect(tools2, SIGNAL(toolChanged(int)), canvas, SLOT(setTool(int)));
+ connect(vscroll, SIGNAL(scrollChanged(int)), canvas, SLOT(setYPos(int)));
+ connect(vscroll, SIGNAL(scaleChanged(int)), canvas, SLOT(setYMag(int)));
+
+ connect(vscroll, SIGNAL(scrollChanged(int)), tscale, SLOT(setYPos(int)));
+ connect(vscroll, SIGNAL(scaleChanged(int)), tscale, SLOT(setYMag(int)));
+
+ connect(hscroll, SIGNAL(scrollChanged(int)), time1, SLOT(setXPos(int)));
+ connect(hscroll, SIGNAL(scrollChanged(int)), sign, SLOT(setXPos(int)));
+// connect(hscroll, SIGNAL(scrollChanged(int)), thits, SLOT(setXPos(int)));
+ connect(hscroll, SIGNAL(scrollChanged(int)), canvas, SLOT(setXPos(int)));
+// connect(hscroll, SIGNAL(scrollChanged(int)), zhits, SLOT(setXPos(int)));
+ connect(hscroll, SIGNAL(scrollChanged(int)), time2, SLOT(setXPos(int)));
+
+ connect(hscroll, SIGNAL(scaleChanged(int)), time1, SLOT(setXMag(int)));
+ connect(hscroll, SIGNAL(scaleChanged(int)), sign, SLOT(setXMag(int)));
+// connect(hscroll, SIGNAL(scaleChanged(int)), thits, SLOT(setXMag(int)));
+ connect(hscroll, SIGNAL(scaleChanged(int)), canvas, SLOT(setXMag(int)));
+// connect(hscroll, SIGNAL(scaleChanged(int)), zhits, SLOT(setXMag(int)));
+ connect(hscroll, SIGNAL(scaleChanged(int)), time2, SLOT(setXMag(int)));
+
+ connect(time1, SIGNAL(timeChanged(unsigned)), SLOT(setTime(unsigned)));
+// connect(sign, SIGNAL(timeChanged(unsigned)), pos, SLOT(setValue(unsigned)));
+// connect(thits, SIGNAL(timeChanged(unsigned)), pos, SLOT(setValue(unsigned)));
+// connect(canvas, SIGNAL(timeChanged(unsigned)), pos, SLOT(setValue(unsigned)));
+// connect(zhits, SIGNAL(timeChanged(unsigned)), pos, SLOT(setValue(unsigned)));
+ connect(time2, SIGNAL(timeChanged(unsigned)), SLOT(setTime(unsigned)));
+
+ connect(tscale, SIGNAL(tempoChanged(int)), SLOT(setTempo(int)));
+ connect(canvas, SIGNAL(tempoChanged(int)), SLOT(setTempo(int)));
+ connect(song, SIGNAL(songChanged(int)), SLOT(songChanged(int)));
+ connect(song, SIGNAL(posChanged(int,unsigned,bool)), SLOT(posChanged(int,unsigned,bool)));
+
+ connect(canvas, SIGNAL(followEvent(int)), hscroll, SLOT(setOffset(int)));
+ connect(canvas, SIGNAL(timeChanged(unsigned)), SLOT(setTime(unsigned)));
+ }
+
+//---------------------------------------------------------
+// ~MasterEdit
+//---------------------------------------------------------
+
+MasterEdit::~MasterEdit()
+ {
+ undoRedo->removeFrom(tools);
+ }
+
+//---------------------------------------------------------
+// readStatus
+//---------------------------------------------------------
+
+void MasterEdit::readStatus(Xml& xml)
+ {
+ 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 == "midieditor")
+ MidiEditor::readStatus(xml);
+ else if (tag == "ypos")
+ vscroll->setPos(xml.parseInt());
+ else if (tag == "ymag") {
+ // vscroll->setMag(xml.parseInt());
+ int mag = xml.parseInt();
+ vscroll->setMag(mag);
+ }
+ else
+ xml.unknown("MasterEdit");
+ break;
+ case Xml::TagEnd:
+ if (tag == "master") {
+ // raster setzen
+ int item = 0;
+ switch(_raster) {
+ case 1: item = 0; break;
+ case 0: item = 1; break;
+ case 768: item = 2; break;
+ case 384: item = 3; break;
+ case 192: item = 4; break;
+ case 96: item = 5; break;
+ }
+ _rasterInit = _raster;
+ rasterLabel->setCurrentItem(item);
+ return;
+ }
+ default:
+ break;
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// writeStatus
+//---------------------------------------------------------
+
+void MasterEdit::writeStatus(int level, Xml& xml) const
+ {
+ xml.tag(level++, "master");
+ xml.intTag(level, "ypos", vscroll->pos());
+ xml.intTag(level, "ymag", vscroll->mag());
+ MidiEditor::writeStatus(level, xml);
+ xml.tag(level, "/master");
+ }
+
+//---------------------------------------------------------
+// readConfiguration
+//---------------------------------------------------------
+
+void MasterEdit::readConfiguration(Xml& xml)
+ {
+ 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 == "raster")
+ _rasterInit = xml.parseInt();
+ else
+ xml.unknown("MasterEdit");
+ break;
+ case Xml::TagEnd:
+ if (tag == "masteredit")
+ return;
+ default:
+ break;
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// writeConfiguration
+//---------------------------------------------------------
+
+void MasterEdit::writeConfiguration(int level, Xml& xml)
+ {
+ xml.tag(level++, "masteredit");
+ xml.intTag(level, "raster", _rasterInit);
+ xml.tag(level, "/masteredit");
+ }
+
+//---------------------------------------------------------
+// _setRaster
+//---------------------------------------------------------
+
+void MasterEdit::_setRaster(int index)
+ {
+ static int rasterTable[] = {
+ 1, 0, 768, 384, 192, 96
+ };
+ _raster = rasterTable[index];
+ _rasterInit = _raster;
+ }
+
+//---------------------------------------------------------
+// posChanged
+//---------------------------------------------------------
+
+void MasterEdit::posChanged(int idx, unsigned val, bool)
+ {
+ if (idx == 0) {
+ int z, n;
+ int tempo = tempomap.tempo(val);
+ sigmap.timesig(val, z, n);
+ curTempo->blockSignals(true);
+ curSig->blockSignals(true);
+
+ curTempo->setValue(double(60000000.0/tempo));
+ curSig->setValue(Sig(z, n));
+
+ curTempo->blockSignals(false);
+ curSig->blockSignals(false);
+ }
+ }
+
+//---------------------------------------------------------
+// setTime
+//---------------------------------------------------------
+
+void MasterEdit::setTime(unsigned tick)
+ {
+ if (tick == MAXINT)
+ cursorPos->setEnabled(false);
+ else {
+ cursorPos->setEnabled(true);
+ cursorPos->setValue(tick);
+ time1->setPos(3, tick, false);
+ time2->setPos(3, tick, false);
+ }
+ }
+
+//---------------------------------------------------------
+// setTempo
+//---------------------------------------------------------
+
+void MasterEdit::setTempo(int val)
+ {
+ if (val == -1)
+ tempo->setEnabled(false);
+ else {
+ tempo->setEnabled(true);
+ tempo->setValue(val);
+ }
+ }
+
diff --git a/muse2/muse/master/masteredit.h b/muse2/muse/master/masteredit.h
new file mode 100644
index 00000000..88ada6eb
--- /dev/null
+++ b/muse2/muse/master/masteredit.h
@@ -0,0 +1,83 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: masteredit.h,v 1.3.2.2 2009/04/01 01:37:11 terminator356 Exp $
+// (C) Copyright 1999 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __MASTER_EDIT_H__
+#define __MASTER_EDIT_H__
+
+#include <qwidget.h>
+//Added by qt3to4:
+#include <QCloseEvent>
+#include "midieditor.h"
+#include "noteinfo.h"
+#include "cobject.h"
+#include <q3mainwindow.h>
+
+class QToolButton;
+class Master;
+class ScrollScale;
+class MTScale;
+class SigScale;
+class HitScale;
+class TScale;
+class TempoEdit;
+class SigEdit;
+class LabelCombo;
+class PosLabel;
+class TempoLabel;
+
+//---------------------------------------------------------
+// MasterEdit
+//---------------------------------------------------------
+
+class MasterEdit : public MidiEditor {
+ Master* canvas;
+ ScrollScale* hscroll;
+ ScrollScale* vscroll;
+ MTScale* time1;
+ MTScale* time2;
+ SigScale* sign;
+ HitScale* thits;
+ HitScale* zhits;
+ TScale* tscale;
+
+ TempoEdit* curTempo;
+ SigEdit* curSig;
+ LabelCombo* rasterLabel;
+ Q3ToolBar* tools;
+ PosLabel* cursorPos;
+ TempoLabel* tempo;
+ QToolButton* enableButton;
+
+ static int _rasterInit;
+
+ Q_OBJECT
+ virtual void closeEvent(QCloseEvent*);
+
+ private slots:
+ void _setRaster(int);
+ void posChanged(int,unsigned,bool);
+ void setTime(unsigned);
+ void setTempo(int);
+
+ public slots:
+ void songChanged(int);
+// void tempoChanged(double);
+
+ signals:
+ void deleted(unsigned long);
+
+ public:
+ MasterEdit();
+ ~MasterEdit();
+ virtual void readStatus(Xml&);
+ virtual void writeStatus(int, Xml&) const;
+ static void readConfiguration(Xml&);
+ static void writeConfiguration(int, Xml&);
+ };
+
+#endif
+
diff --git a/muse2/muse/master/tscale.cpp b/muse2/muse/master/tscale.cpp
new file mode 100644
index 00000000..e31af92c
--- /dev/null
+++ b/muse2/muse/master/tscale.cpp
@@ -0,0 +1,61 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: tscale.cpp,v 1.2 2003/12/17 11:04:14 wschweer Exp $
+// (C) Copyright 1999 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include <stdio.h>
+#include "tscale.h"
+#include "globals.h"
+#include "gconfig.h"
+//Added by qt3to4:
+#include <QMouseEvent>
+#include <QEvent>
+
+//---------------------------------------------------------
+// TScale
+//---------------------------------------------------------
+
+TScale::TScale(QWidget* parent, int ymag)
+ : View(parent, 1, ymag)
+ {
+ setFont(config.fonts[3]);
+ int w = 4 * QFontMetrics(config.fonts[4]).width('0');
+ setFixedWidth(w);
+ setMouseTracking(true);
+ }
+
+//---------------------------------------------------------
+// draw
+//---------------------------------------------------------
+
+void TScale::pdraw(QPainter& p, const QRect& r)
+ {
+ int y = r.y();
+ int h = r.height();
+ p.setFont(config.fonts[4]);
+ QString s;
+ for (int i = 30000; i <= 250000; i += 10000) {
+ int yy = mapy(280000 - i);
+ if (yy < y)
+ break;
+ if (yy-15 > y+h)
+ continue;
+ p.drawLine(0, yy, width(), yy);
+ s.setNum(i/1000);
+ QFontMetrics fm(config.fonts[4]);
+ p.drawText(width() - fm.width(s) - 1, yy-2, s);
+ }
+ }
+
+void TScale::viewMouseMoveEvent(QMouseEvent* event)
+ {
+ emit tempoChanged(280000 - event->y());
+ }
+
+void TScale::leaveEvent(QEvent*)
+ {
+ emit tempoChanged(-1);
+ }
+
diff --git a/muse2/muse/master/tscale.h b/muse2/muse/master/tscale.h
new file mode 100644
index 00000000..08f91c7e
--- /dev/null
+++ b/muse2/muse/master/tscale.h
@@ -0,0 +1,38 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: tscale.h,v 1.1.1.1 2003/10/27 18:52:36 wschweer Exp $
+// (C) Copyright 1999 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __TSCALE_H__
+#define __TSCALE_H__
+
+#include "view.h"
+//Added by qt3to4:
+#include <QEvent>
+#include <QMouseEvent>
+
+//---------------------------------------------------------
+// Tscale
+//---------------------------------------------------------
+
+class TScale : public View {
+ double curTempo;
+ Q_OBJECT
+
+ virtual void viewMouseMoveEvent(QMouseEvent* event);
+ virtual void leaveEvent(QEvent*e);
+
+ protected:
+ virtual void pdraw(QPainter&, const QRect&);
+
+ signals:
+ void tempoChanged(int);
+
+ public:
+ TScale(QWidget*, int);
+ };
+
+#endif
+
diff --git a/muse2/muse/memory.cpp b/muse2/muse/memory.cpp
new file mode 100644
index 00000000..6a5b5c0c
--- /dev/null
+++ b/muse2/muse/memory.cpp
@@ -0,0 +1,100 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: memory.cpp,v 1.1.1.1.2.2 2009/12/19 23:35:39 spamatica Exp $
+//
+// (C) Copyright 2003 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include "memory.h"
+
+Pool audioRTmemoryPool;
+Pool midiRTmemoryPool;
+
+//---------------------------------------------------------
+// Pool
+//---------------------------------------------------------
+
+Pool::Pool()
+ {
+ for (int idx = 0; idx < dimension; ++idx) {
+ head[idx] = 0;
+ chunks[idx] = 0;
+ grow(idx); // preallocate
+ }
+ }
+
+//---------------------------------------------------------
+// ~Pool
+//---------------------------------------------------------
+
+Pool::~Pool()
+ {
+ for (int i = 0; i < dimension; ++i) {
+ Chunk* n = chunks[i];
+ while (n) {
+ Chunk* p = n;
+ n = n->next;
+ delete p;
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// grow
+//---------------------------------------------------------
+
+void Pool::grow(int idx)
+ {
+// printf("grow memory idx %d\n", idx);
+
+ int esize = (idx+1) * sizeof(unsigned long);
+
+ Chunk* n = new Chunk;
+ n->next = chunks[idx];
+ chunks[idx] = n;
+
+ const int nelem = Chunk::size / esize;
+ char* start = n->mem;
+ char* last = &start[(nelem-1) * esize];
+
+ for (char* p = start; p < last; p += esize)
+ reinterpret_cast<Verweis*>(p)->next =
+ reinterpret_cast<Verweis*>(p + esize);
+ reinterpret_cast<Verweis*>(last)->next = 0;
+ head[idx] = reinterpret_cast<Verweis*>(start);
+ }
+
+
+#ifdef TEST
+//=========================================================
+// TEST
+//=========================================================
+
+struct mops {
+ char a, c;
+ int b;
+ mops(int x) : b(x) {}
+ };
+
+typedef std::list<struct mops, RTalloc<struct mops> > List;
+// typedef std::vector<struct mops> List;
+typedef List::iterator iList;
+
+//---------------------------------------------------------
+// main
+// 2.8 s normal 0.7 vector
+// 2.5 s RTalloc
+// 1.18 alle optimierungen (0.97)
+//---------------------------------------------------------
+
+int main()
+ {
+ List l;
+
+ for (int i = 0; i < 10000000; ++i)
+ l.push_back(mops(i));
+ return 0;
+ }
+#endif
+
diff --git a/muse2/muse/memory.h b/muse2/muse/memory.h
new file mode 100644
index 00000000..e2ffb150
--- /dev/null
+++ b/muse2/muse/memory.h
@@ -0,0 +1,180 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: memory.h,v 1.4.2.3 2009/12/15 22:08:50 spamatica Exp $
+//
+// (C) Copyright 2003-2004 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __MEMORY_H__
+#define __MEMORY_H__
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <map>
+
+// most of the following code is based on examples
+// from Bjarne Stroustrup: "Die C++ Programmiersprache"
+
+//---------------------------------------------------------
+// Pool
+//---------------------------------------------------------
+
+class Pool {
+ struct Verweis {
+ Verweis* next;
+ };
+ struct Chunk {
+ enum { size = 4 * 1024 };
+ Chunk* next;
+ char mem[size];
+ };
+ enum { dimension = 21 };
+ Chunk* chunks[dimension];
+ Verweis* head[dimension];
+ Pool(Pool&);
+ void operator=(Pool&);
+ void grow(int idx);
+
+ public:
+ Pool();
+ ~Pool();
+ void* alloc(size_t n);
+ void free(void* b, size_t n);
+ };
+
+//---------------------------------------------------------
+// alloc
+//---------------------------------------------------------
+
+inline void* Pool::alloc(size_t n)
+ {
+ if (n == 0)
+ return 0;
+ int idx = ((n + sizeof(unsigned long) - 1) / sizeof(unsigned long)) - 1;
+ if (idx >= dimension) {
+ printf("panic: alloc %zd %d %d\n", n, idx, dimension);
+ exit(-1);
+ }
+ if (head[idx] == 0)
+ grow(idx);
+ Verweis* p = head[idx];
+ head[idx] = p->next;
+ return p;
+ }
+
+//---------------------------------------------------------
+// free
+//---------------------------------------------------------
+
+inline void Pool::free(void* b, size_t n)
+ {
+ if (b == 0 || n == 0)
+ return;
+ int idx = ((n + sizeof(unsigned long) - 1) / sizeof(unsigned long)) - 1;
+ if (idx >= dimension) {
+ printf("panic: free %zd %d %d\n", n, idx, dimension);
+ exit(-1);
+ }
+ Verweis* p = static_cast<Verweis*>(b);
+ p->next = head[idx];
+ head[idx] = p;
+ }
+
+extern Pool audioRTmemoryPool;
+extern Pool midiRTmemoryPool;
+
+//---------------------------------------------------------
+// audioRTalloc
+//---------------------------------------------------------
+
+template <class T> class audioRTalloc
+ {
+ public:
+ typedef T value_type;
+ typedef size_t size_type;
+ typedef ptrdiff_t difference_type;
+
+ typedef T* pointer;
+ typedef const T* const_pointer;
+
+ typedef T& reference;
+ typedef const T& const_reference;
+
+ pointer address(reference x) const { return &x; }
+ const_pointer address(const_reference x) const { return &x; }
+
+ audioRTalloc();
+ template <class U> audioRTalloc(const audioRTalloc<U>&) {}
+ ~audioRTalloc() {}
+
+ pointer allocate(size_type n, void * = 0) {
+ return static_cast<T*>(audioRTmemoryPool.alloc(n * sizeof(T)));
+ }
+ void deallocate(pointer p, size_type n) {
+ audioRTmemoryPool.free(p, n * sizeof(T));
+ }
+
+ audioRTalloc<T>& operator=(const audioRTalloc&) { return *this; }
+ void construct(pointer p, const T& val) {
+ new ((T*) p) T(val);
+ }
+ void destroy(pointer p) {
+ p->~T();
+ }
+ size_type max_size() const { return size_t(-1); }
+
+ template <class U> struct rebind { typedef audioRTalloc<U> other; };
+ template <class U> audioRTalloc& operator=(const audioRTalloc<U>&) { return *this; }
+ };
+
+template <class T> audioRTalloc<T>::audioRTalloc() {}
+
+//---------------------------------------------------------
+// midiRTalloc
+//---------------------------------------------------------
+
+template <class T> class midiRTalloc
+ {
+ public:
+ typedef T value_type;
+ typedef size_t size_type;
+ typedef ptrdiff_t difference_type;
+
+ typedef T* pointer;
+ typedef const T* const_pointer;
+
+ typedef T& reference;
+ typedef const T& const_reference;
+
+ pointer address(reference x) const { return &x; }
+ const_pointer address(const_reference x) const { return &x; }
+
+ midiRTalloc();
+ template <class U> midiRTalloc(const midiRTalloc<U>&) {}
+ ~midiRTalloc() {}
+
+ pointer allocate(size_type n, void * = 0) {
+ return static_cast<T*>(midiRTmemoryPool.alloc(n * sizeof(T)));
+ }
+ void deallocate(pointer p, size_type n) {
+ midiRTmemoryPool.free(p, n * sizeof(T));
+ }
+
+ midiRTalloc<T>& operator=(const midiRTalloc&) { return *this; }
+ void construct(pointer p, const T& val) {
+ new ((T*) p) T(val);
+ }
+ void destroy(pointer p) {
+ p->~T();
+ }
+ size_type max_size() const { return size_t(-1); }
+
+ template <class U> struct rebind { typedef midiRTalloc<U> other; };
+ template <class U> midiRTalloc& operator=(const midiRTalloc<U>&) { return *this; }
+ };
+
+template <class T> midiRTalloc<T>::midiRTalloc() {}
+
+#endif
+
diff --git a/muse2/muse/midi.cpp b/muse2/muse/midi.cpp
new file mode 100644
index 00000000..3ec40065
--- /dev/null
+++ b/muse2/muse/midi.cpp
@@ -0,0 +1,1542 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: midi.cpp,v 1.43.2.22 2009/11/09 20:28:28 terminator356 Exp $
+//
+// (C) Copyright 1999/2004 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include <cmath>
+#include <errno.h>
+#include <values.h>
+#include <assert.h>
+
+#include "song.h"
+#include "midi.h"
+#include "drummap.h"
+#include "event.h"
+#include "globals.h"
+#include "midictrl.h"
+#include "marker/marker.h"
+#include "midiport.h"
+#include "midictrl.h"
+#include "audio.h"
+#include "mididev.h"
+#include "driver/alsamidi.h"
+#include "driver/jackmidi.h"
+#include "wave.h"
+#include "synth.h"
+#include "sync.h"
+#include "midiseq.h"
+#include "gconfig.h"
+#include "ticksynth.h"
+
+extern void dump(const unsigned char* p, int n);
+
+const unsigned char gmOnMsg[] = { 0x7e, 0x7f, 0x09, 0x01 };
+const unsigned char gsOnMsg[] = { 0x41, 0x10, 0x42, 0x12, 0x40, 0x00, 0x7f, 0x00, 0x41 };
+const unsigned char gsOnMsg2[] = { 0x41, 0x10, 0x42, 0x12, 0x40, 0x01, 0x33, 0x50, 0x3c };
+const unsigned char gsOnMsg3[] = { 0x41, 0x10, 0x42, 0x12, 0x40, 0x01, 0x34, 0x50, 0x3b };
+const unsigned char xgOnMsg[] = { 0x43, 0x10, 0x4c, 0x00, 0x00, 0x7e, 0x00 };
+const unsigned int gmOnMsgLen = sizeof(gmOnMsg);
+const unsigned int gsOnMsgLen = sizeof(gsOnMsg);
+const unsigned int gsOnMsg2Len = sizeof(gsOnMsg2);
+const unsigned int gsOnMsg3Len = sizeof(gsOnMsg3);
+const unsigned int xgOnMsgLen = sizeof(xgOnMsg);
+
+const unsigned char mmcDeferredPlayMsg[] = { 0x7f, 0x7f, 0x06, 0x03 };
+const unsigned char mmcStopMsg[] = { 0x7f, 0x7f, 0x06, 0x01 };
+const unsigned char mmcLocateMsg[] = { 0x7f, 0x7f, 0x06, 0x44, 0x06, 0x01, 0, 0, 0, 0, 0 };
+
+const unsigned int mmcDeferredPlayMsgLen = sizeof(mmcDeferredPlayMsg);
+const unsigned int mmcStopMsgLen = sizeof(mmcStopMsg);
+const unsigned int mmcLocateMsgLen = sizeof(mmcLocateMsg);
+
+#define CALC_TICK(the_tick) lrintf((float(the_tick) * float(config.division) + float(div/2)) / float(div));
+/*---------------------------------------------------------
+ * 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 MPEventList* el, MidiTrack* track,
+ int div, bool addSysexMeta, bool doLoops)
+ {
+ 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;
+
+ for (iMPEvent i = el->begin(); i != el->end(); ++i) {
+ MidiPlayEvent ev = *i;
+ if (!addSysexMeta && (ev.type() == ME_SYSEX || ev.type() == ME_META))
+ continue;
+ if (!(ev.type() == ME_SYSEX || ev.type() == ME_META
+ || ((ev.channel() == track->outChannel()) && (ev.port() == track->outPort()))))
+ continue;
+ unsigned tick = ev.time();
+ // Added by Tim. p3.3.8
+
+ // Added by T356.
+ if(doLoops)
+ {
+ if(tick >= song->lPos().tick() && tick < song->rPos().tick())
+ {
+ int loopn = ev.loopNum();
+ int loopc = audio->loopCount();
+ int cmode = song->cycleMode(); // CYCLE_NORMAL, CYCLE_MIX, CYCLE_REPLACE
+ // If we want REPLACE and the event was recorded in a previous loop,
+ // just ignore it. This will effectively ignore ALL previous loop events inside
+ // the left and right markers, regardless of where recording was started or stopped.
+ // We want to keep any loop 0 note-offs from notes which crossed over the left marker.
+ // To avoid more searching here, just keep ALL note-offs from loop 0, and let code below
+ // sort out and keep which ones had note-ons.
+ if(!(ev.isNoteOff() && loopn == 0))
+ {
+ if(cmode == Song::CYCLE_REPLACE && loopn < loopc)
+ {
+ // Added by Tim. p3.3.8
+ //printf("buildMidiEventList: CYCLE_REPLACE t:%d type:%d A:%d B:%d ln:%d lc:%d\n", tick, ev.type(), ev.dataA(), ev.dataB(), loopn, loopc);
+
+ continue;
+ }
+ // If we want NORMAL, same as REPLACE except keep all events from the previous loop
+ // from rec stop position to right marker (and beyond).
+ if(cmode == Song::CYCLE_NORMAL)
+ {
+ // Not sure of accuracy here. Adjust? Adjusted when used elsewhere?
+ unsigned endRec = audio->getEndRecordPos().tick();
+ if((tick < endRec && loopn < loopc) || (tick >= endRec && loopn < (loopc - 1)))
+ {
+ // Added by Tim. p3.3.8
+ //printf("buildMidiEventList: CYCLE_NORMAL t:%d type:%d A:%d B:%d ln:%d lc:%d\n", tick, ev.type(), ev.dataA(), ev.dataB(), loopn, loopc);
+
+ continue;
+ }
+ }
+ }
+ }
+ }
+
+ Event e;
+ switch(ev.type()) {
+ case ME_NOTEON:
+ e.setType(Note);
+
+ if (track->type() == Track::DRUM) {
+ int instr = drumInmap[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->type() == Track::DRUM) {
+ int instr = drumInmap[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:
+ {
+ iMPEvent ii = i;
+ ++ii;
+ bool found = false;
+ for (; ii != el->end(); ++ii) {
+ MidiPlayEvent 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, track->outChannel());
+ 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);
+ int ctl = ev.dataA();
+ e.setA(ctl);
+
+ if(track->type() == Track::DRUM)
+ {
+ // Is it a drum controller event, according to the track port's instrument?
+ MidiController *mc = midiPorts[track->outPort()].drumController(ctl);
+ if(mc)
+ // Store an index into the drum map.
+ e.setA((ctl & ~0xff) | drumInmap[ctl & 0x7f]);
+ }
+
+ 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 0x03: // Sequence-/TrackName
+ track->setName(QString((char*)data));
+ break;
+ case 0x6: // Marker
+ {
+ unsigned ltick = CALC_TICK(tick);//(tick * config.division + div/2) / div;
+ song->addMarker(QString((const char*)(data)), ltick, false);
+ }
+ break;
+ case 0x5: // Lyrics
+ case 0x8: // text
+ case 0x9:
+ case 0xa:
+ break;
+
+ case 0x0f: // Track Comment
+ track->setComment(QString((char*)data));
+ break;
+ case 0x51: // Tempo
+ {
+ unsigned tempo = data[2] + (data[1] << 8) + (data[0] <<16);
+ unsigned ltick = CALC_TICK(tick);// (unsigned(tick) * unsigned(config.division) + unsigned(div/2)) / unsigned(div);
+ // After ca 10 mins 32 bits will not be enough... This expression has to be changed/factorized or so in some "sane" way...
+ 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 = CALC_TICK(tick);//(tick * config.division + div/2) / div;
+ sigmap.add(ltick, timesig_z, timesig_n);
+ }
+ break;
+ case 0x59: // Key Signature
+ // track->scale.set(data[0]);
+ // track->scale.setMajorMinor(data[1]);
+ break;
+ default:
+ printf("unknown Meta 0x%x %d\n", ev.dataA(), ev.dataA());
+ }
+ }
+ break;
+ } // switch(ev.type()
+ if (!e.empty()) {
+ e.setTick(tick);
+ // Added by Tim. p3.3.8
+ //printf("buildMidiEventList: mel adding t:%d type:%d A:%d B:%d C:%d\n", tick, e.type(), e.dataA(), e.dataB(), e.dataC());
+
+ mel.add(e);
+ }
+ } // i != el->end()
+
+ //---------------------------------------------------
+ // resolve NoteOff events
+ //---------------------------------------------------
+
+// for (iEvent i = mel.begin(); i != mel.end(); ++i) {
+// Event event = i->second;
+// if (event.isNote())
+// event.setLenTick(0);
+// }
+
+ // Added by Tim. p3.3.8
+
+ // The loop is a safe way to delete while iterating.
+ bool loop;
+ do
+ {
+ loop = false;
+
+ for (iEvent i = mel.begin(); i != mel.end(); ++i) {
+ Event ev = i->second;
+ if (ev.isNote()) {
+ if (ev.isNoteOff()) {
+ iEvent k;
+ bool found = false;
+ for (k = i; k != mel.end(); ++k) {
+ Event event = k->second;
+ if (event.tick() > ev.tick())
+ break;
+ if (event.isNoteOff(ev)) {
+ ev.setLenTick(1);
+ ev.setVelo(event.velo());
+ ev.setVeloOff(0);
+ // Added by Tim. p3.3.8
+ //printf("buildMidiEventList: found note off: event t:%d len:%d type:%d A:%d B:%d C:%d ev t:%d len:%d type:%d A:%d B:%d C:%d\n", event.tick(), event.lenTick(), event.type(), event.dataA(), event.dataB(), event.dataC(), ev.tick(), ev.lenTick(), ev.type(), ev.dataA(), ev.dataB(), ev.dataC());
+
+ found = true;
+ 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 {
+ mel.erase(k);
+
+ // Changed by Tim. p3.3.8
+ //continue;
+ loop = true;
+ break;
+
+ }
+ }
+ // Added by Tim. p3.3.8
+
+ // If the event length is not zero, it means the event and its
+ // note on/off have already been taken care of. So ignore it.
+ if(ev.lenTick() != 0)
+ {
+ continue;
+ }
+
+ iEvent k;
+ for (k = mel.lower_bound(ev.tick()); k != mel.end(); ++k) {
+ Event event = k->second;
+ 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());
+ // Added by Tim. p3.3.8
+ //printf("buildMidiEventList: set len and velOff: event t:%d len:%d type:%d A:%d B:%d C:%d ev t:%d len:%d type:%d A:%d B:%d C:%d\n", event.tick(), event.lenTick(), event.type(), event.dataA(), event.dataB(), event.dataC(), ev.tick(), ev.lenTick(), ev.type(), ev.dataA(), ev.dataB(), ev.dataC());
+
+ 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);
+ // Added by Tim. p3.3.8
+ loop = true;
+ break;
+
+ }
+ }
+ }
+ }
+ while (loop);
+
+// DEBUG: any note offs left?
+
+ // Removed by Tim. p3.3.8
+ //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();
+ // }
+ // }
+
+ 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 = CALC_TICK(ev.tick()); //(ev.tick() * config.division + div/2) / div;
+ if (ev.isNote()) {
+ int lenTick = CALC_TICK(ev.lenTick()); //(ev.lenTick() * config.division + div/2) / div;
+ ev.setLenTick(lenTick);
+ }
+ ev.setTick(tick);
+ del->add(ev);
+ }
+ }
+
+//---------------------------------------------------------
+// midiPortsChanged
+//---------------------------------------------------------
+
+void Audio::midiPortsChanged()
+ {
+ write(sigFd, "P", 1);
+ }
+
+//---------------------------------------------------------
+// sendLocalOff
+//---------------------------------------------------------
+
+void Audio::sendLocalOff()
+ {
+ for (int k = 0; k < MIDI_PORTS; ++k) {
+ for (int i = 0; i < MIDI_CHANNELS; ++i)
+ midiPorts[k].sendEvent(MidiPlayEvent(0, k, i, ME_CONTROLLER, CTRL_LOCAL_OFF, 0));
+ }
+ }
+
+//---------------------------------------------------------
+// panic
+//---------------------------------------------------------
+
+void Audio::panic()
+ {
+ for (int i = 0; i < MIDI_PORTS; ++i) {
+ MidiPort* port = &midiPorts[i];
+ if (port == 0) // ??
+ continue;
+ for (int chan = 0; chan < MIDI_CHANNELS; ++chan) {
+ port->sendEvent(MidiPlayEvent(0, i, chan, ME_CONTROLLER, CTRL_ALL_SOUNDS_OFF, 0));
+ port->sendEvent(MidiPlayEvent(0, i, chan, ME_CONTROLLER, CTRL_RESET_ALL_CTRL, 0));
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// initDevices
+// - called on seek to position 0
+// - called from arranger pulldown menu
+//---------------------------------------------------------
+
+void Audio::initDevices()
+ {
+ //
+ // mark all used ports
+ //
+ bool activePorts[MIDI_PORTS];
+ for (int i = 0; i < MIDI_PORTS; ++i)
+ activePorts[i] = false;
+
+ MidiTrackList* tracks = song->midis();
+ for (iMidiTrack it = tracks->begin(); it != tracks->end(); ++it) {
+ MidiTrack* track = *it;
+ activePorts[track->outPort()] = true;
+ }
+ if (song->click())
+ activePorts[clickPort] = true;
+
+ //
+ // test for explicit instrument initialization
+ //
+
+ for (int i = 0; i < MIDI_PORTS; ++i) {
+ if (!activePorts[i])
+ continue;
+
+ MidiPort* port = &midiPorts[i];
+ MidiInstrument* instr = port->instrument();
+ MidiDevice* md = port->device();
+
+ if (instr && md) {
+ EventList* events = instr->midiInit();
+ if (events->empty())
+ continue;
+ for (iEvent ie = events->begin(); ie != events->end(); ++ie) {
+ MidiPlayEvent ev(0, i, 0, ie->second);
+ md->putEvent(ev);
+ }
+ activePorts[i] = false; // no standard initialization
+ }
+ }
+ //
+ // damit Midi-Devices, die mehrere Ports besitzen, wie z.B.
+ // das Korg NS5R, nicht mehrmals zwischen GM und XG/GS hin und
+ // hergeschaltet werden, wird zun�hst auf allen Ports GM
+ // initialisiert, und dann erst XG/GS
+ //
+
+ // Standard initialization...
+ for (int i = 0; i < MIDI_PORTS; ++i) {
+ if (!activePorts[i])
+ continue;
+ MidiPort* port = &midiPorts[i];
+ switch(song->mtype()) {
+ case MT_GS:
+ case MT_UNKNOWN:
+ break;
+ case MT_GM:
+ case MT_XG:
+ port->sendGmOn();
+ break;
+ }
+ }
+ for (int i = 0; i < MIDI_PORTS; ++i) {
+ if (!activePorts[i])
+ continue;
+ MidiPort* port = &midiPorts[i];
+ switch(song->mtype()) {
+ case MT_UNKNOWN:
+ break;
+ case MT_GM:
+ port->sendGmInitValues();
+ break;
+ case MT_GS:
+ port->sendGsOn();
+ port->sendGsInitValues();
+ break;
+ case MT_XG:
+ port->sendXgOn();
+ port->sendXgInitValues();
+ break;
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// collectEvents
+// collect events for next audio segment
+//---------------------------------------------------------
+
+void Audio::collectEvents(MidiTrack* track, unsigned int cts, unsigned int nts)
+ {
+ int port = track->outPort();
+ int channel = track->outChannel();
+ int defaultPort = port;
+
+ MidiDevice* md = midiPorts[port].device();
+ MPEventList* playEvents = md->playEvents();
+ MPEventList* stuckNotes = md->stuckNotes();
+
+ PartList* pl = track->parts();
+ for (iPart p = pl->begin(); p != pl->end(); ++p) {
+ MidiPart* part = (MidiPart*)(p->second);
+ // dont play muted parts
+ if (part->mute())
+ continue;
+ EventList* events = part->events();
+ unsigned partTick = part->tick();
+ unsigned partLen = part->lenTick();
+ int delay = track->delay;
+
+ if (cts > nts) {
+ printf("processMidi: FATAL: cur > next %d > %d\n",
+ cts, nts);
+ return;
+ }
+ unsigned offset = delay + partTick;
+ if (offset > nts)
+ continue;
+ unsigned stick = (offset > cts) ? 0 : cts - offset;
+ unsigned etick = nts - offset;
+ // By T356. Do not play events which are past the end of this part.
+ if(etick > partLen)
+ continue;
+
+ iEvent ie = events->lower_bound(stick);
+ iEvent iend = events->lower_bound(etick);
+
+ for (; ie != iend; ++ie) {
+ Event ev = ie->second;
+ port = defaultPort; //Reset each loop
+ //
+ // dont play any meta events
+ //
+ if (ev.type() == Meta)
+ continue;
+ if (track->type() == Track::DRUM) {
+ int instr = ev.pitch();
+ // ignore muted drums
+ if (ev.isNote() && drumMap[instr].mute)
+ continue;
+ }
+ unsigned tick = ev.tick() + offset;
+ unsigned frame = tempomap.tick2frame(tick) + frameOffset;
+ switch (ev.type()) {
+ case Note:
+ {
+ int len = ev.lenTick();
+ int pitch = ev.pitch();
+ int velo = ev.velo();
+ if (track->type() == Track::DRUM) {
+ //
+ // Map drum-notes to the drum-map values
+ //
+ int instr = ev.pitch();
+ pitch = drumMap[instr].anote;
+ port = drumMap[instr].port; //This changes to non-default port
+ channel = drumMap[instr].channel;
+ velo = int(double(velo) * (double(drumMap[instr].vol) / 100.0)) ;
+ }
+ else {
+ //
+ // transpose non drum notes
+ //
+ pitch += (track->transposition + song->globalPitchShift());
+ }
+
+ 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) // dont allow zero length
+ len = 1;
+ int veloOff = ev.veloOff();
+
+ if (port == defaultPort) {
+ //printf("Adding event normally: frame=%d port=%d channel=%d pitch=%d velo=%d\n",frame, port, channel, pitch, velo);
+
+ // p3.3.25
+ // If syncing to external midi sync, we cannot use the tempo map.
+ // Therefore we cannot get sub-tick resolution. Just use ticks instead of frames.
+ if(extSyncFlag.value())
+ playEvents->add(MidiPlayEvent(tick, port, channel, 0x90, pitch, velo));
+ else
+
+ playEvents->add(MidiPlayEvent(frame, port, channel, 0x90, pitch, velo));
+
+ stuckNotes->add(MidiPlayEvent(tick + len, port, channel,
+ veloOff ? 0x80 : 0x90, pitch, veloOff));
+ }
+ else { //Handle events to different port than standard.
+ MidiDevice* mdAlt = midiPorts[port].device();
+ if (mdAlt) {
+
+ // p3.3.25
+ if(extSyncFlag.value())
+ mdAlt->playEvents()->add(MidiPlayEvent(tick, port, channel, 0x90, pitch, velo));
+ else
+
+ mdAlt->playEvents()->add(MidiPlayEvent(frame, port, channel, 0x90, pitch, velo));
+
+ mdAlt->stuckNotes()->add(MidiPlayEvent(tick + len, port, channel,
+ veloOff ? 0x80 : 0x90, pitch, veloOff));
+ }
+ }
+
+ if(velo > track->activity())
+ track->setActivity(velo);
+ }
+ break;
+
+ // Added by T356.
+ case Controller:
+ {
+ //int len = ev.lenTick();
+ //int pitch = ev.pitch();
+ if (track->type() == Track::DRUM)
+ {
+ int ctl = ev.dataA();
+ // Is it a drum controller event, according to the track port's instrument?
+ MidiController *mc = midiPorts[defaultPort].drumController(ctl);
+ if(mc)
+ {
+ int instr = ctl & 0x7f;
+ ctl &= ~0xff;
+ int pitch = drumMap[instr].anote & 0x7f;
+ port = drumMap[instr].port; //This changes to non-default port
+ channel = drumMap[instr].channel;
+ MidiDevice* mdAlt = midiPorts[port].device();
+ if(mdAlt)
+ {
+ // p3.3.25
+ // If syncing to external midi sync, we cannot use the tempo map.
+ // Therefore we cannot get sub-tick resolution. Just use ticks instead of frames.
+ if(extSyncFlag.value())
+ mdAlt->playEvents()->add(MidiPlayEvent(tick, port, channel,
+ ME_CONTROLLER, ctl | pitch, ev.dataB()));
+ else
+
+ //playEvents->add(MidiPlayEvent(frame, port, channel, ev));
+ mdAlt->playEvents()->add(MidiPlayEvent(frame, port, channel,
+ ME_CONTROLLER, ctl | pitch, ev.dataB()));
+
+ }
+ break;
+ }
+ }
+ // p3.3.25
+ if(extSyncFlag.value())
+ playEvents->add(MidiPlayEvent(tick, port, channel, ev));
+ else
+
+ playEvents->add(MidiPlayEvent(frame, port, channel, ev));
+ }
+ break;
+
+
+ default:
+ // p3.3.25
+ if(extSyncFlag.value())
+ playEvents->add(MidiPlayEvent(tick, port, channel, ev));
+ else
+
+ playEvents->add(MidiPlayEvent(frame, port, channel, ev));
+
+ break;
+ }
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// processMidi
+// - collects midi events for current audio segment and
+// sends them to midi thread
+// - current audio segment position is (curTickPos, nextTickPos)
+// - called from midiseq thread,
+// executed in audio thread
+//---------------------------------------------------------
+
+void Audio::processMidi()
+ {
+ midiBusy=true;
+ //
+ // TODO: syntis should directly write into recordEventList
+ //
+ for (iMidiDevice id = midiDevices.begin(); id != midiDevices.end(); ++id) {
+ MidiDevice* md = *id;
+
+ MPEventList* playEvents = md->playEvents();
+ //
+ // erase already played events:
+ //
+ iMPEvent nextPlayEvent = md->nextPlayEvent();
+ playEvents->erase(playEvents->begin(), nextPlayEvent);
+
+ // klumsy hack for synti devices:
+ if(md->isSynti())
+ {
+ SynthI* s = (SynthI*)md;
+ while (s->eventsPending())
+ {
+ MidiRecordEvent ev = s->receiveEvent();
+ md->recordEvent(ev);
+ }
+ }
+
+ // Is it a Jack midi device?
+ //MidiJackDevice* mjd = dynamic_cast<MidiJackDevice*>(md);
+ //if(mjd)
+ // mjd->collectMidiEvents();
+ md->collectMidiEvents();
+
+ // Take snapshots of the current sizes of the recording fifos,
+ // because they may change while here in process, asynchronously.
+ md->beforeProcess();
+ }
+
+ MPEventList* playEvents = metronome->playEvents();
+ iMPEvent nextPlayEvent = metronome->nextPlayEvent();
+ playEvents->erase(playEvents->begin(), nextPlayEvent);
+
+ // p3.3.25
+ bool extsync = extSyncFlag.value();
+
+ for (iMidiTrack t = song->midis()->begin(); t != song->midis()->end(); ++t)
+ {
+ MidiTrack* track = *t;
+ int port = track->outPort();
+ MidiDevice* md = midiPorts[port].device();
+
+ // Changed by Tim. p3.3.8
+ //if(md == 0)
+ // continue;
+ //MPEventList* playEvents = md->playEvents();
+ //if (playEvents == 0)
+ // continue;
+ //if (!track->isMute())
+ MPEventList* playEvents = 0;
+ if(md)
+ {
+ playEvents = md->playEvents();
+
+ // only add track events if the track is unmuted
+ if(!track->isMute())
+ {
+ if(isPlaying() && (curTickPos < nextTickPos))
+ collectEvents(track, curTickPos, nextTickPos);
+ }
+ }
+
+ //
+ //----------midi recording
+ //
+ if (track->recordFlag())
+ {
+ //int portMask = track->inPortMask();
+ // p3.3.38 Removed
+ //unsigned int portMask = track->inPortMask();
+ //int channelMask = track->inChannelMask();
+
+ MPEventList* rl = track->mpevents();
+ MidiPort* tport = &midiPorts[port];
+
+ // p3.3.38
+ //for (iMidiDevice id = midiDevices.begin(); id != midiDevices.end(); ++id)
+ //{
+ RouteList* irl = track->inRoutes();
+ for(ciRoute r = irl->begin(); r != irl->end(); ++r)
+ {
+ //if(!r->isValid() || (r->type != Route::ALSA_MIDI_ROUTE && r->type != Route::JACK_MIDI_ROUTE))
+ //if(!r->isValid() || (r->type != Route::MIDI_DEVICE_ROUTE))
+ if(!r->isValid() || (r->type != Route::MIDI_PORT_ROUTE)) // p3.3.49
+ continue;
+
+ int devport = r->midiPort; // p3.3.49
+ if (devport == -1)
+ continue;
+
+ //MidiDevice* dev = *id;
+ //MidiDevice* dev = r->device;
+ MidiDevice* dev = midiPorts[devport].device(); // p3.3.49
+ if(!dev)
+ continue;
+
+
+ // p3.3.50 Removed
+ //int channel = r->channel;
+ // NOTE: TODO: Special for input device sysex 'channel' marked as -1, ** IF we end up going with that method **.
+ // This would mean having a separate 'System' channel listed in the routing popups.
+ // The other alternative is to accept sysex from a device as long as ANY regular channel is routed from it,
+ // this does not require a 'System' channel listed in the routing popups.
+ // But that requires more code below... Done.
+ //if(channel == -1)
+ //channel = MIDI_CHANNELS; // Special channel '17'
+ // continue;
+
+ //int devport = dev->midiPort();
+
+ // record only from ports marked in portMask:
+ //if (devport == -1 || !(portMask & (1 << devport)))
+ //if (devport == -1)
+ // continue;
+
+ //MREventList* el = dev->recordEvents();
+ //MidiFifo& rf = dev->recordEvents();
+
+
+ int channelMask = r->channel; // p3.3.50
+ if(channelMask == -1 || channelMask == 0)
+ continue;
+ for(int channel = 0; channel < MIDI_CHANNELS; ++channel) // p3.3.50
+ {
+ if(!(channelMask & (1 << channel)))
+ continue;
+
+ if(!dev->sysexFIFOProcessed())
+ {
+ // Set to the sysex fifo at first.
+ MidiFifo& rf = dev->recordEvents(MIDI_CHANNELS);
+ // Get the frozen snapshot of the size.
+ int count = dev->tmpRecordCount(MIDI_CHANNELS);
+
+ for(int i = 0; i < count; ++i)
+ {
+ MidiPlayEvent event(rf.peek(i));
+
+ //unsigned time = event.time() + segmentSize*(segmentCount-1);
+ //unsigned time = event.time() + (extsync ? config.division/24 : segmentSize*(segmentCount-1));
+ //unsigned time = extsync ? curTickPos : (event.time() + segmentSize*(segmentCount-1));
+ //event.setTime(time);
+ //if(!extsync)
+ // event.setTime(event.time() + segmentSize*(segmentCount-1));
+
+ event.setPort(port);
+
+ // dont't echo controller changes back to software
+ // synthesizer:
+ if(!dev->isSynti() && md && track->recEcho())
+ playEvents->add(event);
+
+ // If syncing externally the event time is already in units of ticks, set above.
+ if(!extsync)
+ {
+ //time = tempomap.frame2tick(event.time());
+ //event.setTime(time); // set tick time
+ event.setTime(tempomap.frame2tick(event.time())); // set tick time
+ }
+
+ if(recording)
+ rl->add(event);
+ }
+
+ dev->setSysexFIFOProcessed(true);
+ }
+
+ // Set to the sysex fifo at first.
+ ///MidiFifo& rf = dev->recordEvents(MIDI_CHANNELS);
+ // Get the frozen snapshot of the size.
+ ///int count = dev->tmpRecordCount(MIDI_CHANNELS);
+
+ // Iterate once for sysex fifo (if needed), once for channel fifos.
+ ///for(int sei = 0; sei < 2; ++sei)
+ {
+ // If on first pass, do sysex fifo.
+ /*
+ if(sei == 0)
+ {
+ // Ignore any further channel routes on this device if already done here.
+ if(dev->sysexFIFOProcessed())
+ continue;
+ // Go ahead and set this now.
+ dev->setSysexFIFOProcessed(true);
+ // Allow it to fall through with the sysex fifo and count...
+ }
+ else
+ {
+ // We're on the second pass, do channel fifos.
+ rf = dev->recordEvents(channel);
+ // Get the frozen snapshot of the size.
+ count = dev->tmpRecordCount(channel);
+ }
+ */
+
+ MidiFifo& rf = dev->recordEvents(channel);
+ int count = dev->tmpRecordCount(channel);
+
+ //for (iMREvent ie = el->begin(); ie != el->end(); ++ie)
+ for(int i = 0; i < count; ++i)
+ {
+ MidiPlayEvent event(rf.peek(i));
+
+ //int channel = ie->channel();
+ ///int channel = event.channel();
+
+ int defaultPort = devport;
+ ///if (!(channelMask & (1 << channel)))
+ ///{
+ /// continue;
+ ///}
+
+ //MidiPlayEvent event(*ie);
+ int drumRecPitch=0; //prevent compiler warning: variable used without initialization
+ MidiController *mc = 0;
+ int ctl = 0;
+
+ //Hmmm, hehhh...
+ // TODO: Clean up a bit around here when it comes to separate events for rec & for playback.
+ // But not before 0.7 (ml)
+
+ int prePitch = 0, preVelo = 0;
+
+ event.setChannel(track->outChannel());
+
+ if (event.isNote() || event.isNoteOff())
+ {
+ //
+ // apply track values
+ //
+
+ //Apply drum inkey:
+ if (track->type() == Track::DRUM)
+ {
+ int pitch = event.dataA();
+ //Map note that is played according to drumInmap
+ drumRecPitch = drumMap[(unsigned int)drumInmap[pitch]].enote;
+ devport = drumMap[(unsigned int)drumInmap[pitch]].port;
+ event.setPort(devport);
+ channel = drumMap[(unsigned int)drumInmap[pitch]].channel;
+ event.setA(drumMap[(unsigned int)drumInmap[pitch]].anote);
+ event.setChannel(channel);
+ }
+ else
+ { //Track transpose if non-drum
+ prePitch = event.dataA();
+ int pitch = prePitch + track->transposition;
+ if (pitch > 127)
+ pitch = 127;
+ if (pitch < 0)
+ pitch = 0;
+ event.setA(pitch);
+ }
+
+ if (!event.isNoteOff())
+ {
+ preVelo = event.dataB();
+ int velo = preVelo + track->velocity;
+ velo = (velo * track->compression) / 100;
+ if (velo > 127)
+ velo = 127;
+ if (velo < 1)
+ velo = 1;
+ event.setB(velo);
+ }
+ }
+ // Added by T356.
+ else
+ if(event.type() == ME_CONTROLLER)
+ {
+ if(track->type() == Track::DRUM)
+ {
+ ctl = event.dataA();
+ // Regardless of what port the event came from, is it a drum controller event
+ // according to the track port's instrument?
+ mc = tport->drumController(ctl);
+ if(mc)
+ {
+ int pitch = ctl & 0x7f;
+ ctl &= ~0xff;
+ int dmindex = drumInmap[pitch] & 0x7f;
+ //Map note that is played according to drumInmap
+ drumRecPitch = drumMap[dmindex].enote;
+ devport = drumMap[dmindex].port;
+ event.setPort(devport);
+ channel = drumMap[dmindex].channel;
+ event.setA(ctl | drumMap[dmindex].anote);
+ event.setChannel(channel);
+ }
+ }
+ }
+
+ // p3.3.25
+ // MusE uses a fixed clocks per quarternote of 24.
+ // At standard 384 ticks per quarternote for example,
+ // 384/24=16 for a division of 16 sub-frames (16 MusE 'ticks').
+ // That is what we'll use if syncing externally.
+ //unsigned time = event.time() + segmentSize*(segmentCount-1);
+ //unsigned time = event.time() + (extsync ? config.division/24 : segmentSize*(segmentCount-1));
+ // p3.3.34
+ // Oops, use the current tick.
+ //unsigned time = extsync ? curTickPos : (event.time() + segmentSize*(segmentCount-1));
+ //event.setTime(time);
+ // p3.3.35
+ // If ext sync, events are now time-stamped with last tick in MidiDevice::recordEvent().
+ // TODO: Tested, but record resolution not so good. Switch to wall clock based separate list in MidiDevice.
+ // p3.3.36
+ //if(!extsync)
+ // event.setTime(event.time() + segmentSize*(segmentCount-1));
+
+ // dont't echo controller changes back to software
+ // synthesizer:
+
+ if (!dev->isSynti())
+ {
+ //Check if we're outputting to another port than default:
+ if (devport == defaultPort) {
+ event.setPort(port);
+ if(md && track->recEcho())
+ playEvents->add(event);
+ }
+ else {
+ // Hmm, this appears to work, but... Will this induce trouble with md->setNextPlayEvent??
+ MidiDevice* mdAlt = midiPorts[devport].device();
+ if(mdAlt && track->recEcho())
+ mdAlt->playEvents()->add(event);
+ }
+ // Shall we activate meters even while rec echo is off? Sure, why not...
+ if(event.isNote() && event.dataB() > track->activity())
+ track->setActivity(event.dataB());
+ }
+
+ // p3.3.25
+ // If syncing externally the event time is already in units of ticks, set above.
+ if(!extsync)
+ {
+ // p3.3.35
+ //time = tempomap.frame2tick(event.time());
+ //event.setTime(time); // set tick time
+ event.setTime(tempomap.frame2tick(event.time())); // set tick time
+ }
+
+ // Special handling of events stored in rec-lists. a bit hACKish. TODO: Clean up (after 0.7)! :-/ (ml)
+ if (recording)
+ {
+ // In these next steps, it is essential to set the recorded event's port
+ // to the track port so buildMidiEventList will accept it. Even though
+ // the port may have no device "<none>".
+ //
+ if (track->type() == Track::DRUM)
+ {
+ // Is it a drum controller event?
+ if(mc)
+ {
+ MidiPlayEvent drumRecEvent = event;
+ drumRecEvent.setA(ctl | drumRecPitch);
+ // In this case, preVelo is simply the controller value.
+ drumRecEvent.setB(preVelo);
+ drumRecEvent.setPort(port); //rec-event to current port
+ drumRecEvent.setChannel(track->outChannel()); //rec-event to current channel
+ rl->add(drumRecEvent);
+ }
+ else
+ {
+
+ MidiPlayEvent drumRecEvent = event;
+ drumRecEvent.setA(drumRecPitch);
+ drumRecEvent.setB(preVelo);
+ // Changed by T356.
+ // Tested: Events were not being recorded for a drum map entry pointing to a
+ // different port. This must have been wrong - buildMidiEventList would ignore this.
+ //drumRecEvent.setPort(devport);
+ drumRecEvent.setPort(port); //rec-event to current port
+
+ drumRecEvent.setChannel(track->outChannel()); //rec-event to current channel
+ rl->add(drumRecEvent);
+ }
+ }
+ else
+ {
+ // Restore record-pitch to non-transposed value since we don't want the note transposed twice next
+ MidiPlayEvent recEvent = event;
+ if (prePitch)
+ recEvent.setA(prePitch);
+ if (preVelo)
+ recEvent.setB(preVelo);
+ recEvent.setPort(port);
+ recEvent.setChannel(track->outChannel());
+
+ rl->add(recEvent);
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ // Added by Tim. p3.3.8
+ if(md)
+ {
+
+ md->setNextPlayEvent(playEvents->begin());
+ }
+ }
+
+ //
+ // clear all recorded events in midiDevices
+ // process stuck notes
+ //
+ for (iMidiDevice id = midiDevices.begin(); id != midiDevices.end(); ++id) {
+ MidiDevice* md = *id;
+
+ ///md->recordEvents()->clear();
+ // By T356. Done processing this rec buffer, now flip to the other one.
+ ///md->flipRecBuffer();
+ // We are done with the 'frozen' recording fifos, remove the events.
+ md->afterProcess();
+
+ MPEventList* stuckNotes = md->stuckNotes();
+ MPEventList* playEvents = md->playEvents();
+
+ iMPEvent k;
+ for (k = stuckNotes->begin(); k != stuckNotes->end(); ++k) {
+ if (k->time() >= nextTickPos)
+ break;
+ MidiPlayEvent ev(*k);
+
+ // p3.3.25
+ //int frame = tempomap.tick2frame(k->time()) + frameOffset;
+ if(extsync)
+ {
+ ev.setTime(k->time());
+ }
+ else
+ {
+ int frame = tempomap.tick2frame(k->time()) + frameOffset;
+ ev.setTime(frame);
+ }
+
+ // p3.3.25
+ //ev.setTime(frame);
+
+ playEvents->add(ev);
+ }
+ stuckNotes->erase(stuckNotes->begin(), k);
+ md->setNextPlayEvent(playEvents->begin());
+ }
+
+ //---------------------------------------------------
+ // insert metronome clicks
+ //---------------------------------------------------
+
+ MidiDevice* md = 0;
+ if (midiClickFlag)
+ md = midiPorts[clickPort].device();
+ if (song->click() && (isPlaying() || state == PRECOUNT)) {
+ MPEventList* playEvents = 0;
+ MPEventList* stuckNotes = 0;
+ if (md) {
+ playEvents = md->playEvents();
+ stuckNotes = md->stuckNotes();
+ }
+ int bar, beat;
+ unsigned tick;
+ bool isMeasure = false;
+ while (midiClick < nextTickPos) {
+ if (isPlaying()) {
+ sigmap.tickValues(midiClick, &bar, &beat, &tick);
+ isMeasure = beat == 0;
+ }
+ else if (state == PRECOUNT) {
+ isMeasure = (clickno % clicksMeasure) == 0;
+ }
+ // p3.3.25
+ //int frame = tempomap.tick2frame(midiClick) + frameOffset;
+ int evtime = extsync ? midiClick : tempomap.tick2frame(midiClick) + frameOffset;
+
+ // p3.3.25
+ //MidiPlayEvent ev(frame, clickPort, clickChan, ME_NOTEON,
+ MidiPlayEvent ev(evtime, clickPort, clickChan, ME_NOTEON,
+ beatClickNote, beatClickVelo);
+
+ if (md) {
+ // p3.3.25
+ //MidiPlayEvent ev(frame, clickPort, clickChan, ME_NOTEON,
+ MidiPlayEvent ev(evtime, clickPort, clickChan, ME_NOTEON,
+ beatClickNote, beatClickVelo);
+
+ if (isMeasure) {
+ ev.setA(measureClickNote);
+ ev.setB(measureClickVelo);
+ }
+ playEvents->add(ev);
+ }
+ if (audioClickFlag) {
+ // p3.3.25
+ //MidiPlayEvent ev1(frame, 0, 0, ME_NOTEON, 0, 0);
+ MidiPlayEvent ev1(evtime, 0, 0, ME_NOTEON, 0, 0);
+
+ ev1.setA(isMeasure ? 0 : 1);
+ metronome->playEvents()->add(ev1);
+ }
+ if (md) {
+ ev.setB(0);
+ // p3.3.25
+ // Removed. Why was this here?
+ //frame = tempomap.tick2frame(midiClick+20) + frameOffset;
+ //
+ // Does it mean this should be changed too?
+ // No, stuck notes are in units of ticks, not frames like (normal, non-external) play events...
+ ev.setTime(midiClick+10);
+
+ if (md)
+ stuckNotes->add(ev);
+ }
+
+ if (isPlaying())
+ midiClick = sigmap.bar2tick(bar, beat+1, 0);
+ else if (state == PRECOUNT) {
+ midiClick += ticksBeat;
+ if (clickno)
+ --clickno;
+ else
+ state = START_PLAY;
+ }
+ }
+ if (md)
+ md->setNextPlayEvent(playEvents->begin());
+ if (audioClickFlag)
+ metronome->setNextPlayEvent(metronome->playEvents()->begin());
+ }
+
+ if (state == STOP) {
+ //---------------------------------------------------
+ // end all notes
+ //---------------------------------------------------
+
+ for (iMidiDevice imd = midiDevices.begin(); imd != midiDevices.end(); ++imd) {
+ MidiDevice* md = *imd;
+ MPEventList* playEvents = md->playEvents();
+ MPEventList* stuckNotes = md->stuckNotes();
+ for (iMPEvent k = stuckNotes->begin(); k != stuckNotes->end(); ++k) {
+ MidiPlayEvent ev(*k);
+ ev.setTime(0); // play now
+ playEvents->add(ev);
+ }
+ stuckNotes->clear();
+ }
+ }
+
+
+ // p3.3.36
+ //int tickpos = audio->tickPos();
+ //bool extsync = extSyncFlag.value();
+ //
+ // Special for Jack midi devices: Play all Jack midi events up to curFrame.
+ //
+ for(iMidiDevice id = midiDevices.begin(); id != midiDevices.end(); ++id)
+ {
+ //MidiDevice* md = *id;
+ // Is it a Jack midi device?
+ //MidiJackDevice* mjd = dynamic_cast<MidiJackDevice*>(md);
+ //if(!mjd)
+ // continue;
+ //mjd->processMidi();
+ (*id)->processMidi();
+
+ /*
+ int port = md->midiPort();
+ MidiPort* mp = port != -1 ? &midiPorts[port] : 0;
+ MPEventList* el = md->playEvents();
+ if (el->empty())
+ continue;
+ iMPEvent i = md->nextPlayEvent();
+ for(; i != el->end(); ++i)
+ {
+ // If syncing to external midi sync, we cannot use the tempo map.
+ // Therefore we cannot get sub-tick resolution. Just use ticks instead of frames.
+ //if(i->time() > curFrame)
+ if(i->time() > (extsync ? tickpos : curFrame))
+ {
+ //printf(" curT %d frame %d\n", i->time(), curFrame);
+ break; // skip this event
+ }
+
+ if(mp)
+ {
+ if(mp->sendEvent(*i))
+ break;
+ }
+ else
+ {
+ if(md->putEvent(*i))
+ break;
+ }
+ }
+ md->setNextPlayEvent(i);
+ */
+ }
+
+ midiBusy=false;
+ }
+
diff --git a/muse2/muse/midi.h b/muse2/muse/midi.h
new file mode 100644
index 00000000..ee13fb36
--- /dev/null
+++ b/muse2/muse/midi.h
@@ -0,0 +1,72 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: midi.h,v 1.4.2.2 2009/11/09 20:28:28 terminator356 Exp $
+//
+// (C) Copyright 1999/2000 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __MIDI_H__
+#define __MIDI_H__
+
+#include <unistd.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <qstring.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 const unsigned char gmOnMsg[];
+
+extern const unsigned char gsOnMsg[];
+extern const unsigned char gsOnMsg2[];
+extern const unsigned char gsOnMsg3[];
+extern const unsigned char xgOnMsg[];
+extern const unsigned char mmcDeferredPlayMsg[];
+extern const unsigned char mmcStopMsg[];
+extern const unsigned char mmcLocateMsg[];
+
+extern const unsigned int gmOnMsgLen;
+extern const unsigned int gsOnMsgLen;
+extern const unsigned int gsOnMsg2Len;
+extern const unsigned int gsOnMsg3Len;
+extern const unsigned int xgOnMsgLen;
+extern const unsigned int mmcDeferredPlayMsgLen;
+extern const unsigned int mmcStopMsgLen;
+extern const unsigned int mmcLocateMsgLen;
+
+QString nameSysex(unsigned int len, const unsigned char* buf);
+QString midiMetaName(int);
+
+class EventList;
+class MPEventList;
+class MidiTrack;
+//extern void buildMidiEventList(EventList* mel, const MPEventList* el, MidiTrack* track, int division, bool);
+extern void buildMidiEventList(EventList* mel, const MPEventList* el, MidiTrack* track, int division, bool /*addSysexMeta*/, bool /*doLoops*/);
+// extern bool checkSysex(MidiTrack* track, unsigned int len, unsigned char* buf);
+
+#endif
+
diff --git a/muse2/muse/midictrl.cpp b/muse2/muse/midictrl.cpp
new file mode 100644
index 00000000..3994fe90
--- /dev/null
+++ b/muse2/muse/midictrl.cpp
@@ -0,0 +1,781 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: midictrl.cpp,v 1.17.2.10 2009/06/10 00:34:59 terminator356 Exp $
+//
+// (C) Copyright 2001-2004 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include <assert.h>
+#include <stdio.h>
+
+#include <qobject.h>
+#include "midictrl.h"
+#include "xml.h"
+#include "globals.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);
+// Removed p3.3.37
+//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, -64, 63, 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::RPN14, QString("RPN14") },
+ { MidiController::NRPN14, QString("NRPN14") },
+ { MidiController::Pitch, QString("Pitch") },
+ { MidiController::Program, QString("Program") },
+ { 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()
+ {
+ defaultMidiController.add(&veloCtrl);
+ defaultMidiController.add(&pitchCtrl);
+ defaultMidiController.add(&programCtrl);
+ // Removed p3.3.37
+ //defaultMidiController.add(&mastervolCtrl);
+ defaultMidiController.add(&volumeCtrl);
+ defaultMidiController.add(&panCtrl);
+ }
+
+//---------------------------------------------------------
+// midiCtrlName
+//---------------------------------------------------------
+
+QString midiCtrlName(int ctrl)
+ {
+ if (ctrl < 0x10000)
+ return QString(ctrlName[ctrl]);
+ return QString("?N?");
+ }
+
+//---------------------------------------------------------
+// MidiController
+//---------------------------------------------------------
+
+MidiController::MidiController()
+ : _name(QString(QT_TR_NOOP("Velocity")))
+ {
+ _num = CTRL_VELOCITY;
+ _minVal = 0;
+ _maxVal = 127;
+ _initVal = 0;
+ updateBias();
+ }
+
+MidiController::MidiController(const QString& s, int n, int min, int max, int init)
+ : _name(s), _num(n), _minVal(min), _maxVal(max), _initVal(init)
+ {
+ updateBias();
+ }
+
+MidiController::MidiController(const MidiController& mc)
+{
+ copy(mc);
+}
+
+//---------------------------------------------------------
+// copy
+//---------------------------------------------------------
+
+void MidiController::copy(const MidiController &mc)
+{
+ _name = mc._name;
+ _num = mc._num;
+ _minVal = mc._minVal;
+ _maxVal = mc._maxVal;
+ _initVal = mc._initVal;
+ //updateBias();
+ _bias = mc._bias;
+}
+
+//---------------------------------------------------------
+// operator =
+//---------------------------------------------------------
+
+MidiController& MidiController::operator=(const MidiController &mc)
+{
+ copy(mc);
+ return *this;
+}
+
+//---------------------------------------------------------
+// type
+//---------------------------------------------------------
+
+MidiController::ControllerType midiControllerType(int num)
+ {
+ // p3.3.37
+ //if (num < 0x10000)
+ if (num < CTRL_14_OFFSET)
+ return MidiController::Controller7;
+ //if (num < 0x20000)
+ if (num < CTRL_RPN_OFFSET)
+ return MidiController::Controller14;
+ //if (num < 0x30000)
+ if (num < CTRL_NRPN_OFFSET)
+ return MidiController::RPN;
+ //if (num < 0x40000)
+ if (num < CTRL_INTERNAL_OFFSET)
+ return MidiController::NRPN;
+ if (num == CTRL_PITCH)
+ return MidiController::Pitch;
+ if (num == CTRL_PROGRAM)
+ return MidiController::Program;
+ if (num == CTRL_VELOCITY)
+ return MidiController::Velo;
+ //if (num < 0x60000)
+ if (num < CTRL_NRPN14_OFFSET)
+ return MidiController::RPN14;
+ //if (num < 0x70000)
+ if (num < CTRL_NONE_OFFSET)
+ return MidiController::NRPN14;
+ return MidiController::Controller7;
+ }
+
+//---------------------------------------------------------
+// updateBias
+//---------------------------------------------------------
+
+void MidiController::updateBias()
+{
+ // If the specified minimum value is negative, we will
+ // translate to a positive-biased range.
+ // Cue: A controller like 'coarse tuning', is meant to be displayed
+ // as -24/+24, but really is centered on 64 and goes from 40 to 88.
+ int b;
+ int mn, mx;
+ ControllerType t = midiControllerType(_num);
+ switch (t)
+ {
+ case RPN:
+ case NRPN:
+ case Controller7:
+ b = 64;
+ mn = 0;
+ mx = 127;
+ break;
+ case Controller14:
+ case RPN14:
+ case NRPN14:
+ b = 8192;
+ mn = 0;
+ mx = 16383;
+ break;
+ case Program:
+ b = 0x800000;
+ mn = 0;
+ mx = 0xffffff;
+ break;
+ case Pitch:
+ b = 0;
+ mn = -8192;
+ mx = 8191;
+ break;
+ //case Velo: // cannot happen
+ default:
+ b = 64;
+ mn = 0;
+ mx = 127;
+ break;
+ }
+
+ // Special handling of pan: Only thing to do is force the range!
+ //if(_num == CTRL_PANPOT)
+ //{
+ // _minVal = -64;
+ // _maxVal = 63;
+ // _initVal = 0;
+ //}
+
+ // TODO: Limit _minVal and _maxVal to range.
+
+ if(_minVal >= 0)
+ _bias = 0;
+ else
+ {
+ _bias = b;
+
+ if(t != Program && t != Pitch)
+ {
+ // Adjust bias to fit desired range.
+ if(_minVal + _bias < mn)
+ //_minVal = mn - _bias;
+ _bias += mn - _minVal + _bias;
+ else
+ if(_maxVal + _bias > mx)
+ //_maxVal = mx - _bias;
+ _bias -= _maxVal + _bias - mx;
+ }
+ }
+}
+
+
+//---------------------------------------------------------
+// MidiController::write
+//---------------------------------------------------------
+
+void MidiController::write(int level, Xml& xml) const
+{
+ ControllerType t = midiControllerType(_num);
+ if(t == Velo)
+ return;
+
+ 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);
+
+ xml.nput(level, "<Controller name=\"%s\"", Xml::xmlString(_name).latin1());
+ if(t != Controller7)
+ xml.nput(" type=\"%s\"", type.latin1());
+
+ int mn = 0;
+ int mx = 0;
+ switch (t)
+ {
+ case RPN:
+ case NRPN:
+ xml.nput(" h=\"%d\"", h);
+ xml.nput(" l=\"%s\"", sl.latin1());
+ mx = 127;
+ break;
+ case Controller7:
+ xml.nput(" l=\"%s\"", sl.latin1());
+ mx = 127;
+ break;
+ case Controller14:
+ case RPN14:
+ case NRPN14:
+ xml.nput(" h=\"%d\"", h);
+ xml.nput(" l=\"%s\"", sl.latin1());
+ mx = 16383;
+ break;
+ case Pitch:
+ mn = -8192;
+ mx = 8191;
+ break;
+ case Program:
+ case Velo: // Cannot happen
+ break;
+ }
+
+ if(t == Program)
+ {
+ if(_initVal != CTRL_VAL_UNKNOWN && _initVal != 0xffffff)
+ xml.nput(" init=\"0x%x\"", _initVal);
+ }
+ else
+ {
+ if(_minVal != mn)
+ xml.nput(" min=\"%d\"", _minVal);
+ if(_maxVal != mx)
+ xml.nput(" max=\"%d\"", _maxVal);
+
+ if(_initVal != CTRL_VAL_UNKNOWN)
+ xml.nput(" init=\"%d\"", _initVal);
+ }
+ //xml.put(level, " />");
+ xml.put(" />");
+}
+
+//---------------------------------------------------------
+// MidiController::read
+//---------------------------------------------------------
+
+void MidiController::read(Xml& xml)
+ {
+ ControllerType t = Controller7;
+ _initVal = CTRL_VAL_UNKNOWN;
+ static const int NOT_SET = 0x100000;
+ _minVal = NOT_SET;
+ _maxVal = NOT_SET;
+ int h = 0;
+ int l = 0;
+ bool ok;
+ int base = 10;
+
+ for (;;) {
+ Xml::Token token = xml.parse();
+ const QString& tag = xml.s1();
+ switch (token) {
+ case Xml::Error:
+ case Xml::End:
+ return;
+ case Xml::Attribut:
+ {
+ QString s = xml.s2();
+ if (s.left(2) == "0x")
+ base = 16;
+ if (tag == "name")
+ _name = xml.s2();
+ else if (tag == "type")
+ t = ctrlType2Int(xml.s2());
+ else if (tag == "h")
+ h = xml.s2().toInt(&ok, base);
+ else if (tag == "l") {
+ // By T356 08/16/08. Changed wildcard to '*'.
+ // Changed back to 'pitch' again.
+ // Support instrument files with '*' as wildcard.
+ if ((xml.s2() == "*") || (xml.s2() == "pitch"))
+ l = 0xff;
+ else
+ l = xml.s2().toInt(&ok, base);
+ }
+ else if (tag == "min")
+ _minVal = xml.s2().toInt(&ok, base);
+ else if (tag == "max")
+ _maxVal = xml.s2().toInt(&ok, base);
+ else if (tag == "init")
+ _initVal = xml.s2().toInt(&ok, base);
+ }
+ break;
+ case Xml::TagStart:
+ xml.unknown("MidiController");
+ break;
+ case Xml::TagEnd:
+ if (tag == "Controller") {
+ _num = (h << 8) + l;
+ switch (t) {
+ case RPN:
+ if (_maxVal == NOT_SET)
+ _maxVal = 127;
+ // p3.3.37
+ //_num |= 0x20000;
+ _num |= CTRL_RPN_OFFSET;
+ break;
+ case NRPN:
+ if (_maxVal == NOT_SET)
+ _maxVal = 127;
+ //_num |= 0x30000;
+ _num |= CTRL_NRPN_OFFSET;
+ break;
+ case Controller7:
+ if (_maxVal == NOT_SET)
+ _maxVal = 127;
+ break;
+ case Controller14:
+ //_num |= 0x10000;
+ _num |= CTRL_14_OFFSET;
+ if (_maxVal == NOT_SET)
+ _maxVal = 16383;
+ break;
+ case RPN14:
+ if (_maxVal == NOT_SET)
+ _maxVal = 16383;
+ //_num |= 0x50000;
+ _num |= CTRL_RPN14_OFFSET;
+ break;
+ case NRPN14:
+ if (_maxVal == NOT_SET)
+ _maxVal = 16383;
+ //_num |= 0x60000;
+ _num |= CTRL_NRPN14_OFFSET;
+ 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 = 0xffffff;
+ _num = CTRL_PROGRAM;
+ break;
+ case Velo: // cannot happen
+ break;
+ }
+ if (_minVal == NOT_SET)
+ _minVal = 0;
+
+ updateBias();
+ return;
+ }
+ default:
+ break;
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// 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;
+ return val + CTRL_RPN_OFFSET;
+ case NRPN:
+ //return l + CTRL_NRPN_OFFSET;
+ return val + 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;
+ }
+ }
+
+//---------------------------------------------------------
+// MidiCtrlValList
+//---------------------------------------------------------
+
+MidiCtrlValList::MidiCtrlValList(int c)
+ {
+ ctrlNum = c;
+ _hwVal = CTRL_VAL_UNKNOWN;
+ _lastValidHWVal = CTRL_VAL_UNKNOWN;
+ }
+
+//---------------------------------------------------------
+// clearDelete
+//---------------------------------------------------------
+
+void MidiCtrlValListList::clearDelete(bool deleteLists)
+{
+ for(iMidiCtrlValList imcvl = begin(); imcvl != end(); ++imcvl)
+ {
+ if(imcvl->second)
+ {
+ imcvl->second->clear();
+ if(deleteLists)
+ delete imcvl->second;
+ }
+ }
+ if(deleteLists)
+ clear();
+}
+
+//---------------------------------------------------------
+// setHwVal
+// Returns false if value is already equal, true if value is changed.
+//---------------------------------------------------------
+
+bool MidiCtrlValList::setHwVal(const int v)
+{
+ if(_hwVal == v)
+ return false;
+
+ _hwVal = v;
+ if(_hwVal != CTRL_VAL_UNKNOWN)
+ _lastValidHWVal = _hwVal;
+
+ return true;
+}
+
+//---------------------------------------------------------
+// setHwVals
+// Sets current and last HW values.
+// Handy for forcing labels to show 'off' and knobs to show specific values
+// without having to send two messages.
+// Returns false if both values are already set, true if either value is changed.
+//---------------------------------------------------------
+
+bool MidiCtrlValList::setHwVals(const int v, int const lastv)
+{
+ if(_hwVal == v && _lastValidHWVal == lastv)
+ return false;
+
+ _hwVal = v;
+ // Don't want to break our own rules - _lastValidHWVal can't be unknown while _hwVal is valid...
+ // But _hwVal can be unknown while _lastValidHWVal is valid...
+ if(lastv == CTRL_VAL_UNKNOWN)
+ _lastValidHWVal = _hwVal;
+ else
+ _lastValidHWVal = lastv;
+
+ return true;
+}
+
+//---------------------------------------------------------
+// partAtTick
+//---------------------------------------------------------
+
+Part* MidiCtrlValList::partAtTick(int tick) const
+{
+ // Determine (first) part at tick. Return 0 if none found.
+
+ ciMidiCtrlVal i = lower_bound(tick);
+ if (i == end() || i->first != tick) {
+ if (i == begin())
+ return 0;
+ --i;
+ }
+ return i->second.part;
+}
+
+//---------------------------------------------------------
+// iValue
+//---------------------------------------------------------
+
+iMidiCtrlVal MidiCtrlValList::iValue(int tick)
+{
+ // Determine value at tick, using values stored by ANY part...
+
+ iMidiCtrlVal i = lower_bound(tick);
+ if (i == end() || i->first != tick) {
+ if (i == begin())
+ return end();
+ --i;
+ }
+ return i;
+}
+
+//---------------------------------------------------------
+// value
+//---------------------------------------------------------
+
+int MidiCtrlValList::value(int tick) const
+{
+ // Determine value at tick, using values stored by ANY part...
+
+ ciMidiCtrlVal i = lower_bound(tick);
+ if (i == end() || i->first != tick) {
+ if (i == begin())
+ return CTRL_VAL_UNKNOWN;
+ --i;
+ }
+ return i->second.val;
+}
+
+int MidiCtrlValList::value(int tick, Part* part) const
+{
+ // Determine value at tick, using values stored by the SPECIFIC part...
+
+ // Get the first value found with with a tick equal or greater than specified tick.
+ ciMidiCtrlVal i = lower_bound(tick);
+ // Since values from different parts can have the same tick, scan for part in all values at that tick.
+ for(ciMidiCtrlVal j = i; j != end() && j->first == tick; ++j)
+ {
+ if(j->second.part == part)
+ return j->second.val;
+ }
+ // Scan for part in all previous values, regardless of tick.
+ while(i != begin())
+ {
+ --i;
+ if(i->second.part == part)
+ return i->second.val;
+ }
+ // No previous values were found belonging to the specified part.
+ return CTRL_VAL_UNKNOWN;
+}
+
+//---------------------------------------------------------
+// add
+// return true if new controller value added or replaced
+//---------------------------------------------------------
+
+// Changed by T356.
+//bool MidiCtrlValList::add(int tick, int val)
+bool MidiCtrlValList::addMCtlVal(int tick, int val, Part* part)
+ {
+ iMidiCtrlVal e = findMCtlVal(tick, part);
+
+ if (e != end()) {
+ if(e->second.val != val)
+ {
+ e->second.val = val;
+ return true;
+ }
+ return false;
+ }
+
+ MidiCtrlVal v;
+ v.val = val;
+ v.part = part;
+ insert(std::pair<const int, MidiCtrlVal> (tick, v));
+ return true;
+ }
+
+//---------------------------------------------------------
+// del
+//---------------------------------------------------------
+
+// Changed by T356.
+//void MidiCtrlValList::del(int tick)
+void MidiCtrlValList::delMCtlVal(int tick, Part* part)
+{
+ iMidiCtrlVal e = findMCtlVal(tick, part);
+ if (e == end()) {
+ if(debugMsg)
+ printf("MidiCtrlValList::delMCtlVal(%d): not found (size %zd)\n", tick, size());
+ return;
+ }
+ erase(e);
+}
+
+//---------------------------------------------------------
+// find
+//---------------------------------------------------------
+
+// Changed by T356.
+//iMidiCtrlVal MidiCtrlValList::find(int tick, Part* part)
+iMidiCtrlVal MidiCtrlValList::findMCtlVal(int tick, Part* part)
+{
+ MidiCtrlValRange range = equal_range(tick);
+ for(iMidiCtrlVal i = range.first; i != range.second; ++i)
+ {
+ if(i->second.part == part)
+ return i;
+ }
+ return end();
+}
+
+//---------------------------------------------------------
+// MidiControllerList
+//---------------------------------------------------------
+
+MidiControllerList::MidiControllerList(const MidiControllerList& mcl) : std::map<int, MidiController*>()
+{
+ //copy(mcl);
+
+ for(ciMidiController i = mcl.begin(); i != mcl.end(); ++i)
+ {
+ MidiController* mc = i->second;
+ add(new MidiController(*mc));
+ }
+}
+
+//---------------------------------------------------------
+// copy
+//---------------------------------------------------------
+//void MidiControllerList::copy(const MidiControllerList &mcl)
+//{
+// clear();
+// for(ciMidiController i = mcl.begin(); i != mcl.end(); ++i)
+// {
+// MidiController* mc = *i;
+// push_back(new MidiController(*mc));
+// }
+//}
+
+//---------------------------------------------------------
+// operator =
+//---------------------------------------------------------
+//MidiControllerList& MidiControllerList::operator= (const MidiControllerList &mcl)
+//{
+// copy(mcl);
+// return *this;
+//}
diff --git a/muse2/muse/midictrl.h b/muse2/muse/midictrl.h
new file mode 100644
index 00000000..69650a65
--- /dev/null
+++ b/muse2/muse/midictrl.h
@@ -0,0 +1,255 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: midictrl.h,v 1.16.2.8 2009/11/25 09:09:43 terminator356 Exp $
+//
+// (C) Copyright 1999-2003 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __MIDICTRL_H__
+#define __MIDICTRL_H__
+
+#include <qstring.h>
+#include <list>
+#include <map>
+
+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_INTERNAL_OFFSET = 0x40000;
+
+// p3.3.37
+//const int CTRL_PITCH = 0x40000;
+//const int CTRL_PROGRAM = 0x40001;
+//const int CTRL_VELOCITY = 0x40002;
+//const int CTRL_MASTER_VOLUME = 0x40003;
+const int CTRL_PITCH = CTRL_INTERNAL_OFFSET;
+const int CTRL_PROGRAM = CTRL_INTERNAL_OFFSET + 1;
+const int CTRL_VELOCITY = CTRL_INTERNAL_OFFSET + 2;
+//const int CTRL_MASTER_VOLUME = CTRL_INTERNAL_OFFSET + 3;
+
+const int CTRL_VAL_UNKNOWN = 0x10000000; // 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;
+
+class Xml;
+class Part;
+
+//---------------------------------------------------------
+// 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;
+ int _num; // Controller Number
+ int _minVal; // controller value range (used in gui)
+ int _maxVal;
+ int _initVal;
+ int _bias;
+ void updateBias();
+
+ public:
+ MidiController();
+ MidiController(const QString& n, int num, int min, int max, int init);
+ MidiController(const MidiController& mc);
+ void copy(const MidiController &mc);
+ MidiController& operator= (const MidiController &mc);
+
+ const QString& name() const { return _name; }
+ int num() const { return _num; }
+ void setName(const QString& s) { _name = s; }
+ void setNum(int v) { _num = v; }
+ void write(int level, Xml& xml) const;
+ void read(Xml& xml);
+ 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; updateBias(); }
+ void setMaxVal(int val) { _maxVal = val; updateBias(); }
+ int bias() const { return _bias; }
+ static int genNum(ControllerType, int, int);
+ };
+
+// Added by T356.
+struct MidiCtrlVal
+{
+ // The part containing the event which this value came from. Used for searching and deleting.
+ Part* part;
+ // The stored value.
+ int val;
+};
+
+//---------------------------------------------------------
+// MidiCtrlValList
+// arrange controller events of a specific type in a
+// list for easy retrieval
+//---------------------------------------------------------
+
+// Changed by T356.
+//typedef std::map<int, int, std::less<int> >::iterator iMidiCtrlVal;
+//typedef std::map<int, int, std::less<int> >::const_iterator ciMidiCtrlVal;
+typedef std::multimap<int, MidiCtrlVal, std::less<int> >::iterator iMidiCtrlVal;
+typedef std::multimap<int, MidiCtrlVal, std::less<int> >::const_iterator ciMidiCtrlVal;
+
+typedef std::pair <iMidiCtrlVal, iMidiCtrlVal> MidiCtrlValRange;
+// Changed by T356.
+//class MidiCtrlValList : public std::map<int, int, std::less<int> > {
+class MidiCtrlValList : public std::multimap<int, MidiCtrlVal, std::less<int> > {
+
+ int ctrlNum;
+ int _lastValidHWVal;
+ int _hwVal; // current set value in midi hardware
+ // can be CTRL_VAL_UNKNOWN
+
+ // Hide built-in finds.
+ iMidiCtrlVal find(const int&) { return end(); };
+ ciMidiCtrlVal find(const int&) const { return end(); };
+
+ public:
+ MidiCtrlValList(int num);
+
+ Part* partAtTick(int tick) const;
+
+ iMidiCtrlVal iValue(int tick);
+ int value(int tick) const;
+ //int value(int tick, Part** part = 0) const;
+ int value(int tick, Part* part) const;
+ // Changed by T356.
+ //bool add(int tick, int value);
+ //void del(int tick);
+ bool addMCtlVal(int tick, int value, Part* part);
+ void delMCtlVal(int tick, Part* part);
+
+ iMidiCtrlVal findMCtlVal(int tick, Part* part);
+
+ int hwVal() const { return _hwVal; }
+ bool setHwVal(const int v);
+ bool setHwVals(const int v, const int lastv);
+ int num() const { return ctrlNum; }
+ int lastValidHWVal() const { return _lastValidHWVal; }
+ };
+
+//---------------------------------------------------------
+// MidiCtrlValListList
+// List of midi controller value lists.
+// This list represents the controller state of a
+// midi port.
+// index = (channelNumber << 24) + ctrlNumber
+//---------------------------------------------------------
+
+typedef std::map<int, MidiCtrlValList*, std::less<int> >::iterator iMidiCtrlValList;
+typedef std::map<int, MidiCtrlValList*, std::less<int> >::const_iterator ciMidiCtrlValList;
+
+class MidiCtrlValListList : public std::map<int, MidiCtrlValList*, std::less<int> > {
+ public:
+ void add(int channel, MidiCtrlValList* vl) {
+ insert(std::pair<const int, MidiCtrlValList*>((channel << 24) + vl->num(), vl));
+ }
+ iMidiCtrlValList find(int channel, int ctrl) {
+ return std::map<int, MidiCtrlValList*, std::less<int> >::find((channel << 24) + ctrl);
+ }
+ void clearDelete(bool deleteLists);
+ };
+
+//---------------------------------------------------------
+// MidiControllerList
+// this is a list of used midi controllers created
+// - excplicit by user
+// - implicit during import of a midi file
+//---------------------------------------------------------
+
+class MidiControllerList : public std::map<int, MidiController*, std::less<int> >
+{
+ public:
+ MidiControllerList() {}
+ MidiControllerList(const MidiControllerList& mcl);
+
+ void add(MidiController* mc) { insert(std::pair<int, MidiController*>(mc->num(), mc)); }
+};
+
+typedef MidiControllerList::iterator iMidiController;
+typedef MidiControllerList::const_iterator ciMidiController;
+typedef MidiControllerList MidiControllerList;
+
+extern MidiControllerList defaultMidiController;
+extern void initMidiController();
+extern MidiController::ControllerType midiControllerType(int num);
+
+
+extern const QString& int2ctrlType(int n);
+extern MidiController::ControllerType ctrlType2Int(const QString& s);
+extern QString midiCtrlName(int ctrl);
+extern MidiController veloCtrl;
+
+
+typedef std::map<int, int, std::less<int> > MidiCtl2LadspaPortMap;
+typedef MidiCtl2LadspaPortMap::iterator iMidiCtl2LadspaPort;
+typedef MidiCtl2LadspaPortMap::const_iterator ciMidiCtl2LadspaPort;
+
+
+#endif
+
diff --git a/muse2/muse/mididev.cpp b/muse2/muse/mididev.cpp
new file mode 100644
index 00000000..7f52fc2e
--- /dev/null
+++ b/muse2/muse/mididev.cpp
@@ -0,0 +1,548 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: mididev.cpp,v 1.10.2.6 2009/11/05 03:14:35 terminator356 Exp $
+//
+// (C) Copyright 1999-2004 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include <config.h>
+
+#include <qmessagebox.h>
+#include <stdio.h>
+#include <unistd.h>
+#include <errno.h>
+
+#include "midictrl.h"
+#include "song.h"
+#include "midi.h"
+#include "midiport.h"
+#include "mididev.h"
+#include "config.h"
+#include "globals.h"
+#include "audio.h"
+#include "midiseq.h"
+//#include "sync.h"
+#include "midiitransform.h"
+
+#ifdef MIDI_DRIVER_MIDI_SERIAL
+extern void initMidiSerial();
+#endif
+extern bool initMidiAlsa();
+extern bool initMidiJack();
+
+MidiDeviceList midiDevices;
+extern void processMidiInputTransformPlugins(MEvent&);
+
+extern unsigned int volatile lastExtMidiSyncTick;
+
+//---------------------------------------------------------
+// initMidiDevices
+//---------------------------------------------------------
+
+void initMidiDevices()
+ {
+#ifdef MIDI_DRIVER_MIDI_SERIAL
+ initMidiSerial();
+#endif
+ if(initMidiAlsa())
+ {
+ QMessageBox::critical(NULL, "MusE fatal error.", "MusE failed to initialize the\n"
+ "Alsa midi subsystem, check\n"
+ "your configuration.");
+ exit(-1);
+ }
+
+ if(initMidiJack())
+ {
+ QMessageBox::critical(NULL, "MusE fatal error.", "MusE failed to initialize the\n"
+ "Jack midi subsystem, check\n"
+ "your configuration.");
+ exit(-1);
+ }
+ }
+
+//---------------------------------------------------------
+// init
+//---------------------------------------------------------
+
+void MidiDevice::init()
+ {
+ _readEnable = false;
+ _writeEnable = false;
+ _rwFlags = 3;
+ _openFlags = 3;
+ _port = -1;
+ _nextPlayEvent = _playEvents.begin();
+ }
+
+//---------------------------------------------------------
+// MidiDevice
+//---------------------------------------------------------
+
+MidiDevice::MidiDevice()
+ {
+ ///_recBufFlipped = false;
+ //_tmpRecordCount = 0;
+ for(unsigned int i = 0; i < MIDI_CHANNELS + 1; ++i)
+ _tmpRecordCount[i] = 0;
+
+ _sysexFIFOProcessed = false;
+ //_sysexWritingChunks = false;
+ _sysexReadingChunks = false;
+
+ init();
+ }
+
+MidiDevice::MidiDevice(const QString& n)
+ : _name(n)
+ {
+ ///_recBufFlipped = false;
+ //_tmpRecordCount = 0;
+ for(unsigned int i = 0; i < MIDI_CHANNELS + 1; ++i)
+ _tmpRecordCount[i] = 0;
+
+ _sysexFIFOProcessed = false;
+ //_sysexWritingChunks = false;
+ _sysexReadingChunks = false;
+
+ init();
+ }
+
+//---------------------------------------------------------
+// filterEvent
+// return true if event filtered
+//---------------------------------------------------------
+
+//static bool filterEvent(const MEvent& event, int type, bool thru)
+bool filterEvent(const MEvent& event, int type, bool thru)
+ {
+ switch(event.type()) {
+ case ME_NOTEON:
+ case ME_NOTEOFF:
+ if (type & MIDI_FILTER_NOTEON)
+ return true;
+ break;
+ case ME_POLYAFTER:
+ if (type & MIDI_FILTER_POLYP)
+ return true;
+ break;
+ case ME_CONTROLLER:
+ if (type & MIDI_FILTER_CTRL)
+ return true;
+ if (!thru && (midiFilterCtrl1 == event.dataA()
+ || midiFilterCtrl2 == event.dataA()
+ || midiFilterCtrl3 == event.dataA()
+ || midiFilterCtrl4 == event.dataA())) {
+ return true;
+ }
+ break;
+ case ME_PROGRAM:
+ if (type & MIDI_FILTER_PROGRAM)
+ return true;
+ break;
+ case ME_AFTERTOUCH:
+ if (type & MIDI_FILTER_AT)
+ return true;
+ break;
+ case ME_PITCHBEND:
+ if (type & MIDI_FILTER_PITCH)
+ return true;
+ break;
+ case ME_SYSEX:
+ if (type & MIDI_FILTER_SYSEX)
+ return true;
+ break;
+ default:
+ break;
+ }
+ return false;
+ }
+
+//---------------------------------------------------------
+// afterProcess
+// clear all recorded events after a process cycle
+//---------------------------------------------------------
+
+void MidiDevice::afterProcess()
+{
+ //while (_tmpRecordCount--)
+ // _recordFifo.remove();
+
+ for(unsigned int i = 0; i < MIDI_CHANNELS + 1; ++i)
+ {
+ while (_tmpRecordCount[i]--)
+ _recordFifo[i].remove();
+ }
+}
+
+//---------------------------------------------------------
+// beforeProcess
+// "freeze" fifo for this process cycle
+//---------------------------------------------------------
+
+void MidiDevice::beforeProcess()
+{
+ //if (!jackPort(0).isZero())
+ // audioDriver->collectMidiEvents(this, jackPort(0));
+
+ //_tmpRecordCount = _recordFifo.getSize();
+ for(unsigned int i = 0; i < MIDI_CHANNELS + 1; ++i)
+ _tmpRecordCount[i] = _recordFifo[i].getSize();
+
+ // Reset this.
+ _sysexFIFOProcessed = false;
+}
+
+/*
+//---------------------------------------------------------
+// getEvents
+//---------------------------------------------------------
+
+void MidiDevice::getEvents(unsigned , unsigned , int ch, MPEventList* dst) //from //to
+{
+ for (int i = 0; i < _tmpRecordCount; ++i) {
+ const MidiPlayEvent& ev = _recordFifo.peek(i);
+ if (ch == -1 || (ev.channel() == ch))
+ dst->insert(ev);
+ }
+
+ //while(!recordFifo.isEmpty())
+ //{
+ // MidiPlayEvent e(recordFifo.get());
+ // if (ch == -1 || (e.channel() == ch))
+ // dst->insert(e);
+ //}
+}
+*/
+
+/*
+//---------------------------------------------------------
+// recordEvent
+//---------------------------------------------------------
+
+MREventList* MidiDevice::recordEvents()
+{
+ // Return which list is NOT currently being filled with incoming midi events. By T356.
+ if(_recBufFlipped)
+ return &_recordEvents;
+ else
+ return &_recordEvents2;
+}
+*/
+
+//---------------------------------------------------------
+// recordEvent
+//---------------------------------------------------------
+
+void MidiDevice::recordEvent(MidiRecordEvent& event)
+ {
+ // p3.3.35
+ // TODO: Tested, but record resolution not so good. Switch to wall clock based separate list in MidiDevice. And revert this line.
+ //event.setTime(audio->timestamp());
+ event.setTime(extSyncFlag.value() ? lastExtMidiSyncTick : audio->timestamp());
+
+ //printf("MidiDevice::recordEvent event time:%d\n", event.time());
+
+ // Added by Tim. p3.3.8
+
+ // By T356. Set the loop number which the event came in at.
+ //if(audio->isRecording())
+ if(audio->isPlaying())
+ event.setLoopNum(audio->loopCount());
+
+ if (midiInputTrace) {
+ printf("MidiInput: ");
+ event.dump();
+ }
+
+ int typ = event.type();
+
+ if(_port != -1)
+ {
+ int idin = midiPorts[_port].syncInfo().idIn();
+
+// p3.3.26 1/23/10 Section was disabled, enabled by Tim.
+//#if 0
+
+ //---------------------------------------------------
+ // filter some SYSEX events
+ //---------------------------------------------------
+
+ if (typ == ME_SYSEX) {
+ const unsigned char* p = event.data();
+ int n = event.len();
+ if (n >= 4) {
+ if ((p[0] == 0x7f)
+ //&& ((p[1] == 0x7f) || (p[1] == rxDeviceId))) {
+ && ((p[1] == 0x7f) || (idin == 0x7f) || (p[1] == idin))) {
+ if (p[2] == 0x06) {
+ //mmcInput(p, n);
+ midiSeq->mmcInput(_port, p, n);
+ return;
+ }
+ if (p[2] == 0x01) {
+ //mtcInputFull(p, n);
+ midiSeq->mtcInputFull(_port, p, n);
+ return;
+ }
+ }
+ else if (p[0] == 0x7e) {
+ //nonRealtimeSystemSysex(p, n);
+ midiSeq->nonRealtimeSystemSysex(_port, p, n);
+ return;
+ }
+ }
+ }
+ else
+ // p3.3.26 1/23/10 Moved here from alsaProcessMidiInput(). Anticipating Jack midi support, so don't make it ALSA specific. Tim.
+ // Trigger general activity indicator detector. Sysex has no channel, don't trigger.
+ midiPorts[_port].syncInfo().trigActDetect(event.channel());
+
+//#endif
+
+ }
+
+ //
+ // process midi event input filtering and
+ // transformation
+ //
+
+ processMidiInputTransformPlugins(event);
+
+ if (filterEvent(event, midiRecordType, false))
+ return;
+
+ if (!applyMidiInputTransformation(event)) {
+ if (midiInputTrace)
+ printf(" midi input transformation: event filtered\n");
+ return;
+ }
+
+ //
+ // transfer noteOn events to gui for step recording and keyboard
+ // remote control
+ //
+ if (typ == ME_NOTEON) {
+ int pv = ((event.dataA() & 0xff)<<8) + (event.dataB() & 0xff);
+ song->putEvent(pv);
+ }
+
+ ///if(_recBufFlipped)
+ /// _recordEvents2.add(event); // add event to secondary list of recorded events
+ ///else
+ /// _recordEvents.add(event); // add event to primary list of recorded events
+
+ //if(_recordFifo.put(MidiPlayEvent(event)))
+ // printf("MidiDevice::recordEvent: fifo overflow\n");
+
+ // p3.3.38
+ // Do not bother recording if it is NOT actually being used by a port.
+ // Because from this point on, process handles things, by selected port.
+ if(_port == -1)
+ return;
+
+ // Split the events up into channel fifos. Special 'channel' number 17 for sysex events.
+ unsigned int ch = (typ == ME_SYSEX)? MIDI_CHANNELS : event.channel();
+ if(_recordFifo[ch].put(MidiPlayEvent(event)))
+ printf("MidiDevice::recordEvent: fifo channel %d overflow\n", ch);
+ }
+
+//---------------------------------------------------------
+// find
+//---------------------------------------------------------
+
+MidiDevice* MidiDeviceList::find(const QString& s, int typeHint)
+ {
+ for (iMidiDevice i = begin(); i != end(); ++i)
+ if( (typeHint == -1 || typeHint == (*i)->deviceType()) && ((*i)->name() == s) )
+ return *i;
+ return 0;
+ }
+
+iMidiDevice MidiDeviceList::find(const MidiDevice* dev)
+ {
+ for (iMidiDevice i = begin(); i != end(); ++i)
+ if (*i == dev)
+ return i;
+ return end();
+ }
+
+//---------------------------------------------------------
+// add
+//---------------------------------------------------------
+
+void MidiDeviceList::add(MidiDevice* dev)
+ {
+ bool gotUniqueName=false;
+ int increment = 0;
+ QString origname = dev->name();
+ while (!gotUniqueName) {
+ gotUniqueName = true;
+ // check if the name's been taken
+ for (iMidiDevice i = begin(); i != end(); ++i) {
+ const QString s = (*i)->name();
+ if (s == dev->name())
+ {
+ char incstr[4];
+ sprintf(incstr,"_%d",++increment);;
+ dev->setName(origname + incstr);
+ gotUniqueName = false;
+ }
+ }
+ }
+
+ push_back(dev);
+ }
+
+//---------------------------------------------------------
+// remove
+//---------------------------------------------------------
+
+void MidiDeviceList::remove(MidiDevice* dev)
+ {
+ for (iMidiDevice i = begin(); i != end(); ++i) {
+ if (*i == dev) {
+ erase(i);
+ break;
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// sendNullRPNParams
+//---------------------------------------------------------
+
+bool MidiDevice::sendNullRPNParams(int chn, bool nrpn)
+{
+ if(_port == -1)
+ return false;
+
+ int nv = midiPorts[_port].nullSendValue();
+ if(nv == -1)
+ return false;
+
+ int nvh = (nv >> 8) & 0xff;
+ int nvl = nv & 0xff;
+ if(nvh != 0xff)
+ {
+ if(nrpn)
+ putMidiEvent(MidiPlayEvent(0, 0, chn, ME_CONTROLLER, CTRL_HNRPN, nvh & 0x7f));
+ else
+ putMidiEvent(MidiPlayEvent(0, 0, chn, ME_CONTROLLER, CTRL_HRPN, nvh & 0x7f));
+ }
+ if(nvl != 0xff)
+ {
+ if(nrpn)
+ putMidiEvent(MidiPlayEvent(0, 0, chn, ME_CONTROLLER, CTRL_LNRPN, nvl & 0x7f));
+ else
+ putMidiEvent(MidiPlayEvent(0, 0, chn, ME_CONTROLLER, CTRL_LRPN, nvl & 0x7f));
+ }
+ return true;
+}
+
+//---------------------------------------------------------
+// putEvent
+// return true if event cannot be delivered
+// TODO: retry on controller putMidiEvent
+//---------------------------------------------------------
+
+bool MidiDevice::putEvent(const MidiPlayEvent& ev)
+ {
+ if(!_writeEnable)
+ //return true;
+ return false;
+
+ if (ev.type() == ME_CONTROLLER) {
+ int a = ev.dataA();
+ int b = ev.dataB();
+ int chn = ev.channel();
+ if (a == CTRL_PITCH) {
+ return putMidiEvent(MidiPlayEvent(0, 0, chn, ME_PITCHBEND, b, 0));
+ }
+ 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)
+ putMidiEvent(MidiPlayEvent(0, 0, chn, ME_CONTROLLER, CTRL_HBANK, hb));
+ if (lb != 0xff)
+ putMidiEvent(MidiPlayEvent(0, 0, chn, ME_CONTROLLER, CTRL_LBANK, lb));
+ return putMidiEvent(MidiPlayEvent(0, 0, chn, ME_PROGRAM, pr, 0));
+ }
+ }
+#if 1 // if ALSA cannot handle RPN NRPN etc.
+
+ // p3.3.37
+ //if (a < 0x1000) { // 7 Bit Controller
+ if (a < CTRL_14_OFFSET) { // 7 Bit Controller
+ //putMidiEvent(MidiPlayEvent(0, 0, chn, ME_CONTROLLER, a, b));
+ putMidiEvent(ev);
+ }
+ //else if (a < 0x20000) { // 14 bit high resolution controller
+ 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;
+ putMidiEvent(MidiPlayEvent(0, 0, chn, ME_CONTROLLER, ctrlH, dataH));
+ putMidiEvent(MidiPlayEvent(0, 0, chn, ME_CONTROLLER, ctrlL, dataL));
+ }
+ //else if (a < 0x30000) { // RPN 7-Bit Controller
+ else if (a < CTRL_NRPN_OFFSET) { // RPN 7-Bit Controller
+ int ctrlH = (a >> 8) & 0x7f;
+ int ctrlL = a & 0x7f;
+ putMidiEvent(MidiPlayEvent(0, 0, chn, ME_CONTROLLER, CTRL_HRPN, ctrlH));
+ putMidiEvent(MidiPlayEvent(0, 0, chn, ME_CONTROLLER, CTRL_LRPN, ctrlL));
+ putMidiEvent(MidiPlayEvent(0, 0, chn, ME_CONTROLLER, CTRL_HDATA, b));
+
+ // Added by T356. Select null parameters so that subsequent data controller
+ // events do not upset the last *RPN controller.
+ sendNullRPNParams(chn, false);
+ }
+ //else if (a < 0x40000) { // NRPN 7-Bit Controller
+ else if (a < CTRL_INTERNAL_OFFSET) { // NRPN 7-Bit Controller
+ int ctrlH = (a >> 8) & 0x7f;
+ int ctrlL = a & 0x7f;
+ putMidiEvent(MidiPlayEvent(0, 0, chn, ME_CONTROLLER, CTRL_HNRPN, ctrlH));
+ putMidiEvent(MidiPlayEvent(0, 0, chn, ME_CONTROLLER, CTRL_LNRPN, ctrlL));
+ putMidiEvent(MidiPlayEvent(0, 0, chn, ME_CONTROLLER, CTRL_HDATA, b));
+
+ sendNullRPNParams(chn, true);
+ }
+ //else if (a < 0x60000) { // RPN14 Controller
+ 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;
+ putMidiEvent(MidiPlayEvent(0, 0, chn, ME_CONTROLLER, CTRL_HRPN, ctrlH));
+ putMidiEvent(MidiPlayEvent(0, 0, chn, ME_CONTROLLER, CTRL_LRPN, ctrlL));
+ putMidiEvent(MidiPlayEvent(0, 0, chn, ME_CONTROLLER, CTRL_HDATA, dataH));
+ putMidiEvent(MidiPlayEvent(0, 0, chn, ME_CONTROLLER, CTRL_LDATA, dataL));
+
+ sendNullRPNParams(chn, false);
+ }
+ //else if (a < 0x70000) { // NRPN14 Controller
+ 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;
+ putMidiEvent(MidiPlayEvent(0, 0, chn, ME_CONTROLLER, CTRL_HNRPN, ctrlH));
+ putMidiEvent(MidiPlayEvent(0, 0, chn, ME_CONTROLLER, CTRL_LNRPN, ctrlL));
+ putMidiEvent(MidiPlayEvent(0, 0, chn, ME_CONTROLLER, CTRL_HDATA, dataH));
+ putMidiEvent(MidiPlayEvent(0, 0, chn, ME_CONTROLLER, CTRL_LDATA, dataL));
+
+ sendNullRPNParams(chn, true);
+ }
+ else {
+ printf("putEvent: unknown controller type 0x%x\n", a);
+ }
+ return false;
+#endif
+ }
+ return putMidiEvent(ev);
+ }
diff --git a/muse2/muse/mididev.h b/muse2/muse/mididev.h
new file mode 100644
index 00000000..1b2cf055
--- /dev/null
+++ b/muse2/muse/mididev.h
@@ -0,0 +1,157 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: mididev.h,v 1.3.2.4 2009/04/04 01:49:50 terminator356 Exp $
+//
+// (C) Copyright 2000 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __MIDIDEV_H__
+#define __MIDIDEV_H__
+
+#include <qstring.h>
+#include <list>
+
+#include "mpevent.h"
+//#include "sync.h"
+#include "route.h"
+#include "globaldefs.h"
+
+//class RouteList;
+class Xml;
+
+//---------------------------------------------------------
+// MidiDevice
+//---------------------------------------------------------
+
+class MidiDevice {
+ MPEventList _stuckNotes;
+ MPEventList _playEvents;
+ iMPEvent _nextPlayEvent;
+ ///MREventList _recordEvents;
+ ///MREventList _recordEvents2;
+
+ // Used for multiple reads of fifos during process.
+ //int _tmpRecordCount;
+ int _tmpRecordCount[MIDI_CHANNELS + 1];
+ bool _sysexFIFOProcessed;
+
+ ///bool _recBufFlipped;
+ // Holds sync settings and detection monitors.
+ //MidiSyncInfo _syncInfo;
+
+ protected:
+ QString _name;
+ int _port; // connected to midi port; -1 - not connected
+ int _rwFlags; // possible open flags, 1 write, 2 read, 3 rw
+ int _openFlags; // configured open flags
+ bool _readEnable; // set when opened/closed.
+ bool _writeEnable; //
+ //int _sysexWriteChunk;
+ //int _sysexReadChunk;
+ //bool _sysexWritingChunks;
+ bool _sysexReadingChunks;
+
+ // Recording fifo.
+ //MidiFifo _recordFifo;
+ // Recording fifos. To speed up processing, one per channel plus one special system 'channel' for channel-less events like sysex.
+ MidiFifo _recordFifo[MIDI_CHANNELS + 1];
+
+ RouteList _inRoutes, _outRoutes;
+
+ void init();
+ virtual bool putMidiEvent(const MidiPlayEvent&) = 0;
+
+ public:
+ enum { ALSA_MIDI=0, JACK_MIDI=1, SYNTH_MIDI=2 };
+
+ MidiDevice();
+ MidiDevice(const QString& name);
+ virtual ~MidiDevice() {}
+
+ virtual int deviceType() = 0;
+
+ virtual void* clientPort() { return 0; }
+ virtual QString open() = 0;
+ virtual void close() = 0;
+ virtual void writeRouting(int, Xml&) const { };
+
+ RouteList* inRoutes() { return &_inRoutes; }
+ RouteList* outRoutes() { return &_outRoutes; }
+ bool noInRoute() const { return _inRoutes.empty(); }
+ bool noOutRoute() const { return _outRoutes.empty(); }
+
+ const QString& name() const { return _name; }
+ virtual void setName(const QString& s) { _name = s; }
+
+ int midiPort() const { return _port; }
+ void setPort(int p) { _port = p; }
+
+ int rwFlags() const { return _rwFlags; }
+ int openFlags() const { return _openFlags; }
+ void setOpenFlags(int val) { _openFlags = val; }
+ void setrwFlags(int val) { _rwFlags = val; }
+ //MidiSyncInfo& syncInfo() { return _syncInfo; }
+
+ virtual bool isSynti() const { return false; }
+ virtual int selectRfd() { return -1; }
+ virtual int selectWfd() { return -1; }
+ virtual int bytesToWrite() { return 0; }
+ virtual void flush() {}
+ virtual void processInput() {}
+ virtual void discardInput() {}
+
+ virtual void recordEvent(MidiRecordEvent&);
+
+ virtual bool putEvent(const MidiPlayEvent&);
+
+ // For Jack-based devices - called in Jack audio process callback
+ virtual void collectMidiEvents() {}
+ virtual void processMidi() {}
+
+ MPEventList* stuckNotes() { return &_stuckNotes; }
+ MPEventList* playEvents() { return &_playEvents; }
+
+ ///MREventList* recordEvents();
+ ///void flipRecBuffer() { _recBufFlipped = _recBufFlipped ? false : true; }
+ ///bool recBufFlipped() { return _recBufFlipped; }
+ void beforeProcess();
+ void afterProcess();
+ //int tmpRecordCount() { return _tmpRecordCount; }
+ int tmpRecordCount(const unsigned int ch) { return _tmpRecordCount[ch]; }
+ //MidiFifo& recordEvents() { return _recordFifo; }
+ MidiFifo& recordEvents(const unsigned int ch) { return _recordFifo[ch]; }
+ bool sysexFIFOProcessed() { return _sysexFIFOProcessed; }
+ void setSysexFIFOProcessed(bool v) { _sysexFIFOProcessed = v; }
+ //bool sysexWritingChunks() { return _sysexWritingChunks; }
+ //void setSysexWritingChunks(bool v) { _sysexWritingChunks = v; }
+ bool sysexReadingChunks() { return _sysexReadingChunks; }
+ void setSysexReadingChunks(bool v) { _sysexReadingChunks = v; }
+ //virtual void getEvents(unsigned /*from*/, unsigned /*to*/, int /*channel*/, MPEventList* /*dst*/);
+
+ iMPEvent nextPlayEvent() { return _nextPlayEvent; }
+ void setNextPlayEvent(iMPEvent i) { _nextPlayEvent = i; }
+ bool sendNullRPNParams(int, bool);
+ };
+
+//---------------------------------------------------------
+// MidiDeviceList
+//---------------------------------------------------------
+
+typedef std::list<MidiDevice*>::iterator iMidiDevice;
+
+class MidiDeviceList : public std::list<MidiDevice*>
+{
+ public:
+ void add(MidiDevice* dev);
+ void remove(MidiDevice* dev);
+ MidiDevice* find(const QString& name, int typeHint = -1);
+ iMidiDevice find(const MidiDevice* dev);
+};
+
+extern MidiDeviceList midiDevices;
+extern void initMidiDevices();
+extern bool filterEvent(const MEvent& event, int type, bool thru);
+
+#endif
+
diff --git a/muse2/muse/midiedit/Makefile.am b/muse2/muse/midiedit/Makefile.am
new file mode 100644
index 00000000..e817dc99
--- /dev/null
+++ b/muse2/muse/midiedit/Makefile.am
@@ -0,0 +1,36 @@
+include $(top_srcdir)/common.am
+
+if PCH
+AM_CXXFLAGS += -include $(top_srcdir)/all.h
+endif
+
+noinst_LIBRARIES = libmidiedit.a
+
+if PCH
+AM_CXXFLAGS += -include $(top_srcdir)/all-pic.h -DINSTPREFIX=\"$(prefix)\"
+else
+AM_CXXFLAGS += -DINSTPREFIX=\"$(prefix)\"
+endif
+
+dist_libmidiedit_a_SOURCES = \
+ drummap.cpp drummap.h \
+ cmd.h \
+ pianoroll.cpp pianoroll.h \
+ piano.cpp piano.h \
+ prcanvas.cpp prcanvas.h \
+ quantconfig.cpp quantconfig.h \
+ drumedit.cpp drumedit.h \
+ dlist.cpp dlist.h \
+ dcanvas.cpp dcanvas.h \
+ ecanvas.cpp ecanvas.h
+
+nodist_libmidiedit_a_SOURCES = \
+ moc_pianoroll.cpp \
+ moc_piano.cpp \
+ moc_prcanvas.cpp \
+ moc_quantconfig.cpp \
+ moc_drumedit.cpp \
+ moc_dlist.cpp \
+ moc_dcanvas.cpp \
+ moc_ecanvas.cpp
+
diff --git a/muse2/muse/midiedit/Makefile.in b/muse2/muse/midiedit/Makefile.in
new file mode 100644
index 00000000..01425ebc
--- /dev/null
+++ b/muse2/muse/midiedit/Makefile.in
@@ -0,0 +1,636 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
+ $(top_srcdir)/common.am
+@PCH_TRUE@am__append_1 = -include $(top_srcdir)/all.h -include \
+@PCH_TRUE@ $(top_srcdir)/all-pic.h -DINSTPREFIX=\"$(prefix)\"
+@PCH_FALSE@am__append_2 = -DINSTPREFIX=\"$(prefix)\"
+subdir = muse/midiedit
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal-include.m4 \
+ $(top_srcdir)/m4/alsa.m4 $(top_srcdir)/m4/docbook.m4 \
+ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
+ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
+ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+LIBRARIES = $(noinst_LIBRARIES)
+ARFLAGS = cru
+libmidiedit_a_AR = $(AR) $(ARFLAGS)
+libmidiedit_a_LIBADD =
+dist_libmidiedit_a_OBJECTS = drummap.$(OBJEXT) pianoroll.$(OBJEXT) \
+ piano.$(OBJEXT) prcanvas.$(OBJEXT) quantconfig.$(OBJEXT) \
+ drumedit.$(OBJEXT) dlist.$(OBJEXT) dcanvas.$(OBJEXT) \
+ ecanvas.$(OBJEXT)
+nodist_libmidiedit_a_OBJECTS = moc_pianoroll.$(OBJEXT) \
+ moc_piano.$(OBJEXT) moc_prcanvas.$(OBJEXT) \
+ moc_quantconfig.$(OBJEXT) moc_drumedit.$(OBJEXT) \
+ moc_dlist.$(OBJEXT) moc_dcanvas.$(OBJEXT) \
+ moc_ecanvas.$(OBJEXT)
+libmidiedit_a_OBJECTS = $(dist_libmidiedit_a_OBJECTS) \
+ $(nodist_libmidiedit_a_OBJECTS)
+DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
+depcomp = $(SHELL) $(top_srcdir)/depcomp
+am__depfiles_maybe = depfiles
+am__mv = mv -f
+CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
+LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
+CXXLD = $(CXX)
+CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \
+ $(LDFLAGS) -o $@
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
+ $(LDFLAGS) -o $@
+SOURCES = $(dist_libmidiedit_a_SOURCES) \
+ $(nodist_libmidiedit_a_SOURCES)
+DIST_SOURCES = $(dist_libmidiedit_a_SOURCES)
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ALSA_CFLAGS = @ALSA_CFLAGS@
+ALSA_LIBS = @ALSA_LIBS@
+AMTAR = @AMTAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DOCBOOKSTYLE = @DOCBOOKSTYLE@
+DOCBOOKTARGETS = @DOCBOOKTARGETS@
+DOT = @DOT@
+DOTPATH = @DOTPATH@
+DOXYGEN = @DOXYGEN@
+DOXYGEN_TREEVIEW = @DOXYGEN_TREEVIEW@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+FLUIDSYNTHDIRS = @FLUIDSYNTHDIRS@
+FST_CFLAGS = @FST_CFLAGS@
+FST_LIBS = @FST_LIBS@
+Fluidsynth_CFLAGS = @Fluidsynth_CFLAGS@
+Fluidsynth_LIBS = @Fluidsynth_LIBS@
+GIVERTCAP = @GIVERTCAP@
+GREP = @GREP@
+HAVEDOT = @HAVEDOT@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JACK_CFLAGS = @JACK_CFLAGS@
+JACK_LIBS = @JACK_LIBS@
+JADE = @JADE@
+LASH_CFLAGS = @LASH_CFLAGS@
+LASH_LIBS = @LASH_LIBS@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LO_CFLAGS = @LO_CFLAGS@
+LO_LIBS = @LO_LIBS@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+MUSECXXFLAGS = @MUSECXXFLAGS@
+NM = @NM@
+NMEDIT = @NMEDIT@
+NSGMLS = @NSGMLS@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PCH = @PCH@
+PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+PYTHON = @PYTHON@
+PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
+PYTHON_INCLUDES = @PYTHON_INCLUDES@
+PYTHON_LIB = @PYTHON_LIB@
+PYTHON_PLATFORM = @PYTHON_PLATFORM@
+PYTHON_PREFIX = @PYTHON_PREFIX@
+PYTHON_VERSION = @PYTHON_VERSION@
+QTDIR_BIN = @QTDIR_BIN@
+QTDIR_INC = @QTDIR_INC@
+QT_LIBS = @QT_LIBS@
+RANLIB = @RANLIB@
+SAMPLERATE_CFLAGS = @SAMPLERATE_CFLAGS@
+SAMPLERATE_LIBS = @SAMPLERATE_LIBS@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SNDFILE_CFLAGS = @SNDFILE_CFLAGS@
+SNDFILE_LIBS = @SNDFILE_LIBS@
+STRIP = @STRIP@
+SUIDBUILD = @SUIDBUILD@
+SUIDINSTALL = @SUIDINSTALL@
+USE_SSE = @USE_SSE@
+UUID_CFLAGS = @UUID_CFLAGS@
+UUID_LIBS = @UUID_LIBS@
+VERSION = @VERSION@
+XMKMF = @XMKMF@
+X_CFLAGS = @X_CFLAGS@
+X_EXTRA_LIBS = @X_EXTRA_LIBS@
+X_LIBS = @X_LIBS@
+X_PRE_LIBS = @X_PRE_LIBS@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+have_docbook = @have_docbook@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+lt_ECHO = @lt_ECHO@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+pkgpyexecdir = @pkgpyexecdir@
+pkgpythondir = @pkgpythondir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+pyexecdir = @pyexecdir@
+pythondir = @pythondir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+synth_fluid = @synth_fluid@
+synth_fluidsynth = @synth_fluidsynth@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+AM_CXXFLAGS = $(MUSECXXFLAGS) -I.. -I$(top_srcdir)/synti \
+ -I$(top_srcdir)/muse/widgets -DQT_SHARED -DQT_THREAD_SUPPORT \
+ -DQT_PLUGIN $(QTDIR_INC) -DQT3_SUPPORT $(am__append_1) \
+ $(am__append_2)
+AM_CPPFLAGS =
+MOC = $(QTDIR_BIN)/moc
+#UIC = $(QTDIR_BIN)/uic3
+UIC = /usr/bin/uic3
+UIFILES = $(wildcard *.ui)
+MOCFILES = $(shell for h in $(filter %.h,$(SOURCES)); do \
+ if grep -q Q_OBJECT $$h; then \
+ echo $$h | sed "s/\(.*\)\.h/moc_\1.cpp/"; \
+ fi; \
+ done)
+
+BUILT_SOURCES = $(MOCFILES) $(UIFILES:%.ui=%.h)
+MOSTLYCLEANFILES = $(MOCFILES) $(UIFILES:%.ui=%.h)
+SUFFIXES = .ui .h.gch
+noinst_LIBRARIES = libmidiedit.a
+dist_libmidiedit_a_SOURCES = \
+ drummap.cpp drummap.h \
+ cmd.h \
+ pianoroll.cpp pianoroll.h \
+ piano.cpp piano.h \
+ prcanvas.cpp prcanvas.h \
+ quantconfig.cpp quantconfig.h \
+ drumedit.cpp drumedit.h \
+ dlist.cpp dlist.h \
+ dcanvas.cpp dcanvas.h \
+ ecanvas.cpp ecanvas.h
+
+nodist_libmidiedit_a_SOURCES = \
+ moc_pianoroll.cpp \
+ moc_piano.cpp \
+ moc_prcanvas.cpp \
+ moc_quantconfig.cpp \
+ moc_drumedit.cpp \
+ moc_dlist.cpp \
+ moc_dcanvas.cpp \
+ moc_ecanvas.cpp
+
+all: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) all-am
+
+.SUFFIXES:
+.SUFFIXES: .ui .h.gch .cpp .lo .o .obj
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/common.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu muse/midiedit/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu muse/midiedit/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+clean-noinstLIBRARIES:
+ -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
+libmidiedit.a: $(libmidiedit_a_OBJECTS) $(libmidiedit_a_DEPENDENCIES)
+ -rm -f libmidiedit.a
+ $(libmidiedit_a_AR) libmidiedit.a $(libmidiedit_a_OBJECTS) $(libmidiedit_a_LIBADD)
+ $(RANLIB) libmidiedit.a
+
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT)
+
+distclean-compile:
+ -rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dcanvas.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dlist.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/drumedit.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/drummap.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ecanvas.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/moc_dcanvas.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/moc_dlist.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/moc_drumedit.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/moc_ecanvas.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/moc_piano.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/moc_pianoroll.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/moc_prcanvas.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/moc_quantconfig.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/piano.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pianoroll.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/prcanvas.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/quantconfig.Po@am__quote@
+
+.cpp.o:
+@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $<
+
+.cpp.obj:
+@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+
+.cpp.lo:
+@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $<
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ mkid -fID $$unique
+tags: TAGS
+
+TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ set x; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: CTAGS
+CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) check-am
+all-am: Makefile $(LIBRARIES)
+installdirs:
+install: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+ -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES)
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+ -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
+clean: clean-am
+
+clean-am: clean-generic clean-libtool clean-noinstLIBRARIES \
+ mostlyclean-am
+
+distclean: distclean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+ distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+ mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: all check install install-am install-strip
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
+ clean-libtool clean-noinstLIBRARIES ctags distclean \
+ distclean-compile distclean-generic distclean-libtool \
+ distclean-tags distdir dvi dvi-am html html-am info info-am \
+ install install-am install-data install-data-am install-dvi \
+ install-dvi-am install-exec install-exec-am install-html \
+ install-html-am install-info install-info-am install-man \
+ install-pdf install-pdf-am install-ps install-ps-am \
+ install-strip installcheck installcheck-am installdirs \
+ maintainer-clean maintainer-clean-generic mostlyclean \
+ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
+ pdf pdf-am ps ps-am tags uninstall uninstall-am
+
+
+de:
+ @for base in $(MOCFILES); do echo -e "\t$${base}.cpp $${base}.h \\"; done
+
+nde:
+ @for base in $(MOCFILES); do echo -e "\tmoc_$${base}.cpp \\"; done
+
+.ui.o: %.h
+ $(UIC) -L $(top_srcdir)/muse/widgets -o $*.cpp -impl $*.h $*.ui
+ $(MOC) $*.h >> $*.cpp
+ $(CXXCOMPILE) -c $*.cpp -o $*.o
+ $(RM) $*.cpp moc_$*.cpp moc_$*.o
+
+.ui.lo: %.h
+ $(UIC) -L $(top_srcdir)/muse/widgets -o $*.cpp -impl $*.h $*.ui
+ $(MOC) $*.h >> $*.cpp
+ $(LTCXXCOMPILE) -c $*.cpp -o $*.lo
+ $(RM) $*.cpp moc_$*.cpp moc_$*.lo moc_$*.o
+
+moc_%.cpp: %.h
+ $(MOC) $< -o $@
+
+%.h: %.ui
+ $(UIC) -o $@ $<
+# $(UIC) -L $(top_srcdir)/muse/widgets -o $@ $<
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/muse2/muse/midiedit/cmd.h b/muse2/muse/midiedit/cmd.h
new file mode 100644
index 00000000..abbcdcf3
--- /dev/null
+++ b/muse2/muse/midiedit/cmd.h
@@ -0,0 +1,26 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: cmd.h,v 1.1.1.1 2003/10/27 18:52:20 wschweer Exp $
+// (C) Copyright 2000 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __CMD_H__
+#define __CMD_H__
+
+#define CMD_LEFT 0
+#define CMD_RIGHT 1
+#define CMD_INSERT 2
+#define CMD_DELETE 3
+#define CMD_1 4
+#define CMD_2 5
+#define CMD_3 6
+#define CMD_4 7
+#define CMD_5 8
+#define CMD_6 9
+#define CMD_7 10
+#define CMD_T 11
+#define CMD_period 12
+
+#endif
+
diff --git a/muse2/muse/midiedit/dcanvas.cpp b/muse2/muse/midiedit/dcanvas.cpp
new file mode 100644
index 00000000..65138bb4
--- /dev/null
+++ b/muse2/muse/midiedit/dcanvas.cpp
@@ -0,0 +1,1291 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: dcanvas.cpp,v 1.16.2.10 2009/10/15 22:45:50 terminator356 Exp $
+// (C) Copyright 1999 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include <qpainter.h>
+#include <qapplication.h>
+#include <qclipboard.h>
+#include <q3dragobject.h>
+//Added by qt3to4:
+#include <QDragLeaveEvent>
+#include <Q3PointArray>
+#include <Q3CString>
+#include <QDragEnterEvent>
+#include <QDragMoveEvent>
+#include <QDropEvent>
+#include <QResizeEvent>
+
+#include <stdio.h>
+#include <values.h>
+#include <errno.h>
+#include <sys/stat.h>
+#include <sys/mman.h>
+
+#include "dcanvas.h"
+#include "midieditor.h"
+#include "drummap.h"
+#include "event.h"
+#include "mpevent.h"
+#include "xml.h"
+#include "globals.h"
+#include "midiport.h"
+#include "audio.h"
+#include "velocity.h"
+
+#define CARET 10
+#define CARET2 5
+
+//---------------------------------------------------------
+// DEvent
+//---------------------------------------------------------
+
+DEvent::DEvent(Event e, Part* p)
+ : CItem(e, p)
+ {
+ int instr = e.pitch();
+ int y = instr * TH + TH/2;
+ int tick = e.tick() + p->tick();
+ setPos(QPoint(tick, y));
+ setBBox(QRect(-CARET2, -CARET2, CARET, CARET));
+ }
+
+//---------------------------------------------------------
+// addItem
+//---------------------------------------------------------
+
+void DrumCanvas::addItem(Part* part, Event& event)
+ {
+ if (signed(event.tick())<0) {
+ printf("ERROR: trying to add event before current part!\n");
+ return;
+ }
+
+ DEvent* ev = new DEvent(event, part);
+ items.add(ev);
+
+ int diff = event.endTick()-part->lenTick();
+ if (diff > 0) {// too short part? extend it
+ //printf("addItem - this code should not be run!\n");
+ //Part* newPart = part->clone();
+ //newPart->setLenTick(newPart->lenTick()+diff);
+ //audio->msgChangePart(part, newPart,false);
+ //part = newPart;
+ part->setLenTick(part->lenTick()+diff);
+ }
+ }
+
+//---------------------------------------------------------
+// DrumCanvas
+//---------------------------------------------------------
+
+DrumCanvas::DrumCanvas(MidiEditor* pr, QWidget* parent, int sx,
+ int sy, const char* name)
+ : EventCanvas(pr, parent, sx, sy, name)
+ {
+ setVirt(false);
+ songChanged(SC_TRACK_INSERTED);
+ }
+
+//---------------------------------------------------------
+// moveCanvasItems
+//---------------------------------------------------------
+
+void DrumCanvas::moveCanvasItems(CItemList& items, int dp, int dx, DragType dtype, int* pflags)
+{
+ if(editor->parts()->empty())
+ return;
+
+ PartsToChangeMap parts2change;
+
+ int modified = 0;
+ for(iPart ip = editor->parts()->begin(); ip != editor->parts()->end(); ++ip)
+ {
+ Part* part = ip->second;
+ if(!part)
+ continue;
+
+ int npartoffset = 0;
+ for(iCItem ici = items.begin(); ici != items.end(); ++ici)
+ {
+ CItem* ci = ici->second;
+ if(ci->part() != part)
+ continue;
+
+ int x = ci->pos().x() + dx;
+ int y = pitch2y(y2pitch(ci->pos().y()) + dp);
+ QPoint newpos = raster(QPoint(x, y));
+
+ // Test moving the item...
+ DEvent* nevent = (DEvent*) ci;
+ Event event = nevent->event();
+ x = newpos.x();
+ if(x < 0)
+ x = 0;
+ int ntick = editor->rasterVal(x) - part->tick();
+ if(ntick < 0)
+ ntick = 0;
+ int diff = ntick + event.lenTick() - part->lenTick();
+
+ // If moving the item would require a new part size...
+ if(diff > npartoffset)
+ npartoffset = diff;
+ }
+
+ if(npartoffset > 0)
+ {
+ // Create new part...
+ // if there are several events that are moved outside the part, it will be recreated for each
+ // so the part _in_ the event will not be valid, ask the authority.
+// Part* newPart = part->clone();
+ //Part* newPart = Canvas::part()->clone();
+
+// newPart->setLenTick(newPart->lenTick() + npartoffset);
+ //audio->msgChangePart(part, newPart,false);
+
+// modified = SC_PART_MODIFIED;
+
+ // BUG FIX: #1650953
+ // Added by T356.
+ // Fixes posted "select and drag past end of part - crashing" bug
+// for(iPart ip = editor->parts()->begin(); ip != editor->parts()->end(); ++ip)
+// {
+// if(ip->second == part)
+// {
+// editor->parts()->erase(ip);
+// break;
+// }
+// }
+
+// editor->parts()->add(newPart);
+// audio->msgChangePart(part, newPart,false);
+
+// if(parts2change.find(part) == parts2change.end())
+// parts2change.insert(std::pair<Part*, Part*> (part, newPart));
+ iPartToChange ip2c = parts2change.find(part);
+ if(ip2c == parts2change.end())
+ {
+ PartToChange p2c = {0, npartoffset};
+ parts2change.insert(std::pair<Part*, PartToChange> (part, p2c));
+ }
+ else
+ ip2c->second.xdiff = npartoffset;
+
+
+ //part = newPart; // reassign
+ //item->setPart(part);
+ //item->setEvent(newEvent);
+ //curPart = part;
+ //curPartId = curPart->sn();
+
+ }
+ }
+
+ for(iPartToChange ip2c = parts2change.begin(); ip2c != parts2change.end(); ++ip2c)
+ {
+ Part* opart = ip2c->first;
+ int diff = ip2c->second.xdiff;
+
+ Part* newPart = opart->clone();
+
+ newPart->setLenTick(newPart->lenTick() + diff);
+
+ modified = SC_PART_MODIFIED;
+
+ // BUG FIX: #1650953
+ // Added by T356.
+ // Fixes posted "select and drag past end of part - crashing" bug
+ for(iPart ip = editor->parts()->begin(); ip != editor->parts()->end(); ++ip)
+ {
+ if(ip->second == opart)
+ {
+ editor->parts()->erase(ip);
+ break;
+ }
+ }
+
+ editor->parts()->add(newPart);
+ // Indicate no undo, and do port controller values but not clone parts.
+ //audio->msgChangePart(opart, newPart, false);
+ audio->msgChangePart(opart, newPart, false, true, false);
+
+ ip2c->second.npart = newPart;
+
+ }
+
+ iPartToChange icp = parts2change.find(curPart);
+ if(icp != parts2change.end())
+ {
+ curPart = icp->second.npart;
+ curPartId = curPart->sn();
+ }
+
+ std::vector< CItem* > doneList;
+ typedef std::vector< CItem* >::iterator iDoneList;
+
+ for(iCItem ici = items.begin(); ici != items.end(); ++ici)
+ {
+ CItem* ci = ici->second;
+
+ // If this item's part is in the parts2change list, change the item's part to the new part.
+ Part* pt = ci->part();
+ iPartToChange ip2c = parts2change.find(pt);
+ if(ip2c != parts2change.end())
+ ci->setPart(ip2c->second.npart);
+
+ int x = ci->pos().x();
+ int y = ci->pos().y();
+ int nx = x + dx;
+ int ny = pitch2y(y2pitch(y) + dp);
+ QPoint newpos = raster(QPoint(nx, ny));
+ selectItem(ci, true);
+
+ iDoneList idl;
+ for(idl = doneList.begin(); idl != doneList.end(); ++idl)
+ // This compares EventBase pointers to see if they're the same...
+ if((*idl)->event() == ci->event())
+ break;
+
+ // Do not process if the event has already been processed (meaning it's an event in a clone part)...
+ //if(moveItem(ci, newpos, dtype))
+ if(idl != doneList.end())
+ // Just move the canvas item.
+ ci->move(newpos);
+ else
+ {
+ // Currently moveItem always returns true.
+ if(moveItem(ci, newpos, dtype))
+ {
+ // Add the canvas item to the list of done items.
+ doneList.push_back(ci);
+ // Move the canvas item.
+ ci->move(newpos);
+ }
+ }
+
+ if(moving.size() == 1) {
+ itemReleased(curItem, newpos);
+ }
+ if(dtype == MOVE_COPY || dtype == MOVE_CLONE)
+ selectItem(ci, false);
+ }
+
+ if(pflags)
+ *pflags = modified;
+}
+
+//---------------------------------------------------------
+// moveItem
+//---------------------------------------------------------
+
+// Changed by T356.
+//bool DrumCanvas::moveItem(CItem* item, const QPoint& pos, DragType dtype, int* pflags)
+bool DrumCanvas::moveItem(CItem* item, const QPoint& pos, DragType dtype)
+ {
+ DEvent* nevent = (DEvent*) item;
+
+ // Changed by T356.
+ //MidiPart* part = (MidiPart*)Canvas::part(); // part can be dynamically recreated, ask the authority
+ MidiPart* part = (MidiPart*)nevent->part();
+
+ Event event = nevent->event();
+ int x = pos.x();
+ if (x < 0)
+ x = 0;
+ int ntick = editor->rasterVal(x) - part->tick();
+ if (ntick < 0)
+ ntick = 0;
+ int npitch = y2pitch(pos.y());
+ Event newEvent = event.clone();
+
+ newEvent.setPitch(npitch);
+ newEvent.setTick(ntick);
+
+ // Removed by T356.
+ /*
+ // Added by T356.
+ int modified = 0;
+ //song->startUndo();
+ int diff = newEvent.endTick()-part->lenTick();
+ if (diff > 0) // too short part? extend it
+ {
+ // if there are several events that are moved outside the part, it will be recreated for each
+ // so the part _in_ the event will not be valid, ask the authority.
+ //Part* newPart = part->clone();
+ MidiPart* newPart = (MidiPart*)Canvas::part()->clone();
+ newPart->setLenTick(newPart->lenTick()+diff);
+ audio->msgChangePart(Canvas::part(), newPart,false);
+
+ modified = SC_PART_MODIFIED;
+ part = newPart; // reassign
+ for(iPart i = editor->parts()->begin(); i != editor->parts()->end(); ++i)
+ {
+ if(i->second == Canvas::part())
+ {
+ editor->parts()->erase(i);
+ break;
+ }
+ }
+ editor->parts()->add(part);
+ item->setPart(part);
+ item->setEvent(newEvent);
+ curPart = part;
+ curPartId = curPart->sn();
+ }
+ */
+
+ // Added by T356.
+ // msgAddEvent and msgChangeEvent (below) will set these, but set them here first?
+ //item->setPart(part);
+ item->setEvent(newEvent);
+
+ // Added by T356.
+ if(((int)newEvent.endTick() - (int)part->lenTick()) > 0)
+ printf("DrumCanvas::moveItem Error! New event end:%d exceeds length:%d of part:%s\n", newEvent.endTick(), part->lenTick(), part->name().latin1());
+
+ if (dtype == MOVE_COPY || dtype == MOVE_CLONE) {
+ // Indicate no undo, and do not do port controller values and clone parts.
+ //audio->msgAddEvent(newEvent, part, false);
+ audio->msgAddEvent(newEvent, part, false, false, false);
+ }
+ else {
+ // Indicate no undo, and do not do port controller values and clone parts.
+ //audio->msgChangeEvent(event, newEvent, part, false);
+ audio->msgChangeEvent(event, newEvent, part, false, false, false);
+ }
+
+ // Removed by T356.
+ //if(pflags)
+ // *pflags = modified;
+
+ return true;
+ }
+
+//---------------------------------------------------------
+// newItem
+//---------------------------------------------------------
+
+CItem* DrumCanvas::newItem(const QPoint& p, int state)
+ {
+ int instr = y2pitch(p.y()); //drumInmap[y2pitch(p.y())];
+ int velo = drumMap[instr].lv4;
+ if (state == Qt::ShiftModifier)
+ velo = drumMap[instr].lv3;
+ else if (state == Qt::ControlModifier)
+ velo = drumMap[instr].lv2;
+ else if (state == (Qt::ControlModifier | Qt::ShiftModifier))
+ velo = drumMap[instr].lv1;
+ int tick = editor->rasterVal(p.x());
+ tick -= curPart->tick();
+ Event e(Note);
+ e.setTick(tick);
+ e.setPitch(instr);
+ e.setVelo(velo);
+ e.setLenTick(drumMap[instr].len);
+ return new DEvent(e, curPart);
+ }
+
+//---------------------------------------------------------
+// resizeItem
+//---------------------------------------------------------
+
+void DrumCanvas::resizeItem(CItem* item, bool)
+ {
+ DEvent* nevent = (DEvent*) item;
+ Event ev = nevent->event();
+ // Indicate do undo, and do not do port controller values and clone parts.
+ //audio->msgDeleteEvent(ev, nevent->part());
+ audio->msgDeleteEvent(ev, nevent->part(), true, false, false);
+ }
+
+//---------------------------------------------------------
+// newItem
+//---------------------------------------------------------
+
+void DrumCanvas::newItem(CItem* item, bool noSnap)
+ {
+ DEvent* nevent = (DEvent*) item;
+ Event event = nevent->event();
+ int x = item->x();
+ if (!noSnap)
+ x = editor->rasterVal(x);
+ event.setTick(x - nevent->part()->tick());
+ //int npitch = drumMap[y2pitch(item->y())].enote;
+ 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;
+ // Added by T356. Only do notes.
+ if(!ev.isNote())
+ continue;
+
+ if (ev.pitch() == npitch) {
+ // Indicate do undo, and do not do port controller values and clone parts.
+ //audio->msgDeleteEvent(ev, nevent->part());
+ audio->msgDeleteEvent(ev, nevent->part(), true, false, false);
+ return;
+ }
+ }
+
+ // Added by T356.
+ Part* part = nevent->part();
+ song->startUndo();
+ int modified=SC_EVENT_MODIFIED;
+ int diff = event.endTick()-part->lenTick();
+ if (diff > 0) {// too short part? extend it
+ //printf("extend Part!\n");
+ Part* newPart = part->clone();
+ newPart->setLenTick(newPart->lenTick()+diff);
+ // Indicate no undo, and do port controller values but not clone parts.
+ //audio->msgChangePart(part, newPart,false);
+ audio->msgChangePart(part, newPart, false, true, false);
+ modified=modified|SC_PART_MODIFIED;
+ part = newPart; // reassign
+ }
+ // Indicate no undo, and do not do port controller values and clone parts.
+ //audio->msgAddEvent(event, part,false);
+ audio->msgAddEvent(event, part, false, false, false);
+ song->endUndo(modified);
+
+ //audio->msgAddEvent(event, nevent->part());
+ }
+
+//---------------------------------------------------------
+// deleteItem
+//---------------------------------------------------------
+
+bool DrumCanvas::deleteItem(CItem* item)
+ {
+ Event ev = ((DEvent*)item)->event();
+ // Indicate do undo, and do not do port controller values and clone parts.
+ //audio->msgDeleteEvent(ev, ((DEvent*)item)->part());
+ audio->msgDeleteEvent(ev, ((DEvent*)item)->part(), true, false, false);
+ return false;
+ }
+
+//---------------------------------------------------------
+// drawItem
+//---------------------------------------------------------
+
+void DrumCanvas::drawItem(QPainter&p, const CItem*item, const QRect& rect)
+ {
+ DEvent* e = (DEvent*) item;
+ int x = 0, y = 0;
+ x = mapx(item->pos().x());
+ y = mapy(item->pos().y());
+ Q3PointArray pa(4);
+ pa.setPoint(0, x - CARET2, y);
+ pa.setPoint(1, x, y - CARET2);
+ pa.setPoint(2, x + CARET2, y);
+ pa.setPoint(3, x, y + CARET2);
+ QRect r(pa.boundingRect());
+ r = r.intersect(rect);
+ if(!r.isValid())
+ return;
+
+ p.setPen(Qt::black);
+
+ if (e->part() != curPart)
+ {
+ if(item->isMoving())
+ p.setBrush(Qt::gray);
+ else if(item->isSelected())
+ p.setBrush(Qt::black);
+ else
+ p.setBrush(Qt::lightGray);
+ }
+ else if (item->isMoving()) {
+ p.setBrush(Qt::gray);
+ }
+ else if (item->isSelected())
+ {
+ p.setBrush(Qt::black);
+ }
+ else
+ {
+ int velo = e->event().velo();
+ DrumMap* dm = &drumMap[y2pitch(y)]; //Get the drum item
+ QColor color;
+ 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);
+ p.setBrush(color);
+ }
+
+ p.drawPolygon(pa);
+ }
+
+//---------------------------------------------------------
+// drawMoving
+// draws moving items
+//---------------------------------------------------------
+
+void DrumCanvas::drawMoving(QPainter& p, const CItem* item, const QRect& rect)
+ {
+ //if(((DEvent*)item)->part() != curPart)
+ // return;
+ //if(!item->isMoving())
+ // return;
+ Q3PointArray pa(4);
+ QPoint pt = map(item->mp());
+ int x = pt.x();
+ int y = pt.y();
+ pa.setPoint(0, x-CARET2, y + TH/2);
+ pa.setPoint(1, x, y + TH/2+CARET2);
+ pa.setPoint(2, x+CARET2, y + TH/2);
+ pa.setPoint(3, x, y + (TH-CARET)/2);
+ QRect mr(pa.boundingRect());
+ mr = mr.intersect(rect);
+ if(!mr.isValid())
+ return;
+ p.setPen(Qt::black);
+ p.setBrush(Qt::black);
+ p.drawPolygon(pa);
+ }
+
+//---------------------------------------------------------
+// drawCanvas
+//---------------------------------------------------------
+
+extern void drawTickRaster(QPainter& p, int, int, int, int, int);
+
+void DrumCanvas::drawCanvas(QPainter& p, const QRect& rect)
+ {
+ int x = rect.x();
+ int y = rect.y();
+ int w = rect.width();
+ int h = rect.height();
+
+ //---------------------------------------------------
+ // horizontal lines
+ //---------------------------------------------------
+
+ int yy = ((y-1) / TH) * TH + TH;
+ for (; yy < y + h; yy += TH) {
+ p.setPen(Qt::gray);
+ p.drawLine(x, yy, x + w, yy);
+ }
+
+ //---------------------------------------------------
+ // vertical lines
+ //---------------------------------------------------
+
+ drawTickRaster(p, x, y, w, h, editor->raster());
+ }
+
+//---------------------------------------------------------
+// y2pitch
+//---------------------------------------------------------
+
+int DrumCanvas::y2pitch(int y) const
+ {
+ int pitch = y/TH;
+ if (pitch >= DRUM_MAPSIZE)
+ pitch = DRUM_MAPSIZE-1;
+ return pitch;
+ }
+
+//---------------------------------------------------------
+// pitch2y
+//---------------------------------------------------------
+
+int DrumCanvas::pitch2y(int pitch) const
+ {
+ return pitch * TH;
+ }
+
+//---------------------------------------------------------
+// cmd
+//---------------------------------------------------------
+
+void DrumCanvas::cmd(int cmd)
+ {
+ switch(cmd) {
+ case CMD_CUT:
+ copy();
+ song->startUndo();
+ for (iCItem i = items.begin(); i != items.end(); ++i) {
+ if (!i->second->isSelected())
+ continue;
+ DEvent* e = (DEvent*)(i->second);
+ Event event = e->event();
+ // Indicate no undo, and do not do port controller values and clone parts.
+ //audio->msgDeleteEvent(event, e->part(), false);
+ audio->msgDeleteEvent(event, e->part(), false, false, false);
+ }
+ song->endUndo(SC_EVENT_REMOVED);
+ break;
+ case CMD_COPY:
+ copy();
+ break;
+ case CMD_PASTE:
+ paste();
+ break;
+ case CMD_SELECT_ALL: // select all
+ for (iCItem k = items.begin(); k != items.end(); ++k) {
+ if (!k->second->isSelected())
+ selectItem(k->second, true);
+ }
+ break;
+ case CMD_SELECT_NONE: // select none
+ deselectAll();
+ break;
+ case CMD_SELECT_INVERT: // invert selection
+ for (iCItem k = items.begin(); k != items.end(); ++k) {
+ selectItem(k->second, !k->second->isSelected());
+ }
+ break;
+ case CMD_SELECT_ILOOP: // select inside loop
+ for (iCItem k = items.begin(); k != items.end(); ++k) {
+ DEvent* nevent =(DEvent*)(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);
+ }
+ break;
+ case CMD_SELECT_OLOOP: // select outside loop
+ for (iCItem k = items.begin(); k != items.end(); ++k) {
+ DEvent* nevent = (DEvent*)(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);
+ }
+ break;
+ case CMD_SELECT_PREV_PART: // select previous part
+ {
+ Part* pt = editor->curCanvasPart();
+ Part* newpt = pt;
+ PartList* pl = editor->parts();
+ for(iPart ip = pl->begin(); ip != pl->end(); ++ip)
+ if(ip->second == pt)
+ {
+ if(ip == pl->begin())
+ ip = pl->end();
+ --ip;
+ newpt = ip->second;
+ break;
+ }
+ if(newpt != pt)
+ editor->setCurCanvasPart(newpt);
+ }
+ break;
+ case CMD_SELECT_NEXT_PART: // select next part
+ {
+ Part* pt = editor->curCanvasPart();
+ Part* newpt = pt;
+ PartList* pl = editor->parts();
+ for(iPart ip = pl->begin(); ip != pl->end(); ++ip)
+ if(ip->second == pt)
+ {
+ ++ip;
+ if(ip == pl->end())
+ ip = pl->begin();
+ newpt = ip->second;
+ break;
+ }
+ if(newpt != pt)
+ editor->setCurCanvasPart(newpt);
+ }
+ break;
+ case CMD_DEL:
+ if (selectionSize()) {
+ song->startUndo();
+ for (iCItem i = items.begin(); i != items.end(); ++i) {
+ if (!i->second->isSelected())
+ continue;
+ Event ev = i->second->event();
+ // Indicate no undo, and do not do port controller values and clone parts.
+ //audio->msgDeleteEvent(ev, i->second->part(), false);
+ audio->msgDeleteEvent(ev, i->second->part(), false, false, false);
+ }
+ song->endUndo(SC_EVENT_REMOVED);
+ }
+ return;
+
+ case CMD_SAVE:
+ case CMD_LOAD:
+ printf("DrumCanvas:: cmd not implemented %d\n", cmd);
+ break;
+
+ case CMD_FIXED_LEN: //Set notes to the length specified in the drummap
+ if (!selectionSize())
+ break;
+ song->startUndo();
+ for (iCItem k = items.begin(); k != items.end(); ++k) {
+ if (k->second->isSelected()) {
+ DEvent* devent = (DEvent*)(k->second);
+ Event event = devent->event();
+ Event newEvent = event.clone();
+ newEvent.setLenTick(drumMap[event.pitch()].len);
+ // Indicate no undo, and do not do port controller values and clone parts.
+ //audio->msgChangeEvent(event, newEvent, devent->part() , false);
+ audio->msgChangeEvent(event, newEvent, devent->part(), false, false, false);
+ }
+ }
+ song->endUndo(SC_EVENT_MODIFIED);
+ break;
+ case CMD_LEFT:
+ {
+ int frames = pos[0] - editor->rasterStep(pos[0]);
+ if (frames < 0)
+ frames = 0;
+ Pos p(frames,true);
+ song->setPos(0, p, true, true, true);
+ }
+ break;
+ case CMD_RIGHT:
+ {
+ Pos p(pos[0] + editor->rasterStep(pos[0]), true);
+ song->setPos(0, p, true, true, true);
+ }
+ break;
+ case CMD_MODIFY_VELOCITY:
+ {
+ Velocity w(this);
+ w.setRange(0); //TODO: Make this work! Probably put _to & _toInit in ecanvas instead
+ if (!w.exec())
+ break;
+ int range = w.range(); // all, selected, looped, sel+loop
+ int rate = w.rateVal();
+ int offset = w.offsetVal();
+
+ song->startUndo();
+ for (iCItem k = items.begin(); k != items.end(); ++k) {
+ DEvent* devent = (DEvent*)(k->second);
+ Event event = devent->event();
+ if (event.type() != Note)
+ continue;
+ unsigned tick = event.tick();
+ bool selected = k->second->isSelected();
+ bool inLoop = (tick >= song->lpos()) && (tick < song->rpos());
+
+ if ((range == 0)
+ || (range == 1 && selected)
+ || (range == 2 && inLoop)
+ || (range == 3 && 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);
+ // Indicate no undo, and do not do port controller values and clone parts.
+ //audio->msgChangeEvent(event, newEvent, devent->part(), false);
+ audio->msgChangeEvent(event, newEvent, devent->part(), false, false, false);
+ }
+ }
+ }
+ song->endUndo(SC_EVENT_MODIFIED);
+ }
+ break;
+ }
+ updateSelection();
+ redraw();
+ }
+
+//---------------------------------------------------------
+// getTextDrag
+//---------------------------------------------------------
+
+Q3TextDrag* DrumCanvas::getTextDrag(QWidget* parent)
+ {
+ //---------------------------------------------------
+ // generate event list from selected events
+ //---------------------------------------------------
+
+ EventList el;
+ unsigned startTick = MAXINT;
+ for (iCItem i = items.begin(); i != items.end(); ++i) {
+ if (!i->second->isSelected())
+ continue;
+ DEvent* ne = (DEvent*)(i->second);
+ Event e = ne->event();
+ if (startTick == MAXINT)
+ startTick = e.tick();
+ el.add(e);
+ }
+
+ //---------------------------------------------------
+ // write events as XML into tmp file
+ //---------------------------------------------------
+
+ FILE* tmp = tmpfile();
+ if (tmp == 0) {
+ fprintf(stderr, "EventCanvas::copy() fopen failed: %s\n",
+ strerror(errno));
+ return 0;
+ }
+ Xml xml(tmp);
+
+ int level = 0;
+ for (ciEvent e = el.begin(); e != el.end(); ++e)
+ e->second.write(level, xml, -startTick);
+
+ //---------------------------------------------------
+ // read tmp file into QTextDrag Object
+ //---------------------------------------------------
+
+ fflush(tmp);
+ struct stat f_stat;
+ if (fstat(fileno(tmp), &f_stat) == -1) {
+ fprintf(stderr, "EventCanvas::copy() fstat failes:<%s>\n",
+ strerror(errno));
+ fclose(tmp);
+ return 0;
+ }
+ int n = f_stat.st_size;
+ char* fbuf = (char*)mmap(0, n+1, PROT_READ|PROT_WRITE,
+ MAP_PRIVATE, fileno(tmp), 0);
+ fbuf[n] = 0;
+ Q3TextDrag* drag = new Q3TextDrag(QString(fbuf), parent);
+ drag->setSubtype("eventlist");
+ munmap(fbuf, n);
+ fclose(tmp);
+ return drag;
+ }
+
+//---------------------------------------------------------
+// copy
+// cut copy paste
+//---------------------------------------------------------
+
+void DrumCanvas::copy()
+ {
+ Q3TextDrag* drag = getTextDrag(0);
+ if (drag)
+ QApplication::clipboard()->setData(drag, QClipboard::Clipboard);
+ }
+
+//---------------------------------------------------------
+// paste
+//---------------------------------------------------------
+
+int DrumCanvas::pasteAt(const QString& pt, int pos)
+ {
+ const char* p = pt.latin1();
+ Xml xml(p);
+
+ // Added by T356.
+ int modified = SC_EVENT_INSERTED;
+
+ song->startUndo();
+ for (;;) {
+ Xml::Token token = xml.parse();
+ QString tag = xml.s1();
+ switch (token) {
+ case Xml::Error:
+ case Xml::End:
+ //song->endUndo(SC_EVENT_INSERTED); By T356
+ song->endUndo(modified);
+ return pos;
+ case Xml::TagStart:
+ if (tag == "event") {
+ Event e(Note);
+ e.read(xml);
+
+ // Added by T356.
+ int tick = e.tick() + pos - curPart->tick();
+ if (tick<0) {
+ printf("DrumCanvas::pasteAt ERROR: trying to add event before current part!\n");
+ song->endUndo(SC_EVENT_INSERTED);
+ //delete el;
+ return pos;
+ }
+ e.setTick(tick);
+ int diff = e.endTick() - curPart->lenTick();
+ if (diff > 0) {// too short part? extend it
+ Part* newPart = curPart->clone();
+ newPart->setLenTick(newPart->lenTick()+diff);
+ // Indicate no undo, and do port controller values but not clone parts.
+ //audio->msgChangePart(curPart, newPart,false);
+ audio->msgChangePart(curPart, newPart, false, true, false);
+
+ modified=modified|SC_PART_MODIFIED;
+ curPart = newPart; // reassign
+ }
+
+ // Indicate no undo, and do not do port controller values and clone parts.
+ //audio->msgAddEvent(e, curPart, false);
+ audio->msgAddEvent(e, curPart, false, false, false);
+ }
+ else
+ //xml.unknown("EventCanvas::paste"); By T356
+ xml.unknown("DCanvas::pasteAt");
+ break;
+ case Xml::TagEnd:
+ default:
+ break;
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// paste
+// paste events
+//---------------------------------------------------------
+
+void DrumCanvas::paste()
+ {
+// Q3CString subtype("eventlist"); // ddskrjo
+ QString subtype("eventlist");
+ QMimeSource* ms = QApplication::clipboard()->data();
+ QString pt;
+ if (!Q3TextDrag::decode(ms, pt, subtype)) {
+ printf("cannot paste: bad data type\n");
+ return;
+ }
+ pasteAt(pt, song->cpos());
+ }
+
+//---------------------------------------------------------
+// startDrag
+//---------------------------------------------------------
+
+void DrumCanvas::startDrag(CItem* /* item*/, bool copymode)
+ {
+ Q3TextDrag* drag = getTextDrag(this);
+ if (drag) {
+// QApplication::clipboard()->setData(drag, QClipboard::Clipboard);
+
+ if (copymode)
+ drag->dragCopy();
+ else
+ drag->dragMove();
+ }
+ }
+
+//---------------------------------------------------------
+// dragEnterEvent
+//---------------------------------------------------------
+
+void DrumCanvas::dragEnterEvent(QDragEnterEvent* event)
+ {
+ event->accept(Q3TextDrag::canDecode(event));
+ }
+
+//---------------------------------------------------------
+// dragMoveEvent
+//---------------------------------------------------------
+
+void DrumCanvas::dragMoveEvent(QDragMoveEvent*)
+ {
+// printf("drag move %x\n", this);
+ }
+
+//---------------------------------------------------------
+// dragLeaveEvent
+//---------------------------------------------------------
+
+void DrumCanvas::dragLeaveEvent(QDragLeaveEvent*)
+ {
+// printf("drag leave\n");
+ }
+
+//---------------------------------------------------------
+// dropEvent
+//---------------------------------------------------------
+
+void DrumCanvas::viewDropEvent(QDropEvent* event)
+ {
+ 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);
+ }
+ }
+
+//---------------------------------------------------------
+// keyPressed
+//---------------------------------------------------------
+
+void DrumCanvas::keyPressed(int index, bool)
+ {
+ int port = drumMap[index].port;
+ int channel = drumMap[index].channel;
+ int pitch = drumMap[index].anote;
+
+ // play note:
+ MidiPlayEvent e(0, port, channel, 0x90, pitch, 127);
+ audio->msgPlayMidiEvent(&e);
+ }
+
+//---------------------------------------------------------
+// keyReleased
+//---------------------------------------------------------
+
+void DrumCanvas::keyReleased(int index, bool)
+ {
+ int port = drumMap[index].port;
+ int channel = drumMap[index].channel;
+ int pitch = drumMap[index].anote;
+
+ // release note:
+ MidiPlayEvent e(0, port, channel, 0x90, pitch, 0);
+ audio->msgPlayMidiEvent(&e);
+ }
+
+//---------------------------------------------------------
+// mapChanged
+//---------------------------------------------------------
+
+void DrumCanvas::mapChanged(int spitch, int dpitch)
+ {
+ //TODO: Circumvent undo behaviour, since this isn't really a true change of the events,
+ // but merely a change in pitch because the pitch relates to the order of the dlist.
+ // Right now the sequencer spits out internalError: undoOp without startUndo() if start/stopundo is there, which is misleading
+ // If start/stopundo is there, undo misbehaves since it doesn't undo but messes things up
+ // Other solution: implement a specific undo-event for this (SC_DRUMMAP_MODIFIED or something) which undoes movement of
+ // dlist-items (ml)
+
+ std::vector< std::pair<Part*, Event*> > delete_events;
+ std::vector< std::pair<Part*, Event> > add_events;
+
+ typedef std::vector< std::pair<Part*, Event*> >::iterator idel_ev;
+ typedef std::vector< std::pair<Part*, Event> >::iterator iadd_ev;
+
+ /*
+ class delete_events : public std::vector< Part*, Event* >
+ {
+ public:
+ idel_ev find(Part* p, Event* e)
+ {
+
+ };
+ };
+ class add_events : public std::vector< Part*, Event >
+ {
+ public:
+ iadd_ev find(Part* p, Event& e)
+ {
+
+ };
+ };
+ */
+
+ MidiTrackList* tracks = song->midis();
+ for (ciMidiTrack t = tracks->begin(); t != tracks->end(); t++) {
+ MidiTrack* curTrack = *t;
+ if (curTrack->type() != Track::DRUM)
+ continue;
+
+ MidiPort* mp = &midiPorts[curTrack->outPort()];
+ PartList* parts= curTrack->parts();
+ for (iPart part = parts->begin(); part != parts->end(); ++part) {
+ EventList* events = part->second->events();
+ Part* thePart = part->second;
+ for (iEvent i = events->begin(); i != events->end(); ++i) {
+ Event event = i->second;
+ if(event.type() != Controller && event.type() != Note)
+ continue;
+ int pitch = event.pitch();
+ bool drc = false;
+ // Is it a drum controller event, according to the track port's instrument?
+ if(event.type() == Controller && mp->drumController(event.dataA()))
+ {
+ drc = true;
+ pitch = event.dataA() & 0x7f;
+ }
+
+ if (pitch == spitch) {
+ Event* spitch_event = &(i->second);
+ delete_events.push_back(std::pair<Part*, Event*>(thePart, spitch_event));
+ Event newEvent = spitch_event->clone();
+ if(drc)
+ newEvent.setA((newEvent.dataA() & ~0xff) | dpitch);
+ else
+ newEvent.setPitch(dpitch);
+ add_events.push_back(std::pair<Part*, Event>(thePart, newEvent));
+ }
+ else if (pitch == dpitch) {
+ Event* dpitch_event = &(i->second);
+ delete_events.push_back(std::pair<Part*, Event*>(thePart, dpitch_event));
+ Event newEvent = dpitch_event->clone();
+ if(drc)
+ newEvent.setA((newEvent.dataA() & ~0xff) | spitch);
+ else
+ newEvent.setPitch(spitch);
+ add_events.push_back(std::pair<Part*, Event>(thePart, newEvent));
+ }
+ }
+ }
+ }
+
+ song->startUndo();
+ for (idel_ev i = delete_events.begin(); i != delete_events.end(); i++) {
+ //std::pair<Part*, Event*> pair = *i;
+ //Part* thePart = pair.first;
+ //Event* theEvent = pair.second;
+ Part* thePart = (*i).first;
+ Event* theEvent = (*i).second;
+ // Indicate no undo, and do port controller values but not clone parts.
+ //audio->msgDeleteEvent(*theEvent, thePart, false);
+ audio->msgDeleteEvent(*theEvent, thePart, false, true, false);
+ }
+
+ DrumMap dm = drumMap[spitch];
+ drumMap[spitch] = drumMap[dpitch];
+ drumMap[dpitch] = dm;
+ drumInmap[int(drumMap[spitch].enote)] = spitch;
+ drumOutmap[int(drumMap[int(spitch)].anote)] = spitch;
+ drumInmap[int(drumMap[int(dpitch)].enote)] = dpitch;
+ drumOutmap[int(drumMap[int(dpitch)].anote)] = dpitch;
+
+ for (iadd_ev i = add_events.begin(); i != add_events.end(); i++) {
+ //std::pair<Part*, Event> pair = *i;
+ //Part* thePart = pair.first;
+ //Event& theEvent = pair.second;
+ Part* thePart = (*i).first;
+ Event& theEvent = (*i).second;
+ // Indicate no undo, and do port controller values but not clone parts.
+ //audio->msgAddEvent(theEvent, thePart, false);
+ audio->msgAddEvent(theEvent, thePart, false, true, false);
+ }
+
+ song->endUndo(SC_EVENT_MODIFIED);
+ song->update(SC_DRUMMAP);
+ }
+
+//---------------------------------------------------------
+// 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;
+ DEvent* e = (DEvent*)(i->second);
+ Event event = e->event();
+ if (event.type() != Note)
+ continue;
+
+ MidiPart* part = (MidiPart*)(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);
+ // Indicate do not do port controller values and clone parts.
+ //song->undoOp(UndoOp::ModifyEvent, newEvent, event, part);
+ song->undoOp(UndoOp::ModifyEvent, newEvent, event, part, false, false);
+ }
+ song->endUndo(SC_EVENT_MODIFIED);
+ audio->msgIdle(false);
+ }
+
+//---------------------------------------------------------
+// curPartChanged
+//---------------------------------------------------------
+
+void DrumCanvas::curPartChanged()
+ {
+ editor->setCaption(getCaption());
+ }
+
diff --git a/muse2/muse/midiedit/dcanvas.h b/muse2/muse/midiedit/dcanvas.h
new file mode 100644
index 00000000..7f5034fc
--- /dev/null
+++ b/muse2/muse/midiedit/dcanvas.h
@@ -0,0 +1,93 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: dcanvas.h,v 1.8.2.2 2009/02/02 21:38:00 terminator356 Exp $
+// (C) Copyright 1999 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __DCANVAS_H__
+#define __DCANVAS_H__
+
+#include "ecanvas.h"
+#include "song.h"
+//Added by qt3to4:
+#include <QResizeEvent>
+#include <QDragEnterEvent>
+#include <QDropEvent>
+#include <QDragMoveEvent>
+#include <QDragLeaveEvent>
+
+#define TH 18
+
+class MidiEditor;
+
+//---------------------------------------------------------
+// DEvent
+// ''visual'' Drum Event
+//---------------------------------------------------------
+
+class DEvent : public CItem {
+ public:
+ DEvent(Event e, Part* p);
+ };
+
+class ScrollScale;
+class PianoRoll;
+class Q3TextDrag;
+
+//---------------------------------------------------------
+// DrumCanvas
+//---------------------------------------------------------
+
+class DrumCanvas : public EventCanvas {
+
+ Q_OBJECT
+ virtual void drawCanvas(QPainter&, const QRect&);
+ virtual void drawItem(QPainter&, const CItem*, const QRect&);
+ virtual void drawMoving(QPainter&, const CItem*, const QRect&);
+ virtual void moveCanvasItems(CItemList&, int, int, DragType, int*);
+ // Changed by T356.
+ //virtual bool moveItem(CItem*, const QPoint&, DragType, int*);
+ virtual bool moveItem(CItem*, const QPoint&, DragType);
+ virtual CItem* newItem(const QPoint&, int);
+ virtual void resizeItem(CItem*, bool);
+ virtual void newItem(CItem*, bool);
+ virtual bool deleteItem(CItem*);
+
+ int y2pitch(int y) const;
+ int pitch2y(int pitch) const;
+ Q3TextDrag* getTextDrag(QWidget* parent);
+ void copy();
+ int pasteAt(const QString& pt, int pos);
+ void paste();
+ void startDrag(CItem*, bool copymode);
+ void dragEnterEvent(QDragEnterEvent* event);
+ void dragMoveEvent(QDragMoveEvent*);
+ void dragLeaveEvent(QDragLeaveEvent*);
+ void viewDropEvent(QDropEvent* event);
+ virtual void addItem(Part*, Event&);
+ virtual void resizeEvent(QResizeEvent*);
+ virtual void curPartChanged();
+
+ signals:
+ void newWidth(int);
+
+ public slots:
+ void mapChanged(int, int);
+ void keyPressed(int, bool);
+ void keyReleased(int, bool);
+
+ public:
+ enum {
+ CMD_CUT, CMD_COPY, CMD_PASTE, CMD_SAVE, CMD_LOAD, CMD_RESET,
+ CMD_SELECT_ALL, CMD_SELECT_NONE, CMD_SELECT_INVERT,
+ CMD_SELECT_ILOOP, CMD_SELECT_OLOOP, CMD_SELECT_PREV_PART, CMD_SELECT_NEXT_PART,
+ CMD_DEL, CMD_FIXED_LEN, CMD_RIGHT, CMD_LEFT, CMD_MODIFY_VELOCITY
+ };
+ DrumCanvas(MidiEditor*, QWidget*, int, int,
+ const char* name = 0);
+ void cmd(int);
+ virtual void modifySelected(NoteInfo::ValType type, int delta);
+ };
+#endif
+
diff --git a/muse2/muse/midiedit/dlist.cpp b/muse2/muse/midiedit/dlist.cpp
new file mode 100644
index 00000000..24ced3d0
--- /dev/null
+++ b/muse2/muse/midiedit/dlist.cpp
@@ -0,0 +1,754 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: dlist.cpp,v 1.9.2.7 2009/10/16 21:50:16 terminator356 Exp $
+// (C) Copyright 1999 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include <qpainter.h>
+#include <q3header.h>
+#include <qcursor.h>
+#include <q3popupmenu.h>
+#include <qlineedit.h>
+//Added by qt3to4:
+#include <QPixmap>
+#include <QMouseEvent>
+
+#include <stdio.h>
+
+#include "audio.h"
+#include "pitchedit.h"
+#include "midiport.h"
+#include "drummap.h"
+#include "icons.h"
+#include "dlist.h"
+#include "song.h"
+#include "scrollscale.h"
+
+// enum DCols { COL_MUTE=0, COL_NAME, COL_QNT, COL_ENOTE, COL_LEN,
+// COL_ANOTE, COL_CHANNEL, COL_PORT,
+// COL_LV1, COL_LV2, COL_LV3, COL_LV4, COL_NONE=-1};
+
+//---------------------------------------------------------
+// draw
+//---------------------------------------------------------
+
+void DList::draw(QPainter& p, const QRect& rect)
+ {
+ int x = rect.x();
+ int y = rect.y();
+ int w = rect.width();
+ int h = rect.height();
+
+ //---------------------------------------------------
+ // Tracks
+ //---------------------------------------------------
+
+ p.setPen(Qt::black);
+
+ for (int i = 0; i < DRUM_MAPSIZE; ++i) {
+ int yy = i * TH;
+ if (yy+TH < y)
+ continue;
+ if (yy > y + h)
+ break;
+ DrumMap* dm = &drumMap[i];
+// if (dm->selected)
+ if (dm == currentlySelected)
+ p.fillRect(x, yy, w, TH, Qt::yellow);
+// else
+// p.eraseRect(x, yy, w, TH);
+ for (int k = 0; k < header->count(); ++k) {
+ int x = header->sectionPos(k);
+ int w = header->sectionSize(k);
+ QRect r = p.xForm(QRect(x+2, yy, w-4, TH));
+ QString s;
+ int align = Qt::AlignVCenter | Qt::AlignHCenter;
+
+ p.save();
+ p.setWorldXForm(false);
+ switch (k) {
+ case COL_VOL:
+ s.setNum(dm->vol);
+ break;
+ case COL_QNT:
+ s.setNum(dm->quant);
+ break;
+ case COL_LEN:
+ s.setNum(dm->len);
+ break;
+ case COL_ANOTE:
+ s = pitch2string(dm->anote);
+ break;
+ case COL_ENOTE:
+ s = pitch2string(dm->enote);
+ break;
+ case COL_LV1:
+ s.setNum(dm->lv1);
+ break;
+ case COL_LV2:
+ s.setNum(dm->lv2);
+ break;
+ case COL_LV3:
+ s.setNum(dm->lv3);
+ break;
+ case COL_LV4:
+ s.setNum(dm->lv4);
+ break;
+ case COL_MUTE:
+ if (dm->mute) {
+ p.setPen(Qt::red);
+ const QPixmap& pm = *muteIcon;
+ p.drawPixmap(
+ r.x() + r.width()/2 - pm.width()/2,
+ r.y() + r.height()/2 - pm.height()/2,
+ pm);
+ p.setPen(Qt::black);
+ }
+ break;
+ case COL_NAME:
+ s = dm->name;
+ align = Qt::AlignVCenter | Qt::AlignLeft;
+ break;
+ case COL_CHANNEL:
+ s.setNum(dm->channel+1);
+ break;
+ case COL_PORT:
+ s.sprintf("%d:%s", dm->port+1, midiPorts[dm->port].portname().latin1());
+ align = Qt::AlignVCenter | Qt::AlignLeft;
+ break;
+ }
+ if (!s.isEmpty())
+ p.drawText(r, align, s);
+ p.restore();
+ }
+ }
+
+ //---------------------------------------------------
+ // horizontal lines
+ //---------------------------------------------------
+
+ p.setPen(Qt::gray);
+ int yy = (y / TH) * TH;
+ for (; yy < y + h; yy += TH) {
+ p.drawLine(x, yy, x + w, yy);
+ }
+
+ if (drag == DRAG) {
+ int y = (startY/TH) * TH;
+ int dy = startY - y;
+ int yy = curY - dy;
+ p.setPen(Qt::green);
+ p.drawLine(x, yy, x + w, yy);
+ p.drawLine(x, yy+TH, x + w, yy+TH);
+ p.setPen(Qt::gray);
+ }
+
+ //---------------------------------------------------
+ // vertical Lines
+ //---------------------------------------------------
+
+ p.setWorldXForm(false);
+ int n = header->count();
+ x = 0;
+ for (int i = 0; i < n; i++) {
+ //x += header->sectionSize(i);
+ x += header->sectionSize(header->mapToSection(i));
+ p.drawLine(x, 0, x, height());
+ }
+ p.setWorldXForm(true);
+ }
+
+//---------------------------------------------------------
+// devicesPopupMenu
+//---------------------------------------------------------
+
+void DList::devicesPopupMenu(DrumMap* t, int x, int y, bool changeAll)
+ {
+ Q3PopupMenu* p = midiPortsPopup(this);
+ int n = p->exec(mapToGlobal(QPoint(x, y)), 0);
+ bool doemit = false;
+ if (n != -1) {
+ if (!changeAll)
+ {
+ if(n != t->port)
+ {
+ audio->msgIdle(true);
+ //audio->msgRemapPortDrumCtlEvents(getSelectedInstrument(), -1, -1, n);
+ song->remapPortDrumCtrlEvents(getSelectedInstrument(), -1, -1, n);
+ audio->msgIdle(false);
+ t->port = n;
+ doemit = true;
+ }
+ }
+ else {
+ audio->msgIdle(true);
+ // Delete all port controller events.
+ //audio->msgChangeAllPortDrumCtrlEvents(false);
+ song->changeAllPortDrumCtrlEvents(false);
+
+ for (int i = 0; i < DRUM_MAPSIZE; i++)
+ drumMap[i].port = n;
+ // Add all port controller events.
+ //audio->msgChangeAllPortDrumCtrlEvents(true);
+ song->changeAllPortDrumCtrlEvents(true);
+
+ audio->msgIdle(false);
+ doemit = true;
+ }
+ }
+ delete p;
+ if(doemit)
+ {
+ int instr = getSelectedInstrument();
+ if(instr != -1)
+ //emit curDrumInstrumentChanged(instr);
+ song->update(SC_DRUMMAP);
+ }
+ }
+
+//---------------------------------------------------------
+// viewMousePressEvent
+//---------------------------------------------------------
+
+void DList::viewMousePressEvent(QMouseEvent* ev)
+ {
+ int x = ev->x();
+ int y = ev->y();
+ int button = ev->button();
+ bool shift = ev->state() & Qt::ShiftButton;
+ unsigned pitch = y / TH;
+ DrumMap* dm = &drumMap[pitch];
+
+ setCurDrumInstrument(pitch);
+
+ startY = y;
+ sPitch = pitch;
+ drag = START_DRAG;
+
+ DCols col = DCols(x2col(x));
+
+ int val;
+ int incVal = 0;
+ if (button == Qt::RightButton)
+ incVal = 1;
+ else if (button == Qt::MidButton)
+ incVal = -1;
+
+ // Check if we're already editing anything and have pressed the mouse
+ // elsewhere
+ // In that case, treat it as if a return was pressed
+
+ if (button == Qt::LeftButton) {
+ if (((editEntry && editEntry != dm) || col != selectedColumn) && editEntry != 0) {
+ returnPressed();
+ }
+ }
+
+ switch (col) {
+ case COL_NONE:
+ break;
+ case COL_MUTE:
+ if (button == Qt::LeftButton)
+ dm->mute = !dm->mute;
+ break;
+ case COL_PORT:
+ if (button == Qt::RightButton) {
+ bool changeAll = ev->state() & Qt::ControlButton;
+ devicesPopupMenu(dm, mapx(x), mapy(pitch * TH), changeAll);
+ }
+ break;
+ case COL_VOL:
+ val = dm->vol + incVal;
+ if (val < 0)
+ val = 0;
+ else if (val > 200)
+ val = 200;
+ dm->vol = (unsigned char)val;
+ break;
+ case COL_QNT:
+ dm->quant += incVal;
+ // ?? range
+ break;
+ case COL_ENOTE:
+ val = dm->enote + incVal;
+ if (val < 0)
+ val = 0;
+ else if (val > 127)
+ val = 127;
+ //Check if there is any other drumMap with the same inmap value (there should be one (and only one):-)
+ //If so, switch the inmap between the instruments
+ for (int i=0; i<DRUM_MAPSIZE; i++) {
+ if (drumMap[i].enote == val && &drumMap[i] != dm) {
+ drumInmap[int(dm->enote)] = i;
+ drumMap[i].enote = dm->enote;
+ break;
+ }
+ }
+ //TODO: Set all the notes on the track with pitch=dm->enote to pitch=val
+ dm->enote = val;
+ drumInmap[val] = pitch;
+ break;
+ case COL_LEN:
+ val = dm->len + incVal;
+ if (val < 0)
+ val = 0;
+ dm->len = val;
+ break;
+ case COL_ANOTE:
+ val = dm->anote + incVal;
+ if (val < 0)
+ val = 0;
+ else if (val > 127)
+ val = 127;
+ if(val != dm->anote)
+ {
+ audio->msgIdle(true);
+ //audio->msgRemapPortDrumCtlEvents(pitch, val, -1, -1);
+ song->remapPortDrumCtrlEvents(pitch, val, -1, -1);
+ audio->msgIdle(false);
+ dm->anote = val;
+ song->update(SC_DRUMMAP);
+ }
+ emit keyPressed(pitch, shift);//(dm->anote, shift);
+ break;
+ case COL_CHANNEL:
+ val = dm->channel + incVal;
+ if (val < 0)
+ val = 0;
+ else if (val > 127)
+ val = 127;
+
+ if (ev->state() & Qt::ControlButton) {
+ audio->msgIdle(true);
+ // Delete all port controller events.
+ //audio->msgChangeAllPortDrumCtrlEvents(false);
+ song->changeAllPortDrumCtrlEvents(false, true);
+
+ for (int i = 0; i < DRUM_MAPSIZE; i++)
+ drumMap[i].channel = val;
+ // Add all port controller events.
+ //audio->msgChangeAllPortDrumCtrlEvents(true);
+ song->changeAllPortDrumCtrlEvents(true, true);
+ audio->msgIdle(false);
+ song->update(SC_DRUMMAP);
+ }
+ else
+ {
+ if(val != dm->channel)
+ {
+ audio->msgIdle(true);
+ //audio->msgRemapPortDrumCtlEvents(pitch, -1, val, -1);
+ song->remapPortDrumCtrlEvents(pitch, -1, val, -1);
+ audio->msgIdle(false);
+ dm->channel = val;
+ song->update(SC_DRUMMAP);
+ }
+ }
+ break;
+ case COL_LV1:
+ val = dm->lv1 + incVal;
+ if (val < 0)
+ val = 0;
+ else if (val > 127)
+ val = 127;
+ dm->lv1 = val;
+ break;
+ case COL_LV2:
+ val = dm->lv2 + incVal;
+ if (val < 0)
+ val = 0;
+ else if (val > 127)
+ val = 127;
+ dm->lv2 = val;
+ break;
+ case COL_LV3:
+ val = dm->lv3 + incVal;
+ if (val < 0)
+ val = 0;
+ else if (val > 127)
+ val = 127;
+ dm->lv3 = val;
+ break;
+ case COL_LV4:
+ val = dm->lv4 + incVal;
+ if (val < 0)
+ val = 0;
+ else if (val > 127)
+ val = 127;
+ dm->lv4 = val;
+ break;
+ case COL_NAME:
+ emit keyPressed(pitch, shift); //Mapping done on other side, send index
+ break;
+#if 0
+ case COL_CHANNEL:
+ {
+ int channel = t->channel();
+ if (button == Qt::RightButton) {
+ if (channel < 15)
+ ++channel;
+ }
+ else if (button == Qt::MidButton) {
+ if (channel > 0)
+ --channel;
+ }
+ if (channel != t->channel()) {
+ t->setChannel(channel);
+ emit channelChanged();
+ }
+ }
+#endif
+ default:
+ break;
+ }
+ redraw();
+ }
+
+//---------------------------------------------------------
+// viewMouseDoubleClickEvent
+//---------------------------------------------------------
+
+void DList::viewMouseDoubleClickEvent(QMouseEvent* ev)
+ {
+ int x = ev->x();
+ int y = ev->y();
+// int button = ev->button();
+ unsigned pitch = y / TH;
+
+ int section = header->sectionAt(x);
+
+ if ((section == COL_NAME || section == COL_VOL || section == COL_LEN || section == COL_LV1 ||
+ section == COL_LV2 || section == COL_LV3 || section == COL_LV4) && (ev->button() == Qt::LeftButton))
+ {
+ lineEdit(pitch, section);
+ }
+ else
+ viewMousePressEvent(ev);
+ }
+
+
+
+//---------------------------------------------------------
+// lineEdit
+//---------------------------------------------------------
+void DList::lineEdit(int line, int section)
+ {
+ DrumMap* dm = &drumMap[line];
+ editEntry = dm;
+ if (editor == 0) {
+ editor = new DLineEdit(this);
+ connect(editor, SIGNAL(returnPressed()),
+ SLOT(returnPressed()));
+ editor->setFrame(true);
+ }
+ int colx = mapx(header->sectionPos(section));
+ int colw = rmapx(header->sectionSize(section));
+ int coly = mapy(line * TH);
+ int colh = rmapy(TH);
+ selectedColumn = section; //Store selected column to have an idea of which one was selected when return is pressed
+ switch (section) {
+ case COL_NAME:
+ editor->setText(dm->name);
+ break;
+
+ case COL_VOL: {
+ editor->setText(QString::number(dm->vol));
+ break;
+ }
+
+ case COL_LEN: {
+ editor->setText(QString::number(dm->len));
+ break;
+ }
+
+ case COL_LV1:
+ editor->setText(QString::number(dm->lv1));
+ break;
+
+ case COL_LV2:
+ editor->setText(QString::number(dm->lv2));
+ break;
+
+ case COL_LV3:
+ editor->setText(QString::number(dm->lv3));
+ break;
+
+ case COL_LV4:
+ editor->setText(QString::number(dm->lv4));
+ break;
+ }
+
+ // editor->setText(dm->name);
+ editor->end(false);
+ editor->setGeometry(colx, coly, colw, colh);
+ // In all cases but the column name, select all text:
+ if (section != COL_NAME)
+ editor->selectAll();
+ editor->show();
+ editor->setFocus();
+
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+//---------------------------------------------------------
+// x2col
+//---------------------------------------------------------
+
+int DList::x2col(int x) const
+ {
+ int col = 0;
+ int w = 0;
+ for (; col < header->count(); col++) {
+ w += header->cellSize(col);
+ if (x < w)
+ break;
+ }
+ if (col == header->count())
+ return -1;
+ return header->mapToLogical(col);
+ }
+
+//---------------------------------------------------------
+// setCurDrumInstrument
+//---------------------------------------------------------
+
+void DList::setCurDrumInstrument(int instr)
+ {
+ if (instr < 0 || instr >= DRUM_MAPSIZE -1)
+ return; // illegal instrument
+ DrumMap* dm = &drumMap[instr];
+ if (currentlySelected != dm) {
+ currentlySelected = &drumMap[instr];
+ emit curDrumInstrumentChanged(instr);
+ song->update(SC_DRUMMAP);
+ }
+ }
+
+//---------------------------------------------------------
+// sizeChange
+//---------------------------------------------------------
+
+void DList::sizeChange(int, int, int)
+ {
+ redraw();
+ }
+
+//---------------------------------------------------------
+// returnPressed
+//---------------------------------------------------------
+
+void DList::returnPressed()
+ {
+ int val = -1;
+ if (selectedColumn != COL_NAME)
+ {
+ val = atoi(editor->text().ascii());
+ if (selectedColumn != COL_LEN)
+ {
+ if(selectedColumn == COL_VOL)
+ {
+ if (val > 200) //Check bounds for volume
+ val = 200;
+ if (val < 0)
+ val = 0;
+ }
+ else
+ {
+ if (val > 127) //Check bounds for lv1-lv4 values
+ val = 127;
+ if (val < 0)
+ val = 0;
+ }
+ }
+ }
+
+ switch(selectedColumn) {
+ case COL_NAME:
+ editEntry->name = editor->text();
+ break;
+
+ case COL_LEN:
+ editEntry->len = atoi(editor->text().ascii());
+ break;
+
+ case COL_VOL:
+ editEntry->vol = val;
+ break;
+
+ case COL_LV1:
+ editEntry->lv1 = val;
+ break;
+
+ case COL_LV2:
+ editEntry->lv2 = val;
+ break;
+
+ case COL_LV3:
+ editEntry->lv3 = val;
+ break;
+
+ case COL_LV4:
+ editEntry->lv4 = val;
+ break;
+
+ default:
+ printf("Return pressed in unknown column\n");
+ break;
+ }
+ selectedColumn = -1;
+ editor->hide();
+ editEntry = 0;
+ setFocus();
+ redraw();
+ }
+
+//---------------------------------------------------------
+// moved
+//---------------------------------------------------------
+
+void DList::moved(int, int)
+ {
+ redraw();
+ }
+
+//---------------------------------------------------------
+// tracklistChanged
+//---------------------------------------------------------
+
+void DList::tracklistChanged()
+ {
+ }
+
+//---------------------------------------------------------
+// songChanged
+//---------------------------------------------------------
+
+void DList::songChanged(int flags)
+ {
+ if (flags & SC_DRUMMAP) {
+ redraw();
+ }
+ }
+
+
+//---------------------------------------------------------
+// DList
+//---------------------------------------------------------
+
+DList::DList(Q3Header* h, QWidget* parent, int ymag)
+ : View(parent, 1, ymag)
+ {
+ setBg(Qt::white);
+ header = h;
+ scroll = 0;
+ header->setTracking(true);
+ connect(header, SIGNAL(sizeChange(int,int,int)),
+ SLOT(sizeChange(int,int,int)));
+ connect(header, SIGNAL(moved(int,int)), SLOT(moved(int,int)));
+ setFocusPolicy(Qt::StrongFocus);
+ drag = NORMAL;
+ editor = 0;
+ editEntry = 0;
+ // always select an drum instrument
+ currentlySelected = &drumMap[0];
+ selectedColumn = -1;
+ }
+
+//---------------------------------------------------------
+// ~DList
+//---------------------------------------------------------
+
+DList::~DList()
+ {
+// if (currentlySelected != 0)
+// currentlySelected->selected = false; //Reset the global thingie
+ }
+
+//---------------------------------------------------------
+// viewMouseMoveEvent
+//---------------------------------------------------------
+
+void DList::viewMouseMoveEvent(QMouseEvent* ev)
+ {
+ curY = ev->y();
+ int delta = curY - startY;
+ switch (drag) {
+ case START_DRAG:
+ if (delta < 0)
+ delta = -delta;
+ if (delta <= 2)
+ return;
+ drag = DRAG;
+ setCursor(QCursor(Qt::sizeVerCursor));
+ redraw();
+ break;
+ case NORMAL:
+ break;
+ case DRAG:
+ redraw();
+ break;
+ }
+ }
+
+//---------------------------------------------------------
+// viewMouseReleaseEvent
+//---------------------------------------------------------
+
+void DList::viewMouseReleaseEvent(QMouseEvent* ev)
+ {
+ if (drag == DRAG) {
+ int y = ev->y();
+ unsigned dPitch = y / TH;
+ setCursor(QCursor(Qt::arrowCursor));
+ currentlySelected = &drumMap[int(dPitch)];
+ emit curDrumInstrumentChanged(dPitch);
+ emit mapChanged(sPitch, dPitch); //Track pitch change done in canvas
+ }
+ drag = NORMAL;
+//?? redraw();
+ if (editEntry)
+ editor->setFocus();
+ int x = ev->x();
+ int y = ev->y();
+ bool shift = ev->state() & Qt::ShiftButton;
+ unsigned pitch = y / TH;
+
+ DCols col = DCols(x2col(x));
+
+ switch (col) {
+ case COL_NAME:
+ emit keyReleased(pitch, shift);
+ break;
+ case COL_ANOTE:
+ emit keyReleased(pitch, shift);
+ break;
+ default:
+ break;
+ }
+ }
+
+//---------------------------------------------------------
+// getSelectedInstrument
+//---------------------------------------------------------
+
+int DList::getSelectedInstrument()
+ {
+ if (currentlySelected == 0)
+ return -1;
+ return drumInmap[int(currentlySelected->enote)];
+ }
+
diff --git a/muse2/muse/midiedit/dlist.h b/muse2/muse/midiedit/dlist.h
new file mode 100644
index 00000000..1d7e0114
--- /dev/null
+++ b/muse2/muse/midiedit/dlist.h
@@ -0,0 +1,105 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: dlist.h,v 1.5.2.3 2009/10/16 21:50:16 terminator356 Exp $
+// (C) Copyright 1999 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __DLIST_H__
+#define __DLIST_H__
+
+#include <qlineedit.h>
+//Added by qt3to4:
+#include <QMouseEvent>
+#include <QKeyEvent>
+#include "view.h"
+
+#define TH 18 // normal Track-hight
+
+class QPainter;
+class Q3Header;
+class ScrollScale;
+class Device;
+class QLineEdit;
+class DrumMap;
+
+
+//---------------------------------------------------------
+// DLineEdit
+//---------------------------------------------------------
+class DLineEdit: public QLineEdit
+{
+ public:
+ DLineEdit(QWidget* parent) : QLineEdit(parent) {}
+ virtual ~DLineEdit() {};
+
+ virtual void keyPressEvent(QKeyEvent* keyItem) {
+ if(keyItem->key() == Qt::Key_Escape) {
+ parentWidget()->setFocus();
+ hide();
+ }
+ else
+ QLineEdit::keyPressEvent(keyItem);
+
+ }
+};
+
+//---------------------------------------------------------
+// DList
+//---------------------------------------------------------
+
+class DList : public View {
+ Q3Header* header;
+ ScrollScale* scroll;
+ QLineEdit* editor;
+ DrumMap* editEntry;
+ DrumMap* currentlySelected;
+ int selectedColumn;
+
+
+ int startY;
+ int curY;
+ int sPitch;
+ enum { NORMAL, START_DRAG, DRAG } drag;
+
+ virtual void draw(QPainter& p, const QRect&);
+ virtual void viewMousePressEvent(QMouseEvent* event);
+ virtual void viewMouseReleaseEvent(QMouseEvent* event);
+ virtual void viewMouseDoubleClickEvent(QMouseEvent*);
+ virtual void viewMouseMoveEvent(QMouseEvent*);
+
+ int x2col(int x) const;
+ void devicesPopupMenu(DrumMap* t, int x, int y, bool changeAll);
+ Q_OBJECT
+ //void setCurDrumInstrument(int n);
+
+ private slots:
+ void sizeChange(int, int, int);
+ void returnPressed();
+ void moved(int, int);
+
+ signals:
+ void channelChanged();
+ void mapChanged(int, int);
+ void keyPressed(int, bool);
+ void keyReleased(int, bool);
+ void curDrumInstrumentChanged(int);
+
+ public slots:
+ void tracklistChanged();
+ void songChanged(int);
+ public:
+ void lineEdit(int line, int section);
+ void setCurDrumInstrument(int n);
+ DList(Q3Header*, QWidget* parent, int ymag);
+ ~DList();
+ void setScroll(ScrollScale* s) { scroll = s; }
+ int getSelectedInstrument();
+
+enum DCols { COL_MUTE=0, COL_NAME, COL_VOL, COL_QNT, COL_ENOTE, COL_LEN,
+ COL_ANOTE, COL_CHANNEL, COL_PORT,
+ COL_LV1, COL_LV2, COL_LV3, COL_LV4, COL_NONE=-1};
+ };
+
+#endif // __DLIST_H_
+
diff --git a/muse2/muse/midiedit/drumedit.cpp b/muse2/muse/midiedit/drumedit.cpp
new file mode 100644
index 00000000..ebe89ac6
--- /dev/null
+++ b/muse2/muse/midiedit/drumedit.cpp
@@ -0,0 +1,1167 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: drumedit.cpp,v 1.22.2.21 2009/11/16 11:29:33 lunar_shuttle Exp $
+// (C) Copyright 1999 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include <qtoolbutton.h>
+#include <q3accel.h>
+#include <qlayout.h>
+#include <q3hbox.h>
+#include <qsizegrip.h>
+#include <qscrollbar.h>
+#include <qlabel.h>
+#include <qpushbutton.h>
+#include <qradiobutton.h>
+#include <q3buttongroup.h>
+#include <q3listbox.h>
+#include <q3popupmenu.h>
+#include <qmenubar.h>
+#include <qtooltip.h>
+#include <qapplication.h>
+#include <qclipboard.h>
+#include <qmessagebox.h>
+#include <qaction.h>
+//Added by qt3to4:
+#include <QKeyEvent>
+#include <Q3ValueList>
+#include <Q3GridLayout>
+#include <QResizeEvent>
+#include <QCloseEvent>
+
+#include "drumedit.h"
+#include "mtscale.h"
+#include "scrollscale.h"
+#include "xml.h"
+#include "dlist.h"
+#include "dcanvas.h"
+#include "ttoolbar.h"
+#include "tb1.h"
+#include "splitter.h"
+#include "utils.h"
+#include "../ctrl/ctrledit.h"
+#include "vscale.h"
+#include "swidget.h"
+#include "globals.h"
+#include "icons.h"
+#include "filedialog.h"
+#include "drummap.h"
+#include "audio.h"
+#include "gconfig.h"
+
+/*
+static const char* map_file_pattern[] = {
+ "Presets (*.map *.map.gz *.map.bz2)",
+ "All Files (*)",
+ 0
+ };
+static const char* map_file_save_pattern[] = {
+ "Presets (*.map)",
+ "gzip compressed presets (*.map.gz)",
+ "bzip2 compressed presets (*.map.bz2)",
+ "All Files (*)",
+ 0
+ };
+*/
+
+int DrumEdit::_quantInit = 96;
+int DrumEdit::_rasterInit = 96;
+int DrumEdit::_widthInit = 600;
+int DrumEdit::_heightInit = 400;
+int DrumEdit::_dlistWidthInit = 50;
+int DrumEdit::_dcanvasWidthInit = 300;
+int DrumEdit::_toInit = 0;
+
+static const int xscale = -10;
+static const int yscale = 1;
+static const int drumeditTools = PointerTool | PencilTool | RubberTool;
+
+//---------------------------------------------------------
+// DWhatsThis::text
+//---------------------------------------------------------
+
+QString DWhatsThis::text(const QPoint& pos)
+ {
+ int section = header->sectionAt(pos.x());
+ if (section == -1)
+ return QString::null;
+ switch(section) {
+ case 0: return Q3Header::tr("mute instrument"); break;
+ case 1: return Q3Header::tr("sound name"); break;
+ case 2: return Q3Header::tr("volume percent"); break;
+ case 3: return Q3Header::tr("quantisation"); break;
+ case 4: return Q3Header::tr("this input note triggers the sound"); break;
+ case 5: return Q3Header::tr("note length"); break;
+ case 6: return Q3Header::tr("this is the note which is played"); break;
+ case 7: return Q3Header::tr("output channel (hold ctl to affect all rows)"); break;
+ case 8: return Q3Header::tr("output port"); break;
+ case 9: return Q3Header::tr("shift + control key: draw velocity level 1"); break;
+ case 10: return Q3Header::tr("control key: draw velocity level 2"); break;
+ case 11: return Q3Header::tr("shift key: draw velocity level 3"); break;
+ case 12: return Q3Header::tr("draw velocity level 4"); break;
+ default: break;
+ }
+ return QString::null;
+ }
+
+//---------------------------------------------------------
+// DHeaderTip::maybeTip
+//---------------------------------------------------------
+
+void DHeaderTip::maybeTip(const QPoint &pos)
+ {
+#if 0 // ddskrjo
+ Header* w = (Header*)parentWidget();
+ int section = w->sectionAt(pos.x());
+ if (section == -1)
+ return;
+ QRect r(w->sectionPos(section), 0, w->sectionSize(section),
+ w->height());
+ QString p;
+ switch(section) {
+ case 0: p = Q3Header::tr("mute instrument"); break;
+ case 1: p = Q3Header::tr("sound name"); break;
+ case 2: p = Q3Header::tr("volume percent"); break;
+ case 3: p = Q3Header::tr("quantisation"); break;
+ case 4: p = Q3Header::tr("this input note triggers the sound"); break;
+ case 5: p = Q3Header::tr("note length"); break;
+ case 6: p = Q3Header::tr("this is the note which is played"); break;
+ case 7: p = Q3Header::tr("output channel (ctl: affect all rows)"); break;
+ case 8: p = Q3Header::tr("output port"); break;
+ case 9: p = Q3Header::tr("shift + control key: draw velocity level 1"); break;
+ case 10: p = Q3Header::tr("control key: draw velocity level 2"); break;
+ case 11: p = Q3Header::tr("shift key: draw velocity level 3"); break;
+ case 12: p = Q3Header::tr("draw velocity level 4"); break;
+ default: return;
+ }
+ tip(r, p);
+#endif
+ }
+
+//---------------------------------------------------------
+// closeEvent
+//---------------------------------------------------------
+
+void DrumEdit::closeEvent(QCloseEvent* e)
+ {
+ //Store values of the horizontal splitter
+ Q3ValueList<int> sizes = split2->sizes();
+ Q3ValueList<int>::Iterator it = sizes.begin();
+ _dlistWidthInit = *it; //There are only 2 values stored in the sizelist, size of dlist widget and dcanvas widget
+ it++;
+ _dcanvasWidthInit = *it;
+ emit deleted((unsigned long)this);
+ e->accept();
+ }
+
+//---------------------------------------------------------
+// DrumEdit
+//---------------------------------------------------------
+
+DrumEdit::DrumEdit(PartList* pl, QWidget* parent, const char* name, unsigned initPos)
+ : MidiEditor(_quantInit, _rasterInit, pl, parent, name)
+ {
+ split1w1 = 0;
+ resize(_widthInit, _heightInit);
+ selPart = 0;
+ _to = _toInit;
+ //---------Pulldown Menu----------------------------
+ menuFile = new Q3PopupMenu(this);
+ menuBar()->insertItem(tr("&File"), menuFile);
+
+ menuFile->insertItem(QIcon(*openIcon), tr("Load Map"), DrumCanvas::CMD_LOAD);
+ menuFile->insertItem(QIcon(*saveIcon), tr("Save Map"), DrumCanvas::CMD_SAVE);
+ menuFile->insertItem(tr("Reset GM Map"), DrumCanvas::CMD_RESET);
+
+ menuEdit = new Q3PopupMenu(this);
+ menuBar()->insertItem(tr("&Edit"), menuEdit);
+ undoRedo->addTo(menuEdit);
+ Q3Accel* qa = new Q3Accel(this);
+ qa->connectItem(qa->insertItem(Qt::CTRL+Qt::Key_Z), song, SLOT(undo()));
+ menuEdit->insertSeparator();
+ menuEdit->insertItem(tr("Cut"), DrumCanvas::CMD_CUT);
+ menuEdit->insertItem(tr("Copy"), DrumCanvas::CMD_COPY);
+ menuEdit->insertItem(tr("Paste"), DrumCanvas::CMD_PASTE);
+ menuEdit->insertSeparator();
+ menuEdit->insertItem(tr("Delete Events"), DrumCanvas::CMD_DEL);
+
+ // Functions
+ menuFunctions = new Q3PopupMenu(this);
+ menuBar()->insertItem(tr("&Functions"), menuFunctions);
+ menuFunctions->insertTearOffHandle();
+ menuFunctions->insertItem(tr("Set fixed length"), DrumCanvas::CMD_FIXED_LEN);
+ menuFunctions->insertItem(tr("Modify Velocity"), DrumCanvas::CMD_MODIFY_VELOCITY);
+
+ menuSelect = new Q3PopupMenu(this);
+ menuSelect->insertItem(tr("Select All"), DrumCanvas::CMD_SELECT_ALL);
+ menuSelect->insertItem(tr("Select None"), DrumCanvas::CMD_SELECT_NONE);
+ menuSelect->insertItem(tr("Invert"), DrumCanvas::CMD_SELECT_INVERT);
+ menuSelect->insertSeparator();
+ menuSelect->insertItem(tr("Inside Loop"), DrumCanvas::CMD_SELECT_ILOOP);
+ menuSelect->insertItem(tr("Outside Loop"), DrumCanvas::CMD_SELECT_OLOOP);
+
+ menuSelect->insertSeparator();
+
+ menuSelect->insertItem(tr("Previous Part"), DrumCanvas::CMD_SELECT_PREV_PART);
+ menuSelect->insertItem(tr("Next Part"), DrumCanvas::CMD_SELECT_NEXT_PART);
+
+ menuEdit->insertItem(tr("&Select"), menuSelect);
+
+ Q3PopupMenu* menuScriptPlugins = new Q3PopupMenu(this);
+ song->populateScriptMenu(menuScriptPlugins, this);
+ menuBar()->insertItem(tr("&Plugins"), menuScriptPlugins);
+
+ connect(menuFile, SIGNAL(activated(int)), SLOT(cmd(int)));
+ connect(menuEdit, SIGNAL(activated(int)), SLOT(cmd(int)));
+ connect(menuSelect, SIGNAL(activated(int)), SLOT(cmd(int)));
+ connect(menuFunctions, SIGNAL(activated(int)), SLOT(cmd(int)));
+
+ //---------------------------------------------------
+ // Toolbars
+ //---------------------------------------------------
+
+ tools = new Q3ToolBar(this, "drum-tools");
+ new QToolButton(*openIcon, tr("Load Drummap"),
+ QString::null, this, SLOT(load()),
+ tools, "load drummap from file");
+
+ new QToolButton(*saveIcon, tr("Store Drummap"),
+ QString::null,
+ this, SLOT(save()),
+ tools, "store drummap to file");
+
+ Q3WhatsThis::whatsThisButton(tools);
+
+ tools->addSeparator();
+ undoRedo->addTo(tools);
+ tools->addSeparator();
+
+ srec = new QToolButton(tools, "srec");
+ QToolTip::add(srec, tr("Step Record"));
+ srec->setPixmap(*steprecIcon);
+ srec->setToggleButton(true);
+
+ midiin = new QToolButton(tools, "midiin");
+ QToolTip::add(midiin, tr("Midi Input"));
+ midiin->setPixmap(*midiinIcon);
+ midiin->setToggleButton(true);
+
+ tools2 = new EditToolBar(this, drumeditTools);
+
+ Q3ToolBar* transport = new Q3ToolBar(this);
+ transportAction->addTo(transport);
+
+ // dontt show pitch value in toolbar
+ //toolbar = new Toolbar1(this, _rasterInit, _quantInit, false);
+ toolbar = new Toolbar1(this, _rasterInit, _quantInit);
+ info = new NoteInfo(this);
+
+ //---------------------------------------------------
+ // split
+ //---------------------------------------------------
+
+ split1 = new Splitter(Qt::Vertical, mainw, "split1");
+ QPushButton* ctrl = new QPushButton(tr("ctrl"), mainw, "Ctrl");
+ ctrl->setFont(config.fonts[3]);
+ hscroll = new ScrollScale(-25, -2, xscale, 20000, Qt::Horizontal, mainw);
+ ctrl->setFixedSize(40, hscroll->sizeHint().height());
+ QToolTip::add(ctrl, tr("Add Controller View"));
+
+ QSizeGrip* corner = new QSizeGrip(mainw);
+ corner->setFixedHeight(hscroll->sizeHint().height());
+
+ mainGrid->setRowStretch(0, 100);
+ mainGrid->setColStretch(1, 100);
+
+ mainGrid->addMultiCellWidget(split1, 0, 0, 0, 2);
+ mainGrid->addWidget(ctrl, 1, 0);
+ mainGrid->addWidget(hscroll, 1, 1);
+ mainGrid->addWidget(corner, 1, 2, Qt::AlignBottom|Qt::AlignRight);
+// mainGrid->addRowSpacing(1, hscroll->sizeHint().height());
+
+ split2 = new Splitter(Qt::Horizontal, split1, "split2");
+ split1w1 = new QWidget(split2, "split1w1");
+ QWidget* split1w2 = new QWidget(split2, "split1w2");
+ Q3GridLayout* gridS1 = new Q3GridLayout(split1w1);
+ Q3GridLayout* gridS2 = new Q3GridLayout(split1w2);
+ time = new MTScale(&_raster, split1w2, xscale);
+ canvas = new DrumCanvas(this, split1w2, xscale, yscale);
+ vscroll = new ScrollScale(-4, 1, yscale, DRUM_MAPSIZE*TH, Qt::Vertical, split1w2);
+ int offset = -(config.division/4);
+ canvas->setOrigin(offset, 0);
+ canvas->setCanvasTools(drumeditTools);
+ canvas->setFocus();
+ connect(canvas, SIGNAL(toolChanged(int)), tools2, SLOT(set(int)));
+ time->setOrigin(offset, 0);
+
+ Q3ValueList<int> mops;
+ mops.append(_dlistWidthInit);
+ mops.append(_dcanvasWidthInit);
+ split2->setSizes(mops);
+ // By T356. Not much choice but to disable this for now, to stop runaway resize bug.
+ // Can't seem to get the splitter to readjust when manually setting sizes.
+ //split2->setResizeMode(split1w1, QSplitter::KeepSize);
+
+ gridS2->setRowStretch(1, 100);
+ gridS2->setColStretch(0, 100);
+
+ gridS2->addMultiCellWidget(time, 0, 0, 0, 1);
+ gridS2->addMultiCellWidget(hLine(split1w2), 1, 1, 0, 1);
+ gridS2->addWidget(canvas, 2, 0);
+
+ gridS2->addWidget(vscroll, 2, 1);
+ //
+ // Reihenfolge in dlist.c festgeschrieben ("Dcols")
+ //
+ header = new Header(split1w1, "header");
+ header->setFixedHeight(30);
+ header->addLabel(tr("M"), 20);
+ header->addLabel(tr("Sound"), 100);
+ header->addLabel(tr("Vol"));
+ header->addLabel(tr("QNT"));
+ header->addLabel(tr("E-Note"));
+ header->addLabel(tr("Len"));
+ header->addLabel(tr("A-Note"));
+ header->addLabel(tr("Ch"));
+ header->addLabel(tr("Port"), 60);
+ header->addLabel(tr("LV1"));
+ header->addLabel(tr("LV2"));
+ header->addLabel(tr("LV3"));
+ header->addLabel(tr("LV4"));
+ new DHeaderTip(header);
+ new DWhatsThis(header, header);
+
+ dlist = new DList(header, split1w1, yscale);
+ // p3.3.44
+ setCurDrumInstrument(dlist->getSelectedInstrument());
+
+ connect(dlist, SIGNAL(keyPressed(int, bool)), canvas, SLOT(keyPressed(int, bool)));
+ connect(dlist, SIGNAL(keyReleased(int, bool)), canvas, SLOT(keyReleased(int, bool)));
+ connect(dlist, SIGNAL(mapChanged(int, int)), canvas, SLOT(mapChanged(int, int)));
+
+ gridS1->setRowStretch(1, 100);
+ gridS1->setColStretch(0, 100);
+ gridS1->addWidget(header, 0, 0);
+ gridS1->addWidget(dlist, 1, 0);
+
+ connect(canvas, SIGNAL(newWidth(int)), SLOT(newCanvasWidth(int)));
+ connect(canvas, SIGNAL(verticalScroll(unsigned)), vscroll, SLOT(setPos(unsigned)));
+ connect(canvas, SIGNAL(horizontalScroll(unsigned)),hscroll, SLOT(setPos(unsigned)));
+ connect(canvas, SIGNAL(horizontalScrollNoLimit(unsigned)),hscroll, SLOT(setPosNoLimit(unsigned)));
+ connect(song, SIGNAL(songChanged(int)), SLOT(songChanged1(int)));
+ connect(song, SIGNAL(songChanged(int)), dlist, SLOT(songChanged(int)));
+ connect(vscroll, SIGNAL(scrollChanged(int)), canvas, SLOT(setYPos(int)));
+ connect(vscroll, SIGNAL(scaleChanged(int)), canvas, SLOT(setYMag(int)));
+ connect(vscroll, SIGNAL(scaleChanged(int)), dlist, SLOT(setYMag(int)));
+ connect(hscroll, SIGNAL(scrollChanged(int)), canvas, SLOT(setXPos(int)));
+ connect(hscroll, SIGNAL(scaleChanged(int)), canvas, SLOT(setXMag(int)));
+ connect(srec, SIGNAL(toggled(bool)), canvas, SLOT(setSteprec(bool)));
+ connect(midiin, SIGNAL(toggled(bool)), canvas, SLOT(setMidiin(bool)));
+
+ connect(vscroll, SIGNAL(scrollChanged(int)), dlist, SLOT(setYPos(int)));
+ connect(hscroll, SIGNAL(scrollChanged(int)), time, SLOT(setXPos(int)));
+ connect(hscroll, SIGNAL(scaleChanged(int)), time, SLOT(setXMag(int)));
+
+ connect(tools2, SIGNAL(toolChanged(int)), canvas, SLOT(setTool(int)));
+
+ connect(canvas, SIGNAL(selectionChanged(int, Event&, Part*)), this,
+ SLOT(setSelection(int, Event&, Part*)));
+ connect(canvas, SIGNAL(followEvent(int)), SLOT(follow(int)));
+
+ connect(hscroll, SIGNAL(scaleChanged(int)), SLOT(updateHScrollRange()));
+ setCaption(canvas->getCaption());
+
+ updateHScrollRange();
+
+ // connect toolbar
+ connect(canvas, SIGNAL(timeChanged(unsigned)), SLOT(setTime(unsigned)));
+ connect(time, SIGNAL(timeChanged(unsigned)), SLOT(setTime(unsigned)));
+ 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(info, SIGNAL(valueChanged(NoteInfo::ValType, int)), SLOT(noteinfoChanged(NoteInfo::ValType, int)));
+
+ connect(ctrl, SIGNAL(clicked()), SLOT(addCtrl()));
+
+ QClipboard* cb = QApplication::clipboard();
+ connect(cb, SIGNAL(dataChanged()), SLOT(clipboardChanged()));
+
+ clipboardChanged(); // enable/disable "Paste"
+ selectionChanged(); // enable/disable "Copy" & "Paste"
+ initShortcuts();
+
+ const Pos cpos=song->cPos();
+ canvas->setPos(0, cpos.tick(), true);
+ canvas->selectAtTick(cpos.tick());
+ //canvas->selectFirst();
+
+ if(canvas->track())
+ toolbar->setSolo(canvas->track()->solo());
+
+ unsigned pos;
+ if(initPos >= MAXINT)
+ pos = song->cpos();
+ else
+ pos = initPos;
+ if(pos > MAXINT)
+ pos = MAXINT;
+ hscroll->setOffset((int)pos);
+ }
+
+//---------------------------------------------------------
+// songChanged1
+//---------------------------------------------------------
+
+void DrumEdit::songChanged1(int bits)
+ {
+ if (bits & SC_SOLO)
+ {
+ toolbar->setSolo(canvas->track()->solo());
+ return;
+ }
+ songChanged(bits);
+
+ }
+
+//---------------------------------------------------------
+// updateHScrollRange
+//---------------------------------------------------------
+
+void DrumEdit::updateHScrollRange()
+{
+ int s, e;
+ canvas->range(&s, &e);
+ // Show one more measure.
+ e += sigmap.ticksMeasure(e);
+ // Show another quarter measure due to imprecise drawing at canvas end point.
+ e += sigmap.ticksMeasure(e) / 4;
+ // Compensate for drum list, splitter handle, and vscroll widths.
+ e += canvas->rmapxDev(dlist->width() + split2->handleWidth() - vscroll->width());
+ int s1, e1;
+ hscroll->range(&s1, &e1);
+ if(s != s1 || e != e1)
+ hscroll->setRange(s, e);
+}
+
+//---------------------------------------------------------
+// follow
+//---------------------------------------------------------
+
+void DrumEdit::follow(int pos)
+ {
+ int s, e;
+ canvas->range(&s, &e);
+
+ if (pos < e && pos >= s)
+ hscroll->setOffset(pos);
+ if (pos < s)
+ hscroll->setOffset(s);
+ }
+
+//---------------------------------------------------------
+// setTime
+//---------------------------------------------------------
+
+void DrumEdit::setTime(unsigned tick)
+ {
+ toolbar->setTime(tick);
+ time->setPos(3, tick, false);
+ }
+
+//---------------------------------------------------------
+// ~DrumEdit
+//---------------------------------------------------------
+
+DrumEdit::~DrumEdit()
+ {
+ undoRedo->removeFrom(tools);
+ }
+
+//---------------------------------------------------------
+// setSelection
+// update Info Line
+//---------------------------------------------------------
+
+void DrumEdit::setSelection(int tick, Event& e, Part* p)
+ {
+ selEvent = e;
+ selPart = (MidiPart*)p;
+ selTick = tick;
+ info->setEnabled(!e.empty());
+ if (!e.empty()) {
+ info->setValues(tick,
+ selEvent.lenTick(),
+ selEvent.pitch(),
+ selEvent.velo(),
+ selEvent.veloOff());
+ }
+ selectionChanged();
+ }
+
+//---------------------------------------------------------
+// soloChanged
+//---------------------------------------------------------
+
+void DrumEdit::soloChanged(bool flag)
+ {
+ audio->msgSetSolo(canvas->track(), flag);
+ song->update(SC_SOLO);
+ }
+
+//---------------------------------------------------------
+// setRaster
+//---------------------------------------------------------
+
+void DrumEdit::setRaster(int val)
+ {
+ _rasterInit = val;
+ MidiEditor::setRaster(val);
+ canvas->redrawGrid();
+ }
+
+//---------------------------------------------------------
+// setQuant
+//---------------------------------------------------------
+
+void DrumEdit::setQuant(int val)
+ {
+ _quantInit = val;
+ MidiEditor::setQuant(val);
+ }
+
+//---------------------------------------------------------
+// edit currently selected Event
+//---------------------------------------------------------
+
+void DrumEdit::noteinfoChanged(NoteInfo::ValType type, int val)
+ {
+ if (selEvent.empty()) {
+ printf("noteinfoChanged while note is zero %d\n", type);
+ return;
+ }
+ 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;
+ }
+ // Indicate do undo, and do not do port controller values and clone parts.
+ //audio->msgChangeEvent(selEvent, event, selPart);
+ audio->msgChangeEvent(selEvent, event, selPart, true, false, false);
+ }
+
+//---------------------------------------------------------
+// writeStatus
+//---------------------------------------------------------
+
+void DrumEdit::writeStatus(int level, Xml& xml) const
+ {
+ writePartList(level, xml);
+ xml.tag(level++, "drumedit");
+ MidiEditor::writeStatus(level, xml);
+
+ for (std::list<CtrlEdit*>::const_iterator i = ctrlEditList.begin();
+ i != ctrlEditList.end(); ++i) {
+ (*i)->writeStatus(level, xml);
+ }
+
+ split1->writeStatus(level, xml);
+ split2->writeStatus(level, xml);
+
+ header->writeStatus(level, xml);
+ xml.intTag(level, "steprec", canvas->steprec());
+ xml.intTag(level, "midiin", canvas->midiin());
+ xml.intTag(level, "xpos", hscroll->pos());
+ xml.intTag(level, "xmag", hscroll->mag());
+ xml.intTag(level, "ypos", vscroll->pos());
+ xml.intTag(level, "ymag", vscroll->mag());
+ xml.tag(level, "/drumedit");
+ }
+
+//---------------------------------------------------------
+// readStatus
+//---------------------------------------------------------
+
+void DrumEdit::readStatus(Xml& xml)
+ {
+ 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 == "steprec") {
+ int val = xml.parseInt();
+ canvas->setSteprec(val);
+ srec->setOn(val);
+ }
+ else if (tag == "midiin") {
+ int val = xml.parseInt();
+ canvas->setMidiin(val);
+ midiin->setOn(val);
+ }
+ else if (tag == "ctrledit") {
+ CtrlEdit* ctrl = addCtrl();
+ ctrl->readStatus(xml);
+ }
+ else if (tag == split1->name())
+ split1->readStatus(xml);
+ else if (tag == split2->name())
+ split2->readStatus(xml);
+ else if (tag == "midieditor")
+ MidiEditor::readStatus(xml);
+ else if (tag == header->name())
+ header->readStatus(xml);
+ else if (tag == "xmag")
+ hscroll->setMag(xml.parseInt());
+ else if (tag == "xpos")
+ hscroll->setPos(xml.parseInt());
+ else if (tag == "ymag")
+ vscroll->setMag(xml.parseInt());
+ else if (tag == "ypos")
+ vscroll->setPos(xml.parseInt());
+ else
+ xml.unknown("DrumEdit");
+ break;
+ case Xml::TagEnd:
+ if (tag == "drumedit") {
+ _quantInit = _quant;
+ _rasterInit = _raster;
+ toolbar->setRaster(_raster);
+ toolbar->setQuant(_quant);
+ canvas->redrawGrid();
+ return;
+ }
+ default:
+ break;
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// readConfiguration
+//---------------------------------------------------------
+
+void DrumEdit::readConfiguration(Xml& xml)
+ {
+ 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 == "quant")
+ _quantInit = xml.parseInt();
+ else if (tag == "raster")
+ _rasterInit = xml.parseInt();
+ else if (tag == "width")
+ _widthInit = xml.parseInt();
+ else if (tag == "height")
+ _heightInit = xml.parseInt();
+ else if (tag == "dcanvaswidth")
+ _dcanvasWidthInit = xml.parseInt();
+ else if (tag == "dlistwidth")
+ _dlistWidthInit = xml.parseInt();
+ else if (tag == "to") {
+ _toInit = xml.parseInt();
+ }
+ else
+ xml.unknown("DrumEdit");
+ break;
+ case Xml::TagEnd:
+ if (tag == "drumedit") {
+ return;
+ }
+ default:
+ break;
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// writeConfiguration
+//---------------------------------------------------------
+
+void DrumEdit::writeConfiguration(int level, Xml& xml)
+ {
+ xml.tag(level++, "drumedit");
+ xml.intTag(level, "quant", _quantInit);
+ xml.intTag(level, "raster", _rasterInit);
+ xml.intTag(level, "width", _widthInit);
+ xml.intTag(level, "height", _heightInit);
+ xml.intTag(level, "dlistwidth", _dlistWidthInit);
+ xml.intTag(level, "dcanvaswidth", _dcanvasWidthInit);
+ xml.intTag(level, "to", _toInit);
+ xml.tag(level, "/drumedit");
+ }
+
+//---------------------------------------------------------
+// load
+//---------------------------------------------------------
+
+void DrumEdit::load()
+ {
+ //QString fn = getOpenFileName("drummaps", map_file_pattern,
+ QString fn = getOpenFileName("drummaps", drum_map_file_pattern,
+ this, tr("Muse: Load Drum Map"), 0);
+ if (fn.isEmpty())
+ return;
+ bool popenFlag;
+ FILE* f = fileOpen(this, fn, QString(".map"), "r", popenFlag, true);
+ if (f == 0)
+ return;
+
+ Xml xml(f);
+ int mode = 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 (mode == 0 && tag == "muse")
+ mode = 1;
+ else if (mode == 1 && tag == "drummap") {
+ readDrumMap(xml, true);
+ mode = 0;
+ }
+ else
+ xml.unknown("DrumEdit");
+ break;
+ case Xml::Attribut:
+ break;
+ case Xml::TagEnd:
+ if (!mode && tag == "muse")
+ goto ende;
+ default:
+ break;
+ }
+ }
+ende:
+ if (popenFlag)
+ pclose(f);
+ else
+ fclose(f);
+ dlist->redraw();
+ canvas->redraw();
+ }
+
+//---------------------------------------------------------
+// save
+//---------------------------------------------------------
+
+void DrumEdit::save()
+ {
+ //QString fn = getSaveFileName(QString("drummaps"), map_file_pattern,
+ QString fn = getSaveFileName(QString("drummaps"), drum_map_file_save_pattern,
+ this, tr("MusE: Store Drum Map"));
+ if (fn.isEmpty())
+ return;
+ bool popenFlag;
+ FILE* f = fileOpen(this, fn, QString(".map"), "w", popenFlag, false, true);
+ if (f == 0)
+ return;
+ Xml xml(f);
+ xml.header();
+ xml.tag(0, "muse version=\"1.0\"");
+ writeDrumMap(1, xml, true);
+ xml.tag(1, "/muse");
+
+ if (popenFlag)
+ pclose(f);
+ else
+ fclose(f);
+ }
+
+//---------------------------------------------------------
+// reset
+//---------------------------------------------------------
+
+void DrumEdit::reset()
+{
+ if(QMessageBox::warning(this, tr("Drum map"),
+ tr("Reset the drum map with GM defaults?"),
+ QMessageBox::Ok | QMessageBox::Default, QMessageBox::Cancel | QMessageBox::Escape, Qt::NoButton) == QMessageBox::Ok)
+ {
+ resetGMDrumMap();
+ dlist->redraw();
+ canvas->redraw();
+ }
+}
+
+//---------------------------------------------------------
+// cmd
+// pulldown menu commands
+//---------------------------------------------------------
+
+void DrumEdit::cmd(int cmd)
+ {
+ switch(cmd) {
+ case DrumCanvas::CMD_LOAD:
+ load();
+ break;
+ case DrumCanvas::CMD_SAVE:
+ save();
+ break;
+ case DrumCanvas::CMD_RESET:
+ reset();
+ break;
+ default:
+ ((DrumCanvas*)(canvas))->cmd(cmd);
+ break;
+ }
+ }
+
+//---------------------------------------------------------
+// clipboardChanged
+//---------------------------------------------------------
+
+void DrumEdit::clipboardChanged()
+ {
+ QMimeSource* ms = QApplication::clipboard()->data(QClipboard::Clipboard);
+ if (ms && ms->format(0)) {
+ bool flag = strcmp(ms->format(0), "text/eventlist;charset=UTF-8") == 0;
+ menuEdit->setItemEnabled(DrumCanvas::CMD_PASTE, flag);
+ }
+ }
+
+//---------------------------------------------------------
+// selectionChanged
+//---------------------------------------------------------
+
+void DrumEdit::selectionChanged()
+ {
+ bool flag = canvas->selectionSize() > 0;
+ menuEdit->setItemEnabled(DrumCanvas::CMD_CUT, flag);
+ menuEdit->setItemEnabled(DrumCanvas::CMD_COPY, flag);
+ menuEdit->setItemEnabled(DrumCanvas::CMD_DEL, flag);
+ }
+
+//---------------------------------------------------------
+// addCtrl
+//---------------------------------------------------------
+
+CtrlEdit* DrumEdit::addCtrl()
+ {
+ CtrlEdit* ctrlEdit = new CtrlEdit(split1, this, xscale, true, "drumCtrlEdit");
+ 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)));
+ connect(tools2, SIGNAL(toolChanged(int)), ctrlEdit, SLOT(setTool(int)));
+ connect(dlist, SIGNAL(curDrumInstrumentChanged(int)), SLOT(setCurDrumInstrument(int)));
+
+ //printf("DrumEdit::addCtrl curDrumInstrument:%d\n", dlist->getSelectedInstrument());
+
+ setCurDrumInstrument(dlist->getSelectedInstrument());
+
+ // p3.3.44
+ ctrlEdit->setTool(tools2->curTool());
+
+ ctrlEdit->setXPos(hscroll->pos());
+ ctrlEdit->setXMag(hscroll->getScaleValue());
+
+ if(split1w1)
+ {
+ split2->setCollapsible(split1w1, false);
+ split1w1->setMinimumWidth(CTRL_PANEL_FIXED_WIDTH);
+ }
+ ctrlEdit->setCanvasWidth(canvas->width());
+
+ ctrlEdit->show();
+ ctrlEditList.push_back(ctrlEdit);
+ return ctrlEdit;
+ }
+
+//---------------------------------------------------------
+// removeCtrl
+//---------------------------------------------------------
+
+void DrumEdit::removeCtrl(CtrlEdit* ctrl)
+ {
+ for (std::list<CtrlEdit*>::iterator i = ctrlEditList.begin();
+ i != ctrlEditList.end(); ++i) {
+ if (*i == ctrl) {
+ ctrlEditList.erase(i);
+ break;
+ }
+ }
+
+ if(split1w1)
+ {
+ if(ctrlEditList.empty())
+ {
+ split1w1->setMinimumWidth(0);
+ split2->setCollapsible(split1w1, true);
+ }
+ }
+ }
+//---------------------------------------------------------
+// newCanvasWidth
+//---------------------------------------------------------
+
+void DrumEdit::newCanvasWidth(int w)
+ {
+ int nw = w + (vscroll->width() - 18); // 18 is the fixed width of the CtlEdit VScale widget.
+ if(nw < 1)
+ nw = 1;
+
+ for (std::list<CtrlEdit*>::iterator i = ctrlEditList.begin();
+ i != ctrlEditList.end(); ++i) {
+ // Changed by Tim. p3.3.7
+ //(*i)->setCanvasWidth(w);
+ (*i)->setCanvasWidth(nw);
+ }
+
+ updateHScrollRange();
+ }
+
+//---------------------------------------------------------
+// resizeEvent
+//---------------------------------------------------------
+
+void DrumEdit::resizeEvent(QResizeEvent* ev)
+ {
+ QWidget::resizeEvent(ev);
+ _widthInit = ev->size().width();
+ _heightInit = ev->size().height();
+
+ //TODO: Make the dlist not expand/shrink, but the canvas instead
+ }
+
+
+//---------------------------------------------------------
+// configChanged
+//---------------------------------------------------------
+
+void DrumEdit::configChanged()
+ {
+ initShortcuts();
+ }
+
+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
+ };
+
+//---------------------------------------------------------
+// keyPressEvent
+//---------------------------------------------------------
+void DrumEdit::keyPressEvent(QKeyEvent* event)
+ {
+ DrumCanvas* dc = (DrumCanvas*)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;
+ int key = event->key();
+
+ if (event->state() & Qt::ShiftButton)
+ key += Qt::SHIFT;
+ if (event->state() & Qt::AltButton)
+ key += Qt::ALT;
+ if (event->state() & Qt::ControlButton)
+ key+= Qt::CTRL;
+
+ if (key == Qt::Key_Escape) {
+ close();
+ return;
+ }
+ else if (key == Qt::Key_Up) {
+ dlist->setCurDrumInstrument(dlist->getSelectedInstrument()-1);
+ dlist->redraw();
+ return;
+ }
+ else if (key == Qt::Key_F2) {
+ dlist->lineEdit(dlist->getSelectedInstrument(),(int)DList::COL_NAME);
+ return;
+ }
+ else if (key == Qt::Key_Down) {
+ dlist->setCurDrumInstrument(dlist->getSelectedInstrument()+1);
+ dlist->redraw();
+ return;
+ }
+
+ else if (key == shortcuts[SHRT_POS_INC].key) {
+ dc->cmd(DrumCanvas::CMD_RIGHT);
+ return;
+ }
+ else if (key == shortcuts[SHRT_POS_DEC].key) {
+ dc->cmd(DrumCanvas::CMD_LEFT);
+ return;
+ }
+
+ else if (key == shortcuts[SHRT_TOOL_POINTER].key) {
+ tools2->set(PointerTool);
+ return;
+ }
+ else if (key == shortcuts[SHRT_TOOL_PENCIL].key) {
+ tools2->set(PencilTool);
+ return;
+ }
+ else if (key == shortcuts[SHRT_TOOL_RUBBER].key) {
+ tools2->set(RubberTool);
+ return;
+ }
+ else if (key == shortcuts[SHRT_ZOOM_IN].key) {
+ int mag = hscroll->mag();
+ int zoomlvl = ScrollScale::getQuickZoomLevel(mag);
+ if (zoomlvl < 23)
+ zoomlvl++;
+
+ int newmag = ScrollScale::convertQuickZoomLevelToMag(zoomlvl);
+ hscroll->setMag(newmag);
+ //printf("mag = %d zoomlvl = %d newmag = %d\n", mag, zoomlvl, newmag);
+ return;
+ }
+ else if (key == shortcuts[SHRT_ZOOM_OUT].key) {
+ int mag = hscroll->mag();
+ int zoomlvl = ScrollScale::getQuickZoomLevel(mag);
+ if (zoomlvl > 1)
+ zoomlvl--;
+
+ int newmag = ScrollScale::convertQuickZoomLevelToMag(zoomlvl);
+ hscroll->setMag(newmag);
+ //printf("mag = %d zoomlvl = %d newmag = %d\n", mag, zoomlvl, newmag);
+ return;
+ }
+ else if (key == shortcuts[SHRT_SCROLL_LEFT].key) {
+ int pos = hscroll->pos() - config.division;
+ if (pos < 0)
+ pos = 0;
+ hscroll->setPos(pos);
+ return;
+ }
+ else if (key == shortcuts[SHRT_SCROLL_RIGHT].key) {
+ int pos = hscroll->pos() + config.division;
+ hscroll->setPos(pos);
+ return;
+ }
+
+ /*
+ else if (key == shortcuts[SHRT_INSERT_AT_LOCATION].key) {
+ pc->pianoCmd(CMD_INSERT);
+ return;
+ }
+ */
+ else if (key == shortcuts[SHRT_SET_QUANT_1].key)
+ val = rasterTable[8 + off];
+ else if (key == shortcuts[SHRT_SET_QUANT_2].key)
+ val = rasterTable[7 + off];
+ else if (key == shortcuts[SHRT_SET_QUANT_3].key)
+ val = rasterTable[6 + off];
+ else if (key == shortcuts[SHRT_SET_QUANT_4].key)
+ val = rasterTable[5 + off];
+ else if (key == shortcuts[SHRT_SET_QUANT_5].key)
+ val = rasterTable[4 + off];
+ else if (key == shortcuts[SHRT_SET_QUANT_6].key)
+ val = rasterTable[3 + off];
+ else if (key == shortcuts[SHRT_SET_QUANT_7].key)
+ val = rasterTable[2 + off];
+ else if (key == shortcuts[SHRT_TOGGLE_TRIOL].key)
+ val = rasterTable[index + ((off == 0) ? 9 : 0)];
+ /*
+ else if (key == shortcuts[SHRT_EVENT_COLOR].key) {
+ if (colorMode == 0)
+ colorMode = 1;
+ else if (colorMode == 1)
+ colorMode = 2;
+ else
+ colorMode = 0;
+ setEventColorMode(colorMode);
+ return;
+ }*/
+ else if (key == shortcuts[SHRT_TOGGLE_PUNCT].key)
+ val = rasterTable[index + ((off == 18) ? 9 : 18)];
+
+ else if (key == shortcuts[SHRT_TOGGLE_PUNCT2].key) {//CDW
+ if ((off == 18) && (index > 2)) {
+ val = rasterTable[index + 9 - 1];
+ }
+ else if ((off == 9) && (index < 8)) {
+ val = rasterTable[index + 18 + 1];
+ }
+ else
+ return;
+ }
+ else { //Default:
+ event->ignore();
+ return;
+ }
+ setQuant(val);
+ setRaster(val);
+ toolbar->setQuant(_quant);
+ toolbar->setRaster(_raster);
+ }
+
+
+
+//---------------------------------------------------------
+// initShortcuts
+//---------------------------------------------------------
+
+void DrumEdit::initShortcuts()
+ {
+ menuEdit->setAccel(shortcuts[SHRT_CUT].key, DrumCanvas::CMD_CUT);
+ menuEdit->setAccel(shortcuts[SHRT_COPY].key, DrumCanvas::CMD_COPY);;
+ menuEdit->setAccel(shortcuts[SHRT_PASTE].key, DrumCanvas::CMD_PASTE);
+ menuEdit->setAccel(shortcuts[SHRT_DELETE].key, DrumCanvas::CMD_DEL);
+ menuFile->setAccel(shortcuts[SHRT_OPEN].key, DrumCanvas::CMD_LOAD);
+ menuFile->setAccel(shortcuts[SHRT_SAVE].key, DrumCanvas::CMD_SAVE);
+ menuFunctions->setAccel(shortcuts[SHRT_FIXED_LEN].key, DrumCanvas::CMD_FIXED_LEN);
+ menuFunctions->setAccel(shortcuts[SHRT_MODIFY_VELOCITY].key, DrumCanvas::CMD_MODIFY_VELOCITY);
+ menuSelect->setAccel(shortcuts[SHRT_SELECT_ALL].key, DrumCanvas::CMD_SELECT_ALL);
+ menuSelect->setAccel(shortcuts[SHRT_SELECT_NONE].key, DrumCanvas::CMD_SELECT_NONE);
+ menuSelect->setAccel(shortcuts[SHRT_SELECT_INVERT].key, DrumCanvas::CMD_SELECT_INVERT);
+ menuSelect->setAccel(shortcuts[SHRT_SELECT_ILOOP].key, DrumCanvas::CMD_SELECT_ILOOP);
+ menuSelect->setAccel(shortcuts[SHRT_SELECT_OLOOP].key, DrumCanvas::CMD_SELECT_OLOOP);
+
+ menuSelect->setAccel(shortcuts[SHRT_SELECT_PREV_PART].key, DrumCanvas::CMD_SELECT_PREV_PART);
+ menuSelect->setAccel(shortcuts[SHRT_SELECT_NEXT_PART].key, DrumCanvas::CMD_SELECT_NEXT_PART);
+ }
+
+//---------------------------------------------------------
+// execDeliveredScript
+//---------------------------------------------------------
+void DrumEdit::execDeliveredScript(int id)
+{
+ //QString scriptfile = QString(INSTPREFIX) + SCRIPTSSUFFIX + deliveredScriptNames[id];
+ QString scriptfile = song->getScriptPath(id, true);
+ song->executeScript(scriptfile.latin1(), parts(), quant(), true);
+}
+
+//---------------------------------------------------------
+// execUserScript
+//---------------------------------------------------------
+void DrumEdit::execUserScript(int id)
+{
+ QString scriptfile = song->getScriptPath(id, false);
+ song->executeScript(scriptfile.latin1(), parts(), quant(), true);
+}
+
diff --git a/muse2/muse/midiedit/drumedit.h b/muse2/muse/midiedit/drumedit.h
new file mode 100644
index 00000000..5043412f
--- /dev/null
+++ b/muse2/muse/midiedit/drumedit.h
@@ -0,0 +1,151 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: drumedit.h,v 1.9.2.7 2009/11/16 11:29:33 lunar_shuttle Exp $
+// (C) Copyright 1999 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __DRUM_EDIT_H__
+#define __DRUM_EDIT_H__
+
+#include <qwidget.h>
+#include <q3mainwindow.h>
+#include <qtooltip.h>
+#include <q3whatsthis.h>
+//Added by qt3to4:
+#include <QResizeEvent>
+#include <QLabel>
+#include <QKeyEvent>
+#include <Q3PopupMenu>
+#include <QCloseEvent>
+
+#include <values.h>
+#include "midieditor.h"
+#include "noteinfo.h"
+#include "cobject.h"
+#include "tools.h"
+#include "header.h"
+#include "shortcuts.h"
+#include "event.h"
+
+class MidiPart;
+class QLabel;
+class DrumCanvas;
+class ScrollScale;
+class ScoreConfig;
+class QToolButton;
+class MTScale;
+class Splitter;
+class PartList;
+class Toolbar1;
+class CtrlCanvas;
+class Xml;
+class Q3PopupMenu;
+class DList;
+class Header;
+class CtrlEdit;
+class Part;
+class SNode;
+
+//---------------------------------------------------------
+// DWhatsThis
+//---------------------------------------------------------
+
+class DWhatsThis : public Q3WhatsThis {
+ Header* header;
+ protected:
+ QString text(const QPoint&);
+ public:
+ DWhatsThis(QWidget* parent, Header* h) : Q3WhatsThis(parent) {
+ header = h;
+ }
+ };
+
+//----------------------------------------------------------
+// DHeaderTip
+//----------------------------------------------------------
+
+class DHeaderTip { // : public QToolTip { ddskrjo
+ public:
+ DHeaderTip(QWidget * parent) {} // : QToolTip(parent) {} ddskrjo
+ virtual ~DHeaderTip(){}
+ protected:
+ void maybeTip(const QPoint &);
+ };
+
+//---------------------------------------------------------
+// DrumEdit
+//---------------------------------------------------------
+
+class DrumEdit : public MidiEditor {
+ Event selEvent;
+ MidiPart* selPart;
+ int selTick;
+ Q3PopupMenu* menuEdit, *menuFunctions, *menuFile, *menuSelect;
+
+ NoteInfo* info;
+ QToolButton* srec;
+ QToolButton* midiin;
+ EditToolBar* tools2;
+
+ Toolbar1* toolbar;
+ Splitter* split1;
+ Splitter* split2;
+ QWidget* split1w1;
+ DList* dlist;
+ Header* header;
+ Q3ToolBar* tools;
+
+ static int _quantInit, _rasterInit;
+ static int _widthInit, _heightInit;
+ static int _dlistWidthInit, _dcanvasWidthInit;
+
+ static int _toInit; //Used in function dialog for applying modification to selection
+ Q_OBJECT
+ void initShortcuts();
+
+ virtual void closeEvent(QCloseEvent*);
+ QWidget* genToolbar(QWidget* parent);
+ virtual void resizeEvent(QResizeEvent*);
+ virtual void keyPressEvent(QKeyEvent*);
+ int _to;//TODO: Make this work
+
+
+ private slots:
+ void setRaster(int);
+ void setQuant(int);
+ void noteinfoChanged(NoteInfo::ValType type, int val);
+ CtrlEdit* addCtrl();
+ void removeCtrl(CtrlEdit* ctrl);
+ void cmd(int);
+ void clipboardChanged(); // enable/disable "Paste"
+ void selectionChanged(); // enable/disable "Copy" & "Paste"
+ void load();
+ void save();
+ void reset();
+ void setTime(unsigned);
+ void follow(int);
+ void newCanvasWidth(int);
+ void configChanged();
+ void songChanged1(int);
+
+ public slots:
+ void setSelection(int, Event&, Part*);
+ void soloChanged(bool); // called by Solo button
+ void execDeliveredScript(int);
+ void execUserScript(int);
+
+ virtual void updateHScrollRange();
+ signals:
+ void deleted(unsigned long);
+
+ public:
+ DrumEdit(PartList*, QWidget* parent = 0, const char* name = 0, unsigned initPos = MAXINT);
+ virtual ~DrumEdit();
+ virtual void readStatus(Xml&);
+ virtual void writeStatus(int, Xml&) const;
+ static void readConfiguration(Xml& xml);
+ static void writeConfiguration(int, Xml&);
+ };
+
+#endif
diff --git a/muse2/muse/midiedit/drummap.cpp b/muse2/muse/midiedit/drummap.cpp
new file mode 100644
index 00000000..46bf2057
--- /dev/null
+++ b/muse2/muse/midiedit/drummap.cpp
@@ -0,0 +1,503 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: drummap.cpp,v 1.3.2.6 2009/10/29 02:14:37 terminator356 Exp $
+//
+// (C) Copyright 1999/2000 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include "audio.h"
+#include "drummap.h"
+#include "xml.h"
+#include "song.h"
+
+char drumOutmap[DRUM_MAPSIZE];
+char drumInmap[128];
+
+DrumMap drumMap[DRUM_MAPSIZE];
+
+//---------------------------------------------------------
+// GM default drum map
+//---------------------------------------------------------
+
+const DrumMap blankdm = { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 127, 127, false };
+
+const DrumMap idrumMap[DRUM_MAPSIZE] = {
+ { QString("Acoustic Bass Drum"), 100, 16, 32, 9, 0, 70, 90, 127, 110, 35, 35, false },
+ { QString("Bass Drum 1"), 100, 16, 32, 9, 0, 70, 90, 127, 110, 36, 36, false },
+ { QString("Side Stick"), 100, 16, 32, 9, 0, 70, 90, 127, 110, 37, 37, false },
+ { QString("Acoustic Snare"), 100, 16, 32, 9, 0, 70, 90, 127, 110, 38, 38, false },
+ { QString("Hand Clap"), 100, 16, 32, 9, 0, 70, 90, 127, 110, 39, 39, false },
+ { QString("Electric Snare"), 100, 16, 32, 9, 0, 70, 90, 127, 110, 40, 40, false },
+ { QString("Low Floor Tom"), 100, 16, 32, 9, 0, 70, 90, 127, 110, 41, 41, false },
+ { QString("Closed Hi-Hat"), 100, 16, 32, 9, 0, 70, 90, 127, 110, 42, 42, false },
+ { QString("High Floor Tom"), 100, 16, 32, 9, 0, 70, 90, 127, 110, 43, 43, false },
+ { QString("Pedal Hi-Hat"), 100, 16, 32, 9, 0, 70, 90, 127, 110, 44, 44, false },
+ { QString("Low Tom"), 100, 16, 32, 9, 0, 70, 90, 127, 110, 45, 45, false },
+ { QString("Open Hi-Hat"), 100, 16, 32, 9, 0, 70, 90, 127, 110, 46, 46, false },
+ { QString("Low-Mid Tom"), 100, 16, 32, 9, 0, 70, 90, 127, 110, 47, 47, false },
+ { QString("Hi-Mid Tom"), 100, 16, 32, 9, 0, 70, 90, 127, 110, 48, 48, false },
+ { QString("Crash Cymbal 1"), 100, 16, 32, 9, 0, 70, 90, 127, 110, 49, 49, false },
+ { QString("High Tom"), 100, 16, 32, 9, 0, 70, 90, 127, 110, 50, 50, false },
+
+ { QString("Ride Cymbal 1"), 100, 16, 32, 9, 0, 70, 90, 127, 110, 51, 51, false },
+ { QString("Chinese Cymbal"), 100, 16, 32, 9, 0, 70, 90, 127, 110, 52, 52, false },
+ { QString("Ride Bell"), 100, 16, 32, 9, 0, 70, 90, 127, 110, 53, 53, false },
+ { QString("Tambourine"), 100, 16, 32, 9, 0, 70, 90, 127, 110, 54, 54, false },
+ { QString("Splash Cymbal"), 100, 16, 32, 9, 0, 70, 90, 127, 110, 55, 55, false },
+ { QString("Cowbell"), 100, 16, 32, 9, 0, 70, 90, 127, 110, 56, 56, false },
+ { QString("Crash Cymbal 2"), 100, 16, 32, 9, 0, 70, 90, 127, 110, 57, 57, false },
+ { QString("Vibraslap"), 100, 16, 32, 9, 0, 70, 90, 127, 110, 58, 58, false },
+ { QString("Ride Cymbal 2"), 100, 16, 32, 9, 0, 70, 90, 127, 110, 59, 59, false },
+ { QString("Hi Bongo"), 100, 16, 32, 9, 0, 70, 90, 127, 110, 60, 60, false },
+ { QString("Low Bongo"), 100, 16, 32, 9, 0, 70, 90, 127, 110, 61, 61, false },
+ { QString("Mute Hi Conga"), 100, 16, 32, 9, 0, 70, 90, 127, 110, 62, 62, false },
+ { QString("Open Hi Conga"), 100, 16, 32, 9, 0, 70, 90, 127, 110, 63, 63, false },
+ { QString("Low Conga"), 100, 16, 32, 9, 0, 70, 90, 127, 110, 64, 64, false },
+ { QString("High Timbale"), 100, 16, 32, 9, 0, 70, 90, 127, 110, 65, 65, false },
+ { QString("Low Timbale"), 100, 16, 32, 9, 0, 70, 90, 127, 110, 66, 66, false },
+
+ { QString("High Agogo"), 100, 16, 32, 9, 0, 70, 90, 127, 110, 67, 67, false },
+ { QString("Low Agogo"), 100, 16, 32, 9, 0, 70, 90, 127, 110, 68, 68, false },
+ { QString("Cabasa"), 100, 16, 32, 9, 0, 70, 90, 127, 110, 69, 69, false },
+ { QString("Maracas"), 100, 16, 32, 9, 0, 70, 90, 127, 110, 70, 70, false },
+ { QString("Short Whistle"), 100, 16, 32, 9, 0, 70, 90, 127, 110, 71, 71, false },
+ { QString("Long Whistle"), 100, 16, 32, 9, 0, 70, 90, 127, 110, 72, 72, false },
+ { QString("Short Guiro"), 100, 16, 32, 9, 0, 70, 90, 127, 110, 73, 73, false },
+ { QString("Long Guiro"), 100, 16, 32, 9, 0, 70, 90, 127, 110, 74, 74, false },
+ { QString("Claves"), 100, 16, 32, 9, 0, 70, 90, 127, 110, 75, 75, false },
+ { QString("Hi Wood Block"), 100, 16, 32, 9, 0, 70, 90, 127, 110, 76, 76, false },
+ { QString("Low Wood Block"), 100, 16, 32, 9, 0, 70, 90, 127, 110, 77, 77, false },
+ { QString("Mute Cuica"), 100, 16, 32, 9, 0, 70, 90, 127, 110, 78, 78, false },
+ { QString("Open Cuica"), 100, 16, 32, 9, 0, 70, 90, 127, 110, 79, 79, false },
+ { QString("Mute Triangle"), 100, 16, 32, 9, 0, 70, 90, 127, 110, 80, 80, false },
+ { QString("Open Triangle"), 100, 16, 32, 9, 0, 70, 90, 127, 110, 81, 81, false },
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 82, 82, false },
+
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 83, 83, false },
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 84, 84, false },
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 85, 85, false },
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 86, 86, false },
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 87, 87, false },
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 88, 88, false },
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 89, 89, false },
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 90, 90, false },
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 91, 91, false },
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 92, 92, false },
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 93, 93, false },
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 94, 94, false },
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 95, 95, false },
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 96, 96, false },
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 97, 97, false },
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 98, 98, false },
+
+ /*
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 83, 83, false },
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 84, 84, false },
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 85, 85, false },
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 86, 86, false },
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 87, 87, false },
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 88, 88, false },
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 89, 89, false },
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 90, 90, false },
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 91, 91, false },
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 92, 92, false },
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 93, 93, false },
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 94, 94, false },
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 95, 95, false },
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 96, 96, false },
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 97, 97, false },
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 98, 98, false },
+
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 83, 83, false },
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 84, 84, false },
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 85, 85, false },
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 86, 86, false },
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 87, 87, false },
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 88, 88, false },
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 89, 89, false },
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 90, 90, false },
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 91, 91, false },
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 92, 92, false },
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 93, 93, false },
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 94, 94, false },
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 95, 95, false },
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 96, 96, false },
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 97, 97, false },
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 98, 98, false },
+
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 83, 83, false },
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 84, 84, false },
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 85, 85, false },
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 86, 86, false },
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 87, 87, false },
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 88, 88, false },
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 89, 89, false },
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 90, 90, false },
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 91, 91, false },
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 92, 92, false },
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 93, 93, false },
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 94, 94, false },
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 95, 95, false },
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 96, 96, false },
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 97, 97, false },
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 98, 98, false },
+
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 83, 83, false },
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 84, 84, false },
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 85, 85, false },
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 86, 86, false },
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 87, 87, false },
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 88, 88, false },
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 89, 89, false },
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 90, 90, false },
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 91, 91, false },
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 92, 92, false },
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 93, 93, false },
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 94, 94, false },
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 95, 95, false },
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 96, 96, false },
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 97, 97, false },
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 98, 98, false }
+ };
+ */
+
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 99, 99, false },
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 100, 100, false },
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 101, 101, false },
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 102, 102, false },
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 103, 103, false },
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 104, 104, false },
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 105, 105, false },
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 106, 106, false },
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 107, 107, false },
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 108, 108, false },
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 109, 109, false },
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 110, 110, false },
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 111, 111, false },
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 112, 112, false },
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 113, 113, false },
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 114, 114, false },
+
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 115, 115, false },
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 116, 116, false },
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 117, 117, false },
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 118, 118, false },
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 119, 119, false },
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 120, 120, false },
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 121, 121, false },
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 122, 122, false },
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 123, 123, false },
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 124, 124, false },
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 125, 125, false },
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 126, 126, false },
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 127, 127, false },
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 0, 0, false },
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 1, 1, false },
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 2, 2, false },
+
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 3, 3, false },
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 4, 4, false },
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 5, 5, false },
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 6, 6, false },
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 7, 7, false },
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 8, 8, false },
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 9, 9, false },
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 10, 10, false },
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 11, 11, false },
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 12, 12, false },
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 13, 13, false },
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 14, 14, false },
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 15, 15, false },
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 16, 16, false },
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 17, 17, false },
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 18, 18, false },
+
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 19, 19, false },
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 20, 20, false },
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 21, 21, false },
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 22, 22, false },
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 23, 23, false },
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 24, 24, false },
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 25, 25, false },
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 26, 26, false },
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 27, 27, false },
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 28, 28, false },
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 29, 29, false },
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 30, 30, false },
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 31, 31, false },
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 32, 32, false },
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 33, 33, false },
+ { QString(""), 100, 16, 32, 9, 0, 70, 90, 127, 110, 34, 34, false }
+ };
+
+
+//---------------------------------------------------------
+// initDrumMap
+// populate Inmap and Outmap
+//---------------------------------------------------------
+
+void initDrumMap()
+ {
+ for (int i = 0; i < DRUM_MAPSIZE; ++i) {
+ DrumMap d = drumMap[i];
+ //Make sure we're not overwriting any values loaded
+ //On init, all these values are zero. If so, just set the drummap entry to the initial drummap entry.
+ if (!(d.vol || d.len || d.channel || d.port || d.lv1 || d.lv2 || d.lv3 || d.lv4 || d.enote || d.anote || d.mute))
+ drumMap[i] = idrumMap[i];
+ }
+ //Finally, setup the inMap, outMap-values
+ memset(drumInmap, 0, sizeof(drumInmap));
+ memset(drumOutmap, 0, sizeof(drumOutmap));
+ for (int i = 0; i < DRUM_MAPSIZE; ++i) {
+ drumInmap[(unsigned int)(drumMap[i].enote)] = i;
+ drumOutmap[(unsigned int)(drumMap[i].anote)] = i;
+ }
+ }
+
+//---------------------------------------------------------
+// resetGMDrumMap
+//---------------------------------------------------------
+
+void resetGMDrumMap()
+ {
+ audio->msgIdle(true);
+ // Delete all port controller events.
+ //audio->msgChangeAllPortDrumCtrlEvents(false);
+ song->changeAllPortDrumCtrlEvents(false);
+
+ for(int i = 0; i < DRUM_MAPSIZE; ++i)
+ drumMap[i] = idrumMap[i];
+ memset(drumInmap, 0, sizeof(drumInmap));
+ memset(drumOutmap, 0, sizeof(drumOutmap));
+ for (int i = 0; i < DRUM_MAPSIZE; ++i) {
+ drumInmap[(unsigned int)(drumMap[i].enote)] = i;
+ drumOutmap[(unsigned int)(drumMap[i].anote)] = i;
+ }
+ // Add all port controller events.
+ //audio->msgChangeAllPortDrumCtrlEvents(true);
+ song->changeAllPortDrumCtrlEvents(true);
+ audio->msgIdle(false);
+ }
+
+//---------------------------------------------------------
+// operator ==
+//---------------------------------------------------------
+
+//bool const DrumMap::operator==(const DrumMap& map) const
+bool DrumMap::operator==(const DrumMap& map) const
+ {
+ return
+ (name == map.name)
+ && vol == map.vol
+ && quant == map.quant
+ && len == map.len
+ && channel == map.channel
+ && port == map.port
+ && lv1 == map.lv1
+ && lv2 == map.lv2
+ && lv3 == map.lv3
+ && lv4 == map.lv4
+ && enote == map.enote
+ && anote == map.anote
+ && mute == map.mute;
+ }
+
+//---------------------------------------------------------
+// writeDrumMap
+//---------------------------------------------------------
+
+void writeDrumMap(int level, Xml& xml, bool external)
+ {
+ xml.tag(level++, "drummap");
+ for (int i = 0; i < DRUM_MAPSIZE; ++i) {
+ DrumMap* dm = &drumMap[i];
+ const DrumMap* idm = &idrumMap[i];
+
+ if (external) {
+ xml.tag(level++, "entry");
+ xml.strTag(level, "name", dm->name);
+ xml.intTag(level, "vol", dm->vol);
+ xml.intTag(level, "quant", dm->quant);
+ xml.intTag(level, "len", dm->len);
+ xml.intTag(level, "channel", dm->channel);
+ xml.intTag(level, "port", dm->port);
+ xml.intTag(level, "lv1", dm->lv1);
+ xml.intTag(level, "lv2", dm->lv2);
+ xml.intTag(level, "lv3", dm->lv3);
+ xml.intTag(level, "lv4", dm->lv4);
+ xml.intTag(level, "enote", dm->enote);
+ xml.intTag(level, "anote", dm->anote);
+ }
+ else {
+ // write only, if entry is different from initial entry
+ if (!external && *dm == *idm)
+ continue;
+ xml.tag(level++, "entry idx=\"%d\"", i);
+ if (dm->name != idm->name)
+ xml.strTag(level, "name", dm->name);
+ if (dm->vol != idm->vol)
+ xml.intTag(level, "vol", dm->vol);
+ if (dm->quant != idm->quant)
+ xml.intTag(level, "quant", dm->quant);
+ if (dm->len != idm->len)
+ xml.intTag(level, "len", dm->len);
+ if (dm->channel != idm->channel)
+ xml.intTag(level, "channel", dm->channel);
+ if (dm->port != idm->port)
+ xml.intTag(level, "port", dm->port);
+ if (dm->lv1 != idm->lv1)
+ xml.intTag(level, "lv1", dm->lv1);
+ if (dm->lv2 != idm->lv2)
+ xml.intTag(level, "lv2", dm->lv2);
+ if (dm->lv3 != idm->lv3)
+ xml.intTag(level, "lv3", dm->lv3);
+ if (dm->lv4 != idm->lv4)
+ xml.intTag(level, "lv4", dm->lv4);
+ if (dm->enote != idm->enote)
+ xml.intTag(level, "enote", dm->enote);
+ if (dm->anote != idm->anote)
+ xml.intTag(level, "anote", dm->anote);
+ if (dm->mute != idm->mute)
+ xml.intTag(level, "mute", dm->mute);
+ }
+ xml.tag(level--, "/entry");
+ }
+ xml.tag(level--, "/drummap");
+ }
+
+//---------------------------------------------------------
+// readDrummapEntry
+//---------------------------------------------------------
+
+static void readDrummapEntry(Xml& xml, DrumMap* dm)
+ {
+
+ 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 == "name")
+ dm->name = xml.parse(QString("name"));
+ else if (tag == "vol")
+ dm->vol = (unsigned char)xml.parseInt();
+ else if (tag == "quant")
+ dm->quant = xml.parseInt();
+ else if (tag == "len")
+ dm->len = xml.parseInt();
+ else if (tag == "channel")
+ dm->channel = xml.parseInt();
+ else if (tag == "port")
+ dm->port = xml.parseInt();
+ else if (tag == "lv1")
+ dm->lv1 = xml.parseInt();
+ else if (tag == "lv2")
+ dm->lv2 = xml.parseInt();
+ else if (tag == "lv3")
+ dm->lv3 = xml.parseInt();
+ else if (tag == "lv4")
+ dm->lv4 = xml.parseInt();
+ else if (tag == "enote")
+ dm->enote = xml.parseInt();
+ else if (tag == "anote")
+ dm->anote = xml.parseInt();
+ else if (tag == "mute")
+ dm->mute = xml.parseInt();
+ else if (tag == "selected")
+ //; // dm->selected = xml.parseInt();
+ xml.skip(tag);
+ else
+ xml.unknown("DrumMapEntry");
+ break;
+ case Xml::Attribut:
+ if (tag == "idx") {
+ int idx = xml.s2().toInt() & 0x7f;
+ dm = &drumMap[idx];
+
+ }
+ break;
+ case Xml::TagEnd:
+ if (tag == "entry")
+ {
+ return;
+ }
+ default:
+ break;
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// readDrummap
+//---------------------------------------------------------
+
+void readDrumMap(Xml& xml, bool external)
+ {
+ audio->msgIdle(true);
+ // Delete all port controller events.
+ //audio->msgChangeAllPortDrumCtrlEvents(false);
+ song->changeAllPortDrumCtrlEvents(false);
+
+ if (external) {
+ for (int i = 0; i < DRUM_MAPSIZE; ++i)
+ drumMap[i] = blankdm;
+ }
+ else {
+ for (int i = 0; i < DRUM_MAPSIZE; ++i)
+ drumMap[i] = idrumMap[i];
+ }
+ int i = 0;
+ for (;;) {
+ Xml::Token token = xml.parse();
+ const QString& tag = xml.s1();
+ switch (token) {
+ case Xml::Error:
+ case Xml::End:
+ audio->msgIdle(false);
+ return;
+ case Xml::TagStart:
+ if (tag == "entry") {
+ if(i >= DRUM_MAPSIZE)
+ {
+ audio->msgIdle(false);
+ return;
+ }
+ readDrummapEntry(xml, external ? &drumMap[i] : 0);
+ ++i;
+ }
+ else if (tag == "comment")
+ xml.parse();
+ else
+ xml.unknown("DrumMap");
+ break;
+ case Xml::Attribut:
+ break;
+ case Xml::TagEnd:
+ if (tag == "drummap") {
+ memset(drumInmap, 0, sizeof(drumInmap));
+ memset(drumOutmap, 0, sizeof(drumOutmap));
+ for (int i = 0; i < DRUM_MAPSIZE; ++i) {
+ drumInmap[(unsigned int)(drumMap[i].enote)] = i;
+ drumOutmap[(unsigned int)(drumMap[i].anote)] = i;
+ }
+ // Add all port controller events.
+ //audio->msgChangeAllPortDrumCtrlEvents(true);
+ song->changeAllPortDrumCtrlEvents(true);
+
+ audio->msgIdle(false);
+ return;
+ }
+ default:
+ break;
+ }
+ }
+ // Add all port controller events.
+ //audio->msgChangeAllPortDrumCtrlEvents(true);
+ song->changeAllPortDrumCtrlEvents(true);
+ audio->msgIdle(false);
+ }
+
diff --git a/muse2/muse/midiedit/drummap.h b/muse2/muse/midiedit/drummap.h
new file mode 100644
index 00000000..dfe67254
--- /dev/null
+++ b/muse2/muse/midiedit/drummap.h
@@ -0,0 +1,47 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: drummap.h,v 1.3.2.3 2009/10/29 02:14:37 terminator356 Exp $
+//
+// (C) Copyright 1999/2000 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __DRUMMAP_H__
+#define __DRUMMAP_H__
+
+#include <qstring.h>
+
+class Xml;
+
+//---------------------------------------------------------
+// DrumMap
+//---------------------------------------------------------
+
+struct DrumMap {
+ QString name;
+ unsigned char vol; // playback volume, percent.
+ int quant;
+ int len; // len of event in ticks
+ int channel; // midi channel
+ int port; // midi port
+ char lv1, lv2, lv3, lv4; // velocities
+ char enote, anote; // input note - output note
+ bool mute;
+// bool selected;
+
+ //bool const operator==(const DrumMap& map) const;
+ bool operator==(const DrumMap& map) const;
+ };
+
+#define DRUM_MAPSIZE 128
+
+extern char drumOutmap[DRUM_MAPSIZE];
+extern char drumInmap[DRUM_MAPSIZE];
+extern DrumMap drumMap[DRUM_MAPSIZE];
+extern void initDrumMap();
+extern void writeDrumMap(int level, Xml& xml, bool external);
+extern void readDrumMap(Xml& xml, bool external);
+extern void resetGMDrumMap();
+
+#endif
+
diff --git a/muse2/muse/midiedit/ecanvas.cpp b/muse2/muse/midiedit/ecanvas.cpp
new file mode 100644
index 00000000..7fc7002d
--- /dev/null
+++ b/muse2/muse/midiedit/ecanvas.cpp
@@ -0,0 +1,363 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: ecanvas.cpp,v 1.8.2.6 2009/05/03 04:14:00 terminator356 Exp $
+// (C) Copyright 2001 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include <values.h>
+
+#include "midieditor.h"
+#include "ecanvas.h"
+#include "song.h"
+#include "event.h"
+#include "shortcuts.h"
+//Added by qt3to4:
+#include <QKeyEvent>
+#include <QEvent>
+
+//---------------------------------------------------------
+// EventCanvas
+//---------------------------------------------------------
+
+EventCanvas::EventCanvas(MidiEditor* pr, QWidget* parent, int sx,
+ int sy, const char* name)
+ : Canvas(parent, sx, sy, name)
+ {
+ editor = pr;
+ _steprec = false;
+ _midiin = false;
+ _playEvents = false;
+ curVelo = 70;
+
+ setBg(Qt::white);
+ setAcceptDrops(true);
+ setFocusPolicy(Qt::StrongFocus);
+ setMouseTracking(true);
+
+ curPart = (MidiPart*)(editor->parts()->begin()->second);
+ curPartId = curPart->sn();
+ }
+
+//---------------------------------------------------------
+// getCaption
+//---------------------------------------------------------
+
+QString EventCanvas::getCaption() const
+ {
+ int bar1, bar2, xx;
+ unsigned x;
+ sigmap.tickValues(curPart->tick(), &bar1, &xx, &x);
+ sigmap.tickValues(curPart->tick() + curPart->lenTick(), &bar2, &xx, &x);
+
+ return QString("MusE: Part <") + curPart->name()
+ + QString("> %1-%2").arg(bar1+1).arg(bar2+1);
+ }
+
+//---------------------------------------------------------
+// leaveEvent
+//---------------------------------------------------------
+
+void EventCanvas::leaveEvent(QEvent*)
+ {
+ emit pitchChanged(-1);
+ emit timeChanged(MAXINT);
+ }
+
+//---------------------------------------------------------
+// enterEvent
+//---------------------------------------------------------
+
+void EventCanvas::enterEvent(QEvent*)
+ {
+ emit enterCanvas();
+ }
+
+//---------------------------------------------------------
+// raster
+//---------------------------------------------------------
+
+QPoint EventCanvas::raster(const QPoint& p) const
+ {
+ int x = p.x();
+ if (x < 0)
+ x = 0;
+ x = editor->rasterVal(x);
+ int pitch = y2pitch(p.y());
+ int y = pitch2y(pitch);
+ return QPoint(x, y);
+ }
+
+//---------------------------------------------------------
+// startUndo
+//---------------------------------------------------------
+
+void EventCanvas::startUndo(DragType)
+ {
+ song->startUndo();
+ }
+
+//---------------------------------------------------------
+// endUndo
+//---------------------------------------------------------
+
+void EventCanvas::endUndo(DragType dtype, int flags)
+ {
+ song->endUndo(flags | ((dtype == MOVE_COPY || dtype == MOVE_CLONE)
+ ? SC_EVENT_INSERTED : SC_EVENT_MODIFIED));
+ }
+
+//---------------------------------------------------------
+// mouseMove
+//---------------------------------------------------------
+
+void EventCanvas::mouseMove(const QPoint& pos)
+ {
+ emit pitchChanged(y2pitch(pos.y()));
+ int x = pos.x();
+ emit timeChanged(editor->rasterVal(x));
+ }
+
+//---------------------------------------------------------
+// updateSelection
+//---------------------------------------------------------
+
+void EventCanvas::updateSelection()
+ {
+ song->update(SC_SELECTION);
+ }
+
+//---------------------------------------------------------
+// songChanged(type)
+//---------------------------------------------------------
+
+void EventCanvas::songChanged(int flags)
+ {
+ // Is it simply a midi controller value adjustment? Forget it.
+ if(flags == SC_MIDI_CONTROLLER)
+ return;
+
+ if (flags & ~SC_SELECTION) {
+ items.clear();
+ start_tick = MAXINT;
+ end_tick = 0;
+ curPart = 0;
+ for (iPart p = editor->parts()->begin(); p != editor->parts()->end(); ++p) {
+ MidiPart* part = (MidiPart*)(p->second);
+ if (part->sn() == curPartId)
+ curPart = part;
+ unsigned stick = part->tick();
+ unsigned len = part->lenTick();
+ unsigned etick = stick + len;
+ if (stick < start_tick)
+ start_tick = stick;
+ if (etick > end_tick)
+ end_tick = etick;
+
+ EventList* el = part->events();
+ for (iEvent i = el->begin(); i != el->end(); ++i) {
+ Event e = i->second;
+ // Added by T356. Do not add events which are either past, or extend past the end of the part.
+ //if(e.tick() > len)
+ if(e.endTick() > len)
+ break;
+
+ if (e.isNote()) {
+ addItem(part, e);
+ }
+ }
+ }
+ }
+
+ Event event;
+ MidiPart* 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();
+ }
+ }
+ }
+ start_tick = song->roundDownBar(start_tick);
+ end_tick = song->roundUpBar(end_tick);
+
+ if (n == 1) {
+ x = nevent->x();
+ event = nevent->event();
+ part = (MidiPart*)nevent->part();
+ if (curPart != part) {
+ curPart = part;
+ curPartId = curPart->sn();
+ curPartChanged();
+ }
+ }
+ emit selectionChanged(x, event, part);
+ if (curPart == 0)
+ curPart = (MidiPart*)(editor->parts()->begin()->second);
+ redraw();
+ }
+
+//---------------------------------------------------------
+// selectAtTick
+//---------------------------------------------------------
+void EventCanvas::selectAtTick(unsigned int tick)
+ {
+ //Select note nearest tick, if none selected and there are any
+ if (!items.empty() && selectionSize() == 0) {
+ iCItem i = items.begin();
+ CItem* nearest = i->second;
+
+ while (i != items.end()) {
+ CItem* cur=i->second;
+ unsigned int curtk=abs(cur->x() + cur->part()->tick() - tick);
+ unsigned int neartk=abs(nearest->x() + nearest->part()->tick() - tick);
+
+ if (curtk < neartk) {
+ nearest=cur;
+ }
+
+ i++;
+ }
+
+ if (!nearest->isSelected()) {
+ selectItem(nearest, true);
+ songChanged(SC_SELECTION);
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// track
+//---------------------------------------------------------
+
+MidiTrack* EventCanvas::track() const
+ {
+ return ((MidiPart*)curPart)->track();
+ }
+
+
+//---------------------------------------------------------
+// keyPress
+//---------------------------------------------------------
+
+void EventCanvas::keyPress(QKeyEvent* event)
+ {
+ int key = event->key();
+ if (event->state() & Qt::ShiftButton)
+ key += Qt::SHIFT;
+ if (event->state() & Qt::AltButton)
+ key += Qt::ALT;
+ if (event->state() & Qt::ControlButton)
+ 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->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, true);
+ Pos p2(tick_max, true);
+ 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;
+ if (items.size() > 0 ) {
+ 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 if (key == shortcuts[SHRT_INCREASE_LEN].key) {
+ // TODO: Check boundaries
+ modifySelected(NoteInfo::VAL_LEN, editor->raster());
+ }
+ else if (key == shortcuts[SHRT_DECREASE_LEN].key) {
+ // TODO: Check boundaries
+ modifySelected(NoteInfo::VAL_LEN, 0 - editor->raster());
+ }
+
+ else
+ event->ignore();
+ }
diff --git a/muse2/muse/midiedit/ecanvas.h b/muse2/muse/midiedit/ecanvas.h
new file mode 100644
index 00000000..58df80b5
--- /dev/null
+++ b/muse2/muse/midiedit/ecanvas.h
@@ -0,0 +1,87 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: ecanvas.h,v 1.5.2.4 2009/02/02 21:38:00 terminator356 Exp $
+// (C) Copyright 2001 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __ECANVAS_H__
+#define __ECANVAS_H__
+
+#include "canvas.h"
+#include "noteinfo.h"
+//Added by qt3to4:
+#include <QEvent>
+#include <QKeyEvent>
+
+class MidiPart;
+class MidiTrack;
+class MidiEditor;
+class Part;
+
+struct PartToChange
+{
+ Part* npart;
+ int xdiff;
+};
+typedef std::map<Part*, PartToChange> PartsToChangeMap;
+typedef std::map<Part*, PartToChange>::iterator iPartToChange;
+
+//---------------------------------------------------------
+// EventCanvas
+//---------------------------------------------------------
+
+class EventCanvas : public Canvas {
+ Q_OBJECT
+ virtual void leaveEvent(QEvent*e);
+ virtual void enterEvent(QEvent*e);
+ // Removed by T356.
+ //virtual QPoint raster(const QPoint&) const;
+
+ virtual void startUndo(DragType);
+
+ virtual void endUndo(DragType, int flags = 0);
+ virtual void mouseMove(const QPoint&);
+
+ protected:
+ bool _playEvents;
+ MidiEditor* editor;
+ unsigned start_tick, end_tick;
+ int curVelo;
+ bool _steprec;
+ bool _midiin;
+
+ void updateSelection();
+ virtual void addItem(Part*, Event&) = 0;
+ // Added by T356.
+ virtual QPoint raster(const QPoint&) const;
+
+ public slots:
+ void redrawGrid() { redraw(); }
+ void setSteprec(bool f) { _steprec = f; }
+ void setMidiin(bool f) { _midiin = f; }
+
+ signals:
+ void pitchChanged(int); // current cursor position
+ void timeChanged(unsigned);
+ void selectionChanged(int, Event&, Part*);
+ void enterCanvas();
+
+ public:
+ EventCanvas(MidiEditor*, QWidget*, int, int, const char* name = 0);
+ MidiTrack* track() const;
+ unsigned start() const { return start_tick; }
+ unsigned end() const { return end_tick; }
+ bool midiin() const { return _midiin; }
+ bool steprec() const { return _steprec; }
+ QString getCaption() const;
+ void songChanged(int);
+ void range(int* s, int* e) const { *s = start_tick; *e = end_tick; }
+ void playEvents(bool flag) { _playEvents = flag; }
+ void selectAtTick(unsigned int tick);
+ virtual void modifySelected(NoteInfo::ValType, int) {}
+ virtual void keyPress(QKeyEvent*);
+ };
+
+#endif
+
diff --git a/muse2/muse/midiedit/piano.cpp b/muse2/muse/midiedit/piano.cpp
new file mode 100644
index 00000000..ed7ac9f5
--- /dev/null
+++ b/muse2/muse/midiedit/piano.cpp
@@ -0,0 +1,557 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: piano.cpp,v 1.3 2004/05/31 11:48:55 lunar_shuttle Exp $
+// (C) Copyright 1999 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include <qpainter.h>
+//Added by qt3to4:
+#include <QPixmap>
+#include <QEvent>
+#include <QMouseEvent>
+
+#include <stdio.h>
+
+#include "piano.h"
+
+static const char *oct_xpm[] = {
+// w h colors
+ "40 91 2 1",
+ ". c #c0c0c0",
+ "# c #000000",
+ // x
+ "####################################### ",
+ ".......................................#",
+ ".......................................#",
+ ".......................................#",
+ ".......................................#",
+ ".......................................#", // 10
+ ".......................................#",
+ ".......................................#",
+ ".......................................#",
+ ".......................................#", //------------------------
+ "#######################................#",
+ "########################...............#",
+ "########################...............#",
+ "####################################### ", // 7
+ "########################...............#",
+ "########################...............#",
+ "#######################................#", //------------------------
+ ".......................................#",
+ ".......................................#",
+ ".......................................#", // 6
+ ".......................................#",
+ ".......................................#",
+ ".......................................#", //------------------------
+ "#######################................#",
+ "########################...............#",
+ "########################...............#", // 7
+ "####################################### ",
+ "########################...............#",
+ "########################...............#",
+ "#######################................#", //------------------------
+ ".......................................#",
+ ".......................................#",
+ ".......................................#", // 6
+ ".......................................#",
+ ".......................................#",
+ ".......................................#", //------------------------
+ "#######################................#",
+ "########################...............#",
+ "########################...............#", // 7
+ "####################################### ",
+ "########################...............#",
+ "########################...............#",
+ "#######################................#", //------------------------
+ ".......................................#",
+ ".......................................#",
+ ".......................................#",
+ ".......................................#", // 10
+ ".......................................#",
+ ".......................................#",
+ ".......................................#",
+ ".......................................#",
+ ".......................................#",
+ "####################################### ", //----------------------
+ ".......................................#",
+ ".......................................#",
+ ".......................................#",
+ ".......................................#", // 9
+ ".......................................#",
+ ".......................................#",
+ ".......................................#",
+ ".......................................#",
+ ".......................................#", //------------------------
+ "#######################................#",
+ "########################...............#",
+ "########################...............#",
+ "####################################### ", // 7
+ "########################...............#",
+ "########################...............#",
+ "#######################................#", //------------------------
+ ".......................................#",
+ ".......................................#",
+ ".......................................#", // 6
+ ".......................................#",
+ ".......................................#",
+ ".......................................#", //--------------------------
+ "#######################................#",
+ "########################...............#",
+ "########################...............#", // 7
+ "####################################### ",
+ "########################...............#",
+ "########################...............#",
+ "#######################................#", //------------------------
+ ".......................................#",
+ "..........................###..........#",
+ ".........................#...#.........#",
+ ".........................#.............#",
+ ".........................#.............#",
+ ".........................#...#.........#", // 10
+ "..........................###..........#",
+ ".......................................#",
+ ".......................................#",
+ ".......................................#",
+ };
+
+static const char *mk1_xpmC1[] = {
+ "40 10 2 1",
+ ". c #c0c0c0",
+ "# c #000000",
+ ".......................................#",
+ "..........................###.....#....#",
+ ".........................#...#...##....#",
+ ".........................#........#....#",
+ ".........................#........#....#",
+ ".........................#...#....#....#", // 10
+ "..........................###....###...#",
+ ".......................................#",
+ ".......................................#",
+ ".......................................#",
+ };
+static const char *mk1_xpmC2[] = {
+ "40 10 2 1",
+ ". c #c0c0c0",
+ "# c #000000",
+ ".......................................#",
+ "..........................###....##....#",
+ ".........................#...#..#..#...#",
+ ".........................#........#....#",
+ ".........................#.......#.....#",
+ ".........................#...#..#......#", // 10
+ "..........................###...####...#",
+ ".......................................#",
+ ".......................................#",
+ ".......................................#",
+ };
+static const char *mk1_xpmC3[] = {
+ "40 10 2 1",
+ ". c #c0c0c0",
+ "# c #000000",
+ ".......................................#",
+ "..........................###....##....#",
+ ".........................#...#..#..#...#",
+ ".........................#........#....#",
+ ".........................#.........#...#",
+ ".........................#...#..#..#...#", // 10
+ "..........................###....##....#",
+ ".......................................#",
+ ".......................................#",
+ ".......................................#",
+ };
+static const char *mk1_xpmC4[] = {
+ "40 10 2 1",
+ ". c #c0c0c0",
+ "# c #000000",
+ ".......................................#",
+ "..........................###...#..#...#",
+ ".........................#...#..#..#...#",
+ ".........................#......####...#",
+ ".........................#.........#...#",
+ ".........................#...#.....#...#", // 10
+ "..........................###......#...#",
+ ".......................................#",
+ ".......................................#",
+ ".......................................#",
+ };
+static const char *mk1_xpmC5[] = {
+ "40 10 2 1",
+ ". c #c0c0c0",
+ "# c #000000",
+ ".......................................#",
+ "..........................###...####...#",
+ ".........................#...#..#......#",
+ ".........................#......###....#",
+ ".........................#.........#...#",
+ ".........................#...#.....#...#", // 10
+ "..........................###...###....#",
+ ".......................................#",
+ ".......................................#",
+ ".......................................#",
+ };
+
+static const char *mk1_xpmC6[] = {
+ "40 10 2 1",
+ ". c #c0c0c0",
+ "# c #000000",
+ ".......................................#",
+ "..........................###....###...#",
+ ".........................#...#..#......#",
+ ".........................#......###....#",
+ ".........................#......#..#...#",
+ ".........................#...#..#..#...#", // 10
+ "..........................###...###....#",
+ ".......................................#",
+ ".......................................#",
+ ".......................................#",
+ };
+
+static const char *mk1_xpmC7[] = {
+ "40 10 2 1",
+ ". c #c0c0c0",
+ "# c #000000",
+ ".......................................#",
+ "..........................###...####...#",
+ ".........................#...#.....#...#",
+ ".........................#........#....#",
+ ".........................#.......#.....#",
+ ".........................#...#..#......#", // 10
+ "..........................###...#......#",
+ ".......................................#",
+ ".......................................#",
+ ".......................................#",
+ };
+static const char *mk1_xpmC8[] = {
+ "40 10 2 1",
+ ". c #c0c0c0",
+ "# c #000000",
+ ".......................................#",
+ "..........................###....##....#",
+ ".........................#...#..#..#....#",
+ ".........................#.......##....#",
+ ".........................#......#..#...#",
+ ".........................#...#..#..#...#", // 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",
+ "........................................",
+ "........................................",
+ "........................................",
+ "#######################.................",
+ "########################................",
+ "########################................",
+ "########################................",
+ "########################................",
+ "########################................",
+ "#######################.................",
+ "........................................",
+ "........................................",
+ "........................................",
+ };
+/*
+ 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 über Oktave:
+
+ +------------+ ------------------------------
+ 11 | |
+ | h | 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 | |
+ +------------+ ------------------------------
+ */
+
+//---------------------------------------------------------
+// Piano
+//---------------------------------------------------------
+
+Piano::Piano(QWidget* parent, int ymag)
+ : View(parent, 1, ymag)
+ {
+ setMouseTracking(true);
+ curPitch = -1;
+ octave = new QPixmap(oct_xpm);
+ c_keys[0] = new QPixmap(mk1_xpmC8);
+ c_keys[1] = new QPixmap(mk1_xpmC7);
+ c_keys[2] = new QPixmap(mk1_xpmC6);
+ c_keys[3] = new QPixmap(mk1_xpmC5);
+ c_keys[4] = new QPixmap(mk1_xpmC4);
+ c_keys[5] = new QPixmap(mk1_xpmC3);
+ c_keys[6] = new QPixmap(mk1_xpmC2);
+ c_keys[7] = new QPixmap(mk1_xpmC1);
+
+ mk1 = new QPixmap(mk1_xpm);
+ mk2 = new QPixmap(mk2_xpm);
+ mk3 = new QPixmap(mk3_xpm);
+ mk4 = new QPixmap(mk4_xpm);
+ keyDown = -1;
+ button = Qt::NoButton;
+ }
+
+//---------------------------------------------------------
+// draw
+//---------------------------------------------------------
+
+void Piano::draw(QPainter& p, const QRect& r)
+ {
+ QPoint offset(0, KH*2);
+ p.drawTiledPixmap(r, *octave, r.topLeft()+offset);
+
+ // draw C notes
+ for (int drawKey = 0; drawKey < 8;drawKey++) {
+ int octaveSize=91;
+
+ int drawY = octaveSize * drawKey + 81 - KH*2;
+ if (drawY > r.y() && drawY < r.y() + r.height()) {
+ //printf("drawing c %d at %d r.y %d r.x %d\n",drawKey, drawY, r.y(), r.x());
+ p.drawPixmap(0,drawY,*c_keys[drawKey]);
+ }
+ }
+ //p.drawTiledPixmap(r, *c1, r.topLeft()+offset + coffset);
+ //printf("drawText KH %d %d, x %d y %d\n",KH, curPitch, r.x(), r.y());
+ //p.drawText(r,Qt::AlignAuto,"A");
+ if (curPitch == -1)
+ return;
+ 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);
+ }
+
+//---------------------------------------------------------
+// pitch2y
+//---------------------------------------------------------
+
+int Piano::pitch2y(int pitch) const
+ {
+ int tt[] = {
+ 12, 19, 25, 32, 38, 51, 58, 64, 71, 77, 84, 90
+ };
+ int y = (75 * KH) - (tt[pitch%12] + (7 * KH) * (pitch/12));
+ if (y < 0)
+ y = 0;
+ return y;
+ }
+
+//---------------------------------------------------------
+// y2pitch
+//---------------------------------------------------------
+
+int Piano::y2pitch(int y) const
+ {
+ const int total = (10 * 7 + 5) * KH; // 75 Ganztonschritte
+ y = total - y;
+ int oct = (y / (7 * KH)) * 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
+ };
+ return kt[y % 91] + oct;
+ }
+
+//---------------------------------------------------------
+// leaveEvent
+//---------------------------------------------------------
+
+void Piano::leaveEvent(QEvent*)
+ {
+ if (keyDown != -1) {
+ emit keyReleased(keyDown, shift);
+ keyDown = -1;
+ }
+ emit pitchChanged(-1);
+ setPitch(-1);
+ }
+
+//---------------------------------------------------------
+// setPitch
+//---------------------------------------------------------
+
+void Piano::setPitch(int pitch)
+ {
+ if (curPitch == pitch)
+ return;
+ curPitch = pitch;
+ redraw();
+ }
+
+//---------------------------------------------------------
+// viewMouseMoveEvent
+//---------------------------------------------------------
+
+void Piano::viewMouseMoveEvent(QMouseEvent* event)
+ {
+ int pitch = y2pitch(event->y());
+ emit pitchChanged(pitch);
+ setPitch(pitch);
+
+ if (button != Qt::NoButton) {
+ int nk = y2pitch(event->y());
+ if (nk < 0 || nk > 127)
+ nk = -1;
+ if (nk != keyDown) {
+ if (keyDown != -1) {
+ emit keyReleased(keyDown, shift);
+ }
+ keyDown = nk;
+ if (keyDown != -1) {
+ int velocity = event->x()*127/40;
+ //emit keyPressed(keyDown, shift);
+ emit keyPressed(keyDown, velocity>127 ? 127 : velocity, shift);
+ }
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// viewMousePressEvent
+//---------------------------------------------------------
+
+void Piano::viewMousePressEvent(QMouseEvent* event)
+ {
+ button = event->button();
+ shift = event->state() & Qt::ShiftButton;
+ if (keyDown != -1) {
+ emit keyReleased(keyDown, shift);
+ keyDown = -1;
+ }
+ keyDown = y2pitch(event->y());
+ if (keyDown < 0 || keyDown > 127) {
+ keyDown = -1;
+ }
+ else {
+ int velocity = event->x()*127/40;
+ emit keyPressed(keyDown, velocity>127 ? 127 : velocity, shift); //emit keyPressed(keyDown, shift);
+ }
+ }
+
+//---------------------------------------------------------
+// viewMouseReleaseEvent
+//---------------------------------------------------------
+
+void Piano::viewMouseReleaseEvent(QMouseEvent* event)
+ {
+ button = Qt::NoButton;
+ shift = event->state() & Qt::ShiftButton;
+ if (keyDown != -1) {
+ emit keyReleased(keyDown, shift);
+ keyDown = -1;
+ }
+ }
+
diff --git a/muse2/muse/midiedit/piano.h b/muse2/muse/midiedit/piano.h
new file mode 100644
index 00000000..2f06b810
--- /dev/null
+++ b/muse2/muse/midiedit/piano.h
@@ -0,0 +1,63 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: piano.h,v 1.2 2004/05/31 11:48:55 lunar_shuttle Exp $
+// (C) Copyright 1999 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __PIANO_H__
+#define __PIANO_H__
+
+#include "view.h"
+//Added by qt3to4:
+#include <QMouseEvent>
+#include <QEvent>
+#include <QPixmap>
+
+class QPainter;
+
+#define KH 13
+
+//---------------------------------------------------------
+// Piano
+//---------------------------------------------------------
+
+class Piano : public View
+ {
+ int curPitch;
+ QPixmap* octave;
+ QPixmap* c_keys[10];
+ QPixmap* mk1;
+ QPixmap* mk2;
+ QPixmap* mk3;
+ QPixmap* mk4;
+ int keyDown;
+ bool shift;
+ int button;
+
+ Q_OBJECT
+ int y2pitch(int) const;
+ int pitch2y(int) const;
+ void viewMouseMoveEvent(QMouseEvent* event);
+ virtual void leaveEvent(QEvent*e);
+
+ virtual void viewMousePressEvent(QMouseEvent* event);
+ virtual void viewMouseReleaseEvent(QMouseEvent*);
+
+ protected:
+ virtual void draw(QPainter&, const QRect&);
+
+ signals:
+ void pitchChanged(int);
+ void keyPressed(int, int, bool);
+ void keyReleased(int, bool);
+
+ public slots:
+ void setPitch(int);
+
+ public:
+ Piano(QWidget*, int);
+ };
+
+#endif
+
diff --git a/muse2/muse/midiedit/pianoroll.cpp b/muse2/muse/midiedit/pianoroll.cpp
new file mode 100644
index 00000000..93bf615c
--- /dev/null
+++ b/muse2/muse/midiedit/pianoroll.cpp
@@ -0,0 +1,1107 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: pianoroll.cpp,v 1.25.2.15 2009/11/16 11:29:33 lunar_shuttle Exp $
+// (C) Copyright 1999 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include <q3accel.h>
+#include <qlayout.h>
+#include <q3hbox.h>
+#include <qsizegrip.h>
+#include <qlabel.h>
+#include <qpushbutton.h>
+#include <q3buttongroup.h>
+#include <qtoolbutton.h>
+#include <qtooltip.h>
+#include <q3popupmenu.h>
+#include <qmenubar.h>
+#include <qapplication.h>
+#include <qclipboard.h>
+#include <qdir.h>
+#include <qaction.h>
+//Added by qt3to4:
+#include <QKeyEvent>
+#include <Q3GridLayout>
+#include <QResizeEvent>
+#include <QCloseEvent>
+
+#include <stdio.h>
+
+#include "xml.h"
+#include "mtscale.h"
+#include "prcanvas.h"
+#include "pianoroll.h"
+#include "scrollscale.h"
+#include "piano.h"
+#include "../ctrl/ctrledit.h"
+#include "splitter.h"
+#include "ttoolbar.h"
+#include "tb1.h"
+#include "utils.h"
+#include "globals.h"
+#include "gconfig.h"
+#include "icons.h"
+#include "audio.h"
+
+#include "cmd.h"
+#include "quantconfig.h"
+#include "shortcuts.h"
+
+int PianoRoll::_quantInit = 96;
+int PianoRoll::_rasterInit = 96;
+int PianoRoll::_widthInit = 600;
+int PianoRoll::_heightInit = 400;
+int PianoRoll::_quantStrengthInit = 80; // 1 - 100%
+int PianoRoll::_quantLimitInit = 50; // tick value
+bool PianoRoll::_quantLenInit = false;
+int PianoRoll::_toInit = 0;
+int PianoRoll::colorModeInit = 0;
+
+static const int xscale = -10;
+static const int yscale = 1;
+static const int pianoWidth = 40;
+static int pianorollTools = PointerTool | PencilTool | RubberTool | DrawTool;
+
+
+
+
+//---------------------------------------------------------
+// PianoRoll
+//---------------------------------------------------------
+
+PianoRoll::PianoRoll(PartList* pl, QWidget* parent, const char* name, unsigned initPos)
+ : MidiEditor(_quantInit, _rasterInit, pl, parent, name)
+ {
+ deltaMode = false;
+ resize(_widthInit, _heightInit);
+ selPart = 0;
+ quantConfig = 0;
+ _playEvents = false;
+ _quantStrength = _quantStrengthInit;
+ _quantLimit = _quantLimitInit;
+ _quantLen = _quantLenInit;
+ _to = _toInit;
+ colorMode = colorModeInit;
+ //---------Men----------------------------------
+ menuEdit = new Q3PopupMenu(this);
+ menuBar()->insertItem(tr("&Edit"), menuEdit);
+ undoRedo->addTo(menuEdit);
+ Q3Accel* ud = new Q3Accel(this);
+ ud->connectItem(ud->insertItem(Qt::CTRL+Qt::Key_Z), song, SLOT(undo()));
+ Q3Accel* rd = new Q3Accel(this);
+ rd->connectItem(rd->insertItem(Qt::CTRL+Qt::Key_Y), song, SLOT(redo()));
+
+ menuEdit->insertSeparator();
+ menuEdit->insertItem(tr("Cut"), PianoCanvas::CMD_CUT);
+ menuEdit->setAccel(Qt::CTRL+Qt::Key_X, PianoCanvas::CMD_CUT);
+ menuEdit->insertItem(tr("Copy"), PianoCanvas::CMD_COPY);
+ menuEdit->setAccel(Qt::CTRL+Qt::Key_C, PianoCanvas::CMD_COPY);
+ menuEdit->insertItem(tr("Paste"), PianoCanvas::CMD_PASTE);
+ menuEdit->setAccel(Qt::CTRL+Qt::Key_V, PianoCanvas::CMD_PASTE);
+ menuEdit->insertSeparator();
+ menuEdit->insertItem(tr("Delete Events"), PianoCanvas::CMD_DEL);
+ menuEdit->setAccel(Qt::Key_Delete, PianoCanvas::CMD_DEL);
+ menuEdit->insertSeparator();
+
+ menuSelect = new Q3PopupMenu(this);
+ menuSelect->insertItem(tr("Select All"), PianoCanvas::CMD_SELECT_ALL);
+ menuSelect->insertItem(tr("Select None"), PianoCanvas::CMD_SELECT_NONE);
+ menuSelect->insertItem(tr("Invert"), PianoCanvas::CMD_SELECT_INVERT);
+
+ menuSelect->insertSeparator();
+ menuSelect->insertItem(tr("Inside Loop"), PianoCanvas::CMD_SELECT_ILOOP);
+
+ menuSelect->insertItem(tr("Outside Loop"), PianoCanvas::CMD_SELECT_OLOOP);
+
+ menuSelect->insertSeparator();
+
+ menuSelect->insertItem(tr("Previous Part"), PianoCanvas::CMD_SELECT_PREV_PART);
+ menuSelect->insertItem(tr("Next Part"), PianoCanvas::CMD_SELECT_NEXT_PART);
+
+ menuEdit->insertItem(tr("&Select"), menuSelect);
+
+ eventColor = new Q3PopupMenu(this);
+ eventColor->insertItem(tr("blue"), 0);
+ eventColor->insertItem(tr("pitch colors"), 1);
+ eventColor->insertItem(tr("velocity colors"), 2);
+ connect(eventColor, SIGNAL(activated(int)), SLOT(setEventColorMode(int)));
+
+ menuConfig = new Q3PopupMenu(this);
+ menuBar()->insertItem(tr("&Config"), menuConfig);
+ menu_ids[CMD_EVENT_COLOR] = menuConfig->insertItem(tr("event color"), eventColor, 0);
+
+ menuFunctions = new Q3PopupMenu(this);
+ menuBar()->insertItem(tr("&Functions"), menuFunctions);
+ menuFunctions->insertTearOffHandle();
+ menuFunctions->insertItem(tr("Over Quantize"), PianoCanvas::CMD_OVER_QUANTIZE);
+
+ menuFunctions->insertItem(tr("Note On Quantize"), PianoCanvas::CMD_ON_QUANTIZE);
+
+ menuFunctions->insertItem(tr("Note On/Off Quantize"), PianoCanvas::CMD_ONOFF_QUANTIZE);
+ menuFunctions->insertItem(tr("Iterative Quantize"), PianoCanvas::CMD_ITERATIVE_QUANTIZE);
+
+ menuFunctions->insertSeparator();
+ menu_ids[CMD_CONFIG_QUANT] = menuFunctions->insertItem(tr("Config Quant..."), this, SLOT(configQuant()), 0);
+ menuFunctions->insertSeparator();
+ menuFunctions->insertItem(tr("Modify Gate Time"), PianoCanvas::CMD_MODIFY_GATE_TIME);
+ menuFunctions->insertItem(tr("Modify Velocity"), PianoCanvas::CMD_MODIFY_VELOCITY);
+ menuFunctions->insertItem(tr("Crescendo"), PianoCanvas::CMD_CRESCENDO);
+ menuFunctions->insertItem(tr("Transpose"), PianoCanvas::CMD_TRANSPOSE);
+ menuFunctions->insertItem(tr("Thin Out"), PianoCanvas::CMD_THIN_OUT);
+ menuFunctions->insertItem(tr("Erase Event"), PianoCanvas::CMD_ERASE_EVENT);
+ menuFunctions->insertItem(tr("Note Shift"), PianoCanvas::CMD_NOTE_SHIFT);
+ menuFunctions->insertItem(tr("Move Clock"), PianoCanvas::CMD_MOVE_CLOCK);
+ menuFunctions->insertItem(tr("Copy Measure"), PianoCanvas::CMD_COPY_MEASURE);
+ menuFunctions->insertItem(tr("Erase Measure"), PianoCanvas::CMD_ERASE_MEASURE);
+ menuFunctions->insertItem(tr("Delete Measure"), PianoCanvas::CMD_DELETE_MEASURE);
+ menuFunctions->insertItem(tr("Create Measure"), PianoCanvas::CMD_CREATE_MEASURE);
+ menuFunctions->insertItem(tr("Set fixed length"), PianoCanvas::CMD_FIXED_LEN);
+ menuFunctions->insertItem(tr("Delete overlaps"), PianoCanvas::CMD_DELETE_OVERLAPS);
+
+ menuFunctions->setItemEnabled(PianoCanvas::CMD_CRESCENDO, false);
+ menuFunctions->setItemEnabled(PianoCanvas::CMD_TRANSPOSE, false);
+ menuFunctions->setItemEnabled(PianoCanvas::CMD_THIN_OUT, false);
+ menuFunctions->setItemEnabled(PianoCanvas::CMD_ERASE_EVENT, false);
+ menuFunctions->setItemEnabled(PianoCanvas::CMD_NOTE_SHIFT, false);
+ menuFunctions->setItemEnabled(PianoCanvas::CMD_MOVE_CLOCK, false);
+ menuFunctions->setItemEnabled(PianoCanvas::CMD_COPY_MEASURE, false);
+ menuFunctions->setItemEnabled(PianoCanvas::CMD_ERASE_MEASURE, false);
+ menuFunctions->setItemEnabled(PianoCanvas::CMD_DELETE_MEASURE, false);
+ menuFunctions->setItemEnabled(PianoCanvas::CMD_CREATE_MEASURE, false);
+
+ menuPlugins = new Q3PopupMenu(this);
+ song->populateScriptMenu(menuPlugins, this);
+ menuBar()->insertItem(tr("&Plugins"), menuPlugins);
+ connect(menuEdit, SIGNAL(activated(int)), SLOT(cmd(int)));
+ connect(menuSelect, SIGNAL(activated(int)), SLOT(cmd(int)));
+ connect(menuFunctions, SIGNAL(activated(int)), SLOT(cmd(int)));
+
+ //---------ToolBar----------------------------------
+ tools = new Q3ToolBar(this, "pianoroll-tools");
+ tools->setLabel(tr("Pianoroll Tools"));
+ undoRedo->addTo(tools);
+ tools->addSeparator();
+
+ srec = new QToolButton(tools, "srec");
+ QToolTip::add(srec, tr("Step Record"));
+ srec->setPixmap(*steprecIcon);
+ srec->setToggleButton(true);
+
+ midiin = new QToolButton(tools, "midiin");
+ QToolTip::add(midiin, tr("Midi Input"));
+ midiin->setPixmap(*midiinIcon);
+ midiin->setToggleButton(true);
+
+ speaker = new QToolButton(tools, "speaker");
+ QToolTip::add(speaker, tr("Play Events"));
+ speaker->setPixmap(*speakerIcon);
+ speaker->setToggleButton(true);
+
+ tools2 = new EditToolBar(this, pianorollTools);
+
+ Q3ToolBar* panicToolbar = new Q3ToolBar(this);
+ panicAction->addTo(panicToolbar);
+
+ //-------------------------------------------------------------
+ // Transport Bar
+ Q3ToolBar* transport = new Q3ToolBar(this);
+ transportAction->addTo(transport);
+
+ toolbar = new Toolbar1(this, _rasterInit, _quantInit);
+ info = new NoteInfo(this);
+
+ //---------------------------------------------------
+ // split
+ //---------------------------------------------------
+
+ splitter = new Splitter(Qt::Vertical, mainw, "splitter");
+ QPushButton* ctrl = new QPushButton(tr("ctrl"), mainw, "Ctrl");
+ ctrl->setFont(config.fonts[3]);
+ QToolTip::add(ctrl, tr("Add Controller View"));
+ hscroll = new ScrollScale(-25, -2, xscale, 20000, Qt::Horizontal, mainw);
+ ctrl->setFixedSize(pianoWidth, hscroll->sizeHint().height());
+
+ QSizeGrip* corner = new QSizeGrip(mainw);
+
+ mainGrid->setRowStretch(0, 100);
+ mainGrid->setColStretch(1, 100);
+ mainGrid->addMultiCellWidget(splitter, 0, 0, 0, 2);
+ mainGrid->addWidget(ctrl, 1, 0);
+ mainGrid->addWidget(hscroll, 1, 1);
+ mainGrid->addWidget(corner, 1, 2, Qt::AlignBottom|Qt::AlignRight);
+ mainGrid->addRowSpacing(1, hscroll->sizeHint().height());
+
+ QWidget* split1 = new QWidget(splitter, "split1");
+ Q3GridLayout* gridS1 = new Q3GridLayout(split1);
+ time = new MTScale(&_raster, split1, xscale);
+ Piano* piano = new Piano(split1, yscale);
+ canvas = new PianoCanvas(this, split1, xscale, yscale);
+ vscroll = new ScrollScale(-3, 7, yscale, KH * 75, Qt::Vertical, split1);
+
+ int offset = -(config.division/4);
+ canvas->setOrigin(offset, 0);
+ canvas->setCanvasTools(pianorollTools);
+ canvas->setFocus();
+ connect(canvas, SIGNAL(toolChanged(int)), tools2, SLOT(set(int)));
+ time->setOrigin(offset, 0);
+
+ gridS1->setRowStretch(2, 100);
+ gridS1->setColStretch(1, 100);
+
+ gridS1->addMultiCellWidget(time, 0, 0, 1, 2);
+ gridS1->addMultiCellWidget(hLine(split1), 1, 1, 0, 2);
+ gridS1->addWidget(piano, 2, 0);
+ gridS1->addWidget(canvas, 2, 1);
+
+ gridS1->addWidget(vscroll, 2, 2);
+// gridS1->addWidget(time, 0, 1);
+// gridS1->addWidget(hLine(split1), 1, 1);
+// gridS1->addWidget(piano, 2, 0);
+// gridS1->addWidget(canvas, 2, 1);
+// gridS1->addMultiCellWidget(vscroll, 1, 2, 2, 2);
+
+ piano->setFixedWidth(pianoWidth);
+
+ connect(tools2, SIGNAL(toolChanged(int)), canvas, SLOT(setTool(int)));
+
+ connect(ctrl, SIGNAL(clicked()), SLOT(addCtrl()));
+ connect(info, SIGNAL(valueChanged(NoteInfo::ValType, int)), SLOT(noteinfoChanged(NoteInfo::ValType, int)));
+ connect(vscroll, SIGNAL(scrollChanged(int)), piano, SLOT(setYPos(int)));
+ connect(vscroll, SIGNAL(scrollChanged(int)), canvas, SLOT(setYPos(int)));
+ connect(vscroll, SIGNAL(scaleChanged(int)), canvas, SLOT(setYMag(int)));
+ connect(vscroll, SIGNAL(scaleChanged(int)), piano, SLOT(setYMag(int)));
+
+ connect(hscroll, SIGNAL(scrollChanged(int)), canvas, SLOT(setXPos(int)));
+ connect(hscroll, SIGNAL(scrollChanged(int)), time, SLOT(setXPos(int)));
+
+ connect(hscroll, SIGNAL(scaleChanged(int)), canvas, SLOT(setXMag(int)));
+ connect(hscroll, SIGNAL(scaleChanged(int)), time, SLOT(setXMag(int)));
+
+ connect(canvas, SIGNAL(pitchChanged(int)), piano, SLOT(setPitch(int)));
+ connect(canvas, SIGNAL(verticalScroll(unsigned)), vscroll, SLOT(setPos(unsigned)));
+ connect(canvas, SIGNAL(horizontalScroll(unsigned)),hscroll, SLOT(setPos(unsigned)));
+ connect(canvas, SIGNAL(horizontalScrollNoLimit(unsigned)),hscroll, SLOT(setPosNoLimit(unsigned)));
+ connect(canvas, SIGNAL(selectionChanged(int, Event&, Part*)), this,
+ SLOT(setSelection(int, Event&, Part*)));
+
+ connect(piano, SIGNAL(keyPressed(int, int, bool)), canvas, SLOT(pianoPressed(int, int, bool)));
+ connect(piano, SIGNAL(keyReleased(int, bool)), canvas, SLOT(pianoReleased(int, bool)));
+ connect(srec, SIGNAL(toggled(bool)), SLOT(setSteprec(bool)));
+ connect(midiin, SIGNAL(toggled(bool)), canvas, SLOT(setMidiin(bool)));
+ connect(speaker, SIGNAL(toggled(bool)), SLOT(setSpeaker(bool)));
+ connect(canvas, SIGNAL(followEvent(int)), SLOT(follow(int)));
+
+ connect(hscroll, SIGNAL(scaleChanged(int)), SLOT(updateHScrollRange()));
+ piano->setYPos(KH * 30);
+ canvas->setYPos(KH * 30);
+ vscroll->setPos(KH * 30);
+ //setSelection(0, 0, 0); //Really necessary? Causes segfault when only 1 item selected, replaced by the following:
+ info->setEnabled(false);
+
+ connect(song, SIGNAL(songChanged(int)), SLOT(songChanged1(int)));
+
+ setCaption(canvas->getCaption());
+
+ updateHScrollRange();
+ // connect to toolbar
+ connect(canvas, SIGNAL(pitchChanged(int)), toolbar, SLOT(setPitch(int)));
+ connect(canvas, SIGNAL(timeChanged(unsigned)), SLOT(setTime(unsigned)));
+ connect(piano, SIGNAL(pitchChanged(int)), toolbar, SLOT(setPitch(int)));
+ connect(time, SIGNAL(timeChanged(unsigned)), SLOT(setTime(unsigned)));
+ connect(toolbar, SIGNAL(quantChanged(int)), SLOT(setQuant(int)));
+ connect(toolbar, SIGNAL(rasterChanged(int)),SLOT(setRaster(int)));
+ connect(toolbar, SIGNAL(toChanged(int)), SLOT(setTo(int)));
+ connect(toolbar, SIGNAL(soloChanged(bool)), SLOT(soloChanged(bool)));
+
+ setFocusPolicy(Qt::StrongFocus);
+ setEventColorMode(colorMode);
+
+ QClipboard* cb = QApplication::clipboard();
+ connect(cb, SIGNAL(dataChanged()), SLOT(clipboardChanged()));
+
+ clipboardChanged(); // enable/disable "Paste"
+ selectionChanged(); // enable/disable "Copy" & "Paste"
+ initShortcuts(); // initialize shortcuts
+
+ const Pos cpos=song->cPos();
+ canvas->setPos(0, cpos.tick(), true);
+ canvas->selectAtTick(cpos.tick());
+ //canvas->selectFirst();
+//
+ if(canvas->track())
+ toolbar->setSolo(canvas->track()->solo());
+
+ unsigned pos;
+ if(initPos >= MAXINT)
+ pos = song->cpos();
+ else
+ pos = initPos;
+ if(pos > MAXINT)
+ pos = MAXINT;
+ hscroll->setOffset((int)pos);
+ }
+
+//---------------------------------------------------------
+// songChanged1
+//---------------------------------------------------------
+
+void PianoRoll::songChanged1(int bits)
+ {
+
+ if (bits & SC_SOLO)
+ {
+ toolbar->setSolo(canvas->track()->solo());
+ return;
+ }
+ songChanged(bits);
+ }
+
+//---------------------------------------------------------
+// configChanged
+//---------------------------------------------------------
+
+void PianoRoll::configChanged()
+ {
+ initShortcuts();
+ }
+
+//---------------------------------------------------------
+// updateHScrollRange
+//---------------------------------------------------------
+
+void PianoRoll::updateHScrollRange()
+{
+ int s, e;
+ canvas->range(&s, &e);
+ // Show one more measure.
+ e += sigmap.ticksMeasure(e);
+ // Show another quarter measure due to imprecise drawing at canvas end point.
+ e += sigmap.ticksMeasure(e) / 4;
+ // Compensate for the fixed piano and vscroll widths.
+ e += canvas->rmapxDev(pianoWidth - vscroll->width());
+ int s1, e1;
+ hscroll->range(&s1, &e1);
+ if(s != s1 || e != e1)
+ hscroll->setRange(s, e);
+}
+
+//---------------------------------------------------------
+// follow
+//---------------------------------------------------------
+
+void PianoRoll::follow(int pos)
+ {
+ int s, e;
+ canvas->range(&s, &e);
+
+ if (pos < e && pos >= s)
+ hscroll->setOffset(pos);
+ if (pos < s)
+ hscroll->setOffset(s);
+ }
+
+//---------------------------------------------------------
+// setTime
+//---------------------------------------------------------
+
+void PianoRoll::setTime(unsigned tick)
+ {
+ toolbar->setTime(tick);
+ time->setPos(3, tick, false);
+ }
+
+//---------------------------------------------------------
+// ~Pianoroll
+//---------------------------------------------------------
+
+PianoRoll::~PianoRoll()
+ {
+ undoRedo->removeFrom(tools);
+ }
+
+//---------------------------------------------------------
+// cmd
+// pulldown menu commands
+//---------------------------------------------------------
+
+void PianoRoll::cmd(int cmd)
+ {
+ ((PianoCanvas*)canvas)->cmd(cmd, _quantStrength, _quantLimit, _quantLen, _to);
+ }
+
+//---------------------------------------------------------
+// setSelection
+// update Info Line
+//---------------------------------------------------------
+
+void PianoRoll::setSelection(int tick, Event& e, Part* p)
+ {
+ int selections = canvas->selectionSize();
+
+ selEvent = e;
+ selPart = (MidiPart*)p;
+ selTick = tick;
+
+ 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;
+ }
+ // Indicate do undo, and do not do port controller values and clone parts.
+ //audio->msgChangeEvent(selEvent, event, selPart);
+ audio->msgChangeEvent(selEvent, event, selPart, true, false, false);
+ }
+ 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);
+ }
+ }
+
+//---------------------------------------------------------
+// addCtrl
+//---------------------------------------------------------
+
+CtrlEdit* PianoRoll::addCtrl()
+ {
+ CtrlEdit* ctrlEdit = new CtrlEdit(splitter, this, xscale, false, "pianoCtrlEdit");
+ 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->show();
+ ctrlEditList.push_back(ctrlEdit);
+ return ctrlEdit;
+ }
+
+//---------------------------------------------------------
+// removeCtrl
+//---------------------------------------------------------
+
+void PianoRoll::removeCtrl(CtrlEdit* ctrl)
+ {
+ for (std::list<CtrlEdit*>::iterator i = ctrlEditList.begin();
+ i != ctrlEditList.end(); ++i) {
+ if (*i == ctrl) {
+ ctrlEditList.erase(i);
+ break;
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// closeEvent
+//---------------------------------------------------------
+
+void PianoRoll::closeEvent(QCloseEvent* e)
+ {
+ emit deleted((unsigned long)this);
+ e->accept();
+ }
+
+//---------------------------------------------------------
+// readConfiguration
+//---------------------------------------------------------
+
+void PianoRoll::readConfiguration(Xml& xml)
+ {
+ for (;;) {
+ Xml::Token token = xml.parse();
+ if (token == Xml::Error || token == Xml::End)
+ break;
+ const QString& tag = xml.s1();
+ switch (token) {
+ case Xml::TagStart:
+ if (tag == "quant")
+ _quantInit = xml.parseInt();
+ else if (tag == "raster")
+ _rasterInit = xml.parseInt();
+ else if (tag == "quantStrength")
+ _quantStrengthInit = xml.parseInt();
+ else if (tag == "quantLimit")
+ _quantLimitInit = xml.parseInt();
+ else if (tag == "quantLen")
+ _quantLenInit = xml.parseInt();
+ else if (tag == "to")
+ _toInit = xml.parseInt();
+ else if (tag == "colormode")
+ colorModeInit = xml.parseInt();
+ else if (tag == "width")
+ _widthInit = xml.parseInt();
+ else if (tag == "height")
+ _heightInit = xml.parseInt();
+ else
+ xml.unknown("PianoRoll");
+ break;
+ case Xml::TagEnd:
+ if (tag == "pianoroll")
+ return;
+ default:
+ break;
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// writeConfiguration
+//---------------------------------------------------------
+
+void PianoRoll::writeConfiguration(int level, Xml& xml)
+ {
+ xml.tag(level++, "pianoroll");
+ xml.intTag(level, "quant", _quantInit);
+ xml.intTag(level, "raster", _rasterInit);
+ xml.intTag(level, "quantStrength", _quantStrengthInit);
+ xml.intTag(level, "quantLimit", _quantLimitInit);
+ xml.intTag(level, "quantLen", _quantLenInit);
+ xml.intTag(level, "to", _toInit);
+ xml.intTag(level, "width", _widthInit);
+ xml.intTag(level, "height", _heightInit);
+ xml.intTag(level, "colormode", colorModeInit);
+ xml.etag(level, "pianoroll");
+ }
+
+//---------------------------------------------------------
+// soloChanged
+// signal from solo button
+//---------------------------------------------------------
+
+void PianoRoll::soloChanged(bool flag)
+ {
+ audio->msgSetSolo(canvas->track(), flag);
+ song->update(SC_SOLO);
+ }
+
+//---------------------------------------------------------
+// setRaster
+//---------------------------------------------------------
+
+void PianoRoll::setRaster(int val)
+ {
+ _rasterInit = val;
+ MidiEditor::setRaster(val);
+ canvas->redrawGrid();
+ canvas->setFocus(); // give back focus after kb input
+ }
+
+//---------------------------------------------------------
+// setQuant
+//---------------------------------------------------------
+
+void PianoRoll::setQuant(int val)
+ {
+ _quantInit = val;
+ MidiEditor::setQuant(val);
+ canvas->setFocus();
+ }
+
+//---------------------------------------------------------
+// writeStatus
+//---------------------------------------------------------
+
+void PianoRoll::writeStatus(int level, Xml& xml) const
+ {
+ writePartList(level, xml);
+ xml.tag(level++, "pianoroll");
+ MidiEditor::writeStatus(level, xml);
+ splitter->writeStatus(level, xml);
+
+ for (std::list<CtrlEdit*>::const_iterator i = ctrlEditList.begin();
+ i != ctrlEditList.end(); ++i) {
+ (*i)->writeStatus(level, xml);
+ }
+
+ xml.intTag(level, "steprec", canvas->steprec());
+ xml.intTag(level, "midiin", canvas->midiin());
+ xml.intTag(level, "tool", int(canvas->tool()));
+ xml.intTag(level, "quantStrength", _quantStrength);
+ xml.intTag(level, "quantLimit", _quantLimit);
+ xml.intTag(level, "quantLen", _quantLen);
+ xml.intTag(level, "playEvents", _playEvents);
+ xml.intTag(level, "xpos", hscroll->pos());
+ xml.intTag(level, "xmag", hscroll->mag());
+ xml.intTag(level, "ypos", vscroll->pos());
+ xml.intTag(level, "ymag", vscroll->mag());
+ xml.tag(level, "/pianoroll");
+ }
+
+//---------------------------------------------------------
+// readStatus
+//---------------------------------------------------------
+
+void PianoRoll::readStatus(Xml& xml)
+ {
+ for (;;) {
+ Xml::Token token = xml.parse();
+ if (token == Xml::Error || token == Xml::End)
+ break;
+ const QString& tag = xml.s1();
+ switch (token) {
+ case Xml::TagStart:
+ if (tag == "steprec") {
+ int val = xml.parseInt();
+ canvas->setSteprec(val);
+ srec->setOn(val);
+ }
+ else if (tag == "midiin") {
+ int val = xml.parseInt();
+ canvas->setMidiin(val);
+ midiin->setOn(val);
+ }
+ else if (tag == "tool") {
+ int tool = xml.parseInt();
+ canvas->setTool(tool);
+ tools2->set(tool);
+ }
+ else if (tag == "midieditor")
+ MidiEditor::readStatus(xml);
+ else if (tag == "ctrledit") {
+ CtrlEdit* ctrl = addCtrl();
+ ctrl->readStatus(xml);
+ }
+ else if (tag == splitter->name())
+ splitter->readStatus(xml);
+ else if (tag == "quantStrength")
+ _quantStrength = xml.parseInt();
+ else if (tag == "quantLimit")
+ _quantLimit = xml.parseInt();
+ else if (tag == "quantLen")
+ _quantLen = xml.parseInt();
+ else if (tag == "playEvents") {
+ _playEvents = xml.parseInt();
+ canvas->playEvents(_playEvents);
+ speaker->setOn(_playEvents);
+ }
+ else if (tag == "xmag")
+ hscroll->setMag(xml.parseInt());
+ else if (tag == "xpos")
+ hscroll->setPos(xml.parseInt());
+ else if (tag == "ymag")
+ vscroll->setMag(xml.parseInt());
+ else if (tag == "ypos")
+ vscroll->setPos(xml.parseInt());
+ else
+ xml.unknown("PianoRoll");
+ break;
+ case Xml::TagEnd:
+ if (tag == "pianoroll") {
+ _quantInit = _quant;
+ _rasterInit = _raster;
+ toolbar->setRaster(_raster);
+ toolbar->setQuant(_quant);
+ canvas->redrawGrid();
+ return;
+ }
+ default:
+ break;
+ }
+ }
+ }
+
+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
+ };
+
+//---------------------------------------------------------
+// viewKeyPressEvent
+//---------------------------------------------------------
+
+void PianoRoll::keyPressEvent(QKeyEvent* event)
+ {
+ if (info->hasFocus()) {
+ event->ignore();
+ return;
+ }
+
+ 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 = (PianoCanvas*)canvas;
+ int key = event->key();
+
+ if (event->state() & Qt::ShiftButton)
+ key += Qt::SHIFT;
+ if (event->state() & Qt::AltButton)
+ key += Qt::ALT;
+ if (event->state() & Qt::ControlButton)
+ key+= Qt::CTRL;
+
+ if (key == Qt::Key_Escape) {
+ close();
+ return;
+ }
+ else if (key == shortcuts[SHRT_TOOL_POINTER].key) {
+ tools2->set(PointerTool);
+ return;
+ }
+ else if (key == shortcuts[SHRT_TOOL_PENCIL].key) {
+ tools2->set(PencilTool);
+ return;
+ }
+ else if (key == shortcuts[SHRT_TOOL_RUBBER].key) {
+ tools2->set(RubberTool);
+ return;
+ }
+ else if (key == shortcuts[SHRT_TOOL_LINEDRAW].key) {
+ tools2->set(DrawTool);
+ return;
+ }
+ else if (key == shortcuts[SHRT_POS_INC].key) {
+ pc->pianoCmd(CMD_RIGHT);
+ return;
+ }
+ else if (key == shortcuts[SHRT_POS_DEC].key) {
+ pc->pianoCmd(CMD_LEFT);
+ return;
+ }
+ else if (key == shortcuts[SHRT_INSERT_AT_LOCATION].key) {
+ pc->pianoCmd(CMD_INSERT);
+ return;
+ }
+ else if (key == Qt::Key_Delete) {
+ pc->pianoCmd(CMD_DELETE);
+ return;
+ }
+ else if (key == shortcuts[SHRT_ZOOM_IN].key) {
+ int mag = hscroll->mag();
+ int zoomlvl = ScrollScale::getQuickZoomLevel(mag);
+ if (zoomlvl < 23)
+ zoomlvl++;
+
+ int newmag = ScrollScale::convertQuickZoomLevelToMag(zoomlvl);
+ hscroll->setMag(newmag);
+ //printf("mag = %d zoomlvl = %d newmag = %d\n", mag, zoomlvl, newmag);
+ return;
+ }
+ else if (key == shortcuts[SHRT_ZOOM_OUT].key) {
+ int mag = hscroll->mag();
+ int zoomlvl = ScrollScale::getQuickZoomLevel(mag);
+ if (zoomlvl > 1)
+ zoomlvl--;
+
+ int newmag = ScrollScale::convertQuickZoomLevelToMag(zoomlvl);
+ hscroll->setMag(newmag);
+ //printf("mag = %d zoomlvl = %d newmag = %d\n", mag, zoomlvl, newmag);
+ return;
+ }
+ else if (key == shortcuts[SHRT_GOTO_CPOS].key) {
+ PartList* p = this->parts();
+ Part* first = p->begin()->second;
+ hscroll->setPos(song->cpos() - first->tick() );
+ return;
+ }
+ else if (key == shortcuts[SHRT_SCROLL_LEFT].key) {
+ int pos = hscroll->pos() - config.division;
+ if (pos < 0)
+ pos = 0;
+ hscroll->setPos(pos);
+ return;
+ }
+ else if (key == shortcuts[SHRT_SCROLL_RIGHT].key) {
+ int pos = hscroll->pos() + config.division;
+ hscroll->setPos(pos);
+ return;
+ }
+ else if (key == shortcuts[SHRT_SET_QUANT_1].key)
+ val = rasterTable[8 + off];
+ else if (key == shortcuts[SHRT_SET_QUANT_2].key)
+ val = rasterTable[7 + off];
+ else if (key == shortcuts[SHRT_SET_QUANT_3].key)
+ val = rasterTable[6 + off];
+ else if (key == shortcuts[SHRT_SET_QUANT_4].key)
+ val = rasterTable[5 + off];
+ else if (key == shortcuts[SHRT_SET_QUANT_5].key)
+ val = rasterTable[4 + off];
+ else if (key == shortcuts[SHRT_SET_QUANT_6].key)
+ val = rasterTable[3 + off];
+ else if (key == shortcuts[SHRT_SET_QUANT_7].key)
+ val = rasterTable[2 + off];
+ else if (key == shortcuts[SHRT_TOGGLE_TRIOL].key)
+ val = rasterTable[index + ((off == 0) ? 9 : 0)];
+ else if (key == shortcuts[SHRT_EVENT_COLOR].key) {
+ if (colorMode == 0)
+ colorMode = 1;
+ else if (colorMode == 1)
+ colorMode = 2;
+ else
+ colorMode = 0;
+ setEventColorMode(colorMode);
+ return;
+ }
+ else if (key == shortcuts[SHRT_TOGGLE_PUNCT].key)
+ val = rasterTable[index + ((off == 18) ? 9 : 18)];
+
+ else if (key == shortcuts[SHRT_TOGGLE_PUNCT2].key) {//CDW
+ if ((off == 18) && (index > 2)) {
+ val = rasterTable[index + 9 - 1];
+ }
+ else if ((off == 9) && (index < 8)) {
+ val = rasterTable[index + 18 + 1];
+ }
+ else
+ return;
+ }
+ else { //Default:
+ event->ignore();
+ return;
+ }
+ setQuant(val);
+ setRaster(val);
+ toolbar->setQuant(_quant);
+ toolbar->setRaster(_raster);
+ }
+
+//---------------------------------------------------------
+// configQuant
+//---------------------------------------------------------
+
+void PianoRoll::configQuant()
+ {
+ if (!quantConfig) {
+ quantConfig = new QuantConfig(_quantStrength, _quantLimit, _quantLen);
+ connect(quantConfig, SIGNAL(setQuantStrength(int)), SLOT(setQuantStrength(int)));
+ connect(quantConfig, SIGNAL(setQuantLimit(int)), SLOT(setQuantLimit(int)));
+ connect(quantConfig, SIGNAL(setQuantLen(bool)), SLOT(setQuantLen(bool)));
+ }
+ quantConfig->show();
+ }
+
+//---------------------------------------------------------
+// setSteprec
+//---------------------------------------------------------
+
+void PianoRoll::setSteprec(bool flag)
+ {
+ canvas->setSteprec(flag);
+ if (flag == false)
+ midiin->setOn(flag);
+ }
+
+//---------------------------------------------------------
+// setEventColorMode
+//---------------------------------------------------------
+
+void PianoRoll::setEventColorMode(int mode)
+ {
+ colorMode = mode;
+ colorModeInit = colorMode;
+ eventColor->setItemChecked(0, mode == 0);
+ eventColor->setItemChecked(1, mode == 1);
+ eventColor->setItemChecked(2, mode == 2);
+ ((PianoCanvas*)(canvas))->setColorMode(colorMode);
+ }
+
+//---------------------------------------------------------
+// clipboardChanged
+//---------------------------------------------------------
+
+void PianoRoll::clipboardChanged()
+ {
+ QMimeSource* ms = QApplication::clipboard()->data(QClipboard::Clipboard);
+ bool flag = false;
+ if (ms) {
+ for (int i = 0;; ++i) {
+ if (ms->format(i) == 0)
+ break;
+// printf("clipboard changed %s\n", ms->format(i));
+ flag = strcmp(ms->format(i), "text/eventlist;charset=UTF-8") == 0;
+ if (flag)
+ break;
+ }
+ }
+ menuEdit->setItemEnabled(PianoCanvas::CMD_PASTE, flag);
+ }
+
+//---------------------------------------------------------
+// selectionChanged
+//---------------------------------------------------------
+
+void PianoRoll::selectionChanged()
+ {
+ bool flag = canvas->selectionSize() > 0;
+ menuEdit->setItemEnabled(PianoCanvas::CMD_CUT, flag);
+ menuEdit->setItemEnabled(PianoCanvas::CMD_COPY, flag);
+ menuEdit->setItemEnabled(PianoCanvas::CMD_DEL, flag);
+ }
+
+//---------------------------------------------------------
+// setSpeaker
+//---------------------------------------------------------
+
+void PianoRoll::setSpeaker(bool val)
+ {
+ _playEvents = val;
+ canvas->playEvents(_playEvents);
+ }
+
+//---------------------------------------------------------
+// resizeEvent
+//---------------------------------------------------------
+
+void PianoRoll::resizeEvent(QResizeEvent* ev)
+ {
+ QWidget::resizeEvent(ev);
+ _widthInit = ev->size().width();
+ _heightInit = ev->size().height();
+ }
+
+
+//---------------------------------------------------------
+// initShortcuts
+//---------------------------------------------------------
+
+void PianoRoll::initShortcuts()
+ {
+ menuSelect->setAccel(shortcuts[SHRT_SELECT_ALL].key, PianoCanvas::CMD_SELECT_ALL);
+ menuSelect->setAccel(shortcuts[SHRT_SELECT_NONE].key, PianoCanvas::CMD_SELECT_NONE);
+ menuSelect->setAccel(shortcuts[SHRT_SELECT_INVERT].key, PianoCanvas::CMD_SELECT_INVERT);
+ menuSelect->setAccel(shortcuts[SHRT_SELECT_ILOOP].key, PianoCanvas::CMD_SELECT_ILOOP);
+ menuSelect->setAccel(shortcuts[SHRT_SELECT_OLOOP].key, PianoCanvas::CMD_SELECT_OLOOP);
+
+ menuSelect->setAccel(shortcuts[SHRT_SELECT_PREV_PART].key, PianoCanvas::CMD_SELECT_PREV_PART);
+ menuSelect->setAccel(shortcuts[SHRT_SELECT_NEXT_PART].key, PianoCanvas::CMD_SELECT_NEXT_PART);
+
+ menuConfig->setAccel(shortcuts[SHRT_EVENT_COLOR].key, menu_ids[CMD_EVENT_COLOR]);
+
+ menuFunctions->setAccel(shortcuts[SHRT_OVER_QUANTIZE].key, PianoCanvas::CMD_OVER_QUANTIZE);
+ menuFunctions->setAccel(shortcuts[SHRT_ON_QUANTIZE].key, PianoCanvas::CMD_ON_QUANTIZE);
+ menuFunctions->setAccel(shortcuts[SHRT_ONOFF_QUANTIZE].key, PianoCanvas::CMD_ONOFF_QUANTIZE);
+ menuFunctions->setAccel(shortcuts[SHRT_ITERATIVE_QUANTIZE].key, PianoCanvas::CMD_ITERATIVE_QUANTIZE);
+ menuFunctions->setAccel(shortcuts[SHRT_MODIFY_GATE_TIME].key, PianoCanvas::CMD_MODIFY_GATE_TIME);
+ menuFunctions->setAccel(shortcuts[SHRT_MODIFY_VELOCITY].key, PianoCanvas::CMD_MODIFY_VELOCITY);
+ menuFunctions->setAccel(shortcuts[SHRT_CRESCENDO].key, PianoCanvas::CMD_CRESCENDO);
+ menuFunctions->setAccel(shortcuts[SHRT_TRANSPOSE].key, PianoCanvas::CMD_TRANSPOSE);
+ menuFunctions->setAccel(shortcuts[SHRT_THIN_OUT].key, PianoCanvas::CMD_THIN_OUT);
+ menuFunctions->setAccel(shortcuts[SHRT_ERASE_EVENT].key, PianoCanvas::CMD_ERASE_EVENT);
+ menuFunctions->setAccel(shortcuts[SHRT_NOTE_SHIFT].key, PianoCanvas::CMD_NOTE_SHIFT);
+ menuFunctions->setAccel(shortcuts[SHRT_MOVE_CLOCK].key, PianoCanvas::CMD_MOVE_CLOCK);
+ menuFunctions->setAccel(shortcuts[SHRT_COPY_MEASURE].key, PianoCanvas::CMD_COPY_MEASURE);
+ menuFunctions->setAccel(shortcuts[SHRT_ERASE_MEASURE].key, PianoCanvas::CMD_ERASE_MEASURE);
+ menuFunctions->setAccel(shortcuts[SHRT_DELETE_MEASURE].key, PianoCanvas::CMD_DELETE_MEASURE);
+ menuFunctions->setAccel(shortcuts[SHRT_CREATE_MEASURE].key, PianoCanvas::CMD_CREATE_MEASURE);
+ menuFunctions->setAccel(shortcuts[SHRT_CONFIG_QUANT].key, menu_ids[CMD_CONFIG_QUANT]);
+ menuFunctions->setAccel(shortcuts[SHRT_FIXED_LEN].key, PianoCanvas::CMD_FIXED_LEN);
+ menuFunctions->setAccel(shortcuts[SHRT_DELETE_OVERLAPS].key, PianoCanvas::CMD_DELETE_OVERLAPS);
+ }
+
+//---------------------------------------------------------
+// execDeliveredScript
+//---------------------------------------------------------
+void PianoRoll::execDeliveredScript(int id)
+{
+ //QString scriptfile = QString(INSTPREFIX) + SCRIPTSSUFFIX + deliveredScriptNames[id];
+ QString scriptfile = song->getScriptPath(id, true);
+ song->executeScript(scriptfile.latin1(), parts(), quant(), true);
+}
+
+//---------------------------------------------------------
+// execUserScript
+//---------------------------------------------------------
+void PianoRoll::execUserScript(int id)
+{
+ QString scriptfile = song->getScriptPath(id, false);
+ song->executeScript(scriptfile.latin1(), parts(), quant(), true);
+}
+
diff --git a/muse2/muse/midiedit/pianoroll.h b/muse2/muse/midiedit/pianoroll.h
new file mode 100644
index 00000000..8987915a
--- /dev/null
+++ b/muse2/muse/midiedit/pianoroll.h
@@ -0,0 +1,146 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: pianoroll.h,v 1.5.2.4 2009/11/16 11:29:33 lunar_shuttle Exp $
+// (C) Copyright 1999 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __PIANOROLL_H__
+#define __PIANOROLL_H__
+
+#include <qwidget.h>
+#include <q3mainwindow.h>
+//Added by qt3to4:
+#include <QCloseEvent>
+#include <QResizeEvent>
+#include <QLabel>
+#include <Q3PopupMenu>
+#include <QKeyEvent>
+
+#include <values.h>
+#include "noteinfo.h"
+#include "cobject.h"
+#include "midieditor.h"
+#include "tools.h"
+#include "event.h"
+
+class MidiPart;
+class TimeLabel;
+class PitchLabel;
+class QLabel;
+class PianoCanvas;
+class IntLabel;
+class MTScale;
+class Track;
+class QToolButton;
+class QPushButton;
+class CtrlEdit;
+class Splitter;
+class PartList;
+class Toolbar1;
+class Xml;
+class QuantConfig;
+class ScrollScale;
+class Part;
+class SNode;
+
+//---------------------------------------------------------
+// PianoRoll
+//---------------------------------------------------------
+
+class PianoRoll : public MidiEditor {
+ Event selEvent;
+ MidiPart* selPart;
+ int selTick;
+
+ enum { CMD_EVENT_COLOR, CMD_CONFIG_QUANT, CMD_LAST };
+ int menu_ids[CMD_LAST];
+ Q3PopupMenu *menuEdit, *menuFunctions, *menuSelect, *menuConfig, *menuPlugins;
+
+ int tickOffset;
+ int lenOffset;
+ int pitchOffset;
+ int veloOnOffset;
+ int veloOffOffset;
+ bool deltaMode;
+
+ NoteInfo* info;
+ QToolButton* srec;
+ QToolButton* midiin;
+
+ Toolbar1* toolbar;
+ Splitter* splitter;
+
+ QToolButton* speaker;
+ Q3ToolBar* tools;
+ EditToolBar* tools2;
+
+ Q3PopupMenu* eventColor;
+ int colorMode;
+
+ static int _quantInit, _rasterInit;
+ static int _widthInit, _heightInit;
+
+ static int _quantStrengthInit;
+ static int _quantLimitInit;
+ static bool _quantLenInit;
+ static int _toInit;
+ static int colorModeInit;
+
+ int _quantStrength;
+ int _quantLimit;
+ int _to;
+ bool _quantLen;
+ QuantConfig* quantConfig;
+ bool _playEvents;
+
+
+ Q_OBJECT
+ void initShortcuts();
+ QWidget* genToolbar(QWidget* parent);
+ virtual void closeEvent(QCloseEvent*);
+ virtual void keyPressEvent(QKeyEvent*);
+ virtual void resizeEvent(QResizeEvent*);
+
+ private slots:
+ void setSelection(int, Event&, Part*);
+ void noteinfoChanged(NoteInfo::ValType, int);
+ CtrlEdit* addCtrl();
+ void removeCtrl(CtrlEdit* ctrl);
+ void soloChanged(bool flag);
+ void setRaster(int);
+ void setQuant(int);
+ void configQuant();
+ void setQuantStrength(int val) { _quantStrength = val; }
+ void setQuantLimit(int val) { _quantLimit = val; }
+ void setQuantLen(bool val) { _quantLen = val; }
+ void cmd(int);
+ void setSteprec(bool);
+ void setTo(int val) { _to = val; }
+ void setEventColorMode(int);
+ void clipboardChanged(); // enable/disable "Paste"
+ void selectionChanged(); // enable/disable "Copy" & "Paste"
+ void setSpeaker(bool);
+ void setTime(unsigned);
+ void follow(int pos);
+ void songChanged1(int);
+ void configChanged();
+
+ signals:
+ void deleted(unsigned long);
+
+ public slots:
+ virtual void updateHScrollRange();
+ void execDeliveredScript(int id);
+ void execUserScript(int id);
+ public:
+ PianoRoll(PartList*, QWidget* parent = 0, const char* name = 0, unsigned initPos = MAXINT);
+ ~PianoRoll();
+ virtual void readStatus(Xml&);
+ virtual void writeStatus(int, Xml&) const;
+ static void readConfiguration(Xml&);
+ static void writeConfiguration(int, Xml&);
+ };
+
+#endif
+
diff --git a/muse2/muse/midiedit/prcanvas.cpp b/muse2/muse/midiedit/prcanvas.cpp
new file mode 100644
index 00000000..484a12ad
--- /dev/null
+++ b/muse2/muse/midiedit/prcanvas.cpp
@@ -0,0 +1,1695 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: prcanvas.cpp,v 1.20.2.19 2009/11/16 11:29:33 lunar_shuttle Exp $
+// (C) Copyright 1999-2004 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include <qapplication.h>
+#include <qclipboard.h>
+#include <qpainter.h>
+#include <q3dragobject.h>
+#include <qmessagebox.h>
+//Added by qt3to4:
+#include <QDragLeaveEvent>
+#include <Q3CString>
+#include <QDragEnterEvent>
+#include <QDragMoveEvent>
+#include <QDropEvent>
+#include <QMouseEvent>
+
+#include <values.h>
+#include <stdio.h>
+#include <math.h>
+#include <errno.h>
+#include <sys/stat.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <sys/mman.h>
+#include <fcntl.h>
+#include <dirent.h>
+
+#include "xml.h"
+#include "prcanvas.h"
+#include "midiport.h"
+#include "event.h"
+#include "mpevent.h"
+#include "globals.h"
+#include "cmd.h"
+#include "gatetime.h"
+#include "velocity.h"
+#include "song.h"
+#include "audio.h"
+
+//---------------------------------------------------------
+// NEvent
+//---------------------------------------------------------
+
+NEvent::NEvent(Event& e, Part* p, int y) : CItem(e, p)
+ {
+ y = y - KH/4;
+ unsigned tick = e.tick() + p->tick();
+ setPos(QPoint(tick, y));
+ setBBox(QRect(tick, y, e.lenTick(), KH/2));
+ }
+
+//---------------------------------------------------------
+// addItem
+//---------------------------------------------------------
+
+void PianoCanvas::addItem(Part* part, Event& event)
+ {
+ if (signed(event.tick())<0) {
+ printf("ERROR: trying to add event before current part!\n");
+ return;
+ }
+
+ NEvent* ev = new NEvent(event, part, pitch2y(event.pitch()));
+ items.add(ev);
+
+ int diff = event.endTick()-part->lenTick();
+ if (diff > 0) {// too short part? extend it
+ //printf("addItem - this code should not be run!\n");
+ //Part* newPart = part->clone();
+ //newPart->setLenTick(newPart->lenTick()+diff);
+ //audio->msgChangePart(part, newPart,false);
+ //part = newPart;
+ part->setLenTick(part->lenTick()+diff);
+ }
+ }
+
+//---------------------------------------------------------
+// PianoCanvas
+//---------------------------------------------------------
+
+PianoCanvas::PianoCanvas(MidiEditor* pr, QWidget* parent, int sx, int sy)
+ : EventCanvas(pr, parent, sx, sy)
+ {
+ colorMode = 0;
+ cmdRange = 0; // all Events
+ playedPitch = -1;
+
+ songChanged(SC_TRACK_INSERTED);
+ connect(song, SIGNAL(midiNote(int, int)), SLOT(midiNote(int,int)));
+ }
+
+//---------------------------------------------------------
+// pitch2y
+//---------------------------------------------------------
+
+int PianoCanvas::pitch2y(int pitch) const
+ {
+ int tt[] = {
+ 5, 12, 19, 26, 33, 44, 51, 58, 64, 71, 78, 85
+ };
+ int y = (75 * KH) - (tt[pitch%12] + (7 * KH) * (pitch/12));
+ if (y < 0)
+ y = 0;
+ return y;
+ }
+
+//---------------------------------------------------------
+// y2pitch
+//---------------------------------------------------------
+
+int PianoCanvas::y2pitch(int y) const
+ {
+ const int total = (10 * 7 + 5) * KH; // 75 Ganztonschritte
+ y = total - y;
+ int oct = (y / (7 * KH)) * 12;
+ char kt[] = {
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 5
+ 1, 1, 1, 1, 1, 1, 1, // 13
+ 2, 2, 2, 2, 2, 2, // 19
+ 3, 3, 3, 3, 3, 3, 3, // 26
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, // 34
+ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, // 43
+ 6, 6, 6, 6, 6, 6, 6, // 52
+ 7, 7, 7, 7, 7, 7, // 58
+ 8, 8, 8, 8, 8, 8, 8, // 65
+ 9, 9, 9, 9, 9, 9, // 71
+ 10, 10, 10, 10, 10, 10, 10, // 78
+ 11, 11, 11, 11, 11, 11, 11, 11, 11, 11 // 87
+ };
+ return kt[y % 91] + oct;
+ }
+
+//---------------------------------------------------------
+// drawEvent
+// draws a note
+//---------------------------------------------------------
+
+void PianoCanvas::drawItem(QPainter& p, const CItem* item,
+ const QRect& rect)
+ {
+ QRect r = item->bbox();
+ if(!virt())
+ r.moveCenter(map(item->pos()));
+ r = r.intersect(rect);
+ if(!r.isValid())
+ return;
+ p.setPen(Qt::black);
+ struct Triple {
+ int r, g, b;
+ };
+
+ static Triple myColors /*Qt::color1*/[12] = { // ddskrjp
+ { 0xff, 0x3d, 0x39 },
+ { 0x39, 0xff, 0x39 },
+ { 0x39, 0x3d, 0xff },
+ { 0xff, 0xff, 0x39 },
+ { 0xff, 0x3d, 0xff },
+ { 0x39, 0xff, 0xff },
+ { 0xff, 0x7e, 0x7a },
+ { 0x7a, 0x7e, 0xff },
+ { 0x7a, 0xff, 0x7a },
+ { 0xff, 0x7e, 0xbf },
+ { 0x7a, 0xbf, 0xff },
+ { 0xff, 0xbf, 0x7a }
+ };
+
+ NEvent* nevent = (NEvent*) item;
+ Event event = nevent->event();
+ if (nevent->part() != curPart){
+ if(item->isMoving())
+ p.setBrush(Qt::gray);
+ else if(item->isSelected())
+ p.setBrush(Qt::black);
+ else
+ p.setBrush(Qt::lightGray);
+ }
+ else {
+ if (item->isMoving()) {
+ p.setBrush(Qt::gray);
+ }
+ else if (item->isSelected()) {
+ p.setBrush(Qt::black);
+ }
+ else {
+ QColor color;
+ color.setRgb(0, 0, 255);
+ switch(colorMode) {
+ case 0:
+ break;
+ case 1: // pitch
+ {
+ Triple* c = &myColors/*Qt::color1*/[event.pitch() % 12];
+ color.setRgb(c->r, c->g, c->b);
+ }
+ break;
+ case 2: // velocity
+ {
+ int velo = event.velo();
+ if (velo < 64)
+ color.setRgb(velo*4, 0, 0xff);
+ else
+ color.setRgb(0xff, 0, (127-velo) * 4);
+ }
+ break;
+ }
+ p.setBrush(color);
+ }
+ }
+ p.drawRect(r);
+ }
+
+
+//---------------------------------------------------------
+// drawMoving
+// draws moving items
+//---------------------------------------------------------
+
+void PianoCanvas::drawMoving(QPainter& p, const CItem* item, const QRect& rect)
+ {
+ //if(((NEvent*)item)->part() != curPart)
+ // return;
+ //if(!item->isMoving())
+ // return;
+ QRect mr = QRect(item->mp().x(), item->mp().y() - item->height()/2, item->width(), item->height());
+ mr = mr.intersect(rect);
+ if(!mr.isValid())
+ return;
+ p.setPen(Qt::black);
+ p.setBrush(Qt::NoBrush);
+ p.drawRect(mr);
+ }
+
+//---------------------------------------------------------
+// viewMouseDoubleClickEvent
+//---------------------------------------------------------
+
+void PianoCanvas::viewMouseDoubleClickEvent(QMouseEvent* event)
+ {
+ if ((_tool != PointerTool) && (event->button() != Qt::LeftButton)) {
+ mousePress(event);
+ return;
+ }
+ }
+
+//---------------------------------------------------------
+// moveCanvasItems
+//---------------------------------------------------------
+
+void PianoCanvas::moveCanvasItems(CItemList& items, int dp, int dx, DragType dtype, int* pflags)
+{
+ if(editor->parts()->empty())
+ return;
+
+ PartsToChangeMap parts2change;
+
+ int modified = 0;
+ for(iPart ip = editor->parts()->begin(); ip != editor->parts()->end(); ++ip)
+ {
+ Part* part = ip->second;
+ if(!part)
+ continue;
+
+ int npartoffset = 0;
+ for(iCItem ici = items.begin(); ici != items.end(); ++ici)
+ {
+ CItem* ci = ici->second;
+ if(ci->part() != part)
+ continue;
+
+ int x = ci->pos().x() + dx;
+ int y = pitch2y(y2pitch(ci->pos().y()) + dp);
+ QPoint newpos = raster(QPoint(x, y));
+
+ // Test moving the item...
+ NEvent* nevent = (NEvent*) ci;
+ Event event = nevent->event();
+ x = newpos.x();
+ if(x < 0)
+ x = 0;
+ int ntick = editor->rasterVal(x) - part->tick();
+ if(ntick < 0)
+ ntick = 0;
+ int diff = ntick + event.lenTick() - part->lenTick();
+
+ // If moving the item would require a new part size...
+ if(diff > npartoffset)
+ npartoffset = diff;
+ }
+
+ if(npartoffset > 0)
+ {
+ // Create new part...
+ // if there are several events that are moved outside the part, it will be recreated for each
+ // so the part _in_ the event will not be valid, ask the authority.
+// Part* newPart = part->clone();
+ //Part* newPart = Canvas::part()->clone();
+
+// newPart->setLenTick(newPart->lenTick() + npartoffset);
+ //audio->msgChangePart(part, newPart,false);
+
+// modified = SC_PART_MODIFIED;
+
+ // BUG FIX: #1650953
+ // Added by T356.
+ // Fixes posted "select and drag past end of part - crashing" bug
+// for(iPart ip = editor->parts()->begin(); ip != editor->parts()->end(); ++ip)
+// {
+// if(ip->second == part)
+// {
+// editor->parts()->erase(ip);
+// break;
+// }
+// }
+
+// editor->parts()->add(newPart);
+// audio->msgChangePart(part, newPart,false);
+
+ //if(parts2change.find(part) == parts2change.end())
+ // parts2change.insert(std::pair<Part*, Part*> (part, newPart));
+ iPartToChange ip2c = parts2change.find(part);
+ if(ip2c == parts2change.end())
+ {
+ PartToChange p2c = {0, npartoffset};
+ parts2change.insert(std::pair<Part*, PartToChange> (part, p2c));
+ }
+ else
+ ip2c->second.xdiff = npartoffset;
+
+ //part = newPart; // reassign
+ //item->setPart(part);
+ //item->setEvent(newEvent);
+ //curPart = part;
+ //curPartId = curPart->sn();
+
+ }
+ }
+
+ for(iPartToChange ip2c = parts2change.begin(); ip2c != parts2change.end(); ++ip2c)
+ {
+ Part* opart = ip2c->first;
+ int diff = ip2c->second.xdiff;
+
+ Part* newPart = opart->clone();
+
+ newPart->setLenTick(newPart->lenTick() + diff);
+
+ modified = SC_PART_MODIFIED;
+
+ // BUG FIX: #1650953
+ // Added by T356.
+ // Fixes posted "select and drag past end of part - crashing" bug
+ for(iPart ip = editor->parts()->begin(); ip != editor->parts()->end(); ++ip)
+ {
+ if(ip->second == opart)
+ {
+ editor->parts()->erase(ip);
+ break;
+ }
+ }
+
+ editor->parts()->add(newPart);
+ // Indicate no undo, and do port controller values but not clone parts.
+ audio->msgChangePart(opart, newPart, false, true, false);
+
+ ip2c->second.npart = newPart;
+
+ }
+
+ iPartToChange icp = parts2change.find(curPart);
+ if(icp != parts2change.end())
+ {
+ curPart = icp->second.npart;
+ curPartId = curPart->sn();
+ }
+
+ std::vector< CItem* > doneList;
+ typedef std::vector< CItem* >::iterator iDoneList;
+
+ for(iCItem ici = items.begin(); ici != items.end(); ++ici)
+ {
+ CItem* ci = ici->second;
+
+ // If this item's part is in the parts2change list, change the item's part to the new part.
+ Part* pt = ci->part();
+ iPartToChange ip2c = parts2change.find(pt);
+ if(ip2c != parts2change.end())
+ ci->setPart(ip2c->second.npart);
+
+ int x = ci->pos().x();
+ int y = ci->pos().y();
+ int nx = x + dx;
+ int ny = pitch2y(y2pitch(y) + dp);
+ QPoint newpos = raster(QPoint(nx, ny));
+ selectItem(ci, true);
+
+ iDoneList idl;
+ for(idl = doneList.begin(); idl != doneList.end(); ++idl)
+ // This compares EventBase pointers to see if they're the same...
+ if((*idl)->event() == ci->event())
+ break;
+
+ // Do not process if the event has already been processed (meaning it's an event in a clone part)...
+ //if(moveItem(ci, newpos, dtype))
+ if(idl != doneList.end())
+ // Just move the canvas item.
+ ci->move(newpos);
+ else
+ {
+ // Currently moveItem always returns true.
+ if(moveItem(ci, newpos, dtype))
+ {
+ // Add the canvas item to the list of done items.
+ doneList.push_back(ci);
+ // Move the canvas item.
+ ci->move(newpos);
+ }
+ }
+
+ if(moving.size() == 1)
+ itemReleased(curItem, newpos);
+ if(dtype == MOVE_COPY || dtype == MOVE_CLONE)
+ selectItem(ci, false);
+ }
+
+ if(pflags)
+ *pflags = modified;
+}
+
+//---------------------------------------------------------
+// moveItem
+// called after moving an object
+//---------------------------------------------------------
+
+// Changed by T356.
+//bool PianoCanvas::moveItem(CItem* item, const QPoint& pos, DragType dtype, int* pflags)
+bool PianoCanvas::moveItem(CItem* item, const QPoint& pos, DragType dtype)
+ {
+ NEvent* nevent = (NEvent*) item;
+ Event event = nevent->event();
+ int npitch = y2pitch(pos.y());
+ Event newEvent = event.clone();
+ int x = pos.x();
+ if (x < 0)
+ x = 0;
+ if (event.pitch() != npitch && _playEvents) {
+ int port = track()->outPort();
+ int channel = track()->outChannel();
+ // release note:
+ MidiPlayEvent ev1(0, port, channel, 0x90, event.pitch() + track()->transposition, 0);
+ audio->msgPlayMidiEvent(&ev1);
+ MidiPlayEvent ev2(0, port, channel, 0x90, npitch + track()->transposition, event.velo());
+ audio->msgPlayMidiEvent(&ev2);
+ }
+
+ // Changed by T356.
+ Part* part = nevent->part(); //
+ //Part * part = Canvas::part(); // part can be dynamically recreated, ask the authority
+
+ newEvent.setPitch(npitch);
+ int ntick = editor->rasterVal(x) - part->tick();
+ if (ntick < 0)
+ ntick = 0;
+ newEvent.setTick(ntick);
+ newEvent.setLenTick(event.lenTick());
+
+ // Removed by T356.
+ /*
+ int modified=0;
+ //song->startUndo();
+ int diff = newEvent.endTick()-part->lenTick();
+ if (diff > 0){// too short part? extend it
+ // if there are several events that are moved outside the part, it will be recreated for each
+ // so the part _in_ the event will not be valid, ask the authority.
+ //Part* newPart = part->clone();
+ Part* newPart = Canvas::part()->clone();
+
+ newPart->setLenTick(newPart->lenTick()+diff);
+ audio->msgChangePart(Canvas::part(), newPart,false);
+
+ modified = SC_PART_MODIFIED;
+ part = newPart; // reassign
+
+ // BUG FIX: #1650953
+ // Added by T356.
+ // Fixes posted "select and drag past end of part - crashing" bug
+ for(iPart i = editor->parts()->begin(); i != editor->parts()->end(); ++i)
+ {
+ if(i->second == Canvas::part())
+ {
+ editor->parts()->erase(i);
+ break;
+ }
+ }
+ editor->parts()->add(part);
+ item->setPart(part);
+ item->setEvent(newEvent);
+ curPart = part;
+ curPartId = curPart->sn();
+
+ }
+ */
+
+ // Added by T356.
+ // msgAddEvent and msgChangeEvent (below) will set these, but set them here first?
+ //item->setPart(part);
+ item->setEvent(newEvent);
+
+ // Added by T356.
+ if(((int)newEvent.endTick() - (int)part->lenTick()) > 0)
+ printf("PianoCanvas::moveItem Error! New event end:%d exceeds length:%d of part:%s\n", newEvent.endTick(), part->lenTick(), part->name().latin1());
+
+ if (dtype == MOVE_COPY || dtype == MOVE_CLONE)
+ // Indicate no undo, and do not do port controller values and clone parts.
+ //audio->msgAddEvent(newEvent, part, false);
+ audio->msgAddEvent(newEvent, part, false, false, false);
+ else
+ // Indicate no undo, and do not do port controller values and clone parts.
+ //audio->msgChangeEvent(event, newEvent, part, false);
+ audio->msgChangeEvent(event, newEvent, part, false, false, false);
+ //song->endUndo(modified);
+
+ // Removed by T356.
+ //if(pflags)
+ // *pflags = modified;
+
+ return true;
+ }
+
+//---------------------------------------------------------
+// newItem(p, state)
+//---------------------------------------------------------
+
+CItem* PianoCanvas::newItem(const QPoint& p, int)
+ {
+ //printf("newItem point\n");
+ int pitch = y2pitch(p.y());
+ int tick = editor->rasterVal1(p.x());
+ int len = p.x() - tick;
+ tick -= curPart->tick();
+ if (tick < 0)
+ tick=0;
+ Event e = Event(Note);
+ e.setTick(tick);
+ e.setPitch(pitch);
+ e.setVelo(curVelo);
+ e.setLenTick(len);
+ return new NEvent(e, curPart, pitch2y(pitch));
+ }
+
+void PianoCanvas::newItem(CItem* item, bool noSnap)
+ {
+ //printf("newItem citem\n");
+ NEvent* nevent = (NEvent*) item;
+ Event event = nevent->event();
+ int x = item->x();
+ if (x<0)
+ x=0;
+ int w = item->width();
+
+ if (!noSnap) {
+ x = editor->rasterVal1(x); //round down
+ w = editor->rasterVal(x + w) - x;
+ if (w == 0)
+ w = editor->raster();
+ }
+ Part* part = nevent->part();
+ event.setTick(x - part->tick());
+ event.setLenTick(w);
+ event.setPitch(y2pitch(item->y()));
+
+ song->startUndo();
+ int modified=SC_EVENT_MODIFIED;
+ int diff = event.endTick()-part->lenTick();
+ if (diff > 0) {// too short part? extend it
+ //printf("extend Part!\n");
+ Part* newPart = part->clone();
+ newPart->setLenTick(newPart->lenTick()+diff);
+ // Indicate no undo, and do port controller values but not clone parts.
+ //audio->msgChangePart(part, newPart,false);
+ audio->msgChangePart(part, newPart, false, true, false);
+ modified=modified|SC_PART_MODIFIED;
+ part = newPart; // reassign
+ }
+ // Indicate no undo, and do not do port controller values and clone parts.
+ //audio->msgAddEvent(event, part,false);
+ audio->msgAddEvent(event, part, false, false, false);
+ song->endUndo(modified);
+ }
+
+//---------------------------------------------------------
+// resizeItem
+//---------------------------------------------------------
+
+void PianoCanvas::resizeItem(CItem* item, bool noSnap) // experimental changes to try dynamically extending parts
+ {
+ //printf("resizeItem!\n");
+ NEvent* nevent = (NEvent*) item;
+ Event event = nevent->event();
+ Event newEvent = event.clone();
+ int len;
+
+ Part* part = nevent->part();
+
+ if (noSnap)
+ len = nevent->width();
+ else {
+ //Part* part = nevent->part();
+ unsigned tick = event.tick() + part->tick();
+ len = editor->rasterVal(tick + nevent->width()) - tick;
+ if (len <= 0)
+ len = editor->raster();
+ }
+ song->startUndo();
+ int modified=SC_EVENT_MODIFIED;
+ //printf("event.tick()=%d len=%d part->lenTick()=%d\n",event.endTick(),len,part->lenTick());
+ int diff = event.tick()+len-part->lenTick();
+ if (diff > 0) {// too short part? extend it
+ //printf("extend Part!\n");
+ Part* newPart = part->clone();
+ newPart->setLenTick(newPart->lenTick()+diff);
+ // Indicate no undo, and do port controller values but not clone parts.
+ //audio->msgChangePart(part, newPart,false);
+ audio->msgChangePart(part, newPart, false, true, false);
+ modified=modified|SC_PART_MODIFIED;
+ part = newPart; // reassign
+ }
+
+ newEvent.setLenTick(len);
+ // Indicate no undo, and do not do port controller values and clone parts.
+ //audio->msgChangeEvent(event, newEvent, nevent->part(),false);
+ audio->msgChangeEvent(event, newEvent, nevent->part(), false, false, false);
+ song->endUndo(modified);
+ }
+
+//---------------------------------------------------------
+// deleteItem
+//---------------------------------------------------------
+
+bool PianoCanvas::deleteItem(CItem* item)
+ {
+ NEvent* nevent = (NEvent*) item;
+ if (nevent->part() == curPart) {
+ Event ev = nevent->event();
+ // Indicate do undo, and do not do port controller values and clone parts.
+ //audio->msgDeleteEvent(ev, curPart);
+ audio->msgDeleteEvent(ev, curPart, true, false, false);
+ return true;
+ }
+ return false;
+ }
+
+//---------------------------------------------------------
+// pianoCmd
+//---------------------------------------------------------
+
+void PianoCanvas::pianoCmd(int cmd)
+ {
+ switch(cmd) {
+ case CMD_LEFT:
+ {
+ int frames = pos[0] - editor->rasterStep(pos[0]);
+ if (frames < 0)
+ frames = 0;
+ Pos p(frames,true);
+ song->setPos(0, p, true, true, true); //CDW
+ }
+ break;
+ case CMD_RIGHT:
+ {
+ Pos p(pos[0] + editor->rasterStep(pos[0]), true);
+ //if (p > part->tick())
+ // p = part->tick();
+ song->setPos(0, p, true, true, true); //CDW
+ }
+ break;
+ case CMD_INSERT:
+ {
+ if (pos[0] < start() || pos[0] >= end())
+ break;
+ MidiPart* part = (MidiPart*)curPart;
+
+ if (part == 0)
+ break;
+ song->startUndo();
+ EventList* el = part->events();
+
+ std::list <Event> elist;
+ for (iEvent e = el->lower_bound(pos[0] - 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());// - part->tick());
+ // Indicate no undo, and do not do port controller values and clone parts.
+ //audio->msgChangeEvent(event, newEvent, part, false);
+ audio->msgChangeEvent(event, newEvent, part, false, false, false);
+ }
+ song->endUndo(SC_EVENT_MODIFIED);
+ Pos p(editor->rasterVal(pos[0] + editor->rasterStep(pos[0])), true);
+ song->setPos(0, p, true, false, true);
+ }
+ return;
+ case CMD_DELETE:
+ if (pos[0] < start() || pos[0] >= end())
+ break;
+ {
+ MidiPart* part = (MidiPart*)curPart;
+ if (part == 0)
+ break;
+ song->startUndo();
+ EventList* el = part->events();
+
+ std::list<Event> elist;
+ for (iEvent e = el->lower_bound(pos[0]); 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());
+ // Indicate no undo, and do not do port controller values and clone parts.
+ //audio->msgChangeEvent(event, newEvent, part, false);
+ audio->msgChangeEvent(event, newEvent, part, false, false, false);
+ }
+ song->endUndo(SC_EVENT_MODIFIED);
+ Pos p(editor->rasterVal(pos[0] - editor->rasterStep(pos[0])), true);
+ song->setPos(0, p, true, false, true);
+ }
+ break;
+ }
+ }
+
+//---------------------------------------------------------
+// pianoPressed
+//---------------------------------------------------------
+
+void PianoCanvas::pianoPressed(int pitch, int velocity, bool shift)
+ {
+ int port = track()->outPort();
+ int channel = track()->outChannel();
+ pitch += track()->transposition;
+
+ // play note:
+ //MidiPlayEvent e(0, port, channel, 0x90, pitch, 127);
+ MidiPlayEvent e(0, port, channel, 0x90, pitch, velocity);
+ audio->msgPlayMidiEvent(&e);
+
+ if (_steprec && pos[0] >= start_tick && pos[0] < end_tick) {
+ if (curPart == 0)
+ return;
+ int len = editor->raster();
+ unsigned tick = pos[0] - curPart->tick(); //CDW
+ if (shift)
+ tick -= editor->rasterStep(tick);
+ Event e(Note);
+ e.setTick(tick);
+ e.setPitch(pitch);
+ e.setVelo(127);
+ e.setLenTick(len);
+ // Indicate do undo, and do not do port controller values and clone parts.
+ //audio->msgAddEvent(e, curPart);
+ audio->msgAddEvent(e, curPart, true, false, false);
+ tick += editor->rasterStep(tick) + curPart->tick();
+ if (tick != song->cpos()) {
+ Pos p(tick, true);
+ song->setPos(0, p, true, false, true);
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// pianoReleased
+//---------------------------------------------------------
+
+void PianoCanvas::pianoReleased(int pitch, bool)
+ {
+ int port = track()->outPort();
+ int channel = track()->outChannel();
+ pitch += track()->transposition;
+
+ // release key:
+ MidiPlayEvent e(0, port, channel, 0x90, pitch, 0);
+ audio->msgPlayMidiEvent(&e);
+ }
+
+//---------------------------------------------------------
+// drawTickRaster
+//---------------------------------------------------------
+
+void drawTickRaster(QPainter& p, int x, int y, int w, int h, int raster)
+ {
+ int bar1, bar2, beat;
+ unsigned tick;
+ sigmap.tickValues(x, &bar1, &beat, &tick);
+ sigmap.tickValues(x+w, &bar2, &beat, &tick);
+ ++bar2;
+ int y2 = y + h;
+ for (int bar = bar1; bar < bar2; ++bar) {
+ unsigned x = sigmap.bar2tick(bar, 0, 0);
+ p.setPen(Qt::black);
+ p.drawLine(x, y, x, y2);
+ int z, n;
+ sigmap.timesig(x, z, n);
+ int q = p.xForm(QPoint(raster, 0)).x() - p.xForm(QPoint(0, 0)).x();
+ int qq = raster;
+ if (q < 8) // grid too dense
+ qq *= 2;
+ //switch (quant) {
+ // case 32:
+ // case 48:
+ // case 64:
+ // case 96:
+ // case 192: // 8tel
+ // case 128: // 8tel Triolen
+ // case 288:
+ p.setPen(Qt::lightGray);
+ if (raster>=4) {
+ int xx = x + qq;
+ int xxx = sigmap.bar2tick(bar, z, 0);
+ while (xx <= xxx) {
+ p.drawLine(xx, y, xx, y2);
+ xx += qq;
+ }
+ xx = xxx;
+ }
+ // break;
+ // default:
+ // break;
+ // }
+ p.setPen(Qt::gray);
+ for (int beat = 1; beat < z; beat++) {
+ int xx = sigmap.bar2tick(bar, beat, 0);
+ p.drawLine(xx, y, xx, y2);
+ }
+
+ }
+ }
+
+//---------------------------------------------------------
+// draw
+//---------------------------------------------------------
+
+void PianoCanvas::drawCanvas(QPainter& p, const QRect& rect)
+ {
+ int x = rect.x();
+ int y = rect.y();
+ int w = rect.width();
+ int h = rect.height();
+
+ //---------------------------------------------------
+ // horizontal lines
+ //---------------------------------------------------
+
+ int yy = ((y-1) / KH) * KH + KH;
+ int key = 75 - (yy / KH);
+ for (; yy < y + h; yy += KH) {
+ switch (key % 7) {
+ case 0:
+ case 3:
+ p.setPen(Qt::black);
+ p.drawLine(x, yy, x + w, yy);
+ break;
+ default:
+ //p.setPen(lightGray);
+ p.fillRect(x, yy-3, w, 6, QBrush(QColor(230,230,230)));
+ //p.drawLine(x, yy, x + w, yy);
+ break;
+ }
+ --key;
+ }
+
+ //---------------------------------------------------
+ // vertical lines
+ //---------------------------------------------------
+
+ drawTickRaster(p, x, y, w, h, editor->raster());
+ }
+
+//---------------------------------------------------------
+// cmd
+// pulldown menu commands
+//---------------------------------------------------------
+
+void PianoCanvas::cmd(int cmd, int quantStrength,
+ int quantLimit, bool quantLen, int range)
+ {
+ cmdRange = range;
+ switch (cmd) {
+ case CMD_CUT:
+ copy();
+ song->startUndo();
+ for (iCItem i = items.begin(); i != items.end(); ++i) {
+ if (!(i->second->isSelected()))
+ continue;
+ NEvent* e = (NEvent*)(i->second);
+ Event ev = e->event();
+ // Indicate no undo, and do not do port controller values and clone parts.
+ //audio->msgDeleteEvent(ev, e->part(), false);
+ audio->msgDeleteEvent(ev, e->part(), false, false, false);
+ }
+ song->endUndo(SC_EVENT_REMOVED);
+ break;
+ case CMD_COPY:
+ copy();
+ break;
+ case CMD_PASTE:
+ paste();
+ break;
+ case CMD_DEL:
+ if (selectionSize()) {
+ song->startUndo();
+ for (iCItem i = items.begin(); i != items.end(); ++i) {
+ if (!i->second->isSelected())
+ continue;
+ Event ev = i->second->event();
+ // Indicate no undo, and do not do port controller values and clone parts.
+ //audio->msgDeleteEvent(ev, i->second->part(), false);
+ audio->msgDeleteEvent(ev, i->second->part(), false, false, false);
+ }
+ song->endUndo(SC_EVENT_REMOVED);
+ }
+ return;
+ case CMD_OVER_QUANTIZE: // over quantize
+ quantize(100, 1, quantLen);
+ break;
+ case CMD_ON_QUANTIZE: // note on quantize
+ quantize(50, 1, false);
+ break;
+ case CMD_ONOFF_QUANTIZE: // note on/off quantize
+ quantize(50, 1, true);
+ break;
+ case CMD_ITERATIVE_QUANTIZE: // Iterative Quantize
+ quantize(quantStrength, quantLimit, quantLen);
+ break;
+ case CMD_SELECT_ALL: // select all
+ for (iCItem k = items.begin(); k != items.end(); ++k) {
+ if (!k->second->isSelected())
+ selectItem(k->second, true);
+ }
+ break;
+ case CMD_SELECT_NONE: // select none
+ deselectAll();
+ break;
+ case CMD_SELECT_INVERT: // invert selection
+ for (iCItem k = items.begin(); k != items.end(); ++k) {
+ selectItem(k->second, !k->second->isSelected());
+ }
+ break;
+ case CMD_SELECT_ILOOP: // select inside loop
+ for (iCItem k = items.begin(); k != items.end(); ++k) {
+ NEvent* nevent = (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);
+ }
+ break;
+ case CMD_SELECT_OLOOP: // select outside loop
+ for (iCItem k = items.begin(); k != items.end(); ++k) {
+ NEvent* nevent = (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);
+ }
+ break;
+ case CMD_SELECT_PREV_PART: // select previous part
+ {
+ Part* pt = editor->curCanvasPart();
+ Part* newpt = pt;
+ PartList* pl = editor->parts();
+ for(iPart ip = pl->begin(); ip != pl->end(); ++ip)
+ if(ip->second == pt)
+ {
+ if(ip == pl->begin())
+ ip = pl->end();
+ --ip;
+ newpt = ip->second;
+ break;
+ }
+ if(newpt != pt)
+ editor->setCurCanvasPart(newpt);
+ }
+ break;
+ case CMD_SELECT_NEXT_PART: // select next part
+ {
+ Part* pt = editor->curCanvasPart();
+ Part* newpt = pt;
+ PartList* pl = editor->parts();
+ for(iPart ip = pl->begin(); ip != pl->end(); ++ip)
+ if(ip->second == pt)
+ {
+ ++ip;
+ if(ip == pl->end())
+ ip = pl->begin();
+ newpt = ip->second;
+ break;
+ }
+ if(newpt != pt)
+ editor->setCurCanvasPart(newpt);
+ }
+ break;
+ case CMD_MODIFY_GATE_TIME:
+ {
+ GateTime w(this);
+ w.setRange(range);
+ if (!w.exec())
+ break;
+ int range = w.range(); // all, selected, looped, sel+loop
+ int rate = w.rateVal();
+ int offset = w.offsetVal();
+
+ song->startUndo();
+ for (iCItem k = items.begin(); k != items.end(); ++k) {
+ NEvent* nevent =(NEvent*)(k->second);
+ Event event = nevent->event();
+ if (event.type() != Note)
+ continue;
+ unsigned tick = event.tick();
+ bool selected = k->second->isSelected();
+ bool inLoop = (tick >= song->lpos()) && (tick < song->rpos());
+
+ if ((range == 0)
+ || (range == 1 && selected)
+ || (range == 2 && inLoop)
+ || (range == 3 && selected && inLoop)) {
+ unsigned int len = event.lenTick(); //prevent compiler warning: comparison singed/unsigned
+
+ len = rate ? (len * 100) / rate : 1;
+ len += offset;
+ if (len < 1)
+ len = 1;
+
+ if (event.lenTick() != len) {
+ Event newEvent = event.clone();
+ newEvent.setLenTick(len);
+ // Indicate no undo, and do not do port controller values and clone parts.
+ //audio->msgChangeEvent(event, newEvent, nevent->part(), false);
+ audio->msgChangeEvent(event, newEvent, nevent->part(), false, false, false);
+ }
+ }
+ }
+ song->endUndo(SC_EVENT_MODIFIED);
+ }
+ break;
+
+ case CMD_MODIFY_VELOCITY:
+ {
+ Velocity w(this);
+ w.setRange(range);
+ if (!w.exec())
+ break;
+ int range = w.range(); // all, selected, looped, sel+loop
+ int rate = w.rateVal();
+ int offset = w.offsetVal();
+
+ song->startUndo();
+ for (iCItem k = items.begin(); k != items.end(); ++k) {
+ NEvent* nevent = (NEvent*)(k->second);
+ Event event = nevent->event();
+ if (event.type() != Note)
+ continue;
+ unsigned tick = event.tick();
+ bool selected = k->second->isSelected();
+ bool inLoop = (tick >= song->lpos()) && (tick < song->rpos());
+
+ if ((range == 0)
+ || (range == 1 && selected)
+ || (range == 2 && inLoop)
+ || (range == 3 && 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);
+ // Indicate no undo, and do not do port controller values and clone parts.
+ //audio->msgChangeEvent(event, newEvent, nevent->part(), false);
+ audio->msgChangeEvent(event, newEvent, nevent->part(), false, false, false);
+ }
+ }
+ }
+ song->endUndo(SC_EVENT_MODIFIED);
+ }
+ break;
+
+ case CMD_FIXED_LEN: //Set notes to the length specified in the drummap
+ if (!selectionSize())
+ break;
+ song->startUndo();
+ for (iCItem k = items.begin(); k != items.end(); ++k) {
+ if (k->second->isSelected()) {
+ NEvent* nevent = (NEvent*)(k->second);
+ Event event = nevent->event();
+ Event newEvent = event.clone();
+ newEvent.setLenTick(editor->raster());
+ // Indicate no undo, and do not do port controller values and clone parts.
+ //audio->msgChangeEvent(event, newEvent, nevent->part() , false);
+ audio->msgChangeEvent(event, newEvent, nevent->part(), false, false, false);
+ }
+ }
+ song->endUndo(SC_EVENT_MODIFIED);
+ break;
+
+ case CMD_DELETE_OVERLAPS:
+ if (!selectionSize())
+ break;
+
+ song->startUndo();
+ for (iCItem k = items.begin(); k != items.end(); k++) {
+ if (k->second->isSelected() == false)
+ continue;
+
+ NEvent* e1 = (NEvent*) (k->second); // first note
+ NEvent* e2 = NULL; // ptr to next selected note (which will be checked for overlap)
+ Event ce1 = e1->event();
+ Event ce2;
+
+ if (ce1.type() != Note)
+ continue;
+
+ // Find next selected item on the same pitch
+ iCItem l = k; l++;
+ for (; l != items.end(); l++) {
+ if (l->second->isSelected() == false)
+ continue;
+
+ e2 = (NEvent*) l->second;
+ ce2 = e2->event();
+
+ // Same pitch?
+ if (ce1.dataA() == ce2.dataA())
+ break;
+
+ // If the note has the same len and place we treat it as a duplicate note and not a following note
+ // The best thing to do would probably be to delete the duplicate note, we just want to avoid
+ // matching against the same note
+ if ( ce1.tick() + e1->part()->tick() == ce2.tick() + e2->part()->tick()
+ && ce1.lenTick() + e1->part()->tick() == ce2.lenTick() + e2->part()->tick())
+ {
+ e2 = NULL; // this wasn't what we were looking for
+ continue;
+ }
+
+ }
+
+ if (e2 == NULL) // None found
+ break;
+
+ Part* part1 = e1->part();
+ Part* part2 = e2->part();
+ if (ce2.type() != Note)
+ continue;
+
+
+ unsigned event1pos = ce1.tick() + part1->tick();
+ unsigned event1end = event1pos + ce1.lenTick();
+ unsigned event2pos = ce2.tick() + part2->tick();
+
+ //printf("event1pos %u event1end %u event2pos %u\n", event1pos, event1end, event2pos);
+ if (event1end > event2pos) {
+ Event newEvent = ce1.clone();
+ unsigned newlen = ce1.lenTick() - (event1end - event2pos);
+ //printf("newlen: %u\n", newlen);
+ newEvent.setLenTick(newlen);
+ // Indicate no undo, and do not do port controller values and clone parts.
+ //audio->msgChangeEvent(ce1, newEvent, e1->part(), false);
+ audio->msgChangeEvent(ce1, newEvent, e1->part(), false, false, false);
+ }
+ }
+ song->endUndo(SC_EVENT_MODIFIED);
+ break;
+
+
+ case CMD_CRESCENDO:
+ case CMD_TRANSPOSE:
+ case CMD_THIN_OUT:
+ case CMD_ERASE_EVENT:
+ case CMD_NOTE_SHIFT:
+ case CMD_MOVE_CLOCK:
+ case CMD_COPY_MEASURE:
+ case CMD_ERASE_MEASURE:
+ case CMD_DELETE_MEASURE:
+ case CMD_CREATE_MEASURE:
+ break;
+ default:
+// printf("unknown ecanvas cmd %d\n", cmd);
+ break;
+ }
+ updateSelection();
+ redraw();
+ }
+
+//---------------------------------------------------------
+// quantize
+//---------------------------------------------------------
+
+void PianoCanvas::quantize(int strength, int limit, bool quantLen)
+ {
+ song->startUndo();
+ for (iCItem k = items.begin(); k != items.end(); ++k) {
+ NEvent* nevent = (NEvent*)(k->second);
+ Event event = nevent->event();
+ Part* part = nevent->part();
+ if (event.type() != Note)
+ continue;
+
+ if ((cmdRange & CMD_RANGE_SELECTED) && !k->second->isSelected())
+ continue;
+
+ unsigned tick = event.tick() + part->tick();
+
+ if ((cmdRange & CMD_RANGE_LOOP)
+ && ((tick < song->lpos() || tick >= song->rpos())))
+ continue;
+
+ unsigned int len = event.lenTick(); //prevent compiler warning: comparison singed/unsigned
+ int tick2 = tick + len;
+
+ // quant start position
+ int diff = sigmap.raster(tick, editor->quant()) - tick;
+ if (abs(diff) > limit)
+ tick += ((diff * strength) / 100);
+
+ // quant len
+ diff = sigmap.raster(tick2, editor->quant()) - 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);
+ // Indicate no undo, and do not do port controller values and clone parts.
+ //audio->msgChangeEvent(event, newEvent, part, false);
+ audio->msgChangeEvent(event, newEvent, part, false, false, false);
+ }
+ }
+ song->endUndo(SC_EVENT_MODIFIED);
+ }
+
+//---------------------------------------------------------
+// midiNote
+//---------------------------------------------------------
+
+void PianoCanvas::midiNote(int pitch, int velo)
+ {
+ if (_midiin && _steprec && curPart
+ && !audio->isPlaying() && velo && pos[0] >= start_tick
+ && pos[0] < end_tick
+ && !(globalKeyState & Qt::AltButton)) {
+ unsigned int len = editor->quant();//prevent compiler warning: comparison singed/unsigned
+ unsigned tick = pos[0]; //CDW
+ unsigned starttick = tick;
+ if (globalKeyState & Qt::ShiftButton)
+ tick -= editor->rasterStep(tick);
+
+ //
+ // extend len of last note?
+ //
+ EventList* events = curPart->events();
+ if (globalKeyState & Qt::ControlButton) {
+ 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()) == /*(int)*/starttick)) {
+ Event e = ev.clone();
+ e.setLenTick(ev.lenTick() + editor->rasterStep(starttick));
+ // Indicate do undo, and do not do port controller values and clone parts.
+ //audio->msgChangeEvent(ev, e, curPart);
+ audio->msgChangeEvent(ev, e, curPart, true, false, false);
+ tick += editor->rasterStep(tick);
+ if (tick != song->cpos()) {
+ Pos p(tick, true);
+ 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) {
+ // Indicate do undo, and do not do port controller values and clone parts.
+ //audio->msgDeleteEvent(ev, curPart);
+ audio->msgDeleteEvent(ev, curPart, true, false, false);
+ if (globalKeyState & Qt::ShiftButton)
+ tick += editor->rasterStep(tick);
+ return;
+ }
+ }
+ Event e(Note);
+ e.setTick(tick - curPart->tick());
+ e.setPitch(pitch);
+ e.setVelo(velo);
+ e.setLenTick(len);
+ // Indicate do undo, and do not do port controller values and clone parts.
+ //audio->msgAddEvent(e, curPart);
+ audio->msgAddEvent(e, curPart, true, false, false);
+ tick += editor->rasterStep(tick);
+ if (tick != song->cpos()) {
+ Pos p(tick, true);
+ song->setPos(0, p, true, false, true);
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// getTextDrag
+//---------------------------------------------------------
+
+Q3TextDrag* PianoCanvas::getTextDrag(QWidget* parent)
+ {
+ //---------------------------------------------------
+ // generate event list from selected events
+ //---------------------------------------------------
+
+ EventList el;
+ unsigned startTick = MAXINT;
+ for (iCItem i = items.begin(); i != items.end(); ++i) {
+ if (!i->second->isSelected())
+ continue;
+ NEvent* ne = (NEvent*)(i->second);
+ Event e = ne->event();
+ if (startTick == MAXINT)
+ startTick = e.tick();
+ el.add(e);
+ }
+
+ //---------------------------------------------------
+ // write events as XML into tmp file
+ //---------------------------------------------------
+
+ FILE* tmp = tmpfile();
+ if (tmp == 0) {
+ fprintf(stderr, "PianoCanvas::copy() fopen failed: %s\n",
+ strerror(errno));
+ return 0;
+ }
+ Xml xml(tmp);
+
+ int level = 0;
+ xml.tag(level++, "eventlist");
+ for (ciEvent e = el.begin(); e != el.end(); ++e)
+ e->second.write(level, xml, -startTick);
+ xml.etag(--level, "eventlist");
+
+ //---------------------------------------------------
+ // read tmp file into QTextDrag Object
+ //---------------------------------------------------
+
+ fflush(tmp);
+ struct stat f_stat;
+ if (fstat(fileno(tmp), &f_stat) == -1) {
+ fprintf(stderr, "PianoCanvas::copy() fstat failes:<%s>\n",
+ strerror(errno));
+ fclose(tmp);
+ return 0;
+ }
+ int n = f_stat.st_size;
+ char* fbuf = (char*)mmap(0, n+1, PROT_READ|PROT_WRITE,
+ MAP_PRIVATE, fileno(tmp), 0);
+ fbuf[n] = 0;
+ Q3TextDrag* drag = new Q3TextDrag(QString(fbuf), parent);
+ drag->setSubtype("eventlist");
+ munmap(fbuf, n);
+ fclose(tmp);
+ return drag;
+ }
+
+//---------------------------------------------------------
+// copy
+// cut copy paste
+//---------------------------------------------------------
+
+void PianoCanvas::copy()
+ {
+ Q3TextDrag* drag = getTextDrag(0);
+ if (drag)
+ QApplication::clipboard()->setData(drag, QClipboard::Clipboard);
+ }
+
+//---------------------------------------------------------
+// paste
+//---------------------------------------------------------
+
+void PianoCanvas::pasteAt(const QString& pt, int pos)
+ {
+ const char* p = pt.latin1();
+ Xml xml(p);
+ 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 == "eventlist") {
+ song->startUndo();
+ EventList* el = new EventList();
+ el->read(xml, "eventlist", true);
+ int modified = SC_EVENT_INSERTED;
+ for (iEvent i = el->begin(); i != el->end(); ++i) {
+ Event e = i->second;
+ int tick = e.tick() + pos - curPart->tick();
+ if (tick<0) {
+ printf("ERROR: trying to add event before current part!\n");
+ song->endUndo(SC_EVENT_INSERTED);
+ delete el;
+ return;
+ }
+
+ e.setTick(tick);
+ int diff = e.endTick()-curPart->lenTick();
+ if (diff > 0) {// too short part? extend it
+ Part* newPart = curPart->clone();
+ newPart->setLenTick(newPart->lenTick()+diff);
+ // Indicate no undo, and do port controller values but not clone parts.
+ //audio->msgChangePart(curPart, newPart,false);
+ audio->msgChangePart(curPart, newPart, false, true, false);
+ modified=modified|SC_PART_MODIFIED;
+ curPart = newPart; // reassign
+ }
+ // Indicate no undo, and do not do port controller values and clone parts.
+ //audio->msgAddEvent(e, curPart, false);
+ audio->msgAddEvent(e, curPart, false, false, false);
+ }
+ song->endUndo(modified);
+ delete el;
+ return;
+ }
+ else
+ xml.unknown("pasteAt");
+ break;
+ case Xml::Attribut:
+ case Xml::TagEnd:
+ default:
+ break;
+ }
+ }
+ }
+//---------------------------------------------------------
+// paste
+// paste events
+//---------------------------------------------------------
+
+void PianoCanvas::paste()
+ {
+ //Q3CString subtype("eventlist"); ddskrjo
+ QString subtype("eventlist");
+ QMimeSource* ms = QApplication::clipboard()->data(QClipboard::Clipboard);
+ QString pt;
+ if (!Q3TextDrag::decode(ms, pt, subtype)) {
+ printf("cannot paste: bad data type\n");
+ return;
+ }
+ pasteAt(pt, song->cpos());
+ }
+
+//---------------------------------------------------------
+// startDrag
+//---------------------------------------------------------
+
+void PianoCanvas::startDrag(CItem* /* item*/, bool copymode)
+ {
+ Q3TextDrag* drag = getTextDrag(this);
+ if (drag) {
+// QApplication::clipboard()->setData(drag, QClipboard::Clipboard);
+
+ if (copymode)
+ drag->dragCopy();
+ else
+ drag->dragMove();
+ }
+ }
+
+//---------------------------------------------------------
+// dragEnterEvent
+//---------------------------------------------------------
+
+void PianoCanvas::dragEnterEvent(QDragEnterEvent* event)
+ {
+ event->accept(Q3TextDrag::canDecode(event));
+ }
+
+//---------------------------------------------------------
+// dragMoveEvent
+//---------------------------------------------------------
+
+void PianoCanvas::dragMoveEvent(QDragMoveEvent*)
+ {
+// printf("drag move %x\n", this);
+ }
+
+//---------------------------------------------------------
+// dragLeaveEvent
+//---------------------------------------------------------
+
+void PianoCanvas::dragLeaveEvent(QDragLeaveEvent*)
+ {
+// printf("drag leave\n");
+ }
+
+//---------------------------------------------------------
+// dropEvent
+//---------------------------------------------------------
+
+void PianoCanvas::viewDropEvent(QDropEvent* event)
+ {
+ 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");
+ }
+ }
+
+//---------------------------------------------------------
+// itemPressed
+//---------------------------------------------------------
+
+void PianoCanvas::itemPressed(const CItem* item)
+ {
+ if (!_playEvents)
+ return;
+
+ int port = track()->outPort();
+ int channel = track()->outChannel();
+ NEvent* nevent = (NEvent*) item;
+ Event event = nevent->event();
+ playedPitch = event.pitch() + track()->transposition;
+ int velo = event.velo();
+
+ // play note:
+ MidiPlayEvent e(0, port, channel, 0x90, playedPitch, velo);
+ audio->msgPlayMidiEvent(&e);
+ }
+
+//---------------------------------------------------------
+// itemReleased
+//---------------------------------------------------------
+
+void PianoCanvas::itemReleased(const CItem*, const QPoint&)
+ {
+ if (!_playEvents)
+ return;
+ int port = track()->outPort();
+ int channel = track()->outChannel();
+
+ // release note:
+ MidiPlayEvent ev(0, port, channel, 0x90, playedPitch, 0);
+ audio->msgPlayMidiEvent(&ev);
+ playedPitch = -1;
+ }
+
+//---------------------------------------------------------
+// itemMoved
+//---------------------------------------------------------
+
+void PianoCanvas::itemMoved(const CItem* item, const QPoint& pos)
+ {
+ int npitch = y2pitch(pos.y());
+ if ((playedPitch != -1) && (playedPitch != npitch)) {
+ int port = track()->outPort();
+ int channel = track()->outChannel();
+ NEvent* nevent = (NEvent*) item;
+ Event event = nevent->event();
+
+ // release note:
+ MidiPlayEvent ev1(0, port, channel, 0x90, playedPitch, 0);
+ audio->msgPlayMidiEvent(&ev1);
+ // play note:
+ MidiPlayEvent e2(0, port, channel, 0x90, npitch + track()->transposition, event.velo());
+ audio->msgPlayMidiEvent(&e2);
+ playedPitch = npitch + track()->transposition;
+ }
+ }
+
+//---------------------------------------------------------
+// curPartChanged
+//---------------------------------------------------------
+
+void PianoCanvas::curPartChanged()
+ {
+ editor->setCaption(getCaption());
+ }
+
+//---------------------------------------------------------
+// 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;
+ NEvent* e = (NEvent*)(i->second);
+ Event event = e->event();
+ if (event.type() != Note)
+ continue;
+
+ MidiPart* part = (MidiPart*)(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);
+ // Indicate do not do port controller values and clone parts.
+ //song->undoOp(UndoOp::ModifyEvent, newEvent, event, part);
+ song->undoOp(UndoOp::ModifyEvent, newEvent, event, part, false, false);
+ }
+ song->endUndo(SC_EVENT_MODIFIED);
+ audio->msgIdle(false);
+ }
+
diff --git a/muse2/muse/midiedit/prcanvas.h b/muse2/muse/midiedit/prcanvas.h
new file mode 100644
index 00000000..2f50be2e
--- /dev/null
+++ b/muse2/muse/midiedit/prcanvas.h
@@ -0,0 +1,113 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: prcanvas.h,v 1.5.2.6 2009/11/16 11:29:33 lunar_shuttle Exp $
+// (C) Copyright 1999 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __PRCANVAS_H__
+#define __PRCANVAS_H__
+
+#include "ecanvas.h"
+#include "pianoroll.h"
+//Added by qt3to4:
+#include <QDragEnterEvent>
+#include <QDropEvent>
+#include <QMouseEvent>
+#include <QDragMoveEvent>
+#include <QDragLeaveEvent>
+
+#define KH 13
+
+//---------------------------------------------------------
+// NEvent
+// ''visual'' Note Event
+//---------------------------------------------------------
+
+class NEvent : public CItem {
+ public:
+ NEvent(Event& e, Part* p, int y);
+ };
+
+class ScrollScale;
+class PianoRoll;
+class Q3TextDrag;
+class QRect;
+
+//---------------------------------------------------------
+// PianoCanvas
+//---------------------------------------------------------
+
+class PianoCanvas : public EventCanvas {
+ int cmdRange;
+ int colorMode;
+ int playedPitch;
+
+ Q_OBJECT
+ virtual void viewMouseDoubleClickEvent(QMouseEvent*);
+ virtual void drawItem(QPainter&, const CItem*, const QRect&);
+ virtual void drawMoving(QPainter&, const CItem*, const QRect&);
+ virtual void moveCanvasItems(CItemList&, int, int, DragType, int*);
+ // Changed by T356.
+ //virtual bool moveItem(CItem*, const QPoint&, DragType, int*);
+ virtual bool moveItem(CItem*, const QPoint&, 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 addItem(Part*, Event&);
+
+ int y2pitch(int) const;
+ int pitch2y(int) const;
+ virtual void drawCanvas(QPainter&, const QRect&);
+ void quantize(int, int, bool);
+ void copy();
+ void paste();
+ void pasteAt(const QString& pt, int pos);
+ Q3TextDrag* getTextDrag(QWidget*);
+ virtual void itemPressed(const CItem*);
+ virtual void itemReleased(const CItem*, const QPoint&);
+ virtual void itemMoved(const CItem*, const QPoint&);
+ virtual void curPartChanged();
+
+ private slots:
+ void midiNote(int pitch, int velo);
+
+ signals:
+ void quantChanged(int);
+ void rasterChanged(int);
+
+ public slots:
+ void pianoCmd(int);
+ void pianoPressed(int pitch, int velocity, bool shift);
+ void pianoReleased(int pitch, bool);
+
+ public:
+ enum {
+ CMD_CUT, CMD_COPY, CMD_PASTE, CMD_DEL,
+ CMD_OVER_QUANTIZE, CMD_ON_QUANTIZE, CMD_ONOFF_QUANTIZE,
+ CMD_ITERATIVE_QUANTIZE,
+ CMD_SELECT_ALL, CMD_SELECT_NONE, CMD_SELECT_INVERT,
+ CMD_SELECT_ILOOP, CMD_SELECT_OLOOP, CMD_SELECT_PREV_PART, CMD_SELECT_NEXT_PART,
+ CMD_MODIFY_GATE_TIME, CMD_MODIFY_VELOCITY,
+ CMD_CRESCENDO, CMD_TRANSPOSE, CMD_THIN_OUT, CMD_ERASE_EVENT,
+ CMD_NOTE_SHIFT, CMD_MOVE_CLOCK, CMD_COPY_MEASURE,
+ CMD_ERASE_MEASURE, CMD_DELETE_MEASURE, CMD_CREATE_MEASURE,
+ CMD_FIXED_LEN, CMD_DELETE_OVERLAPS
+ };
+
+ PianoCanvas(MidiEditor*, QWidget*, int, int);
+ void cmd(int, int, int, bool, int);
+ void setColorMode(int mode) {
+ colorMode = mode;
+ redraw();
+ }
+ virtual void modifySelected(NoteInfo::ValType type, int delta);
+ };
+#endif
+
diff --git a/muse2/muse/midiedit/quantconfig.cpp b/muse2/muse/midiedit/quantconfig.cpp
new file mode 100644
index 00000000..f00b713f
--- /dev/null
+++ b/muse2/muse/midiedit/quantconfig.cpp
@@ -0,0 +1,59 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: quantconfig.cpp,v 1.2 2004/04/24 14:58:52 wschweer Exp $
+//
+// (C) Copyright 1999/2003 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include <qspinbox.h>
+#include <qlayout.h>
+#include <qlabel.h>
+#include <qradiobutton.h>
+#include <q3groupbox.h>
+#include <q3whatsthis.h>
+
+#include "quantconfig.h"
+//Added by qt3to4:
+#include <Q3VBoxLayout>
+
+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)
+ : QDialog()
+ {
+ setCaption(tr("MusE: Config Quantize"));
+ Q3VBoxLayout* layout = new Q3VBoxLayout(this);
+ Q3GroupBox* gb = new Q3GroupBox(2, Qt::Horizontal, tr("Config Quantize"), this);
+ layout->addWidget(gb);
+
+ QLabel* l1 = new QLabel(tr("Strength"), gb);
+ QSpinBox* sb1 = new QSpinBox(0, 100, 1, gb);
+ sb1->setSuffix(QString("%"));
+ sb1->setValue(s);
+ QLabel* l2 = new QLabel(tr("Don´t Quantize"), gb);
+ QSpinBox* sb2 = new QSpinBox(0, 500, 1, gb);
+ sb2->setValue(l);
+ QLabel* l3 = new QLabel(tr("Quant Len"), gb);
+ QRadioButton* but = new QRadioButton(gb);
+ but->setChecked(lenFlag);
+ connect(sb1, SIGNAL(valueChanged(int)), SIGNAL(setQuantStrength(int)));
+ connect(sb2, SIGNAL(valueChanged(int)), SIGNAL(setQuantLimit(int)));
+ connect(but, SIGNAL(toggled(bool)), SIGNAL(setQuantLen(bool)));
+
+ Q3WhatsThis::add(l1, tr(wtStrengthTxt));
+ Q3WhatsThis::add(sb1, tr(wtStrengthTxt));
+ Q3WhatsThis::add(l2, tr(wtQLimitTxt));
+ Q3WhatsThis::add(sb2, tr(wtQLimitTxt));
+ Q3WhatsThis::add(l3, tr(wtQLenTxt));
+ Q3WhatsThis::add(but, tr(wtQLenTxt));
+ }
+
diff --git a/muse2/muse/midiedit/quantconfig.h b/muse2/muse/midiedit/quantconfig.h
new file mode 100644
index 00000000..31ab2285
--- /dev/null
+++ b/muse2/muse/midiedit/quantconfig.h
@@ -0,0 +1,32 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: quantconfig.h,v 1.1.1.1 2003/10/27 18:52:23 wschweer Exp $
+//
+// (C) Copyright 1999/2000 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __QCONFIG_H__
+#define __QCONFIG_H__
+
+#include <qdialog.h>
+
+//---------------------------------------------------------
+// QuantConfig
+//---------------------------------------------------------
+
+class QuantConfig : public QDialog {
+ Q_OBJECT
+
+ signals:
+ void setQuantStrength(int);
+ void setQuantLimit(int);
+ void setQuantLen(bool);
+
+ public:
+ QuantConfig(int, int, bool);
+ };
+
+
+#endif
+
diff --git a/muse2/muse/midieditor.cpp b/muse2/muse/midieditor.cpp
new file mode 100644
index 00000000..60a95643
--- /dev/null
+++ b/muse2/muse/midieditor.cpp
@@ -0,0 +1,237 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: midieditor.cpp,v 1.2.2.2 2009/02/02 21:38:00 terminator356 Exp $
+// (C) Copyright 1999 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include "midieditor.h"
+#include "midiedit/ecanvas.h"
+#include "waveedit/waveview.h"
+#include "scrollscale.h"
+#include "mtscale.h"
+#include <qlayout.h>
+#include <qrect.h>
+#include <qcolor.h>
+//Added by qt3to4:
+#include <Q3GridLayout>
+#include "xml.h"
+#include "part.h"
+#include "track.h"
+#include "song.h"
+
+//---------------------------------------------------------
+// MidiEditor
+//---------------------------------------------------------
+
+MidiEditor::MidiEditor(int q, int r, PartList* pl,
+ QWidget* parent, const char* name) : TopWin(parent, name)
+ {
+ _pl = pl;
+ if (_pl)
+ for (iPart i = _pl->begin(); i != _pl->end(); ++i)
+ _parts.push_back(i->second->sn());
+ _quant = q;
+ _raster = r;
+ canvas = 0;
+ wview = 0;
+ _curDrumInstrument = -1;
+ mainw = new QWidget(this);
+ mainGrid = new Q3GridLayout(mainw);
+ setCentralWidget(mainw);
+ }
+
+//---------------------------------------------------------
+// genPartlist
+//---------------------------------------------------------
+
+void MidiEditor::genPartlist()
+ {
+ _pl->clear();
+ for (std::list<int>::iterator i = _parts.begin(); i != _parts.end(); ++i) {
+ TrackList* tl = song->tracks();
+ for (iTrack it = tl->begin(); it != tl->end(); ++it) {
+ PartList* pl = (*it)->parts();
+ iPart ip;
+ for (ip = pl->begin(); ip != pl->end(); ++ip) {
+ if (ip->second->sn() == *i) {
+ _pl->add(ip->second);
+ break;
+ }
+ }
+ if (ip != pl->end())
+ break;
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// MidiEditor
+//---------------------------------------------------------
+
+MidiEditor::~MidiEditor()
+ {
+ if (_pl)
+ delete _pl;
+ }
+
+//---------------------------------------------------------
+// quantVal
+//---------------------------------------------------------
+
+int MidiEditor::quantVal(int v) const
+ {
+ int val = ((v+_quant/2)/_quant)*_quant;
+ if (val == 0)
+ val = _quant;
+ return val;
+ }
+
+//---------------------------------------------------------
+// readStatus
+//---------------------------------------------------------
+
+void MidiEditor::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;
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// writePartList
+//---------------------------------------------------------
+
+void MidiEditor::writePartList(int level, Xml& xml) const
+ {
+ for (ciPart p = _pl->begin(); p != _pl->end(); ++p) {
+ Part* part = p->second;
+ Track* track = part->track();
+ int trkIdx = song->tracks()->index(track);
+ int partIdx = track->parts()->index(part);
+
+ if((trkIdx == -1) || (partIdx == -1))
+ printf("MidiEditor::writePartList error: trkIdx:%d partIdx:%d\n", trkIdx, partIdx);
+
+ xml.put(level, "<part>%d:%d</part>", trkIdx, partIdx);
+ }
+ }
+
+//---------------------------------------------------------
+// writeStatus
+//---------------------------------------------------------
+
+void MidiEditor::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");
+ }
+
+//---------------------------------------------------------
+// songChanged
+//---------------------------------------------------------
+
+void MidiEditor::songChanged(int type)
+ {
+
+ if (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(false);
+ return;
+ }
+ }
+ if (canvas)
+ canvas->songChanged(type);
+ else if (wview)
+ wview->songChanged(type);
+
+ if (type & (SC_PART_REMOVED | SC_PART_MODIFIED
+ | SC_PART_INSERTED | SC_TRACK_REMOVED)) {
+
+ updateHScrollRange();
+ if (canvas)
+ setCaption(canvas->getCaption());
+ else if (wview)
+ setCaption(wview->getCaption());
+ if (type & SC_SIG)
+ time->update();
+
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// setCurDrumInstrument
+//---------------------------------------------------------
+
+void MidiEditor::setCurDrumInstrument(int instr)
+ {
+ _curDrumInstrument = instr;
+ emit curDrumInstrumentChanged(_curDrumInstrument);
+ }
+
+//---------------------------------------------------------
+// curCanvasPart
+//---------------------------------------------------------
+
+Part* MidiEditor::curCanvasPart()
+{
+ if(canvas)
+ return canvas->part();
+ else
+ return 0;
+}
+
+//---------------------------------------------------------
+// curWavePart
+//---------------------------------------------------------
+
+WavePart* MidiEditor::curWavePart()
+{
+ if(wview)
+ return wview->part();
+ else
+ return 0;
+}
+
+//---------------------------------------------------------
+// setCurCanvasPart
+//---------------------------------------------------------
+
+void MidiEditor::setCurCanvasPart(Part* part)
+{
+ if(canvas)
+ canvas->setCurrentPart(part);
+}
+
diff --git a/muse2/muse/midieditor.h b/muse2/muse/midieditor.h
new file mode 100644
index 00000000..16520698
--- /dev/null
+++ b/muse2/muse/midieditor.h
@@ -0,0 +1,86 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: midieditor.h,v 1.3.2.2 2009/02/02 21:38:00 terminator356 Exp $
+// (C) Copyright 1999 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __MIDIEDITOR_H__
+#define __MIDIEDITOR_H__
+
+#include "sig.h"
+#include "cobject.h"
+//Added by qt3to4:
+#include <Q3GridLayout>
+
+class PartList;
+class Xml;
+class Q3GridLayout;
+class QWidget;
+class QColor;
+class EventCanvas;
+class ScrollScale;
+class CtrlEdit;
+class MTScale;
+class WaveView;
+class Part;
+class WavePart;
+
+//---------------------------------------------------------
+// MidiEditor
+//---------------------------------------------------------
+
+class MidiEditor : public TopWin {
+ Q_OBJECT
+
+ PartList* _pl;
+ std::list<int> _parts;
+ int _curDrumInstrument; // currently selected instrument if drum
+ // editor
+ protected:
+ ScrollScale* hscroll;
+ ScrollScale* vscroll;
+ MTScale* time;
+ EventCanvas* canvas;
+ WaveView* wview;
+
+ std::list<CtrlEdit*> ctrlEditList;
+ int _quant, _raster;
+ Q3GridLayout* mainGrid;
+ QWidget* mainw;
+ virtual void readStatus(Xml&);
+ virtual void writeStatus(int, Xml&) const;
+ void writePartList(int, Xml&) const;
+ void genPartlist();
+
+ public slots:
+ void songChanged(int type);
+ void setCurDrumInstrument(int instr);
+
+ virtual void updateHScrollRange() { };
+ signals:
+ void curDrumInstrumentChanged(int);
+
+ public:
+ MidiEditor(int, int, PartList*,
+ QWidget* parent = 0, const char* name = 0);
+ ~MidiEditor();
+
+ int quantVal(int v) const;
+ int rasterStep(unsigned tick) const { return sigmap.rasterStep(tick, _raster); }
+ unsigned rasterVal(unsigned v) const { return sigmap.raster(v, _raster); }
+ unsigned rasterVal1(unsigned v) const { return sigmap.raster1(v, _raster); }
+ unsigned rasterVal2(unsigned v) const { return sigmap.raster2(v, _raster); }
+ int quant() const { return _quant; }
+ void setQuant(int val) { _quant = val; }
+ int raster() const { return _raster; }
+ void setRaster(int val) { _raster = val; }
+ PartList* parts() { return _pl; }
+ int curDrumInstrument() const { return _curDrumInstrument; }
+ Part* curCanvasPart();
+ WavePart* curWavePart();
+ void setCurCanvasPart(Part*);
+ };
+
+#endif
+
diff --git a/muse2/muse/midievent.cpp b/muse2/muse/midievent.cpp
new file mode 100644
index 00000000..8f2b0756
--- /dev/null
+++ b/muse2/muse/midievent.cpp
@@ -0,0 +1,175 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: midievent.cpp,v 1.7.2.2 2009/05/24 21:43:44 terminator356 Exp $
+//
+// (C) Copyright 2000-2003 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include "event.h"
+#include "midievent.h"
+#include "xml.h"
+#include "mpevent.h"
+#include "midictrl.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));
+ }
+
+void MidiEventBase::dump(int n) const
+ {
+ EventBase::dump(n);
+ const char* p;
+
+ switch(type()) {
+ case Note: p = "Note "; break;
+ case Controller: p = "Ctrl "; break;
+ case Sysex: p = "Sysex "; break;
+ case PAfter: p = "PAfter "; break;
+ case CAfter: p = "CAfter "; break;
+ case Meta: p = "Meta "; break;
+ default: p = "?? "; break;
+ }
+ for (int i = 0; i < (n+2); ++i)
+ putchar(' ');
+ printf("<%s> a:0x%x(%d) b:0x%x(%d) c:0x%x(%d)\n",
+ p, a, a, b, b, c, c);
+ }
+
+//---------------------------------------------------------
+// MidiEventBase::write
+//---------------------------------------------------------
+
+//void MidiEventBase::write(int level, Xml& xml, const Pos& offset) const
+void MidiEventBase::write(int level, Xml& xml, const Pos& offset, bool /*forcePath*/) const
+ {
+ xml.nput(level++, "<event tick=\"%d\"", tick() + offset.tick());
+ switch (type()) {
+ case Note:
+ xml.nput(" len=\"%d\"", lenTick());
+ break;
+ default:
+ xml.nput(" type=\"%d\"", type());
+ break;
+ }
+
+ // Changed by T356. BUG: *.med does not save meta event types - ID: 2879426
+ if (a)
+ xml.nput(" a=\"%d\"", a);
+ if (b)
+ xml.nput(" b=\"%d\"", b);
+ if (c)
+ xml.nput(" c=\"%d\"", c);
+
+ if (edata.dataLen) {
+ xml.nput(" datalen=\"%d\">\n", edata.dataLen);
+ xml.nput(level, "");
+ for (int i = 0; i < edata.dataLen; ++i)
+ xml.nput("%02x ", edata.data[i] & 0xff);
+ xml.nput("\n");
+ xml.tag(level, "/event");
+ }
+ else {
+ //if (a)
+ // xml.nput(" a=\"%d\"", a);
+ //if (b)
+ // xml.nput(" b=\"%d\"", b);
+ //if (c)
+ // xml.nput(" c=\"%d\"", c);
+ xml.nput(" />\n");
+ }
+ }
+
+//---------------------------------------------------------
+// MidiEventBase::read
+//---------------------------------------------------------
+
+void MidiEventBase::read(Xml& xml)
+ {
+ setType(Note);
+ a = 0;
+ b = 0;
+ c = 0;
+
+ int dataLen = 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("Event");
+ break;
+ case Xml::Text:
+ {
+ const char*s = tag.latin1();
+ edata.data = new unsigned char[dataLen];
+ edata.dataLen = dataLen;
+ unsigned char* d = edata.data;
+ for (int i = 0; i < dataLen; ++i) {
+ char* endp;
+ *d++ = strtol(s, &endp, 16);
+ s = endp;
+ }
+ }
+ break;
+ case Xml::Attribut:
+ if (tag == "tick")
+ setTick(xml.s2().toInt());
+ else if (tag == "type")
+ setType(EventType(xml.s2().toInt()));
+ else if (tag == "len")
+ setLenTick(xml.s2().toInt());
+ else if (tag == "a")
+ a = xml.s2().toInt();
+ else if (tag == "b")
+ b = xml.s2().toInt();
+ else if (tag == "c")
+ c = xml.s2().toInt();
+ else if (tag == "datalen")
+ dataLen = xml.s2().toInt();
+ break;
+ case Xml::TagEnd:
+ if (tag == "event")
+ return;
+ default:
+ break;
+ }
+ }
+ }
+
diff --git a/muse2/muse/midievent.h b/muse2/muse/midievent.h
new file mode 100644
index 00000000..48217f57
--- /dev/null
+++ b/muse2/muse/midievent.h
@@ -0,0 +1,62 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: midievent.h,v 1.7.2.1 2009/05/24 21:43:44 terminator356 Exp $
+//
+// (C) Copyright 1999-2004 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __MIDI_EVENT_H__
+#define __MIDI_EVENT_H__
+
+#include "eventbase.h"
+
+//---------------------------------------------------------
+// MidiEventBase
+//---------------------------------------------------------
+
+class MidiEventBase : public EventBase {
+ int a, b, c; // pitch, velo-on, velo-off
+ EvData edata;
+
+ virtual EventBase* clone() { 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(Xml&);
+ //virtual void write(int, Xml&, const Pos& offset) const;
+ virtual void write(int, Xml&, const Pos& offset, bool forcePath = false) const;
+ virtual EventBase* mid(unsigned, unsigned);
+ };
+
+#endif
+
diff --git a/muse2/muse/midifile.cpp b/muse2/muse/midifile.cpp
new file mode 100644
index 00000000..319152d7
--- /dev/null
+++ b/muse2/muse/midifile.cpp
@@ -0,0 +1,678 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: midifile.cpp,v 1.17 2004/06/18 08:36:43 wschweer Exp $
+//
+// (C) Copyright 1999-2003 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include <errno.h>
+#include <values.h>
+#include <assert.h>
+
+#include "song.h"
+#include "midi.h"
+#include "midifile.h"
+#include "drummap.h"
+#include "event.h"
+#include "globals.h"
+#include "midictrl.h"
+#include "marker/marker.h"
+#include "midiport.h"
+#include "midictrl.h"
+#include "mpevent.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(FILE* f)
+ {
+ fp = f;
+ curPos = 0;
+ _mtype = MT_UNKNOWN;
+ _error = MF_NO_ERROR;
+ _tracks = new MidiFileTrackList;
+ }
+
+MidiFile::~MidiFile()
+ {
+ delete _tracks;
+ }
+
+//---------------------------------------------------------
+// read
+// return true on error
+//---------------------------------------------------------
+
+bool MidiFile::read(void* p, size_t len)
+ {
+ for (;;) {
+ curPos += len;
+ size_t rv = fread(p, 1, len, fp);
+ if (rv == len)
+ return false;
+ if (feof(fp)) {
+ _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)
+ {
+ size_t rv = fwrite(p, 1, len, fp);
+ 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)
+ {
+ MPEventList* 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 (;;) {
+ MidiPlayEvent event;
+ lastport = -1;
+ lastchannel = -1;
+
+ int rv = readEvent(&event, t);
+ if (lastport != -1) {
+ port = lastport;
+ if (port >= MIDI_PORTS) {
+ printf("port %d >= %d, reset to 0\n", port, MIDI_PORTS);
+ port = 0;
+ }
+ }
+ 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;
+
+ event.setPort(port);
+ if (event.type() == ME_SYSEX || event.type() == ME_META)
+ event.setChannel(channel);
+ else
+ channel = event.channel();
+ el->add(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(MidiPlayEvent* 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 (((unsigned)len == gmOnMsgLen) && memcmp(buffer, gmOnMsg, gmOnMsgLen) == 0) {
+ setMType(MT_GM);
+ return -1;
+ }
+ if (((unsigned)len == gsOnMsgLen) && memcmp(buffer, gsOnMsg, gsOnMsgLen) == 0) {
+ setMType(MT_GS);
+ return -1;
+ }
+ if (((unsigned)len == xgOnMsgLen) && memcmp(buffer, xgOnMsg, xgOnMsgLen) == 0) {
+ setMType(MT_XG);
+ return -1;
+ }
+ if (buffer[0] == 0x41) { // Roland
+ if (mtype() != MT_UNKNOWN)
+ setMType(MT_GS);
+ }
+ else if (buffer[0] == 0x43) { // Yamaha
+ if (mtype() == MT_UNKNOWN || mtype() == MT_GM)
+ setMType(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;
+ }
+ }
+ 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];
+ if (len) {
+ if (read(buffer, len)) {
+ printf("readEvent: error 7\n");
+ delete[] buffer;
+ return -2;
+ }
+ }
+ buffer[len] = 0;
+ switch(type) {
+ case 0x21: // switch port
+ lastport = buffer[0];
+ delete[] buffer;
+ return -1;
+ case 0x20: // switch channel
+ lastchannel = buffer[0];
+ delete[] buffer;
+ return -1;
+ case 0x2f: // End of Track
+ delete[] buffer;
+ return 0;
+ default:
+ event->setType(ME_META);
+ event->setData(buffer, len+1);
+ event->setA(type);
+ 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) {
+ printf("readEvent: no running status, read 0x%02x sstatus %x\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)
+ {
+ //FIXME: By T356 01/19/2010
+ // If saving as a compressed file (gz or bz2),
+ // the file is a pipe, and pipes can't seek !
+ // This results in a corrupted midi file.
+ // So exporting compressed midi has been disabled (elsewhere)
+ // for now...
+
+ const MPEventList* events = &(t->events);
+ write("MTrk", 4);
+ int lenpos = ftell(fp);
+ writeLong(0); // dummy len
+
+ status = -1;
+ int tick = 0;
+ for (iMPEvent 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 = ftell(fp);
+ fseek(fp, lenpos, SEEK_SET);
+ writeLong(endpos-lenpos-4); // tracklen
+ fseek(fp, endpos, SEEK_SET);
+ return false;
+ }
+
+//---------------------------------------------------------
+// writeEvent
+//---------------------------------------------------------
+
+void MidiFile::writeEvent(const MidiPlayEvent* 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()
+ {
+ write("MThd", 4);
+ writeLong(6); // header len
+ writeShort(config.smfFormat);
+ if (config.smfFormat == 0) {
+ writeShort(1);
+ MidiFileTrack dst;
+ for (iMidiFileTrack i = _tracks->begin(); i != _tracks->end(); ++i) {
+ MPEventList* sl = &((*i)->events);
+ for (iMPEvent ie = sl->begin(); ie != sl->end(); ++ie)
+ dst.events.add(*ie);
+ }
+ writeShort(1);
+ writeShort(_division);
+ writeTrack(&dst);
+ }
+ else {
+ writeShort(ntracks);
+
+ writeShort(_division);
+ for (ciMidiFileTrack i = _tracks->begin(); i != _tracks->end(); ++i)
+ writeTrack(*i);
+ }
+ return (ferror(fp) != 0);
+ }
+
+//---------------------------------------------------------
+// readMidi
+// returns true on error
+//---------------------------------------------------------
+
+bool MidiFile::read()
+ {
+ _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/muse2/muse/midifile.h b/muse2/muse/midifile.h
new file mode 100644
index 00000000..da71a00a
--- /dev/null
+++ b/muse2/muse/midifile.h
@@ -0,0 +1,113 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: midifile.h,v 1.3 2004/01/04 18:24:43 wschweer Exp $
+//
+// (C) Copyright 1999-2004 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __MIDIFILE_H__
+#define __MIDIFILE_H__
+
+#include <stdio.h>
+#include <list>
+
+#include "globaldefs.h"
+#include "mpevent.h"
+
+struct MPEventList;
+class MidiPlayEvent;
+
+//---------------------------------------------------------
+// MidiFileTrack
+//---------------------------------------------------------
+
+struct MidiFileTrack {
+ MPEventList 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;
+ MType _mtype;
+ MidiFileTrackList* _tracks;
+
+ int status, click;
+ int sstatus;
+ int lastport, lastchannel;
+ FILE* 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(MidiPlayEvent*, MidiFileTrack*);
+ void writeEvent(const MidiPlayEvent*);
+
+ public:
+ MidiFile(FILE* f);
+ ~MidiFile();
+ bool read();
+ bool write();
+ QString error();
+ MidiFileTrackList* trackList() { return _tracks; }
+ int tracks() const { return ntracks; }
+ void setTrackList(MidiFileTrackList* tr, int n) {
+ _tracks = tr;
+ ntracks = n;
+ }
+ void setDivision(int d) { _division = d; }
+ int division() const { return _division; }
+ void setMType(MType t) { _mtype = t; }
+ MType mtype() const { return _mtype; }
+ };
+
+#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/muse2/muse/midiport.cpp b/muse2/muse/midiport.cpp
new file mode 100644
index 00000000..e5b4e63d
--- /dev/null
+++ b/muse2/muse/midiport.cpp
@@ -0,0 +1,1027 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: midiport.cpp,v 1.21.2.15 2009/12/07 20:11:51 terminator356 Exp $
+//
+// (C) Copyright 2000-2004 Werner Schweer (ws@seh.de)
+//=========================================================
+
+//#include "config.h"
+
+#include <q3popupmenu.h>
+#include "mididev.h"
+#include "midiport.h"
+#include "midictrl.h"
+#include "midi.h"
+#include "minstrument.h"
+#include "xml.h"
+#include "globals.h"
+#include "mpevent.h"
+#include "synth.h"
+#include "app.h"
+#include "song.h"
+
+//#ifdef DSSI_SUPPORT
+//#include "dssihost.h"
+//#endif
+
+MidiPort midiPorts[MIDI_PORTS];
+
+//---------------------------------------------------------
+// initMidiPorts
+//---------------------------------------------------------
+
+void initMidiPorts()
+ {
+ for (int i = 0; i < MIDI_PORTS; ++i) {
+ MidiPort* port = &midiPorts[i];
+ port->setInstrument(genericMidiInstrument);
+ port->syncInfo().setPort(i);
+ }
+ }
+
+//---------------------------------------------------------
+// MidiPort
+//---------------------------------------------------------
+
+MidiPort::MidiPort()
+ : _state("not configured")
+ {
+ _device = 0;
+ _instrument = 0;
+ _controller = new MidiCtrlValListList();
+ _foundInSongFile = false;
+
+ //
+ // create minimum set of managed controllers
+ // to make midi mixer operational
+ //
+ for (int i = 0; i < MIDI_CHANNELS; ++i) {
+ addManagedController(i, CTRL_PROGRAM);
+ addManagedController(i, CTRL_VOLUME);
+ addManagedController(i, CTRL_PANPOT);
+ _automationType[i] = AUTO_READ;
+ }
+ }
+
+//---------------------------------------------------------
+// MidiPort
+//---------------------------------------------------------
+
+MidiPort::~MidiPort()
+ {
+ delete _controller;
+ }
+
+//---------------------------------------------------------
+// guiVisible
+//---------------------------------------------------------
+
+bool MidiPort::guiVisible() const
+ {
+ return _instrument ? _instrument->guiVisible() : false;
+ }
+
+//---------------------------------------------------------
+// hasGui
+//---------------------------------------------------------
+
+bool MidiPort::hasGui() const
+ {
+ return _instrument ? _instrument->hasGui() : false;
+ }
+
+//---------------------------------------------------------
+// setDevice
+//---------------------------------------------------------
+
+void MidiPort::setMidiDevice(MidiDevice* dev)
+ {
+ if (_device) {
+ if (_device->isSynti())
+ _instrument = genericMidiInstrument;
+ _device->setPort(-1);
+ _device->close();
+ }
+ if (dev) {
+ for (int i = 0; i < MIDI_PORTS; ++i) {
+ MidiPort* mp = &midiPorts[i];
+ if (mp->device() == dev) {
+ if(dev->isSynti())
+ mp->setInstrument(genericMidiInstrument);
+ // move device
+ _state = mp->state();
+ mp->clearDevice();
+ break;
+ }
+ }
+ _device = dev;
+ if (_device->isSynti()) {
+ SynthI* s = (SynthI*)_device;
+ _instrument = s;
+ }
+ _state = _device->open();
+ _device->setPort(portno());
+
+ // By T356. Send all instrument controller initial (default) values to all midi channels now,
+ // except where explicitly initialized in the song.
+ // By sending ALL instrument controller initial values, even if those controllers are NOT
+ // in the song, we can ensure better consistency between songs.
+ // For example: A song is loaded which has a 'reverb level' controller initial value of '100'.
+ // Then a song is loaded which has no such controller (hence no explicit initial value).
+ // The 'reverb level' controller would still be at '100', and could adversely affect the song,
+ // but if the instrument has an available initial value of say '0', it will be used instead.
+ //
+ //if(_instrument)
+ // p3.3.39 NOT for syntis! Use midiState an/or initParams for that.
+ if(_instrument && !_device->isSynti())
+ {
+ MidiControllerList* cl = _instrument->controller();
+ MidiController* mc;
+ for(ciMidiController imc = cl->begin(); imc != cl->end(); ++imc)
+ {
+ //mc = *imc;
+ mc = imc->second;
+ for(int chan = 0; chan < MIDI_CHANNELS; ++chan)
+ {
+ ciMidiCtrlValList i;
+ // Look for an initial value for this midi controller, on this midi channel, in the song...
+ for(i = _controller->begin(); i != _controller->end(); ++i)
+ {
+ int channel = i->first >> 24;
+ int cntrl = i->first & 0xffffff;
+ int val = i->second->hwVal();
+ if(channel == chan && cntrl == mc->num() && val != CTRL_VAL_UNKNOWN)
+ break;
+ }
+ // If no initial value was found for this midi controller, on this midi channel, in the song...
+ if(i == _controller->end())
+ {
+ // If the instrument's midi controller has an initial value, send it now.
+ if(mc->initVal() != CTRL_VAL_UNKNOWN)
+ {
+ int ctl = mc->num();
+
+///#ifdef DSSI_SUPPORT
+ // Exclude dssi synths from this, as some of them have hundreds of controls.
+ // Another difference is dssi synth devices (usually) have readable default port values,
+ // unlike a midi output port, which cannot be queried for a current or default value,
+ // so we blindly send values here. Also some dssi have a different default mechanism or
+ // storage systems for parameters, with complex GUIs with their own manipulation schemes.
+ // Another difference is dssi controls are best manipulated as ladspa controls -
+ // (they ARE ladspa controls). This is stuff I mainly put for midi ports and MESS...
+ // I DO allow midi control of those ladspa controls, so our midi controls shall be updated here...
+ // p3.3.39 Only non-syntis! Use midiState an/or initParams for that.
+ ///if(!_device->isSynti() || (dynamic_cast<DssiSynthIF*>(((SynthI*)_device)->sif()) == 0))
+ ///{
+///#endif
+ // Note the addition of bias!
+ _device->putEvent(MidiPlayEvent(0, portno(), chan,
+ ME_CONTROLLER, ctl, mc->initVal() + mc->bias()));
+///#ifdef DSSI_SUPPORT
+ ///}
+///#endif
+
+ // Set it once so the 'last HW value' is set, and control knobs are positioned at the value...
+ //setHwCtrlState(chan, ctl, mc->initVal() + mc->bias());
+ // Set it again so that control labels show 'off'...
+ //setHwCtrlState(chan, ctl, CTRL_VAL_UNKNOWN);
+ setHwCtrlStates(chan, ctl, CTRL_VAL_UNKNOWN, mc->initVal() + mc->bias());
+ }
+ }
+ }
+ }
+ }
+
+ // init HW controller state
+ // p3.3.39 NOT for syntis! Use midiState an/or initParams for that.
+ if(!_device->isSynti())
+ {
+ for (iMidiCtrlValList i = _controller->begin(); i != _controller->end(); ++i) {
+ int channel = i->first >> 24;
+ int cntrl = i->first & 0xffffff;
+ int val = i->second->hwVal();
+ if (val != CTRL_VAL_UNKNOWN) {
+
+
+///#ifdef DSSI_SUPPORT
+ // Not for dssi synths...
+ ///if(!_device->isSynti() || (dynamic_cast<DssiSynthIF*>(((SynthI*)_device)->sif()) == 0))
+ ///{
+///#endif
+ _device->putEvent(MidiPlayEvent(0, portno(), channel,
+ ME_CONTROLLER, cntrl, val));
+///#ifdef DSSI_SUPPORT
+ ///}
+///#endif
+
+ // Set it once so the 'last HW value' is set, and control knobs are positioned at the value...
+ setHwCtrlState(channel, cntrl, val);
+ // Set it again so that control labels show 'off'...
+ //setHwCtrlState(channel, cntrl, CTRL_VAL_UNKNOWN);
+ //setHwCtrlStates(channel, cntrl, CTRL_VAL_UNKNOWN, val);
+ }
+ }
+ }
+ }
+
+ else
+ clearDevice();
+ }
+
+//---------------------------------------------------------
+// clearDevice
+//---------------------------------------------------------
+
+void MidiPort::clearDevice()
+ {
+ _device = 0;
+ _state = "not configured";
+ }
+
+//---------------------------------------------------------
+// portno
+//---------------------------------------------------------
+
+int MidiPort::portno() const
+ {
+ for (int i = 0; i < MIDI_PORTS; ++i) {
+ if (&midiPorts[i] == this)
+ return i;
+ }
+ return -1;
+ }
+
+//---------------------------------------------------------
+// midiPortsPopup
+//---------------------------------------------------------
+
+//QPopupMenu* midiPortsPopup(QWidget* parent)
+Q3PopupMenu* midiPortsPopup(QWidget* parent, int checkPort)
+ {
+ Q3PopupMenu* p = new Q3PopupMenu(parent);
+ for (int i = 0; i < MIDI_PORTS; ++i) {
+ MidiPort* port = &midiPorts[i];
+ QString name;
+ name.sprintf("%d:%s", port->portno()+1, port->portname().latin1());
+ p->insertItem(name, i);
+
+ if(i == checkPort)
+ p->setItemChecked(i, true);
+ }
+ return p;
+ }
+
+//---------------------------------------------------------
+// portname
+//---------------------------------------------------------
+
+const QString& MidiPort::portname() const
+ {
+ //static const QString none("<none>");
+ static const QString none(QT_TR_NOOP("<none>"));
+ if (_device)
+ return _device->name();
+ else
+ return none;
+ }
+
+//---------------------------------------------------------
+// tryCtrlInitVal
+//---------------------------------------------------------
+
+void MidiPort::tryCtrlInitVal(int chan, int ctl, int val)
+{
+ if(_instrument)
+ {
+ MidiControllerList* cl = _instrument->controller();
+ //for(ciMidiController imc = cl->begin(); imc != cl->end(); ++imc)
+ ciMidiController imc = cl->find(ctl);
+ if(imc != cl->end())
+ {
+ //MidiController* mc = *imc;
+ MidiController* mc = imc->second;
+ //int cnum = mc->num();
+ //if(cnum == ctl)
+ //{
+ int initval = mc->initVal();
+
+ // Initialize from either the instrument controller's initial value, or the supplied value.
+ if(initval != CTRL_VAL_UNKNOWN)
+ {
+ if(_device)
+ {
+ //MidiPlayEvent ev(song->cpos(), portno(), chan, ME_CONTROLLER, ctl, initval + mc->bias());
+ MidiPlayEvent ev(0, portno(), chan, ME_CONTROLLER, ctl, initval + mc->bias());
+ _device->putEvent(ev);
+ }
+ // Set it once so the 'last HW value' is set, and control knobs are positioned at the value...
+ //setHwCtrlState(chan, ctl, initval + mc->bias());
+ // Set it again so that control labels show 'off'...
+ //setHwCtrlState(chan, ctl, CTRL_VAL_UNKNOWN);
+ setHwCtrlStates(chan, ctl, CTRL_VAL_UNKNOWN, initval + mc->bias());
+
+ return;
+ }
+ }
+ }
+
+ if(_device)
+ {
+ //MidiPlayEvent ev(song->cpos(), portno(), chan, ME_CONTROLLER, ctl, val);
+ MidiPlayEvent ev(0, portno(), chan, ME_CONTROLLER, ctl, val);
+ _device->putEvent(ev);
+ }
+ // Set it once so the 'last HW value' is set, and control knobs are positioned at the value...
+ //setHwCtrlState(chan, ctl, val);
+ // Set it again so that control labels show 'off'...
+ //setHwCtrlState(chan, ctl, CTRL_VAL_UNKNOWN);
+ setHwCtrlStates(chan, ctl, CTRL_VAL_UNKNOWN, val);
+}
+
+//---------------------------------------------------------
+// sendGmInitValues
+//---------------------------------------------------------
+
+void MidiPort::sendGmInitValues()
+{
+ for (int i = 0; i < MIDI_CHANNELS; ++i) {
+ // Changed by T356.
+ //setHwCtrlState(i, CTRL_PROGRAM, 0);
+ //setHwCtrlState(i, CTRL_PITCH, 0);
+ //setHwCtrlState(i, CTRL_VOLUME, 100);
+ //setHwCtrlState(i, CTRL_PANPOT, 64);
+ //setHwCtrlState(i, CTRL_REVERB_SEND, 40);
+ //setHwCtrlState(i, CTRL_CHORUS_SEND, 0);
+
+ // By T356. Initialize from instrument controller if it has an initial value, otherwise use the specified value.
+ // Tested: Ultimately, a track's controller stored values take priority by sending any 'zero time' value
+ // AFTER these GM/GS/XG init routines are called via initDevices().
+ tryCtrlInitVal(i, CTRL_PROGRAM, 0);
+ tryCtrlInitVal(i, CTRL_PITCH, 0);
+ tryCtrlInitVal(i, CTRL_VOLUME, 100);
+ tryCtrlInitVal(i, CTRL_PANPOT, 64);
+ tryCtrlInitVal(i, CTRL_REVERB_SEND, 40);
+ tryCtrlInitVal(i, CTRL_CHORUS_SEND, 0);
+ }
+}
+
+//---------------------------------------------------------
+// sendGsInitValues
+//---------------------------------------------------------
+
+void MidiPort::sendGsInitValues()
+{
+ sendGmInitValues();
+}
+
+//---------------------------------------------------------
+// sendXgInitValues
+//---------------------------------------------------------
+
+void MidiPort::sendXgInitValues()
+{
+ for (int i = 0; i < MIDI_CHANNELS; ++i) {
+ // Changed by T356.
+ //setHwCtrlState(i, CTRL_PROGRAM, 0);
+ //setHwCtrlState(i, CTRL_MODULATION, 0);
+ //setHwCtrlState(i, CTRL_PORTAMENTO_TIME, 0);
+ //setHwCtrlState(i, CTRL_VOLUME, 0x64);
+ //setHwCtrlState(i, CTRL_PANPOT, 0x40);
+ //setHwCtrlState(i, CTRL_EXPRESSION, 0x7f);
+ //setHwCtrlState(i, CTRL_SUSTAIN, 0x0);
+ //setHwCtrlState(i, CTRL_PORTAMENTO, 0x0);
+ //setHwCtrlState(i, CTRL_SOSTENUTO, 0x0);
+ //setHwCtrlState(i, CTRL_SOFT_PEDAL, 0x0);
+ //setHwCtrlState(i, CTRL_HARMONIC_CONTENT, 0x40);
+ //setHwCtrlState(i, CTRL_RELEASE_TIME, 0x40);
+ //setHwCtrlState(i, CTRL_ATTACK_TIME, 0x40);
+ //setHwCtrlState(i, CTRL_BRIGHTNESS, 0x40);
+ //setHwCtrlState(i, CTRL_REVERB_SEND, 0x28);
+ //setHwCtrlState(i, CTRL_CHORUS_SEND, 0x0);
+ //setHwCtrlState(i, CTRL_VARIATION_SEND, 0x0);
+
+ // By T356. Initialize from instrument controller if it has an initial value, otherwise use the specified value.
+ tryCtrlInitVal(i, CTRL_PROGRAM, 0);
+ tryCtrlInitVal(i, CTRL_MODULATION, 0);
+ tryCtrlInitVal(i, CTRL_PORTAMENTO_TIME, 0);
+ tryCtrlInitVal(i, CTRL_VOLUME, 0x64);
+ tryCtrlInitVal(i, CTRL_PANPOT, 0x40);
+ tryCtrlInitVal(i, CTRL_EXPRESSION, 0x7f);
+ tryCtrlInitVal(i, CTRL_SUSTAIN, 0x0);
+ tryCtrlInitVal(i, CTRL_PORTAMENTO, 0x0);
+ tryCtrlInitVal(i, CTRL_SOSTENUTO, 0x0);
+ tryCtrlInitVal(i, CTRL_SOFT_PEDAL, 0x0);
+ tryCtrlInitVal(i, CTRL_HARMONIC_CONTENT, 0x40);
+ tryCtrlInitVal(i, CTRL_RELEASE_TIME, 0x40);
+ tryCtrlInitVal(i, CTRL_ATTACK_TIME, 0x40);
+ tryCtrlInitVal(i, CTRL_BRIGHTNESS, 0x40);
+ tryCtrlInitVal(i, CTRL_REVERB_SEND, 0x28);
+ tryCtrlInitVal(i, CTRL_CHORUS_SEND, 0x0);
+ tryCtrlInitVal(i, CTRL_VARIATION_SEND, 0x0);
+ }
+}
+
+//---------------------------------------------------------
+// sendGmOn
+// send GM-On message to midi device and keep track
+// of device state
+//---------------------------------------------------------
+
+void MidiPort::sendGmOn()
+ {
+ sendSysex(gmOnMsg, gmOnMsgLen);
+ }
+
+//---------------------------------------------------------
+// sendGsOn
+// send Roland GS-On message to midi device and keep track
+// of device state
+//---------------------------------------------------------
+
+void MidiPort::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));
+ sendSysex(gsOnMsg2, gsOnMsg2Len);
+ sendSysex(gsOnMsg3, gsOnMsg3Len);
+ }
+
+//---------------------------------------------------------
+// sendXgOn
+// send Yamaha XG-On message to midi device and keep track
+// of device state
+//---------------------------------------------------------
+
+void MidiPort::sendXgOn()
+ {
+ sendSysex(xgOnMsg, xgOnMsgLen);
+ }
+
+//---------------------------------------------------------
+// sendSysex
+// send SYSEX message to midi device
+//---------------------------------------------------------
+
+void MidiPort::sendSysex(const unsigned char* p, int n)
+ {
+ if (_device) {
+ MidiPlayEvent event(0, 0, ME_SYSEX, p, n);
+ _device->putEvent(event);
+ }
+ }
+
+//---------------------------------------------------------
+// sendMMCLocate
+//---------------------------------------------------------
+
+void MidiPort::sendMMCLocate(unsigned char ht, unsigned char m, unsigned char s, unsigned char f, unsigned char sf, int devid)
+{
+ unsigned char msg[mmcLocateMsgLen];
+ memcpy(msg, mmcLocateMsg, mmcLocateMsgLen);
+ if(devid != -1)
+ msg[1] = devid;
+ else
+ msg[1] = _syncInfo.idOut();
+ msg[6] = ht;
+ msg[7] = m;
+ msg[8] = s;
+ msg[9] = f;
+ msg[10] = sf;
+ sendSysex(msg, mmcLocateMsgLen);
+}
+
+//---------------------------------------------------------
+// sendMMCStop
+//---------------------------------------------------------
+
+void MidiPort::sendMMCStop(int devid)
+{
+ unsigned char msg[mmcStopMsgLen];
+ memcpy(msg, mmcStopMsg, mmcStopMsgLen);
+ if(devid != -1)
+ msg[1] = devid;
+ else
+ msg[1] = _syncInfo.idOut();
+ sendSysex(msg, mmcStopMsgLen);
+}
+
+//---------------------------------------------------------
+// sendMMCDeferredPlay
+//---------------------------------------------------------
+
+void MidiPort::sendMMCDeferredPlay(int devid)
+{
+ unsigned char msg[mmcDeferredPlayMsgLen];
+ memcpy(msg, mmcDeferredPlayMsg, mmcDeferredPlayMsgLen);
+ if(devid != -1)
+ msg[1] = devid;
+ else
+ msg[1] = _syncInfo.idOut();
+ sendSysex(msg, mmcDeferredPlayMsgLen);
+}
+
+//---------------------------------------------------------
+// sendStart
+//---------------------------------------------------------
+
+void MidiPort::sendStart()
+ {
+ if (_device) {
+ MidiPlayEvent event(0, 0, 0, ME_START, 0, 0);
+ _device->putEvent(event);
+ }
+ }
+
+//---------------------------------------------------------
+// sendStop
+//---------------------------------------------------------
+
+void MidiPort::sendStop()
+ {
+ if (_device) {
+ MidiPlayEvent event(0, 0, 0, ME_STOP, 0, 0);
+ _device->putEvent(event);
+ }
+ }
+
+//---------------------------------------------------------
+// sendClock
+//---------------------------------------------------------
+
+void MidiPort::sendClock()
+ {
+ if (_device) {
+ MidiPlayEvent event(0, 0, 0, ME_CLOCK, 0, 0);
+ _device->putEvent(event);
+ }
+ }
+
+//---------------------------------------------------------
+// sendContinue
+//---------------------------------------------------------
+
+void MidiPort::sendContinue()
+ {
+ if (_device) {
+ MidiPlayEvent event(0, 0, 0, ME_CONTINUE, 0, 0);
+ _device->putEvent(event);
+ }
+ }
+
+//---------------------------------------------------------
+// sendSongpos
+//---------------------------------------------------------
+
+void MidiPort::sendSongpos(int pos)
+ {
+ if (_device) {
+ MidiPlayEvent event(0, 0, 0, ME_SONGPOS, pos, 0);
+ _device->putEvent(event);
+ }
+ }
+
+//---------------------------------------------------------
+// addManagedController
+//---------------------------------------------------------
+
+MidiCtrlValList* MidiPort::addManagedController(int channel, int ctrl)
+ {
+ iMidiCtrlValList cl = _controller->find(channel, ctrl);
+ if (cl == _controller->end()) {
+ MidiCtrlValList* pvl = new MidiCtrlValList(ctrl);
+ _controller->add(channel, pvl);
+ return pvl;
+ }
+ else
+ return cl->second;
+ }
+
+//---------------------------------------------------------
+// limitValToInstrCtlRange
+//---------------------------------------------------------
+
+int MidiPort::limitValToInstrCtlRange(MidiController* mc, int val)
+{
+ if(!_instrument || !mc || val == CTRL_VAL_UNKNOWN)
+ return val;
+
+ //MidiController* mc = imc->second;
+ int mn = mc->minVal();
+ int mx = mc->maxVal();
+ int bias = mc->bias();
+
+ // Subtract controller bias from value.
+ val -= bias;
+
+ // Limit value to controller range.
+ if(val < mn)
+ val = mn;
+ else
+ if(val > mx)
+ val = mx;
+
+ // Re-add controller bias to value.
+ val += bias;
+
+ return val;
+}
+
+int MidiPort::limitValToInstrCtlRange(int ctl, int val)
+{
+ if(!_instrument || val == CTRL_VAL_UNKNOWN)
+ return val;
+
+ MidiControllerList* cl = _instrument->controller();
+
+ // Is it a drum controller?
+ MidiController *mc = drumController(ctl);
+ if(!mc)
+ {
+ // It's not a drum controller. Find it as a regular controller instead.
+ iMidiController imc = cl->find(ctl);
+ if(imc != cl->end())
+ mc = imc->second;
+ }
+
+ // If it's a valid controller, limit the value to the instrument controller range.
+ if(mc)
+ return limitValToInstrCtlRange(mc, val);
+
+ return val;
+}
+
+//---------------------------------------------------------
+// sendEvent
+// return true, if event cannot be delivered
+//---------------------------------------------------------
+
+bool MidiPort::sendEvent(const MidiPlayEvent& ev)
+ {
+ if (ev.type() == ME_CONTROLLER) {
+
+// printf("current sustain %d %d %d\n", hwCtrlState(ev.channel(),CTRL_SUSTAIN), CTRL_SUSTAIN, ev.dataA());
+
+ // Added by T356.
+ int da = ev.dataA();
+ int db = ev.dataB();
+ /*
+ // Is it a drum controller?
+ MidiController* mc = drumController(da);
+ if(mc)
+ {
+ DrumMap* dm = &drumMap[da & 0x7f];
+ int port = dm->port;
+ MidiPort* mp = &midiPorts[port];
+ // Is it NOT for this MidiPort?
+ if(mp && (mp != this))
+ {
+ // Redirect the event to the mapped port and channel...
+ da = (da & ~0xff) | (dm->anote & 0x7f);
+ db = mp->limitValToInstrCtlRange(da, db);
+ MidiPlayEvent nev(ev.time(), port, dm->channel, ME_CONTROLLER, da, db);
+ if(!mp->setHwCtrlState(ev.channel(), da, db))
+ return false;
+ if(!mp->device())
+ return true;
+ return mp->device()->putEvent(nev);
+ }
+ }
+ */
+ db = limitValToInstrCtlRange(da, db);
+
+
+ // Removed by T356.
+ //
+ // optimize controller settings
+ //
+ //if (hwCtrlState(ev.channel(), ev.dataA()) == ev.dataB()) {
+// printf("optimize ctrl %d %x val %d\n", ev.dataA(), ev.dataA(), ev.dataB());
+ // return false;
+ // }
+// printf("set HW Ctrl State ch:%d 0x%x 0x%x\n", ev.channel(), ev.dataA(), ev.dataB());
+ if(!setHwCtrlState(ev.channel(), da, db))
+ return false;
+ }
+ else
+ if (ev.type() == ME_PITCHBEND)
+ {
+ int da = limitValToInstrCtlRange(CTRL_PITCH, ev.dataA());
+ // Removed by T356.
+ //if (hwCtrlState(ev.channel(), CTRL_PITCH) == ev.dataA())
+ // return false;
+
+ if(!setHwCtrlState(ev.channel(), CTRL_PITCH, da))
+ return false;
+ }
+ else
+ if (ev.type() == ME_PROGRAM)
+ {
+ if(!setHwCtrlState(ev.channel(), CTRL_PROGRAM, ev.dataA()))
+ return false;
+ }
+
+
+ if (!_device)
+ return true;
+ return _device->putEvent(ev);
+ }
+
+//---------------------------------------------------------
+// lastValidHWCtrlState
+//---------------------------------------------------------
+
+int MidiPort::lastValidHWCtrlState(int ch, int ctrl) const
+{
+ ch &= 0xff;
+ iMidiCtrlValList cl = _controller->find(ch, ctrl);
+ if (cl == _controller->end()) {
+ return CTRL_VAL_UNKNOWN;
+ }
+ MidiCtrlValList* vl = cl->second;
+ return vl->lastValidHWVal();
+}
+
+//---------------------------------------------------------
+// hwCtrlState
+//---------------------------------------------------------
+
+int MidiPort::hwCtrlState(int ch, int ctrl) const
+ {
+ ch &= 0xff;
+ iMidiCtrlValList cl = _controller->find(ch, ctrl);
+ if (cl == _controller->end()) {
+ //if (debugMsg)
+ // printf("hwCtrlState: chan %d ctrl 0x%x not found\n", ch, ctrl);
+ return CTRL_VAL_UNKNOWN;
+ }
+ MidiCtrlValList* vl = cl->second;
+ return vl->hwVal();
+ }
+
+//---------------------------------------------------------
+// setHwCtrlState
+// Returns false if value is already equal, true if value is set.
+//---------------------------------------------------------
+
+bool MidiPort::setHwCtrlState(int ch, int ctrl, int val)
+ {
+ // Changed by T356.
+ //iMidiCtrlValList cl = _controller->find(ch, ctrl);
+ //if (cl == _controller->end()) {
+ // try to add new controller
+ // addManagedController(ch, ctrl);
+// muse->importController(ch, this, ctrl);
+ // cl = _controller->find(ch, ctrl);
+ // if (cl == _controller->end()) {
+ // if (debugMsg)
+ // printf("setHwCtrlState(%d,0x%x,0x%x): not found\n", ch, ctrl, val);
+ // return;
+ // }
+ // }
+ //MidiCtrlValList* vl = cl->second;
+// printf("setHwCtrlState ch %d ctrl %x val %x\n", ch, ctrl, val);
+
+ // By T356. This will create a new value list if necessary, otherwise it returns the existing list.
+ MidiCtrlValList* vl = addManagedController(ch, ctrl);
+
+ return vl->setHwVal(val);
+ }
+
+//---------------------------------------------------------
+// setHwCtrlStates
+// Sets current and last HW values.
+// Handy for forcing labels to show 'off' and knobs to show specific values
+// without having to send two messages.
+// Returns false if both values are already set, true if either value is changed.
+//---------------------------------------------------------
+
+bool MidiPort::setHwCtrlStates(int ch, int ctrl, int val, int lastval)
+ {
+ // This will create a new value list if necessary, otherwise it returns the existing list.
+ MidiCtrlValList* vl = addManagedController(ch, ctrl);
+
+ return vl->setHwVals(val, lastval);
+ }
+
+// Removed by T356.
+//---------------------------------------------------------
+// setCtrl
+// return true if new controller value added
+//---------------------------------------------------------
+
+//bool MidiPort::setCtrl(int ch, int tick, int ctrl, int val)
+// {
+// if (debugMsg)
+// printf("setCtrl(tick=%d val=%d)\n",tick,val);
+// iMidiCtrlValList cl = _controller->find(ch, ctrl);
+// if (cl == _controller->end()) {
+// if (debugMsg)
+// printf("setCtrl: controller 0x%x for channel %d not found\n", ctrl, ch);
+// return false;
+// }
+// return cl->second->add(tick, val);
+// }
+
+//---------------------------------------------------------
+// setControllerVal
+// This function sets a controller value,
+// creating the controller if necessary.
+// Returns true if a value was actually added or replaced.
+//---------------------------------------------------------
+
+bool MidiPort::setControllerVal(int ch, int tick, int ctrl, int val, Part* part)
+{
+ MidiCtrlValList* pvl;
+ iMidiCtrlValList cl = _controller->find(ch, ctrl);
+ if (cl == _controller->end())
+ {
+ pvl = new MidiCtrlValList(ctrl);
+ _controller->add(ch, pvl);
+ }
+ else
+ pvl = cl->second;
+
+ return pvl->addMCtlVal(tick, val, part);
+}
+
+//---------------------------------------------------------
+// getCtrl
+//---------------------------------------------------------
+
+int MidiPort::getCtrl(int ch, int tick, int ctrl) const
+ {
+ iMidiCtrlValList cl = _controller->find(ch, ctrl);
+ if (cl == _controller->end()) {
+ //if (debugMsg)
+ // printf("getCtrl: controller %d(0x%x) for channel %d not found size %zd\n",
+ // ctrl, ctrl, ch, _controller->size());
+ return CTRL_VAL_UNKNOWN;
+ }
+ return cl->second->value(tick);
+ }
+
+int MidiPort::getCtrl(int ch, int tick, int ctrl, Part* part) const
+ {
+ iMidiCtrlValList cl = _controller->find(ch, ctrl);
+ if (cl == _controller->end()) {
+ //if (debugMsg)
+ // printf("getCtrl: controller %d(0x%x) for channel %d not found size %zd\n",
+ // ctrl, ctrl, ch, _controller->size());
+ return CTRL_VAL_UNKNOWN;
+ }
+ return cl->second->value(tick, part);
+ }
+//---------------------------------------------------------
+// deleteController
+//---------------------------------------------------------
+
+void MidiPort::deleteController(int ch, int tick, int ctrl, Part* part)
+ {
+ iMidiCtrlValList cl = _controller->find(ch, ctrl);
+ if (cl == _controller->end()) {
+ if (debugMsg)
+ printf("deleteController: controller %d(0x%x) for channel %d not found size %zd\n",
+ ctrl, ctrl, ch, _controller->size());
+ return;
+ }
+
+ cl->second->delMCtlVal(tick, part);
+ }
+
+//---------------------------------------------------------
+// midiController
+//---------------------------------------------------------
+
+MidiController* MidiPort::midiController(int num) const
+ {
+ if (_instrument) {
+ MidiControllerList* mcl = _instrument->controller();
+ for (iMidiController i = mcl->begin(); i != mcl->end(); ++i) {
+ int cn = i->second->num();
+ if (cn == num)
+ return i->second;
+ // wildcard?
+ if (((cn & 0xff) == 0xff) && ((cn & ~0xff) == (num & ~0xff)))
+ return i->second;
+ }
+ }
+
+ for (iMidiController i = defaultMidiController.begin(); i != defaultMidiController.end(); ++i) {
+ int cn = i->second->num();
+ if (cn == num)
+ return i->second;
+ // wildcard?
+ if (((cn & 0xff) == 0xff) && ((cn & ~0xff) == (num & ~0xff)))
+ return i->second;
+ }
+
+
+ QString name = midiCtrlName(num);
+ int min = 0;
+ int max = 127;
+
+ MidiController::ControllerType t = midiControllerType(num);
+ switch (t) {
+ case MidiController::RPN:
+ case MidiController::NRPN:
+ case MidiController::Controller7:
+ max = 127;
+ break;
+ case MidiController::Controller14:
+ case MidiController::RPN14:
+ case MidiController::NRPN14:
+ max = 16383;
+ break;
+ case MidiController::Program:
+ max = 0xffffff;
+ break;
+ case MidiController::Pitch:
+ max = 8191;
+ min = -8192;
+ break;
+ case MidiController::Velo: // cannot happen
+ break;
+ }
+ MidiController* c = new MidiController(name, num, min, max, 0);
+ defaultMidiController.add(c);
+ return c;
+ }
+
+//---------------------------------------------------------
+// drumController
+// Returns instrument drum controller if ctl is a drum controller number.
+// Otherwise returns zero.
+//---------------------------------------------------------
+
+MidiController* MidiPort::drumController(int ctl)
+{
+ if(!_instrument)
+ return 0;
+
+ MidiControllerList* cl = _instrument->controller();
+
+ // If it's an RPN, NRPN, RPN14, or NRPN14 controller...
+ if(((ctl - CTRL_RPN_OFFSET >= 0) && (ctl - CTRL_RPN_OFFSET <= 0xffff)) ||
+ ((ctl - CTRL_NRPN_OFFSET >= 0) && (ctl - CTRL_NRPN_OFFSET <= 0xffff)) ||
+ ((ctl - CTRL_RPN14_OFFSET >= 0) && (ctl - CTRL_RPN14_OFFSET <= 0xffff)) ||
+ ((ctl - CTRL_NRPN14_OFFSET >= 0) && (ctl - CTRL_NRPN14_OFFSET <= 0xffff)))
+ {
+ // Does the instrument have a drum controller to match this controller's number?
+ iMidiController imc = cl->find(ctl | 0xff);
+ if(imc != cl->end())
+ // Yes, it's a drum controller. Return a pointer to it.
+ return imc->second;
+ }
+
+ return 0;
+}
+
+int MidiPort::nullSendValue()
+{
+ return _instrument ? _instrument->nullSendValue() : -1;
+}
+
+void MidiPort::setNullSendValue(int v)
+{
+ if(_instrument)
+ _instrument->setNullSendValue(v);
+}
+
+//---------------------------------------------------------
+// writeRouting // p3.3.50
+//---------------------------------------------------------
+
+void MidiPort::writeRouting(int level, Xml& xml) const
+{
+ // If this device is not actually in use by the song, do not write any routes.
+ // This prevents bogus routes from being saved and propagated in the med file.
+ if(!device())
+ return;
+
+ QString s;
+
+ for (ciRoute r = _outRoutes.begin(); r != _outRoutes.end(); ++r)
+ {
+ if(r->type == Route::TRACK_ROUTE && !r->name().isEmpty())
+ {
+ //xml.tag(level++, "Route");
+
+ s = QT_TR_NOOP("Route");
+ if(r->channel != -1 && r->channel != 0)
+ s += QString(QT_TR_NOOP(" channelMask=\"%1\"")).arg(r->channel); // Use new channel mask.
+ xml.tag(level++, s);
+
+ xml.tag(level, "source mport=\"%d\"/", portno());
+
+ s = QT_TR_NOOP("dest");
+ s += QString(QT_TR_NOOP(" name=\"%1\"/")).arg(Xml::xmlString(r->name()));
+ xml.tag(level, s);
+
+ xml.etag(level--, "Route");
+ }
+ }
+}
+
diff --git a/muse2/muse/midiport.h b/muse2/muse/midiport.h
new file mode 100644
index 00000000..7c8a408c
--- /dev/null
+++ b/muse2/muse/midiport.h
@@ -0,0 +1,130 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: midiport.h,v 1.9.2.6 2009/11/17 22:08:22 terminator356 Exp $
+//
+// (C) Copyright 1999-2004 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __MIDIPORT_H__
+#define __MIDIPORT_H__
+
+#include "globaldefs.h"
+#include "sync.h"
+#include "route.h"
+//Added by qt3to4:
+#include <Q3PopupMenu>
+
+class MidiDevice;
+class MidiInstrument;
+class MidiCtrlValListList;
+class MidiPlayEvent;
+class MidiController;
+class MidiCtrlValList;
+class Part;
+//class MidiSyncInfo;
+
+//---------------------------------------------------------
+// MidiPort
+//---------------------------------------------------------
+
+class MidiPort {
+ MidiCtrlValListList* _controller;
+ MidiDevice* _device;
+ QString _state; // result of device open
+ MidiInstrument* _instrument;
+ AutomationType _automationType[MIDI_CHANNELS];
+ // Holds sync settings and detection monitors.
+ MidiSyncInfo _syncInfo;
+ // p3.3.50 Just a flag to say the port was found in the song file, even if it has no device right now.
+ bool _foundInSongFile;
+
+ RouteList _inRoutes, _outRoutes;
+
+ void clearDevice();
+
+ public:
+ MidiPort();
+ ~MidiPort();
+
+ //
+ // manipulate active midi controller
+ //
+ MidiCtrlValListList* controller() { return _controller; }
+ int getCtrl(int ch, int tick, int ctrl) const;
+ int getCtrl(int ch, int tick, int ctrl, Part* part) const;
+ // Removed by T356.
+ //bool setCtrl(int ch, int tick, int ctrl, int val);
+ bool setControllerVal(int ch, int tick, int ctrl, int val, Part* part);
+ // Can be CTRL_VAL_UNKNOWN until a valid state is set
+ int lastValidHWCtrlState(int ch, int ctrl) const;
+ int hwCtrlState(int ch, int ctrl) const;
+ bool setHwCtrlState(int ch, int ctrl, int val);
+ bool setHwCtrlStates(int ch, int ctrl, int val, int lastval);
+ void deleteController(int ch, int tick, int ctrl, Part* part);
+
+ bool guiVisible() const;
+ bool hasGui() const;
+
+ int portno() const;
+ bool foundInSongFile() const { return _foundInSongFile; }
+ void setFoundInSongFile(bool b) { _foundInSongFile = b; }
+
+ MidiDevice* device() const { return _device; }
+ const QString& state() const { return _state; }
+ void setState(const QString& s) { _state = s; }
+ void setMidiDevice(MidiDevice* dev);
+ const QString& portname() const;
+ MidiInstrument* instrument() const { return _instrument; }
+ void setInstrument(MidiInstrument* i) { _instrument = i; }
+ MidiController* midiController(int num) const;
+ MidiCtrlValList* addManagedController(int channel, int ctrl);
+ void tryCtrlInitVal(int chan, int ctl, int val);
+ int limitValToInstrCtlRange(int ctl, int val);
+ int limitValToInstrCtlRange(MidiController* mc, int val);
+ MidiController* drumController(int ctl);
+ int nullSendValue();
+ void setNullSendValue(int v);
+
+ RouteList* inRoutes() { return &_inRoutes; }
+ RouteList* outRoutes() { return &_outRoutes; }
+ bool noInRoute() const { return _inRoutes.empty(); }
+ bool noOutRoute() const { return _outRoutes.empty(); }
+ void writeRouting(int, Xml&) const;
+
+ // send events to midi device and keep track of
+ // device state:
+ void sendGmOn();
+ void sendGsOn();
+ void sendXgOn();
+ void sendGmInitValues();
+ void sendGsInitValues();
+ void sendXgInitValues();
+ void sendStart();
+ void sendStop();
+ void sendContinue();
+ void sendSongpos(int);
+ void sendClock();
+ void sendSysex(const unsigned char* p, int n);
+ void sendMMCLocate(unsigned char ht, unsigned char m,
+ unsigned char s, unsigned char f, unsigned char sf, int devid = -1);
+ void sendMMCStop(int devid = -1);
+ void sendMMCDeferredPlay(int devid = -1);
+
+ bool sendEvent(const MidiPlayEvent&);
+ AutomationType automationType(int channel) { return _automationType[channel]; }
+ void setAutomationType(int channel, AutomationType t) {
+ _automationType[channel] = t;
+ }
+ MidiSyncInfo& syncInfo() { return _syncInfo; }
+ };
+
+extern MidiPort midiPorts[MIDI_PORTS];
+extern void initMidiPorts();
+
+class Q3PopupMenu;
+class QWidget;
+//extern QPopupMenu* midiPortsPopup(QWidget*);
+extern Q3PopupMenu* midiPortsPopup(QWidget*, int checkPort = -1);
+#endif
+
diff --git a/muse2/muse/midiseq.cpp b/muse2/muse/midiseq.cpp
new file mode 100644
index 00000000..7d7dedef
--- /dev/null
+++ b/muse2/muse/midiseq.cpp
@@ -0,0 +1,766 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: midiseq.cpp,v 1.30.2.21 2009/12/20 05:00:35 terminator356 Exp $
+//
+// high priority task for scheduling midi events
+//
+// (C) Copyright 2003 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include <qmessagebox.h>
+#include <qobject.h>
+#include <stdio.h>
+#include <fcntl.h>
+#include <sys/ioctl.h>
+#include <poll.h>
+#include <math.h>
+
+#include "globals.h"
+#include "midi.h"
+#include "midiseq.h"
+#include "midiport.h"
+#include "mididev.h"
+#include "midictrl.h"
+#include "audio.h"
+#include "driver/alsamidi.h"
+#include "driver/jackmidi.h"
+#include "sync.h"
+#include "synth.h"
+#include "song.h"
+#include "gconfig.h"
+
+MidiSeq* midiSeq;
+int MidiSeq::ticker = 0;
+volatile bool midiBusy=false;
+
+
+//---------------------------------------------------------
+// readMsg
+//---------------------------------------------------------
+
+static void readMsg(void* p, void*)
+ {
+
+ MidiSeq* at = (MidiSeq*)p;
+ at->readMsg();
+ }
+
+//---------------------------------------------------------
+// processMsg
+//---------------------------------------------------------
+
+void MidiSeq::processMsg(const ThreadMsg* m)
+ {
+ AudioMsg* msg = (AudioMsg*)m;
+ switch(msg->id) {
+ case MS_PROCESS:
+ audio->processMidi();
+ break;
+ case SEQM_SEEK:
+ processSeek();
+ break;
+ case MS_STOP:
+ processStop();
+ break;
+ case MS_SET_RTC:
+ doSetuid();
+ setRtcTicks();
+ undoSetuid();
+ break;
+ case MS_UPDATE_POLL_FD:
+ updatePollFd();
+ break;
+ case SEQM_ADD_TRACK:
+ song->insertTrack2(msg->track, msg->ival);
+ updatePollFd();
+ break;
+ case SEQM_REMOVE_TRACK:
+ song->cmdRemoveTrack(msg->track);
+ updatePollFd();
+ break;
+ case SEQM_CHANGE_TRACK:
+ song->changeTrack((Track*)(msg->p1), (Track*)(msg->p2));
+ updatePollFd();
+ break;
+ case SEQM_ADD_PART:
+ song->cmdAddPart((Part*)msg->p1);
+ break;
+ case SEQM_REMOVE_PART:
+ song->cmdRemovePart((Part*)msg->p1);
+ break;
+ case SEQM_CHANGE_PART:
+ //song->cmdChangePart((Part*)msg->p1, (Part*)msg->p2);
+ song->cmdChangePart((Part*)msg->p1, (Part*)msg->p2, msg->a, msg->b);
+ break;
+ case SEQM_SET_TRACK_OUT_CHAN:
+ {
+ MidiTrack* track = (MidiTrack*)(msg->p1);
+ track->setOutChanAndUpdate(msg->a);
+ }
+ break;
+ case SEQM_SET_TRACK_OUT_PORT:
+ {
+ MidiTrack* track = (MidiTrack*)(msg->p1);
+ track->setOutPortAndUpdate(msg->a);
+ }
+ break;
+ case SEQM_REMAP_PORT_DRUM_CTL_EVS:
+ song->remapPortDrumCtrlEvents(msg->ival, msg->a, msg->b, msg->c);
+ break;
+ case SEQM_CHANGE_ALL_PORT_DRUM_CTL_EVS:
+ song->changeAllPortDrumCtrlEvents((bool)msg->a, (bool)msg->b);
+ break;
+ case SEQM_SET_MIDI_DEVICE:
+ ((MidiPort*)(msg->p1))->setMidiDevice((MidiDevice*)(msg->p2));
+ updatePollFd();
+ break;
+ case SEQM_IDLE:
+ idle = msg->a;
+ break;
+ default:
+ printf("MidiSeq::processMsg() unknown id %d\n", msg->id);
+ break;
+ }
+ }
+
+//---------------------------------------------------------
+// processStop
+//---------------------------------------------------------
+
+void MidiSeq::processStop()
+ {
+ // p3.3.28
+ playStateExt = false; // not playing
+
+ //
+ // stop stuck notes
+ //
+ for (iMidiDevice id = midiDevices.begin(); id != midiDevices.end(); ++id) {
+ MidiDevice* md = *id;
+ if (md->midiPort() == -1)
+ continue;
+ MPEventList* pel = md->playEvents();
+ MPEventList* sel = md->stuckNotes();
+ pel->clear();
+ for (iMPEvent i = sel->begin(); i != sel->end(); ++i) {
+ MidiPlayEvent ev = *i;
+ ev.setTime(0);
+ pel->add(ev);
+ }
+ sel->clear();
+ md->setNextPlayEvent(pel->begin());
+ }
+ }
+
+//---------------------------------------------------------
+// processSeek
+//---------------------------------------------------------
+
+void MidiSeq::processSeek()
+ {
+ int pos = audio->tickPos();
+ if (pos == 0 && !song->record())
+ audio->initDevices();
+
+ //---------------------------------------------------
+ // set all controller
+ //---------------------------------------------------
+
+ for (iMidiDevice i = midiDevices.begin(); i != midiDevices.end(); ++i) {
+ MidiDevice* dev = *i;
+ int port = dev->midiPort();
+ if (port == -1)
+ continue;
+ MidiPort* mp = &midiPorts[port];
+ MidiCtrlValListList* cll = mp->controller();
+
+ MPEventList* el = dev->playEvents();
+
+ if (audio->isPlaying()) {
+ // stop all notes
+ el->clear();
+ MPEventList* sel = dev->stuckNotes();
+ for (iMPEvent i = sel->begin(); i != sel->end(); ++i) {
+ MidiPlayEvent ev = *i;
+ ev.setTime(0);
+ el->add(ev);
+ }
+ sel->clear();
+ }
+ else
+ el->erase(el->begin(), dev->nextPlayEvent());
+
+ for (iMidiCtrlValList ivl = cll->begin(); ivl != cll->end(); ++ivl) {
+ MidiCtrlValList* vl = ivl->second;
+ //int val = vl->value(pos);
+ //if (val != CTRL_VAL_UNKNOWN) {
+ // int channel = ivl->first >> 24;
+ // el->add(MidiPlayEvent(0, port, channel, ME_CONTROLLER, vl->num(), val));
+ // }
+ iMidiCtrlVal imcv = vl->iValue(pos);
+ if(imcv != vl->end())
+ {
+ Part* p = imcv->second.part;
+ unsigned t = (unsigned)imcv->first;
+ // Do not add values that are outside of the part.
+ if(p && t >= p->tick() && t < (p->tick() + p->lenTick()) )
+ el->add(MidiPlayEvent(0, port, ivl->first >> 24, ME_CONTROLLER, vl->num(), imcv->second.val));
+ }
+ }
+ dev->setNextPlayEvent(el->begin());
+ }
+ }
+
+//---------------------------------------------------------
+// MidiSeq
+//---------------------------------------------------------
+
+//MidiSeq::MidiSeq(int priority, const char* name)
+// : Thread(priority, name)
+MidiSeq::MidiSeq(const char* name)
+ : Thread(name)
+ {
+ // Changed by Tim. p3.3.17
+ //prio = priority;
+ prio = 0;
+
+ idle = false;
+ midiClock = 0;
+ mclock1 = 0.0;
+ mclock2 = 0.0;
+ songtick1 = songtick2 = 0;
+ lastTempo = 0;
+ storedtimediffs = 0;
+ playStateExt = false; // not playing
+ doSetuid();
+ timerFd=selectTimer();
+ undoSetuid();
+
+ }
+
+//---------------------------------------------------------
+// ~MidiSeq
+//---------------------------------------------------------
+
+MidiSeq::~MidiSeq()
+ {
+ delete timer;
+ }
+
+//---------------------------------------------------------
+// selectTimer()
+// select one of the supported timers to use during this run
+//---------------------------------------------------------
+
+signed int MidiSeq::selectTimer()
+ {
+ int tmrFd;
+
+ printf("Trying RTC timer...\n");
+ timer = new RtcTimer();
+ tmrFd = timer->initTimer();
+ if (tmrFd != -1) { // ok!
+ printf("got timer = %d\n", tmrFd);
+ return tmrFd;
+ }
+ delete timer;
+
+ printf("Trying ALSA timer...\n");
+ timer = new AlsaTimer();
+ tmrFd = timer->initTimer();
+ if ( tmrFd!= -1) { // ok!
+ printf("got timer = %d\n", tmrFd);
+ return tmrFd;
+ }
+ delete timer;
+ timer=NULL;
+ QMessageBox::critical( 0, /*tr*/(QString("Failed to start timer!")),
+ /*tr*/(QString("No functional timer was available.\n"
+ "RTC timer not available, check if /dev/rtc is available and readable by current user\n"
+ "Alsa timer not available, check if module snd_timer is available and /dev/snd/timer is available")));
+ printf("No functional timer available!!!\n");
+ exit(1);
+ }
+
+//---------------------------------------------------------
+// threadStart
+// called from loop()
+//---------------------------------------------------------
+
+void MidiSeq::threadStart(void*)
+ {
+ // Removed by Tim. p3.3.17
+ /*
+ struct sched_param rt_param;
+ memset(&rt_param, 0, sizeof(rt_param));
+ int prio_min = sched_get_priority_min(SCHED_FIFO);
+ int prio_max = sched_get_priority_max(SCHED_FIFO);
+
+ if (prio < prio_min) prio = prio_min;
+ else if (prio > prio_max) prio = prio_max;
+
+ rt_param.sched_priority = prio;
+ int rv = pthread_setschedparam(pthread_self(), SCHED_FIFO, &rt_param);
+ if (rv != 0)
+ perror("set realtime scheduler");
+ */
+
+ int policy;
+ if ((policy = sched_getscheduler (0)) < 0) {
+ printf("Cannot get current client scheduler: %s\n", strerror(errno));
+ }
+ if (policy != SCHED_FIFO)
+ printf("midi thread %d _NOT_ running SCHED_FIFO\n", getpid());
+ updatePollFd();
+ }
+
+//---------------------------------------------------------
+// alsaMidiRead
+//---------------------------------------------------------
+
+static void alsaMidiRead(void*, void*)
+ {
+ // calls itself midiDevice->recordEvent(MidiRecordEvent):
+ alsaProcessMidiInput();
+ }
+
+//---------------------------------------------------------
+// midiRead
+//---------------------------------------------------------
+
+static void midiRead(void*, void* d)
+ {
+ MidiDevice* dev = (MidiDevice*) d;
+ dev->processInput();
+ }
+
+//---------------------------------------------------------
+// synthIRead
+//---------------------------------------------------------
+
+#if 0
+static void synthIRead(void*, void* d)
+ {
+ SynthI* syn = (SynthI*) d;
+ syn->processInput();
+ }
+#endif
+
+//---------------------------------------------------------
+// midiWrite
+//---------------------------------------------------------
+
+static void midiWrite(void*, void* d)
+ {
+ MidiDevice* dev = (MidiDevice*) d;
+ dev->flush();
+ }
+
+//---------------------------------------------------------
+// updatePollFd
+//---------------------------------------------------------
+
+void MidiSeq::updatePollFd()
+ {
+ if (!isRunning())
+ return;
+
+ clearPollFd();
+ addPollFd(timerFd, POLLIN, midiTick, this, 0);
+
+ if (timerFd == -1) {
+ fprintf(stderr, "updatePollFd: no timer fd\n");
+ if (!debugMode)
+ exit(-1);
+ }
+
+ addPollFd(toThreadFdr, POLLIN, ::readMsg, this, 0);
+
+ //---------------------------------------------------
+ // midi ports
+ //---------------------------------------------------
+
+ for (iMidiDevice imd = midiDevices.begin(); imd != midiDevices.end(); ++imd) {
+ MidiDevice* dev = *imd;
+ int port = dev->midiPort();
+ const QString name = dev->name();
+ if (port == -1)
+ continue;
+ if ((dev->rwFlags() & 0x2) || (extSyncFlag.value()
+ //&& (rxSyncPort == port || rxSyncPort == -1))) {
+ //&& (dev->syncInfo().MCIn()))) {
+ && (midiPorts[port].syncInfo().MCIn()))) {
+ if(dev->selectRfd() < 0){
+ //fprintf(stderr, "WARNING: read-file-descriptor for {%s} is negative\n", name.latin1());
+ }
+ addPollFd(dev->selectRfd(), POLLIN, ::midiRead, this, dev);
+ }
+ if (dev->bytesToWrite()){
+ if(dev->selectWfd() < 0){
+ //fprintf(stderr, "WARNING: write-file-descriptor for {%s} is negative\n", name.latin1());
+ }
+ addPollFd(dev->selectWfd(), POLLOUT, ::midiWrite, this, dev);
+ }
+ }
+ // special handling for alsa midi:
+ // (one fd for all devices)
+ // this allows for processing of some alsa events
+ // even if no alsa driver is active (assigned to a port)
+ addPollFd(alsaSelectRfd(), POLLIN, ::alsaMidiRead, this, 0);
+ }
+
+//---------------------------------------------------------
+// threadStop
+// called from loop()
+//---------------------------------------------------------
+
+void MidiSeq::threadStop()
+ {
+ timer->stopTimer();
+ //timer.stopTimer();
+ }
+
+//---------------------------------------------------------
+// setRtcTicks
+// return true on success
+//---------------------------------------------------------
+
+bool MidiSeq::setRtcTicks()
+ {
+
+ //timer.setTimerFreq(config.rtcTicks);
+ //timer.startTimer();
+ timer->setTimerFreq(config.rtcTicks);
+ timer->startTimer();
+ realRtcTicks = config.rtcTicks;
+ return true;
+ }
+
+//---------------------------------------------------------
+// start
+// return true on error
+//---------------------------------------------------------
+
+//bool MidiSeq::start()
+void MidiSeq::start(int priority)
+ {
+ // Changed by Tim. p3.3.17
+
+ prio = priority;
+
+ //timerFd = -1;
+
+ doSetuid();
+ //timerFd = selectTimer();
+ //timerFd = timer.initTimer();
+ //printf("timerFd=%d\n",timerFd);
+ setRtcTicks();
+ undoSetuid();
+ //Thread::start();
+ Thread::start(priority);
+ //return false;
+ }
+
+//---------------------------------------------------------
+// processMidiClock
+//---------------------------------------------------------
+
+void MidiSeq::processMidiClock()
+ {
+// if (genMCSync) {
+// midiPorts[txSyncPort].sendClock();
+// }
+
+/* if (state == START_PLAY) {
+ // start play on sync
+ state = PLAY;
+ _midiTick = playTickPos;
+ midiClock = playTickPos;
+
+ int bar, beat, tick;
+ sigmap.tickValues(_midiTick, &bar, &beat, &tick);
+ midiClick = sigmap.bar2tick(bar, beat+1, 0);
+
+ double cpos = tempomap.tick2time(playTickPos);
+ samplePosStart = samplePos - lrint(cpos * sampleRate);
+ rtcTickStart = rtcTick - lrint(cpos * realRtcTicks);
+
+ endSlice = playTickPos;
+ recTick = playTickPos;
+ lastTickPos = playTickPos;
+
+ tempoSN = tempomap.tempoSN();
+
+ startRecordPos.setPosTick(playTickPos);
+ }
+*/
+// midiClock += config.division/24;
+ }
+
+//---------------------------------------------------------
+// midiTick
+//---------------------------------------------------------
+
+void MidiSeq::midiTick(void* p, void*)
+ {
+ MidiSeq* at = (MidiSeq*)p;
+ at->processTimerTick();
+ if (TIMER_DEBUG)
+ {
+ if(MidiSeq::ticker++ > 100)
+ {
+ printf("tick!\n");
+ MidiSeq::ticker=0;
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// processTimerTick
+//---------------------------------------------------------
+
+void MidiSeq::processTimerTick()
+ {
+ // Disabled by Tim. p3.3.22
+// extern int watchMidi;
+// ++watchMidi; // make a simple watchdog happy
+
+ //---------------------------------------------------
+ // read elapsed rtc timer ticks
+ //---------------------------------------------------
+
+ // This is required otherwise it freezes.
+ unsigned long nn;
+ if (timerFd != -1) {
+ nn = timer->getTimerTicks();
+ //nn = timer.getTimerTicks();
+ nn >>= 8;
+ }
+
+ if (idle) {
+// printf("IDLE\n");
+ return;
+ }
+ if (midiBusy) {
+ // we hit audio: midiSeq->msgProcess
+ // miss this timer tick
+ return;
+ }
+
+ unsigned curFrame = audio->curFrame();
+
+ // Keep the sync detectors running...
+ // No, done in Song::beat(), (at the much slower heartbeat rate).
+ //
+ //for(int port = 0; port < MIDI_PORTS; ++port)
+ //{
+ // Must keep them running even if there's no device...
+ //if(midiPorts[port].device())
+ // midiPorts[port].syncInfo().setCurFrame(curFrame);
+ //}
+ //for(iMidiDevice imd = midiDevices.begin(); imd != midiDevices.end(); ++imd)
+ // (*imd)->syncInfo().setCurFrame(curFrame);
+
+ if (!extSyncFlag.value()) {
+ //int curTick = tempomap.frame2tick(curFrame);
+ // Copied from Tempomap.
+ //int curTick = lrint((double(curFrame)/double(sampleRate)) * tempomap.globalTempo() * config.division * 10000.0 / double(tempomap.tempo(song->cpos())));
+ //int curTick = lrint((double(curFrame)/double(sampleRate)) * tempomap.globalTempo() * 240000.0 / double(tempomap.tempo(song->cpos())));
+ int curTick = lrint((double(curFrame)/double(sampleRate)) * double(tempomap.globalTempo()) * double(config.division) * 10000.0 / double(tempomap.tempo(song->cpos())));
+ //int curTick = int((double(curFrame)/double(sampleRate)) * double(tempomap.globalTempo()) * double(config.division * 10000.0) / double(tempomap.tempo(song->cpos())));
+
+/* if ( midiClock > curTick + 100) // reinitialize
+ {
+ midiClock = curTick;
+ }
+ else if( curTick > midiClock + 100) // reinitialize
+ {
+ midiClock = curTick;
+ }*/
+
+ if(midiClock > curTick)
+ midiClock = curTick;
+
+ int div = config.division/24;
+ if(curTick >= midiClock + div) {
+ //if(curTick >= midiClock) {
+ //processMidiClock();
+ int perr = (curTick - midiClock) / div;
+ //int perr = curTick - midiClock;
+
+ bool used = false;
+
+ //if(genMCSync)
+ //{
+ //midiPorts[txSyncPort].sendClock();
+ for(int port = 0; port < MIDI_PORTS; ++port)
+ {
+ MidiPort* mp = &midiPorts[port];
+
+ // No device? Clock out not turned on?
+ //MidiDevice* dev = mp->device();
+ //if(!dev || !mp->syncInfo().MCOut())
+ if(!mp->device() || !mp->syncInfo().MCOut())
+ continue;
+
+ // Shall we check open flags?
+ //if(!(dev->rwFlags() & 0x1) || !(dev->openFlags() & 1))
+ //if(!(dev->openFlags() & 1))
+ // continue;
+
+ used = true;
+
+ mp->sendClock();
+ }
+
+ /*
+ for(iMidiDevice imd = midiDevices.begin(); imd != midiDevices.end(); ++imd)
+ {
+ MidiDevice* dev = *imd;
+
+ if(!dev->syncInfo().MCOut())
+ continue;
+
+ // Shall we check open flags?
+ //if(!(dev->rwFlags() & 0x1) || !(dev->openFlags() & 1))
+ //if(!(dev->openFlags() & 1))
+ // continue;
+
+ int port = dev->midiPort();
+ // Without this -1 check, interesting sync things can be done by the user without ever
+ // assigning any devices to ports !
+ //if(port < 0 || port > MIDI_PORTS)
+ if(port < -1 || port > MIDI_PORTS)
+ continue;
+
+ if(port == -1)
+ // Send straight to the device... Copied from MidiPort.
+ {
+ MidiPlayEvent event(0, 0, 0, ME_CLOCK, 0, 0);
+ dev->putEvent(event);
+ }
+ else
+ // Go through the port...
+ midiPorts[port].sendClock();
+ }
+ */
+
+ if(debugMsg && used && perr > 1)
+ printf("Dropped %d midi out clock(s). curTick:%d midiClock:%d div:%d\n", perr, curTick, midiClock, div);
+ //}
+
+ // Keeping in mind how (receiving end) Phase Locked Loops (usually) operate...
+ // Increment as if we had caught the timer exactly on the mark, even if the timer
+ // has passed beyond the mark, or even beyond 2 * div.
+ // If we missed some chances to send clock, resume the count where it would have been,
+ // had we not missed chances.
+ // We can't do anything about missed chances except send right away, and make up
+ // for gained time by losing time in the next count...
+ // In other words, use equalization periods to counter gained/lost time, so that
+ // ultimately, over time, the receiver remains in phase, despite any short dropouts / phase glitches.
+ // (midiClock only increments by div units).
+ //
+ // Tested: With midi thread set to high priority, very few clock dropouts ocurred (P4 1.6Ghz).
+ // But target device tick drifts out of phase with muse tick slowly over time, say 20 bars or so.
+ // May need more tweaking, possibly use round with/instead of lrint (above), and/or
+ // do not use equalization periods - set midiClock to fractions of div.
+ // Tested: With RTC resolution at 1024, stability was actually better than with 8192!
+ // It stayed in sync more than 64 bars...
+ //
+ //
+ // Using equalization periods...
+ midiClock += (perr * div);
+ //midiClock += perr;
+ //
+ // No equalization periods... TODO:
+ //midiClock += (perr * div);
+ }
+ }
+
+// if (genMTCSync) {
+ // printf("Midi Time Code Sync generation not impl.\n");
+// }
+
+ // p3.3.25
+ int tickpos = audio->tickPos();
+ bool extsync = extSyncFlag.value();
+ //
+ // play all events upto curFrame
+ //
+ for (iMidiDevice id = midiDevices.begin(); id != midiDevices.end(); ++id) {
+ MidiDevice* md = *id;
+ // Is it a Jack midi device? p3.3.36
+ //MidiJackDevice* mjd = dynamic_cast<MidiJackDevice*>(md);
+ //if(mjd)
+ if(md->deviceType() == MidiDevice::JACK_MIDI)
+ continue;
+ if(md->isSynti()) // syntis are handled by audio thread
+ continue;
+ int port = md->midiPort();
+ MidiPort* mp = port != -1 ? &midiPorts[port] : 0;
+ MPEventList* el = md->playEvents();
+ if (el->empty())
+ continue;
+ iMPEvent i = md->nextPlayEvent();
+ for (; i != el->end(); ++i) {
+ // p3.3.25
+ // If syncing to external midi sync, we cannot use the tempo map.
+ // Therefore we cannot get sub-tick resolution. Just use ticks instead of frames.
+ //if (i->time() > curFrame) {
+ if (i->time() > (extsync ? tickpos : curFrame)) {
+ //printf(" curT %d frame %d\n", i->time(), curFrame);
+ break; // skip this event
+ }
+
+ if (mp) {
+ if (mp->sendEvent(*i))
+ break;
+ }
+ else {
+ if (md->putEvent(*i))
+ break;
+ }
+ }
+ md->setNextPlayEvent(i);
+ }
+ }
+
+//---------------------------------------------------------
+// msgMsg
+//---------------------------------------------------------
+
+void MidiSeq::msgMsg(int id)
+ {
+ AudioMsg msg;
+ msg.id = id;
+ Thread::sendMsg(&msg);
+ }
+
+//---------------------------------------------------------
+// msgSetMidiDevice
+// to avoid timeouts in the RT-thread, setMidiDevice
+// is done in GUI context after setting the midi thread
+// into idle mode
+//---------------------------------------------------------
+
+void MidiSeq::msgSetMidiDevice(MidiPort* port, MidiDevice* device)
+ {
+ AudioMsg msg;
+ msg.id = SEQM_IDLE;
+ msg.a = true;
+ Thread::sendMsg(&msg);
+
+ port->setMidiDevice(device);
+
+ msg.id = SEQM_IDLE;
+ msg.a = false;
+ Thread::sendMsg(&msg);
+ }
+
+void MidiSeq::msgProcess() { msgMsg(MS_PROCESS); }
+void MidiSeq::msgSeek() { msgMsg(SEQM_SEEK); }
+void MidiSeq::msgStop() { msgMsg(MS_STOP); }
+void MidiSeq::msgSetRtc() { msgMsg(MS_SET_RTC); }
+void MidiSeq::msgUpdatePollFd() { msgMsg(MS_UPDATE_POLL_FD); }
+
diff --git a/muse2/muse/midiseq.h b/muse2/muse/midiseq.h
new file mode 100644
index 00000000..a11820fe
--- /dev/null
+++ b/muse2/muse/midiseq.h
@@ -0,0 +1,102 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: midiseq.h,v 1.6.2.11 2009/12/20 05:00:35 terminator356 Exp $
+//
+// (C) Copyright 2003 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __MIDISEQ_H__
+#define __MIDISEQ_H__
+
+#include "thread.h"
+#include "mpevent.h"
+#include "driver/alsatimer.h"
+#include "driver/rtctimer.h"
+
+class MPEventList;
+class SynthI;
+class MTC;
+class MidiPort;
+class MidiDevice;
+
+//---------------------------------------------------------
+// MidiSeq
+//---------------------------------------------------------
+
+class MidiSeq : public Thread {
+ int realRtcTicks;
+ int timerFd;
+ int idle;
+ int prio; // realtime priority
+ int midiClock;
+ static int ticker;
+
+/* Testing */
+ bool playStateExt; // used for keeping play state in sync functions
+ int recTick; // ext sync tick position
+// int lastTickPos; // position of last sync tick
+ // run values:
+// unsigned _midiTick;
+ double mclock1, mclock2;
+ double songtick1, songtick2;
+ int recTick1, recTick2;
+ int lastTempo;
+ double timediff[24];
+ int storedtimediffs;
+
+ void alignAllTicks(int frameOverride = 0);
+/* Testing */
+
+ Timer *timer;
+
+ signed int selectTimer();
+ bool setRtcTicks();
+ static void midiTick(void* p, void*);
+ void processTimerTick();
+ void processSeek();
+ void processStop();
+ void processMidiClock();
+ virtual void processMsg(const ThreadMsg*);
+ void updatePollFd();
+
+ void mtcSyncMsg(const MTC&, int, bool);
+ //void mtcInputFull(const unsigned char* p, int n);
+ //void nonRealtimeSystemSysex(const unsigned char* p, int n);
+
+ public:
+ //MidiSeq(int prio, const char* name);
+ MidiSeq(const char* name);
+
+ ~MidiSeq();
+
+ //bool start();
+ virtual void start(int);
+
+ virtual void threadStop();
+ virtual void threadStart(void*);
+
+ void realtimeSystemInput(int, int);
+ void mtcInputQuarter(int, unsigned char);
+ void setSongPosition(int, int);
+ // void eventReceived(MidiRecordEvent& event);
+ //void mmcInput(const unsigned char* p, int n);
+ void mmcInput(int, const unsigned char*, int);
+ void mtcInputFull(int, const unsigned char*, int);
+ void nonRealtimeSystemSysex(int, const unsigned char*, int);
+
+ void msgMsg(int id);
+ void msgProcess();
+ void msgSeek();
+ void msgStop();
+ void msgSetRtc();
+ void msgUpdatePollFd();
+ void msgAddSynthI(SynthI* synth);
+ void msgRemoveSynthI(SynthI* synth);
+ void msgSetMidiDevice(MidiPort*, MidiDevice*);
+ };
+
+extern MidiSeq* midiSeq;
+extern volatile bool midiBusy;
+#endif
+
diff --git a/muse2/muse/miditransform.cpp b/muse2/muse/miditransform.cpp
new file mode 100644
index 00000000..486f47c5
--- /dev/null
+++ b/muse2/muse/miditransform.cpp
@@ -0,0 +1,1702 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: miditransform.cpp,v 1.8.2.3 2009/05/24 21:43:44 terminator356 Exp $
+//
+// (C) Copyright 2001 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include <stdio.h>
+#include <list>
+#include <qpushbutton.h>
+#include <qlineedit.h>
+#include <qcombobox.h>
+#include <q3listbox.h>
+#include <qspinbox.h>
+#include <q3multilineedit.h>
+#include <qcheckbox.h>
+
+#include "helper.h"
+#include "spinboxFP.h"
+#include "event.h"
+#include "miditransform.h"
+#include "track.h"
+#include "song.h"
+#include "xml.h"
+#include "globals.h"
+#include "comboQuant.h"
+#include "pitchedit.h"
+#include "audio.h"
+#include "gconfig.h"
+#include "midictrl.h"
+
+//
+// Order of events:
+// Note, Poly Pressure, Control, AfterTouch, Pitch Bend, NRPN, RPN
+//
+#define MIDITRANSFORM_NOTE 0
+#define MIDITRANSFORM_POLY 1
+#define MIDITRANSFORM_CTRL 2
+#define MIDITRANSFORM_ATOUCH 3
+#define MIDITRANSFORM_PITCHBEND 4
+#define MIDITRANSFORM_NRPN 5
+#define MIDITRANSFORM_RPN 6
+
+
+static int eventTypeTable[] = {
+ MIDITRANSFORM_NOTE, MIDITRANSFORM_POLY, MIDITRANSFORM_CTRL, MIDITRANSFORM_ATOUCH,
+ MIDITRANSFORM_PITCHBEND, MIDITRANSFORM_NRPN, MIDITRANSFORM_RPN
+ };
+
+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(int level, 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
+ //---------------------------------------------------
+
+ updatePresetList();
+ connect(song, SIGNAL(songChanged(int)), SLOT(songChanged(int)));
+ }
+
+//---------------------------------------------------------
+// ~MidiTransformDialog
+//---------------------------------------------------------
+
+MidiTransformerDialog::~MidiTransformerDialog()
+ {
+ delete data;
+ }
+
+//---------------------------------------------------------
+// songChanged
+//---------------------------------------------------------
+
+void MidiTransformerDialog::songChanged(int flags)
+{
+ // Whenever a song is loaded, flags is -1. Since transforms are part of configuration,
+ // use SC_CONFIG here, to filter unwanted song change events.
+ if(flags & SC_CONFIG)
+ updatePresetList();
+}
+
+//---------------------------------------------------------
+// updatePresetList
+//---------------------------------------------------------
+
+void MidiTransformerDialog::updatePresetList()
+{
+ data->cmt = 0;
+ data->cindex = 0;
+ presetList->clear();
+ 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"));
+ presetList->setCurrentItem(0);
+ }
+
+ //data->cindex = 0;
+ //presetList->setCurrentItem(0);
+
+}
+
+//---------------------------------------------------------
+// writeMidiTransforms
+//---------------------------------------------------------
+
+void writeMidiTransforms(int level, Xml& xml)
+ {
+ for (iMidiTransformation i = mtlist.begin(); i != mtlist.end(); ++i) {
+ (*i)->write(level, xml);
+ }
+ }
+
+//---------------------------------------------------------
+// write
+//---------------------------------------------------------
+
+void MidiTransformation::write(int level, Xml& xml)
+ {
+ xml.tag(level++, "midiTransform");
+ xml.strTag(level, "name", name);
+ xml.strTag(level, "comment", comment);
+ xml.intTag(level, "function", int(funcOp));
+ xml.intTag(level, "selectedTracks", selectedTracks);
+ xml.intTag(level, "insideLoop", insideLoop);
+ if (funcOp == Quantize) {
+ xml.intTag(level, "quantVal", quantVal);
+ }
+ if (funcOp == Transform || funcOp == Insert) {
+ if (procEvent != Keep) {
+ xml.intTag(level, "procEventOp", int(procEvent));
+ xml.intTag(level, "eventType", int(eventType));
+ }
+ if (procVal1 != Keep) {
+ xml.intTag(level, "procVal1Op", int(procVal1));
+ xml.intTag(level, "procVal1a", procVal1a);
+ xml.intTag(level, "procVal1b", procVal1b);
+ }
+ if (procVal2 != Keep) {
+ xml.intTag(level, "procVal2Op", int(procVal2));
+ xml.intTag(level, "procVal2a", procVal2a);
+ xml.intTag(level, "procVal2b", procVal2b);
+ }
+ if (procLen != Keep) {
+ xml.intTag(level, "procLenOp", int(procLen));
+ xml.intTag(level, "procLen", procLenA);
+ }
+ if (procPos != Keep) {
+ xml.intTag(level, "procPosOp", int(procPos));
+ xml.intTag(level, "procPos", procPosA);
+ }
+ }
+ if (selEventOp != Ignore) {
+ xml.intTag(level, "selEventOp", int(selEventOp));
+ xml.intTag(level, "selEventType", int(selType));
+ }
+ if (selVal1 != Ignore) {
+ xml.intTag(level, "selVal1Op", int(selVal1));
+ xml.intTag(level, "selVal1a", selVal1a);
+ xml.intTag(level, "selVal1b", selVal1b);
+ }
+ if (selVal2 != Ignore) {
+ xml.intTag(level, "selVal2Op", int(selVal2));
+ xml.intTag(level, "selVal2a", selVal2a);
+ xml.intTag(level, "selVal2b", selVal2b);
+ }
+ if (selLen != Ignore) {
+ xml.intTag(level, "selLenOp", int(selLen));
+ xml.intTag(level, "selLenA", selLenA);
+ xml.intTag(level, "selLenB", selLenB);
+ }
+ if (selRange != Ignore) {
+ xml.intTag(level, "selRangeOp", int(selRange));
+ xml.intTag(level, "selRangeA", selRangeA);
+ xml.intTag(level, "selRangeB", selRangeB);
+ }
+ xml.etag(level, "midiTransform");
+ }
+
+//---------------------------------------------------------
+// readMidiTransform
+//---------------------------------------------------------
+
+void readMidiTransform(Xml& xml)
+ {
+ MidiTransformation trans(QWidget::tr("new"));
+
+ 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 == "name")
+ trans.name = xml.parse1();
+ else if (tag == "comment")
+ trans.comment = xml.parse1();
+ else if (tag == "function")
+ trans.funcOp = TransformFunction(xml.parseInt());
+ else if (tag == "selectedTracks")
+ trans.selectedTracks = xml.parseInt();
+ else if (tag == "insideLoop")
+ trans.insideLoop = xml.parseInt();
+ else if (tag == "quantVal")
+ trans.quantVal = xml.parseInt();
+ else if (tag == "procEventOp")
+ trans.procEvent = TransformOperator(xml.parseInt());
+ else if (tag == "eventType")
+ trans.eventType = EventType(xml.parseInt());
+ else if (tag == "procVal1Op")
+ trans.procVal1 = TransformOperator(xml.parseInt());
+ else if (tag == "procVal1a")
+ trans.procVal1a = xml.parseInt();
+ else if (tag == "procVal1b")
+ trans.procVal1b = xml.parseInt();
+ else if (tag == "procVal2Op")
+ trans.procVal2 = TransformOperator(xml.parseInt());
+ else if (tag == "procVal2a")
+ trans.procVal2a = xml.parseInt();
+ else if (tag == "procVal2b")
+ trans.procVal2b = xml.parseInt();
+ else if (tag == "procLenOp")
+ trans.procLen = TransformOperator(xml.parseInt());
+ else if (tag == "procLen")
+ trans.procLenA = xml.parseInt();
+ else if (tag == "procPosOp")
+ trans.procPos = TransformOperator(xml.parseInt());
+ else if (tag == "procPos")
+ trans.procPosA = xml.parseInt();
+ else if (tag == "selEventOp")
+ trans.selEventOp = ValOp(xml.parseInt());
+ else if (tag == "selEventType")
+ trans.selType = EventType(xml.parseInt());
+ else if (tag == "selVal1Op")
+ trans.selVal1 = ValOp(xml.parseInt());
+ else if (tag == "selVal1a")
+ trans.selVal1a = xml.parseInt();
+ else if (tag == "selVal1b")
+ trans.selVal1b = xml.parseInt();
+ else if (tag == "selVal2Op")
+ trans.selVal2 = ValOp(xml.parseInt());
+ else if (tag == "selVal2a")
+ trans.selVal2a = xml.parseInt();
+ else if (tag == "selVal2b")
+ trans.selVal2b = xml.parseInt();
+ else if (tag == "selLenOp")
+ trans.selLen = ValOp(xml.parseInt());
+ else if (tag == "selLenA")
+ trans.selLenA = xml.parseInt();
+ else if (tag == "selLenB")
+ trans.selLenB = xml.parseInt();
+ else if (tag == "selRangeOp")
+ trans.selRange = ValOp(xml.parseInt());
+ else if (tag == "selRangeA")
+ trans.selRangeA = xml.parseInt();
+ else if (tag == "selRangeB")
+ trans.selRangeB = xml.parseInt();
+ else
+ xml.unknown("midiTransform");
+ break;
+ case Xml::TagEnd:
+ if (xml.s1() == "midiTransform") {
+ // By T356. A previous bug caused some .med files to grow very large
+ // with duplicate transforms. Here we can eliminate those duplicates.
+ for(iMidiTransformation i = mtlist.begin(); i != mtlist.end(); ++i)
+ {
+ if((*i)->name == trans.name)
+ return;
+ }
+
+ MidiTransformation* t = new MidiTransformation(trans);
+ mtlist.push_back(t);
+ return;
+ }
+ default:
+ break;
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// clearMidiTransforms
+//---------------------------------------------------------
+
+void clearMidiTransforms()
+{
+ for (iMidiTransformation i = mtlist.begin(); i != mtlist.end(); ++i)
+ {
+ MidiTransformation* t = *i;
+ if(t)
+ delete t;
+ }
+ mtlist.clear();
+}
+
+//---------------------------------------------------------
+// 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:
+ // Indicate do clone parts.
+ removePortCtrlEvents(event, part, true);
+ song->changeEvent(event, newEvent, part);
+ // Indicate do clone parts.
+ addPortCtrlEvents(newEvent, part, true);
+ // Indicate do port controller values and clone parts.
+ //song->undoOp(UndoOp::ModifyEvent, newEvent, event, part);
+ song->undoOp(UndoOp::ModifyEvent, newEvent, event, part, true, true);
+ song->addUpdateFlags(SC_EVENT_MODIFIED);
+ break;
+ case Insert:
+ // Indicate do port controller values and clone parts.
+ //song->undoOp(UndoOp::AddEvent, dummy, newEvent, part);
+ song->undoOp(UndoOp::AddEvent, dummy, newEvent, part, true, true);
+ song->addEvent(newEvent, part);
+ // Indicate do clone parts.
+ addPortCtrlEvents(newEvent, part, true);
+ song->addUpdateFlags(SC_EVENT_INSERTED);
+ break;
+ case Extract:
+ // Indicate do port controller values and clone parts.
+ //song->undoOp(UndoOp::DeleteEvent, dummy, event, part);
+ song->undoOp(UndoOp::DeleteEvent, dummy, event, part, true, true);
+ // Indicate do clone parts.
+ removePortCtrlEvents(event, part, true);
+ 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 = sigmap.raster(tick, data->cmt->quantVal) - tick;
+ if (tick != rt) {
+ // Indicate do clone parts.
+ removePortCtrlEvents(event, part, true);
+ Event newEvent = event.clone();
+ newEvent.setTick(rt);
+ song->changeEvent(event, newEvent, part);
+ // Indicate do clone parts.
+ addPortCtrlEvents(newEvent, part, true);
+ // Indicate do port controller values and clone parts.
+ //song->undoOp(UndoOp::ModifyEvent, newEvent, event, part);
+ song->undoOp(UndoOp::ModifyEvent, newEvent, event, part, true, true);
+ song->addUpdateFlags(SC_EVENT_MODIFIED);
+ }
+ }
+ break;
+ case Delete:
+ {
+ Event ev;
+ // Indicate do port controller values and clone parts.
+ //song->undoOp(UndoOp::DeleteEvent, ev, event, part, true, true);
+ song->undoOp(UndoOp::DeleteEvent, ev, event, part, true, true);
+ // Indicate do clone parts.
+ removePortCtrlEvents(event, part, true);
+ 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 (!typesMatch(event, cmt->selType)) {
+ return false;
+ }
+ break;
+ case Unequal:
+ if (typesMatch(event, 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;
+ 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);
+
+ std::vector< EventList* > doneList;
+ typedef std::vector< EventList* >::iterator iDoneList;
+ iDoneList idl;
+
+ 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();
+ // Check if the event list has already been done. Skip repeated clones.
+ for(idl = doneList.begin(); idl != doneList.end(); ++idl)
+ if(*idl == el)
+ break;
+ if(idl != doneList.end())
+ break;
+ doneList.push_back(el);
+
+ 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();
+ // Check if the event list has already been done. Skip repeated clones.
+ for(idl = doneList.begin(); idl != doneList.end(); ++idl)
+ if(*idl == el)
+ break;
+ if(idl != doneList.end())
+ break;
+ doneList.push_back(el);
+
+ 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;
+ int 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();
+ }
+
+//-----------------------------op----------------------------
+// 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);
+ }
+
+
+
+/*!
+ \fn MidiTransformerDialog::typesMatch(MidiEvent e, unsigned t)
+ */
+bool MidiTransformerDialog::typesMatch(Event& e, unsigned selType)
+ {
+ bool matched = false;
+ switch (selType)
+ {
+ case MIDITRANSFORM_NOTE:
+ matched = (e.type() == Note);
+ break;
+ case MIDITRANSFORM_POLY:
+ matched = (e.type() == PAfter);
+ break;
+ case MIDITRANSFORM_CTRL:
+ matched = (e.type() == Controller);
+ break;
+ case MIDITRANSFORM_ATOUCH:
+ matched = (e.type() == CAfter);
+ break;
+ case MIDITRANSFORM_PITCHBEND:
+ {
+ if (e.type() == Controller) {
+ MidiController::ControllerType c = midiControllerType(e.dataA());
+ matched = (c == MidiController::Pitch);
+ }
+ break;
+ }
+ case MIDITRANSFORM_NRPN:
+ {
+ if (e.type() == Controller) {
+ MidiController::ControllerType c = midiControllerType(e.dataA());
+ matched = (c == MidiController::NRPN);
+ }
+ }
+ case MIDITRANSFORM_RPN:
+ {
+ if (e.type() == Controller) {
+ MidiController::ControllerType c = midiControllerType(e.dataA());
+ matched = (c == MidiController::RPN);
+ }
+ }
+ default:
+ fprintf(stderr, "Error matching type in MidiTransformerDialog: unknown eventtype!\n");
+ break;
+ }
+ //printf("Event type=%d, selType =%d matched=%d\n", e.type(), selType, matched);
+ return matched;
+ }
diff --git a/muse2/muse/miditransform.h b/muse2/muse/miditransform.h
new file mode 100644
index 00000000..3dcb4a98
--- /dev/null
+++ b/muse2/muse/miditransform.h
@@ -0,0 +1,105 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: miditransform.h,v 1.2.2.2 2009/02/02 21:38:00 terminator356 Exp $
+//
+// (C) Copyright 2001 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __MIDITRANSFORM_H__
+#define __MIDITRANSFORM_H__
+
+#include "transformbase.h"
+
+class Q3ListBoxItem;
+class MidiTransformation;
+class MidiTransformPrivate;
+class Event;
+class MidiPart;
+class 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&, MidiPart*, MidiPart*);
+ bool isSelected(Event&, MidiPart*);
+ void transformEvent(Event&, MidiPart*, MidiPart*);
+ bool typesMatch(Event& e, unsigned selType);
+
+ void updatePresetList();
+
+ 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(Q3ListBoxItem*);
+ 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 slots:
+ void songChanged(int);
+
+ public:
+ MidiTransformerDialog(QWidget* parent = 0, const char* name = 0,
+ bool modal = false, Qt::WFlags fl = 0);
+ ~MidiTransformerDialog();
+ };
+
+extern void writeMidiTransforms(int level, Xml& xml);
+extern void readMidiTransform(Xml&);
+extern void clearMidiTransforms();
+#endif
diff --git a/muse2/muse/mixer/Makefile.am b/muse2/muse/mixer/Makefile.am
new file mode 100644
index 00000000..3d4763c0
--- /dev/null
+++ b/muse2/muse/mixer/Makefile.am
@@ -0,0 +1,26 @@
+include $(top_srcdir)/common.am
+
+if PCH
+AM_CXXFLAGS += -include $(top_srcdir)/all.h
+endif
+
+noinst_LIBRARIES = libmixer.a
+
+dist_libmixer_a_SOURCES = \
+ amixer.cpp amixer.h \
+ meter.cpp meter.h \
+ rack.cpp rack.h \
+ panknob.cpp panknob.h \
+ auxknob.cpp auxknob.h \
+ routedialogbase.ui routedialog.h routedialog.cpp \
+ strip.h strip.cpp astrip.h astrip.cpp mstrip.h mstrip.cpp
+
+nodist_libmixer_a_SOURCES = \
+ moc_amixer.cpp \
+ moc_strip.cpp moc_astrip.cpp moc_mstrip.cpp \
+ moc_meter.cpp \
+ moc_rack.cpp \
+ moc_panknob.cpp \
+ moc_auxknob.cpp \
+ moc_routedialog.cpp
+
diff --git a/muse2/muse/mixer/Makefile.in b/muse2/muse/mixer/Makefile.in
new file mode 100644
index 00000000..a1681599
--- /dev/null
+++ b/muse2/muse/mixer/Makefile.in
@@ -0,0 +1,628 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
+ $(top_srcdir)/common.am
+@PCH_TRUE@am__append_1 = -include $(top_srcdir)/all.h
+subdir = muse/mixer
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal-include.m4 \
+ $(top_srcdir)/m4/alsa.m4 $(top_srcdir)/m4/docbook.m4 \
+ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
+ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
+ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+LIBRARIES = $(noinst_LIBRARIES)
+ARFLAGS = cru
+libmixer_a_AR = $(AR) $(ARFLAGS)
+libmixer_a_LIBADD =
+dist_libmixer_a_OBJECTS = amixer.$(OBJEXT) meter.$(OBJEXT) \
+ rack.$(OBJEXT) panknob.$(OBJEXT) auxknob.$(OBJEXT) \
+ routedialogbase.$(OBJEXT) routedialog.$(OBJEXT) \
+ strip.$(OBJEXT) astrip.$(OBJEXT) mstrip.$(OBJEXT)
+nodist_libmixer_a_OBJECTS = moc_amixer.$(OBJEXT) moc_strip.$(OBJEXT) \
+ moc_astrip.$(OBJEXT) moc_mstrip.$(OBJEXT) moc_meter.$(OBJEXT) \
+ moc_rack.$(OBJEXT) moc_panknob.$(OBJEXT) moc_auxknob.$(OBJEXT) \
+ moc_routedialog.$(OBJEXT)
+libmixer_a_OBJECTS = $(dist_libmixer_a_OBJECTS) \
+ $(nodist_libmixer_a_OBJECTS)
+DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
+depcomp = $(SHELL) $(top_srcdir)/depcomp
+am__depfiles_maybe = depfiles
+am__mv = mv -f
+CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
+LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
+CXXLD = $(CXX)
+CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \
+ $(LDFLAGS) -o $@
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
+ $(LDFLAGS) -o $@
+SOURCES = $(dist_libmixer_a_SOURCES) $(nodist_libmixer_a_SOURCES)
+DIST_SOURCES = $(dist_libmixer_a_SOURCES)
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ALSA_CFLAGS = @ALSA_CFLAGS@
+ALSA_LIBS = @ALSA_LIBS@
+AMTAR = @AMTAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DOCBOOKSTYLE = @DOCBOOKSTYLE@
+DOCBOOKTARGETS = @DOCBOOKTARGETS@
+DOT = @DOT@
+DOTPATH = @DOTPATH@
+DOXYGEN = @DOXYGEN@
+DOXYGEN_TREEVIEW = @DOXYGEN_TREEVIEW@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+FLUIDSYNTHDIRS = @FLUIDSYNTHDIRS@
+FST_CFLAGS = @FST_CFLAGS@
+FST_LIBS = @FST_LIBS@
+Fluidsynth_CFLAGS = @Fluidsynth_CFLAGS@
+Fluidsynth_LIBS = @Fluidsynth_LIBS@
+GIVERTCAP = @GIVERTCAP@
+GREP = @GREP@
+HAVEDOT = @HAVEDOT@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JACK_CFLAGS = @JACK_CFLAGS@
+JACK_LIBS = @JACK_LIBS@
+JADE = @JADE@
+LASH_CFLAGS = @LASH_CFLAGS@
+LASH_LIBS = @LASH_LIBS@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LO_CFLAGS = @LO_CFLAGS@
+LO_LIBS = @LO_LIBS@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+MUSECXXFLAGS = @MUSECXXFLAGS@
+NM = @NM@
+NMEDIT = @NMEDIT@
+NSGMLS = @NSGMLS@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PCH = @PCH@
+PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+PYTHON = @PYTHON@
+PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
+PYTHON_INCLUDES = @PYTHON_INCLUDES@
+PYTHON_LIB = @PYTHON_LIB@
+PYTHON_PLATFORM = @PYTHON_PLATFORM@
+PYTHON_PREFIX = @PYTHON_PREFIX@
+PYTHON_VERSION = @PYTHON_VERSION@
+QTDIR_BIN = @QTDIR_BIN@
+QTDIR_INC = @QTDIR_INC@
+QT_LIBS = @QT_LIBS@
+RANLIB = @RANLIB@
+SAMPLERATE_CFLAGS = @SAMPLERATE_CFLAGS@
+SAMPLERATE_LIBS = @SAMPLERATE_LIBS@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SNDFILE_CFLAGS = @SNDFILE_CFLAGS@
+SNDFILE_LIBS = @SNDFILE_LIBS@
+STRIP = @STRIP@
+SUIDBUILD = @SUIDBUILD@
+SUIDINSTALL = @SUIDINSTALL@
+USE_SSE = @USE_SSE@
+UUID_CFLAGS = @UUID_CFLAGS@
+UUID_LIBS = @UUID_LIBS@
+VERSION = @VERSION@
+XMKMF = @XMKMF@
+X_CFLAGS = @X_CFLAGS@
+X_EXTRA_LIBS = @X_EXTRA_LIBS@
+X_LIBS = @X_LIBS@
+X_PRE_LIBS = @X_PRE_LIBS@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+have_docbook = @have_docbook@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+lt_ECHO = @lt_ECHO@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+pkgpyexecdir = @pkgpyexecdir@
+pkgpythondir = @pkgpythondir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+pyexecdir = @pyexecdir@
+pythondir = @pythondir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+synth_fluid = @synth_fluid@
+synth_fluidsynth = @synth_fluidsynth@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+AM_CXXFLAGS = $(MUSECXXFLAGS) -I.. -I$(top_srcdir)/synti \
+ -I$(top_srcdir)/muse/widgets -DQT_SHARED -DQT_THREAD_SUPPORT \
+ -DQT_PLUGIN $(QTDIR_INC) -DQT3_SUPPORT $(am__append_1)
+AM_CPPFLAGS =
+MOC = $(QTDIR_BIN)/moc
+#UIC = $(QTDIR_BIN)/uic3
+UIC = /usr/bin/uic3
+UIFILES = $(wildcard *.ui)
+MOCFILES = $(shell for h in $(filter %.h,$(SOURCES)); do \
+ if grep -q Q_OBJECT $$h; then \
+ echo $$h | sed "s/\(.*\)\.h/moc_\1.cpp/"; \
+ fi; \
+ done)
+
+BUILT_SOURCES = $(MOCFILES) $(UIFILES:%.ui=%.h)
+MOSTLYCLEANFILES = $(MOCFILES) $(UIFILES:%.ui=%.h)
+SUFFIXES = .ui .h.gch
+noinst_LIBRARIES = libmixer.a
+dist_libmixer_a_SOURCES = \
+ amixer.cpp amixer.h \
+ meter.cpp meter.h \
+ rack.cpp rack.h \
+ panknob.cpp panknob.h \
+ auxknob.cpp auxknob.h \
+ routedialogbase.ui routedialog.h routedialog.cpp \
+ strip.h strip.cpp astrip.h astrip.cpp mstrip.h mstrip.cpp
+
+nodist_libmixer_a_SOURCES = \
+ moc_amixer.cpp \
+ moc_strip.cpp moc_astrip.cpp moc_mstrip.cpp \
+ moc_meter.cpp \
+ moc_rack.cpp \
+ moc_panknob.cpp \
+ moc_auxknob.cpp \
+ moc_routedialog.cpp
+
+all: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) all-am
+
+.SUFFIXES:
+.SUFFIXES: .ui .h.gch .cpp .lo .o .obj
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/common.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu muse/mixer/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu muse/mixer/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+clean-noinstLIBRARIES:
+ -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
+libmixer.a: $(libmixer_a_OBJECTS) $(libmixer_a_DEPENDENCIES)
+ -rm -f libmixer.a
+ $(libmixer_a_AR) libmixer.a $(libmixer_a_OBJECTS) $(libmixer_a_LIBADD)
+ $(RANLIB) libmixer.a
+
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT)
+
+distclean-compile:
+ -rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/amixer.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/astrip.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/auxknob.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/meter.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/moc_amixer.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/moc_astrip.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/moc_auxknob.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/moc_meter.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/moc_mstrip.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/moc_panknob.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/moc_rack.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/moc_routedialog.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/moc_strip.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mstrip.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/panknob.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rack.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/routedialog.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strip.Po@am__quote@
+
+.cpp.o:
+@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $<
+
+.cpp.obj:
+@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+
+.cpp.lo:
+@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $<
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ mkid -fID $$unique
+tags: TAGS
+
+TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ set x; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: CTAGS
+CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) check-am
+all-am: Makefile $(LIBRARIES)
+installdirs:
+install: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+ -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES)
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+ -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
+clean: clean-am
+
+clean-am: clean-generic clean-libtool clean-noinstLIBRARIES \
+ mostlyclean-am
+
+distclean: distclean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+ distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+ mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: all check install install-am install-strip
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
+ clean-libtool clean-noinstLIBRARIES ctags distclean \
+ distclean-compile distclean-generic distclean-libtool \
+ distclean-tags distdir dvi dvi-am html html-am info info-am \
+ install install-am install-data install-data-am install-dvi \
+ install-dvi-am install-exec install-exec-am install-html \
+ install-html-am install-info install-info-am install-man \
+ install-pdf install-pdf-am install-ps install-ps-am \
+ install-strip installcheck installcheck-am installdirs \
+ maintainer-clean maintainer-clean-generic mostlyclean \
+ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
+ pdf pdf-am ps ps-am tags uninstall uninstall-am
+
+
+de:
+ @for base in $(MOCFILES); do echo -e "\t$${base}.cpp $${base}.h \\"; done
+
+nde:
+ @for base in $(MOCFILES); do echo -e "\tmoc_$${base}.cpp \\"; done
+
+.ui.o: %.h
+ $(UIC) -L $(top_srcdir)/muse/widgets -o $*.cpp -impl $*.h $*.ui
+ $(MOC) $*.h >> $*.cpp
+ $(CXXCOMPILE) -c $*.cpp -o $*.o
+ $(RM) $*.cpp moc_$*.cpp moc_$*.o
+
+.ui.lo: %.h
+ $(UIC) -L $(top_srcdir)/muse/widgets -o $*.cpp -impl $*.h $*.ui
+ $(MOC) $*.h >> $*.cpp
+ $(LTCXXCOMPILE) -c $*.cpp -o $*.lo
+ $(RM) $*.cpp moc_$*.cpp moc_$*.lo moc_$*.o
+
+moc_%.cpp: %.h
+ $(MOC) $< -o $@
+
+%.h: %.ui
+ $(UIC) -o $@ $<
+# $(UIC) -L $(top_srcdir)/muse/widgets -o $@ $<
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/muse2/muse/mixer/amixer.cpp b/muse2/muse/mixer/amixer.cpp
new file mode 100644
index 00000000..e6c380b4
--- /dev/null
+++ b/muse2/muse/mixer/amixer.cpp
@@ -0,0 +1,592 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: amixer.cpp,v 1.49.2.5 2009/11/16 01:55:55 terminator356 Exp $
+//
+// (C) Copyright 2000-2004 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include <list>
+#include <cmath>
+
+#include <qapplication.h>
+#include <qmenubar.h>
+#include <qaction.h>
+//Added by qt3to4:
+#include <Q3HBoxLayout>
+#include <QCloseEvent>
+#include <Q3PopupMenu>
+#include <Q3ActionGroup>
+#include <Q3Action>
+
+#include "app.h"
+#include "amixer.h"
+#include "song.h"
+
+#include "astrip.h"
+#include "mstrip.h"
+
+#include "gconfig.h"
+#include "xml.h"
+
+extern void populateAddTrack(Q3PopupMenu* addTrack);
+
+#define __WIDTH_COMPENSATION 4
+
+//typedef std::list<Strip*> StripList;
+//static StripList stripList;
+
+//---------------------------------------------------------
+// AudioMixer
+//
+// inputs | synthis | tracks | groups | master
+//---------------------------------------------------------
+
+//AudioMixerApp::AudioMixerApp(QWidget* parent)
+AudioMixerApp::AudioMixerApp(QWidget* parent, MixerConfig* c)
+ : Q3MainWindow(parent, "mixer")
+ {
+ cfg = c;
+ oldAuxsSize = 0;
+ routingDialog = 0;
+ //setCaption(tr("MusE: Mixer"));
+ //name = cfg->name;
+ //setCaption(name);
+ //printf("AudioMixerApp::AudioMixerApp setting caption:%s\n", cfg->name.latin1());
+ setCaption(cfg->name);
+
+ Q3PopupMenu* menuConfig = new Q3PopupMenu(this);
+ menuBar()->insertItem(tr("&Create"), menuConfig);
+ populateAddTrack(menuConfig);
+
+ menuView = new Q3PopupMenu(this);
+ menuBar()->insertItem(tr("&View"), menuView);
+ routingId = menuView->insertItem(tr("Routing"), this, SLOT(toggleRouteDialog()));
+
+ menuView->insertSeparator();
+
+ Q3ActionGroup* actionItems = new Q3ActionGroup(this, "actionItems", false);
+
+ /*
+ showMidiTracksId = new QAction(tr("Show Midi Tracks"), 0, menuView);
+ showDrumTracksId = new QAction(tr("Show Drum Tracks"), 0, menuView);
+ showWaveTracksId = new QAction(tr("Show Wave Tracks"), 0, menuView);
+ */
+ showMidiTracksId = new Q3Action(tr("Show Midi Tracks"), 0, actionItems);
+ showDrumTracksId = new Q3Action(tr("Show Drum Tracks"), 0, actionItems);
+ showWaveTracksId = new Q3Action(tr("Show Wave Tracks"), 0, actionItems);
+ //showMidiTracksId->addTo(menuView);
+ //showDrumTracksId->addTo(menuView);
+ //showWaveTracksId->addTo(menuView);
+
+ //menuView->insertSeparator();
+ actionItems->addSeparator();
+
+ /*
+ showInputTracksId= new QAction(tr("Show Inputs"), 0, menuView);
+ showOutputTracksId = new QAction(tr("Show Outputs"), 0, menuView);
+ showGroupTracksId = new QAction(tr("Show Groups"), 0, menuView);
+ showAuxTracksId = new QAction(tr("Show Auxs"), 0, menuView);
+ showSyntiTracksId = new QAction(tr("Show Synthesizers"), 0, menuView);
+ */
+ showInputTracksId = new Q3Action(tr("Show Inputs"), 0, actionItems);
+ showOutputTracksId = new Q3Action(tr("Show Outputs"), 0, actionItems);
+ showGroupTracksId = new Q3Action(tr("Show Groups"), 0, actionItems);
+ showAuxTracksId = new Q3Action(tr("Show Auxs"), 0, actionItems);
+ showSyntiTracksId = new Q3Action(tr("Show Synthesizers"), 0, actionItems);
+ //showInputTracksId->addTo(menuView);
+ //showOutputTracksId->addTo(menuView);
+ //showGroupTracksId->addTo(menuView);
+ //showAuxTracksId->addTo(menuView);
+ //showSyntiTracksId->addTo(menuView);
+
+ showMidiTracksId->setToggleAction(true);
+ showDrumTracksId->setToggleAction(true);
+ showWaveTracksId->setToggleAction(true);
+ showInputTracksId->setToggleAction(true);
+ showOutputTracksId->setToggleAction(true);
+ showGroupTracksId->setToggleAction(true);
+ showAuxTracksId->setToggleAction(true);
+ showSyntiTracksId->setToggleAction(true);
+
+ //connect(menuView, SIGNAL(triggered(QAction*)), SLOT(showTracksChanged(QAction*)));
+ //connect(actionItems, SIGNAL(selected(QAction*)), this, SLOT(showTracksChanged(QAction*)));
+ connect(showMidiTracksId, SIGNAL(toggled(bool)), SLOT(showMidiTracksChanged(bool)));
+ connect(showDrumTracksId, SIGNAL(toggled(bool)), SLOT(showDrumTracksChanged(bool)));
+ connect(showWaveTracksId, SIGNAL(toggled(bool)), SLOT(showWaveTracksChanged(bool)));
+ connect(showInputTracksId, SIGNAL(toggled(bool)), SLOT(showInputTracksChanged(bool)));
+ connect(showOutputTracksId, SIGNAL(toggled(bool)), SLOT(showOutputTracksChanged(bool)));
+ connect(showGroupTracksId, SIGNAL(toggled(bool)), SLOT(showGroupTracksChanged(bool)));
+ connect(showAuxTracksId, SIGNAL(toggled(bool)), SLOT(showAuxTracksChanged(bool)));
+ connect(showSyntiTracksId, SIGNAL(toggled(bool)), SLOT(showSyntiTracksChanged(bool)));
+
+ actionItems->addTo(menuView);
+ view = new Q3ScrollView(this);
+ setCentralWidget(view);
+ central = new QWidget(view);
+ view->setResizePolicy(Q3ScrollView::AutoOneFit);
+ view->setVScrollBarMode(Q3ScrollView::AlwaysOff);
+ view->addChild(central);
+ layout = new Q3HBoxLayout(central);
+ connect(song, SIGNAL(songChanged(int)), SLOT(songChanged(int)));
+ connect(muse, SIGNAL(configChanged()), SLOT(configChanged()));
+ song->update(); // calls update mixer
+ }
+
+//---------------------------------------------------------
+// addStrip
+//---------------------------------------------------------
+
+void AudioMixerApp::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;
+
+ std::list<Strip*>::iterator nsi = si;
+ ++nsi;
+ if (si != stripList.end()
+ && nsi != stripList.end()
+ && (*nsi)->getTrack() == t) {
+ layout->remove(*si);
+ delete *si;
+ stripList.erase(si);
+ }
+ else {
+ Strip* strip;
+ if (t->isMidiTrack())
+ strip = new MidiStrip(central, (MidiTrack*)t);
+ else
+ strip = new AudioStrip(central, (AudioTrack*)t);
+ layout->insertWidget(idx, strip);
+ stripList.insert(si, strip);
+ strip->show();
+ }
+ }
+
+//---------------------------------------------------------
+// clear
+//---------------------------------------------------------
+
+void AudioMixerApp::clear()
+ {
+ StripList::iterator si = stripList.begin();
+ for (; si != stripList.end(); ++si) {
+ layout->remove(*si);
+ delete *si;
+ }
+ stripList.clear();
+ oldAuxsSize = -1;
+ }
+
+//---------------------------------------------------------
+// updateMixer
+//---------------------------------------------------------
+
+void AudioMixerApp::updateMixer(UpdateAction action)
+ {
+ //printf("AudioMixerApp::updateMixer action:%d\n", action);
+
+ //name = cfg->name;
+ //setCaption(name);
+ setCaption(cfg->name);
+
+ showMidiTracksId->setOn(cfg->showMidiTracks);
+ showDrumTracksId->setOn(cfg->showDrumTracks);
+ showInputTracksId->setOn(cfg->showInputTracks);
+ showOutputTracksId->setOn(cfg->showOutputTracks);
+ showWaveTracksId->setOn(cfg->showWaveTracks);
+ showGroupTracksId->setOn(cfg->showGroupTracks);
+ showAuxTracksId->setOn(cfg->showAuxTracks);
+ showSyntiTracksId->setOn(cfg->showSyntiTracks);
+
+ int auxsSize = song->auxs()->size();
+ if ((action == UPDATE_ALL) || (auxsSize != oldAuxsSize)) {
+ clear();
+ oldAuxsSize = auxsSize;
+ }
+ else if (action == STRIP_REMOVED)
+ {
+ StripList::iterator si = stripList.begin();
+ for (; si != stripList.end();) {
+ Track* track = (*si)->getTrack();
+ TrackList* tl = song->tracks();
+ iTrack it;
+ for (it = tl->begin(); it != tl->end(); ++it) {
+ if (*it == track)
+ break;
+ }
+ StripList::iterator ssi = si;
+ ++si;
+ if (it != tl->end())
+ continue;
+ layout->remove(*ssi);
+ delete *ssi;
+ stripList.erase(ssi);
+ }
+ setMaximumWidth(STRIP_WIDTH * stripList.size() + __WIDTH_COMPENSATION);
+ // Added by Tim. p3.3.7
+ if (stripList.size() < 8)
+ view->setMinimumWidth(stripList.size() * STRIP_WIDTH + __WIDTH_COMPENSATION);
+
+ return;
+ }
+ // Added by Tim. p3.3.7
+ else if (action == UPDATE_MIDI)
+ {
+ int i = 0;
+ int idx = -1;
+ StripList::iterator si = stripList.begin();
+ for (; si != stripList.end(); ++i)
+ {
+ Track* track = (*si)->getTrack();
+ if(!track->isMidiTrack())
+ {
+ ++si;
+ continue;
+ }
+
+ if(idx == -1)
+ idx = i;
+
+ StripList::iterator ssi = si;
+ ++si;
+ layout->remove(*ssi);
+ delete *ssi;
+ stripList.erase(ssi);
+ }
+
+ if(idx == -1)
+ idx = 0;
+
+ //---------------------------------------------------
+ // generate Midi channel/port Strips
+ //---------------------------------------------------
+
+ // Changed by Tim. p3.3.21
+ /*
+ MidiTrackList* mtl = song->midis();
+ int ports[MIDI_PORTS];
+ memset(ports, 0, MIDI_PORTS * sizeof(int));
+ for (iMidiTrack i = mtl->begin(); i != mtl->end(); ++i) {
+ MidiTrack* track = *i;
+ int port = track->outPort();
+ int channel = track->outChannel();
+ if ((ports[port] & (1 << channel)) == 0) {
+ addStrip(*i, idx++);
+ ports[port] |= 1 << channel;
+ }
+ }
+ */
+ MidiTrackList* mtl = song->midis();
+ for (iMidiTrack i = mtl->begin(); i != mtl->end(); ++i)
+ {
+ MidiTrack* mt = *i;
+ if((mt->type() == Track::MIDI && cfg->showMidiTracks) || (mt->type() == Track::DRUM && cfg->showDrumTracks))
+ addStrip(*i, idx++);
+ }
+
+ setMaximumWidth(STRIP_WIDTH * stripList.size() + __WIDTH_COMPENSATION);
+ if (stripList.size() < 8)
+ view->setMinimumWidth(stripList.size() * STRIP_WIDTH + __WIDTH_COMPENSATION);
+ return;
+ }
+
+ 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 channel/port Strips
+ //---------------------------------------------------
+
+ // Changed by Tim. p3.3.21
+ /*
+ MidiTrackList* mtl = song->midis();
+ int ports[MIDI_PORTS];
+ memset(ports, 0, MIDI_PORTS * sizeof(int));
+ for (iMidiTrack i = mtl->begin(); i != mtl->end(); ++i) {
+ MidiTrack* track = *i;
+ int port = track->outPort();
+ int channel = track->outChannel();
+ if ((ports[port] & (1 << channel)) == 0) {
+ addStrip(*i, idx++);
+ ports[port] |= 1 << channel;
+ }
+ }
+ */
+ MidiTrackList* mtl = song->midis();
+ for (iMidiTrack i = mtl->begin(); i != mtl->end(); ++i)
+ {
+ MidiTrack* mt = *i;
+ if((mt->type() == Track::MIDI && cfg->showMidiTracks) || (mt->type() == Track::DRUM && cfg->showDrumTracks))
+ addStrip(*i, idx++);
+ }
+
+ //---------------------------------------------------
+ // Groups
+ //---------------------------------------------------
+
+ if(cfg->showGroupTracks)
+ {
+ GroupList* gtl = song->groups();
+ for (iAudioGroup i = gtl->begin(); i != gtl->end(); ++i)
+ addStrip(*i, idx++);
+ }
+
+ //---------------------------------------------------
+ // Aux
+ //---------------------------------------------------
+
+ if(cfg->showAuxTracks)
+ {
+ AuxList* al = song->auxs();
+ for (iAudioAux i = al->begin(); i != al->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++);
+ }
+
+ //printf("AudioMixerApp::updateMixer setting maximum width:%d\n", STRIP_WIDTH * idx + __WIDTH_COMPENSATION);
+ setMaximumWidth(STRIP_WIDTH * idx + __WIDTH_COMPENSATION);
+ if (idx < 8)
+ {
+ //printf("AudioMixerApp::updateMixer setting minimum width:%d\n", idx * STRIP_WIDTH + __WIDTH_COMPENSATION);
+ view->setMinimumWidth(idx * STRIP_WIDTH + __WIDTH_COMPENSATION);
+ }
+ }
+
+//---------------------------------------------------------
+// configChanged
+//---------------------------------------------------------
+
+void AudioMixerApp::configChanged()
+{
+ //printf("AudioMixerApp::configChanged\n");
+
+ songChanged(SC_CONFIG);
+}
+
+//---------------------------------------------------------
+// songChanged
+//---------------------------------------------------------
+
+void AudioMixerApp::songChanged(int flags)
+ {
+ // Is it simply a midi controller value adjustment? Forget it.
+ if(flags == SC_MIDI_CONTROLLER)
+ return;
+
+// printf(" =======AudioMixer::songChanged %x\n", flags);
+ UpdateAction action = NO_UPDATE;
+ if (flags == -1)
+ action = UPDATE_ALL;
+ else if (flags & SC_TRACK_REMOVED)
+ action = STRIP_REMOVED;
+ else if (flags & SC_TRACK_INSERTED)
+ action = STRIP_INSERTED;
+ else if (flags & SC_MIDI_CHANNEL)
+ action = UPDATE_MIDI;
+ if (action != NO_UPDATE)
+ updateMixer(action);
+ if (action != UPDATE_ALL) {
+ StripList::iterator si = stripList.begin();
+ for (; si != stripList.end(); ++si) {
+ (*si)->songChanged(flags);
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// closeEvent
+//---------------------------------------------------------
+
+void AudioMixerApp::closeEvent(QCloseEvent* e)
+ {
+ emit closed();
+ e->accept();
+ }
+
+//---------------------------------------------------------
+// toggleRouteDialog
+//---------------------------------------------------------
+
+void AudioMixerApp::toggleRouteDialog()
+ {
+ showRouteDialog(!menuView->isItemChecked(routingId));
+ }
+
+//---------------------------------------------------------
+// showRouteDialog
+//---------------------------------------------------------
+
+void AudioMixerApp::showRouteDialog(bool on)
+ {
+ if (on && routingDialog == 0) {
+ routingDialog = new RouteDialog(this);
+ connect(routingDialog, SIGNAL(closed()), SLOT(routingDialogClosed()));
+ }
+ if (routingDialog)
+ routingDialog->setShown(on);
+ menuView->setItemChecked(routingId, on);
+ }
+
+//---------------------------------------------------------
+// routingDialogClosed
+//---------------------------------------------------------
+
+void AudioMixerApp::routingDialogClosed()
+ {
+ menuView->setItemChecked(routingId, false);
+ }
+
+//---------------------------------------------------------
+// showTracksChanged
+//---------------------------------------------------------
+
+/*
+void AudioMixerApp::showTracksChanged(QAction* id)
+ {
+ bool val = id->isOn();
+ if (id == showMidiTracksId)
+ cfg->showMidiTracks = val;
+ else if (id == showDrumTracksId)
+ cfg->showDrumTracks = val;
+ else if (id == showInputTracksId)
+ cfg->showInputTracks = 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 == showAuxTracksId)
+ cfg->showAuxTracks = val;
+ else if (id == showSyntiTracksId)
+ cfg->showSyntiTracks = val;
+ updateMixer(UPDATE_ALL);
+ }
+*/
+
+void AudioMixerApp::showMidiTracksChanged(bool v)
+{
+ cfg->showMidiTracks = v;
+ updateMixer(UPDATE_ALL);
+}
+
+void AudioMixerApp::showDrumTracksChanged(bool v)
+{
+ cfg->showDrumTracks = v;
+ updateMixer(UPDATE_ALL);
+}
+
+void AudioMixerApp::showWaveTracksChanged(bool v)
+{
+ cfg->showWaveTracks = v;
+ updateMixer(UPDATE_ALL);
+}
+
+void AudioMixerApp::showInputTracksChanged(bool v)
+{
+ cfg->showInputTracks = v;
+ updateMixer(UPDATE_ALL);
+}
+
+void AudioMixerApp::showOutputTracksChanged(bool v)
+{
+ cfg->showOutputTracks = v;
+ updateMixer(UPDATE_ALL);
+}
+
+void AudioMixerApp::showGroupTracksChanged(bool v)
+{
+ cfg->showGroupTracks = v;
+ updateMixer(UPDATE_ALL);
+}
+
+void AudioMixerApp::showAuxTracksChanged(bool v)
+{
+ cfg->showAuxTracks = v;
+ updateMixer(UPDATE_ALL);
+}
+
+void AudioMixerApp::showSyntiTracksChanged(bool v)
+{
+ cfg->showSyntiTracks = v;
+ updateMixer(UPDATE_ALL);
+}
+
+//---------------------------------------------------------
+// write
+//---------------------------------------------------------
+
+//void AudioMixerApp::write(Xml& xml, const char* name)
+void AudioMixerApp::write(int level, Xml& xml)
+//void AudioMixerApp::write(int level, Xml& xml, const char* name)
+ {
+ //xml.stag(QString(name));
+ //xml.tag(level++, name.latin1());
+ xml.tag(level++, "Mixer");
+
+ xml.strTag(level, "name", cfg->name);
+
+ //xml.tag("geometry", geometry());
+ xml.qrectTag(level, "geometry", geometry());
+
+ xml.intTag(level, "showMidiTracks", cfg->showMidiTracks);
+ xml.intTag(level, "showDrumTracks", cfg->showDrumTracks);
+ xml.intTag(level, "showInputTracks", cfg->showInputTracks);
+ xml.intTag(level, "showOutputTracks", cfg->showOutputTracks);
+ xml.intTag(level, "showWaveTracks", cfg->showWaveTracks);
+ xml.intTag(level, "showGroupTracks", cfg->showGroupTracks);
+ xml.intTag(level, "showAuxTracks", cfg->showAuxTracks);
+ xml.intTag(level, "showSyntiTracks", cfg->showSyntiTracks);
+
+ //xml.etag(name);
+ //xml.etag(level, name.latin1());
+ xml.etag(level, "Mixer");
+ }
+
diff --git a/muse2/muse/mixer/amixer.h b/muse2/muse/mixer/amixer.h
new file mode 100644
index 00000000..f6588ddb
--- /dev/null
+++ b/muse2/muse/mixer/amixer.h
@@ -0,0 +1,119 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: amixer.h,v 1.27.2.2 2009/10/18 06:13:00 terminator356 Exp $
+//
+// (C) Copyright 2000-2004 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __AMIXER_H__
+#define __AMIXER_H__
+
+#include <qlayout.h>
+#include <qpixmap.h>
+#include <q3listbox.h>
+#include <qtooltip.h>
+#include <q3frame.h>
+//Added by qt3to4:
+#include <Q3HBoxLayout>
+#include <QLabel>
+#include <Q3PopupMenu>
+#include <QCloseEvent>
+#include <Q3Action>
+
+#include "cobject.h"
+#include "synth.h"
+#include "node.h"
+#include "routedialog.h"
+
+class Xml;
+class QWidget;
+class Q3HBoxLayout;
+class Q3ScrollView;
+class AudioTrack;
+class Meter;
+class Track;
+class QLabel;
+class Slider;
+class QToolButton;
+class Knob;
+class DoubleLabel;
+class ComboBox;
+class RouteDialog;
+class Q3PopupMenu;
+class Strip;
+
+struct MixerConfig;
+
+#define EFX_HEIGHT 16
+
+typedef std::list<Strip*> StripList;
+
+//---------------------------------------------------------
+// AudioMixerApp
+//---------------------------------------------------------
+
+class AudioMixerApp : public Q3MainWindow {
+ //QString name;
+ MixerConfig* cfg;
+ StripList stripList;
+ Q3ScrollView* view;
+ QWidget* central;
+ Q3HBoxLayout* lbox;
+ //Strip* master;
+ Q3HBoxLayout* layout;
+ Q3PopupMenu* menuView;
+ RouteDialog* routingDialog;
+ int routingId;
+ int oldAuxsSize;
+
+ Q3Action* showMidiTracksId;
+ Q3Action* showDrumTracksId;
+ Q3Action* showInputTracksId;
+ Q3Action* showOutputTracksId;
+ Q3Action* showWaveTracksId;
+ Q3Action* showGroupTracksId;
+ Q3Action* showAuxTracksId;
+ Q3Action* showSyntiTracksId;
+
+ Q_OBJECT
+
+ virtual void closeEvent(QCloseEvent*);
+ void addStrip(Track*, int);
+ void showRouteDialog(bool);
+
+ enum UpdateAction {
+ NO_UPDATE, UPDATE_ALL, UPDATE_MIDI, STRIP_INSERTED, STRIP_REMOVED
+ };
+ void updateMixer(UpdateAction);
+
+ signals:
+ void closed();
+
+ private slots:
+ void songChanged(int);
+ //void configChanged() { songChanged(-1); }
+ void configChanged();
+ void toggleRouteDialog();
+ void routingDialogClosed();
+ //void showTracksChanged(QAction*);
+ void showMidiTracksChanged(bool);
+ void showDrumTracksChanged(bool);
+ void showWaveTracksChanged(bool);
+ void showInputTracksChanged(bool);
+ void showOutputTracksChanged(bool);
+ void showGroupTracksChanged(bool);
+ void showAuxTracksChanged(bool);
+ void showSyntiTracksChanged(bool);
+
+ public:
+ //AudioMixerApp(QWidget* parent);
+ AudioMixerApp(QWidget* parent, MixerConfig* c);
+ //void write(Xml&, const char* name);
+ //void write(int level, Xml& xml, const char* name);
+ void write(int level, Xml& xml);
+ void clear();
+ };
+
+#endif
+
diff --git a/muse2/muse/mixer/astrip.cpp b/muse2/muse/mixer/astrip.cpp
new file mode 100644
index 00000000..de7bf985
--- /dev/null
+++ b/muse2/muse/mixer/astrip.cpp
@@ -0,0 +1,2830 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: astrip.cpp,v 1.23.2.17 2009/11/16 01:55:55 terminator356 Exp $
+//
+// (C) Copyright 2000-2004 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include <fastlog.h>
+
+#include <qlayout.h>
+#include <qapplication.h>
+#include <qdialog.h>
+#include <qtoolbutton.h>
+#include <qlabel.h>
+#include <qdialog.h>
+#include <qcombobox.h>
+#include <qtooltip.h>
+#include <qtimer.h>
+//#include <qpopupmenu.h>
+#include <qcursor.h>
+#include <qpainter.h>
+#include <qstring.h>
+#include <qpoint.h>
+#include <qevent.h>
+#include <qwidget.h>
+//Added by qt3to4:
+#include <Q3HBoxLayout>
+#include <Q3GridLayout>
+
+#include "app.h"
+#include "globals.h"
+#include "audio.h"
+#include "driver/audiodev.h"
+#include "song.h"
+#include "slider.h"
+#include "knob.h"
+#include "combobox.h"
+#include "meter.h"
+#include "astrip.h"
+#include "track.h"
+#include "synth.h"
+//#include "route.h"
+#include "doublelabel.h"
+#include "rack.h"
+#include "node.h"
+#include "amixer.h"
+#include "icons.h"
+#include "gconfig.h"
+#include "ttoolbutton.h"
+#include "menutitleitem.h"
+#include "popupmenu.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);
+ };
+*/
+
+//---------------------------------------------------------
+// MenuTitleItem
+//---------------------------------------------------------
+
+MenuTitleItem::MenuTitleItem(QString ss)
+ : s(ss)
+ {
+ }
+
+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(Qt::lightGray));
+ p->drawText(x, y, w, h, Qt::AlignCenter, s);
+ }
+
+//---------------------------------------------------------
+// minimumSizeHint
+//---------------------------------------------------------
+
+QSize AudioStrip::minimumSizeHint () const
+{
+ // We force the width of the size hint to be what we want
+ //return QWidget::minimumSizeHint();
+ return QSize(66,QWidget::minimumSizeHint().height());
+}
+
+//---------------------------------------------------------
+// heartBeat
+//---------------------------------------------------------
+
+void AudioStrip::heartBeat()
+ {
+ for (int ch = 0; ch < track->channels(); ++ch) {
+ if (meter[ch]) {
+ //int meterVal = track->meter(ch);
+ //int peak = track->peak(ch);
+ //meter[ch]->setVal(meterVal, peak, false);
+ meter[ch]->setVal(track->meter(ch), track->peak(ch), false);
+ }
+ }
+ Strip::heartBeat();
+ updateVolume();
+ updatePan();
+ }
+
+//---------------------------------------------------------
+// configChanged
+//---------------------------------------------------------
+
+void AudioStrip::configChanged()
+{
+ songChanged(SC_CONFIG);
+}
+
+//---------------------------------------------------------
+// songChanged
+//---------------------------------------------------------
+
+void AudioStrip::songChanged(int val)
+ {
+ // Is it simply a midi controller value adjustment? Forget it.
+ if (val == SC_MIDI_CONTROLLER)
+ return;
+
+ AudioTrack* src = (AudioTrack*)track;
+
+ // Do channels before config...
+ if (val & SC_CHANNELS)
+ updateChannels();
+
+ // p3.3.47
+ // Update the routing popup menu if anything relevant changed.
+ if (val & (SC_ROUTE | SC_CHANNELS | SC_CONFIG))
+ {
+ //updateRouteMenus();
+ muse->updateRouteMenus(track, this); // p3.3.50 Use this handy shared routine.
+ }
+
+ // Catch when label font, or configuration min slider and meter values change.
+ if (val & SC_CONFIG)
+ {
+ // Added by Tim. p3.3.9
+
+ // Set the strip label's font.
+ //label->setFont(config.fonts[1]);
+ setLabelFont();
+
+ // Adjust minimum volume slider and label values.
+ slider->setRange(config.minSlider-0.1, 10.0);
+ sl->setRange(config.minSlider, 10.0);
+
+ // Adjust minimum aux knob and label values.
+ int n = auxKnob.size();
+ for (int idx = 0; idx < n; ++idx)
+ {
+ auxKnob[idx]->blockSignals(true);
+ auxLabel[idx]->blockSignals(true);
+ auxKnob[idx]->setRange(config.minSlider-0.1, 10.0);
+ auxLabel[idx]->setRange(config.minSlider, 10.1);
+ auxKnob[idx]->blockSignals(false);
+ auxLabel[idx]->blockSignals(false);
+ }
+
+ // Adjust minimum meter values.
+ for(int c = 0; c < channel; ++c)
+ meter[c]->setRange(config.minMeter, 10.0);
+ }
+
+ if (mute && (val & SC_MUTE)) { // mute && off
+ mute->blockSignals(true);
+ mute->setOn(src->mute());
+ mute->blockSignals(false);
+ updateOffState();
+ }
+ if (solo && (val & SC_SOLO)) {
+ if((bool)track->internalSolo())
+ {
+ if(!useSoloIconSet2)
+ {
+ solo->setIconSet(*soloIconSet2);
+ useSoloIconSet2 = true;
+ }
+ }
+ else if(useSoloIconSet2)
+ {
+ solo->setIconSet(*soloIconSet1);
+ useSoloIconSet2 = false;
+ }
+
+ solo->blockSignals(true);
+ solo->setOn(track->solo());
+ solo->blockSignals(false);
+ }
+ if (val & SC_RECFLAG)
+ setRecordFlag(track->recordFlag());
+ if (val & SC_TRACK_MODIFIED)
+ {
+ setLabelText();
+ // Added by Tim. p3.3.9
+ setLabelFont();
+
+ }
+ //if (val & SC_CHANNELS)
+ // updateChannels();
+ if (val & SC_ROUTE) {
+ if (pre) {
+ pre->blockSignals(true);
+ pre->setOn(src->prefader());
+ pre->blockSignals(false);
+ }
+ }
+ if (val & SC_AUX) {
+ int n = auxKnob.size();
+ for (int idx = 0; idx < n; ++idx) {
+ double val = fast_log10(src->auxSend(idx)) * 20.0;
+ auxKnob[idx]->blockSignals(true);
+ auxLabel[idx]->blockSignals(true);
+ auxKnob[idx]->setValue(val);
+ auxLabel[idx]->setValue(val);
+ auxKnob[idx]->blockSignals(false);
+ auxLabel[idx]->blockSignals(false);
+ }
+ }
+ if (autoType && (val & SC_AUTOMATION)) {
+ autoType->blockSignals(true);
+ autoType->setCurrentItem(track->automationType());
+ if(track->automationType() == AUTO_TOUCH || track->automationType() == AUTO_WRITE)
+ autoType->setPaletteBackgroundColor(Qt::red);
+ else
+ autoType->setPaletteBackgroundColor(qApp->palette().active().background());
+
+ autoType->blockSignals(false);
+ }
+ }
+
+//---------------------------------------------------------
+// updateVolume
+//---------------------------------------------------------
+
+void AudioStrip::updateVolume()
+{
+ double vol = ((AudioTrack*)track)->volume();
+ if (vol != volume)
+ {
+ //printf("AudioStrip::updateVolume setting slider and label\n");
+
+ slider->blockSignals(true);
+ sl->blockSignals(true);
+ double val = fast_log10(vol) * 20.0;
+ slider->setValue(val);
+ sl->setValue(val);
+ sl->blockSignals(false);
+ slider->blockSignals(false);
+ volume = vol;
+ }
+}
+
+//---------------------------------------------------------
+// updatePan
+//---------------------------------------------------------
+
+void AudioStrip::updatePan()
+{
+ double v = ((AudioTrack*)track)->pan();
+ if (v != panVal)
+ {
+ //printf("AudioStrip::updatePan setting slider and label\n");
+
+ pan->blockSignals(true);
+ panl->blockSignals(true);
+ pan->setValue(v);
+ panl->setValue(v);
+ panl->blockSignals(false);
+ pan->blockSignals(false);
+ panVal = v;
+ }
+}
+
+//---------------------------------------------------------
+// offToggled
+//---------------------------------------------------------
+
+void AudioStrip::offToggled(bool val)
+ {
+ track->setOff(val);
+ song->update(SC_MUTE);
+ }
+
+//---------------------------------------------------------
+// updateOffState
+//---------------------------------------------------------
+
+void AudioStrip::updateOffState()
+ {
+ bool val = !track->off();
+ slider->setEnabled(val);
+ sl->setEnabled(val);
+ pan->setEnabled(val);
+ panl->setEnabled(val);
+ if (track->type() != Track::AUDIO_SOFTSYNTH)
+ stereo->setEnabled(val);
+ label->setEnabled(val);
+
+ int n = auxKnob.size();
+ for (int i = 0; i < n; ++i)
+ {
+ auxKnob[i]->setEnabled(val);
+ auxLabel[i]->setEnabled(val);
+ }
+
+ if (pre)
+ pre->setEnabled(val);
+ if (record)
+ record->setEnabled(val);
+ if (solo)
+ solo->setEnabled(val);
+ if (mute)
+ mute->setEnabled(val);
+ if (autoType)
+ autoType->setEnabled(val);
+ if (iR)
+ iR->setEnabled(val);
+ if (oR)
+ oR->setEnabled(val);
+ if (off) {
+ off->blockSignals(true);
+ off->setOn(track->off());
+ off->blockSignals(false);
+ }
+ }
+
+//---------------------------------------------------------
+// preToggled
+//---------------------------------------------------------
+
+void AudioStrip::preToggled(bool val)
+ {
+ audio->msgSetPrefader((AudioTrack*)track, val);
+ resetPeaks();
+ song->update(SC_ROUTE);
+ }
+
+//---------------------------------------------------------
+// stereoToggled
+//---------------------------------------------------------
+
+void AudioStrip::stereoToggled(bool val)
+ {
+ int oc = track->channels();
+ int nc = val ? 2 : 1;
+// stereo->setIcon(nc == 2 ? *stereoIcon : *monoIcon);
+ if (oc == nc)
+ return;
+ audio->msgSetChannels((AudioTrack*)track, nc);
+ song->update(SC_CHANNELS);
+ }
+
+//---------------------------------------------------------
+// auxChanged
+//---------------------------------------------------------
+
+void AudioStrip::auxChanged(double val, int idx)
+ {
+ double vol;
+ if (val <= config.minSlider) {
+ vol = 0.0;
+ val -= 1.0; // display special value "off"
+ }
+ else
+ vol = pow(10.0, val/20.0);
+ audio->msgSetAux((AudioTrack*)track, idx, vol);
+ song->update(SC_AUX);
+ }
+
+//---------------------------------------------------------
+// auxLabelChanged
+//---------------------------------------------------------
+
+void AudioStrip::auxLabelChanged(double val, unsigned int idx)
+ {
+ if(idx >= auxKnob.size())
+ return;
+ auxKnob[idx]->setValue(val);
+ }
+
+//---------------------------------------------------------
+// volumeChanged
+//---------------------------------------------------------
+
+void AudioStrip::volumeChanged(double val)
+ {
+ AutomationType at = ((AudioTrack*)track)->automationType();
+ if(at == AUTO_WRITE || (audio->isPlaying() && at == AUTO_TOUCH))
+ track->enableVolumeController(false);
+
+ double vol;
+ if (val <= config.minSlider) {
+ vol = 0.0;
+ val -= 1.0; // display special value "off"
+ }
+ else
+ vol = pow(10.0, val/20.0);
+ volume = vol;
+ audio->msgSetVolume((AudioTrack*)track, vol);
+ ((AudioTrack*)track)->recordAutomation(AC_VOLUME, vol);
+ }
+
+//---------------------------------------------------------
+// volumePressed
+//---------------------------------------------------------
+
+void AudioStrip::volumePressed()
+ {
+ AutomationType at = ((AudioTrack*)track)->automationType();
+ if(at == AUTO_WRITE || (at == AUTO_READ || at == AUTO_TOUCH))
+ track->enableVolumeController(false);
+
+ double val = slider->value();
+ double vol;
+ if (val <= config.minSlider) {
+ vol = 0.0;
+ //val -= 1.0; // display special value "off"
+ }
+ else
+ vol = pow(10.0, val/20.0);
+ volume = vol;
+ audio->msgSetVolume((AudioTrack*)track, volume);
+ ((AudioTrack*)track)->startAutoRecord(AC_VOLUME, volume);
+ }
+
+//---------------------------------------------------------
+// volumeReleased
+//---------------------------------------------------------
+
+void AudioStrip::volumeReleased()
+ {
+ if(track->automationType() != AUTO_WRITE)
+ track->enableVolumeController(true);
+
+ ((AudioTrack*)track)->stopAutoRecord(AC_VOLUME, volume);
+ }
+
+//---------------------------------------------------------
+// volumeRightClicked
+//---------------------------------------------------------
+void AudioStrip::volumeRightClicked(const QPoint &p)
+{
+ song->execAutomationCtlPopup((AudioTrack*)track, p, AC_VOLUME);
+}
+
+//---------------------------------------------------------
+// volLabelChanged
+//---------------------------------------------------------
+
+void AudioStrip::volLabelChanged(double val)
+ {
+ AutomationType at = ((AudioTrack*)track)->automationType();
+ if(at == AUTO_WRITE || (audio->isPlaying() && at == AUTO_TOUCH))
+ track->enableVolumeController(false);
+
+ double vol;
+ if (val <= config.minSlider) {
+ vol = 0.0;
+ val -= 1.0; // display special value "off"
+ }
+ else
+ vol = pow(10.0, val/20.0);
+ volume = vol;
+ slider->setValue(val);
+ audio->msgSetVolume((AudioTrack*)track, vol);
+ ((AudioTrack*)track)->startAutoRecord(AC_VOLUME, vol);
+ }
+
+//---------------------------------------------------------
+// panChanged
+//---------------------------------------------------------
+
+void AudioStrip::panChanged(double val)
+ {
+ AutomationType at = ((AudioTrack*)track)->automationType();
+ if(at == AUTO_WRITE || (audio->isPlaying() && at == AUTO_TOUCH))
+ track->enablePanController(false);
+
+ panVal = val;
+ audio->msgSetPan(((AudioTrack*)track), val);
+ ((AudioTrack*)track)->recordAutomation(AC_PAN, val);
+ }
+
+//---------------------------------------------------------
+// panPressed
+//---------------------------------------------------------
+
+void AudioStrip::panPressed()
+ {
+ AutomationType at = ((AudioTrack*)track)->automationType();
+ if(at == AUTO_WRITE || (at == AUTO_READ || at == AUTO_TOUCH))
+ track->enablePanController(false);
+
+ panVal = pan->value();
+ audio->msgSetPan(((AudioTrack*)track), panVal);
+ ((AudioTrack*)track)->startAutoRecord(AC_PAN, panVal);
+ }
+
+//---------------------------------------------------------
+// panReleased
+//---------------------------------------------------------
+
+void AudioStrip::panReleased()
+ {
+ if(track->automationType() != AUTO_WRITE)
+ track->enablePanController(true);
+ ((AudioTrack*)track)->stopAutoRecord(AC_PAN, panVal);
+ }
+
+//---------------------------------------------------------
+// panRightClicked
+//---------------------------------------------------------
+void AudioStrip::panRightClicked(const QPoint &p)
+{
+ song->execAutomationCtlPopup((AudioTrack*)track, p, AC_PAN);
+}
+
+//---------------------------------------------------------
+// panLabelChanged
+//---------------------------------------------------------
+
+void AudioStrip::panLabelChanged(double val)
+ {
+ AutomationType at = ((AudioTrack*)track)->automationType();
+ if(at == AUTO_WRITE || (audio->isPlaying() && at == AUTO_TOUCH))
+ track->enablePanController(false);
+
+ panVal = val;
+ pan->setValue(val);
+ audio->msgSetPan((AudioTrack*)track, val);
+ ((AudioTrack*)track)->startAutoRecord(AC_PAN, val);
+ }
+
+//---------------------------------------------------------
+// updateChannels
+//---------------------------------------------------------
+
+void AudioStrip::updateChannels()
+ {
+ AudioTrack* t = (AudioTrack*)track;
+ int c = t->channels();
+ //printf("AudioStrip::updateChannels track channels:%d current channels:%d\n", c, channel);
+
+ if (c > channel) {
+ for (int cc = channel; cc < c; ++cc) {
+ meter[cc] = new Meter(this);
+ //meter[cc]->setRange(config.minSlider, 10.0);
+ meter[cc]->setRange(config.minMeter, 10.0);
+ meter[cc]->setFixedWidth(15);
+ connect(meter[cc], SIGNAL(mousePress()), this, SLOT(resetPeaks()));
+ sliderGrid->addWidget(meter[cc], 0, cc+1, Qt::AlignHCenter);
+ sliderGrid->setColStretch(cc, 50);
+ meter[cc]->show();
+ }
+ }
+ else if (c < channel) {
+ for (int cc = channel-1; cc >= c; --cc) {
+ delete meter[cc];
+ meter[cc] = 0;
+ }
+ }
+ channel = c;
+ stereo->blockSignals(true);
+ stereo->setOn(channel == 2);
+ stereo->blockSignals(false);
+ }
+
+//---------------------------------------------------------
+// addKnob
+// type = 0 - panorama
+// 1 - aux send
+//---------------------------------------------------------
+
+Knob* AudioStrip::addKnob(int type, int id, DoubleLabel** dlabel)
+ {
+ Knob* knob = new Knob(this);
+ knob->setFixedWidth(STRIP_WIDTH/2);
+ if (type == 0)
+ knob->setRange(-1.0, +1.0);
+ else
+ knob->setRange(config.minSlider-0.1, 10.0);
+ knob->setBackgroundMode(Qt::PaletteMid);
+
+ if (type == 0)
+ QToolTip::add(knob, tr("panorama"));
+ else
+ QToolTip::add(knob, tr("aux send level"));
+
+
+ DoubleLabel* pl;
+ if (type == 0)
+ pl = new DoubleLabel(0, -1.0, +1.0, this);
+ else
+ pl = new DoubleLabel(0.0, config.minSlider, 10.1, this);
+
+ if (dlabel)
+ *dlabel = pl;
+ pl->setSlider(knob);
+ pl->setFont(config.fonts[1]);
+ pl->setBackgroundMode(Qt::PaletteMid);
+ pl->setFrame(true);
+ if (type == 0)
+ pl->setPrecision(2);
+ else {
+ pl->setPrecision(0);
+ pl->setPrecision(0);
+ }
+ pl->setFixedWidth(STRIP_WIDTH/2);
+
+ QString label;
+ if (type == 0)
+ label = tr("Pan");
+ else
+ label.sprintf("Aux%d", id+1);
+
+ QLabel* plb = new QLabel(label, this);
+ plb->setFont(config.fonts[1]);
+ plb->setFixedWidth(STRIP_WIDTH/2);
+ plb->setAlignment(Qt::AlignCenter);
+
+ Q3GridLayout* pangrid = new Q3GridLayout(0, 2, 2, 0, 0, "pangrid");
+ pangrid->addWidget(plb, 0, 0);
+ pangrid->addWidget(pl, 1, 0);
+ pangrid->addMultiCellWidget(knob, 0, 1, 1, 1);
+ layout->addLayout(pangrid);
+
+ connect(knob, SIGNAL(valueChanged(double,int)), pl, SLOT(setValue(double)));
+ //connect(pl, SIGNAL(valueChanged(double, int)), SLOT(panChanged(double)));
+
+ if (type == 0) {
+ connect(pl, SIGNAL(valueChanged(double, int)), SLOT(panLabelChanged(double)));
+ connect(knob, SIGNAL(sliderMoved(double,int)), SLOT(panChanged(double)));
+ connect(knob, SIGNAL(sliderPressed(int)), SLOT(panPressed()));
+ connect(knob, SIGNAL(sliderReleased(int)), SLOT(panReleased()));
+ connect(knob, SIGNAL(sliderRightClicked(const QPoint &, int)), SLOT(panRightClicked(const QPoint &)));
+ }
+ else {
+ knob->setId(id);
+
+ connect(pl, SIGNAL(valueChanged(double, int)), knob, SLOT(setValue(double)));
+ // Not used yet. Switch if/when necessary.
+ //connect(pl, SIGNAL(valueChanged(double, int)), SLOT(auxLabelChanged(double, int)));
+
+ connect(knob, SIGNAL(sliderMoved(double, int)), SLOT(auxChanged(double, int)));
+ }
+ return knob;
+ }
+
+//---------------------------------------------------------
+// AudioStrip
+//---------------------------------------------------------
+
+AudioStrip::~AudioStrip()
+ {
+ }
+
+
+//---------------------------------------------------------
+// AudioStrip
+// create mixer strip
+//---------------------------------------------------------
+
+AudioStrip::AudioStrip(QWidget* parent, AudioTrack* at)
+ : Strip(parent, at)
+ {
+ //iR = 0;
+ //oR = 0;
+
+ off = 0;
+
+ volume = -1.0;
+ panVal = 0;
+
+ record = 0;
+
+ AudioTrack* t = (AudioTrack*)track;
+ channel = at->channels();
+ setFixedWidth(STRIP_WIDTH);
+ setMinimumWidth(STRIP_WIDTH);
+
+ int ch = 0;
+ for (; ch < channel; ++ch)
+ meter[ch] = new Meter(this);
+ for (; ch < MAX_CHANNELS; ++ch)
+ meter[ch] = 0;
+
+ //---------------------------------------------------
+ // plugin rack
+ //---------------------------------------------------
+
+ EffectRack* rack = new EffectRack(this, t);
+ rack->setFixedWidth(STRIP_WIDTH);
+ rack->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Minimum);
+ layout->addWidget(rack);
+
+ //---------------------------------------------------
+ // mono/stereo pre/post
+ //---------------------------------------------------
+
+ Q3HBoxLayout* ppBox = new Q3HBoxLayout(0);
+ stereo = new QToolButton(this);
+ stereo->setFont(config.fonts[1]);
+ QIcon stereoSet;
+ stereoSet.setPixmap(*monoIcon, QIcon::Automatic, QIcon::Normal, QIcon::Off);
+ stereoSet.setPixmap(*stereoIcon, QIcon::Automatic, QIcon::Normal, QIcon::On);
+ stereo->setIconSet(stereoSet);
+
+ stereo->setToggleButton(true);
+ QToolTip::add(stereo, tr("1/2 channel"));
+ stereo->setOn(channel == 2);
+ stereo->setFixedWidth(STRIP_WIDTH/2);
+ connect(stereo, SIGNAL(toggled(bool)), SLOT(stereoToggled(bool)));
+
+ // disable mono/stereo for Synthesizer-Plugins
+ if (t->type() == Track::AUDIO_SOFTSYNTH)
+ stereo->setEnabled(false);
+
+ pre = new QToolButton(this);
+ pre->setFont(config.fonts[1]);
+ pre->setToggleButton(true);
+ pre->setText(tr("Pre"));
+ QToolTip::add(pre, tr("pre fader - post fader"));
+ pre->setOn(t->prefader());
+ pre->setFixedWidth(STRIP_WIDTH/2);
+ connect(pre, SIGNAL(toggled(bool)), SLOT(preToggled(bool)));
+
+ ppBox->addWidget(stereo);
+ ppBox->addWidget(pre);
+ layout->addLayout(ppBox);
+
+ //---------------------------------------------------
+ // aux send
+ //---------------------------------------------------
+
+ int auxsSize = song->auxs()->size();
+ if (t->hasAuxSend()) {
+ for (int idx = 0; idx < auxsSize; ++idx) {
+ DoubleLabel* al;
+ Knob* ak = addKnob(1, idx, &al);
+ auxKnob.push_back(ak);
+ auxLabel.push_back(al);
+ double val = fast_log10(t->auxSend(idx))*20.0;
+ ak->setValue(val);
+ al->setValue(val);
+ }
+ }
+ else {
+ if (auxsSize)
+ layout->addSpacing((STRIP_WIDTH/2 + 2) * auxsSize);
+ }
+
+ //---------------------------------------------------
+ // slider, label, meter
+ //---------------------------------------------------
+
+ sliderGrid = new Q3GridLayout(this); // ddskrjo this
+ sliderGrid->setRowStretch(0, 100);
+
+ //slider = new Slider(this);
+ slider = new Slider(this, "vol", Qt::Vertical, Slider::None,
+ Slider::BgTrough | Slider::BgSlot);
+ slider->setCursorHoming(true);
+ slider->setRange(config.minSlider-0.1, 10.0);
+ slider->setFixedWidth(20);
+ slider->setFont(config.fonts[1]);
+ slider->setValue(fast_log10(t->volume())*20.0);
+
+ sliderGrid->addWidget(slider, 0, 0, Qt::AlignHCenter);
+
+ for (int i = 0; i < channel; ++i) {
+ //meter[i]->setRange(config.minSlider, 10.0);
+ meter[i]->setRange(config.minMeter, 10.0);
+ meter[i]->setFixedWidth(15);
+ connect(meter[i], SIGNAL(mousePress()), this, SLOT(resetPeaks()));
+ sliderGrid->addWidget(meter[i], 0, i+1, Qt::AlignHCenter);
+ sliderGrid->setColStretch(i, 50);
+ }
+ layout->addLayout(sliderGrid);
+
+ sl = new DoubleLabel(0.0, config.minSlider, 10.0, this);
+ sl->setSlider(slider);
+ sl->setFont(config.fonts[1]);
+ sl->setBackgroundMode(Qt::PaletteMid);
+ sl->setSuffix(tr("dB"));
+ sl->setFrame(true);
+ sl->setPrecision(0);
+ sl->setFixedWidth(STRIP_WIDTH);
+ sl->setValue(fast_log10(t->volume()) * 20.0);
+
+ connect(sl, SIGNAL(valueChanged(double,int)), SLOT(volLabelChanged(double)));
+ //connect(sl, SIGNAL(valueChanged(double,int)), SLOT(volumeChanged(double)));
+ connect(slider, SIGNAL(valueChanged(double,int)), sl, SLOT(setValue(double)));
+ connect(slider, SIGNAL(sliderMoved(double,int)), SLOT(volumeChanged(double)));
+ connect(slider, SIGNAL(sliderPressed(int)), SLOT(volumePressed()));
+ connect(slider, SIGNAL(sliderReleased(int)), SLOT(volumeReleased()));
+ connect(slider, SIGNAL(sliderRightClicked(const QPoint &, int)), SLOT(volumeRightClicked(const QPoint &)));
+ layout->addWidget(sl);
+
+ //---------------------------------------------------
+ // pan, balance
+ //---------------------------------------------------
+
+ pan = addKnob(0, 0, &panl);
+ pan->setValue(t->pan());
+
+ //---------------------------------------------------
+ // mute, solo, record
+ //---------------------------------------------------
+
+ if (track->canRecord()) {
+ record = new TransparentToolButton(this);
+ record->setToggleButton(true);
+ record->setFixedWidth(STRIP_WIDTH/2);
+ record->setBackgroundMode(Qt::PaletteMid);
+ QIcon iconSet;
+ iconSet.setPixmap(*record_on_Icon, QIcon::Automatic, QIcon::Normal, QIcon::On);
+ iconSet.setPixmap(*record_off_Icon, QIcon::Automatic, QIcon::Normal, QIcon::Off);
+ record->setIconSet(iconSet);
+ QToolTip::add(record, tr("record"));
+ record->setOn(t->recordFlag());
+ connect(record, SIGNAL(toggled(bool)), SLOT(recordToggled(bool)));
+ }
+
+ Track::TrackType type = t->type();
+
+ Q3HBoxLayout* smBox1 = new Q3HBoxLayout(0);
+ Q3HBoxLayout* smBox2 = new Q3HBoxLayout(0);
+
+ mute = new QToolButton(this);
+
+ QIcon muteSet;
+ muteSet.setPixmap(*muteIconOn, QIcon::Automatic, QIcon::Normal, QIcon::Off);
+ muteSet.setPixmap(*muteIconOff, QIcon::Automatic, QIcon::Normal, QIcon::On);
+ mute->setIconSet(muteSet);
+ mute->setToggleButton(true);
+ QToolTip::add(mute, tr("mute"));
+ mute->setOn(t->mute());
+ mute->setFixedWidth(STRIP_WIDTH/2-2);
+ connect(mute, SIGNAL(toggled(bool)), SLOT(muteToggled(bool)));
+ smBox2->addWidget(mute);
+
+ solo = new QToolButton(this);
+
+ if((bool)t->internalSolo())
+ {
+ solo->setIconSet(*soloIconSet2);
+ useSoloIconSet2 = true;
+ }
+ else
+ {
+ solo->setIconSet(*soloIconSet1);
+ useSoloIconSet2 = false;
+ }
+
+ solo->setToggleButton(true);
+ solo->setOn(t->solo());
+
+ solo->setFixedWidth(STRIP_WIDTH/2-2);
+ smBox2->addWidget(solo);
+ connect(solo, SIGNAL(toggled(bool)), SLOT(soloToggled(bool)));
+ if (type == Track::AUDIO_OUTPUT) {
+ QToolTip::add(record, tr("record downmix"));
+ //QToolTip::add(solo, tr("solo mode (monitor)"));
+ QToolTip::add(solo, tr("solo mode"));
+ }
+ else {
+ //QToolTip::add(solo, tr("pre fader listening"));
+ QToolTip::add(solo, tr("solo mode"));
+ }
+
+ off = new TransparentToolButton(this);
+ QIcon iconSet;
+ iconSet.setPixmap(*exit1Icon, QIcon::Automatic, QIcon::Normal, QIcon::On);
+ iconSet.setPixmap(*exitIcon, QIcon::Automatic, QIcon::Normal, QIcon::Off);
+ off->setIconSet(iconSet);
+ off->setBackgroundMode(Qt::PaletteMid);
+ off->setFixedWidth(STRIP_WIDTH/2);
+ off->setToggleButton(true);
+ QToolTip::add(off, tr("off"));
+ off->setOn(t->off());
+ connect(off, SIGNAL(toggled(bool)), SLOT(offToggled(bool)));
+
+ smBox1->addWidget(off);
+ if (track->canRecord())
+ smBox1->addWidget(record);
+ else
+ smBox1->addStretch(100);
+
+ layout->addLayout(smBox1);
+ layout->addLayout(smBox2);
+
+ //---------------------------------------------------
+ // routing
+ //---------------------------------------------------
+
+ Q3HBoxLayout* rBox = new Q3HBoxLayout(0);
+ if (type != Track::AUDIO_AUX) {
+ iR = new QToolButton(this);
+ iR->setFont(config.fonts[1]);
+ iR->setFixedWidth((STRIP_WIDTH-4)/2);
+ iR->setText(tr("iR"));
+ iR->setToggleButton(false);
+ QToolTip::add(iR, tr("input routing"));
+ rBox->addWidget(iR);
+ connect(iR, SIGNAL(pressed()), SLOT(iRoutePressed()));
+ }
+ else
+ rBox->addSpacing((STRIP_WIDTH-4)/2);
+ oR = new QToolButton(this);
+ oR->setFont(config.fonts[1]);
+ oR->setFixedWidth((STRIP_WIDTH-4)/2);
+ oR->setText(tr("oR"));
+ oR->setToggleButton(false);
+ QToolTip::add(oR, tr("output routing"));
+ rBox->addWidget(oR);
+ connect(oR, SIGNAL(pressed()), SLOT(oRoutePressed()));
+
+ layout->addLayout(rBox);
+
+ //---------------------------------------------------
+ // automation type
+ //---------------------------------------------------
+
+ autoType = new ComboBox(this);
+ autoType->setFont(config.fonts[1]);
+ autoType->setFixedWidth(STRIP_WIDTH-4);
+ autoType->insertItem(tr("Off"), AUTO_OFF);
+ autoType->insertItem(tr("Read"), AUTO_READ);
+ autoType->insertItem(tr("Touch"), AUTO_TOUCH);
+ autoType->insertItem(tr("Write"), AUTO_WRITE);
+ autoType->setCurrentItem(t->automationType());
+
+ if(t->automationType() == AUTO_TOUCH || t->automationType() == AUTO_WRITE)
+ autoType->setPaletteBackgroundColor(Qt::red);
+ else
+ autoType->setPaletteBackgroundColor(qApp->palette().active().background());
+
+ QToolTip::add(autoType, tr("automation type"));
+ connect(autoType, SIGNAL(activated(int,int)), SLOT(setAutomationType(int,int)));
+ layout->addWidget(autoType);
+
+ if (off) {
+ off->blockSignals(true);
+ updateOffState(); // init state
+ off->blockSignals(false);
+ }
+ connect(heartBeatTimer, SIGNAL(timeout()), SLOT(heartBeat()));
+ }
+
+//---------------------------------------------------------
+// addMenuItem
+//---------------------------------------------------------
+
+static int addMenuItem(AudioTrack* track, Track* route_track, PopupMenu* lb, int id, RouteMenuMap& mm, int channel, int channels, bool isOutput)
+{
+ // totalInChannels is only used by syntis.
+ //int channels = (!isOutput || route_track->type() != Track::AUDIO_SOFTSYNTH) ? ((AudioTrack*)route_track)->totalOutChannels() : ((AudioTrack*)route_track)->totalInChannels();
+ //int channels = (!isOutput || track->type() != Track::AUDIO_SOFTSYNTH) ? ((AudioTrack*)track)->totalOutChannels() : ((AudioTrack*)track)->totalInChannels();
+ int toch = ((AudioTrack*)track)->totalOutChannels();
+ // If track channels = 1, it must be a mono synth. And synti channels cannot be changed by user.
+ if(track->channels() == 1)
+ toch = 1;
+
+ // totalInChannels is only used by syntis.
+ ///int chans = (isOutput || track->type() != Track::AUDIO_SOFTSYNTH) ? toch : ((AudioTrack*)track)->totalInChannels();
+
+ // Don't add the last stray mono route if the track is stereo.
+ //if(route_track->channels() > 1 && (channel+1 == chans))
+ // return id;
+
+ RouteList* rl = isOutput ? track->outRoutes() : track->inRoutes();
+
+ QString s(route_track->name());
+ //int trackchans = track->channels();
+ //QString ns;
+
+ //if(track->channels() > 1 && (channel+1 < channels))
+ //if(track->channels() > 1)
+ //if(route_track->type() == Track::AUDIO_SOFTSYNTH && channels > 2 && track->channels() > 1)
+ ///if(track->type() == Track::AUDIO_SOFTSYNTH && chans > 2 && route_track->channels() > 1)
+ /// s += QString(" < [%1,%2]").arg(channel+1).arg(channel+2);
+
+ //int it = lb->insertItem(s);
+ lb->insertItem(s, id);
+
+ int ach = channel;
+ int bch = -1;
+
+ Route r(route_track, isOutput ? ach : bch, channels);
+ //Route r(route_track, channel);
+
+ r.remoteChannel = isOutput ? bch : ach;
+
+ mm.insert( pRouteMenuMap(id, r) );
+
+ for(iRoute ir = rl->begin(); ir != rl->end(); ++ir)
+ {
+ //if (ir->type == 0 && ir->track == track) {
+ //if(ir->type == Route::TRACK_ROUTE && ir->track == track && ir->channels == channels)
+ //if(ir->type == Route::TRACK_ROUTE && ir->track == track &&
+ // (channel != -1 && ir->channel == channel) && (channels != -1 && ir->channels == channels))
+ //if(ir->type == Route::TRACK_ROUTE && ir->track == track && ir->channel == channel)
+ //printf("addMenuItem: ir->type:%d ir->track:%s track:%s ir->channel:%d channel:%d ir->channels:%d channels:%d\n",
+ // ir->type, ir->track->name().latin1(), track->name().latin1(), ir->channel, channel, ir->channels, channels);
+ //if(ir->type == Route::TRACK_ROUTE && ir->track == route_track && ir->channel == channel && ir->remoteChannel == r.remoteChannel)
+ //if(*ir == r)
+ //if(ir->type == Route::TRACK_ROUTE && ir->track == route_track && ir->channel == channel && ir->channels == channels && ir->remoteChannel == r.remoteChannel)
+
+ if(ir->type == Route::TRACK_ROUTE && ir->track == route_track && ir->remoteChannel == r.remoteChannel)
+ {
+ int tcompch = r.channel;
+ if(tcompch == -1)
+ tcompch = 0;
+ int tcompchs = r.channels;
+ if(tcompchs == -1)
+ tcompchs = isOutput ? track->channels() : route_track->channels();
+
+ int compch = ir->channel;
+ if(compch == -1)
+ compch = 0;
+ int compchs = ir->channels;
+ if(compchs == -1)
+ compchs = isOutput ? track->channels() : ir->track->channels();
+
+ //if(ir->type == Route::TRACK_ROUTE && ir->track == route_track && ir->channel == r.channel && ir->channels == r.channels && ir->remoteChannel == r.remoteChannel)
+ if(compch == tcompch && compchs == tcompchs)
+ {
+ //lb->setItemChecked(it, true);
+ lb->setItemChecked(id, true);
+ break;
+ }
+ }
+ }
+ return ++id;
+}
+
+//---------------------------------------------------------
+// addAuxPorts
+//---------------------------------------------------------
+
+static int addAuxPorts(AudioTrack* t, PopupMenu* lb, int id, RouteMenuMap& mm, int channel, int channels, bool isOutput)
+ {
+ AuxList* al = song->auxs();
+ for (iAudioAux i = al->begin(); i != al->end(); ++i) {
+ Track* track = *i;
+ if (t == track)
+ continue;
+ //id = addMenuItem(parent, t, track, lb, id, mm, channel, channels, isOutput);
+ id = addMenuItem(t, track, lb, id, mm, channel, channels, isOutput);
+
+ /*
+ QString s(track->name());
+ //int it = lb->insertItem(s);
+ lb->insertItem(s, id);
+ for (iRoute ir = r->begin(); ir != r->end(); ++ir) {
+ //if (ir->type == 0 && ir->track == track) {
+ if (ir->type == 0 && ir->track == track && ir->channels == channels) {
+ //lb->setItemChecked(it, true);
+ lb->setItemChecked(id, true);
+ break;
+ }
+ }
+ ++id;
+ */
+
+ }
+ return id;
+ }
+
+//---------------------------------------------------------
+// addInPorts
+//---------------------------------------------------------
+
+static int addInPorts(AudioTrack* t, PopupMenu* lb, int id, RouteMenuMap& mm, int channel, int channels, bool isOutput)
+ {
+ InputList* al = song->inputs();
+ for (iAudioInput i = al->begin(); i != al->end(); ++i) {
+ Track* track = *i;
+ if (t == track)
+ continue;
+ //id = addMenuItem(parent, t, track, lb, id, mm, channel, channels, isOutput);
+ id = addMenuItem(t, track, lb, id, mm, channel, channels, isOutput);
+
+ /*
+ QString s(track->name());
+ //int it = lb->insertItem(s);
+ lb->insertItem(s, id);
+ for (iRoute ir = r->begin(); ir != r->end(); ++ir) {
+ //if (ir->type == 0 && ir->track == track) {
+ if (ir->type == 0 && ir->track == track && ir->channels == channels) {
+ //lb->setItemChecked(it, true);
+ lb->setItemChecked(id, true);
+ break;
+ }
+ }
+ ++id;
+ */
+
+ }
+ return id;
+ }
+
+//---------------------------------------------------------
+// addOutPorts
+//---------------------------------------------------------
+
+static int addOutPorts(AudioTrack* t, PopupMenu* lb, int id, RouteMenuMap& mm, int channel, int channels, bool isOutput)
+ {
+ OutputList* al = song->outputs();
+ for (iAudioOutput i = al->begin(); i != al->end(); ++i) {
+ Track* track = *i;
+ if (t == track)
+ continue;
+ //id = addMenuItem(parent, t, track, lb, id, mm, channel, channels, isOutput);
+ id = addMenuItem(t, track, lb, id, mm, channel, channels, isOutput);
+
+ /*
+ QString s(track->name());
+ //int it = lb->insertItem(s);
+ lb->insertItem(s, id);
+ for (iRoute ir = r->begin(); ir != r->end(); ++ir) {
+ //if (ir->type == 0 && ir->track == track) {
+ if (ir->type == 0 && ir->track == track && ir->channels == channels) {
+ //lb->setItemChecked(it, true);
+ lb->setItemChecked(id, true);
+ break;
+ }
+ }
+ ++id;
+ */
+
+ }
+ return id;
+ }
+
+//---------------------------------------------------------
+// addGroupPorts
+//---------------------------------------------------------
+
+static int addGroupPorts(AudioTrack* t, PopupMenu* lb, int id, RouteMenuMap& mm, int channel, int channels, bool isOutput)
+ {
+ GroupList* al = song->groups();
+ for (iAudioGroup i = al->begin(); i != al->end(); ++i) {
+ Track* track = *i;
+ if (t == track)
+ continue;
+ //id = addMenuItem(parent, t, track, lb, id, mm, channel, channels, isOutput);
+ id = addMenuItem(t, track, lb, id, mm, channel, channels, isOutput);
+
+ /*
+ QString s(track->name());
+ //int it = lb->insertItem(s);
+ lb->insertItem(s, id);
+ for (iRoute ir = r->begin(); ir != r->end(); ++ir) {
+ //if (ir->type == 0 && ir->track == track) {
+ if (ir->type == 0 && ir->track == track && ir->channels == channels) {
+ //lb->setItemChecked(it, true);
+ lb->setItemChecked(id, true);
+ break;
+ }
+ }
+ ++id;
+ */
+
+ }
+ return id;
+ }
+
+//---------------------------------------------------------
+// addWavePorts
+//---------------------------------------------------------
+
+static int addWavePorts(AudioTrack* t, PopupMenu* lb, int id, RouteMenuMap& mm, int channel, int channels, bool isOutput)
+ {
+ WaveTrackList* al = song->waves();
+ for (iWaveTrack i = al->begin(); i != al->end(); ++i) {
+ Track* track = *i;
+ if (t == track)
+ continue;
+ //id = addMenuItem(parent, t, track, lb, id, mm, channel, channels, isOutput);
+ id = addMenuItem(t, track, lb, id, mm, channel, channels, isOutput);
+
+ /*
+ QString s(track->name());
+ //int it = lb->insertItem(s);
+ lb->insertItem(s, id);
+ for (iRoute ir = r->begin(); ir != r->end(); ++ir) {
+ //if (ir->type == 0 && ir->track == track) {
+ if (ir->type == 0 && ir->track == track && ir->channels == channels) {
+ //lb->setItemChecked(it, true);
+ lb->setItemChecked(id, true);
+ break;
+ }
+ }
+ ++id;
+ */
+
+ }
+ return id;
+ }
+
+//---------------------------------------------------------
+// addSyntiPorts
+//---------------------------------------------------------
+
+static int addSyntiPorts(AudioTrack* t, PopupMenu* lb, int id,
+ RouteMenuMap& mm, int channel, int channels, bool isOutput)
+{
+ RouteList* rl = isOutput ? t->outRoutes() : t->inRoutes();
+
+ SynthIList* al = song->syntis();
+ for (iSynthI i = al->begin(); i != al->end(); ++i)
+ {
+ Track* track = *i;
+ if (t == track)
+ continue;
+ //id = addMenuItem(parent, track, lb, r, id, mm, channel, channels);
+
+ /*
+ QString s(track->name());
+ //int it = lb->insertItem(s);
+ lb->insertItem(s, id);
+ for (iRoute ir = r->begin(); ir != r->end(); ++ir) {
+ //if (ir->type == 0 && ir->track == track) {
+ if (ir->type == 0 && ir->track == track && ir->channels == channels) {
+ //lb->setItemChecked(it, true);
+ lb->setItemChecked(id, true);
+ break;
+ }
+ }
+ ++id;
+ */
+
+ //SynthI* synti = (SynthI*)track;
+
+ int toch = ((AudioTrack*)track)->totalOutChannels();
+ // If track channels = 1, it must be a mono synth. And synti channels cannot be changed by user.
+ if(track->channels() == 1)
+ toch = 1;
+
+ //int chans = synti->totalOutChannels();
+ //int chans = (!isOutput || track->type() != Track::AUDIO_SOFTSYNTH) ? ((AudioTrack*)track)->totalOutChannels() : ((AudioTrack*)track)->totalInChannels();
+ // totalInChannels is only used by syntis.
+ int chans = (!isOutput || track->type() != Track::AUDIO_SOFTSYNTH) ? toch : ((AudioTrack*)track)->totalInChannels();
+
+ //int schans = synti->channels();
+ //if(schans < chans)
+ // chans = schans;
+ int tchans = (channels != -1) ? channels: t->channels();
+ if(tchans == 2)
+ {
+ // Ignore odd numbered left-over mono channel.
+ //chans = chans & ~1;
+ //if(chans != 0)
+ chans -= 1;
+ }
+
+ if(chans > 0)
+ {
+ //QPopupMenu* chpup = new QPopupMenu(parent);
+ //PopupMenu* chpup = new PopupMenu(parent);
+ //PopupMenu* chpup = new PopupMenu(lb->parent());
+ PopupMenu* chpup = new PopupMenu();
+ //strip->connect(chpup, SIGNAL(activated(int)), strip, SLOT(routingPopupMenuActivated(int)));
+ lb->connect(chpup, SIGNAL(activated(int)), lb, SIGNAL(activated(int)));
+ chpup->setCheckable(true);
+ for(int ch = 0; ch < chans; ++ch)
+ {
+ char buffer[128];
+ if(tchans == 2)
+ snprintf(buffer, 128, "%s %d,%d", chpup->tr("Channel").latin1(), ch+1, ch+2);
+ else
+ snprintf(buffer, 128, "%s %d", chpup->tr("Channel").latin1(), ch+1);
+ chpup->insertItem(QString(buffer), id);
+
+ int ach = (channel == -1) ? ch : channel;
+ int bch = (channel == -1) ? -1 : ch;
+
+ Route rt(track, (t->type() != Track::AUDIO_SOFTSYNTH || isOutput) ? ach : bch, tchans);
+ //Route rt(track, ch);
+ //rt.remoteChannel = -1;
+ rt.remoteChannel = (t->type() != Track::AUDIO_SOFTSYNTH || isOutput) ? bch : ach;
+
+ mm.insert( pRouteMenuMap(id, rt) );
+
+ for(iRoute ir = rl->begin(); ir != rl->end(); ++ir)
+ {
+ //if (ir->type == 0 && ir->track == track) {
+ //if(ir->type == 0 && ir->track == track && ir->channels == channels)
+ //if(ir->type == Route::TRACK_ROUTE && ir->track == track && ir->channel == channel &&
+ // ir->channels == channels && ir->remoteChannel == r.remoteChannel)
+ //if(ir->type == Route::TRACK_ROUTE && ir->track == track && ir->channel == ch &&
+ // ir->remoteChannel == rt.remoteChannel)
+ //if(ir->type == Route::TRACK_ROUTE && ir->track == track && ir->channel == rt.channel &&
+ // ir->channels == rt.channels && ir->remoteChannel == rt.remoteChannel)
+
+ if(ir->type == Route::TRACK_ROUTE && ir->track == track && ir->remoteChannel == rt.remoteChannel)
+ {
+ int tcompch = rt.channel;
+ if(tcompch == -1)
+ tcompch = 0;
+ int tcompchs = rt.channels;
+ if(tcompchs == -1)
+ tcompchs = isOutput ? t->channels() : track->channels();
+
+ int compch = ir->channel;
+ if(compch == -1)
+ compch = 0;
+ int compchs = ir->channels;
+ if(compchs == -1)
+ compchs = isOutput ? t->channels() : ir->track->channels();
+
+ if(compch == tcompch && compchs == tcompchs)
+ {
+ chpup->setItemChecked(id, true);
+ break;
+ }
+ }
+ }
+ ++id;
+ }
+
+ lb->insertItem(track->name(), chpup);
+ }
+ }
+ return id;
+}
+
+//---------------------------------------------------------
+// addMultiChannelOutPorts
+//---------------------------------------------------------
+
+static int addMultiChannelPorts(AudioTrack* t, PopupMenu* pup, int id, RouteMenuMap& mm, bool isOutput)
+{
+ int toch = t->totalOutChannels();
+ // If track channels = 1, it must be a mono synth. And synti channels cannot be changed by user.
+ if(t->channels() == 1)
+ toch = 1;
+
+ // Number of allocated buffers is always MAX_CHANNELS or more, even if _totalOutChannels is less.
+ //int chans = t->totalOutChannels();
+ // totalInChannels is only used by syntis.
+ //int chans = isOutput ? t->totalOutChannels() : t->totalInChannels();
+ //int chans = (isOutput || t->type() != Track::AUDIO_SOFTSYNTH) ? t->totalOutChannels() : t->totalInChannels();
+ int chans = (isOutput || t->type() != Track::AUDIO_SOFTSYNTH) ? toch : t->totalInChannels();
+
+ // If track channels = 1, it must be a mono synth. And synti channels cannot be changed by user.
+ //if(t->channels() == 1)
+ // chans = 1;
+
+ if(chans > 1)
+ {
+ // pup->insertItem(new MenuTitleItem("<Mono>")); ddskrjo
+ //pup->insertSeparator();
+ }
+
+ //
+ // If it's more than one channel, create a sub-menu. If it's just one channel, don't bother with a sub-menu...
+ //
+
+ //QPopupMenu* chpup = pup;
+ PopupMenu* chpup = pup;
+
+ for(int ch = 0; ch < chans; ++ch)
+ {
+ // If more than one channel, create the sub-menu.
+ if(chans > 1)
+ {
+ //chpup = new QPopupMenu(parent);
+ //chpup = new PopupMenu(parent);
+ //chpup = new PopupMenu(pup->parent());
+ chpup = new PopupMenu();
+ //connect(chpup, SIGNAL(activated(int)), strip, SLOT(oRouteMenuActivated(int)));
+ //strip->connect(chpup, SIGNAL(activated(int)), strip, SLOT(routingPopupMenuActivated(int)));
+ pup->connect(chpup, SIGNAL(activated(int)), pup, SIGNAL(activated(int)));
+ chpup->setCheckable(true);
+ }
+
+ if(isOutput)
+ {
+ switch(t->type())
+ {
+
+ case Track::AUDIO_INPUT:
+ //id = addWavePorts(parent, t, chpup, id, mm, ch, 1, isOutput);
+ id = addWavePorts(t, chpup, id, mm, ch, 1, isOutput);
+ case Track::WAVE:
+ case Track::AUDIO_GROUP:
+ case Track::AUDIO_SOFTSYNTH:
+ //id = addOutPorts(parent, t, chpup, id, mm, ch, 1, isOutput);
+ //id = addGroupPorts(parent, t, chpup, id, mm, ch, 1, isOutput);
+ id = addOutPorts(t, chpup, id, mm, ch, 1, isOutput);
+ id = addGroupPorts(t, chpup, id, mm, ch, 1, isOutput);
+ //id = addSyntiPorts(parent, t, chpup, id, mm, ch, 1, isOutput);
+ //id = addSyntiPorts(strip, parent, t, chpup, id, mm, ch, 1, isOutput);
+ id = addSyntiPorts(t, chpup, id, mm, ch, 1, isOutput);
+ break;
+ case Track::AUDIO_AUX:
+ //id = addOutPorts(parent, t, chpup, id, mm, ch, 1, isOutput);
+ id = addOutPorts(t, chpup, id, mm, ch, 1, isOutput);
+ break;
+ default:
+ break;
+
+ /*
+ case Track::AUDIO_INPUT:
+ id = addWavePorts(parent, t, chpup, id, mm, ch, isOutput);
+ case Track::WAVE:
+ case Track::AUDIO_GROUP:
+ case Track::AUDIO_SOFTSYNTH:
+ id = addOutPorts(parent, t, chpup, id, mm, ch, isOutput);
+ id = addGroupPorts(parent, t, chpup, id, mm, ch, isOutput);
+ id = addSyntiPorts(parent, t, chpup, id, mm, ch, isOutput);
+ break;
+ case Track::AUDIO_AUX:
+ id = addOutPorts(parent, t, chpup, id, mm, ch, isOutput);
+ break;
+ default:
+ break;
+ */
+ }
+ }
+ else
+ {
+ switch(t->type())
+ {
+
+ case Track::AUDIO_OUTPUT:
+ //id = addWavePorts(parent, t, chpup, id, mm, ch, 1, isOutput);
+ //id = addInPorts(parent, t, chpup, id, mm, ch, 1, isOutput);
+ //id = addGroupPorts(parent, t, chpup, id, mm, ch, 1, isOutput);
+ //id = addAuxPorts(parent, t, chpup, id, mm, ch, 1, isOutput);
+ id = addWavePorts(t, chpup, id, mm, ch, 1, isOutput);
+ id = addInPorts(t, chpup, id, mm, ch, 1, isOutput);
+ id = addGroupPorts(t, chpup, id, mm, ch, 1, isOutput);
+ id = addAuxPorts(t, chpup, id, mm, ch, 1, isOutput);
+ //id = addSyntiPorts(parent, t, chpup, id, mm, ch, 1, isOutput);
+ //id = addSyntiPorts(strip, parent, t, chpup, id, mm, ch, 1, isOutput);
+ id = addSyntiPorts(t, chpup, id, mm, ch, 1, isOutput);
+ break;
+ case Track::WAVE:
+ //id = addInPorts(parent, t, chpup, id, mm, ch, 1, isOutput);
+ id = addInPorts(t, chpup, id, mm, ch, 1, isOutput);
+ break;
+ case Track::AUDIO_SOFTSYNTH:
+ case Track::AUDIO_GROUP:
+ //id = addWavePorts(parent, t, chpup, id, mm, ch, 1, isOutput);
+ //id = addInPorts(parent, t, chpup, id, mm, ch, 1, isOutput);
+ //id = addGroupPorts(parent, t, chpup, id, mm, ch, 1, isOutput);
+ id = addWavePorts(t, chpup, id, mm, ch, 1, isOutput);
+ id = addInPorts(t, chpup, id, mm, ch, 1, isOutput);
+ id = addGroupPorts(t, chpup, id, mm, ch, 1, isOutput);
+ //id = addSyntiPorts(parent, t, chpup, id, mm, ch, 1, isOutput);
+ //id = addSyntiPorts(strip, parent, t, chpup, id, mm, ch, 1, isOutput);
+ id = addSyntiPorts(t, chpup, id, mm, ch, 1, isOutput);
+ break;
+ default:
+ break;
+
+ /*
+ case Track::AUDIO_OUTPUT:
+ id = addWavePorts(parent, t, chpup, id, mm, ch, isOutput);
+ id = addInPorts(parent, t, chpup, id, mm, ch, isOutput);
+ id = addGroupPorts(parent, t, chpup, id, mm, ch, isOutput);
+ id = addAuxPorts(parent, t, chpup, id, mm, ch, isOutput);
+ id = addSyntiPorts(parent, t, chpup, id, mm, ch, isOutput);
+ break;
+ case Track::WAVE:
+ id = addInPorts(parent, t, chpup, id, mm, ch, isOutput);
+ break;
+ case Track::AUDIO_SOFTSYNTH:
+ case Track::AUDIO_GROUP:
+ id = addWavePorts(parent, t, chpup, id, mm, ch, isOutput);
+ id = addInPorts(parent, t, chpup, id, mm, ch, isOutput);
+ id = addGroupPorts(parent, t, chpup, id, mm, ch, isOutput);
+ id = addSyntiPorts(parent, t, chpup, id, mm, ch, isOutput);
+ break;
+ default:
+ break;
+ */
+ }
+ }
+
+ // If more than one channel, add the created sub-menu.
+ if(chans > 1)
+ {
+ char buffer[128];
+ snprintf(buffer, 128, "%s %d", pup->tr("Channel").latin1(), ch+1);
+ pup->insertItem(QString(buffer), chpup);
+ }
+ }
+
+ // For stereo listing, ignore odd numbered left-over channels.
+ chans -= 1;
+ if(chans > 0)
+ {
+ // Ignore odd numbered left-over channels.
+ //int schans = (chans & ~1) - 1;
+
+ pup->insertSeparator();
+ //pup->insertItem(new MenuTitleItem("<Stereo>")); ddskrjo
+ //pup->insertSeparator();
+
+ //
+ // If it's more than two channels, create a sub-menu. If it's just two channels, don't bother with a sub-menu...
+ //
+
+ //QPopupMenu* chpup = pup;
+ chpup = pup;
+ if(chans <= 2)
+ // Just do one iteration.
+ chans = 1;
+
+ //for(int ch = 0; ch < schans; ++ch)
+ for(int ch = 0; ch < chans; ++ch)
+ {
+ // If more than two channels, create the sub-menu.
+ if(chans > 2)
+ {
+ //chpup = new QPopupMenu(parent);
+ //chpup = new PopupMenu(parent);
+ //chpup = new PopupMenu(pup->parent());
+ chpup = new PopupMenu();
+ //strip->connect(chpup, SIGNAL(activated(int)), strip, SLOT(routingPopupMenuActivated(int)));
+ pup->connect(chpup, SIGNAL(activated(int)), pup, SIGNAL(activated(int)));
+ chpup->setCheckable(true);
+ }
+
+ if(isOutput)
+ {
+ switch(t->type())
+ {
+ case Track::AUDIO_INPUT:
+ //id = addWavePorts(parent, t, chpup, id, mm, ch, 2, isOutput);
+ id = addWavePorts(t, chpup, id, mm, ch, 2, isOutput);
+ case Track::WAVE:
+ case Track::AUDIO_GROUP:
+ case Track::AUDIO_SOFTSYNTH:
+ //id = addOutPorts(parent, t, chpup, id, mm, ch, 2, isOutput);
+ //id = addGroupPorts(parent, t, chpup, id, mm, ch, 2, isOutput);
+ id = addOutPorts(t, chpup, id, mm, ch, 2, isOutput);
+ id = addGroupPorts(t, chpup, id, mm, ch, 2, isOutput);
+ //id = addSyntiPorts(parent, t, chpup, id, mm, ch, 2, isOutput);
+ //id = addSyntiPorts(strip, parent, t, chpup, id, mm, ch, 2, isOutput);
+ id = addSyntiPorts(t, chpup, id, mm, ch, 2, isOutput);
+ break;
+ case Track::AUDIO_AUX:
+ //id = addOutPorts(parent, t, chpup, id, mm, ch, 2, isOutput);
+ id = addOutPorts(t, chpup, id, mm, ch, 2, isOutput);
+ break;
+ default:
+ break;
+ }
+ }
+ else
+ {
+ switch(t->type())
+ {
+ case Track::AUDIO_OUTPUT:
+ //id = addWavePorts(parent, t, chpup, id, mm, ch, 2, isOutput);
+ //id = addInPorts(parent, t, chpup, id, mm, ch, 2, isOutput);
+ //id = addGroupPorts(parent, t, chpup, id, mm, ch, 2, isOutput);
+ //id = addAuxPorts(parent, t, chpup, id, mm, ch, 2, isOutput);
+ id = addWavePorts(t, chpup, id, mm, ch, 2, isOutput);
+ id = addInPorts(t, chpup, id, mm, ch, 2, isOutput);
+ id = addGroupPorts(t, chpup, id, mm, ch, 2, isOutput);
+ id = addAuxPorts(t, chpup, id, mm, ch, 2, isOutput);
+ //id = addSyntiPorts(parent, t, chpup, id, mm, ch, 2, isOutput);
+ //id = addSyntiPorts(strip, parent, t, chpup, id, mm, ch, 2, isOutput);
+ id = addSyntiPorts(t, chpup, id, mm, ch, 2, isOutput);
+ break;
+ case Track::WAVE:
+ //id = addInPorts(parent, t, chpup, id, mm, ch, 2, isOutput);
+ id = addInPorts(t, chpup, id, mm, ch, 2, isOutput);
+ break;
+ case Track::AUDIO_SOFTSYNTH:
+ case Track::AUDIO_GROUP:
+ //id = addWavePorts(parent, t, chpup, id, mm, ch, 2, isOutput);
+ //id = addInPorts(parent, t, chpup, id, mm, ch, 2, isOutput);
+ //id = addGroupPorts(parent, t, chpup, id, mm, ch, 2, isOutput);
+ id = addWavePorts(t, chpup, id, mm, ch, 2, isOutput);
+ id = addInPorts(t, chpup, id, mm, ch, 2, isOutput);
+ id = addGroupPorts(t, chpup, id, mm, ch, 2, isOutput);
+ //id = addSyntiPorts(parent, t, chpup, id, mm, ch, 2, isOutput);
+ //id = addSyntiPorts(strip, parent, t, chpup, id, mm, ch, 2, isOutput);
+ id = addSyntiPorts(t, chpup, id, mm, ch, 2, isOutput);
+ break;
+ default:
+ break;
+ }
+ }
+
+ // If more than two channels, add the created sub-menu.
+ if(chans > 2)
+ {
+ char buffer[128];
+ snprintf(buffer, 128, "%s %d,%d", pup->tr("Channel").latin1(), ch+1, ch+2);
+ pup->insertItem(QString(buffer), chpup);
+ }
+ }
+ }
+
+ return id;
+}
+
+//---------------------------------------------------------
+// nonSyntiTrackAddSyntis
+//---------------------------------------------------------
+
+static int nonSyntiTrackAddSyntis(AudioTrack* t, PopupMenu* lb, int id, RouteMenuMap& mm, bool isOutput)
+{
+ RouteList* rl = isOutput ? t->outRoutes() : t->inRoutes();
+
+ SynthIList* al = song->syntis();
+ for (iSynthI i = al->begin(); i != al->end(); ++i)
+ {
+ Track* track = *i;
+ if (t == track)
+ continue;
+ //id = addMenuItem(parent, track, lb, r, id, mm, channel, channels);
+
+ /*
+ QString s(track->name());
+ //int it = lb->insertItem(s);
+ lb->insertItem(s, id);
+ for (iRoute ir = r->begin(); ir != r->end(); ++ir) {
+ //if (ir->type == 0 && ir->track == track) {
+ if (ir->type == 0 && ir->track == track && ir->channels == channels) {
+ //lb->setItemChecked(it, true);
+ lb->setItemChecked(id, true);
+ break;
+ }
+ }
+ ++id;
+ */
+
+ //SynthI* synti = (SynthI*)track;
+
+ int toch = ((AudioTrack*)track)->totalOutChannels();
+ // If track channels = 1, it must be a mono synth. And synti channels cannot be changed by user.
+ if(track->channels() == 1)
+ toch = 1;
+
+ //int chans = synti->totalOutChannels();
+ //int chans = (!isOutput || track->type() != Track::AUDIO_SOFTSYNTH) ? ((AudioTrack*)track)->totalOutChannels() : ((AudioTrack*)track)->totalInChannels();
+ // totalInChannels is only used by syntis.
+ int chans = (!isOutput || track->type() != Track::AUDIO_SOFTSYNTH) ? toch : ((AudioTrack*)track)->totalInChannels();
+
+ //int schans = synti->channels();
+ //if(schans < chans)
+ // chans = schans;
+// int tchans = (channels != -1) ? channels: t->channels();
+// if(tchans == 2)
+// {
+ // Ignore odd numbered left-over mono channel.
+ //chans = chans & ~1;
+ //if(chans != 0)
+// chans -= 1;
+// }
+ //int tchans = (channels != -1) ? channels: t->channels();
+
+ if(chans > 0)
+ {
+ //QPopupMenu* chpup = new QPopupMenu(parent);
+ //PopupMenu* chpup = new PopupMenu(parent);
+ //PopupMenu* chpup = new PopupMenu(lb->parent());
+ PopupMenu* chpup = new PopupMenu();
+ //strip->connect(chpup, SIGNAL(activated(int)), strip, SLOT(routingPopupMenuActivated(int)));
+ lb->connect(chpup, SIGNAL(activated(int)), lb, SIGNAL(activated(int)));
+ chpup->setCheckable(true);
+
+ if(chans > 1)
+ {
+ //chpup->insertItem(new MenuTitleItem("<Mono>")); ddskrjo
+ //pup->insertSeparator();
+ }
+
+ for(int ch = 0; ch < chans; ++ch)
+ {
+ char buffer[128];
+ //if(tchans == 2)
+ // snprintf(buffer, 128, "%s %d,%d", chpup->tr("Channel").latin1(), ch+1, ch+2);
+ //else
+ snprintf(buffer, 128, "%s %d", chpup->tr("Channel").latin1(), ch+1);
+ chpup->insertItem(QString(buffer), id);
+
+ //int ach = (channel == -1) ? ch : channel;
+ //int bch = (channel == -1) ? -1 : ch;
+ int ach = ch;
+ int bch = -1;
+
+ //Route rt(track, (t->type() != Track::AUDIO_SOFTSYNTH || isOutput) ? ach : bch, tchans);
+ Route rt(track, isOutput ? bch : ach, 1);
+ //Route rt(track, ch);
+
+ //rt.remoteChannel = -1;
+ //rt.remoteChannel = (t->type() != Track::AUDIO_SOFTSYNTH || isOutput) ? bch : ach;
+ rt.remoteChannel = isOutput ? ach : bch;
+
+ mm.insert( pRouteMenuMap(id, rt) );
+
+ for(iRoute ir = rl->begin(); ir != rl->end(); ++ir)
+ {
+ //if (ir->type == 0 && ir->track == track) {
+ //if(ir->type == 0 && ir->track == track && ir->channels == channels)
+ //if(ir->type == Route::TRACK_ROUTE && ir->track == track && ir->channel == channel &&
+ // ir->channels == channels && ir->remoteChannel == r.remoteChannel)
+ //if(ir->type == Route::TRACK_ROUTE && ir->track == track && ir->channel == ch &&
+ // ir->remoteChannel == rt.remoteChannel)
+ //if(ir->type == Route::TRACK_ROUTE && ir->track == track && ir->channel == rt.channel &&
+ // ir->channels == rt.channels && ir->remoteChannel == rt.remoteChannel)
+
+ if(ir->type == Route::TRACK_ROUTE && ir->track == track && ir->remoteChannel == rt.remoteChannel)
+ {
+ int tcompch = rt.channel;
+ if(tcompch == -1)
+ tcompch = 0;
+ int tcompchs = rt.channels;
+ if(tcompchs == -1)
+ tcompchs = isOutput ? t->channels() : track->channels();
+
+ int compch = ir->channel;
+ if(compch == -1)
+ compch = 0;
+ int compchs = ir->channels;
+ if(compchs == -1)
+ compchs = isOutput ? t->channels() : ir->track->channels();
+
+ if(compch == tcompch && compchs == tcompchs)
+ {
+ chpup->setItemChecked(id, true);
+ break;
+ }
+ }
+ }
+ ++id;
+ }
+
+ chans -= 1;
+ if(chans > 0)
+ {
+ // Ignore odd numbered left-over channels.
+ //int schans = (chans & ~1) - 1;
+
+ chpup->insertSeparator();
+ //chpup->insertItem(new MenuTitleItem("<Stereo>")); ddskrjo
+ //pup->insertSeparator();
+
+ for(int ch = 0; ch < chans; ++ch)
+ {
+ char buffer[128];
+ //if(tchans == 2)
+ snprintf(buffer, 128, "%s %d,%d", chpup->tr("Channel").latin1(), ch+1, ch+2);
+ //else
+ // snprintf(buffer, 128, "%s %d", chpup->tr("Channel").latin1(), ch+1);
+ chpup->insertItem(QString(buffer), id);
+
+ //int ach = (channel == -1) ? ch : channel;
+ //int bch = (channel == -1) ? -1 : ch;
+ int ach = ch;
+ int bch = -1;
+
+ //Route rt(track, (t->type() != Track::AUDIO_SOFTSYNTH || isOutput) ? ach : bch, tchans);
+ Route rt(track, isOutput ? bch : ach, 2);
+ //Route rt(track, ch);
+
+ //rt.remoteChannel = -1;
+ //rt.remoteChannel = (t->type() != Track::AUDIO_SOFTSYNTH || isOutput) ? bch : ach;
+ rt.remoteChannel = isOutput ? ach : bch;
+
+ mm.insert( pRouteMenuMap(id, rt) );
+
+ for(iRoute ir = rl->begin(); ir != rl->end(); ++ir)
+ {
+ //if (ir->type == 0 && ir->track == track) {
+ //if(ir->type == 0 && ir->track == track && ir->channels == channels)
+ //if(ir->type == Route::TRACK_ROUTE && ir->track == track && ir->channel == channel &&
+ // ir->channels == channels && ir->remoteChannel == r.remoteChannel)
+ //if(ir->type == Route::TRACK_ROUTE && ir->track == track && ir->channel == ch &&
+ // ir->remoteChannel == rt.remoteChannel)
+ //if(ir->type == Route::TRACK_ROUTE && ir->track == track && ir->channel == rt.channel &&
+ // ir->channels == rt.channels && ir->remoteChannel == rt.remoteChannel)
+
+
+ if(ir->type == Route::TRACK_ROUTE && ir->track == track && ir->remoteChannel == rt.remoteChannel)
+ {
+ int tcompch = rt.channel;
+ if(tcompch == -1)
+ tcompch = 0;
+ int tcompchs = rt.channels;
+ if(tcompchs == -1)
+ tcompchs = isOutput ? t->channels() : track->channels();
+
+ int compch = ir->channel;
+ if(compch == -1)
+ compch = 0;
+ int compchs = ir->channels;
+ if(compchs == -1)
+ compchs = isOutput ? t->channels() : ir->track->channels();
+
+ if(compch == tcompch && compchs == tcompchs)
+ {
+ chpup->setItemChecked(id, true);
+ break;
+ }
+ }
+ }
+ ++id;
+ }
+ }
+
+ lb->insertItem(track->name(), chpup);
+ }
+ }
+ return id;
+}
+
+//---------------------------------------------------------
+// iRoutePressed
+//---------------------------------------------------------
+
+void AudioStrip::iRoutePressed()
+ {
+ //if(track->isMidiTrack() || (track->type() == Track::AUDIO_AUX) || (track->type() == Track::AUDIO_SOFTSYNTH))
+ if(!track || track->isMidiTrack() || track->type() == Track::AUDIO_AUX)
+ {
+ //_isRoutingPopupMenuMaster = false;
+ gRoutingPopupMenuMaster = 0;
+ return;
+ }
+
+ QPoint ppt = QCursor::pos();
+
+ //QPopupMenu* pup = new QPopupMenu(iR);
+ //PopupMenu* pup = new PopupMenu(iR);
+ //pup->setCheckable(true);
+
+ PopupMenu* pup = muse->getRoutingPopupMenu();
+ pup->disconnect();
+
+ AudioTrack* t = (AudioTrack*)track;
+ RouteList* irl = t->inRoutes();
+
+ int gid = 0;
+ //int n;
+ ///RouteMenuMap mm;
+
+ // Routes can't be re-read until the message sent from msgAddRoute1()
+ // has had time to be sent and actually affected the routes.
+ ///_redisplay:
+
+ //QPopupMenu* pup = new QPopupMenu(iR);
+ //RouteList* irl = t->inRoutes();
+
+ pup->clear();
+ gRoutingMenuMap.clear();
+ gid = 0;
+
+ switch(track->type())
+ {
+ case Track::AUDIO_INPUT:
+ {
+ pup->setCheckable(true);
+ //int gid = 0;
+ for(int i = 0; i < channel; ++i)
+ {
+ char buffer[128];
+ snprintf(buffer, 128, "%s %d", tr("Channel").latin1(), i+1);
+ MenuTitleItem* titel = new MenuTitleItem(QString(buffer));
+ //pup->insertItem(titel); ddskrjo
+
+ if(!checkAudioDevice())
+ {
+ ///delete pup;
+ gRoutingPopupMenuMaster = 0;
+ pup->clear();
+ gRoutingMenuMap.clear();
+ iR->setDown(false);
+ return;
+ }
+ std::list<QString> ol = audioDevice->outputPorts();
+ for(std::list<QString>::iterator ip = ol.begin(); ip != ol.end(); ++ip)
+ {
+ int id = pup->insertItem(*ip, (gid * 16) + i);
+ //Route dst(*ip, true, i);
+ Route dst(*ip, true, i, Route::JACK_ROUTE);
+ gRoutingMenuMap.insert( pRouteMenuMap(id, dst) );
+ ++gid;
+ for(iRoute ir = irl->begin(); ir != irl->end(); ++ir)
+ {
+ if(*ir == dst)
+ {
+ pup->setItemChecked(id, true);
+ break;
+ }
+ }
+ }
+ if(i+1 != channel)
+ pup->insertSeparator();
+ }
+ }
+ break;
+ //case Track::AUDIO_OUTPUT:
+ //case Track::WAVE:
+ //case Track::AUDIO_GROUP:
+
+ case Track::AUDIO_OUTPUT:
+ //gid = addWavePorts( iR, t, pup, gid, gRoutingMenuMap, -1, -1, false);
+ //gid = addInPorts( iR, t, pup, gid, gRoutingMenuMap, -1, -1, false);
+ //gid = addGroupPorts(iR, t, pup, gid, gRoutingMenuMap, -1, -1, false);
+ //gid = addAuxPorts( iR, t, pup, gid, gRoutingMenuMap, -1, -1, false);
+ gid = addWavePorts( t, pup, gid, gRoutingMenuMap, -1, -1, false);
+ gid = addInPorts( t, pup, gid, gRoutingMenuMap, -1, -1, false);
+ gid = addGroupPorts(t, pup, gid, gRoutingMenuMap, -1, -1, false);
+ gid = addAuxPorts( t, pup, gid, gRoutingMenuMap, -1, -1, false);
+ //gid = addSyntiPorts(iR, t, pup, gid, gRoutingMenuMap, -1, -1, false);
+ //gid = nonSyntiTrackAddSyntis(iR, t, pup, gid, gRoutingMenuMap, false);
+ //gid = nonSyntiTrackAddSyntis(this, iR, t, pup, gid, gRoutingMenuMap, false);
+ gid = nonSyntiTrackAddSyntis(t, pup, gid, gRoutingMenuMap, false);
+ break;
+ case Track::WAVE:
+ //gid = addInPorts( iR, t, pup, gid, gRoutingMenuMap, -1, -1, false);
+ gid = addInPorts( t, pup, gid, gRoutingMenuMap, -1, -1, false);
+ break;
+ case Track::AUDIO_GROUP:
+ //gid = addWavePorts( iR, t, pup, gid, gRoutingMenuMap, -1, -1, false);
+ //gid = addInPorts( iR, t, pup, gid, gRoutingMenuMap, -1, -1, false);
+ //gid = addGroupPorts(iR, t, pup, gid, gRoutingMenuMap, -1, -1, false);
+ gid = addWavePorts( t, pup, gid, gRoutingMenuMap, -1, -1, false);
+ gid = addInPorts( t, pup, gid, gRoutingMenuMap, -1, -1, false);
+ gid = addGroupPorts(t, pup, gid, gRoutingMenuMap, -1, -1, false);
+ //gid = addSyntiPorts(iR, t, pup, gid, gRoutingMenuMap, -1, -1, false);
+ //gid = nonSyntiTrackAddSyntis(iR, t, pup, gid, gRoutingMenuMap, false);
+ //gid = nonSyntiTrackAddSyntis(this, iR, t, pup, gid, gRoutingMenuMap, false);
+ gid = nonSyntiTrackAddSyntis(t, pup, gid, gRoutingMenuMap, false);
+ break;
+
+ case Track::AUDIO_SOFTSYNTH:
+ //gid = addMultiChannelPorts(iR, t, pup, gid, gRoutingMenuMap, false);
+ //gid = addMultiChannelPorts(this, iR, t, pup, gid, gRoutingMenuMap, false);
+ gid = addMultiChannelPorts(t, pup, gid, gRoutingMenuMap, false);
+ break;
+ default:
+ ///delete pup;
+ gRoutingPopupMenuMaster = 0;
+ pup->clear();
+ gRoutingMenuMap.clear();
+ iR->setDown(false);
+ return;
+ }
+
+ if(pup->count() == 0)
+ {
+ ///delete pup;
+ gRoutingPopupMenuMaster = 0;
+ gRoutingMenuMap.clear();
+ iR->setDown(false);
+ return;
+ }
+
+ gIsOutRoutingPopupMenu = false;
+ gRoutingPopupMenuMaster = this;
+ connect(pup, SIGNAL(activated(int)), SLOT(routingPopupMenuActivated(int)));
+ connect(pup, SIGNAL(aboutToHide()), muse, SLOT(routingPopupMenuAboutToHide()));
+ pup->popup(ppt, 0);
+ iR->setDown(false);
+ return;
+
+
+
+ /*
+ //int n = pup->exec(QCursor::pos());
+ // For some reason, after the first display, it won't redisplay at the same point if the menu is too high.
+ n = pup->exec(ppt, 0);
+ if(n != -1)
+ {
+ QString s(pup->text(n));
+
+ if(track->type() == Track::AUDIO_INPUT)
+ {
+ ///delete pup;
+ int chan = n & 0xf;
+
+ Route srcRoute(s, false, -1, Route::JACK_ROUTE);
+ Route dstRoute(t, chan);
+
+ srcRoute.channel = chan;
+
+ iRoute iir = irl->begin();
+ for(; iir != irl->end(); ++iir)
+ {
+ if(*iir == srcRoute)
+ break;
+ }
+ if(iir != irl->end())
+ // disconnect
+ audio->msgRemoveRoute(srcRoute, dstRoute);
+ else
+ // connect
+ audio->msgAddRoute(srcRoute, dstRoute);
+
+ audio->msgUpdateSoloStates();
+ song->update(SC_ROUTE);
+ iR->setDown(false); // pup->exec() catches mouse release event
+ return;
+
+ // p3.3.46
+ ///goto _redisplay;
+ }
+
+ iRouteMenuMap imm = mm.find(n);
+ if(imm == mm.end())
+ {
+ delete pup;
+ iR->setDown(false); // pup->exec() catches mouse release event
+ return;
+ }
+
+ //int chan = n >> 16;
+ //int chans = (chan >> 15) + 1; // Bit 31 MSB: Mono or stereo.
+ //chan &= 0xffff;
+ //int chan = imm->second.channel;
+ //int chans = imm->second.channels;
+
+ //Route srcRoute(s, false, -1);
+ //Route srcRoute(s, false, -1, Route::TRACK_ROUTE);
+ Route &srcRoute = imm->second;
+
+ //Route dstRoute(t, -1);
+ //Route dstRoute(t, chan, chans);
+ Route dstRoute(t, imm->second.channel, imm->second.channels);
+ //Route dstRoute(t, imm->second.channel);
+ dstRoute.remoteChannel = imm->second.remoteChannel;
+
+ iRoute iir = irl->begin();
+ for (; iir != irl->end(); ++iir) {
+ if (*iir == srcRoute)
+ break;
+ }
+ if (iir != irl->end()) {
+ // disconnect
+ audio->msgRemoveRoute(srcRoute, dstRoute);
+ }
+ else {
+ // connect
+ audio->msgAddRoute(srcRoute, dstRoute);
+ }
+ audio->msgUpdateSoloStates();
+ song->update(SC_ROUTE);
+
+ // p3.3.46
+ //iR->setDown(false); // pup->exec() catches mouse release event
+ ///goto _redisplay;
+
+ }
+
+ delete pup;
+ iR->setDown(false); // pup->exec() catches mouse release event
+ */
+
+ }
+
+#if 0
+//---------------------------------------------------------
+// updateRouteMenus
+//---------------------------------------------------------
+
+void AudioStrip::updateRouteMenus()
+{
+ //if(!_isRoutingPopupMenuMaster || track->isMidiTrack() || (track->type() == Track::AUDIO_AUX))
+ if(!track || gRoutingPopupMenuMaster != this || track->isMidiTrack())
+ return;
+
+ ///QPopupMenu* pup = new QPopupMenu(oR);
+ // p3.3.47
+ //if(!orpup)
+ // return;
+
+ //QPopupMenu* pup = muse->getORoutesPopup();
+ PopupMenu* pup = muse->getRoutingPopupMenu();
+
+ if(pup->count() == 0)
+ return;
+
+ //pup->setCheckable(true);
+ AudioTrack* t = (AudioTrack*)track;
+ RouteList* rl = gIsOutRoutingPopupMenu ? t->outRoutes() : t->inRoutes();
+
+ //int gid = 0;
+ //int n;
+ ///RouteMenuMap mm;
+
+ //QPoint ppt = QCursor::pos();
+
+
+ /*
+ iRoute iorl = orl->begin();
+ for(; iorl != orl->end(); ++iorl)
+ {
+ iRouteMenuMap imm = ormm->begin();
+ for(; imm != ormm->end(); ++imm)
+ {
+ if(*iorl == imm->second)
+ {
+ orpup->setItemChecked(imm->first, true);
+ break;
+ }
+ }
+ //if(imm == ormm->end())
+ //{
+ //}
+
+ }
+ //if (iorl == orl->end())
+ //{
+ //}
+ */
+
+ iRouteMenuMap imm = gRoutingMenuMap.begin();
+ for(; imm != gRoutingMenuMap.end(); ++imm)
+ {
+ bool found = false;
+ iRoute irl = rl->begin();
+ for(; irl != rl->end(); ++irl)
+ {
+ if(*irl == imm->second)
+ {
+ found = true;
+ break;
+ }
+ }
+ pup->setItemChecked(imm->first, found);
+ }
+
+ return;
+}
+#endif
+
+//---------------------------------------------------------
+// routingPopupMenuActivated
+//---------------------------------------------------------
+
+void AudioStrip::routingPopupMenuActivated(int n)
+{
+ if(!track || gRoutingPopupMenuMaster != this || track->isMidiTrack())
+ return;
+
+ PopupMenu* pup = muse->getRoutingPopupMenu();
+
+ //printf("AudioStrip::routingPopupMenuActivated n:%d count:%d\n", n, pup->count());
+
+ if(pup->count() == 0)
+ return;
+
+ AudioTrack* t = (AudioTrack*)track;
+ RouteList* rl = gIsOutRoutingPopupMenu ? t->outRoutes() : t->inRoutes();
+
+ //QPoint ppt = QCursor::pos();
+
+ // p3.3.47
+ if (n == -1)
+ {
+ //printf("AudioStrip::routingPopupMenuActivated n = -1\n");
+ ///delete pup;
+ return;
+ }
+ else
+ //if(n == 0)
+ //{
+ //printf("AudioStrip::routingPopupMenuActivated n = 0 = tearOffHandle\n");
+ //oR->setDown(false);
+ // return;
+ //}
+ //else
+ {
+ if(gIsOutRoutingPopupMenu)
+ {
+ QString s(pup->text(n));
+
+ //printf("AudioStrip::routingPopupMenuActivated text:%s\n", s.latin1());
+
+ if(track->type() == Track::AUDIO_OUTPUT)
+ {
+ ///delete orpup;
+
+ int chan = n & 0xf;
+
+ //Route srcRoute(t, -1);
+ //Route srcRoute(t, chan, chans);
+ //Route srcRoute(t, chan, 1);
+ Route srcRoute(t, chan);
+
+ //Route dstRoute(s, true, -1);
+ Route dstRoute(s, true, -1, Route::JACK_ROUTE);
+ //Route dstRoute(s, true, 0, Route::JACK_ROUTE);
+
+ //srcRoute.channel = dstRoute.channel = chan;
+ dstRoute.channel = chan;
+ //dstRoute.channels = 1;
+
+ // check if route src->dst exists:
+ iRoute irl = rl->begin();
+ for (; irl != rl->end(); ++irl) {
+ if (*irl == dstRoute)
+ break;
+ }
+ if (irl != rl->end()) {
+ // disconnect if route exists
+ audio->msgRemoveRoute(srcRoute, dstRoute);
+ }
+ else {
+ // connect if route does not exist
+ audio->msgAddRoute(srcRoute, dstRoute);
+ }
+ audio->msgUpdateSoloStates();
+ song->update(SC_ROUTE);
+
+ // p3.3.47
+ //pup->popup(ppt, 0);
+
+ //oR->setDown(false);
+ return;
+
+ // p3.3.46
+ ///goto _redisplay;
+ }
+
+ iRouteMenuMap imm = gRoutingMenuMap.find(n);
+ if(imm == gRoutingMenuMap.end())
+ {
+ ///delete orpup;
+ //oR->setDown(false); // orpup->exec() catches mouse release event
+ return;
+ }
+
+ //int chan = n >> 16;
+ //int chans = (chan >> 15) + 1; // Bit 31 MSB: Mono or stereo.
+ //chan &= 0xffff;
+ //int chan = imm->second.channel;
+ //int chans = imm->second.channels;
+
+ //Route srcRoute(t, -1);
+ //srcRoute.remoteChannel = chan;
+ //Route srcRoute(t, chan, chans);
+ Route srcRoute(t, imm->second.channel, imm->second.channels);
+ //Route srcRoute(t, imm->second.channel);
+ srcRoute.remoteChannel = imm->second.remoteChannel;
+
+ //Route dstRoute(s, true, -1);
+ //Route dstRoute(s, true, -1, Route::TRACK_ROUTE);
+ Route &dstRoute = imm->second;
+
+ // check if route src->dst exists:
+ iRoute irl = rl->begin();
+ for (; irl != rl->end(); ++irl) {
+ if (*irl == dstRoute)
+ break;
+ }
+ if (irl != rl->end()) {
+ // disconnect if route exists
+ audio->msgRemoveRoute(srcRoute, dstRoute);
+ }
+ else {
+ // connect if route does not exist
+ audio->msgAddRoute(srcRoute, dstRoute);
+ }
+ audio->msgUpdateSoloStates();
+ song->update(SC_ROUTE);
+
+ // p3.3.46
+ //oR->setDown(false);
+ ///goto _redisplay;
+
+ // p3.3.47
+ //pup->popup(ppt, 0);
+ }
+ else
+ {
+ QString s(pup->text(n));
+
+ if(track->type() == Track::AUDIO_INPUT)
+ {
+ ///delete pup;
+ int chan = n & 0xf;
+
+ Route srcRoute(s, false, -1, Route::JACK_ROUTE);
+ Route dstRoute(t, chan);
+
+ srcRoute.channel = chan;
+
+ iRoute irl = rl->begin();
+ for(; irl != rl->end(); ++irl)
+ {
+ if(*irl == srcRoute)
+ break;
+ }
+ if(irl != rl->end())
+ // disconnect
+ audio->msgRemoveRoute(srcRoute, dstRoute);
+ else
+ // connect
+ audio->msgAddRoute(srcRoute, dstRoute);
+
+ audio->msgUpdateSoloStates();
+ song->update(SC_ROUTE);
+ //iR->setDown(false); // pup->exec() catches mouse release event
+ return;
+
+ // p3.3.46
+ ///goto _redisplay;
+ }
+
+ iRouteMenuMap imm = gRoutingMenuMap.find(n);
+ if(imm == gRoutingMenuMap.end())
+ {
+ //delete pup;
+ //iR->setDown(false); // pup->exec() catches mouse release event
+ return;
+ }
+
+ //int chan = n >> 16;
+ //int chans = (chan >> 15) + 1; // Bit 31 MSB: Mono or stereo.
+ //chan &= 0xffff;
+ //int chan = imm->second.channel;
+ //int chans = imm->second.channels;
+
+ //Route srcRoute(s, false, -1);
+ //Route srcRoute(s, false, -1, Route::TRACK_ROUTE);
+ Route &srcRoute = imm->second;
+
+ //Route dstRoute(t, -1);
+ //Route dstRoute(t, chan, chans);
+ Route dstRoute(t, imm->second.channel, imm->second.channels);
+ //Route dstRoute(t, imm->second.channel);
+ dstRoute.remoteChannel = imm->second.remoteChannel;
+
+ iRoute irl = rl->begin();
+ for (; irl != rl->end(); ++irl) {
+ if (*irl == srcRoute)
+ break;
+ }
+ if (irl != rl->end()) {
+ // disconnect
+ audio->msgRemoveRoute(srcRoute, dstRoute);
+ }
+ else {
+ // connect
+ audio->msgAddRoute(srcRoute, dstRoute);
+ }
+ audio->msgUpdateSoloStates();
+ song->update(SC_ROUTE);
+
+ // p3.3.46
+ //iR->setDown(false);
+ ///goto _redisplay;
+
+ }
+
+ }
+
+ ///delete pup;
+ //oR->setDown(false);
+}
+
+//---------------------------------------------------------
+// oRoutePressed
+//---------------------------------------------------------
+
+void AudioStrip::oRoutePressed()
+{
+ if(!track || track->isMidiTrack())
+ {
+ gRoutingPopupMenuMaster = 0;
+ return;
+ }
+
+ QPoint ppt = QCursor::pos();
+
+ ///QPopupMenu* pup = new QPopupMenu(oR);
+
+ PopupMenu* pup = muse->getRoutingPopupMenu();
+ pup->disconnect();
+
+ //pup->setCheckable(true);
+ AudioTrack* t = (AudioTrack*)track;
+ RouteList* orl = t->outRoutes();
+
+ int gid = 0;
+ //int n;
+ ///RouteMenuMap mm;
+
+ // Routes can't be re-read until the message sent from msgAddRoute1()
+ // has had time to be sent and actually affected the routes.
+/// _redisplay:
+
+ //QPopupMenu* pup = new QPopupMenu(oR);
+ //RouteList* orl = t->outRoutes();
+
+ pup->clear();
+ gRoutingMenuMap.clear();
+ gid = 0;
+
+ // p3.3.47
+ //orpup->insertTearOffHandle(gid);
+ //gid++;
+
+ switch(track->type())
+ {
+ case Track::AUDIO_OUTPUT:
+ {
+ pup->setCheckable(true);
+ //int gid = 0;
+ for(int i = 0; i < channel; ++i)
+ {
+ char buffer[128];
+ snprintf(buffer, 128, "%s %d", tr("Channel").latin1(), i+1);
+ MenuTitleItem* titel = new MenuTitleItem(QString(buffer));
+ //pup->insertItem(titel); ddskrjo
+
+ if(!checkAudioDevice())
+ {
+ ///delete pup;
+ gRoutingPopupMenuMaster = 0;
+ pup->clear();
+ gRoutingMenuMap.clear();
+ oR->setDown(false);
+ return;
+ }
+ std::list<QString> ol = audioDevice->inputPorts();
+ for(std::list<QString>::iterator ip = ol.begin(); ip != ol.end(); ++ip)
+ {
+ int id = pup->insertItem(*ip, (gid * 16) + i);
+ //Route dst(*ip, true, i);
+ Route dst(*ip, true, i, Route::JACK_ROUTE);
+ gRoutingMenuMap.insert( pRouteMenuMap(id, dst) );
+ ++gid;
+ for(iRoute ir = orl->begin(); ir != orl->end(); ++ir)
+ {
+ if(*ir == dst)
+ {
+ pup->setItemChecked(id, true);
+ break;
+ }
+ }
+ }
+ if(i+1 != channel)
+ pup->insertSeparator();
+ }
+ }
+ break;
+ //case Track::AUDIO_INPUT:
+ //case Track::WAVE:
+ //case Track::AUDIO_GROUP:
+
+ case Track::AUDIO_SOFTSYNTH:
+ //addOutPorts(t, pup, orl);
+ //addGroupPorts(t, pup, orl);
+ //gid = addMultiChannelPorts(oR, t, pup, gid, gRoutingMenuMap, true);
+ //gid = addMultiChannelPorts(this, oR, t, pup, gid, gRoutingMenuMap, true);
+ gid = addMultiChannelPorts(t, pup, gid, gRoutingMenuMap, true);
+ break;
+
+ case Track::AUDIO_INPUT:
+ //gid = addWavePorts( oR, t, pup, gid, gRoutingMenuMap, -1, -1, true);
+ gid = addWavePorts( t, pup, gid, gRoutingMenuMap, -1, -1, true);
+ case Track::WAVE:
+ case Track::AUDIO_GROUP:
+ case Track::AUDIO_AUX:
+ //case Track::AUDIO_SOFTSYNTH:
+ //gid = addOutPorts( oR, t, pup, gid, gRoutingMenuMap, -1, -1, true);
+ //gid = addGroupPorts( oR, t, pup, gid, gRoutingMenuMap, -1, -1, true);
+ gid = addOutPorts( t, pup, gid, gRoutingMenuMap, -1, -1, true);
+ gid = addGroupPorts( t, pup, gid, gRoutingMenuMap, -1, -1, true);
+ //gid = addSyntiPorts( oR, t, pup, gid, gRoutingMenuMap, -1, -1, true);
+ //gid = nonSyntiTrackAddSyntis(oR, t, pup, gid, gRoutingMenuMap, true);
+ //gid = nonSyntiTrackAddSyntis(this, oR, t, pup, gid, gRoutingMenuMap, true);
+ gid = nonSyntiTrackAddSyntis(t, pup, gid, gRoutingMenuMap, true);
+ break;
+ //case Track::AUDIO_AUX:
+ //gid = addOutPorts( oR, t, pup, gid, gRoutingMenuMap, -1, -1, true);
+ // gid = addOutPorts( t, pup, gid, gRoutingMenuMap, -1, -1, true);
+ //break;
+
+ default:
+ ///delete pup;
+ gRoutingPopupMenuMaster = 0;
+ pup->clear();
+ gRoutingMenuMap.clear();
+ oR->setDown(false);
+ return;
+ }
+
+ if(pup->count() == 0)
+ {
+ ///delete pup;
+ gRoutingPopupMenuMaster = 0;
+ gRoutingMenuMap.clear();
+ oR->setDown(false);
+ return;
+ }
+
+ //int n = pup->exec(QCursor::pos());
+ ///n = pup->exec(ppt);
+ gIsOutRoutingPopupMenu = true;
+ gRoutingPopupMenuMaster = this;
+ connect(pup, SIGNAL(activated(int)), SLOT(routingPopupMenuActivated(int)));
+ connect(pup, SIGNAL(aboutToHide()), muse, SLOT(routingPopupMenuAboutToHide()));
+ pup->popup(ppt, 0);
+ oR->setDown(false);
+ return;
+
+
+ /*
+ // p3.3.47
+ if(n == 0)
+ {
+ printf("AudioStrip::oRoutePressed n = 0 = tearOffHandle\n");
+ oR->setDown(false); // orpup->exec() catches mouse release event
+ return;
+ }
+ else
+
+ if (n != -1) {
+ QString s(orpup->text(n));
+
+ if(track->type() == Track::AUDIO_OUTPUT)
+ {
+ delete orpup;
+
+ int chan = n & 0xf;
+
+ //Route srcRoute(t, -1);
+ //Route srcRoute(t, chan, chans);
+ //Route srcRoute(t, chan, 1);
+ Route srcRoute(t, chan);
+
+ //Route dstRoute(s, true, -1);
+ Route dstRoute(s, true, -1, Route::JACK_ROUTE);
+ //Route dstRoute(s, true, 0, Route::JACK_ROUTE);
+
+ //srcRoute.channel = dstRoute.channel = chan;
+ dstRoute.channel = chan;
+ //dstRoute.channels = 1;
+
+ // check if route src->dst exists:
+ iRoute iorl = orl->begin();
+ for (; iorl != orl->end(); ++iorl) {
+ if (*iorl == dstRoute)
+ break;
+ }
+ if (iorl != orl->end()) {
+ // disconnect if route exists
+ audio->msgRemoveRoute(srcRoute, dstRoute);
+ }
+ else {
+ // connect if route does not exist
+ audio->msgAddRoute(srcRoute, dstRoute);
+ }
+ audio->msgUpdateSoloStates();
+ song->update(SC_ROUTE);
+
+ oR->setDown(false); // orpup->exec() catches mouse release event
+ return;
+
+ // p3.3.46
+ ///goto _redisplay;
+ }
+
+ iRouteMenuMap imm = ormm.find(n);
+ if(imm == ormm.end())
+ {
+ delete orpup;
+ oR->setDown(false); // orpup->exec() catches mouse release event
+ return;
+ }
+
+ //int chan = n >> 16;
+ //int chans = (chan >> 15) + 1; // Bit 31 MSB: Mono or stereo.
+ //chan &= 0xffff;
+ //int chan = imm->second.channel;
+ //int chans = imm->second.channels;
+
+ //Route srcRoute(t, -1);
+ //srcRoute.remoteChannel = chan;
+ //Route srcRoute(t, chan, chans);
+ Route srcRoute(t, imm->second.channel, imm->second.channels);
+ //Route srcRoute(t, imm->second.channel);
+ srcRoute.remoteChannel = imm->second.remoteChannel;
+
+ //Route dstRoute(s, true, -1);
+ //Route dstRoute(s, true, -1, Route::TRACK_ROUTE);
+ Route &dstRoute = imm->second;
+
+ // check if route src->dst exists:
+ iRoute iorl = orl->begin();
+ for (; iorl != orl->end(); ++iorl) {
+ if (*iorl == dstRoute)
+ break;
+ }
+ if (iorl != orl->end()) {
+ // disconnect if route exists
+ audio->msgRemoveRoute(srcRoute, dstRoute);
+ }
+ else {
+ // connect if route does not exist
+ audio->msgAddRoute(srcRoute, dstRoute);
+ }
+ audio->msgUpdateSoloStates();
+ song->update(SC_ROUTE);
+
+ // p3.3.46
+ //oR->setDown(false); // orpup->exec() catches mouse release event
+ ///goto _redisplay;
+
+ }
+
+ delete orpup;
+ oR->setDown(false); // pup->exec() catches mouse release event
+ */
+}
+
+/*
+//---------------------------------------------------------
+// iRoutePressed
+//---------------------------------------------------------
+
+void AudioStrip::iRoutePressed()
+ {
+ QPopupMenu* pup = new QPopupMenu(iR);
+ pup->setCheckable(true);
+ AudioTrack* t = (AudioTrack*)track;
+ RouteList* irl = t->inRoutes();
+
+ switch(track->type()) {
+ case Track::MIDI:
+ case Track::DRUM:
+ case Track::AUDIO_AUX:
+ case Track::AUDIO_SOFTSYNTH:
+ delete pup;
+ return;
+ case Track::AUDIO_INPUT:
+ {
+ int gid = 0;
+ for (int i = 0; i < channel; ++i) {
+ char buffer[128];
+ snprintf(buffer, 128, "%s %d", tr("Channel").latin1(), i+1);
+ MenuTitleItem* titel = new MenuTitleItem(QString(buffer));
+ pup->insertItem(titel);
+
+ if (!checkAudioDevice()) return;
+ std::list<QString> ol = audioDevice->outputPorts();
+ for (std::list<QString>::iterator ip = ol.begin(); ip != ol.end(); ++ip) {
+ int id = pup->insertItem(*ip, (gid * 16) + i);
+ //Route dst(*ip, true, i);
+ Route dst(*ip, true, i, Route::JACK_ROUTE);
+ ++gid;
+ for (iRoute ir = irl->begin(); ir != irl->end(); ++ir) {
+ if (*ir == dst) {
+ pup->setItemChecked(id, true);
+ break;
+ }
+ }
+ }
+ if (i+1 != channel)
+ pup->insertSeparator();
+ }
+ }
+ break;
+ case Track::AUDIO_OUTPUT:
+ addWavePorts(t, pup, irl);
+ addInPorts(t, pup, irl);
+ addGroupPorts(t, pup, irl);
+ addAuxPorts(t, pup, irl);
+ addSyntiPorts(t, pup, irl);
+ break;
+ case Track::WAVE:
+ addInPorts(t, pup, irl);
+ break;
+ case Track::AUDIO_GROUP:
+ addWavePorts(t, pup, irl);
+ addInPorts(t, pup, irl);
+ addGroupPorts(t, pup, irl);
+ addSyntiPorts(t, pup, irl);
+ break;
+ }
+ int n = pup->exec(QCursor::pos());
+ if (n != -1) {
+ QString s(pup->text(n));
+
+ //Route srcRoute(s, false, -1);
+ Route srcRoute(s, false, -1, (track->type() == Track::AUDIO_INPUT) ? Route::JACK_ROUTE : Route::TRACK_ROUTE);
+ Route dstRoute(t, -1);
+
+ if (track->type() == Track::AUDIO_INPUT)
+ srcRoute.channel = dstRoute.channel = n & 0xf;
+ iRoute iir = irl->begin();
+ for (; iir != irl->end(); ++iir) {
+ if (*iir == srcRoute)
+ break;
+ }
+ if (iir != irl->end()) {
+ // disconnect
+ audio->msgRemoveRoute(srcRoute, dstRoute);
+ }
+ else {
+ // connect
+ audio->msgAddRoute(srcRoute, dstRoute);
+ }
+ audio->msgUpdateSoloStates();
+ song->update(SC_ROUTE);
+ }
+ delete pup;
+ iR->setDown(false); // pup->exec() catches mouse release event
+ }
+*/
+
+/*
+//---------------------------------------------------------
+// oRoutePressed
+//---------------------------------------------------------
+
+void AudioStrip::oRoutePressed()
+ {
+ QPopupMenu* pup = new QPopupMenu(oR);
+ pup->setCheckable(true);
+ AudioTrack* t = (AudioTrack*)track;
+ RouteList* orl = t->outRoutes();
+
+ switch(track->type()) {
+ case Track::MIDI:
+ case Track::DRUM:
+ delete pup;
+ return;
+ case Track::AUDIO_OUTPUT:
+ {
+ int gid = 0;
+ for (int i = 0; i < channel; ++i) {
+ char buffer[128];
+ snprintf(buffer, 128, "%s %d", tr("Channel").latin1(), i+1);
+ MenuTitleItem* titel = new MenuTitleItem(QString(buffer));
+ pup->insertItem(titel);
+
+ if (!checkAudioDevice()) return;
+ std::list<QString> ol = audioDevice->inputPorts();
+ for (std::list<QString>::iterator ip = ol.begin(); ip != ol.end(); ++ip) {
+ int id = pup->insertItem(*ip, (gid * 16) + i);
+ //Route dst(*ip, true, i);
+ Route dst(*ip, true, i, Route::JACK_ROUTE);
+ ++gid;
+ for (iRoute ir = orl->begin(); ir != orl->end(); ++ir) {
+ if (*ir == dst) {
+ pup->setItemChecked(id, true);
+ break;
+ }
+ }
+ }
+ if (i+1 != channel)
+ pup->insertSeparator();
+ }
+ }
+ break;
+ case Track::AUDIO_INPUT:
+ addWavePorts(t, pup, orl);
+ case Track::WAVE:
+ case Track::AUDIO_GROUP:
+ case Track::AUDIO_SOFTSYNTH:
+ addOutPorts(t, pup, orl);
+ addGroupPorts(t, pup, orl);
+ break;
+ case Track::AUDIO_AUX:
+ addOutPorts(t, pup, orl);
+ break;
+ }
+ int n = pup->exec(QCursor::pos());
+ if (n != -1) {
+ QString s(pup->text(n));
+ Route srcRoute(t, -1);
+ //Route dstRoute(s, true, -1);
+ Route dstRoute(s, true, -1, (track->type() == Track::AUDIO_OUTPUT) ? Route::JACK_ROUTE : Route::TRACK_ROUTE);
+
+ if (track->type() == Track::AUDIO_OUTPUT)
+ srcRoute.channel = dstRoute.channel = n & 0xf;
+
+ // check if route src->dst exists:
+ iRoute iorl = orl->begin();
+ for (; iorl != orl->end(); ++iorl) {
+ if (*iorl == dstRoute)
+ break;
+ }
+ if (iorl != orl->end()) {
+ // disconnect if route exists
+ audio->msgRemoveRoute(srcRoute, dstRoute);
+ }
+ else {
+ // connect if route does not exist
+ audio->msgAddRoute(srcRoute, dstRoute);
+ }
+ audio->msgUpdateSoloStates();
+ song->update(SC_ROUTE);
+ }
+ delete pup;
+ oR->setDown(false); // pup->exec() catches mouse release event
+ }
+*/
diff --git a/muse2/muse/mixer/astrip.h b/muse2/muse/mixer/astrip.h
new file mode 100644
index 00000000..82662b2b
--- /dev/null
+++ b/muse2/muse/mixer/astrip.h
@@ -0,0 +1,97 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: astrip.h,v 1.8.2.6 2009/11/14 03:37:48 terminator356 Exp $
+//
+// (C) Copyright 2000-2004 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __ASTRIP_H__
+#define __ASTRIP_H__
+
+#include <vector>
+
+#include "strip.h"
+#include "route.h"
+
+class Slider;
+class Knob;
+class QDialog;
+class QToolButton;
+//class QPopupMenu;
+class PopupMenu;
+class QButton;
+class TransparentToolButton;
+class AudioTrack;
+class DoubleLabel;
+
+//---------------------------------------------------------
+// AudioStrip
+//---------------------------------------------------------
+
+class AudioStrip : public Strip {
+ Q_OBJECT
+
+ int channel;
+ Slider* slider;
+ DoubleLabel* sl;
+
+ Knob* pan;
+ DoubleLabel* panl;
+
+ std::vector<Knob*> auxKnob;
+ std::vector<DoubleLabel*> auxLabel;
+
+ QToolButton* stereo;
+ QToolButton* pre;
+ TransparentToolButton* off;
+
+ double volume;
+ double panVal;
+
+ //QToolButton* iR;
+ //QToolButton* oR;
+
+ Knob* addKnob(int, int, DoubleLabel**);
+
+ void updateOffState();
+ void updateVolume();
+ void updatePan();
+ void updateChannels();
+ //void updateRouteMenus();
+
+ private slots:
+ void stereoToggled(bool);
+ void preToggled(bool);
+ void offToggled(bool);
+ void iRoutePressed();
+ void oRoutePressed();
+ void routingPopupMenuActivated(int /*id*/);
+ void auxChanged(double, int);
+ void volumeChanged(double);
+ void volumePressed();
+ void volumeReleased();
+ void panChanged(double);
+ void panPressed();
+ void panReleased();
+ void volLabelChanged(double);
+ void panLabelChanged(double);
+ void auxLabelChanged(double, unsigned int);
+ void volumeRightClicked(const QPoint &);
+ void panRightClicked(const QPoint &);
+
+ protected slots:
+ virtual void heartBeat();
+
+ public slots:
+ virtual void configChanged();
+ virtual void songChanged(int);
+
+ public:
+ AudioStrip(QWidget* parent, AudioTrack*);
+ ~AudioStrip();
+ virtual QSize minimumSizeHint () const;
+ };
+
+#endif
+
diff --git a/muse2/muse/mixer/auxknob.cpp b/muse2/muse/mixer/auxknob.cpp
new file mode 100644
index 00000000..a64f3929
--- /dev/null
+++ b/muse2/muse/mixer/auxknob.cpp
@@ -0,0 +1,40 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: auxknob.cpp,v 1.7 2004/07/11 16:26:46 wschweer Exp $
+//
+// (C) Copyright 2000-2004 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include <cmath>
+#include "auxknob.h"
+#include "gconfig.h"
+
+//---------------------------------------------------------
+// Aux
+//---------------------------------------------------------
+
+AuxKnob::AuxKnob(QWidget* parent, int i)
+ : Knob(parent, "aux")
+ {
+ idx = i;
+ setRange(config.minSlider-0.1, 10.0);
+ connect(this, SIGNAL(valueChanged(double,int)), SLOT(valueChanged(double)));
+ }
+
+//---------------------------------------------------------
+// panChanged
+//---------------------------------------------------------
+
+void AuxKnob::valueChanged(double val)
+ {
+ double vol;
+ if (val <= config.minSlider) {
+ vol = 0.0;
+ val -= 1.0; // display special value "off"
+ }
+ else
+ vol = pow(10.0, val/20.0);
+ emit auxChanged(idx, vol);
+ }
+
diff --git a/muse2/muse/mixer/auxknob.h b/muse2/muse/mixer/auxknob.h
new file mode 100644
index 00000000..c2b8ec7a
--- /dev/null
+++ b/muse2/muse/mixer/auxknob.h
@@ -0,0 +1,33 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: auxknob.h,v 1.3 2003/11/08 15:10:18 wschweer Exp $
+//
+// (C) Copyright 2000 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __AUXKNOB_H__
+#define __AUXKNOB_H__
+
+#include "knob.h"
+
+//---------------------------------------------------------
+// AuxKnob
+//---------------------------------------------------------
+
+class AuxKnob : public Knob {
+ Q_OBJECT
+ int idx;
+
+ private slots:
+ void valueChanged(double v);
+
+ signals:
+ void auxChanged(int, double);
+
+ public:
+ AuxKnob(QWidget* parent, int idx);
+ };
+
+#endif
+
diff --git a/muse2/muse/mixer/meter.cpp b/muse2/muse/mixer/meter.cpp
new file mode 100644
index 00000000..14b20a18
--- /dev/null
+++ b/muse2/muse/mixer/meter.cpp
@@ -0,0 +1,184 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: meter.cpp,v 1.4.2.2 2009/05/03 04:14:00 terminator356 Exp $
+//
+// (C) Copyright 2000 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include <stdio.h>
+#include <cmath>
+#include <qpainter.h>
+//Added by qt3to4:
+#include <QResizeEvent>
+#include <QMouseEvent>
+#include <Q3Frame>
+
+#include "meter.h"
+#include "gconfig.h"
+#include "fastlog.h"
+
+//---------------------------------------------------------
+// Meter
+//---------------------------------------------------------
+
+Meter::Meter(QWidget* parent, MeterType type)
+ : Q3Frame(parent, "", Qt::WNoAutoErase)
+ {
+ mtype = type;
+ overflow = false;
+ val = 0.0;
+ maxVal = 0.0;
+ minScale = mtype == DBMeter ? config.minMeter : 0.0; // min value in dB or int
+ maxScale = mtype == DBMeter ? 10.0 : 127.0;
+ yellowScale = -10;
+ redScale = 0;
+ setLineWidth(0);
+ setMidLineWidth(0);
+ }
+
+//---------------------------------------------------------
+// setVal
+//---------------------------------------------------------
+
+//void Meter::setVal(int v, int max, bool ovl)
+void Meter::setVal(double v, double max, bool ovl)
+ {
+ overflow = ovl;
+ bool ud = false;
+
+ if(mtype == DBMeter)
+ {
+ double minScaleLin = pow(10.0, minScale/20.0);
+ if((v >= minScaleLin && val != v) || val >= minScaleLin)
+ {
+ val = v;
+ ud = true;
+ }
+ }
+ else
+ {
+ if(val != v)
+ {
+ val = v;
+ ud = true;
+ }
+ }
+
+ if(maxVal != max)
+ {
+ maxVal = max;
+ ud = true;
+ }
+
+ if(ud)
+ update();
+ }
+//---------------------------------------------------------
+// resetPeaks
+// reset peak and overflow indicator
+//---------------------------------------------------------
+
+void Meter::resetPeaks()
+ {
+ maxVal = val;
+ overflow = val > 0.0;
+ update();
+ }
+
+//---------------------------------------------------------
+// setRange
+//---------------------------------------------------------
+
+void Meter::setRange(double min, double max)
+ {
+ minScale = min;
+ maxScale = max;
+ drawVU(width(), height());
+ update();
+ }
+
+//---------------------------------------------------------
+// paintEvent
+//---------------------------------------------------------
+
+void Meter::drawContents(QPainter* p)
+ {
+ double range = maxScale - minScale;
+
+ int fw = frameWidth();
+ int h = height() - 2* fw;
+ int yv;
+ if(mtype == DBMeter)
+ yv = val == 0 ? h : int(((maxScale - (fast_log10(val) * 20.0)) * h)/range);
+ else
+ yv = val == 0 ? h : int(((maxScale - val) * h)/range);
+
+ bitBlt(this, fw, fw, &bgPm, 0, 0, -1, yv, true); // CopyROP, true); ddskrjo
+ bitBlt(this, fw, fw+yv, &fgPm, 0, yv, -1, h-yv, true); //CopyROP, true); ddskrjo
+
+ int ymax;
+ if(mtype == DBMeter)
+ ymax = maxVal == 0 ? 0 : int(((maxScale - (fast_log10(maxVal) * 20.0)) * h)/range);
+ else
+ ymax = maxVal == 0 ? 0 : int(((maxScale - maxVal) * h)/range);
+ p->setPen(Qt::white);
+ p->drawLine(0, ymax, width()-2*fw, ymax);
+ }
+
+//---------------------------------------------------------
+// drawVU
+//---------------------------------------------------------
+
+void Meter::drawVU(int w, int h)
+ {
+ double range = maxScale - minScale;
+ int fw = frameWidth();
+ w -= 2*fw;
+ h -= 2*fw;
+ bgPm.resize(w, h);
+ fgPm.resize(w, h);
+
+ QPainter p1(&fgPm);
+ QPainter p2(&bgPm);
+
+ if(mtype == LinMeter)
+ {
+ p1.fillRect(0, 0, w, h, QBrush(0x00ff00)); // green
+ p2.fillRect(0, 0, w, h, QBrush(0x007000)); // green
+ }
+ else
+ {
+ int y1 = int((maxScale - redScale) * h / range);
+ int y2 = int((maxScale - yellowScale) * h / range);
+ int y3 = h;
+ p1.fillRect(0, 0, w, y1, QBrush(0xff0000)); // red
+ p1.fillRect(0, y1, w, y2-y1, QBrush(0xffff00)); // yellow
+ p1.fillRect(0, y2, w, y3-y2, QBrush(0x00ff00)); // green
+
+ p2.fillRect(0, 0, w, y1, QBrush(0x8e0000)); // red
+ p2.fillRect(0, y1, w, y2-y1, QBrush(0x8e8e00)); // yellow
+ p2.fillRect(0, y2, w, y3-y2, QBrush(0x007000)); // green
+ }
+ }
+
+//---------------------------------------------------------
+// resizeEvent
+//---------------------------------------------------------
+
+void Meter::resizeEvent(QResizeEvent* ev)
+ {
+ int h = ev->size().height();
+ int w = ev->size().width();
+ drawVU(w, h);
+ }
+
+//---------------------------------------------------------
+// mousePressEvent
+//---------------------------------------------------------
+
+void Meter::mousePressEvent(QMouseEvent*)
+ {
+ emit mousePress();
+ }
+
diff --git a/muse2/muse/mixer/meter.h b/muse2/muse/mixer/meter.h
new file mode 100644
index 00000000..fc447147
--- /dev/null
+++ b/muse2/muse/mixer/meter.h
@@ -0,0 +1,52 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: meter.h,v 1.1.1.1.2.2 2009/05/03 04:14:00 terminator356 Exp $
+//
+// (C) Copyright 2000 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __METER_H__
+#define __METER_H__
+
+#include <q3frame.h>
+#include <qpixmap.h>
+//Added by qt3to4:
+#include <QResizeEvent>
+#include <QMouseEvent>
+
+class Meter : public Q3Frame {
+ public:
+ enum MeterType {DBMeter, LinMeter};
+ private:
+ MeterType mtype;
+ bool overflow;
+ double val;
+ double maxVal;
+ double minScale, maxScale;
+ int yellowScale, redScale;
+
+ QPixmap bgPm;
+ QPixmap fgPm; // for double buffering
+
+ void drawVU(int w, int h);
+
+ Q_OBJECT
+ virtual void drawContents(QPainter* p);
+ virtual void resizeEvent(QResizeEvent*);
+ virtual void mousePressEvent(QMouseEvent*);
+
+ public slots:
+ void resetPeaks();
+ //void setVal(int, int, bool);
+ void setVal(double, double, bool);
+
+ signals:
+ void mousePress();
+
+ public:
+ Meter(QWidget* parent, MeterType type = DBMeter);
+ void setRange(double min, double max);
+ };
+#endif
+
diff --git a/muse2/muse/mixer/midiportroutebase.ui b/muse2/muse/mixer/midiportroutebase.ui
new file mode 100644
index 00000000..d3b411e3
--- /dev/null
+++ b/muse2/muse/mixer/midiportroutebase.ui
@@ -0,0 +1,85 @@
+<!DOCTYPE UI><UI version="3.1" stdsetdef="1">
+<class>MidiPortRouteBase</class>
+<widget class="QDialog">
+ <property name="name">
+ <cstring>MidiPortRouteBase</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>600</width>
+ <height>461</height>
+ </rect>
+ </property>
+ <property name="caption">
+ <string>MusE: Midi Port Routing</string>
+ </property>
+ <vbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>label</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="paletteBackgroundColor">
+ <color>
+ <red>179</red>
+ <green>190</green>
+ <blue>182</blue>
+ </color>
+ </property>
+ <property name="font">
+ <font>
+ <pointsize>11</pointsize>
+ <bold>1</bold>
+ </font>
+ </property>
+ <property name="frameShape">
+ <enum>Box</enum>
+ </property>
+ <property name="lineWidth">
+ <number>1</number>
+ </property>
+ <property name="margin">
+ <number>1</number>
+ </property>
+ <property name="midLineWidth">
+ <number>1</number>
+ </property>
+ <property name="text">
+ <string>Port 2</string>
+ </property>
+ <property name="alignment">
+ <set>AlignCenter</set>
+ </property>
+ </widget>
+ <widget class="QGroupBox">
+ <property name="name">
+ <cstring>groupBox3</cstring>
+ </property>
+ <property name="title">
+ <string>Output</string>
+ </property>
+ </widget>
+ <widget class="QGroupBox">
+ <property name="name">
+ <cstring>groupBox4</cstring>
+ </property>
+ <property name="title">
+ <string>Input</string>
+ </property>
+ </widget>
+ </vbox>
+</widget>
+<layoutdefaults spacing="6" margin="11"/>
+</UI>
diff --git a/muse2/muse/mixer/mstrip.cpp b/muse2/muse/mixer/mstrip.cpp
new file mode 100644
index 00000000..10d9ddf4
--- /dev/null
+++ b/muse2/muse/mixer/mstrip.cpp
@@ -0,0 +1,1216 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: mstrip.cpp,v 1.9.2.13 2009/11/14 03:37:48 terminator356 Exp $
+//
+// (C) Copyright 2000-2004 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include <fastlog.h>
+
+#include <qlayout.h>
+#include <qapplication.h>
+#include <qdialog.h>
+#include <qtoolbutton.h>
+#include <qlabel.h>
+#include <qdialog.h>
+#include <qcombobox.h>
+#include <qtooltip.h>
+#include <qtimer.h>
+//#include <qpopupmenu.h>
+#include <qcursor.h>
+//Added by qt3to4:
+#include <Q3HBoxLayout>
+#include <Q3GridLayout>
+
+#include <math.h>
+#include "app.h"
+#include "midi.h"
+#include "midictrl.h"
+#include "mstrip.h"
+#include "midiport.h"
+#include "globals.h"
+#include "audio.h"
+#include "song.h"
+#include "slider.h"
+#include "knob.h"
+#include "combobox.h"
+#include "meter.h"
+#include "track.h"
+#include "doublelabel.h"
+#include "rack.h"
+#include "node.h"
+#include "amixer.h"
+#include "icons.h"
+#include "gconfig.h"
+#include "ttoolbutton.h"
+//#include "utils.h"
+#include "popupmenu.h"
+
+enum { KNOB_PAN, KNOB_VAR_SEND, KNOB_REV_SEND, KNOB_CHO_SEND };
+
+//---------------------------------------------------------
+// addKnob
+//---------------------------------------------------------
+
+void MidiStrip::addKnob(int idx, const QString& tt, const QString& label,
+ const char* slot, bool enabled)
+ {
+ int ctl = CTRL_PANPOT, mn, mx, v;
+ int chan = ((MidiTrack*)track)->outChannel();
+ switch(idx)
+ {
+ //case KNOB_PAN:
+ // ctl = CTRL_PANPOT;
+ //break;
+ case KNOB_VAR_SEND:
+ ctl = CTRL_VARIATION_SEND;
+ break;
+ case KNOB_REV_SEND:
+ ctl = CTRL_REVERB_SEND;
+ break;
+ case KNOB_CHO_SEND:
+ ctl = CTRL_CHORUS_SEND;
+ break;
+ }
+ MidiPort* mp = &midiPorts[((MidiTrack*)track)->outPort()];
+ MidiController* mc = mp->midiController(ctl);
+ mn = mc->minVal();
+ mx = mc->maxVal();
+
+ Knob* knob = new Knob(this);
+ knob->setRange(double(mn), double(mx), 1.0);
+ knob->setId(ctl);
+
+ controller[idx].knob = knob;
+ knob->setFixedWidth(STRIP_WIDTH/2-3);
+ knob->setFixedHeight(30);
+ knob->setBackgroundMode(Qt::PaletteMid);
+ QToolTip::add(knob, tt);
+ knob->setEnabled(enabled);
+
+ DoubleLabel* dl = new DoubleLabel(0.0, double(mn), double(mx), this);
+ dl->setId(idx);
+ dl->setSpecialText(tr("off"));
+ QToolTip::add(dl, tr("double click on/off"));
+ controller[idx].dl = dl;
+ dl->setFont(config.fonts[1]);
+ dl->setBackgroundMode(Qt::PaletteMid);
+ dl->setFrame(true);
+ dl->setPrecision(0);
+ dl->setFixedWidth(STRIP_WIDTH/2);
+ dl->setFixedHeight(15);
+ dl->setEnabled(enabled);
+
+ double dlv;
+ v = mp->hwCtrlState(chan, ctl);
+ if(v == CTRL_VAL_UNKNOWN)
+ {
+ //v = mc->initVal();
+ //if(v == CTRL_VAL_UNKNOWN)
+ // v = 0;
+// v = mn - 1;
+ int lastv = mp->lastValidHWCtrlState(chan, ctl);
+ if(lastv == CTRL_VAL_UNKNOWN)
+ {
+ if(mc->initVal() == CTRL_VAL_UNKNOWN)
+ v = 0;
+ else
+ v = mc->initVal();
+ }
+ else
+ v = lastv - mc->bias();
+ //dlv = mn - 1;
+ dlv = dl->off() - 1.0;
+ }
+ else
+ {
+ // Auto bias...
+ v -= mc->bias();
+ dlv = double(v);
+ }
+
+ knob->setValue(double(v));
+ dl->setValue(dlv);
+ //}
+ //else
+ // knob->setRange(0.0, 127.0);
+
+ QLabel* lb = new QLabel(label, this);
+ controller[idx].lb = lb;
+ lb->setFont(config.fonts[1]);
+ lb->setFixedWidth(STRIP_WIDTH/2-3);
+ lb->setAlignment(Qt::AlignCenter);
+ lb->setFixedHeight(15);
+ lb->setEnabled(enabled);
+
+ Q3GridLayout* grid = new Q3GridLayout(0, 2, 2, 0, 0, "grid");
+ grid->setMargin(2);
+ grid->addWidget(lb, 0, 0);
+ grid->addWidget(dl, 1, 0);
+ grid->addMultiCellWidget(knob, 0, 1, 1, 1);
+ layout->addLayout(grid);
+
+ connect(knob, SIGNAL(sliderMoved(double,int)), slot);
+ connect(knob, SIGNAL(sliderRightClicked(const QPoint &, int)), SLOT(controlRightClicked(const QPoint &, int)));
+ connect(dl, SIGNAL(valueChanged(double, int)), slot);
+ connect(dl, SIGNAL(doubleClicked(int)), SLOT(labelDoubleClicked(int)));
+ }
+
+//---------------------------------------------------------
+// MidiStrip
+//---------------------------------------------------------
+
+MidiStrip::MidiStrip(QWidget* parent, MidiTrack* t)
+ : Strip(parent, t)
+ {
+ inHeartBeat = true;
+
+ // Clear so the meters don't start off by showing stale values.
+ t->setActivity(0);
+ t->setLastActivity(0);
+
+ volume = CTRL_VAL_UNKNOWN;
+ pan = CTRL_VAL_UNKNOWN;
+ variSend = CTRL_VAL_UNKNOWN;
+ chorusSend = CTRL_VAL_UNKNOWN;
+ reverbSend = CTRL_VAL_UNKNOWN;
+
+ addKnob(KNOB_VAR_SEND, tr("VariationSend"), tr("Var"), SLOT(setVariSend(double)), false);
+ addKnob(KNOB_REV_SEND, tr("ReverbSend"), tr("Rev"), SLOT(setReverbSend(double)), false);
+ addKnob(KNOB_CHO_SEND, tr("ChorusSend"), tr("Cho"), SLOT(setChorusSend(double)), false);
+ int auxsSize = song->auxs()->size();
+ if (auxsSize)
+ layout->addSpacing((STRIP_WIDTH/2 + 1) * auxsSize);
+
+ //---------------------------------------------------
+ // slider, label, meter
+ //---------------------------------------------------
+
+ MidiPort* mp = &midiPorts[t->outPort()];
+ MidiController* mc = mp->midiController(CTRL_VOLUME);
+ int chan = t->outChannel();
+ int mn = mc->minVal();
+ int mx = mc->maxVal();
+
+ slider = new Slider(this, "vol", Qt::Vertical, Slider::None,
+ Slider::BgTrough | Slider::BgSlot);
+ slider->setCursorHoming(true);
+ slider->setRange(double(mn), double(mx), 1.0);
+ slider->setFixedWidth(20);
+ slider->setFont(config.fonts[1]);
+ slider->setId(CTRL_VOLUME);
+
+ meter[0] = new Meter(this, Meter::LinMeter);
+ meter[0]->setRange(0, 127.0);
+ meter[0]->setFixedWidth(15);
+ connect(meter[0], SIGNAL(mousePress()), this, SLOT(resetPeaks()));
+ sliderGrid = new Q3GridLayout(this); // ddskrjo this
+ sliderGrid->setRowStretch(0, 100);
+ sliderGrid->addWidget(slider, 0, 0, Qt::AlignRight);
+ sliderGrid->addWidget(meter[0], 0, 1, Qt::AlignLeft);
+ layout->addLayout(sliderGrid);
+
+ sl = new DoubleLabel(0.0, -98.0, 0.0, this);
+ sl->setFont(config.fonts[1]);
+ sl->setBackgroundMode(Qt::PaletteMid);
+ sl->setSpecialText(tr("off"));
+ sl->setSuffix(tr("dB"));
+ QToolTip::add(sl, tr("double click on/off"));
+ sl->setFrame(true);
+ sl->setPrecision(0);
+ sl->setFixedWidth(STRIP_WIDTH);
+ // Set the label's slider 'buddy'.
+ sl->setSlider(slider);
+
+ double dlv;
+ int v = mp->hwCtrlState(chan, CTRL_VOLUME);
+ if(v == CTRL_VAL_UNKNOWN)
+ {
+ int lastv = mp->lastValidHWCtrlState(chan, CTRL_VOLUME);
+ if(lastv == CTRL_VAL_UNKNOWN)
+ {
+ if(mc->initVal() == CTRL_VAL_UNKNOWN)
+ v = 0;
+ else
+ v = mc->initVal();
+ }
+ else
+ v = lastv - mc->bias();
+ dlv = sl->off() - 1.0;
+ }
+ else
+ {
+ if(v == 0)
+ dlv = sl->minValue() - 0.5 * (sl->minValue() - sl->off());
+ else
+ {
+ dlv = -fast_log10(float(127*127)/float(v*v))*20.0;
+ if(dlv > sl->maxValue())
+ dlv = sl->maxValue();
+ }
+ // Auto bias...
+ v -= mc->bias();
+ }
+ slider->setValue(double(v));
+ sl->setValue(dlv);
+
+
+// connect(sl, SIGNAL(valueChanged(double,int)), slider, SLOT(setValue(double)));
+// connect(slider, SIGNAL(valueChanged(double,int)), sl, SLOT(setValue(double)));
+ connect(slider, SIGNAL(sliderMoved(double,int)), SLOT(setVolume(double)));
+ connect(slider, SIGNAL(sliderRightClicked(const QPoint &, int)), SLOT(controlRightClicked(const QPoint &, int)));
+ connect(sl, SIGNAL(valueChanged(double, int)), SLOT(volLabelChanged(double)));
+ connect(sl, SIGNAL(doubleClicked(int)), SLOT(labelDoubleClicked(int)));
+
+ layout->addWidget(sl);
+
+ //---------------------------------------------------
+ // pan, balance
+ //---------------------------------------------------
+
+ addKnob(KNOB_PAN, tr("Pan/Balance"), tr("Pan"), SLOT(setPan(double)), true);
+
+ updateControls();
+
+ //---------------------------------------------------
+ // mute, solo
+ // or
+ // record, mixdownfile
+ //---------------------------------------------------
+
+ record = new TransparentToolButton(this);
+ record->setBackgroundMode(Qt::PaletteMid);
+ record->setToggleButton(true);
+
+ //record->setFixedWidth(STRIP_WIDTH/2);
+ //record->setSizePolicy(QSizePolicy(QSizePolicy::Ignored, QSizePolicy::Minimum));
+ record->setSizePolicy(QSizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum));
+
+ QIcon iconSet;
+ iconSet.setPixmap(*record_on_Icon, QIcon::Automatic, QIcon::Normal, QIcon::On);
+ iconSet.setPixmap(*record_off_Icon, QIcon::Automatic, QIcon::Normal, QIcon::Off);
+ record->setIconSet(iconSet);
+ QToolTip::add(record, tr("record"));
+ record->setOn(track->recordFlag());
+ connect(record, SIGNAL(toggled(bool)), SLOT(recordToggled(bool)));
+
+ mute = new QToolButton(this);
+ QIcon muteSet;
+ muteSet.setPixmap(*muteIconOn, QIcon::Automatic, QIcon::Normal, QIcon::Off);
+ muteSet.setPixmap(*muteIconOff, QIcon::Automatic, QIcon::Normal, QIcon::On);
+ mute->setIconSet(muteSet);
+ mute->setToggleButton(true);
+ QToolTip::add(mute, tr("mute"));
+ mute->setOn(track->mute());
+ mute->setFixedWidth(STRIP_WIDTH/2);
+ connect(mute, SIGNAL(toggled(bool)), SLOT(muteToggled(bool)));
+
+ solo = new QToolButton(this);
+
+ if((bool)t->internalSolo())
+ {
+ solo->setIconSet(*soloIconSet2);
+ useSoloIconSet2 = true;
+ }
+ else
+ {
+ solo->setIconSet(*soloIconSet1);
+ useSoloIconSet2 = false;
+ }
+
+ //QToolTip::add(solo, tr("pre fader listening"));
+ QToolTip::add(solo, tr("solo mode"));
+ solo->setToggleButton(true);
+ solo->setOn(t->solo());
+ solo->setFixedWidth(STRIP_WIDTH/2);
+ connect(solo, SIGNAL(toggled(bool)), SLOT(soloToggled(bool)));
+
+ Q3HBoxLayout* smBox1 = new Q3HBoxLayout(0);
+ Q3HBoxLayout* smBox2 = new Q3HBoxLayout(0);
+
+ smBox2->addWidget(mute);
+ smBox2->addWidget(solo);
+
+ // Changed by Tim. p3.3.21
+ //QToolTip::add(record, tr("record"));
+ //smBox1->addStretch(100);
+ //smBox1->addWidget(record);
+ QLabel* dev_ch_label = new QLabel(this);
+ dev_ch_label->setMinimumWidth(STRIP_WIDTH/2);
+ //dev_ch_label->setSizePolicy(QSizePolicy(QSizePolicy::Ignored, QSizePolicy::Minimum));
+ dev_ch_label->setSizePolicy(QSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Minimum));
+ dev_ch_label->setAlignment(Qt::AlignCenter);
+ int port = t->outPort();
+ int channel = t->outChannel();
+ QString dcs;
+ dcs.sprintf("%d-%d", port + 1, channel + 1);
+ dev_ch_label->setText(dcs);
+ //dev_ch_label->setBackgroundColor(QColor(0, 160, 255)); // Med blue
+ //dev_ch_label->setFont(config.fonts[6]);
+ dev_ch_label->setFont(config.fonts[1]);
+ // Dealing with a horizontally constrained label. Ignore vertical. Use a minimum readable point size.
+ //autoAdjustFontSize(dev_ch_label, dev_ch_label->text(), false, true, config.fonts[6].pointSize(), 5);
+ QToolTip::add(dev_ch_label, tr("output port and channel"));
+ smBox1->addWidget(dev_ch_label);
+ smBox1->addWidget(record);
+
+ layout->addLayout(smBox1);
+ layout->addLayout(smBox2);
+
+ //---------------------------------------------------
+ // routing
+ //---------------------------------------------------
+
+ // p3.3.38
+ //route = new QToolButton(this);
+ //route->setFont(config.fonts[1]);
+ //route->setFixedWidth(STRIP_WIDTH);
+ //route->setText(tr("Route"));
+ //QToolTip::add(route, tr("set routing"));
+ //layout->addWidget(route);
+ Q3HBoxLayout* rBox = new Q3HBoxLayout(0);
+ iR = new QToolButton(this);
+ iR->setFont(config.fonts[1]);
+ iR->setFixedWidth((STRIP_WIDTH-4)/2);
+ iR->setText(tr("iR"));
+ iR->setToggleButton(false);
+ QToolTip::add(iR, tr("input routing"));
+ rBox->addWidget(iR);
+ connect(iR, SIGNAL(pressed()), SLOT(iRoutePressed()));
+ oR = new QToolButton(this);
+ oR->setFont(config.fonts[1]);
+ oR->setFixedWidth((STRIP_WIDTH-4)/2);
+ oR->setText(tr("oR"));
+ oR->setToggleButton(false);
+ // TODO: Works OK, but disabled for now, until we figure out what to do about multiple out routes and display values...
+ oR->setEnabled(false);
+ QToolTip::add(oR, tr("output routing"));
+ rBox->addWidget(oR);
+ connect(oR, SIGNAL(pressed()), SLOT(oRoutePressed()));
+ layout->addLayout(rBox);
+
+ //---------------------------------------------------
+ // automation mode
+ //---------------------------------------------------
+
+ autoType = new ComboBox(this);
+ autoType->setFont(config.fonts[1]);
+ autoType->setFixedWidth(STRIP_WIDTH-4);
+ autoType->setEnabled(false);
+ // Removed by T356.
+ // Disabled for now. There is no midi automation mechanism yet...
+ //autoType->insertItem(tr("Off"), AUTO_OFF);
+ //autoType->insertItem(tr("Read"), AUTO_READ);
+ //autoType->insertItem(tr("Touch"), AUTO_TOUCH);
+ //autoType->insertItem(tr("Write"), AUTO_WRITE);
+ //autoType->setCurrentItem(t->automationType());
+ //QToolTip::add(autoType, tr("automation type"));
+ //connect(autoType, SIGNAL(activated(int,int)), SLOT(setAutomationType(int,int)));
+ layout->addWidget(autoType);
+ connect(heartBeatTimer, SIGNAL(timeout()), SLOT(heartBeat()));
+ inHeartBeat = false;
+ }
+
+//---------------------------------------------------------
+// songChanged
+//---------------------------------------------------------
+
+void MidiStrip::songChanged(int val)
+ {
+ if (mute && (val & SC_MUTE)) { // mute && off
+ mute->blockSignals(true);
+ mute->setOn(track->isMute());
+ updateOffState();
+ mute->blockSignals(false);
+ }
+ if (solo && (val & SC_SOLO))
+ {
+ if((bool)track->internalSolo())
+ {
+ if(!useSoloIconSet2)
+ {
+ solo->setIconSet(*soloIconSet2);
+ useSoloIconSet2 = true;
+ }
+ }
+ else if(useSoloIconSet2)
+ {
+ solo->setIconSet(*soloIconSet1);
+ useSoloIconSet2 = false;
+ }
+ solo->blockSignals(true);
+ solo->setOn(track->solo());
+ solo->blockSignals(false);
+ }
+
+ if (val & SC_RECFLAG)
+ setRecordFlag(track->recordFlag());
+ if (val & SC_TRACK_MODIFIED)
+ {
+ setLabelText();
+ // Added by Tim. p3.3.9
+ setLabelFont();
+
+ }
+ // Added by Tim. p3.3.9
+
+ // Catch when label font changes.
+ if (val & SC_CONFIG)
+ {
+ // Set the strip label's font.
+ //label->setFont(config.fonts[1]);
+ setLabelFont();
+ }
+
+ // p3.3.47 Update the routing popup menu if anything relevant changes.
+ //if(gRoutingPopupMenuMaster == this && track && (val & (SC_ROUTE | SC_CHANNELS | SC_CONFIG)))
+ if(val & (SC_ROUTE | SC_CHANNELS | SC_CONFIG)) // p3.3.50
+ // Use this handy shared routine.
+ //muse->updateRouteMenus(track);
+ muse->updateRouteMenus(track, this); // p3.3.50
+ }
+
+//---------------------------------------------------------
+// controlRightClicked
+//---------------------------------------------------------
+
+void MidiStrip::controlRightClicked(const QPoint &p, int id)
+{
+ song->execMidiAutomationCtlPopup((MidiTrack*)track, 0, p, id);
+}
+
+//---------------------------------------------------------
+// labelDoubleClicked
+//---------------------------------------------------------
+
+void MidiStrip::labelDoubleClicked(int idx)
+{
+ //int mn, mx, v;
+ //int num = CTRL_VOLUME;
+ int num;
+ switch(idx)
+ {
+ case KNOB_PAN:
+ num = CTRL_PANPOT;
+ break;
+ case KNOB_VAR_SEND:
+ num = CTRL_VARIATION_SEND;
+ break;
+ case KNOB_REV_SEND:
+ num = CTRL_REVERB_SEND;
+ break;
+ case KNOB_CHO_SEND:
+ num = CTRL_CHORUS_SEND;
+ break;
+ //case -1:
+ default:
+ num = CTRL_VOLUME;
+ break;
+ }
+ int outport = ((MidiTrack*)track)->outPort();
+ int chan = ((MidiTrack*)track)->outChannel();
+ MidiPort* mp = &midiPorts[outport];
+ MidiController* mc = mp->midiController(num);
+
+ int lastv = mp->lastValidHWCtrlState(chan, num);
+ int curv = mp->hwCtrlState(chan, num);
+
+ if(curv == CTRL_VAL_UNKNOWN)
+ {
+ // If no value has ever been set yet, use the current knob value
+ // (or the controller's initial value?) to 'turn on' the controller.
+ if(lastv == CTRL_VAL_UNKNOWN)
+ {
+ //int kiv = _ctrl->initVal());
+ int kiv;
+ if(idx == -1)
+ kiv = lrint(slider->value());
+ else
+ kiv = lrint(controller[idx].knob->value());
+ if(kiv < mc->minVal())
+ kiv = mc->minVal();
+ if(kiv > mc->maxVal())
+ kiv = mc->maxVal();
+ kiv += mc->bias();
+
+ //MidiPlayEvent ev(song->cpos(), outport, chan, ME_CONTROLLER, num, kiv);
+ MidiPlayEvent ev(0, outport, chan, ME_CONTROLLER, num, kiv);
+ audio->msgPlayMidiEvent(&ev);
+ }
+ else
+ {
+ //MidiPlayEvent ev(song->cpos(), outport, chan, ME_CONTROLLER, num, lastv);
+ MidiPlayEvent ev(0, outport, chan, ME_CONTROLLER, num, lastv);
+ audio->msgPlayMidiEvent(&ev);
+ }
+ }
+ else
+ {
+ if(mp->hwCtrlState(chan, num) != CTRL_VAL_UNKNOWN)
+ audio->msgSetHwCtrlState(mp, chan, num, CTRL_VAL_UNKNOWN);
+ }
+ song->update(SC_MIDI_CONTROLLER);
+}
+
+
+/*
+//---------------------------------------------------------
+// routeClicked
+//---------------------------------------------------------
+
+void MidiStrip::routeClicked()
+ {
+ }
+*/
+
+//---------------------------------------------------------
+// heartBeat
+//---------------------------------------------------------
+
+void MidiStrip::heartBeat()
+ {
+ inHeartBeat = true;
+
+ int act = track->activity();
+ double dact = double(act) * (slider->value() / 127.0);
+
+ if((int)dact > track->lastActivity())
+ track->setLastActivity((int)dact);
+
+ if(meter[0])
+ //meter[0]->setVal(int(double(act) * (slider->value() / 127.0)), 0, false);
+ meter[0]->setVal(dact, track->lastActivity(), false);
+
+ // Gives reasonable decay with gui update set to 20/sec.
+ if(act)
+ track->setActivity((int)((double)act * 0.8));
+
+ Strip::heartBeat();
+ updateControls();
+
+ inHeartBeat = false;
+ }
+
+//---------------------------------------------------------
+// updateControls
+//---------------------------------------------------------
+
+void MidiStrip::updateControls()
+ {
+ bool en;
+ int channel = ((MidiTrack*)track)->outChannel();
+ MidiPort* mp = &midiPorts[((MidiTrack*)track)->outPort()];
+ MidiCtrlValListList* mc = mp->controller();
+ ciMidiCtrlValList icl;
+
+ MidiController* ctrl = mp->midiController(CTRL_VOLUME);
+ int nvolume = mp->hwCtrlState(channel, CTRL_VOLUME);
+ if(nvolume == CTRL_VAL_UNKNOWN)
+ {
+ //if(nvolume != volume)
+ //{
+ // DoubleLabel ignores the value if already set...
+ sl->setValue(sl->off() - 1.0);
+ //volume = nvolume;
+ //}
+ volume = CTRL_VAL_UNKNOWN;
+ nvolume = mp->lastValidHWCtrlState(channel, CTRL_VOLUME);
+ //if(nvolume != volume)
+ if(nvolume != CTRL_VAL_UNKNOWN)
+ {
+ nvolume -= ctrl->bias();
+ //slider->blockSignals(true);
+ if(double(nvolume) != slider->value())
+ {
+ //printf("MidiStrip::updateControls setting volume slider\n");
+
+ slider->setValue(double(nvolume));
+ }
+ }
+ }
+ else
+ {
+ int ivol = nvolume;
+ nvolume -= ctrl->bias();
+ if(nvolume != volume) {
+ //printf("MidiStrip::updateControls setting volume slider\n");
+
+ //slider->blockSignals(true);
+ slider->setValue(double(nvolume));
+ //sl->setValue(double(nvolume));
+ if(ivol == 0)
+ {
+ //printf("MidiStrip::updateControls setting volume slider label\n");
+
+ sl->setValue(sl->minValue() - 0.5 * (sl->minValue() - sl->off()));
+ }
+ else
+ {
+ double v = -fast_log10(float(127*127)/float(ivol*ivol))*20.0;
+ if(v > sl->maxValue())
+ {
+ //printf("MidiStrip::updateControls setting volume slider label\n");
+
+ sl->setValue(sl->maxValue());
+ }
+ else
+ {
+ //printf("MidiStrip::updateControls setting volume slider label\n");
+
+ sl->setValue(v);
+ }
+ }
+ //slider->blockSignals(false);
+ volume = nvolume;
+ }
+ }
+
+
+ KNOB* gcon = &controller[KNOB_PAN];
+ ctrl = mp->midiController(CTRL_PANPOT);
+ int npan = mp->hwCtrlState(channel, CTRL_PANPOT);
+ if(npan == CTRL_VAL_UNKNOWN)
+ {
+ // DoubleLabel ignores the value if already set...
+ //if(npan != pan)
+ //{
+ gcon->dl->setValue(gcon->dl->off() - 1.0);
+ //pan = npan;
+ //}
+ pan = CTRL_VAL_UNKNOWN;
+ npan = mp->lastValidHWCtrlState(channel, CTRL_PANPOT);
+ if(npan != CTRL_VAL_UNKNOWN)
+ {
+ npan -= ctrl->bias();
+ if(double(npan) != gcon->knob->value())
+ {
+ //printf("MidiStrip::updateControls setting pan knob\n");
+
+ gcon->knob->setValue(double(npan));
+ }
+ }
+ }
+ else
+ {
+ npan -= ctrl->bias();
+ if(npan != pan)
+ {
+ //printf("MidiStrip::updateControls setting pan label and knob\n");
+
+ //controller[KNOB_PAN].knob->blockSignals(true);
+ gcon->knob->setValue(double(npan));
+ gcon->dl->setValue(double(npan));
+ //controller[KNOB_PAN].knob->blockSignals(false);
+ pan = npan;
+ }
+ }
+
+
+ icl = mc->find(channel, CTRL_VARIATION_SEND);
+ en = icl != mc->end();
+
+ gcon = &controller[KNOB_VAR_SEND];
+ if(gcon->knob->isEnabled() != en)
+ gcon->knob->setEnabled(en);
+ if(gcon->lb->isEnabled() != en)
+ gcon->lb->setEnabled(en);
+ if(gcon->dl->isEnabled() != en)
+ gcon->dl->setEnabled(en);
+
+ if(en)
+ {
+ ctrl = mp->midiController(CTRL_VARIATION_SEND);
+ int nvariSend = icl->second->hwVal();
+ if(nvariSend == CTRL_VAL_UNKNOWN)
+ {
+ // DoubleLabel ignores the value if already set...
+ //if(nvariSend != variSend)
+ //{
+ gcon->dl->setValue(gcon->dl->off() - 1.0);
+ //variSend = nvariSend;
+ //}
+ variSend = CTRL_VAL_UNKNOWN;
+ nvariSend = mp->lastValidHWCtrlState(channel, CTRL_VARIATION_SEND);
+ if(nvariSend != CTRL_VAL_UNKNOWN)
+ {
+ nvariSend -= ctrl->bias();
+ if(double(nvariSend) != gcon->knob->value())
+ {
+ gcon->knob->setValue(double(nvariSend));
+ }
+ }
+ }
+ else
+ {
+ nvariSend -= ctrl->bias();
+ if(nvariSend != variSend)
+ {
+ //controller[KNOB_VAR_SEND].knob->blockSignals(true);
+ gcon->knob->setValue(double(nvariSend));
+ gcon->dl->setValue(double(nvariSend));
+ //controller[KNOB_VAR_SEND].knob->blockSignals(false);
+ variSend = nvariSend;
+ }
+ }
+ }
+
+ icl = mc->find(channel, CTRL_REVERB_SEND);
+ en = icl != mc->end();
+
+ gcon = &controller[KNOB_REV_SEND];
+ if(gcon->knob->isEnabled() != en)
+ gcon->knob->setEnabled(en);
+ if(gcon->lb->isEnabled() != en)
+ gcon->lb->setEnabled(en);
+ if(gcon->dl->isEnabled() != en)
+ gcon->dl->setEnabled(en);
+
+ if(en)
+ {
+ ctrl = mp->midiController(CTRL_REVERB_SEND);
+ int nreverbSend = icl->second->hwVal();
+ if(nreverbSend == CTRL_VAL_UNKNOWN)
+ {
+ // DoubleLabel ignores the value if already set...
+ //if(nreverbSend != reverbSend)
+ //{
+ gcon->dl->setValue(gcon->dl->off() - 1.0);
+ //reverbSend = nreverbSend;
+ //}
+ reverbSend = CTRL_VAL_UNKNOWN;
+ nreverbSend = mp->lastValidHWCtrlState(channel, CTRL_REVERB_SEND);
+ if(nreverbSend != CTRL_VAL_UNKNOWN)
+ {
+ nreverbSend -= ctrl->bias();
+ if(double(nreverbSend) != gcon->knob->value())
+ {
+ gcon->knob->setValue(double(nreverbSend));
+ }
+ }
+ }
+ else
+ {
+ nreverbSend -= ctrl->bias();
+ if(nreverbSend != reverbSend)
+ {
+ //controller[KNOB_REV_SEND].knob->blockSignals(true);
+ gcon->knob->setValue(double(nreverbSend));
+ gcon->dl->setValue(double(nreverbSend));
+ //controller[KNOB_REV_SEND].knob->blockSignals(false);
+ reverbSend = nreverbSend;
+ }
+ }
+ }
+
+ icl = mc->find(channel, CTRL_CHORUS_SEND);
+ en = icl != mc->end();
+
+ gcon = &controller[KNOB_CHO_SEND];
+ if(gcon->knob->isEnabled() != en)
+ gcon->knob->setEnabled(en);
+ if(gcon->lb->isEnabled() != en)
+ gcon->lb->setEnabled(en);
+ if(gcon->dl->isEnabled() != en)
+ gcon->dl->setEnabled(en);
+
+ if(en)
+ {
+ ctrl = mp->midiController(CTRL_CHORUS_SEND);
+ int nchorusSend = icl->second->hwVal();
+ if(nchorusSend == CTRL_VAL_UNKNOWN)
+ {
+ // DoubleLabel ignores the value if already set...
+ //if(nchorusSend != chorusSend)
+ //{
+ gcon->dl->setValue(gcon->dl->off() - 1.0);
+ //chorusSend = nchorusSend;
+ //}
+ chorusSend = CTRL_VAL_UNKNOWN;
+ nchorusSend = mp->lastValidHWCtrlState(channel, CTRL_CHORUS_SEND);
+ if(nchorusSend != CTRL_VAL_UNKNOWN)
+ {
+ nchorusSend -= ctrl->bias();
+ if(double(nchorusSend) != gcon->knob->value())
+ {
+ gcon->knob->setValue(double(nchorusSend));
+ }
+ }
+ }
+ else
+ {
+ nchorusSend -= ctrl->bias();
+ if(nchorusSend != chorusSend)
+ {
+ gcon->knob->setValue(double(nchorusSend));
+ gcon->dl->setValue(double(nchorusSend));
+ chorusSend = nchorusSend;
+ }
+ }
+ }
+ }
+//---------------------------------------------------------
+// ctrlChanged
+//---------------------------------------------------------
+
+void MidiStrip::ctrlChanged(int num, int val)
+ {
+ if (inHeartBeat)
+ return;
+
+ MidiTrack* t = (MidiTrack*) track;
+ int port = t->outPort();
+
+ int chan = t->outChannel();
+ MidiPort* mp = &midiPorts[port];
+ MidiController* mctl = mp->midiController(num);
+ if((val < mctl->minVal()) || (val > mctl->maxVal()))
+ {
+ if(mp->hwCtrlState(chan, num) != CTRL_VAL_UNKNOWN)
+ audio->msgSetHwCtrlState(mp, chan, num, CTRL_VAL_UNKNOWN);
+ }
+ else
+ {
+ val += mctl->bias();
+
+ int tick = song->cpos();
+
+ MidiPlayEvent ev(tick, port, chan, ME_CONTROLLER, num, val);
+
+ audio->msgPlayMidiEvent(&ev);
+ }
+ song->update(SC_MIDI_CONTROLLER);
+ }
+
+//---------------------------------------------------------
+// volLabelChanged
+//---------------------------------------------------------
+
+void MidiStrip::volLabelChanged(double val)
+ {
+ val = sqrt( float(127*127) / pow(10.0, -val/20.0) );
+
+ ctrlChanged(CTRL_VOLUME, lrint(val));
+
+ }
+
+//---------------------------------------------------------
+// setVolume
+//---------------------------------------------------------
+
+void MidiStrip::setVolume(double val)
+ {
+
+// printf("Vol %d\n", lrint(val));
+ ctrlChanged(CTRL_VOLUME, lrint(val));
+ }
+
+//---------------------------------------------------------
+// setPan
+//---------------------------------------------------------
+
+void MidiStrip::setPan(double val)
+ {
+
+ ctrlChanged(CTRL_PANPOT, lrint(val));
+ }
+
+//---------------------------------------------------------
+// setVariSend
+//---------------------------------------------------------
+
+void MidiStrip::setVariSend(double val)
+ {
+ ctrlChanged(CTRL_VARIATION_SEND, lrint(val));
+ }
+
+//---------------------------------------------------------
+// setChorusSend
+//---------------------------------------------------------
+
+void MidiStrip::setChorusSend(double val)
+ {
+ ctrlChanged(CTRL_CHORUS_SEND, lrint(val));
+ }
+
+//---------------------------------------------------------
+// setReverbSend
+//---------------------------------------------------------
+
+void MidiStrip::setReverbSend(double val)
+ {
+ ctrlChanged(CTRL_REVERB_SEND, lrint(val));
+ }
+
+//---------------------------------------------------------
+// updateOffState
+//---------------------------------------------------------
+
+void MidiStrip::updateOffState() // Ripped from AudioStrip, hehh(mg)
+ {
+ bool val = !track->off();
+ slider->setEnabled(val);
+ //KNOB* gcon = &controller[KNOB_PAN]; // TODO: Pan ctrl
+ //gcon->setOn(val);
+ label->setEnabled(val);
+ if (record)
+ record->setEnabled(val);
+ if (solo)
+ solo->setEnabled(val);
+ if (mute)
+ mute->setEnabled(val);
+ }
+
+//---------------------------------------------------------
+// routingPopupMenuActivated
+//---------------------------------------------------------
+
+void MidiStrip::routingPopupMenuActivated(int n)
+{
+ if(gRoutingPopupMenuMaster != this || !track || !track->isMidiTrack())
+ return;
+ muse->routingPopupMenuActivated(track, n);
+}
+
+//---------------------------------------------------------
+// iRoutePressed
+//---------------------------------------------------------
+
+void MidiStrip::iRoutePressed()
+{
+ if(!track || !track->isMidiTrack())
+ return;
+
+ //song->chooseMidiRoutes(iR, (MidiTrack*)track, false);
+ PopupMenu* pup = muse->prepareRoutingPopupMenu(track, false);
+ if(!pup)
+ return;
+
+ //pup->disconnect();
+ gRoutingPopupMenuMaster = this;
+ connect(pup, SIGNAL(activated(int)), SLOT(routingPopupMenuActivated(int)));
+ connect(pup, SIGNAL(aboutToHide()), muse, SLOT(routingPopupMenuAboutToHide()));
+ pup->popup(QCursor::pos(), 0);
+ iR->setDown(false);
+ return;
+
+ /*
+ RouteList* irl = track->inRoutes();
+ //Route dst(track, -1);
+
+ QPopupMenu* pup = new QPopupMenu(iR);
+ pup->setCheckable(true);
+
+ int gid = 0;
+
+ //MidiInPortList* tl = song->midiInPorts();
+ //for(iMidiInPort i = tl->begin();i != tl->end(); ++i)
+ for(int i = 0; i < MIDI_PORTS; ++i)
+ {
+ //MidiInPort* track = *i;
+ // NOTE: Could possibly list all devices, bypassing ports, but no, let's stick wth ports.
+ MidiPort* mp = &midiPorts[i];
+ MidiDevice* md = mp->device();
+ if(!md)
+ continue;
+
+ if(!(md->rwFlags() & 2))
+ continue;
+
+ //printf("MidiStrip::iRoutePressed adding submenu portnum:%d\n", i);
+
+ //QMenu* m = menu->addMenu(track->name());
+ QPopupMenu* subp = new QPopupMenu(iR);
+
+ for(int ch = 0; ch < MIDI_CHANNELS; ++ch)
+ {
+ //QAction* a = m->addAction(QString("Channel %1").arg(ch+1));
+ //subp->insertItem(QT_TR_NOOP(QString("Channel %1").arg(ch+1)), i * MIDI_CHANNELS + ch);
+ gid = i * MIDI_CHANNELS + ch;
+
+ //printf("MidiStrip::iRoutePressed inserting gid:%d\n", gid);
+
+ subp->insertItem(QString("Channel %1").arg(ch+1), gid);
+ //a->setCheckable(true);
+ //Route src(track, ch, RouteNode::TRACK);
+ //Route src(md, ch);
+ //Route r = Route(src, dst);
+ //a->setData(QVariant::fromValue(r));
+ //a->setChecked(rl->indexOf(r) != -1);
+ Route srcRoute(md, ch);
+ for(iRoute ir = irl->begin(); ir != irl->end(); ++ir)
+ {
+ //if(*ir == dst)
+ if(*ir == srcRoute)
+ {
+ subp->setItemChecked(gid, true);
+ break;
+ }
+ }
+ }
+ pup->insertItem(QT_TR_NOOP(md->name()), subp);
+ }
+
+ int n = pup->exec(QCursor::pos());
+ delete pup;
+ if (n != -1)
+ {
+ int mdidx = n / MIDI_CHANNELS;
+ int ch = n % MIDI_CHANNELS;
+
+ //if(debugMsg)
+ printf("MidiStrip::iRoutePressed mdidx:%d ch:%d\n", mdidx, ch);
+
+ MidiPort* mp = &midiPorts[mdidx];
+ MidiDevice* md = mp->device();
+ if(!md)
+ return;
+
+ if(!(md->rwFlags() & 2))
+ return;
+
+
+ //QString s(pup->text(n));
+ //QT_TR_NOOP(md->name())
+
+ //Route srcRoute(s, false, -1);
+ Route srcRoute(md, ch);
+ //Route srcRoute(md, -1);
+ //Route dstRoute(track, -1);
+ Route dstRoute(track, ch);
+
+ //if (track->type() == Track::AUDIO_INPUT)
+ // srcRoute.channel = dstRoute.channel = n & 0xf;
+ iRoute iir = irl->begin();
+ for (; iir != irl->end(); ++iir) {
+ if (*iir == srcRoute)
+ break;
+ }
+ if (iir != irl->end()) {
+ // disconnect
+ printf("MidiStrip::iRoutePressed removing route src device name: %s dst track name: %s\n", md->name().latin1(), track->name().latin1());
+ audio->msgRemoveRoute(srcRoute, dstRoute);
+ }
+ else {
+ // connect
+ printf("MidiStrip::iRoutePressed adding route src device name: %s dst track name: %s\n", md->name().latin1(), track->name().latin1());
+ audio->msgAddRoute(srcRoute, dstRoute);
+ }
+ printf("MidiStrip::iRoutePressed calling msgUpdateSoloStates\n");
+ audio->msgUpdateSoloStates();
+ printf("MidiStrip::iRoutePressed calling song->update\n");
+ song->update(SC_ROUTE);
+ }
+ //delete pup;
+ iR->setDown(false); // pup->exec() catches mouse release event
+ printf("MidiStrip::iRoutePressed end\n");
+ */
+
+}
+
+//---------------------------------------------------------
+// oRoutePressed
+//---------------------------------------------------------
+
+void MidiStrip::oRoutePressed()
+ {
+ if(!track || !track->isMidiTrack())
+ return;
+
+ //song->chooseMidiRoutes(oR, (MidiTrack*)track, true);
+ PopupMenu* pup = muse->prepareRoutingPopupMenu(track, true);
+ if(!pup)
+ return;
+
+ //pup->disconnect();
+ gRoutingPopupMenuMaster = this;
+ connect(pup, SIGNAL(activated(int)), SLOT(routingPopupMenuActivated(int)));
+ connect(pup, SIGNAL(aboutToHide()), muse, SLOT(routingPopupMenuAboutToHide()));
+ pup->popup(QCursor::pos(), 0);
+ oR->setDown(false);
+ return;
+
+ /*
+ QPopupMenu* pup = new QPopupMenu(oR);
+ pup->setCheckable(true);
+ AudioTrack* t = (AudioTrack*)track;
+ RouteList* orl = t->outRoutes();
+
+ switch(track->type()) {
+ case Track::MIDI:
+ case Track::DRUM:
+ delete pup;
+ return;
+ case Track::AUDIO_OUTPUT:
+ {
+ int gid = 0;
+ for (int i = 0; i < channel; ++i) {
+ char buffer[128];
+ snprintf(buffer, 128, "%s %d", tr("Channel").latin1(), i+1);
+ MenuTitleItem* titel = new MenuTitleItem(QString(buffer));
+ pup->insertItem(titel);
+
+ if (!checkAudioDevice()) return;
+ std::list<QString> ol = audioDevice->inputPorts();
+ for (std::list<QString>::iterator ip = ol.begin(); ip != ol.end(); ++ip) {
+ int id = pup->insertItem(*ip, (gid * 16) + i);
+ Route dst(*ip, true, i);
+ ++gid;
+ for (iRoute ir = orl->begin(); ir != orl->end(); ++ir) {
+ if (*ir == dst) {
+ pup->setItemChecked(id, true);
+ break;
+ }
+ }
+ }
+ if (i+1 != channel)
+ pup->insertSeparator();
+ }
+ }
+ break;
+ case Track::AUDIO_INPUT:
+ addWavePorts(t, pup, orl);
+ case Track::WAVE:
+ case Track::AUDIO_GROUP:
+ case Track::AUDIO_SOFTSYNTH:
+ addOutPorts(t, pup, orl);
+ addGroupPorts(t, pup, orl);
+ break;
+ case Track::AUDIO_AUX:
+ addOutPorts(t, pup, orl);
+ break;
+ }
+ int n = pup->exec(QCursor::pos());
+ if (n != -1) {
+ QString s(pup->text(n));
+ Route srcRoute(t, -1);
+ Route dstRoute(s, true, -1);
+
+ if (track->type() == Track::AUDIO_OUTPUT)
+ srcRoute.channel = dstRoute.channel = n & 0xf;
+
+ // check if route src->dst exists:
+ iRoute iorl = orl->begin();
+ for (; iorl != orl->end(); ++iorl) {
+ if (*iorl == dstRoute)
+ break;
+ }
+ if (iorl != orl->end()) {
+ // disconnect if route exists
+ audio->msgRemoveRoute(srcRoute, dstRoute);
+ }
+ else {
+ // connect if route does not exist
+ audio->msgAddRoute(srcRoute, dstRoute);
+ }
+ audio->msgUpdateSoloStates();
+ song->update(SC_ROUTE);
+ }
+ delete pup;
+ oR->setDown(false); // pup->exec() catches mouse release event
+ */
+
+
+ }
+
+
diff --git a/muse2/muse/mixer/mstrip.h b/muse2/muse/mixer/mstrip.h
new file mode 100644
index 00000000..86eb3fac
--- /dev/null
+++ b/muse2/muse/mixer/mstrip.h
@@ -0,0 +1,83 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: mstrip.h,v 1.4.2.4 2009/10/25 19:26:29 lunar_shuttle Exp $
+//
+// (C) Copyright 2000-2004 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __MSTRIP_H__
+#define __MSTRIP_H__
+
+#include "strip.h"
+//Added by qt3to4:
+#include <QLabel>
+
+class Slider;
+class DoubleLabel;
+class QDialog;
+class Knob;
+class QString;
+class MidiTrack;
+class QLabel;
+
+//---------------------------------------------------------
+// MidiStrip
+//---------------------------------------------------------
+
+class MidiStrip : public Strip {
+ Q_OBJECT
+
+ Slider* slider;
+ DoubleLabel* sl;
+ //QToolButton* route;
+ //QToolButton* iR;
+ //QToolButton* oR;
+
+ struct KNOB {
+ Knob* knob;
+ DoubleLabel* dl;
+ QLabel* lb;
+ } controller[4]; // pan variation reverb chorus
+
+ int volume;
+ int variSend;
+ int reverbSend;
+ int chorusSend;
+ int pan;
+ bool inHeartBeat;
+
+ void addKnob(int idx, const QString&, const QString&, const char*, bool);
+ void ctrlChanged(int num, int val);
+ void updateControls();
+ void updateOffState();
+
+ private slots:
+ //void routeClicked();
+ void iRoutePressed();
+ void oRoutePressed();
+ void routingPopupMenuActivated(int /*id*/);
+ void setVolume(double);
+ void setPan(double);
+ void setChorusSend(double);
+ void setVariSend(double);
+ void setReverbSend(double);
+ void labelDoubleClicked(int);
+ void volLabelChanged(double);
+ void controlRightClicked(const QPoint&, int);
+
+ protected slots:
+ virtual void heartBeat();
+
+ public slots:
+ virtual void songChanged(int);
+
+ public:
+ MidiStrip(QWidget* parent, MidiTrack*);
+ };
+
+
+#endif
+
+
+
diff --git a/muse2/muse/mixer/panknob.cpp b/muse2/muse/mixer/panknob.cpp
new file mode 100644
index 00000000..065c1bd1
--- /dev/null
+++ b/muse2/muse/mixer/panknob.cpp
@@ -0,0 +1,32 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: panknob.cpp,v 1.5 2004/01/23 08:41:38 wschweer Exp $
+//
+// (C) Copyright 2000 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include "../audio.h"
+#include "panknob.h"
+
+//---------------------------------------------------------
+// PanKnob
+//---------------------------------------------------------
+
+PanKnob::PanKnob(QWidget* parent, AudioTrack* s)
+ : Knob(parent, "pan")
+ {
+ src = s;
+ connect(this, SIGNAL(valueChanged(double,int)), SLOT(valueChanged(double)));
+ }
+
+//---------------------------------------------------------
+// panChanged
+//---------------------------------------------------------
+
+void PanKnob::valueChanged(double val)
+ {
+ audio->msgSetPan(src, val);
+ }
+
+
diff --git a/muse2/muse/mixer/panknob.h b/muse2/muse/mixer/panknob.h
new file mode 100644
index 00000000..92c41b03
--- /dev/null
+++ b/muse2/muse/mixer/panknob.h
@@ -0,0 +1,32 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: panknob.h,v 1.3 2003/11/08 15:10:18 wschweer Exp $
+//
+// (C) Copyright 2000 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __PANKNOB_H__
+#define __PANKNOB_H__
+
+#include "knob.h"
+
+class AudioTrack;
+
+//---------------------------------------------------------
+// PanKnob
+//---------------------------------------------------------
+
+class PanKnob : public Knob {
+ Q_OBJECT
+ AudioTrack* src;
+
+ private slots:
+ void valueChanged(double);
+
+ public:
+ PanKnob(QWidget* parent, AudioTrack*);
+ };
+
+#endif
+
diff --git a/muse2/muse/mixer/rack.cpp b/muse2/muse/mixer/rack.cpp
new file mode 100644
index 00000000..ae5d34b7
--- /dev/null
+++ b/muse2/muse/mixer/rack.cpp
@@ -0,0 +1,531 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: rack.cpp,v 1.7.2.7 2007/01/27 14:52:43 spamatica Exp $
+//
+// (C) Copyright 2000-2003 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include <qapplication.h>
+#include <qtooltip.h>
+#include <qpalette.h>
+#include <qpainter.h>
+#include <q3popupmenu.h>
+#include <q3dragobject.h>
+#include <qmessagebox.h>
+#include <q3url.h>
+//Added by qt3to4:
+#include <QDropEvent>
+#include <QMouseEvent>
+#include <QDragEnterEvent>
+#include <errno.h>
+
+#include "xml.h"
+#include "rack.h"
+#include "song.h"
+#include "audio.h"
+#include "icons.h"
+#include "gconfig.h"
+#include "plugin.h"
+#include "filedialog.h"
+#include "config.h"
+
+//---------------------------------------------------------
+// class RackSlot
+//---------------------------------------------------------
+
+class RackSlot : public Q3ListBoxItem {
+ int idx;
+ AudioTrack* node;
+
+ virtual void paint(QPainter*);
+ virtual int height(const Q3ListBox*) const { return 18; }
+
+ public:
+ RackSlot(Q3ListBox* lb, AudioTrack* t, int);
+ ~RackSlot();
+ };
+
+RackSlot::~RackSlot()
+ {
+ node = 0;
+ }
+
+//---------------------------------------------------------
+// RackSlot
+//---------------------------------------------------------
+
+RackSlot::RackSlot(Q3ListBox* b, AudioTrack* t, int i)
+ : Q3ListBoxItem(b)
+ {
+ node = t;
+ idx = i;
+ }
+
+//---------------------------------------------------------
+// paint
+//---------------------------------------------------------
+
+void RackSlot::paint(QPainter* painter)
+ {
+ if (node == 0)
+ return;
+ painter->save();
+ if (node == 0 || !node->efxPipe()->isOn(idx)) {
+ const QColorGroup& g = listBox()->colorGroup();
+ painter->fillRect(0,0,listBox()->width(),height(listBox()), g.dark());
+ painter->setPen(g.light());
+ }
+ QFontMetrics fm = painter->fontMetrics();
+ QString s(node->efxPipe()->name(idx));
+ painter->drawText(3, fm.ascent() + fm.leading()/2, s);
+ painter->restore();
+ }
+
+//---------------------------------------------------------
+// EffectRack
+//---------------------------------------------------------
+
+EffectRack::EffectRack(QWidget* parent, AudioTrack* t)
+ : Q3ListBox(parent, "Rack", Qt::WDestructiveClose)
+ {
+ track = t;
+ setFont(config.fonts[1]);
+
+ setHScrollBarMode(AlwaysOff);
+ setVScrollBarMode(AlwaysOff);
+ setSelectionMode(Single);
+ setMaximumHeight(18 * PipelineDepth);
+ for (int i = 0; i < PipelineDepth; ++i)
+ new RackSlot(this, track, i);
+ connect(this, SIGNAL(contextMenuRequested(Q3ListBoxItem*, const QPoint&)),
+ this, SLOT(menuRequested(Q3ListBoxItem*, const QPoint&)));
+ connect(this, SIGNAL(doubleClicked(Q3ListBoxItem*)),
+ this, SLOT(doubleClicked(Q3ListBoxItem*)));
+ connect(song, SIGNAL(songChanged(int)), SLOT(songChanged(int)));
+ QToolTip::add(this, tr("effect rack"));
+ setAcceptDrops(true);
+ }
+
+//---------------------------------------------------------
+// EffectRack
+//---------------------------------------------------------
+
+EffectRack::~EffectRack()
+ {
+ }
+
+//---------------------------------------------------------
+// songChanged
+//---------------------------------------------------------
+
+void EffectRack::songChanged(int typ)
+ {
+ if (typ & (SC_ROUTE | SC_RACK)) {
+ for (int i = 0; i < PipelineDepth; ++i)
+ updateItem(i);
+ }
+ }
+
+//---------------------------------------------------------
+// minimumSizeHint
+//---------------------------------------------------------
+
+QSize EffectRack::minimumSizeHint() const
+ {
+ return QSize(10, 18 * PipelineDepth);
+ }
+
+//---------------------------------------------------------
+// menuRequested
+//---------------------------------------------------------
+
+void EffectRack::menuRequested(Q3ListBoxItem* it, const QPoint& pt)
+ {
+ if (it == 0 || track == 0)
+ return;
+ RackSlot* curitem = (RackSlot*)it;
+ int idx = index(curitem);
+ QString name;
+ bool mute;
+ Pipeline* pipe = track->efxPipe();
+ if (pipe) {
+ name = pipe->name(idx);
+ mute = pipe->isOn(idx);
+ }
+
+ //enum { NEW, CHANGE, UP, DOWN, REMOVE, BYPASS, SHOW, SAVE };
+ enum { NEW, CHANGE, UP, DOWN, REMOVE, BYPASS, SHOW, SHOW_NATIVE, SAVE };
+ Q3PopupMenu* menu = new Q3PopupMenu;
+ menu->insertItem(QIcon(*upIcon), tr("move up"), UP, UP);
+ menu->insertItem(QIcon(*downIcon), tr("move down"), DOWN, DOWN);
+ menu->insertItem(tr("remove"), REMOVE, REMOVE);
+ menu->insertItem(tr("bypass"), BYPASS, BYPASS);
+ menu->insertItem(tr("show gui"), SHOW, SHOW);
+ menu->insertItem(tr("show native gui"), SHOW_NATIVE, SHOW_NATIVE);
+
+ menu->setItemChecked(BYPASS, !pipe->isOn(idx));
+ menu->setItemChecked(SHOW, pipe->guiVisible(idx));
+ menu->setItemChecked(SHOW_NATIVE, pipe->nativeGuiVisible(idx));
+
+ if (pipe->empty(idx)) {
+ menu->insertItem(tr("new"), NEW, NEW);
+ menu->setItemEnabled(UP, false);
+ menu->setItemEnabled(DOWN, false);
+ menu->setItemEnabled(REMOVE, false);
+ menu->setItemEnabled(BYPASS, false);
+ menu->setItemEnabled(SHOW, false);
+ menu->setItemEnabled(SHOW_NATIVE, false);
+ menu->setItemEnabled(SAVE, false);
+ }
+ else {
+ menu->insertItem(tr("change"), CHANGE, CHANGE);
+ menu->insertItem(tr("save preset"), SAVE, SAVE);
+ if (idx == 0)
+ menu->setItemEnabled(UP, false);
+ if (idx == (PipelineDepth-1))
+ menu->setItemEnabled(DOWN, false);
+ if(!pipe->isDssiPlugin(idx))
+ menu->setItemEnabled(SHOW_NATIVE, false);
+ }
+
+ #ifndef OSC_SUPPORT
+ menu->setItemEnabled(SHOW_NATIVE, false);
+ #endif
+
+ int sel = menu->exec(pt, 1);
+ delete menu;
+ if (sel == -1)
+ return;
+
+ switch(sel) {
+ case NEW:
+ {
+ Plugin* plugin = PluginDialog::getPlugin(this);
+ if (plugin) {
+ PluginI* plugi = new PluginI();
+ if (plugi->initPluginInstance(plugin, track->channels())) {
+ printf("cannot instantiate plugin <%s>\n",
+ plugin->name().latin1());
+ delete plugi;
+ break;
+ }
+ audio->msgAddPlugin(track, idx, plugi);
+ }
+ break;
+ }
+ case CHANGE:
+ {
+ Plugin* plugin = PluginDialog::getPlugin(this);
+ if (plugin) {
+ PluginI* plugi = new PluginI();
+ if (plugi->initPluginInstance(plugin, track->channels())) {
+ printf("cannot instantiate plugin <%s>\n",
+ plugin->name().latin1());
+ delete plugi;
+ break;
+ }
+ audio->msgAddPlugin(track, idx, 0);
+ audio->msgAddPlugin(track, idx, plugi);
+ }
+ break;
+ }
+ case REMOVE:
+ audio->msgAddPlugin(track, idx, 0);
+ break;
+ case BYPASS:
+ {
+ bool flag = !pipe->isOn(idx);
+ pipe->setOn(idx, flag);
+ break;
+ }
+ case SHOW:
+ {
+ bool flag = !pipe->guiVisible(idx);
+ pipe->showGui(idx, flag);
+ break;
+ }
+ case SHOW_NATIVE:
+ {
+ bool flag = !pipe->nativeGuiVisible(idx);
+ pipe->showNativeGui(idx, flag);
+ break;
+ }
+ case UP:
+ if (idx > 0) {
+ setCurrentItem(idx-1);
+ pipe->move(idx, true);
+ }
+ break;
+ case DOWN:
+ if (idx < (PipelineDepth-1)) {
+ setCurrentItem(idx+1);
+ pipe->move(idx, false);
+ }
+ break;
+ case SAVE:
+ savePreset(idx);
+ break;
+ }
+ song->update(SC_RACK);
+ }
+
+//---------------------------------------------------------
+// doubleClicked
+// toggle gui
+//---------------------------------------------------------
+
+void EffectRack::doubleClicked(Q3ListBoxItem* it)
+ {
+ if (it == 0 || track == 0)
+ return;
+ RackSlot* item = (RackSlot*)it;
+ int idx = index(item);
+ Pipeline* pipe = track->efxPipe();
+ if (pipe) {
+ bool flag = !pipe->guiVisible(idx);
+ pipe->showGui(idx, flag);
+ }
+ }
+
+void EffectRack::savePreset(int idx)
+ {
+ //QString name = getSaveFileName(QString(""), plug_file_pattern, this,
+ QString name = getSaveFileName(QString(""), preset_file_save_pattern, this,
+ tr("MusE: Save Preset"));
+
+ if(name.isEmpty())
+ return;
+
+ //FILE* presetFp = fopen(name.ascii(),"w+");
+ bool popenFlag;
+ FILE* presetFp = fileOpen(this, name, QString(".pre"), "w", popenFlag, false, true);
+ if (presetFp == 0) {
+ //fprintf(stderr, "EffectRack::savePreset() fopen failed: %s\n",
+ // strerror(errno));
+ return;
+ }
+ Xml xml(presetFp);
+ Pipeline* pipe = track->efxPipe();
+ if (pipe) {
+ if ((*pipe)[idx] != NULL) {
+ xml.header();
+ xml.tag(0, "muse version=\"1.0\"");
+ (*pipe)[idx]->writeConfiguration(1, xml);
+ xml.tag(0, "/muse");
+ }
+ else {
+ printf("no plugin!\n");
+ //fclose(presetFp);
+ if (popenFlag)
+ pclose(presetFp);
+ else
+ fclose(presetFp);
+ return;
+ }
+ }
+ else {
+ printf("no pipe!\n");
+ //fclose(presetFp);
+ if (popenFlag)
+ pclose(presetFp);
+ else
+ fclose(presetFp);
+ return;
+ }
+ //fclose(presetFp);
+ if (popenFlag)
+ pclose(presetFp);
+ else
+ fclose(presetFp);
+ }
+
+void EffectRack::startDrag(int idx)
+ {
+ FILE* tmp = tmpfile();
+ if (tmp == 0) {
+ fprintf(stderr, "EffectRack::startDrag fopen failed: %s\n",
+ strerror(errno));
+ return;
+ }
+ Xml xml(tmp);
+ Pipeline* pipe = track->efxPipe();
+ if (pipe) {
+ if ((*pipe)[idx] != NULL) {
+ xml.header();
+ xml.tag(0, "muse version=\"1.0\"");
+ (*pipe)[idx]->writeConfiguration(1, xml);
+ xml.tag(0, "/muse");
+ }
+ else {
+ //printf("no plugin!\n");
+ return;
+ }
+ }
+ else {
+ //printf("no pipe!\n");
+ return;
+ }
+
+ QString xmlconf;
+ xml.dump(xmlconf);
+ Q3TextDrag *drag = new Q3TextDrag(xmlconf, this);
+ drag->setSubtype("x-muse-plugin");
+ drag->drag();
+ }
+
+void EffectRack::contentsDropEvent(QDropEvent * /*event*/)// prevent of compiler warning: unsued variable
+ {
+ }
+
+void EffectRack::dropEvent(QDropEvent *event)
+ {
+ QString text;
+ Q3ListBoxItem *i = itemAt( contentsToViewport(event->pos()) );
+ int idx = index(i);
+
+ Pipeline* pipe = track->efxPipe();
+ if (pipe) {
+ if ((*pipe)[idx] != NULL) {
+ QWidget *sw = event->source();
+ if(sw)
+ {
+ if(strcmp(sw->className(), "EffectRack") == 0)
+ {
+ EffectRack *ser = (EffectRack*)sw;
+ Pipeline* spipe = ser->getTrack()->efxPipe();
+ if(!spipe)
+ return;
+ Q3ListBoxItem *i = ser->itemAt(contentsToViewport(ser->getDragPos()));
+ int idx0 = ser->index(i);
+ if (!(*spipe)[idx0] ||
+ (idx == idx0 && (ser == this || ser->getTrack()->name() == track->name())))
+ return;
+ }
+ }
+ 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);
+ song->update(SC_RACK);
+ }
+ else {
+ return;
+ }
+ }
+ if(Q3TextDrag::decode(event, text))
+ {
+ text = text.stripWhiteSpace();
+ // Changed by T356.
+ //if (text.endsWith(".pre", false))
+ if (text.endsWith(".pre", false) || text.endsWith(".pre.gz", false) || text.endsWith(".pre.bz2", false))
+ {
+ Q3Url url(text);
+ QString newPath = url.path();
+
+ //bool popenFlag = false;
+ bool popenFlag;
+ FILE* fp = fileOpen(this, newPath, ".pre", "r", popenFlag, false, false);
+
+ if (fp) {
+ Xml xml(fp);
+ initPlugin(xml, idx);
+
+ // Added by T356.
+ if (popenFlag)
+ pclose(fp);
+ else
+ fclose(fp);
+ }
+ }
+ else if (event->provides("text/x-muse-plugin"))
+ {
+ QString outxml;
+ Q3TextDrag::decode(event, outxml);
+ Xml xml(outxml);
+ initPlugin(xml, idx);
+ }
+ }
+ }
+ }
+
+void EffectRack::dragEnterEvent(QDragEnterEvent *event)
+ {
+ event->accept(Q3TextDrag::canDecode(event));
+ }
+
+
+void EffectRack::contentsDragEnterEvent(QDragEnterEvent * /*event*/)// prevent of compiler warning: unused parameter
+ {
+ }
+
+void EffectRack::contentsMousePressEvent(QMouseEvent *event)
+ {
+ if(event->button() & Qt::LeftButton) {
+ dragPos = event->pos();
+ }
+ Q3ListBox::contentsMousePressEvent(event);
+ }
+
+void EffectRack::contentsMouseMoveEvent(QMouseEvent *event)
+ {
+ if (event->state() & Qt::LeftButton) {
+ Pipeline* pipe = track->efxPipe();
+ if(!pipe)
+ return;
+ Q3ListBoxItem *i = itemAt(contentsToViewport(dragPos));
+ int idx0 = index(i);
+ if (!(*pipe)[idx0])
+ return;
+
+ int distance = (dragPos-event->pos()).manhattanLength();
+ if (distance > QApplication::startDragDistance()) {
+ Q3ListBoxItem *i = itemAt( contentsToViewport(event->pos()) );
+ int idx = index(i);
+ startDrag(idx);
+ }
+ }
+ Q3ListBox::contentsMouseMoveEvent(event);
+ }
+
+
+void EffectRack::initPlugin(Xml xml, int idx)
+ {
+ for (;;) {
+ Xml::Token token = xml.parse();
+ QString tag = xml.s1();
+ switch (token) {
+ case Xml::Error:
+ case Xml::End:
+ return;
+ case Xml::TagStart:
+ if (tag == "plugin") {
+ PluginI* plugi = new PluginI();
+ if (plugi->readConfiguration(xml, false)) {
+ printf("cannot instantiate plugin\n");
+ delete plugi;
+ }
+ else {
+ //printf("instantiated!\n");
+ audio->msgAddPlugin(track, idx, plugi);
+ song->update(SC_RACK);
+ return;
+ }
+ }
+ else if (tag =="muse")
+ break;
+ else
+ xml.unknown("EffectRack");
+ break;
+ case Xml::Attribut:
+ break;
+ case Xml::TagEnd:
+ if (tag == "muse")
+ return;
+ default:
+ break;
+ }
+ }
+ }
+
diff --git a/muse2/muse/mixer/rack.h b/muse2/muse/mixer/rack.h
new file mode 100644
index 00000000..edacfa29
--- /dev/null
+++ b/muse2/muse/mixer/rack.h
@@ -0,0 +1,58 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: rack.h,v 1.5.2.3 2006/09/24 19:32:31 terminator356 Exp $
+//
+// (C) Copyright 2000 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __RACK_H__
+#define __RACK_H__
+
+#include <q3listbox.h>
+//Added by qt3to4:
+#include <QMouseEvent>
+#include <QDropEvent>
+#include <QDragEnterEvent>
+#include "xml.h"
+
+class AudioTrack;
+
+//---------------------------------------------------------
+// EffectRack
+//---------------------------------------------------------
+
+class EffectRack : public Q3ListBox {
+ AudioTrack* track;
+ Q_OBJECT
+
+ virtual QSize minimumSizeHint() const;
+
+ void startDrag(int idx);
+ void initPlugin(Xml xml, int idx);
+ QPoint dragPos;
+ void savePreset(int idx);
+
+ private slots:
+ void menuRequested(Q3ListBoxItem*, const QPoint&);
+ void doubleClicked(Q3ListBoxItem*);
+ void songChanged(int);
+
+ protected:
+ void dropEvent(QDropEvent *event);
+ void dragEnterEvent(QDragEnterEvent *event);
+ void contentsDropEvent(QDropEvent *event);
+ void contentsDragEnterEvent(QDragEnterEvent *event);
+ void contentsMousePressEvent(QMouseEvent *event);
+ void contentsMouseMoveEvent(QMouseEvent *event);
+
+ public:
+ EffectRack(QWidget*, AudioTrack* t);
+ ~EffectRack();
+
+ AudioTrack* getTrack() { return track; }
+ QPoint getDragPos() { return dragPos; }
+ };
+
+#endif
+
diff --git a/muse2/muse/mixer/routedialog.cpp b/muse2/muse/mixer/routedialog.cpp
new file mode 100644
index 00000000..e56a15ba
--- /dev/null
+++ b/muse2/muse/mixer/routedialog.cpp
@@ -0,0 +1,185 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: routedialog.cpp,v 1.5.2.2 2007/01/04 00:35:17 terminator356 Exp $
+//
+// (C) Copyright 2004 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include <q3listbox.h>
+#include <q3listview.h>
+#include <qtoolbutton.h>
+//Added by qt3to4:
+#include <QCloseEvent>
+#include "routedialog.h"
+#include "track.h"
+#include "song.h"
+#include "audio.h"
+#include "driver/jackaudio.h"
+
+//---------------------------------------------------------
+// RouteDialog
+//---------------------------------------------------------
+
+RouteDialog::RouteDialog(QWidget* parent)
+ : RouteDialogBase(parent)
+ {
+ 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();
+
+ TrackList* tl = song->tracks();
+ for (ciTrack i = tl->begin(); i != tl->end(); ++i) {
+ if ((*i)->isMidiTrack())
+ continue;
+ // p3.3.38
+ //WaveTrack* track = (WaveTrack*)(*i);
+ AudioTrack* track = (AudioTrack*)(*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(), true, r->channel);
+ Route dst(track->name(), true, r->channel, Route::TRACK_ROUTE);
+ new Q3ListViewItem(routeList, r->name(), dst.name());
+ }
+ }
+ else if (track->type() != Track::AUDIO_AUX)
+ 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, false, r->channel);
+ src = s.name();
+ }
+ new Q3ListViewItem(routeList, src, r->name());
+ }
+ }
+ if (!checkAudioDevice()) return;
+ std::list<QString> sl = audioDevice->outputPorts();
+ for (std::list<QString>::iterator i = sl.begin(); i != sl.end(); ++i)
+ newSrcList->insertItem(*i);
+ sl = audioDevice->inputPorts();
+ for (std::list<QString>::iterator i = sl.begin(); i != sl.end(); ++i)
+ newDstList->insertItem(*i);
+ 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()
+ {
+ Q3ListViewItem* item = routeList->selectedItem();
+ removeButton->setEnabled(item != 0);
+ }
+
+//---------------------------------------------------------
+// removeRoute
+//---------------------------------------------------------
+
+void RouteDialog::removeRoute()
+ {
+ Q3ListViewItem* item = routeList->selectedItem();
+ if (item == 0)
+ return;
+ audio->msgRemoveRoute(Route(item->text(0), false, -1), Route(item->text(1), true, -1));
+ audio->msgUpdateSoloStates();
+ song->update(SC_SOLO);
+ delete item;
+ }
+
+//---------------------------------------------------------
+// addRoute
+//---------------------------------------------------------
+
+void RouteDialog::addRoute()
+ {
+ Q3ListBoxItem* srcItem = newSrcList->selectedItem();
+ Q3ListBoxItem* dstItem = newDstList->selectedItem();
+ if (srcItem == 0 || dstItem == 0)
+ return;
+ audio->msgAddRoute(Route(srcItem->text(), false, -1), Route(dstItem->text(), true, -1));
+ audio->msgUpdateSoloStates();
+ song->update(SC_SOLO);
+ new Q3ListViewItem(routeList, srcItem->text(), dstItem->text());
+ }
+
+//---------------------------------------------------------
+// srcSelectionChanged
+//---------------------------------------------------------
+
+void RouteDialog::srcSelectionChanged()
+ {
+ Q3ListBoxItem* srcItem = newSrcList->selectedItem();
+ Q3ListBoxItem* dstItem = newDstList->selectedItem();
+ connectButton->setEnabled((srcItem != 0)
+ && (dstItem != 0)
+ && checkRoute(srcItem->text(), dstItem->text()));
+ }
+
+//---------------------------------------------------------
+// dstSelectionChanged
+//---------------------------------------------------------
+
+void RouteDialog::dstSelectionChanged()
+ {
+ Q3ListBoxItem* dstItem = newDstList->selectedItem();
+ Q3ListBoxItem* srcItem = newSrcList->selectedItem();
+ connectButton->setEnabled((srcItem != 0)
+ && (dstItem != 0)
+ && checkRoute(srcItem->text(), dstItem->text()));
+ }
+
+//---------------------------------------------------------
+// closeEvent
+//---------------------------------------------------------
+
+void RouteDialog::closeEvent(QCloseEvent* e)
+ {
+ emit closed();
+ e->accept();
+ }
diff --git a/muse2/muse/mixer/routedialog.h b/muse2/muse/mixer/routedialog.h
new file mode 100644
index 00000000..d819b2a1
--- /dev/null
+++ b/muse2/muse/mixer/routedialog.h
@@ -0,0 +1,43 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: routedialog.h,v 1.2 2004/01/31 17:31:49 wschweer Exp $
+//
+// (C) Copyright 2004 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __ROUTEDIALOG_H__
+#define __ROUTEDIALOG_H__
+
+#include "routedialogbase.h"
+//Added by qt3to4:
+#include <QCloseEvent>
+
+//---------------------------------------------------------
+// RouteDialog
+//---------------------------------------------------------
+
+class RouteDialog : public 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/muse2/muse/mixer/routedialogbase.ui b/muse2/muse/mixer/routedialogbase.ui
new file mode 100644
index 00000000..85c4f0d4
--- /dev/null
+++ b/muse2/muse/mixer/routedialogbase.ui
@@ -0,0 +1,234 @@
+<!DOCTYPE UI><UI version="3.2" stdsetdef="1">
+<class>RouteDialogBase</class>
+<widget class="QDialog">
+ <property name="name">
+ <cstring>RouteDialogBase</cstring>
+ </property>
+ <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="caption">
+ <string>MusE: Routing</string>
+ </property>
+ <vbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>4</number>
+ </property>
+ <property name="spacing">
+ <number>4</number>
+ </property>
+ <widget class="QGroupBox">
+ <property name="name">
+ <cstring>groupBox4</cstring>
+ </property>
+ <property name="title">
+ <string>Add Route</string>
+ </property>
+ <vbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>4</number>
+ </property>
+ <property name="spacing">
+ <number>4</number>
+ </property>
+ <widget class="QLayoutWidget">
+ <property name="name">
+ <cstring>layout1</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QGroupBox">
+ <property name="name">
+ <cstring>groupBox2</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>7</hsizetype>
+ <vsizetype>7</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="lineWidth">
+ <number>0</number>
+ </property>
+ <property name="title">
+ <string>Source:</string>
+ </property>
+ <vbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>2</number>
+ </property>
+ <property name="spacing">
+ <number>0</number>
+ </property>
+ <widget class="QListBox">
+ <property name="name">
+ <cstring>newSrcList</cstring>
+ </property>
+ </widget>
+ </vbox>
+ </widget>
+ <widget class="QGroupBox">
+ <property name="name">
+ <cstring>groupBox3</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>7</hsizetype>
+ <vsizetype>7</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="lineWidth">
+ <number>0</number>
+ </property>
+ <property name="title">
+ <string>Destination:</string>
+ </property>
+ <vbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>2</number>
+ </property>
+ <property name="spacing">
+ <number>0</number>
+ </property>
+ <widget class="QListBox">
+ <property name="name">
+ <cstring>newDstList</cstring>
+ </property>
+ </widget>
+ </vbox>
+ </widget>
+ </hbox>
+ </widget>
+ <widget class="QToolButton">
+ <property name="name">
+ <cstring>connectButton</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>4</hsizetype>
+ <vsizetype>1</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>Connect</string>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>connect source to destination</string>
+ </property>
+ </widget>
+ </vbox>
+ </widget>
+ <widget class="QGroupBox">
+ <property name="name">
+ <cstring>groupBox1</cstring>
+ </property>
+ <property name="lineWidth">
+ <number>1</number>
+ </property>
+ <property name="title">
+ <string>Current Routes</string>
+ </property>
+ <vbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>4</number>
+ </property>
+ <property name="spacing">
+ <number>4</number>
+ </property>
+ <widget class="QListView">
+ <column>
+ <property name="text">
+ <string>Source</string>
+ </property>
+ <property name="clickable">
+ <bool>true</bool>
+ </property>
+ <property name="resizable">
+ <bool>true</bool>
+ </property>
+ </column>
+ <column>
+ <property name="text">
+ <string>Destination</string>
+ </property>
+ <property name="clickable">
+ <bool>true</bool>
+ </property>
+ <property name="resizable">
+ <bool>true</bool>
+ </property>
+ </column>
+ <property name="name">
+ <cstring>routeList</cstring>
+ </property>
+ <property name="selectionMode">
+ <enum>Single</enum>
+ </property>
+ <property name="allColumnsShowFocus">
+ <bool>true</bool>
+ </property>
+ <property name="resizeMode">
+ <enum>AllColumns</enum>
+ </property>
+ </widget>
+ <widget class="QToolButton">
+ <property name="name">
+ <cstring>removeButton</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>4</hsizetype>
+ <vsizetype>1</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>Remove</string>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>remove selected route</string>
+ </property>
+ </widget>
+ </vbox>
+ </widget>
+ </vbox>
+</widget>
+<layoutdefaults spacing="6" margin="11"/>
+</UI>
diff --git a/muse2/muse/mixer/strip.cpp b/muse2/muse/mixer/strip.cpp
new file mode 100644
index 00000000..892a19b6
--- /dev/null
+++ b/muse2/muse/mixer/strip.cpp
@@ -0,0 +1,238 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: strip.cpp,v 1.6.2.5 2009/11/14 03:37:48 terminator356 Exp $
+//
+// (C) Copyright 2000-2004 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include <qtoolbutton.h>
+#include <qlabel.h>
+#include <qlayout.h>
+//Added by qt3to4:
+#include <Q3VBoxLayout>
+#include <Q3Frame>
+
+#include "globals.h"
+#include "gconfig.h"
+#include "app.h"
+#include "audio.h"
+#include "song.h"
+#include "track.h"
+#include "strip.h"
+#include "meter.h"
+#include "utils.h"
+
+//---------------------------------------------------------
+// setRecordFlag
+//---------------------------------------------------------
+
+void Strip::setRecordFlag(bool flag)
+ {
+ if (record) {
+ record->blockSignals(true);
+ record->setOn(flag);
+ record->blockSignals(false);
+ }
+ }
+
+//---------------------------------------------------------
+// resetPeaks
+//---------------------------------------------------------
+
+void Strip::resetPeaks()
+ {
+ track->resetPeaks();
+ }
+
+//---------------------------------------------------------
+// recordToggled
+//---------------------------------------------------------
+
+void Strip::recordToggled(bool val)
+ {
+ if (track->type() == Track::AUDIO_OUTPUT) {
+ if (val && track->recordFlag() == false) {
+ muse->bounceToFile((AudioOutput*)track);
+ }
+ audio->msgSetRecord((AudioOutput*)track, val);
+ if (!((AudioOutput*)track)->recFile())
+ record->setOn(false);
+ return;
+ }
+ song->setRecordFlag(track, val);
+ }
+//---------------------------------------------------------
+// heartBeat
+//---------------------------------------------------------
+
+void Strip::heartBeat()
+ {
+ }
+
+//---------------------------------------------------------
+// setLabelFont
+//---------------------------------------------------------
+// Added by Tim. p3.3.9
+
+void Strip::setLabelFont()
+{
+ // Use the new font #6 I created just for these labels (so far).
+ // Set the label's font.
+ label->setFont(config.fonts[6]);
+ // Dealing with a horizontally constrained label. Ignore vertical. Use a minimum readable point size.
+ //autoAdjustFontSize(label, label->text(), false, true, config.fonts[6].pointSize(), 5); ddskrjo
+}
+
+//---------------------------------------------------------
+// setLabelText
+//---------------------------------------------------------
+
+void Strip::setLabelText()
+ {
+ //label->setText(track->name());
+ QString s;
+ switch(track->type()) {
+ case Track::AUDIO_OUTPUT:
+ label->setBackgroundColor(Qt::green);
+ s = track->name();
+ break;
+ case Track::AUDIO_GROUP:
+ label->setBackgroundColor(Qt::yellow);
+ s = track->name();
+ break;
+ case Track::AUDIO_AUX:
+ //label->setBackgroundColor(cyan);
+ label->setBackgroundColor(QColor(120, 255, 255)); // Light blue
+ s = track->name();
+ break;
+ case Track::WAVE:
+ label->setBackgroundColor(Qt::magenta);
+ s = track->name();
+ break;
+ case Track::AUDIO_INPUT:
+ label->setBackgroundColor(Qt::red);
+ s = track->name();
+ break;
+ case Track::AUDIO_SOFTSYNTH:
+ //label->setBackgroundColor(white);
+ label->setBackgroundColor(QColor(255, 130, 0)); // Med orange
+ s = track->name();
+ break;
+ case Track::MIDI:
+ case Track::DRUM:
+ {
+ // Changed by Tim. p3.3.21
+ /*
+ MidiTrack* mt = (MidiTrack*)track;
+ int port = mt->outPort();
+ int channel = mt->outChannel();
+ //QString s;
+ s.sprintf("%d-%d", port + 1, channel + 1);
+ //label->setText(s);
+ //label->setBackgroundColor(gray);
+ */
+ label->setBackgroundColor(QColor(0, 160, 255)); // Med blue
+ s = track->name();
+ }
+ break;
+ }
+ // Added by Tim. p3.3.9
+ label->setText(s);
+
+ }
+
+//---------------------------------------------------------
+// muteToggled
+//---------------------------------------------------------
+
+void Strip::muteToggled(bool val)
+ {
+ track->setMute(val);
+ song->update(SC_MUTE);
+ }
+
+//---------------------------------------------------------
+// soloToggled
+//---------------------------------------------------------
+
+void Strip::soloToggled(bool val)
+ {
+ audio->msgSetSolo(track, val);
+ song->update(SC_SOLO);
+ }
+
+//---------------------------------------------------------
+// Strip
+// create mixer strip
+//---------------------------------------------------------
+
+Strip::Strip(QWidget* parent, Track* t)
+ : Q3Frame(parent, "Strip", Qt::WDestructiveClose)
+ {
+ iR = 0;
+ oR = 0;
+
+ setBackgroundMode(Qt::PaletteMid);
+ setFrameStyle(Panel | Raised);
+ setLineWidth(2);
+ useSoloIconSet2 = false;
+
+ track = t;
+ meter[0] = 0;
+ meter[1] = 0;
+ setFixedWidth(STRIP_WIDTH);
+ layout = new Q3VBoxLayout(this);
+ layout->setMargin(3);
+
+ //---------------------------------------------
+ // label
+ //---------------------------------------------
+
+ label = new QLabel(this);
+ // Moved by Tim. p3.3.9
+ //setLabelText();
+ //label->setFont(config.fonts[1]);
+
+ //printf("Strip::Strip w:%d frw:%d layoutmarg:%d lx:%d ly:%d lw:%d lh:%d\n", STRIP_WIDTH, frameWidth(), layout->margin(), label->x(), label->y(), label->width(), label->height());
+
+ // Tested: The label's width is 100. It does not become STRIP_WIDTH - 2*layout->margin
+ // until the mixer is shown in MusE::showMixer.
+ // Therefore 'fake' set the size of the label now.
+ // Added by Tim. p3.3.9
+ //label->setGeometry(label->x(), label->y(), STRIP_WIDTH - 2*frameWidth() - 2*layout->margin(), label->height());
+ label->setGeometry(label->x(), label->y(), STRIP_WIDTH - 2*layout->margin(), label->height());
+
+ // Unfortunately for the mixer labels, QLabel doesn't support the BreakAnywhere flag.
+ // Changed by Tim. p3.3.9
+ //label->setAlignment(AlignCenter);
+ //label->setSizePolicy(QSizePolicy(QSizePolicy::Preferred, QSizePolicy::Fixed));
+ label->setAlignment(Qt::AlignCenter | Qt::TextWordWrap);
+ //label->setSizePolicy(QSizePolicy(QSizePolicy::Preferred, QSizePolicy::Minimum));
+ label->setSizePolicy(QSizePolicy(QSizePolicy::Ignored, QSizePolicy::Minimum));
+
+ // Added by Tim. p3.3.9
+ setLabelText();
+ setLabelFont();
+
+ layout->addWidget(label);
+ }
+
+//---------------------------------------------------------
+// Strip
+//---------------------------------------------------------
+
+Strip::~Strip()
+ {
+ }
+
+//---------------------------------------------------------
+// setAutomationType
+//---------------------------------------------------------
+
+void Strip::setAutomationType(int t,int)
+ {
+ track->setAutomationType(AutomationType(t));
+ song->update(SC_AUTOMATION);
+ }
+
diff --git a/muse2/muse/mixer/strip.h b/muse2/muse/mixer/strip.h
new file mode 100644
index 00000000..a28cf5fd
--- /dev/null
+++ b/muse2/muse/mixer/strip.h
@@ -0,0 +1,77 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: strip.h,v 1.3.2.2 2009/11/14 03:37:48 terminator356 Exp $
+//
+// (C) Copyright 2000-2004 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __STRIP_H__
+#define __STRIP_H__
+
+#include <q3frame.h>
+#include <qicon.h>
+//Added by qt3to4:
+#include <Q3VBoxLayout>
+#include <Q3GridLayout>
+#include <QLabel>
+
+#include "globaldefs.h"
+//#include "route.h"
+
+class Track;
+class QLabel;
+class Q3VBoxLayout;
+class Meter;
+class QToolButton;
+class Q3GridLayout;
+class ComboBox;
+
+static const int STRIP_WIDTH = 65;
+
+//---------------------------------------------------------
+// Strip
+//---------------------------------------------------------
+
+class Strip : public Q3Frame {
+ Q_OBJECT
+
+ protected:
+ Track* track;
+ QLabel* label;
+ Q3VBoxLayout* layout;
+ Meter* meter[MAX_CHANNELS];
+ bool useSoloIconSet2;
+
+ QToolButton* record;
+ QToolButton* solo;
+ QToolButton* mute;
+ QToolButton* iR; // Input routing button
+ QToolButton* oR; // Output routing button
+ Q3GridLayout* sliderGrid;
+ ComboBox* autoType;
+ void setLabelText();
+
+ private slots:
+ void recordToggled(bool);
+ void soloToggled(bool);
+ void muteToggled(bool);
+
+ protected slots:
+ virtual void heartBeat();
+ void setAutomationType(int t,int);
+
+ public slots:
+ void resetPeaks();
+ virtual void songChanged(int) = 0;
+
+ public:
+ Strip(QWidget* parent, Track* t);
+ ~Strip();
+ void setRecordFlag(bool flag);
+ Track* getTrack() const { return track; }
+ void setLabelFont();
+ };
+
+#endif
+
diff --git a/muse2/muse/mpevent.cpp b/muse2/muse/mpevent.cpp
new file mode 100644
index 00000000..2b7ce5eb
--- /dev/null
+++ b/muse2/muse/mpevent.cpp
@@ -0,0 +1,160 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: mpevent.cpp,v 1.6.2.2 2009/11/25 09:09:43 terminator356 Exp $
+//
+// (C) Copyright 2002-2004 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include "mpevent.h"
+
+#include "helper.h"
+#include "event.h"
+#include "midictrl.h"
+#include "midiport.h"
+#include "muse/midi.h"
+
+//---------------------------------------------------------
+// MEvent
+//---------------------------------------------------------
+
+MEvent::MEvent(unsigned t, int port, int tpe, const unsigned char* data, int len)
+ {
+ _time = t;
+ _port = port;
+ edata.setData(data, len);
+ _type = tpe;
+ _loopNum = 0;
+ }
+
+MEvent::MEvent(unsigned tick, int port, int channel, const Event& e)
+ {
+ setChannel(channel);
+ setTime(tick);
+ setPort(port);
+ setLoopNum(0);
+ 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 MEvent::dump() const
+ {
+ printf("time:%d port:%d chan:%d ", _time, _port, _channel+1);
+ if (_type == 0x90) { // NoteOn
+ QString s = pitch2string(_a);
+ printf("NoteOn %s(0x%x) %d\n", s.latin1(), _a, _b);
+ }
+ else if (_type == 0xf0) {
+ printf("SysEx len %d 0x%0x ...\n", len(), data()[0]);
+ }
+ else
+ printf("type:0x%02x a=%d b=%d\n", _type, _a, _b);
+ }
+
+//---------------------------------------------------------
+// operator <
+//---------------------------------------------------------
+
+bool MEvent::operator<(const MEvent& e) const
+ {
+ if (time() != e.time())
+ return time() < e.time();
+ if (port() != e.port())
+ return port() < e.port();
+
+ // 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()];
+ }
+
+
+//---------------------------------------------------------
+// put
+// return true on fifo overflow
+//---------------------------------------------------------
+
+bool MidiFifo::put(const MidiPlayEvent& 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
+//---------------------------------------------------------
+
+MidiPlayEvent MidiFifo::get()
+ {
+ MidiPlayEvent event(fifo[rIndex]);
+ rIndex = (rIndex + 1) % MIDI_FIFO_SIZE;
+ // q_atomic_decrement(&size);
+ --size;
+ return event;
+ }
+
+//---------------------------------------------------------
+// peek
+//---------------------------------------------------------
+
+const MidiPlayEvent& 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;
+ }
+
+
diff --git a/muse2/muse/mpevent.h b/muse2/muse/mpevent.h
new file mode 100644
index 00000000..6df7b0c0
--- /dev/null
+++ b/muse2/muse/mpevent.h
@@ -0,0 +1,183 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: mpevent.h,v 1.8.2.5 2009/11/25 09:09:43 terminator356 Exp $
+//
+// (C) Copyright 1999-2002 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __MPEVENT_H__
+#define __MPEVENT_H__
+
+#include <set>
+#include <list>
+#include "evdata.h"
+#include "memory.h"
+
+#define MIDI_FIFO_SIZE 512
+
+class Event;
+class EvData;
+
+//---------------------------------------------------------
+// MEvent
+// baseclass for MidiPlayEvent and MidiRecordEvent
+//---------------------------------------------------------
+
+//---------------------------------------------------------
+// MEvent
+//---------------------------------------------------------
+
+class MEvent {
+ unsigned _time;
+ EvData edata;
+ unsigned char _port, _channel, _type;
+ int _a, _b;
+ int _loopNum; // The loop count when the note was recorded.
+
+ public:
+ MEvent() { _loopNum = 0; }
+ MEvent(unsigned tm, int p, int c, int t, int a, int b)
+ : _time(tm), _port(p), _channel(c & 0xf), _type(t), _a(a), _b(b) { _loopNum = 0; }
+ MEvent(unsigned t, int p, int type, const unsigned char* data, int len);
+ MEvent(unsigned t, int p, int tpe, EvData d) : _time(t), edata(d), _port(p), _type(tpe) { _loopNum = 0; }
+ MEvent(unsigned t, int port, int channel, const Event& e);
+
+ ~MEvent() {}
+
+ MEvent& operator=(const MEvent& ed) {
+ _time = ed._time;
+ edata = ed.edata;
+ _port = ed._port;
+ _channel = ed._channel;
+ _type = ed._type;
+ _a = ed._a;
+ _b = ed._b;
+ _loopNum = ed._loopNum;
+ return *this;
+ }
+
+ int port() const { return _port; }
+ 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; }
+ int loopNum() const { return _loopNum; }
+
+ void setPort(int val) { _port = val; }
+ 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; }
+ void setLoopNum(int n) { _loopNum = n; }
+
+ 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 MEvent&) const;
+ };
+
+//---------------------------------------------------------
+// MidiRecordEvent
+// allocated and deleted in midiseq thread context
+//---------------------------------------------------------
+
+class MidiPlayEvent;
+
+class MidiRecordEvent : public MEvent {
+ public:
+ MidiRecordEvent() : MEvent() {}
+ MidiRecordEvent(const MEvent& e) : MEvent(e) {}
+ MidiRecordEvent(unsigned tm, int p, int c, int t, int a, int b)
+ : MEvent(tm, p, c, t, a, b) {}
+ MidiRecordEvent(unsigned t, int p, int tpe, const unsigned char* data, int len)
+ : MEvent(t, p, tpe, data, len) {}
+ MidiRecordEvent(unsigned t, int p, int type, EvData data)
+ : MEvent(t, p, type, data) {}
+ ~MidiRecordEvent() {}
+ };
+
+//---------------------------------------------------------
+// MidiPlayEvent
+// allocated and deleted in audio thread context
+//---------------------------------------------------------
+
+class MidiPlayEvent : public MEvent {
+ public:
+ MidiPlayEvent() : MEvent() {}
+ MidiPlayEvent(const MEvent& e) : MEvent(e) {}
+ MidiPlayEvent(unsigned tm, int p, int c, int t, int a, int b)
+ : MEvent(tm, p, c, t, a, b) {}
+ MidiPlayEvent(unsigned t, int p, int type, const unsigned char* data, int len)
+ : MEvent(t, p, type, data, len) {}
+ MidiPlayEvent(unsigned t, int p, int type, EvData data)
+ : MEvent(t, p, type, data) {}
+ MidiPlayEvent(unsigned t, int port, int channel, const Event& e)
+ : MEvent(t, port, channel, e) {}
+ ~MidiPlayEvent() {}
+ };
+
+//---------------------------------------------------------
+// MPEventList
+// memory allocation in audio thread domain
+//---------------------------------------------------------
+
+typedef std::multiset<MidiPlayEvent, std::less<MidiPlayEvent>, audioRTalloc<MidiPlayEvent> > MPEL;
+
+struct MPEventList : public MPEL {
+ void add(const MidiPlayEvent& ev) { MPEL::insert(ev); }
+ };
+
+typedef MPEventList::iterator iMPEvent;
+typedef MPEventList::const_iterator ciMPEvent;
+
+/*
+//---------------------------------------------------------
+// MREventList
+// memory allocation in midi thread domain
+//---------------------------------------------------------
+
+// Changed by Tim. p3.3.8
+
+// audioRTalloc? Surely this must have been a mistake?
+//typedef std::list<MidiRecordEvent, audioRTalloc<MidiRecordEvent> > MREL;
+typedef std::list<MidiRecordEvent, midiRTalloc<MidiRecordEvent> > MREL;
+
+struct MREventList : public MREL {
+ void add(const MidiRecordEvent& ev) { MREL::push_back(ev); }
+ };
+
+typedef MREventList::iterator iMREvent;
+typedef MREventList::const_iterator ciMREvent;
+*/
+
+//---------------------------------------------------------
+// MidiFifo
+//---------------------------------------------------------
+
+class MidiFifo {
+ MidiPlayEvent fifo[MIDI_FIFO_SIZE];
+ volatile int size;
+ int wIndex;
+ int rIndex;
+
+ public:
+ MidiFifo() { clear(); }
+ bool put(const MidiPlayEvent& event); // returns true on fifo overflow
+ MidiPlayEvent get();
+ const MidiPlayEvent& 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; }
+ };
+
+#endif
+
diff --git a/muse2/muse/mplugins/.cvsignore b/muse2/muse/mplugins/.cvsignore
new file mode 100644
index 00000000..66e962c6
--- /dev/null
+++ b/muse2/muse/mplugins/.cvsignore
@@ -0,0 +1,2 @@
+mrconfigbase.h
+midifilter.h
diff --git a/muse2/muse/mplugins/Makefile.am b/muse2/muse/mplugins/Makefile.am
new file mode 100644
index 00000000..ef00f245
--- /dev/null
+++ b/muse2/muse/mplugins/Makefile.am
@@ -0,0 +1,26 @@
+include $(top_srcdir)/common.am
+
+noinst_LIBRARIES = libmplugins.a
+
+if PCH
+AM_CXXFLAGS += -include $(top_srcdir)/all.h
+endif
+
+dist_libmplugins_a_SOURCES = \
+ mitplugin.cpp mitplugin.h \
+ mittranspose.cpp mittranspose.h \
+ midiitransform.cpp midiitransform.h \
+ midifilterimpl.cpp midifilterimpl.h \
+ mrconfig.cpp mrconfig.h \
+ rhythm.cpp rhythm.h \
+ random.cpp random.h \
+ midifilter.ui \
+ mrconfigbase.ui \
+ rhythmbase.ui
+
+nodist_libmplugins_a_SOURCES = \
+ moc_mittranspose.cpp \
+ moc_midiitransform.cpp \
+ moc_midifilterimpl.cpp \
+ moc_mrconfig.cpp \
+ moc_rhythm.cpp
diff --git a/muse2/muse/mplugins/Makefile.in b/muse2/muse/mplugins/Makefile.in
new file mode 100644
index 00000000..47f131bb
--- /dev/null
+++ b/muse2/muse/mplugins/Makefile.in
@@ -0,0 +1,624 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
+ $(top_srcdir)/common.am
+@PCH_TRUE@am__append_1 = -include $(top_srcdir)/all.h
+subdir = muse/mplugins
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal-include.m4 \
+ $(top_srcdir)/m4/alsa.m4 $(top_srcdir)/m4/docbook.m4 \
+ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
+ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
+ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+LIBRARIES = $(noinst_LIBRARIES)
+ARFLAGS = cru
+libmplugins_a_AR = $(AR) $(ARFLAGS)
+libmplugins_a_LIBADD =
+dist_libmplugins_a_OBJECTS = mitplugin.$(OBJEXT) \
+ mittranspose.$(OBJEXT) midiitransform.$(OBJEXT) \
+ midifilterimpl.$(OBJEXT) mrconfig.$(OBJEXT) rhythm.$(OBJEXT) \
+ random.$(OBJEXT) midifilter.$(OBJEXT) mrconfigbase.$(OBJEXT) \
+ rhythmbase.$(OBJEXT)
+nodist_libmplugins_a_OBJECTS = moc_mittranspose.$(OBJEXT) \
+ moc_midiitransform.$(OBJEXT) moc_midifilterimpl.$(OBJEXT) \
+ moc_mrconfig.$(OBJEXT) moc_rhythm.$(OBJEXT)
+libmplugins_a_OBJECTS = $(dist_libmplugins_a_OBJECTS) \
+ $(nodist_libmplugins_a_OBJECTS)
+DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
+depcomp = $(SHELL) $(top_srcdir)/depcomp
+am__depfiles_maybe = depfiles
+am__mv = mv -f
+CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
+LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
+CXXLD = $(CXX)
+CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \
+ $(LDFLAGS) -o $@
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
+ $(LDFLAGS) -o $@
+SOURCES = $(dist_libmplugins_a_SOURCES) \
+ $(nodist_libmplugins_a_SOURCES)
+DIST_SOURCES = $(dist_libmplugins_a_SOURCES)
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ALSA_CFLAGS = @ALSA_CFLAGS@
+ALSA_LIBS = @ALSA_LIBS@
+AMTAR = @AMTAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DOCBOOKSTYLE = @DOCBOOKSTYLE@
+DOCBOOKTARGETS = @DOCBOOKTARGETS@
+DOT = @DOT@
+DOTPATH = @DOTPATH@
+DOXYGEN = @DOXYGEN@
+DOXYGEN_TREEVIEW = @DOXYGEN_TREEVIEW@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+FLUIDSYNTHDIRS = @FLUIDSYNTHDIRS@
+FST_CFLAGS = @FST_CFLAGS@
+FST_LIBS = @FST_LIBS@
+Fluidsynth_CFLAGS = @Fluidsynth_CFLAGS@
+Fluidsynth_LIBS = @Fluidsynth_LIBS@
+GIVERTCAP = @GIVERTCAP@
+GREP = @GREP@
+HAVEDOT = @HAVEDOT@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JACK_CFLAGS = @JACK_CFLAGS@
+JACK_LIBS = @JACK_LIBS@
+JADE = @JADE@
+LASH_CFLAGS = @LASH_CFLAGS@
+LASH_LIBS = @LASH_LIBS@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LO_CFLAGS = @LO_CFLAGS@
+LO_LIBS = @LO_LIBS@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+MUSECXXFLAGS = @MUSECXXFLAGS@
+NM = @NM@
+NMEDIT = @NMEDIT@
+NSGMLS = @NSGMLS@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PCH = @PCH@
+PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+PYTHON = @PYTHON@
+PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
+PYTHON_INCLUDES = @PYTHON_INCLUDES@
+PYTHON_LIB = @PYTHON_LIB@
+PYTHON_PLATFORM = @PYTHON_PLATFORM@
+PYTHON_PREFIX = @PYTHON_PREFIX@
+PYTHON_VERSION = @PYTHON_VERSION@
+QTDIR_BIN = @QTDIR_BIN@
+QTDIR_INC = @QTDIR_INC@
+QT_LIBS = @QT_LIBS@
+RANLIB = @RANLIB@
+SAMPLERATE_CFLAGS = @SAMPLERATE_CFLAGS@
+SAMPLERATE_LIBS = @SAMPLERATE_LIBS@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SNDFILE_CFLAGS = @SNDFILE_CFLAGS@
+SNDFILE_LIBS = @SNDFILE_LIBS@
+STRIP = @STRIP@
+SUIDBUILD = @SUIDBUILD@
+SUIDINSTALL = @SUIDINSTALL@
+USE_SSE = @USE_SSE@
+UUID_CFLAGS = @UUID_CFLAGS@
+UUID_LIBS = @UUID_LIBS@
+VERSION = @VERSION@
+XMKMF = @XMKMF@
+X_CFLAGS = @X_CFLAGS@
+X_EXTRA_LIBS = @X_EXTRA_LIBS@
+X_LIBS = @X_LIBS@
+X_PRE_LIBS = @X_PRE_LIBS@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+have_docbook = @have_docbook@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+lt_ECHO = @lt_ECHO@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+pkgpyexecdir = @pkgpyexecdir@
+pkgpythondir = @pkgpythondir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+pyexecdir = @pyexecdir@
+pythondir = @pythondir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+synth_fluid = @synth_fluid@
+synth_fluidsynth = @synth_fluidsynth@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+AM_CXXFLAGS = $(MUSECXXFLAGS) -I.. -I$(top_srcdir)/synti \
+ -I$(top_srcdir)/muse/widgets -DQT_SHARED -DQT_THREAD_SUPPORT \
+ -DQT_PLUGIN $(QTDIR_INC) -DQT3_SUPPORT $(am__append_1)
+AM_CPPFLAGS =
+MOC = $(QTDIR_BIN)/moc
+#UIC = $(QTDIR_BIN)/uic3
+UIC = /usr/bin/uic3
+UIFILES = $(wildcard *.ui)
+MOCFILES = $(shell for h in $(filter %.h,$(SOURCES)); do \
+ if grep -q Q_OBJECT $$h; then \
+ echo $$h | sed "s/\(.*\)\.h/moc_\1.cpp/"; \
+ fi; \
+ done)
+
+BUILT_SOURCES = $(MOCFILES) $(UIFILES:%.ui=%.h)
+MOSTLYCLEANFILES = $(MOCFILES) $(UIFILES:%.ui=%.h)
+SUFFIXES = .ui .h.gch
+noinst_LIBRARIES = libmplugins.a
+dist_libmplugins_a_SOURCES = \
+ mitplugin.cpp mitplugin.h \
+ mittranspose.cpp mittranspose.h \
+ midiitransform.cpp midiitransform.h \
+ midifilterimpl.cpp midifilterimpl.h \
+ mrconfig.cpp mrconfig.h \
+ rhythm.cpp rhythm.h \
+ random.cpp random.h \
+ midifilter.ui \
+ mrconfigbase.ui \
+ rhythmbase.ui
+
+nodist_libmplugins_a_SOURCES = \
+ moc_mittranspose.cpp \
+ moc_midiitransform.cpp \
+ moc_midifilterimpl.cpp \
+ moc_mrconfig.cpp \
+ moc_rhythm.cpp
+
+all: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) all-am
+
+.SUFFIXES:
+.SUFFIXES: .ui .h.gch .cpp .lo .o .obj
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/common.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu muse/mplugins/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu muse/mplugins/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+clean-noinstLIBRARIES:
+ -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
+libmplugins.a: $(libmplugins_a_OBJECTS) $(libmplugins_a_DEPENDENCIES)
+ -rm -f libmplugins.a
+ $(libmplugins_a_AR) libmplugins.a $(libmplugins_a_OBJECTS) $(libmplugins_a_LIBADD)
+ $(RANLIB) libmplugins.a
+
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT)
+
+distclean-compile:
+ -rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/midifilterimpl.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/midiitransform.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mitplugin.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mittranspose.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/moc_midifilterimpl.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/moc_midiitransform.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/moc_mittranspose.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/moc_mrconfig.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/moc_rhythm.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mrconfig.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/random.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rhythm.Po@am__quote@
+
+.cpp.o:
+@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $<
+
+.cpp.obj:
+@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+
+.cpp.lo:
+@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $<
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ mkid -fID $$unique
+tags: TAGS
+
+TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ set x; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: CTAGS
+CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) check-am
+all-am: Makefile $(LIBRARIES)
+installdirs:
+install: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+ -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES)
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+ -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
+clean: clean-am
+
+clean-am: clean-generic clean-libtool clean-noinstLIBRARIES \
+ mostlyclean-am
+
+distclean: distclean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+ distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+ mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: all check install install-am install-strip
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
+ clean-libtool clean-noinstLIBRARIES ctags distclean \
+ distclean-compile distclean-generic distclean-libtool \
+ distclean-tags distdir dvi dvi-am html html-am info info-am \
+ install install-am install-data install-data-am install-dvi \
+ install-dvi-am install-exec install-exec-am install-html \
+ install-html-am install-info install-info-am install-man \
+ install-pdf install-pdf-am install-ps install-ps-am \
+ install-strip installcheck installcheck-am installdirs \
+ maintainer-clean maintainer-clean-generic mostlyclean \
+ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
+ pdf pdf-am ps ps-am tags uninstall uninstall-am
+
+
+de:
+ @for base in $(MOCFILES); do echo -e "\t$${base}.cpp $${base}.h \\"; done
+
+nde:
+ @for base in $(MOCFILES); do echo -e "\tmoc_$${base}.cpp \\"; done
+
+.ui.o: %.h
+ $(UIC) -L $(top_srcdir)/muse/widgets -o $*.cpp -impl $*.h $*.ui
+ $(MOC) $*.h >> $*.cpp
+ $(CXXCOMPILE) -c $*.cpp -o $*.o
+ $(RM) $*.cpp moc_$*.cpp moc_$*.o
+
+.ui.lo: %.h
+ $(UIC) -L $(top_srcdir)/muse/widgets -o $*.cpp -impl $*.h $*.ui
+ $(MOC) $*.h >> $*.cpp
+ $(LTCXXCOMPILE) -c $*.cpp -o $*.lo
+ $(RM) $*.cpp moc_$*.cpp moc_$*.lo moc_$*.o
+
+moc_%.cpp: %.h
+ $(MOC) $< -o $@
+
+%.h: %.ui
+ $(UIC) -o $@ $<
+# $(UIC) -L $(top_srcdir)/muse/widgets -o $@ $<
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/muse2/muse/mplugins/midifilter.ui b/muse2/muse/mplugins/midifilter.ui
new file mode 100644
index 00000000..412e735d
--- /dev/null
+++ b/muse2/muse/mplugins/midifilter.ui
@@ -0,0 +1,879 @@
+<!DOCTYPE UI><UI version="3.1" stdsetdef="1">
+<class>MidiFilterConfigBase</class>
+<widget class="QDialog">
+ <property name="name">
+ <cstring>MidiFilterConfigBase</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>348</width>
+ <height>431</height>
+ </rect>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>3</hsizetype>
+ <vsizetype>5</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="caption">
+ <string>MusE: Midi Input Filter</string>
+ </property>
+ <grid>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>11</number>
+ </property>
+ <property name="spacing">
+ <number>6</number>
+ </property>
+ <widget class="QGroupBox" row="0" column="0">
+ <property name="name">
+ <cstring>GroupBoxx</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>3</hsizetype>
+ <vsizetype>5</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="title">
+ <string>Record Filter</string>
+ </property>
+ <property name="layoutSpacing" stdset="0">
+ </property>
+ <vbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>11</number>
+ </property>
+ <property name="spacing">
+ <number>6</number>
+ </property>
+ <widget class="QCheckBox">
+ <property name="name">
+ <cstring>rf1</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>7</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>Note On</string>
+ </property>
+ </widget>
+ <widget class="QCheckBox">
+ <property name="name">
+ <cstring>rf2</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>7</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>Poly Pressure</string>
+ </property>
+ </widget>
+ <widget class="QCheckBox">
+ <property name="name">
+ <cstring>rf3</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>7</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>Controller</string>
+ </property>
+ </widget>
+ <widget class="QCheckBox">
+ <property name="name">
+ <cstring>rf4</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>7</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>Program Change</string>
+ </property>
+ </widget>
+ <widget class="QCheckBox">
+ <property name="name">
+ <cstring>rf5</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>7</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>After Touch</string>
+ </property>
+ </widget>
+ <widget class="QCheckBox">
+ <property name="name">
+ <cstring>rf6</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>7</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>Pitch Bend</string>
+ </property>
+ </widget>
+ <widget class="QCheckBox">
+ <property name="name">
+ <cstring>rf7</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>7</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>Sysex</string>
+ </property>
+ </widget>
+ </vbox>
+ </widget>
+ <widget class="QGroupBox" row="0" column="1">
+ <property name="name">
+ <cstring>GroupBox2</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>7</hsizetype>
+ <vsizetype>5</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="title">
+ <string>Thru Filter</string>
+ </property>
+ <vbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>11</number>
+ </property>
+ <property name="spacing">
+ <number>6</number>
+ </property>
+ <widget class="QCheckBox">
+ <property name="name">
+ <cstring>tf1</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>5</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>Note On</string>
+ </property>
+ </widget>
+ <widget class="QCheckBox">
+ <property name="name">
+ <cstring>tf2</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>7</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>Poly Pressure</string>
+ </property>
+ </widget>
+ <widget class="QCheckBox">
+ <property name="name">
+ <cstring>tf3</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>7</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>Controller</string>
+ </property>
+ </widget>
+ <widget class="QCheckBox">
+ <property name="name">
+ <cstring>tf4</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>1</hsizetype>
+ <vsizetype>5</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>Program Change</string>
+ </property>
+ </widget>
+ <widget class="QCheckBox">
+ <property name="name">
+ <cstring>tf5</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>7</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>After Touch</string>
+ </property>
+ </widget>
+ <widget class="QCheckBox">
+ <property name="name">
+ <cstring>tf6</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>7</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>Pitch Bend</string>
+ </property>
+ </widget>
+ <widget class="QCheckBox">
+ <property name="name">
+ <cstring>tf7</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>7</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>Sysex</string>
+ </property>
+ </widget>
+ </vbox>
+ </widget>
+ <widget class="QGroupBox" row="1" column="1">
+ <property name="name">
+ <cstring>GroupBox4</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>7</hsizetype>
+ <vsizetype>7</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="title">
+ <string>Controller Filter</string>
+ </property>
+ <vbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>11</number>
+ </property>
+ <property name="spacing">
+ <number>6</number>
+ </property>
+ <widget class="CtrlComboBox">
+ <property name="name">
+ <cstring>cb1</cstring>
+ </property>
+ </widget>
+ <widget class="CtrlComboBox">
+ <property name="name">
+ <cstring>cb2</cstring>
+ </property>
+ </widget>
+ <widget class="CtrlComboBox">
+ <property name="name">
+ <cstring>cb3</cstring>
+ </property>
+ </widget>
+ <widget class="CtrlComboBox">
+ <property name="name">
+ <cstring>cb4</cstring>
+ </property>
+ </widget>
+ </vbox>
+ </widget>
+ <widget class="QButtonGroup" row="1" column="0">
+ <property name="name">
+ <cstring>ButtonGroup1</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>7</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="title">
+ <string>Channel Filter</string>
+ </property>
+ <property name="layoutSpacing" stdset="0">
+ </property>
+ <grid>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>11</number>
+ </property>
+ <property name="spacing">
+ <number>3</number>
+ </property>
+ <widget class="QPushButton" row="3" column="1">
+ <property name="name">
+ <cstring>cf14</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>0</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="maximumSize">
+ <size>
+ <width>30</width>
+ <height>32767</height>
+ </size>
+ </property>
+ <property name="text">
+ <string>14</string>
+ </property>
+ <property name="toggleButton">
+ <bool>true</bool>
+ </property>
+ </widget>
+ <widget class="QPushButton" row="2" column="1">
+ <property name="name">
+ <cstring>cf10</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="maximumSize">
+ <size>
+ <width>30</width>
+ <height>32767</height>
+ </size>
+ </property>
+ <property name="text">
+ <string>10</string>
+ </property>
+ <property name="toggleButton">
+ <bool>true</bool>
+ </property>
+ </widget>
+ <widget class="QPushButton" row="1" column="1">
+ <property name="name">
+ <cstring>cf6</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>5</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="maximumSize">
+ <size>
+ <width>30</width>
+ <height>32767</height>
+ </size>
+ </property>
+ <property name="text">
+ <string>6</string>
+ </property>
+ <property name="toggleButton">
+ <bool>true</bool>
+ </property>
+ </widget>
+ <widget class="QPushButton" row="2" column="3">
+ <property name="name">
+ <cstring>cf12</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="maximumSize">
+ <size>
+ <width>30</width>
+ <height>32767</height>
+ </size>
+ </property>
+ <property name="text">
+ <string>12</string>
+ </property>
+ <property name="toggleButton">
+ <bool>true</bool>
+ </property>
+ </widget>
+ <widget class="QPushButton" row="0" column="3">
+ <property name="name">
+ <cstring>cf4</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>25</width>
+ <height>0</height>
+ </size>
+ </property>
+ <property name="maximumSize">
+ <size>
+ <width>30</width>
+ <height>32767</height>
+ </size>
+ </property>
+ <property name="text">
+ <string>4</string>
+ </property>
+ <property name="toggleButton">
+ <bool>true</bool>
+ </property>
+ </widget>
+ <widget class="QPushButton" row="0" column="1">
+ <property name="name">
+ <cstring>cf2</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>25</width>
+ <height>0</height>
+ </size>
+ </property>
+ <property name="maximumSize">
+ <size>
+ <width>30</width>
+ <height>32767</height>
+ </size>
+ </property>
+ <property name="text">
+ <string>2</string>
+ </property>
+ <property name="toggleButton">
+ <bool>true</bool>
+ </property>
+ </widget>
+ <widget class="QPushButton" row="2" column="0">
+ <property name="name">
+ <cstring>cf9</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>0</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="maximumSize">
+ <size>
+ <width>30</width>
+ <height>32767</height>
+ </size>
+ </property>
+ <property name="text">
+ <string>9</string>
+ </property>
+ <property name="toggleButton">
+ <bool>true</bool>
+ </property>
+ </widget>
+ <widget class="QPushButton" row="1" column="3">
+ <property name="name">
+ <cstring>cf8</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>5</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="maximumSize">
+ <size>
+ <width>30</width>
+ <height>32767</height>
+ </size>
+ </property>
+ <property name="text">
+ <string>8</string>
+ </property>
+ <property name="toggleButton">
+ <bool>true</bool>
+ </property>
+ </widget>
+ <widget class="QPushButton" row="0" column="2">
+ <property name="name">
+ <cstring>cf3</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>25</width>
+ <height>0</height>
+ </size>
+ </property>
+ <property name="maximumSize">
+ <size>
+ <width>30</width>
+ <height>32767</height>
+ </size>
+ </property>
+ <property name="text">
+ <string>3</string>
+ </property>
+ <property name="toggleButton">
+ <bool>true</bool>
+ </property>
+ </widget>
+ <widget class="QPushButton" row="3" column="0">
+ <property name="name">
+ <cstring>cf13</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>0</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="maximumSize">
+ <size>
+ <width>30</width>
+ <height>32767</height>
+ </size>
+ </property>
+ <property name="text">
+ <string>13</string>
+ </property>
+ <property name="toggleButton">
+ <bool>true</bool>
+ </property>
+ </widget>
+ <widget class="QPushButton" row="3" column="2">
+ <property name="name">
+ <cstring>cf15</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>0</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="maximumSize">
+ <size>
+ <width>30</width>
+ <height>32767</height>
+ </size>
+ </property>
+ <property name="text">
+ <string>15</string>
+ </property>
+ <property name="toggleButton">
+ <bool>true</bool>
+ </property>
+ </widget>
+ <widget class="QPushButton" row="3" column="3">
+ <property name="name">
+ <cstring>cf16</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>0</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="maximumSize">
+ <size>
+ <width>30</width>
+ <height>32767</height>
+ </size>
+ </property>
+ <property name="text">
+ <string>16</string>
+ </property>
+ <property name="toggleButton">
+ <bool>true</bool>
+ </property>
+ </widget>
+ <widget class="QPushButton" row="1" column="2">
+ <property name="name">
+ <cstring>cf7</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>5</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="maximumSize">
+ <size>
+ <width>30</width>
+ <height>32767</height>
+ </size>
+ </property>
+ <property name="text">
+ <string>7</string>
+ </property>
+ <property name="toggleButton">
+ <bool>true</bool>
+ </property>
+ </widget>
+ <widget class="QPushButton" row="2" column="2">
+ <property name="name">
+ <cstring>cf11</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="maximumSize">
+ <size>
+ <width>30</width>
+ <height>32767</height>
+ </size>
+ </property>
+ <property name="text">
+ <string>11</string>
+ </property>
+ <property name="toggleButton">
+ <bool>true</bool>
+ </property>
+ </widget>
+ <widget class="QPushButton" row="1" column="0">
+ <property name="name">
+ <cstring>cf5</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>0</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="maximumSize">
+ <size>
+ <width>30</width>
+ <height>32767</height>
+ </size>
+ </property>
+ <property name="text">
+ <string>5</string>
+ </property>
+ <property name="toggleButton">
+ <bool>true</bool>
+ </property>
+ </widget>
+ <widget class="QPushButton" row="0" column="0">
+ <property name="name">
+ <cstring>cf1</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>0</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>25</width>
+ <height>0</height>
+ </size>
+ </property>
+ <property name="maximumSize">
+ <size>
+ <width>30</width>
+ <height>32767</height>
+ </size>
+ </property>
+ <property name="text">
+ <string>1</string>
+ </property>
+ <property name="toggleButton">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </grid>
+ </widget>
+ </grid>
+</widget>
+<customwidgets>
+ <customwidget>
+ <class>CtrlComboBox</class>
+ <header location="global">ctrlcombo.h</header>
+ <sizehint>
+ <width>50</width>
+ <height>20</height>
+ </sizehint>
+ <container>0</container>
+ <sizepolicy>
+ <hordata>5</hordata>
+ <verdata>5</verdata>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ <pixmap>image0</pixmap>
+ <signal>activated(int index)</signal>
+ <signal>activated(const QString&amp;)</signal>
+ </customwidget>
+</customwidgets>
+<images>
+ <image name="image0">
+ <data format="XPM.GZ" length="646">789c6dd2c10ac2300c00d07bbf2234b7229d1be245fc04c5a3201e4615f430059d0711ff5ddb2e6bb236ec90eed134cb5a19d8ef36602af5ecdbfeeac05dda0798d3abebde87e3faa374d3807fa0d633a52d38d8de6f679fe33fc776e196f53cd010188256a3600a292882096246517815ca99884606e18044a3a40d91824820924265a7923a2e8bcd05f33db1173e002913175f2a6be6d3294871a2d95fa00e8a94ee017b69d339d90df1e77c57ea072ede6758</data>
+ </image>
+</images>
+<tabstops>
+ <tabstop>rf1</tabstop>
+ <tabstop>rf2</tabstop>
+ <tabstop>rf3</tabstop>
+ <tabstop>rf4</tabstop>
+ <tabstop>rf5</tabstop>
+ <tabstop>rf6</tabstop>
+ <tabstop>rf7</tabstop>
+ <tabstop>tf1</tabstop>
+ <tabstop>tf2</tabstop>
+ <tabstop>tf3</tabstop>
+ <tabstop>tf4</tabstop>
+ <tabstop>tf5</tabstop>
+ <tabstop>tf6</tabstop>
+ <tabstop>tf7</tabstop>
+ <tabstop>cf1</tabstop>
+ <tabstop>cf2</tabstop>
+ <tabstop>cf3</tabstop>
+ <tabstop>cf4</tabstop>
+ <tabstop>cf5</tabstop>
+ <tabstop>cf6</tabstop>
+ <tabstop>cf7</tabstop>
+ <tabstop>cf8</tabstop>
+ <tabstop>cf9</tabstop>
+ <tabstop>cf10</tabstop>
+ <tabstop>cf11</tabstop>
+ <tabstop>cf12</tabstop>
+ <tabstop>cf13</tabstop>
+ <tabstop>cf14</tabstop>
+ <tabstop>cf15</tabstop>
+ <tabstop>cf16</tabstop>
+</tabstops>
+<layoutdefaults spacing="6" margin="11"/>
+<includehints>
+ <includehint>ctrlcombo.h</includehint>
+</includehints>
+</UI>
diff --git a/muse2/muse/mplugins/midifilterimpl.cpp b/muse2/muse/mplugins/midifilterimpl.cpp
new file mode 100644
index 00000000..56d5caf5
--- /dev/null
+++ b/muse2/muse/mplugins/midifilterimpl.cpp
@@ -0,0 +1,131 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: midifilterimpl.cpp,v 1.1.1.1 2003/10/27 18:52:49 wschweer Exp $
+//
+// (C) Copyright 1999/2000 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include "midifilterimpl.h"
+#include "ctrlcombo.h"
+
+#include <qpushbutton.h>
+#include <qcheckbox.h>
+//Added by qt3to4:
+#include <QCloseEvent>
+
+//---------------------------------------------------------
+// setCtrl
+//---------------------------------------------------------
+
+void MidiFilterConfig::setCtrl1(int n)
+ {
+ midiFilterCtrl1 = n-1;
+ }
+void MidiFilterConfig::setCtrl2(int n)
+ {
+ midiFilterCtrl2 = n-1;
+ }
+void MidiFilterConfig::setCtrl3(int n)
+ {
+ midiFilterCtrl3 = n-1;
+ }
+void MidiFilterConfig::setCtrl4(int n)
+ {
+ midiFilterCtrl4 = n-1;
+ }
+
+
+//---------------------------------------------------------
+// MidiFilterConfig
+//---------------------------------------------------------
+
+MidiFilterConfig::MidiFilterConfig(QWidget* parent, const char* name)
+ : MidiFilterConfigBase(parent, name)
+ {
+ cb1->setCurrentItem(midiFilterCtrl1);
+ cb2->setCurrentItem(midiFilterCtrl2);
+ cb3->setCurrentItem(midiFilterCtrl3);
+ cb4->setCurrentItem(midiFilterCtrl4);
+
+ rf1->setChecked(midiRecordType & 1);
+ rf2->setChecked(midiRecordType & 2);
+ rf3->setChecked(midiRecordType & 4);
+ rf4->setChecked(midiRecordType & 8);
+ rf5->setChecked(midiRecordType & 16);
+ rf6->setChecked(midiRecordType & 32);
+ rf7->setChecked(midiRecordType & 64);
+ connect(rf1, SIGNAL(toggled(bool)), SLOT(recordChanged1(bool)));
+ connect(rf2, SIGNAL(toggled(bool)), SLOT(recordChanged2(bool)));
+ connect(rf3, SIGNAL(toggled(bool)), SLOT(recordChanged3(bool)));
+ connect(rf4, SIGNAL(toggled(bool)), SLOT(recordChanged4(bool)));
+ connect(rf5, SIGNAL(toggled(bool)), SLOT(recordChanged5(bool)));
+ connect(rf6, SIGNAL(toggled(bool)), SLOT(recordChanged6(bool)));
+ connect(rf7, SIGNAL(toggled(bool)), SLOT(recordChanged7(bool)));
+
+ tf1->setChecked(midiThruType & 1);
+ tf2->setChecked(midiThruType & 2);
+ tf3->setChecked(midiThruType & 4);
+ tf4->setChecked(midiThruType & 8);
+ tf5->setChecked(midiThruType & 16);
+ tf6->setChecked(midiThruType & 32);
+ tf7->setChecked(midiThruType & 64);
+ connect(tf1, SIGNAL(toggled(bool)), SLOT(thruChanged1(bool)));
+ connect(tf2, SIGNAL(toggled(bool)), SLOT(thruChanged2(bool)));
+ connect(tf3, SIGNAL(toggled(bool)), SLOT(thruChanged3(bool)));
+ connect(tf4, SIGNAL(toggled(bool)), SLOT(thruChanged4(bool)));
+ connect(tf5, SIGNAL(toggled(bool)), SLOT(thruChanged5(bool)));
+ connect(tf6, SIGNAL(toggled(bool)), SLOT(thruChanged6(bool)));
+ connect(tf7, SIGNAL(toggled(bool)), SLOT(thruChanged7(bool)));
+
+ cf1->setOn(midiInputChannel & 1);
+ cf2->setOn(midiInputChannel & 2);
+ cf3->setOn(midiInputChannel & 4);
+ cf4->setOn(midiInputChannel & 8);
+ cf5->setOn(midiInputChannel & 0x10);
+ cf6->setOn(midiInputChannel & 0x20);
+ cf7->setOn(midiInputChannel & 0x40);
+ cf8->setOn(midiInputChannel & 0x80);
+ cf9->setOn(midiInputChannel & 0x100);
+ cf10->setOn(midiInputChannel & 0x200);
+ cf11->setOn(midiInputChannel & 0x400);
+ cf12->setOn(midiInputChannel & 0x800);
+ cf13->setOn(midiInputChannel & 0x1000);
+ cf14->setOn(midiInputChannel & 0x2000);
+ cf15->setOn(midiInputChannel & 0x4000);
+ cf16->setOn(midiInputChannel & 0x8000);
+
+ connect(cb1, SIGNAL(activated(int)), SLOT(setCtrl1(int)));
+ connect(cb2, SIGNAL(activated(int)), SLOT(setCtrl2(int)));
+ connect(cb3, SIGNAL(activated(int)), SLOT(setCtrl3(int)));
+ connect(cb4, SIGNAL(activated(int)), SLOT(setCtrl4(int)));
+
+ connect(cf1, SIGNAL(toggled(bool)), SLOT(channelChanged1(bool)));
+ connect(cf2, SIGNAL(toggled(bool)), SLOT(channelChanged2(bool)));
+ connect(cf3, SIGNAL(toggled(bool)), SLOT(channelChanged3(bool)));
+ connect(cf4, SIGNAL(toggled(bool)), SLOT(channelChanged4(bool)));
+ connect(cf5, SIGNAL(toggled(bool)), SLOT(channelChanged5(bool)));
+ connect(cf6, SIGNAL(toggled(bool)), SLOT(channelChanged6(bool)));
+ connect(cf7, SIGNAL(toggled(bool)), SLOT(channelChanged7(bool)));
+ connect(cf8, SIGNAL(toggled(bool)), SLOT(channelChanged8(bool)));
+ connect(cf9, SIGNAL(toggled(bool)), SLOT(channelChanged9(bool)));
+ connect(cf10, SIGNAL(toggled(bool)), SLOT(channelChanged10(bool)));
+ connect(cf11, SIGNAL(toggled(bool)), SLOT(channelChanged11(bool)));
+ connect(cf12, SIGNAL(toggled(bool)), SLOT(channelChanged12(bool)));
+ connect(cf13, SIGNAL(toggled(bool)), SLOT(channelChanged13(bool)));
+ connect(cf14, SIGNAL(toggled(bool)), SLOT(channelChanged14(bool)));
+ connect(cf15, SIGNAL(toggled(bool)), SLOT(channelChanged15(bool)));
+ connect(cf16, SIGNAL(toggled(bool)), SLOT(channelChanged16(bool)));
+ }
+
+//---------------------------------------------------------
+// closeEvent
+//---------------------------------------------------------
+
+void MidiFilterConfig::closeEvent(QCloseEvent* ev)
+ {
+ emit hideWindow();
+ QWidget::closeEvent(ev);
+ }
+
+
diff --git a/muse2/muse/mplugins/midifilterimpl.h b/muse2/muse/mplugins/midifilterimpl.h
new file mode 100644
index 00000000..4ab722c1
--- /dev/null
+++ b/muse2/muse/mplugins/midifilterimpl.h
@@ -0,0 +1,92 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: midifilterimpl.h,v 1.1.1.1 2003/10/27 18:52:40 wschweer Exp $
+//
+// (C) Copyright 1999/2000 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __MIDIFILTERIMP_H__
+#define __MIDIFILTERIMP_H__
+
+#include "globals.h"
+#include "midifilter.h"
+//Added by qt3to4:
+#include <QCloseEvent>
+
+//---------------------------------------------------------
+// MidiFilterConfig
+//---------------------------------------------------------
+
+class MidiFilterConfig : public MidiFilterConfigBase {
+ Q_OBJECT
+
+ void rChanged(bool f, int val) {
+ if (f)
+ midiRecordType |= val;
+ else
+ midiRecordType &= ~val;
+ }
+ void tChanged(bool f, int val) {
+ if (f)
+ midiThruType |= val;
+ else
+ midiThruType &= ~val;
+ }
+ void chChanged(bool f, int val) {
+ if (f)
+ midiInputChannel |= val;
+ else
+ midiInputChannel &= ~val;
+ }
+ virtual void closeEvent(QCloseEvent*);
+
+ signals:
+ void hideWindow();
+
+ private slots:
+ void channelChanged1(bool f) { chChanged(f, 0x01); }
+ void channelChanged2(bool f) { chChanged(f, 0x02); }
+ void channelChanged3(bool f) { chChanged(f, 0x04); }
+ void channelChanged4(bool f) { chChanged(f, 0x08); }
+ void channelChanged5(bool f) { chChanged(f, 0x10); }
+ void channelChanged6(bool f) { chChanged(f, 0x20); }
+ void channelChanged7(bool f) { chChanged(f, 0x40); }
+ void channelChanged8(bool f) { chChanged(f, 0x80); }
+ void channelChanged9(bool f) { chChanged(f, 0x100); }
+ void channelChanged10(bool f) { chChanged(f, 0x200); }
+ void channelChanged11(bool f) { chChanged(f, 0x400); }
+ void channelChanged12(bool f) { chChanged(f, 0x800); }
+ void channelChanged13(bool f) { chChanged(f, 0x1000); }
+ void channelChanged14(bool f) { chChanged(f, 0x2000); }
+ void channelChanged15(bool f) { chChanged(f, 0x4000); }
+ void channelChanged16(bool f) { chChanged(f, 0x8000); }
+
+ void recordChanged1(bool f) { rChanged(f, 1); }
+ void recordChanged2(bool f) { rChanged(f, 2); }
+ void recordChanged3(bool f) { rChanged(f, 4); }
+ void recordChanged4(bool f) { rChanged(f, 8); }
+ void recordChanged5(bool f) { rChanged(f, 16); }
+ void recordChanged6(bool f) { rChanged(f, 32); }
+ void recordChanged7(bool f) { rChanged(f, 64); }
+
+ void thruChanged1(bool f) { tChanged(f, 1); }
+ void thruChanged2(bool f) { tChanged(f, 2); }
+ void thruChanged3(bool f) { tChanged(f, 4); }
+ void thruChanged4(bool f) { tChanged(f, 8); }
+ void thruChanged5(bool f) { tChanged(f, 16); }
+ void thruChanged6(bool f) { tChanged(f, 32); }
+ void thruChanged7(bool f) { tChanged(f, 64); }
+
+ void setCtrl1(int);
+ void setCtrl2(int);
+ void setCtrl3(int);
+ void setCtrl4(int);
+
+ public:
+ MidiFilterConfig(QWidget* parent=0, const char* name=0);
+ };
+
+#endif
+
+
diff --git a/muse2/muse/mplugins/midiitransform.cpp b/muse2/muse/mplugins/midiitransform.cpp
new file mode 100644
index 00000000..f3eecece
--- /dev/null
+++ b/muse2/muse/mplugins/midiitransform.cpp
@@ -0,0 +1,1696 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: midiitransform.cpp,v 1.2.2.2 2009/05/24 21:43:44 terminator356 Exp $
+//
+// (C) Copyright 2001-2003 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include <stdio.h>
+#include <list>
+#include <qpushbutton.h>
+#include <q3buttongroup.h>
+#include <qlineedit.h>
+#include <qcombobox.h>
+#include <q3listbox.h>
+#include <qspinbox.h>
+#include <q3multilineedit.h>
+#include <qcheckbox.h>
+#include <qtoolbutton.h>
+//Added by qt3to4:
+#include <QCloseEvent>
+
+#include "spinboxFP.h"
+#include "midi.h"
+#include "midictrl.h"
+#include "event.h"
+#include "mpevent.h"
+#include "midiitransform.h"
+#include "track.h"
+#include "song.h"
+#include "xml.h"
+#include "gconfig.h"
+#include "comboQuant.h"
+#include "pitchedit.h"
+
+#define MIDITRANSFORM_NOTE 0
+#define MIDITRANSFORM_POLY 1
+#define MIDITRANSFORM_CTRL 2
+#define MIDITRANSFORM_ATOUCH 3
+#define MIDITRANSFORM_PITCHBEND 4
+#define MIDITRANSFORM_NRPN 5
+#define MIDITRANSFORM_RPN 6
+
+static int selTypeTable[] = {
+ MIDITRANSFORM_NOTE, MIDITRANSFORM_POLY, MIDITRANSFORM_CTRL, MIDITRANSFORM_ATOUCH,
+ MIDITRANSFORM_PITCHBEND, MIDITRANSFORM_NRPN, MIDITRANSFORM_RPN
+ };
+
+static int procTypeTable[] = {
+ MIDITRANSFORM_POLY, MIDITRANSFORM_CTRL, MIDITRANSFORM_ATOUCH,
+ MIDITRANSFORM_PITCHBEND, MIDITRANSFORM_NRPN, MIDITRANSFORM_RPN
+ };
+
+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(Transform, QString("Transform")),
+ TDict(Delete, QString("Filter"))
+ };
+
+//---------------------------------------------------------
+// MidiInputTransform
+//---------------------------------------------------------
+
+class MidiInputTransformation {
+ public:
+ QString name;
+ QString comment;
+
+ ValOp selEventOp;
+ int selType;
+
+ ValOp selVal1;
+ int selVal1a, selVal1b;
+ ValOp selVal2;
+ int selVal2a, selVal2b;
+ ValOp selPort;
+ int selPorta, selPortb;
+ ValOp selChannel;
+ int selChannela, selChannelb;
+
+ InputTransformProcEventOp procEvent;
+ int eventType;
+
+ TransformOperator procVal1;
+ int procVal1a, procVal1b;
+ TransformOperator procVal2;
+ int procVal2a, procVal2b;
+ TransformOperator procPort;
+ int procPorta, procPortb;
+ TransformOperator procChannel;
+ int procChannela, procChannelb;
+
+ TransformFunction funcOp;
+ int quantVal;
+
+ MidiInputTransformation(const QString& s) {
+ name = s;
+ selEventOp = All;
+ selType = MIDITRANSFORM_NOTE;
+ selVal1 = Ignore;
+ selVal1a = 0;
+ selVal1b = 0;
+ selVal2 = Ignore;
+ selVal2a = 0;
+ selVal2b = 0;
+ procEvent = KeepType;
+ eventType = MIDITRANSFORM_POLY;
+ procVal1 = Keep;
+ procVal1a = 0;
+ procVal1b = 0;
+ procVal2 = Keep;
+ procVal2a = 0;
+ procVal2b = 0;
+ funcOp = Transform;
+ quantVal = config.division;
+ selPort = Ignore;
+ selChannel = Ignore;
+ selChannela = 0;
+ selChannelb = 0;
+ procPort = Keep;
+ procChannel = Keep;
+ procPorta = 0;
+ procPortb = 0;
+ procChannela = 0;
+ procChannelb = 0;
+ }
+ void write(int level, Xml& xml) const;
+ int apply(MidiRecordEvent& ev) const;
+ bool typesMatch(MidiRecordEvent& e, int selType) const;
+ };
+
+typedef std::list<MidiInputTransformation*> MidiInputTransformationList;
+typedef std::list<MidiInputTransformation*>::iterator iMidiInputTransformation;
+typedef std::list<MidiInputTransformation*>::const_iterator ciMidiInputTransformation;
+
+// this is the list of defined transformations:
+static MidiInputTransformationList mtlist;
+
+// list of modules to apply:
+
+struct ITransModul {
+ bool valid;
+ MidiInputTransformation* transform;
+ };
+
+const int MIDI_INPUT_TRANSFORMATIONS = 4;
+static ITransModul modules[MIDI_INPUT_TRANSFORMATIONS];
+
+//---------------------------------------------------------
+// applyMidiInputTransformation
+// return false if event should be dropped
+// (filter)
+//---------------------------------------------------------
+
+bool applyMidiInputTransformation(MidiRecordEvent& event)
+ {
+ for (int i = 0; i < 4; ++i) {
+ if (modules[i].valid && modules[i].transform) {
+ int rv = modules[i].transform->apply(event);
+ if (rv == 1)
+ printf("drop input event\n");
+ if (rv)
+ return rv != 1;
+ }
+ }
+ return true;
+ }
+
+//---------------------------------------------------------
+// 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
+//---------------------------------------------------------
+
+int MidiInputTransformation::apply(MidiRecordEvent& event) const
+ {
+ int t = event.type();
+
+ switch (selEventOp) {
+ case Equal:
+ switch(t) {
+ case ME_NOTEON:
+ case ME_NOTEOFF:
+ if (selType != MIDITRANSFORM_NOTE)
+ return 0;
+ break;
+ default:
+ if(!typesMatch(event, selType))
+ return 0;
+ break;
+ }
+ break;
+ case Unequal:
+ switch(event.type()) {
+ case ME_NOTEON:
+ case ME_NOTEOFF:
+ if (selType == MIDITRANSFORM_NOTE)
+ return 0;
+ break;
+ default:
+ if(typesMatch(event, selType))
+ return 0;
+ break;
+ }
+ break;
+ default:
+ break;
+ }
+ if (filterValOp(selVal1, event.dataA(), selVal1a, selVal1b))
+ return 0;
+ if (filterValOp(selVal2, event.dataB(), selVal2a, selVal2b))
+ return 0;
+ if (filterValOp(selPort, event.port(), selPorta, selPortb))
+ return 0;
+ if (filterValOp(selChannel, event.channel(), selChannela, selChannelb))
+ return 0;
+
+ if (funcOp == Delete)
+ return 1; // discard event
+
+ // transform event
+//printf("transform\n");
+ if (procEvent != KeepType)
+ {
+ switch(eventType)
+ {
+ case MIDITRANSFORM_POLY:
+ event.setType(ME_POLYAFTER);
+ break;
+ case MIDITRANSFORM_CTRL:
+ event.setType(ME_CONTROLLER);
+ break;
+ case MIDITRANSFORM_ATOUCH:
+ event.setType(ME_AFTERTOUCH);
+ break;
+ case MIDITRANSFORM_PITCHBEND:
+ {
+ event.setType(ME_PITCHBEND);
+ }
+ break;
+ case MIDITRANSFORM_NRPN:
+ {
+ event.setA(MidiController::NRPN);
+ event.setType(ME_CONTROLLER);
+ }
+ break;
+ case MIDITRANSFORM_RPN:
+ {
+ event.setA(MidiController::RPN);
+ event.setType(ME_CONTROLLER);
+ }
+ break;
+ default:
+ break;
+ }
+ }
+
+ //---------------------------------------------------
+ // transform value A
+ //---------------------------------------------------
+
+ int val = event.dataA();
+ switch (procVal1) {
+ case Keep:
+ break;
+ case Plus:
+ val += procVal1a;
+ break;
+ case Minus:
+ val -= procVal1a;
+ break;
+ case Multiply:
+ val = int(val * (procVal1a/100.0) + .5);
+ break;
+ case Divide:
+ val = int(val / (procVal1a/100.0) + .5);
+ break;
+ case Fix:
+ val = procVal1a;
+ break;
+ case Value:
+ val = procVal2a;
+ break;
+ case Invert:
+ val = 127 - val;
+ break;
+ case ScaleMap:
+ printf("scale map not implemented\n");
+ break;
+ case Flip:
+ val = procVal1a - val;
+ break;
+ case Dynamic: // "crescendo"
+ printf("transform not implemented\n");
+ break;
+ case Random:
+ {
+ int range = procVal1b - procVal1a;
+ if (range > 0)
+ val = (rand() % range) + procVal1a;
+ else if (range < 0)
+ val = (rand() % -range) + procVal1b;
+ else
+ val = procVal1a;
+ }
+ break;
+ }
+ if (val < 0)
+ val = 0;
+ if (val > 127)
+ val = 127;
+ event.setA(val);
+
+ //---------------------------------------------------
+ // transform value B
+ //---------------------------------------------------
+
+ val = event.dataB();
+ switch (procVal2) {
+ case Plus:
+ val += procVal2a;
+ break;
+ case Minus:
+ val -= procVal2a;
+ break;
+ case Multiply:
+ val = int(val * (procVal2a/100.0) + .5);
+ break;
+ case Divide:
+ val = int(val / (procVal2a/100.0) + .5);
+ break;
+ case Fix:
+ val = procVal2a;
+ break;
+ case Value:
+ val = procVal1a;
+ break;
+ case Invert:
+ val = 127 - val;
+ break;
+ case Dynamic:
+ printf("transform not implemented\n");
+ break;
+ case Random:
+ {
+ int range = procVal2b - procVal2a;
+ if (range > 0)
+ val = (rand() % range) + procVal2a;
+ else if (range < 0)
+ val = (rand() % -range) + procVal2b;
+ else
+ val = procVal2a;
+ }
+ break;
+ case ScaleMap:
+ case Keep:
+ case Flip:
+ break;
+ }
+ if (val < 0)
+ val = 0;
+ if (val > 127)
+ val = 127;
+ event.setB(val);
+
+ //---------------------------------------------------
+ // transform port
+ //---------------------------------------------------
+
+ val = event.port();
+ switch (procPort) {
+ case Plus:
+ val += procPorta;
+ break;
+ case Minus:
+ val -= procPorta;
+ break;
+ case Multiply:
+ val = int(val * (procPorta/100.0) + .5);
+ break;
+ case Divide:
+ val = int(val / (procPorta/100.0) + .5);
+ break;
+ case Fix:
+ val = procPorta;
+ break;
+ case Value:
+ val = procPorta;
+ break;
+ case Invert:
+ val = 15 - val;
+ break;
+ case Dynamic:
+ printf("transform not implemented\n");
+ break;
+ case Random:
+ {
+ int range = procPortb - procPorta;
+ if (range > 0)
+ val = (rand() % range) + procPorta;
+ else if (range < 0)
+ val = (rand() % -range) + procPortb;
+ else
+ val = procPorta;
+ }
+ break;
+ case ScaleMap:
+ case Keep:
+ case Flip:
+ break;
+ }
+ if (val < 0)
+ val = 0;
+ if (val > 15)
+ val = 15;
+ event.setPort(val);
+
+ //---------------------------------------------------
+ // transform channel
+ //---------------------------------------------------
+
+ val = event.channel();
+ switch (procChannel) {
+ case Plus:
+ val += procChannela;
+ break;
+ case Minus:
+ val -= procChannela;
+ break;
+ case Multiply:
+ val = int(val * (procChannela/100.0) + .5);
+ break;
+ case Divide:
+ val = int(val / (procChannela/100.0) + .5);
+ break;
+ case Fix:
+ val = procChannela;
+ break;
+ case Value:
+ val = procChannela;
+ break;
+ case Invert:
+ val = 16 - val;
+ break;
+ case Dynamic:
+ printf("transform not implemented\n");
+ break;
+ case Random:
+ {
+ int range = procChannelb - procChannela;
+ if (range > 0)
+ val = (rand() % range) + procChannela;
+ else if (range < 0)
+ val = (rand() % -range) + procChannelb;
+ else
+ val = procChannela;
+ }
+ break;
+ case ScaleMap:
+ case Keep:
+ case Flip:
+ break;
+ }
+ if (val < 0)
+ val = 0;
+ if (val > 15)
+ val = 15;
+ event.setChannel(val);
+
+ return 2;
+ }
+
+//---------------------------------------------------------
+// typesMatch
+//---------------------------------------------------------
+
+bool MidiInputTransformation::typesMatch(MidiRecordEvent& e, int selType) const
+ {
+ bool matched = false;
+ int t = e.type();
+ switch (selType)
+ {
+ case MIDITRANSFORM_NOTE:
+ matched = ((t == ME_NOTEON) || (t == ME_NOTEOFF));
+ break;
+ case MIDITRANSFORM_POLY:
+ matched = (t == ME_POLYAFTER);
+ break;
+ case MIDITRANSFORM_CTRL:
+ matched = (t == ME_CONTROLLER);
+ break;
+ case MIDITRANSFORM_ATOUCH:
+ matched = (t == ME_AFTERTOUCH);
+ break;
+ case MIDITRANSFORM_PITCHBEND:
+ {
+ //if (t == ME_CONTROLLER) {
+ // MidiController::ControllerType c = midiControllerType(e.dataA());
+ // matched = (c == MidiController::Pitch);
+ matched = (t = ME_PITCHBEND);
+ }
+ break;
+ case MIDITRANSFORM_NRPN:
+ {
+ if (t == ME_CONTROLLER) {
+ MidiController::ControllerType c = midiControllerType(e.dataA());
+ matched = (c == MidiController::NRPN);
+ }
+ }
+ break;
+ case MIDITRANSFORM_RPN:
+ {
+ if (t == ME_CONTROLLER) {
+ MidiController::ControllerType c = midiControllerType(e.dataA());
+ matched = (c == MidiController::RPN);
+ }
+ }
+ break;
+ default:
+ fprintf(stderr, "Error matching type in MidiTransformerDialog: unknown eventtype!\n");
+ break;
+ }
+ //printf("Event type=%d, selType =%d matched=%d\n", e.type(), selType, matched);
+ return matched;
+ }
+
+//---------------------------------------------------------
+// MidiInputTransformDialog
+// Widgets:
+// presetList nameEntry commentEntry
+// selEventOp selType
+// selVal1Op selVal1a selVal1b
+// selVal2Op selVal2a selVal2b
+//
+// procEventOp procType
+// procVal1Op procVal1a procVal1b
+// procVal2Op procVal2a procVal2b
+// funcOp funcQuantVal
+// buttonNew buttonDelete
+//
+// modulGroup
+// modul1select modul1enable
+// modul2select modul2enable
+// modul3select modul3enable
+// modul4select modul4enable
+//
+// selPortOp selPortVala selPortValb
+// selChannelOp selChannelVala selChannelValb
+//
+// procPortOp procPortVala procPortValb
+// procChannelOp procChannelVala procChannelValb
+//---------------------------------------------------------
+
+MidiInputTransformDialog::MidiInputTransformDialog(QWidget* parent,
+ const char* name, bool modal, Qt::WFlags fl)
+ : MidiInputTransformDialogBase(parent, name, modal, fl)
+ {
+ cindex = 0;
+ cmodul = 0;
+ cmt = 0;
+
+ for (unsigned i = 0; i < sizeof(oplist)/sizeof(*oplist); ++i)
+ funcOp->insertItem(oplist[i].text, i);
+
+ 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(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(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(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(modul1enable, SIGNAL(toggled(bool)), SLOT(modul1enableChanged(bool)));
+ connect(modul2enable, SIGNAL(toggled(bool)), SLOT(modul2enableChanged(bool)));
+ connect(modul3enable, SIGNAL(toggled(bool)), SLOT(modul3enableChanged(bool)));
+ connect(modul4enable, SIGNAL(toggled(bool)), SLOT(modul4enableChanged(bool)));
+ connect(modulGroup, SIGNAL(clicked(int)), SLOT(changeModul(int)));
+
+ connect(selPortOp, SIGNAL(activated(int)), SLOT(selPortOpSel(int)));
+ connect(selPortVala, SIGNAL(valueChanged(int)), SLOT(selPortValaChanged(int)));
+ connect(selPortValb, SIGNAL(valueChanged(int)), SLOT(selPortValbChanged(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(procPortOp, SIGNAL(activated(int)), SLOT(procPortOpSel(int)));
+ connect(procPortVala, SIGNAL(valueChanged(int)), SLOT(procPortValaChanged(int)));
+ connect(procPortValb, SIGNAL(valueChanged(int)), SLOT(procPortValbChanged(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)));
+
+ //---------------------------------------------------
+ // populate preset list
+ //---------------------------------------------------
+
+ updatePresetList();
+ connect(song, SIGNAL(songChanged(int)), SLOT(songChanged(int)));
+ }
+
+//---------------------------------------------------------
+// songChanged
+//---------------------------------------------------------
+
+void MidiInputTransformDialog::songChanged(int flags)
+{
+ // Whenever a song is loaded, flags is -1. Since transforms are part of configuration,
+ // use SC_CONFIG here, to filter unwanted song change events.
+ if(flags & SC_CONFIG)
+ updatePresetList();
+}
+
+//---------------------------------------------------------
+// updatePresetList
+//---------------------------------------------------------
+
+void MidiInputTransformDialog::updatePresetList()
+{
+ cmt = 0;
+ presetList->clear();
+
+ modul1select->setOn(true);
+ for (iMidiInputTransformation i = mtlist.begin(); i != mtlist.end(); ++i) {
+ presetList->insertItem((*i)->name);
+ if (cmt == 0)
+ cmt = *i;
+ }
+ if (cmt == 0) {
+ // create default "New" preset
+ cmt = new MidiInputTransformation(tr("New"));
+ mtlist.push_back(cmt);
+ presetList->insertItem(tr("New"));
+ presetList->setCurrentItem(0);
+ }
+ changeModul(0);
+
+ modul1enable->setChecked(modules[0].valid);
+ modul2enable->setChecked(modules[1].valid);
+ modul3enable->setChecked(modules[2].valid);
+ modul4enable->setChecked(modules[3].valid);
+}
+
+//---------------------------------------------------------
+// closeEvent
+//---------------------------------------------------------
+
+void MidiInputTransformDialog::closeEvent(QCloseEvent* ev)
+ {
+ emit hideWindow();
+ QWidget::closeEvent(ev);
+ }
+
+//---------------------------------------------------------
+// writeMidiTransforms
+//---------------------------------------------------------
+
+void writeMidiInputTransforms(int level, Xml& xml)
+ {
+ for (iMidiInputTransformation i = mtlist.begin(); i != mtlist.end(); ++i) {
+ (*i)->write(level, xml);
+ }
+ }
+
+//---------------------------------------------------------
+// write
+//---------------------------------------------------------
+
+void MidiInputTransformation::write(int level, Xml& xml) const
+ {
+ xml.tag(level++, "midiInputTransform");
+ xml.strTag(level, "name", name);
+ xml.strTag(level, "comment", comment);
+ xml.intTag(level, "function", int(funcOp));
+
+ // apply this transformation?
+ for (int i = 0; i < MIDI_INPUT_TRANSFORMATIONS; ++i) {
+ if (modules[i].transform == this) {
+ xml.intTag(level, "apply", int(modules[i].valid));
+ break;
+ }
+ }
+ if (funcOp == Quantize) {
+ xml.intTag(level, "quantVal", quantVal);
+ }
+ if (funcOp == Transform || funcOp == Insert) {
+ if (procEvent != KeepType) {
+ xml.intTag(level, "procEventOp", int(procEvent));
+ xml.intTag(level, "eventType", int(eventType));
+ }
+ if (procVal1 != Keep) {
+ xml.intTag(level, "procVal1Op", int(procVal1));
+ xml.intTag(level, "procVal1a", procVal1a);
+ xml.intTag(level, "procVal1b", procVal1b);
+ }
+ if (procVal2 != Keep) {
+ xml.intTag(level, "procVal2Op", int(procVal2));
+ xml.intTag(level, "procVal2a", procVal2a);
+ xml.intTag(level, "procVal2b", procVal2b);
+ }
+ if (procPort != Keep) {
+ xml.intTag(level, "procPortOp", int(procPort));
+ xml.intTag(level, "procPorta", procPorta);
+ xml.intTag(level, "procPortb", procPortb);
+ }
+ if (procChannel != Keep) {
+ xml.intTag(level, "procChannelOp", int(procChannel));
+ xml.intTag(level, "procChannela", procChannela);
+ xml.intTag(level, "procChannelb", procChannelb);
+ }
+ }
+ if (selEventOp != Ignore) {
+ xml.intTag(level, "selEventOp", int(selEventOp));
+ xml.intTag(level, "selEventType", int(selType));
+ }
+ if (selVal1 != Ignore) {
+ xml.intTag(level, "selVal1Op", int(selVal1));
+ xml.intTag(level, "selVal1a", selVal1a);
+ xml.intTag(level, "selVal1b", selVal1b);
+ }
+ if (selVal2 != Ignore) {
+ xml.intTag(level, "selVal2Op", int(selVal2));
+ xml.intTag(level, "selVal2a", selVal2a);
+ xml.intTag(level, "selVal2b", selVal2b);
+ }
+ if (selPort != Ignore) {
+ xml.intTag(level, "selPortOp", int(selPort));
+ xml.intTag(level, "selPorta", selPorta);
+ xml.intTag(level, "selPortb", selPortb);
+ }
+ if (selChannel != Ignore) {
+ xml.intTag(level, "selChannelOp", int(selChannel));
+ xml.intTag(level, "selChannela", selChannela);
+ xml.intTag(level, "selChannelb", selChannelb);
+ }
+ xml.etag(level, "midiInputTransform");
+ }
+
+//---------------------------------------------------------
+// readMidiTransform
+//---------------------------------------------------------
+
+void readMidiInputTransform(Xml& xml)
+ {
+ MidiInputTransformation trans(QString("new"));
+ int apply = -1;
+
+ 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 == "name")
+ trans.name = xml.parse1();
+ else if (tag == "comment")
+ trans.comment = xml.parse1();
+ else if (tag == "function")
+ trans.funcOp = TransformFunction(xml.parseInt());
+ else if (tag == "quantVal")
+ trans.quantVal = xml.parseInt();
+ else if (tag == "procEventOp")
+ trans.procEvent = InputTransformProcEventOp(xml.parseInt());
+ else if (tag == "eventType")
+ trans.eventType = xml.parseInt();
+ else if (tag == "procVal1Op")
+ trans.procVal1 = TransformOperator(xml.parseInt());
+ else if (tag == "procVal1a")
+ trans.procVal1a = xml.parseInt();
+ else if (tag == "procVal1b")
+ trans.procVal1b = xml.parseInt();
+ else if (tag == "procVal2Op")
+ trans.procVal2 = TransformOperator(xml.parseInt());
+ else if (tag == "procVal2a")
+ trans.procVal2a = xml.parseInt();
+ else if (tag == "procVal2b")
+ trans.procVal2b = xml.parseInt();
+ else if (tag == "selEventOp")
+ trans.selEventOp = ValOp(xml.parseInt());
+ else if (tag == "selEventType")
+ trans.selType = xml.parseInt();
+ else if (tag == "selVal1Op")
+ trans.selVal1 = ValOp(xml.parseInt());
+ else if (tag == "selVal1a")
+ trans.selVal1a = xml.parseInt();
+ else if (tag == "selVal1b")
+ trans.selVal1b = xml.parseInt();
+ else if (tag == "selVal2Op")
+ trans.selVal2 = ValOp(xml.parseInt());
+ else if (tag == "selVal2a")
+ trans.selVal2a = xml.parseInt();
+ else if (tag == "selVal2b")
+ trans.selVal2b = xml.parseInt();
+
+ else if (tag == "procPortOp")
+ trans.procPort = TransformOperator(xml.parseInt());
+ else if (tag == "procPorta")
+ trans.procPorta = xml.parseInt();
+ else if (tag == "procPortb")
+ trans.procPortb = xml.parseInt();
+ else if (tag == "procChannelOp")
+ trans.procChannel = TransformOperator(xml.parseInt());
+ else if (tag == "procChannela")
+ trans.procChannela = xml.parseInt();
+ else if (tag == "procChannelb")
+ trans.procChannelb = xml.parseInt();
+
+ else if (tag == "selPortOp")
+ trans.selPort = ValOp(xml.parseInt());
+ else if (tag == "selPorta")
+ trans.selPorta = xml.parseInt();
+ else if (tag == "selPortb")
+ trans.selPortb = xml.parseInt();
+ else if (tag == "selChannelOp")
+ trans.selChannel = ValOp(xml.parseInt());
+ else if (tag == "selChannela")
+ trans.selChannela = xml.parseInt();
+ else if (tag == "selChannelb")
+ trans.selChannelb = xml.parseInt();
+
+ else if (tag == "apply")
+ apply = xml.parseInt();
+ else
+ xml.unknown("midiInputTransform");
+ break;
+ case Xml::TagEnd:
+ if (xml.s1() == "midiInputTransform") {
+// printf("midi Input transform <%s> apply %d\n",
+// trans.name.latin1(), apply);
+
+ // By T356. A previous bug caused some .med files to grow very large
+ // with duplicate transforms. Here we can eliminate those duplicates.
+ for(iMidiInputTransformation i = mtlist.begin(); i != mtlist.end(); ++i)
+ {
+ if((*i)->name == trans.name)
+ {
+ return;
+ }
+ }
+
+ MidiInputTransformation* t = new MidiInputTransformation(trans);
+ // search free slot in modules
+ if (apply != -1) {
+ for (int i = 0; i < MIDI_INPUT_TRANSFORMATIONS; ++i) {
+ if (modules[i].transform == 0) {
+ modules[i].transform = t;
+ modules[i].valid = apply;
+ break;
+ }
+ }
+ }
+ mtlist.push_back(t);
+ return;
+ }
+ default:
+ break;
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// clearMidiInputTransforms
+//---------------------------------------------------------
+
+void clearMidiInputTransforms()
+{
+ for (int i = 0; i < MIDI_INPUT_TRANSFORMATIONS; ++i)
+ {
+ modules[i].transform = 0;
+ modules[i].valid = false;
+ }
+ for (iMidiInputTransformation i = mtlist.begin(); i != mtlist.end(); ++i)
+ {
+ MidiInputTransformation* t = *i;
+ if(t)
+ delete t;
+ }
+ mtlist.clear();
+}
+
+//---------------------------------------------------------
+// accept
+//---------------------------------------------------------
+
+void MidiInputTransformDialog::accept()
+ {
+ reject();
+ }
+
+//---------------------------------------------------------
+// reject
+//---------------------------------------------------------
+
+void MidiInputTransformDialog::reject()
+ {
+ close(false);
+ }
+
+//---------------------------------------------------------
+// setValOp
+//---------------------------------------------------------
+
+void MidiInputTransformDialog::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 MidiInputTransformDialog::selEventOpSel(int val)
+ {
+ selType->setEnabled(val != All);
+ cmt->selEventOp = ValOp(val);
+ selVal1aChanged(cmt->selVal1a);
+ selVal1bChanged(cmt->selVal1b);
+ }
+
+//---------------------------------------------------------
+// selTypeSel
+//---------------------------------------------------------
+
+void MidiInputTransformDialog::selTypeSel(int val)
+ {
+ cmt->selType = selTypeTable[val];
+ selVal1aChanged(cmt->selVal1a);
+ selVal1bChanged(cmt->selVal1b);
+ }
+
+//---------------------------------------------------------
+// selVal1OpSel
+//---------------------------------------------------------
+
+void MidiInputTransformDialog::selVal1OpSel(int val)
+ {
+ setValOp(selVal1a, selVal1b, ValOp(val));
+ cmt->selVal1 = ValOp(val);
+ }
+
+//---------------------------------------------------------
+// selVal2OpSel
+//---------------------------------------------------------
+
+void MidiInputTransformDialog::selVal2OpSel(int val)
+ {
+ setValOp(selVal2a, selVal2b, ValOp(val));
+ cmt->selVal2 = ValOp(val);
+ }
+
+//---------------------------------------------------------
+// procEventOpSel
+//---------------------------------------------------------
+
+void MidiInputTransformDialog::procEventOpSel(int val)
+ {
+ InputTransformProcEventOp op = val == 0 ? KeepType : FixType;
+ procType->setEnabled(op == FixType);
+ cmt->procEvent = op;
+
+ procVal1aChanged(cmt->procVal1a);
+ procVal1bChanged(cmt->procVal1b);
+ }
+
+//---------------------------------------------------------
+// procEventTypeSel
+//---------------------------------------------------------
+
+void MidiInputTransformDialog::procEventTypeSel(int val)
+ {
+ cmt->eventType = procTypeTable[val];
+ procVal1aChanged(cmt->procVal1a);
+ procVal1bChanged(cmt->procVal1b);
+ }
+
+//---------------------------------------------------------
+// procVal1OpSel
+//---------------------------------------------------------
+
+void MidiInputTransformDialog::procVal1OpSel(int val)
+ {
+ 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;
+ }
+ procVal1aChanged(cmt->procVal1a);
+ procVal1bChanged(cmt->procVal1b);
+ }
+
+//---------------------------------------------------------
+// procVal2OpSel
+//---------------------------------------------------------
+
+void MidiInputTransformDialog::procVal2OpSel(int val)
+ {
+ TransformOperator op = TransformOperator(procVal2Map[val]);
+ 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;
+ }
+ }
+
+//---------------------------------------------------------
+// funcOpSel
+//---------------------------------------------------------
+
+void MidiInputTransformDialog::funcOpSel(int val)
+ {
+ TransformFunction op = oplist[val].id;
+
+ bool isFuncOp(op == Transform);
+
+ procEventOp->setEnabled(isFuncOp);
+ procType->setEnabled(isFuncOp);
+ procVal1Op->setEnabled(isFuncOp);
+ procVal1a->setEnabled(isFuncOp);
+ procVal1b->setEnabled(isFuncOp);
+ procVal2Op->setEnabled(isFuncOp);
+ procVal2a->setEnabled(isFuncOp);
+ procVal2b->setEnabled(isFuncOp);
+ procPortOp->setEnabled(isFuncOp);
+ procPortVala->setEnabled(isFuncOp);
+ procPortValb->setEnabled(isFuncOp);
+ procChannelOp->setEnabled(isFuncOp);
+ procChannelVala->setEnabled(isFuncOp);
+ procChannelValb->setEnabled(isFuncOp);
+ if (isFuncOp) {
+ procEventOpSel(cmt->procEvent);
+ procVal1OpSel(cmt->procVal1);
+ procVal2OpSel(cmt->procVal2);
+ procPortOpSel(cmt->procPort);
+ procChannelOpSel(cmt->procChannel);
+ }
+ cmt->funcOp = op;
+ }
+
+//---------------------------------------------------------
+// presetNew
+//---------------------------------------------------------
+
+void MidiInputTransformDialog::presetNew()
+ {
+ QString name;
+ for (int i = 0;; ++i) {
+ name.sprintf("New-%d", i);
+ iMidiInputTransformation imt;
+ for (imt = mtlist.begin(); imt != mtlist.end(); ++imt) {
+ if (name == (*imt)->name)
+ break;
+ }
+ if (imt == mtlist.end())
+ break;
+ }
+ MidiInputTransformation* mt = new MidiInputTransformation(name);
+ Q3ListBoxText* lbi = new Q3ListBoxText(presetList, name);
+ mtlist.push_back(mt);
+ presetList->setCurrentItem(lbi);
+ }
+
+//---------------------------------------------------------
+// presetDelete
+//---------------------------------------------------------
+
+void MidiInputTransformDialog::presetDelete()
+ {
+ if (cindex != -1) {
+ iMidiInputTransformation mt = mtlist.begin();
+ for (int i = 0; i < cindex; ++i, ++mt) {
+ mtlist.erase(mt);
+ presetList->removeItem(cindex);
+ break;
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// nameChanged
+//---------------------------------------------------------
+
+void MidiInputTransformDialog::nameChanged(const QString& s)
+ {
+ cmt->name = s;
+ Q3ListBoxItem* item = presetList->item(cindex);
+ if (s != item->text()) {
+ disconnect(presetList, SIGNAL(highlighted(Q3ListBoxItem*)),
+ this, SLOT(presetChanged(Q3ListBoxItem*)));
+ presetList->changeItem(s, cindex);
+ connect(presetList, SIGNAL(highlighted(Q3ListBoxItem*)),
+ SLOT(presetChanged(Q3ListBoxItem*)));
+ }
+ }
+
+//---------------------------------------------------------
+// commentChanged
+//---------------------------------------------------------
+
+void MidiInputTransformDialog::commentChanged()
+ {
+ cmt->comment = commentEntry->text();
+ }
+
+//---------------------------------------------------------
+// selVal1aChanged
+//---------------------------------------------------------
+
+void MidiInputTransformDialog::selVal1aChanged(int val)
+ {
+ cmt->selVal1a = val;
+ if ((cmt->selEventOp != All)
+ && (cmt->selType == MIDITRANSFORM_NOTE)) {
+ selVal1a->setSuffix(" - " + pitch2string(val));
+ }
+ else
+ selVal1a->setSuffix(QString(""));
+ }
+
+//---------------------------------------------------------
+// selVal1bChanged
+//---------------------------------------------------------
+
+void MidiInputTransformDialog::selVal1bChanged(int val)
+ {
+ cmt->selVal1b = val;
+ if ((cmt->selEventOp != All)
+ && (cmt->selType == MIDITRANSFORM_NOTE)) {
+ selVal1b->setSuffix(" - " + pitch2string(val));
+ }
+ else
+ selVal1b->setSuffix(QString(""));
+ }
+
+//---------------------------------------------------------
+// selVal2aChanged
+//---------------------------------------------------------
+
+void MidiInputTransformDialog::selVal2aChanged(int val)
+ {
+ cmt->selVal2a = val;
+ }
+
+//---------------------------------------------------------
+// selVal2bChanged
+//---------------------------------------------------------
+
+void MidiInputTransformDialog::selVal2bChanged(int val)
+ {
+ cmt->selVal2b = val;
+ }
+
+//---------------------------------------------------------
+// procVal1aChanged
+//---------------------------------------------------------
+
+void MidiInputTransformDialog::procVal1aChanged(int val)
+ {
+ cmt->procVal1a = val;
+
+ if((cmt->procEvent == KeepType && cmt->selType == MIDITRANSFORM_NOTE) &&
+ (cmt->procVal1 == Fix || cmt->procVal1 == ScaleMap || cmt->procVal1 == Dynamic ||
+ cmt->procVal1 == Random || cmt->procVal1 == Flip))
+ {
+ procVal1a->setSuffix(" - " + pitch2string(val));
+ }
+ else
+ procVal1a->setSuffix(QString(""));
+ }
+
+//---------------------------------------------------------
+// procVal1bChanged
+//---------------------------------------------------------
+
+void MidiInputTransformDialog::procVal1bChanged(int val)
+ {
+ cmt->procVal1b = val;
+
+ if((cmt->procEvent == KeepType && cmt->selType == MIDITRANSFORM_NOTE) &&
+ (cmt->procVal1 == Fix || cmt->procVal1 == ScaleMap || cmt->procVal1 == Dynamic ||
+ cmt->procVal1 == Random || cmt->procVal1 == Flip))
+ {
+ procVal1b->setSuffix(" - " + pitch2string(val));
+ }
+ else
+ procVal1b->setSuffix(QString(""));
+ }
+
+//---------------------------------------------------------
+// procVal2aChanged
+//---------------------------------------------------------
+
+void MidiInputTransformDialog::procVal2aChanged(int val)
+ {
+ cmt->procVal2a = val;
+ }
+
+//---------------------------------------------------------
+// procVal2bChanged
+//---------------------------------------------------------
+
+void MidiInputTransformDialog::procVal2bChanged(int val)
+ {
+ cmt->procVal2b = val;
+ }
+
+//---------------------------------------------------------
+// modul1enableChanged
+//---------------------------------------------------------
+
+void MidiInputTransformDialog::modul1enableChanged(bool val)
+ {
+ modules[0].valid = val;
+ }
+
+//---------------------------------------------------------
+// modul2enableChanged
+//---------------------------------------------------------
+
+void MidiInputTransformDialog::modul2enableChanged(bool val)
+ {
+ modules[1].valid = val;
+ }
+
+//---------------------------------------------------------
+// modul3enableChanged
+//---------------------------------------------------------
+
+void MidiInputTransformDialog::modul3enableChanged(bool val)
+ {
+ modules[2].valid = val;
+ }
+
+//---------------------------------------------------------
+// modul4enableChanged
+//---------------------------------------------------------
+
+void MidiInputTransformDialog::modul4enableChanged(bool val)
+ {
+ modules[3].valid = val;
+ }
+
+//---------------------------------------------------------
+// selPortOpSel
+//---------------------------------------------------------
+
+void MidiInputTransformDialog::selPortOpSel(int val)
+ {
+ setValOp(selPortVala, selPortValb, ValOp(val));
+ cmt->selPort = ValOp(val);
+ }
+
+//---------------------------------------------------------
+// selPortValaChanged
+//---------------------------------------------------------
+
+void MidiInputTransformDialog::selPortValaChanged(int val)
+ {
+ cmt->selPorta = val;
+ }
+
+//---------------------------------------------------------
+// selPortValbChanged
+//---------------------------------------------------------
+
+void MidiInputTransformDialog::selPortValbChanged(int val)
+ {
+ cmt->selPortb = val;
+ }
+
+//---------------------------------------------------------
+// selChannelOpSel
+//---------------------------------------------------------
+
+void MidiInputTransformDialog::selChannelOpSel(int val)
+ {
+ setValOp(selChannelVala, selChannelValb, ValOp(val));
+ cmt->selChannel = ValOp(val);
+ }
+
+//---------------------------------------------------------
+// selChannelValaChanged
+//---------------------------------------------------------
+
+void MidiInputTransformDialog::selChannelValaChanged(int val)
+ {
+ cmt->selChannela = val;
+ }
+
+//---------------------------------------------------------
+// selChannelValbChanged
+//---------------------------------------------------------
+
+void MidiInputTransformDialog::selChannelValbChanged(int val)
+ {
+ cmt->selChannelb = val;
+ }
+
+//---------------------------------------------------------
+// procPortOpSel
+//---------------------------------------------------------
+
+void MidiInputTransformDialog::procPortOpSel(int val)
+ {
+ cmt->procPort = TransformOperator(val);
+ switch(TransformOperator(val)) {
+ case Keep:
+ case Invert:
+ procPortVala->setEnabled(false);
+ procPortValb->setEnabled(false);
+ break;
+ case Multiply:
+ case Divide:
+ procPortVala->setEnabled(true);
+ procPortVala->setPrecision(2);
+ procPortValb->setEnabled(false);
+ break;
+ case Plus:
+ case Minus:
+ case Fix:
+ case Value:
+ case Flip:
+ procPortVala->setPrecision(0);
+ procPortVala->setEnabled(true);
+ procPortValb->setEnabled(false);
+ break;
+ case Random:
+ case ScaleMap:
+ case Dynamic:
+ procPortVala->setPrecision(0);
+ procPortVala->setEnabled(true);
+ procPortValb->setEnabled(true);
+ break;
+ }
+ }
+
+//---------------------------------------------------------
+// procPortValaChanged
+//---------------------------------------------------------
+
+void MidiInputTransformDialog::procPortValaChanged(int val)
+ {
+ cmt->procPorta = val;
+ }
+
+//---------------------------------------------------------
+// procPortValbChanged
+//---------------------------------------------------------
+
+void MidiInputTransformDialog::procPortValbChanged(int val)
+ {
+ cmt->procPortb = val;
+ }
+
+//---------------------------------------------------------
+// procChannelOpSel
+//---------------------------------------------------------
+
+void MidiInputTransformDialog::procChannelOpSel(int val)
+ {
+ cmt->procChannel = TransformOperator(val);
+ switch(TransformOperator(val)) {
+ case Keep:
+ case Invert:
+ procChannelVala->setEnabled(false);
+ procChannelValb->setEnabled(false);
+ break;
+ case Multiply:
+ case Divide:
+ procChannelVala->setEnabled(true);
+ procChannelVala->setPrecision(2);
+ procChannelValb->setEnabled(false);
+ break;
+ case Plus:
+ case Minus:
+ case Fix:
+ case Value:
+ case Flip:
+ procChannelVala->setPrecision(0);
+ procChannelVala->setEnabled(true);
+ procChannelValb->setEnabled(false);
+ break;
+ case Random:
+ case ScaleMap:
+ case Dynamic:
+ procChannelVala->setPrecision(0);
+ procChannelVala->setEnabled(true);
+ procChannelValb->setEnabled(true);
+ break;
+ }
+ }
+
+//---------------------------------------------------------
+// procChannelValaChanged
+//---------------------------------------------------------
+
+void MidiInputTransformDialog::procChannelValaChanged(int val)
+ {
+ cmt->procChannela = val;
+ }
+
+//---------------------------------------------------------
+// procChannelValbChanged
+//---------------------------------------------------------
+
+void MidiInputTransformDialog::procChannelValbChanged(int val)
+ {
+ cmt->procChannelb = val;
+ }
+
+//---------------------------------------------------------
+// changeModul
+//---------------------------------------------------------
+
+void MidiInputTransformDialog::changeModul(int k)
+ {
+printf("change modul %d\n", k);
+
+ cmodul = k; // current modul
+
+ if (modules[k].transform == 0) {
+ printf("transform %d ist null\n", k);
+ modules[k].transform = cmt;
+ }
+ else {
+ //---------------------------------------------
+ // search transformation in list
+ //---------------------------------------------
+
+ int idx = 0;
+ iMidiInputTransformation i;
+ for (i = mtlist.begin(); i != mtlist.end(); ++i, ++idx) {
+ if (*i == modules[k].transform) {
+ presetList->setCurrentItem(idx);
+ break;
+ }
+ }
+ if (i == mtlist.end())
+ printf("change to unknown transformation!\n");
+ }
+ }
+
+//---------------------------------------------------------
+// presetChanged
+//---------------------------------------------------------
+
+void MidiInputTransformDialog::presetChanged(Q3ListBoxItem* item)
+ {
+ cindex = presetList->index(item);
+
+ //---------------------------------------------------
+ // search transformation in list and set
+ // cmt
+ //---------------------------------------------------
+
+ iMidiInputTransformation i;
+ for (i = mtlist.begin(); i != mtlist.end(); ++i) {
+ if (item->text() == (*i)->name) {
+ printf("found %s\n", (*i)->name.latin1());
+ cmt = *i;
+ if (cmodul != -1) {
+ modules[cmodul].transform = *i;
+ }
+ break;
+ }
+ }
+ if (i == mtlist.end()) {
+ printf("MidiInputTransformDialog::presetChanged: not found\n");
+ return;
+ }
+ nameEntry->setText(cmt->name);
+ commentEntry->setText(cmt->comment);
+
+ selEventOp->setCurrentItem(cmt->selEventOp);
+ selEventOpSel(cmt->selEventOp);
+
+ for (unsigned i = 0; i < sizeof(selTypeTable)/sizeof(*selTypeTable); ++i) {
+ if (selTypeTable[i] == cmt->selType) {
+ selType->setCurrentItem(i);
+ break;
+ }
+ }
+
+ selVal1Op->setCurrentItem(cmt->selVal1);
+ selVal1OpSel(cmt->selVal1);
+
+ selVal2Op->setCurrentItem(cmt->selVal2);
+ selVal2OpSel(cmt->selVal2);
+
+ selPortOp->setCurrentItem(cmt->selPort);
+ selPortOpSel(cmt->selPort);
+
+ selChannelOp->setCurrentItem(cmt->selChannel);
+ selChannelOpSel(cmt->selChannel);
+
+ {
+ unsigned i;
+ for (i = 0; i < sizeof(oplist)/sizeof(*oplist); ++i) {
+ if (oplist[i].id == cmt->funcOp) {
+ funcOp->setCurrentItem(i);
+ break;
+ }
+ }
+ if (i == sizeof(oplist)/sizeof(*oplist))
+ printf("internal error: bad OpCode\n");
+ funcOpSel(i);
+ }
+
+ for (unsigned i = 0; i < sizeof(procTypeTable)/sizeof(*procTypeTable); ++i) {
+ if (procTypeTable[i] == cmt->eventType) {
+ procType->setCurrentItem(i);
+ break;
+ }
+ }
+
+ procEventOp->setCurrentItem(cmt->procEvent);
+ procEventOpSel(cmt->procEvent);
+
+ procVal1Op->setCurrentItem(cmt->procVal1);
+ procVal1OpSel(cmt->procVal1);
+
+ for (unsigned i = 0; i < sizeof(procVal2Map)/sizeof(*procVal2Map); ++i) {
+ if (procVal2Map[i] == cmt->procVal2) {
+ procVal2Op->setCurrentItem(i);
+ break;
+ }
+ }
+
+ selVal1a->setValue(cmt->selVal1a);
+ selVal1b->setValue(cmt->selVal1b);
+ selVal1aChanged(cmt->selVal1a);
+ selVal1bChanged(cmt->selVal1b);
+
+ selVal2a->setValue(cmt->selVal2a);
+ selVal2b->setValue(cmt->selVal2b);
+
+ selPortVala->setValue(cmt->selPorta);
+ selPortValb->setValue(cmt->selPortb);
+
+ selChannelVala->setValue(cmt->selChannela);
+ selChannelValb->setValue(cmt->selChannelb);
+
+ procVal1a->setValue(cmt->procVal1a);
+ procVal1b->setValue(cmt->procVal1b);
+
+ procVal2a->setValue(cmt->procVal2a);
+ procVal2b->setValue(cmt->procVal2b);
+
+ procPortVala->setValue(cmt->procPorta);
+ procPortValb->setValue(cmt->procPortb);
+
+ procChannelVala->setValue(cmt->procChannela);
+ procChannelValb->setValue(cmt->procChannelb);
+
+ procPortOp->setCurrentItem(cmt->procPort);
+ procPortOpSel(cmt->procPort);
+
+ procChannelOp->setCurrentItem(cmt->procChannel);
+ procChannelOpSel(cmt->procChannel);
+
+ }
+
diff --git a/muse2/muse/mplugins/midiitransform.h b/muse2/muse/mplugins/midiitransform.h
new file mode 100644
index 00000000..860797c5
--- /dev/null
+++ b/muse2/muse/mplugins/midiitransform.h
@@ -0,0 +1,101 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: midiitransform.h,v 1.1.1.1.2.1 2009/02/02 21:38:01 terminator356 Exp $
+//
+// (C) Copyright 2001 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __MIDIITRANSFORM_H__
+#define __MIDIITRANSFORM_H__
+
+#include "itransformbase.h"
+//Added by qt3to4:
+#include <QCloseEvent>
+
+class Q3ListBoxItem;
+class MidiTransformation;
+class MidiInputTransformation;
+class MidiRecordEvent;
+class MidiPart;
+class Xml;
+
+#include "miditransform.h"
+
+enum InputTransformProcEventOp { KeepType, FixType };
+//---------------------------------------------------------
+// MidiInputTransform
+//---------------------------------------------------------
+
+class MidiInputTransformDialog : public MidiInputTransformDialogBase {
+ Q_OBJECT
+ MidiInputTransformation* cmt;
+ int cindex; // current index in preset list
+ int cmodul; // current index in modules list
+
+ virtual void accept();
+ virtual void reject();
+ void setValOp(QWidget* a, QWidget* b, ValOp op);
+ virtual void closeEvent(QCloseEvent*);
+
+ void updatePresetList();
+
+ signals:
+ void hideWindow();
+
+ private slots:
+ void presetNew();
+ void presetDelete();
+
+ void changeModul(int k);
+ 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 presetChanged(Q3ListBoxItem*);
+ void nameChanged(const QString&);
+ void commentChanged();
+ 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 modul1enableChanged(bool);
+ void modul2enableChanged(bool);
+ void modul3enableChanged(bool);
+ void modul4enableChanged(bool);
+
+ void selPortOpSel(int);
+ void selPortValaChanged(int);
+ void selPortValbChanged(int);
+ void selChannelOpSel(int);
+ void selChannelValaChanged(int);
+ void selChannelValbChanged(int);
+ void procPortOpSel(int);
+ void procPortValaChanged(int);
+ void procPortValbChanged(int);
+ void procChannelOpSel(int);
+ void procChannelValaChanged(int);
+ void procChannelValbChanged(int);
+
+ public slots:
+ void songChanged(int);
+
+ public:
+ MidiInputTransformDialog(QWidget* parent = 0, const char* name = 0,
+ bool modal = false, Qt::WFlags fl = 0);
+ };
+
+extern void writeMidiInputTransforms(int level, Xml& xml);
+extern void readMidiInputTransform(Xml&);
+extern bool applyMidiInputTransformation(MidiRecordEvent& event);
+extern void clearMidiInputTransforms();
+#endif
diff --git a/muse2/muse/mplugins/mitplugin.cpp b/muse2/muse/mplugins/mitplugin.cpp
new file mode 100644
index 00000000..d8066e2c
--- /dev/null
+++ b/muse2/muse/mplugins/mitplugin.cpp
@@ -0,0 +1,145 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: mitplugin.cpp,v 1.1.1.1 2003/10/27 18:52:40 wschweer Exp $
+//
+// (C) Copyright 2001 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include <q3popupmenu.h>
+
+#include "mitplugin.h"
+#include "app.h"
+#include "event.h"
+#include "xml.h"
+
+#include "midiitransform.h"
+#include "mittranspose.h"
+#include "midifilterimpl.h"
+#include "mrconfig.h"
+#include "rhythm.h"
+
+MITPluginList mitPlugins;
+
+//---------------------------------------------------------
+// startMidiInputPlugin
+//---------------------------------------------------------
+
+void MusE::startMidiInputPlugin(int id)
+ {
+ bool flag = false;
+ QWidget* w = 0;
+ if (id == 0) {
+ if (!mitPluginTranspose) {
+ mitPluginTranspose = new MITPluginTranspose();
+ mitPlugins.push_back(mitPluginTranspose);
+ connect(mitPluginTranspose, SIGNAL(hideWindow()),
+ SLOT(hideMitPluginTranspose()));
+ }
+ w = mitPluginTranspose;
+ }
+ else if (id == 1) {
+ if (!midiInputTransform) {
+ midiInputTransform = new MidiInputTransformDialog();
+ connect(midiInputTransform, SIGNAL(hideWindow()),
+ SLOT(hideMidiInputTransform()));
+ }
+ w = midiInputTransform;
+ }
+ else if (id == 2) {
+ if (!midiFilterConfig) {
+ midiFilterConfig = new MidiFilterConfig();
+ connect(midiFilterConfig, SIGNAL(hideWindow()),
+ SLOT(hideMidiFilterConfig()));
+ }
+ w = midiFilterConfig;
+ }
+ else if (id == 3) {
+ if (!midiRemoteConfig) {
+ midiRemoteConfig = new MRConfig();
+ connect(midiRemoteConfig, SIGNAL(hideWindow()),
+ SLOT(hideMidiRemoteConfig()));
+ }
+ w = midiRemoteConfig;
+ }
+ else if (id == 4) {
+ if (!midiRhythmGenerator) {
+ midiRhythmGenerator = new RhythmGen();
+ connect(midiRhythmGenerator, SIGNAL(hideWindow()),
+ SLOT(hideMidiRhythmGenerator()));
+ }
+ w = midiRhythmGenerator;
+ }
+ if (w) {
+ flag = !w->isVisible();
+ if (flag)
+ w->show();
+ else
+ w->hide();
+ }
+ midiInputPlugins->setItemChecked(id, flag);
+ }
+
+void MusE::hideMitPluginTranspose()
+ {
+ midiInputPlugins->setItemChecked(0, false);
+ }
+void MusE::hideMidiInputTransform()
+ {
+ midiInputPlugins->setItemChecked(1, false);
+ }
+void MusE::hideMidiFilterConfig()
+ {
+ midiInputPlugins->setItemChecked(2, false);
+ }
+void MusE::hideMidiRemoteConfig()
+ {
+ midiInputPlugins->setItemChecked(3, false);
+ }
+void MusE::hideMidiRhythmGenerator()
+ {
+ midiInputPlugins->setItemChecked(4, false);
+ }
+
+//---------------------------------------------------------
+// processMidiInputTransformPlugins
+//---------------------------------------------------------
+
+void processMidiInputTransformPlugins(MEvent& event)
+ {
+ for (iMITPlugin i = mitPlugins.begin(); i != mitPlugins.end(); ++i)
+ (*i)->process(event);
+ }
+
+//---------------------------------------------------------
+// startMidiTransformer
+//---------------------------------------------------------
+
+void MusE::startMidiTransformer()
+ {
+ if (midiTransformerDialog == 0)
+ midiTransformerDialog = new MidiTransformerDialog(this);
+ midiTransformerDialog->show();
+ }
+
+//---------------------------------------------------------
+// writeStatusMidiInputTransformPlugins
+//---------------------------------------------------------
+
+void writeStatusMidiInputTransformPlugins(int level, Xml& xml)
+ {
+ for (iMITPlugin i = mitPlugins.begin(); i != mitPlugins.end(); ++i) {
+ xml.tag(level++, "mplugin name=\"%d\"");
+ (*i)->writeStatus(level, xml);
+ xml.etag(level, "mplugin");
+ }
+ }
+
+//---------------------------------------------------------
+// readStatusMidiInputTransformPlugin
+//---------------------------------------------------------
+
+void readStatusMidiInputTransformPlugin(Xml&)
+ {
+ }
+
diff --git a/muse2/muse/mplugins/mitplugin.h b/muse2/muse/mplugins/mitplugin.h
new file mode 100644
index 00000000..a7ab3729
--- /dev/null
+++ b/muse2/muse/mplugins/mitplugin.h
@@ -0,0 +1,39 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: mitplugin.h,v 1.1.1.1.2.1 2007/01/27 14:52:43 spamatica Exp $
+//
+// (C) Copyright 2001 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __MITPLUGIN_H__
+#define __MITPLUGIN_H__
+
+#include <list>
+
+class MEvent;
+class Xml;
+
+//---------------------------------------------------------
+// MITPlugin
+// midi input transform plugin
+//---------------------------------------------------------
+
+class MITPlugin {
+ public:
+ virtual ~MITPlugin(){}
+ virtual void process(MEvent& event) = 0;
+ virtual void readStatus(Xml&) {}
+ virtual void writeStatus(int, Xml&) const {}
+ };
+
+typedef std::list<MITPlugin*> MITPluginList;
+typedef MITPluginList::iterator iMITPlugin;
+
+extern MITPluginList mitPlugins;
+extern void processMidiInputTransformPlugins(MEvent&);
+extern void writeStatusMidiInputTransformPlugins(int, Xml&);
+extern void readStatusMidiInputTransformPlugin(Xml&);
+
+#endif
+
diff --git a/muse2/muse/mplugins/mittranspose.cpp b/muse2/muse/mplugins/mittranspose.cpp
new file mode 100644
index 00000000..b9a260c9
--- /dev/null
+++ b/muse2/muse/mplugins/mittranspose.cpp
@@ -0,0 +1,181 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: mittranspose.cpp,v 1.2.2.1 2009/05/03 04:14:00 terminator356 Exp $
+//
+// (C) Copyright 2001 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include <qcheckbox.h>
+#include <qspinbox.h>
+#include <qlabel.h>
+#include <qtimer.h>
+//Added by qt3to4:
+#include <QCloseEvent>
+
+#include "mittranspose.h"
+#include "song.h"
+#include "mpevent.h"
+#include "pitchedit.h"
+#include "xml.h"
+#include "globals.h"
+
+MITPluginTranspose* mitPluginTranspose;
+
+//---------------------------------------------------------
+// MITPluginTranspose
+//---------------------------------------------------------
+
+MITPluginTranspose::MITPluginTranspose(QWidget* parent, const char* name, Qt::WFlags fl)
+ : MITTransposeBase(parent, name, fl)
+ {
+ on = false;
+ transpose = 0;
+ trigger = 24;
+ transposeChangedFlag = false;
+ triggerKeySpinBox->setValue(trigger);
+
+ onToggled(false);
+ connect(onCheckBox, SIGNAL(toggled(bool)), SLOT(onToggled(bool)));
+ connect(triggerKeySpinBox, SIGNAL(valueChanged(int)),
+ SLOT(triggerKeyChanged(int)));
+ connect(heartBeatTimer, SIGNAL(timeout()), SLOT(noteReceived()));
+ }
+
+//---------------------------------------------------------
+// closeEvent
+//---------------------------------------------------------
+
+void MITPluginTranspose::closeEvent(QCloseEvent* ev)
+ {
+ emit hideWindow();
+ QWidget::closeEvent(ev);
+ }
+
+//---------------------------------------------------------
+// noteReceived
+//---------------------------------------------------------
+
+void MITPluginTranspose::noteReceived()
+ {
+ if (transposeChangedFlag)
+ {
+ // Added by Tim. p3.3.6
+ //printf("MITPluginTranspose::noteReceived\n");
+
+ transposeChanged();
+ }
+ }
+
+//---------------------------------------------------------
+// triggerKeyChanged
+//---------------------------------------------------------
+
+void MITPluginTranspose::triggerKeyChanged(int val)
+ {
+ trigger = val;
+ }
+
+//---------------------------------------------------------
+// transposeChanged
+//---------------------------------------------------------
+
+void MITPluginTranspose::transposeChanged()
+ {
+ QString s;
+ s.sprintf("%c%d", transpose >= 0 ? '-' : ' ', transpose);
+ transposeLabel->setText(s);
+ transposeChangedFlag = false;
+ }
+
+//---------------------------------------------------------
+// onToggled
+//---------------------------------------------------------
+
+void MITPluginTranspose::onToggled(bool f)
+ {
+ on = f;
+ if (!on) {
+ transpose = 0;
+ transposeChanged();
+ keyOnList.clear();
+ }
+ transposeLabel->setEnabled(on);
+ triggerKeySpinBox->setEnabled(on);
+ }
+
+//---------------------------------------------------------
+// process
+//---------------------------------------------------------
+
+void MITPluginTranspose::process(MEvent& ev)
+ {
+ if (!on || (ev.type() != 0x90))
+ return;
+ int pitch = ev.dataA();
+ if (pitch >= trigger && pitch < (trigger+12)) {
+ // process control keys
+ int diff = transpose - (pitch-trigger);
+ transpose -= diff;
+ transposeChangedFlag = true;
+ return;
+ }
+ if (ev.dataB() == 0) {
+ // Note Off
+ for (iKeyOn i = keyOnList.begin(); i != keyOnList.end(); ++i) {
+ if (i->pitch == pitch && i->channel == ev.channel()
+ && i->port == ev.port()) {
+ pitch += i->transpose;
+ keyOnList.erase(i);
+ break;
+ }
+ }
+ }
+ else {
+ // Note On
+ keyOnList.push_back(KeyOn(pitch, ev.channel(), ev.port(), transpose));
+ pitch += transpose;
+ }
+ ev.setA(pitch);
+ }
+
+//---------------------------------------------------------
+// readStatus
+//---------------------------------------------------------
+
+void MITPluginTranspose::readStatus(Xml& xml)
+ {
+ for (;;) {
+ Xml::Token token = xml.parse();
+ const QString& tag = xml.s1();
+ switch (token) {
+ case Xml::Error:
+ case Xml::End:
+ return;
+ case Xml::Text:
+ if (tag == "on")
+ on = xml.parseInt();
+ else if (tag == "trigger")
+ trigger = xml.parseInt();
+ else
+ xml.unknown("TransposePlugin");
+ break;
+ case Xml::TagEnd:
+ if (xml.s1() == "mplugin")
+ return;
+ default:
+ break;
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// writeStatus
+//---------------------------------------------------------
+
+void MITPluginTranspose::writeStatus(int level, Xml& xml) const
+ {
+ xml.intTag(level, "on", on);
+ xml.intTag(level, "trigger", trigger);
+ }
+
diff --git a/muse2/muse/mplugins/mittranspose.h b/muse2/muse/mplugins/mittranspose.h
new file mode 100644
index 00000000..b942eddf
--- /dev/null
+++ b/muse2/muse/mplugins/mittranspose.h
@@ -0,0 +1,70 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: mittranspose.h,v 1.1.1.1 2003/10/27 18:52:40 wschweer Exp $
+//
+// (C) Copyright 2001 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __MITTRANSPOSE_H__
+#define __MITTRANSPOSE_H__
+
+#include "mitplugin.h"
+#include "mittransposebase.h"
+#include <list>
+//Added by qt3to4:
+#include <QCloseEvent>
+
+struct KeyOn {
+ unsigned char pitch;
+ unsigned char channel;
+ unsigned char port;
+ char transpose;
+ KeyOn(int a, int b, int c, int d) {
+ pitch = a;
+ transpose = d;
+ channel = b;
+ port = c;
+ }
+ };
+
+typedef std::list<KeyOn > KeyOnList;
+typedef KeyOnList::iterator iKeyOn;
+
+class Xml;
+
+//---------------------------------------------------------
+// MITPluginTranspose
+//---------------------------------------------------------
+
+class MITPluginTranspose : public MITTransposeBase, public MITPlugin {
+ Q_OBJECT
+
+ KeyOnList keyOnList;
+ int transpose; // current pitch offset
+ int trigger;
+ bool on;
+ bool transposeChangedFlag;
+
+ void transposeChanged();
+ virtual void closeEvent(QCloseEvent*);
+
+ signals:
+ void hideWindow();
+
+ private slots:
+ void onToggled(bool);
+ void triggerKeyChanged(int);
+ void noteReceived();
+
+ public:
+ MITPluginTranspose(QWidget* parent = 0, const char* name = 0, Qt::WFlags fl = 0);
+ virtual void process(MEvent&);
+ virtual void readStatus(Xml&);
+ virtual void writeStatus(int, Xml&) const;
+ };
+
+extern MITPluginTranspose* mitPluginTranspose;
+
+#endif
+
diff --git a/muse2/muse/mplugins/mrconfig.cpp b/muse2/muse/mplugins/mrconfig.cpp
new file mode 100644
index 00000000..38b67de3
--- /dev/null
+++ b/muse2/muse/mplugins/mrconfig.cpp
@@ -0,0 +1,71 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: mrconfig.cpp,v 1.1.1.1 2003/10/27 18:52:43 wschweer Exp $
+//
+// (C) Copyright 2001 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include "pitchedit.h"
+#include "mrconfig.h"
+#include "globals.h"
+#include <qcheckbox.h>
+//Added by qt3to4:
+#include <QCloseEvent>
+
+//---------------------------------------------------------
+// MRConfig
+// Midi Remote Control Config
+//---------------------------------------------------------
+
+MRConfig::MRConfig(QWidget* parent, const char* name, Qt::WFlags fl)
+ : MRConfigBase(parent, name, fl)
+ {
+ b1->setChecked(rcEnable);
+ sb1->setValue(rcStopNote);
+ sb2->setValue(rcRecordNote);
+ sb3->setValue(rcGotoLeftMarkNote);
+ sb4->setValue(rcPlayNote);
+
+ connect(b1, SIGNAL(toggled(bool)), SLOT(setRcEnable(bool)));
+ connect(sb1, SIGNAL(valueChanged(int)), SLOT(setRcStopNote(int)));
+ connect(sb2, SIGNAL(valueChanged(int)), SLOT(setRcRecordNote(int)));
+ connect(sb3, SIGNAL(valueChanged(int)), SLOT(setRcGotoLeftMarkNote(int)));
+ connect(sb4, SIGNAL(valueChanged(int)), SLOT(setRcPlayNote(int)));
+ }
+
+//---------------------------------------------------------
+// closeEvent
+//---------------------------------------------------------
+
+void MRConfig::closeEvent(QCloseEvent* ev)
+ {
+ emit hideWindow();
+ QWidget::closeEvent(ev);
+ }
+
+void MRConfig::setRcEnable(bool f)
+ {
+ rcEnable = f;
+ }
+
+void MRConfig::setRcStopNote(int val)
+ {
+ rcStopNote = val;
+ }
+
+void MRConfig::setRcRecordNote(int val)
+ {
+ rcRecordNote = val;
+ }
+
+void MRConfig::setRcGotoLeftMarkNote(int val)
+ {
+ rcGotoLeftMarkNote = val;
+ }
+
+void MRConfig::setRcPlayNote(int val)
+ {
+ rcPlayNote = val;
+ }
+
diff --git a/muse2/muse/mplugins/mrconfig.h b/muse2/muse/mplugins/mrconfig.h
new file mode 100644
index 00000000..67b1976c
--- /dev/null
+++ b/muse2/muse/mplugins/mrconfig.h
@@ -0,0 +1,40 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: mrconfig.h,v 1.1.1.1 2003/10/27 18:52:43 wschweer Exp $
+//
+// (C) Copyright 2001 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __MRCONFIG_H__
+#define __MRCONFIG_H__
+
+#include "mrconfigbase.h"
+//Added by qt3to4:
+#include <QCloseEvent>
+
+//---------------------------------------------------------
+// MRConfig
+//---------------------------------------------------------
+
+class MRConfig : public MRConfigBase {
+ Q_OBJECT
+
+ virtual void closeEvent(QCloseEvent*);
+
+ signals:
+ void hideWindow();
+
+ private slots:
+ void setRcEnable(bool);
+ void setRcStopNote(int);
+ void setRcRecordNote(int);
+ void setRcGotoLeftMarkNote(int);
+ void setRcPlayNote(int);
+
+ public:
+ MRConfig(QWidget* parent=0, const char* name=0, Qt::WFlags fl = 0);
+ };
+
+#endif
+
diff --git a/muse2/muse/mplugins/mrconfigbase.ui b/muse2/muse/mplugins/mrconfigbase.ui
new file mode 100644
index 00000000..299f9183
--- /dev/null
+++ b/muse2/muse/mplugins/mrconfigbase.ui
@@ -0,0 +1,200 @@
+<!DOCTYPE UI><UI version="3.0" stdsetdef="1">
+<class>MRConfigBase</class>
+<widget class="QWidget">
+ <property name="name">
+ <cstring>MRConfigBase</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>298</width>
+ <height>203</height>
+ </rect>
+ </property>
+ <property name="caption">
+ <string>MusE: Midi Input Plugin: Remote Control</string>
+ </property>
+ <vbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>11</number>
+ </property>
+ <property name="spacing">
+ <number>6</number>
+ </property>
+ <widget class="QGroupBox">
+ <property name="name">
+ <cstring>GroupBox2</cstring>
+ </property>
+ <property name="title">
+ <string>Activate</string>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>11</number>
+ </property>
+ <property name="spacing">
+ <number>6</number>
+ </property>
+ <widget class="QCheckBox">
+ <property name="name">
+ <cstring>b1</cstring>
+ </property>
+ <property name="text">
+ <string>On</string>
+ </property>
+ </widget>
+ </hbox>
+ </widget>
+ <widget class="QGroupBox">
+ <property name="name">
+ <cstring>GroupBox1</cstring>
+ </property>
+ <property name="title">
+ <string>Actions</string>
+ </property>
+ <grid>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>11</number>
+ </property>
+ <property name="spacing">
+ <number>6</number>
+ </property>
+ <widget class="QLabel" row="0" column="0">
+ <property name="name">
+ <cstring>TextLabel1</cstring>
+ </property>
+ <property name="text">
+ <string>Stop</string>
+ </property>
+ </widget>
+ <widget class="QLabel" row="1" column="0">
+ <property name="name">
+ <cstring>TextLabel2</cstring>
+ </property>
+ <property name="text">
+ <string>Record</string>
+ </property>
+ </widget>
+ <widget class="QLabel" row="2" column="0">
+ <property name="name">
+ <cstring>TextLabel3</cstring>
+ </property>
+ <property name="text">
+ <string>Goto Left Mark</string>
+ </property>
+ </widget>
+ <widget class="QLabel" row="3" column="0">
+ <property name="name">
+ <cstring>TextLabel4</cstring>
+ </property>
+ <property name="text">
+ <string>Play</string>
+ </property>
+ </widget>
+ <widget class="PitchEdit" row="0" column="1">
+ <property name="name">
+ <cstring>sb1</cstring>
+ </property>
+ </widget>
+ <widget class="PitchEdit" row="1" column="1">
+ <property name="name">
+ <cstring>sb2</cstring>
+ </property>
+ </widget>
+ <widget class="PitchEdit" row="2" column="1">
+ <property name="name">
+ <cstring>sb3</cstring>
+ </property>
+ </widget>
+ <widget class="PitchEdit" row="3" column="1">
+ <property name="name">
+ <cstring>sb4</cstring>
+ </property>
+ </widget>
+ <spacer row="0" column="2">
+ <property name="name" stdset="0">
+ <cstring>Spacer1</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>20</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ <spacer row="1" column="2">
+ <property name="name" stdset="0">
+ <cstring>Spacer2</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>20</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ <spacer row="2" column="2">
+ <property name="name" stdset="0">
+ <cstring>Spacer3</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>20</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ <spacer row="3" column="2">
+ <property name="name" stdset="0">
+ <cstring>Spacer4</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>20</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </grid>
+ </widget>
+ </vbox>
+</widget>
+<layoutdefaults spacing="6" margin="11"/>
+<includes>
+ <include location="local" impldecl="in declaration">pitchedit.h</include>
+</includes>
+</UI>
diff --git a/muse2/muse/mplugins/random.cpp b/muse2/muse/mplugins/random.cpp
new file mode 100644
index 00000000..5360d6b8
--- /dev/null
+++ b/muse2/muse/mplugins/random.cpp
@@ -0,0 +1,758 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: random.cpp,v 1.1.1.1 2003/10/27 18:52:39 wschweer Exp $
+//
+// (C) Copyright 2001 Werner Schweer (ws@seh.de)
+//
+// This code is an adaption of the random rhythm generator taken
+// from "The JAZZ++ Midi Sequencer"
+// Copyright (C) 1994-2000 Andreas Voss and Per Sigmond, all
+// rights reserved.
+// Distributed under the GNU General Public License
+//=========================================================
+
+#if 0
+#include "random.h"
+#include "util.h"
+#include <assert.h>
+
+
+#if USE_ACG
+ACG rnd(0, 55);
+#else
+#include <stdlib.h>
+double tRandomGenerator::asDouble()
+{
+ return double(rand()) / double(RAND_MAX);
+}
+tRandomGenerator rnd;
+#endif
+
+
+// Array of probabilities
+
+tRndArray::tRndArray(int nn, int mmin, int mmax)
+{
+ int i;
+ n = nn;
+ for (i = 0; i < n; i++)
+ array[i] = mmin;
+ min = mmin;
+ max = mmax;
+ nul = min > 0 ? min : 0;
+}
+
+
+void tRndArray::SetMinMax(int mi, int ma)
+{
+ min = mi;
+ max = ma;
+ nul = min > 0 ? min : 0;
+ for (int i = 0; i < array.GetSize(); i++)
+ {
+ if (array[i] < min)
+ array[i] = min;
+ else if (array[i] > max)
+ array[i] = max;
+ }
+}
+
+tRndArray::~tRndArray()
+{
+}
+
+#ifdef FOR_MSW
+double tRndArray::operator[](double f)
+#else
+double tRndArray::operator[](double f) const
+#endif
+{
+ int i = (int)f;
+ if (i < 0)
+ i = 0;
+ else if (i >= n - 2)
+ i = n - 2;
+ tMapper map(i, i+1, array[i], array[i+1]);
+ return map(f);
+}
+
+
+tRndArray & tRndArray::operator = (const tRndArray &o)
+{
+ if (this == &o)
+ return *this;
+
+ array = o.array;
+ n = o.n;
+ min = o.min;
+ max = o.max;
+ nul = o.nul;
+ return *this;
+}
+
+
+tRndArray::tRndArray(const tRndArray &o)
+ : array(o.array)
+{
+ n = o.n;
+ min = o.min;
+ max = o.max;
+ nul = o.nul;
+}
+
+
+int tRndArray::Random()
+{
+ return Random(rnd.asDouble());
+}
+
+int tRndArray::Random(double rndval)
+{
+ double sum, dec;
+ int i;
+
+ assert(n > 0);
+
+ sum = 0.0;
+ for (i = 0; i < n; i++)
+ {
+ assert(array[i] >= 0);
+ sum += array[i];
+ }
+ if (sum <= 0)
+ return 0;
+
+ dec = sum * rndval * 0.99999;
+ assert(dec < sum);
+
+ i = 0;
+ while (dec >= 0.0)
+ {
+ dec -= array[i];
+ i++;
+ }
+ i--;
+
+ assert(i >= 0 && i < n);
+ return i;
+}
+
+
+int tRndArray::Interval(int seed)
+{
+ if (seed < 0) // initial ?
+ seed = int(rnd.asDouble() * n);
+ int delta = Random();
+ if (rnd.asDouble() < 0.5)
+ delta = -delta;
+ seed = (seed + n + delta) % n;
+ return seed;
+}
+
+int tRndArray::Random(int i)
+{
+ return rnd.asDouble() * (max - min) < array[i];
+}
+
+
+void tRndArray::SetUnion(tRndArray &o, int fuzz)
+{
+ for (int i = 0; i < n; i++)
+ {
+ int val = array[i];
+ if (o.array[i] > val)
+ val = o.array[i];
+ array[i] = Fuzz(fuzz, array[i], val);
+ }
+}
+
+
+void tRndArray::SetIntersection(tRndArray &o, int fuzz)
+{
+ for (int i = 0; i < n; i++)
+ {
+ int val = array[i];
+ if (o.array[i] < val)
+ val = o.array[i];
+ array[i] = Fuzz(fuzz, array[i], val);
+ }
+}
+
+
+void tRndArray::SetDifference(tRndArray &o, int fuzz)
+{
+ tRndArray tmp(o);
+ tmp.SetInverse(tmp.Max());
+ SetIntersection(tmp, fuzz);
+}
+
+
+void tRndArray::SetInverse(int fuzz)
+{
+ for (int i = 0; i < n; i++)
+ array[i] = Fuzz(fuzz, array[i], min + max - array[i]);
+}
+
+
+int tRndArray::Fuzz(int fuz, int v1, int v2) const
+{
+ // interpolate between v1 and v2
+ return (fuz - min) * v2 / (max - min) + (max - fuz) * v1 / (max - min);
+}
+
+
+void tRndArray::Clear()
+{
+ for (int i = 0; i < n; i++)
+ array[i] = min;
+}
+
+
+ostream & operator << (ostream &os, tRndArray const &a)
+{
+ int i;
+
+ os << a.n << " " << a.min << " " << a.max << endl;
+ for (i = 0; i < a.n; i++)
+ os << a.array[i] << " ";
+ os << endl;
+ return os;
+}
+
+
+istream & operator >> (istream &is, tRndArray &a)
+{
+ int i;
+ is >> a.n >> a.min >> a.max;
+ for (i = 0; i < a.n; i++)
+ is >> a.array[i];
+ return is;
+}
+
+
+// --------------------------------- tArrayEdit -------------------------------------
+
+// length of tickmark line
+#define TICK_LINE 0
+
+tArrayEdit::tArrayEdit(wxFrame *frame, tRndArray &ar, long xx, long yy, long ww, long hh, int sty)
+ : wxCanvas(frame, xx, yy, ww, hh),
+ array(ar),
+ n(ar.n),
+ min(ar.min),
+ max(ar.max),
+ nul(ar.nul)
+{
+ draw_bars = 0;
+ enabled = 1;
+ dragging = 0;
+ index = -1;
+ label = 0;
+ style_bits = sty;
+
+ xmin = 0;
+ xmax = n;
+
+ x = 0; // draw to topleft corner of canvas
+ y = 0;
+ w = ww;
+ h = hh;
+
+ float tw, th;
+ wxDC *dc = GetDC();
+ dc->SetFont(wxSMALL_FONT);
+ dc->GetTextExtent("123", &tw, &th);
+ if (style_bits & ARED_XTICKS)
+ {
+ // leave space for bottomline
+ h -= (int)th;
+ }
+
+ if (style_bits & (ARED_MINMAX | ARED_YTICKS))
+ {
+ // leave space to display min / max
+ x = (int)(tw + TICK_LINE);
+ w -= (int)(tw + TICK_LINE);
+ }
+
+ ynul = y + h - h * (nul - min) / (max - min);
+}
+
+
+void tArrayEdit::OnSize(int ww, int hh)
+{
+ w = ww;
+ h = hh;
+ wxCanvas::OnSize(w, h);
+ float tw, th;
+ GetDC()->GetTextExtent("123", &tw, &th);
+ if (style_bits & ARED_XTICKS)
+ h -= (int)th;
+ if (style_bits & (ARED_MINMAX | ARED_YTICKS))
+ {
+ x = (int)(tw + TICK_LINE);
+ w -= (int)(tw + TICK_LINE);
+ }
+ ynul = y + h - h * (nul - min) / (max - min);
+}
+
+tArrayEdit::~tArrayEdit()
+{
+ delete [] label;
+}
+
+void tArrayEdit::DrawBar(int i, int Qt::black)
+{
+ wxDC *dc = GetDC();
+
+ if (style_bits & ARED_LINES)
+ {
+ if (!Qt::black)
+ dc->SetPen(wxWHITE_PEN);
+
+ tMapper xmap(0, n, 0, w);
+ tMapper ymap(min, max, h, 0);
+
+ float x1 = (float)xmap(i + 0.5);
+ float y1 = (float)ymap(array[i]);
+ if (i > 0)
+ {
+ // draw line to prev position
+ float x0 = (float)xmap(i - 0.5);
+ float y0 = (float)ymap(array[i-1]);
+ dc->DrawLine(x0, y0, x1, y1);
+ }
+ if (i < n-1)
+ {
+ // draw line to next position
+ float x2 = (float)xmap(i + 1.5);
+ float y2 = (float)ymap(array[i+1]);
+ dc->DrawLine(x1, y1, x2, y2);
+ }
+
+ if (!Qt::black)
+ dc->SetPen(wxBLACK_PEN);
+ return;
+ }
+
+ int gap = 0;
+ if (style_bits & ARED_GAP)
+ {
+ gap = w / n / 6;
+ if (!gap && w / n > 3)
+ gap = 1;
+ }
+ long xbar, ybar, wbar, hbar;
+
+ wbar = w / n - 2 * gap;
+ xbar = x + i * w / n + gap;
+ hbar = h * (array[i] - nul) / (max - min);
+
+ if (style_bits & ARED_BLOCKS)
+ {
+ /*
+ ybar = ynul - hbar;
+ if (hbar < 0)
+ hbar = -hbar;
+ hbar = (hbar < 2) ? hbar : 2;
+ */
+ int hblk = 12;
+
+ ybar = ynul - hbar - hblk/2;
+ hbar = hblk;
+ if (ybar < y) {
+ int d = y - ybar;
+ ybar += d;
+ hbar -= d;
+ }
+ if (ybar + hbar > y + h) {
+ int d = (ybar + hbar) - (y + h);
+ hbar -= d;
+ }
+ if (hbar < 2)
+ hbar = 2;
+ }
+ else
+
+ if (hbar < 0)
+ {
+ ybar = ynul;
+ hbar = -hbar;
+ }
+ else
+ ybar = ynul - hbar;
+
+ if (ybar == y)
+ ++ybar, --hbar;
+
+ if (!Qt::black)
+ {
+ dc->SetBrush(wxWHITE_BRUSH);
+ dc->SetPen(wxWHITE_PEN);
+ }
+ if (wbar && hbar)
+ dc->DrawRectangle(xbar, ybar, wbar, hbar);
+ if (!Qt::black)
+ {
+ dc->SetBrush(wxBLACK_BRUSH);
+ dc->SetPen(wxBLACK_PEN);
+ }
+}
+
+const char *tArrayEdit::GetXText(int xval)
+{
+ static char buf[8];
+ sprintf(buf, "%d", xval);
+ return buf;
+}
+
+const char *tArrayEdit::GetYText(int yval)
+{
+ static char buf[8];
+ sprintf(buf, "%d", yval);
+ return buf;
+}
+
+void tArrayEdit::DrawXTicks()
+{
+ float tw, th;
+
+ if (!(style_bits & ARED_XTICKS))
+ return;
+
+ wxDC *dc = GetDC();
+ dc->SetFont(wxSMALL_FONT);
+
+ // compute tickmark x-distance
+ dc->GetTextExtent("-123", &tw, &th);
+ int max_labels = (int)(w / (tw + tw/2));
+ if (max_labels > 0)
+ {
+ int step = (xmax - xmin + 1) / max_labels;
+ if (step <= 0)
+ step = 1;
+ for (int val = xmin; val <= xmax; val += step)
+ {
+ const char *buf = GetXText(val);
+ //sprintf(buf, "%d", val);
+ dc->GetTextExtent((char *)buf, &tw, &th);
+ float yy = y + h;
+ float xx = x + w * (val - xmin) / (xmax - xmin + 1);
+ xx -= tw/2; // center text
+ xx += 0.5 * w / n; // middle of bar
+ dc->DrawText(buf, xx, yy);
+ //dc->DrawLine(x - TICK_LINE, yy, x, yy);
+ }
+ }
+
+ dc->SetFont(wxNORMAL_FONT);
+}
+
+
+void tArrayEdit::DrawYTicks()
+{
+ wxDC *dc = GetDC();
+ dc->SetFont(wxSMALL_FONT);
+
+ if (style_bits & ARED_YTICKS)
+ {
+ // compute tickmark y-distance
+ float tw, th;
+ dc->GetTextExtent("-123", &tw, &th);
+ int max_labels = (int)(h / (th + th/2));
+ if (max_labels > 0)
+ {
+ int step = (max - min) / max_labels;
+ if (step <= 0)
+ step = 1;
+ for (int val = min; val < max; val += step)
+ {
+ const char *buf = GetYText(val);
+ //sprintf(buf, "%d", val);
+ dc->GetTextExtent((char *)buf, &tw, &th);
+ float yy = y + h - h * (val - min) / (max - min) - th/2;
+ dc->DrawText(buf, x - tw - TICK_LINE, yy);
+ //dc->DrawLine(x - TICK_LINE, yy, x, yy);
+ }
+ }
+ }
+
+ else if (style_bits & ARED_MINMAX)
+ {
+ // min/max
+ float tw, th;
+ char buf[20];
+ sprintf(buf, "%d", max);
+ dc->GetTextExtent(buf, &tw, &th);
+ dc->DrawText(buf, x - tw, y);
+ sprintf(buf, "%d", min);
+ dc->GetTextExtent(buf, &tw, &th);
+ dc->DrawText(buf, x - tw, y + h - th);
+
+ }
+
+ dc->SetFont(wxNORMAL_FONT);
+
+}
+
+void tArrayEdit::DrawLabel()
+{
+ wxDC *dc = GetDC();
+ dc->SetFont(wxSMALL_FONT);
+ if (label)
+ dc->DrawText(label, x + 5, y + 2);
+ dc->SetFont(wxNORMAL_FONT);
+}
+
+
+
+void tArrayEdit::OnPaint()
+{
+ int i;
+ wxDC *dc = GetDC();
+
+ // surrounding rectangle
+ dc->Clear();
+ if (enabled)
+ dc->SetBrush(wxWHITE_BRUSH);
+ else
+ dc->SetBrush(wxGREY_BRUSH);
+ dc->SetPen(wxBLACK_PEN);
+ if (w && h)
+ dc->DrawRectangle(x, y, w, h);
+
+ // sliders
+ dc->SetBrush(wxBLACK_BRUSH);
+ for (i = 0; i < n; i++)
+ DrawBar(i, 1);
+
+ DrawXTicks();
+ DrawLabel();
+ DrawYTicks();
+ DrawNull();
+ if (draw_bars)
+ draw_bars->DrawBars();
+}
+
+
+
+void tArrayEdit::DrawNull()
+{
+ wxDC *dc = GetDC();
+ dc->SetPen(wxCYAN_PEN);
+ // draw y-null line
+ if (min < nul && nul < max)
+ dc->DrawLine(x, ynul, x+w, ynul);
+ // draw x-null line
+ if (xmin < 0 && 0 < xmax)
+ {
+ float x0 = w * (0 - xmin) / (xmax - xmin);
+ dc->DrawLine(x0, y, x0, y + h);
+ }
+ dc->SetPen(wxBLACK_PEN);
+}
+
+
+
+void tArrayEdit::SetXMinMax(int xmi, int xma)
+{
+ xmin = xmi;
+ xmax = xma;
+}
+
+int tArrayEdit::Index(wxMouseEvent &e)
+{
+ float ex, ey;
+ e.Position(&ex, &ey);
+ int i = (int)( ((short)ex - x) * n / w);
+ i = i < 0 ? 0 : i;
+ i = i >= n ? n-1 : i;
+ return i;
+}
+
+int tArrayEdit::Dragging(wxMouseEvent &e)
+{
+ if (!dragging)
+ return 0;
+
+ if (index < 0)
+ index = Index(e);
+
+ int val = nul;
+ if (e.LeftIsDown())
+ {
+ float ex, ey;
+ e.Position(&ex, &ey);
+ // $blk$ val = (int)( (y + h - (short)ey) * (max - min) / h + min);
+ val = (int)( (double)(y + h - ey) * (max - min) / h + min + 0.5);
+ val = val > max ? max : val;
+ val = val < min ? min : val;
+ }
+
+#if 0
+ {
+ // in msw ex,ey are 65536 for negative values!
+ wxDC *dc = GetDC();
+ char buf[500];
+ sprintf(buf, "x %4.0f, y %4.0f, sh %d", ex, ey, e.ShiftDown());
+ dc->DrawText(buf, 50, 50);
+ }
+#endif
+
+ if (e.ShiftDown())
+ {
+ int k;
+ for (k = 0; k < n; k++)
+ {
+ DrawBar(k, 0);
+ array[k] = val;
+ DrawBar(k, 1);
+ }
+ }
+ else if (e.ControlDown())
+ {
+ DrawBar(index, 0);
+ array[index] = val;
+ DrawBar(index, 1);
+ }
+ else
+ {
+ int i = Index(e);
+ int k = i;
+ if (i < index)
+ for (; i <= index; i++)
+ {
+ DrawBar(i, 0);
+ array[i] = val;
+ DrawBar(i, 1);
+ }
+ else
+ for (; i >= index; i--)
+ {
+ DrawBar(i, 0);
+ array[i] = val;
+ DrawBar(i, 1);
+ }
+ index = k;
+ }
+
+ return 0;
+}
+
+int tArrayEdit::ButtonDown(wxMouseEvent &e)
+{
+#ifdef wx_msw
+ CaptureMouse();
+#endif
+ dragging = 1;
+ index = Index(e);
+ Dragging(e);
+ return 0;
+}
+
+int tArrayEdit::ButtonUp(wxMouseEvent &e)
+{
+#ifdef wx_msw
+ ReleaseMouse();
+#endif
+ dragging = 0;
+ index = -1;
+ DrawLabel();
+ DrawNull();
+ return 0;
+}
+
+
+void tArrayEdit::OnEvent(wxMouseEvent &e)
+{
+ if (!enabled)
+ return;
+ if (e.ButtonDown())
+ ButtonDown(e);
+ else if (e.Dragging())
+ Dragging(e);
+ else if (e.ButtonUp())
+ ButtonUp(e);
+}
+
+void tArrayEdit::Enable(int e)
+{
+ enabled = e;
+}
+
+void tArrayEdit::SetLabel(char const *llabel)
+{
+ delete label;
+ label = copystring(llabel);
+}
+
+void tArrayEdit::SetYMinMax(int mi, int ma)
+{
+ array.SetMinMax(mi, ma);
+ ynul = y + h - h * (nul - min) / (max - min);
+}
+
+void tArrayEdit::DrawBarLine (long xx)
+{
+ wxDC *dc = GetDC ();
+ // fprintf(stderr,"x: %ld, xx: %ld\n",x,xx);
+ if (xx > x && xx + 1 < x + w)
+ {
+ dc->SetPen (wxLIGHT_GREY_PEN);
+ dc->DrawLine (xx, y + 1, xx, y + h - 2);
+ dc->SetPen (wxBLACK_PEN);
+ }
+}
+
+
+
+tRhyArrayEdit::tRhyArrayEdit(wxFrame *parent, tRndArray &array, long xx, long yy, long ww, long hh, int sty)
+ : tArrayEdit(parent, array, xx, yy, ww, hh, sty)
+{
+ steps_per_count = 4;
+ count_per_bar = 4;
+ n_bars = 4;
+}
+
+void tRhyArrayEdit::SetMeter(int s, int c, int b)
+{
+ steps_per_count = s;
+ count_per_bar = c;
+ n_bars = b;
+ array.Resize(s * c * b);
+ SetXMinMax(1, s * c * b);
+}
+
+
+void tRhyArrayEdit::DrawXTicks()
+{
+ if (!(style_bits & ARED_RHYTHM))
+ {
+ tArrayEdit::DrawXTicks();
+ return;
+ }
+
+ char buf[20];
+ float tw, th;
+
+ wxDC *dc = GetDC();
+ dc->SetFont(wxSMALL_FONT);
+
+ // tick marks
+ assert(steps_per_count && count_per_bar && n_bars);
+ int i;
+ for (i = 0; i < n; i += steps_per_count)
+ {
+ int mark = (i / steps_per_count) % count_per_bar + 1;
+ sprintf(buf, "%d", mark);
+ float yy = y + h;
+ float xx = x + (i + 0.5) * w / n;
+ dc->GetTextExtent(buf, &tw, &th);
+ xx -= tw/2.0;
+ dc->DrawText(buf, xx, yy);
+ }
+ dc->SetFont(wxNORMAL_FONT);
+}
+#endif
+
diff --git a/muse2/muse/mplugins/random.h b/muse2/muse/mplugins/random.h
new file mode 100644
index 00000000..2c9dfe5b
--- /dev/null
+++ b/muse2/muse/mplugins/random.h
@@ -0,0 +1,192 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: random.h,v 1.1.1.1 2003/10/27 18:52:43 wschweer Exp $
+//
+// (C) Copyright 2001 Werner Schweer (ws@seh.de)
+//
+// This code is an adaption of the random rhythm generator taken
+// from "The JAZZ++ Midi Sequencer"
+// Copyright (C) 1994-2000 Andreas Voss and Per Sigmond, all
+// rights reserved.
+// Distributed under the GNU General Public License
+//=========================================================
+
+#if 0
+#ifndef random_h
+#define random_h
+
+#ifndef wx_wxh
+#include "wx.h"
+#endif
+
+#ifndef _FSTREAM_H
+#include <fstream.h>
+#endif
+
+#ifndef dynarray_h
+#include "dynarray.h"
+#endif
+
+// gcc > 2.7.2 does not have ACG anymore?
+#define USE_ACG 0
+
+#if USE_ACG
+#include <ACG.h> // random generator from libg++
+extern ACG rnd;
+
+#else
+
+class tRandomGenerator
+{
+ public:
+ double asDouble();
+};
+extern tRandomGenerator rnd;
+
+#endif
+
+
+#undef min
+#undef max
+
+
+// array of probabilities
+
+class tRndArray
+{
+ friend class tArrayEdit;
+ protected:
+ tIntArray array;
+ int n; // number of elements in array
+ int nul, min, max;
+
+ public:
+ int Null() { return nul; }
+ void SetNull(int n) { nul = n; }
+ tRndArray(int n, int min, int max);
+ tRndArray & operator = (const tRndArray &);
+ tRndArray(tRndArray const &);
+
+ virtual ~tRndArray();
+ int &operator[] (int i) { return array[i]; }
+ int operator[] (int i) const { return array[i]; }
+#ifdef FOR_MSW
+ double operator[](double f);
+ float operator[](float f) {
+#else
+ double operator[](double f) const;
+ float operator[](float f) const {
+#endif
+ return (float)operator[]((double)f);
+ }
+ int Size() const { return n; }
+ int Min() const { return min; }
+ int Max() const { return max; }
+ void SetMinMax(int min, int max);
+ void Resize(int nn) { n = nn; }
+
+ friend ostream & operator << (ostream &, tRndArray const &);
+ friend istream & operator >> (istream &, tRndArray &);
+
+ int Random(); // returns index 0..n-1 (arrayvalues -> empiric distribution)
+ int Random(double rndval); // returns index 0..n-1 (arrayvalues -> empiric distribution)
+ int Random(int i); // return 0/1
+ int Interval(int seed);
+
+ void SetUnion(tRndArray &o, int fuzz);
+ void SetDifference(tRndArray &o, int fuzz);
+ void SetIntersection(tRndArray &o, int fuzz);
+ void SetInverse(int fuzz);
+ int Fuzz(int fuzz, int v1, int v2) const;
+ void Clear();
+};
+
+
+#define ARED_GAP 1
+#define ARED_XTICKS 2
+#define ARED_YTICKS 4
+#define ARED_MINMAX 8
+#define ARED_RHYTHM 16
+#define ARED_BLOCKS 32
+#define ARED_LINES 64
+
+
+class tArrayEditDrawBars {
+ public:
+ virtual void DrawBars() = 0;
+};
+
+
+class tArrayEdit : public wxCanvas
+{
+protected:
+ // paint position
+ long x, y, w, h, ynul;
+ void DrawBar(int i, int Qt::black);
+
+ int dragging; // Dragging-Event valid
+ int index; // ctrl down: drag this one
+
+ tRndArray &array;
+ int &n, &min, &max, &nul; // shorthand for array.n, array.min, ...
+ char *label;
+ tArrayEditDrawBars *draw_bars;
+
+ // array size is mapped to this range for x-tick marks
+ int xmin, xmax;
+
+ virtual void DrawXTicks();
+ virtual void DrawYTicks();
+ virtual void DrawLabel();
+ virtual void DrawNull();
+ int Index(wxMouseEvent &e);
+
+ int enabled;
+ int style_bits;
+
+ virtual const char *GetXText(int xval); // Text for x-tickmarks
+ virtual const char *GetYText(int yval); // Text for y-tickmarks
+
+
+public:
+ tArrayEdit(wxFrame *parent, tRndArray &array, long xx, long yy, long ww, long hh, int style_bits = (ARED_GAP | ARED_XTICKS));
+ virtual ~tArrayEdit();
+
+ virtual void OnPaint();
+ virtual void OnSize(int ww, int hh);
+ virtual void OnEvent(wxMouseEvent &e);
+ virtual int Dragging(wxMouseEvent &);
+ virtual int ButtonDown(wxMouseEvent &);
+ virtual int ButtonUp(wxMouseEvent &);
+
+ virtual void SetLabel(char const *llabel);
+ void Enable(int enable = 1);
+ void SetStyle(int style) { style_bits = style; }
+ // min and max value in array (both values inclusive)
+ void SetYMinMax(int min, int max);
+ // for display x-axis only, does not resize the array (both values inclusive)
+ void SetXMinMax(int xmin, int xmax);
+ void DrawBarLine (long xx);
+ void SetDrawBars(tArrayEditDrawBars *x) { draw_bars = x; }
+ void Init() {}
+};
+
+
+
+class tRhyArrayEdit : public tArrayEdit
+{
+ int steps_per_count;
+ int count_per_bar;
+ int n_bars;
+ protected:
+ virtual void DrawXTicks();
+ public:
+ tRhyArrayEdit(wxFrame *parent, tRndArray &array, long xx, long yy, long ww, long hh, int style_bits = (ARED_GAP | ARED_XTICKS | ARED_RHYTHM));
+ void SetMeter(int steps_per_count, int count_per_bar, int n_bars);
+};
+
+
+#endif
+#endif
+
diff --git a/muse2/muse/mplugins/rhythm.cpp b/muse2/muse/mplugins/rhythm.cpp
new file mode 100644
index 00000000..5281fb56
--- /dev/null
+++ b/muse2/muse/mplugins/rhythm.cpp
@@ -0,0 +1,516 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: rhythm.cpp,v 1.1.1.1 2003/10/27 18:52:49 wschweer Exp $
+//
+// (C) Copyright 2001 Werner Schweer (ws@seh.de)
+//
+// This code is an adaption of the random rhythm generator taken
+// from "The JAZZ++ Midi Sequencer"
+// Copyright (C) 1994-2000 Andreas Voss and Per Sigmond, all
+// rights reserved.
+// Distributed under the GNU General Public License
+//=========================================================
+
+#include "rhythm.h"
+//Added by qt3to4:
+#include <Q3HBoxLayout>
+#include <QCloseEvent>
+#include <Q3VBoxLayout>
+
+//---------------------------------------------------------
+// RhythmGen
+//---------------------------------------------------------
+
+RhythmGen::RhythmGen(QWidget* parent, const char* name, Qt::WFlags fo)
+ : RhythmBase(parent, name, fo)
+ {
+ }
+RhythmGen::~RhythmGen()
+ {
+ }
+
+//---------------------------------------------------------
+// closeEvent
+//---------------------------------------------------------
+
+void RhythmGen::closeEvent(QCloseEvent* ev)
+ {
+ emit hideWindow();
+ QWidget::closeEvent(ev);
+ }
+
+
+
+#if 0
+/****************************************************************************
+** Form implementation generated from reading ui file 'rhythm.ui'
+**
+** Created: Tue Feb 26 13:43:04 2002
+** by: The User Interface Compiler (uic)
+**
+** WARNING! All changes made in this file will be lost!
+****************************************************************************/
+#include "rhythm.h"
+
+#include <qvariant.h>
+#include <qcheckbox.h>
+#include <q3frame.h>
+#include <qlabel.h>
+#include <qlcdnumber.h>
+#include <q3listbox.h>
+#include <qpushbutton.h>
+#include <qslider.h>
+#include <qtoolbutton.h>
+#include <qlayout.h>
+#include <qtooltip.h>
+#include <q3whatsthis.h>
+#include <qimage.h>
+#include <qpixmap.h>
+
+static const char* const image0_data[] = {
+"16 16 56 1",
+". c None",
+"F c #000000",
+"L c #000101",
+"E c #010304",
+"C c #06101d",
+"j c #071728",
+"w c #07182a",
+"1 c #071c2c",
+"0 c #081c2d",
+"e c #081e31",
+"a c #0a121f",
+"Z c #0a1929",
+"Q c #0a263b",
+"T c #0a273b",
+"z c #0e97bf",
+"s c #0ea0c5",
+"K c #0f5d7e",
+"B c #105375",
+"G c #114760",
+"N c #1197b9",
+"x c #124c6d",
+"# c #124d6f",
+"u c #1290b5",
+"v c #135476",
+"h c #1390b4",
+"Y c #14839f",
+"b c #155474",
+"i c #155678",
+"o c #155a7a",
+"J c #159abc",
+"d c #17587a",
+"V c #178eac",
+"f c #194a6a",
+"r c #19b3ce",
+"k c #1b4b6a",
+"p c #1b4f6f",
+"A c #1ca2c3",
+"D c #20374f",
+"P c #2294b1",
+"I c #22bad1",
+"S c #2a98b3",
+"U c #2cc7d5",
+"n c #3cd7e1",
+"O c #43d5de",
+"t c #48dfe9",
+"X c #58acc5",
+"m c #59c3da",
+"q c #71d1e0",
+"W c #80c2db",
+"c c #819eba",
+"H c #9ddeee",
+"M c #cdebf6",
+"g c #ddeff8",
+"y c #e2f0f9",
+"R c #fdfafd",
+"l c #fdfcfd",
+"................",
+"................",
+".......#a.......",
+"......bcde......",
+".....fcghij.....",
+"....kclmnhoj....",
+"...pclqrstuvw...",
+"..xcymrzzsnABC..",
+".BDEFGHzIJKLFFF.",
+".....BMNOPQ.....",
+".....BRNOST.....",
+".....BMNUVT.....",
+".....BWXIYF.....",
+".....BZ01FF.....",
+"................",
+"................"};
+
+static const char* const image1_data[] = {
+"16 16 50 1",
+". c None",
+"E c #010001",
+"O c #03060c",
+"U c #050b12",
+"u c #05151e",
+"S c #060f19",
+"m c #06141d",
+"q c #06141f",
+"h c #071620",
+"D c #0b293e",
+"c c #0d324c",
+"v c #0d3652",
+"A c #0e5775",
+"J c #0e8fb6",
+"x c #0e94b9",
+"r c #0e97bf",
+"Q c #0e9ec3",
+"n c #0eadcb",
+"R c #0fa0c4",
+"N c #106589",
+"V c #10698f",
+"B c #114560",
+"# c #124d6f",
+"z c #1299bb",
+"C c #144059",
+"T c #14a5c9",
+"K c #15c1da",
+"b c #18425f",
+"y c #1bbad1",
+"M c #1ca2c3",
+"t c #1f95b2",
+"a c #254a64",
+"p c #2695b1",
+"l c #2b91ae",
+"F c #337f9e",
+"o c #40d1db",
+"s c #46dbe6",
+"L c #48dfe9",
+"I c #54bdd7",
+"j c #5fc0d8",
+"g c #64a3bd",
+"k c #8fcce2",
+"d c #a0cbdf",
+"H c #a7dcec",
+"w c #bfdfee",
+"f c #d3e5f0",
+"G c #dfeff8",
+"i c #e0f1fb",
+"e c #eff3fc",
+"P c #ffffff",
+"................",
+"................",
+".....###abc.....",
+".....#defgh.....",
+".....#ijklm.....",
+".....#enopq.....",
+".....airstu.....",
+".v##aawxyzABCDE.",
+"..vFGHIJrKLMNO..",
+"...vFPQrRLMNS...",
+"....vFPTLMNU....",
+".....vFGMNU.....",
+"......vVNS......",
+".......vO.......",
+"................",
+"................"};
+
+
+/*
+ * Constructs a RhythmGenerator which is 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.
+ */
+RhythmGenerator::RhythmGenerator( QWidget* parent, const char* name, bool modal, Qt::WFlags fl )
+ : QDialog( parent, name, modal, fl )
+{
+ QPixmap image0( ( const char** ) image0_data );
+ QPixmap image1( ( const char** ) image1_data );
+ if ( !name )
+ setName( "RhythmGenerator" );
+ resize( 500, 777 );
+ setCaption( trUtf8( "Form3" ) );
+ RhythmGeneratorLayout = new Q3VBoxLayout( this, 11, 6, "RhythmGeneratorLayout");
+
+ Frame6 = new Q3Frame( this, "Frame6" );
+ Frame6->setFrameShape( Q3Frame::StyledPanel );
+ Frame6->setFrameShadow( Q3Frame::Raised );
+ Frame6Layout = new Q3VBoxLayout( Frame6, 11, 6, "Frame6Layout");
+
+ TextLabel1 = new QLabel( Frame6, "TextLabel1" );
+ QFont TextLabel1_font( TextLabel1->font() );
+ TextLabel1_font.setBold( TRUE );
+ TextLabel1_font.setUnderline( TRUE );
+ TextLabel1->setFont( TextLabel1_font );
+ TextLabel1->setText( trUtf8( "Instrument Settings:" ) );
+ Frame6Layout->addWidget( TextLabel1 );
+
+ Layout17 = new Q3HBoxLayout( 0, 0, 15, "Layout17");
+
+ Layout16 = new Q3VBoxLayout( 0, 0, 6, "Layout16");
+
+ InstrumentListLabel = new QLabel( Frame6, "InstrumentListLabel" );
+ InstrumentListLabel->setText( trUtf8( "Instrument" ) );
+ Layout16->addWidget( InstrumentListLabel );
+
+ InstrumentList = new Q3ListBox( Frame6, "InstrumentList" );
+ InstrumentList->insertItem( trUtf8( "Hi-Hat" ) );
+ InstrumentList->setMinimumSize( QSize( 150, 70 ) );
+ Layout16->addWidget( InstrumentList );
+
+ Layout11 = new Q3HBoxLayout( 0, 0, 2, "Layout11");
+
+ InstrumentUp = new QToolButton( Frame6, "InstrumentUp" );
+ InstrumentUp->setMinimumSize( QSize( 40, 20 ) );
+ InstrumentUp->setText( trUtf8( "" ) );
+ InstrumentUp->setPixmap( image0 );
+ Layout11->addWidget( InstrumentUp );
+
+ InstrumentDown = new QToolButton( Frame6, "InstrumentDown" );
+ InstrumentDown->setMinimumSize( QSize( 40, 20 ) );
+ InstrumentDown->setText( trUtf8( "" ) );
+ InstrumentDown->setPixmap( image1 );
+ Layout11->addWidget( InstrumentDown );
+
+ InstrumentAdd = new QToolButton( Frame6, "InstrumentAdd" );
+ InstrumentAdd->setMinimumSize( QSize( 40, 20 ) );
+ InstrumentAdd->setText( trUtf8( "add" ) );
+ Layout11->addWidget( InstrumentAdd );
+
+ InstrumentDel = new QToolButton( Frame6, "InstrumentDel" );
+ InstrumentDel->setMinimumSize( QSize( 40, 20 ) );
+ InstrumentDel->setText( trUtf8( "delete" ) );
+ Layout11->addWidget( InstrumentDel );
+ Layout16->addLayout( Layout11 );
+ Layout17->addLayout( Layout16 );
+
+ Layout20 = new Q3VBoxLayout( 0, 0, 6, "Layout20");
+
+ StepsLabel = new QLabel( Frame6, "StepsLabel" );
+ StepsLabel->setText( trUtf8( "steps/count" ) );
+ Layout20->addWidget( StepsLabel );
+
+ StepsLayout = new Q3HBoxLayout( 0, 0, 6, "StepsLayout");
+
+ StepsSlider = new QSlider( Frame6, "StepsSlider" );
+ StepsSlider->setMaxValue( 16 );
+ StepsSlider->setValue( 4 );
+ StepsSlider->setOrientation( Qt::Horizontal );
+ StepsLayout->addWidget( StepsSlider );
+
+ StepsNumber = new QLCDNumber( Frame6, "StepsNumber" );
+ StepsNumber->setPaletteBackgroundColor( QColor( 212, 212, 192 ) );
+ StepsNumber->setLineWidth( 1 );
+ StepsNumber->setNumDigits( 2 );
+ StepsNumber->setSegmentStyle( QLCDNumber::Flat );
+ StepsNumber->setProperty( "value", 4 );
+ StepsLayout->addWidget( StepsNumber );
+ Layout20->addLayout( StepsLayout );
+
+ CountLabel = new QLabel( Frame6, "CountLabel" );
+ CountLabel->setText( trUtf8( "count/bar" ) );
+ Layout20->addWidget( CountLabel );
+
+ CountLayout = new Q3HBoxLayout( 0, 0, 6, "CountLayout");
+
+ CountSlider = new QSlider( Frame6, "CountSlider" );
+ CountSlider->setMaxValue( 16 );
+ CountSlider->setValue( 4 );
+ CountSlider->setOrientation( Qt::Horizontal );
+ CountLayout->addWidget( CountSlider );
+
+ CountNumber = new QLCDNumber( Frame6, "CountNumber" );
+ CountNumber->setPaletteBackgroundColor( QColor( 212, 212, 192 ) );
+ CountNumber->setNumDigits( 2 );
+ CountNumber->setSegmentStyle( QLCDNumber::Flat );
+ CountNumber->setProperty( "value", 4 );
+ CountLayout->addWidget( CountNumber );
+ Layout20->addLayout( CountLayout );
+
+ BarsLabel = new QLabel( Frame6, "BarsLabel" );
+ BarsLabel->setText( trUtf8( "# bars" ) );
+ Layout20->addWidget( BarsLabel );
+
+ BarsLayout = new Q3HBoxLayout( 0, 0, 6, "BarsLayout");
+
+ BarsSlider = new QSlider( Frame6, "BarsSlider" );
+ BarsSlider->setMaxValue( 16 );
+ BarsSlider->setValue( 1 );
+ BarsSlider->setOrientation( Qt::Horizontal );
+ BarsLayout->addWidget( BarsSlider );
+
+ BarsNumber = new QLCDNumber( Frame6, "BarsNumber" );
+ BarsNumber->setPaletteBackgroundColor( QColor( 212, 212, 192 ) );
+ BarsNumber->setNumDigits( 2 );
+ BarsNumber->setSegmentStyle( QLCDNumber::Flat );
+ BarsNumber->setProperty( "value", 1 );
+ BarsLayout->addWidget( BarsNumber );
+ Layout20->addLayout( BarsLayout );
+ Layout17->addLayout( Layout20 );
+ Frame6Layout->addLayout( Layout17 );
+ RhythmGeneratorLayout->addWidget( Frame6 );
+
+ Layout27 = new Q3HBoxLayout( 0, 0, 15, "Layout27");
+
+ Frame5 = new Q3Frame( this, "Frame5" );
+ Frame5->setFrameShape( Q3Frame::StyledPanel );
+ Frame5->setFrameShadow( Q3Frame::Raised );
+ Frame5Layout = new Q3VBoxLayout( Frame5, 11, 6, "Frame5Layout");
+
+ TextLabel2 = new QLabel( Frame5, "TextLabel2" );
+ QFont TextLabel2_font( TextLabel2->font() );
+ TextLabel2_font.setBold( TRUE );
+ TextLabel2_font.setUnderline( TRUE );
+ TextLabel2->setFont( TextLabel2_font );
+ TextLabel2->setText( trUtf8( "Group Settings:" ) );
+ Frame5Layout->addWidget( TextLabel2 );
+
+ Layout20_2 = new Q3HBoxLayout( 0, 0, 15, "Layout20_2");
+
+ GroupListLayout = new Q3VBoxLayout( 0, 0, 6, "GroupListLayout");
+
+ GroupListLabel = new QLabel( Frame5, "GroupListLabel" );
+ GroupListLabel->setText( trUtf8( "Group" ) );
+ GroupListLayout->addWidget( GroupListLabel );
+
+ GroupList = new Q3ListBox( Frame5, "GroupList" );
+ GroupList->insertItem( trUtf8( "Group 1" ) );
+ GroupList->insertItem( trUtf8( "Group 2" ) );
+ GroupList->insertItem( trUtf8( "Group 3" ) );
+ GroupList->insertItem( trUtf8( "Group 4" ) );
+ GroupList->insertItem( trUtf8( "Group 5" ) );
+ GroupList->setMinimumSize( QSize( 150, 90 ) );
+ GroupListLayout->addWidget( GroupList );
+ Layout20_2->addLayout( GroupListLayout );
+
+ Layout19 = new Q3VBoxLayout( 0, 0, 6, "Layout19");
+
+ ContribLabel = new QLabel( Frame5, "ContribLabel" );
+ ContribLabel->setText( trUtf8( "contrib" ) );
+ Layout19->addWidget( ContribLabel );
+
+ ContribLayout = new Q3HBoxLayout( 0, 0, 6, "ContribLayout");
+
+ ContribSlider = new QSlider( Frame5, "ContribSlider" );
+ ContribSlider->setMinimumSize( QSize( 100, 0 ) );
+ ContribSlider->setMaxValue( 100 );
+ ContribSlider->setOrientation( Qt::Horizontal );
+ ContribLayout->addWidget( ContribSlider );
+
+ ContribNumber = new QLCDNumber( Frame5, "ContribNumber" );
+ ContribNumber->setPaletteBackgroundColor( QColor( 212, 212, 192 ) );
+ ContribNumber->setNumDigits( 3 );
+ ContribNumber->setSegmentStyle( QLCDNumber::Flat );
+ ContribLayout->addWidget( ContribNumber );
+ Layout19->addLayout( ContribLayout );
+
+ ListenLabel = new QLabel( Frame5, "ListenLabel" );
+ ListenLabel->setText( trUtf8( "listen" ) );
+ Layout19->addWidget( ListenLabel );
+
+ ListenLayout = new Q3HBoxLayout( 0, 0, 6, "ListenLayout");
+
+ ListenSlider = new QSlider( Frame5, "ListenSlider" );
+ ListenSlider->setMinimumSize( QSize( 100, 0 ) );
+ ListenSlider->setMinValue( -99 );
+ ListenSlider->setMaxValue( 100 );
+ ListenSlider->setOrientation( Qt::Horizontal );
+ ListenLayout->addWidget( ListenSlider );
+
+ ListenNumber = new QLCDNumber( Frame5, "ListenNumber" );
+ ListenNumber->setPaletteBackgroundColor( QColor( 212, 212, 192 ) );
+ ListenNumber->setNumDigits( 3 );
+ ListenNumber->setSegmentStyle( QLCDNumber::Flat );
+ ListenLayout->addWidget( ListenNumber );
+ Layout19->addLayout( ListenLayout );
+ Layout20_2->addLayout( Layout19 );
+ Frame5Layout->addLayout( Layout20_2 );
+
+ RandomizeCheck = new QCheckBox( Frame5, "RandomizeCheck" );
+ RandomizeCheck->setText( trUtf8( "Randomize" ) );
+ Frame5Layout->addWidget( RandomizeCheck );
+ Layout27->addWidget( Frame5 );
+
+ Frame5_2 = new Q3Frame( this, "Frame5_2" );
+ Frame5_2->setFrameShape( Q3Frame::StyledPanel );
+ Frame5_2->setFrameShadow( Q3Frame::Raised );
+ Frame5_2Layout = new Q3VBoxLayout( Frame5_2, 11, 6, "Frame5_2Layout");
+
+ TextLabel3 = new QLabel( Frame5_2, "TextLabel3" );
+ QFont TextLabel3_font( TextLabel3->font() );
+ TextLabel3_font.setBold( TRUE );
+ TextLabel3_font.setUnderline( TRUE );
+ TextLabel3->setFont( TextLabel3_font );
+ TextLabel3->setText( trUtf8( "Rhythm Style:" ) );
+ Frame5_2Layout->addWidget( TextLabel3 );
+
+ Layout21 = new Q3VBoxLayout( 0, 0, 2, "Layout21");
+
+ ToolButton7 = new QToolButton( Frame5_2, "ToolButton7" );
+ ToolButton7->setText( trUtf8( "Clear" ) );
+ Layout21->addWidget( ToolButton7 );
+
+ ToolButton8 = new QToolButton( Frame5_2, "ToolButton8" );
+ ToolButton8->setText( trUtf8( "Open..." ) );
+ Layout21->addWidget( ToolButton8 );
+
+ ToolButton9 = new QToolButton( Frame5_2, "ToolButton9" );
+ ToolButton9->setText( trUtf8( "Save" ) );
+ Layout21->addWidget( ToolButton9 );
+
+ ToolButton10 = new QToolButton( Frame5_2, "ToolButton10" );
+ ToolButton10->setText( trUtf8( "Save as..." ) );
+ Layout21->addWidget( ToolButton10 );
+ Frame5_2Layout->addLayout( Layout21 );
+
+ Layout22 = new Q3VBoxLayout( 0, 0, 2, "Layout22");
+
+ ToolButton5 = new QToolButton( Frame5_2, "ToolButton5" );
+ ToolButton5->setText( trUtf8( "Generate" ) );
+ Layout22->addWidget( ToolButton5 );
+
+ ToolButton6 = new QToolButton( Frame5_2, "ToolButton6" );
+ ToolButton6->setText( trUtf8( "Close" ) );
+ Layout22->addWidget( ToolButton6 );
+ Frame5_2Layout->addLayout( Layout22 );
+ Layout27->addWidget( Frame5_2 );
+ RhythmGeneratorLayout->addLayout( Layout27 );
+
+ Layout29 = new Q3HBoxLayout( 0, 0, 6, "Layout29");
+
+ Frame6_2 = new Q3Frame( this, "Frame6_2" );
+ Frame6_2->setMinimumSize( QSize( 200, 150 ) );
+ Frame6_2->setFrameShape( Q3Frame::StyledPanel );
+ Frame6_2->setFrameShadow( Q3Frame::Raised );
+ Layout29->addWidget( Frame6_2 );
+
+ Frame7 = new Q3Frame( this, "Frame7" );
+ Frame7->setMinimumSize( QSize( 200, 150 ) );
+ Frame7->setFrameShape( Q3Frame::StyledPanel );
+ Frame7->setFrameShadow( Q3Frame::Raised );
+ Layout29->addWidget( Frame7 );
+ RhythmGeneratorLayout->addLayout( Layout29 );
+
+ Frame8 = new Q3Frame( this, "Frame8" );
+ Frame8->setMinimumSize( QSize( 400, 150 ) );
+ Frame8->setFrameShape( Q3Frame::StyledPanel );
+ Frame8->setFrameShadow( Q3Frame::Raised );
+ RhythmGeneratorLayout->addWidget( Frame8 );
+
+ // signals and slots connections
+ connect( StepsSlider, SIGNAL( valueChanged(int) ), StepsNumber, SLOT( display(int) ) );
+ connect( CountSlider, SIGNAL( valueChanged(int) ), CountNumber, SLOT( display(int) ) );
+ connect( BarsSlider, SIGNAL( valueChanged(int) ), BarsNumber, SLOT( display(int) ) );
+ connect( ContribSlider, SIGNAL( valueChanged(int) ), ContribNumber, SLOT( display(int) ) );
+ connect( ListenSlider, SIGNAL( valueChanged(int) ), ListenNumber, SLOT( display(int) ) );
+ connect( InstrumentDel, SIGNAL( pressed() ), InstrumentList, SLOT( clearSelection() ) );
+}
+
+/*
+ * Destroys the object and frees any allocated resources
+ */
+RhythmGenerator::~RhythmGenerator()
+{
+ // no need to delete child widgets, Qt does it all for us
+}
+#endif
+
diff --git a/muse2/muse/mplugins/rhythm.h b/muse2/muse/mplugins/rhythm.h
new file mode 100644
index 00000000..013fba08
--- /dev/null
+++ b/muse2/muse/mplugins/rhythm.h
@@ -0,0 +1,196 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: rhythm.h,v 1.1.1.1 2003/10/27 18:52:44 wschweer Exp $
+//
+// (C) Copyright 2001 Werner Schweer (ws@seh.de)
+//
+// This code is an adaption of the random rhythm generator taken
+// from "The JAZZ++ Midi Sequencer"
+// Copyright (C) 1994-2000 Andreas Voss and Per Sigmond, all
+// rights reserved.
+// Distributed under the GNU General Public License
+//=========================================================
+
+#ifndef __RHYTHM_H__
+#define __RHYTHM_H__
+
+#include "rhythmbase.h"
+//Added by qt3to4:
+#include <QCloseEvent>
+
+class tTrack;
+class tEventWin;
+class tSong;
+class tBarInfo;
+
+#define MAX_GROUPS 5
+#define MAX_KEYS 20
+
+class Xml;
+
+#if 0
+//---------------------------------------------------------
+// tRhyGroup
+//---------------------------------------------------------
+
+struct tRhyGroup {
+ int contrib;
+ int listen;
+
+ tRhyGroup() {
+ listen = 0;
+ contrib = 0;
+ }
+// void write(int, Xml&);
+// void read(Xml&);
+ };
+
+//---------------------------------------------------------
+// tRhyGroups
+//---------------------------------------------------------
+
+struct tRhyGroups {
+ tRhyGroup g[MAX_GROUPS];
+ tRhyGroup& operator [] (int i) { return g[i]; }
+
+// void write(int, Xml&);
+// void read(Xml&);
+ };
+
+//---------------------------------------------------------
+// tRhythm
+//---------------------------------------------------------
+
+class tRhythm
+ {
+ friend class tRhythmWin;
+
+ char* label;
+
+// tRndArray rhythm;
+// tRndArray length;
+// tRndArray veloc;
+
+ int steps_per_count;
+ int count_per_bar;
+ int n_bars;
+ int keys[MAX_KEYS];
+ int n_keys;
+ int mode;
+ int parm;
+
+ int randomize;
+ tRhyGroups groups;
+// tRndArray history;
+
+ // set by GenInit()
+ long start_clock;
+ long next_clock;
+
+// void GenGroup(tRndArray& out, int grp, tBarInfo &bi, tRhythm *rhy[], int n_rhy);
+ int Clock2i(long clock, tBarInfo &bi) const;
+ int ClocksPerStep(tBarInfo &bi) const;
+
+ public:
+ tRhythm(int key);
+ tRhythm(const tRhythm &o);
+ tRhythm & operator= (const tRhythm &o);
+ virtual ~tRhythm();
+
+ char const * GetLabel() { return label; }
+ void SetLabel(char const *);
+
+ void Generate(tTrack *track, long fr_clock, long to_clock, long ticks_per_bar);
+ void Generate(tTrack *track, tBarInfo &bi, tRhythm *rhy[], int n_rhy);
+ void GenInit(long start_clock);
+ void GenerateEvent(tTrack *track, long clock, short vel, short len);
+
+ void write(int, Xml&);
+ void read(Xml&);
+ };
+#endif
+
+//---------------------------------------------------------
+// RhythmGen
+//---------------------------------------------------------
+
+class RhythmGen : public RhythmBase
+ {
+ Q_OBJECT
+#if 0
+ wxPanel *inst_panel;
+ wxText *label;
+ wxSlider *steps_per_count;
+ wxSlider *count_per_bar;
+ wxSlider *n_bars;
+ wxListBox *instrument_list;
+ wxCheckBox *rand_checkbox;
+
+ wxPanel *group_panel;
+ wxListBox *group_list;
+ wxSlider *group_contrib;
+ wxSlider *group_listen;
+ int act_group;
+
+ tArrayEdit *length_edit;
+ tArrayEdit *veloc_edit;
+ tRhyArrayEdit *rhythm_edit;
+
+ enum { MAX_INSTRUMENTS = 20 };
+ tRhythm *instruments[MAX_INSTRUMENTS];
+ int n_instruments;
+ int act_instrument; // -1 if none
+
+ // this one is edited and copied from/to instruments[i]
+ tRhythm edit;
+
+ // ignore Updates while creating the window (motif)
+ Bool in_create;
+
+ // callbacks
+ static void ItemCallback(wxItem& item, wxCommandEvent& event);
+ static void SelectInstr(wxListBox& list, wxCommandEvent& event);
+ static void SelectGroup(wxListBox& list, wxCommandEvent& event);
+ static void Add(wxButton &but, wxCommandEvent& event);
+ static void Del(wxButton &but, wxCommandEvent& event);
+ static void Generate(wxButton &but, wxCommandEvent& event);
+ static void Help();
+
+ void Instrument2Win(int i = -1); // instrument[act_instrument] -> win
+ void Win2Instrument(int i = -1); // win -> instrument[act_instrument]
+ void AddInstrumentDlg();
+ void AddInstrument(tRhythm *r);
+ void DelInstrument();
+
+ tEventWin *event_win;
+ tSong *song;
+
+ void RndEnable();
+
+ char *default_filename;
+ int has_changed;
+ wxToolBar *tool_bar;
+ float tb_width, tb_height;
+
+ void UpInstrument();
+ void DownInstrument();
+ void InitInstrumentList();
+#endif
+ virtual void closeEvent(QCloseEvent*);
+
+ signals:
+ void hideWindow();
+
+ public:
+// virtual void OnMenuCommand(int id);
+// virtual void OnSize(int w, int h);
+ RhythmGen(QWidget* parent = 0, const char* name = 0, Qt::WFlags fo = Qt::WType_TopLevel);
+ virtual ~RhythmGen();
+// void OnPaint();
+// void GenRhythm();
+// bool OnClose();
+ };
+
+#endif
+
diff --git a/muse2/muse/mplugins/rhythmbase.ui b/muse2/muse/mplugins/rhythmbase.ui
new file mode 100644
index 00000000..4d236c52
--- /dev/null
+++ b/muse2/muse/mplugins/rhythmbase.ui
@@ -0,0 +1,1004 @@
+<!DOCTYPE UI><UI version="3.2" stdsetdef="1">
+<class>RhythmBase</class>
+<widget class="QMainWindow">
+ <property name="name">
+ <cstring>RhythmBase</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>448</width>
+ <height>603</height>
+ </rect>
+ </property>
+ <property name="caption">
+ <string>MusE: Random Rhythm Generator</string>
+ </property>
+ <property name="opaqueMoving">
+ <bool>true</bool>
+ </property>
+ <grid>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>6</number>
+ </property>
+ <property name="spacing">
+ <number>6</number>
+ </property>
+ <widget class="QGroupBox" row="1" column="0">
+ <property name="name">
+ <cstring>GroupBox1</cstring>
+ </property>
+ <property name="title">
+ <string>Instrument Properties</string>
+ </property>
+ <vbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>11</number>
+ </property>
+ <property name="spacing">
+ <number>6</number>
+ </property>
+ <widget class="QLayoutWidget">
+ <property name="name">
+ <cstring>Layout2_2</cstring>
+ </property>
+ <grid>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>0</number>
+ </property>
+ <property name="spacing">
+ <number>6</number>
+ </property>
+ <widget class="QLabel" row="1" column="2">
+ <property name="name">
+ <cstring>TextLabel2_3_2</cstring>
+ </property>
+ <property name="text">
+ <string>counts/bar</string>
+ </property>
+ </widget>
+ <widget class="QLabel" row="0" column="2">
+ <property name="name">
+ <cstring>TextLabel3_2</cstring>
+ </property>
+ <property name="text">
+ <string>steps/count</string>
+ </property>
+ </widget>
+ <widget class="QLabel" row="2" column="2">
+ <property name="name">
+ <cstring>TextLabel1_2_2</cstring>
+ </property>
+ <property name="text">
+ <string># bars</string>
+ </property>
+ </widget>
+ <widget class="QLineEdit" row="0" column="1">
+ <property name="name">
+ <cstring>lineInstrument_2</cstring>
+ </property>
+ <property name="text">
+ <string>test</string>
+ </property>
+ <property name="dragEnabled">
+ <bool>false</bool>
+ </property>
+ <property name="readOnly">
+ <bool>true</bool>
+ </property>
+ </widget>
+ <widget class="QSpinBox" row="0" column="5">
+ <property name="name">
+ <cstring>spinboxContrib_2</cstring>
+ </property>
+ <property name="maxValue">
+ <number>100</number>
+ </property>
+ <property name="minValue">
+ <number>0</number>
+ </property>
+ <property name="value">
+ <number>0</number>
+ </property>
+ </widget>
+ <widget class="QLabel" row="0" column="4">
+ <property name="name">
+ <cstring>labelContrib_2</cstring>
+ </property>
+ <property name="text">
+ <string>contrib</string>
+ </property>
+ </widget>
+ <widget class="QCheckBox" row="2" column="0" rowspan="1" colspan="2">
+ <property name="name">
+ <cstring>checkRandomize_2</cstring>
+ </property>
+ <property name="text">
+ <string>randomize</string>
+ </property>
+ <property name="checked">
+ <bool>true</bool>
+ </property>
+ <property name="tristate">
+ <bool>false</bool>
+ </property>
+ </widget>
+ <widget class="QComboBox" row="1" column="1">
+ <item>
+ <property name="text">
+ <string></string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Group 1</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Group 2</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Group 3</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Group 4</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Group 5</string>
+ </property>
+ </item>
+ <property name="name">
+ <cstring>comboGroupSel_2</cstring>
+ </property>
+ </widget>
+ <widget class="QSpinBox" row="0" column="3">
+ <property name="name">
+ <cstring>spinBoxSteps_2</cstring>
+ </property>
+ <property name="maxValue">
+ <number>16</number>
+ </property>
+ <property name="minValue">
+ <number>1</number>
+ </property>
+ <property name="value">
+ <number>4</number>
+ </property>
+ </widget>
+ <widget class="QSpinBox" row="2" column="3">
+ <property name="name">
+ <cstring>spinboxBars_2</cstring>
+ </property>
+ <property name="maxValue">
+ <number>16</number>
+ </property>
+ <property name="minValue">
+ <number>1</number>
+ </property>
+ <property name="value">
+ <number>1</number>
+ </property>
+ </widget>
+ <widget class="QLabel" row="1" column="4">
+ <property name="name">
+ <cstring>labelListen_2</cstring>
+ </property>
+ <property name="text">
+ <string>listen</string>
+ </property>
+ </widget>
+ <widget class="QLabel" row="0" column="0">
+ <property name="name">
+ <cstring>TextLabel1_4</cstring>
+ </property>
+ <property name="text">
+ <string>Instrument</string>
+ </property>
+ </widget>
+ <widget class="QSpinBox" row="1" column="3">
+ <property name="name">
+ <cstring>spinboxCounts_2</cstring>
+ </property>
+ <property name="maxValue">
+ <number>16</number>
+ </property>
+ <property name="minValue">
+ <number>1</number>
+ </property>
+ <property name="value">
+ <number>4</number>
+ </property>
+ </widget>
+ <widget class="QSpinBox" row="1" column="5">
+ <property name="name">
+ <cstring>spinboxListen_2</cstring>
+ </property>
+ <property name="maxValue">
+ <number>100</number>
+ </property>
+ <property name="minValue">
+ <number>-100</number>
+ </property>
+ <property name="value">
+ <number>0</number>
+ </property>
+ </widget>
+ <widget class="QLabel" row="1" column="0">
+ <property name="name">
+ <cstring>TextLabel1_3_2</cstring>
+ </property>
+ <property name="text">
+ <string>Group</string>
+ </property>
+ </widget>
+ </grid>
+ </widget>
+ <widget class="QLayoutWidget">
+ <property name="name">
+ <cstring>Layout65_2</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>0</number>
+ </property>
+ <property name="spacing">
+ <number>6</number>
+ </property>
+ <widget class="QPushButton">
+ <property name="name">
+ <cstring>buttonNew_2</cstring>
+ </property>
+ <property name="text">
+ <string>&amp;New</string>
+ </property>
+ <property name="autoDefault">
+ <bool>true</bool>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>create new entry</string>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>pressing the New button you create a new entry
+in the MusE list of defined controllers</string>
+ </property>
+ </widget>
+ <widget class="QPushButton">
+ <property name="name">
+ <cstring>buttonDelete_2</cstring>
+ </property>
+ <property name="text">
+ <string>&amp;Delete</string>
+ </property>
+ <property name="autoDefault">
+ <bool>true</bool>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>delete selected entry</string>
+ </property>
+ </widget>
+ <spacer>
+ <property name="name">
+ <cstring>Spacer1_2</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>20</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ <widget class="QPushButton">
+ <property name="name">
+ <cstring>buttonUp_2</cstring>
+ </property>
+ <property name="text">
+ <string>Up</string>
+ </property>
+ </widget>
+ <widget class="QPushButton">
+ <property name="name">
+ <cstring>buttonDown_2</cstring>
+ </property>
+ <property name="text">
+ <string>Down</string>
+ </property>
+ </widget>
+ </hbox>
+ </widget>
+ </vbox>
+ </widget>
+ <widget class="QListView" row="0" column="0">
+ <column>
+ <property name="text">
+ <string>Instrument </string>
+ </property>
+ <property name="clickable">
+ <bool>true</bool>
+ </property>
+ <property name="resizable">
+ <bool>true</bool>
+ </property>
+ </column>
+ <column>
+ <property name="text">
+ <string>Group</string>
+ </property>
+ <property name="clickable">
+ <bool>true</bool>
+ </property>
+ <property name="resizable">
+ <bool>true</bool>
+ </property>
+ </column>
+ <column>
+ <property name="text">
+ <string>steps/count </string>
+ </property>
+ <property name="clickable">
+ <bool>true</bool>
+ </property>
+ <property name="resizable">
+ <bool>true</bool>
+ </property>
+ </column>
+ <column>
+ <property name="text">
+ <string>counts/bar</string>
+ </property>
+ <property name="clickable">
+ <bool>true</bool>
+ </property>
+ <property name="resizable">
+ <bool>true</bool>
+ </property>
+ </column>
+ <column>
+ <property name="text">
+ <string># bars</string>
+ </property>
+ <property name="clickable">
+ <bool>true</bool>
+ </property>
+ <property name="resizable">
+ <bool>true</bool>
+ </property>
+ </column>
+ <column>
+ <property name="text">
+ <string>contrib</string>
+ </property>
+ <property name="clickable">
+ <bool>true</bool>
+ </property>
+ <property name="resizable">
+ <bool>true</bool>
+ </property>
+ </column>
+ <column>
+ <property name="text">
+ <string>listen</string>
+ </property>
+ <property name="clickable">
+ <bool>true</bool>
+ </property>
+ <property name="resizable">
+ <bool>true</bool>
+ </property>
+ </column>
+ <property name="name">
+ <cstring>viewInstrument</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>7</hsizetype>
+ <vsizetype>3</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>0</width>
+ <height>150</height>
+ </size>
+ </property>
+ <property name="maximumSize">
+ <size>
+ <width>32767</width>
+ <height>150</height>
+ </size>
+ </property>
+ <property name="frameShape">
+ <enum>StyledPanel</enum>
+ </property>
+ <property name="frameShadow">
+ <enum>Sunken</enum>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>list of defined controllers</string>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>This is the MusE list of defined controllers.</string>
+ </property>
+ </widget>
+ <widget class="QSplitter" row="2" column="0">
+ <property name="name">
+ <cstring>Splitter3</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>1</hsizetype>
+ <vsizetype>7</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="orientation">
+ <enum>Vertical</enum>
+ </property>
+ <widget class="QSplitter">
+ <property name="name">
+ <cstring>Splitter2</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>7</hsizetype>
+ <vsizetype>7</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <widget class="QFrame">
+ <property name="name">
+ <cstring>Frame3</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>7</hsizetype>
+ <vsizetype>3</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>50</width>
+ <height>50</height>
+ </size>
+ </property>
+ <property name="frameShape">
+ <enum>StyledPanel</enum>
+ </property>
+ <property name="frameShadow">
+ <enum>Raised</enum>
+ </property>
+ </widget>
+ <widget class="QFrame">
+ <property name="name">
+ <cstring>Frame4</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>7</hsizetype>
+ <vsizetype>3</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>50</width>
+ <height>50</height>
+ </size>
+ </property>
+ <property name="frameShape">
+ <enum>StyledPanel</enum>
+ </property>
+ <property name="frameShadow">
+ <enum>Raised</enum>
+ </property>
+ </widget>
+ </widget>
+ <widget class="QFrame">
+ <property name="name">
+ <cstring>Frame5</cstring>
+ </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>150</height>
+ </size>
+ </property>
+ <property name="frameShape">
+ <enum>StyledPanel</enum>
+ </property>
+ <property name="frameShadow">
+ <enum>Raised</enum>
+ </property>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>textLabel1</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>64</x>
+ <y>26</y>
+ <width>250</width>
+ <height>90</height>
+ </rect>
+ </property>
+ <property name="text">
+ <string>&lt;b&gt;Notice!&lt;/b&gt;&lt;br&gt;
+Random Rhythm Generator is not enabled yet!</string>
+ </property>
+ </widget>
+ </widget>
+ </widget>
+ </grid>
+</widget>
+<menubar>
+ <property name="name">
+ <cstring>menubar</cstring>
+ </property>
+ <item text="&amp;File" name="fileMenu">
+ <action name="fileNewAction"/>
+ <action name="fileOpenAction"/>
+ <action name="fileSaveAction"/>
+ <action name="fileSaveAsAction"/>
+ <separator/>
+ <action name="filePrintAction"/>
+ <separator/>
+ <action name="fileExitAction"/>
+ </item>
+ <item text="&amp;Edit" name="editMenu">
+ <action name="editUndoAction"/>
+ <action name="editRedoAction"/>
+ <separator/>
+ <action name="editCutAction"/>
+ <action name="editCopyAction"/>
+ <action name="editPasteAction"/>
+ <separator/>
+ <action name="editFindAction"/>
+ </item>
+ <item text="&amp;Help" name="helpMenu">
+ <action name="helpContentsAction"/>
+ <action name="helpIndexAction"/>
+ <separator/>
+ <action name="helpAboutAction"/>
+ </item>
+</menubar>
+<toolbars>
+ <toolbar dock="2">
+ <property name="name">
+ <cstring>toolBar</cstring>
+ </property>
+ <property name="label">
+ <string>Tools</string>
+ </property>
+ <action name="fileNewAction"/>
+ <action name="fileOpenAction"/>
+ <action name="fileSaveAction"/>
+ </toolbar>
+</toolbars>
+<actions>
+ <action>
+ <property name="name">
+ <cstring>fileNewAction</cstring>
+ </property>
+ <property name="iconSet">
+ <iconset>image0</iconset>
+ </property>
+ <property name="text">
+ <string>New</string>
+ </property>
+ <property name="menuText">
+ <string>&amp;New</string>
+ </property>
+ <property name="accel">
+ <string>Ctrl+N</string>
+ </property>
+ </action>
+ <action>
+ <property name="name">
+ <cstring>fileOpenAction</cstring>
+ </property>
+ <property name="iconSet">
+ <iconset>image1</iconset>
+ </property>
+ <property name="text">
+ <string>Open</string>
+ </property>
+ <property name="menuText">
+ <string>&amp;Open...</string>
+ </property>
+ <property name="accel">
+ <string>Ctrl+O</string>
+ </property>
+ </action>
+ <action>
+ <property name="name">
+ <cstring>fileSaveAction</cstring>
+ </property>
+ <property name="iconSet">
+ <iconset>image2</iconset>
+ </property>
+ <property name="text">
+ <string>Save</string>
+ </property>
+ <property name="menuText">
+ <string>&amp;Save</string>
+ </property>
+ <property name="accel">
+ <string>Ctrl+S</string>
+ </property>
+ </action>
+ <action>
+ <property name="name">
+ <cstring>fileSaveAsAction</cstring>
+ </property>
+ <property name="text">
+ <string>Save As</string>
+ </property>
+ <property name="menuText">
+ <string>Save &amp;As...</string>
+ </property>
+ <property name="accel">
+ <string></string>
+ </property>
+ </action>
+ <action>
+ <property name="name">
+ <cstring>filePrintAction</cstring>
+ </property>
+ <property name="iconSet">
+ <iconset>image3</iconset>
+ </property>
+ <property name="text">
+ <string>Print</string>
+ </property>
+ <property name="menuText">
+ <string>&amp;Print...</string>
+ </property>
+ <property name="accel">
+ <string>Ctrl+P</string>
+ </property>
+ </action>
+ <action>
+ <property name="name">
+ <cstring>fileExitAction</cstring>
+ </property>
+ <property name="text">
+ <string>Exit</string>
+ </property>
+ <property name="menuText">
+ <string>E&amp;xit</string>
+ </property>
+ <property name="accel">
+ <string></string>
+ </property>
+ </action>
+ <action>
+ <property name="name">
+ <cstring>editUndoAction</cstring>
+ </property>
+ <property name="iconSet">
+ <iconset>image4</iconset>
+ </property>
+ <property name="text">
+ <string>Undo</string>
+ </property>
+ <property name="menuText">
+ <string>&amp;Undo</string>
+ </property>
+ <property name="accel">
+ <string>Ctrl+Z</string>
+ </property>
+ </action>
+ <action>
+ <property name="name">
+ <cstring>editRedoAction</cstring>
+ </property>
+ <property name="iconSet">
+ <iconset>image5</iconset>
+ </property>
+ <property name="text">
+ <string>Redo</string>
+ </property>
+ <property name="menuText">
+ <string>&amp;Redo</string>
+ </property>
+ <property name="accel">
+ <string>Ctrl+Y</string>
+ </property>
+ </action>
+ <action>
+ <property name="name">
+ <cstring>editCutAction</cstring>
+ </property>
+ <property name="iconSet">
+ <iconset>image6</iconset>
+ </property>
+ <property name="text">
+ <string>Cut</string>
+ </property>
+ <property name="menuText">
+ <string>&amp;Cut</string>
+ </property>
+ <property name="accel">
+ <string>Ctrl+X</string>
+ </property>
+ </action>
+ <action>
+ <property name="name">
+ <cstring>editCopyAction</cstring>
+ </property>
+ <property name="iconSet">
+ <iconset>image7</iconset>
+ </property>
+ <property name="text">
+ <string>Copy</string>
+ </property>
+ <property name="menuText">
+ <string>C&amp;opy</string>
+ </property>
+ <property name="accel">
+ <string>Ctrl+C</string>
+ </property>
+ </action>
+ <action>
+ <property name="name">
+ <cstring>editPasteAction</cstring>
+ </property>
+ <property name="iconSet">
+ <iconset>image8</iconset>
+ </property>
+ <property name="text">
+ <string>Paste</string>
+ </property>
+ <property name="menuText">
+ <string>&amp;Paste</string>
+ </property>
+ <property name="accel">
+ <string>Ctrl+V</string>
+ </property>
+ </action>
+ <action>
+ <property name="name">
+ <cstring>editFindAction</cstring>
+ </property>
+ <property name="iconSet">
+ <iconset>image9</iconset>
+ </property>
+ <property name="text">
+ <string>Find</string>
+ </property>
+ <property name="menuText">
+ <string>&amp;Find...</string>
+ </property>
+ <property name="accel">
+ <string>Ctrl+F</string>
+ </property>
+ </action>
+ <action>
+ <property name="name">
+ <cstring>helpContentsAction</cstring>
+ </property>
+ <property name="text">
+ <string>Contents</string>
+ </property>
+ <property name="menuText">
+ <string>&amp;Contents...</string>
+ </property>
+ <property name="accel">
+ <string></string>
+ </property>
+ </action>
+ <action>
+ <property name="name">
+ <cstring>helpIndexAction</cstring>
+ </property>
+ <property name="text">
+ <string>Index</string>
+ </property>
+ <property name="menuText">
+ <string>&amp;Index...</string>
+ </property>
+ <property name="accel">
+ <string></string>
+ </property>
+ </action>
+ <action>
+ <property name="name">
+ <cstring>helpAboutAction</cstring>
+ </property>
+ <property name="text">
+ <string>About</string>
+ </property>
+ <property name="menuText">
+ <string>&amp;About...</string>
+ </property>
+ <property name="accel">
+ <string></string>
+ </property>
+ </action>
+</actions>
+<images>
+ <image name="image0">
+ <data format="XPM.GZ" length="721">789cedd2310ac23014c6f13da778245b11ab29c114f1088aa3200eaf2f151daaa07510f1eef64553ac696fe04787fcf90dc9d03481cd7a09492aae35d647023ae0051277abaafb76b77808a93534df0ca67224e4180856e753c967d59cd5c48fb3e0d4b9269d7312a741e30c723a4e9b596333ce92930c69329cc8b9f7f3b7f42e886a1709bea70a3524142812172892325024182892f681bff2f1bf74a5bb2f19fe0f7ae439172f13a0a94f</data>
+ </image>
+ <image name="image1">
+ <data format="XPM.GZ" length="691">789cad914d0ac2301085f739c5d0d905b1b62214c423282e05713189165d5441eb42c4bb9b9fa6a67644045f0299978f3713482a61b59c834cc5a5a6faa041efe90c727badaadb7a33bb8b24cfc1ec0964c9402443d0b0381d77b64653e3c8c95a6d6d312e326fc9dad2c85b156c59ba3eacfe41d0c89defc4dfa2dd7c37fc44b025a179043c4152a4b055f4365414ad0e8901fd94c1ae5e19441da9211c68e7f44098d3074d86019e70a0210c089958df7ffb31154f9c7397a6</data>
+ </image>
+ <image name="image2">
+ <data format="XPM.GZ" length="691">789cd3d7528808f055d0d2e72a2e492cc94c5648ce482c52d04a29cdcdad8c8eb5ade6523232520022530543251d2e253d856405bffcbc54105b19c856360003103711c4b530b63084709340dc64d364a36453103719cc4d49324b0173f5b002b08c32160095494c544e4202400e6932c9406174d39293617a807c226510f6d04e2611d9ff892832688028196554e3b0c9e076010d65b04437341d604f21b5d65c008f8da445</data>
+ </image>
+ <image name="image3">
+ <data format="XPM.GZ" length="2509">789c7d944973db381085effe152af7cd35d5a1242e604dcdc189b37a899d65e2646a0e240168b32cc992bc646afefb34ba1b509671f40c9a9fde43a349507c72d0bb3c3fed1d3cd95b6f9acda4eb75e3e6a67760b7f3f9c35f7ffff1cfdefe60d0a33f637a83fddff6f62f36bdae77b6b87601704000197f98df331bef3313186e03f7b3ccf4c5ff281cc47e9798f378ca6c22835336ea1f461e48bd93c0832c325c0907b1ff3571cdfe9cb94ebc5536cad791877d9eff4ed87bf5178187fde47f101e66c2b04ccc79fc22ecbdfa2be63afab051369a7f889c4b7e1d38ef47c685709ea93f666e7253f0e620f75f34455634ecdf28d7a5f8af853ba77e1bb86cca7ec98c4be55af93e723564fe2cecbdd6e3fb5d0d93cfd753b555bf6a99d7918df899b0f7ea737f6658d5ea6f13b30f23615308233f4fa6adea3a677f229cfcbbc8ea4f95adfa26b2f8c8cf439d478659e28ed90bd75a0f5789d9c737c25da9f32d73177d682237327fa6acf5f12cb2faaf843ba77c1cb8c9a30f9858e64f849b587f9858d607e62ee5ff148e3e5a65a73c8ddc4abd3a709b2706e1b654e6eb6b6deb5acb5c09db52997fdf5dd1955dc15c305b62f15b65a79c47b6927f11d816895f2696f7cf58d896ea3f4f2cfe85b0f7ea3f6576c9ef477625f34839d63f8aac7e19d89589bdb08bf39f2596f997c2deabff96d925df293be54f817d19c47ccecc1f79f9ee84800db6aa8ed4902c36d1ff29dfa0439fe458a35fe63b56ac2f6b748fe6813b08023dc2e3fd502d2bf552efe11c76891ff2bbba4d4aff3a0fa9aea4c3b08fe6bbef6aa72b79346fe9ae78ba7f3b8d694c48d31ff354678657d4cf98e6ec469833c76b5ce032ac13f3945ee10dae71f39db6788b77788f0ff8150f69ce44f25cfb293ec3233a3e57bdc097f80a5fe31b3ca6e409e9141fe4f78a67f816cf7fd205bec3f7345a5ae503d5ff8827f2bec04fff933ec74bfc8c5f30a3b33ef5768803cd0f69f51c0b1a63ee648425777644e715f5153c43dd0cf050debf58e394561902d2dce3f0c8e0844638030877c2400b5daa3fa7f454b2ac331e2c68c082c53bc98393f73757fc26473567922435388711b4a11f186b7dae9c52e93f555e916b6082f7d08143abf547f4cd1d4c694ce8cae46842926acff89b161c78d95f6ae62aec1fd011e6ac6b589096a41569c9e7fedbe7072ddcc09ab48125ed0d09b6b0a5f98e744bfb3bd3e7eddfdff7fe0305be5c9c</data>
+ </image>
+ <image name="image4">
+ <data format="XPM.GZ" length="661">789cd3d7528808f055d0d2e72a2e492cc94c5648ce482c52d04a29cdcdad8c8eb5ade6523232520022630543251d2e253d856405bffcbc54105b19c8563600020b63103711c4b530b6308470f5b082019251068344848c32b23808206494a1e23015890819653db8b81e44255c0659025d460fa70c6e3d78ec814b21b90d052422fb070540f50ebaf84196a9b5e6020008a373c8</data>
+ </image>
+ <image name="image5">
+ <data format="XPM.GZ" length="661">789cd3d7528808f055d0d2e72a2e492cc94c5648ce482c52d04a29cdcdad8c8eb5ade6523232520022630543251d2e253d856405bffcbc54103b11c8563600020b63105719c4b530b6308470f5b0027acb28278201a64c221c4084136132ca7011885c225c06c91890542256193d98a198327a386570ea49449581bb4d2f114d0624a08c230c50fd4f5cb80da04cad351700eee4866e</data>
+ </image>
+ <image name="image6">
+ <data format="XPM.GZ" length="661">789cd3d7528808f055d0d2e72a2e492cc94c5648ce482c52d04a29cdcdad8c8eb5ade6523232520022630543251d2e253d856405bffcbc54105b19c856360003103711c6b53006abc40a90649491482ac92863955146d6822ca387474619c9301419a03842825819245bd064129513b1cb242602512216994430d44bc4904984c8c1a5e032897a3019a8144c26518f800c92715864d0ec81ab4dc4701b924fb0850e8a4cad351700fe117ccc</data>
+ </image>
+ <image name="image7">
+ <data format="XPM.GZ" length="706">789c9d92cb0ac2301045f7f98aa1d915b1da82b4889fa0b814c4c54c6ad14515b42e44fc773b79d057ace04da073399c5042a21076db358491b857589d15a813de20cc1f65f9dc1f562f11c431d47b01f36022822928d85c2f479e653dcb990e5772354db82aae4996a8a2e09a734d29cd4c45ae858e3ed69b71226d3c04757ac81036b05edf1ceca0b643364387ccd7a2c69148c625453d079d936be47350239f637ec3e318ec733aa4edd8f997633374dc4d0d9d86fce1b433f60ede4bf101a375a557</data>
+ </image>
+ <image name="image8">
+ <data format="XPM.GZ" length="736">789c7d92d10a82301486ef7d8ae1ee24321561103d42d165105dcce3465d54507611d1bbb7736cbaadd93f85fd7efb183af38cedb66b96e5c9bd93dd09181ce58d65ede37c7eee0fab57929625339760453a4bd23903b6b95e14ceb999f30505abb255545801aba844d1d3c6d69eb658a186126aac12ab36e9176b5bb5a64da37108c784841e7229251f319101b8885e8837d018c2e9a6b925585a1b6a9640030ec1e63a6302c71faee38fd051434247f51f4c2bad4247936008a2b88368c23128ea50628e9e741ce23bdfcd9cf3e1bf8e3d5fe5e5cf1ff25e261ff1b8c16c</data>
+ </image>
+ <image name="image9">
+ <data format="XPM.GZ" length="2798">789cb5d5594f23471007f0773e8545bda1e8bfbe66ecd16a1fcc7d3ab017ec46799899ee010c0603365794ef9e9afe574f2201118a14350ffcd4d555d5c7c08795d6c9e1416be5c3d2dd3c9f9f97adf22cbf6dadb8c574faf4dbef9ffe585aee765bfad369a7adeef22f4bcb47f356d91a5f5ff91a325648b75d8fe0dde0ac3bec66c17bb57b596fd8a30f6af73bfd76bf531bd3da499e64491ee66fe94127a54774e686bde0d5da6937eda4a1198ccd99c56fd1cdfa7b3af7c322783b388ff128e94167c0fcebe68cc665e3b01ec7f43031cfcd8e96473a4bacdf073af7593fc42f6a0f7ab11eeecdb1de6963e65fa787b67f0ce826bf6bccfacfb41e68193ca38b94f5e5daec398f22b868eafd4a0f63fe9c8efdcb4d63e63fa7353ff325e6385f44e75c7f4697162f4fd19cc7b0f6b017eba31f5d70fe8cce9cf57345e749cefadfcdb1de061dfb93cd689b9f9863fc9c8efdc8a5d95b7ee62bf43e78dea7d1850b163ab37e654ae7dee64b3ad6c73eadf598ffabd9ea49156dfb0ff791f5b3c4ded315dddcf722ba0cf5704117b1ff03baa997465bfe5573acd7a15d9c5f6bccfc99d9f687f0bd676596b824d8999dbd8f07bab0fc8268c6cb1d5dc67cdd68db4f9b6eea7da17dece76774c9fadf6ae77a5e8e7faff6697d2fdccf882e52cea317ede91d3ad6970bda79cb7f4737f5c27de5651ecf7b37daf27da69b7ae77419f31dd22ee69b98637d4f6b3dee37bcb742fbb5fbd9367bcb7f44bbe85bdadb7923e42b5c11cff3992ed32a0d7ea25d5a55c127b44f6dfd8d39e6ff4157b63f09e7572665dccf23edbce59fd155ea8325bcaf52ebd9feb6ccdeea5fd35565e719be67975415f31dcddf3ffe7b3c04390a943a0a38f87f8f4785539ce11c131d17b8d435f276bc464f71856b1d33dce016779863f15a0dde1feef1a071333ce209cf1861156b58c7c61bf14e3bd9d4f82d6c6347c72ef6b08f038c5ff6c4ff0738d44e8ef059f37ec157cdff0ddff5f763b857e34f71821ff8a9a38d0ebae8a18f04290618be113fd13db691a123404f447229a414f746fc3d0ec56be68e5418c9291239937399683f2f76ccbfd79aeb4263f7e552a67225d732d37123b7a85e8dd7bb923b99eb286481bedccb838ec7d76ec0ee6b03737992423b7916a7b9473a56e1644d73f957e23d0a59970dd99489769eebc94cebb344a5aba6ffecaa793f5e6b8c655df7782c5bb2cd18d9d13cbbb2a773fee57bd617ea7426977dd9f93ba3ea40d75886f7bc7fadbd90b156c9dfffbde8def774cdf6fbbf2f48bdf7fffdfbfdf3e3d25f9a24cea0</data>
+ </image>
+</images>
+<connections>
+ <connection>
+ <sender>fileNewAction</sender>
+ <signal>activated()</signal>
+ <receiver>RhythmBase</receiver>
+ <slot>fileNew()</slot>
+ </connection>
+ <connection>
+ <sender>fileOpenAction</sender>
+ <signal>activated()</signal>
+ <receiver>RhythmBase</receiver>
+ <slot>fileOpen()</slot>
+ </connection>
+ <connection>
+ <sender>fileSaveAction</sender>
+ <signal>activated()</signal>
+ <receiver>RhythmBase</receiver>
+ <slot>fileSave()</slot>
+ </connection>
+ <connection>
+ <sender>fileSaveAsAction</sender>
+ <signal>activated()</signal>
+ <receiver>RhythmBase</receiver>
+ <slot>fileSaveAs()</slot>
+ </connection>
+ <connection>
+ <sender>filePrintAction</sender>
+ <signal>activated()</signal>
+ <receiver>RhythmBase</receiver>
+ <slot>filePrint()</slot>
+ </connection>
+ <connection>
+ <sender>fileExitAction</sender>
+ <signal>activated()</signal>
+ <receiver>RhythmBase</receiver>
+ <slot>fileExit()</slot>
+ </connection>
+ <connection>
+ <sender>editUndoAction</sender>
+ <signal>activated()</signal>
+ <receiver>RhythmBase</receiver>
+ <slot>editUndo()</slot>
+ </connection>
+ <connection>
+ <sender>editRedoAction</sender>
+ <signal>activated()</signal>
+ <receiver>RhythmBase</receiver>
+ <slot>editRedo()</slot>
+ </connection>
+ <connection>
+ <sender>editCutAction</sender>
+ <signal>activated()</signal>
+ <receiver>RhythmBase</receiver>
+ <slot>editCut()</slot>
+ </connection>
+ <connection>
+ <sender>editCopyAction</sender>
+ <signal>activated()</signal>
+ <receiver>RhythmBase</receiver>
+ <slot>editCopy()</slot>
+ </connection>
+ <connection>
+ <sender>editPasteAction</sender>
+ <signal>activated()</signal>
+ <receiver>RhythmBase</receiver>
+ <slot>editPaste()</slot>
+ </connection>
+ <connection>
+ <sender>editFindAction</sender>
+ <signal>activated()</signal>
+ <receiver>RhythmBase</receiver>
+ <slot>editFind()</slot>
+ </connection>
+ <connection>
+ <sender>helpIndexAction</sender>
+ <signal>activated()</signal>
+ <receiver>RhythmBase</receiver>
+ <slot>helpIndex()</slot>
+ </connection>
+ <connection>
+ <sender>helpContentsAction</sender>
+ <signal>activated()</signal>
+ <receiver>RhythmBase</receiver>
+ <slot>helpContents()</slot>
+ </connection>
+ <connection>
+ <sender>helpAboutAction</sender>
+ <signal>activated()</signal>
+ <receiver>RhythmBase</receiver>
+ <slot>helpAbout()</slot>
+ </connection>
+</connections>
+<slots>
+ <slot>fileNew()</slot>
+ <slot>fileOpen()</slot>
+ <slot>fileSave()</slot>
+ <slot>fileSaveAs()</slot>
+ <slot>filePrint()</slot>
+ <slot>fileExit()</slot>
+ <slot>editUndo()</slot>
+ <slot>editRedo()</slot>
+ <slot>editCut()</slot>
+ <slot>editCopy()</slot>
+ <slot>editPaste()</slot>
+ <slot>editFind()</slot>
+ <slot>helpIndex()</slot>
+ <slot>helpContents()</slot>
+ <slot>helpAbout()</slot>
+</slots>
+<layoutdefaults spacing="6" margin="11"/>
+</UI>
diff --git a/muse2/muse/mtc.cpp b/muse2/muse/mtc.cpp
new file mode 100644
index 00000000..647d6359
--- /dev/null
+++ b/muse2/muse/mtc.cpp
@@ -0,0 +1,130 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: mtc.cpp,v 1.1.1.1 2003/10/27 18:51:48 wschweer Exp $
+//
+// (C) Copyright 2001 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include "mtc.h"
+#include <stdio.h>
+
+extern int mtcType;
+
+//---------------------------------------------------------
+// MTC::time
+// converts MTC Time to seconds according to
+// global mtcType
+//---------------------------------------------------------
+
+double MTC::time(int type) const
+ {
+ double time = _h * 3600 + _m * 60 + _s;
+ double ft = 0.0;
+ if(type == -1)
+ type = mtcType;
+ switch (type) {
+ 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
+ default:
+ ft = 1.0/30.0;
+ break;
+ }
+ return time + ft *_f + 0.01 * ft * _sf;
+ }
+
+//---------------------------------------------------------
+// MTC
+//---------------------------------------------------------
+
+MTC::MTC(double t, int type)
+ {
+ _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;
+ if(type == -1)
+ type = mtcType;
+ switch (type) {
+ 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
+ default:
+ 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 type)
+ {
+ int frames = 24;
+ if(type == -1)
+ type = mtcType;
+ switch (type) {
+ case 0:
+ frames = 24;
+ break;
+ case 1:
+ frames = 25;
+ break;
+ case 2:
+ case 3:
+ default:
+ 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/muse2/muse/mtc.h b/muse2/muse/mtc.h
new file mode 100644
index 00000000..ae2bb01e
--- /dev/null
+++ b/muse2/muse/mtc.h
@@ -0,0 +1,56 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: mtc.h,v 1.1.1.1 2003/10/27 18:51:25 wschweer Exp $
+//
+// (C) Copyright 1999/2000 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#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, int type = -1);
+ 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(int type = -1);
+ 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(int type = -1) const;
+ void print() const;
+ };
+
+
+#endif
+
diff --git a/muse2/muse/muse.log b/muse2/muse/muse.log
new file mode 100644
index 00000000..887f40d5
--- /dev/null
+++ b/muse2/muse/muse.log
@@ -0,0 +1,1875 @@
+
+*** Beginning merge of project muse
+
+User: ws
+Date: Mon, 11 Aug 2003 15:03:52 +0200
+Common version: 0.2
+Selected version: 0.4
+Working version: 0.2(w)
+
+*** Action on file `m4/alsa.m4'
+No prompt for file `m4/alsa.m4'
+
+*** Action on file `m4/docbook.m4'
+No prompt for file `m4/docbook.m4'
+
+*** Action on file `m4/Makefile.am'
+No prompt for file `m4/Makefile.am'
+
+*** Action on file `m4/aclocal-include.m4'
+No prompt for file `m4/aclocal-include.m4'
+
+*** Action on file `m4/qt.m4'
+No prompt for file `m4/qt.m4'
+
+*** Action on file [symlink:COPYING]
+No prompt for file [symlink:COPYING]
+
+*** Action on file [symlink:INSTALL]
+No prompt for file [symlink:INSTALL]
+
+*** Action on file [symlink:depcomp]
+No prompt for file [symlink:depcomp]
+
+*** Action on file [symlink:mkinstalldirs]
+No prompt for file [symlink:mkinstalldirs]
+
+*** Action on file [symlink:missing]
+No prompt for file [symlink:missing]
+
+*** Action on file [symlink:config.sub]
+No prompt for file [symlink:config.sub]
+
+*** Action on file [symlink:install-sh]
+No prompt for file [symlink:install-sh]
+
+*** Action on file [symlink:config.guess]
+No prompt for file [symlink:config.guess]
+
+*** Action on file [symlink:ltmain.sh]
+No prompt for file [symlink:ltmain.sh]
+
+*** Action on file `configure.ac'
+No prompt for file `configure.ac'
+
+*** Action on file `Doxyfile.in'
+No prompt for file `Doxyfile.in'
+
+*** Action on file `common.am'
+No prompt for file `common.am'
+
+*** Action on file `aclocal.m4'
+No prompt for file `aclocal.m4'
+
+*** Action on file `ChangeLog'
+No prompt for file `ChangeLog'
+
+*** Action on file `README.ladspaguis'
+No prompt for file `README.ladspaguis'
+
+*** Action on file `README.instruments'
+No prompt for file `README.instruments'
+
+*** Action on file `README.translate'
+No prompt for file `README.translate'
+
+*** Action on file `README'
+No prompt for file `README'
+
+*** Action on file `README.de'
+No prompt for file `README.de'
+
+*** Action on file `AUTHORS'
+No prompt for file `AUTHORS'
+
+*** Action on file `README.shortcuts'
+No prompt for file `README.shortcuts'
+
+*** Action on file `README.CVS'
+No prompt for file `README.CVS'
+
+*** Action on file `NEWS'
+No prompt for file `NEWS'
+
+*** Action on file `README.softsynth'
+No prompt for file `README.softsynth'
+
+*** Action on file `SECURITY'
+No prompt for file `SECURITY'
+
+*** Action on file `.cvsignore'
+No prompt for file `.cvsignore'
+
+*** Action on file `Makefile.am'
+No prompt for file `Makefile.am'
+
+*** Action on file `pos.h'
+No prompt for file `pos.h'
+
+*** Action on file `mtc.h'
+No prompt for file `mtc.h'
+
+*** Action on file `cfprint.cpp'
+No prompt for file `cfprint.cpp'
+
+*** Action on file `key.h'
+No prompt for file `key.h'
+
+*** Action on file `app.h'
+No prompt for file `app.h'
+
+*** Action on file `song.cpp'
+No prompt for file `song.cpp'
+
+*** Action on file `key.cpp'
+No prompt for file `key.cpp'
+
+*** Action on file `memory.cpp'
+No prompt for file `memory.cpp'
+
+*** Action on file `midiport.h'
+No prompt for file `midiport.h'
+
+*** Action on file `xml.cpp'
+No prompt for file `xml.cpp'
+
+*** Action on file `undo.cpp'
+No prompt for file `undo.cpp'
+
+*** Action on file `debug.h'
+No prompt for file `debug.h'
+
+*** Action on file `app.cpp'
+No prompt for file `app.cpp'
+
+*** Action on file `thread.h'
+No prompt for file `thread.h'
+
+*** Action on file `icons.h'
+No prompt for file `icons.h'
+
+*** Action on file `midithread.cpp'
+Copied working file `midithread.cpp' to `obsolete/midithread.cpp.v0'
+Merge file `midithread.cpp' by rule 2
+
+*** Action on file `device.h'
+No prompt for file `device.h'
+
+*** Action on file `icons.cpp'
+No prompt for file `icons.cpp'
+
+*** Action on file `wave.h'
+No prompt for file `wave.h'
+
+*** Action on file `ladspa.h'
+No prompt for file `ladspa.h'
+
+*** Action on file `undo.h'
+No prompt for file `undo.h'
+
+*** Action on file `sync.h'
+No prompt for file `sync.h'
+
+*** Action on file `song.h'
+No prompt for file `song.h'
+
+*** Action on file `value.cpp'
+No prompt for file `value.cpp'
+
+*** Action on file `midiport.cpp'
+No prompt for file `midiport.cpp'
+
+*** Action on file `givertcap.c'
+No prompt for file `givertcap.c'
+
+*** Action on file `value.h'
+No prompt for file `value.h'
+
+*** Action on file `part.h'
+No prompt for file `part.h'
+
+*** Action on file `node.h'
+No prompt for file `node.h'
+
+*** Action on file `cobject.cpp'
+No prompt for file `cobject.cpp'
+
+*** Action on file `midithread.h'
+No prompt for file `midithread.h'
+
+*** Action on file `tempo.cpp'
+No prompt for file `tempo.cpp'
+
+*** Action on file `memory.h'
+Copied working file `memory.h' to `obsolete/memory.h.v0'
+Merge file `memory.h' by rule 2, conflicts created
+
+*** Action on file `help.cpp'
+No prompt for file `help.cpp'
+
+*** Action on file `audiomix.h'
+No prompt for file `audiomix.h'
+
+*** Action on file `thread.cpp'
+No prompt for file `thread.cpp'
+
+*** Action on file `mrecord.cpp'
+No prompt for file `mrecord.cpp'
+
+*** Action on file `globals.cpp'
+No prompt for file `globals.cpp'
+
+*** Action on file `pos.cpp'
+No prompt for file `pos.cpp'
+
+*** Action on file `track.cpp'
+No prompt for file `track.cpp'
+
+*** Action on file `midictrl.h'
+No prompt for file `midictrl.h'
+
+*** Action on file `node.cpp'
+No prompt for file `node.cpp'
+
+*** Action on file `audiomix.cpp'
+No prompt for file `audiomix.cpp'
+
+*** Action on file `transport.h'
+No prompt for file `transport.h'
+
+*** Action on file `transpose.h'
+No prompt for file `transpose.h'
+
+*** Action on file `seqmsg.cpp'
+No prompt for file `seqmsg.cpp'
+
+*** Action on file `audionode.h'
+No prompt for file `audionode.h'
+
+*** Action on file `audio.h'
+No prompt for file `audio.h'
+
+*** Action on file `grepmidi.cpp'
+No prompt for file `grepmidi.cpp'
+
+*** Action on file `globals.h'
+No prompt for file `globals.h'
+
+*** Action on file `midieditor.cpp'
+No prompt for file `midieditor.cpp'
+
+*** Action on file `wave.cpp'
+No prompt for file `wave.cpp'
+
+*** Action on file `midi.h'
+No prompt for file `midi.h'
+
+*** Action on file `mess.h'
+No prompt for file `mess.h'
+
+*** Action on file `sync.cpp'
+No prompt for file `sync.cpp'
+
+*** Action on file `config.h.in'
+No prompt for file `config.h.in'
+
+*** Action on file `track.h'
+No prompt for file `track.h'
+
+*** Action on file `mtc.cpp'
+No prompt for file `mtc.cpp'
+
+*** Action on file `minstrument.h'
+No prompt for file `minstrument.h'
+
+*** Action on file `cobject.h'
+No prompt for file `cobject.h'
+
+*** Action on file `synth.h'
+No prompt for file `synth.h'
+
+*** Action on file `songfile.cpp'
+No prompt for file `songfile.cpp'
+
+*** Action on file `midictrl.cpp'
+No prompt for file `midictrl.cpp'
+
+*** Action on file `mpevent.h'
+No prompt for file `mpevent.h'
+
+*** Action on file `font.h'
+No prompt for file `font.h'
+
+*** Action on file `conf.cpp'
+No prompt for file `conf.cpp'
+
+*** Action on file `conf.h'
+No prompt for file `conf.h'
+
+*** Action on file `event.cpp'
+No prompt for file `event.cpp'
+
+*** Action on file `midi.cpp'
+No prompt for file `midi.cpp'
+
+*** Action on file `event.h'
+No prompt for file `event.h'
+
+*** Action on file `audioprefetch.h'
+No prompt for file `audioprefetch.h'
+
+*** Action on file `mpevent.cpp'
+No prompt for file `mpevent.cpp'
+
+*** Action on file `appearance.cpp'
+No prompt for file `appearance.cpp'
+
+*** Action on file `autogen.sh'
+No prompt for file `autogen.sh'
+
+*** Action on file `tempo.h'
+No prompt for file `tempo.h'
+
+*** Action on file `muse.pro'
+No prompt for file `muse.pro'
+
+*** Action on file `part.cpp'
+No prompt for file `part.cpp'
+
+*** Action on file `make.inc'
+No prompt for file `make.inc'
+
+*** Action on file `confmport.h'
+No prompt for file `confmport.h'
+
+*** Action on file `audio.cpp'
+No prompt for file `audio.cpp'
+
+*** Action on file `confmport.cpp'
+No prompt for file `confmport.cpp'
+
+*** Action on file `cfprint.h'
+No prompt for file `cfprint.h'
+
+*** Action on file `sig.cpp'
+No prompt for file `sig.cpp'
+
+*** Action on file `font.cpp'
+No prompt for file `font.cpp'
+
+*** Action on file `midieditor.h'
+No prompt for file `midieditor.h'
+
+*** Action on file `appearance.h'
+No prompt for file `appearance.h'
+
+*** Action on file `globaldefs.h'
+No prompt for file `globaldefs.h'
+
+*** Action on file `seq.cpp'
+No prompt for file `seq.cpp'
+
+*** Action on file `miditransform.cpp'
+No prompt for file `miditransform.cpp'
+
+*** Action on file `miditransform.h'
+No prompt for file `miditransform.h'
+
+*** Action on file `minstrument.cpp'
+Copied working file `minstrument.cpp' to `obsolete/minstrument.cpp.v0'
+Merge file `minstrument.cpp' by rule 2
+
+*** Action on file `audioprefetch.cpp'
+No prompt for file `audioprefetch.cpp'
+
+*** Action on file `transport.cpp'
+No prompt for file `transport.cpp'
+
+*** Action on file `transpose.cpp'
+No prompt for file `transpose.cpp'
+
+*** Action on file `xml.h'
+No prompt for file `xml.h'
+
+*** Action on file `sig.h'
+No prompt for file `sig.h'
+
+*** Action on file `seq.h'
+No prompt for file `seq.h'
+
+*** Action on file `demos/Makefile.am'
+No prompt for file `demos/Makefile.am'
+
+*** Action on file `demos/rasen.med'
+No prompt for file `demos/rasen.med'
+
+*** Action on file `widgets/.cvsignore'
+No prompt for file `widgets/.cvsignore'
+
+*** Action on file `widgets/mmath.cpp'
+No prompt for file `widgets/mmath.cpp'
+
+*** Action on file `widgets/dimap.cpp'
+No prompt for file `widgets/dimap.cpp'
+
+*** Action on file `widgets/utils.cpp'
+No prompt for file `widgets/utils.cpp'
+
+*** Action on file `widgets/sclif.cpp'
+No prompt for file `widgets/sclif.cpp'
+
+*** Action on file `widgets/filedialog.cpp'
+No prompt for file `widgets/filedialog.cpp'
+
+*** Action on file `widgets/citem.h'
+No prompt for file `widgets/citem.h'
+
+*** Action on file `widgets/bigtime.cpp'
+No prompt for file `widgets/bigtime.cpp'
+
+*** Action on file `widgets/view.cpp'
+No prompt for file `widgets/view.cpp'
+
+*** Action on file `widgets/scldraw.h'
+No prompt for file `widgets/scldraw.h'
+
+*** Action on file `widgets/sliderbase.h'
+No prompt for file `widgets/sliderbase.h'
+
+*** Action on file `widgets/hitscale.cpp'
+No prompt for file `widgets/hitscale.cpp'
+
+*** Action on file `widgets/itransformbase.ui'
+No prompt for file `widgets/itransformbase.ui'
+
+*** Action on file `widgets/header.cpp'
+No prompt for file `widgets/header.cpp'
+
+*** Action on file `widgets/tempolabel.h'
+No prompt for file `widgets/tempolabel.h'
+
+*** Action on file `widgets/velocity.cpp'
+No prompt for file `widgets/velocity.cpp'
+
+*** Action on file `widgets/midirawbase.ui'
+No prompt for file `widgets/midirawbase.ui'
+
+*** Action on file `widgets/drange.cpp'
+No prompt for file `widgets/drange.cpp'
+
+*** Action on file `widgets/header.h'
+No prompt for file `widgets/header.h'
+
+*** Action on file `widgets/mlabel.h'
+No prompt for file `widgets/mlabel.h'
+
+*** Action on file `widgets/spinboxFP.cpp'
+No prompt for file `widgets/spinboxFP.cpp'
+
+*** Action on file `widgets/mlabel.cpp'
+No prompt for file `widgets/mlabel.cpp'
+
+*** Action on file `widgets/metronome.cpp'
+No prompt for file `widgets/metronome.cpp'
+
+*** Action on file `widgets/ctrlcombo.cw'
+No prompt for file `widgets/ctrlcombo.cw'
+
+*** Action on file `widgets/sigedit.h'
+No prompt for file `widgets/sigedit.h'
+
+*** Action on file `widgets/intlabel.h'
+No prompt for file `widgets/intlabel.h'
+
+*** Action on file `widgets/comment.cpp'
+No prompt for file `widgets/comment.cpp'
+
+*** Action on file `widgets/ctrlcombo.cpp'
+No prompt for file `widgets/ctrlcombo.cpp'
+
+*** Action on file `widgets/mixdowndialog.cpp'
+No prompt for file `widgets/mixdowndialog.cpp'
+
+*** Action on file `widgets/fontsel.cpp'
+No prompt for file `widgets/fontsel.cpp'
+
+*** Action on file `widgets/hitscale.h'
+No prompt for file `widgets/hitscale.h'
+
+*** Action on file `widgets/posedit.cpp'
+No prompt for file `widgets/posedit.cpp'
+
+*** Action on file `widgets/audioconfbase.ui'
+No prompt for file `widgets/audioconfbase.ui'
+
+*** Action on file `widgets/utils.h'
+No prompt for file `widgets/utils.h'
+
+*** Action on file `widgets/splitter.cpp'
+No prompt for file `widgets/splitter.cpp'
+
+*** Action on file `widgets/editctrl7dialogbase.ui'
+No prompt for file `widgets/editctrl7dialogbase.ui'
+
+*** Action on file `widgets/doublelabel.h'
+No prompt for file `widgets/doublelabel.h'
+
+*** Action on file `widgets/noteinfo.h'
+No prompt for file `widgets/noteinfo.h'
+
+*** Action on file `widgets/sigscale.h'
+No prompt for file `widgets/sigscale.h'
+
+*** Action on file `widgets/canvas.cpp'
+No prompt for file `widgets/canvas.cpp'
+
+*** Action on file `widgets/view.h'
+No prompt for file `widgets/view.h'
+
+*** Action on file `widgets/audioconf.h'
+No prompt for file `widgets/audioconf.h'
+
+*** Action on file `widgets/ccontrolbase.ui'
+No prompt for file `widgets/ccontrolbase.ui'
+
+*** Action on file `widgets/transposebase.ui'
+No prompt for file `widgets/transposebase.ui'
+
+*** Action on file `widgets/spinboxFP.h'
+No prompt for file `widgets/spinboxFP.h'
+
+*** Action on file `widgets/mtscale.h'
+No prompt for file `widgets/mtscale.h'
+
+*** Action on file `widgets/nentry.cpp'
+No prompt for file `widgets/nentry.cpp'
+
+*** Action on file `widgets/siglabel.h'
+No prompt for file `widgets/siglabel.h'
+
+*** Action on file `widgets/transformbase.ui'
+No prompt for file `widgets/transformbase.ui'
+
+*** Action on file `widgets/mittransposebase.ui'
+No prompt for file `widgets/mittransposebase.ui'
+
+*** Action on file `widgets/dentry.h'
+No prompt for file `widgets/dentry.h'
+
+*** Action on file `widgets/slider.h'
+No prompt for file `widgets/slider.h'
+
+*** Action on file `widgets/wtscale.cpp'
+No prompt for file `widgets/wtscale.cpp'
+
+*** Action on file `widgets/action.h'
+No prompt for file `widgets/action.h'
+
+*** Action on file `widgets/nentry.h'
+No prompt for file `widgets/nentry.h'
+
+*** Action on file `widgets/ttoolbar.h'
+No prompt for file `widgets/ttoolbar.h'
+
+*** Action on file `widgets/comboQuant.cpp'
+No prompt for file `widgets/comboQuant.cpp'
+
+*** Action on file `widgets/midisyncimpl.h'
+No prompt for file `widgets/midisyncimpl.h'
+
+*** Action on file `widgets/sliderbase.cpp'
+No prompt for file `widgets/sliderbase.cpp'
+
+*** Action on file `widgets/genset.cpp'
+No prompt for file `widgets/genset.cpp'
+
+*** Action on file `widgets/velocity.h'
+No prompt for file `widgets/velocity.h'
+
+*** Action on file `widgets/poslabel.h'
+No prompt for file `widgets/poslabel.h'
+
+*** Action on file `widgets/knob.h'
+No prompt for file `widgets/knob.h'
+
+*** Action on file `widgets/cliplisteditorbase.ui'
+No prompt for file `widgets/cliplisteditorbase.ui'
+
+*** Action on file `widgets/splitter.h'
+No prompt for file `widgets/splitter.h'
+
+*** Action on file `widgets/sigedit.cpp'
+No prompt for file `widgets/sigedit.cpp'
+
+*** Action on file `widgets/audioconf.cpp'
+No prompt for file `widgets/audioconf.cpp'
+
+*** Action on file `widgets/swidget.h'
+No prompt for file `widgets/swidget.h'
+
+*** Action on file `widgets/tools.h'
+No prompt for file `widgets/tools.h'
+
+*** Action on file `widgets/pitchlabel.h'
+No prompt for file `widgets/pitchlabel.h'
+
+*** Action on file `widgets/Makefile.am'
+No prompt for file `widgets/Makefile.am'
+
+*** Action on file `widgets/moc_ttoolbar.cpp'
+No prompt for file `widgets/moc_ttoolbar.cpp'
+
+*** Action on file `widgets/intlabel.cpp'
+No prompt for file `widgets/intlabel.cpp'
+
+*** Action on file `widgets/citem.cpp'
+No prompt for file `widgets/citem.cpp'
+
+*** Action on file `widgets/canvas.h'
+No prompt for file `widgets/canvas.h'
+
+*** Action on file `widgets/doublelabel.cpp'
+No prompt for file `widgets/doublelabel.cpp'
+
+*** Action on file `widgets/slider.cpp'
+No prompt for file `widgets/slider.cpp'
+
+*** Action on file `widgets/mmath.h'
+No prompt for file `widgets/mmath.h'
+
+*** Action on file `widgets/wtscale.h'
+No prompt for file `widgets/wtscale.h'
+
+*** Action on file `widgets/genset.h'
+No prompt for file `widgets/genset.h'
+
+*** Action on file `widgets/posedit.h'
+No prompt for file `widgets/posedit.h'
+
+*** Action on file `widgets/velocitybase.ui'
+No prompt for file `widgets/velocitybase.ui'
+
+*** Action on file `widgets/ttoolbar.cpp'
+No prompt for file `widgets/ttoolbar.cpp'
+
+*** Action on file `widgets/scrollscale.cpp'
+No prompt for file `widgets/scrollscale.cpp'
+
+*** Action on file `widgets/mtscale.cpp'
+No prompt for file `widgets/mtscale.cpp'
+
+*** Action on file `widgets/noteinfo.cpp'
+No prompt for file `widgets/noteinfo.cpp'
+
+*** Action on file `widgets/lcombo.cpp'
+No prompt for file `widgets/lcombo.cpp'
+
+*** Action on file `widgets/appearancebase.ui'
+No prompt for file `widgets/appearancebase.ui'
+
+*** Action on file `widgets/vscale.h'
+No prompt for file `widgets/vscale.h'
+
+*** Action on file `widgets/scldiv.h'
+No prompt for file `widgets/scldiv.h'
+
+*** Action on file `widgets/drange.h'
+No prompt for file `widgets/drange.h'
+
+*** Action on file `widgets/midisync.ui'
+No prompt for file `widgets/midisync.ui'
+
+*** Action on file `widgets/wtrackinfobase.ui'
+No prompt for file `widgets/wtrackinfobase.ui'
+
+*** Action on file `widgets/vscale.cpp'
+No prompt for file `widgets/vscale.cpp'
+
+*** Action on file `widgets/editsysexdialogbase.ui'
+No prompt for file `widgets/editsysexdialogbase.ui'
+
+*** Action on file `widgets/gatetimebase.ui'
+No prompt for file `widgets/gatetimebase.ui'
+
+*** Action on file `widgets/editmetadialogbase.ui'
+No prompt for file `widgets/editmetadialogbase.ui'
+
+*** Action on file `widgets/sigscale.cpp'
+No prompt for file `widgets/sigscale.cpp'
+
+*** Action on file `widgets/mtrackinfobase.ui'
+No prompt for file `widgets/mtrackinfobase.ui'
+
+*** Action on file `widgets/metronome.h'
+No prompt for file `widgets/metronome.h'
+
+*** Action on file `widgets/gatetime.cpp'
+No prompt for file `widgets/gatetime.cpp'
+
+*** Action on file `widgets/tb1.cpp'
+No prompt for file `widgets/tb1.cpp'
+
+*** Action on file `widgets/gensetbase.ui'
+No prompt for file `widgets/gensetbase.ui'
+
+*** Action on file `widgets/scldraw.cpp'
+No prompt for file `widgets/scldraw.cpp'
+
+*** Action on file `widgets/bigtime.h'
+No prompt for file `widgets/bigtime.h'
+
+*** Action on file `widgets/poslabel.cpp'
+No prompt for file `widgets/poslabel.cpp'
+
+*** Action on file `widgets/metronomebase.ui'
+No prompt for file `widgets/metronomebase.ui'
+
+*** Action on file `widgets/scrollscale.h'
+No prompt for file `widgets/scrollscale.h'
+
+*** Action on file `widgets/fdialogbuttons.ui'
+No prompt for file `widgets/fdialogbuttons.ui'
+
+*** Action on file `widgets/sclif.h'
+No prompt for file `widgets/sclif.h'
+
+*** Action on file `widgets/tools.cpp'
+No prompt for file `widgets/tools.cpp'
+
+*** Action on file `widgets/filedialog.h'
+No prompt for file `widgets/filedialog.h'
+
+*** Action on file `widgets/pitchlabel.cpp'
+No prompt for file `widgets/pitchlabel.cpp'
+
+*** Action on file `widgets/scldiv.cpp'
+No prompt for file `widgets/scldiv.cpp'
+
+*** Action on file `widgets/musewidgetsplug.cpp'
+No prompt for file `widgets/musewidgetsplug.cpp'
+
+*** Action on file `widgets/midisyncimpl.cpp'
+No prompt for file `widgets/midisyncimpl.cpp'
+
+*** Action on file `widgets/commentbase.ui'
+No prompt for file `widgets/commentbase.ui'
+
+*** Action on file `widgets/dentry.cpp'
+No prompt for file `widgets/dentry.cpp'
+
+*** Action on file `widgets/comment.h'
+No prompt for file `widgets/comment.h'
+
+*** Action on file `widgets/ctrlcombo.h'
+No prompt for file `widgets/ctrlcombo.h'
+
+*** Action on file `widgets/comboQuant.h'
+No prompt for file `widgets/comboQuant.h'
+
+*** Action on file `widgets/gatetime.h'
+No prompt for file `widgets/gatetime.h'
+
+*** Action on file `widgets/tb1.h'
+No prompt for file `widgets/tb1.h'
+
+*** Action on file `widgets/editnotedialogbase.ui'
+No prompt for file `widgets/editnotedialogbase.ui'
+
+*** Action on file `widgets/pitchedit.h'
+No prompt for file `widgets/pitchedit.h'
+
+*** Action on file `widgets/lcombo.h'
+No prompt for file `widgets/lcombo.h'
+
+*** Action on file `widgets/fontsel.h'
+No prompt for file `widgets/fontsel.h'
+
+*** Action on file `widgets/tempolabel.cpp'
+No prompt for file `widgets/tempolabel.cpp'
+
+*** Action on file `widgets/knob.cpp'
+No prompt for file `widgets/knob.cpp'
+
+*** Action on file `widgets/dimap.h'
+No prompt for file `widgets/dimap.h'
+
+*** Action on file `widgets/pitchedit.cpp'
+No prompt for file `widgets/pitchedit.cpp'
+
+*** Action on file `widgets/siglabel.cpp'
+No prompt for file `widgets/siglabel.cpp'
+
+*** Action on file `widgets/mixdowndialog.h'
+No prompt for file `widgets/mixdowndialog.h'
+
+*** Action on file `widgets/mixdowndialogbase.ui'
+No prompt for file `widgets/mixdowndialogbase.ui'
+
+*** Action on file `widgets/synthconfigbase.ui'
+No prompt for file `widgets/synthconfigbase.ui'
+
+*** Action on file `widgets/swidget.cpp'
+No prompt for file `widgets/swidget.cpp'
+
+*** Action on file `widgets/section.h'
+No prompt for file `widgets/section.h'
+
+*** Action on file `arranger/pcanvas.h'
+No prompt for file `arranger/pcanvas.h'
+
+*** Action on file `arranger/alayout.h'
+No prompt for file `arranger/alayout.h'
+
+*** Action on file `arranger/tlist.cpp'
+No prompt for file `arranger/tlist.cpp'
+
+*** Action on file `arranger/arranger.h'
+No prompt for file `arranger/arranger.h'
+
+*** Action on file `arranger/alayout.cpp'
+No prompt for file `arranger/alayout.cpp'
+
+*** Action on file `arranger/Makefile.am'
+No prompt for file `arranger/Makefile.am'
+
+*** Action on file `arranger/tlist.h'
+No prompt for file `arranger/tlist.h'
+
+*** Action on file `arranger/pcanvas.cpp'
+No prompt for file `arranger/pcanvas.cpp'
+
+*** Action on file `arranger/arranger.cpp'
+No prompt for file `arranger/arranger.cpp'
+
+*** Action on file `mplugins/Makefile.am'
+No prompt for file `mplugins/Makefile.am'
+
+*** Action on file `mplugins/.cvsignore'
+No prompt for file `mplugins/.cvsignore'
+
+*** Action on file `mplugins/midifilterimpl.cpp'
+No prompt for file `mplugins/midifilterimpl.cpp'
+
+*** Action on file `mplugins/rhythm.cpp'
+No prompt for file `mplugins/rhythm.cpp'
+
+*** Action on file `mplugins/rhythmbase.ui'
+No prompt for file `mplugins/rhythmbase.ui'
+
+*** Action on file `mplugins/midifilter.ui'
+No prompt for file `mplugins/midifilter.ui'
+
+*** Action on file `mplugins/mitplugin.h'
+No prompt for file `mplugins/mitplugin.h'
+
+*** Action on file `mplugins/rhythm.h'
+No prompt for file `mplugins/rhythm.h'
+
+*** Action on file `mplugins/midiitransform.h'
+No prompt for file `mplugins/midiitransform.h'
+
+*** Action on file `mplugins/mittranspose.cpp'
+No prompt for file `mplugins/mittranspose.cpp'
+
+*** Action on file `mplugins/mrconfigbase.ui'
+No prompt for file `mplugins/mrconfigbase.ui'
+
+*** Action on file `mplugins/mrconfig.cpp'
+No prompt for file `mplugins/mrconfig.cpp'
+
+*** Action on file `mplugins/mrconfig.h'
+No prompt for file `mplugins/mrconfig.h'
+
+*** Action on file `mplugins/random.h'
+No prompt for file `mplugins/random.h'
+
+*** Action on file `mplugins/midiitransform.cpp'
+No prompt for file `mplugins/midiitransform.cpp'
+
+*** Action on file `mplugins/mittranspose.h'
+No prompt for file `mplugins/mittranspose.h'
+
+*** Action on file `mplugins/mitplugin.cpp'
+No prompt for file `mplugins/mitplugin.cpp'
+
+*** Action on file `mplugins/midifilterimpl.h'
+No prompt for file `mplugins/midifilterimpl.h'
+
+*** Action on file `mplugins/random.cpp'
+No prompt for file `mplugins/random.cpp'
+
+*** Action on file `waveedit/Makefile.am'
+No prompt for file `waveedit/Makefile.am'
+
+*** Action on file `waveedit/waveview.h'
+No prompt for file `waveedit/waveview.h'
+
+*** Action on file `waveedit/waveedit.cpp'
+No prompt for file `waveedit/waveedit.cpp'
+
+*** Action on file `waveedit/waveedit.h'
+No prompt for file `waveedit/waveedit.h'
+
+*** Action on file `waveedit/waveview.cpp'
+No prompt for file `waveedit/waveview.cpp'
+
+*** Action on file `master/masteredit.cpp'
+No prompt for file `master/masteredit.cpp'
+
+*** Action on file `master/lmaster.cpp'
+No prompt for file `master/lmaster.cpp'
+
+*** Action on file `master/tscale.cpp'
+No prompt for file `master/tscale.cpp'
+
+*** Action on file `master/Makefile.am'
+No prompt for file `master/Makefile.am'
+
+*** Action on file `master/master.h'
+No prompt for file `master/master.h'
+
+*** Action on file `master/masteredit.h'
+No prompt for file `master/masteredit.h'
+
+*** Action on file `master/lmaster.h'
+No prompt for file `master/lmaster.h'
+
+*** Action on file `master/tscale.h'
+No prompt for file `master/tscale.h'
+
+*** Action on file `master/master.cpp'
+No prompt for file `master/master.cpp'
+
+*** Action on file `marker/Makefile.am'
+No prompt for file `marker/Makefile.am'
+
+*** Action on file `marker/marker.h'
+No prompt for file `marker/marker.h'
+
+*** Action on file `marker/markerview.cpp'
+No prompt for file `marker/markerview.cpp'
+
+*** Action on file `marker/markerview.h'
+No prompt for file `marker/markerview.h'
+
+*** Action on file `marker/marker.cpp'
+No prompt for file `marker/marker.cpp'
+
+*** Action on file `driver/audiodev.h'
+No prompt for file `driver/audiodev.h'
+
+*** Action on file `driver/midiserial.h'
+No prompt for file `driver/midiserial.h'
+
+*** Action on file `driver/mididev.h'
+No prompt for file `driver/mididev.h'
+
+*** Action on file `driver/mididev.cpp'
+No prompt for file `driver/mididev.cpp'
+
+*** Action on file `driver/midirawin.h'
+No prompt for file `driver/midirawin.h'
+
+*** Action on file `driver/midirawdev.h'
+No prompt for file `driver/midirawdev.h'
+
+*** Action on file `driver/alsamidi.cpp'
+No prompt for file `driver/alsamidi.cpp'
+
+*** Action on file `driver/alsamidi.h'
+No prompt for file `driver/alsamidi.h'
+
+*** Action on file `driver/Makefile.am'
+No prompt for file `driver/Makefile.am'
+
+*** Action on file `driver/jack.cpp'
+No prompt for file `driver/jack.cpp'
+
+*** Action on file `driver/midirawin.cpp'
+No prompt for file `driver/midirawin.cpp'
+
+*** Action on file `driver/alsaaudio.h'
+No prompt for file `driver/alsaaudio.h'
+
+*** Action on file `driver/midiserial.cpp'
+No prompt for file `driver/midiserial.cpp'
+
+*** Action on file `driver/alsaaudio.cpp'
+No prompt for file `driver/alsaaudio.cpp'
+
+*** Action on file `driver/midirawdev.cpp'
+No prompt for file `driver/midirawdev.cpp'
+
+*** Action on file `driver/jackaudio.h'
+No prompt for file `driver/jackaudio.h'
+
+*** Action on file `driver/mess.cpp'
+No prompt for file `driver/mess.cpp'
+
+*** Action on file `midiedit/drummap.cpp'
+No prompt for file `midiedit/drummap.cpp'
+
+*** Action on file `midiedit/dcanvas.h'
+No prompt for file `midiedit/dcanvas.h'
+
+*** Action on file `midiedit/piano.h'
+No prompt for file `midiedit/piano.h'
+
+*** Action on file `midiedit/drummap.h'
+No prompt for file `midiedit/drummap.h'
+
+*** Action on file `midiedit/drumedit.h'
+No prompt for file `midiedit/drumedit.h'
+
+*** Action on file `midiedit/prcanvas.cpp'
+No prompt for file `midiedit/prcanvas.cpp'
+
+*** Action on file `midiedit/dcanvas.cpp'
+No prompt for file `midiedit/dcanvas.cpp'
+
+*** Action on file `midiedit/Makefile.am'
+No prompt for file `midiedit/Makefile.am'
+
+*** Action on file `midiedit/dlist.cpp'
+No prompt for file `midiedit/dlist.cpp'
+
+*** Action on file `midiedit/pianoroll.cpp'
+No prompt for file `midiedit/pianoroll.cpp'
+
+*** Action on file `midiedit/ecanvas.h'
+No prompt for file `midiedit/ecanvas.h'
+
+*** Action on file `midiedit/quantconfig.h'
+No prompt for file `midiedit/quantconfig.h'
+
+*** Action on file `midiedit/quantconfig.cpp'
+No prompt for file `midiedit/quantconfig.cpp'
+
+*** Action on file `midiedit/ecanvas.cpp'
+No prompt for file `midiedit/ecanvas.cpp'
+
+*** Action on file `midiedit/piano.cpp'
+No prompt for file `midiedit/piano.cpp'
+
+*** Action on file `midiedit/prcanvas.h'
+No prompt for file `midiedit/prcanvas.h'
+
+*** Action on file `midiedit/drumedit.cpp'
+No prompt for file `midiedit/drumedit.cpp'
+
+*** Action on file `midiedit/dlist.h'
+No prompt for file `midiedit/dlist.h'
+
+*** Action on file `midiedit/cmd.h'
+No prompt for file `midiedit/cmd.h'
+
+*** Action on file `midiedit/pianoroll.h'
+No prompt for file `midiedit/pianoroll.h'
+
+*** Action on file `patchbay/Makefile.am'
+No prompt for file `patchbay/Makefile.am'
+
+*** Action on file `patchbay/patchbay.cpp'
+No prompt for file `patchbay/patchbay.cpp'
+
+*** Action on file `patchbay/patchbaybase.ui'
+No prompt for file `patchbay/patchbaybase.ui'
+
+*** Action on file `patchbay/patchbay.h'
+No prompt for file `patchbay/patchbay.h'
+
+*** Action on file `synti/synth.cpp'
+No prompt for file `synti/synth.cpp'
+
+*** Action on file `synti/synthconfig.h'
+No prompt for file `synti/synthconfig.h'
+
+*** Action on file `synti/Makefile.am'
+No prompt for file `synti/Makefile.am'
+
+*** Action on file `synti/synti-install.am'
+No prompt for file `synti/synti-install.am'
+
+*** Action on file `synti/synthconfig.cpp'
+No prompt for file `synti/synthconfig.cpp'
+
+*** Action on file `synti/organ/.cvsignore'
+No prompt for file `synti/organ/.cvsignore'
+
+*** Action on file `synti/organ/organ.cpp'
+No prompt for file `synti/organ/organ.cpp'
+
+*** Action on file `synti/organ/organ.h'
+No prompt for file `synti/organ/organ.h'
+
+*** Action on file `synti/organ/organguibase.ui'
+No prompt for file `synti/organ/organguibase.ui'
+
+*** Action on file `synti/organ/Makefile.am'
+No prompt for file `synti/organ/Makefile.am'
+
+*** Action on file `synti/organ/organgui.h'
+No prompt for file `synti/organ/organgui.h'
+
+*** Action on file `synti/organ/fdialogbuttons.ui'
+No prompt for file `synti/organ/fdialogbuttons.ui'
+
+*** Action on file `synti/organ/organgui.cpp'
+No prompt for file `synti/organ/organgui.cpp'
+
+*** Action on file `synti/fluid/fluidgui.cpp'
+No prompt for file `synti/fluid/fluidgui.cpp'
+
+*** Action on file `synti/fluid/fluidguibase.ui'
+No prompt for file `synti/fluid/fluidguibase.ui'
+
+*** Action on file `synti/fluid/synth.cpp'
+No prompt for file `synti/fluid/synth.cpp'
+
+*** Action on file `synti/fluid/Makefile.am'
+No prompt for file `synti/fluid/Makefile.am'
+
+*** Action on file `synti/fluid/synth.h'
+No prompt for file `synti/fluid/synth.h'
+
+*** Action on file `synti/fluid/fluid.cpp'
+No prompt for file `synti/fluid/fluid.cpp'
+
+*** Action on file `synti/fluid/fluidgui.h'
+No prompt for file `synti/fluid/fluidgui.h'
+
+*** Action on file `synti/fluidsynth/fluidsynthgui.h'
+No prompt for file `synti/fluidsynth/fluidsynthgui.h'
+
+*** Action on file `synti/fluidsynth/fluidsynti.h'
+No prompt for file `synti/fluidsynth/fluidsynti.h'
+
+*** Action on file `synti/fluidsynth/fluidsynti.cpp'
+No prompt for file `synti/fluidsynth/fluidsynti.cpp'
+
+*** Action on file `synti/fluidsynth/fluidsynthguibase.ui'
+No prompt for file `synti/fluidsynth/fluidsynthguibase.ui'
+
+*** Action on file `synti/fluidsynth/Makefile.am'
+No prompt for file `synti/fluidsynth/Makefile.am'
+
+*** Action on file `synti/fluidsynth/fluidsynthgui.cpp'
+No prompt for file `synti/fluidsynth/fluidsynthgui.cpp'
+
+*** Action on file `synti/fluidsynth/TODO'
+No prompt for file `synti/fluidsynth/TODO'
+
+*** Action on file `synti/vam/vamgui.cpp'
+No prompt for file `synti/vam/vamgui.cpp'
+
+*** Action on file `synti/vam/COPYING'
+No prompt for file `synti/vam/COPYING'
+
+*** Action on file `synti/vam/ChangeLog'
+No prompt for file `synti/vam/ChangeLog'
+
+*** Action on file `synti/vam/vamgui.h'
+No prompt for file `synti/vam/vamgui.h'
+
+*** Action on file `synti/vam/vam.cpp'
+No prompt for file `synti/vam/vam.cpp'
+
+*** Action on file `synti/vam/Makefile.am'
+No prompt for file `synti/vam/Makefile.am'
+
+*** Action on file `synti/vam/fdialogbuttons.ui'
+No prompt for file `synti/vam/fdialogbuttons.ui'
+
+*** Action on file `synti/vam/README'
+No prompt for file `synti/vam/README'
+
+*** Action on file `synti/vam/vam.h'
+No prompt for file `synti/vam/vam.h'
+
+*** Action on file `synti/vam/vamguibase.ui'
+No prompt for file `synti/vam/vamguibase.ui'
+
+*** Action on file `synti/vam/TODO'
+No prompt for file `synti/vam/TODO'
+
+*** Action on file `synti/s1/s1.cpp'
+No prompt for file `synti/s1/s1.cpp'
+
+*** Action on file `synti/s1/Makefile.am'
+No prompt for file `synti/s1/Makefile.am'
+
+*** Action on file `share/Makefile.am'
+No prompt for file `share/Makefile.am'
+
+*** Action on file `share/plugins/1050.ui'
+No prompt for file `share/plugins/1050.ui'
+
+*** Action on file `share/plugins/Makefile.am'
+No prompt for file `share/plugins/Makefile.am'
+
+*** Action on file `share/instruments/Yamaha-P50m.idf'
+No prompt for file `share/instruments/Yamaha-P50m.idf'
+
+*** Action on file `share/instruments/ns5r.idf'
+No prompt for file `share/instruments/ns5r.idf'
+
+*** Action on file `share/instruments/Roland-XP30.idf'
+No prompt for file `share/instruments/Roland-XP30.idf'
+
+*** Action on file `share/instruments/MC303.idf'
+No prompt for file `share/instruments/MC303.idf'
+
+*** Action on file `share/instruments/Makefile.am'
+No prompt for file `share/instruments/Makefile.am'
+
+*** Action on file `share/instruments/gm.idf'
+No prompt for file `share/instruments/gm.idf'
+
+*** Action on file `share/instruments/Yamaha-S90.idf'
+No prompt for file `share/instruments/Yamaha-S90.idf'
+
+*** Action on file `share/instruments/AlesisQS6.idf'
+No prompt for file `share/instruments/AlesisQS6.idf'
+
+*** Action on file `share/drummaps/Makefile.am'
+No prompt for file `share/drummaps/Makefile.am'
+
+*** Action on file `share/drummaps/sc88-pc1.map'
+No prompt for file `share/drummaps/sc88-pc1.map'
+
+*** Action on file `share/locale/Makefile.am'
+No prompt for file `share/locale/Makefile.am'
+
+*** Action on file `share/locale/muse_sv_SE.ts'
+No prompt for file `share/locale/muse_sv_SE.ts'
+
+*** Action on file `share/locale/muse_ru.ts'
+No prompt for file `share/locale/muse_ru.ts'
+
+*** Action on file `share/locale/muse_fr.ts'
+No prompt for file `share/locale/muse_fr.ts'
+
+*** Action on file `share/locale/muse_es.ts'
+No prompt for file `share/locale/muse_es.ts'
+
+*** Action on file `share/locale/muse_de.ts'
+No prompt for file `share/locale/muse_de.ts'
+
+*** Action on file `share/locale/muse_sv_SE.qm'
+No prompt for file `share/locale/muse_sv_SE.qm'
+
+*** Action on file `share/locale/muse_ru.qm'
+No prompt for file `share/locale/muse_ru.qm'
+
+*** Action on file `share/locale/muse_fr.qm'
+No prompt for file `share/locale/muse_fr.qm'
+
+*** Action on file `share/locale/muse_es.qm'
+No prompt for file `share/locale/muse_es.qm'
+
+*** Action on file `share/locale/muse_de.qm'
+No prompt for file `share/locale/muse_de.qm'
+
+*** Action on file `share/wallpapers/paper1.jpg'
+No prompt for file `share/wallpapers/paper1.jpg'
+
+*** Action on file `share/wallpapers/Makefile.am'
+No prompt for file `share/wallpapers/Makefile.am'
+
+*** Action on file `share/wallpapers/gray_rock.gif'
+No prompt for file `share/wallpapers/gray_rock.gif'
+
+*** Action on file `share/wallpapers/gray.gif'
+No prompt for file `share/wallpapers/gray.gif'
+
+*** Action on file `share/wallpapers/gray_stucco.gif'
+No prompt for file `share/wallpapers/gray_stucco.gif'
+
+*** Action on file `share/wallpapers/stone1.gif'
+No prompt for file `share/wallpapers/stone1.gif'
+
+*** Action on file `share/html/invocation.html'
+No prompt for file `share/html/invocation.html'
+
+*** Action on file `share/html/left_pane.jpg'
+No prompt for file `share/html/left_pane.jpg'
+
+*** Action on file `share/html/styles.css'
+No prompt for file `share/html/styles.css'
+
+*** Action on file `share/html/button_bar.jpg'
+No prompt for file `share/html/button_bar.jpg'
+
+*** Action on file `share/html/COPYING.html'
+No prompt for file `share/html/COPYING.html'
+
+*** Action on file `share/html/main_window.jpg'
+No prompt for file `share/html/main_window.jpg'
+
+*** Action on file `share/html/toc_.txt'
+No prompt for file `share/html/toc_.txt'
+
+*** Action on file `share/html/Makefile.am'
+No prompt for file `share/html/Makefile.am'
+
+*** Action on file `share/html/track_info.jpg'
+No prompt for file `share/html/track_info.jpg'
+
+*** Action on file `share/html/getting_started.html'
+No prompt for file `share/html/getting_started.html'
+
+*** Action on file `share/html/index.html'
+No prompt for file `share/html/index.html'
+
+*** Action on file `share/html/window_ref.html'
+No prompt for file `share/html/window_ref.html'
+
+*** Action on file `share/html/installation.html'
+No prompt for file `share/html/installation.html'
+
+*** Action on file `share/html/main_window_track_info.jpg'
+No prompt for file `share/html/main_window_track_info.jpg'
+
+*** Action on file `share/html/right_pane.jpg'
+No prompt for file `share/html/right_pane.jpg'
+
+*** Action on file `score/Makefile.am'
+No prompt for file `score/Makefile.am'
+
+*** Action on file `score/ncanvas.cpp'
+No prompt for file `score/ncanvas.cpp'
+
+*** Action on file `score/print.cpp'
+No prompt for file `score/print.cpp'
+
+*** Action on file `score/print.h'
+No prompt for file `score/print.h'
+
+*** Action on file `score/layout.h'
+No prompt for file `score/layout.h'
+
+*** Action on file `score/items.h'
+No prompt for file `score/items.h'
+
+*** Action on file `score/papersize.cpp'
+No prompt for file `score/papersize.cpp'
+
+*** Action on file `score/symbols.cpp'
+No prompt for file `score/symbols.cpp'
+
+*** Action on file `score/layout.cpp'
+No prompt for file `score/layout.cpp'
+
+*** Action on file `score/glyphs.cpp'
+No prompt for file `score/glyphs.cpp'
+
+*** Action on file `score/papersize.h'
+No prompt for file `score/papersize.h'
+
+*** Action on file `score/palettes.h'
+No prompt for file `score/palettes.h'
+
+*** Action on file `score/glyphs.h'
+No prompt for file `score/glyphs.h'
+
+*** Action on file `score/ncanvas.h'
+No prompt for file `score/ncanvas.h'
+
+*** Action on file `score/score.doc'
+No prompt for file `score/score.doc'
+
+*** Action on file `score/score.cpp'
+No prompt for file `score/score.cpp'
+
+*** Action on file `score/items.cpp'
+No prompt for file `score/items.cpp'
+
+*** Action on file `score/sconfig.h'
+No prompt for file `score/sconfig.h'
+
+*** Action on file `score/symbols.h'
+No prompt for file `score/symbols.h'
+
+*** Action on file `score/font.cpp'
+No prompt for file `score/font.cpp'
+
+*** Action on file `score/sconfig.cpp'
+No prompt for file `score/sconfig.cpp'
+
+*** Action on file `score/score.h'
+No prompt for file `score/score.h'
+
+*** Action on file `score/palettes.cpp'
+No prompt for file `score/palettes.cpp'
+
+*** Action on file `score/quant.cpp'
+No prompt for file `score/quant.cpp'
+
+*** Action on file `score/quant.h'
+No prompt for file `score/quant.h'
+
+*** Action on file `score/note.cpp'
+No prompt for file `score/note.cpp'
+
+*** Action on file `mixer/Makefile.am'
+No prompt for file `mixer/Makefile.am'
+
+*** Action on file `mixer/amixer.h'
+No prompt for file `mixer/amixer.h'
+
+*** Action on file `mixer/meter.cpp'
+No prompt for file `mixer/meter.cpp'
+
+*** Action on file `mixer/mixer.cpp'
+No prompt for file `mixer/mixer.cpp'
+
+*** Action on file `mixer/routecombo.cpp'
+No prompt for file `mixer/routecombo.cpp'
+
+*** Action on file `mixer/volslider.h'
+No prompt for file `mixer/volslider.h'
+
+*** Action on file `mixer/rack.h'
+No prompt for file `mixer/rack.h'
+
+*** Action on file `mixer/mixer.h'
+No prompt for file `mixer/mixer.h'
+
+*** Action on file `mixer/panknob.h'
+No prompt for file `mixer/panknob.h'
+
+*** Action on file `mixer/panknob.cpp'
+No prompt for file `mixer/panknob.cpp'
+
+*** Action on file `mixer/amixer.cpp'
+No prompt for file `mixer/amixer.cpp'
+
+*** Action on file `mixer/meter.h'
+No prompt for file `mixer/meter.h'
+
+*** Action on file `mixer/rack.cpp'
+No prompt for file `mixer/rack.cpp'
+
+*** Action on file `mixer/routecombo.h'
+No prompt for file `mixer/routecombo.h'
+
+*** Action on file `mixer/audionodebutton.h'
+No prompt for file `mixer/audionodebutton.h'
+
+*** Action on file `mixer/dot.xpm'
+No prompt for file `mixer/dot.xpm'
+
+*** Action on file `mixer/volslider.cpp'
+No prompt for file `mixer/volslider.cpp'
+
+*** Action on file `mixer/audionodebutton.cpp'
+No prompt for file `mixer/audionodebutton.cpp'
+
+*** Action on file `liste/editevent.cpp'
+No prompt for file `liste/editevent.cpp'
+
+*** Action on file `liste/editevent.h'
+No prompt for file `liste/editevent.h'
+
+*** Action on file `liste/Makefile.am'
+No prompt for file `liste/Makefile.am'
+
+*** Action on file `liste/listedit.h'
+No prompt for file `liste/listedit.h'
+
+*** Action on file `liste/listedit.cpp'
+No prompt for file `liste/listedit.cpp'
+
+*** Action on file `ctrl/Makefile.am'
+No prompt for file `ctrl/Makefile.am'
+
+*** Action on file `ctrl/ctrlcanvas.cpp'
+No prompt for file `ctrl/ctrlcanvas.cpp'
+
+*** Action on file `ctrl/ctrlpanel.h'
+No prompt for file `ctrl/ctrlpanel.h'
+
+*** Action on file `ctrl/ctrlcanvas.h'
+No prompt for file `ctrl/ctrlcanvas.h'
+
+*** Action on file `ctrl/ctrledit.h'
+No prompt for file `ctrl/ctrledit.h'
+
+*** Action on file `ctrl/ctrledit.cpp'
+No prompt for file `ctrl/ctrledit.cpp'
+
+*** Action on file `ctrl/ctrlpanel.cpp'
+No prompt for file `ctrl/ctrlpanel.cpp'
+
+*** Action on file `xpm/darkreddot.xpm'
+No prompt for file `xpm/darkreddot.xpm'
+
+*** Action on file `xpm/editmuteS.xpm'
+No prompt for file `xpm/editmuteS.xpm'
+
+*** Action on file `xpm/midiin.xpm'
+No prompt for file `xpm/midiin.xpm'
+
+*** Action on file `xpm/editpasteS.xpm'
+No prompt for file `xpm/editpasteS.xpm'
+
+*** Action on file `xpm/pitch.xpm'
+No prompt for file `xpm/pitch.xpm'
+
+*** Action on file `xpm/italic.xpm'
+No prompt for file `xpm/italic.xpm'
+
+*** Action on file `xpm/redo.xpm'
+No prompt for file `xpm/redo.xpm'
+
+*** Action on file `xpm/filesaveS.xpm'
+No prompt for file `xpm/filesaveS.xpm'
+
+*** Action on file `xpm/scoreS.xpm'
+No prompt for file `xpm/scoreS.xpm'
+
+*** Action on file `xpm/exit.xpm'
+No prompt for file `xpm/exit.xpm'
+
+*** Action on file `xpm/rmark.xpm'
+No prompt for file `xpm/rmark.xpm'
+
+*** Action on file `xpm/frewind.xpm'
+No prompt for file `xpm/frewind.xpm'
+
+*** Action on file `xpm/stop.xpm'
+No prompt for file `xpm/stop.xpm'
+
+*** Action on file `xpm/graydot.xpm'
+No prompt for file `xpm/graydot.xpm'
+
+*** Action on file `xpm/loop.xpm'
+No prompt for file `xpm/loop.xpm'
+
+*** Action on file `xpm/steprec.xpm'
+No prompt for file `xpm/steprec.xpm'
+
+*** Action on file `xpm/recordoffbutton.xpm'
+No prompt for file `xpm/recordoffbutton.xpm'
+
+*** Action on file `xpm/filenewS.xpm'
+No prompt for file `xpm/filenewS.xpm'
+
+*** Action on file `xpm/bold.xpm'
+No prompt for file `xpm/bold.xpm'
+
+*** Action on file `xpm/fileopen.xpm'
+No prompt for file `xpm/fileopen.xpm'
+
+*** Action on file `xpm/editpaste.xpm'
+No prompt for file `xpm/editpaste.xpm'
+
+*** Action on file `xpm/speaker.xpm'
+No prompt for file `xpm/speaker.xpm'
+
+*** Action on file `xpm/delete.xpm'
+No prompt for file `xpm/delete.xpm'
+
+*** Action on file `xpm/pianoS.xpm'
+No prompt for file `xpm/pianoS.xpm'
+
+*** Action on file `xpm/start.xpm'
+No prompt for file `xpm/start.xpm'
+
+*** Action on file `xpm/punchin.xpm'
+No prompt for file `xpm/punchin.xpm'
+
+*** Action on file `xpm/fileprint.xpm'
+No prompt for file `xpm/fileprint.xpm'
+
+*** Action on file `xpm/editcopy.xpm'
+No prompt for file `xpm/editcopy.xpm'
+
+*** Action on file `xpm/play.xpm'
+No prompt for file `xpm/play.xpm'
+
+*** Action on file `xpm/filesaveasS.xpm'
+No prompt for file `xpm/filesaveasS.xpm'
+
+*** Action on file `xpm/stick.xpm'
+No prompt for file `xpm/stick.xpm'
+
+*** Action on file `xpm/fforward.xpm'
+No prompt for file `xpm/fforward.xpm'
+
+*** Action on file `xpm/lock.xpm'
+No prompt for file `xpm/lock.xpm'
+
+*** Action on file `xpm/back.xpm'
+No prompt for file `xpm/back.xpm'
+
+*** Action on file `xpm/up.xpm'
+No prompt for file `xpm/up.xpm'
+
+*** Action on file `xpm/cafter.xpm'
+No prompt for file `xpm/cafter.xpm'
+
+*** Action on file `xpm/recordonbutton.xpm'
+No prompt for file `xpm/recordonbutton.xpm'
+
+*** Action on file `xpm/flag.xpm'
+No prompt for file `xpm/flag.xpm'
+
+*** Action on file `xpm/off.xpm'
+No prompt for file `xpm/off.xpm'
+
+*** Action on file `xpm/editcutS.xpm'
+No prompt for file `xpm/editcutS.xpm'
+
+*** Action on file `xpm/editmute.xpm'
+No prompt for file `xpm/editmute.xpm'
+
+*** Action on file `xpm/pencil.xpm'
+No prompt for file `xpm/pencil.xpm'
+
+*** Action on file `xpm/pointer.xpm'
+No prompt for file `xpm/pointer.xpm'
+
+*** Action on file `xpm/wave.xpm'
+No prompt for file `xpm/wave.xpm'
+
+*** Action on file `xpm/undoS.xpm'
+No prompt for file `xpm/undoS.xpm'
+
+*** Action on file `xpm/loop1.xpm'
+No prompt for file `xpm/loop1.xpm'
+
+*** Action on file `xpm/score.xpm'
+No prompt for file `xpm/score.xpm'
+
+*** Action on file `xpm/glue.xpm'
+No prompt for file `xpm/glue.xpm'
+
+*** Action on file `xpm/Makefile.am'
+No prompt for file `xpm/Makefile.am'
+
+*** Action on file `xpm/gv.xpm'
+No prompt for file `xpm/gv.xpm'
+
+*** Action on file `xpm/redoS.xpm'
+No prompt for file `xpm/redoS.xpm'
+
+*** Action on file `xpm/toc.xpm'
+No prompt for file `xpm/toc.xpm'
+
+*** Action on file `xpm/greendot.xpm'
+No prompt for file `xpm/greendot.xpm'
+
+*** Action on file `xpm/configure.xpm'
+No prompt for file `xpm/configure.xpm'
+
+*** Action on file `xpm/forward.xpm'
+No prompt for file `xpm/forward.xpm'
+
+*** Action on file `xpm/underlined.xpm'
+No prompt for file `xpm/underlined.xpm'
+
+*** Action on file `xpm/home.xpm'
+No prompt for file `xpm/home.xpm'
+
+*** Action on file `xpm/record1.xpm'
+No prompt for file `xpm/record1.xpm'
+
+*** Action on file `xpm/lmark.xpm'
+No prompt for file `xpm/lmark.xpm'
+
+*** Action on file `xpm/record.xpm'
+No prompt for file `xpm/record.xpm'
+
+*** Action on file `xpm/mute.xpm'
+No prompt for file `xpm/mute.xpm'
+
+*** Action on file `xpm/darkgreendot.xpm'
+No prompt for file `xpm/darkgreendot.xpm'
+
+*** Action on file `xpm/find.xpm'
+No prompt for file `xpm/find.xpm'
+
+*** Action on file `xpm/reddot.xpm'
+No prompt for file `xpm/reddot.xpm'
+
+*** Action on file `xpm/punchout.xpm'
+No prompt for file `xpm/punchout.xpm'
+
+*** Action on file `xpm/panic.xpm'
+No prompt for file `xpm/panic.xpm'
+
+*** Action on file `xpm/fileprintS.xpm'
+No prompt for file `xpm/fileprintS.xpm'
+
+*** Action on file `xpm/draw.xpm'
+No prompt for file `xpm/draw.xpm'
+
+*** Action on file `xpm/filesave.xpm'
+No prompt for file `xpm/filesave.xpm'
+
+*** Action on file `xpm/filenew.xpm'
+No prompt for file `xpm/filenew.xpm'
+
+*** Action on file `xpm/piano.xpm'
+No prompt for file `xpm/piano.xpm'
+
+*** Action on file `xpm/solobutton.xpm'
+No prompt for file `xpm/solobutton.xpm'
+
+*** Action on file `xpm/punchin1.xpm'
+No prompt for file `xpm/punchin1.xpm'
+
+*** Action on file `xpm/idea.xpm'
+No prompt for file `xpm/idea.xpm'
+
+*** Action on file `xpm/editcut.xpm'
+No prompt for file `xpm/editcut.xpm'
+
+*** Action on file `xpm/editcopyS.xpm'
+No prompt for file `xpm/editcopyS.xpm'
+
+*** Action on file `xpm/cmark.xpm'
+No prompt for file `xpm/cmark.xpm'
+
+*** Action on file `xpm/fileopenS.xpm'
+No prompt for file `xpm/fileopenS.xpm'
+
+*** Action on file `xpm/ctrl.xpm'
+No prompt for file `xpm/ctrl.xpm'
+
+*** Action on file `xpm/note1.xpm'
+No prompt for file `xpm/note1.xpm'
+
+*** Action on file `xpm/context_help.xpm'
+No prompt for file `xpm/context_help.xpm'
+
+*** Action on file `xpm/exitS.xpm'
+No prompt for file `xpm/exitS.xpm'
+
+*** Action on file `xpm/flagS.xpm'
+No prompt for file `xpm/flagS.xpm'
+
+*** Action on file `xpm/iiwusynth.xpm'
+No prompt for file `xpm/iiwusynth.xpm'
+
+*** Action on file `xpm/sysex.xpm'
+No prompt for file `xpm/sysex.xpm'
+
+*** Action on file `xpm/down.xpm'
+No prompt for file `xpm/down.xpm'
+
+*** Action on file `xpm/dot.xpm'
+No prompt for file `xpm/dot.xpm'
+
+*** Action on file `xpm/quant.xpm'
+No prompt for file `xpm/quant.xpm'
+
+*** Action on file `xpm/doth.xpm'
+No prompt for file `xpm/doth.xpm'
+
+*** Action on file `xpm/punchout1.xpm'
+No prompt for file `xpm/punchout1.xpm'
+
+*** Action on file `xpm/cut.xpm'
+No prompt for file `xpm/cut.xpm'
+
+*** Action on file `xpm/note.xpm'
+No prompt for file `xpm/note.xpm'
+
+*** Action on file `xpm/buttondown.xpm'
+No prompt for file `xpm/buttondown.xpm'
+
+*** Action on file `xpm/dot1.xpm'
+No prompt for file `xpm/dot1.xpm'
+
+*** Action on file `xpm/meta.xpm'
+No prompt for file `xpm/meta.xpm'
+
+*** Action on file `xpm/undo.xpm'
+No prompt for file `xpm/undo.xpm'
+
+*** Action on file `xpm/master.xpm'
+No prompt for file `xpm/master.xpm'
+
+*** Action on file `xpm/bluedot.xpm'
+No prompt for file `xpm/bluedot.xpm'
+
+*** Action on file `xpm/newmutebutton.xpm'
+No prompt for file `xpm/newmutebutton.xpm'
+
+*** Action on file `xpm/pafter.xpm'
+No prompt for file `xpm/pafter.xpm'
+
+*** Action on file `lib/plugins/Makefile.am'
+No prompt for file `lib/plugins/Makefile.am'
+
+*** Action on file `lib/synthi/Makefile.am'
+No prompt for file `lib/synthi/Makefile.am'
+
+*** Action on file `lib/Makefile.am'
+No prompt for file `lib/Makefile.am'
+
+*** Action on file `cliplist/cliplist.cpp'
+No prompt for file `cliplist/cliplist.cpp'
+
+*** Action on file `cliplist/Makefile.am'
+No prompt for file `cliplist/Makefile.am'
+
+*** Action on file `cliplist/cliplist.h'
+No prompt for file `cliplist/cliplist.h'
+
+*** Action on file `doc/midieditfunctions.png'
+No prompt for file `doc/midieditfunctions.png'
+
+*** Action on file `doc/Makefile.am'
+No prompt for file `doc/Makefile.am'
+
+*** Action on file `doc/muse.sgm'
+No prompt for file `doc/muse.sgm'
+
+*** Action on file `plugins/Makefile.am'
+No prompt for file `plugins/Makefile.am'
+
+*** Action on file `plugins/plugin.h'
+No prompt for file `plugins/plugin.h'
+
+*** Action on file `plugins/plugin.cpp'
+No prompt for file `plugins/plugin.cpp'
+
+*** Action on file `plugins/plugins-install.am'
+No prompt for file `plugins/plugins-install.am'
+
+*** Action on file `plugins/freeverb/denormals.h'
+No prompt for file `plugins/freeverb/denormals.h'
+
+*** Action on file `plugins/freeverb/tuning.h'
+No prompt for file `plugins/freeverb/tuning.h'
+
+*** Action on file `plugins/freeverb/readme.txt'
+No prompt for file `plugins/freeverb/readme.txt'
+
+*** Action on file `plugins/freeverb/revmodel.h'
+No prompt for file `plugins/freeverb/revmodel.h'
+
+*** Action on file `plugins/freeverb/Makefile.am'
+No prompt for file `plugins/freeverb/Makefile.am'
+
+*** Action on file `plugins/freeverb/comb.h'
+No prompt for file `plugins/freeverb/comb.h'
+
+*** Action on file `plugins/freeverb/freeverb.cpp'
+No prompt for file `plugins/freeverb/freeverb.cpp'
+
+*** Action on file `plugins/freeverb/allpass.h'
+No prompt for file `plugins/freeverb/allpass.h'
+
+*** Action on file `plugins/freeverb/revmodel.cpp'
+No prompt for file `plugins/freeverb/revmodel.cpp'
+
+*** Action on file `midictrledit.h'
+No prompt for file `midictrledit.h'
+
+
+*** Merge complete
+
diff --git a/muse2/muse/muse.pro b/muse2/muse/muse.pro
new file mode 100644
index 00000000..183ac3a8
--- /dev/null
+++ b/muse2/muse/muse.pro
@@ -0,0 +1,369 @@
+HEADERS = \
+ ./ctrl/ctrledit.h \
+ ./ctrl/ctrlcanvas.h \
+ ./ctrl/ctrlpanel.h \
+ ./debug.h \
+ ./midiport.h \
+ ./app.h \
+ ./eventbase.h \
+ ./key.h \
+ ./liste/listedit.h \
+ ./liste/editevent.h \
+ ./mixer/mstrip.h \
+ ./mixer/auxknob.h \
+ ./mixer/meter.h \
+ ./mixer/panknob.h \
+ ./mixer/strip.h \
+ ./mixer/rack.h \
+ ./mixer/routedialog.h \
+ ./mixer/amixer.h \
+ ./mixer/astrip.h \
+ ./mtc.h \
+ ./pos.h \
+ ./sig.h \
+ ./xml.h \
+ ./miditransform.h \
+ ./route.h \
+ ./globaldefs.h \
+ ./appearance.h \
+ ./midievent.h \
+ ./midieditor.h \
+ ./confmport.h \
+ ./patchbay/patchbay.h \
+ ./tempo.h \
+ ./audioprefetch.h \
+ ./event.h \
+ ./waveevent.h \
+ ./midiedit/pianoroll.h \
+ ./midiedit/cmd.h \
+ ./midiedit/dlist.h \
+ ./midiedit/prcanvas.h \
+ ./midiedit/quantconfig.h \
+ ./midiedit/ecanvas.h \
+ ./midiedit/drumedit.h \
+ ./midiedit/drummap.h \
+ ./midiedit/piano.h \
+ ./midiedit/dcanvas.h \
+ ./conf.h \
+ ./ctrl.h \
+ ./driver/jackaudio.h \
+ ./driver/alsamidi.h \
+ ./driver/audiodev.h \
+ ./fastlog.h \
+ ./mpevent.h \
+ ./synth.h \
+ ./cobject.h \
+ ./track.h \
+ ./evdata.h \
+ ./marker/markerview.h \
+ ./marker/marker.h \
+ ./master/tscale.h \
+ ./master/lmaster.h \
+ ./master/masteredit.h \
+ ./master/master.h \
+ ./gconfig.h \
+ ./midi.h \
+ ./waveedit/waveedit.h \
+ ./waveedit/waveview.h \
+ ./mplugins/midifilterimpl.h \
+ ./mplugins/mittranspose.h \
+ ./mplugins/random.h \
+ ./mplugins/mrconfig.h \
+ ./mplugins/midiitransform.h \
+ ./mplugins/rhythm.h \
+ ./mplugins/mitplugin.h \
+ ./node.h \
+ ./part.h \
+ ./value.h \
+ ./song.h \
+ ./sync.h \
+ ./undo.h \
+ ./ladspa.h \
+ ./wave.h \
+ ./device.h \
+ ./instruments/midictrledit.h \
+ ./instruments/minstrument.h \
+ ./instruments/editinstrument.h \
+ ./icons.h \
+ ./thread.h \
+ ./arranger/tlist.h \
+ ./arranger/arranger.h \
+ ./arranger/alayout.h \
+ ./arranger/pcanvas.h \
+ ./globals.h \
+ ./audio.h \
+ ./transpose.h \
+ ./transport.h \
+ ./widgets/section.h \
+ ./widgets/mixdowndialog.h \
+ ./widgets/dimap.h \
+ ./widgets/fontsel.h \
+ ./widgets/lcombo.h \
+ ./widgets/pitchedit.h \
+ ./widgets/tb1.h \
+ ./widgets/gatetime.h \
+ ./widgets/comboQuant.h \
+ ./widgets/ctrlcombo.h \
+ ./widgets/comment.h \
+ ./widgets/filedialog.h \
+ ./widgets/sclif.h \
+ ./widgets/scrollscale.h \
+ ./widgets/bigtime.h \
+ ./widgets/metronome.h \
+ ./widgets/combobox.h \
+ ./widgets/ttoolbutton.h \
+ ./widgets/drange.h \
+ ./widgets/scldiv.h \
+ ./widgets/vscale.h \
+ ./widgets/posedit.h \
+ ./widgets/genset.h \
+ ./widgets/shortcutcapturedialog.h \
+ ./widgets/wtscale.h \
+ ./widgets/mmath.h \
+ ./widgets/canvas.h \
+ ./widgets/shortcutconfig.h \
+ ./widgets/pitchlabel.h \
+ ./widgets/tools.h \
+ ./widgets/swidget.h \
+ ./widgets/splitter.h \
+ ./widgets/knob.h \
+ ./widgets/poslabel.h \
+ ./widgets/velocity.h \
+ ./widgets/midisyncimpl.h \
+ ./widgets/ttoolbar.h \
+ ./widgets/nentry.h \
+ ./widgets/action.h \
+ ./widgets/slider.h \
+ ./widgets/dentry.h \
+ ./widgets/siglabel.h \
+ ./widgets/checkbox.h \
+ ./widgets/mtscale.h \
+ ./widgets/spinboxFP.h \
+ ./widgets/view.h \
+ ./widgets/sigscale.h \
+ ./widgets/noteinfo.h \
+ ./widgets/doublelabel.h \
+ ./widgets/utils.h \
+ ./widgets/hitscale.h \
+ ./widgets/intlabel.h \
+ ./widgets/sigedit.h \
+ ./widgets/mlabel.h \
+ ./widgets/header.h \
+ ./widgets/tempolabel.h \
+ ./widgets/sliderbase.h \
+ ./widgets/scldraw.h \
+ ./widgets/citem.h \
+ ./mididev.h \
+ ./midictrl.h \
+ ./midiseq.h \
+ ./midifile.h \
+ ./shortcuts.h \
+ ./memory.h \
+ ./helper.h \
+ ./plugin.h
+
+SOURCES = \
+ ./ctrl/ctrlpanel.cpp \
+ ./ctrl/ctrledit.cpp \
+ ./ctrl/ctrlcanvas.cpp \
+ ./route.cpp \
+ ./undo.cpp \
+ ./midievent.cpp \
+ ./xml.cpp \
+ ./memory.cpp \
+ ./key.cpp \
+ ./midiseq.cpp \
+ ./song.cpp \
+ ./liste/listedit.cpp \
+ ./liste/editevent.cpp \
+ ./mixer/strip.cpp \
+ ./mixer/auxknob.cpp \
+ ./mixer/rack.cpp \
+ ./mixer/amixer.cpp \
+ ./mixer/routedialog.cpp \
+ ./mixer/panknob.cpp \
+ ./mixer/mstrip.cpp \
+ ./mixer/astrip.cpp \
+ ./mixer/meter.cpp \
+ ./transpose.cpp \
+ ./eventlist.cpp \
+ ./transport.cpp \
+ ./wavetrack.cpp \
+ ./audioprefetch.cpp \
+ ./helper.cpp \
+ ./miditransform.cpp \
+ ./ctrl.cpp \
+ ./sig.cpp \
+ ./confmport.cpp \
+ ./shortcuts.cpp \
+ ./audio.cpp \
+ ./part.cpp \
+ ./patchbay/patchbay.cpp \
+ ./appearance.cpp \
+ ./mpevent.cpp \
+ ./midi.cpp \
+ ./event.cpp \
+ ./midiedit/drumedit.cpp \
+ ./midiedit/piano.cpp \
+ ./midiedit/ecanvas.cpp \
+ ./midiedit/quantconfig.cpp \
+ ./midiedit/pianoroll.cpp \
+ ./midiedit/dlist.cpp \
+ ./midiedit/dcanvas.cpp \
+ ./midiedit/prcanvas.cpp \
+ ./midiedit/drummap.cpp \
+ ./plugin.cpp \
+ ./conf.cpp \
+ ./driver/jack.cpp \
+ ./driver/alsamidi.cpp \
+ ./driver/dummyaudio.cpp \
+ ./midictrl.cpp \
+ ./songfile.cpp \
+ ./gconfig.cpp \
+ ./mtc.cpp \
+ ./marker/marker.cpp \
+ ./marker/markerview.cpp \
+ ./master/master.cpp \
+ ./master/tscale.cpp \
+ ./master/lmaster.cpp \
+ ./master/masteredit.cpp \
+ ./sync.cpp \
+ ./wave.cpp \
+ ./midieditor.cpp \
+ ./waveedit/waveview.cpp \
+ ./waveedit/waveedit.cpp \
+ ./mplugins/mitplugin.cpp \
+ ./mplugins/midiitransform.cpp \
+ ./mplugins/mrconfig.cpp \
+ ./mplugins/mittranspose.cpp \
+ ./mplugins/midifilterimpl.cpp \
+ ./cobject.cpp \
+ ./midifile.cpp \
+ ./midiport.cpp \
+ ./exportmidi.cpp \
+ ./value.cpp \
+ ./synth.cpp \
+ ./waveevent.cpp \
+ ./icons.cpp \
+ ./instruments/minstrument.cpp \
+ ./instruments/editinstrument.cpp \
+ ./instruments/midictrledit.cpp \
+ ./app.cpp \
+ ./arranger/arranger.cpp \
+ ./arranger/trackinfo.cpp \
+ ./arranger/pcanvas.cpp \
+ ./arranger/alayout.cpp \
+ ./arranger/tlist.cpp \
+ ./audiotrack.cpp \
+ ./seqmsg.cpp \
+ ./widgets/swidget.cpp \
+ ./widgets/ttoolbutton.cpp \
+ ./widgets/siglabel.cpp \
+ ./widgets/pitchedit.cpp \
+ ./widgets/knob.cpp \
+ ./widgets/tempolabel.cpp \
+ ./widgets/dentry.cpp \
+ ./widgets/midisyncimpl.cpp \
+ ./widgets/musewidgetsplug.cpp \
+ ./widgets/scldiv.cpp \
+ ./widgets/pitchlabel.cpp \
+ ./widgets/tools.cpp \
+ ./widgets/poslabel.cpp \
+ ./widgets/scldraw.cpp \
+ ./widgets/tb1.cpp \
+ ./widgets/gatetime.cpp \
+ ./widgets/sigscale.cpp \
+ ./widgets/vscale.cpp \
+ ./widgets/lcombo.cpp \
+ ./widgets/noteinfo.cpp \
+ ./widgets/mtscale.cpp \
+ ./widgets/scrollscale.cpp \
+ ./widgets/ttoolbar.cpp \
+ ./widgets/slider.cpp \
+ ./widgets/doublelabel.cpp \
+ ./widgets/citem.cpp \
+ ./widgets/intlabel.cpp \
+ ./widgets/sigedit.cpp \
+ ./widgets/combobox.cpp \
+ ./widgets/genset.cpp \
+ ./widgets/checkbox.cpp \
+ ./widgets/sliderbase.cpp \
+ ./widgets/comboQuant.cpp \
+ ./widgets/wtscale.cpp \
+ ./widgets/nentry.cpp \
+ ./widgets/canvas.cpp \
+ ./widgets/splitter.cpp \
+ ./widgets/posedit.cpp \
+ ./widgets/fontsel.cpp \
+ ./widgets/mixdowndialog.cpp \
+ ./widgets/ctrlcombo.cpp \
+ ./widgets/comment.cpp \
+ ./widgets/metronome.cpp \
+ ./widgets/mlabel.cpp \
+ ./widgets/spinboxFP.cpp \
+ ./widgets/drange.cpp \
+ ./widgets/velocity.cpp \
+ ./widgets/shortcutconfig.cpp \
+ ./widgets/header.cpp \
+ ./widgets/hitscale.cpp \
+ ./widgets/view.cpp \
+ ./widgets/bigtime.cpp \
+ ./widgets/filedialog.cpp \
+ ./widgets/sclif.cpp \
+ ./widgets/utils.cpp \
+ ./widgets/dimap.cpp \
+ ./widgets/mmath.cpp \
+ ./mididev.cpp \
+ ./node.cpp \
+ ./track.cpp \
+ ./pos.cpp \
+ ./globals.cpp \
+ ./importmidi.cpp \
+ ./thread.cpp \
+ ./help.cpp \
+ ./tempo.cpp
+
+FORMS = \
+ ./liste/editctrlbase.ui \
+ ./mixer/midiportroutebase.ui \
+ ./mixer/routedialogbase.ui \
+ ./patchbay/patchbaybase.ui \
+ ./mplugins/mrconfigbase.ui \
+ ./mplugins/midifilter.ui \
+ ./mplugins/rhythmbase.ui \
+ ./instruments/editinstrumentbase.ui \
+ ./instruments/ccontrolbase.ui \
+ ./widgets/synthconfigbase.ui \
+ ./widgets/mixdowndialogbase.ui \
+ ./widgets/aboutbox.ui \
+ ./widgets/editnotedialogbase.ui \
+ ./widgets/commentbase.ui \
+ ./widgets/fdialogbuttons.ui \
+ ./widgets/metronomebase.ui \
+ ./widgets/gensetbase.ui \
+ ./widgets/shortcutcapturedialogbase.ui \
+ ./widgets/mtrackinfobase.ui \
+ ./widgets/editmetadialogbase.ui \
+ ./widgets/gatetimebase.ui \
+ ./widgets/configmidifilebase.ui \
+ ./widgets/editsysexdialogbase.ui \
+ ./widgets/wtrackinfobase.ui \
+ ./widgets/midisync.ui \
+ ./widgets/appearancebase.ui \
+ ./widgets/velocitybase.ui \
+ ./widgets/cliplisteditorbase.ui \
+ ./widgets/mittransposebase.ui \
+ ./widgets/transformbase.ui \
+ ./widgets/transposebase.ui \
+ ./widgets/editctrl7dialogbase.ui \
+ ./widgets/shortcutconfigbase.ui \
+ ./widgets/itransformbase.ui
+
+TRANSLATIONS = \
+ ../share/locale/muse_de.ts \
+ ../share/locale/muse_fr.ts \
+ ../share/locale/muse_sv_SE.ts \
+ ../share/locale/muse_es.ts \
+ ../share/locale/muse_ru.ts \
+ ../share/locale/muse_pl.ts
+
diff --git a/muse2/muse/node.cpp b/muse2/muse/node.cpp
new file mode 100644
index 00000000..47fbf1f2
--- /dev/null
+++ b/muse2/muse/node.cpp
@@ -0,0 +1,1911 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: node.cpp,v 1.36.2.25 2009/12/20 05:00:35 terminator356 Exp $
+//
+// (C) Copyright 2000-2004 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include <cmath>
+#include <assert.h>
+#include <sndfile.h>
+#include <stdlib.h>
+
+#include "node.h"
+#include "globals.h"
+#include "gconfig.h"
+#include "song.h"
+#include "xml.h"
+#include "plugin.h"
+#include "synth.h"
+#include "audiodev.h"
+#include "audio.h"
+#include "wave.h"
+#include "utils.h" //debug
+#include "ticksynth.h" // metronome
+#include "al/dsp.h"
+
+// Uncomment this (and make sure to set Jack buffer size high like 2048)
+// to see process flow messages.
+//#define NODE_DEBUG
+//#define FIFO_DEBUG
+
+// Added by Tim. p3.3.18
+//#define METRONOME_DEBUG
+
+//---------------------------------------------------------
+// isMute
+//---------------------------------------------------------
+
+bool MidiTrack::isMute() const
+ {
+ if (_solo || (_internalSolo && !_mute))
+ return false;
+
+ if (_soloRefCnt)
+ return true;
+
+ return _mute;
+ }
+
+bool AudioTrack::isMute() const
+ {
+ if (_solo || (_internalSolo && !_mute))
+ return false;
+
+ if (_soloRefCnt)
+ return true;
+
+ return _mute;
+ }
+
+//---------------------------------------------------------
+// setSolo
+//---------------------------------------------------------
+
+void MidiTrack::setSolo(bool val)
+{
+ if(_solo != val)
+ {
+ _solo = val;
+ updateSoloStates(false);
+ }
+}
+
+void AudioTrack::setSolo(bool val)
+{
+ if(_solo != val)
+ {
+ _solo = val;
+ updateSoloStates(false);
+ }
+
+ if (isMute())
+ resetMeter();
+}
+
+//---------------------------------------------------------
+// setInternalSolo
+//---------------------------------------------------------
+
+void Track::setInternalSolo(unsigned int val)
+{
+ _internalSolo = val;
+}
+
+//---------------------------------------------------------
+// clearSoloRefCounts
+// This is a static member function. Required for outside access.
+// Clears the internal static reference counts.
+//---------------------------------------------------------
+
+void Track::clearSoloRefCounts()
+{
+ _soloRefCnt = 0;
+}
+
+//---------------------------------------------------------
+// updateSoloState
+//---------------------------------------------------------
+
+void Track::updateSoloState()
+{
+ if(_solo)
+ _soloRefCnt++;
+ else
+ if(_soloRefCnt && !_tmpSoloChainNoDec)
+ _soloRefCnt--;
+}
+
+//---------------------------------------------------------
+// updateInternalSoloStates
+//---------------------------------------------------------
+
+void Track::updateInternalSoloStates()
+{
+ if(_tmpSoloChainTrack->solo())
+ {
+ _internalSolo++;
+ _soloRefCnt++;
+ }
+ else
+ if(!_tmpSoloChainNoDec)
+ {
+ if(_internalSolo)
+ _internalSolo--;
+ if(_soloRefCnt)
+ _soloRefCnt--;
+ }
+}
+
+//---------------------------------------------------------
+// updateInternalSoloStates
+//---------------------------------------------------------
+
+void MidiTrack::updateInternalSoloStates()
+{
+ if(this == _tmpSoloChainTrack)
+ return;
+
+ Track::updateInternalSoloStates();
+}
+
+//---------------------------------------------------------
+// updateInternalSoloStates
+//---------------------------------------------------------
+
+void AudioTrack::updateInternalSoloStates()
+{
+ if(this == _tmpSoloChainTrack)
+ return;
+
+ Track::updateInternalSoloStates();
+
+ if(_tmpSoloChainDoIns)
+ {
+ if(type() == AUDIO_SOFTSYNTH)
+ {
+ const MidiTrackList* ml = song->midis();
+ for(ciMidiTrack im = ml->begin(); im != ml->end(); ++im)
+ {
+ MidiTrack* mt = *im;
+ if(mt->outPort() >= 0 && mt->outPort() == ((SynthI*)this)->midiPort())
+ mt->updateInternalSoloStates();
+ }
+ }
+
+ const RouteList* rl = inRoutes();
+ for(ciRoute ir = rl->begin(); ir != rl->end(); ++ir)
+ {
+ if(ir->type == Route::TRACK_ROUTE)
+ ir->track->updateInternalSoloStates();
+ }
+ }
+ else
+ {
+ const RouteList* rl = outRoutes();
+ for(ciRoute ir = rl->begin(); ir != rl->end(); ++ir)
+ {
+ if(ir->type == Route::TRACK_ROUTE)
+ ir->track->updateInternalSoloStates();
+ }
+ }
+}
+
+//---------------------------------------------------------
+// updateSoloStates
+//---------------------------------------------------------
+
+void MidiTrack::updateSoloStates(bool noDec)
+{
+ if(noDec && !_solo)
+ return;
+
+ _tmpSoloChainTrack = this;
+ _tmpSoloChainDoIns = false;
+ _tmpSoloChainNoDec = noDec;
+ updateSoloState();
+
+ if(outPort() >= 0)
+ {
+ MidiDevice *md = midiPorts[outPort()].device();
+ if(md && md->isSynti())
+ ((SynthI*)md)->updateInternalSoloStates();
+ }
+}
+
+//---------------------------------------------------------
+// updateSoloStates
+//---------------------------------------------------------
+
+void AudioTrack::updateSoloStates(bool noDec)
+{
+ if(noDec && !_solo)
+ return;
+
+ _tmpSoloChainTrack = this;
+ _tmpSoloChainNoDec = noDec;
+ updateSoloState();
+
+ _tmpSoloChainDoIns = true;
+ if(type() == AUDIO_SOFTSYNTH)
+ {
+ const MidiTrackList* ml = song->midis();
+ for(ciMidiTrack im = ml->begin(); im != ml->end(); ++im)
+ {
+ MidiTrack* mt = *im;
+ if(mt->outPort() >= 0 && mt->outPort() == ((SynthI*)this)->midiPort())
+ mt->updateInternalSoloStates();
+ }
+ }
+
+ {
+ const RouteList* rl = inRoutes();
+ for(ciRoute ir = rl->begin(); ir != rl->end(); ++ir)
+ {
+ if(ir->type == Route::TRACK_ROUTE)
+ ir->track->updateInternalSoloStates();
+ }
+ }
+ _tmpSoloChainDoIns = false;
+ {
+ const RouteList* rl = outRoutes();
+ for(ciRoute ir = rl->begin(); ir != rl->end(); ++ir)
+ {
+ if(ir->type == Route::TRACK_ROUTE)
+ ir->track->updateInternalSoloStates();
+ }
+ }
+}
+
+//---------------------------------------------------------
+// setMute
+//---------------------------------------------------------
+
+void Track::setMute(bool val)
+ {
+ _mute = val;
+ }
+
+//---------------------------------------------------------
+// setOff
+//---------------------------------------------------------
+
+void Track::setOff(bool val)
+ {
+ _off = val;
+ }
+
+//---------------------------------------------------------
+// copyData
+//---------------------------------------------------------
+
+//void AudioTrack::copyData(unsigned pos, int dstChannels, unsigned nframes, float** dstBuffer)
+void AudioTrack::copyData(unsigned pos, int dstChannels, int srcStartChan, int srcChannels, unsigned nframes, float** dstBuffer)
+{
+ //Changed by T356. 12/12/09.
+ // Overhaul and streamline to eliminate multiple processing during one process loop.
+ // Was causing ticking sound with synths + multiple out routes because synths were being processed multiple times.
+ // Make better use of AudioTrack::outBuffers as a post-effect pre-volume cache system for multiple calls here during processing.
+ // Previously only WaveTrack used them. (Changed WaveTrack as well).
+
+ if(srcStartChan == -1)
+ srcStartChan = 0;
+
+ int srcChans = (srcChannels == -1) ? channels() : srcChannels;
+ int srcTotalOutChans = totalOutChannels();
+ if(channels() == 1)
+ srcTotalOutChans = 1;
+
+ #ifdef NODE_DEBUG
+ printf("MusE: AudioTrack::copyData name:%s processed:%d\n", name().latin1(), processed());
+ #endif
+
+ // Special consideration for metronome: It is not part of the track list,
+ // and it has no in or out routes, yet multiple output tracks may call addData on it !
+ // We can't tell how many output tracks call it, so we can only assume there might be more than one.
+ // Not strictly necessary here because only addData is ever called, but just to be consistent...
+ //bool usedirectbuf = (outRoutes()->size() <= 1) || (type() == AUDIO_OUTPUT);
+ bool usedirectbuf = ((outRoutes()->size() <= 1) || (type() == AUDIO_OUTPUT)) && (this != metronome);
+
+ int i;
+
+ // p3.3.38
+ //float* buffer[srcChannels];
+ float* buffer[srcTotalOutChans];
+
+
+ //float data[nframes * srcChannels];
+ //for(i = 0; i < srcChannels; ++i)
+ // buffer[i] = data + i * nframes;
+
+ // precalculate stereo volume
+ double vol[2];
+ double _volume = volume();
+ double _pan = pan();
+ vol[0] = _volume * (1.0 - _pan);
+ vol[1] = _volume * (1.0 + _pan);
+ float meter[srcChans];
+
+ // Have we been here already during this process cycle?
+ if(processed())
+ {
+ // If there is only one (or no) output routes, it's an error - we've been called more than once per process cycle!
+ #ifdef NODE_DEBUG
+ if(usedirectbuf)
+ printf("MusE: AudioTrack::copyData Error! One or no out routes, but already processed! Copying local buffers anyway...\n");
+ #endif
+
+ // Is there already some data gathered from a previous call during this process cycle?
+ if(_haveData)
+ {
+ // Point the input buffers at our local cached 'pre-volume' buffers. They need processing, so continue on after.
+ //for(i = 0; i < srcChannels; ++i)
+ // buffer[i] = outBuffers[i];
+ // p3.3.38
+ for(i = 0; i < srcTotalOutChans; ++i)
+ buffer[i] = outBuffers[i];
+ }
+ else
+ {
+ // No data was available from a previous call during this process cycle. Zero the supplied buffers and just return.
+ for(i = 0; i < dstChannels; ++i)
+ {
+ if(config.useDenormalBias)
+ {
+ for(unsigned int q = 0; q < nframes; ++q)
+ dstBuffer[i][q] = denormalBias;
+ }
+ else
+ memset(dstBuffer[i], 0, sizeof(float) * nframes);
+ }
+ return;
+ }
+ }
+ else
+ {
+ // First time here during this process cycle.
+
+ // Point the input buffers at a temporary stack buffer.
+ //float data[nframes * srcChannels];
+ //for(i = 0; i < srcChannels; ++i)
+ // buffer[i] = data + i * nframes;
+ // p3.3.38
+ float data[nframes * srcTotalOutChans];
+ for(i = 0; i < srcTotalOutChans; ++i)
+ buffer[i] = data + i * nframes;
+
+ // getData can use the supplied buffers, or change buffer to point to its own local buffers or Jack buffers etc.
+ // For ex. if this is an audio input, Jack will set the pointers for us in AudioInput::getData!
+ // p3.3.29 1/27/10 Don't do any processing at all if off. Whereas, mute needs to be ready for action at all times,
+ // so still call getData before it. Off is NOT meant to be toggled rapidly, but mute is !
+ //if(!getData(pos, srcChannels, nframes, buffer) || off() || (isMute() && !_prefader))
+ //if(off() || !getData(pos, srcChannels, nframes, buffer) || (isMute() && !_prefader))
+ // p3.3.38
+ if(off() || !getData(pos, srcTotalOutChans, nframes, buffer) || (isMute() && !_prefader))
+ {
+ #ifdef NODE_DEBUG
+ printf("MusE: AudioTrack::copyData name:%s dstChannels:%d zeroing buffers\n", name().latin1(), dstChannels);
+ #endif
+
+ // No data was available. Zero the supplied buffers.
+ unsigned int q;
+ for(i = 0; i < dstChannels; ++i)
+ {
+ if(config.useDenormalBias)
+ {
+ for(q = 0; q < nframes; ++q)
+ dstBuffer[i][q] = denormalBias;
+ }
+ else
+ memset(dstBuffer[i], 0, sizeof(float) * nframes);
+ }
+
+ for(i = 0; i < srcChans; ++i)
+ {
+ //_meter[i] = 0;
+ _meter[i] = 0.0;
+
+ /*
+ if(!usedirectbuf)
+ {
+ if(config.useDenormalBias)
+ {
+ for(q = 0; q < nframes; ++q)
+ outBuffers[i][q] = denormalBias;
+ }
+ else
+ memset(outBuffers[i], 0, sizeof(float) * nframes);
+ }
+ */
+ }
+
+ _haveData = false;
+ _processed = true;
+ return;
+ }
+
+ //---------------------------------------------------
+ // apply plugin chain
+ //---------------------------------------------------
+
+ // p3.3.41
+ //fprintf(stderr, "AudioTrack::copyData %s efx apply srcChans:%d\n", name().latin1(), srcChans);
+ _efxPipe->apply(srcChans, nframes, buffer);
+
+ //---------------------------------------------------
+ // aux sends
+ //---------------------------------------------------
+
+ if(hasAuxSend() && !isMute())
+ {
+ AuxList* al = song->auxs();
+ unsigned naux = al->size();
+ for(unsigned k = 0; k < naux; ++k)
+ {
+ float m = _auxSend[k];
+ if(m <= 0.0001) // optimize
+ continue;
+ AudioAux* a = (AudioAux*)((*al)[k]);
+ float** dst = a->sendBuffer();
+ int auxChannels = a->channels();
+ if((srcChans ==1 && auxChannels==1) || srcChans == 2)
+ {
+ for(int ch = 0; ch < srcChans; ++ch)
+ {
+ float* db = dst[ch % a->channels()]; // no matter whether there's one or two dst buffers
+ float* sb = buffer[ch];
+ for(unsigned f = 0; f < nframes; ++f)
+ *db++ += (*sb++ * m * vol[ch]); // add to mix
+ }
+ }
+ else if(srcChans==1 && auxChannels==2) // copy mono to both channels
+ {
+ for(int ch = 0; ch < auxChannels; ++ch)
+ {
+ float* db = dst[ch % a->channels()];
+ float* sb = buffer[0];
+ for(unsigned f = 0; f < nframes; ++f)
+ *db++ += (*sb++ * m * vol[ch]); // add to mix
+ }
+ }
+ }
+ }
+
+ //---------------------------------------------------
+ // prefader metering
+ //---------------------------------------------------
+
+ if(_prefader)
+ {
+ for(i = 0; i < srcChans; ++i)
+ {
+ float* p = buffer[i];
+ meter[i] = 0.0;
+ for(unsigned k = 0; k < nframes; ++k)
+ {
+ double f = fabs(*p);
+ if(f > meter[i])
+ meter[i] = f;
+ ++p;
+ }
+ //_meter[i] = lrint(meter[i] * 32767.0);
+ _meter[i] = meter[i];
+ if(_meter[i] > _peak[i])
+ _peak[i] = _meter[i];
+ }
+ }
+
+ if(isMute())
+ {
+ unsigned int q;
+ for(i = 0; i < dstChannels; ++i)
+ {
+ if(config.useDenormalBias)
+ {
+ for(q = 0; q < nframes; q++)
+ dstBuffer[i][q] = denormalBias;
+ }
+ else
+ memset(dstBuffer[i], 0, sizeof(float) * nframes);
+ }
+
+ /*
+ if(!usedirectbuf)
+ {
+ for(i = 0; i < srcChannels; ++i)
+ {
+ if(config.useDenormalBias)
+ {
+ for(q = 0; q < nframes; ++q)
+ outBuffers[i][q] = denormalBias;
+ }
+ else
+ memset(outBuffers[i], 0, sizeof(float) * nframes);
+ }
+ }
+ */
+
+ _haveData = false;
+ _processed = true;
+ return;
+ }
+
+ // If we're using local cached 'pre-volume' buffers, copy the input buffers (as they are right now: post-effect pre-volume) back to them.
+ if(!usedirectbuf)
+ {
+ //for(i = 0; i < srcChannels; ++i)
+ // AL::dsp->cpy(outBuffers[i], buffer[i], nframes);
+ // p3.3.38
+ for(i = 0; i < srcTotalOutChans; ++i)
+ AL::dsp->cpy(outBuffers[i], buffer[i], nframes);
+ }
+
+ // We have some data! Set to true.
+ _haveData = true;
+ }
+
+ // Sanity check. Is source starting channel out of range? Just zero and return.
+ if(srcStartChan >= srcTotalOutChans)
+ {
+ unsigned int q;
+ for(i = 0; i < dstChannels; ++i)
+ {
+ if(config.useDenormalBias)
+ {
+ for(q = 0; q < nframes; q++)
+ dstBuffer[i][q] = denormalBias;
+ }
+ else
+ memset(dstBuffer[i], 0, sizeof(float) * nframes);
+ }
+ _processed = true;
+ return;
+ }
+ // Force a source range to fit actual available total out channels.
+ if((srcStartChan + srcChans) > srcTotalOutChans)
+ srcChans = srcTotalOutChans - srcStartChan;
+
+ //---------------------------------------------------
+ // apply volume
+ // postfader metering
+ //---------------------------------------------------
+
+
+ if(srcChans == dstChannels)
+ {
+ if(_prefader)
+ {
+ for(int c = 0; c < dstChannels; ++c)
+ {
+ // p3.3.38
+ //float* sp = buffer[c];
+ float* sp = buffer[c + srcStartChan];
+
+ float* dp = dstBuffer[c];
+ for(unsigned k = 0; k < nframes; ++k)
+ *dp++ = (*sp++ * vol[c]);
+ }
+ }
+ else
+ {
+ for(int c = 0; c < dstChannels; ++c)
+ {
+ meter[c] = 0.0;
+
+ // p3.3.38
+ //float* sp = buffer[c];
+ float* sp = buffer[c + srcStartChan];
+
+ float* dp = dstBuffer[c];
+ //printf("2 dstBuffer[c]=%d\n",long(dstBuffer[c]));
+ for(unsigned k = 0; k < nframes; ++k)
+ {
+ float val = *sp++ * vol[c];
+ *dp++ = val;
+ double f = fabs(val);
+ if(f > meter[c])
+ meter[c] = f;
+ }
+ //_meter[c] = lrint(meter[c] * 32767.0);
+ _meter[c] = meter[c];
+ if(_meter[c] > _peak[c])
+ _peak[c] = _meter[c];
+ }
+ }
+ }
+ else if(srcChans == 1 && dstChannels == 2)
+ {
+ // p3.3.38
+ //float* sp = buffer[0];
+ float* sp = buffer[srcStartChan];
+
+ if(_prefader)
+ {
+ for(int c = 0; c < dstChannels; ++c)
+ {
+ float* dp = dstBuffer[c];
+ for(unsigned k = 0; k < nframes; ++k)
+ *dp++ = (*sp++ * vol[c]);
+ }
+ }
+ else
+ {
+ meter[0] = 0.0;
+ for(unsigned k = 0; k < nframes; ++k)
+ {
+ float val = *sp++;
+ double f = fabs(val) * _volume;
+ if(f > meter[0])
+ meter[0] = f;
+ *(dstBuffer[0] + k) = val * vol[0];
+ *(dstBuffer[1] + k) = val * vol[1];
+ }
+ //_meter[0] = lrint(meter[0] * 32767.0);
+ _meter[0] = meter[0];
+ if(_meter[0] > _peak[0])
+ _peak[0] = _meter[0];
+ }
+ }
+ else if(srcChans == 2 && dstChannels == 1)
+ {
+ // p3.3.38
+ //float* sp1 = buffer[0];
+ //float* sp2 = buffer[1];
+ float* sp1 = buffer[srcStartChan];
+ float* sp2 = buffer[srcStartChan + 1];
+
+ if(_prefader)
+ {
+ float* dp = dstBuffer[0];
+ for(unsigned k = 0; k < nframes; ++k)
+ *dp++ = (*sp1++ * vol[0] + *sp2++ * vol[1]);
+ }
+ else
+ {
+ float* dp = dstBuffer[0];
+ meter[0] = 0.0;
+ meter[1] = 0.0;
+ for(unsigned k = 0; k < nframes; ++k)
+ {
+ float val1 = *sp1++ * vol[0];
+ float val2 = *sp2++ * vol[1];
+ double f1 = fabs(val1);
+ if(f1 > meter[0])
+ meter[0] = f1;
+ double f2 = fabs(val2);
+ if(f2 > meter[1])
+ meter[1] = f2;
+ *dp++ = (val1 + val2);
+ }
+ //_meter[0] = lrint(meter[0] * 32767.0);
+ _meter[0] = meter[0];
+ if(_meter[0] > _peak[0])
+ _peak[0] = _meter[0];
+ //_meter[1] = lrint(meter[1] * 32767.0);
+ _meter[1] = meter[1];
+ if(_meter[1] > _peak[1])
+ _peak[1] = _meter[1];
+ }
+ }
+
+ _processed = true;
+}
+
+//---------------------------------------------------------
+// addData
+//---------------------------------------------------------
+
+//void AudioTrack::addData(unsigned pos, int dstChannels, unsigned nframes, float** dstBuffer)
+void AudioTrack::addData(unsigned pos, int dstChannels, int srcStartChan, int srcChannels, unsigned nframes, float** dstBuffer)
+{
+ //Changed by T356. 12/12/09.
+ // Overhaul and streamline to eliminate multiple processing during one process loop.
+ // Was causing ticking sound with synths + multiple out routes because synths were being processed multiple times.
+ // Make better use of AudioTrack::outBuffers as a post-effect pre-volume cache system for multiple calls here during processing.
+ // Previously only WaveTrack used them. (Changed WaveTrack as well).
+
+ //Added by Tim. p3.3.16
+ #ifdef NODE_DEBUG
+ printf("MusE: AudioTrack::addData name:%s processed:%d\n", name().latin1(), processed());
+ #endif
+
+ if (off())
+ {
+ _processed = true;
+ return;
+ }
+
+ if(srcStartChan == -1)
+ srcStartChan = 0;
+
+ int srcChans = (srcChannels == -1) ? channels() : srcChannels;
+ int srcTotalOutChans = totalOutChannels();
+ if(channels() == 1)
+ srcTotalOutChans = 1;
+
+ // Special consideration for metronome: It is not part of the track list,
+ // and it has no in or out routes, yet multiple output tracks may call addData on it !
+ // We can't tell how many output tracks call it, so we can only assume there might be more than one.
+ //bool usedirectbuf = (outRoutes()->size() <= 1) || (type() == AUDIO_OUTPUT);
+ bool usedirectbuf = ((outRoutes()->size() <= 1) || (type() == AUDIO_OUTPUT)) && (this != metronome);
+
+ int i;
+
+ // p3.3.38
+ //float* buffer[srcChannels];
+ float* buffer[srcTotalOutChans];
+
+ //float data[nframes * srcChannels];
+ //for (i = 0; i < srcChannels; ++i)
+ // buffer[i] = data + i * nframes;
+
+ // precalculate stereo volume
+ double vol[2];
+ double _volume = volume();
+ double _pan = pan();
+ vol[0] = _volume * (1.0 - _pan);
+ vol[1] = _volume * (1.0 + _pan);
+ float meter[srcChans];
+
+ // Have we been here already during this process cycle?
+ if(processed())
+ {
+ // If there is only one (or no) output routes, it's an error - we've been called more than once per process cycle!
+ #ifdef NODE_DEBUG
+ if(usedirectbuf)
+ printf("MusE: AudioTrack::addData Error! One or no out routes, but already processed! Copying local buffers anyway...\n");
+ #endif
+
+ // Is there already some data gathered from a previous call during this process cycle?
+ if(_haveData)
+ {
+ // Point the input buffers at our local cached 'pre-volume' buffers. They need processing, so continue on after.
+ //for(i = 0; i < srcChannels; ++i)
+ // buffer[i] = outBuffers[i];
+ // p3.3.38
+ for(i = 0; i < srcTotalOutChans; ++i)
+ buffer[i] = outBuffers[i];
+ }
+ else
+ // No data was available from a previous call during this process cycle. Nothing to add, just return.
+ return;
+ }
+ else
+ {
+ // First time here during this process cycle.
+
+ // Point the input buffers at a temporary stack buffer.
+ //float data[nframes * srcChannels];
+ //for(i = 0; i < srcChannels; ++i)
+ // buffer[i] = data + i * nframes;
+ // p3.3.38
+ float data[nframes * srcTotalOutChans];
+ for(i = 0; i < srcTotalOutChans; ++i)
+ buffer[i] = data + i * nframes;
+
+
+ // getData can use the supplied buffers, or change buffer to point to its own local buffers or Jack buffers etc.
+ // For ex. if this is an audio input, Jack will set the pointers for us.
+ //if(!getData(pos, srcChannels, nframes, buffer))
+ // p3.3.38
+ if(!getData(pos, srcTotalOutChans, nframes, buffer))
+ {
+ // No data was available. Nothing to add, but zero our local buffers and the meters.
+ for(i = 0; i < srcChans; ++i)
+ {
+ // If we're using local buffers, we must zero them so that the next thing requiring them
+ // during this process cycle will see zeros.
+ /*
+ if(!usedirectbuf)
+ {
+ if(config.useDenormalBias)
+ {
+ for(unsigned int q = 0; q < nframes; ++q)
+ outBuffers[i][q] = denormalBias;
+ }
+ else
+ memset(outBuffers[i], 0, sizeof(float) * nframes);
+ }
+ */
+
+ //_meter[i] = 0;
+ _meter[i] = 0.0;
+ }
+
+ _haveData = false;
+ _processed = true;
+ return;
+ }
+
+ /*
+ // p3.3.41 Added.
+ unsigned int q;
+ for(i = 0; i < srcChans; ++i)
+ {
+ if(config.useDenormalBias)
+ {
+ for(q = 0; q < nframes; ++q)
+ {
+ if(q & 1)
+ buffer[i][q] -= denormalBias;
+ else
+ buffer[i][q] += denormalBias;
+ }
+ }
+ }
+ */
+
+ //---------------------------------------------------
+ // apply plugin chain
+ //---------------------------------------------------
+
+ // p3.3.41
+ //fprintf(stderr, "AudioTrack::addData %s efx apply srcChans:%d nframes:%ld %e %e %e %e\n",
+ // name().latin1(), srcChans, nframes, buffer[0][0], buffer[0][1], buffer[0][2], buffer[0][3]);
+ _efxPipe->apply(srcChans, nframes, buffer);
+ // p3.3.41
+ //fprintf(stderr, "AudioTrack::addData after efx: %e %e %e %e\n",
+ // buffer[0][0], buffer[0][1], buffer[0][2], buffer[0][3]);
+
+ //---------------------------------------------------
+ // aux sends
+ //---------------------------------------------------
+
+ if(hasAuxSend() && !isMute())
+ {
+ AuxList* al = song->auxs();
+ unsigned naux = al->size();
+ for(unsigned k = 0; k < naux; ++k)
+ {
+ float m = _auxSend[k];
+ if(m <= 0.0001) // optimize
+ continue;
+ AudioAux* a = (AudioAux*)((*al)[k]);
+ float** dst = a->sendBuffer();
+ int auxChannels = a->channels();
+ if((srcChans ==1 && auxChannels==1) || srcChans==2)
+ {
+ for(int ch = 0; ch < srcChans; ++ch)
+ {
+ float* db = dst[ch % a->channels()];
+ float* sb = buffer[ch];
+ for(unsigned f = 0; f < nframes; ++f)
+ *db++ += (*sb++ * m * vol[ch]); // add to mix
+ }
+ }
+ else if(srcChans == 1 && auxChannels == 2)
+ {
+ for(int ch = 0; ch < auxChannels; ++ch)
+ {
+ float* db = dst[ch % a->channels()];
+ float* sb = buffer[0];
+ for(unsigned f = 0; f < nframes; ++f)
+ *db++ += (*sb++ * m * vol[ch]); // add to mix
+ }
+ }
+ }
+ }
+
+ //---------------------------------------------------
+ // prefader metering
+ //---------------------------------------------------
+
+ if(_prefader)
+ {
+ for(i = 0; i < srcChans; ++i)
+ {
+ float* p = buffer[i];
+ meter[i] = 0.0;
+ for(unsigned k = 0; k < nframes; ++k)
+ {
+ double f = fabs(*p);
+ if(f > meter[i])
+ meter[i] = f;
+ ++p;
+ }
+ //_meter[i] = lrint(meter[i] * 32767.0);
+ _meter[i] = meter[i];
+ if(_meter[i] > _peak[i])
+ _peak[i] = _meter[i];
+ }
+ }
+
+ if(isMute())
+ {
+ // If we're using local buffers, we must zero them.
+ /*
+ if(!usedirectbuf)
+ {
+ for(i = 0; i < srcChannels; ++i)
+ {
+ if(config.useDenormalBias)
+ {
+ for(unsigned int q = 0; q < nframes; ++q)
+ outBuffers[i][q] = denormalBias;
+ }
+ else
+ memset(outBuffers[i], 0, sizeof(float) * nframes);
+ }
+ }
+ */
+
+ _haveData = false;
+ _processed = true;
+ return;
+ }
+
+ // If we're using local cached 'pre-volume' buffers, copy the input buffers (as they are right now: post-effect pre-volume) back to them.
+ if(!usedirectbuf)
+ {
+ //for(i = 0; i < srcChannels; ++i)
+ // AL::dsp->cpy(outBuffers[i], buffer[i], nframes);
+ // p3.3.38
+ for(i = 0; i < srcTotalOutChans; ++i)
+ AL::dsp->cpy(outBuffers[i], buffer[i], nframes);
+ }
+
+ // We have some data! Set to true.
+ _haveData = true;
+ }
+
+ // Sanity check. Is source starting channel out of range? Just zero and return.
+ if(srcStartChan >= srcTotalOutChans)
+ {
+ unsigned int q;
+ for(i = 0; i < dstChannels; ++i)
+ {
+ if(config.useDenormalBias)
+ {
+ for(q = 0; q < nframes; q++)
+ dstBuffer[i][q] = denormalBias;
+ }
+ else
+ memset(dstBuffer[i], 0, sizeof(float) * nframes);
+ }
+ _processed = true;
+ return;
+ }
+ // Force a source range to fit actual available total out channels.
+ if((srcStartChan + srcChans) > srcTotalOutChans)
+ srcChans = srcTotalOutChans - srcStartChan;
+
+ //---------------------------------------------------
+ // apply volume
+ // postfader metering
+ //---------------------------------------------------
+
+ if(srcChans == dstChannels)
+ {
+ if(_prefader)
+ {
+ for(int c = 0; c < dstChannels; ++c)
+ {
+ // p3.3.38
+ //float* sp = buffer[c];
+ float* sp = buffer[c + srcStartChan];
+
+ float* dp = dstBuffer[c];
+ for(unsigned k = 0; k < nframes; ++k)
+ *dp++ += (*sp++ * vol[c]);
+ }
+ }
+ else
+ {
+ for(int c = 0; c < dstChannels; ++c)
+ {
+ meter[c] = 0.0;
+ // p3.3.38
+ //float* sp = buffer[c];
+ float* sp = buffer[c + srcStartChan];
+
+ float* dp = dstBuffer[c];
+ for(unsigned k = 0; k < nframes; ++k)
+ {
+ float val = *sp++ * vol[c];
+ *dp++ += val;
+ double f = fabs(val);
+ if (f > meter[c])
+ meter[c] = f;
+ }
+ //_meter[c] = lrint(meter[c] * 32767.0);
+ _meter[c] = meter[c];
+ if(_meter[c] > _peak[c])
+ _peak[c] = _meter[c];
+ }
+ }
+ }
+ else if(srcChans == 1 && dstChannels == 2)
+ {
+ // p3.3.38
+ float* sp = buffer[srcStartChan];
+
+ if(_prefader)
+ {
+ for(int c = 0; c < dstChannels; ++c)
+ {
+ float* dp = dstBuffer[c];
+ //float* sp = buffer[0];
+ for(unsigned k = 0; k < nframes; ++k)
+ *dp++ += (*sp++ * vol[c]);
+ }
+ }
+ else
+ {
+ //float* sp = buffer[0];
+ meter[0] = 0.0;
+ for(unsigned k = 0; k < nframes; ++k)
+ {
+ float val = *sp++;
+ double f = fabs(val) * _volume;
+ if(f > meter[0])
+ meter[0] = f;
+ *(dstBuffer[0] + k) += val * vol[0];
+ *(dstBuffer[1] + k) += val * vol[1];
+ }
+ //_meter[0] = lrint(meter[0] * 32767.0);
+ _meter[0] = meter[0];
+ if(_meter[0] > _peak[0])
+ _peak[0] = _meter[0];
+ }
+ }
+ else if(srcChans == 2 && dstChannels == 1)
+ {
+ // p3.3.38
+ //float* sp1 = buffer[0];
+ //float* sp2 = buffer[1];
+ float* sp1 = buffer[srcStartChan];
+ float* sp2 = buffer[srcStartChan + 1];
+
+ if(_prefader)
+ {
+ float* dp = dstBuffer[0];
+ for(unsigned k = 0; k < nframes; ++k)
+ *dp++ += (*sp1++ * vol[0] + *sp2++ * vol[1]);
+ }
+ else
+ {
+ float* dp = dstBuffer[0];
+ meter[0] = 0.0;
+ meter[1] = 0.0;
+ for(unsigned k = 0; k < nframes; ++k)
+ {
+ float val1 = *sp1++ * vol[0];
+ float val2 = *sp2++ * vol[1];
+ double f1 = fabs(val1);
+ if(f1 > meter[0])
+ meter[0] = f1;
+ double f2 = fabs(val2);
+ if(f2 > meter[1])
+ meter[1] = f2;
+ *dp++ += (val1 + val2);
+ }
+ //_meter[0] = lrint(meter[0] * 32767.0);
+ _meter[0] = meter[0];
+ if(_meter[0] > _peak[0])
+ _peak[0] = _meter[0];
+ //_meter[1] = lrint(meter[1] * 32767.0);
+ _meter[1] = meter[1];
+ if(_meter[1] > _peak[1])
+ _peak[1] = _meter[1];
+ }
+ }
+
+ _processed = true;
+}
+
+//---------------------------------------------------------
+// readVolume
+//---------------------------------------------------------
+
+void AudioTrack::readVolume(Xml& xml)
+ {
+ int ch = 0;
+ for (;;) {
+ Xml::Token token = xml.parse();
+ switch (token) {
+ case Xml::Error:
+ case Xml::End:
+ return;
+ case Xml::TagStart:
+ xml.unknown("readVolume");
+ break;
+ case Xml::Text:
+ setVolume(xml.s1().toDouble());
+ break;
+ case Xml::Attribut:
+ if (xml.s1() == "ch")
+ ch = xml.s2().toInt();
+ break;
+ case Xml::TagEnd:
+ if (xml.s1() == "volume")
+ return;
+ default:
+ break;
+ }
+ }
+ }
+
+// Removed by T356
+// "recfile" tag not saved anymore
+/*
+//---------------------------------------------------------
+// readRecfile
+//---------------------------------------------------------
+
+void AudioTrack::readRecfile(Xml& xml)
+ {
+ QString path;
+ int channels = 2;
+ int format = SF_FORMAT_WAV | SF_FORMAT_PCM_16;
+
+ for (;;) {
+ Xml::Token token = xml.parse();
+ if (token == Xml::Error || token == Xml::End)
+ break;
+ const QString& tag = xml.s1();
+ switch (token) {
+ case Xml::TagStart:
+ if (tag == "path")
+ path = xml.parse1();
+ else if (tag == "channels")
+ channels = xml.parseInt();
+ else if (tag == "format")
+ format = xml.parseInt();
+ else if (tag == "samplebits")
+ ;
+ else
+ xml.unknown("recfile");
+ break;
+ case Xml::TagEnd:
+ if (tag == "recfile") {
+ if (QFile::exists(path)) {
+ setRecFile(getWave(path, true));
+ }
+ else {
+ setRecFile(new SndFile(path));
+ recFile()->setFormat(format, channels, sampleRate);
+ if (recFile()->openWrite()) {
+ fprintf(stderr, "create wave file(%s) failed: %s\n",
+ path.latin1(), recFile()->strerror().latin1());
+ delete _recFile;
+ _recFile = 0;
+ }
+ }
+ return;
+ }
+ default:
+ break;
+ }
+ }
+ }
+*/
+
+//---------------------------------------------------------
+// setChannels
+//---------------------------------------------------------
+
+void Track::setChannels(int n)
+ {
+ if(n > MAX_CHANNELS)
+ _channels = MAX_CHANNELS;
+ else
+ _channels = n;
+ for (int i = 0; i < _channels; ++i) {
+ //_meter[i] = 0;
+ _meter[i] = 0.0;
+ //_peak[i] = 0;
+ _peak[i] = 0.0;
+ }
+ }
+
+void AudioInput::setChannels(int n)
+ {
+ if (n == _channels)
+ return;
+//was ist mit: void* jackPorts[MAX_CHANNELS];
+ AudioTrack::setChannels(n);
+ }
+
+void AudioOutput::setChannels(int n)
+ {
+ if (n == _channels)
+ return;
+ AudioTrack::setChannels(n);
+ }
+
+//---------------------------------------------------------
+// putFifo
+//---------------------------------------------------------
+
+void AudioTrack::putFifo(int channels, unsigned long n, float** bp)
+ {
+ if (fifo.put(channels, n, bp, audio->pos().frame())) {
+ printf(" overrun ???\n");
+ }
+ }
+
+//---------------------------------------------------------
+// getData
+// return false if no data available
+//---------------------------------------------------------
+
+bool AudioTrack::getData(unsigned pos, int channels, unsigned nframes, float** buffer)
+ {
+ // use supplied buffers
+
+ RouteList* rl = inRoutes();
+
+ #ifdef NODE_DEBUG
+ printf("AudioTrack::getData name:%s inRoutes:%d\n", name().latin1(), rl->size());
+ #endif
+
+ iRoute ir = rl->begin();
+ if (ir == rl->end())
+ return false;
+
+ if(ir->track->isMidiTrack())
+ return false;
+
+ #ifdef NODE_DEBUG
+ printf(" calling copyData on %s...\n", ir->track->name().latin1());
+ #endif
+
+ // p3.3.38
+ //((AudioTrack*)ir->track)->copyData(pos, channels, nframes, buffer);
+ ((AudioTrack*)ir->track)->copyData(pos, channels,
+ //(ir->track->type() == Track::AUDIO_SOFTSYNTH && ir->channel != -1) ? ir->channel : 0,
+ ir->channel,
+ ir->channels,
+ nframes, buffer);
+
+ // p3.3.41
+ //fprintf(stderr, "AudioTrack::getData %s data: nframes:%ld %e %e %e %e\n", name().latin1(), nframes, buffer[0][0], buffer[0][1], buffer[0][2], buffer[0][3]);
+
+ ++ir;
+ for (; ir != rl->end(); ++ir) {
+ #ifdef NODE_DEBUG
+ printf(" calling addData on %s...\n", ir->track->name().latin1());
+ #endif
+
+ if(ir->track->isMidiTrack())
+ continue;
+
+ // p3.3.38
+ //((AudioTrack*)ir->track)->addData(pos, channels, nframes, buffer);
+ ((AudioTrack*)ir->track)->addData(pos, channels,
+ //(ir->track->type() == Track::AUDIO_SOFTSYNTH && ir->channel != -1) ? ir->channel : 0,
+ ir->channel,
+ ir->channels,
+ nframes, buffer);
+ }
+ return true;
+ }
+
+//---------------------------------------------------------
+// getData
+// return true if data
+//---------------------------------------------------------
+
+bool AudioInput::getData(unsigned, int channels, unsigned nframes, float** buffer)
+ {
+ if (!checkAudioDevice()) return false;
+ for (int ch = 0; ch < channels; ++ch)
+ {
+ void* jackPort = jackPorts[ch];
+ //float* jackbuf = 0;
+
+ //if (jackPort) {
+ // p3.3.41 Do not get buffers of unconnected client ports. Causes repeating leftover data, can be loud, or DC !
+ if (jackPort && audioDevice->connections(jackPort))
+ {
+ //buffer[ch] = audioDevice->getBuffer(jackPort, nframes);
+ // p3.3.41 If the client port buffer is also used by another channel (connected to the same jack port),
+ // don't directly set pointer, copy the data instead.
+ // Otherwise the next channel will interfere - it will overwrite the buffer !
+ // Verified symptoms: Can't use a splitter. Mono noise source on a stereo track sounds in mono. Etc...
+ // TODO: Problem: What if other Audio Input tracks share the same jack ports as this Audio Input track?
+ // Users will expect that Audio Inputs just work even if the input routes originate from the same jack port.
+ // Solution: Rather than having to iterate all other channels, and all other Audio Input tracks and check
+ // their channel port buffers (if that's even possible) in order to determine if the buffer is shared,
+ // let's just copy always, for now shall we ?
+ float* jackbuf = audioDevice->getBuffer(jackPort, nframes);
+ //memcpy(buffer[ch], jackbuf, nframes* sizeof(float));
+ AL::dsp->cpy(buffer[ch], jackbuf, nframes);
+
+ if (config.useDenormalBias)
+ {
+ for (unsigned int i=0; i < nframes; i++)
+ buffer[ch][i] += denormalBias;
+
+ // p3.3.41
+ //fprintf(stderr, "AudioInput::getData %s Jack port %p efx apply channels:%d nframes:%ld %e %e %e %e\n",
+ // name().latin1(), jackPort, channels, nframes, buffer[0][0], buffer[0][1], buffer[0][2], buffer[0][3]);
+ }
+ }
+ else
+ {
+ if (config.useDenormalBias)
+ {
+ for (unsigned int i=0; i < nframes; i++)
+ buffer[ch][i] = denormalBias;
+ }
+ else
+ {
+ memset(buffer[ch], 0, nframes * sizeof(float));
+ }
+
+ // p3.3.41
+ //fprintf(stderr, "AudioInput::getData %s No Jack port efx apply channels:%d nframes:%ld %e %e %e %e\n",
+ // name().latin1(), channels, nframes, buffer[0][0], buffer[0][1], buffer[0][2], buffer[0][3]);
+ }
+ }
+ return true;
+}
+
+//---------------------------------------------------------
+// setName
+//---------------------------------------------------------
+
+void AudioInput::setName(const QString& s)
+ {
+ _name = s;
+ if (!checkAudioDevice()) return;
+ for (int i = 0; i < channels(); ++i) {
+ char buffer[128];
+ snprintf(buffer, 128, "%s-%d", _name.latin1(), i);
+ if (jackPorts[i])
+ audioDevice->setPortName(jackPorts[i], buffer);
+ else {
+ //jackPorts[i] = audioDevice->registerInPort(buffer);
+ jackPorts[i] = audioDevice->registerInPort(buffer, false);
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// resetMeter
+//---------------------------------------------------------
+
+void Track::resetMeter()
+ {
+ for (int i = 0; i < _channels; ++i)
+ //_meter[i] = 0;
+ _meter[i] = 0.0;
+ }
+
+//---------------------------------------------------------
+// resetPeaks
+//---------------------------------------------------------
+
+void Track::resetPeaks()
+ {
+ for (int i = 0; i < _channels; ++i)
+ //_peak[i] = 0;
+ _peak[i] = 0.0;
+ _lastActivity = 0;
+ }
+
+//---------------------------------------------------------
+// resetAllMeter
+//---------------------------------------------------------
+
+void Track::resetAllMeter()
+ {
+ TrackList* tl = song->tracks();
+ for (iTrack i = tl->begin(); i != tl->end(); ++i)
+ (*i)->resetMeter();
+ }
+
+//---------------------------------------------------------
+// setRecordFlag2
+// real time part (executed in audio thread)
+//---------------------------------------------------------
+
+void AudioTrack::setRecordFlag2(bool f)
+ {
+ if (f == _recordFlag)
+ return;
+ _recordFlag = f;
+ if (!_recordFlag)
+ resetMeter();
+ }
+
+//---------------------------------------------------------
+// setMute
+//---------------------------------------------------------
+
+void AudioTrack::setMute(bool f)
+ {
+ _mute = f;
+ if (_mute)
+ resetAllMeter();
+ }
+
+//---------------------------------------------------------
+// setOff
+//---------------------------------------------------------
+
+void AudioTrack::setOff(bool val)
+ {
+ _off = val;
+ if (val)
+ resetAllMeter();
+ }
+
+//---------------------------------------------------------
+// setPrefader
+//---------------------------------------------------------
+
+void AudioTrack::setPrefader(bool val)
+ {
+ _prefader = val;
+ if (!_prefader && isMute())
+ resetAllMeter();
+ }
+
+//---------------------------------------------------------
+// canEnableRecord
+//---------------------------------------------------------
+
+bool WaveTrack::canEnableRecord() const
+ {
+ return (!noInRoute() || (this == song->bounceTrack));
+ }
+
+//---------------------------------------------------------
+// record
+//---------------------------------------------------------
+
+void AudioTrack::record()
+ {
+ unsigned pos = 0;
+ float* buffer[_channels];
+
+ //printf("AudioTrack: record() fifo %p, count=%d\n", &fifo, fifo.getCount());
+
+ while(fifo.getCount()) {
+
+ if (fifo.get(_channels, segmentSize, buffer, &pos)) {
+ printf("AudioTrack::record(): empty fifo\n");
+ return;
+ }
+ if (_recFile) {
+ // Line removed by Tim. p3.3.8 Oct 28, 2009
+ //_recFile->seek(pos, 0);
+ //
+ // Fix for recorded waves being shifted ahead by an amount
+ // equal to start record position.
+ //
+ // From libsndfile ChangeLog:
+ // 2008-05-11 Erik de Castro Lopo <erikd AT mega-nerd DOT com>
+ // * src/sndfile.c
+ // Allow seeking past end of file during write.
+ //
+ // I don't know why this line would even be called, because the FIFOs'
+ // 'pos' members operate in absolute frames, which at this point
+ // would be shifted ahead by the start of the wave part.
+ // So if you begin recording a new wave part at bar 4, for example, then
+ // this line is seeking the record file to frame 288000 even before any audio is written!
+ // Therefore, just let the write do its thing and progress naturally,
+ // it should work OK since everything was OK before the libsndfile change...
+ //
+ // Tested: With the line, audio record looping sort of works, albiet with the start offset added to
+ // the wave file. And it overwrites existing audio. (Check transport window 'overwrite' function. Tie in somehow...)
+ // With the line, looping does NOT work with libsndfile from around early 2007 (my distro's version until now).
+ // Therefore it seems sometime between libsndfile ~2007 and today, libsndfile must have allowed
+ // "seek (behind) on write", as well as the "seek past end" change of 2008...
+ //
+ // Ok, so removing that line breaks *possible* record audio 'looping' functionality, revealed with
+ // later libsndfile.
+ // Try this... And while we're at it, honour the punchin/punchout, and loop functions !
+ //
+ // If punchin is on, or we have looped at least once, use left marker as offset.
+ // Note that audio::startRecordPos is reset to (roughly) the left marker pos upon loop !
+ // (Not any more! I changed Audio::Process)
+ // Since it is possible to start loop recording before the left marker (with punchin off), we must
+ // use startRecordPos or loopFrame or left marker, depending on punchin and whether we have looped yet.
+ unsigned fr;
+ if(song->punchin() && (audio->loopCount() == 0))
+ fr = song->lPos().frame();
+ else
+ if((audio->loopCount() > 0) && (audio->getStartRecordPos().frame() > audio->loopFrame()))
+ fr = audio->loopFrame();
+ else
+ fr = audio->getStartRecordPos().frame();
+ // Now seek and write. If we are looping and punchout is on, don't let punchout point interfere with looping point.
+ if( (pos >= fr) && (!song->punchout() || (!song->loop() && pos < song->rPos().frame())) )
+ {
+ pos -= fr;
+ // Added by Tim. p3.3.8
+ //int position = _recFile->seek(0, SEEK_CUR);
+ //printf("AudioTrack::record loopcnt:%d lframe:%d newpos:%d curpos:%d start:%d end:%d\n", audio->loopCount(), audio->loopFrame(), pos, position, audio->getStartRecordPos().frame(), audio->getEndRecordPos().frame());
+
+ _recFile->seek(pos, 0);
+ _recFile->write(_channels, buffer, segmentSize);
+ }
+
+ }
+ else {
+ printf("AudioNode::record(): no recFile\n");
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// processInit
+//---------------------------------------------------------
+
+void AudioOutput::processInit(unsigned nframes)
+ {
+ _nframes = nframes;
+ if (!checkAudioDevice()) return;
+ for (int i = 0; i < channels(); ++i) {
+ if (jackPorts[i]) {
+ buffer[i] = audioDevice->getBuffer(jackPorts[i], nframes);
+ if (config.useDenormalBias) {
+ for (unsigned int j=0; j < nframes; j++)
+ buffer[i][j] += denormalBias;
+ }
+ }
+ else
+ printf("PANIC: processInit: no buffer from audio driver\n");
+ }
+ }
+
+//---------------------------------------------------------
+// process
+// synthesize "n" frames at buffer offset "offset"
+// current frame position is "pos"
+//---------------------------------------------------------
+
+void AudioOutput::process(unsigned pos, unsigned offset, unsigned n)
+{
+ //Added by Tim. p3.3.16
+ #ifdef NODE_DEBUG
+ printf("MusE: AudioOutput::process name:%s processed:%d\n", name().latin1(), processed());
+ #endif
+
+ for (int i = 0; i < _channels; ++i) {
+ buffer1[i] = buffer[i] + offset;
+ }
+
+ // p3.3.38
+ //copyData(pos, _channels, n, buffer1);
+ copyData(pos, _channels, -1, -1, n, buffer1);
+}
+
+//---------------------------------------------------------
+// silence
+//---------------------------------------------------------
+
+void AudioOutput::silence(unsigned n)
+ {
+ processInit(n);
+ for (int i = 0; i < channels(); ++i)
+ if (config.useDenormalBias) {
+ for (unsigned int j=0; j < n; j++)
+ buffer[i][j] = denormalBias;
+ } else {
+ memset(buffer[i], 0, n * sizeof(float));
+ }
+ }
+
+//---------------------------------------------------------
+// processWrite
+//---------------------------------------------------------
+
+void AudioOutput::processWrite()
+ {
+ if (audio->isRecording() && song->bounceOutput == this) {
+ if (audio->freewheel()) {
+ WaveTrack* track = song->bounceTrack;
+ if (track && track->recordFlag() && track->recFile())
+ track->recFile()->write(_channels, buffer, _nframes);
+ if (recordFlag() && recFile())
+ _recFile->write(_channels, buffer, _nframes);
+ }
+ else {
+ WaveTrack* track = song->bounceTrack;
+ if (track && track->recordFlag() && track->recFile())
+ track->putFifo(_channels, _nframes, buffer);
+ if (recordFlag() && recFile())
+ putFifo(_channels, _nframes, buffer);
+ }
+ }
+ // Changed by Tim. p3.3.18
+ //if (audioClickFlag && song->click()) {
+ if (sendMetronome() && audioClickFlag && song->click()) {
+
+ // Added by Tim. p3.3.18
+ #ifdef METRONOME_DEBUG
+ printf("MusE: AudioOutput::processWrite Calling metronome->addData frame:%u channels:%d frames:%lu\n", audio->pos().frame(), _channels, _nframes);
+ #endif
+
+ // p3.3.38
+ //metronome->addData(audio->pos().frame(), _channels, _nframes, buffer);
+ metronome->addData(audio->pos().frame(), _channels, -1, -1, _nframes, buffer);
+ }
+ }
+//---------------------------------------------------------
+// setName
+//---------------------------------------------------------
+
+void AudioOutput::setName(const QString& s)
+ {
+ _name = s;
+ if (!checkAudioDevice()) return;
+ for (int i = 0; i < channels(); ++i) {
+ char buffer[128];
+ snprintf(buffer, 128, "%s-%d", _name.latin1(), i);
+ if (jackPorts[i]) {
+ audioDevice->setPortName(jackPorts[i], buffer);
+ }
+ else {
+ //jackPorts[i] = audioDevice->registerOutPort(buffer);
+ jackPorts[i] = audioDevice->registerOutPort(buffer, false);
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// Fifo
+//---------------------------------------------------------
+
+Fifo::Fifo()
+ {
+ muse_atomic_init(&count);
+ //nbuffer = FIFO_BUFFER;
+ nbuffer = fifoLength;
+ 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)
+ {
+ // p3.3.45
+ if(buffer[i]->buffer)
+ {
+ //printf("Fifo::~Fifo freeing buffer\n");
+ free(buffer[i]->buffer);
+ }
+
+ delete buffer[i];
+ }
+
+ delete[] buffer;
+ muse_atomic_destroy(&count);
+ }
+
+//---------------------------------------------------------
+// put
+// return true if fifo full
+//---------------------------------------------------------
+
+bool Fifo::put(int segs, unsigned long samples, float** src, unsigned pos)
+ {
+ // Added by Tim. p3.3.17
+ #ifdef FIFO_DEBUG
+ printf("FIFO::put segs:%d samples:%lu pos:%u\n", segs, samples, pos);
+ #endif
+
+ if (muse_atomic_read(&count) == nbuffer) {
+ printf("FIFO %p overrun... %d\n", this, count.counter);
+ return true;
+ }
+ FifoBuffer* b = buffer[widx];
+ int n = segs * samples;
+ if (b->maxSize < n) {
+ if (b->buffer)
+ {
+ // Changed by Tim. p3.3.15
+ //delete[] b->buffer;
+ free(b->buffer);
+ // p3.3.45
+ b->buffer = 0;
+ }
+ // Changed by Tim. p3.3.15
+ //b->buffer = new float[n];
+ posix_memalign((void**)&(b->buffer), 16, sizeof(float) * n);
+ // p3.3.45
+ if(!b->buffer)
+ {
+ printf("Fifo::put could not allocate buffer segs:%d samples:%lu pos:%u\n", segs, samples, pos);
+ return true;
+ }
+
+ b->maxSize = n;
+ }
+ // p3.3.45
+ if(!b->buffer)
+ {
+ printf("Fifo::put no buffer! segs:%d samples:%lu pos:%u\n", segs, samples, pos);
+ return true;
+ }
+
+ b->size = samples;
+ b->segs = segs;
+ b->pos = pos;
+ for (int i = 0; i < segs; ++i)
+ //memcpy(b->buffer + i * samples, src[i], samples * sizeof(float));
+ AL::dsp->cpy(b->buffer + i * samples, src[i], samples);
+ add();
+ return false;
+ }
+
+//---------------------------------------------------------
+// get
+// return true if fifo empty
+//---------------------------------------------------------
+
+bool Fifo::get(int segs, unsigned long samples, float** dst, unsigned* pos)
+ {
+ // Added by Tim. p3.3.17
+ #ifdef FIFO_DEBUG
+ printf("FIFO::get segs:%d samples:%lu\n", segs, samples);
+ #endif
+
+ if (muse_atomic_read(&count) == 0) {
+ printf("FIFO %p underrun... %d\n", this,count.counter); //by willyfoobar: added count to output //see Fifo::put()
+ return true;
+ }
+ FifoBuffer* b = buffer[ridx];
+ // p3.3.45
+ if(!b->buffer)
+ {
+ printf("Fifo::get no buffer! segs:%d samples:%lu b->pos:%u\n", segs, samples, b->pos);
+ return true;
+ }
+
+ if (pos)
+ *pos = b->pos;
+
+ for (int i = 0; i < segs; ++i)
+ dst[i] = b->buffer + samples * (i % b->segs);
+ remove();
+ return false;
+ }
+
+int Fifo::getCount()
+ {
+ return muse_atomic_read(&count);
+ }
+//---------------------------------------------------------
+// remove
+//---------------------------------------------------------
+
+void Fifo::remove()
+ {
+ ridx = (ridx + 1) % nbuffer;
+ muse_atomic_dec(&count);
+ }
+
+//---------------------------------------------------------
+// getWriteBuffer
+//---------------------------------------------------------
+
+bool Fifo::getWriteBuffer(int segs, unsigned long samples, float** buf, unsigned pos)
+ {
+ // Added by Tim. p3.3.17
+ #ifdef FIFO_DEBUG
+ printf("Fifo::getWriteBuffer segs:%d samples:%lu pos:%u\n", segs, samples, pos);
+ #endif
+
+ if (muse_atomic_read(&count) == nbuffer)
+ return true;
+ FifoBuffer* b = buffer[widx];
+ int n = segs * samples;
+ if (b->maxSize < n) {
+ if (b->buffer)
+ {
+ // Changed by Tim. p3.3.15
+ //delete[] b->buffer;
+ free(b->buffer);
+ // p3.3.45
+ b->buffer = 0;
+ }
+
+ // Changed by Tim. p3.3.15
+ //b->buffer = new float[n];
+ posix_memalign((void**)&(b->buffer), 16, sizeof(float) * n);
+ // p3.3.45
+ if(!b->buffer)
+ {
+ printf("Fifo::getWriteBuffer could not allocate buffer segs:%d samples:%lu pos:%u\n", segs, samples, pos);
+ return true;
+ }
+
+ b->maxSize = n;
+ }
+
+ // p3.3.45
+ if(!b->buffer)
+ {
+ printf("Fifo::getWriteBuffer no buffer! segs:%d samples:%lu pos:%u\n", segs, samples, pos);
+ return true;
+ }
+
+ for (int i = 0; i < segs; ++i)
+ buf[i] = b->buffer + i * samples;
+
+ b->size = samples;
+ b->segs = segs;
+ b->pos = pos;
+ return false;
+ }
+
+//---------------------------------------------------------
+// add
+//---------------------------------------------------------
+
+void Fifo::add()
+ {
+ widx = (widx + 1) % nbuffer;
+ muse_atomic_inc(&count);
+ }
+
+//---------------------------------------------------------
+// setChannels
+//---------------------------------------------------------
+
+void AudioTrack::setChannels(int n)
+ {
+ Track::setChannels(n);
+ if (_efxPipe)
+ _efxPipe->setChannels(n);
+ }
+
+//---------------------------------------------------------
+// setTotalOutChannels
+//---------------------------------------------------------
+
+void AudioTrack::setTotalOutChannels(int num)
+{
+ if(num == _totalOutChannels)
+ return;
+
+ int chans = _totalOutChannels;
+ // Number of allocated buffers is always MAX_CHANNELS or more, even if _totalOutChannels is less.
+ if(chans < MAX_CHANNELS)
+ chans = MAX_CHANNELS;
+ for(int i = 0; i < chans; ++i)
+ {
+ if(outBuffers[i])
+ free(outBuffers[i]);
+ }
+ delete[] outBuffers;
+
+ _totalOutChannels = num;
+ chans = num;
+ // Number of allocated buffers is always MAX_CHANNELS or more, even if _totalOutChannels is less.
+ if(chans < MAX_CHANNELS)
+ chans = MAX_CHANNELS;
+
+ outBuffers = new float*[chans];
+ for (int i = 0; i < chans; ++i)
+ posix_memalign((void**)&outBuffers[i], 16, sizeof(float) * segmentSize);
+
+ chans = num;
+ // Limit the actual track (meters, copying etc, all 'normal' operation) to two-channel stereo.
+ if(chans > MAX_CHANNELS)
+ chans = MAX_CHANNELS;
+
+ setChannels(chans);
+}
+
+//---------------------------------------------------------
+// setTotalInChannels
+//---------------------------------------------------------
+
+void AudioTrack::setTotalInChannels(int num)
+{
+ if(num == _totalInChannels)
+ return;
+
+ _totalInChannels = num;
+}
+
diff --git a/muse2/muse/node.h b/muse2/muse/node.h
new file mode 100644
index 00000000..eaeacfbd
--- /dev/null
+++ b/muse2/muse/node.h
@@ -0,0 +1,132 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: node.h,v 1.8.2.2 2006/04/13 19:09:48 spamatica Exp $
+//
+// (C) Copyright 2001 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __AUDIONODE_H__
+#define __AUDIONODE_H__
+
+#include <list>
+#include <qstring.h>
+
+#ifndef i386
+#include <pthread.h>
+typedef struct { pthread_mutex_t lock; int counter; } muse_atomic_t;
+#else
+typedef struct { int counter; } muse_atomic_t;
+#endif
+
+static inline int muse_atomic_read(muse_atomic_t *v) {
+#ifndef i386
+ int ret;
+ pthread_mutex_lock(&v->lock);
+ ret = v->counter;
+ pthread_mutex_unlock(&v->lock);
+ return ret;
+#else
+ return v->counter;
+#endif
+}
+
+static inline void muse_atomic_set(muse_atomic_t *v, int i) {
+#ifndef i386
+ pthread_mutex_lock(&v->lock);
+ v->counter = i;
+ pthread_mutex_unlock(&v->lock);
+#else
+ v->counter = i;
+#endif
+}
+static inline void muse_atomic_inc(muse_atomic_t *v) {
+#ifndef i386
+ pthread_mutex_lock(&v->lock);
+ v->counter++;
+ pthread_mutex_unlock(&v->lock);
+#else
+ __asm__ __volatile__(
+ "lock ; " "incl %0"
+ :"=m" (v->counter)
+ :"m" (v->counter));
+#endif
+}
+static inline void muse_atomic_dec(muse_atomic_t *v) {
+#ifndef i386
+ pthread_mutex_lock(&v->lock);
+ v->counter--;
+ pthread_mutex_unlock(&v->lock);
+#else
+ __asm__ __volatile__(
+ "lock ; " "decl %0"
+ :"=m" (v->counter)
+ :"m" (v->counter));
+#endif
+}
+#ifndef i386
+static inline void muse_atomic_init(muse_atomic_t *v) {
+ pthread_mutex_init(&v->lock, NULL);
+ }
+#else
+static inline void muse_atomic_init(muse_atomic_t*) {}
+#endif
+
+#ifndef i386
+static inline void muse_atomic_destroy(muse_atomic_t *v) {
+ pthread_mutex_destroy(&v->lock);
+ }
+#else
+static inline void muse_atomic_destroy(muse_atomic_t*) {}
+#endif
+
+class Xml;
+class Pipeline;
+class SndFile;
+
+// superceeded by dynamic allocation of fifoLength
+//const int FIFO_BUFFER = 4096;//64;
+
+//---------------------------------------------------------
+// Fifo
+//---------------------------------------------------------
+
+struct FifoBuffer {
+ float* buffer;
+ int size;
+ int maxSize;
+ unsigned pos;
+ int segs;
+
+ FifoBuffer() {
+ buffer = 0;
+ size = 0;
+ maxSize = 0;
+ }
+ };
+
+class Fifo {
+ int nbuffer;
+ int ridx; // read index; only touched by reader
+ int widx; // write index; only touched by writer
+ muse_atomic_t count; // buffer count; writer increments, reader decrements
+ FifoBuffer** buffer;
+
+ public:
+ Fifo();
+ ~Fifo();
+ void clear() {
+ ridx = 0;
+ widx = 0;
+ muse_atomic_set(&count, 0);
+ }
+ bool put(int, unsigned long, float** buffer, unsigned pos);
+ bool getWriteBuffer(int, unsigned long, float** buffer, unsigned pos);
+ void add();
+ bool get(int, unsigned long, float** buffer, unsigned* pos);
+ void remove();
+ int getCount();
+ };
+
+#endif
+
diff --git a/muse2/muse/osc.cpp b/muse2/muse/osc.cpp
new file mode 100644
index 00000000..74b703c3
--- /dev/null
+++ b/muse2/muse/osc.cpp
@@ -0,0 +1,1386 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id: osc.cpp,v 1.0.0.0 2010/04/22 03:39:58 terminator356 Exp $
+//
+// Copyright (C) 1999-2010 by Werner Schweer and others
+// OSC module added by Tim.
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the 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 OSC_SUPPORT
+
+// Turn on debugging messages
+//#define OSC_DEBUG
+
+#include <string.h>
+//#include <signal.h>
+//#include <dlfcn.h>
+#include <stdlib.h>
+#include <sys/stat.h>
+#include <errno.h>
+//#include <dssi.h>
+//#include <alsa/asoundlib.h>
+//#include <qt.h>
+#include <qdir.h>
+#include <qstring.h>
+#include <qstringlist.h>
+#include <qfileinfo.h>
+//#include <qpopupmenu.h>
+#include <q3process.h>
+#include <qtimer.h>
+#include <lo/lo.h>
+
+#ifdef DSSI_SUPPORT
+#include "dssihost.h"
+#endif
+
+#include "stringparam.h"
+#include "plugin.h"
+#include "track.h"
+#include "song.h"
+#include "synth.h"
+//#include "audio.h"
+//#include "jackaudio.h"
+//#include "midi.h"
+//#include "midiport.h"
+//#include "al/al.h"
+//#include "al/xml.h"
+//#include "xml.h"
+//#include "midictrl.h"
+//#include "ladspaplugin.h"
+
+#include "app.h"
+#include "globals.h"
+#include "globaldefs.h"
+//#include "al/dsp.h"
+
+static lo_server_thread serverThread = 0;
+///static char osc_path_tmp[1024];
+static char* url = 0;
+static bool oscServerRunning = false;
+
+//---------------------------------------------------------
+// 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;
+ }
+
+//---------------------------------------------------------
+// oscMessageHandler
+//---------------------------------------------------------
+
+int oscMessageHandler(const char* path, const char* types, lo_arg** argv,
+ int argc, void* data, void* user_data)
+{
+ const char* p = path;
+
+ #ifdef OSC_DEBUG
+ if(argc)
+ {
+ printf("oscMessageHandler: path:%s argc:%d\n", path, argc);
+ for(int i = 0; i < argc; ++i)
+ {
+ printf(" ");
+ lo_arg_pp((lo_type)types[i], argv[i]);
+ }
+ printf("\n");
+ }
+ else
+ {
+ printf("%s\n", path);
+ printf("oscMessageHandler: no args, path:%s\n", path);
+ }
+ #endif
+
+ bool isSynth = false;
+
+ #ifdef DSSI_SUPPORT
+ if(strncmp(p, "/dssi_synth/", 12) == 0)
+ {
+ isSynth = true;
+ p += 12;
+ }
+ else
+ #endif
+ if(strncmp(p, "/ladspa_efx/", 12) == 0)
+ {
+ p += 12;
+ }
+ else
+ return oscDebugHandler(path, types, argv, argc, data, user_data);
+
+ TrackList* tl = song->tracks();
+
+
+ #ifdef OSC_DEBUG
+ if(isSynth)
+ fprintf(stderr, "oscMessageHandler: got message for dssi synth...\n");
+ else
+ fprintf(stderr, "oscMessageHandler: got message for ladspa effect...\n");
+ #endif
+
+ // FIXME: Slowdowns: Shouldn't need these retries but they are needed, only upon creation of the synth.
+ // Need to fix the real source of the problem! The instance is taking too long to appear after creation.
+ //
+ ///for(int retry = 0; retry < 5000; ++retry)
+ {
+ ///#ifdef OSC_DEBUG
+ ///fprintf(stderr, "oscMessageHandler: search retry number:%d ...\n", retry);
+ ///#endif
+
+ //if(_uiOscPath)
+ // break;
+
+ #ifdef DSSI_SUPPORT
+ if(isSynth)
+ {
+ // Message is meant for a dssi synth. Check dssi synth instances...
+ SynthIList* sl = song->syntis();
+ for(iSynthI si = sl->begin(); si != sl->end(); ++si)
+ {
+ SynthI* synti = *si;
+
+ #ifdef OSC_DEBUG
+ fprintf(stderr, "oscMessageHandler: searching for:%s checking synth instance:%s\n", p, synti->name().latin1());
+ #endif
+
+ const char* sub = strstr(p, synti->name().latin1());
+ if(sub == NULL)
+ continue;
+
+ //DssiSynthIF* instance = (DssiSynthIF*)synti->sif();
+ DssiSynthIF* instance = dynamic_cast<DssiSynthIF*>(synti->sif());
+ if(!instance)
+ break;
+
+ p = sub + strlen(synti->name().latin1());
+
+ if (*p != '/' || *(p + 1) == 0)
+ {
+ fprintf(stderr, "oscMessageHandler error: synth: end of path or no /\n");
+ return oscDebugHandler(path, types, argv, argc, data, user_data);
+ }
+
+ ++p;
+
+ #ifdef OSC_DEBUG
+ fprintf(stderr, "oscMessageHandler: synth track:%s method:%s\n", synti->name().latin1(), p);
+ #endif
+
+ OscIF& oscif = instance->oscIF();
+
+ if (!strcmp(p, "configure") && argc == 2 && !strcmp(types, "ss"))
+ return oscif.oscConfigure(argv);
+ else if (!strcmp(p, "control") && argc == 2 && !strcmp(types, "if"))
+ return oscif.oscControl(argv);
+ else if (!strcmp(p, "midi") && argc == 1 && !strcmp(types, "m"))
+ return oscif.oscMidi(argv);
+ else if (!strcmp(p, "program") && argc == 2 && !strcmp(types, "ii"))
+ return oscif.oscProgram(argv);
+ else if (!strcmp(p, "update") && argc == 1 && !strcmp(types, "s"))
+ return oscif.oscUpdate(argv);
+ else if (!strcmp(p, "exiting") && argc == 0)
+ return oscif.oscExiting(argv);
+ return oscDebugHandler(path, types, argv, argc, data, user_data);
+ }
+ }
+ else
+ #endif //DSSI_SUPPORT
+ // Message is meant for a ladspa effect. Check all ladspa effect instances...
+ for(ciTrack it = tl->begin(); it != tl->end(); ++it)
+ {
+ if((*it)->isMidiTrack())
+ continue;
+
+ Pipeline* efxPipe = ((AudioTrack*)*it)->efxPipe();
+ if(efxPipe)
+ {
+ for(ciPluginI ip = efxPipe->begin(); ip != efxPipe->end(); ++ip)
+ {
+ PluginI* instance = *ip;
+ if(!instance)
+ continue;
+
+ #ifdef OSC_DEBUG
+ fprintf(stderr, "oscMessageHandler: searching for:%s checking effect instance:%s label:%s lib:%s\n",
+ p, instance->name().latin1(), instance->label().latin1(), instance->lib().latin1());
+ #endif
+
+ //const char* sub = strstr(p, instance->name().latin1());
+ const char* sub = strstr(p, instance->label().latin1());
+ if(sub == NULL)
+ continue;
+
+ Plugin* plugin = instance->plugin();
+ if(!plugin)
+ break;
+
+ //p = sub + strlen(instance->name().latin1());
+ p = sub + strlen(instance->label().latin1());
+
+ if (*p != '/' || *(p + 1) == 0)
+ {
+ fprintf(stderr, "oscMessageHandler: error: effect: end of path or no /\n");
+ return oscDebugHandler(path, types, argv, argc, data, user_data);
+ }
+
+ ++p;
+
+ #ifdef OSC_DEBUG
+ //fprintf(stderr, "oscMessageHandler: effect:%s method:%s\n", instance->name().latin1(), p);
+ fprintf(stderr, "oscMessageHandler: effect:%s method:%s\n", instance->label().latin1(), p);
+ #endif
+
+ OscIF& oscif = instance->oscIF();
+
+ if (!strcmp(p, "configure") && argc == 2 && !strcmp(types, "ss"))
+ return oscif.oscConfigure(argv);
+ else if (!strcmp(p, "control") && argc == 2 && !strcmp(types, "if"))
+ return oscif.oscControl(argv);
+ else if (!strcmp(p, "midi") && argc == 1 && !strcmp(types, "m"))
+ return oscif.oscMidi(argv);
+ else if (!strcmp(p, "program") && argc == 2 && !strcmp(types, "ii"))
+ return oscif.oscProgram(argv);
+ else if (!strcmp(p, "update") && argc == 1 && !strcmp(types, "s"))
+ return oscif.oscUpdate(argv);
+ else if (!strcmp(p, "exiting") && argc == 0)
+ return oscif.oscExiting(argv);
+ return oscDebugHandler(path, types, argv, argc, data, user_data);
+ }
+ }
+ }
+
+ ///usleep(1000);
+ }
+
+ fprintf(stderr, "oscMessageHandler: timeout error: no synth or effect instance found for given path\n");
+ return oscDebugHandler(path, types, argv, argc, data, user_data);
+}
+
+
+//---------------------------------------------------------
+// initOSC
+//---------------------------------------------------------
+
+void initOSC()
+{
+ if(url)
+ free(url);
+ url = 0;
+
+ // Create OSC thread
+ // Only if not created yet.
+ if(!serverThread)
+ {
+ serverThread = lo_server_thread_new(0, oscError);
+ if(!serverThread)
+ {
+ printf("initOSC() Failed to create OSC server!\n");
+ return;
+ }
+ }
+
+ ///snprintf(osc_path_tmp, 31, "/dssi");
+ // Test: Clear the temp path:
+ //snprintf(osc_path_tmp, 31, "");
+
+ ///char* tmp = lo_server_thread_get_url(serverThread);
+
+ url = lo_server_thread_get_url(serverThread);
+ if(!url)
+ {
+ lo_server_thread_free(serverThread);
+ printf("initOSC() Failed to get OSC server thread url !\n");
+ return;
+ }
+
+ ///url = (char *)malloc(strlen(tmp) + strlen(osc_path_tmp));
+ //url = (char *)malloc(strlen(tmp));
+
+ ///sprintf(url, "%s%s", tmp, osc_path_tmp + 1);
+ //sprintf(url, "%s", tmp, osc_path_tmp + 1);
+
+ ///free(tmp);
+
+ lo_method meth = 0;
+ meth = lo_server_thread_add_method(serverThread, 0, 0, oscMessageHandler, 0);
+ if(!meth)
+ {
+ printf("initOSC() Failed to add oscMessageHandler method to OSC server!\n");
+ // Does not return a value.
+ lo_server_thread_free(serverThread);
+ serverThread = 0;
+ free(url);
+ url = 0;
+ return;
+ }
+
+ // Does not return a value.
+ lo_server_thread_start(serverThread);
+}
+
+//---------------------------------------------------------
+// exitOSC
+//---------------------------------------------------------
+
+void exitOSC()
+{
+ oscServerRunning = false;
+ if(serverThread)
+ {
+ // Does not return a value.
+ lo_server_thread_stop(serverThread);
+ lo_server_thread_free(serverThread);
+ }
+ serverThread = 0;
+}
+
+//---------------------------------------------------------
+// startOSC
+//---------------------------------------------------------
+
+void startOSC()
+{
+ if(serverThread)
+ // Does not return a value.
+ lo_server_thread_start(serverThread);
+ oscServerRunning = true;
+}
+
+//---------------------------------------------------------
+// stopOSC
+//---------------------------------------------------------
+
+void stopOSC()
+{
+ if(serverThread)
+ // Does not return a value.
+ lo_server_thread_stop(serverThread);
+ oscServerRunning = false;
+}
+
+
+
+//---------------------------------------------------------
+// OscControlFifo
+// put
+// return true on fifo overflow
+//---------------------------------------------------------
+
+bool OscControlFifo::put(const OscControlValue& event)
+ {
+ if (size < OSC_FIFO_SIZE) {
+ fifo[wIndex] = event;
+ wIndex = (wIndex + 1) % OSC_FIFO_SIZE;
+ // q_atomic_increment(&size);
+ ++size;
+ return false;
+ }
+ return true;
+ }
+
+//---------------------------------------------------------
+// get
+//---------------------------------------------------------
+
+OscControlValue OscControlFifo::get()
+ {
+ OscControlValue event(fifo[rIndex]);
+ rIndex = (rIndex + 1) % OSC_FIFO_SIZE;
+ // q_atomic_decrement(&size);
+ --size;
+ return event;
+ }
+
+//---------------------------------------------------------
+// peek
+//---------------------------------------------------------
+
+const OscControlValue& OscControlFifo::peek(int n)
+ {
+ int idx = (rIndex + n) % OSC_FIFO_SIZE;
+ return fifo[idx];
+ }
+
+//---------------------------------------------------------
+// remove
+//---------------------------------------------------------
+
+void OscControlFifo::remove()
+ {
+ rIndex = (rIndex + 1) % OSC_FIFO_SIZE;
+ // q_atomic_decrement(&size);
+ --size;
+ }
+
+
+
+//---------------------------------------------------------
+// OscIF
+// Open Sound Control Interface
+//---------------------------------------------------------
+
+OscIF::OscIF()
+{
+ //_oscPluginI = 0;
+
+ //#ifdef DSSI_SUPPORT
+ //_oscSynthIF = 0;
+ //#endif
+
+ _uiOscTarget = 0;
+ _uiOscSampleRatePath = 0;
+ _uiOscShowPath = 0;
+ _uiOscControlPath = 0;
+ _uiOscConfigurePath = 0;
+ _uiOscProgramPath = 0;
+ _uiOscPath = 0;
+ //guiPid = -1;
+ _oscGuiQProc = 0;
+ _oscGuiVisible = false;
+
+ _oscControlFifos = 0;
+}
+
+OscIF::~OscIF()
+{
+ //if (guiPid != -1)
+ // kill(guiPid, SIGHUP);
+ if(_oscGuiQProc)
+ {
+ if(_oscGuiQProc->isRunning())
+ {
+ #ifdef OSC_DEBUG
+ printf("OscIF::~OscIF terminating _oscGuiQProc\n");
+ #endif
+
+ //_oscGuiQProc->kill();
+ // "This tries to terminate the process the nice way. If the process is still running after 5 seconds,
+ // it terminates the process the hard way. The timeout should be chosen depending on the time the
+ // process needs to do all its cleanup: use a higher value if the process is likely to do a lot of
+ // computation or I/O on cleanup."
+ _oscGuiQProc->tryTerminate();
+ QTimer::singleShot( 5000, _oscGuiQProc, SLOT( kill() ) );
+ }
+ //delete _oscGuiQProc;
+ }
+
+ if(_uiOscTarget)
+ lo_address_free(_uiOscTarget);
+ if(_uiOscSampleRatePath)
+ free(_uiOscSampleRatePath);
+ if(_uiOscShowPath)
+ free(_uiOscShowPath);
+ if(_uiOscControlPath)
+ free(_uiOscControlPath);
+ if(_uiOscConfigurePath)
+ free(_uiOscConfigurePath);
+ if(_uiOscProgramPath)
+ free(_uiOscProgramPath);
+ if(_uiOscPath)
+ free(_uiOscPath);
+
+ if(_oscControlFifos)
+ delete[] _oscControlFifos;
+}
+
+//---------------------------------------------------------
+// oscFifo
+//---------------------------------------------------------
+
+OscControlFifo* OscIF::oscFifo(unsigned long i) const
+{
+ if(!_oscControlFifos)
+ return 0;
+ return &_oscControlFifos[i];
+}
+
+//---------------------------------------------------------
+// oscUpdate
+//---------------------------------------------------------
+
+int OscIF::oscUpdate(lo_arg **argv)
+{
+ const char *purl = (char *)&argv[0]->s;
+
+ if(_uiOscTarget)
+ lo_address_free(_uiOscTarget);
+ _uiOscTarget = 0;
+ char* host = lo_url_get_hostname(purl);
+ char* port = lo_url_get_port(purl);
+ _uiOscTarget = lo_address_new(host, port);
+ free(host);
+ free(port);
+ if(!_uiOscTarget)
+ return 0;
+
+ if (_uiOscPath)
+ free(_uiOscPath);
+ _uiOscPath = lo_url_get_path(purl);
+ int pl = strlen(_uiOscPath);
+
+ if(_uiOscSampleRatePath)
+ free(_uiOscSampleRatePath);
+ _uiOscSampleRatePath = (char *)malloc(pl + 14);
+ sprintf(_uiOscSampleRatePath, "%s/sample-rate", _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.
+ */
+
+ #ifdef OSC_DEBUG
+ printf("OscIF::oscUpdate: _uiOscTarget:%p\n", _uiOscTarget);
+ if(url)
+ printf(" server url:%s\n", url);
+ else
+ printf(" no server url!\n");
+ printf(" update path:%s\n", purl);
+ printf(" _uiOscPath:%s\n", _uiOscPath);
+ printf(" _uiOscSampleRatePath:%s\n", _uiOscSampleRatePath);
+ printf(" _uiOscConfigurePath:%s\n", _uiOscConfigurePath);
+ printf(" _uiOscProgramPath:%s\n", _uiOscProgramPath);
+ printf(" _uiOscControlPath:%s\n",_uiOscControlPath);
+ printf(" _uiOscShowPath:%s\n", _uiOscShowPath);
+ printf(" museProject:%s\n", museProject.latin1());
+ #endif
+
+ // Send sample rate.
+ lo_send(_uiOscTarget, _uiOscSampleRatePath, "i", sampleRate);
+
+ // Send project directory.
+ //lo_send(_uiOscTarget, _uiOscConfigurePath, "ss",
+ // DSSI_PROJECT_DIRECTORY_KEY, museProject.latin1()); // song->projectPath()
+
+ // Done in sub-classes.
+ /*
+ #ifdef DSSI_SUPPORT
+ //lo_send(_uiOscTarget, _uiOscConfigurePath, "ss",
+ //DSSI_PROJECT_DIRECTORY_KEY, song->projectPath().toAscii().data());
+ lo_send(_uiOscTarget, _uiOscConfigurePath, "ss",
+ DSSI_PROJECT_DIRECTORY_KEY, museProject.latin1());
+
+ if(_oscSynthIF)
+ {
+ for(ciStringParamMap r = _oscSynthIF->synthI->_stringParamMap.begin(); r != synti->_stringParamMap.end(); ++r)
+ {
+ rv = 0;
+ rv = dssi->configure(handle, r->first.c_str(), r->second.c_str());
+ if(rv)
+ {
+ fprintf(stderr, "MusE: Warning: plugin config key: %s value: %s \"%s\"\n", r->first.c_str(), r->second.c_str(), rv);
+ free(rv);
+ }
+ }
+ }
+ #endif
+ */
+
+ /*
+ char uiOscGuiPath[strlen(_uiOscPath)+6];
+ sprintf(uiOscGuiPath, "%s/%s", _uiOscPath, "show");
+
+ #ifdef OSC_DEBUG
+ printf("OscIF::oscUpdate Sending show uiOscGuiPath:%s\n", uiOscGuiPath);
+ #endif
+
+ lo_send(_uiOscTarget, uiOscGuiPath, "");
+
+ sprintf(uiOscGuiPath, "%s/%s", _uiOscPath, "hide");
+
+ #ifdef OSC_DEBUG
+ printf("OscIF::oscUpdate Sending hide uiOscGuiPath:%s\n", uiOscGuiPath);
+ #endif
+
+ lo_send(_uiOscTarget, uiOscGuiPath, "");
+ */
+
+#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;
+}
+
+//---------------------------------------------------------
+// oscExiting
+//---------------------------------------------------------
+
+int OscIF::oscExiting(lo_arg**)
+{
+ // The gui is gone now, right?
+ _oscGuiVisible = false;
+
+ if(_oscGuiQProc)
+ {
+ if(_oscGuiQProc->isRunning())
+ {
+ #ifdef OSC_DEBUG
+ printf("OscIF::oscExiting terminating _oscGuiQProc\n");
+ #endif
+
+ //_oscGuiQProc->kill();
+ // "This tries to terminate the process the nice way. If the process is still running after 5 seconds,
+ // it terminates the process the hard way. The timeout should be chosen depending on the time the
+ // process needs to do all its cleanup: use a higher value if the process is likely to do a lot of
+ // computation or I/O on cleanup."
+ _oscGuiQProc->tryTerminate();
+ QTimer::singleShot( 5000, _oscGuiQProc, SLOT( kill() ) );
+ }
+ //delete _oscGuiQProc;
+ }
+
+ if(_uiOscTarget)
+ lo_address_free(_uiOscTarget);
+ _uiOscTarget = 0;
+ if(_uiOscSampleRatePath)
+ free(_uiOscSampleRatePath);
+ _uiOscSampleRatePath = 0;
+ if(_uiOscShowPath)
+ free(_uiOscShowPath);
+ _uiOscShowPath = 0;
+ if(_uiOscControlPath)
+ free(_uiOscControlPath);
+ _uiOscControlPath = 0;
+ if(_uiOscConfigurePath)
+ free(_uiOscConfigurePath);
+ _uiOscConfigurePath = 0;
+ if(_uiOscProgramPath)
+ free(_uiOscProgramPath);
+ _uiOscProgramPath = 0;
+ if(_uiOscPath)
+ free(_uiOscPath);
+ _uiOscPath = 0;
+
+ //if(_oscControlFifos)
+ // delete[] _oscControlFifos;
+
+ //const DSSI_Descriptor* dssi = synth->dssi;
+ //const LADSPA_Descriptor* ld = dssi->LADSPA_Plugin;
+ //if(ld->deactivate)
+ // ld->deactivate(handle);
+
+ /*
+ if (_uiOscPath == 0) {
+ printf("OscIF::oscExiting(): no _uiOscPath\n");
+ return 1;
+ }
+ char uiOscGuiPath[strlen(_uiOscPath)+6];
+
+ sprintf(uiOscGuiPath, "%s/%s", _uiOscPath, "quit");
+ #ifdef OSC_DEBUG
+ printf("OscIF::oscExiting(): sending quit to uiOscGuiPath:%s\n", uiOscGuiPath);
+ #endif
+
+ lo_send(_uiOscTarget, uiOscGuiPath, "");
+ */
+
+#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;
+}
+
+//---------------------------------------------------------
+// oscSendProgram
+//---------------------------------------------------------
+
+void OscIF::oscSendProgram(unsigned long prog, unsigned long bank)
+{
+ if(_uiOscTarget && _uiOscProgramPath)
+ lo_send(_uiOscTarget, _uiOscProgramPath, "ii", bank, prog);
+}
+
+//---------------------------------------------------------
+// oscSendControl
+//---------------------------------------------------------
+
+void OscIF::oscSendControl(unsigned long dssiPort, float v)
+{
+ if(_uiOscTarget && _uiOscControlPath)
+ lo_send(_uiOscTarget, _uiOscControlPath, "if", dssiPort, v);
+}
+
+//---------------------------------------------------------
+// oscSendConfigure
+//---------------------------------------------------------
+
+void OscIF::oscSendConfigure(const char *key, const char *val)
+{
+ if(_uiOscTarget && _uiOscConfigurePath)
+ lo_send(_uiOscTarget, _uiOscConfigurePath, "ss", key, val);
+}
+
+//---------------------------------------------------------
+// oscInitGui
+//---------------------------------------------------------
+
+//bool OscIF::oscInitGui()
+bool OscIF::oscInitGui(const QString& typ, const QString& baseName, const QString& name,
+ const QString& label, const QString& filePath, const QString& dirPath)
+{
+ // Are we already running? We don't want to allow another process do we...
+ if((_oscGuiQProc != 0) && (_oscGuiQProc->isRunning()))
+ return true;
+
+ if(!url)
+ {
+ fprintf(stderr, "OscIF::oscInitGui no server url!\n");
+ return false;
+ }
+
+ //
+ // start gui
+ //
+ //static char oscUrl[1024];
+ //char oscUrl[1024];
+ QString oscUrl;
+
+ /*
+ QString typ;
+ QString baseName;
+ QString name;
+ QString label;
+ QString filePath;
+ QString dirPath;
+ #ifdef DSSI_SUPPORT
+ if(_oscSynthIF)
+ {
+ //snprintf(oscUrl, 1024, "%s/%s", url, synti->name().toAscii().data());
+ //snprintf(oscUrl, 1024, "%s/%s", url, synti->name().ascii());
+ //snprintf(oscUrl, 1024, "%s/%s/%s", url, synth->info.baseName().ascii(), synti->name().ascii());
+ typ = QT_TR_NOOP("dssi_synth");
+ baseName = _oscSynthIF->dssiSynth()->baseName(false);
+ label = _oscSynthIF->dssiSynthI()->name();
+ name = _oscSynthIF->dssiSynth()->name();
+
+ dirPath = _oscSynthIF->dssiSynth()->dirPath(false);
+ filePath = _oscSynthIF->dssiSynth()->filePath();
+ }
+ else
+ #endif
+ if(_oscPluginI)
+ {
+ typ = QT_TR_NOOP("ladspa_efx");
+ baseName = _oscPluginI->plugin()->lib(false);
+ //name = _oscPluginI->name();
+ name = _oscPluginI->plugin()->label();
+ label = _oscPluginI->label();
+
+ dirPath = _oscPluginI->plugin()->dirPath(false);
+ //dirPath.replace("ladspa", "dssi", true);
+
+ filePath = _oscPluginI->plugin()->filePath();
+ //filePath.replace("ladspa", "dssi", true);
+ }
+ else
+ return false;
+ */
+
+ //snprintf(oscUrl, 1024, "%s/%s/%s", url, baseName.ascii(), name.ascii());
+ //snprintf(oscUrl, 1024, "%s%s/%s/%s", url, typ.latin1(), baseName.latin1(), name.latin1());
+ //oscUrl = QString("%1%2/%3/%4").arg(QString(QT_TR_NOOP(url))).arg(typ).arg(baseName).arg(name);
+ oscUrl = QString("%1%2/%3/%4").arg(QString(QT_TR_NOOP(url))).arg(typ).arg(baseName).arg(label);
+
+ //QString guiPath(info.path() + "/" + info.baseName());
+ //QString guiPath(synth->info.dirPath() + "/" + synth->info.baseName());
+ QString guiPath(dirPath + "/" + baseName);
+
+ #ifdef OSC_DEBUG
+ fprintf(stderr, "OscIF::oscInitGui guiPath:%s\n", guiPath.latin1());
+ #endif
+
+ QDir guiDir(guiPath, "*", QDir::Unsorted, QDir::Files);
+ if (guiDir.exists())
+ {
+ //const QFileInfoList list = guiDir.entryInfoList();
+ QStringList list = guiDir.entryList();
+
+ //for (int i = 0; i < list.size(); ++i) {
+ for (unsigned int i = 0; i < list.count(); ++i)
+ {
+
+ //QFileInfo fi = list.at(i);
+ QFileInfo fi(guiPath + QString("/") + list[i]);
+
+ QString gui(fi.filePath());
+ if (gui.contains('_') == 0)
+ continue;
+ struct stat buf;
+
+ //if (stat(gui.toAscii().data(), &buf)) {
+ if (stat(gui.latin1(), &buf)) {
+
+ perror("stat failed");
+ continue;
+ }
+
+ #ifdef OSC_DEBUG
+ fprintf(stderr, "OscIF::oscInitGui %s %s %s %s\n",
+ //fi.filePath().toAscii().data(),
+ //fi.fileName().toAscii().data(),
+ fi.filePath().latin1(),
+ //fi.fileName().ascii(),
+
+ oscUrl.latin1(),
+
+ //synth->info.filePath().ascii(),
+ filePath.latin1(),
+
+ //name().toAscii().data(),
+ //synth->name().ascii());
+ name.latin1());
+ #endif
+
+ if ((S_ISREG(buf.st_mode) || S_ISLNK(buf.st_mode)) &&
+ (buf.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH)))
+ {
+ // Changed by T356.
+ // fork + execlp were causing the processes to remain after closing gui, requiring manual kill.
+ // Changed to QProcess, works OK now.
+ //if((guiPid = fork()) == 0)
+ {
+ // No QProcess created yet? Do it now. Only once per SynthIF instance. Exists until parent destroyed.
+ if(_oscGuiQProc == 0)
+ _oscGuiQProc = new Q3Process(muse);
+
+ // Don't forget this, he he...
+ _oscGuiQProc->clearArguments();
+
+ _oscGuiQProc->addArgument(fi.filePath());
+ //_oscGuiQProc->addArgument(fi.fileName()); // No conventional 'Arg0' here.
+ //_oscGuiQProc->addArgument(QString(oscUrl));
+ _oscGuiQProc->addArgument(oscUrl);
+ //_oscGuiQProc->addArgument(synth->info.filePath());
+ _oscGuiQProc->addArgument(filePath);
+ //_oscGuiQProc->addArgument(synth->name());
+ _oscGuiQProc->addArgument(name);
+ _oscGuiQProc->addArgument(QString("channel-1"));
+
+ #ifdef OSC_DEBUG
+ fprintf(stderr, "OscIF::oscInitGui starting QProcess\n");
+ #endif
+
+ if(_oscGuiQProc->start() == TRUE)
+ {
+ #ifdef OSC_DEBUG
+ fprintf(stderr, "OscIF::oscInitGui started QProcess\n");
+ #endif
+
+ //guiPid = _oscGuiQProc->processIdentifier();
+ }
+ else
+ {
+
+ /*
+ execlp(
+ //fi.filePath().toAscii().data(),
+ //fi.fileName().toAscii().data(),
+ fi.filePath().ascii(),
+ fi.fileName().ascii(),
+
+ oscUrl,
+
+ //info.filePath().toAscii().data(),
+ //name().toAscii().data(),
+ synth->info.filePath().ascii(),
+ synth->name().ascii(),
+
+ "channel 1", (void*)0);
+ */
+
+ fprintf(stderr, "exec %s %s %s %s failed: %s\n",
+ //fi.filePath().toAscii().data(),
+ //fi.fileName().toAscii().data(),
+ fi.filePath().latin1(),
+ fi.fileName().latin1(),
+
+ oscUrl.latin1(),
+
+ //name().toAscii().data(),
+ //synth->name().ascii(),
+ name.latin1(),
+
+ strerror(errno));
+
+ // It's Ok, Keep going. So nothing happens. So what. The timeout in showGui will just leave.
+ // Maybe it's a 'busy' issue somewhere - allow to try again later + save work now.
+ //exit(1);
+
+ }
+
+ #ifdef OSC_DEBUG
+ fprintf(stderr, "OscIF::oscInitGui after QProcess\n");
+ #endif
+ }
+ }
+ }
+ //synth->_hasGui = true;
+ }
+ else {
+ printf("OscIF::oscInitGui %s: no dir for gui found: %s\n",
+ //name().toAscii().data(), guiPath.toAscii().data());
+ //synth->name().ascii(), guiPath.ascii());
+ name.latin1(), guiPath.latin1());
+
+ //synth->_hasGui = false;
+ }
+
+ return true;
+}
+
+
+//---------------------------------------------------------
+// oscShowGui
+//---------------------------------------------------------
+
+void OscIF::oscShowGui(bool v)
+{
+ #ifdef OSC_DEBUG
+ printf("OscIF::oscShowGui(): v:%d visible:%d\n", v, oscGuiVisible());
+ #endif
+
+ if (v == oscGuiVisible())
+ return;
+
+ //if(guiPid == -1)
+ if((_oscGuiQProc == 0) || (!_oscGuiQProc->isRunning()))
+ {
+ // We need an indicator that update was called - update must have been called to get new path etc...
+ // If the process is not running this path is invalid, right?
+ if(_uiOscPath)
+ free(_uiOscPath);
+ _uiOscPath = 0;
+
+ #ifdef OSC_DEBUG
+ printf("OscIF::oscShowGui(): No QProcess or process not running. Starting gui...\n");
+ #endif
+
+ if(!oscInitGui())
+ {
+ printf("OscIF::oscShowGui(): failed to initialize gui on oscInitGui()\n");
+ return;
+ }
+ }
+
+ //for (int i = 0; i < 5; ++i) {
+ for (int i = 0; i < 10; ++i) { // Give it a wee bit more time?
+ if (_uiOscPath)
+ break;
+ sleep(1);
+ }
+ if (_uiOscPath == 0) {
+ printf("OscIF::oscShowGui(): no _uiOscPath. Error: Timeout - synth gui did not start within 10 seconds.\n");
+ return;
+ }
+
+ char uiOscGuiPath[strlen(_uiOscPath)+6];
+ sprintf(uiOscGuiPath, "%s/%s", _uiOscPath, v ? "show" : "hide");
+
+ #ifdef OSC_DEBUG
+ printf("OscIF::oscShowGui(): Sending show/hide uiOscGuiPath:%s\n", uiOscGuiPath);
+ #endif
+
+ lo_send(_uiOscTarget, uiOscGuiPath, "");
+ _oscGuiVisible = v;
+}
+
+//---------------------------------------------------------
+// oscGuiVisible
+//---------------------------------------------------------
+
+bool OscIF::oscGuiVisible() const
+{
+ return _oscGuiVisible;
+}
+
+#ifdef DSSI_SUPPORT
+
+//---------------------------------------------------------
+// OscDssiIF::
+// oscSetSynthIF
+//---------------------------------------------------------
+
+//void OscIF::oscSetSynthIF(DssiSynthIF* s)
+void OscDssiIF::oscSetSynthIF(DssiSynthIF* s)
+{
+ _oscSynthIF = s;
+ if(_oscControlFifos)
+ delete[] _oscControlFifos;
+ _oscControlFifos = 0;
+
+ if(_oscSynthIF && _oscSynthIF->dssiSynth())
+ {
+ unsigned long ports = _oscSynthIF->dssiSynth()->inControls();
+ _oscControlFifos = new OscControlFifo[ports];
+ }
+}
+
+//---------------------------------------------------------
+// oscUpdate
+//---------------------------------------------------------
+
+int OscDssiIF::oscUpdate(lo_arg **argv)
+{
+ // Make sure to call base method.
+ OscIF::oscUpdate(argv);
+
+ // Send sample rate. No, done in base class.
+ //lo_send(_uiOscTarget, _uiOscSampleRatePath, "i", sampleRate);
+
+ // Send project directory. No, done in DssiSynthIF.
+ //lo_send(_uiOscTarget, _uiOscConfigurePath, "ss",
+ // DSSI_PROJECT_DIRECTORY_KEY, museProject.latin1()); // song->projectPath()
+
+ if(_oscSynthIF)
+ _oscSynthIF->oscUpdate();
+
+ /*
+ if(_oscSynthIF)
+ {
+ // Send current string configuration parameters.
+ StringParamMap& map = _oscSynthIF->dssiSynthI()->stringParameters();
+ int i = 0;
+ for(ciStringParamMap r = map.begin(); r != map.end(); ++r)
+ {
+ lo_send(_uiOscTarget, _uiOscConfigurePath, "ss", r->first.c_str(), r->second.c_str());
+ // Avoid overloading the GUI if there are lots and lots of params.
+ if((i+1) % 50 == 0)
+ usleep(300000);
+ ++i;
+ }
+
+ // Send current bank and program.
+ unsigned long bank, prog;
+ _oscSynthIF->dssiSynthI()->currentProg(&prog, &bank, 0);
+ lo_send(_uiOscTarget, _uiOscProgramPath, "ii", bank, prog);
+
+ // Send current control values.
+ unsigned long ports = _oscSynthIF->dssiSynth()->inControls();
+ for(unsigned long i = 0; i < ports; ++i)
+ {
+ unsigned long k = _oscSynthIF->dssiSynth()->inControlPortIdx(i);
+ lo_send(_uiOscTarget, _uiOscControlPath, "if", k, _oscSynthIF->getParameter(i));
+ // Avoid overloading the GUI if there are lots and lots of ports.
+ if((i+1) % 50 == 0)
+ usleep(300000);
+ }
+ }
+ */
+
+ /*
+ char uiOscGuiPath[strlen(_uiOscPath)+6];
+ sprintf(uiOscGuiPath, "%s/%s", _uiOscPath, "show");
+
+ #ifdef OSC_DEBUG
+ printf("OscIF::oscUpdate Sending show uiOscGuiPath:%s\n", uiOscGuiPath);
+ #endif
+
+ lo_send(_uiOscTarget, uiOscGuiPath, "");
+
+ sprintf(uiOscGuiPath, "%s/%s", _uiOscPath, "hide");
+
+ #ifdef OSC_DEBUG
+ printf("OscIF::oscUpdate Sending hide uiOscGuiPath:%s\n", uiOscGuiPath);
+ #endif
+
+ lo_send(_uiOscTarget, uiOscGuiPath, "");
+ */
+
+#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;
+}
+
+
+//---------------------------------------------------------
+// oscConfigure
+//---------------------------------------------------------
+
+int OscDssiIF::oscConfigure(lo_arg** argv)
+{
+ //OscIF::oscConfigure(argv);
+
+ if(_oscSynthIF)
+ _oscSynthIF->oscConfigure((const char*)&argv[0]->s, (const char*)&argv[1]->s);
+ return 0;
+}
+
+//---------------------------------------------------------
+// oscMidi
+//---------------------------------------------------------
+
+int OscDssiIF::oscMidi(lo_arg** argv)
+{
+ //OscIF::oscMidi(argv);
+
+ if(_oscSynthIF)
+ _oscSynthIF->oscMidi(argv[0]->m[1], argv[0]->m[2], argv[0]->m[3]);
+
+ return 0;
+}
+
+//---------------------------------------------------------
+// oscProgram
+//---------------------------------------------------------
+
+int OscDssiIF::oscProgram(lo_arg** argv)
+{
+ //OscIF::oscProgram(argv);
+
+ if(_oscSynthIF)
+ _oscSynthIF->oscProgram(argv[1]->i, argv[0]->i);
+
+ return 0;
+}
+
+//---------------------------------------------------------
+// oscControl
+//---------------------------------------------------------
+
+int OscDssiIF::oscControl(lo_arg** argv)
+{
+ //OscIF::oscControl(argv);
+
+ int port = argv[0]->i;
+ if(port < 0)
+ return 0;
+
+ if(_oscSynthIF)
+ _oscSynthIF->oscControl(argv[0]->i, argv[1]->f);
+
+ return 0;
+}
+
+//---------------------------------------------------------
+// oscInitGui
+//---------------------------------------------------------
+bool OscDssiIF::oscInitGui()
+{
+ if(!_oscSynthIF)
+ return false;
+
+ return OscIF::oscInitGui(QT_TR_NOOP("dssi_synth"), _oscSynthIF->dssiSynth()->baseName(false),
+ _oscSynthIF->dssiSynth()->name(), _oscSynthIF->dssiSynthI()->name(),
+ _oscSynthIF->dssiSynth()->filePath(), _oscSynthIF->dssiSynth()->dirPath(false));
+}
+
+#endif // DSSI_SUPPORT
+
+
+//---------------------------------------------------------
+// OscEffectIF::
+// oscSetPluginI
+//---------------------------------------------------------
+
+void OscEffectIF::oscSetPluginI(PluginI* s)
+{
+ _oscPluginI = s;
+ if(_oscControlFifos)
+ delete[] _oscControlFifos;
+ _oscControlFifos = 0;
+
+ if(_oscPluginI && _oscPluginI->plugin())
+ {
+ unsigned long ports = _oscPluginI->plugin()->controlInPorts();
+ _oscControlFifos = new OscControlFifo[ports];
+ }
+}
+
+//---------------------------------------------------------
+// oscUpdate
+//---------------------------------------------------------
+
+int OscEffectIF::oscUpdate(lo_arg** argv)
+{
+ // Make sure to call base method.
+ OscIF::oscUpdate(argv);
+
+ // Send project directory. No, done in PluginI.
+ //lo_send(_uiOscTarget, _uiOscConfigurePath, "ss",
+ // DSSI_PROJECT_DIRECTORY_KEY, museProject.latin1()); // song->projectPath()
+
+ if(_oscPluginI)
+ _oscPluginI->oscUpdate();
+
+ return 0;
+}
+
+//---------------------------------------------------------
+// oscConfigure
+//---------------------------------------------------------
+
+int OscEffectIF::oscConfigure(lo_arg** argv)
+{
+ //OscIF::oscConfigure(argv);
+
+ if(_oscPluginI)
+ _oscPluginI->oscConfigure((const char*)&argv[0]->s, (const char*)&argv[1]->s);
+
+ return 0;
+}
+
+//---------------------------------------------------------
+// oscControl
+//---------------------------------------------------------
+
+int OscEffectIF::oscControl(lo_arg** argv)
+{
+ //OscIF::oscControl(argv);
+
+ int port = argv[0]->i;
+ if(port < 0)
+ return 0;
+
+ if(_oscPluginI)
+ _oscPluginI->oscControl(argv[0]->i, argv[1]->f);
+
+ return 0;
+}
+
+//---------------------------------------------------------
+// oscInitGui
+//---------------------------------------------------------
+bool OscEffectIF::oscInitGui()
+{
+ if(!_oscPluginI)
+ return false;
+
+ return OscIF::oscInitGui(QT_TR_NOOP("ladspa_efx"), _oscPluginI->plugin()->lib(false),
+ _oscPluginI->plugin()->label(), _oscPluginI->label(),
+ _oscPluginI->plugin()->filePath(), _oscPluginI->plugin()->dirPath(false));
+}
+
+
+#else //OSC_SUPPORT
+void initOSC() {}
+void exitOSC() {}
+
+#endif
diff --git a/muse2/muse/osc.h b/muse2/muse/osc.h
new file mode 100644
index 00000000..dbd8294a
--- /dev/null
+++ b/muse2/muse/osc.h
@@ -0,0 +1,212 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id: osc.h,v 1.0.0.0 2010/04/22 10:05:00 terminator356 Exp $
+//
+// Copyright (C) 1999-2010 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the 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 __OSC_H__
+#define __OSC_H__
+
+#include <lo/lo.h>
+
+#include "config.h"
+
+#ifdef DSSI_SUPPORT
+class DssiSynthIF;
+#endif
+
+class Q3Process;
+class PluginI;
+class OscIF;
+
+// Keep the OSC fifo small. There may be thousands of controls, and each control needs a fifo.
+// Oops, no, if the user keeps adjusting a slider without releasing the mouse button, then all of the
+// events are sent at once upon releasing the button, meaning there might be thousands of events at once.
+#define OSC_FIFO_SIZE 512
+
+//---------------------------------------------------------
+// OscControlValue
+// Item struct for OscGuiControlFifo.
+//---------------------------------------------------------
+
+struct OscControlValue
+{
+ //int idx;
+ float value;
+ // maybe timestamp, too ?
+};
+
+//---------------------------------------------------------
+// OscControlFifo
+// A fifo for each of the OSC controls.
+//---------------------------------------------------------
+
+class OscControlFifo
+{
+ OscControlValue fifo[OSC_FIFO_SIZE];
+ volatile int size;
+ int wIndex;
+ int rIndex;
+
+ public:
+ OscControlFifo() { clear(); }
+ bool put(const OscControlValue& event); // returns true on fifo overflow
+ OscControlValue get();
+ const OscControlValue& 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; }
+};
+
+//---------------------------------------------------------
+// OscIF
+// Open Sound Control Interface
+//---------------------------------------------------------
+
+/*
+class OscIF
+{
+ private:
+ PluginI* _oscPluginI;
+
+ #ifdef DSSI_SUPPORT
+ DssiSynthIF* _oscSynthIF;
+ #endif
+
+ QProcess* _oscGuiQProc;
+ void* _uiOscTarget;
+ char* _uiOscShowPath;
+ char* _uiOscControlPath;
+ char* _uiOscConfigurePath;
+ char* _uiOscProgramPath;
+ char* _uiOscPath;
+ bool _oscGuiVisible;
+
+ OscControlFifo* _oscControlFifos;
+
+ public:
+ OscIF();
+ ~OscIF();
+
+ void oscSetPluginI(PluginI*);
+
+ #ifdef DSSI_SUPPORT
+ void oscSetSynthIF(DssiSynthIF*);
+ #endif
+
+ int oscUpdate(lo_arg**);
+ int oscProgram(lo_arg**);
+ int oscControl(lo_arg**);
+ int oscExiting(lo_arg**);
+ int oscMidi(lo_arg**);
+ int oscConfigure(lo_arg**);
+
+ bool oscInitGui();
+ void oscShowGui(bool);
+ bool oscGuiVisible() const;
+ OscControlFifo* oscFifo(unsigned long) const;
+};
+*/
+
+class OscIF
+{
+ protected:
+ Q3Process* _oscGuiQProc;
+ void* _uiOscTarget;
+ char* _uiOscPath;
+ char* _uiOscSampleRatePath;
+ char* _uiOscConfigurePath;
+ char* _uiOscProgramPath;
+ char* _uiOscControlPath;
+ char* _uiOscShowPath;
+ bool _oscGuiVisible;
+
+ OscControlFifo* _oscControlFifos;
+
+ virtual bool oscInitGui(const QString& /*typ*/, const QString& /*baseName*/, const QString& /*name*/,
+ const QString& /*label*/, const QString& /*filePath*/, const QString& /*dirPath*/);
+
+ public:
+ OscIF();
+ virtual ~OscIF();
+
+ OscControlFifo* oscFifo(unsigned long) const;
+
+ virtual int oscUpdate(lo_arg**);
+ virtual int oscProgram(lo_arg**) { return 0; }
+ virtual int oscControl(lo_arg**) { return 0; }
+ virtual int oscExiting(lo_arg**);
+ virtual int oscMidi(lo_arg**) { return 0; }
+ virtual int oscConfigure(lo_arg**) { return 0; }
+
+ virtual void oscSendProgram(unsigned long /*prog*/, unsigned long /*bank*/);
+ virtual void oscSendControl(unsigned long /*dssiPort*/, float /*val*/);
+ virtual void oscSendConfigure(const char */*key*/, const char */*val*/);
+
+ virtual bool oscInitGui() { return false; }
+ virtual void oscShowGui(bool);
+ virtual bool oscGuiVisible() const;
+};
+
+class OscEffectIF : public OscIF
+{
+ protected:
+ PluginI* _oscPluginI;
+
+ public:
+ OscEffectIF() {}
+ //~OscEffectIF();
+
+ void oscSetPluginI(PluginI*);
+
+ virtual int oscUpdate(lo_arg**);
+ //virtual int oscProgram(lo_arg**);
+ virtual int oscControl(lo_arg**);
+ //virtual int oscExiting(lo_arg**);
+ //virtual int oscMidi(lo_arg**);
+ virtual int oscConfigure(lo_arg**);
+
+ virtual bool oscInitGui();
+};
+
+#ifdef DSSI_SUPPORT
+class OscDssiIF : public OscIF
+{
+ protected:
+ DssiSynthIF* _oscSynthIF;
+
+ public:
+ OscDssiIF() {}
+ //~OscDssiIF();
+
+ void oscSetSynthIF(DssiSynthIF*);
+
+ virtual int oscUpdate(lo_arg**);
+ virtual int oscProgram(lo_arg**);
+ virtual int oscControl(lo_arg**);
+ //virtual int oscExiting(lo_arg**);
+ virtual int oscMidi(lo_arg**);
+ virtual int oscConfigure(lo_arg**);
+
+ virtual bool oscInitGui();
+};
+#endif // DSSI_SUPPORT
+
+extern void initOSC();
+
+#endif
diff --git a/muse2/muse/part.cpp b/muse2/muse/part.cpp
new file mode 100644
index 00000000..250cf3ea
--- /dev/null
+++ b/muse2/muse/part.cpp
@@ -0,0 +1,1432 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: part.cpp,v 1.12.2.17 2009/06/25 05:13:02 terminator356 Exp $
+//
+// (C) Copyright 1999/2000 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include <stdio.h>
+#include <assert.h>
+#include <cmath>
+
+#include "song.h"
+#include "part.h"
+#include "track.h"
+#include "globals.h"
+#include "event.h"
+#include "audio.h"
+#include "wave.h"
+#include "midiport.h"
+#include "drummap.h"
+
+int Part::snGen;
+
+//---------------------------------------------------------
+// unchainClone
+//---------------------------------------------------------
+
+void unchainClone(Part* p)
+{
+ chainCheckErr(p);
+
+ // Unchain the part.
+ p->prevClone()->setNextClone(p->nextClone());
+ p->nextClone()->setPrevClone(p->prevClone());
+
+ // Isolate the part.
+ p->setPrevClone(p);
+ p->setNextClone(p);
+}
+
+//---------------------------------------------------------
+// chainClone
+// The quick way - if part to chain to is known...
+//---------------------------------------------------------
+
+void chainClone(Part* p1, Part* p2)
+{
+ chainCheckErr(p1);
+
+ // Make sure the part to be chained is unchained first.
+ p2->prevClone()->setNextClone(p2->nextClone());
+ p2->nextClone()->setPrevClone(p2->prevClone());
+
+ // Link the part to be chained.
+ p2->setPrevClone(p1);
+ p2->setNextClone(p1->nextClone());
+
+ // Re-link the existing part.
+ p1->nextClone()->setPrevClone(p2);
+ p1->setNextClone(p2);
+}
+
+//---------------------------------------------------------
+// chainCloneInternal
+// No error check, so it can be called by replaceClone()
+//---------------------------------------------------------
+
+void chainCloneInternal(Part* p)
+{
+ Track* t = p->track();
+ Part* p1 = 0;
+
+ // Look for a part with the same event list, that we can chain to.
+ // It's faster if track type is known...
+
+ if(!t || (t && t->isMidiTrack()))
+ {
+ MidiTrack* mt = 0;
+ MidiTrackList* mtl = song->midis();
+ for(ciMidiTrack imt = mtl->begin(); imt != mtl->end(); ++imt)
+ {
+ mt = *imt;
+ const PartList* pl = mt->cparts();
+ for(ciPart ip = pl->begin(); ip != pl->end(); ++ip)
+ {
+ // Added by Tim. p3.3.6
+ //printf("chainCloneInternal track %p %s part %p %s evlist %p\n", (*imt), (*imt)->name().latin1(), ip->second, ip->second->name().latin1(), ip->second->cevents());
+
+ if(ip->second != p && ip->second->cevents() == p->cevents())
+ {
+ p1 = ip->second;
+ break;
+ }
+ }
+ // If a suitable part was found on a different track, we're done. We will chain to it.
+ // Otherwise keep looking for parts on another track. If no others found, then we
+ // chain to any suitable part which was found on the same given track t.
+ if(p1 && mt != t)
+ break;
+ }
+ }
+ if((!p1 && !t) || (t && t->type() == Track::WAVE))
+ {
+ WaveTrack* wt = 0;
+ WaveTrackList* wtl = song->waves();
+ for(ciWaveTrack iwt = wtl->begin(); iwt != wtl->end(); ++iwt)
+ {
+ wt = *iwt;
+ const PartList* pl = wt->cparts();
+ for(ciPart ip = pl->begin(); ip != pl->end(); ++ip)
+ {
+ if(ip->second != p && ip->second->cevents() == p->cevents())
+ {
+ p1 = ip->second;
+ break;
+ }
+ }
+ if(p1 && wt != t)
+ break;
+ }
+ }
+
+ // No part found with same event list? Done.
+ if(!p1)
+ return;
+
+ // Make sure the part to be chained is unchained first.
+ p->prevClone()->setNextClone(p->nextClone());
+ p->nextClone()->setPrevClone(p->prevClone());
+
+ // Link the part to be chained.
+ p->setPrevClone(p1);
+ p->setNextClone(p1->nextClone());
+
+ // Re-link the existing part.
+ p1->nextClone()->setPrevClone(p);
+ p1->setNextClone(p);
+}
+
+//---------------------------------------------------------
+// chainClone
+// The slow way - if part to chain to is not known...
+//---------------------------------------------------------
+
+void chainClone(Part* p)
+{
+ chainCheckErr(p);
+ chainCloneInternal(p);
+}
+
+//---------------------------------------------------------
+// replaceClone
+//---------------------------------------------------------
+
+void replaceClone(Part* p1, Part* p2)
+{
+ chainCheckErr(p1);
+
+ // Make sure the replacement part is unchained first.
+ p2->prevClone()->setNextClone(p2->nextClone());
+ p2->nextClone()->setPrevClone(p2->prevClone());
+
+ // If the two parts share the same event list, then this MUST
+ // be a straight forward replacement operation. Continue on.
+ // If not, and either part has more than one ref count, then do this...
+ if(p1->cevents() != p2->cevents())
+ {
+ bool ret = false;
+ // If the part to be replaced is a single uncloned part,
+ // and the replacement part is not, then this operation
+ // MUST be an undo of a de-cloning of a cloned part.
+ //if(p1->cevents()->refCount() <= 1 && p2->cevents()->refCount() > 1)
+ if(p2->cevents()->refCount() > 1)
+ {
+ // Chain the replacement part. We don't know the chain it came from,
+ // so we use the slow method.
+ chainCloneInternal(p2);
+ //return;
+ ret = true;
+ }
+
+ // If the replacement part is a single uncloned part,
+ // and the part to be replaced is not, then this operation
+ // MUST be a de-cloning of a cloned part.
+ //if(p1->cevents()->refCount() > 1 && p2->cevents()->refCount() <= 1)
+ if(p1->cevents()->refCount() > 1)
+ {
+ // Unchain the part to be replaced.
+ p1->prevClone()->setNextClone(p1->nextClone());
+ p1->nextClone()->setPrevClone(p1->prevClone());
+ // Isolate the part.
+ p1->setPrevClone(p1);
+ p1->setNextClone(p1);
+ //return;
+ ret = true;
+ }
+
+ // Was the operation handled?
+ if(ret)
+ return;
+ // Note that two parts here with different event lists, each with more than one
+ // reference count, would be an error. It's not done anywhere in muse. But just
+ // to be sure, four lines above were changed to allow that condition.
+ // If each of the two different event lists, has only one ref count, we
+ // handle it like a regular replacement, below...
+ }
+
+ // If the part to be replaced is a clone not a single lone part, re-link its neighbours to the replacement part...
+ if(p1->prevClone() != p1)
+ {
+ p1->prevClone()->setNextClone(p2);
+ p2->setPrevClone(p1->prevClone());
+ }
+ else
+ p2->setPrevClone(p2);
+
+ if(p1->nextClone() != p1)
+ {
+ p1->nextClone()->setPrevClone(p2);
+ p2->setNextClone(p1->nextClone());
+ }
+ else
+ p2->setNextClone(p2);
+
+ // Link the replacement...
+ //p2->setPrevClone(p1->prevClone());
+ //p2->setNextClone(p1->nextClone());
+
+ // Isolate the replaced part.
+ p1->setNextClone(p1);
+ p1->setPrevClone(p1);
+ // Added by Tim. p3.3.6
+ //printf("replaceClone p1: %s %p arefs:%d p2: %s %p arefs:%d\n", p1->name().latin1(), p1, );
+
+}
+
+//---------------------------------------------------------
+// unchainTrackParts
+//---------------------------------------------------------
+
+void unchainTrackParts(Track* t, bool decRefCount)
+{
+ PartList* pl = t->parts();
+ for(iPart ip = pl->begin(); ip != pl->end(); ++ip)
+ {
+ Part* p = ip->second;
+ chainCheckErr(p);
+
+ // Do we want to decrease the reference count?
+ if(decRefCount)
+ p->events()->incARef(-1);
+
+ // Unchain the part.
+ p->prevClone()->setNextClone(p->nextClone());
+ p->nextClone()->setPrevClone(p->prevClone());
+
+ // Isolate the part.
+ p->setPrevClone(p);
+ p->setNextClone(p);
+ }
+}
+
+//---------------------------------------------------------
+// chainTrackParts
+//---------------------------------------------------------
+
+void chainTrackParts(Track* t, bool incRefCount)
+{
+ PartList* pl = t->parts();
+ for(iPart ip = pl->begin(); ip != pl->end(); ++ip)
+ {
+ Part* p = ip->second;
+ chainCheckErr(p);
+
+ // Do we want to increase the reference count?
+ if(incRefCount)
+ p->events()->incARef(1);
+
+ // Added by Tim. p3.3.6
+ //printf("chainTrackParts track %p %s part %p %s evlist %p\n", t, t->name().latin1(), p, p->name().latin1(), p->cevents());
+
+ Part* p1 = 0;
+
+ // Look for a part with the same event list, that we can chain to.
+ // It's faster if track type is known...
+
+ if(!t || (t && t->isMidiTrack()))
+ {
+ MidiTrack* mt = 0;
+ MidiTrackList* mtl = song->midis();
+ for(ciMidiTrack imt = mtl->begin(); imt != mtl->end(); ++imt)
+ {
+ mt = *imt;
+ const PartList* pl = mt->cparts();
+ for(ciPart ip = pl->begin(); ip != pl->end(); ++ip)
+ {
+ // Added by Tim. p3.3.6
+ //printf("chainTrackParts track %p %s part %p %s evlist %p\n", mt, mt->name().latin1(), ip->second, ip->second->name().latin1(), ip->second->cevents());
+
+ if(ip->second != p && ip->second->cevents() == p->cevents())
+ {
+ p1 = ip->second;
+ break;
+ }
+ }
+ // If a suitable part was found on a different track, we're done. We will chain to it.
+ // Otherwise keep looking for parts on another track. If no others found, then we
+ // chain to any suitable part which was found on the same given track t.
+ if(p1 && mt != t)
+ break;
+ }
+ }
+ if((!p1 && !t) || (t && t->type() == Track::WAVE))
+ {
+ WaveTrack* wt = 0;
+ WaveTrackList* wtl = song->waves();
+ for(ciWaveTrack iwt = wtl->begin(); iwt != wtl->end(); ++iwt)
+ {
+ wt = *iwt;
+ const PartList* pl = wt->cparts();
+ for(ciPart ip = pl->begin(); ip != pl->end(); ++ip)
+ {
+ if(ip->second != p && ip->second->cevents() == p->cevents())
+ {
+ p1 = ip->second;
+ break;
+ }
+ }
+ if(p1 && wt != t)
+ break;
+ }
+ }
+
+ // No part found with same event list? Done.
+ if(!p1)
+ continue;
+
+ // Make sure the part to be chained is unchained first.
+ p->prevClone()->setNextClone(p->nextClone());
+ p->nextClone()->setPrevClone(p->prevClone());
+
+ // Link the part to be chained.
+ p->setPrevClone(p1);
+ p->setNextClone(p1->nextClone());
+
+ // Re-link the existing part.
+ p1->nextClone()->setPrevClone(p);
+ p1->setNextClone(p);
+ }
+}
+
+//---------------------------------------------------------
+// chainCheckErr
+//---------------------------------------------------------
+
+void chainCheckErr(Part* p)
+{
+ // At all times these must be true...
+ if(p->nextClone()->prevClone() != p)
+ printf("chainCheckErr: Next clone:%s %p prev clone:%s %p != %s %p\n", p->nextClone()->name().latin1(), p->nextClone(), p->nextClone()->prevClone()->name().latin1(), p->nextClone()->prevClone(), p->name().latin1(), p);
+ if(p->prevClone()->nextClone() != p)
+ printf("chainCheckErr: Prev clone:%s %p next clone:%s %p != %s %p\n", p->prevClone()->name().latin1(), p->prevClone(), p->prevClone()->nextClone()->name().latin1(), p->prevClone()->nextClone(), p->name().latin1(), p);
+}
+
+//---------------------------------------------------------
+// addPortCtrlEvents
+//---------------------------------------------------------
+
+void addPortCtrlEvents(Event& event, Part* part, bool doClones)
+{
+ // Traverse and process the clone chain ring until we arrive at the same part again.
+ // The loop is a safety net.
+ // Update: Due to the varying calls, and order of, incARefcount, (msg)ChangePart, replaceClone, and remove/addPortCtrlEvents,
+ // we can not rely on the reference count as a safety net in these routines. We will just have to trust the clone chain.
+ Part* p = part;
+ //int j = doClones ? p->cevents()->arefCount() : 1;
+ //if(j > 0)
+ {
+ //for(int i = 0; i < j; ++i)
+ while(1)
+ {
+ // Added by Tim. p3.3.6
+ //printf("addPortCtrlEvents i:%d %s %p events %p refs:%d arefs:%d\n", i, p->name().latin1(), p, part->cevents(), part->cevents()->refCount(), j);
+
+ Track* t = p->track();
+ if(t && t->isMidiTrack())
+ {
+ MidiTrack* mt = (MidiTrack*)t;
+ int port = mt->outPort();
+ //const EventList* el = p->cevents();
+ unsigned len = p->lenTick();
+ //for(ciEvent ie = el->begin(); ie != el->end(); ++ie)
+ //{
+ //const Event& ev = ie->second;
+ // Added by Tim. p3.3.6
+ //printf("addPortCtrlEvents %s len:%d end:%d etick:%d\n", p->name().latin1(), p->lenTick(), p->endTick(), event.tick());
+
+ // Do not add events which are past the end of the part.
+ if(event.tick() >= len)
+ break;
+
+ if(event.type() == Controller)
+ {
+ int ch = mt->outChannel();
+ int tck = event.tick() + p->tick();
+ int cntrl = event.dataA();
+ int val = event.dataB();
+ MidiPort* mp = &midiPorts[port];
+
+ // Is it a drum controller event, according to the track port's instrument?
+ if(mt->type() == Track::DRUM)
+ {
+ MidiController* mc = mp->drumController(cntrl);
+ if(mc)
+ {
+ int note = cntrl & 0x7f;
+ cntrl &= ~0xff;
+ ch = drumMap[note].channel;
+ mp = &midiPorts[drumMap[note].port];
+ cntrl |= drumMap[note].anote;
+ }
+ }
+
+ mp->setControllerVal(ch, tck, cntrl, val, p);
+ }
+ //}
+ }
+
+ if(!doClones)
+ break;
+ // Get the next clone in the chain ring.
+ p = p->nextClone();
+ // Same as original part? Finished.
+ if(p == part)
+ break;
+ }
+ }
+}
+
+//---------------------------------------------------------
+// addPortCtrlEvents
+//---------------------------------------------------------
+
+void addPortCtrlEvents(Part* part, bool doClones)
+{
+ // Traverse and process the clone chain ring until we arrive at the same part again.
+ // The loop is a safety net.
+ // Update: Due to the varying calls, and order of, incARefcount, (msg)ChangePart, replaceClone, and remove/addPortCtrlEvents,
+ // we can not rely on the reference count as a safety net in these routines. We will just have to trust the clone chain.
+ Part* p = part;
+ //int j = doClones ? p->cevents()->arefCount() : 1;
+ //if(j > 0)
+ {
+ //for(int i = 0; i < j; ++i)
+ while(1)
+ {
+ // Added by Tim. p3.3.6
+ //printf("addPortCtrlEvents i:%d %s %p events %p refs:%d arefs:%d\n", i, p->name().latin1(), p, part->cevents(), part->cevents()->refCount(), j);
+
+ Track* t = p->track();
+ if(t && t->isMidiTrack())
+ {
+ MidiTrack* mt = (MidiTrack*)t;
+ int port = mt->outPort();
+ const EventList* el = p->cevents();
+ unsigned len = p->lenTick();
+ for(ciEvent ie = el->begin(); ie != el->end(); ++ie)
+ {
+ const Event& ev = ie->second;
+ // Added by T356. Do not add events which are past the end of the part.
+ if(ev.tick() >= len)
+ break;
+
+ if(ev.type() == Controller)
+ {
+ int ch = mt->outChannel();
+ int tck = ev.tick() + p->tick();
+ int cntrl = ev.dataA();
+ int val = ev.dataB();
+ MidiPort* mp = &midiPorts[port];
+
+ // Is it a drum controller event, according to the track port's instrument?
+ if(mt->type() == Track::DRUM)
+ {
+ MidiController* mc = mp->drumController(cntrl);
+ if(mc)
+ {
+ int note = cntrl & 0x7f;
+ cntrl &= ~0xff;
+ ch = drumMap[note].channel;
+ mp = &midiPorts[drumMap[note].port];
+ cntrl |= drumMap[note].anote;
+ }
+ }
+
+ mp->setControllerVal(ch, tck, cntrl, val, p);
+ }
+ }
+ }
+ if(!doClones)
+ break;
+ // Get the next clone in the chain ring.
+ p = p->nextClone();
+ // Same as original part? Finished.
+ if(p == part)
+ break;
+ }
+ }
+}
+
+//---------------------------------------------------------
+// removePortCtrlEvents
+//---------------------------------------------------------
+
+void removePortCtrlEvents(Event& event, Part* part, bool doClones)
+{
+ // Traverse and process the clone chain ring until we arrive at the same part again.
+ // The loop is a safety net.
+ // Update: Due to the varying calls, and order of, incARefcount, (msg)ChangePart, replaceClone, and remove/addPortCtrlEvents,
+ // we can not rely on the reference count as a safety net in these routines. We will just have to trust the clone chain.
+ Part* p = part;
+ //int j = doClones ? p->cevents()->arefCount() : 1;
+ //if(j > 0)
+ {
+ //for(int i = 0; i < j; ++i)
+ while(1)
+ {
+ Track* t = p->track();
+ if(t && t->isMidiTrack())
+ {
+ MidiTrack* mt = (MidiTrack*)t;
+ int port = mt->outPort();
+ //const EventList* el = p->cevents();
+ //unsigned len = p->lenTick();
+ //for(ciEvent ie = el->begin(); ie != el->end(); ++ie)
+ //{
+ //const Event& ev = ie->second;
+ // Added by T356. Do not remove events which are past the end of the part.
+ // No, actually, do remove ALL of them belonging to the part.
+ // Just in case there are stray values left after the part end.
+ //if(ev.tick() >= len)
+ // break;
+
+ if(event.type() == Controller)
+ {
+ int ch = mt->outChannel();
+ int tck = event.tick() + p->tick();
+ int cntrl = event.dataA();
+ MidiPort* mp = &midiPorts[port];
+
+ // Is it a drum controller event, according to the track port's instrument?
+ if(mt->type() == Track::DRUM)
+ {
+ MidiController* mc = mp->drumController(cntrl);
+ if(mc)
+ {
+ int note = cntrl & 0x7f;
+ cntrl &= ~0xff;
+ ch = drumMap[note].channel;
+ mp = &midiPorts[drumMap[note].port];
+ cntrl |= drumMap[note].anote;
+ }
+ }
+
+ mp->deleteController(ch, tck, cntrl, p);
+ }
+ //}
+ }
+
+ if(!doClones)
+ break;
+ // Get the next clone in the chain ring.
+ p = p->nextClone();
+ // Same as original part? Finished.
+ if(p == part)
+ break;
+ }
+ }
+}
+
+//---------------------------------------------------------
+// removePortCtrlEvents
+//---------------------------------------------------------
+
+void removePortCtrlEvents(Part* part, bool doClones)
+{
+ // Traverse and process the clone chain ring until we arrive at the same part again.
+ // The loop is a safety net.
+ // Update: Due to the varying calls, and order of, incARefcount, (msg)ChangePart, replaceClone, and remove/addPortCtrlEvents,
+ // we can not rely on the reference count as a safety net in these routines. We will just have to trust the clone chain.
+ Part* p = part;
+ //int j = doClones ? p->cevents()->arefCount() : 1;
+ //if(j > 0)
+ {
+ //for(int i = 0; i < j; ++i)
+ while(1)
+ {
+ Track* t = p->track();
+ if(t && t->isMidiTrack())
+ {
+ MidiTrack* mt = (MidiTrack*)t;
+ int port = mt->outPort();
+ const EventList* el = p->cevents();
+ //unsigned len = p->lenTick();
+ for(ciEvent ie = el->begin(); ie != el->end(); ++ie)
+ {
+ const Event& ev = ie->second;
+ // Added by T356. Do not remove events which are past the end of the part.
+ // No, actually, do remove ALL of them belonging to the part.
+ // Just in case there are stray values left after the part end.
+ //if(ev.tick() >= len)
+ // break;
+
+ if(ev.type() == Controller)
+ {
+ int ch = mt->outChannel();
+ int tck = ev.tick() + p->tick();
+ int cntrl = ev.dataA();
+ MidiPort* mp = &midiPorts[port];
+
+ // Is it a drum controller event, according to the track port's instrument?
+ if(mt->type() == Track::DRUM)
+ {
+ MidiController* mc = mp->drumController(cntrl);
+ if(mc)
+ {
+ int note = cntrl & 0x7f;
+ cntrl &= ~0xff;
+ ch = drumMap[note].channel;
+ mp = &midiPorts[drumMap[note].port];
+ cntrl |= drumMap[note].anote;
+ }
+ }
+
+ mp->deleteController(ch, tck, cntrl, p);
+ }
+ }
+ }
+
+ if(!doClones)
+ break;
+ // Get the next clone in the chain ring.
+ p = p->nextClone();
+ // Same as original part? Finished.
+ if(p == part)
+ break;
+ }
+ }
+}
+
+//---------------------------------------------------------
+// addEvent
+//---------------------------------------------------------
+
+iEvent Part::addEvent(Event& p)
+ {
+ return _events->add(p);
+ }
+
+//---------------------------------------------------------
+// index
+//---------------------------------------------------------
+
+int PartList::index(Part* part)
+ {
+ int index = 0;
+ for (iPart i = begin(); i != end(); ++i, ++index)
+ if (i->second == part) {
+ return index;
+ }
+ if(debugMsg)
+ printf("PartList::index(): not found!\n");
+ //return 0;
+ return -1;
+ }
+
+//---------------------------------------------------------
+// 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;
+ }
+
+//---------------------------------------------------------
+// Part
+//---------------------------------------------------------
+
+Part::Part(Track* t)
+ {
+ _prevClone = this;
+ _nextClone = this;
+ setSn(newSn());
+ _track = t;
+ _selected = false;
+ _mute = false;
+ _colorIndex = 0;
+ _events = new EventList;
+ _events->incRef(1);
+ _events->incARef(1);
+ }
+
+//---------------------------------------------------------
+// Part
+//---------------------------------------------------------
+
+Part::Part(Track* t, EventList* ev)
+ {
+ _prevClone = this;
+ _nextClone = this;
+ setSn(newSn());
+ _track = t;
+ _selected = false;
+ _mute = false;
+ _colorIndex = 0;
+ _events = ev;
+ _events->incRef(1);
+ _events->incARef(1);
+ }
+
+//---------------------------------------------------------
+// MidiPart
+// copy constructor
+//---------------------------------------------------------
+
+MidiPart::MidiPart(const MidiPart& p) : Part(p)
+{
+ _prevClone = this;
+ _nextClone = this;
+ //setSn(newSn());
+ //_sn = p._sn;
+ //_name = p._name;
+ //_selected = p._selected;
+ //_mute = p._mute;
+ //_colorIndex = p._colorIndex;
+ //_track = p._track;
+ //_events = p._events;
+}
+
+//---------------------------------------------------------
+// WavePart
+//---------------------------------------------------------
+
+WavePart::WavePart(WaveTrack* t)
+ : Part(t)
+ {
+ setType(FRAMES);
+ }
+
+WavePart::WavePart(WaveTrack* t, EventList* ev)
+ : Part(t, ev)
+ {
+ setType(FRAMES);
+ }
+
+//---------------------------------------------------------
+// WavePart
+// copy constructor
+//---------------------------------------------------------
+
+WavePart::WavePart(const WavePart& p) : Part(p)
+{
+ _prevClone = this;
+ _nextClone = this;
+ //setSn(newSn());
+ //_sn = p._sn;
+ //_name = p._name;
+ //_selected = p._selected;
+ //_mute = p._mute;
+ //_colorIndex = p._colorIndex;
+ //_track = p._track;
+ //_events = p._events;
+}
+
+//---------------------------------------------------------
+// Part
+//---------------------------------------------------------
+
+Part::~Part()
+ {
+ _events->incRef(-1);
+ if (_events->refCount() <= 0)
+ delete _events;
+ }
+
+/*
+//---------------------------------------------------------
+// unchainClone
+//---------------------------------------------------------
+
+void Part::unchainClone()
+{
+ chainCheckErr();
+
+ _prevClone->setNextClone(_nextClone);
+ _nextClone->setPrevClone(_prevClone);
+
+ _prevClone = this;
+ _nextClone = this;
+}
+
+//---------------------------------------------------------
+// chainClone
+// The quick way - if part to chain to is known...
+//---------------------------------------------------------
+
+void Part::chainClone(const Part* p)
+{
+ chainCheckErr();
+
+ // Make sure the part is unchained first.
+ p->prevClone()->setNextClone(p->nextClone());
+ p->nextClone()->setPrevClone(p->prevClone());
+
+ p->setPrevClone(this);
+ p->setNextClone(_nextClone->prevClone());
+
+ _nextClone->setPrevClone(p);
+ _nextClone = (Part*)p;
+}
+
+//---------------------------------------------------------
+// chainClone
+// The slow way - if part to chain to is not known...
+//---------------------------------------------------------
+
+void Part::chainClone()
+{
+ chainCheckErr();
+
+ // Look for a part with the same event list, that we can chain to...
+ Part* p = 0;
+ if(!_track || (_track && _track->isMidiTrack()))
+ {
+ MidiTrackList* mtl = song->midis();
+ for(ciMidiTrack imt = mtl->begin(); imt != mtl->end(); ++imt)
+ {
+ const PartList* pl = (*imt)->cparts();
+ for(ciPart ip = pl->begin(); ip != pl->end(); ++ip)
+ {
+ if(ip->second != this && ip->second->events() == _events)
+ {
+ p = ip->second;
+ break;
+ }
+ }
+ }
+ }
+
+ if((!p && !_track) || (_track && _track->type() == Track::WAVE))
+ {
+ WaveTrackList* wtl = song->waves();
+ for(ciWaveTrack iwt = wtl->begin(); iwt != wtl->end(); ++iwt)
+ {
+ const PartList* pl = (*iwt)->cparts();
+ for(ciPart ip = pl->begin(); ip != pl->end(); ++ip)
+ {
+ if(ip->second != this && ip->second->events() == _events)
+ {
+ p = ip->second;
+ break;
+ }
+ }
+ }
+ }
+
+ // No part found with same event list? Done.
+ if(!p)
+ return;
+
+ // Make sure this part is unchained first.
+ _prevClone->setNextClone(_nextClone);
+ _nextClone->setPrevClone(_prevClone);
+
+ _prevClone = p;
+ _nextClone = p->nextClone();
+
+ p->nextClone()->setPrevClone(this);
+ p->setNextClone(this);
+}
+
+//---------------------------------------------------------
+// replaceClone
+//---------------------------------------------------------
+
+void Part::replaceClone(const Part* p)
+{
+ chainCheckErr();
+
+ // Make sure the part is unchained first.
+ p->prevClone()->setNextClone(p->nextClone());
+ p->nextClone()->setPrevClone(p->prevClone());
+
+ // If this part is a clone, not a single lone part...
+ if(_prevClone != this)
+ _prevClone->setNextClone(p);
+ if(_nextClone != this)
+ _nextClone->setPrevClone(p);
+
+ p->setPrevClone(_prevClone);
+ p->setNextClone(_nextClone);
+
+ _nextClone = this;
+ _prevClone = this;
+}
+
+//---------------------------------------------------------
+// chainCheckErr
+//---------------------------------------------------------
+
+void Part::chainCheckErr()
+{
+ if(_nextClone->prevClone() != this)
+ printf("Part::chainCheckErr Error! Next clone:%s %x prev clone:%s %x != this:%s %x\n", _nextClone->name().latin1(), _nextClone, _nextClone->prevClone()->name().latin1(), _nextClone->prevClone(), name().latin1(), this);
+ if(_prevClone->nextClone() != this)
+ printf("Part::chainCheckErr Error! Prev clone:%s %x next clone:%s %x != this:%s %x\n", _prevClone->name().latin1(), _prevClone, _prevClone->nextClone()->name().latin1(), _prevClone->nextClone(), name().latin1(), this);
+}
+*/
+
+//---------------------------------------------------------
+// findPart
+//---------------------------------------------------------
+
+iPart PartList::findPart(unsigned tick)
+ {
+ iPart i;
+ for (i = begin(); i != end(); ++i)
+ if (i->second->tick() == tick)
+ break;
+ return i;
+ }
+
+//---------------------------------------------------------
+// add
+//---------------------------------------------------------
+
+iPart PartList::add(Part* part)
+ {
+ // Added by T356. A part list containing wave parts should be sorted by
+ // frames. WaveTrack::fetchData() relies on the sorting order, and
+ // there was a bug that waveparts were sometimes muted because of
+ // incorrect sorting order (by ticks).
+ // Also, when the tempo map is changed, every wavepart would have to be
+ // re-added to the part list so that the proper sorting order (by ticks)
+ // could be achieved.
+ // Note that in a med file, the tempo list is loaded AFTER all the tracks.
+ // There was a bug that all the wave parts' tick values were not correct,
+ // since they were computed BEFORE the tempo map was loaded.
+ if(part->type() == Pos::FRAMES)
+ return insert(std::pair<const int, Part*> (part->frame(), part));
+ else
+ return insert(std::pair<const int, Part*> (part->tick(), part));
+ }
+
+//---------------------------------------------------------
+// remove
+//---------------------------------------------------------
+
+void PartList::remove(Part* part)
+ {
+ iPart i;
+ for (i = begin(); i != end(); ++i) {
+ if (i->second == part) {
+ erase(i);
+ break;
+ }
+ }
+ assert(i != end());
+ }
+
+//---------------------------------------------------------
+// addPart
+//---------------------------------------------------------
+
+void Song::addPart(Part* part)
+ {
+ // adjust song len:
+ unsigned epos = part->tick() + part->lenTick();
+
+ if (epos > len())
+ _len = epos;
+ part->track()->addPart(part);
+
+ //part->addPortCtrlEvents();
+ // Indicate do not do clones.
+ addPortCtrlEvents(part, false);
+ }
+
+//---------------------------------------------------------
+// removePart
+//---------------------------------------------------------
+
+void Song::removePart(Part* part)
+ {
+ //part->removePortCtrlEvents();
+ // Indicate do not do clones.
+ //removePortCtrlEvents(part);
+ removePortCtrlEvents(part, false);
+ Track* track = part->track();
+ track->parts()->remove(part);
+ }
+
+//---------------------------------------------------------
+// cmdResizePart
+//---------------------------------------------------------
+
+void Song::cmdResizePart(Track* track, Part* oPart, unsigned int len)
+ {
+ switch(track->type()) {
+ case Track::WAVE:
+ {
+ WavePart* nPart = new WavePart(*(WavePart*)oPart);
+ EventList* el = nPart->events();
+ unsigned new_partlength = tempomap.deltaTick2frame(oPart->tick(), oPart->tick() + len);
+ //printf("new partlength in frames: %d\n", new_partlength);
+
+ // If new nr of frames is less than previous what can happen is:
+ // - 0 or more events are beginning after the new final position. Those are removed from the part
+ // - The last event begins before new final position and ends after it. If so, it will be resized to end at new part length
+ if (new_partlength < oPart->lenFrame()) {
+ startUndo();
+
+ for (iEvent i = el->begin(); i != el->end(); i++) {
+ Event e = i->second;
+ unsigned event_startframe = e.frame();
+ unsigned event_endframe = event_startframe + e.lenFrame();
+ //printf("Event frame=%d, length=%d\n", event_startframe, event_length);
+ if (event_endframe < new_partlength)
+ continue;
+ if (event_startframe > new_partlength) { // If event start was after the new length, remove it from part
+ // Indicate no undo, and do not do port controller values and clone parts.
+ //audio->msgDeleteEvent(e, nPart, false);
+ audio->msgDeleteEvent(e, nPart, false, false, false);
+ continue;
+ }
+ if (event_endframe > new_partlength) { // If this event starts before new length and ends after, shrink it
+ Event newEvent = e.clone();
+ newEvent.setLenFrame(new_partlength - event_startframe);
+ // Indicate no undo, and do not do port controller values and clone parts.
+ //audio->msgChangeEvent(e, newEvent, nPart, false);
+ audio->msgChangeEvent(e, newEvent, nPart, false, false, false);
+ }
+ }
+ nPart->setLenFrame(new_partlength);
+ // Indicate no undo, and do not do port controller values and clone parts.
+ //audio->msgChangePart(oPart, nPart, false);
+ audio->msgChangePart(oPart, nPart, false, false, false);
+
+ endUndo(SC_PART_MODIFIED);
+ }
+ // If the part is expanded there can be no additional events beginning after the previous final position
+ // since those are removed if the part has been shrunk at some time (see above)
+ // The only thing we need to check is the final event: If it has data after the previous final position,
+ // we'll expand that event
+ else {
+ if(!el->empty())
+ {
+ iEvent i = el->end();
+ i--;
+ Event last = i->second;
+ unsigned last_start = last.frame();
+ SndFileR file = last.sndFile();
+ if (file.isNull())
+ return;
+
+ unsigned clipframes = (file.samples() - last.spos());// / file.channels();
+ Event newEvent = last.clone();
+ //printf("SndFileR samples=%d channels=%d event samplepos=%d clipframes=%d\n", file.samples(), file.channels(), last.spos(), clipframes);
+
+ unsigned new_eventlength = new_partlength - last_start;
+ if (new_eventlength > clipframes) // Shrink event length if new partlength exceeds last clip
+ new_eventlength = clipframes;
+
+ newEvent.setLenFrame(new_eventlength);
+ startUndo();
+ // Indicate no undo, and do not do port controller values and clone parts.
+ //audio->msgChangeEvent(last, newEvent, nPart, false);
+ audio->msgChangeEvent(last, newEvent, nPart, false, false, false);
+ }
+ else
+ {
+ startUndo();
+ }
+
+ nPart->setLenFrame(new_partlength);
+ // Indicate no undo, and do not do port controller values and clone parts.
+ //audio->msgChangePart(oPart, nPart, false);
+ audio->msgChangePart(oPart, nPart, false, false, false);
+ endUndo(SC_PART_MODIFIED);
+ }
+ }
+ break;
+ case Track::MIDI:
+ case Track::DRUM:
+ {
+ startUndo();
+
+ MidiPart* nPart = new MidiPart(*(MidiPart*)oPart);
+ nPart->setLenTick(len);
+ // Indicate no undo, and do port controller values but not clone parts.
+ audio->msgChangePart(oPart, nPart, false, true, false);
+
+ // cut Events in nPart
+ // Changed by T356. Don't delete events if this is a clone part.
+ // The other clones might be longer than this one and need these events.
+ if(nPart->cevents()->arefCount() <= 1)
+ {
+ if(oPart->lenTick() > len) {
+ EventList* el = nPart->events();
+ iEvent ie = el->lower_bound(len);
+ for (; ie != el->end();) {
+ iEvent i = ie;
+ ++ie;
+ // Indicate no undo, and do port controller values and clone parts.
+ audio->msgDeleteEvent(i->second, nPart, false, true, true);
+ }
+ }
+ }
+
+ /*
+ // cut Events in nPart
+ // Changed by T356. Don't delete events if this is a clone part.
+ // The other clones might be longer than this one and need these events.
+ if(oPart->cevents()->arefCount() <= 1)
+ {
+ if (oPart->lenTick() > len) {
+ EventList* el = nPart->events();
+ iEvent ie = el->lower_bound(len);
+ for (; ie != el->end();) {
+ iEvent i = ie;
+ ++ie;
+ // Indicate no undo, and do not do port controller values and clone parts.
+ //audio->msgDeleteEvent(i->second, nPart, false);
+ audio->msgDeleteEvent(i->second, nPart, false, false, false);
+ }
+ }
+ }
+ // Indicate no undo, and do port controller values but not clone parts.
+ //audio->msgChangePart(oPart, nPart, false);
+ audio->msgChangePart(oPart, nPart, false, true, false);
+ */
+
+ endUndo(SC_PART_MODIFIED);
+ break;
+ }
+ default:
+ break;
+ }
+ }
+
+//---------------------------------------------------------
+// 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 = tempomap.tick2frame(tickpos);
+
+ switch (type()) {
+ case WAVE:
+ l1 = samplepos - part->frame();
+ l2 = part->lenFrame() - l1;
+ break;
+ case MIDI:
+ case DRUM:
+ 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
+
+ // Added by Tim. p3.3.6
+ //printf("Track::splitPart part ev %p sz:%d ref:%d p1 %p sz:%d ref:%d p2 %p sz:%d ref:%d\n", part->events(), part->events()->size(), part->events()->arefCount(), p1->events(), p1->events()->size(), p1->events()->arefCount(), p2->events(), p2->events()->size(), p2->events()->arefCount());
+
+ switch (type()) {
+ case WAVE:
+ p1->setLenFrame(l1);
+ p2->setFrame(samplepos);
+ p2->setLenFrame(l2);
+ break;
+ case MIDI:
+ case DRUM:
+ p1->setLenTick(l1);
+ p2->setTick(tickpos);
+ p2->setLenTick(l2);
+ break;
+ default:
+ break;
+ }
+
+ p2->setSn(p2->newSn());
+
+ 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);
+ 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);
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// cmdSplitPart
+//---------------------------------------------------------
+
+void Song::cmdSplitPart(Track* track, Part* part, int tick)
+ {
+ int l1 = tick - part->tick();
+ int l2 = part->lenTick() - l1;
+ if (l1 <= 0 || l2 <= 0)
+ return;
+ Part* p1;
+ Part* p2;
+ track->splitPart(part, tick, p1, p2);
+
+ startUndo();
+ // Indicate no undo, and do port controller values but not clone parts.
+ //audio->msgChangePart(part, p1, false);
+ audio->msgChangePart(part, p1, false, true, false);
+ audio->msgAddPart(p2, false);
+ endUndo(SC_TRACK_MODIFIED | SC_PART_MODIFIED | SC_PART_INSERTED);
+ }
+
+//---------------------------------------------------------
+// changePart
+//---------------------------------------------------------
+
+void Song::changePart(Part* oPart, Part* nPart)
+ {
+ nPart->setSn(oPart->sn());
+
+ Track* oTrack = oPart->track();
+ Track* nTrack = nPart->track();
+
+ // Added by Tim. p3.3.6
+ //printf("Song::changePart before oPart->removePortCtrlEvents oldPart refs:%d Arefs:%d newPart refs:%d Arefs:%d\n", oPart->events()->refCount(), oPart->events()->arefCount(), nPart->events()->refCount(), nPart->events()->arefCount());
+
+ // Removed. Port controller events will have to be add/removed separately from this routine.
+ //oPart->removePortCtrlEvents();
+ //removePortCtrlEvents(oPart);
+
+ // Added by Tim. p3.3.6
+ //printf("Song::changePart after oPart->removePortCtrlEvents oldPart refs:%d Arefs:%d newPart refs:%d Arefs:%d\n", oPart->events()->refCount(), oPart->events()->arefCount(), nPart->events()->refCount(), nPart->events()->arefCount());
+
+ oTrack->parts()->remove(oPart);
+ nTrack->parts()->add(nPart);
+
+ // Added by Tim. p3.3.6
+ //printf("Song::changePart after add(nPart) oldPart refs:%d Arefs:%d newPart refs:%d Arefs:%d\n", oPart->events()->refCount(), oPart->events()->arefCount(), nPart->events()->refCount(), nPart->events()->arefCount());
+
+ //nPart->addPortCtrlEvents();
+ //addPortCtrlEvents(nPart);
+
+ // Added by Tim. p3.3.6
+ //printf("Song::changePart after nPart->addPortCtrlEvents() oldPart refs:%d Arefs:%d newPart refs:%d Arefs:%d\n", oPart->events()->refCount(), oPart->events()->arefCount(), nPart->events()->refCount(), nPart->events()->arefCount());
+
+ // Added by T356.
+ // adjust song len:
+ unsigned epos = nPart->tick() + nPart->lenTick();
+ if (epos > len())
+ _len = epos;
+
+ // Added by Tim. p3.3.6
+ //printf("Song::changePart after len adjust oldPart refs:%d Arefs:%d newPart refs:%d Arefs:%d\n", oPart->events()->refCount(), oPart->events()->arefCount(), nPart->events()->refCount(), nPart->events()->arefCount());
+
+ }
+
+//---------------------------------------------------------
+// cmdGluePart
+//---------------------------------------------------------
+
+void Song::cmdGluePart(Track* track, Part* oPart)
+ {
+ // p3.3.54
+ if(track->type() != Track::WAVE && !track->isMidiTrack())
+ return;
+
+ 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 frameOffset = nextPart->frame() - oPart->frame();
+ //for (iEvent ie = sl2->begin(); ie != sl2->end(); ++ie) {
+ // Event event = ie->second.clone();
+ // event.setFrame(event.frame() + frameOffset);
+ // dl->add(event);
+ // }
+ // p3.3.54 Changed.
+ if(track->type() == Track::WAVE)
+ {
+ int frameOffset = nextPart->frame() - oPart->frame();
+ for (iEvent ie = sl2->begin(); ie != sl2->end(); ++ie)
+ {
+ Event event = ie->second.clone();
+ event.setFrame(event.frame() + frameOffset);
+ dl->add(event);
+ }
+ }
+ else
+ if(track->isMidiTrack())
+ {
+ int tickOffset = nextPart->tick() - oPart->tick();
+ for (iEvent ie = sl2->begin(); ie != sl2->end(); ++ie)
+ {
+ Event event = ie->second.clone();
+ event.setTick(event.tick() + tickOffset);
+ dl->add(event);
+ }
+ }
+
+ startUndo();
+ audio->msgRemovePart(nextPart, false);
+ // Indicate no undo, and do port controller values but not clone parts.
+ //audio->msgChangePart(oPart, nPart, false);
+ audio->msgChangePart(oPart, nPart, false, true, false);
+ endUndo(SC_PART_MODIFIED | SC_PART_REMOVED);
+ }
+
+//---------------------------------------------------------
+// dump
+//---------------------------------------------------------
+
+void Part::dump(int n) const
+ {
+ for (int i = 0; i < n; ++i)
+ putchar(' ');
+ printf("Part: <%s> ", _name.latin1());
+ for (int i = 0; i < n; ++i)
+ putchar(' ');
+ PosLen::dump();
+ }
+
+void WavePart::dump(int n) const
+ {
+ Part::dump(n);
+ for (int i = 0; i < n; ++i)
+ putchar(' ');
+ printf("WavePart\n");
+ }
+
+void MidiPart::dump(int n) const
+ {
+ Part::dump(n);
+ for (int i = 0; i < n; ++i)
+ putchar(' ');
+ printf("MidiPart\n");
+ }
+
+//---------------------------------------------------------
+// clone
+//---------------------------------------------------------
+
+MidiPart* MidiPart::clone() const
+ {
+ return new MidiPart(*this);
+ }
+
+WavePart* WavePart::clone() const
+ {
+ return new WavePart(*this);
+ }
+
diff --git a/muse2/muse/part.h b/muse2/muse/part.h
new file mode 100644
index 00000000..b2a18851
--- /dev/null
+++ b/muse2/muse/part.h
@@ -0,0 +1,175 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: part.h,v 1.5.2.4 2009/05/24 21:43:44 terminator356 Exp $
+//
+// (C) Copyright 1999/2000 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __PART_H__
+#define __PART_H__
+
+#include <map>
+
+#include <qstring.h>
+#include <qcolor.h>
+// Added by T356.
+#include <uuid/uuid.h>
+
+#include "event.h"
+#include "audioconvert.h"
+
+class Track;
+class MidiTrack;
+class WaveTrack;
+class Xml;
+class Part;
+//class AudioConvertMap;
+
+// typedef std::multimap<unsigned, Event*, std::less<unsigned> >::iterator iEvent;
+
+struct ClonePart {
+ //const EventList* el;
+ const Part* cp;
+ int id;
+ uuid_t uuid;
+ //ClonePart(const EventList* e, int i) : el(e), id(i) {}
+ //ClonePart(const Part* p, int i) : cp(p), id(i) {}
+ ClonePart(const Part*, int i = -1);
+ };
+
+typedef std::list<ClonePart> CloneList;
+typedef CloneList::iterator iClone;
+
+//---------------------------------------------------------
+// Part
+//---------------------------------------------------------
+
+class Part : public PosLen {
+ static int snGen;
+ int _sn;
+
+ QString _name;
+ bool _selected;
+ bool _mute;
+ int _colorIndex;
+
+ protected:
+ Track* _track;
+ EventList* _events;
+ Part* _prevClone;
+ Part* _nextClone;
+
+ public:
+ Part(Track*);
+ Part(Track*, EventList*);
+ virtual ~Part();
+ int sn() { return _sn; }
+ void setSn(int n) { _sn = n; }
+ int newSn() { return snGen++; }
+
+ virtual Part* clone() const = 0;
+
+ 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; }
+ EventList* events() const { return _events; }
+ const EventList* cevents() const { return _events; }
+ int colorIndex() const { return _colorIndex; }
+ void setColorIndex(int idx) { _colorIndex = idx; }
+
+ Part* prevClone() { return _prevClone; }
+ Part* nextClone() { return _nextClone; }
+ void setPrevClone(Part* p) { _prevClone = p; }
+ void setNextClone(Part* p) { _nextClone = p; }
+
+ iEvent addEvent(Event& p);
+
+ //virtual void read(Xml&, int newPartOffset=0, bool toTrack = true);
+ //virtual void write(int, Xml&) const;
+ //virtual void write(int, Xml&, bool isCopy = false) const;
+ virtual void write(int, Xml&, bool isCopy = false, bool forceWavePaths = false) const;
+
+// virtual Event* newEvent() const = 0;
+ virtual void dump(int n = 0) const;
+ };
+
+//---------------------------------------------------------
+// MidiPart
+//---------------------------------------------------------
+
+class MidiPart : public Part {
+
+ public:
+ MidiPart(MidiTrack* t) : Part((Track*)t) {}
+ MidiPart(MidiTrack* t, EventList* ev) : Part((Track*)t, ev) {}
+ MidiPart(const MidiPart& p);
+ virtual ~MidiPart() {}
+ virtual MidiPart* clone() const;
+ MidiTrack* track() const { return (MidiTrack*)Part::track(); }
+
+// virtual Event* newEvent() const;
+ virtual void dump(int n = 0) const;
+ };
+
+//---------------------------------------------------------
+// WavePart
+//---------------------------------------------------------
+
+class WavePart : public Part {
+
+ // p3.3.31
+ AudioConvertMap _converters;
+
+ public:
+ WavePart(WaveTrack* t);
+ WavePart(WaveTrack* t, EventList* ev);
+ WavePart(const WavePart& p);
+ virtual ~WavePart() {}
+ virtual WavePart* clone() const;
+ WaveTrack* track() const { return (WaveTrack*)Part::track(); }
+
+// virtual Event* newEvent() const;
+ virtual void dump(int n = 0) const;
+ };
+
+//---------------------------------------------------------
+// PartList
+//---------------------------------------------------------
+
+typedef std::multimap<int, Part*, std::less<unsigned> >::iterator iPart;
+typedef std::multimap<int, Part*, std::less<unsigned> >::const_iterator ciPart;
+
+class PartList : public std::multimap<int, Part*, std::less<unsigned> > {
+ public:
+ iPart findPart(unsigned tick);
+ iPart add(Part*);
+ void remove(Part* part);
+ int index(Part*);
+ Part* find(int idx);
+ };
+
+extern void chainClone(Part* p);
+extern void chainClone(Part* p1, Part* p2);
+extern void unchainClone(Part* p);
+extern void replaceClone(Part* p1, Part* p2);
+extern void chainCheckErr(Part* p);
+extern void unchainTrackParts(Track* t, bool decRefCount);
+extern void chainTrackParts(Track* t, bool incRefCount);
+extern void addPortCtrlEvents(Part* part, bool doClones);
+extern void addPortCtrlEvents(Event& event, Part* part, bool doClones);
+extern void removePortCtrlEvents(Part* part, bool doClones);
+extern void removePortCtrlEvents(Event& event, Part* part, bool doClones);
+extern CloneList cloneList;
+//extern CloneList copyCloneList;
+//extern void updateCloneList(Part* oPart, Part* nPart);
+//extern void clearClipboardAndCloneList();
+extern Part* readXmlPart(Xml&, Track*, bool doClone = false, bool toTrack = true);
+
+#endif
+
diff --git a/muse2/muse/patchbay/Makefile.am b/muse2/muse/patchbay/Makefile.am
new file mode 100644
index 00000000..7588de85
--- /dev/null
+++ b/muse2/muse/patchbay/Makefile.am
@@ -0,0 +1,9 @@
+include $(top_srcdir)/common.am
+
+noinst_LTLIBRARIES = libpatchbay.la
+
+dist_libpatchbay_la_SOURCES = \
+ patchbay.cpp patchbay.h
+
+nodist_libpatchbay_la_SOURCES = \
+ moc_patchbay.cpp
diff --git a/muse2/muse/patchbay/patchbay.cpp b/muse2/muse/patchbay/patchbay.cpp
new file mode 100644
index 00000000..a03804e5
--- /dev/null
+++ b/muse2/muse/patchbay/patchbay.cpp
@@ -0,0 +1,10 @@
+#include "patchbay.h"
+
+PatchBay::PatchBay (void) {
+ _patchbay = new PatchBayBase (this, "patchbay");
+ setCaption(tr("MusE: ALSA MIDI Patch Bay"));
+}
+
+PatchBay::~PatchBay (void) {
+ if (_patchbay) delete _patchbay;
+}
diff --git a/muse2/muse/patchbay/patchbay.h b/muse2/muse/patchbay/patchbay.h
new file mode 100644
index 00000000..14f51a82
--- /dev/null
+++ b/muse2/muse/patchbay/patchbay.h
@@ -0,0 +1,16 @@
+#ifndef __MUSE_PATCHBAY_H__
+#define __MUSE_PATCHBAY_H__
+
+#include "cobject.h"
+#include "patchbaybase.h"
+
+class PatchBay : public TopWin {
+ Q_OBJECT
+ PatchBayBase * _patchbay;
+
+public:
+ PatchBay (void);
+ ~PatchBay (void);
+};
+
+#endif /* __MUSE_PATCHBAY_H__ */ \ No newline at end of file
diff --git a/muse2/muse/patchbay/patchbaybase.ui b/muse2/muse/patchbay/patchbaybase.ui
new file mode 100644
index 00000000..7138982f
--- /dev/null
+++ b/muse2/muse/patchbay/patchbaybase.ui
@@ -0,0 +1,36 @@
+<!DOCTYPE UI><UI version="3.0" stdsetdef="1">
+<class>PatchBayBase</class>
+<widget class="QDialog">
+ <property name="name">
+ <cstring>PatchBayBase</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>401</width>
+ <height>315</height>
+ </rect>
+ </property>
+ <property name="caption">
+ <string>ALSA Patch Bay</string>
+ </property>
+ <widget class="QGroupBox">
+ <property name="name">
+ <cstring>alsaPatchbay</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>400</width>
+ <height>315</height>
+ </rect>
+ </property>
+ <property name="title">
+ <string>ALSA Patch Bay</string>
+ </property>
+ </widget>
+</widget>
+<layoutdefaults spacing="6" margin="11"/>
+</UI>
diff --git a/muse2/muse/plugin.cpp b/muse2/muse/plugin.cpp
new file mode 100644
index 00000000..0b2911ca
--- /dev/null
+++ b/muse2/muse/plugin.cpp
@@ -0,0 +1,3871 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: plugin.cpp,v 1.21.2.23 2009/12/15 22:07:12 spamatica Exp $
+//
+// (C) Copyright 2000 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include <qdir.h>
+//Added by qt3to4:
+#include <Q3BoxLayout>
+#include <Q3GridLayout>
+#include <Q3HBoxLayout>
+#include <Q3VBoxLayout>
+#include <Qt3Support>
+#include <stdio.h>
+#include <stdlib.h>
+#include <dlfcn.h>
+#include <cmath>
+#include <math.h>
+
+#include <qwidget.h>
+#include <qlayout.h>
+#include <qlabel.h>
+#include <qsignalmapper.h>
+#include <qpushbutton.h>
+#include <q3scrollview.h>
+#include <q3listview.h>
+#include <q3toolbar.h>
+#include <qtoolbutton.h>
+#include <q3whatsthis.h>
+#include <qcheckbox.h>
+#include <qtooltip.h>
+//#include <qwidgetfactory.h>
+#include <qfile.h>
+#include <qobject.h>
+#include <qcombobox.h>
+#include <q3buttongroup.h>
+#include <qradiobutton.h>
+#include <qmessagebox.h>
+#include <qtimer.h>
+
+#include "globals.h"
+#include "gconfig.h"
+#include "filedialog.h"
+#include "slider.h"
+#include "midictrl.h"
+#include "plugin.h"
+#include "xml.h"
+#include "icons.h"
+#include "song.h"
+#include "doublelabel.h"
+#include "fastlog.h"
+#include "checkbox.h"
+
+#include "audio.h"
+#include "al/dsp.h"
+
+#include "config.h"
+
+// Turn on debugging messages.
+//#define PLUGIN_DEBUGIN
+
+PluginList plugins;
+
+/*
+static const char* preset_file_pattern[] = {
+ QT_TR_NOOP("Presets (*.pre *.pre.gz *.pre.bz2)"),
+ QT_TR_NOOP("All Files (*)"),
+ 0
+ };
+
+static const char* preset_file_save_pattern[] = {
+ QT_TR_NOOP("Presets (*.pre)"),
+ QT_TR_NOOP("gzip compressed presets (*.pre.gz)"),
+ QT_TR_NOOP("bzip2 compressed presets (*.pre.bz2)"),
+ QT_TR_NOOP("All Files (*)"),
+ 0
+ };
+*/
+
+int PluginDialog::selectedPlugType = 0;
+QStringList PluginDialog::sortItems = QStringList();
+
+//---------------------------------------------------------
+// ladspa2MidiControlValues
+//---------------------------------------------------------
+
+bool ladspa2MidiControlValues(const LADSPA_Descriptor* plugin, int port, int ctlnum, int* min, int* max, int* def)
+{
+ LADSPA_PortRangeHint range = plugin->PortRangeHints[port];
+ LADSPA_PortRangeHintDescriptor desc = range.HintDescriptor;
+
+ float fmin, fmax, fdef;
+ int imin, imax;
+ float frng;
+ //int idef;
+
+ //ladspaControlRange(plugin, port, &fmin, &fmax);
+
+ bool hasdef = ladspaDefaultValue(plugin, port, &fdef);
+ //bool isint = desc & LADSPA_HINT_INTEGER;
+ MidiController::ControllerType t = midiControllerType(ctlnum);
+
+ #ifdef PLUGIN_DEBUGIN
+ printf("ladspa2MidiControlValues: ctlnum:%d ladspa port:%d has default?:%d default:%f\n", ctlnum, port, hasdef, fdef);
+ #endif
+
+ if(desc & LADSPA_HINT_TOGGLED)
+ {
+ #ifdef PLUGIN_DEBUGIN
+ printf("ladspa2MidiControlValues: has LADSPA_HINT_TOGGLED\n");
+ #endif
+
+ *min = 0;
+ *max = 1;
+ *def = (int)lrint(fdef);
+ return hasdef;
+ }
+
+ float m = 1.0;
+ if(desc & LADSPA_HINT_SAMPLE_RATE)
+ {
+ #ifdef PLUGIN_DEBUGIN
+ printf("ladspa2MidiControlValues: has LADSPA_HINT_SAMPLE_RATE\n");
+ #endif
+
+ m = float(sampleRate);
+ }
+
+ if(desc & LADSPA_HINT_BOUNDED_BELOW)
+ {
+ #ifdef PLUGIN_DEBUGIN
+ printf("ladspa2MidiControlValues: has LADSPA_HINT_BOUNDED_BELOW\n");
+ #endif
+
+ fmin = range.LowerBound * m;
+ }
+ else
+ fmin = 0.0;
+
+ if(desc & LADSPA_HINT_BOUNDED_ABOVE)
+ {
+ #ifdef PLUGIN_DEBUGIN
+ printf("ladspa2MidiControlValues: has LADSPA_HINT_BOUNDED_ABOVE\n");
+ #endif
+
+ fmax = range.UpperBound * m;
+ }
+ else
+ fmax = 1.0;
+
+ frng = fmax - fmin;
+ imin = lrint(fmin);
+ imax = lrint(fmax);
+ //irng = imax - imin;
+
+ int ctlmn = 0;
+ int ctlmx = 127;
+
+ #ifdef PLUGIN_DEBUGIN
+ printf("ladspa2MidiControlValues: port min:%f max:%f \n", fmin, fmax);
+ #endif
+
+ //bool isneg = (fmin < 0.0);
+ bool isneg = (imin < 0);
+ int bias = 0;
+ switch(t)
+ {
+ case MidiController::RPN:
+ case MidiController::NRPN:
+ case MidiController::Controller7:
+ if(isneg)
+ {
+ ctlmn = -64;
+ ctlmx = 63;
+ bias = -64;
+ }
+ else
+ {
+ ctlmn = 0;
+ ctlmx = 127;
+ }
+ break;
+ case MidiController::Controller14:
+ case MidiController::RPN14:
+ case MidiController::NRPN14:
+ if(isneg)
+ {
+ ctlmn = -8192;
+ ctlmx = 8191;
+ bias = -8192;
+ }
+ else
+ {
+ ctlmn = 0;
+ ctlmx = 16383;
+ }
+ break;
+ case MidiController::Program:
+ ctlmn = 0;
+ //ctlmx = 0xffffff;
+ ctlmx = 0x3fff; // FIXME: Really should not happen or be allowed. What to do here...
+ break;
+ case MidiController::Pitch:
+ ctlmn = -8192;
+ ctlmx = 8191;
+ break;
+ case MidiController::Velo: // cannot happen
+ default:
+ break;
+ }
+ //int ctlrng = ctlmx - ctlmn;
+ float fctlrng = float(ctlmx - ctlmn);
+
+ // Is it an integer control?
+ if(desc & LADSPA_HINT_INTEGER)
+ {
+ #ifdef PLUGIN_DEBUGIN
+ printf("ladspa2MidiControlValues: has LADSPA_HINT_INTEGER\n");
+ #endif
+
+ // If the upper or lower limit is beyond the controller limits, just scale the whole range to fit.
+ // We could get fancy by scaling only the negative or positive domain, or each one separately, but no...
+ //if((imin < ctlmn) || (imax > ctlmx))
+ //{
+ // float scl = float(irng) / float(fctlrng);
+ // if((ctlmn - imin) > (ctlmx - imax))
+ // scl = float(ctlmn - imin);
+ // else
+ // scl = float(ctlmx - imax);
+ //}
+ // No, instead just clip the limits. ie fit the range into clipped space.
+ if(imin < ctlmn)
+ imin = ctlmn;
+ if(imax > ctlmx)
+ imax = ctlmx;
+
+ *min = imin;
+ *max = imax;
+
+ //int idef = (int)lrint(fdef);
+ //if(idef < ctlmn)
+ // idef = ctlmn;
+ //if(idef > ctlmx)
+ // idef = ctlmx;
+ //*def = idef;
+
+ *def = (int)lrint(fdef);
+
+ return hasdef;
+ }
+
+ // It's a floating point control, just use wide open maximum range.
+ *min = ctlmn;
+ *max = ctlmx;
+
+ float fbias = (fmin + fmax) / 2.0;
+ float normbias = fbias / frng;
+ float normdef = fdef / frng;
+ fdef = normdef * fctlrng;
+
+ // FIXME: TODO: Incorrect... Fix this somewhat more trivial stuff later....
+
+ *def = (int)lrint(fdef) + bias;
+
+ #ifdef PLUGIN_DEBUGIN
+ printf("ladspa2MidiControlValues: setting default:%d\n", *def);
+ #endif
+
+ return hasdef;
+}
+
+//---------------------------------------------------------
+// midi2LadspaValue
+//---------------------------------------------------------
+
+float midi2LadspaValue(const LADSPA_Descriptor* plugin, int port, int ctlnum, int val)
+{
+ LADSPA_PortRangeHint range = plugin->PortRangeHints[port];
+ LADSPA_PortRangeHintDescriptor desc = range.HintDescriptor;
+
+ float fmin, fmax;
+ int imin;
+ //int imax;
+ float frng;
+ //int idef;
+
+ //ladspaControlRange(plugin, port, &fmin, &fmax);
+
+ //bool hasdef = ladspaDefaultValue(plugin, port, &fdef);
+ //bool isint = desc & LADSPA_HINT_INTEGER;
+ MidiController::ControllerType t = midiControllerType(ctlnum);
+
+ #ifdef PLUGIN_DEBUGIN
+ printf("midi2LadspaValue: ctlnum:%d ladspa port:%d val:%d\n", ctlnum, port, val);
+ #endif
+
+ float m = 1.0;
+ if(desc & LADSPA_HINT_SAMPLE_RATE)
+ {
+ #ifdef PLUGIN_DEBUGIN
+ printf("midi2LadspaValue: has LADSPA_HINT_SAMPLE_RATE\n");
+ #endif
+
+ m = float(sampleRate);
+ }
+
+ if(desc & LADSPA_HINT_BOUNDED_BELOW)
+ {
+ #ifdef PLUGIN_DEBUGIN
+ printf("midi2LadspaValue: has LADSPA_HINT_BOUNDED_BELOW\n");
+ #endif
+
+ fmin = range.LowerBound * m;
+ }
+ else
+ fmin = 0.0;
+
+ if(desc & LADSPA_HINT_BOUNDED_ABOVE)
+ {
+ #ifdef PLUGIN_DEBUGIN
+ printf("midi2LadspaValue: has LADSPA_HINT_BOUNDED_ABOVE\n");
+ #endif
+
+ fmax = range.UpperBound * m;
+ }
+ else
+ fmax = 1.0;
+
+ frng = fmax - fmin;
+ imin = lrint(fmin);
+ //imax = lrint(fmax);
+ //irng = imax - imin;
+
+ if(desc & LADSPA_HINT_TOGGLED)
+ {
+ #ifdef PLUGIN_DEBUGIN
+ printf("midi2LadspaValue: has LADSPA_HINT_TOGGLED\n");
+ #endif
+
+ if(val > 0)
+ return fmax;
+ else
+ return fmin;
+ }
+
+ int ctlmn = 0;
+ int ctlmx = 127;
+
+ #ifdef PLUGIN_DEBUGIN
+ printf("midi2LadspaValue: port min:%f max:%f \n", fmin, fmax);
+ #endif
+
+ //bool isneg = (fmin < 0.0);
+ bool isneg = (imin < 0);
+ int bval = val;
+ int cval = val;
+ switch(t)
+ {
+ case MidiController::RPN:
+ case MidiController::NRPN:
+ case MidiController::Controller7:
+ if(isneg)
+ {
+ ctlmn = -64;
+ ctlmx = 63;
+ bval -= 64;
+ cval -= 64;
+ }
+ else
+ {
+ ctlmn = 0;
+ ctlmx = 127;
+ cval -= 64;
+ }
+ break;
+ case MidiController::Controller14:
+ case MidiController::RPN14:
+ case MidiController::NRPN14:
+ if(isneg)
+ {
+ ctlmn = -8192;
+ ctlmx = 8191;
+ bval -= 8192;
+ cval -= 8192;
+ }
+ else
+ {
+ ctlmn = 0;
+ ctlmx = 16383;
+ cval -= 8192;
+ }
+ break;
+ case MidiController::Program:
+ ctlmn = 0;
+ ctlmx = 0xffffff;
+ break;
+ case MidiController::Pitch:
+ ctlmn = -8192;
+ ctlmx = 8191;
+ break;
+ case MidiController::Velo: // cannot happen
+ default:
+ break;
+ }
+ int ctlrng = ctlmx - ctlmn;
+ float fctlrng = float(ctlmx - ctlmn);
+
+ // Is it an integer control?
+ if(desc & LADSPA_HINT_INTEGER)
+ {
+ float ret = float(cval);
+ if(ret < fmin)
+ ret = fmin;
+ if(ret > fmax)
+ ret = fmax;
+ #ifdef PLUGIN_DEBUGIN
+ printf("midi2LadspaValue: has LADSPA_HINT_INTEGER returning:%f\n", ret);
+ #endif
+
+ return ret;
+ }
+
+ // Avoid divide-by-zero error below.
+ if(ctlrng == 0)
+ return 0.0;
+
+ // It's a floating point control, just use wide open maximum range.
+ float normval = float(bval) / fctlrng;
+ //float fbias = (fmin + fmax) / 2.0;
+ //float normfbias = fbias / frng;
+ //float ret = (normdef + normbias) * fctlrng;
+ //float normdef = fdef / frng;
+
+ float ret = normval * frng + fmin;
+
+ #ifdef PLUGIN_DEBUGIN
+ printf("midi2LadspaValue: float returning:%f\n", ret);
+ #endif
+
+ return ret;
+}
+
+
+// Works but not needed.
+/*
+//---------------------------------------------------------
+// ladspa2MidiController
+//---------------------------------------------------------
+
+MidiController* ladspa2MidiController(const LADSPA_Descriptor* plugin, int port, int ctlnum)
+{
+ int min, max, def;
+
+ if(!ladspa2MidiControlValues(plugin, port, ctlnum, &min, &max, &def))
+ return 0;
+
+ MidiController* mc = new MidiController(QString(plugin->PortNames[port]), ctlnum, min, max, def);
+
+ return mc;
+}
+*/
+
+//----------------------------------------------------------------------------------
+// defaultValue
+// If no default ladspa value found, still sets *def to 1.0, but returns false.
+//---------------------------------------------------------------------------------
+
+//float ladspaDefaultValue(const LADSPA_Descriptor* plugin, int k)
+bool ladspaDefaultValue(const LADSPA_Descriptor* plugin, int port, float* val)
+{
+ LADSPA_PortRangeHint range = plugin->PortRangeHints[port];
+ LADSPA_PortRangeHintDescriptor rh = range.HintDescriptor;
+// bool isLog = LADSPA_IS_HINT_LOGARITHMIC(rh);
+ //double val = 1.0;
+ float m = (rh & LADSPA_HINT_SAMPLE_RATE) ? float(sampleRate) : 1.0f;
+ if (LADSPA_IS_HINT_DEFAULT_MINIMUM(rh))
+ {
+ *val = range.LowerBound * m;
+ return true;
+ }
+ 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);
+ return true;
+ }
+ else
+ {
+ *val = range.LowerBound*.75*m + range.UpperBound*.25*m;
+ return true;
+ }
+ }
+ 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);
+ return true;
+ }
+ else
+ {
+ *val = range.LowerBound*.5*m + range.UpperBound*.5*m;
+ return true;
+ }
+ }
+ 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);
+ return true;
+ }
+ else
+ {
+ *val = range.LowerBound*.25*m + range.UpperBound*.75*m;
+ return true;
+ }
+ }
+ else if (LADSPA_IS_HINT_DEFAULT_MAXIMUM(rh))
+ {
+ *val = range.UpperBound*m;
+ return true;
+ }
+ else if (LADSPA_IS_HINT_DEFAULT_0(rh))
+ {
+ *val = 0.0;
+ return true;
+ }
+ else if (LADSPA_IS_HINT_DEFAULT_1(rh))
+ {
+ *val = 1.0;
+ return true;
+ }
+ else if (LADSPA_IS_HINT_DEFAULT_100(rh))
+ {
+ *val = 100.0;
+ return true;
+ }
+ else if (LADSPA_IS_HINT_DEFAULT_440(rh))
+ {
+ *val = 440.0;
+ return true;
+ }
+
+ // No default found. Set return value to 1.0, but return false.
+ *val = 1.0;
+ return false;
+}
+
+//---------------------------------------------------------
+// ladspaControlRange
+//---------------------------------------------------------
+
+void ladspaControlRange(const LADSPA_Descriptor* plugin, int i, float* min, float* max)
+ {
+ 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(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;
+ }
+
+//---------------------------------------------------------
+// Plugin
+//---------------------------------------------------------
+
+Plugin::Plugin(QFileInfo* f, const LADSPA_Descriptor* d, bool isDssi)
+{
+ _isDssi = isDssi;
+ #ifdef DSSI_SUPPORT
+ dssi_descr = NULL;
+ #endif
+
+ fi = *f;
+ plugin = NULL;
+ ladspa = NULL;
+ _handle = 0;
+ _references = 0;
+ _instNo = 0;
+ _label = QString(d->Label);
+ _name = QString(d->Name);
+ _uniqueID = d->UniqueID;
+ _maker = QString(d->Maker);
+ _copyright = QString(d->Copyright);
+
+ _portCount = d->PortCount;
+ //_portDescriptors = 0;
+ //if(_portCount)
+ // _portDescriptors = new LADSPA_PortDescriptor[_portCount];
+
+
+ _inports = 0;
+ _outports = 0;
+ _controlInPorts = 0;
+ _controlOutPorts = 0;
+ for(unsigned long k = 0; k < _portCount; ++k)
+ {
+ LADSPA_PortDescriptor pd = d->PortDescriptors[k];
+ //_portDescriptors[k] = pd;
+ if(pd & LADSPA_PORT_AUDIO)
+ {
+ if(pd & LADSPA_PORT_INPUT)
+ ++_inports;
+ else
+ if(pd & LADSPA_PORT_OUTPUT)
+ ++_outports;
+ }
+ else
+ if(pd & LADSPA_PORT_CONTROL)
+ {
+ if(pd & LADSPA_PORT_INPUT)
+ ++_controlInPorts;
+ else
+ if(pd & LADSPA_PORT_OUTPUT)
+ ++_controlOutPorts;
+ }
+ }
+
+ _inPlaceCapable = !LADSPA_IS_INPLACE_BROKEN(d->Properties);
+
+ // By T356. Blacklist vst plugins in-place configurable for now. At one point they
+ // were working with in-place here, but not now, and RJ also reported they weren't working.
+ // Fixes problem with vst plugins not working or feeding back loudly.
+ // I can only think of two things that made them stop working:
+ // 1): I switched back from Jack-2 to Jack-1
+ // 2): I changed winecfg audio to use Jack instead of ALSA.
+ // Will test later...
+ // Possibly the first one because under Mandriva2007.1 (Jack-1), no matter how hard I tried,
+ // the same problem existed. It may have been when using Jack-2 with Mandriva2009 that they worked.
+ // Apparently the plugins are lying about their in-place capability.
+ // Quote:
+ /* 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.' */
+ // Examination of all my ladspa and vst synths and effects plugins showed only one -
+ // EnsembleLite (EnsLite VST) has the flag set, but it is a vst synth and is not involved here!
+ // Yet many (all?) ladspa vst effect plugins exhibit this problem.
+ // Changed by Tim. p3.3.14
+ if ((_inports != _outports) || (fi.baseName(true) == QString("dssi-vst") && !config.vstInPlace))
+ _inPlaceCapable = false;
+}
+
+Plugin::~Plugin()
+{
+ //if(_portDescriptors)
+ // delete[] _portDescriptors;
+}
+
+//---------------------------------------------------------
+// incReferences
+//---------------------------------------------------------
+
+int Plugin::incReferences(int val)
+{
+ #ifdef PLUGIN_DEBUGIN
+ fprintf(stderr, "Plugin::incReferences _references:%d val:%d\n", _references, val);
+ #endif
+
+ int newref = _references + val;
+
+ if(newref == 0)
+ {
+ _references = 0;
+ if(_handle)
+ {
+ #ifdef PLUGIN_DEBUGIN
+ fprintf(stderr, "Plugin::incReferences no more instances, closing library\n");
+ #endif
+
+ dlclose(_handle);
+ }
+
+ _handle = 0;
+ ladspa = NULL;
+ plugin = NULL;
+ rpIdx.clear();
+
+ #ifdef DSSI_SUPPORT
+ dssi_descr = NULL;
+ #endif
+
+ return 0;
+ }
+
+ //if(_references == 0)
+ if(_handle == 0)
+ {
+ //_references = 0;
+ _handle = dlopen(fi.filePath().latin1(), RTLD_NOW);
+ //handle = dlopen(fi.absFilePath().latin1(), RTLD_NOW);
+
+ if(_handle == 0)
+ {
+ fprintf(stderr, "Plugin::incReferences dlopen(%s) failed: %s\n",
+ fi.filePath().latin1(), dlerror());
+ //fi.absFilePath().latin1(), dlerror());
+ return 0;
+ }
+
+ #ifdef DSSI_SUPPORT
+ DSSI_Descriptor_Function dssi = (DSSI_Descriptor_Function)dlsym(_handle, "dssi_descriptor");
+ if(dssi)
+ {
+ const DSSI_Descriptor* descr;
+ for(int i = 0;; ++i)
+ {
+ descr = dssi(i);
+ if(descr == NULL)
+ break;
+
+ QString label(descr->LADSPA_Plugin->Label);
+ // Listing effect plugins only while excluding synths:
+ // Do exactly what dssi-vst.cpp does for listing ladspa plugins.
+ //if(label == _name &&
+ if(label == _label &&
+ !descr->run_synth &&
+ !descr->run_synth_adding &&
+ !descr->run_multiple_synths &&
+ !descr->run_multiple_synths_adding)
+ {
+ _isDssi = true;
+ ladspa = NULL;
+ dssi_descr = descr;
+ plugin = descr->LADSPA_Plugin;
+ break;
+ }
+ }
+ }
+ else
+ #endif // DSSI_SUPPORT
+ {
+ LADSPA_Descriptor_Function ladspadf = (LADSPA_Descriptor_Function)dlsym(_handle, "ladspa_descriptor");
+ if(ladspadf)
+ {
+ const LADSPA_Descriptor* descr;
+ for(int i = 0;; ++i)
+ {
+ descr = ladspadf(i);
+ if(descr == NULL)
+ break;
+
+ QString label(descr->Label);
+ //if(label == _name)
+ if(label == _label)
+ {
+ _isDssi = false;
+ ladspa = ladspadf;
+ plugin = descr;
+
+ #ifdef DSSI_SUPPORT
+ dssi_descr = NULL;
+ #endif
+
+ break;
+ }
+ }
+ }
+ }
+
+ if(plugin != NULL)
+ {
+ //_instNo = 0;
+ _name = QString(plugin->Name);
+ _uniqueID = plugin->UniqueID;
+ _maker = QString(plugin->Maker);
+ _copyright = QString(plugin->Copyright);
+
+ //if(_portDescriptors)
+ // delete[] _portDescriptors;
+ //_portDescriptors = 0;
+ _portCount = plugin->PortCount;
+ //if(_portCount)
+ // _portDescriptors = new LADSPA_PortDescriptor[_portCount];
+
+ _inports = 0;
+ _outports = 0;
+ _controlInPorts = 0;
+ _controlOutPorts = 0;
+ for(unsigned long k = 0; k < _portCount; ++k)
+ {
+ LADSPA_PortDescriptor pd = plugin->PortDescriptors[k];
+ //_portDescriptors[k] = pd;
+ if(pd & LADSPA_PORT_AUDIO)
+ {
+ if(pd & LADSPA_PORT_INPUT)
+ ++_inports;
+ else
+ if(pd & LADSPA_PORT_OUTPUT)
+ ++_outports;
+
+ rpIdx.push_back((unsigned long)-1);
+ }
+ else
+ if(pd & LADSPA_PORT_CONTROL)
+ {
+ if(pd & LADSPA_PORT_INPUT)
+ {
+ rpIdx.push_back(_controlInPorts);
+ ++_controlInPorts;
+ }
+ else
+ if(pd & LADSPA_PORT_OUTPUT)
+ {
+ rpIdx.push_back((unsigned long)-1);
+ ++_controlOutPorts;
+ }
+ }
+ }
+
+ _inPlaceCapable = !LADSPA_IS_INPLACE_BROKEN(plugin->Properties);
+
+ // Blacklist vst plugins in-place configurable for now.
+ if ((_inports != _outports) || (fi.baseName(true) == QString("dssi-vst") && !config.vstInPlace))
+ _inPlaceCapable = false;
+ }
+ }
+
+ if(plugin == NULL)
+ {
+ dlclose(_handle);
+ _handle = 0;
+ _references = 0;
+ fprintf(stderr, "Plugin::incReferences Error: %s no plugin!\n", fi.filePath().latin1());
+ return 0;
+ }
+
+ _references = newref;
+
+ //QString guiPath(info.dirPath() + "/" + info.baseName());
+ //QDir guiDir(guiPath, "*", QDir::Unsorted, QDir::Files);
+ //_hasGui = guiDir.exists();
+
+ return _references;
+}
+
+//---------------------------------------------------------
+// range
+//---------------------------------------------------------
+
+void Plugin::range(unsigned long i, float* min, float* max) const
+ {
+ 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(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;
+ }
+
+//---------------------------------------------------------
+// defaultValue
+//---------------------------------------------------------
+
+double Plugin::defaultValue(unsigned long port) const
+{
+ if(port >= plugin->PortCount)
+ return 0.0;
+
+ LADSPA_PortRangeHint range = plugin->PortRangeHints[port];
+ 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;
+
+ return val;
+}
+
+//---------------------------------------------------------
+// loadPluginLib
+//---------------------------------------------------------
+
+static void loadPluginLib(QFileInfo* fi)
+{
+ void* handle = dlopen(fi->filePath().ascii(), RTLD_NOW);
+ if (handle == 0) {
+ fprintf(stderr, "dlopen(%s) failed: %s\n",
+ fi->filePath().ascii(), dlerror());
+ return;
+ }
+
+ #ifdef DSSI_SUPPORT
+ DSSI_Descriptor_Function dssi = (DSSI_Descriptor_Function)dlsym(handle, "dssi_descriptor");
+ if(dssi)
+ {
+ const DSSI_Descriptor* descr;
+ for (int i = 0;; ++i)
+ {
+ descr = dssi(i);
+ if (descr == 0)
+ break;
+
+ // Listing effect plugins only while excluding synths:
+ // Do exactly what dssi-vst.cpp does for listing ladspa plugins.
+ if(!descr->run_synth &&
+ !descr->run_synth_adding &&
+ !descr->run_multiple_synths &&
+ !descr->run_multiple_synths_adding)
+ {
+ // Make sure it doesn't already exist.
+ if(plugins.find(fi->baseName(true), QString(descr->LADSPA_Plugin->Label)) != 0)
+ continue;
+
+ #ifdef PLUGIN_DEBUGIN
+ fprintf(stderr, "loadPluginLib: dssi effect name:%s inPlaceBroken:%d\n", descr->LADSPA_Plugin->Name, LADSPA_IS_INPLACE_BROKEN(descr->LADSPA_Plugin->Properties));
+ #endif
+
+ //LADSPA_Properties properties = descr->LADSPA_Plugin->Properties;
+ //bool inPlaceBroken = LADSPA_IS_INPLACE_BROKEN(properties);
+ //plugins.add(fi, descr, !inPlaceBroken);
+ plugins.add(fi, descr->LADSPA_Plugin, true);
+ }
+ }
+ }
+ else
+ #endif
+ {
+ 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().ascii(),
+ txt);
+ }
+ dlclose(handle);
+ return;
+ }
+
+ const LADSPA_Descriptor* descr;
+ for (int i = 0;; ++i)
+ {
+ descr = ladspa(i);
+ if (descr == NULL)
+ break;
+
+ // Make sure it doesn't already exist.
+ if(plugins.find(fi->baseName(true), QString(descr->Label)) != 0)
+ continue;
+
+ #ifdef PLUGIN_DEBUGIN
+ fprintf(stderr, "loadPluginLib: ladspa effect name:%s inPlaceBroken:%d\n", descr->Name, LADSPA_IS_INPLACE_BROKEN(descr->Properties));
+ #endif
+
+ //LADSPA_Properties properties = descr->Properties;
+ //bool inPlaceBroken = LADSPA_IS_INPLACE_BROKEN(properties);
+ //plugins.add(fi, ladspa, descr, !inPlaceBroken);
+ plugins.add(fi, descr);
+ }
+ }
+
+ dlclose(handle);
+}
+
+//---------------------------------------------------------
+// loadPluginDir
+//---------------------------------------------------------
+
+static void loadPluginDir(const QString& s)
+ {
+ if (debugMsg)
+ printf("scan ladspa plugin dir <%s>\n", s.latin1());
+ QDir pluginDir(s, QString("*.so")); // ddskrjo
+ if (pluginDir.exists()) {
+ QFileInfoList list = pluginDir.entryInfoList();
+ QFileInfoListIterator it=list.begin();
+ while(it != list.end()) {
+ loadPluginLib(&*it);
+ ++it;
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// initPlugins
+//---------------------------------------------------------
+
+void initPlugins()
+ {
+ loadPluginDir(museGlobalLib + QString("/plugins"));
+
+ const char* p = 0;
+
+ // Take care of DSSI plugins first...
+ #ifdef DSSI_SUPPORT
+ const char* dssiPath = getenv("DSSI_PATH");
+ if (dssiPath == 0)
+ dssiPath = "/usr/local/lib64/dssi:/usr/lib64/dssi:/usr/local/lib/dssi:/usr/lib/dssi";
+ 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';
+ loadPluginDir(QString(buffer));
+ delete[] buffer;
+ }
+ p = pe;
+ if (*p == ':')
+ p++;
+ }
+ #endif
+
+ // Now do LADSPA plugins...
+ const char* ladspaPath = getenv("LADSPA_PATH");
+ if (ladspaPath == 0)
+ ladspaPath = "/usr/local/lib64/ladspa:/usr/lib64/ladspa:/usr/local/lib/ladspa:/usr/lib/ladspa";
+ p = ladspaPath;
+
+ if(debugMsg)
+ fprintf(stderr, "loadPluginLib: ladspa path:%s\n", 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';
+ if(debugMsg)
+ fprintf(stderr, "loadPluginLib: loading ladspa dir:%s\n", buffer);
+
+ loadPluginDir(QString(buffer));
+ delete[] buffer;
+ }
+ p = pe;
+ if (*p == ':')
+ p++;
+ }
+ }
+
+//---------------------------------------------------------
+// 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("Plugin <%s> not found\n", name.ascii());
+ return 0;
+ }
+
+//---------------------------------------------------------
+// Pipeline
+//---------------------------------------------------------
+
+Pipeline::Pipeline()
+ : std::vector<PluginI*>()
+ {
+ // Added by Tim. p3.3.15
+ for (int i = 0; i < MAX_CHANNELS; ++i)
+ posix_memalign((void**)(buffer + i), 16, sizeof(float) * segmentSize);
+
+ for (int i = 0; i < PipelineDepth; ++i)
+ push_back(0);
+ }
+
+//---------------------------------------------------------
+// ~Pipeline
+//---------------------------------------------------------
+
+Pipeline::~Pipeline()
+ {
+ removeAll();
+ for (int i = 0; i < MAX_CHANNELS; ++i)
+ ::free(buffer[i]);
+ }
+
+//---------------------------------------------------------
+// setChannels
+//---------------------------------------------------------
+
+void Pipeline::setChannels(int n)
+ {
+ for (int i = 0; i < PipelineDepth; ++i)
+ if ((*this)[i])
+ (*this)[i]->setChannels(n);
+ }
+
+//---------------------------------------------------------
+// insert
+// give ownership of object plugin to Pipeline
+//---------------------------------------------------------
+
+void Pipeline::insert(PluginI* plugin, int index)
+ {
+ remove(index);
+ (*this)[index] = plugin;
+ }
+
+//---------------------------------------------------------
+// remove
+//---------------------------------------------------------
+
+void Pipeline::remove(int index)
+ {
+ PluginI* plugin = (*this)[index];
+ if (plugin)
+ delete plugin;
+ (*this)[index] = 0;
+ }
+
+//---------------------------------------------------------
+// removeAll
+//---------------------------------------------------------
+
+void Pipeline::removeAll()
+ {
+ for (int i = 0; i < PipelineDepth; ++i)
+ remove(i);
+ }
+
+//---------------------------------------------------------
+// isOn
+//---------------------------------------------------------
+
+bool Pipeline::isOn(int idx) const
+ {
+ PluginI* p = (*this)[idx];
+ if (p)
+ return p->on();
+ return false;
+ }
+
+//---------------------------------------------------------
+// setOn
+//---------------------------------------------------------
+
+void Pipeline::setOn(int idx, bool flag)
+ {
+ PluginI* p = (*this)[idx];
+ if (p) {
+ p->setOn(flag);
+ if (p->gui())
+ p->gui()->setOn(flag);
+ }
+ }
+
+//---------------------------------------------------------
+// label
+//---------------------------------------------------------
+
+QString Pipeline::label(int idx) const
+ {
+ PluginI* p = (*this)[idx];
+ if (p)
+ return p->label();
+ return QString("");
+ }
+
+//---------------------------------------------------------
+// name
+//---------------------------------------------------------
+
+QString Pipeline::name(int idx) const
+ {
+ PluginI* p = (*this)[idx];
+ if (p)
+ return p->name();
+ return QString("empty");
+ }
+
+//---------------------------------------------------------
+// empty
+//---------------------------------------------------------
+
+bool Pipeline::empty(int idx) const
+ {
+ PluginI* p = (*this)[idx];
+ return p == 0;
+ }
+
+//---------------------------------------------------------
+// move
+//---------------------------------------------------------
+
+void Pipeline::move(int idx, bool up)
+{
+ PluginI* p1 = (*this)[idx];
+ if (up)
+ {
+ (*this)[idx] = (*this)[idx-1];
+
+ if((*this)[idx])
+ (*this)[idx]->setID(idx);
+
+ (*this)[idx-1] = p1;
+
+ if(p1)
+ {
+ p1->setID(idx - 1);
+ if(p1->track())
+ audio->msgSwapControllerIDX(p1->track(), idx, idx - 1);
+ }
+ }
+ else
+ {
+ (*this)[idx] = (*this)[idx+1];
+
+ if((*this)[idx])
+ (*this)[idx]->setID(idx);
+
+ (*this)[idx+1] = p1;
+
+ if(p1)
+ {
+ p1->setID(idx + 1);
+ if(p1->track())
+ audio->msgSwapControllerIDX(p1->track(), idx, idx + 1);
+ }
+ }
+}
+
+//---------------------------------------------------------
+// isDssiPlugin
+//---------------------------------------------------------
+
+bool Pipeline::isDssiPlugin(int idx) const
+{
+ PluginI* p = (*this)[idx];
+ if(p)
+ return p->isDssiPlugin();
+
+ return false;
+}
+
+//---------------------------------------------------------
+// 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)
+ {
+ #ifdef OSC_SUPPORT
+ PluginI* p = (*this)[idx];
+ if (p)
+ p->oscIF().oscShowGui(flag);
+ #endif
+ }
+
+//---------------------------------------------------------
+// deleteGui
+//---------------------------------------------------------
+
+void Pipeline::deleteGui(int idx)
+{
+ if(idx >= PipelineDepth)
+ return;
+ PluginI* p = (*this)[idx];
+ if(p)
+ p->deleteGui();
+}
+
+//---------------------------------------------------------
+// deleteAllGuis
+//---------------------------------------------------------
+
+void Pipeline::deleteAllGuis()
+{
+ for(int i = 0; i < PipelineDepth; i++)
+ deleteGui(i);
+}
+
+//---------------------------------------------------------
+// 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
+
+ // Removed by Tim. p3.3.15
+ //float* buffer2[ports];
+ //float data[nframes * ports];
+ //for (int i = 0; i < ports; ++i)
+ // buffer2[i] = data + i * nframes;
+
+ // p3.3.41
+ //fprintf(stderr, "Pipeline::apply data: nframes:%ld %e %e %e %e\n", nframes, buffer1[0][0], buffer1[0][1], buffer1[0][2], buffer1[0][3]);
+
+ bool swap = false;
+
+ for (iPluginI ip = begin(); ip != end(); ++ip) {
+ PluginI* p = *ip;
+ if (p && p->on()) {
+ if (p->inPlaceCapable())
+ {
+ if (swap)
+ //p->connect(ports, buffer2, buffer2);
+ p->connect(ports, buffer, buffer);
+ else
+ p->connect(ports, buffer1, buffer1);
+ }
+ else
+ {
+ if (swap)
+ //p->connect(ports, buffer2, buffer1);
+ p->connect(ports, buffer, buffer1);
+ else
+ //p->connect(ports, buffer1, buffer2);
+ p->connect(ports, buffer1, buffer);
+ swap = !swap;
+ }
+ p->apply(nframes);
+ }
+ }
+ if (swap)
+ {
+ for (int i = 0; i < ports; ++i)
+ //memcpy(buffer1[i], buffer2[i], sizeof(float) * nframes);
+ //memcpy(buffer1[i], buffer[i], sizeof(float) * nframes);
+ AL::dsp->cpy(buffer1[i], buffer[i], nframes);
+ }
+
+ // p3.3.41
+ //fprintf(stderr, "Pipeline::apply after data: nframes:%ld %e %e %e %e\n", nframes, buffer1[0][0], buffer1[0][1], buffer1[0][2], buffer1[0][3]);
+
+}
+
+//---------------------------------------------------------
+// PluginI
+//---------------------------------------------------------
+
+void PluginI::init()
+ {
+ _plugin = 0;
+ instances = 0;
+ handle = 0;
+ controls = 0;
+ controlsOut = 0;
+ controlPorts = 0;
+ controlOutPorts = 0;
+ _gui = 0;
+ _on = true;
+ initControlValues = false;
+ _showNativeGuiPending = false;
+ }
+
+PluginI::PluginI()
+ {
+ _id = -1;
+ _track = 0;
+
+ init();
+ }
+
+//---------------------------------------------------------
+// PluginI
+//---------------------------------------------------------
+
+PluginI::~PluginI()
+ {
+ if (_plugin) {
+ deactivate();
+ _plugin->incReferences(-1);
+ }
+ if (_gui)
+ delete _gui;
+ if (controlsOut)
+ delete[] controlsOut;
+ if (controls)
+ delete[] controls;
+ if (handle)
+ delete[] handle;
+ }
+
+//---------------------------------------------------------
+// setID
+//---------------------------------------------------------
+
+void PluginI::setID(int i)
+{
+ _id = i;
+}
+
+//---------------------------------------------------------
+// updateControllers
+//---------------------------------------------------------
+
+void PluginI::updateControllers()
+{
+ if(!_track)
+ return;
+
+ for(int i = 0; i < controlPorts; ++i)
+ //audio->msgSetPluginCtrlVal(this, genACnum(_id, i), controls[i].val);
+ // p3.3.43
+ audio->msgSetPluginCtrlVal(_track, genACnum(_id, i), controls[i].val);
+}
+
+//---------------------------------------------------------
+// valueType
+//---------------------------------------------------------
+
+CtrlValueType PluginI::valueType() const
+ {
+ return VAL_LINEAR;
+ }
+
+//---------------------------------------------------------
+// setChannel
+//---------------------------------------------------------
+
+void PluginI::setChannels(int c)
+{
+ // p3.3.41 Removed
+ //if (channel == c)
+ // return;
+
+ // p3.3.41
+ channel = c;
+
+ //int ni = c / _plugin->outports();
+ //if (ni == 0)
+ // ni = 1;
+ // p3.3.41 Some plugins have zero out ports, causing exception with the above line.
+ // Also, pick the least number of ins or outs, and base the number of instances on that.
+ unsigned long ins = _plugin->inports();
+ unsigned long outs = _plugin->outports();
+ /*
+ unsigned long minports = ~0ul;
+ if(outs && outs < minports)
+ minports = outs;
+ if(ins && ins < minports)
+ minports = ins;
+ if(minports == ~0ul)
+ minports = 1;
+ int ni = c / minports;
+ */
+ int ni = 1;
+ if(outs)
+ ni = c / outs;
+ else
+ if(ins)
+ ni = c / ins;
+
+ if(ni < 1)
+ ni = 1;
+
+ if (ni == instances)
+ return;
+
+ // p3.3.41 Moved above.
+ //channel = c;
+
+ // remove old instances:
+ deactivate();
+ delete[] handle;
+ instances = ni;
+ handle = new LADSPA_Handle[instances];
+ for (int i = 0; i < instances; ++i) {
+ handle[i] = _plugin->instantiate();
+ if (handle[i] == NULL) {
+ printf("cannot instantiate instance %d\n", i);
+ return;
+ }
+ }
+
+ int curPort = 0;
+ int curOutPort = 0;
+ unsigned long ports = _plugin->ports();
+ for (unsigned long k = 0; k < ports; ++k)
+ {
+ LADSPA_PortDescriptor pd = _plugin->portd(k);
+ if (pd & LADSPA_PORT_CONTROL)
+ {
+ if(pd & LADSPA_PORT_INPUT)
+ {
+ for (int i = 0; i < instances; ++i)
+ _plugin->connectPort(handle[i], k, &controls[curPort].val);
+ controls[curPort].idx = k;
+ ++curPort;
+ }
+ else
+ if(pd & LADSPA_PORT_OUTPUT)
+ {
+ for (int i = 0; i < instances; ++i)
+ _plugin->connectPort(handle[i], k, &controlsOut[curOutPort].val);
+ controlsOut[curOutPort].idx = k;
+ ++curOutPort;
+ }
+ }
+ }
+
+ activate();
+}
+
+//---------------------------------------------------------
+// defaultValue
+//---------------------------------------------------------
+
+double PluginI::defaultValue(unsigned int param) const
+{
+//#warning controlPorts should really be unsigned
+ if(param >= (unsigned)controlPorts)
+ return 0.0;
+
+ return _plugin->defaultValue(controls[param].idx);
+}
+
+LADSPA_Handle Plugin::instantiate()
+{
+ LADSPA_Handle h = plugin->instantiate(plugin, sampleRate);
+ if(h == NULL)
+ {
+ fprintf(stderr, "Plugin::instantiate() Error: plugin:%s instantiate failed!\n", plugin->Label);
+ return NULL;
+ }
+
+ //QString guiPath(info.dirPath() + "/" + info.baseName());
+ //QDir guiDir(guiPath, "*", QDir::Unsorted, QDir::Files);
+ //_hasGui = guiDir.exists();
+
+ return h;
+}
+
+//---------------------------------------------------------
+// initPluginInstance
+// return true on error
+//---------------------------------------------------------
+
+bool PluginI::initPluginInstance(Plugin* plug, int c)
+ {
+ channel = c;
+ if(plug == 0)
+ {
+ printf("initPluginInstance: zero plugin\n");
+ return true;
+ }
+ _plugin = plug;
+
+ _plugin->incReferences(1);
+
+ #ifdef OSC_SUPPORT
+ _oscif.oscSetPluginI(this);
+ #endif
+
+ QString inst("-" + QString::number(_plugin->instNo()));
+ _name = _plugin->name() + inst;
+ _label = _plugin->label() + inst;
+
+ //instances = channel/plug->outports();
+ // p3.3.41 Some plugins have zero out ports, causing exception with the above line.
+ // Also, pick the least number of ins or outs, and base the number of instances on that.
+ unsigned long ins = plug->inports();
+ unsigned long outs = plug->outports();
+ /*
+ unsigned long minports = ~0ul;
+ if(outs && outs < minports)
+ minports = outs;
+ if(ins && ins < minports)
+ minports = ins;
+ if(minports == ~0ul)
+ minports = 1;
+ instances = channel / minports;
+ if(instances < 1)
+ instances = 1;
+ */
+ if(outs)
+ {
+ instances = channel / outs;
+ if(instances < 1)
+ instances = 1;
+ }
+ else
+ if(ins)
+ {
+ instances = channel / ins;
+ if(instances < 1)
+ instances = 1;
+ }
+ else
+ instances = 1;
+
+ handle = new LADSPA_Handle[instances];
+ for(int i = 0; i < instances; ++i)
+ {
+ #ifdef PLUGIN_DEBUGIN
+ fprintf(stderr, "PluginI::initPluginInstance instance:%d\n", i);
+ #endif
+
+ handle[i] = _plugin->instantiate();
+ //if (handle[i] == 0)
+ if(handle[i] == NULL)
+ return true;
+ }
+
+ unsigned long ports = _plugin->ports();
+
+ controlPorts = 0;
+ controlOutPorts = 0;
+
+ for(unsigned long k = 0; k < ports; ++k)
+ {
+ LADSPA_PortDescriptor pd = _plugin->portd(k);
+ if(pd & LADSPA_PORT_CONTROL)
+ {
+ if(pd & LADSPA_PORT_INPUT)
+ ++controlPorts;
+ else
+ if(pd & LADSPA_PORT_OUTPUT)
+ ++controlOutPorts;
+ }
+ }
+
+ controls = new Port[controlPorts];
+ controlsOut = new Port[controlOutPorts];
+
+ int i = 0;
+ int ii = 0;
+ for(unsigned long k = 0; k < ports; ++k)
+ {
+ LADSPA_PortDescriptor pd = _plugin->portd(k);
+ if(pd & LADSPA_PORT_CONTROL)
+ {
+ if(pd & LADSPA_PORT_INPUT)
+ {
+ double val = _plugin->defaultValue(k);
+ controls[i].val = val;
+ controls[i].tmpVal = val;
+ controls[i].enCtrl = true;
+ controls[i].en2Ctrl = true;
+ ++i;
+ }
+ else
+ if(pd & LADSPA_PORT_OUTPUT)
+ {
+ //double val = _plugin->defaultValue(k);
+ controlsOut[ii].val = 0.0;
+ controlsOut[ii].tmpVal = 0.0;
+ controlsOut[ii].enCtrl = false;
+ controlsOut[ii].en2Ctrl = false;
+ ++ii;
+ }
+ }
+ }
+ unsigned long curPort = 0;
+ unsigned long curOutPort = 0;
+ for(unsigned long k = 0; k < ports; ++k)
+ {
+ LADSPA_PortDescriptor pd = _plugin->portd(k);
+ if(pd & LADSPA_PORT_CONTROL)
+ {
+ if(pd & LADSPA_PORT_INPUT)
+ {
+ for(int i = 0; i < instances; ++i)
+ _plugin->connectPort(handle[i], k, &controls[curPort].val);
+ controls[curPort].idx = k;
+ ++curPort;
+ }
+ else
+ if(pd & LADSPA_PORT_OUTPUT)
+ {
+ for(int i = 0; i < instances; ++i)
+ _plugin->connectPort(handle[i], k, &controlsOut[curOutPort].val);
+ controlsOut[curOutPort].idx = k;
+ ++curOutPort;
+ }
+ }
+ }
+ activate();
+ return false;
+ }
+
+//---------------------------------------------------------
+// connect
+//---------------------------------------------------------
+
+void PluginI::connect(int ports, float** src, float** dst)
+ {
+ int port = 0;
+ for (int i = 0; i < instances; ++i) {
+ for (unsigned long k = 0; k < _plugin->ports(); ++k) {
+ if (isAudioIn(k)) {
+ _plugin->connectPort(handle[i], k, src[port]);
+ port = (port + 1) % ports;
+ }
+ }
+ }
+ port = 0;
+ for (int i = 0; i < instances; ++i) {
+ for (unsigned long k = 0; k < _plugin->ports(); ++k) {
+ if (isAudioOut(k)) {
+ _plugin->connectPort(handle[i], k, dst[port]);
+ port = (port + 1) % ports; // overwrite output?
+// ++port;
+// if (port >= ports) {
+// return;
+// }
+ }
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// deactivate
+//---------------------------------------------------------
+
+void PluginI::deactivate()
+ {
+ for (int i = 0; i < instances; ++i) {
+ _plugin->deactivate(handle[i]);
+ _plugin->cleanup(handle[i]);
+ }
+ }
+
+//---------------------------------------------------------
+// activate
+//---------------------------------------------------------
+
+void PluginI::activate()
+ {
+ for (int i = 0; i < instances; ++i)
+ _plugin->activate(handle[i]);
+ if (initControlValues) {
+ for (int i = 0; i < controlPorts; ++i) {
+ controls[i].val = controls[i].tmpVal;
+ }
+ }
+ else {
+ //
+ // get initial control values from plugin
+ //
+ for (int i = 0; i < controlPorts; ++i) {
+ controls[i].tmpVal = controls[i].val;
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// setControl
+// set plugin instance controller value by name
+//---------------------------------------------------------
+
+bool PluginI::setControl(const QString& s, double val)
+ {
+ for (int i = 0; i < controlPorts; ++i) {
+ if (_plugin->portName(controls[i].idx) == s) {
+ controls[i].val = controls[i].tmpVal = val;
+ return false;
+ }
+ }
+ printf("PluginI:setControl(%s, %f) controller not found\n",
+ s.latin1(), val);
+ return true;
+ }
+
+//---------------------------------------------------------
+// saveConfiguration
+//---------------------------------------------------------
+
+void PluginI::writeConfiguration(int level, Xml& xml)
+ {
+ xml.tag(level++, "plugin file=\"%s\" label=\"%s\" channel=\"%d\"",
+ //_plugin->lib().latin1(), _plugin->label().latin1(), instances * _plugin->inports());
+ // p3.3.41
+ //_plugin->lib().latin1(), _plugin->label().latin1(), channel);
+ Xml::xmlString(_plugin->lib()).latin1(), Xml::xmlString(_plugin->label()).latin1(), channel);
+
+ for (int i = 0; i < controlPorts; ++i) {
+ int idx = controls[i].idx;
+ QString s("control name=\"%1\" val=\"%2\" /");
+ //xml.tag(level, s.arg(_plugin->portName(idx)).arg(controls[i].tmpVal).latin1());
+ xml.tag(level, s.arg(Xml::xmlString(_plugin->portName(idx)).latin1()).arg(controls[i].tmpVal).latin1());
+ }
+ if (_on == false)
+ xml.intTag(level, "on", _on);
+ if (guiVisible()) {
+ xml.intTag(level, "gui", 1);
+ xml.geometryTag(level, "geometry", _gui);
+ }
+ if (nativeGuiVisible()) {
+ xml.intTag(level, "nativegui", 1);
+ // TODO:
+ //xml.geometryTag(level, "nativegeometry", ?);
+ }
+ xml.tag(level--, "/plugin");
+ }
+
+//---------------------------------------------------------
+// loadControl
+//---------------------------------------------------------
+
+bool PluginI::loadControl(Xml& xml)
+ {
+ QString file;
+ QString label;
+ QString name("mops");
+ double val = 0.0;
+
+ for (;;) {
+ Xml::Token token = xml.parse();
+ const QString& tag = xml.s1();
+
+ switch (token) {
+ case Xml::Error:
+ case Xml::End:
+ return true;
+ case Xml::TagStart:
+ xml.unknown("PluginI-Control");
+ break;
+ case Xml::Attribut:
+ if (tag == "name")
+ name = xml.s2();
+ else if (tag == "val")
+ val = xml.s2().toDouble();
+ break;
+ case Xml::TagEnd:
+ if (tag == "control") {
+ if (setControl(name, val)) {
+ return false;
+ }
+ initControlValues = true;
+ }
+ return true;
+ default:
+ break;
+ }
+ }
+ return true;
+ }
+
+//---------------------------------------------------------
+// readConfiguration
+// return true on error
+//---------------------------------------------------------
+
+bool PluginI::readConfiguration(Xml& xml, bool readPreset)
+ {
+ QString file;
+ QString label;
+ if (!readPreset)
+ //instances = 1;
+ // p3.3.41
+ channel = 1;
+
+ for (;;) {
+ Xml::Token token(xml.parse());
+ const QString& tag(xml.s1());
+ switch (token) {
+ case Xml::Error:
+ case Xml::End:
+ return true;
+ case Xml::TagStart:
+ if (!readPreset && _plugin == 0) {
+ _plugin = plugins.find(file, label);
+
+ //if (_plugin && initPluginInstance(_plugin, instances)) {
+ // p3.3.41
+ if (_plugin && initPluginInstance(_plugin, channel)) {
+ _plugin = 0;
+ xml.parse1();
+ break;
+ }
+ }
+ if (tag == "control")
+ loadControl(xml);
+ else if (tag == "on") {
+ bool flag = xml.parseInt();
+ if (!readPreset)
+ _on = flag;
+ }
+ else if (tag == "gui") {
+ bool flag = xml.parseInt();
+ showGui(flag);
+ }
+ else if (tag == "nativegui") {
+ // We can't tell OSC to show the native plugin gui
+ // until the parent track is added to the lists.
+ // OSC needs to find the plugin in the track lists.
+ // Use this 'pending' flag so it gets done later.
+ _showNativeGuiPending = xml.parseInt();
+ }
+ else if (tag == "geometry") {
+ QRect r(readGeometry(xml, tag));
+ if (_gui) {
+ _gui->resize(r.size());
+ _gui->move(r.topLeft());
+ }
+ }
+ else
+ xml.unknown("PluginI");
+ break;
+ case Xml::Attribut:
+ if (tag == "file") {
+ QString s = xml.s2();
+ if (readPreset) {
+ if (s != plugin()->lib()) {
+ printf("Error: Wrong preset type %s. Type must be a %s\n",
+ s.latin1(), plugin()->lib().latin1());
+ return true;
+ }
+ }
+ else {
+ file = s;
+ }
+ }
+ else if (tag == "label") {
+ if (!readPreset)
+ label = xml.s2();
+ }
+ else if (tag == "channel") {
+ if (!readPreset)
+ //instances = xml.s2().toInt();
+ // p3.3.41
+ channel = xml.s2().toInt();
+ }
+ break;
+ case Xml::TagEnd:
+ if (tag == "plugin") {
+ if (!readPreset && _plugin == 0) {
+ _plugin = plugins.find(file, label);
+ if (_plugin == 0)
+ return true;
+
+ //if (initPluginInstance(_plugin, instances))
+ // p3.3.41
+ if (initPluginInstance(_plugin, channel))
+ return true;
+ }
+ if (_gui)
+ _gui->updateValues();
+ return false;
+ }
+ return true;
+ default:
+ break;
+ }
+ }
+ return true;
+ }
+
+//---------------------------------------------------------
+// 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()
+ {
+ return _gui && _gui->isVisible();
+ }
+
+//---------------------------------------------------------
+// showNativeGui
+//---------------------------------------------------------
+
+void PluginI::showNativeGui()
+{
+ #ifdef OSC_SUPPORT
+ if (_plugin)
+ {
+ if (_oscif.oscGuiVisible())
+ _oscif.oscShowGui(false);
+ else
+ _oscif.oscShowGui(true);
+ }
+ #endif
+ _showNativeGuiPending = false;
+}
+
+void PluginI::showNativeGui(bool flag)
+{
+ #ifdef OSC_SUPPORT
+ if(_plugin)
+ {
+ _oscif.oscShowGui(flag);
+ }
+ #endif
+ _showNativeGuiPending = false;
+}
+
+//---------------------------------------------------------
+// nativeGuiVisible
+//---------------------------------------------------------
+
+bool PluginI::nativeGuiVisible()
+{
+ #ifdef OSC_SUPPORT
+ return _oscif.oscGuiVisible();
+ #endif
+
+ return false;
+}
+
+//---------------------------------------------------------
+// makeGui
+//---------------------------------------------------------
+
+void PluginI::makeGui()
+ {
+ _gui = new PluginGui(this);
+ }
+
+//---------------------------------------------------------
+// deleteGui
+//---------------------------------------------------------
+void PluginI::deleteGui()
+{
+ if(_gui)
+ {
+ delete _gui;
+ _gui = 0;
+ }
+}
+
+//---------------------------------------------------------
+// enableAllControllers
+//---------------------------------------------------------
+
+void PluginI::enableAllControllers(bool v)
+{
+ for(int i = 0; i < controlPorts; ++i)
+ controls[i].enCtrl = v;
+}
+
+//---------------------------------------------------------
+// enable2AllControllers
+//---------------------------------------------------------
+
+void PluginI::enable2AllControllers(bool v)
+{
+ for(int i = 0; i < controlPorts; ++i)
+ controls[i].en2Ctrl = v;
+}
+
+//---------------------------------------------------------
+// apply
+//---------------------------------------------------------
+
+void PluginI::apply(int n)
+{
+ // Process control value changes.
+ //if(automation && _track && _track->automationType() != AUTO_OFF && _id != -1)
+ //{
+ // for(int i = 0; i < controlPorts; ++i)
+ // {
+ // if( controls[i].enCtrl && controls[i].en2Ctrl )
+ // controls[i].tmpVal = _track->pluginCtrlVal(genACnum(_id, i));
+ // }
+ //}
+
+ unsigned long ctls = controlPorts;
+ for(unsigned long k = 0; k < ctls; ++k)
+ {
+ // First, update the temporary value if needed...
+
+ #ifdef OSC_SUPPORT
+ // Process OSC gui input control fifo events.
+ // It is probably more important that these are processed so that they take precedence over all other
+ // events because OSC + DSSI/DSSI-VST are fussy about receiving feedback via these control ports, from GUI changes.
+
+ OscControlFifo* cfifo = _oscif.oscFifo(k);
+ //if(!cfifo)
+ // continue;
+
+ // If there are 'events' in the fifo, get exactly one 'event' per control per process cycle...
+ //if(!cfifo->isEmpty())
+ if(cfifo && !cfifo->isEmpty())
+ {
+ OscControlValue v = cfifo->get();
+
+ #ifdef PLUGIN_DEBUGIN
+ fprintf(stderr, "PluginI::apply OscControlFifo event input control number:%ld value:%f\n", k, v.value);
+ #endif
+
+ // Set the ladspa control port value.
+ controls[k].tmpVal = v.value;
+
+ // Need to update the automation value, otherwise it overwrites later with the last automation value.
+ if(_track && _id != -1)
+ {
+ // Since we are now in the audio thread context, there's no need to send a message,
+ // just modify directly.
+ //audio->msgSetPluginCtrlVal(this, genACnum(_id, k), controls[k].val);
+ // p3.3.43
+ //audio->msgSetPluginCtrlVal(_track, genACnum(_id, k), controls[k].val);
+ _track->setPluginCtrlVal(genACnum(_id, k), v.value);
+
+ // Record automation.
+ // NO! Take care of this immediately in the OSC control handler, because we don't want
+ // the silly delay associated with processing the fifo one-at-a-time here.
+
+ //AutomationType at = _track->automationType();
+ // TODO: Taken from our native gui control handlers.
+ // This may need modification or may cause problems -
+ // we don't have the luxury of access to the dssi gui controls !
+ //if(at == AUTO_WRITE || (audio->isPlaying() && at == AUTO_TOUCH))
+ // enableController(k, false);
+ //_track->recordAutomation(id, v.value);
+ }
+ }
+ else
+ #endif // OSC_SUPPORT
+ {
+ // Process automation control value.
+ if(automation && _track && _track->automationType() != AUTO_OFF && _id != -1)
+ {
+ if(controls[k].enCtrl && controls[k].en2Ctrl )
+ controls[k].tmpVal = _track->pluginCtrlVal(genACnum(_id, k));
+ }
+ }
+
+ // Now update the actual value from the temporary value...
+ controls[k].val = controls[k].tmpVal;
+ }
+
+ //for (int i = 0; i < controlPorts; ++i)
+ // controls[i].val = controls[i].tmpVal;
+
+ for (int i = 0; i < instances; ++i)
+ {
+ // p3.3.41
+ //fprintf(stderr, "PluginI::apply handle %d\n", i);
+ _plugin->apply(handle[i], n);
+ }
+ }
+
+//---------------------------------------------------------
+// oscConfigure
+//---------------------------------------------------------
+
+#ifdef OSC_SUPPORT
+int Plugin::oscConfigure(LADSPA_Handle handle, const char* key, const char* value)
+ {
+ #ifdef PLUGIN_DEBUGIN
+ printf("Plugin::oscConfigure effect plugin label:%s key:%s value:%s\n", plugin->Label, key, value);
+ #endif
+
+ #ifdef DSSI_SUPPORT
+ if(!dssi_descr || !dssi_descr->configure)
+ return 0;
+
+ if (!strncmp(key, DSSI_RESERVED_CONFIGURE_PREFIX,
+ strlen(DSSI_RESERVED_CONFIGURE_PREFIX))) {
+ fprintf(stderr, "Plugin::oscConfigure OSC: UI for plugin '%s' attempted to use reserved configure key \"%s\", ignoring\n",
+ plugin->Label, key);
+
+ return 0;
+ }
+
+ char* message = dssi_descr->configure(handle, key, value);
+ if (message) {
+ printf("Plugin::oscConfigure on configure '%s' '%s', plugin '%s' returned error '%s'\n",
+ //key, value, synti->name().toAscii().data(), message);
+ key, value, plugin->Label, 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();
+
+ #endif // DSSI_SUPPORT
+
+ return 0;
+}
+
+//---------------------------------------------------------
+// oscConfigure
+//---------------------------------------------------------
+
+int PluginI::oscConfigure(const char *key, const char *value)
+ {
+ if(!_plugin)
+ return 0;
+
+ // 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.
+
+ //const char *key = (const char *)&argv[0]->s;
+ //const char *value = (const char *)&argv[1]->s;
+
+ #ifdef PLUGIN_DEBUGIN
+ printf("PluginI::oscConfigure effect plugin name:%s label:%s key:%s value:%s\n", _name.latin1(), _label.latin1(), key, value);
+ #endif
+
+ #ifdef DSSI_SUPPORT
+ // FIXME: Don't think this is right, should probably do as example shows below.
+ for(int i = 0; i < instances; ++i)
+ _plugin->oscConfigure(handle[i], key, value);
+
+ // 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();
+ #endif // DSSI_SUPPORT
+
+ return 0;
+}
+
+//---------------------------------------------------------
+// oscUpdate
+//---------------------------------------------------------
+
+int PluginI::oscUpdate()
+{
+ #ifdef DSSI_SUPPORT
+ // Send project directory.
+ _oscif.oscSendConfigure(DSSI_PROJECT_DIRECTORY_KEY, museProject.latin1()); // song->projectPath()
+ #endif
+
+ /*
+ // Send current string configuration parameters.
+ StringParamMap& map = synti->stringParameters();
+ int i = 0;
+ for(ciStringParamMap r = map.begin(); r != map.end(); ++r)
+ {
+ _oscIF.oscSendConfigure(r->first.c_str(), r->second.c_str());
+ // Avoid overloading the GUI if there are lots and lots of params.
+ if((i+1) % 50 == 0)
+ usleep(300000);
+ ++i;
+ }
+
+ // Send current bank and program.
+ unsigned long bank, prog;
+ synti->currentProg(&prog, &bank, 0);
+ _oscIF.oscSendProgram(prog, bank);
+
+ // Send current control values.
+ unsigned long ports = synth->_controlInPorts;
+ for(unsigned long i = 0; i < ports; ++i)
+ {
+ unsigned long k = synth->pIdx(i);
+ _oscIF.oscSendControl(k, controls[i]);
+ // Avoid overloading the GUI if there are lots and lots of ports.
+ if((i+1) % 50 == 0)
+ usleep(300000);
+ }
+
+ */
+
+ return 0;
+}
+
+//---------------------------------------------------------
+// oscControl
+//---------------------------------------------------------
+
+int PluginI::oscControl(unsigned long port, float value)
+{
+ //int port = argv[0]->i;
+ //LADSPA_Data value = argv[1]->f;
+
+ #ifdef PLUGIN_DEBUGIN
+ printf("PluginI::oscControl received oscControl port:%ld val:%f\n", port, value);
+ #endif
+
+ //int controlPorts = synth->_controller;
+
+ //if(port >= controlPorts)
+ //if(port < 0 || port >= _plugin->rpIdx.size())
+ //{
+ //fprintf(stderr, "DssiSynthIF::oscControl: port number:%d is out of range of number of ports:%d\n", port, controlPorts);
+ // fprintf(stderr, "PluginI::oscControl: port number:%d is out of range of index list size:%d\n", port, _plugin->rpIdx.size());
+ // return 0;
+ //}
+
+ // Convert from DSSI port number to control input port index.
+ //unsigned long cport = _plugin->rpIdx[port];
+ unsigned long cport = _plugin->port2InCtrl(port);
+
+ if((int)cport == -1)
+ {
+ fprintf(stderr, "PluginI::oscControl: port number:%ld is not a control input\n", port);
+ return 0;
+ }
+
+ // (From DSSI module).
+ // p3.3.39 Set the DSSI control input port's value.
+ // Observations: With a native DSSI synth like LessTrivialSynth, the native GUI's controls do not change the sound at all
+ // ie. they don't update the DSSI control port values themselves.
+ // Hence in response to the call to this oscControl, sent by the native GUI, it is required to that here.
+/// controls[cport].val = value;
+ // DSSI-VST synths however, unlike DSSI synths, DO change their OWN sound in response to their gui controls.
+ // AND this function is called !
+ // Despite the descrepency we are STILL required to update the DSSI control port values here
+ // because dssi-vst is WAITING FOR A RESPONSE! (A CHANGE in the control port value).
+ // It will output something like "...4 events expected..." and count that number down as 4 actual control port value CHANGES
+ // are done here in response. Normally it says "...0 events expected..." when MusE is the one doing the DSSI control changes.
+ // TODO: May need FIFOs on each control(!) so that the control changes get sent one per process cycle!
+ // Observed countdown not actually going to zero upon string of changes.
+ // Try this ...
+ OscControlFifo* cfifo = _oscif.oscFifo(cport);
+ if(cfifo)
+ {
+ OscControlValue cv;
+ //cv.idx = cport;
+ cv.value = value;
+ if(cfifo->put(cv))
+ {
+ fprintf(stderr, "PluginI::oscControl: fifo overflow: in control number:%ld\n", cport);
+ }
+ }
+
+ // Record automation:
+ // Take care of this immediately, because we don't want the silly delay associated with
+ // processing the fifo one-at-a-time in the apply().
+ // NOTE: Ahh crap! We don't receive control events until the user RELEASES a control !
+ // So the events all arrive at once when the user releases a control.
+ // That makes this pretty useless... But what the heck...
+ if(_track && _id != -1)
+ {
+ int id = genACnum(_id, cport);
+ AutomationType at = _track->automationType();
+
+ // TODO: Taken from our native gui control handlers.
+ // This may need modification or may cause problems -
+ // we don't have the luxury of access to the dssi gui controls !
+ if(at == AUTO_WRITE || (audio->isPlaying() && at == AUTO_TOUCH))
+ enableController(cport, false);
+
+ _track->recordAutomation(id, value);
+ }
+
+ /*
+ const DSSI_Descriptor* dssi = synth->dssi;
+ const LADSPA_Descriptor* ld = dssi->LADSPA_Plugin;
+
+ ciMidiCtl2LadspaPort ip = synth->port2MidiCtlMap.find(cport);
+ if(ip != synth->port2MidiCtlMap.end())
+ {
+ // TODO: TODO: Update midi MusE's midi controller knobs, sliders, boxes etc with a call to the midi port's setHwCtrlState() etc.
+ // But first we need a ladspa2MidiValue() function! ...
+ //
+ //
+ //float val = ladspa2MidiValue(ld, i, ?, ?);
+
+ }
+ */
+
+#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;
+ }
+
+#endif // OSC_SUPPORT
+
+
+//---------------------------------------------------------
+// PluginDialog
+// select Plugin dialog
+//---------------------------------------------------------
+
+PluginDialog::PluginDialog(QWidget* parent, const char* name, bool modal)
+ : QDialog(parent, name, modal)
+ {
+ setCaption(tr("MusE: select plugin"));
+ Q3VBoxLayout* layout = new Q3VBoxLayout(this);
+
+ pList = new Q3ListView(this);
+ pList->setAllColumnsShowFocus(true);
+ pList->addColumn(tr("Lib"), 110);
+ pList->addColumn(tr("Label"), 110);
+ pList->addColumn(tr("Name"), 200);
+ pList->addColumn(tr("AI"), 30);
+ pList->addColumn(tr("AO"), 30);
+ pList->addColumn(tr("CI"), 30);
+ pList->addColumn(tr("CO"), 30);
+ pList->addColumn(tr("IP"), 30);
+ pList->addColumn(tr("id"), 40);
+ pList->addColumn(tr("Maker"), 110);
+ pList->addColumn(tr("Copyright"), 110);
+ pList->setColumnWidthMode(1, Q3ListView::Maximum);
+
+ layout->addWidget(pList);
+
+ //---------------------------------------------------
+ // Ok/Cancel Buttons
+ //---------------------------------------------------
+
+ Q3BoxLayout* w5 = new Q3HBoxLayout;
+ 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);
+
+ Q3ButtonGroup* plugSel = new Q3ButtonGroup(4, Qt::Horizontal, this, "Show plugs:");
+ plugSel->setTitle("Show plugs:");
+ QRadioButton* onlySM = new QRadioButton(plugSel, "Mono and Stereo");
+ onlySM->setText( "Mono and Stereo");
+ QRadioButton* onlyS = new QRadioButton(plugSel, "Stereo");
+ onlyS->setText( "Stereo");
+ QRadioButton* onlyM = new QRadioButton(plugSel, "Mono");
+ onlyM->setText( "Mono");
+ QRadioButton* allPlug = new QRadioButton(plugSel, "Show all");
+ allPlug->setText( "Show All");
+
+ plugSel->setRadioButtonExclusive(true);
+ plugSel->setButton(selectedPlugType);
+
+ QToolTip::add(plugSel, 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 parallel.<br>"
+ "Also beware that the 'all' alternative includes plugins that probably are not usable by MusE."));
+
+ onlySM->setCaption(tr("Stereo and Mono"));
+ onlyS->setCaption(tr("Stereo"));
+ onlyM->setCaption(tr("Mono"));
+ allPlug->setCaption(tr("All"));
+
+ w5->addSpacing(12);
+ w5->addWidget(plugSel);
+ w5->addSpacing(12);
+
+ QLabel *sortLabel = new QLabel( this, "Search in 'Label' and 'Name':" );
+ sortLabel->setText( "Search in 'Label' and 'Name':" );
+ w5->addWidget(sortLabel);
+ w5->addSpacing(2);
+
+ sortBox = new QComboBox( true, this, "sort" );
+ if (!sortItems.empty())
+ sortBox->insertStringList(sortItems);
+
+ sortBox->setMinimumSize( 100, 10);
+ w5->addWidget(sortBox);
+ w5->addStretch(-1);
+
+ if (sortBox->currentText().length() > 0)
+ fillPlugs(sortBox->currentText());
+ else
+ fillPlugs(selectedPlugType);
+
+
+ connect(pList, SIGNAL(doubleClicked(Q3ListViewItem*)), SLOT(accept()));
+ connect(cancelB, SIGNAL(clicked()), SLOT(reject()));
+ connect(okB, SIGNAL(clicked()), SLOT(accept()));
+ connect(plugSel, SIGNAL(clicked(int)), SLOT(fillPlugs(int)));
+ connect(sortBox, SIGNAL(textChanged(const QString&)),SLOT(fillPlugs(const QString&)));
+ sortBox->setFocus();
+ }
+
+//---------------------------------------------------------
+// value
+//---------------------------------------------------------
+
+Plugin* PluginDialog::value()
+ {
+ Q3ListViewItem* item = pList->selectedItem();
+ if (item)
+ return plugins.find(item->text(0), item->text(1));
+ return 0;
+ }
+
+//---------------------------------------------------------
+// accept
+//---------------------------------------------------------
+
+void PluginDialog::accept()
+ {
+ if (!sortBox->currentText().isEmpty()) {
+ if (sortItems.find(sortBox->currentText()) == sortItems.end())
+ sortItems.push_front(sortBox->currentText());
+ }
+ QDialog::accept();
+ }
+
+//---------------------------------------------------------
+// fillPlugs
+//---------------------------------------------------------
+
+void PluginDialog::fillPlugs(int nbr)
+{
+ pList->clear();
+ for(iPlugin i = plugins.begin(); i != plugins.end(); ++i)
+ {
+ /*
+ int ai = 0;
+ int ao = 0;
+ int ci = 0;
+ int co = 0;
+ for(unsigned long k = 0; k < i->ports(); ++k)
+ {
+ LADSPA_PortDescriptor pd = i->portd(k);
+ if(pd & LADSPA_PORT_CONTROL)
+ {
+ if(pd & LADSPA_PORT_INPUT)
+ ++ci;
+ else
+ if(pd & LADSPA_PORT_OUTPUT)
+ ++co;
+ }
+ else
+ if(pd & LADSPA_PORT_AUDIO)
+ {
+ if(pd & LADSPA_PORT_INPUT)
+ ++ai;
+ else
+ if(pd & LADSPA_PORT_OUTPUT)
+ ++ao;
+ }
+ }
+ */
+ int ai = i->inports();
+ int ao = i->outports();
+ int ci = i->controlInPorts();
+ int co = i->controlOutPorts();
+
+ bool addFlag = false;
+ switch(nbr)
+ {
+ case 0: // stereo & mono
+ if ((ai == 1 || ai == 2) && (ao == 1 || ao ==2))
+ {
+ addFlag = true;
+ }
+ break;
+ case 1: // stereo
+ if ((ai == 1 || ai == 2) && ao ==2)
+ {
+ addFlag = true;
+ }
+ break;
+ case 2: // mono
+ if (ai == 1 && ao == 1)
+ {
+ addFlag = true;
+ }
+ break;
+ case 3: // all
+ addFlag = true;
+ break;
+ }
+ if(addFlag)
+ {
+ Q3ListViewItem* item = new Q3ListViewItem(pList,
+ i->lib(),
+ i->label(),
+ i->name(),
+ QString().setNum(ai),
+ QString().setNum(ao),
+ QString().setNum(ci),
+ QString().setNum(co),
+ QString().setNum(i->inPlaceCapable())
+ );
+ item->setText(8, QString().setNum(i->id()));
+ item->setText(9, i->maker());
+ item->setText(10, i->copyright());
+ }
+ }
+ selectedPlugType = nbr;
+}
+
+void PluginDialog::fillPlugs(const QString &sortValue)
+{
+ pList->clear();
+ for(iPlugin i = plugins.begin(); i != plugins.end(); ++i)
+ {
+ /*
+ int ai = 0;
+ int ao = 0;
+ int ci = 0;
+ int co = 0;
+ for(unsigned long k = 0; k < i->ports(); ++k)
+ {
+ LADSPA_PortDescriptor pd = i->portd(k);
+ if(pd & LADSPA_PORT_CONTROL)
+ {
+ if(pd & LADSPA_PORT_INPUT)
+ ++ci;
+ else
+ if(pd & LADSPA_PORT_OUTPUT)
+ ++co;
+ }
+ else
+ if(pd & LADSPA_PORT_AUDIO)
+ {
+ if(pd & LADSPA_PORT_INPUT)
+ ++ai;
+ else
+ if(pd & LADSPA_PORT_OUTPUT)
+ ++ao;
+ }
+ }
+ */
+ int ai = i->inports();
+ int ao = i->outports();
+ int ci = i->controlInPorts();
+ int co = i->controlOutPorts();
+
+ bool addFlag = false;
+
+ if(i->label().lower().contains(sortValue.lower()))
+ addFlag = true;
+ else
+ if(i->name().lower().contains(sortValue.lower()))
+ addFlag = true;
+ if(addFlag)
+ {
+ Q3ListViewItem* item = new Q3ListViewItem(pList,
+ i->lib(),
+ i->label(),
+ i->name(),
+ QString().setNum(ai),
+ QString().setNum(ao),
+ QString().setNum(ci),
+ QString().setNum(co),
+ QString().setNum(i->inPlaceCapable())
+ );
+ item->setText(8, QString().setNum(i->id()));
+ item->setText(9, i->maker());
+ item->setText(10, i->copyright());
+ }
+ }
+}
+
+//---------------------------------------------------------
+// getPlugin
+//---------------------------------------------------------
+
+Plugin* PluginDialog::getPlugin(QWidget* parent)
+ {
+ PluginDialog* dialog = new PluginDialog(parent);
+ if (dialog->exec())
+ return dialog->value();
+ return 0;
+ }
+
+const char* presetOpenText = "<img source=\"fileopen\"> "
+ "Click this button to load a saved <em>preset</em>.";
+const char* presetSaveText = "Click this button to save curent parameter "
+ "settings as a <em>preset</em>. You will be prompted for a file name.";
+const char* presetBypassText = "Click this button to bypass effect unit";
+
+//---------------------------------------------------------
+// PluginGui
+//---------------------------------------------------------
+
+//PluginGui::PluginGui(PluginI* p)
+// p3.3.43
+PluginGui::PluginGui(PluginIBase* p)
+ : Q3MainWindow(0)
+ {
+ gw = 0;
+ params = 0;
+ plugin = p;
+ setCaption(plugin->name());
+
+ Q3ToolBar* tools = new Q3ToolBar(tr("File Buttons"), this);
+ QToolButton* fileOpen = new QToolButton(
+ QIcon(*openIconS), // ddskrjo
+ tr("Load Preset"),
+ QString::null, this, SLOT(load()),
+ tools, "load preset" );
+
+ QToolButton* fileSave = new QToolButton(
+ QIcon(*saveIconS), // ddskrjo
+ tr("Save Preset"),
+ QString::null,
+ this, SLOT(save()),
+ tools, "save preset");
+
+ Q3WhatsThis::whatsThisButton(tools);
+
+ onOff = new QToolButton(tools, "bypass");
+ onOff->setIconSet(*exitIconS);
+ onOff->setToggleButton(true);
+ onOff->setOn(plugin->on());
+ QToolTip::add(onOff, tr("bypass plugin"));
+ connect(onOff, SIGNAL(toggled(bool)), SLOT(bypassToggled(bool)));
+
+ Q3WhatsThis::add(fileOpen, tr(presetOpenText));
+ Q3WhatsThis::add(onOff, tr(presetBypassText));
+ Q3MimeSourceFactory::defaultFactory()->setPixmap(QString("fileopen"), *openIcon );
+ Q3WhatsThis::add(fileSave, tr(presetSaveText));
+
+ QString id;
+ //id.setNum(plugin->plugin()->id());
+ id.setNum(plugin->pluginID());
+ QString name(museGlobalShare + QString("/plugins/") + id + QString(".ui"));
+ QFile uifile(name);
+ if (uifile.exists()) {
+ //
+ // construct GUI from *.ui file
+ //
+#if 0 // ddskrjo
+ mw = QWidgetFactory::create(uifile.name(), 0, this);
+ setCentralWidget(mw);
+
+ const QObjectList* l = mw->children();
+ QObject *obj;
+
+ nobj = 0;
+ QObjectListIt it(*l);
+ while ((obj = it.current()) != 0) {
+ ++it;
+ const char* name = obj->name();
+ if (*name !='P')
+ continue;
+ int parameter = -1;
+ sscanf(name, "P%d", &parameter);
+ if (parameter == -1)
+ continue;
+ ++nobj;
+ }
+ it.toFirst();
+ gw = new GuiWidgets[nobj];
+ nobj = 0;
+ QSignalMapper* mapper = new QSignalMapper(this, "pluginGuiMapper");
+ connect(mapper, SIGNAL(mapped(int)), SLOT(guiParamChanged(int)));
+
+ QSignalMapper* mapperPressed = new QSignalMapper(this, "pluginGuiMapperPressed");
+ QSignalMapper* mapperReleased = new QSignalMapper(this, "pluginGuiMapperReleased");
+ connect(mapperPressed, SIGNAL(mapped(int)), SLOT(guiParamPressed(int)));
+ connect(mapperReleased, SIGNAL(mapped(int)), SLOT(guiParamReleased(int)));
+
+ while ((obj = it.current()) != 0) {
+ ++it;
+ const char* name = obj->name();
+ if (*name !='P')
+ continue;
+ int parameter = -1;
+ sscanf(name, "P%d", &parameter);
+ if (parameter == -1)
+ continue;
+
+ mapper->setMapping(obj, nobj);
+ mapperPressed->setMapping(obj, nobj);
+ mapperReleased->setMapping(obj, nobj);
+
+ gw[nobj].widget = (QWidget*)obj;
+ gw[nobj].param = parameter;
+ gw[nobj].type = -1;
+
+ if (strcmp(obj->className(), "Slider") == 0) {
+ gw[nobj].type = GuiWidgets::SLIDER;
+ ((Slider*)obj)->setId(nobj);
+ ((Slider*)obj)->setCursorHoming(true);
+ for(int i = 0; i < nobj; i++)
+ {
+ if(gw[i].type == GuiWidgets::DOUBLE_LABEL && gw[i].param == parameter)
+ ((DoubleLabel*)gw[i].widget)->setSlider((Slider*)obj);
+ }
+ connect(obj, SIGNAL(sliderMoved(double,int)), mapper, SLOT(map()));
+ connect(obj, SIGNAL(sliderPressed(int)), SLOT(guiSliderPressed(int)));
+ connect(obj, SIGNAL(sliderReleased(int)), SLOT(guiSliderReleased(int)));
+ connect(obj, SIGNAL(sliderRightClicked(const QPoint &, int)), SLOT(guiSliderRightClicked(const QPoint &, int)));
+ }
+ else if (strcmp(obj->className(), "DoubleLabel") == 0) {
+ gw[nobj].type = GuiWidgets::DOUBLE_LABEL;
+ ((DoubleLabel*)obj)->setId(nobj);
+ for(int i = 0; i < nobj; i++)
+ {
+ if(gw[i].type == GuiWidgets::SLIDER && gw[i].param == parameter)
+ {
+ ((DoubleLabel*)obj)->setSlider((Slider*)gw[i].widget);
+ break;
+ }
+ }
+ connect(obj, SIGNAL(valueChanged(double,int)), mapper, SLOT(map()));
+ }
+ else if (strcmp(obj->className(), "QCheckBox") == 0) {
+ gw[nobj].type = GuiWidgets::QCHECKBOX;
+ connect(obj, SIGNAL(toggled(bool)), mapper, SLOT(map()));
+ connect(obj, SIGNAL(pressed()), mapperPressed, SLOT(map()));
+ connect(obj, SIGNAL(released()), mapperReleased, SLOT(map()));
+ }
+ else if (strcmp(obj->className(), "QComboBox") == 0) {
+ gw[nobj].type = GuiWidgets::QCOMBOBOX;
+ connect(obj, SIGNAL(activated(int)), mapper, SLOT(map()));
+ }
+ else {
+ printf("unknown widget class %s\n", obj->className());
+ continue;
+ }
+ ++nobj;
+ }
+ updateValues(); // otherwise the GUI won't have valid data
+#endif
+ }
+ else {
+ //mw = new QWidget(this);
+ //setCentralWidget(mw);
+ // p3.4.43
+ view = new Q3ScrollView(this);
+ setCentralWidget(view);
+ mw = new QWidget(view);
+ view->setResizePolicy(Q3ScrollView::AutoOneFit);
+ //view->setVScrollBarMode(QScrollView::AlwaysOff);
+ view->addChild(mw);
+
+ Q3GridLayout* grid = new Q3GridLayout(mw);
+ grid->setSpacing(2);
+
+ int n = plugin->parameters();
+ params = new GuiParam[n];
+
+ // Changed p3.3.43
+ //resize(280, n*20+30);
+ //int nh = n*20+40;
+ //if(nh > 760)
+ // nh = 760;
+ //resize(280, nh);
+
+ //int style = Slider::BgTrough | Slider::BgSlot;
+ QFontMetrics fm = fontMetrics();
+ int h = fm.height() + 4;
+
+ for (int i = 0; i < n; ++i) {
+ QLabel* label = 0;
+ LADSPA_PortRangeHint range = plugin->range(i);
+ double lower = 0.0; // default values
+ double upper = 1.0;
+ double dlower = lower;
+ double dupper = upper;
+ double val = plugin->param(i);
+ double dval = val;
+ params[i].hint = range.HintDescriptor;
+
+ if (LADSPA_IS_HINT_BOUNDED_BELOW(range.HintDescriptor)) {
+ dlower = lower = range.LowerBound;
+ }
+ if (LADSPA_IS_HINT_BOUNDED_ABOVE(range.HintDescriptor)) {
+ dupper = upper = range.UpperBound;
+ }
+ if (LADSPA_IS_HINT_SAMPLE_RATE(range.HintDescriptor)) {
+ lower *= sampleRate;
+ upper *= sampleRate;
+ dlower = lower;
+ dupper = upper;
+ }
+ if (LADSPA_IS_HINT_LOGARITHMIC(range.HintDescriptor)) {
+ if (lower == 0.0)
+ lower = 0.001;
+ dlower = fast_log10(lower)*20.0;
+ dupper = fast_log10(upper)*20.0;
+ dval = fast_log10(val) * 20.0;
+ }
+ if (LADSPA_IS_HINT_TOGGLED(range.HintDescriptor)) {
+ params[i].type = GuiParam::GUI_SWITCH;
+ CheckBox* cb = new CheckBox(mw, i, "param");
+ cb->setId(i);
+ cb->setText(QString(plugin->paramName(i)));
+ cb->setChecked(plugin->param(i) != 0.0);
+ cb->setFixedHeight(h);
+ params[i].actuator = cb;
+ }
+ else {
+ label = new QLabel(QString(plugin->paramName(i)), mw);
+ params[i].type = GuiParam::GUI_SLIDER;
+ params[i].label = new DoubleLabel(val, lower, upper, mw);
+ params[i].label->setFrame(true);
+ params[i].label->setPrecision(2);
+ params[i].label->setId(i);
+
+ //params[i].label->setMargin(2);
+ //params[i].label->setFixedHeight(h);
+
+ Slider* s = new Slider(mw, "param", Qt::Horizontal,
+ Slider::None); //, style);
+
+ s->setCursorHoming(true);
+ s->setId(i);
+ //s->setFixedHeight(h);
+ s->setRange(dlower, dupper);
+ if(LADSPA_IS_HINT_INTEGER(range.HintDescriptor))
+ s->setStep(1.0);
+ s->setValue(dval);
+ params[i].actuator = s;
+ params[i].label->setSlider((Slider*)params[i].actuator);
+ }
+ //params[i].actuator->setSizePolicy(QSizePolicy(QSizePolicy::Minimum, QSizePolicy::Maximum));
+ params[i].actuator->setSizePolicy(QSizePolicy(QSizePolicy::Minimum, QSizePolicy::Fixed));
+ if (params[i].type == GuiParam::GUI_SLIDER) {
+ //label->setFixedHeight(20);
+ //label->setSizePolicy(QSizePolicy(QSizePolicy::Minimum, QSizePolicy::Maximum));
+ label->setSizePolicy(QSizePolicy(QSizePolicy::Minimum, QSizePolicy::Fixed));
+ //params[i].label->setSizePolicy(QSizePolicy(QSizePolicy::Minimum, QSizePolicy::Maximum));
+ params[i].label->setSizePolicy(QSizePolicy(QSizePolicy::Minimum, QSizePolicy::Fixed));
+ grid->addWidget(label, i, 0);
+ grid->addWidget(params[i].label, i, 1);
+ grid->addWidget(params[i].actuator, i, 2);
+ }
+ else if (params[i].type == GuiParam::GUI_SWITCH) {
+ grid->addMultiCellWidget(params[i].actuator, i, i, 0, 2);
+ }
+ if (params[i].type == GuiParam::GUI_SLIDER) {
+ connect(params[i].actuator, SIGNAL(sliderMoved(double,int)), SLOT(sliderChanged(double,int)));
+ connect(params[i].label, SIGNAL(valueChanged(double,int)), SLOT(labelChanged(double,int)));
+ connect(params[i].actuator, SIGNAL(sliderPressed(int)), SLOT(ctrlPressed(int)));
+ connect(params[i].actuator, SIGNAL(sliderReleased(int)), SLOT(ctrlReleased(int)));
+ connect(params[i].actuator, SIGNAL(sliderRightClicked(const QPoint &, int)), SLOT(ctrlRightClicked(const QPoint &, int)));
+ }
+ else if (params[i].type == GuiParam::GUI_SWITCH){
+ connect(params[i].actuator, SIGNAL(checkboxPressed(int)), SLOT(ctrlPressed(int)));
+ connect(params[i].actuator, SIGNAL(checkboxReleased(int)), SLOT(ctrlReleased(int)));
+ connect(params[i].actuator, SIGNAL(checkboxRightClicked(const QPoint &, int)), SLOT(ctrlRightClicked(const QPoint &, int)));
+ }
+ }
+ // p3.3.43
+ resize(280, height());
+
+ grid->setColStretch(2, 10);
+ }
+ connect(heartBeatTimer, SIGNAL(timeout()), SLOT(heartBeat()));
+ }
+
+//---------------------------------------------------------
+// PluginGui
+//---------------------------------------------------------
+
+PluginGui::~PluginGui()
+ {
+ if (gw)
+ delete[] gw;
+ if (params)
+ delete[] params;
+ }
+
+//---------------------------------------------------------
+// heartBeat
+//---------------------------------------------------------
+
+void PluginGui::heartBeat()
+{
+ updateControls();
+}
+
+//---------------------------------------------------------
+// ctrlPressed
+//---------------------------------------------------------
+
+void PluginGui::ctrlPressed(int param)
+{
+ AutomationType at = AUTO_OFF;
+ AudioTrack* track = plugin->track();
+ if(track)
+ at = track->automationType();
+
+ if(at != AUTO_OFF)
+ plugin->enableController(param, false);
+
+ int id = plugin->id();
+
+ if(id == -1)
+ return;
+
+ id = genACnum(id, param);
+
+ if(params[param].type == GuiParam::GUI_SLIDER)
+ {
+ double val = ((Slider*)params[param].actuator)->value();
+ if (LADSPA_IS_HINT_LOGARITHMIC(params[param].hint))
+ val = pow(10.0, val/20.0);
+ else if (LADSPA_IS_HINT_INTEGER(params[param].hint))
+ val = rint(val);
+ plugin->setParam(param, val);
+ ((DoubleLabel*)params[param].label)->setValue(val);
+
+ // p3.3.43
+ //audio->msgSetPluginCtrlVal(((PluginI*)plugin), id, val);
+
+ if(track)
+ {
+ // p3.3.43
+ audio->msgSetPluginCtrlVal(track, id, val);
+
+ track->startAutoRecord(id, val);
+ }
+ }
+ else if(params[param].type == GuiParam::GUI_SWITCH)
+ {
+ double val = (double)((CheckBox*)params[param].actuator)->isChecked();
+ plugin->setParam(param, val);
+
+ // p3.3.43
+ //audio->msgSetPluginCtrlVal(((PluginI*)plugin), id, val);
+
+ if(track)
+ {
+ // p3.3.43
+ audio->msgSetPluginCtrlVal(track, id, val);
+
+ track->startAutoRecord(id, val);
+ }
+ }
+}
+
+//---------------------------------------------------------
+// ctrlReleased
+//---------------------------------------------------------
+
+void PluginGui::ctrlReleased(int param)
+{
+ AutomationType at = AUTO_OFF;
+ AudioTrack* track = plugin->track();
+ if(track)
+ at = track->automationType();
+
+ // Special for switch - don't enable controller until transport stopped.
+ if(at != AUTO_WRITE && ((params[param].type != GuiParam::GUI_SWITCH
+ || !audio->isPlaying()
+ || at != AUTO_TOUCH) || (!audio->isPlaying() && at == AUTO_TOUCH)) )
+ plugin->enableController(param, true);
+
+ int id = plugin->id();
+ if(!track || id == -1)
+ return;
+ id = genACnum(id, param);
+
+ if(params[param].type == GuiParam::GUI_SLIDER)
+ {
+ double val = ((Slider*)params[param].actuator)->value();
+ if (LADSPA_IS_HINT_LOGARITHMIC(params[param].hint))
+ val = pow(10.0, val/20.0);
+ else if (LADSPA_IS_HINT_INTEGER(params[param].hint))
+ val = rint(val);
+ track->stopAutoRecord(id, val);
+ }
+ //else if(params[param].type == GuiParam::GUI_SWITCH)
+ //{
+ //double val = (double)((CheckBox*)params[param].actuator)->isChecked();
+ // No concept of 'untouching' a checkbox. Remain 'touched' until stop.
+ //plugin->track()->stopAutoRecord(genACnum(plugin->id(), param), val);
+ //}
+}
+
+//---------------------------------------------------------
+// ctrlRightClicked
+//---------------------------------------------------------
+
+void PluginGui::ctrlRightClicked(const QPoint &p, int param)
+{
+ int id = plugin->id();
+ if(id != -1)
+ //song->execAutomationCtlPopup((AudioTrack*)plugin->track(), p, genACnum(id, param));
+ song->execAutomationCtlPopup(plugin->track(), p, genACnum(id, param));
+}
+
+//---------------------------------------------------------
+// sliderChanged
+//---------------------------------------------------------
+
+void PluginGui::sliderChanged(double val, int param)
+{
+ AutomationType at = AUTO_OFF;
+ AudioTrack* track = plugin->track();
+ if(track)
+ at = track->automationType();
+
+ if(at == AUTO_WRITE || (audio->isPlaying() && at == AUTO_TOUCH))
+ plugin->enableController(param, false);
+
+ if (LADSPA_IS_HINT_LOGARITHMIC(params[param].hint))
+ val = pow(10.0, val/20.0);
+ else if (LADSPA_IS_HINT_INTEGER(params[param].hint))
+ val = rint(val);
+ if (plugin->param(param) != val) {
+ plugin->setParam(param, val);
+ ((DoubleLabel*)params[param].label)->setValue(val);
+ }
+
+ int id = plugin->id();
+ if(id == -1)
+ return;
+ id = genACnum(id, param);
+
+ // p3.3.43
+ //audio->msgSetPluginCtrlVal(((PluginI*)plugin), id, val);
+
+ if(track)
+ {
+ // p3.3.43
+ audio->msgSetPluginCtrlVal(track, id, val);
+
+ track->recordAutomation(id, val);
+ }
+}
+
+//---------------------------------------------------------
+// labelChanged
+//---------------------------------------------------------
+
+void PluginGui::labelChanged(double val, int param)
+{
+ AutomationType at = AUTO_OFF;
+ AudioTrack* track = plugin->track();
+ if(track)
+ at = track->automationType();
+
+ if(at == AUTO_WRITE || (audio->isPlaying() && at == AUTO_TOUCH))
+ plugin->enableController(param, false);
+
+ double dval = val;
+ if (LADSPA_IS_HINT_LOGARITHMIC(params[param].hint))
+ dval = fast_log10(val) * 20.0;
+ else if (LADSPA_IS_HINT_INTEGER(params[param].hint))
+ dval = rint(val);
+ if (plugin->param(param) != val) {
+ plugin->setParam(param, val);
+ ((Slider*)params[param].actuator)->setValue(dval);
+ }
+
+ int id = plugin->id();
+ if(id == -1)
+ return;
+
+ id = genACnum(id, param);
+
+ // p3.3.43
+ //audio->msgSetPluginCtrlVal(((PluginI*)plugin), id, val);
+
+ if(track)
+ {
+ // p3.3.43
+ audio->msgSetPluginCtrlVal(track, id, val);
+
+ track->startAutoRecord(id, val);
+ }
+}
+
+//---------------------------------------------------------
+// load
+//---------------------------------------------------------
+
+void PluginGui::load()
+ {
+ QString s("presets/plugins/");
+ //s += plugin->plugin()->label();
+ s += plugin->pluginLabel();
+ s += "/";
+
+ QString fn = getOpenFileName(s, preset_file_pattern,
+ this, tr("MusE: load preset"), 0);
+ if (fn.isEmpty())
+ return;
+ bool popenFlag;
+ FILE* f = fileOpen(this, fn, QString(".pre"), "r", popenFlag, true);
+ if (f == 0)
+ return;
+
+ 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 == "plugin") {
+
+ if(plugin->readConfiguration(xml, true))
+ {
+ QMessageBox::critical(this, QString("MusE"),
+ tr("Error reading preset. Might not be right type for this plugin"));
+ goto ende;
+ }
+
+ mode = 0;
+ }
+ else
+ xml.unknown("PluginGui");
+ break;
+ case Xml::Attribut:
+ break;
+ case Xml::TagEnd:
+ if (!mode && tag == "muse")
+ {
+ plugin->updateControllers();
+ goto ende;
+ }
+ default:
+ break;
+ }
+ }
+ende:
+ if (popenFlag)
+ pclose(f);
+ else
+ fclose(f);
+ }
+
+//---------------------------------------------------------
+// save
+//---------------------------------------------------------
+
+void PluginGui::save()
+ {
+ QString s("presets/plugins/");
+ //s += plugin->plugin()->label();
+ s += plugin->pluginLabel();
+ s += "/";
+
+ //QString fn = getSaveFileName(s, preset_file_pattern, this,
+ QString fn = getSaveFileName(s, preset_file_save_pattern, this,
+ tr("MusE: save preset"));
+ if (fn.isEmpty())
+ return;
+ bool popenFlag;
+ FILE* f = fileOpen(this, fn, QString(".pre"), "w", popenFlag, false, true);
+ if (f == 0)
+ return;
+ Xml xml(f);
+ xml.header();
+ xml.tag(0, "muse version=\"1.0\"");
+ plugin->writeConfiguration(1, xml);
+ xml.tag(1, "/muse");
+
+ if (popenFlag)
+ pclose(f);
+ else
+ fclose(f);
+ }
+
+//---------------------------------------------------------
+// bypassToggled
+//---------------------------------------------------------
+
+void PluginGui::bypassToggled(bool val)
+ {
+ plugin->setOn(val);
+ song->update(SC_ROUTE);
+ }
+
+//---------------------------------------------------------
+// songChanged
+//---------------------------------------------------------
+
+void PluginGui::setOn(bool val)
+ {
+ onOff->blockSignals(true);
+ onOff->setOn(val);
+ onOff->blockSignals(false);
+ }
+
+//---------------------------------------------------------
+// updateValues
+//---------------------------------------------------------
+
+void PluginGui::updateValues()
+ {
+ if (params) {
+ for (int i = 0; i < plugin->parameters(); ++i) {
+ GuiParam* gp = &params[i];
+ if (gp->type == GuiParam::GUI_SLIDER) {
+ double lv = plugin->param(i);
+ double sv = lv;
+ if (LADSPA_IS_HINT_LOGARITHMIC(params[i].hint))
+ sv = fast_log10(lv) * 20.0;
+ else if (LADSPA_IS_HINT_INTEGER(params[i].hint))
+ {
+ sv = rint(lv);
+ lv = sv;
+ }
+ gp->label->setValue(lv);
+ ((Slider*)(gp->actuator))->setValue(sv);
+ }
+ else if (gp->type == GuiParam::GUI_SWITCH) {
+ ((CheckBox*)(gp->actuator))->setChecked(int(plugin->param(i)));
+ }
+ }
+ }
+ else if (gw) {
+ for (int i = 0; i < nobj; ++i) {
+ QWidget* widget = gw[i].widget;
+ int type = gw[i].type;
+ int param = gw[i].param;
+ double val = plugin->param(param);
+ switch(type) {
+ case GuiWidgets::SLIDER:
+ ((Slider*)widget)->setValue(val);
+ break;
+ case GuiWidgets::DOUBLE_LABEL:
+ ((DoubleLabel*)widget)->setValue(val);
+ break;
+ case GuiWidgets::QCHECKBOX:
+ ((QCheckBox*)widget)->setChecked(int(val));
+ break;
+ case GuiWidgets::QCOMBOBOX:
+ ((QComboBox*)widget)->setCurrentItem(int(val));
+ break;
+ }
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// updateControls
+//---------------------------------------------------------
+
+void PluginGui::updateControls()
+ {
+ if(!automation || !plugin->track() || plugin->id() == -1)
+ return;
+ AutomationType at = plugin->track()->automationType();
+ if(at == AUTO_OFF)
+ return;
+ if (params) {
+ for (int i = 0; i < plugin->parameters(); ++i) {
+ GuiParam* gp = &params[i];
+ if (gp->type == GuiParam::GUI_SLIDER) {
+ if( plugin->controllerEnabled(i) && plugin->controllerEnabled2(i) )
+ {
+ double lv = plugin->track()->pluginCtrlVal(genACnum(plugin->id(), i));
+ double sv = lv;
+ if (LADSPA_IS_HINT_LOGARITHMIC(params[i].hint))
+ sv = fast_log10(lv) * 20.0;
+ else
+ if (LADSPA_IS_HINT_INTEGER(params[i].hint))
+ {
+ sv = rint(lv);
+ lv = sv;
+ }
+ if(((Slider*)(gp->actuator))->value() != sv)
+ {
+ //printf("PluginGui::updateControls slider\n");
+
+ gp->label->blockSignals(true);
+ ((Slider*)(gp->actuator))->blockSignals(true);
+ ((Slider*)(gp->actuator))->setValue(sv);
+ gp->label->setValue(lv);
+ ((Slider*)(gp->actuator))->blockSignals(false);
+ gp->label->blockSignals(false);
+ }
+ }
+
+ }
+ else if (gp->type == GuiParam::GUI_SWITCH) {
+ if( plugin->controllerEnabled(i) && plugin->controllerEnabled2(i) )
+ {
+ bool v = (int)plugin->track()->pluginCtrlVal(genACnum(plugin->id(), i));
+ if(((CheckBox*)(gp->actuator))->isChecked() != v)
+ {
+ //printf("PluginGui::updateControls switch\n");
+
+ ((CheckBox*)(gp->actuator))->blockSignals(true);
+ ((CheckBox*)(gp->actuator))->setChecked(v);
+ ((CheckBox*)(gp->actuator))->blockSignals(false);
+ }
+ }
+ }
+ }
+ }
+ else if (gw) {
+ for (int i = 0; i < nobj; ++i) {
+ QWidget* widget = gw[i].widget;
+ int type = gw[i].type;
+ int param = gw[i].param;
+ switch(type) {
+ case GuiWidgets::SLIDER:
+ if( plugin->controllerEnabled(param) && plugin->controllerEnabled2(param) )
+ {
+ double v = plugin->track()->pluginCtrlVal(genACnum(plugin->id(), param));
+ if(((Slider*)widget)->value() != v)
+ {
+ //printf("PluginGui::updateControls slider\n");
+
+ ((Slider*)widget)->blockSignals(true);
+ ((Slider*)widget)->setValue(v);
+ ((Slider*)widget)->blockSignals(false);
+ }
+ }
+ break;
+ case GuiWidgets::DOUBLE_LABEL:
+ if( plugin->controllerEnabled(param) && plugin->controllerEnabled2(param) )
+ {
+ double v = plugin->track()->pluginCtrlVal(genACnum(plugin->id(), param));
+ if(((DoubleLabel*)widget)->value() != v)
+ {
+ //printf("PluginGui::updateControls label\n");
+
+ ((DoubleLabel*)widget)->blockSignals(true);
+ ((DoubleLabel*)widget)->setValue(v);
+ ((DoubleLabel*)widget)->blockSignals(false);
+ }
+ }
+ break;
+ case GuiWidgets::QCHECKBOX:
+ if( plugin->controllerEnabled(param) && plugin->controllerEnabled2(param) )
+ {
+ bool b = (bool) plugin->track()->pluginCtrlVal(genACnum(plugin->id(), param));
+ if(((QCheckBox*)widget)->isChecked() != b)
+ {
+ //printf("PluginGui::updateControls checkbox\n");
+
+ ((QCheckBox*)widget)->blockSignals(true);
+ ((QCheckBox*)widget)->setChecked(b);
+ ((QCheckBox*)widget)->blockSignals(false);
+ }
+ }
+ break;
+ case GuiWidgets::QCOMBOBOX:
+ if( plugin->controllerEnabled(param) && plugin->controllerEnabled2(param) )
+ {
+ int n = (int) plugin->track()->pluginCtrlVal(genACnum(plugin->id(), param));
+ if(((QComboBox*)widget)->currentItem() != n)
+ {
+ //printf("PluginGui::updateControls combobox\n");
+
+ ((QComboBox*)widget)->blockSignals(true);
+ ((QComboBox*)widget)->setCurrentItem(n);
+ ((QComboBox*)widget)->blockSignals(false);
+ }
+ }
+ break;
+ }
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// guiParamChanged
+//---------------------------------------------------------
+
+void PluginGui::guiParamChanged(int idx)
+{
+ QWidget* w = gw[idx].widget;
+ int param = gw[idx].param;
+ int type = gw[idx].type;
+
+ AutomationType at = AUTO_OFF;
+ AudioTrack* track = plugin->track();
+ if(track)
+ at = track->automationType();
+
+ if(at == AUTO_WRITE || (audio->isPlaying() && at == AUTO_TOUCH))
+ plugin->enableController(param, false);
+
+ double val = 0.0;
+ switch(type) {
+ case GuiWidgets::SLIDER:
+ val = ((Slider*)w)->value();
+ break;
+ case GuiWidgets::DOUBLE_LABEL:
+ val = ((DoubleLabel*)w)->value();
+ break;
+ case GuiWidgets::QCHECKBOX:
+ val = double(((QCheckBox*)w)->isChecked());
+ break;
+ case GuiWidgets::QCOMBOBOX:
+ val = double(((QComboBox*)w)->currentItem());
+ break;
+ }
+
+ for (int i = 0; i < nobj; ++i) {
+ QWidget* widget = gw[i].widget;
+ if (widget == w || param != gw[i].param)
+ continue;
+ int type = gw[i].type;
+ switch(type) {
+ case GuiWidgets::SLIDER:
+ ((Slider*)widget)->setValue(val);
+ break;
+ case GuiWidgets::DOUBLE_LABEL:
+ ((DoubleLabel*)widget)->setValue(val);
+ break;
+ case GuiWidgets::QCHECKBOX:
+ ((QCheckBox*)widget)->setChecked(int(val));
+ break;
+ case GuiWidgets::QCOMBOBOX:
+ ((QComboBox*)widget)->setCurrentItem(int(val));
+ break;
+ }
+ }
+
+ int id = plugin->id();
+ if(track && id != -1)
+ {
+ id = genACnum(id, param);
+
+ // p3.3.43
+ //audio->msgSetPluginCtrlVal(((PluginI*)plugin), id, val);
+
+ //if(track)
+ //{
+ // p3.3.43
+ audio->msgSetPluginCtrlVal(track, id, val);
+
+ switch(type)
+ {
+ case GuiWidgets::DOUBLE_LABEL:
+ case GuiWidgets::QCHECKBOX:
+ track->startAutoRecord(id, val);
+ break;
+ default:
+ track->recordAutomation(id, val);
+ break;
+ }
+ //}
+ }
+ plugin->setParam(param, val);
+}
+
+//---------------------------------------------------------
+// guiParamPressed
+//---------------------------------------------------------
+
+void PluginGui::guiParamPressed(int idx)
+ {
+ int param = gw[idx].param;
+
+ AutomationType at = AUTO_OFF;
+ AudioTrack* track = plugin->track();
+ if(track)
+ at = track->automationType();
+
+ if(at != AUTO_OFF)
+ plugin->enableController(param, false);
+
+ int id = plugin->id();
+ if(!track || id == -1)
+ return;
+
+ id = genACnum(id, param);
+
+ // NOTE: For this to be of any use, the freeverb gui 2142.ui
+ // would have to be used, and changed to use CheckBox and ComboBox
+ // instead of QCheckBox and QComboBox, since both of those would
+ // need customization (Ex. QCheckBox doesn't check on click).
+ /*
+ switch(type) {
+ case GuiWidgets::QCHECKBOX:
+ double val = (double)((CheckBox*)w)->isChecked();
+ track->startAutoRecord(id, val);
+ break;
+ case GuiWidgets::QCOMBOBOX:
+ double val = (double)((ComboBox*)w)->currentItem();
+ track->startAutoRecord(id, val);
+ break;
+ }
+ */
+ }
+
+//---------------------------------------------------------
+// guiParamReleased
+//---------------------------------------------------------
+
+void PluginGui::guiParamReleased(int idx)
+ {
+ int param = gw[idx].param;
+ int type = gw[idx].type;
+
+ AutomationType at = AUTO_OFF;
+ AudioTrack* track = plugin->track();
+ if(track)
+ at = track->automationType();
+
+ // Special for switch - don't enable controller until transport stopped.
+ if(at != AUTO_WRITE && (type != GuiWidgets::QCHECKBOX
+ || !audio->isPlaying()
+ || at != AUTO_TOUCH))
+ plugin->enableController(param, true);
+
+ int id = plugin->id();
+
+ if(!track || id == -1)
+ return;
+
+ id = genACnum(id, param);
+
+ // NOTE: For this to be of any use, the freeverb gui 2142.ui
+ // would have to be used, and changed to use CheckBox and ComboBox
+ // instead of QCheckBox and QComboBox, since both of those would
+ // need customization (Ex. QCheckBox doesn't check on click).
+ /*
+ switch(type) {
+ case GuiWidgets::QCHECKBOX:
+ double val = (double)((CheckBox*)w)->isChecked();
+ track->stopAutoRecord(id, param);
+ break;
+ case GuiWidgets::QCOMBOBOX:
+ double val = (double)((ComboBox*)w)->currentItem();
+ track->stopAutoRecord(id, param);
+ break;
+ }
+ */
+ }
+
+//---------------------------------------------------------
+// guiSliderPressed
+//---------------------------------------------------------
+
+void PluginGui::guiSliderPressed(int idx)
+ {
+ int param = gw[idx].param;
+ QWidget *w = gw[idx].widget;
+
+ AutomationType at = AUTO_OFF;
+ AudioTrack* track = plugin->track();
+ if(track)
+ at = track->automationType();
+
+ int id = plugin->id();
+
+ if(at == AUTO_WRITE || (at == AUTO_READ || at == AUTO_TOUCH))
+ plugin->enableController(param, false);
+
+ if(!track || id == -1)
+ return;
+
+ id = genACnum(id, param);
+
+ double val = ((Slider*)w)->value();
+ plugin->setParam(param, val);
+
+ //audio->msgSetPluginCtrlVal(((PluginI*)plugin), id, val);
+ // p3.3.43
+ audio->msgSetPluginCtrlVal(track, id, val);
+
+ track->startAutoRecord(id, val);
+
+ // Needed so that paging a slider updates a label or other buddy control.
+ for (int i = 0; i < nobj; ++i) {
+ QWidget* widget = gw[i].widget;
+ if (widget == w || param != gw[i].param)
+ continue;
+ int type = gw[i].type;
+ switch(type) {
+ case GuiWidgets::SLIDER:
+ ((Slider*)widget)->setValue(val);
+ break;
+ case GuiWidgets::DOUBLE_LABEL:
+ ((DoubleLabel*)widget)->setValue(val);
+ break;
+ case GuiWidgets::QCHECKBOX:
+ ((QCheckBox*)widget)->setChecked(int(val));
+ break;
+ case GuiWidgets::QCOMBOBOX:
+ ((QComboBox*)widget)->setCurrentItem(int(val));
+ break;
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// guiSliderReleased
+//---------------------------------------------------------
+
+void PluginGui::guiSliderReleased(int idx)
+ {
+ int param = gw[idx].param;
+ QWidget *w = gw[idx].widget;
+
+ AutomationType at = AUTO_OFF;
+ AudioTrack* track = plugin->track();
+ if(track)
+ at = track->automationType();
+
+ if(at != AUTO_WRITE || (!audio->isPlaying() && at == AUTO_TOUCH))
+ plugin->enableController(param, true);
+
+ int id = plugin->id();
+
+ if(!track || id == -1)
+ return;
+
+ id = genACnum(id, param);
+
+ double val = ((Slider*)w)->value();
+ track->stopAutoRecord(id, val);
+ }
+
+//---------------------------------------------------------
+// guiSliderRightClicked
+//---------------------------------------------------------
+
+void PluginGui::guiSliderRightClicked(const QPoint &p, int idx)
+{
+ int param = gw[idx].param;
+ int id = plugin->id();
+ if(id != -1)
+ //song->execAutomationCtlPopup((AudioTrack*)plugin->track(), p, genACnum(id, param));
+ song->execAutomationCtlPopup(plugin->track(), p, genACnum(id, param));
+}
+
+//---------------------------------------------------------
+// PluginWidgetFactory
+//---------------------------------------------------------
+#if 0 // ddskrjo
+QWidget* PluginWidgetFactory::createWidget(const QString& className, QWidget* parent, const char* name) const
+{
+ if(className == "DoubleLabel")
+ return new DoubleLabel(parent, name);
+ if(className == "Slider")
+ return new Slider(parent, name);
+ return 0;
+};
+#endif
diff --git a/muse2/muse/plugin.h b/muse2/muse/plugin.h
new file mode 100644
index 00000000..70573796
--- /dev/null
+++ b/muse2/muse/plugin.h
@@ -0,0 +1,536 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: plugin.h,v 1.9.2.13 2009/12/06 01:25:21 terminator356 Exp $
+//
+// (C) Copyright 2000 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __PLUGIN_H__
+#define __PLUGIN_H__
+
+#include <list>
+#include <vector>
+
+#include <q3mainwindow.h>
+#include <qstring.h>
+#include <qwidget.h>
+//#include <qwidgetfactory.h>
+#include <qdialog.h>
+#include <qfileinfo.h>
+#include <qcombobox.h>
+
+#include "ladspa.h"
+#include "globals.h"
+#include "globaldefs.h"
+#include "ctrl.h"
+
+//#include "stringparam.h"
+
+#include "config.h"
+
+#ifdef OSC_SUPPORT
+//class OscIF;
+#include "osc.h"
+#endif
+
+#ifdef DSSI_SUPPORT
+#include <dssi.h>
+#endif
+
+class Xml;
+class QWidget;
+// class QLabel;
+class Slider;
+class Q3ListView;
+class Q3ScrollView;
+class QToolButton;
+class DoubleLabel;
+class AudioTrack;
+class MidiController;
+
+//---------------------------------------------------------
+// PluginWidgetFactory
+//---------------------------------------------------------
+#if 0
+class PluginWidgetFactory : public QWidgetFactory
+{
+ public:
+ virtual QWidget* createWidget(const QString& className, QWidget* parent, const char* name) const;
+};
+#endif
+//---------------------------------------------------------
+// Plugin
+//---------------------------------------------------------
+
+class Plugin {
+ protected:
+ void* _handle;
+ int _references;
+ int _instNo;
+ QFileInfo fi;
+ LADSPA_Descriptor_Function ladspa;
+ const LADSPA_Descriptor *plugin;
+ unsigned long _uniqueID;
+ QString _label;
+ QString _name;
+ QString _maker;
+ QString _copyright;
+
+ bool _isDssi;
+ #ifdef DSSI_SUPPORT
+ const DSSI_Descriptor* dssi_descr;
+ #endif
+
+ //LADSPA_PortDescriptor* _portDescriptors;
+ unsigned long _portCount;
+ unsigned long _inports;
+ unsigned long _outports;
+ unsigned long _controlInPorts;
+ unsigned long _controlOutPorts;
+ std::vector<unsigned long> rpIdx; // Port number to control input index. Item is -1 if it's not a control input.
+
+ bool _inPlaceCapable;
+
+ public:
+ Plugin(QFileInfo* f, const LADSPA_Descriptor* d, bool isDssi = false);
+ ~Plugin();
+
+ QString label() const { return _label; }
+ QString name() const { return _name; }
+ unsigned long id() const { return _uniqueID; }
+ QString maker() const { return _maker; }
+ QString copyright() const { return _copyright; }
+ QString lib(bool complete = true) /*const*/ { return fi.baseName(complete); } // ddskrjo const
+ QString dirPath(bool complete = true) const { return fi.dirPath(complete); }
+ QString filePath() const { return fi.filePath(); }
+ int references() const { return _references; }
+ int incReferences(int);
+ int instNo() { return _instNo++; }
+
+ bool isDssiPlugin() const { return _isDssi; }
+
+ LADSPA_Handle instantiate();
+ void activate(LADSPA_Handle handle) {
+ if (plugin && plugin->activate)
+ plugin->activate(handle);
+ }
+ void deactivate(LADSPA_Handle handle) {
+ if (plugin && plugin->deactivate)
+ plugin->deactivate(handle);
+ }
+ void cleanup(LADSPA_Handle handle) {
+ if (plugin && plugin->cleanup)
+ plugin->cleanup(handle);
+ }
+ void connectPort(LADSPA_Handle handle, int port, float* value) {
+ if(plugin)
+ plugin->connect_port(handle, port, value);
+ }
+ void apply(LADSPA_Handle handle, int n) {
+ if(plugin)
+ plugin->run(handle, n);
+ }
+
+ #ifdef OSC_SUPPORT
+ int oscConfigure(LADSPA_Handle /*handle*/, const char* /*key*/, const char* /*value*/);
+ #endif
+
+ //int ports() { return plugin ? plugin->PortCount : 0; }
+ unsigned long ports() { return _portCount; }
+
+ LADSPA_PortDescriptor portd(unsigned long k) const {
+ return plugin ? plugin->PortDescriptors[k] : 0;
+ //return _portDescriptors[k];
+ }
+
+ LADSPA_PortRangeHint range(unsigned long i) {
+ // FIXME:
+ //return plugin ? plugin->PortRangeHints[i] : 0;
+ return plugin->PortRangeHints[i];
+ }
+
+ double defaultValue(unsigned long port) const;
+ void range(unsigned long i, float*, float*) const;
+
+ const char* portName(unsigned long i) {
+ return plugin ? plugin->PortNames[i] : 0;
+ }
+
+ // Returns (int)-1 if not an input control.
+ unsigned long port2InCtrl(unsigned long p) { return p >= rpIdx.size() ? (unsigned long)-1 : rpIdx[p]; }
+
+ unsigned long inports() const { return _inports; }
+ unsigned long outports() const { return _outports; }
+ unsigned long controlInPorts() const { return _controlInPorts; }
+ unsigned long controlOutPorts() const { return _controlOutPorts; }
+ bool inPlaceCapable() const { return _inPlaceCapable; }
+ };
+
+typedef std::list<Plugin>::iterator iPlugin;
+
+//---------------------------------------------------------
+// PluginList
+//---------------------------------------------------------
+
+class PluginList : public std::list<Plugin> {
+ public:
+ void add(QFileInfo* fi, const LADSPA_Descriptor* d, bool isDssi = false)
+ {
+ push_back(Plugin(fi, d, isDssi));
+ }
+
+ Plugin* find(const QString&, const QString&);
+ PluginList() {}
+ };
+
+//---------------------------------------------------------
+// Port
+//---------------------------------------------------------
+
+struct Port {
+ int idx;
+ float val;
+ float tmpVal;
+
+ bool enCtrl; // Enable controller stream.
+ bool en2Ctrl; // Second enable controller stream (and'ed with enCtrl).
+ };
+
+//---------------------------------------------------------
+// GuiParam
+//---------------------------------------------------------
+
+struct GuiParam {
+ enum {
+ GUI_SLIDER, GUI_SWITCH
+ };
+ int type;
+ int hint;
+
+ DoubleLabel* label;
+ QWidget* actuator; // Slider or Toggle Button (SWITCH)
+ };
+
+//---------------------------------------------------------
+// GuiWidgets
+//---------------------------------------------------------
+
+struct GuiWidgets {
+ enum {
+ SLIDER, DOUBLE_LABEL, QCHECKBOX, QCOMBOBOX
+ };
+ QWidget* widget;
+ int type;
+ int param;
+ };
+
+class PluginI;
+
+/*
+class PluginBase
+{
+ public:
+ bool on() const { return _on; }
+ void setOn(bool val) { _on = val; }
+ int pluginID() { return plugin()->id(); }
+ int id() { return _id; }
+ QString pluginLabel() const { return _plugin->label(); }
+ QString name() const { return _name; }
+
+ AudioTrack* track() { return _track; }
+
+ void enableController(int i, bool v = true) { controls[i].enCtrl = v; }
+ bool controllerEnabled(int i) const { return controls[i].enCtrl; }
+ bool controllerEnabled2(int i) const { return controls[i].en2Ctrl; }
+ void updateControllers();
+
+ void writeConfiguration(int level, Xml& xml);
+ bool readConfiguration(Xml& xml, bool readPreset=false);
+
+ int parameters() const { return controlPorts; }
+ void setParam(int i, double val) { controls[i].tmpVal = val; }
+ double param(int i) const { return controls[i].val; }
+ const char* paramName(int i) { return _plugin->portName(controls[i].idx); }
+ LADSPA_PortRangeHint range(int i)
+ {
+ return _plugin->range(controls[i].idx);
+ }
+};
+*/
+
+//---------------------------------------------------------
+// PluginIBase
+//---------------------------------------------------------
+
+class PluginIBase
+{
+ public:
+ virtual bool on() const = 0;
+ virtual void setOn(bool /*val*/) = 0;
+ virtual int pluginID() = 0;
+ virtual int id() = 0;
+ virtual QString pluginLabel() const = 0;
+ virtual QString name() const = 0;
+
+ virtual AudioTrack* track() = 0;
+
+ virtual void enableController(int /*i*/, bool v = true) = 0;
+ virtual bool controllerEnabled(int /*i*/) const = 0;
+ virtual bool controllerEnabled2(int /*i*/) const = 0;
+ virtual void updateControllers() = 0;
+
+ virtual void writeConfiguration(int /*level*/, Xml& /*xml*/) = 0;
+ virtual bool readConfiguration(Xml& /*xml*/, bool readPreset=false) = 0;
+
+ virtual int parameters() const = 0;
+ virtual void setParam(int /*i*/, double /*val*/) = 0;
+ virtual double param(int /*i*/) const = 0;
+ virtual const char* paramName(int /*i*/) = 0;
+ virtual LADSPA_PortRangeHint range(int /*i*/) = 0;
+};
+
+//---------------------------------------------------------
+// PluginGui
+//---------------------------------------------------------
+
+class PluginGui : public Q3MainWindow {
+ Q_OBJECT
+
+ //PluginI* plugin; // plugin instance
+ PluginIBase* plugin; // plugin instance
+
+ GuiParam* params;
+ int nobj; // number of widgets in gw
+ GuiWidgets* gw;
+
+ QToolButton* onOff;
+ QWidget* mw; // main widget
+ Q3ScrollView* view;
+
+ void updateControls();
+
+ private slots:
+ void load();
+ void save();
+ void bypassToggled(bool);
+ void sliderChanged(double, int);
+ void labelChanged(double, int);
+ void guiParamChanged(int);
+ void ctrlPressed(int);
+ void ctrlReleased(int);
+ void guiParamPressed(int);
+ void guiParamReleased(int);
+ void guiSliderPressed(int);
+ void guiSliderReleased(int);
+ void ctrlRightClicked(const QPoint &, int);
+ void guiSliderRightClicked(const QPoint &, int);
+
+ protected slots:
+ void heartBeat();
+
+ public:
+ //PluginGui(PluginI*);
+ PluginGui(PluginIBase*);
+
+ ~PluginGui();
+ void setOn(bool);
+ void updateValues();
+ };
+
+//---------------------------------------------------------
+// PluginI
+// plugin instance
+//---------------------------------------------------------
+
+#define AUDIO_IN (LADSPA_PORT_AUDIO | LADSPA_PORT_INPUT)
+#define AUDIO_OUT (LADSPA_PORT_AUDIO | LADSPA_PORT_OUTPUT)
+
+//class PluginI {
+class PluginI : public PluginIBase {
+ Plugin* _plugin;
+ int channel;
+ int instances;
+ AudioTrack* _track;
+ int _id;
+
+ LADSPA_Handle* handle; // per instance
+ Port* controls;
+ Port* controlsOut;
+
+ int controlPorts;
+ int controlOutPorts;
+ PluginGui* _gui;
+ bool _on;
+ bool initControlValues;
+ QString _name;
+ QString _label;
+
+ //#ifdef DSSI_SUPPORT
+ //StringParamMap _stringParamMap;
+ //#endif
+
+ #ifdef OSC_SUPPORT
+ OscEffectIF _oscif;
+ #endif
+ bool _showNativeGuiPending;
+
+ void init();
+ void makeGui();
+
+ public:
+ PluginI();
+ ~PluginI();
+
+ Plugin* plugin() const { return _plugin; }
+ bool on() const { return _on; }
+ void setOn(bool val) { _on = val; }
+ PluginGui* gui() const { return _gui; }
+ void deleteGui();
+
+ void setTrack(AudioTrack* t) { _track = t; }
+ AudioTrack* track() { return _track; }
+ int pluginID() { return _plugin->id(); }
+ void setID(int i);
+ int id() { return _id; }
+ void updateControllers();
+
+ bool initPluginInstance(Plugin*, int channels);
+ void setChannels(int);
+ void connect(int ports, float** src, float** dst);
+ void apply(int n);
+
+ void enableController(int i, bool v = true) { controls[i].enCtrl = v; }
+ bool controllerEnabled(int i) const { return controls[i].enCtrl; }
+ void enable2Controller(int i, bool v = true) { controls[i].en2Ctrl = v; }
+ bool controllerEnabled2(int i) const { return controls[i].en2Ctrl; }
+ void enableAllControllers(bool v = true);
+ void enable2AllControllers(bool v = true);
+
+ void activate();
+ void deactivate();
+ QString pluginLabel() const { return _plugin->label(); }
+ QString label() const { return _label; }
+ QString name() const { return _name; }
+ CtrlValueType valueType() const;
+ QString lib() const { return _plugin->lib(); }
+
+ #ifdef OSC_SUPPORT
+ OscEffectIF& oscIF() { return _oscif; }
+ /*
+ int oscConfigure(lo_arg**);
+ int oscControl(lo_arg**);
+ //int oscUpdate(lo_arg**);
+ //int oscExiting(lo_arg**);
+ */
+
+ int oscControl(unsigned long /*dssiPort*/, float /*val*/);
+ int oscConfigure(const char */*key*/, const char */*val*/);
+ int oscUpdate();
+ //int oscExiting();
+ #endif
+
+ void writeConfiguration(int level, Xml& xml);
+ bool readConfiguration(Xml& xml, bool readPreset=false);
+ bool loadControl(Xml& xml);
+ bool setControl(const QString& s, double val);
+ void showGui();
+ void showGui(bool);
+ bool isDssiPlugin() const { return _plugin->isDssiPlugin(); }
+ void showNativeGui();
+ void showNativeGui(bool);
+ bool isShowNativeGuiPending() { return _showNativeGuiPending; }
+ bool guiVisible();
+ bool nativeGuiVisible();
+ int parameters() const { return controlPorts; }
+ void setParam(int i, double val) { controls[i].tmpVal = val; }
+ double param(int i) const { return controls[i].val; }
+ double defaultValue(unsigned int param) const;
+ const char* paramName(int i) { return _plugin->portName(controls[i].idx); }
+ LADSPA_PortDescriptor portd(int i) const { return _plugin->portd(controls[i].idx); }
+ void range(int i, float* min, float* max) const {
+ _plugin->range(controls[i].idx, min, max);
+ }
+ bool isAudioIn(int k) {
+ return (_plugin->portd(k) & AUDIO_IN) == AUDIO_IN;
+ }
+ bool isAudioOut(int k) {
+ return (_plugin->portd(k) & AUDIO_OUT) == AUDIO_OUT;
+ }
+ bool inPlaceCapable() const { return _plugin->inPlaceCapable(); }
+ LADSPA_PortRangeHint range(int i) {
+ return _plugin->range(controls[i].idx);
+ }
+ };
+
+//---------------------------------------------------------
+// Pipeline
+// chain of connected efx inserts
+//---------------------------------------------------------
+
+const int PipelineDepth = 4;
+
+class Pipeline : public std::vector<PluginI*> {
+ float* buffer[MAX_CHANNELS];
+
+ public:
+ Pipeline();
+ ~Pipeline();
+
+ void insert(PluginI* p, int index);
+ void remove(int index);
+ void removeAll();
+ bool isOn(int idx) const;
+ void setOn(int, bool);
+ QString label(int idx) const;
+ QString name(int idx) const;
+ void showGui(int, bool);
+ bool isDssiPlugin(int) const;
+ void showNativeGui(int, bool);
+ void deleteGui(int idx);
+ void deleteAllGuis();
+ bool guiVisible(int);
+ bool nativeGuiVisible(int);
+ void apply(int ports, unsigned long nframes, float** buffer);
+ void move(int idx, bool up);
+ bool empty(int idx) const;
+ void setChannels(int);
+ };
+
+typedef Pipeline::iterator iPluginI;
+typedef Pipeline::const_iterator ciPluginI;
+
+//---------------------------------------------------------
+// PluginDialog
+//---------------------------------------------------------
+
+class PluginDialog : public QDialog {
+ Q3ListView* pList;
+
+ Q_OBJECT
+
+ public:
+ PluginDialog(QWidget* parent=0, const char* name=0, bool modal=true);
+ static Plugin* getPlugin(QWidget* parent);
+ Plugin* value();
+ void accept();
+public slots:
+ void fillPlugs(int i);
+ void fillPlugs(const QString& sortValue);
+ private:
+ QComboBox *sortBox;
+ static int selectedPlugType;
+ static QStringList sortItems;
+ };
+
+extern void initPlugins();
+extern PluginList plugins;
+
+extern bool ladspaDefaultValue(const LADSPA_Descriptor* plugin, int port, float* val);
+extern void ladspaControlRange(const LADSPA_Descriptor* plugin, int i, float* min, float* max);
+extern bool ladspa2MidiControlValues(const LADSPA_Descriptor* plugin, int port, int ctlnum, int* min, int* max, int* def);
+//extern MidiController* ladspa2MidiController(const LADSPA_Descriptor* plugin, int port, int ctlnum);
+extern float midi2LadspaValue(const LADSPA_Descriptor* plugin, int port, int ctlnum, int val);
+
+#endif
+
diff --git a/muse2/muse/pos.cpp b/muse2/muse/pos.cpp
new file mode 100644
index 00000000..aa9538ca
--- /dev/null
+++ b/muse2/muse/pos.cpp
@@ -0,0 +1,567 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: pos.cpp,v 1.11.2.1 2006/09/19 19:07:08 spamatica Exp $
+//
+// (C) Copyright 2000 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include <cmath>
+
+#include "pos.h"
+#include "xml.h"
+#include "tempo.h"
+#include "globals.h"
+#include "sig.h"
+
+extern int mtcType;
+
+//---------------------------------------------------------
+// Pos
+//---------------------------------------------------------
+
+Pos::Pos()
+ {
+ _type = TICKS;
+ _tick = 0;
+ _frame = 0;
+ sn = -1;
+ }
+
+Pos::Pos(const Pos& p)
+ {
+ _type = p._type;
+ sn = p.sn;
+ _tick = p._tick;
+ _frame = p._frame;
+ }
+
+Pos::Pos(unsigned t, bool ticks)
+ {
+ if (ticks) {
+ _type = TICKS;
+ _tick = t;
+ }
+ else {
+ _type = FRAMES;
+ _frame = t;
+ }
+ sn = -1;
+ }
+
+Pos::Pos(const QString& s)
+ {
+ int m, b, t;
+ sscanf(s.latin1(), "%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(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 * 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+=(Pos a)
+ {
+ switch(_type) {
+ case FRAMES:
+ _frame += a.frame();
+ break;
+ case TICKS:
+ _tick += a.tick();
+ break;
+ }
+ sn = -1; // invalidate cached values
+ return *this;
+ }
+
+//---------------------------------------------------------
+// operator+=
+//---------------------------------------------------------
+
+Pos& Pos::operator+=(int a)
+ {
+ switch(_type) {
+ case FRAMES:
+ _frame += a;
+ break;
+ case TICKS:
+ _tick += a;
+ break;
+ }
+ sn = -1; // invalidate cached values
+ return *this;
+ }
+
+Pos operator+(Pos a, int b)
+ {
+ Pos c;
+ c.setType(a.type());
+ return c += b;
+ }
+
+Pos operator+(Pos a, 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();
+ }
+
+//---------------------------------------------------------
+// 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(int level, Xml& xml, const char* name) const
+ {
+ xml.nput(level++, "<%s ", name);
+
+ switch(_type) {
+ case TICKS:
+ xml.nput("tick=\"%d\"", _tick);
+ break;
+ case FRAMES:
+ xml.nput("frame=\"%d\"", _frame);
+ break;
+ }
+ xml.put(" />", name);
+ }
+
+//---------------------------------------------------------
+// read
+//---------------------------------------------------------
+
+void Pos::read(Xml& xml, const char* name)
+ {
+ sn = -1;
+ 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(name);
+ break;
+
+ case Xml::Attribut:
+ if (tag == "tick") {
+ _tick = xml.s2().toInt();
+ _type = TICKS;
+ }
+ else if (tag == "frame") {
+ _frame = xml.s2().toInt();
+ _type = FRAMES;
+ }
+ else if (tag == "sample") { // obsolete
+ _frame = xml.s2().toInt();
+ _type = FRAMES;
+ }
+ else
+ xml.unknown(name);
+ break;
+
+ case Xml::TagEnd:
+ if (tag == name)
+ return;
+ default:
+ break;
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// 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(int level, Xml& xml, const char* name) const
+ {
+ xml.nput(level++, "<%s ", name);
+
+ switch(type()) {
+ case TICKS:
+ xml.nput("tick=\"%d\" len=\"%d\"", tick(), _lenTick);
+ break;
+ case FRAMES:
+ xml.nput("sample=\"%d\" len=\"%d\"", frame(), _lenFrame);
+ break;
+ }
+ xml.put(" />", name);
+ }
+
+//---------------------------------------------------------
+// read
+//---------------------------------------------------------
+
+void PosLen::read(Xml& xml, const char* name)
+ {
+ sn = -1;
+ 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(name);
+ break;
+
+ case Xml::Attribut:
+ if (tag == "tick") {
+ setType(TICKS);
+ setTick(xml.s2().toInt());
+ }
+ else if (tag == "sample") {
+ setType(FRAMES);
+ setFrame(xml.s2().toInt());
+ }
+ else if (tag == "len") {
+ int n = xml.s2().toInt();
+ switch(type()) {
+ case TICKS:
+ setLenTick(n);
+ break;
+ case FRAMES:
+ setLenFrame(n);
+ break;
+ }
+ }
+ else
+ xml.unknown(name);
+ break;
+
+ case Xml::TagEnd:
+ if (tag == name)
+ return;
+ default:
+ break;
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// setLenTick
+//---------------------------------------------------------
+
+void PosLen::setLenTick(unsigned len)
+ {
+ _lenTick = len;
+ sn = -1;
+// if (type() == FRAMES)
+ _lenFrame = tempomap.deltaTick2frame(tick(), tick() + len, &sn);
+ }
+
+//---------------------------------------------------------
+// setLenFrame
+//---------------------------------------------------------
+
+void PosLen::setLenFrame(unsigned len)
+ {
+ _lenFrame = len;
+ sn = -1;
+// if (type() == TICKS)
+ _lenTick = tempomap.deltaFrame2tick(frame(), frame() + len, &sn);
+ }
+
+//---------------------------------------------------------
+// lenTick
+//---------------------------------------------------------
+
+unsigned PosLen::lenTick() const
+ {
+ if (type() == FRAMES)
+ _lenTick = tempomap.deltaFrame2tick(frame(), frame() + _lenFrame, &sn);
+ return _lenTick;
+ }
+
+//---------------------------------------------------------
+// lenFrame
+//---------------------------------------------------------
+
+unsigned PosLen::lenFrame() const
+ {
+ if (type() == TICKS)
+ _lenFrame = tempomap.deltaTick2frame(tick(), tick() + _lenTick, &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;
+ }
+ }
+
+//---------------------------------------------------------
+// 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
+ {
+ double time = double(frame()) / double(sampleRate);
+ *min = int(time) / 60;
+ *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;
+ }
+ *fr = int(rest);
+ *subFrame = int((rest- *fr)*100);
+ }
+
+//---------------------------------------------------------
+// isValid
+//---------------------------------------------------------
+
+bool Pos::isValid(int,int,int)
+ {
+ return true;
+ }
+
+//---------------------------------------------------------
+// isValid
+//---------------------------------------------------------
+
+bool Pos::isValid(int,int,int,int)
+ {
+ return true;
+ }
+
diff --git a/muse2/muse/pos.h b/muse2/muse/pos.h
new file mode 100644
index 00000000..33c08f6b
--- /dev/null
+++ b/muse2/muse/pos.h
@@ -0,0 +1,99 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: pos.h,v 1.8 2004/07/14 15:27:26 wschweer Exp $
+//
+// (C) Copyright 2000 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __POS_H__
+#define __POS_H__
+
+class Xml;
+class QString;
+
+//---------------------------------------------------------
+// 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:
+ enum TType { TICKS, FRAMES };
+
+ private:
+ TType _type;
+ mutable int sn;
+ mutable unsigned _tick;
+ mutable unsigned _frame;
+
+ public:
+ Pos();
+ Pos(const Pos&);
+ Pos(int,int,int);
+ Pos(int,int,int,int);
+ Pos(unsigned, bool ticks=true);
+ Pos(const QString&);
+ void dump(int n = 0) const;
+ void mbt(int*, int*, int*) const;
+ void msf(int*, int*, int*, int*) const;
+
+ void invalidSn() { sn = -1; }
+
+ TType type() const { return _type; }
+ void setType(TType t);
+
+ Pos& operator+=(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;
+
+ friend Pos operator+(Pos a, Pos b);
+ friend Pos operator+(Pos a, int b);
+
+ unsigned tick() const;
+ unsigned frame() const;
+ void setTick(unsigned);
+ void setFrame(unsigned);
+
+ void write(int level, Xml&, const char*) const;
+ void read(Xml& xml, const char*);
+ bool isValid() const { return true; }
+ static bool isValid(int m, int b, int t);
+ static bool isValid(int, int, int, int);
+ };
+
+//---------------------------------------------------------
+// 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(int level, Xml&, const char*) const;
+ void read(Xml& xml, const char*);
+ 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&);
+ };
+
+#endif
diff --git a/muse2/muse/remote/Makefile.am b/muse2/muse/remote/Makefile.am
new file mode 100644
index 00000000..a1335682
--- /dev/null
+++ b/muse2/muse/remote/Makefile.am
@@ -0,0 +1,15 @@
+include $(top_srcdir)/common.am
+
+noinst_LIBRARIES = libremote.a
+
+if PCH
+AM_CXXFLAGS += -include $(top_srcdir)/all.h
+else
+AM_CXXFLAGS += -DINSTPREFIX=\"$(prefix)\"
+endif
+
+AM_CPPFLAGS += -I$(PYTHON_INCLUDES) -DENABLE_PYTHON
+
+dist_libremote_a_SOURCES = \
+ pyapi.cpp pyapi.h
+
diff --git a/muse2/muse/remote/Makefile.in b/muse2/muse/remote/Makefile.in
new file mode 100644
index 00000000..ecae5271
--- /dev/null
+++ b/muse2/muse/remote/Makefile.in
@@ -0,0 +1,590 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
+ $(top_srcdir)/common.am
+@PCH_TRUE@am__append_1 = -include $(top_srcdir)/all.h
+@PCH_FALSE@am__append_2 = -DINSTPREFIX=\"$(prefix)\"
+subdir = muse/remote
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal-include.m4 \
+ $(top_srcdir)/m4/alsa.m4 $(top_srcdir)/m4/docbook.m4 \
+ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
+ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
+ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+LIBRARIES = $(noinst_LIBRARIES)
+ARFLAGS = cru
+libremote_a_AR = $(AR) $(ARFLAGS)
+libremote_a_LIBADD =
+dist_libremote_a_OBJECTS = pyapi.$(OBJEXT)
+libremote_a_OBJECTS = $(dist_libremote_a_OBJECTS)
+DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
+depcomp = $(SHELL) $(top_srcdir)/depcomp
+am__depfiles_maybe = depfiles
+am__mv = mv -f
+CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
+LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
+CXXLD = $(CXX)
+CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \
+ $(LDFLAGS) -o $@
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
+ $(LDFLAGS) -o $@
+SOURCES = $(dist_libremote_a_SOURCES)
+DIST_SOURCES = $(dist_libremote_a_SOURCES)
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ALSA_CFLAGS = @ALSA_CFLAGS@
+ALSA_LIBS = @ALSA_LIBS@
+AMTAR = @AMTAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DOCBOOKSTYLE = @DOCBOOKSTYLE@
+DOCBOOKTARGETS = @DOCBOOKTARGETS@
+DOT = @DOT@
+DOTPATH = @DOTPATH@
+DOXYGEN = @DOXYGEN@
+DOXYGEN_TREEVIEW = @DOXYGEN_TREEVIEW@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+FLUIDSYNTHDIRS = @FLUIDSYNTHDIRS@
+FST_CFLAGS = @FST_CFLAGS@
+FST_LIBS = @FST_LIBS@
+Fluidsynth_CFLAGS = @Fluidsynth_CFLAGS@
+Fluidsynth_LIBS = @Fluidsynth_LIBS@
+GIVERTCAP = @GIVERTCAP@
+GREP = @GREP@
+HAVEDOT = @HAVEDOT@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JACK_CFLAGS = @JACK_CFLAGS@
+JACK_LIBS = @JACK_LIBS@
+JADE = @JADE@
+LASH_CFLAGS = @LASH_CFLAGS@
+LASH_LIBS = @LASH_LIBS@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LO_CFLAGS = @LO_CFLAGS@
+LO_LIBS = @LO_LIBS@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+MUSECXXFLAGS = @MUSECXXFLAGS@
+NM = @NM@
+NMEDIT = @NMEDIT@
+NSGMLS = @NSGMLS@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PCH = @PCH@
+PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+PYTHON = @PYTHON@
+PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
+PYTHON_INCLUDES = @PYTHON_INCLUDES@
+PYTHON_LIB = @PYTHON_LIB@
+PYTHON_PLATFORM = @PYTHON_PLATFORM@
+PYTHON_PREFIX = @PYTHON_PREFIX@
+PYTHON_VERSION = @PYTHON_VERSION@
+QTDIR_BIN = @QTDIR_BIN@
+QTDIR_INC = @QTDIR_INC@
+QT_LIBS = @QT_LIBS@
+RANLIB = @RANLIB@
+SAMPLERATE_CFLAGS = @SAMPLERATE_CFLAGS@
+SAMPLERATE_LIBS = @SAMPLERATE_LIBS@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SNDFILE_CFLAGS = @SNDFILE_CFLAGS@
+SNDFILE_LIBS = @SNDFILE_LIBS@
+STRIP = @STRIP@
+SUIDBUILD = @SUIDBUILD@
+SUIDINSTALL = @SUIDINSTALL@
+USE_SSE = @USE_SSE@
+UUID_CFLAGS = @UUID_CFLAGS@
+UUID_LIBS = @UUID_LIBS@
+VERSION = @VERSION@
+XMKMF = @XMKMF@
+X_CFLAGS = @X_CFLAGS@
+X_EXTRA_LIBS = @X_EXTRA_LIBS@
+X_LIBS = @X_LIBS@
+X_PRE_LIBS = @X_PRE_LIBS@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+have_docbook = @have_docbook@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+lt_ECHO = @lt_ECHO@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+pkgpyexecdir = @pkgpyexecdir@
+pkgpythondir = @pkgpythondir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+pyexecdir = @pyexecdir@
+pythondir = @pythondir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+synth_fluid = @synth_fluid@
+synth_fluidsynth = @synth_fluidsynth@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+AM_CXXFLAGS = $(MUSECXXFLAGS) -I.. -I$(top_srcdir)/synti \
+ -I$(top_srcdir)/muse/widgets -DQT_SHARED -DQT_THREAD_SUPPORT \
+ -DQT_PLUGIN $(QTDIR_INC) -DQT3_SUPPORT $(am__append_1) \
+ $(am__append_2)
+AM_CPPFLAGS = -I$(PYTHON_INCLUDES) -DENABLE_PYTHON
+MOC = $(QTDIR_BIN)/moc
+#UIC = $(QTDIR_BIN)/uic3
+UIC = /usr/bin/uic3
+UIFILES = $(wildcard *.ui)
+MOCFILES = $(shell for h in $(filter %.h,$(SOURCES)); do \
+ if grep -q Q_OBJECT $$h; then \
+ echo $$h | sed "s/\(.*\)\.h/moc_\1.cpp/"; \
+ fi; \
+ done)
+
+BUILT_SOURCES = $(MOCFILES) $(UIFILES:%.ui=%.h)
+MOSTLYCLEANFILES = $(MOCFILES) $(UIFILES:%.ui=%.h)
+SUFFIXES = .ui .h.gch
+noinst_LIBRARIES = libremote.a
+dist_libremote_a_SOURCES = \
+ pyapi.cpp pyapi.h
+
+all: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) all-am
+
+.SUFFIXES:
+.SUFFIXES: .ui .h.gch .cpp .lo .o .obj
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/common.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu muse/remote/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu muse/remote/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+clean-noinstLIBRARIES:
+ -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
+libremote.a: $(libremote_a_OBJECTS) $(libremote_a_DEPENDENCIES)
+ -rm -f libremote.a
+ $(libremote_a_AR) libremote.a $(libremote_a_OBJECTS) $(libremote_a_LIBADD)
+ $(RANLIB) libremote.a
+
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT)
+
+distclean-compile:
+ -rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pyapi.Po@am__quote@
+
+.cpp.o:
+@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $<
+
+.cpp.obj:
+@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+
+.cpp.lo:
+@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $<
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ mkid -fID $$unique
+tags: TAGS
+
+TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ set x; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: CTAGS
+CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) check-am
+all-am: Makefile $(LIBRARIES)
+installdirs:
+install: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+ -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES)
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+ -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
+clean: clean-am
+
+clean-am: clean-generic clean-libtool clean-noinstLIBRARIES \
+ mostlyclean-am
+
+distclean: distclean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+ distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+ mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: all check install install-am install-strip
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
+ clean-libtool clean-noinstLIBRARIES ctags distclean \
+ distclean-compile distclean-generic distclean-libtool \
+ distclean-tags distdir dvi dvi-am html html-am info info-am \
+ install install-am install-data install-data-am install-dvi \
+ install-dvi-am install-exec install-exec-am install-html \
+ install-html-am install-info install-info-am install-man \
+ install-pdf install-pdf-am install-ps install-ps-am \
+ install-strip installcheck installcheck-am installdirs \
+ maintainer-clean maintainer-clean-generic mostlyclean \
+ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
+ pdf pdf-am ps ps-am tags uninstall uninstall-am
+
+
+de:
+ @for base in $(MOCFILES); do echo -e "\t$${base}.cpp $${base}.h \\"; done
+
+nde:
+ @for base in $(MOCFILES); do echo -e "\tmoc_$${base}.cpp \\"; done
+
+.ui.o: %.h
+ $(UIC) -L $(top_srcdir)/muse/widgets -o $*.cpp -impl $*.h $*.ui
+ $(MOC) $*.h >> $*.cpp
+ $(CXXCOMPILE) -c $*.cpp -o $*.o
+ $(RM) $*.cpp moc_$*.cpp moc_$*.o
+
+.ui.lo: %.h
+ $(UIC) -L $(top_srcdir)/muse/widgets -o $*.cpp -impl $*.h $*.ui
+ $(MOC) $*.h >> $*.cpp
+ $(LTCXXCOMPILE) -c $*.cpp -o $*.lo
+ $(RM) $*.cpp moc_$*.cpp moc_$*.lo moc_$*.o
+
+moc_%.cpp: %.h
+ $(MOC) $< -o $@
+
+%.h: %.ui
+ $(UIC) -o $@ $<
+# $(UIC) -L $(top_srcdir)/muse/widgets -o $@ $<
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/muse2/muse/remote/pyapi.cpp b/muse2/muse/remote/pyapi.cpp
new file mode 100644
index 00000000..e71b8a18
--- /dev/null
+++ b/muse2/muse/remote/pyapi.cpp
@@ -0,0 +1,1142 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// (C) Copyright 2009 Mathias Gyllengahm (lunar_shuttle@users.sf.net)
+//=========================================================
+#include <Python.h>
+#include <iostream>
+#include <fstream>
+#include <string>
+#include <pthread.h>
+
+#include <qobject.h>
+#include <qapplication.h>
+#include <qevent.h>
+
+#include "pyapi.h"
+#include "song.h"
+#include "tempo.h"
+#include "track.h"
+#include "audio.h"
+#include "gconfig.h"
+#include "midictrl.h"
+#include "midiport.h"
+#include "plugin.h"
+#include "midi.h"
+#include "app.h"
+
+// Steals ref: PyList_SetItem, PyTuple_SetItem
+using namespace std;
+
+static pthread_t pyapiThread;
+//------------------------------------------------------------
+QPybridgeEvent::QPybridgeEvent(QPybridgeEvent::EventType _type, int _p1, int _p2)
+ :QEvent(QEvent::User),
+ type(_type),
+ p1(_p1),
+ p2(_p2)
+{
+}
+//------------------------------------------------------------
+// Get current position
+//------------------------------------------------------------
+PyObject* getCPos(PyObject*, PyObject*)
+{
+ return Py_BuildValue("i", song->cpos());
+}
+//------------------------------------------------------------
+// Get position of left locator
+//------------------------------------------------------------
+PyObject* getLPos(PyObject*, PyObject*)
+{
+ return Py_BuildValue("i", song->lpos());
+}
+//------------------------------------------------------------
+// Get position of right locator
+//------------------------------------------------------------
+PyObject* getRPos(PyObject*, PyObject*)
+{
+ return Py_BuildValue("i", song->rpos());
+}
+//------------------------------------------------------------
+// Start playing from current position
+//------------------------------------------------------------
+PyObject* startPlay(PyObject*, PyObject*)
+{
+ //song->setPlay(true);
+ QPybridgeEvent* pyevent = new QPybridgeEvent(QPybridgeEvent::SONG_SETPLAY);
+ QApplication::postEvent(song, pyevent);
+ Py_INCREF(Py_None);
+ return Py_None;
+}
+//------------------------------------------------------------
+// Stop playing
+//------------------------------------------------------------
+PyObject* stopPlay(PyObject*, PyObject*)
+{
+ //song->setStop(true);
+ QPybridgeEvent* pyevent = new QPybridgeEvent(QPybridgeEvent::SONG_SETSTOP);
+ QApplication::postEvent(song, pyevent);
+ Py_INCREF(Py_None);
+ return Py_None;
+}
+//------------------------------------------------------------
+// Rewind to start
+//------------------------------------------------------------
+PyObject* rewindStart(PyObject*, PyObject*)
+{
+ //song->rewindStart();
+ QPybridgeEvent* pyevent = new QPybridgeEvent(QPybridgeEvent::SONG_REWIND);
+ QApplication::postEvent(song, pyevent);
+ Py_INCREF(Py_None);
+ return Py_None;
+}
+//------------------------------------------------------------
+// Get tempo at specific position
+//------------------------------------------------------------
+PyObject* getTempo(PyObject*, PyObject* args)
+{
+ int tick;
+ if (!PyArg_ParseTuple(args, "i", &tick)) {
+ return Py_BuildValue("i", 1000);
+ }
+
+ int tempovalue = tempomap.tempo(tick);
+ return Py_BuildValue("i", tempovalue);
+}
+//------------------------------------------------------------
+// Get track names
+//------------------------------------------------------------
+PyObject* getTrackNames(PyObject*, PyObject*)
+{
+ TrackList* tracks = song->tracks();
+ PyObject* res = Py_BuildValue("[]");
+ for (ciTrack t = tracks->begin(); t != tracks->end(); ++t) {
+ Track* track = *t;
+ PyObject* ptrackname = Py_BuildValue("s", track->name().latin1());
+ PyList_Append(res, ptrackname);
+ Py_DECREF(ptrackname);
+ }
+
+ return res;
+}
+//------------------------------------------------------------
+// Find part by serial nr
+//------------------------------------------------------------
+Part* findPartBySerial(int sn)
+{
+ TrackList* tracks = song->tracks();
+ for (ciTrack t = tracks->begin(); t != tracks->end(); ++t) {
+ Track* track = *t;
+ PartList* parts = track->parts();
+ for (ciPart p = parts->begin(); p != parts->end(); p++) {
+ Part* part = p->second;
+ if (part->sn() == sn)
+ return part;
+ }
+ }
+
+ return NULL;
+}
+//------------------------------------------------------------
+// Get parts from track
+//------------------------------------------------------------
+PyObject* getParts(PyObject*, PyObject* args)
+{
+ TrackList* tracks = song->tracks();
+ const char* trackname;
+ if (!PyArg_ParseTuple(args, "s", &trackname)) {
+ return NULL;
+ }
+
+ PyObject* pyparts = Py_BuildValue("[]");
+ for (ciTrack t = tracks->begin(); t != tracks->end(); ++t) {
+ Track* track = *t;
+ if (track->name() != trackname)
+ continue;
+
+ PartList* parts = track->parts();
+ for (ciPart p = parts->begin(); p != parts->end(); p++) {
+ Part* part = p->second;
+
+ MidiPart* mpart = (MidiPart*) part;
+ PyObject* pypart = PyDict_New();
+ int tick = mpart->tick();
+ int lentick = mpart->lenTick();
+ int serialnr = mpart->sn();
+ PyObject* pstrtick = Py_BuildValue("s","tick");
+ PyObject* pitick = Py_BuildValue("i", tick);
+ PyObject* pstrid = Py_BuildValue("s","id");
+ PyObject* pstrserial = Py_BuildValue("i", serialnr);
+ PyObject* pstrlen = Py_BuildValue("s","len");
+ PyObject* pstrtick2 = Py_BuildValue("i", lentick);
+
+ PyDict_SetItem(pypart, pstrtick, pitick);
+ PyDict_SetItem(pypart, pstrid, pstrserial);
+ PyDict_SetItem(pypart, pstrlen, pstrtick2);
+
+ Py_DECREF(pstrtick);
+ Py_DECREF(pitick);
+ Py_DECREF(pstrid);
+ Py_DECREF(pstrserial);
+ Py_DECREF(pstrlen);
+ Py_DECREF(pstrtick2);
+
+ // Pack midi events into list before wrapping it all up
+ EventList* events = mpart->events();
+ PyObject* pyevents = Py_BuildValue("[]");
+ for (ciEvent e = events->begin(); e != events->end(); e++) {
+ PyObject* pyevent = PyDict_New(); // The event structure - a dictionary with keys 'type','tick','data'
+
+ const Event& event = e->second;
+ unsigned tick = e->first;
+ PyObject* eventdata = Py_BuildValue("[i,i,i]", event.dataA(), event.dataB(), event.dataC());
+ PyObject* pstrdata = Py_BuildValue("s", "data");
+ pstrtick = Py_BuildValue("s", "tick");
+ PyObject* pitickval = Py_BuildValue("i", tick);
+ PyDict_SetItem(pyevent, pstrdata, eventdata);
+ PyDict_SetItem(pyevent, pstrtick, pitickval);
+ Py_DECREF(eventdata);
+ Py_DECREF(pstrdata);
+ Py_DECREF(pstrtick);
+ Py_DECREF(pitickval);
+
+ switch(event.type()) {
+ case Note: {
+ PyObject* pstrtype = Py_BuildValue("s", "type");
+ PyObject* pstrnote = Py_BuildValue("s", "note");
+ PyObject* pstrlen = Py_BuildValue("s", "len");
+ PyObject* pilentick = Py_BuildValue("i", event.lenTick());
+ PyDict_SetItem(pyevent, pstrtype, pstrnote);
+ PyDict_SetItem(pyevent, pstrlen, pilentick);
+ Py_DECREF(pstrtype);
+ Py_DECREF(pstrnote);
+ Py_DECREF(pstrlen);
+ Py_DECREF(pilentick);
+ break;
+ }
+ case Controller: {
+ PyObject* pstrtype = Py_BuildValue("s", "type");
+ PyObject* pstrctrl = Py_BuildValue("s", "ctrl");
+ PyDict_SetItem(pyevent, pstrtype, pstrctrl);
+ Py_DECREF(pstrtype);
+ Py_DECREF(pstrctrl);
+ break;
+ }
+ default:
+ printf("Event type not supported yet: %d\n", event.type());
+ break;
+ }
+ PyList_Append(pyevents, pyevent);
+ Py_DECREF(pyevent);
+ }
+ Py_DECREF(pyevents);
+ // Add the event list to the pypart dictionary
+ PyObject* pystrevents = Py_BuildValue("s", "events");
+ PyDict_SetItem(pypart, pystrevents, pyevents);
+ Py_DECREF(pystrevents);
+ PyList_Append(pyparts, pypart);
+ Py_DECREF(pypart);
+ }
+
+ return pyparts;
+ }
+
+ return NULL;
+}
+
+//------------------------------------------------------------
+// parsePythonPart
+// get part id/serialno from python part structure
+//------------------------------------------------------------
+int getPythonPartId(PyObject* part)
+{
+ PyObject* pyid = PyDict_GetItemString(part, "id");
+ int id = PyInt_AsLong(pyid);
+ return id;
+}
+
+//------------------------------------------------------------
+// addPyPartEventsToMusePart
+// parse events from python part structure into muse part
+//------------------------------------------------------------
+bool addPyPartEventsToMusePart(MidiPart* npart, PyObject* part)
+{
+ PyObject* events;
+
+ if (PyDict_Check(part) == false) {
+ printf("Not a dict!\n");
+ return false;
+ }
+ PyObject* pstrevents = Py_BuildValue("s","events");
+ if (PyDict_Contains(part, pstrevents) == false) {
+ Py_DECREF(pstrevents);
+ printf("No events in part data...\n");
+ return false;
+ }
+ Py_DECREF(pstrevents);
+
+ events = PyDict_GetItemString(part, "events");
+
+ if (PyList_Check(events) == false) {
+ printf("Events not a list!\n");
+ return false;
+ }
+
+ //
+ // Go through event list, create MusE events of them and add to new part
+ //
+ Py_ssize_t len = PyList_Size(events);
+ for (Py_ssize_t i=0; i<len; i++) {
+ PyObject* pevent = PyList_GetItem(events, i);
+ if (PyDict_Check(pevent) == false) {
+ printf("Event is not a dictionary!\n");
+ return false;
+ }
+ PyObject* p_etick = PyDict_GetItemString(pevent, "tick");
+ PyObject* p_type = PyDict_GetItemString(pevent, "type");
+ PyObject* p_len = PyDict_GetItemString(pevent, "len");
+ PyObject* p_data = PyDict_GetItemString(pevent, "data"); // list
+
+ int etick = PyInt_AsLong(p_etick);
+ int elen = PyInt_AsLong(p_len);
+ string type = string(PyString_AsString(p_type));
+ int data[3];
+
+ // Traverse data list:
+ for (int j=0; j<3; j++) {
+ PyObject* plItem = PyList_GetItem(p_data, j);
+ data[j] = PyInt_AsLong(plItem);
+ }
+ if (type == "note" || type == "ctrl") {
+ Event event(Note);
+ event.setA(data[0]);
+ event.setB(data[1]);
+ event.setC(data[2]);
+ event.setTick(etick);
+ event.setLenTick(elen);
+ npart->events()->add(event);
+ }
+ else
+ printf("Unhandled event type from python: %s\n", type.c_str());
+ }
+
+ return true;
+}
+//------------------------------------------------------------
+// Create a new part at a particular tick and track
+//------------------------------------------------------------
+PyObject* createPart(PyObject*, PyObject* args)
+{
+ const char* trackname;
+ unsigned tick, tickLen;
+ PyObject* part;
+
+ if (!PyArg_ParseTuple(args, "siiO", &trackname, &tick, &tickLen, &part)) {
+ return NULL;
+ }
+
+ QString qtrackname(trackname);
+ MidiTrack* track = (MidiTrack*) song->findTrack(trackname);
+ if (track == NULL)
+ return NULL;
+
+ MidiPart* npart = new MidiPart(track);
+ npart->setTick(tick);
+ npart->setLenTick(tickLen);
+ addPyPartEventsToMusePart(npart, part);
+
+ song->addPart(npart);
+ QPybridgeEvent* pyevent = new QPybridgeEvent(QPybridgeEvent::SONG_UPDATE, SC_TRACK_MODIFIED);
+ QApplication::postEvent(song, pyevent);
+
+ Py_INCREF(Py_None);
+ return Py_None;
+}
+
+//------------------------------------------------------------
+// Modify a particular part:
+// args: new part data, old part data is used from the part with the same id as the one sent here
+// TODO: Lots and lots of refcount stuff
+//------------------------------------------------------------
+PyObject* modifyPart(PyObject*, PyObject* part)
+{
+ int id = getPythonPartId(part);
+
+ Part* opart = NULL;
+ // Verify a part with that id actually exists, then get it
+ TrackList* tracks = song->tracks();
+ for (ciTrack t = tracks->begin(); t != tracks->end(); ++t) {
+ Track* track = *t;
+ for (ciPart p = track->parts()->begin(); p != track->parts()->end(); p++) {
+ if (p->second->sn() == id) {
+ opart = p->second;
+ break;
+ }
+ }
+ }
+
+ if (opart == NULL) {
+ printf("Part doesn't exist!\n");
+ return NULL;
+ }
+
+ // Remove all note and controller events from current part eventlist
+ std::list< std::pair<const unsigned, Event> > elist;
+ MidiPart* npart = new MidiPart((MidiTrack*)opart->track());
+ npart->setTick(opart->tick());
+ npart->setLenTick(opart->lenTick());
+ npart->setSn(opart->sn());
+
+ for (iEvent e = opart->events()->begin(); e != opart->events()->end(); e++) {
+ Event& event = e->second;
+ if (event.type() == Note || event.type() == Controller)
+ continue;
+
+ npart->events()->add(event);
+ }
+
+ addPyPartEventsToMusePart(npart, part);
+
+ //song->startUndo();
+ song->changePart(opart, npart);
+ //song->endUndo(SC_TRACK_MODIFIED | SC_PART_MODIFIED | SC_PART_INSERTED); // Crash! Probably since the call ends up in Qt GUI thread from this thread
+
+ QPybridgeEvent* pyevent = new QPybridgeEvent(QPybridgeEvent::SONG_UPDATE, SC_TRACK_MODIFIED | SC_PART_MODIFIED | SC_PART_INSERTED);
+ QApplication::postEvent(song, pyevent);
+
+
+ Py_INCREF(Py_None);
+ return Py_None;
+}
+//------------------------------------------------------------
+// deletePart
+// delete part by serial nr
+//------------------------------------------------------------
+PyObject* deletePart(PyObject*, PyObject* args)
+{
+ int id;
+ if (!PyArg_ParseTuple(args, "i", &id)) {
+ return NULL;
+ }
+
+ Part* part = findPartBySerial(id);
+ if (part == NULL)
+ return NULL;
+
+ song->removePart(part);
+ QPybridgeEvent* pyevent = new QPybridgeEvent(QPybridgeEvent::SONG_UPDATE, SC_TRACK_MODIFIED | SC_PART_REMOVED);
+ QApplication::postEvent(song, pyevent);
+ Py_INCREF(Py_None);
+ return Py_None;
+}
+
+//------------------------------------------------------------
+// setPos
+//------------------------------------------------------------
+PyObject* setPos(PyObject*, PyObject* args)
+{
+ int index;
+ int ticks;
+ if (!PyArg_ParseTuple(args, "ii", &index, &ticks)) {
+ return NULL;
+ }
+
+ //song->setPos(index, ticks);
+ QPybridgeEvent* pyevent = new QPybridgeEvent(QPybridgeEvent::SONG_POSCHANGE, index, ticks);
+ QApplication::postEvent(song, pyevent);
+
+ Py_INCREF(Py_None);
+ return Py_None;
+}
+
+
+//------------------------------------------------------------
+// setLen
+//------------------------------------------------------------
+PyObject* setSongLen(PyObject*, PyObject* args)
+{
+ unsigned len;
+
+ if (!PyArg_ParseTuple(args, "i", &len)) {
+ return NULL;
+ }
+ //song->setLen(len);// Appears to not be ok to call from python thread, we do it with event instead
+ QPybridgeEvent* pyevent = new QPybridgeEvent(QPybridgeEvent::SONGLEN_CHANGE, len);
+ QApplication::postEvent(song, pyevent);
+ Py_INCREF(Py_None);
+ return Py_None;
+}
+//------------------------------------------------------------
+// getLen
+//------------------------------------------------------------
+PyObject* getSongLen(PyObject*, PyObject*)
+{
+ PyObject* pylen = Py_BuildValue("i", song->len());
+
+ return pylen;
+}
+//------------------------------------------------------------
+// getDivision
+//------------------------------------------------------------
+PyObject* getDivision(PyObject*, PyObject*)
+{
+ return Py_BuildValue("i", config.division);
+}
+//------------------------------------------------------------
+// setTrackParameter
+//------------------------------------------------------------
+PyObject* setMidiTrackParameter(PyObject*, PyObject* args)
+{
+ const char* trackname;
+ const char* paramname;
+ int value;
+ if(!PyArg_ParseTuple(args, "ssi", &trackname, &paramname, &value))
+ return NULL;
+
+ Track* track = song->findTrack(QString(trackname));
+ if (track == NULL)
+ return NULL;
+
+ MidiTrack* mt = (MidiTrack*) track;
+
+ QString qparamname(paramname);
+ bool changed = false;
+ if (qparamname == "velocity") {
+ changed = true;
+ mt->velocity = value;
+ }
+ else if (qparamname == "compression") {
+ changed = true;
+ mt->compression = value;
+ }
+ else if (qparamname == "transposition") {
+ changed = true;
+ mt->transposition = value;
+ }
+ else if (qparamname == "delay") {
+ changed = true;
+ mt->delay = value;
+ }
+
+ if (changed) {
+ QPybridgeEvent* pyevent = new QPybridgeEvent(QPybridgeEvent::SONG_UPDATE, SC_TRACK_MODIFIED);
+ QApplication::postEvent(song, pyevent);
+ }
+
+ return Py_BuildValue("b", changed); // true/false depending on whether anythin was changed
+}
+//------------------------------------------------------------
+// Set loop
+//------------------------------------------------------------
+PyObject* setLoop(PyObject*, PyObject* args)
+{
+ bool loopFlag;
+ if(!PyArg_ParseTuple(args, "b", &loopFlag))
+ return NULL;
+
+ song->setLoop(loopFlag);
+ Py_INCREF(Py_None);
+ return Py_None;
+}
+//------------------------------------------------------------
+// Get loop value
+//------------------------------------------------------------
+PyObject* getLoop(PyObject*, PyObject*)
+{
+ return Py_BuildValue("b", song->getLoop());
+}
+//------------------------------------------------------------
+// getMute trackname
+//------------------------------------------------------------
+PyObject* getMute(PyObject*, PyObject* args)
+{
+ const char* trackname;
+ if (!PyArg_ParseTuple(args, "s", &trackname)) {
+ return NULL;
+ }
+
+ Track* track = song->findTrack(QString(trackname));
+ if (track == NULL)
+ return NULL;
+
+ return Py_BuildValue("b", track->isMute());
+}
+//------------------------------------------------------------
+// setMute (trackname, boolean)
+//------------------------------------------------------------
+PyObject* setMute(PyObject*, PyObject* args)
+{
+ const char* trackname;
+ bool muted;
+
+ if (!PyArg_ParseTuple(args, "sb", &trackname, &muted)) {
+ return NULL;
+ }
+
+ Track* track = song->findTrack(QString(trackname));
+ if (track == NULL)
+ return NULL;
+
+ int mutedint = 1;
+ if (muted == false)
+ mutedint = 0;
+
+ QPybridgeEvent* pyevent = new QPybridgeEvent(QPybridgeEvent::SONG_SETMUTE, mutedint);
+ pyevent->setS1(trackname);
+ QApplication::postEvent(song, pyevent);
+ Py_INCREF(Py_None);
+ return Py_None;
+}
+//------------------------------------------------------------
+// setController
+//------------------------------------------------------------
+void setController(const char* trackname, int ctrltype, int ctrlval)
+{
+ QPybridgeEvent* pyevent = new QPybridgeEvent(QPybridgeEvent::SONG_SETCTRL, ctrltype, ctrlval);
+ pyevent->setS1(trackname);
+ QApplication::postEvent(song, pyevent);
+}
+
+//------------------------------------------------------------
+// setMidiControllerValue
+//------------------------------------------------------------
+PyObject* setMidiControllerValue(PyObject*, PyObject* args)
+{
+ const char* trackname;
+ int ctrltype;
+ int value;
+
+ if (!PyArg_ParseTuple(args, "sii", &trackname, &ctrltype, &value)) {
+ return NULL;
+ }
+
+ setController(trackname, ctrltype, value);
+ Py_INCREF(Py_None);
+ return Py_None;
+}
+
+//------------------------------------------------------------
+// getMidiControllerValue
+//------------------------------------------------------------
+PyObject* getMidiControllerValue(PyObject*, PyObject* args)
+{
+ const char* trackname;
+ int ctrltype;
+
+ if (!PyArg_ParseTuple(args, "si", &trackname, &ctrltype)) {
+ return NULL;
+ }
+
+ Track* t = song->findTrack(QString(trackname));
+ if (t == NULL)
+ return NULL;
+
+ if (t->isMidiTrack() == false) {
+ Py_INCREF(Py_None);
+ return Py_None;
+ }
+
+ MidiTrack* track = (MidiTrack*) t;
+ int channel = track->outChannel();
+ int outport = track->outPort();
+ MidiPort* mp = &midiPorts[outport];
+ if (mp == NULL)
+ return Py_BuildValue("i", -1);
+
+ int value = mp->hwCtrlState(channel, ctrltype);
+ return Py_BuildValue("i", value);
+}
+//------------------------------------------------------------
+// setAudioTrackVolume
+//------------------------------------------------------------
+PyObject* setAudioTrackVolume(PyObject*, PyObject* args)
+{
+ const char* trackname;
+ double volume = 0.0f;
+
+ if (!PyArg_ParseTuple(args, "sd", &trackname, &volume)) {
+ return NULL;
+ }
+
+ QPybridgeEvent* pyevent = new QPybridgeEvent(QPybridgeEvent::SONG_SETAUDIOVOL);
+ pyevent->setD1(volume);
+ pyevent->setS1(trackname);
+ QApplication::postEvent(song, pyevent);
+ Py_INCREF(Py_None);
+ return Py_None;
+}
+//------------------------------------------------------------
+// getAudioTrackVolume
+//------------------------------------------------------------
+PyObject* getAudioTrackVolume(PyObject*, PyObject* args)
+{
+ const char* trackname;
+
+ if (!PyArg_ParseTuple(args, "s", &trackname)) {
+ return NULL;
+ }
+
+ Track* t = song->findTrack(QString(trackname));
+ if (t == NULL)
+ return NULL;
+
+ if (t->type() == Track::DRUM || t->type() == Track::MIDI)
+ return NULL;
+
+ AudioTrack* track = (AudioTrack*) t;
+ return Py_BuildValue("d", track->volume());
+}
+
+//------------------------------------------------------------
+// getSelectedTrack
+//------------------------------------------------------------
+PyObject* getSelectedTrack(PyObject*, PyObject*)
+{
+ TrackList* tracks = song->tracks();
+ for (ciTrack t = tracks->begin(); t != tracks->end(); ++t) {
+ Track* track = *t;
+ if (track->selected())
+ return Py_BuildValue("s", track->name().latin1());
+ }
+
+ Py_INCREF(Py_None);
+ return Py_None;
+}
+
+//------------------------------------------------------------
+// importPart
+//------------------------------------------------------------
+PyObject* importPart(PyObject*, PyObject* args)
+{
+ const char* trackname;
+ const char* filename;
+ int tick;
+
+ if (!PyArg_ParseTuple(args, "ssi", &trackname, &filename, &tick)) {
+ return NULL;
+ }
+
+ QPybridgeEvent* pyevent = new QPybridgeEvent(QPybridgeEvent::SONG_IMPORT_PART, tick);
+ pyevent->setS1(trackname);
+ pyevent->setS2(filename);
+ QApplication::postEvent(song, pyevent);
+ Py_INCREF(Py_None);
+ return Py_None;
+}
+//------------------------------------------------------------
+// getTrackEffects
+//------------------------------------------------------------
+PyObject* getTrackEffects(PyObject*, PyObject* args)
+{
+ const char* trackname;
+ if (!PyArg_ParseTuple(args, "s", &trackname)) {
+ return NULL;
+ }
+
+ Track* t = song->findTrack(QString(trackname));
+ if (t == NULL)
+ return NULL;
+
+ if (t->type() != Track::WAVE)
+ return NULL;
+
+ AudioTrack* track = (AudioTrack*) t;
+ PyObject* pyfxnames = Py_BuildValue("[]");
+ const Pipeline* pipeline = track->efxPipe();
+ for (int i = 0; i < PipelineDepth; i++) {
+ QString name = pipeline->name(i);
+ printf("fx %d name: %s\n", i, name.latin1());
+ PyObject* pyname = Py_BuildValue("s", name.latin1());
+ PyList_Append(pyfxnames, pyname);
+ Py_DECREF(pyname);
+ }
+
+ return pyfxnames;
+}
+//------------------------------------------------------------
+// toggleTrackEffect
+//------------------------------------------------------------
+PyObject* toggleTrackEffect(PyObject*, PyObject* args)
+{
+ const char* trackname;
+ int fxid;
+ bool onoff;
+
+ if (!PyArg_ParseTuple(args, "sib", &trackname, &fxid, &onoff))
+ return NULL;
+
+ Track* t = song->findTrack(QString(trackname));
+ if (t == NULL)
+ return NULL;
+
+ if (t->type() != Track::WAVE)
+ return NULL;
+
+ QPybridgeEvent* pyevent = new QPybridgeEvent(QPybridgeEvent::SONG_TOGGLE_EFFECT, fxid, onoff);
+ pyevent->setS1(trackname);
+
+ QApplication::postEvent(song, pyevent);
+ Py_INCREF(Py_None);
+ return Py_None;
+}
+//------------------------------------------------------------
+// changeTrackName
+//------------------------------------------------------------
+PyObject* changeTrackName(PyObject*, PyObject* args)
+{
+ const char* trackname;
+ const char* newname;
+
+ if (!PyArg_ParseTuple(args, "ss", &trackname, &newname))
+ return NULL;
+
+ Track* t = song->findTrack(QString(trackname));
+ if (t == NULL)
+ return Py_BuildValue("b", false);
+
+ QPybridgeEvent* pyevent = new QPybridgeEvent(QPybridgeEvent::SONG_CHANGE_TRACKNAME);
+ pyevent->setS1(trackname);
+ pyevent->setS2(newname);
+ QApplication::postEvent(song, pyevent);
+ QPybridgeEvent* pyevent2 = new QPybridgeEvent(QPybridgeEvent::SONG_UPDATE, SC_TRACK_MODIFIED);
+ QApplication::postEvent(song, pyevent2);
+ return Py_BuildValue("b", true);
+}
+//------------------------------------------------------------
+// addMidiTrack
+//------------------------------------------------------------
+PyObject* addMidiTrack(PyObject*, PyObject*)
+{
+ QPybridgeEvent* pyevent = new QPybridgeEvent(QPybridgeEvent::SONG_ADD_TRACK, Track::MIDI);
+ QApplication::postEvent(song, pyevent);
+ Py_INCREF(Py_None);
+ return Py_None;
+}
+//------------------------------------------------------------
+// addWaveTrack
+//------------------------------------------------------------
+PyObject* addWaveTrack(PyObject*, PyObject*)
+{
+ QPybridgeEvent* pyevent = new QPybridgeEvent(QPybridgeEvent::SONG_ADD_TRACK, Track::WAVE);
+ QApplication::postEvent(song, pyevent);
+ Py_INCREF(Py_None);
+ return Py_None;
+}
+//------------------------------------------------------------
+// addInput
+//------------------------------------------------------------
+PyObject* addInput(PyObject*, PyObject*)
+{
+ QPybridgeEvent* pyevent = new QPybridgeEvent(QPybridgeEvent::SONG_ADD_TRACK, Track::AUDIO_INPUT);
+ QApplication::postEvent(song, pyevent);
+ Py_INCREF(Py_None);
+ return Py_None;
+}
+//------------------------------------------------------------
+// addOutput
+//------------------------------------------------------------
+PyObject* addOutput(PyObject*, PyObject*)
+{
+ QPybridgeEvent* pyevent = new QPybridgeEvent(QPybridgeEvent::SONG_ADD_TRACK, Track::AUDIO_OUTPUT);
+ QApplication::postEvent(song, pyevent);
+ return Py_None;
+}
+//------------------------------------------------------------
+// addGroup
+//------------------------------------------------------------
+PyObject* addGroup(PyObject*, PyObject*)
+{
+ QPybridgeEvent* pyevent = new QPybridgeEvent(QPybridgeEvent::SONG_ADD_TRACK, Track::AUDIO_GROUP);
+ QApplication::postEvent(song, pyevent);
+ return Py_None;
+}
+//------------------------------------------------------------
+// deleteTrack
+//------------------------------------------------------------
+PyObject* deleteTrack(PyObject*, PyObject* args)
+{
+ const char* trackname;
+
+ if (!PyArg_ParseTuple(args, "s", &trackname))
+ return NULL;
+
+ QPybridgeEvent* pyevent = new QPybridgeEvent(QPybridgeEvent::SONG_DELETE_TRACK);
+ pyevent->setS1(trackname);
+ QApplication::postEvent(song, pyevent);
+ return Py_None;
+}
+//------------------------------------------------------------
+// getOutputRoute
+//------------------------------------------------------------
+/*
+PyObject* getOutputRoute(PyObject*, PyObject* args)
+{
+ const char* trackname;
+
+ if (!PyArg_ParseTuple(args, "s", &trackname))
+ return NULL;
+
+ Track* tt = song->findTrack(QString(trackname));
+ if (tt == NULL)
+ return Py_BuildValue("b", false);
+
+ PyObject* routes = Py_BuildValue("[]");
+ if (tt->type() == Track::WAVE && tt->type() == Track::AUDIO_AUX) {
+ AudioTrack* t = (AudioTrack*)tt;
+ RouteList* r = t->outRoutes();
+
+ OutputList* al = song->outputs();
+ for (iAudioOutput i = al->begin(); i != al->end(); ++i) {
+ Track* track = *i;
+ if (t == track)
+ continue;
+
+ QString s(track->name());
+
+ // for (iRoute ir = r->begin(); ir != r->end(); ++ir) {
+ // if (ir->type == 0 && ir->track == track) {
+ // s += "*";
+ // PyList_Append(routes, Py_BuildValue("s", s.latin1()));
+ // break;
+ // }
+ // }
+ //
+ }
+ }
+ else if (tt->type() == Track::AUDIO_OUTPUT) {
+ }
+
+
+
+ return routes;
+}
+*/
+//------------------------------------------------------------
+// Global method definitions for MusE:s Python API
+//
+// This is where global functions in Python is linked to their equivalent C/C++ functions
+//------------------------------------------------------------
+PyMethodDef g_methodDefinitions[] =
+{
+ { "startPlay", startPlay, METH_VARARGS, "Starts playing the song from current position" },
+ { "stopPlay", stopPlay, METH_VARARGS, "Stops playback if currently playing" },
+ { "rewindStart", rewindStart, METH_VARARGS, "Set current position to beginning of song" },
+ { "getCPos", getCPos, METH_NOARGS, "Get current position (in ticks)" },
+ { "getLPos", getLPos, METH_NOARGS, "Get position of left locator (in ticks)" },
+ { "getRPos", getRPos, METH_NOARGS, "Get position of right locator (in ticks)" },
+ { "setPos", setPos, METH_VARARGS, "Set position of locators or current position" },
+ { "getTempo", getTempo, METH_VARARGS, "Get tempo of the song at a particular tick" },
+ { "setLoop", setLoop, METH_VARARGS, "Set loop mode on/off" },
+ { "getLoop", getLoop, METH_NOARGS, "Get loop value" },
+
+ { "getTrackNames", getTrackNames, METH_VARARGS, "Get track names (which are unique)" },
+ { "getParts", getParts, METH_VARARGS, "Get part data from a track" },
+ { "createPart", createPart, METH_VARARGS, "Create a part" },
+ { "modifyPart", modifyPart, METH_O, "Modify a particular part" },
+ { "deletePart", deletePart, METH_VARARGS, "Remove part with a particular serial nr" },
+ { "getSelectedTrack", getSelectedTrack, METH_NOARGS, "Get first selected track" },
+ { "importPart", importPart, METH_VARARGS, "Import part file to a track at a particular position" },
+ { "changeTrackName", changeTrackName, METH_VARARGS, "Change track name" },
+ { "addMidiTrack", addMidiTrack, METH_NOARGS, "Add a midi track" },
+ { "addWaveTrack", addWaveTrack, METH_NOARGS, "Add a wave track" },
+ { "addInput", addInput, METH_NOARGS, "Add audio input" },
+ { "addOutput", addOutput, METH_NOARGS, "Add audio output" },
+ { "addGroup", addGroup, METH_NOARGS, "Add audio group" },
+ { "deleteTrack", deleteTrack, METH_VARARGS, "Delete a track" },
+
+ { "getTrackEffects", getTrackEffects, METH_VARARGS, "Get names of LADSPA effects on a track" },
+ { "toggleTrackEffect", toggleTrackEffect, METH_VARARGS, "Toggle LADSPA effect on/off" },
+ //{ "getOutputRoute", getOutputRoute, METH_VARARGS, "Get route for an audio output" },
+
+ { "setSongLen", setSongLen, METH_VARARGS, "Set length of song (in ticks)" },
+ { "getSongLen", getSongLen, METH_VARARGS, "Get length of song (in ticks)" },
+
+ { "getMute", getMute, METH_VARARGS, "Get track mute property (if track is played or not)" },
+ { "setMute", setMute, METH_VARARGS, "Set track mute property (if track should be played or not)" },
+ { "setMidiControllerValue", setMidiControllerValue, METH_VARARGS, "Set midi controller value for a track" },
+ { "getMidiControllerValue", getMidiControllerValue, METH_VARARGS, "Get midi controller value for a track" },
+ { "setAudioTrackVolume", setAudioTrackVolume, METH_VARARGS, "Set volume on audio track/aux/output/input" },
+ { "getAudioTrackVolume", getAudioTrackVolume, METH_VARARGS, "Get audio track/aux/output/input volume" },
+
+ { "setMidiTrackParameter", setMidiTrackParameter, METH_VARARGS, "Set transposition, velocity, compression or delay on track level" },
+
+ { "getDivision", getDivision, METH_VARARGS, "Number of ticks per 1/4 (?)" },
+
+ {NULL, NULL, NULL, NULL}
+};
+
+/**
+ * This function launches the Pyro name service, which blocks execution
+ * Thus it needs its own thread
+ **/
+static void* pyapithreadfunc(void*)
+{
+ Py_Initialize();
+ PyImport_AddModule("muse");
+ Py_InitModule( "muse", g_methodDefinitions );
+
+ //
+ // Access the "__main__" module and its name-space dictionary.
+ //
+
+ PyObject *pMainModule = PyImport_AddModule( "__main__" );
+ PyObject *pMainDictionary = PyModule_GetDict( pMainModule );
+ string launcherfilename = string(INSTPREFIX) + string("/share/muse/pybridge/museplauncher.py");
+ printf("Initiating MusE Pybridge launcher from %s\n", launcherfilename.c_str());
+ FILE* fp = fopen(launcherfilename.c_str(),"r");
+ PyRun_File(fp, launcherfilename.c_str(), Py_file_input, pMainDictionary, pMainDictionary);
+ fclose(fp);
+
+ return NULL;
+}
+
+/**
+ * This function currently only launches the thread. There should be some kind of check that
+ * things are up and running as they are supposed to
+ */
+bool initPythonBridge()
+{
+ if (pthread_create(&pyapiThread, NULL, ::pyapithreadfunc, 0)) {
+ return false;
+ }
+ return true; // TODO: Verify that things are up and running!
+}
+
+//---------------------------------------------------------
+// event
+//
+// Function in Song class, run in the Qt event thread context.
+// Handles events sent from the Python bridge subsystem
+//
+// This is part of Qt:s event handling and events are fed
+// here via QApplication::postEvent since gui updates should
+// be done by Qt:s GUI thread. QApplication::postEvent is
+// a static method, which is threadsafe. Using the song object
+// from the Python thread is dangerous when it comes to
+// operations that manipulate the gui itself (read is ok)
+//---------------------------------------------------------
+bool Song::event(QEvent* _e)
+{
+ if (_e->type() != QEvent::User)
+ return false; //ignore all events except user events, which are events from Python bridge subsystem
+
+ QPybridgeEvent* e = (QPybridgeEvent*) _e;
+ switch (e->getType()) {
+ case QPybridgeEvent::SONG_UPDATE:
+ this->update(e->getP1());
+ break;
+ case QPybridgeEvent::SONGLEN_CHANGE:
+ this->setLen(e->getP1());
+ break;
+ case QPybridgeEvent::SONG_POSCHANGE:
+ this->setPos(e->getP1(), e->getP2());
+ break;
+ case QPybridgeEvent::SONG_SETPLAY:
+ this->setPlay(true);
+ break;
+ case QPybridgeEvent::SONG_SETSTOP:
+ this->setStop(true);
+ break;
+ case QPybridgeEvent::SONG_REWIND:
+ this->rewindStart();
+ break;
+ case QPybridgeEvent::SONG_SETMUTE: {
+ Track* track = this->findTrack(e->getS1());
+ if (track == NULL)
+ return false;
+
+ bool muted = e->getP1() == 1;
+ track->setMute(muted);
+ this->update(SC_MUTE | SC_TRACK_MODIFIED);
+ break;
+ }
+ case QPybridgeEvent::SONG_SETCTRL: {
+ Track* t = this->findTrack(e->getS1());
+ if (t == NULL)
+ return false;
+
+ if (t->isMidiTrack() == false)
+ return false;
+
+ MidiTrack* track = (MidiTrack*) t;
+ int chan = track->outChannel();
+
+ int num = e->getP1();
+ int val = e->getP2();
+ int tick = song->cpos();
+ MidiPlayEvent ev(tick, track->outPort(), chan, ME_CONTROLLER, num, val);
+ audio->msgPlayMidiEvent(&ev);
+ song->update(SC_MIDI_CONTROLLER);
+ break;
+ }
+ case QPybridgeEvent::SONG_SETAUDIOVOL: {
+ Track* t = this->findTrack(e->getS1());
+ if (t == NULL)
+ return false;
+
+ if (t->type() == Track::DRUM || t->type() == Track::MIDI)
+ return false;
+
+ AudioTrack* track = (AudioTrack*) t;
+ track->setVolume(e->getD1());
+ break;
+ }
+ case QPybridgeEvent::SONG_IMPORT_PART: {
+ Track* track = this->findTrack(e->getS1());
+ QString filename = e->getS2();
+ unsigned int tick = e->getP1();
+ if (track == NULL)
+ return false;
+
+ muse->importPartToTrack(filename, tick, track);
+ break;
+ }
+ case QPybridgeEvent::SONG_TOGGLE_EFFECT: {
+ Track* t = this->findTrack(e->getS1());
+ if (t == NULL)
+ return false;
+
+ if (t->type() != Track::WAVE)
+ return false;
+
+ int fxid = e->getP1();
+
+ if (fxid > PipelineDepth)
+ return false;
+
+ int onoff = (e->getP2() == 1);
+
+ AudioTrack* track = (AudioTrack*) t;
+ Pipeline* pipeline = track->efxPipe();
+ pipeline->setOn(fxid, onoff);
+ break;
+ }
+ case QPybridgeEvent::SONG_ADD_TRACK:
+ song->addTrack(e->getP1());
+ break;
+ case QPybridgeEvent::SONG_CHANGE_TRACKNAME: {
+ Track* t = this->findTrack(e->getS1());
+ if (t == NULL)
+ return false;
+ t->setName(e->getS2());
+ break;
+ }
+ case QPybridgeEvent::SONG_DELETE_TRACK: {
+ Track* t = this->findTrack(e->getS1());
+ if (t == NULL)
+ return false;
+
+ audio->msgRemoveTrack(t);
+ break;
+ }
+ default:
+ printf("Unknown pythonthread event received: %d\n", e->getType());
+ break;
+ }
+
+
+ return true;
+}
+
+
diff --git a/muse2/muse/remote/pyapi.h b/muse2/muse/remote/pyapi.h
new file mode 100644
index 00000000..582f8b34
--- /dev/null
+++ b/muse2/muse/remote/pyapi.h
@@ -0,0 +1,40 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// (C) Copyright 2009 Mathias Gyllengahm (lunar_shuttle@users.sf.net)
+//=========================================================
+#ifndef PYAPI_H
+#define PYAPI_H
+
+#include <qevent.h>
+
+class QPybridgeEvent : public QEvent
+{
+public:
+ enum EventType { SONG_UPDATE=0, SONGLEN_CHANGE, SONG_POSCHANGE, SONG_SETPLAY, SONG_SETSTOP, SONG_REWIND, SONG_SETMUTE,
+ SONG_SETCTRL, SONG_SETAUDIOVOL, SONG_IMPORT_PART, SONG_TOGGLE_EFFECT, SONG_ADD_TRACK, SONG_CHANGE_TRACKNAME,
+ SONG_DELETE_TRACK };
+ QPybridgeEvent( QPybridgeEvent::EventType _type, int _p1=0, int _p2=0);
+ EventType getType() { return type; }
+ int getP1() { return p1; }
+ int getP2() { return p2; }
+ void setS1(QString in) { s1 = in; }
+ void setS2(QString in) { s2 = in; }
+ const QString& getS1() { return s1; }
+ const QString& getS2() { return s2; }
+ double getD1() { return d1; }
+ void setD1(double _d1) { d1 = _d1; }
+
+private:
+ EventType type;
+ int p1, p2;
+ double d1;
+ QString s1;
+ QString s2;
+
+};
+
+bool initPythonBridge();
+
+#endif
+
diff --git a/muse2/muse/route.cpp b/muse2/muse/route.cpp
new file mode 100644
index 00000000..090134ec
--- /dev/null
+++ b/muse2/muse/route.cpp
@@ -0,0 +1,1633 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: route.cpp,v 1.18.2.3 2008/05/21 00:28:52 terminator356 Exp $
+//
+// (C) Copyright 2003-2004 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include <qwidget.h>
+
+#include "song.h"
+#include "route.h"
+#include "node.h"
+#include "audio.h"
+#include "track.h"
+#include "synth.h"
+#include "audiodev.h"
+#include "xml.h"
+#include "midiport.h"
+#include "driver/jackmidi.h"
+#include "driver/alsamidi.h"
+
+//#define ROUTE_DEBUG
+
+//#define ROUTE_MIDIPORT_NAME_PREFIX "MusE MidiPort "
+const QString ROUTE_MIDIPORT_NAME_PREFIX = "MusE MidiPort ";
+
+//---------------------------------------------------------
+// Route
+//---------------------------------------------------------
+
+Route::Route(void* t, int ch)
+ {
+ jackPort = t;
+ midiPort = -1;
+ channel = ch;
+ channels = -1;
+ remoteChannel = -1;
+ type = JACK_ROUTE;
+ }
+
+//Route::Route(AudioTrack* t, int ch)
+Route::Route(Track* t, int ch, int chans)
+//Route::Route(Track* t, int ch)
+ {
+ track = t;
+ midiPort = -1;
+ channel = ch;
+ channels = chans;
+ remoteChannel = -1;
+ type = TRACK_ROUTE;
+ }
+
+//Route::Route(MidiJackDevice* d)
+Route::Route(MidiDevice* d, int ch)
+{
+ device = d;
+ midiPort = -1;
+ channel = ch;
+ channels = -1;
+ remoteChannel = -1;
+ /*
+ //if(dynamic_cast<MidiJackDevice*>(d))
+ if(d->deviceType() == MidiDevice::JACK_MIDI)
+ type = JACK_MIDI_ROUTE;
+ else
+ //if(dynamic_cast<MidiAlsaDevice*>(d))
+ if(d->deviceType() == MidiDevice::ALSA_MIDI)
+ type = ALSA_MIDI_ROUTE;
+ */
+ type = MIDI_DEVICE_ROUTE;
+}
+
+Route::Route(int port, int ch) // p3.3.49
+{
+ track = 0;
+ midiPort = port;
+ channel = ch;
+ channels = -1;
+ remoteChannel = -1;
+ type = MIDI_PORT_ROUTE;
+}
+
+//Route::Route(const QString& s, bool dst, int ch)
+Route::Route(const QString& s, bool dst, int ch, int rtype)
+ {
+ //Route node(name2route(s, dst));
+ Route node(name2route(s, dst, rtype));
+ channel = node.channel;
+ if(channel == -1)
+ channel = ch;
+ //if(channels == -1)
+ // channels = chans;
+ channels = node.channels;
+ remoteChannel = node.remoteChannel;
+ type = node.type;
+ if(type == TRACK_ROUTE)
+ {
+ track = node.track;
+ midiPort = -1;
+ }
+ else
+ if(type == JACK_ROUTE)
+ {
+ jackPort = node.jackPort;
+ midiPort = -1;
+ }
+ /*
+ else
+ if (type == JACK_MIDI_ROUTE)
+ device = node.device;
+ else
+ if (type == ALSA_MIDI_ROUTE)
+ device = node.device;
+ */
+ else
+ if(type == MIDI_DEVICE_ROUTE)
+ {
+ device = node.device;
+ midiPort = -1;
+ }
+ else
+ if(type == MIDI_PORT_ROUTE) // p3.3.49
+ {
+ track = 0;
+ midiPort = node.midiPort; //
+ }
+ }
+
+Route::Route()
+ {
+ track = 0;
+ midiPort = -1;
+ channel = -1;
+ channels = -1;
+ remoteChannel = -1;
+ type = TRACK_ROUTE;
+ }
+
+//---------------------------------------------------------
+// addRoute
+//---------------------------------------------------------
+
+void addRoute(Route src, Route dst)
+{
+ #ifdef ROUTE_DEBUG
+ fprintf(stderr, "addRoute:\n");
+ #endif
+
+ if (!src.isValid() || !dst.isValid())
+ {
+ if(!src.isValid())
+ fprintf(stderr, "addRoute: invalid src\n");
+ if(!dst.isValid())
+ fprintf(stderr, "addRoute: invalid dst\n");
+ return;
+ }
+
+// printf("addRoute %d.%d:<%s> %d.%d:<%s>\n",
+// src.type, src.channel, src.name().latin1(),
+// dst.type, dst.channel, dst.name().latin1());
+ if (src.type == Route::JACK_ROUTE)
+ {
+ //if (dst.type != TRACK_ROUTE)
+ //{
+ // fprintf(stderr, "addRoute: bad route 1\n");
+ // exit(-1);
+ // return;
+ //}
+
+ if (dst.type == Route::TRACK_ROUTE)
+ {
+ if (dst.track->type() != Track::AUDIO_INPUT)
+ {
+ fprintf(stderr, "addRoute: source is jack, dest:%s is track but not audio input\n", dst.track->name().latin1());
+ //exit(-1);
+ return;
+ }
+ if (dst.channel < 0)
+ {
+ fprintf(stderr, "addRoute: source is jack, dest:%s is track but invalid channel:%d\n", dst.track->name().latin1(), dst.channel);
+ //exit(-1);
+ return;
+ }
+
+ //src.channel = src.dstChannel = dst.channel;
+ src.channel = dst.channel;
+ //src.channels = dst.channels = 1;
+ RouteList* inRoutes = dst.track->inRoutes();
+ for (iRoute i = inRoutes->begin(); i != inRoutes->end(); ++i)
+ {
+ if (*i == src) // route already there
+ {
+ //#ifdef ROUTE_DEBUG
+ fprintf(stderr, "addRoute: src track route already exists.\n");
+ //#endif
+ return;
+ }
+ }
+ #ifdef ROUTE_DEBUG
+ fprintf(stderr, "addRoute: src Jack dst track name: %s pushing source route\n", dst.track->name().latin1());
+ #endif
+ inRoutes->push_back(src);
+ }
+ else
+ //if (dst.type == Route::JACK_MIDI_ROUTE)
+ if (dst.type == Route::MIDI_DEVICE_ROUTE)
+ //if (dst.type == Route::MIDI_PORT_ROUTE) // p3.3.49
+ {
+ //MidiDevice *md = midiPorts[dst.midiPort].device();
+ //if(dst.device->deviceType() == MidiDevice::JACK_MIDI)
+ //if(!md)
+ //{
+ // fprintf(stderr, "addRoute: source is Jack, but no destination port device\n");
+ // return;
+ //}
+
+ if(dst.device->deviceType() == MidiDevice::JACK_MIDI)
+ //if(md->deviceType() == MidiDevice::JACK_MIDI)
+ {
+ src.channel = dst.channel;
+ //src.channel = -1;
+ //src.channel = 0;
+ //src.channel = src.dstChannel = dst.channel;
+ //src.channels = dst.channels = 1;
+ //dst.channel = -1;
+
+ RouteList* routes = dst.device->inRoutes();
+ for (iRoute i = routes->begin(); i != routes->end(); ++i)
+ {
+ if (*i == src) // route already there
+ {
+ //#ifdef ROUTE_DEBUG
+ fprintf(stderr, "addRoute: src Jack midi route already exists.\n");
+ //#endif
+ return;
+ }
+ }
+ #ifdef ROUTE_DEBUG
+ fprintf(stderr, "addRoute: src Jack dst Jack midi name: %s pushing source route\n", dst.device->name().latin1());
+ #endif
+ routes->push_back(src);
+ }
+ else
+ {
+ fprintf(stderr, "addRoute: source is Jack, but destination is not jack midi - type:%d\n", dst.device->deviceType());
+ // exit(-1);
+ return;
+ }
+ }
+ else
+ {
+ fprintf(stderr, "addRoute: source is Jack, but destination is not track or midi - type:%d \n", dst.type);
+ // exit(-1);
+ return;
+ }
+ }
+ else if (dst.type == Route::JACK_ROUTE)
+ {
+ //if (src.type != TRACK_ROUTE)
+ //{
+ // fprintf(stderr, "addRoute: bad route 3\n");
+ // exit(-1);
+ // return;
+ //}
+
+ if (src.type == Route::TRACK_ROUTE)
+ {
+ if (src.track->type() != Track::AUDIO_OUTPUT)
+ {
+ fprintf(stderr, "addRoute: destination is jack, source is track but not audio output\n");
+ // exit(-1);
+ return;
+ }
+ if (src.channel < 0)
+ {
+ fprintf(stderr, "addRoute: destination is jack, source:%s is track but invalid channel:%d\n", src.track->name().latin1(), src.channel);
+ // exit(-1);
+ return;
+ }
+
+ RouteList* outRoutes = src.track->outRoutes();
+ //dst.channel = dst.dstChannel = src.channel;
+ dst.channel = src.channel;
+ //dst.channels = src.channels = 1;
+
+ for (iRoute i = outRoutes->begin(); i != outRoutes->end(); ++i)
+ {
+ if (*i == dst) // route already there
+ {
+ #ifdef ROUTE_DEBUG
+ fprintf(stderr, "addRoute: dst track route already exists.\n");
+ #endif
+ return;
+ }
+ }
+ #ifdef ROUTE_DEBUG
+ fprintf(stderr, "addRoute: dst Jack src track name: %s pushing destination route\n", src.track->name().latin1());
+ #endif
+ outRoutes->push_back(dst);
+ }
+ else
+ //if (src.type == Route::JACK_MIDI_ROUTE)
+ if (src.type == Route::MIDI_DEVICE_ROUTE)
+ {
+ if(src.device->deviceType() == MidiDevice::JACK_MIDI)
+ {
+ dst.channel = src.channel;
+ //dst.channel = -1;
+ //src.channel = -1;
+ //dst.channel = dst.dstChannel = src.channel;
+ //dst.channels = src.channels = 1;
+
+ RouteList* routes = src.device->outRoutes();
+ for (iRoute i = routes->begin(); i != routes->end(); ++i)
+ {
+ if (*i == dst) // route already there
+ {
+ //#ifdef ROUTE_DEBUG
+ fprintf(stderr, "addRoute: dst Jack midi route already exists.\n");
+ //#endif
+ return;
+ }
+ }
+ #ifdef ROUTE_DEBUG
+ fprintf(stderr, "addRoute: dst Jack src Jack midi name: %s pushing destination route\n", src.device->name().latin1());
+ #endif
+ routes->push_back(dst);
+ }
+ else
+ {
+ fprintf(stderr, "addRoute: destination is Jack, but source is not jack midi - type:%d\n", src.device->deviceType());
+ // exit(-1);
+ return;
+ }
+ }
+ else
+ {
+ fprintf(stderr, "addRoute: destination is Jack, but source is not track or midi - type:%d \n", src.type);
+ // exit(-1);
+ return;
+ }
+ }
+ else if(src.type == Route::MIDI_PORT_ROUTE) // p3.3.49
+ {
+ if(dst.type != Route::TRACK_ROUTE)
+ {
+ fprintf(stderr, "addRoute: source is midi port:%d, but destination is not track\n", src.midiPort);
+ return;
+ }
+ if(dst.channel < 1 || dst.channel >= (1 << MIDI_CHANNELS))
+ {
+ fprintf(stderr, "addRoute: source is midi port:%d, but destination channel mask:%d out of range\n", src.midiPort, dst.channel);
+ return;
+ }
+
+ //MidiDevice *md = midiPorts[src.midiPort].device();
+ //if(!md)
+ //{
+ // fprintf(stderr, "addRoute: source is midi port, but no destination port device\n");
+ // return;
+ //}
+
+ MidiPort *mp = &midiPorts[src.midiPort];
+
+ src.channel = dst.channel;
+ RouteList* outRoutes = mp->outRoutes();
+ //for (iRoute i = outRoutes->begin(); i != outRoutes->end(); ++i)
+ iRoute ir = outRoutes->begin(); // p3.3.50
+ for ( ; ir != outRoutes->end(); ++ir)
+ {
+ //if (*i == dst) // route already there
+ if (ir->type == Route::TRACK_ROUTE && ir->track == dst.track) // p3.3.50 Does a route to the track exist?
+ {
+ //#ifdef ROUTE_DEBUG
+ //fprintf(stderr, "addRoute: src midi port:%d dst track:%s route already exists.\n", src.midiPort, dst.track->name().latin1());
+ //#endif
+ ir->channel |= dst.channel; // p3.3.50 Bitwise OR the desired channel bit with the existing bit mask.
+ break;
+
+ //return;
+ }
+ }
+ #ifdef ROUTE_DEBUG
+ fprintf(stderr, "addRoute: src midi port:%d dst track name:%s pushing dst and src routes\n", src.midiPort, dst.track->name().latin1());
+ #endif
+
+ if(ir == outRoutes->end()) // p3.3.50 Only if route not found, add the route, with the requested channel bits as mask to start with.
+ outRoutes->push_back(dst);
+
+ RouteList* inRoutes = dst.track->inRoutes();
+
+ // p3.3.50 Make sure only one single route, with a channel mask, can ever exist.
+ ir = inRoutes->begin();
+ for ( ; ir != inRoutes->end(); ++ir)
+ {
+ if (ir->type == Route::MIDI_PORT_ROUTE && ir->midiPort == src.midiPort) // p3.3.50 Does a route to the midi port exist?
+ {
+ ir->channel |= src.channel; // p3.3.50 Bitwise OR the desired channel bit with the existing bit mask.
+ break;
+ }
+ }
+
+ if(ir == inRoutes->end()) // p3.3.50 Only if route not found, add the route, with the requested channel bits as mask to start with.
+ inRoutes->push_back(src);
+ }
+ else if(dst.type == Route::MIDI_PORT_ROUTE) // p3.3.49
+ {
+ if(src.type != Route::TRACK_ROUTE)
+ {
+ fprintf(stderr, "addRoute: destination is midi port:%d, but source is not track\n", dst.midiPort);
+ return;
+ }
+ if(src.channel < 1 || src.channel >= (1 << MIDI_CHANNELS))
+ {
+ fprintf(stderr, "addRoute: destination is midi port:%d, but source channel mask:%d out of range\n", dst.midiPort, src.channel);
+ return;
+ }
+
+
+ //MidiDevice *md = midiPorts[dst.midiPort].device();
+ //if(!md)
+ //{
+ // fprintf(stderr, "addRoute: dst is midi port, but no destination port device\n");
+ // return;
+ //}
+
+ dst.channel = src.channel;
+ RouteList* outRoutes = src.track->outRoutes();
+
+ //for (iRoute i = outRoutes->begin(); i != outRoutes->end(); ++i)
+ iRoute ir = outRoutes->begin(); // p3.3.50
+ for ( ; ir != outRoutes->end(); ++ir)
+ {
+ //if (*i == dst) // route already there
+ if (ir->type == Route::MIDI_PORT_ROUTE && ir->midiPort == dst.midiPort) // p3.3.50 Does a route to the midi port exist?
+ {
+ //#ifdef ROUTE_DEBUG
+ //fprintf(stderr, "addRoute: dst midi port:%d src track:%s route already exists.\n", dst.midiPort, src.track->name().latin1());
+ //#endif
+ //return;
+
+ ir->channel |= dst.channel; // p3.3.50 Bitwise OR the desired channel bit with the existing bit mask.
+ break;
+ }
+ }
+
+ if(ir == outRoutes->end()) // p3.3.50 Only if route not found, add the route, with the requested channel bits as mask to start with.
+ outRoutes->push_back(dst);
+
+ MidiPort *mp = &midiPorts[dst.midiPort];
+
+ #ifdef ROUTE_DEBUG
+ fprintf(stderr, "addRoute: src track:%s dst midi port:%d pushing dst and src routes\n", src.track->name().latin1(), dst.midiPort);
+ #endif
+ RouteList* inRoutes = mp->inRoutes();
+
+ // p3.3.50 Make sure only one single route, with a channel mask, can ever exist.
+ ir = inRoutes->begin();
+ for ( ; ir != inRoutes->end(); ++ir)
+ {
+ if (ir->type == Route::TRACK_ROUTE && ir->track == src.track) // p3.3.50 Does a route to the track exist?
+ {
+ ir->channel |= src.channel; // p3.3.50 Bitwise OR the desired channel bit with the existing bit mask.
+ break;
+ }
+ }
+
+ if(ir == inRoutes->end()) // p3.3.50 Only if route not found, add the route, with the requested channel bits as mask to start with.
+ inRoutes->push_back(src);
+ //inRoutes->insert(inRoutes->begin(), src);
+ }
+ else
+ {
+ if(src.type != Route::TRACK_ROUTE || dst.type != Route::TRACK_ROUTE) // p3.3.49
+ {
+ fprintf(stderr, "addRoute: source and destination are not track routes\n");
+ return;
+ }
+
+ // Removed p3.3.49
+ /*
+ //if ((src.type == Route::JACK_MIDI_ROUTE) || (src.type == Route::ALSA_MIDI_ROUTE))
+ if(src.type == Route::MIDI_DEVICE_ROUTE)
+ {
+ //src.channel = src.dstChannel = dst.dstChannel = dst.channel;
+ src.channel = dst.channel;
+ //src.channels = dst.channels = 1;
+ RouteList* outRoutes = src.device->outRoutes();
+ #ifdef ROUTE_DEBUG
+ fprintf(stderr, "addRoute: src name: %s looking for existing dest in out routes...\n", src.device->name().latin1());
+ #endif
+ for (iRoute i = outRoutes->begin(); i != outRoutes->end(); ++i)
+ {
+ if (*i == dst) // route already there
+ {
+ //#ifdef ROUTE_DEBUG
+ fprintf(stderr, "addRoute: src Jack or ALSA midi route already exists.\n");
+ //#endif
+ return;
+ }
+ }
+ #ifdef ROUTE_DEBUG
+ fprintf(stderr, "addRoute: src midi dst name: %s pushing destination and source routes\n", dst.track->name().latin1());
+ #endif
+
+ outRoutes->push_back(dst);
+ RouteList* inRoutes = dst.track->inRoutes();
+ inRoutes->push_back(src);
+ }
+ else
+ */
+
+ {
+ ///if(dst.type == Route::MIDI_DEVICE_ROUTE) // Removed p3.3.49
+ //{
+ /// dst.channel = src.channel;
+ //src.channel = src.dstChannel = dst.dstChannel = dst.channel;
+ //src.channels = dst.channels = 1;
+ //}
+ //else
+ //{
+ //src.channel = src.dstChannel = dst.dstChannel = dst.channel;
+ //src.channels = dst.channels = 1;
+ //}
+
+ RouteList* outRoutes = src.track->outRoutes();
+
+ //
+ // Must enforce to ensure channel and channels are valid if defaults of -1 passed.
+ //
+ if(src.track->type() == Track::AUDIO_SOFTSYNTH)
+ {
+ if(src.channel == -1)
+ src.channel = 0;
+ if(src.channels == -1)
+ src.channels = src.track->channels();
+ //if(dst.type == Route::TRACK_ROUTE) // p3.3.49 Removed
+ //{
+ //if(dst.channel == -1)
+ // dst.channel = 0;
+ //if(dst.channels == -1)
+ // Yes, that's correct: dst channels = src track channels.
+ // dst.channels = src.track->channels();
+ dst.channel = src.channel;
+ dst.channels = src.channels;
+ dst.remoteChannel = src.remoteChannel;
+ //}
+ }
+ //if(dst.type == Route::TRACK_ROUTE && dst.track->type() == Track::AUDIO_SOFTSYNTH)
+ //{
+ // if(dst.channel == -1)
+ // dst.channel = 0;
+ // if(dst.channels == -1)
+ // Yes, that's correct: dst channels = src track channels.
+ // dst.channels = src.track->channels();
+ //}
+
+ for (iRoute i = outRoutes->begin(); i != outRoutes->end(); ++i)
+ {
+ if (*i == dst) // route already there
+ // TODO:
+ //if (i->type == dst.type && i->channel == dst.channel)
+ {
+ //if(i->type == Route::TRACK_ROUTE)
+ {
+ //if(i->track == dst.track)
+ {
+ //if(i->channels == dst.channels)
+ {
+ //#ifdef ROUTE_DEBUG
+ fprintf(stderr, "addRoute: src track route already exists.\n");
+ //#endif
+ return;
+ }
+ //else
+ //{
+
+ //}
+ }
+ }
+ }
+ }
+ outRoutes->push_back(dst);
+ RouteList* inRoutes;
+
+ // Removed p3.3.49
+ /*
+ //if ((dst.type == Route::JACK_MIDI_ROUTE) || (dst.type == Route::ALSA_MIDI_ROUTE))
+ if(dst.type == Route::MIDI_DEVICE_ROUTE)
+ {
+ #ifdef ROUTE_DEBUG
+ fprintf(stderr, "addRoute: src track dst midi name: %s pushing destination and source routes\n", dst.device->name().latin1());
+ #endif
+ inRoutes = dst.device->inRoutes();
+ }
+ else
+ */
+
+ {
+ #ifdef ROUTE_DEBUG
+ //fprintf(stderr, "addRoute: src track ch:%d chs:%d dst track ch:%d chs:%d name: %s pushing destination and source routes\n", src.channel, src.channels, dst.channel, dst.channels, dst.track->name().latin1());
+ fprintf(stderr, "addRoute: src track ch:%d chs:%d remch:%d dst track ch:%d chs:%d remch:%d name: %s pushing dest and source routes\n",
+ src.channel, src.channels, src.remoteChannel, dst.channel, dst.channels, dst.remoteChannel, dst.track->name().latin1());
+ //fprintf(stderr, "addRoute: src track ch:%d dst track ch:%d name: %s pushing destination and source routes\n", src.channel, dst.channel, dst.track->name().latin1());
+ #endif
+ inRoutes = dst.track->inRoutes();
+ }
+
+
+ //
+ // make sure AUDIO_AUX is processed last
+ //
+ if (src.track->type() == Track::AUDIO_AUX)
+ inRoutes->push_back(src);
+ else
+ inRoutes->insert(inRoutes->begin(), src);
+ }
+ }
+}
+
+//---------------------------------------------------------
+// removeRoute
+//---------------------------------------------------------
+
+void removeRoute(Route src, Route dst)
+{
+ //printf("removeRoute %d.%d:<%s> %d.%d:<%s>\n",
+ // src.type, src.channel, src.name().latin1(),
+ // dst.type, dst.channel, dst.name().latin1());
+
+ if (src.type == Route::JACK_ROUTE)
+ {
+ //if (dst.type != TRACK_ROUTE)
+ //{
+ // fprintf(stderr, "removeRoute: bad route 1\n");
+ // exit(-1);
+ // return;
+ //}
+ if(!dst.isValid())
+ {
+ printf("removeRoute: source is jack, invalid destination\n");
+ return;
+ }
+
+ if (dst.type == Route::TRACK_ROUTE)
+ {
+ if (dst.track->type() != Track::AUDIO_INPUT)
+ {
+ fprintf(stderr, "removeRoute: source is jack, destination is track but not audio input\n");
+ // exit(-1);
+ return;
+ }
+ RouteList* inRoutes = dst.track->inRoutes();
+ iRoute i;
+ for (i = inRoutes->begin(); i != inRoutes->end(); ++i)
+ {
+ if (*i == src)
+ {
+ inRoutes->erase(i);
+ break;
+ }
+ }
+ }
+ else
+ //if (dst.type == Route::JACK_MIDI_ROUTE)
+ if (dst.type == Route::MIDI_DEVICE_ROUTE)
+ {
+ RouteList* routes = dst.device->inRoutes();
+ iRoute i;
+ for (i = routes->begin(); i != routes->end(); ++i)
+ {
+ if (*i == src)
+ {
+ routes->erase(i);
+ break;
+ }
+ }
+ }
+ else
+ {
+ fprintf(stderr, "removeRoute: source is jack, destination unknown\n");
+ // exit(-1);
+ return;
+ }
+ }
+ else if (dst.type == Route::JACK_ROUTE)
+ {
+ //if (src.type != TRACK_ROUTE)
+ //{
+ // fprintf(stderr, "removeRoute: bad route 3\n");
+ // exit(-1);
+ // return;
+ //}
+ if(!src.isValid())
+ {
+ printf("removeRoute: destination is jack, invalid source\n");
+ return;
+ }
+
+ if (src.type == Route::TRACK_ROUTE)
+ {
+ if (src.track->type() != Track::AUDIO_OUTPUT)
+ {
+ fprintf(stderr, "removeRoute: destination is jack, source is track but not audio output\n");
+ // exit(-1);
+ return;
+ }
+ RouteList* outRoutes = src.track->outRoutes();
+ iRoute i;
+ for (i = outRoutes->begin(); i != outRoutes->end(); ++i)
+ {
+ if (*i == dst) {
+ outRoutes->erase(i);
+ break;
+ }
+ }
+ }
+ else
+ //if (src.type == Route::JACK_MIDI_ROUTE)
+ if (src.type == Route::MIDI_DEVICE_ROUTE)
+ {
+ RouteList* routes = src.device->outRoutes();
+ iRoute i;
+ for (i = routes->begin(); i != routes->end(); ++i)
+ {
+ if (*i == dst) {
+ routes->erase(i);
+ break;
+ }
+ }
+ }
+ else
+ {
+ fprintf(stderr, "removeRoute: destination is jack, source unknown\n");
+ // exit(-1);
+ return;
+ }
+ }
+ else if(src.type == Route::MIDI_PORT_ROUTE) // p3.3.49
+ {
+ if(dst.type != Route::TRACK_ROUTE)
+ {
+ fprintf(stderr, "removeRoute: source is midi port:%d, but destination is not track\n", src.midiPort);
+ return;
+ }
+
+ if(src.isValid())
+ {
+ MidiPort *mp = &midiPorts[src.midiPort];
+ RouteList* outRoutes = mp->outRoutes();
+ for (iRoute i = outRoutes->begin(); i != outRoutes->end(); ++i)
+ {
+ //if (*i == dst)
+ if (i->type == Route::TRACK_ROUTE && i->track == dst.track) // p3.3.50 Is there a route to the track?
+ {
+ i->channel &= ~dst.channel; // p3.3.50 Unset the desired channel bits.
+ if(i->channel == 0) // Only if there are no channel bits set, erase the route.
+ outRoutes->erase(i);
+
+ break; // For safety, keep looking and remove any more found.
+ // No, must break, else crash. There should only be one route anyway...
+ }
+ }
+ }
+ else
+ printf("removeRoute: source is midi port:%d but invalid\n", src.midiPort);
+
+ if(dst.isValid())
+ {
+ RouteList* inRoutes = dst.track->inRoutes();
+ for (iRoute i = inRoutes->begin(); i != inRoutes->end(); ++i)
+ {
+ //if (*i == src)
+ if (i->type == Route::MIDI_PORT_ROUTE && i->midiPort == src.midiPort) // p3.3.50 Is there a route to the midi port?
+ {
+ i->channel &= ~src.channel; // p3.3.50 Unset the desired channel bits.
+ if(i->channel == 0) // Only if there are no channel bits set, erase the route.
+ inRoutes->erase(i);
+
+ break; // For safety, keep looking and remove any more found.
+ // No, must break, else crash. There should only be one route anyway...
+ }
+ }
+ }
+ else
+ printf("removeRoute: source is midi port:%d but destination track invalid\n", src.midiPort);
+ }
+ else if(dst.type == Route::MIDI_PORT_ROUTE) // p3.3.49
+ {
+ if(src.type != Route::TRACK_ROUTE)
+ {
+ fprintf(stderr, "removeRoute: destination is midi port:%d, but source is not track\n", dst.midiPort);
+ return;
+ }
+
+ if(src.isValid())
+ {
+ RouteList* outRoutes = src.track->outRoutes();
+ for (iRoute i = outRoutes->begin(); i != outRoutes->end(); ++i)
+ {
+ //if (*i == dst)
+ if (i->type == Route::MIDI_PORT_ROUTE && i->midiPort == dst.midiPort) // p3.3.50 Is there a route to the midi port?
+ {
+ i->channel &= ~dst.channel; // p3.3.50 Unset the desired channel bits.
+ if(i->channel == 0) // Only if there are no channel bits set, erase the route.
+ outRoutes->erase(i);
+
+ break; // For safety, keep looking and remove any more found.
+ // No, must break, else crash. There should only be one route anyway...
+ }
+ }
+ }
+ else
+ printf("removeRoute: destination is midi port:%d but source track is invalid\n", dst.midiPort);
+
+ if(dst.isValid())
+ {
+ MidiPort *mp = &midiPorts[src.midiPort];
+ RouteList* inRoutes = mp->inRoutes();
+ for (iRoute i = inRoutes->begin(); i != inRoutes->end(); ++i)
+ {
+ //if (*i == src)
+ if (i->type == Route::TRACK_ROUTE && i->track == src.track) // p3.3.50 Is there a route to the track?
+ {
+ i->channel &= ~src.channel; // p3.3.50 Unset the desired channel bits.
+ if(i->channel == 0) // Only if there are no channel bits set, erase the route.
+ inRoutes->erase(i);
+
+ break; // For safety, keep looking and remove any more found.
+ // No, must break, else crash. There should only be one route anyway...
+ }
+ }
+ }
+ else
+ printf("removeRoute: destination is midi port:%d but invalid\n", dst.midiPort);
+ }
+ else
+ {
+ if(src.type != Route::TRACK_ROUTE || dst.type != Route::TRACK_ROUTE) // p3.3.49
+ {
+ fprintf(stderr, "removeRoute: source and destination are not tracks\n");
+ return;
+ }
+
+ // Removed p3.3.49
+ /*
+ //if((src.type == Route::JACK_MIDI_ROUTE) || (src.type == Route::ALSA_MIDI_ROUTE))
+ if(src.type == Route::MIDI_DEVICE_ROUTE)
+ {
+ if(src.isValid())
+ {
+ RouteList* outRoutes = src.device->outRoutes();
+ for (iRoute i = outRoutes->begin(); i != outRoutes->end(); ++i)
+ {
+ if (*i == dst) {
+ outRoutes->erase(i);
+ break;
+ }
+ }
+ }
+ else
+ printf("removeRoute: source is midi but invalid\n");
+
+ if(dst.isValid())
+ {
+ RouteList* inRoutes = dst.track->inRoutes();
+ for (iRoute i = inRoutes->begin(); i != inRoutes->end(); ++i)
+ {
+ if (*i == src) {
+ inRoutes->erase(i);
+ break;
+ }
+ }
+ }
+ else
+ printf("removeRoute: source is midi but destination invalid\n");
+ }
+ else
+ */
+
+ {
+ if(src.isValid())
+ {
+ RouteList* outRoutes = src.track->outRoutes();
+ for (iRoute i = outRoutes->begin(); i != outRoutes->end(); ++i)
+ {
+ if (*i == dst) {
+ outRoutes->erase(i);
+ break;
+ }
+ }
+ }
+ else
+ printf("removeRoute: source is track but invalid\n");
+
+ if(dst.isValid())
+ {
+ RouteList* inRoutes;
+
+ //if ((dst.type == Route::JACK_MIDI_ROUTE) || (dst.type == Route::ALSA_MIDI_ROUTE))
+ // Removed p3.3.49
+ /*
+ if (dst.type == Route::MIDI_DEVICE_ROUTE)
+ inRoutes = dst.device->inRoutes();
+ else
+ */
+
+ inRoutes = dst.track->inRoutes();
+ for (iRoute i = inRoutes->begin(); i != inRoutes->end(); ++i)
+ {
+ if (*i == src) {
+ inRoutes->erase(i);
+ break;
+ }
+ }
+ }
+ else
+ printf("removeRoute: source is track but destination invalid\n");
+ }
+ }
+}
+
+//---------------------------------------------------------
+// track2name
+// create string name representation for audio node
+//---------------------------------------------------------
+
+static QString track2name(const Track* n)
+ {
+ if (n == 0)
+ return QWidget::tr("None");
+ return n->name();
+ }
+
+//---------------------------------------------------------
+// name
+// create string name representation for audio node
+//---------------------------------------------------------
+
+QString Route::name() const
+{
+ // p3.3.38 Removed
+ /*
+ QString s;
+ if ((type == TRACK_ROUTE) && (channel != -1)) {
+// if (channel != -1) {
+ QString c;
+ c.setNum(channel+1);
+ s = c + ":";
+ }
+ */
+
+ if(type == MIDI_DEVICE_ROUTE)
+ {
+ if(device)
+ {
+ if(device->deviceType() == MidiDevice::JACK_MIDI)
+ return audioDevice->portName(device->clientPort());
+ else
+ //if(device->deviceType() == MidiDevice::ALSA_MIDI)
+ return device->name();
+ }
+ return QWidget::tr("None");
+ }
+ else
+ if(type == JACK_ROUTE)
+ {
+ if (!checkAudioDevice()) return "";
+ //return s + audioDevice->portName(jackPort);
+ return audioDevice->portName(jackPort);
+ }
+ else
+ if(type == MIDI_PORT_ROUTE) // p3.3.49
+ {
+ return ROUTE_MIDIPORT_NAME_PREFIX + QString().setNum(midiPort);
+ }
+ else
+ //return s + track2name(track);
+ return track2name(track);
+}
+
+//---------------------------------------------------------
+// name2route
+//---------------------------------------------------------
+
+//Route name2route(const QString& rn, bool dst)
+Route name2route(const QString& rn, bool /*dst*/, int rtype)
+{
+// printf("name2route %s\n", rn.latin1());
+ int channel = -1;
+ //int channel = 0;
+ QString s(rn);
+ // Support old route style in med files. Obsolete.
+ if (rn[0].isNumber() && rn[1]==':')
+ {
+ channel = rn[0].toAscii() - int('1');
+ s = rn.mid(2);
+ }
+
+ if(rtype == -1)
+ {
+ //if(dst)
+ //{
+ if(checkAudioDevice())
+ {
+ void* p = audioDevice->findPort(s.latin1());
+ if(p)
+ return Route(p, channel);
+ }
+
+ TrackList* tl = song->tracks();
+ for(iTrack i = tl->begin(); i != tl->end(); ++i)
+ {
+ if((*i)->isMidiTrack())
+ {
+ MidiTrack* track = (MidiTrack*)*i;
+ if(track->name() == s)
+ return Route(track, channel);
+ }
+ else
+ {
+ AudioTrack* track = (AudioTrack*)*i;
+ if(track->name() == s)
+ return Route(track, channel);
+ }
+ }
+
+ for(iMidiDevice i = midiDevices.begin(); i != midiDevices.end(); ++i)
+ {
+ if((*i)->name() == s)
+ return Route(*i, channel);
+ }
+
+ // p3.3.49
+ if(s.left(ROUTE_MIDIPORT_NAME_PREFIX.length()) == ROUTE_MIDIPORT_NAME_PREFIX)
+ {
+ bool ok = false;
+ int port = s.mid(ROUTE_MIDIPORT_NAME_PREFIX.length()).toInt(&ok);
+ if(ok)
+ return Route(port, channel);
+ }
+ }
+ else
+ {
+ //if(dst)
+ //{
+ if(rtype == Route::TRACK_ROUTE)
+ {
+ TrackList* tl = song->tracks();
+ for(iTrack i = tl->begin(); i != tl->end(); ++i)
+ {
+ if((*i)->isMidiTrack())
+ {
+ MidiTrack* track = (MidiTrack*)*i;
+ if(track->name() == s)
+ return Route(track, channel);
+ }
+ else
+ {
+ AudioTrack* track = (AudioTrack*)*i;
+ if(track->name() == s)
+ return Route(track, channel);
+ //return Route(track, channel, 1);
+ //return Route(track, channel, track->channels());
+ }
+ }
+ }
+ else
+ //if((rtype == Route::JACK_MIDI_ROUTE) || (rtype == Route::ALSA_MIDI_ROUTE))
+ // TODO Distinguish the device types
+ if(rtype == Route::MIDI_DEVICE_ROUTE)
+ {
+ for(iMidiDevice i = midiDevices.begin(); i != midiDevices.end(); ++i)
+ {
+ if((*i)->name() == s)
+ //if (jmd->name() == rn)
+ return Route(*i, channel);
+
+ /*
+ MidiJackDevice* jmd = dynamic_cast<MidiJackDevice*>(*i);
+ if(jmd)
+ {
+ if(jmd->name() == s)
+ //if (jmd->name() == rn)
+ return Route(jmd);
+ }
+ MidiAlsaDevice* amd = dynamic_cast<MidiAlsaDevice*>(*i);
+ if(amd)
+ {
+ // TODO
+ if(amd->name() == s)
+ //if (amd->name() == rn)
+ return Route(amd);
+ }
+ */
+ }
+ }
+ else
+ if(rtype == Route::JACK_ROUTE)
+ {
+ if(checkAudioDevice())
+ {
+ void* p = audioDevice->findPort(s.latin1());
+ if(p)
+ return Route(p, channel);
+ }
+ }
+ else
+ if(rtype == Route::MIDI_PORT_ROUTE) // p3.3.49
+ {
+ if(s.left(ROUTE_MIDIPORT_NAME_PREFIX.length()) == ROUTE_MIDIPORT_NAME_PREFIX)
+ {
+ bool ok = false;
+ int port = s.mid(ROUTE_MIDIPORT_NAME_PREFIX.length()).toInt(&ok);
+ if(ok)
+ return Route(port, channel);
+ }
+ }
+ }
+
+ printf(" name2route: <%s> not found\n", rn.latin1());
+ return Route((Track*) 0, channel);
+ //return Route((Track*) 0, channel, 1);
+}
+
+//---------------------------------------------------------
+// checkRoute
+// return true if route is valid
+//---------------------------------------------------------
+
+bool checkRoute(const QString& s, const QString& d)
+ {
+ Route src(s, false, -1);
+ Route dst(d, true, -1);
+
+ if (!(src.isValid() && dst.isValid()) || (src == dst))
+ return false;
+ if (src.type == Route::JACK_ROUTE)
+ {
+ //if (dst.type != TRACK_ROUTE) {
+ // return false;
+ // }
+
+ if (dst.type == Route::TRACK_ROUTE)
+ {
+ if (dst.track->type() != Track::AUDIO_INPUT) {
+ return false;
+ }
+ src.channel = dst.channel;
+ RouteList* inRoutes = dst.track->inRoutes();
+ for (iRoute i = inRoutes->begin(); i != inRoutes->end(); ++i)
+ {
+ if (*i == src) { // route already there
+ return false;
+ }
+ }
+ }
+ else
+ //if (dst.type == Route::JACK_MIDI_ROUTE)
+ if (dst.type == Route::MIDI_DEVICE_ROUTE)
+ {
+ //src.channel = dst.channel;
+ src.channel = -1;
+ //dst.channel = -1;
+ RouteList* routes = dst.device->inRoutes();
+ for (iRoute i = routes->begin(); i != routes->end(); ++i)
+ {
+ if (*i == src) { // route already there
+ return false;
+ }
+ }
+ }
+ else
+ return false;
+ }
+ else if (dst.type == Route::JACK_ROUTE)
+ {
+ //if (src.type != TRACK_ROUTE) {
+ // return false;
+ // }
+
+ if (src.type == Route::TRACK_ROUTE)
+ {
+ if (src.track->type() != Track::AUDIO_OUTPUT) {
+ return false;
+ }
+ RouteList* outRoutes = src.track->outRoutes();
+ dst.channel = src.channel;
+ for (iRoute i = outRoutes->begin(); i != outRoutes->end(); ++i)
+ {
+ if (*i == dst) { // route already there
+ return false;
+ }
+ }
+ }
+ else
+ //if (src.type == Route::JACK_MIDI_ROUTE)
+ if (src.type == Route::MIDI_DEVICE_ROUTE)
+ {
+ RouteList* routes = src.device->outRoutes();
+ //dst.channel = src.channel;
+ dst.channel = -1;
+ //src.channel = -1;
+ for (iRoute i = routes->begin(); i != routes->end(); ++i)
+ {
+ if (*i == dst) { // route already there
+ return false;
+ }
+ }
+ }
+ else
+ return false;
+ }
+ else if (src.type == Route::MIDI_PORT_ROUTE) // p3.3.49
+ {
+ RouteList* outRoutes = midiPorts[src.midiPort].outRoutes();
+ for (iRoute i = outRoutes->begin(); i != outRoutes->end(); ++i)
+ {
+ if (*i == dst) { // route already there
+ return false;
+ }
+ }
+ }
+ //else if (dst.type == Route::MIDI_PORT_ROUTE) // p3.3.49
+ //{
+ //}
+ else
+ {
+ //RouteList* outRoutes = ((src.type == Route::JACK_MIDI_ROUTE) || (src.type == Route::ALSA_MIDI_ROUTE)) ?
+ // src.device->outRoutes() : src.track->outRoutes();
+ RouteList* outRoutes = (src.type == Route::MIDI_DEVICE_ROUTE) ? src.device->outRoutes() : src.track->outRoutes();
+
+ for (iRoute i = outRoutes->begin(); i != outRoutes->end(); ++i)
+ {
+ if (*i == dst) { // route already there
+ return false;
+ }
+ }
+ }
+ return true;
+ }
+
+//---------------------------------------------------------
+// read
+//---------------------------------------------------------
+
+void Route::read(Xml& xml)
+{
+ QString s;
+ int dtype = MidiDevice::ALSA_MIDI;
+ int port = -1; // p3.3.49
+ unsigned char rtype = Route::TRACK_ROUTE;
+
+ for (;;)
+ {
+ const QString& tag = xml.s1();
+ Xml::Token token = xml.parse();
+ switch (token)
+ {
+ case Xml::Error:
+ case Xml::End:
+ return;
+ //case Xml::TagStart:
+ // xml.unknown("Route");
+ // break;
+ case Xml::Attribut:
+ #ifdef ROUTE_DEBUG
+ printf("Route::read(): attribute:%s\n", tag.latin1());
+ #endif
+ if(tag == "type")
+ rtype = xml.s2().toInt();
+ else
+ if(tag == "devtype")
+ {
+ dtype = xml.s2().toInt();
+ rtype = Route::MIDI_DEVICE_ROUTE;
+ }
+ else
+ if(tag == "name")
+ s = xml.s2();
+ else
+ if(tag == "mport") // p3.3.49
+ {
+ port = xml.s2().toInt();
+ rtype = Route::MIDI_PORT_ROUTE;
+ }
+ else
+ printf("Route::read(): unknown attribute:%s\n", tag.latin1());
+ break;
+ case Xml::TagEnd:
+ #ifdef ROUTE_DEBUG
+ printf("Route::read(): tag end type:%d channel:%d name:%s\n", rtype, channel, s.latin1());
+ #endif
+ if(rtype == MIDI_PORT_ROUTE) // p3.3.49
+ {
+ if(port >= 0 && port < MIDI_PORTS)
+ {
+ type = rtype;
+ midiPort = port;
+ }
+ else
+ printf("Route::read(): midi port <%d> out of range\n", port);
+ }
+ else
+ if(!s.isEmpty())
+ {
+ if(rtype == TRACK_ROUTE)
+ {
+ TrackList* tl = song->tracks();
+ iTrack i = tl->begin();
+ for ( ; i != tl->end(); ++i)
+ {
+ Track* t = *i;
+ if (t->name() == s)
+ {
+ track = t;
+ type = rtype;
+ break;
+ }
+ }
+ if(i == tl->end())
+ printf("Route::read(): track <%s> not found\n", s.latin1());
+ }
+ else
+ if(rtype == JACK_ROUTE)
+ {
+ void* jport = audioDevice->findPort(s);
+ if(jport == 0)
+ printf("Route::read(): jack port <%s> not found\n", s.latin1());
+ else
+ {
+ jackPort = jport;
+ type = rtype;
+ }
+ }
+ else
+ if(rtype == MIDI_DEVICE_ROUTE)
+ {
+ iMidiDevice imd = midiDevices.begin();
+ for( ; imd != midiDevices.end(); ++imd)
+ {
+ MidiDevice* md = *imd;
+ if(md->name() == s && md->deviceType() == dtype)
+ {
+ // p3.3.45
+ // We found a device, but if it is not in use by the song (port is -1), ignore it.
+ // This prevents loading and propagation of bogus routes in the med file.
+ if(md->midiPort() == -1)
+ break;
+
+ device = md;
+ type = rtype;
+ break;
+ }
+ }
+ if(imd == midiDevices.end())
+ printf("Route::read(): midi device <%s> not found\n", s.latin1());
+ }
+ }
+ return;
+ default:
+ break;
+ }
+ }
+}
+
+
+//---------------------------------------------------------
+// read
+//---------------------------------------------------------
+
+void Song::readRoute(Xml& xml)
+{
+ QString src;
+ QString dst;
+ int ch = -1;
+ int chs = -1;
+ int remch = -1;
+
+ Route sroute, droute;
+
+ for (;;)
+ {
+ const QString& tag = xml.s1();
+ Xml::Token token = xml.parse();
+ switch (token)
+ {
+ case Xml::Error:
+ case Xml::End:
+ return;
+ case Xml::TagStart:
+ // p3.3.38 2010/02/03 Support old routes in med files. Now obsolete!
+ if (tag == "srcNode")
+ src = xml.parse1();
+ else if (tag == "dstNode")
+ dst = xml.parse1();
+ // Support new routes.
+ else if (tag == "source")
+ {
+ sroute.read(xml);
+ sroute.channel = ch;
+ sroute.channels = chs;
+ sroute.remoteChannel = remch;
+ }
+ else if (tag == "dest")
+ {
+ droute.read(xml);
+ droute.channel = ch;
+ droute.channels = chs;
+ droute.remoteChannel = remch;
+ }
+ else
+ xml.unknown("readRoute");
+ break;
+ case Xml::Attribut:
+ #ifdef ROUTE_DEBUG
+ printf("Song::readRoute(): attribute:%s\n", tag.latin1());
+ #endif
+ if(tag == "channel")
+ ch = xml.s2().toInt();
+ else
+ if(tag == "channels")
+ chs = xml.s2().toInt();
+ else
+ if(tag == "remch")
+ remch = xml.s2().toInt();
+ else
+ if(tag == "channelMask") // p3.3.50 New channel mask for midi port-track routes.
+ ch = xml.s2().toInt();
+ else
+ printf("Song::readRoute(): unknown attribute:%s\n", tag.latin1());
+ break;
+ case Xml::TagEnd:
+ if (xml.s1() == "Route")
+ {
+ // Support old routes in med files. Now obsolete!
+ if(!src.isEmpty() && !dst.isEmpty())
+ {
+ Route s = name2route(src, false);
+ Route d = name2route(dst, true);
+ addRoute(s, d);
+ }
+ else
+ // Support new routes.
+ if(sroute.isValid() && droute.isValid())
+ {
+ // p3.3.49 Support pre- 1.1-RC2 midi-device-to-track routes. Obsolete. Replaced with midi port routes.
+ if(sroute.type == Route::MIDI_DEVICE_ROUTE && droute.type == Route::TRACK_ROUTE)
+ {
+ if(sroute.device->midiPort() >= 0 && sroute.device->midiPort() < MIDI_PORTS
+ && ch >= 0 && ch < MIDI_CHANNELS) // p3.3.50
+ {
+ sroute.midiPort = sroute.device->midiPort();
+ sroute.device = 0;
+ sroute.type = Route::MIDI_PORT_ROUTE;
+
+ sroute.channel = 1 << ch; // p3.3.50 Convert to new bit-wise channel mask.
+ droute.channel = sroute.channel;
+
+ addRoute(sroute, droute);
+ }
+ else
+ printf(" Warning - device:%s to track route, no device midi port or chan:%d out of range. Ignoring route!\n",
+ sroute.device->name().latin1(), ch);
+ }
+ else if(sroute.type == Route::TRACK_ROUTE && droute.type == Route::MIDI_DEVICE_ROUTE)
+ {
+ if(droute.device->midiPort() >= 0 && droute.device->midiPort() < MIDI_PORTS
+ && ch >= 0 && ch < MIDI_CHANNELS) // p3.3.50
+ {
+ droute.midiPort = droute.device->midiPort();
+ droute.device = 0;
+ droute.type = Route::MIDI_PORT_ROUTE;
+
+ droute.channel = 1 << ch; // p3.3.50 Convert to new bit-wise channel mask.
+ sroute.channel = droute.channel;
+
+ addRoute(sroute, droute);
+ }
+ else
+ printf(" Warning - track to device:%s route, no device midi port or chan:%d out of range. Ignoring route!\n",
+ droute.device->name().latin1(), ch);
+ }
+ else
+ {
+ //printf("adding new route...\n");
+ addRoute(sroute, droute);
+ }
+ }
+ else
+ printf(" Warning - route invalid. Ignoring route!\n");
+
+ return;
+ }
+ default:
+ break;
+ }
+ }
+}
+
+//---------------------------------------------------------
+// removeRoute
+//---------------------------------------------------------
+
+void RouteList::removeRoute(const Route& r)
+ {
+ //printf("RouteList::removeRoute:\n");
+ //r.dump();
+ //printf("Searching routes:\n");
+
+ for (iRoute i = begin(); i != end(); ++i) {
+ //i->dump();
+ if (r == *i) {
+ erase(i);
+ return;
+ }
+ }
+ printf("internal error: cannot remove Route\n");
+ }
+
+//---------------------------------------------------------
+// dump
+//---------------------------------------------------------
+
+void Route::dump() const
+{
+ if (type == TRACK_ROUTE)
+ {
+ if(track)
+ printf("Route dump: track <%s> channel %d channels %d\n", track->name().latin1(), channel, channels);
+ //printf("Route dump: track <%s> channel %d\n", track->name().latin1(), channel);
+ //else
+ // printf("Route dump: invalid track, channel %d\n", channel);
+ }
+ else
+ if (type == JACK_ROUTE)
+ {
+ if(checkAudioDevice())
+ printf("Route dump: jack audio port <%s> channel %d\n", audioDevice->portName(jackPort).latin1(), channel);
+ }
+ else
+ if (type == MIDI_PORT_ROUTE) // p3.3.49
+ {
+ printf("Route dump: midi port <%d> channel mask %d\n", midiPort, channel);
+ }
+ else
+ if (type == MIDI_DEVICE_ROUTE)
+ {
+ printf("Route dump: ");
+ if(device)
+ {
+ if(device->deviceType() == MidiDevice::JACK_MIDI)
+ {
+ if(checkAudioDevice())
+ printf("jack midi port device <%s> ", audioDevice->portName(device->clientPort()).latin1());
+ }
+ else
+ if(device->deviceType() == MidiDevice::ALSA_MIDI)
+ printf("alsa midi device <%s> ", device->name().latin1());
+ else
+ if(device->deviceType() == MidiDevice::SYNTH_MIDI)
+ printf("synth midi device <%s> ", device->name().latin1());
+ else
+ printf("is midi but unknown device type:%d, ", device->deviceType());
+ }
+ else
+ printf("is midi but invalid device, ");
+
+ printf("channel:%d\n", channel);
+ }
+ else
+ printf("Route dump: unknown route type:%d\n", type);
+}
+
+//---------------------------------------------------------
+// operator==
+//---------------------------------------------------------
+
+bool Route::operator==(const Route& a) const
+{
+ //if (type == MIDI_PORT_ROUTE) // p3.3.50
+ //{
+ // Use new channel mask. True if all the bits in a.channel are contained in this route's channel.
+ // Hmm, not commutative... Two such routes are equal if _____ what? ... Code-specific for now.
+ // return midiPort == a.midiPort && (channel & a.channel) == a.channel;
+ //}
+ //else
+
+ if ((type == a.type) && (channel == a.channel))
+ //if (type == a.type)
+ {
+ if (type == TRACK_ROUTE)
+ {
+ return track == a.track && channels == a.channels && remoteChannel == a.remoteChannel;
+ }
+ else
+ if(channel == a.channel)
+ {
+ if (type == JACK_ROUTE)
+ {
+ if (!checkAudioDevice()) return false;
+ return audioDevice->portName(jackPort) == audioDevice->portName(a.jackPort);
+ }
+ else
+ if (type == MIDI_PORT_ROUTE) // p3.3.49
+ {
+ return midiPort == a.midiPort;
+ }
+ else
+ if (type == MIDI_DEVICE_ROUTE)
+ {
+ if(device && a.device && device->deviceType() == a.device->deviceType())
+ {
+ if(device->deviceType() == MidiDevice::JACK_MIDI)
+ {
+ if (!checkAudioDevice()) return false;
+ return audioDevice->portName(device->clientPort()) == audioDevice->portName(a.device->clientPort());
+ }
+ else
+ if(device->deviceType() == MidiDevice::ALSA_MIDI)
+ // TODO: OK ??
+ return device->clientPort() == a.device->clientPort() && (channel == a.channel);
+ else
+ if(device->deviceType() == MidiDevice::SYNTH_MIDI)
+ return device->name() == a.device->name();
+ }
+ }
+ }
+ }
+ return false;
+}
+
diff --git a/muse2/muse/route.h b/muse2/muse/route.h
new file mode 100644
index 00000000..4cacac88
--- /dev/null
+++ b/muse2/muse/route.h
@@ -0,0 +1,102 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: route.h,v 1.5.2.1 2008/05/21 00:28:52 terminator356 Exp $
+//
+// (C) Copyright 2001 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __ROUTE_H__
+#define __ROUTE_H__
+
+#include <vector>
+#include <map>
+
+#include "globaldefs.h"
+
+class QString;
+class Track;
+class MidiDevice;
+class Xml;
+
+//---------------------------------------------------------
+// Route
+//---------------------------------------------------------
+
+struct Route {
+ enum { TRACK_ROUTE=0, JACK_ROUTE=1, MIDI_DEVICE_ROUTE=2, MIDI_PORT_ROUTE=3 }; // p3.3.49
+
+ union {
+ //AudioTrack* track;
+ Track* track;
+ //MidiJackDevice* device;
+ MidiDevice* device;
+ void* jackPort;
+ };
+
+ int midiPort; // p3.3.49 Midi port number. Best not to put this in the union to avoid problems?
+
+ //snd_seq_addr_t alsaAdr;
+
+ // Starting source channel (of the owner of this route). Normally zero for mono or stereo tracks, higher for multi-channel tracks.
+ // p3.3.50 NOTICE: channel is now a bit-wise channel mask, for MidiPort <-> MidiTrack routes.
+ // This saves many routes: Instead of one route per channel as before, there can now be only one single route with a channel mask,
+ // for each MidiPort <-> MidiTrack combination.
+ int channel;
+ // Number of (audio) channels being routed.
+ int channels;
+
+ // Allow for multi-channel syntis to feed to/from regular tracks, and to feed one to another.
+ // If a synti is feeding to/from a regular track, remoteChannel is the 'starting' channel of this multi-channel synti.
+ // If a synti is feeding to/from another synti, this is not used and individual channels are routed using channel instead.
+ int remoteChannel;
+
+ unsigned char type; // 0 - track, 1 - jackPort, 2 - midi device, 3 - midi port
+
+ Route(void* t, int ch=-1);
+ Route(Track* t, int ch = -1, int chans = -1);
+ Route(MidiDevice* d, int ch);
+ Route(int port, int ch); // p3.3.49
+ Route(const QString&, bool dst, int ch, int rtype = -1);
+ Route();
+
+ QString name() const;
+ bool operator==(const Route& a) const;
+ bool isValid() const {
+ return ((type == TRACK_ROUTE) && (track != 0)) || ((type == JACK_ROUTE) && (jackPort != 0)) ||
+ ((type == MIDI_DEVICE_ROUTE) && (device != 0)) ||
+ ((type == MIDI_PORT_ROUTE) && (midiPort >= 0) && (midiPort < MIDI_PORTS)); // p3.3.49
+ }
+ void read(Xml& xml);
+ void dump() const;
+ };
+
+
+//---------------------------------------------------------
+// RouteList
+//---------------------------------------------------------
+
+struct RouteList : public std::vector<Route> {
+ void removeRoute(const Route& r);
+ };
+
+typedef RouteList::iterator iRoute;
+typedef RouteList::const_iterator ciRoute;
+
+extern void addRoute(Route, Route);
+extern void removeRoute(Route, Route);
+extern Route name2route(const QString&, bool dst, int rtype = -1);
+extern bool checkRoute(const QString&, const QString&);
+
+//---------------------------------------------------------
+// RouteMenuMap
+//---------------------------------------------------------
+
+typedef std::map<int, Route, std::less<int> >::iterator iRouteMenuMap;
+typedef std::map<int, Route, std::less<int> >::const_iterator ciRouteMenuMap;
+typedef std::map<int, Route, std::less<int> > RouteMenuMap;
+typedef std::pair<int, Route> pRouteMenuMap;
+typedef std::pair<iRouteMenuMap, bool > rpRouteMenuMap;
+
+#endif
+
diff --git a/muse2/muse/seqmsg.cpp b/muse2/muse/seqmsg.cpp
new file mode 100644
index 00000000..58944552
--- /dev/null
+++ b/muse2/muse/seqmsg.cpp
@@ -0,0 +1,1184 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: seqmsg.cpp,v 1.32.2.17 2009/12/20 05:00:35 terminator356 Exp $
+//
+// (C) Copyright 2001 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include <stdio.h>
+
+#include "song.h"
+#include "midiport.h"
+#include "minstrument.h"
+#include "app.h"
+#include "amixer.h"
+#include "tempo.h"
+#include "sig.h"
+#include "audio.h"
+#include "mididev.h"
+#include "audiodev.h"
+#include "alsamidi.h"
+#include "audio.h"
+#include "arranger.h"
+#include "plugin.h"
+#include "driver/jackmidi.h"
+
+//---------------------------------------------------------
+// sendMsg
+//---------------------------------------------------------
+
+void Audio::sendMsg(AudioMsg* m)
+ {
+ static int sno = 0;
+
+ if (_running) {
+ m->serialNo = sno++;
+ //DEBUG:
+ msg = m;
+ // wait for next audio "process" call to finish operation
+ int no = -1;
+ int rv = read(fromThreadFdr, &no, sizeof(int));
+ if (rv != sizeof(int))
+ perror("Audio: read pipe failed");
+ else if (no != (sno-1)) {
+ fprintf(stderr, "audio: bad serial number, read %d expected %d\n",
+ no, sno-1);
+ }
+ }
+ else {
+ // if audio is not running (during initialization)
+ // process commands immediatly
+ processMsg(m);
+ }
+ }
+
+//---------------------------------------------------------
+// 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;
+ }
+
+//---------------------------------------------------------
+// msgRemoveRoute
+//---------------------------------------------------------
+
+void Audio::msgRemoveRoute(Route src, Route dst)
+{
+ msgRemoveRoute1(src, dst);
+ //if (!checkAudioDevice()) return;
+ if (src.type == Route::JACK_ROUTE)
+ {
+ if (!checkAudioDevice()) return;
+
+ //if(dst.type == Route::JACK_MIDI_ROUTE)
+ if(dst.type == Route::MIDI_DEVICE_ROUTE)
+ {
+ //MidiJackDevice* jmd = dynamic_cast<MidiJackDevice*>(dst.device);
+ //if(jmd)
+ if(dst.device)
+ {
+ if(dst.device->deviceType() == MidiDevice::JACK_MIDI)
+ audioDevice->disconnect(src.jackPort, dst.device->clientPort());
+ //else
+ //{
+ // TODO...
+ //MidiAlsaDevice* amd = dynamic_cast<MidiAlsaDevice*>(dst.device);
+ //if(amd)
+ //}
+ }
+ }
+ else
+ audioDevice->disconnect(src.jackPort, ((AudioInput*)dst.track)->jackPort(dst.channel));
+ }
+ else if (dst.type == Route::JACK_ROUTE)
+ {
+ if (!checkAudioDevice()) return;
+
+ //if(src.type == Route::JACK_MIDI_ROUTE)
+ if(src.type == Route::MIDI_DEVICE_ROUTE)
+ {
+ //MidiJackDevice* jmd = dynamic_cast<MidiJackDevice*>(src.device);
+ //if(jmd)
+ if(src.device)
+ {
+ if(src.device->deviceType() == MidiDevice::JACK_MIDI)
+ audioDevice->disconnect(src.device->clientPort(), dst.jackPort);
+ //else
+ //{
+ // TODO...
+ //MidiAlsaDevice* amd = dynamic_cast<MidiAlsaDevice*>(src.device);
+ //if(amd)
+ //}
+ }
+ }
+ else
+ audioDevice->disconnect(((AudioOutput*)src.track)->jackPort(src.channel), dst.jackPort);
+ }
+}
+
+//---------------------------------------------------------
+// msgRemoveRoute1
+//---------------------------------------------------------
+
+void Audio::msgRemoveRoute1(Route src, Route dst)
+ {
+ AudioMsg msg;
+ msg.id = AUDIO_ROUTEREMOVE;
+ msg.sroute = src;
+ msg.droute = dst;
+ sendMsg(&msg);
+ }
+
+//---------------------------------------------------------
+// msgAddRoute
+//---------------------------------------------------------
+
+void Audio::msgAddRoute(Route src, Route dst)
+ {
+ if (src.type == Route::JACK_ROUTE)
+ {
+ if (!checkAudioDevice()) return;
+ if (isRunning())
+ {
+ //if(dst.type == Route::JACK_MIDI_ROUTE)
+ if(dst.type == Route::MIDI_DEVICE_ROUTE)
+ {
+ //MidiJackDevice* jmd = dynamic_cast<MidiJackDevice*>(dst.device);
+ //if(jmd)
+ if(dst.device)
+ {
+ if(dst.device->deviceType() == MidiDevice::JACK_MIDI)
+ audioDevice->connect(src.jackPort, dst.device->clientPort());
+ //else
+ //{
+ // TODO...
+ //MidiAlsaDevice* amd = dynamic_cast<MidiAlsaDevice*>(dst.device);
+ //if(amd)
+ //}
+ }
+ }
+ else
+ audioDevice->connect(src.jackPort, ((AudioInput*)dst.track)->jackPort(dst.channel));
+ }
+ }
+ else if (dst.type == Route::JACK_ROUTE)
+ {
+ if (!checkAudioDevice()) return;
+ if (audio->isRunning())
+ {
+ //if(src.type == Route::JACK_MIDI_ROUTE)
+ if(src.type == Route::MIDI_DEVICE_ROUTE)
+ {
+ //MidiJackDevice* jmd = dynamic_cast<MidiJackDevice*>(src.device);
+ //if(jmd)
+ if(src.device)
+ {
+ if(src.device->deviceType() == MidiDevice::JACK_MIDI)
+ audioDevice->connect(src.device->clientPort(), dst.jackPort);
+ //else
+ //{
+ // TODO...
+ //MidiAlsaDevice* amd = dynamic_cast<MidiAlsaDevice*>(src.device);
+ //if(amd)
+ //}
+ }
+ }
+ else
+ audioDevice->connect(((AudioOutput*)src.track)->jackPort(dst.channel), dst.jackPort);
+ }
+ }
+ msgAddRoute1(src, dst);
+ }
+
+//---------------------------------------------------------
+// msgAddRoute1
+//---------------------------------------------------------
+
+void Audio::msgAddRoute1(Route src, Route dst)
+ {
+ AudioMsg msg;
+ msg.id = AUDIO_ROUTEADD;
+ msg.sroute = src;
+ msg.droute = dst;
+ sendMsg(&msg);
+ }
+
+//---------------------------------------------------------
+// msgAddPlugin
+//---------------------------------------------------------
+
+void Audio::msgAddPlugin(AudioTrack* node, int idx, PluginI* plugin)
+ {
+ AudioMsg msg;
+ msg.id = AUDIO_ADDPLUGIN;
+ msg.snode = node;
+ msg.ival = idx;
+ msg.plugin = plugin;
+ sendMsg(&msg);
+ }
+
+//---------------------------------------------------------
+// msgSetRecord
+//---------------------------------------------------------
+
+void Audio::msgSetRecord(AudioTrack* node, bool val)
+ {
+ AudioMsg msg;
+ msg.id = AUDIO_RECORD;
+ msg.snode = node;
+ msg.ival = int(val);
+ sendMsg(&msg);
+ }
+
+//---------------------------------------------------------
+// msgSetVolume
+//---------------------------------------------------------
+
+void Audio::msgSetVolume(AudioTrack* src, double val)
+ {
+ AudioMsg msg;
+ msg.id = AUDIO_VOL;
+ msg.snode = src;
+ msg.dval = val;
+ sendMsg(&msg);
+ //muse->arranger->controllerChanged(src);
+ }
+
+//---------------------------------------------------------
+// msgSetPan
+//---------------------------------------------------------
+
+void Audio::msgSetPan(AudioTrack* node, double val)
+ {
+ AudioMsg msg;
+ msg.id = AUDIO_PAN;
+ msg.snode = node;
+ msg.dval = val;
+ sendMsg(&msg);
+ //muse->arranger->controllerChanged(node);
+ }
+
+//---------------------------------------------------------
+// msgSetPrefader
+//---------------------------------------------------------
+
+void Audio::msgSetPrefader(AudioTrack* node, int val)
+ {
+ AudioMsg msg;
+ msg.id = AUDIO_SET_PREFADER;
+ msg.snode = node;
+ msg.ival = val;
+ 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)
+ {
+ if (!checkAudioDevice()) return;
+ AudioInput* ai = (AudioInput*)node;
+ for (int i = 0; i < mc; ++i)
+ {
+ if (i < n && ai->jackPort(i) == 0)
+ {
+ char buffer[128];
+ snprintf(buffer, 128, "%s-%d", name.latin1(), i);
+ //ai->setJackPort(i, audioDevice->registerInPort(buffer));
+ ai->setJackPort(i, audioDevice->registerInPort(buffer, false));
+ }
+ else if ((i >= n) && ai->jackPort(i))
+ {
+ RouteList* ir = node->inRoutes();
+ for (iRoute ii = ir->begin(); ii != ir->end(); ++ii)
+ {
+ Route r = *ii;
+ if ((r.type == Route::JACK_ROUTE) && (r.channel == i))
+ {
+ msgRemoveRoute(r, Route(node,i));
+ break;
+ }
+ }
+ audioDevice->unregisterPort(ai->jackPort(i));
+ ai->setJackPort(i, 0);
+ }
+ }
+ }
+ else if (node->type() == Track::AUDIO_OUTPUT)
+ {
+ if (!checkAudioDevice()) return;
+ AudioOutput* ao = (AudioOutput*)node;
+ for (int i = 0; i < mc; ++i)
+ {
+ void* jp = ao->jackPort(i);
+ if (i < n && jp == 0)
+ {
+ char buffer[128];
+ snprintf(buffer, 128, "%s-%d", name.latin1(), i);
+ //ao->setJackPort(i, audioDevice->registerOutPort(buffer));
+ ao->setJackPort(i, audioDevice->registerOutPort(buffer, false));
+ }
+ else if (i >= n && jp)
+ {
+ RouteList* ir = node->outRoutes();
+ for (iRoute ii = ir->begin(); ii != ir->end(); ++ii)
+ {
+ Route r = *ii;
+ if ((r.type == Route::JACK_ROUTE) && (r.channel == i))
+ {
+ msgRemoveRoute(Route(node,i), r);
+ break;
+ }
+ }
+ audioDevice->unregisterPort(jp);
+ ao->setJackPort(i, 0);
+ }
+ }
+ }
+ }
+
+ /* TODO TODO: Change all stereo routes to mono.
+ // If we are going from stereo to mono we need to disconnect any stray synti 'mono last channel'...
+ if(n == 1 && node->channels() > 1)
+ {
+ // This should always happen - syntis are fixed channels, user cannot change them. But to be safe...
+ if(node->type() != Track::AUDIO_SOFTSYNTH)
+ {
+ if(node->type() != Track::AUDIO_INPUT)
+ {
+ RouteList* rl = node->inRoutes();
+ for(iRoute r = rl->begin(); r != rl->end(); ++r)
+ {
+ // Only interested in synth tracks.
+ if(r->type != Route::TRACK_ROUTE || r->track->type() != Track::AUDIO_SOFTSYNTH)
+ continue;
+ // If it's the last channel...
+ if(r->channel + 1 == ((AudioTrack*)r->track)->totalOutChannels())
+ {
+ msgRemoveRoute(*r, Route(node, r->channel));
+ //msgRemoveRoute(r, Route(node, r->remoteChannel));
+ break;
+ }
+ }
+ }
+
+ if(node->type() != Track::AUDIO_OUTPUT)
+ {
+ RouteList* rl = node->outRoutes();
+ for(iRoute r = rl->begin(); r != rl->end(); ++r)
+ {
+ // Only interested in synth tracks.
+ if(r->type != Route::TRACK_ROUTE || r->track->type() != Track::AUDIO_SOFTSYNTH)
+ continue;
+ // If it's the last channel...
+ if(r->channel + 1 == ((AudioTrack*)r->track)->totalOutChannels())
+ {
+ msgRemoveRoute(Route(node, r->channel), *r);
+ //msgRemoveRoute(Route(node, r->remoteChannel), r);
+ break;
+ }
+ }
+ }
+ }
+ }
+ */
+
+ AudioMsg msg;
+ msg.id = AUDIO_SET_CHANNELS;
+ msg.snode = node;
+ msg.ival = n;
+ sendMsg(&msg);
+ }
+
+//---------------------------------------------------------
+// msgSetPluginCtrlVal
+//---------------------------------------------------------
+
+//void Audio::msgSetPluginCtrlVal(PluginI* plugin, int param, double val)
+// p3.3.43
+void Audio::msgSetPluginCtrlVal(AudioTrack* track, int param, double val)
+{
+ AudioMsg msg;
+
+ msg.id = AUDIO_SET_PLUGIN_CTRL_VAL;
+ msg.ival = param;
+ msg.dval = val;
+ //msg.plugin = plugin;
+ msg.snode = track;
+ sendMsg(&msg);
+ //muse->arranger->controllerChanged(track);
+}
+
+//---------------------------------------------------------
+// msgSwapControllerIDX
+//---------------------------------------------------------
+
+void Audio::msgSwapControllerIDX(AudioTrack* node, int idx1, int idx2)
+{
+ AudioMsg msg;
+
+ msg.id = AUDIO_SWAP_CONTROLLER_IDX;
+ msg.snode = node;
+ msg.a = idx1;
+ msg.b = idx2;
+ sendMsg(&msg);
+ //muse->arranger->controllerChanged(node);
+}
+
+//---------------------------------------------------------
+// msgClearControllerEvents
+//---------------------------------------------------------
+
+void Audio::msgClearControllerEvents(AudioTrack* node, int acid)
+{
+ AudioMsg msg;
+
+ msg.id = AUDIO_CLEAR_CONTROLLER_EVENTS;
+ msg.snode = node;
+ msg.ival = acid;
+ sendMsg(&msg);
+ //muse->arranger->controllerChanged(node);
+}
+
+//---------------------------------------------------------
+// msgSeekPrevACEvent
+//---------------------------------------------------------
+
+void Audio::msgSeekPrevACEvent(AudioTrack* node, int acid)
+{
+ AudioMsg msg;
+
+ msg.id = AUDIO_SEEK_PREV_AC_EVENT;
+ msg.snode = node;
+ msg.ival = acid;
+ sendMsg(&msg);
+}
+
+//---------------------------------------------------------
+// msgSeekNextACEvent
+//---------------------------------------------------------
+
+void Audio::msgSeekNextACEvent(AudioTrack* node, int acid)
+{
+ AudioMsg msg;
+
+ msg.id = AUDIO_SEEK_NEXT_AC_EVENT;
+ msg.snode = node;
+ msg.ival = acid;
+ sendMsg(&msg);
+}
+
+//---------------------------------------------------------
+// msgEraseACEvent
+//---------------------------------------------------------
+
+void Audio::msgEraseACEvent(AudioTrack* node, int acid, int frame)
+{
+ AudioMsg msg;
+
+ msg.id = AUDIO_ERASE_AC_EVENT;
+ msg.snode = node;
+ msg.ival = acid;
+ msg.a = frame;
+ sendMsg(&msg);
+ //muse->arranger->controllerChanged(node);
+}
+
+//---------------------------------------------------------
+// msgEraseRangeACEvents
+//---------------------------------------------------------
+
+void Audio::msgEraseRangeACEvents(AudioTrack* node, int acid, int frame1, int frame2)
+{
+ AudioMsg msg;
+
+ msg.id = AUDIO_ERASE_RANGE_AC_EVENTS;
+ msg.snode = node;
+ msg.ival = acid;
+ msg.a = frame1;
+ msg.b = frame2;
+ sendMsg(&msg);
+ //muse->arranger->controllerChanged(node);
+}
+
+//---------------------------------------------------------
+// msgAddACEvent
+//---------------------------------------------------------
+
+void Audio::msgAddACEvent(AudioTrack* node, int acid, int frame, double val)
+{
+ AudioMsg msg;
+
+ msg.id = AUDIO_ADD_AC_EVENT;
+ msg.snode = node;
+ msg.ival = acid;
+ msg.a = frame;
+ msg.dval = val;
+ sendMsg(&msg);
+ //muse->arranger->controllerChanged(node);
+}
+
+//---------------------------------------------------------
+// msgSetSolo
+//---------------------------------------------------------
+
+void Audio::msgSetSolo(Track* track, bool val)
+{
+ AudioMsg msg;
+ msg.id = AUDIO_SET_SOLO;
+ msg.track = track;
+ msg.ival = int(val);
+ 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)
+ {
+ if (!checkAudioDevice()) return;
+ //audioDevice->seekTransport(pos.frame());
+ // p3.3.23
+ //printf("Audio::msgSeek before audioDevice->seekTransport frame:%d\n", pos.frame());
+ audioDevice->seekTransport(pos);
+ // p3.3.23
+ //printf("Audio::msgSeek after audioDevice->seekTransport frame:%d\n", 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 (audioDevice)
+ {
+ unsigned sfr = song->cPos().frame();
+ unsigned dcfr = audioDevice->getCurFrame();
+ if(dcfr != sfr)
+ //audioDevice->seekTransport(sfr);
+ audioDevice->seekTransport(song->cPos());
+ audioDevice->startTransport();
+ }
+
+ }else {
+ if (audioDevice)
+ audioDevice->stopTransport();
+ _bounce = false;
+ }
+ }
+
+//---------------------------------------------------------
+// msgShowInstrumentGui
+//---------------------------------------------------------
+
+void Audio::msgShowInstrumentGui(MidiInstrument* instr, bool val)
+ {
+ instr->showGui(val);
+ AudioMsg msg;
+ msg.id = MIDI_SHOW_INSTR_GUI;
+ msg.p1 = instr;
+ msg.a = val;
+ sendMessage(&msg, false);
+ }
+
+//---------------------------------------------------------
+// msgAddTrack
+//---------------------------------------------------------
+
+void Song::msgInsertTrack(Track* track, int idx, bool doUndoFlag)
+ {
+ AudioMsg msg;
+ msg.id = SEQM_ADD_TRACK;
+ msg.track = track;
+ msg.ival = idx;
+ if (doUndoFlag) {
+ song->startUndo();
+ undoOp(UndoOp::AddTrack, idx, track);
+ }
+ audio->sendMsg(&msg);
+ if (doUndoFlag)
+ endUndo(SC_TRACK_INSERTED);
+ }
+
+//---------------------------------------------------------
+// msgRemoveTrack
+//---------------------------------------------------------
+
+void Audio::msgRemoveTrack(Track* track, bool doUndoFlag)
+ {
+ AudioMsg msg;
+ msg.id = SEQM_REMOVE_TRACK;
+ msg.track = track;
+ sendMessage(&msg, doUndoFlag);
+ }
+
+//---------------------------------------------------------
+// msgRemoveTracks
+// remove all selected tracks
+//---------------------------------------------------------
+
+void Audio::msgRemoveTracks()
+{
+ bool loop;
+ do
+ {
+ loop = false;
+ TrackList* tl = song->tracks();
+ for (iTrack t = tl->begin(); t != tl->end(); ++t)
+ {
+ Track* tr = *t;
+ if (tr->selected())
+ {
+ song->removeTrack1(tr);
+ msgRemoveTrack(tr, false);
+ song->removeTrack3(tr);
+ loop = true;
+ break;
+ }
+ }
+ }
+ while (loop);
+
+ /*
+ // TESTED: DIDN'T WORK: It still skipped some selected tracks !
+ // Quote from SGI STL: "Erasing an element from a map also does not invalidate any iterators,
+ // except, of course, for iterators that actually point to the element
+ // that is being erased."
+ // Well that doesn't seem true here...
+
+ TrackList* tl = song->tracks();
+ for(ciTrack t = tl->begin(); t != tl->end() ; )
+ {
+ if((*t)->selected())
+ {
+ // Changed 20070102: - Iterator t becomes invalid after msgRemoveTrack.
+ ciTrack tt = t;
+ ++t;
+ Track* tr = *tt;
+
+ song->removeTrack1(tr);
+ msgRemoveTrack(tr, false);
+ song->removeTrack3(tr);
+
+ }
+ else
+ ++t;
+
+ }
+ */
+
+}
+
+//---------------------------------------------------------
+// msgChangeTrack
+// oldTrack - copy of the original track befor modification
+// newTrack - modified original track
+//---------------------------------------------------------
+
+void Audio::msgChangeTrack(Track* oldTrack, Track* newTrack, bool doUndoFlag)
+ {
+ AudioMsg msg;
+ msg.id = SEQM_CHANGE_TRACK;
+ msg.p1 = oldTrack;
+ msg.p2 = newTrack;
+ sendMessage(&msg, doUndoFlag);
+ }
+
+//---------------------------------------------------------
+// msgMoveTrack
+// move track idx1 to slot idx2
+//---------------------------------------------------------
+
+void Audio::msgMoveTrack(int idx1, int idx2, bool doUndoFlag)
+ {
+ if (idx1 < 0 || idx2 < 0) // sanity check
+ return;
+ int n = song->tracks()->size();
+ if (idx1 >= n || idx2 >= n) // sanity check
+ return;
+ AudioMsg msg;
+ msg.id = SEQM_MOVE_TRACK;
+ msg.a = idx1;
+ msg.b = idx2;
+ sendMessage(&msg, doUndoFlag);
+ }
+
+//---------------------------------------------------------
+// msgAddPart
+//---------------------------------------------------------
+
+void Audio::msgAddPart(Part* part, bool doUndoFlag)
+ {
+ AudioMsg msg;
+ msg.id = SEQM_ADD_PART;
+ msg.p1 = part;
+ sendMessage(&msg, doUndoFlag);
+ }
+
+//---------------------------------------------------------
+// msgRemovePart
+//---------------------------------------------------------
+
+void Audio::msgRemovePart(Part* part, bool doUndoFlag)
+ {
+ AudioMsg msg;
+ msg.id = SEQM_REMOVE_PART;
+ msg.p1 = part;
+ sendMessage(&msg, doUndoFlag);
+ }
+
+//---------------------------------------------------------
+// msgRemoveParts
+// remove selected parts; return true if any part was
+// removed
+//---------------------------------------------------------
+
+bool Song::msgRemoveParts()
+ {
+ bool loop;
+ bool partSelected = false;
+ do {
+ loop = false;
+ TrackList* tl = song->tracks();
+
+ for (iTrack it = tl->begin(); it != tl->end(); ++it) {
+ PartList* pl = (*it)->parts();
+ for (iPart ip = pl->begin(); ip != pl->end(); ++ip) {
+ if (ip->second->selected()) {
+ if ((*it)->type() == Track::WAVE) {
+ audio->msgRemovePart((WavePart*)(ip->second));
+ }
+ else {
+ audio->msgRemovePart(ip->second, false);
+ }
+ loop = true;
+ partSelected = true;
+ break;
+ }
+ }
+ if (loop)
+ break;
+ }
+ } while (loop);
+ return partSelected;
+ }
+
+//---------------------------------------------------------
+// msgChangePart
+//---------------------------------------------------------
+
+//void Audio::msgChangePart(Part* oldPart, Part* newPart, bool doUndoFlag)
+void Audio::msgChangePart(Part* oldPart, Part* newPart, bool doUndoFlag, bool doCtrls, bool doClones)
+ {
+ AudioMsg msg;
+ msg.id = SEQM_CHANGE_PART;
+ msg.p1 = oldPart;
+ msg.p2 = newPart;
+ msg.a = doCtrls;
+ msg.b = doClones;
+ sendMessage(&msg, doUndoFlag);
+ }
+
+//---------------------------------------------------------
+// msgAddEvent
+//---------------------------------------------------------
+
+//void Audio::msgAddEvent(Event& event, Part* part, bool doUndoFlag)
+void Audio::msgAddEvent(Event& event, Part* part, bool doUndoFlag, bool doCtrls, bool doClones)
+ {
+ AudioMsg msg;
+ msg.id = SEQM_ADD_EVENT;
+ msg.ev1 = event;
+ msg.p2 = part;
+ msg.a = doCtrls;
+ msg.b = doClones;
+ sendMessage(&msg, doUndoFlag);
+ }
+
+//---------------------------------------------------------
+// msgDeleteEvent
+//---------------------------------------------------------
+
+//void Audio::msgDeleteEvent(Event& event, Part* part, bool doUndoFlag)
+void Audio::msgDeleteEvent(Event& event, Part* part, bool doUndoFlag, bool doCtrls, bool doClones)
+ {
+ AudioMsg msg;
+ msg.id = SEQM_REMOVE_EVENT;
+ msg.ev1 = event;
+ msg.p2 = part;
+ msg.a = doCtrls;
+ msg.b = doClones;
+ sendMessage(&msg, doUndoFlag);
+ }
+
+//---------------------------------------------------------
+// msgChangeEvent
+//---------------------------------------------------------
+
+//void Audio::msgChangeEvent(Event& oe, Event& ne, Part* part, bool doUndoFlag)
+void Audio::msgChangeEvent(Event& oe, Event& ne, Part* part, bool doUndoFlag, bool doCtrls, bool doClones)
+ {
+ AudioMsg msg;
+ msg.id = SEQM_CHANGE_EVENT;
+ msg.ev1 = oe;
+ msg.ev2 = ne;
+ msg.p3 = part;
+ msg.a = doCtrls;
+ msg.b = doClones;
+ 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, int z, int n, bool doUndoFlag)
+ {
+ AudioMsg msg;
+ msg.id = SEQM_ADD_SIG;
+ msg.a = tick;
+ msg.b = z;
+ msg.c = 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);
+ }
+
+//---------------------------------------------------------
+// msgScanAlsaMidiPorts
+//---------------------------------------------------------
+
+void Audio::msgScanAlsaMidiPorts()
+ {
+ AudioMsg msg;
+ msg.id = SEQM_SCAN_ALSA_MIDI_PORTS;
+ sendMessage(&msg, false);
+ }
+
+//---------------------------------------------------------
+// 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()
+ {
+ AudioMsg msg;
+ msg.id = SEQM_PANIC;
+ sendMessage(&msg, false);
+ }
+
+//---------------------------------------------------------
+// localOff
+//---------------------------------------------------------
+
+void Audio::msgLocalOff()
+ {
+ AudioMsg msg;
+ msg.id = SEQM_MIDI_LOCAL_OFF;
+ sendMessage(&msg, false);
+ }
+
+//---------------------------------------------------------
+// msgUpdateSoloStates
+//---------------------------------------------------------
+
+void Audio::msgUpdateSoloStates()
+ {
+ AudioMsg msg;
+ msg.id = SEQM_UPDATE_SOLO_STATES;
+ sendMsg(&msg);
+ }
+
+//---------------------------------------------------------
+// msgSetAux
+//---------------------------------------------------------
+
+void Audio::msgSetAux(AudioTrack* track, int idx, double val)
+ {
+ AudioMsg msg;
+ msg.id = SEQM_SET_AUX;
+ msg.snode = track;
+ msg.ival = idx;
+ msg.dval = val;
+ sendMessage(&msg, false);
+ }
+
+//---------------------------------------------------------
+// msgPlayMidiEvent
+//---------------------------------------------------------
+
+void Audio::msgPlayMidiEvent(const MidiPlayEvent* event)
+ {
+ AudioMsg msg;
+ msg.id = SEQM_PLAY_MIDI_EVENT;
+ msg.p1 = event;
+ sendMessage(&msg, false);
+ }
+
+//---------------------------------------------------------
+// msgSetHwCtrlState
+//---------------------------------------------------------
+
+void Audio::msgSetHwCtrlState(MidiPort* port, int ch, int ctrl, int val)
+ {
+ AudioMsg msg;
+ msg.id = SEQM_SET_HW_CTRL_STATE;
+ msg.p1 = port;
+ msg.a = ch;
+ msg.b = ctrl;
+ msg.c = val;
+ sendMessage(&msg, false);
+ }
+
+//---------------------------------------------------------
+// msgSetHwCtrlState
+//---------------------------------------------------------
+
+void Audio::msgSetHwCtrlStates(MidiPort* port, int ch, int ctrl, int val, int lastval)
+ {
+ AudioMsg msg;
+ msg.id = SEQM_SET_HW_CTRL_STATE;
+ msg.p1 = port;
+ msg.a = ch;
+ msg.b = ctrl;
+ msg.c = val;
+ msg.ival = lastval;
+ sendMessage(&msg, false);
+ }
+
+//---------------------------------------------------------
+// msgSetTrackOutChannel
+//---------------------------------------------------------
+
+void Audio::msgSetTrackOutChannel(MidiTrack* track, int ch)
+{
+ AudioMsg msg;
+ msg.id = SEQM_SET_TRACK_OUT_CHAN;
+ msg.p1 = track;
+ msg.a = ch;
+ sendMessage(&msg, false);
+}
+
+//---------------------------------------------------------
+// msgSetTrackOutPort
+//---------------------------------------------------------
+
+void Audio::msgSetTrackOutPort(MidiTrack* track, int port)
+{
+ AudioMsg msg;
+ msg.id = SEQM_SET_TRACK_OUT_PORT;
+ msg.p1 = track;
+ msg.a = port;
+ sendMessage(&msg, false);
+}
+
+//---------------------------------------------------------
+// msgRemapPortDrumCtlEvents
+//---------------------------------------------------------
+
+void Audio::msgRemapPortDrumCtlEvents(int mapidx, int newnote, int newchan, int newport)
+{
+ AudioMsg msg;
+ msg.id = SEQM_REMAP_PORT_DRUM_CTL_EVS;
+ msg.ival = mapidx;
+ msg.a = newnote;
+ msg.b = newchan;
+ msg.c = newport;
+ sendMessage(&msg, false);
+}
+
+//---------------------------------------------------------
+// msgChangeAllPortDrumCtlEvents
+//---------------------------------------------------------
+
+void Audio::msgChangeAllPortDrumCtrlEvents(bool add, bool drumonly)
+{
+ AudioMsg msg;
+ msg.id = SEQM_CHANGE_ALL_PORT_DRUM_CTL_EVS;
+ msg.a = (int)add;
+ msg.b = (int)drumonly;
+ sendMessage(&msg, false);
+}
+
+//---------------------------------------------------------
+// msgSetSendMetronome
+//---------------------------------------------------------
+
+void Audio::msgSetSendMetronome(AudioTrack* track, bool b)
+{
+ AudioMsg msg;
+ msg.id = AUDIO_SET_SEND_METRONOME;
+ msg.snode = track;
+ msg.ival = (int)b;
+ sendMessage(&msg, false);
+}
+
+//---------------------------------------------------------
+// msgBounce
+// start bounce operation
+//---------------------------------------------------------
+
+void Audio::msgBounce()
+ {
+ _bounce = true;
+ if (!checkAudioDevice()) return;
+ //audioDevice->seekTransport(song->lPos().frame());
+ audioDevice->seekTransport(song->lPos());
+ }
+
+//---------------------------------------------------------
+// msgIdle
+//---------------------------------------------------------
+
+void Audio::msgIdle(bool on)
+ {
+ AudioMsg msg;
+ msg.id = SEQM_IDLE;
+ msg.a = on;
+ sendMessage(&msg, false);
+ }
+
diff --git a/muse2/muse/shortcuts.cpp b/muse2/muse/shortcuts.cpp
new file mode 100644
index 00000000..61f950eb
--- /dev/null
+++ b/muse2/muse/shortcuts.cpp
@@ -0,0 +1,312 @@
+//
+// C++ Implementation: shortcuts
+//
+// Description:
+// Definition of shortcuts used in the application
+//
+// Author: Mathias Lundgren <lunar_shuttle@users.sourceforge.net>, (C) 2003
+//
+// Copyright: Mathias Lundgren (lunar_shuttle@users.sourceforge.net) (C) 2003
+//
+//
+#include "shortcuts.h"
+#include <qtranslator.h>
+
+
+ShortCut shortcuts[SHRT_NUM_OF_ELEMENTS];
+void defShrt(int shrt, int key, const char* descr, int type, const char* xml)
+{
+ shortcuts[shrt].key = key;
+ shortcuts[shrt].descr = QT_TR_NOOP(descr);
+ shortcuts[shrt].type = type;
+ shortcuts[shrt].xml = xml;
+}
+
+
+void initShortCuts()
+ {
+ //Global:
+ defShrt(SHRT_PLAY_SONG, Qt::Key_Enter, "Transport: Start playback from current location", GLOBAL_SHRT, "play");
+ defShrt(SHRT_TOGGLE_METRO, Qt::Key_C, "Transport: Toggle metronome", GLOBAL_SHRT,"toggle_metro");
+ defShrt(SHRT_STOP, Qt::Key_Insert,"Transport: Stop Playback", GLOBAL_SHRT, "stop");
+ defShrt(SHRT_GOTO_START, Qt::Key_W, "Transport: Goto Start", GLOBAL_SHRT, "goto_start");
+ defShrt(SHRT_PLAY_TOGGLE, Qt::Key_Space, "Transport: Play, Stop, Rewind", GLOBAL_SHRT, "play_toggle");
+ defShrt(SHRT_GOTO_LEFT, Qt::Key_End, "Transport: Goto left marker" , GLOBAL_SHRT, "goto_left");
+ defShrt(SHRT_GOTO_RIGHT, Qt::Key_PageDown, "Transport: Goto right marker" , GLOBAL_SHRT, "goto_right");
+ defShrt(SHRT_TOGGLE_LOOP, Qt::Key_Slash, "Transport: Toggle Loop section", GLOBAL_SHRT, "toggle_loop");
+ defShrt(SHRT_START_REC, Qt::Key_Asterisk, "Transport: Toggle Record", GLOBAL_SHRT, "toggle_rec");
+ defShrt(SHRT_REC_CLEAR, Qt::Key_Backspace, "Transport: Clear all rec enabled tracks", GLOBAL_SHRT, "rec_clear");
+ defShrt(SHRT_COPY, Qt::CTRL + Qt::Key_C, "Edit: Copy", INVIS_SHRT, "copy");
+ defShrt(SHRT_UNDO, Qt::CTRL + Qt::Key_Z, "Edit: Undo", INVIS_SHRT, "undo");
+ defShrt(SHRT_REDO, Qt::CTRL + Qt::Key_Y, "Edit: Redo", INVIS_SHRT, "redo");
+ defShrt(SHRT_CUT, Qt::CTRL + Qt::Key_X, "Edit: Cut", INVIS_SHRT, "cut");
+ defShrt(SHRT_PASTE, Qt::CTRL + Qt::Key_V, "Edit: Paste,", INVIS_SHRT, "paste");
+ defShrt(SHRT_DELETE, Qt::Key_Delete, "Edit: Delete", INVIS_SHRT, "delete");
+
+ //-----------------------------------------------------------
+ // Arranger:
+ defShrt(SHRT_NEW, Qt::CTRL + Qt::Key_N, "File: New project", ARRANG_SHRT + DEDIT_SHRT, "new_project");
+ defShrt(SHRT_OPEN, Qt::CTRL + Qt::Key_O, "File: Open from disk", ARRANG_SHRT + DEDIT_SHRT, "open_project");
+ defShrt(SHRT_SAVE, Qt::CTRL + Qt::Key_S, "File: Save project", ARRANG_SHRT + DEDIT_SHRT, "save_project");
+ //-----------------------------------------------------------
+
+ defShrt(SHRT_OPEN_RECENT, Qt::CTRL + Qt::Key_1, "File: Open recent file", ARRANG_SHRT, "open_recent");
+ defShrt(SHRT_SAVE_AS, 0 , "File: Save as", ARRANG_SHRT, "save_project_as");
+ defShrt(SHRT_LOAD_TEMPLATE, 0 , "File: Load template", ARRANG_SHRT, "load_template");
+// defShrt(SHRT_CONFIG_PRINTER, Qt::CTRL + Qt::Key_P, "Configure printer", ARRANG_SHRT, "config_printer");
+ defShrt(SHRT_IMPORT_MIDI, 0 , "File: Import midi file", ARRANG_SHRT, "import_midi");
+ defShrt(SHRT_EXPORT_MIDI, 0 , "File: Export midi file", ARRANG_SHRT, "export_midi");
+ defShrt(SHRT_IMPORT_PART, 0 , "File: Import midi part", ARRANG_SHRT, "import_part");
+ defShrt(SHRT_IMPORT_AUDIO, 0 , "File: Import audio file", ARRANG_SHRT, "import_audio");
+ defShrt(SHRT_QUIT, Qt::CTRL + Qt::Key_Q, "File: Quit MusE", ARRANG_SHRT, "quit");
+// defShrt(SHRT_DESEL_PARTS, Qt::CTRL + Qt::Key_B, "Deselect all parts", ARRANG_SHRT, "deselect_parts");
+ defShrt(SHRT_SELECT_PRTSTRACK, Qt::CTRL+ Qt::ALT + Qt::Key_P, "Edit: Select parts on track", ARRANG_SHRT, "select_parts_on_track");
+ defShrt(SHRT_OPEN_PIANO, Qt::CTRL + Qt::Key_E, "Open pianoroll", ARRANG_SHRT, "open_pianoroll");
+ defShrt(SHRT_OPEN_DRUMS, Qt::CTRL + Qt::Key_D, "Open drumeditor", ARRANG_SHRT, "open_drumedit");
+ defShrt(SHRT_OPEN_LIST, Qt::CTRL + Qt::Key_L, "Open listeditor", ARRANG_SHRT, "open_listedit");
+ defShrt(SHRT_OPEN_WAVE, Qt::CTRL + Qt::Key_W, "Open waveeditor", ARRANG_SHRT, "open_waveedit");
+ defShrt(SHRT_OPEN_GRAPHIC_MASTER, Qt::CTRL + Qt::Key_M, "Open graphical mastertrack editor", ARRANG_SHRT, "open_graph_master");
+ defShrt(SHRT_OPEN_LIST_MASTER, Qt::CTRL + Qt::SHIFT + Qt::Key_M, "Open list mastertrack editor", ARRANG_SHRT, "open_list_master");
+ defShrt(SHRT_OPEN_MIDI_TRANSFORM, Qt::CTRL + Qt::Key_T, "Open midi transformer", ARRANG_SHRT, "open_midi_transform");
+ defShrt(SHRT_ADD_MIDI_TRACK, Qt::CTRL + Qt::Key_J, "Add midi track", ARRANG_SHRT, "add_midi_track");
+ defShrt(SHRT_ADD_DRUM_TRACK, 0, "Add drum track", ARRANG_SHRT, "add_drum_track");
+ defShrt(SHRT_ADD_WAVE_TRACK, 0, "Add wave track", ARRANG_SHRT, "add_wave_track");
+ defShrt(SHRT_ADD_AUDIO_OUTPUT, 0, "Add audio output", ARRANG_SHRT, "add_audio_output");
+ defShrt(SHRT_ADD_AUDIO_GROUP, 0, "Add audio group", ARRANG_SHRT, "add_audio_group");
+ defShrt(SHRT_ADD_AUDIO_INPUT, 0, "Add audio input", ARRANG_SHRT, "add_audio_input");
+ defShrt(SHRT_ADD_AUDIO_AUX , 0, "Add audio aux", ARRANG_SHRT, "add_audio_aux");
+ defShrt(SHRT_GLOBAL_CUT, 0, "Structure: Global cut", ARRANG_SHRT, "global_cut");
+ defShrt(SHRT_GLOBAL_INSERT, 0, "Structure: Global insert", ARRANG_SHRT, "global_insert");
+ defShrt(SHRT_GLOBAL_SPLIT, 0, "Structure: Global split", ARRANG_SHRT, "global_split");
+ defShrt(SHRT_COPY_RANGE, 0, "Structure: Copy range", ARRANG_SHRT, "copy_range");
+ defShrt(SHRT_CUT_EVENTS, 0, "Structure: Cut events", ARRANG_SHRT, "cut_events");
+ //defShrt(SHRT_OPEN_MIXER, Qt::Key_F10, "View: Open mixer window", ARRANG_SHRT, "toggle_mixer");
+ defShrt(SHRT_OPEN_MIXER, Qt::Key_F10, "View: Open mixer #1 window", ARRANG_SHRT, "toggle_mixer");
+ defShrt(SHRT_OPEN_MIXER2, Qt::CTRL + Qt::Key_F10, "View: Open mixer #2 window", ARRANG_SHRT, "toggle_mixer2");
+ defShrt(SHRT_OPEN_TRANSPORT, Qt::Key_F11, "View: Toggle transport window", ARRANG_SHRT, "toggle_transport");
+ defShrt(SHRT_OPEN_BIGTIME, Qt::Key_F12, "View: Toggle bigtime window", ARRANG_SHRT, "toggle_bigtime");
+ defShrt(SHRT_OPEN_MARKER, Qt::Key_F9, "View: Open marker window", ARRANG_SHRT, "marker_window");
+
+ defShrt(SHRT_FOLLOW_JUMP, 0, "Settings: Follow song by page", ARRANG_SHRT, "follow_jump");
+ defShrt(SHRT_FOLLOW_NO, 0, "Settings: Follow song off", ARRANG_SHRT, "follow_no");
+ defShrt(SHRT_FOLLOW_CONTINUOUS, 0, "Settings: Follow song continuous", ARRANG_SHRT, "follow_continuous");
+
+ defShrt(SHRT_GLOBAL_CONFIG, 0, "Settings: Global configuration", ARRANG_SHRT, "configure_global");
+ defShrt(SHRT_CONFIG_SHORTCUTS, 0, "Settings: Configure shortcuts", ARRANG_SHRT, "configure_shortcuts");
+ defShrt(SHRT_CONFIG_METRONOME, 0, "Settings: Configure metronome", ARRANG_SHRT, "configure_metronome");
+ defShrt(SHRT_CONFIG_MIDISYNC, 0, "Settings: Midi sync configuration", ARRANG_SHRT, "configure_midi_sync");
+ defShrt(SHRT_MIDI_FILE_CONFIG, 0, "Settings: Midi file import/export configuration", ARRANG_SHRT, "configure_midi_file");
+ defShrt(SHRT_APPEARANCE_SETTINGS, 0, "Settings: Appearance settings", ARRANG_SHRT, "configure_appearance_settings");
+ defShrt(SHRT_CONFIG_MIDI_PORTS, 0, "Settings: Midi ports / Soft Synth", ARRANG_SHRT, "configure_midi_ports");
+ defShrt(SHRT_CONFIG_AUDIO_PORTS, 0, "Settings: Audio subsystem configuration", ARRANG_SHRT, "configure_audio_ports");
+ //defShrt(SHRT_SAVE_GLOBAL_CONFIG, 0, "Save global configuration", ARRANG_SHRT, "configure_save_global");
+
+ defShrt(SHRT_MIDI_EDIT_INSTRUMENTS, 0, "Midi: Edit midi instruments", ARRANG_SHRT, "midi_edit_instruments");
+ defShrt(SHRT_MIDI_INPUT_TRANSFORM, 0, "Midi: Open midi input transform", ARRANG_SHRT, "midi_open_input_transform");
+ defShrt(SHRT_MIDI_INPUT_FILTER, 0, "Midi: Open midi input filter", ARRANG_SHRT, "midi_open_input_filter");
+ defShrt(SHRT_MIDI_INPUT_TRANSPOSE, 0, "Midi: Midi input transpose", ARRANG_SHRT, "midi_open_input_transpose");
+ defShrt(SHRT_MIDI_REMOTE_CONTROL, 0, "Midi: Midi remote control", ARRANG_SHRT, "midi_remote_control");
+ defShrt(SHRT_RANDOM_RHYTHM_GENERATOR,0,"Midi: Random rhythm generator", ARRANG_SHRT, "midi_random_rhythm_generator");
+ defShrt(SHRT_MIDI_RESET, 0, "Midi: Reset midi", ARRANG_SHRT, "midi_reset");
+ defShrt(SHRT_MIDI_INIT, 0, "Midi: Init midi", ARRANG_SHRT, "midi_init");
+ defShrt(SHRT_MIDI_LOCAL_OFF, 0, "Midi: Midi local off", ARRANG_SHRT, "midi_local_off");
+
+ defShrt(SHRT_AUDIO_BOUNCE_TO_TRACK, 0, "Audio: Bounce audio to track", ARRANG_SHRT, "audio_bounce_to_track");
+ defShrt(SHRT_AUDIO_BOUNCE_TO_FILE, 0, "Audio: Bounce audio to file", ARRANG_SHRT, "audio_bounce_to_file");
+ defShrt(SHRT_AUDIO_RESTART, 0, "Audio: Restart audio", ARRANG_SHRT, "audio_restart");
+
+ defShrt(SHRT_MIXER_AUTOMATION, 0, "Automation: Mixer automation", ARRANG_SHRT, "mixer_automation");
+ defShrt(SHRT_MIXER_SNAPSHOT, 0, "Automation: Take mixer snapshot", ARRANG_SHRT, "mixer_snapshot");
+ defShrt(SHRT_MIXER_AUTOMATION_CLEAR,0, "Automation: Clear mixer automation", ARRANG_SHRT, "mixer_automation_clear");
+
+// defShrt(SHRT_OPEN_CLIPS, 0, "View audio clips", ARRANG_SHRT, "view_audio_clips");
+ defShrt(SHRT_OPEN_HELP, Qt::Key_F1, "Help: Open Manual", ARRANG_SHRT, "open_help");
+ defShrt(SHRT_START_WHATSTHIS, Qt::SHIFT + Qt::Key_F1, "Help: Toggle whatsthis mode", ARRANG_SHRT, "toggle_whatsthis");
+
+ defShrt(SHRT_EDIT_PART, Qt::Key_Return, "Edit: Edit selected part", ARRANG_SHRT, "edit_selected_part");
+ defShrt(SHRT_SEL_ABOVE, Qt::Key_Up, "Edit: Select nearest part on track above", ARRANG_SHRT, "sel_part_above");
+ defShrt(SHRT_SEL_ABOVE_ADD, Qt::SHIFT + Qt::Key_Up, "Edit: Add nearest part on track above", ARRANG_SHRT, "sel_part_above_add");
+ defShrt(SHRT_SEL_BELOW, Qt::Key_Down, "Edit: Select nearest part on track below", ARRANG_SHRT, "sel_part_below");
+ defShrt(SHRT_SEL_BELOW_ADD, Qt::SHIFT + Qt::Key_Down, "Edit: Add nearest part on track below", ARRANG_SHRT, "sel_part_below_add");
+
+// defShrt(SHRT_INSERT, Qt::CTRL+Qt::SHIFT+ Qt::Key_I, "Edit: Insert parts, moving time", ARRANG_SHRT, "insert_parts");
+// defShrt(SHRT_INSERTMEAS, Qt::CTRL+Qt::SHIFT+ Qt::Key_M, "Edit: Insert empty measure", ARRANG_SHRT, "insert_measure");
+
+ defShrt(SHRT_SEL_TRACK_ABOVE, Qt::CTRL + Qt::Key_Up, "Select track above", ARRANG_SHRT, "sel_track_above");
+ defShrt(SHRT_SEL_TRACK_BELOW, Qt::CTRL + Qt::Key_Down, "Select track below", ARRANG_SHRT, "sel_track_below");
+
+ //-----------------------------------------------------------
+
+ defShrt(SHRT_TRANSPOSE, 0, "Midi: Transpose", ARRANG_SHRT + PROLL_SHRT, "midi_transpose");
+
+ //-----------------------------------------------------------
+
+ defShrt(SHRT_SELECT_ALL, Qt::CTRL + Qt::Key_A, "Edit: Select all", ARRANG_SHRT + PROLL_SHRT + DEDIT_SHRT, "sel_all");
+ defShrt(SHRT_SELECT_NONE, Qt::CTRL + Qt::SHIFT + Qt::Key_A, "Edit: Select none", ARRANG_SHRT + PROLL_SHRT + DEDIT_SHRT, "sel_none");
+ defShrt(SHRT_SELECT_INVERT, Qt::CTRL + Qt::Key_I, "Edit: Invert selection", ARRANG_SHRT + PROLL_SHRT + DEDIT_SHRT, "sel_inv");
+ defShrt(SHRT_SELECT_ILOOP, 0, "Edit: Select events/parts inside locators", ARRANG_SHRT + PROLL_SHRT + DEDIT_SHRT, "sel_ins_loc");
+ defShrt(SHRT_SELECT_OLOOP, 0, "Edit: Select events/parts outside locators", ARRANG_SHRT + PROLL_SHRT + DEDIT_SHRT, "sel_out_loc");
+ defShrt(SHRT_SELECT_PREV_PART, Qt::ALT + Qt::Key_Left, "Edit: Select previous part", ARRANG_SHRT + PROLL_SHRT + DEDIT_SHRT, "sel_prv_prt");
+ defShrt(SHRT_SELECT_NEXT_PART, Qt::ALT + Qt::Key_Right, "Edit: Select next part", ARRANG_SHRT + PROLL_SHRT + DEDIT_SHRT, "sel_nxt_prt");
+ defShrt(SHRT_SEL_LEFT, Qt::Key_Left, "Edit: Select nearest part/event to the left", ARRANG_SHRT + PROLL_SHRT + DEDIT_SHRT, "sel_left");
+ defShrt(SHRT_SEL_LEFT_ADD, Qt::Key_Left + Qt::SHIFT, "Edit: Add nearest part/event to the left to selection", PROLL_SHRT + DEDIT_SHRT, "sel_left_add");
+ defShrt(SHRT_SEL_RIGHT, Qt::Key_Right, "Edit: Select nearest part/event to the left", ARRANG_SHRT + PROLL_SHRT + DEDIT_SHRT,"sel_right");
+ defShrt(SHRT_SEL_RIGHT_ADD, Qt::Key_Right + Qt::SHIFT, "Edit: Add nearest part/event to the right to selection", PROLL_SHRT + DEDIT_SHRT,"sel_right_add");
+ defShrt(SHRT_LOCATORS_TO_SELECTION, Qt::ALT + Qt::Key_P, "Edit: Set locators to selection", ARRANG_SHRT + PROLL_SHRT + DEDIT_SHRT, "loc_to_sel");
+ defShrt(SHRT_INC_PITCH, Qt::CTRL + Qt::Key_Up, "Edit: Increase pitch", PROLL_SHRT + DEDIT_SHRT, "sel_inc_pitch");
+ defShrt(SHRT_DEC_PITCH, Qt::CTRL + Qt::Key_Down, "Edit: Decrease pitch", PROLL_SHRT + DEDIT_SHRT, "sel_dec_pitch");
+ defShrt(SHRT_INC_POS, Qt::CTRL + Qt::Key_Right, "Edit: Increase event position", PROLL_SHRT + DEDIT_SHRT, "sel_inc_pos");
+ defShrt(SHRT_DEC_POS, Qt::CTRL + Qt::Key_Left, "Edit: Decrease event position", PROLL_SHRT + DEDIT_SHRT, "sel_dec_pos");
+ defShrt(SHRT_ZOOM_IN, Qt::CTRL + Qt::Key_PageUp, "View: Zoom in", PROLL_SHRT + DEDIT_SHRT, "zoom_in");
+ defShrt(SHRT_ZOOM_OUT, Qt::CTRL + Qt::Key_PageDown, "View: Zoom out", PROLL_SHRT + DEDIT_SHRT, "zoom_out");
+ defShrt(SHRT_GOTO_CPOS, Qt::Key_C, "View: Goto current position", PROLL_SHRT + DEDIT_SHRT, "goto_cpos");
+ defShrt(SHRT_SCROLL_LEFT, Qt::Key_H, "View: Scroll left", PROLL_SHRT + DEDIT_SHRT, "scroll_left");
+ defShrt(SHRT_SCROLL_RIGHT, Qt::Key_L, "View: Scroll left", PROLL_SHRT + DEDIT_SHRT, "scroll_right");
+
+ //-----------------------------------------------------------
+ //Drum:
+ //-----------------------------------------------------------
+
+ defShrt(SHRT_FIXED_LEN, Qt::ALT + Qt::Key_L, "Edit: Set fixed length on midi events", PROLL_SHRT + DEDIT_SHRT, "midi_fixed_len");
+
+ //-----------------------------------------------------------
+ //Pianoroll:
+ //-----------------------------------------------------------
+
+ defShrt(SHRT_OVER_QUANTIZE, 0, "Quantize: Over Quantize", PROLL_SHRT, "midi_over_quant");
+ defShrt(SHRT_ON_QUANTIZE, 0, "Quantize: Note On Quantize", PROLL_SHRT, "midi_quant_noteon");
+ defShrt(SHRT_ONOFF_QUANTIZE, 0, "Quantize: Note On/Off Quantize", PROLL_SHRT,"midi_quant_noteoff");
+ defShrt(SHRT_ITERATIVE_QUANTIZE,0,"Quantize: Iterative Quantize", PROLL_SHRT,"midi_quant_iterative");
+ defShrt(SHRT_CONFIG_QUANT, Qt::CTRL + Qt::ALT + Qt::Key_Q, "Quantize: Configure quant", PROLL_SHRT, "config_quant");
+ defShrt(SHRT_MODIFY_GATE_TIME, 0, "Quantize: Modify Gate Time", PROLL_SHRT, "midi_mod_gate_time");
+ defShrt(SHRT_MODIFY_VELOCITY, 0, "Quantize: Modify Velocity", PROLL_SHRT, "midi_mod_velo");
+ defShrt(SHRT_CRESCENDO, 0, "Edit: Crescendo", PROLL_SHRT, "midi_crescendo");
+ defShrt(SHRT_THIN_OUT, 0, "Edit: Thin Out", PROLL_SHRT, "midi_thin_out");
+ defShrt(SHRT_ERASE_EVENT, 0, "Edit: Erase Event", PROLL_SHRT, "midi_erase_event");
+ defShrt(SHRT_DELETE_OVERLAPS, 0, "Edit: Delete overlaps", PROLL_SHRT, "midi_delete_overlaps");
+ defShrt(SHRT_NOTE_SHIFT, 0, "Edit: Note Shift", PROLL_SHRT, "midi_note_shift");
+ defShrt(SHRT_MOVE_CLOCK, 0, "Edit: Move Clock", PROLL_SHRT, "midi_move_clock");
+ defShrt(SHRT_COPY_MEASURE, 0, "Edit: Copy Measure", PROLL_SHRT, "midi_copy_measure");
+ defShrt(SHRT_ERASE_MEASURE, 0, "Edit: Erase Measure", PROLL_SHRT,"midi_erase_measure");
+ defShrt(SHRT_DELETE_MEASURE, 0, "Edit: Delete Measure", PROLL_SHRT, "midi_delete_measure");
+ defShrt(SHRT_CREATE_MEASURE, 0, "Edit: Create Measure", PROLL_SHRT, "midi_create_measure");
+ defShrt(SHRT_EVENT_COLOR, Qt::Key_E, "Edit: Change event color", PROLL_SHRT, "change_event_color");
+
+
+ // Shortcuts for tools
+ // global
+ defShrt(SHRT_TOOL_POINTER, Qt::Key_A, "Tool: Pointer", ARRANG_SHRT + PROLL_SHRT + DEDIT_SHRT, "pointer_tool");
+ defShrt(SHRT_TOOL_PENCIL, Qt::Key_D, "Tool: Pencil", ARRANG_SHRT + PROLL_SHRT + DEDIT_SHRT, "pencil_tool");
+ defShrt(SHRT_TOOL_RUBBER, Qt::Key_R, "Tool: Eraser", ARRANG_SHRT + PROLL_SHRT + DEDIT_SHRT, "eraser_tool");
+ // piano roll & drum editor
+ defShrt(SHRT_TOOL_LINEDRAW, 0, "Tool: Line Draw", PROLL_SHRT + DEDIT_SHRT, "line_draw_tool");
+ // arranger
+ defShrt(SHRT_TOOL_SCISSORS, Qt::Key_S, "Tool: Scissor", ARRANG_SHRT, "scissor_tool");
+ defShrt(SHRT_TOOL_GLUE, Qt::Key_G, "Tool: Glue", ARRANG_SHRT, "glue_tool");
+ defShrt(SHRT_TOOL_MUTE, 0, "Tool: Mute", ARRANG_SHRT, "mute_tool");
+
+ //Increase/decrease current position, is going to be in arranger & drumeditor as well
+ defShrt(SHRT_POS_INC, Qt::Key_Plus, "Transport: Increase current position", GLOBAL_SHRT, "curpos_increase");
+ defShrt(SHRT_POS_DEC, Qt::Key_Minus, "Transport: Decrease current position", GLOBAL_SHRT, "curpos_decrease");
+ defShrt(SHRT_SET_QUANT_1, Qt::Key_1, "Quantize: Set quantize to 1/1 note", PROLL_SHRT, "midi_quant_1");
+ defShrt(SHRT_SET_QUANT_2, Qt::Key_2, "Quantize: Set quantize to 1/2 note", PROLL_SHRT, "midi_quant_2");
+ defShrt(SHRT_SET_QUANT_3, Qt::Key_3, "Quantize: Set quantize to 1/4 note", PROLL_SHRT, "midi_quant_3");
+ defShrt(SHRT_SET_QUANT_4, Qt::Key_4, "Quantize: Set quantize to 1/8 note", PROLL_SHRT, "midi_quant_4");
+ defShrt(SHRT_SET_QUANT_5, Qt::Key_5, "Quantize: Set quantize to 1/16 note", PROLL_SHRT, "midi_quant_5");
+ defShrt(SHRT_SET_QUANT_6, Qt::Key_6, "Quantize: Set quantize to 1/32 note", PROLL_SHRT, "midi_quant_6");
+ defShrt(SHRT_SET_QUANT_7, Qt::Key_7, "Quantize: Set quantize to 1/64 note", PROLL_SHRT, "midi_quant_7");
+
+ defShrt(SHRT_TOGGLE_TRIOL, Qt::Key_T, "Quantize: Toggle triol quantization", PROLL_SHRT, "midi_quant_triol");
+ defShrt(SHRT_TOGGLE_PUNCT, Qt::Key_Period, "Quantize: Toggle punctuation quantization", PROLL_SHRT, "midi_quant_punct");
+ defShrt(SHRT_TOGGLE_PUNCT2, Qt::Key_Comma, "Quantize: Toggle punctuation quantization (2)", PROLL_SHRT, "midi_quant_punct2");
+ defShrt(SHRT_INSERT_AT_LOCATION, Qt::SHIFT + Qt::Key_Right, "Edit: Insert at location", PROLL_SHRT, "midi_insert_at_loc");
+
+ defShrt(SHRT_INCREASE_LEN, Qt::CTRL + Qt::SHIFT + Qt::Key_Right, "Edit: Increase length", PROLL_SHRT, "increase_len");
+ defShrt(SHRT_DECREASE_LEN, Qt::CTRL + Qt::SHIFT + Qt::Key_Left, "Edit: Decrease length", PROLL_SHRT, "decrease_len");
+
+ //-----------------------------------------------------------
+ // List edit:
+ //-----------------------------------------------------------
+
+ defShrt(SHRT_LE_INS_NOTES, Qt::CTRL + Qt::Key_N, "Insert Note", LEDIT_SHRT, "le_ins_note");
+ defShrt(SHRT_LE_INS_SYSEX, Qt::CTRL + Qt::Key_S, "Insert SysEx", LEDIT_SHRT, "le_ins_sysex");
+ defShrt(SHRT_LE_INS_CTRL, Qt::CTRL + Qt::Key_T, "Insert Ctrl", LEDIT_SHRT, "le_ins_ctrl");
+ defShrt(SHRT_LE_INS_META, 0, "Insert Meta", LEDIT_SHRT, "le_ins_meta");
+ defShrt(SHRT_LE_INS_CHAN_AFTERTOUCH, Qt::CTRL + Qt::Key_A, "Insert Channel Aftertouch", LEDIT_SHRT, "le_ins_afttouch");
+ defShrt(SHRT_LE_INS_POLY_AFTERTOUCH, Qt::CTRL + Qt::Key_P, "Insert Key Aftertouch", LEDIT_SHRT, "le_ins_poly");
+
+ //-----------------------------------------------------------
+ // List masteredit:
+ //-----------------------------------------------------------
+ defShrt(SHRT_LM_INS_TEMPO, Qt::CTRL + Qt::Key_T, "Insert Tempo", LMEDIT_SHRT, "lm_ins_tempo");
+ defShrt(SHRT_LM_INS_SIG , Qt::CTRL + Qt::Key_R, "Insert Signature", LMEDIT_SHRT, "lm_ins_sig");
+ defShrt(SHRT_LM_EDIT_BEAT, Qt::CTRL + Qt::SHIFT+ Qt::Key_E, "Change Event Position", LMEDIT_SHRT, "lm_edit_beat");
+ defShrt(SHRT_LM_EDIT_VALUE, Qt::CTRL + Qt::Key_E, "Edit Event Value", LMEDIT_SHRT, "lm_edit_val");
+
+ defShrt(SHRT_NEXT_MARKER, Qt::Key_F6, "Goto Next Marker", ARRANG_SHRT, "me_sel_next");
+ defShrt(SHRT_PREV_MARKER, Qt::Key_F5, "Goto Prev Marker", ARRANG_SHRT, "me_sel_prev");
+
+ }
+
+ const shortcut_cg shortcut_category[SHRT_NUM_OF_CATEGORIES] = {
+ { GLOBAL_SHRT, "Global" },
+ { ARRANG_SHRT, "Arranger" },
+ { PROLL_SHRT, "Pianoroll" },
+ { DEDIT_SHRT, "Drumeditor" },
+ { LEDIT_SHRT, "List editor" },
+ { LMEDIT_SHRT, "List Mastertrack" },
+// { SCORE_SHRT, "Score editor" },
+// { WAVE_SHRT, "Wave editor" },
+ { ALL_SHRT , "All categories" }
+ };
+
+int getShrtByTag(const char* xml)
+ {
+ for (int i=0; i<SHRT_NUM_OF_ELEMENTS; i++) {
+ if (shortcuts[i].xml) {
+ if (strcmp(shortcuts[i].xml, xml) == 0)
+ return i;
+ }
+ }
+ return -1;
+ }
+
+void writeShortCuts(int level, Xml& xml)
+ {
+ xml.tag(level++, "shortcuts");
+ for (int i=0; i < SHRT_NUM_OF_ELEMENTS; i++) {
+ if (shortcuts[i].xml != NULL && shortcuts[i].type != INVIS_SHRT) //Avoid nullptr & hardcoded shortcuts
+ xml.intTag(level, shortcuts[i].xml, shortcuts[i].key);
+ }
+ xml.etag(level, "shortcuts");
+ }
+
+void readShortCuts(Xml& xml)
+ {
+ for (;;) {
+ Xml::Token token = xml.parse();
+ if (token == Xml::Error || token == Xml::End)
+ break;
+
+ const QString& tag = xml.s1();
+ switch (token) {
+ case Xml::TagStart: {
+ if (tag.length()) {
+ int index = getShrtByTag(tag);
+ if (index == -1) //No such tag found
+ printf("Config file might be corrupted. Unknown shortcut: %s\n",tag.latin1());
+ else {
+ //printf("Index: %d\n",index);
+ shortcuts[index].key = xml.parseInt();
+ //printf("shortcuts[%d].key = %d, %s\n",index, shortcuts[index].key, shortcuts[index].descr);
+ }
+ }
+ }
+ case Xml::TagEnd:
+ if (tag == "shortcuts")
+ return;
+ default:
+ break;
+ }
+ }
+ }
diff --git a/muse2/muse/shortcuts.h b/muse2/muse/shortcuts.h
new file mode 100644
index 00000000..0e2121f9
--- /dev/null
+++ b/muse2/muse/shortcuts.h
@@ -0,0 +1,285 @@
+//
+// C++ Interface: shortcuts
+//
+// Description:
+// Datastructures and declaration of shortcuts used in the application
+//
+// Author: Mathias Lundgren <lunar_shuttle@users.sourceforge.net>, (C) 2003
+//
+// Copyright: Mathias Lundgren (lunar_shuttle@users.sourceforge.net) (C) 2003
+//
+//
+#ifndef __SHORTCUTS_H__
+#define __SHORTCUTS_H__
+
+#include <list>
+#include "xml.h"
+
+//
+// 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
+
+struct shortcut
+ {
+ int key;
+ const char* descr;
+ const char* xml; //xml-tag for config-file
+ int type;
+ };
+
+struct shortcut_cg
+ {
+ int id_flag;
+ const char* name;
+ };
+
+typedef struct shortcut ShortCut ;
+
+enum {
+ //Transport/Positioning
+ SHRT_PLAY_SONG, //Enter
+ SHRT_PLAY_TOGGLE, //Space
+ SHRT_STOP, //Insert
+ SHRT_GOTO_START, // W
+ SHRT_GOTO_LEFT, //End-keypad
+ SHRT_GOTO_RIGHT, //Cursordown-keypad
+ SHRT_POS_INC, // Plus
+ SHRT_POS_DEC, // Minus
+ SHRT_TOGGLE_LOOP, // Slash
+ SHRT_TOGGLE_METRO, // C
+ SHRT_START_REC, // *(keypad)
+ SHRT_REC_CLEAR, // *(keypad)
+
+ //Main + Drumeditor
+ SHRT_NEW, //Ctrl+N
+ SHRT_OPEN, //Ctrl+O
+ SHRT_SAVE, //Ctrl+S
+
+ //Used throughout the app:
+ SHRT_UNDO, //Ctrl+Z
+ SHRT_REDO, //Ctrl+Y
+ SHRT_COPY, //Ctrl+C
+ SHRT_CUT, //Ctrl+X
+ SHRT_PASTE, //Ctrl+V
+ SHRT_DELETE,//Delete
+
+
+ //Main:
+ SHRT_SAVE_AS, //Default: undefined
+ SHRT_OPEN_RECENT, //Ctrl+1
+ SHRT_LOAD_TEMPLATE, //Default: undefined
+ SHRT_CONFIG_PRINTER, //Ctrl+P
+ SHRT_IMPORT_MIDI, //Default: undefined
+ SHRT_EXPORT_MIDI, //Default: undefined
+ SHRT_IMPORT_PART, //!< Import midi part to current track & location, Default: undefined
+ SHRT_IMPORT_AUDIO, //Default: undefined
+ SHRT_QUIT, //Default: Ctrl+Q
+
+ SHRT_DESEL_PARTS, //Ctrl+B
+ SHRT_SELECT_PRTSTRACK, //Default: undefined
+ SHRT_OPEN_PIANO, //Ctrl+E
+ SHRT_OPEN_SCORE, //Ctrl+R
+ SHRT_OPEN_DRUMS, //Ctrl+D
+ SHRT_OPEN_LIST, //Ctrl+L
+ SHRT_OPEN_WAVE, //Ctrl+W
+ SHRT_OPEN_GRAPHIC_MASTER, //Ctrl+M
+ SHRT_OPEN_LIST_MASTER, //Ctrl+Shift+M
+ SHRT_OPEN_MIDI_TRANSFORM, //Ctrl+T
+
+ SHRT_GLOBAL_CUT, //Default: undefined
+ SHRT_GLOBAL_INSERT, //Default: undefined
+ SHRT_GLOBAL_SPLIT, //Default: undefined
+ SHRT_COPY_RANGE, //Default: undefined
+ SHRT_CUT_EVENTS, //Default: undefined
+
+ SHRT_OPEN_TRANSPORT, //F11
+ SHRT_OPEN_BIGTIME, //F12
+ SHRT_OPEN_MIXER, //Ctrl+*
+ SHRT_OPEN_MIXER2, //Ctrl+*
+ SHRT_OPEN_MARKER, // F9
+ SHRT_OPEN_CLIPS, //Default: undefined
+
+ SHRT_FOLLOW_JUMP, //Default: undefined
+ SHRT_FOLLOW_NO, //Default: undefined
+ SHRT_FOLLOW_CONTINUOUS, //Default: undefined
+
+ SHRT_GLOBAL_CONFIG, //Default: undefined
+ SHRT_CONFIG_SHORTCUTS, //Default: undefined
+ SHRT_CONFIG_METRONOME, //Default: undefined
+ SHRT_CONFIG_MIDISYNC, //Default: undefined
+ SHRT_MIDI_FILE_CONFIG, //Default: undefined
+ SHRT_APPEARANCE_SETTINGS, //Default: undefined
+ SHRT_CONFIG_MIDI_PORTS, //Default: undefined
+ SHRT_CONFIG_AUDIO_PORTS, //Default: undefined
+ //SHRT_SAVE_GLOBAL_CONFIG, //Default: undefined
+
+ SHRT_MIDI_EDIT_INSTRUMENTS, //Default: undefined
+ SHRT_MIDI_INPUT_TRANSFORM, //Default: undefined
+ SHRT_MIDI_INPUT_FILTER, //Default: undefined
+ SHRT_MIDI_INPUT_TRANSPOSE, //Default: undefined
+ SHRT_MIDI_REMOTE_CONTROL, //Default: undefined
+ SHRT_RANDOM_RHYTHM_GENERATOR, //Default: undefined
+ SHRT_MIDI_RESET, //Default: undefined
+ SHRT_MIDI_INIT, //Default: undefined
+ SHRT_MIDI_LOCAL_OFF, //Default: undefined
+
+ SHRT_AUDIO_BOUNCE_TO_TRACK, //Default: undefined
+ SHRT_AUDIO_BOUNCE_TO_FILE, //Default: undefined
+ SHRT_AUDIO_RESTART, //Default: undefined
+
+ SHRT_MIXER_AUTOMATION, //Default: undefined
+ SHRT_MIXER_SNAPSHOT, //Default: undefined
+ SHRT_MIXER_AUTOMATION_CLEAR, //Default: undefined
+
+ SHRT_ADD_MIDI_TRACK, //Default: Ctrl+J
+ SHRT_ADD_DRUM_TRACK, //Default: undefined
+ SHRT_ADD_WAVE_TRACK, //Default: undefined
+ SHRT_ADD_AUDIO_OUTPUT, //Default: undefined
+ SHRT_ADD_AUDIO_GROUP, //Default: undefined
+ SHRT_ADD_AUDIO_INPUT, //Default: undefined
+ SHRT_ADD_AUDIO_AUX, //Default: undefined
+ SHRT_RESET_MIDI, //Ctrl+Alt+Z
+
+ SHRT_OPEN_HELP, //F1
+ SHRT_START_WHATSTHIS, //Shift-F1
+
+ //Arranger, parts:
+ SHRT_EDIT_PART, //Enter
+ SHRT_SEL_ABOVE, //Up
+ SHRT_SEL_ABOVE_ADD, //move up and add to selection
+ SHRT_SEL_BELOW, //Down
+ SHRT_SEL_BELOW_ADD, //move down and add to selection
+
+ /*
+ SHRT_INSERT, //Ctrl+Shift+I - insert parts instead of pasting
+ SHRT_INSERTMEAS, //Ctrl+Shift+M - insert measures
+ */
+ //Arranger tracks
+ SHRT_SEL_TRACK_BELOW,
+ SHRT_SEL_TRACK_ABOVE,
+
+ //To be in arranger, pianoroll & drumeditor
+ SHRT_SELECT_ALL, //Ctrl+A
+ SHRT_SELECT_NONE, //Ctrl+Shift+A
+ SHRT_SELECT_INVERT, //Ctrl+I
+ SHRT_SELECT_ILOOP, //Default: Undefined
+ SHRT_SELECT_OLOOP, //Default: Undefined
+ SHRT_SELECT_PREV_PART, // Ctrl+-
+ SHRT_SELECT_NEXT_PART, // Ctrl++
+ SHRT_SEL_LEFT, //left
+ SHRT_SEL_LEFT_ADD, //move left and add to selection
+ SHRT_SEL_RIGHT, //Right
+ SHRT_SEL_RIGHT_ADD, //move right and add to selection
+ SHRT_INC_PITCH,
+ SHRT_DEC_PITCH,
+ SHRT_INC_POS,
+ SHRT_DEC_POS,
+ SHRT_LOCATORS_TO_SELECTION, //Alt+P, currently in arranger & pianoroll
+ SHRT_INSERT_AT_LOCATION, //Shift+CrsrRight
+ SHRT_INCREASE_LEN,
+ SHRT_DECREASE_LEN,
+
+ SHRT_TOOL_1,//Shift+1 Pointer
+ SHRT_TOOL_2,//Shift+2 Pen
+ SHRT_TOOL_3,//Shift+3 Rubber
+ SHRT_TOOL_4,//Shift+4
+ SHRT_TOOL_5,//Shift+5
+ SHRT_TOOL_6,//Shift+6
+ SHRT_TRANSPOSE, //Default: undefined
+
+ //Shortcuts to be in pianoroll & drumeditor
+ SHRT_ZOOM_IN, // PgUp
+ SHRT_ZOOM_OUT, // PgDown
+ SHRT_GOTO_CPOS, // c
+ SHRT_SCROLL_LEFT, // h
+ SHRT_SCROLL_RIGHT, // l
+ SHRT_FIXED_LEN, //Alt+L, currently only drumeditor
+ SHRT_QUANTIZE, //q
+ SHRT_OVER_QUANTIZE, //Default: undefined
+ SHRT_ON_QUANTIZE, //Default: undefined
+ SHRT_ONOFF_QUANTIZE, //Default: undefined
+ SHRT_ITERATIVE_QUANTIZE, //Default: undefined
+ SHRT_CONFIG_QUANT, //Default: Ctrl+Alt+Q
+ SHRT_MODIFY_GATE_TIME, //Default: undefined
+ SHRT_MODIFY_VELOCITY,
+ SHRT_CRESCENDO,
+ SHRT_DELETE_OVERLAPS,
+
+ SHRT_THIN_OUT,
+ SHRT_ERASE_EVENT,
+ SHRT_NOTE_SHIFT,
+ SHRT_MOVE_CLOCK,
+ SHRT_COPY_MEASURE,
+ SHRT_ERASE_MEASURE,
+ SHRT_DELETE_MEASURE,
+ SHRT_CREATE_MEASURE,
+ SHRT_SET_QUANT_1, //1 - pianoroll
+ SHRT_SET_QUANT_2, //2 - pianoroll
+ SHRT_SET_QUANT_3, //3 - pianoroll
+ SHRT_SET_QUANT_4, //4 - pianoroll
+ SHRT_SET_QUANT_5, //5 - pianoroll
+ SHRT_SET_QUANT_6, //6 - pianoroll
+ SHRT_SET_QUANT_7, //7 - pianoroll
+ SHRT_TOGGLE_TRIOL, //t
+ SHRT_TOGGLE_PUNCT, //.-keypad
+ SHRT_TOGGLE_PUNCT2, // ,
+
+ SHRT_EVENT_COLOR, //e
+
+ // Shortcuts for tools
+ // global
+ SHRT_TOOL_POINTER, //
+ SHRT_TOOL_PENCIL,
+ SHRT_TOOL_RUBBER,
+
+ // pianoroll and drum editor
+ SHRT_TOOL_LINEDRAW,
+
+ // arranger
+ SHRT_TOOL_SCISSORS,
+ SHRT_TOOL_GLUE,
+ SHRT_TOOL_MUTE,
+
+
+ //Listeditor:
+ SHRT_LE_INS_NOTES, //Ctrl+N
+ SHRT_LE_INS_SYSEX, //Ctrl+S
+ SHRT_LE_INS_CTRL, //Ctrl+T
+ SHRT_LE_INS_META, //Default: undefined
+ SHRT_LE_INS_CHAN_AFTERTOUCH,//Ctrl+A
+ SHRT_LE_INS_POLY_AFTERTOUCH,//Ctrl+P
+
+ //List master editor:
+ SHRT_LM_INS_TEMPO, // Ctrl+T
+ SHRT_LM_INS_SIG, // Ctrl+R
+ SHRT_LM_EDIT_BEAT, // Ctrl+Shift+E
+ SHRT_LM_EDIT_VALUE,// Ctrl+E
+
+ // Marker view
+ SHRT_NEXT_MARKER,
+ SHRT_PREV_MARKER,
+
+ //Last item:
+ SHRT_NUM_OF_ELEMENTS // must be last
+ };
+
+extern ShortCut shortcuts[SHRT_NUM_OF_ELEMENTS]; //size of last entry
+extern void initShortCuts();
+extern void writeShortCuts(int level, Xml& xml);
+extern void readShortCuts (Xml& xml);
+extern const shortcut_cg shortcut_category[SHRT_NUM_OF_CATEGORIES];
+#endif
diff --git a/muse2/muse/sig.cpp b/muse2/muse/sig.cpp
new file mode 100644
index 00000000..8bbebfae
--- /dev/null
+++ b/muse2/muse/sig.cpp
@@ -0,0 +1,439 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: sig.cpp,v 1.5.2.2 2009/03/09 02:05:17 terminator356 Exp $
+//
+// (C) Copyright 2000 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include <stdio.h>
+#include <assert.h>
+#include "sig.h"
+#include "gconfig.h"
+#include "xml.h"
+
+SigList sigmap;
+
+//---------------------------------------------------------
+// SigList
+//---------------------------------------------------------
+
+SigList::SigList()
+ {
+ insert(std::pair<const unsigned, SigEvent*> (MAX_TICK, new SigEvent(4, 4, 0)));
+ }
+
+//---------------------------------------------------------
+// add
+// signatures are only allowed at the beginning of
+// a bar
+//---------------------------------------------------------
+
+void SigList::add(unsigned tick, int z, int n)
+ {
+ if (z == 0 || n == 0) {
+ printf("SigList::add illegal signature %d/%d\n", z, n);
+
+ // Added p3.3.43
+ return;
+ }
+ tick = raster1(tick, 0);
+ iSigEvent e = upper_bound(tick);
+ assert(e != end());
+
+ if (tick == e->second->tick) {
+ e->second->z = z;
+ e->second->n = n;
+ }
+ else {
+ SigEvent* ne = e->second;
+ SigEvent* ev = new SigEvent(ne->z, ne->n, ne->tick);
+ ne->z = z;
+ ne->n = n;
+ 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->z = e->second->z;
+ ne->second->n = e->second->n;
+ ne->second->tick = e->second->tick;
+ erase(e);
+ normalize();
+ }
+
+//---------------------------------------------------------
+// SigList::normalize
+//---------------------------------------------------------
+
+void SigList::normalize()
+ {
+ int z = 0;
+ int n = 0;
+ unsigned tick = 0;
+ iSigEvent ee;
+
+ for (iSigEvent e = begin(); e != end();) {
+ if (z == e->second->z && n == e->second->n) {
+ e->second->tick = tick;
+ erase(ee);
+ }
+ z = e->second->z;
+ n = e->second->n;
+ 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->n);
+ int ticksM = ticksB * e->second->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->z, i->second->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(4, 4, 0)));
+ }
+
+//---------------------------------------------------------
+// ticksMeasure
+//---------------------------------------------------------
+
+int SigList::ticksMeasure(int Z, int N) const
+ {
+ return ticks_beat(N) * 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->z, i->second->n);
+ }
+
+//---------------------------------------------------------
+// ticksBeat
+//---------------------------------------------------------
+
+int SigList::ticksBeat(unsigned tick) const
+ {
+ ciSigEvent i = upper_bound(tick);
+ assert(i != end());
+ return ticks_beat(i->second->n);
+ }
+
+int SigList::ticks_beat(int n) const
+ {
+ int m = config.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: assert(false); break;
+ }
+ return m;
+ }
+
+//---------------------------------------------------------
+// timesig
+//---------------------------------------------------------
+
+void SigList::timesig(unsigned tick, int& z, int& n) const
+ {
+ ciSigEvent i = upper_bound(tick);
+ if (i == end()) {
+ printf("timesig(%d): not found\n", tick);
+ // abort();
+ z = 4;
+ n = 4;
+ }
+ else {
+ z = i->second->z;
+ n = i->second->n;
+ }
+ }
+
+//---------------------------------------------------------
+// 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());
+ // abort();
+ *bar = 0;
+ *beat = 0;
+ *tick = 0;
+ return;
+ }
+
+ int delta = t - e->second->tick;
+ int ticksB = ticks_beat(e->second->n);
+ int ticksM = ticksB * e->second->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->n);
+ int ticksM = ticksB * e->second->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->n) * e->second->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);
+ assert(e != end());
+
+ int delta = t - e->second->tick;
+ int ticksM = ticks_beat(e->second->n) * e->second->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);
+ assert(e != end());
+
+ int delta = t - e->second->tick;
+ int ticksM = ticks_beat(e->second->n) * e->second->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);
+ assert(e != end());
+ return ticks_beat(e->second->n) * e->second->z;
+ }
+ return raster;
+ }
+
+//---------------------------------------------------------
+// SigList::write
+//---------------------------------------------------------
+
+void SigList::write(int level, Xml& xml) const
+ {
+ xml.tag(level++, "siglist");
+ for (ciSigEvent i = begin(); i != end(); ++i)
+ i->second->write(level, xml, i->first);
+ xml.tag(level, "/siglist");
+ }
+
+//---------------------------------------------------------
+// SigList::read
+//---------------------------------------------------------
+
+void SigList::read(Xml& xml)
+ {
+ 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 == "sig") {
+ SigEvent* t = new SigEvent();
+ unsigned tick = t->read(xml);
+ iSigEvent pos = find(tick);
+ if (pos != end())
+ erase(pos);
+ insert(std::pair<const unsigned, SigEvent*> (tick, t));
+ }
+ else
+ xml.unknown("SigList");
+ break;
+ case Xml::Attribut:
+ break;
+ case Xml::TagEnd:
+ if (tag == "siglist") {
+ normalize();
+ return;
+ }
+ default:
+ break;
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// SigEvent::write
+//---------------------------------------------------------
+
+void SigEvent::write(int level, Xml& xml, int at) const
+ {
+ xml.tag(level++, "sig at=\"%d\"", at);
+ xml.intTag(level, "tick", tick);
+ xml.intTag(level, "nom", z);
+ xml.intTag(level, "denom", n);
+ xml.tag(level, "/sig");
+ }
+
+//---------------------------------------------------------
+// SigEvent::read
+//---------------------------------------------------------
+
+int SigEvent::read(Xml& xml)
+ {
+ int at = 0;
+ for (;;) {
+ Xml::Token token = xml.parse();
+ const QString& tag = xml.s1();
+ switch (token) {
+ case Xml::Error:
+ case Xml::End:
+ return 0;
+ case Xml::TagStart:
+ if (tag == "tick")
+ tick = xml.parseInt();
+ else if (tag == "nom")
+ z = xml.parseInt();
+ else if (tag == "denom")
+ n = xml.parseInt();
+ else
+ xml.unknown("SigEvent");
+ break;
+ case Xml::Attribut:
+ if (tag == "at")
+ at = xml.s2().toInt();
+ break;
+ case Xml::TagEnd:
+ if (tag == "sig")
+ return at;
+ default:
+ break;
+ }
+ }
+ return 0;
+ }
+
+
diff --git a/muse2/muse/sig.h b/muse2/muse/sig.h
new file mode 100644
index 00000000..6a561d6e
--- /dev/null
+++ b/muse2/muse/sig.h
@@ -0,0 +1,79 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: sig.h,v 1.2 2004/01/11 18:55:34 wschweer Exp $
+//
+// (C) Copyright 2000 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __SIG_H__
+#define __SIG_H__
+
+#include <map>
+
+#ifndef MAX_TICK
+#define MAX_TICK (0x7fffffff/100)
+#endif
+
+class Xml;
+
+//---------------------------------------------------------
+// Signature Event
+//---------------------------------------------------------
+
+struct SigEvent {
+ int z, n; // takt signatur
+ unsigned tick; // ab dieser Position gilt signatur
+ int bar; // precomputed
+
+ int read(Xml&);
+ void write(int, Xml&, int) const;
+
+ SigEvent() { }
+ SigEvent(int Z, int N, unsigned tk) {
+ z = Z;
+ n = N;
+ 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(int z, int n) const;
+
+ public:
+ SigList();
+ void clear();
+ void add(unsigned tick, int z, int n);
+ void del(unsigned tick);
+
+ void read(Xml&);
+ void write(int, Xml&) const;
+ void dump() const;
+
+ void timesig(unsigned tick, int& z, int& n) 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;
+ unsigned raster2(unsigned tick, int raster) const;
+ int rasterStep(unsigned tick, int raster) const;
+ };
+
+extern SigList sigmap;
+#endif
diff --git a/muse2/muse/song.cpp b/muse2/muse/song.cpp
new file mode 100644
index 00000000..8c682e39
--- /dev/null
+++ b/muse2/muse/song.cpp
@@ -0,0 +1,3681 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: song.cpp,v 1.59.2.52 2009/12/15 03:39:58 terminator356 Exp $
+//
+// (C) Copyright 2000-2004 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include <unistd.h>
+#include <stdio.h>
+#include <errno.h>
+#include <qapplication.h>
+#include <qmessagebox.h>
+#include <q3popupmenu.h>
+#include <qdir.h>
+#include <qaction.h>
+#include <qcursor.h>
+#include <qpoint.h>
+//#include <qbutton.h>
+//Added by qt3to4:
+#include <Q3TextStream>
+
+#include "app.h"
+#include "driver/jackmidi.h"
+#include "driver/alsamidi.h"
+#include "song.h"
+#include "track.h"
+#include "undo.h"
+#include "key.h"
+#include "globals.h"
+#include "event.h"
+#include "drummap.h"
+#include "marker/marker.h"
+#include "synth.h"
+#include "audio.h"
+#include "mididev.h"
+#include "amixer.h"
+#include "midiseq.h"
+#include "audiodev.h"
+#include "gconfig.h"
+#include "sync.h"
+#include "midictrl.h"
+#include "menutitleitem.h"
+#include "midi.h"
+#include "sig.h"
+#include <sys/wait.h>
+
+extern void clearMidiTransforms();
+extern void clearMidiInputTransforms();
+Song* song;
+
+/*
+//---------------------------------------------------------
+// RoutingMenuItem
+//---------------------------------------------------------
+
+class RoutingMenuItem : public QCustomMenuItem
+{
+ Route route;
+ //virtual QSize sizeHint() { return QSize(80, h); }
+ virtual void 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, route.name());
+ }
+
+ public:
+ RoutingMenuItem(const Route& r) : route(r) { }
+};
+*/
+
+//---------------------------------------------------------
+// Song
+//---------------------------------------------------------
+
+Song::Song(const char* name)
+ :QObject(0, name)
+ {
+ _recRaster = 0; // Set to measure, the same as Arranger intial value. Arranger snap combo will set this.
+ noteFifoSize = 0;
+ noteFifoWindex = 0;
+ noteFifoRindex = 0;
+ undoList = new UndoList;
+ redoList = new UndoList;
+ _markerList = new MarkerList;
+ _globalPitchShift = 0;
+ clear(false);
+ }
+
+//---------------------------------------------------------
+// Song
+//---------------------------------------------------------
+
+Song::~Song()
+ {
+ delete undoList;
+ delete redoList;
+ delete _markerList;
+ }
+
+//---------------------------------------------------------
+// putEvent
+//---------------------------------------------------------
+
+void Song::putEvent(int pv)
+ {
+ if (noteFifoSize < REC_NOTE_FIFO_SIZE) {
+ recNoteFifo[noteFifoWindex] = pv;
+ noteFifoWindex = (noteFifoWindex + 1) % REC_NOTE_FIFO_SIZE;
+ ++noteFifoSize;
+ }
+ }
+
+//---------------------------------------------------------
+// setTempo
+// public slot
+//---------------------------------------------------------
+
+void Song::setTempo(int newTempo)
+ {
+ audio->msgSetTempo(pos[0].tick(), newTempo, true);
+ }
+
+//---------------------------------------------------------
+// setSig
+// called from transport window
+//---------------------------------------------------------
+
+void Song::setSig(int z, int n)
+ {
+ if (_masterFlag) {
+ audio->msgAddSig(pos[0].tick(), z, n);
+ }
+ }
+
+//---------------------------------------------------------
+// addNewTrack
+// Called from GUI context
+// Besides normal track types, n includes synth menu ids from populateAddTrack()
+//---------------------------------------------------------
+
+Track* Song::addNewTrack(int n)
+{
+ // Ignore negative numbers since this slot could be called by a menu or list etc. passing -1.
+ if(n < 0)
+ return 0;
+
+ // Synth sub-menu id?
+ if(n >= MENU_ADD_SYNTH_ID_BASE)
+ {
+ n -= MENU_ADD_SYNTH_ID_BASE;
+ if(n < (int)synthis.size())
+ {
+ //SynthI* si = createSynthI(synthis[n]->baseName());
+ //SynthI* si = createSynthI(synthis[n]->name());
+ SynthI* si = createSynthI(synthis[n]->baseName(), synthis[n]->name());
+ if(!si)
+ return 0;
+
+ // Add instance last in midi device list.
+ for (int i = 0; i < MIDI_PORTS; ++i)
+ {
+ MidiPort* port = &midiPorts[i];
+ MidiDevice* dev = port->device();
+ if (dev==0)
+ {
+ midiSeq->msgSetMidiDevice(port, si);
+ muse->changeConfig(true); // save configuration file
+ deselectTracks();
+ si->setSelected(true);
+ update();
+ return si;
+ }
+ }
+ deselectTracks();
+ si->setSelected(true);
+ update(SC_SELECTION);
+ return si;
+ }
+ else
+ return 0;
+ }
+ // Normal track.
+ else
+ {
+ // Ignore AUDIO_SOFTSYNTH, now that we have it as the synth menu id, since addTrack doesn't like it.
+ if((Track::TrackType)n == Track::AUDIO_SOFTSYNTH)
+ return 0;
+
+ Track* t = addTrack((Track::TrackType)n);
+ deselectTracks();
+ t->setSelected(true);
+ update(SC_SELECTION);
+ return t;
+ }
+}
+
+
+//---------------------------------------------------------
+// addTrack
+// called from GUI context
+//---------------------------------------------------------
+
+Track* Song::addTrack(int t)
+ {
+ Track::TrackType type = (Track::TrackType) t;
+ Track* track = 0;
+ int lastAuxIdx = _auxs.size();
+ switch(type) {
+ case Track::MIDI:
+ track = new MidiTrack();
+ track->setType(Track::MIDI);
+ break;
+ case Track::DRUM:
+ track = new MidiTrack();
+ track->setType(Track::DRUM);
+ ((MidiTrack*)track)->setOutChannel(9);
+ break;
+ case Track::WAVE:
+ track = new WaveTrack();
+ ((AudioTrack*)track)->addAuxSend(lastAuxIdx);
+ break;
+ case Track::AUDIO_OUTPUT:
+ track = new AudioOutput();
+ break;
+ case Track::AUDIO_GROUP:
+ track = new AudioGroup();
+ ((AudioTrack*)track)->addAuxSend(lastAuxIdx);
+ break;
+ case Track::AUDIO_AUX:
+ track = new AudioAux();
+ break;
+ case Track::AUDIO_INPUT:
+ track = new AudioInput();
+ ((AudioTrack*)track)->addAuxSend(lastAuxIdx);
+ break;
+ case Track::AUDIO_SOFTSYNTH:
+ printf("not implemented: Song::addTrack(SOFTSYNTH)\n");
+ // ((AudioTrack*)track)->addAuxSend(lastAuxIdx);
+ break;
+ default:
+ printf("Song::addTrack() illegal type %d\n", type);
+ abort();
+ }
+ track->setDefaultName();
+ insertTrack1(track, -1);
+ msgInsertTrack(track, -1, true);
+ insertTrack3(track, -1);
+
+ //
+ // add default route to master
+ //
+ OutputList* ol = song->outputs();
+ if (!ol->empty()) {
+ AudioOutput* ao = ol->front();
+ switch(type) {
+ case Track::MIDI:
+ case Track::DRUM:
+ case Track::AUDIO_OUTPUT:
+ break;
+ case Track::WAVE:
+ case Track::AUDIO_GROUP:
+ case Track::AUDIO_AUX:
+ case Track::AUDIO_INPUT:
+ // p3.3.38
+ //case Track::AUDIO_SOFTSYNTH:
+ audio->msgAddRoute(Route((AudioTrack*)track, -1), Route(ao, -1));
+ updateFlags |= SC_ROUTE;
+ break;
+ // p3.3.38 It should actually never get here now, but just in case.
+ case Track::AUDIO_SOFTSYNTH:
+ audio->msgAddRoute(Route((AudioTrack*)track, 0, ((AudioTrack*)track)->channels()), Route(ao, 0, ((AudioTrack*)track)->channels()));
+ updateFlags |= SC_ROUTE;
+ break;
+ }
+ }
+ audio->msgUpdateSoloStates();
+ return track;
+ }
+
+//---------------------------------------------------------
+// cmdRemoveTrack
+//---------------------------------------------------------
+
+void Song::cmdRemoveTrack(Track* track)
+ {
+ int idx = _tracks.index(track);
+ undoOp(UndoOp::DeleteTrack, idx, track);
+ removeTrack2(track);
+ updateFlags |= SC_TRACK_REMOVED;
+ }
+
+//---------------------------------------------------------
+// removeMarkedTracks
+//---------------------------------------------------------
+
+void Song::removeMarkedTracks()
+ {
+ bool loop;
+ do {
+ loop = false;
+ for (iTrack t = _tracks.begin(); t != _tracks.end(); ++t) {
+ if ((*t)->selected()) {
+ removeTrack2(*t);
+ loop = true;
+ break;
+ }
+ }
+ } while (loop);
+ }
+
+//---------------------------------------------------------
+// deselectTracks
+//---------------------------------------------------------
+
+void Song::deselectTracks()
+ {
+ for (iTrack t = _tracks.begin(); t != _tracks.end(); ++t)
+ (*t)->setSelected(false);
+ }
+
+//---------------------------------------------------------
+// changeTrack
+// oldTrack - copy of the original track befor modification
+// newTrack - modified original track
+//---------------------------------------------------------
+
+void Song::changeTrack(Track* oldTrack, Track* newTrack)
+ {
+ oldTrack->setSelected(false); //??
+ int idx = _tracks.index(newTrack);
+
+ //undoOp(UndoOp::ModifyTrack, oldTrack, newTrack);
+ undoOp(UndoOp::ModifyTrack, idx, oldTrack, newTrack);
+ updateFlags |= SC_TRACK_MODIFIED;
+ }
+
+//---------------------------------------------------------
+// addEvent
+// return true if event was added
+//---------------------------------------------------------
+
+bool Song::addEvent(Event& event, Part* part)
+ {
+ /*
+ if (event.type() == Controller) {
+ MidiTrack* track = (MidiTrack*)part->track();
+ int ch = track->outChannel();
+ int tick = event.tick() + part->tick();
+ int cntrl = event.dataA();
+ int val = event.dataB();
+ MidiPort* mp = &midiPorts[track->outPort()];
+
+ // Is it a drum controller event, according to the track port's instrument?
+ if(track->type() == Track::DRUM)
+ {
+ MidiController* mc = mp->drumController(cntrl);
+ if(mc)
+ {
+ int note = cntrl & 0x7f;
+ cntrl &= ~0xff;
+ ch = drumMap[note].channel;
+ mp = &midiPorts[drumMap[note].port];
+ cntrl |= drumMap[note].anote;
+ }
+ }
+
+ // Changed by T356.
+ //if (!mp->setCtrl(ch, tick, cntrl, val)) {
+ // mp->addManagedController(ch, cntrl);
+ // if (!mp->setCtrl(ch, tick, cntrl, val))
+ // return false;
+ // }
+ // Changed again. Don't depend on return value of this - search for the event, below.
+ //if(!mp->setControllerVal(ch, tick, cntrl, val, part))
+ // return false;
+ if(mp->setControllerVal(ch, tick, cntrl, val, part))
+ updateFlags |= SC_MIDI_CONTROLLER;
+ }
+ */
+
+ //addPortCtrlEvents(event, part);
+
+ // Return false if the event is already found.
+ // (But allow a port controller value, above, in case it is not already stored.)
+ if(part->events()->find(event) != part->events()->end())
+ {
+ // This can be normal for some (redundant) operations.
+ if(debugMsg)
+ printf("Song::addEvent event already found in part:%s size:%zd\n", part->name().latin1(), part->events()->size());
+ return false;
+ }
+
+ part->events()->add(event);
+ return true;
+ }
+
+//---------------------------------------------------------
+// changeEvent
+//---------------------------------------------------------
+
+void Song::changeEvent(Event& oldEvent, Event& newEvent, Part* part)
+{
+ iEvent i = part->events()->find(oldEvent);
+
+ if (i == part->events()->end()) {
+ // This can be normal for some (redundant) operations.
+ if(debugMsg)
+ printf("Song::changeEvent event not found in part:%s size:%zd\n", part->name().latin1(), part->events()->size());
+ // abort();
+ // Removed by T356. Allow it to add the new event.
+ // (And remove the old one from the midi port controller!)
+ //return;
+ }
+ else
+ part->events()->erase(i);
+
+ part->events()->add(newEvent);
+
+ /*
+ if (oldEvent.type() == Controller) {
+ MidiTrack* track = (MidiTrack*)part->track();
+ int ch = track->outChannel();
+ int tick = oldEvent.tick() + part->tick();
+ int cntrl = oldEvent.dataA();
+ MidiPort* mp = &midiPorts[track->outPort()];
+ // Is it a drum controller event, according to the track port's instrument?
+ if(track->type() == Track::DRUM)
+ {
+ MidiController* mc = mp->drumController(cntrl);
+ if(mc)
+ {
+ int note = cntrl & 0x7f;
+ cntrl &= ~0xff;
+ ch = drumMap[note].channel;
+ mp = &midiPorts[drumMap[note].port];
+ cntrl |= drumMap[note].anote;
+ }
+ }
+
+ mp->deleteController(ch, tick, cntrl, part);
+ }
+ */
+ //removePortCtrlEvents(oldEvent, part);
+
+ /*
+ if (newEvent.type() == Controller) {
+ MidiTrack* track = (MidiTrack*)part->track();
+ int ch = track->outChannel();
+ int tick = newEvent.tick() + part->tick();
+ int cntrl = newEvent.dataA();
+ int val = newEvent.dataB();
+ MidiPort* mp = &midiPorts[track->outPort()];
+ // Is it a drum controller event, according to the track port's instrument?
+ if(track->type() == Track::DRUM)
+ {
+ MidiController* mc = mp->drumController(cntrl);
+ if(mc)
+ {
+ int note = cntrl & 0x7f;
+ cntrl &= ~0xff;
+ ch = drumMap[note].channel;
+ mp = &midiPorts[drumMap[note].port];
+ cntrl |= drumMap[note].anote;
+ }
+ }
+
+ mp->setControllerVal(ch, tick, cntrl, val, part);
+ }
+ */
+ //addPortCtrlEvents(newEvent, part);
+}
+
+//---------------------------------------------------------
+// deleteEvent
+//---------------------------------------------------------
+
+void Song::deleteEvent(Event& event, Part* part)
+ {
+ /*
+ if (event.type() == Controller) {
+ MidiTrack* track = (MidiTrack*)part->track();
+ int ch = track->outChannel();
+ int tick = event.tick() + part->tick();
+ int cntrl = event.dataA();
+
+ MidiPort* mp = &midiPorts[track->outPort()];
+ // Is it a drum controller event, according to the track port's instrument?
+ if(track->type() == Track::DRUM)
+ {
+ MidiController* mc = mp->drumController(cntrl);
+ if(mc)
+ {
+ int note = cntrl & 0x7f;
+ cntrl &= ~0xff;
+ ch = drumMap[note].channel;
+ mp = &midiPorts[drumMap[note].port];
+ cntrl |= drumMap[note].anote;
+ }
+ }
+
+ mp->deleteController(ch, tick, cntrl, part);
+ }
+ */
+ //removePortCtrlEvents(event, part);
+
+ iEvent ev = part->events()->find(event);
+ if (ev == part->events()->end()) {
+ // This can be normal for some (redundant) operations.
+ if(debugMsg)
+ printf("Song::deleteEvent event not found in part:%s size:%zd\n", part->name().latin1(), part->events()->size());
+ return;
+ }
+ part->events()->erase(ev);
+ }
+
+//---------------------------------------------------------
+// remapPortDrumCtrlEvents
+// Called when drum map anote, channel, or port is changed.
+//---------------------------------------------------------
+
+void Song::remapPortDrumCtrlEvents(int mapidx, int newnote, int newchan, int newport)
+{
+ if(mapidx == -1)
+ return;
+
+ for(ciMidiTrack it = _midis.begin(); it != _midis.end(); ++it)
+ {
+ MidiTrack* mt = *it;
+ if(mt->type() != Track::DRUM)
+ continue;
+
+ MidiPort* trackmp = &midiPorts[mt->outPort()];
+ const PartList* pl = mt->cparts();
+ for(ciPart ip = pl->begin(); ip != pl->end(); ++ip)
+ {
+ MidiPart* part = (MidiPart*)(ip->second);
+ const EventList* el = part->cevents();
+ unsigned len = part->lenTick();
+ for(ciEvent ie = el->begin(); ie != el->end(); ++ie)
+ {
+ const Event& ev = ie->second;
+ // Added by T356. Do not handle events which are past the end of the part.
+ if(ev.tick() >= len)
+ break;
+
+ if(ev.type() != Controller)
+ continue;
+
+ int cntrl = ev.dataA();
+
+ // Is it a drum controller event, according to the track port's instrument?
+ MidiController* mc = trackmp->drumController(cntrl);
+ if(!mc)
+ continue;
+
+ int note = cntrl & 0x7f;
+ // Does the index match?
+ if(note == mapidx)
+ {
+ int tick = ev.tick() + part->tick();
+ int ch = drumMap[note].channel;
+ int port = drumMap[note].port;
+ MidiPort* mp = &midiPorts[port];
+ cntrl = (cntrl & ~0xff) | drumMap[note].anote;
+
+ // Remove the port controller value.
+ mp->deleteController(ch, tick, cntrl, part);
+
+ if(newnote != -1 && newnote != drumMap[note].anote)
+ cntrl = (cntrl & ~0xff) | newnote;
+ if(newchan != -1 && newchan != ch)
+ ch = newchan;
+ if(newport != -1 && newport != port)
+ port = newport;
+
+ mp = &midiPorts[port];
+
+ // Add the port controller value.
+ mp->setControllerVal(ch, tick, cntrl, ev.dataB(), part);
+ }
+ }
+ }
+ }
+}
+
+//---------------------------------------------------------
+// changeAllPortDrumCtlEvents
+// add true: add events. false: remove events
+// drumonly true: Do drum controller events ONLY. false (default): Do ALL controller events.
+//---------------------------------------------------------
+
+void Song::changeAllPortDrumCtrlEvents(bool add, bool drumonly)
+{
+ int ch, trackch, cntrl, tick;
+ MidiPort* mp, *trackmp;
+ for(ciMidiTrack it = _midis.begin(); it != _midis.end(); ++it)
+ {
+ MidiTrack* mt = *it;
+ if(mt->type() != Track::DRUM)
+ continue;
+
+ trackmp = &midiPorts[mt->outPort()];
+ trackch = mt->outChannel();
+ const PartList* pl = mt->cparts();
+ for(ciPart ip = pl->begin(); ip != pl->end(); ++ip)
+ {
+ MidiPart* part = (MidiPart*)(ip->second);
+ const EventList* el = part->cevents();
+ unsigned len = part->lenTick();
+ for(ciEvent ie = el->begin(); ie != el->end(); ++ie)
+ {
+ const Event& ev = ie->second;
+ // Added by T356. Do not handle events which are past the end of the part.
+ if(ev.tick() >= len)
+ break;
+
+ if(ev.type() != Controller)
+ continue;
+
+ cntrl = ev.dataA();
+ mp = trackmp;
+ ch = trackch;
+
+ // Is it a drum controller event, according to the track port's instrument?
+ if(trackmp->drumController(cntrl))
+ {
+ int note = cntrl & 0x7f;
+ ch = drumMap[note].channel;
+ mp = &midiPorts[drumMap[note].port];
+ cntrl = (cntrl & ~0xff) | drumMap[note].anote;
+ }
+ else
+ {
+ if(drumonly)
+ continue;
+ }
+
+ tick = ev.tick() + part->tick();
+
+ if(add)
+ // Add the port controller value.
+ mp->setControllerVal(ch, tick, cntrl, ev.dataB(), part);
+ else
+ // Remove the port controller value.
+ mp->deleteController(ch, tick, cntrl, part);
+ }
+ }
+ }
+}
+
+//---------------------------------------------------------
+// cmdAddRecordedEvents
+// add recorded Events into part
+//---------------------------------------------------------
+
+void Song::cmdAddRecordedEvents(MidiTrack* mt, EventList* events, unsigned startTick)
+ {
+ if (events->empty()) {
+ if (debugMsg)
+ printf("no events recorded\n");
+ return;
+ }
+ iEvent s;
+ iEvent e;
+ unsigned endTick;
+
+ // Changed by Tim. p3.3.8
+
+ //if (punchin())
+ if((audio->loopCount() > 0 && startTick > lPos().tick()) || (punchin() && startTick < lPos().tick()))
+ {
+ startTick = lpos();
+ s = events->lower_bound(startTick);
+ }
+ else
+ {
+ s = events->begin();
+// startTick = s->first;
+ }
+
+ // Changed by Tim. p3.3.8
+
+ //if (punchout())
+ //{
+ // endTick = rpos();
+ // e = events->lower_bound(endTick);
+ //}
+ //else
+ //{
+ // search for last noteOff:
+ endTick = 0;
+ for (iEvent i = events->begin(); i != events->end(); ++i) {
+ Event ev = i->second;
+ unsigned l = ev.endTick();
+ if (l > endTick)
+ endTick = l;
+ }
+ // e = events->end();
+ //}
+ if((audio->loopCount() > 0) || (punchout() && endTick > rPos().tick()) )
+ {
+ endTick = rpos();
+ e = events->lower_bound(endTick);
+ }
+ else
+ e = events->end();
+
+ if (startTick > endTick) {
+ if (debugMsg)
+ printf("no events in record area\n");
+ return;
+ }
+
+ //---------------------------------------------------
+ // if startTick points into a part,
+ // record to that part
+ // else
+ // create new part
+ //---------------------------------------------------
+
+ PartList* pl = mt->parts();
+ MidiPart* part = 0;
+ iPart ip;
+ for (ip = pl->begin(); ip != pl->end(); ++ip) {
+ part = (MidiPart*)(ip->second);
+ unsigned partStart = part->tick();
+ unsigned partEnd = part->endTick();
+ if (startTick >= partStart && startTick < partEnd)
+ break;
+ }
+ if (ip == pl->end()) {
+ if (debugMsg)
+ printf("create new part for recorded events\n");
+ // create new part
+ part = new MidiPart(mt);
+
+ // Changed by Tim. p3.3.8
+
+ // Honour the Arranger snap settings. (Set to bar by default).
+ //startTick = roundDownBar(startTick);
+ //endTick = roundUpBar(endTick);
+ // Round the start down using the Arranger part snap raster value.
+ startTick = sigmap.raster1(startTick, recRaster());
+ // Round the end up using the Arranger part snap raster value.
+ endTick = sigmap.raster2(endTick, recRaster());
+
+ part->setTick(startTick);
+ part->setLenTick(endTick - startTick);
+ part->setName(mt->name());
+ // copy events
+ for (iEvent i = s; i != e; ++i) {
+ Event old = i->second;
+ Event event = old.clone();
+ event.setTick(old.tick() - startTick);
+ // addEvent also adds port controller values. So does msgAddPart, below. Let msgAddPart handle them.
+ //addEvent(event, part);
+ if(part->events()->find(event) == part->events()->end())
+ part->events()->add(event);
+ }
+ audio->msgAddPart(part);
+ updateFlags |= SC_PART_INSERTED;
+ return;
+ }
+
+ updateFlags |= SC_EVENT_INSERTED;
+
+ unsigned partTick = part->tick();
+ if (endTick > part->endTick()) {
+ // Determine new part length...
+ endTick = 0;
+ for (iEvent i = s; i != e; ++i) {
+ Event event = i->second;
+ unsigned tick = event.tick() - partTick + event.lenTick();
+ if (endTick < tick)
+ endTick = tick;
+ }
+ // Added by Tim. p3.3.8
+
+ // Round the end up (again) using the Arranger part snap raster value.
+ endTick = sigmap.raster2(endTick, recRaster());
+
+ // Remove all of the part's port controller values. Indicate do not do clone parts.
+ removePortCtrlEvents(part, false);
+ // Clone the part. This doesn't increment aref count, and doesn't chain clones.
+ // It also gives the new part a new serial number, but it is
+ // overwritten with the old one by Song::changePart(), below.
+ Part* newPart = part->clone();
+ // Set the new part's length.
+ newPart->setLenTick(endTick);
+ // Change the part.
+ changePart(part, newPart);
+ // Manually adjust reference counts.
+ part->events()->incARef(-1);
+ newPart->events()->incARef(1);
+ // Replace the part in the clone chain with the new part.
+ replaceClone(part, newPart);
+ // Now add all of the new part's port controller values. Indicate do not do clone parts.
+ addPortCtrlEvents(newPart, false);
+ // Create an undo op. Indicate do port controller values but not clone parts.
+ undoOp(UndoOp::ModifyPart, part, newPart, true, false);
+ updateFlags |= SC_PART_MODIFIED;
+
+ if (_recMode == REC_REPLACE)
+ {
+ iEvent si = newPart->events()->lower_bound(startTick - newPart->tick());
+ iEvent ei = newPart->events()->lower_bound(newPart->endTick() - newPart->tick());
+ for (iEvent i = si; i != ei; ++i)
+ {
+ Event event = i->second;
+ // Create an undo op. Indicate do port controller values and clone parts.
+ undoOp(UndoOp::DeleteEvent, event, newPart, true, true);
+ // Remove the event from the new part's port controller values, and do all clone parts.
+ removePortCtrlEvents(event, newPart, true);
+ }
+ newPart->events()->erase(si, ei);
+ }
+
+ for (iEvent i = s; i != e; ++i) {
+ Event event = i->second;
+ event.setTick(event.tick() - partTick);
+ Event e;
+ // Create an undo op. Indicate do port controller values and clone parts.
+ undoOp(UndoOp::AddEvent, e, event, newPart, true, true);
+
+ if(newPart->events()->find(event) == newPart->events()->end())
+ newPart->events()->add(event);
+
+ // Add the event to the new part's port controller values, and do all clone parts.
+ addPortCtrlEvents(event, newPart, true);
+ }
+
+
+ /*
+ if (_recMode == REC_REPLACE)
+ {
+ iEvent si = part->events()->lower_bound(startTick - part->tick());
+ iEvent ei = part->events()->lower_bound(part->endTick() - part->tick());
+
+ for (iEvent i = si; i != ei; ++i)
+ {
+ Event event = i->second;
+ // Create an undo op. Indicate do port controller values and clone parts.
+ //undoOp(UndoOp::DeleteEvent, event, part);
+ undoOp(UndoOp::DeleteEvent, event, part, true, true);
+
+ //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, part);
+ // }
+
+ // Remove the event from the part's port controller values, and do all clone parts.
+ //removePortCtrlEvents(event, part, true);
+ }
+ part->events()->erase(si, ei);
+ }
+
+ // Remove all of the part's port controller values, and do all clone parts.
+ removePortCtrlEvents(part, true);
+
+ // Clone the part. This doesn't increment aref count, and doesn't chain clones.
+ // It also gives the new part a new serial number, but it is
+ // overwritten with the old one by Song::changePart(), below.
+ Part* newPart = part->clone();
+
+ endTick = 0;
+ for (iEvent i = s; i != e; ++i) {
+ Event event = i->second;
+ unsigned tick = event.tick() - partTick;
+ event.setTick(tick);
+ Event e;
+ // Create an undo op. Indicate do port controller values and clone parts.
+ //undoOp(UndoOp::AddEvent, e, event, newPart);
+ undoOp(UndoOp::AddEvent, e, event, newPart, true, true);
+
+ // addEvent also adds port controller values. So does msgChangePart, below. Let msgChangePart handle them.
+ //addEvent(event, (MidiPart*)newPart);
+ if(newPart->events()->find(event) == newPart->events()->end())
+ newPart->events()->add(event);
+
+ if (endTick < event.tick() + event.lenTick())
+ endTick = event.tick() + event.lenTick();
+ }
+ newPart->setLenTick(endTick); // endTick - part->tick()
+
+ //printf("Song::cmdAddRecordedEvents before changePart part:%p events:%p refs:%d Arefs:%d newPart:%p events:%p refs:%d Arefs:%d\n", part, part->events(), part->events()->refCount(), part->events()->arefCount(), newPart, newPart->events(), newPart->events()->refCount(), newPart->events()->arefCount());
+
+ // Change the part.
+ changePart(part, newPart);
+ // Manually adjust reference counts.
+ part->events()->incARef(-1);
+ newPart->events()->incARef(1);
+ // Replace the part in the clone chain with the new part.
+ replaceClone(part, newPart);
+ // Now add all of the new part's port controller values, and do all clone parts.
+ addPortCtrlEvents(newPart, true);
+
+ //printf("Song::cmdAddRecordedEvents after changePart part:%p events:%p refs:%d Arefs:%d newPart:%p events:%p refs:%d Arefs:%d\n", part, part->events(), part->events()->refCount(), part->events()->arefCount(), newPart, newPart->events(), newPart->events()->refCount(), newPart->events()->arefCount());
+
+ //undoOp(UndoOp::ModifyPart, part, newPart);
+ // Create an undo op. Indicate do not do port controller values and clone parts.
+ undoOp(UndoOp::ModifyPart, part, newPart, false, false);
+
+ // Removed by T356.
+ //part->events()->incARef(-1);
+
+ updateFlags |= SC_PART_MODIFIED;
+ //printf("Song::cmdAddRecordedEvents final part:%p events:%p refs:%d Arefs:%d newPart:%p events:%p refs:%d Arefs:%d\n", part, part->events(), part->events()->refCount(), part->events()->arefCount(), newPart, newPart->events(), newPart->events()->refCount(), newPart->events()->arefCount());
+ */
+
+ }
+ else {
+ if (_recMode == REC_REPLACE) {
+ iEvent si = part->events()->lower_bound(startTick - part->tick());
+ iEvent ei = part->events()->lower_bound(endTick - part->tick());
+
+ for (iEvent i = si; i != ei; ++i) {
+ Event event = i->second;
+ // Create an undo op. Indicate that controller values and clone parts were handled.
+ //undoOp(UndoOp::DeleteEvent, event, part);
+ undoOp(UndoOp::DeleteEvent, event, part, true, true);
+ /*
+ 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, part);
+ }
+ */
+ // Remove the event from the part's port controller values, and do all clone parts.
+ removePortCtrlEvents(event, part, true);
+ }
+ part->events()->erase(si, ei);
+ }
+ for (iEvent i = s; i != e; ++i) {
+ Event event = i->second;
+ int tick = event.tick() - partTick;
+ event.setTick(tick);
+
+ // Create an undo op. Indicate that controller values and clone parts were handled.
+ //undoOp(UndoOp::AddEvent, event, part);
+ undoOp(UndoOp::AddEvent, event, part, true, true);
+
+ //addEvent(event, part);
+ if(part->events()->find(event) == part->events()->end())
+ part->events()->add(event);
+
+ // Add the event to the part's port controller values, and do all clone parts.
+ addPortCtrlEvents(event, part, true);
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// findTrack
+//---------------------------------------------------------
+
+MidiTrack* Song::findTrack(const Part* part) const
+ {
+ for (ciTrack t = _tracks.begin(); t != _tracks.end(); ++t) {
+ MidiTrack* track = dynamic_cast<MidiTrack*>(*t);
+ if (track == 0)
+ continue;
+ PartList* pl = track->parts();
+ for (iPart p = pl->begin(); p != pl->end(); ++p) {
+ if (part == p->second)
+ return track;
+ }
+ }
+ return 0;
+ }
+
+//---------------------------------------------------------
+// findTrack
+// find track by name
+//---------------------------------------------------------
+
+Track* Song::findTrack(const QString& name) const
+ {
+ for (ciTrack i = _tracks.begin(); i != _tracks.end(); ++i) {
+ if ((*i)->name() == name)
+ return *i;
+ }
+ return 0;
+ }
+
+//---------------------------------------------------------
+// setLoop
+// set transport loop flag
+//---------------------------------------------------------
+
+void Song::setLoop(bool f)
+ {
+ if (loopFlag != f) {
+ loopFlag = f;
+ loopAction->setOn(loopFlag);
+ emit loopChanged(loopFlag);
+ }
+ }
+
+//---------------------------------------------------------
+// clearTrackRec
+//---------------------------------------------------------
+void Song::clearTrackRec()
+{
+ for (iTrack it = tracks()->begin(); it != tracks()->end(); ++it)
+ setRecordFlag(*it,false);
+}
+
+//---------------------------------------------------------
+// setRecord
+//---------------------------------------------------------
+void Song::setRecord(bool f, bool autoRecEnable)
+ {
+ if (recordFlag != f) {
+ if (f && autoRecEnable) {
+ 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) {
+ setRecordFlag(selectedTrack, true);
+ }
+ else if (alreadyRecEnabled) {
+ // do nothing
+ }
+ else {
+ // if there are no tracks, do not enable record
+ if (!waves()->size() && !midis()->size()) {
+ printf("No track to select, won't enable record\n");
+ f = false;
+ }
+ }
+#if 0
+ // check for midi devices suitable for recording
+ bool portFound = false;
+ for (int i = 0; i < MIDI_PORTS; ++i) {
+ MidiDevice* dev = midiPorts[i].device();
+ if (dev && (dev->rwFlags() & 0x2))
+ portFound = true;
+ }
+ if (!portFound) {
+ QMessageBox::critical(qApp->mainWidget(), "MusE: Record",
+ "There are no midi devices configured for recording");
+ f = false;
+ }
+#endif
+ }
+ else {
+ bounceTrack = 0;
+ }
+ if (audio->isPlaying() && f)
+ f = false;
+ recordFlag = f;
+ recordAction->setOn(recordFlag);
+ emit recordChanged(recordFlag);
+ }
+ }
+
+//---------------------------------------------------------
+// setPunchin
+// set punchin flag
+//---------------------------------------------------------
+
+void Song::setPunchin(bool f)
+ {
+ if (punchinFlag != f) {
+ punchinFlag = f;
+ punchinAction->setOn(punchinFlag);
+ emit punchinChanged(punchinFlag);
+ }
+ }
+
+//---------------------------------------------------------
+// setPunchout
+// set punchout flag
+//---------------------------------------------------------
+
+void Song::setPunchout(bool f)
+ {
+ if (punchoutFlag != f) {
+ punchoutFlag = f;
+ punchoutAction->setOn(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 (tempomap.setMasterFlag(cpos(), val))
+ {
+ //audioDevice->setMaster(val);
+ emit songChanged(SC_MASTER);
+ }
+ // Removed. p3.3.26
+ //audioDevice->setMaster(val);
+ }
+
+//---------------------------------------------------------
+// setPlay
+// set transport play flag
+//---------------------------------------------------------
+
+void Song::setPlay(bool f)
+ {
+ if (extSyncFlag.value()) {
+ if (debugMsg)
+ printf("not allowed while using external sync");
+ return;
+ }
+ // only allow the user to set the button "on"
+ if (!f)
+ playAction->setOn(true);
+ else
+ audio->msgPlay(true);
+ }
+
+void Song::setStop(bool f)
+ {
+ if (extSyncFlag.value()) {
+ if (debugMsg)
+ printf("not allowed while using external sync");
+ return;
+ }
+ // only allow the user to set the button "on"
+ if (!f)
+ stopAction->setOn(true);
+ else
+ audio->msgPlay(false);
+ }
+
+void Song::setStopPlay(bool f)
+ {
+ playAction->blockSignals(true);
+ stopAction->blockSignals(true);
+
+ emit playChanged(f); // signal transport window
+
+ playAction->setOn(f);
+ stopAction->setOn(!f);
+
+ stopAction->blockSignals(false);
+ playAction->blockSignals(false);
+ }
+
+//---------------------------------------------------------
+// swapTracks
+//---------------------------------------------------------
+
+void Song::swapTracks(int i1, int i2)
+ {
+ undoOp(UndoOp::SwapTrack, i1, i2);
+ Track* track = _tracks[i1];
+ _tracks[i1] = _tracks[i2];
+ _tracks[i2] = track;
+ }
+
+//---------------------------------------------------------
+// setPos
+// song->setPos(Song::CPOS, pos, true, true, true);
+//---------------------------------------------------------
+
+void Song::setPos(int idx, const Pos& val, bool sig,
+ bool isSeek, bool adjustScrollbar)
+ {
+// printf("setPos %d sig=%d,seek=%d,scroll=%d ",
+// idx, sig, isSeek, adjustScrollbar);
+// val.dump(0);
+// printf("\n");
+
+ // p3.3.23
+ //printf("Song::setPos before audio->msgSeek idx:%d isSeek:%d frame:%d\n", idx, isSeek, val.frame());
+ if (pos[idx] == val)
+ return;
+ if (idx == CPOS) {
+ _vcpos = val;
+ if (isSeek && !extSyncFlag.value()) {
+ audio->msgSeek(val);
+ // p3.3.23
+ //printf("Song::setPos after audio->msgSeek idx:%d isSeek:%d frame:%d\n", idx, isSeek, val.frame());
+ 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].tick(), adjustScrollbar);
+ emit posChanged(RPOS, pos[RPOS].tick(), adjustScrollbar);
+ if (idx != LPOS && idx != RPOS)
+ emit posChanged(idx, pos[idx].tick(), adjustScrollbar);
+ }
+ else
+ emit posChanged(idx, pos[idx].tick(), adjustScrollbar);
+ }
+
+ if (idx == CPOS) {
+ iMarker i1 = _markerList->begin();
+ iMarker i2 = i1;
+ bool currentChanged = false;
+ 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
+//---------------------------------------------------------
+
+void Song::forward()
+ {
+ unsigned newPos = pos[0].tick() + config.division;
+ audio->msgSeek(Pos(newPos, true));
+ }
+
+//---------------------------------------------------------
+// rewind
+//---------------------------------------------------------
+
+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, true));
+ }
+
+//---------------------------------------------------------
+// rewindStart
+//---------------------------------------------------------
+
+void Song::rewindStart()
+ {
+ // Added by T356
+ //audio->msgIdle(true);
+
+ audio->msgSeek(Pos(0, true));
+
+ // Added by T356
+ //audio->msgIdle(false);
+ }
+
+//---------------------------------------------------------
+// update
+//---------------------------------------------------------
+
+void Song::update(int flags)
+ {
+ static int level = 0; // DEBUG
+ if (level) {
+ printf("Song::update %08x, level %d\n", flags, level);
+ return;
+ }
+ ++level;
+ emit songChanged(flags);
+ --level;
+ }
+
+//---------------------------------------------------------
+// updatePos
+//---------------------------------------------------------
+
+void Song::updatePos()
+ {
+ emit posChanged(0, pos[0].tick(), false);
+ emit posChanged(1, pos[1].tick(), false);
+ emit posChanged(2, pos[2].tick(), false);
+ }
+
+//---------------------------------------------------------
+// setChannelMute
+// mute all midi tracks associated with channel
+//---------------------------------------------------------
+
+void Song::setChannelMute(int channel, bool val)
+ {
+ for (iTrack i = _tracks.begin(); i != _tracks.end(); ++i) {
+ MidiTrack* track = dynamic_cast<MidiTrack*>(*i);
+ if (track == 0)
+ continue;
+ if (track->outChannel() == channel)
+ track->setMute(val);
+ }
+ emit songChanged(SC_MUTE);
+ }
+
+//---------------------------------------------------------
+// len
+//---------------------------------------------------------
+
+void Song::initLen()
+ {
+ _len = sigmap.bar2tick(40, 0, 0); // default song len
+ for (iTrack t = _tracks.begin(); t != _tracks.end(); ++t) {
+ MidiTrack* track = dynamic_cast<MidiTrack*>(*t);
+ if (track == 0)
+ continue;
+ PartList* parts = track->parts();
+ for (iPart p = parts->begin(); p != parts->end(); ++p) {
+ unsigned last = p->second->tick() + p->second->lenTick();
+ if (last > _len)
+ _len = last;
+ }
+ }
+ _len = roundUpBar(_len);
+ }
+
+//---------------------------------------------------------
+// tempoChanged
+//---------------------------------------------------------
+
+void Song::tempoChanged()
+{
+ emit songChanged(SC_TEMPO);
+}
+
+//---------------------------------------------------------
+// roundUpBar
+//---------------------------------------------------------
+
+int Song::roundUpBar(int t) const
+ {
+ int bar, beat;
+ unsigned tick;
+ sigmap.tickValues(t, &bar, &beat, &tick);
+ if (beat || tick)
+ return sigmap.bar2tick(bar+1, 0, 0);
+ return t;
+ }
+
+//---------------------------------------------------------
+// roundUpBeat
+//---------------------------------------------------------
+
+int Song::roundUpBeat(int t) const
+ {
+ int bar, beat;
+ unsigned tick;
+ sigmap.tickValues(t, &bar, &beat, &tick);
+ if (tick)
+ return sigmap.bar2tick(bar, beat+1, 0);
+ return t;
+ }
+
+//---------------------------------------------------------
+// roundDownBar
+//---------------------------------------------------------
+
+int Song::roundDownBar(int t) const
+ {
+ int bar, beat;
+ unsigned tick;
+ sigmap.tickValues(t, &bar, &beat, &tick);
+ return sigmap.bar2tick(bar, 0, 0);
+ }
+
+//---------------------------------------------------------
+// dumpMaster
+//---------------------------------------------------------
+
+void Song::dumpMaster()
+ {
+ tempomap.dump();
+ 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'
+ //
+ // Rough translation:
+ /*
+ If a part is selected, edit that.
+ If a track is selected, edit the first
+ part of the track, the rest are
+ 'ghost parts'
+ When multiple parts are selected, then edit the first,
+ the rest are 'ghost parts'
+ */
+
+
+ // 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 (ciTrack t = _tracks.begin(); t != _tracks.end(); ++t) {
+ if ((*t)->selected()) {
+ MidiTrack* track = dynamic_cast<MidiTrack*>(*t);
+ if (track == 0)
+ continue;
+ 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 (ciTrack t = _tracks.begin(); t != _tracks.end(); ++t) {
+ WaveTrack* track = dynamic_cast<WaveTrack*>(*t);
+ if (track == 0)
+ continue;
+ 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 (ciTrack t = _tracks.begin(); t != _tracks.end(); ++t) {
+ if ((*t)->selected()) {
+ WaveTrack* track = dynamic_cast<WaveTrack*>(*t);
+ if (track == 0)
+ continue;
+ PartList* pl = track->parts();
+ for (iPart p = pl->begin(); p != pl->end(); ++p)
+ parts->add(p->second);
+ break;
+ }
+ }
+ }
+ return parts;
+ }
+
+void Song::setMType(MType t)
+ {
+// printf("set MType %d\n", t);
+ _mtype = t;
+ }
+
+//---------------------------------------------------------
+// beat
+//---------------------------------------------------------
+
+void Song::beat()
+ {
+ // Keep the sync detectors running...
+ for(int port = 0; port < MIDI_PORTS; ++port)
+ {
+ // Must keep them running even if there's no device...
+ //if(midiPorts[port].device())
+ midiPorts[port].syncInfo().setTime();
+ }
+
+
+ int tick = audio->tickPos();
+ if (audio->isPlaying())
+ setPos(0, tick, true, false, true);
+
+ // p3.3.40 Update synth native guis at the heartbeat rate.
+ for(ciSynthI is = _synthIs.begin(); is != _synthIs.end(); ++is)
+ (*is)->guiHeartBeat();
+
+ while (noteFifoSize) {
+ int pv = recNoteFifo[noteFifoRindex];
+ noteFifoRindex = (noteFifoRindex + 1) % REC_NOTE_FIFO_SIZE;
+ int pitch = (pv >> 8) & 0xff;
+ int velo = pv & 0xff;
+
+ //---------------------------------------------------
+ // filter midi remote control events
+ //---------------------------------------------------
+
+ if (rcEnable && velo != 0) {
+ if (pitch == rcStopNote)
+ setStop(true);
+ else if (pitch == rcRecordNote)
+ setRecord(true);
+ else if (pitch == rcGotoLeftMarkNote)
+ setPos(0, pos[LPOS].tick(), true, true, true);
+ else if (pitch == rcPlayNote)
+ setPlay(true);
+ }
+ emit song->midiNote(pitch, velo);
+ --noteFifoSize;
+ }
+ }
+
+//---------------------------------------------------------
+// setLen
+//---------------------------------------------------------
+
+void Song::setLen(unsigned l)
+ {
+ _len = l;
+ update();
+ }
+
+//---------------------------------------------------------
+// addMarker
+//---------------------------------------------------------
+
+Marker* Song::addMarker(const QString& s, int t, bool lck)
+ {
+ Marker* marker = _markerList->add(s, t, lck);
+ emit markerChanged(MARKER_ADD);
+ return marker;
+ }
+
+//---------------------------------------------------------
+// addMarker
+//---------------------------------------------------------
+
+Marker* Song::getMarkerAt(int t)
+ {
+ iMarker markerI;
+ for (markerI=_markerList->begin(); markerI != _markerList->end(); ++markerI) {
+// if (i1->second.current())
+ if (unsigned(t) == markerI->second.tick())//prevent of copmiler warning: comparison signed/unsigned
+ return &markerI->second;
+ }
+ //Marker* marker = _markerList->add(s, t, lck);
+ return NULL;
+ }
+
+//---------------------------------------------------------
+// removeMarker
+//---------------------------------------------------------
+
+void Song::removeMarker(Marker* marker)
+ {
+ _markerList->remove(marker);
+ emit markerChanged(MARKER_REMOVE);
+ }
+
+Marker* Song::setMarkerName(Marker* m, const QString& s)
+ {
+ m->setName(s);
+ emit markerChanged(MARKER_NAME);
+ return m;
+ }
+
+Marker* Song::setMarkerTick(Marker* m, int t)
+ {
+ Marker mm(*m);
+ _markerList->remove(m);
+ mm.setTick(t);
+ m = _markerList->add(mm);
+ emit markerChanged(MARKER_TICK);
+ return m;
+ }
+
+Marker* Song::setMarkerLock(Marker* m, bool f)
+ {
+ m->setType(f ? Pos::FRAMES : Pos::TICKS);
+ emit markerChanged(MARKER_LOCK);
+ return m;
+ }
+
+//---------------------------------------------------------
+// setRecordFlag
+//---------------------------------------------------------
+
+void Song::setRecordFlag(Track* track, bool val)
+ {
+ if (track->type() == Track::WAVE) {
+ WaveTrack* audioTrack = (WaveTrack*)track;
+ if(!audioTrack->setRecordFlag1(val))
+ return;
+ audio->msgSetRecord(audioTrack, val);
+ }
+ else {
+ track->setRecordFlag1(val);
+ track->setRecordFlag2(val);
+ }
+// updateFlags |= SC_RECFLAG;
+ update(SC_RECFLAG);
+ }
+
+//---------------------------------------------------------
+// rescanAlsaPorts
+//---------------------------------------------------------
+
+void Song::rescanAlsaPorts()
+ {
+ emit midiPortsChanged();
+ }
+
+//---------------------------------------------------------
+// endMsgCmd
+//---------------------------------------------------------
+
+void Song::endMsgCmd()
+ {
+ if (updateFlags) {
+ redoList->clear(); // TODO: delete elements in list
+ undoAction->setEnabled(true);
+ redoAction->setEnabled(false);
+ emit songChanged(updateFlags);
+ }
+ }
+
+//---------------------------------------------------------
+// undo
+//---------------------------------------------------------
+
+void Song::undo()
+ {
+ updateFlags = 0;
+ if (doUndo1())
+ return;
+ audio->msgUndo();
+ doUndo3();
+ redoAction->setEnabled(true);
+ undoAction->setEnabled(!undoList->empty());
+
+ if(updateFlags && (SC_TRACK_REMOVED | SC_TRACK_INSERTED))
+ audio->msgUpdateSoloStates();
+
+ emit songChanged(updateFlags);
+ }
+
+//---------------------------------------------------------
+// redo
+//---------------------------------------------------------
+
+void Song::redo()
+ {
+ updateFlags = 0;
+ if (doRedo1())
+ return;
+ audio->msgRedo();
+ doRedo3();
+ undoAction->setEnabled(true);
+ redoAction->setEnabled(!redoList->empty());
+
+ if(updateFlags && (SC_TRACK_REMOVED | SC_TRACK_INSERTED))
+ audio->msgUpdateSoloStates();
+
+ emit songChanged(updateFlags);
+ }
+
+//---------------------------------------------------------
+// processMsg
+// executed in realtime thread context
+//---------------------------------------------------------
+
+void Song::processMsg(AudioMsg* msg)
+ {
+ switch(msg->id) {
+ case SEQM_UPDATE_SOLO_STATES:
+ updateSoloStates();
+ break;
+ case SEQM_UNDO:
+ doUndo2();
+ break;
+ case SEQM_REDO:
+ doRedo2();
+ break;
+ case SEQM_MOVE_TRACK:
+ if (msg->a > msg->b) {
+ for (int i = msg->a; i > msg->b; --i) {
+ swapTracks(i, i-1);
+ }
+ }
+ else {
+ for (int i = msg->a; i < msg->b; ++i) {
+ swapTracks(i, i+1);
+ }
+ }
+ updateFlags = SC_TRACK_MODIFIED;
+ break;
+ case SEQM_ADD_EVENT:
+ updateFlags = SC_EVENT_INSERTED;
+ if (addEvent(msg->ev1, (MidiPart*)msg->p2)) {
+ Event ev;
+ //undoOp(UndoOp::AddEvent, ev, msg->ev1, (Part*)msg->p2);
+ undoOp(UndoOp::AddEvent, ev, msg->ev1, (Part*)msg->p2, msg->a, msg->b);
+ }
+ else
+ updateFlags = 0;
+ if(msg->a)
+ addPortCtrlEvents(msg->ev1, (Part*)msg->p2, msg->b);
+ break;
+ case SEQM_REMOVE_EVENT:
+ {
+ Event event = msg->ev1;
+ MidiPart* part = (MidiPart*)msg->p2;
+ if(msg->a)
+ removePortCtrlEvents(event, part, msg->b);
+ Event e;
+ //undoOp(UndoOp::DeleteEvent, e, event, (Part*)part);
+ undoOp(UndoOp::DeleteEvent, e, event, (Part*)part, msg->a, msg->b);
+ deleteEvent(event, part);
+ updateFlags = SC_EVENT_REMOVED;
+ }
+ break;
+ case SEQM_CHANGE_EVENT:
+ if(msg->a)
+ removePortCtrlEvents(msg->ev1, (MidiPart*)msg->p3, msg->b);
+ changeEvent(msg->ev1, msg->ev2, (MidiPart*)msg->p3);
+ if(msg->a)
+ addPortCtrlEvents(msg->ev2, (Part*)msg->p3, msg->b);
+ //undoOp(UndoOp::ModifyEvent, msg->ev2, msg->ev1, (Part*)msg->p3);
+ undoOp(UndoOp::ModifyEvent, msg->ev2, msg->ev1, (Part*)msg->p3, msg->a, msg->b);
+ updateFlags = SC_EVENT_MODIFIED;
+ break;
+
+ case SEQM_ADD_TEMPO:
+ //printf("processMsg (SEQM_ADD_TEMPO) UndoOp::AddTempo. adding tempo at: %d with tempo=%d\n", msg->a, msg->b);
+ undoOp(UndoOp::AddTempo, msg->a, msg->b);
+ tempomap.addTempo(msg->a, msg->b);
+ updateFlags = SC_TEMPO;
+ break;
+
+ case SEQM_SET_TEMPO:
+ //printf("processMsg (SEQM_SET_TEMPO) UndoOp::AddTempo. adding tempo at: %d with tempo=%d\n", msg->a, msg->b);
+ undoOp(UndoOp::AddTempo, msg->a, msg->b);
+ tempomap.setTempo(msg->a, msg->b);
+ updateFlags = SC_TEMPO;
+ break;
+
+ case SEQM_SET_GLOBAL_TEMPO:
+ tempomap.setGlobalTempo(msg->a);
+ break;
+
+ case SEQM_REMOVE_TEMPO:
+ //printf("processMsg (SEQM_REMOVE_TEMPO) UndoOp::DeleteTempo. adding tempo at: %d with tempo=%d\n", msg->a, msg->b);
+ undoOp(UndoOp::DeleteTempo, msg->a, msg->b);
+ tempomap.delTempo(msg->a);
+ updateFlags = SC_TEMPO;
+ break;
+
+ case SEQM_ADD_SIG:
+ undoOp(UndoOp::AddSig, msg->a, msg->b, msg->c);
+ sigmap.add(msg->a, msg->b, msg->c);
+ updateFlags = SC_SIG;
+ break;
+
+ case SEQM_REMOVE_SIG:
+ undoOp(UndoOp::DeleteSig, msg->a, msg->b, msg->c);
+ sigmap.del(msg->a);
+ updateFlags = SC_SIG;
+ break;
+
+ default:
+ printf("unknown seq message %d\n", msg->id);
+ break;
+ }
+ }
+
+//---------------------------------------------------------
+// cmdAddPart
+//---------------------------------------------------------
+
+void Song::cmdAddPart(Part* part)
+ {
+ addPart(part);
+ undoOp(UndoOp::AddPart, part);
+ updateFlags = SC_PART_INSERTED;
+ }
+
+//---------------------------------------------------------
+// cmdRemovePart
+//---------------------------------------------------------
+
+void Song::cmdRemovePart(Part* part)
+ {
+ removePart(part);
+ undoOp(UndoOp::DeletePart, part);
+ part->events()->incARef(-1);
+ //part->unchainClone();
+ unchainClone(part);
+ updateFlags = SC_PART_REMOVED;
+ }
+
+//---------------------------------------------------------
+// cmdChangePart
+//---------------------------------------------------------
+
+//void Song::cmdChangePart(Part* oldPart, Part* newPart)
+void Song::cmdChangePart(Part* oldPart, Part* newPart, bool doCtrls, bool doClones)
+ {
+ //printf("Song::cmdChangePart before changePart oldPart:%p events:%p refs:%d Arefs:%d sn:%d newPart:%p events:%p refs:%d Arefs:%d sn:%d\n", oldPart, oldPart->events(), oldPart->events()->refCount(), oldPart->events()->arefCount(), oldPart->sn(), newPart, newPart->events(), newPart->events()->refCount(), newPart->events()->arefCount(), newPart->sn());
+
+ if(doCtrls)
+ removePortCtrlEvents(oldPart, doClones);
+
+ changePart(oldPart, newPart);
+
+ //undoOp(UndoOp::ModifyPart, oldPart, newPart);
+ undoOp(UndoOp::ModifyPart, oldPart, newPart, doCtrls, doClones);
+
+ // Changed by T356. Do not decrement ref count if the new part is a clone of the old part, since the event list
+ // will still be active.
+ if(oldPart->cevents() != newPart->cevents())
+ oldPart->events()->incARef(-1);
+
+ //oldPart->replaceClone(newPart);
+
+ //printf("Song::cmdChangePart before repl/unchClone oldPart:%p events:%p refs:%d Arefs:%d sn:%d newPart:%p events:%p refs:%d Arefs:%d sn:%d\n", oldPart, oldPart->events(), oldPart->events()->refCount(), oldPart->events()->arefCount(), oldPart->sn(), newPart, newPart->events(), newPart->events()->refCount(), newPart->events()->arefCount(), newPart->sn());
+
+ replaceClone(oldPart, newPart);
+
+ if(doCtrls)
+ addPortCtrlEvents(newPart, doClones);
+
+ //printf("Song::cmdChangePart after repl/unchClone oldPart:%p events:%p refs:%d Arefs:%d sn:%d newPart:%p events:%p refs:%d Arefs:%d sn:%d\n", oldPart, oldPart->events(), oldPart->events()->refCount(), oldPart->events()->arefCount(), oldPart->sn(), newPart, newPart->events(), newPart->events()->refCount(), newPart->events()->arefCount(), newPart->sn());
+
+ updateFlags = SC_PART_MODIFIED;
+ }
+
+//---------------------------------------------------------
+// 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)
+ {
+ if(debugMsg)
+ printf("Song::clear\n");
+
+ bounceTrack = 0;
+
+ _tracks.clear();
+ _midis.clearDelete();
+ _waves.clearDelete();
+ _inputs.clearDelete(); // audio input ports
+ _outputs.clearDelete(); // audio output ports
+ _groups.clearDelete(); // mixer groups
+ _auxs.clearDelete(); // aux sends
+
+ // p3.3.45 Clear all midi port devices.
+ for(int i = 0; i < MIDI_PORTS; ++i)
+ {
+ // p3.3.50 Since midi ports are not deleted, clear all midi port in/out routes. They point to non-existant tracks now.
+ midiPorts[i].inRoutes()->clear();
+ midiPorts[i].outRoutes()->clear();
+
+ // p3.3.50 Reset this.
+ midiPorts[i].setFoundInSongFile(false);
+
+ // This will also close the device.
+ midiPorts[i].setMidiDevice(0);
+ }
+
+ _synthIs.clearDelete();
+
+ // p3.3.45 Make sure to delete Jack midi devices, and remove all ALSA midi device routes...
+ // Otherwise really nasty things happen when loading another song when one is already loaded.
+ // The loop is a safe way to delete while iterating.
+ bool loop;
+ do
+ {
+ loop = false;
+ for(iMidiDevice imd = midiDevices.begin(); imd != midiDevices.end(); ++imd)
+ {
+ //if((*imd)->deviceType() == MidiDevice::JACK_MIDI)
+ if(dynamic_cast< MidiJackDevice* >(*imd))
+ {
+ // Remove the device from the list.
+ midiDevices.erase(imd);
+ // Since Jack midi devices are created dynamically, we must delete them.
+ // The destructor unregisters the device from Jack, which also disconnects all device-to-jack routes.
+ // This will also delete all midi-track-to-device routes, they point to non-existant midi tracks
+ // which were all deleted above
+ delete (*imd);
+ loop = true;
+ break;
+ }
+ else
+ //if((*imd)->deviceType() == MidiDevice::ALSA_MIDI)
+ if(dynamic_cast< MidiAlsaDevice* >(*imd))
+ {
+ // With alsa devices, we must not delete them (they're always in the list). But we must
+ // clear all routes. They point to non-existant midi tracks, which were all deleted above.
+ (*imd)->inRoutes()->clear();
+ (*imd)->outRoutes()->clear();
+ }
+ }
+ }
+ while (loop);
+
+ tempomap.clear();
+ sigmap.clear();
+ undoList->clearDelete();
+ redoList->clear();
+ _markerList->clear();
+ pos[0].setTick(0);
+ pos[1].setTick(0);
+ pos[2].setTick(0);
+ _vcpos.setTick(0);
+
+ Track::clearSoloRefCounts();
+ clearMidiTransforms();
+ clearMidiInputTransforms();
+
+ // Clear all midi port controller values.
+ for(int i = 0; i < MIDI_PORTS; ++i)
+ // Don't remove the controllers, just the values.
+ midiPorts[i].controller()->clearDelete(false);
+
+ _masterFlag = true;
+ loopFlag = false;
+ loopFlag = false;
+ punchinFlag = false;
+ punchoutFlag = false;
+ recordFlag = false;
+ soloFlag = false;
+ // seq
+ _mtype = MT_UNKNOWN;
+ _recMode = REC_OVERDUP;
+ _cycleMode = CYCLE_NORMAL;
+ _click = false;
+ _quantize = false;
+ _len = 0; // song len in ticks
+ _follow = JUMP;
+ // _tempo = 500000; // default tempo 120
+ dirty = false;
+ initDrumMap();
+ if (signal) {
+ emit loopChanged(false);
+ recordChanged(false);
+ }
+ }
+
+//---------------------------------------------------------
+// cleanupForQuit
+// called from Muse::closeEvent
+//---------------------------------------------------------
+
+void Song::cleanupForQuit()
+{
+ bounceTrack = 0;
+
+ if(debugMsg)
+ printf("MusE: Song::cleanupForQuit...\n");
+
+ _tracks.clear();
+
+ if(debugMsg)
+ printf("deleting _midis\n");
+ _midis.clearDelete();
+
+ if(debugMsg)
+ printf("deleting _waves\n");
+ _waves.clearDelete();
+
+ if(debugMsg)
+ printf("deleting _inputs\n");
+ _inputs.clearDelete(); // audio input ports
+
+ if(debugMsg)
+ printf("deleting _outputs\n");
+ _outputs.clearDelete(); // audio output ports
+
+ if(debugMsg)
+ printf("deleting _groups\n");
+ _groups.clearDelete(); // mixer groups
+
+ if(debugMsg)
+ printf("deleting _auxs\n");
+ _auxs.clearDelete(); // aux sends
+
+ if(debugMsg)
+ printf("deleting _synthIs\n");
+ _synthIs.clearDelete(); // each ~SynthI() -> deactivate3() -> ~SynthIF()
+
+ tempomap.clear();
+ sigmap.clear();
+
+ if(debugMsg)
+ printf("deleting undoList, clearing redoList\n");
+ undoList->clearDelete();
+ redoList->clear(); // Check this - Should we do a clearDelete? IIRC it was OK this way - no clearDelete in case of same items in both lists.
+
+ _markerList->clear();
+
+ if(debugMsg)
+ printf("deleting transforms\n");
+ clearMidiTransforms(); // Deletes stuff.
+ clearMidiInputTransforms(); // Deletes stuff.
+
+ if(debugMsg)
+ printf("deleting midiport controllers\n");
+ // Clear all midi port controllers and values.
+ for(int i = 0; i < MIDI_PORTS; ++i)
+ // Remove the controllers and the values.
+ midiPorts[i].controller()->clearDelete(true);
+
+ // Can't do this here. Jack isn't running.
+ /*
+ if(debugMsg)
+ printf("deleting midi devices\n");
+ for(iMidiDevice imd = midiDevices.begin(); imd != midiDevices.end(); ++imd)
+ {
+ // Since Syntis are midi devices, there's no need to delete them below.
+ if((*imd)->isSynti())
+ continue;
+ delete (*imd);
+ }
+ midiDevices.clear(); // midi devices
+ */
+
+ if(debugMsg)
+ printf("deleting synths\n");
+ // Delete all synths.
+ std::vector<Synth*>::iterator is;
+ for(is = synthis.begin(); is != synthis.end(); ++is)
+ {
+ Synth* s = *is;
+
+ if(s)
+ delete s;
+ }
+ synthis.clear();
+
+ // Nothing required for ladspa plugin list, and rack instances of them
+ // are handled by ~AudioTrack.
+
+ if(debugMsg)
+ printf("...finished cleaning up.\n");
+}
+
+//---------------------------------------------------------
+// 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;
+ }
+ for (int i = 0; i < n; ++i) {
+// printf("seqSignal to gui:<%c>\n", buffer[i]);
+ switch(buffer[i]) {
+ case '0': // STOP
+ stopRolling();
+ break;
+ case '1': // PLAY
+ setStopPlay(true);
+ break;
+ case '2': // record
+ setRecord(true);
+ break;
+ case '3': // START_PLAY + jack STOP
+ abortRolling();
+ break;
+ case 'P': // alsa ports changed
+ rescanAlsaPorts();
+ break;
+ case 'G':
+ clearRecAutomation(true);
+ setPos(0, audio->tickPos(), true, false, true);
+ break;
+ case 'S': // shutdown audio
+ muse->seqStop();
+
+ {
+ // give the user a sensible explanation
+ int btn = QMessageBox::critical( muse, tr(QString("Jack shutdown!")),
+ tr(QString("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");
+ if (btn == 0) {
+ printf("restarting!\n");
+ muse->seqRestart();
+ }
+ }
+
+ break;
+ case 'f': // start freewheel
+ if(debugMsg)
+ printf("Song: seqSignal: case f: setFreewheel start\n");
+
+ // Enabled by Tim. p3.3.6
+ if(config.freewheelMode)
+ audioDevice->setFreewheel(true);
+
+ break;
+
+ case 'F': // stop freewheel
+ if(debugMsg)
+ printf("Song: seqSignal: case F: setFreewheel stop\n");
+
+ // Enabled by Tim. p3.3.6
+ if(config.freewheelMode)
+ audioDevice->setFreewheel(false);
+
+ audio->msgPlay(false);
+#if 0
+ if (record())
+ audio->recordStop();
+ setStopPlay(false);
+#endif
+ break;
+
+ case 'C': // Graph changed
+ if (audioDevice)
+ audioDevice->graphChanged();
+ break;
+
+ // p3.3.37
+ case 'R': // Registration changed
+ if (audioDevice)
+ audioDevice->registrationChanged();
+ break;
+
+ default:
+ printf("unknown Seq Signal <%c>\n", buffer[i]);
+ break;
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// recordEvent
+//---------------------------------------------------------
+
+void Song::recordEvent(MidiTrack* mt, Event& event)
+ {
+ //---------------------------------------------------
+ // if tick points into a part,
+ // record to that part
+ // else
+ // create new part
+ //---------------------------------------------------
+
+ unsigned tick = event.tick();
+ PartList* pl = mt->parts();
+ MidiPart* part = 0;
+ iPart ip;
+ for (ip = pl->begin(); ip != pl->end(); ++ip) {
+ part = (MidiPart*)(ip->second);
+ unsigned partStart = part->tick();
+ unsigned partEnd = partStart + part->lenTick();
+ if (tick >= partStart && tick < partEnd)
+ break;
+ }
+ updateFlags |= SC_EVENT_INSERTED;
+ if (ip == pl->end()) {
+ // create new part
+ part = new MidiPart(mt);
+ int startTick = roundDownBar(tick);
+ //int endTick = roundUpBar(tick);
+ int endTick = roundUpBar(tick + 1);
+ part->setTick(startTick);
+ part->setLenTick(endTick - startTick);
+ part->setName(mt->name());
+ event.move(-startTick);
+ part->events()->add(event);
+ audio->msgAddPart(part);
+ return;
+ }
+ part = (MidiPart*)(ip->second);
+ tick -= part->tick();
+ event.setTick(tick);
+
+ Event ev;
+ if(event.type() == Controller)
+ {
+ EventRange range = part->events()->equal_range(tick);
+ for(iEvent i = range.first; i != range.second; ++i)
+ {
+ ev = i->second;
+ // At the moment, Song::recordEvent() is only called by the 'Rec' buttons in the
+ // midi track info panel. So only controller types are fed to it. If other event types
+ // are to be passed, we will have to expand on this to check if equal. Instead, maybe add an isEqual() to Event class.
+ //if((ev.type() == Controller && event.type() == Controller || ev.type() == Controller && event.type() == Controller)
+ // && ev.dataA() == event.dataA() && ev.dataB() == event.dataB())
+ if(ev.type() == Controller && ev.dataA() == event.dataA())
+ {
+ // Don't bother if already set.
+ if(ev.dataB() == event.dataB())
+ return;
+ // Indicate do undo, and do port controller values and clone parts.
+ audio->msgChangeEvent(ev, event, part, true, true, true);
+ return;
+ }
+ }
+ }
+
+ // Indicate do undo, and do port controller values and clone parts.
+ //audio->msgAddEvent(event, part);
+ audio->msgAddEvent(event, part, true, true, true);
+ }
+
+//---------------------------------------------------------
+// execAutomationCtlPopup
+//---------------------------------------------------------
+
+int Song::execAutomationCtlPopup(AudioTrack* track, const QPoint& menupos, int acid)
+{
+ //enum { HEADER, SEP1, PREV_EVENT, NEXT_EVENT, SEP2, ADD_EVENT, CLEAR_EVENT, CLEAR_RANGE, CLEAR_ALL_EVENTS };
+ enum { HEADER, PREV_EVENT, NEXT_EVENT, SEP2, ADD_EVENT, CLEAR_EVENT, CLEAR_RANGE, CLEAR_ALL_EVENTS };
+ Q3PopupMenu* menu = new Q3PopupMenu;
+
+ int count = 0;
+ bool isEvent = false, canSeekPrev = false, canSeekNext = false, canEraseRange = false;
+ bool canAdd = false;
+ double ctlval = 0.0;
+ if(track)
+ {
+ ciCtrlList icl = track->controller()->find(acid);
+ if(icl != track->controller()->end())
+ {
+ CtrlList *cl = icl->second;
+ canAdd = true;
+ ctlval = cl->curVal();
+ count = cl->size();
+ if(count)
+ {
+ int frame = pos[0].frame();
+
+ iCtrl s = cl->lower_bound(frame);
+ iCtrl e = cl->upper_bound(frame);
+
+ isEvent = (s != cl->end() && s->second.frame == frame);
+
+ canSeekPrev = s != cl->begin();
+ canSeekNext = e != cl->end();
+
+ s = cl->lower_bound(pos[1].frame());
+
+ canEraseRange = s != cl->end()
+ && (int)pos[2].frame() > s->second.frame;
+ }
+ }
+ }
+
+ //menu->insertItem(tr("Automation:"), HEADER, HEADER);
+ //menu->setItemEnabled(HEADER, false);
+ //MenuTitleItem* title = new MenuTitleItem(tr("Automation:")); ddskrjo
+ //menu->insertItem(title, HEADER, HEADER); ddskrjo
+
+ //menu->insertSeparator(SEP1);
+
+ menu->insertItem(tr("previous event"), PREV_EVENT, PREV_EVENT);
+ menu->setItemEnabled(PREV_EVENT, canSeekPrev);
+
+ menu->insertItem(tr("next event"), NEXT_EVENT, NEXT_EVENT);
+ menu->setItemEnabled(NEXT_EVENT, canSeekNext);
+
+ menu->insertSeparator(SEP2);
+
+ if(isEvent)
+ menu->insertItem(tr("set event"), ADD_EVENT, ADD_EVENT);
+ else
+ menu->insertItem(tr("add event"), ADD_EVENT, ADD_EVENT);
+ menu->setItemEnabled(ADD_EVENT, canAdd);
+ menu->insertItem(tr("erase event"), CLEAR_EVENT, CLEAR_EVENT);
+ menu->setItemEnabled(CLEAR_EVENT, isEvent);
+
+ menu->insertItem(tr("erase range"), CLEAR_RANGE, CLEAR_RANGE);
+ menu->setItemEnabled(CLEAR_RANGE, canEraseRange);
+
+ menu->insertItem(tr("clear automation"), CLEAR_ALL_EVENTS, CLEAR_ALL_EVENTS);
+ menu->setItemEnabled(CLEAR_ALL_EVENTS, (bool)count);
+
+ int sel = menu->exec(menupos, 1);
+ delete menu;
+ if (sel == -1)
+ return -1;
+
+ if(!track)
+ return -1;
+ switch(sel)
+ {
+ case ADD_EVENT:
+ audio->msgAddACEvent(track, acid, pos[0].frame(), ctlval);
+ break;
+ case CLEAR_EVENT:
+ audio->msgEraseACEvent(track, acid, pos[0].frame());
+ break;
+
+ case CLEAR_RANGE:
+ audio->msgEraseRangeACEvents(track, acid, pos[1].frame(), pos[2].frame());
+ break;
+
+ case CLEAR_ALL_EVENTS:
+ if(QMessageBox::question(muse, QString("Muse"),
+ tr("Clear all controller events?"), tr("&Ok"), tr("&Cancel"),
+ QString::null, 0, 1 ) == 0)
+ audio->msgClearControllerEvents(track, acid);
+ break;
+
+ case PREV_EVENT:
+ audio->msgSeekPrevACEvent(track, acid);
+ break;
+
+ case NEXT_EVENT:
+ audio->msgSeekNextACEvent(track, acid);
+ break;
+
+ default:
+ return -1;
+ break;
+ }
+ return sel;
+}
+
+//---------------------------------------------------------
+// execMidiAutomationCtlPopup
+//---------------------------------------------------------
+
+int Song::execMidiAutomationCtlPopup(MidiTrack* track, MidiPart* part, const QPoint& menupos, int ctlnum)
+{
+ if(!track && !part)
+ return -1;
+
+ //enum { HEADER, SEP1, PREV_EVENT, NEXT_EVENT, SEP2, ADD_EVENT, CLEAR_EVENT, CLEAR_RANGE, CLEAR_ALL_EVENTS };
+ enum { HEADER, ADD_EVENT, CLEAR_EVENT };
+ Q3PopupMenu* menu = new Q3PopupMenu;
+
+ //int count = 0;
+ bool isEvent = false;
+ //bool canSeekPrev = false, canSeekNext = false, canEraseRange = false;
+ //bool canAdd = false;
+ //double ctlval = 0.0;
+
+ MidiTrack* mt;
+ if(track)
+ mt = track;
+ else
+ mt = (MidiTrack*)part->track();
+ int portno = mt->outPort();
+ int channel = mt->outChannel();
+ MidiPort* mp = &midiPorts[portno];
+
+ int dctl = ctlnum;
+ // Is it a drum controller, according to the track port's instrument?
+ MidiController *mc = mp->drumController(ctlnum);
+ if(mc)
+ {
+ // Change the controller event's index into the drum map to an instrument note.
+ int note = ctlnum & 0x7f;
+ dctl &= ~0xff;
+ channel = drumMap[note].channel;
+ mp = &midiPorts[drumMap[note].port];
+ dctl |= drumMap[note].anote;
+ }
+
+ //printf("Song::execMidiAutomationCtlPopup ctlnum:%d dctl:%d anote:%d\n", ctlnum, dctl, drumMap[ctlnum & 0x7f].anote);
+
+ unsigned tick = cpos();
+
+ if(!part)
+ {
+ PartList* pl = mt->parts();
+ iPart ip;
+ for(ip = pl->begin(); ip != pl->end(); ++ip)
+ {
+ MidiPart* tpart = (MidiPart*)(ip->second);
+ unsigned partStart = tpart->tick();
+ unsigned partEnd = partStart + tpart->lenTick();
+ if(tick >= partStart && tick < partEnd)
+ {
+ // Prefer a selected part, otherwise keep looking...
+ if(tpart->selected())
+ {
+ part = tpart;
+ break;
+ }
+ else
+ // Remember the first part found...
+ if(!part)
+ part = tpart;
+ }
+ }
+ }
+
+ Event ev;
+ if(part)
+ {
+ unsigned partStart = part->tick();
+ unsigned partEnd = partStart + part->lenTick();
+ if(tick >= partStart && tick < partEnd)
+ {
+ EventRange range = part->events()->equal_range(tick - partStart);
+ for(iEvent i = range.first; i != range.second; ++i)
+ {
+ ev = i->second;
+ if(ev.type() == Controller)
+ {
+ //printf("Song::execMidiAutomationCtlPopup ev.dataA:%d\n", ev.dataA());
+
+ //if(ev.dataA() == dctl)
+ if(ev.dataA() == ctlnum)
+ {
+ isEvent = true;
+ break;
+ }
+ }
+ }
+ }
+ }
+
+
+ //menu->insertItem(tr("Automation:"), HEADER, HEADER);
+ //menu->setItemEnabled(HEADER, false);
+ //MenuTitleItem* title = new MenuTitleItem(tr("Automation:")); ddskrjo
+ ///menu->insertItem(title, HEADER, HEADER); ddskrjo
+
+ //menu->insertSeparator(SEP1);
+
+// menu->insertItem(tr("previous event"), PREV_EVENT, PREV_EVENT);
+// menu->setItemEnabled(PREV_EVENT, canSeekPrev);
+
+// menu->insertItem(tr("next event"), NEXT_EVENT, NEXT_EVENT);
+// menu->setItemEnabled(NEXT_EVENT, canSeekNext);
+
+// menu->insertSeparator(SEP2);
+
+ if(isEvent)
+ menu->insertItem(tr("set event"), ADD_EVENT, ADD_EVENT);
+ else
+ menu->insertItem(tr("add event"), ADD_EVENT, ADD_EVENT);
+ //menu->setItemEnabled(ADD_EVENT, canAdd);
+ menu->setItemEnabled(ADD_EVENT, true);
+
+ menu->insertItem(tr("erase event"), CLEAR_EVENT, CLEAR_EVENT);
+ menu->setItemEnabled(CLEAR_EVENT, isEvent);
+
+// menu->insertItem(tr("erase range"), CLEAR_RANGE, CLEAR_RANGE);
+// menu->setItemEnabled(CLEAR_RANGE, canEraseRange);
+
+// menu->insertItem(tr("clear automation"), CLEAR_ALL_EVENTS, CLEAR_ALL_EVENTS);
+// menu->setItemEnabled(CLEAR_ALL_EVENTS, (bool)count);
+
+ int sel = menu->exec(menupos, 1);
+ delete menu;
+ if (sel == -1)
+ return -1;
+
+ //if(!part)
+ // return -1;
+
+ switch(sel)
+ {
+ case ADD_EVENT:
+ {
+ //int val = mp->hwCtrlState(channel, ctlnum);
+ int val = mp->hwCtrlState(channel, dctl);
+ if(val == CTRL_VAL_UNKNOWN)
+ return -1;
+ Event e(Controller);
+ //e.setA(dctl);
+ e.setA(ctlnum);
+ e.setB(val);
+ // Do we replace an old event?
+ if(isEvent)
+ {
+ // Don't bother if already set.
+ if(ev.dataB() == val)
+ return -1;
+
+ e.setTick(tick - part->tick());
+ // Indicate do undo, and do port controller values and clone parts.
+ audio->msgChangeEvent(ev, e, part, true, true, true);
+ }
+ else
+ {
+ // Store a new event...
+ if(part)
+ {
+ e.setTick(tick - part->tick());
+ // Indicate do undo, and do port controller values and clone parts.
+ audio->msgAddEvent(e, part, true, true, true);
+ }
+ else
+ {
+ // Create a new part...
+ part = new MidiPart(mt);
+ int startTick = roundDownBar(tick);
+ int endTick = roundUpBar(tick + 1);
+ part->setTick(startTick);
+ part->setLenTick(endTick - startTick);
+ part->setName(mt->name());
+ e.setTick(tick - startTick);
+ part->events()->add(e);
+ // Allow undo.
+ audio->msgAddPart(part);
+ }
+ }
+ }
+ break;
+ case CLEAR_EVENT:
+ // Indicate do undo, and do port controller values and clone parts.
+ audio->msgDeleteEvent(ev, part, true, true, true);
+ break;
+
+ //case CLEAR_RANGE:
+ //audio->msgEraseRangeACEvents(track, acid, pos[1].frame(), pos[2].frame());
+ //break;
+
+ //case CLEAR_ALL_EVENTS:
+ //if(QMessageBox::question(muse, QString("Muse"),
+ // tr("Clear all controller events?"), tr("&Ok"), tr("&Cancel"),
+ // QString::null, 0, 1 ) == 0)
+ //audio->msgClearControllerEvents(track, acid);
+ //break;
+
+ //case PREV_EVENT:
+ //audio->msgSeekPrevACEvent(track, acid);
+ //break;
+
+ //case NEXT_EVENT:
+ //audio->msgSeekNextACEvent(track, acid);
+ //break;
+
+ default:
+ return -1;
+ break;
+ }
+
+ return sel;
+}
+
+//---------------------------------------------------------
+// updateSoloStates
+// This will properly set all soloing variables (including other tracks) based entirely
+// on the current values of all the tracks' _solo members.
+//---------------------------------------------------------
+
+void Song::updateSoloStates()
+{
+ Track::clearSoloRefCounts();
+ for(ciTrack i = _tracks.begin(); i != _tracks.end(); ++i)
+ (*i)->setInternalSolo(0);
+ for(ciTrack i = _tracks.begin(); i != _tracks.end(); ++i)
+ (*i)->updateSoloStates(true);
+}
+
+//---------------------------------------------------------
+// clearRecAutomation
+//---------------------------------------------------------
+
+void Song::clearRecAutomation(bool clearList)
+{
+ // Clear all pan/vol pressed and touched flags, and all rec event lists, if needed.
+ for (iTrack it = tracks()->begin(); it != tracks()->end(); ++it)
+ ((Track*)(*it))->clearRecAutomation(clearList);
+}
+
+//---------------------------------------------------------
+// processAutomationEvents
+//---------------------------------------------------------
+
+void Song::processAutomationEvents()
+{
+ // Just clear all pressed and touched flags, not rec event lists.
+ clearRecAutomation(false);
+ if (!automation)
+ return;
+ for(iTrack i = _tracks.begin(); i != _tracks.end(); ++i)
+ {
+ if(!(*i)->isMidiTrack())
+ // Process (and clear) rec events.
+ ((AudioTrack*)(*i))->processAutomationEvents();
+ }
+}
+
+//---------------------------------------------------------
+// abortRolling
+//---------------------------------------------------------
+
+void Song::abortRolling()
+{
+ if (record())
+ audio->recordStop();
+ setStopPlay(false);
+}
+
+//---------------------------------------------------------
+// stopRolling
+//---------------------------------------------------------
+
+void Song::stopRolling()
+ {
+ abortRolling();
+ processAutomationEvents();
+ }
+
+//---------------------------------------------------------
+// connectJackRoutes
+//---------------------------------------------------------
+
+void Song::connectJackRoutes(AudioTrack* track, bool disconnect)
+{
+ switch(track->type())
+ {
+ case Track::AUDIO_OUTPUT:
+ {
+ AudioOutput* ao = (AudioOutput*)track;
+ // This will re-register the track's jack ports.
+ if(!disconnect)
+ ao->setName(ao->name());
+ // Now reconnect the output routes.
+ if(checkAudioDevice() && audio->isRunning())
+ {
+ for(int ch = 0; ch < ao->channels(); ++ch)
+ {
+ RouteList* ir = ao->outRoutes();
+ for (iRoute ii = ir->begin(); ii != ir->end(); ++ii)
+ {
+ Route r = *ii;
+ if ((r.type == Route::JACK_ROUTE) && (r.channel == ch))
+ {
+ if(disconnect)
+ audioDevice->disconnect(ao->jackPort(ch), r.jackPort);
+ else
+ audioDevice->connect(ao->jackPort(ch), r.jackPort);
+ break;
+ }
+ }
+ if(disconnect)
+ {
+ audioDevice->unregisterPort(ao->jackPort(ch));
+ ao->setJackPort(ch, 0);
+ }
+ }
+ }
+ }
+ break;
+ case Track::AUDIO_INPUT:
+ {
+ AudioInput* ai = (AudioInput*)track;
+ // This will re-register the track's jack ports.
+ if(!disconnect)
+ ai->setName(ai->name());
+ // Now reconnect the input routes.
+ if(checkAudioDevice() && audio->isRunning())
+ {
+ for(int ch = 0; ch < ai->channels(); ++ch)
+ {
+ RouteList* ir = ai->inRoutes();
+ for (iRoute ii = ir->begin(); ii != ir->end(); ++ii)
+ {
+ Route r = *ii;
+ if ((r.type == Route::JACK_ROUTE) && (r.channel == ch))
+ {
+ if(disconnect)
+ audioDevice->disconnect(r.jackPort, ai->jackPort(ch));
+ else
+ audioDevice->connect(r.jackPort, ai->jackPort(ch));
+ break;
+ }
+ }
+ if(disconnect)
+ {
+ audioDevice->unregisterPort(ai->jackPort(ch));
+ ai->setJackPort(ch, 0);
+ }
+ }
+ }
+ }
+ break;
+ default:
+ break;
+ }
+}
+
+/*
+//---------------------------------------------------------
+// chooseMidiRoutes
+//---------------------------------------------------------
+
+void Song::chooseMidiRoutes(QButton* parent, MidiTrack* track, bool dst)
+{
+ if(!track)
+ return;
+
+ //if(!track->isMidiTrack())
+ // return;
+
+ QPoint ppt = QCursor::pos();
+ //QPoint ppt = parent->rect().bottomLeft();
+
+ //if(dst)
+ //{
+ // TODO
+
+ //}
+ //else
+ //{
+ RouteList* rl = dst ? track->outRoutes() : track->inRoutes();
+ //Route dst(track, -1);
+
+ QPopupMenu* pup = new QPopupMenu(parent);
+ pup->setCheckable(true);
+
+ int gid = 0;
+ int n;
+
+ // FIXME:
+ // Routes can't be re-read until the message sent from msgAddRoute1()
+ // has had time to be sent and actually affected the routes.
+ ///_redisplay:
+
+ pup->clear();
+ gid = 0;
+
+ //MidiInPortList* tl = song->midiInPorts();
+ //for(iMidiInPort i = tl->begin();i != tl->end(); ++i)
+ for(int i = 0; i < MIDI_PORTS; ++i)
+ {
+ //MidiInPort* track = *i;
+ // NOTE: Could possibly list all devices, bypassing ports, but no, let's stick wth ports.
+ MidiPort* mp = &midiPorts[i];
+ MidiDevice* md = mp->device();
+ if(!md)
+ continue;
+
+ if(!(md->rwFlags() & (dst ? 1 : 2)))
+ continue;
+
+ //printf("MidiStrip::iRoutePressed adding submenu portnum:%d\n", i);
+
+ //QMenu* m = menu->addMenu(track->name());
+ QPopupMenu* subp = new QPopupMenu(parent);
+
+ for(int ch = 0; ch < MIDI_CHANNELS; ++ch)
+ {
+ //QAction* a = m->addAction(QString("Channel %1").arg(ch+1));
+ //subp->insertItem(QT_TR_NOOP(QString("Channel %1").arg(ch+1)), i * MIDI_CHANNELS + ch);
+ gid = i * MIDI_CHANNELS + ch;
+
+ //printf("MidiStrip::iRoutePressed inserting gid:%d\n", gid);
+
+ subp->insertItem(QString("Channel %1").arg(ch+1), gid);
+ //a->setCheckable(true);
+ //Route src(track, ch, RouteNode::TRACK);
+ //Route src(md, ch);
+ //Route r = Route(src, dst);
+ //a->setData(QVariant::fromValue(r));
+ //a->setChecked(rl->indexOf(r) != -1);
+ Route srcRoute(md, ch);
+ for(iRoute ir = rl->begin(); ir != rl->end(); ++ir)
+ {
+ //if(*ir == dst)
+ if(*ir == srcRoute)
+ {
+ subp->setItemChecked(gid, true);
+ break;
+ }
+ }
+ }
+ pup->insertItem(QT_TR_NOOP(md->name()), subp);
+ }
+
+// QPopupMenu* pup = new QPopupMenu(iR);
+// pup->setCheckable(true);
+ //MidiTrack* t = (MidiTrack*)track;
+// RouteList* irl = track->inRoutes();
+
+// MidiTrack* t = (MidiTrack*)track;
+// int gid = 0;
+// for (int i = 0; i < channel; ++i)
+// {
+// char buffer[128];
+// snprintf(buffer, 128, "%s %d", tr("Channel").latin1(), i+1);
+// MenuTitleItem* titel = new MenuTitleItem(QString(buffer));
+// pup->insertItem(titel);
+
+// if (!checkAudioDevice()) return;
+// std::list<QString> ol = audioDevice->outputPorts();
+// for (std::list<QString>::iterator ip = ol.begin(); ip != ol.end(); ++ip) {
+// int id = pup->insertItem(*ip, (gid * 16) + i);
+// Route dst(*ip, true, i);
+// ++gid;
+// for (iRoute ir = irl->begin(); ir != irl->end(); ++ir) {
+// if (*ir == dst) {
+// pup->setItemChecked(id, true);
+// break;
+// }
+// }
+// }
+// if (i+1 != channel)
+// pup->insertSeparator();
+// }
+
+ if(pup->count() == 0)
+ {
+ delete pup;
+ return;
+ }
+
+ //n = pup->exec(QCursor::pos());
+ n = pup->exec(ppt);
+ ///delete pup;
+ if (n != -1)
+ {
+ int mdidx = n / MIDI_CHANNELS;
+ int ch = n % MIDI_CHANNELS;
+
+ //if(debugMsg)
+ //printf("Song::chooseMidiRoutes mdidx:%d ch:%d\n", mdidx, ch);
+
+ MidiPort* mp = &midiPorts[mdidx];
+ MidiDevice* md = mp->device();
+ if(!md)
+ {
+ delete pup;
+ return;
+ }
+
+ //if(!(md->rwFlags() & 2))
+ if(!(md->rwFlags() & (dst ? 1 : 2)))
+ {
+ delete pup;
+ return;
+ }
+
+ //QString s(pup->text(n));
+ //QT_TR_NOOP(md->name())
+
+ //Route srcRoute(s, false, -1);
+ Route aRoute(md, ch);
+ //Route srcRoute(md, -1);
+ //Route dstRoute(track, -1);
+ Route bRoute(track, ch);
+
+ //if (track->type() == Track::AUDIO_INPUT)
+ // srcRoute.channel = dstRoute.channel = n & 0xf;
+ iRoute iir = rl->begin();
+ for (; iir != rl->end(); ++iir)
+ {
+ //if(*iir == (dst ? bRoute : aRoute))
+ if(*iir == aRoute)
+ break;
+ }
+ if (iir != rl->end())
+ {
+ // disconnect
+ if(dst)
+ {
+ //printf("Song::chooseMidiRoutes removing route src track name: %s dst device name: %s\n", track->name().latin1(), md->name().latin1());
+ audio->msgRemoveRoute(bRoute, aRoute);
+ }
+ else
+ {
+ //printf("Song::chooseMidiRoutes removing route src device name: %s dst track name: %s\n", md->name().latin1(), track->name().latin1());
+ audio->msgRemoveRoute(aRoute, bRoute);
+ }
+ }
+ else
+ {
+ // connect
+ if(dst)
+ {
+ //printf("Song::chooseMidiRoutes adding route src track name: %s dst device name: %s\n", track->name().latin1(), md->name().latin1());
+ audio->msgAddRoute(bRoute, aRoute);
+ }
+ else
+ {
+ //printf("Song::chooseMidiRoutes adding route src device name: %s dst track name: %s\n", md->name().latin1(), track->name().latin1());
+ audio->msgAddRoute(aRoute, bRoute);
+ }
+ }
+
+ //printf("Song::chooseMidiRoutes calling msgUpdateSoloStates\n");
+ audio->msgUpdateSoloStates();
+ //printf("Song::chooseMidiRoutes calling song->update\n");
+ song->update(SC_ROUTE);
+
+ // p3.3.46
+ ///goto _redisplay;
+ }
+ delete pup;
+ parent->setDown(false); // pup->exec() catches mouse release event
+ //printf("Song::chooseMidiRoutes end\n");
+
+ //}
+}
+*/
+
+//---------------------------------------------------------
+// insertTrack0
+//---------------------------------------------------------
+
+void Song::insertTrack0(Track* track, int idx)
+ {
+ insertTrack1(track, idx);
+ insertTrack2(track, idx); // audio->msgInsertTrack(track, idx, false);
+ insertTrack3(track, idx);
+ }
+
+//---------------------------------------------------------
+// insertTrack1
+// non realtime part of insertTrack
+//---------------------------------------------------------
+
+void Song::insertTrack1(Track* track, int /*idx*/)
+ {
+ //printf("Song::insertTrack1 track:%lx\n", track);
+
+ switch(track->type()) {
+ case Track::AUDIO_SOFTSYNTH:
+ {
+ SynthI* s = (SynthI*)track;
+ Synth* sy = s->synth();
+ if (!s->isActivated()) {
+ s->initInstance(sy, s->name());
+ }
+ }
+ break;
+ default:
+ break;
+ }
+
+ //printf("Song::insertTrack1 end of function\n");
+
+ }
+
+//---------------------------------------------------------
+// insertTrack2
+// realtime part
+//---------------------------------------------------------
+
+void Song::insertTrack2(Track* track, int idx)
+{
+ //printf("Song::insertTrack2 track:%lx\n", track);
+
+ int n;
+ switch(track->type()) {
+ case Track::MIDI:
+ case Track::DRUM:
+ _midis.push_back((MidiTrack*)track);
+ // Added by T356.
+ //((MidiTrack*)track)->addPortCtrlEvents();
+ addPortCtrlEvents(((MidiTrack*)track));
+
+ break;
+ case Track::WAVE:
+ _waves.push_back((WaveTrack*)track);
+ break;
+ case Track::AUDIO_OUTPUT:
+ _outputs.push_back((AudioOutput*)track);
+ // set default master & monitor if not defined
+ if (audio->audioMaster() == 0)
+ audio->setMaster((AudioOutput*)track);
+ if (audio->audioMonitor() == 0)
+ audio->setMonitor((AudioOutput*)track);
+ break;
+ case Track::AUDIO_GROUP:
+ _groups.push_back((AudioGroup*)track);
+ break;
+ case Track::AUDIO_AUX:
+ _auxs.push_back((AudioAux*)track);
+ break;
+ case Track::AUDIO_INPUT:
+ _inputs.push_back((AudioInput*)track);
+ break;
+ case Track::AUDIO_SOFTSYNTH:
+ {
+ SynthI* s = (SynthI*)track;
+ midiDevices.add(s);
+ midiInstruments.push_back(s);
+ _synthIs.push_back(s);
+ }
+ break;
+ default:
+ fprintf(stderr, "unknown track type %d\n", track->type());
+ // abort();
+ return;
+ }
+
+ //
+ // initialize missing aux send
+ //
+ iTrack i = _tracks.index2iterator(idx);
+ //printf("Song::insertTrack2 inserting into _tracks...\n");
+
+ _tracks.insert(i, track);
+ //printf("Song::insertTrack2 inserted\n");
+
+ n = _auxs.size();
+ for (iTrack i = _tracks.begin(); i != _tracks.end(); ++i) {
+ if ((*i)->isMidiTrack())
+ continue;
+ WaveTrack* wt = (WaveTrack*)*i;
+ if (wt->hasAuxSend()) {
+ wt->addAuxSend(n);
+ }
+ }
+
+ /*
+ //
+ // add routes
+ //
+
+ if (track->isMidiTrack())
+ return;
+ AudioTrack* at = (AudioTrack*)track;
+ Route src(at, -1);
+ if (at->type() == Track::AUDIO_OUTPUT) {
+ const RouteList* rl = at->inRoutes();
+ for (ciRoute r = rl->begin(); r != rl->end(); ++r)
+ r->track->outRoutes()->push_back(src);
+ }
+ else if (at->type() == Track::AUDIO_INPUT) {
+ const RouteList* rl = at->outRoutes();
+ for (ciRoute r = rl->begin(); r != rl->end(); ++r)
+ r->track->inRoutes()->push_back(src);
+ }
+ else {
+ const RouteList* rl = at->inRoutes();
+ for (ciRoute r = rl->begin(); r != rl->end(); ++r)
+ r->track->outRoutes()->push_back(src);
+ rl = at->outRoutes();
+ for (ciRoute r = rl->begin(); r != rl->end(); ++r)
+ r->track->inRoutes()->push_back(src);
+ }
+ */
+
+ // p3.3.38
+
+ //
+ // add routes
+ //
+
+ if (track->type() == Track::AUDIO_OUTPUT)
+ {
+ const RouteList* rl = track->inRoutes();
+ for (ciRoute r = rl->begin(); r != rl->end(); ++r)
+ {
+ //if(r->track == track)
+ // r->track->outRoutes()->push_back(*r);
+ // p3.3.50
+ Route src(track, r->channel, r->channels);
+ src.remoteChannel = r->remoteChannel;
+ r->track->outRoutes()->push_back(src);
+ }
+ }
+ else if (track->type() == Track::AUDIO_INPUT)
+ {
+ const RouteList* rl = track->outRoutes();
+ for (ciRoute r = rl->begin(); r != rl->end(); ++r)
+ {
+ //if(r->track == track)
+ // r->track->inRoutes()->push_back(*r);
+ // p3.3.50
+ Route src(track, r->channel, r->channels);
+ src.remoteChannel = r->remoteChannel;
+ r->track->inRoutes()->push_back(src);
+ }
+ }
+ else if (track->isMidiTrack()) // p3.3.50
+ {
+ const RouteList* rl = track->inRoutes();
+ for (ciRoute r = rl->begin(); r != rl->end(); ++r)
+ {
+ //printf("Song::insertTrack2 %s in route port:%d\n", track->name().latin1(), r->midiPort); // p3.3.50
+ Route src(track, r->channel);
+ midiPorts[r->midiPort].outRoutes()->push_back(src);
+ }
+ rl = track->outRoutes();
+ for (ciRoute r = rl->begin(); r != rl->end(); ++r)
+ {
+ //printf("Song::insertTrack2 %s out route port:%d\n", track->name().latin1(), r->midiPort); // p3.3.50
+ Route src(track, r->channel);
+ midiPorts[r->midiPort].inRoutes()->push_back(src);
+ }
+ }
+ else
+ {
+ const RouteList* rl = track->inRoutes();
+ for (ciRoute r = rl->begin(); r != rl->end(); ++r)
+ {
+ //if(r->track == track)
+ // r->track->outRoutes()->push_back(*r);
+ // p3.3.50
+ Route src(track, r->channel, r->channels);
+ src.remoteChannel = r->remoteChannel;
+ r->track->outRoutes()->push_back(src);
+ }
+ rl = track->outRoutes();
+ for (ciRoute r = rl->begin(); r != rl->end(); ++r)
+ {
+ //if(r->track == track)
+ // r->track->inRoutes()->push_back(*r);
+ // p3.3.50
+ Route src(track, r->channel, r->channels);
+ src.remoteChannel = r->remoteChannel;
+ r->track->inRoutes()->push_back(src);
+ }
+ }
+
+ //printf("Song::insertTrack2 end of function\n");
+
+}
+
+//---------------------------------------------------------
+// insertTrack3
+// non realtime part of insertTrack
+//---------------------------------------------------------
+
+void Song::insertTrack3(Track* /*track*/, int /*idx*/)//prevent compiler warning: unused parameter
+{
+ //printf("Song::insertTrack3\n");
+
+ /*
+ switch(track->type()) {
+ case Track::AUDIO_SOFTSYNTH:
+ break;
+ default:
+ break;
+ }
+ */
+}
+
+//---------------------------------------------------------
+// removeTrack0
+//---------------------------------------------------------
+
+void Song::removeTrack0(Track* track)
+ {
+ removeTrack1(track);
+ audio->msgRemoveTrack(track);
+ removeTrack3(track);
+ //delete track;
+ update(SC_TRACK_REMOVED);
+ }
+
+//---------------------------------------------------------
+// removeTrack1
+// non realtime part of removeTrack
+//---------------------------------------------------------
+
+void Song::removeTrack1(Track* track)
+ {
+ switch(track->type())
+ {
+ case Track::WAVE:
+ case Track::AUDIO_OUTPUT:
+ case Track::AUDIO_INPUT:
+ case Track::AUDIO_GROUP:
+ case Track::AUDIO_AUX:
+ case Track::AUDIO_SOFTSYNTH:
+ ((AudioTrack*)track)->deleteAllEfxGuis();
+ break;
+ default:
+ break;
+ }
+
+ switch(track->type())
+ {
+ case Track::AUDIO_OUTPUT:
+ case Track::AUDIO_INPUT:
+ connectJackRoutes((AudioTrack*)track, true);
+ break;
+ case Track::AUDIO_SOFTSYNTH:
+ {
+ SynthI* si = (SynthI*)track;
+ if(si->hasGui())
+ si->showGui(false);
+ }
+ break;
+ default:
+ break;
+ }
+ }
+
+//---------------------------------------------------------
+// removeTrack
+// called from RT context
+//---------------------------------------------------------
+
+void Song::removeTrack2(Track* track)
+{
+ //printf("Song::removeTrack2 track:%s\n", track->name().latin1()); // p3.3.50
+
+ switch(track->type()) {
+ case Track::MIDI:
+ case Track::DRUM:
+ // Added by T356.
+ //((MidiTrack*)track)->removePortCtrlEvents();
+ removePortCtrlEvents(((MidiTrack*)track));
+ unchainTrackParts(track, true);
+
+ _midis.erase(track);
+ break;
+ case Track::WAVE:
+ // Added by T356.
+ unchainTrackParts(track, true);
+
+ _waves.erase(track);
+ break;
+ case Track::AUDIO_OUTPUT:
+ _outputs.erase(track);
+ break;
+ case Track::AUDIO_INPUT:
+ _inputs.erase(track);
+ break;
+ case Track::AUDIO_GROUP:
+ _groups.erase(track);
+ break;
+ case Track::AUDIO_AUX:
+ _auxs.erase(track);
+ break;
+ case Track::AUDIO_SOFTSYNTH:
+ {
+ SynthI* s = (SynthI*) track;
+ s->deactivate2();
+ _synthIs.erase(track);
+ }
+ break;
+ }
+ _tracks.erase(track);
+
+
+ /*
+ if (track->isMidiTrack())
+ return;
+ //
+ // remove routes
+ //
+
+ AudioTrack* at = (AudioTrack*)track;
+ Route src(at, -1);
+ if (at->type() == Track::AUDIO_OUTPUT) {
+ const RouteList* rl = at->inRoutes();
+ for (ciRoute r = rl->begin(); r != rl->end(); ++r)
+ r->track->outRoutes()->removeRoute(src);
+ }
+ else if (at->type() == Track::AUDIO_INPUT) {
+ const RouteList* rl = at->outRoutes();
+ for (ciRoute r = rl->begin(); r != rl->end(); ++r)
+ r->track->inRoutes()->removeRoute(src);
+ }
+ else {
+ const RouteList* rl = at->inRoutes();
+ for (ciRoute r = rl->begin(); r != rl->end(); ++r)
+ r->track->outRoutes()->removeRoute(src);
+ rl = at->outRoutes();
+ for (ciRoute r = rl->begin(); r != rl->end(); ++r)
+ r->track->inRoutes()->removeRoute(src);
+ }
+ */
+
+ // p3.3.38
+
+ //
+ // remove routes
+ //
+
+ if (track->type() == Track::AUDIO_OUTPUT)
+ {
+ const RouteList* rl = track->inRoutes();
+ for (ciRoute r = rl->begin(); r != rl->end(); ++r)
+ {
+ //if(r->track == track)
+ // r->track->outRoutes()->removeRoute(*r);
+ //printf("Song::removeTrack2 %s audio out track:%s\n", track->name().latin1(), r->track->name().latin1()); // p3.3.50
+ // p3.3.50
+ Route src(track, r->channel, r->channels);
+ src.remoteChannel = r->remoteChannel;
+ r->track->outRoutes()->removeRoute(src);
+ }
+ }
+ else if (track->type() == Track::AUDIO_INPUT)
+ {
+ const RouteList* rl = track->outRoutes();
+ for (ciRoute r = rl->begin(); r != rl->end(); ++r)
+ {
+ //if(r->track == track)
+ // r->track->inRoutes()->removeRoute(*r);
+ //printf("Song::removeTrack2 %s audio in track:%s\n", track->name().latin1(), r->track->name().latin1()); // p3.3.50
+ // p3.3.50
+ Route src(track, r->channel, r->channels);
+ src.remoteChannel = r->remoteChannel;
+ r->track->inRoutes()->removeRoute(src);
+ }
+ }
+ else if (track->isMidiTrack()) // p3.3.50
+ {
+ const RouteList* rl = track->inRoutes();
+ for (ciRoute r = rl->begin(); r != rl->end(); ++r)
+ {
+ //printf("Song::removeTrack2 %s in route port:%d\n", track->name().latin1(), r->midiPort); // p3.3.50
+ Route src(track, r->channel);
+ midiPorts[r->midiPort].outRoutes()->removeRoute(src);
+ }
+ rl = track->outRoutes();
+ for (ciRoute r = rl->begin(); r != rl->end(); ++r)
+ {
+ //printf("Song::removeTrack2 %s out route port:%d\n", track->name().latin1(), r->midiPort); // p3.3.50
+ Route src(track, r->channel);
+ midiPorts[r->midiPort].inRoutes()->removeRoute(src);
+ }
+ }
+ else
+ {
+ const RouteList* rl = track->inRoutes();
+ for (ciRoute r = rl->begin(); r != rl->end(); ++r)
+ {
+ //if(r->track == track)
+ // r->track->outRoutes()->removeRoute(*r);
+ //printf("Song::removeTrack2 %s in route track:%s\n", track->name().latin1(), r->track->name().latin1()); // p3.3.50
+ // p3.3.50
+ Route src(track, r->channel, r->channels);
+ src.remoteChannel = r->remoteChannel;
+ r->track->outRoutes()->removeRoute(src);
+ }
+ rl = track->outRoutes();
+ for (ciRoute r = rl->begin(); r != rl->end(); ++r)
+ {
+ //if(r->track == track)
+ // r->track->inRoutes()->removeRoute(*r);
+ //printf("Song::removeTrack2 %s out route track:%s\n", track->name().latin1(), r->track->name().latin1()); // p3.3.50
+ // p3.3.50
+ Route src(track, r->channel, r->channels);
+ src.remoteChannel = r->remoteChannel;
+ r->track->inRoutes()->removeRoute(src);
+ }
+ }
+
+}
+
+//---------------------------------------------------------
+// removeTrack3
+// non realtime part of removeTrack
+//---------------------------------------------------------
+
+void Song::removeTrack3(Track* /*track*/)//prevent of compiler warning: unused parameter
+ {
+ /*
+ switch(track->type()) {
+ case Track::AUDIO_SOFTSYNTH:
+ {
+ SynthI* s = (SynthI*) track;
+ s->deactivate3();
+ }
+ break;
+ default:
+ break;
+ }
+ */
+ }
+
+
+//---------------------------------------------------------
+// executeScript
+//---------------------------------------------------------
+void Song::executeScript(const char* scriptfile, PartList* parts, int quant, bool onlyIfSelected)
+{
+ // a simple format for external processing
+ // will be extended if there is a need
+ //
+ // Semantics:
+ // PARTLEN <len in ticks>
+ // BEATLEN <len in ticks>
+ // QUANTLEN <len in ticks>
+ // NOTE <tick> <nr> <len in ticks> <velocity>
+ // CONTROLLER <tick> <a> <b> <c>
+ //
+ song->startUndo(); // undo this entire block
+ for (iPart i = parts->begin(); i != parts->end(); i++) {
+ const char* tmp = tmpnam(NULL);
+ printf("script input filename=%s\n",tmp);
+ FILE *fp = fopen(tmp, "w");
+ MidiPart *part = (MidiPart*)(i->second);
+ int partStart = part->endTick()-part->lenTick();
+ int z, n;
+ sigmap.timesig(0, z, n);
+ fprintf(fp, "TIMESIG %d %d\n", z, n);
+ fprintf(fp, "PART %d %d\n", partStart, part->lenTick());
+ fprintf(fp, "BEATLEN %d\n", sigmap.ticksBeat(0));
+ fprintf(fp, "QUANTLEN %d\n", quant);
+
+ //for (iCItem i = items.begin(); i != items.end(); ++i) {
+ for (iEvent e = part->events()->begin(); e != part->events()->end(); e++) {
+ Event ev = e->second;
+
+ if (ev.isNote())
+ {
+ if (onlyIfSelected && ev.selected() == false)
+ continue;
+
+ fprintf(fp,"NOTE %d %d %d %d\n", ev.tick(), ev.dataA(), ev.lenTick(), ev.dataB());
+ // Indicate no undo, and do not do port controller values and clone parts.
+ audio->msgDeleteEvent(ev, part, false, false, false);
+ } else if (ev.type()==Controller) {
+ fprintf(fp,"CONTROLLER %d %d %d %d\n", ev.tick(), ev.dataA(), ev.dataB(), ev.dataC());
+ // Indicate no undo, and do not do port controller values and clone parts.
+ audio->msgDeleteEvent(ev, part, false, false, false);
+ }
+ }
+ fclose(fp);
+
+ // Call external program, let it manipulate the file
+ int pid = fork();
+ if (pid == 0) {
+ if (execlp(scriptfile, scriptfile, tmp, NULL) == -1) {
+ perror("Failed to launch script!");
+ // Get out of here
+
+ // cannot report error through gui, we are in another fork!
+ //@!TODO: Handle unsuccessful attempts
+ exit(99);
+ }
+ exit(0);
+ }
+ else if (pid == -1) {
+ perror("fork failed");
+ }
+ else {
+ int status;
+ waitpid(pid, &status, 0);
+ if (WEXITSTATUS(status) != 0 ) {
+ QMessageBox::warning(muse, tr("MusE - external script failed"),
+ tr("MusE was unable to launch the script\n")
+ );
+ endUndo(SC_EVENT_REMOVED);
+ return;
+ }
+ else { // d0 the fun55or5!
+ // TODO: Create a new part, update the entire editor from it, hehh....
+
+ QFile file(tmp);
+ if ( file.open( QIODevice::ReadOnly ) ) {
+ Q3TextStream stream( &file );
+ QString line;
+ while ( !stream.atEnd() ) {
+ line = stream.readLine(); // line of text excluding '\n'
+ if (line.startsWith("NOTE"))
+ {
+ QStringList sl = QStringList::split(" ",line);
+
+ Event e(Note);
+ int tick = sl[1].toInt();
+ int pitch = sl[2].toInt();
+ int len = sl[3].toInt();
+ int velo = sl[4].toInt();
+ printf ("tick=%d pitch=%d velo=%d len=%d\n", tick,pitch,velo,len);
+ e.setTick(tick);
+ e.setPitch(pitch);
+ e.setVelo(velo);
+ e.setLenTick(len);
+ // Indicate no undo, and do not do port controller values and clone parts.
+ audio->msgAddEvent(e, part, false, false, false);
+ }
+ if (line.startsWith("CONTROLLER"))
+ {
+ QStringList sl = QStringList::split(" ",line);
+
+ Event e(Controller);
+ int tick = sl[1].toInt();
+ int a = sl[2].toInt();
+ int b = sl[3].toInt();
+ int c = sl[4].toInt();
+ printf ("tick=%d a=%d b=%d c=%d\n", tick,a,b,c);
+ e.setA(a);
+ e.setB(b);
+ e.setB(c);
+ // Indicate no undo, and do not do port controller values and clone parts.
+ audio->msgAddEvent(e, part, false, false, false);
+ }
+ }
+ file.close();
+ }
+ }
+ }
+ remove(tmp);
+ }
+
+ endUndo(SC_EVENT_REMOVED);
+}
+
+#define SCRIPTSSUFFIX "/share/muse/scripts/"
+#define USERSCRIPTSSUFFIX "/.muse/scripts/"
+void Song::populateScriptMenu(Q3PopupMenu* menuPlugins, QObject* receiver)
+{
+ //
+ // List scripts
+ //
+ QString distScripts = QString(INSTPREFIX) + QString(SCRIPTSSUFFIX);
+ QString home = "";
+ if (getenv("HOME") != NULL)
+ home = QString(getenv("HOME"));
+ QString userScripts = home + QString(USERSCRIPTSSUFFIX);
+
+ QFileInfo distScriptsFi(distScripts);
+ if (distScriptsFi.isDir()) {
+ QDir dir = QDir(distScripts);
+ dir.setFilter(QDir::Executable | QDir::Files);
+ deliveredScriptNames = dir.entryList();
+ }
+ QFileInfo userScriptsFi(userScripts);
+ if (userScriptsFi.isDir()) {
+ QDir dir(userScripts);
+ dir.setFilter(QDir::Executable | QDir::Files);
+ userScriptNames = dir.entryList();
+ }
+
+ if (deliveredScriptNames.size() > 0 || userScriptNames.size() > 0) {
+ //menuPlugins = new QPopupMenu(this);
+ //menuBar()->insertItem(tr("&Plugins"), menuPlugins);
+ int id = 0;
+ if (deliveredScriptNames.size() > 0) {
+ for (QStringList::Iterator it = deliveredScriptNames.begin(); it != deliveredScriptNames.end(); it++, id++) {
+ //menuPlugins->insertItem(*it, this, SLOT(execDeliveredScript(int)), 0, id);
+ //menuPlugins->insertItem(*it, this, slot_deliveredscripts, 0, id);
+ menuPlugins->insertItem(*it, receiver, SLOT(execDeliveredScript(int)), 0, id);
+ }
+ menuPlugins->insertSeparator();
+ }
+ if (userScriptNames.size() > 0) {
+ for (QStringList::Iterator it = userScriptNames.begin(); it != userScriptNames.end(); it++, id++) {
+ //menuPlugins->insertItem(*it, this, slot_userscripts, 0, id);
+ menuPlugins->insertItem(*it, receiver, SLOT(execUserScript(int)), 0, id);
+ }
+ menuPlugins->insertSeparator();
+ }
+ }
+ return;
+}
+
+//---------------------------------------------------------
+// getScriptPath
+//---------------------------------------------------------
+QString Song::getScriptPath(int id, bool isdelivered)
+{
+ if (isdelivered) {
+ QString path = QString(INSTPREFIX) + SCRIPTSSUFFIX + deliveredScriptNames[id];
+ return path;
+ }
+
+ QString path = QString(getenv("HOME")) + USERSCRIPTSSUFFIX + userScriptNames[id - deliveredScriptNames.size()];
+ return path;
+}
+
diff --git a/muse2/muse/song.h b/muse2/muse/song.h
new file mode 100644
index 00000000..cc7267b7
--- /dev/null
+++ b/muse2/muse/song.h
@@ -0,0 +1,413 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: song.h,v 1.35.2.25 2009/12/15 03:39:58 terminator356 Exp $
+//
+// (C) Copyright 1999/2000 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __SONG_H__
+#define __SONG_H__
+
+#include <qstring.h>
+#include <qobject.h>
+#include <qfont.h>
+//Added by qt3to4:
+#include <Q3PopupMenu>
+#include <QEvent>
+
+#include "pos.h"
+#include "globaldefs.h"
+#include "tempo.h"
+#include "sig.h"
+#include "undo.h"
+#include "track.h"
+
+class SynthI;
+struct MidiMsg;
+struct AudioMsg;
+class Event;
+class Xml;
+class Sequencer;
+class Track;
+class Part;
+class MidiPart;
+class PartList;
+class MPEventList;
+class EventList;
+class MarkerList;
+class Marker;
+class SNode;
+class Q3PopupMenu;
+class QButton;
+
+class MidiPort;
+class MidiDevice;
+class AudioPort;
+class AudioDevice;
+
+#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_MIDI_CONTROLLER 0x2000 // must update midi mixer
+#define SC_MUTE 0x4000
+#define SC_SOLO 0x8000
+#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_MIXER_VOLUME 0x200000
+#define SC_MIXER_PAN 0x400000
+#define SC_AUTOMATION 0x800000
+#define SC_AUX 0x1000000 // mixer aux changed
+#define SC_RACK 0x2000000 // mixer rack changed
+#define SC_CLIP_MODIFIED 0x4000000
+#define SC_MIDI_CONTROLLER_ADD 0x8000000 // a hardware midi controller was added or deleted
+#define SC_MIDI_CHANNEL 0x10000000 // a midi track's channel changed
+
+#define REC_NOTE_FIFO_SIZE 16
+
+//---------------------------------------------------------
+// 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:
+ // fifo for note-on events
+ // - this events are read by the heart beat interrupt
+ // - used for single step recording in midi editors
+
+ int recNoteFifo[REC_NOTE_FIFO_SIZE];
+ volatile int noteFifoSize;
+ int noteFifoWindex;
+ int noteFifoRindex;
+
+ 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
+ AuxList _auxs; // aux sends
+ SynthIList _synthIs;
+
+ UndoList* undoList;
+ UndoList* redoList;
+ Pos pos[3];
+ Pos _vcpos; // virtual CPOS (locate in progress)
+ MarkerList* _markerList;
+
+ bool _masterFlag;
+ bool loopFlag;
+ bool punchinFlag;
+ bool punchoutFlag;
+ bool recordFlag;
+ bool soloFlag;
+ enum MType _mtype;
+ int _recMode;
+ int _cycleMode;
+ bool _click;
+ bool _quantize;
+ int _recRaster; // Used for audio rec new part snapping. Set by Arranger snap combo box.
+ unsigned _len; // song len in ticks
+ FollowMode _follow;
+ int _globalPitchShift;
+ void readMarker(Xml&);
+
+ QString songInfoStr; // contains user supplied song information, stored in song file.
+ QStringList deliveredScriptNames;
+ QStringList userScriptNames;
+
+ public:
+ Song(const char* name = 0);
+ ~Song();
+
+ void putEvent(int pv);
+ void endMsgCmd();
+ void processMsg(AudioMsg* msg);
+
+ void setMType(MType t);
+ MType mtype() const { return _mtype; }
+
+ void setFollow(FollowMode m) { _follow = m; }
+ FollowMode follow() const { return _follow; }
+
+ bool dirty;
+ WaveTrack* bounceTrack;
+ AudioOutput* bounceOutput;
+ void updatePos();
+
+ void read(Xml&);
+ void write(int, Xml&) const;
+ void writeFont(int level, Xml& xml, const char* name,
+ const QFont& font) const;
+ QFont readFont(Xml& xml, const char* name);
+ QString getSongInfo() { return songInfoStr; }
+ void setSongInfo(QString info) { songInfoStr = info; }
+
+ void clear(bool signal);
+ void update(int flags = -1);
+ void cleanupForQuit();
+
+ int globalPitchShift() const { return _globalPitchShift; }
+ void setGlobalPitchShift(int val) { _globalPitchShift = val; }
+
+ //-----------------------------------------
+ // Marker
+ //-----------------------------------------
+
+ MarkerList* marker() const { return _markerList; }
+ Marker* addMarker(const QString& s, int t, bool lck);
+ Marker* getMarkerAt(int t);
+ void removeMarker(Marker*);
+ Marker* setMarkerName(Marker*, const QString&);
+ Marker* setMarkerTick(Marker*, int);
+ Marker* setMarkerLock(Marker*, bool);
+ void setMarkerCurrent(Marker* m, bool f);
+
+ //-----------------------------------------
+ // transport
+ //-----------------------------------------
+
+ void setPos(int, const Pos&, bool sig = true, bool isSeek = true,
+ bool adjustScrollbar = false);
+ 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 vcpos() const { return _vcpos.tick(); }
+ const Pos& vcPos() const { return _vcpos; }
+ 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();
+ void abortRolling();
+
+ //-----------------------------------------
+ // access tempomap/sigmap (Mastertrack)
+ //-----------------------------------------
+
+ unsigned len() const { return _len; }
+ void setLen(unsigned l); // set songlen in ticks
+ int roundUpBar(int tick) const;
+ int roundUpBeat(int tick) const;
+ int roundDownBar(int tick) const;
+ void initLen();
+ void tempoChanged();
+
+ //-----------------------------------------
+ // event manipulations
+ //-----------------------------------------
+
+ //void cmdAddRecordedWave(WaveTrack* track, const Pos&, const Pos&);
+ void cmdAddRecordedWave(WaveTrack* track, Pos, Pos);
+ void cmdAddRecordedEvents(MidiTrack*, EventList*, unsigned);
+ bool addEvent(Event&, Part*);
+ void changeEvent(Event&, Event&, Part*);
+ void deleteEvent(Event&, Part*);
+ void cmdChangeWave(QString original, QString tmpfile, unsigned sx, unsigned ex);
+ void remapPortDrumCtrlEvents(int mapidx, int newnote, int newchan, int newport);
+ void changeAllPortDrumCtrlEvents(bool add, bool drumonly = false);
+
+ //-----------------------------------------
+ // part manipulations
+ //-----------------------------------------
+
+ void cmdResizePart(Track* t, Part* p, unsigned int size);
+ void cmdSplitPart(Track* t, Part* p, int tick);
+ void cmdGluePart(Track* t, Part* p);
+
+ void addPart(Part* part);
+ void removePart(Part* part);
+ void changePart(Part*, Part*);
+ PartList* getSelectedMidiParts() const;
+ PartList* getSelectedWaveParts() const;
+ bool msgRemoveParts();
+
+ //void cmdChangePart(Part* oldPart, Part* newPart);
+ void cmdChangePart(Part* oldPart, Part* newPart, bool doCtrls, bool doClones);
+ void cmdRemovePart(Part* part);
+ void cmdAddPart(Part* part);
+ int recRaster() { return _recRaster; } // Used by Song::cmdAddRecordedWave to snap new wave parts
+ void setRecRaster(int r) { _recRaster = r; } // Used by Arranger snap combo box
+
+ //-----------------------------------------
+ // 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; }
+ AuxList* auxs() { return &_auxs; }
+ SynthIList* syntis() { return &_synthIs; }
+
+ void cmdRemoveTrack(Track* track);
+ void removeTrack0(Track* track);
+ void removeTrack1(Track* track);
+ void removeTrack2(Track* track);
+ void removeTrack3(Track* track);
+ void removeMarkedTracks();
+ void changeTrack(Track* oldTrack, Track* newTrack);
+ MidiTrack* findTrack(const Part* part) const;
+ Track* findTrack(const QString& name) const;
+ void swapTracks(int i1, int i2);
+ void setChannelMute(int channel, bool flag);
+ void setRecordFlag(Track*, bool);
+ void insertTrack0(Track*, int idx);
+ void insertTrack1(Track*, int idx);
+ void insertTrack2(Track*, int idx);
+ void insertTrack3(Track*, int idx);
+ void deselectTracks();
+ void readRoute(Xml& xml);
+ void recordEvent(MidiTrack*, Event&);
+ void msgInsertTrack(Track* track, int idx, bool u = true);
+ void clearRecAutomation(bool clearList);
+ void processAutomationEvents();
+ int execAutomationCtlPopup(AudioTrack*, const QPoint&, int);
+ int execMidiAutomationCtlPopup(MidiTrack*, MidiPart*, const QPoint&, int);
+ void connectJackRoutes(AudioTrack* track, bool disconnect);
+ void updateSoloStates();
+ //void chooseMidiRoutes(QButton* /*parent*/, MidiTrack* /*track*/, bool /*dst*/);
+
+ //-----------------------------------------
+ // undo, redo
+ //-----------------------------------------
+
+ void startUndo();
+ void endUndo(int);
+ //void undoOp(UndoOp::UndoType, Track* oTrack, Track* nTrack);
+ void undoOp(UndoOp::UndoType, int n, Track* oTrack, Track* nTrack);
+ void undoOp(UndoOp::UndoType, int, Track*);
+ void undoOp(UndoOp::UndoType, int, int, int = 0);
+ void undoOp(UndoOp::UndoType, Part*);
+ //void undoOp(UndoOp::UndoType, Event& nevent, Part*);
+ void undoOp(UndoOp::UndoType, Event& nevent, Part*, bool doCtrls, bool doClones);
+ //void undoOp(UndoOp::UndoType, Event& oevent, Event& nevent, Part*);
+ void undoOp(UndoOp::UndoType, Event& oevent, Event& nevent, Part*, bool doCtrls, bool doClones);
+ void undoOp(UndoOp::UndoType, SigEvent* oevent, SigEvent* nevent);
+ void undoOp(UndoOp::UndoType, int channel, int ctrl, int oval, int nval);
+ //void undoOp(UndoOp::UndoType, Part* oPart, Part* nPart);
+ void undoOp(UndoOp::UndoType, Part* oPart, Part* nPart, bool doCtrls, bool doClones);
+ void undoOp(UndoOp::UndoType type, const char* changedFile, const char* changeData, int startframe, int endframe);
+ void undoOp(UndoOp::UndoType type, Marker* copyMarker, Marker* realMarker);
+ bool doUndo1();
+ void doUndo2();
+ void doUndo3();
+ bool doRedo1();
+ void doRedo2();
+ void doRedo3();
+
+ void addUndo(UndoOp& i);
+
+ //-----------------------------------------
+ // Configuration
+ //-----------------------------------------
+
+ //SynthI* createSynthI(const QString& sclass);
+ SynthI* createSynthI(const QString& sclass, const QString& label = QString());
+
+ void rescanAlsaPorts();
+
+ //-----------------------------------------
+ // Debug
+ //-----------------------------------------
+
+ void dumpMaster();
+ void addUpdateFlags(int f) { updateFlags |= f; }
+
+ //-----------------------------------------
+ // Python bridge related
+ //-----------------------------------------
+#ifdef ENABLE_PYTHON
+ virtual bool event (QEvent* e );
+#endif
+ void executeScript(const char* scriptfile, PartList* parts, int quant, bool onlyIfSelected);
+
+ public slots:
+ void beat();
+
+ void undo();
+ void redo();
+
+ void setTempo(int t);
+ void setSig(int a, int b);
+ void setTempo(double tempo) { setTempo(int(60000000.0/tempo)); }
+
+ void setMasterFlag(bool flag);
+ bool getLoop() { return loopFlag; }
+ void setLoop(bool f);
+ void setRecord(bool f, bool autoRecEnable = true);
+ void clearTrackRec();
+ 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 setQuantize(bool val);
+ void panic();
+ void seqSignal(int fd);
+ Track* addTrack(int);
+ Track* addNewTrack(int);
+ QString getScriptPath(int id, bool delivered);
+ void populateScriptMenu(Q3PopupMenu* menuPlugins, QObject* receiver);
+
+ signals:
+ void songChanged(int);
+ void posChanged(int, unsigned, 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 midiNote(int pitch, int velo);
+ };
+
+extern Song* song;
+
+#endif
+
diff --git a/muse2/muse/songfile.cpp b/muse2/muse/songfile.cpp
new file mode 100644
index 00000000..b13cb07a
--- /dev/null
+++ b/muse2/muse/songfile.cpp
@@ -0,0 +1,1507 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: songfile.cpp,v 1.25.2.12 2009/11/04 15:06:07 spamatica Exp $
+//
+// (C) Copyright 1999/2000 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include <assert.h>
+#include <qmessagebox.h>
+#include <uuid/uuid.h>
+
+#include "app.h"
+#include "song.h"
+#include "arranger.h"
+#include "transport.h"
+#include "cobject.h"
+#include "drumedit.h"
+#include "pianoroll.h"
+#include "globals.h"
+#include "xml.h"
+#include "drummap.h"
+#include "event.h"
+#include "marker/marker.h"
+#include "midiport.h"
+#include "audio.h"
+#include "mitplugin.h"
+#include "wave.h"
+#include "midictrl.h"
+#include "amixer.h"
+#include "conf.h"
+#include "driver/jackmidi.h"
+
+//struct ClonePart {
+ //const EventList* el;
+// const Part* cp;
+// int id;
+ //ClonePart(const EventList* e, int i) : el(e), id(i) {}
+// ClonePart(const Part* p, int i) : cp(p), id(i) {}
+// };
+
+//typedef std::list<ClonePart> CloneList;
+//typedef CloneList::iterator iClone;
+
+//---------------------------------------------------------
+// ClonePart
+//---------------------------------------------------------
+
+ClonePart::ClonePart(const Part* p, int i)
+{
+ cp = p;
+ id = i;
+ uuid_generate(uuid);
+}
+
+//static CloneList cloneList;
+//static CloneList copyCloneList;
+CloneList cloneList;
+//CloneList copyCloneList;
+
+/*
+//---------------------------------------------------------
+// updateCloneList
+//---------------------------------------------------------
+
+void updateCloneList(Part* oPart, Part* nPart)
+{
+ for(iClone i = cloneList.begin(); i != cloneList.end(); ++i)
+ {
+ if(i->cp == oPart)
+ {
+ i->cp = nPart;
+ break;
+ }
+ }
+}
+
+void updateCloneList(PartList* oParts, PartList* nParts)
+{
+ for(iPart ip = oParts->begin(); ip != oParts->end(); ++ip)
+ {
+ for(iClone i = cloneList.begin(); i != cloneList.end(); ++i)
+ {
+ if(i->cp == oPart)
+ {
+ i->cp = nPart;
+ break;
+ }
+ }
+ }
+}
+
+//---------------------------------------------------------
+// clearClipboardAndCloneList
+//---------------------------------------------------------
+
+void clearClipboardAndCloneList()
+{
+ //QApplication::clipboard()->clear(QClipboard::Clipboard);
+ cloneList.clear();
+}
+*/
+
+//---------------------------------------------------------
+// NKey::write
+//---------------------------------------------------------
+
+void NKey::write(int level, Xml& xml) const
+ {
+ xml.intTag(level, "key", val);
+ }
+
+//---------------------------------------------------------
+// NKey::read
+//---------------------------------------------------------
+
+void NKey::read(Xml& xml)
+ {
+ for (;;) {
+ Xml::Token token = xml.parse();
+ switch (token) {
+ case Xml::Error:
+ case Xml::End:
+ return;
+ case Xml::Text:
+ val = xml.s1().toInt();
+ break;
+ case Xml::TagEnd:
+ if (xml.s1() == "key")
+ return;
+ default:
+ break;
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// Scale::write
+//---------------------------------------------------------
+
+void Scale::write(int level, Xml& xml) const
+ {
+ xml.intTag(level, "scale", val);
+ }
+
+//---------------------------------------------------------
+// Scale::read
+//---------------------------------------------------------
+
+void Scale::read(Xml& xml)
+ {
+ for (;;) {
+ Xml::Token token = xml.parse();
+ switch (token) {
+ case Xml::Error:
+ case Xml::End:
+ return;
+ case Xml::Text:
+ val = xml.s1().toInt();
+ break;
+ case Xml::TagEnd:
+ if (xml.s1() == "scale")
+ return;
+ default:
+ break;
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// readXmlPart
+//---------------------------------------------------------
+
+Part* readXmlPart(Xml& xml, Track* track, bool doClone, bool toTrack)
+ {
+ int id = -1;
+ Part* npart = 0;
+ uuid_t uuid;
+ uuid_clear(uuid);
+ bool uuidvalid = false;
+ bool clone = true;
+ bool wave = false;
+ bool isclone = false;
+
+ for (;;) {
+ Xml::Token token = xml.parse();
+ const QString& tag = xml.s1();
+ switch (token) {
+ case Xml::Error:
+ case Xml::End:
+ return npart;
+ case Xml::TagStart:
+ // If the part has not been created yet...
+ if(!npart)
+ {
+ // If an id was found...
+ if(id != -1)
+ {
+ for(iClone i = cloneList.begin(); i != cloneList.end(); ++i)
+ {
+ // Is a matching part found in the clone list?
+ if(i->id == id)
+ {
+ // If it's a regular paste (not paste clone), and the original part is
+ // not a clone, defer so that a new copy is created in TagStart above.
+ //if(!doClone && i->cp->cevents()->arefCount() <= 1)
+ //if(!doClone && !isclone)
+ // break;
+
+ // This makes a clone, chains the part, and increases ref counts.
+ npart = track->newPart((Part*)i->cp, true);
+ break;
+ }
+ }
+ }
+ else
+ // If a uuid was found...
+ if(uuidvalid)
+ {
+ for(iClone i = cloneList.begin(); i != cloneList.end(); ++i)
+ {
+ // Is a matching part found in the clone list?
+ if(uuid_compare(uuid, i->uuid) == 0)
+ {
+ Track* cpt = i->cp->track();
+ // If we want to paste to the given track...
+ if(toTrack)
+ {
+ // If the given track type is not the same as the part's
+ // original track type, we can't continue. Just return.
+ if(!track || cpt->type() != track->type())
+ {
+ xml.skip("part");
+ return 0;
+ }
+ }
+ else
+ // ...else we want to paste to the part's original track.
+ {
+ // Make sure the track exists (has not been deleted).
+ if((cpt->isMidiTrack() && song->midis()->find(cpt) != song->midis()->end()) ||
+ (cpt->type() == Track::WAVE && song->waves()->find(cpt) != song->waves()->end()))
+ track = cpt;
+ else
+ // Track was not found. Try pasting to the given track, as above...
+ {
+ if(!track || cpt->type() != track->type())
+ {
+ // No luck. Just return.
+ xml.skip("part");
+ return 0;
+ }
+ }
+ }
+
+ // If it's a regular paste (not paste clone), and the original part is
+ // not a clone, defer so that a new copy is created in TagStart above.
+ //if(!doClone && i->cp->cevents()->arefCount() <= 1)
+ if(!doClone && !isclone)
+ break;
+
+ // This makes a clone, chains the part, and increases ref counts.
+ npart = track->newPart((Part*)i->cp, true);
+ break;
+ }
+ }
+ }
+
+ // If the part still has not been created yet...
+ if(!npart)
+ {
+ // A clone was not created from any matching part. Create a non-clone part now.
+ if(!track)
+ {
+ xml.skip("part");
+ return 0;
+ }
+ // If we're pasting to selected track and the 'wave'
+ // variable is valid, check for mismatch...
+ if(toTrack && uuidvalid)
+ {
+ // If both the part and track are not midi or wave...
+ if((wave && track->isMidiTrack()) ||
+ (!wave && track->type() == Track::WAVE))
+ {
+ xml.skip("part");
+ return 0;
+ }
+ }
+
+ if (track->isMidiTrack())
+ npart = new MidiPart((MidiTrack*)track);
+ else if (track->type() == Track::WAVE)
+ npart = new WavePart((WaveTrack*)track);
+ else
+ {
+ xml.skip("part");
+ return 0;
+ }
+
+ // Signify a new non-clone part was created.
+ // Even if the original part was itself a clone, clear this because the
+ // attribute section did not create a clone from any matching part.
+ clone = false;
+
+ // If an id or uuid was found, add the part to the clone list
+ // so that subsequent parts can look it up and clone from it...
+ if(id != -1)
+ {
+ ClonePart ncp(npart, id);
+ cloneList.push_back(ncp);
+ }
+ else
+ if(uuidvalid)
+ {
+ ClonePart ncp(npart);
+ // New ClonePart creates its own uuid, but we need to replace it.
+ uuid_copy(ncp.uuid, uuid);
+ cloneList.push_back(ncp);
+ }
+ }
+ }
+
+ if (tag == "name")
+ npart->setName(xml.parse1());
+ else if (tag == "poslen") {
+ ((PosLen*)npart)->read(xml, "poslen");
+ }
+ else if (tag == "pos") {
+ Pos pos;
+ pos.read(xml, "pos"); // obsolete
+ npart->setTick(pos.tick());
+ }
+ else if (tag == "len") {
+ Pos len;
+ len.read(xml, "len"); // obsolete
+ npart->setLenTick(len.tick());
+ }
+ else if (tag == "selected")
+ npart->setSelected(xml.parseInt());
+ else if (tag == "color")
+ npart->setColorIndex(xml.parseInt());
+ else if (tag == "mute")
+ npart->setMute(xml.parseInt());
+ else if (tag == "event")
+ {
+ // If a new non-clone part was created, accept the events...
+ if(!clone)
+ {
+ EventType type = Wave;
+ if(track->isMidiTrack())
+ type = Note;
+ Event e(type);
+ e.read(xml);
+ // stored tickpos for event has absolute value. However internally
+ // tickpos is relative to start of part, we substract tick().
+ // TODO: better handling for wave event
+ e.move( -npart->tick() );
+ int tick = e.tick();
+
+ // Do not discard events belonging to clone parts,
+ // at least not yet. A later clone might have a longer,
+ // fully accommodating part length!
+ //if ((tick < 0) || (tick >= (int) lenTick())) {
+ //if ((tick < 0) || ( id == -1 && !clone && (tick >= (int)lenTick()) ))
+ // No way to tell at the moment whether there will be clones referencing this...
+ // No choice but to accept all events past 0.
+ if(tick < 0)
+ {
+ //printf("readClone: warning: event not in part: %d - %d -%d, discarded\n",
+ printf("readClone: warning: event at tick:%d not in part:%s, discarded\n",
+ tick, npart->name().latin1());
+ }
+ else
+ {
+ npart->events()->add(e);
+ }
+ }
+ else
+ // ...Otherwise a clone was created, so we don't need the events.
+ xml.skip(tag);
+ }
+ else
+ xml.unknown("readXmlPart");
+ break;
+ case Xml::Attribut:
+ if (tag == "type")
+ {
+ if(xml.s2() == "wave")
+ wave = true;
+ }
+ else if (tag == "cloneId")
+ {
+ id = xml.s2().toInt();
+ //if(id != -1)
+ //{
+ // for(iClone i = cloneList.begin(); i != cloneList.end(); ++i)
+ // {
+ // Is a matching part found in the clone list?
+ // if(i->id == id)
+ // {
+ // If it's a regular paste (not paste clone), and the original part is
+ // not a clone, defer so that a new copy is created in TagStart above.
+ //if(!doClone && i->cp->cevents()->arefCount() <= 1)
+ //if(!doClone && !isclone)
+ // break;
+
+ // This makes a clone, chains the part, and increases ref counts.
+ // npart = track->newPart((Part*)i->cp, true);
+ // break;
+ // }
+ // }
+ //}
+ }
+ else if (tag == "uuid")
+ {
+ uuid_parse(xml.s2().latin1(), uuid);
+ if(!uuid_is_null(uuid))
+ {
+ uuidvalid = true;
+ /*
+ for(iClone i = cloneList.begin(); i != cloneList.end(); ++i)
+ {
+ // Is a matching part found in the clone list?
+ if(uuid_compare(uuid, i->uuid) == 0)
+ {
+ Track* cpt = i->cp->track();
+ // If we want to paste to the given track...
+ if(toTrack)
+ {
+ // If the given track type is not the same as the part's
+ // original track type, we can't continue. Just return.
+ if(!track || cpt->type() != track->type())
+ {
+ xml.skip("part");
+ return 0;
+ }
+ }
+ else
+ // ...else we want to paste to the part's original track.
+ {
+ // Make sure the track exists (has not been deleted).
+ if((cpt->isMidiTrack() && song->midis()->find(cpt) != song->midis()->end()) ||
+ (cpt->type() == Track::WAVE && song->waves()->find(cpt) != song->waves()->end()))
+ track = cpt;
+ else
+ // Track was not found. Try pasting to the given track, as above...
+ {
+ if(!track || cpt->type() != track->type())
+ {
+ // No luck. Just return.
+ xml.skip("part");
+ return 0;
+ }
+ }
+ }
+
+ // If it's a regular paste (not paste clone), and the original part is
+ // not a clone, defer so that a new copy is created in TagStart above.
+ //if(!doClone && i->cp->cevents()->arefCount() <= 1)
+ if(!doClone && !isclone)
+ break;
+
+ // This makes a clone, chains the part, and increases ref counts.
+ npart = track->newPart((Part*)i->cp, true);
+ break;
+ }
+ }
+ */
+ }
+ }
+ else if(tag == "isclone")
+ isclone = xml.s2().toInt();
+ break;
+ case Xml::TagEnd:
+ if (tag == "part")
+ return npart;
+ default:
+ break;
+ }
+ }
+ return npart;
+}
+
+//---------------------------------------------------------
+// Part::write
+// If isCopy is true, write the xml differently so that
+// we can have 'Paste Clone' feature.
+//---------------------------------------------------------
+
+//void Part::write(int level, Xml& xml) const
+void Part::write(int level, Xml& xml, bool isCopy, bool forceWavePaths) const
+ {
+ const EventList* el = cevents();
+ int id = -1;
+ uuid_t uuid;
+ uuid_clear(uuid);
+ bool dumpEvents = true;
+ bool wave = _track->type() == Track::WAVE;
+
+ if(isCopy)
+ {
+ //for(iClone i = copyCloneList.begin(); i != copyCloneList.end(); ++i)
+ for(iClone i = cloneList.begin(); i != cloneList.end(); ++i)
+ {
+ //if(i->el == el) {
+ if(i->cp->cevents() == el)
+ {
+ //id = i->id;
+ uuid_copy(uuid, i->uuid);
+ dumpEvents = false;
+ break;
+ }
+ }
+ //if(id == -1)
+ if(uuid_is_null(uuid))
+ {
+ //id = copyCloneList.size();
+ //id = cloneList.size();
+ //ClonePart cp(el, id);
+ //ClonePart cp(this, id);
+ ClonePart cp(this);
+ uuid_copy(uuid, cp.uuid);
+ //copyCloneList.push_back(cp);
+ cloneList.push_back(cp);
+ }
+ }
+ else
+ {
+ if (el->arefCount() > 1)
+ {
+ for (iClone i = cloneList.begin(); i != cloneList.end(); ++i)
+ {
+ //if (i->el == el) {
+ if (i->cp->cevents() == el)
+ {
+ id = i->id;
+ //uuid_copy(id, i->uid);
+ dumpEvents = false;
+ break;
+ }
+ }
+ if (id == -1)
+ //if(uuid_is_null(id))
+ {
+ id = cloneList.size();
+ //ClonePart cp(el, id);
+ ClonePart cp(this, id);
+ //ClonePart cp(this);
+ cloneList.push_back(cp);
+ }
+ }
+ }
+
+ // Special markers if this is a copy operation and the
+ // part is a clone.
+ if(isCopy)
+ {
+ char sid[40]; // uuid string is 36 chars. Try 40 for good luck.
+ sid[0] = 0;
+ uuid_unparse_lower(uuid, sid);
+ //if(midi)
+ // xml.nput(level, "<midipart uuid=\"%s\"", sid);
+ //else
+ if(wave)
+ xml.nput(level, "<part type=\"wave\" uuid=\"%s\"", sid);
+ else
+ xml.nput(level, "<part uuid=\"%s\"", sid);
+
+ if(el->arefCount() > 1)
+ xml.nput(" isclone=\"1\"");
+ xml.put(">");
+ level++;
+ }
+ else
+ if (id != -1)
+ //if(!uuid_is_null(id))
+ {
+ xml.tag(level++, "part cloneId=\"%d\"", id);
+ //char sid[40]; // uuid string is 36 chars. Try 40 for good luck.
+ //sid[0] = 0;
+ //uuid_unparse_lower(id, sid);
+ //xml.tag(level++, "part cloneId=\"%s\"", sid);
+ }
+ else
+ xml.tag(level++, "part");
+
+ xml.strTag(level, "name", _name);
+
+// PosLen poslen(*this);
+// int tickpos = tick();
+// poslen.setTick(tickpos);
+ PosLen::write(level, xml, "poslen");
+ xml.intTag(level, "selected", _selected);
+ xml.intTag(level, "color", _colorIndex);
+ if (_mute)
+ xml.intTag(level, "mute", _mute);
+ if (dumpEvents) {
+ for (ciEvent e = el->begin(); e != el->end(); ++e)
+ //e->second.write(level, xml, *this);
+ e->second.write(level, xml, *this, forceWavePaths);
+ }
+ xml.etag(level, "part");
+ }
+
+/*
+//---------------------------------------------------------
+// Part::read
+//---------------------------------------------------------
+
+void Part::read(Xml& xml, int, bool toTrack) // int newPartOffset
+ {
+ int id = -1;
+ bool containsEvents = false;
+ uuid_t uuid;
+ uuid_clear(uuid);
+ bool uuidvalid = false;
+ bool clone = false;
+
+ 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 == "name")
+ _name = xml.parse1();
+ else if (tag == "poslen") {
+ PosLen::read(xml, "poslen");
+ }
+ else if (tag == "pos") {
+ Pos pos;
+ pos.read(xml, "pos"); // obsolete
+ setTick(pos.tick());
+ }
+ else if (tag == "len") {
+ Pos len;
+ len.read(xml, "len"); // obsolete
+ setLenTick(len.tick());
+ }
+ else if (tag == "selected")
+ _selected = xml.parseInt();
+ else if (tag == "color")
+ _colorIndex = xml.parseInt();
+ else if (tag == "mute")
+ _mute = xml.parseInt();
+ else if (tag == "event") {
+ containsEvents = true;
+ EventType type = Wave;
+ if (_track->isMidiTrack())
+ type = Note;
+ Event e(type);
+ e.read(xml);
+ // stored tickpos for event has absolute value. However internally
+ // tickpos is relative to start of part, we substract tick().
+ // TODO: better handling for wave event
+ e.move(-tick());
+ int tick = e.tick();
+
+ // Changed by T356. Do not discard events belonging to clone parts,
+ // at least not yet. A later clone might have a longer,
+ // fully accommodating part length!
+ //if ((tick < 0) || (tick >= (int) lenTick())) {
+ if ((tick < 0) || ( id == -1 && !clone && (tick >= (int)lenTick()) ))
+ {
+ //printf("Part::read: warning: event not in part: %d - %d -%d, discarded\n",
+ printf("Part::read: warning: event at tick:%d not in part:%s, discarded\n",
+ tick, name().latin1());
+ }
+ else {
+ _events->add(e);
+*/
+
+
+ /*
+ // TODO: This should NOT be done here since the event list
+ // might be deleted below. Since after reading a part it
+ // likely (always?) that (msg)AddPart() or (msg)ChangePart()
+ // will be called (must check if they're ever called BEFORE
+ // Part::read), then those routines will take care of it,
+ // they are already coded to do so.
+ // Note the redundancy of doing it here AND (msg)Add/ChangePart !
+ // Try to eliminate this section altogether by verifying that
+ // (msg)Add/ChangePart (or one of the other routines which add port
+ // controller values) is always called after Part::read...
+ if (e.type() == Controller) {
+ MidiTrack* mt = (MidiTrack*)_track;
+ int channel = mt->outChannel();
+ MidiPort* mp = &midiPorts[mt->outPort()];
+ // tick is relative to part, controller needs an absolute value hence
+ // part offset is added. If newPartOffset was given we use that instead of
+ // the recorded offset!
+ if (!newPartOffset)
+ newPartOffset=this->tick();
+
+ int ctl = e.dataA();
+ if(mt->type() == Track::DRUM)
+ {
+ // Is it a drum controller event, according to the track port's instrument?
+ MidiController* mc = mp->drumController(ctl);
+ if(mc)
+ {
+ int note = ctl & 0x7f;
+ ctl &= ~0xff;
+ channel = drumMap[note].channel;
+ mp = &midiPorts[drumMap[note].port];
+ ctl |= drumMap[note].anote;
+ }
+ }
+
+ // Removed by T356
+ // check if controller exists
+ //if (mp->hwCtrlState(channel, e.dataA()) == CTRL_VAL_UNKNOWN) {
+ // mp->addManagedController(channel, e.dataA());
+ // }
+
+ // Changed by T356
+ // add controller value
+ //mp->setCtrl(channel, tick+newPartOffset, e.dataA(), e.dataB());
+ mp->setControllerVal(channel, tick+newPartOffset, ctl, e.dataB(), this);
+ }
+ */
+/*
+ }
+ }
+ else
+ xml.unknown("Part::read");
+ break;
+ case Xml::Attribut:
+ if (tag == "cloneId")
+ id = xml.s2().toInt();
+ else if (tag == "uuid")
+ {
+ uuid_parse(xml.s2().latin1(), uuid);
+ if(!uuid_is_null(uuid))
+ uuidvalid = true;
+ }
+ else if (tag == "isclone")
+ clone = xml.s2().toInt();
+ break;
+ case Xml::TagEnd:
+ if (tag == "part")
+ {
+*/
+ /*
+ if (id != -1)
+ {
+
+ // clone part
+ if (containsEvents) {
+ // add to cloneList:
+ //ClonePart cp(_events, id);
+ ClonePart cp(this, id);
+ cloneList.push_back(cp);
+ }
+ else {
+ // replace event list with clone event
+ // list
+ for (iClone i = cloneList.begin();
+ i != cloneList.end(); ++i) {
+ if (i->id == id) {
+ delete _events;
+ //_events = (EventList*)(i->el);
+ _events = (EventList*)(i->cp->cevents());
+ _events->incRef(1);
+ _events->incARef(1);
+ //i->cp->chainClone(this);
+ chainClone((Part*)i->cp, this);
+ break;
+ }
+ }
+ }
+ */
+
+/*
+ if(id != -1)
+ {
+ // See if the part exists in the clone list.
+ // The clone list is also the copy/paste clone list.
+ // Care must be taken to ensure the list is ALWAYS EMPTY
+ // before loading or dropping parts INTO muse, because the
+ // current song parts are NOT the same as when the imported parts
+ // were created, (even if they were created from the current session,
+ // we should NOT look them up). Always back up the list, clear it,
+ // read part(s), then restore the list so that paste works after.
+ Part* cp = 0;
+ for(iClone i = cloneList.begin(); i != cloneList.end(); ++i)
+ {
+ if(i->id == id)
+ {
+ cp = (Part*)i->cp;
+ break;
+ }
+ }
+ // Was a matching part found in the clone list?
+ if(cp)
+ {
+ // Make this part a clone of that part. Use its event list...
+ delete _events;
+ _events = (EventList*)(cp->cevents());
+ _events->incRef(1);
+ _events->incARef(1);
+ chainClone(cp, this);
+ }
+ else
+ {
+ // No matching part to clone was found in the clone list.
+ // Does the part contain some events?
+ //if(containsEvents)
+ {
+ // Add the part to the clone list so that subsequent parts
+ // can look it up and clone from it...
+ ClonePart ncp(this, id);
+ cloneList.push_back(ncp);
+ }
+ // Otherwise this part has no matching part in the clone list
+ // and no events of its own. Nothing left to do, we now have
+ // a blank part with the original offset, colour etc.
+ }
+ }
+ else
+ // If a uuid was found, do the same as above. Using uuids
+ // allows foolproof rejection of copied parts not found
+ // in the clone list, particularly when copying parts from
+ // another instance of muse.
+ if(uuidvalid)
+ {
+ Part* cp = 0;
+ for(iClone i = cloneList.begin(); i != cloneList.end(); ++i)
+ {
+ if(uuid_compare(uuid, i->uuid) == 0)
+ {
+ cp = (Part*)i->cp;
+ break;
+ }
+ }
+ // If a matching part was found, and we want to paste to the original track...
+ if(cp && !toTrack)
+ {
+ // Make sure the track exists (has not been deleted).
+ if((cp->track()->isMidiTrack() && song->midis()->find(cp->track()) != song->midis()->end()) ||
+ (cp->track()->type() == Track::WAVE && song->waves()->find(cp->track()) != song->waves()->end()))
+ setTrack(cp->track());
+ }
+ // Was a matching part found in the clone list, and was it
+ // originally a clone part?
+ if(cp && clone)
+ {
+ // Make this part a clone of that part. Use its event list...
+ delete _events;
+ _events = (EventList*)(cp->cevents());
+ _events->incRef(1);
+ _events->incARef(1);
+ // Chain the clone.
+ // Use the slower function which makes sure it chains to a part
+ // within a valid (non-deleted) track.
+ //chainClone(cp, this);
+ chainClone(this);
+ }
+ else
+ {
+ // No matching part to clone was found in the clone list.
+ // Does the part contain some events?
+ //if(containsEvents)
+ {
+ // Add the part to the clone list so that subsequent parts
+ // can look it up and clone from it...
+ ClonePart ncp(this);
+ // New ClonePart creates its own uuid, but we need to replace it.
+ uuid_copy(ncp.uuid, uuid);
+ cloneList.push_back(ncp);
+ }
+ }
+ }
+ return;
+ }
+ default:
+ break;
+ }
+ }
+ }
+*/
+
+//---------------------------------------------------------
+// writeFont
+//---------------------------------------------------------
+
+void Song::writeFont(int level, Xml& xml, const char* name,
+ const QFont& font) const
+ {
+ xml.nput(level, "<%s family=\"%s\" size=\"%d\"",
+ //name, font.family().latin1(), font.pointSize());
+ name, Xml::xmlString(font.family()).latin1(), font.pointSize());
+ if (font.weight() != QFont::Normal)
+ xml.nput(" weight=\"%d\"", font.weight());
+ if (font.italic())
+ xml.nput(" italic=\"1\"");
+ xml.nput(" />\n");
+ }
+
+//---------------------------------------------------------
+// readFont
+//---------------------------------------------------------
+
+QFont Song::readFont(Xml& xml, const char* name)
+ {
+ QFont f;
+ for (;;) {
+ Xml::Token token = xml.parse();
+ switch (token) {
+ case Xml::Error:
+ case Xml::End:
+ return f;
+ case Xml::TagStart:
+ xml.unknown("readFont");
+ break;
+ case Xml::Attribut:
+ if (xml.s1() == "family")
+ f.setFamily(xml.s2());
+ else if (xml.s1() == "size")
+ f.setPointSize(xml.s2().toInt());
+ else if (xml.s1() == "weight")
+ f.setWeight(xml.s2().toInt());
+ else if (xml.s1() == "italic")
+ f.setItalic(xml.s2().toInt());
+ break;
+ case Xml::TagEnd:
+ if (xml.s1() == name)
+ return f;
+ default:
+ break;
+ }
+ }
+ return f;
+ }
+
+//---------------------------------------------------------
+// readPart
+//---------------------------------------------------------
+
+Part* MusE::readPart(Xml& xml)
+ {
+ Part* part = 0;
+ for (;;) {
+ Xml::Token token = xml.parse();
+ const QString& tag = xml.s1();
+ switch (token) {
+ case Xml::Error:
+ case Xml::End:
+ return part;
+ case Xml::Text:
+ {
+ int trackIdx, partIdx;
+ sscanf(tag.latin1(), "%d:%d", &trackIdx, &partIdx);
+ Track* track = song->tracks()->index(trackIdx);
+ if (track)
+ part = track->parts()->find(partIdx);
+ }
+ break;
+ case Xml::TagStart:
+ xml.unknown("readPart");
+ break;
+ case Xml::TagEnd:
+ if (tag == "part")
+ return part;
+ default:
+ break;
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// readToplevels
+//---------------------------------------------------------
+
+void MusE::readToplevels(Xml& xml)
+ {
+ PartList* pl = new PartList;
+ 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 == "part") {
+ Part* part = readPart(xml);
+ if (part)
+ pl->add(part);
+ }
+ else if (tag == "pianoroll") {
+ // p3.3.34
+ // Do not open if there are no parts.
+ // Had bogus '-1' part index for list edit in med file,
+ // causing list edit to segfault on song load.
+ // Somehow that -1 was put there on write, because the
+ // current part didn't exist anymore, so no index number
+ // could be found for it on write. Watching... may be fixed.
+ // But for now be safe for all the top levels...
+ if(!pl->empty())
+ {
+
+ startPianoroll(pl);
+ toplevels.back().cobject()->readStatus(xml);
+ pl = new PartList;
+ }
+ }
+ else if (tag == "drumedit") {
+ if(!pl->empty())
+ {
+ startDrumEditor(pl);
+ toplevels.back().cobject()->readStatus(xml);
+ pl = new PartList;
+ }
+ }
+ else if (tag == "listeditor") {
+ if(!pl->empty())
+ {
+ startListEditor(pl);
+ toplevels.back().cobject()->readStatus(xml);
+ pl = new PartList;
+ }
+ }
+ else if (tag == "master") {
+ startMasterEditor();
+ toplevels.back().cobject()->readStatus(xml);
+ }
+ else if (tag == "lmaster") {
+ startLMasterEditor();
+ toplevels.back().cobject()->readStatus(xml);
+ }
+ else if (tag == "marker") {
+ showMarker(true);
+ toplevels.back().cobject()->readStatus(xml);
+ }
+ else if (tag == "waveedit") {
+ if(!pl->empty())
+ {
+ startWaveEditor(pl);
+ toplevels.back().cobject()->readStatus(xml);
+ pl = new PartList;
+ }
+ }
+ else if (tag == "cliplist") {
+ startClipList();
+ toplevels.back().cobject()->readStatus(xml);
+ }
+ else
+ xml.unknown("MusE");
+ break;
+ case Xml::Attribut:
+ break;
+ case Xml::TagEnd:
+ if (tag == "toplevels") {
+ delete pl;
+ return;
+ }
+ default:
+ break;
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// readCtrl
+//---------------------------------------------------------
+
+void MusE::readCtrl(Xml&, int /*prt*/, int /*channel*/)
+ {
+#if 0
+ ChannelState* iState = midiPorts[prt].iState(channel);
+
+ int idx = 0;
+ int val = -1;
+
+ for (;;) {
+ Xml::Token token = xml.parse();
+ switch (token) {
+ case Xml::Error:
+ case Xml::End:
+ return;
+ case Xml::TagStart:
+ xml.unknown("readCtrl");
+ break;
+ case Xml::Attribut:
+ if (xml.s1() == "idx")
+ idx = xml.s2().toInt();
+ else if (xml.s1() == "val")
+ val = xml.s2().toInt();
+ break;
+ case Xml::TagEnd:
+ if (xml.s1() == "ctrl") {
+ iState->controller[idx] = val;
+// printf("%d %d ctrl %d val %d\n", prt, channel, idx, val);
+ return;
+ }
+ default:
+ break;
+ }
+ }
+#endif
+ }
+
+//---------------------------------------------------------
+// readMidichannel
+//---------------------------------------------------------
+
+void MusE::readMidichannel(Xml& xml, int prt)
+ {
+ int channel = 0;
+// MidiPort* port = &midiPorts[prt];
+
+ 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 == "pitch") {
+//TODO port->setCtrl(channel, 0, CTRL_PITCH, xml.parseInt());
+ }
+ else if (tag == "program") {
+//TODO port->setCtrl(channel, 0, CTRL_PROGRAM, xml.parseInt());
+ }
+ else if (tag == "ctrl")
+ readCtrl(xml, prt, channel);
+ else {
+ xml.unknown("readMidichannel");
+ }
+ break;
+ case Xml::Attribut:
+ if (tag == "ch") {
+ channel = xml.s2().toInt();
+ }
+ break;
+ case Xml::TagEnd:
+ if (tag == "midichannel")
+ return;
+ default:
+ break;
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// readMidiport
+//---------------------------------------------------------
+
+void MusE::readMidiport(Xml& xml)
+ {
+ int port = 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 == "midichannel")
+ readMidichannel(xml, port);
+ else {
+ xml.unknown("readMidiport");
+ }
+ break;
+ case Xml::Attribut:
+ if (tag == "port") {
+ port = xml.s2().toInt();
+ }
+ break;
+ case Xml::TagEnd:
+ if (tag == "midiport") {
+ return;
+ }
+ default:
+ break;
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// readMarker
+//---------------------------------------------------------
+
+void Song::readMarker(Xml& xml)
+ {
+ Marker m;
+ m.read(xml);
+ _markerList->add(m);
+ }
+
+//---------------------------------------------------------
+// read
+//---------------------------------------------------------
+
+void Song::read(Xml& xml)
+ {
+ cloneList.clear();
+ for (;;) {
+ Xml::Token token;
+ token = xml.parse();
+ const QString& tag = xml.s1();
+ switch (token) {
+ case Xml::Error:
+ case Xml::End:
+ return;
+ case Xml::TagStart:
+ if (tag == "master")
+ setMasterFlag(xml.parseInt());
+ else if (tag == "info")
+ songInfoStr = xml.parse1();
+ else if (tag == "loop")
+ setLoop(xml.parseInt());
+ else if (tag == "punchin")
+ setPunchin(xml.parseInt());
+ else if (tag == "punchout")
+ setPunchout(xml.parseInt());
+ else if (tag == "record")
+ setRecord(xml.parseInt());
+ else if (tag == "solo")
+ soloFlag = xml.parseInt();
+ else if (tag == "type")
+ _mtype = MType(xml.parseInt());
+ else if (tag == "recmode")
+ _recMode = xml.parseInt();
+ else if (tag == "cycle")
+ _cycleMode = xml.parseInt();
+ else if (tag == "click")
+ setClick(xml.parseInt());
+ else if (tag == "quantize")
+ _quantize = xml.parseInt();
+ else if (tag == "len")
+ _len = xml.parseInt();
+ else if (tag == "follow")
+ _follow = FollowMode(xml.parseInt());
+ else if (tag == "tempolist") {
+ tempomap.read(xml);
+ }
+ else if (tag == "siglist")
+ sigmap.read(xml);
+ else if (tag == "miditrack") {
+ MidiTrack* track = new MidiTrack();
+ track->read(xml);
+ insertTrack0(track, -1);
+ }
+ else if (tag == "drumtrack") {
+ MidiTrack* track = new MidiTrack();
+ track->setType(Track::DRUM);
+ track->read(xml);
+ insertTrack0(track, -1);
+ }
+ else if (tag == "wavetrack") {
+ WaveTrack* track = new WaveTrack();
+ track->read(xml);
+ insertTrack0(track,-1);
+ // Now that the track has been added to the lists in insertTrack2(),
+ // OSC can find the track and its plugins, and start their native guis if required...
+ track->showPendingPluginNativeGuis();
+ }
+ else if (tag == "AudioInput") {
+ AudioInput* track = new AudioInput();
+ track->read(xml);
+ insertTrack0(track,-1);
+ track->showPendingPluginNativeGuis();
+ }
+ else if (tag == "AudioOutput") {
+ AudioOutput* track = new AudioOutput();
+ track->read(xml);
+ insertTrack0(track,-1);
+ track->showPendingPluginNativeGuis();
+ }
+ else if (tag == "AudioGroup") {
+ AudioGroup* track = new AudioGroup();
+ track->read(xml);
+ insertTrack0(track,-1);
+ track->showPendingPluginNativeGuis();
+ }
+ else if (tag == "AudioAux") {
+ AudioAux* track = new AudioAux();
+ track->read(xml);
+ insertTrack0(track,-1);
+ track->showPendingPluginNativeGuis();
+ }
+ else if (tag == "SynthI") {
+ SynthI* track = new SynthI();
+ track->read(xml);
+ // Done in SynthI::read()
+ // insertTrack(track,-1);
+ //track->showPendingPluginNativeGuis();
+ }
+ else if (tag == "Route") {
+ readRoute(xml);
+ }
+ else if (tag == "marker")
+ readMarker(xml);
+ else if (tag == "globalPitchShift")
+ _globalPitchShift = xml.parseInt();
+ else if (tag == "automation")
+ automation = xml.parseInt();
+ else if (tag == "cpos") {
+ int pos = xml.parseInt();
+ Pos p(pos, true);
+ setPos(Song::CPOS, p, false, false, false);
+ }
+ else if (tag == "lpos") {
+ int pos = xml.parseInt();
+ Pos p(pos, true);
+ setPos(Song::LPOS, p, false, false, false);
+ }
+ else if (tag == "rpos") {
+ int pos = xml.parseInt();
+ Pos p(pos, true);
+ setPos(Song::RPOS, p, false, false, false);
+ }
+ else if (tag == "drummap")
+ readDrumMap(xml, false);
+ else
+ xml.unknown("Song");
+ break;
+ case Xml::Attribut:
+ break;
+ case Xml::TagEnd:
+ if (tag == "song") {
+ return;
+ }
+ default:
+ break;
+ }
+ }
+ dirty = false;
+
+ // Since cloneList is also used for copy/paste operations,
+ // clear the copy clone list again.
+ cloneList.clear();
+ }
+
+//---------------------------------------------------------
+// read
+// read song
+//---------------------------------------------------------
+
+void MusE::read(Xml& xml, bool skipConfig)
+ {
+ bool skipmode = true;
+ for (;;) {
+ Xml::Token token = xml.parse();
+ const QString& tag = xml.s1();
+ switch (token) {
+ case Xml::Error:
+ case Xml::End:
+ return;
+ case Xml::TagStart:
+ if (skipmode && tag == "muse")
+ skipmode = false;
+ else if (skipmode)
+ break;
+ else if (tag == "configuration")
+ if (skipConfig)
+ //xml.skip(tag);
+ readConfiguration(xml,true /* only read sequencer settings */);
+ else
+ readConfiguration(xml, false);
+ else if (tag == "song")
+ {
+ song->read(xml);
+ audio->msgUpdateSoloStates();
+ }
+ else if (tag == "midiport")
+ readMidiport(xml);
+ else if (tag == "Controller") { // obsolete
+ MidiController* ctrl = new MidiController;
+ ctrl->read(xml);
+ delete ctrl;
+ }
+ else if (tag == "mplugin")
+ readStatusMidiInputTransformPlugin(xml);
+ else if (tag == "toplevels")
+ readToplevels(xml);
+ else
+ xml.unknown("muse");
+ break;
+ case Xml::Attribut:
+ if (tag == "version") {
+ int major = xml.s2().section('.', 0, 0).toInt();
+ int minor = xml.s2().section('.', 1, 1).toInt();
+ xml.setVersion(major, minor);
+ }
+ break;
+ case Xml::TagEnd:
+ if (!skipmode && tag == "muse")
+ return;
+ default:
+ break;
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// write
+//---------------------------------------------------------
+
+void Song::write(int level, Xml& xml) const
+ {
+ xml.tag(level++, "song");
+ xml.strTag(level, "info", songInfoStr);
+ xml.intTag(level, "automation", automation);
+ xml.intTag(level, "cpos", song->cpos());
+ xml.intTag(level, "rpos", song->rpos());
+ xml.intTag(level, "lpos", song->lpos());
+ xml.intTag(level, "master", _masterFlag);
+ xml.intTag(level, "loop", loopFlag);
+ xml.intTag(level, "punchin", punchinFlag);
+ xml.intTag(level, "punchout", punchoutFlag);
+ xml.intTag(level, "record", recordFlag);
+ xml.intTag(level, "solo", soloFlag);
+ xml.intTag(level, "type", _mtype);
+ xml.intTag(level, "recmode", _recMode);
+ xml.intTag(level, "cycle", _cycleMode);
+ xml.intTag(level, "click", _click);
+ xml.intTag(level, "quantize", _quantize);
+ xml.intTag(level, "len", _len);
+ xml.intTag(level, "follow", _follow);
+ if (_globalPitchShift)
+ xml.intTag(level, "globalPitchShift", _globalPitchShift);
+
+ // Make a backup of the current clone list, to retain any 'copy' items,
+ // so that pasting works properly after.
+ CloneList copyCloneList = cloneList;
+ cloneList.clear();
+
+ // write tracks
+ for (ciTrack i = _tracks.begin(); i != _tracks.end(); ++i)
+ (*i)->write(level, xml);
+
+ // write routing
+ for (ciTrack i = _tracks.begin(); i != _tracks.end(); ++i) {
+
+ // p3.3.38 Changed
+ //if ((*i)->isMidiTrack())
+ // continue;
+ //WaveTrack* track = (WaveTrack*)(*i);
+ //track->writeRouting(level, xml);
+
+ (*i)->writeRouting(level, xml);
+ }
+
+ // Write midi device routing.
+ for (iMidiDevice i = midiDevices.begin(); i != midiDevices.end(); ++i) {
+ //MidiJackDevice* mjd = dynamic_cast<MidiJackDevice*>(*i);
+ //if (!mjd)
+ // continue;
+ //mjd->writeRouting(level, xml);
+ (*i)->writeRouting(level, xml);
+ }
+
+ // p3.3.49 Write midi port routing.
+ for (int i = 0; i < MIDI_PORTS; ++i) {
+ midiPorts[i].writeRouting(level, xml);
+ }
+
+ tempomap.write(level, xml);
+ sigmap.write(level, xml);
+ _markerList->write(level, xml);
+
+ writeDrumMap(level, xml, false);
+ xml.tag(level, "/song");
+
+ // Restore backup of the clone list, to retain any 'copy' items,
+ // so that pasting works properly after.
+ cloneList.clear();
+ cloneList = copyCloneList;
+ }
+
+//---------------------------------------------------------
+// write
+// write song
+//---------------------------------------------------------
+
+void MusE::write(Xml& xml) const
+ {
+ xml.header();
+
+ int level = 0;
+ xml.tag(level++, "muse version=\"2.0\"");
+ writeConfiguration(level, xml);
+
+ writeStatusMidiInputTransformPlugins(level, xml);
+
+ song->write(level, xml);
+
+ if (!toplevels.empty()) {
+ xml.tag(level++, "toplevels");
+ for (ciToplevel i = toplevels.begin(); i != toplevels.end(); ++i) {
+ if (i->cobject()->isVisible())
+ i->cobject()->writeStatus(level, xml);
+ }
+ xml.tag(level--, "/toplevels");
+ }
+
+ xml.tag(level, "/muse");
+ }
+
diff --git a/muse2/muse/stringparam.cpp b/muse2/muse/stringparam.cpp
new file mode 100644
index 00000000..b3b5104e
--- /dev/null
+++ b/muse2/muse/stringparam.cpp
@@ -0,0 +1,113 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id: stringparam.cpp,v 1.0.0.0 2010/04/24 01:01:01 terminator356 Exp $
+//
+// Copyright (C) 1999-2010 by Werner Schweer and others
+// String parameter module added by Tim.
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the 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 <qstring.h>
+#include "stringparam.h"
+#include "xml.h"
+
+//---------------------------------------------------------
+// findKey
+//---------------------------------------------------------
+
+iStringParamMap StringParamMap::findKey(const char* key)
+{
+ iStringParamMap icm = find(std::string(key));
+ return icm;
+}
+
+//---------------------------------------------------------
+// set
+//---------------------------------------------------------
+
+void StringParamMap::set(const char* key, const char* value)
+{
+ iStringParamMap icm = find(std::string(key));
+ if(icm == end())
+ insert(std::pair<std::string, std::string>(key, value));
+ else
+ icm->second = std::string(value);
+}
+
+//---------------------------------------------------------
+// remove
+//---------------------------------------------------------
+
+void StringParamMap::remove(const char* key)
+{
+ erase(std::string(key));
+}
+
+//---------------------------------------------------------
+// read
+//---------------------------------------------------------
+
+void StringParamMap::read(Xml& xml, const QString& name)
+{
+ QString n;
+ QString value;
+
+ 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(name);
+ break;
+ case Xml::Attribut:
+ if(tag == "name")
+ n = xml.s2();
+ else
+ if(tag == "val")
+ value = xml.s2();
+ else
+ xml.unknown(name);
+ break;
+ case Xml::TagEnd:
+ if(tag == name)
+ {
+ // Add or modify the item.
+ set(n.latin1(), value.latin1());
+ return;
+ }
+ default:
+ break;
+ }
+ }
+}
+
+//---------------------------------------------------------
+// write
+//---------------------------------------------------------
+
+void StringParamMap::write(int level, Xml& xml, const char* name) const
+{
+ if(empty())
+ return;
+
+ for(ciStringParamMap r = begin(); r != end(); ++r)
+ xml.tag(level, "%s name=\"%s\" val=\"%s\"/", name, r->first.c_str(), r->second.c_str());
+}
+
diff --git a/muse2/muse/stringparam.h b/muse2/muse/stringparam.h
new file mode 100644
index 00000000..0e05c987
--- /dev/null
+++ b/muse2/muse/stringparam.h
@@ -0,0 +1,49 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id: stringparam.h,v 1.0.0.0 2010/04/24 01:01:01 terminator356 Exp $
+//
+// Copyright (C) 1999-2010 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the 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 __STRINGPARAM_H__
+#define __STRINGPARAM_H__
+
+#include <string>
+#include <map>
+
+class QString;
+class Xml;
+
+//typedef std::pair<std::string, std::string > StringParamMapItem;
+typedef std::map<std::string, std::string >::iterator iStringParamMap;
+typedef std::map<std::string, std::string >::const_iterator ciStringParamMap;
+
+class StringParamMap : public std::map<std::string, std::string >
+{
+ public:
+ void set(const char* /*key*/, const char* /*value*/);
+ void remove(const char* /*key*/);
+
+ iStringParamMap findKey(const char* /*key*/);
+ //int index(char* /*key*/);
+
+ void read(Xml& /*xml*/, const QString& /*name*/);
+ void write(int /*level*/, Xml& /*xml*/, const char* /*name*/) const;
+};
+
+
+#endif //__STRINGPARAM_H__ \ No newline at end of file
diff --git a/muse2/muse/sync.cpp b/muse2/muse/sync.cpp
new file mode 100644
index 00000000..699b5a33
--- /dev/null
+++ b/muse2/muse/sync.cpp
@@ -0,0 +1,1380 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: sync.cpp,v 1.6.2.12 2009/06/20 22:20:41 terminator356 Exp $
+//
+// (C) Copyright 2003 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include <cmath>
+#include "sync.h"
+#include "song.h"
+#include "utils.h"
+#include "midiport.h"
+#include "mididev.h"
+#include "globals.h"
+#include "midiseq.h"
+#include "audio.h"
+#include "audiodev.h"
+#include "gconfig.h"
+#include "xml.h"
+#include "midi.h"
+
+//int rxSyncPort = -1; // receive from all ports
+//int txSyncPort = 1;
+//int rxDeviceId = 0x7f; // any device
+//int txDeviceId = 0x7f; // any device
+//MidiSyncPort midiSyncPorts[MIDI_PORTS];
+int volatile curMidiSyncInPort = -1;
+
+bool debugSync = true;
+
+int mtcType = 1;
+MTC mtcOffset;
+BValue extSyncFlag(0, "extSync"); // false - MASTER, true - SLAVE
+//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;
+BValue useJackTransport(0,"useJackTransport");
+bool volatile jackTransportMaster = 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?
+
+// p3.3.28
+static bool playPendingFirstClock = false;
+unsigned int syncSendFirstClockDelay = 1; // In milliseconds.
+//static int lastStoppedBeat = 0;
+static unsigned int curExtMidiSyncTick = 0;
+unsigned int volatile lastExtMidiSyncTick = 0;
+double volatile curExtMidiSyncTime = 0.0;
+double volatile lastExtMidiSyncTime = 0.0;
+
+// Not used yet.
+// static bool mcStart = false;
+// static int mcStartTick;
+
+// p3.3.25
+// From the "Introduction to the Volatile Keyword" at Embedded dot com
+/* A variable should be declared volatile whenever its value could change unexpectedly.
+ ... <such as> global variables within a multi-threaded application
+ ... So all shared global variables should be declared volatile */
+unsigned int volatile midiExtSyncTicks = 0;
+
+//---------------------------------------------------------
+// MidiSyncInfo
+//---------------------------------------------------------
+
+MidiSyncInfo::MidiSyncInfo()
+{
+ _port = -1;
+ _idOut = 127;
+ _idIn = 127;
+ _sendMC = false;
+ _sendMRT = false;
+ _sendMMC = false;
+ _sendMTC = false;
+ _recMC = false;
+ _recMRT = false;
+ _recMMC = false;
+ _recMTC = false;
+
+ _lastClkTime = 0.0;
+ _lastTickTime = 0.0;
+ _lastMRTTime = 0.0;
+ _lastMMCTime = 0.0;
+ _lastMTCTime = 0.0;
+ _clockTrig = false;
+ _tickTrig = false;
+ _MRTTrig = false;
+ _MMCTrig = false;
+ _MTCTrig = false;
+ _clockDetect = false;
+ _tickDetect = false;
+ _MRTDetect = false;
+ _MMCDetect = false;
+ _MTCDetect = false;
+ _recMTCtype = 0;
+ _recRewOnStart = true;
+ //_sendContNotStart = false;
+ _actDetectBits = 0;
+ for(int i = 0; i < MIDI_CHANNELS; ++i)
+ {
+ _lastActTime[i] = 0.0;
+ _actTrig[i] = false;
+ _actDetect[i] = false;
+ }
+}
+
+//---------------------------------------------------------
+// operator =
+//---------------------------------------------------------
+
+MidiSyncInfo& MidiSyncInfo::operator=(const MidiSyncInfo &sp)
+{
+ //_port = sp._port;
+
+ copyParams(sp);
+
+ _lastClkTime = sp._lastClkTime;
+ _lastTickTime = sp._lastTickTime;
+ _lastMRTTime = sp._lastMRTTime;
+ _lastMMCTime = sp._lastMMCTime;
+ _lastMTCTime = sp._lastMTCTime;
+ _clockTrig = sp._clockTrig;
+ _tickTrig = sp._tickTrig;
+ _MRTTrig = sp._MRTTrig;
+ _MMCTrig = sp._MMCTrig;
+ _MTCTrig = sp._MTCTrig;
+ _clockDetect = sp._clockDetect;
+ _tickDetect = sp._tickDetect;
+ _MRTDetect = sp._MRTDetect;
+ _MMCDetect = sp._MMCDetect;
+ _MTCDetect = sp._MTCDetect;
+ _recMTCtype = sp._recMTCtype;
+ for(int i = 0; i < MIDI_CHANNELS; ++i)
+ {
+ _lastActTime[i] = sp._lastActTime[i];
+ _actTrig[i] = sp._actTrig[i];
+ _actDetect[i] = sp._actDetect[i];
+ }
+ return *this;
+}
+
+//---------------------------------------------------------
+// copyParams
+//---------------------------------------------------------
+
+MidiSyncInfo& MidiSyncInfo::copyParams(const MidiSyncInfo &sp)
+{
+ //_port = sp._port;
+
+ _idOut = sp._idOut;
+ _idIn = sp._idIn;
+ _sendMC = sp._sendMC;
+ _sendMRT = sp._sendMRT;
+ _sendMMC = sp._sendMMC;
+ _sendMTC = sp._sendMTC;
+ setMCIn(sp._recMC);
+ _recMRT = sp._recMRT;
+ _recMMC = sp._recMMC;
+ _recMTC = sp._recMTC;
+ _recRewOnStart = sp._recRewOnStart;
+ //_sendContNotStart = sp._sendContNotStart;
+ return *this;
+}
+
+//---------------------------------------------------------
+// setTime
+//---------------------------------------------------------
+
+void MidiSyncInfo::setTime()
+{
+ // Note: CurTime() makes a system call to gettimeofday(),
+ // which apparently can be slow in some cases. So I avoid calling this function
+ // too frequently by calling it (at the heartbeat rate) in Song::beat(). T356
+ double t = curTime();
+
+ if(_clockTrig)
+ {
+ _clockTrig = false;
+ _lastClkTime = t;
+ }
+ else
+ if(_clockDetect && (t - _lastClkTime >= 1.0)) // Set detect indicator timeout to about 1 second.
+ {
+ _clockDetect = false;
+ // Give up the current midi sync in port number if we took it...
+ if(curMidiSyncInPort == _port)
+ curMidiSyncInPort = -1;
+ }
+
+ if(_tickTrig)
+ {
+ _tickTrig = false;
+ _lastTickTime = t;
+ }
+ else
+ if(_tickDetect && (t - _lastTickTime) >= 1.0) // Set detect indicator timeout to about 1 second.
+ _tickDetect = false;
+
+ if(_MRTTrig)
+ {
+ _MRTTrig = false;
+ _lastMRTTime = t;
+ }
+ else
+ if(_MRTDetect && (t - _lastMRTTime) >= 1.0) // Set detect indicator timeout to about 1 second.
+ {
+ _MRTDetect = false;
+ // Give up the current midi sync in port number if we took it...
+ //if(curMidiSyncInPort == _port)
+ // curMidiSyncInPort = -1;
+ }
+
+ if(_MMCTrig)
+ {
+ _MMCTrig = false;
+ _lastMMCTime = t;
+ }
+ else
+ if(_MMCDetect && (t - _lastMMCTime) >= 1.0) // Set detect indicator timeout to about 1 second.
+ {
+ _MMCDetect = false;
+ // Give up the current midi sync in port number if we took it...
+ //if(curMidiSyncInPort == _port)
+ // curMidiSyncInPort = -1;
+ }
+
+ if(_MTCTrig)
+ {
+ _MTCTrig = false;
+ _lastMTCTime = t;
+ }
+ else
+ if(_MTCDetect && (t - _lastMTCTime) >= 1.0) // Set detect indicator timeout to about 1 second.
+ {
+ _MTCDetect = false;
+ // Give up the current midi sync in port number if we took it...
+ if(curMidiSyncInPort == _port)
+ curMidiSyncInPort = -1;
+ }
+
+ for(int i = 0; i < MIDI_CHANNELS; i++)
+ {
+ if(_actTrig[i])
+ {
+ _actTrig[i] = false;
+ _lastActTime[i] = t;
+ }
+ else
+ if(_actDetect[i] && (t - _lastActTime[i]) >= 1.0) // Set detect indicator timeout to about 1 second.
+ {
+ _actDetect[i] = false;
+ _actDetectBits &= ~bitShiftLU[i];
+ }
+ }
+}
+
+//---------------------------------------------------------
+// setMCIn
+//---------------------------------------------------------
+
+void MidiSyncInfo::setMCIn(const bool v)
+{
+ _recMC = v;
+ // If sync receive was turned off, clear the current midi sync in port number so another port can grab it.
+ if(!_recMC && _port != -1 && curMidiSyncInPort == _port)
+ curMidiSyncInPort = -1;
+}
+
+//---------------------------------------------------------
+// setMRTIn
+//---------------------------------------------------------
+
+void MidiSyncInfo::setMRTIn(const bool v)
+{
+ _recMRT = v;
+ // If sync receive was turned off, clear the current midi sync in port number so another port can grab it.
+ //if(!_recMRT && _port != -1 && curMidiSyncInPort == _port)
+ // curMidiSyncInPort = -1;
+}
+
+//---------------------------------------------------------
+// setMMCIn
+//---------------------------------------------------------
+
+void MidiSyncInfo::setMMCIn(const bool v)
+{
+ _recMMC = v;
+ // If sync receive was turned off, clear the current midi sync in port number so another port can grab it.
+ //if(!_recMMC && _port != -1 && curMidiSyncInPort == _port)
+ // curMidiSyncInPort = -1;
+}
+
+//---------------------------------------------------------
+// setMTCIn
+//---------------------------------------------------------
+
+void MidiSyncInfo::setMTCIn(const bool v)
+{
+ _recMTC = v;
+ // If sync receive was turned off, clear the current midi sync in port number so another port can grab it.
+ if(!_recMTC && _port != -1 && curMidiSyncInPort == _port)
+ curMidiSyncInPort = -1;
+}
+
+//---------------------------------------------------------
+// trigMCSyncDetect
+//---------------------------------------------------------
+
+void MidiSyncInfo::trigMCSyncDetect()
+{
+ _clockDetect = true;
+ _clockTrig = true;
+ // Set the current midi sync in port number if it's not taken...
+ if(_recMC && curMidiSyncInPort == -1)
+ curMidiSyncInPort = _port;
+}
+
+//---------------------------------------------------------
+// trigTickDetect
+//---------------------------------------------------------
+
+void MidiSyncInfo::trigTickDetect()
+{
+ _tickDetect = true;
+ _tickTrig = true;
+}
+
+//---------------------------------------------------------
+// trigMRTDetect
+//---------------------------------------------------------
+
+void MidiSyncInfo::trigMRTDetect()
+{
+ _MRTDetect = true;
+ _MRTTrig = true;
+ // Set the current midi sync in port number if it's not taken...
+ //if(_recMRT && curMidiSyncInPort == -1)
+ // curMidiSyncInPort = _port;
+}
+
+//---------------------------------------------------------
+// trigMMCDetect
+//---------------------------------------------------------
+
+void MidiSyncInfo::trigMMCDetect()
+{
+ _MMCDetect = true;
+ _MMCTrig = true;
+ // Set the current midi sync in port number if it's not taken...
+ //if(_recMMC && curMidiSyncInPort == -1)
+ // curMidiSyncInPort = _port;
+}
+
+//---------------------------------------------------------
+// trigMTCDetect
+//---------------------------------------------------------
+
+void MidiSyncInfo::trigMTCDetect()
+{
+ _MTCDetect = true;
+ _MTCTrig = true;
+ // Set the current midi sync in port number if it's not taken...
+ if(_recMTC && curMidiSyncInPort == -1)
+ curMidiSyncInPort = _port;
+}
+
+//---------------------------------------------------------
+// actDetect
+//---------------------------------------------------------
+
+bool MidiSyncInfo::actDetect(const int ch) const
+{
+ if(ch < 0 || ch >= MIDI_CHANNELS)
+ return false;
+
+ return _actDetect[ch];
+}
+
+//---------------------------------------------------------
+// trigActDetect
+//---------------------------------------------------------
+
+void MidiSyncInfo::trigActDetect(const int ch)
+{
+ if(ch < 0 || ch >= MIDI_CHANNELS)
+ return;
+
+ _actDetectBits |= bitShiftLU[ch];
+ _actDetect[ch] = true;
+ _actTrig[ch] = true;
+}
+
+//---------------------------------------------------------
+// read
+//---------------------------------------------------------
+
+void MidiSyncInfo::read(Xml& xml)
+ {
+ 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 == "idOut")
+ _idOut = xml.parseInt();
+ else if (tag == "idIn")
+ _idIn = xml.parseInt();
+ else if (tag == "sendMC")
+ _sendMC = xml.parseInt();
+ else if (tag == "sendMRT")
+ _sendMRT = xml.parseInt();
+ else if (tag == "sendMMC")
+ _sendMMC = xml.parseInt();
+ else if (tag == "sendMTC")
+ _sendMTC = xml.parseInt();
+ //else if (tag == "sendContNotStart")
+ // _sendContNotStart = xml.parseInt();
+ else if (tag == "recMC")
+ _recMC = xml.parseInt();
+ else if (tag == "recMRT")
+ _recMRT = xml.parseInt();
+ else if (tag == "recMMC")
+ _recMMC = xml.parseInt();
+ else if (tag == "recMTC")
+ _recMTC = xml.parseInt();
+ else if (tag == "recRewStart")
+ _recRewOnStart = xml.parseInt();
+ else
+ xml.unknown("midiSyncInfo");
+ break;
+ case Xml::TagEnd:
+ if (tag == "midiSyncInfo")
+ return;
+ default:
+ break;
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// write
+//---------------------------------------------------------
+
+//void MidiSyncInfo::write(int level, Xml& xml, MidiDevice* md)
+void MidiSyncInfo::write(int level, Xml& xml)
+{
+ //if(!md)
+ // return;
+
+ // All defaults? Nothing to write.
+ if(_idOut == 127 && _idIn == 127 && !_sendMC && !_sendMRT && !_sendMMC && !_sendMTC &&
+ /* !_sendContNotStart && */ !_recMC && !_recMRT && !_recMMC && !_recMTC && _recRewOnStart)
+ return;
+
+ xml.tag(level++, "midiSyncInfo");
+ //xml.intTag(level, "idx", idx);
+ //xml.intTag(level++, "midiSyncPort", idx);
+ //xml.tag(level++, "midiSyncInfo idx=\"%d\"", idx);
+
+ //xml.strTag(level, "device", md->name());
+
+ if(_idOut != 127)
+ xml.intTag(level, "idOut", _idOut);
+ if(_idIn != 127)
+ xml.intTag(level, "idIn", _idIn);
+
+ if(_sendMC)
+ xml.intTag(level, "sendMC", true);
+ if(_sendMRT)
+ xml.intTag(level, "sendMRT", true);
+ if(_sendMRT)
+ xml.intTag(level, "sendMMC", true);
+ if(_sendMTC)
+ xml.intTag(level, "sendMTC", true);
+ //if(_sendContNotStart)
+ // xml.intTag(level, "sendContNotStart", true);
+
+ if(_recMC)
+ xml.intTag(level, "recMC", true);
+ if(_recMRT)
+ xml.intTag(level, "recMRT", true);
+ if(_recMMC)
+ xml.intTag(level, "recMMC", true);
+ if(_recMTC)
+ xml.intTag(level, "recMTC", true);
+ if(!_recRewOnStart)
+ xml.intTag(level, "recRewStart", false);
+
+ xml.etag(level, "midiSyncInfo");
+}
+
+//---------------------------------------------------------
+// mmcInput
+// Midi Machine Control Input received
+//---------------------------------------------------------
+
+//void MidiSeq::mmcInput(const unsigned char* p, int n)
+void MidiSeq::mmcInput(int port, const unsigned char* p, int n)
+ {
+ if (debugSync)
+ printf("mmcInput: n:%d %02x %02x %02x %02x\n",
+ n, p[2], p[3], p[4], p[5]);
+
+ MidiPort* mp = &midiPorts[port];
+ MidiSyncInfo& msync = mp->syncInfo();
+ // Trigger MMC detect in.
+ msync.trigMMCDetect();
+ // MMC locate SMPTE time code may contain format type bits. Grab them.
+ if(p[3] == 0x44 && p[4] == 6 && p[5] == 1)
+ msync.setRecMTCtype((p[6] >> 5) & 3);
+
+ // MMC in not turned on? Forget it.
+ if(!msync.MMCIn())
+ return;
+
+ //if (!(extSyncFlag.value() && acceptMMC))
+ //if(!extSyncFlag.value())
+ // return;
+
+ switch(p[3]) {
+ case 1:
+ if (debugSync)
+ printf(" MMC: STOP\n");
+
+ playPendingFirstClock = false;
+
+ //if ((state == PLAY || state == PRECOUNT))
+ if (audio->isPlaying())
+ audio->msgPlay(false);
+ playStateExt = false;
+ alignAllTicks();
+ //stopPlay();
+ break;
+ case 2:
+ if (debugSync)
+ printf(" MMC: PLAY\n");
+ case 3:
+ if (debugSync)
+ printf(" MMC: DEFERRED PLAY\n");
+ mtcState = 0;
+ mtcValid = false;
+ mtcLost = 0;
+ mtcSync = false;
+ //startPlay();
+ alignAllTicks();
+ audio->msgPlay(true);
+ playStateExt = true;
+ break;
+
+ case 4:
+ printf("MMC: FF not implemented\n");
+ playPendingFirstClock = false;
+ break;
+ case 5:
+ printf("MMC: REWIND not implemented\n");
+ playPendingFirstClock = false;
+ break;
+ case 6:
+ printf("MMC: REC STROBE not implemented\n");
+ playPendingFirstClock = false;
+ break;
+ case 7:
+ printf("MMC: REC EXIT not implemented\n");
+ playPendingFirstClock = false;
+ break;
+ case 0xd:
+ printf("MMC: RESET not implemented\n");
+ playPendingFirstClock = false;
+ break;
+ case 0x44:
+ if (p[5] == 0) {
+ printf("MMC: LOCATE IF not implemented\n");
+ break;
+ }
+ else if (p[5] == 1) {
+ if (!checkAudioDevice()) return;
+ MTC mtc(p[6] & 0x1f, p[7], p[8], p[9], p[10]);
+ int type = (p[6] >> 5) & 3;
+ //int mmcPos = tempomap.frame2tick(lrint(mtc.time()*sampleRate));
+ //int mmcPos = lrint(mtc.time()*sampleRate);
+ int mmcPos = lrint(mtc.time(type) * sampleRate);
+
+ //Pos tp(mmcPos, true);
+ Pos tp(mmcPos, false);
+ //audioDevice->seekTransport(tp.frame());
+ audioDevice->seekTransport(tp);
+ alignAllTicks();
+ //seek(tp);
+ if (debugSync) {
+ //printf("MMC: %f %d seek ", mtc.time(), mmcPos);
+ printf("MMC: LOCATE mtc type:%d time:%lf frame:%d mtc: ", type, mtc.time(), mmcPos);
+ mtc.print();
+ printf("\n");
+ }
+ //write(sigFd, "G", 1);
+ break;
+ }
+ // fall through
+ default:
+ printf("MMC %x %x, unknown\n", p[3], p[4]); break;
+ }
+ }
+
+//---------------------------------------------------------
+// mtcInputQuarter
+// process Quarter Frame Message
+//---------------------------------------------------------
+
+//void MidiSeq::mtcInputQuarter(int, unsigned char c)
+void MidiSeq::mtcInputQuarter(int port, unsigned char c)
+ {
+ static int hour, min, sec, frame;
+
+ // p3.3.28
+ //printf("MidiSeq::mtcInputQuarter c:%h\n", c);
+
+ 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
+ int tmphour = hour;
+ int type = (hour >> 5) & 3;
+ hour &= 0x1f;
+
+ if(mtcState == 8)
+ {
+ mtcValid = (mtcLost == 0);
+ mtcState = 0;
+ mtcLost = 0;
+ if(mtcValid)
+ {
+ mtcCurTime.set(hour, min, sec, frame);
+ if(port != -1)
+ {
+ MidiPort* mp = &midiPorts[port];
+ MidiSyncInfo& msync = mp->syncInfo();
+ msync.setRecMTCtype(type);
+ msync.trigMTCDetect();
+ // Not for the current in port? External sync not turned on? MTC in not turned on? Forget it.
+ if(port == curMidiSyncInPort && extSyncFlag.value() && msync.MTCIn())
+ {
+ if(debugSync)
+ printf("MidiSeq::mtcInputQuarter hour byte:%hx\n", tmphour);
+ mtcSyncMsg(mtcCurTime, type, !mtcSync);
+ }
+ }
+ mtcSync = true;
+ }
+ }
+ else if (mtcValid && (mtcLost == 0))
+ {
+ //mtcCurTime.incQuarter();
+ mtcCurTime.incQuarter(type);
+ //mtcSyncMsg(mtcCurTime, type, false);
+ }
+ }
+
+//---------------------------------------------------------
+// mtcInputFull
+// process Frame Message
+//---------------------------------------------------------
+
+//void MidiSeq::mtcInputFull(const unsigned char* p, int n)
+void MidiSeq::mtcInputFull(int port, const unsigned char* p, int n)
+ {
+ if (debugSync)
+ printf("mtcInputFull\n");
+ //if (!extSyncFlag.value())
+ // 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;
+
+ // Added by Tim.
+ if(debugSync)
+ printf("mtcInputFull: time:%lf stime:%lf hour byte (all bits):%hx\n", mtcCurTime.time(), mtcCurTime.time(type), p[4]);
+ if(port != -1)
+ {
+ MidiPort* mp = &midiPorts[port];
+ MidiSyncInfo& msync = mp->syncInfo();
+ msync.setRecMTCtype(type);
+ msync.trigMTCDetect();
+ // MTC in not turned on? Forget it.
+ //if(extSyncFlag.value() && msync.MTCIn())
+ if(msync.MTCIn())
+ {
+ //Pos tp(lrint(mtcCurTime.time() * sampleRate), false);
+ Pos tp(lrint(mtcCurTime.time(type) * sampleRate), false);
+ audioDevice->seekTransport(tp);
+ alignAllTicks();
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// nonRealtimeSystemSysex
+//---------------------------------------------------------
+
+//void MidiSeq::nonRealtimeSystemSysex(const unsigned char* p, int n)
+void MidiSeq::nonRealtimeSystemSysex(int /*port*/, const unsigned char* p, int n)
+ {
+// 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;
+ }
+ }
+
+//---------------------------------------------------------
+// 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 (midiInputTrace)
+ printf("set song position port:%d %d\n", port, midiBeat);
+
+ //midiPorts[port].syncInfo().trigMCSyncDetect();
+ midiPorts[port].syncInfo().trigMRTDetect();
+
+ //if (!extSyncFlag.value())
+ // External sync not on? Clock in not turned on?
+ //if(!extSyncFlag.value() || !midiPorts[port].syncInfo().MCIn())
+ if(!extSyncFlag.value() || !midiPorts[port].syncInfo().MRTIn())
+ return;
+
+ // Re-transmit song position to other devices if clock out turned on.
+ for(int p = 0; p < MIDI_PORTS; ++p)
+ //if(p != port && midiPorts[p].syncInfo().MCOut())
+ if(p != port && midiPorts[p].syncInfo().MRTOut())
+ midiPorts[p].sendSongpos(midiBeat);
+
+ curExtMidiSyncTick = (config.division * midiBeat) / 4;
+ lastExtMidiSyncTick = curExtMidiSyncTick;
+
+ //Pos pos((config.division * midiBeat) / 4, true);
+ Pos pos(curExtMidiSyncTick, true);
+
+ if (!checkAudioDevice()) return;
+
+ //audioDevice->seekTransport(pos.frame());
+ audioDevice->seekTransport(pos);
+ alignAllTicks(pos.frame());
+ if (debugSync)
+ printf("setSongPosition %d\n", pos.tick());
+ }
+
+
+
+//---------------------------------------------------------
+// set all runtime variables to the "in sync" value
+//---------------------------------------------------------
+void MidiSeq::alignAllTicks(int frameOverride)
+ {
+ //printf("alignAllTicks audioDriver->framePos=%d, audio->pos().frame()=%d\n",
+ // audioDevice->framePos(), audio->pos().frame());
+ unsigned curFrame;
+ if (!frameOverride)
+ curFrame = audio->pos().frame();
+ else
+ curFrame = frameOverride;
+
+ int tempo = tempomap.tempo(0);
+
+ // use the last old values to give start values for the tripple buffering
+ int recTickSpan = recTick1 - recTick2;
+ int songTickSpan = (int)(songtick1 - songtick2); //prevent compiler warning: casting double to int
+ storedtimediffs = 0; // pretend there is no sync history
+
+ mclock2=mclock1=0.0; // set all clock values to "in sync"
+
+ recTick = (int) ((double(curFrame)/double(sampleRate)) *
+ double(config.division * 1000000.0) / double(tempo) //prevent compiler warning: casting double to int
+ );
+ songtick1 = recTick - songTickSpan;
+ if (songtick1 < 0)
+ songtick1 = 0;
+ songtick2 = songtick1 - songTickSpan;
+ if (songtick2 < 0)
+ songtick2 = 0;
+ recTick1 = recTick - recTickSpan;
+ if (recTick1 < 0)
+ recTick1 = 0;
+ recTick2 = recTick1 - recTickSpan;
+ if (recTick2 < 0)
+ recTick2 = 0;
+ if (debugSync)
+ printf("alignAllTicks curFrame=%d recTick=%d tempo=%.3f frameOverride=%d\n",curFrame,recTick,(float)((1000000.0 * 60.0)/tempo), frameOverride);
+
+ }
+
+//---------------------------------------------------------
+// realtimeSystemInput
+// real time message received
+//---------------------------------------------------------
+void MidiSeq::realtimeSystemInput(int port, int c)
+ {
+
+ 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;
+ // }
+
+ MidiPort* mp = &midiPorts[port];
+
+ // Trigger on any tick, clock, or realtime command.
+ if(c == ME_TICK) // Tick
+ mp->syncInfo().trigTickDetect();
+ else
+ if(c == ME_CLOCK) // Clock
+ mp->syncInfo().trigMCSyncDetect();
+ else
+ mp->syncInfo().trigMRTDetect(); // Other
+
+ // External sync not on? Clock in not turned on? Otherwise realtime in not turned on?
+ if(!extSyncFlag.value())
+ return;
+ if(c == ME_CLOCK)
+ {
+ if(!mp->syncInfo().MCIn())
+ return;
+ }
+ else
+ if(!mp->syncInfo().MRTIn())
+ return;
+
+
+ switch(c) {
+ case ME_CLOCK: // midi clock (24 ticks / quarter note)
+ {
+ // Not for the current in port? Forget it.
+ if(port != curMidiSyncInPort)
+ break;
+
+ // p3.3.31
+ //printf("midi clock:%f\n", curTime());
+
+ // Re-transmit clock to other devices if clock out turned on.
+ // Must be careful not to allow more than one clock input at a time.
+ // Would re-transmit mixture of multiple clocks - confusing receivers.
+ // Solution: Added curMidiSyncInPort.
+ // Maybe in MidiSeq::processTimerTick(), call sendClock for the other devices, instead of here.
+ for(int p = 0; p < MIDI_PORTS; ++p)
+ if(p != port && midiPorts[p].syncInfo().MCOut())
+ midiPorts[p].sendClock();
+
+ // p3.3.28
+ if(playPendingFirstClock)
+ {
+ playPendingFirstClock = false;
+ // Hopefully the transport will be ready by now, the seek upon start should mean the
+ // audio prefetch has already finished or at least started...
+ // Must comfirm that play does not force a complete prefetch again, but don't think so...
+ if(!audio->isPlaying())
+ audioDevice->startTransport();
+ }
+ //else
+ // This part will be run on the second and subsequent clocks, after start.
+ // Can't check audio state, might not be playing yet, we might miss some increments.
+ //if(audio->isPlaying())
+ if(playStateExt)
+ {
+ lastExtMidiSyncTime = curExtMidiSyncTime;
+ curExtMidiSyncTime = curTime();
+ int div = config.division/24;
+ midiExtSyncTicks += div;
+ lastExtMidiSyncTick = curExtMidiSyncTick;
+ curExtMidiSyncTick += div;
+ }
+
+//BEGIN : Original code:
+ /*
+ 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;
+ }
+ }
+
+ // Compare w audio if playing:
+ if (playStateExt == true ) { //audio->isPlaying() state == PLAY
+ //BEGIN standard setup:
+ recTick += config.division / 24; // The one we're syncing to
+ int tempo = tempomap.tempo(0);
+ unsigned curFrame = audio->pos().frame();
+ double songtick = (double(curFrame)/double(sampleRate)) *
+ double(config.division * 1000000.0) / double(tempo);
+
+ double scale = double(tdiff0/averagetimediff);
+ double tickdiff = songtick - ((double) recTick - 24 + scale*24.0);
+
+ //END standard setup
+ if (debugSync) {
+ 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, curFrame=%d",
+ songtick, recTick, tickdiff, song_beat, sync_beat, scale, curFrame);
+ }
+
+ //if ((mclock2 !=0.0) && (tdiff1 > 0.0) && fabs(tickdiff) > 0.5 && lastTempo != 0) {
+ if ((mclock2 !=0.0) && (tdiff1 > 0.0) && lastTempo != 0) {
+ // Interpolate:
+ double tickdiff1 = songtick1 - recTick1;
+ double tickdiff2 = songtick2 - recTick2;
+ double newtickdiff = (tickdiff1+tickdiff2)/250;
+ //tickdiff/5.0 +
+ tickdiff1/16.0 +
+ tickdiff2/24.0; //5 mins 30 secs on 116BPM, -p 512 jackd
+
+ if (newtickdiff != 0.0) {
+ int newTempo = 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));
+ //syncTempo = newTempo;
+ 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) {
+ mp->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 = 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));
+ tempomap.setTempo(0, newTempo);
+ }
+ }
+ mclock2 = mclock1;
+ mclock1 = mclock0;
+ */
+//END : Original Code
+
+//BEGIN : Using external tempo map:
+ /*
+ 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;
+ }
+ }
+
+ // Compare w audio if playing:
+ //if (playStateExt == true ) { //audio->isPlaying() state == PLAY
+ if (0) {
+ //BEGIN standard setup:
+ recTick += config.division / 24; // The one we're syncing to
+ int tempo = tempomap.tempo(0);
+ //unsigned curFrame = audio->pos().frame();
+ //double songtick = (double(curFrame)/double(sampleRate)) *
+ // double(config.division * 1000000.0) / double(tempo);
+ double songtick = tempomap.curTickExt(mclock0);
+
+ double scale = double(tdiff0/averagetimediff);
+ double tickdiff = songtick - ((double) recTick - 24 + scale*24.0);
+
+ //END standard setup
+ if (debugSync) {
+ 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, curFrame=%d averagetimediff:%.3lf",
+ songtick, recTick, tickdiff, song_beat, sync_beat, scale, audio->pos().frame(), averagetimediff);
+ }
+
+ //if ((mclock2 !=0.0) && (tdiff1 > 0.0) && fabs(tickdiff) > 0.5 && lastTempo != 0) {
+ if ((mclock2 !=0.0) && (tdiff1 > 0.0) && lastTempo != 0) {
+ // Interpolate:
+ double tickdiff1 = songtick1 - recTick1;
+ double tickdiff2 = songtick2 - recTick2;
+ double newtickdiff = (tickdiff1+tickdiff2)/250;
+ ////double newtickdiff = (tickdiff1+tickdiff2) / 10.0;
+ //double newtickdiff = tickdiff/5.0 +
+ // tickdiff1/16.0 +
+ // tickdiff2/24.0; //5 mins 30 secs on 116BPM, -p 512 jackd
+
+ if (newtickdiff != 0.0) {
+ //int newTempo = tempomap.tempo(0);
+ int newTempo = tempo;
+ //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));
+ //syncTempo = newTempo;
+ //tempomap.setTempo(0,newTempo);
+ // Don't set the last stable tempo.
+ //tempomap.setTempo(0, newTempo, false);
+ tempomap.setExtTempo(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) {
+ mp->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 = 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));
+ //tempomap.setTempo(0, newTempo);
+ // Don't set the last stable tempo.
+ //tempomap.setTempo(0, newTempo, false);
+ // tempomap.setExtTempo(newTempo);
+ // }
+
+ //double tempo0 = 24000000.0 * tdiff0;
+ //double tempo1 = 24000000.0 * tdiff1;
+ //int newTempo = int((tempo0 + tempo1) / 2.0);
+ int newTempo = int(averagetimediff * 24000000.0);
+ if(debugSync)
+ printf("setting new tempo %d = %f\n", newTempo, (float)((1000000.0 * 60.0)/newTempo));
+ tempomap.setExtTempo(newTempo);
+ }
+
+ mclock2 = mclock1;
+ mclock1 = mclock0;
+ */
+//END : Using external tempo map
+
+ }
+ break;
+ case ME_TICK: // midi tick (every 10 msec)
+ // FIXME: Unfinished? mcStartTick is uninitialized and Song::setPos doesn't set it either. Dangerous to allow this.
+ //if (mcStart) {
+ // song->setPos(0, mcStartTick);
+ // mcStart = false;
+ // return;
+ // }
+ break;
+ case ME_START: // start
+ // Re-transmit start to other devices if clock out turned on.
+ for(int p = 0; p < MIDI_PORTS; ++p)
+ //if(p != port && midiPorts[p].syncInfo().MCOut())
+ if(p != port && midiPorts[p].syncInfo().MRTOut())
+ {
+ // p3.3.31
+ // If we aren't rewinding on start, there's no point in re-sending start.
+ // Re-send continue instead, for consistency.
+ if(midiPorts[port].syncInfo().recRewOnStart())
+ midiPorts[p].sendStart();
+ else
+ midiPorts[p].sendContinue();
+ }
+ if (debugSync)
+ printf(" start\n");
+
+ // p3.3.31
+ //printf("midi start:%f\n", curTime());
+
+ if (1 /* !audio->isPlaying()*/ /*state == IDLE*/) {
+ if (!checkAudioDevice()) return;
+
+ // p3.3.31
+ // Rew on start option.
+ if(midiPorts[port].syncInfo().recRewOnStart())
+ {
+ curExtMidiSyncTick = 0;
+ lastExtMidiSyncTick = curExtMidiSyncTick;
+ //audioDevice->seekTransport(0);
+ audioDevice->seekTransport(Pos(0, false));
+ }
+
+ //unsigned curFrame = audio->curFrame();
+ //if (debugSync)
+ // printf(" curFrame=%d\n", curFrame);
+
+ alignAllTicks();
+ //if (debugSync)
+ // printf(" curFrame: %d curTick: %d tempo: %d\n", curFrame, recTick, tempomap.tempo(0));
+
+ storedtimediffs = 0;
+ for (int i=0; i<24; i++)
+ timediff[i] = 0.0;
+
+ // p3.3.26 1/23/10
+ // Changed because msgPlay calls audioDevice->seekTransport(song->cPos())
+ // and song->cPos() may not be changed to 0 yet, causing tranport not to go to 0.
+ //audio->msgPlay(true);
+ //audioDevice->startTransport();
+ // p3.3.28
+ playPendingFirstClock = true;
+
+ midiExtSyncTicks = 0;
+ playStateExt = true;
+ }
+ break;
+ case ME_CONTINUE: // continue
+ // Re-transmit continue to other devices if clock out turned on.
+ for(int p = 0; p < MIDI_PORTS; ++p)
+ //if(p != port && midiPorts[p].syncInfo().MCOut())
+ if(p != port && midiPorts[p].syncInfo().MRTOut())
+ midiPorts[p].sendContinue();
+
+ if (debugSync)
+ printf("realtimeSystemInput continue\n");
+
+ // p3.3.31
+ //printf("continue:%f\n", curTime());
+
+ if (1 /* !audio->isPlaying() */ /*state == IDLE */) {
+ //unsigned curFrame = audio->curFrame();
+ //recTick = tempomap.frame2tick(curFrame); // don't think this will work... (ml)
+ //alignAllTicks();
+
+ // p3.3.28
+ //audio->msgPlay(true);
+ // p3.3.31
+ // Begin incrementing immediately upon first clock reception.
+ playPendingFirstClock = true;
+
+ playStateExt = true;
+ }
+ break;
+ case ME_STOP: // stop
+ {
+ // p3.3.35
+ // Stop the increment right away.
+ midiExtSyncTicks = 0;
+ playStateExt = false;
+ playPendingFirstClock = false;
+
+ // Re-transmit stop to other devices if clock out turned on.
+ for(int p = 0; p < MIDI_PORTS; ++p)
+ //if(p != port && midiPorts[p].syncInfo().MCOut())
+ if(p != port && midiPorts[p].syncInfo().MRTOut())
+ midiPorts[p].sendStop();
+
+ //playPendingFirstClock = false;
+
+ //lastStoppedBeat = (audio->tickPos() * 4) / config.division;
+ //curExtMidiSyncTick = (config.division * lastStoppedBeat) / 4;
+
+ // p3.3.31
+ //printf("stop:%f\n", curTime());
+
+ if (audio->isPlaying() /*state == PLAY*/) {
+ audio->msgPlay(false);
+ //playStateExt = false;
+ }
+
+ if (debugSync)
+ printf("realtimeSystemInput stop\n");
+
+ // Just in case the process still runs a cycle or two and causes the
+ // audio tick position to increment, reset the incrementer and force
+ // the transport position to what the hardware thinks is the current position.
+ //midiExtSyncTicks = 0;
+ //Pos pos((config.division * lastStoppedBeat) / 4, true);
+ //Pos pos(curExtMidiSyncTick, true);
+ //audioDevice->seekTransport(pos);
+ }
+
+ break;
+ //case 0xfd: // unknown
+ //case ME_SENSE: // active sensing
+ //case ME_META: // system reset (reset is 0xff same enumeration as file meta event)
+ default:
+ break;
+ }
+
+ }
+
+//---------------------------------------------------------
+// mtcSyncMsg
+// process received mtc Sync
+// seekFlag - first complete mtc frame received after
+// start
+//---------------------------------------------------------
+
+void MidiSeq::mtcSyncMsg(const MTC& mtc, int type, bool seekFlag)
+ {
+ double time = mtc.time();
+ double stime = mtc.time(type);
+ if (debugSync)
+ printf("MidiSeq::mtcSyncMsg time:%lf stime:%lf seekFlag:%d\n", time, stime, seekFlag);
+
+ if (seekFlag && audio->isRunning() /*state == START_PLAY*/) {
+// int tick = tempomap.time2tick(time);
+ //state = PLAY;
+ //write(sigFd, "1", 1); // say PLAY to gui
+ if (!checkAudioDevice()) return;
+ if (debugSync)
+ printf("MidiSeq::mtcSyncMsg starting transport.\n");
+ audioDevice->startTransport();
+ return;
+ }
+
+ /*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);
+ */
+ }
+
+
diff --git a/muse2/muse/sync.h b/muse2/muse/sync.h
new file mode 100644
index 00000000..d6a08f0d
--- /dev/null
+++ b/muse2/muse/sync.h
@@ -0,0 +1,153 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: sync.h,v 1.1.1.1.2.2 2009/04/01 01:37:11 terminator356 Exp $
+//
+// (C) Copyright 2003 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __SYNC_H__
+#define __SYNC_H__
+
+#include "mtc.h"
+#include "value.h"
+#include "globaldefs.h"
+
+class Xml;
+//class MidiDevice;
+
+//class MidiSyncPort
+class MidiSyncInfo
+{
+ private:
+ int _port;
+
+ int _idOut;
+ int _idIn;
+
+ bool _sendMC;
+ bool _sendMRT;
+ bool _sendMMC;
+ bool _sendMTC;
+ bool _recMC;
+ bool _recMRT;
+ bool _recMMC;
+ bool _recMTC;
+
+ int _recMTCtype;
+
+ bool _recRewOnStart;
+ //bool _sendContNotStart;
+
+ double _lastClkTime;
+ double _lastTickTime;
+ double _lastMRTTime;
+ double _lastMMCTime;
+ double _lastMTCTime;
+ double _lastActTime[MIDI_CHANNELS];
+ bool _clockTrig;
+ bool _tickTrig;
+ bool _MRTTrig;
+ bool _MMCTrig;
+ bool _MTCTrig;
+ bool _actTrig[MIDI_CHANNELS];
+ bool _clockDetect;
+ bool _tickDetect;
+ bool _MRTDetect;
+ bool _MMCDetect;
+ bool _MTCDetect;
+ bool _actDetect[MIDI_CHANNELS];
+ int _actDetectBits;
+
+ public:
+ MidiSyncInfo();
+ MidiSyncInfo& operator= (const MidiSyncInfo &sp);
+ MidiSyncInfo& copyParams(const MidiSyncInfo &sp);
+
+ int port() const { return _port; }
+ void setPort(const int p) { _port = p; }
+
+ int idOut() const { return _idOut; }
+ int idIn() const { return _idIn; }
+ void setIdOut(const int v) { _idOut = v; }
+ void setIdIn(const int v) { _idIn = v; }
+
+ bool MCOut() const { return _sendMC; }
+ bool MRTOut() const { return _sendMRT; }
+ bool MMCOut() const { return _sendMMC; }
+ bool MTCOut() const { return _sendMTC; }
+
+ bool MCIn() const { return _recMC; }
+ bool MRTIn() const { return _recMRT; }
+ bool MMCIn() const { return _recMMC; }
+ bool MTCIn() const { return _recMTC; }
+
+ void setMCOut(const bool v) { _sendMC = v; }
+ void setMRTOut(const bool v) { _sendMRT = v; }
+ void setMMCOut(const bool v) { _sendMMC = v; }
+ void setMTCOut(const bool v) { _sendMTC = v; }
+
+ void setMCIn(const bool v);
+ void setMRTIn(const bool v);
+ void setMMCIn(const bool v);
+ void setMTCIn(const bool v);
+
+ void setTime();
+
+ bool recRewOnStart() const { return _recRewOnStart; }
+ void setRecRewOnStart(const bool v) { _recRewOnStart = v; }
+ //bool sendContNotStart() const { return _sendContNotStart; }
+ //void setSendContNotStart(const bool v) { _sendContNotStart = v; }
+
+ bool MCSyncDetect() const { return _clockDetect; }
+ void trigMCSyncDetect();
+
+ bool tickDetect() const { return _tickDetect; }
+ void trigTickDetect();
+
+ bool MTCDetect() const { return _MTCDetect; }
+ void trigMTCDetect();
+ int recMTCtype() const { return _recMTCtype; }
+ void setRecMTCtype(int t) { _recMTCtype = t; }
+
+ bool MRTDetect() const { return _MRTDetect; }
+ void trigMRTDetect();
+
+ bool MMCDetect() const { return _MMCDetect; }
+ void trigMMCDetect();
+
+ int actDetectBits() const { return _actDetectBits; }
+ bool actDetect(const int ch) const;
+ void trigActDetect(const int ch);
+
+ void read(Xml& xml);
+ //void write(int level, Xml& xml, MidiDevice* md);
+ void write(int level, Xml& xml);
+};
+
+//extern MidiSync midiSyncPorts[MIDI_PORTS];
+
+extern bool debugSync;
+
+//extern int rxSyncPort;
+//extern int txSyncPort;
+//extern int rxDeviceId;
+//extern int txDeviceId;
+
+extern int mtcType;
+extern MTC mtcOffset;
+extern BValue 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;
+extern int volatile curMidiSyncInPort;
+extern BValue useJackTransport;
+extern bool volatile jackTransportMaster;
+extern unsigned int syncSendFirstClockDelay; // In milliseconds.
+
+
+#endif
+
diff --git a/muse2/muse/synth.cpp b/muse2/muse/synth.cpp
new file mode 100644
index 00000000..352be582
--- /dev/null
+++ b/muse2/muse/synth.cpp
@@ -0,0 +1,947 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: synth.cpp,v 1.43.2.23 2009/12/15 03:39:58 terminator356 Exp $
+// (C) Copyright 2000-2003 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include "config.h"
+#include <sys/wait.h>
+#include <signal.h>
+#include <pthread.h>
+#include <unistd.h>
+#include <errno.h>
+#include <sys/mman.h>
+#include <vector>
+#include <fcntl.h>
+
+#include <qdir.h>
+#include <dlfcn.h>
+#include <q3popupmenu.h>
+
+#include "app.h"
+#include "synth.h"
+#include "xml.h"
+#include "midi.h"
+#include "midiport.h"
+#include "mididev.h"
+#include "libsynti/mess.h"
+#include "song.h"
+#include "audio.h"
+#include "event.h"
+#include "mpevent.h"
+#include "audio.h"
+#include "midiseq.h"
+#include "midictrl.h"
+//#include "stringparam.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;
+ }
+
+MidiPlayEvent MessSynthIF::receiveEvent()
+ {
+ if (_mess)
+ return _mess->receiveEvent();
+ return MidiPlayEvent();
+ }
+
+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
+//---------------------------------------------------------
+
+//static Synth* findSynth(const QString& sclass)
+static Synth* findSynth(const QString& sclass, const QString& label)
+ {
+ for (std::vector<Synth*>::iterator i = synthis.begin();
+ i != synthis.end(); ++i)
+ {
+ //if ((*i)->baseName() == sclass)
+ //if ((*i)->name() == sclass)
+ if ( ((*i)->baseName() == sclass) && (label.isEmpty() || ((*i)->name() == label)) )
+
+ return *i;
+ }
+ printf("synthi class:%s label:%s not found\n", sclass.latin1(), label.latin1());
+ return 0;
+ }
+
+//---------------------------------------------------------
+// createSynthInstance
+// create a synthesizer instance of class "label"
+//---------------------------------------------------------
+
+//static SynthI* createSynthI(const QString& sclass)
+static SynthI* createSynthInstance(const QString& sclass, const QString& label)
+ {
+ //Synth* s = findSynth(sclass);
+ Synth* s = findSynth(sclass, label);
+ SynthI* si = 0;
+ if (s) {
+ si = new SynthI();
+ QString n;
+ n.setNum(s->instances());
+ //QString instance_name = s->baseName() + "-" + n;
+ QString instance_name = s->name() + "-" + n;
+
+ if (si->initInstance(s, instance_name)) {
+ delete si;
+ return 0;
+ }
+ }
+ else
+ printf("createSynthInstance: synthi class:%s label:%s not found\n", sclass.latin1(), label.latin1());
+ return si;
+ }
+
+//---------------------------------------------------------
+// Synth
+//---------------------------------------------------------
+
+//Synth::Synth(const QFileInfo& fi)
+// : info(fi)
+//Synth::Synth(const QFileInfo& fi, QString label)
+// : info(fi), _name(label)
+Synth::Synth(const QFileInfo& fi, QString label, QString descr, QString maker, QString ver)
+ : info(fi), _name(label), _description(descr), _maker(maker), _version(ver)
+ {
+ _instances = 0;
+ }
+
+//---------------------------------------------------------
+// instantiate
+//---------------------------------------------------------
+
+//void* MessSynth::instantiate()
+void* MessSynth::instantiate(const QString& instanceName)
+ {
+ ++_instances;
+
+ //QString n;
+ //n.setNum(_instances);
+ //QString instanceName = baseName() + "-" + n;
+
+ doSetuid();
+ const char* path = info.filePath().latin1();
+
+ // load Synti dll
+ void* handle = dlopen(path, RTLD_NOW);
+ if (handle == 0) {
+ fprintf(stderr, "Synth::instantiate: dlopen(%s) failed: %s\n",
+ path, dlerror());
+ undoSetuid();
+ 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",
+ info.filePath().ascii(), txt);
+ undoSetuid();
+ return 0;
+ }
+ }
+ _descr = msynth();
+ if (_descr == 0) {
+ fprintf(stderr, "Synth::instantiate: no MESS descr found\n");
+ undoSetuid();
+ return 0;
+ }
+ Mess* mess = _descr->instantiate(sampleRate, muse, &museProject, instanceName.latin1());
+ undoSetuid();
+ return mess;
+ }
+
+//---------------------------------------------------------
+// SynthI
+//---------------------------------------------------------
+
+SynthI::SynthI()
+ : AudioTrack(AUDIO_SOFTSYNTH)
+ {
+ synthesizer = 0;
+ _sif = 0;
+ _rwFlags = 1;
+ _openFlags = 1;
+ _readEnable = false;
+ _writeEnable = false;
+
+ _curBankH = 0;
+ _curBankL = 0;
+ _curProgram = 0;
+
+ setVolume(1.0);
+ setPan(0.0);
+ }
+
+//---------------------------------------------------------
+// open
+//---------------------------------------------------------
+
+QString SynthI::open()
+{
+ // Make it behave like a regular midi device.
+ _readEnable = false;
+ _writeEnable = (_openFlags & 0x01);
+
+ return QString("OK");
+}
+
+//---------------------------------------------------------
+// close
+//---------------------------------------------------------
+
+void SynthI::close()
+{
+ _readEnable = false;
+ _writeEnable = false;
+}
+
+//---------------------------------------------------------
+// putMidiEvent
+//---------------------------------------------------------
+
+bool SynthI::putEvent(const MidiPlayEvent& ev)
+//bool SynthI::putMidiEvent(const MidiPlayEvent& ev)
+{
+ if(_writeEnable)
+ return _sif->putEvent(ev);
+
+ // Hmm, act as if the event went through?
+ //return true;
+ return false;
+}
+
+//---------------------------------------------------------
+// setName
+//---------------------------------------------------------
+
+void SynthI::setName(const QString& s)
+ {
+ AudioTrack::setName(s);
+ MidiDevice::setName(s);
+ }
+
+//---------------------------------------------------------
+// currentProg
+//---------------------------------------------------------
+
+void SynthI::currentProg(unsigned long *prog, unsigned long *bankL, unsigned long *bankH)
+{
+ if(prog)
+ *prog = _curProgram;
+ if(bankL)
+ *bankL = _curBankL;
+ if(bankH)
+ *bankH = _curBankH;
+}
+
+//---------------------------------------------------------
+// init
+//---------------------------------------------------------
+
+//bool MessSynthIF::init(Synth* s)
+bool MessSynthIF::init(Synth* s, SynthI* si)
+ {
+ //_mess = (Mess*)s->instantiate();
+ _mess = (Mess*)((MessSynth*)s)->instantiate(si->name());
+
+ return (_mess == 0);
+ }
+
+int MessSynthIF::channels() const
+ {
+ return _mess->channels();
+ }
+
+int MessSynthIF::totalOutChannels() const
+ {
+ return _mess->channels();
+ }
+
+int MessSynthIF::totalInChannels() const
+ {
+ return 0;
+ }
+
+//SynthIF* MessSynth::createSIF() const
+SynthIF* MessSynth::createSIF(SynthI* si)
+ {
+ //return new MessSynthIF(si);
+
+ MessSynthIF* sif = new MessSynthIF(si);
+ sif->init(this, si);
+ return sif;
+ }
+
+//---------------------------------------------------------
+// initInstance
+// returns false on success
+//---------------------------------------------------------
+
+bool SynthI::initInstance(Synth* s, const QString& instanceName)
+ {
+ synthesizer = s;
+ //sif = s->createSIF();
+ //_sif = s->createSIF(this);
+
+ //sif->init(s);
+
+ setName(instanceName); // set midi device name
+ setIName(instanceName); // set instrument name
+ _sif = s->createSIF(this);
+
+ // p3.3.38
+ //AudioTrack::setChannels(_sif->channels());
+ AudioTrack::setTotalOutChannels(_sif->totalOutChannels());
+ AudioTrack::setTotalInChannels(_sif->totalInChannels());
+
+ //---------------------------------------------------
+ // read available controller from synti
+ //---------------------------------------------------
+
+ int id = 0;
+ MidiControllerList* cl = MidiInstrument::controller();
+ for (;;) {
+ const char* name;
+ int ctrl;
+ int min;
+ int max;
+ int initval = CTRL_VAL_UNKNOWN;
+ id = _sif->getControllerInfo(id, &name, &ctrl, &min, &max, &initval);
+// printf("looking for params\n");
+ if (id == 0)
+ break;
+// printf("got parameter:: %s\n", name);
+
+
+ // Added by T356. Override existing program controller.
+ iMidiController i = cl->end();
+ if(ctrl == CTRL_PROGRAM)
+ {
+ for(i = cl->begin(); i != cl->end(); ++i)
+ {
+ if(i->second->num() == CTRL_PROGRAM)
+ {
+ delete i->second;
+ cl->erase(i);
+
+ break;
+ }
+ }
+ }
+
+ MidiController* c = new MidiController(QString(name), ctrl, min, max, initval);
+ cl->add(c);
+ }
+
+ EventList* iel = midiState();
+ if (!iel->empty()) {
+ for (iEvent i = iel->begin(); i != iel->end(); ++i) {
+ Event ev = i->second;
+ MidiPlayEvent pev(0, 0, 0, ev);
+ if (_sif->putEvent(pev))
+ break; // try later
+ }
+ iel->clear();
+ }
+
+ unsigned long idx = 0;
+ for (std::vector<float>::iterator i = initParams.begin(); i != initParams.end(); ++i, ++idx)
+ _sif->setParameter(idx, *i);
+
+ // p3.3.40 Since we are done with the (sometimes huge) initial parameters list, clear it.
+ // TODO: Decide: Maybe keep them around for a 'reset to previously loaded values' (revert) command? ...
+ initParams.clear();
+
+ return false;
+ }
+
+//---------------------------------------------------------
+// getControllerInfo
+//---------------------------------------------------------
+
+int MessSynthIF::getControllerInfo(int id, const char** name, int* ctrl, int* min, int* max, int* initval)
+ {
+ return _mess->getControllerInfo(id, name, ctrl, min, max, initval);
+ }
+
+//---------------------------------------------------------
+// SynthI::deactivate
+//---------------------------------------------------------
+
+void SynthI::deactivate2()
+ {
+ removeMidiInstrument(this);
+ midiDevices.remove(this);
+ if (midiPort() != -1) {
+ // synthi is attached
+ midiPorts[midiPort()].setMidiDevice(0);
+ }
+ }
+//---------------------------------------------------------
+// deactivate3
+//---------------------------------------------------------
+
+void SynthI::deactivate3()
+ {
+ _sif->deactivate3();
+ // Moved below by Tim. p3.3.14
+ //synthesizer->incInstances(-1);
+
+ if(debugMsg)
+ printf("SynthI::deactivate3 deleting _sif...\n");
+
+ delete _sif;
+ _sif = 0;
+
+ if(debugMsg)
+ printf("SynthI::deactivate3 decrementing synth instances...\n");
+
+ synthesizer->incInstances(-1);
+ }
+
+void MessSynthIF::deactivate3()
+ {
+ if (_mess) {
+ delete _mess;
+ _mess = 0;
+ }
+ }
+
+//---------------------------------------------------------
+// ~SynthI
+//---------------------------------------------------------
+
+SynthI::~SynthI()
+ {
+ deactivate2();
+ deactivate3();
+ }
+
+//---------------------------------------------------------
+// initMidiSynth
+// search for software synthis and advertise
+//---------------------------------------------------------
+
+void initMidiSynth()
+ {
+ QString s = museGlobalLib + "/synthi";
+
+ QDir pluginDir(s, QString("*.so")); // ddskrjo
+ if (debugMsg)
+ printf("searching for software synthesizer in <%s>\n", s.latin1());
+ if (pluginDir.exists()) {
+ QFileInfoList list = pluginDir.entryInfoList();
+ QFileInfoListIterator it=list.begin();
+ QFileInfo* fi;
+ while(it!=list.end()) {
+ fi = &*it;
+
+ //doSetuid();
+ const char* path = fi->filePath().latin1();
+
+ // load Synti dll
+ void* handle = dlopen(path, RTLD_NOW);
+ if (handle == 0) {
+ //fprintf(stderr, "initMidiSynth: dlopen(%s) failed: %s\n",
+ // path, dlerror());
+ //undoSetuid();
+ //return 0;
+ ++it;
+ continue;
+ }
+ 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",
+ // info.filePath().ascii(), txt);
+ //undoSetuid();
+ //return 0;
+ // }
+ dlclose(handle);
+ ++it;
+ continue;
+ }
+ const MESS* descr = msynth();
+ if (descr == 0) {
+ //fprintf(stderr, "Synth::instantiate: no MESS descr found\n");
+ //undoSetuid();
+ //return 0;
+ dlclose(handle);
+ ++it;
+ continue;
+ }
+ //Mess* mess = descr->instantiate(sampleRate, muse, &museProject, instanceName.latin1());
+ //undoSetuid();
+
+
+
+
+ //synthis.push_back(new MessSynth(*fi));
+ synthis.push_back(new MessSynth(*fi, QString(descr->name), QString(descr->description), QString(""), QString(descr->version)));
+
+ dlclose(handle);
+ ++it;
+ }
+ if (debugMsg)
+ printf("%zd soft synth found\n", synthis.size());
+ }
+ }
+
+//---------------------------------------------------------
+// createSynthI
+// create a synthesizer instance of class "label"
+//---------------------------------------------------------
+
+//SynthI* Song::createSynthI(const QString& sclass)
+SynthI* Song::createSynthI(const QString& sclass, const QString& label)
+ {
+ //printf("Song::createSynthI calling ::createSynthI class:%s\n", sclass.latin1());
+
+ //SynthI* si = ::createSynthI(sclass);
+ //SynthI* si = ::createSynthI(sclass, label);
+ SynthI* si = createSynthInstance(sclass, label);
+ if(!si)
+ return 0;
+ //printf("Song::createSynthI created SynthI. Before insertTrack1...\n");
+
+ insertTrack1(si, -1);
+ //printf("Song::createSynthI after insertTrack1. Before msgInsertTrack...\n");
+
+ msgInsertTrack(si, -1, true); // add to instance list
+ //printf("Song::createSynthI after msgInsertTrack. Before insertTrack3...\n");
+
+ insertTrack3(si, -1);
+
+ //printf("Song::createSynthI after insertTrack3. Adding default routes...\n");
+
+ OutputList* ol = song->outputs();
+ // add default route to master (first audio output)
+ if (!ol->empty()) {
+ AudioOutput* ao = ol->front();
+ // p3.3.38
+ //audio->msgAddRoute(Route(si, -1), Route(ao, -1));
+ //audio->msgAddRoute(Route((AudioTrack*)si, -1), Route(ao, -1));
+ // Make sure the route channel and channels are valid.
+ audio->msgAddRoute(Route((AudioTrack*)si, 0, ((AudioTrack*)si)->channels()), Route(ao, 0, ((AudioTrack*)si)->channels()));
+
+ audio->msgUpdateSoloStates();
+ }
+
+ // Now that the track has been added to the lists in insertTrack2(),
+ // if it's a dssi synth, OSC can find the synth, and initialize (and show) its native gui.
+ // No, initializing OSC without actually showing the gui doesn't work, at least for
+ // dssi-vst plugins - without showing the gui they exit after ten seconds.
+ //si->initGui();
+
+ return si;
+ }
+
+//---------------------------------------------------------
+// write
+//---------------------------------------------------------
+
+void SynthI::write(int level, Xml& xml) const
+ {
+ xml.tag(level++, "SynthI");
+ AudioTrack::writeProperties(level, xml);
+ xml.strTag(level, "class", synth()->baseName());
+
+ // To support plugins like dssi-vst where all the baseNames are the same 'dssi-vst' and the label is the name of the dll file.
+ // Added by Tim. p3.3.16
+ xml.strTag(level, "label", synth()->name());
+
+ //---------------------------------------------
+ // if soft synth is attached to a midi port,
+ // write out port number
+ //---------------------------------------------
+
+ if (midiPort() != -1)
+ xml.intTag(level, "port", midiPort());
+
+ if (hasGui()) {
+ xml.intTag(level, "guiVisible", guiVisible());
+ int x, y, w, h;
+ w = 0;
+ h = 0;
+ getGeometry(&x, &y, &w, &h);
+ if (h || w)
+ xml.qrectTag(level, "geometry", QRect(x, y, w, h));
+ }
+
+ _stringParamMap.write(level, xml, "stringParam");
+
+ xml.tag(level, "curProgram bankH=\"%ld\" bankL=\"%ld\" prog=\"%ld\"/", _curBankH, _curBankL, _curProgram);
+
+ _sif->write(level, xml);
+ xml.etag(level, "SynthI");
+ }
+
+void MessSynthIF::write(int level, Xml& xml) const
+ {
+ //---------------------------------------------
+ // dump current state of synth
+ //---------------------------------------------
+
+ int len = 0;
+ const unsigned char* p;
+ _mess->getInitData(&len, &p);
+ if (len) {
+ xml.tag(level++, "midistate");
+ xml.nput(level++, "<event type=\"%d\"", Sysex);
+ xml.nput(" datalen=\"%d\">\n", len);
+ xml.nput(level, "");
+ for (int i = 0; i < len; ++i) {
+ if (i && ((i % 16) == 0)) {
+ xml.nput("\n");
+ xml.nput(level, "");
+ }
+ xml.nput("%02x ", p[i] & 0xff);
+ }
+ xml.nput("\n");
+ xml.tag(level--, "/event");
+ xml.etag(level--, "midistate");
+ }
+ }
+
+//---------------------------------------------------------
+// SynthI::readProgram
+//---------------------------------------------------------
+
+void SynthI::readProgram(Xml& xml, const QString& name)
+{
+ 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(name);
+ break;
+ case Xml::Attribut:
+ if(tag == "bankH")
+ _curBankH = xml.s2().toUInt();
+ else
+ if(tag == "bankL")
+ _curBankL = xml.s2().toUInt();
+ else
+ if(tag == "prog")
+ _curProgram = xml.s2().toUInt();
+ else
+ xml.unknown(name);
+ break;
+ case Xml::TagEnd:
+ if(tag == name)
+ return;
+ default:
+ break;
+ }
+ }
+}
+
+//---------------------------------------------------------
+// SynthI::read
+//---------------------------------------------------------
+
+void SynthI::read(Xml& xml)
+ {
+ QString sclass;
+ QString label;
+
+ int port = -1;
+ bool startgui = false;
+ QRect r;
+
+ 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 == "class")
+ sclass = xml.parse1();
+ else if (tag == "label")
+ label = xml.parse1();
+ else if (tag == "port")
+ port = xml.parseInt();
+ else if (tag == "guiVisible")
+ startgui = xml.parseInt();
+ else if (tag == "midistate")
+ readMidiState(xml);
+ else if (tag == "param") {
+ float val = xml.parseFloat();
+ initParams.push_back(val);
+ }
+ else if (tag == "stringParam")
+ _stringParamMap.read(xml, tag);
+ else if (tag == "curProgram")
+ readProgram(xml, tag);
+ else if (tag == "geometry")
+ r = readGeometry(xml, tag);
+ else if (AudioTrack::readProperties(xml, tag))
+ xml.unknown("softSynth");
+ break;
+ case Xml::TagEnd:
+ if (tag == "SynthI") {
+ //Synth* s = findSynth(sclass);
+ Synth* s = findSynth(sclass, label);
+ if (s == 0)
+ return;
+ if (initInstance(s, name()))
+ return;
+ song->insertTrack0(this, -1);
+ if (port != -1 && port < MIDI_PORTS)
+ midiPorts[port].setMidiDevice(this);
+
+ // Now that the track has been added to the lists in insertTrack2(),
+ // if it's a dssi synth, OSC can find the synth, and initialize (and show) its native gui.
+ // No, initializing OSC without actually showing the gui doesn't work, at least for
+ // dssi-vst plugins - without showing the gui they exit after ten seconds.
+ //initGui();
+ showGui(startgui);
+ setGeometry(r.x(), r.y(), r.width(), r.height());
+
+ mapRackPluginsToControllers();
+
+ // Now that the track has been added to the lists in insertTrack2(), if it's a dssi synth
+ // OSC can find the track and its plugins, and start their native guis if required...
+ showPendingPluginNativeGuis();
+
+ return;
+ }
+ default:
+ break;
+ }
+ }
+ AudioTrack::mapRackPluginsToControllers();
+ }
+
+//---------------------------------------------------------
+// getPatchName
+//---------------------------------------------------------
+
+const char* MessSynthIF::getPatchName(int channel, int prog, MType type, bool drum)
+ {
+ if (_mess)
+ {
+ //return _mess->getPatchName(channel, prog, type, drum);
+ const char* s = _mess->getPatchName(channel, prog, type, drum);
+ if(s)
+ return s;
+ }
+ return "";
+ }
+
+//---------------------------------------------------------
+// populatePatchPopup
+//---------------------------------------------------------
+
+void MessSynthIF::populatePatchPopup(Q3PopupMenu* menu, int ch, MType, bool)
+ {
+ menu->clear();
+ const MidiPatch* mp = _mess->getPatchInfo(ch, 0);
+ while (mp) {
+ int id = ((mp->hbank & 0xff) << 16)
+ + ((mp->lbank & 0xff) << 8) + mp->prog;
+ /*
+ int pgid = ((mp->hbank & 0xff) << 8) | (mp->lbank & 0xff) | 0x40000000;
+ int itemnum = menu->indexOf(pgid);
+ if(itemnum == -1)
+ {
+ QPopupMenu* submenu = new QPopupMenu(menu);
+ itemnum =
+ }
+ */
+ menu->insertItem(QString(mp->name), id);
+ mp = _mess->getPatchInfo(ch, mp);
+ }
+ }
+
+//---------------------------------------------------------
+// preProcessAlways
+//---------------------------------------------------------
+
+void SynthI::preProcessAlways()
+{
+ if(_sif)
+ _sif->preProcessAlways();
+ _processed = false;
+}
+
+void MessSynthIF::preProcessAlways()
+{
+ if(_mess)
+ _mess->processMessages();
+}
+
+//---------------------------------------------------------
+// getData
+//---------------------------------------------------------
+
+bool SynthI::getData(unsigned pos, int ports, unsigned n, float** buffer)
+ {
+ for (int k = 0; k < ports; ++k)
+ memset(buffer[k], 0, n * sizeof(float));
+
+ int p = midiPort();
+ MidiPort* mp = (p != -1) ? &midiPorts[p] : 0;
+ MPEventList* el = playEvents();
+
+ iMPEvent ie = nextPlayEvent();
+
+ ie = _sif->getData(mp, el, ie, pos, ports, n, buffer);
+
+ setNextPlayEvent(ie);
+ return true;
+ }
+
+iMPEvent MessSynthIF::getData(MidiPort* mp, MPEventList* el, iMPEvent i, unsigned pos, int /*ports*/, unsigned n, float** buffer)
+{
+ //prevent compiler warning: comparison of signed/unsigned
+ int curPos = pos;
+ int endPos = pos + n;
+ int off = pos;
+ int frameOffset = audio->getFrameOffset();
+
+ for (; i != el->end(); ++i) {
+ int evTime = i->time();
+ if (evTime == 0) {
+ // printf("MessSynthIF::getData - time is 0!\n");
+ // continue;
+ evTime=frameOffset; // will cause frame to be zero, problem?
+ }
+ int frame = evTime - frameOffset;
+
+//TODO if (frame > 0) // robert: ugly fix, don't really know what is going on here
+// // makes PPC work much better.
+
+ if (frame >= endPos) {
+ printf("frame > endPos!! frame = %d >= endPos %d, i->time() %d, frameOffset %d curPos=%d\n", frame, endPos, i->time(), frameOffset,curPos);
+ continue;
+ }
+
+ if (frame > curPos) {
+ if (frame < pos)
+ printf("should not happen: missed event %d\n", pos -frame);
+ else
+ {
+ if (!_mess)
+ printf("should not happen - no _mess\n");
+ else
+ {
+ _mess->process(buffer, curPos-pos, frame - curPos);
+ }
+ }
+ curPos = frame;
+ }
+ if (mp)
+ mp->sendEvent(*i);
+ else {
+ if (putEvent(*i))
+ break;
+ }
+ }
+ if (endPos - curPos)
+ {
+ if (!_mess)
+ printf("should not happen - no _mess\n");
+ else
+ {
+ _mess->process(buffer, curPos - off, endPos - curPos);
+ }
+ }
+ return i;
+}
+
+//---------------------------------------------------------
+// putEvent
+// return true on error (busy)
+//---------------------------------------------------------
+
+bool MessSynthIF::putEvent(const MidiPlayEvent& ev)
+ {
+ if (midiOutputTrace)
+ ev.dump();
+ if (_mess)
+ return _mess->processEvent(ev);
+ return true;
+ }
diff --git a/muse2/muse/synth.h b/muse2/muse/synth.h
new file mode 100644
index 00000000..627d276f
--- /dev/null
+++ b/muse2/muse/synth.h
@@ -0,0 +1,290 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: synth.h,v 1.22.2.12 2009/12/06 10:05:00 terminator356 Exp $
+// (C) Copyright 2000-2004 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __SYNTH_H__
+#define __SYNTH_H__
+
+#include <QFileInfo>
+//Added by qt3to4:
+#include <Q3PopupMenu>
+#include <string>
+#include <vector>
+#include <map>
+
+#include "globals.h"
+#include "node.h"
+#include "instruments/minstrument.h"
+#include "mididev.h"
+#include "midiport.h"
+#include "track.h"
+#include "stringparam.h"
+
+//class MidiEvent;
+class MidiPlayEvent;
+class Mess;
+struct MESS;
+
+class SynthI;
+class SynthIF;
+
+//---------------------------------------------------------
+// Synth
+// software synthesizer
+//---------------------------------------------------------
+
+class Synth {
+ protected:
+ QFileInfo info;
+ int _instances;
+ QString _name;
+ QString _description;
+ QString _maker;
+ QString _version;
+
+ public:
+ //Synth(const QFileInfo& fi);
+ //Synth(const QFileInfo& fi, QString label);
+ Synth(const QFileInfo& fi, QString label, QString descr, QString maker, QString ver);
+
+ 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 baseName(bool complete = true) /*const*/ { return info.baseName(complete); } // ddskrjo
+ QString name() const { return _name; }
+ QString dirPath(bool complete = true) const { return info.dirPath(complete); }
+ QString filePath() const { return info.filePath(); }
+ QString description() const { return _description; }
+ QString version() const { return _version; }
+ //QString maker() const { return _version; } ??
+ QString maker() const { return _maker; }
+
+ //virtual void* instantiate() = 0;
+
+ //virtual SynthIF* createSIF() const = 0;
+ virtual SynthIF* createSIF(SynthI*) = 0;
+ };
+
+//---------------------------------------------------------
+// MessSynth
+//---------------------------------------------------------
+
+class MessSynth : public Synth {
+ const MESS* _descr;
+
+ public:
+ //MessSynth(const QFileInfo& fi) : Synth(fi) { descr = 0; }
+ //MessSynth(const QFileInfo& fi) : Synth(fi, fi.baseName()) { descr = 0; }
+ MessSynth(const QFileInfo& fi, QString label, QString descr, QString maker, QString ver) :
+ Synth(fi, label, descr, maker, ver) { _descr = 0; }
+
+ virtual ~MessSynth() {}
+ //virtual const char* description() const;
+ //virtual const char* version() const;
+
+ //virtual void* instantiate();
+ virtual void* instantiate(const QString&);
+
+ //virtual SynthIF* createSIF() const;
+ virtual SynthIF* createSIF(SynthI*);
+ };
+
+class Mess;
+
+//---------------------------------------------------------
+// SynthIF
+// synth instance interface
+//---------------------------------------------------------
+
+class SynthIF {
+ protected:
+ SynthI* synti;
+
+ public:
+ //SynthIF() {}
+ SynthIF(SynthI* s) { synti = s; }
+ virtual ~SynthIF() {}
+
+ virtual bool initGui() = 0;
+ virtual void guiHeartBeat() = 0;
+ 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 preProcessAlways() = 0;
+ virtual iMPEvent getData(MidiPort*, MPEventList*, iMPEvent, unsigned pos, int ports, unsigned n, float** buffer) = 0;
+ virtual bool putEvent(const MidiPlayEvent& ev) = 0;
+ virtual MidiPlayEvent receiveEvent() = 0;
+ virtual int eventsPending() const = 0;
+
+ //virtual bool init(Synth* s) = 0;
+
+ virtual int channels() const = 0;
+ virtual int totalOutChannels() const = 0;
+ virtual int totalInChannels() const = 0;
+ virtual void deactivate3() = 0;
+ virtual const char* getPatchName(int, int, int, bool) const = 0;
+ virtual const char* getPatchName(int, int, MType, bool) = 0;
+ virtual void populatePatchPopup(Q3PopupMenu*, int, MType, bool) = 0;
+ virtual void write(int level, Xml& xml) const = 0;
+ virtual float getParameter(unsigned long idx) const = 0;
+ virtual void setParameter(unsigned long idx, float value) = 0;
+ virtual int getControllerInfo(int id, const char** name, int* ctrl, int* min, int* max, int* initval) = 0;
+ };
+
+//---------------------------------------------------------
+// SynthI
+// software synthesizer instance
+// Track
+// MidiDevice
+// MidiInstrument
+//---------------------------------------------------------
+
+class SynthI : public AudioTrack, public MidiDevice,
+ public MidiInstrument
+ {
+ SynthIF* _sif;
+
+ protected:
+ Synth* synthesizer;
+ MidiFifo putFifo;
+
+ // List of initial floating point parameters, for synths which use them.
+ // Used once upon song reload, then discarded.
+ std::vector<float> initParams;
+ // List of gui controls to update upon heartbeat.
+ std::vector<bool> _guiUpdateControls;
+ // Update gui program upon heartbeat.
+ bool _guiUpdateProgram;
+ // Initial, and running, string parameters for synths which use them, like dssi.
+ StringParamMap _stringParamMap;
+ // Current bank and program for synths which use them, like dssi.
+ // In cases like dssi which have no 'hi' and 'lo' bank, just use _curBankL.
+ unsigned long _curBankH;
+ unsigned long _curBankL;
+ unsigned long _curProgram;
+
+ void preProcessAlways();
+ bool getData(unsigned a, int b, unsigned c, float** data);
+
+ //bool putEvent(const MidiPlayEvent& ev);
+
+ virtual QString open();
+ virtual void close();
+
+ virtual bool putMidiEvent(const MidiPlayEvent&) {return true;}
+ //bool putMidiEvent(const MidiEvent&);
+
+ virtual Track* newTrack() const { return 0; }
+
+ public:
+ friend class SynthIF;
+ friend class MessSynthIF;
+ friend class DssiSynthIF;
+ friend class VstSynthIF;
+
+ SynthI();
+ virtual ~SynthI();
+ //SynthI* clone() const { return new SynthI(*this); }
+ SynthI* clone(bool /*cloneParts*/) const { return new SynthI(*this); }
+
+ virtual inline int deviceType() { return SYNTH_MIDI; }
+
+ SynthIF* sif() const { return _sif; }
+ bool initInstance(Synth* s, const QString& instanceName);
+
+ void readProgram(Xml&, const QString&);
+ void read(Xml&);
+ virtual void write(int, Xml&) const;
+
+ void setName(const QString& s);
+ QString name() const { return AudioTrack::name(); }
+
+ Synth* synth() const { return synthesizer; }
+ virtual bool isSynti() const { return true; }
+
+ virtual const char* getPatchName(int ch, int prog, MType t, bool dr) {
+ return _sif->getPatchName(ch, prog, t, dr);
+ }
+
+ virtual void populatePatchPopup(Q3PopupMenu* m, int i, MType t, bool d) {
+ _sif->populatePatchPopup(m, i, t, d);
+ }
+
+ // void setParameter(const char* name, const char* value) const; // Not required
+ //StringParamMap& stringParameters() { return _stringParamMap; } // Not required
+ void currentProg(unsigned long */*prog*/, unsigned long */*bankL*/, unsigned long */*bankH*/);
+
+ void guiHeartBeat() { return _sif->guiHeartBeat(); }
+ bool initGui() const { return _sif->initGui(); }
+ 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);
+ }
+
+ bool putEvent(const MidiPlayEvent& ev);
+
+ MidiPlayEvent 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 true; }
+ };
+
+//---------------------------------------------------------
+// MessSynthIF
+// mess synthesizer instance
+//---------------------------------------------------------
+
+class MessSynthIF : public SynthIF {
+ Mess* _mess;
+
+ public:
+ //MessSynthIF() { _mess = 0; }
+ MessSynthIF(SynthI* s) : SynthIF(s) { _mess = 0; }
+ virtual ~MessSynthIF() { }
+
+ virtual bool initGui() { return true; };
+ virtual void guiHeartBeat() { }
+ 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 preProcessAlways();
+ virtual iMPEvent getData(MidiPort*, MPEventList*, iMPEvent, unsigned pos, int ports, unsigned n, float** buffer);
+ virtual bool putEvent(const MidiPlayEvent& ev);
+ virtual MidiPlayEvent receiveEvent();
+ virtual int eventsPending() const;
+ //virtual bool init(Synth* s);
+ bool init(Synth* s, SynthI* si);
+
+ virtual int channels() const;
+ virtual int totalOutChannels() const;
+ virtual int totalInChannels() const;
+ virtual void deactivate3();
+ virtual const char* getPatchName(int, int, int, bool) const { return ""; }
+ virtual const char* getPatchName(int, int, MType, bool);
+ virtual void populatePatchPopup(Q3PopupMenu*, int, MType, bool);
+ virtual void write(int level, Xml& xml) const;
+ virtual float getParameter(unsigned long) const { return 0.0; }
+ virtual void setParameter(unsigned long, float) {}
+ virtual int getControllerInfo(int id, const char** name, int* ctrl, int* min, int* max, int* initval);
+ };
+
+extern std::vector<Synth*> synthis; // array of available synthis
+#endif
+
diff --git a/muse2/muse/tempo.cpp b/muse2/muse/tempo.cpp
new file mode 100644
index 00000000..418ec031
--- /dev/null
+++ b/muse2/muse/tempo.cpp
@@ -0,0 +1,503 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: tempo.cpp,v 1.7.2.7 2008/05/21 00:28:52 terminator356 Exp $
+//
+// (C) Copyright 1999/2000 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include <stdio.h>
+#include <errno.h>
+#include <cmath>
+
+#include "tempo.h"
+#include "globals.h"
+#include "gconfig.h"
+#include "xml.h"
+
+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) / (config.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() HALLO\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();
+ return 0;
+ }
+ unsigned dtick = tick - i->second->tick;
+ double dtime = double(dtick) / (config.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(config.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 * config.division * 10000.0 / te);
+ }
+ else
+ tick = lrint((double(frame)/double(sampleRate)) * _globalTempo * config.division * 10000.0 / double(_tempo));
+ if (sn)
+ *sn = _tempoSN;
+ return tick;
+ }
+
+//---------------------------------------------------------
+// deltaTick2frame
+//---------------------------------------------------------
+
+unsigned TempoList::deltaTick2frame(unsigned tick1, unsigned tick2, int* sn) const
+ {
+ int f1, f2;
+ if (useList) {
+ ciTEvent i = upper_bound(tick1);
+ if (i == end()) {
+ printf("TempoList::deltaTick2frame: tick1:%d not found\n", tick1);
+ // abort();
+ return 0;
+ }
+ unsigned dtick = tick1 - i->second->tick;
+ double dtime = double(dtick) / (config.division * _globalTempo * 10000.0/ i->second->tempo);
+ unsigned dframe = lrint(dtime * sampleRate);
+ f1 = i->second->frame + dframe;
+
+ i = upper_bound(tick2);
+ if (i == end()) {
+ return 0;
+ }
+ dtick = tick2 - i->second->tick;
+ dtime = double(dtick) / (config.division * _globalTempo * 10000.0/ i->second->tempo);
+ dframe = lrint(dtime * sampleRate);
+ f2 = i->second->frame + dframe;
+ }
+ else {
+ double t = (double(tick1) * double(_tempo)) / (double(config.division) * _globalTempo * 10000.0);
+ f1 = lrint(t * sampleRate);
+
+ t = (double(tick2) * double(_tempo)) / (double(config.division) * _globalTempo * 10000.0);
+ f2 = lrint(t * sampleRate);
+ }
+ if (sn)
+ *sn = _tempoSN;
+ // FIXME: Caution: This should be rounded off properly somehow, but how to do that?
+ // But it seems to work so far.
+ return f2 - f1;
+ }
+
+
+//---------------------------------------------------------
+// deltaFrame2tick
+//---------------------------------------------------------
+
+unsigned TempoList::deltaFrame2tick(unsigned frame1, unsigned frame2, int* sn) const
+ {
+ unsigned tick1, tick2;
+ if (useList) {
+ ciTEvent e;
+ for (e = begin(); e != end();) {
+ ciTEvent ee = e;
+ ++ee;
+ if (ee == end())
+ break;
+ if (frame1 < ee->second->frame)
+ break;
+ e = ee;
+ }
+ unsigned te = e->second->tempo;
+ int dframe = frame1 - e->second->frame;
+ double dtime = double(dframe) / double(sampleRate);
+ tick1 = e->second->tick + lrint(dtime * _globalTempo * config.division * 10000.0 / te);
+
+ for (e = begin(); e != end();) {
+ ciTEvent ee = e;
+ ++ee;
+ if (ee == end())
+ break;
+ if (frame2 < ee->second->frame)
+ break;
+ e = ee;
+ }
+ te = e->second->tempo;
+ dframe = frame2 - e->second->frame;
+ dtime = double(dframe) / double(sampleRate);
+ tick2 = e->second->tick + lrint(dtime * _globalTempo * config.division * 10000.0 / te);
+ }
+ else
+ {
+ tick1 = lrint((double(frame1)/double(sampleRate)) * _globalTempo * config.division * 10000.0 / double(_tempo));
+ tick2 = lrint((double(frame2)/double(sampleRate)) * _globalTempo * config.division * 10000.0 / double(_tempo));
+ }
+ if (sn)
+ *sn = _tempoSN;
+ // FIXME: Caution: This should be rounded off properly somehow, but how to do that?
+ // But it seems to work so far.
+ return tick2 - tick1;
+ }
+
+//---------------------------------------------------------
+// TempoList::write
+//---------------------------------------------------------
+
+void TempoList::write(int level, Xml& xml) const
+ {
+ xml.put(level++, "<tempolist fix=\"%d\">", _tempo);
+ if (_globalTempo != 100)
+ xml.intTag(level, "globalTempo", _globalTempo);
+ for (ciTEvent i = begin(); i != end(); ++i)
+ i->second->write(level, xml, i->first);
+ xml.tag(level, "/tempolist");
+ }
+
+//---------------------------------------------------------
+// TempoList::read
+//---------------------------------------------------------
+
+void TempoList::read(Xml& xml)
+ {
+ 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 == "tempo") {
+ TEvent* t = new TEvent();
+ unsigned tick = t->read(xml);
+ iTEvent pos = find(tick);
+ if (pos != end())
+ erase(pos);
+ insert(std::pair<const int, TEvent*> (tick, t));
+ }
+ else if (tag == "globalTempo")
+ _globalTempo = xml.parseInt();
+ else
+ xml.unknown("TempoList");
+ break;
+ case Xml::Attribut:
+ if (tag == "fix")
+ _tempo = xml.s2().toInt();
+ break;
+ case Xml::TagEnd:
+ if (tag == "tempolist") {
+ normalize();
+ ++_tempoSN;
+ return;
+ }
+ default:
+ break;
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// TEvent::write
+//---------------------------------------------------------
+
+void TEvent::write(int level, Xml& xml, int at) const
+ {
+ xml.tag(level++, "tempo at=\"%d\"", at);
+ xml.intTag(level, "tick", tick);
+ xml.intTag(level, "val", tempo);
+ xml.tag(level, "/tempo");
+ }
+
+//---------------------------------------------------------
+// TEvent::read
+//---------------------------------------------------------
+
+int TEvent::read(Xml& xml)
+ {
+ int at = 0;
+ for (;;) {
+ Xml::Token token = xml.parse();
+ const QString& tag = xml.s1();
+ switch (token) {
+ case Xml::Error:
+ case Xml::End:
+ return 0;
+ case Xml::TagStart:
+ if (tag == "tick")
+ tick = xml.parseInt();
+ else if (tag == "val")
+ tempo = xml.parseInt();
+ else
+ xml.unknown("TEvent");
+ break;
+ case Xml::Attribut:
+ if (tag == "at")
+ at = xml.s2().toInt();
+ break;
+ case Xml::TagEnd:
+ if (tag == "tempo") {
+ return at;
+ }
+ default:
+ break;
+ }
+ }
+ return 0;
+ }
+
+
diff --git a/muse2/muse/tempo.h b/muse2/muse/tempo.h
new file mode 100644
index 00000000..61ec50f5
--- /dev/null
+++ b/muse2/muse/tempo.h
@@ -0,0 +1,89 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: tempo.h,v 1.2.2.1 2006/09/19 19:07:09 spamatica Exp $
+//
+// (C) Copyright 1999/2000 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __TEMPO_H__
+#define __TEMPO_H__
+
+#include <map>
+
+#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(Xml&);
+ void write(int, 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(Xml&);
+ void write(int, 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;
+ unsigned deltaTick2frame(unsigned tick1, unsigned tick2, int* sn = 0) const;
+ unsigned deltaFrame2tick(unsigned frame1, unsigned frame2, int* sn = 0) 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/muse2/muse/thread.cpp b/muse2/muse/thread.cpp
new file mode 100644
index 00000000..444d5219
--- /dev/null
+++ b/muse2/muse/thread.cpp
@@ -0,0 +1,455 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: thread.cpp,v 1.4.2.5 2009/12/20 05:00:35 terminator356 Exp $
+//
+// (C) Copyright 2001-2004 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include "thread.h"
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <sys/mman.h>
+#include <sys/poll.h>
+#include <fcntl.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(void* ptr)
+void Thread::start(int prio, void* ptr)
+ {
+ // Changed by Tim. p3.3.17
+
+ userPtr = ptr;
+ pthread_attr_t* attributes = 0;
+ _realTimePriority = prio;
+
+ /*
+ attributes = (pthread_attr_t*) malloc(sizeof(pthread_attr_t));
+ pthread_attr_init(attributes);
+ */
+
+// pthread_mutexattr_t mutexattr;
+// pthread_mutexattr_init(&mutexattr);
+// pthread_mutexattr_settype(&mutexattr, PTHREAD_MUTEX_TIMED_NP);
+// pthread_mutex_init(&lock, &mutexattr);
+// pthread_cond_init(&ready, 0);
+
+// pthread_mutex_lock(&lock);
+
+
+ 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));
+ }
+ }
+
+
+ /*
+ if (pthread_create(&thread, attributes, ::loop, this))
+ perror("creating thread failed:");
+// else
+// {
+// pthread_cond_wait(&ready, &lock);
+// }
+// pthread_mutex_unlock(&lock);
+ */
+
+
+ int rv;
+ if ((rv = pthread_create(&thread, attributes, ::loop, this)))
+ {
+ fprintf(stderr, "creating thread <%s> failed: %s\n",
+ _name, strerror(rv));
+ thread = 0;
+ }
+
+ //undoSetuid();
+ }
+
+//---------------------------------------------------------
+// stop
+//---------------------------------------------------------
+
+void Thread::stop(bool force)
+ {
+ // Changed by Tim. p3.3.17
+
+ if (thread == 0)
+ return;
+ //if (force && thread > 0) {
+ if (force) {
+ pthread_cancel(thread);
+ threadStop();
+ }
+ _running = false;
+ if (thread) {
+ if (pthread_join(thread, 0)) {
+ // perror("Failed to join sequencer thread");
+ }
+ }
+ }
+//---------------------------------------------------------
+// Thread
+// prio = 0 no realtime scheduling
+//---------------------------------------------------------
+
+//Thread::Thread(int prio, const char* s)
+Thread::Thread(const char* s)
+ {
+ // Changed by Tim. p3.3.17
+
+ userPtr = 0;
+ _name = s;
+ //realTimePriority = prio;
+ _realTimePriority = 0;
+
+ pfd = 0;
+ npfd = 0;
+ maxpfd = 0;
+ _running = false;
+ _pollWait = -1;
+ thread = 0;
+
+ //if (debugMsg)
+ // printf("Start thread %s with priority %d\n", s, prio);
+
+ // create message channels
+ int filedes[2]; // 0 - reading 1 - writing
+ if (pipe(filedes) == -1) {
+ perror("thread:creating pipe");
+ exit(-1);
+ }
+ toThreadFdr = filedes[0];
+ toThreadFdw = filedes[1];
+
+ if (pipe(filedes) == -1) {
+ perror("thread: creating pipe");
+ exit(-1);
+ }
+ fromThreadFdr = filedes[0];
+ fromThreadFdw = filedes[1];
+
+// pthread_mutexattr_t mutexattr;
+// pthread_mutexattr_init(&mutexattr);
+// pthread_mutexattr_settype(&mutexattr, PTHREAD_MUTEX_TIMED_NP);
+// pthread_mutex_init(&lock, &mutexattr);
+// pthread_cond_init(&ready, 0);
+ }
+
+//---------------------------------------------------------
+// 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()
+ {
+ // Changed by Tim. p3.3.17
+
+ if (!debugMode) {
+ if (mlockall(MCL_CURRENT | MCL_FUTURE))
+ perror("WARNING: Cannot lock memory:");
+ }
+
+/*
+ pthread_attr_t* attributes = 0;
+ attributes = (pthread_attr_t*) malloc(sizeof(pthread_attr_t));
+ pthread_attr_init(attributes);
+
+ if (realTimeScheduling && realTimePriority > 0) {
+
+ doSetuid();
+// 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 = realTimePriority;
+// if (pthread_attr_setschedparam (attributes, &rt_param)) {
+// printf("Cannot set scheduling priority %d for RT thread (%s)\n",
+// realTimePriority, strerror(errno));
+// }
+
+ // do the SCHED_FIFO stuff _after_ thread creation:
+ struct sched_param *param = new struct sched_param;
+ param->sched_priority = realTimePriority;
+ int error = pthread_setschedparam(pthread_self(), SCHED_FIFO, param);
+ if (error != 0)
+ perror( "error set_schedparam 2:");
+
+// if (!debugMode) {
+// if (mlockall(MCL_CURRENT|MCL_FUTURE))
+// perror("WARNING: Cannot lock memory:");
+// }
+
+ undoSetuid();
+ }
+
+*/
+
+
+/*
+#define BIG_ENOUGH_STACK (1024*1024*1)
+ char buf[BIG_ENOUGH_STACK];
+ for (int i = 0; i < BIG_ENOUGH_STACK; i++)
+ buf[i] = i;
+#undef BIG_ENOUGH_STACK
+*/
+
+#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 = 0;
+ if ((policy = sched_getscheduler (0)) < 0) {
+ printf("Thread: Cannot get current client scheduler: %s\n", strerror(errno));
+ }
+
+ /*
+ if (debugMsg)
+ printf("Thread <%s> set to %s priority %d\n",
+ _name, policy == SCHED_FIFO ? "SCHED_FIFO" : "SCHED_OTHER",
+ realTimePriority);
+ */
+ if (debugMsg)
+ printf("Thread <%s, id %p> has %s priority %d\n",
+ _name, (void *)pthread_self(), policy == SCHED_FIFO ? "SCHED_FIFO" : "SCHED_OTHER",
+ _realTimePriority);
+
+
+// pthread_mutex_lock(&lock);
+ _running = true;
+// pthread_cond_signal(&ready);
+// pthread_mutex_unlock(&lock);
+
+ 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();
+ }
+
+//---------------------------------------------------------
+// send
+// send request from gui to thread
+// wait until request is processed
+//---------------------------------------------------------
+
+bool Thread::sendMsg(const ThreadMsg* m)
+{
+ // Changed by Tim. p3.3.17
+
+ if (_running)
+ {
+ int rv = write(toThreadFdw, &m, sizeof(ThreadMsg*));
+ if (rv != sizeof(ThreadMsg*)) {
+ perror("Thread::sendMessage(): write pipe failed");
+ return true;
+ }
+
+ // wait for sequencer to finish operation
+ char c;
+ rv = read(fromThreadFdr, &c, 1);
+ if (rv != 1)
+ {
+ perror("Thread::sendMessage(): read pipe failed");
+ return true;
+ }
+ //int c;
+ //rv = read(fromThreadFdr, &c, sizeof(c));
+ //if (rv != sizeof(c)) {
+ // perror("Thread::sendMessage(): read pipe failed");
+ // return true;
+ // }
+ }
+ else
+ {
+ // if thread is not running (during initialization)
+ // process commands directly:
+ processMsg(m);
+ }
+ return false;
+}
+
+//---------------------------------------------------------
+// send
+// 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::readMessage(): read pipe failed");
+ exit(-1);
+ }
+ processMsg(p);
+ char c = 'x';
+ int rv = write(fromThreadFdw, &c, 1);
+ if (rv != 1)
+ perror("Thread::readMessage(): write pipe failed");
+ //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::readMsg1(): read pipe failed, get %d, expected %d: %s\n",
+ n, size, strerror(errno));
+ exit(-1);
+ }
+ processMsg1(buffer);
+ }
+
diff --git a/muse2/muse/thread.h b/muse2/muse/thread.h
new file mode 100644
index 00000000..f9642301
--- /dev/null
+++ b/muse2/muse/thread.h
@@ -0,0 +1,104 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: thread.h,v 1.1.1.1.2.2 2009/12/20 05:00:35 terminator356 Exp $
+//
+// (C) Copyright 2001 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __THREAD_H__
+#define __THREAD_H__
+
+#include <pthread.h>
+#include <list>
+
+//---------------------------------------------------------
+// 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;
+ };
+
+//---------------------------------------------------------
+// Thread
+//---------------------------------------------------------
+
+class Thread {
+ const char* _name;
+ volatile bool _running;
+ //int realTimePriority;
+ int _pollWait; // poll timeout in msec (-1 = infinite)
+
+ pthread_t thread;
+
+ int toThreadFdw; // message to thread (app write)
+
+ PollList plist;
+// pthread_mutex_t lock;
+// pthread_cond_t ready;
+ 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(int prio, const char* name);
+ Thread(const char* name);
+
+ virtual ~Thread();
+ const char* name() const { return _name; }
+
+ //virtual void start(void* ptr=0);
+ 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/muse2/muse/ticksynth.cpp b/muse2/muse/ticksynth.cpp
new file mode 100644
index 00000000..d6d327db
--- /dev/null
+++ b/muse2/muse/ticksynth.cpp
@@ -0,0 +1,215 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: ticksynth.cpp,v 1.8.2.7 2009/12/20 05:00:35 terminator356 Exp $
+// (C) Copyright 2004 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include "audio.h"
+#include "ticksynth.h"
+#include "default_click.h"
+//Added by qt3to4:
+#include <Q3PopupMenu>
+
+// Added by Tim. p3.3.18
+//#define METRONOME_DEBUG
+
+MetronomeSynthI* metronome = 0;
+
+class MetronomeSynth;
+static MetronomeSynth* metronomeSynth = 0;
+
+//---------------------------------------------------------
+// MetronomeSynth
+//---------------------------------------------------------
+
+class MetronomeSynth : public Synth {
+ public:
+ //MetronomeSynth(const QFileInfo& fi) : Synth(fi) {}
+ //MetronomeSynth(const QFileInfo& fi) : Synth(fi, QString("Metronome")) {}
+ MetronomeSynth(const QFileInfo& fi) : Synth(fi, QString("Metronome"), QString("Metronome"), QString(), QString()) {}
+ virtual ~MetronomeSynth() {}
+ virtual void incInstances(int) {}
+ virtual void* instantiate();
+
+ //virtual SynthIF* createSIF() const;
+ 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() {
+ // data = 0;
+ // }
+ MetronomeSynthIF(SynthI* s) : SynthIF(s) {
+ data = 0;
+ }
+ virtual bool initGui() { return true; };
+ virtual void guiHeartBeat() { }
+ 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 preProcessAlways() { };
+ virtual iMPEvent getData(MidiPort*, MPEventList*, iMPEvent, unsigned pos, int ports, unsigned n, float** buffer);
+ virtual bool putEvent(const MidiPlayEvent& ev);
+ virtual MidiPlayEvent receiveEvent() { return MidiPlayEvent(); }
+ virtual int eventsPending() const { return 0; }
+
+ //virtual bool init(Synth*) { return true; }
+
+ virtual int channels() const { return 1; }
+ virtual int totalOutChannels() const { return 1; }
+ virtual int totalInChannels() const { return 0; }
+ virtual void deactivate3() {}
+ virtual const char* getPatchName(int, int, int, bool) const { return ""; }
+ virtual const char* getPatchName(int, int, MType, bool) { return ""; }
+ virtual void populatePatchPopup(Q3PopupMenu*, int, MType, bool) {};
+ virtual void write(int, Xml&) const {}
+ virtual float getParameter(unsigned long) const { return 0.0; }
+ virtual void setParameter(unsigned long, float) {}
+ virtual int getControllerInfo(int, const char**, int*, int*, int*, int*) { return 0; }
+ };
+
+//---------------------------------------------------------
+// getData
+//---------------------------------------------------------
+
+iMPEvent MetronomeSynthIF::getData(MidiPort*, MPEventList* el, iMPEvent i, unsigned pos, int/*ports*/, unsigned n, float** buffer)
+ {
+ // Added by Tim. p3.3.18
+ #ifdef METRONOME_DEBUG
+ printf("MusE: MetronomeSynthIF::getData\n");
+ #endif
+
+ //set type to unsigned , due to compiler warning: comparison signed/unsigned
+ unsigned int curPos = pos; //prevent compiler warning: comparison signed/unsigned
+ unsigned int endPos = pos + n; //prevent compiler warning: comparison signed/unsigned
+ unsigned int off = pos; //prevent compiler warning: comparison signed/unsigned
+ int frameOffset = audio->getFrameOffset();
+
+ for (; i != el->end(); ++i) {
+ unsigned int frame = i->time() - frameOffset; //prevent compiler warning: comparison signed /unsigned
+ 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);
+ return el->end();
+ }
+
+//---------------------------------------------------------
+// putEvent
+//---------------------------------------------------------
+
+bool MetronomeSynthIF::putEvent(const MidiPlayEvent& ev)
+ {
+ if (ev.dataA() == 0) {
+ data = defaultClickEmphasis;
+ len = defaultClickEmphasisLength;
+ }
+ else {
+ data = defaultClick;
+ len = defaultClickLength;
+ }
+ pos = 0;
+ return false;
+ }
+
+//---------------------------------------------------------
+// createSIF
+//---------------------------------------------------------
+
+//SynthIF* MetronomeSynth::createSIF() const
+// {
+// return new MetronomeSynthIF();
+// }
+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)
+ {
+ // Added by Tim. p3.3.18
+ #ifdef METRONOME_DEBUG
+ printf("MusE: MetronomeSynthIF::process data:%p offset:%d n:%d\n", data, offset, n);
+ #endif
+
+ if (data == 0)
+ return;
+
+ const float* s = data + pos;
+ float* d = *buffer + offset;
+ int l = std::min(n, len);
+
+ for (int i = 0; i < l; ++i)
+ *d++ += *s++ * audioClickVolume;
+ pos += l;
+ len -= l;
+ if (len <= 0)
+ data = 0;
+ }
+
+//---------------------------------------------------------
+// initMetronome
+//---------------------------------------------------------
+
+void initMetronome()
+ {
+ QFileInfo fi;
+ metronomeSynth = new MetronomeSynth(fi);
+ metronome = new MetronomeSynthI();
+
+ QString name("metronome");
+ metronome->initInstance(metronomeSynth, name);
+ }
+
+//---------------------------------------------------------
+// exitMetronome
+//---------------------------------------------------------
+
+void exitMetronome()
+{
+ if(metronome)
+ delete metronome;
+ metronome = 0;
+
+ if(metronomeSynth)
+ delete metronomeSynth;
+ metronomeSynth = 0;
+}
+
diff --git a/muse2/muse/ticksynth.h b/muse2/muse/ticksynth.h
new file mode 100644
index 00000000..4f467bcd
--- /dev/null
+++ b/muse2/muse/ticksynth.h
@@ -0,0 +1,22 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: ticksynth.h,v 1.1.2.3 2009/12/06 10:05:00 terminator356 Exp $
+// (C) Copyright 2004 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __TICKSYNTH_H__
+#define __TICKSYNTH_H__
+
+#include "synth.h"
+extern void initMetronome();
+extern void exitMetronome();
+class MetronomeSynthI : public SynthI
+{
+ virtual bool hasAuxSend() const { return false; }
+
+};
+extern MetronomeSynthI* metronome;
+
+#endif
+
diff --git a/muse2/muse/track.cpp b/muse2/muse/track.cpp
new file mode 100644
index 00000000..8a51062b
--- /dev/null
+++ b/muse2/muse/track.cpp
@@ -0,0 +1,980 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: track.cpp,v 1.34.2.11 2009/11/30 05:05:49 terminator356 Exp $
+//
+// (C) Copyright 2000-2004 Werner Schweer (ws@seh.de)
+//=========================================================
+
+//#include <qt.h>
+#include <qstring.h>
+
+#include "track.h"
+#include "event.h"
+#include "mididev.h"
+#include "midiport.h"
+#include "song.h"
+#include "xml.h"
+#include "plugin.h"
+#include "drummap.h"
+#include "audio.h"
+#include "globaldefs.h"
+#include "route.h"
+
+unsigned int Track::_soloRefCnt = 0;
+Track* Track::_tmpSoloChainTrack = 0;
+bool Track::_tmpSoloChainDoIns = false;
+bool Track::_tmpSoloChainNoDec = false;
+
+//---------------------------------------------------------
+// addPortCtrlEvents
+//---------------------------------------------------------
+
+void addPortCtrlEvents(MidiTrack* t)
+{
+ const PartList* pl = t->cparts();
+ for(ciPart ip = pl->begin(); ip != pl->end(); ++ip)
+ {
+ Part* part = ip->second;
+ const EventList* el = part->cevents();
+ unsigned len = part->lenTick();
+ for(ciEvent ie = el->begin(); ie != el->end(); ++ie)
+ {
+ const Event& ev = ie->second;
+ // Added by T356. Do not add events which are past the end of the part.
+ if(ev.tick() >= len)
+ break;
+
+ if(ev.type() == Controller)
+ {
+ int tick = ev.tick() + part->tick();
+ int cntrl = ev.dataA();
+ int val = ev.dataB();
+ int ch = t->outChannel();
+
+ MidiPort* mp = &midiPorts[t->outPort()];
+ // Is it a drum controller event, according to the track port's instrument?
+ if(t->type() == Track::DRUM)
+ {
+ MidiController* mc = mp->drumController(cntrl);
+ if(mc)
+ {
+ int note = cntrl & 0x7f;
+ cntrl &= ~0xff;
+ ch = drumMap[note].channel;
+ mp = &midiPorts[drumMap[note].port];
+ cntrl |= drumMap[note].anote;
+ }
+ }
+
+ mp->setControllerVal(ch, tick, cntrl, val, part);
+ }
+ }
+ }
+}
+
+//---------------------------------------------------------
+// removePortCtrlEvents
+//---------------------------------------------------------
+
+void removePortCtrlEvents(MidiTrack* t)
+{
+ const PartList* pl = t->cparts();
+ for(ciPart ip = pl->begin(); ip != pl->end(); ++ip)
+ {
+ Part* part = ip->second;
+ const EventList* el = part->cevents();
+ //unsigned len = part->lenTick();
+ for(ciEvent ie = el->begin(); ie != el->end(); ++ie)
+ {
+ const Event& ev = ie->second;
+ // Added by T356. Do not remove events which are past the end of the part.
+ // No, actually, do remove ALL of them belonging to the part.
+ // Just in case there are stray values left after the part end.
+ //if(ev.tick() >= len)
+ // break;
+
+ if(ev.type() == Controller)
+ {
+ int tick = ev.tick() + part->tick();
+ int cntrl = ev.dataA();
+ int ch = t->outChannel();
+
+ MidiPort* mp = &midiPorts[t->outPort()];
+ // Is it a drum controller event, according to the track port's instrument?
+ if(t->type() == Track::DRUM)
+ {
+ MidiController* mc = mp->drumController(cntrl);
+ if(mc)
+ {
+ int note = cntrl & 0x7f;
+ cntrl &= ~0xff;
+ ch = drumMap[note].channel;
+ mp = &midiPorts[drumMap[note].port];
+ cntrl |= drumMap[note].anote;
+ }
+ }
+
+ mp->deleteController(ch, tick, cntrl, part);
+ }
+ }
+ }
+}
+
+//---------------------------------------------------------
+// y
+//---------------------------------------------------------
+
+int Track::y() const
+ {
+ TrackList* tl = song->tracks();
+ int yy = 0;
+ for (ciTrack it = tl->begin(); it != tl->end(); ++it) {
+ if (this == *it)
+ return yy;
+ yy += (*it)->height();
+ }
+ printf("Track::y(%s): track not in tracklist\n", name().latin1());
+ return -1;
+ }
+
+//---------------------------------------------------------
+// Track::init
+//---------------------------------------------------------
+
+void Track::init()
+ {
+ _activity = 0;
+ _lastActivity = 0;
+ _recordFlag = false;
+ _mute = false;
+ _solo = false;
+ _internalSolo = 0;
+ _off = false;
+ _channels = 0; // 1 - mono, 2 - stereo
+
+ _volumeEnCtrl = true;
+ _volumeEn2Ctrl = true;
+ _panEnCtrl = true;
+ _panEn2Ctrl = true;
+
+ _selected = false;
+ _height = 20;
+ _locked = false;
+ for (int i = 0; i < MAX_CHANNELS; ++i) {
+ //_meter[i] = 0;
+ //_peak[i] = 0;
+ _meter[i] = 0.0;
+ _peak[i] = 0.0;
+ }
+ }
+
+Track::Track(Track::TrackType t)
+ {
+ init();
+ _type = t;
+ }
+
+//Track::Track(const Track& t)
+Track::Track(const Track& t, bool cloneParts)
+ {
+ _activity = t._activity;
+ _lastActivity = t._lastActivity;
+ _recordFlag = t._recordFlag;
+ _mute = t._mute;
+ _solo = t._solo;
+ _internalSolo = t._internalSolo;
+ _off = t._off;
+ _channels = t._channels;
+
+ _volumeEnCtrl = t._volumeEnCtrl;
+ _volumeEn2Ctrl = t._volumeEn2Ctrl;
+ _panEnCtrl = t._panEnCtrl;
+ _panEn2Ctrl = t._panEn2Ctrl;
+
+ _selected = t.selected();
+ _y = t._y;
+ _height = t._height;
+ _comment = t.comment();
+ _name = t.name();
+ _type = t.type();
+ _locked = t.locked();
+
+ if(cloneParts)
+ {
+ const PartList* pl = t.cparts();
+ for (ciPart ip = pl->begin(); ip != pl->end(); ++ip) {
+ Part* newPart = ip->second->clone();
+ newPart->setTrack(this);
+ _parts.add(newPart);
+ }
+ }
+ else
+ {
+ _parts = *(t.cparts());
+ // NOTE: We can't do this because of the way clipboard, cloneList, and undoOp::ModifyTrack, work.
+ // A couple of schemes were conceived to deal with cloneList being invalid, but the best way is
+ // to not alter the part list here. It's a big headache because: Either the parts in the cloneList
+ // need to be reliably looked up replaced with the new ones, or the clipboard and cloneList must be cleared.
+ // Fortunately the ONLY part of muse using this function is track rename (in TrackList and TrackInfo).
+ // So we can get away with leaving this out:
+ //for (iPart ip = _parts.begin(); ip != _parts.end(); ++ip)
+ // ip->second->setTrack(this);
+ }
+
+ for (int i = 0; i < MAX_CHANNELS; ++i) {
+ //_meter[i] = 0;
+ //_peak[i] = 0;
+ _meter[i] = 0.0;
+ _peak[i] = 0.0;
+ }
+ }
+
+//---------------------------------------------------------
+// operator =
+// Added by Tim. Parts' track members MUST point to this track,
+// not some other track, so simple assignment operator won't do!
+//---------------------------------------------------------
+
+Track& Track::operator=(const Track& t)
+{
+ _activity = t._activity;
+ _lastActivity = t._lastActivity;
+ _recordFlag = t._recordFlag;
+ _mute = t._mute;
+ _solo = t._solo;
+ _internalSolo = t._internalSolo;
+ _off = t._off;
+ _channels = t._channels;
+
+ _volumeEnCtrl = t._volumeEnCtrl;
+ _volumeEn2Ctrl = t._volumeEn2Ctrl;
+ _panEnCtrl = t._panEnCtrl;
+ _panEn2Ctrl = t._panEn2Ctrl;
+
+ _selected = t.selected();
+ _y = t._y;
+ _height = t._height;
+ _comment = t.comment();
+ _name = t.name();
+ _type = t.type();
+ _locked = t.locked();
+
+ _parts = *(t.cparts());
+ // NOTE: Can't do this. See comments in copy constructor.
+ //for (iPart ip = _parts.begin(); ip != _parts.end(); ++ip)
+ // ip->second->setTrack(this);
+
+ for (int i = 0; i < MAX_CHANNELS; ++i) {
+ _meter[i] = t._meter[i];
+ _peak[i] = t._peak[i];
+ }
+ return *this;
+}
+
+//---------------------------------------------------------
+// setDefaultName
+// generate unique name for track
+//---------------------------------------------------------
+
+void Track::setDefaultName()
+ {
+ QString base;
+ switch(_type) {
+ case MIDI:
+ case DRUM:
+ case WAVE:
+ base = QString("Track");
+ break;
+ case AUDIO_OUTPUT:
+ base = QString("Out");
+ break;
+ case AUDIO_GROUP:
+ base = QString("Group");
+ break;
+ case AUDIO_AUX:
+ base = QString("Aux");
+ break;
+ case AUDIO_INPUT:
+ base = QString("Input");
+ break;
+ case AUDIO_SOFTSYNTH:
+ base = QString("Synth");
+ break;
+ };
+ base += " ";
+ for (int i = 1; true; ++i) {
+ QString n;
+ n.setNum(i);
+ QString s = base + n;
+ Track* track = song->findTrack(s);
+ if (track == 0) {
+ setName(s);
+ break;
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// clearRecAutomation
+//---------------------------------------------------------
+
+void Track::clearRecAutomation(bool clearList)
+{
+ _volumeEnCtrl = true;
+ _volumeEn2Ctrl = true;
+ _panEnCtrl = true;
+ _panEn2Ctrl = true;
+
+ if(isMidiTrack())
+ return;
+
+ AudioTrack *t = (AudioTrack*)this;
+ Pipeline *pl = t->efxPipe();
+ PluginI *p;
+ for(iPluginI i = pl->begin(); i != pl->end(); ++i)
+ {
+ p = *i;
+ if(!p)
+ continue;
+ p->enableAllControllers(true);
+ }
+
+ if(clearList)
+ t->recEvents()->clear();
+}
+
+//---------------------------------------------------------
+// dump
+//---------------------------------------------------------
+
+void Track::dump() const
+ {
+ printf("Track <%s>: typ %d, parts %zd sel %d\n",
+ _name.latin1(), _type, _parts.size(), _selected);
+ }
+
+//---------------------------------------------------------
+// MidiTrack
+//---------------------------------------------------------
+
+MidiTrack::MidiTrack()
+ : Track(MIDI)
+ {
+ init();
+ _events = new EventList;
+ _mpevents = new MPEventList;
+ }
+
+//MidiTrack::MidiTrack(const MidiTrack& mt)
+// : Track(mt)
+MidiTrack::MidiTrack(const MidiTrack& mt, bool cloneParts)
+ : Track(mt, cloneParts)
+ {
+ _outPort = mt.outPort();
+ _outChannel = mt.outChannel();
+ ///_inPortMask = mt.inPortMask();
+ ///_inChannelMask = mt.inChannelMask();
+ _events = new EventList;
+ _mpevents = new MPEventList;
+ transposition = mt.transposition;
+ velocity = mt.velocity;
+ delay = mt.delay;
+ len = mt.len;
+ compression = mt.compression;
+ _recEcho = mt.recEcho();
+ }
+
+MidiTrack::~MidiTrack()
+ {
+ delete _events;
+ delete _mpevents;
+ }
+
+//---------------------------------------------------------
+// init
+//---------------------------------------------------------
+
+void MidiTrack::init()
+ {
+ _outPort = 0;
+ _outChannel = 0;
+ // Changed by Tim. p3.3.8
+ //_inPortMask = 0xffff;
+ ///_inPortMask = 0xffffffff;
+
+ ///_inChannelMask = 0xffff; // "ALL"
+ transposition = 0;
+ velocity = 0;
+ delay = 0;
+ len = 100; // percent
+ compression = 100; // percent
+ _recEcho = true;
+ }
+
+//---------------------------------------------------------
+// setOutChanAndUpdate
+//---------------------------------------------------------
+
+void MidiTrack::setOutChanAndUpdate(int i)
+{
+ if(_outChannel == i)
+ return;
+
+ //removePortCtrlEvents();
+ removePortCtrlEvents(this);
+ _outChannel = i;
+ //addPortCtrlEvents();
+ addPortCtrlEvents(this);
+}
+
+//---------------------------------------------------------
+// setOutPortAndUpdate
+//---------------------------------------------------------
+
+void MidiTrack::setOutPortAndUpdate(int i)
+{
+ if(_outPort == i)
+ return;
+
+ //removePortCtrlEvents();
+ removePortCtrlEvents(this);
+ _outPort = i;
+ //addPortCtrlEvents();
+ addPortCtrlEvents(this);
+}
+
+//---------------------------------------------------------
+// setInPortAndChannelMask
+// For old song files with port mask (max 32 ports) and channel mask (16 channels),
+// before midi routing was added (the iR button). p3.3.48
+//---------------------------------------------------------
+
+void MidiTrack::setInPortAndChannelMask(unsigned int portmask, int chanmask)
+{
+ //if(!portmask || !chanmask)
+ // return;
+
+ //RouteList* rl = inRoutes();
+ bool changed = false;
+
+ for(int port = 0; port < 32; ++port) // 32 is the old maximum number of ports.
+ {
+ // p3.3.50 If the port was not used in the song file to begin with, just ignore it.
+ // This saves from having all of the first 32 ports' channels connected.
+ if(!midiPorts[port].foundInSongFile())
+ continue;
+
+ //if(!(portmask & (1 << port)))
+ // continue;
+
+ // p3.3.50 Removed. Allow to connect to port with no device so user can change device later.
+ //MidiPort* mp = &midiPorts[port];
+ //MidiDevice* md = mp->device();
+ //if(!md)
+ // continue;
+
+ //for(int ch = 0; ch < MIDI_CHANNELS; ++ch) // p3.3.50 Removed.
+ //{
+ //if(!(chanmask & (1 << ch)))
+ // continue;
+
+ //Route aRoute(md, ch);
+ //Route bRoute(this, ch);
+ Route aRoute(port, chanmask); // p3.3.50
+ Route bRoute(this, chanmask);
+
+ // p3.3.50 Removed.
+ //iRoute iir = rl->begin();
+ //for(; iir != rl->end(); ++iir)
+ //{
+ //if(*iir == aRoute)
+ // if(iir->type == Route::MIDI_PORT_ROUTE && iir->midiPort == port) // p3.3.50
+ // break;
+ //}
+
+ // Route wanted?
+ //if((portmask & (1 << port)) && (chanmask & (1 << ch)))
+ if(portmask & (1 << port)) // p3.3.50
+ {
+ // Route already exists?
+ //if(iir != rl->end())
+ // continue;
+ audio->msgAddRoute(aRoute, bRoute);
+ changed = true;
+ }
+ else
+ {
+ // Route does not exist?
+ //if(iir == rl->end())
+ // continue;
+ audio->msgRemoveRoute(aRoute, bRoute);
+ changed = true;
+ }
+ //}
+ }
+
+ if(changed)
+ {
+ audio->msgUpdateSoloStates();
+ song->update(SC_ROUTE);
+ }
+}
+
+/*
+//---------------------------------------------------------
+// addPortCtrlEvents
+//---------------------------------------------------------
+
+void MidiTrack::addPortCtrlEvents()
+{
+ const PartList* pl = cparts();
+ for(ciPart ip = pl->begin(); ip != pl->end(); ++ip)
+ {
+ Part* part = ip->second;
+ const EventList* el = part->cevents();
+ for(ciEvent ie = el->begin(); ie != el->end(); ++ie)
+ {
+ const Event& ev = ie->second;
+ if(ev.type() == Controller)
+ {
+ int tick = ev.tick() + part->tick();
+ int cntrl = ev.dataA();
+ int val = ev.dataB();
+ int ch = _outChannel;
+
+ MidiPort* mp = &midiPorts[_outPort];
+ // Is it a drum controller event, according to the track port's instrument?
+ if(type() == DRUM)
+ {
+ MidiController* mc = mp->drumController(cntrl);
+ if(mc)
+ {
+ int note = cntrl & 0x7f;
+ cntrl &= ~0xff;
+ ch = drumMap[note].channel;
+ mp = &midiPorts[drumMap[note].port];
+ cntrl |= drumMap[note].anote;
+ }
+ }
+
+ mp->setControllerVal(ch, tick, cntrl, val, part);
+ }
+ }
+ }
+}
+
+//---------------------------------------------------------
+// removePortCtrlEvents
+//---------------------------------------------------------
+
+void MidiTrack::removePortCtrlEvents()
+{
+ const PartList* pl = cparts();
+ for(ciPart ip = pl->begin(); ip != pl->end(); ++ip)
+ {
+ Part* part = ip->second;
+ const EventList* el = part->cevents();
+ for(ciEvent ie = el->begin(); ie != el->end(); ++ie)
+ {
+ const Event& ev = ie->second;
+ if(ev.type() == Controller)
+ {
+ int tick = ev.tick() + part->tick();
+ int cntrl = ev.dataA();
+ int ch = _outChannel;
+
+ MidiPort* mp = &midiPorts[_outPort];
+ // Is it a drum controller event, according to the track port's instrument?
+ if(type() == DRUM)
+ {
+ MidiController* mc = mp->drumController(cntrl);
+ if(mc)
+ {
+ int note = cntrl & 0x7f;
+ cntrl &= ~0xff;
+ ch = drumMap[note].channel;
+ mp = &midiPorts[drumMap[note].port];
+ cntrl |= drumMap[note].anote;
+ }
+ }
+
+ mp->deleteController(ch, tick, cntrl, part);
+ }
+ }
+ }
+}
+*/
+
+//---------------------------------------------------------
+// addPart
+//---------------------------------------------------------
+
+iPart Track::addPart(Part* p)
+ {
+ p->setTrack(this);
+ return _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;
+ }
+
+//---------------------------------------------------------
+// newPart
+//---------------------------------------------------------
+
+Part* MidiTrack::newPart(Part*p, bool clone)
+ {
+ MidiPart* part = clone ? new MidiPart(this, p->events()) : new MidiPart(this);
+ if (p) {
+ part->setName(p->name());
+ part->setColorIndex(p->colorIndex());
+
+ *(PosLen*)part = *(PosLen*)p;
+ part->setMute(p->mute());
+ }
+
+ if(clone)
+ //p->chainClone(part);
+ chainClone(p, part);
+
+ return part;
+ }
+
+//---------------------------------------------------------
+// automationType
+//---------------------------------------------------------
+
+AutomationType MidiTrack::automationType() const
+ {
+ MidiPort* port = &midiPorts[outPort()];
+ return port->automationType(outChannel());
+ }
+
+//---------------------------------------------------------
+// setAutomationType
+//---------------------------------------------------------
+
+void MidiTrack::setAutomationType(AutomationType t)
+ {
+ MidiPort* port = &midiPorts[outPort()];
+ port->setAutomationType(outChannel(), t);
+ }
+
+//---------------------------------------------------------
+// Track::writeProperties
+//---------------------------------------------------------
+
+void Track::writeProperties(int level, Xml& xml) const
+ {
+ xml.strTag(level, "name", _name);
+ if (!_comment.isEmpty())
+ xml.strTag(level, "comment", _comment);
+ xml.intTag(level, "record", _recordFlag);
+ xml.intTag(level, "mute", mute());
+ xml.intTag(level, "solo", solo());
+ xml.intTag(level, "off", off());
+ xml.intTag(level, "channels", _channels);
+ xml.intTag(level, "height", _height);
+ xml.intTag(level, "locked", _locked);
+ if (_selected)
+ xml.intTag(level, "selected", _selected);
+ }
+
+//---------------------------------------------------------
+// Track::readProperties
+//---------------------------------------------------------
+
+bool Track::readProperties(Xml& xml, const QString& tag)
+ {
+ if (tag == "name")
+ _name = xml.parse1();
+ else if (tag == "comment")
+ _comment = xml.parse1();
+ else if (tag == "record") {
+ bool recordFlag = xml.parseInt();
+ setRecordFlag1(recordFlag);
+ setRecordFlag2(recordFlag);
+ }
+ else if (tag == "mute")
+ _mute = xml.parseInt();
+ else if (tag == "solo")
+ _solo = xml.parseInt();
+ else if (tag == "off")
+ _off = xml.parseInt();
+ else if (tag == "height")
+ _height = xml.parseInt();
+ else if (tag == "channels")
+ {
+ _channels = xml.parseInt();
+ if(_channels > MAX_CHANNELS)
+ _channels = MAX_CHANNELS;
+ }
+ else if (tag == "locked")
+ _locked = xml.parseInt();
+ else if (tag == "selected")
+ _selected = xml.parseInt();
+ else
+ return true;
+ return false;
+ }
+
+//---------------------------------------------------------
+// writeRouting
+//---------------------------------------------------------
+
+void Track::writeRouting(int level, Xml& xml) const
+{
+ QString s;
+
+ if (type() == Track::AUDIO_INPUT)
+ {
+ const RouteList* rl = &_inRoutes;
+ for (ciRoute r = rl->begin(); r != rl->end(); ++r)
+ {
+ if(!r->name().isEmpty())
+ {
+ s = QT_TR_NOOP("Route");
+ if(r->channel != -1)
+ s += QString(QT_TR_NOOP(" channel=\"%1\"")).arg(r->channel);
+
+ ///Route dst(name(), true, r->channel);
+ //xml.tag(level++, "Route");
+ xml.tag(level++, s);
+
+ // p3.3.38 New routing scheme.
+ ///xml.strTag(level, "srcNode", r->name());
+ //xml.tag(level, "source type=\"%d\" name=\"%s\"/", r->type, r->name().latin1());
+ s = QT_TR_NOOP("source");
+ if(r->type != Route::TRACK_ROUTE)
+ s += QString(QT_TR_NOOP(" type=\"%1\"")).arg(r->type);
+ //s += QString(QT_TR_NOOP(" name=\"%1\"/")).arg(r->name());
+ s += QString(QT_TR_NOOP(" name=\"%1\"/")).arg(Xml::xmlString(r->name()));
+ xml.tag(level, s);
+
+ ///xml.strTag(level, "dstNode", dst.name());
+
+ //if(r->channel != -1)
+ // xml.tag(level, "dest type=\"%d\" channel=\"%d\" name=\"%s\"/", Route::TRACK_ROUTE, r->channel, name().latin1());
+ //else
+ // xml.tag(level, "dest type=\"%d\" name=\"%s\"/", Route::TRACK_ROUTE, name().latin1());
+
+ //xml.tag(level, "dest name=\"%s\"/", name().latin1());
+ xml.tag(level, "dest name=\"%s\"/", Xml::xmlString(name()).latin1());
+
+ xml.etag(level--, "Route");
+ }
+ }
+ }
+
+ const RouteList* rl = &_outRoutes;
+ for (ciRoute r = rl->begin(); r != rl->end(); ++r)
+ {
+ //if(!r->name().isEmpty())
+ if(r->midiPort != -1 || !r->name().isEmpty()) // p3.3.49
+ {
+ ///QString src(name());
+ ///if (type() == Track::AUDIO_OUTPUT)
+ ///{
+ ///Route s(src, false, r->channel);
+ ///src = s.name();
+ ///}
+
+ s = QT_TR_NOOP("Route");
+ if(r->type == Route::MIDI_PORT_ROUTE) // p3.3.50
+ {
+ if(r->channel != -1 && r->channel != 0)
+ s += QString(QT_TR_NOOP(" channelMask=\"%1\"")).arg(r->channel); // Use new channel mask.
+ }
+ else
+ {
+ if(r->channel != -1)
+ s += QString(QT_TR_NOOP(" channel=\"%1\"")).arg(r->channel);
+ }
+ if(r->channels != -1)
+ s += QString(QT_TR_NOOP(" channels=\"%1\"")).arg(r->channels);
+ if(r->remoteChannel != -1)
+ s += QString(QT_TR_NOOP(" remch=\"%1\"")).arg(r->remoteChannel);
+
+ //xml.tag(level++, "Route");
+ xml.tag(level++, s);
+
+ ///xml.strTag(level, "srcNode", src);
+ //if(r->channel != -1)
+
+ // Allow for a regular mono or stereo track to feed a multi-channel synti.
+ // thisChannel is the 'starting' channel of this source if feeding a regular track.
+ //if(r->type == Route::TRACK_ROUTE && r->track->isSynti() && r->channel != -1)
+ //if(isSynti() && r->thisChannel != -1)
+ //xml.tag(level, "source type=\"%d\" channel=\"%d\" name=\"%s\"/", Route::TRACK_ROUTE, r->channel, name().latin1());
+ // xml.tag(level, "source type=\"%d\" channel=\"%d\" name=\"%s\"/", Route::TRACK_ROUTE, r->thisChannel, name().latin1());
+ //else
+
+ //if(r->channel != -1)
+ // xml.tag(level, "source type=\"%d\" channel=\"%d\" name=\"%s\"/", Route::TRACK_ROUTE, r->channel, name().latin1());
+ //else
+ // xml.tag(level, "source type=\"%d\" name=\"%s\"/", Route::TRACK_ROUTE, name().latin1());
+ //xml.tag(level, "source name=\"%s\"/", name().latin1());
+ xml.tag(level, "source name=\"%s\"/", Xml::xmlString(name()).latin1());
+
+ ///xml.strTag(level, "dstNode", r->name());
+ //if(r->channel != -1)
+ // xml.tag(level, "dest type=\"%d\" channel=\"%d\" name=\"%s\"/", r->type, r->channel, r->name().latin1());
+ //else
+ // xml.tag(level, "dest type=\"%d\" name=\"%s\"/", r->type, r->name().latin1());
+
+ // Allow for a regular mono or stereo track to feed a multi-channel synti.
+ // Channel is the 'starting' channel of the destination.
+ //if(r->type == Route::TRACK_ROUTE && r->track->isSynti() && r->channel != -1)
+
+ //if(r->type == Route::TRACK_ROUTE && r->track->type() == Track::AUDIO_SOFTSYNTH && r->remoteChannel != -1)
+ // xml.tag(level, "dest type=\"%d\" channel=\"%d\" name=\"%s\"/", r->type, r->remoteChannel, r->name().latin1());
+ //else
+ //if(r->type == Route::MIDI_DEVICE_ROUTE)
+ // xml.tag(level, "dest devtype=\"%d\" name=\"%s\"/", r->device->deviceType(), r->name().latin1());
+ //else
+ // xml.tag(level, "dest type=\"%d\" name=\"%s\"/", r->type, r->name().latin1());
+
+ s = QT_TR_NOOP("dest");
+
+ //if(r->type == Route::MIDI_DEVICE_ROUTE) // p3.3.49 Obsolete since 1.1-RC2
+ // s += QString(QT_TR_NOOP(" devtype=\"%1\"")).arg(r->device->deviceType()); //
+ //if(r->type != Route::TRACK_ROUTE) //
+ if(r->type != Route::TRACK_ROUTE && r->type != Route::MIDI_PORT_ROUTE)
+ s += QString(QT_TR_NOOP(" type=\"%1\"")).arg(r->type);
+
+ //s += QString(QT_TR_NOOP(" name=\"%1\"/")).arg(r->name());
+ if(r->type == Route::MIDI_PORT_ROUTE) // p3.3.49
+ s += QString(QT_TR_NOOP(" mport=\"%1\"/")).arg(r->midiPort);
+ else
+ s += QString(QT_TR_NOOP(" name=\"%1\"/")).arg(Xml::xmlString(r->name()));
+
+ xml.tag(level, s);
+
+ xml.etag(level--, "Route");
+ }
+ }
+}
+
+//---------------------------------------------------------
+// MidiTrack::write
+//---------------------------------------------------------
+
+void MidiTrack::write(int level, Xml& xml) const
+ {
+ const char* tag;
+
+ if (type() == DRUM)
+ tag = "drumtrack";
+ else
+ tag = "miditrack";
+ xml.tag(level++, tag);
+ Track::writeProperties(level, xml);
+
+ xml.intTag(level, "device", outPort());
+ xml.intTag(level, "channel", outChannel());
+ //xml.intTag(level, "inportMap", inPortMask());
+ ///xml.uintTag(level, "inportMap", inPortMask()); // Obsolete
+ ///xml.intTag(level, "inchannelMap", inChannelMask()); // Obsolete
+ xml.intTag(level, "locked", _locked);
+ xml.intTag(level, "echo", _recEcho);
+
+ xml.intTag(level, "transposition", transposition);
+ xml.intTag(level, "velocity", velocity);
+ xml.intTag(level, "delay", delay);
+ xml.intTag(level, "len", len);
+ xml.intTag(level, "compression", compression);
+ xml.intTag(level, "automation", int(automationType()));
+
+ const PartList* pl = cparts();
+ for (ciPart p = pl->begin(); p != pl->end(); ++p)
+ p->second->write(level, xml);
+ xml.etag(level, tag);
+ }
+
+//---------------------------------------------------------
+// MidiTrack::read
+//---------------------------------------------------------
+
+void MidiTrack::read(Xml& xml)
+ {
+ unsigned int portmask = 0;
+ int chanmask = 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 == "transposition")
+ transposition = xml.parseInt();
+ else if (tag == "velocity")
+ velocity = xml.parseInt();
+ else if (tag == "delay")
+ delay = xml.parseInt();
+ else if (tag == "len")
+ len = xml.parseInt();
+ else if (tag == "compression")
+ compression = xml.parseInt();
+ else if (tag == "part") {
+ //Part* p = newPart();
+ //p->read(xml);
+ Part* p = 0;
+ p = readXmlPart(xml, this);
+ if(p)
+ parts()->add(p);
+ }
+ else if (tag == "device")
+ setOutPort(xml.parseInt());
+ else if (tag == "channel")
+ setOutChannel(xml.parseInt());
+ else if (tag == "inportMap")
+ //setInPortMask(xml.parseInt());
+ ///setInPortMask(xml.parseUInt());
+ //xml.skip(tag); // Obsolete.
+ portmask = xml.parseUInt(); // p3.3.48: Support old files.
+ else if (tag == "inchannelMap")
+ ///setInChannelMask(xml.parseInt());
+ //xml.skip(tag); // Obsolete.
+ chanmask = xml.parseInt(); // p3.3.48: Support old files.
+ else if (tag == "locked")
+ _locked = xml.parseInt();
+ else if (tag == "echo")
+ _recEcho = xml.parseInt();
+ else if (tag == "automation")
+ setAutomationType(AutomationType(xml.parseInt()));
+ else if (Track::readProperties(xml, tag)) {
+ // version 1.0 compatibility:
+ if (tag == "track" && xml.majorVersion() == 1 && xml.minorVersion() == 0)
+ break;
+ xml.unknown("MidiTrack");
+ }
+ break;
+ case Xml::Attribut:
+ break;
+ case Xml::TagEnd:
+ if (tag == "miditrack" || tag == "drumtrack")
+ {
+ setInPortAndChannelMask(portmask, chanmask); // p3.3.48: Support old files.
+ return;
+ }
+ default:
+ break;
+ }
+ }
+ }
+
diff --git a/muse2/muse/track.h b/muse2/muse/track.h
new file mode 100644
index 00000000..c0a11056
--- /dev/null
+++ b/muse2/muse/track.h
@@ -0,0 +1,675 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: track.h,v 1.39.2.17 2009/12/20 05:00:35 terminator356 Exp $
+//
+// (C) Copyright 1999-2004 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __TRACK_H__
+#define __TRACK_H__
+
+#include <qstring.h>
+#include <vector>
+#include <algorithm>
+
+#include "part.h"
+#include "key.h"
+#include "node.h"
+#include "route.h"
+#include "ctrl.h"
+#include "globaldefs.h"
+
+class Pipeline;
+class Xml;
+class SndFile;
+class MPEventList;
+class SynthI;
+class PluginI;
+
+//---------------------------------------------------------
+// Track
+//---------------------------------------------------------
+
+class Track {
+ public:
+ enum TrackType {
+ MIDI=0, DRUM, WAVE, AUDIO_OUTPUT, AUDIO_INPUT, AUDIO_GROUP,
+ AUDIO_AUX, AUDIO_SOFTSYNTH
+ };
+ private:
+ TrackType _type;
+ QString _comment;
+
+ PartList _parts;
+
+ void init();
+
+ protected:
+ static unsigned int _soloRefCnt;
+ static Track* _tmpSoloChainTrack;
+ static bool _tmpSoloChainDoIns;
+ static bool _tmpSoloChainNoDec;
+
+ // p3.3.38
+ RouteList _inRoutes;
+ RouteList _outRoutes;
+
+ QString _name;
+ bool _recordFlag;
+ bool _mute;
+ bool _solo;
+ unsigned int _internalSolo;
+ bool _off;
+ int _channels; // 1 - mono, 2 - stereo
+
+ bool _volumeEnCtrl;
+ bool _volumeEn2Ctrl;
+ bool _panEnCtrl;
+ bool _panEn2Ctrl;
+
+ int _activity;
+ int _lastActivity;
+ //int _meter[MAX_CHANNELS];
+ //int _peak[MAX_CHANNELS];
+ double _meter[MAX_CHANNELS];
+ double _peak[MAX_CHANNELS];
+
+ int _y;
+ int _height; // visual height in arranger
+
+ bool _locked;
+ bool _selected;
+ bool readProperties(Xml& xml, const QString& tag);
+ void writeProperties(int level, Xml& xml) const;
+
+ public:
+ Track(TrackType);
+ //Track(const Track&);
+ Track(const Track&, bool cloneParts);
+ virtual ~Track() {};
+ virtual Track& operator=(const Track& t);
+ QString comment() const { return _comment; }
+ void setComment(const QString& s) { _comment = s; }
+
+ int y() const;
+ void setY(int n) { _y = n; }
+ int height() const { return _height; }
+ void setHeight(int n) { _height = n; }
+
+ bool selected() const { return _selected; }
+ void setSelected(bool f) { _selected = f; }
+ bool locked() const { return _locked; }
+ void setLocked(bool b) { _locked = b; }
+
+ bool volumeControllerEnabled() const { return _volumeEnCtrl; }
+ bool volumeControllerEnabled2() const { return _volumeEn2Ctrl; }
+ bool panControllerEnabled() const { return _panEnCtrl; }
+ bool panControllerEnabled2() const { return _panEn2Ctrl; }
+ void enableVolumeController(bool b) { _volumeEnCtrl = b; }
+ void enable2VolumeController(bool b) { _volumeEn2Ctrl = b; }
+ void enablePanController(bool b) { _panEnCtrl = b; }
+ void enable2PanController(bool b) { _panEn2Ctrl = b; }
+ void clearRecAutomation(bool clearList);
+
+ const QString& name() const { return _name; }
+ virtual void setName(const QString& s) { _name = s; }
+
+ TrackType type() const { return _type; }
+ void setType(TrackType t) { _type = t; }
+
+ // routing
+ RouteList* inRoutes() { return &_inRoutes; }
+ RouteList* outRoutes() { return &_outRoutes; }
+ bool noInRoute() const { return _inRoutes.empty(); }
+ bool noOutRoute() const { return _outRoutes.empty(); }
+ void writeRouting(int, Xml&) const;
+
+ PartList* parts() { return &_parts; }
+ const PartList* cparts() const { return &_parts; }
+ Part* findPart(unsigned tick);
+ iPart addPart(Part* p);
+
+ virtual void write(int, Xml&) const = 0;
+
+ virtual Track* newTrack() const = 0;
+ //virtual Track* clone() const = 0;
+ virtual Track* clone(bool CloneParts) const = 0;
+
+ virtual bool setRecordFlag1(bool f) = 0;
+ virtual void setRecordFlag2(bool f) = 0;
+
+ virtual Part* newPart(Part*p=0, bool clone = false) = 0;
+ void dump() const;
+ virtual void splitPart(Part*, int, Part*&, Part*&);
+
+ virtual void setMute(bool val);
+ virtual void setOff(bool val);
+ virtual void updateSoloStates(bool noDec) = 0;
+ virtual void updateInternalSoloStates();
+ void updateSoloState();
+ void setInternalSolo(unsigned int val);
+ static void clearSoloRefCounts();
+ virtual void setSolo(bool val) = 0;
+ virtual bool isMute() const = 0;
+
+ unsigned int internalSolo() const { return _internalSolo; }
+ bool soloMode() const { return _soloRefCnt; }
+ bool solo() const { return _solo; }
+ bool mute() const { return _mute; }
+ bool off() const { return _off; }
+ bool recordFlag() const { return _recordFlag; }
+
+ int activity() { return _activity; }
+ void setActivity(int v) { _activity = v; }
+ int lastActivity() { return _lastActivity; }
+ void setLastActivity(int v) { _lastActivity = v; }
+ void addActivity(int v) { _activity += v; }
+ void resetPeaks();
+ static void resetAllMeter();
+ //int meter(int ch) const { return _meter[ch]; }
+ //int peak(int ch) const { return _peak[ch]; }
+ double meter(int ch) const { return _meter[ch]; }
+ double peak(int ch) const { return _peak[ch]; }
+ void resetMeter();
+
+ bool readProperty(Xml& xml, const QString& tag);
+ void setDefaultName();
+ int channels() const { return _channels; }
+ virtual void setChannels(int n);
+ bool isMidiTrack() const { return type() == MIDI || type() == DRUM; }
+ virtual bool canRecord() const { return false; }
+ virtual AutomationType automationType() const = 0;
+ virtual void setAutomationType(AutomationType t) = 0;
+ };
+
+//---------------------------------------------------------
+// MidiTrack
+//---------------------------------------------------------
+
+class MidiTrack : public Track {
+ //friend class AudioTrack;
+ //static unsigned int _soloRefCnt;
+
+ int _outPort;
+ int _outChannel;
+ //int _inPortMask;
+ ///unsigned int _inPortMask; // bitmask of accepted record ports
+ ///int _inChannelMask; // bitmask of accepted record channels
+ bool _recEcho; // For midi (and audio). Whether to echo incoming record events to output device.
+
+ EventList* _events; // tmp Events during midi import
+ MPEventList* _mpevents; // tmp Events druring recording
+
+ public:
+ MidiTrack();
+ //MidiTrack(const MidiTrack&);
+ MidiTrack(const MidiTrack&, bool cloneParts);
+ virtual ~MidiTrack();
+
+ void init();
+ virtual AutomationType automationType() const;
+ virtual void setAutomationType(AutomationType);
+
+ // play parameter
+ int transposition;
+ int velocity;
+ int delay;
+ int len;
+ int compression;
+
+ virtual bool setRecordFlag1(bool f) { _recordFlag = f; return true;}
+ virtual void setRecordFlag2(bool) {}
+
+ EventList* events() const { return _events; }
+ MPEventList* mpevents() const { return _mpevents; }
+
+ virtual void read(Xml&);
+ virtual void write(int, Xml&) const;
+
+ virtual MidiTrack* newTrack() const { return new MidiTrack(); }
+ //virtual MidiTrack* clone() const { return new MidiTrack(*this); }
+ virtual MidiTrack* clone(bool cloneParts) const { return new MidiTrack(*this, cloneParts); }
+ virtual Part* newPart(Part*p=0, bool clone=false);
+
+ void setOutChannel(int i) { _outChannel = i; }
+ void setOutPort(int i) { _outPort = i; }
+ void setOutChanAndUpdate(int i);
+ void setOutPortAndUpdate(int i);
+
+ //void setInPortMask(int i) { _inPortMask = i; }
+ ///void setInPortMask(unsigned int i) { _inPortMask = i; } // Obsolete
+ ///void setInChannelMask(int i) { _inChannelMask = i; } //
+ // Backward compatibility: For reading old songs.
+ void setInPortAndChannelMask(unsigned int /*portmask*/, int /*chanmask*/);
+
+ void setRecEcho(bool b) { _recEcho = b; }
+ int outPort() const { return _outPort; }
+ //int inPortMask() const { return _inPortMask; }
+ ///unsigned int inPortMask() const { return _inPortMask; }
+ int outChannel() const { return _outChannel; }
+ ///int inChannelMask() const { return _inChannelMask; }
+ bool recEcho() const { return _recEcho; }
+
+ virtual bool isMute() const;
+ virtual void setSolo(bool val);
+ virtual void updateSoloStates(bool noDec);
+ virtual void updateInternalSoloStates();
+
+ //bool soloMode() const { return _soloRefCnt; }
+
+ virtual bool canRecord() const { return true; }
+ };
+
+//---------------------------------------------------------
+// AudioTrack
+// this track can hold audio automation data and can
+// hold tracktypes AUDIO, AUDIO_MASTER, AUDIO_GROUP,
+// AUDIO_INPUT, AUDIO_SOFTSYNTH, AUDIO_AUX
+//---------------------------------------------------------
+
+class AudioTrack : public Track {
+ //friend class MidiTrack;
+ //static unsigned int _soloRefCnt;
+
+ bool _haveData;
+
+ CtrlListList _controller;
+ CtrlRecList _recEvents; // recorded automation events
+
+ bool _prefader; // prefader metering
+ std::vector<double> _auxSend;
+ Pipeline* _efxPipe;
+
+ AutomationType _automationType;
+
+ //RouteList _inRoutes;
+ //RouteList _outRoutes;
+
+ bool _sendMetronome;
+
+ //void readRecfile(Xml& xml);
+ void readAuxSend(Xml& xml);
+
+ protected:
+ float** outBuffers;
+ //float* outBuffers[MAX_CHANNELS];
+ int _totalOutChannels;
+ int _totalInChannels;
+
+ unsigned bufferPos;
+ virtual bool getData(unsigned, int, unsigned, float**);
+ SndFile* _recFile;
+ Fifo fifo; // fifo -> _recFile
+ bool _processed;
+
+ public:
+ AudioTrack(TrackType t);
+ //AudioTrack(TrackType t, int num_out_bufs = MAX_CHANNELS);
+
+ //AudioTrack(const AudioTrack&);
+ AudioTrack(const AudioTrack&, bool cloneParts);
+ virtual ~AudioTrack();
+
+ virtual bool setRecordFlag1(bool f);
+ virtual void setRecordFlag2(bool f);
+
+ bool processed() { return _processed; }
+ //void setProcessed(bool v) { _processed = v; }
+
+ void addController(CtrlList*);
+ void removeController(int id);
+ void swapControllerIDX(int idx1, int idx2);
+
+ bool readProperties(Xml&, const QString&);
+ void writeProperties(int, Xml&) const;
+
+ void mapRackPluginsToControllers();
+ void showPendingPluginNativeGuis();
+
+ //virtual AudioTrack* clone() const = 0;
+ virtual AudioTrack* clone(bool cloneParts) const = 0;
+ virtual Part* newPart(Part*p=0, bool clone=false);
+
+ SndFile* recFile() const { return _recFile; }
+ void setRecFile(SndFile* sf) { _recFile = sf; }
+
+ CtrlListList* controller() { return &_controller; }
+
+ virtual void setChannels(int n);
+ virtual void setTotalOutChannels(int num);
+ virtual int totalOutChannels() { return _totalOutChannels; }
+ virtual void setTotalInChannels(int num);
+ virtual int totalInChannels() { return _totalInChannels; }
+
+ virtual bool isMute() const;
+ virtual void setSolo(bool val);
+ virtual void updateSoloStates(bool noDec);
+ virtual void updateInternalSoloStates();
+
+ //bool soloMode() const { return _soloRefCnt; }
+
+ void putFifo(int channels, unsigned long n, float** bp);
+
+ void record();
+
+ virtual void setMute(bool val);
+ virtual void setOff(bool val);
+
+ void setSendMetronome(bool val) { _sendMetronome = val; }
+ bool sendMetronome() const { return _sendMetronome; }
+
+ double volume() const;
+ void setVolume(double val);
+ double pan() const;
+ void setPan(double val);
+
+ bool prefader() const { return _prefader; }
+ double auxSend(int idx) const;
+ void setAuxSend(int idx, double v);
+ void addAuxSend(int n);
+
+ void setPrefader(bool val);
+ Pipeline* efxPipe() { return _efxPipe; }
+ void deleteAllEfxGuis();
+ void clearEfxList();
+ void addPlugin(PluginI* plugin, int idx);
+
+ double pluginCtrlVal(int ctlID) const;
+ void setPluginCtrlVal(int param, double val);
+
+ void readVolume(Xml& xml);
+ //void writeRouting(int, Xml&) const;
+
+ // routing
+ //RouteList* inRoutes() { return &_inRoutes; }
+ //RouteList* outRoutes() { return &_outRoutes; }
+ //bool noInRoute() const { return _inRoutes.empty(); }
+ //bool noOutRoute() const { return _outRoutes.empty(); }
+
+ virtual void preProcessAlways() { _processed = false; }
+ virtual void addData(unsigned /*samplePos*/, int /*channels*/, int /*srcStartChan*/, int /*srcChannels*/, unsigned /*frames*/, float** /*buffer*/);
+ virtual void copyData(unsigned /*samplePos*/, int /*channels*/, int /*srcStartChan*/, int /*srcChannels*/, unsigned /*frames*/, float** /*buffer*/);
+ virtual bool hasAuxSend() const { return false; }
+
+ // automation
+ virtual AutomationType automationType() const { return _automationType; }
+ virtual void setAutomationType(AutomationType t);
+ void processAutomationEvents();
+ CtrlRecList* recEvents() { return &_recEvents; }
+ void recordAutomation(int n, double v);
+ void startAutoRecord(int, double);
+ void stopAutoRecord(int, double);
+ void setControllerMode(int, CtrlList::Mode m);
+ void clearControllerEvents(int);
+ void seekPrevACEvent(int);
+ void seekNextACEvent(int);
+ void eraseACEvent(int, int);
+ void eraseRangeACEvents(int, int, int);
+ void addACEvent(int, int, double);
+ };
+
+//---------------------------------------------------------
+// AudioInput
+//---------------------------------------------------------
+
+class AudioInput : public AudioTrack {
+ void* jackPorts[MAX_CHANNELS];
+ virtual bool getData(unsigned, int, unsigned, float**);
+
+ public:
+ AudioInput();
+ //AudioInput(const AudioInput&);
+ AudioInput(const AudioInput&, bool cloneParts);
+ virtual ~AudioInput();
+ //AudioInput* clone() const { return new AudioInput(*this); }
+ AudioInput* clone(bool cloneParts) const { return new AudioInput(*this, cloneParts); }
+ virtual AudioInput* newTrack() const { return new AudioInput(); }
+ virtual void read(Xml&);
+ virtual void write(int, Xml&) const;
+ virtual void setName(const QString& s);
+ void* jackPort(int channel) { return jackPorts[channel]; }
+ void setJackPort(int channel, void*p) { jackPorts[channel] = p; }
+ virtual void setChannels(int n);
+ virtual bool hasAuxSend() const { return true; }
+ };
+
+//---------------------------------------------------------
+// AudioOutput
+//---------------------------------------------------------
+
+class AudioOutput : public AudioTrack {
+ void* jackPorts[MAX_CHANNELS];
+ float* buffer[MAX_CHANNELS];
+ float* buffer1[MAX_CHANNELS];
+ unsigned long _nframes;
+
+ float* _monitorBuffer[MAX_CHANNELS];
+
+ public:
+ AudioOutput();
+ //AudioOutput(const AudioOutput&);
+ AudioOutput(const AudioOutput&, bool cloneParts);
+ virtual ~AudioOutput();
+ //AudioOutput* clone() const { return new AudioOutput(*this); }
+ AudioOutput* clone(bool cloneParts) const { return new AudioOutput(*this, cloneParts); }
+ virtual AudioOutput* newTrack() const { return new AudioOutput(); }
+ virtual void read(Xml&);
+ virtual void write(int, Xml&) const;
+ virtual void setName(const QString& s);
+ void* jackPort(int channel) { return jackPorts[channel]; }
+ void setJackPort(int channel, void*p) { jackPorts[channel] = p; }
+ virtual void setChannels(int n);
+// virtual bool isMute() const;
+
+ void processInit(unsigned);
+ void process(unsigned pos, unsigned offset, unsigned);
+ void processWrite();
+ void silence(unsigned);
+ virtual bool canRecord() const { return true; }
+
+ float** monitorBuffer() { return _monitorBuffer; }
+ };
+
+//---------------------------------------------------------
+// AudioGroup
+//---------------------------------------------------------
+
+class AudioGroup : public AudioTrack {
+ public:
+ AudioGroup() : AudioTrack(AUDIO_GROUP) { }
+ //AudioGroup* clone() const { return new AudioGroup(*this); }
+ AudioGroup* clone(bool /*cloneParts*/) const { return new AudioGroup(*this); }
+ virtual AudioGroup* newTrack() const { return new AudioGroup(); }
+ virtual void read(Xml&);
+ virtual void write(int, Xml&) const;
+ virtual bool hasAuxSend() const { return true; }
+ };
+
+//---------------------------------------------------------
+// AudioAux
+//---------------------------------------------------------
+
+class AudioAux : public AudioTrack {
+ float* buffer[MAX_CHANNELS];
+
+ public:
+ AudioAux();
+ //AudioAux* clone() const { return new AudioAux(*this); }
+ AudioAux* clone(bool /*cloneParts*/) const { return new AudioAux(*this); }
+ ~AudioAux();
+ virtual AudioAux* newTrack() const { return new AudioAux(); }
+ virtual void read(Xml&);
+ virtual void write(int, Xml&) const;
+ virtual bool getData(unsigned, int, unsigned, float**);
+ virtual void setChannels(int n);
+ float** sendBuffer() { return buffer; }
+ };
+
+//---------------------------------------------------------
+// WaveTrack
+//---------------------------------------------------------
+
+class WaveTrack : public AudioTrack {
+ Fifo _prefetchFifo; // prefetch Fifo
+
+ public:
+ static bool firstWaveTrack;
+
+ WaveTrack() : AudioTrack(Track::WAVE) { }
+ //WaveTrack(const WaveTrack& wt) : AudioTrack(wt) {}
+ WaveTrack(const WaveTrack& wt, bool cloneParts) : AudioTrack(wt, cloneParts) {}
+
+ //virtual WaveTrack* clone() const { return new WaveTrack(*this); }
+ virtual WaveTrack* clone(bool cloneParts) const { return new WaveTrack(*this, cloneParts); }
+ virtual WaveTrack* newTrack() const { return new WaveTrack(); }
+ virtual Part* newPart(Part*p=0, bool clone=false);
+
+ virtual void read(Xml&);
+ virtual void write(int, Xml&) const;
+
+ //virtual void fetchData(unsigned pos, unsigned frames, float** bp);
+ virtual void fetchData(unsigned pos, unsigned frames, float** bp, bool doSeek);
+
+ virtual bool getData(unsigned, int ch, unsigned, float** bp);
+
+ void clearPrefetchFifo() { _prefetchFifo.clear(); }
+ Fifo* prefetchFifo() { return &_prefetchFifo; }
+ virtual void setChannels(int n);
+ virtual bool hasAuxSend() const { return true; }
+ bool canEnableRecord() const;
+ virtual bool canRecord() const { return true; }
+ };
+
+//---------------------------------------------------------
+// TrackList
+//---------------------------------------------------------
+
+template<class T> class tracklist : public std::vector<Track*> {
+ typedef std::vector<Track*> vlist;
+
+ public:
+ class iterator : public vlist::iterator {
+ public:
+ iterator() : vlist::iterator() {}
+ iterator(vlist::iterator i) : vlist::iterator(i) {}
+
+ T operator*() {
+ return (T)(**((vlist::iterator*)this));
+ }
+ iterator operator++(int) {
+ return iterator ((*(vlist::iterator*)this).operator++(0));
+ }
+ iterator& operator++() {
+ return (iterator&) ((*(vlist::iterator*)this).operator++());
+ }
+ };
+
+ class const_iterator : public vlist::const_iterator {
+ public:
+ const_iterator() : vlist::const_iterator() {}
+ const_iterator(vlist::const_iterator i) : vlist::const_iterator(i) {}
+ const_iterator(vlist::iterator i) : vlist::const_iterator(i) {}
+
+ const T operator*() const {
+ return (T)(**((vlist::const_iterator*)this));
+ }
+ };
+
+ class reverse_iterator : public vlist::reverse_iterator {
+ public:
+ reverse_iterator() : vlist::reverse_iterator() {}
+ reverse_iterator(vlist::reverse_iterator i) : vlist::reverse_iterator(i) {}
+
+ T operator*() {
+ return (T)(**((vlist::reverse_iterator*)this));
+ }
+ };
+
+ tracklist() : vlist() {}
+ virtual ~tracklist() {}
+
+ void push_back(T v) { vlist::push_back(v); }
+ iterator begin() { return vlist::begin(); }
+ iterator end() { return vlist::end(); }
+ const_iterator begin() const { return vlist::begin(); }
+ const_iterator end() const { return vlist::end(); }
+ reverse_iterator rbegin() { return vlist::rbegin(); }
+ reverse_iterator rend() { return vlist::rend(); }
+ T& back() const { return (T&)(vlist::back()); }
+ T& front() const { return (T&)(vlist::front()); }
+ iterator find(const Track* t) {
+ return std::find(begin(), end(), t);
+ }
+ const_iterator find(const Track* t) const {
+ return std::find(begin(), end(), t);
+ }
+ unsigned index(const Track* t) const {
+ unsigned n = 0;
+ for (vlist::const_iterator i = begin(); i != end(); ++i, ++n) {
+ if (*i == t)
+ return n;
+ }
+ return -1;
+ }
+ T index(int k) const { return (*this)[k]; }
+ iterator index2iterator(int k) {
+ if ((unsigned)k >= size())
+ return end();
+ return begin() + k;
+ }
+ void erase(Track* t) { vlist::erase(find(t)); }
+
+ void clearDelete() {
+ for (vlist::iterator i = begin(); i != end(); ++i)
+ delete *i;
+ vlist::clear();
+ }
+ void erase(vlist::iterator i) { vlist::erase(i); }
+ void replace(Track* ot, Track* nt) {
+ for (vlist::iterator i = begin(); i != end(); ++i) {
+ if (*i == ot) {
+ *i = nt;
+ return;
+ }
+ }
+ }
+ };
+
+typedef tracklist<Track*> TrackList;
+typedef TrackList::iterator iTrack;
+typedef TrackList::const_iterator ciTrack;
+
+typedef tracklist<MidiTrack*>::iterator iMidiTrack;
+typedef tracklist<MidiTrack*>::const_iterator ciMidiTrack;
+typedef tracklist<MidiTrack*> MidiTrackList;
+
+typedef tracklist<WaveTrack*>::iterator iWaveTrack;
+typedef tracklist<WaveTrack*>::const_iterator ciWaveTrack;
+typedef tracklist<WaveTrack*> WaveTrackList;
+
+typedef tracklist<AudioInput*>::iterator iAudioInput;
+typedef tracklist<AudioInput*>::const_iterator ciAudioInput;
+typedef tracklist<AudioInput*> InputList;
+
+typedef tracklist<AudioOutput*>::iterator iAudioOutput;
+typedef tracklist<AudioOutput*>::const_iterator ciAudioOutput;
+typedef tracklist<AudioOutput*> OutputList;
+
+typedef tracklist<AudioGroup*>::iterator iAudioGroup;
+typedef tracklist<AudioGroup*>::const_iterator ciAudioGroup;
+typedef tracklist<AudioGroup*> GroupList;
+
+typedef tracklist<AudioAux*>::iterator iAudioAux;
+typedef tracklist<AudioAux*>::const_iterator ciAudioAux;
+typedef tracklist<AudioAux*> AuxList;
+
+typedef tracklist<SynthI*>::iterator iSynthI;
+typedef tracklist<SynthI*>::const_iterator ciSynthI;
+typedef tracklist<SynthI*> SynthIList;
+
+extern void addPortCtrlEvents(MidiTrack* t);
+extern void removePortCtrlEvents(MidiTrack* t);
+
+#endif
+
diff --git a/muse2/muse/transport.cpp b/muse2/muse/transport.cpp
new file mode 100644
index 00000000..4cb206a2
--- /dev/null
+++ b/muse2/muse/transport.cpp
@@ -0,0 +1,673 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: transport.cpp,v 1.8.2.3 2009/07/01 10:39:42 spamatica Exp $
+//
+// (C) Copyright 1999/2000 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include <q3vbox.h>
+#include <qlabel.h>
+#include <qslider.h>
+#include <qpushbutton.h>
+#include <q3frame.h>
+#include <q3whatsthis.h>
+#include <qtooltip.h>
+#include <qlayout.h>
+#include <qtoolbutton.h>
+#include <qcombobox.h>
+#include <qaction.h>
+//Added by qt3to4:
+#include <Q3HBoxLayout>
+#include <QPixmap>
+#include <QMouseEvent>
+#include <Q3VBoxLayout>
+#include <Q3BoxLayout>
+
+#include "song.h"
+#include "transport.h"
+#include "doublelabel.h"
+#include "siglabel.h"
+#include "globals.h"
+#include "icons.h"
+#include "posedit.h"
+#include "sync.h"
+#include "shortcuts.h"
+#include "gconfig.h"
+#include "app.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");
+
+//---------------------------------------------------------
+// toolButton
+//---------------------------------------------------------
+
+static QToolButton* newButton(QWidget* parent, const QString& s,
+ const QString& tt, bool toggle=false, int height=25)
+ {
+ QToolButton* button = new QToolButton(parent);
+ button->setFixedHeight(height);
+ button->setText(s);
+ button->setToggleButton(toggle);
+ QToolTip::add(button, tt);
+ return button;
+ }
+
+static QToolButton* newButton(QWidget* parent, const QPixmap* pm,
+ const QString& tt, bool toggle=false)
+ {
+ QToolButton* button = new QToolButton(parent);
+ button->setFixedHeight(25);
+ button->setPixmap(*pm);
+ button->setToggleButton(toggle);
+ QToolTip::add(button, tt);
+ return button;
+ }
+
+//---------------------------------------------------------
+// Handle
+// erlaubt das Verschieben eines Root-Windows mit der
+// Maus
+//---------------------------------------------------------
+
+Handle::Handle(QWidget* root, QWidget* r)
+ : QWidget(root)
+ {
+ rootWin = r;
+ setFixedWidth(20);
+ setCursor(Qt::pointingHandCursor);
+ setBackgroundColor(config.transportHandleColor);
+ }
+
+//---------------------------------------------------------
+// mouseMoveEvent
+//---------------------------------------------------------
+
+void Handle::mouseMoveEvent(QMouseEvent* ev)
+ {
+ rootWin->move(ev->globalX()-dx, ev->globalY() - dy);
+ }
+
+//---------------------------------------------------------
+// mousePressEvent
+//---------------------------------------------------------
+
+void Handle::mousePressEvent(QMouseEvent* ev)
+ {
+ rootWin->raise();
+ dx = ev->globalX() - rootWin->x();
+ dy = ev->globalY() - rootWin->y();
+ }
+
+//---------------------------------------------------------
+// TempoSig
+// Widget f�r Tempo + Signature
+//---------------------------------------------------------
+
+TempoSig::TempoSig(QWidget* parent)
+ : QWidget(parent, "TempoSig")
+ {
+ Q3BoxLayout* vb1 = new Q3VBoxLayout(this);
+ vb1->setAutoAdd(true);
+
+ Q3Frame* f = new Q3Frame(this);
+ f->setFrameStyle(Q3Frame::Panel | Q3Frame::Sunken);
+ f->setLineWidth(1);
+
+ Q3BoxLayout* vb2 = new Q3VBoxLayout(f);
+ vb2->setAutoAdd(true);
+
+ l1 = new DoubleLabel(120.0, 20.0, 400.0, f);
+
+ l1->setSpecialText(QString("extern"));
+ l2 = new SigLabel(4, 4, f);
+
+ l3 = new QLabel(tr("Tempo/Sig"), this);
+ l3->setFont(config.fonts[2]);
+
+ l1->setBackgroundMode(Qt::PaletteLight);
+ l1->setAlignment(Qt::AlignCenter);
+ l1->setSizePolicy(QSizePolicy(QSizePolicy::Minimum, QSizePolicy::Fixed));
+ l2->setBackgroundMode(Qt::PaletteLight);
+ l2->setAlignment(Qt::AlignCenter);
+ l2->setSizePolicy(QSizePolicy(QSizePolicy::Minimum, QSizePolicy::Fixed));
+ l3->setAlignment(Qt::AlignCenter);
+ l3->setSizePolicy(QSizePolicy(QSizePolicy::Minimum, QSizePolicy::Fixed));
+
+ connect(l1, SIGNAL(valueChanged(double,int)), SLOT(setTempo(double)));
+ connect(l2, SIGNAL(valueChanged(int,int)), SIGNAL(sigChanged(int,int)));
+ connect(muse, SIGNAL(configChanged()), SLOT(configChanged()));
+ }
+
+//---------------------------------------------------------
+// configChanged
+//---------------------------------------------------------
+
+void TempoSig::configChanged()
+ {
+ l3->setFont(config.fonts[2]);
+ }
+
+//---------------------------------------------------------
+// setTempo
+//---------------------------------------------------------
+
+void TempoSig::setTempo(double t)
+ {
+ int tempo = int ((1000000.0 * 60.0)/t);
+ emit tempoChanged(tempo);
+ }
+
+//---------------------------------------------------------
+// setTempo
+//---------------------------------------------------------
+
+void TempoSig::setTempo(int tempo)
+ {
+ double t;
+ if(tempo == 0)
+ t = l1->off() - 1.0;
+ else
+ t = (1000000.0 * 60.0)/tempo;
+
+ l1->blockSignals(true);
+ l1->setValue(t);
+ l1->blockSignals(false);
+ }
+
+//---------------------------------------------------------
+// setTimesig
+//---------------------------------------------------------
+
+void TempoSig::setTimesig(int a, int b)
+ {
+ l2->setValue(a, b);
+ }
+
+//---------------------------------------------------------
+// setRecord
+//---------------------------------------------------------
+
+void Transport::setRecord(bool flag)
+ {
+ buttons[5]->blockSignals(true);
+ buttons[5]->setOn(flag);
+ buttons[5]->blockSignals(false);
+ }
+
+//---------------------------------------------------------
+// Transport
+//---------------------------------------------------------
+
+Transport::Transport(QWidget*, const char* name)
+ // : QWidget(0, name, WStyle_Customize | WType_TopLevel | WStyle_Tool
+ //| WStyle_NoBorder | WStyle_StaysOnTop)
+ : QWidget(0, name, Qt::WStyle_Customize | Qt::WType_TopLevel | Qt::WStyle_NoBorder | Qt::WStyle_StaysOnTop)
+ {
+ setCaption(QString("Muse: Transport"));
+ setSizePolicy(QSizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum));
+
+ Q3HBoxLayout* hbox = new Q3HBoxLayout(this, 2, 5);
+
+ hbox->setAutoAdd(true);
+ lefthandle = new Handle(this, this);
+
+ //-----------------------------------------------------
+ // Record & Cycle Mode
+ //-----------------------------------------------------
+
+ Q3VBox* box1 = new Q3VBox(this);
+ recMode = new QComboBox(box1);
+ recMode->setFocusPolicy(Qt::NoFocus);
+ recMode->insertItem(tr("Overdub"), Song::REC_OVERDUP);
+ recMode->insertItem(tr("Replace"), Song::REC_REPLACE);
+ recMode->setCurrentItem(song->recMode());
+ l2 = new QLabel(tr("Rec Mode"), box1);
+ l2->setFont(config.fonts[2]);
+ l2->setAlignment(Qt::AlignCenter);
+ connect(recMode, SIGNAL(activated(int)), SLOT(setRecMode(int)));
+
+ cycleMode = new QComboBox(box1);
+ cycleMode->setFocusPolicy(Qt::NoFocus);
+ cycleMode->insertItem(tr("Normal"), Song::CYCLE_NORMAL);
+ cycleMode->insertItem(tr("Mix"), Song::CYCLE_MIX);
+ cycleMode->insertItem(tr("Replace"), Song::CYCLE_REPLACE);
+ cycleMode->setCurrentItem(song->cycleMode());
+ l3 = new QLabel(tr("Cycle Rec"), box1);
+ l3->setFont(config.fonts[2]);
+ l3->setAlignment(Qt::AlignCenter);
+ connect(cycleMode, SIGNAL(activated(int)), SLOT(setCycleMode(int)));
+
+ //-----------------------------------------------------
+ // loop flags
+ //-----------------------------------------------------
+
+ Q3VBox* button2 = new Q3VBox(this);
+ button2->setMargin(3);
+
+ QToolButton* b1 = newButton(button2, punchinIcon, tr("punchin"), true);
+ QToolButton* b2 = newButton(button2, loopIcon, tr("loop"), true);
+ b2->setAccel(shortcuts[SHRT_TOGGLE_LOOP].key);
+
+ QToolButton* b3 = newButton(button2, punchoutIcon, tr("punchout"), true);
+ QToolTip::add(b1, tr("Punch In"));
+ QToolTip::add(b2, tr("Loop"));
+ QToolTip::add(b3, tr("Punch Out"));
+ Q3WhatsThis::add(b1, tr("Punch In"));
+
+ connect(b1, SIGNAL(toggled(bool)), song, SLOT(setPunchin(bool)));
+ connect(b2, SIGNAL(toggled(bool)), song, SLOT(setLoop(bool)));
+ connect(b3, SIGNAL(toggled(bool)), song, SLOT(setPunchout(bool)));
+
+ b1->setOn(song->punchin());
+ b2->setOn(song->loop());
+ b3->setOn(song->punchout());
+
+ connect(song, SIGNAL(punchinChanged(bool)), b1, SLOT(setOn(bool)));
+ connect(song, SIGNAL(punchoutChanged(bool)), b3, SLOT(setOn(bool)));
+ connect(song, SIGNAL(loopChanged(bool)), b2, SLOT(setOn(bool)));
+
+ //-----------------------------------------------------
+ // left right mark
+ //-----------------------------------------------------
+
+ Q3VBox* marken = new Q3VBox(this);
+ tl1 = new PosEdit(marken);
+ l5 = new QLabel(tr("Left Mark"), marken);
+ l5->setFont(config.fonts[2]);
+ l5->setAlignment(Qt::AlignCenter);
+ tl2 = new PosEdit(marken);
+ l6 = new QLabel(tr("Right Mark"), marken);
+ l6->setFont(config.fonts[2]);
+ l6->setAlignment(Qt::AlignCenter);
+
+ //-----------------------------------------------------
+ // Transport Buttons
+ //-----------------------------------------------------
+
+ Q3VBox* box4 = new Q3VBox(this);
+ box4->setSizePolicy(QSizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum));
+ box4->setSpacing(3);
+ Q3HBox* hbox1 = new Q3HBox(box4);
+ hbox1->setSizePolicy(QSizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum));
+ time1 = new PosEdit(hbox1);
+ time2 = new PosEdit(hbox1);
+ time2->setSmpte(true);
+ time1->setSizePolicy(QSizePolicy(QSizePolicy::Minimum, QSizePolicy::Fixed));
+ time2->setSizePolicy(QSizePolicy(QSizePolicy::Minimum, QSizePolicy::Fixed));
+
+ slider = new QSlider(0, 200000, 1000, 0, Qt::Horizontal, box4);
+
+ tb = new Q3HBox(box4);
+ tb->setSizePolicy(QSizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum));
+
+ buttons[0] = newButton(tb, startIcon, tr("rewind to start"));
+ Q3WhatsThis::add(buttons[0], tr(startTransportText));
+
+ buttons[1] = newButton(tb, frewindIcon, tr("rewind"));
+ buttons[1]->setAutoRepeat(true);
+ Q3WhatsThis::add(buttons[1], tr(frewindTransportText));
+
+ buttons[2] = newButton(tb, fforwardIcon, tr("forward"));
+ buttons[2]->setAutoRepeat(true);
+ Q3WhatsThis::add(buttons[2], tr(fforwardTransportText));
+
+ buttons[3] = newButton(tb, stopIcon, tr("stop"), true);
+ buttons[3]->setOn(true); // set STOP
+ Q3WhatsThis::add(buttons[3], tr(stopTransportText));
+
+ buttons[4] = newButton(tb, playIcon, tr("play"), true);
+ Q3WhatsThis::add(buttons[4], tr(playTransportText));
+
+ buttons[5] = newButton(tb, record_on_Icon, tr("record"), true);
+ Q3WhatsThis::add(buttons[5], tr(recordTransportText));
+
+ for (int i = 0; i < 6; ++i)
+ buttons[i]->setSizePolicy(QSizePolicy(QSizePolicy::Minimum, QSizePolicy::Fixed));
+
+
+ connect(buttons[3], SIGNAL(toggled(bool)), SLOT(stopToggled(bool)));
+ connect(buttons[4], SIGNAL(toggled(bool)), SLOT(playToggled(bool)));
+
+ connect(buttons[5], SIGNAL(toggled(bool)), song, SLOT(setRecord(bool)));
+ connect(song, SIGNAL(recordChanged(bool)), SLOT(setRecord(bool)));
+ connect(buttons[0], SIGNAL(clicked()), song, SLOT(rewindStart()));
+ connect(buttons[1], SIGNAL(clicked()), song, SLOT(rewind()));
+ connect(buttons[2], SIGNAL(clicked()), song, SLOT(forward()));
+
+ //-----------------------------------------------------
+ // AQ - Click - Sync
+ //-----------------------------------------------------
+
+ Q3VBox* button1 = new Q3VBox(this);
+ button1->setMargin(1);
+
+ quantizeButton = newButton(button1, tr("AC"), tr("quantize during record"), true,19);
+ clickButton = newButton(button1, tr("Click"), tr("metronom click on/off"), true,19);
+ clickButton->setAccel(shortcuts[SHRT_TOGGLE_METRO].key);
+
+ syncButton = newButton(button1, tr("Sync"), tr("external sync on/off"), true,19);
+ jackTransportButton = newButton(button1, tr("Jack"), tr("Jack transport sync on/off"), true,19);
+
+ quantizeButton->setOn(song->quantize());
+ clickButton->setOn(song->click());
+ syncButton->setOn(extSyncFlag.value());
+ jackTransportButton->setOn(useJackTransport.value());
+
+ connect(quantizeButton, SIGNAL(toggled(bool)), song, SLOT(setQuantize(bool)));
+ connect(clickButton, SIGNAL(toggled(bool)), song, SLOT(setClick(bool)));
+
+ connect(syncButton, SIGNAL(toggled(bool)), &extSyncFlag, SLOT(setValue(bool)));
+ connect(jackTransportButton, SIGNAL(toggled(bool)),&useJackTransport, SLOT(setValue(bool)));
+ connect(&extSyncFlag, SIGNAL(valueChanged(bool)), SLOT(syncChanged(bool)));
+ connect(&useJackTransport, SIGNAL(valueChanged(bool)), SLOT(jackSyncChanged(bool)));
+
+ connect(song, SIGNAL(quantizeChanged(bool)), this, SLOT(setQuantizeFlag(bool)));
+ connect(song, SIGNAL(clickChanged(bool)), this, SLOT(setClickFlag(bool)));
+
+ //-----------------------------------------------------
+ // Tempo/Sig
+ //-----------------------------------------------------
+
+ Q3VBox* box5 = new Q3VBox(this);
+ tempo = new TempoSig(box5);
+ tempo->setSizePolicy(QSizePolicy(QSizePolicy::Minimum, QSizePolicy::Fixed));
+ masterButton = newButton(box5, tr("Master"), tr("use master track"), true);
+ masterButton->setSizePolicy(QSizePolicy(QSizePolicy::Minimum, QSizePolicy::Fixed));
+
+ connect(masterButton, SIGNAL(toggled(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&)));
+
+ connect(slider,SIGNAL(valueChanged(int)), SLOT(cposChanged(int)));
+ connect(song, SIGNAL(posChanged(int, unsigned, bool)), SLOT(setPos(int, unsigned, bool)));
+ connect(tempo, SIGNAL(tempoChanged(int)), song, SLOT(setTempo(int)));
+ connect(tempo, SIGNAL(sigChanged(int, int)), song, SLOT(setSig(int, int)));
+ connect(song, SIGNAL(playChanged(bool)), SLOT(setPlay(bool)));
+ connect(song, SIGNAL(songChanged(int)), this, SLOT(songChanged(int)));
+ connect(muse, SIGNAL(configChanged()), SLOT(configChanged()));
+ righthandle = new Handle(this, this);
+ }
+
+//---------------------------------------------------------
+// configChanged
+//---------------------------------------------------------
+
+void Transport::configChanged()
+ {
+ l2->setFont(config.fonts[2]);
+ l3->setFont(config.fonts[2]);
+ l5->setFont(config.fonts[2]);
+ l6->setFont(config.fonts[2]);
+ lefthandle->setBackgroundColor(config.transportHandleColor);
+ righthandle->setBackgroundColor(config.transportHandleColor);
+ }
+
+//---------------------------------------------------------
+// setTempo
+//---------------------------------------------------------
+
+void Transport::setTempo(int t)
+ {
+ static int tempoVal = -1;
+ if (t != tempoVal) {
+ tempo->setTempo(t);
+ tempoVal = t;
+ }
+ }
+
+//---------------------------------------------------------
+// setHandleColor
+//---------------------------------------------------------
+
+void Transport::setHandleColor(QColor c)
+ {
+ lefthandle->setBackgroundColor(c);
+ righthandle->setBackgroundColor(c);
+ }
+
+//---------------------------------------------------------
+// setTimesig
+//---------------------------------------------------------
+
+void Transport::setTimesig(int z, int n)
+ {
+ tempo->setTimesig(z, n);
+ }
+
+//---------------------------------------------------------
+// setPos
+//---------------------------------------------------------
+
+void Transport::setPos(int idx, unsigned v, bool)
+ {
+ switch (idx) {
+ case 0:
+ time1->setValue(v);
+ time2->setValue(v);
+ slider->blockSignals(true);
+ slider->setValue(v);
+ slider->blockSignals(false);
+ if (song->masterFlag())
+ setTempo(tempomap.tempo(v));
+ {
+ int z, n;
+ sigmap.timesig(v, z, n);
+ setTimesig(z, n);
+ }
+ break;
+ case 1:
+ tl1->setValue(v);
+ break;
+ case 2:
+ tl2->setValue(v);
+ 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]->blockSignals(true);
+ buttons[4]->blockSignals(true);
+ buttons[3]->setOn(!f);
+ buttons[4]->setOn(f);
+ buttons[3]->blockSignals(false);
+ buttons[4]->blockSignals(false);
+ }
+
+//---------------------------------------------------------
+// setMasterFlag
+//---------------------------------------------------------
+
+void Transport::setMasterFlag(bool f)
+ {
+ masterButton->setOn(f);
+ }
+
+//---------------------------------------------------------
+// setClickFlag
+//---------------------------------------------------------
+
+void Transport::setClickFlag(bool f)
+ {
+ clickButton->blockSignals(true);
+ clickButton->setOn(f);
+ clickButton->blockSignals(false);
+ }
+
+//---------------------------------------------------------
+// setQuantizeFlag
+//---------------------------------------------------------
+
+void Transport::setQuantizeFlag(bool f)
+ {
+ quantizeButton->setOn(f);
+ }
+
+//---------------------------------------------------------
+// setSyncFlag
+//---------------------------------------------------------
+
+void Transport::setSyncFlag(bool f)
+ {
+ syncButton->setOn(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)
+ {
+ // Is it simply a midi controller value adjustment? Forget it.
+ if(flags == SC_MIDI_CONTROLLER)
+ return;
+
+ slider->setRange(0, song->len());
+ int cpos = song->cpos();
+ int t = tempomap.tempo(cpos);
+ if (flags & (SC_MASTER | SC_TEMPO)) {
+ if (extSyncFlag.value())
+ setTempo(0);
+ else
+ setTempo(t);
+ }
+ if (flags & SC_SIG) {
+ int z, n;
+ sigmap.timesig(cpos, z, n);
+ setTimesig(z, n);
+ }
+ if (flags & SC_MASTER)
+ masterButton->setOn(song->masterFlag());
+ }
+
+//---------------------------------------------------------
+// syncChanged
+//---------------------------------------------------------
+
+void Transport::syncChanged(bool flag)
+ {
+ syncButton->setOn(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->setOn(false);
+ song->setMasterFlag(false);
+ tempo->setTempo(0); // slave mode: show "extern"
+ }
+ else
+ tempo->setTempo(tempomap.tempo(song->cpos()));
+ playAction->setEnabled(!flag);
+ startAction->setEnabled(!flag);
+ stopAction->setEnabled(!flag);
+ rewindAction->setEnabled(!flag);
+ forwardAction->setEnabled(!flag);
+ }
+
+void Transport::jackSyncChanged(bool flag)
+ {
+ jackTransportButton->setOn(flag);
+ }
+//---------------------------------------------------------
+// stopToggled
+//---------------------------------------------------------
+
+void Transport::stopToggled(bool val)
+ {
+ if (val)
+ song->setStop(true);
+ else {
+ buttons[3]->blockSignals(true);
+ buttons[3]->setOn(true);
+ buttons[3]->blockSignals(false);
+ }
+ }
+
+//---------------------------------------------------------
+// playToggled
+//---------------------------------------------------------
+
+void Transport::playToggled(bool val)
+ {
+ if (val)
+ song->setPlay(true);
+ else {
+ buttons[4]->blockSignals(true);
+ buttons[4]->setOn(true);
+ buttons[4]->blockSignals(false);
+ }
+ }
+
diff --git a/muse2/muse/transport.h b/muse2/muse/transport.h
new file mode 100644
index 00000000..cf87ead6
--- /dev/null
+++ b/muse2/muse/transport.h
@@ -0,0 +1,129 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: transport.h,v 1.4 2004/06/28 21:13:16 wschweer Exp $
+//
+// (C) Copyright 1999/2000 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __TRANSPORT_H__
+#define __TRANSPORT_H__
+
+#include <qwidget.h>
+//Added by qt3to4:
+#include <QMouseEvent>
+#include <QLabel>
+
+class QToolButton;
+class Q3HBox;
+class PosEdit;
+class QSlider;
+class DoubleLabel;
+class SigLabel;
+class QComboBox;
+class Pos;
+class QLabel;
+
+//---------------------------------------------------------
+// TempoSig
+//---------------------------------------------------------
+
+class TempoSig : public QWidget {
+ DoubleLabel* l1;
+ SigLabel* l2;
+ QLabel* l3;
+ Q_OBJECT
+
+ private slots:
+ void configChanged();
+
+ public slots:
+ void setTempo(double);
+ void setTempo(int tempo);
+
+ signals:
+ void tempoChanged(int);
+ void sigChanged(int, int);
+
+ public:
+ TempoSig(QWidget* parent);
+ void setTimesig(int a, int b);
+ };
+
+//---------------------------------------------------------
+// Handle
+//---------------------------------------------------------
+
+class Handle : public QWidget {
+ QWidget* rootWin;
+ int dx, dy;
+ void mouseMoveEvent(QMouseEvent* ev);
+ void mousePressEvent(QMouseEvent* ev);
+ public:
+ Handle(QWidget* parent, QWidget* root);
+ };
+
+class TimeLLabel;
+
+//---------------------------------------------------------
+// Transport
+//---------------------------------------------------------
+
+class Transport : public QWidget
+ {
+ PosEdit* tl1; // left mark
+ PosEdit* tl2; // right mark
+ PosEdit* time1; // tick time
+ PosEdit* time2; // SMPTE
+ QSlider* slider;
+ TempoSig* tempo;
+ Q3HBox* tb;
+ QToolButton* masterButton;
+ QComboBox* recMode;
+ QComboBox* cycleMode;
+ QToolButton* quantizeButton;
+ QToolButton* clickButton;
+ QToolButton* syncButton;
+ QToolButton* jackTransportButton;
+ QToolButton* buttons[6]; // transport buttons
+ QLabel* l2;
+ QLabel* l3;
+ QLabel* l5;
+ QLabel* l6;
+
+ Handle *lefthandle, *righthandle;
+
+ Q_OBJECT
+
+ 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 jackSyncChanged(bool);
+ void setRecord(bool flag);
+ void stopToggled(bool);
+ void playToggled(bool);
+ void configChanged();
+
+ public slots:
+ void setTempo(int tempo);
+ void setTimesig(int a, int b);
+ void setPos(int,unsigned, bool);
+ void setMasterFlag(bool);
+ void setClickFlag(bool);
+ void setQuantizeFlag(bool);
+ void setSyncFlag(bool);
+ void setPlay(bool f);
+ void setHandleColor(QColor);
+
+ public:
+ Transport(QWidget* parent, const char* name = 0);
+ QColor getHandleColor() const { return lefthandle->backgroundColor(); }
+ };
+#endif
+
diff --git a/muse2/muse/transpose.cpp b/muse2/muse/transpose.cpp
new file mode 100644
index 00000000..3090b450
--- /dev/null
+++ b/muse2/muse/transpose.cpp
@@ -0,0 +1,92 @@
+
+#include <stdio.h>
+#include <qcombobox.h>
+#include <qspinbox.h>
+#include <q3buttongroup.h>
+#include <qradiobutton.h>
+#include "transpose.h"
+#include "track.h"
+#include "song.h"
+#include "event.h"
+#include "audio.h"
+
+//---------------------------------------------------------
+// Transpose
+//---------------------------------------------------------
+
+Transpose::Transpose(QWidget* parent, const char* name)
+ : TransposeDialogBase(parent, name)
+ {
+ 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();
+ }
+
+ std::vector< EventList* > doneList;
+ typedef std::vector< EventList* >::iterator iDoneList;
+
+ song->startUndo();
+ for (iTrack t = tracks->begin(); t != tracks->end(); ++t) {
+// if (((*t)->type() == Track::MIDI || (*t)->type() == Track::DRUM)
+ if (((*t)->type() != Track::MIDI)
+ || !(parts_all->isChecked() || (*t)->selected()))
+ continue;
+
+ PartList *pl = (*t)->parts();
+ for (iPart p = pl->begin(); p != pl->end(); ++p) {
+ MidiPart *mp = (MidiPart *) p->second;
+ EventList* el = mp->events();
+
+ // Check if the event list has already been done. Skip repeated clones.
+ iDoneList idl;
+ for(idl = doneList.begin(); idl != doneList.end(); ++idl)
+ if(*idl == el)
+ break;
+ if(idl != doneList.end())
+ break;
+ doneList.push_back(el);
+
+ 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 );
+ // Indicate no undo, and do not do port controller values and clone parts.
+ //audio->msgChangeEvent(oe, ne, mp, false);
+ audio->msgChangeEvent(oe, ne, mp, false, false, false);
+ }
+ }
+ }
+ song->endUndo(SC_EVENT_MODIFIED);
+ close(true);
+ }
+
diff --git a/muse2/muse/transpose.h b/muse2/muse/transpose.h
new file mode 100644
index 00000000..a5e004f8
--- /dev/null
+++ b/muse2/muse/transpose.h
@@ -0,0 +1,21 @@
+
+#ifndef __TRANSPOSE_H__
+#define __TRANSPOSE_H__
+
+#include "transposebase.h"
+
+//---------------------------------------------------------
+// transpose widget
+//---------------------------------------------------------
+
+class Transpose : public TransposeDialogBase {
+ Q_OBJECT
+
+ private slots:
+ virtual void accept();
+
+ public:
+ Transpose(QWidget* parent=0, const char* name=0);
+ };
+
+#endif
diff --git a/muse2/muse/undo.cpp b/muse2/muse/undo.cpp
new file mode 100644
index 00000000..ba020d2f
--- /dev/null
+++ b/muse2/muse/undo.cpp
@@ -0,0 +1,968 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: undo.cpp,v 1.12.2.9 2009/05/24 21:43:44 terminator356 Exp $
+//
+// (C) Copyright 1999/2000 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include "undo.h"
+#include "song.h"
+#include "globals.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", "ModifyTrack",
+ "AddPart", "DeletePart", "ModifyPart",
+ "AddEvent", "DeleteEvent", "ModifyEvent",
+ "AddTempo", "DeleteTempo", "AddSig", "DeleteSig",
+ "SwapTrack", "ModifyClip"
+ };
+ return name[type];
+ }
+
+//---------------------------------------------------------
+// dump
+//---------------------------------------------------------
+
+void UndoOp::dump()
+ {
+ printf("UndoOp: %s\n ", typeName());
+ switch(type) {
+ case AddTrack:
+ case DeleteTrack:
+ printf("%d %s\n", trackno, oTrack->name().latin1());
+ break;
+ case ModifyTrack:
+ printf("%d <%s>-<%s>\n", trackno, oTrack->name().latin1(), nTrack->name().latin1());
+ 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 SwapTrack:
+ case DeleteSig:
+ case ModifyClip:
+ case ModifyMarker:
+ break;
+ }
+ }
+
+//---------------------------------------------------------
+// clearDelete
+//---------------------------------------------------------
+
+void UndoList::clearDelete()
+{
+ if(!empty())
+ {
+ for(iUndo iu = begin(); iu != end(); ++iu)
+ {
+ Undo& u = *iu;
+ for(riUndoOp i = u.rbegin(); i != u.rend(); ++i)
+ {
+ switch(i->type)
+ {
+ case UndoOp::DeleteTrack:
+ if(i->oTrack)
+ {
+ delete i->oTrack;
+ iUndo iu2 = iu;
+ ++iu2;
+ for(; iu2 != end(); ++iu2)
+ {
+ Undo& u2 = *iu2;
+ for(riUndoOp i2 = u2.rbegin(); i2 != u2.rend(); ++i2)
+ {
+ if(i2->type == UndoOp::DeleteTrack)
+ {
+ if(i2->oTrack == i->oTrack)
+ i2->oTrack = 0;
+ }
+ }
+ }
+ }
+ break;
+ case UndoOp::ModifyTrack:
+ if(i->oTrack)
+ {
+ // Prevent delete i->oTrack from crashing.
+ switch(i->oTrack->type())
+ {
+ case Track::AUDIO_OUTPUT:
+ {
+ AudioOutput* ao = (AudioOutput*)i->oTrack;
+ for(int ch = 0; ch < ao->channels(); ++ch)
+ ao->setJackPort(ch, 0);
+ }
+ break;
+ case Track::AUDIO_INPUT:
+ {
+ AudioInput* ai = (AudioInput*)i->oTrack;
+ for(int ch = 0; ch < ai->channels(); ++ch)
+ ai->setJackPort(ch, 0);
+ }
+ break;
+ default:
+ break;
+ }
+ if(!i->oTrack->isMidiTrack())
+ ((AudioTrack*)i->oTrack)->clearEfxList();
+ delete i->oTrack;
+
+ iUndo iu2 = iu;
+ ++iu2;
+ for(; iu2 != end(); ++iu2)
+ {
+ Undo& u2 = *iu2;
+ for(riUndoOp i2 = u2.rbegin(); i2 != u2.rend(); ++i2)
+ {
+ if(i2->type == UndoOp::ModifyTrack)
+ {
+ if(i2->oTrack == i->oTrack)
+ i2->oTrack = 0;
+ }
+ }
+ }
+ }
+ break;
+ //case UndoOp::DeletePart:
+ //delete i->oPart;
+ // break;
+ //case UndoOp::DeleteTempo:
+ // break;
+ //case UndoOp::DeleteSig:
+ // break;
+ case UndoOp::ModifyMarker:
+ if (i->copyMarker)
+ delete i->copyMarker;
+ default:
+ break;
+ }
+ }
+ u.clear();
+ }
+ }
+
+ clear();
+}
+
+//---------------------------------------------------------
+// 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();
+ for (riUndoOp i = u.rbegin(); i != u.rend(); ++i) {
+ switch(i->type) {
+ case UndoOp::AddTrack:
+ removeTrack2(i->oTrack);
+ updateFlags |= SC_TRACK_REMOVED;
+ break;
+ case UndoOp::DeleteTrack:
+ insertTrack2(i->oTrack, i->trackno);
+ // Added by T356.
+ chainTrackParts(i->oTrack, true);
+
+ updateFlags |= SC_TRACK_INSERTED;
+ break;
+ case UndoOp::ModifyTrack:
+ {
+ // Added by Tim. p3.3.6
+ //printf("Song::doUndo2 ModifyTrack #1 oTrack %p %s nTrack %p %s\n", i->oTrack, i->oTrack->name().latin1(), i->nTrack, i->nTrack->name().latin1());
+
+ // Unchain the track parts, but don't touch the ref counts.
+ unchainTrackParts(i->nTrack, false);
+
+ //Track* track = i->nTrack->clone();
+ Track* track = i->nTrack->clone(false);
+
+ // A Track custom assignment operator was added by Tim.
+ *(i->nTrack) = *(i->oTrack);
+
+ // Added by Tim. p3.3.6
+ //printf("Song::doUndo2 ModifyTrack #2 oTrack %p %s nTrack %p %s\n", i->oTrack, i->oTrack->name().latin1(), i->nTrack, i->nTrack->name().latin1());
+
+ // Prevent delete i->oTrack from crashing.
+ switch(i->oTrack->type())
+ {
+ case Track::AUDIO_OUTPUT:
+ {
+ AudioOutput* ao = (AudioOutput*)i->oTrack;
+ for(int ch = 0; ch < ao->channels(); ++ch)
+ ao->setJackPort(ch, 0);
+ }
+ break;
+ case Track::AUDIO_INPUT:
+ {
+ AudioInput* ai = (AudioInput*)i->oTrack;
+ for(int ch = 0; ch < ai->channels(); ++ch)
+ ai->setJackPort(ch, 0);
+ }
+ break;
+ default:
+ break;
+ }
+ if(!i->oTrack->isMidiTrack())
+ ((AudioTrack*)i->oTrack)->clearEfxList();
+
+ delete i->oTrack;
+ i->oTrack = track;
+
+ // Chain the track parts, but don't touch the ref counts.
+ chainTrackParts(i->nTrack, false);
+
+ // Added by Tim. p3.3.6
+ //printf("Song::doUndo2 ModifyTrack #3 oTrack %p %s nTrack %p %s\n", i->oTrack, i->oTrack->name().latin1(), i->nTrack, i->nTrack->name().latin1());
+
+ // Connect and register ports.
+ switch(i->nTrack->type())
+ {
+ case Track::AUDIO_OUTPUT:
+ {
+ AudioOutput* ao = (AudioOutput*)i->nTrack;
+ ao->setName(ao->name());
+ }
+ break;
+ case Track::AUDIO_INPUT:
+ {
+ AudioInput* ai = (AudioInput*)i->nTrack;
+ ai->setName(ai->name());
+ }
+ break;
+ default:
+ break;
+ }
+
+ // Update solo states, since the user may have changed soloing on other tracks.
+ updateSoloStates();
+
+ updateFlags |= SC_TRACK_MODIFIED;
+ }
+ break;
+
+ /*
+ switch(i->nTrack->type())
+ {
+ case Track::AUDIO_OUTPUT:
+ {
+ AudioOutput* ao = (AudioOutput*)i->nTrack;
+ for(int ch = 0; ch < ao->channels(); ++ch)
+ ao->setJackPort(ch, 0);
+ }
+ break;
+ case Track::AUDIO_INPUT:
+ {
+ AudioInput* ai = (AudioInput*)i->nTrack;
+ for(int ch = 0; ch < ai->channels(); ++ch)
+ ai->setJackPort(ch, 0);
+ }
+ break;
+ default:
+ break;
+ }
+ if(!i->nTrack->isMidiTrack())
+ ((AudioTrack*)i->nTrack)->clearEfxList();
+
+ //delete i->oTrack;
+ //i->oTrack = track;
+
+ // Remove the track. removeTrack2 takes care of unchaining the new track.
+ removeTrack2(i->nTrack);
+
+ // Connect and register ports.
+ switch(i->oTrack->type())
+ {
+ case Track::AUDIO_OUTPUT:
+ {
+ AudioOutput* ao = (AudioOutput*)i->oTrack;
+ ao->setName(ao->name());
+ }
+ break;
+ case Track::AUDIO_INPUT:
+ {
+ AudioInput* ai = (AudioInput*)i->oTrack;
+ ai->setName(ai->name());
+ }
+ break;
+ default:
+ break;
+ }
+
+ // Insert the old track.
+ insertTrack2(i->oTrack, i->trackno);
+ // Chain the old track parts. (removeTrack2, above, takes care of unchaining the new track).
+ chainTrackParts(i->oTrack, true);
+
+ // Update solo states, since the user may have changed soloing on other tracks.
+ updateSoloStates();
+
+ updateFlags |= SC_TRACK_MODIFIED;
+ }
+ 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::AddPart:
+ {
+ Part* part = i->oPart;
+ removePart(part);
+ updateFlags |= SC_PART_REMOVED;
+ i->oPart->events()->incARef(-1);
+ //i->oPart->unchainClone();
+ unchainClone(i->oPart);
+ }
+ break;
+ case UndoOp::DeletePart:
+ addPart(i->oPart);
+ updateFlags |= SC_PART_INSERTED;
+ i->oPart->events()->incARef(1);
+ //i->oPart->chainClone();
+ chainClone(i->oPart);
+ break;
+ case UndoOp::ModifyPart:
+ if(i->doCtrls)
+ removePortCtrlEvents(i->oPart, i->doClones);
+ changePart(i->oPart, i->nPart);
+ i->oPart->events()->incARef(-1);
+ i->nPart->events()->incARef(1);
+ //i->oPart->replaceClone(i->nPart);
+ replaceClone(i->oPart, i->nPart);
+ if(i->doCtrls)
+ addPortCtrlEvents(i->nPart, i->doClones);
+ updateFlags |= SC_PART_MODIFIED;
+ break;
+ case UndoOp::AddEvent:
+ if(i->doCtrls)
+ removePortCtrlEvents(i->nEvent, i->part, i->doClones);
+ deleteEvent(i->nEvent, i->part);
+ updateFlags |= SC_EVENT_REMOVED;
+ break;
+ case UndoOp::DeleteEvent:
+ addEvent(i->nEvent, i->part);
+ if(i->doCtrls)
+ addPortCtrlEvents(i->nEvent, i->part, i->doClones);
+ updateFlags |= SC_EVENT_INSERTED;
+ break;
+ case UndoOp::ModifyEvent:
+ if(i->doCtrls)
+ removePortCtrlEvents(i->oEvent, i->part, i->doClones);
+ changeEvent(i->oEvent, i->nEvent, i->part);
+ if(i->doCtrls)
+ addPortCtrlEvents(i->nEvent, i->part, i->doClones);
+ updateFlags |= SC_EVENT_MODIFIED;
+ break;
+ case UndoOp::AddTempo:
+ //printf("doUndo2: UndoOp::AddTempo. deleting tempo at: %d\n", i->a);
+ tempomap.delTempo(i->a);
+ updateFlags |= SC_TEMPO;
+ break;
+ case UndoOp::DeleteTempo:
+ //printf("doUndo2: UndoOp::DeleteTempo. adding tempo at: %d, tempo=%d\n", i->a, i->b);
+ tempomap.addTempo(i->a, i->b);
+ updateFlags |= SC_TEMPO;
+ break;
+ case UndoOp::AddSig:
+ sigmap.del(i->a);
+ updateFlags |= SC_SIG;
+ break;
+ case UndoOp::DeleteSig:
+ sigmap.add(i->a, i->b, i->c);
+ updateFlags |= SC_SIG;
+ break;
+ case UndoOp::ModifyClip:
+ case UndoOp::ModifyMarker:
+ break;
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// Song::doRedo2
+//---------------------------------------------------------
+
+void Song::doRedo2()
+ {
+ Undo& u = redoList->back();
+ for (iUndoOp i = u.begin(); i != u.end(); ++i) {
+ switch(i->type) {
+ case UndoOp::AddTrack:
+ insertTrack2(i->oTrack, i->trackno);
+ // Added by T356.
+ chainTrackParts(i->oTrack, true);
+
+ updateFlags |= SC_TRACK_INSERTED;
+ break;
+ case UndoOp::DeleteTrack:
+ removeTrack2(i->oTrack);
+ updateFlags |= SC_TRACK_REMOVED;
+ break;
+ case UndoOp::ModifyTrack:
+ {
+ // Unchain the track parts, but don't touch the ref counts.
+ unchainTrackParts(i->nTrack, false);
+
+ //Track* track = i->nTrack->clone();
+ Track* track = i->nTrack->clone(false);
+
+ *(i->nTrack) = *(i->oTrack);
+
+ // Prevent delete i->oTrack from crashing.
+ switch(i->oTrack->type())
+ {
+ case Track::AUDIO_OUTPUT:
+ {
+ AudioOutput* ao = (AudioOutput*)i->oTrack;
+ for(int ch = 0; ch < ao->channels(); ++ch)
+ ao->setJackPort(ch, 0);
+ }
+ break;
+ case Track::AUDIO_INPUT:
+ {
+ AudioInput* ai = (AudioInput*)i->oTrack;
+ for(int ch = 0; ch < ai->channels(); ++ch)
+ ai->setJackPort(ch, 0);
+ }
+ break;
+ default:
+ break;
+ }
+ if(!i->oTrack->isMidiTrack())
+ ((AudioTrack*)i->oTrack)->clearEfxList();
+
+ delete i->oTrack;
+ i->oTrack = track;
+
+ // Chain the track parts, but don't touch the ref counts.
+ chainTrackParts(i->nTrack, false);
+
+ // Connect and register ports.
+ switch(i->nTrack->type())
+ {
+ case Track::AUDIO_OUTPUT:
+ {
+ AudioOutput* ao = (AudioOutput*)i->nTrack;
+ ao->setName(ao->name());
+ }
+ break;
+ case Track::AUDIO_INPUT:
+ {
+ AudioInput* ai = (AudioInput*)i->nTrack;
+ ai->setName(ai->name());
+ }
+ break;
+ default:
+ break;
+ }
+
+ // Update solo states, since the user may have changed soloing on other tracks.
+ updateSoloStates();
+
+ updateFlags |= SC_TRACK_MODIFIED;
+ }
+ break;
+
+ /*
+ // Prevent delete i->oTrack from crashing.
+ switch(i->oTrack->type())
+ {
+ case Track::AUDIO_OUTPUT:
+ {
+ AudioOutput* ao = (AudioOutput*)i->oTrack;
+ for(int ch = 0; ch < ao->channels(); ++ch)
+ ao->setJackPort(ch, 0);
+ }
+ break;
+ case Track::AUDIO_INPUT:
+ {
+ AudioInput* ai = (AudioInput*)i->oTrack;
+ for(int ch = 0; ch < ai->channels(); ++ch)
+ ai->setJackPort(ch, 0);
+ }
+ break;
+ default:
+ break;
+ }
+ if(!i->oTrack->isMidiTrack())
+ ((AudioTrack*)i->oTrack)->clearEfxList();
+
+ //delete i->oTrack;
+ //i->oTrack = track;
+
+ // Remove the track. removeTrack2 takes care of unchaining the old track.
+ removeTrack2(i->oTrack);
+
+ // Connect and register ports.
+ switch(i->nTrack->type())
+ {
+ case Track::AUDIO_OUTPUT:
+ {
+ AudioOutput* ao = (AudioOutput*)i->nTrack;
+ ao->setName(ao->name());
+ }
+ break;
+ case Track::AUDIO_INPUT:
+ {
+ AudioInput* ai = (AudioInput*)i->nTrack;
+ ai->setName(ai->name());
+ }
+ break;
+ default:
+ break;
+ }
+
+ // Insert the new track.
+ insertTrack2(i->nTrack, i->trackno);
+ // Chain the new track parts. (removeTrack2, above, takes care of unchaining the old track).
+ chainTrackParts(i->nTrack, true);
+
+ // Update solo states, since the user may have changed soloing on other tracks.
+ updateSoloStates();
+
+ updateFlags |= SC_TRACK_MODIFIED;
+ }
+ 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::AddPart:
+ addPart(i->oPart);
+ updateFlags |= SC_PART_INSERTED;
+ i->oPart->events()->incARef(1);
+ //i->oPart->chainClone();
+ chainClone(i->oPart);
+ break;
+ case UndoOp::DeletePart:
+ removePart(i->oPart);
+ updateFlags |= SC_PART_REMOVED;
+ i->oPart->events()->incARef(-1);
+ //i->oPart->unchainClone();
+ unchainClone(i->oPart);
+ break;
+ case UndoOp::ModifyPart:
+ if(i->doCtrls)
+ removePortCtrlEvents(i->nPart, i->doClones);
+ changePart(i->nPart, i->oPart);
+ i->oPart->events()->incARef(1);
+ i->nPart->events()->incARef(-1);
+ //i->nPart->replaceClone(i->oPart);
+ replaceClone(i->nPart, i->oPart);
+ if(i->doCtrls)
+ addPortCtrlEvents(i->oPart, i->doClones);
+ updateFlags |= SC_PART_MODIFIED;
+ break;
+ case UndoOp::AddEvent:
+ addEvent(i->nEvent, i->part);
+ if(i->doCtrls)
+ addPortCtrlEvents(i->nEvent, i->part, i->doClones);
+ updateFlags |= SC_EVENT_INSERTED;
+ break;
+ case UndoOp::DeleteEvent:
+ if(i->doCtrls)
+ removePortCtrlEvents(i->nEvent, i->part, i->doClones);
+ deleteEvent(i->nEvent, i->part);
+ updateFlags |= SC_EVENT_REMOVED;
+ break;
+ case UndoOp::ModifyEvent:
+ if(i->doCtrls)
+ removePortCtrlEvents(i->nEvent, i->part, i->doClones);
+ changeEvent(i->nEvent, i->oEvent, i->part);
+ if(i->doCtrls)
+ addPortCtrlEvents(i->oEvent, i->part, i->doClones);
+ updateFlags |= SC_EVENT_MODIFIED;
+ break;
+ case UndoOp::AddTempo:
+ //printf("doRedo2: UndoOp::AddTempo. adding tempo at: %d with tempo=%d\n", i->a, i->b);
+ tempomap.addTempo(i->a, i->b);
+ updateFlags |= SC_TEMPO;
+ break;
+ case UndoOp::DeleteTempo:
+ //printf("doRedo2: UndoOp::DeleteTempo. deleting tempo at: %d with tempo=%d\n", i->a, i->b);
+ tempomap.delTempo(i->a);
+ updateFlags |= SC_TEMPO;
+ break;
+ case UndoOp::AddSig:
+ sigmap.add(i->a, i->b, i->c);
+ updateFlags |= SC_SIG;
+ break;
+ case UndoOp::DeleteSig:
+ sigmap.del(i->a);
+ updateFlags |= SC_SIG;
+ break;
+ case UndoOp::ModifyClip:
+ case UndoOp::ModifyMarker:
+ 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, Track* oldTrack, Track* newTrack)
+void Song::undoOp(UndoOp::UndoType type, int n, Track* oldTrack, Track* newTrack)
+ {
+ UndoOp i;
+ i.type = type;
+ i.trackno = n;
+ i.oTrack = oldTrack;
+ i.nTrack = newTrack;
+ // Added by Tim. p3.3.6
+ //printf("Song::undoOp ModifyTrack oTrack %p %s nTrack %p %s\n", i.oTrack, i.oTrack->name().latin1(), i.nTrack, i.nTrack->name().latin1());
+
+ addUndo(i);
+ }
+
+void Song::undoOp(UndoOp::UndoType type, int n, Track* track)
+ {
+ UndoOp i;
+ i.type = type;
+ i.trackno = n;
+ i.oTrack = 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, Event& oev, Event& nev, Part* part)
+void Song::undoOp(UndoOp::UndoType type, Event& oev, Event& nev, Part* part, bool doCtrls, bool doClones)
+ {
+ UndoOp i;
+ i.type = type;
+ i.nEvent = nev;
+ i.oEvent = oev;
+ i.part = part;
+ i.doCtrls = doCtrls;
+ i.doClones = doClones;
+ addUndo(i);
+ }
+
+void Song::undoOp(UndoOp::UndoType type, Event& nev, Part* part, bool doCtrls, bool doClones)
+ {
+ UndoOp i;
+ i.type = type;
+ i.nEvent = nev;
+ i.part = part;
+ i.doCtrls = doCtrls;
+ i.doClones = doClones;
+ addUndo(i);
+ }
+
+//void Song::undoOp(UndoOp::UndoType type, Part* oPart, Part* nPart)
+void Song::undoOp(UndoOp::UndoType type, Part* oPart, Part* nPart, bool doCtrls, bool doClones)
+ {
+ UndoOp i;
+ i.type = type;
+ i.oPart = nPart;
+ i.nPart = oPart;
+ i.doCtrls = doCtrls;
+ i.doClones = doClones;
+ addUndo(i);
+ }
+
+void Song::undoOp(UndoOp::UndoType type, int c, int ctrl, int ov, int nv)
+ {
+ UndoOp i;
+ i.type = type;
+ i.channel = c;
+ i.ctrl = ctrl;
+ i.oVal = ov;
+ i.nVal = nv;
+ 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, 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);
+ }
+
+void Song::undoOp(UndoOp::UndoType type, Marker* copyMarker, Marker* realMarker)
+ {
+ UndoOp i;
+ i.type = type;
+ i.realMarker = realMarker;
+ i.copyMarker = copyMarker;
+
+ addUndo(i);
+ }
+
+//---------------------------------------------------------
+// addUndo
+//---------------------------------------------------------
+
+void Song::addUndo(UndoOp& i)
+ {
+ if (!undoMode) {
+ printf("internal error: undoOp without startUndo()\n");
+ 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;
+ Undo& u = undoList->back();
+ for (riUndoOp i = u.rbegin(); i != u.rend(); ++i) {
+ switch(i->type) {
+ case UndoOp::AddTrack:
+ removeTrack1(i->oTrack);
+ break;
+ case UndoOp::DeleteTrack:
+ insertTrack1(i->oTrack, i->trackno);
+
+ // FIXME: Would like to put this part in Undo2, but indications
+ // elsewhere are that (dis)connecting jack routes must not be
+ // done in the realtime thread. The result is that we get a few
+ // "PANIC Process init: No buffer from audio device" messages
+ // before the routes are (dis)connected. So far seems to do no harm though...
+ switch(i->oTrack->type())
+ {
+ case Track::AUDIO_OUTPUT:
+ case Track::AUDIO_INPUT:
+ connectJackRoutes((AudioTrack*)i->oTrack, false);
+ break;
+ //case Track::AUDIO_SOFTSYNTH:
+ //SynthI* si = (SynthI*)i->oTrack;
+ //si->synth()->init(
+ // break;
+ default:
+ break;
+ }
+
+ break;
+ case UndoOp::ModifyClip:
+ SndFile::applyUndoFile(i->filename, i->tmpwavfile, i->startframe, i->endframe);
+ break;
+
+ default:
+ break;
+ }
+ }
+ return false;
+ }
+
+//---------------------------------------------------------
+// doUndo3
+// non realtime context
+//---------------------------------------------------------
+
+void Song::doUndo3()
+ {
+ Undo& u = undoList->back();
+ for (riUndoOp i = u.rbegin(); i != u.rend(); ++i) {
+ switch(i->type) {
+ case UndoOp::AddTrack:
+ removeTrack3(i->oTrack);
+ break;
+ case UndoOp::DeleteTrack:
+ insertTrack3(i->oTrack, i->trackno);
+ break;
+ case UndoOp::ModifyTrack:
+ // Not much choice but to do this - Tim.
+ //clearClipboardAndCloneList();
+ break;
+ case UndoOp::ModifyMarker:
+ {
+ //printf("performing undo for one marker at %d\n", i->realMarker->tick());
+ Marker tmpMarker = *i->realMarker;
+ *i->realMarker = *i->copyMarker; // swap them
+ *i->copyMarker = tmpMarker;
+ }
+ 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;
+ Undo& u = redoList->back();
+ for (iUndoOp i = u.begin(); i != u.end(); ++i) {
+ switch(i->type) {
+ case UndoOp::AddTrack:
+ insertTrack1(i->oTrack, i->trackno);
+
+ // FIXME: See comments in Undo1.
+ switch(i->oTrack->type())
+ {
+ case Track::AUDIO_OUTPUT:
+ case Track::AUDIO_INPUT:
+ connectJackRoutes((AudioTrack*)i->oTrack, false);
+ break;
+ //case Track::AUDIO_SOFTSYNTH:
+ //SynthI* si = (SynthI*)i->oTrack;
+ //si->synth()->init(
+ // break;
+ default:
+ break;
+ }
+
+ break;
+ case UndoOp::DeleteTrack:
+ removeTrack1(i->oTrack);
+ break;
+ case UndoOp::ModifyClip:
+ SndFile::applyUndoFile(i->filename, i->tmpwavfile, i->startframe, i->endframe);
+ break;
+ default:
+ break;
+ }
+ }
+ return false;
+ }
+
+//---------------------------------------------------------
+// doRedo3
+// non realtime context
+//---------------------------------------------------------
+
+void Song::doRedo3()
+ {
+ Undo& u = redoList->back();
+ for (iUndoOp i = u.begin(); i != u.end(); ++i) {
+ switch(i->type) {
+ case UndoOp::AddTrack:
+ insertTrack3(i->oTrack, i->trackno);
+ break;
+ case UndoOp::DeleteTrack:
+ removeTrack3(i->oTrack);
+ break;
+ case UndoOp::ModifyTrack:
+ // Not much choice but to do this - Tim.
+ //clearClipboardAndCloneList();
+ break;
+ case UndoOp::ModifyMarker:
+ {
+ //printf("performing redo for one marker at %d\n", i->realMarker->tick());
+ Marker tmpMarker = *i->realMarker;
+ *i->realMarker = *i->copyMarker; // swap them
+ *i->copyMarker = tmpMarker;
+ }
+ break;
+ default:
+ break;
+ }
+ }
+ undoList->push_back(u); // put item on undo list
+ redoList->pop_back();
+ dirty = true;
+ }
+
diff --git a/muse2/muse/undo.h b/muse2/muse/undo.h
new file mode 100644
index 00000000..c20fe3f5
--- /dev/null
+++ b/muse2/muse/undo.h
@@ -0,0 +1,102 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: undo.h,v 1.6.2.5 2009/05/24 21:43:44 terminator356 Exp $
+//
+// (C) Copyright 1999/2000 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __UNDO_H__
+#define __UNDO_H__
+
+#include <list>
+#include <qstring.h>
+#include "event.h"
+#include "marker/marker.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, ModifyTrack,
+ AddPart, DeletePart, ModifyPart,
+ AddEvent, DeleteEvent, ModifyEvent,
+ AddTempo, DeleteTempo,
+ AddSig, DeleteSig,
+ SwapTrack,
+ ModifyClip,
+ ModifyMarker
+ };
+ UndoType type;
+
+ union {
+ struct {
+ int a;
+ int b;
+ int c;
+ };
+ struct {
+ Track* oTrack;
+ Track* nTrack;
+ int trackno;
+ };
+ struct {
+ Part* oPart;
+ Part* nPart;
+ };
+ struct {
+ Part* part;
+ };
+ struct {
+ SigEvent* nSignature;
+ SigEvent* oSignature;
+ };
+ struct {
+ int channel;
+ int ctrl;
+ int oVal;
+ int nVal;
+ };
+ 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 {
+ Marker* realMarker;
+ Marker* copyMarker;
+ };
+ };
+ Event oEvent;
+ Event nEvent;
+ bool doCtrls;
+ bool doClones;
+ 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:
+ void clearDelete();
+ };
+
+typedef UndoList::iterator iUndo;
+
+
+#endif // __UNDO_H__
diff --git a/muse2/muse/value.cpp b/muse2/muse/value.cpp
new file mode 100644
index 00000000..0acfc6e0
--- /dev/null
+++ b/muse2/muse/value.cpp
@@ -0,0 +1,60 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: value.cpp,v 1.2 2004/02/28 14:58:21 wschweer Exp $
+//
+// (C) Copyright 2000 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include "value.h"
+#include "xml.h"
+
+
+IValue::IValue(QObject* parent, const char* name)
+ : QObject(parent, name)
+ {
+ }
+BValue::BValue(QObject* parent, const char* name)
+ : QObject(parent, name)
+ {
+ }
+
+//---------------------------------------------------------
+// save
+//---------------------------------------------------------
+
+void BValue::save(int level, Xml& xml)
+ {
+ xml.intTag(level, name(), val);
+ }
+
+//---------------------------------------------------------
+// save
+//---------------------------------------------------------
+
+void IValue::save(int level, Xml& xml)
+ {
+ xml.intTag(level, name(), 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/muse2/muse/value.h b/muse2/muse/value.h
new file mode 100644
index 00000000..fe3817a2
--- /dev/null
+++ b/muse2/muse/value.h
@@ -0,0 +1,61 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: value.h,v 1.1.1.1 2003/10/27 18:51:53 wschweer Exp $
+//
+// (C) Copyright 2000 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __VALUE_H__
+#define __VALUE_H__
+
+#include <qobject.h>
+
+class Xml;
+
+//---------------------------------------------------------
+// IValue
+//---------------------------------------------------------
+
+class IValue : public QObject {
+ int val;
+
+ Q_OBJECT
+
+ signals:
+ void valueChanged(int);
+
+ public slots:
+ void setValue(int v);
+
+ public:
+ IValue(QObject* parent=0, const char* name=0);
+ int value() const { return val; }
+ void save(int level, Xml& xml);
+ };
+
+//---------------------------------------------------------
+// BValue
+//---------------------------------------------------------
+
+class BValue : public QObject {
+ bool val;
+
+ Q_OBJECT
+
+ signals:
+ void valueChanged(bool);
+ void valueChanged(int);
+
+ public slots:
+ void setValue(bool v);
+ void setValue(int v) { setValue(bool(v)); }
+
+ public:
+ BValue(QObject* parent=0, const char* name=0);
+ bool value() const { return val; }
+ void save(int level, Xml& xml);
+ };
+
+#endif
+
diff --git a/muse2/muse/vst.cpp b/muse2/muse/vst.cpp
new file mode 100644
index 00000000..ddb2e87d
--- /dev/null
+++ b/muse2/muse/vst.cpp
@@ -0,0 +1,630 @@
+//===================================================================
+// MusE
+// Linux Music Editor
+// $Id: vst.cpp,v 1.5.2.6 2009/12/06 10:05:00 terminator356 Exp $
+//
+// This code is based on jack_fst:
+// Copyright (C) 2004 Paul Davis <paul@linuxaudiosystems.com>
+// Torben Hohn <torbenh@informatik.uni-bremen.de>
+//
+// (C) Copyright 2004 Werner Schweer (ws@seh.de)
+//===================================================================
+
+#include "config.h"
+
+#ifdef VST_SUPPORT
+
+#include <qdir.h>
+#include <cmath>
+#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 "xml.h"
+
+extern "C" void fst_error(const char *fmt, ...);
+extern long vstHostCallback (AEffect*, long, long, long, void*, float);
+
+extern JackAudioDevice* jackAudio;
+
+//---------------------------------------------------------
+// vstHostCallback
+//---------------------------------------------------------
+
+long vstHostCallback(AEffect* effect,
+ long opcode, long index, long value, void* ptr, float opt)
+ {
+ static VstTimeInfo _timeInfo;
+
+// JackVST* jackvst = effect ? ((JackVST*) effect->user) : NULL;
+ jack_position_t jack_pos;
+ jack_transport_state_t tstate;
+
+ switch (opcode) {
+ case audioMasterAutomate:
+ // index, value, returns 0
+ effect->setParameter (effect, index, opt);
+ return 0;
+
+ case audioMasterVersion:
+ // vst version, currently 2 (0 for older)
+ return 2;
+
+ 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 = 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;
+ }
+
+//---------------------------------------------------------
+// scanVstDir
+//---------------------------------------------------------
+
+static void scanVstDir(const QString& s)
+ {
+ if (debugMsg)
+ printf("scan vst plugin dir <%s>\n", s.latin1());
+ QDir pluginDir(s, QString("*.dll"), QDir::Files);
+ if (pluginDir.exists()) {
+ const QFileInfoList* list = pluginDir.entryInfoList();
+ QFileInfoListIterator it(*list);
+ QFileInfo* fi;
+ while((fi = it.current())) {
+ char* path = strdup(fi->filePath().latin1());
+ FSTInfo* info = fst_get_info(path);
+ if (info) {
+ if (info->numInputs == 0 && info->numOutputs)
+ //synthis.push_back(new VstSynth(*fi));
+ synthis.push_back(new VstSynth(*fi, fi->baseName(), QString(), QString(), QString()));
+ fst_free_info(info);
+ }
+ free(path);
+ ++it;
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// 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;
+ }
+ exit(-1);
+ }
+
+void jfst_reserve_mem (int bufsize)
+{
+ char buf [bufsize];
+ int i;
+
+ fprintf (stderr, "Reserving memory: base=%p, size=%d, end=%p\n",
+ buf, sizeof(buf), buf+sizeof(buf));
+ for (i=0; i<bufsize; i++)
+ {
+ buf[i] = (char) (i % 256);
+ }
+}
+
+//---------------------------------------------------------
+// initVST
+//---------------------------------------------------------
+
+void initVST()
+ {
+ jfst_reserve_mem(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_run_editor(_fst);
+ else
+ fst_destroy_editor(_fst);
+ _guiVisible = v;
+ }
+
+//---------------------------------------------------------
+// receiveEvent
+//---------------------------------------------------------
+
+MidiPlayEvent VstSynthIF::receiveEvent()
+ {
+ return MidiPlayEvent();
+ }
+
+//---------------------------------------------------------
+// hasGui
+//---------------------------------------------------------
+
+bool VstSynthIF::hasGui() const
+ {
+ return _fst->plugin->flags & effFlagsHasEditor;
+ }
+
+//---------------------------------------------------------
+// incInstances
+//---------------------------------------------------------
+
+void VstSynth::incInstances(int val)
+ {
+ _instances += val;
+ if (_instances == 0 && fstHandle) {
+ fst_unload(fstHandle);
+ fstHandle = 0;
+ }
+ }
+
+//---------------------------------------------------------
+// instantiate
+//---------------------------------------------------------
+
+void* VstSynth::instantiate()
+ {
+ ++_instances;
+ QString n;
+ n.setNum(_instances);
+ QString instanceName = baseName() + "-" + n;
+ doSetuid();
+ const char* path = info.filePath().latin1();
+
+ fstHandle = fst_load(path);
+ if (fstHandle == 0) {
+ printf("Synth::instantiate: cannot load vst plugin %s\n", path);
+ undoSetuid();
+ return 0;
+ }
+ FST* fst = fst_instantiate(fstHandle, vstHostCallback, 0);
+ if (fst == 0) {
+ printf("Synth::instantiate:: cannot instantiate plugin %s\n", path);
+ undoSetuid();
+ return 0;
+ }
+ AEffect* plugin = fst->plugin;
+ plugin->dispatcher (plugin, effMainsChanged, 0, 1, 0, 0.0f);
+
+ /* set program to zero */
+
+ plugin->dispatcher (plugin, effSetProgram, 0, 0, NULL, 0.0f);
+
+ if (fst_run_editor(fst)) {
+ printf("Synth::instantiate: cannot create gui");
+ undoSetuid();
+ return 0;
+ }
+// int vst_version = plugin->dispatcher (plugin, effGetVstVersion, 0, 0, NULL, 0.0f);
+ undoSetuid();
+ return fst;
+ }
+
+//---------------------------------------------------------
+// init
+//---------------------------------------------------------
+
+bool VstSynthIF::init(Synth* s)
+ {
+ _fst = (FST*)((VstSynth*)s)->instantiate();
+ return (_fst == 0);
+ }
+
+//---------------------------------------------------------
+// channels
+//---------------------------------------------------------
+
+int VstSynthIF::channels() const
+ {
+ AEffect* plugin = _fst->plugin;
+ return plugin->numOutputs;
+ }
+
+int VstSynthIF::totalOutChannels() const
+ {
+ AEffect* plugin = _fst->plugin;
+ return plugin->numOutputs;
+ }
+
+int VstSynthIF::totalInChannels() const
+ {
+ AEffect* plugin = _fst->plugin;
+ return plugin->numInputs;
+ }
+
+//---------------------------------------------------------
+// createSIF
+//---------------------------------------------------------
+
+//SynthIF* VstSynth::createSIF() const
+SynthIF* VstSynth::createSIF(SynthI* s)
+ {
+ //return new VstSynthIF();
+
+ VstSynthIF* sif = new VstSynthIF(s);
+ sif->init(this, s);
+ return sif;
+ }
+
+//---------------------------------------------------------
+// deactivate3
+//---------------------------------------------------------
+
+void VstSynthIF::deactivate3()
+ {
+ if (_fst) {
+ if (_guiVisible)
+ fst_destroy_editor(_fst);
+ fst_close(_fst);
+ _fst = 0;
+ }
+ }
+
+//---------------------------------------------------------
+// getParameter
+//---------------------------------------------------------
+
+float VstSynthIF::getParameter(unsigned long idx) const
+ {
+ return _fst->plugin->getParameter(_fst->plugin, idx);
+ }
+
+//---------------------------------------------------------
+// setParameter
+//---------------------------------------------------------
+
+void VstSynthIF::setParameter(unsigned long idx, float value)
+ {
+ _fst->plugin->setParameter(_fst->plugin, idx, value);
+ }
+
+//---------------------------------------------------------
+// write
+//---------------------------------------------------------
+
+void VstSynthIF::write(int level, Xml& xml) const
+ {
+ //---------------------------------------------
+ // dump current state of synth
+ //---------------------------------------------
+
+ int len = 0;
+ const unsigned char* p;
+ AEffect* plugin = _fst->plugin;
+ int params = plugin->numParams;
+ for (int i = 0; i < params; ++i) {
+ float f = plugin->getParameter(plugin, i);
+ xml.floatTag(level, "param", f);
+ }
+ }
+
+//---------------------------------------------------------
+// getData
+//---------------------------------------------------------
+
+iMPEvent VstSynthIF::getData(MidiPort* mp, MPEventList* el, iMPEvent i, unsigned pos, int ports, unsigned n, float** buffer)
+ {
+ AEffect* plugin = _fst->plugin;
+ for (; i != el->end(); ++i) {
+ if (mp)
+ mp->sendEvent(*i);
+ else {
+ if (putEvent(*i))
+ break;
+ }
+ }
+ if (plugin->flags & effFlagsCanReplacing) {
+ plugin->processReplacing(plugin, 0, buffer, n);
+ }
+ else {
+ plugin->process(plugin, 0, buffer, n);
+ }
+ return el->end();
+ }
+
+//---------------------------------------------------------
+// putEvent
+//---------------------------------------------------------
+
+bool VstSynthIF::putEvent(const MidiPlayEvent& ev)
+ {
+ if (midiOutputTrace)
+ ev.dump();
+ 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;
+ }
+ int rv = plugin->dispatcher(plugin, effProcessEvents, 0, 0, &events, 0.0f);
+ return false;
+ }
+#else
+void initVST() {}
+#endif
+
diff --git a/muse2/muse/vst.h b/muse2/muse/vst.h
new file mode 100644
index 00000000..38585e8e
--- /dev/null
+++ b/muse2/muse/vst.h
@@ -0,0 +1,83 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: vst.h,v 1.11.2.3 2009/11/25 09:09:44 terminator356 Exp $
+// (C) Copyright 2004 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __VST_H__
+#define __VST_H__
+
+#include "synth.h"
+//Added by qt3to4:
+#include <Q3PopupMenu>
+
+struct _FSTHandle;
+struct _FST;
+
+//---------------------------------------------------------
+// VstSynth
+//---------------------------------------------------------
+
+class VstSynth : public Synth {
+ _FSTHandle* fstHandle;
+
+ public:
+ //VstSynth(const QFileInfo& fi) : Synth(fi) { fstHandle = 0; }
+ VstSynth(const QFileInfo& fi) : Synth(fi, fi->baseName()) {
+ fstHandle = 0;
+ }
+
+ virtual ~VstSynth() {}
+ virtual void incInstances(int val);
+ virtual void* instantiate();
+ //virtual SynthIF* createSIF() const;
+ virtual SynthIF* createSIF(SynthI*) const;
+ };
+
+//---------------------------------------------------------
+// VstSynthIF
+// VSTi synthesizer instance
+//---------------------------------------------------------
+
+class VstSynthIF : public SynthIF
+ {
+ _FST* _fst;
+ bool _guiVisible;
+
+ public:
+ //VstSynthIF() { _fst = 0; _guiVisible = false; }
+ VstSynthIF(SynthI* s) : SynthIF(s) {
+ _fst = 0;
+ _guiVisible = false;
+ }
+
+ virtual bool initGui() { return true; };
+ virtual void guiHeartBeat() { }
+ 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 preProcessAlways() { };
+ virtual iMPEvent getData(MidiPort*, MPEventList*, iMPEvent, unsigned pos, int ports, unsigned n, float** buffer) ;
+ virtual bool putEvent(const MidiPlayEvent& ev);
+ virtual MidiPlayEvent receiveEvent();
+ virtual int eventsPending() const { return 0; }
+ virtual bool init(Synth*);
+ virtual int channels() const;
+ virtual int totalOutChannels() const;
+ virtual int totalInChannels() const;
+ virtual void deactivate3();
+ virtual const char* getPatchName(int, int, int, bool) const { return ""; }
+ virtual const char* getPatchName(int, int, MType, bool) { return ""; }
+ virtual void populatePatchPopup(Q3PopupMenu*, int, MType, bool) {};
+ virtual void write(int level, Xml& xml) const;
+ virtual float getParameter(unsigned long idx) const;
+ virtual void setParameter(unsigned long idx, float value);
+ virtual int getControllerInfo(int, const char**, int*, int*, int*, int*) { return 0; }
+ };
+
+
+#endif
+
diff --git a/muse2/muse/wave.cpp b/muse2/muse/wave.cpp
new file mode 100644
index 00000000..761df539
--- /dev/null
+++ b/muse2/muse/wave.cpp
@@ -0,0 +1,1175 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: wave.cpp,v 1.19.2.20 2009/12/20 05:00:35 terminator356 Exp $
+//
+// (C) Copyright 2000-2004 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include <fcntl.h>
+#include <unistd.h>
+#include <errno.h>
+#include <qfileinfo.h>
+#include <cmath>
+#include <qdatetime.h>
+#include <qmessagebox.h>
+#include <q3progressdialog.h>
+
+#include "xml.h"
+#include "song.h"
+#include "wave.h"
+#include "app.h"
+#include "filedialog.h"
+#include "arranger/arranger.h"
+#include "globals.h"
+#include "event.h"
+#include "audio.h"
+#include "sig.h"
+
+//#define WAVE_DEBUG
+//#define WAVE_DEBUG_PRC
+
+/*
+const char* audioFilePattern[] = {
+ "Wave/Binary (*.wav *.ogg *.bin)",
+ "Wave (*.wav *.ogg)",
+ "Binary (*.bin)",
+ "All Files (*)",
+ 0
+ };
+*/
+const int cacheMag = 128;
+
+// ClipList* waveClips;
+
+SndFileList SndFile::sndFiles;
+
+//---------------------------------------------------------
+// SndFile
+//---------------------------------------------------------
+
+SndFile::SndFile(const QString& name)
+ {
+ finfo = new QFileInfo(name);
+ sf = 0;
+ sfUI = 0;
+ csize = 0;
+ cache = 0;
+ openFlag = false;
+ sndFiles.push_back(this);
+ refCount=0;
+ }
+
+SndFile::~SndFile()
+ {
+ if (openFlag)
+ close();
+ for (iSndFile i = sndFiles.begin(); i != sndFiles.end(); ++i) {
+ if (*i == this) {
+ sndFiles.erase(i);
+ break;
+ }
+ }
+ delete finfo;
+ 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 = path();
+ sfinfo.format = 0;
+ sf = sf_open(p.latin1(), SFM_READ, &sfinfo);
+ sfinfo.format = 0;
+ sfUI = sf_open(p.latin1(), SFM_READ, &sfinfo);
+ if (sf == 0 || sfUI == 0)
+ return true;
+
+ writeFlag = false;
+ openFlag = true;
+ QString cacheName = finfo->dirPath(true) + QString("/") + finfo->baseName(true) + 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->dirPath(true) +
+ QString("/") + finfo->baseName(true) + QString(".wca");
+ ::remove(cacheName.latin1());
+ if (openRead()) {
+ printf("SndFile::update openRead(%s) failed: %s\n", path().latin1(), strerror().latin1());
+ }
+ }
+
+//---------------------------------------------------------
+// readCache
+//---------------------------------------------------------
+
+void SndFile::readCache(const QString& path, bool showProgress)
+ {
+// printf("readCache %s for %d samples channel %d\n",
+// path.latin1(), 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.latin1(), "r");
+ if (cfile) {
+ for (unsigned ch = 0; ch < channels(); ++ch)
+ fread(cache[ch], csize * sizeof(SampleV), 1, cfile);
+ fclose(cfile);
+ return;
+ }
+
+ //---------------------------------------------------
+ // create cache
+ //---------------------------------------------------
+
+ Q3ProgressDialog* progress = 0;
+ if (showProgress) {
+ QString label(QWidget::tr("create peakfile for "));
+ label += basename();
+ progress = new Q3ProgressDialog(label,
+ QString::null, csize, 0, 0, true);
+ progress->setMinimumDuration(0);
+ progress->show();
+ }
+ float data[channels()][cacheMag];
+ float* fp[channels()];
+ for (unsigned k = 0; k < channels(); ++k)
+ fp[k] = &data[k][0];
+ int interval = csize / 10;
+
+ if(!interval)
+ interval = 1;
+ for (int i = 0; i < csize; i++) {
+ if (showProgress && ((i % interval) == 0))
+ progress->setProgress(i);
+ seek(i * cacheMag, 0);
+ 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 = int(fd * 255.0);
+ if (idata < 0)
+ idata = -idata;
+ if (cache[ch][i].peak < idata)
+ cache[ch][i].peak = idata;
+ }
+ // amplify rms value +12dB
+ int rmsValue = int((sqrt(rms/cacheMag) * 255.0));
+ if (rmsValue > 255)
+ rmsValue = 255;
+ cache[ch][i].rms = rmsValue;
+ }
+ }
+ if (showProgress)
+ progress->setProgress(csize);
+ writeCache(path);
+ if (showProgress)
+ delete progress;
+ }
+
+//---------------------------------------------------------
+// writeCache
+//---------------------------------------------------------
+
+void SndFile::writeCache(const QString& path)
+ {
+ FILE* cfile = fopen(path.latin1(), "w");
+ if (cfile == 0)
+ return;
+ for (unsigned ch = 0; ch < channels(); ++ch)
+ fwrite(cache[ch], csize * sizeof(SampleV), 1, cfile);
+ fclose(cfile);
+ }
+
+//---------------------------------------------------------
+// read
+//---------------------------------------------------------
+
+void SndFile::read(SampleV* s, int mag, unsigned pos, bool overwrite)
+ {
+ if(overwrite)
+ for (unsigned ch = 0; ch < channels(); ++ch) {
+ s[ch].peak = 0;
+ s[ch].rms = 0;
+ }
+
+ if (pos > samples()) {
+// printf("%p pos %d > samples %d\n", this, 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_count_t ret = 0;
+ if(sfUI)
+ ret = sf_seek(sfUI, pos, SEEK_SET);
+ else
+ ret = sf_seek(sf, pos, SEEK_SET);
+ if(ret == -1)
+ return;
+ {
+ int srcChannels = channels();
+ int dstChannels = sfinfo.channels;
+ size_t n = mag;
+ float** dst = fp;
+ float buffer[n * dstChannels];
+
+ size_t rn = 0;
+ if(sfUI)
+ rn = sf_readf_float(sfUI, buffer, n);
+ else
+ rn = sf_readf_float(sf, buffer, n);
+ if(rn != n)
+ return;
+ 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) {
+
+ if(overwrite)
+ 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;
+ }
+
+ if(overwrite)
+ s[ch].rms = rms / mag;
+
+ else
+ s[ch].rms += rms / mag;
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// openWrite
+//---------------------------------------------------------
+
+bool SndFile::openWrite()
+ {
+ if (openFlag) {
+ printf("SndFile:: alread open\n");
+ return false;
+ }
+ QString p = path();
+ sf = sf_open(p.latin1(), SFM_RDWR, &sfinfo);
+ sfUI = 0;
+ if (sf) {
+ openFlag = true;
+ writeFlag = true;
+ QString cacheName = finfo->dirPath(true) +
+ QString("/") + finfo->baseName(true) + QString(".wca");
+ readCache(cacheName, true);
+ }
+ return sf == 0;
+ }
+
+//---------------------------------------------------------
+// close
+//---------------------------------------------------------
+
+void SndFile::close()
+ {
+ if (!openFlag) {
+ printf("SndFile:: alread closed\n");
+ return;
+ }
+ sf_close(sf);
+ if (sfUI)
+ sf_close(sfUI);
+ openFlag = false;
+ }
+
+//---------------------------------------------------------
+// remove
+//---------------------------------------------------------
+
+void SndFile::remove()
+ {
+ if (openFlag)
+ close();
+ QFile::remove(finfo->filePath());
+ }
+
+QString SndFile::basename() const
+ {
+ return finfo->baseName(true);
+ }
+
+QString SndFile::path() const
+ {
+ return finfo->filePath();
+ }
+
+QString SndFile::dirPath() const
+ {
+ return finfo->dirPath(true);
+ }
+
+QString SndFile::name() const
+ {
+ return finfo->fileName();
+ }
+
+//---------------------------------------------------------
+// samples
+//---------------------------------------------------------
+
+unsigned SndFile::samples() const
+ {
+ if (!writeFlag) // if file is read only sfinfo is reliable
+ return sfinfo.frames;
+ sf_count_t curPos = sf_seek(sf, 0, SEEK_CUR);
+ int frames = sf_seek(sf, 0, SEEK_END);
+ sf_seek(sf, curPos, SEEK_SET);
+ return frames;
+ }
+
+//---------------------------------------------------------
+// channels
+//---------------------------------------------------------
+
+unsigned SndFile::channels() const
+ {
+ return sfinfo.channels;
+ }
+
+unsigned SndFile::samplerate() const
+ {
+ return sfinfo.samplerate;
+ }
+
+unsigned SndFile::format() const
+ {
+ return sfinfo.format;
+ }
+
+void SndFile::setFormat(int fmt, int ch, int rate)
+ {
+ sfinfo.samplerate = rate;
+ sfinfo.channels = ch;
+ sfinfo.format = fmt;
+ sfinfo.seekable = true;
+ sfinfo.frames = 0;
+ }
+
+//---------------------------------------------------------
+// readWithHeap
+// not as realtime friendly but can retrieve bigger data
+//---------------------------------------------------------
+size_t SndFile::readWithHeap(int srcChannels, float** dst, size_t n, bool overwrite)
+ {
+ float *buffer = new float[n * sfinfo.channels];
+ int rn = readInternal(srcChannels,dst,n,overwrite, buffer);
+ delete buffer;
+ return rn;
+ }
+
+//---------------------------------------------------------
+// read
+//---------------------------------------------------------
+size_t SndFile::read(int srcChannels, float** dst, size_t n, bool overwrite)
+ {
+ float buffer[n * sfinfo.channels];
+ int rn = readInternal(srcChannels,dst,n,overwrite, buffer);
+ return rn;
+ }
+
+size_t SndFile::readInternal(int srcChannels, float** dst, size_t n, bool overwrite, float *buffer)
+{
+ size_t rn = sf_readf_float(sf, buffer, n);
+
+ float* src = buffer;
+ int dstChannels = sfinfo.channels;
+ if (srcChannels == dstChannels) {
+ if(overwrite)
+ for (size_t i = 0; i < rn; ++i) {
+ for (int ch = 0; ch < srcChannels; ++ch)
+ *(dst[ch]+i) = *src++;
+ }
+ else
+ 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
+ if(overwrite)
+ for (size_t i = 0; i < rn; ++i)
+ *(dst[0] + i) = src[i + i] + src[i + i + 1];
+ else
+ 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
+ if(overwrite)
+ for (size_t i = 0; i < rn; ++i) {
+ float data = *src++;
+ *(dst[0]+i) = data;
+ *(dst[1]+i) = data;
+ }
+ else
+ 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
+//
+// A hardcoded limiter was added that limits the output at 0.99/-0.99
+// libsndfile handles signal betwee -1.0/1.0 with current setting
+// outside these values there will be heavy distortion
+//
+//---------------------------------------------------------
+
+size_t SndFile::write(int srcChannels, float** src, size_t n)
+ {
+ int dstChannels = sfinfo.channels;
+ //float buffer[n * dstChannels];
+ float *buffer = new float[n * dstChannels];
+ float *dst = buffer;
+
+ const float limitValue=0.9999;
+
+
+ if (srcChannels == dstChannels) {
+ for (size_t i = 0; i < n; ++i) {
+ for (int ch = 0; ch < dstChannels; ++ch)
+ //*dst++ = *(src[ch]+i); // < limitValue ? *(src[ch]+i) : limitValue;
+ if (*(src[ch]+i) > 0)
+ *dst++ = *(src[ch]+i) < limitValue ? *(src[ch]+i) : limitValue;
+ else
+ *dst++ = *(src[ch]+i) > -limitValue ? *(src[ch]+i) : -limitValue;
+ }
+ }
+ else if ((srcChannels == 1) && (dstChannels == 2)) {
+ // mono to stereo
+ for (size_t i = 0; i < n; ++i) {
+ float data = *(src[0]+i);
+ if (data > 0) {
+ *dst++ = data < limitValue ? data : limitValue;
+ *dst++ = data < limitValue ? data : limitValue;
+ }
+ else {
+ *dst++ = data > -limitValue ? data : -limitValue;
+ *dst++ = data > -limitValue ? data : -limitValue;
+ }
+ }
+ }
+ else if ((srcChannels == 2) && (dstChannels == 1)) {
+ // stereo to mono
+ for (size_t i = 0; i < n; ++i)
+ if (*(src[0]+i) + *(src[1]+i) > 0)
+ *dst++ = (*(src[0]+i) + *(src[1]+i)) < limitValue ? (*(src[0]+i) + *(src[1]+i)) : limitValue;
+ else
+ *dst++ = (*(src[0]+i) + *(src[1]+i)) > -limitValue ? (*(src[0]+i) + *(src[1]+i)) : -limitValue;
+ }
+ else {
+ printf("SndFile:write channel mismatch %d -> %d\n",
+ srcChannels, dstChannels);
+ delete buffer;
+ return 0;
+ }
+ int nbr = sf_writef_float(sf, buffer, n) ;
+ delete buffer;
+ return nbr;
+ }
+
+//---------------------------------------------------------
+// seek
+//---------------------------------------------------------
+
+off_t SndFile::seek(off_t frames, int whence)
+ {
+ return sf_seek(sf, frames, whence);
+ }
+
+//---------------------------------------------------------
+// strerror
+//---------------------------------------------------------
+
+QString SndFile::strerror() const
+ {
+ char buffer[128];
+ buffer[0] = 0;
+ sf_error_str(sf, buffer, 128);
+ return QString(buffer);
+ }
+
+//---------------------------------------------------------
+// search
+//---------------------------------------------------------
+
+SndFile* SndFileList::search(const QString& name)
+ {
+ for (iSndFile i = begin(); i != end(); ++i) {
+ if ((*i)->path() == name)
+ return *i;
+ }
+ return 0;
+ }
+
+//---------------------------------------------------------
+// getSnd
+//---------------------------------------------------------
+
+SndFile* getWave(const QString& inName, bool readOnlyFlag)
+ {
+ QString name = inName;
+
+ if (QFileInfo(name).isRelative()) {
+ name = museProject + QString("/") + name;
+ }
+ else {
+ if (!QFile::exists(name)) {
+ if (QFile::exists(museProject + QString("/") + name)) {
+ name = museProject + QString("/") + name;
+ }
+ }
+ }
+// printf("=====%s %s\n", inName.latin1(), name.latin1());
+
+ // only open one instance of wave file
+ SndFile* f = SndFile::sndFiles.search(name);
+ if (f == 0) {
+ if (!QFile::exists(name)) {
+ fprintf(stderr, "wave file <%s> not found\n",
+ name.latin1());
+ return 0;
+ }
+ f = new SndFile(name);
+ bool error;
+ if (readOnlyFlag)
+ error = f->openRead();
+ else {
+ error = f->openWrite();
+ // if peak cache is older than wave file we reaquire the cache
+ QFileInfo wavinfo(name);
+ QString cacheName = wavinfo.dirPath(true) + QString("/") + wavinfo.baseName(true) + QString(".wca");
+ QFileInfo wcainfo(cacheName);
+ if (!wcainfo.exists() || wcainfo.lastModified() < wavinfo.lastModified()) {
+ //printf("wcafile is older or does not exist!\n");
+ QFile(cacheName).remove();
+ f->readCache(cacheName,true);
+ }
+
+ }
+ if (error) {
+ fprintf(stderr, "open wave file(%s) for %s failed: %s\n",
+ name.latin1(),
+ readOnlyFlag ? "writing" : "reading",
+ f->strerror().latin1());
+ QMessageBox::critical(NULL, "MusE import error.",
+ "MusE failed to import the file.\n"
+ "Possibly this wasn't a sound file?\n"
+ "If it was check the permissions, MusE\n"
+ "sometimes requires write access to the file.");
+
+ delete f;
+ f = 0;
+ }
+ }
+ else {
+ if (!readOnlyFlag && ! f->isWritable()) {
+ if (f->isOpen())
+ f->close();
+ f->openWrite();
+ }
+ else {
+ // if peak cache is older than wave file we reaquire the cache
+ QFileInfo wavinfo(name);
+ QString cacheName = wavinfo.dirPath(true) + QString("/") + wavinfo.baseName(true) + QString(".wca");
+ QFileInfo wcainfo(cacheName);
+ if (!wcainfo.exists() || wcainfo.lastModified() < wavinfo.lastModified()) {
+ //printf("wcafile is older or does not exist!\n");
+ QFile(cacheName).remove();
+ f->readCache(cacheName,true);
+ }
+
+ }
+ }
+ 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.latin1(), tmpfile.latin1(), startframe, endframe);
+ SndFile* orig = sndFiles.search(original);
+ SndFile tmp = SndFile(tmpfile);
+ if (!orig) {
+ printf("Internal error: could not find original file: %s in filelist - Aborting\n", original.latin1());
+ return;
+ }
+
+ if (!orig->isOpen()) {
+ if (orig->openRead()) {
+ printf("Cannot open original file %s for reading - cannot undo! Aborting\n", original.latin1());
+ return;
+ }
+ }
+
+ if (!tmp.isOpen()) {
+ if (tmp.openRead()) {
+ printf("Could not open temporary file %s for writing - cannot undo! Aborting\n", tmpfile.latin1());
+ 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, 0);
+ orig->readWithHeap(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, 0);
+ tmp.readWithHeap(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, 0);
+ 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, 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 an audio file you have first to select"
+ "a wave track"));
+ return;
+ }
+ //QString fn = getOpenFileName(lastWavePath, audioFilePattern, this,
+ QString fn = getOpenFileName(lastWavePath, audio_file_pattern, this,
+ tr("Import Wave File"), 0);
+ if (!fn.isEmpty()) {
+ lastWavePath = fn;
+ importWaveToTrack(fn);
+ }
+ }
+
+//---------------------------------------------------------
+// importWaveToTrack
+//---------------------------------------------------------
+
+bool MusE::importWaveToTrack(QString& name, unsigned tick, Track* track)
+ {
+ if (track==NULL)
+ track = (WaveTrack*)(arranger->curTrack());
+
+ SndFile* f = getWave(name, true);
+
+ if (f == 0) {
+ printf("import audio file failed\n");
+ return true;
+ }
+ int samples = f->samples();
+ if ((unsigned)sampleRate !=f->samplerate()) {
+ if(QMessageBox::question(this, tr("Import Wavefile"),
+ tr("This wave file has a samplerate of %1,\n"
+ "as opposed to current setting %2.\n"
+ "Do you still want to import it?").arg(f->samplerate()).arg(sampleRate),
+ tr("&Yes"), tr("&No"),
+ QString::null, 0, 1 ))
+ {
+ //printf("why won't muse let me delete the file object? %d\n", f->getRefCount());
+ if (f->getRefCount() == 0)
+ delete f;
+ return true;
+ }
+ }
+ track->setChannels(f->channels());
+
+ WavePart* part = new WavePart((WaveTrack *)track);
+ if (tick)
+ part->setTick(tick);
+ else
+ part->setTick(song->cpos());
+ part->setLenFrame(samples);
+
+ Event event(Wave);
+ SndFileR sf(f);
+ event.setSndFile(sf);
+ event.setSpos(0);
+ event.setLenFrame(samples);
+ part->addEvent(event);
+
+ part->setName(QFileInfo(name).baseName(true));
+ audio->msgAddPart(part);
+ unsigned endTick = part->tick() + part->lenTick();
+ if (song->len() < endTick)
+ song->setLen(endTick);
+ return false;
+ }
+#if 0
+//---------------------------------------------------------
+// Clip
+//---------------------------------------------------------
+
+ClipBase::ClipBase(const SndFileR& file, int start, int l)
+ : f(file)
+ {
+ refCount = 0;
+ for (int i = 1; true; ++i) {
+ _name.sprintf("%s.%d", f.basename().latin1(), i);
+ ciClip ic = waveClips->begin();
+ for (; ic != waveClips->end(); ++ic) {
+ if ((*ic)->name() == _name)
+ break;
+ }
+ if (ic == waveClips->end())
+ break;
+ // try another name
+ }
+ _spos = start;
+ len = l;
+ deleted = false;
+ lrefs = 0;
+ waveClips->add(this);
+ }
+
+//---------------------------------------------------------
+// read
+//---------------------------------------------------------
+
+void ClipBase::read(unsigned srcOffset, float** buffer, int channel, unsigned n)
+ {
+ if (f.isNull())
+ return;
+ f.seek(srcOffset + _spos, 0);
+ f.read(channel, buffer, n);
+ }
+
+ClipBase::~ClipBase()
+ {
+ waveClips->remove(this);
+ }
+
+//---------------------------------------------------------
+// ClipList::write(level, xml)
+//---------------------------------------------------------
+
+void ClipList::write(int level, Xml& xml) const
+ {
+ for (ciClip i = begin(); i != end(); ++i) {
+ ClipBase* clip = *i;
+ // only write visible clips
+ if (clip->references())
+ (*i)->write(level, xml);
+ }
+ }
+
+//---------------------------------------------------------
+// ClipBase::write(level, xml)
+//---------------------------------------------------------
+
+void ClipBase::write(int level, Xml& xml) const
+ {
+ xml.tag(level++, "clip");
+ QString path = f.dirPath();
+
+ //
+ // waves in the project dirctory are stored
+ // with relative path name, others with absolute path
+ //
+ if (path == museProject)
+ xml.strTag(level, "file", f.name());
+ else
+ xml.strTag(level, "file", f.path());
+
+ xml.strTag(level, "name", _name);
+ xml.intTag(level, "tick", _spos);
+ xml.intTag(level, "len", len);
+ xml.etag(level, "clip");
+ }
+
+//---------------------------------------------------------
+// ClipBase::read
+//---------------------------------------------------------
+
+ClipBase* readClip(Xml& xml)
+ {
+ SndFile* f = 0;
+ QString name;
+ unsigned spos = 0;
+ int len = 0;
+
+ for (;;) {
+ Xml::Token token = xml.parse();
+ const QString& tag = xml.s1();
+ switch (token) {
+ case Xml::Error:
+ case Xml::End:
+ return 0;
+ case Xml::TagStart:
+ if (tag == "file")
+ f = getWave(xml.parse1(), false);
+ else if (tag == "name")
+ name = xml.parse1();
+ else if (tag == "tick")
+ spos = xml.parseInt();
+ else if (tag == "len")
+ len = xml.parseInt();
+ else
+ xml.unknown("Clip");
+ break;
+ case Xml::TagEnd:
+ if (tag == "clip") {
+ if (!f)
+ printf("clip: file not found\n");
+ ClipBase* clip = new ClipBase(f, spos, len);
+ clip->setName(name);
+ return clip;
+ }
+ default:
+ break;
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// search
+//---------------------------------------------------------
+
+Clip ClipList::search(const QString& name) const
+ {
+ for (ciClip i = begin(); i != end(); ++i)
+ if ((*i)->name() == name)
+ return Clip(*i);
+ fprintf(stderr, "ClipList: clip <%s> not found\n",
+ name.latin1());
+ return Clip();
+ }
+
+//---------------------------------------------------------
+// remove
+//---------------------------------------------------------
+
+void ClipList::remove(ClipBase* clip)
+ {
+ for (iClip i = begin(); i != end(); ++i) {
+ if (*i == clip) {
+ erase(i);
+ return;
+ }
+ }
+ printf("ClipList:remove: clip not found\n");
+ }
+
+//---------------------------------------------------------
+// idx
+//---------------------------------------------------------
+
+int ClipList::idx(const Clip& clip) const
+ {
+ int n = 0;
+ for (ciClip i = begin(); i != end(); ++i, ++n) {
+ if (clip == *i)
+ return n;
+ }
+ return -1;
+ }
+#endif
+
+//---------------------------------------------------------
+// cmdAddRecordedWave
+//---------------------------------------------------------
+
+//void Song::cmdAddRecordedWave(WaveTrack* track, const Pos& s, const Pos& e)
+void Song::cmdAddRecordedWave(WaveTrack* track, Pos s, Pos e)
+ {
+ SndFile* f = track->recFile();
+ if (f == 0) {
+ printf("cmdAddRecordedWave: no snd file for track <%s>\n",
+ track->name().latin1());
+ return;
+ }
+
+ // Removed by Tim. p3.3.8
+ //unsigned startTick = roundDownBar(s.tick());
+ //unsigned endTick = roundUpBar(e.tick());
+
+ // Added by Tim. p3.3.8
+
+ if((audio->loopCount() > 0 && s.tick() > lPos().tick()) || (punchin() && s.tick() < lPos().tick()))
+ s.setTick(lPos().tick());
+ // If we are looping, just set the end to the right marker, since we don't know how many loops have occurred.
+ // (Fixed: Added Audio::loopCount)
+ // Otherwise if punchout is on, limit the end to the right marker.
+ //if(loop() || (punchout() && e.tick() > rPos().tick()) )
+ if((audio->loopCount() > 0) || (punchout() && e.tick() > rPos().tick()) )
+ e.setTick(rPos().tick());
+ // No part to be created? Delete the rec sound file.
+ if(s.tick() >= e.tick())
+ {
+ QString s = f->path();
+ delete f;
+ // The function which calls this function already does this immediately after. But do it here anyway.
+ track->setRecFile(0);
+ remove(s.latin1());
+ if(debugMsg)
+ printf("Song::cmdAddRecordedWave: remove file %s\n", s.latin1());
+ return;
+ }
+ // Round the start down using the Arranger part snap raster value.
+ unsigned startTick = sigmap.raster1(s.tick(), song->recRaster());
+ // Round the end up using the Arranger part snap raster value.
+ unsigned endTick = sigmap.raster2(e.tick(), song->recRaster());
+
+ f->update();
+
+ WavePart* part = new WavePart(track);
+ part->setTick(startTick);
+ part->setLenTick(endTick - startTick);
+ part->setName(track->name());
+
+ // create Event
+ Event event(Wave);
+ SndFileR sf(f);
+ event.setSndFile(sf);
+ // We are done with the _recFile member. Set to zero. The function which
+ // calls this function already does this immediately after. But do it here anyway.
+ track->setRecFile(0);
+
+ event.setSpos(0);
+
+ // Since the part start was snapped down, we must apply the difference so that the
+ // wave event tick lines up with when the user actually started recording.
+ // Added by Tim. p3.3.8
+ event.setTick(s.tick() - startTick);
+
+
+ event.setLenFrame(e.frame() - s.frame());
+ part->addEvent(event);
+
+ song->cmdAddPart(part);
+
+ if (song->len() < endTick)
+ song->setLen(endTick);
+ }
+
+//---------------------------------------------------------
+// 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.latin1());
+ strcpy(tmpfile_charstr, tmpfile.latin1());
+ 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)
+ if (--(sf->refCount) == 0) {
+ delete sf;
+ sf=NULL;
+ }
+ }
diff --git a/muse2/muse/wave.h b/muse2/muse/wave.h
new file mode 100644
index 00000000..f83e5bdb
--- /dev/null
+++ b/muse2/muse/wave.h
@@ -0,0 +1,264 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: wave.h,v 1.5.2.7 2009/12/20 05:00:35 terminator356 Exp $
+//
+// (C) Copyright 1999/2004 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __WAVE_H__
+#define __WAVE_H__
+
+#include <qstring.h>
+#include <list>
+#include <qfileinfo.h>
+#include <sndfile.h>
+
+class Xml;
+
+//---------------------------------------------------------
+// SampleV
+// peak file value
+//---------------------------------------------------------
+
+struct SampleV {
+ unsigned char peak;
+ unsigned char rms;
+ };
+
+//---------------------------------------------------------
+// SndFileList
+//---------------------------------------------------------
+
+class SndFile;
+class SndFileList : public std::list<SndFile*> {
+ public:
+ SndFile* search(const QString& name);
+ };
+
+typedef SndFileList::iterator iSndFile;
+typedef SndFileList::const_iterator ciSndFile;
+
+//---------------------------------------------------------
+// SndFile
+//---------------------------------------------------------
+
+class SndFile {
+ //static SndFileList _sndFiles;
+ QFileInfo* finfo;
+ SNDFILE* sf;
+ SNDFILE* sfUI;
+ SF_INFO sfinfo;
+ SampleV** cache;
+ int csize; //!< frames in cache
+
+ void writeCache(const QString& path);
+
+ bool openFlag;
+ bool writeFlag;
+ size_t readInternal(int srcChannels, float** dst, size_t n, bool overwrite, float *buffer);
+
+ protected:
+ int refCount;
+
+ public:
+ SndFile(const QString& name);
+ ~SndFile();
+ int getRefCount() { return refCount; }
+
+ static SndFileList sndFiles;
+ static void applyUndoFile(const QString& original, const QString& tmpfile, unsigned sx, unsigned ex);
+
+ void readCache(const QString& path, bool progress);
+
+ bool openRead(); //!< returns true on error
+ bool openWrite(); //!< returns true on error
+ void close();
+ void remove();
+
+ bool isOpen() const { return openFlag; }
+ bool isWritable() const { return writeFlag; }
+ void update();
+
+ QString basename() const; //!< filename without extension
+ QString dirPath() const; //!< path
+ QString path() const; //!< path with filename
+ QString name() const; //!< filename
+
+ 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, bool overwrite = true);
+ size_t readWithHeap(int channel, float**, size_t, bool overwrite = true);
+ size_t readDirect(float* buf, size_t n) { return sf_readf_float(sf, buf, n); }
+ size_t write(int channel, float**, size_t);
+
+ off_t seek(off_t frames, int whence);
+ void read(SampleV* s, int mag, unsigned pos, bool overwrite = true);
+ QString strerror() const;
+
+ static SndFile* search(const QString& name);
+ 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(); }
+
+ QString basename() const { return sf->basename(); }
+ QString dirPath() const { return sf->dirPath(); }
+ QString path() const { return sf->path(); }
+ QString name() const { return sf->name(); }
+
+ 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 readWithHeap(int channel, float** f, size_t n, bool overwrite = true) {
+ return sf->readWithHeap(channel, f, n, overwrite);
+ }
+ size_t read(int channel, float** f, size_t n, bool overwrite = true) {
+ return sf->read(channel, f, n, overwrite);
+ }
+ size_t readDirect(float* f, size_t n) { return sf->readDirect(f, n); }
+
+ size_t write(int channel, float** f, size_t n) {
+ return sf->write(channel, f, n);
+ }
+ off_t seek(off_t frames, int whence) {
+ return sf->seek(frames, whence);
+ }
+ void read(SampleV* s, int mag, unsigned pos, bool overwrite = true) {
+ sf->read(s, mag, pos, overwrite);
+ }
+ QString strerror() const { return sf->strerror(); }
+ };
+
+
+#if 0
+
+class Clip;
+//---------------------------------------------------------
+// ClipBase
+//---------------------------------------------------------
+
+class ClipBase {
+ protected:
+ QString _name;
+ SndFileR f;
+ int _spos; // start sample position in WaveFile
+ int len; // len of clip
+ int lrefs; // logical references
+ bool deleted;
+ int refCount;
+
+ public:
+ ClipBase(const SndFileR& f, int start, int len);
+ ~ClipBase();
+ const QString& name() const { return _name; }
+ void setName(const QString& s) { _name = s; }
+ int spos() const { return _spos; }
+ void setSpos(int s) { _spos = s; }
+ SndFileR file1() const { return f; }
+
+ void read(unsigned, float**, int, unsigned);
+ void write(int, Xml&) const;
+ int samples() const { return len; }
+ void setSamples(int s) { len = s; }
+ int getRefCount() const { return refCount; }
+ int references() const { return lrefs; }
+ void incRefs() { ++lrefs; }
+ void decRefs() { --lrefs; }
+ friend class WaveEvent;
+ };
+
+//---------------------------------------------------------
+// Clip
+//---------------------------------------------------------
+
+class Clip {
+ ClipBase* clip;
+
+ public:
+ Clip();
+ Clip(ClipBase* clip);
+ Clip(const SndFileR& f, int start, int len);
+ Clip(const Clip&);
+ Clip& operator=(const Clip&);
+ bool operator==(const Clip& c) const { return clip == c.clip; }
+ bool operator==(ClipBase* c) const { return clip == c; }
+ ~Clip();
+
+ // ClipBase* clipBase() const { return clip; }
+ bool isNull() const { return clip == 0; }
+ int getRefCount() const { return clip->getRefCount(); }
+
+ const QString& name() const { return clip->name(); }
+ void setName(const QString& s) { clip->setName(s); }
+ int spos() const { return clip->spos(); }
+ void setSpos(int s) { clip->setSpos(s); }
+ SndFileR file1() const { return clip->file1(); }
+
+ void read(unsigned off, float** f, int ch, unsigned nn) {
+ clip->read(off, f, ch, nn);
+ }
+ int samples() const { return clip->samples(); }
+ void setSamples(int s) { clip->setSamples(s); }
+ int references() const { return clip->references(); }
+ void incRefs() { clip->incRefs(); }
+ void decRefs() { clip->decRefs(); }
+ };
+
+//---------------------------------------------------------
+// ClipList
+//---------------------------------------------------------
+
+class ClipList : public std::list<ClipBase*> {
+ public:
+ int idx(const Clip&) const;
+ Clip search(const QString&) const;
+ void write(int, Xml&) const;
+ void add(ClipBase* clip) { push_back(clip); }
+ void remove(ClipBase*);
+ };
+
+typedef ClipList::iterator iClip;
+typedef ClipList::const_iterator ciClip;
+extern ClipBase* readClip(Xml& xml);
+#endif
+
+extern SndFile* getWave(const QString& name, bool readOnlyFlag);
+#endif
+
diff --git a/muse2/muse/waveedit/Makefile.am b/muse2/muse/waveedit/Makefile.am
new file mode 100644
index 00000000..0ab4f829
--- /dev/null
+++ b/muse2/muse/waveedit/Makefile.am
@@ -0,0 +1,18 @@
+include $(top_srcdir)/common.am
+
+if PCH
+AM_CXXFLAGS += -include $(top_srcdir)/all.h
+endif
+
+noinst_LIBRARIES = libwaveedit.a
+
+dist_libwaveedit_a_SOURCES = \
+ waveedit.cpp waveedit.h \
+ waveview.cpp waveview.h \
+ editgainbase.ui \
+ editgain.cpp editgain.h
+
+nodist_libwaveedit_a_SOURCES = \
+ moc_waveedit.cpp \
+ moc_waveview.cpp \
+ moc_editgain.cpp
diff --git a/muse2/muse/waveedit/Makefile.in b/muse2/muse/waveedit/Makefile.in
new file mode 100644
index 00000000..c9b5cf47
--- /dev/null
+++ b/muse2/muse/waveedit/Makefile.in
@@ -0,0 +1,606 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
+ $(top_srcdir)/common.am
+@PCH_TRUE@am__append_1 = -include $(top_srcdir)/all.h
+subdir = muse/waveedit
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal-include.m4 \
+ $(top_srcdir)/m4/alsa.m4 $(top_srcdir)/m4/docbook.m4 \
+ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
+ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
+ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+LIBRARIES = $(noinst_LIBRARIES)
+ARFLAGS = cru
+libwaveedit_a_AR = $(AR) $(ARFLAGS)
+libwaveedit_a_LIBADD =
+dist_libwaveedit_a_OBJECTS = waveedit.$(OBJEXT) waveview.$(OBJEXT) \
+ editgainbase.$(OBJEXT) editgain.$(OBJEXT)
+nodist_libwaveedit_a_OBJECTS = moc_waveedit.$(OBJEXT) \
+ moc_waveview.$(OBJEXT) moc_editgain.$(OBJEXT)
+libwaveedit_a_OBJECTS = $(dist_libwaveedit_a_OBJECTS) \
+ $(nodist_libwaveedit_a_OBJECTS)
+DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
+depcomp = $(SHELL) $(top_srcdir)/depcomp
+am__depfiles_maybe = depfiles
+am__mv = mv -f
+CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
+LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
+CXXLD = $(CXX)
+CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \
+ $(LDFLAGS) -o $@
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
+ $(LDFLAGS) -o $@
+SOURCES = $(dist_libwaveedit_a_SOURCES) \
+ $(nodist_libwaveedit_a_SOURCES)
+DIST_SOURCES = $(dist_libwaveedit_a_SOURCES)
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ALSA_CFLAGS = @ALSA_CFLAGS@
+ALSA_LIBS = @ALSA_LIBS@
+AMTAR = @AMTAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DOCBOOKSTYLE = @DOCBOOKSTYLE@
+DOCBOOKTARGETS = @DOCBOOKTARGETS@
+DOT = @DOT@
+DOTPATH = @DOTPATH@
+DOXYGEN = @DOXYGEN@
+DOXYGEN_TREEVIEW = @DOXYGEN_TREEVIEW@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+FLUIDSYNTHDIRS = @FLUIDSYNTHDIRS@
+FST_CFLAGS = @FST_CFLAGS@
+FST_LIBS = @FST_LIBS@
+Fluidsynth_CFLAGS = @Fluidsynth_CFLAGS@
+Fluidsynth_LIBS = @Fluidsynth_LIBS@
+GIVERTCAP = @GIVERTCAP@
+GREP = @GREP@
+HAVEDOT = @HAVEDOT@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JACK_CFLAGS = @JACK_CFLAGS@
+JACK_LIBS = @JACK_LIBS@
+JADE = @JADE@
+LASH_CFLAGS = @LASH_CFLAGS@
+LASH_LIBS = @LASH_LIBS@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LO_CFLAGS = @LO_CFLAGS@
+LO_LIBS = @LO_LIBS@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+MUSECXXFLAGS = @MUSECXXFLAGS@
+NM = @NM@
+NMEDIT = @NMEDIT@
+NSGMLS = @NSGMLS@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PCH = @PCH@
+PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+PYTHON = @PYTHON@
+PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
+PYTHON_INCLUDES = @PYTHON_INCLUDES@
+PYTHON_LIB = @PYTHON_LIB@
+PYTHON_PLATFORM = @PYTHON_PLATFORM@
+PYTHON_PREFIX = @PYTHON_PREFIX@
+PYTHON_VERSION = @PYTHON_VERSION@
+QTDIR_BIN = @QTDIR_BIN@
+QTDIR_INC = @QTDIR_INC@
+QT_LIBS = @QT_LIBS@
+RANLIB = @RANLIB@
+SAMPLERATE_CFLAGS = @SAMPLERATE_CFLAGS@
+SAMPLERATE_LIBS = @SAMPLERATE_LIBS@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SNDFILE_CFLAGS = @SNDFILE_CFLAGS@
+SNDFILE_LIBS = @SNDFILE_LIBS@
+STRIP = @STRIP@
+SUIDBUILD = @SUIDBUILD@
+SUIDINSTALL = @SUIDINSTALL@
+USE_SSE = @USE_SSE@
+UUID_CFLAGS = @UUID_CFLAGS@
+UUID_LIBS = @UUID_LIBS@
+VERSION = @VERSION@
+XMKMF = @XMKMF@
+X_CFLAGS = @X_CFLAGS@
+X_EXTRA_LIBS = @X_EXTRA_LIBS@
+X_LIBS = @X_LIBS@
+X_PRE_LIBS = @X_PRE_LIBS@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+have_docbook = @have_docbook@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+lt_ECHO = @lt_ECHO@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+pkgpyexecdir = @pkgpyexecdir@
+pkgpythondir = @pkgpythondir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+pyexecdir = @pyexecdir@
+pythondir = @pythondir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+synth_fluid = @synth_fluid@
+synth_fluidsynth = @synth_fluidsynth@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+AM_CXXFLAGS = $(MUSECXXFLAGS) -I.. -I$(top_srcdir)/synti \
+ -I$(top_srcdir)/muse/widgets -DQT_SHARED -DQT_THREAD_SUPPORT \
+ -DQT_PLUGIN $(QTDIR_INC) -DQT3_SUPPORT $(am__append_1)
+AM_CPPFLAGS =
+MOC = $(QTDIR_BIN)/moc
+#UIC = $(QTDIR_BIN)/uic3
+UIC = /usr/bin/uic3
+UIFILES = $(wildcard *.ui)
+MOCFILES = $(shell for h in $(filter %.h,$(SOURCES)); do \
+ if grep -q Q_OBJECT $$h; then \
+ echo $$h | sed "s/\(.*\)\.h/moc_\1.cpp/"; \
+ fi; \
+ done)
+
+BUILT_SOURCES = $(MOCFILES) $(UIFILES:%.ui=%.h)
+MOSTLYCLEANFILES = $(MOCFILES) $(UIFILES:%.ui=%.h)
+SUFFIXES = .ui .h.gch
+noinst_LIBRARIES = libwaveedit.a
+dist_libwaveedit_a_SOURCES = \
+ waveedit.cpp waveedit.h \
+ waveview.cpp waveview.h \
+ editgainbase.ui \
+ editgain.cpp editgain.h
+
+nodist_libwaveedit_a_SOURCES = \
+ moc_waveedit.cpp \
+ moc_waveview.cpp \
+ moc_editgain.cpp
+
+all: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) all-am
+
+.SUFFIXES:
+.SUFFIXES: .ui .h.gch .cpp .lo .o .obj
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/common.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu muse/waveedit/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu muse/waveedit/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+clean-noinstLIBRARIES:
+ -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
+libwaveedit.a: $(libwaveedit_a_OBJECTS) $(libwaveedit_a_DEPENDENCIES)
+ -rm -f libwaveedit.a
+ $(libwaveedit_a_AR) libwaveedit.a $(libwaveedit_a_OBJECTS) $(libwaveedit_a_LIBADD)
+ $(RANLIB) libwaveedit.a
+
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT)
+
+distclean-compile:
+ -rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/editgain.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/moc_editgain.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/moc_waveedit.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/moc_waveview.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/waveedit.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/waveview.Po@am__quote@
+
+.cpp.o:
+@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $<
+
+.cpp.obj:
+@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+
+.cpp.lo:
+@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $<
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ mkid -fID $$unique
+tags: TAGS
+
+TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ set x; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: CTAGS
+CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) check-am
+all-am: Makefile $(LIBRARIES)
+installdirs:
+install: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+ -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES)
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+ -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
+clean: clean-am
+
+clean-am: clean-generic clean-libtool clean-noinstLIBRARIES \
+ mostlyclean-am
+
+distclean: distclean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+ distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+ mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: all check install install-am install-strip
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
+ clean-libtool clean-noinstLIBRARIES ctags distclean \
+ distclean-compile distclean-generic distclean-libtool \
+ distclean-tags distdir dvi dvi-am html html-am info info-am \
+ install install-am install-data install-data-am install-dvi \
+ install-dvi-am install-exec install-exec-am install-html \
+ install-html-am install-info install-info-am install-man \
+ install-pdf install-pdf-am install-ps install-ps-am \
+ install-strip installcheck installcheck-am installdirs \
+ maintainer-clean maintainer-clean-generic mostlyclean \
+ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
+ pdf pdf-am ps ps-am tags uninstall uninstall-am
+
+
+de:
+ @for base in $(MOCFILES); do echo -e "\t$${base}.cpp $${base}.h \\"; done
+
+nde:
+ @for base in $(MOCFILES); do echo -e "\tmoc_$${base}.cpp \\"; done
+
+.ui.o: %.h
+ $(UIC) -L $(top_srcdir)/muse/widgets -o $*.cpp -impl $*.h $*.ui
+ $(MOC) $*.h >> $*.cpp
+ $(CXXCOMPILE) -c $*.cpp -o $*.o
+ $(RM) $*.cpp moc_$*.cpp moc_$*.o
+
+.ui.lo: %.h
+ $(UIC) -L $(top_srcdir)/muse/widgets -o $*.cpp -impl $*.h $*.ui
+ $(MOC) $*.h >> $*.cpp
+ $(LTCXXCOMPILE) -c $*.cpp -o $*.lo
+ $(RM) $*.cpp moc_$*.cpp moc_$*.lo moc_$*.o
+
+moc_%.cpp: %.h
+ $(MOC) $< -o $@
+
+%.h: %.ui
+ $(UIC) -o $@ $<
+# $(UIC) -L $(top_srcdir)/muse/widgets -o $@ $<
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/muse2/muse/waveedit/editgain.cpp b/muse2/muse/waveedit/editgain.cpp
new file mode 100644
index 00000000..ef9b781c
--- /dev/null
+++ b/muse2/muse/waveedit/editgain.cpp
@@ -0,0 +1,91 @@
+//
+// C++ Implementation: editgain
+//
+// Description:
+//
+//
+// Author: Mathias Lundgren <lunar_shuttle@users.sf.net>, (C) 2005
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+
+#include <qslider.h>
+#include <qpushbutton.h>
+
+#include "editgain.h"
+
+EditGain::EditGain(QWidget* parent, int initGainValue)
+ : EditGainBase(parent, "editgain", false)
+ {
+ sliderGain->setValue(sliderGain->maxValue() - initGainValue);
+ connect(buttonReset, SIGNAL(pressed()), this, SLOT(resetPressed()));
+ connect(buttonApply, SIGNAL(pressed()), this, SLOT(applyPressed()));
+ connect(buttonCancel,SIGNAL(pressed()), this, SLOT(cancelPressed()));
+ connect(sliderGain, SIGNAL(valueChanged(int)), this, SLOT(gainChanged(int)));
+ if (sliderGain->value() != 100)
+ buttonReset->setEnabled(true);
+ }
+
+
+EditGain::~EditGain()
+ {
+ }
+
+
+/*!
+ \fn EditGain::resetPressed
+ */
+void EditGain::resetPressed()
+ {
+ sliderGain->blockSignals(true);
+ sliderGain->setValue(100);
+ sliderGain->blockSignals(false);
+ buttonReset->setEnabled(false);
+ buttonApply->setEnabled(false);
+ }
+
+
+/*!
+ \fn EditGain::applyPressed()
+ */
+void EditGain::applyPressed()
+ {
+ done(QDialog::Accepted);
+ }
+
+
+/*!
+ \fn EditGain::cancelPressed()
+ */
+void EditGain::cancelPressed()
+ {
+ done(QDialog::Rejected);
+ }
+
+
+
+/*!
+ \fn EditGain::gainChanged(int value)
+ */
+void EditGain::gainChanged(int value)
+ {
+ gain = sliderGain->maxValue() - value;
+ if (sliderGain->value() != 100) {
+ buttonReset->setEnabled(true);
+ buttonApply->setEnabled(true);
+ }
+ else {
+ buttonReset->setEnabled(false);
+ buttonApply->setEnabled(false);
+ }
+ }
+
+
+/*!
+ \fn EditGain::getGain()
+ */
+int EditGain::getGain()
+ {
+ return gain;
+ }
diff --git a/muse2/muse/waveedit/editgain.h b/muse2/muse/waveedit/editgain.h
new file mode 100644
index 00000000..2094388b
--- /dev/null
+++ b/muse2/muse/waveedit/editgain.h
@@ -0,0 +1,37 @@
+//
+// C++ Interface: editgain
+//
+// Description:
+//
+//
+// Author: Mathias Lundgren <lunar_shuttle@users.sf.net>, (C) 2005
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+
+#ifndef EDITGAIN_H
+#define EDITGAIN_H
+
+#include "editgainbase.h"
+
+class EditGain : public EditGainBase
+{
+ Q_OBJECT
+public:
+ EditGain(QWidget* parent = 0, int initGainValue=100);
+
+ ~EditGain();
+ int getGain();
+
+private:
+ int gain;
+
+private slots:
+ void resetPressed();
+ void applyPressed();
+ void cancelPressed();
+ void gainChanged(int value);
+};
+
+#endif
diff --git a/muse2/muse/waveedit/editgainbase.ui b/muse2/muse/waveedit/editgainbase.ui
new file mode 100644
index 00000000..b23cd70e
--- /dev/null
+++ b/muse2/muse/waveedit/editgainbase.ui
@@ -0,0 +1,302 @@
+<!DOCTYPE UI><UI version="3.2" stdsetdef="1">
+<class>EditGainBase</class>
+<widget class="QDialog">
+ <property name="name">
+ <cstring>EditGainBase</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>284</width>
+ <height>367</height>
+ </rect>
+ </property>
+ <property name="caption">
+ <string>MusE: Modify gain</string>
+ </property>
+ <vbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QGroupBox">
+ <property name="name">
+ <cstring>groupBox2</cstring>
+ </property>
+ <property name="title">
+ <string>Gain</string>
+ </property>
+ <vbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QLayoutWidget">
+ <property name="name">
+ <cstring>layout14</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <spacer>
+ <property name="name">
+ <cstring>spacer6</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>90</width>
+ <height>41</height>
+ </size>
+ </property>
+ </spacer>
+ <widget class="QSlider">
+ <property name="name">
+ <cstring>sliderGain</cstring>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>40</width>
+ <height>150</height>
+ </size>
+ </property>
+ <property name="maxValue">
+ <number>200</number>
+ </property>
+ <property name="value">
+ <number>100</number>
+ </property>
+ <property name="orientation">
+ <enum>Vertical</enum>
+ </property>
+ <property name="tickmarks">
+ <enum>Both</enum>
+ </property>
+ <property name="tickInterval">
+ <number>10</number>
+ </property>
+ </widget>
+ <widget class="QLayoutWidget">
+ <property name="name">
+ <cstring>layout13</cstring>
+ </property>
+ <vbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>textLabel2</cstring>
+ </property>
+ <property name="text">
+ <string>200%</string>
+ </property>
+ </widget>
+ <spacer>
+ <property name="name">
+ <cstring>spacer4</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Vertical</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>30</width>
+ <height>109</height>
+ </size>
+ </property>
+ </spacer>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>textLabel1</cstring>
+ </property>
+ <property name="text">
+ <string>100%</string>
+ </property>
+ </widget>
+ <spacer>
+ <property name="name">
+ <cstring>spacer3</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Vertical</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>30</width>
+ <height>108</height>
+ </size>
+ </property>
+ </spacer>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>textLabel3</cstring>
+ </property>
+ <property name="text">
+ <string>0%</string>
+ </property>
+ </widget>
+ </vbox>
+ </widget>
+ <spacer>
+ <property name="name">
+ <cstring>spacer7</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>51</width>
+ <height>31</height>
+ </size>
+ </property>
+ </spacer>
+ </hbox>
+ </widget>
+ <widget class="QLayoutWidget">
+ <property name="name">
+ <cstring>layout16</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <spacer>
+ <property name="name">
+ <cstring>spacer11</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>70</width>
+ <height>31</height>
+ </size>
+ </property>
+ </spacer>
+ <widget class="QPushButton">
+ <property name="name">
+ <cstring>buttonReset</cstring>
+ </property>
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="text">
+ <string>&amp;Reset</string>
+ </property>
+ <property name="accel">
+ <string>Alt+R</string>
+ </property>
+ </widget>
+ <spacer>
+ <property name="name">
+ <cstring>spacer12</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>71</width>
+ <height>31</height>
+ </size>
+ </property>
+ </spacer>
+ </hbox>
+ </widget>
+ </vbox>
+ </widget>
+ <widget class="QButtonGroup">
+ <property name="name">
+ <cstring>buttonGroup2</cstring>
+ </property>
+ <property name="title">
+ <string></string>
+ </property>
+ <vbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QLayoutWidget">
+ <property name="name">
+ <cstring>layout6</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QPushButton">
+ <property name="name">
+ <cstring>buttonApply</cstring>
+ </property>
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="text">
+ <string>&amp;Apply</string>
+ </property>
+ <property name="accel">
+ <string>Alt+A</string>
+ </property>
+ </widget>
+ <spacer>
+ <property name="name">
+ <cstring>spacer5</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>61</width>
+ <height>31</height>
+ </size>
+ </property>
+ </spacer>
+ <widget class="QPushButton">
+ <property name="name">
+ <cstring>buttonCancel</cstring>
+ </property>
+ <property name="enabled">
+ <bool>true</bool>
+ </property>
+ <property name="text">
+ <string>&amp;Cancel</string>
+ </property>
+ <property name="accel">
+ <string>Alt+C</string>
+ </property>
+ </widget>
+ </hbox>
+ </widget>
+ </vbox>
+ </widget>
+ </vbox>
+</widget>
+<layoutdefaults spacing="6" margin="11"/>
+</UI>
diff --git a/muse2/muse/waveedit/waveedit.cpp b/muse2/muse/waveedit/waveedit.cpp
new file mode 100644
index 00000000..b342c14d
--- /dev/null
+++ b/muse2/muse/waveedit/waveedit.cpp
@@ -0,0 +1,413 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: waveedit.cpp,v 1.5.2.12 2009/04/06 01:24:54 terminator356 Exp $
+// (C) Copyright 2000 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include "app.h"
+#include "xml.h"
+#include "waveedit.h"
+#include "mtscale.h"
+#include "scrollscale.h"
+#include "waveview.h"
+#include "ttoolbar.h"
+#include "globals.h"
+#include "audio.h"
+#include "utils.h"
+#include "song.h"
+#include "poslabel.h"
+#include "gconfig.h"
+#include "icons.h"
+#include "shortcuts.h"
+
+#include <q3toolbar.h>
+#include <qtoolbutton.h>
+#include <q3accel.h>
+#include <qlayout.h>
+#include <q3hbox.h>
+#include <qsizegrip.h>
+#include <qscrollbar.h>
+#include <qlabel.h>
+#include <qpushbutton.h>
+#include <qradiobutton.h>
+#include <q3buttongroup.h>
+#include <q3listbox.h>
+#include <qcombobox.h>
+#include <q3header.h>
+#include <q3popupmenu.h>
+#include <qmenubar.h>
+#include <qaction.h>
+//Added by qt3to4:
+#include <QCloseEvent>
+#include <QResizeEvent>
+#include <QKeyEvent>
+
+extern QColor readColor(Xml& xml);
+
+int WaveEdit::_widthInit = 600;
+int WaveEdit::_heightInit = 400;
+
+//---------------------------------------------------------
+// closeEvent
+//---------------------------------------------------------
+
+void WaveEdit::closeEvent(QCloseEvent* e)
+ {
+ emit deleted((unsigned long)this);
+ e->accept();
+ }
+
+//---------------------------------------------------------
+// WaveEdit
+//---------------------------------------------------------
+
+WaveEdit::WaveEdit(PartList* pl)
+ : MidiEditor(1, 1, pl)
+ {
+ resize(_widthInit, _heightInit);
+
+ //---------Pulldown Menu----------------------------
+ Q3PopupMenu* menuFile = new Q3PopupMenu(this);
+ Q3PopupMenu* menuEdit = new Q3PopupMenu(this);
+ menuBar()->insertItem(tr("&File"), menuFile);
+ menuBar()->insertItem(tr("&Edit"), menuEdit);
+ menuFunctions = new Q3PopupMenu(this);
+ menuBar()->insertItem(tr("Func&tions"), menuFunctions);
+
+ menuGain = new Q3PopupMenu(this);
+ menuGain->insertItem(tr("200%"), CMD_GAIN_200);
+ menuGain->insertItem(tr("150%"), CMD_GAIN_150);
+ menuGain->insertItem(tr("75%"), CMD_GAIN_75);
+ menuGain->insertItem(tr("50%"), CMD_GAIN_50);
+ menuGain->insertItem(tr("25%"), CMD_GAIN_25);
+ menuGain->insertItem(tr("Other"), CMD_GAIN_FREE);
+ menuFunctions->insertItem(tr("&Gain"), menuGain);
+ menuFunctions->insertSeparator();
+
+ menuEdit->insertItem(tr("Edit in E&xternal Editor"), CMD_EDIT_EXTERNAL);
+ menuFunctions->insertItem(tr("Mute Selection"), CMD_MUTE);
+ menuFunctions->insertItem(tr("Normalize Selection"), CMD_NORMALIZE);
+ menuFunctions->insertItem(tr("Fade In Selection"), CMD_FADE_IN);
+ menuFunctions->insertItem(tr("Fade Out Selection"), CMD_FADE_OUT);
+ menuFunctions->insertItem(tr("Reverse Selection"), CMD_REVERSE);
+
+ select = new Q3PopupMenu(this);
+ select->insertItem(QIcon(*select_allIcon), tr("Select &All"), CMD_SELECT_ALL);
+ select->insertItem(QIcon(*select_deselect_allIcon), tr("&Deselect All"), CMD_SELECT_NONE);
+
+ menuEdit->insertItem(QIcon(*selectIcon), tr("Select"), select);
+
+ connect(menuFunctions, SIGNAL(activated(int)), SLOT(cmd(int)));
+ connect(menuFile, SIGNAL(activated(int)), SLOT(cmd(int)));
+ connect(select, SIGNAL(activated(int)), SLOT(cmd(int)));
+ connect(menuGain, SIGNAL(activated(int)), SLOT(cmd(int)));
+ connect(menuEdit, SIGNAL(activated(int)), SLOT(cmd(int)));
+
+ //---------ToolBar----------------------------------
+ tools = new Q3ToolBar(this, "waveedit-tools");
+ undoRedo->addTo(tools);
+
+ Q3Accel* qa = new Q3Accel(this);
+ qa->connectItem(qa->insertItem(Qt::CTRL+Qt::Key_Z), song, SLOT(undo()));
+ qa->connectItem(qa->insertItem(Qt::CTRL+Qt::Key_Y), song, SLOT(redo()));
+ connect(muse, SIGNAL(configChanged()), SLOT(configChanged()));
+
+
+ //--------------------------------------------------
+ // Transport Bar
+ Q3ToolBar* transport = new Q3ToolBar(this);
+ transportAction->addTo(transport);
+
+ //--------------------------------------------------
+ // ToolBar: Solo Cursor1 Cursor2
+
+ tb1 = new Q3ToolBar(this, "pianoroll-tools");
+
+ tb1->setLabel(tr("weTools"));
+ solo = new QToolButton(tb1);
+ solo->setText(tr("Solo"));
+ solo->setToggleButton(true);
+ connect(solo, SIGNAL(toggled(bool)), SLOT(soloChanged(bool)));
+
+ QLabel* label = new QLabel(tr("Cursor"), tb1, "Cursor");
+ label->setAlignment(Qt::AlignRight|Qt::AlignVCenter);
+ label->setIndent(3);
+ pos1 = new PosLabel(tb1);
+ pos2 = new PosLabel(tb1);
+ pos2->setSmpte(true);
+
+ //---------------------------------------------------
+ // Rest
+ //---------------------------------------------------
+
+ int yscale = 256;
+ int xscale;
+
+ if (!parts()->empty()) { // Roughly match total size of part
+ Part* firstPart = parts()->begin()->second;
+ xscale = 0 - firstPart->lenFrame()/_widthInit;
+ }
+ else {
+ xscale = -8000;
+ }
+
+ hscroll = new ScrollScale(1, -32768, xscale, 10000, Qt::Horizontal, mainw, 0, true, 10000.0);
+ view = new WaveView(this, mainw, xscale, yscale);
+ wview = view; // HACK!
+
+ QSizeGrip* corner = new QSizeGrip(mainw);
+ ymag = new QSlider(1, 256, 256, yscale, Qt::Vertical, mainw);
+ time = new MTScale(&_raster, mainw, xscale, true);
+ ymag->setFixedWidth(16);
+ connect(ymag, SIGNAL(valueChanged(int)), view, SLOT(setYScale(int)));
+ time->setOrigin(0, 0);
+
+ mainGrid->setRowStretch(0, 100);
+ mainGrid->setColStretch(0, 100);
+
+ mainGrid->addMultiCellWidget(time, 0, 0, 0, 1);
+ mainGrid->addMultiCellWidget(hLine(mainw), 1, 1, 0, 1);
+ mainGrid->addWidget(view, 2, 0);
+ mainGrid->addWidget(ymag, 2, 1);
+ mainGrid->addWidget(hscroll, 3, 0);
+ mainGrid->addWidget(corner, 3, 1, Qt::AlignBottom | Qt::AlignRight);
+
+ connect(hscroll, SIGNAL(scrollChanged(int)), view, SLOT(setXPos(int)));
+ connect(hscroll, SIGNAL(scaleChanged(int)), view, SLOT(setXMag(int)));
+ setCaption(view->getCaption());
+ connect(view, SIGNAL(followEvent(int)), hscroll, SLOT(setOffset(int)));
+
+ connect(hscroll, SIGNAL(scrollChanged(int)), time, SLOT(setXPos(int)));
+ connect(hscroll, SIGNAL(scaleChanged(int)), time, SLOT(setXMag(int)));
+// connect(time, SIGNAL(timeChanged(unsigned)), SLOT(setTime(unsigned)));
+ connect(view, SIGNAL(timeChanged(unsigned)), SLOT(setTime(unsigned)));
+
+ connect(hscroll, SIGNAL(scaleChanged(int)), SLOT(updateHScrollRange()));
+ connect(song, SIGNAL(songChanged(int)), SLOT(songChanged1(int)));
+
+ updateHScrollRange();
+ configChanged();
+
+ if(!parts()->empty())
+ {
+ WavePart* part = (WavePart*)(parts()->begin()->second);
+ solo->setOn(part->track()->solo());
+ }
+ }
+
+//---------------------------------------------------------
+// configChanged
+//---------------------------------------------------------
+
+void WaveEdit::configChanged()
+ {
+ view->setBg(config.waveEditBackgroundColor);
+ select->setAccel(shortcuts[SHRT_SELECT_ALL].key, CMD_SELECT_ALL);
+ select->setAccel(shortcuts[SHRT_SELECT_NONE].key, CMD_SELECT_NONE);
+ }
+
+//---------------------------------------------------------
+// updateHScrollRange
+//---------------------------------------------------------
+void WaveEdit::updateHScrollRange()
+{
+ int s, e;
+ wview->range(&s, &e);
+ // Show one more measure.
+ e += sigmap.ticksMeasure(e);
+ // Show another quarter measure due to imprecise drawing at canvas end point.
+ e += sigmap.ticksMeasure(e) / 4;
+ // Compensate for the vscroll width.
+ //e += wview->rmapxDev(-vscroll->width());
+ int s1, e1;
+ hscroll->range(&s1, &e1);
+ if(s != s1 || e != e1)
+ hscroll->setRange(s, e);
+}
+
+//---------------------------------------------------------
+// setTime
+//---------------------------------------------------------
+
+void WaveEdit::setTime(unsigned samplepos)
+ {
+// printf("setTime %d %x\n", samplepos, samplepos);
+ unsigned tick = tempomap.frame2tick(samplepos);
+ pos1->setValue(tick);
+ //pos2->setValue(tick);
+ pos2->setValue(samplepos);
+ time->setPos(3, tick, false);
+ }
+
+//---------------------------------------------------------
+// ~WaveEdit
+//---------------------------------------------------------
+
+WaveEdit::~WaveEdit()
+ {
+ undoRedo->removeFrom(tools);
+ }
+
+//---------------------------------------------------------
+// cmd
+//---------------------------------------------------------
+
+void WaveEdit::cmd(int n)
+ {
+ view->cmd(n);
+ }
+
+//---------------------------------------------------------
+// loadConfiguration
+//---------------------------------------------------------
+
+void WaveEdit::readConfiguration(Xml& xml)
+ {
+ for (;;) {
+ Xml::Token token = xml.parse();
+ const QString& tag = xml.s1();
+ switch (token) {
+ case Xml::TagStart:
+ if (tag == "bgcolor")
+ config.waveEditBackgroundColor = readColor(xml);
+ else if (tag == "width")
+ _widthInit = xml.parseInt();
+ else if (tag == "height")
+ _heightInit = xml.parseInt();
+ else
+ xml.unknown("WaveEdit");
+ break;
+ case Xml::TagEnd:
+ if (tag == "waveedit")
+ return;
+ default:
+ break;
+ case Xml::Error:
+ case Xml::End:
+ return;
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// saveConfiguration
+//---------------------------------------------------------
+
+void WaveEdit::writeConfiguration(int level, Xml& xml)
+ {
+ xml.tag(level++, "waveedit");
+ xml.colorTag(level, "bgcolor", config.waveEditBackgroundColor);
+ xml.intTag(level, "width", _widthInit);
+ xml.intTag(level, "height", _heightInit);
+ xml.tag(level, "/waveedit");
+ }
+
+//---------------------------------------------------------
+// writeStatus
+//---------------------------------------------------------
+
+void WaveEdit::writeStatus(int level, Xml& xml) const
+ {
+ writePartList(level, xml);
+ xml.tag(level++, "waveedit");
+ MidiEditor::writeStatus(level, xml);
+ xml.intTag(level, "xpos", hscroll->pos());
+ xml.intTag(level, "xmag", hscroll->mag());
+ xml.intTag(level, "ymag", ymag->value());
+ xml.tag(level, "/waveedit");
+ }
+
+//---------------------------------------------------------
+// readStatus
+//---------------------------------------------------------
+
+void WaveEdit::readStatus(Xml& xml)
+ {
+ for (;;) {
+ Xml::Token token = xml.parse();
+ if (token == Xml::Error || token == Xml::End)
+ break;
+ QString tag = xml.s1();
+ switch (token) {
+ case Xml::TagStart:
+ if (tag == "midieditor")
+ MidiEditor::readStatus(xml);
+ else if (tag == "xmag")
+ hscroll->setMag(xml.parseInt());
+ else if (tag == "ymag")
+ ymag->setValue(xml.parseInt());
+ else if (tag == "xpos")
+ hscroll->setPos(xml.parseInt());
+ else
+ xml.unknown("WaveEdit");
+ break;
+ case Xml::TagEnd:
+ if (tag == "waveedit")
+ return;
+ default:
+ break;
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// resizeEvent
+//---------------------------------------------------------
+
+void WaveEdit::resizeEvent(QResizeEvent* ev)
+ {
+ QWidget::resizeEvent(ev);
+ _widthInit = ev->size().width();
+ _heightInit = ev->size().height();
+ }
+
+//---------------------------------------------------------
+// songChanged1
+// signal from "song"
+//---------------------------------------------------------
+
+void WaveEdit::songChanged1(int bits)
+ {
+
+ if (bits & SC_SOLO)
+ {
+ WavePart* part = (WavePart*)(parts()->begin()->second);
+ solo->blockSignals(true);
+ solo->setOn(part->track()->solo());
+ solo->blockSignals(false);
+ }
+
+ songChanged(bits);
+ }
+
+
+//---------------------------------------------------------
+// soloChanged
+// signal from solo button
+//---------------------------------------------------------
+
+void WaveEdit::soloChanged(bool flag)
+ {
+ WavePart* part = (WavePart*)(parts()->begin()->second);
+ audio->msgSetSolo(part->track(), flag);
+ song->update(SC_SOLO);
+ }
+
+//---------------------------------------------------------
+// viewKeyPressEvent
+//---------------------------------------------------------
+
+void WaveEdit::keyPressEvent(QKeyEvent* event)
+ {
+ int key = event->key();
+ if (key == Qt::Key_Escape) {
+ close();
+ return;
+ }
+ else {
+ event->ignore();
+ }
+ }
+
+
diff --git a/muse2/muse/waveedit/waveedit.h b/muse2/muse/waveedit/waveedit.h
new file mode 100644
index 00000000..eac0e5bf
--- /dev/null
+++ b/muse2/muse/waveedit/waveedit.h
@@ -0,0 +1,79 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: waveedit.h,v 1.3.2.8 2008/01/26 07:23:21 terminator356 Exp $
+// (C) Copyright 2000 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __WAVE_EDIT_H__
+#define __WAVE_EDIT_H__
+
+#include <qwidget.h>
+//Added by qt3to4:
+#include <QResizeEvent>
+#include <QKeyEvent>
+#include <Q3PopupMenu>
+#include <QCloseEvent>
+#include "midieditor.h"
+
+class QToolButton;
+class PartList;
+class WaveView;
+class ScrollScale;
+class QSlider;
+class PosLabel;
+class QResizeEvent;
+class SNode;
+
+//---------------------------------------------------------
+// WaveEdit
+//---------------------------------------------------------
+
+class WaveEdit : public MidiEditor {
+ WaveView* view;
+ QSlider* ymag;
+ Q3ToolBar* tools;
+ Q3ToolBar* tb1;
+ QToolButton* solo;
+ PosLabel* pos1;
+ PosLabel* pos2;
+
+ static int _widthInit, _heightInit;
+
+ Q_OBJECT
+ virtual void closeEvent(QCloseEvent*);
+ virtual void resizeEvent(QResizeEvent* ev);
+ virtual void keyPressEvent(QKeyEvent*);
+
+ Q3PopupMenu* menuFunctions, *select, *menuGain;
+
+ private slots:
+ void cmd(int);
+ void setTime(unsigned t);
+ void songChanged1(int);
+ void soloChanged(bool flag);
+
+ public slots:
+ void configChanged();
+
+ virtual void updateHScrollRange();
+
+ signals:
+ void deleted(unsigned long);
+
+ public:
+ WaveEdit(PartList*);
+ ~WaveEdit();
+ virtual void readStatus(Xml&);
+ virtual void writeStatus(int, Xml&) const;
+ static void readConfiguration(Xml&);
+ static void writeConfiguration(int, Xml&);
+
+ 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 };
+ };
+
+#endif
+
diff --git a/muse2/muse/waveedit/waveview.cpp b/muse2/muse/waveedit/waveview.cpp
new file mode 100644
index 00000000..f0ece122
--- /dev/null
+++ b/muse2/muse/waveedit/waveview.cpp
@@ -0,0 +1,936 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: waveview.cpp,v 1.10.2.16 2009/11/14 03:37:48 terminator356 Exp $
+// (C) Copyright 2000 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include <stdio.h>
+#include <values.h>
+#include <sys/wait.h>
+
+#include <qpainter.h>
+#include <qdir.h>
+#include <qfileinfo.h>
+#include <qmessagebox.h>
+//Added by qt3to4:
+#include <QMouseEvent>
+
+#include "editgain.h"
+#include "globals.h"
+#include "wave.h"
+#include "waveview.h"
+#include "song.h"
+#include "event.h"
+#include "waveedit.h"
+#include "audio.h"
+#include "gconfig.h"
+
+bool modifyWarnedYet = false;
+//---------------------------------------------------------
+// WaveView
+//---------------------------------------------------------
+
+WaveView::WaveView(MidiEditor* pr, QWidget* parent, int xscale, int yscale)
+ : View(parent, xscale, 1)
+ {
+ editor = pr;
+ setVirt(true);
+ pos[0] = tempomap.tick2frame(song->cpos());
+ pos[1] = tempomap.tick2frame(song->lpos());
+ pos[2] = tempomap.tick2frame(song->rpos());
+ yScale = yscale;
+ mode = NORMAL;
+ selectionStart = 0;
+ selectionStop = 0;
+ lastGainvalue = 100;
+
+ setMouseTracking(true);
+ setBg(QColor(192, 208, 255));
+
+ if (editor->parts()->empty()) {
+ curPart = 0;
+ curPartId = -1;
+ }
+ else {
+ curPart = (WavePart*)(editor->parts()->begin()->second);
+ curPartId = curPart->sn();
+ }
+
+
+ connect(song, SIGNAL(posChanged(int,unsigned,bool)), SLOT(setPos(int,unsigned,bool)));
+ connect(song, SIGNAL(songChanged(int)), SLOT(songChanged(int)));
+ songChanged(SC_SELECTION);
+ }
+
+//---------------------------------------------------------
+// setYScale
+//---------------------------------------------------------
+
+void WaveView::setYScale(int val)
+ {
+ yScale = val;
+ redraw();
+ }
+
+//---------------------------------------------------------
+// draw
+//---------------------------------------------------------
+
+void WaveView::pdraw(QPainter& p, const QRect& rr)
+ {
+ int x1 = rr.x();
+ int x2 = rr.right() + 1;
+ if (x1 < 0)
+ x1 = 0;
+ if (x2 > width())
+ x2 = width();
+ int hh = height();
+ int h = hh/2;
+ int y = rr.y() + h;
+
+ // Added by T356.
+ int xScale = xmag;
+ if (xScale < 0)
+ xScale = -xScale;
+
+ for (iPart ip = editor->parts()->begin(); ip != editor->parts()->end(); ++ip) {
+ WavePart* wp = (WavePart*)(ip->second);
+ int channels = wp->track()->channels();
+ int px = wp->frame();
+
+ EventList* el = wp->events();
+ for (iEvent e = el->begin(); e != el->end(); ++e) {
+ Event event = e->second;
+ if (event.empty())
+ continue;
+ SndFileR f = event.sndFile();
+ if (f.isNull())
+ continue;
+
+ unsigned peoffset = px + event.frame() - event.spos();
+ int sx, ex;
+
+ sx = event.frame() + px + xScale/2;
+ ex = sx + event.lenFrame();
+ sx = sx / xScale - xpos;
+ ex = ex / xScale - xpos;
+
+ if (sx < x1)
+ sx = x1;
+ if (ex > x2)
+ ex = x2;
+
+ int pos = (xpos + sx) * xScale + event.spos() - event.frame() - px;
+
+ //printf("pos=%d xpos=%d sx=%d ex=%d xScale=%d event.spos=%d event.frame=%d px=%d\n",
+ // pos, xpos, sx, ex, xScale, event.spos(), event.frame(), px);
+
+ h = hh / (channels * 2);
+ int cc = hh % (channels * 2) ? 0 : 1;
+
+ for (int i = sx; i < ex; i++) {
+ y = rr.y() + h;
+ SampleV sa[f.channels()];
+ f.read(sa, xScale, pos);
+ pos += xScale;
+ if (pos < event.spos())
+ continue;
+
+ int selectionStartPos = selectionStart - peoffset; // Offset transformed to event coords
+ int selectionStopPos = selectionStop - peoffset;
+
+ for (int k = 0; k < channels; ++k) {
+ int kk = k % f.channels();
+ int peak = (sa[kk].peak * (h - 1)) / yScale;
+ int rms = (sa[kk].rms * (h - 1)) / yScale;
+ if (peak > h)
+ peak = h;
+ if (rms > h)
+ rms = h;
+ QColor peak_color = QColor(Qt::darkGray);
+ QColor rms_color = QColor(Qt::black);
+
+ // Changed by T356. Reduces (but not eliminates) drawing artifacts.
+ //if (pos > selectionStartPos && pos < selectionStopPos) {
+ if (pos > selectionStartPos && pos <= selectionStopPos) {
+
+ peak_color = QColor(Qt::lightGray);
+ rms_color = QColor(Qt::white);
+ // Draw inverted
+ p.setPen(QColor(Qt::black));
+ p.drawLine(i, y - h + cc, i, y + h - cc );
+ }
+ p.setPen(peak_color);
+ p.drawLine(i, y - peak - cc, i, y + peak);
+ p.setPen(rms_color);
+ p.drawLine(i, y - rms - cc, i, y + rms);
+ y += 2 * h;
+ }
+ }
+ }
+ }
+ View::pdraw(p, rr);
+ }
+
+//---------------------------------------------------------
+// draw
+//---------------------------------------------------------
+
+void WaveView::draw(QPainter& p, const QRect& r)
+ {
+ unsigned x = r.x() < 0 ? 0 : r.x();
+ unsigned y = r.y() < 0 ? 0 : r.y();
+ int w = r.width();
+ int h = r.height();
+
+ unsigned x2 = x + w;
+ unsigned y2 = y + h;
+
+ //
+ // draw marker & centerline
+ //
+ p.setPen(Qt::red);
+ if (pos[0] >= x && pos[0] < x2) {
+ p.drawLine(pos[0], y, pos[0], y2);
+ }
+ p.setPen(Qt::blue);
+ if (pos[1] >= x && pos[1] < x2) {
+ p.drawLine(pos[1], y, pos[1], y2);
+ }
+ if (pos[2] >= x && pos[2] < x2)
+ p.drawLine(pos[2], y, pos[2], y2);
+
+ // Changed by T356. Support multiple (or none) selected parts.
+ //int n = curPart->track()->channels();
+ int n = 1;
+ if(curPart)
+ n = curPart->track()->channels();
+
+ int hn = h / n;
+ int hh = hn / 2;
+ for (int i = 0; i < n; ++i) {
+ int h2 = hn * i;
+ int center = hh + h2;
+ p.setPen(QColor(i & i ? Qt::red : Qt::blue));
+ p.drawLine(x, center, x2, center);
+ p.setPen(QColor(Qt::black));
+ p.drawLine(x, h2, x2, h2);
+ }
+ }
+
+//---------------------------------------------------------
+// getCaption
+//---------------------------------------------------------
+
+QString WaveView::getCaption() const
+ {
+
+ // Changed by T356. Support multiple (or none) selected parts.
+ //return QString("Part ") + curPart->name();
+ if(curPart)
+ return QString("Part ") + curPart->name();
+ else
+ return QString("Part ");
+
+ }
+
+//---------------------------------------------------------
+// songChanged
+//---------------------------------------------------------
+
+void WaveView::songChanged(int flags)
+ {
+ // Is it simply a midi controller value adjustment? Forget it.
+ if(flags == SC_MIDI_CONTROLLER)
+ return;
+
+ if (flags & SC_SELECTION) {
+ startSample = MAXINT;
+ endSample = 0;
+ curPart = 0;
+ for (iPart p = editor->parts()->begin(); p != editor->parts()->end(); ++p) {
+ WavePart* part = (WavePart*)(p->second);
+ if (part->sn() == curPartId)
+ curPart = part;
+ int ssample = part->frame();
+ int esample = ssample + part->lenFrame();
+ if (ssample < startSample) {
+ startSample = ssample;
+ //printf("startSample = %d\n", startSample);
+ }
+ if (esample > endSample) {
+ endSample = esample;
+ //printf("endSample = %d\n", endSample);
+ }
+ }
+ }
+ if (flags & SC_CLIP_MODIFIED) {
+ redraw(); // Boring, but the only thing possible to do
+ }
+ if (flags & SC_TEMPO) {
+ setPos(0, song->cpos(), false);
+ setPos(1, song->lpos(), false);
+ setPos(2, song->rpos(), false);
+ }
+ redraw();
+ }
+
+//---------------------------------------------------------
+// setPos
+// set one of three markers
+// idx - 0-cpos 1-lpos 2-rpos
+// flag - emit followEvent()
+//---------------------------------------------------------
+
+void WaveView::setPos(int idx, unsigned val, bool adjustScrollbar)
+ {
+ val = tempomap.tick2frame(val);
+ if (pos[idx] == val)
+ return;
+ int opos = mapx(pos[idx]);
+ int npos = mapx(val);
+
+ if (adjustScrollbar && idx == 0) {
+ switch (song->follow()) {
+ case Song::NO:
+ break;
+ case Song::JUMP:
+ if (npos >= width()) {
+ int ppos = val - xorg - rmapxDev(width()/4);
+ if (ppos < 0)
+ ppos = 0;
+ emit followEvent(ppos);
+ opos = mapx(pos[idx]);
+ npos = mapx(val);
+ }
+ else if (npos < 0) {
+ int ppos = val - xorg - rmapxDev(width()*3/4);
+ if (ppos < 0)
+ ppos = 0;
+ emit followEvent(ppos);
+ opos = mapx(pos[idx]);
+ npos = mapx(val);
+ }
+ break;
+ case Song::CONTINUOUS:
+ if (npos > (width()*5)/8) {
+ int ppos = pos[idx] - xorg - rmapxDev(width()*5/8);
+ if (ppos < 0)
+ ppos = 0;
+ emit followEvent(ppos);
+ opos = mapx(pos[idx]);
+ npos = mapx(val);
+ }
+ else if (npos < (width()*3)/8) {
+ int ppos = pos[idx] - xorg - rmapxDev(width()*3/8);
+ if (ppos < 0)
+ ppos = 0;
+ emit followEvent(ppos);
+ opos = mapx(pos[idx]);
+ npos = mapx(val);
+ }
+ break;
+ }
+ }
+
+ int x;
+ int w = 1;
+ if (opos > npos) {
+ w += opos - npos;
+ x = npos;
+ }
+ else {
+ w += npos - opos;
+ x = opos;
+ }
+ pos[idx] = val;
+ redraw(QRect(x, 0, w, height()));
+ }
+
+//---------------------------------------------------------
+// viewMousePressEvent
+//---------------------------------------------------------
+
+void WaveView::viewMousePressEvent(QMouseEvent* event)
+ {
+ button = event->button();
+ unsigned x = event->x();
+
+ switch (button) {
+ case Qt::LeftButton:
+ if (mode == NORMAL) {
+ // redraw and reset:
+ if (selectionStart != selectionStop) {
+ selectionStart = selectionStop = 0;
+ redraw();
+ }
+ mode = DRAG;
+ dragstartx = x;
+ selectionStart = selectionStop = x;
+ }
+ break;
+
+ case Qt::MidButton:
+ case Qt::RightButton:
+ default:
+ break;
+ }
+ viewMouseMoveEvent(event);
+ }
+
+//---------------------------------------------------------
+// viewMouseReleaseEvent
+//---------------------------------------------------------
+void WaveView::viewMouseReleaseEvent(QMouseEvent* /*event*/)
+ {
+ button = Qt::NoButton;
+
+ if (mode == DRAG) {
+ mode = NORMAL;
+ //printf("selectionStart=%d selectionStop=%d\n", selectionStart, selectionStop);
+ }
+ }
+
+//---------------------------------------------------------
+// viewMouseMoveEvent
+//---------------------------------------------------------
+
+void WaveView::viewMouseMoveEvent(QMouseEvent* event)
+ {
+ unsigned x = event->x();
+ emit timeChanged(x);
+
+ int i;
+ switch (button) {
+ case Qt::LeftButton:
+ i = 0;
+ if (mode == DRAG) {
+ if (x < dragstartx) {
+ selectionStart = x;
+ selectionStop = dragstartx;
+ }
+ else {
+ selectionStart = dragstartx;
+ selectionStop = x;
+ }
+ }
+ break;
+ case Qt::MidButton:
+ i = 1;
+ break;
+ case Qt::RightButton:
+ i = 2;
+ break;
+ default:
+ return;
+ }
+ Pos p(tempomap.frame2tick(x), true);
+ song->setPos(i, p);
+ }
+
+//---------------------------------------------------------
+// range
+// returns range in samples
+//---------------------------------------------------------
+
+void WaveView::range(int* s, int *e)
+ {
+
+ PartList* lst = editor->parts();
+ if(lst->empty())
+ {
+ *s = 0;
+ *e = tempomap.tick2frame(song->len());
+ return;
+ }
+ int ps = song->len(), pe = 0;
+ int tps, tpe;
+ for(iPart ip = lst->begin(); ip != lst->end(); ++ip)
+ {
+ tps = ip->second->tick();
+ if(tps < ps)
+ ps = tps;
+ tpe = tps + ip->second->lenTick();
+ if(tpe > pe)
+ pe = tpe;
+ }
+ *s = tempomap.tick2frame(ps);
+ *e = tempomap.tick2frame(pe);
+ }
+
+//---------------------------------------------------------
+// cmd
+//---------------------------------------------------------
+void WaveView::cmd(int n)
+ {
+ 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--;
+ WavePart* beg = (WavePart*) iBeg->second;
+ WavePart* end = (WavePart*) iEnd->second;
+ selectionStart = beg->frame();
+ selectionStop = end->frame() + end->lenFrame();
+ redraw();
+ }
+ break;
+
+ case WaveEdit::CMD_EDIT_EXTERNAL:
+ modifyoperation = EDIT_EXTERNAL;
+ break;
+
+ case WaveEdit::CMD_SELECT_NONE:
+ selectionStart = selectionStop = 0;
+ redraw();
+ 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;
+ }
+ 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
+ QMessageBox::information(this,
+ QString("MusE"),
+ QWidget::tr("No selection. Ignoring"));
+
+ return;
+ }
+
+ //if(!modifyWarnedYet)
+ //{
+ // modifyWarnedYet = true;
+ // if(QMessageBox::warning(this, QString("Muse"),
+ // tr("Warning! Muse currently operates directly on the sound file.\n"
+ // "Undo is supported, but NOT after exit, WITH OR WITHOUT A SAVE!\n"
+ // "If you are stuck, try deleting the associated .wca file and reloading."), tr("&Ok"), tr("&Cancel"),
+ // QString::null, 0, 1 ) != 0)
+ // return;
+ //}
+ modifySelection(modifyoperation, selectionStart, selectionStop, paramA);
+ }
+ }
+
+
+//---------------------------------------------------------
+// getSelection
+//---------------------------------------------------------
+WaveSelectionList WaveView::getSelection(unsigned startpos, unsigned stoppos)
+ {
+ WaveSelectionList selection;
+
+ for (iPart ip = editor->parts()->begin(); ip != editor->parts()->end(); ++ip) {
+ WavePart* wp = (WavePart*)(ip->second);
+ unsigned part_offset = wp->frame();
+
+ EventList* el = wp->events();
+ //printf("eventlist length=%d\n",el->size());
+
+ 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().latin1());
+ WaveEventSelection s;
+ s.file = file;
+ s.startframe = sx;
+ s.endframe = ex+1;
+ //printf("sx=%d ex=%d\n",sx,ex);
+ selection.push_back(s);
+ }
+ }
+ }
+
+ return selection;
+ }
+
+//---------------------------------------------------------
+// modifySelection
+//---------------------------------------------------------
+void WaveView::modifySelection(int operation, unsigned startpos, unsigned stoppos, double paramA)
+ {
+ 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.readWithHeap(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);
+ redraw();
+ }
+
+//---------------------------------------------------------
+// muteSelection
+//---------------------------------------------------------
+void WaveView::muteSelection(unsigned channels, float** data, unsigned length)
+ {
+ // Set everything to 0!
+ for (unsigned i=0; i<channels; i++) {
+ for (unsigned j=0; j<length; j++) {
+ data[i][j] = 0;
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// normalizeSelection
+//---------------------------------------------------------
+void WaveView::normalizeSelection(unsigned channels, float** data, unsigned length)
+ {
+ 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);
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// fadeInSelection
+//---------------------------------------------------------
+void WaveView::fadeInSelection(unsigned channels, float** data, unsigned length)
+ {
+ 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);
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// fadeOutSelection
+//---------------------------------------------------------
+void WaveView::fadeOutSelection(unsigned channels, float** data, unsigned length)
+ {
+ 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);
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// reverseSelection
+//---------------------------------------------------------
+void WaveView::reverseSelection(unsigned channels, float** data, unsigned length)
+ {
+ if(length <= 1)
+ return;
+ 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 - 1];
+ data[i][j] = tmpr;
+ data[i][length - j - 1] = 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 = fork();
+ if (pid == 0) {
+ if (execlp(config.externalWavEditor.latin1(), config.externalWavEditor.latin1(), exttmpFileName.latin1(), NULL) == -1) {
+ perror("Failed to launch external editor");
+ // Get out of here
+
+
+ // cannot report error through gui, we are in another fork!
+ //@!TODO: Handle unsuccessful attempts
+ exit(99);
+ }
+ exit(0);
+ }
+ else if (pid == -1) {
+ perror("fork failed");
+ }
+ else {
+ int status;
+ waitpid(pid, &status, 0);
+ //printf ("status=%d\n",status);
+ if( WEXITSTATUS(status) != 0 ){
+ QMessageBox::warning(this, tr("MusE - external editor failed"),
+ tr("MusE was unable to launch the external editor\ncheck if the editor setting in:\n"
+ "Global Settings->Audio:External Waveditor\nis set to a valid editor."));
+ }
+
+ if (exttmpFile.openRead()) {
+ printf("Could not reopen temporary file!\n");
+ }
+ else {
+ // Re-read file again
+ exttmpFile.seek(0, 0);
+ size_t sz = exttmpFile.readWithHeap(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.dirPath();
+ dir.remove(exttmpFileName);
+ dir.remove(exttmpFile.basename() + ".wca");
+ }
+ }
+
+//---------------------------------------------------------
+// getUniqueTmpfileName
+//---------------------------------------------------------
+bool WaveView::getUniqueTmpfileName(QString& newFilename)
+ {
+ // Check if tmp-directory exists under project path
+ QString tmpWavDir = museProject + "/tmp_musewav"; //!@TODO: Don't hardcode like this
+ QFileInfo tmpdirfi(tmpWavDir);
+ if (!tmpdirfi.isDir()) {
+ // Try to create a tmpdir
+ QDir projdir(museProject);
+ 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;
+ }
+
+
diff --git a/muse2/muse/waveedit/waveview.h b/muse2/muse/waveedit/waveview.h
new file mode 100644
index 00000000..1e2c7469
--- /dev/null
+++ b/muse2/muse/waveedit/waveview.h
@@ -0,0 +1,98 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: waveview.h,v 1.3.2.6 2009/02/02 21:38:01 terminator356 Exp $
+// (C) Copyright 2000 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef WAVE_VIEW_H
+#define WAVE_VIEW_H
+
+#include "view.h"
+#include <qwidget.h>
+//Added by qt3to4:
+#include <QMouseEvent>
+#include "wave.h"
+
+class PartList;
+class QPainter;
+class QRect;
+class WavePart;
+class MidiEditor;
+class SndFileR;
+
+struct WaveEventSelection {
+ SndFileR file;
+ unsigned startframe;
+ unsigned endframe;
+ };
+
+typedef std::list<WaveEventSelection> WaveSelectionList;
+typedef std::list<WaveEventSelection>::iterator iWaveSelection;
+
+//---------------------------------------------------------
+// WaveView
+//---------------------------------------------------------
+
+class WaveView : public View {
+ MidiEditor* editor;
+ unsigned pos[3];
+ int yScale;
+ int button;
+ int startSample;
+ int endSample;
+
+ WavePart* curPart;
+ int curPartId;
+
+ enum { NORMAL, DRAG } mode;
+ enum { MUTE = 0, NORMALIZE, FADE_IN, FADE_OUT, REVERSE, GAIN, EDIT_EXTERNAL }; //!< Modify operations
+
+ unsigned selectionStart, selectionStop, dragstartx;
+
+ Q_OBJECT
+ virtual void pdraw(QPainter&, const QRect&);
+ virtual void draw(QPainter&, const QRect&);
+ virtual void viewMousePressEvent(QMouseEvent*);
+ virtual void viewMouseMoveEvent(QMouseEvent*);
+ virtual void viewMouseReleaseEvent(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
+
+
+ private slots:
+ void setPos(int idx, unsigned val, bool adjustScrollbar);
+
+ public slots:
+ void setYScale(int);
+ void songChanged(int type);
+
+ signals:
+ void followEvent(int);
+ void timeChanged(unsigned);
+
+ public:
+ WaveView(MidiEditor*, QWidget* parent, int xscale, int yscale);
+ QString getCaption() const;
+ void range(int*, int*);
+ void cmd(int n);
+ WavePart* part() { return curPart; }
+ };
+
+#endif
+
diff --git a/muse2/muse/waveevent.cpp b/muse2/muse/waveevent.cpp
new file mode 100644
index 00000000..98bfe8cc
--- /dev/null
+++ b/muse2/muse/waveevent.cpp
@@ -0,0 +1,453 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: waveevent.cpp,v 1.9.2.6 2009/12/20 05:00:35 terminator356 Exp $
+//
+// (C) Copyright 2000-2003 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include "audioconvert.h"
+#include "globals.h"
+#include "event.h"
+#include "waveevent.h"
+#include "xml.h"
+#include "wave.h"
+#include <iostream>
+#include <math.h>
+
+// Added by Tim. p3.3.18
+//#define USE_SAMPLERATE
+//
+//#define WAVEEVENT_DEBUG
+//#define WAVEEVENT_DEBUG_PRC
+
+//---------------------------------------------------------
+// WaveEvent
+//---------------------------------------------------------
+
+WaveEventBase::WaveEventBase(EventType t)
+ : EventBase(t)
+ {
+ deleted = false;
+ }
+
+//---------------------------------------------------------
+// WaveEventBase::clone
+//---------------------------------------------------------
+
+EventBase* WaveEventBase::clone()
+{
+ return new WaveEventBase(*this);
+}
+
+//---------------------------------------------------------
+// WaveEvent::mid
+//---------------------------------------------------------
+
+EventBase* WaveEventBase::mid(unsigned b, unsigned e)
+ {
+ WaveEventBase* ev = new WaveEventBase(*this);
+ unsigned fr = frame();
+ unsigned start = fr - b;
+ if(b > fr)
+ {
+ start = 0;
+ ev->setSpos(spos() + b - fr);
+ }
+ unsigned end = endFrame();
+
+ if (e < end)
+ end = e;
+
+ ev->setFrame(start);
+ ev->setLenFrame(end - b - start);
+ return ev;
+ }
+
+//---------------------------------------------------------
+// dump
+//---------------------------------------------------------
+
+void WaveEventBase::dump(int n) const
+ {
+ EventBase::dump(n);
+ }
+
+//---------------------------------------------------------
+// WaveEventBase::read
+//---------------------------------------------------------
+
+void WaveEventBase::read(Xml& xml)
+ {
+ for (;;) {
+ Xml::Token token = xml.parse();
+ const QString& tag = xml.s1();
+ switch (token) {
+ case Xml::Error:
+ case Xml::End:
+ case Xml::Attribut:
+ return;
+ case Xml::TagStart:
+ if (tag == "poslen")
+ PosLen::read(xml, "poslen");
+ else if (tag == "frame")
+ _spos = xml.parseInt();
+ else if (tag == "file") {
+ SndFile* wf = getWave(xml.parse1(), true);
+ if (wf) {
+ f = SndFileR(wf);
+ }
+ }
+ else
+ xml.unknown("Event");
+ break;
+ case Xml::TagEnd:
+ if (tag == "event") {
+ Pos::setType(FRAMES); // DEBUG
+ return;
+ }
+ default:
+ break;
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// write
+//---------------------------------------------------------
+
+//void WaveEventBase::write(int level, Xml& xml, const Pos& offset) const
+void WaveEventBase::write(int level, Xml& xml, const Pos& offset, bool forcePath) const
+ {
+ if (f.isNull())
+ return;
+ xml.tag(level++, "event");
+ PosLen wpos(*this);
+ wpos += offset;
+// if (offset)
+// wpos.setTick(wpos.tick() + offset);
+ wpos.write(level, xml, "poslen");
+ xml.intTag(level, "frame", _spos); // offset in wave file
+
+ //
+ // waves in the project dirctory are stored
+ // with relative path name, others with absolute path
+ //
+ QString path = f.dirPath();
+
+ //if (path.contains(museProject)) {
+ if (!forcePath && path.contains(museProject)) {
+ // extract museProject.
+ QString newName = f.path().remove(museProject+"/");
+ xml.strTag(level, "file", newName);
+ }
+ else
+ xml.strTag(level, "file", f.path());
+ xml.etag(level, "event");
+ }
+
+//void WaveEventBase::read(unsigned offset, float** buffer, int channel, int n, bool overwrite)
+//void WaveEventBase::readAudio(unsigned offset, float** buffer, int channel, int n, bool doSeek, bool overwrite)
+//off_t WaveEventBase::readAudio(SRC_STATE* src_state, off_t sfCurFrame, unsigned offset, float** buffer, int channel, int n, bool doSeek, bool overwrite)
+//off_t WaveEventBase::readAudio(AudioConverter* audConv, off_t sfCurFrame, unsigned offset, float** buffer, int channel, int n, bool doSeek, bool overwrite)
+// p3.3.33
+void WaveEventBase::readAudio(WavePart* part, unsigned offset, float** buffer, int channel, int n, bool doSeek, bool overwrite)
+{
+ // Added by Tim. p3.3.17
+ #ifdef WAVEEVENT_DEBUG_PRC
+ printf("WaveEventBase::readAudio audConv:%p sfCurFrame:%ld offset:%u channel:%d n:%d\n", audConv, sfCurFrame, offset, channel, n);
+ #endif
+
+ // Changed by Tim. p3.3.18
+ #ifdef USE_SAMPLERATE
+
+ // TODO:
+ >>>>>>>>>>>+++++++++++++++++++++++++++++
+ // If we have a valid audio converter then use it to do the processing. Otherwise just a normal seek + read.
+ if(audConv)
+ //sfCurFrame = audConv->process(f, sfCurFrame, offset + _spos, buffer, channel, n, doSeek, overwrite);
+ sfCurFrame = audConv->readAudio(f, sfCurFrame, offset, buffer, channel, n, doSeek, overwrite);
+ else
+ {
+ if(!f.isNull())
+ {
+ sfCurFrame = f.seek(offset + _spos, 0);
+ sfCurFrame += f.read(channel, buffer, n, overwrite);
+ }
+ }
+ //return sfCurFrame;
+ return;
+
+ /*
+ unsigned fsrate = f.samplerate();
+ int fchan = f.channels();
+ off_t frame = offset + _spos;
+ //bool resample = src_state && ((unsigned)sampleRate != fsrate);
+ bool resample = audConv && audConv->isValid() && ((unsigned)sampleRate != fsrate);
+
+ // Is a 'transport' seek requested? (Not to be requested with every read! Should only be for 'first read' seeks, or positional 'transport' seeks.)
+ // Due to the support of sound file references in MusE, seek must ALWAYS be done before read, as before,
+ // except now we alter the seek position if sample rate conversion is being used and remember the seek positions.
+ if(doSeek)
+ {
+ if(!resample)
+ {
+ // Sample rates are the same. Just a regular seek, no conversion.
+ sfCurFrame = f.seek(frame, 0);
+ }
+ else
+ {
+ // Sample rates are different. Seek to a calculated 'sample rate ratio factored' position.
+
+ double srcratio = (double)fsrate / (double)sampleRate;
+ //long inSize = long((double)frames * _src_ratio) + 1 // From MusE-2 file converter.
+ off_t newfr = (off_t)floor(((double)frame * srcratio)); // From simplesynth.
+
+ //_sfCurFrame = sf_seek(sf, newfr, 0);
+ sfCurFrame = f.seek(newfr, 0);
+
+ // Added by Tim. p3.3.17
+ #ifdef WAVEEVENT_DEBUG_PRC
+ printf("WaveEventBase::readAudio Seek frame:%ld converted to frame:%ld _sfCurFrame:%ld\n", frame, newfr, sfCurFrame);
+ #endif
+
+ // Reset the src converter. It's current state is meaningless now.
+ //int srcerr = src_reset(src_state);
+ int srcerr = audConv->reset();
+ if(srcerr != 0)
+ printf("WaveEventBase::readAudio Converter reset failed: %s\n", src_strerror(srcerr));
+ }
+ }
+ else
+ {
+ // No seek requested. Are the rates the same?
+ if(!resample)
+ // Sample rates are the same. Just a regular seek, no conversion.
+ sfCurFrame = f.seek(frame, 0);
+ else
+ {
+ // Added by Tim. p3.3.17
+ #ifdef WAVEEVENT_DEBUG_PRC
+ printf("WaveEventBase::readAudio No 'transport' seek, rates different. Seeking to _sfCurFrame:%ld\n", sfCurFrame);
+ #endif
+
+ // Sample rates are different. We can't just tell seek to go to an absolute calculated position,
+ // since the last position can vary - it might not be what the calculated position is.
+ // We must use the last position left by SRC conversion, ie. let the file position progress on its own.
+ sfCurFrame = f.seek(sfCurFrame, 0);
+ }
+ }
+
+ // Do we not need to resample?
+ if(!resample)
+ {
+ return sfCurFrame + f.read(channel, buffer, n, overwrite);
+ }
+
+ size_t rn;
+
+ if((sampleRate == 0) || (fsrate == 0))
+ {
+ if(debugMsg)
+ printf("WaveEventBase::readAudio Using SRC: Error: sampleRate or file samplerate is zero!\n");
+ return sfCurFrame;
+ }
+
+ // Ratio is defined as output sample rate over input samplerate.
+ double srcratio = (double)sampleRate / (double)fsrate;
+ long outFrames = n;
+ //long outSize = outFrames * channel;
+ long outSize = outFrames * fchan;
+
+ //long inSize = long(outSize * srcratio) + 1 // From MusE-2 file converter.
+ //long inSize = (long)floor(((double)outSize / srcratio)); // From simplesynth.
+ //long inFrames = (long)floor(((double)outFrames / srcratio)); // From simplesynth.
+ long inFrames = (long)ceil(((double)outFrames / srcratio)); // From simplesynth.
+ //long inFrames = (long)floor(double(outFrames * sfinfo.samplerate) / double(sampleRate)); // From simplesynth.
+
+ // Extra input compensation - sometimes src requires more input frames than expected in order to
+ // always get a reliable number of used out frames !
+ //inFrames = inFrames / (srcratio / 2.0);
+ long inComp = 10;
+ inFrames += inComp;
+
+ long inSize = inFrames * fchan;
+ //long inSize = inFrames * channel;
+
+ float inbuffer[inSize];
+ float outbuffer[outSize];
+
+ //float* poutbuf;
+
+ // If the number of file channels is the same as the process channels AND we want overwrite, we can get away with direct copying.
+ //if(overwrite && channel == fchan)
+ // Point the out buffer directly at the return buffers.
+ // poutbuf = buffer;
+ //else
+ // Point the out buffer at our local buffers.
+ // poutbuf = &outbuffer[0];
+
+ // Converter channels are fixed at creation time! Can't change them on the fly. Can't use 'channel' paramter.
+ //rn = f.read(inbuffer, inFrames);
+ rn = f.readDirect(inbuffer, inFrames);
+
+ // convert
+ SRC_DATA srcdata;
+ srcdata.data_in = inbuffer;
+ srcdata.data_out = outbuffer;
+ //srcdata.data_out = poutbuf;
+ //srcdata.input_frames = inSize;
+ srcdata.input_frames = rn;
+ srcdata.output_frames = outFrames;
+ srcdata.end_of_input = ((long)rn != inFrames);
+ srcdata.src_ratio = srcratio;
+
+ #ifdef WAVEEVENT_DEBUG_PRC
+ printf("WaveEventBase::readAudio %s processing converter... inFrames:%ld inSize:%ld outFrames:%ld outSize:%ld rn:%d",
+ f.name().latin1(), inFrames, inSize, outFrames, outSize, rn);
+ #endif
+
+ //int srcerr = src_process(src_state, &srcdata);
+ int srcerr = audConv->process(&srcdata);
+ if(srcerr != 0)
+ {
+ printf("\nWaveEventBase::readAudio SampleRate converter process failed: %s\n", src_strerror(srcerr));
+ return sfCurFrame += rn;
+ }
+
+ #ifdef WAVEEVENT_DEBUG_PRC
+ printf(" frames used in:%ld out:%ld\n", srcdata.input_frames_used, srcdata.output_frames_gen);
+ #endif
+
+ // If the number of frames read by the soundfile equals the input frames, go back.
+ // Otherwise we have reached the end of the file, so going back is useless since
+ // there shouldn't be any further calls. (Definitely get buffer underruns if further calls!)
+ if((long)rn == inFrames)
+ {
+ // Go back by the amount of unused frames.
+ sf_count_t seekn = inFrames - srcdata.input_frames_used;
+ if(seekn != 0)
+ {
+ #ifdef WAVEEVENT_DEBUG_PRC
+ printf("WaveEventBase::readAudio Seek-back by:%d\n", seekn);
+ #endif
+ sfCurFrame = f.seek(-seekn, SEEK_CUR);
+ }
+ else
+ sfCurFrame += rn;
+ }
+ else
+ sfCurFrame += rn;
+
+ if(debugMsg)
+ {
+ if(srcdata.output_frames_gen != outFrames)
+ printf("WaveEventBase::readAudio %s output_frames_gen:%ld != outFrames:%ld outSize:%ld inFrames:%ld srcdata.input_frames_used:%ld inSize:%ld rn:%d\n",
+ f.name().latin1(), srcdata.output_frames_gen, outFrames, outSize, inFrames, srcdata.input_frames_used, inSize, rn);
+ }
+
+ if(inFrames != (long)rn)
+ {
+ if(debugMsg)
+ printf("WaveEventBase::readAudio %s rn:%zd != inFrames:%ld output_frames_gen:%ld outFrames:%ld outSize:%ld srcdata.input_frames_used:%ld inSize:%ld\n",
+ f.name().latin1(), rn, inFrames, srcdata.output_frames_gen, outFrames, outSize, srcdata.input_frames_used, inSize);
+
+ // We've reached the end of the file. Convert the number of frames read.
+ //rn = (double)rn * srcratio + 1;
+ rn = (long)floor((double)rn * srcratio);
+ if(rn > (size_t)outFrames)
+ rn = outFrames;
+ }
+ else
+ if(srcdata.output_frames_gen != outFrames)
+ {
+ // SRC didn't give us the number of frames we requested.
+ // This can occasionally be radically different from the requested frames, or zero,
+ // even when ample excess input frames are supplied.
+ // We're not done converting yet - we haven't reached the end of the file.
+ // We must do something with the buffer. So let's zero whatever SRC didn't fill.
+ // FIXME: Instead of zeroing, try processing more input data until the out buffer is full.
+ long b = srcdata.output_frames_gen * channel;
+ long e = outFrames * channel;
+ for(long i = b; i < e; ++i)
+ outbuffer[i] = 0.0f;
+ //poutbuf[i] = 0.0f;
+ rn = outFrames;
+ }
+ else
+ rn = outFrames;
+
+ float* poutbuf = &outbuffer[0];
+ if(fchan == channel)
+ {
+ if(overwrite)
+ for (size_t i = 0; i < rn; ++i)
+ {
+ for(int ch = 0; ch < channel; ++ch)
+ *(buffer[ch] + i) = *poutbuf++;
+ }
+ else
+ for(size_t i = 0; i < rn; ++i)
+ {
+ for(int ch = 0; ch < channel; ++ch)
+ *(buffer[ch] + i) += *poutbuf++;
+ }
+ }
+ else if((fchan == 2) && (channel == 1))
+ {
+ // stereo to mono
+ if(overwrite)
+ for(size_t i = 0; i < rn; ++i)
+ *(buffer[0] + i) = poutbuf[i + i] + poutbuf[i + i + 1];
+ else
+ for(size_t i = 0; i < rn; ++i)
+ *(buffer[0] + i) += poutbuf[i + i] + poutbuf[i + i + 1];
+ }
+ else if((fchan == 1) && (channel == 2))
+ {
+ // mono to stereo
+ if(overwrite)
+ for(size_t i = 0; i < rn; ++i)
+ {
+ float data = *poutbuf++;
+ *(buffer[0]+i) = data;
+ *(buffer[1]+i) = data;
+ }
+ else
+ for(size_t i = 0; i < rn; ++i)
+ {
+ float data = *poutbuf++;
+ *(buffer[0]+i) += data;
+ *(buffer[1]+i) += data;
+ }
+ }
+ else
+ {
+ if(debugMsg)
+ printf("WaveEventBase::readAudio Channel mismatch: source chans:%d -> dst chans:%d\n", fchan, channel);
+ }
+
+ return sfCurFrame;
+ */
+
+
+ #else
+ if(f.isNull())
+ return;
+ //return sfCurFrame;
+
+ //sfCurFrame = f.seek(offset + _spos, 0);
+ //sfCurFrame += f.read(channel, buffer, n, overwrite);
+ f.seek(offset + _spos, 0);
+ f.read(channel, buffer, n, overwrite);
+
+ // p3.3.41
+ //fprintf(stderr, "WaveEventBase::readAudio data: n:%ld %e %e %e %e\n", n, buffer[0][0], buffer[0][1], buffer[0][2], buffer[0][3]);
+
+
+ //return sfCurFrame;
+ return;
+ #endif
+
+}
+
diff --git a/muse2/muse/waveevent.h b/muse2/muse/waveevent.h
new file mode 100644
index 00000000..4ea4918b
--- /dev/null
+++ b/muse2/muse/waveevent.h
@@ -0,0 +1,64 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: waveevent.h,v 1.6.2.4 2009/12/20 05:00:35 terminator356 Exp $
+//
+// (C) Copyright 1999-2004 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __WAVE_EVENT_H__
+#define __WAVE_EVENT_H__
+
+//#include <samplerate.h>
+#include <sys/types.h>
+
+#include "eventbase.h"
+
+class AudioConverter;
+class WavePart;
+
+//---------------------------------------------------------
+// WaveEvent
+//---------------------------------------------------------
+
+class WaveEventBase : public EventBase {
+ QString _name;
+ SndFileR f;
+ int _spos; // start sample position in WaveFile
+ bool deleted;
+
+ // p3.3.31
+ //virtual EventBase* clone() { return new WaveEventBase(*this); }
+ virtual EventBase* clone();
+
+ public:
+ WaveEventBase(EventType t);
+ virtual ~WaveEventBase() {}
+
+ virtual void read(Xml&);
+ //virtual void write(int, Xml&, const Pos& offset) const;
+ virtual void write(int, Xml&, const Pos& offset, bool forcePath = false) 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; }
+
+ // Changed by Tim. p3.3.17
+ //virtual void read(unsigned offset, float** bpp, int channels, int nn, bool overwrite = true);
+ //virtual void readAudio(unsigned /*offset*/, float** /*bpp*/, int /*channels*/, int /*nn*/, bool /*doSeek*/, bool /*overwrite*/);
+ //virtual off_t readAudio(SRC_STATE* /*src_state*/, off_t /*sfCurFrame*/, unsigned /*offset*/,
+ // float** /*bpp*/, int /*channels*/, int /*nn*/, bool /*doSeek*/, bool /*overwrite*/);
+ //virtual off_t readAudio(AudioConverter* /*audConv*/, off_t /*sfCurFrame*/, unsigned /*offset*/,
+ // float** /*bpp*/, int /*channels*/, int /*nn*/, bool /*doSeek*/, bool /*overwrite*/);
+ virtual void readAudio(WavePart* /*part*/, unsigned /*offset*/,
+ float** /*bpp*/, int /*channels*/, int /*nn*/, bool /*doSeek*/, bool /*overwrite*/);
+ };
+
+#endif
+
diff --git a/muse2/muse/wavetrack.cpp b/muse2/muse/wavetrack.cpp
new file mode 100644
index 00000000..0c2298a8
--- /dev/null
+++ b/muse2/muse/wavetrack.cpp
@@ -0,0 +1,360 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: wavetrack.cpp,v 1.15.2.12 2009/12/20 05:00:35 terminator356 Exp $
+//
+// (C) Copyright 2003 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include "track.h"
+#include "event.h"
+#include "audio.h"
+#include "wave.h"
+#include "xml.h"
+#include "song.h"
+#include "globals.h"
+#include "gconfig.h"
+#include "al/dsp.h"
+
+// Added by Tim. p3.3.18
+//#define WAVETRACK_DEBUG
+
+//---------------------------------------------------------
+// fetchData
+// called from prefetch thread
+//---------------------------------------------------------
+
+//void WaveTrack::fetchData(unsigned pos, unsigned samples, float** bp)
+void WaveTrack::fetchData(unsigned pos, unsigned samples, float** bp, bool doSeek)
+ {
+ // Added by Tim. p3.3.17
+ #ifdef WAVETRACK_DEBUG
+ printf("WaveTrack::fetchData %s samples:%lu pos:%u\n", name().latin1(), samples, pos);
+ #endif
+
+ // reset buffer to zero
+ for (int i = 0; i < channels(); ++i)
+ memset(bp[i], 0, samples * sizeof(float));
+
+ // p3.3.29
+ // Process only if track is not off.
+ if(!off())
+ {
+
+ PartList* pl = parts();
+ unsigned n = samples;
+ for (iPart ip = pl->begin(); ip != pl->end(); ++ip) {
+ WavePart* part = (WavePart*)(ip->second);
+ // Changed by Tim. p3.3.17
+ //if (part->mute() || isMute())
+ if (part->mute())
+ continue;
+
+ unsigned p_spos = part->frame();
+ unsigned p_epos = p_spos + part->lenFrame();
+ if (pos + n < p_spos)
+ break;
+ 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;
+ unsigned nn = event.lenFrame();
+ unsigned e_epos = e_spos + nn;
+
+ if (pos + n < e_spos)
+ break;
+ if (pos >= e_epos)
+ continue;
+
+ int offset = e_spos - pos;
+
+ unsigned srcOffset, dstOffset;
+ if (offset > 0) {
+ nn = n - offset;
+ srcOffset = 0;
+ dstOffset = offset;
+ }
+ else {
+ srcOffset = -offset;
+ dstOffset = 0;
+
+ nn += offset;
+ if (nn > n)
+ nn = n;
+ }
+ float* bpp[channels()];
+ for (int i = 0; i < channels(); ++i)
+ bpp[i] = bp[i] + dstOffset;
+
+ // By T356. Allow overlapping parts or events to mix together !
+ // Since the buffers are cleared above, just read and add (don't overwrite) the samples.
+ //event.read(srcOffset, bpp, channels(), nn);
+ //event.read(srcOffset, bpp, channels(), nn, false);
+ //event.readAudio(srcOffset, bpp, channels(), nn, doSeek, false);
+ // p3.3.33
+ event.readAudio(part, srcOffset, bpp, channels(), nn, doSeek, false);
+
+ }
+ }
+ }
+
+ if(config.useDenormalBias) {
+ // add denormal bias to outdata
+ for (int i = 0; i < channels(); ++i)
+ for (int j = 0; j < samples; ++j)
+ {
+ bp[i][j] +=denormalBias;
+
+ /*
+ // p3.3.41
+ if(j & 1)
+ bp[i][j] -=denormalBias;
+ else
+ bp[i][j] +=denormalBias;
+ */
+ }
+ }
+
+ // p3.3.41
+ //fprintf(stderr, "WaveTrack::fetchData data: samples:%ld %e %e %e %e\n", samples, bp[0][0], bp[0][1], bp[0][2], bp[0][3]);
+
+ _prefetchFifo.add();
+ }
+
+//---------------------------------------------------------
+// write
+//---------------------------------------------------------
+
+void WaveTrack::write(int level, Xml& xml) const
+ {
+ xml.tag(level++, "wavetrack");
+ AudioTrack::writeProperties(level, xml);
+ const PartList* pl = cparts();
+ for (ciPart p = pl->begin(); p != pl->end(); ++p)
+ p->second->write(level, xml);
+ xml.etag(level, "wavetrack");
+ }
+
+//---------------------------------------------------------
+// read
+//---------------------------------------------------------
+
+void WaveTrack::read(Xml& xml)
+ {
+ 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 == "part") {
+ //Part* p = newPart();
+ //p->read(xml);
+ Part* p = 0;
+ p = readXmlPart(xml, this);
+ if(p)
+ parts()->add(p);
+ }
+ else if (AudioTrack::readProperties(xml, tag))
+ xml.unknown("WaveTrack");
+ break;
+ case Xml::Attribut:
+ break;
+ case Xml::TagEnd:
+ if (tag == "wavetrack") {
+ mapRackPluginsToControllers();
+ return;
+ }
+ default:
+ break;
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// newPart
+//---------------------------------------------------------
+
+Part* WaveTrack::newPart(Part*p, bool clone)
+ {
+ WavePart* part = clone ? new WavePart(this, p->events()) : new WavePart(this);
+ if (p) {
+ part->setName(p->name());
+ part->setColorIndex(p->colorIndex());
+
+ *(PosLen*)part = *(PosLen*)p;
+ part->setMute(p->mute());
+ }
+
+ if(clone)
+ //p->chainClone(part);
+ chainClone(p, part);
+
+ return part;
+ }
+
+//---------------------------------------------------------
+// getData
+//---------------------------------------------------------
+
+bool WaveTrack::getData(unsigned framePos, int channels, unsigned nframe, float** bp)
+ {
+ //if(debugMsg)
+ // printf("WaveTrack::getData framePos:%u channels:%d nframe:%u processed?:%d\n", framePos, channels, nframe, processed());
+
+ if ((song->bounceTrack != this) && !noInRoute()) {
+ RouteList* irl = inRoutes();
+ iRoute i = irl->begin();
+ if(i->track->isMidiTrack())
+ {
+ if(debugMsg)
+ printf("WaveTrack::getData: Error: First route is a midi track route!\n");
+ return false;
+ }
+ // p3.3.38
+ //((AudioTrack*)i->track)->copyData(framePos, channels, nframe, bp);
+ ((AudioTrack*)i->track)->copyData(framePos, channels,
+ //(i->track->type() == Track::AUDIO_SOFTSYNTH && i->channel != -1) ? i->channel : 0,
+ i->channel,
+ i->channels,
+ nframe, bp);
+
+ ++i;
+ for (; i != irl->end(); ++i)
+ {
+ if(i->track->isMidiTrack())
+ {
+ if(debugMsg)
+ printf("WaveTrack::getData: Error: Route is a midi track route!\n");
+ //return false;
+ continue;
+ }
+ // p3.3.38
+ //((AudioTrack*)i->track)->addData(framePos, channels, nframe, bp);
+ ((AudioTrack*)i->track)->addData(framePos, channels,
+ //(i->track->type() == Track::AUDIO_SOFTSYNTH && i->channel != -1) ? i->channel : 0,
+ i->channel,
+ i->channels,
+ nframe, bp);
+
+ }
+ if (recordFlag()) {
+ if (audio->isRecording() && recFile()) {
+ if (audio->freewheel()) {
+ }
+ else {
+ if (fifo.put(channels, nframe, bp, audio->pos().frame()))
+ printf("WaveTrack::getData(%d, %d, %d): fifo overrun\n",
+ framePos, channels, nframe);
+ }
+ }
+ return true;
+ }
+ }
+ if (!audio->isPlaying())
+ return false;
+
+ // Removed by T356. Multiple out route cacheing now handled by AudioTrack::copyData and ::addData.
+ /*
+ if (outRoutes()->size() > 1) {
+ if (bufferPos != framePos) {
+ // Added by Tim. p3.3.16
+ printf("WaveTrack::getData bufferPos:%d != framePos\n", bufferPos);
+
+ bufferPos = framePos;
+ if (audio->freewheel()) {
+ // when freewheeling, read data direct from file:
+ fetchData(bufferPos, nframe, outBuffers);
+ }
+ else {
+ unsigned pos;
+ if (_prefetchFifo.get(channels, nframe, outBuffers, &pos)) {
+ printf("WaveTrack::getData(%s) fifo underrun\n",
+ name().latin1());
+ return false;
+ }
+ if (pos != framePos) {
+ printf("fifo get error expected %d, got %d\n",
+ framePos, pos);
+ if (debugMsg)
+ printf("fifo get error expected %d, got %d\n",
+ framePos, pos);
+ while (pos < framePos) {
+ if (_prefetchFifo.get(channels, nframe, bp, &pos)) {
+ printf("WaveTrack::getData(%s) fifo underrun\n",
+ name().latin1());
+ return false;
+ }
+ }
+ }
+ }
+ }
+ for (int i = 0; i < channels; ++i)
+ //memcpy(bp[i], outBuffers[i], nframe * sizeof(float));
+ AL::dsp->cpy(bp[i], outBuffers[i], nframe);
+ }
+ else {
+ */
+
+ //printf("WaveTrack::getData no out routes\n");
+
+ if (audio->freewheel()) {
+
+ // when freewheeling, read data direct from file:
+ // Indicate do not seek file before each read.
+ // Changed by Tim. p3.3.17
+ //fetchData(framePos, nframe, bp);
+ fetchData(framePos, nframe, bp, false);
+
+ }
+ else {
+ unsigned pos;
+ if (_prefetchFifo.get(channels, nframe, bp, &pos)) {
+ printf("WaveTrack::getData(%s) fifo underrun\n",
+ name().latin1());
+ return false;
+ }
+ if (pos != framePos) {
+ if (debugMsg)
+ printf("fifo get error expected %d, got %d\n",
+ framePos, pos);
+ while (pos < framePos) {
+ if (_prefetchFifo.get(channels, nframe, bp, &pos)) {
+ printf("WaveTrack::getData(%s) fifo underrun\n",
+ name().latin1());
+ return false;
+ }
+ }
+ }
+
+ // p3.3.41
+ //fprintf(stderr, "WaveTrack::getData %s data: nframe:%ld %e %e %e %e\n", name().latin1(), nframe, bp[0][0], bp[0][1], bp[0][2], bp[0][3]);
+
+ }
+ //}
+ return true;
+ }
+
+//---------------------------------------------------------
+// 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();
+ }
+ }
+ }
+
diff --git a/muse2/muse/widgets/.cvsignore b/muse2/muse/widgets/.cvsignore
new file mode 100644
index 00000000..89de206f
--- /dev/null
+++ b/muse2/muse/widgets/.cvsignore
@@ -0,0 +1,23 @@
+appearancebase.h
+audioconfbase.h
+ccontrolbase.h
+cliplisteditorbase.h
+commentbase.h
+editctrl7dialogbase.h
+editmetadialogbase.h
+editnotedialogbase.h
+editsysexdialogbase.h
+gatetimebase.h
+gensetbase.h
+itransformbase.h
+metronomebase.h
+midirawbase.h
+midisync.h
+mittransposebase.h
+mixdowndialogbase.h
+synthconfigbase.h
+trackinfobase.h
+transformbase.h
+transposebase.h
+velocitybase.h
+fdialogbuttons.h
diff --git a/muse2/muse/widgets/Makefile.am b/muse2/muse/widgets/Makefile.am
new file mode 100644
index 00000000..9a551264
--- /dev/null
+++ b/muse2/muse/widgets/Makefile.am
@@ -0,0 +1,262 @@
+include $(top_srcdir)/common.am
+
+## musewidgetsplugin_so_CPPFLAGS = $(MUSECXXFLAGS) -fPIC -I.. -I$(top_srcdir)/synti \
+## -DQT_THREAD_SUPPORT -DQT_SHARED -DQT_PLUGIN
+libwidgets_a_CPPFLAGS = $(MUSECXXFLAGS) -I.. -I$(top_srcdir)/synti
+
+if PCH
+libwidgets_a_CPPFLAGS += -include $(top_srcdir)/all.h
+## musewidgetsplugin_so_CPPFLAGS += -include $(top_srcdir)/all-pic.h
+endif
+
+AM_CXXFLAGS +=-DSVNVERSION=\"$(shell svnversion)\"
+
+
+noinst_LIBRARIES = libwidgets.a
+
+dist_libwidgets_a_SOURCES = \
+ utils.cpp utils.h \
+ citem.cpp citem.h \
+ vscale.cpp vscale.h \
+ drange.cpp drange.h \
+ sclif.cpp sclif.h \
+ dimap.cpp dimap.h \
+ scldiv.cpp scldiv.h \
+ mmath.cpp mmath.h \
+ scldraw.cpp scldraw.h \
+ action.h \
+ \
+ scrollscale.cpp scrollscale.h \
+ view.cpp view.h \
+ nentry.cpp nentry.h \
+ mtscale.cpp mtscale.h \
+ sigscale.cpp sigscale.h \
+ hitscale.cpp hitscale.h \
+ intlabel.cpp intlabel.h \
+ doublelabel.cpp doublelabel.h \
+ canvas.cpp canvas.h \
+ noteinfo.cpp noteinfo.h \
+ dentry.cpp dentry.h \
+ siglabel.cpp siglabel.h \
+ ttoolbar.cpp ttoolbar.h \
+ ttoolbutton.cpp ttoolbutton.h \
+ tb1.cpp tb1.h \
+ lcombo.cpp lcombo.h \
+ swidget.cpp swidget.h \
+ tempolabel.cpp tempolabel.h \
+ tools.cpp tools.h \
+ fontsel.cpp fontsel.h \
+ ctrlcombo.cpp ctrlcombo.h \
+ sliderbase.cpp sliderbase.h \
+ slider.cpp slider.h \
+ midisyncimpl.cpp midisyncimpl.h \
+ header.cpp header.h \
+ knob.cpp knob.h \
+ mlabel.cpp mlabel.h \
+ genset.cpp genset.h \
+ mixdowndialog.cpp mixdowndialog.h \
+ spinboxFP.cpp spinboxFP.h \
+ spinbox.cpp spinbox.h \
+ comboQuant.cpp comboQuant.h \
+ bigtime.cpp bigtime.h \
+ comment.cpp comment.h \
+ splitter.cpp splitter.h \
+ gatetime.cpp gatetime.h \
+ velocity.cpp velocity.h \
+ metronome.cpp metronome.h \
+ posedit.cpp posedit.h section.h \
+ pitchedit.cpp pitchedit.h \
+ pitchlabel.cpp pitchlabel.h \
+ poslabel.cpp poslabel.h \
+ filedialog.cpp filedialog.h \
+ sigedit.cpp sigedit.h \
+ shortcutconfig.cpp shortcutconfig.h \
+ shortcutcapturedialog.cpp shortcutcapturedialog.h \
+ combobox.cpp combobox.h \
+ checkbox.cpp checkbox.h \
+ aboutbox_impl.cpp aboutbox_impl.h \
+ popupmenu.cpp popupmenu.h \
+ listitem.h \
+ menutitleitem.h \
+ \
+ midisync.ui \
+ gensetbase.ui \
+ mixdowndialogbase.ui \
+ transposebase.ui \
+ transformbase.ui \
+ appearancebase.ui \
+ itransformbase.ui \
+ commentbase.ui \
+ synthconfigbase.ui \
+ gatetimebase.ui \
+ velocitybase.ui \
+ metronomebase.ui \
+ mtrackinfobase.ui \
+ wtrackinfobase.ui \
+ editctrl7dialogbase.ui \
+ editmetadialogbase.ui \
+ editnotedialogbase.ui \
+ editsysexdialogbase.ui \
+ cliplisteditorbase.ui \
+ mittransposebase.ui \
+ fdialogbuttons.ui \
+ shortcutconfigbase.ui \
+ shortcutcapturedialogbase.ui \
+ aboutbox.ui \
+ songinfo.ui \
+ didyouknow.ui \
+ configmidifilebase.ui
+
+nodist_libwidgets_a_SOURCES = \
+ moc_scrollscale.cpp \
+ moc_view.cpp \
+ moc_nentry.cpp \
+ moc_mtscale.cpp \
+ moc_sigscale.cpp \
+ moc_hitscale.cpp \
+ moc_intlabel.cpp \
+ moc_doublelabel.cpp \
+ moc_canvas.cpp \
+ moc_noteinfo.cpp \
+ moc_dentry.cpp \
+ moc_siglabel.cpp \
+ moc_ttoolbar.cpp \
+ moc_ttoolbutton.cpp \
+ moc_tb1.cpp \
+ moc_lcombo.cpp \
+ moc_swidget.cpp \
+ moc_tempolabel.cpp \
+ moc_tools.cpp \
+ moc_popupmenu.cpp \
+ moc_fontsel.cpp \
+ moc_ctrlcombo.cpp \
+ moc_sliderbase.cpp \
+ moc_slider.cpp \
+ moc_midisyncimpl.cpp \
+ moc_header.cpp \
+ moc_knob.cpp \
+ moc_mlabel.cpp \
+ moc_genset.cpp \
+ moc_mixdowndialog.cpp \
+ moc_spinboxFP.cpp \
+ moc_spinbox.cpp \
+ moc_comboQuant.cpp \
+ moc_bigtime.cpp \
+ moc_comment.cpp \
+ moc_splitter.cpp \
+ moc_gatetime.cpp \
+ moc_velocity.cpp \
+ moc_metronome.cpp \
+ moc_posedit.cpp \
+ moc_pitchedit.cpp \
+ moc_pitchlabel.cpp \
+ moc_poslabel.cpp \
+ moc_filedialog.cpp \
+ moc_sigedit.cpp \
+ moc_shortcutconfig.cpp \
+ moc_shortcutcapturedialog.cpp \
+ moc_combobox.cpp \
+ moc_aboutbox_impl.cpp\
+ moc_aboutbox.cpp \
+ moc_songinfo.cpp \
+ moc_didyouknow.cpp \
+ moc_checkbox.cpp \
+ moc_vscale.cpp \
+ moc_action.cpp
+
+# inst_PROGRAMS = musewidgetsplugin.so
+# instdir = $(pkglibdir)/qtplugins/designer
+#
+### widgetsplugin_LTLIBRARIES = musewidgetsplugin.la
+### widgetsplugindir = $(pkglibdir)/qtplugin
+
+#dist_musewidgetsplugin_so_SOURCES = \
+# musewidgetsplug.cpp \
+# sigedit.h \
+# $(top_srcdir)/muse/xml.cpp $(top_srcdir)/muse/tempo.cpp \
+# $(top_srcdir)/muse/sig.cpp $(top_srcdir)/muse/pos.cpp
+
+#nodist_musewidgetsplugin_so_SOURCES = \
+# moc_posedit.non-libtool.cpp moc_poslabel.non-libtool.cpp \
+# moc_sigedit.non-libtool.cpp \
+# moc_pitchedit.non-libtool.cpp moc_pitchlabel.non-libtool.cpp \
+# moc_tempolabel.non-libtool.cpp \
+# \
+# posedit.non-libtool.cpp poslabel.non-libtool.cpp \
+# pitchedit.non-libtool.cpp pitchlabel.non-libtool.cpp \
+# sigedit.non-libtool.cpp \
+# tempolabel.non-libtool.cpp \
+# slider.non-libtool.cpp moc_slider.non-libtool.cpp \
+# sliderbase.non-libtool.cpp moc_sliderbase.non-libtool.cpp \
+# sclif.non-libtool.cpp \
+# scldiv.non-libtool.cpp mmath.non-libtool.cpp scldraw.non-libtool.cpp \
+# dimap.non-libtool.cpp drange.non-libtool.cpp \
+# doublelabel.non-libtool.cpp moc_doublelabel.non-libtool.cpp \
+# dentry.non-libtool.cpp moc_dentry.non-libtool.cpp \
+# checkbox.non-libtool.cpp moc_checkbox.non-libtool.cpp \
+# combobox.non-libtool.cpp moc_combobox.non-libtool.cpp
+
+#musewidgetsplugin_so_LDFLAGS = --whole-archive -fno-exceptions -shared \
+# -Wl,-soname,libmusewidgetsplugin.so.1 $(QT_LIBS) -lasound
+
+#musewidgetsplug.o: musewidgetsplug.cpp
+# $(CXXCOMPILE) -fPIC -DQT_THREAD_SUPPORT -DQT_SHARED -DQT_PLUGIN -c musewidgetsplug.cpp
+
+EXTRA_DIST = ctrlcombo.cw
+
+# This is for stuff that needs the widgets, but dosn't build them with
+# libtool
+
+BUILT_SOURCES += \
+ posedit.non-libtool.cpp \
+ poslabel.non-libtool.cpp \
+ pitchedit.non-libtool.cpp \
+ pitchlabel.non-libtool.cpp \
+ sigedit.non-libtool.cpp \
+ tempolabel.non-libtool.cpp \
+ slider.non-libtool.cpp \
+ sliderbase.non-libtool.cpp \
+ sclif.non-libtool.cpp \
+ moc_posedit.non-libtool.cpp \
+ moc_poslabel.non-libtool.cpp \
+ moc_sigedit.non-libtool.cpp \
+ moc_pitchedit.non-libtool.cpp \
+ moc_pitchlabel.non-libtool.cpp \
+ moc_tempolabel.non-libtool.cpp \
+ moc_slider.non-libtool.cpp \
+ moc_sliderbase.non-libtool.cpp \
+ scldiv.non-libtool.cpp mmath.non-libtool.cpp scldraw.non-libtool.cpp \
+ dimap.non-libtool.cpp drange.non-libtool.cpp \
+ doublelabel.non-libtool.cpp moc_doublelabel.non-libtool.cpp \
+ dentry.non-libtool.cpp moc_dentry.non-libtool.cpp \
+ checkbox.non-libtool.cpp moc_checkbox.non-libtool.cpp \
+ combobox.non-libtool.cpp moc_combobox.non-libtool.cpp
+
+%.non-libtool.cpp: %.cpp
+ $(LN_S) $*.cpp $*.non-libtool.cpp
+
+CLEANFILES = \
+ posedit.non-libtool.cpp \
+ poslabel.non-libtool.cpp \
+ pitchedit.non-libtool.cpp \
+ pitchlabel.non-libtool.cpp \
+ sigedit.non-libtool.cpp \
+ tempolabel.non-libtool.cpp \
+ slider.non-libtool.cpp \
+ sliderbase.non-libtool.cpp \
+ sclif.non-libtool.cpp \
+ moc_posedit.non-libtool.cpp \
+ moc_poslabel.non-libtool.cpp \
+ moc_sigedit.non-libtool.cpp \
+ moc_pitchedit.non-libtool.cpp \
+ moc_pitchlabel.non-libtool.cpp \
+ moc_tempolabel.non-libtool.cpp \
+ moc_slider.non-libtool.cpp \
+ moc_sliderbase.non-libtool.cpp \
+ scldiv.non-libtool.cpp mmath.non-libtool.cpp scldraw.non-libtool.cpp \
+ dimap.non-libtool.cpp drange.non-libtool.cpp \
+ doublelabel.non-libtool.cpp moc_doublelabel.non-libtool.cpp \
+ dentry.non-libtool.cpp moc_dentry.non-libtool.cpp \
+ checkbox.non-libtool.cpp moc_checkbox.non-libtool.cpp \
+ combobox.non-libtool.cpp moc_combobox.non-libtool.cpp
+
diff --git a/muse2/muse/widgets/Makefile.in b/muse2/muse/widgets/Makefile.in
new file mode 100644
index 00000000..01b5747c
--- /dev/null
+++ b/muse2/muse/widgets/Makefile.in
@@ -0,0 +1,2647 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
+ $(top_srcdir)/common.am
+@PCH_TRUE@am__append_1 = -include $(top_srcdir)/all.h
+subdir = muse/widgets
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal-include.m4 \
+ $(top_srcdir)/m4/alsa.m4 $(top_srcdir)/m4/docbook.m4 \
+ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
+ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
+ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+LIBRARIES = $(noinst_LIBRARIES)
+ARFLAGS = cru
+libwidgets_a_AR = $(AR) $(ARFLAGS)
+libwidgets_a_LIBADD =
+dist_libwidgets_a_OBJECTS = libwidgets_a-utils.$(OBJEXT) \
+ libwidgets_a-citem.$(OBJEXT) libwidgets_a-vscale.$(OBJEXT) \
+ libwidgets_a-drange.$(OBJEXT) libwidgets_a-sclif.$(OBJEXT) \
+ libwidgets_a-dimap.$(OBJEXT) libwidgets_a-scldiv.$(OBJEXT) \
+ libwidgets_a-mmath.$(OBJEXT) libwidgets_a-scldraw.$(OBJEXT) \
+ libwidgets_a-scrollscale.$(OBJEXT) libwidgets_a-view.$(OBJEXT) \
+ libwidgets_a-nentry.$(OBJEXT) libwidgets_a-mtscale.$(OBJEXT) \
+ libwidgets_a-sigscale.$(OBJEXT) \
+ libwidgets_a-hitscale.$(OBJEXT) \
+ libwidgets_a-intlabel.$(OBJEXT) \
+ libwidgets_a-doublelabel.$(OBJEXT) \
+ libwidgets_a-canvas.$(OBJEXT) libwidgets_a-noteinfo.$(OBJEXT) \
+ libwidgets_a-dentry.$(OBJEXT) libwidgets_a-siglabel.$(OBJEXT) \
+ libwidgets_a-ttoolbar.$(OBJEXT) \
+ libwidgets_a-ttoolbutton.$(OBJEXT) libwidgets_a-tb1.$(OBJEXT) \
+ libwidgets_a-lcombo.$(OBJEXT) libwidgets_a-swidget.$(OBJEXT) \
+ libwidgets_a-tempolabel.$(OBJEXT) libwidgets_a-tools.$(OBJEXT) \
+ libwidgets_a-fontsel.$(OBJEXT) \
+ libwidgets_a-ctrlcombo.$(OBJEXT) \
+ libwidgets_a-sliderbase.$(OBJEXT) \
+ libwidgets_a-slider.$(OBJEXT) \
+ libwidgets_a-midisyncimpl.$(OBJEXT) \
+ libwidgets_a-header.$(OBJEXT) libwidgets_a-knob.$(OBJEXT) \
+ libwidgets_a-mlabel.$(OBJEXT) libwidgets_a-genset.$(OBJEXT) \
+ libwidgets_a-mixdowndialog.$(OBJEXT) \
+ libwidgets_a-spinboxFP.$(OBJEXT) \
+ libwidgets_a-spinbox.$(OBJEXT) \
+ libwidgets_a-comboQuant.$(OBJEXT) \
+ libwidgets_a-bigtime.$(OBJEXT) libwidgets_a-comment.$(OBJEXT) \
+ libwidgets_a-splitter.$(OBJEXT) \
+ libwidgets_a-gatetime.$(OBJEXT) \
+ libwidgets_a-velocity.$(OBJEXT) \
+ libwidgets_a-metronome.$(OBJEXT) \
+ libwidgets_a-posedit.$(OBJEXT) \
+ libwidgets_a-pitchedit.$(OBJEXT) \
+ libwidgets_a-pitchlabel.$(OBJEXT) \
+ libwidgets_a-poslabel.$(OBJEXT) \
+ libwidgets_a-filedialog.$(OBJEXT) \
+ libwidgets_a-sigedit.$(OBJEXT) \
+ libwidgets_a-shortcutconfig.$(OBJEXT) \
+ libwidgets_a-shortcutcapturedialog.$(OBJEXT) \
+ libwidgets_a-combobox.$(OBJEXT) \
+ libwidgets_a-checkbox.$(OBJEXT) \
+ libwidgets_a-aboutbox_impl.$(OBJEXT) \
+ libwidgets_a-popupmenu.$(OBJEXT) midisync.$(OBJEXT) \
+ gensetbase.$(OBJEXT) mixdowndialogbase.$(OBJEXT) \
+ transposebase.$(OBJEXT) transformbase.$(OBJEXT) \
+ appearancebase.$(OBJEXT) itransformbase.$(OBJEXT) \
+ commentbase.$(OBJEXT) synthconfigbase.$(OBJEXT) \
+ gatetimebase.$(OBJEXT) velocitybase.$(OBJEXT) \
+ metronomebase.$(OBJEXT) mtrackinfobase.$(OBJEXT) \
+ wtrackinfobase.$(OBJEXT) editctrl7dialogbase.$(OBJEXT) \
+ editmetadialogbase.$(OBJEXT) editnotedialogbase.$(OBJEXT) \
+ editsysexdialogbase.$(OBJEXT) cliplisteditorbase.$(OBJEXT) \
+ mittransposebase.$(OBJEXT) fdialogbuttons.$(OBJEXT) \
+ shortcutconfigbase.$(OBJEXT) \
+ shortcutcapturedialogbase.$(OBJEXT) aboutbox.$(OBJEXT) \
+ songinfo.$(OBJEXT) didyouknow.$(OBJEXT) \
+ configmidifilebase.$(OBJEXT)
+nodist_libwidgets_a_OBJECTS = libwidgets_a-moc_scrollscale.$(OBJEXT) \
+ libwidgets_a-moc_view.$(OBJEXT) \
+ libwidgets_a-moc_nentry.$(OBJEXT) \
+ libwidgets_a-moc_mtscale.$(OBJEXT) \
+ libwidgets_a-moc_sigscale.$(OBJEXT) \
+ libwidgets_a-moc_hitscale.$(OBJEXT) \
+ libwidgets_a-moc_intlabel.$(OBJEXT) \
+ libwidgets_a-moc_doublelabel.$(OBJEXT) \
+ libwidgets_a-moc_canvas.$(OBJEXT) \
+ libwidgets_a-moc_noteinfo.$(OBJEXT) \
+ libwidgets_a-moc_dentry.$(OBJEXT) \
+ libwidgets_a-moc_siglabel.$(OBJEXT) \
+ libwidgets_a-moc_ttoolbar.$(OBJEXT) \
+ libwidgets_a-moc_ttoolbutton.$(OBJEXT) \
+ libwidgets_a-moc_tb1.$(OBJEXT) \
+ libwidgets_a-moc_lcombo.$(OBJEXT) \
+ libwidgets_a-moc_swidget.$(OBJEXT) \
+ libwidgets_a-moc_tempolabel.$(OBJEXT) \
+ libwidgets_a-moc_tools.$(OBJEXT) \
+ libwidgets_a-moc_popupmenu.$(OBJEXT) \
+ libwidgets_a-moc_fontsel.$(OBJEXT) \
+ libwidgets_a-moc_ctrlcombo.$(OBJEXT) \
+ libwidgets_a-moc_sliderbase.$(OBJEXT) \
+ libwidgets_a-moc_slider.$(OBJEXT) \
+ libwidgets_a-moc_midisyncimpl.$(OBJEXT) \
+ libwidgets_a-moc_header.$(OBJEXT) \
+ libwidgets_a-moc_knob.$(OBJEXT) \
+ libwidgets_a-moc_mlabel.$(OBJEXT) \
+ libwidgets_a-moc_genset.$(OBJEXT) \
+ libwidgets_a-moc_mixdowndialog.$(OBJEXT) \
+ libwidgets_a-moc_spinboxFP.$(OBJEXT) \
+ libwidgets_a-moc_spinbox.$(OBJEXT) \
+ libwidgets_a-moc_comboQuant.$(OBJEXT) \
+ libwidgets_a-moc_bigtime.$(OBJEXT) \
+ libwidgets_a-moc_comment.$(OBJEXT) \
+ libwidgets_a-moc_splitter.$(OBJEXT) \
+ libwidgets_a-moc_gatetime.$(OBJEXT) \
+ libwidgets_a-moc_velocity.$(OBJEXT) \
+ libwidgets_a-moc_metronome.$(OBJEXT) \
+ libwidgets_a-moc_posedit.$(OBJEXT) \
+ libwidgets_a-moc_pitchedit.$(OBJEXT) \
+ libwidgets_a-moc_pitchlabel.$(OBJEXT) \
+ libwidgets_a-moc_poslabel.$(OBJEXT) \
+ libwidgets_a-moc_filedialog.$(OBJEXT) \
+ libwidgets_a-moc_sigedit.$(OBJEXT) \
+ libwidgets_a-moc_shortcutconfig.$(OBJEXT) \
+ libwidgets_a-moc_shortcutcapturedialog.$(OBJEXT) \
+ libwidgets_a-moc_combobox.$(OBJEXT) \
+ libwidgets_a-moc_aboutbox_impl.$(OBJEXT) \
+ libwidgets_a-moc_aboutbox.$(OBJEXT) \
+ libwidgets_a-moc_songinfo.$(OBJEXT) \
+ libwidgets_a-moc_didyouknow.$(OBJEXT) \
+ libwidgets_a-moc_checkbox.$(OBJEXT) \
+ libwidgets_a-moc_vscale.$(OBJEXT) \
+ libwidgets_a-moc_action.$(OBJEXT)
+libwidgets_a_OBJECTS = $(dist_libwidgets_a_OBJECTS) \
+ $(nodist_libwidgets_a_OBJECTS)
+DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
+depcomp = $(SHELL) $(top_srcdir)/depcomp
+am__depfiles_maybe = depfiles
+am__mv = mv -f
+CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
+LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
+CXXLD = $(CXX)
+CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \
+ $(LDFLAGS) -o $@
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
+ $(LDFLAGS) -o $@
+SOURCES = $(dist_libwidgets_a_SOURCES) $(nodist_libwidgets_a_SOURCES)
+DIST_SOURCES = $(dist_libwidgets_a_SOURCES)
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ALSA_CFLAGS = @ALSA_CFLAGS@
+ALSA_LIBS = @ALSA_LIBS@
+AMTAR = @AMTAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DOCBOOKSTYLE = @DOCBOOKSTYLE@
+DOCBOOKTARGETS = @DOCBOOKTARGETS@
+DOT = @DOT@
+DOTPATH = @DOTPATH@
+DOXYGEN = @DOXYGEN@
+DOXYGEN_TREEVIEW = @DOXYGEN_TREEVIEW@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+FLUIDSYNTHDIRS = @FLUIDSYNTHDIRS@
+FST_CFLAGS = @FST_CFLAGS@
+FST_LIBS = @FST_LIBS@
+Fluidsynth_CFLAGS = @Fluidsynth_CFLAGS@
+Fluidsynth_LIBS = @Fluidsynth_LIBS@
+GIVERTCAP = @GIVERTCAP@
+GREP = @GREP@
+HAVEDOT = @HAVEDOT@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JACK_CFLAGS = @JACK_CFLAGS@
+JACK_LIBS = @JACK_LIBS@
+JADE = @JADE@
+LASH_CFLAGS = @LASH_CFLAGS@
+LASH_LIBS = @LASH_LIBS@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LO_CFLAGS = @LO_CFLAGS@
+LO_LIBS = @LO_LIBS@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+MUSECXXFLAGS = @MUSECXXFLAGS@
+NM = @NM@
+NMEDIT = @NMEDIT@
+NSGMLS = @NSGMLS@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PCH = @PCH@
+PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+PYTHON = @PYTHON@
+PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
+PYTHON_INCLUDES = @PYTHON_INCLUDES@
+PYTHON_LIB = @PYTHON_LIB@
+PYTHON_PLATFORM = @PYTHON_PLATFORM@
+PYTHON_PREFIX = @PYTHON_PREFIX@
+PYTHON_VERSION = @PYTHON_VERSION@
+QTDIR_BIN = @QTDIR_BIN@
+QTDIR_INC = @QTDIR_INC@
+QT_LIBS = @QT_LIBS@
+RANLIB = @RANLIB@
+SAMPLERATE_CFLAGS = @SAMPLERATE_CFLAGS@
+SAMPLERATE_LIBS = @SAMPLERATE_LIBS@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SNDFILE_CFLAGS = @SNDFILE_CFLAGS@
+SNDFILE_LIBS = @SNDFILE_LIBS@
+STRIP = @STRIP@
+SUIDBUILD = @SUIDBUILD@
+SUIDINSTALL = @SUIDINSTALL@
+USE_SSE = @USE_SSE@
+UUID_CFLAGS = @UUID_CFLAGS@
+UUID_LIBS = @UUID_LIBS@
+VERSION = @VERSION@
+XMKMF = @XMKMF@
+X_CFLAGS = @X_CFLAGS@
+X_EXTRA_LIBS = @X_EXTRA_LIBS@
+X_LIBS = @X_LIBS@
+X_PRE_LIBS = @X_PRE_LIBS@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+have_docbook = @have_docbook@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+lt_ECHO = @lt_ECHO@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+pkgpyexecdir = @pkgpyexecdir@
+pkgpythondir = @pkgpythondir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+pyexecdir = @pyexecdir@
+pythondir = @pythondir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+synth_fluid = @synth_fluid@
+synth_fluidsynth = @synth_fluidsynth@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+AM_CXXFLAGS = $(MUSECXXFLAGS) -I.. -I$(top_srcdir)/synti \
+ -I$(top_srcdir)/muse/widgets -DQT_SHARED -DQT_THREAD_SUPPORT \
+ -DQT_PLUGIN $(QTDIR_INC) -DQT3_SUPPORT -DSVNVERSION=\"$(shell \
+ svnversion)\"
+AM_CPPFLAGS =
+MOC = $(QTDIR_BIN)/moc
+#UIC = $(QTDIR_BIN)/uic3
+UIC = /usr/bin/uic3
+UIFILES = $(wildcard *.ui)
+MOCFILES = $(shell for h in $(filter %.h,$(SOURCES)); do \
+ if grep -q Q_OBJECT $$h; then \
+ echo $$h | sed "s/\(.*\)\.h/moc_\1.cpp/"; \
+ fi; \
+ done)
+
+
+# This is for stuff that needs the widgets, but dosn't build them with
+# libtool
+BUILT_SOURCES = $(MOCFILES) $(UIFILES:%.ui=%.h) \
+ posedit.non-libtool.cpp poslabel.non-libtool.cpp \
+ pitchedit.non-libtool.cpp pitchlabel.non-libtool.cpp \
+ sigedit.non-libtool.cpp tempolabel.non-libtool.cpp \
+ slider.non-libtool.cpp sliderbase.non-libtool.cpp \
+ sclif.non-libtool.cpp moc_posedit.non-libtool.cpp \
+ moc_poslabel.non-libtool.cpp moc_sigedit.non-libtool.cpp \
+ moc_pitchedit.non-libtool.cpp moc_pitchlabel.non-libtool.cpp \
+ moc_tempolabel.non-libtool.cpp moc_slider.non-libtool.cpp \
+ moc_sliderbase.non-libtool.cpp scldiv.non-libtool.cpp \
+ mmath.non-libtool.cpp scldraw.non-libtool.cpp \
+ dimap.non-libtool.cpp drange.non-libtool.cpp \
+ doublelabel.non-libtool.cpp moc_doublelabel.non-libtool.cpp \
+ dentry.non-libtool.cpp moc_dentry.non-libtool.cpp \
+ checkbox.non-libtool.cpp moc_checkbox.non-libtool.cpp \
+ combobox.non-libtool.cpp moc_combobox.non-libtool.cpp
+MOSTLYCLEANFILES = $(MOCFILES) $(UIFILES:%.ui=%.h)
+SUFFIXES = .ui .h.gch
+libwidgets_a_CPPFLAGS = $(MUSECXXFLAGS) -I.. -I$(top_srcdir)/synti \
+ $(am__append_1)
+noinst_LIBRARIES = libwidgets.a
+dist_libwidgets_a_SOURCES = \
+ utils.cpp utils.h \
+ citem.cpp citem.h \
+ vscale.cpp vscale.h \
+ drange.cpp drange.h \
+ sclif.cpp sclif.h \
+ dimap.cpp dimap.h \
+ scldiv.cpp scldiv.h \
+ mmath.cpp mmath.h \
+ scldraw.cpp scldraw.h \
+ action.h \
+ \
+ scrollscale.cpp scrollscale.h \
+ view.cpp view.h \
+ nentry.cpp nentry.h \
+ mtscale.cpp mtscale.h \
+ sigscale.cpp sigscale.h \
+ hitscale.cpp hitscale.h \
+ intlabel.cpp intlabel.h \
+ doublelabel.cpp doublelabel.h \
+ canvas.cpp canvas.h \
+ noteinfo.cpp noteinfo.h \
+ dentry.cpp dentry.h \
+ siglabel.cpp siglabel.h \
+ ttoolbar.cpp ttoolbar.h \
+ ttoolbutton.cpp ttoolbutton.h \
+ tb1.cpp tb1.h \
+ lcombo.cpp lcombo.h \
+ swidget.cpp swidget.h \
+ tempolabel.cpp tempolabel.h \
+ tools.cpp tools.h \
+ fontsel.cpp fontsel.h \
+ ctrlcombo.cpp ctrlcombo.h \
+ sliderbase.cpp sliderbase.h \
+ slider.cpp slider.h \
+ midisyncimpl.cpp midisyncimpl.h \
+ header.cpp header.h \
+ knob.cpp knob.h \
+ mlabel.cpp mlabel.h \
+ genset.cpp genset.h \
+ mixdowndialog.cpp mixdowndialog.h \
+ spinboxFP.cpp spinboxFP.h \
+ spinbox.cpp spinbox.h \
+ comboQuant.cpp comboQuant.h \
+ bigtime.cpp bigtime.h \
+ comment.cpp comment.h \
+ splitter.cpp splitter.h \
+ gatetime.cpp gatetime.h \
+ velocity.cpp velocity.h \
+ metronome.cpp metronome.h \
+ posedit.cpp posedit.h section.h \
+ pitchedit.cpp pitchedit.h \
+ pitchlabel.cpp pitchlabel.h \
+ poslabel.cpp poslabel.h \
+ filedialog.cpp filedialog.h \
+ sigedit.cpp sigedit.h \
+ shortcutconfig.cpp shortcutconfig.h \
+ shortcutcapturedialog.cpp shortcutcapturedialog.h \
+ combobox.cpp combobox.h \
+ checkbox.cpp checkbox.h \
+ aboutbox_impl.cpp aboutbox_impl.h \
+ popupmenu.cpp popupmenu.h \
+ listitem.h \
+ menutitleitem.h \
+ \
+ midisync.ui \
+ gensetbase.ui \
+ mixdowndialogbase.ui \
+ transposebase.ui \
+ transformbase.ui \
+ appearancebase.ui \
+ itransformbase.ui \
+ commentbase.ui \
+ synthconfigbase.ui \
+ gatetimebase.ui \
+ velocitybase.ui \
+ metronomebase.ui \
+ mtrackinfobase.ui \
+ wtrackinfobase.ui \
+ editctrl7dialogbase.ui \
+ editmetadialogbase.ui \
+ editnotedialogbase.ui \
+ editsysexdialogbase.ui \
+ cliplisteditorbase.ui \
+ mittransposebase.ui \
+ fdialogbuttons.ui \
+ shortcutconfigbase.ui \
+ shortcutcapturedialogbase.ui \
+ aboutbox.ui \
+ songinfo.ui \
+ didyouknow.ui \
+ configmidifilebase.ui
+
+nodist_libwidgets_a_SOURCES = \
+ moc_scrollscale.cpp \
+ moc_view.cpp \
+ moc_nentry.cpp \
+ moc_mtscale.cpp \
+ moc_sigscale.cpp \
+ moc_hitscale.cpp \
+ moc_intlabel.cpp \
+ moc_doublelabel.cpp \
+ moc_canvas.cpp \
+ moc_noteinfo.cpp \
+ moc_dentry.cpp \
+ moc_siglabel.cpp \
+ moc_ttoolbar.cpp \
+ moc_ttoolbutton.cpp \
+ moc_tb1.cpp \
+ moc_lcombo.cpp \
+ moc_swidget.cpp \
+ moc_tempolabel.cpp \
+ moc_tools.cpp \
+ moc_popupmenu.cpp \
+ moc_fontsel.cpp \
+ moc_ctrlcombo.cpp \
+ moc_sliderbase.cpp \
+ moc_slider.cpp \
+ moc_midisyncimpl.cpp \
+ moc_header.cpp \
+ moc_knob.cpp \
+ moc_mlabel.cpp \
+ moc_genset.cpp \
+ moc_mixdowndialog.cpp \
+ moc_spinboxFP.cpp \
+ moc_spinbox.cpp \
+ moc_comboQuant.cpp \
+ moc_bigtime.cpp \
+ moc_comment.cpp \
+ moc_splitter.cpp \
+ moc_gatetime.cpp \
+ moc_velocity.cpp \
+ moc_metronome.cpp \
+ moc_posedit.cpp \
+ moc_pitchedit.cpp \
+ moc_pitchlabel.cpp \
+ moc_poslabel.cpp \
+ moc_filedialog.cpp \
+ moc_sigedit.cpp \
+ moc_shortcutconfig.cpp \
+ moc_shortcutcapturedialog.cpp \
+ moc_combobox.cpp \
+ moc_aboutbox_impl.cpp\
+ moc_aboutbox.cpp \
+ moc_songinfo.cpp \
+ moc_didyouknow.cpp \
+ moc_checkbox.cpp \
+ moc_vscale.cpp \
+ moc_action.cpp
+
+
+# inst_PROGRAMS = musewidgetsplugin.so
+# instdir = $(pkglibdir)/qtplugins/designer
+#
+### widgetsplugin_LTLIBRARIES = musewidgetsplugin.la
+### widgetsplugindir = $(pkglibdir)/qtplugin
+
+#dist_musewidgetsplugin_so_SOURCES = \
+# musewidgetsplug.cpp \
+# sigedit.h \
+# $(top_srcdir)/muse/xml.cpp $(top_srcdir)/muse/tempo.cpp \
+# $(top_srcdir)/muse/sig.cpp $(top_srcdir)/muse/pos.cpp
+
+#nodist_musewidgetsplugin_so_SOURCES = \
+# moc_posedit.non-libtool.cpp moc_poslabel.non-libtool.cpp \
+# moc_sigedit.non-libtool.cpp \
+# moc_pitchedit.non-libtool.cpp moc_pitchlabel.non-libtool.cpp \
+# moc_tempolabel.non-libtool.cpp \
+# \
+# posedit.non-libtool.cpp poslabel.non-libtool.cpp \
+# pitchedit.non-libtool.cpp pitchlabel.non-libtool.cpp \
+# sigedit.non-libtool.cpp \
+# tempolabel.non-libtool.cpp \
+# slider.non-libtool.cpp moc_slider.non-libtool.cpp \
+# sliderbase.non-libtool.cpp moc_sliderbase.non-libtool.cpp \
+# sclif.non-libtool.cpp \
+# scldiv.non-libtool.cpp mmath.non-libtool.cpp scldraw.non-libtool.cpp \
+# dimap.non-libtool.cpp drange.non-libtool.cpp \
+# doublelabel.non-libtool.cpp moc_doublelabel.non-libtool.cpp \
+# dentry.non-libtool.cpp moc_dentry.non-libtool.cpp \
+# checkbox.non-libtool.cpp moc_checkbox.non-libtool.cpp \
+# combobox.non-libtool.cpp moc_combobox.non-libtool.cpp
+
+#musewidgetsplugin_so_LDFLAGS = --whole-archive -fno-exceptions -shared \
+# -Wl,-soname,libmusewidgetsplugin.so.1 $(QT_LIBS) -lasound
+
+#musewidgetsplug.o: musewidgetsplug.cpp
+# $(CXXCOMPILE) -fPIC -DQT_THREAD_SUPPORT -DQT_SHARED -DQT_PLUGIN -c musewidgetsplug.cpp
+EXTRA_DIST = ctrlcombo.cw
+CLEANFILES = \
+ posedit.non-libtool.cpp \
+ poslabel.non-libtool.cpp \
+ pitchedit.non-libtool.cpp \
+ pitchlabel.non-libtool.cpp \
+ sigedit.non-libtool.cpp \
+ tempolabel.non-libtool.cpp \
+ slider.non-libtool.cpp \
+ sliderbase.non-libtool.cpp \
+ sclif.non-libtool.cpp \
+ moc_posedit.non-libtool.cpp \
+ moc_poslabel.non-libtool.cpp \
+ moc_sigedit.non-libtool.cpp \
+ moc_pitchedit.non-libtool.cpp \
+ moc_pitchlabel.non-libtool.cpp \
+ moc_tempolabel.non-libtool.cpp \
+ moc_slider.non-libtool.cpp \
+ moc_sliderbase.non-libtool.cpp \
+ scldiv.non-libtool.cpp mmath.non-libtool.cpp scldraw.non-libtool.cpp \
+ dimap.non-libtool.cpp drange.non-libtool.cpp \
+ doublelabel.non-libtool.cpp moc_doublelabel.non-libtool.cpp \
+ dentry.non-libtool.cpp moc_dentry.non-libtool.cpp \
+ checkbox.non-libtool.cpp moc_checkbox.non-libtool.cpp \
+ combobox.non-libtool.cpp moc_combobox.non-libtool.cpp
+
+all: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) all-am
+
+.SUFFIXES:
+.SUFFIXES: .ui .h.gch .cpp .lo .o .obj
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/common.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu muse/widgets/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu muse/widgets/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+clean-noinstLIBRARIES:
+ -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
+libwidgets.a: $(libwidgets_a_OBJECTS) $(libwidgets_a_DEPENDENCIES)
+ -rm -f libwidgets.a
+ $(libwidgets_a_AR) libwidgets.a $(libwidgets_a_OBJECTS) $(libwidgets_a_LIBADD)
+ $(RANLIB) libwidgets.a
+
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT)
+
+distclean-compile:
+ -rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwidgets_a-aboutbox_impl.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwidgets_a-bigtime.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwidgets_a-canvas.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwidgets_a-checkbox.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwidgets_a-citem.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwidgets_a-comboQuant.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwidgets_a-combobox.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwidgets_a-comment.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwidgets_a-ctrlcombo.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwidgets_a-dentry.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwidgets_a-dimap.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwidgets_a-doublelabel.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwidgets_a-drange.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwidgets_a-filedialog.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwidgets_a-fontsel.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwidgets_a-gatetime.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwidgets_a-genset.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwidgets_a-header.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwidgets_a-hitscale.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwidgets_a-intlabel.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwidgets_a-knob.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwidgets_a-lcombo.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwidgets_a-metronome.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwidgets_a-midisyncimpl.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwidgets_a-mixdowndialog.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwidgets_a-mlabel.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwidgets_a-mmath.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwidgets_a-moc_aboutbox.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwidgets_a-moc_aboutbox_impl.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwidgets_a-moc_action.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwidgets_a-moc_bigtime.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwidgets_a-moc_canvas.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwidgets_a-moc_checkbox.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwidgets_a-moc_comboQuant.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwidgets_a-moc_combobox.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwidgets_a-moc_comment.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwidgets_a-moc_ctrlcombo.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwidgets_a-moc_dentry.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwidgets_a-moc_didyouknow.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwidgets_a-moc_doublelabel.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwidgets_a-moc_filedialog.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwidgets_a-moc_fontsel.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwidgets_a-moc_gatetime.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwidgets_a-moc_genset.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwidgets_a-moc_header.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwidgets_a-moc_hitscale.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwidgets_a-moc_intlabel.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwidgets_a-moc_knob.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwidgets_a-moc_lcombo.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwidgets_a-moc_metronome.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwidgets_a-moc_midisyncimpl.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwidgets_a-moc_mixdowndialog.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwidgets_a-moc_mlabel.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwidgets_a-moc_mtscale.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwidgets_a-moc_nentry.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwidgets_a-moc_noteinfo.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwidgets_a-moc_pitchedit.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwidgets_a-moc_pitchlabel.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwidgets_a-moc_popupmenu.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwidgets_a-moc_posedit.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwidgets_a-moc_poslabel.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwidgets_a-moc_scrollscale.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwidgets_a-moc_shortcutcapturedialog.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwidgets_a-moc_shortcutconfig.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwidgets_a-moc_sigedit.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwidgets_a-moc_siglabel.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwidgets_a-moc_sigscale.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwidgets_a-moc_slider.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwidgets_a-moc_sliderbase.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwidgets_a-moc_songinfo.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwidgets_a-moc_spinbox.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwidgets_a-moc_spinboxFP.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwidgets_a-moc_splitter.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwidgets_a-moc_swidget.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwidgets_a-moc_tb1.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwidgets_a-moc_tempolabel.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwidgets_a-moc_tools.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwidgets_a-moc_ttoolbar.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwidgets_a-moc_ttoolbutton.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwidgets_a-moc_velocity.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwidgets_a-moc_view.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwidgets_a-moc_vscale.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwidgets_a-mtscale.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwidgets_a-nentry.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwidgets_a-noteinfo.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwidgets_a-pitchedit.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwidgets_a-pitchlabel.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwidgets_a-popupmenu.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwidgets_a-posedit.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwidgets_a-poslabel.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwidgets_a-scldiv.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwidgets_a-scldraw.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwidgets_a-sclif.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwidgets_a-scrollscale.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwidgets_a-shortcutcapturedialog.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwidgets_a-shortcutconfig.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwidgets_a-sigedit.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwidgets_a-siglabel.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwidgets_a-sigscale.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwidgets_a-slider.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwidgets_a-sliderbase.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwidgets_a-spinbox.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwidgets_a-spinboxFP.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwidgets_a-splitter.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwidgets_a-swidget.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwidgets_a-tb1.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwidgets_a-tempolabel.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwidgets_a-tools.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwidgets_a-ttoolbar.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwidgets_a-ttoolbutton.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwidgets_a-utils.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwidgets_a-velocity.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwidgets_a-view.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwidgets_a-vscale.Po@am__quote@
+
+.cpp.o:
+@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $<
+
+.cpp.obj:
+@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+
+.cpp.lo:
+@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $<
+
+libwidgets_a-utils.o: utils.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-utils.o -MD -MP -MF $(DEPDIR)/libwidgets_a-utils.Tpo -c -o libwidgets_a-utils.o `test -f 'utils.cpp' || echo '$(srcdir)/'`utils.cpp
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-utils.Tpo $(DEPDIR)/libwidgets_a-utils.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='utils.cpp' object='libwidgets_a-utils.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-utils.o `test -f 'utils.cpp' || echo '$(srcdir)/'`utils.cpp
+
+libwidgets_a-utils.obj: utils.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-utils.obj -MD -MP -MF $(DEPDIR)/libwidgets_a-utils.Tpo -c -o libwidgets_a-utils.obj `if test -f 'utils.cpp'; then $(CYGPATH_W) 'utils.cpp'; else $(CYGPATH_W) '$(srcdir)/utils.cpp'; fi`
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-utils.Tpo $(DEPDIR)/libwidgets_a-utils.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='utils.cpp' object='libwidgets_a-utils.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-utils.obj `if test -f 'utils.cpp'; then $(CYGPATH_W) 'utils.cpp'; else $(CYGPATH_W) '$(srcdir)/utils.cpp'; fi`
+
+libwidgets_a-citem.o: citem.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-citem.o -MD -MP -MF $(DEPDIR)/libwidgets_a-citem.Tpo -c -o libwidgets_a-citem.o `test -f 'citem.cpp' || echo '$(srcdir)/'`citem.cpp
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-citem.Tpo $(DEPDIR)/libwidgets_a-citem.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='citem.cpp' object='libwidgets_a-citem.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-citem.o `test -f 'citem.cpp' || echo '$(srcdir)/'`citem.cpp
+
+libwidgets_a-citem.obj: citem.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-citem.obj -MD -MP -MF $(DEPDIR)/libwidgets_a-citem.Tpo -c -o libwidgets_a-citem.obj `if test -f 'citem.cpp'; then $(CYGPATH_W) 'citem.cpp'; else $(CYGPATH_W) '$(srcdir)/citem.cpp'; fi`
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-citem.Tpo $(DEPDIR)/libwidgets_a-citem.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='citem.cpp' object='libwidgets_a-citem.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-citem.obj `if test -f 'citem.cpp'; then $(CYGPATH_W) 'citem.cpp'; else $(CYGPATH_W) '$(srcdir)/citem.cpp'; fi`
+
+libwidgets_a-vscale.o: vscale.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-vscale.o -MD -MP -MF $(DEPDIR)/libwidgets_a-vscale.Tpo -c -o libwidgets_a-vscale.o `test -f 'vscale.cpp' || echo '$(srcdir)/'`vscale.cpp
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-vscale.Tpo $(DEPDIR)/libwidgets_a-vscale.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='vscale.cpp' object='libwidgets_a-vscale.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-vscale.o `test -f 'vscale.cpp' || echo '$(srcdir)/'`vscale.cpp
+
+libwidgets_a-vscale.obj: vscale.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-vscale.obj -MD -MP -MF $(DEPDIR)/libwidgets_a-vscale.Tpo -c -o libwidgets_a-vscale.obj `if test -f 'vscale.cpp'; then $(CYGPATH_W) 'vscale.cpp'; else $(CYGPATH_W) '$(srcdir)/vscale.cpp'; fi`
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-vscale.Tpo $(DEPDIR)/libwidgets_a-vscale.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='vscale.cpp' object='libwidgets_a-vscale.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-vscale.obj `if test -f 'vscale.cpp'; then $(CYGPATH_W) 'vscale.cpp'; else $(CYGPATH_W) '$(srcdir)/vscale.cpp'; fi`
+
+libwidgets_a-drange.o: drange.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-drange.o -MD -MP -MF $(DEPDIR)/libwidgets_a-drange.Tpo -c -o libwidgets_a-drange.o `test -f 'drange.cpp' || echo '$(srcdir)/'`drange.cpp
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-drange.Tpo $(DEPDIR)/libwidgets_a-drange.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='drange.cpp' object='libwidgets_a-drange.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-drange.o `test -f 'drange.cpp' || echo '$(srcdir)/'`drange.cpp
+
+libwidgets_a-drange.obj: drange.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-drange.obj -MD -MP -MF $(DEPDIR)/libwidgets_a-drange.Tpo -c -o libwidgets_a-drange.obj `if test -f 'drange.cpp'; then $(CYGPATH_W) 'drange.cpp'; else $(CYGPATH_W) '$(srcdir)/drange.cpp'; fi`
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-drange.Tpo $(DEPDIR)/libwidgets_a-drange.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='drange.cpp' object='libwidgets_a-drange.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-drange.obj `if test -f 'drange.cpp'; then $(CYGPATH_W) 'drange.cpp'; else $(CYGPATH_W) '$(srcdir)/drange.cpp'; fi`
+
+libwidgets_a-sclif.o: sclif.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-sclif.o -MD -MP -MF $(DEPDIR)/libwidgets_a-sclif.Tpo -c -o libwidgets_a-sclif.o `test -f 'sclif.cpp' || echo '$(srcdir)/'`sclif.cpp
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-sclif.Tpo $(DEPDIR)/libwidgets_a-sclif.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='sclif.cpp' object='libwidgets_a-sclif.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-sclif.o `test -f 'sclif.cpp' || echo '$(srcdir)/'`sclif.cpp
+
+libwidgets_a-sclif.obj: sclif.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-sclif.obj -MD -MP -MF $(DEPDIR)/libwidgets_a-sclif.Tpo -c -o libwidgets_a-sclif.obj `if test -f 'sclif.cpp'; then $(CYGPATH_W) 'sclif.cpp'; else $(CYGPATH_W) '$(srcdir)/sclif.cpp'; fi`
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-sclif.Tpo $(DEPDIR)/libwidgets_a-sclif.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='sclif.cpp' object='libwidgets_a-sclif.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-sclif.obj `if test -f 'sclif.cpp'; then $(CYGPATH_W) 'sclif.cpp'; else $(CYGPATH_W) '$(srcdir)/sclif.cpp'; fi`
+
+libwidgets_a-dimap.o: dimap.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-dimap.o -MD -MP -MF $(DEPDIR)/libwidgets_a-dimap.Tpo -c -o libwidgets_a-dimap.o `test -f 'dimap.cpp' || echo '$(srcdir)/'`dimap.cpp
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-dimap.Tpo $(DEPDIR)/libwidgets_a-dimap.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='dimap.cpp' object='libwidgets_a-dimap.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-dimap.o `test -f 'dimap.cpp' || echo '$(srcdir)/'`dimap.cpp
+
+libwidgets_a-dimap.obj: dimap.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-dimap.obj -MD -MP -MF $(DEPDIR)/libwidgets_a-dimap.Tpo -c -o libwidgets_a-dimap.obj `if test -f 'dimap.cpp'; then $(CYGPATH_W) 'dimap.cpp'; else $(CYGPATH_W) '$(srcdir)/dimap.cpp'; fi`
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-dimap.Tpo $(DEPDIR)/libwidgets_a-dimap.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='dimap.cpp' object='libwidgets_a-dimap.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-dimap.obj `if test -f 'dimap.cpp'; then $(CYGPATH_W) 'dimap.cpp'; else $(CYGPATH_W) '$(srcdir)/dimap.cpp'; fi`
+
+libwidgets_a-scldiv.o: scldiv.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-scldiv.o -MD -MP -MF $(DEPDIR)/libwidgets_a-scldiv.Tpo -c -o libwidgets_a-scldiv.o `test -f 'scldiv.cpp' || echo '$(srcdir)/'`scldiv.cpp
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-scldiv.Tpo $(DEPDIR)/libwidgets_a-scldiv.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='scldiv.cpp' object='libwidgets_a-scldiv.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-scldiv.o `test -f 'scldiv.cpp' || echo '$(srcdir)/'`scldiv.cpp
+
+libwidgets_a-scldiv.obj: scldiv.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-scldiv.obj -MD -MP -MF $(DEPDIR)/libwidgets_a-scldiv.Tpo -c -o libwidgets_a-scldiv.obj `if test -f 'scldiv.cpp'; then $(CYGPATH_W) 'scldiv.cpp'; else $(CYGPATH_W) '$(srcdir)/scldiv.cpp'; fi`
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-scldiv.Tpo $(DEPDIR)/libwidgets_a-scldiv.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='scldiv.cpp' object='libwidgets_a-scldiv.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-scldiv.obj `if test -f 'scldiv.cpp'; then $(CYGPATH_W) 'scldiv.cpp'; else $(CYGPATH_W) '$(srcdir)/scldiv.cpp'; fi`
+
+libwidgets_a-mmath.o: mmath.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-mmath.o -MD -MP -MF $(DEPDIR)/libwidgets_a-mmath.Tpo -c -o libwidgets_a-mmath.o `test -f 'mmath.cpp' || echo '$(srcdir)/'`mmath.cpp
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-mmath.Tpo $(DEPDIR)/libwidgets_a-mmath.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='mmath.cpp' object='libwidgets_a-mmath.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-mmath.o `test -f 'mmath.cpp' || echo '$(srcdir)/'`mmath.cpp
+
+libwidgets_a-mmath.obj: mmath.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-mmath.obj -MD -MP -MF $(DEPDIR)/libwidgets_a-mmath.Tpo -c -o libwidgets_a-mmath.obj `if test -f 'mmath.cpp'; then $(CYGPATH_W) 'mmath.cpp'; else $(CYGPATH_W) '$(srcdir)/mmath.cpp'; fi`
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-mmath.Tpo $(DEPDIR)/libwidgets_a-mmath.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='mmath.cpp' object='libwidgets_a-mmath.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-mmath.obj `if test -f 'mmath.cpp'; then $(CYGPATH_W) 'mmath.cpp'; else $(CYGPATH_W) '$(srcdir)/mmath.cpp'; fi`
+
+libwidgets_a-scldraw.o: scldraw.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-scldraw.o -MD -MP -MF $(DEPDIR)/libwidgets_a-scldraw.Tpo -c -o libwidgets_a-scldraw.o `test -f 'scldraw.cpp' || echo '$(srcdir)/'`scldraw.cpp
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-scldraw.Tpo $(DEPDIR)/libwidgets_a-scldraw.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='scldraw.cpp' object='libwidgets_a-scldraw.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-scldraw.o `test -f 'scldraw.cpp' || echo '$(srcdir)/'`scldraw.cpp
+
+libwidgets_a-scldraw.obj: scldraw.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-scldraw.obj -MD -MP -MF $(DEPDIR)/libwidgets_a-scldraw.Tpo -c -o libwidgets_a-scldraw.obj `if test -f 'scldraw.cpp'; then $(CYGPATH_W) 'scldraw.cpp'; else $(CYGPATH_W) '$(srcdir)/scldraw.cpp'; fi`
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-scldraw.Tpo $(DEPDIR)/libwidgets_a-scldraw.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='scldraw.cpp' object='libwidgets_a-scldraw.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-scldraw.obj `if test -f 'scldraw.cpp'; then $(CYGPATH_W) 'scldraw.cpp'; else $(CYGPATH_W) '$(srcdir)/scldraw.cpp'; fi`
+
+libwidgets_a-scrollscale.o: scrollscale.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-scrollscale.o -MD -MP -MF $(DEPDIR)/libwidgets_a-scrollscale.Tpo -c -o libwidgets_a-scrollscale.o `test -f 'scrollscale.cpp' || echo '$(srcdir)/'`scrollscale.cpp
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-scrollscale.Tpo $(DEPDIR)/libwidgets_a-scrollscale.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='scrollscale.cpp' object='libwidgets_a-scrollscale.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-scrollscale.o `test -f 'scrollscale.cpp' || echo '$(srcdir)/'`scrollscale.cpp
+
+libwidgets_a-scrollscale.obj: scrollscale.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-scrollscale.obj -MD -MP -MF $(DEPDIR)/libwidgets_a-scrollscale.Tpo -c -o libwidgets_a-scrollscale.obj `if test -f 'scrollscale.cpp'; then $(CYGPATH_W) 'scrollscale.cpp'; else $(CYGPATH_W) '$(srcdir)/scrollscale.cpp'; fi`
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-scrollscale.Tpo $(DEPDIR)/libwidgets_a-scrollscale.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='scrollscale.cpp' object='libwidgets_a-scrollscale.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-scrollscale.obj `if test -f 'scrollscale.cpp'; then $(CYGPATH_W) 'scrollscale.cpp'; else $(CYGPATH_W) '$(srcdir)/scrollscale.cpp'; fi`
+
+libwidgets_a-view.o: view.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-view.o -MD -MP -MF $(DEPDIR)/libwidgets_a-view.Tpo -c -o libwidgets_a-view.o `test -f 'view.cpp' || echo '$(srcdir)/'`view.cpp
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-view.Tpo $(DEPDIR)/libwidgets_a-view.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='view.cpp' object='libwidgets_a-view.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-view.o `test -f 'view.cpp' || echo '$(srcdir)/'`view.cpp
+
+libwidgets_a-view.obj: view.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-view.obj -MD -MP -MF $(DEPDIR)/libwidgets_a-view.Tpo -c -o libwidgets_a-view.obj `if test -f 'view.cpp'; then $(CYGPATH_W) 'view.cpp'; else $(CYGPATH_W) '$(srcdir)/view.cpp'; fi`
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-view.Tpo $(DEPDIR)/libwidgets_a-view.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='view.cpp' object='libwidgets_a-view.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-view.obj `if test -f 'view.cpp'; then $(CYGPATH_W) 'view.cpp'; else $(CYGPATH_W) '$(srcdir)/view.cpp'; fi`
+
+libwidgets_a-nentry.o: nentry.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-nentry.o -MD -MP -MF $(DEPDIR)/libwidgets_a-nentry.Tpo -c -o libwidgets_a-nentry.o `test -f 'nentry.cpp' || echo '$(srcdir)/'`nentry.cpp
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-nentry.Tpo $(DEPDIR)/libwidgets_a-nentry.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='nentry.cpp' object='libwidgets_a-nentry.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-nentry.o `test -f 'nentry.cpp' || echo '$(srcdir)/'`nentry.cpp
+
+libwidgets_a-nentry.obj: nentry.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-nentry.obj -MD -MP -MF $(DEPDIR)/libwidgets_a-nentry.Tpo -c -o libwidgets_a-nentry.obj `if test -f 'nentry.cpp'; then $(CYGPATH_W) 'nentry.cpp'; else $(CYGPATH_W) '$(srcdir)/nentry.cpp'; fi`
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-nentry.Tpo $(DEPDIR)/libwidgets_a-nentry.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='nentry.cpp' object='libwidgets_a-nentry.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-nentry.obj `if test -f 'nentry.cpp'; then $(CYGPATH_W) 'nentry.cpp'; else $(CYGPATH_W) '$(srcdir)/nentry.cpp'; fi`
+
+libwidgets_a-mtscale.o: mtscale.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-mtscale.o -MD -MP -MF $(DEPDIR)/libwidgets_a-mtscale.Tpo -c -o libwidgets_a-mtscale.o `test -f 'mtscale.cpp' || echo '$(srcdir)/'`mtscale.cpp
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-mtscale.Tpo $(DEPDIR)/libwidgets_a-mtscale.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='mtscale.cpp' object='libwidgets_a-mtscale.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-mtscale.o `test -f 'mtscale.cpp' || echo '$(srcdir)/'`mtscale.cpp
+
+libwidgets_a-mtscale.obj: mtscale.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-mtscale.obj -MD -MP -MF $(DEPDIR)/libwidgets_a-mtscale.Tpo -c -o libwidgets_a-mtscale.obj `if test -f 'mtscale.cpp'; then $(CYGPATH_W) 'mtscale.cpp'; else $(CYGPATH_W) '$(srcdir)/mtscale.cpp'; fi`
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-mtscale.Tpo $(DEPDIR)/libwidgets_a-mtscale.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='mtscale.cpp' object='libwidgets_a-mtscale.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-mtscale.obj `if test -f 'mtscale.cpp'; then $(CYGPATH_W) 'mtscale.cpp'; else $(CYGPATH_W) '$(srcdir)/mtscale.cpp'; fi`
+
+libwidgets_a-sigscale.o: sigscale.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-sigscale.o -MD -MP -MF $(DEPDIR)/libwidgets_a-sigscale.Tpo -c -o libwidgets_a-sigscale.o `test -f 'sigscale.cpp' || echo '$(srcdir)/'`sigscale.cpp
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-sigscale.Tpo $(DEPDIR)/libwidgets_a-sigscale.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='sigscale.cpp' object='libwidgets_a-sigscale.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-sigscale.o `test -f 'sigscale.cpp' || echo '$(srcdir)/'`sigscale.cpp
+
+libwidgets_a-sigscale.obj: sigscale.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-sigscale.obj -MD -MP -MF $(DEPDIR)/libwidgets_a-sigscale.Tpo -c -o libwidgets_a-sigscale.obj `if test -f 'sigscale.cpp'; then $(CYGPATH_W) 'sigscale.cpp'; else $(CYGPATH_W) '$(srcdir)/sigscale.cpp'; fi`
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-sigscale.Tpo $(DEPDIR)/libwidgets_a-sigscale.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='sigscale.cpp' object='libwidgets_a-sigscale.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-sigscale.obj `if test -f 'sigscale.cpp'; then $(CYGPATH_W) 'sigscale.cpp'; else $(CYGPATH_W) '$(srcdir)/sigscale.cpp'; fi`
+
+libwidgets_a-hitscale.o: hitscale.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-hitscale.o -MD -MP -MF $(DEPDIR)/libwidgets_a-hitscale.Tpo -c -o libwidgets_a-hitscale.o `test -f 'hitscale.cpp' || echo '$(srcdir)/'`hitscale.cpp
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-hitscale.Tpo $(DEPDIR)/libwidgets_a-hitscale.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='hitscale.cpp' object='libwidgets_a-hitscale.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-hitscale.o `test -f 'hitscale.cpp' || echo '$(srcdir)/'`hitscale.cpp
+
+libwidgets_a-hitscale.obj: hitscale.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-hitscale.obj -MD -MP -MF $(DEPDIR)/libwidgets_a-hitscale.Tpo -c -o libwidgets_a-hitscale.obj `if test -f 'hitscale.cpp'; then $(CYGPATH_W) 'hitscale.cpp'; else $(CYGPATH_W) '$(srcdir)/hitscale.cpp'; fi`
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-hitscale.Tpo $(DEPDIR)/libwidgets_a-hitscale.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='hitscale.cpp' object='libwidgets_a-hitscale.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-hitscale.obj `if test -f 'hitscale.cpp'; then $(CYGPATH_W) 'hitscale.cpp'; else $(CYGPATH_W) '$(srcdir)/hitscale.cpp'; fi`
+
+libwidgets_a-intlabel.o: intlabel.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-intlabel.o -MD -MP -MF $(DEPDIR)/libwidgets_a-intlabel.Tpo -c -o libwidgets_a-intlabel.o `test -f 'intlabel.cpp' || echo '$(srcdir)/'`intlabel.cpp
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-intlabel.Tpo $(DEPDIR)/libwidgets_a-intlabel.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='intlabel.cpp' object='libwidgets_a-intlabel.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-intlabel.o `test -f 'intlabel.cpp' || echo '$(srcdir)/'`intlabel.cpp
+
+libwidgets_a-intlabel.obj: intlabel.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-intlabel.obj -MD -MP -MF $(DEPDIR)/libwidgets_a-intlabel.Tpo -c -o libwidgets_a-intlabel.obj `if test -f 'intlabel.cpp'; then $(CYGPATH_W) 'intlabel.cpp'; else $(CYGPATH_W) '$(srcdir)/intlabel.cpp'; fi`
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-intlabel.Tpo $(DEPDIR)/libwidgets_a-intlabel.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='intlabel.cpp' object='libwidgets_a-intlabel.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-intlabel.obj `if test -f 'intlabel.cpp'; then $(CYGPATH_W) 'intlabel.cpp'; else $(CYGPATH_W) '$(srcdir)/intlabel.cpp'; fi`
+
+libwidgets_a-doublelabel.o: doublelabel.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-doublelabel.o -MD -MP -MF $(DEPDIR)/libwidgets_a-doublelabel.Tpo -c -o libwidgets_a-doublelabel.o `test -f 'doublelabel.cpp' || echo '$(srcdir)/'`doublelabel.cpp
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-doublelabel.Tpo $(DEPDIR)/libwidgets_a-doublelabel.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='doublelabel.cpp' object='libwidgets_a-doublelabel.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-doublelabel.o `test -f 'doublelabel.cpp' || echo '$(srcdir)/'`doublelabel.cpp
+
+libwidgets_a-doublelabel.obj: doublelabel.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-doublelabel.obj -MD -MP -MF $(DEPDIR)/libwidgets_a-doublelabel.Tpo -c -o libwidgets_a-doublelabel.obj `if test -f 'doublelabel.cpp'; then $(CYGPATH_W) 'doublelabel.cpp'; else $(CYGPATH_W) '$(srcdir)/doublelabel.cpp'; fi`
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-doublelabel.Tpo $(DEPDIR)/libwidgets_a-doublelabel.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='doublelabel.cpp' object='libwidgets_a-doublelabel.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-doublelabel.obj `if test -f 'doublelabel.cpp'; then $(CYGPATH_W) 'doublelabel.cpp'; else $(CYGPATH_W) '$(srcdir)/doublelabel.cpp'; fi`
+
+libwidgets_a-canvas.o: canvas.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-canvas.o -MD -MP -MF $(DEPDIR)/libwidgets_a-canvas.Tpo -c -o libwidgets_a-canvas.o `test -f 'canvas.cpp' || echo '$(srcdir)/'`canvas.cpp
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-canvas.Tpo $(DEPDIR)/libwidgets_a-canvas.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='canvas.cpp' object='libwidgets_a-canvas.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-canvas.o `test -f 'canvas.cpp' || echo '$(srcdir)/'`canvas.cpp
+
+libwidgets_a-canvas.obj: canvas.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-canvas.obj -MD -MP -MF $(DEPDIR)/libwidgets_a-canvas.Tpo -c -o libwidgets_a-canvas.obj `if test -f 'canvas.cpp'; then $(CYGPATH_W) 'canvas.cpp'; else $(CYGPATH_W) '$(srcdir)/canvas.cpp'; fi`
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-canvas.Tpo $(DEPDIR)/libwidgets_a-canvas.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='canvas.cpp' object='libwidgets_a-canvas.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-canvas.obj `if test -f 'canvas.cpp'; then $(CYGPATH_W) 'canvas.cpp'; else $(CYGPATH_W) '$(srcdir)/canvas.cpp'; fi`
+
+libwidgets_a-noteinfo.o: noteinfo.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-noteinfo.o -MD -MP -MF $(DEPDIR)/libwidgets_a-noteinfo.Tpo -c -o libwidgets_a-noteinfo.o `test -f 'noteinfo.cpp' || echo '$(srcdir)/'`noteinfo.cpp
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-noteinfo.Tpo $(DEPDIR)/libwidgets_a-noteinfo.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='noteinfo.cpp' object='libwidgets_a-noteinfo.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-noteinfo.o `test -f 'noteinfo.cpp' || echo '$(srcdir)/'`noteinfo.cpp
+
+libwidgets_a-noteinfo.obj: noteinfo.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-noteinfo.obj -MD -MP -MF $(DEPDIR)/libwidgets_a-noteinfo.Tpo -c -o libwidgets_a-noteinfo.obj `if test -f 'noteinfo.cpp'; then $(CYGPATH_W) 'noteinfo.cpp'; else $(CYGPATH_W) '$(srcdir)/noteinfo.cpp'; fi`
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-noteinfo.Tpo $(DEPDIR)/libwidgets_a-noteinfo.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='noteinfo.cpp' object='libwidgets_a-noteinfo.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-noteinfo.obj `if test -f 'noteinfo.cpp'; then $(CYGPATH_W) 'noteinfo.cpp'; else $(CYGPATH_W) '$(srcdir)/noteinfo.cpp'; fi`
+
+libwidgets_a-dentry.o: dentry.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-dentry.o -MD -MP -MF $(DEPDIR)/libwidgets_a-dentry.Tpo -c -o libwidgets_a-dentry.o `test -f 'dentry.cpp' || echo '$(srcdir)/'`dentry.cpp
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-dentry.Tpo $(DEPDIR)/libwidgets_a-dentry.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='dentry.cpp' object='libwidgets_a-dentry.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-dentry.o `test -f 'dentry.cpp' || echo '$(srcdir)/'`dentry.cpp
+
+libwidgets_a-dentry.obj: dentry.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-dentry.obj -MD -MP -MF $(DEPDIR)/libwidgets_a-dentry.Tpo -c -o libwidgets_a-dentry.obj `if test -f 'dentry.cpp'; then $(CYGPATH_W) 'dentry.cpp'; else $(CYGPATH_W) '$(srcdir)/dentry.cpp'; fi`
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-dentry.Tpo $(DEPDIR)/libwidgets_a-dentry.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='dentry.cpp' object='libwidgets_a-dentry.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-dentry.obj `if test -f 'dentry.cpp'; then $(CYGPATH_W) 'dentry.cpp'; else $(CYGPATH_W) '$(srcdir)/dentry.cpp'; fi`
+
+libwidgets_a-siglabel.o: siglabel.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-siglabel.o -MD -MP -MF $(DEPDIR)/libwidgets_a-siglabel.Tpo -c -o libwidgets_a-siglabel.o `test -f 'siglabel.cpp' || echo '$(srcdir)/'`siglabel.cpp
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-siglabel.Tpo $(DEPDIR)/libwidgets_a-siglabel.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='siglabel.cpp' object='libwidgets_a-siglabel.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-siglabel.o `test -f 'siglabel.cpp' || echo '$(srcdir)/'`siglabel.cpp
+
+libwidgets_a-siglabel.obj: siglabel.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-siglabel.obj -MD -MP -MF $(DEPDIR)/libwidgets_a-siglabel.Tpo -c -o libwidgets_a-siglabel.obj `if test -f 'siglabel.cpp'; then $(CYGPATH_W) 'siglabel.cpp'; else $(CYGPATH_W) '$(srcdir)/siglabel.cpp'; fi`
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-siglabel.Tpo $(DEPDIR)/libwidgets_a-siglabel.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='siglabel.cpp' object='libwidgets_a-siglabel.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-siglabel.obj `if test -f 'siglabel.cpp'; then $(CYGPATH_W) 'siglabel.cpp'; else $(CYGPATH_W) '$(srcdir)/siglabel.cpp'; fi`
+
+libwidgets_a-ttoolbar.o: ttoolbar.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-ttoolbar.o -MD -MP -MF $(DEPDIR)/libwidgets_a-ttoolbar.Tpo -c -o libwidgets_a-ttoolbar.o `test -f 'ttoolbar.cpp' || echo '$(srcdir)/'`ttoolbar.cpp
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-ttoolbar.Tpo $(DEPDIR)/libwidgets_a-ttoolbar.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ttoolbar.cpp' object='libwidgets_a-ttoolbar.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-ttoolbar.o `test -f 'ttoolbar.cpp' || echo '$(srcdir)/'`ttoolbar.cpp
+
+libwidgets_a-ttoolbar.obj: ttoolbar.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-ttoolbar.obj -MD -MP -MF $(DEPDIR)/libwidgets_a-ttoolbar.Tpo -c -o libwidgets_a-ttoolbar.obj `if test -f 'ttoolbar.cpp'; then $(CYGPATH_W) 'ttoolbar.cpp'; else $(CYGPATH_W) '$(srcdir)/ttoolbar.cpp'; fi`
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-ttoolbar.Tpo $(DEPDIR)/libwidgets_a-ttoolbar.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ttoolbar.cpp' object='libwidgets_a-ttoolbar.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-ttoolbar.obj `if test -f 'ttoolbar.cpp'; then $(CYGPATH_W) 'ttoolbar.cpp'; else $(CYGPATH_W) '$(srcdir)/ttoolbar.cpp'; fi`
+
+libwidgets_a-ttoolbutton.o: ttoolbutton.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-ttoolbutton.o -MD -MP -MF $(DEPDIR)/libwidgets_a-ttoolbutton.Tpo -c -o libwidgets_a-ttoolbutton.o `test -f 'ttoolbutton.cpp' || echo '$(srcdir)/'`ttoolbutton.cpp
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-ttoolbutton.Tpo $(DEPDIR)/libwidgets_a-ttoolbutton.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ttoolbutton.cpp' object='libwidgets_a-ttoolbutton.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-ttoolbutton.o `test -f 'ttoolbutton.cpp' || echo '$(srcdir)/'`ttoolbutton.cpp
+
+libwidgets_a-ttoolbutton.obj: ttoolbutton.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-ttoolbutton.obj -MD -MP -MF $(DEPDIR)/libwidgets_a-ttoolbutton.Tpo -c -o libwidgets_a-ttoolbutton.obj `if test -f 'ttoolbutton.cpp'; then $(CYGPATH_W) 'ttoolbutton.cpp'; else $(CYGPATH_W) '$(srcdir)/ttoolbutton.cpp'; fi`
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-ttoolbutton.Tpo $(DEPDIR)/libwidgets_a-ttoolbutton.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ttoolbutton.cpp' object='libwidgets_a-ttoolbutton.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-ttoolbutton.obj `if test -f 'ttoolbutton.cpp'; then $(CYGPATH_W) 'ttoolbutton.cpp'; else $(CYGPATH_W) '$(srcdir)/ttoolbutton.cpp'; fi`
+
+libwidgets_a-tb1.o: tb1.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-tb1.o -MD -MP -MF $(DEPDIR)/libwidgets_a-tb1.Tpo -c -o libwidgets_a-tb1.o `test -f 'tb1.cpp' || echo '$(srcdir)/'`tb1.cpp
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-tb1.Tpo $(DEPDIR)/libwidgets_a-tb1.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='tb1.cpp' object='libwidgets_a-tb1.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-tb1.o `test -f 'tb1.cpp' || echo '$(srcdir)/'`tb1.cpp
+
+libwidgets_a-tb1.obj: tb1.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-tb1.obj -MD -MP -MF $(DEPDIR)/libwidgets_a-tb1.Tpo -c -o libwidgets_a-tb1.obj `if test -f 'tb1.cpp'; then $(CYGPATH_W) 'tb1.cpp'; else $(CYGPATH_W) '$(srcdir)/tb1.cpp'; fi`
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-tb1.Tpo $(DEPDIR)/libwidgets_a-tb1.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='tb1.cpp' object='libwidgets_a-tb1.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-tb1.obj `if test -f 'tb1.cpp'; then $(CYGPATH_W) 'tb1.cpp'; else $(CYGPATH_W) '$(srcdir)/tb1.cpp'; fi`
+
+libwidgets_a-lcombo.o: lcombo.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-lcombo.o -MD -MP -MF $(DEPDIR)/libwidgets_a-lcombo.Tpo -c -o libwidgets_a-lcombo.o `test -f 'lcombo.cpp' || echo '$(srcdir)/'`lcombo.cpp
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-lcombo.Tpo $(DEPDIR)/libwidgets_a-lcombo.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='lcombo.cpp' object='libwidgets_a-lcombo.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-lcombo.o `test -f 'lcombo.cpp' || echo '$(srcdir)/'`lcombo.cpp
+
+libwidgets_a-lcombo.obj: lcombo.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-lcombo.obj -MD -MP -MF $(DEPDIR)/libwidgets_a-lcombo.Tpo -c -o libwidgets_a-lcombo.obj `if test -f 'lcombo.cpp'; then $(CYGPATH_W) 'lcombo.cpp'; else $(CYGPATH_W) '$(srcdir)/lcombo.cpp'; fi`
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-lcombo.Tpo $(DEPDIR)/libwidgets_a-lcombo.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='lcombo.cpp' object='libwidgets_a-lcombo.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-lcombo.obj `if test -f 'lcombo.cpp'; then $(CYGPATH_W) 'lcombo.cpp'; else $(CYGPATH_W) '$(srcdir)/lcombo.cpp'; fi`
+
+libwidgets_a-swidget.o: swidget.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-swidget.o -MD -MP -MF $(DEPDIR)/libwidgets_a-swidget.Tpo -c -o libwidgets_a-swidget.o `test -f 'swidget.cpp' || echo '$(srcdir)/'`swidget.cpp
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-swidget.Tpo $(DEPDIR)/libwidgets_a-swidget.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='swidget.cpp' object='libwidgets_a-swidget.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-swidget.o `test -f 'swidget.cpp' || echo '$(srcdir)/'`swidget.cpp
+
+libwidgets_a-swidget.obj: swidget.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-swidget.obj -MD -MP -MF $(DEPDIR)/libwidgets_a-swidget.Tpo -c -o libwidgets_a-swidget.obj `if test -f 'swidget.cpp'; then $(CYGPATH_W) 'swidget.cpp'; else $(CYGPATH_W) '$(srcdir)/swidget.cpp'; fi`
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-swidget.Tpo $(DEPDIR)/libwidgets_a-swidget.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='swidget.cpp' object='libwidgets_a-swidget.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-swidget.obj `if test -f 'swidget.cpp'; then $(CYGPATH_W) 'swidget.cpp'; else $(CYGPATH_W) '$(srcdir)/swidget.cpp'; fi`
+
+libwidgets_a-tempolabel.o: tempolabel.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-tempolabel.o -MD -MP -MF $(DEPDIR)/libwidgets_a-tempolabel.Tpo -c -o libwidgets_a-tempolabel.o `test -f 'tempolabel.cpp' || echo '$(srcdir)/'`tempolabel.cpp
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-tempolabel.Tpo $(DEPDIR)/libwidgets_a-tempolabel.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='tempolabel.cpp' object='libwidgets_a-tempolabel.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-tempolabel.o `test -f 'tempolabel.cpp' || echo '$(srcdir)/'`tempolabel.cpp
+
+libwidgets_a-tempolabel.obj: tempolabel.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-tempolabel.obj -MD -MP -MF $(DEPDIR)/libwidgets_a-tempolabel.Tpo -c -o libwidgets_a-tempolabel.obj `if test -f 'tempolabel.cpp'; then $(CYGPATH_W) 'tempolabel.cpp'; else $(CYGPATH_W) '$(srcdir)/tempolabel.cpp'; fi`
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-tempolabel.Tpo $(DEPDIR)/libwidgets_a-tempolabel.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='tempolabel.cpp' object='libwidgets_a-tempolabel.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-tempolabel.obj `if test -f 'tempolabel.cpp'; then $(CYGPATH_W) 'tempolabel.cpp'; else $(CYGPATH_W) '$(srcdir)/tempolabel.cpp'; fi`
+
+libwidgets_a-tools.o: tools.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-tools.o -MD -MP -MF $(DEPDIR)/libwidgets_a-tools.Tpo -c -o libwidgets_a-tools.o `test -f 'tools.cpp' || echo '$(srcdir)/'`tools.cpp
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-tools.Tpo $(DEPDIR)/libwidgets_a-tools.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='tools.cpp' object='libwidgets_a-tools.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-tools.o `test -f 'tools.cpp' || echo '$(srcdir)/'`tools.cpp
+
+libwidgets_a-tools.obj: tools.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-tools.obj -MD -MP -MF $(DEPDIR)/libwidgets_a-tools.Tpo -c -o libwidgets_a-tools.obj `if test -f 'tools.cpp'; then $(CYGPATH_W) 'tools.cpp'; else $(CYGPATH_W) '$(srcdir)/tools.cpp'; fi`
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-tools.Tpo $(DEPDIR)/libwidgets_a-tools.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='tools.cpp' object='libwidgets_a-tools.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-tools.obj `if test -f 'tools.cpp'; then $(CYGPATH_W) 'tools.cpp'; else $(CYGPATH_W) '$(srcdir)/tools.cpp'; fi`
+
+libwidgets_a-fontsel.o: fontsel.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-fontsel.o -MD -MP -MF $(DEPDIR)/libwidgets_a-fontsel.Tpo -c -o libwidgets_a-fontsel.o `test -f 'fontsel.cpp' || echo '$(srcdir)/'`fontsel.cpp
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-fontsel.Tpo $(DEPDIR)/libwidgets_a-fontsel.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='fontsel.cpp' object='libwidgets_a-fontsel.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-fontsel.o `test -f 'fontsel.cpp' || echo '$(srcdir)/'`fontsel.cpp
+
+libwidgets_a-fontsel.obj: fontsel.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-fontsel.obj -MD -MP -MF $(DEPDIR)/libwidgets_a-fontsel.Tpo -c -o libwidgets_a-fontsel.obj `if test -f 'fontsel.cpp'; then $(CYGPATH_W) 'fontsel.cpp'; else $(CYGPATH_W) '$(srcdir)/fontsel.cpp'; fi`
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-fontsel.Tpo $(DEPDIR)/libwidgets_a-fontsel.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='fontsel.cpp' object='libwidgets_a-fontsel.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-fontsel.obj `if test -f 'fontsel.cpp'; then $(CYGPATH_W) 'fontsel.cpp'; else $(CYGPATH_W) '$(srcdir)/fontsel.cpp'; fi`
+
+libwidgets_a-ctrlcombo.o: ctrlcombo.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-ctrlcombo.o -MD -MP -MF $(DEPDIR)/libwidgets_a-ctrlcombo.Tpo -c -o libwidgets_a-ctrlcombo.o `test -f 'ctrlcombo.cpp' || echo '$(srcdir)/'`ctrlcombo.cpp
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-ctrlcombo.Tpo $(DEPDIR)/libwidgets_a-ctrlcombo.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ctrlcombo.cpp' object='libwidgets_a-ctrlcombo.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-ctrlcombo.o `test -f 'ctrlcombo.cpp' || echo '$(srcdir)/'`ctrlcombo.cpp
+
+libwidgets_a-ctrlcombo.obj: ctrlcombo.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-ctrlcombo.obj -MD -MP -MF $(DEPDIR)/libwidgets_a-ctrlcombo.Tpo -c -o libwidgets_a-ctrlcombo.obj `if test -f 'ctrlcombo.cpp'; then $(CYGPATH_W) 'ctrlcombo.cpp'; else $(CYGPATH_W) '$(srcdir)/ctrlcombo.cpp'; fi`
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-ctrlcombo.Tpo $(DEPDIR)/libwidgets_a-ctrlcombo.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='ctrlcombo.cpp' object='libwidgets_a-ctrlcombo.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-ctrlcombo.obj `if test -f 'ctrlcombo.cpp'; then $(CYGPATH_W) 'ctrlcombo.cpp'; else $(CYGPATH_W) '$(srcdir)/ctrlcombo.cpp'; fi`
+
+libwidgets_a-sliderbase.o: sliderbase.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-sliderbase.o -MD -MP -MF $(DEPDIR)/libwidgets_a-sliderbase.Tpo -c -o libwidgets_a-sliderbase.o `test -f 'sliderbase.cpp' || echo '$(srcdir)/'`sliderbase.cpp
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-sliderbase.Tpo $(DEPDIR)/libwidgets_a-sliderbase.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='sliderbase.cpp' object='libwidgets_a-sliderbase.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-sliderbase.o `test -f 'sliderbase.cpp' || echo '$(srcdir)/'`sliderbase.cpp
+
+libwidgets_a-sliderbase.obj: sliderbase.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-sliderbase.obj -MD -MP -MF $(DEPDIR)/libwidgets_a-sliderbase.Tpo -c -o libwidgets_a-sliderbase.obj `if test -f 'sliderbase.cpp'; then $(CYGPATH_W) 'sliderbase.cpp'; else $(CYGPATH_W) '$(srcdir)/sliderbase.cpp'; fi`
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-sliderbase.Tpo $(DEPDIR)/libwidgets_a-sliderbase.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='sliderbase.cpp' object='libwidgets_a-sliderbase.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-sliderbase.obj `if test -f 'sliderbase.cpp'; then $(CYGPATH_W) 'sliderbase.cpp'; else $(CYGPATH_W) '$(srcdir)/sliderbase.cpp'; fi`
+
+libwidgets_a-slider.o: slider.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-slider.o -MD -MP -MF $(DEPDIR)/libwidgets_a-slider.Tpo -c -o libwidgets_a-slider.o `test -f 'slider.cpp' || echo '$(srcdir)/'`slider.cpp
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-slider.Tpo $(DEPDIR)/libwidgets_a-slider.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='slider.cpp' object='libwidgets_a-slider.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-slider.o `test -f 'slider.cpp' || echo '$(srcdir)/'`slider.cpp
+
+libwidgets_a-slider.obj: slider.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-slider.obj -MD -MP -MF $(DEPDIR)/libwidgets_a-slider.Tpo -c -o libwidgets_a-slider.obj `if test -f 'slider.cpp'; then $(CYGPATH_W) 'slider.cpp'; else $(CYGPATH_W) '$(srcdir)/slider.cpp'; fi`
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-slider.Tpo $(DEPDIR)/libwidgets_a-slider.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='slider.cpp' object='libwidgets_a-slider.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-slider.obj `if test -f 'slider.cpp'; then $(CYGPATH_W) 'slider.cpp'; else $(CYGPATH_W) '$(srcdir)/slider.cpp'; fi`
+
+libwidgets_a-midisyncimpl.o: midisyncimpl.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-midisyncimpl.o -MD -MP -MF $(DEPDIR)/libwidgets_a-midisyncimpl.Tpo -c -o libwidgets_a-midisyncimpl.o `test -f 'midisyncimpl.cpp' || echo '$(srcdir)/'`midisyncimpl.cpp
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-midisyncimpl.Tpo $(DEPDIR)/libwidgets_a-midisyncimpl.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='midisyncimpl.cpp' object='libwidgets_a-midisyncimpl.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-midisyncimpl.o `test -f 'midisyncimpl.cpp' || echo '$(srcdir)/'`midisyncimpl.cpp
+
+libwidgets_a-midisyncimpl.obj: midisyncimpl.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-midisyncimpl.obj -MD -MP -MF $(DEPDIR)/libwidgets_a-midisyncimpl.Tpo -c -o libwidgets_a-midisyncimpl.obj `if test -f 'midisyncimpl.cpp'; then $(CYGPATH_W) 'midisyncimpl.cpp'; else $(CYGPATH_W) '$(srcdir)/midisyncimpl.cpp'; fi`
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-midisyncimpl.Tpo $(DEPDIR)/libwidgets_a-midisyncimpl.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='midisyncimpl.cpp' object='libwidgets_a-midisyncimpl.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-midisyncimpl.obj `if test -f 'midisyncimpl.cpp'; then $(CYGPATH_W) 'midisyncimpl.cpp'; else $(CYGPATH_W) '$(srcdir)/midisyncimpl.cpp'; fi`
+
+libwidgets_a-header.o: header.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-header.o -MD -MP -MF $(DEPDIR)/libwidgets_a-header.Tpo -c -o libwidgets_a-header.o `test -f 'header.cpp' || echo '$(srcdir)/'`header.cpp
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-header.Tpo $(DEPDIR)/libwidgets_a-header.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='header.cpp' object='libwidgets_a-header.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-header.o `test -f 'header.cpp' || echo '$(srcdir)/'`header.cpp
+
+libwidgets_a-header.obj: header.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-header.obj -MD -MP -MF $(DEPDIR)/libwidgets_a-header.Tpo -c -o libwidgets_a-header.obj `if test -f 'header.cpp'; then $(CYGPATH_W) 'header.cpp'; else $(CYGPATH_W) '$(srcdir)/header.cpp'; fi`
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-header.Tpo $(DEPDIR)/libwidgets_a-header.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='header.cpp' object='libwidgets_a-header.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-header.obj `if test -f 'header.cpp'; then $(CYGPATH_W) 'header.cpp'; else $(CYGPATH_W) '$(srcdir)/header.cpp'; fi`
+
+libwidgets_a-knob.o: knob.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-knob.o -MD -MP -MF $(DEPDIR)/libwidgets_a-knob.Tpo -c -o libwidgets_a-knob.o `test -f 'knob.cpp' || echo '$(srcdir)/'`knob.cpp
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-knob.Tpo $(DEPDIR)/libwidgets_a-knob.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='knob.cpp' object='libwidgets_a-knob.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-knob.o `test -f 'knob.cpp' || echo '$(srcdir)/'`knob.cpp
+
+libwidgets_a-knob.obj: knob.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-knob.obj -MD -MP -MF $(DEPDIR)/libwidgets_a-knob.Tpo -c -o libwidgets_a-knob.obj `if test -f 'knob.cpp'; then $(CYGPATH_W) 'knob.cpp'; else $(CYGPATH_W) '$(srcdir)/knob.cpp'; fi`
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-knob.Tpo $(DEPDIR)/libwidgets_a-knob.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='knob.cpp' object='libwidgets_a-knob.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-knob.obj `if test -f 'knob.cpp'; then $(CYGPATH_W) 'knob.cpp'; else $(CYGPATH_W) '$(srcdir)/knob.cpp'; fi`
+
+libwidgets_a-mlabel.o: mlabel.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-mlabel.o -MD -MP -MF $(DEPDIR)/libwidgets_a-mlabel.Tpo -c -o libwidgets_a-mlabel.o `test -f 'mlabel.cpp' || echo '$(srcdir)/'`mlabel.cpp
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-mlabel.Tpo $(DEPDIR)/libwidgets_a-mlabel.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='mlabel.cpp' object='libwidgets_a-mlabel.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-mlabel.o `test -f 'mlabel.cpp' || echo '$(srcdir)/'`mlabel.cpp
+
+libwidgets_a-mlabel.obj: mlabel.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-mlabel.obj -MD -MP -MF $(DEPDIR)/libwidgets_a-mlabel.Tpo -c -o libwidgets_a-mlabel.obj `if test -f 'mlabel.cpp'; then $(CYGPATH_W) 'mlabel.cpp'; else $(CYGPATH_W) '$(srcdir)/mlabel.cpp'; fi`
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-mlabel.Tpo $(DEPDIR)/libwidgets_a-mlabel.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='mlabel.cpp' object='libwidgets_a-mlabel.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-mlabel.obj `if test -f 'mlabel.cpp'; then $(CYGPATH_W) 'mlabel.cpp'; else $(CYGPATH_W) '$(srcdir)/mlabel.cpp'; fi`
+
+libwidgets_a-genset.o: genset.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-genset.o -MD -MP -MF $(DEPDIR)/libwidgets_a-genset.Tpo -c -o libwidgets_a-genset.o `test -f 'genset.cpp' || echo '$(srcdir)/'`genset.cpp
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-genset.Tpo $(DEPDIR)/libwidgets_a-genset.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='genset.cpp' object='libwidgets_a-genset.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-genset.o `test -f 'genset.cpp' || echo '$(srcdir)/'`genset.cpp
+
+libwidgets_a-genset.obj: genset.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-genset.obj -MD -MP -MF $(DEPDIR)/libwidgets_a-genset.Tpo -c -o libwidgets_a-genset.obj `if test -f 'genset.cpp'; then $(CYGPATH_W) 'genset.cpp'; else $(CYGPATH_W) '$(srcdir)/genset.cpp'; fi`
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-genset.Tpo $(DEPDIR)/libwidgets_a-genset.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='genset.cpp' object='libwidgets_a-genset.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-genset.obj `if test -f 'genset.cpp'; then $(CYGPATH_W) 'genset.cpp'; else $(CYGPATH_W) '$(srcdir)/genset.cpp'; fi`
+
+libwidgets_a-mixdowndialog.o: mixdowndialog.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-mixdowndialog.o -MD -MP -MF $(DEPDIR)/libwidgets_a-mixdowndialog.Tpo -c -o libwidgets_a-mixdowndialog.o `test -f 'mixdowndialog.cpp' || echo '$(srcdir)/'`mixdowndialog.cpp
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-mixdowndialog.Tpo $(DEPDIR)/libwidgets_a-mixdowndialog.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='mixdowndialog.cpp' object='libwidgets_a-mixdowndialog.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-mixdowndialog.o `test -f 'mixdowndialog.cpp' || echo '$(srcdir)/'`mixdowndialog.cpp
+
+libwidgets_a-mixdowndialog.obj: mixdowndialog.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-mixdowndialog.obj -MD -MP -MF $(DEPDIR)/libwidgets_a-mixdowndialog.Tpo -c -o libwidgets_a-mixdowndialog.obj `if test -f 'mixdowndialog.cpp'; then $(CYGPATH_W) 'mixdowndialog.cpp'; else $(CYGPATH_W) '$(srcdir)/mixdowndialog.cpp'; fi`
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-mixdowndialog.Tpo $(DEPDIR)/libwidgets_a-mixdowndialog.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='mixdowndialog.cpp' object='libwidgets_a-mixdowndialog.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-mixdowndialog.obj `if test -f 'mixdowndialog.cpp'; then $(CYGPATH_W) 'mixdowndialog.cpp'; else $(CYGPATH_W) '$(srcdir)/mixdowndialog.cpp'; fi`
+
+libwidgets_a-spinboxFP.o: spinboxFP.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-spinboxFP.o -MD -MP -MF $(DEPDIR)/libwidgets_a-spinboxFP.Tpo -c -o libwidgets_a-spinboxFP.o `test -f 'spinboxFP.cpp' || echo '$(srcdir)/'`spinboxFP.cpp
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-spinboxFP.Tpo $(DEPDIR)/libwidgets_a-spinboxFP.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='spinboxFP.cpp' object='libwidgets_a-spinboxFP.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-spinboxFP.o `test -f 'spinboxFP.cpp' || echo '$(srcdir)/'`spinboxFP.cpp
+
+libwidgets_a-spinboxFP.obj: spinboxFP.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-spinboxFP.obj -MD -MP -MF $(DEPDIR)/libwidgets_a-spinboxFP.Tpo -c -o libwidgets_a-spinboxFP.obj `if test -f 'spinboxFP.cpp'; then $(CYGPATH_W) 'spinboxFP.cpp'; else $(CYGPATH_W) '$(srcdir)/spinboxFP.cpp'; fi`
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-spinboxFP.Tpo $(DEPDIR)/libwidgets_a-spinboxFP.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='spinboxFP.cpp' object='libwidgets_a-spinboxFP.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-spinboxFP.obj `if test -f 'spinboxFP.cpp'; then $(CYGPATH_W) 'spinboxFP.cpp'; else $(CYGPATH_W) '$(srcdir)/spinboxFP.cpp'; fi`
+
+libwidgets_a-spinbox.o: spinbox.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-spinbox.o -MD -MP -MF $(DEPDIR)/libwidgets_a-spinbox.Tpo -c -o libwidgets_a-spinbox.o `test -f 'spinbox.cpp' || echo '$(srcdir)/'`spinbox.cpp
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-spinbox.Tpo $(DEPDIR)/libwidgets_a-spinbox.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='spinbox.cpp' object='libwidgets_a-spinbox.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-spinbox.o `test -f 'spinbox.cpp' || echo '$(srcdir)/'`spinbox.cpp
+
+libwidgets_a-spinbox.obj: spinbox.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-spinbox.obj -MD -MP -MF $(DEPDIR)/libwidgets_a-spinbox.Tpo -c -o libwidgets_a-spinbox.obj `if test -f 'spinbox.cpp'; then $(CYGPATH_W) 'spinbox.cpp'; else $(CYGPATH_W) '$(srcdir)/spinbox.cpp'; fi`
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-spinbox.Tpo $(DEPDIR)/libwidgets_a-spinbox.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='spinbox.cpp' object='libwidgets_a-spinbox.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-spinbox.obj `if test -f 'spinbox.cpp'; then $(CYGPATH_W) 'spinbox.cpp'; else $(CYGPATH_W) '$(srcdir)/spinbox.cpp'; fi`
+
+libwidgets_a-comboQuant.o: comboQuant.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-comboQuant.o -MD -MP -MF $(DEPDIR)/libwidgets_a-comboQuant.Tpo -c -o libwidgets_a-comboQuant.o `test -f 'comboQuant.cpp' || echo '$(srcdir)/'`comboQuant.cpp
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-comboQuant.Tpo $(DEPDIR)/libwidgets_a-comboQuant.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='comboQuant.cpp' object='libwidgets_a-comboQuant.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-comboQuant.o `test -f 'comboQuant.cpp' || echo '$(srcdir)/'`comboQuant.cpp
+
+libwidgets_a-comboQuant.obj: comboQuant.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-comboQuant.obj -MD -MP -MF $(DEPDIR)/libwidgets_a-comboQuant.Tpo -c -o libwidgets_a-comboQuant.obj `if test -f 'comboQuant.cpp'; then $(CYGPATH_W) 'comboQuant.cpp'; else $(CYGPATH_W) '$(srcdir)/comboQuant.cpp'; fi`
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-comboQuant.Tpo $(DEPDIR)/libwidgets_a-comboQuant.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='comboQuant.cpp' object='libwidgets_a-comboQuant.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-comboQuant.obj `if test -f 'comboQuant.cpp'; then $(CYGPATH_W) 'comboQuant.cpp'; else $(CYGPATH_W) '$(srcdir)/comboQuant.cpp'; fi`
+
+libwidgets_a-bigtime.o: bigtime.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-bigtime.o -MD -MP -MF $(DEPDIR)/libwidgets_a-bigtime.Tpo -c -o libwidgets_a-bigtime.o `test -f 'bigtime.cpp' || echo '$(srcdir)/'`bigtime.cpp
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-bigtime.Tpo $(DEPDIR)/libwidgets_a-bigtime.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='bigtime.cpp' object='libwidgets_a-bigtime.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-bigtime.o `test -f 'bigtime.cpp' || echo '$(srcdir)/'`bigtime.cpp
+
+libwidgets_a-bigtime.obj: bigtime.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-bigtime.obj -MD -MP -MF $(DEPDIR)/libwidgets_a-bigtime.Tpo -c -o libwidgets_a-bigtime.obj `if test -f 'bigtime.cpp'; then $(CYGPATH_W) 'bigtime.cpp'; else $(CYGPATH_W) '$(srcdir)/bigtime.cpp'; fi`
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-bigtime.Tpo $(DEPDIR)/libwidgets_a-bigtime.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='bigtime.cpp' object='libwidgets_a-bigtime.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-bigtime.obj `if test -f 'bigtime.cpp'; then $(CYGPATH_W) 'bigtime.cpp'; else $(CYGPATH_W) '$(srcdir)/bigtime.cpp'; fi`
+
+libwidgets_a-comment.o: comment.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-comment.o -MD -MP -MF $(DEPDIR)/libwidgets_a-comment.Tpo -c -o libwidgets_a-comment.o `test -f 'comment.cpp' || echo '$(srcdir)/'`comment.cpp
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-comment.Tpo $(DEPDIR)/libwidgets_a-comment.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='comment.cpp' object='libwidgets_a-comment.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-comment.o `test -f 'comment.cpp' || echo '$(srcdir)/'`comment.cpp
+
+libwidgets_a-comment.obj: comment.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-comment.obj -MD -MP -MF $(DEPDIR)/libwidgets_a-comment.Tpo -c -o libwidgets_a-comment.obj `if test -f 'comment.cpp'; then $(CYGPATH_W) 'comment.cpp'; else $(CYGPATH_W) '$(srcdir)/comment.cpp'; fi`
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-comment.Tpo $(DEPDIR)/libwidgets_a-comment.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='comment.cpp' object='libwidgets_a-comment.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-comment.obj `if test -f 'comment.cpp'; then $(CYGPATH_W) 'comment.cpp'; else $(CYGPATH_W) '$(srcdir)/comment.cpp'; fi`
+
+libwidgets_a-splitter.o: splitter.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-splitter.o -MD -MP -MF $(DEPDIR)/libwidgets_a-splitter.Tpo -c -o libwidgets_a-splitter.o `test -f 'splitter.cpp' || echo '$(srcdir)/'`splitter.cpp
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-splitter.Tpo $(DEPDIR)/libwidgets_a-splitter.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='splitter.cpp' object='libwidgets_a-splitter.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-splitter.o `test -f 'splitter.cpp' || echo '$(srcdir)/'`splitter.cpp
+
+libwidgets_a-splitter.obj: splitter.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-splitter.obj -MD -MP -MF $(DEPDIR)/libwidgets_a-splitter.Tpo -c -o libwidgets_a-splitter.obj `if test -f 'splitter.cpp'; then $(CYGPATH_W) 'splitter.cpp'; else $(CYGPATH_W) '$(srcdir)/splitter.cpp'; fi`
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-splitter.Tpo $(DEPDIR)/libwidgets_a-splitter.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='splitter.cpp' object='libwidgets_a-splitter.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-splitter.obj `if test -f 'splitter.cpp'; then $(CYGPATH_W) 'splitter.cpp'; else $(CYGPATH_W) '$(srcdir)/splitter.cpp'; fi`
+
+libwidgets_a-gatetime.o: gatetime.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-gatetime.o -MD -MP -MF $(DEPDIR)/libwidgets_a-gatetime.Tpo -c -o libwidgets_a-gatetime.o `test -f 'gatetime.cpp' || echo '$(srcdir)/'`gatetime.cpp
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-gatetime.Tpo $(DEPDIR)/libwidgets_a-gatetime.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='gatetime.cpp' object='libwidgets_a-gatetime.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-gatetime.o `test -f 'gatetime.cpp' || echo '$(srcdir)/'`gatetime.cpp
+
+libwidgets_a-gatetime.obj: gatetime.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-gatetime.obj -MD -MP -MF $(DEPDIR)/libwidgets_a-gatetime.Tpo -c -o libwidgets_a-gatetime.obj `if test -f 'gatetime.cpp'; then $(CYGPATH_W) 'gatetime.cpp'; else $(CYGPATH_W) '$(srcdir)/gatetime.cpp'; fi`
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-gatetime.Tpo $(DEPDIR)/libwidgets_a-gatetime.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='gatetime.cpp' object='libwidgets_a-gatetime.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-gatetime.obj `if test -f 'gatetime.cpp'; then $(CYGPATH_W) 'gatetime.cpp'; else $(CYGPATH_W) '$(srcdir)/gatetime.cpp'; fi`
+
+libwidgets_a-velocity.o: velocity.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-velocity.o -MD -MP -MF $(DEPDIR)/libwidgets_a-velocity.Tpo -c -o libwidgets_a-velocity.o `test -f 'velocity.cpp' || echo '$(srcdir)/'`velocity.cpp
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-velocity.Tpo $(DEPDIR)/libwidgets_a-velocity.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='velocity.cpp' object='libwidgets_a-velocity.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-velocity.o `test -f 'velocity.cpp' || echo '$(srcdir)/'`velocity.cpp
+
+libwidgets_a-velocity.obj: velocity.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-velocity.obj -MD -MP -MF $(DEPDIR)/libwidgets_a-velocity.Tpo -c -o libwidgets_a-velocity.obj `if test -f 'velocity.cpp'; then $(CYGPATH_W) 'velocity.cpp'; else $(CYGPATH_W) '$(srcdir)/velocity.cpp'; fi`
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-velocity.Tpo $(DEPDIR)/libwidgets_a-velocity.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='velocity.cpp' object='libwidgets_a-velocity.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-velocity.obj `if test -f 'velocity.cpp'; then $(CYGPATH_W) 'velocity.cpp'; else $(CYGPATH_W) '$(srcdir)/velocity.cpp'; fi`
+
+libwidgets_a-metronome.o: metronome.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-metronome.o -MD -MP -MF $(DEPDIR)/libwidgets_a-metronome.Tpo -c -o libwidgets_a-metronome.o `test -f 'metronome.cpp' || echo '$(srcdir)/'`metronome.cpp
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-metronome.Tpo $(DEPDIR)/libwidgets_a-metronome.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='metronome.cpp' object='libwidgets_a-metronome.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-metronome.o `test -f 'metronome.cpp' || echo '$(srcdir)/'`metronome.cpp
+
+libwidgets_a-metronome.obj: metronome.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-metronome.obj -MD -MP -MF $(DEPDIR)/libwidgets_a-metronome.Tpo -c -o libwidgets_a-metronome.obj `if test -f 'metronome.cpp'; then $(CYGPATH_W) 'metronome.cpp'; else $(CYGPATH_W) '$(srcdir)/metronome.cpp'; fi`
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-metronome.Tpo $(DEPDIR)/libwidgets_a-metronome.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='metronome.cpp' object='libwidgets_a-metronome.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-metronome.obj `if test -f 'metronome.cpp'; then $(CYGPATH_W) 'metronome.cpp'; else $(CYGPATH_W) '$(srcdir)/metronome.cpp'; fi`
+
+libwidgets_a-posedit.o: posedit.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-posedit.o -MD -MP -MF $(DEPDIR)/libwidgets_a-posedit.Tpo -c -o libwidgets_a-posedit.o `test -f 'posedit.cpp' || echo '$(srcdir)/'`posedit.cpp
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-posedit.Tpo $(DEPDIR)/libwidgets_a-posedit.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='posedit.cpp' object='libwidgets_a-posedit.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-posedit.o `test -f 'posedit.cpp' || echo '$(srcdir)/'`posedit.cpp
+
+libwidgets_a-posedit.obj: posedit.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-posedit.obj -MD -MP -MF $(DEPDIR)/libwidgets_a-posedit.Tpo -c -o libwidgets_a-posedit.obj `if test -f 'posedit.cpp'; then $(CYGPATH_W) 'posedit.cpp'; else $(CYGPATH_W) '$(srcdir)/posedit.cpp'; fi`
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-posedit.Tpo $(DEPDIR)/libwidgets_a-posedit.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='posedit.cpp' object='libwidgets_a-posedit.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-posedit.obj `if test -f 'posedit.cpp'; then $(CYGPATH_W) 'posedit.cpp'; else $(CYGPATH_W) '$(srcdir)/posedit.cpp'; fi`
+
+libwidgets_a-pitchedit.o: pitchedit.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-pitchedit.o -MD -MP -MF $(DEPDIR)/libwidgets_a-pitchedit.Tpo -c -o libwidgets_a-pitchedit.o `test -f 'pitchedit.cpp' || echo '$(srcdir)/'`pitchedit.cpp
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-pitchedit.Tpo $(DEPDIR)/libwidgets_a-pitchedit.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='pitchedit.cpp' object='libwidgets_a-pitchedit.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-pitchedit.o `test -f 'pitchedit.cpp' || echo '$(srcdir)/'`pitchedit.cpp
+
+libwidgets_a-pitchedit.obj: pitchedit.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-pitchedit.obj -MD -MP -MF $(DEPDIR)/libwidgets_a-pitchedit.Tpo -c -o libwidgets_a-pitchedit.obj `if test -f 'pitchedit.cpp'; then $(CYGPATH_W) 'pitchedit.cpp'; else $(CYGPATH_W) '$(srcdir)/pitchedit.cpp'; fi`
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-pitchedit.Tpo $(DEPDIR)/libwidgets_a-pitchedit.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='pitchedit.cpp' object='libwidgets_a-pitchedit.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-pitchedit.obj `if test -f 'pitchedit.cpp'; then $(CYGPATH_W) 'pitchedit.cpp'; else $(CYGPATH_W) '$(srcdir)/pitchedit.cpp'; fi`
+
+libwidgets_a-pitchlabel.o: pitchlabel.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-pitchlabel.o -MD -MP -MF $(DEPDIR)/libwidgets_a-pitchlabel.Tpo -c -o libwidgets_a-pitchlabel.o `test -f 'pitchlabel.cpp' || echo '$(srcdir)/'`pitchlabel.cpp
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-pitchlabel.Tpo $(DEPDIR)/libwidgets_a-pitchlabel.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='pitchlabel.cpp' object='libwidgets_a-pitchlabel.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-pitchlabel.o `test -f 'pitchlabel.cpp' || echo '$(srcdir)/'`pitchlabel.cpp
+
+libwidgets_a-pitchlabel.obj: pitchlabel.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-pitchlabel.obj -MD -MP -MF $(DEPDIR)/libwidgets_a-pitchlabel.Tpo -c -o libwidgets_a-pitchlabel.obj `if test -f 'pitchlabel.cpp'; then $(CYGPATH_W) 'pitchlabel.cpp'; else $(CYGPATH_W) '$(srcdir)/pitchlabel.cpp'; fi`
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-pitchlabel.Tpo $(DEPDIR)/libwidgets_a-pitchlabel.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='pitchlabel.cpp' object='libwidgets_a-pitchlabel.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-pitchlabel.obj `if test -f 'pitchlabel.cpp'; then $(CYGPATH_W) 'pitchlabel.cpp'; else $(CYGPATH_W) '$(srcdir)/pitchlabel.cpp'; fi`
+
+libwidgets_a-poslabel.o: poslabel.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-poslabel.o -MD -MP -MF $(DEPDIR)/libwidgets_a-poslabel.Tpo -c -o libwidgets_a-poslabel.o `test -f 'poslabel.cpp' || echo '$(srcdir)/'`poslabel.cpp
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-poslabel.Tpo $(DEPDIR)/libwidgets_a-poslabel.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='poslabel.cpp' object='libwidgets_a-poslabel.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-poslabel.o `test -f 'poslabel.cpp' || echo '$(srcdir)/'`poslabel.cpp
+
+libwidgets_a-poslabel.obj: poslabel.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-poslabel.obj -MD -MP -MF $(DEPDIR)/libwidgets_a-poslabel.Tpo -c -o libwidgets_a-poslabel.obj `if test -f 'poslabel.cpp'; then $(CYGPATH_W) 'poslabel.cpp'; else $(CYGPATH_W) '$(srcdir)/poslabel.cpp'; fi`
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-poslabel.Tpo $(DEPDIR)/libwidgets_a-poslabel.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='poslabel.cpp' object='libwidgets_a-poslabel.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-poslabel.obj `if test -f 'poslabel.cpp'; then $(CYGPATH_W) 'poslabel.cpp'; else $(CYGPATH_W) '$(srcdir)/poslabel.cpp'; fi`
+
+libwidgets_a-filedialog.o: filedialog.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-filedialog.o -MD -MP -MF $(DEPDIR)/libwidgets_a-filedialog.Tpo -c -o libwidgets_a-filedialog.o `test -f 'filedialog.cpp' || echo '$(srcdir)/'`filedialog.cpp
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-filedialog.Tpo $(DEPDIR)/libwidgets_a-filedialog.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='filedialog.cpp' object='libwidgets_a-filedialog.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-filedialog.o `test -f 'filedialog.cpp' || echo '$(srcdir)/'`filedialog.cpp
+
+libwidgets_a-filedialog.obj: filedialog.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-filedialog.obj -MD -MP -MF $(DEPDIR)/libwidgets_a-filedialog.Tpo -c -o libwidgets_a-filedialog.obj `if test -f 'filedialog.cpp'; then $(CYGPATH_W) 'filedialog.cpp'; else $(CYGPATH_W) '$(srcdir)/filedialog.cpp'; fi`
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-filedialog.Tpo $(DEPDIR)/libwidgets_a-filedialog.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='filedialog.cpp' object='libwidgets_a-filedialog.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-filedialog.obj `if test -f 'filedialog.cpp'; then $(CYGPATH_W) 'filedialog.cpp'; else $(CYGPATH_W) '$(srcdir)/filedialog.cpp'; fi`
+
+libwidgets_a-sigedit.o: sigedit.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-sigedit.o -MD -MP -MF $(DEPDIR)/libwidgets_a-sigedit.Tpo -c -o libwidgets_a-sigedit.o `test -f 'sigedit.cpp' || echo '$(srcdir)/'`sigedit.cpp
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-sigedit.Tpo $(DEPDIR)/libwidgets_a-sigedit.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='sigedit.cpp' object='libwidgets_a-sigedit.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-sigedit.o `test -f 'sigedit.cpp' || echo '$(srcdir)/'`sigedit.cpp
+
+libwidgets_a-sigedit.obj: sigedit.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-sigedit.obj -MD -MP -MF $(DEPDIR)/libwidgets_a-sigedit.Tpo -c -o libwidgets_a-sigedit.obj `if test -f 'sigedit.cpp'; then $(CYGPATH_W) 'sigedit.cpp'; else $(CYGPATH_W) '$(srcdir)/sigedit.cpp'; fi`
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-sigedit.Tpo $(DEPDIR)/libwidgets_a-sigedit.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='sigedit.cpp' object='libwidgets_a-sigedit.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-sigedit.obj `if test -f 'sigedit.cpp'; then $(CYGPATH_W) 'sigedit.cpp'; else $(CYGPATH_W) '$(srcdir)/sigedit.cpp'; fi`
+
+libwidgets_a-shortcutconfig.o: shortcutconfig.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-shortcutconfig.o -MD -MP -MF $(DEPDIR)/libwidgets_a-shortcutconfig.Tpo -c -o libwidgets_a-shortcutconfig.o `test -f 'shortcutconfig.cpp' || echo '$(srcdir)/'`shortcutconfig.cpp
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-shortcutconfig.Tpo $(DEPDIR)/libwidgets_a-shortcutconfig.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='shortcutconfig.cpp' object='libwidgets_a-shortcutconfig.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-shortcutconfig.o `test -f 'shortcutconfig.cpp' || echo '$(srcdir)/'`shortcutconfig.cpp
+
+libwidgets_a-shortcutconfig.obj: shortcutconfig.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-shortcutconfig.obj -MD -MP -MF $(DEPDIR)/libwidgets_a-shortcutconfig.Tpo -c -o libwidgets_a-shortcutconfig.obj `if test -f 'shortcutconfig.cpp'; then $(CYGPATH_W) 'shortcutconfig.cpp'; else $(CYGPATH_W) '$(srcdir)/shortcutconfig.cpp'; fi`
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-shortcutconfig.Tpo $(DEPDIR)/libwidgets_a-shortcutconfig.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='shortcutconfig.cpp' object='libwidgets_a-shortcutconfig.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-shortcutconfig.obj `if test -f 'shortcutconfig.cpp'; then $(CYGPATH_W) 'shortcutconfig.cpp'; else $(CYGPATH_W) '$(srcdir)/shortcutconfig.cpp'; fi`
+
+libwidgets_a-shortcutcapturedialog.o: shortcutcapturedialog.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-shortcutcapturedialog.o -MD -MP -MF $(DEPDIR)/libwidgets_a-shortcutcapturedialog.Tpo -c -o libwidgets_a-shortcutcapturedialog.o `test -f 'shortcutcapturedialog.cpp' || echo '$(srcdir)/'`shortcutcapturedialog.cpp
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-shortcutcapturedialog.Tpo $(DEPDIR)/libwidgets_a-shortcutcapturedialog.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='shortcutcapturedialog.cpp' object='libwidgets_a-shortcutcapturedialog.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-shortcutcapturedialog.o `test -f 'shortcutcapturedialog.cpp' || echo '$(srcdir)/'`shortcutcapturedialog.cpp
+
+libwidgets_a-shortcutcapturedialog.obj: shortcutcapturedialog.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-shortcutcapturedialog.obj -MD -MP -MF $(DEPDIR)/libwidgets_a-shortcutcapturedialog.Tpo -c -o libwidgets_a-shortcutcapturedialog.obj `if test -f 'shortcutcapturedialog.cpp'; then $(CYGPATH_W) 'shortcutcapturedialog.cpp'; else $(CYGPATH_W) '$(srcdir)/shortcutcapturedialog.cpp'; fi`
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-shortcutcapturedialog.Tpo $(DEPDIR)/libwidgets_a-shortcutcapturedialog.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='shortcutcapturedialog.cpp' object='libwidgets_a-shortcutcapturedialog.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-shortcutcapturedialog.obj `if test -f 'shortcutcapturedialog.cpp'; then $(CYGPATH_W) 'shortcutcapturedialog.cpp'; else $(CYGPATH_W) '$(srcdir)/shortcutcapturedialog.cpp'; fi`
+
+libwidgets_a-combobox.o: combobox.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-combobox.o -MD -MP -MF $(DEPDIR)/libwidgets_a-combobox.Tpo -c -o libwidgets_a-combobox.o `test -f 'combobox.cpp' || echo '$(srcdir)/'`combobox.cpp
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-combobox.Tpo $(DEPDIR)/libwidgets_a-combobox.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='combobox.cpp' object='libwidgets_a-combobox.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-combobox.o `test -f 'combobox.cpp' || echo '$(srcdir)/'`combobox.cpp
+
+libwidgets_a-combobox.obj: combobox.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-combobox.obj -MD -MP -MF $(DEPDIR)/libwidgets_a-combobox.Tpo -c -o libwidgets_a-combobox.obj `if test -f 'combobox.cpp'; then $(CYGPATH_W) 'combobox.cpp'; else $(CYGPATH_W) '$(srcdir)/combobox.cpp'; fi`
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-combobox.Tpo $(DEPDIR)/libwidgets_a-combobox.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='combobox.cpp' object='libwidgets_a-combobox.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-combobox.obj `if test -f 'combobox.cpp'; then $(CYGPATH_W) 'combobox.cpp'; else $(CYGPATH_W) '$(srcdir)/combobox.cpp'; fi`
+
+libwidgets_a-checkbox.o: checkbox.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-checkbox.o -MD -MP -MF $(DEPDIR)/libwidgets_a-checkbox.Tpo -c -o libwidgets_a-checkbox.o `test -f 'checkbox.cpp' || echo '$(srcdir)/'`checkbox.cpp
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-checkbox.Tpo $(DEPDIR)/libwidgets_a-checkbox.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='checkbox.cpp' object='libwidgets_a-checkbox.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-checkbox.o `test -f 'checkbox.cpp' || echo '$(srcdir)/'`checkbox.cpp
+
+libwidgets_a-checkbox.obj: checkbox.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-checkbox.obj -MD -MP -MF $(DEPDIR)/libwidgets_a-checkbox.Tpo -c -o libwidgets_a-checkbox.obj `if test -f 'checkbox.cpp'; then $(CYGPATH_W) 'checkbox.cpp'; else $(CYGPATH_W) '$(srcdir)/checkbox.cpp'; fi`
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-checkbox.Tpo $(DEPDIR)/libwidgets_a-checkbox.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='checkbox.cpp' object='libwidgets_a-checkbox.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-checkbox.obj `if test -f 'checkbox.cpp'; then $(CYGPATH_W) 'checkbox.cpp'; else $(CYGPATH_W) '$(srcdir)/checkbox.cpp'; fi`
+
+libwidgets_a-aboutbox_impl.o: aboutbox_impl.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-aboutbox_impl.o -MD -MP -MF $(DEPDIR)/libwidgets_a-aboutbox_impl.Tpo -c -o libwidgets_a-aboutbox_impl.o `test -f 'aboutbox_impl.cpp' || echo '$(srcdir)/'`aboutbox_impl.cpp
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-aboutbox_impl.Tpo $(DEPDIR)/libwidgets_a-aboutbox_impl.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='aboutbox_impl.cpp' object='libwidgets_a-aboutbox_impl.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-aboutbox_impl.o `test -f 'aboutbox_impl.cpp' || echo '$(srcdir)/'`aboutbox_impl.cpp
+
+libwidgets_a-aboutbox_impl.obj: aboutbox_impl.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-aboutbox_impl.obj -MD -MP -MF $(DEPDIR)/libwidgets_a-aboutbox_impl.Tpo -c -o libwidgets_a-aboutbox_impl.obj `if test -f 'aboutbox_impl.cpp'; then $(CYGPATH_W) 'aboutbox_impl.cpp'; else $(CYGPATH_W) '$(srcdir)/aboutbox_impl.cpp'; fi`
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-aboutbox_impl.Tpo $(DEPDIR)/libwidgets_a-aboutbox_impl.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='aboutbox_impl.cpp' object='libwidgets_a-aboutbox_impl.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-aboutbox_impl.obj `if test -f 'aboutbox_impl.cpp'; then $(CYGPATH_W) 'aboutbox_impl.cpp'; else $(CYGPATH_W) '$(srcdir)/aboutbox_impl.cpp'; fi`
+
+libwidgets_a-popupmenu.o: popupmenu.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-popupmenu.o -MD -MP -MF $(DEPDIR)/libwidgets_a-popupmenu.Tpo -c -o libwidgets_a-popupmenu.o `test -f 'popupmenu.cpp' || echo '$(srcdir)/'`popupmenu.cpp
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-popupmenu.Tpo $(DEPDIR)/libwidgets_a-popupmenu.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='popupmenu.cpp' object='libwidgets_a-popupmenu.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-popupmenu.o `test -f 'popupmenu.cpp' || echo '$(srcdir)/'`popupmenu.cpp
+
+libwidgets_a-popupmenu.obj: popupmenu.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-popupmenu.obj -MD -MP -MF $(DEPDIR)/libwidgets_a-popupmenu.Tpo -c -o libwidgets_a-popupmenu.obj `if test -f 'popupmenu.cpp'; then $(CYGPATH_W) 'popupmenu.cpp'; else $(CYGPATH_W) '$(srcdir)/popupmenu.cpp'; fi`
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-popupmenu.Tpo $(DEPDIR)/libwidgets_a-popupmenu.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='popupmenu.cpp' object='libwidgets_a-popupmenu.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-popupmenu.obj `if test -f 'popupmenu.cpp'; then $(CYGPATH_W) 'popupmenu.cpp'; else $(CYGPATH_W) '$(srcdir)/popupmenu.cpp'; fi`
+
+libwidgets_a-moc_scrollscale.o: moc_scrollscale.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-moc_scrollscale.o -MD -MP -MF $(DEPDIR)/libwidgets_a-moc_scrollscale.Tpo -c -o libwidgets_a-moc_scrollscale.o `test -f 'moc_scrollscale.cpp' || echo '$(srcdir)/'`moc_scrollscale.cpp
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-moc_scrollscale.Tpo $(DEPDIR)/libwidgets_a-moc_scrollscale.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='moc_scrollscale.cpp' object='libwidgets_a-moc_scrollscale.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-moc_scrollscale.o `test -f 'moc_scrollscale.cpp' || echo '$(srcdir)/'`moc_scrollscale.cpp
+
+libwidgets_a-moc_scrollscale.obj: moc_scrollscale.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-moc_scrollscale.obj -MD -MP -MF $(DEPDIR)/libwidgets_a-moc_scrollscale.Tpo -c -o libwidgets_a-moc_scrollscale.obj `if test -f 'moc_scrollscale.cpp'; then $(CYGPATH_W) 'moc_scrollscale.cpp'; else $(CYGPATH_W) '$(srcdir)/moc_scrollscale.cpp'; fi`
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-moc_scrollscale.Tpo $(DEPDIR)/libwidgets_a-moc_scrollscale.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='moc_scrollscale.cpp' object='libwidgets_a-moc_scrollscale.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-moc_scrollscale.obj `if test -f 'moc_scrollscale.cpp'; then $(CYGPATH_W) 'moc_scrollscale.cpp'; else $(CYGPATH_W) '$(srcdir)/moc_scrollscale.cpp'; fi`
+
+libwidgets_a-moc_view.o: moc_view.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-moc_view.o -MD -MP -MF $(DEPDIR)/libwidgets_a-moc_view.Tpo -c -o libwidgets_a-moc_view.o `test -f 'moc_view.cpp' || echo '$(srcdir)/'`moc_view.cpp
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-moc_view.Tpo $(DEPDIR)/libwidgets_a-moc_view.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='moc_view.cpp' object='libwidgets_a-moc_view.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-moc_view.o `test -f 'moc_view.cpp' || echo '$(srcdir)/'`moc_view.cpp
+
+libwidgets_a-moc_view.obj: moc_view.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-moc_view.obj -MD -MP -MF $(DEPDIR)/libwidgets_a-moc_view.Tpo -c -o libwidgets_a-moc_view.obj `if test -f 'moc_view.cpp'; then $(CYGPATH_W) 'moc_view.cpp'; else $(CYGPATH_W) '$(srcdir)/moc_view.cpp'; fi`
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-moc_view.Tpo $(DEPDIR)/libwidgets_a-moc_view.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='moc_view.cpp' object='libwidgets_a-moc_view.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-moc_view.obj `if test -f 'moc_view.cpp'; then $(CYGPATH_W) 'moc_view.cpp'; else $(CYGPATH_W) '$(srcdir)/moc_view.cpp'; fi`
+
+libwidgets_a-moc_nentry.o: moc_nentry.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-moc_nentry.o -MD -MP -MF $(DEPDIR)/libwidgets_a-moc_nentry.Tpo -c -o libwidgets_a-moc_nentry.o `test -f 'moc_nentry.cpp' || echo '$(srcdir)/'`moc_nentry.cpp
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-moc_nentry.Tpo $(DEPDIR)/libwidgets_a-moc_nentry.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='moc_nentry.cpp' object='libwidgets_a-moc_nentry.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-moc_nentry.o `test -f 'moc_nentry.cpp' || echo '$(srcdir)/'`moc_nentry.cpp
+
+libwidgets_a-moc_nentry.obj: moc_nentry.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-moc_nentry.obj -MD -MP -MF $(DEPDIR)/libwidgets_a-moc_nentry.Tpo -c -o libwidgets_a-moc_nentry.obj `if test -f 'moc_nentry.cpp'; then $(CYGPATH_W) 'moc_nentry.cpp'; else $(CYGPATH_W) '$(srcdir)/moc_nentry.cpp'; fi`
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-moc_nentry.Tpo $(DEPDIR)/libwidgets_a-moc_nentry.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='moc_nentry.cpp' object='libwidgets_a-moc_nentry.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-moc_nentry.obj `if test -f 'moc_nentry.cpp'; then $(CYGPATH_W) 'moc_nentry.cpp'; else $(CYGPATH_W) '$(srcdir)/moc_nentry.cpp'; fi`
+
+libwidgets_a-moc_mtscale.o: moc_mtscale.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-moc_mtscale.o -MD -MP -MF $(DEPDIR)/libwidgets_a-moc_mtscale.Tpo -c -o libwidgets_a-moc_mtscale.o `test -f 'moc_mtscale.cpp' || echo '$(srcdir)/'`moc_mtscale.cpp
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-moc_mtscale.Tpo $(DEPDIR)/libwidgets_a-moc_mtscale.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='moc_mtscale.cpp' object='libwidgets_a-moc_mtscale.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-moc_mtscale.o `test -f 'moc_mtscale.cpp' || echo '$(srcdir)/'`moc_mtscale.cpp
+
+libwidgets_a-moc_mtscale.obj: moc_mtscale.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-moc_mtscale.obj -MD -MP -MF $(DEPDIR)/libwidgets_a-moc_mtscale.Tpo -c -o libwidgets_a-moc_mtscale.obj `if test -f 'moc_mtscale.cpp'; then $(CYGPATH_W) 'moc_mtscale.cpp'; else $(CYGPATH_W) '$(srcdir)/moc_mtscale.cpp'; fi`
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-moc_mtscale.Tpo $(DEPDIR)/libwidgets_a-moc_mtscale.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='moc_mtscale.cpp' object='libwidgets_a-moc_mtscale.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-moc_mtscale.obj `if test -f 'moc_mtscale.cpp'; then $(CYGPATH_W) 'moc_mtscale.cpp'; else $(CYGPATH_W) '$(srcdir)/moc_mtscale.cpp'; fi`
+
+libwidgets_a-moc_sigscale.o: moc_sigscale.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-moc_sigscale.o -MD -MP -MF $(DEPDIR)/libwidgets_a-moc_sigscale.Tpo -c -o libwidgets_a-moc_sigscale.o `test -f 'moc_sigscale.cpp' || echo '$(srcdir)/'`moc_sigscale.cpp
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-moc_sigscale.Tpo $(DEPDIR)/libwidgets_a-moc_sigscale.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='moc_sigscale.cpp' object='libwidgets_a-moc_sigscale.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-moc_sigscale.o `test -f 'moc_sigscale.cpp' || echo '$(srcdir)/'`moc_sigscale.cpp
+
+libwidgets_a-moc_sigscale.obj: moc_sigscale.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-moc_sigscale.obj -MD -MP -MF $(DEPDIR)/libwidgets_a-moc_sigscale.Tpo -c -o libwidgets_a-moc_sigscale.obj `if test -f 'moc_sigscale.cpp'; then $(CYGPATH_W) 'moc_sigscale.cpp'; else $(CYGPATH_W) '$(srcdir)/moc_sigscale.cpp'; fi`
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-moc_sigscale.Tpo $(DEPDIR)/libwidgets_a-moc_sigscale.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='moc_sigscale.cpp' object='libwidgets_a-moc_sigscale.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-moc_sigscale.obj `if test -f 'moc_sigscale.cpp'; then $(CYGPATH_W) 'moc_sigscale.cpp'; else $(CYGPATH_W) '$(srcdir)/moc_sigscale.cpp'; fi`
+
+libwidgets_a-moc_hitscale.o: moc_hitscale.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-moc_hitscale.o -MD -MP -MF $(DEPDIR)/libwidgets_a-moc_hitscale.Tpo -c -o libwidgets_a-moc_hitscale.o `test -f 'moc_hitscale.cpp' || echo '$(srcdir)/'`moc_hitscale.cpp
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-moc_hitscale.Tpo $(DEPDIR)/libwidgets_a-moc_hitscale.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='moc_hitscale.cpp' object='libwidgets_a-moc_hitscale.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-moc_hitscale.o `test -f 'moc_hitscale.cpp' || echo '$(srcdir)/'`moc_hitscale.cpp
+
+libwidgets_a-moc_hitscale.obj: moc_hitscale.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-moc_hitscale.obj -MD -MP -MF $(DEPDIR)/libwidgets_a-moc_hitscale.Tpo -c -o libwidgets_a-moc_hitscale.obj `if test -f 'moc_hitscale.cpp'; then $(CYGPATH_W) 'moc_hitscale.cpp'; else $(CYGPATH_W) '$(srcdir)/moc_hitscale.cpp'; fi`
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-moc_hitscale.Tpo $(DEPDIR)/libwidgets_a-moc_hitscale.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='moc_hitscale.cpp' object='libwidgets_a-moc_hitscale.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-moc_hitscale.obj `if test -f 'moc_hitscale.cpp'; then $(CYGPATH_W) 'moc_hitscale.cpp'; else $(CYGPATH_W) '$(srcdir)/moc_hitscale.cpp'; fi`
+
+libwidgets_a-moc_intlabel.o: moc_intlabel.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-moc_intlabel.o -MD -MP -MF $(DEPDIR)/libwidgets_a-moc_intlabel.Tpo -c -o libwidgets_a-moc_intlabel.o `test -f 'moc_intlabel.cpp' || echo '$(srcdir)/'`moc_intlabel.cpp
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-moc_intlabel.Tpo $(DEPDIR)/libwidgets_a-moc_intlabel.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='moc_intlabel.cpp' object='libwidgets_a-moc_intlabel.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-moc_intlabel.o `test -f 'moc_intlabel.cpp' || echo '$(srcdir)/'`moc_intlabel.cpp
+
+libwidgets_a-moc_intlabel.obj: moc_intlabel.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-moc_intlabel.obj -MD -MP -MF $(DEPDIR)/libwidgets_a-moc_intlabel.Tpo -c -o libwidgets_a-moc_intlabel.obj `if test -f 'moc_intlabel.cpp'; then $(CYGPATH_W) 'moc_intlabel.cpp'; else $(CYGPATH_W) '$(srcdir)/moc_intlabel.cpp'; fi`
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-moc_intlabel.Tpo $(DEPDIR)/libwidgets_a-moc_intlabel.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='moc_intlabel.cpp' object='libwidgets_a-moc_intlabel.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-moc_intlabel.obj `if test -f 'moc_intlabel.cpp'; then $(CYGPATH_W) 'moc_intlabel.cpp'; else $(CYGPATH_W) '$(srcdir)/moc_intlabel.cpp'; fi`
+
+libwidgets_a-moc_doublelabel.o: moc_doublelabel.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-moc_doublelabel.o -MD -MP -MF $(DEPDIR)/libwidgets_a-moc_doublelabel.Tpo -c -o libwidgets_a-moc_doublelabel.o `test -f 'moc_doublelabel.cpp' || echo '$(srcdir)/'`moc_doublelabel.cpp
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-moc_doublelabel.Tpo $(DEPDIR)/libwidgets_a-moc_doublelabel.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='moc_doublelabel.cpp' object='libwidgets_a-moc_doublelabel.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-moc_doublelabel.o `test -f 'moc_doublelabel.cpp' || echo '$(srcdir)/'`moc_doublelabel.cpp
+
+libwidgets_a-moc_doublelabel.obj: moc_doublelabel.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-moc_doublelabel.obj -MD -MP -MF $(DEPDIR)/libwidgets_a-moc_doublelabel.Tpo -c -o libwidgets_a-moc_doublelabel.obj `if test -f 'moc_doublelabel.cpp'; then $(CYGPATH_W) 'moc_doublelabel.cpp'; else $(CYGPATH_W) '$(srcdir)/moc_doublelabel.cpp'; fi`
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-moc_doublelabel.Tpo $(DEPDIR)/libwidgets_a-moc_doublelabel.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='moc_doublelabel.cpp' object='libwidgets_a-moc_doublelabel.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-moc_doublelabel.obj `if test -f 'moc_doublelabel.cpp'; then $(CYGPATH_W) 'moc_doublelabel.cpp'; else $(CYGPATH_W) '$(srcdir)/moc_doublelabel.cpp'; fi`
+
+libwidgets_a-moc_canvas.o: moc_canvas.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-moc_canvas.o -MD -MP -MF $(DEPDIR)/libwidgets_a-moc_canvas.Tpo -c -o libwidgets_a-moc_canvas.o `test -f 'moc_canvas.cpp' || echo '$(srcdir)/'`moc_canvas.cpp
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-moc_canvas.Tpo $(DEPDIR)/libwidgets_a-moc_canvas.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='moc_canvas.cpp' object='libwidgets_a-moc_canvas.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-moc_canvas.o `test -f 'moc_canvas.cpp' || echo '$(srcdir)/'`moc_canvas.cpp
+
+libwidgets_a-moc_canvas.obj: moc_canvas.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-moc_canvas.obj -MD -MP -MF $(DEPDIR)/libwidgets_a-moc_canvas.Tpo -c -o libwidgets_a-moc_canvas.obj `if test -f 'moc_canvas.cpp'; then $(CYGPATH_W) 'moc_canvas.cpp'; else $(CYGPATH_W) '$(srcdir)/moc_canvas.cpp'; fi`
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-moc_canvas.Tpo $(DEPDIR)/libwidgets_a-moc_canvas.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='moc_canvas.cpp' object='libwidgets_a-moc_canvas.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-moc_canvas.obj `if test -f 'moc_canvas.cpp'; then $(CYGPATH_W) 'moc_canvas.cpp'; else $(CYGPATH_W) '$(srcdir)/moc_canvas.cpp'; fi`
+
+libwidgets_a-moc_noteinfo.o: moc_noteinfo.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-moc_noteinfo.o -MD -MP -MF $(DEPDIR)/libwidgets_a-moc_noteinfo.Tpo -c -o libwidgets_a-moc_noteinfo.o `test -f 'moc_noteinfo.cpp' || echo '$(srcdir)/'`moc_noteinfo.cpp
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-moc_noteinfo.Tpo $(DEPDIR)/libwidgets_a-moc_noteinfo.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='moc_noteinfo.cpp' object='libwidgets_a-moc_noteinfo.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-moc_noteinfo.o `test -f 'moc_noteinfo.cpp' || echo '$(srcdir)/'`moc_noteinfo.cpp
+
+libwidgets_a-moc_noteinfo.obj: moc_noteinfo.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-moc_noteinfo.obj -MD -MP -MF $(DEPDIR)/libwidgets_a-moc_noteinfo.Tpo -c -o libwidgets_a-moc_noteinfo.obj `if test -f 'moc_noteinfo.cpp'; then $(CYGPATH_W) 'moc_noteinfo.cpp'; else $(CYGPATH_W) '$(srcdir)/moc_noteinfo.cpp'; fi`
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-moc_noteinfo.Tpo $(DEPDIR)/libwidgets_a-moc_noteinfo.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='moc_noteinfo.cpp' object='libwidgets_a-moc_noteinfo.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-moc_noteinfo.obj `if test -f 'moc_noteinfo.cpp'; then $(CYGPATH_W) 'moc_noteinfo.cpp'; else $(CYGPATH_W) '$(srcdir)/moc_noteinfo.cpp'; fi`
+
+libwidgets_a-moc_dentry.o: moc_dentry.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-moc_dentry.o -MD -MP -MF $(DEPDIR)/libwidgets_a-moc_dentry.Tpo -c -o libwidgets_a-moc_dentry.o `test -f 'moc_dentry.cpp' || echo '$(srcdir)/'`moc_dentry.cpp
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-moc_dentry.Tpo $(DEPDIR)/libwidgets_a-moc_dentry.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='moc_dentry.cpp' object='libwidgets_a-moc_dentry.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-moc_dentry.o `test -f 'moc_dentry.cpp' || echo '$(srcdir)/'`moc_dentry.cpp
+
+libwidgets_a-moc_dentry.obj: moc_dentry.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-moc_dentry.obj -MD -MP -MF $(DEPDIR)/libwidgets_a-moc_dentry.Tpo -c -o libwidgets_a-moc_dentry.obj `if test -f 'moc_dentry.cpp'; then $(CYGPATH_W) 'moc_dentry.cpp'; else $(CYGPATH_W) '$(srcdir)/moc_dentry.cpp'; fi`
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-moc_dentry.Tpo $(DEPDIR)/libwidgets_a-moc_dentry.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='moc_dentry.cpp' object='libwidgets_a-moc_dentry.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-moc_dentry.obj `if test -f 'moc_dentry.cpp'; then $(CYGPATH_W) 'moc_dentry.cpp'; else $(CYGPATH_W) '$(srcdir)/moc_dentry.cpp'; fi`
+
+libwidgets_a-moc_siglabel.o: moc_siglabel.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-moc_siglabel.o -MD -MP -MF $(DEPDIR)/libwidgets_a-moc_siglabel.Tpo -c -o libwidgets_a-moc_siglabel.o `test -f 'moc_siglabel.cpp' || echo '$(srcdir)/'`moc_siglabel.cpp
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-moc_siglabel.Tpo $(DEPDIR)/libwidgets_a-moc_siglabel.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='moc_siglabel.cpp' object='libwidgets_a-moc_siglabel.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-moc_siglabel.o `test -f 'moc_siglabel.cpp' || echo '$(srcdir)/'`moc_siglabel.cpp
+
+libwidgets_a-moc_siglabel.obj: moc_siglabel.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-moc_siglabel.obj -MD -MP -MF $(DEPDIR)/libwidgets_a-moc_siglabel.Tpo -c -o libwidgets_a-moc_siglabel.obj `if test -f 'moc_siglabel.cpp'; then $(CYGPATH_W) 'moc_siglabel.cpp'; else $(CYGPATH_W) '$(srcdir)/moc_siglabel.cpp'; fi`
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-moc_siglabel.Tpo $(DEPDIR)/libwidgets_a-moc_siglabel.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='moc_siglabel.cpp' object='libwidgets_a-moc_siglabel.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-moc_siglabel.obj `if test -f 'moc_siglabel.cpp'; then $(CYGPATH_W) 'moc_siglabel.cpp'; else $(CYGPATH_W) '$(srcdir)/moc_siglabel.cpp'; fi`
+
+libwidgets_a-moc_ttoolbar.o: moc_ttoolbar.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-moc_ttoolbar.o -MD -MP -MF $(DEPDIR)/libwidgets_a-moc_ttoolbar.Tpo -c -o libwidgets_a-moc_ttoolbar.o `test -f 'moc_ttoolbar.cpp' || echo '$(srcdir)/'`moc_ttoolbar.cpp
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-moc_ttoolbar.Tpo $(DEPDIR)/libwidgets_a-moc_ttoolbar.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='moc_ttoolbar.cpp' object='libwidgets_a-moc_ttoolbar.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-moc_ttoolbar.o `test -f 'moc_ttoolbar.cpp' || echo '$(srcdir)/'`moc_ttoolbar.cpp
+
+libwidgets_a-moc_ttoolbar.obj: moc_ttoolbar.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-moc_ttoolbar.obj -MD -MP -MF $(DEPDIR)/libwidgets_a-moc_ttoolbar.Tpo -c -o libwidgets_a-moc_ttoolbar.obj `if test -f 'moc_ttoolbar.cpp'; then $(CYGPATH_W) 'moc_ttoolbar.cpp'; else $(CYGPATH_W) '$(srcdir)/moc_ttoolbar.cpp'; fi`
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-moc_ttoolbar.Tpo $(DEPDIR)/libwidgets_a-moc_ttoolbar.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='moc_ttoolbar.cpp' object='libwidgets_a-moc_ttoolbar.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-moc_ttoolbar.obj `if test -f 'moc_ttoolbar.cpp'; then $(CYGPATH_W) 'moc_ttoolbar.cpp'; else $(CYGPATH_W) '$(srcdir)/moc_ttoolbar.cpp'; fi`
+
+libwidgets_a-moc_ttoolbutton.o: moc_ttoolbutton.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-moc_ttoolbutton.o -MD -MP -MF $(DEPDIR)/libwidgets_a-moc_ttoolbutton.Tpo -c -o libwidgets_a-moc_ttoolbutton.o `test -f 'moc_ttoolbutton.cpp' || echo '$(srcdir)/'`moc_ttoolbutton.cpp
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-moc_ttoolbutton.Tpo $(DEPDIR)/libwidgets_a-moc_ttoolbutton.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='moc_ttoolbutton.cpp' object='libwidgets_a-moc_ttoolbutton.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-moc_ttoolbutton.o `test -f 'moc_ttoolbutton.cpp' || echo '$(srcdir)/'`moc_ttoolbutton.cpp
+
+libwidgets_a-moc_ttoolbutton.obj: moc_ttoolbutton.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-moc_ttoolbutton.obj -MD -MP -MF $(DEPDIR)/libwidgets_a-moc_ttoolbutton.Tpo -c -o libwidgets_a-moc_ttoolbutton.obj `if test -f 'moc_ttoolbutton.cpp'; then $(CYGPATH_W) 'moc_ttoolbutton.cpp'; else $(CYGPATH_W) '$(srcdir)/moc_ttoolbutton.cpp'; fi`
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-moc_ttoolbutton.Tpo $(DEPDIR)/libwidgets_a-moc_ttoolbutton.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='moc_ttoolbutton.cpp' object='libwidgets_a-moc_ttoolbutton.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-moc_ttoolbutton.obj `if test -f 'moc_ttoolbutton.cpp'; then $(CYGPATH_W) 'moc_ttoolbutton.cpp'; else $(CYGPATH_W) '$(srcdir)/moc_ttoolbutton.cpp'; fi`
+
+libwidgets_a-moc_tb1.o: moc_tb1.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-moc_tb1.o -MD -MP -MF $(DEPDIR)/libwidgets_a-moc_tb1.Tpo -c -o libwidgets_a-moc_tb1.o `test -f 'moc_tb1.cpp' || echo '$(srcdir)/'`moc_tb1.cpp
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-moc_tb1.Tpo $(DEPDIR)/libwidgets_a-moc_tb1.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='moc_tb1.cpp' object='libwidgets_a-moc_tb1.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-moc_tb1.o `test -f 'moc_tb1.cpp' || echo '$(srcdir)/'`moc_tb1.cpp
+
+libwidgets_a-moc_tb1.obj: moc_tb1.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-moc_tb1.obj -MD -MP -MF $(DEPDIR)/libwidgets_a-moc_tb1.Tpo -c -o libwidgets_a-moc_tb1.obj `if test -f 'moc_tb1.cpp'; then $(CYGPATH_W) 'moc_tb1.cpp'; else $(CYGPATH_W) '$(srcdir)/moc_tb1.cpp'; fi`
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-moc_tb1.Tpo $(DEPDIR)/libwidgets_a-moc_tb1.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='moc_tb1.cpp' object='libwidgets_a-moc_tb1.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-moc_tb1.obj `if test -f 'moc_tb1.cpp'; then $(CYGPATH_W) 'moc_tb1.cpp'; else $(CYGPATH_W) '$(srcdir)/moc_tb1.cpp'; fi`
+
+libwidgets_a-moc_lcombo.o: moc_lcombo.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-moc_lcombo.o -MD -MP -MF $(DEPDIR)/libwidgets_a-moc_lcombo.Tpo -c -o libwidgets_a-moc_lcombo.o `test -f 'moc_lcombo.cpp' || echo '$(srcdir)/'`moc_lcombo.cpp
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-moc_lcombo.Tpo $(DEPDIR)/libwidgets_a-moc_lcombo.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='moc_lcombo.cpp' object='libwidgets_a-moc_lcombo.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-moc_lcombo.o `test -f 'moc_lcombo.cpp' || echo '$(srcdir)/'`moc_lcombo.cpp
+
+libwidgets_a-moc_lcombo.obj: moc_lcombo.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-moc_lcombo.obj -MD -MP -MF $(DEPDIR)/libwidgets_a-moc_lcombo.Tpo -c -o libwidgets_a-moc_lcombo.obj `if test -f 'moc_lcombo.cpp'; then $(CYGPATH_W) 'moc_lcombo.cpp'; else $(CYGPATH_W) '$(srcdir)/moc_lcombo.cpp'; fi`
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-moc_lcombo.Tpo $(DEPDIR)/libwidgets_a-moc_lcombo.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='moc_lcombo.cpp' object='libwidgets_a-moc_lcombo.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-moc_lcombo.obj `if test -f 'moc_lcombo.cpp'; then $(CYGPATH_W) 'moc_lcombo.cpp'; else $(CYGPATH_W) '$(srcdir)/moc_lcombo.cpp'; fi`
+
+libwidgets_a-moc_swidget.o: moc_swidget.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-moc_swidget.o -MD -MP -MF $(DEPDIR)/libwidgets_a-moc_swidget.Tpo -c -o libwidgets_a-moc_swidget.o `test -f 'moc_swidget.cpp' || echo '$(srcdir)/'`moc_swidget.cpp
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-moc_swidget.Tpo $(DEPDIR)/libwidgets_a-moc_swidget.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='moc_swidget.cpp' object='libwidgets_a-moc_swidget.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-moc_swidget.o `test -f 'moc_swidget.cpp' || echo '$(srcdir)/'`moc_swidget.cpp
+
+libwidgets_a-moc_swidget.obj: moc_swidget.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-moc_swidget.obj -MD -MP -MF $(DEPDIR)/libwidgets_a-moc_swidget.Tpo -c -o libwidgets_a-moc_swidget.obj `if test -f 'moc_swidget.cpp'; then $(CYGPATH_W) 'moc_swidget.cpp'; else $(CYGPATH_W) '$(srcdir)/moc_swidget.cpp'; fi`
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-moc_swidget.Tpo $(DEPDIR)/libwidgets_a-moc_swidget.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='moc_swidget.cpp' object='libwidgets_a-moc_swidget.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-moc_swidget.obj `if test -f 'moc_swidget.cpp'; then $(CYGPATH_W) 'moc_swidget.cpp'; else $(CYGPATH_W) '$(srcdir)/moc_swidget.cpp'; fi`
+
+libwidgets_a-moc_tempolabel.o: moc_tempolabel.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-moc_tempolabel.o -MD -MP -MF $(DEPDIR)/libwidgets_a-moc_tempolabel.Tpo -c -o libwidgets_a-moc_tempolabel.o `test -f 'moc_tempolabel.cpp' || echo '$(srcdir)/'`moc_tempolabel.cpp
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-moc_tempolabel.Tpo $(DEPDIR)/libwidgets_a-moc_tempolabel.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='moc_tempolabel.cpp' object='libwidgets_a-moc_tempolabel.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-moc_tempolabel.o `test -f 'moc_tempolabel.cpp' || echo '$(srcdir)/'`moc_tempolabel.cpp
+
+libwidgets_a-moc_tempolabel.obj: moc_tempolabel.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-moc_tempolabel.obj -MD -MP -MF $(DEPDIR)/libwidgets_a-moc_tempolabel.Tpo -c -o libwidgets_a-moc_tempolabel.obj `if test -f 'moc_tempolabel.cpp'; then $(CYGPATH_W) 'moc_tempolabel.cpp'; else $(CYGPATH_W) '$(srcdir)/moc_tempolabel.cpp'; fi`
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-moc_tempolabel.Tpo $(DEPDIR)/libwidgets_a-moc_tempolabel.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='moc_tempolabel.cpp' object='libwidgets_a-moc_tempolabel.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-moc_tempolabel.obj `if test -f 'moc_tempolabel.cpp'; then $(CYGPATH_W) 'moc_tempolabel.cpp'; else $(CYGPATH_W) '$(srcdir)/moc_tempolabel.cpp'; fi`
+
+libwidgets_a-moc_tools.o: moc_tools.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-moc_tools.o -MD -MP -MF $(DEPDIR)/libwidgets_a-moc_tools.Tpo -c -o libwidgets_a-moc_tools.o `test -f 'moc_tools.cpp' || echo '$(srcdir)/'`moc_tools.cpp
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-moc_tools.Tpo $(DEPDIR)/libwidgets_a-moc_tools.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='moc_tools.cpp' object='libwidgets_a-moc_tools.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-moc_tools.o `test -f 'moc_tools.cpp' || echo '$(srcdir)/'`moc_tools.cpp
+
+libwidgets_a-moc_tools.obj: moc_tools.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-moc_tools.obj -MD -MP -MF $(DEPDIR)/libwidgets_a-moc_tools.Tpo -c -o libwidgets_a-moc_tools.obj `if test -f 'moc_tools.cpp'; then $(CYGPATH_W) 'moc_tools.cpp'; else $(CYGPATH_W) '$(srcdir)/moc_tools.cpp'; fi`
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-moc_tools.Tpo $(DEPDIR)/libwidgets_a-moc_tools.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='moc_tools.cpp' object='libwidgets_a-moc_tools.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-moc_tools.obj `if test -f 'moc_tools.cpp'; then $(CYGPATH_W) 'moc_tools.cpp'; else $(CYGPATH_W) '$(srcdir)/moc_tools.cpp'; fi`
+
+libwidgets_a-moc_popupmenu.o: moc_popupmenu.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-moc_popupmenu.o -MD -MP -MF $(DEPDIR)/libwidgets_a-moc_popupmenu.Tpo -c -o libwidgets_a-moc_popupmenu.o `test -f 'moc_popupmenu.cpp' || echo '$(srcdir)/'`moc_popupmenu.cpp
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-moc_popupmenu.Tpo $(DEPDIR)/libwidgets_a-moc_popupmenu.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='moc_popupmenu.cpp' object='libwidgets_a-moc_popupmenu.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-moc_popupmenu.o `test -f 'moc_popupmenu.cpp' || echo '$(srcdir)/'`moc_popupmenu.cpp
+
+libwidgets_a-moc_popupmenu.obj: moc_popupmenu.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-moc_popupmenu.obj -MD -MP -MF $(DEPDIR)/libwidgets_a-moc_popupmenu.Tpo -c -o libwidgets_a-moc_popupmenu.obj `if test -f 'moc_popupmenu.cpp'; then $(CYGPATH_W) 'moc_popupmenu.cpp'; else $(CYGPATH_W) '$(srcdir)/moc_popupmenu.cpp'; fi`
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-moc_popupmenu.Tpo $(DEPDIR)/libwidgets_a-moc_popupmenu.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='moc_popupmenu.cpp' object='libwidgets_a-moc_popupmenu.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-moc_popupmenu.obj `if test -f 'moc_popupmenu.cpp'; then $(CYGPATH_W) 'moc_popupmenu.cpp'; else $(CYGPATH_W) '$(srcdir)/moc_popupmenu.cpp'; fi`
+
+libwidgets_a-moc_fontsel.o: moc_fontsel.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-moc_fontsel.o -MD -MP -MF $(DEPDIR)/libwidgets_a-moc_fontsel.Tpo -c -o libwidgets_a-moc_fontsel.o `test -f 'moc_fontsel.cpp' || echo '$(srcdir)/'`moc_fontsel.cpp
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-moc_fontsel.Tpo $(DEPDIR)/libwidgets_a-moc_fontsel.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='moc_fontsel.cpp' object='libwidgets_a-moc_fontsel.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-moc_fontsel.o `test -f 'moc_fontsel.cpp' || echo '$(srcdir)/'`moc_fontsel.cpp
+
+libwidgets_a-moc_fontsel.obj: moc_fontsel.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-moc_fontsel.obj -MD -MP -MF $(DEPDIR)/libwidgets_a-moc_fontsel.Tpo -c -o libwidgets_a-moc_fontsel.obj `if test -f 'moc_fontsel.cpp'; then $(CYGPATH_W) 'moc_fontsel.cpp'; else $(CYGPATH_W) '$(srcdir)/moc_fontsel.cpp'; fi`
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-moc_fontsel.Tpo $(DEPDIR)/libwidgets_a-moc_fontsel.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='moc_fontsel.cpp' object='libwidgets_a-moc_fontsel.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-moc_fontsel.obj `if test -f 'moc_fontsel.cpp'; then $(CYGPATH_W) 'moc_fontsel.cpp'; else $(CYGPATH_W) '$(srcdir)/moc_fontsel.cpp'; fi`
+
+libwidgets_a-moc_ctrlcombo.o: moc_ctrlcombo.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-moc_ctrlcombo.o -MD -MP -MF $(DEPDIR)/libwidgets_a-moc_ctrlcombo.Tpo -c -o libwidgets_a-moc_ctrlcombo.o `test -f 'moc_ctrlcombo.cpp' || echo '$(srcdir)/'`moc_ctrlcombo.cpp
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-moc_ctrlcombo.Tpo $(DEPDIR)/libwidgets_a-moc_ctrlcombo.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='moc_ctrlcombo.cpp' object='libwidgets_a-moc_ctrlcombo.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-moc_ctrlcombo.o `test -f 'moc_ctrlcombo.cpp' || echo '$(srcdir)/'`moc_ctrlcombo.cpp
+
+libwidgets_a-moc_ctrlcombo.obj: moc_ctrlcombo.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-moc_ctrlcombo.obj -MD -MP -MF $(DEPDIR)/libwidgets_a-moc_ctrlcombo.Tpo -c -o libwidgets_a-moc_ctrlcombo.obj `if test -f 'moc_ctrlcombo.cpp'; then $(CYGPATH_W) 'moc_ctrlcombo.cpp'; else $(CYGPATH_W) '$(srcdir)/moc_ctrlcombo.cpp'; fi`
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-moc_ctrlcombo.Tpo $(DEPDIR)/libwidgets_a-moc_ctrlcombo.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='moc_ctrlcombo.cpp' object='libwidgets_a-moc_ctrlcombo.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-moc_ctrlcombo.obj `if test -f 'moc_ctrlcombo.cpp'; then $(CYGPATH_W) 'moc_ctrlcombo.cpp'; else $(CYGPATH_W) '$(srcdir)/moc_ctrlcombo.cpp'; fi`
+
+libwidgets_a-moc_sliderbase.o: moc_sliderbase.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-moc_sliderbase.o -MD -MP -MF $(DEPDIR)/libwidgets_a-moc_sliderbase.Tpo -c -o libwidgets_a-moc_sliderbase.o `test -f 'moc_sliderbase.cpp' || echo '$(srcdir)/'`moc_sliderbase.cpp
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-moc_sliderbase.Tpo $(DEPDIR)/libwidgets_a-moc_sliderbase.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='moc_sliderbase.cpp' object='libwidgets_a-moc_sliderbase.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-moc_sliderbase.o `test -f 'moc_sliderbase.cpp' || echo '$(srcdir)/'`moc_sliderbase.cpp
+
+libwidgets_a-moc_sliderbase.obj: moc_sliderbase.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-moc_sliderbase.obj -MD -MP -MF $(DEPDIR)/libwidgets_a-moc_sliderbase.Tpo -c -o libwidgets_a-moc_sliderbase.obj `if test -f 'moc_sliderbase.cpp'; then $(CYGPATH_W) 'moc_sliderbase.cpp'; else $(CYGPATH_W) '$(srcdir)/moc_sliderbase.cpp'; fi`
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-moc_sliderbase.Tpo $(DEPDIR)/libwidgets_a-moc_sliderbase.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='moc_sliderbase.cpp' object='libwidgets_a-moc_sliderbase.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-moc_sliderbase.obj `if test -f 'moc_sliderbase.cpp'; then $(CYGPATH_W) 'moc_sliderbase.cpp'; else $(CYGPATH_W) '$(srcdir)/moc_sliderbase.cpp'; fi`
+
+libwidgets_a-moc_slider.o: moc_slider.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-moc_slider.o -MD -MP -MF $(DEPDIR)/libwidgets_a-moc_slider.Tpo -c -o libwidgets_a-moc_slider.o `test -f 'moc_slider.cpp' || echo '$(srcdir)/'`moc_slider.cpp
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-moc_slider.Tpo $(DEPDIR)/libwidgets_a-moc_slider.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='moc_slider.cpp' object='libwidgets_a-moc_slider.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-moc_slider.o `test -f 'moc_slider.cpp' || echo '$(srcdir)/'`moc_slider.cpp
+
+libwidgets_a-moc_slider.obj: moc_slider.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-moc_slider.obj -MD -MP -MF $(DEPDIR)/libwidgets_a-moc_slider.Tpo -c -o libwidgets_a-moc_slider.obj `if test -f 'moc_slider.cpp'; then $(CYGPATH_W) 'moc_slider.cpp'; else $(CYGPATH_W) '$(srcdir)/moc_slider.cpp'; fi`
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-moc_slider.Tpo $(DEPDIR)/libwidgets_a-moc_slider.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='moc_slider.cpp' object='libwidgets_a-moc_slider.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-moc_slider.obj `if test -f 'moc_slider.cpp'; then $(CYGPATH_W) 'moc_slider.cpp'; else $(CYGPATH_W) '$(srcdir)/moc_slider.cpp'; fi`
+
+libwidgets_a-moc_midisyncimpl.o: moc_midisyncimpl.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-moc_midisyncimpl.o -MD -MP -MF $(DEPDIR)/libwidgets_a-moc_midisyncimpl.Tpo -c -o libwidgets_a-moc_midisyncimpl.o `test -f 'moc_midisyncimpl.cpp' || echo '$(srcdir)/'`moc_midisyncimpl.cpp
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-moc_midisyncimpl.Tpo $(DEPDIR)/libwidgets_a-moc_midisyncimpl.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='moc_midisyncimpl.cpp' object='libwidgets_a-moc_midisyncimpl.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-moc_midisyncimpl.o `test -f 'moc_midisyncimpl.cpp' || echo '$(srcdir)/'`moc_midisyncimpl.cpp
+
+libwidgets_a-moc_midisyncimpl.obj: moc_midisyncimpl.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-moc_midisyncimpl.obj -MD -MP -MF $(DEPDIR)/libwidgets_a-moc_midisyncimpl.Tpo -c -o libwidgets_a-moc_midisyncimpl.obj `if test -f 'moc_midisyncimpl.cpp'; then $(CYGPATH_W) 'moc_midisyncimpl.cpp'; else $(CYGPATH_W) '$(srcdir)/moc_midisyncimpl.cpp'; fi`
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-moc_midisyncimpl.Tpo $(DEPDIR)/libwidgets_a-moc_midisyncimpl.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='moc_midisyncimpl.cpp' object='libwidgets_a-moc_midisyncimpl.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-moc_midisyncimpl.obj `if test -f 'moc_midisyncimpl.cpp'; then $(CYGPATH_W) 'moc_midisyncimpl.cpp'; else $(CYGPATH_W) '$(srcdir)/moc_midisyncimpl.cpp'; fi`
+
+libwidgets_a-moc_header.o: moc_header.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-moc_header.o -MD -MP -MF $(DEPDIR)/libwidgets_a-moc_header.Tpo -c -o libwidgets_a-moc_header.o `test -f 'moc_header.cpp' || echo '$(srcdir)/'`moc_header.cpp
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-moc_header.Tpo $(DEPDIR)/libwidgets_a-moc_header.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='moc_header.cpp' object='libwidgets_a-moc_header.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-moc_header.o `test -f 'moc_header.cpp' || echo '$(srcdir)/'`moc_header.cpp
+
+libwidgets_a-moc_header.obj: moc_header.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-moc_header.obj -MD -MP -MF $(DEPDIR)/libwidgets_a-moc_header.Tpo -c -o libwidgets_a-moc_header.obj `if test -f 'moc_header.cpp'; then $(CYGPATH_W) 'moc_header.cpp'; else $(CYGPATH_W) '$(srcdir)/moc_header.cpp'; fi`
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-moc_header.Tpo $(DEPDIR)/libwidgets_a-moc_header.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='moc_header.cpp' object='libwidgets_a-moc_header.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-moc_header.obj `if test -f 'moc_header.cpp'; then $(CYGPATH_W) 'moc_header.cpp'; else $(CYGPATH_W) '$(srcdir)/moc_header.cpp'; fi`
+
+libwidgets_a-moc_knob.o: moc_knob.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-moc_knob.o -MD -MP -MF $(DEPDIR)/libwidgets_a-moc_knob.Tpo -c -o libwidgets_a-moc_knob.o `test -f 'moc_knob.cpp' || echo '$(srcdir)/'`moc_knob.cpp
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-moc_knob.Tpo $(DEPDIR)/libwidgets_a-moc_knob.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='moc_knob.cpp' object='libwidgets_a-moc_knob.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-moc_knob.o `test -f 'moc_knob.cpp' || echo '$(srcdir)/'`moc_knob.cpp
+
+libwidgets_a-moc_knob.obj: moc_knob.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-moc_knob.obj -MD -MP -MF $(DEPDIR)/libwidgets_a-moc_knob.Tpo -c -o libwidgets_a-moc_knob.obj `if test -f 'moc_knob.cpp'; then $(CYGPATH_W) 'moc_knob.cpp'; else $(CYGPATH_W) '$(srcdir)/moc_knob.cpp'; fi`
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-moc_knob.Tpo $(DEPDIR)/libwidgets_a-moc_knob.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='moc_knob.cpp' object='libwidgets_a-moc_knob.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-moc_knob.obj `if test -f 'moc_knob.cpp'; then $(CYGPATH_W) 'moc_knob.cpp'; else $(CYGPATH_W) '$(srcdir)/moc_knob.cpp'; fi`
+
+libwidgets_a-moc_mlabel.o: moc_mlabel.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-moc_mlabel.o -MD -MP -MF $(DEPDIR)/libwidgets_a-moc_mlabel.Tpo -c -o libwidgets_a-moc_mlabel.o `test -f 'moc_mlabel.cpp' || echo '$(srcdir)/'`moc_mlabel.cpp
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-moc_mlabel.Tpo $(DEPDIR)/libwidgets_a-moc_mlabel.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='moc_mlabel.cpp' object='libwidgets_a-moc_mlabel.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-moc_mlabel.o `test -f 'moc_mlabel.cpp' || echo '$(srcdir)/'`moc_mlabel.cpp
+
+libwidgets_a-moc_mlabel.obj: moc_mlabel.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-moc_mlabel.obj -MD -MP -MF $(DEPDIR)/libwidgets_a-moc_mlabel.Tpo -c -o libwidgets_a-moc_mlabel.obj `if test -f 'moc_mlabel.cpp'; then $(CYGPATH_W) 'moc_mlabel.cpp'; else $(CYGPATH_W) '$(srcdir)/moc_mlabel.cpp'; fi`
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-moc_mlabel.Tpo $(DEPDIR)/libwidgets_a-moc_mlabel.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='moc_mlabel.cpp' object='libwidgets_a-moc_mlabel.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-moc_mlabel.obj `if test -f 'moc_mlabel.cpp'; then $(CYGPATH_W) 'moc_mlabel.cpp'; else $(CYGPATH_W) '$(srcdir)/moc_mlabel.cpp'; fi`
+
+libwidgets_a-moc_genset.o: moc_genset.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-moc_genset.o -MD -MP -MF $(DEPDIR)/libwidgets_a-moc_genset.Tpo -c -o libwidgets_a-moc_genset.o `test -f 'moc_genset.cpp' || echo '$(srcdir)/'`moc_genset.cpp
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-moc_genset.Tpo $(DEPDIR)/libwidgets_a-moc_genset.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='moc_genset.cpp' object='libwidgets_a-moc_genset.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-moc_genset.o `test -f 'moc_genset.cpp' || echo '$(srcdir)/'`moc_genset.cpp
+
+libwidgets_a-moc_genset.obj: moc_genset.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-moc_genset.obj -MD -MP -MF $(DEPDIR)/libwidgets_a-moc_genset.Tpo -c -o libwidgets_a-moc_genset.obj `if test -f 'moc_genset.cpp'; then $(CYGPATH_W) 'moc_genset.cpp'; else $(CYGPATH_W) '$(srcdir)/moc_genset.cpp'; fi`
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-moc_genset.Tpo $(DEPDIR)/libwidgets_a-moc_genset.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='moc_genset.cpp' object='libwidgets_a-moc_genset.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-moc_genset.obj `if test -f 'moc_genset.cpp'; then $(CYGPATH_W) 'moc_genset.cpp'; else $(CYGPATH_W) '$(srcdir)/moc_genset.cpp'; fi`
+
+libwidgets_a-moc_mixdowndialog.o: moc_mixdowndialog.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-moc_mixdowndialog.o -MD -MP -MF $(DEPDIR)/libwidgets_a-moc_mixdowndialog.Tpo -c -o libwidgets_a-moc_mixdowndialog.o `test -f 'moc_mixdowndialog.cpp' || echo '$(srcdir)/'`moc_mixdowndialog.cpp
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-moc_mixdowndialog.Tpo $(DEPDIR)/libwidgets_a-moc_mixdowndialog.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='moc_mixdowndialog.cpp' object='libwidgets_a-moc_mixdowndialog.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-moc_mixdowndialog.o `test -f 'moc_mixdowndialog.cpp' || echo '$(srcdir)/'`moc_mixdowndialog.cpp
+
+libwidgets_a-moc_mixdowndialog.obj: moc_mixdowndialog.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-moc_mixdowndialog.obj -MD -MP -MF $(DEPDIR)/libwidgets_a-moc_mixdowndialog.Tpo -c -o libwidgets_a-moc_mixdowndialog.obj `if test -f 'moc_mixdowndialog.cpp'; then $(CYGPATH_W) 'moc_mixdowndialog.cpp'; else $(CYGPATH_W) '$(srcdir)/moc_mixdowndialog.cpp'; fi`
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-moc_mixdowndialog.Tpo $(DEPDIR)/libwidgets_a-moc_mixdowndialog.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='moc_mixdowndialog.cpp' object='libwidgets_a-moc_mixdowndialog.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-moc_mixdowndialog.obj `if test -f 'moc_mixdowndialog.cpp'; then $(CYGPATH_W) 'moc_mixdowndialog.cpp'; else $(CYGPATH_W) '$(srcdir)/moc_mixdowndialog.cpp'; fi`
+
+libwidgets_a-moc_spinboxFP.o: moc_spinboxFP.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-moc_spinboxFP.o -MD -MP -MF $(DEPDIR)/libwidgets_a-moc_spinboxFP.Tpo -c -o libwidgets_a-moc_spinboxFP.o `test -f 'moc_spinboxFP.cpp' || echo '$(srcdir)/'`moc_spinboxFP.cpp
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-moc_spinboxFP.Tpo $(DEPDIR)/libwidgets_a-moc_spinboxFP.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='moc_spinboxFP.cpp' object='libwidgets_a-moc_spinboxFP.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-moc_spinboxFP.o `test -f 'moc_spinboxFP.cpp' || echo '$(srcdir)/'`moc_spinboxFP.cpp
+
+libwidgets_a-moc_spinboxFP.obj: moc_spinboxFP.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-moc_spinboxFP.obj -MD -MP -MF $(DEPDIR)/libwidgets_a-moc_spinboxFP.Tpo -c -o libwidgets_a-moc_spinboxFP.obj `if test -f 'moc_spinboxFP.cpp'; then $(CYGPATH_W) 'moc_spinboxFP.cpp'; else $(CYGPATH_W) '$(srcdir)/moc_spinboxFP.cpp'; fi`
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-moc_spinboxFP.Tpo $(DEPDIR)/libwidgets_a-moc_spinboxFP.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='moc_spinboxFP.cpp' object='libwidgets_a-moc_spinboxFP.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-moc_spinboxFP.obj `if test -f 'moc_spinboxFP.cpp'; then $(CYGPATH_W) 'moc_spinboxFP.cpp'; else $(CYGPATH_W) '$(srcdir)/moc_spinboxFP.cpp'; fi`
+
+libwidgets_a-moc_spinbox.o: moc_spinbox.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-moc_spinbox.o -MD -MP -MF $(DEPDIR)/libwidgets_a-moc_spinbox.Tpo -c -o libwidgets_a-moc_spinbox.o `test -f 'moc_spinbox.cpp' || echo '$(srcdir)/'`moc_spinbox.cpp
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-moc_spinbox.Tpo $(DEPDIR)/libwidgets_a-moc_spinbox.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='moc_spinbox.cpp' object='libwidgets_a-moc_spinbox.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-moc_spinbox.o `test -f 'moc_spinbox.cpp' || echo '$(srcdir)/'`moc_spinbox.cpp
+
+libwidgets_a-moc_spinbox.obj: moc_spinbox.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-moc_spinbox.obj -MD -MP -MF $(DEPDIR)/libwidgets_a-moc_spinbox.Tpo -c -o libwidgets_a-moc_spinbox.obj `if test -f 'moc_spinbox.cpp'; then $(CYGPATH_W) 'moc_spinbox.cpp'; else $(CYGPATH_W) '$(srcdir)/moc_spinbox.cpp'; fi`
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-moc_spinbox.Tpo $(DEPDIR)/libwidgets_a-moc_spinbox.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='moc_spinbox.cpp' object='libwidgets_a-moc_spinbox.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-moc_spinbox.obj `if test -f 'moc_spinbox.cpp'; then $(CYGPATH_W) 'moc_spinbox.cpp'; else $(CYGPATH_W) '$(srcdir)/moc_spinbox.cpp'; fi`
+
+libwidgets_a-moc_comboQuant.o: moc_comboQuant.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-moc_comboQuant.o -MD -MP -MF $(DEPDIR)/libwidgets_a-moc_comboQuant.Tpo -c -o libwidgets_a-moc_comboQuant.o `test -f 'moc_comboQuant.cpp' || echo '$(srcdir)/'`moc_comboQuant.cpp
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-moc_comboQuant.Tpo $(DEPDIR)/libwidgets_a-moc_comboQuant.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='moc_comboQuant.cpp' object='libwidgets_a-moc_comboQuant.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-moc_comboQuant.o `test -f 'moc_comboQuant.cpp' || echo '$(srcdir)/'`moc_comboQuant.cpp
+
+libwidgets_a-moc_comboQuant.obj: moc_comboQuant.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-moc_comboQuant.obj -MD -MP -MF $(DEPDIR)/libwidgets_a-moc_comboQuant.Tpo -c -o libwidgets_a-moc_comboQuant.obj `if test -f 'moc_comboQuant.cpp'; then $(CYGPATH_W) 'moc_comboQuant.cpp'; else $(CYGPATH_W) '$(srcdir)/moc_comboQuant.cpp'; fi`
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-moc_comboQuant.Tpo $(DEPDIR)/libwidgets_a-moc_comboQuant.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='moc_comboQuant.cpp' object='libwidgets_a-moc_comboQuant.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-moc_comboQuant.obj `if test -f 'moc_comboQuant.cpp'; then $(CYGPATH_W) 'moc_comboQuant.cpp'; else $(CYGPATH_W) '$(srcdir)/moc_comboQuant.cpp'; fi`
+
+libwidgets_a-moc_bigtime.o: moc_bigtime.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-moc_bigtime.o -MD -MP -MF $(DEPDIR)/libwidgets_a-moc_bigtime.Tpo -c -o libwidgets_a-moc_bigtime.o `test -f 'moc_bigtime.cpp' || echo '$(srcdir)/'`moc_bigtime.cpp
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-moc_bigtime.Tpo $(DEPDIR)/libwidgets_a-moc_bigtime.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='moc_bigtime.cpp' object='libwidgets_a-moc_bigtime.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-moc_bigtime.o `test -f 'moc_bigtime.cpp' || echo '$(srcdir)/'`moc_bigtime.cpp
+
+libwidgets_a-moc_bigtime.obj: moc_bigtime.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-moc_bigtime.obj -MD -MP -MF $(DEPDIR)/libwidgets_a-moc_bigtime.Tpo -c -o libwidgets_a-moc_bigtime.obj `if test -f 'moc_bigtime.cpp'; then $(CYGPATH_W) 'moc_bigtime.cpp'; else $(CYGPATH_W) '$(srcdir)/moc_bigtime.cpp'; fi`
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-moc_bigtime.Tpo $(DEPDIR)/libwidgets_a-moc_bigtime.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='moc_bigtime.cpp' object='libwidgets_a-moc_bigtime.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-moc_bigtime.obj `if test -f 'moc_bigtime.cpp'; then $(CYGPATH_W) 'moc_bigtime.cpp'; else $(CYGPATH_W) '$(srcdir)/moc_bigtime.cpp'; fi`
+
+libwidgets_a-moc_comment.o: moc_comment.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-moc_comment.o -MD -MP -MF $(DEPDIR)/libwidgets_a-moc_comment.Tpo -c -o libwidgets_a-moc_comment.o `test -f 'moc_comment.cpp' || echo '$(srcdir)/'`moc_comment.cpp
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-moc_comment.Tpo $(DEPDIR)/libwidgets_a-moc_comment.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='moc_comment.cpp' object='libwidgets_a-moc_comment.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-moc_comment.o `test -f 'moc_comment.cpp' || echo '$(srcdir)/'`moc_comment.cpp
+
+libwidgets_a-moc_comment.obj: moc_comment.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-moc_comment.obj -MD -MP -MF $(DEPDIR)/libwidgets_a-moc_comment.Tpo -c -o libwidgets_a-moc_comment.obj `if test -f 'moc_comment.cpp'; then $(CYGPATH_W) 'moc_comment.cpp'; else $(CYGPATH_W) '$(srcdir)/moc_comment.cpp'; fi`
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-moc_comment.Tpo $(DEPDIR)/libwidgets_a-moc_comment.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='moc_comment.cpp' object='libwidgets_a-moc_comment.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-moc_comment.obj `if test -f 'moc_comment.cpp'; then $(CYGPATH_W) 'moc_comment.cpp'; else $(CYGPATH_W) '$(srcdir)/moc_comment.cpp'; fi`
+
+libwidgets_a-moc_splitter.o: moc_splitter.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-moc_splitter.o -MD -MP -MF $(DEPDIR)/libwidgets_a-moc_splitter.Tpo -c -o libwidgets_a-moc_splitter.o `test -f 'moc_splitter.cpp' || echo '$(srcdir)/'`moc_splitter.cpp
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-moc_splitter.Tpo $(DEPDIR)/libwidgets_a-moc_splitter.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='moc_splitter.cpp' object='libwidgets_a-moc_splitter.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-moc_splitter.o `test -f 'moc_splitter.cpp' || echo '$(srcdir)/'`moc_splitter.cpp
+
+libwidgets_a-moc_splitter.obj: moc_splitter.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-moc_splitter.obj -MD -MP -MF $(DEPDIR)/libwidgets_a-moc_splitter.Tpo -c -o libwidgets_a-moc_splitter.obj `if test -f 'moc_splitter.cpp'; then $(CYGPATH_W) 'moc_splitter.cpp'; else $(CYGPATH_W) '$(srcdir)/moc_splitter.cpp'; fi`
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-moc_splitter.Tpo $(DEPDIR)/libwidgets_a-moc_splitter.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='moc_splitter.cpp' object='libwidgets_a-moc_splitter.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-moc_splitter.obj `if test -f 'moc_splitter.cpp'; then $(CYGPATH_W) 'moc_splitter.cpp'; else $(CYGPATH_W) '$(srcdir)/moc_splitter.cpp'; fi`
+
+libwidgets_a-moc_gatetime.o: moc_gatetime.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-moc_gatetime.o -MD -MP -MF $(DEPDIR)/libwidgets_a-moc_gatetime.Tpo -c -o libwidgets_a-moc_gatetime.o `test -f 'moc_gatetime.cpp' || echo '$(srcdir)/'`moc_gatetime.cpp
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-moc_gatetime.Tpo $(DEPDIR)/libwidgets_a-moc_gatetime.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='moc_gatetime.cpp' object='libwidgets_a-moc_gatetime.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-moc_gatetime.o `test -f 'moc_gatetime.cpp' || echo '$(srcdir)/'`moc_gatetime.cpp
+
+libwidgets_a-moc_gatetime.obj: moc_gatetime.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-moc_gatetime.obj -MD -MP -MF $(DEPDIR)/libwidgets_a-moc_gatetime.Tpo -c -o libwidgets_a-moc_gatetime.obj `if test -f 'moc_gatetime.cpp'; then $(CYGPATH_W) 'moc_gatetime.cpp'; else $(CYGPATH_W) '$(srcdir)/moc_gatetime.cpp'; fi`
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-moc_gatetime.Tpo $(DEPDIR)/libwidgets_a-moc_gatetime.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='moc_gatetime.cpp' object='libwidgets_a-moc_gatetime.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-moc_gatetime.obj `if test -f 'moc_gatetime.cpp'; then $(CYGPATH_W) 'moc_gatetime.cpp'; else $(CYGPATH_W) '$(srcdir)/moc_gatetime.cpp'; fi`
+
+libwidgets_a-moc_velocity.o: moc_velocity.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-moc_velocity.o -MD -MP -MF $(DEPDIR)/libwidgets_a-moc_velocity.Tpo -c -o libwidgets_a-moc_velocity.o `test -f 'moc_velocity.cpp' || echo '$(srcdir)/'`moc_velocity.cpp
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-moc_velocity.Tpo $(DEPDIR)/libwidgets_a-moc_velocity.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='moc_velocity.cpp' object='libwidgets_a-moc_velocity.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-moc_velocity.o `test -f 'moc_velocity.cpp' || echo '$(srcdir)/'`moc_velocity.cpp
+
+libwidgets_a-moc_velocity.obj: moc_velocity.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-moc_velocity.obj -MD -MP -MF $(DEPDIR)/libwidgets_a-moc_velocity.Tpo -c -o libwidgets_a-moc_velocity.obj `if test -f 'moc_velocity.cpp'; then $(CYGPATH_W) 'moc_velocity.cpp'; else $(CYGPATH_W) '$(srcdir)/moc_velocity.cpp'; fi`
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-moc_velocity.Tpo $(DEPDIR)/libwidgets_a-moc_velocity.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='moc_velocity.cpp' object='libwidgets_a-moc_velocity.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-moc_velocity.obj `if test -f 'moc_velocity.cpp'; then $(CYGPATH_W) 'moc_velocity.cpp'; else $(CYGPATH_W) '$(srcdir)/moc_velocity.cpp'; fi`
+
+libwidgets_a-moc_metronome.o: moc_metronome.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-moc_metronome.o -MD -MP -MF $(DEPDIR)/libwidgets_a-moc_metronome.Tpo -c -o libwidgets_a-moc_metronome.o `test -f 'moc_metronome.cpp' || echo '$(srcdir)/'`moc_metronome.cpp
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-moc_metronome.Tpo $(DEPDIR)/libwidgets_a-moc_metronome.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='moc_metronome.cpp' object='libwidgets_a-moc_metronome.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-moc_metronome.o `test -f 'moc_metronome.cpp' || echo '$(srcdir)/'`moc_metronome.cpp
+
+libwidgets_a-moc_metronome.obj: moc_metronome.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-moc_metronome.obj -MD -MP -MF $(DEPDIR)/libwidgets_a-moc_metronome.Tpo -c -o libwidgets_a-moc_metronome.obj `if test -f 'moc_metronome.cpp'; then $(CYGPATH_W) 'moc_metronome.cpp'; else $(CYGPATH_W) '$(srcdir)/moc_metronome.cpp'; fi`
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-moc_metronome.Tpo $(DEPDIR)/libwidgets_a-moc_metronome.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='moc_metronome.cpp' object='libwidgets_a-moc_metronome.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-moc_metronome.obj `if test -f 'moc_metronome.cpp'; then $(CYGPATH_W) 'moc_metronome.cpp'; else $(CYGPATH_W) '$(srcdir)/moc_metronome.cpp'; fi`
+
+libwidgets_a-moc_posedit.o: moc_posedit.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-moc_posedit.o -MD -MP -MF $(DEPDIR)/libwidgets_a-moc_posedit.Tpo -c -o libwidgets_a-moc_posedit.o `test -f 'moc_posedit.cpp' || echo '$(srcdir)/'`moc_posedit.cpp
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-moc_posedit.Tpo $(DEPDIR)/libwidgets_a-moc_posedit.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='moc_posedit.cpp' object='libwidgets_a-moc_posedit.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-moc_posedit.o `test -f 'moc_posedit.cpp' || echo '$(srcdir)/'`moc_posedit.cpp
+
+libwidgets_a-moc_posedit.obj: moc_posedit.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-moc_posedit.obj -MD -MP -MF $(DEPDIR)/libwidgets_a-moc_posedit.Tpo -c -o libwidgets_a-moc_posedit.obj `if test -f 'moc_posedit.cpp'; then $(CYGPATH_W) 'moc_posedit.cpp'; else $(CYGPATH_W) '$(srcdir)/moc_posedit.cpp'; fi`
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-moc_posedit.Tpo $(DEPDIR)/libwidgets_a-moc_posedit.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='moc_posedit.cpp' object='libwidgets_a-moc_posedit.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-moc_posedit.obj `if test -f 'moc_posedit.cpp'; then $(CYGPATH_W) 'moc_posedit.cpp'; else $(CYGPATH_W) '$(srcdir)/moc_posedit.cpp'; fi`
+
+libwidgets_a-moc_pitchedit.o: moc_pitchedit.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-moc_pitchedit.o -MD -MP -MF $(DEPDIR)/libwidgets_a-moc_pitchedit.Tpo -c -o libwidgets_a-moc_pitchedit.o `test -f 'moc_pitchedit.cpp' || echo '$(srcdir)/'`moc_pitchedit.cpp
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-moc_pitchedit.Tpo $(DEPDIR)/libwidgets_a-moc_pitchedit.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='moc_pitchedit.cpp' object='libwidgets_a-moc_pitchedit.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-moc_pitchedit.o `test -f 'moc_pitchedit.cpp' || echo '$(srcdir)/'`moc_pitchedit.cpp
+
+libwidgets_a-moc_pitchedit.obj: moc_pitchedit.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-moc_pitchedit.obj -MD -MP -MF $(DEPDIR)/libwidgets_a-moc_pitchedit.Tpo -c -o libwidgets_a-moc_pitchedit.obj `if test -f 'moc_pitchedit.cpp'; then $(CYGPATH_W) 'moc_pitchedit.cpp'; else $(CYGPATH_W) '$(srcdir)/moc_pitchedit.cpp'; fi`
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-moc_pitchedit.Tpo $(DEPDIR)/libwidgets_a-moc_pitchedit.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='moc_pitchedit.cpp' object='libwidgets_a-moc_pitchedit.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-moc_pitchedit.obj `if test -f 'moc_pitchedit.cpp'; then $(CYGPATH_W) 'moc_pitchedit.cpp'; else $(CYGPATH_W) '$(srcdir)/moc_pitchedit.cpp'; fi`
+
+libwidgets_a-moc_pitchlabel.o: moc_pitchlabel.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-moc_pitchlabel.o -MD -MP -MF $(DEPDIR)/libwidgets_a-moc_pitchlabel.Tpo -c -o libwidgets_a-moc_pitchlabel.o `test -f 'moc_pitchlabel.cpp' || echo '$(srcdir)/'`moc_pitchlabel.cpp
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-moc_pitchlabel.Tpo $(DEPDIR)/libwidgets_a-moc_pitchlabel.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='moc_pitchlabel.cpp' object='libwidgets_a-moc_pitchlabel.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-moc_pitchlabel.o `test -f 'moc_pitchlabel.cpp' || echo '$(srcdir)/'`moc_pitchlabel.cpp
+
+libwidgets_a-moc_pitchlabel.obj: moc_pitchlabel.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-moc_pitchlabel.obj -MD -MP -MF $(DEPDIR)/libwidgets_a-moc_pitchlabel.Tpo -c -o libwidgets_a-moc_pitchlabel.obj `if test -f 'moc_pitchlabel.cpp'; then $(CYGPATH_W) 'moc_pitchlabel.cpp'; else $(CYGPATH_W) '$(srcdir)/moc_pitchlabel.cpp'; fi`
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-moc_pitchlabel.Tpo $(DEPDIR)/libwidgets_a-moc_pitchlabel.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='moc_pitchlabel.cpp' object='libwidgets_a-moc_pitchlabel.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-moc_pitchlabel.obj `if test -f 'moc_pitchlabel.cpp'; then $(CYGPATH_W) 'moc_pitchlabel.cpp'; else $(CYGPATH_W) '$(srcdir)/moc_pitchlabel.cpp'; fi`
+
+libwidgets_a-moc_poslabel.o: moc_poslabel.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-moc_poslabel.o -MD -MP -MF $(DEPDIR)/libwidgets_a-moc_poslabel.Tpo -c -o libwidgets_a-moc_poslabel.o `test -f 'moc_poslabel.cpp' || echo '$(srcdir)/'`moc_poslabel.cpp
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-moc_poslabel.Tpo $(DEPDIR)/libwidgets_a-moc_poslabel.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='moc_poslabel.cpp' object='libwidgets_a-moc_poslabel.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-moc_poslabel.o `test -f 'moc_poslabel.cpp' || echo '$(srcdir)/'`moc_poslabel.cpp
+
+libwidgets_a-moc_poslabel.obj: moc_poslabel.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-moc_poslabel.obj -MD -MP -MF $(DEPDIR)/libwidgets_a-moc_poslabel.Tpo -c -o libwidgets_a-moc_poslabel.obj `if test -f 'moc_poslabel.cpp'; then $(CYGPATH_W) 'moc_poslabel.cpp'; else $(CYGPATH_W) '$(srcdir)/moc_poslabel.cpp'; fi`
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-moc_poslabel.Tpo $(DEPDIR)/libwidgets_a-moc_poslabel.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='moc_poslabel.cpp' object='libwidgets_a-moc_poslabel.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-moc_poslabel.obj `if test -f 'moc_poslabel.cpp'; then $(CYGPATH_W) 'moc_poslabel.cpp'; else $(CYGPATH_W) '$(srcdir)/moc_poslabel.cpp'; fi`
+
+libwidgets_a-moc_filedialog.o: moc_filedialog.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-moc_filedialog.o -MD -MP -MF $(DEPDIR)/libwidgets_a-moc_filedialog.Tpo -c -o libwidgets_a-moc_filedialog.o `test -f 'moc_filedialog.cpp' || echo '$(srcdir)/'`moc_filedialog.cpp
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-moc_filedialog.Tpo $(DEPDIR)/libwidgets_a-moc_filedialog.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='moc_filedialog.cpp' object='libwidgets_a-moc_filedialog.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-moc_filedialog.o `test -f 'moc_filedialog.cpp' || echo '$(srcdir)/'`moc_filedialog.cpp
+
+libwidgets_a-moc_filedialog.obj: moc_filedialog.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-moc_filedialog.obj -MD -MP -MF $(DEPDIR)/libwidgets_a-moc_filedialog.Tpo -c -o libwidgets_a-moc_filedialog.obj `if test -f 'moc_filedialog.cpp'; then $(CYGPATH_W) 'moc_filedialog.cpp'; else $(CYGPATH_W) '$(srcdir)/moc_filedialog.cpp'; fi`
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-moc_filedialog.Tpo $(DEPDIR)/libwidgets_a-moc_filedialog.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='moc_filedialog.cpp' object='libwidgets_a-moc_filedialog.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-moc_filedialog.obj `if test -f 'moc_filedialog.cpp'; then $(CYGPATH_W) 'moc_filedialog.cpp'; else $(CYGPATH_W) '$(srcdir)/moc_filedialog.cpp'; fi`
+
+libwidgets_a-moc_sigedit.o: moc_sigedit.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-moc_sigedit.o -MD -MP -MF $(DEPDIR)/libwidgets_a-moc_sigedit.Tpo -c -o libwidgets_a-moc_sigedit.o `test -f 'moc_sigedit.cpp' || echo '$(srcdir)/'`moc_sigedit.cpp
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-moc_sigedit.Tpo $(DEPDIR)/libwidgets_a-moc_sigedit.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='moc_sigedit.cpp' object='libwidgets_a-moc_sigedit.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-moc_sigedit.o `test -f 'moc_sigedit.cpp' || echo '$(srcdir)/'`moc_sigedit.cpp
+
+libwidgets_a-moc_sigedit.obj: moc_sigedit.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-moc_sigedit.obj -MD -MP -MF $(DEPDIR)/libwidgets_a-moc_sigedit.Tpo -c -o libwidgets_a-moc_sigedit.obj `if test -f 'moc_sigedit.cpp'; then $(CYGPATH_W) 'moc_sigedit.cpp'; else $(CYGPATH_W) '$(srcdir)/moc_sigedit.cpp'; fi`
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-moc_sigedit.Tpo $(DEPDIR)/libwidgets_a-moc_sigedit.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='moc_sigedit.cpp' object='libwidgets_a-moc_sigedit.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-moc_sigedit.obj `if test -f 'moc_sigedit.cpp'; then $(CYGPATH_W) 'moc_sigedit.cpp'; else $(CYGPATH_W) '$(srcdir)/moc_sigedit.cpp'; fi`
+
+libwidgets_a-moc_shortcutconfig.o: moc_shortcutconfig.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-moc_shortcutconfig.o -MD -MP -MF $(DEPDIR)/libwidgets_a-moc_shortcutconfig.Tpo -c -o libwidgets_a-moc_shortcutconfig.o `test -f 'moc_shortcutconfig.cpp' || echo '$(srcdir)/'`moc_shortcutconfig.cpp
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-moc_shortcutconfig.Tpo $(DEPDIR)/libwidgets_a-moc_shortcutconfig.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='moc_shortcutconfig.cpp' object='libwidgets_a-moc_shortcutconfig.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-moc_shortcutconfig.o `test -f 'moc_shortcutconfig.cpp' || echo '$(srcdir)/'`moc_shortcutconfig.cpp
+
+libwidgets_a-moc_shortcutconfig.obj: moc_shortcutconfig.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-moc_shortcutconfig.obj -MD -MP -MF $(DEPDIR)/libwidgets_a-moc_shortcutconfig.Tpo -c -o libwidgets_a-moc_shortcutconfig.obj `if test -f 'moc_shortcutconfig.cpp'; then $(CYGPATH_W) 'moc_shortcutconfig.cpp'; else $(CYGPATH_W) '$(srcdir)/moc_shortcutconfig.cpp'; fi`
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-moc_shortcutconfig.Tpo $(DEPDIR)/libwidgets_a-moc_shortcutconfig.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='moc_shortcutconfig.cpp' object='libwidgets_a-moc_shortcutconfig.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-moc_shortcutconfig.obj `if test -f 'moc_shortcutconfig.cpp'; then $(CYGPATH_W) 'moc_shortcutconfig.cpp'; else $(CYGPATH_W) '$(srcdir)/moc_shortcutconfig.cpp'; fi`
+
+libwidgets_a-moc_shortcutcapturedialog.o: moc_shortcutcapturedialog.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-moc_shortcutcapturedialog.o -MD -MP -MF $(DEPDIR)/libwidgets_a-moc_shortcutcapturedialog.Tpo -c -o libwidgets_a-moc_shortcutcapturedialog.o `test -f 'moc_shortcutcapturedialog.cpp' || echo '$(srcdir)/'`moc_shortcutcapturedialog.cpp
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-moc_shortcutcapturedialog.Tpo $(DEPDIR)/libwidgets_a-moc_shortcutcapturedialog.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='moc_shortcutcapturedialog.cpp' object='libwidgets_a-moc_shortcutcapturedialog.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-moc_shortcutcapturedialog.o `test -f 'moc_shortcutcapturedialog.cpp' || echo '$(srcdir)/'`moc_shortcutcapturedialog.cpp
+
+libwidgets_a-moc_shortcutcapturedialog.obj: moc_shortcutcapturedialog.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-moc_shortcutcapturedialog.obj -MD -MP -MF $(DEPDIR)/libwidgets_a-moc_shortcutcapturedialog.Tpo -c -o libwidgets_a-moc_shortcutcapturedialog.obj `if test -f 'moc_shortcutcapturedialog.cpp'; then $(CYGPATH_W) 'moc_shortcutcapturedialog.cpp'; else $(CYGPATH_W) '$(srcdir)/moc_shortcutcapturedialog.cpp'; fi`
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-moc_shortcutcapturedialog.Tpo $(DEPDIR)/libwidgets_a-moc_shortcutcapturedialog.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='moc_shortcutcapturedialog.cpp' object='libwidgets_a-moc_shortcutcapturedialog.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-moc_shortcutcapturedialog.obj `if test -f 'moc_shortcutcapturedialog.cpp'; then $(CYGPATH_W) 'moc_shortcutcapturedialog.cpp'; else $(CYGPATH_W) '$(srcdir)/moc_shortcutcapturedialog.cpp'; fi`
+
+libwidgets_a-moc_combobox.o: moc_combobox.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-moc_combobox.o -MD -MP -MF $(DEPDIR)/libwidgets_a-moc_combobox.Tpo -c -o libwidgets_a-moc_combobox.o `test -f 'moc_combobox.cpp' || echo '$(srcdir)/'`moc_combobox.cpp
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-moc_combobox.Tpo $(DEPDIR)/libwidgets_a-moc_combobox.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='moc_combobox.cpp' object='libwidgets_a-moc_combobox.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-moc_combobox.o `test -f 'moc_combobox.cpp' || echo '$(srcdir)/'`moc_combobox.cpp
+
+libwidgets_a-moc_combobox.obj: moc_combobox.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-moc_combobox.obj -MD -MP -MF $(DEPDIR)/libwidgets_a-moc_combobox.Tpo -c -o libwidgets_a-moc_combobox.obj `if test -f 'moc_combobox.cpp'; then $(CYGPATH_W) 'moc_combobox.cpp'; else $(CYGPATH_W) '$(srcdir)/moc_combobox.cpp'; fi`
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-moc_combobox.Tpo $(DEPDIR)/libwidgets_a-moc_combobox.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='moc_combobox.cpp' object='libwidgets_a-moc_combobox.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-moc_combobox.obj `if test -f 'moc_combobox.cpp'; then $(CYGPATH_W) 'moc_combobox.cpp'; else $(CYGPATH_W) '$(srcdir)/moc_combobox.cpp'; fi`
+
+libwidgets_a-moc_aboutbox_impl.o: moc_aboutbox_impl.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-moc_aboutbox_impl.o -MD -MP -MF $(DEPDIR)/libwidgets_a-moc_aboutbox_impl.Tpo -c -o libwidgets_a-moc_aboutbox_impl.o `test -f 'moc_aboutbox_impl.cpp' || echo '$(srcdir)/'`moc_aboutbox_impl.cpp
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-moc_aboutbox_impl.Tpo $(DEPDIR)/libwidgets_a-moc_aboutbox_impl.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='moc_aboutbox_impl.cpp' object='libwidgets_a-moc_aboutbox_impl.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-moc_aboutbox_impl.o `test -f 'moc_aboutbox_impl.cpp' || echo '$(srcdir)/'`moc_aboutbox_impl.cpp
+
+libwidgets_a-moc_aboutbox_impl.obj: moc_aboutbox_impl.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-moc_aboutbox_impl.obj -MD -MP -MF $(DEPDIR)/libwidgets_a-moc_aboutbox_impl.Tpo -c -o libwidgets_a-moc_aboutbox_impl.obj `if test -f 'moc_aboutbox_impl.cpp'; then $(CYGPATH_W) 'moc_aboutbox_impl.cpp'; else $(CYGPATH_W) '$(srcdir)/moc_aboutbox_impl.cpp'; fi`
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-moc_aboutbox_impl.Tpo $(DEPDIR)/libwidgets_a-moc_aboutbox_impl.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='moc_aboutbox_impl.cpp' object='libwidgets_a-moc_aboutbox_impl.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-moc_aboutbox_impl.obj `if test -f 'moc_aboutbox_impl.cpp'; then $(CYGPATH_W) 'moc_aboutbox_impl.cpp'; else $(CYGPATH_W) '$(srcdir)/moc_aboutbox_impl.cpp'; fi`
+
+libwidgets_a-moc_aboutbox.o: moc_aboutbox.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-moc_aboutbox.o -MD -MP -MF $(DEPDIR)/libwidgets_a-moc_aboutbox.Tpo -c -o libwidgets_a-moc_aboutbox.o `test -f 'moc_aboutbox.cpp' || echo '$(srcdir)/'`moc_aboutbox.cpp
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-moc_aboutbox.Tpo $(DEPDIR)/libwidgets_a-moc_aboutbox.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='moc_aboutbox.cpp' object='libwidgets_a-moc_aboutbox.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-moc_aboutbox.o `test -f 'moc_aboutbox.cpp' || echo '$(srcdir)/'`moc_aboutbox.cpp
+
+libwidgets_a-moc_aboutbox.obj: moc_aboutbox.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-moc_aboutbox.obj -MD -MP -MF $(DEPDIR)/libwidgets_a-moc_aboutbox.Tpo -c -o libwidgets_a-moc_aboutbox.obj `if test -f 'moc_aboutbox.cpp'; then $(CYGPATH_W) 'moc_aboutbox.cpp'; else $(CYGPATH_W) '$(srcdir)/moc_aboutbox.cpp'; fi`
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-moc_aboutbox.Tpo $(DEPDIR)/libwidgets_a-moc_aboutbox.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='moc_aboutbox.cpp' object='libwidgets_a-moc_aboutbox.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-moc_aboutbox.obj `if test -f 'moc_aboutbox.cpp'; then $(CYGPATH_W) 'moc_aboutbox.cpp'; else $(CYGPATH_W) '$(srcdir)/moc_aboutbox.cpp'; fi`
+
+libwidgets_a-moc_songinfo.o: moc_songinfo.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-moc_songinfo.o -MD -MP -MF $(DEPDIR)/libwidgets_a-moc_songinfo.Tpo -c -o libwidgets_a-moc_songinfo.o `test -f 'moc_songinfo.cpp' || echo '$(srcdir)/'`moc_songinfo.cpp
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-moc_songinfo.Tpo $(DEPDIR)/libwidgets_a-moc_songinfo.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='moc_songinfo.cpp' object='libwidgets_a-moc_songinfo.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-moc_songinfo.o `test -f 'moc_songinfo.cpp' || echo '$(srcdir)/'`moc_songinfo.cpp
+
+libwidgets_a-moc_songinfo.obj: moc_songinfo.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-moc_songinfo.obj -MD -MP -MF $(DEPDIR)/libwidgets_a-moc_songinfo.Tpo -c -o libwidgets_a-moc_songinfo.obj `if test -f 'moc_songinfo.cpp'; then $(CYGPATH_W) 'moc_songinfo.cpp'; else $(CYGPATH_W) '$(srcdir)/moc_songinfo.cpp'; fi`
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-moc_songinfo.Tpo $(DEPDIR)/libwidgets_a-moc_songinfo.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='moc_songinfo.cpp' object='libwidgets_a-moc_songinfo.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-moc_songinfo.obj `if test -f 'moc_songinfo.cpp'; then $(CYGPATH_W) 'moc_songinfo.cpp'; else $(CYGPATH_W) '$(srcdir)/moc_songinfo.cpp'; fi`
+
+libwidgets_a-moc_didyouknow.o: moc_didyouknow.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-moc_didyouknow.o -MD -MP -MF $(DEPDIR)/libwidgets_a-moc_didyouknow.Tpo -c -o libwidgets_a-moc_didyouknow.o `test -f 'moc_didyouknow.cpp' || echo '$(srcdir)/'`moc_didyouknow.cpp
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-moc_didyouknow.Tpo $(DEPDIR)/libwidgets_a-moc_didyouknow.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='moc_didyouknow.cpp' object='libwidgets_a-moc_didyouknow.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-moc_didyouknow.o `test -f 'moc_didyouknow.cpp' || echo '$(srcdir)/'`moc_didyouknow.cpp
+
+libwidgets_a-moc_didyouknow.obj: moc_didyouknow.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-moc_didyouknow.obj -MD -MP -MF $(DEPDIR)/libwidgets_a-moc_didyouknow.Tpo -c -o libwidgets_a-moc_didyouknow.obj `if test -f 'moc_didyouknow.cpp'; then $(CYGPATH_W) 'moc_didyouknow.cpp'; else $(CYGPATH_W) '$(srcdir)/moc_didyouknow.cpp'; fi`
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-moc_didyouknow.Tpo $(DEPDIR)/libwidgets_a-moc_didyouknow.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='moc_didyouknow.cpp' object='libwidgets_a-moc_didyouknow.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-moc_didyouknow.obj `if test -f 'moc_didyouknow.cpp'; then $(CYGPATH_W) 'moc_didyouknow.cpp'; else $(CYGPATH_W) '$(srcdir)/moc_didyouknow.cpp'; fi`
+
+libwidgets_a-moc_checkbox.o: moc_checkbox.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-moc_checkbox.o -MD -MP -MF $(DEPDIR)/libwidgets_a-moc_checkbox.Tpo -c -o libwidgets_a-moc_checkbox.o `test -f 'moc_checkbox.cpp' || echo '$(srcdir)/'`moc_checkbox.cpp
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-moc_checkbox.Tpo $(DEPDIR)/libwidgets_a-moc_checkbox.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='moc_checkbox.cpp' object='libwidgets_a-moc_checkbox.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-moc_checkbox.o `test -f 'moc_checkbox.cpp' || echo '$(srcdir)/'`moc_checkbox.cpp
+
+libwidgets_a-moc_checkbox.obj: moc_checkbox.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-moc_checkbox.obj -MD -MP -MF $(DEPDIR)/libwidgets_a-moc_checkbox.Tpo -c -o libwidgets_a-moc_checkbox.obj `if test -f 'moc_checkbox.cpp'; then $(CYGPATH_W) 'moc_checkbox.cpp'; else $(CYGPATH_W) '$(srcdir)/moc_checkbox.cpp'; fi`
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-moc_checkbox.Tpo $(DEPDIR)/libwidgets_a-moc_checkbox.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='moc_checkbox.cpp' object='libwidgets_a-moc_checkbox.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-moc_checkbox.obj `if test -f 'moc_checkbox.cpp'; then $(CYGPATH_W) 'moc_checkbox.cpp'; else $(CYGPATH_W) '$(srcdir)/moc_checkbox.cpp'; fi`
+
+libwidgets_a-moc_vscale.o: moc_vscale.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-moc_vscale.o -MD -MP -MF $(DEPDIR)/libwidgets_a-moc_vscale.Tpo -c -o libwidgets_a-moc_vscale.o `test -f 'moc_vscale.cpp' || echo '$(srcdir)/'`moc_vscale.cpp
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-moc_vscale.Tpo $(DEPDIR)/libwidgets_a-moc_vscale.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='moc_vscale.cpp' object='libwidgets_a-moc_vscale.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-moc_vscale.o `test -f 'moc_vscale.cpp' || echo '$(srcdir)/'`moc_vscale.cpp
+
+libwidgets_a-moc_vscale.obj: moc_vscale.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-moc_vscale.obj -MD -MP -MF $(DEPDIR)/libwidgets_a-moc_vscale.Tpo -c -o libwidgets_a-moc_vscale.obj `if test -f 'moc_vscale.cpp'; then $(CYGPATH_W) 'moc_vscale.cpp'; else $(CYGPATH_W) '$(srcdir)/moc_vscale.cpp'; fi`
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-moc_vscale.Tpo $(DEPDIR)/libwidgets_a-moc_vscale.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='moc_vscale.cpp' object='libwidgets_a-moc_vscale.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-moc_vscale.obj `if test -f 'moc_vscale.cpp'; then $(CYGPATH_W) 'moc_vscale.cpp'; else $(CYGPATH_W) '$(srcdir)/moc_vscale.cpp'; fi`
+
+libwidgets_a-moc_action.o: moc_action.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-moc_action.o -MD -MP -MF $(DEPDIR)/libwidgets_a-moc_action.Tpo -c -o libwidgets_a-moc_action.o `test -f 'moc_action.cpp' || echo '$(srcdir)/'`moc_action.cpp
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-moc_action.Tpo $(DEPDIR)/libwidgets_a-moc_action.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='moc_action.cpp' object='libwidgets_a-moc_action.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-moc_action.o `test -f 'moc_action.cpp' || echo '$(srcdir)/'`moc_action.cpp
+
+libwidgets_a-moc_action.obj: moc_action.cpp
+@am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwidgets_a-moc_action.obj -MD -MP -MF $(DEPDIR)/libwidgets_a-moc_action.Tpo -c -o libwidgets_a-moc_action.obj `if test -f 'moc_action.cpp'; then $(CYGPATH_W) 'moc_action.cpp'; else $(CYGPATH_W) '$(srcdir)/moc_action.cpp'; fi`
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libwidgets_a-moc_action.Tpo $(DEPDIR)/libwidgets_a-moc_action.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='moc_action.cpp' object='libwidgets_a-moc_action.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwidgets_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwidgets_a-moc_action.obj `if test -f 'moc_action.cpp'; then $(CYGPATH_W) 'moc_action.cpp'; else $(CYGPATH_W) '$(srcdir)/moc_action.cpp'; fi`
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ mkid -fID $$unique
+tags: TAGS
+
+TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ set x; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: CTAGS
+CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) check-am
+all-am: Makefile $(LIBRARIES)
+installdirs:
+install: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+ -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES)
+
+clean-generic:
+ -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+ -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
+clean: clean-am
+
+clean-am: clean-generic clean-libtool clean-noinstLIBRARIES \
+ mostlyclean-am
+
+distclean: distclean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+ distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+ mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: all check install install-am install-strip
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
+ clean-libtool clean-noinstLIBRARIES ctags distclean \
+ distclean-compile distclean-generic distclean-libtool \
+ distclean-tags distdir dvi dvi-am html html-am info info-am \
+ install install-am install-data install-data-am install-dvi \
+ install-dvi-am install-exec install-exec-am install-html \
+ install-html-am install-info install-info-am install-man \
+ install-pdf install-pdf-am install-ps install-ps-am \
+ install-strip installcheck installcheck-am installdirs \
+ maintainer-clean maintainer-clean-generic mostlyclean \
+ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
+ pdf pdf-am ps ps-am tags uninstall uninstall-am
+
+
+de:
+ @for base in $(MOCFILES); do echo -e "\t$${base}.cpp $${base}.h \\"; done
+
+nde:
+ @for base in $(MOCFILES); do echo -e "\tmoc_$${base}.cpp \\"; done
+
+.ui.o: %.h
+ $(UIC) -L $(top_srcdir)/muse/widgets -o $*.cpp -impl $*.h $*.ui
+ $(MOC) $*.h >> $*.cpp
+ $(CXXCOMPILE) -c $*.cpp -o $*.o
+ $(RM) $*.cpp moc_$*.cpp moc_$*.o
+
+.ui.lo: %.h
+ $(UIC) -L $(top_srcdir)/muse/widgets -o $*.cpp -impl $*.h $*.ui
+ $(MOC) $*.h >> $*.cpp
+ $(LTCXXCOMPILE) -c $*.cpp -o $*.lo
+ $(RM) $*.cpp moc_$*.cpp moc_$*.lo moc_$*.o
+
+moc_%.cpp: %.h
+ $(MOC) $< -o $@
+
+%.h: %.ui
+ $(UIC) -o $@ $<
+# $(UIC) -L $(top_srcdir)/muse/widgets -o $@ $<
+
+%.non-libtool.cpp: %.cpp
+ $(LN_S) $*.cpp $*.non-libtool.cpp
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/muse2/muse/widgets/aboutbox.ui b/muse2/muse/widgets/aboutbox.ui
new file mode 100644
index 00000000..2dadb447
--- /dev/null
+++ b/muse2/muse/widgets/aboutbox.ui
@@ -0,0 +1,129 @@
+<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
+<class>AboutBox</class>
+<widget class="QDialog">
+ <property name="name">
+ <cstring>AboutBox</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>377</width>
+ <height>525</height>
+ </rect>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>7</hsizetype>
+ <vsizetype>7</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="paletteForegroundColor">
+ <color>
+ <red>254</red>
+ <green>254</green>
+ <blue>254</blue>
+ </color>
+ </property>
+ <property name="paletteBackgroundColor">
+ <color>
+ <red>2</red>
+ <green>2</green>
+ <blue>2</blue>
+ </color>
+ </property>
+ <property name="caption">
+ <string>AboutBox</string>
+ </property>
+ <vbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QLayoutWidget">
+ <property name="name">
+ <cstring>layout1</cstring>
+ </property>
+ <vbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>pixmapLabel1</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>7</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="maximumSize">
+ <size>
+ <width>32767</width>
+ <height>32753</height>
+ </size>
+ </property>
+ <property name="pixmap">
+ <pixmap>image0</pixmap>
+ </property>
+ <property name="scaledContents">
+ <bool>false</bool>
+ </property>
+ <property name="alignment">
+ <set>AlignCenter</set>
+ </property>
+ </widget>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>versionLabel</cstring>
+ </property>
+ <property name="text">
+ <string>Version 1.1rc2</string>
+ </property>
+ </widget>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>textLabel1</cstring>
+ </property>
+ <property name="text">
+ <string>(C) Copyright 1999-2010 Werner Schweer and others.
+See http://www.muse-sequencer.org for new versions and
+more information.
+
+Published under the GNU Public License</string>
+ </property>
+ </widget>
+ <widget class="QPushButton">
+ <property name="name">
+ <cstring>doneHere</cstring>
+ </property>
+ <property name="text">
+ <string>&amp;Keep On Rocking!</string>
+ </property>
+ <property name="accel">
+ <string>Alt+K</string>
+ </property>
+ </widget>
+ </vbox>
+ </widget>
+ </vbox>
+</widget>
+<images>
+ <image name="image0">
+ <data format="XPM.GZ" length="365136">789c44ddc772f250bbb5ebfe3a8aaf967aab76b10021091abbe19c03c679d76e08916c1c5f67ff27ff4b3cf71836bdab6498595333e97fffe73fd7a747fff99ffffdafb7f7f2fdaefa4fb528fffde77f261f8f8f3fffdffffffffe9ffffaefb4ddfe4fda1efc276bf77aff49fffbfff9afff1ebeb7fe53fd2769affe025e56d011b4ca04e8e88ad2d0595d91ecada0ab2b5ae303435c713800ba5c71f761e03bde0ddd156c7cad20f5974eb70cfccb0dc077248f7b86f88e9d1190ea8a3fe8465c5e0dabf4681d4f57d0f3af54678042babd0bf0a5ad837743fcecfe8d21bef44c57f480fb81a1171001cbfc2bf325a05f395e18ba11974b437ce94107e8f12ffbf78634fe65d7103f7bd805b236c5616ac85657ecfdac2077c0a69b800296ec1b22fa278f404fa9fe6b88907ebf0399923033c4770caf0cab9026f7cf404ed0f73e0c11d272d79047198b5f291cd2df6d43fccae41fd0038e3e0d11d217fd8b43ba6e20a41b0612f9c81001dbde01727d476588ef48760d6443cf10b13d3b32c497ee3f1922b6870a7a11307cff3114ab2bb6d215f41dfd6a0428faa35b80b8b40e9f01057dfc61887f294e0d447fcb10211dde000571195e1ae28af33f88b8ec568608fada00e803cb96a1bf827ff12f03c7e560cb107179fa069473bb978608fac339a0543f38060ad5fd3d437cc7e0d710ffb27b6e88b8f4bf0c11f4834d4071b9fe6788b86ce4c0005826864140fc6ce9b8942d43c4f6686188801df50132aa95fd1ae28a91ae505cb8159475c0e2578eef0c7145f16320a3fe0103e0e6c6d08ff2b16d88b86cbd0165fccbf03d3144f4bb7343fccbfddf156534f493158c1dfde70a506c0ffb8608faec1850e4764a43e45c716e88b8f43b8608d8f636305063706188a27d3c31c477ec3e0025bf72f16aa0385c1ae257b21b4344bfb73044f43bff80b1ae3834c415cbae611c0526fea572027d760c91405f7b808ac3d6a7212237d6bf28fabb27069aad0a28d5167e1848e4d410b1cdf70c1197fc1718ab7c7c1bfa011343fc4b766758453f692540457af4df0de3f88ecc50adae58c45d6cf257827e0c11b9bb1c28b862961ae28afd0ea012747e0fa87c1c1486488f834343fc4b79039424f25ecf103f3b783390847786488fe3013056237d6188709c7d19221ce73d4384a33d032abef4edc91045ea74dd1049981c00f5270a4c94a0a913e82805d4a01c6e1be87f7c034a8fe218506cab1f80c8b5ce370c1197c1998190f6818aef489f0d11b9fea921fee5ec0d98a88a5d1aa248651f86f897616658453f4912604a02f52f0c9140cb1bc374050f5182664eb1d725e014fb32448a8da680cad8bf0303e971082809270225e17403a880ed2d0339776a882fcdfeae88f4b83a03266ac6bf0c9184835b43a458911b2281f21930e54b07134324d0d10b305312de1a662b785c45ae7e8a508abd6d1a22818a3540cdd6e8c110571cfe0177f50340ad76ffc94025bc0168a55ac58721a27f5a014ae4fec010b13d2a81093f7b3930f02beb86551226f73fc0942b6efa060aee3f43fccae1be21b2217b3444220f7f8119bfd2da374446fd1c18a671c5d8b0ca86647c1cd05064545bd08907bc8f886dc7f9727f06381b66065acb29a06cc8f701a57affd110d13f390554d5b7f52f13b5a70f86488f510e4cf995b35303b7e85b4394c23c0566fccaf0c1c01d68c31049f87d678854bfda0a708aadef0b22c592c77ba0c3157bdb02d274d931440ff66875c3e9749dc8d50450221f7501ddb3fb6343a4face21c0bd21b91b19a29377b70154aa1e2706eeea97804a72ffdb10a9fea6ef98ea297a6ce01ef56e201b3e0d91a6a31f60465c36cf0d54a067037d87bf2b6872fe19e24b3f8686c8ec51d71039378802d36d2a7b64d4a181862d3344cef59f05e4dced19a0acdcb830c46375eb0be892b70f5d437415fa516f53e7ede40850deae278648d3e91898d0162eaf01a56901340d6864c3ae21a2ffdd3144e4d21ba0a3fed8a321bef4f0d510697aa32f55f4074ba04b0b339b0a887e561822fa2f7b400a3c5f19a248ddadeeea9d9ed363bc6fe0b6f603a8a774b863a007fb0751d647ef806e8dfd4d0365fd0cd09db0b83044a1cbcf01b5c9a30a98e94b878648c2ad68837a75aac7159d63437ce968d71019d53b3544465d8e818e6ad48581eaf16a8880ed1097a6e6c6153b02f2e5f1c910d910232435285fbe1786c8977f64434351e7c68628961f715bcb9c519357c0bdbe6dc03d9429a0543fb9334402156340699aff4144ee291a83ac4eb108473634c41567e7067a283f40877fe94f0ddca2370c11b08b1343e44b7747406d38bb05baba9dfc4184637f1348c9864106f4f88ec3730383195d039dbc3990013f3706ea4bdc9173a7fae20950aa1f2c0d513df67243447f780b4cb8221b19e28ac1ab81fa72034cd5a0bc013375f14f0c9195dbd143c9950d49ab344446a5178648f57c1be8aa0bf760a02f9502293f3bf81190ea377f1089dcdb0528dac96207c8b8e2e8ca1085ff67df10415ffe33acb221b9d7bfe46454fa62888c5afb3244be3c0514ceb9e903a09c5ba686b8cd4f8780326aab6b2081b6017536f3134394d35e0770cf313a02459da68c296d1ae23b6e7a020aeec52f907245fa07f12b0f4f40a6ac7c1370f39c24066e16992152fd95f4709a66df061a5822d7d00a7ef70c9140f791627da7e9cbae21aed87f0194a6c58981c2df0194a6d91f50f8e386d377efe2ec0e50d1dedb02badcc5de6f0d91403b09907245be03f454d62b0129f67908a858b6f6809c8cea1d0105699ade1af8973343fc6c6f6c88144b3f803e69ba5e1a22815ea3173c709a8ebb80d2f4e0d34093b309a8473f3830440ff67e62e0617501b8a37862884277fc07d1187cc613cec0699ace0424d0d12bd023606bb70212797d0f50293cdc020a25f2ad81d6e1d54007fed010697a4bf49da645658870fce84bebcf0a6611b9d269ba5319e25f0efa80d2747fdf405ffb165012e64b03a32c9140a5fb96831b435c71b1017474cfbe34c48d6fd0067427ec9c19a2e778b70ea48474fb10e8e991674b407371776e60a45790455c92bb3343046c632ea0f0f7896d7d53a293f76488c8f5770d51919f15d29cef78bf314466cf3e80829096978698274c32033345bf409fbb47ccdfd630a0385cec18e8a12c0d9173070740a92bc686b8623c37446cd7a2128e5d821e0f0c54e419a01294dc1ae28a5e1fd0e3dbeedc40911a1948e4a80d63f782fb3f809e3db253400566b80ba4348ec7ba42e5e3f6454025fc770968d2efac3430333215a8b7f505e404fdf6c810ed7a457a3477cbb89d9c037d75153e0c4ceadc03037a17b389819e4169a0c53d3344383a6f40a9e6e2d3c014c5df15f4c7ee0c91c8374aa031f0bb6f88b23e8b46ba72de56034079bbff6ce057a23854cecaf41850ce8dd601f50c86952192f0e007d0bce9153f5b27323d947503835dfa0e1ad8d65901f4b9bd8e1241a45872ff020cc8a803e2d2e4ee0abef60da469cb4049ae0cc4f6c8c0a3d7015071c5c5a381598d3d4394f52aeafec489bc7e65889fbd8ae673d20c76c6cf6e1bf8954dc0cf845f860858fa07f1b33d7d6917384f0c9173dd2720d5b3e903d023e7325da10ab47f0a68a6796769e011700b50cebd3d02347dadc13ea0a6efb0004a2a5049023535376ac3bd81b1adc4c08851cb10e97135022af236fd3650e82686f897f531507f56f014756eea9c5bfe18e24b0fa30d9afae6f9f068a00f3337c4cf5e1e00f4b593872f03a33d25903289b17c31444615bf001995dcaf01f4b55bb77b00ddc024968cac20f265ad0ff4d516de19180a1f182281ceb70c8c07b505eaafa7c040d30bbb82c8b9a435054acad891ae2819614d4e0dc4e59f2112f9f00318eb59ecc910a530cf0d91c8d30aa8f88e74cb1021cdbf0c910d47ba62c215e703435c71facf1005e6bc034cb9e2e6c210576cfe4164e57594c2998a54721f793b73919af70c34b0fccb5f7fecc91021ed3d02aac85fdf40ae9189d4105d96fb29a0f2b1f70e686e7e2333d06c3d19e2e639fd1050e8961b86f8d2dbb9216a7676040cf88ee4c3c0e0ce3f60ac11d69e8106e5d1c063d39e81c9fa04a8f484931968606706da0f65c3842fbdd93344dea64aa0a9aef836c477dcae1be25f0e4e0c91fba70fc08cf2b17364882b763b86c8cae7552bb55af8173f7bf70fd0bd617fd7c0b4e004d0c8d5bc0da494b1e3074384b43300327a5bf906408169a505a03bf2c6a580cc3e9f035a769277012da248078648b19b73c059a99fade86ddde85f267a8eea19984adb3550914f0065d4d38f81aed30e30e33b8efe19e23bf64b03637d1f8659dcf7ef039aaf8dacfc83c8b9642ee8469a2e223d3aceb979c710b5e1fe10d0c0ccd58681ae75cb4047e01348f57036027ac0e9259001b7e78608e94d0e685461f00e1464f6c10ba069c1e1be805a995e1ae28aed23401387c9b581e78639a025349d6b034f6bb9813eccab8076bd6803baef770f0cf1a55da5c78472da7f31c4af1cbe0153cad8516588a18a4501a87cf4fe808a3c0d68ca6114984f43dc3ca75706ee84eb02cac79efea5feace0dfaa1deb765d60ee4f0d3cf17d002a1fc508d070e969dbc05dac03f4801bfd0bc52129df001587f7b1210276be07149a187a00fafccbfa8121527de71cd06cc241cfc0e3db8d40637def06a69e1517f50bcf7f0c8c291d03cafd74084c3444d035c4b347590153aed87d0466f11dc93c2a61b769a7e2674f0c91d9c73343d49763bea3294351c6e64097bc3d9818a2819daf6ed1ddd45979f80868c835bb36b012e1c81059795b023ddd0a04999ec4734304ecfcdbc0628e1d20d7ca9d1303b768fd4ba15edf1e30d077f405b40eff5a8066f0fa1f801662dc1c1968d7d70daba027ad6b032d9d0236a1e03e0e05f42d97130329a6a04f35c8f466885f99bd03330aeef6a681c7d9e780e6d61701fb67886a7a746988b86cf3b34db314578c0cd1e79fe85fba2a30b7404a81593f3744397d8c26b8e702b3380654606ea6067a3957806e05833ba024a3bedb80aad8485faab9a4cb6d03cf0d0930251b5afa95298dc1cdbe21b261fc08cce88e4ed70c118e76c4b6d77449e23b6e0d3100b0e81b18b91a182260df1f4047b7f973436443775f4013fc6f027495515f8648b1a36d01ff7298022915f9be05d49fa8d9abde673773bedcbd1a18724d801e90df1b221c83125045ce0b4304ecb2636042e60228541b2aa0afe50dfa8e92b27e931922d52f7b803adfa71b4045f9f8c801cf58fd33d00d3c34709b6f19a8eaa5212ae1bd424a094a5a1f0616923f01330dcbc53d2a6bbabdd12891c84d9724728ef4686e17d1d0770d918405e9e13a77f169882f3d242e4dfe47f3393644c0ee360d317c3cd7cf66d4dbfd0743a4e93cc2f137c5797f02a838f45f0d8c197c022a0eb76b86884befc7100d4ab60da819bfda37c41597c706e6c4db8046470789809a7d3e0274df3f3d05181d6d0dce81b196e12c04b4a7a32140bb9e3c5e019ef37c1668706717d0da8d4ba598baf8477147ce9b679cc8864ba0ab66bc6588667c561a18c824c5eab63fbe74ab67889fddff0306ddbe0c0c1154020accbe7eb6c715c3a980f231226f5d3e0e3680fab38259dcb40a978fee8621c2b1bb0032aee84c0d2c8c4d0d3c156c039a19b91d19c8971f4314989b53a0d092a24b034f165d40634ad9bb8142a7efd038eed52e506aa8e2c210ad54bb0d54fccbeba581d9c831a091efe200d034d8e0ca40368c0c2caf8c7b76d1d5b293d144a081ff63402bff0e47860858f7db40deee19e84b1d025d06cc1e124384e3fe52c00de7483f9b72e31b3e1a98d5383470e3bb3190b78a4b4ff7b90d03f7b9074364d44926a09c1eae0119ade5d11990ab2d7c37302fa67014c07edb1039f71485bfefa2fd7a07a8243f9f1b7816db31301b3901d4d2757a86884ba703e8f9763402d48ee5fa8e01f7cafb0c60d4ba55e88a31f0fb616099a782ae52787128a0c01cff0334e23c5a1a62783056cb3540465d005d4dd7f68f0c0c1f0f004a6132f906ba04ece24940911afe002a52fb5f0646267201993d5c037a348efb278608d8de868115886d20a3813d4d01958ff31740e563b46f88f2719c007da02c0d6ced8a12347081591c19221ce343402d5d6f6860815ddf4081e9022a30d99e817be526d0e73bae6f8001ffd22f05e47ed1012aa0f764602dcb12d0e8d75e94f54157d33e57b7021e24ca31a0a53ce7cf06c61d7e81942f4d66408fdc1fbd08b8696d7d03191df8e9d8c08def11c869b6e6f702cad82949e88cda575ceacf0aeee2674b67d4eb1c5046f5fb067a391f80ee4045668854ef2e01e54b2735447adc4e055aee215046b5af80523f3b0234489d9d191864ba032aada83a35b025e2de10997df30b68d4693e04665a121075aeec6aaea0bf2de06773d2a3aba981d14240bb3ef804bada35f00468f95c3631b0c1f018e811f4c30e905160b6370cd1189c0e0594a0db6720d72d29070654e4ce9d81c9368a43f35901833b631787c35d43446eeb0b2874c59e81e80f01158734374481b96801cafd0bfd8bb261271aa57157c372a79b0212f9e009d0386ebe6660c6fb01609d52b2480c0ca9ed1ba27cf4de0056ccb4d23d4324f2e50da07c393805f208faf07dd7104f5a77774041cd5ebc00fda8b7c9fd81819b96ae28c9b9dd19507f56f0100d7df59751df8648a072075046fdbb3250915f0cb4b8ba423997ff33b0ba54a016f7ac2ba0125eed01ba673f281c1312f935ea7ed5d5cae14381b272edd5c0b4cfa5815bf41da0e7b9de8181a1ac998151b8434055ac3d07b42e787b1d202b5bfb6343548fb3095070c5edaf81816e85a3a40b777a0f54e4dceea981e55111b98973eedf185046250340f972fe64e0c67705285f4eae0d7404f601cd129fad0b34293c039473bd0450037bd30118fc6b75360c34b043409baeae5e0554a08f5360a67e10dfd1d56a978d5743a4d8b5408f5efd3703cf0da9206ec049750468c07d7a2dd048cda681a7c60c50de1ef70d91fb9b2472dd55e48edc0206dc91ef1682a8c849f264a047af70948c5c9d26061a941ca83f5109a34d9eba3894b7808a43efd740456e032a0ebd6f034304fbc05809f42a50a7e6d4c0f4641750714837001587db1340a392dbf1743275deee3c005a8f7b5819e8e30e010daa1cdd0af4b03a03346fda5d1822912f7700ad603e7b35709b272e5d2d15dd7d3210b02360a0f9ca774304ec2711743952e60e28e98f1d2f818a667ce31f30256fb73e0cf1a5cfd1839d396f998098396fd7de014de72fbf0d34d23d01d97019d563e671dccd6d43c4f66c0874553d041a65f94800e5dc3e3fdbd54340de32704bba0334a775b40968c5eec9d2c0aabd025022dfee03152335fb0a7afd59c1d32a3dd2b6d3e3e1d6c0e37d0ad0f425492e20810a7d8746d0ce4b01e9311e18222ef92ea0dad0db04265cd17d0868960d44aa6f1968e9ce018d9f8e041a1bdf3e0632d597d210f5e5fcc2c004c48f8181880f405d854165e026fe0268ae717d04686af166d3c0c2fa53032548bfa23568fbaf8678ce9eaf03a53a46fa978a1eecd11b30a53bba9705349fb83546f43b2eebd5102881ed4b4364f6f2544046f5e7809aad411fd098c166c4b6a37c49c60b40e3da7b29a06c18b5057cc7f71ba075d245cbc0f44202a88336b83444293ccc051a215907faaa5147806601cf8e0d6cb6ae0c742553433406478f80d6c18e3a404525bc2b047458c77bc08c8c3a8c52b8da941810b1ed3aa3ee9e0165d45d66606a7101a8129eac0bc8a8610ee8693e7f01a65a37cecfbaa56bdf021d2df19e005d6e16fb7780326af718d05adaeeccc060c6dcc09908fa593fdff60ce4dc09a0479ec3b18133223601adc9bbb80034f33efd35d07e0c808a9189d809ba8268fa1ebe8109bdcf0e895c5324f2f6a72065af46fc6cea8c8a15332b887f79b802c65cb1fc32d0c01e0b488fee3f40ade5edab21d2636b0b986872e9089871c50fe1a8f39687e66d401b515ef80ee7dc606a600c760c78b0fcd01049f89002caa8a31ea07cd9cf01cdae1cdc1ad8797060a0d55e07b466e2902f6d9ac7f8d22550ff454720b2a1f797ea378013b90494a657db801662e4d7019eb0fb3c32b09b740068f4fc9d2f6d968444a1d3159aa1c99e013d47edb400ad723d7b36d033181a580fa3800d80835f408dc1622420e8b75706ce867a37b0a05d5faac1e1bdc2c016805d40ab4b874b604a8f6da0049ad15f5faf0c9c861379db6b1ad0f88e199052a38e084743012d437cc7220a5de6ac6c19748a4401545af13f10a82dfc07a8be9c7e03330d3245039bb9a5cb37819404da1c015a5b7c780a94ea3a5d0ba80dc3c2405b7807a863743007340ab7bd6688f997d91130d10ab32b43e4cbe13da02523775b86b86283d8367dd848e4b801674db726d2947f69ee52ab2bd229e07c2160cd27821e55ec6f22f5ee0950364cce0564c36654e4fc6f11c52bd0d198d216a0fa72fa6688549fdf026aa5aeef0075ae465780eacbe535506a75e9ab8141b73560ac5be30fa016f72c3744c04e6e0c11f4d3c2c01cce3f60a2698e35033b0ffeaee0108d0b402b76476700cb3c9384246cbabd91732d036721fd02298f4d0744bff9c41d28ee6285f3e5e101d03aa5c919a0d50c69b4c9cdec1bbb387f0dec914800ed39bb5a03f4fcf2bb0568b56db63030c7f70c68bde5596288a2fd786e887fe9ff01c3a597023d25dd0095a69fae0c2cb0bb053430b31345aa683a2d11db2190d28eed8e80fab3825984b4ef246c2d0c1ccdb907e8797fa76b882b76a22bd94c94716bdc05340d56f0a5ca8656b60968777e771df08ee53ec0f869ebfd19f0b970af0666cddf012d8048868668e9ca6f816613ae800903337bbfc094908efe80a53c5301ff7224d0b876ff5a40d0d781ba956257c98b2182fed306528d054f80fa13b793b8250dfc40b3f16e886c58ec03caa8bb47435cb1b105a87a9cc6ad71a0b51badac02940de91bd0d7e0df27a0aed3f30850be1c3f1928fcc78096241e2e0c3c25fd18985e5807b424717a29d07ec24340cb4d8ff4b35a5f78f1cf405ffbde1019757e6388902efb021e792ea22b3948f5343f7a33706bfc02b49cf0df8d810340c9176565b23c0306e4ed56c740c0e28ad25939191978d4e801ea381f1786682eaaa862a59659b47a2d400366833d402d5dde07786a4c926760ac91cd134039f7b50be81cb4dd9e81f51f9f067a7dfe179dee416cbb5aa5f6706260d4fad8101568f205689de351d497b24e422ad014a83f71b388b23e766d78b8079484bd88edd8e385bd1cf04ee17740b13d6b0b74dfbf3030282bd0795b879b8648a0f18981118104d0d2d96124d038d502ccdb21c08abbe4fe0b483539ad2b52759df680923276f001d49f682ee26e5a393dfe5d1bd81a1abf52e9512399cf003d592cf600ed361e1d18224d6fdf0025f2e009d036027a8e5557c7389d3d1968e809a913e8885f49f50cb47b65e0c4e9998176fd04e89073d7b702a66cce33a0abbabf012891cff42b9adf3fae808cfee9fc1bc8f5c437018a686192d8f9d8403c372471dc690dca97ad36507f56f0b21af94e27cea8bb9e21f265192579e251c9987c5c415c41d769e2b52c577c699d519cba720668a6f9e112d01999378f022d5db9067462ca5a61a05ddf30b08f2faac724d5eab0ec9f211279f75940ce1d10d25485ee780ce82eb67b63889cbbfe127459dd710cf41992df25b6cd277a17514ea77eac7efa00b428edf8d5c03a364197cee6e41d50e1df58009a6b4ce78648b1873b40834c9d0c5022bfad034ad3e7682ea64ec2aba1215a98e4dd1069dabb027448d3c1d0c044596560c5ddc0c0e8c631d0558dba36b0ab84d8a65a00b1db36b0cb7707c868a5f6f5a52c7d6ba58706a606b680fa13691a37ad99332a8e8eaf4171795d18c8a87d400fcd370b033b63bb809ea237ae00cdef4ff6009d45507c03eac0df3c016aa56e4f0d9c7117b572e69cebbd1ad8bd3004381e27999486b89b3efc0854604e0d3cab3f008a6df711d0eab07e056849d1d5818189f60ca86894da37c094fab2f705d49f28c9abe2d06b3b1bee9606f6abbf033a6ded7edfc052c06b43d4a8640cd04a2571706f0d99561fef01a56689fbc094d88edb01a98e6129668648e4c539a02387d2570189bc9f1858bfbe34f0a475076839d0e186817d9e57404fddd17f40c68cc4fdd8c066b8db80e6b382652461c769faf8012860cb3f882b5a378608c7c51c206049551a1800f802746f58be019af45bef017daa476b0dd0b6f07e1bd02edfc34980b3a1fa0674d0c2f9ba81ad7ffa17adedd9db35c46d2d36f5ae20e2b2c8013d799e1f0099527dd3c092f77d400b75b6897ef3891626cad8dff4c25d0ae854c0e19e217ef62437449adedd033a5cad756ea068df013a3aedf1db10ede9a97e45893c98015ae5fa1405b7eb348d33ed6bd036d7b34703cfc81702dd1b885caa13862617862863f903d06798e1f80c187479c3c328a019508eea3134f0129528a7a9d3f47e0f509adeef1a7813c90ee024bc35305a9c1a2209274b40cb814e4b03f7a84f433428d53f8047e2a43c05b4cee06c135097f6bb6b88b2be36014a9d67b0618854af0a60ace7cae3003f681eb401e5dcbf0b03eb836e0cec1a980934b6e57fe1e9642b077abae16406c6a4bf05d4b9cb23400333f9b721326a6f1d1830d677d701268cd29e105b1787c37720a5386cfd01b782885ccfc561f266e0c4c72b40637d4961a08bbf0034ea747300e8c483eb149812975e3406bdb4ad75c11f4087c7fb947ff153c1f609a0341d0c047a8a26a4a996bf0c760da4fa42a01b4e618814ebbc1b983bf932c4af5cfb57541bfa0616c6de015a6473350558dad41aad19581aa9f42819944d778071977359f42f13e61a4fa3f0f79cd92743200536c8cae62fae88c63173defe26806af6ee05a0c88dbe809c0988f211d06046ab6d887afb6f0f50adecb6000d63e7d11864a9966a0cae0d9173a54099bd9b01cadb930743e4edfe994047eb7d1b18eed83144221f09d8499e5407064e7dbb37f08e90634007939c7f185839ac9096da6cadd88ee929c534690d5ac974f214e09c3b6919786e20d59b4fdce7a2b9c89d733faf80726efdd2c0bf7401057d796060a9c62fa091abb767035b43ef80b186c3760c8c4b29603ec9266e05b91bc7741fd0d69d9f16a0bcbd3d3444de7e648056dd1ccf0d3ccebe08b4c06e6c202bf52f1c8bd7ba7e37f016a26d43a4c7443f5bf094743901e8c324e329a01555c751e772e55c323d03322ae126f9d27ce22e16f5a570cefd5c1b085817d0bd727c0768ccf1b7050c48f5cd1d40f952dd023e41e61fa05ad98d542f5c095f0780527d7e6360ee7529a01d5b3f03bc0ce749a051c9a5817cf934d0e7cf01464793e99120a50b17ed7ad1f43fa32de4579ac6af81611c095143ce73d44601d49f0869a4d8df5449d2067460eec5b38191ef3340436add0847bf59abb28285409dbc8b8580d53fd39681a5f74780761d6d8f819c3194d709a0344ddb022d151d00ec1949eeb6057a7a2d0ddcd69606e6095301657d6706f8dcc02b60c2285cbce4af010687cf045322d7eb1ae2f9a5da0aa8738ed35f7e814c39f70fe8535f8e968648e424eeb70367d4efae811af50668f271d403d4b0fdec0113527d331afa41b3262202f605e42c5e18f3a54ae456b72fd0429d7303379c0701f7fdf32340a7245ebd0313fa30fd1130a51f542c81194958467d19d449c8534109d49f680b23e8a51368676ce0ecc10ea0a6ef77c710793b4d008dd17fcf018dc06fcc0ccc4547b12c539d32529c010585bff564e06cec7b4069ba3e1790a6b316c07adc64fa6360ffcb3130d50610fd8b969d9c46c35636ad7234e384a36e0c78cf08416f3eab5f59466773fc9740b70692b00d909549cc25f59a290a7a3951e8c67fd17f36c497c629de35f8f0ce630171e9ea5ffa2ce2dc6c015a9fbc3e33f014bd0568d9c9d98321eafe4d69889fbdfd314415bb4e00ed17cbba028e0d88a35b7be35e9ba66ff80d682cb8b503f449f5d31ba0fe448d8a9b67e534fdde03748ae6f40bd002ccaf99216ed14905e8a4451e8aaa54832af7db80ba3debfcac13e8e1c240e3d832b099765d40172ece84ac410bfc1f160606760969aa7ed0cd8740cf4037c0a4cb40c429a01555170aba56541d11b9e61349182936f13cf2e73fc00b520f019d40f5716688ef787c3470d84bb4741397d32c0114dbf13f4304acfa02b48862ff9f2152fdeadcc0a9b39f02aae9f68580499dfe1aa01bce2ca23fe9b569fa72811694f5b68194d9a6f613d063fcf46d0bc8788eda4f0df1b32715507fe2661171993a91cf87066e7c1b80560e7f7c18e2b1e951dfa17c79e9013a7c6ff40a6890697d574071f8893eeeb4594b1d657d01e83c94e2111873c5da0fa07c99968648f581be54d9305d077420d9b6be4307d60dee052ab867800eac1b45499e364399d1773807c897849bf8b4eeb1d138921e3d2da1e96c02ca8691a0feac6011393773ebf07601e844aeb7d2c01052a4e9acd937b0fad9fb0ea03524e35b40c706acbf020545aaff00a8226f2680522cd67dae8059c0be81856df7021dc2730d683dcc566660f64d576899c5f6af81592f02d6d3d8d631bfd2d3896d171f40979a7db509a440f206f4a851ed470115a8ad5fc9182cbfae8042b7d77f8032ea48e1a83f515f569079c34392bc1a22b6ef3b40a92bbe814a7bbccf019d4d79c115cd12ddd515651f5056664b40bdaddf1340a9feb666e090b76340cb5fce6f039cc8ed11a00deca707404adefe0a0a0ddd5c03631e01e398d1e69dcb24d0c99a20a31fb44ad3ace3a2fdf16960577c195097539ea326409f7bf6e40118d3a0ec9c008adc73cbc0a177bf013dad1bbf7d34d04ffe0174f2c2e9958187e65760daa367300266d4ec63fea5f9448a455cfed6f3fffb0674b0e2bf2f4047a725e78096bd2e2f0c2c5b9b002a300747018edcbf730375eedec0599d2f80b6449c170606fe5b80b6bb5c9702dac2de0ce8b1afe0ea06c8a8737b03a0a02f75ff6988a0b797c0207ab049acdaab61cc6a8653a0f944a3b4ba3566a993f06117a8b42c690acc34280b6894b6f5be2d500f25522c757aacdf18222ee50ba019bcad1f43e4dcdd1a906a27e810d0fa8f8b0ac849a06c66606e7e0e4ce8c08fb9a229762b984f00a5c7e819a83f11b9488f9e13e8e30b70022d0cf43ee700ab0892c73fa058ce0015cb12f053d2db39c069274932023466906c02139e09f7232e3da769bcf261056c981a08343b7b0b682bc2e8d1c092912940aa27f1e8d5808a94be34271c170f06760ce93b741e4afb1918736f687f02531e022eef80594032e35f9c5127bf40fd59c1e7ea1e9565ca97d6cb958132b60d6895fc4b69882b5ef702521d77fa790074b5fdf80bd019110767014ec2ead3c0fab1b181f9fd3b01e53466cd6bd0faf5cd6b03ff3211301071fc0c68a9c6e52e50501bae67409f06a57762e068ac75a08ad5fa49eb4240fb71ff084cb9cd5f2e04e44b12ad65d6cc0d444926c5ea7ce1c1fb06a8ff56f0b57a6acc72e74b0c8666b9b22149360c1cb8bd0e68ede8f8d5c08811df910e488febb879e64ed3c9be210aee92efe8e938988b89810374e68016c88c6e00a56977080c80e13ba09519570b0129368e8cca9bae40fc4bcbc0aeb47f404a593ffb05ea4f94d388cbdfb0eddb25a0def8766588242ca33d2dd20e45fb857f710b13abd36bd0deea83a851851368ba666085d9a680f9a8715fc063d354902ba31e018df6ec7c0848b1e11028bbaca84a013d02b6a312164d431ec5922f6d3e2b98471bd4777abc8c0dbcf9fc0ad081b9c98d81a21d95b0efd9c8f119a0638b92350321fd05dc48ff181876c9029c1eb343036b58af0554e43921ed15ead2be0bb8df769e0d51603a3343a4d8c514e09c9a24a67d6a98d18cdf4533de6f3e71e38bb670e014fb4a01a5581989dc2ccf6610f21650912ae780a25f6c053872e7d78022f7fe64a09c6e027de0b214d026cf07c080f271c3cff6c63c9cdd5e00d394bd1afad219abc2db91a683ba67c07e20bea3994a8c7fd90654c68e2f81fa1377d32896e55f02457facfc2b30574057a3a317803a350751924bc7f6f35640668f3e0c3cbe6d193856e2cc1039f72ce05c8556bb3230d6f76d60137c1fd0992ad99a81273ec2a1144baa1630a0049df12fcd27621b71192b815a1ff1b3e354cf0dbf6d0307e7bd1ae829ed001c879b2497408ff4d8dc05748bde5c37c4d37cc5afd4d523fa0e5bfc8a13e87b60e0d8a29181f7aee88a922b6e9f0c0ca86e19d89a71028c1921b92f019d6433181b386247219d900d97cf021e128b2130e531f23cee0de33ab2f4d7f9d9ba6647e18ff7e0d530e08e7cca97369fa884f11d95336a12fdf5ca19556e1ba2ee2fc78096cdef7e1bc839fd8b6612bfef01b596a5c0cfeaeb005999940b032f807d0774b6cb6e1ee07ca1ce55ce97dbcac02ece852182fe33013460d6be364481e9b40d1cd0f604541af91628e786c4a537056e9e0d3ccf4529ac9473ad0e4958f79c222e574ba022a3ca3d437ce95bc476e20af4ef07e8a891ce0de44b06687f43750ab0c82629ef00d5a85164f6c409543e1b224de9a04d7a1a0e3b7f30b01c2835b0d9e90cd0f6b0cebd802310066bc08cb27ecdcf66ed94c3a1f9d93a0919bbb8067aac60ee901e4d9775f52f13625b17fef897935ba0feac6011419ffe2561618854dfda01b474656f0ae8e9b5ec19224d2713c0657d0bc8b48a6064a0f0b7011d555a6e00852001948467717f99f6346dfc43c09c2fe31b039b36e786f897fcef5fa2e5af3e000d53167d01f3519797c04c85ffdac0c1df2f02e66f2ff98e8c834992310954f724a3c9797f057a2c8bbeba03a81ec944dfa14514ed7ba0c858a576088ce396d43a2172cd272a508474e676eca532d08c7f021acbf9776888d86e6c037ae2a367d0004326fa955c79bb69605ddf04d081753fd1a79b39d56315e30a18b6cd0cac40bc36f0a495008cd1b7063d038b6c3680198b28ce63a87396b5c9b99b2f035314858177c62e802ebb6c2a7eb6bee1c4944dbc6eae868a5bd2e40998d0973a2160cd6705cb5522e76d27f2ce2790aa7b2ec854a35220e756b0d636b04e6901a802c514560d1a1d2d77037a7ddaa03541c9e3ca470b509ac6a1222b6085c89121cafafd1630e38aee1fb00d693340cf84ad9d21409ab686f7806a43770ae404acf302140cc95fbe017d864cae6640498f6d44389a4f349f911e1da7fad31ee0a2fd63e024df27035bee6e00adec7a5e035cf8bb8053bd63a087f21ed0ebd1a0e467800aeece23a0349d16065e1f7e696021e8a921522c8e7f6d4e9fe75f2e0b038f2b9f060e32febb8263e0fe09680bf303031d921da0c3775c2c05fccb99a0aba71352bd6e0b3969513fdbe3816692039a7f69f701e5fef01918d05f9f1c026306dc3beb01758160cee205a83fd1e44419ebfee5feb721bee365026894656ddfc06aeca581f2710de4baf17d0085aae91050f9586e0315f932ba08d0d06f52bd0115a97eba0b4ca8403ff30067f6ef91818df48981856d070232eaa70374f897eb4f03c79eed005d0633e275a60db092e98c34cd520d773c027d9679a60b40fdf5fd2ea035139d2f415c91540a47c5645bf74540037b41aa371d9f28eb7bc094aee409bfd27ce2c6b7ba37e4a972bff5726de0a0b84f4099bdfecf40f49f01c6d892e5a3812d444f400e2c4b010f671b23604071189f1b22fab12aab86528bd2a204359b283807ad02743ad056d4a8d459f9b2616015c1bb81aa7e29a0387c7f035dfee53407b294598d363060c1617b00942c3ababa079451dd6d60c240c47c6a601dfd1898d161bd7a08a82b328bc1f88ee6138d6354c29e322aa95e0086f692c719906b8de21c609821994c0167c3bb21e2b21e05b7e7f4f8bc3170f4d19b80243c3d37c4bf3c0f81947f190e0c14dc5b0155bdb734b007ef02c85945d02d0c91d9dd53a0107c1818d96c0153e65ebbd706a6f4da80b2e102683ed1f2c7cf66ae1e2f5340a95ebd1aa82fd786a80db35b40e385eb9981fa720c688559f50828e7c6578072aeba03c6aa2f1706d64c445b98f59484b791b759dd16d2755a33b09447d0251b7eba80b2f2a96fe09d5c6f028a437fcfc000e2d4108de34f0568de74676ee0b4f937033dd813015f7af60964fcec4e5bc0adb1ab5fe9c7c3c8f0fd0c283585a55fd16364575f3a89059849951ab8796e0153c61c8751915703fd2b8855d079ee3d892f0f06cac70da023ec975d036b583301c561720f146a71af045cb15c37c41d79a99fd510e3da0c60003199ac01a59ae04bc0fb1b3e004648927134394d5de7cd2c842363017792dc1b78bd2bffe2cc7e7a36303ed635c497fe1b0199ae3834d0edc9013d235f750032bbb52472f5dd94e5c8cf06563225802630afa3e0e675f78a1bf08d81ce043febcc3e5b00f5df0aeee3570a6576ebf11a50663f1c1ba8fb29a0bc5d7604dc3c777f0c6cb8bc02349c5e5d021a1c5e3f3444be4cb78052edc78381fec719c05c5252dd1bd8e917d5b4e8a9566ec4234ffda44e6d381d03cab9c74d43fccbf717a009ff2ee951b7dac47609f4d5715e1858a4b70f0cc8eccea18125459f0296045cf78152634a8f809659b43303d3e8c706a6057360caf2ec9bc410e1681f0133162f9471272c9a3edbea8a9301507f56f01efdd3becb0729d6ec098870fc760c118ebd9980e2b0b103a8383cbe02da95166fba5a0175ff16d0dda35a025a9ad08dc6b15f37b0bc89f50850cebdf60d0c446c09b87bc456d91a58ed92c4ab0457c0fab15d40cfea03fdcb40b91f79dbaf9fb4236f1f464087a9d6e32fa0feace0333a3503df6f974700699a4c760d9c12a02b3487b37620a0126ee95f94a6ef6d8031e9c4bfa22a36d51595aad88521527d320318fc4b2671d31ae8a139a94e00b5b8dfd1180c94a6adf2c9c0bde15da03bf2a721f225e65f6ae8930dd7d7029eb4ba77c0807b76ae2f1d53e7da3d03c383436046beb449c23ae7b8ab178096f2cc5e802e2deef536903298714902d52d2ec3a58740c1134eb56de060b42da04f153b3907ea4f14dc0858e92af67863e034ad1780e290cc4f04dc6f1f0e01cd363d9640a9bef68e2152fded01d0d27bee510d44f9982e00ad93ae4680f6e13c45292c7b0c6624935f406df24b02d05a2695fe4559791ac5a1ac9334cad88cf4c8349d1f6777d4a0f241912a33ed5e483b065ebb7b010cb8e2fccec0dbd4886d56d1c05e64c0440b522f05dca22fbf81a9464862a8a25463d06aef031d96249647061a25f2b6e9f5c7bfbc0219539c930fa0c8e93a9d03034ad029f9d27c56308d6a3a7673f1d5136889f71ba0e9c9f53fe05796801a83ea1c98aa315837b02137726edc538aedc5fd76ec8529a36fa04bf379b306e82160f30c5046c53e9c15b055e5de1039f742389a59f168b54f0cac3dff36c4cfae09aa94f77a7d005a9674db1768a8334ad0b8ce399eb3b781ae327bcb40e7dbc003de3549986b29e0e503d0a74139e900f56705f7d17c56ceca590f18a8ee1702b2f2770c68be72f301d054dac635a0967fb20d688bc8e40e607b58b24c0ce4fe1cd0597b37fc8b1f78d705ca979f8581e3a30f0d9151bdccc076a84d60ccbff467065eb87e6060a5ecab8151eb5ba0e2572ede0c5191f32b03ab082a60c68059375a98aaaed934172dc0b94f48f3949a7dbd23206fdbe44bae756cd7bb02ae481f819c05219d5f03071a7681820180eb3540b7936bfd8b5a87dbd4c05312395797315a9857034bcec8ece613ed7ab4631397c2971b6020980934b8f30c946a5032033b969f004df9ee7c019a385cb60195c24994a049733e50fcec05a07afbba0bccd8e2fe19919b7874746d0d50917a3e35b00b6b6e60575acfc0905a6260979ebec37b8a8e0dec069b18e839fe1a7817380954df7018504d05f4d7e39de435b0c42ab98fc1d0495d0a7949f93d9032cc70dd13e8fef202f4d80270fd24a095ba4c0cbcf7ed0ce8530adb434314989311507fa2bb11756eea46e9f90dd07b577ebb00b99f2c7b06ce429a029a585ecf0df4603b805ba94360a6566acb104326cb48f5ba5507266d03b5e10650efe2f905e06cca24390118f84fe65160a61a946d5dec011aeb9bf3b3d9803be107b175f928be0cdc1adb86286383c21005a6776ea0fba52b3423717663603dee8f8143443f0c91b7bd129802d7d1659936532191fba78072bf3312e4dc3d8640c923cf353f5bb730acc71d002a30279b40fd89b844bb3e7381f9fc3044b1fc9a0363e07bdfc029899f069e817240456a7b024c54a41e0dc4a507b80d8a51fc66b313ad6514ba9953fde9c9c0bec60d03d3e82f06f69b0e81a972bf32d03adc1b38b43b5a87595d91a3af3dff01a6a4e9f108a83f512b5777a0a2ed347dfb034e037e0748d32456dbae8034fd002a9d9a7068a0d52e00763f25b36f60a624dc0c501226cb7ba04b9a9ef602b28aeed7cd3aa0048aa9a315303aba66e0e65919a2147e9d0033fee5fccdc026f87f01799bc25f740d1cd9fe03745206dd087adde2128e5fa0d0526242da8c3c04ac1b98145e025ae778b9059454b1ee15306668af730e54f4f96f3360ca3dfbe422a0f9448aad1a94a2e3cc8e61fda2e3cc9edd009560dbc0d8f8bb21f276b10168abdbdaa1811ddc1360ca2a93c7c2c02b0e7203dbb11f02b4e93b99a440478d7407d03ecfd91cc874442871f1b4cfef1550912fef0340c5e1b530d0383e1be23b1e22d53bcdfa8e68e8d70d2cd2fb027416d2e51a30509f4ee0bcfd01b482a84dbe34ddcd683ee70676603e0113c61d66bbc08ce6735806349f087a04acebd6f2f90370663f19381ef8d310bff27000286fe350e61aa66a3e0b036306fa172da2d8d835446310fbc59af7699395932ee0bc05b292c66074074c7856ff3a0b70bebc560636a1cd810ed05f37b0c77b60e0cc8c2f4364547a6aa031e8035a5e99b50c11b0fd3740c7f4b4f41d85ba5fa458dd18d0dbba0058e3dcbafc05b496b63b012afa7429e9d1bc703e9acf19507f56103bda8b5499dd7abb31f0cec71f60027c2d0c6c62ad0065f6e2dec0cb5ce680327b3d9a8bb4a7177ecc86001376c9b46b603be5a581d53f078086901e75c580637aaab88ba5598f9cdb89929c3ab3972f06327bcbc073f626a0e662d80634467f496c73ad94ed1c19d846a0ef98b2b8a54baad7b532827e4b6c9baa1c702b20e74ef8d2e613018b8adc73ce3d760c9c6c7c084c546fc786f88eaf0c50cec5d9e92b886afaf00ecc742a4fb4b83d9fbbb1b907b09a2199ee035d65e51260ee3599de013d65e50f90d3b51e476c7b75cd66e51f017336c4f2861544def627066ae5a6817df33b8648f5b57540eb3e774e0d64c335906b7087e8e75a33713b00a67a9adf30f034af2b663c9a77a261eb296f937102a4392b768f0434d2976d03cfc8c7408f8a7c72686005401487ccb93fdb01a6ea7e6d19e25fbe0f809972ffce40357d0c50bd6d6d5f035acbb2b507b01023992d004d0d4cef0d91fb5302e6b982c704d0795bcb16a0079a8ba8b759c6deb72466138acce33071da5ad1cce9f09a7b7e25d72ac633425ae72def267d07facc8b7596c058e37444bfee4d31da931b989de55fea8a1c70bd0e741943e9ee09c8dbee1990e6cc9d7c09a8fb173706ce73bc047a340627e45cf389248c062577ab3d3906a66a0c2a03c5611370ee47d0f3e614e668d7ff80c30952408766febe19a23178280117871fc0c5610f50076d7907145a691f2539af1f34e95b6e03cacaf99d81359b8f066ec02f067a062320d390496260c7e1b181e3a4f60574372e4a431487bd3520efb14c7cdf10d17f7c07fac044011b305e78a59fad782ae81c003356cb5d3f1898f0271ccdd347042c37d0d93c073a3c267473034f2727062652c7401768ef18582aba0ba4f43eafcf0c8c7d9e1838e26f00f4721695f4808c66ebb405d49f15c41691a250c16d3d5606864c7e0deccffe0438802b995d1b28da912f854bf2cf07a00363361f01774872a0a7bbd82ec03c72b2bc0598144e9684a36eb6d8e8182d6ea10576ad98c22a0a95c2d6536ee010f30d03e75bae0b18c82ccf011d3598cd0d513e3e06409fbbd80bd1cf4bad0fda01263c6876e2a1a870ee77c640ca6ce4e58f81dc1f1a3870aa6560cc91ac6c6e9f513efe0968c7ae3b808ac395ae5071383906eabf48b1b857f65d1c9e8e010ead4ae65f06faa7d148f79bf3e6a331b833d0d23d021d607665885bd2c39b81919a1f402fe99a6d1898f7280015a9d919a0a6ef610c68e1c13435b0c8661f605634492281fa9ed5388f2e7edfc5a1ca0d511cb20343fc4b496ceb7acae42321cdb52e78780a0c623023b927faf99839f1aa03544ca35f11f4ba41216f09bacb47e701e8a9049d001905e6b265a0a5bb15706becec1898f7d802f280e13be95117214e2bf8165082967b40fd891626823e70098a03da56408189341db8b978e50ae7fe43d71077c2c510d0c1466b47065a980c70eef700a6af93785b780dcc8b25e3e8f50db28ac62016a317036765b26de01d212f02ee627136430d7df5a574855aa9bb789c1d146d2d035e021dd607753e812e99ddf900728618dba5809c6b2740015c8f0c3cf07e1b28419b067ad2bb06e65f888bb3f2f818a83f91519162a58fb49b4756364b130218972add3abc1f1ae2573ed6005a87d6ef27a0cc7ed80352eafeefc4403fe8125071d89e0219f797d903a08d06b33bc0c5e10a28995cda8b44f61a81d6f72f40deb63e7301b9ff750c0c80f4dac04ed02e30652fcfd91c98d14349895c5d4de9385f00cacaced0c0468316d057bdcd0cfda8b704bdce396e059581574ef50cece49a01f56705cf912f63e7edecd4105ffa760b74b837cc4f0d9c2df705e8c8b2cf3fe065501f866850be0f01e5fef7ad81ba7f0df474bafa0220f75b9b05a0dc9f3f036e1d22b6e3e6188d0818ffe2ac8c25672b60ceb30f947a5d03416f961e448392015a7b1e2ff9ab61c6cec7f186819c03ea06967369bb023de1f4803e55bd9b19e8b012f43a2b39fbb863a0bb9103a5aa7acfc0a2b48121fee5eac3c02439d9d05014984b039b9ce339bbea75b46775626084243770c6cc3dc07b0113faa7559db734062f40a67783750c2c24ff06b44671630fd0015cb325c0f29764766fa0b37903e8889d78b1770d3a89220e562c2ae7fec3cc10b5f2fb1f30d6f286c4c0e90d070626fd22b3ab3af77999ed3ed057af8f146bee0e912f2780b2f2f2cbc036c61e3006aebe0dd4fd8e816302ef0c8cd28e0dac93261b9adf09e81a78c3e5ad21e21287331613e57eebdfaf211279de07d43abc1f19681d4a2027b37f7b80ce735cff3090d9eb0033cdc96c0494caec3d8089c3649603537a06cb1d03ddd148e4667b7aa4d857dc7026f5e32b876666804e25feba15f0e4f9b206a87cbcfd1ad8ff7264e0c93333f08ea167a0d2a14407c08c26e72a5aed49d3e1882f4d819212747d68604bc48f8185a09706960355808bd4295051822e0606c6d7df0d3cae902f0d45fb3136b08a31526cea02b3e81838df3207ba5c116fcb5a014740b60d3c6a14404a67f363dd10793b3f0668725a5ffa179a9cd6cf2790ab77f10bb0da25595e032a30cb5d80836b92927fc9531e236f097a9db7f4830e01e5ed6766e0dd3e1bc004b8253d0a56cab62e47409e736ae43f0353476f4049f9b83a02c6059b04d60ccc8aee0115ed47e7129814ecb2c90d2cd5e81b180b6e1b783ab902a6c0c999213adf84c3c79d2671be43d19c6e1a49f8f96de045c50b20e766c1dcfcccedc7a6beb4d00eee7d6040cf8039ad06683ff42f6a3f6605a0b54e67d15ccc9c2f5f47063608dd0253a0dd31303b7b2288999124e9023a90ec311ae95991652c4d3803723d241e00633a1397ba624a365c7e18981a20e8cd27eed9ab82db6ffb00d0876d20d32d7a69e08d3939a0547f6803a4696bf3092895a61702eec8f3174035eaa102b4dce3a608a8d39431831d4069fade37449a3eae19a27c3c65c08cf6f4b36b88aa7ef61350a43a1ce90ce869ef3d71a9b38169f46760acd984d780e6b382e9aa03dfff3b54f5f508e8a9d9aa0c11b0b78e81136337804cadd41250aa2fee0015edef23430c54cddf011d8ef43b3550f8770dac834d0072aeb5de17a82f750eb0482f898e510dac0048e2dd82fd4e9d73bc07ef18d099b28b0c50bedccd0c9caa310e28dac0e527907156c538052ab2614812369f153caefa0efdae537df16ce0d513c780cae97c0fa828968bc8fdae97349ff1a5aea6e5c0c001e406868f6304bedf755c5e7303e5f411e800d7f706cefd3a07baccf16da680467b4ee701cd67059328c9a963fb7a0c642a741303bb49bb808e08fdfc0178536febab0fe8a598b125a2069d0a186fc85d01af4899011525e861c3c041712d80b7652533fdca548bc1a2ee372f40657f8360467a7c1b18c53f1805384de79706b676bd1988dc39d065bea1b56160bee110c899d11c11f4e613cde7ea1ed5ef39d5a35daf41a9fed236b03dec1850aaefdd019c199acc334015f9e70b50aacf8f8031a9bed90794c80fb706127900a8173c57c03863267988f2d1cb98f04f1ea640572b327781946e4f8b9fad6f6b6c2388c2df539ab6e2bdb32b8854ff9c01297073688854ff3a30b00591f428585c9bdc1d1b589e7d6f60877f0f2832e2a2ef1833437342c09a4fb41f7145e69c8bb5b42b6030f404d019bb6f5303a7126f02ae400f002793268f7f1091fbd5cf525f5aeb9f80aac7fc1598e9e97511905524f24514feacd02e8a4f02e644fe9c1898e1bd3490c8fa0e9de619933a35b056b2f5fd69e0acf017036786de0139f5763d15d06c5d3d02fd8c294efdec94bee5304ad0ea08cc48f5c8cadca9fe6fcd10a9fe960205f07e62e0d0ee7b4067317efe1a88dc3130a653b375004c54a376802977c2f91ba00a34ff1790b5591c77fa1190ebb0fd8768a473a7e9f4dbc06324016b26f4a3ee9740ce6cc2781ba8729e5ef9d9fa319163df23f757db275710af766e261348c2a713406741bffe0125790b508abddc033a9bf26b00943c9a2f16804e28fb9d013a396ef319701246252c9c62a368d88a423b423ef915a747bca46b059ceff063887f899da0cda406579caf015a5d1ae78ff59b499c2863271b40fd89ba1f41ef3b81e806f69d406f3d402f807d3f3550c6d6009d4afcf508e828ca873ea014fbf90638c22d797c3190840340074dae9d003375d06e0274024432ef00dabf7f1a79db77efe26d246046f393c83909abccc0e3db3fa0d024d78f40b7822d031d6722d7fcc52d3a6ad4c0691a27b4f79b3365231c711adf0a78b5c0ba8137e66c032a961f27808e91fc7a324409fa6e013a35f25bffa2b3f6b60e019da4b7ad8029d5b76f80991e68ae029a575c44aaf31d4af5647e00741944584463d0cc367136c33ba0358a7bd13f1d28915b7148d30a580d75226080284e03aea1afb75544ad1c349f48e480d289bc3c354422bffe01457b0828913fd78112d86a19684f134087ff7eeb4b95c83f3f006fc84de25d47354c29fc8b350385ffc510d9f09b033a8a7263dfc0fe97e83a957ff9d2033a540f9e804be7cbc32b402fa75546f5289da631b1dc00a97e4f7a140360ff0828392c6a3837f040530163fa30b378062aebdac126e74fa0fec4cfc67d6eec8c7ae918c8db1c1870c5f39781fab263202b370065e5d7b381ac1c02caca8d03a052fff4d71079bbbd00f4f6e38d1640deb67ee7065ee5130ddb5827d9b4767a80326a4ef4eb7c6168af6b60796574bfc65ebb318d818871d1d1b00b2956e71c335684c339f7991ad881f92c6048ed35034a1d78f908282b1312b960e1633289d18d71fdc8cbe62ff2a5f944ce45d7a972cec529012ba0129e1968e97601e5dc77098c7582ee9181cea67e4539b7fe034cc8b9dfbe819bf80298026b4381b2b20066caca6f43d4cadd281f559db7dcb44e0ddcb4ae811e59f9b065880e7c193dd8aa59b2bcfa8e837f00d9d0babb31c4af7cf2a575be3066f069e0dd82f19454359f6882233d264ef5590994c0dbcc40aa8f8131f07b6f886cd8be0394eabb6b805bba488f89cfdc59fc026cfa4e167340857f310594400f9b40c6fe6cfa9693faa18857d5f22f7502f15695474009f4f460603fe19b8137e4921e45c5770c4f0cbcc89a2bea34655ddf35507f22d5a38a4d9da6cfdf06daa0174069babb0e4cb41c289a8ba952acb5f30338c56640a604fa07e42c8ddc8b9bc5d471b99b1a78c3f6a52192f0e70e9870c5eb2330d591a9fc4af389563b9a8b9963fb746a88c83dde03bc4fbcb51c1a38a2eb0f38d67b03d099e59b87804ee0debe0566ea4a463fe8ef3cd8584a5c438f7ee1ded24019fb0254a46604dd0d6c45380aade75f6c011352ec977fa91388ed9491fbb3ba2d64d1e2ea67076d473f8ea15d01bd8b070367fd6e0095ae383250e7ee8109f05e19385aef3940a779268f2dc0d1ff01323a029b37018a4bebedc7c0f4d304d0fa8fd3bb80e613ed7a84a3e3c83dfc028acbc6d240d01340ef24df6e1b387695efa8e3426dc800f236599c00c425597c03390bfce7170175d039a07eddc023cf7640bfcdb6ac61dfc0f17c1d408b9fce4601cd276ac3eaae3ee83ab6cb3343c4f62d03266a4f97066646a27c74f3b1069837010d880c8f031cd2f9c2c0f8fa21d0d13dfb014839196c9c039a463fde0a683e5170e35f52c7e561cdc00b4fbf0095c2f5234087ddeef02f753bc68b58724059b9710b642a96c7409fa3b1164786b88b3d47d14e9b3588512cdf8019937e07512c5345bff5b930b06d6f0a74d5b0bd04349f28c9118e9e23f73b0074b6fe7607d079e33b8581821b65aca763ac93786f640d9cfa962c3e039a5387032640c6f8fabf8f00452e4922a37a755cd81ff506282eb33d03bde00a4881e1872112b9ea029a683f8e8c5abddb7905b1507890393d6237470dbc61bb15bb0656c043d119a013da77fa06f6e1c4cf36c737b22c6913d0d18bbfd116660e7aac955c01b94f38fa1e1d3d12c40af7e17b0a64ac923f8ed661f55a95885c2450eeb844a77705749d3600c565bb67602c270a4cfe97d95da0643dee63b441795d70b9e1f0b37d8d4c7cdc01c4a515af215e015b210f0c1c6af604642cd5182e0cbc45e417c889fe5e228879d3e4fe3ca06ed959deb00dd49f887ee44be1e87ffe01d371d15c143ec37d872b74946db288142b0a9da6156f84ad1fe67512f82b5738e8b1b2ab863c63c7d0a981771eec19181188a2bd5af819491805b7efa0c7e6c041bf79a367446ecb40b13c33909551d59b33dd18b5be0558ba9224fc4b5f67bb7cf22b0a7aeb636160248f80f50be0fe02e8b300e22e03062ac95f8688dcf63930e5297accafd41fee623d0307c347c0068e7eecc05c0137e014e800ff760d91c85b17c094f458c40d67e066eb296e6b0347eee5c0c0211a37409f5b52bcf2a1019e2b5b27c08069b093c8ecd55f646554f5d2418f178dd6a0a0ffac19986bdc0774fceb1eff92a7ccadbd454fa9ec17ac33f8980384b415afab6c8090269f8668b6e2adb2350c748c5394b1b2f9ac205ec630183ba4cb918153457505c77ab7be5e0d8c3b4c01c565fb09e094a2e48e2b8aae0677221ce33a606c225902257016756edc7ce2361f0d5bf517d24b030377db006f606fcd1f0dcc688e0085f4f70bd0cbb0e99f56f57d8e37b146b1ac1cb05811b1025e423d01c63a5a2f0374bcc546dc1b260ed86469e0a4c50b8093d15b6fb981b29e0808fae716d0d39cd6af21427ac0cf2a60ad8f998137d26f1b38b2ec07a8588f7b7762e0bda2511c26832e8df4711ba83f910d51b3a78e5c55028a5c1c14b7023a68038003da9269346c53b5c9496c22a94107b53c9c0284b4f5b134b0f46d139800cf530347a81c031c4e90dc47259cd6918b1bcef135507fa29c46eb30735c76360cbc5f7d0e285f365f814c23ac91403307ec6168888ec0d31a3025a4ad28ebb3ba77c950e70e507f22d557ad65d976c0e2ece315f0ca876d40e705c7ab2756c0b28225a0c3a13ff60cd4864720d758f04340dd1360589f2b728d18cdcf03eab8449afe3b036601496b3760d0d6f9303b01cd279acf5546951d073d7650ad80a077814c8723fd0a88cbc621a0a07f57808ef7dcdd0ad066c9d64b2ba019538c9ec10e3065d2ef6017202ead9d6703b33c65401db978b2b8cb01b6da27f7fb40c6bacf5362db7c22a35665acec3ab6d521a0d8def7053a9f3f0572e07568e0949111d027fa6b7fc07befb380bce098af68e96a983233725f042872ad38706a05acd97c36307a7e0274b862fa6ee0089573014df0492472b7f944598f8c4a1dfd494b406ce7ba42d17fe91a1871de35f0eabc5f40c5e125c2910edacc15bc1c021de2f2d403ba8275802d6649b96fe0d4fb6f20d3cee9b780e613918b02d3735ce2d0aab2f71797b981f3a51e00bd5f7deb1850de6e2480cea6fc59074ac6a57e225f7a799b8d5b6bfc8a77a37fde0538b671b6cb0a78e9e1b621eed99ffcec803d9ac95d01b0ffb6751205b7d77ce24ba338648eed7c13d0b1bc14ba0638c7f906e813fdaf7f40a981998b0085a3f59a1a786a7c067a01c318caaa61c6f4f55de47eee80c51bfb6a50c0e61b8608d87d0f50c0de0a40c7484eb962a01da9f76b4006ecf50dd1380e5f029a4f8463d5eb2bff4e028f33325710e1887b7659f8b4e897852102769f017aafe84fa458e170c4cbe357c07bbdde815cadf65140f38970ac6ed165dfe198bd020a47bc74b9ecfbb8e4fbdc10e1783d0374126735334412fedb027406e2dbc2c092c416a06dd07bfc6ca18780cdc8ecbee312af575b015d9675a0a0ab70a72bb47d70182dcc6a2a31523d0affc0b17dfe3170f8cd0ba02364b74a4027e9adaf013a7af1731b9802dfe706ce1089f468f64646f4f723e80305bd95bc18683ef9d2e6413262bb0168efdb3601abef5264f626507fa22447a12bffcad81ff0e2c43540b19daf1bc8fd0740fb09e3c5ef6539d0c6adb76f40f384fb870696addd026541137c064c584a3c8cbabffa8b80ad1e02cab1c3112f712bc73e0f76ad63605fc129a09338e31c8172ec80c5eb6e57c0ced857a0044e23a4e3e613e1883bd0df31b42fa98133779680ce627c1d013ac06f3d5afeaa502ff829f2b6aa4b1def16fc00148e7815e90a78a0a900566327f1c2e41510fd1760c2c0ccc95540f389c21f756ee2b8c490c90a18d93c00b405607dc7c0345834e393fa96c418db3ed0610cf66b0dc819b7242b274dd98ef23102b4b2fcf9c4c0ea5202563ff3b105716ce018b828c993ba5cb2ef750b18976cde206075f4d9a2da01ea4f443f9acfa9d363dc0314fdf2dbc0b9e72f804ee27c3d3744c0b61f009d2cb8194df0b4dfa5d57e8f249c2a72c3f7ae81ede93b0626eb5bc084cd2cf77fc0bb8e0858dd8b618ced1dc8e9c30c5f81fa13918ba66fe6c8c5428c1a742eedc7c8c04e9d7b4091fb172579e633107f9f8094a329e239aa9c29e8c3f73f60d47a6988f2f1fe064ce38ae13b5734f5218af633507f222eabda306e3be89f2706cefe3900b4f162e328c0273f7df7028a94952a8b7640bfe0896f9605346f078f62790a6803d97c044c81a40266c0681ed07c561007a38d3b0e7ab56fa0fbf50ce8ccd0f78e81fbed4e804fb0db3a0174ced5fb39a0b36e3e2e000eae4966b38041a10d5384c3417fff3450b4270165bb60e6ac67e0b12912b9d37c221b56356adc9cc6c77b35ba0622370374b0e27d24e1dff17cf777800e687b13a464e54609f418bb88299b71b72e633c03457a7415f42169da000b41a74007186d07349f682e222ea9835ef601ade77f6f013a35f22ed234755cdef81785b4b5f612a09f1dc6f2ca15b020e4da40c7b90b74b9a2f5078c0745c14d9b4f347dabc78471cf21adf60cf4d896014ae424162d8e7b2a1fadf528b83dfd6c6bb66360ddd60690163c6afc1a0858a47aaff9ac200eed1e670ec7dd0fa037c2c6db8f57c0be93a8a659aeb5b49377038ff75182b2fe8447c045340659fdd4c89c6754b1ac0e7adcd60ece81547b01db06bee3d9c063c22fd0e38abb5303b3096f40cec8d52e21ad6f49a418d1af9328ae3826facd27a2bfea7f8c7347ff3b322a77f4bfbe001d6878bf007482dddb3da0f38326e38092599e2456338c73c5b6f5c1cf2a72adad1703eb937545a6f4b804fa0cccbc6f0a1833383e0c683e51a3a29c168e5cbc2dbc6e5df556b7cd03a0a3d66102e8dcaff575a064d7e26f54d3e66c1b86c3a2ce150e69726ee039ea0bc8b58b33dad3d5a900515fa202f51db078c3f60a222eb16fad06ad3e5ebb3270f33c06747ee18720d581867b80ce30fbd900d8399d2c3e02dc6ac72989cd987d047df8be6d6010b20098c4481e7a823eabf63e819205cbc771b3582ddb8bcc8e2235706ce32dee3528b68b5b4071b99f033a72e8eb0da89818da8dd672d0af38bd21b6cb35bd73821ecf0d2be029690be8335fb96809884b0cddd4a0b83ceb4bc7dacaf402547d5ea0f40c4c58ba7212957035f111b91f65ac746ce76b068efbb801b496f6fd0ad0114cf75340a7ae4437705cd6bd0d4e487d0a18a4c4655101131afa1863ab7bbc447f181b401ae0c16a7d080c80e328b8ab479cb85746391dffc5e509d04bece3748f1544e462c3430d3a368076bd81f8d2fb19a0c8ad25c0a4c7f6d248d33aba7d76c7ad017d20def65b83829eac1b5853f30c94c049b4a7abbf156caf4615c6d55f5c7e0c1197b50a50395dbb041497b70150b121776b0ce8dd3e6fff02ea9e6364d45d14a9aace5c56ca5e03459f774e97409f6d8c0717007119bedf1a78f2fc06c6406cc61f57cd2722170934c9592bd95a5606164ee700914b6226603cd1970ee9e44d543d92bb570387888e808a0a7412b7c649f389ea111d81a9c311ef7f59013b207e0196bdb67ef42fbcc8a975b70be86092d7a840d3a2cbd68ccf28dad3ba5d67ad64b474d366d544a429ffe2902663038be21706b6854f80095750d51b60615b94d369f389d846259c39b6d329c07abad6f8d710b1a56730cb595fd85adc007d1ac7cf7d40e7f6bcbc004a8f789dc7b8d948cf4aa648c259d161c7d076548f59d33a468312995d3f47f14cf8b60710db611c46b8026e6b77c014388e9bc5acf944e456e951b51db9788b590d5a3db8fe0711dbf52d6040a7f7f79f80d8c6cee9ca7bde5bdf8f017d3d7bec5f053860c9938176ec0c98f5d9883232705bdb08683e119755f5a83a0efad7af8115bb5b400e2cfe0105fd8fbb35400790bf5f0468776d32fb0ca86b1487574c814a53582540d087b17776053c6915860869c2cf8e3533f2fc047419cadab905c6dcc48f3f02aa3625f96407a83f2b88554855d7e911c7beaf8021c639a0f4981e1928da27801268a17f29f5c833067442c8da05a0732636df02bc41f9e300d0ab6bbef9176fc9dc680734739a51c6d6039c40f3998195906f069e2b77810e895c12d29a18723d17540ca9456c5327d0cb33a0773d9373e95f8a1d028516a4fe007d9dd6780e28c53e8e009d23f07e19e03ddeeb1b80b6b96e8c0dac644a039a29ee68e9f602941eadf52540f487ef3786087abc43b7795718b03702520add716454da7ce25f5677d3aaf717fd6343043dce93ae41e9316b1b78f63807067ade9f007a25ea5314879e37c16f9d02da8e5d2e0214f4e1fb9381d5e9bf400aaced00150f01c7c380ba38b0c22c01521a9463bea3f944f457cf1e55e6e84f1280b7ffb4aa2d03cb1a0f0096bdb6e2a0961ac60cddc4d2ea2aab83cefe971450d093d21057bc8e811e701f799b359f0858548ffcaf581680de4b1caf66adf2a2ad46fadac054c926a0edd8bfcf403f63ec33daa0dce18837c1af200a6e39073260af054ce9c11e77039a4f7c4714fec2218de3e76b18a87711595978bbfed727a090c696ff1a4a363c24512c0b8563188fb32be088ae43030b86f895ba1b1ce5f46b024cd404479d5b1d2f16418f2fed3be8b38981f5a725a037064fa606cac78381ba7f0694ff97bdebda6e2357821f33ef7594453e3247052a4b6f139973e6d7df2ea0070a96e37a57debddac5f1a1cbc3e10c80424734144852203df0b474ad40ac4b70dfced3cc697a8261d92e8e19f72ef3ba03748ff78502a7e9ebebafc840d94e2ed871c9b8e5f3425f8effdb77b1f7c83ebf5ce4004d7bad29e0a775bec70eb0374d6205d297b367d60b10eaf269771d09a0398ae8d8899b3d4d8f46ebebcfcadb699ea3a57a367db996ade966007541a7576414b066b50089af9baded4ccef27ffb2b9684be7bdb71d1013ad8e915e9dbaaeee09fa4673ddb627306d01c01bb38728fa606fd2c6ffd4ca8ef52b65a8eefa70987752b3d7cf7e8366595805ac093b5025905cead3435d125fba4760d0a9e9f345120523da86bbf128888b65fe9da1e0b329186381bf63982f4575a8b0707687542fd15b101355fdbae74c608b292d08e7ee89ec396c41420ed315b365180f4e4d1f6c602a79a698f6d5981f4dc9542a840ba5972d95420dd1e36b313377409439e5dd74379520d608e150814b8b08f6efeb39d6c2550244faa5ace8d03ec15a58e02612af85a0aa4271896ecc845a7272af74b7a85dbc3bb891448d23d01766ca34c7ab0f7c85340e31e189715488f785cd8991c65d58ec2d6322a62ccd7feac1dca2848f383726305d2d7f72f1da0c6d9408130abb241df36883417ffdceab811ffb742cb0a8bd8f55867ea00fba4f67c3101c2b40bbb0ed0a5afaf40942e17f6e5621e18656f9a2870a4ab43ce5720d64d2435fb72b1bcad1e6d5450c0d797ab060ae8cb21b8778056a1b97280b50a6c728b01d49a1f2910e95792b903d46374ab40ac0ed573bb48c7fcdf8ead159e89eb0f5b245280f4f55776814dd2bd809ecdd80d137917dd80aa57a4cf01eb3d3780faa4730ac40ad85d8b61222bbffdd9d9428113353576770a6454513c4faf90ffed609bb18df678e6a71d978903eca317b70ed08cee8d054e35391fa5b602e9019fddb202696ae44e7fc56d855cde594016652d2874610199b86a79ee148835f21e8e14481418de58401463d5600b0a042af86c6831da77ef52ea39c0becb225220d62bece98306b05724fa1599b89acb72ad40fab6f6dc15010ed5b0b287b819407773d42d20545746cd2d903dd5a806b216702f17dc39c0ce53af6581704f81c2d601d6d2eaed2990a8e539b21d74e05ece16ce8b0edca3b7b30aa44f1aeb574eb36969ac4481744f62e15c01ddd88755d502b2d2e9863afbfa3229b36a67db3e3d489f14f38602fbfae841df017a90b53e984875ad90aa3715d1a81da4cf2133594d62a3194487cf4379ad40a2b2d296f58e0e65c9d19b2e2ce036f76c8b0ed0a4673b930fe9b6b7b3f0d002e9a3b7160507a8c973afc0415613b8770a1c6996eba8a4c0a9dab7b52b05b2a17a8ce60a446a14cd2d818edcb49c9d299028d0b5cf71741ae9f6e382ed7531ac6cd4cb4beca31fa50f060f0ed01a00070a1c5ac0b3b52a0c60276ec1c897e8f834d0c4d86e600159a554d7b6f7384eef8160e4007b8f5c0a1c2950bb53e04427ee38ab40a083bdcd2890a89297180b2712a3485f3f3ab180bba94d803080fa716f153856a07ce9003bfaf6e080e8347d3974ed409d66f675ae974205d2cd5ff1ca02eea6ded601ea66182a70a240ed5e8153b56f9733051255596c991ed114f65497b27b1304d84f756d7b8f4c662fdd17ad5f11ed42e7baedb18c9f1aabf620496a1bfa1cdea503b40b8f15385560d57380a69a3f2910a9f23dd59bcaa2a371b11b058e75a08a460f92c9116a9fb653c09d7960399795f543dd83790b04beba3bd6f657b2eec1fcc4017accfd430a689f467ad330a357ac91029a69bfbb7280e6491f29e05bc0ebd51488351f666287d297e553f34f6f15486bee14ec40f9b27e68e981a502e9f1f2392b2c7c91d9562109060aa44fea5fa4803ea93dff36629e8e05fa46538a02f71ce38202870ad883bd0508d52f65cfe53180aeeb7606b97d495e6c17d820fd59d10815487f7674e800cdb61d2aa03d86f5ad0241aa9f161ca0eaa8e58bac169156bdb7540fddbbd8038205d077f16ccc3312b3409fa3345220ab066f6ea840fa1cf6bc35036852c98d02e983156307d807dbd839261a7ca4559a970a6423cdfeb1938e1abdfa4f170aa4fba3b62505d294c4cd9d02916e9a6858452072cf610f5f3480e6290d1448a309b54705e2500f84e92b906842eac42ed25174126908cb1299aab5f6c78d02ba9d01b6dc471467d2cab523fba47170982651542c20f256f7596414481fcc9e436300cd63db2a1029901f3840eb5dd8918ba54f55ffb0622d394d2b928756954c82e374ae6715384d7f65ae40605fdfebd83e4da40bed15552f05f4d1edd9b502a4cf610f6013204e1fccae748928a4da1fa64fe3bdd3f4eca74d6c814ca2151f27530bc82aa545ef1e14886d26a4d71d5b403a4873e0f715d09f6dd9f36f0da025db870a240a2c0716700f66cf3b89f7dd83d9d87cbc2f43a9958d4f2d90dea365ddd806d03a68e716909b6a08aba540a0737d6844527c202fa70f669fe3c07d257806ec57ec31c402eca74faaf790e15627a4591de243b743663eb780c87d3dbde3588158cd955dce02eea6c1b503d4b1bba7c081afea57d301ea50b5c370749a1eb1d439b14078a4d93fa39e05d27bc01e306e00f5c31c287098e6c1e61538d2b4d7fc9302c70ad42629a066b53dd84a8cdb6355261a76061da73785d5a50ca06e97810247be263f3d2a90feca26afc089caa8f15081245265e2d20232a9d4e0ad2820ffdb97332b5d7c9209550bb6a5e408a8d0b2c711b294bc263d0fb70a1c2b50ca2a70a22956abbe02994043e06d057c55696db9e4f8344c73262a0ab89bb65b0eb00fd67d50e0c4577563a180fe0a8ae70af86a9aafece89f8adeacef62d990c9a4b57edb96d919f7e8f3b502a7aa3877821408b400795981aca69b169f1ca07bce360ed09d3a9e0241a0dc1f2810aa57216fe75886636780f2b50227b11a9a9640dcd2ad01ff950269bd1c5b7921ce5275b637bd5440df05f19e035453ca2b90f135dbc5722e1b1fe88419db3ef5d32b105ca580bebe7fa640da1fb32707e861c74d07d8fea84c14f0034dbddf2a10683665fe428138b2f3b46a970b5f7a443365edeb07d90315af39dba7817b0e5bf3cf00ba33e54c015f013f768096f9ba4a01d550765b05d2e7a8d9970b64bdb4f3b478a0405619658f9c8ac34c909a0976e4c2f04065830d0c5132ea73d8d3900ca03bda2f140814580e1588d5dd51d3afc8cfaa7562df25ca1ee902db8e2ce0fa7474a040a840616701115b1ab2b97380d610992b2072cdf6585d8130b6f728d95f89b3d97497cd9d02b126b5da03fae2d8fd6cd7778066fca740a480b771806663ef29a05e386f60055f1ca7cef2d8525dd4220df8d7331670378d970ed02cd79d02b1025e4f814445d2dc4e98244ea32bdb63058e55bb18151590f1b7bd6e045fc25dbe766ceb390bb85f89f61da0c9b5e9158902b3d801ba6a2b20aa806e89385520a3b3b0f76001fe6f5fce8c4bb29f3dd1e9505c2a10e88698646301d17275165e2890feecb89202912a027d0bc8fc507bffc901eab66d28b01fa88724e3007553ee2b70a0337977ad40ea10294f1410f65bbe6415486235de6d271fb8e7b0a7ec1a40fdc9270ae87320ec3bc06a8e76f7820047fa60a59d02c7ea8828b71ca00bec5681d35097f1860354ff3855208ab4d262c1023254f61ed56c0aa403655fff5008a402f8568140f758857716a0b7cf12c8b340fa2e183452407f763355e040af085a0eb07c997514385460e42b7014e9191003058e0355697d07a81bea52819348fd4123054e438d36dd3a40a31a7d05b2eadcd9a45fc9ea82b24a7fd65729e69d59807cb0d3329302daa7eb5081fd581f2cbd623fed64db6347d9d37467ac02ae837a1b07d82b6a070aa41d344b1ca095e3da0a1c059abf9e7580869fce14d02ec42cbd693ad72799148855bb785020a35efcee950259d5617245057cf58e2e470a84ead62fec2b10c7aa18d9c13e925ed57dc05305e47fdb41766a1fbb97b3a52904d09783f5d21a4037f41714385620397280cab99e02597ddbce42015fdf253f5420b4ea86d7ab3ac08e4ba5a240a2e275a43f2b7cd0788351ad793e8ef6badd6acff37114b0e736194087a1abc0a9ce64bfe9002dd571a74036d40d970f0ed04dcee94dfd5013fcd39f0d745c8a8902a1cef5d9a1037475e82810a9105ffb0ac4aa7fe46c9f9e70a9b7d3724f8183588faa6d2b7094d8079bcd1da0476fda95ff34eba72bcc8d02898a689b9dcef8945a5aeb92055c17f67b0ed0024bfb0a9c2810ed39409d08a70a689f7a364344804ca8ce9d3b05d24eb6399b0204ba5c6c0a0a24aad1db32e77419e8c42d7b0a9c245a76c4ae7419f76095aa033432d255201dfd76e0003bfaf5ac0299d4a3b84b015d82673d05d2e9606bca0ae0875a4e6aa340acf1a8a15de8592ec7ce8fcaa302f2f0b6c7ec7291750fd68503ec734cc70aa40fb6ba4f01ed535515b2699f62d65740a7a5d74e81503b396f472e2b825ed32b770a1caa76b16d2970146b51a2a202a7fa2eb9b202195d827bf729a02f371e3840b799184b8b69b0daa7f63cbe849b3475f2f71da0ee8e8d02be4e98fe42814087217c74801e623f55205256ce060ed034cf7307680277518138e5ad5da5fc644f45d2ec2805224bb1321438d025787dafc0913a55e6170e50977c568163edd365fa957426577d054e55ced5a629a0cc0eba0a6454fbcc8f15c8ea3d6a170ed013726f15f075a0ecd11349904d4b4115eccb05aed747fb0a68af63b27280edf5e94401ed75587fb2003ac7bcdea502e930843d056235346b4d051205aa5307d83861d74e874086414358eb1488547896143850ab60364a01bda2e32b70a80b8ad74d011d97e29e0247ea505d8e1538510d65749f02dac9eb8202a70a58eb44804c3a94550758cee5d29fcdead896d29bfa2aa2d70f29a0142bda2e0c5daf6f6f144827ff72cf016a69dd29102ad0ef3a40fd1f670a440a4ca70eb03f5b4f7f254e81ad03d4d28a154814b027071a40fd85fae8c9beca4abb695380235d722a530768fca5a2c0710a5c3b407d064307e886cb8e02276aac16720a9caa5a3c3b562013eb49bd430768359c590ae84015460af84ad3e9630ae8b894c60aa436f2e42a05123b94fdb202f2bfed75bb6c45fe81ee35b7db900438d18d9f919d0e6289eb4cae361548c776d451201dca2914488772dc7480ee79bf53201d4a7b68aa00e940f52cb323a198fa710305f6d374c22705528a4d670a1cdac5d1eb151da0b1d79e023ab6988d1da0bbd2f4c192e3505505a480f25695bc88c5a02de0394013c9b50bddd86e4f14c8467a4ac42005f48af9a5036cafef6e1448f5d3ce690aa821315f3840f350e60e50152eedb140753aeb5233808ac6f41e81ae0e85bc02a12e06cb690ae884d9a6cf11e957c6cf80ea747628633fa3bb490b56d98cdd606f4e1da0349da4809a09f6704e01522297a70ed0429376858993d49f3c593a40771d5d2b904e98e593036c2737a0c08102b634b8015434e614d02985c1b902473aa5bab70e50ed33bdc7910ea53dd84a80d4033f9d3b4023de5b07a872b550e054e7a9df7080eed1bc4b81580f4fbb5720a35fa99d394045e3d201ba4a3d3840d5c0e77be826d6490aa84d68f7790a90553fcc74e500ade35c73806643e51ca075add35ff195739db903b43af28303d4cb72e500f5c3741508d445d02b3b4033654b29905a9e6d07a86377e400d5c74e1ca0f52d2f1408f58a4dd101da415307e8ba3e4b01a5e938fdd9d40f53dc4f017521d9e3a208a8d9b49c384063afee2b892e6c697fc4b11d86e28503ecaf94330eb033793b4c01fd9552de01763aacae1da0e962a70e5063f519d0aa807685e18e32fbb6553b4f1347c2c25881947385030552ce8dda0ed07a397d050e1518371ca0993b3d058e1458dd3a4073588f15384e7359360e50ffe99502270a8c9e1ca0ea68d3019a77b150e054af583e3a40adb524055499881f1ca0f1db890219bd423d35494a53cfee8d34800652d3b74d731546890374b7e0d201766c07be0354e96d39403366d60ed04eae2be0eb3deab70e5005cd7380c691670ed0520c6b07d8b19d6e1c608761ba7580edc2fa4e81407f7671e4003bf9876b07d8e7283d3ac00a605b8bd100ba06cd1c60f5f57ee200fb60d5e72bb43874d701f6c1a6eec154004ff71508f539468f0e50efd78303749bfcca01ba35f4c6017a4e40db019a58bf73802e6c2507a87c79fe592d8c564b015de96a7305227db0cdd8011aa03a76804ad3d8019a5670ee00db63f5b603d42bf97c85fad89e1ca02956296f23edc26ac6012a92720e50f56be000dd40367580ee7ddb77808edcbd03549aa6c390aea7d5746ac7fab60dcf015a36a0e600dd09bae7004da02a3a408f365a3940a7f6f357ec400dce1c6007ca567a26a0fd517a70807a25330e50ebf5de015ab9d63dbaaefcd1c601f6e52a33076874160eb0f1065b32c4001af17e7e0ecd0b5e3a405f2eef004d474e891cab9c9b161ca001cc9103b4b2a0eb421538f39603749e961ca0dac533a071a0aa03b4f2827bb04403104d07e8fe97f46d9374e2ce1ca0c7ced41ca0274dec3b4065c38303346dedc4011a9049d78f44c77675e300d5930f1ca0c712450eb01d34764faa833d3e7480d6ed5939403be8c9017ac4e3d2014ae4b903344debc201baf23f3fbaed8fc9a50354c7bd76803add1207a823337480ed8f613ab6496aaeb80753bb61b77380168aeb3940fbe3c8017a98edc201b63f86570e50d75edf016a15641da0543f7680ea1f8103d4687e7e74d5f99fbfa2f3c38dbe2a46836740ab57961ca0d90cf86c9fedb37d60fbe4e167fb6c1fdf3e79f8d93edbc7b74f1e7eb6cff6f1ed93879fedb37d7cfbe4e167fb6c1fdf3e79f8d93edbc7b74f1e7eb6ffdbe67df4033cb74f1e7eb6ffc3e6b716416b11b616d1473f89b64f1e7eb6ffb716b716496bd16e2d3aad45f7a31f46db270f3fdbff55ebb516fdd662d05a0c5b8b516b316e2d261ffd486c9f3cfc6cff276dda5acc5a8b796bb130245cb616abd662dd5a6c3efac1d83e79f8d9fe1fdab6b5d8b516b9d622df5a145a8b626b516a2dcaad45a5b5a87ef4b3b17df2f0b3fde75badb5a8b7168dd6a2694878d65a9cb71617adc5656bd16a2dae8cdbe6831ff293879fed3fdc8460d7adc54d6b71db5adcb516f7adc5436bf1d85a3cb5167badc57e6b71d05a1cb616471ffd9c9f3cfc6cffd976dc5a9cb416a7ad45a6b5c8c2033c0f9e0f2f301ae91ebc105e042f86977cf4a37ef2f0b3fd171bbc36bc0ebc2ebc9e21611fde00de10de08ded8f0f012de04de14de0cdefcc31ff893879fed3fd5e02de02de1ade0ade16d0c09b7f0766216c2cb8930849787578057845732242cc3abc0fb606fcdff110fe1d5e0d5a5fd2121a3cff6db1bbc06bc263ca1dc39bc0b4342917b2d7857265a28e035bc1b78b72f487807ef1edec3c73ef97f9987f01ee13dc1134b601fde01bc437847f08ee19dc03b85978197850ff87f509ee167fbe506df871fc00fe147f0e3d6e20ebe187e059a857e1b7e077e573452f83df87df803f843f823f863f813f8d38f5d9dff9b3c843f833f87bf80bf84bf82bf86bf81bf357feee0e7e0e7e117e017e197e0cbd85484909f72f25fdae057e1d7e0d7e137e037e19fc13f877f41df8c7f09bf451e8a52ea5f91842209fd6bf837f06f0d0985aef7f01fe03f7ee02bfcd7784819e83fc1df83bf6f287700ff10fe11fc63f3e709fc53f819f8590440e021f0110408420411821841f2c9c67f5743d046d041d045d043d0270983018221821182b108435a86818ce9c53309451d1549184c49c26086608e608160f9816ff19fe221821582b52195106c43e2055b043b0439d3e4431e41c170f2d050744b511914119410941154105411d410d43ffc5d3edbb71b8206822602e1d839820b0497085a08ae105c23b841708b4038c680a18955e40d09a7081ed4260c1e113ca524dc43b0ffb1aff3dfe1218203da81c12102a1dfb1a1dc0982530419d3b2e6f30942909c2fa9187a4ac5d04718200c8d01295f597df84b7db62f1bc208618c3041d846d841d845d843d85712860384439a85e108e118e184240ca78c1386338473840b844b842b846b9230dc20dc7ef84bfd477888708730472e89c219e68df4930f3218c5b4c9e712a9189611562815c32ac21ac23ac2865a8c61933a6a7886f01ce105c24b842d84571ffe769fcd3684d7d477c21b84b708ef10de237c40f888f089ea68b887709f0ed2f000a12cc7f7c62c94613d32243c46786248287320a3241449f80790b0f5dfe021c22cf5c908cf248c3c443ea2005168fe8c10c5881223154f10b58d767a84a86344e286da69d4a5ad18f510f5110d100d118d108d114d104d3ffc1dffcf1ba219a239a205a225a2152219af0da22da21d2219ee3ca2024918154db450549e716b514454425446544154a56326aa9184515d49183510353ffcd56cfbd7f310d119a273e3fc7c49c20bc340d7028a44f2d0aaa6a93c141e8a3c141e06a053877fcad72f0d2d2f11b5484b118fd115a26b1378fcf8f7fd7f6b74bc45373419a25b447788ee113d2012f009d11ea27daaa3d101a24344b2b01e233a31517b196ea15c065116315412c61e4918fb2a09e3e0c3dfceb57f370fa9a8c42195c93822afe2d8689e05958471f22c0fad5e1ab78dca9a2763c5448c3be6c391fe2956a568aad668144ec65d1592fe12710f711ff1e0c35ff9ffaad1dcf00e110f118f108f114f104f11cf10cf110baf9646121a120643062ae215cd42bfcd38a117215e23de9084f116f10e710e713e256101b108cfda87bfa36dff621e22165e951157e81d8dabc6357a4261481e46cf4a695ca3521acb42d840dc447c46aec6e7869617a9784c3d37ca4359448d54943bfb2b0a4646418a88e5c3d36760e39f185c1183f115473396a5f606f12de23bc4f7881f10cb3f3d9184f11ed5d1781ff10179180e4512d231130b758f10cb3a7b427594249411cf20ce22011d33a93afac9c3df31548987c4a7599804c6e95241121aa53431d2af80c4988589b404491b49074917490f491fc900c910c9c80433b62a0fe941cd20193ff330992099d285432a16683a86e7486622873ffcf5ffab0dbe0ceb1cc902c912c90a898cc206c916c90e490e499ef189a44012867b488a340b931292b251474748641a5491d490d491349484495325617286e4fcc3dff1cbf66fe521920b2497485a8627079466146b3650716afc31594abce40ac935921b24b748ee90dc237940f288e409c9de0b1dd528a52254ad30d4b49b9487a29dcab4102a864deaa8917058c6fee05330fe0dc37a88e408c931921324c21f5916b368036d0f6d1fed00ed10ed086d3140ae993e4a8df486be99608c76d25aeca3dd46bb4312b6bb2461bb674898d5607d72cec0637865721e1fff9c94c67f250fd1eea33d6068a13d343ccc5294b547868a366a7f4271d796b199a03d457b86f61ced05da4bb45768afd1dea02d83b4433ba792f09984c6381412b6f3d44be5feed02da4552b15d2215db650ac67685ce9bcfa8c6ef1a53fa63aed9ff220645976957d1aea12d746aa02d7d7e86f639da32e29768b70c09ef280c9584f7685fa17d8df60ddab768df3d93b02dfff480f623da4f68efa12d443da0bc6dcb8411dd75f0872418ff4b79788cf689892bf469bf9136267f8dda699e6c8c65513c453b8376161da0e3a1e3a313a013a213a113a393a0d346a7834e97996ec1069dde8b04d454125a61684928f25078286ab050b1d337827188ce009de18777c8bfbda13342678cce049d293a3374e6e82cd059a2b342678d8e8cce169d1d3a3974f2e814cce6fa2cd5516e2cf4ccd6de163a45744ae894d1a93c93502461a78a4e0d9d3a3a0d749a8c097b029ea1734e2a0642cbc30f576dfe7d3ca45221169abfe0ce09dfe4c1085b021b3cac99d0459e824e0463e7029d4b746484aed0b946e7069d5b74eed0b947e7019d47749ed0d97bab8b5a1968192896a165201b9e9b50913aea3e5db59d7d740e3ebc5bfea58dd660e790fa4be788867de7181df97c8a4e069d2c75d12ed0f5d0f5e91aed062677744012da0c524f34cc31ba21ba11ba31ba09baed679bb0db41b78b6e0fdd3eba037487e88ed01d3303b93b41778aee8c3b72ba7374171fdb0f7f220fd1fd56c62d0386dd95918732006b5251a413030cf2c50dd5cbeed6785c4e28ebba3b7473e8ca1016d02da25b42b78c6e055db9ac866e1dddc6f3260c6120b9b742b7a9f40bfc17ac2bf0876cb3886da2a686e7e89e7d06187f6e94c9c00374a5eb2ee8d6ee5ea2db42f70add6b746fd0bd45f70edd7b86e9bd0b741fe8951112fae75447a3a3b4ec5a99917a4f18f888ae306acfc4092d09f7d13d60f4bf7b68787844bd37923b1f2b0f45419507601288b0f7e463b5d33f8e87e89ea29b41378b1ed07ba76ba851c47df47c934333a676da0b289a447b6498616d36521cb1899e9904645a2f442f422f462f41af8d5e07bd2e7a3df4e43e03f486a49fe59e23de4bd63168f15e7384e4071fbd91d9aef1f17df8e737fa637a63f426e84de9b5eecdd09ba3b76064a2b7446f85de1abd0d8313c1157551666f0f6813f664914d98c3ed4987efd0cb3152dfcba35740af4812f64a8c13f6cae855d0ab9287bd1a7a75f41acac35e13bd33f4ced1bb40ef9221ca5e0bbd2bf43ed207fe67f1103de9a65bf4a4bb653c1ed07b44ef09bd3d786d5307d65c436bbeccf0bdb78f9eb403f40e2991848d91e18c68aa22cae8f84e1b1d2d324e47e81d9b76629afcf594265f2ff3cc37e6b5f5ccae45d342bb2b2a6d4c0437cdfe2bafdc27631d1bbd43a3f6bc5c3e7c69f016e6f9a7e8654d5df7d854d464431fe87bef35b86bec57cc77cd4d7837ff4fa8f6f72b432c62502821b640df473f403f443f423f463f41bf8d7e07fd2efa3df4fbea178d0a14837d6943c609c321faa28ee6586026a932521f3ca03f467fc25d1442c2fe14fd19fa73f417868155cac3fe92fb5165e6f457e8afd1df9087d65bd3dfd2441425abbffbc06ef9a378280393433f8f7e01fd22faa5b495d1afa05f45bf867e1dfd06c3f7fd26fad277e754504530f62fd0bf44bf85fe15dd2761c0e882a8ac547bd2d6bf666b0f49d7fe8d69b7c6f339e4bf724ff0ebeb2df2b2f126777a87a8af840c0e55305ad3512eebdfa3ffd05a1cb34c43ff11fd27d3f64cdbff0bcddee1c9dcf3516ece9fe81f58d2722f6c2f9b52f4c387f2fd86beccfb23f4e5b14fd03f453f837e160360e061e06310303cf8520c760aa288520c4687f4ca4427188418442cb5d66e631033676d9060d0e67ec278c7b4b54107832e063d124fe8f79287833e0683b73c1c0c19031313b133fc40d5f45d1eeafaed166fb3df396d5f5fbf5f5e66d76fbb84ffe0fa8dc188c27030c660f28284afdb608ac10c03e9d305064b0c56148c8335f746249724e4604309299c1c6c49cbc18ecc7cd906395a95223fe39e49e61e6290d70ffc5cc0a0f8dce20a9bb07a5032b14ad3c2b3675a5a42aa6c2c182a9a30e3a08c41e5afb1eebb84fcb22945537e2a39ff0466d2bb36a832c36950332e991803e14c03832625e1e00c83738607450c8a3568c4a0718a1abf68284ac705b7320d2eb87f622083db62907020f7bcc6c0ecace72e8a1506327fee30b8678e8748ddc183310e1d0f7be4e1e01183270cf69ea317c2c348e6d5fe0746a12c0fedcafda40bf6e0e02fb56f4d202319ec42de53d5cb2de4181c92845ce78e3038c6e0e4ab6c24214f31c86090c510187a18fa24e43060847d281f22aaac3420af308cb9060b398709866dd33a46785e62d865468ea8b5c31e867d13081991ba2c637384e1c06c803a37fb832b2f789b52d471d24a4861233d4650ad5804f27088e148dffdaf76dd0f52712f15bfaf9b8c2f8d6daab8ffb8cc9cd012f373188e319c908ac32986330ce7182e305c62b8c2708de1861a69fb02c3ad9181d9e730bd4d581bee58e2292a6398637c22a96398c7b08061919b7afd3b0c4b18cabf564833fa45a5ffab64e0b0a63c1444f8f99287c33a79386cd055336c7ea0d7943cfcabc4fb4bb32a9d3dc3330ccf31bc601468280c69617845367e838aae0daf31bcc1f01643198c7b0c1f307cc4f00943b9add0521878486929cce41ec52a5bdc621b1e19a21e93a8c25261a61878c313f253c4a9f0d33ba65075e414716a65a913a78e905447ef68438ac5481db5458bd49789728a61e66fefbd1f62e3e37333b434ebe0df4b4bfa3f445b112d7498c5084cf11d7918f918051885184518c5182518b531ea60d46588a27d8951cf24ac0d98ba1d703b2f4bad25157a65467d8c06180d59e56934c268cc1a33a309134747538c6618cd315a304e483fc29c9e52cbc3d1f22d0f472be5a1f784d19a8f3ada7c5420f1efe4e14f4c29e9942d463b8ca4a3f31815cc32d9e2687d5b2abe69a32246f26719a30a46558c6ac6b33a262d47758c1a9c13a32699393ac3e89cfc14f3d251b4336659374bcbd1059db1ed0ac9195e282d4797e46418aaba6b39296aad68b38e8d56303a2a263239e445aeb8d0fc5d1df83382f1251b2d21a90a192393d6c4f4777112bd6b56ca0b6534af31ba618acce816a33b8cee550c8e1e309271110ec8e8ef73ff8408c3d101f5526e6592eb0fd3e3285634084747f4caf4e486c7189d60748a5106a32cc62009c71ea226b5dfce39c63ec9d6695035151e5a9128b251786843f92f7938161dea808935618471f85199dfff080f7f64328da517624663c709c66d8c3b1877b9648e7b18f7bfafa6be69e301c6438c47188f319e603c65e2cb78465a5a69d9937f9a63bcc078495556c8199d9399e3957252a4a5884ad23256696939395e2b27c71b95939690563cd298349a6ae81b1db5c58a1be32dc63b8c7318e7ffcee5ecaf51d135c349e317f8f5ddcf264f45c6aec024b5b1f4808c4819e30ac6551583e31ac6c28106c64d46eaad6f4618383ec358d6c7adad7a68ea8e0a78c184b581296cd12b305d662c03d1c2f88a396b24e1b5cdde6692daf8863c1cdf52f4758fbecac3f19df2b03b230f7b2d13973ef92813f19b3c1cdf7fabfddec9347e30247cc4f889cbe4780f6301e5190eb9768a293f3ec2f818e31312f2c739393ec5388371161360e261e2631230ec310931893089e97415c37292183d36a0c014553632a2328898b56339a9a232a69d2972d21252e4a498974e71b5e2d1796bc568141d75d2c6a4c354d54917931e26fdbf7339fb4d543406fcb3b3e7673c3ddc383f1930517b32c46484c918930926534c661cc1c95cc5e06481c91293154314cc1a8dc840ff4c0315dc597f82c91a930dbd32932db346273b4c728cd44fa4330b9814750bc5a48449597f9d99311386e92d0f2715e521a95835b41cbee2a1084fcbc349953c0c56888b7f000fbf4dbcefb65f9e4c931a26754c1a98343139e33229e324eba598ef1cb373fad344420a212717985c1a5af648cb498ba2f207c939b9c2e41a931b4c6450ef30b967b2b86f42209307725244a5d2f2914aac884a6fff59484e9e9ee5e4648f425208e9cb6df75f1152cc48918d623732bba0c8e8c8e4c0842b07981cd28b3391e978fc5757b47f8a8aae59c5f51bc62475429a64262621a660206b9f70e914930c265966c970554dc5e0141483530f539f0c144534de43274f31383a64987e1aa4b9325326ac2575ba46a7e17390d0bfc734c254ec5b577774826982695bf55266b10d30ed280fe583e56177a43c9c769f7938ed21a8632a2accece378f817e9f7cb8474b3672afd35c474c48307383663a6f64e2774a04da7ccae98ce98e8d4ef603a675592e90253e959c1d798ca9582ec30cd619ac754ee50c4b444db72fc15720a21a7654c2b985631ad311a39adb30091e8aed6a4ecaec8c96983eaabb52a3de3869d369f8dc9e919a6e78c5b4e8d25393512d2b1519455cb4696bae963dac2547e5466d20dd938bdc5f4eef72f67df62e36fa1e241aab56edf5892ba71be7b4153b07dca14dfa9f044faf0912be6f409d33d4cf7550c8a35d8bdd7cd139681ed16d3d6a243ba46fd4b6e9e980a37a4a38e303dc6f484c50ea7a79866189f089ee81a9d66317bb555821b9a661e03834233117a9687d6652acda5b6090f673e66c1fb3c9c85ff211efef894b2f366664b18488f07cca9173b811b3d976c9d9d19b0d024fb7afc308b1965629dbc166609666dcc3ae6cf2e663dcca42b07980d3193ee1e6336c16c8ad9ec99992f09399b63b6c06c89d90ab335661bee011742ceb6149261ac6e1e1192969056428697ea809dede87a159555c4e32c4742cef2cf6c9c15a8a95a357556a48938935f2c635661aaddac8a590db3fa5f5dcefe12151fbf4dc5373c7c4145d34c20043379972653b46767a62e5e05b373cca42b2e290645791131689da2ce1ab479db8e81ddc06c622ab1bed3ac650e2794debba241183c306b945e1919cd6bba466737340867b798ddbd15c87191a188d93d6966fda5b387e7d085f0d0a5b67d8d87c3e6479575ff9b79f883f369f6c80dd4930663b589e872430e4c7f289f1944920fd2b8580ea8b44445bab3a323f3679175f292323fc840ca05d1a1093ddd312351c678f684999044a82ebf7288d91166c7989dd061e038393bc52c8359167360ee61ee3f4b4821a44c3211928315cd1e21a458927313a5a4ca7a46092966a488c77988798479fcccc679a28904f4a91ac1386f63dec1bc8b790ff33e05e35cc0e16f5bcefe612ace47988f319f603e35f54762e6d6cf6798cf315f60bec47cc5d8a08841e714b579dbb2d4ced79681a6e2e83eeb3b7922517deaa2f30d2384f32d4bcbcc77dc3f31be54d7e83c4712cef39817be9cca9466e31bee69ea8e29f48472423cc7c39729a6c2c377f5d279919e9e8f7099fe233cfcee649a97302fb3a6483832ae6a694393cbbbe33eebe0deec31bbc2bcc2ecde4006be6aceee917950a3537bb231aeed6bb30fad04bf2b8a4d6bf188799d69507287798376bf9f08515b8b26e6d2ce303fc7fc02f34bcc5b1aa8b4849ccb0f5d637e83f92d5340e67724e4fc1ef387571ed7e113b3eae68f1a9f9c3f61be87f93ee6f23af2d7a3576c9c1f1b35555e5366ea29e6f22b59e69dcbec597858f8bf6139fba7a8a8245c045884584458c4a6c64f158b048b36161d8625c48c5f742906173d2cfab42f343618290317035144ddf6255375db94b49039106521a3dfbea341d89f7013d3a480c548bd328b31be22af9816638dc35e9379a45ff2d0a6987e9b87e31071e93fcdc36f4ca6c594ebdf62c6223f2cc0ecb3d088211b794582e5ed19ae2c7ce0c9f0cf5b8b03564a97b5b39f37e5f14c5b2ccc09afa6c95fbd22164b5e292c157b63b116ba929f830b5371fd9ecc1449bbd840f4abc50e8b1c1679b52a45322fe4eb25c80abda86051a5845cd4b0a8d38c14ad5508b968d0a9f31c9694076b62714636ca32b190b9780951b116570c7258355504a3e8a88b6b2c6eb0b885c86d790c11293211e5c1fe221b7f1715bf692862f184c51e6be1491306fa47904161271fb2f7fa89094bec6121b85c7cc294d1ce5653462d0323e9db53266db3e6efc896dce630d9e084e8a28b0c8bac094bfd5b2cc1ac51eb95597a2fbc326fda84a412a594b1c14713afef3dc7f1bfe4a18b1fbee4e1d2270f3f2274f1751e2e839f687f918acb10cb88cb21c7e382ca497c489fcd3266b183f10519d5cbd19b4ab3a18565c2a3b3966d2c3bc6b05c63d9c5b2c7c62a5dc7fc301df15f270d73f07289aaceb2cfa43959713d51775b86d572e7116b5d8ac88d57580eb01c62295f1c6339a1905c4eb19c6139c77281e5124bb966ad845c6e4848b121455f15f128faea58aed962b9c3527e2b8fa53c7f11cb1296652c2b5856554d15c198c82bc81d64e01b5836b13cc3f21ccb0b2c2fff4c2a2a0397f2d857585e6379c3cd4ac2c08ef4b950e50ecb7bf5c70ce45d1eb07cc4f209cb3d2cf769d28fcf540bb59b27a8881e617960d41ce9ab431ecdcb018a189c105db42da379c45c9960ca5c99a1f4a1fcfac9373446cc42ca37ab942e4f1927ec0e9e7968b720becb431bc79f54b1cc9087fe0cedfe9fc1c39f62e06f61e3322bb4a175be0259174e8dc33ac2cac3ca67a69b106915601532bb572467d7ecfbf4662c961e8386447c82955c1f6395d0c72d7f12042ff00758b5797da7c430d4aa6388dae13de5ce2bb1d63614b3fe155523599b8593ab1e567dace48b43ac468c8eacc6584db09a6235e3fef1d906abb91252231ff2d30bba73564bb271b5c26a8d955c269f7758e5b0ca6355a09a1a8d281857f2d3f25265ac2a5855b1aa6155e79eac5503abe64750f13bda295667589dd30e64d5c90e5617585d62253d7385d535932e56378c30f596584927df6175cfe8fcd4a73346186877f1da42a3e6805eb132684d481b1dd12fba7a505db457648470f588d5931a8423e9f6bd6f6f8660f44f94526ea4689acdbe4375d288187cc343eb2f7d99d7f69287abfd0f0921bee0e12fd3ef9709a94e1aa1cd01c3448331779489c812a127b24b245e542167847b42bcd5215647e49bd0ac53a6eab23a367b5eaeb13a61ca2f0fd31a529ff16fcc9f432282af4eb1ca188bff891e70a1e82a4be5476e28b7253343662d0a27a787b2049093913036a16db906d61ed63ed601cdc8b52011d631d6098f85127d352e330e696d48118f83952aabeb36d61dacbb58f7b0ee633dc07a88f508eb3105e37a42c138c8633dc57a86f51ceb05d64bac5758af79fd37a21a3fc2c6df2b12d71bacb758ef18126495d72c8bf7ac7358cbf3174cce93bc69d1047b9f343abf2ed1cbed9f71ef9261a031056fb02ed3292a62904647990bae6837b23286d209158edaf4d4ec60b2950e4de1ed75f507aadf4f4827a7940e06cfc6e14b1e5a3f8d48cb3779de2f79b8ae996cef7fda656a78f81b19f8b36c9449b3ae63dd20e54440891a2966ba6895eb26e59eac9122cd44b2097fd66764ddfa9c0413bda5bbc7a8eefa8219f7ccf73da526b3be34194f97fcc0fc4399f72d5e2097adaf68f477851ee6f83b61af3073748cf50dc5a688d6d1807a917072fcc88540342559aafd2b3a8448c85bacefb0be678872fd80f523d64f58ef61bd4f7d3599d1805ccbbb1cd2c53a30e1c7f59161a3fc843cfc29d619acb3d8001b0f1b1f9b4005e3a0844d48ed6e1361136393b070cea4834d1b9bce3f4bc52f44e2a68b4d0f9bfe33030379f80136436c46aa888e1eb019633361aeb68dce6fa64c13b52141cb403105792a68df8a4131f8b98b570c8db151526465dccc98ad264366374f044fdcc12424dc48fbfe1e0826f108a958ed62ac110b310e5f3a691c0f592daaf976df93f7441e5afb303934a1fcff120f7f908d9b25362b2e8af3f2b3cee95f536a094944ee6dcc39e6324e42a4a96197302dde72e1dcac397262488c324c38146566b361930ff2573abbc78c3bc9659b2d8b2688c223df25635bdcb726641e9d60b37bcb498a5f635bb66fe8ef111b75b1a6d6bac96193c7a6804d111be14f199b0a365526346f6ad45785906240da349d518da6a3b07153c7a6814d139b336cceb1b9c0e6129b16d96805e3e60a1b79c81b6c848d77d8489fc8e4967779c266ef63a8b8d9c7e6801543c8405b61648acd2136f23ac7544427f216271a1814457473aafe98685f4f7de91b066e323405bd6d6b31a45354b48ce894659da46365c99351ee2626461f7240397669def6564cbe1fad68f8ac94f6d7f4d0d02b53339b0f4d529b90d0c50f5d7ea9db07fcffc2c3efb271eb61eb3fdb7b62a98be6b90d98d12b524b7415618b0834218fb0c8bb23f1b6217dd92c96be331b40976607da18de3ddb3632e72d1b2b7f1bf39fb609afdcb6f92d4b4e61a6dc6adbe16d45600eda1495f25bf28b2278c5501142f6f2d87619d8f4629aa95e917e236fcc08cab6876d1fdb01b6436c47d88eb19d603ba578dcce545f15ebd1b1713bc77681ed12db15b66b6c37d86eb1dda960b4aed46d0e5bf9c502b6f282256ccbd856b0ad625bc3f69be1feaf51f1d7b4d36d03db26b6672c034b066e58386b7b8eed05b697d8b64c52e1817a44b7d215d7d8dea83fa67d4977a89581e1be31052fa988f6ed99132b8ac1ed2dfb53c4e0e08af52c44b59185759a31e74f649ecf9fd8defd301926dcebe4578cd5f7c84df75b99030fa64d4948cb439bd7f6233c0caffff98df9ff140fbfa4a2205b61880cfc1e5d2c62f8893812fd530d3f7382b965a04830117d947b1943bf1da9257c133b7e3132352a334c38e4a1762bd332f4744b1390478be478cda4c8b556be25e414de9296c29903de9606c9d6a8b2232324db547d45079627911521aad29214414d07acaca939fa93443c6e0fb19589788ced09b6a7d866b0cd6207ec3c9e616ac5e3ce6782ce7243368aa6ba0bb00bb18bb08bb14bb06b63d7c1ae8b5d8f8271d7c76e80dd10bb117663ec04996237a35ab89b63b7f827a8b85b62b73247971b06764dfdf2dd1abb0d765bec764cbb175370f4488fa853447b1be6c7b4e5a572cf0c8c8ecdd64153da70c7b0133d70a2f0ef0a5ce0c4c217abbe57c4ce0cab3da7deeaa2bbd24f1d558f5d9995d7ac524a0f4d9fb5f38484a2a4ec2ad855c94652b1cab46fe1a1dd7f68eb44591e4e1316ec78c9c37f3c94ff0ff2d0b151fedcd578acf9aede5ad4b06b50fac9a4df3539fb65784627af1828e3b43b237364b4844bc23d0694eee8d19edd60778edd05d75131ebd9f22c1d3bcfb1c93f8992234daef427a4288fddcad10720b41c65c9c925484851629936754b42526bbda00ebc361ea095c96f14292db36777496d6ad7a23f89e73c17e876dfc9dcbac64e9ee416bb3beceeb113ca3d9a79f0a4d6e3c4c76e8f6cdced6377809d50f408bb63ec4eb03bc52e43f96305e32e4b1d3507e43ce47cfa5173017221e31cb9e85b16e3af6ba78681b918b9845ed0b0ca8277c9c254a0939f6e23d741aecb24fbf13e6312620ae67a0c0ce6fa9a1f933321c1fe90c5d47243e636e546ccc4c88d4dbaf60ab98911835376a058fb2206a56f450d1195444656c6c2fa45a7117253e4663fb7c3238ca8940ab5ac52daab2a096535240f2bc8cd898848141eda7dc0b905bf22eccd2d599f26b7e2fe431bc75fedffd77928d22fb7a60034f44b5b0fb90de58f0c0c5d2fc6dd2264103125a24f744e211e599752aefd409ad19336fb4e0bd7da725bc3cf2cbf2be39ddb195adef1b6424811aa9690b1a712525456b1247339da9062b7e4f27c3c993ab258c81c72d6a32857ed36bc5b2415e606e40ac8c9fc2b2157464ec6be4a454894a25c8dca6a5053368aa69aab23d740ae89dc1972e7c85d2077895c4b0563bf451d357785dcb509cdc99537c8dd227787dc3d720fc87d3ddcff6b3ccc0909e5cf7d66a50547a662729ff9063999a687c81d998da0f2bbc7340517c7cc505beef1ecc1dc09f363ec260961605232dbe76f99bd14dc3399a97d45c5c18ac1f8d8745d426b5cd6b89db1ea5f9e0a9a3b452e835cf67595baefd534f26a4c317739a5b3875418a62494269ff36001451189c243a1ebd8e7f6a8ee947513fb5b26e28cd6c87b7f360fa93d7ebdfd0803857e79ff25fd900fd216221f715464ea0bf7568f947ba23d0a43847b421b1924ffded4ffb9453e463e6193b533df7ed51268b3170c4bbcd87e4bbeeec8f952660aab85db8e90b22acbef52653d45be63c4e30879135096d5c1b27163669268d1c103fdabed0e3d7ec2c6f008f91ef27de407c80f91972f8e919f203fa56f80ae82335556693a5e918df919f273e417c82f915f212f5db4417eab82d13a6ff23be473c8e7912f205f445e5e4abe5841be8a7cedaf52315f47be817c937179fa423766d7729989e9f933e4cf91bf604c62d12503b9076d435370d46135271b18cc5f3224e8184867cc3d5d599e492accb7e8708e8f986e2166b6749a283b748a8ed8b12206658595fee778c99b5e237ff3ba54e4d6d62e4a2b777c8587a294b2f8cd13f2b7544aa5abf3772f84e193f2706b3414e161a7ce00a35cdf39230f3b07c8df9387414267cfb0f947f2f0db0cfc2e21df13802f1868db83f19a6cb8a94cd44e2183688fa249d25e9f290349aa947b34e27fb8398a5a66bea4a5d0db1252745af9b9bcf1958bca2a4aaf8847cb46792a963f19d19d435f42c869e4954d2832a1412b0bbc3a724accf5f16e5b8b3dfae5f3322d64a2ef232fc37c88fc11733b648a58d33188958d1d21ed31f227c80bf333148cf92c0aa02bd566a586e774de143c147c14021442161a2c44dc5854885148de4985fb111e16da2874e8bf5dc8e72e4b2d8b165a30bbb40a7d1406280c5118312a388ac9c0ed150a636e95e8ad79f0a04dd41645d4d63224038d338689da1e77cc0c22d30f1b86645d9e9aac62d281d2938509c5a03d12944323379fa23043612eeaf11b1e6a19b16736be158f2cb22692cd860d0b0b0abd574a69ca432167c1948ae226fd31d36e0a661330eb79ef58bfd4f1d0e7a17a28acff0c1efe1403bf64a37c786101be47bfb4153674bac8d21867280045465906be21e1cf32f06bb47432d311d269ad227b6579766ca447e791ab83b05164a3886b3156c5a4119daadd35e901c7ac5614839ede65c498e73047bb51d4b0a884c216851d0ac2a23c0a0514648a97c8c65eddb0718f6ca4a62a3d5046a1824215851a0563a14eff4da1c188bf75de0ce46e4d14ce28150be7285ca07089420b852b83cba4b979b57fea5d2a166e5190b9788fc2030a8f3cfca33d62561acf1158b29c8748e0c2130a7b28ec332a68dda12341e4bb87281c99fa31f6ccb39666875a06062366e4fb97a28832d6ea8b2e3a673f2c3b5419d6374ca2106d62744af3db8a41b10bac4b26dca0708cc2097c59686431f2bfc643c7c6d7fb1e27a490534a0b866f6f9452f2708ffa0883190d86f8c316373db9e452c743b133ff201efe32036dfbbe007cc3c32c75429181c2016bf809316830a43cb4ba6811bf81876f9ae5a4f0dc12527ebae8bdc34659bcb76dda8df4ad6f9fd55406398c4f759570c92ffa5453a7472806288628469c94c5184579f8368a1d14bb28f6a83b0dccb127968da2a9ce368cfe17fb280e501ca23842718ce2843146a1a208469151ab228a53146728ce515ca0b8447185e21ac50d8a5b16412bee50cca19847b180a25c5c42b1cc6d1cc50a8a55146b28d6516c30252d09a9850a0393a9297f7c46a95b6ca27886a27cb8a03b54183859d01dba3945f112c51643f3f1929563b468c51119689d31cc983fa322ea8d994cef4d98fdcbdd33304bd5099d5ec52b3adba865a487f24aff17af51bc31e57081e22d8a77a29a7ec9c337547cc9461e08dd3e349ed2639343337feba171c6a1f476dfd46bebafcce6c37bf250be3b0e78bec5b4c7faa5f4f7f4ff0c1efe1506be1680df67a06dc57b141f68a45112fada848a6f44e26f27e19772d21292fa6a5edd39f254c2c6d5131566b15a197b4cd5d4a1394d8193ec5c1daa9c7642a747e39028b100642873f790c1ebe2138a7b28eea37880a25c73644a33f4186856d9686a0288d1583c46f1044599fd1914b38cf897402a3209ae809287928f528052885284528c5282521ba50e4a5d6e84ef1ca1d4e3e7529f7f2e6fb48d8be654d60a7da13627c62fb0087220f719a034446984d2985be685813620b138615470d4a52918eddb03cf749b12f70af6b953b43f620919cf87278f3431d59cdaccb967c2601a9d17cb5fcc7e51f24b532aff5cf2e64cda2ecd509a2b09a5c9dc2b2d505a7e69227ec9c3e7565ad1cccb2de87a91fe94ce7c97870c24deb3cc3e8f7c3245314aeb1745846d719ad73cfcc7b73ebde0e12f0b40c3c0172ed01f63a06da50d4a5b4e7afa4e5cf355243e4bc5e4efa5e24b2149dacf5459b5a6a3b071638cc676cfa4ecac291845d19279667554b1186db05104a3588c62144515664e7a117371261b967b28ed50caa1944749185544a964121d8d6c945962d9582aa354414966987caea3d440a9491d7527ec3a633eea4cbe788e92f0f312a5164a57285da324aa4493871f8762b399a3c8a5c9671e8a7cc2121574c364e8891106f2f00fe30eedcb776f51ba43e91ea507941e9f19b8dc6354b0b37d71eee780d9a10c09de9281c198b97edcaf34626050de7130a6cb8ad6729d8a68778f8a8328a2b278c92a26fa8e138339e1e4535a153ee561ff11a53d94f6d3a21b3fc8c303860145be494f8ab8db4edff2503ec85f05145129ab9ef4b65c690f99111ef62e9f83f8cb8cf2702c6bd3e1c7f1f077a8a03fc740e5a12ce1c7540565c6330c986513fdf0251b858a3fcb43ee559345f7849919f33ced10f93ccdd22bf0e3841495d8b1516c57d1a9ac9a5a3a558b717df9ec4a95c9b73ee32c0c67d451d74deaa8dd48238da50cfd37a52cca403c45d943d94739d0cad3cf9a6a86d1ff724835b51ca11ca39ca0dc46b9837217e51ea38bd100e53eabdd94073c376ebd663c83c7928b5dbd652b0fcdd1c879c621622300fd9d39ce112c739cb47893f208e531ca136e9977b969e52919381dd319539e3147941e51bb5fbe681878afce98f29c196adca4766914d13e7572d1086c7e8c280b34a75becabf6bdc6063928f2bb0b9497afce62b0ad27f75ca1bc367bacbeaf9a6a6befd3d2e3eefb21d732310e450525f7def070caa0e2b06af24e1fa9c7dae0a1f07030240f6d10bf77c57a6d96871fa397fe820afa05037f8e84b4074c2b6f50de52e00466930b8f507e4883846968de862ebe4d1bb9a0bc433987721ee502ca45944b289751aea05c45b9c6cfb1e075941b2837513e43591645f9f3e2fbe251f4647924958d19e6caedce985be78fd479233aaa7fc31c202b15c36366a8d3465a9b1d5b3eb77189edd416f25ca2dc42f98a4504cbd728dfa02c9d70a776a3e84ec2c6f53e8dc6dd1ecaf2520fb418cb8f8c6a94851e02ee934b7df9d68139c72a6f0e6fdc986d10639ea314d6f57471c14500b68be6e00d21b6305c7ef418e513944f51ceb068853a63527728cb37855a3ca61bd89306cd3625980dbb22062f680ab200c29e49136d6b6d5f7a446fb82a6d4dc82736815fa78896b3a800150fb9ec3bc7a2d8e6fb544d73eb1fe561c5a74cb3bbeffdf92ba5545a25d00f5ba3fc770f794da74e0dd6f2d0062dfa5b54420de25b1e5622c6423e266ef19346e01bfafd1c091d036dabc4a824265a30d1f4179b0ac36c9897e2d1d735f565eb4f4906fb5974d74a1b950e2a5d547a18dfffc0cb4f528ad651e9a332a0f0fc9a0149813ce3c3e4cca1422399584375ded8a846654473d1517175f4ec47152a56c6ac1b402a26d4eb2a1354a6a8cc5849a932476581ca92ce06a6650d54c5dad418f7afc8cc58a3b2a1f3a6229366874a0e953c33e092d6f33973c98235fc83229b3bc3b8232f556019d5ad7ca5888a3c4619950a6b376d4eb8498249143d8a4131052b552de62ba660a5668efb2c9181cb0353a06400bfc5132678d6d20d33fb4411e5e99f317371572726e121478d7dbb6fcce9342c613bb0223ddca0fbe0dde3896ccb1b139107ecbdc3c377a858696ac4829d76a83ca43c4ca9f85229e5c14f0d0d5a88081ddfe80ee097418b7991496d3efe601ebe6704fe3409df30507978868ad0ef4a3345adefd426a3552e4cce9a212703be8fa4c14b7ac848779ff82d2712bd3b542e5169a1f20ba50d841bd7accd5eb96111947735589958be39725d1e461e3578a4fd3394297e4b7371d07e45c5a8ca9a7ff3ed3315c55c5cc626f966c46ccc8a3ced3d2a0f2cc45a7944e509953d54f65139307b766a9c55a2a6b27be58243c6182b47a8c8e713c3c653543274a5da0ae2c2497b4823c969ca520d4a867e595481aa87aacf22a2ab1b16117d199348f25ac5d01ebb4b4574a00109af856ac00451630a72abc462c50d28cb440bfb6e66d405a89f6718e0910e917194c172aeb5d92dd7b86a886a846a6cea857f8587621c895e5a4dde75d5bcc3c36a9bee16e676f7a8760a0f3568b1a74d7acf0ac35e4dcfe5b6ce52f956b5f3eca4e1e187a993c6f2d0abff793cfc2215e67792d0b66a973e49d164589af251e34b3296f2a7cd0b1595b5daa376faa54814a43079feab0cbf58265519f8c15fe9141e3e551da23a42758ceae49d1f951f124d551e8c4fbea3535e968097549405c2eea2b252d12aa842c5c582e1352fa0ab835a5f0ed529aa3366ae4c5a2c54559da32abfbe642e4e75c5195635051dabd2b68c40e4ce1963acee5095efe6512d302bd595f797261faa45544ba89651ada05ae5c104b66c4cb5866a5dd3d3aa0d549ba89e694cc22aa27adaeec80624e80e0d27a64ad08531058bba6d57de6bbe6356039d3123faae64eca42ba44364986cb0574cf4ea39aa17e6acd503542f516d31bcf95591f888aa3cf9f50ff1b07ac3d4d0d93d95086ef6add23eec9e29155dabde9a74b69aeec4ef34a9c78a526a4f0216a5d43a691c0f57fba8de99fdf81fb2efe91b0c7c1d8af815127e8381cac37b92cdee21143d53ac0b7b8c1637c2c86c93de94117afa51ff8ac8abeade5fee179faf56dd374de6d021aa47a81ebffd2d518699799741f58416238b1a1dbda2a2e86c622b8e06b415a7235618105b71b1682d0e4cd9ab22f7a7c77ba89eb238723563d898d5c33caa59d4809a879a8f5a805a885a845a8c5a825a9b89a6b50e8b6ed4baa8f550eba336406d88da08b5316a13d4a6e618829ea9207ac8f4b4da0cb539b3b4c70d3a4547fbcfc7ee520c0ecc36a5be61e0b8b578e0e3d11933663abb988293a679858132d0a6a78dcc7e259b032c5de1dc69e106b5056ac625d333adb64261ce5efd2a0f3d0accdadad4c2f99e6a5adbd0d1221aa6cd65b33ca41d68a8681b35d57b158676e7a1350e5d469b28a5c9c52b278d3f639d9bdaf6cfe0a175c31806feed249456db194fcce839776c15d1f6a8e550cba35620196ac59ff094d6fea2d399e91a5cb99587a6d5ca0865d25750abd2ebf0f217e9c8d9198dfa94abc9aec8cd53eb6b8616ad07b55643adae1ed461ce5211e30bba3a3cb333488cb15a03b5266a67a89d7367c36ef7aaea71ed02b54bd45aa85da1768dda0d6ad26f77a8dda326847c44ed09b53dd4f6cd2903c7ac5c484a5f90815444f7a98b4ef79f372b4d85ab07acd1ec9f213aa018f42e69b86e720c48b072cc23f749f4762ca3363de470c86ac295c56c1714a5c332d0bba729c8586b6a1d6c65ed3844ed48c5a02937cc26cbbaa89dbeff2d13b1764c135114d4ef8ac4da09ab4231823fd09dbe8e8aae9184d5e713660603631cde6bb9445b1eeaa571689da5e1357ad71fcdc33414e1dadf4e42f2f094e3376ed1d890592ba35ecba096451d9603dc9351f77e9487c3b23b75e4171a35d2fe9e3921dc7bc5c3ed93e1e716751ff500f5f0151b455395a5a41ed17f2316a3988beb0bb3a09c70eedab8a2dda5b1ec3098c15dc51103df2c513786df668e985022e8a31ea39ea06e4ebce299103d9e0329429247d0a527798c4d1b98e33d26e6743ab940b847f686fc9663e0e801f50e5d322e51dbd650b35b25c446952580e7498cd41d3aafb33caca8cdde8dd19f232de94b27f0890624c8c053cdc5173bf9a5bd50efd24d5def19761dbce261ff89e2aede4f0f127f8f87f501ea434e896ff3b03e427d6cc4da98a71ada0a344239e6d3dc3f374bc2376569ecb643d1696de4b03ea1526a334bc538ac441fcdc32f18f86d1efe36124aab4f519f311e2073b47d8dba0ce702f5e53307ea2b4aa12f8db42fcd453315fe5a8f1ccbc3dbb3c4d903ee19e4399951651475f96b45960621dee655d82331e9e9dc916c028ceb4bb38bf29c545c25d4e8b8edc0507199382ad2ee9a6ce80bf1fadcc2276c8c657e6cc9c651cc1c170a3473e895689842339ed0da32a797a58d1be4bb3c4a8979a187b403ad0cb40cacef2806451775a52beab9e70c35c6245af04518ca5c14e957625cde0b51cf3341afdd51064e4f5fc940bb1b465ed629a2a286d40ba817512f712ebd2ebf6f7878807a99ffcaba1b5f1189d2b70519c1ca777828c661bd4a1e8a526a2b233a9168d9683fd8e3b80b190ac37a8d9143310ead52dadee716fe7a9d4ae91b274d34fbb8faa5c613f3e324fc3e0f7f9c84e46103f526e3ddf533d4cfc9ba9782883c7c2fc427cbf0eefc3d1e5efe85ee985a9a1913e50bd594e7ce833b861c22d32b58a2de42fdea151b1902bda7d0886ae688a2b22aa86fa8d86e5341ad5f1b27ea13772a885ae827e814e8ba8ce59f6e90e48c78bc252719ee33e5096d63718a0353b4f780f8e684dcabd668078a162aa6a0c8c0d113cb69db149997a52be8222a322e1fdca37ec7dcb4fa3d53b48b11439ded1b6e22e166cbf273505eb550938e2f2ff832d9b0fec0a86cdd64f9d76511d97b87876ca06a4a967e4d35dde3059499deb7a858dfa7409bb6f5a451aa9dfd17f5a00eb510862083071586aa94be38d3c2462cde18871fccc3d414fc0061a8b24516cb43d48fde325079f8858384410b9fbe01e6bebd0cf45da1fceb1e67a33b995fdcd5cc5f5faba6dc0d605453fbd8d29681b9ec80d908f513d44f5f198d950be3fb1d9b7272665ffffae695826aa92852d1efb516fb46108d2897b88ff686c7c4d7338ce9d5b3ac4bdf0049e5cea29326b22e778c86c7261f847862012e8e78cd66428fa868a1e326fd313636684a5770cf2e43f3d0ecd07082866fdca1fbdca95419ab3386e9411774027347a8477ddbca4061a0dd2a615be9048d008dd090e4d82c522218fbaf8ec1703c14854b58da88becac39e71d548a3ccfc3a0f1bb149efae9862a4a658b0a5a228a8f668a7be5556ab465a0e986d234ae9cce7575ea695be310e8587d53b13b4f889aa1cbf9587ef91f0d779f85324fc91d6782fa98dfbebefcd165ebc5c987f9d84acc590fa48e5d9b8db6dfa4a359557b3aaa903d9454683b56f2d6c6cb4d1e8bc6263def8f4c562ec15e9441d0de9412dfa68745921b2d1a382dacb715fbf171acf4d9e5e4ae64ff7b9c12f3a6044a1b3e3c956ab7bf2aa3c658d50a125dd9ec7e60897277ec8f5e883291c907e364bdbe5888a749daf2966e91185392fc48604739a9b164e99982ecfe3cd68a50f6e28036d34825bd2727c0bcb40d7db621e4f4a4c51ea65cdc14fa6e0b7d760aeb6289f7aaef01bd5741fb5352fe87ddd5523baab5cf30d578d18878d3eb9c4c3d5ea0c1ece8cd013ca8dcc61a3b6c95f2d09ad30b47bf06d1a8d4d6713a5d4452c5e1a87c2c37f3ca9ed5b3cfc5348481e0edee1e1dcec4b6a0ccde68c146c8cbec534522bfeeabfbed5420f08ca84f852351d1cbc4058d88b06b665afb4c6188d091df72f4329c11373c4596ee7863aaaa87cdd4713cc301e541e16304eabfd5f1ac1784de78da8a9b9913926fe8e392e4cb9be60b84fd8d5ef9166b93e4f895c9aa394c4f69b8eb94342f44fb130ed5ec1780f8d29cdce948194b7db43fa69f32d7a89bae6dcf9a882c6cc6c1c395519280c1c5fa131d7f409a6dabfdc02ba87d91d1a0bc396d747d0e46f18272491bee4e1231a4bb67778985251be5e5e9bf0c65778580dd1305b9644be313f6668b2730768acc9c697cd9250aee934cd9e43e329952f5229cdaa30eccea9940ef69f95d2de076cc6ff381efe3809eb32729b777828c6e1a4c8d831b7d23b1e6ebff9b6be991f5f96c4f35f070cad83d45a8307af40eaab4635758849a0d3cbecab4927888810bbb1b17b959463d9b8d970ae0ff3dc1914ce583e90fba4626e5d9f3499aae2f760020646529d938d9ec7981e8f649107c8d1ba63b8ef8ab4145593f542f7198867e9de4b3d5b57a45f644eb01b1d92c936397b2e066ac76c962fd30e14092c0cf44cb5d85dd314d2be65565a30e5ea268a067784e68d486f3fd32f6aa09143236f56b4e3774ea1c9fb543ebdf6575c357d5a802c0bf0351efabca051b07f7d87878d22fd9ced638ab8e846a9680b07bf699684a2918a65680b43f52e34a7d4e676bf148663a17789c290c6e1479d7ff8bb78f8db49c8c05de1fdf8c41824a150f1250fbf57809df346ac94d7f54e481b1171b9f5cbdf352f3b35ed053fe94a8d5faaa6fc57a3c1ea65f60539358dd7a15146a3425fe24bb3560caded01ad2f56a61b52156cdf6a94bf5135c1baa209f45f9aed8b1786398f94638d9ad9f1d02727c5c6e34624232afb83f47c48d11deae49e9fa805c8523145d28f46e093c603c522e5593d3d7354c1319f843bb94e59f79546e01d555059355e31d090b0d130b98d53d2e66ba74109c768e35dbeefaaa9ef314228bdf75557cd13d55ad14e7befbb6ad068d2b4a3afe5d894eebea1da69d9f8b209427064b6263e3d870dc53274c230efbd12865629fd8843d7becac35ff494fe933c6c9c69fdd2d18bbcb3c6f977784803cfea3c2fc9b9a06249feb4d9dc4f9b3d38aa73be02df534dad066b5f30670d8c2dfba47181c6251aade778234dac191a579cfaa311d9d8b8261b6dfa9ba8a995717a28953931ae714309d6b845fdde6c7bf769da8970131bcf9eeee8b5a8c1da53221b77e6a0c83a73b2c5fc6b88095da2d929f7112330a932bd8e07164494c9b68ebd4d881123f04b47a8330583056a25b248b44a79f76f9cca264879456fcd7b3c34ab55cb88bb6f64d544683c7ccd55431e8a34e3b9bf3e3966a9d85f918d9690f683208d47c62ae89e797a1686a3b9562b7d230cab77a6e4d42ba5f4dd8a387f040f7f8352fa5324a471f8958c36d19a5626c99b652c2c096596ec7f4f1e72678dcca45720931e1f6999581e3a2ae6d69ae0fef279c8319f33c621ce6b9af2d0f495119b227b3536e3a37180c6e1ab57b08938fe986523da5d6337822e9c41cc3db5a39cd11b23731cd50b424625fa7218720ce0774df2e7b971b496cc31ac2b73aef50537c88bf239b8e43e0fd1789789ee94ef99123bfe88f906cc532fbe5241bfece7a12c0147681cb35293cc8dda9a7f7e8387364e58b3cae717f250ba5ac49d10f51bae9ac609d9ce41799787a768644c82e81939d66b926cc246d13f8590b635b204e59f9aa07bc6af3c0bc3976ed2a5ff56187a8faf2b794fad1fee1f60e3efe3e1df210ca535dfcba4e14624732e97e85132952dd8f47fa41c3a2917b49d6a4a3fb83c95e890f2676df5dc848df252b2f6f7a07f4d296a679bd1480d629cab546ee57ac7e197c146f7ee9518cd00cd10cd179aaa8dfeb38ca771ab762a246454a5e998d418de1009c9805ed59cac2a94be36b49c8394db377e9d4b52ce9dcdea1579252b35f5e902dd5df26e724fff868ea2d5e333fda40f6d65ca77b7598b71db8c919c5b8f28fb4db841474be13b07068bd814a117b4df9387c794751a99f80a151b1113bea9bbbec7c366422275a70c060a15a973fad451453652057dd40f8290a567bcac73a6c230dc71b7a18d197e290cdb7da394be340ea7ae7da376e3bf90873f4b423a69de739626664bae4c269bdc68c11f4b2b25f168e6a94787e2ae67323972c63df0b2d507e4a14c0bea632ff065a0f4631ed640be6ee69f917e16a90f4c77198f8e8859697213db9a6d738acb02cdce3b2fc5ca038f1a751cdc1877ce9339d7b16d94c9d01cdb18d392ec46a4999879425169932d15ce97c7d409f7341dd4289fbb33d24f56ae7065aa9064b5cac19b4278cd2e9a3d34fbdc2a41633b3644722740ed995df3ab37a723bee561deec24ece1bd50bec79d4db56f46f3f33e79d8c3bbae1a34078c37b40f4d458c803aa790adbf31a5130d27ed0769220919b86f53896d0e5f9c63f13a66e8846178f5c53a3efda2fd5d82f10fe7e1119aa3f7792892707c451e8e4d442bdca039feb177f69d6a6a3879436af58c9c943fdf50d1e6bbbfe621fb41c0e6c4b18e97e54cd4cb215a7acc542293dbbe6c3649a0394573f62af4ff4665e5664b63000b7f849622ca7a4516c31e24dcf120eae52243a7eb68680e753ca69db9be66facec8165c1db3e8e3c816a4bc632fd922232f63805fb6a634592396681ab269f1ef17e740490f8834fbb68928fd204cabbd17ca97c6f5cb3a54bf9e55434f4ff2aeab06cd358924c2ad63cacc3437a66e62c092a4c249d704115cae11126a024dea9eb1c270da4773cb98e12c54cbf0ad87c67f8f877f979afaefe4a12872fe2d279928573b93f556effef8193d66de505ea1b97b2658df9aa3af79281aa9ccb937f290a4dd270fadcc9426976d1fad6c7ca6a25c231a9de8726f7848f595914c7eab9943338f66e1d9a7fa663387a325f71fe7b5fa38cfcfc9d036a67c5b52a1b5a7eed8c40691787299ad4329c4fb5a22ee97ce986611cd92d90478f9aa0e2ad9985291dabb4945fe9689f86876fd46e65b5f5091ab55c9ecf7fd1a0f4d78439372bee46119cd0a4925aae6f8864ca30f46085945b346eec99ff25766bda52474c58247eb678dd491309aa539346fc215eff3f06f62e31fcec3e9fbf35226dcf2c8d450cbe88e9bef440e5ff3b06facbe661dcdc633bbe4c5bf544da50d4c6cfa0d152dbb7cdfa9a644e4af0e31aa29955e6ee3bc79c54393d8c5c710a16ab5d6a64c8b3334cfb9e77831e619d4cd6f56cd79a917d882c8b6baa43b5ce06bc4a3c9778966eb0b50da359a37667db9258596c11715c18d6064fe6d8b2ff86d13b1b4249f656d7ad7447cce7dfb8acb54d638d278ff1d1eae6bd42aad6acae4980b53a5c610d235f92bf3d70e58fc4248d8bca36bc716a1b124ec0c95844e237d2776ff2d1efe76a3f1cfe6e157b7ff4eb99bc15a3b32ff9af73f7552176740798de6039a8fafa49c4c2f3aebbe504d99d1e6bfa39ad62baf5453bee0e533d2b3e18dcbb73c94bf0a69b9c1ea4979680dc8e6139ac24061c281296ff56354fcb926f73f44f3086d13746d1ea37982e629cf57b4b533ad5f4ae4951869ef56e6a7f7f8cae89cdf3411e575446cd201f69e6a5a2fab72fbd58d882bd650dc3ebd270f33a493a897e3c06c5f3a346aa721a46bdc51716cfee980296cd3e41509df48c2f74988342cfc2354fc0d82f15fc8c3d01c212af692d84ea280090fd7a29364d3579a7c372f891c683cd097f0867242b6e29d2a9cae5118f67186b7a05838321d9d6aea594fcfc93342723e1ae7e1e53baaa94c7469325fdf3872282d8ded7ae651427ea9964f4ad8deb1d2dcfb06de05ce7c9c05efffab68bf6721cee4cf186709a6039cb55f5573a7f00fb8f9483aff5d1eca0a225d51dae3e76fb96a7c9299bb7edfe3a1bca3dce19db251290f85edc24361e3973c3ceb30f82e223139a0eb45d8d83115102d276d93cf82c83fd968a1084faab2af49c862505f25e18ff3f07751f1cfe521b7ff362aef4c26df9070b3a699349a50073beb3e93507ab6ddff6e6a127fe2ac47da084f9cce29cc2139976ff929443aebbfe5a7583872f14b6f8df561bc14924593e62674b5e2f1a56aca485a59c5e31b1e5a6d96de8e15ce842a439c8dd815a2b54a3b1bff8fbc336b4ade79defe8bc97917fb7208ee22fbce19b8032ea8a8f8ea9fbea62793c92420e2f2bd7fffa76acac2881893f9a4af5ea687aafc75114fdadd21559fa8fa1c5a8ac5f8556ea8d2a4ea0b55970089ff65f92babf0064128d353a976febf6239e4d7f897954015a73102a1129c238074d60d0abe6d0e9952e6102ef41a0e518a34500b11ddb6c2547da5db1c88621377a51cbfd90a400a9332f8359b41f621598edac5dc468e4a96c21b6e7c646f05a12ef457e33b34febb1c52f58daa7195a5ec164a3cf0e254f5146d51d54f424c2aaa24e2f4b3980dcfe30fa07590d01c0a8a3c33aa256c781256a1ea477798584e5683a7235c9db935466a0259d29427d389ea07e148536600c41ec670c8170a29909952777e3eb35a468382ea1e55f7a97a40d543f42838cda3f89619ab1ea9ddcb5ac0af7a4cd513aa9e52b542d533aa56a95aa36a5ddf5c064f720f783dd266592a16562a43082bad58754335fe60cbcfffe694826d4c63513c517ee03cce1ecaf2287e08ae599baf7ffdacaba481b3de628a4cc36206b44e1fd160c61ba90a9b14c0e3c12f78f091498a6eee6139a578cd865045473742f8b97318e5f03b34feaf71c8a2f4a98d6d09ef0bbac3e2418ebd294038f6d4c62333bbff64ec1a16aab27d6ba23518a308186c148f689ad082d3468edfccd6cfe613d0925a3f9e08a883667b098ec8c09199cb21cf66d47fb525c911e250ac655518b6ea0acc00a5475465e4da1887ef54ed50b5ab468faa7d9c7f7510ba71e6e6f2ef82904b4dbb1902e4878a2de1c45a7811cba1807a920d6feb1d328c2ae639c763ae3c8e72a831e3471e7e714da806ff6049f52871381ce2398bb5f34f30741355a486ac602a18fc2d5b4b6978a117daabb5857e5446c9a5cd8a69770e77a3f11fae6bab0e637a168e1fe11c5eaeb0425c76a739bbd17431879eba49f0bf7d0ecf637a8d507544d504f45535a99a35581c3224acca0e1211697a05689d280ecf15369e10b786bac811ac036ac324ca871b0e71dc57b6510e5147de068ab11cf24f11906ce80b655f5ebe0b13e5b8b27ba62becc21cf2c0a3e700a711e550c6d85f3321aa550ca3ed22f263053531498bc3108d008fff10707d8db18708d5cc611257d1aa1a5f9aa232a9ad72ad610eb14cf451af1564a9594d2100c3ee9f3009f616ea5b6506abe950a65e27093f5f4eb1bd73b801c52f4553ff650e3331a2f4d2436de451170b88d0daf4892aa54094c2ed3ec545f773b2ea1e84da1c50a54c557e18e79468bcc35c39b5d429e0998125275121b55a3c339c442203664b537ce6c83dc2bcf11f42623acca1e8d82ac570284120348998c770c817e7504514510216e190079386ec42229ec31365ee98e4580ed90cca1bf801217ad5b89146a9e2f35b2a9e19e1500da088f59c7c7a571a4b87433c4ad45dde10aa41055c3252da76a91eaf2d40c52273f20a1a792cc754cd63f00b1e6206a5ff5a90a6df7241d3178ce1660eb7378cfff07a8b6885f7b5da3c78dcc56a71ec82a6b6b33c3cd32e9f7078a1f6cdf2d9a36a419944db1816a94654f3b4b0dcefb9d294ad416d8c691a95a63cb91d690acbd00c62a458c6fa2a0c041c0a9c557239648aaa2a498018cf853bf0179b307a510e3d49998c7032b11c4adae0f43096437c8b297ea1656ad41e4e942d625928b11c83a20c29eb630eb193763c87ba088e1d3c349b19c570084adbb84a6ec1b715aae1df45c4959cbe1828c060eda3d646d0ec4359bc27b87f672b3df8351378fffe251bb8b331dccce19634fe17eb80b7e4f0b0e472f8d0a2f7155ab83387ab6b7f5bd9a4e6909d43bee817e209b4f441753f824bccf7af36a1dab9a64e9073a4294f622c458d444d31f5ef5c690a0977174a1b626bdb67606c38e4f9ca735a78b339844954868b4d659443660ff192927eed700859db5239f7380e79f02f1ec882c9883d04660d55d4928ce7b0acae098b73a9d77338c450e1507e4f205913110e95137bac7cdd2887fc86137889916cbee150addb38582a7fd2e2b0c60faf823689b89b97eab1ab6ca3195ff00363c742a9df3f45f15f5d8f5fbb727b25de1de89ed9c2e1f514f5cab56b7105b57358bbc13d600ea7ed780e6bb7549b526d16a850788349d745c483fcce8d9a6a1959721389f0fdc23152e90f6fe72a98344906381c0a4e558ae150a4a9543c4775e97e573b69fca3580ea59c1a65ae711cc2deaafc5e2c87d0847baacdcc753c87680afc8aff5a42ac663f703b6c035ff19aafad3a818834e56ff9af2312935cc3a12a57424df928cce19c6e6aca6a9d086992a9c223d88c4f12129f8852b5bee4e739dc4ce39739fc239358bb73db619c174020f6337903879779044b6bf7be9638099c43e61029c4380e214a1fa8f6187028314f9835cb21e4d7ec223ad214e1d092d27b89d0c1b3ae3e6838e4d923ed03ed1829ece1cce510b6f755c316b587423ed31be590876444f81c6239d4beeb553c8700f50267be8e43fe2878ce47f11c2ec505552b126d0e83f8aa02122b27daa608cea5117f62a09ccc351cf21baaa41a94584d316a0bb4877a3a0f4ca2dc7adcfd213411bb275b571ac78ad25fe5701d8dff5dbfb62f71681bc3bb7dcde125abca277df9ec208dde2ac4e7b0f64cb5177f2ca9f60a42d8d4d4dea8f64e357ec4b25d2df96f28536d8f6a7cbf0fa876188653c2a1cfca677ba3d909d58ea8764c357e71eaff3a7f4e856a6754ab52ad061b683834aea06d0ccbaa725560732094213db06339145bca0f8b580e7185958fa7a4a9cb21a2355990665c4487437e0fff2e9ff33a0ef934f8d7a5462f86431559955c259f6134ab81368a43adbad771883710e9456a620cebd800ebb68a75bd2a122e7929a0c810f21cf81e84c618fe368751147f81c31f41b1da0ead091af7b43164089fda485db02e9d3c51ad11e31caaadb3d670d8a45a8b6a6daa75ac831b46976abd90f5abf5a936d8ee77650c80ae24f4459a3a1c02bca5ceda3b1c221ea3fcb4722786435ca5928a49266338e471a08aada5898ec3218a63e7f829ffad580e5147da80629f5c8738c42392f5ff886a09aa25d5332b45b574dc3f5e568fa40cd5f89197538fadb1ea01eba3c806f34c55e4aee390df8095fb647198c7eee5cca157442537dfe8cb7d3f363e068ddf82507b86bb71b8038a368dbbf411fe3193b801c55a219cae286945ca1c22647a8fc575574c4531e41cc67258a76072d43daa8fbf4291fcd64473583f57c6f3abbf7e41f54b5d54c9bc4539c4fe2a8950f6c2d843fea327aaf2269643ac4b5071cb0887b8475a0c27e239c4c5bf44d8691d87381f9500140ef957ea5754bffef2bf1f1a69aadf307bba930d9f3f9316da14d1e6d0c3a3044e35423554bfa58f11467d8ab5bf6727585a3193e4840ecb7d0742a348ff924343e3260effc224ae43b13e0b2044e7887c00218ff7151289f539d5ef629c4397c3fb8d903ce0695d7fa4fa428d27aa3fc73de0db08a24e87915fe7b1a4fa2bd5dfd4afbf43ebd657915f3fa5fa878ebb38d214e0f9b045399495078771ba54a4e9812a4888b587fcad14793ab7553844427f068bba8643dce583a4ce22f29bebcf9b2ee3971f4c25b5aaf8423cc0351caada7a256b1587659a5c6283d10f0f1d6898c3f9082fce3f7097bfdb676d6c43f837d2d41e3b72f8eb28da1c5e0fb02fa22852865036a64793bfaab4400f713826d95a593b8d6b392c517d4fe7e531dddf42397abef7f57da5b8ccd4b956faca9e4c07aa60cd8fcdb0e9387cb56abef9130e2db7f305124eba7746a5a98a2b86a4a9cda13872124175381469ca2302a1be47675d8958c67028c571a6c02dc61e8ed509bfe23584a8c3d211d58fa97e42f55378c2f50ad5cfa85eb5061fa9e1d9c48f3976a4eb75d730f269c30b9585d115bfd634cc21ff88ff057647eb0db5af285be613ec5dc1040a87d2261855a63b0748e321fc8f38fc0d14b7e7308aa2cd215ab6bc610887b2f9aed7a7f767f1077479f7c761c0e1c593c56133461dd586e1dc8314af846b68d8d4ac7323ebadd0fa26899a4acad124f401733b645ad947125750f0abdb1f3e0ea46908c2579d42e0730b206c5b67d25555781701879501d57b2a50b4b7c673b3878a4bb1ad6366706216873ca07b55b69d2d58f01755cfb5e54453c4306f08d5a0c14f0e5e2ebf4607e163eb730ef121481125fc3c47c54feb5b9b758b3daf0fa048cb046378778cb617676a0ba7f91c0dda6e1fa89ada0d42478efe5fe4f0ab28da34d6adeec0e3071843db1e9ebf60117065121fa47938ff84439ebb4e8e9e01d87b7673f44c573d620730deb5590badb44860769a83b2aa98cd2c5b86e0ef26b42b28a0da1ce22970a0a5a9c321d8533986780e93f840ac9c541cd6d7454db6918b699cadcde189ea445acf586f534f0a592455529b55f07f64b288b14ba52a4a08a031540217c47e1aa2777343856a12a185c5125095cdba99e17a96ea39f20a88d04c4fd0335f38c4968673d843f4d87fa6c5ecab66d00ecc7c9fc3efa06871f88fa0c8e3681a24f1d9399c1e8438c42e7c2bd8c3a79ee6d009d2a8aa428bc37c78b625d47477cab8932a78387039c42428b8f39599915a169b43e68a359e1c9444854c62b4c4b58c002a570fb434b5394460f3c25deb6438e4e92ed5a4510e6baa8ae05065f3f9c4820ccaaea35e341ce2feb27a84d3ebffb441c1924559e52c1ee6060ef79106c447c9fa0cdbc796c206bec8aba1b3c03f58b8787c450d8f1a6328d28b67d8c3f1b36ed626dd4ad12bf15d2dc37f127fe413092a3b08adc7ef7f92c35f41f1a81a6c008c9ad202086c4c749086bf7d2c83c3c679d35e666182340e878d8bd03c6b5cba108a3dc4a3fdcd2d1fe5af8dabf04c552dde94df15234d91eeb38ad75046d3a28615636cdc28a537733994d649fceb538ae150d61089348d7288751b6af57ae3d63a5e81d967ec8f9b088ab01e467d6c5b3d6bac513f578edc43e81771d37d1711eada7a8e9cde85960e8b83ca67b58143fe1cf97f8543fe7073a3f1d3535cb7c97594439de1e00bd29852630602d9187e289f7071ad396463383d43a7e0eb2c16e6a3ff4565736642558a5ffedb1cfe9249fc2a8a8d79d0fafafe114294f11363b8f7a8396cdcc9568731411a97c3709ca6f110c3a1a02875d5f641548df5c21ce67411a9c8c8d04a8b842e16b3ebb9f948e3d1b236af4a89295c6d0e550d9a82edc88550b377a1daba2463382cab04037f60cd02a6b1d07747078112a1208d09d5f0adc1d2ca25bc3ef3bbd882c297a6a79227341c26421c4ed42a4a3eb88143e93cc0a62f669dd4089f76a63a38afe3b0f1047fa1f10c63d8e0ff6b490d7ee2bc51e35d1bc327b5cbafec6ae88d68fcb4c91b045dffcb1cfe298aa7e360e5219aea167c4ba89c43d1a58d9574d1575514af88984d5b1a429bc3f11335c219bf93b8a66c3c30dd2fddf2516689e7a89d33ac4ffce5114bddf02288915ee8ea67c3e1892ac2ac5953bcbed4bcb111733814db72183186c221cfc5632559a31ceeab02319c6739f0f4f45639ead6a02227aba3a60e87889a1eeaeaa246490f3ee10fbfd91c7f78cdf20f27d7210ea5258f08cb751cf2182bbb8acdb6221cf290ee24b3985e8cd4e007ae0a5f37f6b1e57de340ed0e708eedb11a87d438a2c631354ea8718a9e34d21c71b261af98b140f8bfc0e1efa9d3ed693cbad43b9661c78521c0139328106a0e2b74bbf4393c454384a373b43f70385ccca87116e2d06933632327ab10a2e5dd0d3bd692d4c82119d80e49d372473783b0ed21561b4f2d3355534d2e4a60c3e110ed4c1f41f2346ef92f4eefd277651d7b3851667ca0ea57e460c92c3e5479c223fc74bf1be2d054969e26f44f9d60a970c8ef44e19ef973ddc838560e70e478bdae070ad65f61f4b0363f11b3540a953d0dbdcb88cb619d1a2a90d36852a305089ff9a971821ee78f1f00f2f602fb0e34d86de9508395540feb80c76b43a35fe2f02f43a65fe0f0ef503cf42b4bcfdf5056fad0d4281a0ecf7942f735879707aa1190e210edf4cefdda6e15bf39bfa086558656bf8e8750702aabc51351695ab33844d1e95c77fe9640a52d4dc1492b244d99d8869dfddf572d12156f0e8712a141b0e7317ecda118bd587b0851cd7fc88aeed61f554598e2f0c46fc01135862bb515397f327f422c87481eee1a8095c1ff17da9f8b4318c7211fe7ff8bff503454d3485023498d1435d2d4c860af38ec6a7e85ed3a5e736a53d71a985c5e604f01ef921a8c2e8bd83c350a1b44e9ff08877f80e2661a0d87e34770f83ad4f8c940478c7b6a1475129f9d4369ddc5d2f4f11806d07078b98ffe084dabaead5659cba196a617312d12514b69e6f76528407a60ad339cca2650972169cab370cfae44d90f6a4a9b9e6b0f8f5536ffac1bc3a148532cf8788de11031c912359d92bd8e2af4292259caa77d5b64a791c627d49ca8c4661b0f827a068f0979fa4836dfe1b0f4ed18ace439f842d9ada56c0ed125718929e170d83c473ca67941cd4b6a5e51f39adece6832c06e028f254038ddc7f6a9f7f718f36bc079a3846bf3869ab7d4e4e7d08c9a73abe8f4f27f8dc3ff16c5e69d5f565ad01c8a491408c121bfe75e6d06a6383c7dd4fdb998c3db67f884c2e1d339f69a6cdac1c0cc260e25c27910eea48880cad2e270147078d6d52b0f6d8790a7141fb4a52993e9708810e82c1489150e459a1eaba6a6f16b7f2f7467803087b8ec224d9b8fbba0829185a9671463382c85ce3f3a9a0b8cd81ff138562e226b63e9c518e550ba2d63e185c3e1133612bd7da2e6b3c26849ab5b583f3186b7d7d8cce36e0f9ddd91c7ea6156f003faada9b6947cc26e59fc2bcd576a3299efd45c51f3834eef7f95c39d515ccfe1dfa0184b63b3a49dc3f103387c7fd728cae0d78b0235cbd4dc036cd7fcccdbd71ccafe929357b44b40f53dc1756c1e6ccba1387e48213442011854a8453814152aed6d9c36c130898980c3c3579743668cb56bc332d486431dec3972213cd6893815b089ea52b5e010dd2ed86e1c224eb31b8dcd23e5468639b46bbbf960a4e5a97a006543fddd9c38cd4c55fcf0994b36df6da531c295440b0cab3771f3989afc810324249a7c132b3086e3398ce1fc8aee73d8c5f1a548cd3334d1643f85096c56916466e7852709cf99c73d6c75ccef6729dbac611bac669d9a0d6a36a9d9a2669b9a1df45c6ef27ceb51b3ff7f90c32fa3e8d0785856a2b48f4d54aea7b8a0cc9e3df87237f9d93f544ee0a9ee6069389cb6d0cf6baad218cd11352d55595b0fa149e8c3c4cdc21cc6d943e9e0846647e176dde2bf890c2b7762383445a4b11c1eabca6c533d63735856abec19c5633b23fa165cc02ad6b06bdbc8e7d94ce20952676392a2661aa351a366064b2beb4f4836d60f903974a0adbf47ec6125f8e971d285102d4f55f55939ba2546c021ce8aaf09f284712d6d70d1aed476030221b39743a2c22b204fd8cc53b300cdc9c670baa7b6a353c6904ddf4303c6902194357108e6a5304378cef0131c8b543ff02d160994e9ad43b74318d57bc5f3356bd722b50849b296877d290f9ea835a6d6845ae73cbbfe190ebf87e2ee34b62e74e6902f225f4abea66212cd68f095bac4936cec216dc8cee1e969c0216bd19b3b94d7b0a3d8baa296f538af472a696c63286821a06a558a6ee650fa703abdbae1c8d1271c325ab5760c877c7cac96b1470bbb919fb850905b4f96d68d5c3a5c6dfebb2759f28bbc9b4e79b7241824646a776ae37f64662d65662c4db76fcda1953fe4ff25caa13878535a03a1b2871feaf4bc351c225cd408b6916addd2f414556cad2936156dcde8f586a665bacfd26b01c690bd4151a4a8e8e80510b2e7e240789ec76e28b21f56e50ecb74d860de26b06bdd79169ff9a8b6b2835d3dc7fe451f356acda97547ad7b6a3d50eb915a0b6a319fcfd4da76c78b5d39945dfefe111479b4963a48b3542b9e5649d7243eb5a9f54aad3788cfe35e0c877767e093696cbd536bb589c3508da8bf5385740ddccca16056d9d3e904db219c2a93250e67596d8f11e59091b3eb36112cb1d2860c1bd3185d60b1afdad28412210fc1753b9d4b754b3c87ba3f5dd7e550c2a476d14feb23c46168c5534494f24035f623864921463944365f953db44a7876c89892e610eddbae706e620c5b65fa18528b9fbf27d4daa7d6810ac0e4b4312c957578868de151176ea1ac01308a94270ccba8e901a89b0cb134e7bd885d6bafced0035e7683c48690af105cfc090c36fb9cad436a1de1f3a7fb9a6afe109e840c70eb985a7c26a7d4e267c419b5aabfc6e1ae28fe0a8dad1aca4a5fee711df991c6cf36c724f2356ad5a9d54086b05a8028b539c47e40a7689b77c57aa349ad96cb61943d7b48ecd15ec414e530a4422f42bd49a7a4730cb2d3d33a0ee1885a6986c65500219f8074958fae7212695aaf05bf783a0aae9b772dc1de180879483096cf279e432bb952ef8439dcb3106dc7700869dad1b987751cce92ba5f965d1481cef97e93c58abf1b6cab438b1b2c716263e825a8d5d5c6503cc3ab8a56a46f96226508f71ea148c52d647ec418aeae106238cee9cd212f4b60af3c4487b1eb81ca4efb35ccec043d97002ad38bf4581e9fffb1af3dcf855ae2c34678c1cf881eb5fabfc9e106143772f8f328b6d4357a684154088707be3ae551bec1956af10d1b8143367ac2e1e9a3e6f0e61e8944760ec16122c461adf30984a236a10c2fd7c44b3321e4d0cde930d4365fc2a188f4cce2e33476ff0be37ad555d37ee3224a50547f54326c0f1378b3feb48a8aa39aeb96542535656a2e5c0e85bd03d505dce6d0ac39ac5ae2534abd030eed759869bde829cc21fe9c6a97ba9ec3843ac39b902fba6f381ceacbce6f6ba5a0485f8e68b9a416dfc18c3286efd8f3d83b84a414452ae199cd8a7475a9d6c715f14c6f65b5317cea00b9c953fc463d9f8e525e0526fe130e7f08c56d696ce5d4dadf0bc8063689fc7813696a3864f9f1c6f630affa73bd82c3a373cd2113282fd8395ccca855087358f99c4331899565204d6d0e6b87210ec5e2890ab51b04e3d9efef5dc14ffd2020990e2df66d5a91d89a8a7606d9c2816e136c0f3ed22a06bfd2a6d07543df2af9510965b1510ef924cf549223ca61cb5e4b15d6a5b0c0762ce70315e4c76a5f2a630fa59f4de5622d872c4a91de2c079fd3b2b6194616f11417bcedc13364457a9386286d8f11e77c4dc318b26768361e6745badf82228d85d028d2f60410b2316443375b50a50563c88af4b2b8d51ec9d171cd9f79fe9bfee11fa2f8398dcc21bbcbac28f852429ae60393283482c326b52f6238e4af92481c3f51fb92da57bb70c8e750a560655388c3b7902e9d2a8f0b4b19aec25d4955b1a8ac6fb239acf7431ca228d48a46d613d09c2c11a577f8c18b5e6e8f00e9180b2342eb688f10f9b0af5b288f9f527d3a3ef02127b2b8f1009fd958a876e3077a546748f1873a5f9d86da254a87a87ad88e19da71c20f2a18fba843b278a1068a90f6a97d8d2e21b15d6dd836da1cca0658ed1b1d9e593d61d56ffb963e1ada189e3f537b1a1843168aec164ab5a3ed161edd21ac60c233acaae0e094d4d6d18fda18a2fdf44ec6b03dfbe538cd9fa3b88946e67032c245640e214d1587621265c045bca7e33492f8676f210e2baae61b3b72a5a93da7f61db5edf516db71283d638c950be9d28ebb899a54ba9c755d0ed93ec8c113aba14673a163aa4682b61f42abddb71c75552e675d345c4fb427dffbf247b99f7c183286c2219f2732f5dffbe4d05f2928b369b70057ebc8da8ff009d9184ef819ba4082818de16a42f336d20cf30e3c3771db8c5b28c690a74728461a09cff08cba7fc4f3fd92edfff52e109ed59b2f995f0a99c671b819c53fa0b1fd840718385ce09ab2cce0e79c83222b93f633387cde8773281c4a618dc46cd84eb659b92dc31c7e6cc5a14853c9a73b1cf253bc9273a569e54217d694edee4f17bab0e6d4129f3c9bc7e3506744f44a9a864a433f1ffb5837c89f13e61017f3f00d366a773c1e54cbd3b1cbe14a5581d6dfbe5b6b8a51829c463569644b0cbe146dbe6b6f688e78fc46ed7718c3c70f9a3dd0790e614c49183e96113b59e7168a226531755f74c333df51a487756aaf7e2f85b886c3bf45d105b2fda1f6fa2de26aaeae7416912fb4ad4e5999b44b210e272a7b613864e7b05dd630b7f7f0b127afdb4238557ed7a14a0f3a8150d997cff10fcb93408506632289f5408896559925d619bd86a2a3a76a1bc6f63e72e8303b1fe152323577f920ffa88ede8d2a2872848fdaefda10eacba82b758ed40aa6f267549c6239059a38bd2305c2ffbb64dba31cae94f93d4850fb0020f1e7b70f556f9b8bb5e53b389e8296c699f36f1d21ca5551fb4c45b7a6691f539b1dc2536a57b0d8b77d46edaa4abb4f50a7c6c670917715a9d439da6e2114e932ac480b3f109e59f003a2f6aba9fcf51c7e1bc5dd696cd7f10c6351c17e3642358a43631205c5a32eb51b6887b11c033cd6a218297f77d83a5288eda6cf614b135eb9f804bf5020741e2a1f152b27fbf2496ed000b6affae122876e71680eda0e6159ed3953ee84384440e830a68aaddcd19d328ec39bc9ecab427059a918e5f043ed8ec8a09a088d33a40c3db6471bd28c87a16d2d429dbc55b69d7fea242dcc38551d0cb08229122c9581561a4738e7180edbb47f888748bb83329a36dfdf1ebd66b4319c3d861286d16c21bb85b18a941fe8ac48b5311cef680cdb7dd4be6d5de9f6d31cfe5728b607b8827c29c5455caa1635c6248a3a6565d2e69b3752fb339feafd996567663189e030e17398d41c1e277507a758f61cb5290118ec7c980c628cd24d90679b7d9550ad229ba8cd035d2a98554d918d6f12657b7a7b85a1bcaddc8974ce9fe8d5ee91125c9c0f56212762389c5c6bb3c63ffa885df8ab4aaef9dbd85e89d8ad71be767b19d917c46c8768776a4355da353e79355ccb21dab7eda992eef08e34ed14ddded17e46d94376ecf945965e07b4c8d15b8d6e8e600cdf2c452a6e61f926523a1355a42a3c2309c3ddc23307396ae79c851abfc36179fcab287ed963140e5957084592cdb74d225f7d76d3db796a17b0b249e4a840283ba4f391698bda45b56fe90375acf8beaca9dd667ca84d20f0fc0ecf57d91ec3d9a86c72adb76d3a4eea72edca05fe17a12eb087b266376773a8fcbad77067449f43ac545cbaf6500083e2cd91b5e96f600fa512c08bdc2cb9a128255f2ae911b587278010027b1cc3e16aa8174ff2f128873c26c2e1682d8733f53f328a3a48e373d8f1e8a94f9d317526d439a7ce05752e5177f671469d2b650cf341c2709d5bb859919ebfed1823ed5cdb0ba60c8dbfc3e17750fc691aa973838bc88f347111259bcfc2c3e6901f8a9d5bea4cb13373c0e1871a451c613bd999e1ce75e6d4b9b38dc6e728b269e213e6d936559b3785259ca2abe4ce6369012833582ce4b16a82845d229621eb57b9d0752d666553596d9f24e438556c467fda109a078aaab97121141b58517d74a210cadd94538a42a8777acae1a362b797c17f7485afb11c96de74ce730387f204c1c20b1fc277be8ff76830b3e017fcd07ca4ce02c6f0fe0ec6f0569592ea7a6ea5480d8476fd9a31862ca32a775a917e3f3cd37aa0936594c3cd86f17b1cfe098adb00499d2770c857f35d385c06d27475ada335fc50ecf0b3ea45731840f8a1a529385c22c6dd79a5ce9beb82562e3670a826b41ab01e0335ef2de4641b2348d0b03d11661cbd073f73663b84aef50bf651f35d416b68fd59d98b72a8a235680e10c3a1a4ecf911f011d70843a4e9692278bed81c1a27306a0c97ea3ac89a2cc733140ec5454479da3a0e5563a8b1920f81317c47af27be6ba5257556d4f9a04e09c6903dc37107d564a69efbfd0d6e21d64fbcc7242a4c095b9030ec51a50a6338eeef6409cbd4d98b85d059c4f8d31c7e13c51fa2913afbb88eec673387ec73eb6cbe254dc16101d9a4ce01f4a73186e53e06bfd01c1e2a7b7844d537f74f602a77e2398420f4a7e66aa8770b8e6ed309072c224d9925efdabd9e6ad322ed076a697aa5e7ba19a281a3053496fe0c1943234d51c51ab7e9efb1ea582555dd510ef97f9702b7d85e18e204cabfef70b81aea608c6d0fede54e52f48396506b381417f138a97b07778ea9dc4343ee490a26b1c377ff541b4359ecfbd684223dea6a456ad616da101a457ab00084d184e10ec6f09afde1c20608a38b897f94c3cd28feb4618c05923a15aa3ce3826a1771a8a5a92412d924f2b3901f8a2f45ea9c051c3281f33b0c3189932bea5471f33a35ead46368e739ba19429988e58edee321842236698993a65731fe24c2a1477ce9b4243e561d81a5f985cfa1326e09ab33a2af4b25b62435dffbee0e168aed6cd09acdb9b0a8b6e9c440b852a5e1c2b603a1708893bc52ef0c43687a964ac14d2c8713b56eab3c8e17a5b08109ed3fe3a7cc61833a4deab4687145377ca7dad4e9d0f9133cc3fb9c2ae9f6ebb99130b4dc4214731bb7707dc2d0aee7fe9a31ec52a747e3631e5b7268d3f8131c7e1fc59d68344052a78fe7596780cbca1cae2e914534d2544c223f14efefa933f439fcd010f298adc0e1e331754620b693a04e32def03a8ea203a10c04604a815235c8496ad1414e7cb6a834e537cb416160bfab8be61c697af81a48532344259720d576d1c4bd5af81703218c7342c7455d63a8ce4a7a69c736a4514ea00a11c77128c198c9753c87d2e47bbfbb9e43f53ce23fcdbfd8e67b9442e9cc451b8df1610fd3a8a1b9eec11896cab8c5e55b881aa348d7b9853f1b9eb9a8502723106e407173438d9fe0f04750dc9546eaa8d278561741a866a94da2e1504a6a3ab9180e61128b681ed5516feeb0492caed5c0958b60d3a5288432350fd4b26057bccd61529c2c9ca850e1d91e62d042471e03696a5cc1d3c3409a86384c88fe74eda1c026cc38d77035d20577fc66d718aa7f734ada74c770a88a01f89ac47228c2d55bc3a1ac819282ef351c6a61cf5fbb8462eedb2afad0cc87d4f5a83bd66152ac096c05094356a40642c72d14456a270c837aeef28e8ab4d9b1215c47e336ed6dbecde1a728fe1e8ddd0974055f537111a5e0db4853536eca72a57b0e0eaf525a945e6730449a560ad4bdc0ef762f1d0e1d0bacd3ebf83602a14853e956ea36143c65e4e2a5e978ec1e94b8883de9fd6867284b216c47b3142806cada4b9c42290af1031d6328038504af311c96c73a83e2fcd7266d58eee8a8669443d1ea530a5c44a71dc67e573b90eb38949636dd2bea5ec318ce966ac79801756fc87b823144e78b048ca1ad48e3dd424b91b280b213861ff51d1386dd5b6cb718c7a143e396cda6b6017223873f88e29768ec4ec1210b0c961952558322892b375ae3f5a83b0387c639140e79f0b7c2213f29bb73eade6dfa73fb6a9fa958088d1645cc731263274f5e639cabd370e3333928711d3b2ce9bb762114a5fec649dcaf46ba41636cd69ed1e55f897288d34ee8b8a80ba1bab36c9311228a405842584b67021d0865e09191d02ea20da170b81ae9874e3448a3874ab176efa9fb803ad2db3b6c53c134761fd12378f6a0abd84c3db73186f6b22603a109cf18452ae199dd1469294fddc5660e0d8adb73f8298a8a432708f15514bf44e33640769f10ece2679b846a10325d04d2d42412d967e83e236fc11c1a081f26f82a2e62f7054fcaeef2f3bf28c52222c962a56925e74a53891c229916793fb364773d13eab4d5b295ed910e4b4e64976c61b2e116d088b094bf155f3d9308aad83ec2890a59f62132d5e1b03cd691cf380ef153d9cb2d9643fe1cc93dc472b854db989727f1c6504235fcd32ea3f886dd452f3ad83aa6fb4edd155a39798728e9becf07256ca68854d7af596ea194b099158676c27087f0cc7196ba1f0ce1961c7ed5246e08e1f81c6e46f1670de3a734764b78aa3187d77d1daa8995a6fc98ec96a9bb177078fb84c128f2b7dd7dea1ee026750f3f81104f6e2596d6a1587a931a9490411369aa77bd0ebf591610bbfea44f9d3922a905f94c118a65697f1896a6c61be4130867edb534357ee0475c3529b6b549c640f871a24b5b27d72e84522e23b1ab28877ca156439d7b58bbf7a82a1e5a6b0f47d43d82b8ed1e6373dff3264c62f7043d825fb3da18ae6ea04851cf5d088a481db7d028523b6128e199dd12865dbe98e75fe270e756a8eb39fc3e8a3bd018cb64b702892fa11a7611ef7d1751a4a9e190b50a383c7339e4a139ac2a0e6b9f708809a4ba684a10621d8dd21ad03189076ac7eca834051863973a87e48f9390912cfb853822779d84a11015ceda6b0ecb63bd163ecaa196a6f3780e459aca3f15e5908f8fd5db1c63283ea138d5cb35bd12e5818282ef380ebb75eaaae63ddd2636159df3911675dbe8d4c4c670f688c4bdad486d084dfd9a2852e979611286ddceee2b0cc70b51a45fe570fb98cd86ca9b30873f82e2ce341a20bb5da80bbeb2c64534d2d4b88892bab8dba36e4f074bbbec0ab2af3fc466eeed233dea7c834768235f9dea604695707c7ca236546b63ff2679674ddea652e7663a321268043ac64ed7fc51fa33276834584fe2330f54fb0c233ef933eb1db55f7ccb3a872bb4d0af9febbde0f7f2c18f360cd99b1e7defafe2ff7a5b6d2027ec9daaade03ea2dbaa8d75edb5e06a065ae3f455e3c6113e99cfb0be8f7fa7ac9e44e8537c88bf221710ff4e112b9e6c0ef9470dc29b6339aca7d445f63796e113e826f039d17fb39ba46e8aba696d0c6fe46086de573a3cd365ad98a32ebb6d85f06d2d528fa8e7516f1c6a00b59b223dc8516f6220dc81c36d32191bea51231c7e8ae21fd0d83bc7356599212ea22cbc70a4a934ade10767ef021cf62ed57c6a51ef8a7afc0937d4bba5de947a33eacd31cff8e6b54a018732b3eb9720e7f04d6d8b7d87b90220dfb47dc0f2f6117eb7d6a3690288361678ffbefab677a7a66f0dcb8545dac9afd7abd849827f85df80b9dec7b7f52e7ed494d50c87584a2fa3bd8f3f87dfdac7c9608cb05f227fd4714bfff5c6837adb18834f807f8bcf049fa9febaa008f7f24abb8b36877217c4e8d96e61bda2a67b021fc867c89fdfb851a7d15667a59e1d7cb9f8a7fcf8c03fa210aa97825c8570c81f1ecb21ff0bfc8663b5e1f66aa4af7f5d3da77af7d47ba0de23f516d47ba2de33f55ea8b7a4deab3686fccede9b4e18f6defddbbaa21edfe512f5cad4db535ff78122de7cf0dd15868b0bea1dda10eecce10614372fd188e3f00751dc0dc8de11425e08992a17f1a185ba41c3219a9a7ef835dfccdbb1e2503dbc7ba7749dc46069daab50ef0cefec55e19bb119a9a933613b23cfd403e53549759519f2206743c41cf22ce4d7550a42177a17417f1c08781faac34543cfe3c975509252b6d613c9d4e439ed48d39a9ad3356b09bc44475b1ffa24ed6ce199dec549a55b14c0d3842f4d55e745074209dbca820f73efd8c6b6d54e6c3a8074a42500632657469a382efdb529b2189f8d67fb482f2f341cf2f1d8dec16db5ea979f38fc5a1e7c8d1b2d4a7b351a8fe016f6eaf82bbd06f59ad463d2da30862c70844351a4bd8efab61b2cb4c72ab68956a43da6ba0f3b198467764a18f60654d9ff290ed7d1b81387dba0f87b34f68678b6f1c59d2d826c7eac34f5f84ea8a2b69e42a29744ad70c0610ab793399c5ceb5ed786c3da9b36623684d2581a2116352f9b0a5de33b2d27ba4d46c0e152a3256b5b658983d1a807cb500847a06ddc6892cd6a06366e2e876ab12c9f616d14ca164ed45633f2b72444046c1e3487b2ae3296c3e3a4a9eac6e7406a1e5a2128157191b09348fa533f5dc14710f954f5a2c717f8118b6a9b43d9cb691d87fc3843e5b7bae0ac08f89dec19de2ee0c9df1d534fb5aeebb1a2c9224c7afe8c92ee8786cf610131d25e4e7d9b8f710ba584ad57c0900650bbad3084222d3a107e9fc30dd5a75fe4f09768dc06c8be6ab7cc6e37eb8d56562fbc70a4a970c82e44dfa3fe98fa13ea9f8340e6900773d8bf00872c6ffa97a10f97693156d35af6be8c192a665357ee13db2519b521d4264b4773845f8b3d54bd24d47aa8241ad8c09f3c539dd748ed3e5f850264ef0b6f56b53b7644a43ad366cde6900d114f5cf9ebcc39ab5033d05ead871732d7d17b1b6909558e73a4718d5e70f9914474daaa07871d5592c7071e3d9ee230612d38541908292be51ff1df351cf2bf36b55cc4580e25e255afe9f7f7afa8cff7f786fab7d49f527f46fd39f5ef90332c9551d27dfee2ebd277481eb675dda29ba80862a485503d7769f56563c88ab47f1f85f0dfe3704b1477a0710390fd07d537b1a75cc4c22617919f9afd47ea2ff08cef3f6908c5243287fd671464f45fe2395c8df45ed0eb501425f6f978d0b981d68d0e2180c3a4bfc76052ed73e887289a93d02a5b1e7bcf4afd26dd8825d3bbcd5f670e83d0a85a9114bdce1f277a774725adb5f9351c4eaeb5b5e4d76c27db47a1b4a114a34b530cf1f11c0e8d8b18cba1287ff4daca507fb9f6bfe8bf52ff0d89fb45417328297bdcd6f7108492b537256cdf5c61d85f4515e9bfcae16fd31805b2afba188c7d1751b2f9b1d2945d880e5fcd12dcbf7ed987304dfd3d3aeb61e52138dc8fe790ff297bb7bd288a00a9e64e68691b113a7f55f8562df9526d2ff02759a98abbc8afd988018043bd8e3608c9bee8108893364033d25ae8c2ea3446476f05611a64e850f3892e3773ae6dd92f4097d316356b7328944aa45439b14185f772a26bb2e55fb039e40bce1cca32ae68e360e1509674cc54bfe0fe01f50fa9cfc81d53ff84faac81d912b2853ca3be7ae2f46b30862c70f0baaeeb66d8fdeb37b4221508df9d12b66f240cfb4deab76221fc0d0e37a3e8f7a759574ab2038a3bd36846bf4dfd8e0a992a1751b2f9b1d2147bdcf1d5ec525fc53ffb7d40c883699c318103ac1fed0f314d11f09c2af1e673084956d98422f6cd6d69908c6294ee4f9ab489eebacde72c66adf11062499ab5c9b7fc4ee150a226e66d126e61f16927f1f877d93facb7428b1e0486c9b5e6102b332ef53242a5459bd2ac6d12d7365f8cdee45a73c862d8f67b652192cfa12e300aaabae7fa1914e2b00a14657db3db182a0951cd974e2fad5424f7f97cfaa89b791ad3fdab122c09ea27e119f6556cac9fd609435c8d9cca127f503fa36e6b56bb85fc2c964515d2249f15693f47fd3cf50b5f3686357edcc7b885bfcae1061afd7dd7365475fd3d8d03a281879cacb888a6e03bd64564cf7e30a6814a030ece030e071734b8843d1c5ca9449cca92f17fcaaf85437bd7cb581a255e7adc0caadee41299ce8292096ca8297bdcd291c6e36430bf51847da4aedba98e52d60ef5fa3d838108c57ad75d025f1b6a60a28b7185e49a18a8f3c0d4974d315a844318e73dbddecae150aa49c5458c722855dd92ebb739948bd32ae980aa0de1beb2fc5de5f14acf72dc9a6b1adc00c28b3656fd3e4c68704b83293cc3817a320ee6ba840dbfebd7cd0ceed48fee3584665145e519cfe8c1036eebe0719784e1604183a7ff84c35814c31cfe068d3b0039e0cbf402bdc1aa63b0c4c32f244d875a9a8a8b78d4a501df9237ed690cde69c0ec7dd0a04483320df668b01fb852ab91c561229e438322f26c130d493d15e4f77886c916f36d950e61a896ca3234151848faa9741c8f7a472506f783d20209541e5f859e7de28822a8731ef026b996b6ca3a067f5d0d3e014948d6275afaca28bd85a4a97d0b241e53ee041c3a775ca2c48643bb8046dae4d8ba9485289e2c5dffb43350dd3c580ec8ff32f357184aab0189660f0e687048037e714c83131a9cd2a0428333ffc655758c54383c5763e0fbd5ec250eea34e0676e530dc6cff7de079daf43c873a64733da99c3dd52171b6814fff03474577e03c52f01090efb8a43cb4534d2d4d47c0b87cd2a0d063418d2807f314183645022235193410accf014977267e190678cb31b7b2c8d678f2ab1ae2a5aeccf046c55784112129430469530179be350418f4c4a86e7f44e73c8b353a22646ebf22ce7f3a9d780b76df7f803017cd5ad104211420570b2536a272ac4f08afe5c45aad826aa519afcfb6cc9eddb2de7c0a714e510eb09c76a2de228c42196fc8e705525aedbf66b7d70ad3efcb61749edc10ed234c8d0201b13a1610f7090a3415e270c3faa0187a864bca44181064508d45e3f7c5b1f694834f46838fe1a844b14733384bfcde136281a1ac16128a3f507347e0ae47042677b0882898b680abe63a5e9ea9c863c2e54063f8dde0ac34b7ce56f8757687439bcc6073a7f22ea1c6eb68db257a6119c6c859c8717ff54ca569c700b1b13a9d2740e4a3827a4367d4118ea176a1db4d9e05f9785854eb6b0f4e637351dbb1cc247dd8bbfd7aba1ca6a74f429b9ab2b869ac3d885bf7c7ade75385463d5944ed402cbe10d9635cd47749ba55bd69f031adea237e97d0e897bf61dcca28acbbcce52d8cb9ade8b6e1736164ad29274dca7e1f46b1c76d90e3ffd3b1ccad8c8e19628ee4ce33a2087331ace3587ec224a369f1d03bbb0462f475421d3459e867788911a0e798043b593e9f081868f91bff299318c0552fa3ef057ccf58ecbe1c9ab0e2d3aa646d634d8d495defc0e8b1687d219c0ed8fa60221d1150fe58926b93c7639d40d8b231caefc2d87e338d4d2544e295ad82deb3fa21082c3137d86b18d30440f0f17347e4619cdcd19cdf9e63ed1f0199b8ace1ed17e06e199824e18462114b7d02caa3009c3dd7a5e0c5f9a2fef02e13fc9a1dcc275634b1abf03a4c3a46cbdc6979b9f7ca6e05b4ca2bd1cf1e80e55a6f7f734f433164ce0ed025ff9dbe12beee5f08d86ef2e87eb8234dba0286d3ca5579209e1484f4176fc9cf92dedc9740ace1f62d04c9a4ea6becab66b60ecb481e99f6d8fd29b5ef5bf5411143b30234530b62e0d5214a7ba278d7392c18360e2fe212997995cebd2992887e204ae46f11c0e57ca1e7e20523a3ea2f91c4b9c862518c3eb5b1a9691ab308ad45e652f890a815062a4df4f181ed669b86720fc2739744235ff218d3286fb501dec229e5ee882ef75d254aa4c87077476177088e2297e7da84a9f7a343c7243171b82349f0e4151622d365db09347a14c83206756afdb07459a3aef943513369c2bbfdb67d44649632bb30d68c824ee050d3b9c5b23b56fb11cca563c51db2b825c121b0e842247a5fc35cae1f0181d688627343c45e78bb363d038acd0f00cfba82dce91b8bfdbc77edaa2486d088d22650825462a09439e0f3c2b3eea5f4e182e2e6858b521fc2739dc6c0f7740f19b400e6b78e0b10f60423551692a1cb29819b33de4475d23c421046a13bf386cd17bb8d7a8720e9b2f591e3ba2381be9bd681c0e459a3a9906097e8a18767c3f479acaa23ed715bcd0b6288c874e36d8a898ff4ef7f08f7028d2f438e942a8ab494f74f56c944313f98c42288d30e489e01ac3b6b27e1d1a7669d8a3c535cd5e69d8c7e6be374750315e2fac48e320d4ad100bee0ac32f2b52764a87ff34877add9a991f3f4ee30e400e47b8d62654232ea24853b7b0260f2f7fc8775dc56904c2aea7bcc414124dc3349d66d671b81b8af8adc9754c27a58f13bdfd836b27e72115baeee06aa42da78d81a4e0ed83267c225d2d0c2ac2928e9afac977874351981f27311c0af3b6edb50233ba8f4eec02fcd5506f0215823043873dd4730fb37454a5610efe218c21bbf479f4806615d39868453a3d0841288af460a1dd425b91eeb6c2b0c58f838203e1bfcaa1b92bdba0b81b8ddb03392cd248557bb38b28d97c7e224a4753579ae6116a5be469e4690e19c2a9aaeb1f8d6934a1d1398d2e3670b8238d3cff24001391a66ed8534bd3b92b4de5a08db1eaec8219ef2027a908070f693f510eef33b1f417d74b3ed0b9f872e324c1e84068d4f27e3796431d8fb117e09b00e93ca55b451a08cba734ba44e319e670a4aa7f46d7e07074036378ab5ae5a31b622150a43684a67ecd56a43baf3064453abafd12843f92c7ff36877f40e3a7408ea6349ae1a24b36dfb888d1c21a7e944aa86634d71c3284c2616949a33b1af18f1e421f0e51978d1d5f4351bae547a56934ec69c22aced4771a4ff0af7bd7ae0a95cf14065c364e43fd0b0d8a467f462194788c6b878d3b3ad27ee0326e7b43d1ba710b0e75870ec3e1e811fd4859858e9f69b440bfbcd1138df8f58bf20cf3c855dc3fa8c633d758502aa9421b4251a4f6a28a9df7301c2d692ff73fc2a164c39c1bb3258adf043216cbd12b8dde10aa312ee25a69aa4235ecf18fde61090d873c18cbd10a3775f411fa70cc9b780eb7a7514b535917eb5cb4b19f27705468399ca6e7192c076deaca639d907032e912d471c050f633244d0d24b258b13c76395ca9558527afeeed367f4b608b72c89f29eb1ea3ab2b66ca18ca9a606d0c4bd891f289a19dc2450484651aedd1db111a934aaec256a402a12cf0bdb7200c12868fd831668726f9cf656ac428d27f98c3e8d3faef693463b44f95393c01934574b217c6244a367fcc46ef804687210ecf78061ce1fda3e35010ff330eb7a571a62a45e77e3ff900b944bc3415db651b3a593fb10a872845523ac112e66d12d965491a8196e3d209cb895e946443688624186339940a98a83114d88c8be870b89c6841cb1c36cf11249ba8fd2a1ec688918ef886329c153408bedb43ae62751e52a406c2e35ca048838d44ad96a4e5af34801a9dd1c88d91fecf72b8038d3f02e4a8a639942ce260192f4d2554c322677e4da3bae6f0ea195f791e8c1a4077d40c7df2761c7e0a247e54eea890fd3040519c259ee80e5da242a307c5a0d970ca4ea6368433d5653876b7b3c9b5aee48c6614646b9a28841256711224e66f49f0d3b18786ed6315957120343dda70d75a346aab7d7ed4fe4d3729a40d471d1a75e9ad8ac6a40f0de42a58914ac2d086d0760b6314a94a186ecfe121eba01ecdbc1d38fc9120cdef70b81b8ddf0172d48733a05dc40dd254b9887c5f47031a0d6934520ddafcee6623f65592344a61811f9ae7071c624ad586aa1ed2af47adf7b066772f1f0b2a962645cb236b6aa741c6129ddd2e23b5a03d5d867a7ca155285fe7b6ea2525f37e96d4bbc4d824d455396be92d4482845ef8169cc69d46749c1ee922ece81d91f200e96a651e0dd80ee024be331d5a48ed6bd9298b3962384ce033f9d28dd268c156b7dad58d3234cad22847a3bc5e713f528b7d47454a10253cdc237967b740893125269438a7c4c556ff66e2727d8cf49e1257eb20fc873974427f3f4be30e4026aea1438443c95ec44a5371111337a8034edc52624a891925e694b8a304df89074a3c5262a1bb9b098a33d5af85271c33c328a259db480dbf651bcf3c44eac31c9e64b16697c7deb31ea8f6ee612aeb162c2d9465a363c503eab675ef8c8cae113f48e81a4e9b43c90738c613a77a15aae71493283af3b8a17bb7c99015b7b5362892d1507ffde435e0706955bd9ab891e150e2b1b81435d59a6d8c955c4c94fc8fd5192e91be7a08e4e0845d5daa6233f28189274a3c53e285124bf4bf48bc52e28d12efea472b4a7c205791506ba613655cb1c41e25f62971408943f542e83aa6044f80534a54287146892a25d4c28b449d120d359a9468a9d18e87f07a48add10663f84f7238b9fe1a87dfa1717b26131db4fd61d75c5c445de0e64bd38756489a26d41a9c442fd0a5c7377891603807546338fde57cc2211a8ab67816c6d8bdfa39deb9dffb5caf8ae1c25240d54ee2b8ad53fc3c296d6d292d61f82f9a193f3bb174e050a734020e5b98f48e0a15e1e71c641e0ed582afea3446970a8708632603148dbf6a73288b09f969b2f4abd8cae1c0ec4152ae093e410a4d1d0e4fa5751d83c402a148375514d03c74b005502241892425d4f924d208cf2432be35cb6a396a179126546fa8443e2861dbe7fbab4c68a2b8ad224d9282f07f8e435d2becd752fd0d8d9b994c7a941c875c44c95e38d2747509699a9cc01e26cf2979a1394c5ee2ebe890925794bca6a46a1ec313ee433589504b90e2e95a2a995a7bdb9643d6f35885d452daccf7278d8cd4689da937289b26cbf66447241dad51bb4dc9a43fbed20659ea726c18f85b73d0c0261c4a5b0d27c3de562d64cc6208fbcef227c8b34338ecaaa783f973fc42fc40f387ce1e35ed9263e4bfe518433e92bc85187e9c91c713ab86a4c5f40ca9a3e4941e4b9454922139875b9854d2bab7722114b730798f166cc907dd854d7a5e241fbfc0617241c9a7ff590e2585688710fe184807cb245fd01774a4fca8855cc41869ca1c2ee166245f29c913e25d8d95ffe283923c0fca6a5e7ee093cf742bd1f580b18f74b62d87e828051317fa912c235e8df4c5942ebdd2d3adae1a93b2273655cd82d9753c79c3aa7f7ecd47ea6a5d2c8b4367a9919820a977b179d31c9e6bb9682715b4833ad24d8da5ef9b2cd845dfb7b3804374b252123d183ddda28ecf1663a49f62337f71a3c361f994927b94dca7e401250fb10a74c02f18bc634af2ade49faacec5fcb8bce49ba5fe74b21a40c8eaa672a7131512237576d5de9ec34e9992351fc25d8234ff1887ff2d8d78bed629d9d0a19ad28795bdb06a4d8d344d36b772eb794a95deb4cde17939e329ebfa819ac3066dcd614a94a4fbd3fdaeaef6823d546ea17c8b08cac1c69354f44655e8ccdfa42dcae134a1fbc4d89edb3617842f05ffad2d3bd38143d406582ea29fb84fb628d9d64ef26844c90e1a61f0d764176da092fe2aea645f759d496a0e0542a3484d1d69b4846d4b0ecb7c1a030bc2ff510e3f221555bbd1f85340268728621217514bd3d79034d5cba08608bb75d92be019c0732249c91425d36a642899a5648e92795d6f19e1304aa3e1506511b085cb671caae08a5db33af365a484fbeb6ae6c92a75d9b35eb63ac44e126a8e361ea9b2c411930c9404a0d18a465b3abbbb08877b795d351a6a9aa674e97e572f2c3457b5ac167048e7f283a53abd7d0469cc1b7007476ebf9cd5509f83e4429793b03154fe5bff09d73659a4d20b96fca688521e4aba1f1a94526d355213889794f2c053170184922d348d67a25dd852975b7198baa2d4f5a710fef31c1a1df553347e13c8d40dee043f148fea813495a8a9bd0c6ab280b3c14fe2d42da5a6949ac1337ce8a83801df9b391d5d53ea4ef7565bc3a14d63c0a178928dc7f8a422f0aba9f72bd18558a22d4d479a437ed150bde555298fde29cd583969f4563f0f1d7c506b1744853ab94159866fbe95fe54d34478f191c5a194c83c841743208aa36cf2992a706bdde0eaa98abf6048ed9ba9cea9aa6dd8843da9be329f96baa794eab3965205b729369bef947aa2d433aad8eef6b0ae22f5a239e49b955a061c1ab75014e960a91755f01db74bd85e542429f5ba09c2b326a5deb63186ffe31c7e87c6dd984cbd439630879f4ad3d44adda70f4a9528550e384ced516a9f520794526189c67033877a180e67496debe0da8539943ef3f5225e37fc30c66ce84a5350a79ee58dabc0d0490d8dcda1388476f65c88b53790107324189b23959c0ec646fb530887aa498cf2e8c28b920c871fbecbca67e2686003bc6e763cd31c8a45d510f2879c50ea585d7f7e714aa90a565aa4ce28554515dbea865235ecd98437d4a15f520dcda1a95fdba048b5a1537e47aab5b61b0d2b5294ce78dfe7f05308ff0d0ebf4fe3f64ca6da94ea2054c31cda51d368423fd5d57d84523c03fa941a58634829e97134d18be8b7e350bf6e9574c00346e312dfde1675eb6e48cd4bf026cd97e46d4885b7fdd10d3a791fbc6851671b3ac3a1084bdb2209b1f60612b1d21479ff7d8d5c5b754f753954d89423bbd50b87d203d2ed0d37421e12bb061ce0111374a69b9b2a36ed22b2224d25e8698222d2946cd4a1faa00f56944a512a4da90ca5b2c19669a91cee572aaf3934106a451a5e5461d773a70a9452bb3ba589d25e5c095b2f02e17fcce1f610fa1c86da0d455a30fc36901bb04c8f293d813e91ecc566699a3cc343377dee6e94d79f207697bea0f4a5fed82f710809b71fea4a26bc356e546ade377dd5123609ac9f85df06e18ae395a596b246d71915ea7388992da9b980ba84ab42e5a074c837a68f7f4be29ffc74906c61c0e19956a1d175ba7a4ba623edecc5d703a9de702839cae8cd9bec0516fc81e92b64890ede90a5485f53fa86d2b76ebbba7e036d48d36a7b8ff40cf72bd5d51cb2a2e90cb42235256c50a4652a5fb9256ce939a5ef1487f731a533e9873fe3f0c78da1c5a10c49e54b21ff57c74f01698ff423a5177834dad2b4d20aa4a9f4359515fa5258b328a0e03bfd04517a53a5c919346afa19adc1d22ffa63916a5f43e076233e6ca3b6bf0e1d997ab295af9bd23086ceb67e0f6a19aec3a144741c692a4dd022956578c484a4a9b511af147fc6ecce9bd4f9c0e88a0d295573623fe69379b6a49794e667e202add399c687311658a4f9e9f94ee9152eb8acab403db7aa2395bdec0f165a8e066ea1a54865db26bee3cce19675a4c7594a7ffc1484ff06872b2b99bb1b8d3f0e64ba84aa9acdd2549b445558233bcfa4cb0187fc22bd47697ef4fa1d2b300bbfc561fc28a17d751839a52dd11ab4628e6814c5d085e6fd48c73c1d15eaacbeb5898d1222414e4782ce463ad9101c0fb6aad79d6c62384cfa7e609443354fd2ac5a13747e81e6dc3216b7943ea4f4117ab12df228257d68ea4515b297bd10284314692b1bb442942e6c2c7ff88e6f59cfbd6099731c07e1ff250ebf43e34f01993e51a19ab1ce5e44a5a9bdfce25c366363ea4e35878b6b7c4d5e52ba42e933fd9998c1bfc0e14c252a1c63cb5ab4a28abced83534fc76066c91087a8b677ac9fa54203433712db1b8387940a3b211991a6ba1e2d0421cef9e344af2a8c2eda902e38d12a36f9c07495d235baa882c0f91d4ad8265794ae53ba815e6cab1bacabe0dbc13785bd06af1f03a1bdd6de2caa18f7bfb0d237b968be5cfcffc1e13769fc2690e926eecaf9dbdaa8a969b9afa5691e3320dd8225140eb5346d53ba6338d4c6eac7876e0f113e285d7d9d839281108fd1ccfba8f5b3a5a94d42b0ee364cc872e24b56074565f7602a47ee98a7fccf4fb81c4a7876358ce130ddc589a57bba67ecf90779ec16b20bc74ee300eb2ac6f75804632b5221b07267b985be22351b897e49913e75293d5c03e1ff550ebf4fe36e4ca6d90f492817d197a6dd4e204d9d1a375916dce4e77492d229cd210f48d3341d357fd71eb2955ba9a57dce71c5864bbea7362d931558e2a78949940d926c128204a005c33ce5b7668a10a29708ba1c6abb17e570e6af5a9e0d5d1475ac75ecfe896186d219154863df2c07b7f026850587e93ca50bd851f4728595be78265e69456a43286ea1a348a5846d7b458ac84d713d84ffb739fc4120b7c732bd50d97c254ded5a537bf945b0f585dfe13b43c04f386420331e65c694517f1161771544e1f1e3d2b4dc8991a6402eec948a345d8d82f7082d93707b42a342ed84841c54ab905c426643fd09510e252423b43bd2147533237f078184f5a7958195f3094cf129b552e8089c39a7cc05652ec1e17804699ab9c28afbfb3cc233aba4dad1de52a47c9b04425b91dacb7cbfa44833d794b9f97108ff530ecbe32f73f8e3406e4034730b17d191a6b189447111b13c9f399c06f690c7b44e99191d64f487a3cb93171a3f8522760b7555a88e8544a5a9771db693432d2c43d66fa457fd45a3a3a6258ccd9b94c2448fa3c6e0c40f17bbd2547d7e2284a2f95bd2a4c3a09e9903c28b0e65eef0a3cc3d36ae600e330f94794457041d9e092b52213080d052a4d278e64b8a34b3a0ccd37f620c7f99c300c52f72f8db34f2c83cabc7e453246a6a9944bbd614edd95f28c363a908ac61b06dccbc524677220bec61747c539ac6aad0e544f57d091dd475734e08871f106eef898456a1d1788934b0704ddf5097a4b9290a159241fc33620f25c083cfb7b625b77d5113837d4f52e61d1c2ef949b7c207be33991f6ab07dcbe9b61708cf2c03456a20346ee17714698d2d6159dda97f57947e83c3b2bf5f8284ce761bbfc2e11eee50549a46a335469ade3f60bfeeccbee6f0ec042f32079439d413771d84df07325685cec46f8ce42d65f3d0f883b6e61cea2688210e877e7e2fc2a1a48223290a958a98681b1b40a8b6dcf9108b3d8ca0a876d758f9af53f7b0849522da22668e28734c9913b8889953dd10717c0fbfc08e911a08c52dfca6223d2c52a64299b38d1cae85f07f8d4393a7facef8310eab6873c0cfcb75d2d48ed698ec055cc49a16a5cce1d931cc63a64e4fa79b8ce1f78194dc3df08848535895f09b1ffaae9de45f7f500b1a02a75171581e87a5694227f1a2056b623f5dde4671d2d4a26e9ef2bdca6100a74471845edc8806659ae09021bccd628d2f8eb428d3a64c07dd811fcb78025ee603456a4368dc423b46fa51ffa222ed52a6e7df977fd739fc3687a5b8bd44be09e477d31eec84f455d56f589a9e5e04b53512ad395804d274754399019216c2e1531faf33fc141f7d0dc21dc88caa50d1ab48183a7066f56228fbc3459a221be985688cdd4322c80a86bd41e9951a1b92d1d274e85a3f1d8ff121343b79ccfcd841260157502094186946e569327c928768e52ce119c9da9b558542a0710b610c7755a4f53965d29f41f84f3887dfe6d00e9aff388d3b6399c9f82ea2254d63a335469abebf5126ab15a97008699ac3ce19dfe77033a29eea46614b53a10b7a75e8be5f56453a07a5c0d0fa4c102b9b9c3a12549ae747a5a938fc31598a643824630ddddc356e674844cb585f14700d9f26a071aad2f7e943ca14294bd8c950c23368cead14e93a08f9b96967edb3de1762a4d9b1754dfebfe5f03780dc92ccec048f4c7e70965611696a456b2a77be345da2ac915dc4ec79c0218f748ab217bfcba10c59a117e2d3d3693ae79d3a56990a1d944216e7a08eb20c43bcc9d2874868d40a81464ca26c95e14028fbc949f622b663321bdeec256ce075065f6f17c8ddf72f287b45d96b84679edad8b689c588b42195a84c144253472a1b896eaf48b33794bddd82c35f740e7f2958ba2b87bf47e33a44b35344c9ca975a9ada356ef1d19a219a9a2e33949d8538e4d7d9f9af4338b37cbc305daaab77f8cd9e5a323f1bc51d0c43ab0aaf8355c8b351449a465c41f016e6507a58e93850c4244a7427ca61f60e3fcade03c2d90a256c8fc7b49851f681b28f70c5df57a89e6119d29e68b7d0106820741569f90b8ab47547d9c5af1ac37f80c38f935d38fc4b20cf3a9455debc444dd924f28db44da21dad3189c4f13d659f7590061c4ef022fb42d9e5afa3a8a5690824df1b8c93a68ef19c7ada6a85384ce9504df0ad02521a9a4479d32150274531d429c18834c5a77da8288e0be12b65df28fb8e9d0c99c3f3221d9d537645d90fca96d0f6e2b18cea197ef0b1223dcee91d0b0d84adac86d0285259e6ebac30dc30166c75cbee93eeff26871ffe662f3b70f8fb4c628af457b86db6348d466b6491be49249659c9ec51765f73e81581e203237df01726d1f1f1a66ba4e92c4e9a8a45c5764ee17796de42cee4ccfef56104b964589a86edde43dfd1a5ba1f8f642f0c84cd2c650fe110668f28cb4fb113ba7dc21e32e7ccc629652b08cfb02bbe4a6a45fad00af213b631341b188a22e59bf805457a1652a49b38fc2744e9b73994364aa682f19be34bca73c34f319388b255dc12234dc52406d19ab04994680d3fa179966455f642381c8f904eccd671cf7e9bc3a80a9dc53b7eba838663279981f224569aaad84f30f9740847bd532faa0a12f7929d1f39c8e159202199687454163a05c6b041b3374465b24d1a3e52b6852bc9fe61b68d1eead37dbf7ac6d33152d9b1d08150ba3ff113939f9b08cf2845baa531ec9429dbf9be31fc12879f42d57c59f0881cfc0d0e7f8ac66d98b4d7a1c67098521c7611b6e68768d6d3d254a2354e6d8d3189224d7996647b94ed071cb249cc0e28ebd7e9ff1e8a927e700ae8e21d3f4f7724713e41ac5668fe992c5f78fec9af9bffc834bcd2ae60c40f94651c224d1d152a9a4843c866308176c0b868aa90a0b18707d90d6399a27107e199fb07159e59e8d299901c356ea19fb5e7fbc5befdf6315228d2b47b597e42943ac87d89198170cbf1431cfe2c8db1582e27f11beec998a7fcebf84efda696a648e85bd11a59096527304cb4861fd5d90c6555028327d3585542b279ac37dc5bf81b26312a4da7b18e1fb4a5ab42a7caa2ae46e199e7ef1be39cfc5c367e8ace4b64059b66cb2a1b4569b711ddc14af4b0f099cd01c2db076c2c79ca2a340f17315ba06c11ebaa513dd3455c7a751552a49a401f42be2902a128527e866ebf87618e50ccbd2d879bf05b272cbf6ab8becae1964c4638fc88ee22f29b40ce55d65b1ee7f1c670185cd69ca7b3179248149358a9fa2ba1c2e5a6fc7836d23437d62e22ca913f0064fa70d363f5a73814cf2d4ad7e43a469a96c3d5e7334f8171a2a466082dfd998e3445bfb64ae47f49f959fbe0ffd2a672a572fa31298a91aec5c94dd0768d2164e7f03a8d084dab43b973ca5d50ee12d533d8d3b7802b6c62a45a888621341b181a45ba658cf4ac49b9abaf1ac3a8adfb412fee9b1c6e00f28b1cfe0690f2d45f0de37f3ab59e733975fff8693aeec3d1dff75015652730ec0d30245a23d23477a3a5e95825a0f9ebe48c72b71b6fea0f30b9c9f173f4aa684b3c772282739e72cf472f23740e9ec4fcfaccf35b81446dc5c837b65665ac91a6c93ae5a6a89b91947d6989654d39b54b4f6e4eb93be4849edaa81f64d16114a94da00da19db5dfdf4e91d6ae29771ff7748b979a7f134df91908bd17193693bb72f883400a87a69eceb88bfa346c0e1fd01448a4e9ba688dddcacd48d316cfaa47ed22f2ac9abdc324e6165b71f81d2c67142f4d63919ba9065051c1591ebb76404c59f4d75d112b63e84bd630877c843f1906d01cf47f85cfad7b45b92714aff1e5e28b76935259fb3dcab1567cc1e226596ecf8f39a3486d0205c268d67e4b457a58a4dcd258b95faafffccf39b481541c96c21bbc7c89c3ef03291c4aab223922a7a1037dd6d4d9cba1439e98445b9aea684d9c491c3ff8d2f455bb88ac4b9943946575b63589df1a49edf8d9f2692e952bce3b5351152a8233224d8791cff4b4040d49539f2e5de0163189e20bc498ca21e5dea8dda6fb57bd79963742da905fe7de75ef195b919a6edc510825462acdb9b757a4b915e53e76c82bfcb631fc250e79581c1a1477e3706726b52eb59a97c9421bf15e9c29922ba9ec854ae89b688d74dd771218d7ea390d69bad4d2f4c997a6cce15c02a7f5dfe730a5556898ae38c78f6254e8ccf3db52840fda5e9f19a22302022dded649537c78f8fd8327ca957126b93dd8c0ab14209cb69033cced53ee006db8eef675c29021acdcb910569e0161346bbfa52265c9933bfc6d08ff5b0e6d452a2713e650c6f739fc12938643e3224ae4462fcc73383cc2ad0aa4e94693c853446a6b5e8748e8e7fc6cbe7008abc873ebe49739a46d1d3f319e1a0c6b8840707f3d569a2662b812fba6256b9c34b54c25667cee940ed42dc89cc0069eb22f9aa6ca019dbd51aea21386afaa45a514737706f110ee5c479a3bdb2dc9fe8f8b52835cec39afe3d0140dff1c90ebe044be3bb2e44a8e44a7ce70488775c81b89d64413184e4e5fa235e86bcad2b41ab88858bfc38ffc1ae5fec02426234985b5d234aa42752c74e6403bf47bdbf81f8891929ec59ff2163295f8910f61659fae935499d1aa82d0e8e903ba3f4daee8bc4db90675aed01a581a40f1d3cd760bf982cb3010caf2c2afc648c70b2a15ff4d08bfc4a16debb639f9380e635a2dfc0e8d8649535217761163a6144c62534bd36d4c223fb08f7348608cbb946b0559c4b93f72d320a7ff5b43652fdca4422a5a1983a117dd870f0295b8dc7d142ddd8d2e72d1244f1bc9ad195753cff85c1b9708a1d10efe68ae8b74057398eb51ae8f84a15e61b80c1215864003a128529da8f84a1de953975a8d7fd6186ee0d050e79fc9974f7e4b0e7f194829fb90508d1c51cb9dd670a89eac6212f91ea3dcb41c2430d699c48faa92a683c0457c1ad37913af7fdd2492ffaf850fea661311e3e9aa50d231e4e8c118af4f29fce845936c44ac34555b622808873ab95aee534e65747309046918c55c52270c5fd51a6b51a44854442ca1bd67d3971469b945b9d4df40f87d51ba01bcddea57bfcae1ef0029ea48aa6ae48824f1a3711a7098c63d630e8368cd7a93681218fc08674d95cb84a42973c85f1138fd6d2f319a54a0786f30d096c1417c1b28db8d68495224e6ba797e4169c4244a548c1569f25271d8875b78fb44b92ce57294cb53ae40b9225ae0991236a3486dfc6c63f8d4d1dbc56caf48f3c4e7f06f1ac3e0177de4ec0bf8d5b19ec3d5f0eb1cfe2890c64534ad90449dce86c1cc33b370d0d3d90b234d25a72f2b30d69944f667eef629efe90550224d99c3db0730b95b2e71ebb126fd908a73fc62a529c539789e5f3bba5d364202609109a4572ae6c780104fa81a02a4a525e527943fa7fc05e52f69dec10a4356a4ab2b84be8c228d4268777fda5e91e6afa8dfda19c21fe7701d759bc77780f439b451fc1a873f84a5bdea4a1f1cfa3d5afc69a75d2c4292d74853db24caa2c47526f1324ff96bcadf84a4e96d1634f291dfcd25525cbd0bc5e524480b75dbf4094561158a1b19e7f5e90e17ceafcfd4b6aaeab83b1bf89df95bca4fd5bab03ed4c1d13912f7ec2bf25fcccfb097a8a3484dbb277b0c965a9156aa5f5bd954bba66667072df7b3101af0f4648bdec1adc70e46d2e2d0d0f82d0e7765d2751113b28447a5dafc4ba30b2089f2734853c7249a4589eb4c220baad50de5ef108ae039c78f7f6d1255d7a3fcfdaf9a445c1037404af1dee02c15ad80d114392a54a4a93b4ba28532fe71e03d8c99ee7cc7f30f947fc495b94e2351c1ba945fe417947f42099b74614306481215853808fd5d44bfbad6beb4f80e84bb71e87fbb8ebacf9eaa3fcd6484435d8e98fc2114b7c67239d155044bd308d0f31701686d609179a1a529cb1e89d68849941652b649e4f92126f141adc0b82f509e55d08b368986431e4c667e199ab53f3b7444c451a1293ffd10be7f7a7d7df4a0a342e3bd3ebf443ee20aaae79d3bdd4fdee9fd166b7c9317d8384df216d719cabf62c35056a4b2a84262a4523ae32852265056369918e9f6fd484b79ea7e8bc36df10b89cccf0af4ff1cc8751cfe38849fc1394fe9821ebdf06aa49ff7ca45d45710d7c817ab469a1a9368ba9b3a26512a4ed9a561c7e69235d81be5dfb54964cf50a4e9ec0d406607a826597b29bfc521ce5fe766c3f72f829c06261a0b0d3b78fa9d928075de294d68fc3f64dd6feda606733dbfa2c9291e406c81f36acfa6d347ca97e89e9f5665caefa1e78534c9f7fada2d940db4dd61c548b757a4cb2ce56362333f620c4322d32e67779a06fd1b406ee0d0da0fe86f8629ac53cea1ba8812aa49594f32bf934af7037e85485359a4efe4129d45186212db131428e70f22d11a85227b8cf9c32f5dd32f5d7dbf8e2cc64645de6fb2fc61baa42946e813b2f1d254ade58d99df2a281d7ccba66ff24af923254d8f0161996508937942f953143fe82e6c8b2051610ca03d7653a4f90a1d9fff148438124bdda77d9f7f92c91d81dc86c3d11f3169a4e93c2573480c60e8f92d1692bf0e7a58161c6b124d2e31b454df37892b7ef09f51beea466bd0fde10c76325ffb2514719f64e56114b9c88a9e3869aae98a391895a62ae01c33c555d31afd3a778ab66bcce12485029a0e2b73d57826dfa07c13e1197e6699acbd242a243de858c2dd14697241a5a79d8d61d8b58bdf293db431f34f01f90b4ceec0e16f028995e0da45b4c233d2e09dfc69943247a87beba7809549e419609bc468c0464c22d25f3ccf5a6a65f044476b6e1fc0213a553f50bebd519d7e63f004d2aa3b7c5c6f0f1ab193b1d234ac42f53bad83c1034b49d30887feaa8e7c07aee0fc8e2ee734bca4bcda5734dfa36a8af27d28d2d54d102335890a40181946916edf21bf7547f9c1f610865c3bd3a82ed24c609bf1634cfea86a551c2e23fb10c28dd9cce10f02990c5e88345d0536d077110d87b68b78a4a3a6fc00b64de2be170ad8040ddd7c93785f403f457bf9854853e6106344f9d8d509df1d5a9ac27c6d81dc2c150d90ead686b3f88361de4816acc44c747ef3132bcf119e44373518c3db05be85344d503e49f9141655b022bdcc8714a9583f67048a748ca7e1368a744de98ccda1ebdad94d3da23d047662f2cf81dc8643bd93c40e1c7e9bc9877ec0a1f411434ccfe770838b587a42fed748d3ed4d2292d1f768f51d3289596d1279309ff9f4af98c4991717204d457d3c1dd7890648d5c5713f360e39897ec54953862d43f92c52f6e71ff009994664297294cf53be804515a248f942b98a343c76dbb32975152de6f61fb211ea368f7f0ac86d99fc944343e38e1cee84a59f30d4af552d81c5a1eb22ead6808e34b54da2e9f92d26d1046c90c350269185d6a24079553b123589cb3c802cfc06847e1d59549a467cbca8e02413209da7ec23e69d91991d6327f5a3ade051618cb66bb315b285b2c77d614285732a5c84b2f692a88885d028d22fed22ca8ab493096e6ed0eb71b8712efd334cfe0e90711ccad66b3fc0e17670ea3fa75e4bf622c421c5bb8852f256b8f4a58e1fad899ac44a35c624f2242b5c51e13ac64bbc39038a48634468f9993174ca65b48d8aa98c49c5074895b275d18a788378bf72f55d0e73ea040a37289d292de9e61e5f19c5c22d15a6ba15a251a4c62d646d1fab48bfd482ed7a488519fe23afb2fed1fce914fa0b267fc6486eed43fe3d8791a193cef26d52d7d6855456d66f921b71114b459dd037397d4631eb0526d156a78e49e4a77e61ae5b0cdb81533689952268f48a54b8fb050ebdb825ce31d2947cc1192656e23aa918e4c2d254c5f113aa6adc3a58b84754a6f04085472a2cb067d3e44af5053ea4c293de3b4d76f365456adc42be74326c456ac748b74c541478bce840cb6c9b34f5b799fc1f01720d8701187fc2a1bd1dca7262fca2e0618fb968b988ca7fd031d5c232de249a1cc6511ddaa9db41c0c636893cdb0aaf58a41f1b38952d6fd962fcb4a3d8943a324cb2f0c18837182b3841972ac1ddc61bc40c503dc57d08dfe00db2f52bbc233a5ae0231f7495c642a742890a65acb57f7fd76bede116aa6c215b42c321bf96216ee19714e9d93e15f64253dcb376cbf96d26ff6d20377368fe8d5fe6506feb677f6b95d1cc3cff32b95944bc6e14e820e77a899b0236056d125717aadcb41574ddb74d224bd38b8e76147f348dd194d5b7e1dc7dac34b504a75384915521e588d7b70a2e5a705c95ece2c5f1397a5b9c5fa0e54c611f7fab7080c633de2915d8181ed1c7bede2e46ea488d5bc817cd7028c356a45b66edeb732a1cc7cf6f4da35de7f84d26bf6524ffc887dc89c35f0532e9872efc6f259f16085192ab1358c8a92f4d674a9ae6293089fbbe3ad528fabd1565531a09d888493c58e0d95f38a1c2a90ad858e535d333a0281bc1f36bb493fa05691a76fcf06d6c58c5cae2041724569afa79d7f0712d4da950a1bb337ade47f1da2c4dfd032a9c81c3ce1475a48b736c1723fd4859919afa35464e86cda1de386deb18e9e2820ad54f26b7673621ffff1148c5e143641bd0b51cfe069609bf9b83ffadda25d38d91aac6bbb6853462354824da390cd33543da0d4becd4a8533189fce02fd4d0eddb9844591f2c390c761119451e6c240b3f89a22d4d438233927ed03e5e5885aa83c998008c0a74c548d30fb6780d349b6163c8de209a7327a9d004f6851615da6885e8f5827ea4d2fa4916134639b415e9962dd80a1d2a74b799e26b68dc12cbdf52ad7f00a4cfa1d96ac28cad38fc112615877a5eaa23baaecd3280e2225a1652ee997611bb0bca7483bbbe8d3ae549265ee2eb900a3d2af443390c3b60c31cdedeff54bd5b485a87b5a5462e0ad23a69aa44acfbce68429f3f960feef5d09ceebc88f687b70bba519b5ef11d2f0cb09b2f2bd2fb0262c8fc60e2c793c9161a080d8a2c28647921b2f657349c6e01215fe1d19726ba1fc2d9bc56ee7f10c86d39b469342b71771c5fe430544ce7effbb5c1459cf97de0c5bca48fad720d65128d3a353dddcc96893c9960124b084588492c24fc6d837d756a0236cce17c0e77b1b0a0821b1dd97900cb2833532fbe180d17272e403afd3c51a1f01e51817dc2343cc3490a10b2496cb256cc50214bc372b0a5363f984ca2c28150065f3d40b87531371469eed3184974baeb10c0e734fe8b40ee601ee338d489846f72b83d968998221e4b76da0630e4225aac52ab817e8a8e4974d4a964f6d924cabe34fcc8e739a74d226356d814b06114f97521be87ca2e1c321e4a74449173bdc13869da94847ef4d76768611a3a9267cfb04845a2a2a797353184a52515c7549c6079a16ec1a614a94954c442b843c38be239152fbeca616860f2983e29ff6781dcc061e24739dc307c0e03177168fd936103380b056f42ac162fe34da2d35ed14e27569eb5495c66a87885fa12b32d94a028011be430e61ac5e275ec529d5d38dc5e9a4ebd980029ffbaaab6097328ed18fdab747a0fb7b07883cb5bbc45c38b99720efb7b549c52e739680abcba08252ac6aa2e37c4a152a4fc2cdb7e7961f6898ab3afceeccf69fc9cc99dddc8ff8cc67f81c391e6d0774af5a9fbb25357fd4e43d2d47111d5837f1fe51a8e4974d4a9bda137d46941f73865835078a5c669a04e9d74a23689731cc9b95668471425ec398d485355f31db593b101d21869aa1ae168f9509cc3f4dd3ec12815efb0daf0791f35a5c57b2a3e608daf6c53e1262a1efd6171681215ac32b6710beb736ae5bf300d76a3f1ef81dc78aa3b03b99ec379ea0b17f19b1c06c1a184e670ead91cea259e9b5dc45211dda0eda960a3e8a853899df2f41293c8926c7543c547ecc766ab538362a04ee738588c6fe5f06593a824807b3c927ef0a56934402ac99ef052a05942ef7e517c42c9e879912a052a3ea31954a18e6c61f1858aaa8be4ddbe760b255111b8853e87c624dac5dcdbb88587ac845f779f129fd398f839207795ac3f6a213fe3d0dbbaf2fd3b433a3e04c1a1942d3bad15686b5c4413472dbeb913623fe228da0b85797af1cc132ff1324fc577ec74bbf08b4e9dd8a9a078e5014594bcfd80a38893b756c73737788333bb2986a7ef9ffaf5c8d4516da686c748d68f0942947dc2b3b992a67c89d8189668f608b7d06ce52b8ad4ec558890b2c5e10ec5dcc532f293db5b981da6bbd018bb63cacf03f9ebe6712387f1fffc6f8c8455d73af40598969dc17a50df45b42d64c845acec53712f34219cd8a9e328ca827db6036212bd1e15f775c0c656a726b32f8e22a3c840f21bbe8d627cd8332c4d7df0bc506ac720a7f778b2e7933a583ca08b051df7b0e2feaa4ec54364f0ba47543c22ef10b5b5d2754614a9242a243718e5f0abc5dcc5639adf6f1127ff092637d0f8c7407e8f46c5a1d9efe5530e7f8bc984553f30d436306876e0afd1d675fa2987cc50a6313970a7456c1ac36e763a5113914de2926898a0e20902364e66df2eb2111467af78cff750f48b45872e9caa9241fdb3233d394470865b5a36653bfbd5283c8d864a94b2feac20713fbf838b787a4cc5332a56a958d39db96545c5c142bb85129b8972c8afa5ebcc968a74c18e687d0b087f94c9cd34fe3c90bbd0b819488b437b0326b306621beff947c80cf296099f437f27f738173144a62d561357d857dde1709da368d4e96089903d9bc4c6848a0d2a3681a29dd98f3a8a8c22bfe6b7e50fbf1341c5c9e3529b2508a358e4941b998d1e24e9c66d1f6441586c51a645c5364c2273d8df53a19a0e15bbd82b86dd42a95f3bce410818b7d0406838b413155b96ce147b7472b89debf573643a349add8a7e06c8bf308f711c1a1abfcae177b00c5cc404e852d4690ea79eed2286380ca4a925568bfd189318cd28da690c9e85ec20b142c36eeff7541c60a585761423eda40c8a47298d62915daf6d83a8c6c1f3c14b451ac68efc83ce844885d64c9b83ec0d9a059c6536836cd293544c51314d67477ab38aec0b1533f456f79b91e675d719c72d743814455a5a6dab4891a8c87e2328f253d6321198932f03f947e6716b0e25abfe1d0ebfc6a7e5222af09a3a1b960d0951bd7c3b20d3ff4ceb3dc51c75caa1f9319cea12f0d87a3751a712b0c176627b54cc53b1a0d5a9e328daf56e6c126fef703cb3a462d1e36702b9a5301abca9ddee212423d5bf938cf1f1ece5d131d2d49f37624e757ffe245f172c2f3c3df668e2d139389c5c51becd1e2dbd35d1ed42b2852651216b0b1d0885435d3af38515151e5d6e9cc7df67f2cf68fc6bf3f85f70180fa7bf10d1e7d0501736809e6d218d1ba90bbefdf7781409eb39ead4ae7793221b9e7cec26c97a28afc7b2157419479151348ea241915dc42bfe5b37389eed33941e4da959c23aa900bc91035e64a8fba47738b4903b66c6ae43c8c1dc4de8ec31d89d4ee72d46b2771a1469f64d38a4ec018df6a9724917552cebe896e9a8ab8a48955b286b7c4db69091eb76421c763b5f2d9df1686e29d21dc62f3169d1f80f9bc7cd1c26fe8e431efef50a62a4818b1892a621eaa6316ea44777e883b21945bd56b81c52a7ad2ce628cbb6bb3d8feeb53a1547d18ed98451c450eff1e8c1a3478f161e3d7d615256f6a8fde0a3e8cf80e34baa4e838de8f4c106d52f81a87db04a54eb519e9f02cf585f3fadb310f5e8051867efd88ba56c05d9d1bd479d2dbc2fba6e61944349546cbd7ba147af1ebd7d2587fe834c6e43e3488b8ecd40fe77346ee630f993987d6e12930e87c6218cba883675515619548fde63664c6cccc64e639cab4d69d824be0e3d5a79f41172144d72dfce64088a2c530fdea8f4e251c9434f6cc6789faabdcfeea2bacdece0318707cbd0bd3f9dd3f8842a17f64184641afccef02c612cbb098f0eb029051b7096ca8f47b4c70f85438f8e3c3a266f8faeafe9f612198b45014f1928520b421906c2afaef13dcb7a74b27e127f1fce9f6252d1b88d79b40396213e7f4eacfec31c26fc38edd0262a223b53510b1975233d3a7503a751146d4791d5a97494ba2c2993b8a47386aa42e927cb51b4c2a7e74d8fceb48b383da1d5823ef8949e69c6bfc552b046737e43dda38647fca2b5e9eef2b7072f541b871ed86c1e5b1f54595a65f7ea9dd3048edb2b45f96b8d9f1a6d9492c26857d439743cea7ad4236f4e7c31c64d3a7f6cbed49a2f877499a1eb1b9a3dc05df4fa5a971a0e7533d2add7f8965b1ef5b783f0fb58fe08902357ac9a6546525f29cdac6523401d42fb75d75171388b9408f91cea29fe471c0e837c49383013e322468237d1f77814c9250a8776f8d4a068ab533617b25fe2dd1e8addd8241a47f1b0c736d0239ef7ec958d68f94a4fef74d9a2c3735a9cd24d1a4c7ef0c4670395a4db8be60b73c8c639ed518686474187585b70f2a5aee460e8ca9360174a9e07876f54ff80b594cdf0e4a69c75a9f64627afc13bd3ac84f99fcd7994c773c12be0c49ec71e15c8634898a806bf100ee9f19d5edef8ace8ba4dde3e3f2ce8f9909e3fe8e2044f1f3b51b1a522f5881e4fc246e30f98fc0e8d236d18053cc0368a19b2f5d82e7a75171a7d0ecd8470511cbae9ff5fe550e74b920e51b601d415dee1c08c2356c5487a3c479cf21a1b453b7c6a3b8aa24e1ff75507fe26eaa1473cdbc69e37f1bc73cfbbf0bc4bcfbbf2bc6bcfbba1c7b186f071422c1a794c2e611b27fc9e5bcf9bd25d89962c08cb9e37f3bcb9e7dd79de3d25ebfede4ffe95ff38a556890e2dba78c01be4c7cd18af655d188f7de6f01076529ed959e68a4fec81ea49cf7b54357705cf5b78de93e73d375ff829a34ce269aff9b254f67004937875040e6fcfc9ebd2c5215d146891a69b7dba9fa3e4cd53cfa6ad207ca1dcf34ed1c89f62723387fedb8cf513f6ec96d9b2f1263fec640884b245fc77bdc72fd018e6300a6484c398c29c9f4431e96bb088ec8c8991465cc4c87b3c6f890a8f4f51b4b76d2b7dc02cb0495c5da3feeb9c3fe4d5f3de3cef9d16279eb7f23cb677250f68ed0142368302e1e40de32d4def27304a6c1b674bcfdbf7bc037a7ea7fd0b624e2e339e77e879479e77ec79273ab621b3642f8fc08c6c8aac75d1044672ef597f2b6a96bfd64b08cca8777ade29bba69e57f1fe5f75e7d59cca0eb4ebfbf3334edfab9c439d2b70c006279ccddd646000639b60a8fafefbe9566b349ac880edbdf7b7aa8bc22ce28c9e793b49822b806b801bb1c437bf1560b72727c821eb617b722dc0123032396c4f76148a288cf2bb89e0517873fcc962fe40cbd5784774792af24e6ff1b272b722c4fa29999581d46f4e0d4606632596da7e973674e82814b310fe318d051c6aabbc7dc7ef901946cb7bf713499795216251a511e85f5e9468068a8c22724819425945f49694cfa8d545ff8406e5e73da083070f008f62fc0cf00480b72f00af006f04219a8da0a233b325ac73a27129bd567459fb88ca16c0368d72d61cff82983c455ddd01d805d813a385b80e284f73bb27ea8f89f8e4f459dc76283dc3b10a0f856b21eebaa28f711ffec0033144a40f8164f0985843e5b6acf664286a23d24367246aefe2b3dd9ee09f673187931949e24c88f75b61f5e94a815fafe78aaf85683d88d101f9e48d27aa3762a81c7e90a780474933798e9f553c58ff84c94821e280d94877f1e132af6259ab0864b6c1f3ef695cc561053dfc4d3ed9350db7b2ca9614c01521a29aa0202f936039f12a5269142581dce04643ed9e72898b6d6abf7426d402363b10f347b1e8a16280e582e581e5831580d505ab07561fac10ac016920b12721fc5c90a148a2838ad1e3744e285a43b04660bd0bd4c6f737921d70c4c0133d5f7807e203ff770cd6077178e1a9f1c486702272cd861a613c32d035bd7d04eb13ac2fca122187d6042c7c267eb7195818fea137fe24393c11b0a43ccd39faa8782acf047ab093397188deb244b13d699330a2240681f818894b0cf67cdae2627e47cd370b871a1bfa67e4a5072fb2c44f8da6607dd3663515138f559834ff34358d4338d35408f79618e87a5f776d1b0019cdbcab9a59fd3d1a5772d8f9450e2b81aa7e466ef857dce0a6565294afd548877245c6dd29588b047e7851e7f40c7aa12363ad9aef632aaf79871416d26a115dd10bc4fc5ad8afe2037db607b0d02345006a60d5c13a010be13c03eb1cac460c617720c68ef8bca2d0d1be240ef10e65535fc142602e857b2ca618582ec4a945ab157e2d69f487f8864db05a605d81750dd68db83e93dbdc07e26e4caea91a825123eefd12ac5bd179a080b0df127d7ced1d586db0eec17a10ce908c381c0afb5db49e8533165f1792c3baccd36c218a9443b21e9146c9a12ba6bee89ed1a581c5107d72744d47bcbcf7a19a1e45c7ca02eb09ace7fc693ab903f73db320a0f9bf9ca2649f90dd421dad654de751f0680c8c7e23ce30e75a451a15d899cc6ab8fd0fd0f8dfe250c2c6df75c74cbac48b79c41be2edd30f805634832ba24e1dd0edf850bebf0052d7ea2a5f945a253fd3e57b5eab66d6a1d186630e1560784a92386f53cdcd6fd2001de0284796de28496375c0da026b1b2cd4db5db0f6c0da07eb00ac43348230bca25b8410a3440e20316274bfc03a02eb98a84614dd06254564084a0c60e888cfb2016c0b6c1b6c076c176c0f6c9f50c45871d95428e2383edb063b00bb4b6bc90d5e4972ed1ed87db043b007c2f205e0a56724d02787810a0e97751934de925f7a366614c5c70ea1e87c88e1adf0f68587cee7037d2b144378a6f5a3bebf456328161ecdccc0ab151eb4dd2db08709bd32f163a24c23129a69e33415dbd4ce79025b399071ce59d2627ee2ba4026c6ccaac2e31fd0b892c3ad7f9cc38ee2d0744dd58ca7b7b60a14f7559123e14bc8eb196f2a9c7e1c476db40dc6a98c73cce6529e0dcc9288a3cd9273825007be17a256539285cee7cc21d5b2dfc11e83fd4121a2fd09f617d813b0a760cf005dd3cf2b05e108c1f8067b41628851228ae4f49b3cd58b39d84bb06b6023159e14c3232ae579289b0bb04fa8226f9f9270612419e0b5e315ec33717b0af639d80db02f003576ef10eca66823b12df1d1c5f71453fc025762e0081b2f2bb7c4a137a3e0109d52e75d7c35c5702993a5f820feef3dd8d7c2db451a6589ff81f2a55648c9d25e8732342c86f8c552624835465f5c1e8ab727ba2e6833632a1af176aec9fd4f951148e6805e74d4e34540e662b94c360fe45e02aa00a93687ad587b8c80fc551a5772b861aae687ae697427da108fa953cb2b6ec7ed08ecd5c46b4c45474a576395ebd201fb06ecdb2853eae7d40c4d495cf84a1271388e46b4cceec781ec47f1da1344fa0e75056c1ccd0f603f82fd043632f902c4cc1bb227ed5b0c90ed90989c5c508503f944c7f5fe84b05ce033f12ba10bfd49c5f4e91e410e6760e39bef80bd0bf61e95f55087e7f8fefb621bffeba03d7915e879da08e111d8c718605219c5b15072c1b1c171809609961cc29d724a5b975439b470d422722331fe06c713ee99700f0945782449b4faa2f12ee6f8db7d31ac9318bedf912f803f7ff616af5e437bcb7c8aa6239a1605a886113fdc51c0fe27e9763e8a2693bce0bfe19a3613a056a171d149b4da523522af12b812c8c14e9eafb8aa13202ca8ba6f44237318259dfe250e25721de5e59393d051d4694dd3291cf63c135a176d899172475918e396880e38beb809148a9c20cd95448c12491297b1240e1e2961335e8a564f8c6a524feec0092865ea74c1e981d30727046700ce109c11a0044908c11903ba7ca18c15d13b452ce7bbc2ffa46a87ff090eda17f088c737070f9c29383370e6e07c8b69482ef1e0019c05384b706ae0a02fdd04e7049c53944170cec03907a701ce053897c41e4238da15ee2939a520a872282b16edc95404be18b854c48777516f138ad63d72084e532c9ec843c62b02ca72b741aef8b82ec3634789e1e8988e4cf00a4e0b9cab1484ca169db8bf87522676e27f8b50347ddae5a5c96155266b4653eb6027ae04560732676191b5802c66721d1a4d0e0b68fc1b0e951ba9c1c363aa2faee46f7462ad63ea74f6656a67b25b86479a5a175ca7d1f07d2e71d45ec799520c1a5112f55a35e6f26d14254e29718a0152e3898626d73066bb9465f9d8c5310dce0d38b7e020906d70eec1416070583f81f30c0ef289a3f643da9b18be8aaf5762efeb458c518e302694b50d7ca48f08e105628b72b3e39644715bdc2363327142ad678816b28d8ab707ce3e3807403de81762811f7144b57be7182c4b468343b2480cc5574bd8ef24a15fa83328e9f7323844bfb443a99a7a1bdf9e9c521443041ea35f147ce78b9c702d86f5ae5a38035f8ec7c717e26244bdacb946b059c656b69d7c5c534c32bd49212da2311fc8452731e2f17417e57572818c93ae9bb5e654d0c96a346639cc02f9c6b9905f068f363fc91c6808c8063b713991a9d3ab0c9b8950f6ec9553f1a6c0d3256f7570e53b70b27b7949cd30ae954cd81892480b642425111d3354061c9a28898844f04ce5b5a92f00af1723706d701d705d703d707d700370bbe0f6c4d7409c34c0ed138168cb6dbac510f1eb99bcd3494be6545f54d00847e086e00e44fb16df19dc21b8f8ceefa27925bc6f7289ad4770c7e07e80fb09ee9718f489c3700aee045cbc45e19d910c2284ee9e70f785fda422c3da3bb7958aaf0b724a510fe1012551a2f84ed91a746dfd0be15fd2070d1ee85a834e388aa1256748e915bed1691f3c813b2f84908d0345c5a15c25a0084593495d8cc9c49625402698546323724d57265a55ea480f922a75856a349ae5378e8fc2f215902b71a8edad64ddc55257f34d1d1aad78d20a8f6c7c99e4239b0c02590353d4711b4422cede5615a784dfcf4b15d33900f75b9513fd2861a317c86049bcdf17ada1eced7aa3b1c8b5441ca0bd2d31bf21071263b920a0410cf7e02ec05d5292c6ad815b07f704dc5370cfc03d0774f66a2d702fd0c4f08dec73416d37bd193d82042296a34bf25a3168aca3fee165a2092ebee40adc6b706f28ad8a1fdadb02f716dc3b7051c4ee45b7293bb991c007a06d70f6093f7247f7549a94b4b42dec172d86d4566ae1d5e13292c419b9a61819bae754ccec4ba99f3f9026bf4769520c8f7917448f265e808b1c3eababa4692914f1fc6a495c4a0e539a99b1446c8986c05448f324878d95ac8274d261648a46358a4a06fccf84315b120fb5ea16d2f8530e6333c1e3cc55d28548f0c66748c5eb05417c22388c82c0e565320edc52c268c481eac9e907a312d3610fdc97a4771ad5305812f5ae6c24894023524b22aad3d79242291cbe9309a51c6109ee2bb86f94a471117264661bdc1d707701c1381d88fa9798ef294325b4cec926c4276149de6948c1e4e7b7e85d8b7794be7d700fa84cef1e12ed2853e82bce8ec145d93c064f88de8020f400f00a42496029839c237586f488f4480500952b500c31324431b47ab2784885118a12cf8ec4e49362dde51dfabd949e698c68fd286f21dad7717a068fc3f2465c85e0d93910e662b9e824bcd3123fd68c2d3587788a8b43ca5c2015fc9ac365c67d65027543d28a94c9dfd09860d2882a23abc261673578ba59362f984ee08767eb72a60cef678f389f065e73c558e43be18ec671a0218cecf1673d5285b4ae32bd81e780e7c6dea9da39f826924499b0e1bdbb6d3922dfdbb124c2b918ed53ee74bcc0e08ab4a53602cf03cf072f00af4b7ae8f5c0eb8387c37700de103c7cc2bb18fb68248f5c63f41c22135dd3cf2bf0c6144652f206c4b009de07789fe07d813711bd3792a9e70e78532a54a00b8a21a53707f42411b611c68d2e150c511555e1fe44d52ae0be3d3915b69c63a13994924891217eed1990b0a3bc0f7c6a57189e50df82358ad23353f248eb78ac1680feb979caca0dcf9de19dd2092df76699497e894ad83457e67852402adf475723cd71a83cd2b702e7f0dfa0310fce2a1cf21a2a7a958748f1cc2ef5b5f0636bb964784745f976da696102a75179caa48e3fbd280e8cddd74e9c4333e381f71740d272bdd3d41634a809ce218dcb915c851e910890b13a5514becec5cc22efb41e0a62ef043cbc458f149f700e5e033c04e6123ce4aa05de95f86e8ad9940cc345c40f657086b236a6fba887fe9e08af297f33a4b5fdc1bb06ef06bc5bf0eec4cb58ec9d81d706ef1ebc07f01ec17b229f13eec81d255ff48edc51d94d4a5ddd80c1e79c6a866091185286863b4bd93a949e813149fa6c97ba85460724f5f33bca4851e636f248f1205878a09ec17b499fbb942551548950be86e2c1e7053e72fd586d7882b48a66d3ada540aa6a64a227aea31ed4d326ca2b73ff2a8d1cc79572a8e689749404e5361c1510183b9f2902193fd3ea8f318db928b2dc2582c3adf85aa0008b82438e451361405459e2897c913082f79ae39df254e054a71b4ae2f737357991771a08e740ccf6d157a406948f5d6a4c41f7cfdb010fd503856b0b3c7c73fc7317bc3df0f6c13b10e7afe01d8ac504bc23344adb50e31b7a9837e4a0865780ef306a9148765bc247fc8e29318388a142ee5c51f35af71a7c0b7c1b7c8720ac8d88409641d93aa3a638715838b8151f36a5672484141c4a3d24f5864731b8a32601ce91ce0ea860c8e91974bfb5474acdeec7d4bfe6bb8aa5721453582ea23d4b6461b0d0892d4ab7dac18aec4e1645dd4b60e6ea2ae52dff111a57a9a2e6507e15aeda2d231d3311e2287c63fcb204227e29e34f49990e1e38fb626a5d0e755170c81a18b73e6d2592da3268041f2ffbb31845ce9d2aef544a2202c3091b94c4a04fde29ba6ded2bca2bce6fc83bb506b23deda83d399765ba63d1ad83ef831f6070087e17fc1ef87df043f031503c047f2896e88ee2e32342919234d762ba20bfd45e906b1ade08c71357cfe22200ff1dfc31f81fb42d31f573ef89dd1bf03fc1ff12d31d6ae326fcf036c43f6563b78290c342d9d51d7ba42a3874cfc8231d5f895997facbb547ba3c551e29e748f157d79662e708fc49cc52f6025a8ee2325245bc634a62812915d59268e678ca99646f0b6f75871abbb8eb55d82bd2f84b09d57c0e75bed83c5e598af0967e6d31811be0d71709c347b2de0b046ae3141d079a2919f63ce31efc380e54b922d57511293cb73bca07c19f8aabfd44a0c8dea94ed868ef1463249e87e12d6815509a9ef749658cd6a7800f3985af4e51d9b226823bf067e0cfc1ff067f21395c825f03bf2ece3df04fc03f05ff0cfc73595d1c9377ea37289b3a98919b3abaa219fddd11087cce05f897a490037c9326f82da08502844ccf4823025f2831e38cca2154332dea7d6a61738fe90ad23fa14a0c7ada735930e41c295e71a866f38c4703fc6b737d003ac559144bb0ac4705273e11c57e6c6ca6776ae739b1290879b0f147730924d5325a348df0bf47a3e4307538ca4152bf3983df0f096c0e94e17d7c72ea0a4a1c1a09d2b8081be54239144969a0ce9e717c3888e6d7c429b54bf06fd281229713adcc3c8cc690bc538ca0165df24eada1acecbb94b399fae4ec51367229860b113880bea58f40b6c1bf07ff01fc476978fd46ea9ec1c74bc02b0a23a9e27800fe1ba1b84489c6abc3841eece3cbb7a84cef6fcbc5e090c01d99f9444f75176f113fd24024903ab997b2991b7d5d592db4c7e48e6a19fcbaa45bca918ec5644a330ca98fd497cd3a81ca91a2cb4deb9a2e49fc691db7b9b8ba1157577422b867850dcf75398aa971c2ae879af36eaf8e2d2fb6d7c8f1d03894576dee0728eae4d619a0b569fc4783c62487d541d2aab5f28515f1636b9d28c3ff324f92e250ffc8ed98c6b8814676faea24b5d64015e236d5b0e013a0a3f903272e639c0a5ae7050345d33bbddf8fe761608c8728b6afa92394cb89e89d5231d0a5886bf28500102736deee091bf1db07ff009d52f0d1294537ef58fe1a80c012df57627ea0509cb420b021704815272df24ec3292d2e13b8107810f810041074913756bff6642827343d1381f63b2d3fc3891986b0652902a9706f73cd50ce756a531f69f04449a6c183fcfe6d99238dd635e5d699e015821ea083cae7cb4491e761e9535905451d28b277ba32d9635620f1b5d96012eff39b5f6cc7c9982a532b7281fccf048d1187d541625a2c8b8c83ba0d04b0083fb6e61619dd77d569a8e73501ea5ca839154d7b9e9c95d1a91aa981320831e6cb70e473fd299a900e1453e544e59d02e54e3950c4411cf4c83b9d3f52451139f9bc17a72efa8414b6a1771a84100c2018423082e01d8231041f107c4280c01f413011f34308a610cc28833af6c510a99b0bcfa1cc4d7720f61a107c43b0806009418d6023f0dae482a23181f60bcdf1857b71fe253e6cfa68544285df031b4168ddab4205cf6cfa5ad23747ef9aabf6e86cf37617f81b4763b1f308413d71e2f02cf0c164145988b2968b22d72418453b88f92c31469725919d4f7dade74fe1e0a84aef68d114a7d4f4a5bf75532ba12839acc29282678bf06b3662c33fd9932c22b0440073f16363cef59b5f6c17fe60ed919a95091d1ceaa96eac81b477fca5f2648c0721c04fbf8f666378e498e9ca7ec23bfda074226d1be8c826cc134afacff629e7d17ba306b199454ba1814528766b109c427006c1390408d505049710342140f5bb12a748e6b5f8be86e046ccf721b8a54091e875284af41c5a152e68030a2c4d997f25e4be6b8a3dc26f80e12807845427c44fe4e635091eb13746861fc95c216a63ea3a701bd43a33bfa6b0900b15a9b0102f3a18243fe195e2297dd688016b358a7970aa646691679be5d0443755f6e080a8bc7d746379fc576934382c21500ba049e0d538362487b32c1b08a0899f4960fc715bf47df227a7747273a1391ac88fab56b8669cec8ee6dd40f09c988dc181626eb31bba70184de108a6497a871428f63aa43318287a73d9b1d910c3256532d14125145f809c3dfc880e045b106c43b003c12e047b62893e27427820960e048794bc098e08c5e0507c3d41700c5d21eb108e6c16bda35490c3bd3234078a7d51d9c6edcb807026979fa1f651d941daa1d986f865bebe69d938fc7a0b5b8585e8577358c8cddcdcbf4661e1490e845914e9003ee69cf1229de484b6f66c57667ab4371bd512d34dde2b9bb9abd398caaffe4b284a0e8b08d4025844e0851f1bfec9715d0981550430f559fc71786b07793fd5380acc189f183d1d46aaa5ea28d01ea9298c3a687c7f812ea8c5dd348a66a0c8533116aeaaec2f76e438ee51dfd9f792321fcebe387da34a867f81aa4878d823e1d6114571f6065d0bba36741de8ba24895d0fba3e740371d2846e17ba3de8f6c57207ba217407d01d4277045d6a8b11cd670affd05acf64349fb02d06b72c839c1a559918a8f35c0a32a8cba9f75bb40c54f04861e1cc5761a1ae16a283dd18aab0102f3a57f8d1e37c08d92050282ee5a1cb3ea108452e63688657469517db8a136332c0ea69c115815c49e3bf11312639ccbaa05508bcb833cc5734961058845f2e81daf08b99e58a1484268d9cadc9c681ac81ba078a27daa8bab0ccf70caf69555c730d1bced9e86d83e3bed3a5f24ebf17547c0bc734c44743aa077cc9e66985e21ba9a2b705dd0fe87e42f70bba93f604556e0add1974e7d0fd86ee02ba4b2027761fba75e89e88193e7e0add33248dea10835b659f5200311484a18c0647aa77943231247de482d21cdf3335bd9016bf688bd19e9c5141612174cfe3feb593b10a0bf1e222c342f17623ae82b4e7c2196c6d9a106ee32e81368965c23ba5d6e282a8922b815ca02e68effe431a75f4f88f0b63c4e10f096c1d248c3dd58d0934f1d39fc592184fdc2c3d108c59dc711a952bb493c31ea96c2ca63fa3693bd06d40f7224691d2a746cec60c1439778ade293c53ac853a33f02967f3b14f5572381333f41eb789169a0d38872014bd47e1a1ea5e228dd045194455bc82ee35746fa07b0bdd3b298c6de8dea38e11c35f0d9a4acf86ece1ad33961a38e286b5a845a64ed4b98768b2a3e09c57a0a1052f3cb9100e7caab0906754b897f4b517db2a2cc40078f004dd07b13ba5218b83218ba2c9a4aed47155b01c456d29ef3415617258c8e7376fca45a5b988bf4be32f34c4ad4123d7f17f89c0b3a9b2e639dd328dd55dd05cfccccf0263b9e59cc963da8c23a59bc5f998728198cfaef648f5bc55990a07df85ee638ca2993ea59ccd51dc02ce8122af28c5950c44d16f52ce66e66048065d647e5b66508418a2ee3d43f7457ccdc418a97b852e3aab1de8a25a6e43173dd25d49e39eecff1c492db5e4ba322302cfeacaa6ed37245039a2f0205a4f14014ee634f383edec883ad7fa4bb5ea0c5d0ef083f6a9170ffde77934c717af20e6b4a6ee01740f1374554731c56d098af8b659ef94b32f8a8a667ec74cf9648b3fa5b1b041fc9751643d3cf911811a3f2690ed729f0c1fc197d0dbfe8c40fe387ca679a0f32792151c2f5dc41fa8d55012936ee4834a184f511c8ec475238162f01a2f9f612e63c3fd6e18289ede534dbc5617e31a15f7470331edd39c8c7e8d5044f9a2e9480fd03d869e10f8fe2347345e69e9fd9e053d1b7a0ef45ce861d0c8753fa97804704d4a1ffa9f356e9121025b2f948ca9b781963fdd95e2a90c09a45b9a1b39a64fff5a50d3cfec80d623e5dc8cd9448a782f6fa01740af4b63805bc3345d09472683a2ec82502140360f57c4a46ed0594611bb7e93f2c98aff228db5f92a6dfc098a1d83c3bf2010edea49196b6396c08af8991f87e7d2ec6e5541e02a08358a6657fe523503a9a0512dcd70c9352be8f5a0d78f51e49637d5677394ced98c8e687c8fe57cf65e40053a44f1d4a2f4e9a02d2613e9a09e51bdc1dd15180df642e1be118ac309f406d01b426f04bd77e88da1f711b5a1c9feece60bdd69be44b3071f984059129c93eef98db491a77a2a73335d9a683f3b5213edf5126cbc15e98cb60186de27f4bea03751bc992852f076526814ae471471cea64442359366c286f33d4c60d1848c52795c3b74dc8046fd5575e8f837c21871f84704a29dcf94e11338ccdb8c4036bc1ff5b81a87fe32ae555481d09caba613a75c69e486725bb6bdf4a6d09be5a3a82746c5e95399b35974a9becf287a7289b78f3d42115d4459d36b4f5e695535caca84d09b8bde8378df17e36341999b4be87d436f411329be1ad05bca42bc2dd56f162ff1c4ab1e62f827d7e4968493c9fb7712c2279a40eced53fe367ca792bdcacd3ca9b98536e257131d54c23af44e44ad23f62fa077aa742f42910e4b36c55d826209843265aaa6776b02d925296a3a2d07722d795c97c612615c41e3e6284a0eff82c018bf3036fc933dd575034ef3b39a8d9cd53496c9a5bbaa40686aa39e45a5a7cf486184de19f4ce731c545645b3cf66b14d19486b44e9531cf71ac5452f8122d429f3e90c450f9d5284ed02634542717020c66df185e4238d4de8b5a07705bd6be8212db7d0bb23fcd00b450d44025b8f8c1cadb6463d6b91d1566a4f54c0748f55c97e7440b9194e90b6d1256e8b165e5fee45ab2e2c684f049ab05bc212d07b80dea30252ab22d35511457c55ca8f35f1338735cfd3cf2de5ff2fa231df59dd10c5a88eaf52290d038f559998b508bc1691d5e896b5b14800f3f1333eab75925e50e3d498c5bf018745b6e840ef298da2779c4051afa0c1133270c4bf2324c784e2c04f38a81245caac7cd894b9714f64b8f82c2e8ec4722906285f67e2fd009d55e1a230be00b18ada85df610b7adbd0db81de2ef4f6a0b70fbd03e81d42ef087ac7d017728f8a36413803310dc4ec55f47ce88338fe86be057d1bfa8eb87718bcac2193c23b13a36fe17e40df85be270e2f44e7544dc4c9f65a9828725191af629cb3512999668ca8369e45a1f3f3258d35e59315ff88c6b5dcd4b2d0716d1a937dde7c80184886642d0235848504d644eb5519fdef39bdf35a04f2a7e01d3a9106813acae7549e79683686906d770c7d3fdebc2d1745bdbedbf8845084674211850851c4f0cc47d51a52daa67b1aa3480d37e864de884f8f7a6efa81687c8af7908491697c0fa1df857e8fe4b1df873efe3980fe10fa23e8bf8bbd67e88f45f3561c5fd3dafb7de4e713fa5fd09f407f0afd19f4e7d04708172877f9ecc1a5703fc54728fc1dd1fb14dd1dc068133ae2c3a7fdbd6b5371b705fd1ac0beb8fbcc41d16452a3a8279a65c58409d43d1e258da99bc9e3dfd1982b8ccb6846c1f2b2401bd743b160be0503a94552a52b3723b09626f0e221367c02a755d70d38f1413c9d26814623a29a54fa7308b9f1ff18c7683db14dcd4a149d09150918459a9631a4baa27f49394c706551e18c16d4b0df857f4685fefe09f491c6334adea0838a28a22193235bbcf72590e7d06f40ff02fa97d04732f3e95a69a2ff203040eddf89feb5086734a96a7a289c36ed37de1b8b1ef27c251c0924d248705e8bce23f46ff251e49e0d9eae9d1dafda0b0523a75ad28253511eff5d1a799a8e8685f37c752baf01600d14f3e65b647bdc748b2932c9a89438a2b10066343026d05576b64db7f81ca6b18abb1bd37eae7aa0529315f5995b360be76557e1d0dc9f688143ffb61045734ec654c428c6aa7820a7fc7d5289bfe70a6f8fdc485a91cd973ddc4fc2d9126e0dfa77d0c7c7bf63614c0229de7bd0bf87fe03f41fd7c3efe299740fa11a5e8825d0da70fd4b9a5d857ff606e2f19e980cd179eed0dee31f3dd1bd11ef360189afc23b6f28b94fd07f8eda7d157eaaf650a41e75b902bf99772daa6a6c208fbf42e37a28361361adf9f5d48200326598d0c6aa2826e75b5499b5a4e73d51995e32b331816c171e19dec1e7b3cfb99ac0e8b3e88a30cbd7735d265e5efe144269d07f81feab383f4e36be45257e7369298c15cf0e9583aa55f17b292647c2f914ed1beeb6a1950be1918a13b449e88970b6a1ff26025b7ca07bd9115f5315319af62e81fc42cf1325149f8f7ab52b5e4ec41045ec5ea65ec66c14f205a8b7be402943d8be2f69e7a9e994ee2c3bb4f9d4e2354163bf05fd3d92c7ee95e8bd933c7ea088dd92838ac288408ebea45aee43ff403ccce2e27bae715f0477866443ca9232631579ac183a16d3b8913046cbc4945f2cf4bce4aa34a6f33415662d15cd99e0ec0e3aaecc8f82a45695c0d654d9d996bcf34abc15a57cb2a85331c35d711db9d88e37d3dd084265d701a9a24651b783eb6e9b742fb8938815e19ca6f08f97545e77d1c93c94e9cd86ac4f0c694aa1752bba75d103e1218a475218f772680ccfa07f0ca180106885b8d0a2fd6d429bb63d45adeba3e2bdd1d68bbc6738de8e5fc4e4829648f53ff369c4e70f2fe5fe6db40607d1d81b097450c36f258fbd0f726519c8600f420742571c3a6a8cdad1fa973ca649344e923d1b05399eff75342ea2a5d252ad3f8c287f1c3f596f7fa4685c81625e9ff766b396f441e78c2bfbae488ea27115816817f7ca9846ae7314e57b4cb1a50fdaca9fb1a5bf3fb780f055aa62585888623d4edba00dcfd4cc8c271c34f7d4f8a6e7ef338ad648eedf16a118be53e66634a024eaa826604cd53f9a1e31a25985b0a0e44dcf82d013bd27087d3100caa6eaa091390c0308bb10f620ec43184238807008e1889681a305fc5f84754efb84cf7769eb454da3771ed3f8d8a67de0960d452302ac69b4be207c57f288d1636f5ff9abdd6b11ec886097f23acd0b08c7800e393b6c3c12a81cf5a442064e89f35c99ea4096ccde28d29f3569dc3c682cc9dfd4d5c60de9da46bc19d90a14937dde3f2430db0fa02b13880a2b1b0b23a2984b60f32c367afc21470073dd5d7c9036afcee097fae65cefda18427650c34f71d54ba0c8b3f897b734494acf1be6cd6a6865fe235943efd214f8de16cd57fcfea4350be113c22fde8194c245eb5eeecae4d0726cceb6f89ad33a37e144845d6a10ffe898da08e114c219847308bf215c40b884b006619d68b417691a71b4a5685c5a62d220fdc45b6412c5f3be4f7fe2fdc527fd49ff2b6573be2dea42caac441483c96e93d4127dd7774bec1f418807f6964e349d5cd7b0073a415ca6e2fe8d950ab9b13cae1f37fe5ed0585ad8d0282a37b510c5a8cf3b5743f2bdd0551ddbe5bd325c9cd051255124b59121bc9c2b6b7694119f6e1abf984033dff3409f98faf2b95f9b1b8e37e3900feb2e4ac1a95a602a35390351e4d53468e3cee446dfe33a95f8fba7e2d1a7d2a25edb063c5acbd0ea538d1ec3c5c1ad2c69a08f7a22ba35f18983f8517828fb37b2e81f62940884e239840d0851972e216c42d882f00ac26b086fc469281ab3348dd639dd5f6ef10e8db48e38ed948aaeef276d241e3d9396fa476835b1289e1248086f493939a4ec85e4c1ba0f82ae057710b621bc8fe37ce5f2443492ddc5c3831d253529a7b1a13cae4563b5ceb83261fc49c5bf1a8d06874532f853024b2bf53a3b1aa75eb695422284e7736548269de68755d1a62b2fbd055fdbfcc296a582c635c5d0dc8f9af6184ea148e1a24ca2365dcadc703d8357d3a877e38d4d0781f05b72566e87a6e7ce5eb58f2a6a633999704413f0f1fdbd1d3119a09b2adc2d31c0b388fe2abeea01c24708d16b7d86f005c257492386881dda5a03cfeb101fbc81701b42fc7317428ce8f621447a0ff1562c77c4d2a6953896dbe0bcd10e8d8399daf146d2183bb448e3744e34b254da515459bb148b1772624f8e48211bf82947cac15157552fa6112fa0ba830a0dafbf4a27a5547266cec4f21fa0b162d0f817c2a8b68a48bba992c3950456f4423720d02c51a472a45a00f174b2a74a7eec7602451d6aea68934eff34ff9291f5992dd95c3ab5d7134313c5f058ada6919fb93952cbbde935a646ef34fd6f2e77ade936a89e31dba7eaa2fd4a6dd9c39adc5cf18e8471e0d28cfbef9a7086b44271e0894f4fcc30489b5314894123ca54ed0a90cc810d0307062e0c3c18f8b45cea208041572c5df181fef0544e2faec3a007833e0c427a1531b92fea5f068de3048ddaa1456f76be4334eac0d2a411fdd5e1250c063018aa1043c7fc711a5c248604fb32daafd140529755a8b0c4a7f1c480b568ac52e1f8278531db7c630e9e64d06870f817046edc1397530b895c53d51627dfdc7c9a99fea1e7340abf6aea7be24fb383d54a98c721a13818a9c58853e1222f6f930a17797206868bdc865aab53b8f82597d5182f55332a0a234d1d74e496bd355a08e3ab2577387c10b581f8fe80c1bb78f00889f72ff0cfc5770b06635a036e80fff54946ebdf7c89da8d58a0078e7c7e291afd210c26d0251a613085c18c69a4fde1c25d5ae7df0b634f55bba94c6322b09c128718bb0e3a30c0ebc2771ce16769c4d37a11add5408c19fe6a2e8d0c241a3e9951641af59d1fd2b8819bfa47c2a868d41c6e4660c9c8fe95aed492f40c6753532de3fab3e823e4fff2441bfd43f8fb177d49fced8bceba102adb3b81c12281a2e9a3f2f236ca479573ff666f346591e74985639a293f3ba2eaa2dfa45affd739ad118e11237a8c7e43ceb4b028955a1b09079507e5ae26fc5d4282b655944b0f4f173040c51bc3e08416bf199cc2e00c06e73068c0e00202d44c54ad2f18342361641af19953e5a60e505aaf6170c36e2ad19812468410a417faf942c5fd8f90dae22ea7f2f0cac09e7d962c907872b97b912e79615ef4f890a4310252fb356a401ea8eb2fcf68d54c56af70fc4784313b7ea6b6c1e1df696049a768593b4e49435c141c529af43cb9408ef105284f3b8b6b3e5cf6d1e57e5de4d0bf823af8a2a0712d0e51157d949ddb048a6649837d54ef282ef4eb9e9be91ecd94a7a55097e4a37e1cd05a3254d5d8077450bd3d18b4a9dc0f23f1d584c13d0c1e803627fe242fd1f1447f24fc6de1dea001923fefd3b2a8836718bcc0e0551a2a36aad6160cb681a63b93304a0955c2a8dc546f64048d1f72cbd40695f8c339150fbd81b0f1889d09b834da743cb9b4e1a3bc2c4639b6148da887bc38030f064ecbe5e7729234928f3a3632ab0d3554748331bf2d9f387a5ac4e46f048d9b08e35a28460d3aed89daad359a8f5f9e8cd958034b085ce982e674023ce4d721f1718ef5f3e597e649250e5f74581333a7f4f920565bedc9079ae81f0beba23d598850881078ffe368cfba2dd5bf1a0596201092dd443dc39c2dc5ebbe159534d0477de80be78036756361c488717947abcb34de297f738a9c2393fbe26842ad330d97e234741751b2c26ba98a53a271b80b8303181c8a192a247aaac7d420d0bd852188da1d0c2d18da30746829714671e8c2d083a10fc340dcefc2b04b0d34769338bf78164bd4c026f5e5e027c29b9e2a458d727840783ca92545eee82c2432de5c7cda8e992107d54b848e591a133561b3f078aeeac96c9a46d53a721ecd1988d60de45957ebbaa97f248cf5688742dd0b9df956490e3726309b89c91258dd055dd90d97cecd7011d255b38db3e4e37d9a1c7469e2979839959ab4712177e4ebe3b0b32af770a2eb3811cd37717e2da6a970919337754adee839c46ab1a9a55a6cca14c6619d6afd248cdfb4456120579d1a5fc1b007c3be9a2a817e69ff525ccc49b530841b5dca5d3146b4263f6c8bd1b55c1dfc0886210c07301cc270241afb307c87e198dcd7e1070c3fc5cda178f3c4912d2cd980ea3c284387130d093420543f102f4ce10e2f3c19775dd2742776200f148dcd8ea29189e253402937237a4ca5554d1a29c56a943af06d75d0a869d4c3c944918167f9e5ccb9298c7ce7d785313b9551ce3b515ac71fbdca7336d6a7a9e2886e16076e4e60855638b30d801d21ee8ccb7eeec55d342db5183fb3559597a55a8f4641bd9d0d10a38fb48faa57ec1f8dd5d26fbcde945e59430b23d5fa8d88d17e85e1170c27e2ea239623f743b6652366326582c1db1cd50cbff3a1f868d1568aecaca23c06288373723e5d94be6f182e441d083c36c48f2d0be14d170d864b71e188bb3a893f4ff6e181a8fbbcd4443963fc681a9143dd334c51e2348e1b7369d4401266e62ad56122a79aa531258c4c23effba0c77d5f4454476a79a9264cfc5418f59ffc3e1cecac39ad84e3c35529fe9510aeccc4fc90c05c01d404ea161cd329e28c79ea43f9044350865faa4fb52517fc0bd79c5e74e788ab4cb8c866c94de759183979b3f0d48429bdf49b16c6198a580df0ce969f78ff70979ab0ad06f5b5745b54ca436dc488113dd5cf050c4f8076f6f569d79ada250578ad50ccb6c9db7c77ca20948e280ccf60782e8e5d9954906e278f189d44387d52577d3b8826e2641665a78111352772b39b3e53d9cc6a421b1fe2c08fe712645338ab85b19118fd7d618c5bfdce8d446079398b074692c6148a6dbdcf270f959cf4caaac6a00c8a11871b8782ff0502532d38bafa8ff7a986514b7f227e2bcb2a9ba591ed2e920d711828ae81e2188fc649dc149e0a1ad14d1d455bbbe50ae35b1d8511860d9ae93bbc48bfb9edd30488ee0e31f611884f3c71b2ef6cf14a4585d91795e07b380e9a945f4127162dc521e2c77750fd3ce4ff1e10e6bd6e62965d6a54e83f79c221cffad52dddd9d9897db96c29f74e510c6fc48d253452bd510373277dd45442b5581855f9d18f01a8cb65e979c4c66194b108bd92dc46f413222cd9713d35b63ae579cc4d639fa58a6d7a152a9fc67a6deb3aa2ff0c815504d0c4efa2adec6ca28cfebc971dadc98fa36be7a08cbd9c8ea2815c57caab8aa205a28103a5401831683423c6f7fb781f9b110672a84b2d185ee57ac5a27f4faee9475fcd0fecde5013f6bb257a23c0d81209b477147e1a429343a57bd7946ed9bb9299a70e799ebcb6854a39d8e9e5d5358a1187722da9adfce18806d1bac04d49da7974a652349a9e2ae757cd3a472a85b3521855b5230200cf1abe0f478c3a8b9e12468d62e2371a0b58f3f2140957b991be36993fbf5c18f3502c5eaf6d2d088baa117f4460ae009af89d7c913587ca4e9fc9f07fe94c275b5279ae86c6afa89b2f71a9da22c5b0d21a5548a3838ee24d3e8ac3334aa5ea8851a65261780b430ceadac571e9987042a1431aeda6185f281aaf86c29722d970c9c9fc94c811789f0461b8a4c9f871e1c19319e0375ee99c88c29f7f3556adf0451cf2c8d37e290259a20ca74f71184981d934f6538a68a45c4e9468a18a949b9f502d12467c49a20b674bbd8f1eae39284640eab6673d50a905ef2029a177f41c72b3cfe3c74d203768978d39fc890cae5b0ffc4502b5ff594420e3777248761d2a2385bc8fbd2026535f44cbf3c6e6f1a1348055d15315b743d168269a51cd6caafdc9c208c37bd1be07c787e1c38a37eccb702e45236a20fe2967035392330829ddc24092fa5dca628c276b303b8a40b9b7990a78f8da1c31a6b42ec7066a111ab5ecda49616864ab4d42e9adf0bfe8b87989a8c1a49151649678809147eae5d4368a68e4528766004fd0d9342795aa872e0fd1d4a43cbe8f0fb2b49adce29f4c6922dd10c5a5ea697e82c9cac21871583e43623347f457085ce982160920e3a709bcb1c8fa5bcaf011e5afeacf72e3135938872b736d6ad2ae1b5568a462c3f995f87c4a73f8e18ac73a0c1fc5ee050c9faae766e90d4d1a4903efd3b20997307c168b96f8eeaa4d79599d2a5a2a3da84d3fc1cc16a6b2f9fc3473a2304759a424d98a4554ae48e45ac2fc2030951dd5c3d2acfb3384fcbf7aa0f238a48ff31296fa265c6b4949284f4528af9de84aa92e9cb0075b228c090effd011cdadc8ff1981590134f1bb7b23bbde26bb75c8f0417cd5f93c4eb4b6e4352f6785d5d2a381ff8583ac424e55d8dbe253c0f045b46ae2c3139fcfe2fc4cb4f0301e57cf0025dfb025eb7b97054fb028f0e3c59afe312b592f83af029c7da998f9cc772993899654b4a6561bf4d5f8e43903095b95e9c9fde8a208b324c84ca962b18f6a70f8a73298db10f3170456c1efe194ecba4f765ba35b7c02be55ec329da97a63497f42f64a84f7f17a4f34ae556ffc07cca2dea030da03ebdfe5108dbcb8bc186fa5e8a5498846ac3e3b3ceae26b7db11f9bfad0f25264616c5901c26ac91bc9e11fc960ae235ad610531a07e61258510073f143bb7921bbfb50868fe36bf19d39cb8a5f492ff150d29690faedd442306b4ff6ff7b34b22d545ef49fe79097ae21b12acdb8145191b80e86aab8af8753495740c9dc8e2a7e66ae30a650ccd2b8661ed5e4300961c5e6985f71447f97c01201cce2f7f04e76bb24bb7923c307f125f856f4fe5ff495b8e458fd57f3c9c6434c7daaff451a8575f1b7fe6a76b9411c9abc7046c5fc67ea38c7d34de550c9f694afe898fb3d61dcd83b2d459139fc990cfec411fd53024b04308bdffd92ec7948d63ba65b52c86da9908772858e0775ce5634a327eb22780ec2adff268d3277daf97d6de4ac0c57cff5d227e584301bf161f4d4c0e031609685cd446bee64ab9631f5b14418abc78abf8e621e8d06871503a1b8566374fd95c86095507025812bd330e504a604b004bf9b67b2fb1ad9dd3bddd2832f4a21591ef5b9acd200d48a960898daff611a7feca9f28e34948011920143b28af48a38d123419feb437596d9f8bcf32558b564b4d3658f3f12c68d7dd48d6afddce7bd66a376ec95d57e5f064b32316b1158248029fc10b32c7ed625d96d479a27ad434fa3f7399559d68e71824b5bcfcd15e8f0f8e090ed6f981afd53234f75b0b39a463bdab99e8bfe97727e3d1e8d44f75246b5142a1df5bffaf4f159e333c8213d3d28cf2f9f6b4da346b19cc6a235018a44b8bc41e71ff4510d0ecb7dd1fca4e8fa32b8d211fd45028b0450ab1f135888df1ed9c319d9dd58190389ef891f8adf509ff51478d985e77432f64c4e3f0be1afd1da84c650a85dca1939b94fab6a92c653cf0b05e1afd64d119a162d5cfa0e3ec850e1a9311d133e3bf8279f2f0ee057d2981246a6f18f84f19ff4512314230eab54264a92a29bc9607547f417094c0920e2c70426d42f89dfed8eb839277bda226bdb745f2b645fba5545e0e9c0c66c796580fb424e2c5ed759b5b813ad7a635d25026962a1a046d3c51b8d0c3a7d6d3af2789cf908332d2630fa5ce02d3d81e97a57475b3b1d7887cf02fe179f972a342ac18c68dccc4d4d75ae6a1a53d31d2b76ae16a1f8c39246cce1da32980be1af3aa2bf4860d605cd11c00c7ec89e891fb28776df25bb3d26bb99cbdb737a15be39d73cf4e048fd22b3d747ff3a1a581d3af2b57965a816742ef16d9b727d3499041230590f397afe82fada10b953b979289d7deef0d2f3e5efe9eb315d0c0c339302061fc1e3a98f2447d468f8201f6d3c326bd1a851d7c2c8345677533713c6eac99baa3eea7a999b88c37fd217cd95c1724754d7033726b04c0023ff33ab7e29fc903dc2ef91ecae4b76bb2ded919e86ef762347a7e9a1a5d24ba966576d3492e4dcabf7170ad50cb468163c3e52978d5a78c44ca140a3717946e79b37b7ea835436901da43b940ee5653b1075e567dea9ecff6585e00a1fc49fc331761133f85f74303d753c7f48a3e63c4563b99bba56c4588ee25ff8a8d9891a1914b9bff4577dd16cc6e217653037175a9dc08400eea505308b5f2c7d117b0c5e1bc86e1fa4a1263c90e11dfc2f7c397e168db3b7c4af30bb5bf52fd266ba7cfc423c0e78b83818339f937a66ae23a787ac997ed4d7855c31c9765dc7a16f9b0e3833c3d8a4e4911ee4e399a49181e4e39fa5913367256f9beba65611c69f448cff7cb898e070dd2e998d7dd18a32984b204398ad46a408cc16218a0834fd4f1dfb95e3a7d963fc6e9fc8da16d99d4f767b2d1f017a37fc1af80df578d214f16fd1c6579675cd7c872c9f1af854a05531d64ae9c9a5d4613ed45911c33ff960e2ada2d153346a79ac4263d6075ee9a6ea5f51924afd398a7f1f2ef2be6b2b6bf41bf9a2d593a259192c77448b08acae8129024d01d4ce6715fc62f6d0aea4b5c8ee84bcf5e9e5f85934e66a31423cd4cc068394f10f342df769e6fb64f9ccad0a54f7f1b2b304f17ff10d4d72f00e1e733cc81427ef28c73e4b63ca53e50be57d943f5bcb4d2dcfdf940be3aff8a8e5258d4d518c38ac0861795eb4a440bf6e34982b83b9a1606e2e3497c02217d40cffccc02f763eb5e79995be147b37cac24bb29b1b32bc83cfa1f7f4e41736e8d2adadda78941759f6f9b9a09a6466992c1fd0b940eaa1ccc24897bc1a1d527d0943c3fb1bd368068db96e6a49c4b8168a268d8528baff3c8a3cdf625556a6a87de48729999268702d19341dd1742626a3815917b45000f3d42f96be883dc6cf04efd697f6aceca6a38cfe6cd167d1588c069f369deecfb767fae6f8a3f097a65e98a53405672e9645f53a13484eccf28378ab5e2e41c2a34787eb51e58df95a5646634116a78a9b6a6686aa478cebfaa8ab9be0fe10c588c3df0d08cb7dd1a2da60151934db62528ea8598dd88cc054ea258d5f247d59f64cf01472b6b47bb28706d9ed476cf4846bfa1acc9556f212c39fc35fef4e7e731adf9dc438be374836f934c94c8dec845af6e3ffc55b3eb07c9b0aedf4a7e051bdefaa10ba3a8da9a0d14ca8a6dcd48d85b1bcdcff47999b9fb5bf490eff14c2a2027d6e4a665d19cc3aa2a96260ae175a48a0218045ea97c62fc55e06bcf636d95da0ec4128bb6dcadb7bfa2cfc62f8b5f93a9232ad1ef8d3e84b3e290f59a76709839db815563b7b7c2711893d27729894d43d5366966d72fd49131bf33df196ae111d196c1f2bcba5517f50118d2937b54818aba452b33eeaca5affaf646eaaa298b34455c4e1cf21ac529ca89e924995255232b8d2114d1503ab10582e8045f869dd4bb197a50ead7daeecce53767b22ad496f821f4a40ee4585cd9479f40d392e45e330551b7e7ffc21f80359f069f41f47816ea457fca77626b30a56d1a5cc8a185f1ce9fe333d9f2a37d1db6669cc0d1a7325375718737d542d8c157dd4ff1e8a5cb73021ac9c1adda038510e61892f5a5506f31cd12a04a63530e37f9ace670abf5cf64cf012c8a17d47d6356c46464fb355cd837f8b36ea136059be4adab5b214a27c4d8995f354b9dcf4ab650c7c97742999498d4d9a9cbdd5e498912a75fcbdd3cbf9f86b14d33416086349c4985b63fcb98f9a6d0d5f9144ad5ccfa886a2c1e1cf21ac1e10aeeb8ba692a2e53258140a56d5c056023f2d8025f8a5d84b806722378b6caeacdf49190c5fe9710692b091bdacf4139ee2642c1b5f26b840a22c0927fda22b45a6c65233a9b2c1db0991ccf52a73e1c94db7e48898248a5eb593278cd5f02e12c65c1fb53a8a2b0bfd1bd4333645f1fffecffffb3fff1fe8219226</data>
+ </image>
+</images>
+<connections>
+ <connection>
+ <sender>doneHere</sender>
+ <signal>clicked()</signal>
+ <receiver>AboutBox</receiver>
+ <slot>close()</slot>
+ </connection>
+</connections>
+<layoutdefaults spacing="6" margin="11"/>
+</UI>
diff --git a/muse2/muse/widgets/aboutbox_impl.cpp b/muse2/muse/widgets/aboutbox_impl.cpp
new file mode 100644
index 00000000..9ea20aad
--- /dev/null
+++ b/muse2/muse/widgets/aboutbox_impl.cpp
@@ -0,0 +1,10 @@
+#include <qlabel.h>
+#include "aboutbox_impl.h"
+#include "config.h"
+
+AboutBoxImpl::AboutBoxImpl()
+{
+ QString version(VERSION);
+ QString svnrevision(SVNVERSION);
+ versionLabel->setText("Version: " + version + " (svn revision: "+ svnrevision +")");
+}
diff --git a/muse2/muse/widgets/aboutbox_impl.h b/muse2/muse/widgets/aboutbox_impl.h
new file mode 100644
index 00000000..4584de9a
--- /dev/null
+++ b/muse2/muse/widgets/aboutbox_impl.h
@@ -0,0 +1,16 @@
+#ifndef ABOUTBOXIMPL_H
+#define ABOUTBOXIMPL_H
+
+#include "aboutbox.h"
+
+class AboutBoxImpl : public AboutBox
+{
+ Q_OBJECT
+
+public:
+ AboutBoxImpl();
+
+
+};
+
+#endif // ABOUTBOXIMPL_H
diff --git a/muse2/muse/widgets/action.h b/muse2/muse/widgets/action.h
new file mode 100644
index 00000000..74635f0a
--- /dev/null
+++ b/muse2/muse/widgets/action.h
@@ -0,0 +1,32 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: action.h,v 1.1.1.1.2.1 2008/01/19 13:33:46 wschweer Exp $
+// (C) Copyright 2001 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __ACTION_H__
+#define __ACTION_H__
+
+#include <Qt3Support>
+
+//---------------------------------------------------------
+// Action
+//---------------------------------------------------------
+
+class Action : public Q3Action {
+ Q_OBJECT
+ int _id;
+
+ public:
+ Action(QObject* parent, int i, const char* name = 0, bool toggle = false)
+ : Q3Action(parent, name, toggle) {
+ _id = i;
+ }
+ void setId(int i) { _id = i; }
+ int id() const { return _id; }
+ };
+
+
+#endif
+
diff --git a/muse2/muse/widgets/appearancebase.ui b/muse2/muse/widgets/appearancebase.ui
new file mode 100644
index 00000000..7c9a3e97
--- /dev/null
+++ b/muse2/muse/widgets/appearancebase.ui
@@ -0,0 +1,1764 @@
+<!DOCTYPE UI><UI version="3.2" stdsetdef="1">
+<class>AppearanceDialogBase</class>
+<widget class="QDialog">
+ <property name="name">
+ <cstring>AppearanceDialogBase</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>591</width>
+ <height>597</height>
+ </rect>
+ </property>
+ <property name="caption">
+ <string>MusE: Appearance settings</string>
+ </property>
+ <vbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QTabWidget">
+ <property name="name">
+ <cstring>TabWidget2</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>3</hsizetype>
+ <vsizetype>7</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <widget class="QWidget">
+ <property name="name">
+ <cstring>tab</cstring>
+ </property>
+ <attribute name="title">
+ <string>Arranger</string>
+ </attribute>
+ <grid>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>11</number>
+ </property>
+ <property name="spacing">
+ <number>6</number>
+ </property>
+ <widget class="QButtonGroup" row="0" column="0">
+ <property name="name">
+ <cstring>ButtonGroup3</cstring>
+ </property>
+ <property name="title">
+ <string>Parts</string>
+ </property>
+ <property name="radioButtonExclusive">
+ <bool>true</bool>
+ </property>
+ <vbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>11</number>
+ </property>
+ <property name="spacing">
+ <number>6</number>
+ </property>
+ <widget class="QCheckBox">
+ <property name="name">
+ <cstring>partShownames</cstring>
+ </property>
+ <property name="text">
+ <string>show names</string>
+ </property>
+ </widget>
+ <widget class="QRadioButton">
+ <property name="name">
+ <cstring>partShowevents</cstring>
+ </property>
+ <property name="text">
+ <string>show events</string>
+ </property>
+ </widget>
+ <widget class="QRadioButton">
+ <property name="name">
+ <cstring>partShowCakes</cstring>
+ </property>
+ <property name="text">
+ <string>show Cakewalk Style</string>
+ </property>
+ </widget>
+ </vbox>
+ </widget>
+ <widget class="QGroupBox" row="0" column="1">
+ <property name="name">
+ <cstring>eventButtonGroup</cstring>
+ </property>
+ <property name="title">
+ <string>Events</string>
+ </property>
+ <grid>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>11</number>
+ </property>
+ <property name="spacing">
+ <number>6</number>
+ </property>
+ <widget class="QCheckBox" row="0" column="0">
+ <property name="name">
+ <cstring>eventNoteon</cstring>
+ </property>
+ <property name="text">
+ <string>note on</string>
+ </property>
+ </widget>
+ <widget class="QCheckBox" row="1" column="0">
+ <property name="name">
+ <cstring>eventPolypressure</cstring>
+ </property>
+ <property name="text">
+ <string>poly pressure</string>
+ </property>
+ </widget>
+ <widget class="QCheckBox" row="2" column="0">
+ <property name="name">
+ <cstring>eventController</cstring>
+ </property>
+ <property name="text">
+ <string>controller</string>
+ </property>
+ </widget>
+ <widget class="QCheckBox" row="1" column="1">
+ <property name="name">
+ <cstring>eventAftertouch</cstring>
+ </property>
+ <property name="text">
+ <string>aftertouch</string>
+ </property>
+ </widget>
+ <widget class="QCheckBox" row="2" column="1">
+ <property name="name">
+ <cstring>eventPitchbend</cstring>
+ </property>
+ <property name="text">
+ <string>pitch bend</string>
+ </property>
+ </widget>
+ <widget class="QCheckBox" row="0" column="1">
+ <property name="name">
+ <cstring>eventProgramchange</cstring>
+ </property>
+ <property name="text">
+ <string>program change</string>
+ </property>
+ </widget>
+ <widget class="QCheckBox" row="3" column="0">
+ <property name="name">
+ <cstring>eventSpecial</cstring>
+ </property>
+ <property name="text">
+ <string>special</string>
+ </property>
+ </widget>
+ </grid>
+ </widget>
+ <widget class="QGroupBox" row="1" column="0" rowspan="1" colspan="2">
+ <property name="name">
+ <cstring>GroupBox2</cstring>
+ </property>
+ <property name="title">
+ <string>Background picture</string>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>11</number>
+ </property>
+ <property name="spacing">
+ <number>6</number>
+ </property>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>currentBgLabel</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>7</hsizetype>
+ <vsizetype>1</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>bg</string>
+ </property>
+ <property name="alignment">
+ <set>AlignVCenter|AlignLeft</set>
+ </property>
+ <property name="indent">
+ <number>-1</number>
+ </property>
+ <property name="hAlign" stdset="0">
+ </property>
+ </widget>
+ <widget class="QPushButton">
+ <property name="name">
+ <cstring>selectBgButton</cstring>
+ </property>
+ <property name="text">
+ <string>select...</string>
+ </property>
+ </widget>
+ <widget class="QPushButton">
+ <property name="name">
+ <cstring>clearBgButton</cstring>
+ </property>
+ <property name="text">
+ <string>clear</string>
+ </property>
+ </widget>
+ </hbox>
+ </widget>
+ <widget class="QCheckBox" row="2" column="0" rowspan="1" colspan="2">
+ <property name="name">
+ <cstring>arrGrid</cstring>
+ </property>
+ <property name="text">
+ <string>show snap grid</string>
+ </property>
+ </widget>
+ </grid>
+ </widget>
+ <widget class="QWidget">
+ <property name="name">
+ <cstring>tab</cstring>
+ </property>
+ <attribute name="title">
+ <string>Colors</string>
+ </attribute>
+ <vbox>
+ <grid>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QButtonGroup" row="0" column="1">
+ <property name="name">
+ <cstring>aPalette</cstring>
+ </property>
+ <property name="focusPolicy">
+ <enum>NoFocus</enum>
+ </property>
+ <property name="title">
+ <string>Palette</string>
+ </property>
+ <property name="exclusive">
+ <bool>true</bool>
+ </property>
+ <property name="selectedId" stdset="0">
+ <number>0</number>
+ </property>
+ <grid>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="spacing">
+ <number>0</number>
+ </property>
+ <widget class="QPushButton" row="0" column="0">
+ <property name="name">
+ <cstring>palette0</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>7</hsizetype>
+ <vsizetype>7</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string></string>
+ </property>
+ <property name="toggleButton">
+ <bool>true</bool>
+ </property>
+ <property name="on">
+ <bool>true</bool>
+ </property>
+ </widget>
+ <widget class="QPushButton" row="1" column="0">
+ <property name="name">
+ <cstring>palette1</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>7</hsizetype>
+ <vsizetype>7</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string></string>
+ </property>
+ <property name="toggleButton">
+ <bool>true</bool>
+ </property>
+ <property name="buttonGroupId">
+ <number>1</number>
+ </property>
+ </widget>
+ <widget class="QPushButton" row="2" column="0">
+ <property name="name">
+ <cstring>palette2</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>7</hsizetype>
+ <vsizetype>7</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string></string>
+ </property>
+ <property name="toggleButton">
+ <bool>true</bool>
+ </property>
+ <property name="buttonGroupId">
+ <number>2</number>
+ </property>
+ </widget>
+ <widget class="QPushButton" row="3" column="0">
+ <property name="name">
+ <cstring>palette3</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>7</hsizetype>
+ <vsizetype>7</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string></string>
+ </property>
+ <property name="toggleButton">
+ <bool>true</bool>
+ </property>
+ <property name="buttonGroupId">
+ <number>3</number>
+ </property>
+ </widget>
+ <widget class="QPushButton" row="4" column="0">
+ <property name="name">
+ <cstring>palette4</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>7</hsizetype>
+ <vsizetype>7</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string></string>
+ </property>
+ <property name="toggleButton">
+ <bool>true</bool>
+ </property>
+ <property name="buttonGroupId">
+ <number>4</number>
+ </property>
+ </widget>
+ <widget class="QPushButton" row="5" column="0">
+ <property name="name">
+ <cstring>palette5</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>7</hsizetype>
+ <vsizetype>7</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string></string>
+ </property>
+ <property name="toggleButton">
+ <bool>true</bool>
+ </property>
+ <property name="buttonGroupId">
+ <number>5</number>
+ </property>
+ </widget>
+ <widget class="QPushButton" row="0" column="1">
+ <property name="name">
+ <cstring>palette8</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>7</hsizetype>
+ <vsizetype>7</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string></string>
+ </property>
+ <property name="toggleButton">
+ <bool>true</bool>
+ </property>
+ <property name="buttonGroupId">
+ <number>8</number>
+ </property>
+ </widget>
+ <widget class="QPushButton" row="1" column="1">
+ <property name="name">
+ <cstring>palette9</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>7</hsizetype>
+ <vsizetype>7</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string></string>
+ </property>
+ <property name="toggleButton">
+ <bool>true</bool>
+ </property>
+ <property name="buttonGroupId">
+ <number>9</number>
+ </property>
+ </widget>
+ <widget class="QPushButton" row="2" column="1">
+ <property name="name">
+ <cstring>palette10</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>7</hsizetype>
+ <vsizetype>7</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="paletteBackgroundColor">
+ <color>
+ <red>238</red>
+ <green>222</green>
+ <blue>222</blue>
+ </color>
+ </property>
+ <property name="text">
+ <string></string>
+ </property>
+ <property name="toggleButton">
+ <bool>true</bool>
+ </property>
+ <property name="buttonGroupId">
+ <number>10</number>
+ </property>
+ </widget>
+ <widget class="QPushButton" row="3" column="1">
+ <property name="name">
+ <cstring>palette11</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>7</hsizetype>
+ <vsizetype>7</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string></string>
+ </property>
+ <property name="toggleButton">
+ <bool>true</bool>
+ </property>
+ <property name="buttonGroupId">
+ <number>11</number>
+ </property>
+ </widget>
+ <widget class="QPushButton" row="4" column="1">
+ <property name="name">
+ <cstring>palette12</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>7</hsizetype>
+ <vsizetype>7</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string></string>
+ </property>
+ <property name="toggleButton">
+ <bool>true</bool>
+ </property>
+ <property name="buttonGroupId">
+ <number>12</number>
+ </property>
+ </widget>
+ <widget class="QPushButton" row="5" column="1">
+ <property name="name">
+ <cstring>palette13</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>7</hsizetype>
+ <vsizetype>7</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string></string>
+ </property>
+ <property name="toggleButton">
+ <bool>true</bool>
+ </property>
+ <property name="buttonGroupId">
+ <number>13</number>
+ </property>
+ </widget>
+ <widget class="QPushButton" row="7" column="0">
+ <property name="name">
+ <cstring>palette7</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>7</hsizetype>
+ <vsizetype>7</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string></string>
+ </property>
+ <property name="toggleButton">
+ <bool>true</bool>
+ </property>
+ <property name="buttonGroupId">
+ <number>7</number>
+ </property>
+ </widget>
+ <widget class="QPushButton" row="6" column="0">
+ <property name="name">
+ <cstring>palette6</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>7</hsizetype>
+ <vsizetype>7</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string></string>
+ </property>
+ <property name="toggleButton">
+ <bool>true</bool>
+ </property>
+ <property name="buttonGroupId">
+ <number>6</number>
+ </property>
+ </widget>
+ <widget class="QPushButton" row="7" column="1">
+ <property name="name">
+ <cstring>palette15</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>7</hsizetype>
+ <vsizetype>7</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string></string>
+ </property>
+ <property name="toggleButton">
+ <bool>true</bool>
+ </property>
+ <property name="buttonGroupId">
+ <number>15</number>
+ </property>
+ </widget>
+ <widget class="QPushButton" row="6" column="1">
+ <property name="name">
+ <cstring>palette14</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>7</hsizetype>
+ <vsizetype>7</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string></string>
+ </property>
+ <property name="toggleButton">
+ <bool>true</bool>
+ </property>
+ <property name="buttonGroupId">
+ <number>14</number>
+ </property>
+ </widget>
+ </grid>
+ </widget>
+ <widget class="QPushButton" row="1" column="1">
+ <property name="name">
+ <cstring>addToPalette</cstring>
+ </property>
+ <property name="text">
+ <string>add to palette</string>
+ </property>
+ </widget>
+ <widget class="QFrame" row="0" column="2" rowspan="2" colspan="1">
+ <property name="name">
+ <cstring>colorframe</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>7</hsizetype>
+ <vsizetype>7</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="frameShape">
+ <enum>StyledPanel</enum>
+ </property>
+ <property name="frameShadow">
+ <enum>Sunken</enum>
+ </property>
+ </widget>
+ <widget class="QLayoutWidget" row="2" column="1" rowspan="1" colspan="2">
+ <property name="name">
+ <cstring>layout4</cstring>
+ </property>
+ <grid>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QSpinBox" row="0" column="1">
+ <property name="name">
+ <cstring>rval</cstring>
+ </property>
+ <property name="maxValue">
+ <number>255</number>
+ </property>
+ </widget>
+ <widget class="QSlider" row="3" column="2">
+ <property name="name">
+ <cstring>hslider</cstring>
+ </property>
+ <property name="maxValue">
+ <number>255</number>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ </widget>
+ <widget class="QLabel" row="2" column="0">
+ <property name="name">
+ <cstring>textLabel3_2</cstring>
+ </property>
+ <property name="text">
+ <string>B</string>
+ </property>
+ <property name="alignment">
+ <set>AlignCenter</set>
+ </property>
+ </widget>
+ <widget class="QLabel" row="4" column="0">
+ <property name="name">
+ <cstring>textLabel5_2</cstring>
+ </property>
+ <property name="text">
+ <string>S</string>
+ </property>
+ <property name="alignment">
+ <set>AlignCenter</set>
+ </property>
+ </widget>
+ <widget class="QLabel" row="3" column="0">
+ <property name="name">
+ <cstring>textLabel4_2</cstring>
+ </property>
+ <property name="text">
+ <string>H</string>
+ </property>
+ <property name="alignment">
+ <set>AlignCenter</set>
+ </property>
+ </widget>
+ <widget class="QSpinBox" row="2" column="1">
+ <property name="name">
+ <cstring>bval</cstring>
+ </property>
+ <property name="maxValue">
+ <number>255</number>
+ </property>
+ </widget>
+ <widget class="QSlider" row="5" column="2">
+ <property name="name">
+ <cstring>vslider</cstring>
+ </property>
+ <property name="maxValue">
+ <number>255</number>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ </widget>
+ <widget class="QLabel" row="5" column="0">
+ <property name="name">
+ <cstring>textLabel6_2</cstring>
+ </property>
+ <property name="text">
+ <string>V</string>
+ </property>
+ <property name="alignment">
+ <set>AlignCenter</set>
+ </property>
+ </widget>
+ <widget class="QLabel" row="1" column="0">
+ <property name="name">
+ <cstring>textLabel2_2</cstring>
+ </property>
+ <property name="text">
+ <string>G</string>
+ </property>
+ <property name="alignment">
+ <set>AlignCenter</set>
+ </property>
+ </widget>
+ <widget class="QSpinBox" row="4" column="1">
+ <property name="name">
+ <cstring>sval</cstring>
+ </property>
+ <property name="maxValue">
+ <number>255</number>
+ </property>
+ </widget>
+ <widget class="QSlider" row="1" column="2">
+ <property name="name">
+ <cstring>gslider</cstring>
+ </property>
+ <property name="maxValue">
+ <number>255</number>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ </widget>
+ <widget class="QSlider" row="4" column="2">
+ <property name="name">
+ <cstring>sslider</cstring>
+ </property>
+ <property name="maxValue">
+ <number>255</number>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ </widget>
+ <widget class="QSlider" row="2" column="2">
+ <property name="name">
+ <cstring>bslider</cstring>
+ </property>
+ <property name="maxValue">
+ <number>255</number>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ </widget>
+ <widget class="QSpinBox" row="1" column="1">
+ <property name="name">
+ <cstring>gval</cstring>
+ </property>
+ <property name="maxValue">
+ <number>255</number>
+ </property>
+ </widget>
+ <widget class="QSlider" row="0" column="2">
+ <property name="name">
+ <cstring>rslider</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>7</hsizetype>
+ <vsizetype>7</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minValue">
+ <number>0</number>
+ </property>
+ <property name="maxValue">
+ <number>255</number>
+ </property>
+ <property name="tracking">
+ <bool>true</bool>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="tickmarks">
+ <enum>NoMarks</enum>
+ </property>
+ </widget>
+ <widget class="QSpinBox" row="5" column="1">
+ <property name="name">
+ <cstring>vval</cstring>
+ </property>
+ <property name="maxValue">
+ <number>255</number>
+ </property>
+ </widget>
+ <widget class="QSpinBox" row="3" column="1">
+ <property name="name">
+ <cstring>hval</cstring>
+ </property>
+ <property name="maxValue">
+ <number>255</number>
+ </property>
+ </widget>
+ <widget class="QLabel" row="0" column="0">
+ <property name="name">
+ <cstring>textLabel1</cstring>
+ </property>
+ <property name="text">
+ <string>R</string>
+ </property>
+ <property name="alignment">
+ <set>AlignCenter</set>
+ </property>
+ </widget>
+ </grid>
+ </widget>
+ <widget class="QListView" row="0" column="0" rowspan="3" colspan="1">
+ <column>
+ <property name="text">
+ <string>Items</string>
+ </property>
+ <property name="clickable">
+ <bool>false</bool>
+ </property>
+ <property name="resizable">
+ <bool>false</bool>
+ </property>
+ </column>
+ <property name="name">
+ <cstring>itemList</cstring>
+ </property>
+ <property name="allColumnsShowFocus">
+ <bool>true</bool>
+ </property>
+ <property name="rootIsDecorated">
+ <bool>true</bool>
+ </property>
+ <property name="resizeMode">
+ <enum>AllColumns</enum>
+ </property>
+ </widget>
+ </grid>
+ <spacer>
+ <property name="name">
+ <cstring>botColorSpacer</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Vertical</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>20</width>
+ <height>40</height>
+ </size>
+ </property>
+ </spacer>
+ </vbox>
+ </widget>
+ <widget class="QWidget">
+ <property name="name">
+ <cstring>tab</cstring>
+ </property>
+ <attribute name="title">
+ <string>Style/Fonts</string>
+ </attribute>
+ <vbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QGroupBox">
+ <property name="name">
+ <cstring>GroupBox18</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>7</hsizetype>
+ <vsizetype>5</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="title">
+ <string>QT Theme</string>
+ </property>
+ <vbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>11</number>
+ </property>
+ <property name="spacing">
+ <number>6</number>
+ </property>
+ <widget class="QLayoutWidget">
+ <property name="name">
+ <cstring>layout4</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QComboBox">
+ <item>
+ <property name="text">
+ <string>Windows</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>MusE</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Metal</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Norwegian Wood</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Platinum</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>CDE</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Motif</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Motif Plus</string>
+ </property>
+ </item>
+ <property name="name">
+ <cstring>themeComboBox</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>1</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ </widget>
+ <spacer>
+ <property name="name">
+ <cstring>Spacer2</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>190</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </hbox>
+ </widget>
+ <spacer>
+ <property name="name">
+ <cstring>spacer3</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Vertical</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>20</width>
+ <height>40</height>
+ </size>
+ </property>
+ </spacer>
+ </vbox>
+ </widget>
+ <widget class="QGroupBox">
+ <property name="name">
+ <cstring>GroupBox6</cstring>
+ </property>
+ <property name="title">
+ <string>Fonts</string>
+ </property>
+ <grid>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>11</number>
+ </property>
+ <property name="spacing">
+ <number>6</number>
+ </property>
+ <widget class="QLabel" row="0" column="1">
+ <property name="name">
+ <cstring>textLabel2</cstring>
+ </property>
+ <property name="text">
+ <string>Family</string>
+ </property>
+ </widget>
+ <widget class="QLabel" row="0" column="2">
+ <property name="name">
+ <cstring>TextLabel1_1</cstring>
+ </property>
+ <property name="text">
+ <string>Size</string>
+ </property>
+ </widget>
+ <widget class="QLabel" row="2" column="0">
+ <property name="name">
+ <cstring>textLabel4</cstring>
+ </property>
+ <property name="text">
+ <string>Font 1</string>
+ </property>
+ </widget>
+ <widget class="QLabel" row="3" column="0">
+ <property name="name">
+ <cstring>textLabel5</cstring>
+ </property>
+ <property name="text">
+ <string>Font 2</string>
+ </property>
+ </widget>
+ <widget class="QLabel" row="4" column="0">
+ <property name="name">
+ <cstring>textLabel6</cstring>
+ </property>
+ <property name="text">
+ <string>Font 3</string>
+ </property>
+ </widget>
+ <widget class="QLineEdit" row="1" column="1">
+ <property name="name">
+ <cstring>fontName0</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>7</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ </widget>
+ <widget class="QLineEdit" row="2" column="1">
+ <property name="name">
+ <cstring>fontName1</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>7</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ </widget>
+ <widget class="QLineEdit" row="3" column="1">
+ <property name="name">
+ <cstring>fontName2</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>7</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ </widget>
+ <widget class="QLineEdit" row="4" column="1">
+ <property name="name">
+ <cstring>fontName3</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>7</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ </widget>
+ <widget class="QLabel" row="1" column="0">
+ <property name="name">
+ <cstring>textLabel3</cstring>
+ </property>
+ <property name="text">
+ <string>Font 0</string>
+ </property>
+ </widget>
+ <widget class="QSpinBox" row="1" column="2">
+ <property name="name">
+ <cstring>fontSize0</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>4</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ </widget>
+ <widget class="QSpinBox" row="2" column="2">
+ <property name="name">
+ <cstring>fontSize1</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>4</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ </widget>
+ <widget class="QSpinBox" row="3" column="2">
+ <property name="name">
+ <cstring>fontSize2</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>4</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ </widget>
+ <widget class="QSpinBox" row="4" column="2">
+ <property name="name">
+ <cstring>fontSize3</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>4</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ </widget>
+ <widget class="QCheckBox" row="2" column="3">
+ <property name="name">
+ <cstring>bold1</cstring>
+ </property>
+ <property name="text">
+ <string>Bold</string>
+ </property>
+ </widget>
+ <widget class="QCheckBox" row="3" column="3">
+ <property name="name">
+ <cstring>bold2</cstring>
+ </property>
+ <property name="text">
+ <string>Bold</string>
+ </property>
+ </widget>
+ <widget class="QCheckBox" row="4" column="3">
+ <property name="name">
+ <cstring>bold3</cstring>
+ </property>
+ <property name="text">
+ <string>Bold</string>
+ </property>
+ </widget>
+ <widget class="QCheckBox" row="1" column="3">
+ <property name="name">
+ <cstring>bold0</cstring>
+ </property>
+ <property name="text">
+ <string>Bold</string>
+ </property>
+ </widget>
+ <widget class="QCheckBox" row="3" column="4">
+ <property name="name">
+ <cstring>italic2</cstring>
+ </property>
+ <property name="text">
+ <string>Italic</string>
+ </property>
+ </widget>
+ <widget class="QCheckBox" row="4" column="4">
+ <property name="name">
+ <cstring>italic3</cstring>
+ </property>
+ <property name="text">
+ <string>Italic</string>
+ </property>
+ </widget>
+ <widget class="QCheckBox" row="2" column="4">
+ <property name="name">
+ <cstring>italic1</cstring>
+ </property>
+ <property name="text">
+ <string>Italic</string>
+ </property>
+ </widget>
+ <widget class="QCheckBox" row="1" column="4">
+ <property name="name">
+ <cstring>italic0</cstring>
+ </property>
+ <property name="text">
+ <string>Italic</string>
+ </property>
+ </widget>
+ <widget class="QToolButton" row="1" column="5">
+ <property name="name">
+ <cstring>fontBrowse0</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>4</hsizetype>
+ <vsizetype>1</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>...</string>
+ </property>
+ </widget>
+ <widget class="QToolButton" row="2" column="5">
+ <property name="name">
+ <cstring>fontBrowse1</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>4</hsizetype>
+ <vsizetype>1</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>...</string>
+ </property>
+ </widget>
+ <widget class="QToolButton" row="3" column="5">
+ <property name="name">
+ <cstring>fontBrowse2</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>4</hsizetype>
+ <vsizetype>1</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>...</string>
+ </property>
+ </widget>
+ <widget class="QToolButton" row="4" column="5">
+ <property name="name">
+ <cstring>fontBrowse3</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>4</hsizetype>
+ <vsizetype>1</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>...</string>
+ </property>
+ </widget>
+ <widget class="QLabel" row="5" column="0">
+ <property name="name">
+ <cstring>textLabel7</cstring>
+ </property>
+ <property name="text">
+ <string>Font 4</string>
+ </property>
+ </widget>
+ <widget class="QLineEdit" row="5" column="1">
+ <property name="name">
+ <cstring>fontName4</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>7</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ </widget>
+ <widget class="QLabel" row="6" column="0">
+ <property name="name">
+ <cstring>textLabel7_2</cstring>
+ </property>
+ <property name="text">
+ <string>Font 5</string>
+ </property>
+ </widget>
+ <widget class="QLineEdit" row="6" column="1">
+ <property name="name">
+ <cstring>fontName5</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>7</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ </widget>
+ <widget class="QLabel" row="7" column="0">
+ <property name="name">
+ <cstring>textLabel7_3</cstring>
+ </property>
+ <property name="text">
+ <string>Font 6</string>
+ </property>
+ </widget>
+ <widget class="QLineEdit" row="7" column="1">
+ <property name="name">
+ <cstring>fontName6</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>7</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ </widget>
+ <widget class="QSpinBox" row="7" column="2">
+ <property name="name">
+ <cstring>fontSize6</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>4</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ </widget>
+ <widget class="QCheckBox" row="7" column="3">
+ <property name="name">
+ <cstring>bold6</cstring>
+ </property>
+ <property name="text">
+ <string>Bold</string>
+ </property>
+ </widget>
+ <widget class="QCheckBox" row="7" column="4">
+ <property name="name">
+ <cstring>italic6</cstring>
+ </property>
+ <property name="text">
+ <string>Italic</string>
+ </property>
+ </widget>
+ <widget class="QToolButton" row="7" column="5">
+ <property name="name">
+ <cstring>fontBrowse6</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>4</hsizetype>
+ <vsizetype>1</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>...</string>
+ </property>
+ </widget>
+ <widget class="QSpinBox" row="5" column="2">
+ <property name="name">
+ <cstring>fontSize4</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>4</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ </widget>
+ <widget class="QSpinBox" row="6" column="2">
+ <property name="name">
+ <cstring>fontSize5</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>4</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ </widget>
+ <widget class="QCheckBox" row="5" column="3">
+ <property name="name">
+ <cstring>bold4</cstring>
+ </property>
+ <property name="text">
+ <string>Bold</string>
+ </property>
+ </widget>
+ <widget class="QCheckBox" row="6" column="3">
+ <property name="name">
+ <cstring>bold5</cstring>
+ </property>
+ <property name="text">
+ <string>Bold</string>
+ </property>
+ </widget>
+ <widget class="QCheckBox" row="5" column="4">
+ <property name="name">
+ <cstring>italic4</cstring>
+ </property>
+ <property name="text">
+ <string>Italic</string>
+ </property>
+ </widget>
+ <widget class="QCheckBox" row="6" column="4">
+ <property name="name">
+ <cstring>italic5</cstring>
+ </property>
+ <property name="text">
+ <string>Italic</string>
+ </property>
+ </widget>
+ <widget class="QToolButton" row="5" column="5">
+ <property name="name">
+ <cstring>fontBrowse4</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>4</hsizetype>
+ <vsizetype>1</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>...</string>
+ </property>
+ </widget>
+ <widget class="QToolButton" row="6" column="5">
+ <property name="name">
+ <cstring>fontBrowse5</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>4</hsizetype>
+ <vsizetype>1</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>...</string>
+ </property>
+ </widget>
+ </grid>
+ </widget>
+ </vbox>
+ </widget>
+ </widget>
+ <widget class="QLayoutWidget">
+ <property name="name">
+ <cstring>Layout2</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>0</number>
+ </property>
+ <property name="spacing">
+ <number>6</number>
+ </property>
+ <spacer>
+ <property name="name">
+ <cstring>Spacer1</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>20</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ <widget class="QPushButton">
+ <property name="name">
+ <cstring>applyButton</cstring>
+ </property>
+ <property name="text">
+ <string>Apply</string>
+ </property>
+ </widget>
+ <widget class="QPushButton">
+ <property name="name">
+ <cstring>okButton</cstring>
+ </property>
+ <property name="text">
+ <string>Ok</string>
+ </property>
+ <property name="default">
+ <bool>true</bool>
+ </property>
+ </widget>
+ <widget class="QPushButton">
+ <property name="name">
+ <cstring>cancelButton</cstring>
+ </property>
+ <property name="text">
+ <string>Cancel</string>
+ </property>
+ </widget>
+ </hbox>
+ </widget>
+ </vbox>
+</widget>
+<connections>
+ <connection>
+ <sender>rslider</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>rval</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>gslider</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>gval</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>bslider</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>bval</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>hslider</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>hval</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>sslider</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>sval</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>vslider</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>vval</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>rval</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>rslider</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>gval</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>gslider</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>bval</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>bslider</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>hval</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>hslider</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>sval</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>sslider</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>vval</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>vslider</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+</connections>
+<tabstops>
+ <tabstop>TabWidget2</tabstop>
+ <tabstop>itemList</tabstop>
+ <tabstop>palette0</tabstop>
+ <tabstop>palette1</tabstop>
+ <tabstop>palette2</tabstop>
+ <tabstop>palette3</tabstop>
+ <tabstop>palette4</tabstop>
+ <tabstop>palette5</tabstop>
+ <tabstop>palette6</tabstop>
+ <tabstop>palette7</tabstop>
+ <tabstop>palette8</tabstop>
+ <tabstop>palette9</tabstop>
+ <tabstop>palette10</tabstop>
+ <tabstop>palette11</tabstop>
+ <tabstop>palette12</tabstop>
+ <tabstop>palette13</tabstop>
+ <tabstop>palette14</tabstop>
+ <tabstop>palette15</tabstop>
+ <tabstop>addToPalette</tabstop>
+ <tabstop>rval</tabstop>
+ <tabstop>rslider</tabstop>
+ <tabstop>gval</tabstop>
+ <tabstop>gslider</tabstop>
+ <tabstop>bval</tabstop>
+ <tabstop>bslider</tabstop>
+ <tabstop>hval</tabstop>
+ <tabstop>hslider</tabstop>
+ <tabstop>sval</tabstop>
+ <tabstop>sslider</tabstop>
+ <tabstop>vval</tabstop>
+ <tabstop>vslider</tabstop>
+ <tabstop>applyButton</tabstop>
+ <tabstop>okButton</tabstop>
+ <tabstop>cancelButton</tabstop>
+ <tabstop>partShownames</tabstop>
+ <tabstop>partShowevents</tabstop>
+ <tabstop>partShowCakes</tabstop>
+ <tabstop>eventNoteon</tabstop>
+ <tabstop>eventPolypressure</tabstop>
+ <tabstop>eventController</tabstop>
+ <tabstop>eventAftertouch</tabstop>
+ <tabstop>eventPitchbend</tabstop>
+ <tabstop>eventProgramchange</tabstop>
+ <tabstop>eventSpecial</tabstop>
+ <tabstop>selectBgButton</tabstop>
+ <tabstop>arrGrid</tabstop>
+ <tabstop>themeComboBox</tabstop>
+ <tabstop>fontName0</tabstop>
+ <tabstop>fontName1</tabstop>
+ <tabstop>fontName2</tabstop>
+ <tabstop>fontName3</tabstop>
+ <tabstop>fontSize0</tabstop>
+ <tabstop>fontSize1</tabstop>
+ <tabstop>fontSize2</tabstop>
+ <tabstop>fontSize3</tabstop>
+ <tabstop>bold1</tabstop>
+ <tabstop>bold2</tabstop>
+ <tabstop>bold3</tabstop>
+ <tabstop>bold0</tabstop>
+ <tabstop>italic2</tabstop>
+ <tabstop>italic3</tabstop>
+ <tabstop>italic1</tabstop>
+ <tabstop>italic0</tabstop>
+ <tabstop>fontName4</tabstop>
+ <tabstop>fontName5</tabstop>
+ <tabstop>fontSize4</tabstop>
+ <tabstop>fontSize5</tabstop>
+ <tabstop>bold4</tabstop>
+ <tabstop>bold5</tabstop>
+ <tabstop>italic4</tabstop>
+ <tabstop>italic5</tabstop>
+</tabstops>
+<slots>
+ <slot>new_slot()</slot>
+</slots>
+<layoutdefaults spacing="6" margin="11"/>
+</UI>
diff --git a/muse2/muse/widgets/bigtime.cpp b/muse2/muse/widgets/bigtime.cpp
new file mode 100644
index 00000000..16cfe071
--- /dev/null
+++ b/muse2/muse/widgets/bigtime.cpp
@@ -0,0 +1,442 @@
+#include <stdio.h>
+#include <qpalette.h>
+#include <qlabel.h>
+#include <qcolor.h>
+#include <qlayout.h>
+//Added by qt3to4:
+#include <QCloseEvent>
+#include <QResizeEvent>
+#include <values.h>
+
+#include <qtooltip.h>
+#include "globals.h"
+#include "bigtime.h"
+#include "song.h"
+#include "app.h"
+#include "gconfig.h"
+
+extern int mtcType;
+
+//
+// the bigtime widget
+// display is split into several parts to avoid flickering.
+//
+
+//---------------------------------------------------------
+// BigTime
+//---------------------------------------------------------
+
+BigTime::BigTime(QWidget* parent)
+ : QWidget(parent, 0, Qt::WType_TopLevel | Qt::WStyle_StaysOnTop)
+ {
+
+ tickmode = true;
+ dwin = new QWidget(this, "bigtime-dwin", Qt::WStyle_StaysOnTop);
+ dwin->setSizePolicy(QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding));
+ fmtButton = new QCheckBox(QString(""), this);
+ fmtButton->resize(18,18);
+ fmtButton->setChecked(true);
+ QToolTip::add(fmtButton, tr("format display"));
+ barLabel = new QLabel(dwin);
+ beatLabel = new QLabel(dwin);
+ tickLabel = new QLabel(dwin);
+ //hourLabel = new QLabel(dwin);
+ minLabel = new QLabel(dwin);
+ secLabel = new QLabel(dwin);
+ frameLabel = new QLabel(dwin);
+ subFrameLabel = new QLabel(dwin);
+ sep1 = new QLabel(QString("."), dwin);
+ sep2 = new QLabel(QString("."), dwin);
+ sep3 = new QLabel(QString(":"), dwin);
+ sep4 = new QLabel(QString(":"), dwin);
+ sep5 = new QLabel(QString(":"), dwin);
+ absTickLabel = new QLabel(dwin);
+ absFrameLabel = new QLabel(dwin);
+ QToolTip::add(barLabel, tr("bar"));
+ QToolTip::add(beatLabel, tr("beat"));
+ QToolTip::add(tickLabel, tr("tick"));
+ //QToolTip::add(hourLabel, tr("hour"));
+ QToolTip::add(minLabel, tr("minute"));
+ QToolTip::add(secLabel, tr("second"));
+ QToolTip::add(frameLabel, tr("frame"));
+ QToolTip::add(subFrameLabel, tr("subframe"));
+ QToolTip::add(absTickLabel, tr("tick"));
+ QToolTip::add(absFrameLabel, tr("frame"));
+ fmtButtonToggled(true);
+ connect(fmtButton, SIGNAL(toggled(bool)), SLOT(fmtButtonToggled(bool)));
+ //oldbar = oldbeat = oldtick = oldhour = oldmin = oldsec = oldframe = -1;
+ oldbar = oldbeat = oldtick = oldmin = oldsec = oldframe = oldsubframe = -1;
+ oldAbsTick = oldAbsFrame = -1;
+ setString(MAXINT);
+
+ configChanged();
+
+ QFont f(QString("Courier"));
+ f.setPixelSize(10);
+
+ dwin->setFont(f);
+ setCaption(tr("MusE: Bigtime"));
+ }
+
+
+//---------------------------------------------------------
+// fmtButtonToggled
+//---------------------------------------------------------
+
+void BigTime::fmtButtonToggled(bool v)
+{
+ if(v)
+ {
+ tickmode = true;
+
+ barLabel->setEnabled(true);
+ beatLabel->setEnabled(true);
+ tickLabel->setEnabled(true);
+ //hourLabel->setEnabled(true);
+ minLabel->setEnabled(true);
+ secLabel->setEnabled(true);
+ frameLabel->setEnabled(true);
+ subFrameLabel->setEnabled(true);
+ sep1->setEnabled(true);
+ sep2->setEnabled(true);
+ sep3->setEnabled(true);
+ sep4->setEnabled(true);
+ sep5->setEnabled(true);
+ absTickLabel->setEnabled(false);
+ absFrameLabel->setEnabled(false);
+
+ barLabel->show();
+ beatLabel->show();
+ tickLabel->show();
+ //hourLabel->show();
+ minLabel->show();
+ secLabel->show();
+ frameLabel->show();
+ subFrameLabel->show();
+ sep1->show();
+ sep2->show();
+ sep3->show();
+ sep4->show();
+ sep5->show();
+ absTickLabel->hide();
+ absFrameLabel->hide();
+ }
+ else
+ {
+ tickmode = false;
+
+ barLabel->setEnabled(false);
+ beatLabel->setEnabled(false);
+ tickLabel->setEnabled(false);
+ //hourLabel->setEnabled(false);
+ minLabel->setEnabled(false);
+ secLabel->setEnabled(false);
+ frameLabel->setEnabled(false);
+ subFrameLabel->setEnabled(false);
+ sep1->setEnabled(false);
+ sep2->setEnabled(false);
+ sep3->setEnabled(false);
+ sep4->setEnabled(false);
+ sep5->setEnabled(false);
+ absTickLabel->setEnabled(true);
+ absFrameLabel->setEnabled(true);
+
+ barLabel->hide();
+ beatLabel->hide();
+ tickLabel->hide();
+ //hourLabel->hide();
+ minLabel->hide();
+ secLabel->hide();
+ frameLabel->hide();
+ subFrameLabel->hide();
+ sep1->hide();
+ sep2->hide();
+ sep3->hide();
+ sep4->hide();
+ sep5->hide();
+ absTickLabel->show();
+ absFrameLabel->show();
+ }
+}
+
+//---------------------------------------------------------
+// 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(unsigned v)
+ {
+ if (v == MAXINT) {
+ barLabel->setText(QString("----"));
+ beatLabel->setText(QString("--"));
+ tickLabel->setText(QString("---"));
+ //hourLabel->setText(QString("--"));
+ //minLabel->setText(QString("--"));
+ minLabel->setText(QString("---"));
+ secLabel->setText(QString("--"));
+ frameLabel->setText(QString("--"));
+ subFrameLabel->setText(QString("--"));
+
+ absTickLabel->setText(QString("----------"));
+ absFrameLabel->setText(QString("----------"));
+ oldAbsTick = oldAbsFrame = -1;
+ //oldbar = oldbeat = oldtick = oldhour = oldmin = oldsec = oldframe = -1;
+ oldbar = oldbeat = oldtick = oldmin = oldsec = oldframe = oldsubframe = -1;
+ return true;
+ }
+
+ unsigned absFrame = tempomap.tick2frame(v);
+ int bar, beat;
+ unsigned tick;
+ sigmap.tickValues(v, &bar, &beat, &tick);
+ double time = double(absFrame)/double(sampleRate);
+ //int hour = int(time) / 3600;
+ //int min = (int(time) / 60) % 60;
+ 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;
+
+ if(oldAbsTick != v) {
+ s.sprintf("%010d", v);
+ absTickLabel->setText(s);
+ oldAbsTick = v;
+ }
+ if(oldAbsFrame != absFrame) {
+ s.sprintf("%010d", absFrame);
+ absFrameLabel->setText(s);
+ oldAbsFrame = absFrame;
+ }
+ 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);
+ s.sprintf("%03d", 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;
+ }
+
+ if(oldsubframe != subframe) {
+ s.sprintf("%02u", subframe);
+ subFrameLabel->setText(s);
+ oldsubframe = subframe;
+ }
+
+ return false;
+ }
+
+//---------------------------------------------------------
+// setPos
+//---------------------------------------------------------
+
+void BigTime::setPos(int idx, unsigned v, bool)
+ {
+ if (idx == 0)
+ setString(v);
+ }
+
+//---------------------------------------------------------
+// resizeEvent
+//---------------------------------------------------------
+
+void BigTime::resizeEvent(QResizeEvent *ev)
+ {
+ dwin->resize(ev->size());
+ QFont f = dwin->font();
+ QFontMetrics fm(f);
+ int fs = f.pixelSize();
+ int hspace = 20;
+ //int tw = fm.width(QString("00:00:00:00"));
+ int tw = fm.width(QString("000: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);
+
+
+ dwin->setFont(f);
+ int digitWidth = dwin->fontMetrics().width(QString("0"));
+ int vspace = (ev->size().height() - (fs*2)) / 3;
+ int tickY = vspace;
+
+ int timeY = vspace*2 + fs;
+ int absTickY = tickY;
+ int absFrameY = timeY;
+ 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);
+ minLabel->resize(digitWidth*3, fs);
+ secLabel->resize(digitWidth*2, fs);
+ frameLabel->resize(digitWidth*2, fs);
+ subFrameLabel->resize(digitWidth*2, fs);
+
+ absTickLabel->resize(digitWidth*10, fs);
+ absFrameLabel->resize(digitWidth*10, 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);
+ minLabel->move( hspace + (digitWidth*0), timeY);
+ sep3->move( hspace + (digitWidth*3), timeY);
+ secLabel->move( hspace + (digitWidth*4), timeY);
+ sep4->move( hspace + (digitWidth*6), timeY);
+ frameLabel->move( hspace + (digitWidth*7), timeY);
+ sep5->move( hspace + (digitWidth*9), timeY);
+ subFrameLabel->move( hspace + (digitWidth*10), timeY);
+
+ absTickLabel->move( hspace + (digitWidth*0), absTickY);
+ absFrameLabel->move( hspace + (digitWidth*0), absFrameY);
+ }
+
+//---------------------------------------------------------
+// setForegroundColor
+//---------------------------------------------------------
+
+void BigTime::setFgColor(QColor c)
+ {
+ QColorGroup cg = palette().active();
+ cg.setColor(QColorGroup::Foreground, c);
+ QPalette newpalette(cg, cg, cg);
+ setPalette(newpalette);
+
+ barLabel->setPalette(newpalette);
+ beatLabel->setPalette(newpalette);
+ tickLabel->setPalette(newpalette);
+ //hourLabel->setPalette(newpalette);
+ minLabel->setPalette(newpalette);
+ secLabel->setPalette(newpalette);
+ frameLabel->setPalette(newpalette);
+ subFrameLabel->setPalette(newpalette);
+
+ absTickLabel->setPalette(newpalette);
+ absFrameLabel->setPalette(newpalette);
+ sep1->setPalette(newpalette);
+ sep2->setPalette(newpalette);
+ sep3->setPalette(newpalette);
+ sep4->setPalette(newpalette);
+ sep5->setPalette(newpalette);
+ }
+
+//---------------------------------------------------------
+// setBackgroundColor
+//---------------------------------------------------------
+
+void BigTime::setBgColor(QColor c)
+ {
+ QColorGroup cg = palette().active();
+ cg.setColor(QColorGroup::Background, c);
+ QPalette newpalette(cg, cg, cg);
+ setPalette(newpalette);
+
+ barLabel->setPalette(newpalette);
+ beatLabel->setPalette(newpalette);
+ tickLabel->setPalette(newpalette);
+ //hourLabel->setPalette(newpalette);
+ minLabel->setPalette(newpalette);
+ secLabel->setPalette(newpalette);
+ frameLabel->setPalette(newpalette);
+ subFrameLabel->setPalette(newpalette);
+
+ absTickLabel->setPalette(newpalette);
+ absFrameLabel->setPalette(newpalette);
+ sep1->setPalette(newpalette);
+ sep2->setPalette(newpalette);
+ sep3->setPalette(newpalette);
+ sep4->setPalette(newpalette);
+ sep5->setPalette(newpalette);
+
+ setBackgroundColor(c);
+ }
+
diff --git a/muse2/muse/widgets/bigtime.h b/muse2/muse/widgets/bigtime.h
new file mode 100644
index 00000000..5e173cb0
--- /dev/null
+++ b/muse2/muse/widgets/bigtime.h
@@ -0,0 +1,55 @@
+#ifndef __BIGTIME_H__
+#define __BIGTIME_H__
+
+#include <qwidget.h>
+#include <qlabel.h>
+
+#include <qcheckbox.h>
+//Added by qt3to4:
+#include <QResizeEvent>
+#include <QCloseEvent>
+class MusE;
+
+//---------------------------------------------------------
+// BigTime
+//---------------------------------------------------------
+
+class BigTime : public QWidget {
+ bool tickmode;
+ MusE* seq;
+ Q_OBJECT
+
+ bool setString(unsigned);
+
+ QWidget *dwin;
+ QCheckBox *fmtButton;
+ QLabel *absTickLabel;
+ QLabel *absFrameLabel;
+ QLabel *barLabel, *beatLabel, *tickLabel,
+ //*hourLabel, *minLabel, *secLabel, *frameLabel,
+ *minLabel, *secLabel, *frameLabel, *subFrameLabel,
+ *sep1, *sep2, *sep3, *sep4, *sep5;
+
+ //int oldbar, oldbeat, oldhour, oldmin, oldsec, oldframe;
+ int oldbar, oldbeat, oldmin, oldsec, oldframe, oldsubframe;
+ unsigned oldtick;
+ unsigned oldAbsTick, oldAbsFrame;
+ void setFgColor(QColor c);
+ void setBgColor(QColor c);
+
+ protected:
+ virtual void resizeEvent(QResizeEvent*);
+ virtual void closeEvent(QCloseEvent*);
+
+ public slots:
+ void setPos(int, unsigned, bool);
+ void configChanged();
+ void fmtButtonToggled(bool);
+ signals:
+ void closed();
+
+ public:
+ BigTime(QWidget* parent);
+ };
+
+#endif
diff --git a/muse2/muse/widgets/canvas.cpp b/muse2/muse/widgets/canvas.cpp
new file mode 100644
index 00000000..ef5ee0de
--- /dev/null
+++ b/muse2/muse/widgets/canvas.cpp
@@ -0,0 +1,1405 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: canvas.cpp,v 1.10.2.17 2009/05/03 04:14:01 terminator356 Exp $
+// (C) Copyright 1999 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include <stdio.h>
+
+#include "canvas.h"
+#include <qapplication.h>
+#include <qpainter.h>
+#include <q3popupmenu.h>
+#include <qcursor.h>
+#include <qtimer.h>
+//Added by qt3to4:
+#include <QKeyEvent>
+#include <QMouseEvent>
+#include <QWheelEvent>
+
+#include "song.h"
+#include "event.h"
+#include "citem.h"
+#include "icons.h"
+#include "../marker/marker.h"
+#include "part.h"
+
+#define ABS(x) ((x) < 0) ? -(x) : (x)
+
+//---------------------------------------------------------
+// Canvas
+//---------------------------------------------------------
+
+Canvas::Canvas(QWidget* parent, int sx, int sy, const char* name)
+ : View(parent, sx, sy, name)
+ {
+ canvasTools = 0;
+ itemPopupMenu = 0;
+
+ canScrollLeft = true;
+ canScrollRight = true;
+ canScrollUp = true;
+ canScrollDown = true;
+ hscrollDir = HSCROLL_NONE;
+ vscrollDir = VSCROLL_NONE;
+ scrollTimer=NULL;
+
+ scrollSpeed=10; // hardcoded scroll jump
+
+ drag = DRAG_OFF;
+ _tool = PointerTool;
+ pos[0] = song->cpos();
+ pos[1] = song->lpos();
+ pos[2] = song->rpos();
+ curPart = NULL;
+ curPartId = -1;
+ curItem = NULL;
+ connect(song, SIGNAL(posChanged(int, unsigned, bool)), this, SLOT(setPos(int, unsigned, bool)));
+ }
+
+//---------------------------------------------------------
+// setPos
+// set one of three markers
+// idx - 0-cpos 1-lpos 2-rpos
+// flag - emit followEvent()
+//---------------------------------------------------------
+
+void Canvas::setPos(int idx, unsigned val, bool adjustScrollbar)
+ {
+ //if (pos[idx] == val) // Seems to be some refresh problems here, pos[idx] might be val but the gui not updated.
+ // return; // skipping this return forces update even if values match. Matching values only seem
+ // to occur when initializing
+ int opos = mapx(pos[idx]);
+ int npos = mapx(val);
+
+ if (adjustScrollbar && idx == 0) {
+ switch (song->follow()) {
+ case Song::NO:
+ break;
+ case Song::JUMP:
+ if (npos >= width()) {
+ int ppos = val - xorg - rmapxDev(width()/8);
+ if (ppos < 0)
+ ppos = 0;
+ emit followEvent(ppos);
+ opos = mapx(pos[idx]);
+ npos = mapx(val);
+ }
+ else if (npos < 0) {
+ int ppos = val - xorg - rmapxDev(width()*3/4);
+ if (ppos < 0)
+ ppos = 0;
+ emit followEvent(ppos);
+ opos = mapx(pos[idx]);
+ npos = mapx(val);
+ }
+ break;
+ case Song::CONTINUOUS:
+ if (npos > (width()/2)) {
+ int ppos = pos[idx] - xorg - rmapxDev(width()/2);
+ if (ppos < 0)
+ ppos = 0;
+ emit followEvent(ppos);
+ opos = mapx(pos[idx]);
+ npos = mapx(val);
+ }
+ else if (npos < (width()/2)) {
+ int ppos = pos[idx] - xorg - rmapxDev(width()/2);
+ if (ppos < 0)
+ ppos = 0;
+ emit followEvent(ppos);
+ opos = mapx(pos[idx]);
+ npos = mapx(val);
+ }
+ break;
+ }
+ }
+
+ int x;
+ int w = 1;
+ if (opos > npos) {
+ w += opos - npos;
+ x = npos;
+ }
+ else {
+ w += npos - opos;
+ x = opos;
+ }
+ pos[idx] = val;
+ redraw(QRect(x-1, 0, w+2, height()));
+ }
+
+//---------------------------------------------------------
+// draw
+//---------------------------------------------------------
+
+void Canvas::draw(QPainter& p, const QRect& rect)
+ {
+// printf("draw canvas %x virt %d\n", this, virt());
+
+ int x = rect.x();
+ int y = rect.y();
+ int w = rect.width();
+ int h = rect.height();
+ int x2 = x + w;
+
+ if (virt()) {
+ drawCanvas(p, rect);
+
+ //---------------------------------------------------
+ // draw Canvas Items
+ //---------------------------------------------------
+
+ iCItem to(items.lower_bound(x2));
+
+ // Draw items from other parts behind all others.
+ // Only for items with events (not arranger parts).
+ for(iCItem i = items.begin(); i != to; ++i)
+ {
+ CItem* ci = i->second;
+ if(!ci->event().empty() && ci->part() != curPart)
+ {
+ drawItem(p, ci, rect);
+ }
+ }
+
+ for (iCItem i = items.begin(); i != to; ++i)
+ {
+ CItem* ci = i->second;
+ // Draw unselected parts behind selected.
+ if(!ci->isSelected() && !ci->isMoving() && (ci->event().empty() || ci->part() == curPart))
+ {
+ drawItem(p, ci, rect);
+ }
+ }
+
+ // Draw selected parts in front of unselected.
+ for (iCItem i = items.begin(); i != to; ++i)
+ {
+ CItem* ci = i->second;
+ if(ci->isSelected() && !ci->isMoving() && (ci->event().empty() || ci->part() == curPart))
+ {
+ drawItem(p, ci, rect);
+ }
+ }
+ to = moving.lower_bound(x2);
+ for (iCItem i = moving.begin(); i != to; ++i)
+ {
+ drawItem(p, i->second, rect);
+ }
+ }
+ else {
+ p.save();
+ setPainter(p);
+
+ if (xmag <= 0) {
+ x -= 1;
+ w += 2;
+ x = (x + xpos + rmapx(xorg)) * (-xmag);
+ w = w * (-xmag);
+ }
+ else {
+ x = (x + xpos + rmapx(xorg)) / xmag;
+ w = (w + xmag - 1) / xmag;
+ x -= 1;
+ w += 2;
+ }
+ if (ymag <= 0) {
+ y -= 1;
+ h += 2;
+ y = (y + ypos + rmapy(yorg)) * (-ymag);
+ h = h * (-ymag);
+ }
+ else {
+ y = (rect.y() + ypos + rmapy(yorg))/ymag;
+ h = (rect.height()+ymag-1)/ymag;
+ y -= 1;
+ h += 2;
+ }
+
+ if (x < 0)
+ x = 0;
+ if (y < 0)
+ y = 0;
+ x2 = x + w;
+
+ drawCanvas(p, QRect(x, y, w, h));
+ p.restore();
+
+ //---------------------------------------------------
+ // draw Canvas Items
+ //---------------------------------------------------
+
+ // Draw items from other parts behind all others.
+ // Only for items with events (not arranger parts).
+ for(iCItem i = items.begin(); i != items.end(); ++i)
+ {
+ CItem* ci = i->second;
+ if(!ci->event().empty() && ci->part() != curPart)
+ {
+ drawItem(p, ci, rect);
+ }
+ }
+
+ for (iCItem i = items.begin(); i != items.end(); ++i) {
+ CItem* ci = i->second;
+ // Draw unselected parts behind selected.
+ if(!ci->isSelected() && !ci->isMoving() && (ci->event().empty() || ci->part() == curPart))
+ {
+ drawItem(p, ci, rect);
+ }
+ }
+
+ // Draw selected parts in front of unselected.
+ for (iCItem i = items.begin(); i != items.end(); ++i) {
+ CItem* ci = i->second;
+ if(ci->isSelected() && !ci->isMoving() && (ci->event().empty() || ci->part() == curPart))
+ {
+ drawItem(p, ci, rect);
+ }
+ }
+ for (iCItem i = moving.begin(); i != moving.end(); ++i)
+ {
+ drawItem(p, i->second, rect);
+ }
+ p.save();
+ setPainter(p);
+ }
+
+ //---------------------------------------------------
+ // draw marker
+ //---------------------------------------------------
+
+ int y2 = y + h;
+ MarkerList* marker = song->marker();
+ for (iMarker m = marker->begin(); m != marker->end(); ++m) {
+ int xp = m->second.tick();
+ if (xp >= x && xp < x+w) {
+ p.setPen(Qt::green);
+ p.drawLine(xp, y, xp, y2);
+ }
+ }
+
+ //---------------------------------------------------
+ // draw location marker
+ //---------------------------------------------------
+
+ p.setPen(Qt::blue);
+ if (pos[1] >= unsigned(x) && pos[1] < unsigned(x2)) {
+ p.drawLine(pos[1], y, pos[1], y2);
+ }
+ if (pos[2] >= unsigned(x) && pos[2] < unsigned(x2))
+ p.drawLine(pos[2], y, pos[2], y2);
+ p.setPen(Qt::red);
+ if (pos[0] >= unsigned(x) && pos[0] < unsigned(x2)) {
+ p.drawLine(pos[0], y, pos[0], y2);
+ }
+
+ //---------------------------------------------------
+ // draw lasso
+ //---------------------------------------------------
+
+ if (drag == DRAG_LASSO) {
+ p.setPen(Qt::blue);
+ p.setBrush(Qt::NoBrush);
+ p.drawRect(lasso);
+ }
+
+ //---------------------------------------------------
+ // draw moving items
+ //---------------------------------------------------
+
+ if(virt())
+ {
+ for(iCItem i = moving.begin(); i != moving.end(); ++i)
+ drawMoving(p, i->second, rect);
+ }
+ else
+ {
+ p.restore();
+ for(iCItem i = moving.begin(); i != moving.end(); ++i)
+ drawMoving(p, i->second, rect);
+ setPainter(p);
+ }
+ }
+
+#define WHEEL_STEPSIZE 40
+#define WHEEL_DELTA 120
+
+//---------------------------------------------------------
+// wheelEvent
+//---------------------------------------------------------
+void Canvas::wheelEvent(QWheelEvent* ev)
+ {
+ int delta = ev->delta() / WHEEL_DELTA;
+ int ypixelscale = rmapyDev(1);
+
+ if (ypixelscale <= 0)
+ ypixelscale = 1;
+
+ int scrollstep = WHEEL_STEPSIZE * (-delta);
+ if (ev->state() == Qt::ShiftModifier)
+ scrollstep = scrollstep / 10;
+
+ int newYpos = ypos + ypixelscale * scrollstep;
+
+ if (newYpos < 0)
+ newYpos = 0;
+
+ //setYPos(newYpos);
+ emit verticalScroll((unsigned)newYpos);
+
+ }
+
+void Canvas::redirectedWheelEvent(QWheelEvent* ev)
+ {
+ wheelEvent(ev);
+ }
+
+//---------------------------------------------------------
+// deselectAll
+//---------------------------------------------------------
+
+void Canvas::deselectAll()
+ {
+ for (iCItem i = items.begin(); i != items.end(); ++i)
+ i->second->setSelected(false);
+ }
+
+//---------------------------------------------------------
+// selectItem
+//---------------------------------------------------------
+
+void Canvas::selectItem(CItem* e, bool flag)
+ {
+ e->setSelected(flag);
+ }
+
+//---------------------------------------------------------
+// startMoving
+// copy selection-List to moving-List
+//---------------------------------------------------------
+
+void Canvas::startMoving(const QPoint& pos, DragType)
+ {
+ for (iCItem i = items.begin(); i != items.end(); ++i) {
+ if (i->second->isSelected()) {
+ i->second->setMoving(true);
+ moving.add(i->second);
+ }
+ }
+ moveItems(pos, 0);
+ }
+
+//---------------------------------------------------------
+// moveItems
+// dir = 0 move in all directions
+// 1 move only horizontal
+// 2 move only vertical
+//---------------------------------------------------------
+
+void Canvas::moveItems(const QPoint& pos, int dir = 0, bool rasterize)
+ {
+ int dp;
+ if(rasterize)
+ dp = y2pitch(pos.y()) - y2pitch(start.y());
+ else
+ dp = pos.y() - start.y();
+ int dx = pos.x() - start.x();
+ if (dir == 1)
+ dp = 0;
+ else if (dir == 2)
+ dx = 0;
+ for (iCItem i = moving.begin(); i != moving.end(); ++i) {
+ int x = i->second->pos().x();
+ int y = i->second->pos().y();
+ int nx = x + dx;
+ int ny;
+ QPoint mp;
+ if(rasterize)
+ {
+ ny = pitch2y(y2pitch(y) + dp);
+ mp = raster(QPoint(nx, ny));
+ }
+ else
+ {
+ ny = y + dp;
+ mp = QPoint(nx, ny);
+ }
+ if (i->second->mp() != mp) {
+ i->second->setMp(mp);
+ itemMoved(i->second, mp);
+ }
+ }
+ redraw();
+ }
+
+//---------------------------------------------------------
+// viewKeyPressEvent
+//---------------------------------------------------------
+
+void Canvas::viewKeyPressEvent(QKeyEvent* event)
+ {
+ keyPress(event);
+ }
+
+//---------------------------------------------------------
+// viewMousePressEvent
+//---------------------------------------------------------
+
+void Canvas::viewMousePressEvent(QMouseEvent* event)
+ {
+ keyState = event->state();
+
+ // special events if right button is clicked while operations
+ // like moving or drawing lasso is performed.
+ if (event->stateAfter() & Qt::RightButton) {
+ switch (drag) {
+ case DRAG_LASSO:
+ drag = DRAG_OFF;
+ redraw();
+ return;
+ case DRAG_MOVE:
+ drag = DRAG_OFF;
+ endMoveItems (start, MOVE_MOVE, 0);
+ return;
+ default:
+ break;
+ }
+ }
+
+ // ignore event if (another) button is already active:
+ if (keyState & (Qt::LeftButton|Qt::RightButton|Qt::MidButton)) {
+ return;
+ }
+ bool shift = keyState & Qt::ShiftModifier;
+ bool alt = keyState & Qt::AltModifier;
+ bool ctrl = keyState & Qt::ControlModifier;
+ start = event->pos();
+
+ //---------------------------------------------------
+ // set curItem to item mouse is pointing
+ // (if any)
+ //---------------------------------------------------
+
+ if (virt())
+ curItem = items.find(start);
+ else {
+ curItem = 0;
+ iCItem ius;
+ bool usfound = false;
+ for (iCItem i = items.begin(); i != items.end(); ++i) {
+ QRect box = i->second->bbox();
+ int x = rmapxDev(box.x());
+ int y = rmapyDev(box.y());
+ int w = rmapxDev(box.width());
+ int h = rmapyDev(box.height());
+ QRect r(x, y, w, h);
+ r.moveBy(i->second->pos().x(), i->second->pos().y());
+ if (r.contains(start)) {
+ if(i->second->isSelected())
+ {
+ curItem = i->second;
+ break;
+ }
+ else
+ if(!usfound)
+ {
+ ius = i;
+ usfound = true;
+ }
+ }
+ }
+ if(!curItem && usfound)
+ curItem = ius->second;
+ }
+
+ if (curItem && (event->button() == Qt::MidButton)) {
+ if (!curItem->isSelected()) {
+ selectItem(curItem, true);
+ updateSelection();
+ redraw();
+ }
+ startDrag(curItem, shift);
+ }
+ else if (event->button() == Qt::RightButton) {
+ if (curItem) {
+ if (shift) {
+ drag = DRAG_RESIZE;
+ setCursor();
+ int dx = start.x() - curItem->x();
+ curItem->setWidth(dx);
+ start.setX(curItem->x());
+ deselectAll();
+ selectItem(curItem, true);
+ updateSelection();
+ redraw();
+ }
+ else {
+ itemPopupMenu = genItemPopup(curItem);
+ if (itemPopupMenu) {
+ int n = itemPopupMenu->exec(QCursor::pos());
+ if (n != -1)
+ itemPopup(curItem, n, start);
+ delete itemPopupMenu;
+ }
+ }
+ }
+ else {
+ canvasPopupMenu = genCanvasPopup();
+ if (canvasPopupMenu) {
+ int n = canvasPopupMenu->exec(QCursor::pos(), 0);
+ if (n != -1)
+ canvasPopup(n);
+ delete canvasPopupMenu;
+ }
+ }
+ }
+ else if (event->button() == Qt::LeftButton) {
+ switch (_tool) {
+ case PointerTool:
+ if (curItem) {
+ if (curItem->part() != curPart) {
+ curPart = curItem->part();
+ curPartId = curPart->sn();
+ curPartChanged();
+ }
+ itemPressed(curItem);
+ // Changed by T356. Alt is default reserved for moving the whole window in KDE. Changed to Shift-Alt.
+ // Hmm, nope, shift-alt is also reserved sometimes. Must find a way to bypass,
+ // why make user turn off setting? Left alone for now...
+ if (shift)
+ drag = DRAG_COPY_START;
+ else if (alt) {
+ drag = DRAG_CLONE_START;
+ }
+ //
+ //if (shift)
+ //{
+ // if (alt)
+ // drag = DRAG_CLONE_START;
+ // else
+ // drag = DRAG_COPY_START;
+ //}
+ else if (ctrl) { //Select all on the same pitch (e.g. same y-value)
+ deselectAll();
+ //printf("Yes, ctrl and press\n");
+ for (iCItem i = items.begin(); i != items.end(); ++i) {
+ if (i->second->y() == curItem->y() )
+ selectItem(i->second, true);
+ }
+ updateSelection();
+ redraw();
+ }
+ else
+ drag = DRAG_MOVE_START;
+ }
+ else
+ drag = DRAG_LASSO_START;
+ setCursor();
+ break;
+
+ case RubberTool:
+ deleteItem(start);
+ drag = DRAG_DELETE;
+ setCursor();
+ break;
+
+ case PencilTool:
+ if (curItem) {
+ drag = DRAG_RESIZE;
+ setCursor();
+ int dx = start.x() - curItem->x();
+ curItem->setWidth(dx);
+ start.setX(curItem->x());
+ }
+ else {
+ drag = DRAG_NEW;
+ setCursor();
+ curItem = newItem(start, event->state());
+ if (curItem)
+ items.add(curItem);
+ else {
+ drag = DRAG_OFF;
+ setCursor();
+ }
+ }
+ deselectAll();
+ if (curItem)
+ selectItem(curItem, true);
+ updateSelection();
+ redraw();
+ break;
+
+ default:
+ break;
+ }
+ }
+ mousePress(event);
+ }
+
+void Canvas::scrollTimerDone()
+{
+ //printf("Canvas::scrollTimerDone drag:%d doScroll:%d\n", drag, doScroll);
+
+ if (drag != DRAG_OFF && doScroll)
+ {
+ //printf("Canvas::scrollTimerDone drag != DRAG_OFF && doScroll\n");
+
+ bool doHMove = false;
+ bool doVMove = false;
+ int hoff = rmapx(xOffset())+mapx(xorg)-1;
+ int curxpos;
+ switch(hscrollDir)
+ {
+ case HSCROLL_RIGHT:
+ hoff += scrollSpeed;
+ switch(drag)
+ {
+ case DRAG_NEW:
+ case DRAG_RESIZE:
+ case DRAGX_MOVE:
+ case DRAGX_COPY:
+ case DRAGX_CLONE:
+ case DRAGY_MOVE:
+ case DRAGY_COPY:
+ case DRAGY_CLONE:
+ case DRAG_MOVE:
+ case DRAG_COPY:
+ case DRAG_CLONE:
+ emit horizontalScrollNoLimit(hoff);
+ canScrollLeft = true;
+ ev_pos.setX(rmapxDev(rmapx(ev_pos.x()) + scrollSpeed));
+ doHMove = true;
+ break;
+ default:
+ if(canScrollRight)
+ {
+ curxpos = xpos;
+ emit horizontalScroll(hoff);
+ if(xpos <= curxpos)
+ {
+ canScrollRight = false;
+ }
+ else
+ {
+ canScrollLeft = true;
+ ev_pos.setX(rmapxDev(rmapx(ev_pos.x()) + scrollSpeed));
+ doHMove = true;
+ }
+ }
+ else
+ {
+ }
+ break;
+ }
+ break;
+ case HSCROLL_LEFT:
+ if(canScrollLeft)
+ {
+ curxpos = xpos;
+ hoff -= scrollSpeed;
+ emit horizontalScroll(hoff);
+ if(xpos >= curxpos)
+ {
+ canScrollLeft = false;
+ }
+ else
+ {
+ canScrollRight = true;
+ ev_pos.setX(rmapxDev(rmapx(ev_pos.x()) - scrollSpeed));
+ doHMove = true;
+ }
+ }
+ else
+ {
+ }
+ break;
+ default:
+ break;
+ }
+ int voff = rmapy(yOffset())+mapy(yorg);
+ int curypos;
+ switch(vscrollDir)
+ {
+ case VSCROLL_DOWN:
+ if(canScrollDown)
+ {
+ curypos = ypos;
+ voff += scrollSpeed;
+ emit verticalScroll(voff);
+ if(ypos <= curypos)
+ {
+ canScrollDown = false;
+ }
+ else
+ {
+ canScrollUp = true;
+ ev_pos.setY(rmapyDev(rmapy(ev_pos.y()) + scrollSpeed));
+ doVMove = true;
+ }
+ }
+ else
+ {
+ }
+ break;
+ case VSCROLL_UP:
+ if(canScrollUp)
+ {
+ curypos = ypos;
+ voff -= scrollSpeed;
+ emit verticalScroll(voff);
+ if(ypos >= curypos)
+ {
+ canScrollUp = false;
+ }
+ else
+ {
+ canScrollDown = true;
+ ev_pos.setY(rmapyDev(rmapy(ev_pos.y()) - scrollSpeed));
+ doVMove = true;
+ }
+ }
+ else
+ {
+ }
+ break;
+ default:
+ break;
+ }
+
+ //printf("Canvas::scrollTimerDone doHMove:%d doVMove:%d\n", doHMove, doVMove);
+
+ if(!doHMove && !doVMove)
+ {
+ delete scrollTimer;
+ scrollTimer=NULL;
+ doScroll = false;
+ return;
+ }
+ QPoint dist = ev_pos - start;
+ switch(drag)
+ {
+ case DRAG_MOVE:
+ case DRAG_COPY:
+ case DRAG_CLONE:
+ moveItems(ev_pos, 0, false);
+ break;
+ case DRAGX_MOVE:
+ case DRAGX_COPY:
+ case DRAGX_CLONE:
+ moveItems(ev_pos, 1, false);
+ break;
+ case DRAGY_MOVE:
+ case DRAGY_COPY:
+ case DRAGY_CLONE:
+ moveItems(ev_pos, 2, false);
+ break;
+ case DRAG_LASSO:
+ lasso = QRect(start.x(), start.y(), dist.x(), dist.y());
+ redraw();
+ break;
+ case DRAG_NEW:
+ case DRAG_RESIZE:
+ if (dist.x()) {
+ if (dist.x() < 1)
+ curItem->setWidth(1);
+ else
+ curItem->setWidth(dist.x());
+ redraw();
+ }
+ break;
+ default:
+ break;
+ }
+ //printf("Canvas::scrollTimerDone starting scrollTimer: Currently active?%d\n", scrollTimer->isActive());
+
+ // p3.3.43 Make sure to yield to other events (for up to 3 seconds), otherwise other events
+ // take a long time to reach us, causing scrolling to take a painfully long time to stop.
+ // FIXME: Didn't help at all.
+ //qApp->processEvents();
+ // No, try up to 100 ms for each yield.
+ //qApp->processEvents(100);
+ //
+ //scrollTimer->start( 40, TRUE ); // X ms single-shot timer
+ // OK, changing the timeout from 40 to 80 helped.
+ scrollTimer->start( 80, TRUE ); // X ms single-shot timer
+ }
+ else
+ {
+ //printf("Canvas::scrollTimerDone !(drag != DRAG_OFF && doScroll) deleting scrollTimer\n");
+
+ delete scrollTimer;
+ scrollTimer=NULL;
+ }
+}
+
+
+//---------------------------------------------------------
+// viewMouseMoveEvent
+//---------------------------------------------------------
+
+void Canvas::viewMouseMoveEvent(QMouseEvent* event)
+ {
+
+ ev_pos = event->pos();
+ QPoint dist = ev_pos - start;
+ int ax = ABS(rmapx(dist.x()));
+ int ay = ABS(rmapy(dist.y()));
+ bool moving = (ax >= 2) || (ay > 2);
+
+ // set scrolling variables: doScroll, scrollRight
+ if (drag != DRAG_OFF) {
+
+
+ int ex = rmapx(event->x())+mapx(0);
+ if(ex < 40 && canScrollLeft)
+ hscrollDir = HSCROLL_LEFT;
+ else
+ if(ex > (width() - 40))
+ switch(drag)
+ {
+ case DRAG_NEW:
+ case DRAG_RESIZE:
+ case DRAGX_MOVE:
+ case DRAGX_COPY:
+ case DRAGX_CLONE:
+ case DRAGY_MOVE:
+ case DRAGY_COPY:
+ case DRAGY_CLONE:
+ case DRAG_MOVE:
+ case DRAG_COPY:
+ case DRAG_CLONE:
+ hscrollDir = HSCROLL_RIGHT;
+ break;
+ default:
+ if(canScrollRight)
+ hscrollDir = HSCROLL_RIGHT;
+ else
+ hscrollDir = HSCROLL_NONE;
+ break;
+ }
+ else
+ hscrollDir = HSCROLL_NONE;
+ int ey = rmapy(event->y())+mapy(0);
+ if(ey < 15 && canScrollUp)
+ vscrollDir = VSCROLL_UP;
+ else
+ if(ey > (height() - 15) && canScrollDown)
+ vscrollDir = VSCROLL_DOWN;
+ else
+ vscrollDir = VSCROLL_NONE;
+ if(hscrollDir != HSCROLL_NONE || vscrollDir != VSCROLL_NONE)
+ {
+ doScroll=true;
+ if (!scrollTimer)
+ {
+ scrollTimer= new QTimer(this);
+ connect( scrollTimer, SIGNAL(timeout()), SLOT(scrollTimerDone()) );
+ scrollTimer->start( 0, TRUE ); // single-shot timer
+ }
+ }
+ else
+ doScroll=false;
+
+ }
+ else
+ {
+ doScroll=false;
+
+ canScrollLeft = true;
+ canScrollRight = true;
+ canScrollUp = true;
+ canScrollDown = true;
+ }
+
+ switch (drag) {
+ case DRAG_LASSO_START:
+ if (!moving)
+ break;
+ drag = DRAG_LASSO;
+ setCursor();
+ // proceed with DRAG_LASSO:
+
+ case DRAG_LASSO:
+ {
+ lasso = QRect(start.x(), start.y(), dist.x(), dist.y());
+
+ // printf("xorg=%d xmag=%d event->x=%d, mapx(xorg)=%d rmapx0=%d xOffset=%d rmapx(xOffset()=%d\n",
+ // xorg, xmag, event->x(),mapx(xorg), rmapx(0), xOffset(),rmapx(xOffset()));
+
+ }
+ redraw();
+ break;
+
+ case DRAG_MOVE_START:
+ case DRAG_COPY_START:
+ case DRAG_CLONE_START:
+ if (!moving)
+ break;
+ if (keyState & Qt::ControlModifier) {
+ if (ax > ay) {
+ if (drag == DRAG_MOVE_START)
+ drag = DRAGX_MOVE;
+ else if (drag == DRAG_COPY_START)
+ drag = DRAGX_COPY;
+ else
+ drag = DRAGX_CLONE;
+ }
+ else {
+ if (drag == DRAG_MOVE_START)
+ drag = DRAGY_MOVE;
+ else if (drag == DRAG_COPY_START)
+ drag = DRAGY_COPY;
+ else
+ drag = DRAGY_CLONE;
+ }
+ }
+ else {
+ if (drag == DRAG_MOVE_START)
+ drag = DRAG_MOVE;
+ else if (drag == DRAG_COPY_START)
+ drag = DRAG_COPY;
+ else
+ drag = DRAG_CLONE;
+ }
+ setCursor();
+ if (!curItem->isSelected()) {
+ if (drag == DRAG_MOVE)
+ deselectAll();
+ selectItem(curItem, true);
+ updateSelection();
+ redraw();
+ }
+ DragType dt;
+ if (drag == DRAG_MOVE)
+ dt = MOVE_MOVE;
+ else if (drag == DRAG_COPY)
+ dt = MOVE_COPY;
+ else
+ dt = MOVE_CLONE;
+
+ startMoving(ev_pos, dt);
+ break;
+
+ case DRAG_MOVE:
+ case DRAG_COPY:
+ case DRAG_CLONE:
+
+ if(!scrollTimer)
+ moveItems(ev_pos, 0);
+ break;
+
+ case DRAGX_MOVE:
+ case DRAGX_COPY:
+ case DRAGX_CLONE:
+ if(!scrollTimer)
+ moveItems(ev_pos, 1);
+ break;
+
+ case DRAGY_MOVE:
+ case DRAGY_COPY:
+ case DRAGY_CLONE:
+ if(!scrollTimer)
+ moveItems(ev_pos, 2);
+ break;
+
+ case DRAG_NEW:
+ case DRAG_RESIZE:
+ if (dist.x()) {
+ if (dist.x() < 1)
+ curItem->setWidth(1);
+ else
+ curItem->setWidth(dist.x());
+ redraw();
+ }
+ break;
+ case DRAG_DELETE:
+ deleteItem(ev_pos);
+ break;
+
+ case DRAG_OFF:
+ break;
+ }
+
+ mouseMove(ev_pos);
+ }
+
+//---------------------------------------------------------
+// viewMouseReleaseEvent
+//---------------------------------------------------------
+
+void Canvas::viewMouseReleaseEvent(QMouseEvent* event)
+ {
+// printf("release %x %x\n", event->state(), event->button());
+
+ doScroll = false;
+ canScrollLeft = true;
+ canScrollRight = true;
+ canScrollUp = true;
+ canScrollDown = true;
+ if (event->state() & (Qt::LeftButton|Qt::RightButton|Qt::MidButton) & ~(event->button())) {
+ printf("ignore %x %x\n", keyState, event->button());
+ return;
+ }
+
+ QPoint pos = event->pos();
+ bool shift = event->state() & Qt::ShiftModifier;
+ bool redrawFlag = false;
+
+ switch (drag) {
+ case DRAG_MOVE_START:
+ case DRAG_COPY_START:
+ case DRAG_CLONE_START:
+ if (!shift)
+ deselectAll();
+ selectItem(curItem, !(shift && curItem->isSelected()));
+ updateSelection();
+ redrawFlag = true;
+ itemReleased(curItem, curItem->pos());
+ break;
+ case DRAG_COPY:
+ endMoveItems(pos, MOVE_COPY, 0);
+ break;
+ case DRAGX_COPY:
+ endMoveItems(pos, MOVE_COPY, 1);
+ break;
+ case DRAGY_COPY:
+ endMoveItems(pos, MOVE_COPY, 2);
+ break;
+ case DRAG_MOVE:
+ endMoveItems(pos, MOVE_MOVE, 0);
+ break;
+ case DRAGX_MOVE:
+ endMoveItems(pos, MOVE_MOVE, 1);
+ break;
+ case DRAGY_MOVE:
+ endMoveItems(pos, MOVE_MOVE, 2);
+ break;
+ case DRAG_CLONE:
+ endMoveItems(pos, MOVE_CLONE, 0);
+ break;
+ case DRAGX_CLONE:
+ endMoveItems(pos, MOVE_CLONE, 1);
+ break;
+ case DRAGY_CLONE:
+ endMoveItems(pos, MOVE_CLONE, 2);
+ 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.normalize();
+ selectLasso(shift);
+ updateSelection();
+ redrawFlag = true;
+ break;
+
+ case DRAG_DELETE:
+ break;
+ }
+ //printf("Canvas::viewMouseReleaseEvent setting drag to DRAG_OFF\n");
+
+ drag = DRAG_OFF;
+ if (redrawFlag)
+ redraw();
+ setCursor();
+ }
+
+//---------------------------------------------------------
+// selectLasso
+//---------------------------------------------------------
+
+void Canvas::selectLasso(bool toggle)
+ {
+ int n = 0;
+ if (virt()) {
+ for (iCItem i = items.begin(); i != items.end(); ++i) {
+ if (i->second->intersects(lasso)) {
+ selectItem(i->second, !(toggle && i->second->isSelected()));
+ ++n;
+ }
+ }
+ }
+ else {
+ for (iCItem i = items.begin(); i != items.end(); ++i) {
+ QRect box = i->second->bbox();
+ int x = rmapxDev(box.x());
+ int y = rmapyDev(box.y());
+ int w = rmapxDev(box.width());
+ int h = rmapyDev(box.height());
+ QRect r(x, y, w, h);
+ r.moveBy(i->second->pos().x(), i->second->pos().y());
+ if (r.intersects(lasso)) {
+ selectItem(i->second, !(toggle && i->second->isSelected()));
+ ++n;
+ }
+ }
+ }
+
+
+
+ if (n) {
+ updateSelection();
+ redraw();
+ }
+ }
+
+//---------------------------------------------------------
+// endMoveItems
+// dir = 0 move in all directions
+// 1 move only horizontal
+// 2 move only vertical
+//---------------------------------------------------------
+
+void Canvas::endMoveItems(const QPoint& pos, DragType dragtype, int dir)
+ {
+ startUndo(dragtype);
+
+ int dp = y2pitch(pos.y()) - y2pitch(start.y());
+ int dx = pos.x() - start.x();
+
+ if (dir == 1)
+ dp = 0;
+ else if (dir == 2)
+ dx = 0;
+
+
+
+ int modified = 0;
+
+ // Removed by T356.
+ /*
+ for (iCItem i = moving.begin(); i != moving.end(); ++i) {
+ int x = i->second->pos().x();
+ int y = i->second->pos().y();
+ int nx = x + dx;
+ int ny = pitch2y(y2pitch(y) + dp);
+ QPoint newpos = raster(QPoint(nx, ny));
+ selectItem(i->second, true);
+
+ if (moveItem(i->second, newpos, dragtype, &modified))
+ i->second->move(newpos);
+ if (moving.size() == 1) {
+ itemReleased(curItem, newpos);
+ }
+ if (dragtype == MOVE_COPY || dragtype == MOVE_CLONE)
+ selectItem(i->second, false);
+ }
+ */
+
+ moveCanvasItems(moving, dp, dx, dragtype, &modified);
+
+ endUndo(dragtype, modified);
+ moving.clear();
+ updateSelection();
+ redraw();
+ }
+
+//---------------------------------------------------------
+// getCurrentDrag
+// returns 0 if there is no drag operation
+//---------------------------------------------------------
+
+int Canvas::getCurrentDrag()
+ {
+ printf("getCurrentDrag=%d\n", drag);
+ return drag;
+ }
+
+//---------------------------------------------------------
+// deleteItem
+//---------------------------------------------------------
+
+void Canvas::deleteItem(const QPoint& p)
+ {
+ if (virt()) {
+ for (iCItem i = items.begin(); i != items.end(); ++i) {
+ if (i->second->contains(p)) {
+ selectItem(i->second, false);
+ if (!deleteItem(i->second)) {
+ if (drag == DRAG_DELETE)
+ drag = DRAG_OFF;
+ }
+ break;
+ }
+ }
+ }
+ else {
+ for (iCItem i = items.begin(); i != items.end(); ++i) {
+ QRect box = i->second->bbox();
+ int x = rmapxDev(box.x());
+ int y = rmapyDev(box.y());
+ int w = rmapxDev(box.width());
+ int h = rmapyDev(box.height());
+ QRect r(x, y, w, h);
+ r.moveBy(i->second->pos().x(), i->second->pos().y());
+ if (r.contains(p)) {
+ if (deleteItem(i->second)) {
+ selectItem(i->second, false);
+ }
+ break;
+ }
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// setTool
+//---------------------------------------------------------
+
+void Canvas::setTool(int t)
+ {
+ if (_tool == Tool(t))
+ return;
+ _tool = Tool(t);
+ setCursor();
+ }
+
+//---------------------------------------------------------
+// setCursor
+//---------------------------------------------------------
+
+void Canvas::setCursor()
+ {
+ switch (drag) {
+ case DRAGX_MOVE:
+ case DRAGX_COPY:
+ case DRAGX_CLONE:
+ QWidget::setCursor(QCursor(Qt::SizeHorCursor));
+ break;
+
+ case DRAGY_MOVE:
+ case DRAGY_COPY:
+ case DRAGY_CLONE:
+ QWidget::setCursor(QCursor(Qt::SizeVerCursor));
+ break;
+
+ case DRAG_MOVE:
+ case DRAG_COPY:
+ case DRAG_CLONE:
+ QWidget::setCursor(QCursor(Qt::SizeAllCursor));
+ break;
+
+ case DRAG_RESIZE:
+ QWidget::setCursor(QCursor(Qt::SizeHorCursor));
+ break;
+
+ case DRAG_DELETE:
+ case DRAG_COPY_START:
+ case DRAG_CLONE_START:
+ case DRAG_MOVE_START:
+ case DRAG_NEW:
+ case DRAG_LASSO_START:
+ case DRAG_LASSO:
+ case DRAG_OFF:
+ switch(_tool) {
+ case PencilTool:
+ QWidget::setCursor(QCursor(*pencilIcon, 4, 15));
+ break;
+ case RubberTool:
+ QWidget::setCursor(QCursor(*deleteIcon, 4, 15));
+ break;
+ case GlueTool:
+ QWidget::setCursor(QCursor(*glueIcon, 4, 15));
+ break;
+ case CutTool:
+ QWidget::setCursor(QCursor(*cutIcon, 4, 15));
+ break;
+ case MuteTool:
+ QWidget::setCursor(QCursor(*editmuteIcon, 4, 15));
+ break;
+ default:
+ QWidget::setCursor(QCursor(Qt::ArrowCursor));
+ break;
+ }
+ break;
+ }
+ }
+
+//---------------------------------------------------------
+// keyPress
+//---------------------------------------------------------
+
+void Canvas::keyPress(QKeyEvent* event)
+ {
+ event->ignore();
+ }
+
+//---------------------------------------------------------
+// isSingleSelection
+//---------------------------------------------------------
+
+bool Canvas::isSingleSelection()
+ {
+ return selectionSize() == 1;
+ }
+
+//---------------------------------------------------------
+// selectionSize
+//---------------------------------------------------------
+
+int Canvas::selectionSize()
+ {
+ int n = 0;
+ for (iCItem i = items.begin(); i != items.end(); ++i) {
+ if (i->second->isSelected())
+ ++n;
+ }
+ return n;
+ }
+
+//---------------------------------------------------------
+// genCanvasPopup
+//---------------------------------------------------------
+
+Q3PopupMenu* Canvas::genCanvasPopup()
+ {
+ if (canvasTools == 0)
+ return 0;
+ Q3PopupMenu* canvasPopup = new Q3PopupMenu(this);
+
+ for (unsigned i = 0; i < 9; ++i) {
+ if ((canvasTools & (1 << i))==0)
+ continue;
+ canvasPopup->insertItem(QIcon(**toolList[i].icon), tr(toolList[i].tip), 1<<i); // ddskrjo
+ }
+ canvasPopup->setActiveItem(0);
+ return canvasPopup;
+ }
+
+//---------------------------------------------------------
+// canvasPopup
+//---------------------------------------------------------
+
+void Canvas::canvasPopup(int n)
+ {
+ setTool(n);
+ emit toolChanged(n);
+ }
+
+void Canvas::setCurrentPart(Part* part)
+{
+ curItem = NULL;
+ deselectAll();
+ curPart = part;
+ curPartId = curPart->sn();
+ curPartChanged();
+}
diff --git a/muse2/muse/widgets/canvas.h b/muse2/muse/widgets/canvas.h
new file mode 100644
index 00000000..f25d1b2f
--- /dev/null
+++ b/muse2/muse/widgets/canvas.h
@@ -0,0 +1,185 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: canvas.h,v 1.3.2.8 2009/02/02 21:38:01 terminator356 Exp $
+// (C) Copyright 1999 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __CANVAS_H__
+#define __CANVAS_H__
+
+#include "citem.h"
+#include "view.h"
+#include "tools.h"
+//Added by qt3to4:
+#include <QWheelEvent>
+#include <QMouseEvent>
+#include <Q3PopupMenu>
+#include <QKeyEvent>
+
+class Q3PopupMenu;
+
+//---------------------------------------------------------
+// Canvas
+//---------------------------------------------------------
+
+class Canvas : public View {
+ Q_OBJECT
+ int canvasTools;
+ QTimer *scrollTimer;
+
+ bool doScroll;
+ int scrollSpeed;
+
+ QPoint ev_pos;
+ bool canScrollLeft;
+ bool canScrollRight;
+ bool canScrollUp;
+ bool canScrollDown;
+ protected:
+ enum DragMode {
+ DRAG_OFF, DRAG_NEW,
+ DRAG_MOVE_START, DRAG_MOVE,
+ DRAG_COPY_START, DRAG_COPY,
+ DRAG_CLONE_START, DRAG_CLONE,
+ DRAGX_MOVE, DRAGY_MOVE,
+ DRAGX_COPY, DRAGY_COPY,
+ DRAGX_CLONE, DRAGY_CLONE,
+ DRAG_DELETE,
+ DRAG_RESIZE, DRAG_LASSO_START, DRAG_LASSO,
+ };
+
+ enum DragType {
+ MOVE_MOVE, MOVE_COPY, MOVE_CLONE
+ };
+
+ enum HScrollDir {
+ HSCROLL_NONE, HSCROLL_LEFT, HSCROLL_RIGHT
+ };
+ enum VScrollDir {
+ VSCROLL_NONE, VSCROLL_UP, VSCROLL_DOWN
+ };
+
+ CItemList items;
+ CItemList moving;
+ CItem* curItem;
+ Part* curPart;
+ int curPartId;
+
+ DragMode drag;
+ QRect lasso;
+ QPoint start;
+ Tool _tool;
+ unsigned pos[3];
+
+ HScrollDir hscrollDir;
+ VScrollDir vscrollDir;
+ int keyState;
+ Q3PopupMenu* itemPopupMenu;
+ Q3PopupMenu* canvasPopupMenu;
+
+ void setCursor();
+ virtual void viewKeyPressEvent(QKeyEvent* event);
+ virtual void viewMousePressEvent(QMouseEvent* event);
+ virtual void viewMouseMoveEvent(QMouseEvent*);
+ virtual void viewMouseReleaseEvent(QMouseEvent*);
+ virtual void draw(QPainter&, const QRect&);
+ virtual void wheelEvent(QWheelEvent* e);
+
+ virtual void mousePress(QMouseEvent*) {}
+ virtual void keyPress(QKeyEvent*);
+ virtual void mouseMove(const QPoint&) = 0;
+ virtual void mouseRelease(const QPoint&) {}
+ virtual void drawCanvas(QPainter&, const QRect&) = 0;
+ virtual void drawItem(QPainter&, const CItem*, const QRect&) = 0;
+ virtual void drawMoving(QPainter&, const CItem*, const QRect&) = 0;
+ virtual void updateSelection() = 0;
+ virtual QPoint raster(const QPoint&) const = 0;
+ virtual int y2pitch(int) const = 0; //CDW
+ virtual int pitch2y(int) const = 0; //CDW
+
+ virtual void moveCanvasItems(CItemList&, int, int, DragType, int*) = 0;
+ // Changed by T356.
+ //virtual bool moveItem(CItem*, const QPoint&, DragType, int*) = 0;
+ virtual bool moveItem(CItem*, const QPoint&, DragType) = 0;
+ virtual CItem* newItem(const QPoint&, int state) = 0;
+ virtual void resizeItem(CItem*, bool noSnap=false) = 0;
+ virtual void newItem(CItem*, bool noSnap=false) = 0;
+ virtual bool deleteItem(CItem*) = 0;
+ virtual void startUndo(DragType) = 0;
+
+ virtual void endUndo(DragType, int flags) = 0;
+ int getCurrentDrag();
+
+ /*!
+ \brief Virtual member
+
+ Implementing class is responsible for creating a popup to be shown when the user rightclicks an item on the Canvas
+ \param item The canvas item that is rightclicked
+ \return A QPopupMenu*
+ */
+ virtual Q3PopupMenu* genItemPopup(CItem* /*item*/) { return 0; }
+
+ /*!
+ \brief Pure virtual member
+
+ Implementing class is responsible for creating a popup to be shown when the user rightclicks an empty region of the canvas
+ \return A QPopupMenu*
+ */
+ Q3PopupMenu* genCanvasPopup();
+
+ /*!
+ \brief Virtual member
+
+ This is the function called when the user has selected an option in the popupmenu generated by genItemPopup()
+ \param item the canvas item the whole thing is about
+ \param n Command type
+ \param pt I think this is the position of the pointer when right mouse button was pressed
+ */
+ virtual void itemPopup(CItem* /*item */, int /*n*/, const QPoint& /*pt*/) {}
+ void canvasPopup(int);
+
+ virtual void startDrag(CItem*, bool) {}
+
+ // selection
+ virtual void deselectAll();
+ virtual void selectItem(CItem* e, bool);
+
+ virtual void deleteItem(const QPoint&);
+
+ // moving
+ void startMoving(const QPoint&, DragType);
+
+ void moveItems(const QPoint&, int dir, bool rasterize = true);
+ void endMoveItems(const QPoint&, DragType, int dir);
+
+ virtual void selectLasso(bool toggle);
+
+ virtual void itemPressed(const CItem*) {}
+ virtual void itemReleased(const CItem*, const QPoint&) {}
+ virtual void itemMoved(const CItem*, const QPoint&) {}
+ virtual void curPartChanged() {}
+
+ public slots:
+ void setTool(int t);
+ void setPos(int, unsigned, bool adjustScrollbar);
+ void scrollTimerDone(void);
+ void redirectedWheelEvent(QWheelEvent*);
+
+ signals:
+ void followEvent(int);
+ void toolChanged(int);
+ void verticalScroll(unsigned);
+ void horizontalScroll(unsigned);
+ void horizontalScrollNoLimit(unsigned);
+ public:
+ Canvas(QWidget* parent, int sx, int sy, const char* name = 0);
+ bool isSingleSelection();
+ int selectionSize();
+ Tool tool() const { return _tool; }
+ Part* part() const { return curPart; }
+ void setCurrentPart(Part*);
+ void setCanvasTools(int n) { canvasTools = n; }
+ };
+#endif
+
diff --git a/muse2/muse/widgets/checkbox.cpp b/muse2/muse/widgets/checkbox.cpp
new file mode 100644
index 00000000..3cded268
--- /dev/null
+++ b/muse2/muse/widgets/checkbox.cpp
@@ -0,0 +1,58 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: checkbox.cpp,v 1.2.2.2 2006/10/29 07:54:52 terminator356 Exp $
+// (C) Copyright 2004 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include "checkbox.h"
+//Added by qt3to4:
+#include <QMouseEvent>
+
+//---------------------------------------------------------
+// CheckBox
+//---------------------------------------------------------
+
+CheckBox::CheckBox(QWidget* parent, int i, const char* name)
+ : QCheckBox(parent, name)
+ {
+ _id = i;
+ connect(this, SIGNAL(toggled(bool)), SLOT(hasToggled(bool)));
+ }
+
+void CheckBox::hasToggled(bool val)
+ {
+ emit toggleChanged(val, _id);
+ }
+
+//------------------------------------------------------------
+// mousePressEvent
+//------------------------------------------------------------
+
+void CheckBox::mousePressEvent(QMouseEvent *e)
+{
+ if(e->button() == Qt::RightButton)
+ emit checkboxRightClicked(e->globalPos(), _id);
+ else
+ {
+ if(isChecked())
+ setChecked(false);
+ else
+ setChecked(true);
+ emit checkboxPressed(_id);
+ }
+}
+
+//------------------------------------------------------------
+// mouseReleaseEvent
+//------------------------------------------------------------
+
+void CheckBox::mouseReleaseEvent(QMouseEvent *e)
+{
+ if(e->button() == Qt::RightButton)
+ return;
+
+ emit checkboxReleased(_id);
+}
+
+
diff --git a/muse2/muse/widgets/checkbox.h b/muse2/muse/widgets/checkbox.h
new file mode 100644
index 00000000..26209987
--- /dev/null
+++ b/muse2/muse/widgets/checkbox.h
@@ -0,0 +1,45 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: checkbox.h,v 1.2.2.2 2006/10/29 07:54:52 terminator356 Exp $
+// (C) Copyright 2004 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __CHECKBOX_H__
+#define __CHECKBOX_H__
+
+#include <qcheckbox.h>
+//Added by qt3to4:
+#include <QMouseEvent>
+
+//---------------------------------------------------------
+// CheckBox
+//---------------------------------------------------------
+
+class CheckBox : public QCheckBox {
+ Q_OBJECT
+ Q_PROPERTY( int id READ id WRITE setId )
+
+ int _id;
+
+ protected:
+ void mousePressEvent(QMouseEvent *e);
+ void mouseReleaseEvent(QMouseEvent *e);
+
+ private slots:
+ void hasToggled(bool val);
+
+ signals:
+ void toggleChanged(bool, int);
+ void checkboxPressed(int);
+ void checkboxReleased(int);
+ void checkboxRightClicked(const QPoint &, int);
+
+ public:
+ CheckBox(QWidget* parent, int i, const char* name = 0);
+ int id() const { return _id; }
+ void setId(int i) { _id = i; }
+ };
+
+#endif
+
diff --git a/muse2/muse/widgets/citem.cpp b/muse2/muse/widgets/citem.cpp
new file mode 100644
index 00000000..2974196d
--- /dev/null
+++ b/muse2/muse/widgets/citem.cpp
@@ -0,0 +1,93 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: citem.cpp,v 1.2.2.3 2008/01/26 07:23:21 terminator356 Exp $
+// (C) Copyright 1999 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include "part.h"
+#include "citem.h"
+#include <stdio.h>
+
+//---------------------------------------------------------
+// CItem
+//---------------------------------------------------------
+
+CItem::CItem()
+ {
+ _isMoving = false;
+ }
+
+CItem::CItem(const QPoint&p, const QRect& r)
+ {
+ _pos = p;
+ _bbox = r;
+ _isMoving = false;
+ }
+
+// Changed by Tim. p3.3.20
+//CItem::CItem(Event e, Part* p)
+CItem::CItem(const Event& e, Part* p)
+ {
+ _event = e;
+ _part = p;
+ _isMoving = false;
+ }
+
+//---------------------------------------------------------
+// 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
+ {
+ rciCItem ius;
+ bool usfound = false;
+ for (rciCItem i = rbegin(); i != rend(); ++i) {
+ if (i->second->contains(pos))
+ {
+ if(i->second->isSelected())
+ return i->second;
+
+ else
+ {
+ if(!usfound)
+ {
+ ius = i;
+ usfound = true;
+ }
+ }
+ }
+ }
+ if(usfound)
+ return ius->second;
+ else
+ return 0;
+ }
+
+//---------------------------------------------------------
+// CItemList
+//---------------------------------------------------------
+
+void CItemList::add(CItem* item)
+ {
+ std::multimap<int, CItem*, std::less<int> >::insert(std::pair<const int, CItem*> (item->bbox().x(), item));
+ }
+
diff --git a/muse2/muse/widgets/citem.h b/muse2/muse/widgets/citem.h
new file mode 100644
index 00000000..c58b6bb1
--- /dev/null
+++ b/muse2/muse/widgets/citem.h
@@ -0,0 +1,90 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: citem.h,v 1.2.2.1 2006/10/04 18:45:35 spamatica Exp $
+// (C) Copyright 1999 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __CITEM_H__
+#define __CITEM_H__
+
+#include <map>
+#include <qpoint.h>
+#include <qrect.h>
+
+#include "event.h"
+
+class Event;
+class Part;
+
+//---------------------------------------------------------
+// CItem
+// virtuelle Basisklasse fr alle Canvas Item's
+//---------------------------------------------------------
+
+class CItem {
+ private:
+ Event _event;
+ Part* _part;
+
+ protected:
+ bool _isMoving;
+ QPoint moving;
+ QRect _bbox;
+ QPoint _pos;
+
+ public:
+ CItem(const QPoint& p, const QRect& r);
+ CItem();
+ // Changed by Tim. p3.3.20
+ //CItem(Event e, Part* p);
+ CItem(const Event& e, Part* p);
+
+ bool isMoving() const { return _isMoving; }
+ void setMoving(bool f) { _isMoving = f; }
+ bool isSelected() const;
+ void setSelected(bool f);
+
+ int width() const { return _bbox.width(); }
+ void setWidth(int l) { _bbox.setWidth(l); }
+ void setHeight(int l) { _bbox.setHeight(l); }
+ void setMp(const QPoint&p) { moving = p; }
+ const QPoint mp() const { return moving; }
+ int x() const { return _pos.x(); }
+ int y() const { return _pos.y(); }
+ void setY(int y) { _bbox.setY(y); }
+ QPoint pos() const { return _pos; }
+ void setPos(const QPoint& p) { _pos = p; }
+ int height() const { return _bbox.height(); }
+ const QRect& bbox() const { return _bbox; }
+ void setBBox(const QRect& r) { _bbox = r; }
+ void move(const QPoint& tl) {
+ _bbox.moveTopLeft(tl);
+ _pos = tl;
+ }
+ bool contains(const QPoint& p) const { return _bbox.contains(p); }
+ bool intersects(const QRect& r) const { return r.intersects(_bbox); }
+
+ Event event() const { return _event; }
+ void setEvent(Event& e) { _event = e; }
+ Part* part() const { return _part; }
+ void setPart(Part* p) { _part = p; }
+ };
+
+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/muse2/muse/widgets/cliplisteditorbase.ui b/muse2/muse/widgets/cliplisteditorbase.ui
new file mode 100644
index 00000000..272c578c
--- /dev/null
+++ b/muse2/muse/widgets/cliplisteditorbase.ui
@@ -0,0 +1,168 @@
+<!DOCTYPE UI><UI version="3.0" stdsetdef="1">
+<class>ClipListEditorBase</class>
+<widget class="QWidget">
+ <property name="name">
+ <cstring>ClipListEditorBase</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>600</width>
+ <height>480</height>
+ </rect>
+ </property>
+ <property name="caption">
+ <string>MusE: ClipList</string>
+ </property>
+ <vbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>11</number>
+ </property>
+ <property name="spacing">
+ <number>6</number>
+ </property>
+ <widget class="QListView">
+ <column>
+ <property name="text">
+ <string>Name</string>
+ </property>
+ <property name="clickable">
+ <bool>true</bool>
+ </property>
+ <property name="resizeable">
+ <bool>true</bool>
+ </property>
+ </column>
+ <column>
+ <property name="text">
+ <string>Refs</string>
+ </property>
+ <property name="clickable">
+ <bool>true</bool>
+ </property>
+ <property name="resizeable">
+ <bool>true</bool>
+ </property>
+ </column>
+ <column>
+ <property name="text">
+ <string>Start</string>
+ </property>
+ <property name="clickable">
+ <bool>true</bool>
+ </property>
+ <property name="resizeable">
+ <bool>true</bool>
+ </property>
+ </column>
+ <column>
+ <property name="text">
+ <string>Len</string>
+ </property>
+ <property name="clickable">
+ <bool>true</bool>
+ </property>
+ <property name="resizeable">
+ <bool>true</bool>
+ </property>
+ </column>
+ <column>
+ <property name="text">
+ <string>Data</string>
+ </property>
+ <property name="clickable">
+ <bool>true</bool>
+ </property>
+ <property name="resizeable">
+ <bool>true</bool>
+ </property>
+ </column>
+ <property name="name">
+ <cstring>view</cstring>
+ </property>
+ <property name="allColumnsShowFocus">
+ <bool>true</bool>
+ </property>
+ <property name="rootIsDecorated">
+ <bool>true</bool>
+ </property>
+ </widget>
+ <widget class="QGroupBox">
+ <property name="name">
+ <cstring>GroupBox1</cstring>
+ </property>
+ <property name="title">
+ <string>Clip Properties</string>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>11</number>
+ </property>
+ <property name="spacing">
+ <number>6</number>
+ </property>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>TextLabel1</cstring>
+ </property>
+ <property name="text">
+ <string>Pos:</string>
+ </property>
+ </widget>
+ <widget class="PosEdit">
+ <property name="name">
+ <cstring>start</cstring>
+ </property>
+ <property name="smpte">
+ <bool>true</bool>
+ </property>
+ </widget>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>TextLabel2</cstring>
+ </property>
+ <property name="text">
+ <string>Len:</string>
+ </property>
+ </widget>
+ <widget class="PosEdit">
+ <property name="name">
+ <cstring>len</cstring>
+ </property>
+ <property name="smpte">
+ <bool>true</bool>
+ </property>
+ </widget>
+ <spacer>
+ <property name="name" stdset="0">
+ <cstring>Spacer1</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>20</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </hbox>
+ </widget>
+ </vbox>
+</widget>
+<includes>
+ <include location="local" impldecl="in declaration">posedit.h</include>
+</includes>
+<layoutdefaults spacing="6" margin="11"/>
+</UI>
diff --git a/muse2/muse/widgets/comboQuant.cpp b/muse2/muse/widgets/comboQuant.cpp
new file mode 100644
index 00000000..4a81bc8e
--- /dev/null
+++ b/muse2/muse/widgets/comboQuant.cpp
@@ -0,0 +1,61 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: comboQuant.cpp,v 1.1.1.1 2003/10/27 18:54:52 wschweer Exp $
+// (C) Copyright 2001 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include <q3listbox.h>
+#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, const char* name)
+ : QComboBox(parent, name)
+ {
+ Q3ListBox* qlist = new Q3ListBox(this);
+ qlist->setMinimumWidth(95);
+ //setListBox(qlist); ddskrjo
+ qlist->setColumnMode(3);
+ for (int i = 0; i < 24; i++)
+ qlist->insertItem(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]) {
+ setCurrentItem(i);
+ return;
+ }
+ }
+ }
+
diff --git a/muse2/muse/widgets/comboQuant.h b/muse2/muse/widgets/comboQuant.h
new file mode 100644
index 00000000..0031fa33
--- /dev/null
+++ b/muse2/muse/widgets/comboQuant.h
@@ -0,0 +1,33 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: comboQuant.h,v 1.1.1.1 2003/10/27 18:54:30 wschweer Exp $
+// (C) Copyright 2001 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __COMBOQUANT_H__
+#define __COMBOQUANT_H__
+
+#include <qwidget.h>
+#include <qcombobox.h>
+
+//---------------------------------------------------------
+// ComboQuant
+//---------------------------------------------------------
+
+class ComboQuant : public QComboBox {
+ Q_OBJECT
+
+ private slots:
+ void activated(int);
+
+ signals:
+ void valueChanged(int);
+
+ public:
+ ComboQuant(QWidget* parent = 0, const char* name = 0);
+ void setValue(int val);
+ };
+
+#endif
+
diff --git a/muse2/muse/widgets/combobox.cpp b/muse2/muse/widgets/combobox.cpp
new file mode 100644
index 00000000..35959636
--- /dev/null
+++ b/muse2/muse/widgets/combobox.cpp
@@ -0,0 +1,74 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: combobox.cpp,v 1.4 2004/05/06 15:08:07 wschweer Exp $
+// (C) Copyright 2004 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include <q3popupmenu.h>
+#include <qcursor.h>
+//Added by qt3to4:
+#include <QMouseEvent>
+#include <Q3Frame>
+#include <QLabel>
+#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/muse2/muse/widgets/combobox.h b/muse2/muse/widgets/combobox.h
new file mode 100644
index 00000000..99bb382c
--- /dev/null
+++ b/muse2/muse/widgets/combobox.h
@@ -0,0 +1,49 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: combobox.h,v 1.3 2004/02/29 12:12:36 wschweer Exp $
+// (C) Copyright 2004 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __COMBOBOX_H__
+#define __COMBOBOX_H__
+
+#include <qlabel.h>
+//Added by qt3to4:
+#include <Q3PopupMenu>
+#include <QMouseEvent>
+
+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/muse2/muse/widgets/comment.cpp b/muse2/muse/widgets/comment.cpp
new file mode 100644
index 00000000..ef727859
--- /dev/null
+++ b/muse2/muse/widgets/comment.cpp
@@ -0,0 +1,86 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: comment.cpp,v 1.2 2004/02/08 18:30:00 wschweer Exp $
+// (C) Copyright 2001 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include "comment.h"
+#include "song.h"
+#include "track.h"
+#include <q3multilineedit.h>
+#include <qlabel.h>
+
+//---------------------------------------------------------
+// Comment
+//---------------------------------------------------------
+
+Comment::Comment(QWidget* parent, const char* name)
+ : CommentBase(parent, name)
+ {
+ }
+
+//---------------------------------------------------------
+// textChanged
+//---------------------------------------------------------
+
+void Comment::textChanged()
+ {
+ setText(textentry->text());
+ }
+
+//---------------------------------------------------------
+// TrackComment
+//---------------------------------------------------------
+
+TrackComment::TrackComment(Track* t, QWidget* parent, const char* name)
+ : Comment(parent, name)
+ {
+ setCaption(tr("MusE: Track Comment"));
+ track = t;
+ connect(song, SIGNAL(songChanged(int)), SLOT(songChanged(int)));
+ textentry->setText(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;
+
+ // check if track still exists:
+ TrackList* tl = song->tracks();
+ iTrack it;
+ for (it = tl->begin(); it != tl->end(); ++it) {
+ if (track == *it)
+ break;
+ }
+ if (it == tl->end()) {
+ close(true);
+ return;
+ }
+ label2->setText(track->name());
+ if (track->comment() != textentry->text()) {
+ disconnect(textentry, SIGNAL(textChanged()), this, SLOT(textChanged()));
+ textentry->setText(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/muse2/muse/widgets/comment.h b/muse2/muse/widgets/comment.h
new file mode 100644
index 00000000..f3fbd547
--- /dev/null
+++ b/muse2/muse/widgets/comment.h
@@ -0,0 +1,53 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: comment.h,v 1.2 2004/02/08 18:30:00 wschweer Exp $
+// (C) Copyright 2001 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __COMMENT_H__
+#define __COMMENT_H__
+
+#include <qwidget.h>
+#include "commentbase.h"
+
+class Xml;
+class Track;
+
+//---------------------------------------------------------
+// Comment
+//---------------------------------------------------------
+
+class Comment : public CommentBase {
+ Q_OBJECT
+
+ private:
+ virtual void setText(const QString& s) = 0;
+
+ private slots:
+ void textChanged();
+
+ public:
+ Comment(QWidget* parent, const char* name = 0);
+ };
+
+//---------------------------------------------------------
+// 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*, const char* name = 0);
+ };
+
+#endif
+
diff --git a/muse2/muse/widgets/commentbase.ui b/muse2/muse/widgets/commentbase.ui
new file mode 100644
index 00000000..a4bed010
--- /dev/null
+++ b/muse2/muse/widgets/commentbase.ui
@@ -0,0 +1,116 @@
+<!DOCTYPE UI><UI>
+<class>CommentBase</class>
+<widget>
+ <class>QWidget</class>
+ <property stdset="1">
+ <name>name</name>
+ <cstring>CommentBase</cstring>
+ </property>
+ <property stdset="1">
+ <name>geometry</name>
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>387</width>
+ <height>205</height>
+ </rect>
+ </property>
+ <property stdset="1">
+ <name>caption</name>
+ <string>Form1</string>
+ </property>
+ <vbox>
+ <property stdset="1">
+ <name>margin</name>
+ <number>11</number>
+ </property>
+ <property stdset="1">
+ <name>spacing</name>
+ <number>6</number>
+ </property>
+ <widget>
+ <class>QLayoutWidget</class>
+ <property stdset="1">
+ <name>name</name>
+ <cstring>Layout1</cstring>
+ </property>
+ <hbox>
+ <property stdset="1">
+ <name>margin</name>
+ <number>0</number>
+ </property>
+ <property stdset="1">
+ <name>spacing</name>
+ <number>6</number>
+ </property>
+ <widget>
+ <class>QLabel</class>
+ <property stdset="1">
+ <name>name</name>
+ <cstring>label1</cstring>
+ </property>
+ <property stdset="1">
+ <name>sizePolicy</name>
+ <sizepolicy>
+ <hsizetype>4</hsizetype>
+ <vsizetype>1</vsizetype>
+ </sizepolicy>
+ </property>
+ <property stdset="1">
+ <name>text</name>
+ <string>Track Comment</string>
+ </property>
+ </widget>
+ <widget>
+ <class>QLabel</class>
+ <property stdset="1">
+ <name>name</name>
+ <cstring>label2</cstring>
+ </property>
+ <property stdset="1">
+ <name>font</name>
+ <font>
+ <pointsize>12</pointsize>
+ <bold>1</bold>
+ </font>
+ </property>
+ <property stdset="1">
+ <name>frameShape</name>
+ <enum>Box</enum>
+ </property>
+ <property stdset="1">
+ <name>frameShadow</name>
+ <enum>Sunken</enum>
+ </property>
+ <property stdset="1">
+ <name>midLineWidth</name>
+ <number>1</number>
+ </property>
+ <property stdset="1">
+ <name>text</name>
+ <string>Track 1</string>
+ </property>
+ </widget>
+ </hbox>
+ </widget>
+ <widget>
+ <class>QMultiLineEdit</class>
+ <property stdset="1">
+ <name>name</name>
+ <cstring>textentry</cstring>
+ </property>
+ <property stdset="1">
+ <name>font</name>
+ <font>
+ <pointsize>12</pointsize>
+ <bold>1</bold>
+ </font>
+ </property>
+ <property stdset="1">
+ <name>frameShape</name>
+ <enum>WinPanel</enum>
+ </property>
+ </widget>
+ </vbox>
+</widget>
+</UI>
diff --git a/muse2/muse/widgets/configmidifilebase.ui b/muse2/muse/widgets/configmidifilebase.ui
new file mode 100644
index 00000000..4ba53d7e
--- /dev/null
+++ b/muse2/muse/widgets/configmidifilebase.ui
@@ -0,0 +1,259 @@
+<!DOCTYPE UI><UI version="3.2" stdsetdef="1">
+<class>ConfigMidiFileBase</class>
+<widget class="QDialog">
+ <property name="name">
+ <cstring>ConfigMidiFileBase</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>548</width>
+ <height>353</height>
+ </rect>
+ </property>
+ <property name="caption">
+ <string>MusE: Config Midi File Import/Export</string>
+ </property>
+ <property name="sizeGripEnabled">
+ <bool>true</bool>
+ </property>
+ <vbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QGroupBox">
+ <property name="name">
+ <cstring>midiImportGroupBox</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>1</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="title">
+ <string>Import:</string>
+ </property>
+ <grid>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QCheckBox" row="0" column="0">
+ <property name="name">
+ <cstring>splitPartsCheckBox</cstring>
+ </property>
+ <property name="text">
+ <string>Split tracks into &amp;parts</string>
+ </property>
+ <property name="accel">
+ <string>Alt+P</string>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Split tracks into parts, or one single part</string>
+ </property>
+ </widget>
+ </grid>
+ </widget>
+ <widget class="QGroupBox">
+ <property name="name">
+ <cstring>midiExportGroupBox</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>7</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="title">
+ <string>Export:</string>
+ </property>
+ <grid>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QLineEdit" row="2" column="1">
+ <property name="name">
+ <cstring>copyrightEdit</cstring>
+ </property>
+ </widget>
+ <widget class="QComboBox" row="1" column="1">
+ <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>
+ <property name="name">
+ <cstring>divisionCombo</cstring>
+ </property>
+ </widget>
+ <widget class="QCheckBox" row="3" column="0" rowspan="1" colspan="2">
+ <property name="name">
+ <cstring>extendedFormat</cstring>
+ </property>
+ <property name="enabled">
+ <bool>true</bool>
+ </property>
+ <property name="text">
+ <string>Enable extended smf format (currently not implemented)</string>
+ </property>
+ </widget>
+ <widget class="QCheckBox" row="4" column="0" rowspan="1" colspan="2">
+ <property name="name">
+ <cstring>twoByteTimeSigs</cstring>
+ </property>
+ <property name="text">
+ <string>Use &amp;2-byte time signatures instead of standard 4</string>
+ </property>
+ <property name="accel">
+ <string>Alt+2</string>
+ </property>
+ </widget>
+ <widget class="QLabel" row="2" column="0">
+ <property name="name">
+ <cstring>textLabel2</cstring>
+ </property>
+ <property name="text">
+ <string>Copyright:</string>
+ </property>
+ </widget>
+ <widget class="QLabel" row="0" column="0">
+ <property name="name">
+ <cstring>textLabel3</cstring>
+ </property>
+ <property name="text">
+ <string>Format:</string>
+ </property>
+ </widget>
+ <widget class="QLabel" row="1" column="0">
+ <property name="name">
+ <cstring>textLabel1</cstring>
+ </property>
+ <property name="text">
+ <string>Division:</string>
+ </property>
+ </widget>
+ <widget class="QCheckBox" row="5" column="0" rowspan="1" colspan="2">
+ <property name="name">
+ <cstring>optNoteOffs</cstring>
+ </property>
+ <property name="text">
+ <string>Save space by replacing note-offs with &amp;zero velocity note-ons</string>
+ </property>
+ <property name="accel">
+ <string>Alt+Z</string>
+ </property>
+ </widget>
+ <widget class="QComboBox" row="0" column="1">
+ <item>
+ <property name="text">
+ <string>0 (single track)</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>1 (multiple tracks)</string>
+ </property>
+ </item>
+ <property name="name">
+ <cstring>formatCombo</cstring>
+ </property>
+ </widget>
+ </grid>
+ </widget>
+ <widget class="QLayoutWidget">
+ <property name="name">
+ <cstring>Layout1</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>0</number>
+ </property>
+ <property name="spacing">
+ <number>6</number>
+ </property>
+ <spacer>
+ <property name="name">
+ <cstring>Horizontal Spacing2</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>20</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ <widget class="QPushButton">
+ <property name="name">
+ <cstring>buttonOk</cstring>
+ </property>
+ <property name="text">
+ <string>&amp;OK</string>
+ </property>
+ <property name="accel">
+ <string></string>
+ </property>
+ <property name="autoDefault">
+ <bool>true</bool>
+ </property>
+ <property name="default">
+ <bool>true</bool>
+ </property>
+ </widget>
+ <widget class="QPushButton">
+ <property name="name">
+ <cstring>buttonCancel</cstring>
+ </property>
+ <property name="text">
+ <string>&amp;Cancel</string>
+ </property>
+ <property name="accel">
+ <string></string>
+ </property>
+ <property name="autoDefault">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </hbox>
+ </widget>
+ </vbox>
+</widget>
+<connections>
+ <connection>
+ <sender>buttonOk</sender>
+ <signal>clicked()</signal>
+ <receiver>ConfigMidiFileBase</receiver>
+ <slot>accept()</slot>
+ </connection>
+ <connection>
+ <sender>buttonCancel</sender>
+ <signal>clicked()</signal>
+ <receiver>ConfigMidiFileBase</receiver>
+ <slot>reject()</slot>
+ </connection>
+</connections>
+<layoutdefaults spacing="6" margin="11"/>
+</UI>
diff --git a/muse2/muse/widgets/ctrlcombo.cpp b/muse2/muse/widgets/ctrlcombo.cpp
new file mode 100644
index 00000000..26512639
--- /dev/null
+++ b/muse2/muse/widgets/ctrlcombo.cpp
@@ -0,0 +1,56 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: ctrlcombo.cpp,v 1.1.1.1 2003/10/27 18:55:02 wschweer Exp $
+//
+// (C) Copyright 1999/2000 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include "ctrlcombo.h"
+
+//---------------------------------------------------------
+// CtrlComboBox
+//---------------------------------------------------------
+
+CtrlComboBox::CtrlComboBox(QWidget* parent, const char* name)
+ : QComboBox(parent, name)
+ {
+ 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)
+ insertItem(QString(ctxt[i]));
+ }
+
diff --git a/muse2/muse/widgets/ctrlcombo.cw b/muse2/muse/widgets/ctrlcombo.cw
new file mode 100644
index 00000000..f4f5b2ac
--- /dev/null
+++ b/muse2/muse/widgets/ctrlcombo.cw
@@ -0,0 +1,22 @@
+<!DOCTYPE CW><CW>
+<customwidgets>
+ <customwidget>
+ <class>CtrlComboBox</class>
+ <header location="global">ctrlcombo.h</header>
+ <sizehint>
+ <width>50</width>
+ <height>20</height>
+ </sizehint>
+ <container>0</container>
+ <sizepolicy>
+ <hordata>5</hordata>
+ <verdata>5</verdata>
+ </sizepolicy>
+ <pixmap>
+ <data format="XPM.GZ" length="646">789c6dd2c10ac2300c00d07bbf2234b7229d1be245fc04c5a3201e4615f430059d0711ff5ddb2e6bb236ec90eed134cb5a19d8ef36602af5ecdbfeeac05dda0798d3abebde87e3faa374d3807fa0d633a52d38d8de6f679fe33fc776e196f53cd010188256a3600a292882096246517815ca99884606e18044a3a40d91824820924265a7923a2e8bcd05f33db1173e002913175f2a6be6d3294871a2d95fa00e8a94ee017b69d339d90df1e77c57ea072ede6758</data>
+ </pixmap>
+ <signal>activated(int index)</signal>
+ <signal>activated(const QString&amp;)</signal>
+ </customwidget>
+</customwidgets>
+</CW>
diff --git a/muse2/muse/widgets/ctrlcombo.h b/muse2/muse/widgets/ctrlcombo.h
new file mode 100644
index 00000000..8aa134e3
--- /dev/null
+++ b/muse2/muse/widgets/ctrlcombo.h
@@ -0,0 +1,22 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: ctrlcombo.h,v 1.1.1.1 2003/10/27 18:54:30 wschweer Exp $
+//
+// (C) Copyright 1999/2000 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __CTRLGRP_H__
+#define __CTRLGRP_H__
+
+#include <qcombobox.h>
+
+class CtrlComboBox : public QComboBox {
+ Q_OBJECT
+ public:
+ CtrlComboBox(QWidget* parent, const char* name = 0);
+ };
+
+
+#endif
+
diff --git a/muse2/muse/widgets/dentry.cpp b/muse2/muse/widgets/dentry.cpp
new file mode 100644
index 00000000..61c0d096
--- /dev/null
+++ b/muse2/muse/widgets/dentry.cpp
@@ -0,0 +1,243 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: dentry.cpp,v 1.1.1.1.2.3 2008/08/18 00:15:26 terminator356 Exp $
+// (C) Copyright 1999 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include "dentry.h"
+#include <stdio.h>
+#include <qtimer.h>
+#include <qcursor.h>
+//Added by qt3to4:
+#include <QWheelEvent>
+#include <QMouseEvent>
+#include <QContextMenuEvent>
+#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, const char* name) : QLineEdit(parent, name)
+ {
+ _slider = 0;
+ _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;
+ }
+
+//---------------------------------------------------------
+// contextMenuEvent
+//---------------------------------------------------------
+
+void Dentry::contextMenuEvent(QContextMenuEvent * e)
+{
+ e->accept();
+}
+
+//---------------------------------------------------------
+// setFrame
+//---------------------------------------------------------
+
+void Dentry::setFrame(bool flag)
+ {
+ drawFrame = flag;
+ QLineEdit::setFrame(drawFrame);
+ update();
+ }
+
+//---------------------------------------------------------
+// endEdit
+//---------------------------------------------------------
+
+void Dentry::endEdit()
+ {
+ if (edited()) {
+ 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)
+ {
+ // Avoid unwanted wheel events from outside the control.
+ // Tested: No go, can't seem to determine where event came from.
+ /*
+ const QPoint gp = mapToGlobal(event->pos());
+ const QRect gr = QRect(mapToGlobal(rect().topLeft()), mapToGlobal(rect().bottomRight()));
+ if(!gr.contains(gp))
+ */
+ //if(sender() != this)
+ //{
+ // event->ignore();
+ // return;
+ //}
+
+ event->accept();
+
+ int delta = event->delta();
+
+ if (delta < 0)
+ {
+ if(_slider)
+ _slider->stepPages(-1);
+ else
+ decValue(-1.0);
+ }
+ else if (delta > 0)
+ {
+ if(_slider)
+ _slider->stepPages(1);
+ else
+ 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:
+ if(_slider)
+ _slider->stepPages(-1);
+ else
+ decValue(evx);
+ break;
+ case Qt::RightButton:
+ if(_slider)
+ _slider->stepPages(1);
+ else
+ 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();
+ emit doubleClicked(_id);
+ }
+
+//---------------------------------------------------------
+// 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/muse2/muse/widgets/dentry.h b/muse2/muse/widgets/dentry.h
new file mode 100644
index 00000000..58f1ef6f
--- /dev/null
+++ b/muse2/muse/widgets/dentry.h
@@ -0,0 +1,79 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: dentry.h,v 1.1.1.1.2.3 2008/08/18 00:15:26 terminator356 Exp $
+// (C) Copyright 1999 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __DENTRY_H__
+#define __DENTRY_H__
+
+#include <qlineedit.h>
+//Added by qt3to4:
+#include <QMouseEvent>
+#include <QContextMenuEvent>
+#include <QWheelEvent>
+
+#include "sliderbase.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 )
+
+ SliderBase* _slider;
+ 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*);
+ void contextMenuEvent(QContextMenuEvent*);
+
+ 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);
+ void doubleClicked(int);
+
+ public slots:
+ virtual void setValue(double);
+
+ public:
+ Dentry(QWidget*, const char* name=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; }
+ SliderBase* slider() const { return _slider; }
+ void setSlider(SliderBase* s) { _slider = s; }
+ };
+#endif
diff --git a/muse2/muse/widgets/didyouknow.ui b/muse2/muse/widgets/didyouknow.ui
new file mode 100644
index 00000000..005fa7b6
--- /dev/null
+++ b/muse2/muse/widgets/didyouknow.ui
@@ -0,0 +1,102 @@
+<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
+<class>DidYouKnow</class>
+<widget class="QDialog">
+ <property name="name">
+ <cstring>DidYouKnow</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>494</width>
+ <height>249</height>
+ </rect>
+ </property>
+ <property name="caption">
+ <string>Did you know?</string>
+ </property>
+ <vbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QLayoutWidget">
+ <property name="name">
+ <cstring>layout6</cstring>
+ </property>
+ <vbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QTextEdit">
+ <property name="name">
+ <cstring>tipText</cstring>
+ </property>
+ <property name="readOnly">
+ <bool>true</bool>
+ </property>
+ </widget>
+ <widget class="QLayoutWidget">
+ <property name="name">
+ <cstring>layout5</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QCheckBox">
+ <property name="name">
+ <cstring>dontShowCheckBox</cstring>
+ </property>
+ <property name="text">
+ <string>Don't show on startup</string>
+ </property>
+ </widget>
+ <spacer>
+ <property name="name">
+ <cstring>spacer7</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>121</width>
+ <height>31</height>
+ </size>
+ </property>
+ </spacer>
+ <widget class="QPushButton">
+ <property name="name">
+ <cstring>nextButton</cstring>
+ </property>
+ <property name="text">
+ <string>Next tip</string>
+ </property>
+ </widget>
+ <widget class="QPushButton">
+ <property name="name">
+ <cstring>closeButton</cstring>
+ </property>
+ <property name="text">
+ <string>Close</string>
+ </property>
+ </widget>
+ </hbox>
+ </widget>
+ </vbox>
+ </widget>
+ </vbox>
+</widget>
+<connections>
+ <connection>
+ <sender>closeButton</sender>
+ <signal>clicked()</signal>
+ <receiver>DidYouKnow</receiver>
+ <slot>accept()</slot>
+ </connection>
+</connections>
+<layoutdefaults spacing="6" margin="11"/>
+</UI>
diff --git a/muse2/muse/widgets/dimap.cpp b/muse2/muse/widgets/dimap.cpp
new file mode 100644
index 00000000..1f87358c
--- /dev/null
+++ b/muse2/muse/widgets/dimap.cpp
@@ -0,0 +1,308 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: dimap.cpp,v 1.1.1.1 2003/10/27 18:55:11 wschweer Exp $
+
+// Copyright (C) 1997 Josef Wilgen
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License, version 2,
+// as published by the Free Software Foundation.
+//
+// (C) Copyright 2000 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include <cmath>
+#include "dimap.h"
+#include "mmath.h"
+
+const double DiMap::LogMin = 1.0e-150;
+const double DiMap::LogMax = 1.0e150;
+
+// DiMap - Map a double interval into an integer interval
+//
+// The DiMap class maps an interval of type double into an interval of
+// type integer. It consists
+// of two intervals D = [d1, d2] (double) and I = [i1, i2] (int), which are
+// specified with the @DiMap::setDblRange@ and @DiMap::setIntRange@
+// members. The point d1 is mapped to the point i1, and d2 is mapped to i2.
+// Any point inside or outside D can be mapped to a point inside or outside
+// I using @DiMap::transform@ or @DiMap::limTransform@ or vice versa
+// using @QwtPlot::invTransform@. D can be scaled linearly or
+// logarithmically, as specified with @DiMap::setDblRange@.
+
+//------------------------------------------------------------
+//.F DiMap::DiMap (1)
+// Construct a DiMap instance.
+//
+//.u Syntax
+//.f DiMap::DiMap()
+//
+//.u Description
+// The double and integer intervals are both set to [0,1].
+//------------------------------------------------------------
+
+DiMap::DiMap()
+ {
+ d_x1 = 0.0;
+ d_x2 = 1.0;
+ d_y1 = 0;
+ d_y2 = 1;
+ d_cnv = 1.0;
+ }
+
+//------------------------------------------------------------
+//.F DiMap::DiMap (2)
+// Construct a DiMap instance with initial integer
+// and double intervals
+//
+//.u Syntax
+//.f DiMap::DiMap(int i1, int i2, double d1, double d2, bool logarithmic)
+//
+//.u Parameters
+//.p int i1 -- first border of integer interval
+// int i2 -- second border of integer interval
+// double d1 -- first border of double interval
+// double d2 -- second border of double interval
+// bool logarithmic -- logarithmic mapping, TRUE or FALSE. Defaults
+// to FALSE.
+//------------------------------------------------------------
+
+DiMap::DiMap(int i1, int i2, double d1, double d2, bool logarithmic)
+ {
+ d_log = logarithmic;
+ setIntRange(i1,i2);
+ setDblRange(d1, d2);
+ }
+
+//------------------------------------------------------------
+//.F DiMap::~DiMap
+// Destroy a DiMap instance.
+//
+//.u Syntax
+//.f DiMap::~DiMap()
+//------------------------------------------------------------
+
+DiMap::~DiMap()
+ {
+ }
+
+//------------------------------------------------------------
+//.F DiMap::contains (1)
+// Returns TRUE if a value x lies inside or at the border of the
+// map's double range.
+//
+//.u Syntax
+//.f bool DiMap::contains(double x)
+//
+//.u Parameters
+//.p double x -- value
+//------------------------------------------------------------
+
+bool DiMap::contains(double x) const
+ {
+ return ( (x >= qwtMin(d_x1, d_x1)) && (x <= qwtMax(d_x1, d_x2)));
+ }
+
+//------------------------------------------------------------
+//.F DiMap::contains (2)
+// Returns TRUE if a value x lies inside or at the border of the
+// map's integer range
+//
+//.u Syntax
+//.f bool DiMap::contains(int x)
+//
+//.u Parameters
+//.p int x -- value
+//------------------------------------------------------------
+
+bool DiMap::contains(int x) const
+ {
+ return ( (x >= qwtMin(d_y1, d_y1)) && (x <= qwtMax(d_y1, d_y2)));
+ }
+
+//------------------------------------------------------------
+//.F DiMap::setDblRange
+// Specify the borders of the double interval
+//
+//.u Syntax
+//.f void DiMap::setDblRange(double d1, double d2, bool lg = FALSE)
+//
+//.u Parameters
+//.p double d1 -- first border
+// double d2 -- second border
+// bool lg -- logarithmic (TRUE) or linear (FALSE)
+// scaling. Defaults to FALSE.
+//------------------------------------------------------------
+
+void DiMap::setDblRange(double d1, double d2, bool lg)
+ {
+ if (lg) {
+ d_log = true;
+ if (d1 < LogMin)
+ d1 = LogMin;
+ else if (d1 > LogMax)
+ d1 = LogMax;
+
+ if (d2 < LogMin)
+ d2 = LogMin;
+ else if (d2 > LogMax)
+ d2 = LogMax;
+
+ d_x1 = log(d1);
+ d_x2 = log(d2);
+ }
+ else {
+ d_log = FALSE;
+ d_x1 = d1;
+ d_x2 = d2;
+ }
+ newFactor();
+ }
+
+//------------------------------------------------------------
+//.F DiMap::setIntRange
+// Specify the borders of the integer interval
+//
+//.u Syntax
+//.f void DiMap::setIntRange(int i1, int i2)
+//
+//.u Parameters
+//.p int i1 -- first border
+// int i2 -- second border
+//------------------------------------------------------------
+
+void DiMap::setIntRange(int i1, int i2)
+ {
+ d_y1 = i1;
+ d_y2 = i2;
+ newFactor();
+ }
+
+//------------------------------------------------------------
+//.F DiMap::transform
+// Transform a point in double interval into an point in the
+// integer interval
+//
+//.u Syntax
+//.f int DiMap::transform(double x)
+//
+//.u Parameters
+//.p double x
+//
+//.u Return Value
+//.t
+// linear mapping: -- rint(i1 + (i2 - i1) / (d2 - d1) * (x - d1))
+// logarithmic mapping: -- rint(i1 + (i2 - i1) / log(d2 / d1) * log(x / d1))
+//
+//.u Note
+// The specified point is allowed to lie outside the intervals. If you
+// want to limit the returned value, use @DiMap::limTransform@.
+//------------------------------------------------------------
+
+int DiMap::transform(double x) const
+ {
+ if (d_log)
+ return (d_y1 + int(rint( (log(x) - d_x1) * d_cnv )));
+ else
+ return (d_y1 + int(rint( (x - d_x1) * d_cnv )));
+ }
+
+//------------------------------------------------------------
+//.F DiMap::invTransform
+// Transform an integer value into a double value
+//
+//.u Syntax
+//.f double DiMap::invTransform(int y)
+//
+//.u Parameters
+//.p int y -- integer value to be transformed
+//
+//.u Return Value
+//.t
+// linear mapping: -- d1 + (d2 - d1) / (i2 - i1) * (y - i1)
+// logarithmic mapping: -- d1 + (d2 - d1) / log(i2 / i1) * log(y / i1)
+//------------------------------------------------------------
+
+double DiMap::invTransform(int y) const
+ {
+ if (d_cnv == 0.0)
+ return 0.0;
+ else {
+ if (d_log)
+ return exp(d_x1 + double(y - d_y1) / d_cnv );
+ else
+ return ( d_x1 + double(y - d_y1) / d_cnv );
+ }
+ }
+
+//------------------------------------------------------------
+//.F DiMap::limTransform
+// Transform and limit
+//
+//.u Syntax
+//.f int DiMap::limTransform(double x)
+//
+//.u Parameters
+//.p double x
+//
+//.u Return Value
+// transformed value
+//
+//.u Description
+// The function is similar to @DiMap::transform@, but limits the input value
+// to the nearest border of the map's double interval if it lies outside
+// that interval.
+//------------------------------------------------------------
+
+int DiMap::limTransform(double x) const
+ {
+ if ( x > qwtMax(d_x1, d_x2) )
+ x = qwtMax(d_x1, d_x2);
+ else if ( x < qwtMin(d_x1, d_x2))
+ x = qwtMin(d_x1, d_x2);
+ return transform(x);
+ }
+
+//------------------------------------------------------------
+//.F DiMap::xTransform
+// Exact transformation
+//
+//.u Syntax
+//.f double DiMap::dTransform(double x)
+//
+//.u Parameters
+//.p double x -- value to be transformed
+//
+//.u Return Value
+//.t
+// linear mapping: -- i1 + (i2 - i1) / (d2 - d1) * (x - d1)
+// logarithmic mapping: -- i1 + (i2 - i1) / log(d2 / d1) * log(x / d1)
+//
+//.u Description
+// This function is similar to @DiMap::transform@, but
+// makes the integer interval appear to be double.
+//------------------------------------------------------------
+
+double DiMap::xTransform(double x) const
+ {
+ double rv;
+
+ if (d_log)
+ rv = double(d_y1) + (log(x) - d_x1) * d_cnv;
+ else
+ rv = double(d_y1) + (x - d_x1) * d_cnv;
+ return rv;
+ }
+
+//------------------------------------------------------------
+//.F DiMap::newFactor
+// Re-calculate the conversion factor.
+//------------------------------------------------------------
+
+void DiMap::newFactor()
+ {
+ if (d_x2 != d_x1)
+ d_cnv = double(d_y2 - d_y1) / (d_x2 - d_x1);
+ else
+ d_cnv = 0.0;
+ }
diff --git a/muse2/muse/widgets/dimap.h b/muse2/muse/widgets/dimap.h
new file mode 100644
index 00000000..5e9ac3ee
--- /dev/null
+++ b/muse2/muse/widgets/dimap.h
@@ -0,0 +1,55 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: dimap.h,v 1.1.1.1 2003/10/27 18:54:28 wschweer Exp $
+//
+// Copyright (C) 1997 Josef Wilgen
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License, version 2,
+// as published by the Free Software Foundation.
+//
+// (C) Copyright 2000 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __DIMAP_H__
+#define __DIMAP_H__
+
+#include <qglobal.h>
+
+class DiMap
+ {
+ double d_x1, d_x2; // double interval boundaries
+ int d_y1,d_y2; // integer interval boundaries
+ double d_cnv; // conversion factor
+ bool d_log; // logarithmic scale?
+
+ void newFactor();
+
+ public:
+ static const double LogMin;
+ static const double LogMax;
+
+ DiMap();
+ DiMap(int, int, double, double, bool lg = FALSE);
+ ~DiMap();
+
+
+ bool contains(double x) const;
+ bool contains(int x) const;
+
+ void setIntRange(int i1, int i2);
+ void setDblRange(double d1, double d2, bool lg = FALSE);
+
+ int transform(double x) const;
+ double invTransform(int i) const;
+ int limTransform(double x) const;
+ double xTransform(double x) const;
+
+ double d1() const { return d_x1;}
+ double d2() const { return d_x2;}
+ int i1() const { return d_y1;}
+ int i2() const { return d_y2;}
+ bool logarithmic() const { return d_log;}
+ };
+
+#endif
diff --git a/muse2/muse/widgets/doublelabel.cpp b/muse2/muse/widgets/doublelabel.cpp
new file mode 100644
index 00000000..c20de1e2
--- /dev/null
+++ b/muse2/muse/widgets/doublelabel.cpp
@@ -0,0 +1,189 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: doublelabel.cpp,v 1.1.1.1.2.2 2008/08/18 00:15:26 terminator356 Exp $
+// (C) Copyright 1999 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include <stdio.h>
+
+#include "doublelabel.h"
+#include <qvalidator.h>
+#include <qpalette.h>
+#include <stdio.h>
+#include <values.h>
+
+#include "utils.h"
+
+//---------------------------------------------------------
+// DoubleLabel
+//---------------------------------------------------------
+
+DoubleLabel::DoubleLabel(QWidget* parent, const char* name)
+ : Dentry(parent, name), _specialText("---")
+ {
+ min = 0.0;
+ max = 1.0;
+ _off = -1.0;
+ _precision = 3;
+ setValue(0.0);
+ }
+
+DoubleLabel::DoubleLabel(double _val, double m, double mx, QWidget* parent)
+ : Dentry(parent), _specialText("---")
+ {
+ min = m;
+ max = mx;
+ _off = m - 1.0;
+ _precision = 3;
+ setValue(_val);
+ }
+
+//---------------------------------------------------------
+// setOff
+//---------------------------------------------------------
+
+void DoubleLabel::setOff(double v)
+{
+ _off = v;
+ setString(val);
+}
+
+//---------------------------------------------------------
+// calcIncrement()
+//---------------------------------------------------------
+
+double DoubleLabel::calcIncrement() const
+{
+ double dif;
+ if(max - min > 0)
+ dif = max - min;
+ else
+ dif = min - max;
+
+ if(dif <= 10.0)
+ return 0.1;
+ else
+ if(dif <= 100.0)
+ return 1.0;
+ else
+ return 10.0;
+}
+
+//---------------------------------------------------------
+// setString
+//---------------------------------------------------------
+
+bool DoubleLabel::setString(double v)
+ {
+ if(v <= _off || v > max)
+ {
+ setText(_specialText);
+ return true;
+ }
+ else
+ if(v < min)
+ {
+ setText(QString("---"));
+ return true;
+ }
+ else
+ {
+ QString s;
+ 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 >= max)
+ return;
+ double inc = calcIncrement();
+ if(val + inc >= max)
+ setValue(max);
+ else
+ setValue(val + inc);
+ emit valueChanged(val, _id);
+ }
+
+//---------------------------------------------------------
+// decValue
+//---------------------------------------------------------
+
+void DoubleLabel::decValue(double)
+ {
+ if(val <= min)
+ return;
+ double inc = calcIncrement();
+ if(val - inc <= min)
+ setValue(min);
+ else
+ setValue(val - inc);
+ 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 + 6;
+#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/muse2/muse/widgets/doublelabel.h b/muse2/muse/widgets/doublelabel.h
new file mode 100644
index 00000000..6698ec57
--- /dev/null
+++ b/muse2/muse/widgets/doublelabel.h
@@ -0,0 +1,60 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: doublelabel.h,v 1.2.2.3 2008/08/18 00:15:26 terminator356 Exp $
+// (C) Copyright 1999 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __DOUBLELABEL_H__
+#define __DOUBLELABEL_H__
+
+#include "dentry.h"
+
+//---------------------------------------------------------
+// DoubleLabel
+//---------------------------------------------------------
+
+class DoubleLabel : public Dentry {
+ Q_OBJECT
+
+ 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, _off;
+ QString _specialText; // text to show if value outside min,max
+ QString _suffix;
+ int _precision;
+
+ double calcIncrement() const;
+
+ 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; }
+ double off() const { return _off; }
+ void setMinValue(double v) { min = v; }
+ void setMaxValue(double v) { max = v; }
+ void setRange(double a, double b) { _off = a - (min - _off); min = a; max = b; }
+ void setOff(double v);
+ 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/muse2/muse/widgets/drange.cpp b/muse2/muse/widgets/drange.cpp
new file mode 100644
index 00000000..5c986403
--- /dev/null
+++ b/muse2/muse/widgets/drange.cpp
@@ -0,0 +1,262 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: drange.cpp,v 1.2.2.1 2009/03/09 02:05:18 terminator356 Exp $
+//
+// Copyright (C) 1997 Josef Wilgen
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License, version 2,
+// as published by the Free Software Foundation.
+//
+// (C) Copyright 2000 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include <cmath>
+#include "mmath.h"
+#include "drange.h"
+
+const double DoubleRange::MinRelStep = 1.0e-10;
+const double DoubleRange::DefaultRelStep = 1.0e-2;
+const double DoubleRange::MinEps = 1.0e-10;
+
+//-----------------------------------------------------------
+// This class is useful as a base class or a member for sliders.
+// It represents an interval of type double within which a value can
+// be moved. The value can be either an arbitrary point inside
+// the interval (see @DoubleRange::setValue@), or it can be fitted
+// into a step raster (see @DoubleRange::fitValue@ and
+// @DoubleRange::incValue@).
+//
+// As a special case, a DoubleRange can be periodic, which means that
+// a value outside the interval will be mapped to a value inside the
+// interval when @DoubleRange::setValue@, @DoubleRange::fitValue@,
+// @DoubleRange::incValue@ or @DoubleRange::incPages@ are called.
+//------------------------------------------------------------
+
+//---------------------------------------------------------
+// doubleRange
+//---------------------------------------------------------
+
+DoubleRange::DoubleRange()
+ {
+ d_minValue = 0;
+ d_maxValue = 100.0;
+ d_prevValue = 0.0;
+ d_exactPrevValue = 0.0;
+ d_exactValue = 0.0;
+ d_value = 0.0;
+ d_step = 0.1;
+ d_periodic = FALSE;
+ }
+
+//---------------------------------------------------------
+// setNewValue
+//---------------------------------------------------------
+
+void DoubleRange::setNewValue(double x, bool align)
+ {
+ d_prevValue = d_value;
+
+ double vmin = qwtMin(d_minValue, d_maxValue);
+ double vmax = qwtMax(d_minValue, d_maxValue);
+
+ // Range check
+
+ if (x < vmin) {
+ if ((d_periodic) && (vmin != vmax))
+ d_value = x + ceil((vmin - x) / (vmax - vmin))
+ * (vmax - vmin);
+ else
+ d_value = vmin;
+ }
+ else if (x > vmax) {
+ if ((d_periodic) && (vmin != vmax))
+ d_value = x - ceil( ( x - vmax) / (vmax - vmin ))
+ * (vmax - vmin);
+ else
+ d_value = vmax;
+ }
+ else
+ d_value = x;
+
+ d_exactPrevValue = d_exactValue;
+ d_exactValue = d_value;
+
+ // align to grid
+ if (align) {
+ if (d_step != 0.0)
+ d_value = d_minValue + rint((d_value - d_minValue) / d_step ) * d_step;
+ else
+ d_value = d_minValue;
+
+ // correct rounding error at the border
+ if (fabs(d_value - d_maxValue) < MinEps * qwtAbs(d_step))
+ d_value = d_maxValue;
+
+ // correct rounding error if value = 0
+ if (fabs(d_value) < MinEps * qwtAbs(d_step))
+ d_value = 0.0;
+ }
+ if (d_prevValue != d_value)
+ valueChange();
+ }
+
+//---------------------------------------------------------
+// fitValue
+// Adjust the value to the closest point in the step
+// raster.
+// The value is clipped when it lies outside the range.
+// When the range is @DoubleRange::periodic@, it will
+// be mapped to a point in the interval such that
+//---------------------------------------------------------
+
+void DoubleRange::fitValue(double x)
+ {
+ setNewValue(x, true);
+ }
+
+//---------------------------------------------------------
+// setValue
+// Set a new value without adjusting to the step raster
+// The value is clipped when it lies outside the range.
+// When the range is @DoubleRange::periodic@, it will
+// be mapped to a point in the interval such that
+//
+// new value := x + n * (max. value - min. value)
+//
+// with an integer number n.
+//---------------------------------------------------------
+
+void DoubleRange::setValue(double x)
+ {
+ setNewValue(x, false);
+ }
+
+//---------------------------------------------------------
+// setRange
+// Specify range and step size
+// - A change of the range changes the value if it lies outside the
+// new range. The current value
+// will *not* be adjusted to the new step raster.
+// - vmax < vmin is allowed.
+// - If the step size is left out or set to zero, it will be
+// set to 1/100 of the interval length.
+// - If the step size has an absurd value, it will be corrected
+// to a better one.
+//---------------------------------------------------------
+
+void DoubleRange::setRange(double vmin, double vmax, double vstep, int pageSize)
+ {
+ bool rchg = ((d_maxValue != vmax) || (d_minValue != vmin));
+
+ if (rchg) {
+ d_minValue = vmin;
+ d_maxValue = vmax;
+ }
+
+ //
+ // look if the step width has an acceptable
+ // value or otherwise change it.
+ //
+ setStep(vstep);
+
+ //
+ // limit page size
+ //
+ d_pageSize = qwtLim(pageSize,0, int(qwtAbs((d_maxValue - d_minValue) / d_step)));
+
+ //
+ // If the value lies out of the range, it
+ // will be changed. Note that it will not be adjusted to
+ // the new step width.
+ setNewValue(d_value, false);
+
+ // call notifier after the step width has been
+ // adjusted.
+ if (rchg)
+ rangeChange();
+ }
+
+//---------------------------------------------------------
+// setStep
+// Change the step raster
+//
+// The value will *not* be adjusted to the new step raster.
+//---------------------------------------------------------
+
+void DoubleRange::setStep(double vstep)
+ {
+ double newStep,intv;
+
+ intv = d_maxValue - d_minValue;
+
+ if (vstep == 0.0)
+ newStep = intv * DefaultRelStep;
+ else {
+ if (((intv > 0) && (vstep < 0)) || ((intv < 0) && (vstep > 0)))
+ newStep = -vstep;
+ else
+ newStep = vstep;
+
+ if ( fabs(newStep) < fabs(MinRelStep * intv) )
+ newStep = MinRelStep * intv;
+ }
+
+ if (newStep != d_step) {
+ d_step = newStep;
+ stepChange();
+ }
+ }
+
+//---------------------------------------------------------
+// setPeriodic
+// Make the range periodic
+//
+// When the range is periodic, the value will be set to a point
+// inside the interval such that
+//
+// point = value + n * width
+//
+// if the user tries to set a new value which is outside the range.
+// If the range is nonperiodic (the default), values outside the
+// range will be clipped.
+//---------------------------------------------------------
+
+void DoubleRange::setPeriodic(bool tf)
+ {
+ d_periodic = tf;
+ }
+
+//------------------------------------------------------------
+// incValue
+// Increment the value by a specified number of steps
+//
+// As a result of this operation, the new value will always be
+// adjusted to the step raster.
+//------------------------------------------------------------
+
+void DoubleRange::incValue(int nSteps)
+ {
+ setNewValue(d_value + double(nSteps) * d_step, true);
+ }
+
+//---------------------------------------------------------
+// incPages
+// Increment the value by a specified number of pages
+//---------------------------------------------------------
+
+void DoubleRange::incPages(int nPages)
+ {
+ setNewValue(d_value + double(nPages) * double(d_pageSize)
+ * d_step, true);
+ }
+
+//---------------------------------------------------------
+// step
+//---------------------------------------------------------
+
+double DoubleRange::step() const
+ {
+ return qwtAbs(d_step);
+ }
+
diff --git a/muse2/muse/widgets/drange.h b/muse2/muse/widgets/drange.h
new file mode 100644
index 00000000..1ee3dd21
--- /dev/null
+++ b/muse2/muse/widgets/drange.h
@@ -0,0 +1,71 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: drange.h,v 1.1.1.1.2.1 2007/01/27 14:52:43 spamatica Exp $
+//
+// Copyright (C) 1997 Josef Wilgen
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License, version 2,
+// as published by the Free Software Foundation.
+//
+// (C) Copyright 2000 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __DOUBLE_RANGE_H__
+#define __DOUBLE_RANGE_H__
+
+#include <qglobal.h>
+
+//---------------------------------------------------------
+// DoubleRange
+//---------------------------------------------------------
+
+class DoubleRange
+ {
+ static const double MinRelStep;
+ static const double DefaultRelStep;
+ static const double MinEps;
+
+ double d_minValue;
+ double d_maxValue;
+ double d_step;
+ int d_pageSize;
+ double d_value;
+ double d_exactValue;
+ double d_exactPrevValue;
+ double d_prevValue;
+ bool d_periodic;
+
+ void setNewValue(double x, bool align = false);
+
+ protected:
+ double exactValue() const { return d_exactValue; }
+ double exactPrevValue() const { return d_exactPrevValue; }
+ double prevValue() const { return d_prevValue; }
+ virtual void valueChange() {}
+ virtual void stepChange() {}
+ virtual void rangeChange() {}
+
+ public:
+ DoubleRange();
+ virtual ~DoubleRange(){};
+
+ double value() const { return d_value; }
+ virtual void setValue(double);
+
+ virtual void fitValue(double);
+ virtual void incValue(int);
+ virtual void incPages(int);
+ void setPeriodic(bool tf);
+ void setRange(double vmin, double vmax, double vstep = 0.0,
+ int pagesize = 1);
+ void setStep(double);
+
+ double maxValue() const { return d_maxValue; }
+ double minValue() const { return d_minValue; }
+ bool periodic() const { return d_periodic; }
+ int pageSize() const { return d_pageSize; }
+ double step() const;
+ };
+
+#endif
diff --git a/muse2/muse/widgets/editctrl7dialogbase.ui b/muse2/muse/widgets/editctrl7dialogbase.ui
new file mode 100644
index 00000000..6d649555
--- /dev/null
+++ b/muse2/muse/widgets/editctrl7dialogbase.ui
@@ -0,0 +1,214 @@
+<!DOCTYPE UI><UI version="3.0" stdsetdef="1">
+<class>EditCtrl7DialogBase</class>
+<widget class="QDialog">
+ <property name="name">
+ <cstring>EditCtrl7DialogBase</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>331</width>
+ <height>160</height>
+ </rect>
+ </property>
+ <property name="caption">
+ <string>MusE: Enter Controller</string>
+ </property>
+ <property name="sizeGripEnabled">
+ <bool>true</bool>
+ </property>
+ <vbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>11</number>
+ </property>
+ <property name="spacing">
+ <number>6</number>
+ </property>
+ <widget class="QLayoutWidget">
+ <property name="name">
+ <cstring>Layout12</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>0</number>
+ </property>
+ <property name="spacing">
+ <number>6</number>
+ </property>
+ <widget class="QLayoutWidget">
+ <property name="name">
+ <cstring>Layout11</cstring>
+ </property>
+ <grid>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>0</number>
+ </property>
+ <property name="spacing">
+ <number>6</number>
+ </property>
+ <widget class="QLabel" row="1" column="0">
+ <property name="name">
+ <cstring>TextLabel3</cstring>
+ </property>
+ <property name="text">
+ <string>Controller:</string>
+ </property>
+ </widget>
+ <widget class="PosEdit" row="0" column="1">
+ <property name="name">
+ <cstring>PosEdit3</cstring>
+ </property>
+ </widget>
+ <widget class="QSpinBox" row="1" column="1">
+ <property name="name">
+ <cstring>SpinBox2</cstring>
+ </property>
+ </widget>
+ <widget class="QLabel" row="0" column="0">
+ <property name="name">
+ <cstring>TextLabel2</cstring>
+ </property>
+ <property name="text">
+ <string>Time Position:</string>
+ </property>
+ </widget>
+ <widget class="QSpinBox" row="2" column="1">
+ <property name="name">
+ <cstring>SpinBox3</cstring>
+ </property>
+ </widget>
+ <widget class="QLabel" row="2" column="0">
+ <property name="name">
+ <cstring>TextLabel4</cstring>
+ </property>
+ <property name="text">
+ <string>Value:</string>
+ </property>
+ </widget>
+ </grid>
+ </widget>
+ <spacer>
+ <property name="name" stdset="0">
+ <cstring>Spacer7</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>20</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </hbox>
+ </widget>
+ <widget class="QSlider">
+ <property name="name">
+ <cstring>Slider1</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>controller value</string>
+ </property>
+ </widget>
+ <widget class="QLayoutWidget">
+ <property name="name">
+ <cstring>Layout1</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>0</number>
+ </property>
+ <property name="spacing">
+ <number>6</number>
+ </property>
+ <spacer>
+ <property name="name" stdset="0">
+ <cstring>Horizontal Spacing2</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>20</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ <widget class="QPushButton">
+ <property name="name">
+ <cstring>buttonOk</cstring>
+ </property>
+ <property name="text">
+ <string>OK</string>
+ </property>
+ <property name="accel">
+ <number>0</number>
+ </property>
+ <property name="autoDefault">
+ <bool>true</bool>
+ </property>
+ <property name="default">
+ <bool>true</bool>
+ </property>
+ </widget>
+ <widget class="QPushButton">
+ <property name="name">
+ <cstring>buttonCancel</cstring>
+ </property>
+ <property name="text">
+ <string>Cancel</string>
+ </property>
+ <property name="accel">
+ <number>0</number>
+ </property>
+ <property name="autoDefault">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </hbox>
+ </widget>
+ </vbox>
+</widget>
+<connections>
+ <connection>
+ <sender>buttonOk</sender>
+ <signal>clicked()</signal>
+ <receiver>EditCtrl7DialogBase</receiver>
+ <slot>accept()</slot>
+ </connection>
+ <connection>
+ <sender>buttonCancel</sender>
+ <signal>clicked()</signal>
+ <receiver>EditCtrl7DialogBase</receiver>
+ <slot>reject()</slot>
+ </connection>
+</connections>
+<includes>
+ <include location="local" impldecl="in declaration">posedit.h</include>
+</includes>
+<layoutdefaults spacing="6" margin="11"/>
+</UI>
diff --git a/muse2/muse/widgets/editmetadialogbase.ui b/muse2/muse/widgets/editmetadialogbase.ui
new file mode 100644
index 00000000..573930b9
--- /dev/null
+++ b/muse2/muse/widgets/editmetadialogbase.ui
@@ -0,0 +1,254 @@
+<!DOCTYPE UI><UI version="3.0" stdsetdef="1">
+<class>EditMetaDialogBase</class>
+<widget class="QDialog">
+ <property name="name">
+ <cstring>EditMetaDialogBase</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>475</width>
+ <height>285</height>
+ </rect>
+ </property>
+ <property name="caption">
+ <string>MusE: Enter Meta Event</string>
+ </property>
+ <property name="sizeGripEnabled">
+ <bool>true</bool>
+ </property>
+ <grid>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>11</number>
+ </property>
+ <property name="spacing">
+ <number>6</number>
+ </property>
+ <widget class="QTextEdit" row="2" column="0" rowspan="1" colspan="4">
+ <property name="name">
+ <cstring>TextEdit1</cstring>
+ </property>
+ </widget>
+ <widget class="QLayoutWidget" row="3" column="0" rowspan="1" colspan="4">
+ <property name="name">
+ <cstring>Layout1</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>0</number>
+ </property>
+ <property name="spacing">
+ <number>6</number>
+ </property>
+ <spacer>
+ <property name="name" stdset="0">
+ <cstring>Horizontal Spacing2</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>20</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ <widget class="QPushButton">
+ <property name="name">
+ <cstring>buttonOk</cstring>
+ </property>
+ <property name="text">
+ <string>OK</string>
+ </property>
+ <property name="accel">
+ <number>0</number>
+ </property>
+ <property name="autoDefault">
+ <bool>true</bool>
+ </property>
+ <property name="default">
+ <bool>true</bool>
+ </property>
+ </widget>
+ <widget class="QPushButton">
+ <property name="name">
+ <cstring>buttonCancel</cstring>
+ </property>
+ <property name="text">
+ <string>Cancel</string>
+ </property>
+ <property name="accel">
+ <number>0</number>
+ </property>
+ <property name="autoDefault">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </hbox>
+ </widget>
+ <widget class="QLabel" row="1" column="1" rowspan="1" colspan="3">
+ <property name="name">
+ <cstring>TextLabel1_2</cstring>
+ </property>
+ <property name="text">
+ <string>TextLabel1</string>
+ </property>
+ </widget>
+ <spacer row="0" column="1">
+ <property name="name" stdset="0">
+ <cstring>Spacer5</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>20</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ <widget class="QToolButton" row="0" column="2">
+ <property name="name">
+ <cstring>saveButton</cstring>
+ </property>
+ <property name="text">
+ <string></string>
+ </property>
+ <property name="pixmap">
+ <pixmap>image0</pixmap>
+ </property>
+ </widget>
+ <widget class="QToolButton" row="0" column="3">
+ <property name="name">
+ <cstring>loadButton</cstring>
+ </property>
+ <property name="text">
+ <string></string>
+ </property>
+ <property name="pixmap">
+ <pixmap>image1</pixmap>
+ </property>
+ </widget>
+ <widget class="QLayoutWidget" row="0" column="0" rowspan="2" colspan="1">
+ <property name="name">
+ <cstring>Layout8</cstring>
+ </property>
+ <grid>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>0</number>
+ </property>
+ <property name="spacing">
+ <number>6</number>
+ </property>
+ <widget class="QLabel" row="0" column="0">
+ <property name="name">
+ <cstring>TextLabel1</cstring>
+ </property>
+ <property name="text">
+ <string>Time Position:</string>
+ </property>
+ </widget>
+ <widget class="QLabel" row="1" column="0">
+ <property name="name">
+ <cstring>TextLabel2</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>4</hsizetype>
+ <vsizetype>1</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>Meta Type:</string>
+ </property>
+ </widget>
+ <widget class="QCheckBox" row="2" column="0" rowspan="1" colspan="2">
+ <property name="name">
+ <cstring>CheckBox1</cstring>
+ </property>
+ <property name="text">
+ <string>Enter Hex</string>
+ </property>
+ </widget>
+ <widget class="QSpinBox" row="1" column="1">
+ <property name="name">
+ <cstring>SpinBox1</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>4</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ </widget>
+ <widget class="QLabel" row="1" column="2">
+ <property name="name">
+ <cstring>metaTypeLabel</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>4</hsizetype>
+ <vsizetype>1</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ </widget>
+ <widget class="PosEdit" row="0" column="1">
+ <property name="name">
+ <cstring>PosEdit1</cstring>
+ </property>
+ </widget>
+ </grid>
+ </widget>
+ </grid>
+</widget>
+<images>
+ <image name="image0">
+ <data format="XPM.GZ" length="2285">789c8dd35d6fda301406e07b7e05aaefaae934719c9068dac5cabebab60c3668d34dbb308e03edfab11518eda6fdf71d9f7382a02dd3fa16a407bf716c07f676db65ffb8bdbbd79acdedfcdcb5ddd4deb677abc5d5d5fd97af2f7eb776b46ee37fc7b4f5ceb3d6ce60de76eddecdb50f80254245f447ae1b2731d9af5c909dd888abc686fb11398f5c9493278d63f634388e42c89fc9790879dc58f3f8a1b8b9de06eb2884fc536cc431b9d04ef3face82933869f6d3131bf18c5c24b9eca72b76e232d8c42692fd9d8a9bfd9e90adc98d258fc44e7c1b9cea281a1bf2909d46293d0cf8244ec53fc876d5df5fb9227f171bf147765aa47cbf0fe24a7c139ce955ffa2b14bc9d7e25c7cc4cee28cd77345b691737cfd65e38afb07ecacc8f87edf823b491cc9f839bb137712b212a7e277c179a28de7efe3abe0c225a6ae83d5845d1485235b71c586b7c1d6989cfb50909db596fb53b167c3cbe0b1e9c4327fcd1e6b39ef813813bf2657abbe628fad9c675fecc56f825d9a17b29e3b7125d77bb6d37cdeaa126772fef7e4aa903efc62dbe6fec076969f8772622fcf270faed24acbf977c49958937d652b3eef4cecd98a7e7f3ef3da67349e8a337142f6decaf332622f3e0eaeb35ad7dc7f2fcec40b725d5bd9df5c5cb307f3ff0ff74181853138a8f015e257a9251398825af52d9c632ee01b5cc215e61a730137f01d7e606e3133cc74adaf30f3ad593ce8ffc4f6f29ffde593f3dfc13dfcc2f797b0bf91307f77a31fd6bf6deec5a3f534fd57f01adee0eb2dbcc35d6fcebfd93fc06c9bfbfdd6fefe963cec1fc211e6f1bc9c63eaf736fa1f30fd8df67a7ff0a8ff71954f9421660427708a29f12c6770b6d6ff8c8d7fb77bd88fd6fa43e985d12e354227b4ce2096f7f5fe88528286040cbe52c8a00339147887117e5fe28dfe12ef1d52622f8c0f2157007da594ddd23fa574d518df8f7065ebfd9327fa25a58bab2871d743e554a5140cb05f3ed1b7f4fd0bbbd4388e67826d8fed5a4df0d312c737fa74871e9d88c6a746c1b5d46a8afd1e5e71f8b04f6734c5abb627a2dfef9fe7adbfc6a22669</data>
+ </image>
+ <image name="image1">
+ <data format="XPM.GZ" length="2589">789c8dd64b53db481000e03bbfc2c5dca8ad8e3492c652a5727008ef77121c87ad3d8c4663e327066cc0a4f6bf6f4f774b3c422da139f0797aba5b23c9c5878d56eff4a8b5f161ed76611743d77297f6a6b5512da7d3d5dfff7cfab5b6ae750b7f8ba4a5d7ff5a5b3f5bb45cebf86ae603402154443fc1ea869c47291b66c17114b928a7f5153b04792c4ed99091f310e4c7608debbc1fac3817976227f53a6c9d6aae47fd74d1e43f88eb79066c9deb827c2f766c2027b1aee77d64275112d3faa938153b72a1e57ad48c9de4b27e179cc63a97eb5d8aebf9af1af3bc0bb24d22f16670a6b328b5944fd793d9acc8c8908a2bb6ba0e36da64866e9eba255b53889db832bcbf086e97eda25dd2fa9db86203edcf932c92f349d878bb12b226977991737e2eaed86a145ca47843d8cbda454af9b13813b7c9ae280a478ec4155b55c1363555c2f76fc8b6b1ac4f6b5bae7721cec49fc9aed9bf605bcbebeab231f73f117bb69a0497693b4bf9fefe64975ad6cbda25f73b161b718f5c95567cd4b8a2fd73b167c38f6097392d3eaced3272576cc407e4ca59b169ccf5add8b3613fb8ca2a2d3eaf5df1fe3db161ab3ed95756d6bf37e6ef875db117d3797a63ebe7d1b3bd96f59ddade90bf890d5bd1f78df7853cdf70c3b6b1789bedade77a5f83fbd84fd62bb197e77dca2e4d9b9fdf2d765ff7b9ff17b111d3fbd4efe37e9a1fe6ec524bbd8ed88807b5b9be02b1957e7db6d3f27ef9daf23e9d898d7822b6f27e0d6bcbfb32167bf1885d69797faec4867db6f8f3783b1f541defe73fe53eed79daf73aff75cdd77d5ee6ffdebfdef1fff3bf5f1f2c9418f6cfce071c54e0a10f0370efe763f6250c61046398c014357b196fe47bb8c26c0f73b87e23dc6ff913aceee1066e6121b1843bfcfc1ee30156f0585f77933f810e7c864df842b105dbb003bbb007fb7000877004c77082712af96758fd2b563d806f183bf01dcea10b3fa0073fe10222884143022964cdfc73aabe85b9db52fb1c0c56ee61d50b68430e059cd6f3e3600a16ca62ff901f7ae02ce82e1ca9923ae4ca85bb26f53baac2ea21c7d33cbbaa8fd90738d131d58f21518367e713663fc1fe7bb86717a70fd719a6c1eaea520dd50852357eca5713d80cdd69a273d8a7da940d276a8ad3276af6fcfcd5157e5eaa39e67431b30b87f8772f64cbecd7f513c7ff3fa95bccc21d386d0fcf1a4f9b2a2fb076a496ea4edd3fbfbf6aac96d8b38d95ea68438c79233c758dd90f3c7b93bf528f6aa0ee5fc480a243b17af6fcfcfb71ed3f846c790e</data>
+ </image>
+</images>
+<connections>
+ <connection>
+ <sender>buttonOk</sender>
+ <signal>clicked()</signal>
+ <receiver>EditMetaDialogBase</receiver>
+ <slot>accept()</slot>
+ </connection>
+ <connection>
+ <sender>buttonCancel</sender>
+ <signal>clicked()</signal>
+ <receiver>EditMetaDialogBase</receiver>
+ <slot>reject()</slot>
+ </connection>
+</connections>
+<includes>
+ <include location="local" impldecl="in declaration">posedit.h</include>
+</includes>
+<layoutdefaults spacing="6" margin="11"/>
+</UI>
diff --git a/muse2/muse/widgets/editnotedialogbase.ui b/muse2/muse/widgets/editnotedialogbase.ui
new file mode 100644
index 00000000..e6e01441
--- /dev/null
+++ b/muse2/muse/widgets/editnotedialogbase.ui
@@ -0,0 +1,202 @@
+<!DOCTYPE UI><UI version="3.0" stdsetdef="1">
+<class>EditNoteDialogBase</class>
+<widget class="QDialog">
+ <property name="name">
+ <cstring>EditNoteDialogBase</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>231</width>
+ <height>182</height>
+ </rect>
+ </property>
+ <property name="caption">
+ <string>MusE: Enter Note</string>
+ </property>
+ <property name="sizeGripEnabled">
+ <bool>true</bool>
+ </property>
+ <grid>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>11</number>
+ </property>
+ <property name="spacing">
+ <number>6</number>
+ </property>
+ <widget class="QLayoutWidget" row="5" column="0" rowspan="1" colspan="2">
+ <property name="name">
+ <cstring>Layout1</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>0</number>
+ </property>
+ <property name="spacing">
+ <number>6</number>
+ </property>
+ <spacer>
+ <property name="name" stdset="0">
+ <cstring>Horizontal Spacing2</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>20</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ <widget class="QPushButton">
+ <property name="name">
+ <cstring>buttonOk</cstring>
+ </property>
+ <property name="text">
+ <string>OK</string>
+ </property>
+ <property name="accel">
+ <number>0</number>
+ </property>
+ <property name="autoDefault">
+ <bool>true</bool>
+ </property>
+ <property name="default">
+ <bool>true</bool>
+ </property>
+ </widget>
+ <widget class="QPushButton">
+ <property name="name">
+ <cstring>buttonCancel</cstring>
+ </property>
+ <property name="text">
+ <string>Cancel</string>
+ </property>
+ <property name="accel">
+ <number>0</number>
+ </property>
+ <property name="autoDefault">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </hbox>
+ </widget>
+ <widget class="QLabel" row="1" column="0">
+ <property name="name">
+ <cstring>TextLabel2</cstring>
+ </property>
+ <property name="text">
+ <string>Length:</string>
+ </property>
+ </widget>
+ <widget class="QLabel" row="0" column="0">
+ <property name="name">
+ <cstring>TextLabel1</cstring>
+ </property>
+ <property name="text">
+ <string>Time Position:</string>
+ </property>
+ </widget>
+ <widget class="QLabel" row="2" column="0">
+ <property name="name">
+ <cstring>TextLabel3</cstring>
+ </property>
+ <property name="text">
+ <string>Pitch:</string>
+ </property>
+ </widget>
+ <widget class="QLabel" row="3" column="0">
+ <property name="name">
+ <cstring>TextLabel4</cstring>
+ </property>
+ <property name="text">
+ <string>Velocity On:</string>
+ </property>
+ </widget>
+ <widget class="QLabel" row="4" column="0">
+ <property name="name">
+ <cstring>TextLabel5</cstring>
+ </property>
+ <property name="text">
+ <string>Velocity Off:</string>
+ </property>
+ </widget>
+ <widget class="PosEdit" row="0" column="1">
+ <property name="name">
+ <cstring>epos</cstring>
+ </property>
+ </widget>
+ <widget class="QSpinBox" row="1" column="1">
+ <property name="name">
+ <cstring>il1</cstring>
+ </property>
+ <property name="maxValue">
+ <number>1000000</number>
+ </property>
+ <property name="minValue">
+ <number>1</number>
+ </property>
+ </widget>
+ <widget class="QSpinBox" row="3" column="1">
+ <property name="name">
+ <cstring>il2</cstring>
+ </property>
+ <property name="maxValue">
+ <number>127</number>
+ </property>
+ </widget>
+ <widget class="QSpinBox" row="4" column="1">
+ <property name="name">
+ <cstring>il3</cstring>
+ </property>
+ <property name="maxValue">
+ <number>127</number>
+ </property>
+ </widget>
+ <widget class="PitchEdit" row="2" column="1">
+ <property name="name">
+ <cstring>pl</cstring>
+ </property>
+ </widget>
+ </grid>
+</widget>
+<connections>
+ <connection>
+ <sender>buttonOk</sender>
+ <signal>clicked()</signal>
+ <receiver>EditNoteDialogBase</receiver>
+ <slot>accept()</slot>
+ </connection>
+ <connection>
+ <sender>buttonCancel</sender>
+ <signal>clicked()</signal>
+ <receiver>EditNoteDialogBase</receiver>
+ <slot>reject()</slot>
+ </connection>
+</connections>
+<tabstops>
+ <tabstop>pos</tabstop>
+ <tabstop>il1</tabstop>
+ <tabstop>pl</tabstop>
+ <tabstop>il2</tabstop>
+ <tabstop>il3</tabstop>
+ <tabstop>buttonOk</tabstop>
+ <tabstop>buttonCancel</tabstop>
+</tabstops>
+<includes>
+ <include location="local" impldecl="in declaration">posedit.h</include>
+ <include location="local" impldecl="in declaration">pitchedit.h</include>
+</includes>
+<layoutdefaults spacing="6" margin="11"/>
+</UI>
diff --git a/muse2/muse/widgets/editsysexdialogbase.ui b/muse2/muse/widgets/editsysexdialogbase.ui
new file mode 100644
index 00000000..cfd91cdb
--- /dev/null
+++ b/muse2/muse/widgets/editsysexdialogbase.ui
@@ -0,0 +1,209 @@
+<!DOCTYPE UI><UI version="3.0" stdsetdef="1">
+<class>EditSysexDialogBase</class>
+<widget class="QDialog">
+ <property name="name">
+ <cstring>EditSysexDialogBase</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>433</width>
+ <height>330</height>
+ </rect>
+ </property>
+ <property name="caption">
+ <string>MusE: Enter SysEx</string>
+ </property>
+ <property name="sizeGripEnabled">
+ <bool>true</bool>
+ </property>
+ <vbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>11</number>
+ </property>
+ <property name="spacing">
+ <number>6</number>
+ </property>
+ <widget class="QLayoutWidget">
+ <property name="name">
+ <cstring>Layout3</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>0</number>
+ </property>
+ <property name="spacing">
+ <number>6</number>
+ </property>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>TextLabel1</cstring>
+ </property>
+ <property name="text">
+ <string>TimePosition:</string>
+ </property>
+ </widget>
+ <widget class="PosEdit">
+ <property name="name">
+ <cstring>epos</cstring>
+ </property>
+ </widget>
+ <spacer>
+ <property name="name" stdset="0">
+ <cstring>Spacer2</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>20</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ <widget class="QToolButton">
+ <property name="name">
+ <cstring>saveButton</cstring>
+ </property>
+ <property name="text">
+ <string></string>
+ </property>
+ <property name="pixmap">
+ <pixmap>image0</pixmap>
+ </property>
+ </widget>
+ <widget class="QToolButton">
+ <property name="name">
+ <cstring>loadButton</cstring>
+ </property>
+ <property name="text">
+ <string></string>
+ </property>
+ <property name="pixmap">
+ <pixmap>image1</pixmap>
+ </property>
+ </widget>
+ </hbox>
+ </widget>
+ <widget class="QTextEdit">
+ <property name="name">
+ <cstring>edit</cstring>
+ </property>
+ </widget>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>TextLabel2</cstring>
+ </property>
+ <property name="text">
+ <string>Comment:</string>
+ </property>
+ </widget>
+ <widget class="QTextEdit">
+ <property name="name">
+ <cstring>comment</cstring>
+ </property>
+ </widget>
+ <widget class="QLayoutWidget">
+ <property name="name">
+ <cstring>Layout1</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>0</number>
+ </property>
+ <property name="spacing">
+ <number>6</number>
+ </property>
+ <spacer>
+ <property name="name" stdset="0">
+ <cstring>Horizontal Spacing2</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>20</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ <widget class="QPushButton">
+ <property name="name">
+ <cstring>buttonOk</cstring>
+ </property>
+ <property name="text">
+ <string>OK</string>
+ </property>
+ <property name="accel">
+ <number>0</number>
+ </property>
+ <property name="autoDefault">
+ <bool>true</bool>
+ </property>
+ <property name="default">
+ <bool>true</bool>
+ </property>
+ </widget>
+ <widget class="QPushButton">
+ <property name="name">
+ <cstring>buttonCancel</cstring>
+ </property>
+ <property name="text">
+ <string>Cancel</string>
+ </property>
+ <property name="accel">
+ <number>0</number>
+ </property>
+ <property name="autoDefault">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </hbox>
+ </widget>
+ </vbox>
+</widget>
+<images>
+ <image name="image0">
+ <data format="XPM.GZ" length="2285">789c8dd35d6fda301406e07b7e05aaefaae934719c9068dac5cabebab60c3668d34dbb308e03edfab11518eda6fdf71d9f7382a02dd3fa16a407bf716c07f676db65ffb8bdbbd79acdedfcdcb5ddd4deb677abc5d5d5fd97af2f7eb776b46ee37fc7b4f5ceb3d6ce60de76eddecdb50f80254245f447ae1b2731d9af5c909dd888abc686fb11398f5c9493278d63f634388e42c89fc9790879dc58f3f8a1b8b9de06eb2884fc536cc431b9d04ef3face82933869f6d3131bf18c5c24b9eca72b76e232d8c42692fd9d8a9bfd9e90adc98d258fc44e7c1b9cea281a1bf2909d46293d0cf8244ec53fc876d5df5fb9227f171bf147765aa47cbf0fe24a7c139ce955ffa2b14bc9d7e25c7cc4cee28cd77345b691737cfd65e38afb07ecacc8f87edf823b491cc9f839bb137712b212a7e277c179a28de7efe3abe0c225a6ae83d5845d1485235b71c586b7c1d6989cfb50909db596fb53b167c3cbe0b1e9c4327fcd1e6b39ef813813bf2657abbe628fad9c675fecc56f825d9a17b29e3b7125d77bb6d37cdeaa126772fef7e4aa903efc62dbe6fec076969f8772622fcf270faed24acbf977c49958937d652b3eef4cecd98a7e7f3ef3da67349e8a337142f6decaf332622f3e0eaeb35ad7dc7f2fcec40b725d5bd9df5c5cb307f3ff0ff74181853138a8f015e257a9251398825af52d9c632ee01b5cc215e61a730137f01d7e606e3133cc74adaf30f3ad593ce8ffc4f6f29ffde593f3dfc13dfcc2f797b0bf91307f77a31fd6bf6deec5a3f534fd57f01adee0eb2dbcc35d6fcebfd93fc06c9bfbfdd6fefe963cec1fc211e6f1bc9c63eaf736fa1f30fd8df67a7ff0a8ff71954f9421660427708a29f12c6770b6d6ff8c8d7fb77bd88fd6fa43e985d12e354227b4ce2096f7f5fe88528286040cbe52c8a00339147887117e5fe28dfe12ef1d52622f8c0f2157007da594ddd23fa574d518df8f7065ebfd9327fa25a58bab2871d743e554a5140cb05f3ed1b7f4fd0bbbd4388e67826d8fed5a4df0d312c737fa74871e9d88c6a746c1b5d46a8afd1e5e71f8b04f6734c5abb627a2dfef9fe7adbfc6a22669</data>
+ </image>
+ <image name="image1">
+ <data format="XPM.GZ" length="2589">789c8dd64b53db481000e03bbfc2c5dca8ad8e3492c652a5727008ef77121c87ad3d8c4663e327066cc0a4f6bf6f4f774b3c422da139f0797aba5b23c9c5878d56eff4a8b5f161ed76611743d77297f6a6b5512da7d3d5dfff7cfab5b6ae750b7f8ba4a5d7ff5a5b3f5bb45cebf86ae603402154443fc1ea869c47291b66c17114b928a7f5153b04792c4ed99091f310e4c7608debbc1fac3817976227f53a6c9d6aae47fd74d1e43f88eb79066c9deb827c2f766c2027b1aee77d64275112d3faa938153b72a1e57ad48c9de4b27e179cc63a97eb5d8aebf9af1af3bc0bb24d22f16670a6b328b5944fd793d9acc8c8908a2bb6ba0e36da64866e9eba255b53889db832bcbf086e97eda25dd2fa9db86203edcf932c92f349d878bb12b226977991737e2eaed86a145ca47843d8cbda454af9b13813b7c9ae280a478ec4155b55c1363555c2f76fc8b6b1ac4f6b5bae7721cec49fc9aed9bf605bcbebeab231f73f117bb69a0497693b4bf9fefe64975ad6cbda25f73b161b718f5c95567cd4b8a2fd73b167c38f6097392d3eaced3272576cc407e4ca59b169ccf5add8b3613fb8ca2a2d3eaf5df1fe3db161ab3ed95756d6bf37e6ef875db117d3797a63ebe7d1b3bd96f59ddade90bf890d5bd1f78df7853cdf70c3b6b1789bedade77a5f83fbd84fd62bb197e77dca2e4d9b9fdf2d765ff7b9ff17b111d3fbd4efe37e9a1fe6ec524bbd8ed88807b5b9be02b1957e7db6d3f27ef9daf23e9d898d7822b6f27e0d6bcbfb32167bf1885d69797faec4867db6f8f3783b1f541defe73fe53eed79daf73aff75cdd77d5ee6ffdebfdef1fff3bf5f1f2c9418f6cfce071c54e0a10f0370efe763f6250c61046398c014357b196fe47bb8c26c0f73b87e23dc6ff913aceee1066e6121b1843bfcfc1ee30156f0585f77933f810e7c864df842b105dbb003bbb007fb7000877004c77082712af96758fd2b563d806f183bf01dcea10b3fa0073fe10222884143022964cdfc73aabe85b9db52fb1c0c56ee61d50b68430e059cd6f3e3600a16ca62ff901f7ae02ce82e1ca9923ae4ca85bb26f53baac2ea21c7d33cbbaa8fd90738d131d58f21518367e713663fc1fe7bb86717a70fd719a6c1eaea520dd50852357eca5713d80cdd69a273d8a7da940d276a8ad3276af6fcfcd5157e5eaa39e67431b30b87f8772f64cbecd7f513c7ff3fa95bccc21d386d0fcf1a4f9b2a2fb076a496ea4edd3fbfbf6aac96d8b38d95ea68438c79233c758dd90f3c7b93bf528f6aa0ee5fc480a243b17af6fcfcfb71ed3f846c790e</data>
+ </image>
+</images>
+<connections>
+ <connection>
+ <sender>buttonOk</sender>
+ <signal>clicked()</signal>
+ <receiver>EditSysexDialogBase</receiver>
+ <slot>accept()</slot>
+ </connection>
+ <connection>
+ <sender>buttonCancel</sender>
+ <signal>clicked()</signal>
+ <receiver>EditSysexDialogBase</receiver>
+ <slot>reject()</slot>
+ </connection>
+</connections>
+<includes>
+ <include location="local" impldecl="in declaration">posedit.h</include>
+</includes>
+<layoutdefaults spacing="6" margin="11"/>
+</UI>
diff --git a/muse2/muse/widgets/fdialogbuttons.ui b/muse2/muse/widgets/fdialogbuttons.ui
new file mode 100644
index 00000000..33c79814
--- /dev/null
+++ b/muse2/muse/widgets/fdialogbuttons.ui
@@ -0,0 +1,204 @@
+<!DOCTYPE UI><UI version="3.2" stdsetdef="1">
+<class>FileDialogButtons</class>
+<widget class="QWidget">
+ <property name="name">
+ <cstring>FileDialogButtons</cstring>
+ </property>
+ <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="caption">
+ <string>Form1</string>
+ </property>
+ <vbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>11</number>
+ </property>
+ <property name="spacing">
+ <number>6</number>
+ </property>
+ <widget class="QButtonGroup">
+ <property name="name">
+ <cstring>pathGroup</cstring>
+ </property>
+ <property name="lineWidth">
+ <number>0</number>
+ </property>
+ <property name="title">
+ <string></string>
+ </property>
+ <property name="flat">
+ <bool>true</bool>
+ </property>
+ <property name="exclusive">
+ <bool>true</bool>
+ </property>
+ <vbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QToolButton">
+ <property name="name">
+ <cstring>globalButton</cstring>
+ </property>
+ <property name="text">
+ <string></string>
+ </property>
+ <property name="toggleButton">
+ <bool>true</bool>
+ </property>
+ <property name="iconSet">
+ <iconset>image0</iconset>
+ </property>
+ <property name="usesBigPixmap">
+ <bool>true</bool>
+ </property>
+ <property name="usesTextLabel">
+ <bool>true</bool>
+ </property>
+ <property name="textLabel">
+ <string>Global</string>
+ </property>
+ <property name="buttonGroupId">
+ <number>0</number>
+ </property>
+ </widget>
+ <widget class="QToolButton">
+ <property name="name">
+ <cstring>userButton</cstring>
+ </property>
+ <property name="text">
+ <string></string>
+ </property>
+ <property name="toggleButton">
+ <bool>true</bool>
+ </property>
+ <property name="iconSet">
+ <iconset>image1</iconset>
+ </property>
+ <property name="usesBigPixmap">
+ <bool>true</bool>
+ </property>
+ <property name="usesTextLabel">
+ <bool>true</bool>
+ </property>
+ <property name="textLabel">
+ <string>User</string>
+ </property>
+ <property name="buttonGroupId">
+ <number>0</number>
+ </property>
+ </widget>
+ <widget class="QToolButton">
+ <property name="name">
+ <cstring>projectButton</cstring>
+ </property>
+ <property name="text">
+ <string></string>
+ </property>
+ <property name="toggleButton">
+ <bool>true</bool>
+ </property>
+ <property name="iconSet">
+ <iconset>image2</iconset>
+ </property>
+ <property name="usesBigPixmap">
+ <bool>true</bool>
+ </property>
+ <property name="usesTextLabel">
+ <bool>true</bool>
+ </property>
+ <property name="textLabel">
+ <string>Project</string>
+ </property>
+ </widget>
+ </vbox>
+ </widget>
+ <spacer>
+ <property name="name">
+ <cstring>Spacer1</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Vertical</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>20</width>
+ <height>60</height>
+ </size>
+ </property>
+ </spacer>
+ <widget class="QButtonGroup">
+ <property name="name">
+ <cstring>loadAllGroup</cstring>
+ </property>
+ <property name="title">
+ <string>Load:</string>
+ </property>
+ <property name="exclusive">
+ <bool>true</bool>
+ </property>
+ <vbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QRadioButton">
+ <property name="name">
+ <cstring>loadAllButton</cstring>
+ </property>
+ <property name="text">
+ <string>Songdata +
+Cofiguration</string>
+ </property>
+ </widget>
+ <widget class="QRadioButton">
+ <property name="name">
+ <cstring>loadSongButton</cstring>
+ </property>
+ <property name="text">
+ <string>only
+Songdata</string>
+ </property>
+ <property name="checked">
+ <bool>true</bool>
+ </property>
+ <property name="buttonGroupId">
+ <number>0</number>
+ </property>
+ </widget>
+ </vbox>
+ </widget>
+ </vbox>
+</widget>
+<images>
+ <image name="image0">
+ <data format="XPM.GZ" length="5310">789cad965b73e2481285dffb57383adf3a3672102021c5c63ed86e5ff10ddfdaee89794824617cc137c0b789fdef9bca3ca5a66dd8d999d9aec6e673294f9dcaca4af8e5cbd2d9c1eed2975f3e8d2732b9cc97f2a13c2e7d29a6a3d1ebafbffdebf74f9f5bed25fd1f7592a5e6e77f7cfadc9b2ce54b7b77b765054c0ad4b07fc603e77623918ae919dceeb48c6f9ce322ed572c6bc669236fa4363f74aee34fc039e213e7b8d1f1f86770ec4ca7ce699cc7c6b715478d6a98bf6fceaae7f1afceaae7fa54b3eb75c0716af3528033677e724e63c98d6f03f7db16ff669c467964fbe307e7a0cfd760e8f30518faf252b3fb49c1c81fad3bd7eb413fcdc0bbce595c783eba15371bd530fd3be7b8403e2681b17e59b3af97392711ce6f1038f3f5cec0b1b3907327ca2c3ff4cd390d7e1ec1c1ef8e731615565fc2c6599279bcdc80839ff3c0d0ffee1cd6e3041c637e2fb0f87ad760e8d37e60ccaf3987f3a51c5cf40be3c2398be07f195cc0ff65c5ad28f895dcb913f2d500073f17e0e0e725b0cfcb2db8c0f30735fbf3abce6904ee83437e2370f0df7456ffc6fc1d1c637ec559e23231be0397d8df57e32abfae0faed72b9db3701fef9d453c9e5a15b7a376a31d99de15b80dbe700ee72702ceb05ecf39cbe0bf012e7c3d3e77ee377d3d3e0becfb61d7135dcffa8d74c1a9331d3a4b04ff78be8eb7f38f9b7123b6e648c7ce69a8f7d839f823ab87583a05fc6f39a7387f8e9c25cefdf901589cc5f493661225b61eef394be9f3bce3dc4ffc7eb1f5af44d250cfd6af3a2d41bd72d3393c2f47c6fd4e86fe543aa791f7031a3bd7fafb6001ef82437d98bfb4d509fde4c039e8c92e38f43fcc6bbcfbb1fca77d9d773f4330fa21df81433fb0fac9da29f22b1bce59b86fe03cd443e004bc06467d8aed2fcbb3507f3be0d08f9e9cfb09ea6dd339c4f33a18f9a0ed8aa52d11cee3158cf397a1731fe74947ce7989fb3732ce05fd487a60c1e74f0a2e31df770e7a72edacfb77bf5bce45e2fa62fefb6d29bd3e64dbb9df44bd5c8213f0917311ee430f9c94beff17b060be6d5c68bcd76b0e1667590797b82f783e477dc92a18f9e43767d5777e059703df8fed2f8f75ff1ebfe29c37715e31389c5fcbb928a187e7cba6b3587fcf0b7ddefd4ec1b89fbc0d0ef771e21ce27939b0fbe33138815fdb4f11e7a87fce9c0b9c978cc1b87f34710ef1fc0816e8399745a8ef6370a8cf1370a8cfa97389f313fb3e512605ea4f46ce25ce5beec1a81fb6ef5f651d4f0c0ee773050ef93d0c0cff53e741c8cf6acd03d3db0427ce6ceb0f923abeeb5cc73f83437e6ec08278fbbc1a0c6abd1138ccf7c103e7dee4ef8f1f3a4c61fc1d1d16eeebc8b9f86b6adee779c0173ce44bbe32b5cb3faf663ad77cc323be35b53b55b9ffe8ed8f766d3a0ffcc8639ef054a39fde790b6ab9be7f5eec137e5ef895df789957f4b5aa11b3de46a6f0555f237bdf5fa8f3c06bbcce1bbcc95baa3851b59fbd6d43ed4ab52ac5aeef748ece0eeff21eeff381aaad73cfbc4dd4d9211fa952ae4ac77cc2a7aa52a9dd7f74643adff88ccff93b373852b5a6a9b9b796aa0dd4519b63554ab8c329677c42fcde91dd27e27312ea534e0595dca0c18cb7095dd0902ee94ab50674adaf1b1af131ddcef34377744f0f9a8f5b7aacd482371af3064d684a4ff44c2fea6cd9f296d02bbdcdcb332dd30aadd2575aa3075ad7517b536707b4c12fb4a9ce5e788526fa7b8bb6a93bd7cf0eedd21eedd381aaf52b35f3e66a3d3ab47d6ed291664df346c7f3fdd0099dd2373aa373fa4e0d555b7de72da2e66cde5467ae1f6a519b624aa8432965c242ea6def83b728e44d64417efcaeebc7a5e4fab54e3ff664b0c09b9d825c2cf2a32a23ab53ad7e19566a7c31e3ed5ddee472be1fb9b29b53d5bcd6aad65897bb72ed6af3bcc9cd423fa32ad655886524a3aa66f59dedf4a7bcedcbaddc2dcccfacca3d9fca833cf0b13cca587fdebbda0f6f32a9fcfcdc41e0e73eb429f752a9e8c8746ccb54a6d59d9227fda6f5aca7f022af959f1f9dad1a9e9fca039fba8a7b511f631d6f3aa6b22c2b36a6aab62a5f7583337e6674d678a84f3d9a8f937a4795974a656a1aebda3d72ce644336e56abe9ff09eaa3da882bdc6418563f5b3255b9ceb8e87b2ad7fefcef7e3990a7f911d5ddd7dd45e54675db3bfab2ac7b2b7c8cfecf9d56afbbabee7055e2a15cddd81f4febb9fd9fe56eff44a63b7b4db1fcba179a954a61ffdcc7e2e7f1cb5b7a91ca8d6b6eea8a73f8fdefb09f5335fe3839a768b4a855e7ff6f3a30e17f999ebed48f6a52b1bc1cfecbdf8638d0f797ba7f2bffb79ffb9f77efcdfbe47fdfb9f9ffe03facd42d6</data>
+ </image>
+ <image name="image1">
+ <data format="XPM.GZ" length="7224">789ca5975973db3a1285dff32b5ce9b7d414ae2889145953f3e07ddf774fcd433748598be54df2a65bf3dfa7893e60ecd83735531386297f017070d06834e13f7e2c5c1cec2efcf8e3db74c6b3a15ff0037e5cf8513e4d266ffffcd73ffefcf6bdd35dd0bfed225b687fffdbb7ef8e17fcc2dedd6d1580dec1e1ec7d8b28502bfc093c0577c177c6dd56c635cb2eb86b4cfbe0bc27a17d05ec7b9d30fe3a70ae0279cdfe119c1bd3a17196143ef01b3835f66b3527ada49b043ff2649cb6f2a02fabe0143c03174537f08bb1ea07f6d63f57bd30bf9c80bdb17b334ecbdcd6f31cd9c6bb7be32c41fb040cbf720b2ec0af91398ca7ccb848ca34700f9c5659e8dfadb9ddaa9fe0f701dc351636ceb03e4e8c7b0987f9b80d8e7eaac836bfec052eda79bb087c0af660328efeb905c6fae9c0b8d1f791a15f820bf8e9804b31bfd0cf13ebcf070d5bff71645f06ee8253314ec1d0a7f5c8a64f6b0d87fe74078ef31f366ced27c69c58fc79a9e64ed2f69d24ecf7a271a7652c621cd7eb5ec1717faf1b367f5d7089f697862d7e7de33c81ff5570f4eb1b36bf1bc645e243feb80c8cf8d043646b27f8672ec379e7edc0badf9db0dfcef48b0e58968d9bfddc01637dee160cff7461dcf8357f4591c0cf7964f8b907c31f97e002ebb17815d236bfb414d9f6c785fedda4e3bbb63f03e36ecb984fc05d633f6ed8ead79a71939f33e3383f4d8ce37c6ccc3a5f18cf9bc63a9f7106863ebf8273cc370063bcdc18f762fd98825363d7332e4ae4ff9331e33cb8d45818fe825edaeee66928fb7c6a9cb68c69cf38477d953730f68b368d39e6530e8ef9f3d8b0ed27e693ac0afb23478175b8d573ee19777d6af158344e0b63bf0e2ed1fe6cacf919e6f3217fb2763c7f3236ce92ccd6b762dc2b2c5ef46a9c235ff9c1389e079e82511fe4ce38c693198cf5f9703e326ee37be85f8c9bf36ffa9ca5f81eee834bb033cef1bda10138d6d391713c8fae30d67cb7f587fad8eb34f30fc0f81efb393837e6c2382bed7bcb67c6bd042cc605f69f5d64e4ffbe715c3faf822bec37fa4b86fc3b890cffc7e0cafcbba38643bb0ff5a327bdc2ee07de834b63be37ce637d5c312e50efe4da58daa8179163be84f179130f5f1ac7f3e847c6bdd2ee079c1be709ee0bc760dc1f68cbb888f5bcd5b0d5bb3370ac77953123df7c381fb9c4f9ddd0388ff97a6b1cfb1319fb58dfb6c088af84f98b6e9a5afef927e33cc5fde60a1cef3bf7c645ccbf6330faf39db1c6d3e667e3389f3b8d6c7e7cf053784d3fbb2f1d1a473fd233d6f369f7416f9c97a83717c64dfe41af88f7870c1cef4b4bc6cd7e0f8c3dea9d84fb84965bf8f19b60dc0ff9c8b8d9bf148cfc924b63c6fd8366c69adf36dfd0d8237ff931b2d53bb76d5cb68d7d381fecd3785e97c029ee9707c6bd14f928c68cf3271be0143c073378135c21ffccbf6fcedbae7119f367a761f317ce9374a33f498d99510f8760e8cb2832f27b6e2c6d7c2f4a7086f62be3983ff4645ce2fbe043be499916c89fc4b888e7c1e62f55dfcefb2218fa7ed6b0b59f8319f57dddd8235fdca5715c3f6d8319fbb704aefa96dfa19ee87695e6cf5d19c77c702330831fc095b1ac1bc7f9fd3318e3651b1cef5f7de312e78ba660363f6e0f1cf36d3932daa15f617d6e2532d663fdcbb81ed93216d4733933f638ffae0d467df78b60064fc118cf6bc625d6434760f8a51de3c6df5a64f89f8133f80df79132cd0a3bbfbe6f9c27761ff5afc645acdfc7c63ed67f06c7ef551519bf5f8d8c4b7c5f09fa65662c8f91719fba05235fa8308eeba12432d6b30fc67adc6ac3fdc0676036f6a65fe529eea7136361dcaf5bc625eebf6e0c8ef5f9001cf3e90d8c7a45a791cd2f9f1b47ffbc0cc6f9a4e7c8e69f7230f2913a0d07ff14c7c77c7c6a38b44b8857a5bf3eda7d4d72638f7ae31e8d63bcfd101cef439b91713ee6e00afbb3631ce34f6370dcbfddc8d6ce1760ac87f71ab6f5c4fed17f380f55e5e3794f8c9b7cee83113f7e01235ff83232f4afc0d077e7c6fd36da058c7cf1217ffb5919eb59c738fa7773708cffa1713fc6a3ddb0cd77038ef979d1b0b5bf80e1d7857ad6ef37e337c0b1ff041cfb57e0bef1e1ccd1fffb065dd69fdebfa28faffffde5ff7ff37ee1a774953e7dd5b96ed4fe473f6ea023076ee8466eac5a3741edbff2f68b9fdacbc4ddba3b77af6a0fee3170ad366dd44af559feeaf3939f997b72cfee45c7bfaada5be36de2e6aa35d5f171d5e2167ffafce467c92dbb157d56dd5a50fbe96dac4aebaab781b7729b414dbef4b3e5b6f5dd71bbaab7e7f67ff1367607aa76a33a87aa74a33f43e9939f2377ec4ef439d567479fdadb993b7717ee527d5db996ba485c5bffedab5a4763552b7df6d375a9cb5ccfe5ae2047440c6fcf24ee8e3c9554519fae6940431ab93e8d43cce4573f744313baa53bbaa7077a54b5139ad2cc9dd2133dd38b2abd8658ddd571235d296165bffaa1455aa2655aa1555aa375daa04db74a5bea8d699b766897f6689f0ee8908e2c6e74fc177e4ee8c49dd3299da9ca395dd0255d510bde6a5709b5a9435dddcf99c6ada2f42ffc64d4a35c7b17ec98982977e7ac171e5a672dc3dce76b1ef0d02d236ed5577e34cac2231ef38d1bf0846ff94ef7fd9caef85e551ef89184a73ce3277eaee316f6f4fc4b3f9af9fcc2affcc6735ee4255ed678e4aab3c2abbca6bed6798356d5db1d6d604fcfbef2c39a9f7ca33bd0e62d3754a56dde51955d7df7546597f7f9a05ea1c66d950feb3d753b7cf4859f327839e6133ed5f72c783ae70b5ee64b7dafb8a537f9367754ad5bdfe1556df0a51ff392718f737d332e6a4f9ab5b5975dedac011211af37db4afab537b9feeca7f6a22a273290a1ebcb4806faf3b8f614cee48daecebcddca8d4ce4b6f6267772ffd14fed8586c1cb5c4f8e56068db57a9287e069122a47e536e451a63293277996177995b78f7e425cb6a2178c3a94f93b4f37561f65d16dca922ccb8aacaadada7b3f7c23ebb2517b91cde0253e732adf7ba2b90cf958b6f4b4eb79976dd991dd0f7e845f65cf2dca3ed53e267220877264754f8ee544f6e454cf75a56f5f867226e7ee814672219b3ac7e54f3fa6a83a575a552a6949a2bf9974825242a974636ce22b67ae2557eabda53a1ff2193a591d1be9492e85779eea0aafff2788cd24be7adf905a457fd1fde007f9b3e8452b5d15eee17d7fed07b51f5fcfb0d17859f7c3da8beee9d88f64e4c7f2e97c453ffec64ffcadbff3f7d18f7ff08f7e5a7bf13359f74faaa25e54e5f9b77e5efcab7f533ff3c60f1effa8df8bb1ee7cbda2b95ff423d5f9540f1b3f2f7ec92ffb155d578ccf4fa555bfc6a77edd8baa78b9fcda0f6fe9be77fc86dff45bfa6ebb0e557af2e5d3a3df08def43bba97bb9fcfd717fddf3f9ffb4cf1363af0f35b9df7dff2afda3fd49fdfa97cba637c6cfffeefbf7ffb0ffbcaf966</data>
+ </image>
+ <image name="image2">
+ <data format="XPM.GZ" length="8120">789ca598d96e23cb0d86efe7298ce1dd4150475b4bdd0872e17d5fe4dd0e7241b25a966ccbabbc0679f7948a3f35b667264890d1e8603e5515fb278bc5629f3fff983bdddb9efbe3cf6f8f139e8c744e87fc30f7477c1a8fdffefe8fbffdf3dbf776676efab768cdb5beffe5dbf7c0733ab7737b5367a00fd09f7c1c9104d4c87f323f823bc6f10d5c36cacc0b606ddaf89d71b301aec19d669eaf87e012fc005670cfb8a5ed6666ac6f378c6505ac1de355e34ec3384e66cc59ffad7337b34470c7380ec0a5cdd7cab9c8619337e75e7bcab4ed5c4a1e873f1db5713d362e8ac2ec9d806337dbd353e36e13cfbf0417c6bae60c7b67cef63c3d07478c5fcfd8c6378c7b4df0c4b9ea647e0217187f0657a5d97b75669bff629cb6cbe66f3a579af533b832fbd20647b1f55bc655c579be369cb5c83c3466c67cc4836b1b977563618d995bc6da8d793c5c642ed3065b3e9abdd2f38f2760e41b5b3ccb76c7f6972d9ea5e78396e0d2f62bbe1b170de4c3c019f13a0257369f768dbb4df33706708578af3adb7a7a0347cc1f19f79a361e09ecfbbf0e8ed84ff8cf8c785e194bcbe2a3b02775cce79bf7a7dc6cb4ca5695b96bece78b3ae0b26de34bc67ebef80ddc317f79138cfc9777638f0f379c2d5f54c105c69be00ae769011cc143e32ef24f8e9d916f47ce96afdc0217164fae8dab66ddcdfe1599d3fea39e5c1bbb7f326f5c20ffc32b389a7e317b697f8df9ddd9e6cb05b8002fced8e66f83715ec2dd8c6d7ccb19fe404f17fb2d9733363d23e31ef24d4e9ced3c91c5a3ac9a960fd40617831c0fcef5a2d5987e32b78dd3fa7cdeb8032ea06fd719faaec138dfbce08cf53be0081e189785ed47ccf169551dc5f952e36e61fe92adaf66cf1f833d3e05385afed39171897850e96ce37c08c679a2ca19fa179dadde9033fca35567c477c519f3efc1a87f7c635cf9f3f7c06effc0989bb61fb40f66e390f3abddf4f3a94d30f2977a60b5f32aafc69e0fe105ec7a4733b6e737c0d1e249985f16d8af0076ff96c1f08f969c31be66ecf9162a30ecd1b133e63f3a233fefc0febc796366ab5f21e747bb727f756c3c3bbfb760b5fb97edf95517f544578c67f79f389b3f72605ce2fcf03318f9129fc0881793b1fb176c3faa547fb35e5a00fb7ee6fea3d3f4fe250c8d5dbfbe833bd68fc82e58d19f60fd6cff0e8d4bdca7746b2c2d7b9ee6fdeaf0cc5e178c7e879c613fdc18fbfed389b1ef07df3a63bf1ec0111c666cf7cdbd3137b17fa5b1429f34c18cfb6a00ae8d25d7a7a2e5f775bc067b7f3631f6fac12bc6b3fb3a800b63da32f6fe451fc1b87fe5d419fb7f67cc5e3f095ca03fb931ae5b8341d697cf5f2a8e0dcb3fb1f5ecfd20bf802be378058e18cff5abdb4afda1f973052e8c65c9d8e34913b0dfef6c2c8cfbee065c9b3ecee7bfcbddcafa1d3e0647f4a3f7c6decfd1e58cad3e3e184b0bf6198ce7c99a7144bec7ec6fafdd6d5a7fc09760f4b7bc0e463f2b6cdcf3f9af60cc27f0acfe88b1742d3fc3b1736df97608463e71aedf3df1fe984fc0de9f75c1e8a7e5ca585aa8df0246becad838c27f2e9d2dde92f3a54cfad1cf457034962de312fd9e3c80bd3f1a1a57b86fe3bcb1f7c3e1085cc3df036385ffd230aebbd093fbb532f967f52c8c8c4bf45f61c338f5d7b63ee743d5f17e93d78c4bf45ff1068cfb5a968d2b8c531fecf7793476fbe1d419fd88b1f6bcbf1163cfbf78615c816507ecf35f8cb9b6faa56cecfb476aacc84f36bdeaf1d1dc4fa4f28878eb8e7185fe4eb7c1dedf3d19b3f77ffbc67e1e381a2bce673871c67d9ffb49d659fde91857decf6d837dbc6fcc35ee778c479c475667dc376733b6fd3f37ae3d3f72fd93e40fdebfda60f40bdc3766ef279b609fff662c2d8c0fc05dac877d7f5fa353e38878874d30ce8be6fc9658a15f8cb63e32fa51d90333c66f8dd3f36dbc04635cfb60e44368187b3cc216d8cf6bbebf53f380faae07c69e3f5280bbc6710cf6f7af0e18efafba68ac58af3760ac0fbbc611e7979e9ca1efd9b86ee17c2f39a39e637e8d7ce28b19db38f40f106fcaf54ca3d78f28e0da584d4f4c7a8defc0a8af1ac0be7e098cfa4a7bc6337f368c5d3fad3bc3bf0918e73fcccfd8f4db7e44d71f72fec5147f7b5e5430ea71b83456bcff867bb0cf7f007bbfe1e30c7dd7c611eb6908f6ffdfb000f6fdd93176bd6111ecf99cf333d6fefead7bc68afe301460d4435d02a3df9567b0afb7e7d7d1d75f81bd9ef6c1de2faf18cffa936cafeeaadfd795b1d70fba00778d95c098af2de3dae78fc1984f6760f81f96c11eaf73e381d723cc1f78bc72fdac937fc8f755b0dfe72d30f62bec813ddfccbfdaf783ec79b53f2f3c817dbf723e0c92bfc8bf36d8fbf575e31af594dec13e7fdf78e0f5f61a8c71da9cb13d2ff71783c12c5f3a608fd700ecf15a339ee97f03fbfa31d8d7d7e081717f12e8fffd66bb9cfef5f12be9a3d3ff7ef9fd3f7c7fa127863a7d06c9cec5ccdaffa8270cd3ca611885cb70956c5d676bff95b62f7aa65ac6e126dc86bb64ed3e3c649e5a7b9c598b4967fcaaf3273d93f0149eb3672fc9daeb4cdb38bc255b8f69bd7b2de1fd87ce9ff4cc8785b01896c27258c92b7e685b4d96d6d22f6ff8d6613d5b935fead9089be9bb15b6c34ed84dd63e6bdb0bfd64e33afdb29fe3f7e6967ed273100ec351380e27e134593bcbdaceb38e46d2d50cadd00e9d50242dddf45b27c56a6ae9673dbd50868a021131092945689beabaa59a067441431ad1255d51da4f1ae798c9573d7443b77447f7f4408f3421726df444cf94bca3d71cabdb69dce82d8ce8dd3cfbaa87e6698116698996698556696da62dd23a6dd0266dd136edd02eed59dca8ff1b3dfb7440877444c7c9ca49b2f651db099dd25958a3736aa41d984f71aba9f91b3d2d6a873bea50415dea51491587646d69aa8d8953eb337d5d0e3b885bfd1b3da905e5417a95bee0218ff892aff89ac77c43ab7c6bdaf88eeff96116b7b5dfe879e4479ef0133ff34bb2f31a86fcc6ef3ccf0b74c48b88db52f214710be7bfd5b394b42cf30aaf263b6bbcce1bbcc95bbccd3bbceb719b6ae3bd69dcc219f77fa587f79396033e4c768ef8984ff834293ae3736ea41ebc15eeb89dbaf1e28736d65fe9e16ed2d2e392ab3440a95b94304a2f752fa2b9571cc8850c6524973fb4c9d5cf7ae47aaa45c67223b772c723b99707794c9626f224cff222aff226efe9332f0bb268da6449963fea911559cd7129654dd66583bab2295bb22d3bd4945dd993be3c4f4f81eccb811cca51b27621c77222a71ff5242b67722e0d69262d2d69875a9ef924f5e13b52240b5d59969e94526950a26b7a4ffd9bc8a1aabca7deef831ead75a0173ad4915eea95a699a96aedc9533a898370afe3a4eb299da9822ef42659bb9567bd0beb7a9fb4c58f7af4411ff55a27faa4cffaa2af9ace1f8f528e0d5375b8d2f730d2791ae882dea4efa22e4919eee93ae9edeb727ac24c0f4f744557754dd7754337754bb7d3beafe573d809631deb8eece8ae2e262d7b494b3f69dc4fbff5434b97f5e0839e433dd2633dd1533dd3736d689347daca3539d94a7e6d693b3d7b493b69dfb296d4a3bf252bddcf7a82684fcbf43a16f43452eab2441751efc6533bbc467dba8afa434bb2b217a314fafe518ffd2bf56903d3142fd2ec40efa9d6d5e93b9cde0c7c42579fb5242b375ff5c0d230691ac54bd98b9aaae7f4165c0bad789547d3ec789de22366258e35c46427de7ed5932ddd4d35c5fbf8903c6ba5bb6140fd1fa3662d75df57f131e552579e3eeb4167903f3c8993f8a47da9e273caa3767cf964c73ee98e88afc9d3e6e7fc41ed714d6ff13dcee75d0ea9a67f5ccf5fb59996afe77d6669212ec6a5e4d93daf7c5cf975dec7cf977af88b191fac7cea313e8f7dffd75fbffd1bbcd1c249</data>
+ </image>
+</images>
+<layoutdefaults spacing="6" margin="11"/>
+</UI>
diff --git a/muse2/muse/widgets/filedialog.cpp b/muse2/muse/widgets/filedialog.cpp
new file mode 100644
index 00000000..6ffa6f69
--- /dev/null
+++ b/muse2/muse/widgets/filedialog.cpp
@@ -0,0 +1,534 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: filedialog.cpp,v 1.3.2.3 2005/06/19 06:32:07 lunar_shuttle Exp $
+// (C) Copyright 2000 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include <iostream>
+#include <errno.h>
+#include <qwidget.h>
+#include <q3url.h>
+#include <qpixmap.h>
+#include <qmessagebox.h>
+#include <q3buttongroup.h>
+#include <qtoolbutton.h>
+#include <qradiobutton.h>
+#include <qstringlist.h>
+
+#include "filedialog.h"
+#include "fdialogbuttons.h"
+#include "../globals.h"
+
+MFileDialog::ViewType MFileDialog::lastViewUsed = GLOBAL_VIEW;
+QString MFileDialog::lastUserDir = "";
+QString MFileDialog::lastGlobalDir = "";
+
+//---------------------------------------------------------
+// createDir
+// return true if dir could not created
+//---------------------------------------------------------
+
+static bool createDir(const QString& s)
+ {
+ QString sl("/");
+ QStringList l = QStringList::split(sl, s);
+ QString path(sl);
+ QDir dir;
+ for (QStringList::Iterator it = l.begin(); it != l.end(); ++it) {
+ dir.setPath(path);
+ if (!QDir(path + sl + *it).exists()) {
+ if (!dir.mkdir(*it)) {
+ printf("mkdir failed: %s %s\n",
+ path.latin1(), (*it).latin1());
+ return true;
+ }
+ }
+ path += sl;
+ path += *it;
+ }
+ return false;
+ }
+
+//---------------------------------------------------------
+// testDirCreate
+// return true if dir does not exist
+//---------------------------------------------------------
+
+static bool testDirCreate(QWidget* parent, const QString& path)
+ {
+ QDir dir(path);
+ if (!dir.exists()) {
+ int n = QMessageBox::information(parent,
+ QWidget::tr("MusE: get file name"),
+ QWidget::tr("the directory\n") + path
+ + QWidget::tr("\ndoes not exist\ncreate?"),
+ QWidget::tr("&Create"),
+ QWidget::tr("Cancel"),
+ QString::null, 1, 1);
+ if (n == 0) {
+ if (createDir(path)) {
+ QMessageBox::critical(parent,
+ QWidget::tr("MusE: create directory"),
+ QWidget::tr("creating dir failed")
+ );
+ return true;
+ }
+ return false;
+ }
+ return true;
+ }
+ return false;
+ }
+
+//---------------------------------------------------------
+// globalToggled
+//---------------------------------------------------------
+
+void MFileDialog::globalToggled(bool flag)
+ {
+ if (flag) {
+ buttons->userButton->setOn(!flag);
+ buttons->projectButton->setOn(!flag);
+ if (lastGlobalDir.isEmpty())
+ lastGlobalDir = museGlobalShare + QString("/") + baseDir; // Initialize if first time
+ QString dir = lastGlobalDir;
+ setDir(dir);
+ lastViewUsed = GLOBAL_VIEW;
+ }
+ }
+
+//---------------------------------------------------------
+// userToggled
+//---------------------------------------------------------
+
+void MFileDialog::userToggled(bool flag)
+ {
+ if (flag) {
+ buttons->globalButton->setOn(!flag);
+ buttons->projectButton->setOn(!flag);
+
+
+ if (lastUserDir.isEmpty()) {
+ lastUserDir = museUser + QString("/") + baseDir; // Initialize if first time
+ }
+
+ if (testDirCreate(this, lastUserDir))
+ setDir(museUser);
+ else
+ setDir(lastUserDir);
+
+ lastViewUsed = USER_VIEW;
+ }
+ }
+
+//---------------------------------------------------------
+// projectToggled
+//---------------------------------------------------------
+
+void MFileDialog::projectToggled(bool flag)
+ {
+ if (flag) {
+ buttons->globalButton->setOn(!flag);
+ buttons->userButton->setOn(!flag);
+
+ QString s;
+ if (museProject == museProjectInitPath ) {
+ // if project path is uninitialized, meaning it is still set to museProjectInitPath.
+ // then project path is set to current pwd instead.
+ s = QString(getcwd(0,0)) + QString("/");
+ }
+ else
+ s = museProject + QString("/"); // + baseDir;
+
+ if (testDirCreate(this, s))
+ setDir(museProject);
+ else
+ setDir(s);
+ lastViewUsed = PROJECT_VIEW;
+ }
+ }
+
+
+//---------------------------------------------------------
+// MFileDialog
+//---------------------------------------------------------
+
+MFileDialog::MFileDialog(const QString& dir,
+ const QString& filter, QWidget* parent, bool writeFlag)
+ : Q3FileDialog(QString("."), filter, parent, 0, true)
+ {
+ showButtons = false;
+ if (dir.length() > 0 && dir[0] == QChar('/')) {
+ buttons = 0;
+ setDir(dir);
+ }
+ else {
+ baseDir = dir;
+ showButtons = true;
+ buttons = new FileDialogButtons(this, "fdialogbuttons");
+ addLeftWidget(buttons);
+ connect(buttons->globalButton, SIGNAL(toggled(bool)), SLOT(globalToggled(bool)));
+ connect(buttons->userButton, SIGNAL(toggled(bool)), SLOT(userToggled(bool)));
+ connect(buttons->projectButton, SIGNAL(toggled(bool)), SLOT(projectToggled(bool)));
+ connect(this, SIGNAL(dirEntered(const QString&)), SLOT(directoryChanged(const QString&)));
+ if (writeFlag) {
+ buttons->globalButton->setEnabled(false);
+ switch (lastViewUsed) {
+ case GLOBAL_VIEW:
+ case PROJECT_VIEW:
+ buttons->projectButton->setOn(true);
+ break;
+
+ case USER_VIEW:
+ buttons->userButton->setOn(true);
+ break;
+ }
+ }
+ else {
+ switch (lastViewUsed) {
+ case GLOBAL_VIEW:
+ buttons->globalButton->setOn(true);
+ break;
+
+ case PROJECT_VIEW:
+ buttons->projectButton->setOn(true);
+ break;
+
+ case USER_VIEW:
+ buttons->userButton->setOn(true);
+ break;
+ }
+
+ }
+ buttons->loadAllGroup->setShown(false);
+ }
+ }
+
+//---------------------------------------------------------
+// MFileDialog::directoryChanged
+//---------------------------------------------------------
+void MFileDialog::directoryChanged(const QString&)
+ {
+ ViewType currentView = GLOBAL_VIEW;
+ const QDir* ndir = dir();
+ QString newdir = ndir->absPath().latin1();
+ delete ndir; // We're owners of this one so we should delete it
+ if (buttons->projectButton->isOn())
+ currentView = PROJECT_VIEW;
+ else if (buttons->userButton->isOn())
+ currentView = USER_VIEW;
+
+ switch (currentView) {
+ case GLOBAL_VIEW:
+ lastGlobalDir = newdir;
+ break;
+
+ case USER_VIEW:
+ lastUserDir = newdir;
+ break;
+
+ case PROJECT_VIEW: // Do nothing
+ default:
+ break;
+ }
+ }
+
+//---------------------------------------------------------
+// ContentsPreview
+//---------------------------------------------------------
+
+ContentsPreview::~ContentsPreview()
+ {
+ if (bg)
+ delete bg;
+ }
+
+//---------------------------------------------------------
+// ContentsPreview::showPreview
+//---------------------------------------------------------
+
+void ContentsPreview::previewUrl(const Q3Url& url)
+ {
+ if (!url.isLocalFile())
+ return;
+ if (url.path() == path)
+ return;
+ path = url.path();
+ if (bg)
+ delete bg;
+ bg = new QPixmap(path);
+ if (bg)
+ setBackgroundPixmap(*bg);
+ }
+
+//---------------------------------------------------------
+// getFilterExtension
+//---------------------------------------------------------
+
+QString getFilterExtension(const QString &filter)
+{
+ //
+ // Return the first extension found. Must contain at least one * character.
+ //
+
+ int pos = filter.find('*');
+ if(pos == -1)
+ return QString();
+
+ QString filt;
+ int len = filter.length();
+ ++pos;
+ for( ; pos < len; ++pos)
+ {
+ QChar c = filter[pos];
+ if((c == ')') || (c == ';') || (c == ',') || (c == ' '))
+ break;
+ filt += filter[pos];
+ }
+ return filt;
+}
+
+//---------------------------------------------------------
+// getOpenFileName
+//---------------------------------------------------------
+
+QString getOpenFileName(const QString &startWith,
+ //const char** filters, QWidget* parent, const QString& name, bool* all)
+ const QStringList& filters, QWidget* parent, const QString& name, bool* all)
+ {
+ QString initialSelection;
+ MFileDialog *dlg = new MFileDialog(startWith, QString::null, parent, false);
+ dlg->setFilters(filters);
+ dlg->setCaption(name);
+ if (all)
+ dlg->buttons->loadAllGroup->setShown(true);
+ if (!initialSelection.isEmpty())
+ dlg->setSelection(initialSelection);
+ dlg->setMode(Q3FileDialog::ExistingFile);
+ QString result;
+ if (dlg->exec() == QDialog::Accepted) {
+ result = dlg->selectedFile();
+ if (all) {
+ *all = dlg->buttons->loadAllButton->isOn();
+ }
+ }
+ delete dlg;
+ return result;
+ }
+
+//---------------------------------------------------------
+// getSaveFileName
+//---------------------------------------------------------
+
+QString getSaveFileName(const QString &startWith,
+ //const char** filters, QWidget* parent, const QString& name)
+ const QStringList& filters, QWidget* parent, const QString& name)
+ {
+ MFileDialog *dlg = new MFileDialog(startWith, QString::null, parent, true);
+ dlg->setFilters(filters);
+ dlg->setCaption(name);
+ dlg->setMode(Q3FileDialog::AnyFile);
+ QString result;
+ if (dlg->exec() == QDialog::Accepted)
+ result = dlg->selectedFile();
+
+
+ // Added by T356.
+ if(!result.isEmpty())
+ {
+ QString filt = dlg->selectedFilter();
+ filt = getFilterExtension(filt);
+ // Do we have a valid extension?
+ if(!filt.isEmpty())
+ {
+ // If the rightmost characters of the filename do not already contain
+ // the extension, add the extension to the filename.
+ //if(result.right(filt.length()) != filt)
+ if(!result.endsWith(filt))
+ result += filt;
+ }
+ else
+ {
+ // No valid extension, or just * was given. Although it would be nice to allow no extension
+ // or any desired extension by commenting this section out, it's probably not a good idea to do so.
+ //
+ // NOTE: Most calls to this routine getSaveFileName() are followed by fileOpen(),
+ // which can tack on its own extension, but only if the *complete* extension is blank.
+ // So there is some overlap going on. Enabling this actually stops that action,
+ // but only if there are no errors in the list of filters. fileOpen() will act as a 'catchall'.
+ //
+ // Force the filter list to the first one (the preferred one), and then get the filter.
+ dlg->setSelectedFilter(0);
+ filt = dlg->selectedFilter();
+ filt = getFilterExtension(filt);
+
+ // Do we have a valid extension?
+ if(!filt.isEmpty())
+ {
+ // If the rightmost characters of the filename do not already contain
+ // the extension, add the extension to the filename.
+ //if(result.right(filt.length()) != filt)
+ if(!result.endsWith(filt))
+ result += filt;
+ }
+ }
+ }
+
+ delete dlg;
+ return result;
+ }
+
+//---------------------------------------------------------
+// getImageFileName
+//---------------------------------------------------------
+
+QString getImageFileName(const QString& startWith,
+ //const char** filters, QWidget* parent, const QString& name)
+ const QStringList& filters, QWidget* parent, const QString& name)
+ {
+ QString initialSelection;
+ QString* workingDirectory = new QString(QDir::currentDirPath());
+ if (!startWith.isEmpty() ) {
+ QFileInfo fi(startWith);
+ if (fi.exists() && fi.isDir()) {
+ *workingDirectory = startWith;
+ }
+ else if (fi.exists() && fi.isFile()) {
+ *workingDirectory = fi.dirPath(TRUE);
+ initialSelection = fi.absFilePath();
+ }
+ }
+ MFileDialog *dlg = new MFileDialog(*workingDirectory, QString::null,
+ parent);
+
+ dlg->setContentsPreviewEnabled(true);
+ ContentsPreview* preview = new ContentsPreview(dlg);
+ dlg->setContentsPreview(preview, preview);
+ dlg->setPreviewMode(Q3FileDialog::Contents);
+
+ dlg->setCaption(name);
+ dlg->setFilters(filters);
+ dlg->setMode(Q3FileDialog::ExistingFile);
+ QString result;
+ if (!initialSelection.isEmpty())
+ dlg->setSelection( initialSelection);
+ if (dlg->exec() == QDialog::Accepted) {
+ result = dlg->selectedFile();
+ }
+ delete dlg;
+ return result;
+ }
+
+//---------------------------------------------------------
+// fileOpen
+// opens file "name" with extension "ext" in mode "mode"
+// handles "name.ext.bz2" and "name.ext.gz"
+//
+// mode = "r" or "w"
+// popenFlag set to true on return if file was opened
+// with popen() (and therefore must be closed
+// with pclose())
+// 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
+//---------------------------------------------------------
+
+FILE* fileOpen(QWidget* parent, QString name, const QString& ext,
+ const char* mode, bool& popenFlag, bool noError,
+ bool overwriteWarning)
+ {
+ QFileInfo info(name);
+ QString zip;
+
+ popenFlag = false;
+ if (info.extension(true) == "") {
+ name += ext;
+ info.setFile(name);
+ }
+ else if (info.extension(false) == "gz") {
+ popenFlag = true;
+ zip = QString("gzip");
+ }
+ else if (info.extension(false) == "bz2") {
+ popenFlag = true;
+ zip = QString("bzip2");
+ }
+
+ if (strcmp(mode,"w") == 0 && 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;
+ }
+ }
+ FILE* fp = 0;
+ if (popenFlag) {
+ if (strcmp(mode, "r") == 0)
+ zip += QString(" -d < ");
+ else
+ zip += QString(" > ");
+ zip += name;
+ fp = popen(zip.ascii(), mode);
+ }
+ else {
+ fp = fopen(name.ascii(), mode);
+ }
+ if (fp == 0 && !noError) {
+ QString s(QWidget::tr("Open File\n") + name + QWidget::tr("\nfailed: ")
+ + QString(strerror(errno)));
+ QMessageBox::critical(parent, QWidget::tr("MusE: Open File"), s);
+ return 0;
+ }
+ return fp;
+ }
+
+//---------------------------------------------------------
+// MFile
+//---------------------------------------------------------
+
+MFile::MFile(const QString& _path, const QString& _ext)
+ : path(_path), ext(_ext)
+ {
+ f = 0;
+ isPopen = false;
+ }
+
+MFile::~MFile()
+ {
+ if (f) {
+ if (isPopen)
+ pclose(f);
+ else
+ fclose(f);
+ }
+ }
+
+//---------------------------------------------------------
+// open
+//---------------------------------------------------------
+
+//FILE* MFile::open(const char* mode, const char** pattern,
+FILE* MFile::open(const char* mode, const QStringList& pattern,
+ QWidget* parent, bool noError, bool warnIfOverwrite, const QString& caption)
+ {
+ QString name;
+ if (strcmp(mode, "r") == 0)
+ name = getOpenFileName(path, pattern, parent, caption, 0);
+ else
+ name = getSaveFileName(path, pattern, parent, caption);
+ if (name.isEmpty())
+ return 0;
+ f = fileOpen(parent, name, ext, mode, isPopen, noError,
+ warnIfOverwrite);
+ return f;
+ }
+
diff --git a/muse2/muse/widgets/filedialog.h b/muse2/muse/widgets/filedialog.h
new file mode 100644
index 00000000..2208b5bc
--- /dev/null
+++ b/muse2/muse/widgets/filedialog.h
@@ -0,0 +1,92 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: filedialog.h,v 1.2.2.2 2008/01/19 13:33:46 wschweer Exp $
+// (C) Copyright 2000 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include <q3filedialog.h>
+//Added by qt3to4:
+#include <QPixmap>
+
+class FileDialogButtons;
+class QStringList;
+
+//---------------------------------------------------------
+// MFileDialog
+//---------------------------------------------------------
+
+class MFileDialog : public Q3FileDialog {
+ Q_OBJECT
+
+ enum ViewType { GLOBAL_VIEW, PROJECT_VIEW, USER_VIEW }; //!< The three different viewtypes
+ static ViewType lastViewUsed;
+ static QString lastUserDir, lastGlobalDir;
+ bool showButtons;
+ QString baseDir;
+
+ private slots:
+ void globalToggled(bool);
+ void userToggled(bool);
+ void projectToggled(bool);
+ void directoryChanged(const QString& directory);
+
+ public:
+ FileDialogButtons* buttons;
+ MFileDialog(const QString& dir, const QString& filter = QString::null,
+ QWidget* parent = 0, bool writeFlag = false);
+ };
+
+//---------------------------------------------------------
+// ContentsPreview
+//---------------------------------------------------------
+
+class ContentsPreview : public QWidget, public Q3FilePreview {
+ Q_OBJECT
+
+ virtual void previewUrl(const Q3Url &url);
+ QString path;
+ QPixmap* bg;
+
+ public:
+ ContentsPreview(QWidget* parent, const char* name=0)
+ : QWidget(parent, name) {
+ bg = 0;
+ }
+ ~ContentsPreview();
+ };
+
+//QString getSaveFileName(const QString& startWidth, const char** filter,
+QString getSaveFileName(const QString& startWidth, const QStringList& filters,
+ QWidget* parent, const QString& name);
+//QString getOpenFileName(const QString& startWidth, const char** filter,
+QString getOpenFileName(const QString& startWidth, const QStringList& filters,
+ QWidget* parent, const QString& name, bool* openAll);
+//QString getImageFileName(const QString& startWith, const char** filters,
+QString getImageFileName(const QString& startWith, const QStringList& filters,
+ QWidget* parent, const QString& name);
+
+FILE* fileOpen(QWidget*, QString, const QString&,
+ const char*, bool&, bool = false, bool = false);
+
+
+//---------------------------------------------------------
+// MFile
+// "Muse" File
+//---------------------------------------------------------
+
+class MFile {
+ bool isPopen;
+ FILE* f;
+ QString path;
+ QString ext;
+
+ public:
+ MFile(const QString& path, const QString& ext);
+ ~MFile();
+ //FILE* open(const char* mode, const char** pattern,
+ FILE* open(const char* mode, const QStringList& pattern,
+ QWidget* parent, bool noError,
+ bool warnIfOverwrite, const QString& caption);
+ };
+
diff --git a/muse2/muse/widgets/fontsel.cpp b/muse2/muse/widgets/fontsel.cpp
new file mode 100644
index 00000000..a6808ff1
--- /dev/null
+++ b/muse2/muse/widgets/fontsel.cpp
@@ -0,0 +1,137 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: fontsel.cpp,v 1.1.1.1 2003/10/27 18:55:02 wschweer Exp $
+// (C) Copyright 1999 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include <qlabel.h>
+#include <qspinbox.h>
+#include <qpushbutton.h>
+//#include <qhbuttongroup.h>
+#include <q3buttongroup.h>
+#include <qtoolbutton.h>
+#include <qcombobox.h>
+#include <qlayout.h>
+#include <qfontdialog.h>
+#include <qfontdatabase.h>
+//Added by qt3to4:
+#include <Q3HBoxLayout>
+
+#include "icons.h"
+#include "fontsel.h"
+
+//---------------------------------------------------------
+// FontSel
+//---------------------------------------------------------
+
+FontSel::FontSel(QWidget* parent, const QFont& f, const QString& name)
+ : QWidget(parent)
+ {
+ _font = f;
+ Q3HBoxLayout* box = new Q3HBoxLayout(this);
+
+ cb = new QComboBox(this);
+ cb->setFixedWidth(80);
+ cb->insertItem(QString("arial"));
+ cb->insertItem(QString("avantgarde"));
+ cb->insertItem(QString("charter"));
+ cb->insertItem(QString("garamond"));
+ cb->insertItem(QString("gillsans"));
+ cb->insertItem(QString("helvetica"));
+ cb->insertItem(QString("times"));
+ cb->insertItem(QString("terminal"));
+ cb->insertItem(QString("utopia"));
+ cb->insertItem(QString("new century schoolbook"));
+
+ QLabel* l1 = new QLabel(tr("Size:"), this);
+ s1 = new QSpinBox(8, 48, 1, this);
+
+ fcb1 = new QToolButton(this);
+ fcb1->setToggleButton(true);
+ fcb1->setPixmap(*(boldIcon));
+
+ fcb2 = new QToolButton(this);
+ fcb2->setToggleButton(true);
+ fcb2->setPixmap(*(italicIcon));
+
+ fcb3 = new QToolButton(this);
+ fcb3->setToggleButton(true);
+ fcb3->setPixmap(*(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->setOn(_font.weight() == QFont::Bold);
+ fcb2->setOn(_font.italic());
+ fcb3->setOn(_font.underline());
+ int i;
+ for (i = 0; i < cb->count(); ++i) {
+ QString s = cb->text(i);
+ if (s == _font.family()) {
+ cb->setCurrentItem(i);
+ break;
+ }
+ }
+ if (i == cb->count()) {
+ cb->insertItem(_font.family());
+ cb->setCurrentItem(i);
+ }
+ }
+
+//---------------------------------------------------------
+// font
+//---------------------------------------------------------
+
+const QFont& FontSel::font()
+ {
+ _font.setPointSize(s1->value());
+ _font.setWeight(fcb1->isOn() ? QFont::Bold : QFont::Normal);
+ _font.setItalic(fcb2->isOn());
+ _font.setUnderline(fcb3->isOn());
+ _font.setFamily(cb->currentText());
+ return _font;
+ }
+
diff --git a/muse2/muse/widgets/fontsel.h b/muse2/muse/widgets/fontsel.h
new file mode 100644
index 00000000..1b906aab
--- /dev/null
+++ b/muse2/muse/widgets/fontsel.h
@@ -0,0 +1,45 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: fontsel.h,v 1.1.1.1.2.1 2008/01/19 13:33:46 wschweer Exp $
+// (C) Copyright 1999 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __FONTSEL_H__
+#define __FONTSEL_H__
+
+#include <qwidget.h>
+#include "song.h"
+
+class QFont;
+class QSpinBox;
+class QToolButton;
+class QComboBox;
+
+//---------------------------------------------------------
+// FontSel
+//---------------------------------------------------------
+
+class FontSel : public QWidget {
+ Q_OBJECT
+
+ QFont _font;
+ QSpinBox* s1;
+ QToolButton* fcb1;
+ QToolButton* fcb2;
+ QToolButton* fcb3;
+ QComboBox* cb;
+
+ void setFont();
+
+ private slots:
+ void fontSelect();
+
+ public:
+ FontSel(QWidget* parent, const QFont&, const QString&);
+ const QFont& font();
+ };
+
+
+#endif
+
diff --git a/muse2/muse/widgets/gatetime.cpp b/muse2/muse/widgets/gatetime.cpp
new file mode 100644
index 00000000..412d4d4c
--- /dev/null
+++ b/muse2/muse/widgets/gatetime.cpp
@@ -0,0 +1,46 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: gatetime.cpp,v 1.1.1.1 2003/10/27 18:54:37 wschweer Exp $
+// (C) Copyright 2001 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include <q3buttongroup.h>
+#include <qspinbox.h>
+//#include <qbutton.h>
+#include <QtGui>
+
+#include "gatetime.h"
+
+#include "song.h"
+
+//---------------------------------------------------------
+// GateTime
+//---------------------------------------------------------
+
+GateTime::GateTime(QWidget* parent, const char* name)
+ : GateTimeBase(parent, name, true)
+ {
+ }
+
+//---------------------------------------------------------
+// accept
+//---------------------------------------------------------
+
+void GateTime::accept()
+ {
+ _range = rangeGroup->id(rangeGroup->selected());
+ _rateVal = rate->value();
+ _offsetVal = offset->value();
+ GateTimeBase::accept();
+ }
+
+//---------------------------------------------------------
+// setRange
+//---------------------------------------------------------
+
+void GateTime::setRange(int id)
+ {
+ rangeGroup->setButton(id);
+ }
+
diff --git a/muse2/muse/widgets/gatetime.h b/muse2/muse/widgets/gatetime.h
new file mode 100644
index 00000000..c3e5b883
--- /dev/null
+++ b/muse2/muse/widgets/gatetime.h
@@ -0,0 +1,36 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: gatetime.h,v 1.1.1.1.2.1 2008/01/19 13:33:47 wschweer Exp $
+// (C) Copyright 2001 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __GATETIME_H__
+#define __GATETIME_H__
+
+#include "gatetimebase.h"
+
+//---------------------------------------------------------
+// GateTime
+//---------------------------------------------------------
+
+class GateTime : public GateTimeBase {
+ Q_OBJECT
+
+ int _range;
+ int _rateVal;
+ int _offsetVal;
+
+ protected slots:
+ void accept();
+
+ public:
+ GateTime(QWidget* parent, const char* name = 0);
+ void setRange(int id);
+ int range() const { return _range; }
+ int rateVal() const { return _rateVal; }
+ int offsetVal() const { return _offsetVal; }
+ };
+
+#endif
+
diff --git a/muse2/muse/widgets/gatetimebase.ui b/muse2/muse/widgets/gatetimebase.ui
new file mode 100644
index 00000000..fe696076
--- /dev/null
+++ b/muse2/muse/widgets/gatetimebase.ui
@@ -0,0 +1,285 @@
+<!DOCTYPE UI><UI>
+<class>GateTimeBase</class>
+<widget>
+ <class>QDialog</class>
+ <property stdset="1">
+ <name>name</name>
+ <cstring>GateTimeBase</cstring>
+ </property>
+ <property stdset="1">
+ <name>geometry</name>
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>275</width>
+ <height>266</height>
+ </rect>
+ </property>
+ <property stdset="1">
+ <name>caption</name>
+ <string>MusE: Modify Gate Time</string>
+ </property>
+ <vbox>
+ <property stdset="1">
+ <name>margin</name>
+ <number>11</number>
+ </property>
+ <property stdset="1">
+ <name>spacing</name>
+ <number>6</number>
+ </property>
+ <widget>
+ <class>QButtonGroup</class>
+ <property stdset="1">
+ <name>name</name>
+ <cstring>rangeGroup</cstring>
+ </property>
+ <property stdset="1">
+ <name>title</name>
+ <string>Range</string>
+ </property>
+ <property stdset="1">
+ <name>exclusive</name>
+ <bool>true</bool>
+ </property>
+ <vbox>
+ <property stdset="1">
+ <name>margin</name>
+ <number>11</number>
+ </property>
+ <property stdset="1">
+ <name>spacing</name>
+ <number>6</number>
+ </property>
+ <widget>
+ <class>QRadioButton</class>
+ <property stdset="1">
+ <name>name</name>
+ <cstring>RadioButton5</cstring>
+ </property>
+ <property stdset="1">
+ <name>text</name>
+ <string>All Events</string>
+ </property>
+ <property stdset="1">
+ <name>buttonGroupId</name>
+ <number>0</number>
+ </property>
+ </widget>
+ <widget>
+ <class>QRadioButton</class>
+ <property stdset="1">
+ <name>name</name>
+ <cstring>RadioButton6</cstring>
+ </property>
+ <property stdset="1">
+ <name>text</name>
+ <string>Selected Events</string>
+ </property>
+ <property stdset="1">
+ <name>checked</name>
+ <bool>true</bool>
+ </property>
+ <property stdset="1">
+ <name>buttonGroupId</name>
+ <number>1</number>
+ </property>
+ </widget>
+ <widget>
+ <class>QRadioButton</class>
+ <property stdset="1">
+ <name>name</name>
+ <cstring>RadioButton7</cstring>
+ </property>
+ <property stdset="1">
+ <name>text</name>
+ <string>Looped Events</string>
+ </property>
+ <property stdset="1">
+ <name>buttonGroupId</name>
+ <number>2</number>
+ </property>
+ </widget>
+ <widget>
+ <class>QRadioButton</class>
+ <property stdset="1">
+ <name>name</name>
+ <cstring>RadioButton8</cstring>
+ </property>
+ <property stdset="1">
+ <name>text</name>
+ <string>Selected &amp; Looped</string>
+ </property>
+ <property stdset="1">
+ <name>buttonGroupId</name>
+ <number>3</number>
+ </property>
+ </widget>
+ </vbox>
+ </widget>
+ <widget>
+ <class>QGroupBox</class>
+ <property stdset="1">
+ <name>name</name>
+ <cstring>GroupBox3</cstring>
+ </property>
+ <property stdset="1">
+ <name>title</name>
+ <string>Values</string>
+ </property>
+ <grid>
+ <property stdset="1">
+ <name>margin</name>
+ <number>11</number>
+ </property>
+ <property stdset="1">
+ <name>spacing</name>
+ <number>6</number>
+ </property>
+ <widget row="0" column="0" >
+ <class>QLabel</class>
+ <property stdset="1">
+ <name>name</name>
+ <cstring>TextLabel3</cstring>
+ </property>
+ <property stdset="1">
+ <name>text</name>
+ <string>Rate:</string>
+ </property>
+ </widget>
+ <widget row="1" column="0" >
+ <class>QLabel</class>
+ <property stdset="1">
+ <name>name</name>
+ <cstring>TextLabel4</cstring>
+ </property>
+ <property stdset="1">
+ <name>text</name>
+ <string>Offset:</string>
+ </property>
+ </widget>
+ <widget row="0" column="1" >
+ <class>QSpinBox</class>
+ <property stdset="1">
+ <name>name</name>
+ <cstring>rate</cstring>
+ </property>
+ <property stdset="1">
+ <name>suffix</name>
+ <string>%</string>
+ </property>
+ <property stdset="1">
+ <name>maxValue</name>
+ <number>200</number>
+ </property>
+ <property stdset="1">
+ <name>value</name>
+ <number>100</number>
+ </property>
+ </widget>
+ <widget row="1" column="1" >
+ <class>QSpinBox</class>
+ <property stdset="1">
+ <name>name</name>
+ <cstring>offset</cstring>
+ </property>
+ <property stdset="1">
+ <name>maxValue</name>
+ <number>999</number>
+ </property>
+ <property stdset="1">
+ <name>minValue</name>
+ <number>-999</number>
+ </property>
+ <property stdset="1">
+ <name>lineStep</name>
+ <number>1</number>
+ </property>
+ </widget>
+ </grid>
+ </widget>
+ <widget>
+ <class>QLayoutWidget</class>
+ <property stdset="1">
+ <name>name</name>
+ <cstring>Layout3</cstring>
+ </property>
+ <hbox>
+ <property stdset="1">
+ <name>margin</name>
+ <number>0</number>
+ </property>
+ <property stdset="1">
+ <name>spacing</name>
+ <number>6</number>
+ </property>
+ <spacer>
+ <property>
+ <name>name</name>
+ <cstring>Spacer1</cstring>
+ </property>
+ <property stdset="1">
+ <name>orientation</name>
+ <enum>Horizontal</enum>
+ </property>
+ <property stdset="1">
+ <name>sizeType</name>
+ <enum>Expanding</enum>
+ </property>
+ <property>
+ <name>sizeHint</name>
+ <size>
+ <width>20</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ <widget>
+ <class>QPushButton</class>
+ <property stdset="1">
+ <name>name</name>
+ <cstring>okButton</cstring>
+ </property>
+ <property stdset="1">
+ <name>text</name>
+ <string>OK</string>
+ </property>
+ <property stdset="1">
+ <name>autoDefault</name>
+ <bool>false</bool>
+ </property>
+ <property stdset="1">
+ <name>default</name>
+ <bool>true</bool>
+ </property>
+ </widget>
+ <widget>
+ <class>QPushButton</class>
+ <property stdset="1">
+ <name>name</name>
+ <cstring>cancelButton</cstring>
+ </property>
+ <property stdset="1">
+ <name>text</name>
+ <string>Cancel</string>
+ </property>
+ </widget>
+ </hbox>
+ </widget>
+ </vbox>
+</widget>
+<connections>
+ <connection>
+ <sender>okButton</sender>
+ <signal>clicked()</signal>
+ <receiver>GateTimeBase</receiver>
+ <slot>accept()</slot>
+ </connection>
+ <connection>
+ <sender>cancelButton</sender>
+ <signal>clicked()</signal>
+ <receiver>GateTimeBase</receiver>
+ <slot>reject()</slot>
+ </connection>
+</connections>
+</UI>
diff --git a/muse2/muse/widgets/genset.cpp b/muse2/muse/widgets/genset.cpp
new file mode 100644
index 00000000..79f190d0
--- /dev/null
+++ b/muse2/muse/widgets/genset.cpp
@@ -0,0 +1,444 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: genset.cpp,v 1.7.2.8 2009/12/01 03:52:40 terminator356 Exp $
+//
+// (C) Copyright 2001-2004 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include <stdio.h>
+#include <qpushbutton.h>
+#include <qcombobox.h>
+#include <qspinbox.h>
+#include <qlineedit.h>
+#include <q3buttongroup.h>
+#include <qcheckbox.h>
+#include <qlabel.h>
+//Added by qt3to4:
+#include <QShowEvent>
+
+#include "genset.h"
+#include "app.h"
+#include "gconfig.h"
+#include "midiseq.h"
+#include "globals.h"
+
+static int rtcResolutions[] = {
+ 1024, 2048, 4096, 8192, 16384, 32768
+ };
+static int divisions[] = {
+ 48, 96, 192, 384, 768, 1536, 3072, 6144, 12288
+ };
+static int dummyAudioBufSizes[] = {
+ 16, 32, 64, 128, 256, 512, 1024, 2048
+ };
+
+//---------------------------------------------------------
+// GlobalSettingsConfig
+//---------------------------------------------------------
+
+GlobalSettingsConfig::GlobalSettingsConfig(QWidget* parent, const char* name)
+ : GlobalSettingsDialogBase(parent, name)
+ {
+ for (unsigned i = 0; i < sizeof(rtcResolutions)/sizeof(*rtcResolutions); ++i) {
+ if (rtcResolutions[i] == config.rtcTicks) {
+ rtcResolutionSelect->setCurrentItem(i);
+ break;
+ }
+ }
+ for (unsigned i = 0; i < sizeof(divisions)/sizeof(*divisions); ++i) {
+ if (divisions[i] == config.division) {
+ midiDivisionSelect->setCurrentItem(i);
+ break;
+ }
+ }
+ for (unsigned i = 0; i < sizeof(divisions)/sizeof(*divisions); ++i) {
+ if (divisions[i] == config.guiDivision) {
+ guiDivisionSelect->setCurrentItem(i);
+ break;
+ }
+ }
+ for (unsigned i = 0; i < sizeof(dummyAudioBufSizes)/sizeof(*dummyAudioBufSizes); ++i) {
+ if (dummyAudioBufSizes[i] == config.dummyAudioBufSize) {
+ dummyAudioSize->setCurrentItem(i);
+ break;
+ }
+ }
+
+ guiRefreshSelect->setValue(config.guiRefresh);
+ minSliderSelect->setValue(int(config.minSlider));
+ minMeterSelect->setValue(config.minMeter);
+ freewheelCheckBox->setChecked(config.freewheelMode);
+ denormalCheckBox->setChecked(config.useDenormalBias);
+ outputLimiterCheckBox->setChecked(config.useOutputLimiter);
+ vstInPlaceCheckBox->setChecked(config.vstInPlace);
+ dummyAudioRate->setValue(config.dummyAudioSampleRate);
+
+ //DummyAudioDevice* dad = dynamic_cast<DummyAudioDevice*>(audioDevice);
+ //dummyAudioRealRate->setText(dad ? QString().setNum(sampleRate) : "---");
+ dummyAudioRealRate->setText(QString().setNum(sampleRate));
+
+ helpBrowser->setText(config.helpBrowser);
+ startSongEntry->setText(config.startSong);
+ startSongGroup->setButton(config.startMode);
+
+ showTransport->setChecked(config.transportVisible);
+ showBigtime->setChecked(config.bigTimeVisible);
+ //showMixer->setChecked(config.mixerVisible);
+ showMixer->setChecked(config.mixer1Visible);
+ showMixer2->setChecked(config.mixer2Visible);
+
+ arrangerX->setValue(config.geometryMain.x());
+ arrangerY->setValue(config.geometryMain.y());
+ arrangerW->setValue(config.geometryMain.width());
+ arrangerH->setValue(config.geometryMain.height());
+
+ 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());
+
+ //mixerX->setValue(config.geometryMixer.x());
+ //mixerY->setValue(config.geometryMixer.y());
+ //mixerW->setValue(config.geometryMixer.width());
+ //mixerH->setValue(config.geometryMixer.height());
+ mixerX->setValue(config.mixer1.geometry.x());
+ mixerY->setValue(config.mixer1.geometry.y());
+ mixerW->setValue(config.mixer1.geometry.width());
+ mixerH->setValue(config.mixer1.geometry.height());
+ mixer2X->setValue(config.mixer2.geometry.x());
+ mixer2Y->setValue(config.mixer2.geometry.y());
+ mixer2W->setValue(config.mixer2.geometry.width());
+ mixer2H->setValue(config.mixer2.geometry.height());
+
+ //setMixerCurrent->setEnabled(muse->mixerWindow());
+ setMixerCurrent->setEnabled(muse->mixer1Window());
+ setMixer2Current->setEnabled(muse->mixer2Window());
+
+ setBigtimeCurrent->setEnabled(muse->bigtimeWindow());
+ setTransportCurrent->setEnabled(muse->transportWindow());
+
+ showSplash->setChecked(config.showSplashScreen);
+ showDidYouKnow->setChecked(config.showDidYouKnow);
+ externalWavEditorSelect->setText(config.externalWavEditor);
+ oldStyleStopCheckBox->setChecked(config.useOldStyleStopShortCut);
+ moveArmedCheckBox->setChecked(config.moveArmedCheckBox);
+
+ //updateSettings(); // TESTING
+
+ connect(applyButton, SIGNAL(clicked()), SLOT(apply()));
+ connect(okButton, SIGNAL(clicked()), SLOT(ok()));
+ connect(cancelButton, SIGNAL(clicked()), SLOT(cancel()));
+ connect(setMixerCurrent, SIGNAL(clicked()), SLOT(mixerCurrent()));
+ connect(setMixer2Current, SIGNAL(clicked()), SLOT(mixer2Current()));
+ connect(setBigtimeCurrent, SIGNAL(clicked()), SLOT(bigtimeCurrent()));
+ connect(setArrangerCurrent, SIGNAL(clicked()), SLOT(arrangerCurrent()));
+ connect(setTransportCurrent, SIGNAL(clicked()), SLOT(transportCurrent()));
+ }
+
+//---------------------------------------------------------
+// updateSettings
+//---------------------------------------------------------
+
+void GlobalSettingsConfig::updateSettings()
+{
+ for (unsigned i = 0; i < sizeof(rtcResolutions)/sizeof(*rtcResolutions); ++i) {
+ if (rtcResolutions[i] == config.rtcTicks) {
+ rtcResolutionSelect->setCurrentItem(i);
+ break;
+ }
+ }
+ for (unsigned i = 0; i < sizeof(divisions)/sizeof(*divisions); ++i) {
+ if (divisions[i] == config.division) {
+ midiDivisionSelect->setCurrentItem(i);
+ break;
+ }
+ }
+ for (unsigned i = 0; i < sizeof(divisions)/sizeof(*divisions); ++i) {
+ if (divisions[i] == config.guiDivision) {
+ guiDivisionSelect->setCurrentItem(i);
+ break;
+ }
+ }
+ for (unsigned i = 0; i < sizeof(dummyAudioBufSizes)/sizeof(*dummyAudioBufSizes); ++i) {
+ if (dummyAudioBufSizes[i] == config.dummyAudioBufSize) {
+ dummyAudioSize->setCurrentItem(i);
+ break;
+ }
+ }
+
+ guiRefreshSelect->setValue(config.guiRefresh);
+ minSliderSelect->setValue(int(config.minSlider));
+ minMeterSelect->setValue(config.minMeter);
+ freewheelCheckBox->setChecked(config.freewheelMode);
+ denormalCheckBox->setChecked(config.useDenormalBias);
+ outputLimiterCheckBox->setChecked(config.useOutputLimiter);
+ vstInPlaceCheckBox->setChecked(config.vstInPlace);
+ dummyAudioRate->setValue(config.dummyAudioSampleRate);
+
+ //DummyAudioDevice* dad = dynamic_cast<DummyAudioDevice*>(audioDevice);
+ //dummyAudioRealRate->setText(dad ? QString().setNum(sampleRate) : "---");
+ dummyAudioRealRate->setText(QString().setNum(sampleRate));
+
+ helpBrowser->setText(config.helpBrowser);
+ startSongEntry->setText(config.startSong);
+ startSongGroup->setButton(config.startMode);
+
+ showTransport->setChecked(config.transportVisible);
+ showBigtime->setChecked(config.bigTimeVisible);
+ //showMixer->setChecked(config.mixerVisible);
+ showMixer->setChecked(config.mixer1Visible);
+ showMixer2->setChecked(config.mixer2Visible);
+
+ arrangerX->setValue(config.geometryMain.x());
+ arrangerY->setValue(config.geometryMain.y());
+ arrangerW->setValue(config.geometryMain.width());
+ arrangerH->setValue(config.geometryMain.height());
+
+ 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());
+
+ //mixerX->setValue(config.geometryMixer.x());
+ //mixerY->setValue(config.geometryMixer.y());
+ //mixerW->setValue(config.geometryMixer.width());
+ //mixerH->setValue(config.geometryMixer.height());
+ mixerX->setValue(config.mixer1.geometry.x());
+ mixerY->setValue(config.mixer1.geometry.y());
+ mixerW->setValue(config.mixer1.geometry.width());
+ mixerH->setValue(config.mixer1.geometry.height());
+ mixer2X->setValue(config.mixer2.geometry.x());
+ mixer2Y->setValue(config.mixer2.geometry.y());
+ mixer2W->setValue(config.mixer2.geometry.width());
+ mixer2H->setValue(config.mixer2.geometry.height());
+
+ //setMixerCurrent->setEnabled(muse->mixerWindow());
+ setMixerCurrent->setEnabled(muse->mixer1Window());
+ setMixer2Current->setEnabled(muse->mixer2Window());
+
+ setBigtimeCurrent->setEnabled(muse->bigtimeWindow());
+ setTransportCurrent->setEnabled(muse->transportWindow());
+
+ showSplash->setChecked(config.showSplashScreen);
+ showDidYouKnow->setChecked(config.showDidYouKnow);
+ externalWavEditorSelect->setText(config.externalWavEditor);
+ oldStyleStopCheckBox->setChecked(config.useOldStyleStopShortCut);
+ moveArmedCheckBox->setChecked(config.moveArmedCheckBox);
+}
+
+//---------------------------------------------------------
+// showEvent
+//---------------------------------------------------------
+
+void GlobalSettingsConfig::showEvent(QShowEvent* e)
+{
+ QDialog::showEvent(e);
+ //updateSettings(); // TESTING
+}
+
+//---------------------------------------------------------
+// apply
+//---------------------------------------------------------
+
+void GlobalSettingsConfig::apply()
+ {
+ int rtcticks = rtcResolutionSelect->currentItem();
+ config.guiRefresh = guiRefreshSelect->value();
+ config.minSlider = minSliderSelect->value();
+ config.minMeter = minMeterSelect->value();
+ config.freewheelMode = freewheelCheckBox->isChecked();
+ config.useDenormalBias = denormalCheckBox->isChecked();
+ config.useOutputLimiter = outputLimiterCheckBox->isChecked();
+ config.vstInPlace = vstInPlaceCheckBox->isChecked();
+ config.rtcTicks = rtcResolutions[rtcticks];
+ config.helpBrowser = helpBrowser->text();
+ config.startSong = startSongEntry->text();
+ config.startMode = startSongGroup->selectedId();
+ int das = dummyAudioSize->currentItem();
+ config.dummyAudioBufSize = dummyAudioBufSizes[das];
+ config.dummyAudioSampleRate = dummyAudioRate->value();
+
+ int div = midiDivisionSelect->currentItem();
+ config.division = divisions[div];
+ div = guiDivisionSelect->currentItem();
+ config.guiDivision = divisions[div];
+
+ config.transportVisible = showTransport->isChecked();
+ config.bigTimeVisible = showBigtime->isChecked();
+ //config.mixerVisible = showMixer->isChecked();
+ config.mixer1Visible = showMixer->isChecked();
+ config.mixer2Visible = showMixer2->isChecked();
+
+ config.geometryMain.setX(arrangerX->value());
+ config.geometryMain.setY(arrangerY->value());
+ config.geometryMain.setWidth(arrangerW->value());
+ config.geometryMain.setHeight(arrangerH->value());
+
+ 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.geometryMixer.setX(mixerX->value());
+ //config.geometryMixer.setY(mixerY->value());
+ //config.geometryMixer.setWidth(mixerW->value());
+ //config.geometryMixer.setHeight(mixerH->value());
+ config.mixer1.geometry.setX(mixerX->value());
+ config.mixer1.geometry.setY(mixerY->value());
+ config.mixer1.geometry.setWidth(mixerW->value());
+ config.mixer1.geometry.setHeight(mixerH->value());
+ config.mixer2.geometry.setX(mixer2X->value());
+ config.mixer2.geometry.setY(mixer2Y->value());
+ config.mixer2.geometry.setWidth(mixer2W->value());
+ config.mixer2.geometry.setHeight(mixer2H->value());
+
+ config.showSplashScreen = showSplash->isChecked();
+ config.showDidYouKnow = showDidYouKnow->isChecked();
+ config.externalWavEditor = externalWavEditorSelect->text();
+ config.useOldStyleStopShortCut = oldStyleStopCheckBox->isChecked();
+ config.moveArmedCheckBox = moveArmedCheckBox->isChecked();
+ //muse->showMixer(config.mixerVisible);
+ 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->mixerWindow();
+ //if (w) {
+ // w->resize(config.geometryMixer.size());
+ // w->move(config.geometryMixer.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->resize(config.geometryMain.size());
+ muse->move(config.geometryMain.topLeft());
+
+ muse->setHeartBeat(); // set guiRefresh
+ midiSeq->msgSetRtc(); // set midi tick rate
+ muse->changeConfig(true); // save settings
+ }
+
+//---------------------------------------------------------
+// ok
+//---------------------------------------------------------
+
+void GlobalSettingsConfig::ok()
+ {
+ apply();
+ close();
+ }
+
+//---------------------------------------------------------
+// cancel
+//---------------------------------------------------------
+
+void GlobalSettingsConfig::cancel()
+ {
+ close();
+ }
+
+//---------------------------------------------------------
+// mixerCurrent
+//---------------------------------------------------------
+
+void GlobalSettingsConfig::mixerCurrent()
+ {
+ QWidget* w = muse->mixer1Window();
+ if (!w)
+ return;
+ QRect r(w->frameGeometry());
+ mixerX->setValue(r.x());
+ mixerY->setValue(r.y());
+ mixerW->setValue(r.width());
+ mixerH->setValue(r.height());
+ }
+
+//---------------------------------------------------------
+// mixer2Current
+//---------------------------------------------------------
+
+void GlobalSettingsConfig::mixer2Current()
+ {
+ QWidget* w = muse->mixer2Window();
+ if (!w)
+ return;
+ QRect r(w->frameGeometry());
+ mixer2X->setValue(r.x());
+ mixer2Y->setValue(r.y());
+ mixer2W->setValue(r.width());
+ mixer2H->setValue(r.height());
+ }
+
+//---------------------------------------------------------
+// bigtimeCurrent
+//---------------------------------------------------------
+
+void GlobalSettingsConfig::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 GlobalSettingsConfig::arrangerCurrent()
+ {
+ QRect r(muse->frameGeometry());
+ arrangerX->setValue(r.x());
+ arrangerY->setValue(r.y());
+ arrangerW->setValue(r.width());
+ arrangerH->setValue(r.height());
+ }
+
+//---------------------------------------------------------
+// transportCurrent
+//---------------------------------------------------------
+
+void GlobalSettingsConfig::transportCurrent()
+ {
+ QWidget* w = muse->transportWindow();
+ if (!w)
+ return;
+ QRect r(w->frameGeometry());
+ transportX->setValue(r.x());
+ transportY->setValue(r.y());
+ }
+
diff --git a/muse2/muse/widgets/genset.h b/muse2/muse/widgets/genset.h
new file mode 100644
index 00000000..375cf197
--- /dev/null
+++ b/muse2/muse/widgets/genset.h
@@ -0,0 +1,41 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: genset.h,v 1.3 2004/01/25 09:55:17 wschweer Exp $
+//
+// (C) Copyright 2001 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __GENSET_H__
+#define __GENSET_H__
+
+#include "gensetbase.h"
+//Added by qt3to4:
+#include <QShowEvent>
+
+//---------------------------------------------------------
+// GlobalSettingsConfig
+//---------------------------------------------------------
+
+class GlobalSettingsConfig : public GlobalSettingsDialogBase {
+ Q_OBJECT
+
+ private slots:
+ void updateSettings();
+ void apply();
+ void ok();
+ void cancel();
+ void mixerCurrent();
+ void mixer2Current();
+ void bigtimeCurrent();
+ void arrangerCurrent();
+ void transportCurrent();
+
+ protected:
+ void showEvent(QShowEvent*);
+
+ public:
+ GlobalSettingsConfig(QWidget* parent=0, const char* name=0);
+ };
+
+#endif
diff --git a/muse2/muse/widgets/gensetbase.ui b/muse2/muse/widgets/gensetbase.ui
new file mode 100644
index 00000000..5de2dbd7
--- /dev/null
+++ b/muse2/muse/widgets/gensetbase.ui
@@ -0,0 +1,1470 @@
+<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
+<class>GlobalSettingsDialogBase</class>
+<widget class="QDialog">
+ <property name="name">
+ <cstring>GlobalSettingsDialogBase</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>494</width>
+ <height>499</height>
+ </rect>
+ </property>
+ <property name="caption">
+ <string>MusE: Global Settings</string>
+ </property>
+ <vbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>11</number>
+ </property>
+ <property name="spacing">
+ <number>6</number>
+ </property>
+ <widget class="QTabWidget">
+ <property name="name">
+ <cstring>TabWidget2</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>7</hsizetype>
+ <vsizetype>5</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <widget class="QWidget">
+ <property name="name">
+ <cstring>TabPage</cstring>
+ </property>
+ <attribute name="title">
+ <string>Application</string>
+ </attribute>
+ <grid>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QGroupBox" row="1" column="0">
+ <property name="name">
+ <cstring>groupBox4</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>5</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="title">
+ <string>Views</string>
+ </property>
+ <grid>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QSpinBox" row="1" column="3">
+ <property name="name">
+ <cstring>transportY</cstring>
+ </property>
+ <property name="maxValue">
+ <number>9999</number>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>y-pos</string>
+ </property>
+ </widget>
+ <widget class="QCheckBox" row="1" column="1">
+ <property name="name">
+ <cstring>showTransport</cstring>
+ </property>
+ <property name="text">
+ <string>show</string>
+ </property>
+ </widget>
+ <widget class="QSpinBox" row="1" column="2">
+ <property name="name">
+ <cstring>transportX</cstring>
+ </property>
+ <property name="maxValue">
+ <number>9999</number>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>x-pos</string>
+ </property>
+ </widget>
+ <widget class="QSpinBox" row="0" column="5">
+ <property name="name">
+ <cstring>arrangerH</cstring>
+ </property>
+ <property name="maxValue">
+ <number>9999</number>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>height</string>
+ </property>
+ </widget>
+ <widget class="QSpinBox" row="0" column="4">
+ <property name="name">
+ <cstring>arrangerW</cstring>
+ </property>
+ <property name="maxValue">
+ <number>9999</number>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>width</string>
+ </property>
+ </widget>
+ <widget class="QSpinBox" row="0" column="3">
+ <property name="name">
+ <cstring>arrangerY</cstring>
+ </property>
+ <property name="maxValue">
+ <number>9999</number>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>y-pos</string>
+ </property>
+ </widget>
+ <widget class="QSpinBox" row="0" column="2">
+ <property name="name">
+ <cstring>arrangerX</cstring>
+ </property>
+ <property name="maxValue">
+ <number>9999</number>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>x-pos</string>
+ </property>
+ </widget>
+ <widget class="QCheckBox" row="2" column="1">
+ <property name="name">
+ <cstring>showBigtime</cstring>
+ </property>
+ <property name="text">
+ <string>show</string>
+ </property>
+ </widget>
+ <widget class="QSpinBox" row="2" column="2">
+ <property name="name">
+ <cstring>bigtimeX</cstring>
+ </property>
+ <property name="maxValue">
+ <number>9999</number>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>x-pos</string>
+ </property>
+ </widget>
+ <widget class="QSpinBox" row="2" column="3">
+ <property name="name">
+ <cstring>bigtimeY</cstring>
+ </property>
+ <property name="maxValue">
+ <number>9999</number>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>y-pos</string>
+ </property>
+ </widget>
+ <widget class="QSpinBox" row="2" column="4">
+ <property name="name">
+ <cstring>bigtimeW</cstring>
+ </property>
+ <property name="maxValue">
+ <number>9999</number>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>width</string>
+ </property>
+ </widget>
+ <widget class="QSpinBox" row="2" column="5">
+ <property name="name">
+ <cstring>bigtimeH</cstring>
+ </property>
+ <property name="maxValue">
+ <number>9999</number>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>height</string>
+ </property>
+ </widget>
+ <widget class="QCheckBox" row="3" column="1">
+ <property name="name">
+ <cstring>showMixer</cstring>
+ </property>
+ <property name="text">
+ <string>show</string>
+ </property>
+ </widget>
+ <widget class="QCheckBox" row="4" column="1">
+ <property name="name">
+ <cstring>showMixer2</cstring>
+ </property>
+ <property name="text">
+ <string>show</string>
+ </property>
+ </widget>
+ <widget class="QLabel" row="3" column="0">
+ <property name="name">
+ <cstring>textLabel4</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>Mixer A</string>
+ </property>
+ </widget>
+ <widget class="QLabel" row="4" column="0">
+ <property name="name">
+ <cstring>textLabel4_2</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>Mixer B</string>
+ </property>
+ </widget>
+ <widget class="QLabel" row="2" column="0">
+ <property name="name">
+ <cstring>textLabel3</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>Big Time</string>
+ </property>
+ </widget>
+ <widget class="QLabel" row="0" column="0">
+ <property name="name">
+ <cstring>textLabel1_3</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>Arranger</string>
+ </property>
+ </widget>
+ <widget class="QLabel" row="1" column="0">
+ <property name="name">
+ <cstring>textLabel2</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>Transport</string>
+ </property>
+ </widget>
+ <widget class="QSpinBox" row="3" column="5">
+ <property name="name">
+ <cstring>mixerH</cstring>
+ </property>
+ <property name="maxValue">
+ <number>9999</number>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>height</string>
+ </property>
+ </widget>
+ <widget class="QSpinBox" row="3" column="4">
+ <property name="name">
+ <cstring>mixerW</cstring>
+ </property>
+ <property name="maxValue">
+ <number>9999</number>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>width</string>
+ </property>
+ </widget>
+ <widget class="QSpinBox" row="3" column="3">
+ <property name="name">
+ <cstring>mixerY</cstring>
+ </property>
+ <property name="maxValue">
+ <number>9999</number>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>y-pos</string>
+ </property>
+ </widget>
+ <widget class="QSpinBox" row="3" column="2">
+ <property name="name">
+ <cstring>mixerX</cstring>
+ </property>
+ <property name="maxValue">
+ <number>9999</number>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>x-pos</string>
+ </property>
+ </widget>
+ <widget class="QPushButton" row="3" column="6">
+ <property name="name">
+ <cstring>setMixerCurrent</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>1</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>Cur</string>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>set current values</string>
+ </property>
+ </widget>
+ <widget class="QSpinBox" row="4" column="5">
+ <property name="name">
+ <cstring>mixer2H</cstring>
+ </property>
+ <property name="maxValue">
+ <number>9999</number>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>height</string>
+ </property>
+ </widget>
+ <widget class="QSpinBox" row="4" column="4">
+ <property name="name">
+ <cstring>mixer2W</cstring>
+ </property>
+ <property name="maxValue">
+ <number>9999</number>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>width</string>
+ </property>
+ </widget>
+ <widget class="QSpinBox" row="4" column="3">
+ <property name="name">
+ <cstring>mixer2Y</cstring>
+ </property>
+ <property name="maxValue">
+ <number>9999</number>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>y-pos</string>
+ </property>
+ </widget>
+ <widget class="QSpinBox" row="4" column="2">
+ <property name="name">
+ <cstring>mixer2X</cstring>
+ </property>
+ <property name="maxValue">
+ <number>9999</number>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>x-pos</string>
+ </property>
+ </widget>
+ <widget class="QPushButton" row="4" column="6">
+ <property name="name">
+ <cstring>setMixer2Current</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>1</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>Cur</string>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>set current values</string>
+ </property>
+ </widget>
+ <widget class="QPushButton" row="2" column="6">
+ <property name="name">
+ <cstring>setBigtimeCurrent</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>Cur</string>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>set current values</string>
+ </property>
+ </widget>
+ <widget class="QPushButton" row="0" column="6">
+ <property name="name">
+ <cstring>setArrangerCurrent</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>Cur</string>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>set current values</string>
+ </property>
+ </widget>
+ <widget class="QPushButton" row="1" column="6">
+ <property name="name">
+ <cstring>setTransportCurrent</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>Cur</string>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>set current values</string>
+ </property>
+ </widget>
+ </grid>
+ </widget>
+ <widget class="QGroupBox" row="0" column="0">
+ <property name="name">
+ <cstring>groupBox3</cstring>
+ </property>
+ <property name="title">
+ <string>Start Muse</string>
+ </property>
+ <grid>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QLayoutWidget" row="0" column="0">
+ <property name="name">
+ <cstring>layout12</cstring>
+ </property>
+ <grid>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QLayoutWidget" row="0" column="1">
+ <property name="name">
+ <cstring>layout5</cstring>
+ </property>
+ <vbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>9</number>
+ </property>
+ <widget class="QCheckBox">
+ <property name="name">
+ <cstring>showSplash</cstring>
+ </property>
+ <property name="text">
+ <string>show splash screen</string>
+ </property>
+ </widget>
+ <widget class="QCheckBox">
+ <property name="name">
+ <cstring>showDidYouKnow</cstring>
+ </property>
+ <property name="text">
+ <string>show "Did you know?" dialog</string>
+ </property>
+ </widget>
+ <spacer>
+ <property name="name">
+ <cstring>spacer4</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Vertical</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>20</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </vbox>
+ </widget>
+ <spacer row="1" column="0">
+ <property name="name">
+ <cstring>spacer7_2</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Vertical</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>20</width>
+ <height>51</height>
+ </size>
+ </property>
+ </spacer>
+ <widget class="QLayoutWidget" row="2" column="0" rowspan="1" colspan="2">
+ <property name="name">
+ <cstring>layout2</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>textLabel1_2</cstring>
+ </property>
+ <property name="text">
+ <string>start song:</string>
+ </property>
+ </widget>
+ <widget class="QLineEdit">
+ <property name="name">
+ <cstring>startSongEntry</cstring>
+ </property>
+ </widget>
+ </hbox>
+ </widget>
+ <widget class="QButtonGroup" row="0" column="0">
+ <property name="name">
+ <cstring>startSongGroup</cstring>
+ </property>
+ <property name="title">
+ <string>Start song</string>
+ </property>
+ <widget class="QRadioButton">
+ <property name="name">
+ <cstring>startLastButton</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>13</x>
+ <y>12</y>
+ <width>222</width>
+ <height>20</height>
+ </rect>
+ </property>
+ <property name="text">
+ <string>start with last song</string>
+ </property>
+ <property name="checked">
+ <bool>true</bool>
+ </property>
+ <property name="buttonGroupId">
+ <number>0</number>
+ </property>
+ </widget>
+ <widget class="QRadioButton">
+ <property name="name">
+ <cstring>startEmptyButton</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>13</x>
+ <y>38</y>
+ <width>222</width>
+ <height>20</height>
+ </rect>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>1</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>start with template: default.med</string>
+ </property>
+ <property name="checked">
+ <bool>false</bool>
+ </property>
+ <property name="buttonGroupId">
+ <number>1</number>
+ </property>
+ </widget>
+ <widget class="QRadioButton">
+ <property name="name">
+ <cstring>startSongButton</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>13</x>
+ <y>64</y>
+ <width>222</width>
+ <height>20</height>
+ </rect>
+ </property>
+ <property name="text">
+ <string>start with song</string>
+ </property>
+ <property name="buttonGroupId">
+ <number>2</number>
+ </property>
+ </widget>
+ </widget>
+ </grid>
+ </widget>
+ </grid>
+ </widget>
+ </grid>
+ </widget>
+ <widget class="QWidget">
+ <property name="name">
+ <cstring>tab</cstring>
+ </property>
+ <attribute name="title">
+ <string>Audio</string>
+ </attribute>
+ <grid>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QGroupBox" row="0" column="0">
+ <property name="name">
+ <cstring>GroupBox4</cstring>
+ </property>
+ <property name="title">
+ <string>Mixer</string>
+ </property>
+ <grid>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>11</number>
+ </property>
+ <property name="spacing">
+ <number>6</number>
+ </property>
+ <widget class="QSpinBox" row="0" column="1">
+ <property name="name">
+ <cstring>minSliderSelect</cstring>
+ </property>
+ <property name="suffix">
+ <string>dB</string>
+ </property>
+ <property name="maxValue">
+ <number>0</number>
+ </property>
+ <property name="minValue">
+ <number>-100</number>
+ </property>
+ <property name="lineStep">
+ <number>10</number>
+ </property>
+ <property name="value">
+ <number>-60</number>
+ </property>
+ </widget>
+ <widget class="QLabel" row="1" column="0">
+ <property name="name">
+ <cstring>TextLabel3_2</cstring>
+ </property>
+ <property name="text">
+ <string>min. Meter Value</string>
+ </property>
+ </widget>
+ <widget class="QLabel" row="0" column="0">
+ <property name="name">
+ <cstring>TextLabel2_2</cstring>
+ </property>
+ <property name="text">
+ <string>min. Slider Val</string>
+ </property>
+ </widget>
+ <widget class="QSpinBox" row="1" column="1">
+ <property name="name">
+ <cstring>minMeterSelect</cstring>
+ </property>
+ <property name="suffix">
+ <string>dB</string>
+ </property>
+ <property name="maxValue">
+ <number>0</number>
+ </property>
+ <property name="minValue">
+ <number>-100</number>
+ </property>
+ <property name="lineStep">
+ <number>10</number>
+ </property>
+ <property name="value">
+ <number>-60</number>
+ </property>
+ </widget>
+ <widget class="QLabel" row="2" column="0">
+ <property name="name">
+ <cstring>freewheelLabel</cstring>
+ </property>
+ <property name="text">
+ <string>Use Jack freewheel mode if possible.
+(Speeds up bounce operations).</string>
+ </property>
+ </widget>
+ <widget class="QCheckBox" row="3" column="1">
+ <property name="name">
+ <cstring>denormalCheckBox</cstring>
+ </property>
+ <property name="text">
+ <string></string>
+ </property>
+ </widget>
+ <widget class="QCheckBox" row="2" column="1">
+ <property name="name">
+ <cstring>freewheelCheckBox</cstring>
+ </property>
+ <property name="text">
+ <string></string>
+ </property>
+ </widget>
+ <widget class="QLabel" row="3" column="0">
+ <property name="name">
+ <cstring>textLabel1_5</cstring>
+ </property>
+ <property name="text">
+ <string>Enable denormal protection</string>
+ </property>
+ </widget>
+ <widget class="QLabel" row="4" column="0">
+ <property name="name">
+ <cstring>textLabel1_5_2</cstring>
+ </property>
+ <property name="text">
+ <string>Enable output limiter</string>
+ </property>
+ </widget>
+ <widget class="QCheckBox" row="4" column="1">
+ <property name="name">
+ <cstring>outputLimiterCheckBox</cstring>
+ </property>
+ <property name="text">
+ <string></string>
+ </property>
+ </widget>
+ <widget class="QLabel" row="5" column="0">
+ <property name="name">
+ <cstring>vstInPlaceTextLabel</cstring>
+ </property>
+ <property name="text">
+ <string>Enable in-place processing for VST plugins.
+(Requires restart.)</string>
+ </property>
+ </widget>
+ <widget class="QCheckBox" row="5" column="1">
+ <property name="name">
+ <cstring>vstInPlaceCheckBox</cstring>
+ </property>
+ <property name="text">
+ <string></string>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>Turn this off if VST Ladspa effect rack plugins do not work or feedback loudly, even if they are supposed to be in-place capable.</string>
+ </property>
+ </widget>
+ </grid>
+ </widget>
+ <widget class="QGroupBox" row="1" column="0">
+ <property name="name">
+ <cstring>groupBox13</cstring>
+ </property>
+ <property name="title">
+ <string>External Waveditor</string>
+ </property>
+ <grid>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QLayoutWidget" row="0" column="0">
+ <property name="name">
+ <cstring>layout6</cstring>
+ </property>
+ <grid>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QLayoutWidget" row="0" column="0">
+ <property name="name">
+ <cstring>layout12</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>textLabel2_2</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>5</vsizetype>
+ <horstretch>1</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>External Waveditor command</string>
+ </property>
+ </widget>
+ <spacer>
+ <property name="name">
+ <cstring>spacer13</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>60</width>
+ <height>23</height>
+ </size>
+ </property>
+ </spacer>
+ <widget class="QLineEdit">
+ <property name="name">
+ <cstring>externalWavEditorSelect</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>7</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>2</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ </widget>
+ </hbox>
+ </widget>
+ <widget class="QLabel" row="1" column="0">
+ <property name="name">
+ <cstring>textLabel1_6</cstring>
+ </property>
+ <property name="font">
+ <font>
+ <pointsize>8</pointsize>
+ </font>
+ </property>
+ <property name="text">
+ <string>Note: External editor opened from the internal editor.</string>
+ </property>
+ </widget>
+ </grid>
+ </widget>
+ </grid>
+ </widget>
+ <widget class="QGroupBox" row="2" column="0">
+ <property name="name">
+ <cstring>dummyAudioGroupBox</cstring>
+ </property>
+ <property name="title">
+ <string>Dummy Audio Driver (settings require restart)</string>
+ </property>
+ <grid>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QLabel" row="0" column="0">
+ <property name="name">
+ <cstring>dummyAudioRateLabel</cstring>
+ </property>
+ <property name="text">
+ <string>Preferred sample rate</string>
+ </property>
+ </widget>
+ <widget class="QSpinBox" row="0" column="1">
+ <property name="name">
+ <cstring>dummyAudioRate</cstring>
+ </property>
+ <property name="suffix">
+ <string>Hz</string>
+ </property>
+ <property name="maxValue">
+ <number>200000</number>
+ </property>
+ <property name="minValue">
+ <number>3000</number>
+ </property>
+ <property name="lineStep">
+ <number>10</number>
+ </property>
+ <property name="value">
+ <number>44100</number>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>Actual rate used depends on limitations of
+ timer used. If a high rate timer is available,
+ short periods can be used with high sample rates.
+Period affects midi playback resolution.
+Shorter periods are desirable.</string>
+ </property>
+ </widget>
+ <widget class="QLabel" row="1" column="0">
+ <property name="name">
+ <cstring>dummyAudioRealRateLabel</cstring>
+ </property>
+ <property name="text">
+ <string>Actual rate used now (dummy or not):</string>
+ </property>
+ </widget>
+ <widget class="QLabel" row="1" column="1">
+ <property name="name">
+ <cstring>dummyAudioRealRate</cstring>
+ </property>
+ <property name="text">
+ <string>---</string>
+ </property>
+ </widget>
+ <widget class="QLabel" row="2" column="0">
+ <property name="name">
+ <cstring>dummyAudioSizeLabel</cstring>
+ </property>
+ <property name="text">
+ <string>Period size (Frames per period):</string>
+ </property>
+ </widget>
+ <widget class="QComboBox" row="2" column="1">
+ <item>
+ <property name="text">
+ <string>16</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>32</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>64</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>128</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>256</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>512</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>1024</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>2048</string>
+ </property>
+ </item>
+ <property name="name">
+ <cstring>dummyAudioSize</cstring>
+ </property>
+ </widget>
+ </grid>
+ </widget>
+ </grid>
+ </widget>
+ <widget class="QWidget">
+ <property name="name">
+ <cstring>tab</cstring>
+ </property>
+ <attribute name="title">
+ <string>Midi</string>
+ </attribute>
+ <vbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>11</number>
+ </property>
+ <property name="spacing">
+ <number>6</number>
+ </property>
+ <widget class="QGroupBox">
+ <property name="name">
+ <cstring>GroupBox2</cstring>
+ </property>
+ <property name="title">
+ <string>Ticks</string>
+ </property>
+ <grid>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>11</number>
+ </property>
+ <property name="spacing">
+ <number>6</number>
+ </property>
+ <widget class="QLabel" row="0" column="0">
+ <property name="name">
+ <cstring>TextLabel3</cstring>
+ </property>
+ <property name="text">
+ <string>RTC Resolution
+(Ticks/Sec)</string>
+ </property>
+ </widget>
+ <widget class="QComboBox" row="0" column="1">
+ <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>8192</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>16384</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>32768</string>
+ </property>
+ </item>
+ <property name="name">
+ <cstring>rtcResolutionSelect</cstring>
+ </property>
+ </widget>
+ <widget class="QLabel" row="1" column="0">
+ <property name="name">
+ <cstring>midiResLabel</cstring>
+ </property>
+ <property name="text">
+ <string>Midi Resolution
+(Ticks/Quarternote)</string>
+ </property>
+ </widget>
+ <widget class="QComboBox" row="1" column="1">
+ <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>
+ <property name="name">
+ <cstring>midiDivisionSelect</cstring>
+ </property>
+ <property name="currentItem">
+ <number>3</number>
+ </property>
+ </widget>
+ <widget class="QLabel" row="2" column="0">
+ <property name="name">
+ <cstring>TextLabel4</cstring>
+ </property>
+ <property name="text">
+ <string>Displayed Resolution
+(Ticks/Quarternote)</string>
+ </property>
+ </widget>
+ <widget class="QComboBox" row="2" column="1">
+ <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>
+ <property name="name">
+ <cstring>guiDivisionSelect</cstring>
+ </property>
+ <property name="currentItem">
+ <number>3</number>
+ </property>
+ </widget>
+ </grid>
+ </widget>
+ </vbox>
+ </widget>
+ <widget class="QWidget">
+ <property name="name">
+ <cstring>tab</cstring>
+ </property>
+ <attribute name="title">
+ <string>GUI</string>
+ </attribute>
+ <grid>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QLabel" row="1" column="0">
+ <property name="name">
+ <cstring>textLabel1</cstring>
+ </property>
+ <property name="text">
+ <string>Help Browser:</string>
+ </property>
+ </widget>
+ <widget class="QLabel" row="0" column="0" rowspan="1" colspan="3">
+ <property name="name">
+ <cstring>TextLabel1</cstring>
+ </property>
+ <property name="text">
+ <string>GUI Refresh Rate</string>
+ </property>
+ </widget>
+ <widget class="QSpinBox" row="0" column="3" rowspan="1" colspan="2">
+ <property name="name">
+ <cstring>guiRefreshSelect</cstring>
+ </property>
+ <property name="suffix">
+ <string>/sec</string>
+ </property>
+ <property name="maxValue">
+ <number>100</number>
+ </property>
+ <property name="minValue">
+ <number>2</number>
+ </property>
+ <property name="value">
+ <number>20</number>
+ </property>
+ </widget>
+ <widget class="QLineEdit" row="1" column="1" rowspan="1" colspan="4">
+ <property name="name">
+ <cstring>helpBrowser</cstring>
+ </property>
+ </widget>
+ <spacer row="4" column="0">
+ <property name="name">
+ <cstring>spacer2</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Vertical</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>20</width>
+ <height>240</height>
+ </size>
+ </property>
+ </spacer>
+ <spacer row="4" column="4">
+ <property name="name">
+ <cstring>spacer3</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Vertical</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>20</width>
+ <height>240</height>
+ </size>
+ </property>
+ </spacer>
+ <widget class="QCheckBox" row="2" column="5">
+ <property name="name">
+ <cstring>oldStyleStopCheckBox</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>0</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string></string>
+ </property>
+ </widget>
+ <widget class="QCheckBox" row="3" column="5">
+ <property name="name">
+ <cstring>moveArmedCheckBox</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>0</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string></string>
+ </property>
+ </widget>
+ <spacer row="2" column="2" rowspan="1" colspan="3">
+ <property name="name">
+ <cstring>spacer7</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>270</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ <widget class="QLabel" row="2" column="0" rowspan="1" colspan="2">
+ <property name="name">
+ <cstring>textLabel1_4</cstring>
+ </property>
+ <property name="text">
+ <string>Use old-style stop shortcut:</string>
+ </property>
+ </widget>
+ <widget class="QLabel" row="3" column="0" rowspan="1" colspan="3">
+ <property name="name">
+ <cstring>textLabel1_4_2</cstring>
+ </property>
+ <property name="text">
+ <string>Move single armed track with selection</string>
+ </property>
+ </widget>
+ <spacer row="3" column="3" rowspan="1" colspan="2">
+ <property name="name">
+ <cstring>spacer7_3</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>210</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </grid>
+ </widget>
+ </widget>
+ <widget class="QLayoutWidget">
+ <property name="name">
+ <cstring>Layout6</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>0</number>
+ </property>
+ <property name="spacing">
+ <number>6</number>
+ </property>
+ <spacer>
+ <property name="name">
+ <cstring>Spacer1</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>20</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ <widget class="QPushButton">
+ <property name="name">
+ <cstring>applyButton</cstring>
+ </property>
+ <property name="text">
+ <string>&amp;Apply</string>
+ </property>
+ </widget>
+ <widget class="QPushButton">
+ <property name="name">
+ <cstring>okButton</cstring>
+ </property>
+ <property name="text">
+ <string>&amp;Ok</string>
+ </property>
+ <property name="default">
+ <bool>true</bool>
+ </property>
+ </widget>
+ <widget class="QPushButton">
+ <property name="name">
+ <cstring>cancelButton</cstring>
+ </property>
+ <property name="text">
+ <string>&amp;Cancel</string>
+ </property>
+ </widget>
+ </hbox>
+ </widget>
+ </vbox>
+</widget>
+<layoutdefaults spacing="6" margin="11"/>
+</UI>
diff --git a/muse2/muse/widgets/header.cpp b/muse2/muse/widgets/header.cpp
new file mode 100644
index 00000000..6cbf9c3a
--- /dev/null
+++ b/muse2/muse/widgets/header.cpp
@@ -0,0 +1,62 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: header.cpp,v 1.1.1.1 2003/10/27 18:55:05 wschweer Exp $
+// (C) Copyright 2000 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include "header.h"
+#include "xml.h"
+#include <qstringlist.h>
+
+//---------------------------------------------------------
+// readStatus
+//---------------------------------------------------------
+
+void Header::readStatus(Xml& xml)
+ {
+ for (;;) {
+ Xml::Token token = xml.parse();
+ const QString& tag = xml.s1();
+ switch (token) {
+ case Xml::Error:
+ case Xml::End:
+ return;
+ case Xml::Text:
+ {
+ QStringList l = QStringList::split(QString(" "), tag);
+ int index = count();
+ for (QStringList::Iterator it = l.begin(); it != l.end(); ++it) {
+ int section = (*it).toInt();
+ moveSection(section, index);
+ --index;
+ }
+ }
+ break;
+ case Xml::TagStart:
+ xml.unknown("Header");
+ break;
+ case Xml::TagEnd:
+ if (tag == name())
+ return;
+ default:
+ break;
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// writeStatus
+//---------------------------------------------------------
+
+void Header::writeStatus(int level, Xml& xml) const
+ {
+ //xml.nput(level, "<%s> ", name());
+ xml.nput(level, "<%s> ", Xml::xmlString(name()).latin1());
+ int n = count() - 1;
+ for (int i = n; i >= 0; --i)
+ xml.nput("%d ", mapToSection(i));
+ //xml.put("</%s>", name());
+ xml.put("</%s>", Xml::xmlString(name()).latin1());
+ }
+
diff --git a/muse2/muse/widgets/header.h b/muse2/muse/widgets/header.h
new file mode 100644
index 00000000..11b69b66
--- /dev/null
+++ b/muse2/muse/widgets/header.h
@@ -0,0 +1,30 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: header.h,v 1.1.1.1 2003/10/27 18:55:03 wschweer Exp $
+// (C) Copyright 2000 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __HEADER_H__
+#define __HEADER_H__
+
+#include <q3header.h>
+
+class Xml;
+
+//---------------------------------------------------------
+// Header
+//---------------------------------------------------------
+
+class Header : public Q3Header {
+ Q_OBJECT
+
+ public:
+ Header(QWidget* parent=0, const char* name=0)
+ : Q3Header(parent, name) {}
+ Header(int sections, QWidget* parent=0, const char* name=0)
+ : Q3Header(sections, parent, name) {}
+ void writeStatus(int level, Xml&) const;
+ void readStatus(Xml&);
+ };
+#endif
diff --git a/muse2/muse/widgets/hitscale.cpp b/muse2/muse/widgets/hitscale.cpp
new file mode 100644
index 00000000..2d7c5267
--- /dev/null
+++ b/muse2/muse/widgets/hitscale.cpp
@@ -0,0 +1,134 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: hitscale.cpp,v 1.3.2.1 2007/01/27 14:52:43 spamatica Exp $
+// (C) Copyright 1999 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include "hitscale.h"
+#include "midieditor.h"
+#include <qpainter.h>
+//Added by qt3to4:
+#include <QEvent>
+#include <QMouseEvent>
+
+#include "song.h"
+
+//---------------------------------------------------------
+// HitScale
+//---------------------------------------------------------
+
+HitScale::HitScale(int* r, QWidget* parent, int xs)
+ : View(parent, xs, 1)
+ {
+ raster = r;
+ pos[0] = song->cpos();
+ pos[1] = song->lpos();
+ pos[2] = song->rpos();
+ button = Qt::NoButton;
+ setMouseTracking(true);
+ connect(song, SIGNAL(posChanged(int, unsigned, bool)), this, SLOT(setPos(int, unsigned, bool)));
+ setFixedHeight(18);
+ }
+
+//---------------------------------------------------------
+// setPos
+//---------------------------------------------------------
+
+void HitScale::setPos(int idx, unsigned val, bool)
+ {
+ if (val == pos[idx])
+ return;
+ unsigned int opos = mapx(pos[idx]); // in order preventing comparison of sigend & unsigned int ??is this OK?
+ pos[idx] = val;
+ if (!isVisible())
+ return;
+ val = mapx(val);
+ int x = -9;
+ int w = 18;
+ if (opos > val) { //here would be the comparison signed/unsigned
+ w += opos - val;
+ x += val;
+ }
+ else {
+ w += val - opos;
+ x += opos;
+ }
+ paint(QRect(x, 0, w, height()));
+ }
+
+void HitScale::viewMousePressEvent(QMouseEvent* event)
+ {
+ button = event->button();
+ viewMouseMoveEvent(event);
+ }
+
+void HitScale::viewMouseReleaseEvent(QMouseEvent*)
+ {
+ button = Qt::NoButton;
+ }
+
+void HitScale::viewMouseMoveEvent(QMouseEvent* event)
+ {
+ int x = sigmap.raster(event->x(), *raster);
+ emit timeChanged(x);
+ int i;
+ switch (button) {
+ case Qt::LeftButton:
+ i = 0;
+ break;
+ case Qt::MidButton:
+ i = 1;
+ break;
+ case Qt::RightButton:
+ i = 2;
+ break;
+ default:
+ return;
+ }
+ Pos p(x, true);
+ song->setPos(i, p);
+ }
+
+//---------------------------------------------------------
+// leaveEvent
+//---------------------------------------------------------
+
+void HitScale::leaveEvent(QEvent*)
+ {
+ emit timeChanged(-1);
+ }
+
+//---------------------------------------------------------
+// draw
+//---------------------------------------------------------
+
+void HitScale::pdraw(QPainter& p, const QRect& r)
+ {
+ int x = r.x();
+ int w = r.width();
+
+// x -= 10;
+// w += 20;
+
+ if (x < 0)
+ x = 0;
+
+ //---------------------------------------------------
+ // draw location marker
+ //---------------------------------------------------
+
+ p.setPen(Qt::red);
+ int xp = mapx(pos[0]);
+ if (xp >= x && xp < x+w)
+ p.drawLine(xp, 0, xp, height());
+ p.setPen(Qt::blue);
+ xp = mapx(pos[1]);
+ if (xp >= x && xp < x+w)
+ p.drawLine(xp, 0, xp, height());
+ xp = mapx(pos[2]);
+ if (xp >= x && xp < x+w)
+ p.drawLine(xp, 0, xp, height());
+ }
+
+
diff --git a/muse2/muse/widgets/hitscale.h b/muse2/muse/widgets/hitscale.h
new file mode 100644
index 00000000..85711e71
--- /dev/null
+++ b/muse2/muse/widgets/hitscale.h
@@ -0,0 +1,50 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: hitscale.h,v 1.2 2004/01/11 18:55:37 wschweer Exp $
+// (C) Copyright 1999 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __HITSCALE_H__
+#define __HITSCALE_H__
+
+#include "view.h"
+//Added by qt3to4:
+#include <QEvent>
+#include <QMouseEvent>
+
+class QPainter;
+class MidiEditor;
+
+//---------------------------------------------------------
+// HitScale
+// scale for midi track
+//---------------------------------------------------------
+
+class HitScale : public View {
+ Q_OBJECT
+ int* raster;
+ unsigned pos[3];
+ int button;
+
+ signals:
+// void posChanged(int, int);
+
+ protected:
+ virtual void pdraw(QPainter&, const QRect&);
+ virtual void viewMousePressEvent(QMouseEvent* event);
+ virtual void viewMouseMoveEvent(QMouseEvent* event);
+ virtual void viewMouseReleaseEvent(QMouseEvent* event);
+ virtual void leaveEvent(QEvent*e);
+
+ signals:
+ void timeChanged(int);
+
+ public slots:
+ void setPos(int, unsigned, bool);
+
+ public:
+ HitScale(int* raster, QWidget* parent, int xscale);
+ };
+#endif
+
diff --git a/muse2/muse/widgets/intlabel.cpp b/muse2/muse/widgets/intlabel.cpp
new file mode 100644
index 00000000..8835e79d
--- /dev/null
+++ b/muse2/muse/widgets/intlabel.cpp
@@ -0,0 +1,144 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: intlabel.cpp,v 1.1.1.1.2.1 2008/08/18 00:15:26 terminator356 Exp $
+// (C) Copyright 1999 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include <stdio.h>
+
+#include "intlabel.h"
+#include <qvalidator.h>
+#include <qpalette.h>
+#include <stdio.h>
+
+#include "utils.h"
+
+//---------------------------------------------------------
+// IntLabel
+//---------------------------------------------------------
+
+IntLabel::IntLabel(int _val, int _min, int _max, QWidget* parent,
+ int _off, const QString& str, int lPos)
+ : Nentry(parent, str, lPos)
+ {
+ specialValue = "off";
+ min = _min;
+ max = _max;
+ val = _val+1; // dont optimize away
+ off = _off;
+ setValue(_val);
+ int len = num2cols(min, max);
+ setSize(len);
+ }
+
+void IntLabel::setSpecialValueText(const QString& s)
+ {
+ specialValue = s;
+ setString(val);
+ }
+
+//---------------------------------------------------------
+// setRange
+//---------------------------------------------------------
+
+void IntLabel::setRange(int mn, int mx)
+{
+ min = mn;
+ max = mx;
+ setSize(num2cols(min, max));
+ int v = val;
+ if(val < mn)
+ v = mn;
+ else
+ if(val > mx)
+ v = mx;
+ setValue(v);
+}
+
+//---------------------------------------------------------
+// setString
+//---------------------------------------------------------
+
+bool IntLabel::setString(int v, bool editable)
+ {
+ if (v < min || v > max) {
+ setText(QString("---"));
+ return true;
+ }
+ else if (v == off) {
+ if (editable)
+ setText(QString(""));
+ else
+ setText(specialValue);
+ }
+ else {
+ QString s;
+ s.setNum(v);
+ if (!editable)
+ s += suffix;
+ setText(s);
+ }
+ return false;
+ }
+
+//---------------------------------------------------------
+// setSValue
+//---------------------------------------------------------
+
+bool IntLabel::setSValue(const QString& s)
+ {
+ int v;
+ if (s == specialValue)
+ v = off;
+ else {
+ bool ok;
+ v = s.toInt(&ok);
+ if (!ok)
+ return true;
+ if (v < min)
+ v = min;
+ if (v > max)
+ v = max;
+ }
+ if (v != val) {
+ setValue(v);
+ emit valueChanged(val);
+ }
+ return false;
+ }
+
+//---------------------------------------------------------
+// incValue
+//---------------------------------------------------------
+
+void IntLabel::incValue(int)
+ {
+ if (val < max) {
+ setValue(val+1);
+ emit valueChanged(val);
+ }
+ }
+
+//---------------------------------------------------------
+// decValue
+//---------------------------------------------------------
+
+void IntLabel::decValue(int)
+ {
+ if (val > min) {
+ setValue(val-1);
+ emit valueChanged(val);
+ }
+ }
+
+//---------------------------------------------------------
+// setOff
+//---------------------------------------------------------
+
+void IntLabel::setOff(int v)
+ {
+ off = v;
+ setString(val);
+ }
+
diff --git a/muse2/muse/widgets/intlabel.h b/muse2/muse/widgets/intlabel.h
new file mode 100644
index 00000000..df452891
--- /dev/null
+++ b/muse2/muse/widgets/intlabel.h
@@ -0,0 +1,46 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: intlabel.h,v 1.1.1.1.2.2 2008/08/18 00:15:26 terminator356 Exp $
+// (C) Copyright 1999 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __INTLABEL_H__
+#define __INTLABEL_H__
+
+#include <values.h>
+#include "nentry.h"
+
+class QString;
+
+//---------------------------------------------------------
+// IntLabel
+//---------------------------------------------------------
+
+class IntLabel : public Nentry {
+ Q_OBJECT
+
+ int min, max, off;
+ QString suffix;
+ QString specialValue;
+
+ 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);
+ void setRange(int, int);
+ };
+
+#endif
diff --git a/muse2/muse/widgets/itransformbase.ui b/muse2/muse/widgets/itransformbase.ui
new file mode 100644
index 00000000..1c4a9387
--- /dev/null
+++ b/muse2/muse/widgets/itransformbase.ui
@@ -0,0 +1,1296 @@
+<!DOCTYPE UI><UI version="3.1" stdsetdef="1">
+<class>MidiInputTransformDialogBase</class>
+<widget class="QDialog">
+ <property name="name">
+ <cstring>MidiInputTransformDialogBase</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>760</width>
+ <height>587</height>
+ </rect>
+ </property>
+ <property name="caption">
+ <string>MusE: Midi Input Transformator</string>
+ </property>
+ <property name="sizeGripEnabled">
+ <bool>true</bool>
+ </property>
+ <grid>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>11</number>
+ </property>
+ <property name="spacing">
+ <number>6</number>
+ </property>
+ <widget class="QGroupBox" row="0" column="1" rowspan="1" colspan="3">
+ <property name="name">
+ <cstring>GroupBox3</cstring>
+ </property>
+ <property name="title">
+ <string>Filter</string>
+ </property>
+ <grid>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>11</number>
+ </property>
+ <property name="spacing">
+ <number>6</number>
+ </property>
+ <widget class="QComboBox" row="1" column="0">
+ <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>
+ <property name="name">
+ <cstring>selEventOp</cstring>
+ </property>
+ </widget>
+ <widget class="QComboBox" row="2" column="0">
+ <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>
+ <property name="name">
+ <cstring>selType</cstring>
+ </property>
+ </widget>
+ <widget class="QLabel" row="0" column="2">
+ <property name="name">
+ <cstring>TextLabel3</cstring>
+ </property>
+ <property name="text">
+ <string>Value 2</string>
+ </property>
+ </widget>
+ <widget class="QLabel" row="0" column="1">
+ <property name="name">
+ <cstring>TextLabel2</cstring>
+ </property>
+ <property name="text">
+ <string>Value 1</string>
+ </property>
+ </widget>
+ <widget class="QLabel" row="0" column="0">
+ <property name="name">
+ <cstring>TextLabel1</cstring>
+ </property>
+ <property name="text">
+ <string>Event Type</string>
+ </property>
+ </widget>
+ <widget class="QComboBox" row="1" column="1">
+ <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>
+ <property name="name">
+ <cstring>selVal1Op</cstring>
+ </property>
+ </widget>
+ <widget class="QSpinBox" row="3" column="1">
+ <property name="name">
+ <cstring>selVal1b</cstring>
+ </property>
+ <property name="maxValue">
+ <number>127</number>
+ </property>
+ </widget>
+ <widget class="QSpinBox" row="3" column="2">
+ <property name="name">
+ <cstring>selVal2b</cstring>
+ </property>
+ <property name="maxValue">
+ <number>127</number>
+ </property>
+ </widget>
+ <widget class="QSpinBox" row="2" column="1">
+ <property name="name">
+ <cstring>selVal1a</cstring>
+ </property>
+ <property name="maxValue">
+ <number>127</number>
+ </property>
+ </widget>
+ <widget class="QComboBox" row="1" column="2">
+ <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>
+ <property name="name">
+ <cstring>selVal2Op</cstring>
+ </property>
+ </widget>
+ <widget class="QComboBox" row="1" column="3">
+ <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>
+ <property name="name">
+ <cstring>selPortOp</cstring>
+ </property>
+ </widget>
+ <widget class="QComboBox" row="1" column="4">
+ <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>
+ <property name="name">
+ <cstring>selChannelOp</cstring>
+ </property>
+ </widget>
+ <widget class="QLabel" row="0" column="4">
+ <property name="name">
+ <cstring>TextLabel2_2</cstring>
+ </property>
+ <property name="text">
+ <string>Channel</string>
+ </property>
+ </widget>
+ <widget class="QLabel" row="0" column="3">
+ <property name="name">
+ <cstring>TextLabel1_3</cstring>
+ </property>
+ <property name="text">
+ <string>Port</string>
+ </property>
+ </widget>
+ <widget class="QSpinBox" row="2" column="2">
+ <property name="name">
+ <cstring>selVal2a</cstring>
+ </property>
+ <property name="maxValue">
+ <number>127</number>
+ </property>
+ </widget>
+ <widget class="QSpinBox" row="2" column="4">
+ <property name="name">
+ <cstring>selChannelVala</cstring>
+ </property>
+ <property name="maxValue">
+ <number>127</number>
+ </property>
+ </widget>
+ <widget class="QSpinBox" row="2" column="3">
+ <property name="name">
+ <cstring>selPortVala</cstring>
+ </property>
+ <property name="maxValue">
+ <number>127</number>
+ </property>
+ </widget>
+ <widget class="QSpinBox" row="3" column="4">
+ <property name="name">
+ <cstring>selChannelValb</cstring>
+ </property>
+ <property name="maxValue">
+ <number>127</number>
+ </property>
+ </widget>
+ <widget class="QSpinBox" row="3" column="3">
+ <property name="name">
+ <cstring>selPortValb</cstring>
+ </property>
+ <property name="maxValue">
+ <number>127</number>
+ </property>
+ </widget>
+ </grid>
+ </widget>
+ <widget class="QGroupBox" row="1" column="1" rowspan="1" colspan="3">
+ <property name="name">
+ <cstring>GroupBox5</cstring>
+ </property>
+ <property name="title">
+ <string>Processing</string>
+ </property>
+ <grid>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>11</number>
+ </property>
+ <property name="spacing">
+ <number>6</number>
+ </property>
+ <widget class="QLabel" row="0" column="0">
+ <property name="name">
+ <cstring>TextLabel5</cstring>
+ </property>
+ <property name="text">
+ <string>Event Type</string>
+ </property>
+ </widget>
+ <widget class="QComboBox" row="1" column="0">
+ <item>
+ <property name="text">
+ <string>Keep</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Fix</string>
+ </property>
+ </item>
+ <property name="name">
+ <cstring>procEventOp</cstring>
+ </property>
+ </widget>
+ <widget class="QComboBox" row="2" column="0">
+ <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>
+ <property name="name">
+ <cstring>procType</cstring>
+ </property>
+ </widget>
+ <widget class="QComboBox" row="1" column="1">
+ <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>
+ <property name="name">
+ <cstring>procVal1Op</cstring>
+ </property>
+ </widget>
+ <widget class="QLabel" row="0" column="1">
+ <property name="name">
+ <cstring>TextLabel6</cstring>
+ </property>
+ <property name="text">
+ <string>Value 1</string>
+ </property>
+ </widget>
+ <widget class="QLabel" row="0" column="2">
+ <property name="name">
+ <cstring>TextLabel7</cstring>
+ </property>
+ <property name="text">
+ <string>Value 2</string>
+ </property>
+ </widget>
+ <widget class="QSpinBox" row="3" column="1">
+ <property name="name">
+ <cstring>procVal1b</cstring>
+ </property>
+ <property name="maxValue">
+ <number>9999</number>
+ </property>
+ </widget>
+ <widget class="QSpinBox" row="3" column="2">
+ <property name="name">
+ <cstring>procVal2b</cstring>
+ </property>
+ <property name="maxValue">
+ <number>9999</number>
+ </property>
+ </widget>
+ <widget class="SpinBoxFP" row="2" column="1">
+ <property name="name">
+ <cstring>procVal1a</cstring>
+ </property>
+ <property name="maxValue" stdset="0">
+ <number>99999999</number>
+ </property>
+ </widget>
+ <widget class="QSpinBox" row="3" column="4">
+ <property name="name">
+ <cstring>procChannelValb</cstring>
+ </property>
+ <property name="maxValue">
+ <number>127</number>
+ </property>
+ </widget>
+ <widget class="QSpinBox" row="3" column="3">
+ <property name="name">
+ <cstring>procPortValb</cstring>
+ </property>
+ <property name="maxValue">
+ <number>127</number>
+ </property>
+ </widget>
+ <widget class="QLabel" row="0" column="3">
+ <property name="name">
+ <cstring>TextLabel1_3_2</cstring>
+ </property>
+ <property name="text">
+ <string>Port</string>
+ </property>
+ </widget>
+ <widget class="QComboBox" row="1" column="2">
+ <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>
+ <property name="name">
+ <cstring>procVal2Op</cstring>
+ </property>
+ </widget>
+ <widget class="QComboBox" row="1" column="4">
+ <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>
+ <property name="name">
+ <cstring>procChannelOp</cstring>
+ </property>
+ </widget>
+ <widget class="QComboBox" row="1" column="3">
+ <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>
+ <property name="name">
+ <cstring>procPortOp</cstring>
+ </property>
+ </widget>
+ <widget class="QLabel" row="0" column="4">
+ <property name="name">
+ <cstring>TextLabel2_2_2</cstring>
+ </property>
+ <property name="text">
+ <string>Channel</string>
+ </property>
+ </widget>
+ <widget class="SpinBoxFP" row="2" column="2">
+ <property name="name">
+ <cstring>procVal2a</cstring>
+ </property>
+ <property name="maxValue" stdset="0">
+ <number>99999999</number>
+ </property>
+ </widget>
+ <widget class="SpinBoxFP" row="2" column="3">
+ <property name="name">
+ <cstring>procPortVala</cstring>
+ </property>
+ <property name="maxValue" stdset="0">
+ <number>99999999</number>
+ </property>
+ </widget>
+ <widget class="SpinBoxFP" row="2" column="4">
+ <property name="name">
+ <cstring>procChannelVala</cstring>
+ </property>
+ <property name="maxValue" stdset="0">
+ <number>99999999</number>
+ </property>
+ </widget>
+ </grid>
+ </widget>
+ <widget class="QGroupBox" row="2" column="2">
+ <property name="name">
+ <cstring>GroupBox5_2</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>4</hsizetype>
+ <vsizetype>5</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="title">
+ <string>Modules</string>
+ </property>
+ <grid>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>11</number>
+ </property>
+ <property name="spacing">
+ <number>6</number>
+ </property>
+ <widget class="QButtonGroup" row="0" column="0" rowspan="4" colspan="1">
+ <property name="name">
+ <cstring>modulGroup</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>7</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="frameShape">
+ <enum>NoFrame</enum>
+ </property>
+ <property name="frameShadow">
+ <enum>Plain</enum>
+ </property>
+ <property name="lineWidth">
+ <number>0</number>
+ </property>
+ <property name="title">
+ <string></string>
+ </property>
+ <property name="flat">
+ <bool>true</bool>
+ </property>
+ <property name="exclusive">
+ <bool>true</bool>
+ </property>
+ <vbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QToolButton">
+ <property name="name">
+ <cstring>modul1select</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>1</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>1</string>
+ </property>
+ <property name="toggleButton">
+ <bool>true</bool>
+ </property>
+ <property name="on">
+ <bool>true</bool>
+ </property>
+ <property name="buttonGroupId">
+ <number>0</number>
+ </property>
+ </widget>
+ <widget class="QToolButton">
+ <property name="name">
+ <cstring>modul2select</cstring>
+ </property>
+ <property name="text">
+ <string>2</string>
+ </property>
+ <property name="toggleButton">
+ <bool>true</bool>
+ </property>
+ <property name="buttonGroupId">
+ <number>1</number>
+ </property>
+ </widget>
+ <widget class="QToolButton">
+ <property name="name">
+ <cstring>modul3select</cstring>
+ </property>
+ <property name="text">
+ <string>3</string>
+ </property>
+ <property name="toggleButton">
+ <bool>true</bool>
+ </property>
+ <property name="buttonGroupId">
+ <number>2</number>
+ </property>
+ </widget>
+ <widget class="QToolButton">
+ <property name="name">
+ <cstring>modul4select</cstring>
+ </property>
+ <property name="text">
+ <string>4</string>
+ </property>
+ <property name="toggleButton">
+ <bool>true</bool>
+ </property>
+ <property name="buttonGroupId">
+ <number>3</number>
+ </property>
+ </widget>
+ </vbox>
+ </widget>
+ <widget class="QCheckBox" row="0" column="1">
+ <property name="name">
+ <cstring>modul1enable</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>4</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string></string>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>enable modul 1</string>
+ </property>
+ </widget>
+ <widget class="QCheckBox" row="1" column="1">
+ <property name="name">
+ <cstring>modul2enable</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>4</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string></string>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>enable modul 2</string>
+ </property>
+ </widget>
+ <widget class="QCheckBox" row="2" column="1">
+ <property name="name">
+ <cstring>modul3enable</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>4</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string></string>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>enable modul 3</string>
+ </property>
+ </widget>
+ <widget class="QCheckBox" row="3" column="1">
+ <property name="name">
+ <cstring>modul4enable</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>4</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string></string>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>enable modul 4</string>
+ </property>
+ </widget>
+ </grid>
+ </widget>
+ <widget class="QGroupBox" row="2" column="1">
+ <property name="name">
+ <cstring>GroupBox6_2</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>3</hsizetype>
+ <vsizetype>5</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="title">
+ <string>Preset</string>
+ </property>
+ <vbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>11</number>
+ </property>
+ <property name="spacing">
+ <number>6</number>
+ </property>
+ <widget class="QLayoutWidget">
+ <property name="name">
+ <cstring>Layout5_3</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>0</number>
+ </property>
+ <property name="spacing">
+ <number>6</number>
+ </property>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>TextLabel13_2</cstring>
+ </property>
+ <property name="text">
+ <string>Name:</string>
+ </property>
+ </widget>
+ <widget class="QLineEdit">
+ <property name="name">
+ <cstring>nameEntry</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>3</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ </widget>
+ </hbox>
+ </widget>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>TextLabel14_2</cstring>
+ </property>
+ <property name="text">
+ <string>Comment:</string>
+ </property>
+ </widget>
+ <widget class="QMultiLineEdit">
+ <property name="name">
+ <cstring>commentEntry</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>1</hsizetype>
+ <vsizetype>7</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ </widget>
+ </vbox>
+ </widget>
+ <widget class="QGroupBox" row="2" column="3">
+ <property name="name">
+ <cstring>GroupBox7_2</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>4</hsizetype>
+ <vsizetype>5</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="title">
+ <string>Function</string>
+ </property>
+ <vbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>11</number>
+ </property>
+ <property name="spacing">
+ <number>6</number>
+ </property>
+ <widget class="QComboBox">
+ <property name="name">
+ <cstring>funcOp</cstring>
+ </property>
+ </widget>
+ </vbox>
+ </widget>
+ <widget class="QLayoutWidget" row="3" column="0" rowspan="1" colspan="4">
+ <property name="name">
+ <cstring>Layout4</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>0</number>
+ </property>
+ <property name="spacing">
+ <number>6</number>
+ </property>
+ <widget class="QPushButton">
+ <property name="name">
+ <cstring>buttonNew</cstring>
+ </property>
+ <property name="text">
+ <string>&amp;New</string>
+ </property>
+ <property name="autoDefault">
+ <bool>true</bool>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>create new preset</string>
+ </property>
+ </widget>
+ <widget class="QPushButton">
+ <property name="name">
+ <cstring>buttonDelete</cstring>
+ </property>
+ <property name="text">
+ <string>&amp;Delete</string>
+ </property>
+ <property name="autoDefault">
+ <bool>true</bool>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>delete preset</string>
+ </property>
+ </widget>
+ <spacer>
+ <property name="name">
+ <cstring>Horizontal Spacing2</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>20</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ <widget class="QPushButton">
+ <property name="name">
+ <cstring>buttonOk</cstring>
+ </property>
+ <property name="text">
+ <string>&amp;Dismiss</string>
+ </property>
+ <property name="autoDefault">
+ <bool>true</bool>
+ </property>
+ <property name="default">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </hbox>
+ </widget>
+ <widget class="QLayoutWidget" row="0" column="0" rowspan="3" colspan="1">
+ <property name="name">
+ <cstring>Layout7</cstring>
+ </property>
+ <vbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>0</number>
+ </property>
+ <property name="spacing">
+ <number>6</number>
+ </property>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>TextLabel1_2</cstring>
+ </property>
+ <property name="text">
+ <string>PresetList</string>
+ </property>
+ </widget>
+ <widget class="QListBox">
+ <property name="name">
+ <cstring>presetList</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>3</hsizetype>
+ <vsizetype>3</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ </widget>
+ </vbox>
+ </widget>
+ </grid>
+</widget>
+<customwidgets>
+ <customwidget>
+ <class>SpinBoxFP</class>
+ <header location="global">spinboxFP.h</header>
+ <sizehint>
+ <width>50</width>
+ <height>20</height>
+ </sizehint>
+ <container>0</container>
+ <sizepolicy>
+ <hordata>5</hordata>
+ <verdata>5</verdata>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ <pixmap>image0</pixmap>
+ <signal>valueChanged(int value)</signal>
+ <signal>valueChanged(const QString&amp;)</signal>
+ <slot access="public" specifier="">setValue(int)</slot>
+ <slot access="public" specifier="">setPrefix(const QString&amp;)</slot>
+ <slot access="public" specifier="">setSuffix(const QString&amp;)</slot>
+ <slot access="public" specifier="">stepUp()</slot>
+ <slot access="public" specifier="">stepDown()</slot>
+ <property type="Int">precision</property>
+ <property type="Int">minValue</property>
+ <property type="Int">maxValue</property>
+ </customwidget>
+</customwidgets>
+<images>
+ <image name="image0">
+ <data format="XPM.GZ" length="646">789c6dd2c10ac2300c00d07bbf2234b7229d1be245fc04c5a3201e4615f430059d0711ff5ddb2e6bb236ec90eed134cb5a19d8ef36602af5ecdbfeeac05dda0798d3abebde87e3faa374d3807fa0d633a52d38d8de6f679fe33fc776e196f53cd010188256a3600a292882096246517815ca99884606e18044a3a40d91824820924265a7923a2e8bcd05f33db1173e002913175f2a6be6d3294871a2d95fa00e8a94ee017b69d339d90df1e77c57ea072ede6758</data>
+ </image>
+</images>
+<connections>
+ <connection>
+ <sender>buttonOk</sender>
+ <signal>clicked()</signal>
+ <receiver>MidiInputTransformDialogBase</receiver>
+ <slot>accept()</slot>
+ </connection>
+</connections>
+<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>selPortOp</tabstop>
+ <tabstop>selPortVala</tabstop>
+ <tabstop>selPortValb</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>procPortOp</tabstop>
+ <tabstop>procPortValb</tabstop>
+ <tabstop>procChannelOp</tabstop>
+ <tabstop>procChannelValb</tabstop>
+ <tabstop>modul1enable</tabstop>
+ <tabstop>modul2enable</tabstop>
+ <tabstop>modul3enable</tabstop>
+ <tabstop>modul4enable</tabstop>
+ <tabstop>funcOp</tabstop>
+ <tabstop>nameEntry</tabstop>
+ <tabstop>commentEntry</tabstop>
+ <tabstop>presetList</tabstop>
+ <tabstop>buttonNew</tabstop>
+ <tabstop>buttonDelete</tabstop>
+ <tabstop>buttonOk</tabstop>
+</tabstops>
+<layoutdefaults spacing="6" margin="11"/>
+<includehints>
+ <includehint>spinboxFP.h</includehint>
+</includehints>
+</UI>
diff --git a/muse2/muse/widgets/knob.cpp b/muse2/muse/widgets/knob.cpp
new file mode 100644
index 00000000..bfc46e77
--- /dev/null
+++ b/muse2/muse/widgets/knob.cpp
@@ -0,0 +1,506 @@
+//======================================================================
+// MusE
+// Linux Music Editor
+// $Id: knob.cpp,v 1.3.2.3 2009/03/09 02:05:18 terminator356 Exp $
+// (C) Copyright 1999 Werner Schweer (ws@seh.de)
+//
+// Adapted from Qwt Lib:
+// Copyright (C) 1997 Josef Wilgen
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License, version 2,
+// 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 for more details.
+// You should have received a copy of the 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 <stdio.h>
+#include "knob.h"
+#include <cmath>
+#include "mmath.h"
+
+#include <qpainter.h>
+#include <qpalette.h>
+//Added by qt3to4:
+#include <QPaintEvent>
+#include <QResizeEvent>
+
+//---------------------------------------------------------
+// The QwtKnob widget imitates look and behaviour of a volume knob on a radio.
+// It contains
+// a scale around the knob which is set up automatically or can
+// be configured manually (see @^QwtScaleIf@).
+// Automatic scrolling is enabled when the user presses a mouse
+// button on the scale. For a description of signals, slots and other
+// members, see QwtSliderBase@.
+//---------------------------------------------------------
+
+
+//---------------------------------------------------------
+// Knob
+//---------------------------------------------------------
+
+Knob::Knob(QWidget* parent, const char* name)
+ : SliderBase(parent, name)
+ {
+ hasScale = false;
+
+ d_borderWidth = 2;
+ d_borderDist = 4;
+ d_totalAngle = 270.0;
+ d_scaleDist = 1;
+ d_symbol = Line;
+ d_maxScaleTicks = 11;
+ d_knobWidth = 30;
+ _faceColSel = FALSE;
+ d_faceColor = backgroundColor();
+ d_curFaceColor = d_faceColor;
+ d_altFaceColor = d_faceColor;
+ d_markerColor = foregroundColor();
+ d_dotWidth = 8;
+
+ setMinimumSize(30,30);
+ setUpdateTime(50);
+ }
+
+//------------------------------------------------------------
+// QwtKnob::setTotalAngle
+// Set the total angle by which the knob can be turned
+//
+// Syntax
+// void QwtKnob::setTotalAngle(double angle)
+//
+// Parameters
+// double angle -- angle in degrees.
+//
+// Description
+// The default angle is 270 degrees. It is possible to specify
+// an angle of more than 360 degrees so that the knob can be
+// turned several times around its axis.
+//------------------------------------------------------------
+
+void Knob::setTotalAngle (double angle)
+ {
+ if (angle < 10.0)
+ d_totalAngle = 10.0;
+ else
+ d_totalAngle = angle;
+ d_scale.setAngleRange( -0.5 * d_totalAngle, 0.5 * d_totalAngle);
+ }
+
+//------------------------------------------------------------
+// QwtKnob::drawKnob
+// const QRect &r -- borders of the knob
+//------------------------------------------------------------
+
+void Knob::drawKnob(QPainter* p, const QRect& r)
+ {
+ QRect aRect;
+
+ QColorGroup g = colorGroup();
+ QPen pn;
+ int bw2 = d_borderWidth / 2;
+
+ aRect.setRect(r.x() + bw2,
+ r.y() + bw2,
+ r.width() - 2*bw2,
+ r.height() - 2*bw2);
+
+ //
+ // draw button face
+ //
+ p->setPen(Qt::NoPen);
+ p->setBrush(d_curFaceColor);
+ p->drawEllipse(aRect);
+
+ //
+ // draw button shades
+ //
+ pn.setWidth(d_borderWidth);
+
+
+ pn.setColor(g.light());
+ p->setPen(pn);
+ p->drawArc(aRect, 45*16,180*16);
+
+ pn.setColor(g.dark());
+ p->setPen(pn);
+ p->drawArc(aRect, 225*16,180*16);
+
+ //
+ // draw marker
+ //
+ drawMarker(p, d_angle, d_markerColor);
+ }
+
+//------------------------------------------------------------
+//.F QwtSliderBase::valueChange
+// Notify change of value
+//
+//.u Parameters
+// double x -- new value
+//
+//.u Description
+// Sets the slider's value to the nearest multiple
+// of the step size.
+//------------------------------------------------------------
+
+void Knob::valueChange()
+ {
+ recalcAngle();
+ d_newVal++;
+ repaint(kRect, FALSE);
+ SliderBase::valueChange();
+ }
+
+//------------------------------------------------------------
+//.F QwtKnob::getValue
+// Determine the value corresponding to a specified position
+//
+//.u Parameters:
+// const QPoint &p -- point
+//
+//.u Description:
+// Called by QwtSliderBase
+//------------------------------------------------------------
+
+double Knob::getValue(const QPoint &p)
+ {
+ double newValue;
+ double oneTurn;
+ double eqValue;
+ double arc;
+
+ const QRect& r = rect();
+
+ double dx = double((r.x() + r.width() / 2) - p.x() );
+ double dy = double((r.y() + r.height() / 2) - p.y() );
+
+ arc = atan2(-dx,dy) * 180.0 / M_PI;
+
+ newValue = 0.5 * (minValue() + maxValue())
+ + (arc + d_nTurns * 360.0) * (maxValue() - minValue())
+ / d_totalAngle;
+
+ oneTurn = fabs(maxValue() - minValue()) * 360.0 / d_totalAngle;
+ eqValue = value() + d_mouseOffset;
+
+ if (fabs(newValue - eqValue) > 0.5 * oneTurn)
+ {
+ if (newValue < eqValue)
+ newValue += oneTurn;
+ else
+ newValue -= oneTurn;
+ }
+
+ return newValue;
+
+}
+
+
+
+//------------------------------------------------------------
+//.-
+//.F QwtKnob::setScrollMode
+// Determine the scrolling mode and direction
+// corresponding to a specified position
+//
+//.u Parameters
+// const QPoint &p -- point in question
+//
+//.u Description
+// Called by QwtSliderBase
+//------------------------------------------------------------
+void Knob::getScrollMode( QPoint &p, const Qt::ButtonState &/*button*/, int &scrollMode, int &direction)// prevent compiler warning : unsused parameter
+{
+ int dx, dy, r;
+ double arc;
+
+ /*Qt::ButtonState but= button ;*/ // prevent compiler warning : unsused variable
+ r = kRect.width() / 2;
+
+ dx = kRect.x() + r - p.x();
+ dy = kRect.y() + r - p.y();
+
+ if ( (dx * dx) + (dy * dy) <= (r * r)) // point is inside the knob
+ {
+ scrollMode = ScrMouse;
+ direction = 0;
+ }
+ else // point lies outside
+ {
+ scrollMode = ScrTimer;
+ arc = atan2(double(-dx),double(dy)) * 180.0 / M_PI;
+ if ( arc < d_angle)
+ direction = -1;
+ else if (arc > d_angle)
+ direction = 1;
+ else
+ direction = 0;
+ }
+ return;
+}
+
+
+
+//------------------------------------------------------------
+//.F QwtKnob::rangeChange
+// Notify a change of the range
+//
+//.u Description
+// Called by QwtSliderBase
+//------------------------------------------------------------
+
+void Knob::rangeChange()
+{
+ if (!hasUserScale())
+ {
+ d_scale.setScale(minValue(), maxValue(),
+ d_maxMajor, d_maxMinor);
+ }
+ recalcAngle();
+ resize(size());
+ repaint(FALSE);
+}
+
+//---------------------------------------------------------
+// resizeEvent
+//---------------------------------------------------------
+
+void Knob::resizeEvent(QResizeEvent *)
+ {
+ int width, width_2;
+
+ const QRect& r = rect();
+
+// printf("resize %d %d %d\n", r.height(), r.width(), d_knobWidth);
+
+// width = qwtMin(qwtMin(r.height(), r.width()), d_knobWidth);
+ width = qwtMin(r.height(), r.width());
+ width_2 = width / 2;
+
+ int x = r.x() + r.width() / 2 - width_2;
+ int y = r.y() + r.height() / 2 - width_2;
+
+ kRect.setRect(x, y, width, width);
+
+ x = kRect.x() - d_scaleDist;
+ y = kRect.y() - d_scaleDist;
+ int w = width + 2 * d_scaleDist;
+
+ d_scale.setGeometry(x, y, w, ScaleDraw::Round);
+ }
+
+//------------------------------------------------------------
+// paintEvent
+//------------------------------------------------------------
+
+void Knob::paintEvent(QPaintEvent* e)
+ {
+ QPainter p(this);
+ const QRect &r = e->rect();
+
+ if ((r == kRect) && d_newVal ) { // event from valueChange()
+ if (d_newVal > 1) // lost paintEvents()?
+ drawKnob(&p, kRect);
+ else {
+ drawMarker(&p, d_oldAngle, d_curFaceColor);
+ drawMarker(&p, d_angle, d_markerColor);
+ }
+ }
+ else {
+ p.eraseRect(rect());
+ if (hasScale)
+ d_scale.draw(&p);
+ drawKnob(&p, kRect);
+ }
+ d_newVal = 0;
+ }
+
+//------------------------------------------------------------
+//.-
+//.F QwtKnob::drawMarker
+// Draw the marker at the knob's front
+//
+//.u Parameters
+//.p QPainter *p -- painter
+// double arc -- angle of the marker
+// const QColor &c -- marker color
+//
+//.u Syntax
+// void QwtKnob::drawMarker(QPainter *p)
+//
+//------------------------------------------------------------
+void Knob::drawMarker(QPainter *p, double arc, const QColor &c)
+{
+
+ QPen pn;
+ int radius;
+ double rb,re;
+ double rarc;
+
+ rarc = arc * M_PI / 180.0;
+ double ca = cos(rarc);
+ double sa = - sin(rarc);
+ radius = kRect.width() / 2 - d_borderWidth;
+ if (radius < 3) radius = 3;
+ int ym = kRect.y() + radius + d_borderWidth;
+ int xm = kRect.x() + radius + d_borderWidth;
+
+ switch (d_symbol)
+ {
+ case Dot:
+
+ p->setBrush(c);
+ p->setPen(Qt::NoPen);
+ rb = double(qwtMax(radius - 4 - d_dotWidth / 2, 0));
+ p->drawEllipse(xm - int(rint(sa * rb)) - d_dotWidth / 2,
+ ym - int(rint(ca * rb)) - d_dotWidth / 2,
+ d_dotWidth, d_dotWidth);
+
+ break;
+
+ case Line:
+
+ pn.setColor(c);
+ pn.setWidth(2);
+ p->setPen(pn);
+
+ rb = qwtMax(double((radius - 4) / 3.0), 0.0);
+ re = qwtMax(double(radius - 4), 0.0);
+
+ p->drawLine( xm - int(rint(sa * rb)),
+ ym - int(rint(ca * rb)),
+ xm - int(rint(sa * re)),
+ ym - int(rint(ca * re)));
+
+ break;
+ }
+
+
+}
+
+//------------------------------------------------------------
+//
+//.F QwtKnob::setKnobWidth
+// Change the knob's width.
+//
+//.u Syntax
+//.f void QwtKnob::setKnobWidth(int w)
+//
+//.u Parameters
+//.p int w -- new width
+//
+//.u Description
+// The specified width must be >= 5, or it will be clipped.
+//
+//------------------------------------------------------------
+void Knob::setKnobWidth(int w)
+{
+ d_knobWidth = qwtMax(w,5);
+ resize(size());
+ repaint(FALSE);
+}
+
+//------------------------------------------------------------
+//
+//.F QwtKnob::setBorderWidth
+// Set the knob's border width
+//
+//.u Syntax
+//.f void QwtKnob::setBorderWidth(int bw)
+//
+//.u Parameters
+//.p int bw -- new border width
+//
+//------------------------------------------------------------
+void Knob::setBorderWidth(int bw)
+{
+ d_borderWidth = qwtMax(bw, 0);
+ resize(size());
+ repaint(FALSE);
+}
+
+//------------------------------------------------------------
+//.-
+//.F QwtKnob::recalcAngle
+// Recalculate the marker angle corresponding to the
+// current value
+//
+//.u Syntax
+//.f void QwtKnob::recalcAngle()
+//
+//------------------------------------------------------------
+void Knob::recalcAngle()
+{
+ d_oldAngle = d_angle;
+
+ //
+ // calculate the angle corresponding to the value
+ //
+ if (maxValue() == minValue())
+ {
+ d_angle = 0;
+ d_nTurns = 0;
+ }
+ else
+ {
+ d_angle = (value() - 0.5 * (minValue() + maxValue()))
+ / (maxValue() - minValue()) * d_totalAngle;
+ d_nTurns = floor((d_angle + 180.0) / 360.0);
+ d_angle = d_angle - d_nTurns * 360.0;
+
+ }
+
+}
+
+//------------------------------------------------------------
+// setFaceColor
+//------------------------------------------------------------
+void Knob::setFaceColor(const QColor c)
+{
+ d_faceColor = c;
+ if(!_faceColSel)
+ //update(FALSE);
+ repaint(FALSE);
+}
+
+//------------------------------------------------------------
+// setAltFaceColor
+//------------------------------------------------------------
+void Knob::setAltFaceColor(const QColor c)
+{
+ d_altFaceColor = c;
+ if(_faceColSel)
+ //update(FALSE);
+ repaint(FALSE);
+}
+
+//------------------------------------------------------------
+// selectFaceColor
+//------------------------------------------------------------
+void Knob::selectFaceColor(bool alt)
+{
+ _faceColSel = alt;
+ if(alt)
+ d_curFaceColor = d_altFaceColor;
+ else
+ d_curFaceColor = d_faceColor;
+ //update(FALSE);
+ repaint(FALSE);
+}
+
+//------------------------------------------------------------
+// setMarkerColor
+//------------------------------------------------------------
+void Knob::setMarkerColor(const QColor c)
+{
+ d_markerColor = c;
+ //update(FALSE);
+ repaint(FALSE);
+}
+
diff --git a/muse2/muse/widgets/knob.h b/muse2/muse/widgets/knob.h
new file mode 100644
index 00000000..baaf9a50
--- /dev/null
+++ b/muse2/muse/widgets/knob.h
@@ -0,0 +1,78 @@
+#ifndef QWT_KNOB_H
+#define QWT_KNOB_H
+
+#include <sliderbase.h>
+#include <sclif.h>
+#include <qcolor.h>
+//Added by qt3to4:
+#include <QResizeEvent>
+#include <QPaintEvent>
+
+
+//---------------------------------------------------------
+// Knob
+//---------------------------------------------------------
+
+class Knob : public SliderBase, public ScaleIf
+ {
+ Q_OBJECT
+
+ public:
+ enum Symbol { Line, Dot };
+
+ private:
+ bool hasScale;
+
+ int d_borderWidth;
+ int d_borderDist;
+ int d_scaleDist;
+ int d_maxScaleTicks;
+ int d_newVal;
+ int d_knobWidth;
+ int d_dotWidth;
+
+ Symbol d_symbol;
+ double d_angle;
+ double d_oldAngle;
+ double d_totalAngle;
+ double d_nTurns;
+
+ QRect kRect;
+ bool _faceColSel;
+ QColor d_faceColor;
+ QColor d_curFaceColor;
+ QColor d_altFaceColor;
+ QColor d_markerColor;
+
+ void recalcAngle();
+ void valueChange();
+ void rangeChange();
+ void drawKnob(QPainter *p, const QRect &r);
+ void drawMarker(QPainter *p, double arc, const QColor &c);
+
+ void paintEvent(QPaintEvent *e);
+ void resizeEvent(QResizeEvent *e);
+ double getValue(const QPoint &p);
+ void getScrollMode( QPoint &p, const Qt::ButtonState &button, int &scrollMode, int &direction );
+ void scaleChange() { repaint(false); }
+ void fontChange(const QFont &) { repaint(false); }
+
+ public:
+ Knob(QWidget* parent = 0, const char *name = 0);
+ ~Knob() {}
+
+ void setKnobWidth(int w);
+ void setTotalAngle (double angle);
+ void setBorderWidth(int bw);
+ void selectFaceColor(bool alt);
+ bool selectedFaceColor() { return _faceColSel; }
+ QColor faceColor() { return d_faceColor; }
+ void setFaceColor(const QColor c);
+ QColor altFaceColor() { return d_altFaceColor; }
+ void setAltFaceColor(const QColor c);
+ QColor markerColor() { return d_markerColor; }
+ void setMarkerColor(const QColor c);
+ };
+
+
+#endif
diff --git a/muse2/muse/widgets/lcombo.cpp b/muse2/muse/widgets/lcombo.cpp
new file mode 100644
index 00000000..fa647002
--- /dev/null
+++ b/muse2/muse/widgets/lcombo.cpp
@@ -0,0 +1,49 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: lcombo.cpp,v 1.1.1.1.2.3 2009/07/01 22:14:56 spamatica Exp $
+// (C) Copyright 2000 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include "lcombo.h"
+
+#include <qlayout.h>
+#include <q3frame.h>
+#include <qlabel.h>
+//Added by qt3to4:
+#include <Q3HBoxLayout>
+
+//---------------------------------------------------------
+// LabelCombo
+//---------------------------------------------------------
+
+LabelCombo::LabelCombo(const QString& txt, QWidget* parent,
+ const char* name) : QWidget(parent, name)
+ {
+// setFixedHeight(20);
+ Q3HBoxLayout* layout = new Q3HBoxLayout(this);
+ QLabel* label = new QLabel(txt, this);
+ box = new QComboBox(false, this);
+ layout->addStretch();
+ layout->addSpacing(5);
+ layout->addWidget(label);
+ layout->addSpacing(5);
+ layout->addWidget(box);
+ layout->addSpacing(5);
+ layout->addStretch();
+ connect(box, SIGNAL(activated(int)), SIGNAL(activated(int)));
+ }
+
+void LabelCombo::insertItem(const QString& txt, int index)
+ {
+ box->insertItem(txt, index);
+ }
+
+void LabelCombo::clearFocus()
+{
+ box->clearFocus();
+}
+void LabelCombo::setFocusPolicy ( Qt::FocusPolicy fp )
+{
+ box->setFocusPolicy(fp);
+} \ No newline at end of file
diff --git a/muse2/muse/widgets/lcombo.h b/muse2/muse/widgets/lcombo.h
new file mode 100644
index 00000000..f2332847
--- /dev/null
+++ b/muse2/muse/widgets/lcombo.h
@@ -0,0 +1,40 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: lcombo.h,v 1.1.1.1.2.3 2009/07/01 22:14:56 spamatica Exp $
+// (C) Copyright 2000 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __LCOMBO_H__
+#define __LCOMBO_H__
+
+#include <qwidget.h>
+#include <qcombobox.h>
+
+class QString;
+class Q3ListBox;
+
+//---------------------------------------------------------
+// LabelCombo
+//---------------------------------------------------------
+
+class LabelCombo : public QWidget {
+ QComboBox* box;
+ Q_OBJECT
+
+ signals:
+ void activated(int);
+
+ public slots:
+ void clearFocus();
+ public:
+ LabelCombo(const QString& label, QWidget* parent,
+ const char* name=0);
+ void insertItem(const QString& txt, int index=-1);
+ void setCurrentItem(int i) { box->setCurrentItem(i); }
+ //void setListBox(Q3ListBox* lb) { box->setListBox(lb); } // ddskrjo
+ void setFocusPolicy ( Qt::FocusPolicy fp );
+
+ };
+
+#endif
diff --git a/muse2/muse/widgets/listitem.h b/muse2/muse/widgets/listitem.h
new file mode 100644
index 00000000..56b0f3d4
--- /dev/null
+++ b/muse2/muse/widgets/listitem.h
@@ -0,0 +1,85 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: listitem.h,v 1.1.2.1 2008/08/18 00:15:26 terminator356 Exp $
+//
+// (C) Copyright 1999/2000 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __LISTITEM_H__
+#define __LISTITEM_H__
+
+//#include <qstring.h>
+//#include <qlistbox.h>
+#include <q3listview.h>
+
+class QString;
+class Q3ListBox;
+class Q3ListBoxText;
+//class QListView;
+//class QListViewItem;
+class ListBoxData;
+class ListViewData;
+
+//---------------------------------------------------------
+// ListBoxData
+//---------------------------------------------------------
+
+class ListBoxData : public Q3ListBoxText
+{
+ void* _data;
+
+ public:
+ ListBoxData(Q3ListBox* listbox, const QString& text = QString::null)
+ : Q3ListBoxText(listbox, text) { _data = 0; }
+ ListBoxData(const QString& text = QString::null) : Q3ListBoxText(text) { _data = 0; }
+ ListBoxData(Q3ListBox* listbox, const QString& text, ListBoxData* after)
+ : Q3ListBoxText(listbox, text, (Q3ListBoxText*)after) { _data = 0; }
+ ~ListBoxData() { }
+
+ virtual void setText(const QString& text) { Q3ListBoxText::setText(text); }
+ void* data() { return _data; }
+ void setData(void* dat) { _data = dat; }
+};
+
+//---------------------------------------------------------
+// ListViewData
+//---------------------------------------------------------
+
+class ListViewData : public Q3ListViewItem
+{
+ void* _data;
+
+ public:
+ ListViewData(Q3ListView* parent) : Q3ListViewItem(parent) { _data = 0; }
+ //ListViewData(ListViewData* parent) : QListViewItem((QListViewItem*)parent) { _data = 0; }
+ ListViewData(ListViewData* parent) : Q3ListViewItem(parent) { _data = 0; }
+ //ListViewData(QListView* parent, ListViewData* after) : QListViewItem(parent, (QListViewItem*)after) { _data = 0; }
+ ListViewData(Q3ListView* parent, ListViewData* after) : Q3ListViewItem(parent, after) { _data = 0; }
+ //ListViewData(ListViewData* parent, ListViewData* after) : QListViewItem((QListViewItem*)parent, (QListViewItem*)after) { _data = 0; }
+ ListViewData(ListViewData* parent, ListViewData* after) : Q3ListViewItem(parent, after) { _data = 0; }
+ ListViewData(Q3ListView* parent, QString label1, QString label2 = QString::null, QString label3 = QString::null, QString label4 = QString::null,
+ QString label5 = QString::null, QString label6 = QString::null, QString label7 = QString::null, QString label8 = QString::null)
+ : Q3ListViewItem(parent, label1, label2, label3, label4, label5, label6, label7, label8) { _data = 0; }
+ ListViewData(ListViewData* parent, QString label1, QString label2 = QString::null, QString label3 = QString::null, QString label4 = QString::null,
+ QString label5 = QString::null, QString label6 = QString::null, QString label7 = QString::null, QString label8 = QString::null)
+ //: QListViewItem((QListViewItem*)parent, label1, label2, label3, label4, label5, label6, label7, label8) { _data = 0; }
+ : Q3ListViewItem(parent, label1, label2, label3, label4, label5, label6, label7, label8) { _data = 0; }
+ ListViewData(Q3ListView* parent, ListViewData* after, QString label1, QString label2 = QString::null, QString label3 = QString::null, QString label4 = QString::null,
+ QString label5 = QString::null, QString label6 = QString::null, QString label7 = QString::null, QString label8 = QString::null)
+ //: QListViewItem(parent, (QListViewItem*)after, label1, label2, label3, label4, label5, label6, label7, label8) { _data = 0; }
+ : Q3ListViewItem(parent, after, label1, label2, label3, label4, label5, label6, label7, label8) { _data = 0; }
+ ListViewData(ListViewData* parent, ListViewData* after, QString label1, QString label2 = QString::null, QString label3 = QString::null, QString label4 = QString::null,
+ QString label5 = QString::null, QString label6 = QString::null, QString label7 = QString::null, QString label8 = QString::null)
+ //: QListViewItem((QListViewItem*)parent, (QListViewItem*)after, label1, label2, label3, label4, label5, label6, label7, label8) { _data = 0; }
+ : Q3ListViewItem(parent, after, label1, label2, label3, label4, label5, label6, label7, label8) { _data = 0; }
+ ~ListViewData() { }
+
+ void* data() { return _data; }
+ void setData(void* dat) { _data = dat; }
+};
+
+
+
+#endif
+
diff --git a/muse2/muse/widgets/menutitleitem.h b/muse2/muse/widgets/menutitleitem.h
new file mode 100644
index 00000000..5f821512
--- /dev/null
+++ b/muse2/muse/widgets/menutitleitem.h
@@ -0,0 +1,29 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: menutitleitem.h,v 1.1.2.1 2009/06/10 00:34:59 terminator356 Exp $
+// (C) Copyright 1999-2001 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __MENU_TITLE_ITEM_H__
+#define __MENU_TITLE_ITEM_H__
+
+#include <qmenudata.h>
+
+//---------------------------------------------------------
+// MenuTitleItem
+//---------------------------------------------------------
+
+class MenuTitleItem { //: public QCustomMenuItem { ddskrjo
+ 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/muse2/muse/widgets/metronome.cpp b/muse2/muse/widgets/metronome.cpp
new file mode 100644
index 00000000..091a8a56
--- /dev/null
+++ b/muse2/muse/widgets/metronome.cpp
@@ -0,0 +1,186 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: metronome.cpp,v 1.2.2.1 2009/12/20 05:00:35 terminator356 Exp $
+//
+// (C) Copyright 2001 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include <stdio.h>
+#include "metronome.h"
+#include <QtGui>
+#include <qpushbutton.h>
+#include <qspinbox.h>
+#include <qcheckbox.h>
+//Added by qt3to4:
+#include <Q3PopupMenu>
+#include "globals.h"
+#include "song.h"
+#include "track.h"
+#include "audio.h"
+
+//---------------------------------------------------------
+// MetronomeConfig
+//---------------------------------------------------------
+
+MetronomeConfig::MetronomeConfig(QWidget* parent, const char* name)
+ : MetronomeConfigBase(parent, name)
+ {
+ connect(buttonApply, SIGNAL(clicked()), SLOT(apply()));
+ connect(midiClick, SIGNAL(toggled(bool)), SLOT(midiClickChanged(bool)));
+ connect(precountEnable, SIGNAL(toggled(bool)), SLOT(precountEnableChanged(bool)));
+ connect(precountFromMastertrack, SIGNAL(toggled(bool)),
+ SLOT(precountFromMastertrackChanged(bool)));
+ connect(audioBeepRoutesButton, SIGNAL(clicked()), SLOT(audioBeepRoutesClicked()));
+ connect(volumeSlider, SIGNAL(valueChanged(int)), SLOT(beepVolumeChanged(int)));
+
+ measureNote->setValue(measureClickNote);
+ measureVelocity->setValue(measureClickVelo);
+ beatNote->setValue(beatClickNote);
+ beatVelocity->setValue(beatClickVelo);
+ midiChannel->setValue(clickChan+1);
+ midiPort->setValue(clickPort+1);
+
+ /*
+ precountBars->setValue(preMeasures);
+ precountEnable->setChecked(precountEnableFlag);
+ precountFromMastertrack->setChecked(precountFromMastertrackFlag);
+ precountSigZ->setValue(::precountSigZ);
+ precountSigN->setValue(::precountSigN);
+ precountPrerecord->setChecked(::precountPrerecord);
+ precountPreroll->setChecked(::precountPreroll);
+ */
+
+ midiClick->setChecked(midiClickFlag);
+ audioBeep->setChecked(audioClickFlag);
+ }
+
+//---------------------------------------------------------
+// audioBeepRoutesClicked
+//---------------------------------------------------------
+
+void MetronomeConfig::audioBeepRoutesClicked()
+{
+ if(song->outputs()->size() == 0)
+ return;
+
+ //QPopupMenu* pup = new QPopupMenu(audioBeepRoutesButton);
+ Q3PopupMenu* pup = new Q3PopupMenu(this);
+ pup->setCheckable(true);
+
+ OutputList* ol = song->outputs();
+
+ int nn = 0;
+ for(iAudioOutput iao = ol->begin(); iao != ol->end(); ++iao)
+ {
+ int id = pup->insertItem(QT_TR_NOOP((*iao)->name()), nn);
+ if((*iao)->sendMetronome())
+ pup->setItemChecked(id, true);
+ ++nn;
+ }
+
+ int n = pup->exec(QCursor::pos());
+ if(n != -1)
+ {
+ //QString s(pup->text(n));
+ nn = 0;
+ for(iAudioOutput iao = ol->begin(); iao != ol->end(); ++iao)
+ {
+ //if(((*iao)->name() == s) && (n == nn))
+ if(n == nn)
+ {
+ //(*iao)->setSendMetronome();
+ audio->msgSetSendMetronome(*iao, !pup->isItemChecked(n));
+ //song->update(SC_ROUTE);
+ break;
+ }
+ ++nn;
+ }
+ }
+
+ delete pup;
+ audioBeepRoutesButton->setDown(false); // pup->exec() catches mouse release event
+}
+
+//---------------------------------------------------------
+// accept
+//---------------------------------------------------------
+
+void MetronomeConfig::accept()
+ {
+ apply();
+ MetronomeConfigBase::accept();
+ }
+
+//---------------------------------------------------------
+// apply
+//---------------------------------------------------------
+
+void MetronomeConfig::apply()
+ {
+ measureClickNote = measureNote->value();
+ measureClickVelo = measureVelocity->value();
+ beatClickNote = beatNote->value();
+ beatClickVelo = beatVelocity->value();
+ clickChan = midiChannel->value() - 1;
+ clickPort = midiPort->value() - 1;
+ preMeasures = precountBars->value();
+ /*
+ precountEnableFlag = precountEnable->isChecked();
+ precountFromMastertrackFlag = precountFromMastertrack->isChecked();
+ ::precountSigZ = precountSigZ->value();
+ ::precountSigN = precountSigN->value();
+ ::precountPrerecord = precountPrerecord->isChecked();
+ ::precountPreroll = precountPreroll->isChecked();
+ */
+ midiClickFlag = midiClick->isChecked();
+ audioClickFlag = audioBeep->isChecked();
+ //audioVolumeChanged = volumeSlider->value();
+ }
+
+//---------------------------------------------------------
+// reject
+//---------------------------------------------------------
+
+void MetronomeConfig::reject()
+ {
+ MetronomeConfigBase::reject();
+ }
+
+//---------------------------------------------------------
+// midiClickChanged
+//---------------------------------------------------------
+
+void MetronomeConfig::midiClickChanged(bool flag)
+ {
+ measureNote->setEnabled(flag);
+ measureVelocity->setEnabled(flag);
+ beatNote->setEnabled(flag);
+ beatVelocity->setEnabled(flag);
+ midiChannel->setEnabled(flag);
+ midiPort->setEnabled(flag);
+ }
+
+void MetronomeConfig::precountEnableChanged(bool flag)
+ {
+ /*
+ precountBars->setEnabled(flag);
+ precountFromMastertrack->setEnabled(flag);
+ precountSigZ->setEnabled(flag && !precountFromMastertrack->isChecked());
+ precountSigN->setEnabled(flag && !precountFromMastertrack->isChecked());
+ */
+ }
+
+void MetronomeConfig::precountFromMastertrackChanged(bool flag)
+ {
+ /*
+ precountSigZ->setEnabled(!flag);
+ precountSigN->setEnabled(!flag);
+ */
+ }
+
+void MetronomeConfig::beepVolumeChanged(int volume)
+ {
+ // this value is directly applied, not using th Apply button, it just seems more usable this way.
+ audioClickVolume=volume/100.0;
+ }
diff --git a/muse2/muse/widgets/metronome.h b/muse2/muse/widgets/metronome.h
new file mode 100644
index 00000000..200d1875
--- /dev/null
+++ b/muse2/muse/widgets/metronome.h
@@ -0,0 +1,34 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: metronome.h,v 1.1.1.1.2.1 2009/12/20 05:00:35 terminator356 Exp $
+//
+// (C) Copyright 2001 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __METRONOME_H__
+#define __METRONOME_H__
+
+#include "metronomebase.h"
+
+//---------------------------------------------------------
+// MetronomeConfig
+//---------------------------------------------------------
+
+class MetronomeConfig : public MetronomeConfigBase {
+ Q_OBJECT
+
+ private slots:
+ virtual void accept();
+ void apply();
+ virtual void reject();
+ virtual void audioBeepRoutesClicked();
+ void midiClickChanged(bool);
+ void precountEnableChanged(bool);
+ void precountFromMastertrackChanged(bool);
+ void beepVolumeChanged(int);
+
+ public:
+ MetronomeConfig(QWidget* parent, const char* name = 0);
+ };
+#endif
diff --git a/muse2/muse/widgets/metronomebase.ui b/muse2/muse/widgets/metronomebase.ui
new file mode 100644
index 00000000..c30f5bf1
--- /dev/null
+++ b/muse2/muse/widgets/metronomebase.ui
@@ -0,0 +1,604 @@
+<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
+<class>MetronomeConfigBase</class>
+<widget class="QDialog">
+ <property name="name">
+ <cstring>MetronomeConfigBase</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>557</width>
+ <height>347</height>
+ </rect>
+ </property>
+ <property name="caption">
+ <string>MusE: Metronome Config</string>
+ </property>
+ <property name="sizeGripEnabled">
+ <bool>true</bool>
+ </property>
+ <grid>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>11</number>
+ </property>
+ <property name="spacing">
+ <number>6</number>
+ </property>
+ <widget class="QLayoutWidget" row="0" column="0">
+ <property name="name">
+ <cstring>layout20</cstring>
+ </property>
+ <grid>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QGroupBox" row="0" column="0">
+ <property name="name">
+ <cstring>GroupBox1</cstring>
+ </property>
+ <property name="title">
+ <string>Metronome</string>
+ </property>
+ <grid>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>11</number>
+ </property>
+ <property name="spacing">
+ <number>6</number>
+ </property>
+ <widget class="QLayoutWidget" row="0" column="0">
+ <property name="name">
+ <cstring>layout18</cstring>
+ </property>
+ <vbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QLayoutWidget">
+ <property name="name">
+ <cstring>audioBeepLayout</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QCheckBox">
+ <property name="name">
+ <cstring>audioBeep</cstring>
+ </property>
+ <property name="text">
+ <string>Audio Beep</string>
+ </property>
+ </widget>
+ <widget class="QPushButton">
+ <property name="name">
+ <cstring>audioBeepRoutesButton</cstring>
+ </property>
+ <property name="text">
+ <string>Choose outputs...</string>
+ </property>
+ <property name="autoDefault">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </hbox>
+ </widget>
+ <widget class="QLayoutWidget">
+ <property name="name">
+ <cstring>layout17</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QSlider">
+ <property name="name">
+ <cstring>volumeSlider</cstring>
+ </property>
+ <property name="minValue">
+ <number>0</number>
+ </property>
+ <property name="maxValue">
+ <number>100</number>
+ </property>
+ <property name="lineStep">
+ <number>1</number>
+ </property>
+ <property name="pageStep">
+ <number>10</number>
+ </property>
+ <property name="value">
+ <number>50</number>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ </widget>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>volumeLabel</cstring>
+ </property>
+ <property name="text">
+ <string>50</string>
+ </property>
+ </widget>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>textLabel1</cstring>
+ </property>
+ <property name="text">
+ <string>% Audio volume</string>
+ </property>
+ </widget>
+ </hbox>
+ </widget>
+ <widget class="QCheckBox">
+ <property name="name">
+ <cstring>midiClick</cstring>
+ </property>
+ <property name="text">
+ <string>MIDI Click</string>
+ </property>
+ <property name="checked">
+ <bool>true</bool>
+ </property>
+ </widget>
+ <widget class="QLayoutWidget">
+ <property name="name">
+ <cstring>Layout11</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>0</number>
+ </property>
+ <property name="spacing">
+ <number>6</number>
+ </property>
+ <widget class="QLayoutWidget">
+ <property name="name">
+ <cstring>Layout10</cstring>
+ </property>
+ <grid>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>0</number>
+ </property>
+ <property name="spacing">
+ <number>6</number>
+ </property>
+ <widget class="QLabel" row="4" column="1">
+ <property name="name">
+ <cstring>TextLabel5</cstring>
+ </property>
+ <property name="text">
+ <string>Midi Channel</string>
+ </property>
+ </widget>
+ <widget class="QLabel" row="0" column="1">
+ <property name="name">
+ <cstring>TextLabel1</cstring>
+ </property>
+ <property name="text">
+ <string>Measure Note</string>
+ </property>
+ </widget>
+ <widget class="QSpinBox" row="4" column="0">
+ <property name="name">
+ <cstring>midiChannel</cstring>
+ </property>
+ <property name="maxValue">
+ <number>16</number>
+ </property>
+ <property name="minValue">
+ <number>1</number>
+ </property>
+ </widget>
+ <widget class="QLabel" row="1" column="1">
+ <property name="name">
+ <cstring>TextLabel2</cstring>
+ </property>
+ <property name="text">
+ <string>Measure Velocity</string>
+ </property>
+ </widget>
+ <widget class="QLabel" row="3" column="1">
+ <property name="name">
+ <cstring>TextLabel4</cstring>
+ </property>
+ <property name="text">
+ <string>Beat Velocity</string>
+ </property>
+ </widget>
+ <widget class="QSpinBox" row="5" column="0">
+ <property name="name">
+ <cstring>midiPort</cstring>
+ </property>
+ <property name="maxValue">
+ <number>16</number>
+ </property>
+ <property name="minValue">
+ <number>1</number>
+ </property>
+ </widget>
+ <widget class="QLabel" row="2" column="1">
+ <property name="name">
+ <cstring>TextLabel3</cstring>
+ </property>
+ <property name="text">
+ <string>Beat Note</string>
+ </property>
+ </widget>
+ <widget class="QSpinBox" row="2" column="0">
+ <property name="name">
+ <cstring>beatNote</cstring>
+ </property>
+ </widget>
+ <widget class="QSpinBox" row="1" column="0">
+ <property name="name">
+ <cstring>measureVelocity</cstring>
+ </property>
+ <property name="maxValue">
+ <number>127</number>
+ </property>
+ </widget>
+ <widget class="QSpinBox" row="0" column="0">
+ <property name="name">
+ <cstring>measureNote</cstring>
+ </property>
+ </widget>
+ <widget class="QLabel" row="5" column="1">
+ <property name="name">
+ <cstring>TextLabel6</cstring>
+ </property>
+ <property name="text">
+ <string>Midi Port</string>
+ </property>
+ </widget>
+ <widget class="QSpinBox" row="3" column="0">
+ <property name="name">
+ <cstring>beatVelocity</cstring>
+ </property>
+ <property name="maxValue">
+ <number>127</number>
+ </property>
+ </widget>
+ </grid>
+ </widget>
+ <spacer>
+ <property name="name">
+ <cstring>Spacer10</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>20</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </hbox>
+ </widget>
+ </vbox>
+ </widget>
+ </grid>
+ </widget>
+ <widget class="QGroupBox" row="0" column="1">
+ <property name="name">
+ <cstring>GroupBox2</cstring>
+ </property>
+ <property name="title">
+ <string>Precount</string>
+ </property>
+ <vbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>11</number>
+ </property>
+ <property name="spacing">
+ <number>6</number>
+ </property>
+ <widget class="QCheckBox">
+ <property name="name">
+ <cstring>precountEnable</cstring>
+ </property>
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="text">
+ <string>enable</string>
+ </property>
+ <property name="checked">
+ <bool>false</bool>
+ </property>
+ </widget>
+ <widget class="QLayoutWidget">
+ <property name="name">
+ <cstring>Layout6</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>0</number>
+ </property>
+ <property name="spacing">
+ <number>6</number>
+ </property>
+ <widget class="QSpinBox">
+ <property name="name">
+ <cstring>precountBars</cstring>
+ </property>
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="maxValue">
+ <number>10</number>
+ </property>
+ <property name="minValue">
+ <number>1</number>
+ </property>
+ <property name="value">
+ <number>2</number>
+ </property>
+ </widget>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>TextLabel7</cstring>
+ </property>
+ <property name="text">
+ <string>Bars</string>
+ </property>
+ </widget>
+ </hbox>
+ </widget>
+ <widget class="QCheckBox">
+ <property name="name">
+ <cstring>precountFromMastertrack</cstring>
+ </property>
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="text">
+ <string>From Mastertrack</string>
+ </property>
+ <property name="checked">
+ <bool>true</bool>
+ </property>
+ </widget>
+ <widget class="QLayoutWidget">
+ <property name="name">
+ <cstring>Layout5</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>0</number>
+ </property>
+ <property name="spacing">
+ <number>6</number>
+ </property>
+ <widget class="QSpinBox">
+ <property name="name">
+ <cstring>precountSigZ</cstring>
+ </property>
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="maxValue">
+ <number>32</number>
+ </property>
+ <property name="minValue">
+ <number>1</number>
+ </property>
+ <property name="value">
+ <number>4</number>
+ </property>
+ </widget>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>TextLabel8</cstring>
+ </property>
+ <property name="text">
+ <string>/</string>
+ </property>
+ </widget>
+ <widget class="QSpinBox">
+ <property name="name">
+ <cstring>precountSigN</cstring>
+ </property>
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="maxValue">
+ <number>64</number>
+ </property>
+ <property name="minValue">
+ <number>2</number>
+ </property>
+ <property name="value">
+ <number>4</number>
+ </property>
+ </widget>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>TextLabel9</cstring>
+ </property>
+ <property name="text">
+ <string>Signature</string>
+ </property>
+ </widget>
+ </hbox>
+ </widget>
+ <widget class="QCheckBox">
+ <property name="name">
+ <cstring>precountPrerecord</cstring>
+ </property>
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="text">
+ <string>Prerecord</string>
+ </property>
+ </widget>
+ <widget class="QCheckBox">
+ <property name="name">
+ <cstring>precountPreroll</cstring>
+ </property>
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="text">
+ <string>Preroll</string>
+ </property>
+ </widget>
+ </vbox>
+ </widget>
+ <widget class="QLayoutWidget" row="1" column="0" rowspan="1" colspan="2">
+ <property name="name">
+ <cstring>layout19</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>textLabel3</cstring>
+ </property>
+ <property name="text">
+ <string>Hint: Enable metronome in Transportpanel</string>
+ </property>
+ </widget>
+ <spacer>
+ <property name="name">
+ <cstring>Horizontal Spacing2</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>8</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ <widget class="QPushButton">
+ <property name="name">
+ <cstring>buttonApply</cstring>
+ </property>
+ <property name="text">
+ <string>&amp;Apply</string>
+ </property>
+ <property name="accel">
+ <string>Alt+A</string>
+ </property>
+ <property name="autoDefault">
+ <bool>true</bool>
+ </property>
+ </widget>
+ <widget class="QPushButton">
+ <property name="name">
+ <cstring>buttonOk</cstring>
+ </property>
+ <property name="text">
+ <string>&amp;OK</string>
+ </property>
+ <property name="accel">
+ <string>Alt+O</string>
+ </property>
+ <property name="autoDefault">
+ <bool>true</bool>
+ </property>
+ <property name="default">
+ <bool>true</bool>
+ </property>
+ </widget>
+ <widget class="QPushButton">
+ <property name="name">
+ <cstring>buttonCancel</cstring>
+ </property>
+ <property name="text">
+ <string>&amp;Cancel</string>
+ </property>
+ <property name="accel">
+ <string>Alt+C</string>
+ </property>
+ <property name="autoDefault">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </hbox>
+ </widget>
+ </grid>
+ </widget>
+ </grid>
+</widget>
+<connections>
+ <connection>
+ <sender>buttonOk</sender>
+ <signal>clicked()</signal>
+ <receiver>MetronomeConfigBase</receiver>
+ <slot>accept()</slot>
+ </connection>
+ <connection>
+ <sender>buttonCancel</sender>
+ <signal>clicked()</signal>
+ <receiver>MetronomeConfigBase</receiver>
+ <slot>reject()</slot>
+ </connection>
+ <connection>
+ <sender>volumeSlider</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>volumeLabel</receiver>
+ <slot>setNum(int)</slot>
+ </connection>
+</connections>
+<tabstops>
+ <tabstop>audioBeep</tabstop>
+ <tabstop>audioBeepRoutesButton</tabstop>
+ <tabstop>midiClick</tabstop>
+ <tabstop>measureNote</tabstop>
+ <tabstop>measureVelocity</tabstop>
+ <tabstop>beatNote</tabstop>
+ <tabstop>beatVelocity</tabstop>
+ <tabstop>midiChannel</tabstop>
+ <tabstop>midiPort</tabstop>
+ <tabstop>precountEnable</tabstop>
+ <tabstop>precountBars</tabstop>
+ <tabstop>precountFromMastertrack</tabstop>
+ <tabstop>precountSigZ</tabstop>
+ <tabstop>precountPrerecord</tabstop>
+ <tabstop>precountPreroll</tabstop>
+ <tabstop>precountSigN</tabstop>
+ <tabstop>buttonApply</tabstop>
+ <tabstop>buttonOk</tabstop>
+ <tabstop>buttonCancel</tabstop>
+</tabstops>
+<layoutdefaults spacing="6" margin="11"/>
+</UI>
diff --git a/muse2/muse/widgets/midisync.ui b/muse2/muse/widgets/midisync.ui
new file mode 100644
index 00000000..f9c9a816
--- /dev/null
+++ b/muse2/muse/widgets/midisync.ui
@@ -0,0 +1,443 @@
+<!DOCTYPE UI><UI version="3.2" stdsetdef="1">
+<class>MidiSyncConfigBase</class>
+<comment>midi sync
+configuration dialog</comment>
+<author>werner schweer</author>
+<widget class="QDialog">
+ <property name="name">
+ <cstring>MidiSyncConfigBase</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>574</width>
+ <height>419</height>
+ </rect>
+ </property>
+ <property name="caption">
+ <string>MusE: Midi Sync</string>
+ </property>
+ <grid>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QLayoutWidget" row="2" column="0">
+ <property name="name">
+ <cstring>ApplyOk</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>0</number>
+ </property>
+ <property name="spacing">
+ <number>6</number>
+ </property>
+ <spacer>
+ <property name="name">
+ <cstring>Spacer1_2</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>20</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ <widget class="QPushButton">
+ <property name="name">
+ <cstring>applyButton</cstring>
+ </property>
+ <property name="text">
+ <string>Apply</string>
+ </property>
+ </widget>
+ <widget class="QPushButton">
+ <property name="name">
+ <cstring>okButton</cstring>
+ </property>
+ <property name="text">
+ <string>Ok</string>
+ </property>
+ <property name="default">
+ <bool>true</bool>
+ </property>
+ </widget>
+ <widget class="QPushButton">
+ <property name="name">
+ <cstring>cancelButton</cstring>
+ </property>
+ <property name="text">
+ <string>Cancel</string>
+ </property>
+ </widget>
+ </hbox>
+ </widget>
+ <widget class="QGroupBox" row="1" column="0">
+ <property name="name">
+ <cstring>GroupBox13</cstring>
+ </property>
+ <property name="enabled">
+ <bool>true</bool>
+ </property>
+ <property name="title">
+ <string>MTC</string>
+ </property>
+ <vbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>11</number>
+ </property>
+ <property name="spacing">
+ <number>6</number>
+ </property>
+ <widget class="QLayoutWidget">
+ <property name="name">
+ <cstring>layout7</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>textLabel2</cstring>
+ </property>
+ <property name="text">
+ <string>Type:</string>
+ </property>
+ </widget>
+ <widget class="QComboBox">
+ <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>
+ <property name="name">
+ <cstring>mtcSyncType</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>1</hsizetype>
+ <vsizetype>1</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ </widget>
+ <spacer>
+ <property name="name">
+ <cstring>spacer4</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>40</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </hbox>
+ </widget>
+ <widget class="QLayoutWidget">
+ <property name="name">
+ <cstring>layout5</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>textLabel1</cstring>
+ </property>
+ <property name="text">
+ <string>Offset:</string>
+ </property>
+ </widget>
+ <widget class="QSpinBox">
+ <property name="name">
+ <cstring>mtcOffH</cstring>
+ </property>
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="maxValue">
+ <number>23</number>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>hour</string>
+ </property>
+ </widget>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>TextLabel2</cstring>
+ </property>
+ <property name="text">
+ <string>h</string>
+ </property>
+ </widget>
+ <widget class="QSpinBox">
+ <property name="name">
+ <cstring>mtcOffM</cstring>
+ </property>
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="maxValue">
+ <number>59</number>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>minute</string>
+ </property>
+ </widget>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>TextLabel3</cstring>
+ </property>
+ <property name="text">
+ <string>m</string>
+ </property>
+ </widget>
+ <widget class="QSpinBox">
+ <property name="name">
+ <cstring>mtcOffS</cstring>
+ </property>
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="maxValue">
+ <number>59</number>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>second</string>
+ </property>
+ </widget>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>TextLabel4</cstring>
+ </property>
+ <property name="text">
+ <string>s</string>
+ </property>
+ </widget>
+ <widget class="QSpinBox">
+ <property name="name">
+ <cstring>mtcOffF</cstring>
+ </property>
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="maxValue">
+ <number>30</number>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>frame</string>
+ </property>
+ </widget>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>TextLabel5</cstring>
+ </property>
+ <property name="text">
+ <string>f</string>
+ </property>
+ </widget>
+ <widget class="QSpinBox">
+ <property name="name">
+ <cstring>mtcOffSf</cstring>
+ </property>
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>subframe</string>
+ </property>
+ </widget>
+ </hbox>
+ </widget>
+ </vbox>
+ </widget>
+ <widget class="QGroupBox" row="0" column="0">
+ <property name="name">
+ <cstring>syncGen</cstring>
+ </property>
+ <property name="title">
+ <string>Sync receiving and sending</string>
+ </property>
+ <grid>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QCheckBox" row="0" column="0" rowspan="1" colspan="2">
+ <property name="name">
+ <cstring>useJackTransportCheckbox</cstring>
+ </property>
+ <property name="enabled">
+ <bool>true</bool>
+ </property>
+ <property name="text">
+ <string>Use Jack transport</string>
+ </property>
+ <property name="checked">
+ <bool>false</bool>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Send and receive Jack transport</string>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>Send and receive Jack transport information,
+ including stop, start and position.</string>
+ </property>
+ </widget>
+ <widget class="QCheckBox" row="1" column="0" rowspan="1" colspan="2">
+ <property name="name">
+ <cstring>jackTransportMasterCheckbox</cstring>
+ </property>
+ <property name="enabled">
+ <bool>true</bool>
+ </property>
+ <property name="text">
+ <string>Jack transport Timebase Master</string>
+ </property>
+ <property name="checked">
+ <bool>true</bool>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Make MusE the Jack transport Timebase Master</string>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>Make MusE the Jack transport Timebase Master.
+Allows Jack to show time as
+ MusE Bars, Beats, and Ticks.
+MusE will try to become master, but other
+ Jack clients can also take over later.
+You can always click here again for Master.</string>
+ </property>
+ </widget>
+ <widget class="QCheckBox" row="2" column="0" rowspan="1" colspan="2">
+ <property name="name">
+ <cstring>extSyncCheckbox</cstring>
+ </property>
+ <property name="enabled">
+ <bool>true</bool>
+ </property>
+ <property name="text">
+ <string>Slave to external sync</string>
+ </property>
+ <property name="checked">
+ <bool>false</bool>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Control MusE timing by external midi clock or MTC sync</string>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>When in slave mode, tempo is
+ controlled externally.
+MusE can sync to midi clock, or MTC quarter frame sync.
+Enabled inputs in the list will
+ be in effect (RMC, RMMC, RMTC).</string>
+ </property>
+ </widget>
+ <widget class="QLayoutWidget" row="3" column="0">
+ <property name="name">
+ <cstring>syncDelayLayout</cstring>
+ </property>
+ <hbox>
+ <widget class="QSpinBox">
+ <property name="name">
+ <cstring>syncDelaySpinBox</cstring>
+ </property>
+ <property name="suffix">
+ <string>ms</string>
+ </property>
+ <property name="maxValue">
+ <number>60000</number>
+ </property>
+ <property name="minValue">
+ <number>0</number>
+ </property>
+ <property name="lineStep">
+ <number>1</number>
+ </property>
+ <property name="value">
+ <number>1</number>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Send start to first clock delay</string>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>Allows 'slow sync' devices time
+ to synchronize to MusE. This value is the
+ delay from sending start to sending
+ the first clock.</string>
+ </property>
+ </widget>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>syncDelayLabel</cstring>
+ </property>
+ <property name="text">
+ <string>Send sync delay</string>
+ </property>
+ <property name="alignment">
+ <set>AlignVCenter|AlignLeft</set>
+ </property>
+ </widget>
+ </hbox>
+ </widget>
+ <widget class="QListView" row="4" column="0">
+ <property name="name">
+ <cstring>devicesListView</cstring>
+ </property>
+ </widget>
+ </grid>
+ </widget>
+ </grid>
+</widget>
+<tabstops>
+ <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>
+<slots>
+ <slot>mopslot()</slot>
+</slots>
+<layoutdefaults spacing="6" margin="11"/>
+</UI>
diff --git a/muse2/muse/widgets/midisyncimpl.cpp b/muse2/muse/widgets/midisyncimpl.cpp
new file mode 100644
index 00000000..e763c62f
--- /dev/null
+++ b/muse2/muse/widgets/midisyncimpl.cpp
@@ -0,0 +1,1294 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: midisyncimpl.cpp,v 1.1.1.1.2.4 2009/05/03 04:14:01 terminator356 Exp $
+//
+// (C) Copyright 1999/2000 Werner Schweer (ws@seh.de)
+//=========================================================
+
+//#include "midisyncimpl.h"
+//#include "sync.h"
+//#include "globals.h"
+
+#include <qspinbox.h>
+#include <qcombobox.h>
+#include <qcheckbox.h>
+#include <q3buttongroup.h>
+#include <qpushbutton.h>
+#include <qinputdialog.h>
+//#include <qlistview.h>
+#include <q3header.h>
+#include <qtimer.h>
+//#include <qwhatsthis.h>
+#include <qmessagebox.h>
+//Added by qt3to4:
+#include <QCloseEvent>
+
+#include "app.h"
+#include "song.h"
+#include "midiport.h"
+#include "midiseq.h"
+#include "mididev.h"
+#include "icons.h"
+#include "sync.h"
+#include "globals.h"
+#include "midisyncimpl.h"
+#include "driver/audiodev.h"
+#include "audio.h"
+
+enum { DEVCOL_NO = 0, DEVCOL_NAME, DEVCOL_IN, DEVCOL_TICKIN, DEVCOL_MRTIN, DEVCOL_MMCIN, DEVCOL_MTCIN, DEVCOL_MTCTYPE,
+ DEVCOL_RID, DEVCOL_RCLK, DEVCOL_RMRT, DEVCOL_RMMC, DEVCOL_RMTC, DEVCOL_RREWSTART,
+ DEVCOL_TID, DEVCOL_TCLK, DEVCOL_TMRT, DEVCOL_TMMC, DEVCOL_TMTC, /* DEVCOL_TREWSTART, */ };
+
+//MidiSyncInfo tmpMidiSyncPorts[MIDI_PORTS];
+
+//---------------------------------------------------------
+// MSyncHeaderTip::maybeTip
+//---------------------------------------------------------
+
+void MSyncHeaderTip::maybeTip(const QPoint &pos)
+ {
+ Q3Header* w = (Q3Header*)_parent->parentWidget();
+ int section = w->sectionAt(pos.x());
+ if (section == -1)
+ return;
+ QRect r(w->sectionPos(section), 0, w->sectionSize(section),
+ w->height());
+ QString p;
+ switch (section) {
+ case DEVCOL_NO: p = Q3Header::tr("Port Number"); break;
+ case DEVCOL_NAME: p = Q3Header::tr("Name of the midi device associated with"
+ " this port number"); break;
+ case DEVCOL_IN: p = Q3Header::tr("Midi clock input detected"); break;
+ case DEVCOL_TICKIN: p = Q3Header::tr("Midi tick input detected"); break;
+ case DEVCOL_MRTIN: p = Q3Header::tr("Midi real time input detected"); break;
+ case DEVCOL_MMCIN: p = Q3Header::tr("MMC input detected"); break;
+ case DEVCOL_MTCIN: p = Q3Header::tr("MTC input detected"); break;
+ case DEVCOL_MTCTYPE: p = Q3Header::tr("Detected SMPTE format"); break;
+ case DEVCOL_RID: p = Q3Header::tr("Receive id number. 127 = Global. Double click to edit."); break;
+ case DEVCOL_RCLK: p = Q3Header::tr("Accept midi clock input"); break;
+ case DEVCOL_RMRT: p = Q3Header::tr("Accept midi real time input"); break;
+ case DEVCOL_RMMC: p = Q3Header::tr("Accept MMC input"); break;
+ case DEVCOL_RMTC: p = Q3Header::tr("Accept MTC input"); break;
+ case DEVCOL_RREWSTART: p = Q3Header::tr("Receive start rewinds before playing"); break;
+ case DEVCOL_TID: p = Q3Header::tr("Transmit id number. 127 = Global. Double click to edit."); break;
+ case DEVCOL_TCLK: p = Q3Header::tr("Send midi clock output"); break;
+ case DEVCOL_TMRT: p = Q3Header::tr("Send midi realtime output"); break;
+ case DEVCOL_TMMC: p = Q3Header::tr("Send MMC output"); break;
+ case DEVCOL_TMTC: p = Q3Header::tr("Send MTC output"); break;
+ //case DEVCOL_TREWSTART: p = QHeader::tr("Send continue instead of start"); break;
+ default: return;
+ }
+ //tip(r, p); ddskrjo
+ }
+
+//---------------------------------------------------------
+// MSyncWhatsThis::text
+//---------------------------------------------------------
+
+QString MSyncWhatsThis::text(const QPoint& pos)
+{
+ int n = header->cellAt(pos.x());
+ if (n == -1)
+ return QString::null;
+ switch (header->mapToLogical(n)) {
+ case DEVCOL_NO:
+ return Q3Header::tr("Port Number");
+ case DEVCOL_NAME:
+ return Q3Header::tr("Name of the midi device associated with this port number");
+ case DEVCOL_IN:
+ return Q3Header::tr("Midi clock input detected.\n"
+ "Current port actually used is red.\nClick to force a port to be used.");
+ case DEVCOL_TICKIN:
+ return Q3Header::tr("Midi tick input detected");
+ case DEVCOL_MRTIN:
+ return Q3Header::tr("Midi realtime input detected, including\n start/stop/continue, and song position.");
+ case DEVCOL_MMCIN:
+ return Q3Header::tr("MMC input detected, including stop/play/deferred play, and locate.");
+ //"Current port actually used is red. Click to force a port to be current.");
+ case DEVCOL_MTCIN:
+ return Q3Header::tr("MTC input detected, including forward quarter-frame sync and full-frame locate.\n"
+ "Current port actually used is red. Click to force a port to be current.");
+ case DEVCOL_MTCTYPE:
+ return Q3Header::tr("Detected SMPTE format: 24fps, 25fps, 30fps drop frame, or 30fps non-drop\n"
+ "Detects format of MTC quarter and full frame, and MMC locate.");
+ case DEVCOL_RID:
+ return Q3Header::tr("Receive id number. 127 = global receive all, even if not global.");
+ case DEVCOL_RCLK:
+ return Q3Header::tr("Accept midi clock input. Only one input is used for clock.\n"
+ "Auto-acquire: If two or more port realtime inputs are enabled,\n"
+ " the first clock detected is used, until clock is lost,\n"
+ " then another can take over. Best if each turns off its clock\n"
+ " at stop, so MusE can re-acquire the clock from another port.\n"
+ "Click on detect indicator to force another.");
+ case DEVCOL_RMRT:
+ return Q3Header::tr("Accept midi realtime input, including\n start/stop/continue, and song position.\n"
+ "Non-clock events (start,stop etc) are\n accepted by ALL enabled ports.\n"
+ "This means you may have several master\n devices connected, and muse will accept\n"
+ " input from them.");
+ case DEVCOL_RMMC:
+ return Q3Header::tr("Accept MMC input, including stop/play/deferred play, and locate.");
+ case DEVCOL_RMTC:
+ return Q3Header::tr("Accept MTC input, including forward quarter-frame sync and full-frame locate.\n"
+ "See 'rc' column for more help.");
+ case DEVCOL_RREWSTART:
+ return Q3Header::tr("When start is received, rewind before playing.\n"
+ "Note: It may be impossible to rewind fast\n"
+ " enough to synchronize with the external device.");
+ case DEVCOL_TID:
+ return Q3Header::tr("Transmit id number. 127 = global transmit to all.");
+ case DEVCOL_TCLK:
+ return Q3Header::tr("Send midi clock output. If 'Slave to External Sync' is chosen,\n"
+ " muse can re-transmit clock to any other chosen ports.");
+ case DEVCOL_TMRT:
+ return Q3Header::tr("Send midi realtime output, including start/stop/continue,\n"
+ " and song position. If 'Slave to external sync' is chosen,\n"
+ " muse can re-transmit midi realtime input messages to any\n"
+ " other chosen ports. This means you may have several slave\n"
+ " devices connected, and muse can re-send realtime messages\n"
+ " to any or all of them.");
+ case DEVCOL_TMMC:
+ return Q3Header::tr("Send MMC output");
+ case DEVCOL_TMTC:
+ return Q3Header::tr("Send MTC output");
+ //case DEVCOL_TREWSTART:
+ // return QHeader::tr("When transport is starting, send continue instead of start.\n");
+ default:
+ break;
+ }
+ return QString::null;
+}
+
+/*
+//---------------------------------------------------------
+// MidiSyncLViewItem
+// setDevice
+//---------------------------------------------------------
+
+void MidiSyncLViewItem::setDevice(MidiDevice* d)
+{
+ _device = d;
+ if(_device)
+ _syncInfo.copyParams(_device->syncInfo());
+}
+*/
+
+//---------------------------------------------------------
+// MidiSyncLViewItem
+// setPort
+//---------------------------------------------------------
+
+void MidiSyncLViewItem::setPort(int port)
+{
+ _port = port;
+ if(_port < 0 || port > MIDI_PORTS)
+ return;
+
+ //_syncInfo.copyParams(midiPorts[port].syncInfo());
+ copyFromSyncInfo(midiPorts[port].syncInfo());
+}
+
+//---------------------------------------------------------
+// MidiSyncLViewItem
+// copyFromSyncInfo
+//---------------------------------------------------------
+
+void MidiSyncLViewItem::copyFromSyncInfo(const MidiSyncInfo &sp)
+{
+ _idOut = sp.idOut();
+ _idIn = sp.idIn();
+ _sendMC = sp.MCOut();
+ _sendMRT = sp.MRTOut();
+ _sendMMC = sp.MMCOut();
+ _sendMTC = sp.MTCOut();
+ _recMC = sp.MCIn();
+ _recMRT = sp.MRTIn();
+ _recMMC = sp.MMCIn();
+ _recMTC = sp.MTCIn();
+ _recRewOnStart = sp.recRewOnStart();
+ //_sendContNotStart = sp.sendContNotStart();
+}
+
+//---------------------------------------------------------
+// MidiSyncLViewItem
+// copyToSyncInfo
+//---------------------------------------------------------
+
+void MidiSyncLViewItem::copyToSyncInfo(MidiSyncInfo &sp)
+{
+ sp.setIdOut(_idOut);
+ sp.setIdIn(_idIn);
+ sp.setMCOut(_sendMC);
+ sp.setMRTOut(_sendMRT);
+ sp.setMMCOut(_sendMMC);
+ sp.setMTCOut(_sendMTC);
+ sp.setMCIn(_recMC);
+ sp.setMRTIn(_recMRT);
+ sp.setMMCIn(_recMMC);
+ sp.setMTCIn(_recMTC);
+ sp.setRecRewOnStart(_recRewOnStart);
+ //sp.setSendContNotStart(_sendContNotStart);
+}
+
+//---------------------------------------------------------
+// MidiSyncConfig
+// Midi Sync Config
+//---------------------------------------------------------
+
+MidiSyncConfig::MidiSyncConfig(QWidget* parent, const char* name)
+ : MidiSyncConfigBase(parent, name)
+{
+ _synctooltip = 0;
+
+ _dirty = false;
+ applyButton->setEnabled(false);
+
+ //inHeartBeat = true;
+
+ //for(int i = 0; i < MIDI_PORTS; ++i)
+ // tmpMidiSyncPorts[i] = midiSyncPorts[i];
+
+ //bool ext = extSyncFlag.value();
+ //syncMode->setButton(int(ext));
+ //syncChanged(ext);
+// extSyncCheckbox->setChecked(extSyncFlag.value());
+
+// dstDevId->setValue(txDeviceId);
+// srcDevId->setValue(rxDeviceId);
+// srcSyncPort->setValue(rxSyncPort + 1);
+// dstSyncPort->setValue(txSyncPort + 1);
+
+// mtcSync->setChecked(genMTCSync);
+// mcSync->setChecked(genMCSync);
+// midiMachineControl->setChecked(genMMC);
+
+// acceptMTCCheckbox->setChecked(acceptMTC);
+ //acceptMTCCheckbox->setChecked(false);
+// acceptMCCheckbox->setChecked(acceptMC);
+// acceptMMCCheckbox->setChecked(acceptMMC);
+
+// mtcSyncType->setCurrentItem(mtcType);
+
+// mtcOffH->setValue(mtcOffset.h());
+// mtcOffM->setValue(mtcOffset.m());
+// mtcOffS->setValue(mtcOffset.s());
+// mtcOffF->setValue(mtcOffset.f());
+// mtcOffSf->setValue(mtcOffset.sf());
+
+
+
+
+ devicesListView->setSorting(-1);
+ devicesListView->setAllColumnsShowFocus(true);
+ devicesListView->addColumn(tr("Port"));
+ devicesListView->addColumn(tr("Device Name"), 120);
+ devicesListView->addColumn(tr("c"));
+ devicesListView->addColumn(tr("k"));
+ devicesListView->addColumn(tr("r"));
+ devicesListView->addColumn(tr("m"));
+ devicesListView->addColumn(tr("t"));
+ devicesListView->addColumn(tr("type"));
+ devicesListView->addColumn(tr("rid")); // Receive
+ devicesListView->addColumn(tr("rc")); // Receive
+ devicesListView->addColumn(tr("rr")); // Receive
+ devicesListView->addColumn(tr("rm")); // Receive
+ devicesListView->addColumn(tr("rt")); // Receive
+ devicesListView->addColumn(tr("rw")); // Receive
+ devicesListView->addColumn(tr("tid")); // Transmit
+ devicesListView->addColumn(tr("tc")); // Transmit
+ devicesListView->addColumn(tr("tr")); // Transmit
+ devicesListView->addColumn(tr("tm")); // Transmit
+ devicesListView->addColumn(tr("tt")); // Transmit
+ //devicesListView->addColumn(tr("trs")); // Transmit
+ devicesListView->setFocusPolicy(Qt::NoFocus);
+
+ devicesListView->setColumnAlignment(DEVCOL_NO, Qt::AlignHCenter);
+ devicesListView->setColumnAlignment(DEVCOL_IN, Qt::AlignCenter);
+ devicesListView->setColumnAlignment(DEVCOL_TICKIN, Qt::AlignCenter);
+ devicesListView->setColumnAlignment(DEVCOL_MRTIN, Qt::AlignCenter);
+ devicesListView->setColumnAlignment(DEVCOL_MMCIN, Qt::AlignCenter);
+ devicesListView->setColumnAlignment(DEVCOL_MTCIN, Qt::AlignCenter);
+ //devicesListView->setColumnAlignment(DEVCOL_MTCTYPE, AlignCenter);
+ //devicesListView->setColumnAlignment(DEVCOL_RID, AlignCenter);
+ devicesListView->setColumnAlignment(DEVCOL_RCLK, Qt::AlignCenter);
+ devicesListView->setColumnAlignment(DEVCOL_RMRT, Qt::AlignCenter);
+ devicesListView->setColumnAlignment(DEVCOL_RMMC, Qt::AlignCenter);
+ devicesListView->setColumnAlignment(DEVCOL_RMTC, Qt::AlignCenter);
+ devicesListView->setColumnAlignment(DEVCOL_RREWSTART, Qt::AlignCenter);
+ //devicesListView->setColumnAlignment(DEVCOL_TID, AlignCenter);
+ devicesListView->setColumnAlignment(DEVCOL_TCLK, Qt::AlignCenter);
+ devicesListView->setColumnAlignment(DEVCOL_TMRT, Qt::AlignCenter);
+ devicesListView->setColumnAlignment(DEVCOL_TMMC, Qt::AlignCenter);
+ devicesListView->setColumnAlignment(DEVCOL_TMTC, Qt::AlignCenter);
+ //devicesListView->setColumnAlignment(DEVCOL_TREWSTART, AlignCenter);
+ devicesListView->header()->setResizeEnabled(false, DEVCOL_NO);
+ devicesListView->header()->setResizeEnabled(false, DEVCOL_IN);
+ devicesListView->header()->setResizeEnabled(false, DEVCOL_TICKIN);
+ devicesListView->header()->setResizeEnabled(false, DEVCOL_MRTIN);
+ devicesListView->header()->setResizeEnabled(false, DEVCOL_MMCIN);
+ devicesListView->header()->setResizeEnabled(false, DEVCOL_MTCIN);
+ devicesListView->header()->setResizeEnabled(false, DEVCOL_RCLK);
+ devicesListView->header()->setResizeEnabled(false, DEVCOL_RMRT);
+ devicesListView->header()->setResizeEnabled(false, DEVCOL_RMMC);
+ devicesListView->header()->setResizeEnabled(false, DEVCOL_RMTC);
+ devicesListView->header()->setResizeEnabled(false, DEVCOL_RMTC);
+ devicesListView->header()->setResizeEnabled(false, DEVCOL_RREWSTART);
+ devicesListView->header()->setResizeEnabled(false, DEVCOL_TCLK);
+ devicesListView->header()->setResizeEnabled(false, DEVCOL_TMRT);
+ devicesListView->header()->setResizeEnabled(false, DEVCOL_TMMC);
+ //devicesListView->header()->setResizeEnabled(false, DEVCOL_TREWSTART);
+ //devicesListView->setResizeMode(QListView::LastColumn);
+ devicesListView->setResizeMode(Q3ListView::NoColumn);
+
+
+ new MSyncWhatsThis(devicesListView, devicesListView->header());
+ _synctooltip = new MSyncHeaderTip(devicesListView->header());
+ //MSyncHeaderTip::add(devicesListView->header(), QString("Midi sync ports"));
+
+// updateSyncInfoLV();
+
+ songChanged(-1);
+
+ //connect(devicesListView, SIGNAL(pressed(QListViewItem*,const QPoint&,int)),
+ // this, SLOT(dlvClicked(QListViewItem*,const QPoint&,int)));
+ connect(devicesListView, SIGNAL(mouseButtonClicked(int, Q3ListViewItem*,const QPoint&, int)),
+ this, SLOT(dlvClicked(int, Q3ListViewItem*,const QPoint&, int)));
+ connect(devicesListView, SIGNAL(doubleClicked(Q3ListViewItem*,const QPoint&,int)),
+ this, SLOT(dlvDoubleClicked(Q3ListViewItem*,const QPoint&,int)));
+ //connect(devicesListView, SIGNAL(itemRenamed(QListViewItem*, int, const QString&)),
+ // this, SLOT(renameOk(QListViewItem*, int, const QString&)));
+
+ connect(okButton, SIGNAL(clicked()), SLOT(ok()));
+ connect(applyButton, SIGNAL(clicked()), SLOT(apply()));
+ connect(cancelButton, SIGNAL(clicked()), SLOT(cancel()));
+
+ //connect(syncMode, SIGNAL(clicked(int)), SLOT(syncChanged(int)));
+ connect(extSyncCheckbox, SIGNAL(clicked()), SLOT(syncChanged()));
+ connect(mtcSyncType, SIGNAL(activated(int)), SLOT(syncChanged()));
+ connect(useJackTransportCheckbox, SIGNAL(clicked()), SLOT(syncChanged()));
+ connect(jackTransportMasterCheckbox, SIGNAL(clicked()), SLOT(syncChanged()));
+ connect(&extSyncFlag, SIGNAL(valueChanged(bool)), SLOT(extSyncChanged(bool)));
+ connect(syncDelaySpinBox, SIGNAL(valueChanged(int)), SLOT(syncChanged()));
+
+ // Done in show().
+ //connect(song, SIGNAL(songChanged(int)), SLOT(songChanged(int)));
+ //connect(heartBeatTimer, SIGNAL(timeout()), SLOT(heartBeat()));
+
+ //inHeartBeat = false;
+}
+
+MidiSyncConfig::~MidiSyncConfig()
+{
+ delete _synctooltip;
+}
+
+//---------------------------------------------------------
+// songChanged
+//---------------------------------------------------------
+
+void MidiSyncConfig::songChanged(int flags)
+{
+ // Is it simply a midi controller value adjustment? Forget it. Otherwise, it's mainly midi port/device changes we want.
+ if(flags == SC_MIDI_CONTROLLER ||
+ !(flags & (SC_CONFIG | SC_MASTER | SC_TEMPO | SC_SIG | SC_TRACK_INSERTED | SC_TRACK_REMOVED | SC_TRACK_MODIFIED |
+ SC_PART_INSERTED | SC_PART_REMOVED | SC_PART_MODIFIED | SC_EVENT_INSERTED | SC_EVENT_REMOVED | SC_EVENT_MODIFIED |
+ SC_MIDI_CONTROLLER_ADD)))
+ return;
+
+ // Reset dirty flag, since we're loading new values.
+ _dirty = false;
+ if(applyButton->isEnabled())
+ applyButton->setEnabled(false);
+
+ //for(int i = 0; i < MIDI_PORTS; ++i)
+ // tmpMidiSyncPorts[i] = midiSyncPorts[i];
+
+ extSyncCheckbox->blockSignals(true);
+ useJackTransportCheckbox->blockSignals(true);
+ jackTransportMasterCheckbox->blockSignals(true);
+ syncDelaySpinBox->blockSignals(true);
+ extSyncCheckbox->setChecked(extSyncFlag.value());
+ useJackTransportCheckbox->setChecked(useJackTransport.value());
+ jackTransportMasterCheckbox->setChecked(jackTransportMaster);
+ //jackTransportMasterCheckbox->setEnabled(useJackTransport);
+ syncDelaySpinBox->setValue(syncSendFirstClockDelay);
+ syncDelaySpinBox->blockSignals(false);
+ jackTransportMasterCheckbox->blockSignals(false);
+ useJackTransportCheckbox->blockSignals(false);
+ extSyncCheckbox->blockSignals(false);
+
+ mtcSyncType->setCurrentItem(mtcType);
+
+ mtcOffH->blockSignals(true);
+ mtcOffM->blockSignals(true);
+ mtcOffS->blockSignals(true);
+ mtcOffF->blockSignals(true);
+ mtcOffSf->blockSignals(true);
+ mtcOffH->setValue(mtcOffset.h());
+ mtcOffM->setValue(mtcOffset.m());
+ mtcOffS->setValue(mtcOffset.s());
+ mtcOffF->setValue(mtcOffset.f());
+ mtcOffSf->setValue(mtcOffset.sf());
+ mtcOffH->blockSignals(false);
+ mtcOffM->blockSignals(false);
+ mtcOffS->blockSignals(false);
+ mtcOffF->blockSignals(false);
+ mtcOffSf->blockSignals(false);
+
+ updateSyncInfoLV();
+
+ //selectionChanged();
+}
+
+//---------------------------------------------------------
+// heartBeat
+//---------------------------------------------------------
+
+void MidiSyncConfig::heartBeat()
+{
+ //inHeartBeat = true;
+
+ MidiSyncLViewItem* lvi = (MidiSyncLViewItem*)devicesListView->firstChild();
+ while(lvi)
+ {
+ int port = lvi->port();
+ if(port >= 0 && port < MIDI_PORTS)
+ {
+ bool sdet = midiPorts[port].syncInfo().MCSyncDetect();
+ if(sdet)
+ {
+ if(port == curMidiSyncInPort)
+ {
+ if(!lvi->_curDet)
+ {
+ // Added by Tim. p3.3.6
+ //printf("MidiSyncConfig::heartBeat setting current red icon\n");
+
+ lvi->_curDet = true;
+ lvi->_inDet = false;
+ lvi->setPixmap(DEVCOL_IN, *record1_Icon);
+ }
+ }
+ else
+ if(!lvi->_inDet)
+ {
+ // Added by Tim. p3.3.6
+ //printf("MidiSyncConfig::heartBeat setting non-current green icon\n");
+
+ lvi->_inDet = true;
+ lvi->_curDet = false;
+ lvi->setPixmap(DEVCOL_IN, *dotIcon);
+ }
+ }
+ else
+ {
+ if(lvi->_curDet || lvi->_inDet)
+ {
+ // Added by Tim. p3.3.6
+ //printf("MidiSyncConfig::heartBeat setting off icon\n");
+
+ lvi->_curDet = false;
+ lvi->_inDet = false;
+ lvi->setPixmap(DEVCOL_IN, *dothIcon);
+ }
+ }
+
+ sdet = midiPorts[port].syncInfo().tickDetect();
+ if(sdet)
+ {
+ if(!lvi->_tickDet)
+ {
+ // Added by Tim. p3.3.6
+ //printf("MidiSyncConfig::heartBeat setting tick on icon\n");
+
+ lvi->_tickDet = true;
+ lvi->setPixmap(DEVCOL_TICKIN, *dotIcon);
+ }
+ }
+ else
+ {
+ if(lvi->_tickDet)
+ {
+ // Added by Tim. p3.3.6
+ //printf("MidiSyncConfig::heartBeat setting tick off icon\n");
+
+ lvi->_tickDet = false;
+ lvi->setPixmap(DEVCOL_TICKIN, *dothIcon);
+ }
+ }
+
+ sdet = midiPorts[port].syncInfo().MRTDetect();
+ if(sdet)
+ {
+ if(!lvi->_MRTDet)
+ {
+ // Added by Tim. p3.3.6
+ //printf("MidiSyncConfig::heartBeat setting MRT on icon\n");
+
+ lvi->_MRTDet = true;
+ lvi->setPixmap(DEVCOL_MRTIN, *dotIcon);
+ }
+ }
+ else
+ {
+ if(lvi->_MRTDet)
+ {
+ // Added by Tim. p3.3.6
+ //printf("MidiSyncConfig::heartBeat setting MRT off icon\n");
+
+ lvi->_MRTDet = false;
+ lvi->setPixmap(DEVCOL_MRTIN, *dothIcon);
+ }
+ }
+
+ int type = midiPorts[port].syncInfo().recMTCtype();
+ sdet = midiPorts[port].syncInfo().MMCDetect();
+ bool mtcdet = midiPorts[port].syncInfo().MTCDetect();
+ if(sdet)
+ {
+ if(!lvi->_MMCDet)
+ {
+ // Added by Tim. p3.3.6
+ //printf("MidiSyncConfig::heartBeat setting MMC on icon\n");
+
+ lvi->_MMCDet = true;
+ lvi->setPixmap(DEVCOL_MMCIN, *dotIcon);
+ }
+ // MMC locate command can contain SMPTE format type. Update now.
+ if(!mtcdet && lvi->_recMTCtype != type)
+ {
+ lvi->_recMTCtype = type;
+ switch(type)
+ {
+ case 0:
+ lvi->setText(DEVCOL_MTCTYPE, "24");
+ break;
+ case 1:
+ lvi->setText(DEVCOL_MTCTYPE, "25");
+ break;
+ case 2:
+ lvi->setText(DEVCOL_MTCTYPE, "30D");
+ break;
+ case 3:
+ lvi->setText(DEVCOL_MTCTYPE, "30N");
+ break;
+ default:
+ lvi->setText(DEVCOL_MTCTYPE, "??");
+ break;
+ }
+ }
+ }
+ else
+ {
+ if(lvi->_MMCDet)
+ {
+ // Added by Tim. p3.3.6
+ //printf("MidiSyncConfig::heartBeat setting MMC off icon\n");
+
+ lvi->_MMCDet = false;
+ lvi->setPixmap(DEVCOL_MMCIN, *dothIcon);
+ }
+ }
+
+ if(mtcdet)
+ {
+ if(port == curMidiSyncInPort)
+ {
+ if(!lvi->_curMTCDet)
+ {
+ // Added by Tim. p3.3.6
+ //printf("MidiSyncConfig::heartBeat setting current red icon\n");
+
+ lvi->_curMTCDet = true;
+ lvi->_MTCDet = false;
+ lvi->setPixmap(DEVCOL_MTCIN, *record1_Icon);
+ }
+ }
+ else
+ if(!lvi->_MTCDet)
+ {
+ // Added by Tim. p3.3.6
+ //printf("MidiSyncConfig::heartBeat setting MTC on icon\n");
+
+ lvi->_MTCDet = true;
+ lvi->_curMTCDet = false;
+ lvi->setPixmap(DEVCOL_MTCIN, *dotIcon);
+ }
+
+ if(lvi->_recMTCtype != type)
+ {
+ lvi->_recMTCtype = type;
+ switch(type)
+ {
+ case 0:
+ lvi->setText(DEVCOL_MTCTYPE, "24");
+ break;
+ case 1:
+ lvi->setText(DEVCOL_MTCTYPE, "25");
+ break;
+ case 2:
+ lvi->setText(DEVCOL_MTCTYPE, "30D");
+ break;
+ case 3:
+ lvi->setText(DEVCOL_MTCTYPE, "30N");
+ break;
+ default:
+ lvi->setText(DEVCOL_MTCTYPE, "??");
+ break;
+ }
+ }
+ }
+ else
+ {
+ if(lvi->_curMTCDet || lvi->_MTCDet)
+ {
+ // Added by Tim. p3.3.6
+ //printf("MidiSyncConfig::heartBeat setting MTC off icon\n");
+
+ lvi->_MTCDet = false;
+ lvi->_curMTCDet = false;
+ lvi->setPixmap(DEVCOL_MTCIN, *dothIcon);
+ }
+ }
+ }
+
+ //MidiDevice* dev = lvi->device();
+ //bool sdet = dev->syncInfo().MCSyncDetect();
+ //if(lvi->pixmap(DEVCOL_IN) != (sdet ? *dotIcon : *dothIcon))
+ // lvi->setPixmap(DEVCOL_IN, sdet ? *dotIcon : *dothIcon);
+
+ lvi = (MidiSyncLViewItem*)lvi->nextSibling();
+ }
+
+ //inHeartBeat = false;
+}
+
+//---------------------------------------------------------
+// syncChanged
+// val = 1 - Master Mode
+// 0 - Slave Mode
+//---------------------------------------------------------
+
+void MidiSyncConfig::syncChanged()
+ {
+ setDirty();
+
+ //jackTransportMasterCheckbox->setEnabled(useJackTransport);
+
+ //acceptMTCCheckbox->setEnabled(val);
+// acceptMTCCheckbox->setEnabled(false);
+// acceptMCCheckbox->setEnabled(val);
+// acceptMMCCheckbox->setEnabled(val);
+ }
+
+//---------------------------------------------------------
+// extSyncChanged
+//---------------------------------------------------------
+
+void MidiSyncConfig::extSyncChanged(bool v)
+ {
+ extSyncCheckbox->blockSignals(true);
+ extSyncCheckbox->setChecked(v);
+// if(v)
+// song->setMasterFlag(false);
+ extSyncCheckbox->blockSignals(false);
+ }
+
+//---------------------------------------------------------
+// ok Pressed
+//---------------------------------------------------------
+
+void MidiSyncConfig::ok()
+ {
+ apply();
+ cancel();
+ }
+
+//---------------------------------------------------------
+// cancel Pressed
+//---------------------------------------------------------
+
+void MidiSyncConfig::cancel()
+ {
+ _dirty = false;
+ if(applyButton->isEnabled())
+ applyButton->setEnabled(false);
+
+ close(false);
+ }
+
+//---------------------------------------------------------
+// show
+//---------------------------------------------------------
+
+void MidiSyncConfig::show()
+{
+ songChanged(-1);
+ connect(song, SIGNAL(songChanged(int)), SLOT(songChanged(int)));
+ connect(heartBeatTimer, SIGNAL(timeout()), SLOT(heartBeat()));
+ QDialog::show();
+}
+
+//---------------------------------------------------------
+// closeEvent
+//---------------------------------------------------------
+
+void MidiSyncConfig::closeEvent(QCloseEvent* e)
+ {
+ if(_dirty)
+ {
+ int n = QMessageBox::warning(this, tr("MusE"),
+ tr("Settings have changed\n"
+ "Apply sync settings?"),
+ tr("&Apply"), tr("&No"), tr("&Abort"), 0, 2);
+
+ if(n == 2)
+ {
+ e->ignore();
+ return;
+ }
+
+ if(n == 0)
+ apply();
+ }
+
+ //emit deleted((unsigned long)this);
+
+ disconnect(heartBeatTimer, SIGNAL(timeout()), this, SLOT(heartBeat()));
+ disconnect(song, SIGNAL(songChanged(int)), this, SLOT(songChanged(int)));
+
+ e->accept();
+ }
+
+//---------------------------------------------------------
+// apply Pressed
+//---------------------------------------------------------
+
+void MidiSyncConfig::apply()
+{
+// txDeviceId = dstDevId->value();
+// rxDeviceId = srcDevId->value();
+// rxSyncPort = srcSyncPort->value() - 1;
+// txSyncPort = dstSyncPort->value() - 1;
+
+// genMTCSync = mtcSync->isChecked();
+// genMCSync = mcSync->isChecked();
+// genMMC = midiMachineControl->isChecked();
+
+ syncSendFirstClockDelay = syncDelaySpinBox->value();
+
+ mtcType = mtcSyncType->currentItem();
+ //extSyncFlag.setValue(syncMode->id(syncMode->selected()));
+ //extSyncFlag.blockSignals(true);
+ extSyncFlag.setValue(extSyncCheckbox->isChecked());
+// if(extSyncFlag.value())
+// song->setMasterFlag(false);
+ //extSyncFlag.blockSignals(false);
+ useJackTransport.setValue(useJackTransportCheckbox->isChecked());
+// if(useJackTransport)
+ jackTransportMaster = jackTransportMasterCheckbox->isChecked();
+// else
+// jackTransportMaster = false;
+// jackTransportMasterCheckbox->setEnabled(useJackTransport);
+ if(audioDevice)
+ audioDevice->setMaster(jackTransportMaster);
+
+ 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();
+
+ MidiSyncLViewItem* lvi = (MidiSyncLViewItem*)devicesListView->firstChild();
+ while(lvi)
+ {
+ //MidiDevice* dev = lvi->device();
+ // Does the device really exist?
+ //if(midiDevices.find(dev) != midiDevices.end())
+ // dev->syncInfo().copyParams(lvi->syncInfo());
+ int port = lvi->port();
+ if(port >= 0 && port < MIDI_PORTS)
+ //midiPorts[port].syncInfo().copyParams(lvi->syncInfo());
+ lvi->copyToSyncInfo(midiPorts[port].syncInfo());
+
+ lvi = (MidiSyncLViewItem*)lvi->nextSibling();
+ }
+
+ //muse->changeConfig(true); // save settings
+
+ _dirty = false;
+ if(applyButton->isEnabled())
+ applyButton->setEnabled(false);
+
+ // Do not call this. Causes freeze sometimes. Only will be needed if extra pollfds are used by midi seq thread.
+ //midiSeq->msgUpdatePollFd();
+}
+
+//---------------------------------------------------------
+// updateSyncInfoLV
+//---------------------------------------------------------
+
+void MidiSyncConfig::updateSyncInfoLV()
+ {
+ devicesListView->clear();
+ for(int i = MIDI_PORTS-1; i >= 0; --i)
+ {
+ MidiPort* port = &midiPorts[i];
+ MidiDevice* dev = port->device();
+ // p3.3.31
+ // Don't show if it is a synthesizer device.
+ // Hmm, some synths might support transport commands or even sync?
+ // If anything, the DSSI or VST synths just might...
+ // TODO: Must test to see if it screws any of them up, especially clock out.
+ // Also, if we do this, we must prevent such messages from reaching
+ // those ports at several other places in the code.
+ //if(dev && dev->isSynti())
+ // continue;
+
+ QString s;
+ s.setNum(i+1);
+ MidiSyncLViewItem* lvi = new MidiSyncLViewItem(devicesListView);
+ lvi->setPort(i); // setPort will copy parameters.
+ //MidiSyncInfo& si = lvi->syncInfo();
+ //si.copyParams(port->syncInfo());
+ //lvi.copyFromSyncInfo(port->syncInfo());
+ MidiSyncInfo& portsi = port->syncInfo();
+
+ lvi->setText(DEVCOL_NO, s);
+
+ if (dev)
+ lvi->setText(DEVCOL_NAME, dev->name());
+ else
+ lvi->setText(DEVCOL_NAME, tr("<none>"));
+
+ if(portsi.MCSyncDetect())
+ {
+ if(i == curMidiSyncInPort)
+ {
+ lvi->_curDet = true;
+ lvi->_inDet = false;
+ lvi->setPixmap(DEVCOL_IN, *record1_Icon);
+ }
+ else
+ {
+ lvi->_curDet = false;
+ lvi->_inDet = true;
+ lvi->setPixmap(DEVCOL_IN, *dotIcon);
+ }
+ }
+ else
+ {
+ lvi->_curDet = false;
+ lvi->_inDet = false;
+ lvi->setPixmap(DEVCOL_IN, *dothIcon);
+ }
+
+ if(portsi.tickDetect())
+ {
+ lvi->_tickDet = true;
+ lvi->setPixmap(DEVCOL_TICKIN, *dotIcon);
+ }
+ else
+ {
+ lvi->_tickDet = false;
+ lvi->setPixmap(DEVCOL_TICKIN, *dothIcon);
+ }
+
+ if(portsi.MRTDetect())
+ {
+ lvi->_MRTDet = true;
+ lvi->setPixmap(DEVCOL_MRTIN, *dotIcon);
+ }
+ else
+ {
+ lvi->_MRTDet = false;
+ lvi->setPixmap(DEVCOL_MRTIN, *dothIcon);
+ }
+
+ if(portsi.MMCDetect())
+ {
+ lvi->_MMCDet = true;
+ lvi->setPixmap(DEVCOL_MMCIN, *dotIcon);
+ // MMC locate command can have SMPTE format bits...
+ if(lvi->_recMTCtype != portsi.recMTCtype())
+ {
+ switch(portsi.recMTCtype())
+ {
+ case 0:
+ lvi->setText(DEVCOL_MTCTYPE, "24");
+ break;
+ case 1:
+ lvi->setText(DEVCOL_MTCTYPE, "25");
+ break;
+ case 2:
+ lvi->setText(DEVCOL_MTCTYPE, "30D");
+ break;
+ case 3:
+ lvi->setText(DEVCOL_MTCTYPE, "30N");
+ break;
+ default:
+ lvi->setText(DEVCOL_MTCTYPE, "??");
+ break;
+ }
+ }
+ }
+ else
+ {
+ lvi->_MMCDet = false;
+ lvi->setPixmap(DEVCOL_MMCIN, *dothIcon);
+ }
+
+ if(portsi.MTCDetect())
+ {
+ if(i == curMidiSyncInPort)
+ {
+ lvi->_curMTCDet = true;
+ lvi->_MTCDet = false;
+ lvi->setPixmap(DEVCOL_MTCIN, *record1_Icon);
+ }
+ else
+ {
+ lvi->_curMTCDet = false;
+ lvi->_MTCDet = true;
+ lvi->setPixmap(DEVCOL_MTCIN, *dotIcon);
+ }
+
+ if(lvi->_recMTCtype != portsi.recMTCtype())
+ {
+ switch(portsi.recMTCtype())
+ {
+ case 0:
+ lvi->setText(DEVCOL_MTCTYPE, "24");
+ break;
+ case 1:
+ lvi->setText(DEVCOL_MTCTYPE, "25");
+ break;
+ case 2:
+ lvi->setText(DEVCOL_MTCTYPE, "30D");
+ break;
+ case 3:
+ lvi->setText(DEVCOL_MTCTYPE, "30N");
+ break;
+ default:
+ lvi->setText(DEVCOL_MTCTYPE, "??");
+ break;
+ }
+ }
+ }
+ else
+ {
+ lvi->_curMTCDet = false;
+ lvi->_MTCDet = false;
+ lvi->setPixmap(DEVCOL_MTCIN, *dothIcon);
+ //lvi->setText(DEVCOL_MTCTYPE, "--");
+ }
+
+ //lvi->setText(DEVCOL_RID, QString().setNum(si.idIn()) );
+ //lvi->setRenameEnabled(DEVCOL_RID, true);
+ //lvi->setPixmap(DEVCOL_RCLK, si.MCIn() ? *dotIcon : *dothIcon);
+ //lvi->setPixmap(DEVCOL_RMMC, si.MMCIn() ? *dotIcon : *dothIcon);
+ //lvi->setPixmap(DEVCOL_RMTC, si.MTCIn() ? *dotIcon : *dothIcon);
+ lvi->setText(DEVCOL_RID, QString().setNum(lvi->_idIn) );
+ lvi->setPixmap(DEVCOL_RCLK, lvi->_recMC ? *dotIcon : *dothIcon);
+ lvi->setPixmap(DEVCOL_RMRT, lvi->_recMRT ? *dotIcon : *dothIcon);
+ lvi->setPixmap(DEVCOL_RMMC, lvi->_recMMC ? *dotIcon : *dothIcon);
+ lvi->setPixmap(DEVCOL_RMTC, lvi->_recMTC ? *dotIcon : *dothIcon);
+ lvi->setPixmap(DEVCOL_RREWSTART, lvi->_recRewOnStart ? *dotIcon : *dothIcon);
+
+ //lvi->setText(DEVCOL_TID, QString().setNum(si.idOut()) );
+ //lvi->setRenameEnabled(DEVCOL_TID, true);
+ //lvi->setPixmap(DEVCOL_TCLK, si.MCOut() ? *dotIcon : *dothIcon);
+ //lvi->setPixmap(DEVCOL_TMMC, si.MMCOut() ? *dotIcon : *dothIcon);
+ //lvi->setPixmap(DEVCOL_TMTC, si.MTCOut() ? *dotIcon : *dothIcon);
+ lvi->setText(DEVCOL_TID, QString().setNum(lvi->_idOut) );
+ lvi->setPixmap(DEVCOL_TCLK, lvi->_sendMC ? *dotIcon : *dothIcon);
+ lvi->setPixmap(DEVCOL_TMRT, lvi->_sendMRT ? *dotIcon : *dothIcon);
+ lvi->setPixmap(DEVCOL_TMMC, lvi->_sendMMC ? *dotIcon : *dothIcon);
+ lvi->setPixmap(DEVCOL_TMTC, lvi->_sendMTC ? *dotIcon : *dothIcon);
+ //lvi->setPixmap(DEVCOL_TREWSTART, lvi->_sendContNotStart ? *dotIcon : *dothIcon);
+
+ devicesListView->insertItem(lvi);
+ }
+
+ /*
+ for(iMidiDevice id = midiDevices.begin(); id != midiDevices.end(); ++id)
+ {
+ MidiDevice* dev = *id;
+
+ //MidiPort* port = &midiPorts[i];
+ //MidiDevice* dev = port->device();
+ MidiSyncLViewItem* lvi = new MidiSyncLViewItem(devicesListView);
+ //lvi->setPort(i);
+ // setDevice will copy parameters.
+ lvi->setDevice(dev);
+ MidiSyncInfo& si = lvi->syncInfo();
+ //si.copyParams(dev->syncInfo());
+
+ lvi->setText(DEVCOL_NAME, dev->name());
+
+ lvi->setPixmap(DEVCOL_IN, si.MCSyncDetect() ? *dotIcon : *dothIcon);
+
+ lvi->setText(DEVCOL_RID, QString().setNum(si.idIn()) );
+ lvi->setPixmap(DEVCOL_RCLK, si.MCIn() ? *dotIcon : *dothIcon);
+ lvi->setPixmap(DEVCOL_RMMC, si.MMCIn() ? *dotIcon : *dothIcon);
+ lvi->setPixmap(DEVCOL_RMTC, si.MTCIn() ? *dotIcon : *dothIcon);
+
+ lvi->setText(DEVCOL_TID, QString().setNum(si.idOut()) );
+ lvi->setPixmap(DEVCOL_TCLK, si.MCOut() ? *dotIcon : *dothIcon);
+ lvi->setPixmap(DEVCOL_TMMC, si.MMCOut() ? *dotIcon : *dothIcon);
+ lvi->setPixmap(DEVCOL_TMTC, si.MTCOut() ? *dotIcon : *dothIcon);
+
+ devicesListView->insertItem(lvi);
+ }
+ */
+
+ }
+
+
+//---------------------------------------------------------
+// dlvClicked
+//---------------------------------------------------------
+
+//void MidiSyncConfig::dlvClicked(QListViewItem* item, const QPoint&, int col)
+void MidiSyncConfig::dlvClicked(int /*button*/, Q3ListViewItem* item, const QPoint&, int col)
+{
+ if (item == 0)
+ return;
+
+ MidiSyncLViewItem* lvi = (MidiSyncLViewItem*)item;
+ int no = lvi->port();
+ if (no < 0 || no >= MIDI_PORTS)
+ return;
+ //MidiDevice* dev = lvi->device();
+ // Does the device really exist?
+ //if(midiDevices.find(dev) == midiDevices.end())
+ // return;
+
+ //int n;
+ //MidiPort* port = &midiPorts[no];
+ //MidiDevice* dev = port->device();
+ //int rwFlags = dev ? dev->rwFlags() : 0;
+ //int openFlags = dev ? dev->openFlags() : 0;
+ //MidiSyncInfo& si = lvi->syncInfo();
+ //MidiSyncInfo& portsi = midiPorts[no].syncInfo();
+
+ switch (col)
+ {
+ case DEVCOL_NO:
+ break;
+ case DEVCOL_NAME:
+ break;
+ case DEVCOL_IN:
+ // If this is not the current midi sync in port, and sync in from this port is enabled,
+ // and sync is in fact detected on this port, allow the user to force this port to now be the
+ // current sync in port.
+ //if(no != curMidiSyncInPort && si.MCIn() && midiPorts[no].syncInfo().MCSyncDetect())
+ //if(no != curMidiSyncInPort && lvi->_recMC && midiPorts[no].syncInfo().MCSyncDetect())
+ if(no != curMidiSyncInPort)
+ {
+ if(lvi->_recMC && midiPorts[no].syncInfo().MCSyncDetect())
+ {
+ curMidiSyncInPort = no;
+ lvi->setPixmap(DEVCOL_IN, *record1_Icon);
+ }
+ if(lvi->_recMTC && midiPorts[no].syncInfo().MTCDetect())
+ {
+ curMidiSyncInPort = no;
+ lvi->setPixmap(DEVCOL_MTCIN, *record1_Icon);
+ }
+ }
+ break;
+ case DEVCOL_TICKIN:
+ break;
+ case DEVCOL_MMCIN:
+ break;
+ case DEVCOL_MTCIN:
+ // If this is not the current midi sync in port, and sync in from this port is enabled,
+ // and sync is in fact detected on this port, allow the user to force this port to now be the
+ // current sync in port.
+ //if(no != curMidiSyncInPort && si.MTCIn() && midiPorts[no].syncInfo().MTCDetect())
+ //if(no != curMidiSyncInPort && lvi->_recMTC && midiPorts[no].syncInfo().MTCDetect())
+ if(no != curMidiSyncInPort)
+ {
+ if(lvi->_recMTC && midiPorts[no].syncInfo().MTCDetect())
+ {
+ curMidiSyncInPort = no;
+ lvi->setPixmap(DEVCOL_MTCIN, *record1_Icon);
+ }
+ if(lvi->_recMC && midiPorts[no].syncInfo().MCSyncDetect())
+ {
+ curMidiSyncInPort = no;
+ lvi->setPixmap(DEVCOL_IN, *record1_Icon);
+ }
+ }
+ break;
+ case DEVCOL_MTCTYPE:
+ break;
+ case DEVCOL_RID:
+ break;
+ case DEVCOL_RCLK:
+ //si.setMCIn(si.MCIn() ? false : true);
+ //lvi->setPixmap(DEVCOL_RCLK, si.MCIn() ? *dotIcon : *dothIcon);
+ lvi->_recMC = (lvi->_recMC ? false : true);
+ lvi->setPixmap(DEVCOL_RCLK, lvi->_recMC ? *dotIcon : *dothIcon);
+ setDirty();
+ break;
+ case DEVCOL_RMRT:
+ lvi->_recMRT = (lvi->_recMRT ? false : true);
+ lvi->setPixmap(DEVCOL_RMRT, lvi->_recMRT ? *dotIcon : *dothIcon);
+ setDirty();
+ break;
+ case DEVCOL_RMMC:
+ //si.setMMCIn(si.MMCIn() ? false : true);
+ //lvi->setPixmap(DEVCOL_RMMC, si.MMCIn() ? *dotIcon : *dothIcon);
+ lvi->_recMMC = (lvi->_recMMC ? false : true);
+ lvi->setPixmap(DEVCOL_RMMC, lvi->_recMMC ? *dotIcon : *dothIcon);
+ setDirty();
+ break;
+ case DEVCOL_RMTC:
+ //si.setMTCIn(si.MTCIn() ? false : true);
+ //lvi->setPixmap(DEVCOL_RMTC, si.MTCIn() ? *dotIcon : *dothIcon);
+ lvi->_recMTC = (lvi->_recMTC ? false : true);
+ lvi->setPixmap(DEVCOL_RMTC, lvi->_recMTC ? *dotIcon : *dothIcon);
+ setDirty();
+ break;
+ case DEVCOL_RREWSTART:
+ lvi->_recRewOnStart = (lvi->_recRewOnStart ? false : true);
+ lvi->setPixmap(DEVCOL_RREWSTART, lvi->_recRewOnStart ? *dotIcon : *dothIcon);
+ setDirty();
+ break;
+ case DEVCOL_TID:
+ break;
+ case DEVCOL_TCLK:
+ //si.setMCOut(si.MCOut() ? false : true);
+ //lvi->setPixmap(DEVCOL_TCLK, si.MCOut() ? *dotIcon : *dothIcon);
+ lvi->_sendMC = (lvi->_sendMC ? false : true);
+ lvi->setPixmap(DEVCOL_TCLK, lvi->_sendMC ? *dotIcon : *dothIcon);
+ setDirty();
+ break;
+ case DEVCOL_TMRT:
+ lvi->_sendMRT = (lvi->_sendMRT ? false : true);
+ lvi->setPixmap(DEVCOL_TMRT, lvi->_sendMRT ? *dotIcon : *dothIcon);
+ setDirty();
+ break;
+ case DEVCOL_TMMC:
+ //si.setMMCOut(si.MMCOut() ? false : true);
+ //lvi->setPixmap(DEVCOL_TMMC, si.MMCOut() ? *dotIcon : *dothIcon);
+ lvi->_sendMMC = (lvi->_sendMMC ? false : true);
+ lvi->setPixmap(DEVCOL_TMMC, lvi->_sendMMC ? *dotIcon : *dothIcon);
+ setDirty();
+ break;
+ case DEVCOL_TMTC:
+ //si.setMTCOut(si.MTCOut() ? false : true);
+ //lvi->setPixmap(DEVCOL_TMTC, si.MTCOut() ? *dotIcon : *dothIcon);
+ lvi->_sendMTC = (lvi->_sendMTC ? false : true);
+ lvi->setPixmap(DEVCOL_TMTC, lvi->_sendMTC ? *dotIcon : *dothIcon);
+ setDirty();
+ break;
+ //case DEVCOL_TREWSTART:
+ // lvi->_sendContNotStart = (lvi->_sendContNotStart ? false : true);
+ // lvi->setPixmap(DEVCOL_TREWSTART, lvi->_sendContNotStart ? *dotIcon : *dothIcon);
+ // setDirty();
+ // break;
+ }
+ //songChanged(-1);
+}
+
+//---------------------------------------------------------
+// dlvDoubleClicked
+//---------------------------------------------------------
+
+void MidiSyncConfig::dlvDoubleClicked(Q3ListViewItem* item, const QPoint&, int col)
+{
+ if(!item)
+ return;
+
+ MidiSyncLViewItem* lvi = (MidiSyncLViewItem*)item;
+
+ //if(col == DEVCOL_RID)
+ // lvi->startRename(DEVCOL_RID);
+ //else
+ //if(col == DEVCOL_TID)
+ // lvi->startRename(DEVCOL_TID);
+
+ bool ok = false;
+ if(col == DEVCOL_RID)
+ {
+ //int val = lvi->syncInfo().idIn();
+ int val = lvi->_idIn;
+ int newval = QInputDialog::getInteger("Muse: Sync info" , "Enter new id number (127 = all):", val, 0, 127, 1, &ok, this);
+ if(ok)
+ {
+ //lvi->syncInfo().setIdIn(newval);
+ lvi->_idIn = newval;
+ lvi->setText(DEVCOL_RID, QString().setNum(newval));
+ }
+ }
+ else
+ if(col == DEVCOL_TID)
+ {
+ //int val = lvi->syncInfo().idOut();
+ int val = lvi->_idOut;
+ int newval = QInputDialog::getInteger("Muse: Sync info" , "Enter new id number (127 = global):", val, 0, 127, 1, &ok, this);
+ if(ok)
+ {
+ //lvi->syncInfo().setIdOut(newval);
+ lvi->_idOut = newval;
+ lvi->setText(DEVCOL_TID, QString().setNum(newval));
+ }
+ }
+
+ if(ok)
+ setDirty();
+}
+
+/*
+//---------------------------------------------------------
+// renameOk
+//---------------------------------------------------------
+//void MidiSyncConfig::renameOk(QListViewItem* item, int col)
+void MidiSyncConfig::renameOk(QListViewItem* item, int col, const QString & text)
+{
+ if(!item)
+ return;
+
+ MidiSyncLViewItem* lvi = (MidiSyncLViewItem*)item;
+ QString t = text;
+ bool ok;
+ int id = text.toInt(&ok);
+ if(!ok)
+ {
+ lvi->setText(t);
+ return;
+ }
+ if(col == DEVCOL_RID)
+ {
+ //lvi->syncInfo().setIdIn(id);
+ lvi->_idIn = id;
+ setDirty();
+ }
+ else
+ if(col == DEVCOL_TID)
+ {
+ //lvi->syncInfo().setIdOut(id);
+ lvi->_idOut = id;
+ setDirty();
+ }
+}
+*/
+
+//---------------------------------------------------------
+// MidiSyncConfig::setDirty
+//---------------------------------------------------------
+
+void MidiSyncConfig::setDirty()
+{
+ _dirty = true;
+ if(!applyButton->isEnabled())
+ applyButton->setEnabled(true);
+}
+
diff --git a/muse2/muse/widgets/midisyncimpl.h b/muse2/muse/widgets/midisyncimpl.h
new file mode 100644
index 00000000..a804e85f
--- /dev/null
+++ b/muse2/muse/widgets/midisyncimpl.h
@@ -0,0 +1,150 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: midisyncimpl.h,v 1.1.1.1.2.3 2009/05/03 04:14:01 terminator356 Exp $
+//
+// (C) Copyright 1999/2000 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __MIDISYNCIMPL_H__
+#define __MIDISYNCIMPL_H__
+
+#include <q3whatsthis.h>
+#include <q3listview.h>
+#include <qtooltip.h>
+//Added by qt3to4:
+#include <QCloseEvent>
+//#include <qheader.h>
+#include "midisync.h"
+#include "sync.h"
+
+//class QWhatsThis;
+//class QListView;
+//class QListViewItem;
+class Q3Header;
+//class MidiDevice;
+
+//----------------------------------------------------------
+// MSyncHeaderTip
+//----------------------------------------------------------
+
+class MSyncHeaderTip /*: public QToolTip ddskrjo*/ {
+ QWidget *_parent;
+ public:
+ MSyncHeaderTip(QWidget * parent) : _parent(parent) {} // ddskrjo
+ virtual ~MSyncHeaderTip() {}
+ protected:
+ void maybeTip(const QPoint &);
+ };
+
+//---------------------------------------------------------
+// MSyncWhatsThis
+//---------------------------------------------------------
+
+class MSyncWhatsThis : public Q3WhatsThis {
+ Q3Header* header;
+
+ protected:
+ QString text(const QPoint&);
+
+ public:
+ MSyncWhatsThis(QWidget* parent, Q3Header* h) : Q3WhatsThis(parent) {
+ header = h;
+ }
+ };
+
+class MidiSyncLViewItem : public Q3ListViewItem
+{
+ //MidiSyncInfo _syncInfo;
+ //MidiDevice* _device;
+ int _port;
+
+ //protected:
+ //int _port;
+
+ public:
+ MidiSyncLViewItem(Q3ListView* parent)
+ : Q3ListViewItem(parent) { _port = -1; _inDet = _curDet = _tickDet = false; }
+ //: QListViewItem(parent) { _device = 0; }
+
+ //MidiSyncLViewItem(QListView* parent, QListViewItem* after)
+ // : QListViewItem(parent, after) { _port = -1; }
+
+ //virtual QString text(int column) const;
+ //virtual unsigned tick() = 0;
+
+ //int _port;
+ bool _inDet;
+ bool _curDet;
+ bool _curMTCDet;
+ bool _tickDet;
+ bool _MRTDet;
+ bool _MMCDet;
+ bool _MTCDet;
+ int _recMTCtype;
+
+ int _idOut;
+ int _idIn;
+
+ bool _sendMC;
+ bool _sendMRT;
+ bool _sendMMC;
+ bool _sendMTC;
+ bool _recMC;
+ bool _recMRT;
+ bool _recMMC;
+ bool _recMTC;
+
+ bool _recRewOnStart;
+ //bool _sendContNotStart;
+
+ int port() const { return _port; }
+ void setPort(int port);
+ //MidiDevice* device() const { return _device; }
+ //void setDevice(MidiDevice* d);
+
+ //MidiSyncInfo& syncInfo() { return _syncInfo; }
+ void copyFromSyncInfo(const MidiSyncInfo &sp);
+ void copyToSyncInfo(MidiSyncInfo &sp);
+};
+
+//---------------------------------------------------------
+// MSConfig
+//---------------------------------------------------------
+
+class MidiSyncConfig : public MidiSyncConfigBase {
+ Q_OBJECT
+ MSyncHeaderTip* _synctooltip;
+
+ bool inHeartBeat;
+ bool _dirty;
+
+ void updateSyncInfoLV();
+ void closeEvent(QCloseEvent*);
+
+ private slots:
+ void heartBeat();
+ void syncChanged();
+ void extSyncChanged(bool v);
+ void ok();
+ void cancel();
+ void apply();
+ //void dlvClicked(QListViewItem*, const QPoint&, int);
+ void dlvClicked(int, Q3ListViewItem*, const QPoint&, int);
+ void dlvDoubleClicked(Q3ListViewItem*, const QPoint&, int);
+ //void renameOk(QListViewItem*, int, const QString&);
+ void songChanged(int);
+
+ //signals:
+ // void deleted(unsigned long);
+
+ public:
+ MidiSyncConfig(QWidget* parent=0, const char* name=0);
+ //MidiSyncConfig();
+ ~MidiSyncConfig();
+ void show();
+ void setDirty();
+ };
+
+#endif
+
diff --git a/muse2/muse/widgets/mittransposebase.ui b/muse2/muse/widgets/mittransposebase.ui
new file mode 100644
index 00000000..60cd4d9b
--- /dev/null
+++ b/muse2/muse/widgets/mittransposebase.ui
@@ -0,0 +1,117 @@
+<!DOCTYPE UI><UI version="3.0" stdsetdef="1">
+<class>MITTransposeBase</class>
+<widget class="QWidget">
+ <property name="name">
+ <cstring>MITTransposeBase</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>423</width>
+ <height>50</height>
+ </rect>
+ </property>
+ <property name="caption">
+ <string>MusE: Midi Input Plugin: Transpose</string>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>11</number>
+ </property>
+ <property name="spacing">
+ <number>6</number>
+ </property>
+ <widget class="QCheckBox">
+ <property name="name">
+ <cstring>onCheckBox</cstring>
+ </property>
+ <property name="text">
+ <string>On</string>
+ </property>
+ </widget>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>TextLabel1</cstring>
+ </property>
+ <property name="text">
+ <string>TriggerKey</string>
+ </property>
+ <property name="alignment">
+ <set>AlignVCenter|AlignRight</set>
+ </property>
+ <property name="indent">
+ <number>5</number>
+ </property>
+ </widget>
+ <widget class="PitchEdit">
+ <property name="name">
+ <cstring>triggerKeySpinBox</cstring>
+ </property>
+ </widget>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>TextLabel2</cstring>
+ </property>
+ <property name="text">
+ <string>Transpose:</string>
+ </property>
+ <property name="alignment">
+ <set>AlignVCenter|AlignRight</set>
+ </property>
+ <property name="indent">
+ <number>5</number>
+ </property>
+ </widget>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>transposeLabel</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="paletteBackgroundColor">
+ <color>
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ </property>
+ <property name="frameShape">
+ <enum>Panel</enum>
+ </property>
+ <property name="lineWidth">
+ <number>2</number>
+ </property>
+ <property name="margin">
+ <number>2</number>
+ </property>
+ <property name="midLineWidth">
+ <number>2</number>
+ </property>
+ <property name="text">
+ <string>+0</string>
+ </property>
+ <property name="alignment">
+ <set>AlignVCenter|AlignRight</set>
+ </property>
+ <property name="indent">
+ <number>5</number>
+ </property>
+ </widget>
+ </hbox>
+</widget>
+<layoutdefaults spacing="6" margin="11"/>
+<includes>
+ <include location="local" impldecl="in declaration">pitchedit.h</include>
+</includes>
+</UI>
+
diff --git a/muse2/muse/widgets/mixdowndialog.cpp b/muse2/muse/widgets/mixdowndialog.cpp
new file mode 100644
index 00000000..0681ca2e
--- /dev/null
+++ b/muse2/muse/widgets/mixdowndialog.cpp
@@ -0,0 +1,108 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: mixdowndialog.cpp,v 1.1.1.1 2003/10/27 18:55:02 wschweer Exp $
+// (C) Copyright 2001 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include "mixdowndialog.h"
+#include "globals.h"
+#include <qtoolbutton.h>
+#include <qpushbutton.h>
+#include <q3filedialog.h>
+#include <qcombobox.h>
+#include <qlineedit.h>
+#include "wave.h"
+
+//---------------------------------------------------------
+// sndFileOpen
+// sf - old soundfile, used to preset file parameters
+//---------------------------------------------------------
+
+SndFile* getSndFile(const SndFile* sf, QWidget* parent, const char* name)
+ {
+ MixdownFileDialog* dialog = new MixdownFileDialog(sf, parent,
+ name, true);
+ dialog->exec();
+ SndFile* sndFile = dialog->sndFile();
+ delete dialog;
+ return sndFile;
+ }
+
+//---------------------------------------------------------
+// MixdownFileDialog
+//---------------------------------------------------------
+
+MixdownFileDialog::MixdownFileDialog(const SndFile* _sf,
+ QWidget* parent, const char* name, bool /*modal*/, Qt::WFlags fl)
+ : MixdownFileDialogBase(parent, name, true, fl)
+ {
+ 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->path());
+ comboChannel->setCurrentItem(channels);
+ comboFormat->setCurrentItem(format);
+ }
+ }
+
+//---------------------------------------------------------
+// accept
+//---------------------------------------------------------
+
+void MixdownFileDialog::accept()
+ {
+ QString oldpath;
+ unsigned channel = comboChannel->currentItem();
+ unsigned format = comboFormat->currentItem();
+ 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, sampleRate);
+ done(1);
+ }
+
+//---------------------------------------------------------
+// fdialog
+//---------------------------------------------------------
+
+void MixdownFileDialog::fdialog()
+ {
+ QString oldpath;
+ if (sf)
+ oldpath = sf->path();
+ QString path = Q3FileDialog::getSaveFileName(
+ oldpath, tr("Wave Files (*.wav);;All Files (*)"), this, "MixdownFileDialog");
+ if (!path.isEmpty())
+ editPath->setText(path);
+ }
+
diff --git a/muse2/muse/widgets/mixdowndialog.h b/muse2/muse/widgets/mixdowndialog.h
new file mode 100644
index 00000000..95440b38
--- /dev/null
+++ b/muse2/muse/widgets/mixdowndialog.h
@@ -0,0 +1,37 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: mixdowndialog.h,v 1.1.1.1 2003/10/27 18:54:28 wschweer Exp $
+// (C) Copyright 2001 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __MIXDOWNDIALOG_H__
+#define __MIXDOWNDIALOG_H__
+
+#include "mixdowndialogbase.h"
+
+class SndFile;
+
+extern SndFile* getSndFile(const SndFile* sf, QWidget* parent,
+ const char* name);
+
+//---------------------------------------------------------
+// MixdownFileDialog
+//---------------------------------------------------------
+
+class MixdownFileDialog : public MixdownFileDialogBase {
+ Q_OBJECT
+ SndFile* sf;
+
+ private slots:
+ void fdialog();
+ virtual void accept();
+
+ public:
+ MixdownFileDialog(const SndFile* f, QWidget* parent = 0,
+ const char* name = 0, bool modal = false, Qt::WFlags fl = 0);
+ SndFile* sndFile() { return sf; }
+ };
+
+#endif
+
diff --git a/muse2/muse/widgets/mixdowndialogbase.ui b/muse2/muse/widgets/mixdowndialogbase.ui
new file mode 100644
index 00000000..830d2a8e
--- /dev/null
+++ b/muse2/muse/widgets/mixdowndialogbase.ui
@@ -0,0 +1,224 @@
+<!DOCTYPE UI><UI version="3.0" stdsetdef="1">
+<class>MixdownFileDialogBase</class>
+<widget class="QDialog">
+ <property name="name">
+ <cstring>MixdownFileDialogBase</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>381</width>
+ <height>116</height>
+ </rect>
+ </property>
+ <property name="caption">
+ <string>MusE: Set Mixdown Wavefile</string>
+ </property>
+ <property name="sizeGripEnabled">
+ <bool>true</bool>
+ </property>
+ <grid>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>11</number>
+ </property>
+ <property name="spacing">
+ <number>6</number>
+ </property>
+ <widget class="QLayoutWidget" row="2" column="0" rowspan="1" colspan="5">
+ <property name="name">
+ <cstring>Layout1</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>0</number>
+ </property>
+ <property name="spacing">
+ <number>6</number>
+ </property>
+ <spacer>
+ <property name="name" stdset="0">
+ <cstring>Horizontal Spacing2</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>20</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ <widget class="QPushButton">
+ <property name="name">
+ <cstring>buttonOk</cstring>
+ </property>
+ <property name="text">
+ <string>&amp;OK</string>
+ </property>
+ <property name="autoDefault">
+ <bool>true</bool>
+ </property>
+ <property name="default">
+ <bool>true</bool>
+ </property>
+ </widget>
+ <widget class="QPushButton">
+ <property name="name">
+ <cstring>buttonCancel</cstring>
+ </property>
+ <property name="text">
+ <string>&amp;Cancel</string>
+ </property>
+ <property name="autoDefault">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </hbox>
+ </widget>
+ <widget class="QLabel" row="0" column="0">
+ <property name="name">
+ <cstring>TextLabel1</cstring>
+ </property>
+ <property name="text">
+ <string>File Path</string>
+ </property>
+ </widget>
+ <widget class="QLabel" row="1" column="0">
+ <property name="name">
+ <cstring>TextLabel2</cstring>
+ </property>
+ <property name="text">
+ <string>Channel</string>
+ </property>
+ </widget>
+ <widget class="QLayoutWidget" row="0" column="1" rowspan="1" colspan="4">
+ <property name="name">
+ <cstring>Layout5</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>0</number>
+ </property>
+ <property name="spacing">
+ <number>6</number>
+ </property>
+ <widget class="QLineEdit">
+ <property name="name">
+ <cstring>editPath</cstring>
+ </property>
+ </widget>
+ <widget class="QToolButton">
+ <property name="name">
+ <cstring>buttonPath</cstring>
+ </property>
+ <property name="text">
+ <string></string>
+ </property>
+ <property name="pixmap">
+ <pixmap>image0</pixmap>
+ </property>
+ </widget>
+ </hbox>
+ </widget>
+ <widget class="QComboBox" row="1" column="1">
+ <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>
+ <property name="name">
+ <cstring>comboChannel</cstring>
+ </property>
+ </widget>
+ <widget class="QComboBox" row="1" column="4">
+ <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>
+ <property name="name">
+ <cstring>comboFormat</cstring>
+ </property>
+ </widget>
+ <widget class="QLabel" row="1" column="3">
+ <property name="name">
+ <cstring>TextLabel3</cstring>
+ </property>
+ <property name="text">
+ <string>Format</string>
+ </property>
+ </widget>
+ <spacer row="1" column="2">
+ <property name="name" stdset="0">
+ <cstring>Spacer1</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>20</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </grid>
+</widget>
+<images>
+ <image name="image0">
+ <data format="XPM.GZ" length="469">789c5d8fb10ac2301040f77c45e86d45ac955607f1131447411c2e97141daaa07510f1dfcd256992fadae1de23e9d1aa94c7c34e9695780e385c49d2051fb2d4afbe7f9fcedb8f28ea95b4ef5ad6c54c147349727fbf199ec1ceb070b01a566cb0c68655b3524b4b6a5989551b7e5891b5eb105b64555eb541725b1c60f1536c36b80aa9417636dd1de37fcbcea5cfc71d804a2178625316f4406a90e31b02254203d216f7db06c20ed77c1adb34a516526cd314ce6570fb6ec40ff56a68fe</data>
+ </image>
+</images>
+<connections>
+ <connection>
+ <sender>buttonOk</sender>
+ <signal>clicked()</signal>
+ <receiver>MixdownFileDialogBase</receiver>
+ <slot>accept()</slot>
+ </connection>
+ <connection>
+ <sender>buttonCancel</sender>
+ <signal>clicked()</signal>
+ <receiver>MixdownFileDialogBase</receiver>
+ <slot>reject()</slot>
+ </connection>
+</connections>
+<layoutdefaults spacing="6" margin="11"/>
+</UI>
diff --git a/muse2/muse/widgets/mktest b/muse2/muse/widgets/mktest
new file mode 100644
index 00000000..08738898
--- /dev/null
+++ b/muse2/muse/widgets/mktest
@@ -0,0 +1,5 @@
+CPPFLAGS = -I/usr/qt/include -I..
+
+mops: mops.o musewidgetsplug.o
+ g++ -o mops mops.o musewidgetsplug.o -L . -l musewidgetsplugin -L /usr/qt/lib -l qt-mt
+
diff --git a/muse2/muse/widgets/mlabel.cpp b/muse2/muse/widgets/mlabel.cpp
new file mode 100644
index 00000000..a6c1b183
--- /dev/null
+++ b/muse2/muse/widgets/mlabel.cpp
@@ -0,0 +1,17 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: mlabel.cpp,v 1.1.1.1 2003/10/27 18:55:03 wschweer Exp $
+// (C) Copyright 2000 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include "mlabel.h"
+//Added by qt3to4:
+#include <QMouseEvent>
+
+
+void MLabel::mousePressEvent(QMouseEvent*)
+ {
+ emit mousePressed();
+ }
+
diff --git a/muse2/muse/widgets/mlabel.h b/muse2/muse/widgets/mlabel.h
new file mode 100644
index 00000000..490e8686
--- /dev/null
+++ b/muse2/muse/widgets/mlabel.h
@@ -0,0 +1,39 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: mlabel.h,v 1.1.1.1 2003/10/27 18:55:03 wschweer Exp $
+// (C) Copyright 2000 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __MLABEL_H__
+#define __MLABEL_H__
+
+#include <qlabel.h>
+//Added by qt3to4:
+#include <QMouseEvent>
+
+//---------------------------------------------------------
+// MLabel
+// label widged which sends signal mousePressed
+// on mousePressEvent
+//---------------------------------------------------------
+
+class MLabel : public QLabel {
+
+ Q_OBJECT
+
+ protected:
+ virtual void mousePressEvent(QMouseEvent*);
+
+ signals:
+ void mousePressed();
+
+ public:
+ MLabel(const QString& txt, QWidget* parent, const char* name = 0)
+ : QLabel(txt, parent, name) {};
+
+ MLabel(QWidget* parent, const char* name = 0)
+ : QLabel(parent, name) {};
+ };
+#endif
+
diff --git a/muse2/muse/widgets/mmath.cpp b/muse2/muse/widgets/mmath.cpp
new file mode 100644
index 00000000..acc8e25a
--- /dev/null
+++ b/muse2/muse/widgets/mmath.cpp
@@ -0,0 +1,300 @@
+#include <cmath>
+#include "mmath.h"
+
+// QwtMath - a set of mathematical routines
+//
+// qwtGetMin -- Find the smallest value in an array
+// qwtGetMax -- Find the largest value in an array
+// qwtTwistArray -- invert the order of an array
+// qwtFloor125 -- Find the largest value fitting in a 1-2-5 pattern
+// qwtCeil125 -- Find the smallest value fitting in a 1-2-5 pattern
+// qwtChkMono -- Check for monotony
+// qwtLinSpace -- construct an array of equally spaced values
+// qwtLogSpace -- construct an array of logarithmically equally spaced values
+// qwtMax -- Return the largest of two values
+// qwtMin -- Return the smallest of two values
+// qwtAbs -- return the absolute value
+// qwtSign -- Return the sign of a number
+// qwtSqr -- Return the square of a number
+// qwtCopyArray -- Copy an array into another
+// qwtShiftArray -- Shift an array
+// qwtSwap -- Swap two values
+// qwtSort (1) -- Sort two values
+// qwtSort (2) -- Sort two values
+// qwtInt -- Return nearest integer
+// qwtLim -- Limit a values
+
+
+//------------------------------------------------------------
+//.F qwtGetMin
+// Find the smallest value in an array
+//
+//.u Syntax
+//.f double qwtGetMin(double *array, int size)
+//
+//.u Parameters
+//.p double *array, int size
+//
+//------------------------------------------------------------
+
+double qwtGetMin(double *array, int size)
+{
+ double rv;
+ int i;
+
+ if (size > 0)
+ {
+ rv = array[0];
+ for (i=1; i< size; i++)
+ rv = qwtMin(rv, array[i]);
+ return rv;
+ }
+ else
+ return 0.0;
+
+}
+
+
+//------------------------------------------------------------
+//
+//.F qwtGetMax
+// Find the largest value in an array
+//
+//.u Syntax
+//.f double qwtGetMax(double *array, int size)
+//
+//.u Parameters
+//.p double *array, int size
+//
+//------------------------------------------------------------
+double qwtGetMax(double *array, int size)
+{
+ double rv;
+ int i;
+
+ if (size > 0)
+ {
+ rv = array[0];
+ for (i=1; i< size; i++)
+ rv = qwtMax(rv, array[i]);
+ return rv;
+ }
+ else
+ return 0.0;
+
+}
+
+
+//------------------------------------------------------------
+//
+//.F qwtCeil125
+// Find the smallest value out of {1,2,5}*10^n with an integer number n
+// which is greater than or equal to x
+//
+//.u Syntax
+//.f double qwtCeil125(double x)
+//
+//.u Parameters
+//.p double x
+//
+//------------------------------------------------------------
+double qwtCeil125( double x)
+{
+ double lx, rv;
+ double p10, fr;
+ double sign = ( x > 0) ? 1.0 : -1.0;
+
+ if (x == 0.0) return 0.0;
+
+ lx = log10(fabs(x));
+ p10 = floor(lx);
+ fr = pow(10.0,lx - p10);
+ if (fr <=1.0)
+ fr = 1.0;
+ else if (fr <= 2.0)
+ fr = 2.0;
+ else if (fr <= 5.0)
+ fr = 5.0;
+ else
+ fr = 10.0;
+ rv = fr * pow(10.0,p10);
+ return sign * rv;
+}
+
+
+//------------------------------------------------------------
+//
+//.F qwtFloor125
+// Find the largest value out of {1,2,5}*10^n with an integer number n
+// which is smaller than or equal to x
+//
+//.u Syntax
+//.f double qwtFloor125(double x)
+//
+//.u Parameters
+//.p double x
+//
+//------------------------------------------------------------
+double qwtFloor125( double x)
+{
+ double lx, rv;
+ double p10, fr;
+ double sign = ( x > 0) ? 1.0 : -1.0;
+
+ if (x == 0.0) return 0.0;
+
+ lx = log10(fabs(x));
+ p10 = floor(lx);
+ fr = pow(10.0,lx - p10);
+ if (fr >= 10.0)
+ fr = 10.0;
+ else if (fr >= 5.0)
+ fr = 5.0;
+ else if (fr >= 2.0)
+ fr = 2.0;
+ else
+ fr = 1.0;
+ rv = fr * pow(10.0,p10);
+ return sign * rv;
+}
+
+
+//------------------------------------------------------------
+//
+//.F qwtChkMono
+// Checks if an array is a strictly monotonic sequence
+//
+//.u Syntax
+//.f int qwtChkMono(double *array, int size)
+//
+//.u Parameters
+//.p double *array -- pointer to a double array
+// int size -- size of the array
+//
+//.u Return Value
+//.t 0 -- sequence is not strictly monotonic
+// 1 -- sequence is strictly monotonically increasing
+// -1 -- sequence is strictly monotonically decreasing
+//
+//------------------------------------------------------------
+int qwtChkMono(double *array, int size)
+{
+ int rv, i;
+
+ if (size < 2) return 0;
+
+ rv = qwtSign(array[1] - array[0]);
+ for (i=1;i<size-1;i++)
+ {
+ if ( qwtSign(array[i+1] - array[i]) != rv )
+ {
+ rv = 0;
+ break;
+ }
+ }
+ return rv;
+
+}
+
+//------------------------------------------------------------
+//
+//.F qwtTwistArray
+// Invert the order of array elements
+//
+//.u Syntax
+//.f void qwtTwistArray(double *array, int size)
+//
+//.u Parameters
+//.p double *array, int size
+//
+//------------------------------------------------------------
+void qwtTwistArray(double *array, int size)
+{
+ int itmp;
+ int i, s2;
+ double dtmp;
+
+ s2 = size / 2;
+
+ for (i=0; i < s2; i++)
+ {
+ itmp = size - 1 - i;
+ dtmp = array[i];
+ array[i] = array[itmp];
+ array[itmp] = dtmp;
+ }
+
+}
+
+
+//------------------------------------------------------------
+//
+//.F qwtLinSpace
+// Create an array of equally spaced values
+//
+//.u Syntax
+//.f void qwtLinSpace(double *array, int size, double xmin, double xmax)
+//
+//.u Parameters
+//.p double *array -- where to put the values
+// int size -- size of the array
+// double xmin -- value associated with index 0
+// double xmax -- value associated with index (size-1)
+//
+//------------------------------------------------------------
+void qwtLinSpace(double *array, int size, double xmin, double xmax)
+{
+ int i, imax;
+ imax = size -1;
+ double step;
+
+ if (size > 0)
+ {
+ array[0] = xmin;
+ array[imax] = xmax;
+ step = (xmax - xmin) / double(imax);
+
+ for (i=1;i<imax;i++)
+ array[i] = xmin + double(i) * step;
+ }
+
+}
+
+
+//------------------------------------------------------------
+//
+//.F qwtLogSpace
+// Create an array of logarithmically equally spaced values
+//
+//.u Syntax
+//.f void qwtLogSpace(double *array, int size, double xmin, double xmax)
+//
+//.u Parameters
+//.p double *array -- where to put the values
+// int size -- size of the array
+// double xmin -- value associated with index 0
+// double xmax -- value associated with index (size-1)
+//------------------------------------------------------------
+void qwtLogSpace(double *array, int size, double xmin, double xmax)
+{
+ int i, imax;
+
+ double lxmin,lxmax;
+ double lstep;
+
+ imax = size -1;
+
+ if ((xmin <= 0.0) || (xmax <= 0.0) || (size <= 0))
+ return;
+
+ array[0] = xmin;
+ array[imax] = xmax;
+ lxmin = log(xmin);
+ lxmax = log(xmax);
+
+ lstep = (lxmax - lxmin) / double(imax);
+
+ for (i=1; i<imax;i++)
+ array[i] = exp(lxmin + double(i) * lstep);
+
+}
diff --git a/muse2/muse/widgets/mmath.h b/muse2/muse/widgets/mmath.h
new file mode 100644
index 00000000..51381047
--- /dev/null
+++ b/muse2/muse/widgets/mmath.h
@@ -0,0 +1,77 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: mmath.h,v 1.1.1.1 2003/10/27 18:54:47 wschweer Exp $
+//
+// (C) Copyright 2000 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __MATH_H__
+#define __MATH_H__
+
+#define LOG_MIN 1.0e-100
+#define LOG_MAX 1.0e100
+
+double qwtCeil125(double x);
+double qwtFloor125(double x);
+void qwtTwistArray(double *array, int size);
+int qwtChkMono(double *array, int size);
+void qwtLinSpace(double *array, int size, double xmin, double xmax);
+void qwtLogSpace(double *array, int size, double xmin, double xmax);
+
+template <class T>
+inline int qwtSign(const T& x)
+{
+ if (x > T(0))
+ return 1;
+ else if (x < T(0))
+ return (-1);
+ else
+ return 0;
+}
+
+inline int qwtInt(double x)
+{
+ return int(rint(x));
+}
+
+template <class T>
+inline T qwtAbs (const T& x)
+{
+ return( x > T(0) ? x : -x );
+}
+
+template <class T>
+inline const T& qwtMax (const T& x, const T& y)
+{
+ return ( x > y ? x : y );
+}
+
+template <class T>
+inline const T& qwtMin ( const T& x, const T& y)
+{
+ return ( x < y ? x : y );
+}
+
+
+template <class T>
+T qwtLim(const T& x, const T& x1, const T& x2)
+{
+ T rv;
+ T xmin, xmax;
+
+ xmin = qwtMin(x1, x2);
+ xmax = qwtMax(x1, x2);
+
+ if ( x < xmin )
+ rv = xmin;
+ else if ( x > xmax )
+ rv = xmax;
+ else
+ rv = x;
+
+ return rv;
+}
+
+#endif
+
diff --git a/muse2/muse/widgets/moc_aboutbox.cpp b/muse2/muse/widgets/moc_aboutbox.cpp
new file mode 100644
index 00000000..3a5b4311
--- /dev/null
+++ b/muse2/muse/widgets/moc_aboutbox.cpp
@@ -0,0 +1,81 @@
+/****************************************************************************
+** Meta object code from reading C++ file 'aboutbox.h'
+**
+** Created: Wed Oct 13 19:43:36 2010
+** by: The Qt Meta Object Compiler version 62 (Qt 4.6.2)
+**
+** WARNING! All changes made in this file will be lost!
+*****************************************************************************/
+
+#include "aboutbox.h"
+#if !defined(Q_MOC_OUTPUT_REVISION)
+#error "The header file 'aboutbox.h' doesn't include <QObject>."
+#elif Q_MOC_OUTPUT_REVISION != 62
+#error "This file was generated using the moc from 4.6.2. It"
+#error "cannot be used with the include files from this version of Qt."
+#error "(The moc has changed too much.)"
+#endif
+
+QT_BEGIN_MOC_NAMESPACE
+static const uint qt_meta_data_AboutBox[] = {
+
+ // content:
+ 4, // revision
+ 0, // classname
+ 0, 0, // classinfo
+ 1, 14, // methods
+ 0, 0, // properties
+ 0, 0, // enums/sets
+ 0, 0, // constructors
+ 0, // flags
+ 0, // signalCount
+
+ // slots: signature, parameters, type, tag, flags
+ 10, 9, 9, 9, 0x09,
+
+ 0 // eod
+};
+
+static const char qt_meta_stringdata_AboutBox[] = {
+ "AboutBox\0\0languageChange()\0"
+};
+
+const QMetaObject AboutBox::staticMetaObject = {
+ { &QDialog::staticMetaObject, qt_meta_stringdata_AboutBox,
+ qt_meta_data_AboutBox, 0 }
+};
+
+#ifdef Q_NO_DATA_RELOCATION
+const QMetaObject &AboutBox::getStaticMetaObject() { return staticMetaObject; }
+#endif //Q_NO_DATA_RELOCATION
+
+const QMetaObject *AboutBox::metaObject() const
+{
+ return QObject::d_ptr->metaObject ? QObject::d_ptr->metaObject : &staticMetaObject;
+}
+
+void *AboutBox::qt_metacast(const char *_clname)
+{
+ if (!_clname) return 0;
+ if (!strcmp(_clname, qt_meta_stringdata_AboutBox))
+ return static_cast<void*>(const_cast< AboutBox*>(this));
+ if (!strcmp(_clname, "Ui::AboutBox"))
+ return static_cast< Ui::AboutBox*>(const_cast< AboutBox*>(this));
+ return QDialog::qt_metacast(_clname);
+}
+
+int AboutBox::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;
+ default: ;
+ }
+ _id -= 1;
+ }
+ return _id;
+}
+QT_END_MOC_NAMESPACE
diff --git a/muse2/muse/widgets/moc_didyouknow.cpp b/muse2/muse/widgets/moc_didyouknow.cpp
new file mode 100644
index 00000000..45ca9eaa
--- /dev/null
+++ b/muse2/muse/widgets/moc_didyouknow.cpp
@@ -0,0 +1,81 @@
+/****************************************************************************
+** Meta object code from reading C++ file 'didyouknow.h'
+**
+** Created: Wed Oct 13 19:43:38 2010
+** by: The Qt Meta Object Compiler version 62 (Qt 4.6.2)
+**
+** WARNING! All changes made in this file will be lost!
+*****************************************************************************/
+
+#include "didyouknow.h"
+#if !defined(Q_MOC_OUTPUT_REVISION)
+#error "The header file 'didyouknow.h' doesn't include <QObject>."
+#elif Q_MOC_OUTPUT_REVISION != 62
+#error "This file was generated using the moc from 4.6.2. It"
+#error "cannot be used with the include files from this version of Qt."
+#error "(The moc has changed too much.)"
+#endif
+
+QT_BEGIN_MOC_NAMESPACE
+static const uint qt_meta_data_DidYouKnow[] = {
+
+ // content:
+ 4, // revision
+ 0, // classname
+ 0, 0, // classinfo
+ 1, 14, // methods
+ 0, 0, // properties
+ 0, 0, // enums/sets
+ 0, 0, // constructors
+ 0, // flags
+ 0, // signalCount
+
+ // slots: signature, parameters, type, tag, flags
+ 12, 11, 11, 11, 0x09,
+
+ 0 // eod
+};
+
+static const char qt_meta_stringdata_DidYouKnow[] = {
+ "DidYouKnow\0\0languageChange()\0"
+};
+
+const QMetaObject DidYouKnow::staticMetaObject = {
+ { &QDialog::staticMetaObject, qt_meta_stringdata_DidYouKnow,
+ qt_meta_data_DidYouKnow, 0 }
+};
+
+#ifdef Q_NO_DATA_RELOCATION
+const QMetaObject &DidYouKnow::getStaticMetaObject() { return staticMetaObject; }
+#endif //Q_NO_DATA_RELOCATION
+
+const QMetaObject *DidYouKnow::metaObject() const
+{
+ return QObject::d_ptr->metaObject ? QObject::d_ptr->metaObject : &staticMetaObject;
+}
+
+void *DidYouKnow::qt_metacast(const char *_clname)
+{
+ if (!_clname) return 0;
+ if (!strcmp(_clname, qt_meta_stringdata_DidYouKnow))
+ return static_cast<void*>(const_cast< DidYouKnow*>(this));
+ if (!strcmp(_clname, "Ui::DidYouKnow"))
+ return static_cast< Ui::DidYouKnow*>(const_cast< DidYouKnow*>(this));
+ return QDialog::qt_metacast(_clname);
+}
+
+int DidYouKnow::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;
+ default: ;
+ }
+ _id -= 1;
+ }
+ return _id;
+}
+QT_END_MOC_NAMESPACE
diff --git a/muse2/muse/widgets/moc_songinfo.cpp b/muse2/muse/widgets/moc_songinfo.cpp
new file mode 100644
index 00000000..9b35549c
--- /dev/null
+++ b/muse2/muse/widgets/moc_songinfo.cpp
@@ -0,0 +1,84 @@
+/****************************************************************************
+** Meta object code from reading C++ file 'songinfo.h'
+**
+** Created: Wed Oct 13 19:43:37 2010
+** by: The Qt Meta Object Compiler version 62 (Qt 4.6.2)
+**
+** WARNING! All changes made in this file will be lost!
+*****************************************************************************/
+
+#include "songinfo.h"
+#if !defined(Q_MOC_OUTPUT_REVISION)
+#error "The header file 'songinfo.h' doesn't include <QObject>."
+#elif Q_MOC_OUTPUT_REVISION != 62
+#error "This file was generated using the moc from 4.6.2. It"
+#error "cannot be used with the include files from this version of Qt."
+#error "(The moc has changed too much.)"
+#endif
+
+QT_BEGIN_MOC_NAMESPACE
+static const uint qt_meta_data_SongInfo[] = {
+
+ // content:
+ 4, // revision
+ 0, // classname
+ 0, 0, // classinfo
+ 2, 14, // methods
+ 0, 0, // properties
+ 0, 0, // enums/sets
+ 0, 0, // constructors
+ 0, // flags
+ 0, // signalCount
+
+ // slots: signature, parameters, type, tag, flags
+ 10, 9, 9, 9, 0x0a,
+ 29, 9, 9, 9, 0x09,
+
+ 0 // eod
+};
+
+static const char qt_meta_stringdata_SongInfo[] = {
+ "SongInfo\0\0buttonOk_clicked()\0"
+ "languageChange()\0"
+};
+
+const QMetaObject SongInfo::staticMetaObject = {
+ { &QDialog::staticMetaObject, qt_meta_stringdata_SongInfo,
+ qt_meta_data_SongInfo, 0 }
+};
+
+#ifdef Q_NO_DATA_RELOCATION
+const QMetaObject &SongInfo::getStaticMetaObject() { return staticMetaObject; }
+#endif //Q_NO_DATA_RELOCATION
+
+const QMetaObject *SongInfo::metaObject() const
+{
+ return QObject::d_ptr->metaObject ? QObject::d_ptr->metaObject : &staticMetaObject;
+}
+
+void *SongInfo::qt_metacast(const char *_clname)
+{
+ if (!_clname) return 0;
+ if (!strcmp(_clname, qt_meta_stringdata_SongInfo))
+ return static_cast<void*>(const_cast< SongInfo*>(this));
+ if (!strcmp(_clname, "Ui::SongInfo"))
+ return static_cast< Ui::SongInfo*>(const_cast< SongInfo*>(this));
+ return QDialog::qt_metacast(_clname);
+}
+
+int SongInfo::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: buttonOk_clicked(); break;
+ case 1: languageChange(); break;
+ default: ;
+ }
+ _id -= 2;
+ }
+ return _id;
+}
+QT_END_MOC_NAMESPACE
diff --git a/muse2/muse/widgets/moc_ttoolbar.cpp b/muse2/muse/widgets/moc_ttoolbar.cpp
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/muse2/muse/widgets/moc_ttoolbar.cpp
diff --git a/muse2/muse/widgets/mtrackinfobase.ui b/muse2/muse/widgets/mtrackinfobase.ui
new file mode 100644
index 00000000..3d2b274a
--- /dev/null
+++ b/muse2/muse/widgets/mtrackinfobase.ui
@@ -0,0 +1,1067 @@
+<!DOCTYPE UI><UI version="3.2" stdsetdef="1">
+<class>MidiTrackInfoBase</class>
+<widget class="QWidget">
+ <property name="name">
+ <cstring>MidiTrackInfoBase</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>149</width>
+ <height>555</height>
+ </rect>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>5</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="caption">
+ <string>MusE: TrackInfo</string>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string></string>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string></string>
+ </property>
+ <grid>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>0</number>
+ </property>
+ <property name="spacing">
+ <number>0</number>
+ </property>
+ <property name="resizeMode">
+ <enum>Minimum</enum>
+ </property>
+ <widget class="SpinBox" row="2" column="0">
+ <property name="name">
+ <cstring>iOutputChannel</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="maxValue">
+ <number>16</number>
+ </property>
+ <property name="minValue">
+ <number>1</number>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>output channel</string>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>all midi events are sent to this output channel</string>
+ </property>
+ </widget>
+ <widget class="QLabel" row="0" column="0" rowspan="1" colspan="2">
+ <property name="name">
+ <cstring>trackNameLabel</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>2</hsizetype>
+ <vsizetype>1</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="alignment">
+ <set>AlignCenter | WordBreak</set>
+ </property>
+ </widget>
+ <widget class="SpinBox" row="7" column="0">
+ <property name="name">
+ <cstring>iLen</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="suffix">
+ <string>%</string>
+ </property>
+ <property name="maxValue">
+ <number>200</number>
+ </property>
+ <property name="minValue">
+ <number>25</number>
+ </property>
+ <property name="value">
+ <number>100</number>
+ </property>
+ </widget>
+ <widget class="QComboBox" row="1" column="0" rowspan="1" colspan="2">
+ <property name="name">
+ <cstring>iOutput</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>7</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>output port</string>
+ </property>
+ </widget>
+ <widget class="QLabel" row="2" column="1">
+ <property name="name">
+ <cstring>TextLabel2</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="margin">
+ <number>0</number>
+ </property>
+ <property name="indent">
+ <number>1</number>
+ </property>
+ <property name="text">
+ <string>Out ch</string>
+ </property>
+ </widget>
+ <widget class="SpinBox" row="6" column="0">
+ <property name="name">
+ <cstring>iVerz</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="specialValueText">
+ <string>off</string>
+ </property>
+ <property name="maxValue">
+ <number>1000</number>
+ </property>
+ <property name="minValue">
+ <number>-1000</number>
+ </property>
+ </widget>
+ <widget class="SpinBox" row="8" column="0">
+ <property name="name">
+ <cstring>iAnschl</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="maxValue">
+ <number>127</number>
+ </property>
+ <property name="minValue">
+ <number>-127</number>
+ </property>
+ <property name="value">
+ <number>0</number>
+ </property>
+ </widget>
+ <widget class="SpinBox" row="9" column="0">
+ <property name="name">
+ <cstring>iKompr</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="prefix">
+ <string></string>
+ </property>
+ <property name="suffix">
+ <string>%</string>
+ </property>
+ <property name="maxValue">
+ <number>200</number>
+ </property>
+ <property name="minValue">
+ <number>25</number>
+ </property>
+ <property name="value">
+ <number>100</number>
+ </property>
+ </widget>
+ <widget class="SpinBox" row="5" column="0">
+ <property name="name">
+ <cstring>iTransp</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>1</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="specialValueText">
+ <string>off</string>
+ </property>
+ <property name="maxValue">
+ <number>127</number>
+ </property>
+ <property name="minValue">
+ <number>-127</number>
+ </property>
+ <property name="value">
+ <number>1</number>
+ </property>
+ </widget>
+ <widget class="QLabel" row="5" column="1">
+ <property name="name">
+ <cstring>TextLabel9</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>Transp.</string>
+ </property>
+ <property name="indent">
+ <number>2</number>
+ </property>
+ </widget>
+ <widget class="QLabel" row="6" column="1">
+ <property name="name">
+ <cstring>TextLabel10</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>Delay</string>
+ </property>
+ <property name="indent">
+ <number>2</number>
+ </property>
+ </widget>
+ <widget class="QLabel" row="9" column="1">
+ <property name="name">
+ <cstring>TextLabel13</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>Compr.</string>
+ </property>
+ <property name="indent">
+ <number>2</number>
+ </property>
+ </widget>
+ <widget class="QLabel" row="8" column="1">
+ <property name="name">
+ <cstring>TextLabel12</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>Velocity</string>
+ </property>
+ <property name="indent">
+ <number>0</number>
+ </property>
+ </widget>
+ <widget class="QLabel" row="7" column="1">
+ <property name="name">
+ <cstring>TextLabel11</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>Length</string>
+ </property>
+ <property name="indent">
+ <number>2</number>
+ </property>
+ </widget>
+ <widget class="QLayoutWidget" row="3" column="0">
+ <property name="name">
+ <cstring>routingLayout</cstring>
+ </property>
+ <hbox>
+ <widget class="QToolButton">
+ <property name="name">
+ <cstring>iRButton</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>1</hsizetype>
+ <vsizetype>1</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>iR</string>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>input routing</string>
+ </property>
+ </widget>
+ <widget class="QToolButton">
+ <property name="name">
+ <cstring>oRButton</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>1</hsizetype>
+ <vsizetype>1</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>oR</string>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>output routing</string>
+ </property>
+ </widget>
+ </hbox>
+ </widget>
+ <widget class="QLayoutWidget" row="3" column="1">
+ <property name="name">
+ <cstring>routingLayout2</cstring>
+ </property>
+ <hbox>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>iChanDetectLabel</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>W</string>
+ </property>
+ <property name="alignment">
+ <set>AlignCenter</set>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>input detect</string>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>Input detect indicator. Detects all note on-off, controller, aftertouch,
+ program change, and pitchbend (but not sysex or realtime) events
+ on the selected channels, on the selected midi ports.</string>
+ </property>
+ </widget>
+ <widget class="QToolButton">
+ <property name="name">
+ <cstring>recEchoButton</cstring>
+ </property>
+ <property name="maximumSize">
+ <size>
+ <width>14</width>
+ <height>32767</height>
+ </size>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>1</hsizetype>
+ <vsizetype>1</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="toggleButton">
+ <string>true</string>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>Echo recording events to output.</string>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Echo</string>
+ </property>
+ </widget>
+ <spacer>
+ <property name="name">
+ <cstring>echoSpacer</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Maximum</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>4</width>
+ <height>2</height>
+ </size>
+ </property>
+ </spacer>
+ </hbox>
+ </widget>
+ <widget class="QLabel" row="10" column="0" rowspan="1" colspan="2">
+ <property name="name">
+ <cstring>TextLabel1_2</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>7</hsizetype>
+ <vsizetype>4</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="frameShape">
+ <enum>WinPanel</enum>
+ </property>
+ <property name="frameShadow">
+ <enum>Raised</enum>
+ </property>
+ <property name="lineWidth">
+ <number>1</number>
+ </property>
+ <property name="midLineWidth">
+ <number>1</number>
+ </property>
+ <property name="text">
+ <string>Channel Info</string>
+ </property>
+ <property name="alignment">
+ <set>AlignCenter</set>
+ </property>
+ </widget>
+ <widget class="QPushButton" row="11" column="0" rowspan="1" colspan="2">
+ <property name="name">
+ <cstring>iPatch</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>7</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>&lt;unknown&gt;</string>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Select instrument patch</string>
+ </property>
+ </widget>
+ <widget class="QLabel" row="12" column="0">
+ <property name="name">
+ <cstring>textLabel1</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>Record:</string>
+ </property>
+ <property name="alignment">
+ <set>AlignVCenter|AlignRight</set>
+ </property>
+ </widget>
+ <widget class="QLayoutWidget" row="12" column="1">
+ <property name="name">
+ <cstring>recLayout</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <spacer>
+ <property name="name">
+ <cstring>recSpacer</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Maximum</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>4</width>
+ <height>2</height>
+ </size>
+ </property>
+ </spacer>
+ <widget class="QToolButton">
+ <property name="name">
+ <cstring>recordButton</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>1</hsizetype>
+ <vsizetype>1</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>All</string>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Add all settings to song</string>
+ </property>
+ </widget>
+ <spacer>
+ <property name="name">
+ <cstring>allRecSpacer</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Maximum</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>4</width>
+ <height>2</height>
+ </size>
+ </property>
+ </spacer>
+ </hbox>
+ </widget>
+ <widget class="SpinBox" row="13" column="0">
+ <property name="name">
+ <cstring>iHBank</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="specialValueText">
+ <string>off</string>
+ </property>
+ <property name="maxValue">
+ <number>128</number>
+ </property>
+ <property name="minValue">
+ <number>0</number>
+ </property>
+ <property name="value">
+ <number>0</number>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Bank Select MSB. Double-click on/off.</string>
+ </property>
+ </widget>
+ <widget class="QLabel" row="13" column="1">
+ <property name="name">
+ <cstring>TextLabel4</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="lineWidth">
+ <number>1</number>
+ </property>
+ <property name="margin">
+ <number>0</number>
+ </property>
+ <property name="text">
+ <string>H-Bank</string>
+ </property>
+ <property name="indent">
+ <number>2</number>
+ </property>
+ </widget>
+ <widget class="SpinBox" row="14" column="0">
+ <property name="name">
+ <cstring>iLBank</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="specialValueText">
+ <string>off</string>
+ </property>
+ <property name="maxValue">
+ <number>128</number>
+ </property>
+ <property name="minValue">
+ <number>0</number>
+ </property>
+ <property name="value">
+ <number>0</number>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Bank Select LSB. Double-click on/off.</string>
+ </property>
+ </widget>
+ <widget class="QLabel" row="14" column="1">
+ <property name="name">
+ <cstring>TextLabel5</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="lineWidth">
+ <number>1</number>
+ </property>
+ <property name="margin">
+ <number>0</number>
+ </property>
+ <property name="text">
+ <string>L-Bank</string>
+ </property>
+ <property name="indent">
+ <number>2</number>
+ </property>
+ </widget>
+ <widget class="SpinBox" row="15" column="0">
+ <property name="name">
+ <cstring>iProgram</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="specialValueText">
+ <string>off</string>
+ </property>
+ <property name="maxValue">
+ <number>128</number>
+ </property>
+ <property name="minValue">
+ <number>0</number>
+ </property>
+ <property name="value">
+ <number>0</number>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Program. Double-click on/off.</string>
+ </property>
+ </widget>
+ <widget class="QLayoutWidget" row="15" column="1">
+ <property name="name">
+ <cstring>progLayout</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>0</number>
+ </property>
+ <property name="spacing">
+ <number>0</number>
+ </property>
+ <spacer>
+ <property name="name">
+ <cstring>progSpacer</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Maximum</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>4</width>
+ <height>2</height>
+ </size>
+ </property>
+ </spacer>
+ <widget class="QToolButton">
+ <property name="name">
+ <cstring>progRecButton</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>1</hsizetype>
+ <vsizetype>1</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>Prog.</string>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Add bank + prog settings to song</string>
+ </property>
+ </widget>
+ <spacer>
+ <property name="name">
+ <cstring>progRecSpacer</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Maximum</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>4</width>
+ <height>2</height>
+ </size>
+ </property>
+ </spacer>
+ </hbox>
+ </widget>
+ <widget class="SpinBox" row="16" column="0">
+ <property name="name">
+ <cstring>iLautst</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="specialValueText">
+ <string>off</string>
+ </property>
+ <property name="maxValue">
+ <number>127</number>
+ </property>
+ <property name="minValue">
+ <number>-1</number>
+ </property>
+ <property name="value">
+ <number>-1</number>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Volume. Double-click on/off.</string>
+ </property>
+ </widget>
+ <widget class="QLayoutWidget" row="16" column="1">
+ <property name="name">
+ <cstring>volLayout</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>0</number>
+ </property>
+ <property name="spacing">
+ <number>0</number>
+ </property>
+ <spacer>
+ <property name="name">
+ <cstring>volSpacer</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Maximum</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>4</width>
+ <height>2</height>
+ </size>
+ </property>
+ </spacer>
+ <widget class="QToolButton">
+ <property name="name">
+ <cstring>volRecButton</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>1</hsizetype>
+ <vsizetype>1</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>Vol.</string>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Add vol setting to song</string>
+ </property>
+ </widget>
+ <spacer>
+ <property name="name">
+ <cstring>volRecSpacer</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Maximum</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>4</width>
+ <height>2</height>
+ </size>
+ </property>
+ </spacer>
+ </hbox>
+ </widget>
+ <widget class="SpinBox" row="17" column="0">
+ <property name="name">
+ <cstring>iPan</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="specialValueText">
+ <string>off</string>
+ </property>
+ <property name="maxValue">
+ <number>63</number>
+ </property>
+ <property name="minValue">
+ <number>-65</number>
+ </property>
+ <property name="value">
+ <number>-65</number>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Change stereo position. Double-click on/off.</string>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>Change stereo position. Double-click on/off.</string>
+ </property>
+ </widget>
+ <widget class="QLayoutWidget" row="17" column="1">
+ <property name="name">
+ <cstring>panLayout</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>0</number>
+ </property>
+ <property name="spacing">
+ <number>0</number>
+ </property>
+ <spacer>
+ <property name="name">
+ <cstring>panSpacer</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Maximum</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>4</width>
+ <height>2</height>
+ </size>
+ </property>
+ </spacer>
+ <widget class="QToolButton">
+ <property name="name">
+ <cstring>panRecButton</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>1</hsizetype>
+ <vsizetype>1</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>Pan</string>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Add pan setting to song</string>
+ </property>
+ </widget>
+ <spacer>
+ <property name="name">
+ <cstring>panRecSpacer</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Maximum</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>4</width>
+ <height>2</height>
+ </size>
+ </property>
+ </spacer>
+ </hbox>
+ </widget>
+ <spacer row="18" column="0" rowspan="1" colspan="2">
+ <property name="name">
+ <cstring>spacer5</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Vertical</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>20</width>
+ <height>40</height>
+ </size>
+ </property>
+ </spacer>
+ </grid>
+</widget>
+<customwidgets>
+ <customwidget>
+ <class>SpinBox</class>
+ <header location="global">spinbox.h</header>
+ <sizehint>
+ <width>50</width>
+ <height>20</height>
+ </sizehint>
+ <container>0</container>
+ <sizepolicy>
+ <hordata>5</hordata>
+ <verdata>5</verdata>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ <pixmap>image0</pixmap>
+ </customwidget>
+</customwidgets>
+<images>
+ <image name="image0">
+ <data format="PNG" length="1002">89504e470d0a1a0a0000000d4948445200000016000000160806000000c4b46c3b000003b149444154388dad945f4c5b551cc73fe7dc4b7b4bcba0762d45c43114323599ee6192609c51d883892ce083f1718b3ebb185f8dc91e972cf39d2d2a2f1af664b6f1e0fe3863a0718969700eb0c52142da0242a1bd6d696f7bcff101585203ceb8fd9ece39f99dcff9fe7edf939f88c562ec465f5f9fe609442c161362173c3e3eae7b7a7ac8e7f36432196cdbfe4f907c3e4f2291201e8fe338cec3737357e9e8e828aded1e229d650e1f2d51754b082110124c13a4dc5ea341eb9dc284c0558a853f3ce8cb0677ef500fde7d39d2596679e326597b8e9abb85d7a770ab16ab6983ec5a05b487a70e36f0f4e10afe408d6a558310980108478dba4a1e8233990c5d474b64ed39aa3a8fe5f3317fbf81dbd70bccfeb205947632fd74f6589c1c6ea2f70d03a58ba0c1f2c9bdc1b66de3b8256a6e11cbe7e3ee1d181b590124fe2693aeee08d223c82c3a2c24b7b874bec8f26288774f7bd054504aef0dde6e99c0eb83f9fb266323cb80a27fb0958141836044605a2ee5523393371cc646fee2da37195aa35d0c0c5b4859ac03d7e91712dcaac5adab3650a3ff9d08ef7dd8404bb48869e5d958b5b87dadc4c9a1464e9f0d0326df7ebd86bd2e310cb1bf62d384d59441f2d70a070e1c60e09489929b988681bdd9cc97170bcc4c65595f71f8e0e3301337fc24a7732467831875a47f289652b0be5e4151e6d07316c1b0c0340d8ab92023e76d66a6b2840e36d2fb7a13fee632475e6edc367ea98a90fb98b7dd6310ca0328a44761582e1bab41befabcc0ec940d28bc5e93b68e064cab84e1d9beaeb48934eac1f53b01c1b000fca496aa54b61a99fcde61662a4b4b4b23d1680be9d426173e4df3602a48ea411989a4fd590f52a8fd156b05ed9d350e3defe3cfdf4b4c7ce770ea7d3fb9f520afbe1620daeee5c26735d20b9b9cfb6811a754a439e4e5c5639a4caa1e5caf586bfc0197b78702005cb9b4cae4cd3267ce8638fe964bd72b393e39d74928d242617303a756a37f284447770dcdbffc6384a05a85de1306e9a52057c7527c7131c3c42d3f475eb2303c82d4fc3276d6811db37efeb148723082d9b08f79f97c1e5729109a9a28307cc622d2d6cdf52b2b24efe548dedb00142009862cfa879ee1a71f6cec928353511472fbf4389148b0b0e0c108081412458dfe21c9f11351e67e7358595468246d1d1e5e38a6e9e851bc39d84ab502a669331dafec0d8ec7e3e8cb06e1a881d727d1ae40180a434a8c9db129a54126ad48a7358c2b4c5352c8c374bcccdab2bb37d8719cba79fab8211f9df218e0582c261e95f8bfc04f1a1e8bc5c4dfe0a190172af6a9690000000049454e44ae426082</data>
+ </image>
+</images>
+<tabstops>
+ <tabstop>iOutput</tabstop>
+ <tabstop>iOutputChannel</tabstop>
+ <tabstop>iTransp</tabstop>
+ <tabstop>iVerz</tabstop>
+ <tabstop>iLen</tabstop>
+ <tabstop>iAnschl</tabstop>
+ <tabstop>iKompr</tabstop>
+ <tabstop>iPatch</tabstop>
+ <tabstop>iHBank</tabstop>
+ <tabstop>iLBank</tabstop>
+ <tabstop>iProgram</tabstop>
+ <tabstop>iLautst</tabstop>
+ <tabstop>iPan</tabstop>
+</tabstops>
+<layoutdefaults spacing="6" margin="11"/>
+</UI>
diff --git a/muse2/muse/widgets/mtscale.cpp b/muse2/muse/widgets/mtscale.cpp
new file mode 100644
index 00000000..42d04275
--- /dev/null
+++ b/muse2/muse/widgets/mtscale.cpp
@@ -0,0 +1,425 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: mtscale.cpp,v 1.8.2.7 2009/05/03 04:14:01 terminator356 Exp $
+// (C) Copyright 1999 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include <values.h>
+
+#include <qpainter.h>
+#include <qtooltip.h>
+#include <qcursor.h>
+//Added by qt3to4:
+#include <QPixmap>
+#include <QMouseEvent>
+#include <QEvent>
+#include "mtscale.h"
+#include "midieditor.h"
+#include "globals.h"
+#include "song.h"
+#include "../marker/marker.h"
+#include "../marker/markerview.h"
+#include "icons.h"
+#include "gconfig.h"
+
+//---------------------------------------------------------
+// MTScale
+// Midi Time Scale
+//---------------------------------------------------------
+
+MTScale::MTScale(int* r, QWidget* parent, int xs, bool _mode)
+ : View(parent, xs, 1)
+ {
+ waveMode = _mode;
+ QToolTip::add(this, tr("bar scale"));
+ barLocator = false;
+ raster = r;
+ if (waveMode) {
+ pos[0] = tempomap.tick2frame(song->cpos());
+ pos[1] = tempomap.tick2frame(song->lpos());
+ pos[2] = tempomap.tick2frame(song->rpos());
+ }
+ else {
+ pos[0] = song->cpos();
+ pos[1] = song->lpos();
+ pos[2] = song->rpos();
+ }
+ pos[3] = MAXINT; // do not show
+ button = Qt::NoButton;
+ setMouseTracking(true);
+ connect(song, SIGNAL(posChanged(int, unsigned, bool)), SLOT(setPos(int, unsigned, bool)));
+ connect(song, SIGNAL(songChanged(int)), SLOT(songChanged(int)));
+ connect(song, SIGNAL(markerChanged(int)), SLOT(redraw()));
+
+ setFixedHeight(28);
+ setBg(QColor(0xe0, 0xe0, 0xe0));
+ }
+
+//---------------------------------------------------------
+// songChanged
+//---------------------------------------------------------
+
+void MTScale::songChanged(int type)
+ {
+ if (type & (SC_SIG|SC_TEMPO)) {
+ if ((type & SC_TEMPO) && waveMode) {
+ pos[0] = tempomap.tick2frame(song->cpos());
+ pos[1] = tempomap.tick2frame(song->lpos());
+ pos[2] = tempomap.tick2frame(song->rpos());
+ }
+ redraw();
+ }
+ }
+
+//---------------------------------------------------------
+// setPos
+//---------------------------------------------------------
+
+void MTScale::setPos(int idx, unsigned val, bool)
+ {
+ if (val == MAXINT) {
+ if (idx == 3) {
+ pos[3] = MAXINT;
+ redraw(QRect(0, 0, width(), height()));
+ }
+ return;
+ }
+ if (waveMode)
+ val = tempomap.tick2frame(val);
+ if (val == pos[idx])
+ return;
+ //unsigned opos = mapx(pos[idx] == MAXINT ? val : pos[idx]);
+ int opos = mapx(pos[idx] == MAXINT ? val : pos[idx]);
+ pos[idx] = val;
+ if (!isVisible())
+ return;
+
+ int tval = mapx(val);
+ int x = -9;
+ int w = 18;
+
+ if (tval < 0) { // tval<0 occurs whenever the window is scrolled left, so I switched to signed int (ml)
+ //printf("MTScale::setPos - idx:%d val:%d tval:%d opos:%d w:%d h:%d\n", idx, val, tval, opos, width(), height());
+
+ redraw(QRect(0,0,width(),height()));
+ return;
+ }
+ //if (opos > (unsigned int) tval) { //prevent compiler warning: comparison signed/unsigned
+ if (opos > tval) {
+ w += opos - tval;
+ x += tval;
+ }
+ else {
+ w += tval - opos;
+ x += opos;
+ }
+ //printf("MTScale::setPos idx:%d val:%d tval:%d opos:%d x:%d w:%d h:%d\n", idx, val, tval, opos, x, w, height());
+
+ redraw(QRect(x, 0, w, height()));
+ }
+
+//---------------------------------------------------------
+// viewMousePressEvent
+//---------------------------------------------------------
+
+void MTScale::viewMousePressEvent(QMouseEvent* event)
+ {
+ button = event->button();
+ viewMouseMoveEvent(event);
+ }
+
+//---------------------------------------------------------
+// viewMouseReleaseEvent
+//---------------------------------------------------------
+
+void MTScale::viewMouseReleaseEvent(QMouseEvent*)
+ {
+ button = Qt::NoButton;
+ }
+
+//---------------------------------------------------------
+// viewMouseMoveEvent
+//---------------------------------------------------------
+
+void MTScale::viewMouseMoveEvent(QMouseEvent* event)
+ {
+ if (event->state() & Qt::ShiftModifier )
+ setCursor(QCursor(Qt::PointingHandCursor));
+ else
+ setCursor(QCursor(Qt::ArrowCursor));
+
+ int x = event->x();
+ if (waveMode)
+ x = tempomap.frame2tick(x);
+ x = sigmap.raster(x, *raster);
+ if (x < 0)
+ x = 0;
+ emit timeChanged(x);
+ int i;
+ switch (button) {
+ case Qt::LeftButton:
+ i = 0;
+ break;
+ case Qt::MidButton:
+ i = 1;
+ break;
+ case Qt::RightButton:
+ i = 2;
+ break;
+ default:
+ return; // if no button is pressed the function returns here
+ }
+ Pos p(x, true);
+
+ if(i== 0 && (event->state() & Qt::ShiftModifier )) { // If shift +LMB we add a marker
+ Marker *alreadyExists = song->getMarkerAt(x);
+ if (!alreadyExists) {
+ song->addMarker(QString(""), x, false);
+ // Removed p3.3.43
+ // Song::addMarker() already emits a 'markerChanged'.
+ //emit addMarker(x);
+ }
+ }
+ else if (i== 2 && (event->state() & Qt::ShiftModifier )) { // If shift +RMB we remove a marker
+ Marker *toRemove = song->getMarkerAt(x);
+ if (toRemove)
+ song->removeMarker(toRemove);
+ else
+ printf("No marker to remove\n");
+ }
+ else
+ song->setPos(i, p); // all other cases: relocating one of the locators
+ }
+
+//---------------------------------------------------------
+// leaveEvent
+//---------------------------------------------------------
+
+void MTScale::leaveEvent(QEvent*)
+ {
+ emit timeChanged(MAXINT);
+ }
+
+//---------------------------------------------------------
+// draw
+//---------------------------------------------------------
+
+void MTScale::pdraw(QPainter& p, const QRect& r)
+ {
+ int x = r.x();
+ int w = r.width();
+
+ // Added by Tim. p3.3.6
+ //printf("MTScale::pdraw x:%d w:%d\n", x, w);
+
+ x -= 20;
+ w += 40; // wg. Text
+
+ //---------------------------------------------------
+ // draw Marker
+ //---------------------------------------------------
+
+ int y = 12;
+ p.setPen(Qt::black);
+ p.setFont(config.fonts[4]);
+ p.drawLine(r.x(), y+1, r.x() + r.width(), y+1);
+ QRect tr(r);
+ tr.setHeight(12);
+ MarkerList* marker = song->marker();
+ for (iMarker m = marker->begin(); m != marker->end(); ++m) {
+
+ int xp;
+ if(waveMode)
+ xp = mapx(m->second.frame());
+ else
+ xp = mapx(m->second.tick());
+ if (xp > x+w)
+ break;
+ int xe = r.x() + r.width();
+ iMarker mm = m;
+ ++mm;
+ if (mm != marker->end()) {
+
+ if(waveMode)
+ xe = mapx(tempomap.tick2frame(mm->first));
+ else
+ xe = mapx(mm->first);
+ }
+
+ QRect tr(xp, 0, xe-xp, 13);
+ //if (m->second.current())
+ // p.fillRect(tr, white);
+
+ QRect wr = r.intersect(tr);
+ //if (r.intersects(tr))
+ if(!wr.isEmpty())
+ {
+ if (m->second.current())
+ {
+ //p.fillRect(tr, white);
+ p.fillRect(wr, Qt::white);
+ }
+
+ int x2;
+ //iMarker mm = m;
+ //++mm;
+ if (mm != marker->end())
+ {
+ if(waveMode)
+ x2 = mapx(tempomap.tick2frame(mm->first));
+ else
+ x2 = mapx(mm->first);
+ }
+ else
+ x2 = xp+200;
+
+ //printf("MTScale::pdraw marker %s xp:%d y:%d h:%d r.x:%d r.w:%d\n", m->second.name().latin1(), xp, height(), y, r.x(), r.width());
+
+ // Must be reasonable about very low negative x values! With long songs > 15min
+ // and with high horizontal magnification, 'ghost' drawings appeared,
+ // apparently the result of truncation later (xp = -65006 caused ghosting
+ // at bar 245 with magnification at max.), even with correct clipping region
+ // applied to painter in View::paint(). Tim. Apr 5 2009
+ // Quote: "Warning: Note that QPainter does not attempt to work around
+ // coordinate limitations in the underlying window system. Some platforms may
+ // behave incorrectly with coordinates as small as +/-4000."
+ if(xp >= -32)
+ p.drawPixmap(xp, 0, *flagIconS);
+
+ if(xp >= -1023)
+ {
+ QRect r = QRect(xp+10, 0, x2-xp, 12);
+ p.setPen(Qt::black);
+ p.drawText(r, Qt::AlignLeft|Qt::AlignVCenter, m->second.name());
+ }
+
+ if(xp >= 0)
+ {
+ p.setPen(Qt::green);
+ p.drawLine(xp, y, xp, height());
+ }
+ }
+ }
+
+ //---------------------------------------------------
+ // draw location marker
+ //---------------------------------------------------
+
+ int h = height()-12;
+
+ if (barLocator) {
+ p.setPen(Qt::red);
+ int xp = mapx(pos[0]);
+ if (xp >= x && xp < x+w)
+ p.drawLine(xp, y, xp, h);
+ p.setPen(Qt::blue);
+ xp = mapx(pos[1]);
+ if (xp >= x && xp < x+w)
+ p.drawLine(xp, y, xp, h);
+ xp = mapx(pos[2]);
+ if (xp >= x && xp < x+w)
+ p.drawLine(xp, y, xp, h);
+ }
+ else {
+ for (int i = 0; i < 3; ++i) {
+ int xp = mapx(pos[i]);
+ if (xp >= x && xp < x+w) {
+ QPixmap* pm = markIcon[i];
+ p.drawPixmap(xp - pm->width()/2, y-1, *pm);
+ }
+ }
+ }
+ p.setPen(Qt::black);
+ if (pos[3] != MAXINT) {
+ int xp = mapx(pos[3]);
+ if (xp >= x && xp < x+w)
+ p.drawLine(xp, 0, xp, height());
+ }
+
+ unsigned ctick;
+ int bar1, bar2, beat;
+ unsigned tick;
+
+ if (waveMode) {
+ ctick = tempomap.frame2tick(mapxDev(x));
+ sigmap.tickValues(ctick, &bar1, &beat, &tick);
+ sigmap.tickValues(tempomap.frame2tick(mapxDev(x+w)),
+ &bar2, &beat, &tick);
+ }
+ else {
+ ctick = mapxDev(x);
+ sigmap.tickValues(ctick, &bar1, &beat, &tick);
+ sigmap.tickValues(mapxDev(x+w), &bar2, &beat, &tick);
+ }
+
+//printf("bar %d %d-%d=%d\n", bar, ntick, stick, ntick-stick);
+
+ int stick = sigmap.bar2tick(bar1, 0, 0);
+ int ntick;
+ for (int bar = bar1; bar <= bar2; bar++, stick = ntick) {
+ ntick = sigmap.bar2tick(bar+1, 0, 0);
+ int tpix, a, b=0;
+ if (waveMode) {
+ a = tempomap.tick2frame(ntick);
+ b = tempomap.tick2frame(stick);
+ tpix = rmapx(a - b);
+ }
+ else {
+ tpix = rmapx(ntick - stick);
+ }
+ if (tpix < 64) {
+ // don�t show beats if measure is this small
+ int n = 1;
+ if (tpix < 32)
+ n = 2;
+ if (tpix <= 16)
+ n = 4;
+ if (tpix < 8)
+ n = 8;
+ if (tpix <= 4)
+ n = 16;
+ if (tpix <= 2)
+ n = 32;
+ if (bar % n)
+ continue;
+ p.setFont(config.fonts[3]);
+ int x = mapx(waveMode ? b : stick);
+ QString s;
+ s.setNum(bar + 1);
+ p.drawLine(x, y+1, x, y+1+h);
+// QRect r = QRect(x+2, y, 0, h);
+ QRect r = QRect(x+2, y, 1000, h);
+ p.drawText(r, Qt::AlignLeft|Qt::AlignVCenter|Qt::TextDontClip, s);
+ }
+ else {
+ int z, n;
+ sigmap.timesig(stick, z, n);
+ for (int beat = 0; beat < z; beat++) {
+ int xx = sigmap.bar2tick(bar, beat, 0);
+ if (waveMode)
+ xx = tempomap.tick2frame(xx);
+ int xp = mapx(xx);
+ QString s;
+ QRect r(xp+2, y, 1000, h);
+ int y1;
+ int num;
+ if (beat == 0) {
+ num = bar + 1;
+ y1 = y + 1;
+ p.setFont(config.fonts[3]);
+ }
+ else {
+ num = beat + 1;
+ y1 = y + 7;
+ p.setFont(config.fonts[1]);
+ r.setY(y+3);
+ }
+ s.setNum(num);
+ p.drawLine(xp, y1, xp, y+1+h);
+ p.drawText(r, Qt::AlignLeft|Qt::AlignVCenter|Qt::TextDontClip, s);
+ }
+ }
+ }
+ }
+
diff --git a/muse2/muse/widgets/mtscale.h b/muse2/muse/widgets/mtscale.h
new file mode 100644
index 00000000..c632a24b
--- /dev/null
+++ b/muse2/muse/widgets/mtscale.h
@@ -0,0 +1,53 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: mtscale.h,v 1.3 2004/04/27 22:27:06 spamatica Exp $
+// (C) Copyright 1999 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __MTSCALE_H__
+#define __MTSCALE_H__
+
+#include "view.h"
+//Added by qt3to4:
+#include <QMouseEvent>
+#include <QEvent>
+
+class QPainter;
+
+//---------------------------------------------------------
+// MTScale
+// scale for midi track
+//---------------------------------------------------------
+
+class MTScale : public View {
+ Q_OBJECT
+ int* raster;
+ unsigned pos[4];
+ int button;
+ bool barLocator;
+ bool waveMode;
+
+ private slots:
+ void songChanged(int);
+
+ protected:
+ virtual void pdraw(QPainter&, const QRect&);
+ virtual void viewMousePressEvent(QMouseEvent* event);
+ virtual void viewMouseMoveEvent(QMouseEvent* event);
+ virtual void viewMouseReleaseEvent(QMouseEvent* event);
+ virtual void leaveEvent(QEvent*e);
+
+ signals:
+ void timeChanged(unsigned);
+ //void addMarker(int);
+
+ public slots:
+ void setPos(int, unsigned, bool);
+
+ public:
+ MTScale(int* raster, QWidget* parent, int xscale, bool f = false);
+ void setBarLocator(bool f) { barLocator = f; }
+ };
+#endif
+
diff --git a/muse2/muse/widgets/musewidgetsplug.cpp b/muse2/muse/widgets/musewidgetsplug.cpp
new file mode 100644
index 00000000..4a7f5f24
--- /dev/null
+++ b/muse2/muse/widgets/musewidgetsplug.cpp
@@ -0,0 +1,539 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: musewidgetsplug.cpp,v 1.9.2.9 2009/12/01 03:52:40 terminator356 Exp $
+// (C) Copyright 2001-2003 Werner Schweer (ws@seh.de)
+//=========================================================
+
+// this file makes some of the MusE widgets available
+// to QT-Designer
+
+#include <qwidgetplugin.h>
+//Added by qt3to4:
+#include <QPixmap>
+#include "posedit.h"
+#include "poslabel.h"
+#include "pitchedit.h"
+#include "pitchlabel.h"
+#include "sig.h"
+#include "tempo.h"
+#include "tempolabel.h"
+#include "sigedit.h"
+#include "slider.h"
+#include "doublelabel.h"
+#include "checkbox.h"
+#include "combobox.h"
+#include "gconfig.h"
+
+int sampleRate = 44100; // some dummy values to get things compiled/linked
+int division = 384;
+int mtcType = 0;
+bool hIsB = false;
+
+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"
+ };
+
+GlobalConfigValues config = {
+ {
+ QColor(0xff, 0xff, 0xff), // palette
+ QColor(0xff, 0xff, 0xff),
+ QColor(0xff, 0xff, 0xff),
+ QColor(0xff, 0xff, 0xff),
+ QColor(0xff, 0xff, 0xff),
+ QColor(0xff, 0xff, 0xff),
+ QColor(0xff, 0xff, 0xff),
+ QColor(0xff, 0xff, 0xff),
+ QColor(0xff, 0xff, 0xff),
+ QColor(0xff, 0xff, 0xff),
+ QColor(0xff, 0xff, 0xff),
+ QColor(0xff, 0xff, 0xff),
+ QColor(0xff, 0xff, 0xff),
+ QColor(0xff, 0xff, 0xff),
+ QColor(0xff, 0xff, 0xff),
+ QColor(0xff, 0xff, 0xff)
+ },
+ {
+ 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(0, 0, 255), // transportHandleColor;
+ QColor(255, 0, 0), // bigTimeForegroundColor;
+ QColor(0, 0, 0), // bigTimeBackgroundColor;
+ QColor(200, 200, 200), // waveEditBackgroundColor;
+ {
+ QFont(QString("arial"), 10, QFont::Normal),
+ QFont(QString("arial"), 8, QFont::Normal),
+ QFont(QString("arial"), 10, QFont::Normal),
+ QFont(QString("arial"), 10, QFont::Bold),
+ QFont(QString("arial"), 8, QFont::Bold), // timescale numbers
+ QFont(QString("Lucidatypewriter"), 14, QFont::Bold),
+ QFont(QString("arial"), 8, QFont::Bold, true) // Mixer strip labels. Looks and fits better with bold + italic than bold alone,
+ // at the price of only few more pixels than Normal mode.
+ },
+ QColor(0xff, 0xff, 0xff), // trackBg;
+ QColor(0x80, 0xff, 0x80), // selected track Bg;
+ QColor(0x00, 0x00, 0x00), // selected track Fg;
+ QColor(0xff, 0xff, 0xff), // midiTrackBg;
+ QColor(255, 170, 0), // ctrlGraphFg; Medium orange
+ QColor(0xff, 0xff, 0xff), // drumTrackBg;
+ QColor(0xff, 0xff, 0xff), // waveTrackBg;
+ QColor(0xff, 0xff, 0xff), // outputTrackBg;
+ QColor(0xff, 0xff, 0xff), // inputTrackBg;
+ QColor(0xff, 0xff, 0xff), // groupTrackBg;
+ QColor(0xff, 0xff, 0xff), // auxTrackBg;
+ QColor(0xff, 0xff, 0xff), // synthTrackBg;
+ QColor(98, 124, 168), // part canvas bg
+ QColor(98, 124, 168), // mixerBg;
+
+ 384, // division;
+ 1024, // rtcTicks
+ -60, // int minMeter;
+ -60.0, // double minSlider;
+ false, // use Jack freewheel
+ 20, // int guiRefresh;
+ QString(""), // helpBrowser
+ true, // extendedMidi
+ 384, // division for smf export
+ QString(""), // copyright string for smf export
+ 1, // smf export file format
+ false, // midi export file 2 byte timesigs instead of 4
+ true, // optimize midi export file note offs
+ true, // Split imported tracks into multiple parts.
+ 1, // startMode
+ QString(""), // start song path
+ 384, // gui division
+ QRect(0, 0, 400, 300), // GeometryMain;
+ QRect(0, 0, 200, 100), // GeometryTransport;
+ QRect(0, 0, 600, 200), // GeometryBigTime;
+ QRect(0, 0, 400, 300), // GeometryPianoroll;
+ QRect(0, 0, 400, 300), // GeometryDrumedit;
+ //QRect(0, 0, 300, 500), // GeometryMixer; // Obsolete
+ {
+ QString("Mixer A"),
+ QRect(0, 0, 300, 500), // Mixer1
+ true, true, true, true,
+ true, true, true, true
+ },
+ {
+ QString("Mixer B"),
+ QRect(200, 200, 300, 500), // Mixer2
+ true, true, true, true,
+ true, true, true, true
+ },
+ true, // TransportVisible;
+ false, // BigTimeVisible;
+ false, // mixer1Visible;
+ false, // mixer2Visible;
+
+ false, // markerVisible; // This line was missing 2007-01-08 (willyfoobar)
+ true, // showSplashScreen
+ 1, // canvasShowPartType 1 - names, 2 events
+ 5, // canvasShowPartEvent
+ false, // canvasShowGrid;
+ QString(""), // canvasBgPixmap;
+ QString(""), // style
+ QString(""), // externalWavEditor //this line was missing 2007-01-08 (willyfoobar)
+ false, // useOldStyleStopShortCut
+ true, // moveArmedCheckBox
+ true, // useDenormalBias
+ false, // useOutputLimiter
+ true, // showDidYouKnow
+ false // vstInPlace Enable VST in-place processing
+ 44100, // Dummy audio preferred sample rate
+ 512 // Dummy audio buffer size
+ };
+
+//---------------------------------------------------------
+// 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]);
+ if (hIsB) {
+ if (s == "h")
+ s = "b";
+ else if (s == "H")
+ s = "B";
+ }
+ return s + o;
+ }
+
+
+/* XPM */
+static const char* slider_pixmap[]={
+"22 22 50 1",
+". c None",
+"f c #004005",
+"g c #004007",
+"h c #004107",
+"m c #004108",
+"j c #00430a",
+"E c #00501f",
+"s c #005021",
+"e c #014006",
+"l c #024006",
+"F c #095e34",
+"D c #0b572a",
+"k c #0b582b",
+"n c #0f5328",
+"u c #12562d",
+"o c #155a35",
+"p c #165c38",
+"q c #165c39",
+"i c #17501a",
+"I c #175522",
+"r c #18603f",
+"N c #18795e",
+"t c #187a60",
+"R c #1e5a29",
+"y c #22633d",
+"O c #307755",
+"B c #408262",
+"v c #439191",
+"G c #468667",
+"d c #4c7a51",
+"H c #4d8a6c",
+"J c #569174",
+"C c #599276",
+"P c #5e967a",
+"A c #63b1c2",
+"V c #659477",
+"Q c #659b80",
+"S c #6da087",
+"w c #70b2bc",
+"x c #72b5c0",
+"z c #74b7c3",
+"K c #79a891",
+"a c #7ea48a",
+"T c #8cb4a0",
+"L c #a3c3b3",
+"M c #b7d8d1",
+"U c #bedcd5",
+"c c #c3d2c3",
+"b c #f1f5f1",
+"# c #ffffff",
+"......................",
+"......................",
+"......................",
+"......................",
+"......................",
+"......###a............",
+"......#bcad...........",
+"......#bcad...........",
+"......#bcad...........",
+"..efgh#bcaihhhhhhhjk..",
+".lmnop#bcaippppppqrst.",
+".huvwx#bcayxxxxxxzABC.",
+".DEFGH#bcaIHHHHHHJKLM.",
+"..NOPQ#bcaRQQQQQQSTU..",
+"......#bcad...........",
+"......#bcad...........",
+"......#bcad...........",
+"......VVVVd...........",
+".......dddd...........",
+"......................",
+"......................",
+"......................"};
+static const char *posedit_pixmap[] = {
+ "22 22 8 1",
+ " c Gray100",
+ ". c Gray97",
+ "X c #4f504f",
+ "o c #00007f",
+ "O c Gray0",
+ "+ c none",
+ "@ c Gray0",
+ "# c Gray0",
+ "++++++++++++++++++++++",
+ "++++++++++++++++++++++",
+ "++++++++++++++++++++++",
+ "++++++++++++++++++++++",
+ "+OOOOOOOOOOOOOOOOOOOO+",
+ "OOXXXXXXXXXXXXXXXXXXOO",
+ "OXX. OO OO O",
+ "OX. oo O O",
+ "OX. oo O .O",
+ "OX ooo oooo O O",
+ "OX oo oo oo O O",
+ "OX oooo oo oo O O",
+ "OX oo oo oo oo O O",
+ "OX oo oo oo oo O O",
+ "OX oooo oooo O O",
+ "OX OO OO O",
+ "OO..................OO",
+ "+OOOOOOOOOOOOOOOOOOOO+",
+ "++++++++++++++++++++++",
+ "++++++++++++++++++++++",
+ "++++++++++++++++++++++",
+ "++++++++++++++++++++++"
+ };
+
+static const char *pitchedit_pixmap[] = {
+ "22 22 8 1",
+ " c Gray100",
+ ". c Gray97",
+ "X c #4f504f",
+ "o c #00007f",
+ "O c Gray0",
+ "+ c none",
+ "@ c Gray0",
+ "# c Gray0",
+ "++++++++++++++++++++++",
+ "++++++++++++++++++++++",
+ "++++++++++++++++++++++",
+ "++++++++++++++++++++++",
+ "+OOOOOOOOOOOOOOOOOOOO+",
+ "OOXXXXXXXXXXXXXXXXXXOO",
+ "OXX. OO OO O",
+ "OX. o O O",
+ "OX. oo O .O",
+ "OX o o O O",
+ "OX o O O",
+ "OX o o O O",
+ "OX oooo O O",
+ "OX o O O",
+ "OX O O",
+ "OX OO OO O",
+ "OO..................OO",
+ "+OOOOOOOOOOOOOOOOOOOO+",
+ "++++++++++++++++++++++",
+ "++++++++++++++++++++++",
+ "++++++++++++++++++++++",
+ "++++++++++++++++++++++"
+ };
+
+//---------------------------------------------------------
+// MusEPlugin
+//---------------------------------------------------------
+
+class MusEPlugin : public QWidgetPlugin {
+ public:
+ MusEPlugin() {}
+ ~MusEPlugin() {}
+ QStringList keys() const;
+ QWidget* create(const QString& key, QWidget* parent=0,
+ const char* name = 0);
+ QString group(const QString& key) const;
+ QIcon iconSet(const QString& key) const;
+ QString includeFile(const QString& key) const;
+ QString toolTip(const QString& key) const;
+ QString whatsThis(const QString& key) const;
+ bool isContainer(const QString& key) const;
+ };
+
+//---------------------------------------------------------
+// keys
+//---------------------------------------------------------
+
+QStringList MusEPlugin::keys() const
+ {
+ QStringList list;
+ list << QString("PosEdit")
+ << QString("PitchEdit")
+ << QString("PosLabel")
+ << QString("PitchLabel")
+ << QString("TempoLabel")
+ << QString("TempoEdit")
+ << QString("SigEdit")
+ << QString("Slider")
+ << QString("DoubleLabel")
+ << QString("CheckBox")
+ << QString("ComboBox")
+ ;
+ return list;
+ }
+
+//---------------------------------------------------------
+// create
+//---------------------------------------------------------
+
+QWidget* MusEPlugin::create(const QString& key, QWidget* parent,
+ const char* name)
+ {
+ if (key == QString("PosEdit"))
+ return new PosEdit(parent, name);
+ else if (key == QString("PitchEdit"))
+ return new PitchEdit(parent, name);
+ else if (key == QString("PitchLabel"))
+ return new PitchLabel(parent, name);
+ else if (key == QString("PosLabel"))
+ return new PosLabel(parent, name);
+ else if (key == QString("TempoLabel"))
+ return new TempoLabel(parent, name);
+ else if (key == QString("TempoEdit"))
+ return new TempoEdit(parent, name);
+ else if (key == QString("SigEdit"))
+ return new SigEdit(parent, name);
+ else if (key == QString("Slider"))
+ return new Slider(parent, name);
+ else if (key == QString("DoubleLabel"))
+ return new DoubleLabel(parent, name);
+ else if (key == QString("CheckBox"))
+ return new CheckBox(parent, -1, name);
+ else if (key == QString("ComboBox"))
+ return new ComboBox(parent, name);
+ return 0;
+ }
+
+//---------------------------------------------------------
+// group
+//---------------------------------------------------------
+
+QString MusEPlugin::group(const QString& /*key*/) const
+ {
+ return QString("MusE");
+ }
+
+//---------------------------------------------------------
+// iconSet
+//---------------------------------------------------------
+
+QIcon MusEPlugin::iconSet(const QString& key) const
+ {
+ if (key == "PosEdit" || key == "PosLabel")
+ return QIcon(QPixmap(posedit_pixmap));
+ else if (key == "PitchEdit" || key == "PitchLabel")
+ return QIcon(QPixmap(pitchedit_pixmap));
+ else if (key == "TempoEdit" || key == "TempoLabel")
+ return QIcon(QPixmap(pitchedit_pixmap));
+ else if (key == "SigEdit")
+ return QIcon(QPixmap(pitchedit_pixmap));
+ else if (key == QString("Slider"))
+ return QIcon(QPixmap(slider_pixmap));
+// else if (key == QString("CheckBox"))
+// return QIconSet(QPixmap(slider_pixmap));
+// else if (key == QString("ComboBox"))
+// return QIconSet(QPixmap(slider_pixmap));
+ return QIcon();
+ }
+
+//---------------------------------------------------------
+// includeFile
+//---------------------------------------------------------
+
+QString MusEPlugin::includeFile(const QString& key) const
+ {
+ if (key == QString("PosEdit"))
+ return QString("posedit.h");
+ else if (key == QString("PitchEdit"))
+ return QString("pitchedit.h");
+ else if (key == QString("PitchLabel"))
+ return QString("pitchlabel.h");
+ else if (key == QString("PosLabel"))
+ return QString("poslabel.h");
+ else if (key == QString("TempoLabel"))
+ return QString("tempolabel.h");
+ else if (key == QString("TempoEdit"))
+ return QString("tempolabel.h");
+ else if (key == QString("SigEdit"))
+ return QString("sigedit.h");
+ else if (key == QString("Slider"))
+ return QString("slider.h");
+ else if (key == QString("DoubleLabel"))
+ return QString("dentry.h");
+ else if (key == QString("CheckBox"))
+ return QString("checkbox.h");
+ else if (key == QString("ComboBox"))
+ return QString("combobox.h");
+ return QString::null;
+ }
+
+//---------------------------------------------------------
+// toolTip
+//---------------------------------------------------------
+
+QString MusEPlugin::toolTip (const QString& key) const
+ {
+ if (key == QString("PosEdit"))
+ return QString("midi time position editor");
+ else if (key == QString("PitchEdit"))
+ return QString("midi pitch spinbox");
+ else if (key == QString("PitchLabel"))
+ return QString("midi pitch label");
+ else if (key == QString("PosLabel"))
+ return QString("midi time position label");
+ else if (key == QString("TempoLabel"))
+ return QString("midi tempo label");
+ else if (key == QString("TempoEdit"))
+ return QString("midi tempo spinbox");
+ else if (key == QString("SigEdit"))
+ return QString("midi signature spinbox");
+ else if (key == QString("Slider"))
+ return QString("slider for double values");
+ else if (key == QString("DoubleLabel"))
+ return QString("entry/label for double values");
+ else if (key == QString("CheckBox"))
+ return QString("checkbox with id");
+ else if (key == QString("ComboBox"))
+ return QString("combobox with id");
+ return QString::null;
+ }
+
+//---------------------------------------------------------
+// whatsThis
+//---------------------------------------------------------
+
+QString MusEPlugin::whatsThis (const QString& key) const
+ {
+ if (key == QString("PosEdit"))
+ return QString("midi time position editor");
+ else if (key == QString("PitchEdit"))
+ return QString("midi pitch spinbox");
+ else if (key == QString("PitchLabel"))
+ return QString("midi pitch label");
+ else if (key == QString("PosLabel"))
+ return QString("midi time position label");
+ else if (key == QString("TempoLabel"))
+ return QString("midi tempo label");
+ else if (key == QString("TempoEdit"))
+ return QString("midi tempo spinbox");
+ else if (key == QString("SigEdit"))
+ return QString("midi signature spinbox");
+ else if (key == QString("Slider"))
+ return QString("slider for double values");
+ else if (key == QString("DoubleLabel"))
+ return QString("entry/label for double values");
+ else if (key == QString("CheckBox"))
+ return QString("checkbox with id");
+ else if (key == QString("ComboBox"))
+ return QString("combobox with id");
+ return QString::null;
+ }
+
+//---------------------------------------------------------
+// isContainer
+//---------------------------------------------------------
+
+bool MusEPlugin::isContainer (const QString& /*key*/) const
+ {
+ return false;
+ }
+
+Q_EXPORT_PLUGIN(MusEPlugin)
+
diff --git a/muse2/muse/widgets/nentry.cpp b/muse2/muse/widgets/nentry.cpp
new file mode 100644
index 00000000..c4006112
--- /dev/null
+++ b/muse2/muse/widgets/nentry.cpp
@@ -0,0 +1,407 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: nentry.cpp,v 1.1.1.1.2.1 2008/05/21 00:28:54 terminator356 Exp $
+// (C) Copyright 1999 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include <qlayout.h>
+#include <qlabel.h>
+//Added by qt3to4:
+#include <Q3HBoxLayout>
+#include <QContextMenuEvent>
+#include <QWheelEvent>
+#include <Q3Frame>
+#include <QMouseEvent>
+#include <QKeyEvent>
+#include "nentry.h"
+#include <stdio.h>
+#include <qtimer.h>
+#include <qevent.h>
+#include "globals.h"
+#include <qapplication.h>
+#include <qcursor.h>
+
+#define TIMER1 400
+#define TIMER2 200
+#define TIMEC 7
+#define TIMER3 100
+#define TIMEC2 20
+#define TIMER4 50
+
+NentryFilter::NentryFilter(QObject* parent)
+ : QObject(parent)
+ {
+ }
+
+void Nentry::setText(const QString& s)
+ {
+ edit->setText(s);
+ }
+
+//---------------------------------------------------------
+// eventFilter
+//---------------------------------------------------------
+
+bool NentryFilter::eventFilter(QObject*, QEvent* event)
+ {
+ Nentry* e = (Nentry*)parent();
+ if (event->type() == QEvent::MouseButtonPress) {
+ e->mousePress((QMouseEvent*)event);
+ return true;
+ }
+ if (event->type() == QEvent::MouseMove) {
+ e->mouseMove((QMouseEvent*)event);
+ return true;
+ }
+ if (event->type() == QEvent::MouseButtonDblClick) {
+ e->mouseDoubleClick((QMouseEvent*)event);
+ return true;
+ }
+ if (event->type() == QEvent::MouseButtonRelease) {
+ e->mouseRelease((QMouseEvent*)event);
+ return true;
+ }
+ if (event->type() == QEvent::Wheel) {
+ e->wheel((QWheelEvent*)event);
+ return true;
+ }
+ if (event->type() == QEvent::KeyPress) {
+ return e->keyPress((QKeyEvent*)event);
+ }
+ if (event->type() == QEvent::ContextMenu) {
+ return e->contextMenu((QContextMenuEvent*)event);
+ }
+ return false;
+ }
+
+//---------------------------------------------------------
+// Nentry
+// lineedit int values
+//---------------------------------------------------------
+
+Nentry::Nentry(QWidget* parent, const QString& txt,
+ int _lPos, bool dark) : Q3Frame(parent)
+ {
+ focusW = 0;
+ lPos = _lPos;
+ edit = new QLineEdit(this);
+ timer = new QTimer(this);
+ filter = new NentryFilter(this);
+ drawFrame = false;
+ edit->installEventFilter(filter);
+ edit->setFrame(drawFrame);
+
+ connect(timer, SIGNAL(timeout()), SLOT(repeat()));
+ connect(edit, SIGNAL(returnPressed()), SLOT(endEdit()));
+ edit->setCursor(QCursor(Qt::arrowCursor));
+// edit->setFont(font3);
+ val = 0;
+ layout = new Q3HBoxLayout(this);
+ if (txt == "") {
+ layout->addWidget(edit, 1, Qt::AlignHCenter);
+ }
+ else {
+ label = new QLabel(txt, this);
+ if (lPos == 0) {
+ layout->addStretch(5);
+ layout->addSpacing(5);
+ layout->addWidget(label);
+ layout->addSpacing(5);
+ layout->addWidget(edit);
+ layout->addSpacing(5);
+ layout->addStretch(5);
+ }
+ else {
+ label->setAlignment(Qt::AlignLeft);
+ layout->addWidget(edit, 0, Qt::AlignRight);
+ layout->addSpacing(5);
+ layout->addWidget(label, 100, Qt::AlignRight|Qt::AlignVCenter);
+ }
+ }
+ if (dark) {
+ setDark();
+ }
+ edit->setFocusPolicy(Qt::NoFocus);
+ }
+
+void Nentry::setFocusPolicy(Qt::FocusPolicy policy)
+ {
+ edit->setFocusPolicy(policy);
+ }
+
+void Nentry::setDark()
+ {
+ const QPalette& oldpalette = edit->palette();
+ QColorGroup cg1 = oldpalette.active();
+ cg1.setColor(QColorGroup::Base, cg1.background());
+ QPalette newpalette(cg1, cg1, cg1);
+ edit->setPalette(newpalette);
+ }
+
+//---------------------------------------------------------
+// setSize
+//---------------------------------------------------------
+
+void Nentry::setSize(int n)
+ {
+ QString s("0000000000000000");
+ QFontMetrics fm = edit->fontMetrics();
+ int w;
+ if (n <= 16)
+ w = fm.width(s, n);
+ else
+ w = fm.width('0') * n;
+
+ edit->setFixedWidth(w + 14);
+ }
+
+//---------------------------------------------------------
+// setFrame
+//---------------------------------------------------------
+
+void Nentry::setFrame(bool flag)
+ {
+ drawFrame = flag;
+ edit->setFrame(drawFrame);
+ }
+
+//---------------------------------------------------------
+// endEdit
+//---------------------------------------------------------
+
+void Nentry::endEdit()
+ {
+ if (edit->edited()) {
+ if (setSValue(edit->text())) {
+ setString(val, false);
+ return;
+ }
+ edit->setEdited(false);
+ }
+ if (focusW)
+ focusW->setFocus();
+ focusW = 0;
+ edit->clearFocus();
+ if (!drawFrame)
+ edit->setFrame(false);
+ setString(val, false);
+ }
+
+//---------------------------------------------------------
+// contextMenuEvent
+//---------------------------------------------------------
+
+bool Nentry::contextMenu(QContextMenuEvent *e)
+{
+ e->accept();
+ return true;
+}
+//---------------------------------------------------------
+// mousePress
+//---------------------------------------------------------
+
+void Nentry::mousePress(QMouseEvent* event)
+ {
+ button = event->button();
+ starty = event->y();
+ evx = event->x();
+ if (event->button() == Qt::LeftButton) {
+ focusW = qApp->focusWidget();
+ edit->setFocus();
+ edit->setFrame(true);
+ setString(val, true);
+ }
+ else {
+ timecount = 0;
+ repeat();
+ timer->start(TIMER1);
+ }
+ }
+
+//---------------------------------------------------------
+// repeat
+//---------------------------------------------------------
+
+void Nentry::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;
+ }
+ if (focusW)
+ focusW->setFocus();
+ edit->clearFocus();
+ }
+
+//---------------------------------------------------------
+// mouseRelease
+//---------------------------------------------------------
+
+void Nentry::mouseRelease(QMouseEvent* event)
+ {
+ button = Qt::NoButton;
+ timer->stop();
+ if (event->button() != Qt::LeftButton) {
+ if (focusW)
+ focusW->setFocus();
+ edit->clearFocus();
+ }
+ }
+
+//---------------------------------------------------------
+// mouseMove
+//---------------------------------------------------------
+
+void Nentry::mouseMove(QMouseEvent*)
+ {
+ switch (button) {
+ case Qt::LeftButton:
+ break;
+ case Qt::MidButton:
+ break;
+ case Qt::RightButton:
+ break;
+ default:
+ break;
+ }
+ }
+
+//---------------------------------------------------------
+// mouseDoubleClick
+//---------------------------------------------------------
+
+void Nentry::mouseDoubleClick(QMouseEvent* event)
+ {
+ if (event->button() != Qt::LeftButton) {
+ mousePress(event);
+ return;
+ }
+ }
+
+//---------------------------------------------------------
+// wheel
+//---------------------------------------------------------
+
+void Nentry::wheel(QWheelEvent* event)
+ {
+ int n = event->delta();
+ if (n > 0)
+ incValue(n);
+ else
+ decValue(-n);
+ event->accept();
+ }
+
+//---------------------------------------------------------
+// setValue
+//---------------------------------------------------------
+
+void Nentry::setValue(int v)
+ {
+ if (v == val)
+ return;
+ if (setString(v)) {
+ if (!drawFrame)
+ edit->setFrame(false);
+ edit->setEnabled(false);
+ }
+ else {
+ edit->setEnabled(true);
+ }
+ val = v;
+ }
+
+//---------------------------------------------------------
+// keyPress
+//---------------------------------------------------------
+
+bool Nentry::keyPress(QKeyEvent* event)
+ {
+ bool shift = event->state() & Qt::ShiftModifier;
+ bool ctrl = event->state() & Qt::ControlModifier;
+ int key = event->key();
+
+ if (shift) {
+ switch(key) {
+ case Qt::Key_Left:
+ case Qt::Key_Right:
+ return false;
+ default:
+ return true;
+ }
+ return true;
+ }
+ if (ctrl) {
+ switch(key) {
+ case Qt::Key_A:
+ case Qt::Key_B:
+ case Qt::Key_C:
+ case Qt::Key_D:
+ case Qt::Key_E:
+ case Qt::Key_F:
+ case Qt::Key_H:
+ case Qt::Key_V:
+ case Qt::Key_X:
+ case Qt::Key_Z:
+ case Qt::Key_Y:
+ return false;
+ default:
+ return true;
+ }
+ return true;
+ }
+ if (event->state())
+ return true;
+ switch (key) {
+ case Qt::Key_Up: incValue(0); return true;
+ case Qt::Key_Down: decValue(0); return true;
+ case 0x30:
+ case 0x31:
+ case 0x32:
+ case 0x33:
+ case 0x34:
+ case 0x35:
+ case 0x36:
+ case 0x37:
+ case 0x38:
+ case 0x39:
+ case Qt::Key_Minus:
+ case Qt::Key_Left:
+ case Qt::Key_Right:
+ case Qt::Key_Backspace:
+ case Qt::Key_Home:
+ case Qt::Key_End:
+ case Qt::Key_Delete:
+ case Qt::Key_Return:
+ return false;
+ default:
+ break;
+ }
+ return true;
+ }
+
diff --git a/muse2/muse/widgets/nentry.h b/muse2/muse/widgets/nentry.h
new file mode 100644
index 00000000..30ddd930
--- /dev/null
+++ b/muse2/muse/widgets/nentry.h
@@ -0,0 +1,93 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: nentry.h,v 1.1.1.1.2.2 2008/05/21 00:28:54 terminator356 Exp $
+// (C) Copyright 1999 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __NENTRY_H__
+#define __NENTRY_H__
+
+#include <q3frame.h>
+#include <qlineedit.h>
+#include <qstring.h>
+//Added by qt3to4:
+#include <QWheelEvent>
+#include <QEvent>
+#include <Q3HBoxLayout>
+#include <QMouseEvent>
+#include <QLabel>
+#include <QContextMenuEvent>
+#include <QKeyEvent>
+
+class QTimer;
+class Q3HBoxLayout;
+class QLabel;
+
+class NentryFilter : public QObject {
+ Q_OBJECT
+
+ protected:
+ bool eventFilter(QObject* object, QEvent* event);
+ public:
+ NentryFilter(QObject* parent);
+ };
+
+//---------------------------------------------------------
+// Nentry
+// numerical entry widget with optional label
+//---------------------------------------------------------
+
+class Nentry : public Q3Frame {
+ Q_OBJECT
+
+ int button;
+ int starty;
+ bool drawFrame;
+ QTimer* timer;
+ int evx;
+ int timecount;
+ Q3HBoxLayout* layout;
+ QObject* filter;
+ QLabel* label;
+ int lPos; // label Position 0 - left, 1 - right
+ QWidget* focusW;
+
+ protected:
+ QLineEdit* edit;
+ int val;
+ virtual void incValue(int x) = 0;
+ virtual void decValue(int x) = 0;
+ virtual bool setString(int, bool editable = false) = 0;
+ virtual bool setSValue(const QString&) = 0;
+
+ private slots:
+ void repeat();
+
+ protected slots:
+ void endEdit();
+
+ public slots:
+ virtual void setValue(int);
+
+ public:
+ Nentry(QWidget* parent, const QString& txt = QString(""),
+ int lPos = 0, bool dark=false);
+
+ int value() const { return val; }
+ void setFrame(bool);
+ //void setAlignment(int flag) { edit->setAlignment(flag); }
+ void setText(const QString& s);
+ void setSize(int n);
+ void setDark();
+
+ void mousePress(QMouseEvent*);
+ void mouseMove(QMouseEvent*);
+ void mouseDoubleClick(QMouseEvent*);
+ void mouseRelease(QMouseEvent*);
+ void wheel(QWheelEvent*);
+ bool keyPress(QKeyEvent*);
+ void setFocusPolicy(Qt::FocusPolicy);
+ bool contextMenu(QContextMenuEvent*);
+ };
+#endif
diff --git a/muse2/muse/widgets/noteinfo.cpp b/muse2/muse/widgets/noteinfo.cpp
new file mode 100644
index 00000000..59bce4b9
--- /dev/null
+++ b/muse2/muse/widgets/noteinfo.cpp
@@ -0,0 +1,178 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: noteinfo.cpp,v 1.4.2.1 2008/08/18 00:15:26 terminator356 Exp $
+// (C) Copyright 1999 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include "config.h"
+
+#include "noteinfo.h"
+#include <qlayout.h>
+#include <qlabel.h>
+#include "song.h"
+#include "globals.h"
+#include "posedit.h"
+#include "pitchedit.h"
+
+//---------------------------------------------------
+// NoteInfo
+// ToolBar
+// Start, L�nge, Note, Velo an, Velo aus, Kanal
+//---------------------------------------------------
+
+NoteInfo::NoteInfo(Q3MainWindow* parent)
+ : Q3ToolBar(tr("Note Info"), parent)
+ {
+ deltaMode = false;
+
+ QLabel* label = new QLabel(tr("Start"), this, "Start");
+ label->setAlignment(Qt::AlignRight|Qt::AlignVCenter);
+ label->setIndent(3);
+ selTime = new PosEdit(this, "Start");
+
+ label = new QLabel(tr("Len"), this, "Len");
+ label->setAlignment(Qt::AlignRight|Qt::AlignVCenter);
+ label->setIndent(3);
+ selLen = new QSpinBox(0, 100000, 1, this);
+
+ label = new QLabel(tr("Pitch"), this, "Pitch");
+ label->setAlignment(Qt::AlignRight|Qt::AlignVCenter);
+ label->setIndent(3);
+ selPitch = new PitchEdit(this, "selPitch");
+
+ label = new QLabel(tr("Velo On"), this, "Velocity On");
+ label->setAlignment(Qt::AlignRight|Qt::AlignVCenter);
+ label->setIndent(3);
+ selVelOn = new QSpinBox(0, 127, 1, this);
+
+ label = new QLabel(tr("Velo Off"), this, "Velocity Off");
+ label->setAlignment(Qt::AlignRight|Qt::AlignVCenter);
+ label->setIndent(3);
+ selVelOff = new QSpinBox(0, 127, 1, this);
+
+ 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/muse2/muse/widgets/noteinfo.h b/muse2/muse/widgets/noteinfo.h
new file mode 100644
index 00000000..00c798fb
--- /dev/null
+++ b/muse2/muse/widgets/noteinfo.h
@@ -0,0 +1,52 @@
+// MusE
+// Linux Music Editor
+// $Id: noteinfo.h,v 1.3 2004/01/09 17:12:54 wschweer Exp $
+// (C) Copyright 1999 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __NOTE_INFO_H__
+#define __NOTE_INFO_H__
+
+#include <q3toolbar.h>
+
+class PosEdit;
+class QSpinBox;
+class PitchEdit;
+class Q3MainWindow;
+class Pos;
+
+//---------------------------------------------------------
+// NoteInfo
+//---------------------------------------------------------
+
+class NoteInfo : public Q3ToolBar {
+ PosEdit* selTime;
+ QSpinBox* selLen;
+ PitchEdit* selPitch;
+ QSpinBox* selVelOn;
+ QSpinBox* selVelOff;
+ bool deltaMode;
+
+ Q_OBJECT
+
+ public:
+ enum ValType {VAL_TIME, VAL_LEN, VAL_VELON, VAL_VELOFF, VAL_PITCH };
+ NoteInfo(Q3MainWindow* 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/muse2/muse/widgets/pitchedit.cpp b/muse2/muse/widgets/pitchedit.cpp
new file mode 100644
index 00000000..6ecdc4a0
--- /dev/null
+++ b/muse2/muse/widgets/pitchedit.cpp
@@ -0,0 +1,64 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: pitchedit.cpp,v 1.2 2004/01/09 17:12:54 wschweer Exp $
+// (C) Copyright 2001 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include <stdio.h>
+#include "pitchedit.h"
+#include "helper.h"
+
+#include <qstyle.h>
+#include <qapplication.h>
+
+//---------------------------------------------------------
+// PitchEdit
+//---------------------------------------------------------
+
+PitchEdit::PitchEdit(QWidget* parent, const char* name)
+ : QSpinBox(0, 127, 1, parent, name)
+ {
+ deltaMode = false;
+ }
+
+//---------------------------------------------------------
+// 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("PitchEdit: 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/muse2/muse/widgets/pitchedit.h b/muse2/muse/widgets/pitchedit.h
new file mode 100644
index 00000000..9c474f08
--- /dev/null
+++ b/muse2/muse/widgets/pitchedit.h
@@ -0,0 +1,33 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: pitchedit.h,v 1.2 2004/01/09 17:12:54 wschweer Exp $
+// (C) Copyright 2001 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __PITCHEDIT_H__
+#define __PITCHEDIT_H__
+
+#include <qspinbox.h>
+
+//---------------------------------------------------------
+// PitchEdit
+//---------------------------------------------------------
+
+class PitchEdit : public QSpinBox {
+ Q_OBJECT
+
+ bool deltaMode;
+
+ protected:
+ virtual QString mapValueToText(int v);
+ virtual int mapTextToValue(bool* ok);
+
+ public:
+ PitchEdit(QWidget* parent, const char* name = 0);
+ void setDeltaMode(bool);
+ };
+
+extern QString pitch2string(int v);
+
+#endif
diff --git a/muse2/muse/widgets/pitchlabel.cpp b/muse2/muse/widgets/pitchlabel.cpp
new file mode 100644
index 00000000..f53e6fa5
--- /dev/null
+++ b/muse2/muse/widgets/pitchlabel.cpp
@@ -0,0 +1,95 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: pitchlabel.cpp,v 1.2 2004/05/16 16:55:01 wschweer Exp $
+// (C) Copyright 2001 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include <qapplication.h>
+#include <qstyle.h>
+//Added by qt3to4:
+#include <QLabel>
+#include "pitchedit.h"
+#include "pitchlabel.h"
+#include "helper.h"
+
+//---------------------------------------------------------
+// PitchLabel
+//---------------------------------------------------------
+
+PitchLabel::PitchLabel(QWidget* parent, const char* name)
+ : QLabel(parent, name)
+ {
+ _pitchMode = true;
+ _value = -1;
+ setFrameStyle(WinPanel | Sunken);
+ setLineWidth(2);
+ setMidLineWidth(3);
+ setValue(0);
+ int fw = style()->pixelMetric(QStyle::PM_DefaultFrameWidth, 0, this); // ddskrjo 0
+ 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, 0, this); // ddskrjo 0
+ 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/muse2/muse/widgets/pitchlabel.h b/muse2/muse/widgets/pitchlabel.h
new file mode 100644
index 00000000..1da83ecc
--- /dev/null
+++ b/muse2/muse/widgets/pitchlabel.h
@@ -0,0 +1,41 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: pitchlabel.h,v 1.1.1.1 2003/10/27 18:54:49 wschweer Exp $
+// (C) Copyright 2001 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __PITCHLABEL_H__
+#define __PITCHLABEL_H__
+
+#include <qlabel.h>
+
+//---------------------------------------------------------
+// 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(QWidget* parent, const char* name = 0);
+ int value() const { return _value; }
+ void setPitchMode(bool val);
+ bool pitchMode() const { return _pitchMode; }
+ };
+
+
+#endif
+
+
+
diff --git a/muse2/muse/widgets/popupmenu.cpp b/muse2/muse/widgets/popupmenu.cpp
new file mode 100644
index 00000000..05eb64f6
--- /dev/null
+++ b/muse2/muse/widgets/popupmenu.cpp
@@ -0,0 +1,2770 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: popupmenu.cpp,v 1.1.1.1 2010/07/18 03:21:00 terminator356 Exp $
+//
+// (C) Copyright 1999-2010 Werner Schweer (ws@seh.de)
+//
+// PopupMenu sub-class of QPopupMenu created by Tim.
+//=========================================================
+
+
+
+//=========================================================
+//
+// NOTICE: This sub-class of QPopupMenu *automatically* deletes
+// and *clears* any sub popup menus, when clear() is called.
+// Therefore a parent widget is *not* necessary when
+// creating sub popup menus to add to the popup.
+//
+//=========================================================
+
+
+// MusE: want no menu bar here. Can't use, not needed for now anyway.
+#define QT_NO_MENUBAR
+#define QT_NO_WHATSTHIS
+
+#include <qapplication.h>
+//#include <qtimer.h>
+#include <qpointer.h>
+//Added by qt3to4:
+#include <Q3Signal>
+#include <QMouseEvent>
+#include <Q3PopupMenu>
+//#include <qmenubar.h>
+//#include <qstyle.h>
+//#include <qdatetime.h>
+
+#include "popupmenu.h"
+
+// used to provide ONE single-shot timer
+//static QTimer * singleSingleShot = 0;
+//static bool preventAnimation = FALSE;
+// Used to detect motion prior to mouse-release
+static int motion;
+static PopupMenu* active_popup_menu = 0;
+
+/*
+static void cleanup()
+{
+ delete singleSingleShot;
+ singleSingleShot = 0;
+}
+
+static void popupSubMenuLater( int msec, QPopupMenu * receiver ) {
+//static void popupSubMenuLater( int msec, PopupMenu * receiver ) {
+ if ( !singleSingleShot ) {
+ singleSingleShot = new QTimer( qApp, "popup submenu timer" );
+ qAddPostRoutine( cleanup );
+ }
+
+ singleSingleShot->disconnect( SIGNAL(timeout()) );
+ QObject::connect( singleSingleShot, SIGNAL(timeout()),
+ receiver, SLOT(subMenuTimer()) );
+ singleSingleShot->start( msec, TRUE );
+}
+*/
+
+/*
+//======================
+// MenuDataData
+//======================
+
+class QMenuDataData {
+public:
+ QMenuDataData();
+ QGuardedPtr<QWidget> aWidget;
+ int aInt;
+};
+
+//======================
+// QPopupMenuPrivate
+//======================
+
+class QPopupMenuPrivate {
+public:
+ struct Scroll {
+ enum { ScrollNone=0, ScrollUp=0x01, ScrollDown=0x02 };
+ uint scrollable : 2;
+ uint direction : 1;
+ int topScrollableIndex, scrollableSize;
+ QTime lastScroll;
+ QTimer *scrolltimer;
+ } scroll;
+ QSize calcSize;
+ QRegion mouseMoveBuffer;
+};
+*/
+
+//======================
+// PopupMenu
+//======================
+
+PopupMenu::PopupMenu(QWidget* parent, const char* name)
+ : Q3PopupMenu(parent, name)
+{
+ // It's too bad QPopupMenu::d is private.
+ // It will be redundant and this will be our own private member.
+ //d = new QPopupMenuPrivate;
+ //d->scroll.scrollableSize = d->scroll.topScrollableIndex = 0;
+ //d->scroll.scrollable = QPopupMenuPrivate::Scroll::ScrollNone;
+ //d->scroll.scrolltimer = 0;
+}
+
+PopupMenu::~PopupMenu()
+{
+ //if(d->scroll.scrolltimer)
+ // delete d->scroll.scrolltimer;
+
+ //preventAnimation = FALSE;
+ //delete d;
+
+ // Make sure to clear the popup so that any child popups are also deleted !
+ //popup->clear();
+}
+
+void PopupMenu::menuDelPopup(Q3PopupMenu *popup)
+{
+ //printf("PopupMenu::menuDelPopup deleting popup...\n");
+
+ // Make sure to clear the popup so that any child popups are also deleted !
+ // Tested OK. All the popups are deleted.
+ popup->clear();
+
+ popup->disconnect( SIGNAL(activatedRedirect(int)) );
+ popup->disconnect( SIGNAL(highlightedRedirect(int)) );
+ disconnect( popup, SIGNAL(destroyed(QObject*)),
+ this, SLOT(popupDestroyed(QObject*)) );
+ delete popup;
+}
+
+/*
+void PopupMenu::setFirstItemActive()
+{
+ QMenuItemListIt it(*QPopupMenu::mitems);
+ register QMenuItem *mi;
+ int ai = 0;
+ //if(d->scroll.scrollable)
+ // ai = d->scroll.topScrollableIndex;
+ while ( (mi=it.current()) )
+ {
+ ++it;
+ if(!mi->isSeparator() && mi->id() != QMenuData::d->aInt &&
+ (style().styleHint(QStyle::SH_PopupMenu_AllowActiveAndDisabled, this) || mi->isEnabledAndVisible()))
+ {
+ setActiveItem( ai );
+ return;
+ }
+ ai++;
+ }
+ QPopupMenu::actItem = -1;
+}
+*/
+
+/*
+void PopupMenu::hideAllPopups()
+{
+ //register QMenuData *top = this; // find top level popup
+ register MenuData *top = this; // find top level popup
+ if ( !preventAnimation )
+ QTimer::singleShot( 10, this, SLOT(allowAnimation()) );
+ preventAnimation = TRUE;
+
+ if ( !isPopup() )
+ return; // nothing to do
+
+ //while ( top->parentMenu && top->parentMenu->isPopupMenu
+ while ( top->parentMenu && ((MenuData*)top->parentMenu)->isPopupMenu
+ //&& ((QPopupMenu*)top->parentMenu)->isPopup() )
+ && ((PopupMenu*)((MenuData*)top->parentMenu))->isPopup() )
+ //top = top->parentMenu;
+ top = (MenuData*)top->parentMenu;
+ //((QPopupMenu*)top)->hide(); // cascade from top level
+ ((PopupMenu*)top)->hide(); // cascade from top level
+
+#ifndef QT_NO_WHATSTHIS
+ if (whatsThisItem) {
+ qWhatsThisBDH();
+ whatsThisItem = 0;
+ }
+#endif
+
+}
+*/
+
+/*
+void PopupMenu::hidePopups()
+{
+ if ( !preventAnimation )
+ QTimer::singleShot( 10, this, SLOT(allowAnimation()) );
+ preventAnimation = TRUE;
+
+ //QMenuItemListIt it(*mitems);
+ QMenuItemListIt it(*MenuData::mitems);
+ register QMenuItem *mi;
+ while ( (mi=it.current()) ) {
+ ++it;
+ if ( mi->popup() && mi->popup()->parentMenu == this ) //avoid circularity
+ mi->popup()->hide();
+ }
+ popupActive = -1; // no active sub menu
+ if(style().styleHint(QStyle::SH_PopupMenu_SubMenuPopupDelay, this))
+ d->mouseMoveBuffer = QRegion();
+
+ QRect mfrect = itemGeometry( actItem );
+ setMicroFocusHint( mfrect.x(), mfrect.y(), mfrect.width(), mfrect.height(), FALSE );
+}
+*/
+
+bool PopupMenu::tryMenuBar( QMouseEvent *e )
+{
+#if 0 // ddskrjo
+ register QMenuData *top = this; // find top level
+ //register PopupMenu *top = this; // find top level
+ //while ( top->parentMenu )
+ while ( ((PopupMenu*)top)->parentMenu )
+ //top = top->parentMenu;
+ //top = (MenuData*)top->parentMenu;
+ top = ((PopupMenu*)top)->parentMenu;
+#ifndef QT_NO_MENUBAR
+ return top->isMenuBar ?
+ ((QMenuBar *)top)->tryMouseEvent( this, e ) :
+ ((Q3PopupMenu*)top)->tryMouseEvent(this, e );
+#else
+ //return ((QPopupMenu*)top)->tryMouseEvent(this, e );
+ return ((PopupMenu*)top)->tryMouseEvent(this, e );
+#endif
+
+#endif
+ return false; // ddskrjo
+}
+
+//bool PopupMenu::tryMouseEvent( QPopupMenu *p, QMouseEvent * e)
+bool PopupMenu::tryMouseEvent( PopupMenu *p, QMouseEvent * e)
+{
+ if ( p == this )
+ return FALSE;
+ QPoint pos = mapFromGlobal( e->globalPos() );
+ if ( !rect().contains( pos ) ) // outside
+ return FALSE;
+ QMouseEvent ee( e->type(), pos, e->globalPos(), e->button(), e->state() );
+ event( &ee );
+ return TRUE;
+}
+
+/*
+void PopupMenu::byeMenuBar()
+{
+#ifndef QT_NO_MENUBAR
+ //register QMenuData *top = this; // find top level
+ register MenuData *top = this; // find top level
+ while ( top->parentMenu )
+ top = top->parentMenu;
+#endif
+ hideAllPopups();
+#ifndef QT_NO_MENUBAR
+ if ( top->isMenuBar )
+ ((QMenuBar *)top)->goodbye();
+#endif
+}
+*/
+
+void PopupMenu::actSig(int id, bool inwhatsthis)
+{
+ if(!inwhatsthis)
+ {
+ emit activated( id );
+#if defined(QT_ACCESSIBILITY_SUPPORT)
+ if(!fromAccel)
+ QAccessible::updateAccessibility(this, indexOf(id)+1, QAccessible::MenuCommand);
+#endif
+ }
+ else
+ {
+#ifndef QT_NO_WHATSTHIS
+ QRect r(itemGeometry(indexOf(id)));
+ QPoint p(r.center().x(), r.bottom());
+ QString whatsThis = findItem(id)->whatsThis();
+ if(whatsThis.isNull())
+ whatsThis = Q3WhatsThis::textFor(this, p);
+ Q3WhatsThis::leaveWhatsThisMode(whatsThis, mapToGlobal(p), this);
+#endif
+ }
+
+ //emit activatedRedirect(id); ddskrjo
+}
+
+/*
+void PopupMenu::mousePressEvent(QMouseEvent *e)
+{
+ printf("PopupMenu::mousePressEvent\n");
+
+
+ //int sh = style().pixelMetric(QStyle::PM_PopupMenuScrollerHeight, this);
+ //if (rect().contains(e->pos()) &&
+ // ((d->scroll.scrollable & QPopupMenuPrivate::Scroll::ScrollUp && e->pos().y() <= sh) || //up
+ // (d->scroll.scrollable & QPopupMenuPrivate::Scroll::ScrollDown &&
+ // e->pos().y() >= contentsRect().height() - sh))) //down
+ // return;
+
+ mouseBtDn = TRUE; // mouse button down
+ int item = itemAtPos( e->pos() );
+ if ( item == -1 ) {
+ //if ( !rect().contains(e->pos()) && !tryMenuBar(e) ) {
+ // byeMenuBar();
+ //}
+ return;
+ }
+ register QMenuItem *mi = mitems->at(item);
+ ///if ( item != actItem ) // new item activated
+ /// setActiveItem( item );
+
+ QPopupMenu *popup = mi->popup();
+ if(popup)
+ {
+ if(popup->isVisible()) // sub menu already open
+ {
+ //int pactItem = popup->actItem;
+ //popup->actItem = -1;
+ //popup->hidePopups();
+ //popup->updateRow( pactItem );
+ }
+ else // open sub menu
+ {
+ //hidePopups();
+ popupSubMenuLater( 20, this );
+ }
+ }
+ else
+ {
+ //hidePopups();
+ }
+}
+*/
+
+void PopupMenu::mouseReleaseEvent(QMouseEvent *e)
+{
+#if 0 // ddskrjo
+ // do not hide a standalone context menu on press-release, unless
+ // the user moved the mouse significantly
+ //if(!parentMenu && !mouseBtDn && actItem < 0 && motion < 6)
+ // return;
+
+ //mouseBtDn = FALSE;
+ //MenuData::mouseBtDn = FALSE;
+ Q3PopupMenu::mouseBtDn = FALSE;
+
+ // if the user released the mouse outside the menu, pass control
+ // to the menubar or our parent menu
+ //int sh = style().pixelMetric(QStyle::PM_PopupMenuScrollerHeight, this);
+ if(!rect().contains(e->pos()) && tryMenuBar(e))
+ return;
+ //else
+ //if((d->scroll.scrollable & QPopupMenuPrivate::Scroll::ScrollUp && e->pos().y() <= sh) || //up
+ // (d->scroll.scrollable & QPopupMenuPrivate::Scroll::ScrollDown &&
+ // e->pos().y() >= contentsRect().height() - sh)) //down
+ // return;
+
+ if(Q3PopupMenu::actItem < 0)
+ {
+ // we do not have an active item
+ // if the release is inside without motion (happens with
+ // oversized popup menus on small screens), ignore it
+ if(rect().contains(e->pos()) && motion < 6)
+ return;
+ ///else
+ /// byeMenuBar();
+ }
+ else
+ {
+ // selected menu item!
+ register QMenuItem *mi = Q3PopupMenu::mitems->at(Q3PopupMenu::actItem);
+ if(mi->widget())
+ {
+ QWidget* widgetAt = QApplication::widgetAt(e->globalPos(), TRUE);
+ if(widgetAt && widgetAt != this)
+ {
+ QMouseEvent me(e->type(), widgetAt->mapFromGlobal(e->globalPos()),
+ e->globalPos(), e->button(), e->state());
+ QApplication::sendEvent( widgetAt, &me );
+ }
+ }
+ //QPopupMenu *popup = mi->popup();
+ PopupMenu *popup = (PopupMenu*)mi->popup();
+#ifndef QT_NO_WHATSTHIS
+ bool b = Q3WhatsThis::inWhatsThisMode();
+#else
+ const bool b = FALSE;
+#endif
+ if(!mi->isEnabledAndVisible())
+ {
+#ifndef QT_NO_WHATSTHIS
+ if(b)
+ {
+ actItem = -1;
+ updateItem(mi->id());
+ byeMenuBar();
+ actSig(mi->id(), b);
+ }
+#endif
+ }
+ else
+ if(popup)
+ {
+ //popup->setFirstItemActive();
+ }
+ else
+ {
+ // normal menu item
+ ///byeMenuBar(); // deactivate menu bar
+ if(mi->isEnabledAndVisible())
+ {
+ ///QPopupMenu::actItem = -1;
+ Q3PopupMenu::updateItem(mi->id());
+ active_popup_menu = this;
+ QPointer<Q3Signal> signal = mi->signal();
+ actSig(mi->id(), b);
+ if(signal && !b)
+ signal->activate();
+ active_popup_menu = 0;
+ }
+ }
+ }
+#endif
+}
+
+
+
+
+
+
+/****************************************************************************
+**
+** Implementation of QPopupMenu class
+**
+** Created : 941128
+**
+** Copyright (C) 1992-2008 Trolltech ASA. All rights reserved.
+**
+** This file is part of the widgets module of the Qt GUI Toolkit.
+**
+** This file may be used under the terms of the GNU General
+** Public License versions 2.0 or 3.0 as published by the Free
+** Software Foundation and appearing in the files LICENSE.GPL2
+** and LICENSE.GPL3 included in the packaging of this file.
+** Alternatively you may (at your option) use any later version
+** of the GNU General Public License if such license has been
+** publicly approved by Trolltech ASA (or its successors, if any)
+** and the KDE Free Qt Foundation.
+**
+** Please review the following information to ensure GNU General
+** Public Licensing requirements will be met:
+** http://trolltech.com/products/qt/licenses/licensing/opensource/.
+** If you are unsure which license is appropriate for your use, please
+** review the following information:
+** http://trolltech.com/products/qt/licenses/licensing/licensingoverview
+** or contact the sales department at sales@trolltech.com.
+**
+** This file may be used under the terms of the Q Public License as
+** defined by Trolltech ASA and appearing in the file LICENSE.QPL
+** included in the packaging of this file. Licensees holding valid Qt
+** Commercial licenses may use this file in accordance with the Qt
+** Commercial License Agreement provided with the Software.
+**
+** This file is provided "AS IS" with NO WARRANTY OF ANY KIND,
+** INCLUDING THE WARRANTIES OF DESIGN, MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE. Trolltech reserves all rights not granted
+** herein.
+**
+**********************************************************************/
+
+/*
+#include "popupmenu.h"
+#ifndef QT_NO_POPUPMENU
+#include <qmenubar.h>
+#include <qaccel.h>
+#include <qpainter.h>
+#include <qdrawutil.h>
+#include <qapplication.h>
+#include <qpixmap.h>
+#include <qpixmapcache.h>
+#include <qtimer.h>
+#include <qwhatsthis.h>
+#include <qobjectlist.h>
+#include <qguardedptr.h>
+//#include <qeffects_p.h>
+#include <qcursor.h>
+#include <qstyle.h>
+#include <qtimer.h>
+#include <qdatetime.h>
+#if defined(QT_ACCESSIBILITY_SUPPORT)
+#include <qaccessible.h>
+#endif
+
+//#define ANIMATED_POPUP
+//#define BLEND_POPUP
+
+// Motif style parameters
+
+static const int motifArrowHMargin = 6; // arrow horizontal margin
+static const int motifArrowVMargin = 2; // arrow vertical margin
+
+#if 0
+# define DEBUG_SLOPPY_SUBMENU
+#endif
+
+// used for internal communication
+static PopupMenu * syncMenu = 0;
+static int syncMenuId = 0;
+
+// Used to detect motion prior to mouse-release
+static int motion;
+
+// used to provide ONE single-shot timer
+static QTimer * singleSingleShot = 0;
+
+static bool supressAboutToShow = FALSE;
+
+static void cleanup()
+{
+ delete singleSingleShot;
+ singleSingleShot = 0;
+}
+
+static void popupSubMenuLater( int msec, PopupMenu * receiver ) {
+ if ( !singleSingleShot ) {
+ singleSingleShot = new QTimer( qApp, "popup submenu timer" );
+ qAddPostRoutine( cleanup );
+ }
+
+ singleSingleShot->disconnect( SIGNAL(timeout()) );
+ QObject::connect( singleSingleShot, SIGNAL(timeout()),
+ receiver, SLOT(subMenuTimer()) );
+ singleSingleShot->start( msec, TRUE );
+}
+
+static bool preventAnimation = FALSE;
+
+#ifndef QT_NO_WHATSTHIS
+extern void qWhatsThisBDH();
+static QMenuItem* whatsThisItem = 0;
+#endif
+
+class QMenuDataData {
+ // attention: also defined in qmenudata.cpp
+public:
+ QMenuDataData();
+ QGuardedPtr<QWidget> aWidget;
+ int aInt;
+};
+
+class QPopupMenuPrivate {
+public:
+ struct Scroll {
+ enum { ScrollNone=0, ScrollUp=0x01, ScrollDown=0x02 };
+ uint scrollable : 2;
+ uint direction : 1;
+ int topScrollableIndex, scrollableSize;
+ QTime lastScroll;
+ QTimer *scrolltimer;
+ } scroll;
+ QSize calcSize;
+ QRegion mouseMoveBuffer;
+};
+
+static PopupMenu* active_popup_menu = 0;
+
+PopupMenu::PopupMenu( QWidget *parent, const char *name )
+ : QFrame( parent, name, WType_Popup | WNoAutoErase )
+{
+ d = new QPopupMenuPrivate;
+ d->scroll.scrollableSize = d->scroll.topScrollableIndex = 0;
+ d->scroll.scrollable = QPopupMenuPrivate::Scroll::ScrollNone;
+ d->scroll.scrolltimer = 0;
+ isPopupMenu = TRUE;
+#ifndef QT_NO_ACCEL
+ autoaccel = 0;
+ accelDisabled = FALSE;
+#endif
+ popupActive = -1;
+ snapToMouse = TRUE;
+ tab = 0;
+ checkable = 0;
+ tornOff = 0;
+ pendingDelayedContentsChanges = 0;
+ pendingDelayedStateChanges = 0;
+ maxPMWidth = 0;
+
+ tab = 0;
+ ncols = 1;
+ setFrameStyle( QFrame::PopupPanel | QFrame::Raised );
+ setMouseTracking(style().styleHint(QStyle::SH_PopupMenu_MouseTracking, this));
+ //style().polishPopupMenu( this );
+ style().polishPopupMenu( (QPopupMenu*)this );
+ setBackgroundMode( PaletteButton );
+ connectModalRecursionSafety = 0;
+
+ setFocusPolicy( StrongFocus );
+}
+
+PopupMenu::~PopupMenu()
+{
+ if ( syncMenu == this && qApp ) {
+ qApp->exit_loop();
+ syncMenu = 0;
+ }
+
+ if(d->scroll.scrolltimer)
+ delete d->scroll.scrolltimer;
+
+ if ( isVisible() ) {
+ parentMenu = 0;
+ hidePopups();
+ }
+
+ delete (QWidget*) QMenuData::d->aWidget; // tear-off menu
+
+ preventAnimation = FALSE;
+ delete d;
+}
+
+
+void PopupMenu::updateItem( int id ) // update popup menu item
+{
+ updateRow( indexOf(id) );
+}
+
+
+void PopupMenu::setCheckable( bool enable )
+{
+ if ( isCheckable() != enable ) {
+ checkable = enable;
+ badSize = TRUE;
+ if ( QMenuData::d->aWidget )
+ ( (PopupMenu*)(QWidget*)QMenuData::d->aWidget)->setCheckable( enable );
+ }
+}
+
+bool PopupMenu::isCheckable() const
+{
+ return checkable;
+}
+
+void PopupMenu::menuContentsChanged()
+{
+ // here the part that can't be delayed
+ QMenuData::menuContentsChanged();
+ badSize = TRUE; // might change the size
+#if defined(Q_WS_MAC) && !defined(QMAC_QMENUBAR_NO_NATIVE)
+ mac_dirty_popup = 1;
+#endif
+ if( pendingDelayedContentsChanges )
+ return;
+ pendingDelayedContentsChanges = 1;
+ if( !pendingDelayedStateChanges ) // if the timer hasn't been started yet
+ QTimer::singleShot( 0, this, SLOT(performDelayedChanges()));
+}
+
+void PopupMenu::performDelayedContentsChanged()
+{
+ pendingDelayedContentsChanges = 0;
+ // here the part the can be delayed
+#ifndef QT_NO_ACCEL
+ // if performDelayedStateChanged() will be called too,
+ // it will call updateAccel() too, no need to do it twice
+ if( !pendingDelayedStateChanges )
+ updateAccel( 0 );
+#endif
+ if ( isVisible() ) {
+ if ( tornOff )
+ return;
+ updateSize(TRUE);
+ update();
+ }
+ PopupMenu* p = (PopupMenu*)(QWidget*)QMenuData::d->aWidget;
+ if ( p && p->isVisible() ) {
+ p->updateSize(TRUE);
+ p->update();
+ }
+#if defined(Q_WS_MAC) && !defined(QMAC_QMENUBAR_NO_NATIVE)
+ mac_dirty_popup = 1;
+#endif
+}
+
+
+void PopupMenu::menuStateChanged()
+{
+ // here the part that can't be delayed
+ if( pendingDelayedStateChanges )
+ return;
+ pendingDelayedStateChanges = 1;
+ if( !pendingDelayedContentsChanges ) // if the timer hasn't been started yet
+ QTimer::singleShot( 0, this, SLOT(performDelayedChanges()));
+}
+
+void PopupMenu::performDelayedStateChanged()
+{
+ pendingDelayedStateChanges = 0;
+ // here the part that can be delayed
+#ifndef QT_NO_ACCEL
+ updateAccel( 0 ); // ### when we have a good solution for the accel vs. focus widget problem, remove that. That is only a workaround
+ // if you remove this, see performDelayedContentsChanged()
+#endif
+ update();
+ if ( QMenuData::d->aWidget )
+ QMenuData::d->aWidget->update();
+}
+
+void PopupMenu::performDelayedChanges()
+{
+ if( pendingDelayedContentsChanges )
+ performDelayedContentsChanged();
+ if( pendingDelayedStateChanges )
+ performDelayedStateChanged();
+}
+
+void PopupMenu::menuInsPopup( PopupMenu *popup )
+{
+ connect( popup, SIGNAL(activatedRedirect(int)),
+ SLOT(subActivated(int)) );
+ connect( popup, SIGNAL(highlightedRedirect(int)),
+ SLOT(subHighlighted(int)) );
+ connect( popup, SIGNAL(destroyed(QObject*)),
+ this, SLOT(popupDestroyed(QObject*)) );
+}
+
+void PopupMenu::menuDelPopup( PopupMenu *popup )
+{
+ popup->disconnect( SIGNAL(activatedRedirect(int)) );
+ popup->disconnect( SIGNAL(highlightedRedirect(int)) );
+ disconnect( popup, SIGNAL(destroyed(QObject*)),
+ this, SLOT(popupDestroyed(QObject*)) );
+}
+
+
+void PopupMenu::frameChanged()
+{
+ menuContentsChanged();
+}
+
+void PopupMenu::popup( const QPoint &pos, int indexAtPoint )
+{
+ if ( !isPopup() && isVisible() )
+ hide();
+
+ //avoid circularity
+ if ( isVisible() || !isEnabled() )
+ return;
+
+#if defined(Q_WS_MAC) && !defined(QMAC_QMENUBAR_NO_NATIVE)
+ if( macPopupMenu(pos, indexAtPoint ))
+ return;
+#endif
+
+#if (QT_VERSION-0 >= 0x040000)
+#error "Fix this now"
+ // #### should move to QWidget - anything might need this functionality,
+ // #### since anything can have WType_Popup window flag.
+ // #### This includes stuff in QPushButton and some stuff for setting
+ // #### the geometry of QDialog.
+ // QPopupMenu
+ // ::exec()
+ // ::popup()
+ // QPushButton (shouldn't require QMenuPopup)
+ // ::popupPressed
+ // Some stuff in qwidget.cpp for dialogs... can't remember exactly.
+ // Also the code here indicatets the parameter should be a rect, not a
+ // point.
+#endif
+
+ if(d->scroll.scrollable) {
+ d->scroll.scrollable = QPopupMenuPrivate::Scroll::ScrollNone;
+ d->scroll.topScrollableIndex = d->scroll.scrollableSize = 0;
+ badSize = TRUE;
+ }
+ updateSize();
+
+ QPoint mouse = QCursor::pos();
+ snapToMouse = pos == mouse;
+
+ // have to emit here as a menu might be setup in a slot connected
+ // to aboutToShow which will change the size of the menu
+ bool s = supressAboutToShow;
+ supressAboutToShow = TRUE;
+ if ( !s) {
+ emit aboutToShow();
+ updateSize(TRUE);
+ }
+
+ int screen_num;
+ if (QApplication::desktop()->isVirtualDesktop())
+ screen_num =
+ QApplication::desktop()->screenNumber( QApplication::reverseLayout() ?
+ pos+QPoint(width(),0) : pos );
+ else
+ screen_num = QApplication::desktop()->screenNumber( this );
+#ifdef Q_WS_MAC
+ QRect screen = QApplication::desktop()->availableGeometry( screen_num );
+#else
+ QRect screen = QApplication::desktop()->screenGeometry( screen_num );
+#endif
+ int sw = screen.width(); // screen width
+ int sh = screen.height(); // screen height
+ int sx = screen.x(); // screen pos
+ int sy = screen.y();
+ int x = pos.x();
+ int y = pos.y();
+ if ( indexAtPoint >= 0 ) // don't subtract when < 0
+ y -= itemGeometry( indexAtPoint ).y(); // (would subtract 2 pixels!)
+ int w = width();
+ int h = height();
+
+ if ( snapToMouse ) {
+ if ( qApp->reverseLayout() )
+ x -= w;
+ if ( x+w > sx+sw )
+ x = mouse.x()-w;
+ if ( y+h > sy+sh )
+ y = mouse.y()-h;
+ if ( x < sx )
+ x = mouse.x();
+ if ( y < sy )
+ y = sy;
+ }
+
+ if ( x+w > sx+sw ) // the complete widget must
+ x = sx+sw - w; // be visible
+ if ( y+h > sy+sh )
+ y = sy+sh - h;
+ if ( x < sx )
+ x = sx;
+ if ( y < sy )
+ y = sy;
+
+ if(style().styleHint(QStyle::SH_PopupMenu_Scrollable, this)) {
+ int off_top = 0, off_bottom = 0;
+ if(y+h > sy+sh)
+ off_bottom = (y+h) - (sy+sh);
+ if(y < sy)
+ off_top = sy - y;
+ if(off_bottom || off_top) {
+ int ch = updateSize().height(); //store the old height, before setting scrollable --Sam
+ const int vextra = style().pixelMetric(QStyle::PM_PopupMenuFrameVerticalExtra, this);
+ d->scroll.scrollableSize = h - off_top - off_bottom - 2*vextra;
+ if(off_top) {
+ move( x, y = sy );
+ d->scroll.scrollable = d->scroll.scrollable | QPopupMenuPrivate::Scroll::ScrollUp;
+ }
+ if( off_bottom )
+ d->scroll.scrollable = d->scroll.scrollable | QPopupMenuPrivate::Scroll::ScrollDown;
+ if( off_top != off_bottom && indexAtPoint >= 0 ) {
+ ch -= (vextra * 2);
+ if(ch > sh) //no bigger than the screen!
+ ch = sh;
+ if( ch > d->scroll.scrollableSize )
+ d->scroll.scrollableSize = ch;
+ }
+
+ updateSize(TRUE); //now set the size using the scrollable/scrollableSize as above
+ w = width();
+ h = height();
+ if(indexAtPoint >= 0) {
+ if(off_top) { //scroll to it
+ register QMenuItem *mi = NULL;
+ QMenuItemListIt it(*mitems);
+ for(int tmp_y = 0; tmp_y < off_top && (mi=it.current()); ) {
+ QSize sz = style().sizeFromContents(QStyle::CT_PopupMenuItem, this,
+ QSize(0, itemHeight( mi )),
+ QStyleOption(mi,maxPMWidth,0));
+ tmp_y += sz.height();
+ d->scroll.topScrollableIndex++;
+ }
+ }
+ }
+ }
+ }
+ move( x, y );
+ motion=0;
+ actItem = -1;
+
+#ifndef QT_NO_EFFECTS
+ int hGuess = qApp->reverseLayout() ? QEffects::LeftScroll : QEffects::RightScroll;
+ int vGuess = QEffects::DownScroll;
+ if ( qApp->reverseLayout() ) {
+ if ( snapToMouse && ( x + w/2 > mouse.x() ) ||
+ ( parentMenu && parentMenu->isPopupMenu &&
+ ( x + w/2 > ((PopupMenu*)parentMenu)->x() ) ) )
+ hGuess = QEffects::RightScroll;
+ } else {
+ if ( snapToMouse && ( x + w/2 < mouse.x() ) ||
+ ( parentMenu && parentMenu->isPopupMenu &&
+ ( x + w/2 < ((PopupMenu*)parentMenu)->x() ) ) )
+ hGuess = QEffects::LeftScroll;
+ }
+
+#ifndef QT_NO_MENUBAR
+ if ( snapToMouse && ( y + h/2 < mouse.y() ) ||
+ ( parentMenu && parentMenu->isMenuBar &&
+ ( y + h/2 < ((QMenuBar*)parentMenu)->mapToGlobal( ((QMenuBar*)parentMenu)->pos() ).y() ) ) )
+ vGuess = QEffects::UpScroll;
+#endif
+
+ if ( QApplication::isEffectEnabled( UI_AnimateMenu ) &&
+ preventAnimation == FALSE ) {
+ if ( QApplication::isEffectEnabled( UI_FadeMenu ) )
+ qFadeEffect( this );
+ else if ( parentMenu )
+ qScrollEffect( this, parentMenu->isPopupMenu ? hGuess : vGuess );
+ else
+ qScrollEffect( this, hGuess | vGuess );
+ } else
+#endif
+ {
+ show();
+ }
+#if defined(QT_ACCESSIBILITY_SUPPORT)
+ QAccessible::updateAccessibility( this, 0, QAccessible::PopupMenuStart );
+#endif
+}
+
+void PopupMenu::subActivated( int id )
+{
+ emit activatedRedirect( id );
+}
+
+void PopupMenu::subHighlighted( int id )
+{
+ emit highlightedRedirect( id );
+}
+
+static bool fromAccel = FALSE;
+
+#ifndef QT_NO_ACCEL
+void PopupMenu::accelActivated( int id )
+{
+ QMenuItem *mi = findItem( id );
+ if ( mi && mi->isEnabledAndVisible() ) {
+ QGuardedPtr<QSignal> signal = mi->signal();
+ fromAccel = TRUE;
+ actSig( mi->id() );
+ fromAccel = FALSE;
+ if ( signal )
+ signal->activate();
+ }
+}
+
+void PopupMenu::accelDestroyed() // accel about to be deleted
+{
+ autoaccel = 0; // don't delete it twice!
+}
+#endif //QT_NO_ACCEL
+
+void PopupMenu::popupDestroyed( QObject *o )
+{
+ removePopup( (PopupMenu*)o );
+}
+
+void PopupMenu::actSig( int id, bool inwhatsthis )
+{
+ if ( !inwhatsthis ) {
+ emit activated( id );
+#if defined(QT_ACCESSIBILITY_SUPPORT)
+ if ( !fromAccel )
+ QAccessible::updateAccessibility( this, indexOf(id)+1, QAccessible::MenuCommand );
+#endif
+ } else {
+#ifndef QT_NO_WHATSTHIS
+ QRect r( itemGeometry( indexOf( id ) ) );
+ QPoint p( r.center().x(), r.bottom() );
+ QString whatsThis = findItem( id )->whatsThis();
+ if ( whatsThis.isNull() )
+ whatsThis = QWhatsThis::textFor( this, p );
+ QWhatsThis::leaveWhatsThisMode( whatsThis, mapToGlobal( p ), this );
+#endif
+ }
+
+ emit activatedRedirect( id );
+}
+
+void PopupMenu::hilitSig( int id )
+{
+ emit highlighted( id );
+ emit highlightedRedirect( id );
+
+#if defined(QT_ACCESSIBILITY_SUPPORT)
+ QAccessible::updateAccessibility( this, indexOf(id)+1, QAccessible::Focus );
+ QAccessible::updateAccessibility( this, indexOf(id)+1, QAccessible::Selection );
+#endif
+}
+
+void PopupMenu::setFirstItemActive()
+{
+ QMenuItemListIt it(*mitems);
+ register QMenuItem *mi;
+ int ai = 0;
+ if(d->scroll.scrollable)
+ ai = d->scroll.topScrollableIndex;
+ while ( (mi=it.current()) ) {
+ ++it;
+ if ( !mi->isSeparator() && mi->id() != QMenuData::d->aInt &&
+ ( style().styleHint( QStyle::SH_PopupMenu_AllowActiveAndDisabled, this ) || mi->isEnabledAndVisible() )) {
+ setActiveItem( ai );
+ return;
+ }
+ ai++;
+ }
+ actItem = -1;
+}
+
+void PopupMenu::hideAllPopups()
+{
+ register QMenuData *top = this; // find top level popup
+ if ( !preventAnimation )
+ QTimer::singleShot( 10, this, SLOT(allowAnimation()) );
+ preventAnimation = TRUE;
+
+ if ( !isPopup() )
+ return; // nothing to do
+
+ while ( top->parentMenu && top->parentMenu->isPopupMenu
+ && ((PopupMenu*)top->parentMenu)->isPopup() )
+ top = top->parentMenu;
+ ((PopupMenu*)top)->hide(); // cascade from top level
+
+#ifndef QT_NO_WHATSTHIS
+ if (whatsThisItem) {
+ qWhatsThisBDH();
+ whatsThisItem = 0;
+ }
+#endif
+
+}
+
+void PopupMenu::hidePopups()
+{
+ if ( !preventAnimation )
+ QTimer::singleShot( 10, this, SLOT(allowAnimation()) );
+ preventAnimation = TRUE;
+
+ QMenuItemListIt it(*mitems);
+ register QMenuItem *mi;
+ while ( (mi=it.current()) ) {
+ ++it;
+ if ( mi->popup() && mi->popup()->parentMenu == this ) //avoid circularity
+ mi->popup()->hide();
+ }
+ popupActive = -1; // no active sub menu
+ if(style().styleHint(QStyle::SH_PopupMenu_SubMenuPopupDelay, this))
+ d->mouseMoveBuffer = QRegion();
+
+ QRect mfrect = itemGeometry( actItem );
+ setMicroFocusHint( mfrect.x(), mfrect.y(), mfrect.width(), mfrect.height(), FALSE );
+}
+
+bool PopupMenu::tryMenuBar( QMouseEvent *e )
+{
+ register QMenuData *top = this; // find top level
+ while ( top->parentMenu )
+ top = top->parentMenu;
+#ifndef QT_NO_MENUBAR
+ return top->isMenuBar ?
+ ((QMenuBar *)top)->tryMouseEvent( this, e ) :
+ ((PopupMenu*)top)->tryMouseEvent(this, e );
+#else
+ return ((PopupMenu*)top)->tryMouseEvent(this, e );
+#endif
+}
+
+bool PopupMenu::tryMouseEvent( PopupMenu *p, QMouseEvent * e)
+{
+ if ( p == this )
+ return FALSE;
+ QPoint pos = mapFromGlobal( e->globalPos() );
+ if ( !rect().contains( pos ) ) // outside
+ return FALSE;
+ QMouseEvent ee( e->type(), pos, e->globalPos(), e->button(), e->state() );
+ event( &ee );
+ return TRUE;
+}
+
+void PopupMenu::byeMenuBar()
+{
+#ifndef QT_NO_MENUBAR
+ register QMenuData *top = this; // find top level
+ while ( top->parentMenu )
+ top = top->parentMenu;
+#endif
+ hideAllPopups();
+#ifndef QT_NO_MENUBAR
+ if ( top->isMenuBar )
+ ((QMenuBar *)top)->goodbye();
+#endif
+}
+
+int PopupMenu::itemAtPos( const QPoint &pos, bool ignoreSeparator ) const
+{
+ if ( !contentsRect().contains(pos) )
+ return -1;
+
+ int row = 0;
+ int x = contentsRect().x();
+ int y = contentsRect().y();
+ QMenuItem *mi;
+ QMenuItemListIt it( *mitems );
+ if(d->scroll.scrollable) {
+ if(d->scroll.topScrollableIndex) {
+ for( ; (mi = it.current()) && row < d->scroll.topScrollableIndex; row++)
+ ++it;
+ if(!mi) {
+ row = 0;
+ it.toFirst();
+ }
+ y += style().pixelMetric(QStyle::PM_PopupMenuScrollerHeight, this);
+ }
+ }
+ int itemw = contentsRect().width() / ncols;
+ QSize sz;
+ while ( (mi=it.current()) ) {
+ if(d->scroll.scrollable & QPopupMenuPrivate::Scroll::ScrollDown &&
+ y >= contentsRect().height() - style().pixelMetric(QStyle::PM_PopupMenuScrollerHeight, this))
+ return -1;
+ ++it;
+ if ( !mi->isVisible() ) {
+ ++row;
+ continue;
+ }
+ int itemh = itemHeight( mi );
+
+ sz = style().sizeFromContents(QStyle::CT_PopupMenuItem, this,
+ QSize(0, itemh),
+ QStyleOption(mi,maxPMWidth));
+ sz = sz.expandedTo(QSize(itemw, sz.height()));
+ itemw = sz.width();
+ itemh = sz.height();
+
+ if ( ncols > 1 && y + itemh > contentsRect().bottom() ) {
+ y = contentsRect().y();
+ x +=itemw;
+ }
+ if ( QRect( x, y, itemw, itemh ).contains( pos ) )
+ break;
+ y += itemh;
+ ++row;
+ }
+
+ if ( mi && ( !ignoreSeparator || !mi->isSeparator() ) )
+ return row;
+ return -1;
+}
+
+QRect PopupMenu::itemGeometry( int index )
+{
+ QMenuItem *mi;
+ QSize sz;
+ int row = 0, scrollh = 0;
+ int x = contentsRect().x();
+ int y = contentsRect().y();
+ QMenuItemListIt it( *mitems );
+ if(d->scroll.scrollable & QPopupMenuPrivate::Scroll::ScrollUp) {
+ scrollh = style().pixelMetric(QStyle::PM_PopupMenuScrollerHeight, this);
+ y += scrollh;
+ if(d->scroll.topScrollableIndex) {
+ for( ; (mi = it.current()) && row < d->scroll.topScrollableIndex; row++)
+ ++it;
+ if(!mi) {
+ row = 0;
+ it.toFirst();
+ }
+ }
+ }
+ int itemw = contentsRect().width() / ncols;
+ while ( (mi=it.current()) ) {
+ if(d->scroll.scrollable & QPopupMenuPrivate::Scroll::ScrollDown &&
+ y >= contentsRect().height() - scrollh)
+ break;
+ ++it;
+ if ( !mi->isVisible() ) {
+ ++row;
+ continue;
+ }
+ int itemh = itemHeight( mi );
+
+ sz = style().sizeFromContents(QStyle::CT_PopupMenuItem, this,
+ QSize(0, itemh),
+ QStyleOption(mi,maxPMWidth));
+ sz = sz.expandedTo(QSize(itemw, sz.height()));
+ itemw = sz.width();
+ itemh = sz.height();
+ if(d->scroll.scrollable & QPopupMenuPrivate::Scroll::ScrollDown &&
+ (y + itemh > contentsRect().height() - scrollh))
+ itemh -= (y + itemh) - (contentsRect().height() - scrollh);
+ if ( ncols > 1 && y + itemh > contentsRect().bottom() ) {
+ y = contentsRect().y();
+ x +=itemw;
+ }
+ if ( row == index )
+ return QRect( x,y,itemw,itemh );
+ y += itemh;
+ ++row;
+ }
+
+ return QRect(0,0,0,0);
+}
+
+QSize PopupMenu::updateSize(bool force_update, bool do_resize)
+{
+ polish();
+ if ( count() == 0 ) {
+ QSize ret = QSize( 50, 8 );
+ if(do_resize)
+ setFixedSize( ret );
+ badSize = TRUE;
+ return ret;
+ }
+
+ int scrheight = 0;
+ if(d->scroll.scrollableSize) {
+ if(d->scroll.scrollable & QPopupMenuPrivate::Scroll::ScrollUp)
+ scrheight += style().pixelMetric(QStyle::PM_PopupMenuScrollerHeight, this);
+ if(d->scroll.scrollable & QPopupMenuPrivate::Scroll::ScrollDown)
+ scrheight += style().pixelMetric(QStyle::PM_PopupMenuScrollerHeight, this);
+ }
+
+ if(badSize || force_update) {
+#ifndef QT_NO_ACCEL
+ updateAccel( 0 );
+#endif
+ int height = 0;
+ int max_width = 0, max_height = 0;
+ QFontMetrics fm = fontMetrics();
+ register QMenuItem *mi;
+ maxPMWidth = 0;
+ int maxWidgetWidth = 0;
+ tab = 0;
+
+ for ( QMenuItemListIt it( *mitems ); it.current(); ++it ) {
+ mi = it.current();
+ QWidget *miw = mi->widget();
+ if (miw) {
+ if ( miw->parentWidget() != this )
+ miw->reparent( this, QPoint(0,0), TRUE );
+ // widget items musn't propgate mouse events
+ ((PopupMenu*)miw)->setWFlags(WNoMousePropagation);
+ }
+ if ( mi->custom() )
+ mi->custom()->setFont( font() );
+ if ( mi->iconSet() != 0)
+ maxPMWidth = QMAX( maxPMWidth,
+ mi->iconSet()->pixmap( QIconSet::Small, QIconSet::Normal ).width() + 4 );
+ }
+
+ int dh = QApplication::desktop()->height();
+ ncols = 1;
+
+ for ( QMenuItemListIt it2( *mitems ); it2.current(); ++it2 ) {
+ mi = it2.current();
+ if ( !mi->isVisible() )
+ continue;
+ int w = 0;
+ int itemHeight = PopupMenu::itemHeight( mi );
+
+ if ( mi->widget() ) {
+ QSize s( mi->widget()->sizeHint() );
+ s = s.expandedTo( mi->widget()->minimumSize() );
+ mi->widget()->resize( s );
+ if ( s.width() > maxWidgetWidth )
+ maxWidgetWidth = s.width();
+ itemHeight = s.height();
+ } else {
+ if( ! mi->isSeparator() ) {
+ if ( mi->custom() ) {
+ if ( mi->custom()->fullSpan() ) {
+ maxWidgetWidth = QMAX( maxWidgetWidth,
+ mi->custom()->sizeHint().width() );
+ } else {
+ QSize s ( mi->custom()->sizeHint() );
+ w += s.width();
+ }
+ }
+
+ w += maxPMWidth;
+
+ if (! mi->text().isNull()) {
+ QString s = mi->text();
+ int t;
+ if ( (t = s.find('\t')) >= 0 ) { // string contains tab
+ w += fm.width( s, t );
+ w -= s.contains('&') * fm.width('&');
+ w += s.contains("&&") * fm.width('&');
+ int tw = fm.width( s.mid(t + 1) );
+ if ( tw > tab)
+ tab = tw;
+ } else {
+ w += fm.width( s );
+ w -= s.contains('&') * fm.width('&');
+ w += s.contains("&&") * fm.width('&');
+ }
+ } else if (mi->pixmap())
+ w += mi->pixmap()->width();
+ } else {
+ if ( mi->custom() ) {
+ QSize s ( mi->custom()->sizeHint() );
+ w += s.width();
+ } else {
+ w = itemHeight = 2;
+ }
+ }
+
+ QSize sz = style().sizeFromContents(QStyle::CT_PopupMenuItem, this,
+ QSize(w, itemHeight),
+ QStyleOption(mi,maxPMWidth));
+
+ w = sz.width();
+ itemHeight = sz.height();
+
+#if defined(QT_CHECK_NULL)
+ if ( mi->text().isNull() && !mi->pixmap() && !mi->iconSet() &&
+ !mi->isSeparator() && !mi->widget() && !mi->custom() )
+ qWarning( "PopupMenu: (%s) Popup has invalid menu item",
+ name( "unnamed" ) );
+#endif
+ }
+ height += itemHeight;
+ if(style().styleHint(QStyle::SH_PopupMenu_Scrollable, this)) {
+ if(scrheight && height >= d->scroll.scrollableSize - scrheight) {
+ height = d->scroll.scrollableSize - scrheight;
+ break;
+ }
+ } else if( height + 2*frameWidth() >= dh ) {
+ ncols++;
+ max_height = QMAX(max_height, height - itemHeight);
+ height = itemHeight;
+ }
+ if ( w > max_width )
+ max_width = w;
+ }
+ if( ncols == 1 && !max_height )
+ max_height = height;
+
+ if(style().styleHint(QStyle::SH_PopupMenu_Scrollable, this)) {
+ height += scrheight;
+ setMouseTracking(TRUE);
+ }
+
+ if ( tab )
+ tab -= fontMetrics().minRightBearing();
+ else
+ max_width -= fontMetrics().minRightBearing();
+
+ if ( max_width + tab < maxWidgetWidth )
+ max_width = maxWidgetWidth - tab;
+
+ const int fw = frameWidth();
+ int extra_width = (fw+style().pixelMetric(QStyle::PM_PopupMenuFrameHorizontalExtra, this)) * 2,
+ extra_height = (fw+style().pixelMetric(QStyle::PM_PopupMenuFrameVerticalExtra, this)) * 2;
+ if ( ncols == 1 )
+ d->calcSize = QSize( QMAX( minimumWidth(), max_width + tab + extra_width ),
+ QMAX( minimumHeight() , height + extra_height ) );
+ else
+ d->calcSize = QSize( QMAX( minimumWidth(), (ncols*(max_width + tab)) + extra_width ),
+ QMAX( minimumHeight(), QMIN( max_height + extra_height + 1, dh ) ) );
+ badSize = FALSE;
+ }
+
+ {
+ // Position the widget items. It could be done in drawContents
+ // but this way we get less flicker.
+ QSize sz;
+ int x = contentsRect().x();
+ int y = contentsRect().y();
+ int itemw = contentsRect().width() / ncols;
+ for(QMenuItemListIt it(*mitems); it.current(); ++it) {
+ QMenuItem *mi = it.current();
+ if ( !mi->isVisible() )
+ continue;
+
+ int itemh = itemHeight( mi );
+
+ sz = style().sizeFromContents(QStyle::CT_PopupMenuItem, this,
+ QSize(0, itemh), QStyleOption(mi,maxPMWidth));
+ sz = sz.expandedTo(QSize(itemw, sz.height()));
+ itemw = sz.width();
+ itemh = sz.height();
+
+ if ( ncols > 1 && y + itemh > contentsRect().bottom() ) {
+ y = contentsRect().y();
+ x +=itemw;
+ }
+ if ( mi->widget() )
+ mi->widget()->setGeometry( x, y, itemw, mi->widget()->height() );
+ y += itemh;
+ }
+ }
+
+ if( do_resize && size() != d->calcSize ) {
+ setMaximumSize( d->calcSize );
+ d->calcSize = maximumSize(); //let the max size adjust it (virtual)
+ resize( d->calcSize );
+ }
+ return d->calcSize;
+}
+
+#ifndef QT_NO_ACCEL
+void PopupMenu::updateAccel( QWidget *parent )
+{
+ QMenuItemListIt it(*mitems);
+ register QMenuItem *mi;
+
+ if ( parent ) {
+ delete autoaccel;
+ autoaccel = 0;
+ } else if ( !autoaccel ) {
+ // we have no parent. Rather than ignoring any accelerators we try to find this popup's main window
+ if ( tornOff ) {
+ parent = this;
+ } else {
+ QWidget *w = (QWidget *) this;
+ parent = w->parentWidget();
+ while ( (!w->testWFlags(WType_TopLevel) || !w->testWFlags(WType_Popup)) && parent ) {
+ w = parent;
+ parent = parent->parentWidget();
+ }
+ }
+ }
+
+ if ( parent == 0 && autoaccel == 0 )
+ return;
+
+ if ( autoaccel ) // build it from scratch
+ autoaccel->clear();
+ else {
+ // create an autoaccel in any case, even if we might not use
+ // it immediately. Maybe the user needs it later.
+ autoaccel = new QAccel( parent, this );
+ connect( autoaccel, SIGNAL(activated(int)),
+ SLOT(accelActivated(int)) );
+ connect( autoaccel, SIGNAL(activatedAmbiguously(int)),
+ SLOT(accelActivated(int)) );
+ connect( autoaccel, SIGNAL(destroyed()),
+ SLOT(accelDestroyed()) );
+ if ( accelDisabled )
+ autoaccel->setEnabled( FALSE );
+ }
+ while ( (mi=it.current()) ) {
+ ++it;
+ QKeySequence k = mi->key();
+ if ( (int)k ) {
+ int id = autoaccel->insertItem( k, mi->id() );
+#ifndef QT_NO_WHATSTHIS
+ autoaccel->setWhatsThis( id, mi->whatsThis() );
+#endif
+ }
+ if ( !mi->text().isNull() || mi->custom() ) {
+ QString s = mi->text();
+ int i = s.find('\t');
+
+ // Note: Only looking at the first key in the sequence!
+ if ( (int)k && (int)k != Key_unknown ) {
+ QString t = (QString)mi->key();
+ if ( i >= 0 )
+ s.replace( i+1, s.length()-i, t );
+ else {
+ s += '\t';
+ s += t;
+ }
+ } else if ( !k ) {
+ if ( i >= 0 )
+ s.truncate( i );
+ }
+ if ( s != mi->text() ) {
+ mi->setText( s );
+ badSize = TRUE;
+ }
+ }
+ if ( mi->popup() && parent ) { // call recursively
+ // reuse
+ PopupMenu* popup = mi->popup();
+ if (!popup->avoid_circularity) {
+ popup->avoid_circularity = 1;
+ popup->updateAccel( parent );
+ popup->avoid_circularity = 0;
+ }
+ }
+ }
+}
+
+void PopupMenu::enableAccel( bool enable )
+{
+ if ( autoaccel )
+ autoaccel->setEnabled( enable );
+ accelDisabled = !enable; // rememeber when updateAccel
+ QMenuItemListIt it(*mitems);
+ register QMenuItem *mi;
+ while ( (mi=it.current()) ) { // do the same for sub popups
+ ++it;
+ if ( mi->popup() ) // call recursively
+ mi->popup()->enableAccel( enable );
+ }
+}
+#endif
+
+void PopupMenu::setFont( const QFont &font )
+{
+ QWidget::setFont( font );
+ badSize = TRUE;
+ if ( isVisible() ) {
+ updateSize();
+ update();
+ }
+}
+
+void PopupMenu::show()
+{
+ if ( !isPopup() && isVisible() )
+ hide();
+
+ if ( isVisible() ) {
+ supressAboutToShow = FALSE;
+ QWidget::show();
+ return;
+ }
+ if (!supressAboutToShow)
+ emit aboutToShow();
+ else
+ supressAboutToShow = FALSE;
+ performDelayedChanges();
+ updateSize(TRUE);
+ QWidget::show();
+ popupActive = -1;
+ if(style().styleHint(QStyle::SH_PopupMenu_SubMenuPopupDelay, this))
+ d->mouseMoveBuffer = QRegion();
+}
+
+void PopupMenu::hide()
+{
+ if ( syncMenu == this && qApp ) {
+ qApp->exit_loop();
+ syncMenu = 0;
+ }
+
+ if ( !isVisible() ) {
+ QWidget::hide();
+ return;
+ }
+ emit aboutToHide();
+
+ actItem = popupActive = -1;
+ if(style().styleHint(QStyle::SH_PopupMenu_SubMenuPopupDelay, this))
+ d->mouseMoveBuffer = QRegion();
+ mouseBtDn = FALSE; // mouse button up
+#if defined(QT_ACCESSIBILITY_SUPPORT)
+ QAccessible::updateAccessibility( this, 0, QAccessible::PopupMenuEnd );
+#endif
+ parentMenu = 0;
+ hidePopups();
+ QWidget::hide();
+}
+
+int PopupMenu::itemHeight( int row ) const
+{
+ return itemHeight( mitems->at( row ) );
+}
+
+int PopupMenu::itemHeight( QMenuItem *mi ) const
+{
+ if ( mi->widget() )
+ return mi->widget()->height();
+ if ( mi->custom() && mi->custom()->fullSpan() )
+ return mi->custom()->sizeHint().height();
+
+ QFontMetrics fm(fontMetrics());
+ int h = 0;
+ if ( mi->isSeparator() ) // separator height
+ h = 2;
+ else if ( mi->pixmap() ) // pixmap height
+ h = mi->pixmap()->height();
+ else // text height
+ h = fm.height();
+
+ if ( !mi->isSeparator() && mi->iconSet() != 0 )
+ h = QMAX(h, mi->iconSet()->pixmap( QIconSet::Small,
+ QIconSet::Normal ).height());
+ if ( mi->custom() )
+ h = QMAX(h, mi->custom()->sizeHint().height());
+
+ return h;
+}
+
+void PopupMenu::drawItem( QPainter* p, int tab_, QMenuItem* mi,
+ bool act, int x, int y, int w, int h)
+{
+ QStyle::SFlags flags = QStyle::Style_Default;
+ if (isEnabled() && mi->isEnabledAndVisible() && (!mi->popup() || mi->popup()->isEnabled()) )
+ flags |= QStyle::Style_Enabled;
+ if (act)
+ flags |= QStyle::Style_Active;
+ if (mouseBtDn)
+ flags |= QStyle::Style_Down;
+
+ const QColorGroup &cg = ((flags&QStyle::Style_Enabled) ? colorGroup() : palette().disabled() );
+
+ if ( mi->custom() && mi->custom()->fullSpan() ) {
+ QMenuItem dummy;
+ style().drawControl(QStyle::CE_PopupMenuItem, p, this, QRect(x, y, w, h), cg,
+ flags, QStyleOption(&dummy,maxPMWidth,tab_));
+ mi->custom()->paint( p, cg, act, flags&QStyle::Style_Enabled, x, y, w, h );
+ } else
+ style().drawControl(QStyle::CE_PopupMenuItem, p, this, QRect(x, y, w, h), cg,
+ flags, QStyleOption(mi,maxPMWidth,tab_));
+}
+
+void PopupMenu::drawContents( QPainter* p )
+{
+ QMenuItemListIt it(*mitems);
+ QMenuItem *mi = 0;
+ int row = 0;
+ int x = contentsRect().x();
+ int y = contentsRect().y();
+ if(d->scroll.scrollable) {
+ if(d->scroll.topScrollableIndex) {
+ for( ; (mi = it.current()) && row < d->scroll.topScrollableIndex; row++)
+ ++it;
+ if(!mi)
+ it.toFirst();
+ }
+ if(d->scroll.scrollable & QPopupMenuPrivate::Scroll::ScrollUp) {
+ QRect rect(x, y, contentsRect().width(),
+ style().pixelMetric(QStyle::PM_PopupMenuScrollerHeight, this));
+ if(!p->hasClipping() || p->clipRegion().contains(rect)) {
+ QStyle::SFlags flags = QStyle::Style_Up;
+ if (isEnabled())
+ flags |= QStyle::Style_Enabled;
+ style().drawControl(QStyle::CE_PopupMenuScroller, p, this, rect,
+ colorGroup(), flags, QStyleOption(maxPMWidth));
+ }
+ y += rect.height();
+ }
+ }
+
+ int itemw = contentsRect().width() / ncols;
+ QSize sz;
+ QStyle::SFlags flags;
+ while ( (mi=it.current()) ) {
+ if(d->scroll.scrollable & QPopupMenuPrivate::Scroll::ScrollDown &&
+ y >= contentsRect().height() - style().pixelMetric(QStyle::PM_PopupMenuScrollerHeight, this))
+ break;
+ ++it;
+ if ( !mi->isVisible() ) {
+ ++row;
+ continue;
+ }
+ int itemh = itemHeight( mi );
+ sz = style().sizeFromContents(QStyle::CT_PopupMenuItem, this,
+ QSize(0, itemh),
+ QStyleOption(mi,maxPMWidth,0)
+ );
+ sz = sz.expandedTo(QSize(itemw, sz.height()));
+ itemw = sz.width();
+ itemh = sz.height();
+
+ if ( ncols > 1 && y + itemh > contentsRect().bottom() ) {
+ if ( y < contentsRect().bottom() ) {
+ QRect rect(x, y, itemw, contentsRect().bottom() - y);
+ if(!p->hasClipping() || p->clipRegion().contains(rect)) {
+ flags = QStyle::Style_Default;
+ if (isEnabled() && mi->isEnabledAndVisible())
+ flags |= QStyle::Style_Enabled;
+ style().drawControl(QStyle::CE_PopupMenuItem, p, this, rect,
+ colorGroup(), flags, QStyleOption((QMenuItem*)0,maxPMWidth));
+ }
+ }
+ y = contentsRect().y();
+ x +=itemw;
+ }
+ if (!mi->widget() && (!p->hasClipping() || p->clipRegion().contains(QRect(x, y, itemw, itemh))))
+ drawItem( p, tab, mi, row == actItem, x, y, itemw, itemh );
+ y += itemh;
+ ++row;
+ }
+ if ( y < contentsRect().bottom() ) {
+ QRect rect(x, y, itemw, contentsRect().bottom() - y);
+ if(!p->hasClipping() || p->clipRegion().contains(rect)) {
+ flags = QStyle::Style_Default;
+ if ( isEnabled() )
+ flags |= QStyle::Style_Enabled;
+ style().drawControl(QStyle::CE_PopupMenuItem, p, this, rect,
+ colorGroup(), flags, QStyleOption((QMenuItem*)0,maxPMWidth));
+ }
+ }
+ if( d->scroll.scrollable & QPopupMenuPrivate::Scroll::ScrollDown ) {
+ int sh = style().pixelMetric(QStyle::PM_PopupMenuScrollerHeight, this);
+ QRect rect(x, contentsRect().height() - sh, contentsRect().width(), sh);
+ if(!p->hasClipping() || p->clipRegion().contains(rect)) {
+ QStyle::SFlags flags = QStyle::Style_Down;
+ if (isEnabled())
+ flags |= QStyle::Style_Enabled;
+ style().drawControl(QStyle::CE_PopupMenuScroller, p, this, rect,
+ colorGroup(), flags, QStyleOption(maxPMWidth));
+ }
+ }
+#if defined( DEBUG_SLOPPY_SUBMENU )
+ if ( style().styleHint(QStyle::SH_PopupMenu_SloppySubMenus, this )) {
+ p->setClipRegion( d->mouseMoveBuffer );
+ p->fillRect( d->mouseMoveBuffer.boundingRect(), colorGroup().brush( QColorGroup::Highlight ) );
+ }
+#endif
+}
+
+void PopupMenu::paintEvent( QPaintEvent *e )
+{
+ QFrame::paintEvent( e );
+}
+
+void PopupMenu::closeEvent( QCloseEvent * e) {
+ e->accept();
+ byeMenuBar();
+}
+
+void PopupMenu::mousePressEvent( QMouseEvent *e )
+{
+ int sh = style().pixelMetric(QStyle::PM_PopupMenuScrollerHeight, this);
+ if (rect().contains(e->pos()) &&
+ ((d->scroll.scrollable & QPopupMenuPrivate::Scroll::ScrollUp && e->pos().y() <= sh) || //up
+ (d->scroll.scrollable & QPopupMenuPrivate::Scroll::ScrollDown &&
+ e->pos().y() >= contentsRect().height() - sh))) //down
+ return;
+
+ mouseBtDn = TRUE; // mouse button down
+ int item = itemAtPos( e->pos() );
+ if ( item == -1 ) {
+ if ( !rect().contains(e->pos()) && !tryMenuBar(e) ) {
+ byeMenuBar();
+ }
+ return;
+ }
+ register QMenuItem *mi = mitems->at(item);
+ if ( item != actItem ) // new item activated
+ setActiveItem( item );
+
+ PopupMenu *popup = mi->popup();
+ if ( popup ) {
+ if ( popup->isVisible() ) { // sub menu already open
+ int pactItem = popup->actItem;
+ popup->actItem = -1;
+ popup->hidePopups();
+ popup->updateRow( pactItem );
+ } else { // open sub menu
+ hidePopups();
+ popupSubMenuLater( 20, this );
+ }
+ } else {
+ hidePopups();
+ }
+}
+
+void PopupMenu::mouseReleaseEvent( QMouseEvent *e )
+{
+ // do not hide a standalone context menu on press-release, unless
+ // the user moved the mouse significantly
+ if ( !parentMenu && !mouseBtDn && actItem < 0 && motion < 6 )
+ return;
+
+ mouseBtDn = FALSE;
+
+ // if the user released the mouse outside the menu, pass control
+ // to the menubar or our parent menu
+ int sh = style().pixelMetric(QStyle::PM_PopupMenuScrollerHeight, this);
+ if ( !rect().contains( e->pos() ) && tryMenuBar(e) )
+ return;
+ else if((d->scroll.scrollable & QPopupMenuPrivate::Scroll::ScrollUp && e->pos().y() <= sh) || //up
+ (d->scroll.scrollable & QPopupMenuPrivate::Scroll::ScrollDown &&
+ e->pos().y() >= contentsRect().height() - sh)) //down
+ return;
+
+ if ( actItem < 0 ) { // we do not have an active item
+ // if the release is inside without motion (happens with
+ // oversized popup menus on small screens), ignore it
+ if ( rect().contains( e->pos() ) && motion < 6 )
+ return;
+ else
+ byeMenuBar();
+ } else { // selected menu item!
+ register QMenuItem *mi = mitems->at(actItem);
+ if ( mi ->widget() ) {
+ QWidget* widgetAt = QApplication::widgetAt( e->globalPos(), TRUE );
+ if ( widgetAt && widgetAt != this ) {
+ QMouseEvent me( e->type(), widgetAt->mapFromGlobal( e->globalPos() ),
+ e->globalPos(), e->button(), e->state() );
+ QApplication::sendEvent( widgetAt, &me );
+ }
+ }
+ PopupMenu *popup = mi->popup();
+#ifndef QT_NO_WHATSTHIS
+ bool b = QWhatsThis::inWhatsThisMode();
+#else
+ const bool b = FALSE;
+#endif
+ if ( !mi->isEnabledAndVisible() ) {
+#ifndef QT_NO_WHATSTHIS
+ if ( b ) {
+ actItem = -1;
+ updateItem( mi->id() );
+ byeMenuBar();
+ actSig( mi->id(), b);
+ }
+#endif
+ } else if ( popup ) {
+ popup->setFirstItemActive();
+ } else { // normal menu item
+ byeMenuBar(); // deactivate menu bar
+ if ( mi->isEnabledAndVisible() ) {
+ actItem = -1;
+ updateItem( mi->id() );
+ active_popup_menu = this;
+ QGuardedPtr<QSignal> signal = mi->signal();
+ actSig( mi->id(), b );
+ if ( signal && !b )
+ signal->activate();
+ active_popup_menu = 0;
+ }
+ }
+ }
+}
+
+void PopupMenu::mouseMoveEvent( QMouseEvent *e )
+{
+ motion++;
+
+ if ( parentMenu && parentMenu->isPopupMenu ) {
+ PopupMenu* p = (PopupMenu*)parentMenu;
+ int myIndex;
+
+ p->findPopup( this, &myIndex );
+ QPoint pPos = p->mapFromParent( e->globalPos() );
+ if ( p->actItem != myIndex && !p->rect().contains( pPos ) )
+ p->setActiveItem( myIndex );
+
+ if ( style().styleHint(QStyle::SH_PopupMenu_SloppySubMenus, this )) {
+ p->d->mouseMoveBuffer = QRegion();
+#ifdef DEBUG_SLOPPY_SUBMENU
+ p->repaint();
+#endif
+ }
+ }
+
+ if ( (e->state() & Qt::MouseButtonMask) == 0 &&
+ !hasMouseTracking() )
+ return;
+
+ if(d->scroll.scrollable && e->pos().x() >= rect().x() && e->pos().x() <= rect().width()) {
+ int sh = style().pixelMetric(QStyle::PM_PopupMenuScrollerHeight, this);
+ if((d->scroll.scrollable & QPopupMenuPrivate::Scroll::ScrollUp && e->pos().y() <= sh) ||
+ (d->scroll.scrollable & QPopupMenuPrivate::Scroll::ScrollDown && e->pos().y() >= height()-sh)) {
+ if(!d->scroll.scrolltimer) {
+ d->scroll.scrolltimer = new QTimer(this, "popup scroll timer");
+ QObject::connect( d->scroll.scrolltimer, SIGNAL(timeout()),
+ this, SLOT(subScrollTimer()) );
+ }
+ if(!d->scroll.scrolltimer->isActive())
+ d->scroll.scrolltimer->start(40);
+ return;
+ }
+ }
+
+ int item = itemAtPos( e->pos() );
+ if ( item == -1 ) { // no valid item
+ int lastActItem = actItem;
+ actItem = -1;
+ if ( lastActItem >= 0 )
+ updateRow( lastActItem );
+ if ( lastActItem > 0 ||
+ ( !rect().contains( e->pos() ) && !tryMenuBar( e ) ) ) {
+ popupSubMenuLater(style().styleHint(QStyle::SH_PopupMenu_SubMenuPopupDelay,
+ this), this);
+ }
+ } else { // mouse on valid item
+ // but did not register mouse press
+ if ( (e->state() & Qt::MouseButtonMask) && !mouseBtDn )
+ mouseBtDn = TRUE; // so mouseReleaseEvent will pop down
+
+ register QMenuItem *mi = mitems->at( item );
+
+ if ( mi->widget() ) {
+ QWidget* widgetAt = QApplication::widgetAt( e->globalPos(), TRUE );
+ if ( widgetAt && widgetAt != this ) {
+ QMouseEvent me( e->type(), widgetAt->mapFromGlobal( e->globalPos() ),
+ e->globalPos(), e->button(), e->state() );
+ QApplication::sendEvent( widgetAt, &me );
+ }
+ }
+
+ if ( actItem == item )
+ return;
+
+ if ( style().styleHint(QStyle::SH_PopupMenu_SloppySubMenus, this) &&
+ d->mouseMoveBuffer.contains( e->pos() ) ) {
+ actItem = item;
+ popupSubMenuLater( style().styleHint(QStyle::SH_PopupMenu_SubMenuPopupDelay, this) * 6,
+ this );
+ return;
+ }
+
+ if ( mi->popup() || ( popupActive >= 0 && popupActive != item ))
+ popupSubMenuLater( style().styleHint(QStyle::SH_PopupMenu_SubMenuPopupDelay, this),
+ this );
+ else if ( singleSingleShot )
+ singleSingleShot->stop();
+
+ if ( item != actItem )
+ setActiveItem( item );
+ }
+}
+
+void PopupMenu::keyPressEvent( QKeyEvent *e )
+{
+ QMenuItem *mi = 0;
+ PopupMenu *popup;
+ int dy = 0;
+ bool ok_key = TRUE;
+
+ int key = e->key();
+ if ( QApplication::reverseLayout() ) {
+ // in reverse mode opening and closing keys for submenues are reversed
+ if ( key == Key_Left )
+ key = Key_Right;
+ else if ( key == Key_Right )
+ key = Key_Left;
+ }
+
+ switch ( key ) {
+ case Key_Tab:
+ // ignore tab, otherwise it will be passed to the menubar
+ break;
+
+ case Key_Up:
+ dy = -1;
+ break;
+
+ case Key_Down:
+ dy = 1;
+ break;
+
+ case Key_Alt:
+ if ( style().styleHint(QStyle::SH_MenuBar_AltKeyNavigation, this) )
+ byeMenuBar();
+ break;
+
+ case Key_Escape:
+ if ( tornOff ) {
+ close();
+ return;
+ }
+ // just hide one
+ {
+ QMenuData* p = parentMenu;
+ hide();
+#ifndef QT_NO_MENUBAR
+ if ( p && p->isMenuBar )
+ ((QMenuBar*) p)->goodbye( TRUE );
+#endif
+ }
+ break;
+
+ case Key_Left:
+ if ( ncols > 1 && actItem >= 0 ) {
+ QRect r( itemGeometry( actItem ) );
+ int newActItem = itemAtPos( QPoint( r.left() - 1, r.center().y() ) );
+ if ( newActItem >= 0 ) {
+ setActiveItem( newActItem );
+ break;
+ }
+ }
+ if ( parentMenu && parentMenu->isPopupMenu ) {
+ ((PopupMenu *)parentMenu)->hidePopups();
+ if ( singleSingleShot )
+ singleSingleShot->stop();
+ break;
+ }
+
+ ok_key = FALSE;
+ break;
+
+ case Key_Right:
+ if ( actItem >= 0 && ( mi=mitems->at(actItem) )->isEnabledAndVisible() && (popup=mi->popup()) ) {
+ hidePopups();
+ if ( singleSingleShot )
+ singleSingleShot->stop();
+ // ### The next two lines were switched to fix the problem with the first item of the
+ // submenu not being highlighted...any reason why they should have been the other way??
+ subMenuTimer();
+ popup->setFirstItemActive();
+ break;
+ } else if ( actItem == -1 && ( parentMenu && !parentMenu->isMenuBar )) {
+ dy = 1;
+ break;
+ }
+ if ( ncols > 1 && actItem >= 0 ) {
+ QRect r( itemGeometry( actItem ) );
+ int newActItem = itemAtPos( QPoint( r.right() + 1, r.center().y() ) );
+ if ( newActItem >= 0 ) {
+ setActiveItem( newActItem );
+ break;
+ }
+ }
+ ok_key = FALSE;
+ break;
+
+ case Key_Space:
+ if (! style().styleHint(QStyle::SH_PopupMenu_SpaceActivatesItem, this))
+ break;
+ // for motif, fall through
+
+ case Key_Return:
+ case Key_Enter:
+ {
+ if ( actItem < 0 )
+ break;
+#ifndef QT_NO_WHATSTHIS
+ bool b = QWhatsThis::inWhatsThisMode();
+#else
+ const bool b = FALSE;
+#endif
+ mi = mitems->at( actItem );
+ if ( !mi->isEnabled() && !b )
+ break;
+ popup = mi->popup();
+ if ( popup ) {
+ hidePopups();
+ popupSubMenuLater( 20, this );
+ popup->setFirstItemActive();
+ } else {
+ actItem = -1;
+ updateItem( mi->id() );
+ byeMenuBar();
+ if ( mi->isEnabledAndVisible() || b ) {
+ active_popup_menu = this;
+ QGuardedPtr<QSignal> signal = mi->signal();
+ actSig( mi->id(), b );
+ if ( signal && !b )
+ signal->activate();
+ active_popup_menu = 0;
+ }
+ }
+ }
+ break;
+#ifndef QT_NO_WHATSTHIS
+ case Key_F1:
+ if ( actItem < 0 || e->state() != ShiftButton)
+ break;
+ mi = mitems->at( actItem );
+ if ( !mi->whatsThis().isNull() ){
+ if ( !QWhatsThis::inWhatsThisMode() )
+ QWhatsThis::enterWhatsThisMode();
+ QRect r( itemGeometry( actItem) );
+ QWhatsThis::leaveWhatsThisMode( mi->whatsThis(), mapToGlobal( r.bottomLeft()) );
+ }
+ //fall-through!
+#endif
+ default:
+ ok_key = FALSE;
+
+ }
+ if ( !ok_key &&
+ ( !e->state() || e->state() == AltButton || e->state() == ShiftButton ) &&
+ e->text().length()==1 ) {
+ QChar c = e->text()[0].upper();
+
+ QMenuItemListIt it(*mitems);
+ QMenuItem* first = 0;
+ QMenuItem* currentSelected = 0;
+ QMenuItem* firstAfterCurrent = 0;
+
+ register QMenuItem *m;
+ mi = 0;
+ int indx = 0;
+ int clashCount = 0;
+ while ( (m=it.current()) ) {
+ ++it;
+ QString s = m->text();
+ if ( !s.isEmpty() ) {
+ int i = s.find( '&' );
+ while ( i >= 0 && i < (int)s.length() - 1 ) {
+ if ( s[i+1].upper() == c ) {
+ ok_key = TRUE;
+ clashCount++;
+ if ( !first )
+ first = m;
+ if ( indx == actItem )
+ currentSelected = m;
+ else if ( !firstAfterCurrent && currentSelected )
+ firstAfterCurrent = m;
+ break;
+ } else if ( s[i+1] == '&' ) {
+ i = s.find( '&', i+2 );
+ } else {
+ break;
+ }
+ }
+ }
+ if ( mi )
+ break;
+ indx++;
+ }
+
+ if ( 1 == clashCount ) { // No clashes, continue with selection
+ mi = first;
+ popup = mi->popup();
+ if ( popup ) {
+ setActiveItem( indexOf(mi->id()) );
+ hidePopups();
+ popupSubMenuLater( 20, this );
+ popup->setFirstItemActive();
+ } else {
+ byeMenuBar();
+#ifndef QT_NO_WHATSTHIS
+ bool b = QWhatsThis::inWhatsThisMode();
+#else
+ const bool b = FALSE;
+#endif
+ if ( mi->isEnabledAndVisible() || b ) {
+ active_popup_menu = this;
+ QGuardedPtr<QSignal> signal = mi->signal();
+ actSig( mi->id(), b );
+ if ( signal && !b )
+ signal->activate();
+ active_popup_menu = 0;
+ }
+ }
+ } else if ( clashCount > 1 ) { // Clashes, highlight next...
+ // If there's clashes and no one is selected, use first one
+ // or if there is no clashes _after_ current, use first one
+ if ( !currentSelected || (currentSelected && !firstAfterCurrent))
+ dy = indexOf( first->id() ) - actItem;
+ else
+ dy = indexOf( firstAfterCurrent->id() ) - actItem;
+ }
+ }
+#ifndef QT_NO_MENUBAR
+ if ( !ok_key ) { // send to menu bar
+ register QMenuData *top = this; // find top level
+ while ( top->parentMenu )
+ top = top->parentMenu;
+ if ( top->isMenuBar ) {
+ int beforeId = top->actItem;
+ ((QMenuBar*)top)->tryKeyEvent( this, e );
+ if ( beforeId != top->actItem )
+ ok_key = TRUE;
+ }
+ }
+#endif
+ if ( actItem < 0 ) {
+ if ( dy > 0 ) {
+ setFirstItemActive();
+ } else if ( dy < 0 ) {
+ QMenuItemListIt it(*mitems);
+ it.toLast();
+ register QMenuItem *mi;
+ int ai = count() - 1;
+ while ( (mi=it.current()) ) {
+ --it;
+ if ( !mi->isSeparator() && mi->id() != QMenuData::d->aInt ) {
+ setActiveItem( ai );
+ return;
+ }
+ ai--;
+ }
+ actItem = -1;
+ }
+ return;
+ }
+
+ if ( dy ) { // highlight next/prev
+ register int i = actItem;
+ int c = mitems->count();
+ for(int n = c; n; n--) {
+ i = i + dy;
+ if(d->scroll.scrollable) {
+ if(d->scroll.scrolltimer)
+ d->scroll.scrolltimer->stop();
+ if(i < 0)
+ i = 0;
+ else if(i >= c)
+ i = c - 1;
+ } else {
+ if ( i == c )
+ i = 0;
+ else if ( i < 0 )
+ i = c - 1;
+ }
+ mi = mitems->at( i );
+ if ( !mi || !mi->isVisible() )
+ continue;
+
+ if ( !mi->isSeparator() &&
+ ( style().styleHint(QStyle::SH_PopupMenu_AllowActiveAndDisabled, this)
+ || mi->isEnabledAndVisible() ) )
+ break;
+ }
+ if ( i != actItem )
+ setActiveItem( i );
+ if(d->scroll.scrollable) { //need to scroll to make it visible?
+ QRect r = itemGeometry(actItem);
+ if(r.isNull() || r.height() < itemHeight(mitems->at(actItem))) {
+ bool refresh = FALSE;
+ if(d->scroll.scrollable & QPopupMenuPrivate::Scroll::ScrollUp && dy == -1) { //up
+ if(d->scroll.topScrollableIndex >= 0) {
+ d->scroll.topScrollableIndex--;
+ refresh = TRUE;
+ }
+ } else if(d->scroll.scrollable & QPopupMenuPrivate::Scroll::ScrollDown) { //down
+ QMenuItemListIt it(*mitems);
+ int sh = style().pixelMetric(QStyle::PM_PopupMenuScrollerHeight, this);
+ for(int i = 0, y = ((d->scroll.scrollable & QPopupMenuPrivate::Scroll::ScrollUp) ? sh : 0); it.current(); i++, ++it) {
+ if(i >= d->scroll.topScrollableIndex) {
+ int itemh = itemHeight(it.current());
+ QSize sz = style().sizeFromContents(QStyle::CT_PopupMenuItem, this,
+ QSize(0, itemh),
+ QStyleOption(it.current(),maxPMWidth,0));
+ y += sz.height();
+ if(y > (contentsRect().height()-sh)) {
+ if(sz.height() > sh || !it.atLast())
+ d->scroll.topScrollableIndex++;
+ refresh = TRUE;
+ break;
+ }
+ }
+ }
+ }
+ if(refresh) {
+ updateScrollerState();
+ update();
+ }
+ }
+ }
+ }
+
+#ifdef Q_OS_WIN32
+ if ( !ok_key &&
+ !( e->key() == Key_Control || e->key() == Key_Shift || e->key() == Key_Meta ) )
+ qApp->beep();
+#endif // Q_OS_WIN32
+}
+
+void PopupMenu::timerEvent( QTimerEvent *e )
+{
+ QFrame::timerEvent( e );
+}
+
+void PopupMenu::leaveEvent( QEvent * )
+{
+ if ( testWFlags( WStyle_Tool ) && style().styleHint(QStyle::SH_PopupMenu_MouseTracking, this) ) {
+ int lastActItem = actItem;
+ actItem = -1;
+ if ( lastActItem >= 0 )
+ updateRow( lastActItem );
+ }
+}
+
+void PopupMenu::styleChange( QStyle& old )
+{
+ QFrame::styleChange( old );
+ setMouseTracking(style().styleHint(QStyle::SH_PopupMenu_MouseTracking, this));
+ style().polishPopupMenu( this );
+ updateSize(TRUE);
+}
+
+void PopupMenu::enabledChange( bool )
+{
+ if ( QMenuData::d->aWidget ) // torn-off menu
+ QMenuData::d->aWidget->setEnabled( isEnabled() );
+}
+
+int PopupMenu::columns() const
+{
+ return ncols;
+}
+
+// This private slot handles the scrolling popupmenu
+void PopupMenu::subScrollTimer() {
+ QPoint pos = QCursor::pos();
+ if(!d->scroll.scrollable || !isVisible()) {
+ if(d->scroll.scrolltimer)
+ d->scroll.scrolltimer->stop();
+ return;
+ } else if(pos.x() > x() + width() || pos.x() < x()) {
+ return;
+ }
+ int sh = style().pixelMetric(QStyle::PM_PopupMenuScrollerHeight, this);
+ if(!d->scroll.lastScroll.isValid()) {
+ d->scroll.lastScroll = QTime::currentTime();
+ } else {
+ int factor=0;
+ if(pos.y() < y())
+ factor = y() - pos.y();
+ else if(pos.y() > y() + height())
+ factor = pos.y() - (y() + height());
+ int msecs = 250 - ((factor / 10) * 40);
+ if(d->scroll.lastScroll.msecsTo(QTime::currentTime()) < QMAX(0, msecs))
+ return;
+ d->scroll.lastScroll = QTime::currentTime();
+ }
+ if(d->scroll.scrollable & QPopupMenuPrivate::Scroll::ScrollUp && pos.y() <= y() + sh) { //up
+ if(d->scroll.topScrollableIndex > 0) {
+ d->scroll.topScrollableIndex--;
+ updateScrollerState();
+ update(contentsRect());
+ }
+ } else if(d->scroll.scrollable & QPopupMenuPrivate::Scroll::ScrollDown &&
+ pos.y() >= (y() + contentsRect().height()) - sh) { //down
+ QMenuItemListIt it(*mitems);
+ for(int i = 0, y = contentsRect().y() + sh; it.current(); i++, ++it) {
+ if(i >= d->scroll.topScrollableIndex) {
+ int itemh = itemHeight(it.current());
+ QSize sz = style().sizeFromContents(QStyle::CT_PopupMenuItem, this, QSize(0, itemh),
+ QStyleOption(it.current(),maxPMWidth,0));
+ y += sz.height();
+ if(y > contentsRect().height() - sh) {
+ d->scroll.topScrollableIndex++;
+ updateScrollerState();
+ update(contentsRect());
+ break;
+ }
+ }
+ }
+ }
+}
+
+// This private slot handles the delayed submenu effects
+
+void PopupMenu::subMenuTimer() {
+
+ if ( !isVisible() || (actItem < 0 && popupActive < 0) || actItem == popupActive )
+ return;
+
+ if ( popupActive >= 0 ) {
+ hidePopups();
+ popupActive = -1;
+ }
+
+ // hidePopups() may change actItem etc.
+ if ( !isVisible() || actItem < 0 || actItem == popupActive )
+ return;
+
+ QMenuItem *mi = mitems->at(actItem);
+ if ( !mi || !mi->isEnabledAndVisible() )
+ return;
+
+ PopupMenu *popup = mi->popup();
+ if ( !popup || !popup->isEnabled() )
+ return;
+
+ //avoid circularity
+ if ( popup->isVisible() )
+ return;
+
+ Q_ASSERT( popup->parentMenu == 0 );
+ popup->parentMenu = this; // set parent menu
+
+ emit popup->aboutToShow();
+ supressAboutToShow = TRUE;
+
+
+ QRect r( itemGeometry( actItem ) );
+ QPoint p;
+ QSize ps = popup->sizeHint();
+ if( QApplication::reverseLayout() ) {
+ p = QPoint( r.left() + motifArrowHMargin - ps.width(), r.top() + motifArrowVMargin );
+ p = mapToGlobal( p );
+
+ bool right = FALSE;
+ if ( ( parentMenu && parentMenu->isPopupMenu &&
+ ((PopupMenu*)parentMenu)->geometry().x() < geometry().x() ) ||
+ p.x() < 0 )
+ right = TRUE;
+ if ( right && (ps.width() > QApplication::desktop()->width() - mapToGlobal( r.topRight() ).x() ) )
+ right = FALSE;
+ if ( right )
+ p.setX( mapToGlobal( r.topRight() ).x() );
+ } else {
+ p = QPoint( r.right() - motifArrowHMargin, r.top() + motifArrowVMargin );
+ p = mapToGlobal( p );
+
+ bool left = FALSE;
+ if ( ( parentMenu && parentMenu->isPopupMenu &&
+ ((PopupMenu*)parentMenu)->geometry().x() > geometry().x() ) ||
+ p.x() + ps.width() > QApplication::desktop()->width() )
+ left = TRUE;
+ if ( left && (ps.width() > mapToGlobal( r.topLeft() ).x() ) )
+ left = FALSE;
+ if ( left )
+ p.setX( mapToGlobal( r.topLeft() ).x() - ps.width() );
+ }
+ QRect pr = popup->itemGeometry(popup->count() - 1);
+ if (p.y() + ps.height() > QApplication::desktop()->height() &&
+ p.y() - ps.height() + (QCOORD) pr.height() >= 0)
+ p.setY( p.y() - ps.height() + (QCOORD) pr.height());
+
+ if ( style().styleHint(QStyle::SH_PopupMenu_SloppySubMenus, this )) {
+ QPoint cur = QCursor::pos();
+ if ( r.contains( mapFromGlobal( cur ) ) ) {
+ QPoint pts[4];
+ pts[0] = QPoint( cur.x(), cur.y() - 2 );
+ pts[3] = QPoint( cur.x(), cur.y() + 2 );
+ if ( p.x() >= cur.x() ) {
+ pts[1] = QPoint( geometry().right(), p.y() );
+ pts[2] = QPoint( geometry().right(), p.y() + ps.height() );
+ } else {
+ pts[1] = QPoint( p.x() + ps.width(), p.y() );
+ pts[2] = QPoint( p.x() + ps.width(), p.y() + ps.height() );
+ }
+ QPointArray points( 4 );
+ for( int i = 0; i < 4; i++ )
+ points.setPoint( i, mapFromGlobal( pts[i] ) );
+ d->mouseMoveBuffer = QRegion( points );
+ repaint();
+ }
+ }
+
+ popupActive = actItem;
+ popup->popup( p );
+}
+
+void PopupMenu::allowAnimation()
+{
+ preventAnimation = FALSE;
+}
+
+void PopupMenu::updateRow( int row )
+{
+ if ( !isVisible() )
+ return;
+
+ if ( badSize ) {
+ updateSize();
+ update();
+ return;
+ }
+ updateSize();
+ QRect r = itemGeometry( row );
+ if ( !r.isNull() ) // can happen via the scroller
+ repaint( r );
+}
+
+int PopupMenu::exec( const QPoint & pos, int indexAtPoint )
+{
+ snapToMouse = TRUE;
+ if ( !qApp )
+ return -1;
+
+ PopupMenu* priorSyncMenu = syncMenu;
+
+ syncMenu = this;
+ syncMenuId = -1;
+
+ QGuardedPtr<PopupMenu> that = this;
+ connectModal( that, TRUE );
+ popup( pos, indexAtPoint );
+ qApp->enter_loop();
+ connectModal( that, FALSE );
+
+ syncMenu = priorSyncMenu;
+ return syncMenuId;
+}
+
+
+
+// Connect the popup and all its submenus to modalActivation() if
+// \a doConnect is true, otherwise disconnect.
+void PopupMenu::connectModal( PopupMenu* receiver, bool doConnect )
+{
+ if ( !receiver )
+ return;
+
+ connectModalRecursionSafety = doConnect;
+
+ if ( doConnect )
+ connect( this, SIGNAL(activated(int)),
+ receiver, SLOT(modalActivation(int)) );
+ else
+ disconnect( this, SIGNAL(activated(int)),
+ receiver, SLOT(modalActivation(int)) );
+
+ QMenuItemListIt it(*mitems);
+ register QMenuItem *mi;
+ while ( (mi=it.current()) ) {
+ ++it;
+ if ( mi->popup() && mi->popup() != receiver
+ && (bool)(mi->popup()->connectModalRecursionSafety) != doConnect )
+ mi->popup()->connectModal( receiver, doConnect ); //avoid circular
+ }
+}
+
+int PopupMenu::exec()
+{
+ return exec(mapToGlobal(QPoint(0,0)));
+}
+
+
+// Internal slot used for exec().
+
+void PopupMenu::modalActivation( int id )
+{
+ syncMenuId = id;
+}
+
+void PopupMenu::setActiveItem( int i )
+{
+ int lastActItem = actItem;
+ actItem = i;
+ if ( lastActItem >= 0 )
+ updateRow( lastActItem );
+ if ( i >= 0 && i != lastActItem )
+ updateRow( i );
+ QMenuItem *mi = mitems->at( actItem );
+ if ( !mi )
+ return;
+
+ if ( mi->widget() && mi->widget()->isFocusEnabled() ) {
+ mi->widget()->setFocus();
+ } else {
+ setFocus();
+ QRect mfrect = itemGeometry( actItem );
+ setMicroFocusHint( mfrect.x(), mfrect.y(), mfrect.width(), mfrect.height(), FALSE );
+ }
+ if ( mi->id() != -1 )
+ hilitSig( mi->id() );
+#ifndef QT_NO_WHATSTHIS
+ if (whatsThisItem && whatsThisItem != mi) {
+ qWhatsThisBDH();
+ }
+ whatsThisItem = mi;
+#endif
+}
+
+QSize PopupMenu::sizeHint() const
+{
+ constPolish();
+ PopupMenu* that = (PopupMenu*) this;
+ //We do not need a resize here, just the sizeHint..
+ return that->updateSize(FALSE, FALSE).expandedTo( QApplication::globalStrut() );
+}
+
+int PopupMenu::idAt( const QPoint& pos ) const
+{
+ return idAt( itemAtPos( pos ) );
+}
+
+bool PopupMenu::customWhatsThis() const
+{
+ return TRUE;
+}
+
+bool PopupMenu::focusNextPrevChild( bool next )
+{
+ register QMenuItem *mi;
+ int dy = next? 1 : -1;
+ if ( dy && actItem < 0 ) {
+ setFirstItemActive();
+ } else if ( dy ) { // highlight next/prev
+ register int i = actItem;
+ int c = mitems->count();
+ int n = c;
+ while ( n-- ) {
+ i = i + dy;
+ if ( i == c )
+ i = 0;
+ else if ( i < 0 )
+ i = c - 1;
+ mi = mitems->at( i );
+ if ( mi && !mi->isSeparator() &&
+ ( ( style().styleHint(QStyle::SH_PopupMenu_AllowActiveAndDisabled, this)
+ && mi->isVisible() )
+ || mi->isEnabledAndVisible() ) )
+ break;
+ }
+ if ( i != actItem )
+ setActiveItem( i );
+ }
+ return TRUE;
+}
+
+void PopupMenu::focusInEvent( QFocusEvent * )
+{
+}
+
+void PopupMenu::focusOutEvent( QFocusEvent * )
+{
+}
+
+class QTearOffMenuItem : public QCustomMenuItem
+{
+public:
+ QTearOffMenuItem()
+ {
+ }
+ ~QTearOffMenuItem()
+ {
+ }
+ void paint( QPainter* p, const QColorGroup& cg, bool,
+ bool, int x, int y, int w, int h )
+ {
+ p->setPen( QPen( cg.dark(), 1, DashLine ) );
+ p->drawLine( x+2, y+h/2-1, x+w-4, y+h/2-1 );
+ p->setPen( QPen( cg.light(), 1, DashLine ) );
+ p->drawLine( x+2, y+h/2, x+w-4, y+h/2 );
+ }
+ bool fullSpan() const
+ {
+ return TRUE;
+ }
+
+ QSize sizeHint()
+ {
+ return QSize( 20, 6 );
+ }
+};
+
+int PopupMenu::insertTearOffHandle( int id, int index )
+{
+ int myid = insertItem( new QTearOffMenuItem, id, index );
+ connectItem( myid, this, SLOT( toggleTearOff() ) );
+ QMenuData::d->aInt = myid;
+ return myid;
+}
+
+void PopupMenu::toggleTearOff()
+{
+ if ( active_popup_menu && active_popup_menu->tornOff ) {
+ active_popup_menu->close();
+ } else if (QMenuData::d->aWidget ) {
+ delete (QWidget*) QMenuData::d->aWidget; // delete the old one
+ } else {
+ // create a tear off menu
+ PopupMenu* p = new PopupMenu( parentWidget(), "tear off menu" );
+ connect( p, SIGNAL( activated(int) ), this, SIGNAL( activated(int) ) );
+ connect( p, SIGNAL( highlighted(int) ), this, SIGNAL( highlighted(int) ) );
+#ifndef QT_NO_WIDGET_TOPEXTRA
+ p->setCaption( caption() );
+#endif
+ p->setCheckable( isCheckable() );
+ p->reparent( parentWidget(), WType_TopLevel | WStyle_Tool |
+ WNoAutoErase | WDestructiveClose,
+ geometry().topLeft(), FALSE );
+ p->mitems->setAutoDelete( FALSE );
+ p->tornOff = TRUE;
+ for ( QMenuItemListIt it( *mitems ); it.current(); ++it ) {
+ if ( it.current()->id() != QMenuData::d->aInt && !it.current()->widget() )
+ p->mitems->append( it.current() );
+ }
+ p->show();
+ QMenuData::d->aWidget = p;
+ }
+}
+
+void PopupMenu::activateItemAt( int index )
+{
+ if ( index >= 0 && index < (int) mitems->count() ) {
+ QMenuItem *mi = mitems->at( index );
+ if ( index != actItem ) // new item activated
+ setActiveItem( index );
+ PopupMenu *popup = mi->popup();
+ if ( popup ) {
+ if ( popup->isVisible() ) { // sub menu already open
+ int pactItem = popup->actItem;
+ popup->actItem = -1;
+ popup->hidePopups();
+ popup->updateRow( pactItem );
+ } else { // open sub menu
+ hidePopups();
+ actItem = index;
+ subMenuTimer();
+ popup->setFirstItemActive();
+ }
+ } else {
+ byeMenuBar(); // deactivate menu bar
+
+#ifndef QT_NO_WHATSTHIS
+ bool b = QWhatsThis::inWhatsThisMode();
+#else
+ const bool b = FALSE;
+#endif
+ if ( !mi->isEnabledAndVisible() ) {
+#ifndef QT_NO_WHATSTHIS
+ if ( b ) {
+ actItem = -1;
+ updateItem( mi->id() );
+ byeMenuBar();
+ actSig( mi->id(), b);
+ }
+#endif
+ } else {
+ byeMenuBar(); // deactivate menu bar
+ if ( mi->isEnabledAndVisible() ) {
+ actItem = -1;
+ updateItem( mi->id() );
+ active_popup_menu = this;
+ QGuardedPtr<QSignal> signal = mi->signal();
+ actSig( mi->id(), b );
+ if ( signal && !b )
+ signal->activate();
+ active_popup_menu = 0;
+ }
+ }
+ }
+ } else {
+ if ( tornOff ) {
+ close();
+ } else {
+ QMenuData* p = parentMenu;
+ hide();
+#ifndef QT_NO_MENUBAR
+ if ( p && p->isMenuBar )
+ ((QMenuBar*) p)->goodbye( TRUE );
+#endif
+ }
+ }
+
+}
+
+void
+PopupMenu::updateScrollerState()
+{
+ uint old_scrollable = d->scroll.scrollable;
+ d->scroll.scrollable = QPopupMenuPrivate::Scroll::ScrollNone;
+ if(!style().styleHint(QStyle::SH_PopupMenu_Scrollable, this))
+ return;
+
+ QMenuItem *mi;
+ QMenuItemListIt it( *mitems );
+ if(d->scroll.topScrollableIndex) {
+ for(int row = 0; (mi = it.current()) && row < d->scroll.topScrollableIndex; row++)
+ ++it;
+ if(!mi)
+ it.toFirst();
+ }
+ int y = 0, sh = style().pixelMetric(QStyle::PM_PopupMenuScrollerHeight, this);
+ if(!it.atFirst()) {
+ // can't use |= because of a bug/feature in IBM xlC 5.0.2
+ d->scroll.scrollable = d->scroll.scrollable | QPopupMenuPrivate::Scroll::ScrollUp;
+ y += sh;
+ }
+ while ( (mi=it.current()) ) {
+ ++it;
+ int myheight = contentsRect().height();
+ QSize sz = style().sizeFromContents(QStyle::CT_PopupMenuItem, this,
+ QSize(0, itemHeight( mi )),
+ QStyleOption(mi,maxPMWidth));
+ if(y + sz.height() >= myheight) {
+ d->scroll.scrollable = d->scroll.scrollable | QPopupMenuPrivate::Scroll::ScrollDown;
+ break;
+ }
+ y += sz.height();
+ }
+ if((d->scroll.scrollable & QPopupMenuPrivate::Scroll::ScrollUp) &&
+ !(old_scrollable & QPopupMenuPrivate::Scroll::ScrollUp))
+ d->scroll.topScrollableIndex++;
+}
+
+#endif // QT_NO_POPUPMENU
+
+*/
diff --git a/muse2/muse/widgets/popupmenu.h b/muse2/muse/widgets/popupmenu.h
new file mode 100644
index 00000000..138e45e1
--- /dev/null
+++ b/muse2/muse/widgets/popupmenu.h
@@ -0,0 +1,303 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: popupmenu.h,v 1.1.1.1 2010/07/18 03:18:00 terminator356 Exp $
+//
+// (C) Copyright 1999-2010 Werner Schweer (ws@seh.de)
+//
+// PopupMenu sub-class of QPopupMenu created by Tim.
+//=========================================================
+
+
+
+//=========================================================
+//
+// NOTICE: This sub-class of QPopupMenu *automatically* deletes
+// and *clears* any sub popup menus, when clear() is called.
+// Therefore a parent widget is *not* necessary when
+// creating sub popup menus to add to the popup.
+//
+//=========================================================
+
+
+
+#ifndef __POPUPMENU_H__
+#define __POPUPMENU_H__
+
+#include <q3popupmenu.h>
+//Added by qt3to4:
+#include <QMouseEvent>
+//#include <qmenudata.h>
+
+class QWidget;
+class QMouseEvent;
+
+//class MenuData : public QMenuData
+//{
+ //friend class QMenuBar;
+// friend class QPopupMenu;
+// friend class PopupMenu;
+
+// Q_OBJECT
+ //private:
+//};
+
+/*
+// Internal class to get access to protected QMenuData members.
+class MenuData : public QMenuData
+{
+ friend class QPopupMenu;
+ friend class QMenuData;
+ friend class PopupMenu;
+
+private:
+
+public:
+ MenuData() : QMenuData() { }
+ virtual ~MenuData() { }
+};
+*/
+
+//class Q_EXPORT PopupMenu : public QPopupMenu
+class PopupMenu : public Q3PopupMenu
+//class PopupMenu : public QPopupMenu, public MenuData
+{
+ friend class QMenuData;
+ //friend class QMenuBar;
+ friend class Q3PopupMenu;
+ friend class QMenuBar;
+ //friend class MenuData;
+
+ Q_OBJECT
+ private:
+ // QPopupMenu::d is private, so this is our own private.
+ //QPopupMenuPrivate *d;
+
+ //virtual void setFirstItemActive();
+ //void hideAllPopups();
+ //void hidePopups();
+ bool tryMenuBar(QMouseEvent *);
+ //bool tryMouseEvent(QPopupMenu *, QMouseEvent *);
+ bool tryMouseEvent(PopupMenu *, QMouseEvent *);
+ //void byeMenuBar();
+ void actSig(int, bool = FALSE);
+ virtual void menuDelPopup(Q3PopupMenu *);
+
+ protected:
+ //int actItem;
+
+ //void mousePressEvent(QMouseEvent *);
+ void mouseReleaseEvent(QMouseEvent *);
+
+ public:
+ PopupMenu(QWidget* parent=0, const char* name=0);
+ ~PopupMenu();
+};
+
+#endif
+
+
+
+
+/****************************************************************************
+**
+** Definition of QPopupMenu class
+**
+** Created : 941128
+**
+** Copyright (C) 1992-2008 Trolltech ASA. All rights reserved.
+**
+** This file is part of the widgets module of the Qt GUI Toolkit.
+**
+** This file may be used under the terms of the GNU General
+** Public License versions 2.0 or 3.0 as published by the Free
+** Software Foundation and appearing in the files LICENSE.GPL2
+** and LICENSE.GPL3 included in the packaging of this file.
+** Alternatively you may (at your option) use any later version
+** of the GNU General Public License if such license has been
+** publicly approved by Trolltech ASA (or its successors, if any)
+** and the KDE Free Qt Foundation.
+**
+** Please review the following information to ensure GNU General
+** Public Licensing requirements will be met:
+** http://trolltech.com/products/qt/licenses/licensing/opensource/.
+** If you are unsure which license is appropriate for your use, please
+** review the following information:
+** http://trolltech.com/products/qt/licenses/licensing/licensingoverview
+** or contact the sales department at sales@trolltech.com.
+**
+** This file may be used under the terms of the Q Public License as
+** defined by Trolltech ASA and appearing in the file LICENSE.QPL
+** included in the packaging of this file. Licensees holding valid Qt
+** Commercial licenses may use this file in accordance with the Qt
+** Commercial License Agreement provided with the Software.
+**
+** This file is provided "AS IS" with NO WARRANTY OF ANY KIND,
+** INCLUDING THE WARRANTIES OF DESIGN, MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE. Trolltech reserves all rights not granted
+** herein.
+**
+**********************************************************************/
+
+/*
+#ifndef __POPUPMENU_H__
+#define __POPUPMENU_H__
+
+#ifndef QT_H
+#include <qframe.h>
+#include <qmenudata.h>
+#endif // QT_H
+
+#ifndef QT_NO_POPUPMENU
+class QPopupMenuPrivate;
+
+class Q_EXPORT PopupMenu : public QFrame, public QMenuData
+{
+ Q_OBJECT
+ Q_PROPERTY( bool checkable READ isCheckable WRITE setCheckable )
+public:
+ PopupMenu( QWidget* parent=0, const char* name=0 );
+ ~PopupMenu();
+
+ void popup( const QPoint & pos, int indexAtPoint = -1 ); // open
+ void updateItem( int id );
+
+ virtual void setCheckable( bool );
+ bool isCheckable() const;
+
+ void setFont( const QFont & );
+ void show();
+ void hide();
+
+ int exec();
+ int exec( const QPoint & pos, int indexAtPoint = 0 ); // modal
+
+ virtual void setActiveItem( int );
+ QSize sizeHint() const;
+
+ int idAt( int index ) const { return QMenuData::idAt( index ); }
+ int idAt( const QPoint& pos ) const;
+
+ bool customWhatsThis() const;
+
+ int insertTearOffHandle( int id=-1, int index=-1 );
+
+ void activateItemAt( int index );
+ QRect itemGeometry( int index );
+
+
+signals:
+ void activated( int itemId );
+ void highlighted( int itemId );
+ void activatedRedirect( int itemId ); // to parent menu
+ void highlightedRedirect( int itemId );
+ void aboutToShow();
+ void aboutToHide();
+
+protected:
+ int itemHeight( int ) const;
+ int itemHeight( QMenuItem* mi ) const;
+ void drawItem( QPainter* p, int tab, QMenuItem* mi,
+ bool act, int x, int y, int w, int h);
+
+ void drawContents( QPainter * );
+
+ void closeEvent( QCloseEvent *e );
+ void paintEvent( QPaintEvent * );
+ void mousePressEvent( QMouseEvent * );
+ void mouseReleaseEvent( QMouseEvent * );
+ void mouseMoveEvent( QMouseEvent * );
+ void keyPressEvent( QKeyEvent * );
+ void focusInEvent( QFocusEvent * );
+ void focusOutEvent( QFocusEvent * );
+ void timerEvent( QTimerEvent * );
+ void leaveEvent( QEvent * );
+ void styleChange( QStyle& );
+ void enabledChange( bool );
+ int columns() const;
+
+ bool focusNextPrevChild( bool next );
+
+ int itemAtPos( const QPoint &, bool ignoreSeparator = TRUE ) const;
+
+private slots:
+ void subActivated( int itemId );
+ void subHighlighted( int itemId );
+#ifndef QT_NO_ACCEL
+ void accelActivated( int itemId );
+ void accelDestroyed();
+#endif
+ void popupDestroyed( QObject* );
+ void modalActivation( int );
+
+ void subMenuTimer();
+ void subScrollTimer();
+ void allowAnimation();
+ void toggleTearOff();
+
+ void performDelayedChanges();
+
+private:
+ void updateScrollerState();
+ void menuContentsChanged();
+ void menuStateChanged();
+ void performDelayedContentsChanged();
+ void performDelayedStateChanged();
+ void menuInsPopup( PopupMenu * );
+ void menuDelPopup( PopupMenu * );
+ void frameChanged();
+
+ void actSig( int, bool = FALSE );
+ void hilitSig( int );
+ virtual void setFirstItemActive();
+ void hideAllPopups();
+ void hidePopups();
+ bool tryMenuBar( QMouseEvent * );
+ void byeMenuBar();
+
+ QSize updateSize(bool force_recalc=FALSE, bool do_resize=TRUE);
+ void updateRow( int row );
+#ifndef QT_NO_ACCEL
+ void updateAccel( QWidget * );
+ void enableAccel( bool );
+#endif
+ QPopupMenuPrivate *d;
+#ifndef QT_NO_ACCEL
+ QAccel *autoaccel;
+#endif
+
+#if defined(Q_WS_MAC) && !defined(QMAC_QMENUBAR_NO_NATIVE)
+ bool macPopupMenu(const QPoint &, int);
+ uint mac_dirty_popup : 1;
+#endif
+
+ int popupActive;
+ int tab;
+ uint accelDisabled : 1;
+ uint checkable : 1;
+ uint connectModalRecursionSafety : 1;
+ uint tornOff : 1;
+ uint pendingDelayedContentsChanges : 1;
+ uint pendingDelayedStateChanges : 1;
+ int maxPMWidth;
+ int ncols;
+ bool snapToMouse;
+ bool tryMouseEvent( PopupMenu *, QMouseEvent * );
+
+ friend class QMenuData;
+ friend class QMenuBar;
+
+ void connectModal(PopupMenu* receiver, bool doConnect);
+
+private: // Disabled copy constructor and operator=
+#if defined(Q_DISABLE_COPY)
+ PopupMenu( const PopupMenu & );
+ PopupMenu &operator=( const PopupMenu & );
+#endif
+};
+
+
+#endif // QT_NO_POPUPMENU
+
+#endif // QPOPUPMENU_H
+*/ \ No newline at end of file
diff --git a/muse2/muse/widgets/posedit.cpp b/muse2/muse/widgets/posedit.cpp
new file mode 100644
index 00000000..9fad1a6f
--- /dev/null
+++ b/muse2/muse/widgets/posedit.cpp
@@ -0,0 +1,875 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: posedit.cpp,v 1.3.2.2 2008/05/21 00:28:54 terminator356 Exp $
+// (C) Copyright 2001 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include <q3rangecontrol.h>
+#include <qapplication.h>
+#include <qpixmap.h>
+#include <qapplication.h>
+#include <q3valuelist.h>
+#include <qstring.h>
+#include <qstyle.h>
+//Added by qt3to4:
+#include <QTimerEvent>
+#include <QKeyEvent>
+#include <QResizeEvent>
+#include <QMouseEvent>
+#include <QEvent>
+#include <QPaintEvent>
+#include <values.h>
+#include <qpainter.h>
+#include <qtimer.h>
+
+#include "posedit.h"
+#include "sig.h"
+
+extern int mtcType;
+
+//---------------------------------------------------------
+// QNumberSection
+//---------------------------------------------------------
+
+class QNumberSection
+ {
+ int selstart;
+ int selend;
+
+ public:
+ QNumberSection(int selStart = 0, int selEnd = 0)
+ : selstart(selStart), selend(selEnd ) {}
+ int selectionStart() const { return selstart; }
+ void setSelectionStart(int s) { selstart = s; }
+ int selectionEnd() const { return selend; }
+ void setSelectionEnd( int s ) { selend = s; }
+ int width() const { return selend - selstart; }
+ };
+
+//---------------------------------------------------------
+// PosEditor
+//---------------------------------------------------------
+
+class PosEditor : public QWidget
+ {
+ PosEdit* cw;
+ bool frm;
+ QPixmap *pm;
+ int focusSec;
+ Q3ValueList<QNumberSection> sections;
+ QString sep;
+ int offset;
+
+ int section(const QPoint&);
+
+ protected:
+ void init();
+ bool event(QEvent *e);
+ void resizeEvent(QResizeEvent*);
+ void paintEvent(QPaintEvent*);
+ void mousePressEvent(QMouseEvent *e);
+
+ void applyFocusSelection() {}
+
+ public:
+ PosEditor(PosEdit* Q_PARENT, const char * Q_NAME );
+ ~PosEditor();
+
+ void setControlWidget(PosEdit * widget);
+ PosEdit* controlWidget() const;
+
+ void setSeparator(const QString& s) { sep = s; }
+ QString separator() const { return sep; }
+ int focusSection() const { return focusSec; }
+
+ bool setFocusSection(int s);
+ void appendSection(const QNumberSection& sec);
+ void clearSections();
+ void setSectionSelection(int sec, int selstart, int selend);
+ bool eventFilter(QObject *o, QEvent *e);
+ };
+
+//---------------------------------------------------------
+// section
+//---------------------------------------------------------
+
+int PosEditor::section(const QPoint& pt)
+ {
+ if (pm->isNull())
+ return -1;
+ QPainter p(pm);
+ int fw = frm ? style()->pixelMetric(QStyle::PM_DefaultFrameWidth) : 0;
+ int x = 2 + fw;
+ int y = 0;
+ int w = width();
+ int h = height();
+ for (unsigned int i = 0; i < sections.count(); ++i) {
+ QString s = cw->sectionFormattedText(i);
+ QRect bb = p.boundingRect(x, y, w, h, Qt::AlignVCenter|Qt::AlignLeft, s);
+ int nx = bb.x() + bb.width();
+ if (pt.x() >= x && pt.x() < nx)
+ return i;
+ x = nx;
+ if (i < sections.count()-1) {
+ QString s = sep;
+ p.drawText(x, y, w, h, Qt::AlignVCenter|Qt::AlignLeft, s, -1, &bb);
+ x = bb.x() + bb.width();
+ }
+ }
+ return -1;
+ }
+
+//---------------------------------------------------------
+// PosEditor
+//---------------------------------------------------------
+
+PosEditor::PosEditor(PosEdit* parent, const char* name)
+ : QWidget(parent, name), sep(".")
+ {
+ cw = parent;
+ frm = true;
+ focusSec = 0;
+ pm = new QPixmap;
+ offset = 0;
+ init();
+ }
+
+//---------------------------------------------------------
+// ~PosEditor
+//---------------------------------------------------------
+
+PosEditor::~PosEditor()
+ {
+ delete pm;
+ }
+
+//---------------------------------------------------------
+// init
+//---------------------------------------------------------
+
+void PosEditor::init()
+ {
+ setBackgroundMode(Qt::PaletteBase);
+ setFocusSection(-1);
+ setKeyCompression(true);
+ installEventFilter(this);
+ setFocusPolicy(Qt::WheelFocus);
+ }
+
+//---------------------------------------------------------
+// event
+//---------------------------------------------------------
+
+bool PosEditor::event(QEvent *e)
+ {
+ if (e->type() == QEvent::FocusIn || e->type() == QEvent::FocusOut) {
+ repaint( rect(), false);
+ }
+ else if (e->type() == QEvent::ShortcutOverride) {
+ QKeyEvent* ke = (QKeyEvent*) e;
+ switch (ke->key()) {
+ case Qt::Key_Delete:
+ case Qt::Key_Backspace:
+ case Qt::Key_Up:
+ case Qt::Key_Down:
+ case Qt::Key_Left:
+ case Qt::Key_Right:
+ ke->accept();
+ default:
+ break;
+ }
+ }
+ return QWidget::event(e);
+ }
+
+void PosEditor::resizeEvent(QResizeEvent *e)
+ {
+ pm->resize(e->size());
+ QWidget::resizeEvent(e);
+ }
+
+//---------------------------------------------------------
+// paintEvent
+//---------------------------------------------------------
+
+void PosEditor::paintEvent(QPaintEvent *)
+ {
+ if (pm->isNull())
+ return;
+
+ const QColorGroup & cg = colorGroup();
+ QPainter p(pm);
+ p.setPen(colorGroup().text());
+ QBrush bg = cg.brush(QColorGroup::Base);
+
+ int fw = frm ? style()->pixelMetric(QStyle::PM_DefaultFrameWidth) : 0;
+ int x = 2 + fw;
+ int y = 0;
+ int w = width();
+ int h = height();
+ p.fillRect(0, 0, w, h, bg);
+
+ for (unsigned int i = 0; i < sections.count(); ++i) {
+ QRect bb;
+ QString s = cw->sectionFormattedText(i);
+
+ if (hasFocus() && (int(i) == focusSec)) {
+ QBrush bg = cg.brush(QColorGroup::Highlight);
+ QRect r = p.boundingRect(x, y, w, h, Qt::AlignVCenter|Qt::AlignLeft, s, -1);
+ p.setPen(colorGroup().highlightedText());
+ p.fillRect(r, bg);
+ }
+ else
+ p.setPen(colorGroup().text());
+ p.drawText(x, y, w, h, Qt::AlignVCenter|Qt::AlignLeft, s, -1, &bb);
+ x = bb.x() + bb.width();
+ if (i < sections.count()-1) {
+ QString s = sep;
+ p.drawText(x, y, w, h, Qt::AlignVCenter|Qt::AlignLeft, s, -1, &bb);
+ x = bb.x() + bb.width();
+ }
+ }
+ p.end();
+ bitBlt(this, 0, 0, pm);
+ }
+
+//---------------------------------------------------------
+// mousePressEvent
+//---------------------------------------------------------
+
+void PosEditor::mousePressEvent(QMouseEvent *e)
+ {
+ QPoint p(e->pos().x(), 0);
+ int sec = section(p);
+ if (sec != -1) {
+ cw->setFocusSection(sec);
+ repaint(rect(), false);
+ }
+ }
+
+//---------------------------------------------------------
+// eventFilter
+//---------------------------------------------------------
+
+bool PosEditor::eventFilter(QObject *o, QEvent *e)
+ {
+ if (o != this)
+ return false;
+ if (e->type() != QEvent::KeyPress )
+ return false;
+
+ QKeyEvent *ke = (QKeyEvent*)e;
+ switch (ke->key()) {
+ case Qt::Key_Right:
+ if (unsigned(focusSec) <= sections.count()) {
+ if (cw->setFocusSection(focusSec+1))
+ repaint(rect(), false);
+ }
+ return true;
+ case Qt::Key_Left:
+ if (focusSec > 0 ) {
+ if (cw->setFocusSection(focusSec-1))
+ repaint(rect(), false);
+ }
+ return true;
+ case Qt::Key_Up:
+ cw->stepUp();
+ return true;
+ case Qt::Key_Down:
+ cw->stepDown();
+ return true;
+ case Qt::Key_Backspace:
+ case Qt::Key_Delete:
+ cw->removeLastNumber(focusSec);
+ return true;
+ case Qt::Key_Return:
+ cw->enterPressed();
+ return true;
+ default:
+ QString txt = ke->text();
+ if (!txt.isEmpty() && !sep.isEmpty() && txt[0] == sep[0]) {
+ // do the same thing as KEY_RIGHT when the user presses the separator key
+ if (unsigned(focusSec) < sections.count()) {
+ if (cw->setFocusSection(focusSec+1))
+ repaint(rect(), false);
+ }
+ return true;
+ }
+ int num = txt[0].digitValue();
+ if (num != -1) {
+ cw->addNumber(focusSec, num);
+ return true;
+ }
+ }
+ return false;
+ }
+
+void PosEditor::appendSection(const QNumberSection& sec)
+ {
+ sections.append(sec);
+ }
+void PosEditor::clearSections()
+ {
+ sections.clear();
+ }
+
+//---------------------------------------------------------
+// setSectionSelection
+//---------------------------------------------------------
+
+void PosEditor::setSectionSelection(int secNo, int selstart, int selend)
+ {
+ if (secNo < 0 || secNo > (int)sections.count())
+ return;
+ sections[secNo].setSelectionStart(selstart);
+ sections[secNo].setSelectionEnd(selend);
+ }
+
+//---------------------------------------------------------
+// setFocusSection
+//---------------------------------------------------------
+
+bool PosEditor::setFocusSection(int idx)
+ {
+ if (idx > (int)sections.count()-1 || idx < 0)
+ return false;
+ if (idx != focusSec) {
+ focusSec = idx;
+ applyFocusSelection();
+ return true;
+ }
+ return false;
+ }
+
+//---------------------------------------------------------
+// PosEdit
+//---------------------------------------------------------
+
+PosEdit::PosEdit(QWidget* parent, const char* name)
+ : QWidget(parent, name)
+ {
+ init();
+ updateButtons();
+ }
+
+PosEdit::PosEdit(const Pos& time, QWidget* parent, const char* name)
+ : QWidget(parent, name)
+ {
+ init();
+ setValue(time);
+ updateButtons();
+ }
+
+PosEdit::~PosEdit()
+ {
+ }
+
+//---------------------------------------------------------
+// init
+//---------------------------------------------------------
+
+void PosEdit::init()
+ {
+ ed = new PosEditor(this, "pos editor");
+ controls = new Q3SpinWidget(this, "pos edit controls");
+ controls->setEditWidget(ed);
+ setFocusProxy(ed);
+ connect(controls, SIGNAL(stepUpPressed()), SLOT(stepUp()));
+ connect(controls, SIGNAL(stepDownPressed()), SLOT(stepDown()));
+ connect(this, SIGNAL(valueChanged(const Pos&)),SLOT(updateButtons()));
+
+ overwrite = false;
+ timerId = 0;
+ typing = false;
+ min = Pos(0);
+ max = Pos(MAX_TICK);
+ changed = false;
+ adv = false;
+
+
+ static Section s_midiSections[3] = { // measure, beat, tick
+ { 0, 4, 1, 0 },
+ { 5, 2, 1, 0 },
+ { 8, 3, 0, 0 }
+ };
+ static Section s_smpteSections[4] = { // minute second frame subframe
+ { 0, 3, 0, 0 },
+ { 4, 2, 0, 0 },
+ { 7, 2, 0, 0 },
+ { 10, 2, 0, 0 }
+ };
+ memcpy(midiSections, s_midiSections, sizeof(s_midiSections));
+ memcpy(smpteSections, s_smpteSections, sizeof(s_smpteSections));
+
+ _smpte = false; // show position in smpte format
+ sec = midiSections;
+ setSections();
+ setSizePolicy(QSizePolicy(QSizePolicy::Minimum, QSizePolicy::Fixed));
+ }
+
+//---------------------------------------------------------
+// setSetions
+//---------------------------------------------------------
+
+void PosEdit::setSections()
+ {
+ ed->clearSections();
+ ed->appendSection(QNumberSection(0,0));
+ ed->appendSection(QNumberSection(0,0));
+ ed->appendSection(QNumberSection(0,0));
+ if (_smpte) {
+ ed->appendSection(QNumberSection(0,0));
+ ed->setSeparator(QString(":"));
+ }
+ else {
+ ed->setSeparator(QString("."));
+ }
+ }
+
+//---------------------------------------------------------
+// smpte
+//---------------------------------------------------------
+
+bool PosEdit::smpte() const
+ {
+ return _smpte;
+ }
+
+//---------------------------------------------------------
+// setSmpte
+//---------------------------------------------------------
+
+void PosEdit::setSmpte(bool f)
+ {
+ _smpte = f;
+ sec = f ? smpteSections : midiSections;
+ setSections();
+ ed->repaint(ed->rect(), false);
+ }
+
+//---------------------------------------------------------
+// minValue
+//---------------------------------------------------------
+
+Pos PosEdit::minValue() const
+ {
+ return min;
+ }
+
+//---------------------------------------------------------
+// maxValue
+//---------------------------------------------------------
+
+Pos PosEdit::maxValue() const
+ {
+ return max;
+ }
+
+//---------------------------------------------------------
+// setRange
+//---------------------------------------------------------
+
+void PosEdit::setRange(const Pos& _min, const Pos& _max)
+ {
+ if (min.isValid())
+ min = _min;
+ if (max.isValid())
+ max = _max;
+ }
+
+//---------------------------------------------------------
+// setValue
+//---------------------------------------------------------
+
+void PosEdit::setValue(const Pos& time)
+ {
+ if (time > maxValue() || time < minValue())
+ return;
+ if (_smpte)
+ time.msf(&(sec[0].val), &(sec[1].val), &(sec[2].val),
+ &(sec[3].val));
+ else
+ time.mbt(&(sec[0].val), &(sec[1].val), &(sec[2].val));
+ changed = false;
+
+ updateButtons();
+ ed->repaint(ed->rect(), false);
+ }
+
+void PosEdit::setValue(const QString& s)
+ {
+ Pos time(s);
+ setValue(time);
+ }
+
+void PosEdit::setValue(int t)
+ {
+ Pos time(t);
+ setValue(time);
+ }
+
+Pos PosEdit::pos() const
+ {
+ if (_smpte) {
+ if (Pos::isValid(sec[0].val, sec[1].val, sec[2].val, sec[3].val))
+ return Pos(sec[0].val, sec[1].val, sec[2].val, sec[3].val);
+ }
+ else {
+ if (Pos::isValid(sec[0].val, sec[1].val, sec[2].val))
+ return Pos(sec[0].val, sec[1].val, sec[2].val);
+ }
+ return Pos();
+ }
+
+void PosEdit::setSeparator(const QString& s)
+ {
+ ed->setSeparator(s);
+ }
+
+QString PosEdit::separator() const
+ {
+ return ed->separator();
+ }
+
+bool PosEdit::event(QEvent *e)
+ {
+ if (e->type() == QEvent::FocusOut) {
+ typing = false;
+ if (changed) {
+ emit valueChanged(pos() );
+ changed = false;
+ }
+ }
+ return QWidget::event(e);
+ }
+
+void PosEdit::timerEvent(QTimerEvent *)
+ {
+ overwrite = true;
+ }
+
+//---------------------------------------------------------
+// stepUp
+//---------------------------------------------------------
+
+void PosEdit::stepUp()
+ {
+ int secNo = ed->focusSection();
+ bool accepted = false;
+
+ if (!outOfRange(secNo, sec[secNo].val+1)) {
+ accepted = true;
+ setSec(secNo, sec[secNo].val+1);
+ }
+ if (accepted) {
+ changed = true;
+ Pos p = pos();
+ emit valueChanged(p);
+ }
+ ed->repaint(ed->rect(), false);
+ }
+
+//---------------------------------------------------------
+// stepDown
+//---------------------------------------------------------
+
+void PosEdit::stepDown()
+ {
+ int secNo = ed->focusSection();
+ bool accepted = false;
+ if (!outOfRange(secNo, sec[secNo].val-1)) {
+ accepted = true;
+ setSec(secNo, sec[secNo].val-1);
+ }
+ if (accepted) {
+ changed = true;
+ emit valueChanged(pos());
+ }
+ ed->repaint(ed->rect(), false);
+ }
+
+//---------------------------------------------------------
+// sectionFormattedText
+// Returns the formatted number for section sec.
+//---------------------------------------------------------
+
+QString PosEdit::sectionFormattedText(int secNo)
+ {
+ QString txt = sectionText(secNo);
+ int so = sec[secNo].offset;
+ int len = sec[secNo].len;
+ int eo = so + len;
+
+ if (typing && secNo == ed->focusSection())
+ ed->setSectionSelection(secNo, eo - txt.length(), eo);
+ else
+ ed->setSectionSelection(secNo, so, eo);
+ txt = txt.rightJustify(len, '0');
+ return txt;
+ }
+
+//---------------------------------------------------------
+// setFocusSection
+//---------------------------------------------------------
+
+bool PosEdit::setFocusSection(int s)
+ {
+ if (s != ed->focusSection()) {
+ killTimer(timerId);
+ overwrite = true;
+ typing = false;
+ int so = sec[s].offset;
+ int eo = so + sec[s].len;
+ ed->setSectionSelection(s, so, eo);
+ if (changed) {
+ emit valueChanged(pos());
+ changed = false;
+ }
+ }
+ return ed->setFocusSection(s);
+ }
+
+//---------------------------------------------------------
+// setSec
+//---------------------------------------------------------
+
+void PosEdit::setSec(int secNo, int val)
+ {
+ if (val < 0)
+ val = 0;
+ if (_smpte) {
+ switch(secNo) {
+ case 0:
+ break;
+ case 1:
+ if (val > 59)
+ val = 59;
+ break;
+ case 2:
+ switch(mtcType) {
+ case 0: // 24 frames sec
+ if (val > 23)
+ val = 23;
+ break;
+ case 1:
+ if (val > 24)
+ val = 24;
+ break;
+ case 2: // 30 drop frame
+ case 3: // 30 non drop frame
+ if (val > 29)
+ val = 29;
+ break;
+ }
+ break;
+ case 3:
+ if (val > 99)
+ val = 99;
+ }
+ }
+ else {
+ switch(secNo) {
+ case 0:
+ break;
+ case 1:
+ {
+ int z, n;
+ int tick = sigmap.bar2tick(sec[0].val, val, sec[2].val);
+ sigmap.timesig(tick, z, n);
+ if (val >= n)
+ val = n-1;
+ }
+ break;
+ case 2:
+ {
+ int tick = sigmap.bar2tick(sec[0].val, sec[1].val, val);
+ int tb = sigmap.ticksBeat(tick);
+ if (val >= tb)
+ val = tb-1;
+ }
+ break;
+ }
+ }
+ sec[secNo].val = val;
+ }
+
+//---------------------------------------------------------
+// sectionText
+// Returns the text of section \a sec.
+//---------------------------------------------------------
+
+QString PosEdit::sectionText(int secNo)
+ {
+ return QString::number(sec[secNo].val + sec[secNo].voff);
+ }
+
+//---------------------------------------------------------
+// outOfRange
+// return true if out of range
+//---------------------------------------------------------
+
+bool PosEdit::outOfRange(int secNo, int val) const
+ {
+ if (val < 0)
+ return true;
+ int limit = MAXINT;
+ if (_smpte) {
+ switch(secNo) {
+ case 0:
+ break;
+ case 1:
+ limit = 59;
+ break;
+ case 2:
+ switch(mtcType) {
+ case 0: // 24 frames sec
+ limit = 23;
+ break;
+ case 1:
+ limit = 24;
+ break;
+ case 2: // 30 drop frame
+ case 3: // 30 non drop frame
+ limit = 29;
+ break;
+ }
+ break;
+ case 3:
+ limit = 99;
+ break;
+ }
+ }
+ else {
+ switch(secNo) {
+ case 0:
+ break;
+ case 1:
+ {
+ int z;
+ int tick = sigmap.bar2tick(sec[0].val, val, sec[2].val);
+ sigmap.timesig(tick, z, limit);
+ limit -= 1;
+ }
+ break;
+ case 2:
+ int tick = sigmap.bar2tick(sec[0].val, sec[1].val, val);
+ limit = sigmap.ticksBeat(tick) - 1;
+ break;
+ }
+ }
+ return val > limit;
+ }
+
+//---------------------------------------------------------
+// addNumber
+//---------------------------------------------------------
+
+void PosEdit::addNumber(int secNo, int num)
+ {
+ if (secNo == -1)
+ return;
+ killTimer(timerId);
+ bool accepted = false;
+ typing = true;
+ int voff = sec[secNo].voff;
+
+ QString txt = sectionText(secNo);
+
+ if (txt.length() == sec[secNo].len) {
+ if (!outOfRange(secNo, num - voff)) {
+ accepted = true;
+ sec[secNo].val = num - voff;
+ }
+ }
+ else {
+ txt += QString::number(num);
+ int temp = txt.toInt() - voff;
+ if (outOfRange(secNo, temp))
+ txt = sectionText(secNo);
+ else {
+ accepted = true;
+ sec[secNo].val = temp;
+ }
+ if (adv && (txt.length() == sec[secNo].len)) {
+ setFocusSection(ed->focusSection() + 1);
+ }
+ }
+ changed = accepted;
+ if (accepted)
+ emit valueChanged(pos());
+ timerId = startTimer(qApp->doubleClickInterval()*4);
+ ed->repaint(ed->rect(), false);
+ }
+
+//---------------------------------------------------------
+// removeLastNumber
+//---------------------------------------------------------
+
+void PosEdit::removeLastNumber(int secNo)
+ {
+ if (secNo == -1)
+ return;
+ QString txt = QString::number(sec[secNo].val);
+ txt = txt.mid(0, txt.length() - 1);
+ sec[secNo].val = txt.toInt() - sec[secNo].voff;
+ ed->repaint(ed->rect(), false);
+ }
+
+//---------------------------------------------------------
+// resizeEvent
+//---------------------------------------------------------
+
+void PosEdit::resizeEvent(QResizeEvent *)
+ {
+ controls->resize(width(), height());
+ }
+
+//---------------------------------------------------------
+// sizeHint
+//---------------------------------------------------------
+
+QSize PosEdit::sizeHint() const
+ {
+ QFontMetrics fm(font());
+ int fw = style()->pixelMetric(QStyle::PM_DefaultFrameWidth,0, this); // ddskrjo 0
+ int h = fm.height() + fw * 2;
+ int w = 4 + controls->upRect().width() + fw * 4;
+ if (_smpte)
+ w += fm.width('9') * 10 + fm.width(ed->separator()) * 3;
+ else
+ w += fm.width('9') * 10 + fm.width(ed->separator()) * 2;
+ return QSize(w, h).expandedTo(QApplication::globalStrut());
+ }
+
+//---------------------------------------------------------
+// updateButtons
+//---------------------------------------------------------
+
+void PosEdit::updateButtons()
+ {
+ bool upEnabled = isEnabled() && (pos() < maxValue());
+ bool downEnabled = isEnabled() && (pos() > minValue());
+
+ //printf("PosEdit::updateButtons smpte:%d upEnabled:%d downEnabled:%d\n", smpte(), upEnabled, downEnabled);
+
+ controls->setUpEnabled(upEnabled);
+ controls->setDownEnabled(downEnabled);
+ }
+
+//---------------------------------------------------------
+// enterPressed
+//---------------------------------------------------------
+void PosEdit::enterPressed()
+ {
+ emit returnPressed();
+ }
+
+//---------------------------------------------------------
+// setEnabled
+//---------------------------------------------------------
+void PosEdit::setEnabled(bool v)
+{
+ QWidget::setEnabled(v);
+ updateButtons();
+}
diff --git a/muse2/muse/widgets/posedit.h b/muse2/muse/widgets/posedit.h
new file mode 100644
index 00000000..163746ad
--- /dev/null
+++ b/muse2/muse/widgets/posedit.h
@@ -0,0 +1,106 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: posedit.h,v 1.1.1.1.2.1 2004/12/27 19:47:25 lunar_shuttle Exp $
+// (C) Copyright 2001 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __POSEDIT_H__
+#define __POSEDIT_H__
+
+#include <qwidget.h>
+#include <qstring.h>
+//Added by qt3to4:
+#include <QResizeEvent>
+#include <QEvent>
+#include <QTimerEvent>
+#include "pos.h"
+
+class PosEditor;
+class Q3SpinWidget;
+
+#include "section.h"
+
+//---------------------------------------------------------
+// PosEdit
+//---------------------------------------------------------
+
+class PosEdit : public QWidget
+ {
+ Q_OBJECT
+ Q_PROPERTY(QString separator READ separator WRITE setSeparator)
+ Q_PROPERTY(bool smpte READ smpte WRITE setSmpte)
+
+ void init();
+ void setSections();
+ QString sectionText(int sec);
+ Section midiSections[3];
+ Section smpteSections[4];
+ Section* sec;
+
+ bool _smpte;
+
+ bool adv;
+ bool overwrite;
+ int timerId;
+ bool typing;
+ Pos min;
+ Pos max;
+ bool changed;
+ PosEditor *ed;
+ Q3SpinWidget* controls;
+
+ private slots:
+ void stepUp();
+ void stepDown();
+
+ signals:
+ void valueChanged(const Pos&);
+ void returnPressed();
+
+ protected:
+ bool event(QEvent *e );
+ void timerEvent(QTimerEvent* e);
+ void resizeEvent(QResizeEvent*);
+ QString sectionFormattedText(int sec);
+ void addNumber(int sec, int num);
+ void removeLastNumber(int sec);
+ bool setFocusSection(int s);
+
+ virtual bool outOfRange(int, int) const;
+ virtual void setSec(int, int);
+ friend class PosEditor;
+
+ protected slots:
+ void updateButtons();
+
+ public slots:
+ virtual void setValue(const Pos& time);
+ void setValue(int t);
+ void setValue(const QString& s);
+ // Added p3.3.43
+ virtual void setEnabled(bool);
+
+ public:
+ PosEdit(QWidget*, const char* = 0);
+ PosEdit(const Pos& time, QWidget*, const char* = 0);
+ ~PosEdit();
+
+ QSize sizeHint() const;
+ Pos pos() const;
+ virtual void setAutoAdvance(bool advance) { adv = advance; }
+ bool autoAdvance() const { return adv; }
+
+ virtual void setMinValue(const Pos& d) { setRange(d, maxValue()); }
+ Pos minValue() const;
+ virtual void setMaxValue( const Pos& d ) { setRange(minValue(), d ); }
+ Pos maxValue() const;
+ virtual void setRange(const Pos& min, const Pos& max);
+ QString separator() const;
+ virtual void setSeparator(const QString& s);
+ void setSmpte(bool);
+ bool smpte() const;
+ void enterPressed();
+ };
+
+#endif
diff --git a/muse2/muse/widgets/poslabel.cpp b/muse2/muse/widgets/poslabel.cpp
new file mode 100644
index 00000000..3066b640
--- /dev/null
+++ b/muse2/muse/widgets/poslabel.cpp
@@ -0,0 +1,152 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: poslabel.cpp,v 1.2.2.2 2009/04/06 01:24:55 terminator356 Exp $
+// (C) Copyright 2001 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include <stdlib.h>
+#include <cmath>
+#include <qapplication.h>
+#include <qstyle.h>
+//Added by qt3to4:
+#include <QLabel>
+
+#include "poslabel.h"
+#include "sig.h"
+#include "tempo.h"
+#include "globals.h"
+
+extern int mtcType;
+
+//---------------------------------------------------------
+// PosLabel
+//---------------------------------------------------------
+
+PosLabel::PosLabel(QWidget* parent, const char* name)
+ : QLabel(parent, name)
+ {
+ _tickValue = 0;
+ _sampleValue = 0;
+ _smpte = false;
+ setFrameStyle(WinPanel | Sunken);
+ setLineWidth(2);
+ setMidLineWidth(3);
+ int fw = style()->pixelMetric(QStyle::PM_DefaultFrameWidth, 0, this); // ddskrjo 0
+ setIndent(fw);
+ updateValue();
+ }
+
+//---------------------------------------------------------
+// sizeHint
+//---------------------------------------------------------
+
+QSize PosLabel::sizeHint() const
+ {
+ QFontMetrics fm(font());
+ int fw = style()->pixelMetric(QStyle::PM_DefaultFrameWidth, 0, this); // ddskrjo 0
+ 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) {
+ double time = double(_sampleValue) / 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);
+ s.sprintf("%03d:%02d:%02d:%02d", min, sec, frame, subframe);
+ }
+ else {
+ int bar, beat;
+ unsigned tick;
+ sigmap.tickValues(_tickValue, &bar, &beat, &tick);
+ //s.sprintf("%04d.%02d.%03ud", bar+1, beat+1, tick);
+ s.sprintf("%04d.%02d.%03u", bar+1, beat+1, tick);
+ }
+ setText(s);
+ }
+
+//---------------------------------------------------------
+// setSampleValue
+//---------------------------------------------------------
+
+void PosLabel::setSampleValue(unsigned val)
+ {
+ if (val == _sampleValue)
+ return;
+ _sampleValue = val;
+ updateValue();
+ }
+
+//---------------------------------------------------------
+// setTickValue
+//---------------------------------------------------------
+
+void PosLabel::setTickValue(unsigned val)
+ {
+ if (val == _tickValue)
+ return;
+ if (val >= MAX_TICK)
+ abort();
+ _tickValue = val;
+ updateValue();
+ }
+
+//---------------------------------------------------------
+// setValue
+//---------------------------------------------------------
+
+void PosLabel::setValue(unsigned val)
+ {
+ unsigned oval = _smpte ? _sampleValue : _tickValue;
+ if (val == oval)
+ return;
+ if (_smpte)
+ _sampleValue = val;
+ else
+ _tickValue = val;
+ updateValue();
+ }
+
+//---------------------------------------------------------
+// setSmpte
+//---------------------------------------------------------
+
+void PosLabel::setSmpte(bool val)
+ {
+ _smpte = val;
+ if (val)
+ _sampleValue = tempomap.tick2frame(_tickValue);
+ else
+ _tickValue = tempomap.frame2tick(_sampleValue);
+ updateValue();
+ }
+
diff --git a/muse2/muse/widgets/poslabel.h b/muse2/muse/widgets/poslabel.h
new file mode 100644
index 00000000..06cd0b09
--- /dev/null
+++ b/muse2/muse/widgets/poslabel.h
@@ -0,0 +1,45 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: poslabel.h,v 1.2 2004/01/11 18:55:37 wschweer Exp $
+// (C) Copyright 2001 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __POSLABEL_H__
+#define __POSLABEL_H__
+
+#include <qlabel.h>
+
+//---------------------------------------------------------
+// PosLabel
+//---------------------------------------------------------
+
+class PosLabel : public QLabel {
+ bool _smpte;
+ unsigned _tickValue;
+ unsigned _sampleValue;
+ Q_OBJECT
+
+ void updateValue();
+
+ protected:
+ QSize sizeHint() const;
+
+ public slots:
+ void setTickValue(unsigned);
+ void setSampleValue(unsigned);
+ void setValue(unsigned);
+
+ public:
+ PosLabel(QWidget* parent, const char* name = 0);
+ unsigned value() const { return _smpte ? _sampleValue : _tickValue; }
+ unsigned tickValue() const { return _tickValue; }
+ unsigned sampleValue() const { return _sampleValue; }
+ void setSmpte(bool);
+ bool smpte() const { return _smpte; }
+ };
+
+
+#endif
+
+
diff --git a/muse2/muse/widgets/scldiv.cpp b/muse2/muse/widgets/scldiv.cpp
new file mode 100644
index 00000000..a0b0e628
--- /dev/null
+++ b/muse2/muse/widgets/scldiv.cpp
@@ -0,0 +1,652 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: scldiv.cpp,v 1.1.1.1 2003/10/27 18:54:32 wschweer Exp $
+//
+// Copyright (C) 1997 Josef Wilgen
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License, version 2,
+// as published by the Free Software Foundation.
+//
+// (C) Copyright 2000 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include <cmath>
+#include "scldiv.h"
+#include "mmath.h"
+//Added by qt3to4:
+#include <Q3MemArray>
+
+// ScaleDiv - A class for building scale divisions
+//
+// The ScaleDiv class can build
+// linear and logarithmic scale divisions for specified
+// intervals. It uses an adjustable algorithm to
+// generate the major and minor step widths automatically.
+// A scale division has a minimum value, a maximum value,
+// a vector of major marks, and a vector of minor marks.
+//
+// ScaleDiv uses implicit sharing for the mark vectors.
+//
+// Build a logarithmic scale division from 0.01 to 1000
+// and print out the major and minor marks.
+//.c
+// #include <scldiv.h>
+// #include <iostream.h>
+//
+// main()
+// {
+// int i,k;
+// ScaleDiv sd;
+//
+// sd.rebuild(0.01, 100, 10, 10, TRUE, 0.0);
+//
+// k=0;
+// for (i=0;i<sd.majCnt();i++)
+// {
+// while(k < sd.minCnt())
+// {
+// if(sd.minMark(k) < sd.majMark(i))
+// {
+// cout << " - " << sd.minMark(i) << "\n";
+// k++;
+// }
+// else
+// break;
+// }
+// cout << "-- " << sd.majMark(i) << "\n";
+// }
+// while(k < sd.minCnt())
+// {
+// cout << " - " << sd.minMark(i) << "\n";
+// k++;
+// }
+// }
+//
+//------------------------------------------------------------
+
+static const double step_eps = 1.0e-3;
+static const double border_eps = 1.0e-10;
+
+static bool limRange(double &val, double v1, double v2, double eps_rel = 0.0,
+ double eps_abs = 0.0)
+ {
+
+ bool rv = TRUE;
+ double vmin = qwtMin(v1, v2);
+ double vmax = qwtMax(v1, v2);
+ double delta_min = qwtMax(qwtAbs(eps_rel * vmin), qwtAbs(eps_abs));
+ double delta_max = qwtMax(qwtAbs(eps_rel * vmax), qwtAbs(eps_abs));
+
+ if (val < vmin)
+ {
+ if (val < vmin - delta_min) rv = FALSE;
+ val = vmin;
+ }
+ else if (val > vmax)
+ {
+ if (val > vmax + delta_max) rv = FALSE;
+ val = vmax;
+ }
+ return rv;
+
+}
+
+//------------------------------------------------------------
+//.F ScaleDiv::ScaleDiv
+// Construct a ScaleDiv instance.
+//
+//.u Syntax
+//.f ScaleDiv::ScaleDiv()
+//------------------------------------------------------------
+
+ScaleDiv::ScaleDiv()
+ {
+ d_lBound = 0.0;
+ d_hBound = 0.0;
+ d_majStep = 0.0;
+ d_log = FALSE;
+ }
+
+//------------------------------------------------------------
+//.F ScaleDiv::~ScaleDiv
+// Destroy a ScaleDiv instance.
+//
+//.u Syntax
+//.f ScaleDiv::~ScaleDiv()
+//------------------------------------------------------------
+
+ScaleDiv::~ScaleDiv()
+ {
+ }
+
+//------------------------------------------------------------
+//.F ScaleDiv::ScaleDiv
+// Copy Constructor
+//
+//.u Syntax
+//.f ScaleDiv::ScaleDiv(const ScaleDiv &s)
+//
+//.u Parameters
+//.p const ScaleDiv &s -- scale division to be copied
+//------------------------------------------------------------
+
+ScaleDiv::ScaleDiv(const ScaleDiv &s)
+ {
+ copy(s);
+ }
+
+//------------------------------------------------------------
+//.F ScaleDiv::operator=
+// Assignment operator
+//
+//.u Syntax
+//.f ScaleDiv & ScaleDiv::operator=(const ScaleDiv &s)
+//
+//.u Parameters
+//.p const ScaleDiv &s -- scale divison to be assigned
+//------------------------------------------------------------
+
+ScaleDiv& ScaleDiv::operator=(const ScaleDiv &s)
+ {
+ copy(s);
+ return *this;
+ }
+
+//------------------------------------------------------------
+//.F ScaleDiv::copy
+// Copy member data from another ScaleDiv instance.
+//
+//.u Syntax
+//.f void ScaleDiv::copy(const ScaleDiv &s)
+//
+//.u Parameters
+//.p const ScaleDiv &s
+//------------------------------------------------------------
+
+void ScaleDiv::copy(const ScaleDiv &s)
+ {
+ d_lBound = s.d_lBound;
+ d_hBound = s.d_hBound;
+ d_log = s.d_log;
+ d_majStep = s.d_majStep;
+ d_minMarks = s.d_minMarks;
+ d_majMarks = s.d_majMarks;
+ }
+
+//------------------------------------------------------------
+//.F ScaleDiv::rebuild
+// Build a scale width major and minor divisions
+//
+//.p
+// double x1 -- first boundary value
+// double x2 -- second boundary value
+// int maxMajSteps -- max. number of major step intervals
+// int maxMinSteps -- max. number of minor step intervals
+// bool log -- logarithmic division (TRUE/FALSE)
+// double step -- fixed major step width. Defaults to 0.0.
+// bool ascend -- if TRUE, sort in ascending order from min(x1, x2)
+// to max(x1, x2). If FALSE, sort in the direction
+// from x1 to x2. Defaults to TRUE.
+//
+//.u Return Value
+// True if the arrays have been allocated successfully.
+//
+//.u Description
+// If no fixed step width is specified or if it is set to 0, the
+// major step width will be calculated automatically according to the
+// the value of maxMajSteps. The maxMajSteps parameter has no effect
+// if a fixed step size is specified. The minor step width is always
+// calculated automatically.
+// If the step width is to be calculated automatically, the algorithm
+// tries to find reasonable values fitting into the scheme {1,2,5}*10^n
+// with an integer number n for linear scales.
+// For logarithmic scales, there are three different cases:
+//.i
+// -- If the major step width is one decade, the minor marks
+// will fit into one of the schemes {1,2,...9}, {2,4,6,8}, {2,5} or {5},
+// depending on the maxMinSteps parameter.
+// -- If the major step size spans
+// more than one decade, the minor step size will be {1,2,5}*10^n decades
+// with a natural number n.
+// -- If the whole range is less than one decade, a linear scale
+// division will be built
+//
+//.u Note
+// For logarithmic scales, the step width is measured in decades.
+//------------------------------------------------------------
+
+bool ScaleDiv::rebuild(double x1, double x2, int maxMajSteps, int maxMinSteps,
+ bool log, double step, bool ascend)
+{
+
+ int rv;
+
+ d_lBound = qwtMin(x1, x2);
+ d_hBound = qwtMax(x1, x2);
+ d_log = log;
+
+ if (d_log)
+ rv = buildLogDiv(maxMajSteps,maxMinSteps,step);
+ else
+ rv = buildLinDiv(maxMajSteps, maxMinSteps, step);
+
+ if ((!ascend) && (x2 < x1))
+ {
+ d_lBound = x1;
+ d_hBound = x2;
+ qwtTwistArray(d_majMarks.data(), d_majMarks.size());
+ qwtTwistArray(d_minMarks.data(), d_minMarks.size());
+ }
+
+ return rv;
+
+}
+
+//------------------------------------------------------------
+//.F ScaleDiv::buildLinDiv
+// Build a linear scale division in ascending order
+//
+//.u Syntax
+//.f bool ScaleDiv::buildLinDiv(int majSteps, int minSteps, double step)
+//
+//.u Parameters
+//.p int maxSteps -- max. number of step intervals
+// double step -- fixed step width
+//
+//.u Return Value
+// TRUE if array has been successfully resized
+//
+//.u Description
+// If the 'step' parameter is set to 0.0, this function
+// cal[culates the step width automatically according to
+// the value of 'maxSteps'. MaxSteps must be greater than or
+// equal to 2. It will be guessed if an invalid value is specified.
+// The maximum possible number of steps is limited to 10000.
+// The maxSteps parameter has no effect if a fixed step width is
+// specified.
+//
+//.u Note
+// This function uses the data members d_lBound and d_hBound and assumes
+// that d_hBound > d_lBound.
+//------------------------------------------------------------
+
+bool ScaleDiv::buildLinDiv(int maxMajSteps, int maxMinSteps, double step)
+ {
+
+ int nMaj, nMin, minSize, i0,i,k;
+ double val, mval;
+ double firstTick, lastTick;
+ double minStep;
+ Q3MemArray<double> buffer;
+ bool rv = TRUE;
+
+ // parameter range check
+ maxMajSteps = qwtMax(1, maxMajSteps);
+ maxMinSteps = qwtMax(0, maxMinSteps);
+ step = qwtAbs(step);
+
+ // detach arrays
+ d_majMarks.duplicate(0,0);
+ d_minMarks.duplicate(0,0);
+
+ if (d_lBound == d_hBound) return TRUE;
+
+ //
+ // Set up major divisions
+ //
+ if (step == 0.0)
+ d_majStep = qwtCeil125(qwtAbs(d_hBound - d_lBound) * 0.999999
+ / double(maxMajSteps));
+ else
+ d_majStep = step;
+
+ if (d_majStep == 0.0) return TRUE;
+
+ firstTick = ceil( (d_lBound - step_eps * d_majStep) / d_majStep) * d_majStep;
+ lastTick = floor( (d_hBound + step_eps * d_majStep) / d_majStep) * d_majStep;
+
+ nMaj = qwtMin(10000, int(rint((lastTick - firstTick) / d_majStep)) + 1);
+
+ if ((rv = d_majMarks.resize(nMaj)))
+ qwtLinSpace(d_majMarks.data(), d_majMarks.size(), firstTick, lastTick);
+ else
+ return FALSE;
+
+ //
+ // Set up minor divisions
+ //
+ if (maxMinSteps < 1) // no minor divs
+ return TRUE;
+
+ minStep = qwtCeil125( d_majStep / double(maxMinSteps) );
+
+ if (minStep == 0.0) return TRUE;
+
+ nMin = qwtAbs(int(rint(d_majStep / minStep))) - 1; // # minor steps per interval
+
+ // Do the minor steps fit into the interval?
+ if ( qwtAbs(double(nMin + 1) * minStep - d_majStep) > step_eps * d_majStep)
+ {
+ nMin = 1;
+ minStep = d_majStep * 0.5;
+ }
+
+ // Are there minor ticks below the first major tick?
+ if (d_majMarks[0] > d_lBound )
+ i0 = -1;
+ else
+ i0 = 0;
+
+ // resize buffer to the maximum possible number of minor ticks
+ rv = buffer.resize(nMin * (nMaj + 1));
+
+ // calculate minor ticks
+ if (rv)
+ {
+ minSize = 0;
+ for (i = i0; i < (int)d_majMarks.size(); i++)
+ {
+ if (i >= 0)
+ val = d_majMarks[i];
+ else
+ val = d_majMarks[0] - d_majStep;
+
+ for (k=0; k< nMin; k++)
+ {
+ mval = (val += minStep);
+ if (limRange(mval, d_lBound, d_hBound, border_eps))
+ {
+ buffer[minSize] = mval;
+ minSize++;
+ }
+ }
+ }
+ d_minMarks.duplicate(buffer.data(), minSize);
+ }
+
+ return rv;
+ }
+
+//------------------------------------------------------------
+//.F ScaleDiv::buildLogDiv
+// Build a logarithmic scale division
+//
+//.u Syntax
+//.f bool ScaleDiv::buildLogDiv(int maxMajSteps, int maxMinSteps, int majStep)
+//
+//.u Parameters
+//.p int maxMajSteps, int maxMinSteps, int majStep
+//
+//.u Return Value
+// True if memory has been successfully allocated
+//
+//.u Note
+// This function uses the data members d_lBound and d_hBound and assumes
+// that d_hBound > d_lBound.
+//------------------------------------------------------------
+
+bool ScaleDiv::buildLogDiv(int maxMajSteps, int maxMinSteps, double majStep)
+ {
+ double firstTick, lastTick;
+ double lFirst, lLast;
+ double val, sval, minStep, minFactor;
+ int nMaj, nMin, minSize, i, k, k0, kstep, kmax, i0;
+ int rv = TRUE;
+ double width;
+
+ Q3MemArray<double> buffer;
+
+
+ // Parameter range check
+ maxMajSteps = qwtMax(1, qwtAbs(maxMajSteps));
+ maxMinSteps = qwtMax(0, qwtAbs(maxMinSteps));
+ majStep = qwtAbs(majStep);
+
+ // boundary check
+ limRange(d_hBound, LOG_MIN, LOG_MAX);
+ limRange(d_lBound, LOG_MIN, LOG_MAX);
+
+ // detach arrays
+ d_majMarks.duplicate(0,0);
+ d_minMarks.duplicate(0,0);
+
+ if (d_lBound == d_hBound) return TRUE;
+
+ // scale width in decades
+ width = log10(d_hBound) - log10(d_lBound);
+
+ // scale width is less than one decade -> build linear scale
+ if (width < 1.0)
+ {
+ rv = buildLinDiv(maxMajSteps, maxMinSteps, 0.0);
+ // convert step width to decades
+ if (d_majStep > 0)
+ d_majStep = log10(d_majStep);
+
+ return rv;
+ }
+
+ //
+ // Set up major scale divisions
+ //
+ if (majStep == 0.0)
+ d_majStep = qwtCeil125( width * 0.999999 / double(maxMajSteps));
+ else
+ d_majStep = majStep;
+
+ // major step must be >= 1 decade
+ d_majStep = qwtMax(d_majStep, 1.0);
+
+
+ lFirst = ceil((log10(d_lBound) - step_eps * d_majStep) / d_majStep) * d_majStep;
+ lLast = floor((log10(d_hBound) + step_eps * d_majStep) / d_majStep) * d_majStep;
+
+ firstTick = pow(10.0, lFirst);
+ lastTick = pow(10.0, lLast);
+
+ nMaj = qwtMin(10000, int(rint(qwtAbs(lLast - lFirst) / d_majStep)) + 1);
+
+ if (d_majMarks.resize(nMaj))
+ qwtLogSpace(d_majMarks.data(), d_majMarks.size(), firstTick, lastTick);
+ else
+ return FALSE;
+
+
+ //
+ // Set up minor scale divisions
+ //
+
+ if ((d_majMarks.size() < 1) || (maxMinSteps < 1)) return TRUE; // no minor marks
+
+ if (d_majStep < 1.1) // major step width is one decade
+ {
+ if (maxMinSteps >= 8)
+ {
+ k0 = 2;
+ kmax = 9;
+ kstep = 1;
+ minSize = (d_majMarks.size() + 1) * 8;
+ }
+ else if (maxMinSteps >= 4)
+ {
+ k0 = 2;
+ kmax = 8;
+ kstep = 2;
+ minSize = (d_majMarks.size() + 1) * 4;
+ }
+ else if (maxMinSteps >= 2)
+ {
+ k0 = 2;
+ kmax = 5;
+ kstep = 3;
+ minSize = (d_majMarks.size() + 1) * 2;
+ }
+ else
+ {
+ k0 = 5;
+ kmax = 5;
+ kstep = 1;
+ minSize = (d_majMarks.size() + 1);
+ }
+
+ // resize buffer to the max. possible number of minor marks
+ buffer.resize(minSize);
+
+ // Are there minor ticks below the first major tick?
+ if ( d_lBound < firstTick )
+ i0 = -1;
+ else
+ i0 = 0;
+
+ minSize = 0;
+ for (i = i0; i< (int)d_majMarks.size(); i++)
+ {
+ if (i >= 0)
+ val = d_majMarks[i];
+ else
+ val = d_majMarks[0] / pow(10.0, d_majStep);
+
+ for (k=k0; k<= kmax; k+=kstep)
+ {
+ sval = val * double(k);
+ if (limRange(sval, d_lBound, d_hBound, border_eps))
+ {
+ buffer[minSize] = sval;
+ minSize++;
+ }
+ }
+ }
+
+ // copy values into the minMarks array
+ d_minMarks.duplicate(buffer.data(), minSize);
+
+ }
+ else // major step > one decade
+ {
+
+ // substep width in decades, at least one decade
+ minStep = qwtCeil125( (d_majStep - step_eps * (d_majStep / double(maxMinSteps)))
+ / double(maxMinSteps) );
+ minStep = qwtMax(1.0, minStep);
+
+ // # subticks per interval
+ nMin = int(rint(d_majStep / minStep)) - 1;
+
+ // Do the minor steps fit into the interval?
+ if ( qwtAbs( double(nMin + 1) * minStep - d_majStep) > step_eps * d_majStep)
+ nMin = 0;
+
+ if (nMin < 1) return TRUE; // no subticks
+
+ // resize buffer to max. possible number of subticks
+ buffer.resize((d_majMarks.size() + 1) * nMin );
+
+ // substep factor = 10^substeps
+ minFactor = qwtMax(pow(10,minStep), 10.0);
+
+ // Are there minor ticks below the first major tick?
+ if ( d_lBound < firstTick )
+ i0 = -1;
+ else
+ i0 = 0;
+
+ minSize = 0;
+ for (i = i0; i< (int)d_majMarks.size(); i++)
+ {
+ if (i >= 0)
+ val = d_majMarks[i];
+ else
+ val = firstTick / pow(10.0, d_majStep);
+
+ for (k=0; k< nMin; k++)
+ {
+ sval = (val *= minFactor);
+ if (limRange(sval, d_lBound, d_hBound, border_eps))
+ {
+ buffer[minSize] = sval;
+ minSize++;
+ }
+ }
+ }
+ d_minMarks.duplicate(buffer.data(), minSize);
+ }
+
+ return rv;
+}
+
+//------------------------------------------------------------
+//.F ScaleDiv::operator==
+// Equality operator
+//
+//.u Syntax
+//.f int ScaleDiv::operator==(const ScaleDiv &s)
+//
+//.u Parameters
+//.p const ScaleDiv &s
+//
+//.u Return Value
+// TRUE if this instance is equal to s
+//------------------------------------------------------------
+
+int ScaleDiv::operator==(const ScaleDiv &s) const
+ {
+ if (d_lBound != s.d_lBound)
+ return 0;
+ if (d_hBound != s.d_hBound)
+ return 0;
+ if (d_log != s.d_log)
+ return 0;
+ if (d_majStep != s.d_majStep)
+ return 0;
+ if (d_majMarks != s.d_majMarks)
+ return 0;
+ return (d_minMarks == s.d_minMarks);
+ }
+
+//------------------------------------------------------------
+//.F ScaleDiv::operator!=
+// Inequality
+//
+//.u Syntax
+//.f int ScaleDiv::operator!=(const ScaleDiv &s)
+//
+//.u Parameters
+//.p const ScaleDiv &s
+//
+//.u Return Value
+// TRUE if this instance is not equal to s
+//------------------------------------------------------------
+
+int ScaleDiv::operator!=(const ScaleDiv &s) const
+ {
+ return (!(*this == s));
+ }
+
+//------------------------------------------------------------
+//.F ScaleDiv::reset
+// Detach the shared data and set everything to zero.
+//
+//.u Syntax
+//.f void ScaleDiv::reset()
+//------------------------------------------------------------
+
+void ScaleDiv::reset()
+ {
+ // detach arrays
+ d_majMarks.duplicate(0,0);
+ d_minMarks.duplicate(0,0);
+
+ d_lBound = 0.0;
+ d_hBound = 0.0;
+ d_majStep = 0.0;
+ d_log = FALSE;
+ }
+
+
+
+
+
+
+
+
diff --git a/muse2/muse/widgets/scldiv.h b/muse2/muse/widgets/scldiv.h
new file mode 100644
index 00000000..fcb4951c
--- /dev/null
+++ b/muse2/muse/widgets/scldiv.h
@@ -0,0 +1,57 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: scldiv.h,v 1.1.1.1 2003/10/27 18:54:43 wschweer Exp $
+//
+// Copyright (C) 1997 Josef Wilgen
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License, version 2,
+// as published by the Free Software Foundation.
+//
+// (C) Copyright 2000 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __SCLDIV_H__
+#define __SCLDIV_H__
+
+#include <qglobal.h>
+#include <q3memarray.h>
+
+class ScaleDiv
+ {
+ double d_lBound;
+ double d_hBound;
+ double d_majStep;
+ bool d_log;
+
+ Q3MemArray<double> d_majMarks;
+ Q3MemArray<double> d_minMarks;
+
+ void copy(const ScaleDiv &s);
+
+ bool buildLinDiv(int maxMajMark, int maxMinMark, double step = 0.0);
+ bool buildLogDiv(int maxMajMark, int maxMinMark, double step = 0.0);
+
+ public:
+ ScaleDiv ();
+ virtual ~ScaleDiv();
+ ScaleDiv(const ScaleDiv& s);
+
+ ScaleDiv& operator= (const ScaleDiv &s);
+ int operator== (const ScaleDiv &s) const;
+ int operator!= (const ScaleDiv &s) const;
+
+ double lBound() const { return d_lBound; }
+ double hBound() const { return d_hBound; }
+ int minCnt() const { return d_minMarks.size(); }
+ int majCnt() const { return d_majMarks.size(); }
+ bool logScale() const { return d_log; }
+ double majMark(int i) const { return d_majMarks[i]; }
+ double minMark(int i) const { return d_minMarks[i]; }
+ double majStep() const { return d_majStep; }
+ void reset();
+ bool rebuild(double lBound, double hBound, int maxMaj, int maxMin,
+ bool log, double step = 0.0, bool ascend = TRUE);
+ };
+
+#endif
diff --git a/muse2/muse/widgets/scldraw.cpp b/muse2/muse/widgets/scldraw.cpp
new file mode 100644
index 00000000..b72d1000
--- /dev/null
+++ b/muse2/muse/widgets/scldraw.cpp
@@ -0,0 +1,881 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: scldraw.cpp,v 1.1.1.1 2003/10/27 18:54:36 wschweer Exp $
+//
+// Copyright (C) 1997 Josef Wilgen
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License, version 2,
+// as published by the Free Software Foundation.
+//
+// (C) Copyright 2000 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include <cmath>
+#include "scldraw.h"
+#include <qpainter.h>
+#include <qfontmetrics.h>
+#include <qrect.h>
+#include "mmath.h"
+
+
+int const ScaleDraw::minLen = 10;
+
+const double step_eps = 1.0e-6;
+static const double WorstCase = -8.8888888888888888888888e-88;
+
+//------------------------------------------------------------
+//.H ScaleDraw | 3 | 30/08/97 | Qwt Widget Library | Qwt Programmer's Manual
+//.I scldraw Different Scales
+//.U NAME
+// ScaleDraw - A class for drawing scales
+//
+//.U SYNOPSIS
+// #include <qwt_scldraw.h>
+//
+//.U DESCRIPTION
+// ScaleDraw can be used to draw linear or logarithmic scales.
+// A scale has an origin,
+// an orientation and a length, which all can be specified with
+// @ScaleDraw::setGeometry@.
+// After a scale division has been specified as a @^QwtScaleDiv@ object
+// using @ScaleDraw::setScale (1)@
+// or determined internally using @ScaleDraw::setScale (2)@,
+// the scale can be drawn with the @QwtScaleDiv::draw@ member.
+//
+//.U INHERITED CLASSES
+// @QwtDiMap@
+//
+//.U PUBLIC MEMBERS
+//.R
+// ScaleDraw::ScaleDraw -- constructor
+// ScaleDraw::setScale (1) -- set scale using QwtScaleDiv
+// ScaleDraw::setScale (2) -- set scale directly
+// ScaleDraw::setGeometry -- specify geometry
+// ScaleDraw::setAngleRange -- specify angle range for round scales
+// ScaleDraw::setLabelFormat -- set number format
+// ScaleDraw::scalediv -- return scale division
+// ScaleDraw::orientation -- return orientation
+// ScaleDraw::maxBoundingRect -- return maximum bounding rectangle
+// ScaleDraw::maxWidth -- return maximum width
+// ScaleDraw::maxHeight -- return maximum height
+// ScaleDraw::maxLabelWidth -- return maximum width of the number labels
+// ScaleDraw::draw -- draw the scale
+//
+//.U STATIC DATA MEMBERS
+//.t
+// enum ScaleDraw::Orientation { Left, Right, Top, Bottom, Round } --
+// Scale orientation
+//------------------------------------------------------------
+
+//------------------------------------------------------------
+//.U MEMBER FUNCTION DESCRIPTION
+//------------------------------------------------------------
+
+//------------------------------------------------------------
+//
+//.F ScaleDraw::ScaleDraw
+//
+// Constructor
+//.u Description
+// The range of the scale is initialized to [0, 100],
+// the angle range is set to [-135, 135], the geometry
+// is initialized such that the origin is at (0,0), the
+// length is 100, and the orientation is ScaleDraw::Bottom.
+//
+//------------------------------------------------------------
+ScaleDraw::ScaleDraw()
+{
+/* d_hpad = 6;
+ d_vpad = 3;
+ d_majLen = 8;
+ d_medLen = 6;
+ d_minLen = 4;
+ */
+
+ d_hpad = 3;
+ d_vpad = 1;
+ d_majLen = 4;
+ d_medLen = 3;
+ d_minLen = 2;
+
+ d_minAngle = -135 * 16;
+ d_maxAngle = 135 * 16;
+ d_fmt = 'g';
+ d_prec = 4;
+
+ // initialize scale and geometry
+ setGeometry(0,0,100,Bottom);
+ setScale(0,100,0,0,10);
+}
+
+
+//------------------------------------------------------------
+//
+//.F ScaleDraw::setScale (1)
+// Adjust the range of the scale
+//
+//.u Syntax
+//.f void ScaleDraw::setScale(double x1, double x2, double step, int logscale)
+//
+//.u Parameters
+//.p double x1 -- value at the left/low endpoint of the scale
+// double x2 -- value at the right/high endpoint of the scale
+// double step -- step size (default : 0.0)
+// int logscale -- logarithmic scale (default : 0)
+//
+//.u Description
+// If step == 0.0, the step width is calculated automatically
+// dependent on the maximal number of scale ticks.
+//
+//------------------------------------------------------------
+void ScaleDraw::setScale(double x1, double x2, int maxMajIntv,
+ int maxMinIntv, double step, int logscale)
+{
+ d_scldiv.rebuild( x1, x2, maxMajIntv, maxMinIntv, logscale, step, FALSE );
+ setDblRange( d_scldiv.lBound(), d_scldiv.hBound(), d_scldiv.logScale());
+}
+
+
+//------------------------------------------------------------
+//
+//.F ScaleDraw::setScale (2)
+// Change the scale division
+//
+//.u Syntax
+//.f void ScaleDraw::setScale(QwtAutoScale &as)
+//
+//.u Parameters
+//.p const QwtScaleDiv& sd -- new scale division
+//
+//------------------------------------------------------------
+
+void ScaleDraw::setScale(const ScaleDiv &s)
+{
+ d_scldiv = s;
+ setDblRange(d_scldiv.lBound(),d_scldiv.hBound(),d_scldiv.logScale());
+}
+
+
+
+//------------------------------------------------------------
+//.F ScaleDraw::draw
+// Draw the scale
+//.u Parameters
+//.p QPainter *p -- the painter
+//------------------------------------------------------------
+
+void ScaleDraw::draw(QPainter *p) const
+ {
+ double val,hval,majTick;
+
+ int i,k,kmax;
+
+ for (i=0; i< d_scldiv.majCnt(); i++)
+ {
+ val = d_scldiv.majMark(i);
+ drawTick(p, val, d_majLen);
+ drawLabel(p, val);
+ }
+
+ if (d_scldiv.logScale())
+ {
+ for (i=0; i< d_scldiv.minCnt(); i++)
+ {
+ drawTick(p,d_scldiv.minMark(i),d_minLen);
+ }
+ }
+ else
+ {
+ k = 0;
+ kmax = d_scldiv.majCnt() - 1;
+ if (kmax > 0)
+ {
+ majTick = d_scldiv.majMark(0);
+ hval = majTick - 0.5 * d_scldiv.majStep();
+
+ for (i=0; i< d_scldiv.minCnt(); i++)
+ {
+ val = d_scldiv.minMark(i);
+ if (val > majTick)
+ {
+ if (k < kmax)
+ {
+ k++;
+ majTick = d_scldiv.majMark(k);
+ }
+ else
+ {
+ majTick += d_scldiv.majMark(kmax) + d_scldiv.majStep();
+ }
+ hval = majTick - 0.5 * d_scldiv.majStep();
+
+ }
+ if (qwtAbs(val-hval) < step_eps * d_scldiv.majStep())
+ drawTick(p, val, d_medLen);
+ else
+ drawTick(p, val, d_minLen);
+ }
+ }
+ }
+
+ //
+ // draw backbone
+ //
+ //if (d_baseEnabled)
+ drawBackbone(p);
+
+}
+
+
+//------------------------------------------------------------
+//.F ScaleDraw::drawTick
+// Draws a singls scale tick
+//
+//.u Parameters
+//.p QPainter *p, double val, int len
+//------------------------------------------------------------
+
+void ScaleDraw::drawTick(QPainter *p, double val, int len) const
+ {
+ int tval = transform(val);
+ double arc;
+ int x1, x2, y1, y2;
+
+ switch(d_orient)
+ {
+ case Right:
+
+ p->drawLine(d_xorg, tval, d_xorg + len, tval);
+ break;
+
+ case Bottom:
+
+ p->drawLine(tval, d_yorg, tval, d_yorg + len);
+ break;
+
+ case Left:
+
+ p->drawLine(d_xorg, tval, d_xorg - len, tval);
+ break;
+
+ case Round:
+
+ if ((tval <= d_minAngle + 359 * 16) || (tval >= d_minAngle - 359 * 16))
+ {
+ arc = double(tval) / 16.0 * M_PI / 180.0;
+ x1 = qwtInt(d_xCenter + sin(arc) * d_radius);
+ x2 = qwtInt(d_xCenter + sin(arc) * (d_radius + double(len)));
+ y1 = qwtInt(d_yCenter - cos(arc) * d_radius);
+ y2 = qwtInt(d_yCenter - cos(arc) * (d_radius + double(len)));
+ p->drawLine(x1, y1, x2, y2);
+ }
+ break;
+
+ case Top:
+ default:
+
+ p->drawLine(tval, d_yorg, tval, d_yorg - len);
+ break;
+
+
+ }
+
+}
+
+
+
+
+//------------------------------------------------------------
+//.-
+//.F ScaleDraw::drawLabel
+// Draws the number label for a major scale tick
+//
+//.u Parameters
+//.p QPainter *p, double val
+//
+//------------------------------------------------------------
+void ScaleDraw::drawLabel(QPainter *p, double val) const
+{
+
+ static QString label;
+ static double pi_4 = M_PI * 0.25;
+ static double pi_75 = M_PI * 0.75;
+
+ double arc;
+ int xpos, ypos;
+ int tval;
+
+ QFontMetrics fm = p->fontMetrics();
+
+ tval = transform(val);
+
+ // correct rounding errors if val = 0
+ if ((!d_scldiv.logScale()) && (qwtAbs(val) < qwtAbs(step_eps * d_scldiv.majStep())))
+ val = 0.0;
+
+ label.setNum(val, d_fmt, d_prec);
+
+ switch(d_orient)
+ {
+ case Right:
+ p->drawText(d_xorg + d_majLen + d_hpad,
+ tval + (fm.ascent()-1) / 2,
+ label);
+ break;
+ case Left:
+ p->drawText(d_xorg - d_majLen - d_hpad - fm.width(label),
+ tval + (fm.ascent() -1) / 2,
+ label);
+ break;
+ case Bottom:
+ p->drawText(tval - (fm.width(label)-1) / 2, d_yorg + d_majLen + d_vpad + fm.ascent(), label);
+ break;
+ case Round:
+
+ if ((tval > d_minAngle + 359 * 16) || (tval < d_minAngle - 359 * 16))
+ break;
+
+ arc = double(tval) / 16.0 * M_PI / 180.0;
+
+ // Map arc into the interval -pi <= arc <= pi
+ if ((arc < -M_PI) || (arc > M_PI))
+ arc -= floor((arc + M_PI) / M_PI * 0.5) * 2.0 * M_PI;
+
+ xpos = 1 + qwtInt(d_xCenter + (d_radius + double(d_majLen + d_vpad)) * sin(arc));
+ ypos = qwtInt(d_yCenter - (d_radius + double(d_majLen + d_vpad)) * cos(arc));
+
+ if (arc < -pi_75)
+ {
+ p->drawText(xpos - qwtInt(double(fm.width(label))
+ * (1.0 + (arc + pi_75) * M_2_PI) ),
+ ypos + fm.ascent() - 1,
+ label);
+ }
+ else if (arc < -M_PI_4)
+ {
+ p->drawText(xpos - fm.width(label),
+
+
+ ypos - qwtInt(double(fm.ascent() - 1)
+ * (arc + M_PI_4) * M_2_PI),
+ label);
+ }
+ else if (arc < pi_4)
+ {
+ p->drawText(xpos + qwtInt(double(fm.width(label))
+ * ( arc - M_PI_4 ) * M_2_PI ),
+ ypos,
+ label);
+ }
+ else if (arc < pi_75)
+ {
+ p->drawText(xpos,
+ ypos + qwtInt(double(fm.ascent() - 1)
+ * (arc - M_PI_4) * M_2_PI),
+ label);
+ }
+ else
+ {
+ p->drawText(xpos - qwtInt(double(fm.width(label))
+ * ( arc - pi_75) * M_2_PI ),
+ ypos + fm.ascent() - 1,
+ label);
+ }
+ break;
+ case Top:
+ default:
+ p->drawText(tval - (fm.width(label)-1) / 2, d_yorg - d_majLen - d_vpad, label);
+ break;
+ }
+
+
+
+}
+
+//------------------------------------------------------------
+//.-
+//.F ScaleDraw::drawBackbone
+// Draws the baseline of the scale
+//
+//
+//.u Parameters
+//.p QPainter *p
+//
+//------------------------------------------------------------
+void ScaleDraw::drawBackbone(QPainter *p) const
+{
+ int bw2;
+ int a1, a2;
+ bw2 = p->pen().width() / 2;
+
+
+ switch(d_orient)
+ {
+ case Left:
+ p->drawLine(d_xorg - bw2, d_yorg, d_xorg - bw2, d_yorg + d_len - 1);
+ break;
+ case Right:
+ p->drawLine(d_xorg + bw2, d_yorg, d_xorg + bw2, d_yorg + d_len - 1);
+ break;
+ case Round:
+
+ a1 = qwtMin(i1(), i2()) - 90 * 16;
+ a2 = qwtMax(i1(), i2()) - 90 * 16;
+
+ p->drawArc(d_xorg, d_yorg, d_len,
+ d_len,
+ -a2, a2 - a1 + 1); // counterclockwise
+
+ break;
+
+ case Top:
+ p->drawLine(d_xorg, d_yorg - bw2, d_xorg + d_len - 1, d_yorg-bw2);
+ break;
+ case Bottom:
+ p->drawLine(d_xorg, d_yorg+bw2, d_xorg + d_len - 1, d_yorg+bw2);
+ break;
+ default:
+ p->drawLine(d_xorg, d_yorg, d_xorg + d_len - 1, d_yorg);
+ break;
+ }
+
+}
+
+
+//------------------------------------------------------------
+//
+//.F ScaleDraw::setGeometry
+// Specify the geometry of the scale
+//
+//
+//.u Parameters
+//.p int xorigin -- x coordinate of the origin
+// int yorigin -- y coordinate of the origin
+// int length -- length or diameter of the scale
+// Orientation o -- The orientation
+//
+//.u Description
+//
+// The parameters xorigin, yorigin and length have different meanings,
+// dependent on the
+// orientation:
+//.t
+// ScaleDraw::Left -- The origin is the topmost point of the
+// baseline. The baseline is a vertical line with the
+// specified length. Scale marks and labels are drawn
+// at the left of the baseline.
+//
+// ScaleDraw::Right -- The origin is the topmost point of the
+// baseline. The baseline is a vertical line with the
+// specified length. Scale marks and labels are drawn
+// at the right of the baseline.
+//
+// ScaleDraw::Top -- The origin is the leftmost point of the
+// baseline. The baseline is a horizontal line with the
+// specified length. Scale marks and labels are drawn
+// above the baseline.
+//
+// ScaleDraw::Bottom -- The origin is the leftmost point of the
+// baseline. The baseline is a horizontal line with the
+// specified length. Scale marks and labels are drawn
+// below the baseline.
+//
+// ScaleDraw::Round -- The origin is the top left corner of the
+// bounding rectangle of the baseline circle. The baseline
+// is the segment of a circle with a diameter of the specified length.
+// Scale marks and labels are drawn outside the baseline
+// circle.
+//
+//------------------------------------------------------------
+void ScaleDraw::setGeometry(int xorigin, int yorigin, int length, OrientationX o)
+{
+
+ d_xorg = xorigin;
+ d_yorg = yorigin;
+ d_radius = double(length) * 0.5;
+ d_xCenter = double(xorigin) + double(length) * 0.5;
+ d_yCenter = double(yorigin) + double(length) * 0.5;
+
+ if (length > minLen)
+ d_len = length;
+ else
+ d_len = minLen;
+
+ d_orient = o;
+
+ switch(d_orient)
+ {
+ case Left:
+ case Right:
+ setIntRange(d_yorg + d_len - 1, d_yorg);
+ break;
+ case Round:
+ setIntRange(d_minAngle, d_maxAngle);
+ break;
+ case Top:
+ case Bottom:
+ default:
+ setIntRange(d_xorg, d_xorg + d_len - 1);
+ break;
+ }
+}
+
+
+
+//------------------------------------------------------------
+//
+//.F ScaleDraw::maxWidth
+// Return the maximum width of the scale for a specified QPainter
+//
+//.u Syntax
+//.f int ScaleDraw::maxWidth(QPainter *p)
+//
+//.u Parameters
+//.p QPainter *p -- painter
+// bool worst -- if TRUE, assume the worst possible case. If FALSE,
+// calculate the real maximum width, which is more
+// CPU intensive.
+//
+//------------------------------------------------------------
+int ScaleDraw::maxWidth(QPainter *p, bool worst) const
+{
+ int rv = 0;
+ int bw = p->pen().width();
+
+ QString s;
+
+ QFontMetrics fm = p->fontMetrics();
+
+ rv = maxLabelWidth(p,worst);
+
+ switch (d_orient)
+ {
+ case Left:
+ case Right:
+ rv += (bw + d_hpad + d_majLen);
+ break;
+ case Round:
+ rv += (bw + d_vpad + d_majLen);
+ break;
+ case Top:
+ case Bottom:
+ default:
+ rv += d_len;
+ }
+
+ return rv;
+
+}
+
+//------------------------------------------------------------
+//
+//.F ScaleDraw::maxHeight
+// Return the maximum height of the scale for the
+// specified painter
+//
+//.u Syntax
+//.f int ScaleDraw::maxHeight(QPainter *p)
+//
+//.u Parameters
+//.p QPainter *p
+//
+//------------------------------------------------------------
+int ScaleDraw::maxHeight(QPainter *p) const
+{
+
+ int rv = 0;
+ int bw = p->pen().width();
+
+ p->save();
+ QFontMetrics fm = p->fontMetrics();
+
+ switch (d_orient)
+ {
+ case Top:
+ case Bottom:
+ case Round:
+ rv = bw + d_vpad + d_majLen + fm.height();
+ break;
+ case Left:
+ case Right:
+ default:
+ rv = d_len + ((fm.height() + 1) / 2);
+ }
+
+ return rv;
+
+}
+
+//------------------------------------------------------------
+//
+//.F ScaleDraw:maxBoundingRect
+// Return the maximum bounding rectangle of the scale
+// for a specified painter
+//
+//.u Parameters
+//.p QPainter *p -- painter
+//
+//.u Description
+// The bounding rectangle is not very exact for round scales
+// with strange angle ranges.
+//
+//------------------------------------------------------------
+QRect ScaleDraw::maxBoundingRect(QPainter *p) const
+{
+ int i, wl,h,wmax;
+ int a, ar, amin, amax;
+ double arc;
+
+ QRect r;
+
+ QFontMetrics fm = p->fontMetrics();
+
+ wl = maxLabelWidth(p, TRUE);
+ h = fm.height();
+
+ switch(d_orient)
+ {
+ case Left:
+
+ r = QRect( d_xorg - d_hpad - d_majLen - wl,
+ d_yorg - fm.ascent(),
+ d_majLen + d_hpad + wl,
+ d_len + fm.height());
+ break;
+
+ case Right:
+
+ r = QRect( d_xorg,
+ d_yorg - fm.ascent(),
+ d_majLen + d_hpad + wl,
+ d_len + fm.height());
+ break;
+
+ case Top:
+
+ r = QRect ( d_xorg - wl / 2,
+ d_yorg - d_majLen - fm.ascent(),
+ d_len + wl,
+ d_majLen + d_vpad + fm.ascent());
+ break;
+
+ case Bottom:
+
+ r = QRect ( d_xorg - wl / 2,
+ d_yorg,
+ d_len + wl,
+ d_majLen + d_vpad + fm.height());
+ break;
+
+ case Round:
+
+ amin = 2880;
+ amax = 0;
+ ar = 0;
+
+ for (i=0; i< d_scldiv.majCnt(); i++)
+ {
+ a = transform(d_scldiv.majMark(i));
+
+ while (a > 2880) a -= 5760;
+ while (a < - 2880) a += 5760;
+
+ ar = qwtAbs(a);
+
+ if (ar < amin) amin = ar;
+ if (ar > amax) amax = ar;
+
+ }
+
+ for (i=0; i< d_scldiv.minCnt(); i++)
+ {
+ a = transform(d_scldiv.majMark(i));
+
+ while (a > 2880) a -= 5760;
+ while (a < - 2880) a += 5760;
+
+ ar = qwtAbs(a);
+
+ if (ar < amin) amin = ar;
+ if (ar > amax) amax = ar;
+ }
+
+ arc = double(amin) / 16.0 * M_PI / 180.0;
+ r.setTop(qwtInt(d_yCenter - (d_radius + double(d_majLen + d_vpad)) * cos(arc))
+ + fm.ascent() );
+
+ arc = double(amax) / 16.0 * M_PI / 180.0;
+ r.setBottom(qwtInt(d_yCenter - (d_radius + double(d_majLen + d_vpad)) * cos(arc))
+ + fm.height() );
+
+ wmax = d_len + d_majLen + d_hpad + wl;
+
+ r.setLeft(d_xorg - d_majLen - d_hpad - wl);
+ r.setWidth(d_len + 2*(d_majLen + d_hpad + wl));
+ break;
+ }
+
+ return r;
+
+}
+
+//------------------------------------------------------------
+//
+//.F ScaleDraw::setAngleRange
+// Adjust the baseline circle segment for round scales.
+//
+//.u Syntax
+//.f void ScaleDraw::setAngleRange(double angle1, double angle2)
+//
+//.u Parameters
+//.p double angle1, double angle2
+// boundaries of the angle interval in degrees.
+//
+//.u Description
+// The baseline will be drawn from min(angle1,angle2) to max(angle1, angle2).
+// The settings have no effect if the scale orientation is not set to
+// ScaleDraw::Round. The default setting is [ -135, 135 ].
+// An angle of 0 degrees corresponds to the 12 o'clock position,
+// and positive angles count in a clockwise direction.
+//
+//.u Note
+//.i
+// -- The angle range is limited to [-360, 360] degrees. Angles exceeding
+// this range will be clipped.
+// -- For angles more than 359 degrees above or below min(angle1, angle2),
+// scale marks will not be drawn.
+// -- If you need a counterclockwise scale, use @QwtScaleDiv::setRange (1)@
+// or @QwtScaleDiv::setRange (2)@.
+//------------------------------------------------------------
+void ScaleDraw::setAngleRange(double angle1, double angle2)
+{
+ int amin, amax;
+
+ angle1 = qwtLim(angle1, -360.0, 360.0);
+ angle2 = qwtLim(angle2, -360.0, 360.0);
+ amin = int(rint(qwtMin(angle1, angle2) * 16.0));
+ amax = int(rint(qwtMax(angle1, angle2) * 16.0));
+
+ if (amin == amax)
+ {
+ amin -= 1;
+ amax += 1;
+ }
+
+ d_minAngle = amin;
+ d_maxAngle = amax;
+ setIntRange(d_minAngle, d_maxAngle);
+
+}
+
+
+//------------------------------------------------------------
+//
+//.F ScaleDraw::setLabelFormat
+// Set the number format for the major scale labels
+//
+//.u Syntax
+//.f void ScaleDraw::setLabelFormat(char f, int prec)
+//
+//.u Parameters
+//.p char f -- format character
+// int prec -- precision
+//
+//.u Description
+// Format character and precision have the same meaning as for the
+// QString class.
+//
+//.u See also
+// QString::setNum in the Qt manual
+//
+//------------------------------------------------------------
+void ScaleDraw::setLabelFormat(char f, int prec)
+{
+ d_fmt = f;
+ d_prec = prec;
+}
+
+//------------------------------------------------------------
+//
+//.F ScaleDraw::maxLabelWidth
+// Return the maximum width of a label
+//
+//.u Syntax
+//.f int ScaleDraw::maxLabelWidth(QPainter *p, int worst)
+//
+//.u Parameters
+//.p QPainter *p -- painter
+// int worst -- If TRUE, take the worst case. If FALSE, take
+// the actual width of the largest label.
+//
+//------------------------------------------------------------
+int ScaleDraw::maxLabelWidth(QPainter *p, int worst) const
+{
+
+ int i,rv = 0;
+ double val;
+ QString s;
+
+
+ QFontMetrics fm = p->fontMetrics();
+
+ if (worst) // worst case
+ {
+ s.setNum(WorstCase, d_fmt, d_prec);
+ rv = fm.width(s);
+ }
+ else // actual width
+ {
+ for (i=0;i<d_scldiv.majCnt(); i++)
+ {
+ val = d_scldiv.majMark(i);
+ // correct rounding errors if val = 0
+ if ((!d_scldiv.logScale()) && (qwtAbs(val) < step_eps * qwtAbs(d_scldiv.majStep())))
+ val = 0.0;
+ s.setNum(val, d_fmt, d_prec);
+ rv = qwtMax(rv,fm.width(s));
+ }
+ }
+
+
+ return rv;
+
+}
+
+
+//------------------------------------------------------------
+//
+//.F ScaleDraw::scaleDiv
+// Return the scale division
+//
+//.u Syntax
+//.f const QwtScaleDiv & ScaleDraw::scaleDiv() const
+//
+//.u See also
+// @^QwtScaleDiv@
+//------------------------------------------------------------
+
+//------------------------------------------------------------
+//
+//.F ScaleDraw::orientation
+// Return the orientation
+//
+//.u Syntax
+//.f int ScaleDraw::orientation() const
+//
+//.u See also
+// @ScaleDraw::setGeometry@
+//
+//------------------------------------------------------------
+
+
+
+
+
+
+
+
+
+
+
diff --git a/muse2/muse/widgets/scldraw.h b/muse2/muse/widgets/scldraw.h
new file mode 100644
index 00000000..8ba85600
--- /dev/null
+++ b/muse2/muse/widgets/scldraw.h
@@ -0,0 +1,89 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: scldraw.h,v 1.1.1.1 2003/10/27 18:55:08 wschweer Exp $
+//
+// Copyright (C) 1997 Josef Wilgen
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License, version 2,
+// as published by the Free Software Foundation.
+//
+// (C) Copyright 2000 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __SCLDRAW_H__
+#define __SCLDRAW_H__
+
+#include <qglobal.h>
+#include <qstring.h>
+#include "dimap.h"
+#include "scldiv.h"
+#include <qfont.h>
+#include <qrect.h>
+#include <qcolor.h>
+
+class QPainter;
+class AutoScale;
+
+class ScaleDraw : public DiMap {
+ public:
+ enum OrientationX { Bottom, Top, Left, Right, Round };
+
+ private:
+ ScaleDiv d_scldiv;
+ static const int minLen;
+ OrientationX d_orient;
+
+ int d_xorg;
+ int d_yorg;
+ int d_len;
+
+ int d_hpad;
+ int d_vpad;
+
+ int d_medLen;
+ int d_majLen;
+ int d_minLen;
+
+ int d_minAngle;
+ int d_maxAngle;
+
+ double d_xCenter;
+ double d_yCenter;
+ double d_radius;
+
+ char d_fmt;
+ int d_prec;
+
+ void drawTick(QPainter *p, double val, int len) const;
+ void drawBackbone(QPainter *p) const;
+ void drawLabel(QPainter *p, double val) const;
+
+ public:
+
+ ScaleDraw();
+
+ void setScale(const ScaleDiv &s);
+ void setScale(double vmin, double vmax, int maxMajIntv, int maxMinIntv,
+ double step = 0.0, int logarithmic = 0);
+ void setGeometry(int xorigin, int yorigin, int length, OrientationX o);
+ void setAngleRange(double angle1, double angle2);
+ void setLabelFormat(char f, int prec);
+
+ const ScaleDiv& scaleDiv() const { return d_scldiv; }
+ OrientationX orientation() const { return d_orient; }
+ QRect maxBoundingRect(QPainter *p) const;
+ int maxWidth(QPainter *p, bool worst = TRUE) const;
+ int maxHeight(QPainter *p) const;
+ int maxLabelWidth(QPainter *p, int worst = TRUE) const;
+ void draw(QPainter *p) const;
+ };
+
+#endif
+
+
+
+
+
+
+
diff --git a/muse2/muse/widgets/sclif.cpp b/muse2/muse/widgets/sclif.cpp
new file mode 100644
index 00000000..8740bc53
--- /dev/null
+++ b/muse2/muse/widgets/sclif.cpp
@@ -0,0 +1,205 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: sclif.cpp,v 1.1.1.1 2003/10/27 18:55:10 wschweer Exp $
+
+// Copyright (C) 1997 Josef Wilgen
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License, version 2,
+// as published by the Free Software Foundation.
+//
+// (C) Copyright 2000 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include "sclif.h"
+
+// ScaleIf - An interface class for widgets containing a scale
+//
+// This interface class is used to provide classes
+// with a protected ScaleDraw member and a public
+// interface to access that scale.
+//
+// The primary purpose of this class is to define
+// a common interface for classes which are supposed to
+// contain a ScaleDraw class. It provides a protected
+// ScaleDraw member
+// called d_scale and a couple of public member functions
+// which allow direct but restricted access
+// to this scale by the user.
+// Widgets derived from this class have
+// to implement the member function scaleChange(),
+// which is called to notify changes of the
+// scale parameters and usually requires repainting or
+// resizing respectively.
+// In general, a class derived from ScaleIf is
+// expected to manage the division and the position of its scale internally
+// when no user-defined scale is set. It should take the d_maxMinor
+// and d_maxMajor members into account, which can be set by the user.
+// An implementation can check if a user-defined scale is set by calling the
+// @ScaleIf::hasUserScale@ member.
+
+//------------------------------------------------------------
+// ScaleIf::ScaleIf
+// Construct a ScaleIf instance
+//
+// Syntax
+// ScaleIf::ScaleIf()
+//------------------------------------------------------------
+
+ScaleIf::ScaleIf()
+ {
+ d_userScale = FALSE;
+ d_maxMajor = 5;
+ d_maxMinor = 3;
+ d_scale.setScale(0.0,100.0,d_maxMajor, d_maxMinor);
+ }
+
+//------------------------------------------------------------
+// ScaleIf::setScale (1)
+// Specify a user-defined scale.
+//
+// Syntax
+// void ScaleIf::setScale(double vmin, double vmax, int logarithmic)
+//
+// Parameters
+// double vmin, double vmax -- boundary values
+// int logarithmic -- If != 0, Build a logarithmic scale
+//
+// Description
+// By default, the widget is supposed to control the range of its scale
+// automatically, but sometimes it is desirable to have a user-defined
+// scale which is not in sync with
+// the widget's range, e.g. if a logarithmic scale is needed
+// (sliders don't support that) or if the scale is required
+// to have a fixed range (say 0...100%), independent of the
+// widget's range.
+//
+// See also
+// @ScaleIf::autoScale@
+//------------------------------------------------------------
+
+void ScaleIf::setScale(double vmin, double vmax, int logarithmic)
+ {
+ setScale(vmin,vmax,0.0,logarithmic);
+ }
+
+//------------------------------------------------------------
+// ScaleIf::setScale (2)
+// Specify a user-defined scale.
+//
+// Syntax
+// void ScaleIf::setScale(double vmin, double vmax, int logarithmic)
+//
+// Parameters
+// double vmin, double vmax -- interval boundaries
+// int step -- major step size
+// int logarithmic -- If != 0, build a logarithmic scale
+//
+// Description
+// By default, the widget is supposed to control the range of its scale
+// automatically, but sometimes it is desirable to have a user-defined
+// scale which is not in sync with
+// the widget's range, e.g. if a logarithmic scale is needed
+// (sliders don't support that) or if the scale is required
+// to have a fixed range (say 0...100%), independent of the
+// widget's range.
+//------------------------------------------------------------
+
+void ScaleIf::setScale(double vmin, double vmax, double step, int logarithmic)
+ {
+ ScaleDiv oldscl(d_scale.scaleDiv());
+
+ d_scale.setScale(vmin, vmax, d_maxMajor, d_maxMinor, step, logarithmic);
+ d_userScale = TRUE;
+ if (oldscl != d_scale.scaleDiv())
+ scaleChange();
+ }
+
+//------------------------------------------------------------
+// Scale::setScale
+// Assign a user-defined scale division
+//
+// Syntax
+// void Scale::setScale(const ScaleDiv &s)
+//
+// Parameters
+// const ScaleDiv &s -- scale division
+//------------------------------------------------------------
+
+void ScaleIf::setScale(const ScaleDiv &s)
+ {
+ d_scale.setScale(s);
+ scaleChange();
+ }
+
+//------------------------------------------------------------
+// ScaleIf::autoScale
+// Advise the widget to control the scale range
+// internally.
+// Syntax
+// void ScaleIf::autoScale
+//
+// Description
+// Autoscaling is on by default.
+//------------------------------------------------------------
+
+void ScaleIf::autoScale()
+ {
+ if (!d_userScale) {
+ d_userScale = FALSE;
+ scaleChange();
+ }
+ }
+
+//------------------------------------------------------------
+// ScaleIf::setScaleMaxMajor
+// Set the maximum number of major tick intervals.
+//
+// Syntax
+// void ScaleIf::setScaleMaxMajor(int ticks)
+//
+// Parameters
+// int ticks -- maximal number of major ticks.
+//
+// Description
+// The scale's major ticks are calculated automatically such that
+// the number of major intervals does not exceed <ticks>.
+// The default value is 5.
+//------------------------------------------------------------
+
+void ScaleIf::setScaleMaxMajor(int ticks)
+ {
+ if (ticks != d_maxMajor) {
+ d_maxMajor = ticks;
+ d_scale.setScale(d_scale.scaleDiv().lBound(), d_scale.scaleDiv().hBound(),
+ d_maxMajor, d_maxMinor, 0.0,d_scale.scaleDiv().logScale());
+ scaleChange();
+ }
+ }
+
+//------------------------------------------------------------
+// ScaleIf::setScaleMaxMinor
+// Set the maximum number of minor tick intervals
+//
+// Syntax
+// void ScaleIf::setScaleMaxMinor(int ticks)
+//
+// Parameters
+// int ticks
+//
+// Description
+// The scale's minor ticks are calculated automatically such that
+// the number of minor intervals does not exceed <ticks>.
+// The default value is 3.
+//------------------------------------------------------------
+
+void ScaleIf::setScaleMaxMinor(int ticks)
+ {
+ if ( ticks != d_maxMinor) {
+ d_maxMinor = ticks;
+ d_scale.setScale(d_scale.scaleDiv().lBound(), d_scale.scaleDiv().hBound(),
+ d_maxMajor, d_maxMinor, 0.0, d_scale.scaleDiv().logScale());
+ scaleChange();
+ }
+ }
+
diff --git a/muse2/muse/widgets/sclif.h b/muse2/muse/widgets/sclif.h
new file mode 100644
index 00000000..86c0ecb6
--- /dev/null
+++ b/muse2/muse/widgets/sclif.h
@@ -0,0 +1,51 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: sclif.h,v 1.1.1.1 2003/10/27 18:54:33 wschweer Exp $
+
+// Copyright (C) 1997 Josef Wilgen
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License, version 2,
+// as published by the Free Software Foundation.
+//
+// (C) Copyright 2000 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __SCALE_IF_H__
+#define __SCALE_IF_H__
+
+#include <qglobal.h>
+#include "scldraw.h"
+
+//---------------------------------------------------------
+// ScaleIf
+//---------------------------------------------------------
+
+class ScaleIf
+ {
+ bool d_userScale;
+
+ protected:
+ ScaleDraw d_scale;
+ int d_maxMajor;
+ int d_maxMinor;
+ bool hasUserScale() {return d_userScale;}
+ virtual void scaleChange() = 0;
+
+ public:
+ ScaleIf();
+ virtual ~ScaleIf() {};
+
+ void setScale (double vmin, double vmax, int logarithmic = 0);
+ void setScale (double vmin, double vmax, double step, int logarithmic = 0);
+ void setScale(const ScaleDiv &s);
+ void setScaleMaxMajor( int ticks);
+ void setScaleMaxMinor( int ticks);
+ void autoScale();
+
+ int scaleMaxMinor() const {return d_maxMinor;}
+ int scaleMaxMajor() const {return d_maxMinor;}
+ };
+
+#endif
+
diff --git a/muse2/muse/widgets/scrollscale.cpp b/muse2/muse/widgets/scrollscale.cpp
new file mode 100644
index 00000000..1ff22c6a
--- /dev/null
+++ b/muse2/muse/widgets/scrollscale.cpp
@@ -0,0 +1,499 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: scrollscale.cpp,v 1.2.2.2 2009/11/04 17:43:25 lunar_shuttle Exp $
+// (C) Copyright 1999 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include <stdio.h>
+#include <cmath>
+#include <qslider.h>
+#include <qscrollbar.h>
+#include <qlayout.h>
+#include <qtoolbutton.h>
+#include <qtooltip.h>
+#include <qlabel.h>
+//Added by qt3to4:
+#include <Q3BoxLayout>
+#include <QResizeEvent>
+
+// #include "globals.h"
+#include "scrollscale.h"
+#include "icons.h"
+
+//---------------------------------------------------------
+// setScale
+// "val" - slider value in range 0-1024
+//---------------------------------------------------------
+
+void ScrollScale::setScale ( int val )
+{
+ int off = offset();
+ if ( invers )
+ val = 1024 - val;
+ double min, max;
+ if ( scaleMin < 0 )
+ min = 1.0/ ( -scaleMin );
+ else
+ min = double ( scaleMin );
+
+ if ( scaleMax < 0 )
+ max = 1.0/ ( -scaleMax );
+ else
+ max = double ( scaleMax );
+
+ double diff = max-min;
+ double fkt = double ( val ) /1024.0;
+ double v = ( pow ( logbase, fkt )-1 ) / ( logbase-1 );
+ double scale;
+ if ( invers )
+ scale = max - v * diff;
+ else
+ scale = min + v * diff;
+
+ if ( scale < 1.0 )
+ scaleVal = - ( int ( 1.0 / scale ) );
+ else
+ scaleVal = int ( scale );
+ if ( scaleVal == -1 ) // nur so
+ scaleVal = 1;
+
+#if 0
+ if ( scaleMax > scaleMin )
+ {
+ if ( scale < scaleMin )
+ scale = scaleMin;
+ else if ( scale > scaleMax )
+ scale = scaleMax;
+ }
+ else
+ {
+ if ( scale < scaleMax )
+ scale = scaleMax;
+ else if ( scale > scaleMin )
+ scale = scaleMin;
+ }
+#endif
+
+ emit scaleChanged ( scaleVal );
+ if ( !noScale )
+ setRange ( minVal, maxVal );
+
+ int i = ( scroll->orientation() == Qt::Horizontal ) ? width() : height();
+ int pos, pmax;
+ if ( scaleVal < 1 )
+ {
+ pos = ( off-scaleVal/2 ) / ( -scaleVal );
+ pmax = ( maxVal-scaleVal-1 ) / ( -scaleVal ) - i;
+ }
+ else
+ {
+ pos = off * scaleVal;
+ pmax = maxVal * scaleVal - i;
+ }
+ if(pos > pmax)
+ pos = pmax;
+ setPos(pos);
+}
+
+//---------------------------------------------------------
+// setMag
+//---------------------------------------------------------
+
+void ScrollScale::setMag ( int cs )
+{
+ scale->setValue ( cs );
+ setScale ( cs );
+}
+
+//---------------------------------------------------------
+// setRange
+// min,max ticks
+//---------------------------------------------------------
+
+void ScrollScale::setRange ( int min, int max )
+{
+// if ((min != minVal) && (max != maxVal))
+// return;
+ minVal = min;
+ maxVal = max;
+ int i = ( scroll->orientation() == Qt::Horizontal ) ? width() : height();
+
+ if ( !noScale )
+ {
+ if ( scaleVal < 1 )
+ {
+ min = minVal / ( -scaleVal );
+ max = ( maxVal-scaleVal-1 ) / ( -scaleVal ) - i;
+ }
+ else
+ {
+ min = minVal * scaleVal;
+ max = maxVal * scaleVal - i;
+ }
+ }
+ else
+ max -= i;
+ if ( max < 0 )
+ max = 0;
+ if ( min < 0 )
+ min = 0;
+ if ( min > max )
+ max = min;
+
+ scroll->setRange ( min, max );
+
+ // qt doesn't check this...
+ if ( scroll->value() < min )
+ scroll->setValue ( min );
+ if ( scroll->value() > max )
+ scroll->setValue ( max );
+ scroll->setSteps ( 20, i );
+}
+
+//---------------------------------------------------------
+// setPos
+// pos in pixel
+//---------------------------------------------------------
+
+void ScrollScale::setPos ( unsigned pos )
+{
+
+ scroll->setValue ( pos );
+}
+
+//---------------------------------------------------------
+// setPosNoLimit
+// pos in pixel
+//---------------------------------------------------------
+
+void ScrollScale::setPosNoLimit ( unsigned pos )
+{
+ //printf ( "ScrollScale::setPosNoLimit pos:%d scaleVal:%d offset ticks:%d\n", pos, scaleVal, pos2offset ( pos ) );
+
+ if((int)pos > scroll->maxValue())
+ scroll->setMaxValue(pos);
+ scroll->setValue(pos);
+}
+
+//---------------------------------------------------------
+// resizeEvent
+//---------------------------------------------------------
+
+void ScrollScale::resizeEvent ( QResizeEvent* )
+{
+ setScale ( scale->value() );
+}
+
+//---------------------------------------------------------
+// ScrollScale
+//---------------------------------------------------------
+
+ScrollScale::ScrollScale ( int s1, int s2, int cs, int max_, Qt::Orientation o,
+ QWidget* parent, int min_, bool inv, double bas )
+ : QWidget ( parent )
+{
+ noScale = false;
+ _page = 0;
+ _pages = 1;
+ pageButtons = false;
+ showMagFlag = true;
+ scaleMin = s1;
+ scaleMax = s2;
+ minVal = min_;
+ maxVal = max_;
+ up = 0;
+ down = 0;
+ logbase = bas;
+ invers = inv;
+
+ double min, max;
+ if ( scaleMin < 0 )
+ min = 1.0/ ( -scaleMin );
+ else
+ min = double ( scaleMin );
+
+ if ( scaleMax < 0 )
+ max = 1.0/ ( -scaleMax );
+ else
+ max = double ( scaleMax );
+
+ double cmag = ( cs < 0 ) ? ( 1.0/ ( -cs ) ) : double ( cs );
+ double diff = max-min;
+
+ //
+ // search initial value for slider
+ //
+ int cur = 512;
+ int delta = 256;
+ for ( int i = 0; i < 8; ++i )
+ {
+ int tryVal = invers ? 1025 - cur : cur;
+ double fkt = double ( tryVal ) /1024.0;
+ double v = ( pow ( logbase, fkt )-1 ) / ( logbase-1 );
+ double scale = invers ? ( max - v * diff ) : ( min + v * diff );
+ if ( scale == cmag ) // not very likely
+ break;
+ //printf("iteration %d invers:%d soll %f(cur:%d) - ist %f\n", i, invers, scale, cur, cmag);
+ int dd = invers ? -delta : delta;
+ cur += ( scale < cmag ) ? dd : -dd;
+ delta/=2;
+ }
+
+ scale = new QSlider ( 0, 1024, 1, cur, o, this );
+ scroll = new QScrollBar ( o, this );
+ setScale ( cur );
+
+ if ( o == Qt::Horizontal )
+ {
+ box = new Q3BoxLayout ( this, Q3BoxLayout::LeftToRight );
+ scale->setMaximumWidth ( 70 );
+ scroll->setMinimumWidth ( 50 );
+ }
+ else
+ {
+ box = new Q3BoxLayout ( this, Q3BoxLayout::Down );
+ scroll->setMinimumHeight ( 50 );
+ scale->setMaximumHeight ( 70 );
+ }
+ box->addWidget ( scroll, 10 );
+ box->addWidget ( scale, 5 );
+ connect ( scale, SIGNAL ( valueChanged ( int ) ), SLOT ( setScale ( int ) ) );
+ connect ( scale, SIGNAL ( valueChanged ( int ) ), SIGNAL ( lscaleChanged ( int ) ) );
+ connect ( scroll, SIGNAL ( valueChanged ( int ) ), SIGNAL ( scrollChanged ( int ) ) );
+}
+
+//---------------------------------------------------------
+// setPageButtons
+//---------------------------------------------------------
+
+void ScrollScale::setPageButtons ( bool flag )
+{
+ if ( flag == pageButtons )
+ return;
+
+ if ( flag )
+ {
+ if ( up == 0 )
+ {
+ up = new QToolButton ( this );
+ up->setPixmap ( * ( upIcon ) );
+ down = new QToolButton ( this );
+ down->setPixmap ( * ( downIcon ) );
+ pageNo = new QLabel ( this );
+ QString s;
+ s.setNum ( _page+1 );
+ pageNo->setText ( s );
+ QToolTip::add ( down, tr ( "next page" ) );
+ QToolTip::add ( up, tr ( "previous page" ) );
+ QToolTip::add ( pageNo, tr ( "current page number" ) );
+ box->insertWidget ( 1, up );
+ box->insertWidget ( 2, down );
+ box->insertSpacing ( 3, 5 );
+ box->insertWidget ( 4, pageNo );
+ box->insertSpacing ( 5, 5 );
+ connect ( up, SIGNAL ( clicked() ), SLOT ( pageUp() ) );
+ connect ( down, SIGNAL ( clicked() ), SLOT ( pageDown() ) );
+ }
+ up->show();
+ down->show();
+ pageNo->show();
+ if ( _page == ( _pages-1 ) )
+ down->setEnabled ( false );
+ if ( _page == 0 )
+ up->setEnabled ( false );
+ }
+ else
+ {
+ up->hide();
+ down->hide();
+ }
+ pageButtons = flag;
+}
+
+//---------------------------------------------------------
+// showMag
+//---------------------------------------------------------
+
+void ScrollScale::showMag ( bool flag )
+{
+ showMagFlag = flag;
+ if ( flag )
+ scale->show();
+ else
+ scale->hide();
+ box->activate();
+}
+
+//---------------------------------------------------------
+// offset
+//---------------------------------------------------------
+int ScrollScale::offset()
+{
+ return pos2offset ( scroll->value() );
+}
+
+//---------------------------------------------------------
+// pos2offset
+//---------------------------------------------------------
+int ScrollScale::pos2offset ( int pos )
+{
+ if ( scaleVal < 1 )
+ return pos * ( -scaleVal ) + scaleVal/2;
+ else
+ return pos / scaleVal;
+}
+
+//---------------------------------------------------------
+// setOffset
+// val in tick
+//---------------------------------------------------------
+
+void ScrollScale::setOffset ( int val )
+{
+ int i = ( scroll->orientation() == Qt::Horizontal ) ? width() : height();
+ int pos, max;
+
+ if ( scaleVal < 1 )
+ {
+ pos = ( val-scaleVal/2 ) / ( -scaleVal );
+ max = ( maxVal-scaleVal-1 ) / ( -scaleVal ) - i;
+ }
+ else
+ {
+ pos = val * scaleVal;
+ max = maxVal * scaleVal - i;
+ }
+ if ( pos > max )
+ {
+ int min;
+ if ( scaleVal < 1 )
+ {
+ maxVal = ( pos + width() ) * ( -scaleVal );
+ min = ( minVal-scaleVal/2 ) / ( -scaleVal );
+ max = ( maxVal-scaleVal/2 ) / ( -scaleVal ) - i;
+ }
+ else
+ {
+ maxVal = ( pos + width() + scaleVal/2 ) /scaleVal;
+ min = minVal * scaleVal;
+ max = maxVal * scaleVal - i;
+ }
+
+ if ( max < 0 )
+ max = 0;
+ if ( min < 0 )
+ min = 0;
+ if ( min > max )
+ max = min;
+ scroll->setRange ( min, max );
+ }
+
+ setPos ( pos );
+}
+
+//---------------------------------------------------------
+// pageUp
+// goto previous page
+//---------------------------------------------------------
+
+void ScrollScale::pageUp()
+{
+ if ( _page )
+ {
+ --_page;
+ emit newPage ( _page );
+ QString s;
+ s.setNum ( _page+1 );
+ pageNo->setText ( s );
+ if ( _page == 0 )
+ up->setEnabled ( false );
+ if ( _page == ( _pages-2 ) )
+ down->setEnabled ( true );
+ }
+}
+
+//---------------------------------------------------------
+// pageDown
+// goto next page
+//---------------------------------------------------------
+
+void ScrollScale::pageDown()
+{
+ if ( _page + 1 < _pages )
+ {
+ ++_page;
+ emit newPage ( _page );
+ QString s;
+ s.setNum ( _page+1 );
+ pageNo->setText ( s );
+ if ( _page == ( _pages-1 ) )
+ down->setEnabled ( false );
+ if ( _page == 1 )
+ up->setEnabled ( true );
+ }
+}
+
+//---------------------------------------------------------
+// setPages
+//---------------------------------------------------------
+
+void ScrollScale::setPages ( int n )
+{
+ _pages = n;
+ if ( _page >= _pages )
+ {
+ _page = _pages-1;
+ emit newPage ( _page );
+ QString s;
+ s.setNum ( _page+1 );
+ pageNo->setText ( s );
+ }
+ up->setEnabled ( _page );
+ down->setEnabled ( _page < ( _pages-1 ) );
+}
+
+int ScrollScale::pos() const
+{
+ return scroll->value();
+}
+
+int ScrollScale::mag() const
+{
+ return scale->value();
+}
+
+/**
+ * Hardcoded hackish function that corresponds to the values used for the scrollscales in PianoRoll and DrumEditor
+ * since I couldn't easily create any inverse function from the [0,1024]-range to detect where a zoom actually occurs
+ * (mg)
+ */
+int ScrollScale::getQuickZoomLevel(int mag)
+{
+ if (mag == 0)
+ return 0;
+
+ for (int i=0; i<24; i++) {
+ int val1 = ScrollScale::convertQuickZoomLevelToMag(i);
+ int val2 = ScrollScale::convertQuickZoomLevelToMag(i + 1);
+ if (mag > val1 && mag <= val2)
+ return i + 1;
+ }
+
+ return -1;
+
+}
+
+/**
+ * Function returning the boundary values for a zoom change, hardcoded corresponding to the values used in PianoRoll
+ * and DrumEditor
+ */
+int ScrollScale::convertQuickZoomLevelToMag(int zoomlevel)
+{
+ int vals[] = { 0, 1, 15, 30, 46, 62, 80, 99, 119, 140, 163,
+ 187, 214, 242, 274, 308, 346, 388, 436, 491, 555, 631,
+ 726, 849, 1024 };
+
+ return vals[zoomlevel];
+}
+
diff --git a/muse2/muse/widgets/scrollscale.h b/muse2/muse/widgets/scrollscale.h
new file mode 100644
index 00000000..572e5906
--- /dev/null
+++ b/muse2/muse/widgets/scrollscale.h
@@ -0,0 +1,90 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: scrollscale.h,v 1.2.2.3 2009/11/04 17:43:26 lunar_shuttle Exp $
+// (C) Copyright 1999 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __SCROLLSCALE_H__
+#define __SCROLLSCALE_H__
+
+#include <qwidget.h>
+#include <qslider.h>
+//Added by qt3to4:
+#include <QResizeEvent>
+#include <Q3BoxLayout>
+#include <QLabel>
+
+// class QSlider;
+class QScrollBar;
+class Q3BoxLayout;
+class QToolButton;
+class QLabel;
+
+//---------------------------------------------------------
+// ScrollScale
+//---------------------------------------------------------
+
+class ScrollScale : public QWidget {
+ QSlider* scale;
+ QScrollBar* scroll;
+ int minVal, maxVal;
+ int scaleVal, scaleMin, scaleMax;
+ bool showMagFlag;
+ Q3BoxLayout* box;
+ bool noScale;
+ bool pageButtons;
+ int _page;
+ int _pages;
+ QToolButton* up;
+ QToolButton* down;
+ QLabel* pageNo;
+ bool invers;
+ double logbase;
+
+ virtual void resizeEvent(QResizeEvent*);
+ Q_OBJECT
+
+ private slots:
+ void pageUp();
+ void pageDown();
+
+ public slots:
+ void setPos(unsigned);
+ void setPosNoLimit(unsigned);
+ void setMag(int);
+ void setOffset(int val);
+ void setScale(int);
+
+ signals:
+ void scaleChanged(int);
+ void lscaleChanged(int);
+ void scrollChanged(int);
+ void newPage(int);
+
+ public:
+ ScrollScale(int, int, int, int max, Qt::Orientation,
+ QWidget*, int min = 0, bool i=false, double vv = 10.0);
+ int xmag() const { return scale->value(); }
+ void setXmag(int val) { scale->setValue(val); }
+ void setRange(int, int);
+ void showMag(bool);
+ void setNoScale(bool flag) { noScale = flag; }
+ void setPageButtons(bool flag);
+ void setPage(int n) { _page = n; }
+ int page() const { return _page; }
+ int pages() const { return _pages; }
+ void setPages(int n);
+ int pos() const;
+ int mag() const;
+ int getScaleValue() const { return scaleVal; }
+ void range(int* b, int* e) const { *b = minVal; *e = maxVal; }
+
+ int offset();
+ int pos2offset(int pos);
+ static int getQuickZoomLevel(int mag);
+ static int convertQuickZoomLevelToMag(int zoomlvl);
+ };
+
+#endif
+
diff --git a/muse2/muse/widgets/section.h b/muse2/muse/widgets/section.h
new file mode 100644
index 00000000..7aaa4778
--- /dev/null
+++ b/muse2/muse/widgets/section.h
@@ -0,0 +1,19 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: section.h,v 1.1.1.1 2003/10/27 18:54:27 wschweer Exp $
+// (C) Copyright 2002 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __SECTION_H__
+#define __SECTION_H__
+
+struct Section {
+ int offset;
+ unsigned len;
+ int voff;
+ int val;
+ };
+
+#endif
+
diff --git a/muse2/muse/widgets/shortcutcapturedialog.cpp b/muse2/muse/widgets/shortcutcapturedialog.cpp
new file mode 100644
index 00000000..c33b32bf
--- /dev/null
+++ b/muse2/muse/widgets/shortcutcapturedialog.cpp
@@ -0,0 +1,87 @@
+//
+// C++ Implementation: shortcutcapturedialog
+//
+// Description:
+// Dialog window for capturing keyboard shortcuts
+//
+// Author: Mathias Lundgren <lunar_shuttle@users.sourceforge.net>, (C) 2003
+//
+// Copyright: Mathias Lundgren (lunar_shuttle@users.sourceforge.net) (C) 2003
+//
+//
+#include "shortcutcapturedialog.h"
+#include "shortcuts.h"
+#include <qkeysequence.h>
+#include <qlabel.h>
+#include <qevent.h>
+#include <qpushbutton.h>
+//Added by qt3to4:
+#include <QKeyEvent>
+
+ShortcutCaptureDialog::ShortcutCaptureDialog(QWidget* parent, const char* name, int index)
+ : ShortcutCaptureDialogBase(parent, name, true)
+ {
+ QKeySequence q = QKeySequence(shortcuts[index].key);
+ oshrtLabel->setText(q);
+ connect(okButton, SIGNAL( clicked() ), this, SLOT( apply() ) );
+ connect(cancelButton, SIGNAL(pressed()), this, SLOT(cancel()));
+ shortcutindex = index;
+ grabKeyboard();
+ okButton->setText(tr("Ok"));
+ cancelButton->setText(tr("Cancel"));
+ }
+
+ShortcutCaptureDialog::~ShortcutCaptureDialog()
+ {
+ releaseKeyboard();
+ }
+
+void ShortcutCaptureDialog::keyPressEvent(QKeyEvent* e)
+ {
+ bool shift, alt, ctrl, conflict = false, realkey = false;
+ QString msgString = "";
+ int temp_key;
+ shift = e->state() & Qt::ShiftModifier;
+ ctrl = e->state() & Qt::ControlModifier;
+ alt = e->state() & Qt::AltModifier;
+ //printf("Key total: %d, alt: %d, ctrl: %d shift: %d\n",e->key(), alt, ctrl, shift);
+ temp_key = e->key();
+ temp_key += (shift ? Qt::SHIFT : 0);
+ temp_key += (ctrl ? Qt::CTRL : 0);
+ temp_key += (alt ? Qt::ALT : 0);
+ //printf("Final key assembled: %d\n",temp_key);
+
+ // Check if this is a "real" key that completes a valid shortcut:
+ int k = e->key();
+ if (k < 256 || k == Qt::Key_Enter || k == Qt::Key_Return || (k >= Qt::Key_F1 && k <= Qt::Key_F12) || k == Qt::Key_Home || k == Qt::Key_PageUp
+ || k == Qt::Key_PageDown || k == Qt::Key_End || k == Qt::Key_Insert || k == Qt::Key_Delete) {
+ key = temp_key;
+ realkey = true;
+ QKeySequence q = QKeySequence(key);
+ QString keyString = q;
+ if (keyString != QString::null)
+ nshrtLabel->setText(q);
+
+ // Check against conflicting shortcuts
+ for (int i=0; i < SHRT_NUM_OF_ELEMENTS; i++) {
+ if (shortcuts[i].key == key && (shortcuts[i].type & (shortcuts[shortcutindex].type | GLOBAL_SHRT | INVIS_SHRT))) {
+ msgString = tr("Shortcut conflicts with ") + QString(shortcuts[i].descr);
+ conflict = true;
+ break;
+ }
+ }
+ }
+ messageLabel->setText(msgString);
+ okButton->setEnabled(conflict == false && realkey);
+ if (!realkey)
+ nshrtLabel->setText(tr("Undefined"));
+
+
+ }
+
+void ShortcutCaptureDialog::apply()
+ {
+ //return the shortcut to configurator widget:
+ done(key);
+ }
+
diff --git a/muse2/muse/widgets/shortcutcapturedialog.h b/muse2/muse/widgets/shortcutcapturedialog.h
new file mode 100644
index 00000000..5a16a90f
--- /dev/null
+++ b/muse2/muse/widgets/shortcutcapturedialog.h
@@ -0,0 +1,35 @@
+//
+// C++ Interface: shortcutcapturedialog
+//
+// Description:
+// Dialog window for capturing keyboard shortcuts
+//
+// Author: Mathias Lundgren <lunar_shuttle@users.sourceforge.net>, (C) 2003
+//
+// Copyright: Mathias Lundgren (lunar_shuttle@users.sourceforge.net) (C) 2003
+//
+//
+
+#include "shortcuts.h"
+#include "filedialog.h"
+#include "shortcutcapturedialogbase.h"
+//Added by qt3to4:
+#include <QKeyEvent>
+
+class ShortcutCaptureDialog : public ShortcutCaptureDialogBase
+ {
+ Q_OBJECT
+ private:
+ int shortcutindex;
+ void keyPressEvent(QKeyEvent* e);
+ int key;
+
+ private slots:
+ void apply();
+ void cancel() { reject(); };
+
+ public:
+ ShortcutCaptureDialog(QWidget* parent, const char* name = 0, int index=0);
+ ~ShortcutCaptureDialog();
+ };
+
diff --git a/muse2/muse/widgets/shortcutcapturedialogbase.ui b/muse2/muse/widgets/shortcutcapturedialogbase.ui
new file mode 100644
index 00000000..031c86e1
--- /dev/null
+++ b/muse2/muse/widgets/shortcutcapturedialogbase.ui
@@ -0,0 +1,134 @@
+<!DOCTYPE UI><UI version="3.2" stdsetdef="1">
+<class>ShortcutCaptureDialogBase</class>
+<widget class="QDialog">
+ <property name="name">
+ <cstring>ShortcutCaptureDialogBase</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>323</width>
+ <height>285</height>
+ </rect>
+ </property>
+ <property name="caption">
+ <string>Enter shortcut sequence</string>
+ </property>
+ <property name="modal">
+ <bool>true</bool>
+ </property>
+ <vbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>descrLabel</cstring>
+ </property>
+ <property name="text">
+ <string>Press keys to enter shortcut sequence!</string>
+ </property>
+ <property name="alignment">
+ <set>AlignCenter</set>
+ </property>
+ </widget>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>messageLabel</cstring>
+ </property>
+ <property name="text">
+ <string></string>
+ </property>
+ </widget>
+ <widget class="QLayoutWidget">
+ <property name="name">
+ <cstring>layout11</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>oshrtTextLabel</cstring>
+ </property>
+ <property name="text">
+ <string>Old shortcut:</string>
+ </property>
+ </widget>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>oshrtLabel</cstring>
+ </property>
+ <property name="text">
+ <string>Undefined</string>
+ </property>
+ </widget>
+ </hbox>
+ </widget>
+ <widget class="QLayoutWidget">
+ <property name="name">
+ <cstring>layout12</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>nshrtTextLabel</cstring>
+ </property>
+ <property name="text">
+ <string>New shortcut:</string>
+ </property>
+ </widget>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>nshrtLabel</cstring>
+ </property>
+ <property name="text">
+ <string>Undefined</string>
+ </property>
+ </widget>
+ </hbox>
+ </widget>
+ <widget class="QLayoutWidget">
+ <property name="name">
+ <cstring>layout7</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QPushButton">
+ <property name="name">
+ <cstring>okButton</cstring>
+ </property>
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="text">
+ <string>OK</string>
+ </property>
+ <property name="accel">
+ <string></string>
+ </property>
+ </widget>
+ <widget class="QPushButton">
+ <property name="name">
+ <cstring>cancelButton</cstring>
+ </property>
+ <property name="text">
+ <string>Cancel</string>
+ </property>
+ <property name="accel">
+ <string></string>
+ </property>
+ </widget>
+ </hbox>
+ </widget>
+ </vbox>
+</widget>
+<layoutdefaults spacing="6" margin="11"/>
+</UI>
diff --git a/muse2/muse/widgets/shortcutconfig.cpp b/muse2/muse/widgets/shortcutconfig.cpp
new file mode 100644
index 00000000..b3288e6d
--- /dev/null
+++ b/muse2/muse/widgets/shortcutconfig.cpp
@@ -0,0 +1,115 @@
+//
+// C++ Implementation: 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
+//
+//
+#include <qpushbutton.h>
+#include <qkeysequence.h>
+//Added by qt3to4:
+#include <QCloseEvent>
+#include "shortcutconfig.h"
+#include "shortcutcapturedialog.h"
+#include "shortcuts.h"
+
+ShortcutConfig::ShortcutConfig(QWidget* parent, const char* name)
+ : ShortcutConfigBase(parent, name, true)
+ {
+ connect(cgListView, SIGNAL(selectionChanged(Q3ListViewItem* )),
+ this, SLOT(categorySelChanged(Q3ListViewItem*)));
+ connect(scListView, SIGNAL(selectionChanged(Q3ListViewItem* )),
+ this, SLOT(shortcutSelChanged(Q3ListViewItem*)));
+ connect(defineButton, SIGNAL(pressed()), this, SLOT(assignShortcut()));
+ connect(clearButton, SIGNAL(pressed()), this, SLOT(clearShortcut()));
+ connect(applyButton, SIGNAL(pressed()), this, SLOT(assignAll()));
+
+ current_category = ALL_SHRT;
+ cgListView->setSorting(SHRT_CATEGORY_COL, -1);
+ _config_changed = false;
+
+ //Fill up category listview:
+ SCListViewItem* newItem;
+ for (int i=0; i < SHRT_NUM_OF_CATEGORIES; i++) {
+ newItem = new SCListViewItem(cgListView, i);
+ newItem->setText(SHRT_CATEGORY_COL, shortcut_category[i].name);
+ cgListView->insertItem(newItem);
+ }
+ updateSCListView();
+ }
+
+void ShortcutConfig::updateSCListView(int category)
+ {
+ scListView->clear();
+ SCListViewItem* newItem;
+ for (int i=0; i < SHRT_NUM_OF_ELEMENTS; i++) {
+ if (shortcuts[i].type & category) {
+ newItem = new SCListViewItem(scListView, i);
+ newItem->setText(SHRT_DESCR_COL, tr(shortcuts[i].descr));
+ QKeySequence key = QKeySequence(shortcuts[i].key);
+ newItem->setText(SHRT_SHRTCUT_COL, key);
+ }
+ }
+ }
+
+void ShortcutConfig::assignShortcut()
+ {
+ SCListViewItem* active = (SCListViewItem*) scListView->selectedItem();
+ int shortcutindex = active->getIndex();
+ ShortcutCaptureDialog* sc = new ShortcutCaptureDialog(this, "sccapture", shortcutindex);
+ int key = sc->exec();
+ delete(sc);
+ if (key != Rejected) {
+ shortcuts[shortcutindex].key = key;
+ QKeySequence keySequence = QKeySequence(key);
+ active->setText(SHRT_SHRTCUT_COL, keySequence);
+ _config_changed = true;
+ }
+ clearButton->setEnabled(true);
+ defineButton->setDown(false);
+ }
+
+void ShortcutConfig::clearShortcut()
+ {
+ SCListViewItem* active = (SCListViewItem*) scListView->selectedItem();
+ int shortcutindex = active->getIndex();
+ shortcuts[shortcutindex].key = 0; //Cleared
+ active->setText(SHRT_SHRTCUT_COL,"");
+ clearButton->setDown(false);
+ clearButton->setEnabled(false);
+ _config_changed = true;
+ }
+
+void ShortcutConfig::categorySelChanged(Q3ListViewItem* i)
+ {
+ SCListViewItem* item = (SCListViewItem*) i;
+ current_category = shortcut_category[item->getIndex()].id_flag;
+ updateSCListView(current_category);
+ }
+
+void ShortcutConfig::shortcutSelChanged(Q3ListViewItem* in_item)
+ {
+ defineButton->setEnabled(true);
+ SCListViewItem* active = (SCListViewItem*) in_item;
+ int index = active->getIndex();
+ if (shortcuts[index].key != 0)
+ clearButton->setEnabled(true);
+ else
+ clearButton->setEnabled(false);
+ }
+
+void ShortcutConfig::closeEvent(QCloseEvent* /*e*/) // prevent compiler warning : unused variable
+ {
+ done(_config_changed);
+ }
+
+
+void ShortcutConfig::assignAll()
+ {
+ applyButton->setDown(false);
+ done(_config_changed);
+ }
diff --git a/muse2/muse/widgets/shortcutconfig.h b/muse2/muse/widgets/shortcutconfig.h
new file mode 100644
index 00000000..b1f2857f
--- /dev/null
+++ b/muse2/muse/widgets/shortcutconfig.h
@@ -0,0 +1,61 @@
+//
+// 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 "shortcutconfigbase.h"
+#include <q3listview.h>
+//Added by qt3to4:
+#include <QCloseEvent>
+
+#define SHRT_CATEGORY_COL 0
+enum
+ {
+ SHRT_DESCR_COL = 0,
+ SHRT_SHRTCUT_COL
+ };
+
+class SCListViewItem : public Q3ListViewItem {
+ private:
+ int index;
+
+ public:
+ SCListViewItem(Q3ListView* parent, int i)
+ : Q3ListViewItem(parent), index(i) { }
+ int getIndex() { return index; }
+
+};
+
+
+class ShortcutConfig : public ShortcutConfigBase {
+ Q_OBJECT
+ private:
+ int current_category;
+ void updateSCListView(int category);
+ void updateSCListView() { updateSCListView(current_category); }
+ void closeEvent(QCloseEvent *e);
+
+ private slots:
+ void categorySelChanged(Q3ListViewItem*);
+ void shortcutSelChanged(Q3ListViewItem*);
+ void assignShortcut();
+ void clearShortcut();
+ void assignAll();
+
+
+ public:
+ ShortcutConfig(QWidget* parent, const char* name = 0);
+ bool _config_changed;
+
+};
+
+#endif
diff --git a/muse2/muse/widgets/shortcutconfigbase.ui b/muse2/muse/widgets/shortcutconfigbase.ui
new file mode 100644
index 00000000..2947106c
--- /dev/null
+++ b/muse2/muse/widgets/shortcutconfigbase.ui
@@ -0,0 +1,207 @@
+<!DOCTYPE UI><UI version="3.2" stdsetdef="1">
+<class>ShortcutConfigBase</class>
+<widget class="QDialog">
+ <property name="name">
+ <cstring>ShortcutConfigBase</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>466</width>
+ <height>403</height>
+ </rect>
+ </property>
+ <property name="caption">
+ <string>Configure Keyboard Shortcuts</string>
+ </property>
+ <property name="sizeGripEnabled">
+ <bool>true</bool>
+ </property>
+ <vbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QGroupBox">
+ <property name="name">
+ <cstring>groupBox3</cstring>
+ </property>
+ <property name="margin">
+ <number>0</number>
+ </property>
+ <property name="midLineWidth">
+ <number>0</number>
+ </property>
+ <property name="title">
+ <string></string>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>0</number>
+ </property>
+ <property name="spacing">
+ <number>3</number>
+ </property>
+ <widget class="QListView">
+ <column>
+ <property name="text">
+ <string>Shortcut Category</string>
+ </property>
+ <property name="clickable">
+ <bool>true</bool>
+ </property>
+ <property name="resizable">
+ <bool>false</bool>
+ </property>
+ </column>
+ <property name="name">
+ <cstring>cgListView</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>1</hsizetype>
+ <vsizetype>7</vsizetype>
+ <horstretch>1</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>105</width>
+ <height>200</height>
+ </size>
+ </property>
+ </widget>
+ <widget class="QListView">
+ <column>
+ <property name="text">
+ <string>Description</string>
+ </property>
+ <property name="clickable">
+ <bool>true</bool>
+ </property>
+ <property name="resizable">
+ <bool>true</bool>
+ </property>
+ </column>
+ <column>
+ <property name="text">
+ <string>Shortcut</string>
+ </property>
+ <property name="clickable">
+ <bool>true</bool>
+ </property>
+ <property name="resizable">
+ <bool>true</bool>
+ </property>
+ </column>
+ <property name="name">
+ <cstring>scListView</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>7</vsizetype>
+ <horstretch>2</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>170</width>
+ <height>230</height>
+ </size>
+ </property>
+ </widget>
+ </hbox>
+ </widget>
+ <widget class="QLayoutWidget">
+ <property name="name">
+ <cstring>layout5</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <spacer>
+ <property name="name">
+ <cstring>spacer3</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>150</width>
+ <height>21</height>
+ </size>
+ </property>
+ </spacer>
+ <widget class="QPushButton">
+ <property name="name">
+ <cstring>clearButton</cstring>
+ </property>
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="text">
+ <string>&amp;Clear</string>
+ </property>
+ <property name="accel">
+ <string>Alt+C</string>
+ </property>
+ </widget>
+ <widget class="QPushButton">
+ <property name="name">
+ <cstring>defineButton</cstring>
+ </property>
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="text">
+ <string>&amp;Define</string>
+ </property>
+ <property name="accel">
+ <string>Alt+D</string>
+ </property>
+ </widget>
+ <spacer>
+ <property name="name">
+ <cstring>spacer2</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>30</width>
+ <height>21</height>
+ </size>
+ </property>
+ </spacer>
+ <widget class="QPushButton">
+ <property name="name">
+ <cstring>applyButton</cstring>
+ </property>
+ <property name="text">
+ <string>&amp;Apply</string>
+ </property>
+ <property name="accel">
+ <string>Alt+A</string>
+ </property>
+ </widget>
+ </hbox>
+ </widget>
+ </vbox>
+</widget>
+<layoutdefaults spacing="6" margin="11"/>
+</UI>
diff --git a/muse2/muse/widgets/sigedit.cpp b/muse2/muse/widgets/sigedit.cpp
new file mode 100644
index 00000000..4d8c30b4
--- /dev/null
+++ b/muse2/muse/widgets/sigedit.cpp
@@ -0,0 +1,755 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: sigedit.cpp,v 1.1.1.1.2.1 2004/12/28 23:23:51 lunar_shuttle Exp $
+// (C) Copyright 2001 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include "sigedit.h"
+
+#include <stdio.h>
+#include <q3rangecontrol.h>
+#include <qapplication.h>
+#include <qpixmap.h>
+#include <qapplication.h>
+#include <q3valuelist.h>
+#include <qstring.h>
+#include <qstyle.h>
+//Added by qt3to4:
+#include <QTimerEvent>
+#include <QPaintEvent>
+#include <QResizeEvent>
+#include <QMouseEvent>
+#include <QKeyEvent>
+#include <QEvent>
+#include <values.h>
+#include <qpainter.h>
+#include <qtimer.h>
+#include "sig.h"
+
+extern int mtcType;
+
+bool Sig::isValid() const
+{
+ if((z < 1) || (z > 63))
+ return false;
+
+ switch(n)
+ {
+ case 1:
+ case 2:
+ case 3:
+ case 4:
+ case 8:
+ case 16:
+ case 32:
+ case 64:
+ case 128:
+ return true;
+ default:
+ return false;
+ }
+}
+
+
+//---------------------------------------------------------
+// NumberSection
+//---------------------------------------------------------
+
+class NumberSection
+ {
+ int selstart;
+ int selend;
+
+ public:
+ NumberSection(int selStart = 0, int selEnd = 0)
+ : selstart(selStart), selend(selEnd ) {}
+ int selectionStart() const { return selstart; }
+ void setSelectionStart(int s) { selstart = s; }
+ int selectionEnd() const { return selend; }
+ void setSelectionEnd( int s ) { selend = s; }
+ int width() const { return selend - selstart; }
+ };
+
+//---------------------------------------------------------
+// SigEditor
+//---------------------------------------------------------
+
+class SigEditor : public QWidget
+ {
+ SigEdit* cw;
+ bool frm;
+ QPixmap *pm;
+ int focusSec;
+ Q3ValueList<NumberSection> sections;
+ int offset;
+
+ int section(const QPoint&);
+
+ protected:
+ void init();
+ bool event(QEvent *e);
+ void resizeEvent(QResizeEvent*);
+ void paintEvent(QPaintEvent*);
+ void mousePressEvent(QMouseEvent *e);
+ void applyFocusSelection() {}
+
+ public:
+ SigEditor(SigEdit* parent, const char* name);
+ ~SigEditor();
+
+ void setControlWidget(SigEdit * widget);
+ SigEdit* controlWidget() const;
+
+ int focusSection() const { return focusSec; }
+
+ bool setFocusSection(int s);
+ void appendSection(const NumberSection& sec);
+ void clearSections();
+ void setSectionSelection(int sec, int selstart, int selend);
+ bool eventFilter(QObject *o, QEvent *e);
+ };
+
+//---------------------------------------------------------
+// section
+//---------------------------------------------------------
+
+int SigEditor::section(const QPoint& pt)
+ {
+ if (pm->isNull())
+ return -1;
+ QPainter p(pm);
+ int fw = frm ? style()->pixelMetric(QStyle::PM_DefaultFrameWidth) : 0;
+ int x = 2 + fw;
+ int y = 0;
+ int w = width();
+ int h = height();
+ for (unsigned int i = 0; i < sections.count(); ++i) {
+ QString s = cw->sectionFormattedText(i);
+ QRect bb = p.boundingRect(x, y, w, h, Qt::AlignVCenter|Qt::AlignLeft, s);
+ int nx = bb.x() + bb.width();
+ if (pt.x() >= x && pt.x() < nx)
+ return i;
+ x = nx;
+ if (i < sections.count()-1) {
+ QString s("/");
+ p.drawText(x, y, w, h, Qt::AlignVCenter|Qt::AlignLeft, s, -1, &bb);
+ x = bb.x() + bb.width();
+ }
+ }
+ return -1;
+ }
+
+//---------------------------------------------------------
+// SigEditor
+//---------------------------------------------------------
+
+SigEditor::SigEditor(SigEdit* parent, const char* name)
+ : QWidget(parent, name)
+ {
+ cw = parent;
+ frm = true;
+ focusSec = 0;
+ pm = new QPixmap;
+ offset = 0;
+ init();
+ }
+
+//---------------------------------------------------------
+// ~SigEditor
+//---------------------------------------------------------
+
+SigEditor::~SigEditor()
+ {
+ delete pm;
+ }
+
+//---------------------------------------------------------
+// init
+//---------------------------------------------------------
+
+void SigEditor::init()
+ {
+ setBackgroundMode(Qt::PaletteBase);
+ setFocusSection(-1);
+ setKeyCompression(true);
+ installEventFilter(this);
+ setFocusPolicy(Qt::WheelFocus);
+ }
+
+//---------------------------------------------------------
+// event
+//---------------------------------------------------------
+
+bool SigEditor::event(QEvent *e)
+ {
+ if (e->type() == QEvent::FocusIn || e->type() == QEvent::FocusOut) {
+ repaint( rect(), false);
+ }
+ else if (e->type() == QEvent::ShortcutOverride) {
+ QKeyEvent* ke = (QKeyEvent*) e;
+ switch (ke->key()) {
+ case Qt::Key_Delete:
+ case Qt::Key_Backspace:
+ case Qt::Key_Up:
+ case Qt::Key_Down:
+ case Qt::Key_Left:
+ case Qt::Key_Right:
+ ke->accept();
+ default:
+ break;
+ }
+ }
+ return QWidget::event(e);
+ }
+
+void SigEditor::resizeEvent(QResizeEvent *e)
+ {
+ pm->resize(e->size());
+ QWidget::resizeEvent(e);
+ }
+
+//---------------------------------------------------------
+// paintEvent
+//---------------------------------------------------------
+
+void SigEditor::paintEvent(QPaintEvent *)
+ {
+ if (pm->isNull())
+ return;
+
+ const QColorGroup & cg = colorGroup();
+ QPainter p(pm);
+ p.setPen(colorGroup().text());
+ QBrush bg = cg.brush(QColorGroup::Base);
+
+ int fw = frm ? style()->pixelMetric(QStyle::PM_DefaultFrameWidth) : 0;
+ int x = 2 + fw;
+ int y = 0;
+ int w = width();
+ int h = height();
+ p.fillRect(0, 0, w, h, bg);
+
+ for (unsigned int i = 0; i < sections.count(); ++i) {
+ QRect bb;
+ QString s = cw->sectionFormattedText(i);
+
+ if (hasFocus() && (int(i) == focusSec)) {
+ QBrush bg = cg.brush(QColorGroup::Highlight);
+ QRect r = p.boundingRect(x, y, w, h, Qt::AlignVCenter|Qt::AlignLeft, s, -1);
+ p.setPen(colorGroup().highlightedText());
+ p.fillRect(r, bg);
+ }
+ else
+ p.setPen(colorGroup().text());
+ p.drawText(x, y, w, h, Qt::AlignVCenter|Qt::AlignLeft, s, -1, &bb);
+ x = bb.x() + bb.width();
+ if (i < sections.count()-1) {
+ QString s("/");
+ p.drawText(x, y, w, h, Qt::AlignVCenter|Qt::AlignLeft, s, -1, &bb);
+ x = bb.x() + bb.width();
+ }
+ }
+ p.end();
+ bitBlt(this, 0, 0, pm);
+ }
+
+//---------------------------------------------------------
+// mousePressEvent
+//---------------------------------------------------------
+
+void SigEditor::mousePressEvent(QMouseEvent *e)
+ {
+ QPoint p(e->pos().x(), 0);
+ int sec = section(p);
+ if (sec != -1) {
+ cw->setFocusSection(sec);
+ repaint(rect(), false);
+ }
+ }
+
+//---------------------------------------------------------
+// eventFilter
+//---------------------------------------------------------
+
+bool SigEditor::eventFilter(QObject *o, QEvent *e)
+ {
+ if (o != this)
+ return false;
+ if (e->type() != QEvent::KeyPress )
+ return false;
+
+ QKeyEvent *ke = (QKeyEvent*)e;
+ switch (ke->key()) {
+ case Qt::Key_Right:
+ if (unsigned(focusSec) <= sections.count()) {
+ if (cw->setFocusSection(focusSec+1))
+ repaint(rect(), false);
+ }
+ return true;
+ case Qt::Key_Left:
+ if (focusSec > 0 ) {
+ if (cw->setFocusSection(focusSec-1))
+ repaint(rect(), false);
+ }
+ return true;
+ case Qt::Key_Up:
+ cw->stepUp();
+ return true;
+ case Qt::Key_Down:
+ cw->stepDown();
+ return true;
+ case Qt::Key_Backspace:
+ case Qt::Key_Delete:
+ cw->removeLastNumber(focusSec);
+ return true;
+ case Qt::Key_Enter:
+ case Qt::Key_Return:
+ cw->enterPressed();
+ return true;
+ default:
+ QString txt = ke->text();
+ if (!txt.isEmpty() && txt[0] == '/') {
+ // do the same thing as KEY_RIGHT when the user presses the separator key
+ if (focusSec < (signed)(sections.count())) {
+ if (cw->setFocusSection(focusSec+1))
+ repaint(rect(), false);
+ }
+ return true;
+ }
+ int num = txt[0].digitValue();
+
+ //printf("SigEditor::eventFilter num:%d\n", num);
+
+ if (num != -1) {
+ cw->addNumber(focusSec, num);
+ return true;
+ }
+ }
+ return false;
+ }
+
+void SigEditor::appendSection(const NumberSection& sec)
+ {
+ sections.append(sec);
+ }
+void SigEditor::clearSections()
+ {
+ sections.clear();
+ }
+
+//---------------------------------------------------------
+// setSectionSelection
+//---------------------------------------------------------
+
+void SigEditor::setSectionSelection(int secNo, int selstart, int selend)
+ {
+ if (secNo < 0 || secNo > (int)sections.count())
+ return;
+ sections[secNo].setSelectionStart(selstart);
+ sections[secNo].setSelectionEnd(selend);
+ }
+
+//---------------------------------------------------------
+// setFocusSection
+//---------------------------------------------------------
+
+bool SigEditor::setFocusSection(int idx)
+ {
+ if (idx > (int)sections.count()-1 || idx < 0)
+ return false;
+ if (idx != focusSec) {
+ focusSec = idx;
+ applyFocusSelection();
+ return true;
+ }
+ return false;
+ }
+
+//---------------------------------------------------------
+// SigEdit
+//---------------------------------------------------------
+
+SigEdit::SigEdit(QWidget* parent, const char* name)
+ : QWidget(parent, name)
+ {
+ init();
+ updateButtons();
+ }
+
+SigEdit::~SigEdit()
+ {
+ }
+
+//---------------------------------------------------------
+// init
+//---------------------------------------------------------
+
+void SigEdit::init()
+ {
+ ed = new SigEditor(this, "pos editor");
+ controls = new Q3SpinWidget(this, "pos edit controls");
+ controls->setEditWidget(ed);
+ setFocusProxy(ed);
+ connect(controls, SIGNAL(stepUpPressed()), SLOT(stepUp()));
+ connect(controls, SIGNAL(stepDownPressed()), SLOT(stepDown()));
+ connect(this, SIGNAL(valueChanged(int,int)),SLOT(updateButtons()));
+
+ overwrite = false;
+ timerId = 0;
+ typing = false;
+ changed = false;
+ adv = false;
+
+ sec[0].offset = 0;
+ sec[0].len = 2;
+ sec[0].val = 4;
+ sec[0].voff = 0;
+ sec[1].offset = 3;
+ sec[1].len = 3;
+ sec[1].val = 4;
+ sec[1].voff = 0;
+ ed->clearSections();
+ ed->appendSection(NumberSection(0,0));
+ ed->appendSection(NumberSection(0,0));
+ setSizePolicy(QSizePolicy(QSizePolicy::Minimum, QSizePolicy::Fixed));
+ }
+
+//---------------------------------------------------------
+// setValue
+//---------------------------------------------------------
+
+void SigEdit::setValue(const Sig& sig)
+ {
+ sec[0].val = sig.z;
+ sec[1].val = sig.n;
+ changed = false;
+ ed->repaint(ed->rect(), false);
+ }
+
+void SigEdit::setValue(const QString& s)
+ {
+ int z, n;
+ sscanf(s.latin1(), "%d/%d", &z, &n);
+ Sig sig(z, n);
+ setValue(sig);
+ }
+
+Sig SigEdit::sig() const
+ {
+ Sig sig(sec[0].val, sec[1].val);
+ return sig;
+ }
+
+bool SigEdit::event(QEvent *e)
+ {
+ if (e->type() == QEvent::FocusOut) {
+ typing = false;
+ if (changed) {
+ emit valueChanged(sig().z, sig().n);
+ changed = false;
+ }
+ }
+ return QWidget::event(e);
+ }
+
+void SigEdit::timerEvent(QTimerEvent *)
+ {
+ overwrite = true;
+ }
+
+//---------------------------------------------------------
+// stepUp
+//---------------------------------------------------------
+
+void SigEdit::stepUp()
+ {
+ bool accepted = false;
+ int secNo = ed->focusSection();
+ int val = sec[secNo].val;
+ if (secNo == 0) {
+ if (val < 63) {
+ ++val;
+ accepted = true;
+ }
+ }
+ else {
+ accepted = true;
+ switch(val) {
+ case 1: val = 2; break;
+ case 2: val = 3; break;
+ case 3: val = 4; break;
+ case 4: val = 8; break;
+ case 8: val = 16; break;
+ case 16: val = 32; break;
+ case 32: val = 64; break;
+ case 64: val = 128; break;
+ case 128: accepted = false; break;
+ }
+ }
+ if (accepted) {
+ setSec(secNo, val);
+ changed = true;
+ emit valueChanged(sec[0].val, sec[1].val);
+ }
+ ed->repaint(ed->rect(), false);
+ }
+
+//---------------------------------------------------------
+// stepDown
+//---------------------------------------------------------
+
+void SigEdit::stepDown()
+ {
+ bool accepted = false;
+ int secNo = ed->focusSection();
+ int val = sec[secNo].val;
+ if (secNo == 0) {
+ if (val > 1) {
+ --val;
+ accepted = true;
+ }
+ }
+ else {
+ accepted = true;
+ switch(val) {
+ case 1: accepted = false; break;
+ case 2: val = 1; break;
+ case 3: val = 2; break;
+ case 4: val = 3; break;
+ case 8: val = 4; break;
+ case 16: val = 8; break;
+ case 32: val = 16; break;
+ case 64: val = 32; break;
+ case 128: val = 64; break;
+ }
+ }
+ if (accepted) {
+ setSec(secNo, val);
+ changed = true;
+ emit valueChanged(sec[0].val, sec[1].val);
+ }
+ ed->repaint(ed->rect(), false);
+ }
+
+//---------------------------------------------------------
+// sectionFormattedText
+// Returns the formatted number for section sec.
+//---------------------------------------------------------
+
+QString SigEdit::sectionFormattedText(int secNo)
+ {
+ QString txt = sectionText(secNo);
+
+ int so = sec[secNo].offset;
+ int len = sec[secNo].len;
+ int eo = so + len;
+
+ if (typing && secNo == ed->focusSection())
+ ed->setSectionSelection(secNo, eo - txt.length(), eo);
+ else
+ ed->setSectionSelection(secNo, so, eo);
+ if (secNo == 0)
+ txt = txt.rightJustify(len, ' ');
+// else
+// txt = txt.leftJustify(len, ' ');
+ return txt;
+ }
+
+//---------------------------------------------------------
+// setFocusSection
+//---------------------------------------------------------
+
+bool SigEdit::setFocusSection(int s)
+ {
+ if (s != ed->focusSection()) {
+ killTimer(timerId);
+ overwrite = true;
+ typing = false;
+ int so = sec[s].offset;
+ int eo = so + sec[s].len;
+ ed->setSectionSelection(s, so, eo);
+ if (changed) {
+ emit valueChanged(sig().z, sig().n);
+ changed = false;
+ }
+ }
+ return ed->setFocusSection(s);
+ }
+
+//---------------------------------------------------------
+// setSec
+//---------------------------------------------------------
+
+void SigEdit::setSec(int secNo, int val)
+ {
+ sec[secNo].val = val;
+ }
+
+//---------------------------------------------------------
+// sectionText
+// Returns the text of section \a sec.
+//---------------------------------------------------------
+
+QString SigEdit::sectionText(int secNo)
+ {
+ return QString::number(sec[secNo].val + sec[secNo].voff);
+ }
+
+//---------------------------------------------------------
+// outOfRange
+// return true if out of range
+//---------------------------------------------------------
+
+bool SigEdit::outOfRange(int secNo, int val) const
+ {
+ if (secNo == 0)
+ return ((val < 1) || (val > 63));
+ switch (val) {
+ case 1:
+ case 2:
+ case 3:
+ case 4:
+ case 8:
+ case 16:
+ case 32:
+ case 64:
+ case 128:
+ // Changed p3.3.43
+ //return true;
+ return false;
+ default:
+ // Changed p3.3.43
+ //return false;
+ return true;
+ }
+ }
+
+//---------------------------------------------------------
+// addNumber
+//---------------------------------------------------------
+
+void SigEdit::addNumber(int secNo, int num)
+ {
+ if (secNo == -1)
+ return;
+ killTimer(timerId);
+ bool accepted = false;
+ typing = true;
+ int voff = sec[secNo].voff;
+
+ QString txt = sectionText(secNo);
+
+ //printf("SigEdit::addNumber secNo:%d num:%d voff:%d txt:%s\n", secNo, num, voff, txt.latin1());
+
+ if (txt.length() == sec[secNo].len) {
+ //printf("SigEdit::addNumber txt.length() == sec[secNo].len (%d)\n", sec[secNo].len);
+
+ if (!outOfRange(secNo, num - voff)) {
+ //printf("SigEdit::addNumber accepted\n");
+
+ accepted = true;
+ sec[secNo].val = num - voff;
+ }
+ }
+ else {
+ //printf("SigEdit::addNumber txt.length() != sec[secNo].len (%d)\n", sec[secNo].len);
+
+ txt += QString::number(num);
+ int temp = txt.toInt() - voff;
+ if (outOfRange(secNo, temp))
+ {
+ //printf("SigEdit::addNumber not accepted secNo:%d txt:%s temp:%d\n", secNo, txt.latin1(), temp);
+
+ txt = sectionText(secNo);
+ }
+ else {
+ //printf("SigEdit::addNumber accepted\n");
+
+ accepted = true;
+ sec[secNo].val = temp;
+ }
+ if (adv && (txt.length() == sec[secNo].len)) {
+ setFocusSection(ed->focusSection() + 1);
+ }
+ }
+ changed = accepted;
+ if (accepted)
+ emit valueChanged(sig().z, sig().n);
+ timerId = startTimer(qApp->doubleClickInterval()*4);
+ ed->repaint(ed->rect(), false);
+ }
+
+//---------------------------------------------------------
+// removeLastNumber
+//---------------------------------------------------------
+
+void SigEdit::removeLastNumber(int secNo)
+ {
+ if (secNo == -1)
+ return;
+ QString txt = QString::number(sec[secNo].val);
+ txt = txt.mid(0, txt.length() - 1);
+ sec[secNo].val = txt.toInt() - sec[secNo].voff;
+ ed->repaint(ed->rect(), false);
+ }
+
+//---------------------------------------------------------
+// resizeEvent
+//---------------------------------------------------------
+
+void SigEdit::resizeEvent(QResizeEvent *)
+ {
+ controls->resize(width(), height());
+ }
+
+//---------------------------------------------------------
+// sizeHint
+//---------------------------------------------------------
+
+QSize SigEdit::sizeHint() const
+ {
+ QFontMetrics fm(font());
+ int fw = style()->pixelMetric(QStyle::PM_DefaultFrameWidth, 0, this); // ddskrjo
+ int h = fm.height() + fw * 2;
+ int w = 2 + controls->upRect().width() + fw * 4;
+ w += fm.width('9') * 5 + fm.width('/');
+ return QSize(w, h).expandedTo(QApplication::globalStrut());
+ }
+
+//---------------------------------------------------------
+// updateButtons
+//---------------------------------------------------------
+
+void SigEdit::updateButtons()
+ {
+ int secNo = ed->focusSection();
+ int val = sec[secNo].val;
+
+ bool upEnabled;
+ bool downEnabled;
+
+ if (secNo == 0) {
+ upEnabled = val < 63;
+ downEnabled = val > 1;
+ }
+ else {
+ upEnabled = true;
+ downEnabled = true;
+ switch (val) {
+ case 1: downEnabled = false; break;
+ case 128: upEnabled = false; break;
+ }
+ }
+ controls->setUpEnabled(isEnabled() && upEnabled);
+ controls->setDownEnabled(isEnabled() && downEnabled);
+ }
+
+//---------------------------------------------------------
+// enterPressed
+//! emit returnPressed
+//---------------------------------------------------------
+void SigEdit::enterPressed()
+ {
+ emit returnPressed();
+ }
diff --git a/muse2/muse/widgets/sigedit.h b/muse2/muse/widgets/sigedit.h
new file mode 100644
index 00000000..f600c44f
--- /dev/null
+++ b/muse2/muse/widgets/sigedit.h
@@ -0,0 +1,90 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: sigedit.h,v 1.1.1.1.2.1 2004/12/28 23:23:51 lunar_shuttle Exp $
+// (C) Copyright 2002 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __SIGEDIT_H__
+#define __SIGEDIT_H__
+
+#include <qwidget.h>
+#include <qstring.h>
+//Added by qt3to4:
+#include <QResizeEvent>
+#include <QTimerEvent>
+#include <QEvent>
+
+class SigEditor;
+class Q3SpinWidget;
+
+struct Sig {
+ int z;
+ int n;
+ public:
+ Sig(int _z, int _n) : z(_z), n(_n) {}
+ bool isValid() const;
+ };
+
+#include "section.h"
+
+//---------------------------------------------------------
+// SigEdit
+//---------------------------------------------------------
+
+class SigEdit : public QWidget
+ {
+ Q_OBJECT
+ void init();
+
+ QString sectionText(int sec);
+ Section sec[2];
+
+ bool adv;
+ bool overwrite;
+ int timerId;
+ bool typing;
+ bool changed;
+ SigEditor *ed;
+ Q3SpinWidget* controls;
+
+ private slots:
+ void stepUp();
+ void stepDown();
+
+ signals:
+ void valueChanged(int, int);
+ void returnPressed();
+
+ protected:
+ bool event(QEvent *e );
+ void timerEvent(QTimerEvent* e);
+ void resizeEvent(QResizeEvent*);
+ QString sectionFormattedText(int sec);
+ void addNumber(int sec, int num);
+ void removeLastNumber(int sec);
+ bool setFocusSection(int s);
+
+ virtual bool outOfRange(int, int) const;
+ virtual void setSec(int, int);
+ friend class SigEditor;
+
+ protected slots:
+ void updateButtons();
+
+ public slots:
+ virtual void setValue(const Sig& sig);
+ void setValue(const QString& s);
+
+ public:
+ SigEdit(QWidget*, const char* = 0);
+ ~SigEdit();
+
+ QSize sizeHint() const;
+ Sig sig() const;
+ virtual void setAutoAdvance(bool advance) { adv = advance; }
+ bool autoAdvance() const { return adv; }
+ void enterPressed();
+ };
+
+#endif
diff --git a/muse2/muse/widgets/siglabel.cpp b/muse2/muse/widgets/siglabel.cpp
new file mode 100644
index 00000000..54338ab6
--- /dev/null
+++ b/muse2/muse/widgets/siglabel.cpp
@@ -0,0 +1,157 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: siglabel.cpp,v 1.1.1.1 2003/10/27 18:54:28 wschweer Exp $
+// (C) Copyright 1999 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include "siglabel.h"
+#include <stdio.h>
+
+#define TIMER1 400
+#define TIMER2 200
+#define TIMEC 7
+#define TIMER3 100
+#define TIMEC2 20
+#define TIMER4 50
+
+#include "globals.h"
+//Added by qt3to4:
+#include <QMouseEvent>
+#include <QWheelEvent>
+#include <QLabel>
+
+//---------------------------------------------------------
+// SigLabel
+// edit Signature Values (4/4)
+//---------------------------------------------------------
+
+SigLabel::SigLabel(int a, int b, QWidget* parent) : QLabel(parent)
+ {
+ z = n = 0;
+ setFocusPolicy(Qt::NoFocus);
+ setAlignment(Qt::AlignCenter);
+ setValue(a, b);
+ }
+
+//---------------------------------------------------------
+// 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/muse2/muse/widgets/siglabel.h b/muse2/muse/widgets/siglabel.h
new file mode 100644
index 00000000..4f93a7b8
--- /dev/null
+++ b/muse2/muse/widgets/siglabel.h
@@ -0,0 +1,42 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: siglabel.h,v 1.1.1.1 2003/10/27 18:54:56 wschweer Exp $
+// (C) Copyright 1999 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __SIGLABEL_H__
+#define __SIGLABEL_H__
+
+#include <qlabel.h>
+//Added by qt3to4:
+#include <QWheelEvent>
+#include <QMouseEvent>
+
+//---------------------------------------------------------
+// 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(int z, int n, QWidget*);
+ void value(int& a, int& b) const { a = z; b = n; }
+ void setFrame(bool);
+ };
+#endif
+
diff --git a/muse2/muse/widgets/sigscale.cpp b/muse2/muse/widgets/sigscale.cpp
new file mode 100644
index 00000000..2735d8d2
--- /dev/null
+++ b/muse2/muse/widgets/sigscale.cpp
@@ -0,0 +1,152 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: sigscale.cpp,v 1.6 2004/04/11 13:03:32 wschweer Exp $
+// (C) Copyright 1999 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include <values.h>
+
+#include <qpainter.h>
+#include <qtooltip.h>
+//Added by qt3to4:
+#include <QEvent>
+#include <QMouseEvent>
+
+#include "globals.h"
+#include "midieditor.h"
+#include "sigscale.h"
+#include "song.h"
+#include "gconfig.h"
+
+//---------------------------------------------------------
+// SigScale
+//---------------------------------------------------------
+
+SigScale::SigScale(int* r, QWidget* parent, int xs)
+ : View(parent, xs, 1)
+ {
+ QToolTip::add(this, tr("signature scale"));
+ raster = r;
+ pos[0] = song->cpos();
+ pos[1] = song->lpos();
+ pos[2] = song->rpos();
+ button = Qt::NoButton;
+ setMouseTracking(true);
+ connect(song, SIGNAL(posChanged(int, unsigned, bool)), this, SLOT(setPos(int, unsigned, bool)));
+ setFixedHeight(18);
+ }
+
+//---------------------------------------------------------
+// setPos
+//---------------------------------------------------------
+
+void SigScale::setPos(int idx, unsigned val, bool)
+ {
+ if (val == pos[idx])
+ return;
+ unsigned opos = mapx(pos[idx]);
+ pos[idx] = val;
+ if (!isVisible())
+ return;
+ val = mapx(val);
+ int x = -9;
+ int w = 18;
+ if (opos > val) {
+ w += opos - val;
+ x += val;
+ }
+ else {
+ w += val - opos;
+ x += opos;
+ }
+ redraw(QRect(x, 0, w, height()));
+ }
+
+void SigScale::viewMousePressEvent(QMouseEvent* event)
+ {
+ button = event->button();
+ viewMouseMoveEvent(event);
+ }
+
+void SigScale::viewMouseReleaseEvent(QMouseEvent*)
+ {
+ button = Qt::NoButton;
+ }
+
+void SigScale::viewMouseMoveEvent(QMouseEvent* event)
+ {
+ int x = sigmap.raster(event->x(), *raster);
+ emit timeChanged(x);
+ int i;
+ switch (button) {
+ case Qt::LeftButton:
+ i = 0;
+ break;
+ case Qt::MidButton:
+ i = 1;
+ break;
+ case Qt::RightButton:
+ i = 2;
+ break;
+ default:
+ return;
+ }
+ Pos p(x, true);
+ song->setPos(i, p);
+ }
+
+//---------------------------------------------------------
+// leaveEvent
+//---------------------------------------------------------
+
+void SigScale::leaveEvent(QEvent*)
+ {
+// emit timeChanged(MAXINT);
+ }
+
+//---------------------------------------------------------
+// draw
+//---------------------------------------------------------
+
+void SigScale::pdraw(QPainter& p, const QRect& r)
+ {
+ int x = r.x();
+ int w = r.width();
+ int h = height();
+
+ if (x < 0)
+ x = 0;
+ p.setFont(config.fonts[3]);
+ for (ciSigEvent si = sigmap.begin(); si != sigmap.end(); ++si) {
+ SigEvent* e = si->second;
+ int xp = mapx(e->tick);
+ if (xp > x+w)
+ break;
+ if (xp+40 < x)
+ continue;
+ p.drawLine(xp, 0, xp, h/2);
+ p.drawLine(xp, h/2, xp+5, h/2);
+ QString s;
+ s.sprintf("%d/%d", e->z, e->n);
+ p.drawText(xp+8, h-6, s);
+ }
+
+ //---------------------------------------------------
+ // draw location marker
+ //---------------------------------------------------
+
+ p.setPen(Qt::red);
+ int xp = mapx(pos[0]);
+ if (xp >= x && xp < x+w)
+ p.drawLine(xp, 0, xp, h);
+ p.setPen(Qt::blue);
+ xp = mapx(pos[1]);
+ if (xp >= x && xp < x+w)
+ p.drawLine(xp, 0, xp, h);
+ xp = mapx(pos[2]);
+ if (xp >= x && xp < x+w)
+ p.drawLine(xp, 0, xp, h);
+ }
+
+
diff --git a/muse2/muse/widgets/sigscale.h b/muse2/muse/widgets/sigscale.h
new file mode 100644
index 00000000..d66d9a73
--- /dev/null
+++ b/muse2/muse/widgets/sigscale.h
@@ -0,0 +1,50 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: sigscale.h,v 1.2 2004/01/11 18:55:37 wschweer Exp $
+// (C) Copyright 1999 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __SIGSCALE_H__
+#define __SIGSCALE_H__
+
+#include "view.h"
+//Added by qt3to4:
+#include <QEvent>
+#include <QMouseEvent>
+
+class QPainter;
+class MidiEditor;
+
+//---------------------------------------------------------
+// SigScale
+// Time Signature Scale
+//---------------------------------------------------------
+
+class SigScale : public View {
+ Q_OBJECT
+ int* raster;
+ unsigned pos[3];
+ int button;
+
+ signals:
+ void posChanged(unsigned, unsigned);
+
+ protected:
+ virtual void pdraw(QPainter&, const QRect&);
+ virtual void viewMousePressEvent(QMouseEvent* event);
+ virtual void viewMouseMoveEvent(QMouseEvent* event);
+ virtual void viewMouseReleaseEvent(QMouseEvent* event);
+ virtual void leaveEvent(QEvent*e);
+
+ signals:
+ void timeChanged(unsigned);
+
+ public slots:
+ void setPos(int, unsigned, bool);
+
+ public:
+ SigScale(int* raster, QWidget* parent, int xscale);
+ };
+#endif
+
diff --git a/muse2/muse/widgets/slider.cpp b/muse2/muse/widgets/slider.cpp
new file mode 100644
index 00000000..f93cadc1
--- /dev/null
+++ b/muse2/muse/widgets/slider.cpp
@@ -0,0 +1,930 @@
+#include <cmath>
+#include "mmath.h"
+#include <qdrawutil.h>
+#include <qpainter.h>
+#include <qcursor.h>
+//Added by qt3to4:
+#include <QPaintEvent>
+#include <QResizeEvent>
+
+#include "slider.h"
+
+//-------------------------------------------------------------
+// Slider - The Slider Widget
+//
+// Slider is a slider widget which operates on an interval
+// of type double. Slider supports different layouts as
+// well as a scale.
+//------------------------------------------------------------
+
+//------------------------------------------------------------
+//.F Slider::Slider
+//
+// Constructor
+//
+//.u Syntax:
+//.f Slider::Slider(QWidget *parent, const char *name, Orientation orient = Horizontal, ScalePos scalePos = None, int bgStyle = BgTrough)
+//
+//.u Parameters
+//.p
+// QWidget *parent -- parent widget
+// const char *name -- The Widget's name. Default = 0.
+// Orientation Orient -- Orientation of the slider. Can be Slider::Horizontal
+// or Slider::Vertical.
+// Defaults to Horizontal.
+// ScalePos scalePos -- Position of the scale. Can be Slider::None,
+// Slider::Left, Slider::Right, Slider::Top,
+// or Slider::Bottom. Defaults to Slider::None.
+// int bgStyle -- Background style. Slider::BgTrough draws the
+// slider button in a trough, Slider::BgSlot draws
+// a slot underneath the button. An or-combination of both
+// may also be used. The default is Slider::BgTrough.
+//------------------------------------------------------------
+
+Slider::Slider(QWidget *parent, const char *name,
+ Qt::Orientation orient, ScalePos scalePos, int bgStyle)
+ : SliderBase(parent,name)
+ {
+ if (bgStyle == BgSlot) {
+ d_thumbLength = 16;
+ d_thumbHalf = 8;
+ d_thumbWidth = 30;
+ }
+ else {
+ d_thumbLength = 30;
+ d_thumbHalf = 15;
+ d_thumbWidth = 16;
+ }
+
+ d_borderWidth = 2;
+ d_scaleDist = 4;
+ d_scaleStep = 0.0;
+ d_scalePos = scalePos;
+ d_xMargin = 0;
+ d_yMargin = 0;
+ d_bgStyle = bgStyle;
+
+ if (bgStyle & BgTrough)
+ d_bwTrough = d_borderWidth;
+ else
+ d_bwTrough = 0;
+
+ d_sliderRect.setRect(0, 0, 8, 8);
+ setOrientation(orient);
+ }
+
+//------------------------------------------------------------
+//.F Slider::~Slider
+// Destructor
+//.u Syntax
+//.f Slider::~Slider()
+//------------------------------------------------------------
+
+Slider::~Slider()
+ {
+ }
+
+//------------------------------------------------------------
+//
+//.F Slider::setBorderWidth
+// Change the slider's border width
+//
+//.u Syntax
+//.f void Slider::setBorderWidth(int bd)
+//
+//.u Parameters
+//.p int bd -- border width
+//
+//------------------------------------------------------------
+
+void Slider::setBorderWidth(int bd)
+{
+ d_borderWidth = qwtMin(qwtMax(bd,0),10);
+ if (d_bgStyle & BgTrough)
+ d_bwTrough = d_borderWidth;
+ else
+ d_bwTrough = 0;
+}
+
+//----------------------------------------------------
+//
+//.F Slider::setThumbLength
+//
+// Set the slider's thumb length
+//
+//.u Syntax
+// void Slider::setThumbLength(int l)
+//
+//.u Parameters
+//.p int l -- new length
+//
+//-----------------------------------------------------
+void Slider::setThumbLength(int l)
+{
+ d_thumbLength = qwtMax(l,8);
+ d_thumbHalf = d_thumbLength / 2;
+ resize(size());
+}
+
+//------------------------------------------------------------
+//
+//.F Slider::setThumbWidth
+// Change the width of the thumb
+//
+//.u Syntax
+//.p void Slider::setThumbWidth(int w)
+//
+//.u Parameters
+//.p int w -- new width
+//
+//------------------------------------------------------------
+void Slider::setThumbWidth(int w)
+{
+ d_thumbWidth = qwtMax(w,4);
+ resize(size());
+}
+
+
+//------------------------------------------------------------
+//.-
+//.F Slider::scaleChange
+// Notify changed scale
+//
+//.u Syntax
+//.f void Slider::scaleChange()
+//
+//.u Description
+// Called by QwtScaledWidget
+//
+//------------------------------------------------------------
+void Slider::scaleChange()
+{
+ if (!hasUserScale())
+ d_scale.setScale(minValue(), maxValue(), d_maxMajor, d_maxMinor);
+ update();
+}
+
+
+//------------------------------------------------------------
+//.-
+//.F Slider::fontChange
+// Notify change in font
+//
+//.u Syntax
+//.f Slider::fontChange(const QFont &oldFont)
+//
+//------------------------------------------------------------
+void Slider::fontChange(const QFont & /*oldFont*/)
+{
+ repaint(FALSE);
+}
+
+//------------------------------------------------------------
+// drawSlider
+// Draw the slider into the specified rectangle.
+//------------------------------------------------------------
+
+void Slider::drawSlider(QPainter *p, const QRect &r)
+ {
+ QColorGroup g = colorGroup();
+ QBrush brBack(g.background());
+ QBrush brMid;
+ QBrush brDark(g.dark());
+
+ QRect cr;
+
+ int ipos,dist1;
+ double rpos;
+ int lineDist;
+
+ if (d_bwTrough > 0) {
+ qDrawShadePanel(p, r.x(), r.y(),
+ r.width(), r.height(),
+ g, TRUE, d_bwTrough,0);
+ cr.setRect(r.x() + d_bwTrough,
+ r.y() + d_bwTrough,
+ r.width() - 2*d_bwTrough,
+ r.height() - 2*d_bwTrough);
+ brMid = QBrush(g.mid());
+ }
+ else {
+ cr = r;
+ brMid = brBack;
+ }
+
+ rpos = (value() - minValue()) / (maxValue() - minValue());
+
+ lineDist = d_borderWidth - 1;
+ if (lineDist < 1) lineDist = 1;
+
+ if (d_orient == Qt::Horizontal)
+ {
+
+ dist1 = int(double(cr.width() - d_thumbLength) * rpos);
+ ipos = cr.x() + dist1;
+ markerPos = ipos + d_thumbHalf;
+
+ //
+ // draw background
+ //
+ if (d_bgStyle & BgSlot)
+ {
+ drawHsBgSlot(p, cr, QRect(ipos, cr.y(), d_thumbLength, cr.height()), brMid);
+ }
+ else
+ {
+ p->fillRect(cr.x(),cr.y(),dist1,cr.height(),brMid);
+ p->fillRect(ipos + d_thumbLength, cr.y(),
+ cr.width() - d_thumbLength - dist1, cr.height(),brMid);
+ }
+
+ //
+ // Draw thumb
+ //
+ qDrawShadePanel(p,ipos, cr.y(), d_thumbLength, cr.height(),
+ colorGroup(), FALSE, d_borderWidth, &brBack);
+
+ if (lineDist > 1)
+ qDrawShadeLine(p,markerPos, cr.y() + lineDist , markerPos,
+ cr.y() + cr.height() - lineDist,
+ colorGroup(), TRUE, 1);
+ else
+ {
+ p->setPen(g.dark());
+ p->drawLine(markerPos -1 , cr.y() + lineDist, markerPos -1,
+ cr.y() + cr.height() - lineDist - 1);
+ p->setPen(g.light());
+ p->drawLine(markerPos, cr.y() + lineDist, markerPos,
+ cr.y() + cr.height() - lineDist - 1);
+ }
+
+
+ }
+ else
+ {
+ dist1 = int(double(cr.height() - d_thumbLength) * (1.0 - rpos));
+ ipos = cr.y() + dist1;
+ markerPos = ipos + d_thumbHalf;
+
+ if ( d_bgStyle & BgSlot)
+ {
+ drawVsBgSlot(p, cr, QRect(cr.left(), ipos, cr.width(),
+ d_thumbLength), brMid);
+ }
+ else
+ {
+ p->fillRect(cr.x(),cr.y(),cr.width(),ipos,brMid);
+ p->fillRect(cr.x(), ipos + d_thumbLength, cr.width(),
+ cr.height() - d_thumbLength - dist1, brMid);
+ }
+
+ qDrawShadePanel(p,cr.x(),ipos , cr.width(), d_thumbLength,
+ colorGroup(),FALSE,d_borderWidth, &brBack);
+ if (lineDist > 1)
+ qDrawShadeLine(p, cr.x() + lineDist , markerPos,
+ cr.x() + cr.width() - lineDist, markerPos,
+ colorGroup(), TRUE, 1);
+ else {
+
+ p->setPen(g.dark());
+ p->drawLine(cr.x() + lineDist, markerPos - 1 ,
+ cr.x() + cr.width() - lineDist - 1, markerPos - 1);
+ p->setPen(g.light());
+ p->drawLine(cr.x() + lineDist, markerPos,
+ cr.x() + cr.width() - lineDist - 1 , markerPos);
+ }
+ }
+
+}
+
+//------------------------------------------------------------
+//.-
+//.F Slider::drawSlotBg
+//
+//
+//.u Syntax
+//.f void Slider::drawSlotBg(QPainter *p, const QRect &rBound, const QRect &rThumb, const QRect &rSlot, const QBrush &brBack)
+//
+//.u Parameters
+//.p QPainter *p, const QRect &rBound, const QRect &rThumb, const QRect &rSlot, const QBrush &brBack
+//
+//------------------------------------------------------------
+void Slider::drawHsBgSlot(QPainter *p, const QRect &rBound, const QRect &rThumb, const QBrush &brBack)
+{
+ int ws, ds, dLeft;
+ int lPos, rPos;
+ QRect rSlot;
+ const QColorGroup &g = colorGroup();
+
+ ws = rBound.height();
+ if ((ws / 2) * 2 != ws)
+ ws = 5;
+ else
+ ws = 4;
+
+ ds = qwtMax(1, d_thumbLength/2 - 4);
+ dLeft = rThumb.left() - rBound.left();
+
+ rSlot = QRect(rBound.x() + ds, rBound.y() + (rBound.height() - ws) / 2,
+ rBound.width() - 2 * ds, ws);
+
+ rPos = qwtMin(rSlot.x(), rThumb.left());
+
+ if (rThumb.left() > rBound.x())
+ {
+ p->fillRect(rBound.x(),rBound.y(),dLeft, rSlot.top() - rBound.top(), brBack);
+ p->fillRect(rBound.x(),rSlot.bottom() + 1,dLeft,
+ rBound.bottom() - rSlot.bottom(),brBack);
+ if (rPos > rBound.left())
+ p->fillRect(rBound.x(),rSlot.y(),
+ rPos - rBound.left(),ws,brBack);
+
+ p->setPen(g.dark());
+ if (rSlot.x() < rThumb.left())
+ p->drawLine(rSlot.x(), rSlot.bottom(), rSlot.x(), rSlot.top());
+ if (rSlot.x() < rThumb.left() - 1)
+ {
+ p->drawLine(rSlot.x(), rSlot.top(), rThumb.left() - 1, rSlot.top());
+ p->setPen(g.light());
+ p->drawLine(rSlot.x() + 1, rSlot.bottom(),
+ rThumb.left() - 1, rSlot.bottom());
+
+ p->fillRect(rSlot.x() + 1, rSlot.y() + 1, dLeft - ds -1,
+ rSlot.height() -2, QBrush(Qt::black));
+
+ }
+ }
+
+ lPos = qwtMax(rSlot.right(), rThumb.right()) + 1;
+ if (rThumb.right() < rBound.right())
+ {
+ p->fillRect(rThumb.right() + 1,rBound.y(),rBound.right() - rThumb.right(),
+ rSlot.top() - rBound.top(), brBack);
+ p->fillRect(rThumb.right() + 1,rSlot.bottom() + 1,
+ rBound.right() - rThumb.right(),
+ rBound.bottom() - rSlot.bottom(),brBack);
+ if (lPos <= rBound.right())
+ p->fillRect(lPos, rSlot.y() , rBound.right() - lPos + 1, ws ,brBack);
+
+ p->setPen(g.dark());
+ if (rSlot.right() > rThumb.right())
+ {
+ p->drawLine(rThumb.right() + 1, rSlot.top(), rSlot.right(), rSlot.top());
+ p->setPen(g.light());
+ p->drawLine(rSlot.right(), rSlot.bottom(), rSlot.right(), rSlot.top() + 1);
+ }
+
+ if (rSlot.right() > rThumb.right() + 1)
+ {
+ p->setPen(g.light());
+ p->drawLine(rThumb.right() + 1, rSlot.bottom(),
+ rSlot.right() -1, rSlot.bottom());
+ p->fillRect(rThumb.right() + 1, rSlot.y() + 1,
+ rSlot.right() - rThumb.right() - 1,
+ rSlot.height() -2, QBrush(Qt::black));
+ }
+ }
+
+}
+
+//------------------------------------------------------------
+//.-
+//.F Slider::drawVsBgSlot
+//
+//
+//.u Syntax
+//.f void Slider::drawVsBgSlot(QPainter *p, const QRect &rBound, const QRect &rThumb, const QBrush &brBack)
+//
+//.u Parameters
+//.p QPainter *p, const QRect &rBound, const QRect &rThumb, const QBrush &brBack
+//
+//.u Return Value
+//
+//.u Description
+//
+//------------------------------------------------------------
+void Slider::drawVsBgSlot(QPainter *p, const QRect &rBound, const QRect &rThumb, const QBrush &brBack)
+{
+
+ int ws, ds, dTop;
+ int lPos, hPos;
+ QRect rSlot;
+ const QColorGroup &g = colorGroup();
+
+ ws = rBound.width();
+ if ((ws / 2) * 2 != ws)
+ ws = 5;
+ else
+ ws = 4;
+
+ ds = qwtMax(1, d_thumbLength/2 - 4);
+ dTop = rThumb.top() - rBound.top();
+
+ rSlot = QRect(rBound.x() + (rBound.width() - ws) / 2, rBound.y() + ds,
+ ws, rBound.height() - 2 * ds);
+
+ hPos = qwtMin(rSlot.y(), rThumb.top());
+
+ if (rThumb.top() > rBound.top())
+ {
+ p->fillRect(rBound.x(),rBound.y(), rSlot.left() - rBound.left(),dTop, brBack);
+ p->fillRect(rSlot.right() + 1, rBound.y(),
+ rBound.right() - rSlot.right(), dTop,brBack);
+ if (hPos > rBound.top())
+ p->fillRect(rSlot.x(),rBound.y(), ws,
+ hPos - rBound.top(),brBack);
+
+ p->setPen(g.dark());
+ if (rSlot.top() < rThumb.top())
+ p->drawLine(rSlot.left(), rSlot.top(), rSlot.right(), rSlot.top());
+
+
+ if (rSlot.top() < rThumb.top() - 1)
+ {
+ p->drawLine(rSlot.left(), rThumb.top() - 1, rSlot.left(), rSlot.top());
+ p->setPen(g.light());
+ p->drawLine(rSlot.right(), rSlot.top() + 1, rSlot.right(),
+ rThumb.top() - 1);
+
+ p->fillRect(rSlot.x() + 1, rSlot.y() + 1, rSlot.width() - 2,
+ dTop - ds -1, QBrush(Qt::black));
+
+ }
+ }
+
+ lPos = qwtMax(rSlot.bottom(), rThumb.bottom()) + 1;
+ if (rThumb.bottom() < rBound.bottom())
+ {
+ p->fillRect(rBound.left(), rThumb.bottom() + 1,
+ rSlot.left() - rBound.left(),
+ rBound.bottom() - rThumb.bottom(), brBack);
+ p->fillRect(rSlot.right() + 1, rThumb.bottom() + 1,
+ rBound.right() - rSlot.right(),
+ rBound.bottom() - rThumb.bottom(), brBack);
+ if (lPos <= rBound.bottom())
+ p->fillRect(rSlot.left(), lPos, ws, rBound.bottom() - lPos + 1, brBack);
+
+ p->setPen(g.dark());
+ if (rSlot.bottom() > rThumb.bottom())
+ {
+ p->drawLine(rSlot.left(), rThumb.bottom() + 1, rSlot.left(), rSlot.bottom());
+ p->setPen(g.light());
+ p->drawLine(rSlot.left() * 1, rSlot.bottom(), rSlot.right(), rSlot.bottom());
+ }
+
+ if (rSlot.bottom() > rThumb.bottom() + 1)
+ {
+ p->setPen(g.light());
+ p->drawLine(rSlot.right(), rThumb.bottom() + 1, rSlot.right(),
+ rSlot.bottom());
+ p->fillRect(rSlot.left() + 1, rThumb.bottom() + 1,
+ rSlot.width() - 2, rSlot.bottom() - rThumb.bottom() - 1,
+ QBrush(Qt::black));
+ }
+ }
+
+}
+
+//------------------------------------------------------------
+//.-
+//.F Slider::getValue
+// Determine the value corresponding to a specified
+// mouse location.
+//
+//.u Syntax
+//.f double Slider::getValue(const QPoint &p)
+//
+//.u Parameters
+//.p const QPoint &p --
+//
+//.u Description
+// Called by SliderBase
+//------------------------------------------------------------
+double Slider::getValue( const QPoint &p)
+{
+ double rv;
+ int pos;
+ QRect r = d_sliderRect;
+
+ r.setLeft(r.left() + d_bwTrough);
+ r.setRight(r.right() - d_bwTrough);
+ r.setTop(r.top() - d_bwTrough);
+ r.setBottom(r.bottom() - d_bwTrough);
+
+ if (d_orient == Qt::Horizontal)
+ {
+
+ if (r.width() <= d_thumbLength)
+ {
+ rv = 0.5 * (minValue() + maxValue());
+ }
+ else
+ {
+ pos = p.x() - r.x() - d_thumbHalf;
+ rv = minValue() +
+ rint( (maxValue() - minValue()) * double(pos)
+ / double(r.width() - d_thumbLength)
+ / step() ) * step();
+ }
+
+ }
+ else
+ {
+ if (r.height() <= d_thumbLength)
+ {
+ rv = 0.5 * (minValue() + maxValue());
+ }
+ else
+ {
+ pos = p.y() - r.y() - d_thumbHalf;
+ rv = minValue() +
+ rint( (maxValue() - minValue()) *
+ (1.0 - double(pos)
+ / double(r.height() - d_thumbLength))
+ / step() ) * step();
+ }
+
+ }
+
+ return(rv);
+}
+
+
+//------------------------------------------------------------
+//.-
+//.F Slider::getScrollMode
+// Determine scrolling mode and direction
+//
+//.u Syntax
+//.f void Slider::getScrollMode( const QPoint &p, int &scrollMode, int &direction )
+//
+//.u Parameters
+//.p const QPoint &p -- point
+//
+//.u Description
+// Called by SliderBase
+//
+//------------------------------------------------------------
+void Slider::getScrollMode( QPoint &p, const Qt::ButtonState &button, int &scrollMode, int &direction )
+{
+ if(cursorHoming() && button == Qt::LeftButton)
+ {
+ if(d_sliderRect.contains(p))
+ {
+ scrollMode = ScrMouse;
+ direction = 0;
+
+ int mp = 0;
+ QRect cr;
+ QPoint cp;
+ int ipos,dist1;
+ double rpos;
+ int lineDist;
+
+ if(d_bwTrough > 0)
+ cr.setRect(d_sliderRect.x() + d_bwTrough,
+ d_sliderRect.y() + d_bwTrough,
+ d_sliderRect.width() - 2*d_bwTrough,
+ d_sliderRect.height() - 2*d_bwTrough);
+ else
+ cr = d_sliderRect;
+
+ rpos = (value() - minValue()) / (maxValue() - minValue());
+
+ lineDist = d_borderWidth - 1;
+ if(lineDist < 1) lineDist = 1;
+
+ if(d_orient == Qt::Horizontal)
+ {
+ dist1 = int(double(cr.width() - d_thumbLength) * rpos);
+ ipos = cr.x() + dist1;
+ mp = ipos + d_thumbHalf;
+
+ p.setX(mp);
+ cp = mapToGlobal( QPoint(mp, p.y()) );
+ }
+ else
+ {
+ dist1 = int(double(cr.height() - d_thumbLength) * (1.0 - rpos));
+ ipos = cr.y() + dist1;
+ mp = ipos + d_thumbHalf;
+ p.setY(mp);
+ cp = mapToGlobal( QPoint(p.x(), mp) );
+ }
+ cursor().setPos(cp.x(), cp.y());
+ }
+ }
+ else
+ {
+ int currentPos;
+ if (d_orient == Qt::Horizontal)
+ currentPos = p.x();
+ else
+ currentPos = p.y();
+
+ if (d_sliderRect.contains(p))
+ {
+ if ((currentPos > markerPos - d_thumbHalf)
+ && (currentPos < markerPos + d_thumbHalf))
+ {
+ scrollMode = ScrMouse;
+ direction = 0;
+ }
+ else
+ {
+ scrollMode = ScrPage;
+ if (((currentPos > markerPos) && (d_orient == Qt::Horizontal))
+ || ((currentPos <= markerPos) && (d_orient != Qt::Horizontal)))
+ direction = 1;
+ else
+ direction = -1;
+ }
+ }
+ else
+ {
+ scrollMode = ScrNone;
+ direction = 0;
+ }
+
+ }
+}
+
+//------------------------------------------------------------
+//.F Slider::paintEvent
+// Qt paint event
+//
+//.u Syntax
+//.f void Slider::paintEvent(QPaintEvent *e)
+//------------------------------------------------------------
+
+void Slider::paintEvent(QPaintEvent* /*e*/)
+ {
+ QPainter p;
+
+ if (p.begin(this)) {
+ if (d_scalePos != None) {
+ p.fillRect(this->rect(), this->backgroundColor());
+ d_scale.draw(&p);
+ }
+ drawSlider(&p, d_sliderRect);
+ }
+ p.end();
+ }
+
+//------------------------------------------------------------
+//.F Slider::resizeEvent
+// Qt resize event
+//
+//.u Parameters
+//.p QResizeEvent *e
+//
+//.u Syntax
+//.f void Slider::resizeEvent(QResizeEvent *e)
+//------------------------------------------------------------
+
+void Slider::resizeEvent(QResizeEvent *e)
+{
+
+ d_resized = TRUE;
+ QSize s = e->size();
+ int sliderWidth = d_thumbWidth + 2 * d_bwTrough;
+
+ // reposition slider
+ if(d_orient == Qt::Horizontal)
+ {
+ switch(d_scalePos)
+ {
+ case Top:
+
+ d_sliderRect.setRect(this->rect().x() + d_xMargin,
+ this->rect().y() + s.height() - 1
+ - d_yMargin - sliderWidth,
+ s.width() - 2 * d_xMargin,
+ sliderWidth);
+ d_scale.setGeometry(d_sliderRect.x() + d_bwTrough + d_thumbHalf,
+ d_sliderRect.y() - d_scaleDist,
+ d_sliderRect.width() - d_thumbLength - 2*d_bwTrough,
+ ScaleDraw::Top);
+
+ break;
+
+ case Bottom:
+
+ d_sliderRect.setRect(this->rect().x() + d_xMargin,
+ this->rect().y() + d_yMargin,
+ s.width() - 2*d_xMargin,
+ sliderWidth);
+ d_scale.setGeometry(d_sliderRect.x() + d_bwTrough + d_thumbHalf,
+ d_sliderRect.y() + d_sliderRect.height() + d_scaleDist,
+ d_sliderRect.width() - d_thumbLength - 2*d_bwTrough,
+ ScaleDraw::Bottom);
+
+ break;
+
+ default:
+ d_sliderRect.setRect(this->rect().x(), this->rect().x(),
+ s.width(), s.height());
+ break;
+ }
+ }
+ else
+ {
+ switch(d_scalePos)
+ {
+ case Left:
+ d_sliderRect.setRect(this->rect().x() + s.width()
+ - sliderWidth - 1 - d_xMargin,
+ this->rect().y() + d_yMargin,
+ sliderWidth,
+ s.height() - 2 * d_yMargin);
+ d_scale.setGeometry(d_sliderRect.x() - d_scaleDist,
+ d_sliderRect.y() + d_thumbHalf + d_bwTrough,
+ s.height() - d_thumbLength - 2*d_bwTrough,
+ ScaleDraw::Left);
+
+ break;
+ case Right:
+ d_sliderRect.setRect(this->rect().x() + d_xMargin,
+ this->rect().y() + d_yMargin,
+ sliderWidth,
+ s.height() - 2* d_yMargin);
+ d_scale.setGeometry(this->rect().x() + d_sliderRect.width()
+ + d_scaleDist,
+ d_sliderRect.y() + d_thumbHalf + d_bwTrough,
+ s.height() - d_thumbLength - 2*d_bwTrough,
+ ScaleDraw::Right);
+ break;
+ default:
+ d_sliderRect.setRect(this->rect().x(), this->rect().x(),
+ s.width(), s.height());
+ break;
+ }
+ }
+
+}
+
+//------------------------------------------------------------
+//.-
+//.F Slider::valueChange
+// Notify change of value
+//
+//.u Syntax
+//.f void Slider::valueChange()
+//
+//------------------------------------------------------------
+
+void Slider::valueChange()
+ {
+ QPainter p;
+
+ p.begin(this);
+ drawSlider(&p, d_sliderRect);
+ p.end();
+
+ SliderBase::valueChange();
+ }
+
+//------------------------------------------------------------
+//.-
+//.F Slider::rangeChange
+// Notify change of range
+//
+//.u Description
+//
+//.u Syntax
+//.f void Slider::rangeChange()
+//
+//------------------------------------------------------------
+void Slider::rangeChange()
+{
+ if (!hasUserScale())
+ d_scale.setScale(minValue(), maxValue(), d_maxMajor, d_maxMinor);
+ SliderBase::rangeChange();
+ repaint(FALSE);
+}
+
+//------------------------------------------------------------
+//
+//.F Slider::setMargins
+// Set distances between the widget's border and
+// internals.
+//
+//.u Syntax
+//.f void Slider::setMargins(int hor, int vert)
+//
+//.u Parameters
+//.p int hor, int vert -- Margins
+//
+//------------------------------------------------------------
+void Slider::setMargins(int hor, int vert)
+{
+ d_xMargin = qwtMax(0, hor);
+ d_yMargin = qwtMin(0, vert);
+ resize(this->size());
+}
+
+//------------------------------------------------------------
+//
+//.F Slider::sizeHint
+// Return a recommended size
+//
+//.u Syntax
+//.f QSize Slider::sizeHint() const
+//
+//.u Note
+// The return value of sizeHint() depends on the font and the
+// scale.
+//------------------------------------------------------------
+
+QSize Slider::sizeHint() //const ddskrjo
+ {
+ QPainter p;
+ int msWidth = 0, msHeight = 0;
+
+ int w = 40;
+ int h = 40;
+ if (d_scalePos != None) {
+ if (p.begin(this)) {
+ msWidth = d_scale.maxWidth(&p, FALSE);
+ msHeight = d_scale.maxHeight(&p);
+ }
+ p.end();
+
+ switch(d_orient) {
+ case Qt::Vertical:
+ w = 2*d_xMargin + d_thumbWidth + 2*d_bwTrough + msWidth + d_scaleDist + 2;
+ break;
+ case Qt::Horizontal:
+ h = 2*d_yMargin + d_thumbWidth + 2*d_bwTrough + msHeight + d_scaleDist;
+ break;
+ }
+ }
+ else { // no scale
+ switch(d_orient) {
+ case Qt::Vertical:
+ w = 16 + 2 * d_bwTrough;
+ break;
+ case Qt::Horizontal:
+ h = 16 + 2 * d_bwTrough;
+ break;
+ }
+ }
+ return QSize(w, h);
+ }
+
+//---------------------------------------------------------
+// setOrientation
+//---------------------------------------------------------
+
+void Slider::setOrientation(Qt::Orientation o)
+ {
+ d_orient = o;
+ ScaleDraw::OrientationX so = ScaleDraw::Bottom;
+ switch(d_orient) {
+ case Qt::Vertical:
+ if (d_scalePos == Right)
+ so = ScaleDraw::Right;
+ else
+ so = ScaleDraw::Left;
+ break;
+ case Qt::Horizontal:
+ if (d_scalePos == Bottom)
+ so = ScaleDraw::Bottom;
+ else
+ so = ScaleDraw::Top;
+ break;
+ }
+
+ d_scale.setGeometry(0, 0, 40, so);
+ if (d_orient == Qt::Vertical)
+ setMinimumSize(10,20);
+ else
+ setMinimumSize(20,10);
+ QRect r = geometry();
+ setGeometry(r.x(), r.y(), r.height(), r.width());
+ update();
+ }
+
+Qt::Orientation Slider::orientation() const
+ {
+ return d_orient;
+ }
+
+double Slider::lineStep() const
+ {
+ return 1.0;
+ }
+
+double Slider::pageStep() const
+ {
+ return 1.0;
+ }
+
+void Slider::setLineStep(double)
+ {
+ }
+
+void Slider::setPageStep(double)
+ {
+ }
+
diff --git a/muse2/muse/widgets/slider.h b/muse2/muse/widgets/slider.h
new file mode 100644
index 00000000..499229e1
--- /dev/null
+++ b/muse2/muse/widgets/slider.h
@@ -0,0 +1,98 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: slider.h,v 1.3.2.2 2008/01/19 13:33:47 wschweer Exp $
+//
+// Copyright (C) 1997 Josef Wilgen
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License, version 2,
+// as published by the Free Software Foundation.
+//
+// (C) Copyright 1999 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __SLIDER_H__
+#define __SLIDER_H__
+
+#include "sclif.h"
+#include "sliderbase.h"
+#include "scldraw.h"
+//Added by qt3to4:
+#include <QResizeEvent>
+#include <QPaintEvent>
+
+//---------------------------------------------------------
+// Slider
+//---------------------------------------------------------
+
+class Slider : public SliderBase, public ScaleIf
+ {
+ Q_OBJECT
+
+ public:
+ enum ScalePos { None, Left, Right, Top, Bottom };
+ enum { BgTrough = 0x1, BgSlot = 0x2 };
+
+ private:
+ Q_PROPERTY( double lineStep READ lineStep WRITE setLineStep )
+ Q_PROPERTY( double pageStep READ pageStep WRITE setPageStep )
+ Q_PROPERTY( Qt::Orientation orientation READ orientation WRITE setOrientation )
+
+ QRect d_sliderRect;
+
+ int d_thumbLength;
+ int d_thumbHalf;
+ int d_thumbWidth;
+ int d_borderWidth;
+ int d_bwTrough;
+ int d_scaleDist;
+ int d_xMargin;
+ int d_yMargin;
+
+ int d_resized;
+ bool d_autoResize;
+ double d_scaleStep;
+
+ Qt::Orientation d_orient;
+ ScalePos d_scalePos;
+ int d_bgStyle;
+ int markerPos;
+
+ void drawHsBgSlot(QPainter *, const QRect&, const QRect&,const QBrush&);
+ void drawVsBgSlot(QPainter *, const QRect&, const QRect&,const QBrush&);
+
+ protected:
+ virtual void drawSlider (QPainter *p, const QRect &r);
+ double getValue(const QPoint &p);
+ void getScrollMode( QPoint &p, const Qt::ButtonState &button, int &scrollMode, int &direction);
+ void resizeEvent(QResizeEvent *e);
+ void paintEvent (QPaintEvent *e);
+ void valueChange();
+ void rangeChange();
+ void scaleChange();
+ void fontChange(const QFont &oldFont);
+
+ public:
+ Slider(QWidget *parent, const char *name = 0,
+ Qt::Orientation orient = Qt::Vertical,
+ ScalePos scalePos = None,
+ int bgStyle = BgTrough);
+
+ ~Slider();
+ void setThumbLength(int l);
+ void setThumbWidth(int w);
+
+ void setOrientation(Qt::Orientation o);
+ Qt::Orientation orientation() const;
+
+ double lineStep() const;
+ double pageStep() const;
+
+ void setLineStep(double);
+ void setPageStep(double);
+
+ void setBorderWidth(int bw);
+ void setMargins(int x, int y);
+ QSize sizeHint(); // const;
+ };
+#endif
diff --git a/muse2/muse/widgets/sliderbase.cpp b/muse2/muse/widgets/sliderbase.cpp
new file mode 100644
index 00000000..0d814d3c
--- /dev/null
+++ b/muse2/muse/widgets/sliderbase.cpp
@@ -0,0 +1,726 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: sliderbase.cpp,v 1.4.2.4 2007/01/27 14:52:43 spamatica Exp $
+
+// Copyright (C) 1997 Josef Wilgen
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License, version 2,
+// as published by the Free Software Foundation.
+//
+// (C) Copyright 1999 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include <cmath>
+#include "sliderbase.h"
+#include "mmath.h"
+//Added by qt3to4:
+#include <QWheelEvent>
+#include <QMouseEvent>
+#include <QTimerEvent>
+
+// DESCRIPTION
+// SliderBase is a base class for
+// slider widgets. QwtSliderBase handles the mouse events
+// and updates the slider's value accordingly. Derived classes
+// only have to implement the @QwtSliderBase::getValue@ and
+// @QwtSliderBase::getScrollMode@ members, and should react to a
+// @QwtSliderbase::valueChange@, which normally requires repainting.
+
+//------------------------------------------------------------
+//.F SliderBase::SliderBase
+// Constructor
+//
+//.u Syntax
+//.f SliderBase::SliderBase(QWidget *parent, const char *name)
+//
+//.u Parameters
+//.p QWidget *parent, const char *name
+//
+//------------------------------------------------------------
+
+SliderBase::SliderBase(QWidget *parent, const char *name)
+: QWidget(parent, name)
+ {
+ _id = -1;
+ _cursorHoming = false;
+ _ignoreMouseMove = false;
+ d_tmrID = 0;
+ d_updTime = 150;
+ d_mass = 0.0;
+ d_tracking = true;
+ d_mouseOffset = 0.0;
+ d_scrollMode = ScrNone;
+ setRange(0.0, 1.0, 0.1);
+ }
+
+//------------------------------------------------------------
+//.F SliderBase::~SliderBase
+// Destructor
+//
+//.u Syntax
+//.f SliderBase::~SliderBase()
+//------------------------------------------------------------
+
+SliderBase::~SliderBase()
+ {
+ if (d_tmrID)
+ killTimer(d_tmrID);
+ }
+
+
+//------------------------------------------------------------
+//.F void SliderBase::wheelEvent(QWheelEvent *e)
+// Add wheel event handling
+//
+//.u Syntax
+//.f void SliderBase::wheelEvent(QWheelEvent *e)
+//------------------------------------------------------------
+void SliderBase::wheelEvent(QWheelEvent *e)
+{
+ // Avoid unwanted wheel events from outside the control.
+ // Just in case it grabs focus somehow.
+ // Tested: No go, can't seem to determine where event came from.
+ /*
+ const QPoint gp = mapToGlobal(e->pos());
+ const QRect gr = QRect(mapToGlobal(rect().topLeft()), mapToGlobal(rect().bottomRight()));
+ if(!gr.contains(gp))
+ {
+ e->ignore();
+ return;
+ } */
+
+ e->accept();
+
+ float inc = (maxValue() - minValue()) / 40;
+ if (e->state() == Qt::ShiftModifier)
+ inc = inc / 10;
+
+ if(inc < step())
+ inc = step();
+
+ if(e->delta() > 0)
+ setValue(value()+inc);
+ else
+ setValue(value()-inc);
+
+ emit sliderMoved(value(), _id);
+}
+
+
+//------------------------------------------------------------
+//.F SliderBase::stopMoving
+// Stop updating if automatic scrolling is active
+//
+//.u Syntax
+//.f void SliderBase::stopMoving()
+//------------------------------------------------------------
+
+void SliderBase::stopMoving()
+ {
+ if(d_tmrID) {
+ killTimer(d_tmrID);
+ d_tmrID = 0;
+ }
+ }
+
+//------------------------------------------------------------
+//.F SliderBase::setUpdateTime
+// Specify the update interval for automatic scrolling
+//
+//.u Syntax
+//.f void SliderBase::setUpdateTime(int t)
+//
+//.u Parameters
+//.p int t -- update interval in milliseconds
+//
+//.u See also
+// @SliderBase::getScrollMode@
+//------------------------------------------------------------
+
+void SliderBase::setUpdateTime(int t)
+ {
+ if (t < 50)
+ t = 50;
+ d_updTime = t;
+ }
+
+//------------------------------------------------------------
+//.F SliderBase::mousePressEvent
+// Mouse press event handler
+//
+//.u Syntax
+//.f void SliderBase::mousePressEvent(QMouseEvent *e)
+//
+//.u Parameters
+//.p QMouseEvent *e -- Qt Mouse press event
+//------------------------------------------------------------
+
+void SliderBase::mousePressEvent(QMouseEvent *e)
+ {
+ QPoint p = e->pos();
+ const Qt::ButtonState button = e->button();
+ d_timerTick = 0;
+
+ getScrollMode(p, button, d_scrollMode, d_direction);
+ stopMoving();
+
+ switch(d_scrollMode) {
+ case ScrPage:
+ case ScrTimer:
+ d_mouseOffset = 0;
+ DoubleRange::incPages(d_direction);
+ emit sliderMoved(value(), _id);
+ d_tmrID = startTimer(qwtMax(250, 2 * d_updTime));
+ break;
+
+ case ScrMouse:
+ d_speed = 0;
+ if(button == Qt::RightButton)
+ {
+ emit sliderRightClicked(e->globalPos(), _id);
+ break;
+ }
+ d_time.start();
+ if(_cursorHoming && button == Qt::LeftButton)
+ {
+ _ignoreMouseMove = true;
+ d_mouseOffset = 0.0;
+ }
+ else
+ d_mouseOffset = getValue(p) - value();
+
+ emit sliderPressed(_id);
+ break;
+
+ default:
+ d_mouseOffset = 0;
+ d_direction = 0;
+ break;
+ }
+ }
+
+
+//------------------------------------------------------------
+//.-
+//.F SliderBase::buttonRelease
+// Emit a valueChanged() signal if necessary
+//
+//.u Syntax
+//.f void SliderBase::buttonReleased()
+//
+//------------------------------------------------------------
+void SliderBase::buttonReleased()
+{
+ if ((!d_tracking) || (value() != prevValue()))
+ emit valueChanged(value(), _id);
+}
+
+
+//------------------------------------------------------------
+//
+//.F SliderBase::mouseReleaseEvent
+// Mouse Release Event handler
+//
+//.u Syntax
+//.f void SliderBase::mouseReleaseEvent(QMouseEvent *e)
+//
+//.u Parameters
+//.p QMouseEvent *e -- Qt Mouse Event
+//
+//------------------------------------------------------------
+void SliderBase::mouseReleaseEvent(QMouseEvent *e)
+{
+ int ms = 0;
+ /*double inc = step(); */ // prevent compiler warning: unused variable
+ _ignoreMouseMove = false;
+ const Qt::ButtonState button = e->button();
+
+ switch(d_scrollMode)
+ {
+
+ case ScrMouse:
+
+ if(button == Qt::RightButton)
+ {
+ d_scrollMode = ScrNone;
+ break;
+ }
+ if(_cursorHoming && button == Qt::LeftButton)
+ d_scrollMode = ScrNone;
+ else
+ {
+ setPosition(e->pos());
+ d_direction = 0;
+ d_mouseOffset = 0;
+ if (d_mass > 0.0)
+ {
+ ms = d_time.elapsed();
+ if ((fabs(d_speed) > 0.0) && (ms < 50))
+ d_tmrID = startTimer(d_updTime);
+ }
+ else
+ {
+ d_scrollMode = ScrNone;
+ buttonReleased();
+ }
+ }
+ emit sliderReleased(_id);
+
+ break;
+
+ case ScrDirect:
+
+ setPosition(e->pos());
+ d_direction = 0;
+ d_mouseOffset = 0;
+ d_scrollMode = ScrNone;
+ buttonReleased();
+ break;
+
+ case ScrPage:
+ stopMoving();
+ d_timerTick = 0;
+ buttonReleased();
+ d_scrollMode = ScrNone;
+ break;
+
+ case ScrTimer:
+ stopMoving();
+ d_timerTick = 0;
+ buttonReleased();
+ d_scrollMode = ScrNone;
+ break;
+
+ default:
+ d_scrollMode = ScrNone;
+ buttonReleased();
+ }
+}
+
+
+//------------------------------------------------------------
+//
+//.F SliderBase::setPosition
+// Move the slider to a specified point, adjust the value
+// and emit signals if necessary
+//
+//.u Syntax
+//.f void SliderBase::setPosition(const QPoint &p)
+//
+//.u Parameters
+//.p const QPoint &p
+//
+//------------------------------------------------------------
+void SliderBase::setPosition(const QPoint &p)
+{
+ DoubleRange::fitValue(getValue(p) - d_mouseOffset);
+}
+
+
+//------------------------------------------------------------
+//
+//.F SliderBase::setTracking
+//
+// Enables or disables tracking.
+//
+//.u Syntax
+//.f void SliderBase::setTracking(bool enable)
+//
+//.u Parameters
+//.p bool enable -- enable (TRUE) or disable (FALSE) tracking
+//
+//.u Description
+//
+// If tracking is enabled, the slider emits a
+// valueChanged() signal whenever its value
+// changes (the default behaviour). If tracking
+// is disabled, the value changed() signal will only
+// be emitted if
+//.i -- the user releases the mouse
+// button and the value has changed or
+// -- at the end of automatic scrolling.
+//.P
+// Tracking is enabled by default.
+//------------------------------------------------------------
+void SliderBase::setTracking(bool enable)
+{
+ d_tracking = enable;
+}
+
+//------------------------------------------------------------
+//.-
+//.F SliderBase::mouseMoveEvent
+// Mouse Move Event handler
+//
+//.u Syntax
+//.f void SliderBase::mouseMoveEvent(QMouseEvent *e)
+//
+//.u Parameters
+//.p QMouseEvent *e -- Qt Mouse Move Event
+//
+//------------------------------------------------------------
+void SliderBase::mouseMoveEvent(QMouseEvent *e)
+{
+ if(_ignoreMouseMove)
+ {
+ _ignoreMouseMove = false;
+ return;
+ }
+
+ double ms = 0.0;
+ if (d_scrollMode == ScrMouse )
+ {
+ setPosition(e->pos());
+ if (d_mass > 0.0)
+ {
+ ms = double(d_time.elapsed());
+ if (ms < 1.0) ms = 1.0;
+ d_speed = (exactValue() - exactPrevValue()) / ms;
+ d_time.start();
+ }
+ if (value() != prevValue())
+ emit sliderMoved(value(), _id);
+ }
+
+}
+
+
+
+//------------------------------------------------------------
+//
+//.F SliderBase::timerEvent
+// Timer event handler
+//
+//.u Syntax
+//.f void SliderBase::timerEvent(QTimerEvent *e)
+//
+//.u Parameters
+//.p QTimerEvent *e -- Qt timer event
+//
+//------------------------------------------------------------
+
+void SliderBase::timerEvent(QTimerEvent*)
+{
+ double newval;
+ double inc = step();
+
+ switch (d_scrollMode)
+ {
+ case ScrMouse:
+ if (d_mass > 0.0)
+ {
+ d_speed *= exp( - double(d_updTime) * 0.001 / d_mass );
+ newval = exactValue() + d_speed * double(d_updTime);
+ DoubleRange::fitValue(newval);
+ // stop if d_speed < one step per second
+ if (fabs(d_speed) < 0.001 * fabs(step()))
+ {
+ d_speed = 0;
+ stopMoving();
+ buttonReleased();
+ }
+
+ }
+ else
+ stopMoving();
+
+ break;
+
+ case ScrPage:
+ DoubleRange::incPages(d_direction);
+
+ if (value() != prevValue())
+ emit sliderMoved(value(), _id);
+
+ if (!d_timerTick)
+ {
+ killTimer(d_tmrID);
+ d_tmrID = startTimer(d_updTime);
+ }
+ break;
+ case ScrTimer:
+ DoubleRange::fitValue(value() + double(d_direction) * inc);
+
+ if (value() != prevValue())
+ emit sliderMoved(value(), _id);
+
+ if (!d_timerTick)
+ {
+ killTimer(d_tmrID);
+ d_tmrID = startTimer(d_updTime);
+ }
+ break;
+ default:
+ stopMoving();
+ break;
+ }
+
+ d_timerTick = 1;
+}
+
+
+//------------------------------------------------------------
+//
+//.F SliderBase::valueChange
+// Notify change of value
+//
+//.u Syntax
+//.f void SliderBase::valueChange()
+//
+//.u Parameters
+//.p double x -- new value
+//
+//.u Description
+// This function can be reimplemented by derived classes
+// in order to keep track of changes, i.e. repaint the widget.
+// The default implementation emits a valueChanged() signal
+// if tracking is enabled.
+//
+//------------------------------------------------------------
+void SliderBase::valueChange()
+{
+ if (d_tracking)
+ emit valueChanged(value(), _id);
+}
+
+//------------------------------------------------------------
+//
+//.F SliderBase::setMass
+// Set the slider's mass for flywheel effect.
+//
+//.u Syntax
+//.f void SliderBase::setMass(double val)
+//
+//.u Parameters
+//.p double val -- new mass in kg
+//
+//.u Description
+//
+// If the slider's mass is greater then 0, it will continue
+// to move after the mouse button has been released. Its speed
+// decreases with time at a rate depending on the slider's mass.
+// A large mass means that it will continue to move for a
+// long time.
+//
+// Limits: If the mass is smaller than 1g, it is set to zero.
+// The maximal mass is limited to 100kg.
+//
+// Derived widgets may overload this function to make it public.
+//
+//------------------------------------------------------------
+void SliderBase::setMass(double val)
+{
+ if (val < 0.001)
+ d_mass = 0.0;
+ else if (val > 100.0)
+ d_mass = 100.0;
+ else
+ d_mass = val;
+}
+
+
+//------------------------------------------------------------
+//
+//.F SliderBase::setValue
+// Move the slider to a specified value
+//
+//.u Syntax
+//.f void SliderBase::setValue(double val)
+//
+//.u Parameters
+//.p double val -- new value
+//
+//.u Description
+// This function can be used to move the slider to a value
+// which is not an integer multiple of the step size.
+//
+//.u See also
+// @SliderBase::fitValue@
+//------------------------------------------------------------
+
+void SliderBase::setValue(double val)
+ {
+ if (d_scrollMode == ScrMouse)
+ stopMoving();
+ DoubleRange::setValue(val);
+ }
+
+
+//------------------------------------------------------------
+//
+//.F QSlider::fitValue
+// Set the slider's value to the nearest integer multiple
+// of the step size.
+//
+//.u Syntax
+//.f void SliderBase::fitValue(double val)
+//
+//.u See also:
+// @SliderBase::setValue@
+//------------------------------------------------------------
+void SliderBase::fitValue(double val)
+{
+ if (d_scrollMode == ScrMouse) stopMoving();
+ DoubleRange::fitValue(val);
+}
+
+
+//------------------------------------------------------------
+//
+//.F SliderBase::incValue
+// Increment the value by a specified number of steps
+//
+//.u Syntax
+//.f void SliderBase::incValue(int steps)
+//
+//.u Parameters
+//.p int steps -- number of steps
+//
+//------------------------------------------------------------
+void SliderBase::incValue(int steps)
+{
+ if (d_scrollMode == ScrMouse) stopMoving();
+ DoubleRange::incValue(steps);
+}
+
+
+//------------------------------------------------------------
+//
+//.F SliderBase::stepPage
+// Increment the value by a specified number of steps
+//
+//.u Syntax
+//.f void SliderBase::stepPages(int pages)
+//
+//.u Parameters
+//.p int pages -- +/- number of pages
+//
+//.u Description
+// Steps the control as if pager was clicked.
+// Designed to be called from outside (like from a buddy label), rather than from
+// the control itself. Calls DoubleRange::incPages, which normally causes valueChange()
+// (and emits valueChanged), but also emits sliderMoved.
+//
+//------------------------------------------------------------
+void SliderBase::stepPages(int pages)
+{
+ DoubleRange::incPages(pages);
+ emit sliderMoved(value(), _id);
+}
+
+
+//------------------------------------------------------------
+//
+//.F SliderBase::getValue
+// Determine the value corresponding to a specified poind
+//
+//.u Syntax
+//.f void SliderBase::getValue(const QPoint &p)
+//
+//.u Parameters
+//.p const QPoint &p -- point
+//
+//.u Description
+// This is an abstract virtual function which is called when
+// the user presses or releases a mouse button or moves the
+// mouse. It has to be implemented by the derived class.
+//
+//------------------------------------------------------------
+
+//------------------------------------------------------------
+//
+//.F SliderBase::getScrollMode
+// Determine what to do when the user presses a mouse button.
+//
+//.u Syntax
+//.f void SliderBase::getScrollMode(const QPoint &p, int &scrollMode, int &direction)
+//
+//.u Input Parameters
+//.p const QPoint &p -- point where the mouse was pressed
+//
+//.u Output parameters
+// int &scrollMode -- The scrolling mode
+// int &direction -- direction: 1, 0, or -1.
+//
+//.u Description
+// This function is abstract and has to be implemented by derived classes.
+// It is called on a mousePress event. The derived class can determine
+// what should happen next in dependence of the position where the mouse
+// was pressed by returning scrolling mode and direction. SliderBase
+// knows the following modes:
+//.t
+// SliderBase::ScrNone -- Scrolling switched off. Don't change the value.
+// SliderBase::ScrMouse -- Change the value while the user keeps the
+// button pressed and moves the mouse.
+// SliderBase::ScrTimer -- Automatic scrolling. Increment the value
+// in the specified direction as long as
+// the user keeps the button pressed.
+// SliderBase::ScrPage -- Automatic scrolling. Same as ScrTimer, but
+// increment by page size.
+//
+//
+//------------------------------------------------------------
+
+//------------------------------------------------------------
+//
+//.F SliderBase::valueChanged
+// Notify a change of value.
+//
+//.u Syntax
+//.f void SliderBase::valueChanged(double value, int id)
+//
+//.u Parameters
+//.p double value -- new value
+//
+//.u Description
+// In the default setting
+// (tracking enabled), this signal will be emitted every
+// time the value changes ( see setTracking() ).
+//------------------------------------------------------------
+
+//------------------------------------------------------------
+//
+//.F SliderBase::sliderPressed
+// This signal is emitted when the user presses the
+// movable part of the slider (start ScrMouse Mode).
+//
+//.u Syntax
+//.f void SliderBase::sliderPressed()
+//
+//------------------------------------------------------------
+
+//------------------------------------------------------------
+//
+//.F SliderBase::SliderReleased
+// This signal is emitted when the user releases the
+// movable part of the slider.
+//
+//.u Syntax
+//.f void QwtSliderbase::SliderReleased()
+//
+//------------------------------------------------------------
+
+
+//------------------------------------------------------------
+//
+//.F SliderBase::sliderMoved
+// This signal is emitted when the user moves the
+// slider with the mouse.
+//
+//.u Syntax
+//.f void SliderBase::sliderMoved(double value, int _id)
+//
+//.u Parameters
+//.p double value -- new value
+//
+//------------------------------------------------------------
+
+
+
+
+
+
+
+
+
diff --git a/muse2/muse/widgets/sliderbase.h b/muse2/muse/widgets/sliderbase.h
new file mode 100644
index 00000000..d2de6f7c
--- /dev/null
+++ b/muse2/muse/widgets/sliderbase.h
@@ -0,0 +1,107 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: sliderbase.h,v 1.4.2.3 2006/11/14 06:28:37 terminator356 Exp $
+
+// Copyright (C) 1997 Josef Wilgen
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License, version 2,
+// as published by the Free Software Foundation.
+//
+// (C) Copyright 1999 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __SLIDERBASE_H__
+#define __SLIDERBASE_H__
+
+#include "drange.h"
+#include <q3frame.h>
+#include <qpixmap.h>
+#include <qdatetime.h>
+//#include <qbutton.h>
+#include <QtGui>
+//Added by qt3to4:
+#include <QWheelEvent>
+#include <QMouseEvent>
+#include <QTimerEvent>
+
+//---------------------------------------------------------
+// SliderBase
+//---------------------------------------------------------
+
+class SliderBase : public QWidget, public DoubleRange
+ {
+ 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( double value READ value WRITE setValue )
+
+ int _id;
+ int d_tmrID;
+ int d_updTime;
+ int d_timerTick;
+ QTime d_time;
+ double d_speed;
+ double d_mass;
+ bool _cursorHoming;
+ bool _ignoreMouseMove;
+
+ void buttonReleased();
+
+ protected:
+ int d_scrollMode;
+ double d_mouseOffset;
+ int d_direction;
+ int d_tracking;
+
+ virtual void setMass(double val);
+ void setPosition(const QPoint &p);
+ virtual void valueChange();
+ virtual double mass() const { return d_mass; }
+
+ void wheelEvent(QWheelEvent *e);
+ void timerEvent(QTimerEvent *e);
+ void mousePressEvent(QMouseEvent *e);
+ void mouseReleaseEvent(QMouseEvent *e);
+ void mouseMoveEvent(QMouseEvent *e);
+ virtual double getValue(const QPoint & p) = 0;
+ virtual void getScrollMode( QPoint &p, const Qt::ButtonState &button,
+ int &scrollMode, int &direction) = 0;
+
+ public slots:
+ void setValue(double val);
+ void fitValue(double val);
+ void incValue(int steps);
+
+ signals:
+ void valueChanged(double value, int id);
+ void sliderPressed(int id);
+ void sliderReleased(int id);
+ void sliderMoved(double value, int id);
+ void sliderRightClicked(const QPoint &p, int id);
+
+ public:
+ enum { ScrNone, ScrMouse, ScrTimer, ScrDirect, ScrPage };
+
+ SliderBase( QWidget *parent = 0, const char *name = 0 );
+ ~SliderBase();
+
+ bool cursorHoming() const { return _cursorHoming; }
+ void setCursorHoming(bool b) { _cursorHoming = b; }
+ void setUpdateTime(int t);
+ // void incValue(double nSteps);
+ void stopMoving();
+ void setTracking(bool enable);
+
+ double value() const { return DoubleRange::value(); }
+ void stepPages(int pages);
+ double minValue() const { return DoubleRange::minValue(); }
+ double maxValue() const { return DoubleRange::maxValue(); }
+ void setMinValue(double v) { DoubleRange::setRange(v, maxValue(), 0.0, 1); }
+ void setMaxValue(double v) { DoubleRange::setRange(minValue(), v, 0.0, 1); }
+ int id() const { return _id; }
+ void setId(int i) { _id = i; }
+ };
+
+#endif
diff --git a/muse2/muse/widgets/songinfo.ui b/muse2/muse/widgets/songinfo.ui
new file mode 100644
index 00000000..2e4e7e80
--- /dev/null
+++ b/muse2/muse/widgets/songinfo.ui
@@ -0,0 +1,115 @@
+<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
+<class>SongInfo</class>
+<widget class="QDialog">
+ <property name="name">
+ <cstring>SongInfo</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>403</width>
+ <height>274</height>
+ </rect>
+ </property>
+ <property name="caption">
+ <string>Song Information</string>
+ </property>
+ <vbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QLayoutWidget">
+ <property name="name">
+ <cstring>layout2</cstring>
+ </property>
+ <vbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>0</number>
+ </property>
+ <widget class="QTextEdit">
+ <property name="name">
+ <cstring>songInfoText</cstring>
+ </property>
+ </widget>
+ <widget class="QLayoutWidget">
+ <property name="name">
+ <cstring>layout1</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <spacer>
+ <property name="name">
+ <cstring>spacer1</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>311</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ <widget class="QPushButton">
+ <property name="name">
+ <cstring>buttonCancel</cstring>
+ </property>
+ <property name="text">
+ <string>&amp;Cancel</string>
+ </property>
+ <property name="accel">
+ <string>Alt+C</string>
+ </property>
+ </widget>
+ <widget class="QPushButton">
+ <property name="name">
+ <cstring>buttonOk</cstring>
+ </property>
+ <property name="text">
+ <string>&amp;Ok</string>
+ </property>
+ <property name="accel">
+ <string>Alt+O</string>
+ </property>
+ <property name="default">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </hbox>
+ </widget>
+ </vbox>
+ </widget>
+ </vbox>
+</widget>
+<connections>
+ <connection>
+ <sender>buttonOk</sender>
+ <signal>clicked()</signal>
+ <receiver>SongInfo</receiver>
+ <slot>accept()</slot>
+ </connection>
+ <connection>
+ <sender>buttonCancel</sender>
+ <signal>clicked()</signal>
+ <receiver>SongInfo</receiver>
+ <slot>reject()</slot>
+ </connection>
+</connections>
+<includes>
+ <include location="local" impldecl="in implementation">songinfo.ui.h</include>
+</includes>
+<slots>
+ <slot>buttonOk_clicked()</slot>
+</slots>
+<layoutdefaults spacing="6" margin="11"/>
+</UI>
diff --git a/muse2/muse/widgets/spinbox.cpp b/muse2/muse/widgets/spinbox.cpp
new file mode 100644
index 00000000..6eed0ba6
--- /dev/null
+++ b/muse2/muse/widgets/spinbox.cpp
@@ -0,0 +1,83 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: spinbox.cpp,v 1.1.2.3 2009/07/09 18:27:11 terminator356 Exp $
+// (C) Copyright 2001 Werner Schweer (ws@seh.de)
+//=========================================================
+#include <qlineedit.h>
+//Added by qt3to4:
+#include <QKeyEvent>
+#include <QEvent>
+#include "spinbox.h"
+
+//---------------------------------------------------------
+// SpinBox
+//---------------------------------------------------------
+
+SpinBox::SpinBox(QWidget* parent, const char* name)
+ : QSpinBox(parent, name)
+{
+ _clearFocus = true;
+}
+
+SpinBox::SpinBox(int minValue, int maxValue, int step, QWidget* parent, const char* name)
+ : QSpinBox(minValue, maxValue, step, parent, name)
+{
+ _clearFocus = true;
+}
+
+bool SpinBox::eventFilter(QObject* o, QEvent* ev)
+{
+ // if (o != (QObject*)editor()) ddskrjo can't find editor()
+ // return QSpinBox::eventFilter(o,ev);
+
+ bool retval = FALSE;
+ if(ev->type() == QEvent::KeyPress)
+ {
+ QKeyEvent* k = (QKeyEvent*)ev;
+ if(k->key() == Qt::Key_Up || k->key() == Qt::Key_Down)
+ {
+ // stepUp/stepDown will be called. Set this now.
+ _clearFocus = false;
+ }
+ else if (k->key() == Qt::Key_Enter || k->key() == Qt::Key_Return)
+ {
+ // With this line, two enter presses after an edit will clear focus.
+ // Without, just one enter press clears the focus.
+ //if(!editor()->isModified())
+ {
+ clearFocus();
+ return TRUE;
+ }
+ }
+ }
+ else
+ if(ev->type() == QEvent::MouseButtonDblClick)
+ {
+ emit doubleClicked();
+ return TRUE;
+ }
+
+ retval = QSpinBox::eventFilter(o, ev);
+
+ return retval;
+}
+
+void SpinBox::stepUp()
+{
+ QSpinBox::stepUp();
+ if(_clearFocus)
+ clearFocus();
+ else
+ _clearFocus = true;
+}
+
+void SpinBox::stepDown()
+{
+ QSpinBox::stepDown();
+ if(_clearFocus)
+ clearFocus();
+ else
+ _clearFocus = true;
+}
+
diff --git a/muse2/muse/widgets/spinbox.h b/muse2/muse/widgets/spinbox.h
new file mode 100644
index 00000000..6eaa2da7
--- /dev/null
+++ b/muse2/muse/widgets/spinbox.h
@@ -0,0 +1,44 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: spinbox.h,v 1.1.2.2 2009/02/02 21:38:01 terminator356 Exp $
+// (C) Copyright 2001 Werner Schweer (ws@seh.de)
+//=========================================================
+
+// SpinBox:
+// Click up/down, or mousewheel, or hit enter with un-modified text (which means enter TWICE for modified text),
+// and the control will give up focus, thereby allowing you to use global shortcut keys afterwards.
+// Up/down keys still keep the focus.
+#ifndef __SPINBOX_H__
+#define __SPINBOX_H__
+
+#include <qspinbox.h>
+//Added by qt3to4:
+#include <QEvent>
+
+//---------------------------------------------------------
+// SpinBox
+//---------------------------------------------------------
+
+class SpinBox : public QSpinBox {
+ Q_OBJECT
+
+ bool _clearFocus;
+
+ protected:
+ bool eventFilter(QObject* obj, QEvent* ev);
+
+ public slots:
+ virtual void stepUp();
+ virtual void stepDown();
+
+ signals:
+ void doubleClicked();
+
+ public:
+ SpinBox(QWidget* parent=0, const char* name = 0);
+ SpinBox(int minValue, int maxValue, int step = 1, QWidget* parent=0, const char* name = 0);
+};
+
+#endif
+
diff --git a/muse2/muse/widgets/spinboxFP.cpp b/muse2/muse/widgets/spinboxFP.cpp
new file mode 100644
index 00000000..c2906940
--- /dev/null
+++ b/muse2/muse/widgets/spinboxFP.cpp
@@ -0,0 +1,80 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: spinboxFP.cpp,v 1.1.1.1 2003/10/27 18:55:03 wschweer Exp $
+// (C) Copyright 2001 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include <stdio.h>
+#include <cmath>
+
+//#include <qvalidator.h>
+#include <QtGui>
+#include "spinboxFP.h"
+
+//---------------------------------------------------------
+// SpinBoxFP
+//---------------------------------------------------------
+
+SpinBoxFP::SpinBoxFP(QWidget* parent, const char* name)
+ : QSpinBox(parent, name)
+ {
+ _precision = 0;
+ //setValidator(new QDoubleValidator(this)); ddskrjo
+ }
+
+SpinBoxFP::SpinBoxFP(int minValue, int maxValue, int step, QWidget* parent, const char* name)
+ : QSpinBox(minValue, maxValue, step, parent, name)
+ {
+ _precision = 0;
+ //setValidator(new QDoubleValidator(this)); ddskrjo
+ }
+
+//---------------------------------------------------------
+// setPrecision
+//---------------------------------------------------------
+
+void SpinBoxFP::setPrecision(int val)
+ {
+ _precision = val;
+ //updateDisplay(); ddskrjo
+ }
+
+//---------------------------------------------------------
+// mapValueToText
+//---------------------------------------------------------
+
+QString SpinBoxFP::mapValueToText(int value)
+ {
+ if (_precision) {
+ QString s;
+ int div = int(exp10(_precision));
+// printf("val %d, prec %d, div %d\n", value, _precision, div);
+ s.sprintf("%d.%0*d", value/div, _precision, value%div);
+ return s;
+ }
+ return textFromValue(value); // ddskrjo
+ }
+
+//---------------------------------------------------------
+// mapTextToValue
+//---------------------------------------------------------
+/* ddskrjo
+int SpinBoxFP::mapTextToValue(bool* ok)
+ {
+ QString qs = cleanText();
+ if (_precision) {
+ const char* s = qs.latin1();
+ int a, b;
+ int n = sscanf(s, "%d.%d", &a, &b);
+ if (n != 2) {
+ *ok = false;
+ return 0;
+ }
+ int div = int(exp10(_precision));
+ return a * div + b;
+ }
+ return QSpinBox::mapTextToValue(ok);
+ }
+
+*/
diff --git a/muse2/muse/widgets/spinboxFP.h b/muse2/muse/widgets/spinboxFP.h
new file mode 100644
index 00000000..760a7d06
--- /dev/null
+++ b/muse2/muse/widgets/spinboxFP.h
@@ -0,0 +1,35 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: spinboxFP.h,v 1.1.1.1.2.1 2008/05/21 00:28:54 terminator356 Exp $
+// (C) Copyright 2001 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __SPINBOXFP_H__
+#define __SPINBOXFP_H__
+
+#include <qspinbox.h>
+
+//---------------------------------------------------------
+// SpinBoxFP
+//---------------------------------------------------------
+
+class SpinBoxFP : public QSpinBox {
+ Q_OBJECT
+ Q_PROPERTY( int precision READ precision WRITE setPrecision )
+
+ int _precision;
+
+ protected:
+ virtual QString mapValueToText(int value);
+ //virtual int mapTextToValue(bool* ok);
+
+ public:
+ SpinBoxFP(QWidget* parent=0, const char* name = 0);
+ SpinBoxFP(int minValue, int maxValue, int step = 1, QWidget* parent=0, const char* name = 0);
+ void setPrecision(int val);
+ int precision() const { return _precision; }
+ };
+
+#endif
+
diff --git a/muse2/muse/widgets/splitter.cpp b/muse2/muse/widgets/splitter.cpp
new file mode 100644
index 00000000..d1f9cfd9
--- /dev/null
+++ b/muse2/muse/widgets/splitter.cpp
@@ -0,0 +1,77 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: splitter.cpp,v 1.1.1.1 2003/10/27 18:54:59 wschweer Exp $
+// (C) Copyright 1999 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include "splitter.h"
+#include "xml.h"
+#include <qstringlist.h>
+//Added by qt3to4:
+#include <Q3ValueList>
+
+//---------------------------------------------------------
+// Splitter
+//---------------------------------------------------------
+
+Splitter::Splitter(Qt::Orientation o, QWidget* parent, const char* name)
+ : QSplitter(o, parent, name)
+ {
+ setOpaqueResize(true);
+ }
+
+//---------------------------------------------------------
+// saveConfiguration
+//---------------------------------------------------------
+
+void Splitter::writeStatus(int level, Xml& xml)
+ {
+ Q3ValueList<int> vl = sizes();
+ //xml.nput(level++, "<%s>", name());
+ xml.nput(level++, "<%s>", Xml::xmlString(name()).latin1());
+ Q3ValueListIterator<int> ivl = vl.begin();
+ for (; ivl != vl.end(); ++ivl) {
+ xml.nput("%d ", *ivl);
+ }
+ //xml.nput("</%s>\n", name());
+ xml.nput("</%s>\n", Xml::xmlString(name()).latin1());
+ }
+
+//---------------------------------------------------------
+// loadConfiguration
+//---------------------------------------------------------
+
+void Splitter::readStatus(Xml& xml)
+ {
+ Q3ValueList<int> vl;
+
+ 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("Splitter");
+ break;
+ case Xml::Text:
+ {
+ QStringList sl = QStringList::split(' ', tag);
+ for (QStringList::Iterator it = sl.begin(); it != sl.end(); ++it) {
+ int val = (*it).toInt();
+ vl.append(val);
+ }
+ }
+ break;
+ case Xml::TagEnd:
+ if (tag == name()) {
+ setSizes(vl);
+ return;
+ }
+ default:
+ break;
+ }
+ }
+ }
diff --git a/muse2/muse/widgets/splitter.h b/muse2/muse/widgets/splitter.h
new file mode 100644
index 00000000..8be4da5b
--- /dev/null
+++ b/muse2/muse/widgets/splitter.h
@@ -0,0 +1,29 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: splitter.h,v 1.1.1.1 2003/10/27 18:54:51 wschweer Exp $
+// (C) Copyright 1999 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __SPLITTER_H__
+#define __SPLITTER_H__
+
+#include <qsplitter.h>
+
+class Xml;
+
+//---------------------------------------------------------
+// Splitter
+//---------------------------------------------------------
+
+class Splitter : public QSplitter {
+ Q_OBJECT
+
+ public:
+ Splitter(Qt::Orientation o, QWidget* parent, const char* name);
+ void writeStatus(int level, Xml&);
+ void readStatus(Xml&);
+ };
+
+#endif
+
diff --git a/muse2/muse/widgets/swidget.cpp b/muse2/muse/widgets/swidget.cpp
new file mode 100644
index 00000000..29cece1e
--- /dev/null
+++ b/muse2/muse/widgets/swidget.cpp
@@ -0,0 +1,20 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: swidget.cpp,v 1.1.1.1 2003/10/27 18:54:27 wschweer Exp $
+// (C) Copyright 1999 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include "swidget.h"
+//Added by qt3to4:
+#include <QResizeEvent>
+
+//---------------------------------------------------------
+// resizeEvent
+//---------------------------------------------------------
+
+void SWidget::resizeEvent(QResizeEvent* ev)
+ {
+ emit heightChanged(ev->size().height());
+ }
+
diff --git a/muse2/muse/widgets/swidget.h b/muse2/muse/widgets/swidget.h
new file mode 100644
index 00000000..806fe538
--- /dev/null
+++ b/muse2/muse/widgets/swidget.h
@@ -0,0 +1,33 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: swidget.h,v 1.1.1.1 2003/10/27 18:54:49 wschweer Exp $
+// (C) Copyright 1999 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __SWIDGET_H__
+#define __SWIDGET_H__
+
+#include <qwidget.h>
+//Added by qt3to4:
+#include <QResizeEvent>
+
+//---------------------------------------------------------
+// SWidget
+// a simple widget which emits a heighChanged signal
+// on received ResizeEvent´s
+//---------------------------------------------------------
+
+class SWidget : public QWidget {
+ virtual void resizeEvent(QResizeEvent*);
+ Q_OBJECT
+
+ signals:
+ void heightChanged(int);
+
+ public:
+ SWidget(QWidget* parent) : QWidget(parent) {}
+ };
+
+#endif
+
diff --git a/muse2/muse/widgets/synthconfigbase.ui b/muse2/muse/widgets/synthconfigbase.ui
new file mode 100644
index 00000000..761c8fb8
--- /dev/null
+++ b/muse2/muse/widgets/synthconfigbase.ui
@@ -0,0 +1,247 @@
+<!DOCTYPE UI><UI version="3.2" stdsetdef="1">
+<class>SynthConfigBase</class>
+<widget class="QDialog">
+ <property name="name">
+ <cstring>SynthConfigBase</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>630</width>
+ <height>492</height>
+ </rect>
+ </property>
+ <property name="caption">
+ <string>MusE: Synth Configuration</string>
+ </property>
+ <grid>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QGroupBox" row="1" column="1">
+ <property name="name">
+ <cstring>GroupBox3</cstring>
+ </property>
+ <property name="title">
+ <string>Instances</string>
+ </property>
+ <grid>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QListView" row="0" column="0">
+ <column>
+ <property name="text">
+ <string>Name</string>
+ </property>
+ <property name="clickable">
+ <bool>false</bool>
+ </property>
+ <property name="resizable">
+ <bool>true</bool>
+ </property>
+ </column>
+ <column>
+ <property name="text">
+ <string>Midi Port</string>
+ </property>
+ <property name="clickable">
+ <bool>false</bool>
+ </property>
+ <property name="resizable">
+ <bool>false</bool>
+ </property>
+ </column>
+ <property name="name">
+ <cstring>instanceList</cstring>
+ </property>
+ <property name="allColumnsShowFocus">
+ <bool>true</bool>
+ </property>
+ </widget>
+ <widget class="QLayoutWidget" row="1" column="0">
+ <property name="name">
+ <cstring>layout2</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QPushButton">
+ <property name="name">
+ <cstring>removeInstance</cstring>
+ </property>
+ <property name="text">
+ <string>Remove Instance</string>
+ </property>
+ </widget>
+ <spacer>
+ <property name="name">
+ <cstring>Spacer2</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>113</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </hbox>
+ </widget>
+ </grid>
+ </widget>
+ <widget class="QGroupBox" row="0" column="0" rowspan="1" colspan="2">
+ <property name="name">
+ <cstring>groupBox10</cstring>
+ </property>
+ <property name="title">
+ <string>Midi connections</string>
+ </property>
+ <vbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QListView">
+ <property name="name">
+ <cstring>mdevView</cstring>
+ </property>
+ </widget>
+ </vbox>
+ </widget>
+ <widget class="QGroupBox" row="1" column="0">
+ <property name="name">
+ <cstring>GroupBox2</cstring>
+ </property>
+ <property name="frameShape">
+ <enum>GroupBoxPanel</enum>
+ </property>
+ <property name="frameShadow">
+ <enum>Sunken</enum>
+ </property>
+ <property name="title">
+ <string>Soft Synthesizer</string>
+ </property>
+ <grid>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QLayoutWidget" row="1" column="0">
+ <property name="name">
+ <cstring>Layout1</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>0</number>
+ </property>
+ <property name="spacing">
+ <number>6</number>
+ </property>
+ <widget class="QPushButton">
+ <property name="name">
+ <cstring>addInstance</cstring>
+ </property>
+ <property name="text">
+ <string>Add Instance</string>
+ </property>
+ </widget>
+ <spacer>
+ <property name="name">
+ <cstring>Spacer1</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>20</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </hbox>
+ </widget>
+ <widget class="QListView" row="0" column="0">
+ <column>
+ <property name="text">
+ <string>File</string>
+ </property>
+ <property name="clickable">
+ <bool>false</bool>
+ </property>
+ <property name="resizable">
+ <bool>true</bool>
+ </property>
+ </column>
+ <column>
+ <property name="text">
+ <string>Inst</string>
+ </property>
+ <property name="clickable">
+ <bool>false</bool>
+ </property>
+ <property name="resizable">
+ <bool>false</bool>
+ </property>
+ </column>
+ <column>
+ <property name="text">
+ <string>Name</string>
+ </property>
+ <property name="clickable">
+ <bool>false</bool>
+ </property>
+ <property name="resizable">
+ <bool>true</bool>
+ </property>
+ </column>
+ <column>
+ <property name="text">
+ <string>Version</string>
+ </property>
+ <property name="clickable">
+ <bool>true</bool>
+ </property>
+ <property name="resizable">
+ <bool>true</bool>
+ </property>
+ </column>
+ <column>
+ <property name="text">
+ <string>Description</string>
+ </property>
+ <property name="clickable">
+ <bool>true</bool>
+ </property>
+ <property name="resizable">
+ <bool>true</bool>
+ </property>
+ </column>
+ <property name="name">
+ <cstring>synthList</cstring>
+ </property>
+ <property name="allColumnsShowFocus">
+ <bool>true</bool>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>list of available software synthesizers</string>
+ </property>
+ </widget>
+ </grid>
+ </widget>
+ </grid>
+</widget>
+<layoutdefaults spacing="6" margin="11"/>
+</UI>
diff --git a/muse2/muse/widgets/synthwizardbase.h b/muse2/muse/widgets/synthwizardbase.h
new file mode 100644
index 00000000..61d3985c
--- /dev/null
+++ b/muse2/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.5 2003/11/12 18:55:06 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 <Q3VBoxLayout>
+#include <Q3GridLayout>
+#include <Q3HBoxLayout>
+
+class Q3VBoxLayout;
+class Q3HBoxLayout;
+class Q3GridLayout;
+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:
+ Q3VBoxLayout* WizardPageLayout;
+ Q3VBoxLayout* GroupBox2Layout;
+ Q3HBoxLayout* Layout1;
+ Q3VBoxLayout* GroupBox3Layout;
+ Q3HBoxLayout* Layout3;
+
+protected slots:
+ virtual void languageChange();
+
+};
+
+#endif // SYNTHCONFIGBASE_H
diff --git a/muse2/muse/widgets/tb1.cpp b/muse2/muse/widgets/tb1.cpp
new file mode 100644
index 00000000..8aa6225f
--- /dev/null
+++ b/muse2/muse/widgets/tb1.cpp
@@ -0,0 +1,225 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: tb1.cpp,v 1.3.2.2 2007/01/04 00:35:17 terminator356 Exp $
+// (C) Copyright 1999 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include <assert.h>
+#include <stdio.h>
+#include <values.h>
+
+#include <qlabel.h>
+#include <qlayout.h>
+#include <q3listbox.h>
+#include <qtoolbutton.h>
+
+#include "config.h"
+#include "lcombo.h"
+#include "tb1.h"
+#include "globals.h"
+#include "poslabel.h"
+#include "pitchlabel.h"
+
+static int rasterTable[] = {
+ //------ 8 4 2
+ 1, 4, 8, 16, 32, 64, 128, 256, 512, 1024,
+ 1, 6, 12, 24, 48, 96, 192, 384, 768, 1536,
+ 1, 9, 18, 36, 72, 144, 288, 576, 1152, 2304
+ };
+
+static const char* rasterStrings[] = {
+ QT_TR_NOOP("Off"), "2pp", "5pp", "64T", "32T", "16T", "8T", "4T", "2T", "1T",
+ QT_TR_NOOP("Off"), "3pp", "6pp", "64", "32", "16", "8", "4", "2", "1",
+ QT_TR_NOOP("Off"), "4pp", "7pp", "64.", "32.", "16.", "8.", "4.", "2.", "1."
+ };
+
+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."
+ };
+
+//---------------------------------------------------------
+// genToolbar
+// solo time pitch raster quant
+//---------------------------------------------------------
+
+Toolbar1::Toolbar1(Q3MainWindow* parent, int r, int q, bool sp)
+ : Q3ToolBar(QString("Qant'n'Snap-tools"), parent)
+ {
+ showPitch = sp;
+ setHorizontalStretchable(false);
+
+ solo = new QToolButton(this);
+ solo->setText(tr("Solo"));
+ solo->setToggleButton(true);
+
+ //---------------------------------------------------
+ // Cursor Position
+ //---------------------------------------------------
+
+ QLabel* label = new QLabel(tr("Cursor"), this, "Cursor");
+ label->setAlignment(Qt::AlignRight|Qt::AlignVCenter);
+ label->setIndent(3);
+ pos = new PosLabel(this, "pos");
+ if (showPitch) {
+ pitch = new PitchLabel(this);
+ pitch->setEnabled(false);
+ }
+
+ //---------------------------------------------------
+ // Raster, Quant.
+ //---------------------------------------------------
+
+ raster = new LabelCombo(tr("Snap"), this);
+ quant = new LabelCombo(tr("Quantize"), this);
+
+ Q3ListBox* rlist = new Q3ListBox(this);
+ Q3ListBox* qlist = new Q3ListBox(this);
+ rlist->setMinimumWidth(95);
+ qlist->setMinimumWidth(95);
+ //raster->setListBox(rlist); ddskrjo
+ //quant->setListBox(qlist); ddskrjo
+ rlist->setColumnMode(3);
+ qlist->setColumnMode(3);
+ for (int i = 0; i < 30; i++)
+ rlist->insertItem(tr(rasterStrings[i]), i);
+ for (int i = 0; i < 24; i++)
+ qlist->insertItem(tr(quantStrings[i]), i);
+ setRaster(r);
+ setQuant(q);
+
+ //---------------------------------------------------
+ // To Menu
+ //---------------------------------------------------
+
+ LabelCombo* to = new LabelCombo(tr("To"), this);
+ Q3ListBox* toList = new Q3ListBox(this);
+ //to->setListBox(toList); ddskrjo
+ toList->insertItem(tr("All Events"), 0);
+ toList->insertItem(tr("Looped Ev."), CMD_RANGE_LOOP);
+ toList->insertItem(tr("Selected Ev."), CMD_RANGE_SELECTED);
+ toList->insertItem(tr("Looped+Sel."), CMD_RANGE_LOOP | CMD_RANGE_SELECTED);
+
+ connect(raster, SIGNAL(activated(int)), SLOT(_rasterChanged(int)));
+ connect(quant, SIGNAL(activated(int)), SLOT(_quantChanged(int)));
+ connect(to, SIGNAL(activated(int)), SIGNAL(toChanged(int)));
+ connect(solo, SIGNAL(toggled(bool)), SIGNAL(soloChanged(bool)));
+ pos->setEnabled(false);
+ }
+
+//---------------------------------------------------------
+// rasterChanged
+//---------------------------------------------------------
+
+void Toolbar1::_rasterChanged(int index)
+ {
+ emit rasterChanged(rasterTable[index]);
+ }
+
+//---------------------------------------------------------
+// quantChanged
+//---------------------------------------------------------
+
+void Toolbar1::_quantChanged(int index)
+ {
+ emit quantChanged(quantTable[index]);
+ }
+
+//---------------------------------------------------------
+// setPitch
+//---------------------------------------------------------
+
+void Toolbar1::setPitch(int val)
+ {
+ if (showPitch) {
+ pitch->setEnabled(val != -1);
+ pitch->setPitch(val);
+ }
+ }
+
+void Toolbar1::setInt(int val)
+ {
+ if (showPitch) {
+ pitch->setEnabled(val != -1);
+ pitch->setInt(val);
+ }
+ }
+
+//---------------------------------------------------------
+// setTime
+//---------------------------------------------------------
+
+void Toolbar1::setTime(unsigned val)
+ {
+ if (!pos->isVisible()) {
+ printf("NOT visible\n");
+ return;
+ }
+ if (val == MAXINT)
+ pos->setEnabled(false);
+ else {
+ pos->setEnabled(true);
+ pos->setValue(val);
+ }
+ }
+
+//---------------------------------------------------------
+// setRaster
+//---------------------------------------------------------
+
+void Toolbar1::setRaster(int val)
+ {
+ for (unsigned i = 0; i < sizeof(rasterTable)/sizeof(*rasterTable); i++) {
+ if (val == rasterTable[i]) {
+ raster->setCurrentItem(i);
+ return;
+ }
+ }
+ printf("setRaster(%d) not defined\n", val);
+ raster->setCurrentItem(0);
+ }
+
+//---------------------------------------------------------
+// setQuant
+//---------------------------------------------------------
+
+void Toolbar1::setQuant(int val)
+ {
+ for (unsigned i = 0; i < sizeof(quantTable)/sizeof(*quantTable); i++) {
+ if (val == quantTable[i]) {
+ quant->setCurrentItem(i);
+ return;
+ }
+ }
+ printf("setQuant(%d) not defined\n", val);
+ quant->setCurrentItem(0);
+ }
+
+//---------------------------------------------------------
+// setSolo
+//---------------------------------------------------------
+
+void Toolbar1::setSolo(bool flag)
+ {
+ solo->blockSignals(true);
+ solo->setOn(flag);
+ solo->blockSignals(false);
+ }
+
+//---------------------------------------------------------
+// setPitchMode
+//---------------------------------------------------------
+
+void Toolbar1::setPitchMode(bool /*flag*/)
+ {
+// pitch->setPitchMode(flag);
+ }
+
diff --git a/muse2/muse/widgets/tb1.h b/muse2/muse/widgets/tb1.h
new file mode 100644
index 00000000..b6d7860a
--- /dev/null
+++ b/muse2/muse/widgets/tb1.h
@@ -0,0 +1,57 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: tb1.h,v 1.2 2004/01/11 18:55:37 wschweer Exp $
+// (C) Copyright 1999 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __TB1_H__
+#define __TB1_H__
+
+#include <qwidget.h>
+#include <q3toolbar.h>
+
+class PosLabel;
+class PitchLabel;
+class Track;
+class LabelCombo;
+class QToolButton;
+
+//---------------------------------------------------------
+// Toolbar1
+//---------------------------------------------------------
+
+class Toolbar1 : public Q3ToolBar {
+ QToolButton* solo;
+ PosLabel* pos;
+ PitchLabel* pitch;
+ LabelCombo* quant;
+ LabelCombo* raster;
+ bool showPitch;
+ Q_OBJECT
+
+ private slots:
+ void _rasterChanged(int);
+ void _quantChanged(int);
+
+ public slots:
+ void setTime(unsigned);
+ 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(Q3MainWindow* parent, int r=96,
+ int q=96, bool showPitch=true);
+ void setSolo(bool val);
+ void setPitchMode(bool flag);
+ };
+
+#endif
diff --git a/muse2/muse/widgets/tempolabel.cpp b/muse2/muse/widgets/tempolabel.cpp
new file mode 100644
index 00000000..35f75b09
--- /dev/null
+++ b/muse2/muse/widgets/tempolabel.cpp
@@ -0,0 +1,126 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: tempolabel.cpp,v 1.1.1.1 2003/10/27 18:54:29 wschweer Exp $
+// (C) Copyright 1999 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include <qapplication.h>
+#include <qstyle.h>
+#include <qvalidator.h>
+//Added by qt3to4:
+#include <QLabel>
+#include "tempolabel.h"
+
+//---------------------------------------------------------
+// TempoLabel
+//---------------------------------------------------------
+
+TempoLabel::TempoLabel(QWidget* parent, const char* name)
+ : QLabel(parent, name)
+ {
+ 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());
+ }
+
+//---------------------------------------------------------
+// TempoSpinBox
+//---------------------------------------------------------
+
+TempoEdit::TempoEdit(QWidget* parent, const char* name)
+ : QSpinBox(parent, name)
+ {
+ setLineStep(100);
+ setMaxValue(60000);
+ setMinValue(3000);
+ //setValidator(new QDoubleValidator(this)); ddskrjo
+ connect(this, SIGNAL(valueChanged(int)), SLOT(tempoChanged(int)));
+ }
+
+//---------------------------------------------------------
+// sizeHint
+//---------------------------------------------------------
+
+QSize TempoEdit::sizeHint() const
+ {
+ QFontMetrics fm(font());
+ int fw = style()->pixelMetric(QStyle::PM_DefaultFrameWidth,0, this); // ddskrjo
+ int h = fm.height() + fw * 2;
+ int w = 2 + fm.width(QString("000.00")) + fw * 4 + 30;
+ return QSize(w, h).expandedTo(QApplication::globalStrut());
+ }
+
+//---------------------------------------------------------
+// mapValueToText
+//---------------------------------------------------------
+
+QString TempoEdit::mapValueToText(int val)
+ {
+ double v = val / 100.0;
+ return QString("%1").arg(v, 3, 'f', 2);
+ }
+
+//---------------------------------------------------------
+// mapTextToValue
+//---------------------------------------------------------
+
+int TempoEdit::mapTextToValue(bool* ok)
+ {
+ double v = text().toDouble(ok);
+ return int(v * 100);
+ }
+
+//---------------------------------------------------------
+// tempoChanged
+//---------------------------------------------------------
+
+void TempoEdit::tempoChanged(int val)
+ {
+ emit valueChanged(double(val)/100.0);
+ }
+
+//---------------------------------------------------------
+// setValue
+//---------------------------------------------------------
+
+void TempoEdit::setValue(double val)
+ {
+ QSpinBox::setValue(int(val*100));
+ }
+
diff --git a/muse2/muse/widgets/tempolabel.h b/muse2/muse/widgets/tempolabel.h
new file mode 100644
index 00000000..587938d7
--- /dev/null
+++ b/muse2/muse/widgets/tempolabel.h
@@ -0,0 +1,60 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: tempolabel.h,v 1.1.1.1 2003/10/27 18:55:05 wschweer Exp $
+// (C) Copyright 1999 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __TEMPOLABEL_H__
+#define __TEMPOLABEL_H__
+
+#include <qlabel.h>
+#include <qspinbox.h>
+
+//---------------------------------------------------------
+// TempoLabel
+//---------------------------------------------------------
+
+class TempoLabel : public QLabel {
+ double _value;
+
+ Q_OBJECT
+
+ protected:
+ QSize sizeHint() const;
+
+ public slots:
+ void setValue(int);
+ void setValue(double);
+
+ public:
+ TempoLabel(QWidget*, const char* name = 0);
+ };
+
+//---------------------------------------------------------
+// TempoEdit
+//---------------------------------------------------------
+
+class TempoEdit : public QSpinBox {
+ Q_OBJECT
+
+ protected:
+ QSize sizeHint() const;
+ virtual QString mapValueToText(int);
+ virtual int mapTextToValue(bool*);
+
+ private slots:
+ void tempoChanged(int);
+
+ public slots:
+ void setValue(double);
+
+ signals:
+ void valueChanged(double);
+
+ public:
+ TempoEdit(QWidget*, const char* name = 0);
+ };
+
+#endif
+
diff --git a/muse2/muse/widgets/tools.cpp b/muse2/muse/widgets/tools.cpp
new file mode 100644
index 00000000..7816f632
--- /dev/null
+++ b/muse2/muse/widgets/tools.cpp
@@ -0,0 +1,139 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: tools.cpp,v 1.2 2004/04/28 21:56:13 spamatica Exp $
+// (C) Copyright 1999 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include "tools.h"
+#include <qpixmap.h>
+#include <q3buttongroup.h>
+#include <qtoolbutton.h>
+#include <qtooltip.h>
+#include <q3whatsthis.h>
+#include <q3mainwindow.h>
+//Added by qt3to4:
+#include <Q3ActionGroup>
+
+#include "icons.h"
+#include "action.h"
+
+const char* infoPointer = QT_TR_NOOP("select Pointer Tool:\n"
+ "with the pointer tool you can:\n"
+ " select parts\n"
+ " move parts\n"
+ " copy parts");
+const char* infoPencil = QT_TR_NOOP("select Pencil Tool:\n"
+ "with the pencil tool you can:\n"
+ " create new parts\n"
+ " modify length of parts");
+const char* infoDel = QT_TR_NOOP("select Delete Tool:\n"
+ "with the delete tool you can delete parts");
+const char* infoCut = QT_TR_NOOP("select Cut Tool:\n"
+ "with the cut tool you can split a part");
+const char* infoGlue = QT_TR_NOOP("select Glue Tool:\n"
+ "with the glue tool you can glue two parts");
+const char* infoScore = QT_TR_NOOP("select Score Tool:\n");
+const char* infoQuant = QT_TR_NOOP("select Quantize Tool:\n"
+ "insert display quantize event");
+const char* infoDraw = QT_TR_NOOP("select Drawing Tool");
+const char* infoMute = QT_TR_NOOP("select Muting Tool:\n"
+ "click on part to mute/unmute");
+
+ToolB toolList[] = {
+ {&pointerIcon, QT_TR_NOOP("pointer"), infoPointer },
+ {&pencilIcon, QT_TR_NOOP("pencil"), infoPencil },
+ {&deleteIcon, QT_TR_NOOP("eraser"), infoDel },
+ {&cutIcon, QT_TR_NOOP("cutter"), infoCut },
+ {&note1Icon, QT_TR_NOOP("score"), infoScore },
+ {&glueIcon, QT_TR_NOOP("glue"), infoGlue },
+ {&quantIcon, QT_TR_NOOP("quantize"), infoQuant },
+ {&drawIcon, QT_TR_NOOP("draw"), infoDraw },
+ {&editmuteIcon, QT_TR_NOOP("mute parts"), infoMute },
+ };
+
+//---------------------------------------------------------
+// EditToolBar
+//---------------------------------------------------------
+
+EditToolBar::EditToolBar(Q3MainWindow* parent, int tools, const char*)
+ : Q3ToolBar(tr("Edit Tools"), parent)
+ {
+ Q3ActionGroup* action = new Q3ActionGroup(parent, "editaction", true);
+
+ nactions = 0;
+ for (unsigned i = 0; i < sizeof(toolList)/sizeof(*toolList); ++i) {
+ if ((tools & (1 << i))==0)
+ continue;
+ ++nactions;
+ }
+ actions = new Action*[nactions];
+ bool first = true;
+ int n = 0;
+ for (unsigned i = 0; i < sizeof(toolList)/sizeof(*toolList); ++i) {
+ if ((tools & (1 << i))==0)
+ continue;
+ ToolB* t = &toolList[i];
+
+ Action* a = new Action(action, 1<<i, t->tip, true);
+ actions[n] = a;
+ a->setIconSet(QIcon(**(t->icon)));
+ a->setToolTip(tr(t->tip));
+ a->setWhatsThis(tr(t->ltip));
+ if (first) {
+ a->setOn(true);
+ first = false;
+ }
+ ++n;
+ }
+ action->addTo(this);
+ connect(action, SIGNAL(selected(Q3Action*)), SLOT(toolChanged(QAction*)));
+ }
+
+//---------------------------------------------------------
+// toolChanged
+//---------------------------------------------------------
+
+void EditToolBar::toolChanged(Q3Action* action)
+ {
+ emit toolChanged(((Action*)action)->id());
+ }
+
+//---------------------------------------------------------
+// ~EditToolBar
+//---------------------------------------------------------
+
+EditToolBar::~EditToolBar()
+ {
+ delete actions;
+ }
+
+//---------------------------------------------------------
+// set
+//---------------------------------------------------------
+
+void EditToolBar::set(int id)
+ {
+ for (int i = 0; i < nactions; ++i) {
+ Action* action = actions[i];
+ if (action->id() == id) {
+ action->setOn(true);
+ return;
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// curTool
+//---------------------------------------------------------
+
+int EditToolBar::curTool()
+ {
+ for (int i = 0; i < nactions; ++i) {
+ Action* action = actions[i];
+ if (action->isOn())
+ return action->id();
+ }
+ return -1;
+ }
+
diff --git a/muse2/muse/widgets/tools.h b/muse2/muse/widgets/tools.h
new file mode 100644
index 00000000..efe5d57c
--- /dev/null
+++ b/muse2/muse/widgets/tools.h
@@ -0,0 +1,57 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: tools.h,v 1.1.1.1 2003/10/27 18:54:49 wschweer Exp $
+// (C) Copyright 1999 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __TOOLS_H__
+#define __TOOLS_H__
+
+#include <q3toolbar.h>
+//Added by qt3to4:
+#include <QPixmap>
+
+class Q3Action;
+class Action;
+class Q3MainWindow;
+
+enum Tool { PointerTool=1, PencilTool=2, RubberTool=4, CutTool=8,
+ ScoreTool=16, GlueTool=32, QuantTool=64, DrawTool=128, MuteTool=256};
+
+const int arrangerTools = PointerTool | PencilTool | RubberTool | CutTool | GlueTool | MuteTool;
+
+struct ToolB {
+ QPixmap** icon;
+ const char* tip;
+ const char* ltip;
+ };
+
+extern ToolB toolList[];
+
+//---------------------------------------------------------
+// EditToolBar
+//---------------------------------------------------------
+
+class EditToolBar : public Q3ToolBar {
+ Q_OBJECT
+ Action** actions;
+ int nactions;
+
+ private slots:
+ void toolChanged(Q3Action* action);
+
+ signals:
+ void toolChanged(int);
+
+ public slots:
+ void set(int id);
+
+ public:
+ EditToolBar(Q3MainWindow*, int, const char* name = 0);
+ ~EditToolBar();
+ int curTool();
+ };
+
+#endif
+
diff --git a/muse2/muse/widgets/transformbase.ui b/muse2/muse/widgets/transformbase.ui
new file mode 100644
index 00000000..06aea442
--- /dev/null
+++ b/muse2/muse/widgets/transformbase.ui
@@ -0,0 +1,1146 @@
+<!DOCTYPE UI><UI version="3.0" stdsetdef="1">
+<class>MidiTransformDialogBase</class>
+<widget class="QDialog">
+ <property name="name">
+ <cstring>MidiTransformDialogBase</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>636</width>
+ <height>521</height>
+ </rect>
+ </property>
+ <property name="caption">
+ <string>MusE: Midi Transformator</string>
+ </property>
+ <property name="sizeGripEnabled">
+ <bool>true</bool>
+ </property>
+ <grid>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>11</number>
+ </property>
+ <property name="spacing">
+ <number>6</number>
+ </property>
+ <widget class="QLayoutWidget" row="3" column="0" rowspan="1" colspan="2">
+ <property name="name">
+ <cstring>Layout4</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>0</number>
+ </property>
+ <property name="spacing">
+ <number>6</number>
+ </property>
+ <widget class="QPushButton">
+ <property name="name">
+ <cstring>buttonNew</cstring>
+ </property>
+ <property name="text">
+ <string>&amp;New</string>
+ </property>
+ <property name="autoDefault">
+ <bool>true</bool>
+ </property>
+ </widget>
+ <widget class="QPushButton">
+ <property name="name">
+ <cstring>buttonDelete</cstring>
+ </property>
+ <property name="text">
+ <string>&amp;Delete</string>
+ </property>
+ <property name="autoDefault">
+ <bool>true</bool>
+ </property>
+ </widget>
+ <spacer>
+ <property name="name" stdset="0">
+ <cstring>Horizontal Spacing2</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>20</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ <widget class="QPushButton">
+ <property name="name">
+ <cstring>buttonApply</cstring>
+ </property>
+ <property name="text">
+ <string>&amp;Apply</string>
+ </property>
+ <property name="autoDefault">
+ <bool>true</bool>
+ </property>
+ </widget>
+ <widget class="QPushButton">
+ <property name="name">
+ <cstring>buttonOk</cstring>
+ </property>
+ <property name="text">
+ <string>&amp;OK</string>
+ </property>
+ <property name="autoDefault">
+ <bool>true</bool>
+ </property>
+ <property name="default">
+ <bool>true</bool>
+ </property>
+ </widget>
+ <widget class="QPushButton">
+ <property name="name">
+ <cstring>buttonCancel</cstring>
+ </property>
+ <property name="text">
+ <string>&amp;Cancel</string>
+ </property>
+ <property name="autoDefault">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </hbox>
+ </widget>
+ <widget class="QLayoutWidget" row="0" column="0" rowspan="3" colspan="1">
+ <property name="name">
+ <cstring>Layout4</cstring>
+ </property>
+ <vbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>0</number>
+ </property>
+ <property name="spacing">
+ <number>6</number>
+ </property>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>TextLabel1_2</cstring>
+ </property>
+ <property name="text">
+ <string>PresetList</string>
+ </property>
+ </widget>
+ <widget class="QListBox">
+ <property name="name">
+ <cstring>presetList</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>3</hsizetype>
+ <vsizetype>3</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ </widget>
+ </vbox>
+ </widget>
+ <widget class="QGroupBox" row="1" column="1">
+ <property name="name">
+ <cstring>GroupBox5</cstring>
+ </property>
+ <property name="title">
+ <string>Processing</string>
+ </property>
+ <grid>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>11</number>
+ </property>
+ <property name="spacing">
+ <number>6</number>
+ </property>
+ <widget class="QLabel" row="0" column="0">
+ <property name="name">
+ <cstring>TextLabel5</cstring>
+ </property>
+ <property name="text">
+ <string>Event Type</string>
+ </property>
+ </widget>
+ <widget class="QComboBox" row="1" column="0">
+ <item>
+ <property name="text">
+ <string>Keep</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Fix</string>
+ </property>
+ </item>
+ <property name="name">
+ <cstring>procEventOp</cstring>
+ </property>
+ </widget>
+ <widget class="QComboBox" row="2" column="0">
+ <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>
+ <property name="name">
+ <cstring>procType</cstring>
+ </property>
+ </widget>
+ <widget class="QComboBox" row="1" column="1">
+ <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>
+ <property name="name">
+ <cstring>procVal1Op</cstring>
+ </property>
+ </widget>
+ <widget class="QLabel" row="0" column="1">
+ <property name="name">
+ <cstring>TextLabel6</cstring>
+ </property>
+ <property name="text">
+ <string>Value 1</string>
+ </property>
+ </widget>
+ <widget class="QLabel" row="0" column="2">
+ <property name="name">
+ <cstring>TextLabel7</cstring>
+ </property>
+ <property name="text">
+ <string>Value 2</string>
+ </property>
+ </widget>
+ <widget class="QLabel" row="0" column="3">
+ <property name="name">
+ <cstring>TextLabel10_2</cstring>
+ </property>
+ <property name="text">
+ <string>Length</string>
+ </property>
+ </widget>
+ <widget class="QLabel" row="0" column="4">
+ <property name="name">
+ <cstring>TextLabel12</cstring>
+ </property>
+ <property name="text">
+ <string>Position</string>
+ </property>
+ </widget>
+ <widget class="QComboBox" row="1" column="2">
+ <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>
+ <property name="name">
+ <cstring>procVal2Op</cstring>
+ </property>
+ </widget>
+ <widget class="QComboBox" row="1" column="3">
+ <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>
+ <property name="name">
+ <cstring>procLenOp</cstring>
+ </property>
+ </widget>
+ <widget class="QSpinBox" row="3" column="1">
+ <property name="name">
+ <cstring>procVal1b</cstring>
+ </property>
+ <property name="maxValue">
+ <number>9999</number>
+ </property>
+ </widget>
+ <widget class="QSpinBox" row="3" column="2">
+ <property name="name">
+ <cstring>procVal2b</cstring>
+ </property>
+ <property name="maxValue">
+ <number>9999</number>
+ </property>
+ </widget>
+ <widget class="SpinBoxFP" row="2" column="1">
+ <property name="name">
+ <cstring>procVal1a</cstring>
+ </property>
+ <property name="maxValue" stdset="0">
+ <number>99999999</number>
+ </property>
+ </widget>
+ <widget class="QComboBox" row="1" column="4">
+ <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>
+ <property name="name">
+ <cstring>procPosOp</cstring>
+ </property>
+ </widget>
+ <widget class="SpinBoxFP" row="2" column="2">
+ <property name="name">
+ <cstring>procVal2a</cstring>
+ </property>
+ <property name="maxValue" stdset="0">
+ <number>99999999</number>
+ </property>
+ </widget>
+ <widget class="SpinBoxFP" row="2" column="3">
+ <property name="name">
+ <cstring>procLenA</cstring>
+ </property>
+ <property name="maxValue" stdset="0">
+ <number>99999999</number>
+ </property>
+ </widget>
+ <widget class="SpinBoxFP" row="2" column="4">
+ <property name="name">
+ <cstring>procPosA</cstring>
+ </property>
+ <property name="maxValue" stdset="0">
+ <number>99999999</number>
+ </property>
+ </widget>
+ </grid>
+ </widget>
+ <widget class="QGroupBox" row="0" column="1">
+ <property name="name">
+ <cstring>GroupBox3</cstring>
+ </property>
+ <property name="title">
+ <string>Filter</string>
+ </property>
+ <grid>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>11</number>
+ </property>
+ <property name="spacing">
+ <number>6</number>
+ </property>
+ <widget class="QComboBox" row="1" column="0">
+ <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>
+ <property name="name">
+ <cstring>selEventOp</cstring>
+ </property>
+ </widget>
+ <widget class="QComboBox" row="2" column="0">
+ <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>
+ <property name="name">
+ <cstring>selType</cstring>
+ </property>
+ </widget>
+ <widget class="QLabel" row="0" column="2">
+ <property name="name">
+ <cstring>TextLabel3</cstring>
+ </property>
+ <property name="text">
+ <string>Value 2</string>
+ </property>
+ </widget>
+ <widget class="QLabel" row="0" column="1">
+ <property name="name">
+ <cstring>TextLabel2</cstring>
+ </property>
+ <property name="text">
+ <string>Value 1</string>
+ </property>
+ </widget>
+ <widget class="QLabel" row="0" column="0">
+ <property name="name">
+ <cstring>TextLabel1</cstring>
+ </property>
+ <property name="text">
+ <string>Event Type</string>
+ </property>
+ </widget>
+ <widget class="QComboBox" row="1" column="1">
+ <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>
+ <property name="name">
+ <cstring>selVal1Op</cstring>
+ </property>
+ </widget>
+ <widget class="QLabel" row="0" column="3">
+ <property name="name">
+ <cstring>TextLabel10</cstring>
+ </property>
+ <property name="text">
+ <string>Length</string>
+ </property>
+ </widget>
+ <widget class="QLabel" row="0" column="4">
+ <property name="name">
+ <cstring>TextLabel11</cstring>
+ </property>
+ <property name="text">
+ <string>Bar Range</string>
+ </property>
+ </widget>
+ <widget class="QComboBox" row="1" column="2">
+ <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>
+ <property name="name">
+ <cstring>selVal2Op</cstring>
+ </property>
+ </widget>
+ <widget class="QComboBox" row="1" column="3">
+ <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>
+ <property name="name">
+ <cstring>selLenOp</cstring>
+ </property>
+ </widget>
+ <widget class="QComboBox" row="1" column="4">
+ <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>
+ <property name="name">
+ <cstring>selRangeOp</cstring>
+ </property>
+ </widget>
+ <widget class="QSpinBox" row="3" column="1">
+ <property name="name">
+ <cstring>selVal1b</cstring>
+ </property>
+ <property name="maxValue">
+ <number>127</number>
+ </property>
+ </widget>
+ <widget class="QSpinBox" row="2" column="3">
+ <property name="name">
+ <cstring>selLenA</cstring>
+ </property>
+ <property name="maxValue">
+ <number>127</number>
+ </property>
+ </widget>
+ <widget class="QSpinBox" row="3" column="3">
+ <property name="name">
+ <cstring>selLenB</cstring>
+ </property>
+ <property name="maxValue">
+ <number>127</number>
+ </property>
+ </widget>
+ <widget class="QSpinBox" row="2" column="2">
+ <property name="name">
+ <cstring>selVal2a</cstring>
+ </property>
+ <property name="maxValue">
+ <number>127</number>
+ </property>
+ </widget>
+ <widget class="QSpinBox" row="3" column="2">
+ <property name="name">
+ <cstring>selVal2b</cstring>
+ </property>
+ <property name="maxValue">
+ <number>127</number>
+ </property>
+ </widget>
+ <widget class="QSpinBox" row="2" column="1">
+ <property name="name">
+ <cstring>selVal1a</cstring>
+ </property>
+ <property name="maxValue">
+ <number>127</number>
+ </property>
+ </widget>
+ <widget class="SpinBoxFP" row="3" column="4">
+ <property name="name">
+ <cstring>selBarB</cstring>
+ </property>
+ <property name="precision" stdset="0">
+ <number>3</number>
+ </property>
+ </widget>
+ <widget class="SpinBoxFP" row="2" column="4">
+ <property name="name">
+ <cstring>selBarA</cstring>
+ </property>
+ <property name="minValue" stdset="0">
+ <number>1000</number>
+ </property>
+ <property name="precision" stdset="0">
+ <number>3</number>
+ </property>
+ </widget>
+ </grid>
+ </widget>
+ <widget class="QLayoutWidget" row="2" column="1">
+ <property name="name">
+ <cstring>Layout6</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>0</number>
+ </property>
+ <property name="spacing">
+ <number>6</number>
+ </property>
+ <widget class="QGroupBox">
+ <property name="name">
+ <cstring>GroupBox6_2</cstring>
+ </property>
+ <property name="title">
+ <string>Preset</string>
+ </property>
+ <vbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>11</number>
+ </property>
+ <property name="spacing">
+ <number>6</number>
+ </property>
+ <widget class="QLayoutWidget">
+ <property name="name">
+ <cstring>Layout5_3</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>0</number>
+ </property>
+ <property name="spacing">
+ <number>6</number>
+ </property>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>TextLabel13_2</cstring>
+ </property>
+ <property name="text">
+ <string>Name:</string>
+ </property>
+ </widget>
+ <widget class="QLineEdit">
+ <property name="name">
+ <cstring>nameEntry</cstring>
+ </property>
+ </widget>
+ </hbox>
+ </widget>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>TextLabel14_2</cstring>
+ </property>
+ <property name="text">
+ <string>Comment:</string>
+ </property>
+ </widget>
+ <widget class="QMultiLineEdit">
+ <property name="name">
+ <cstring>commentEntry</cstring>
+ </property>
+ </widget>
+ </vbox>
+ </widget>
+ <widget class="QGroupBox">
+ <property name="name">
+ <cstring>GroupBox5_2</cstring>
+ </property>
+ <property name="title">
+ <string>Range</string>
+ </property>
+ <vbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>11</number>
+ </property>
+ <property name="spacing">
+ <number>6</number>
+ </property>
+ <widget class="QCheckBox">
+ <property name="name">
+ <cstring>processAll</cstring>
+ </property>
+ <property name="text">
+ <string>process all events</string>
+ </property>
+ </widget>
+ <widget class="QCheckBox">
+ <property name="name">
+ <cstring>selectedTracks</cstring>
+ </property>
+ <property name="text">
+ <string>selected tracks</string>
+ </property>
+ </widget>
+ <widget class="QCheckBox">
+ <property name="name">
+ <cstring>insideLoop</cstring>
+ </property>
+ <property name="text">
+ <string>inside loop</string>
+ </property>
+ </widget>
+ </vbox>
+ </widget>
+ <widget class="QGroupBox">
+ <property name="name">
+ <cstring>GroupBox7_2</cstring>
+ </property>
+ <property name="title">
+ <string>Function</string>
+ </property>
+ <vbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>11</number>
+ </property>
+ <property name="spacing">
+ <number>6</number>
+ </property>
+ <widget class="QComboBox">
+ <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>
+ <property name="name">
+ <cstring>funcOp</cstring>
+ </property>
+ </widget>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>TextLabel9_2</cstring>
+ </property>
+ <property name="text">
+ <string>Quantize Value</string>
+ </property>
+ </widget>
+ <widget class="ComboQuant">
+ <property name="name">
+ <cstring>funcQuantVal</cstring>
+ </property>
+ </widget>
+ </vbox>
+ </widget>
+ </hbox>
+ </widget>
+ </grid>
+</widget>
+<customwidgets>
+ <customwidget>
+ <class>SpinBoxFP</class>
+ <header location="global">spinboxFP.h</header>
+ <sizehint>
+ <width>50</width>
+ <height>20</height>
+ </sizehint>
+ <container>0</container>
+ <sizepolicy>
+ <hordata>5</hordata>
+ <verdata>5</verdata>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ <pixmap>image0</pixmap>
+ <signal>valueChanged(int value)</signal>
+ <signal>valueChanged(const QString&amp;)</signal>
+ <slot access="public" specifier="">setValue(int)</slot>
+ <slot access="public" specifier="">setPrefix(const QString&amp;)</slot>
+ <slot access="public" specifier="">setSuffix(const QString&amp;)</slot>
+ <slot access="public" specifier="">stepUp()</slot>
+ <slot access="public" specifier="">stepDown()</slot>
+ <property type="Int">precision</property>
+ <property type="Int">minValue</property>
+ <property type="Int">maxValue</property>
+ </customwidget>
+ <customwidget>
+ <class>ComboQuant</class>
+ <header location="local">comboQuant.h</header>
+ <sizehint>
+ <width>50</width>
+ <height>20</height>
+ </sizehint>
+ <container>0</container>
+ <sizepolicy>
+ <hordata>5</hordata>
+ <verdata>5</verdata>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ <pixmap>image0</pixmap>
+ <signal>valueChanged(int)</signal>
+ <slot access="public" specifier="">setValue(int)</slot>
+ </customwidget>
+</customwidgets>
+<images>
+ <image name="image0">
+ <data format="XPM.GZ" length="646">789c6dd2c10ac2300c00d07bbf2234b7229d1be245fc04c5a3201e4615f430059d0711ff5ddb2e6bb236ec90eed134cb5a19d8ef36602af5ecdbfeeac05dda0798d3abebde87e3faa374d3807fa0d633a52d38d8de6f679fe33fc776e196f53cd010188256a3600a292882096246517815ca99884606e18044a3a40d91824820924265a7923a2e8bcd05f33db1173e002913175f2a6be6d3294871a2d95fa00e8a94ee017b69d339d90df1e77c57ea072ede6758</data>
+ </image>
+</images>
+<connections>
+ <connection>
+ <sender>buttonOk</sender>
+ <signal>clicked()</signal>
+ <receiver>MidiTransformDialogBase</receiver>
+ <slot>accept()</slot>
+ </connection>
+ <connection>
+ <sender>buttonCancel</sender>
+ <signal>clicked()</signal>
+ <receiver>MidiTransformDialogBase</receiver>
+ <slot>reject()</slot>
+ </connection>
+</connections>
+<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>
+<layoutdefaults spacing="6" margin="11"/>
+</UI>
diff --git a/muse2/muse/widgets/transposebase.ui b/muse2/muse/widgets/transposebase.ui
new file mode 100644
index 00000000..caca7a35
--- /dev/null
+++ b/muse2/muse/widgets/transposebase.ui
@@ -0,0 +1,252 @@
+<!DOCTYPE UI><UI version="3.0" stdsetdef="1">
+<class>TransposeDialogBase</class>
+<widget class="QDialog">
+ <property name="name">
+ <cstring>TransposeDialogBase</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>289</width>
+ <height>317</height>
+ </rect>
+ </property>
+ <property name="caption">
+ <string>MusE: Midi Transpose</string>
+ </property>
+ <vbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>11</number>
+ </property>
+ <property name="spacing">
+ <number>6</number>
+ </property>
+ <widget class="QGroupBox">
+ <property name="name">
+ <cstring>GroupBox1</cstring>
+ </property>
+ <property name="title">
+ <string>Value</string>
+ </property>
+ <vbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>11</number>
+ </property>
+ <property name="spacing">
+ <number>6</number>
+ </property>
+ <widget class="QLayoutWidget">
+ <property name="name">
+ <cstring>Layout2</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>0</number>
+ </property>
+ <property name="spacing">
+ <number>6</number>
+ </property>
+ <widget class="QSpinBox">
+ <property name="name">
+ <cstring>delta</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minValue">
+ <number>-99</number>
+ </property>
+ </widget>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>TextLabel1</cstring>
+ </property>
+ <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>
+ </hbox>
+ </widget>
+ </vbox>
+ </widget>
+ <widget class="QButtonGroup">
+ <property name="name">
+ <cstring>ButtonGroup1</cstring>
+ </property>
+ <property name="title">
+ <string>Time</string>
+ </property>
+ <property name="exclusive">
+ <bool>true</bool>
+ </property>
+ <vbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>11</number>
+ </property>
+ <property name="spacing">
+ <number>6</number>
+ </property>
+ <widget class="QRadioButton">
+ <property name="name">
+ <cstring>time_all</cstring>
+ </property>
+ <property name="text">
+ <string>all</string>
+ </property>
+ <property name="checked">
+ <bool>true</bool>
+ </property>
+ </widget>
+ <widget class="QRadioButton">
+ <property name="name">
+ <cstring>time_selected</cstring>
+ </property>
+ <property name="text">
+ <string>between markers</string>
+ </property>
+ </widget>
+ </vbox>
+ </widget>
+ <widget class="QButtonGroup">
+ <property name="name">
+ <cstring>ButtonGroup2</cstring>
+ </property>
+ <property name="title">
+ <string>Parts</string>
+ </property>
+ <property name="exclusive">
+ <bool>true</bool>
+ </property>
+ <vbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>11</number>
+ </property>
+ <property name="spacing">
+ <number>6</number>
+ </property>
+ <widget class="QRadioButton">
+ <property name="name">
+ <cstring>parts_all</cstring>
+ </property>
+ <property name="text">
+ <string>all</string>
+ </property>
+ <property name="checked">
+ <bool>true</bool>
+ </property>
+ </widget>
+ <widget class="QRadioButton">
+ <property name="name">
+ <cstring>parts_selected</cstring>
+ </property>
+ <property name="caption">
+ <string></string>
+ </property>
+ <property name="text">
+ <string>all in selected tracks</string>
+ </property>
+ </widget>
+ </vbox>
+ </widget>
+ <widget class="QLayoutWidget">
+ <property name="name">
+ <cstring>Layout3</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>0</number>
+ </property>
+ <property name="spacing">
+ <number>6</number>
+ </property>
+ <spacer>
+ <property name="name" stdset="0">
+ <cstring>Spacer1</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>20</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ <widget class="QPushButton">
+ <property name="name">
+ <cstring>okButton</cstring>
+ </property>
+ <property name="text">
+ <string>OK</string>
+ </property>
+ <property name="autoDefault">
+ <bool>false</bool>
+ </property>
+ <property name="default">
+ <bool>true</bool>
+ </property>
+ </widget>
+ <widget class="QPushButton">
+ <property name="name">
+ <cstring>cancelButton</cstring>
+ </property>
+ <property name="text">
+ <string>Cancel</string>
+ </property>
+ </widget>
+ </hbox>
+ </widget>
+ </vbox>
+</widget>
+<connections>
+ <connection>
+ <sender>okButton</sender>
+ <signal>clicked()</signal>
+ <receiver>TransposeDialogBase</receiver>
+ <slot>accept()</slot>
+ </connection>
+ <connection>
+ <sender>cancelButton</sender>
+ <signal>clicked()</signal>
+ <receiver>TransposeDialogBase</receiver>
+ <slot>reject()</slot>
+ </connection>
+</connections>
+<layoutdefaults spacing="6" margin="11"/>
+</UI>
diff --git a/muse2/muse/widgets/ttoolbar.cpp b/muse2/muse/widgets/ttoolbar.cpp
new file mode 100644
index 00000000..fe15f885
--- /dev/null
+++ b/muse2/muse/widgets/ttoolbar.cpp
@@ -0,0 +1,24 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: ttoolbar.cpp,v 1.1.1.1 2003/10/27 18:54:46 wschweer Exp $
+// (C) Copyright 1999 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include <qaction.h>
+#include "globals.h"
+
+//---------------------------------------------------------
+// syncChanged
+//---------------------------------------------------------
+
+void syncChanged(bool flag)
+ {
+ startAction->setEnabled(!flag);
+ forwardAction->setEnabled(!flag);
+ rewindAction->setEnabled(!flag);
+ stopAction->setEnabled(!flag);
+ playAction->setEnabled(!flag);
+ }
+
+
diff --git a/muse2/muse/widgets/ttoolbar.h b/muse2/muse/widgets/ttoolbar.h
new file mode 100644
index 00000000..b7d34b2d
--- /dev/null
+++ b/muse2/muse/widgets/ttoolbar.h
@@ -0,0 +1,9 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: ttoolbar.h,v 1.1.1.1 2003/10/27 18:54:52 wschweer Exp $
+// (C) Copyright 1999 Werner Schweer (ws@seh.de)
+//=========================================================
+
+extern void syncChanged(bool flag);
+
diff --git a/muse2/muse/widgets/ttoolbutton.cpp b/muse2/muse/widgets/ttoolbutton.cpp
new file mode 100644
index 00000000..bf9234c6
--- /dev/null
+++ b/muse2/muse/widgets/ttoolbutton.cpp
@@ -0,0 +1,30 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: ttoolbutton.cpp,v 1.1 2004/02/21 16:53:50 wschweer Exp $
+// (C) Copyright 2004 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include <qpainter.h>
+//Added by qt3to4:
+#include <QPixmap>
+
+#include "ttoolbutton.h"
+#include "gconfig.h"
+#include "icons.h"
+
+//---------------------------------------------------------
+// drawButton
+//---------------------------------------------------------
+
+void TransparentToolButton::drawButton(QPainter* p)
+ {
+ int w = width();
+ int h = height();
+ QIcon::Mode mode = isEnabled() ? QIcon::Normal : QIcon::Disabled;
+ QIcon::State state = isOn() ? QIcon::On : QIcon::Off;
+ const QPixmap pm(iconSet().pixmap(QIcon::Automatic, mode, state));
+ p->drawPixmap(QPoint((w - pm.width())/2, (h - pm.height())/2), pm);
+ }
+
+
diff --git a/muse2/muse/widgets/ttoolbutton.h b/muse2/muse/widgets/ttoolbutton.h
new file mode 100644
index 00000000..381f3f18
--- /dev/null
+++ b/muse2/muse/widgets/ttoolbutton.h
@@ -0,0 +1,28 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: ttoolbutton.h,v 1.1 2004/02/21 16:53:51 wschweer Exp $
+// (C) Copyright 2004 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __TTOOLBUTTON_H__
+#define __TTOOLBUTTON_H__
+
+#include <qtoolbutton.h>
+
+//---------------------------------------------------------
+// TransparentToolButton
+//---------------------------------------------------------
+
+class TransparentToolButton : public QToolButton {
+ Q_OBJECT
+
+ virtual void drawButton(QPainter*);
+
+ public:
+ TransparentToolButton(QWidget* parent, const char* name = 0)
+ : QToolButton(parent, name) {}
+ };
+
+#endif
+
diff --git a/muse2/muse/widgets/utils.cpp b/muse2/muse/widgets/utils.cpp
new file mode 100644
index 00000000..2a4852f3
--- /dev/null
+++ b/muse2/muse/widgets/utils.cpp
@@ -0,0 +1,358 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: utils.cpp,v 1.1.1.1.2.3 2009/11/14 03:37:48 terminator356 Exp $
+// (C) Copyright 1999 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include <stdio.h>
+#include <stdlib.h>
+#include "utils.h"
+#include <math.h>
+#include <q3frame.h>
+#include <sys/time.h>
+
+// Quick bit-shift lookup table
+const unsigned int bitShiftLU[32] = { 0x1, 0x2, 0x4, 0x8, 0x10, 0x20, 0x40, 0x80,
+ 0x100, 0x200, 0x400, 0x800, 0x1000, 0x2000, 0x4000, 0x8000,
+ 0x10000, 0x20000, 0x40000, 0x80000, 0x100000, 0x200000, 0x400000, 0x800000,
+ 0x1000000, 0x2000000, 0x4000000, 0x8000000, 0x10000000, 0x20000000, 0x40000000, 0x80000000 };
+
+//---------------------------------------------------------
+// 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
+//---------------------------------------------------------
+
+Q3Frame* hLine(QWidget* w)
+ {
+ Q3Frame* delim = new Q3Frame(w);
+ delim->setFrameStyle(Q3Frame::HLine | Q3Frame::Sunken);
+ return delim;
+ }
+
+//---------------------------------------------------------
+// vLine
+//---------------------------------------------------------
+
+Q3Frame* vLine(QWidget* w)
+ {
+ Q3Frame* delim = new Q3Frame(w);
+ delim->setFrameStyle(Q3Frame::VLine | Q3Frame::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) {
+ for (int i = 0; i < 16; ++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.latin1());
+ return s;
+ }
+
+//---------------------------------------------------------
+// u32bitmap2String
+//---------------------------------------------------------
+// Added by Tim. p3.3.8
+
+QString u32bitmap2String(unsigned int bm)
+ {
+ QString s;
+//printf("bitmap2string: bm %04x", bm);
+ //if (bm == 0xffff)
+ if (bm == 0xffffffff)
+ s = "all";
+ else if (bm == 0)
+ s = "none";
+ else {
+ bool range = false;
+ int first = 0;
+ //unsigned int first = 0;
+ bool needSpace = false;
+ //bm &= 0xffff;
+ //for (int i = 0; i < 17; ++i) {
+ for (int i = 0; i < 33; ++i) {
+ if ((i < 32) && ((1U << 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);
+ //ns.sprintf("%u", first+1);
+ else
+ ns.sprintf("%d-%d", first+1, i);
+ //ns.sprintf("%u-%u", first+1, i);
+ s += ns;
+ needSpace = true;
+ }
+ range = false;
+ }
+ }
+ }
+//printf(" -> <%s>\n", s.latin1());
+ return s;
+ }
+
+//---------------------------------------------------------
+// string2bitmap
+//---------------------------------------------------------
+
+int string2bitmap(const QString& str)
+ {
+ int val = 0;
+ QString ss = str.simplifyWhiteSpace();
+ const char* s = ss.latin1();
+//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.latin1);
+ 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;
+ }
+
+//---------------------------------------------------------
+// string2u32bitmap
+//---------------------------------------------------------
+// Added by Tim. p3.3.8
+
+unsigned int string2u32bitmap(const QString& str)
+ {
+ //int val = 0;
+ unsigned int val = 0;
+ QString ss = str.simplifyWhiteSpace();
+ const char* s = ss.latin1();
+//printf("string2bitmap <%s>\n", s);
+
+ if (s == 0)
+ return 0;
+ if (strcmp(s, "all") == 0)
+ //return 0xffff;
+ return 0xffffffff;
+ if (strcmp(s, "none") == 0)
+ return 0;
+// printf("str2bitmap: <%s> ", str.latin1);
+ int tval = 0;
+ //unsigned int tval = 0;
+ bool range = false;
+ int sval = 0;
+ //unsigned 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)
+ //for (unsigned int i = sval-1; i < tval; ++i)
+ val |= (1U << i);
+ range = false;
+ }
+ else {
+ val |= (1U << (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)
+ //for (unsigned int i = sval-1; i < tval; ++i)
+ val |= (1U << i);
+ }
+ else if (tval) {
+ val |= (1U << (tval-1));
+ }
+ //return val & 0xffff;
+ return val;
+ }
+
+//---------------------------------------------------------
+// autoAdjustFontSize
+// w: Widget to auto adjust font size
+// s: String to fit
+// ignoreWidth: Set if dealing with a vertically constrained widget - one which is free to resize horizontally.
+// ignoreHeight: Set if dealing with a horizontally constrained widget - one which is free to resize vertically.
+//---------------------------------------------------------
+// Added by Tim. p3.3.8
+
+bool autoAdjustFontSize(Q3Frame* w, const QString& s, bool ignoreWidth, bool ignoreHeight, int max, int min)
+{
+ // In case the max or min was obtained from QFont::pointSize() which returns -1
+ // if the font is a pixel font, or if min is greater than max...
+ if(!w || (min < 0) || (max < 0) || (min > max))
+ return false;
+
+ // Limit the minimum and maximum sizes to something at least readable.
+ if(max < 4)
+ max = 4;
+ if(min < 4)
+ min = 4;
+
+ QRect cr = w->contentsRect();
+ QRect r;
+ QFont fnt = w->font();
+ // An extra amount just to be sure - I found it was still breaking up two words which would fit on one line.
+ int extra = 4;
+ // Allow at least one loop. min can be equal to max.
+ for(int i = max; i >= min; --i)
+ {
+ fnt.setPointSize(i);
+ QFontMetrics fm(fnt);
+ r = fm.boundingRect(s);
+ // Would the text fit within the widget?
+ if((ignoreWidth || (r.width() <= (cr.width() - extra))) && (ignoreHeight || (r.height() <= cr.height())))
+ break;
+ }
+ // Added by Tim. p3.3.9
+ //printf("autoAdjustFontSize: ptsz:%d widget:%s before setFont x:%d y:%d w:%d h:%d\n", fnt.pointSize(), w->name(), w->x(), w->y(), w->width(), w->height());
+
+ // Here we will always have a font ranging from min to max point size.
+ w->setFont(fnt);
+ // Added by Tim. p3.3.9
+ //printf("autoAdjustFontSize: ptsz:%d widget:%s x:%d y:%d w:%d h:%d frame w:%d rw:%d rh:%d\n", fnt.pointSize(), w->name(), w->x(), w->y(), w->width(), w->height(), w->frameWidth(), cr.width(), cr.height());
+
+ // Force minimum height. Use the expected height for the highest given point size.
+ // This way the mixer strips aren't all different label heights, but can be larger if necessary.
+ // Only if ignoreHeight is set (therefore the height is adjustable).
+ if(ignoreHeight)
+ {
+ fnt.setPointSize(max);
+ QFontMetrics fm(fnt);
+ // Set the label's minimum height equal to the height of the font.
+ w->setMinimumHeight(fm.height() + 2 * w->frameWidth());
+ }
+
+ return true;
+}
diff --git a/muse2/muse/widgets/utils.h b/muse2/muse/widgets/utils.h
new file mode 100644
index 00000000..aaf501f0
--- /dev/null
+++ b/muse2/muse/widgets/utils.h
@@ -0,0 +1,33 @@
+//Added by qt3to4:
+#include <Q3Frame>
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: utils.h,v 1.1.1.1.2.3 2009/11/14 03:37:48 terminator356 Exp $
+// (C) Copyright 1999 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __UTILS_H__
+#define __UTILS_H__
+
+class Q3Frame;
+class QWidget;
+
+#include <qstring.h>
+
+extern QString bitmap2String(int bm);
+extern int string2bitmap(const QString& str);
+extern QString u32bitmap2String(unsigned int bm);
+extern unsigned int string2u32bitmap(const QString& str);
+extern bool autoAdjustFontSize(Q3Frame* w, const QString& s, bool ignoreWidth = false, bool ignoreHeight = false, int max = 10, int min = 4);
+
+extern int num2cols(int min, int max);
+extern Q3Frame* hLine(QWidget* parent);
+extern Q3Frame* vLine(QWidget* parent);
+extern void dump(const unsigned char* p, int n);
+extern double curTime();
+
+extern const unsigned int bitShiftLU[32];
+
+#endif
+
diff --git a/muse2/muse/widgets/velocity.cpp b/muse2/muse/widgets/velocity.cpp
new file mode 100644
index 00000000..42eed7c9
--- /dev/null
+++ b/muse2/muse/widgets/velocity.cpp
@@ -0,0 +1,46 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: velocity.cpp,v 1.1.1.1 2003/10/27 18:55:04 wschweer Exp $
+// (C) Copyright 2001 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include <q3buttongroup.h>
+#include <qspinbox.h>
+//#include <qbutton.h>
+#include <QtGui>
+
+#include "velocity.h"
+
+#include "song.h"
+
+//---------------------------------------------------------
+// Velocity
+//---------------------------------------------------------
+
+Velocity::Velocity(QWidget* parent, const char* name)
+ : VelocityBase(parent, name, true)
+ {
+ }
+
+//---------------------------------------------------------
+// accept
+//---------------------------------------------------------
+
+void Velocity::accept()
+ {
+ _range = rangeGroup->id(rangeGroup->selected());
+ _rateVal = rate->value();
+ _offsetVal = offset->value();
+ VelocityBase::accept();
+ }
+
+//---------------------------------------------------------
+// setRange
+//---------------------------------------------------------
+
+void Velocity::setRange(int id)
+ {
+ rangeGroup->setButton(id);
+ }
+
diff --git a/muse2/muse/widgets/velocity.h b/muse2/muse/widgets/velocity.h
new file mode 100644
index 00000000..6d2ca60a
--- /dev/null
+++ b/muse2/muse/widgets/velocity.h
@@ -0,0 +1,36 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: velocity.h,v 1.1.1.1 2003/10/27 18:54:51 wschweer Exp $
+// (C) Copyright 2001 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __VELOCITY_H__
+#define __VELOCITY_H__
+
+#include "velocitybase.h"
+
+//---------------------------------------------------------
+// Velocity
+//---------------------------------------------------------
+
+class Velocity : public VelocityBase {
+ int _range;
+ int _rateVal;
+ int _offsetVal;
+
+ Q_OBJECT
+
+ protected slots:
+ void accept();
+
+ public:
+ Velocity(QWidget* parent, const char* name = 0);
+ void setRange(int id);
+ int range() const { return _range; }
+ int rateVal() const { return _rateVal; }
+ int offsetVal() const { return _offsetVal; }
+ };
+
+#endif
+
diff --git a/muse2/muse/widgets/velocitybase.ui b/muse2/muse/widgets/velocitybase.ui
new file mode 100644
index 00000000..e1510348
--- /dev/null
+++ b/muse2/muse/widgets/velocitybase.ui
@@ -0,0 +1,232 @@
+<!DOCTYPE UI><UI version="3.0" stdsetdef="1">
+<class>VelocityBase</class>
+<widget class="QDialog">
+ <property name="name">
+ <cstring>VelocityBase</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>275</width>
+ <height>274</height>
+ </rect>
+ </property>
+ <property name="caption">
+ <string>MusE: Modify Velocity</string>
+ </property>
+ <vbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>11</number>
+ </property>
+ <property name="spacing">
+ <number>6</number>
+ </property>
+ <widget class="QButtonGroup">
+ <property name="name">
+ <cstring>rangeGroup</cstring>
+ </property>
+ <property name="title">
+ <string>Range</string>
+ </property>
+ <property name="exclusive">
+ <bool>true</bool>
+ </property>
+ <vbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>11</number>
+ </property>
+ <property name="spacing">
+ <number>6</number>
+ </property>
+ <widget class="QRadioButton">
+ <property name="name">
+ <cstring>RadioButton5</cstring>
+ </property>
+ <property name="text">
+ <string>All Events</string>
+ </property>
+ <property name="buttonGroupId">
+ <number>0</number>
+ </property>
+ </widget>
+ <widget class="QRadioButton">
+ <property name="name">
+ <cstring>RadioButton6</cstring>
+ </property>
+ <property name="text">
+ <string>Selected Events</string>
+ </property>
+ <property name="checked">
+ <bool>true</bool>
+ </property>
+ <property name="buttonGroupId">
+ <number>1</number>
+ </property>
+ </widget>
+ <widget class="QRadioButton">
+ <property name="name">
+ <cstring>RadioButton7</cstring>
+ </property>
+ <property name="text">
+ <string>Looped Events</string>
+ </property>
+ <property name="buttonGroupId">
+ <number>2</number>
+ </property>
+ </widget>
+ <widget class="QRadioButton">
+ <property name="name">
+ <cstring>RadioButton8</cstring>
+ </property>
+ <property name="text">
+ <string>Selected &amp; Looped</string>
+ </property>
+ <property name="buttonGroupId">
+ <number>3</number>
+ </property>
+ </widget>
+ </vbox>
+ </widget>
+ <widget class="QGroupBox">
+ <property name="name">
+ <cstring>GroupBox3</cstring>
+ </property>
+ <property name="title">
+ <string>Values</string>
+ </property>
+ <grid>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>11</number>
+ </property>
+ <property name="spacing">
+ <number>6</number>
+ </property>
+ <widget class="QLabel" row="0" column="0">
+ <property name="name">
+ <cstring>TextLabel3</cstring>
+ </property>
+ <property name="text">
+ <string>Rate:</string>
+ </property>
+ </widget>
+ <widget class="QLabel" row="1" column="0">
+ <property name="name">
+ <cstring>TextLabel4</cstring>
+ </property>
+ <property name="text">
+ <string>Offset:</string>
+ </property>
+ </widget>
+ <widget class="QSpinBox" row="0" column="1">
+ <property name="name">
+ <cstring>rate</cstring>
+ </property>
+ <property name="suffix">
+ <string>%</string>
+ </property>
+ <property name="maxValue">
+ <number>200</number>
+ </property>
+ <property name="value">
+ <number>100</number>
+ </property>
+ </widget>
+ <widget class="QSpinBox" row="1" column="1">
+ <property name="name">
+ <cstring>offset</cstring>
+ </property>
+ <property name="maxValue">
+ <number>127</number>
+ </property>
+ <property name="minValue">
+ <number>1</number>
+ </property>
+ <property name="lineStep">
+ <number>1</number>
+ </property>
+ </widget>
+ </grid>
+ </widget>
+ <widget class="QLayoutWidget">
+ <property name="name">
+ <cstring>Layout3</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>0</number>
+ </property>
+ <property name="spacing">
+ <number>6</number>
+ </property>
+ <spacer>
+ <property name="name" stdset="0">
+ <cstring>Spacer1</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>20</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ <widget class="QPushButton">
+ <property name="name">
+ <cstring>okButton</cstring>
+ </property>
+ <property name="text">
+ <string>OK</string>
+ </property>
+ <property name="autoDefault">
+ <bool>false</bool>
+ </property>
+ <property name="default">
+ <bool>true</bool>
+ </property>
+ </widget>
+ <widget class="QPushButton">
+ <property name="name">
+ <cstring>cancelButton</cstring>
+ </property>
+ <property name="text">
+ <string>Cancel</string>
+ </property>
+ </widget>
+ </hbox>
+ </widget>
+ </vbox>
+</widget>
+<connections>
+ <connection>
+ <sender>okButton</sender>
+ <signal>clicked()</signal>
+ <receiver>VelocityBase</receiver>
+ <slot>accept()</slot>
+ </connection>
+ <connection>
+ <sender>cancelButton</sender>
+ <signal>clicked()</signal>
+ <receiver>VelocityBase</receiver>
+ <slot>reject()</slot>
+ </connection>
+</connections>
+<layoutdefaults spacing="6" margin="11"/>
+</UI>
diff --git a/muse2/muse/widgets/view.cpp b/muse2/muse/widgets/view.cpp
new file mode 100644
index 00000000..75116415
--- /dev/null
+++ b/muse2/muse/widgets/view.cpp
@@ -0,0 +1,514 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: view.cpp,v 1.3.2.2 2009/04/06 01:24:55 terminator356 Exp $
+// (C) Copyright 1999 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include "view.h"
+#include <cmath>
+#include <stdio.h>
+#include <QPainter>
+//Added by qt3to4:
+#include <QPixmap>
+#include <QResizeEvent>
+#include <QDropEvent>
+#include <QMouseEvent>
+#include <QKeyEvent>
+#include <QPaintEvent>
+
+//---------------------------------------------------------
+// View::View
+// double xMag = (xmag < 0) ? 1.0/-xmag : double(xmag)
+//---------------------------------------------------------
+
+View::View(QWidget* w, int xm, int ym, const char* name)
+ : QWidget(w, name, Qt::WNoAutoErase | Qt::WResizeNoErase)
+ {
+ xmag = xm;
+ ymag = ym;
+ xpos = 0;
+ ypos = 0;
+ xorg = 0;
+ yorg = 0;
+ _virt = true;
+ setBackgroundMode(Qt::NoBackground);
+ brush.setStyle(Qt::SolidPattern);
+ brush.setColor(Qt::lightGray);
+ pmValid = false;
+ }
+
+//---------------------------------------------------------
+// setOrigin
+//---------------------------------------------------------
+
+void View::setOrigin(int x, int y)
+ {
+ xorg = x;
+ yorg = y;
+ redraw();
+ }
+
+//---------------------------------------------------------
+// setXMag
+//---------------------------------------------------------
+
+void View::setXMag(int xs)
+ {
+ xmag = xs;
+ redraw();
+ }
+
+//---------------------------------------------------------
+// seqYMag
+//---------------------------------------------------------
+
+void View::setYMag(int ys)
+ {
+ ymag = ys;
+ redraw();
+ }
+
+//---------------------------------------------------------
+// setXPos
+// x - phys offset
+//---------------------------------------------------------
+
+void View::setXPos(int x)
+ {
+ int delta = xpos - x; // - -> shift left
+ xpos = x;
+ if (pm.isNull())
+ return;
+ if (!pmValid) {
+ //printf("View::setXPos !pmValid x:%d width:%d delta:%d\n", x, width(), delta);
+ redraw();
+ return;
+ }
+ int w = width();
+ int h = height();
+
+ QRect r;
+ if (delta >= w || delta <= -w)
+ r = QRect(0, 0, w, h);
+ else if (delta < 0) { // shift left
+ bitBlt(&pm, 0, 0, &pm, -delta, 0, w + delta, h, true); //CopyROP, true); // ddskrjo
+ r = QRect(w + delta, 0, -delta, h);
+ }
+ else { // shift right
+ bitBlt(&pm, delta, 0, &pm, 0, 0, w-delta, h, true); //CopyROP, true); // ddskrjo
+ r = QRect(0, 0, delta, h);
+ }
+ QRect olr = overlayRect();
+ QRect olr1(olr);
+ olr1.moveBy(delta, 0);
+
+ r |= olr;
+ r |= olr1;
+
+ //printf("View::setXPos x:%d w:%d delta:%d r.x:%d r.w:%d\n", x, w, delta, r.x(), r.width());
+
+ paint(r);
+ update();
+ }
+
+//---------------------------------------------------------
+// setYPos
+//---------------------------------------------------------
+
+void View::setYPos(int y)
+ {
+ int delta = ypos - y; // - -> shift up
+ ypos = y;
+ if (pm.isNull())
+ return;
+ if (!pmValid) {
+ //printf("View::setYPos !pmValid y:%d height:%d delta:%d\n", y, height(), delta);
+
+ redraw();
+ return;
+ }
+ int w = width();
+ int h = height();
+ QRect r;
+ if (delta >= h || delta <= -h)
+ r = QRect(0, 0, w, h);
+ else if (delta < 0) { // shift up
+ bitBlt(&pm, 0, 0, &pm, 0, -delta, w, h + delta, true); //CopyROP, true); ddskrjo
+ r = QRect(0, h + delta, w, -delta);
+ }
+ else { // shift down
+ bitBlt(&pm, 0, delta, &pm, 0, 0, w, h-delta, true); // CopyROP, true); ddskrjo
+
+ // NOTE: June 2 2010: On my machine with an old NV V8200 + prop drivers (curr 96.43.11),
+ // this is a problem. There is severe graphical corruption in some of the view-based windows.
+ // Not just here but several other windows (ex. ladspa browser).
+ // I believe (?) I saw other QT3 apps exhibit this problem, too. QT4 apps don't do it.
+ // Neither does it happen when xorg drivers used.
+ //
+ // However, there is one type of MusE corruption which ALL drivers seem to show, and that is
+ // the arranger 'grey' non-part-based tracks (Input, Output, Group etc.).
+ // It is also observed on another machine with an ATI card and a different linux distro.
+ // This change also fixes that problem, although the fact that xorg drivers show the problem
+ // had long made me believe that it was our drawing technique, not particularly this line.
+ // Meaning that perhaps this line is not the right way to fix that problem.
+ //
+ // On the other hand the two problems may be related, and only one shows with xorg drivers...
+ // Ultimately it could just be my NV card, as a request for similar experience in mail list
+ // returned all negative.
+ //
+ // FIXME: This change cures it for me, but we shouldn't leave this in - shouldn't need to do this...
+ //
+ //r = QRect(0, 0, w, delta);
+ // Changed p3.3.43
+ r = QRect(0, 0, w, h);
+
+ }
+ QRect olr = overlayRect();
+ QRect olr1(olr);
+ olr1.moveBy(0, delta);
+
+ r |= olr;
+ r |= olr1;
+ paint(r);
+ update();
+ }
+
+//---------------------------------------------------------
+// resizeEvent
+//---------------------------------------------------------
+
+void View::resizeEvent(QResizeEvent* ev)
+ {
+ pm.resize(ev->size());
+ pmValid = false;
+ }
+
+//---------------------------------------------------------
+// paintEvent
+//---------------------------------------------------------
+
+void View::paintEvent(QPaintEvent* ev)
+ {
+ //printf("View::paintEvent pmValid:%d x:%d width:%d y:%d height:%d\n", pmValid, ev->rect().x(), ev->rect().width(), ev->rect().y(), ev->rect().height());
+ if (!pmValid)
+ paint(ev->rect());
+ bitBlt(this, ev->rect().topLeft(), &pm, ev->rect(), true); // CopyROP, true); ddskrjo
+ }
+
+//---------------------------------------------------------
+// redraw
+//---------------------------------------------------------
+
+void View::redraw()
+ {
+ QRect r(0, 0, pm.width(), pm.height());
+ //printf("View::redraw() r.x:%d r.w:%d\n", r.x(), r.width());
+ paint(r);
+ update();
+ }
+
+//---------------------------------------------------------
+// redraw
+//---------------------------------------------------------
+
+void View::redraw(const QRect& r)
+ {
+ //printf("View::redraw(QRect& r) r.x:%d r.w:%d\n", r.x(), r.width());
+ paint(r);
+ update(r);
+ }
+
+//---------------------------------------------------------
+// paint
+// r - phys coord system
+//---------------------------------------------------------
+
+void View::paint(const QRect& r)
+ {
+ if (pm.isNull())
+ return;
+ QRect rr(r);
+ if (!pmValid) {
+ pmValid = true;
+ rr = QRect(0, 0, pm.width(), pm.height());
+ }
+ QPainter p(&pm);
+ if (bgPixmap.isNull())
+ p.fillRect(rr, brush);
+ else
+ p.drawTiledPixmap(rr, bgPixmap, QPoint(xpos + rmapx(xorg)
+ + rr.x(), ypos + rmapy(yorg) + rr.y()));
+ p.setClipRegion(rr);
+ //printf("View::paint r.x:%d w:%d\n", rr.x(), rr.width());
+ pdraw(p, rr); // draw into pixmap
+
+ p.resetXForm();
+ drawOverlay(p);
+ }
+
+//---------------------------------------------------------
+// keyPressEvent
+//---------------------------------------------------------
+
+void View::keyPressEvent(QKeyEvent* event)
+ {
+ viewKeyPressEvent(event);
+ }
+
+//---------------------------------------------------------
+// viewKeyPressEvent
+//---------------------------------------------------------
+
+void View::viewKeyPressEvent(QKeyEvent* event)
+ {
+ event->ignore();
+ }
+
+//---------------------------------------------------------
+// mousePressEvent
+//---------------------------------------------------------
+
+void View::mousePressEvent(QMouseEvent* ev)
+ {
+ QMouseEvent e(ev->type(), mapDev(ev->pos()),
+ ev->globalPos(), ev->button(), ev->state());
+ viewMousePressEvent(&e);
+ }
+
+//---------------------------------------------------------
+// mouseDoubleClickEvent
+//---------------------------------------------------------
+
+void View::mouseDoubleClickEvent(QMouseEvent* ev)
+ {
+ QMouseEvent e(ev->type(), mapDev(ev->pos()),
+ ev->globalPos(), ev->button(), ev->state());
+ viewMouseDoubleClickEvent(&e);
+ }
+
+//---------------------------------------------------------
+// mouseMoveEvent
+//---------------------------------------------------------
+
+void View::mouseMoveEvent(QMouseEvent* ev)
+ {
+ QMouseEvent e(ev->type(), mapDev(ev->pos()),
+ ev->globalPos(), ev->button(), ev->state());
+ viewMouseMoveEvent(&e);
+ }
+
+//---------------------------------------------------------
+// mouseReleaseEvent
+//---------------------------------------------------------
+
+void View::mouseReleaseEvent(QMouseEvent* ev)
+ {
+ QMouseEvent e(ev->type(), mapDev(ev->pos()),
+ ev->globalPos(), ev->button(), ev->state());
+ viewMouseReleaseEvent(&e);
+ }
+
+//---------------------------------------------------------
+// dropEvent
+//---------------------------------------------------------
+
+void View::dropEvent(QDropEvent* ev)
+ {
+ ev->setPoint(mapDev(ev->pos()));
+ viewDropEvent(ev);
+ }
+
+//---------------------------------------------------------
+// setBg
+//---------------------------------------------------------
+
+void View::setBg(const QPixmap& bgpm)
+ {
+ bgPixmap = bgpm;
+ redraw();
+ }
+
+//---------------------------------------------------------
+// pdraw
+// r - phys coords
+//---------------------------------------------------------
+
+void View::pdraw(QPainter& p, const QRect& r)
+ {
+ if (virt()) {
+ setPainter(p);
+ int x = r.x();
+ int y = r.y();
+ int w = r.width();
+ int h = r.height();
+ if (xmag <= 0) {
+ x -= 1;
+ w += 2;
+ x = (x + xpos + rmapx(xorg)) * (-xmag);
+ w = w * (-xmag);
+ }
+ else {
+ x = (x + xpos + rmapx(xorg)) / xmag;
+ w = (w + xmag - 1) / xmag;
+ x -= 1;
+ w += 2;
+ }
+ if (ymag <= 0) {
+ y -= 1;
+ h += 2;
+ y = (y + ypos + rmapy(yorg)) * (-ymag);
+ h = h * (-ymag);
+ }
+ else {
+ y = (y + ypos + rmapy(yorg)) / ymag;
+ h = (h + ymag - 1) / ymag;
+ y -= 1;
+ h += 2;
+ }
+
+ if (x < 0)
+ x = 0;
+ if (y < 0)
+ y = 0;
+ draw(p, QRect(x, y, w, h));
+ }
+ else
+ draw(p, r);
+ }
+
+//---------------------------------------------------------
+// setPainter
+//---------------------------------------------------------
+
+void View::setPainter(QPainter& p)
+ {
+ p.resetXForm();
+ p.translate(double(-(xpos+rmapx(xorg))), double(-(ypos+rmapy(yorg))));
+ double xMag = (xmag < 0) ? 1.0/(-xmag) : double(xmag);
+ double yMag = (ymag < 0) ? 1.0/(-ymag) : double(ymag);
+ p.scale(xMag, yMag);
+ }
+
+//---------------------------------------------------------
+// map
+//---------------------------------------------------------
+
+QRect View::map(const QRect& r) const
+ {
+ int x, y, w, h;
+ if (xmag < 0) {
+ x = r.x()/(-xmag) - (xpos + rmapx(xorg)); // round down
+ w = (r.width()-xmag-1) / (-xmag); // round up
+ }
+ else {
+ x = r.x()*xmag - (xpos + rmapx(xorg));
+ w = r.width() * xmag;
+ }
+ if (ymag < 0) {
+ y = r.y()/-ymag - (ypos + rmapy(yorg));
+ h = (r.height()-ymag-1) / (-ymag);
+ }
+ else {
+ y = r.y() * ymag - (ypos + rmapy(yorg));
+ h = r.height() * ymag;
+ }
+ return QRect(x, y, w, h);
+ }
+
+QPoint View::map(const QPoint& p) const
+ {
+ int x, y;
+ if (xmag < 0) {
+ x = p.x()/(-xmag) - (xpos + rmapx(xorg)); // round down
+ }
+ else {
+ x = p.x()*xmag - (xpos + rmapx(xorg));
+ }
+ if (ymag < 0) {
+ y = p.y()/-ymag - (ypos + rmapy(yorg));
+ }
+ else {
+ y = p.y() * ymag - (ypos + rmapy(yorg));
+ }
+ return QPoint(x, y);
+ }
+
+QRect View::mapDev(const QRect& r) const
+ {
+ return QRect(mapxDev(r.x()), mapyDev(r.y()),
+ rmapxDev(r.width()), rmapyDev(r.height()));
+ }
+
+QPoint View::mapDev(const QPoint& r) const
+ {
+ return QPoint(mapxDev(r.x()), mapyDev(r.y()));
+ }
+
+int View::mapx(int x) const
+ {
+ if (xmag < 0) {
+ return (x-xmag/2)/(-xmag) - (xpos + rmapx(xorg)); // round
+ }
+ else {
+ return (x * xmag) - (xpos + rmapx(xorg));
+ }
+ }
+int View::mapy(int y) const
+ {
+ if (ymag < 0) {
+ return (y-ymag/2)/(-ymag) - (ypos + rmapy(yorg)); // round
+ }
+ else {
+ return (y * ymag) - (ypos + rmapy(yorg));
+ }
+ }
+int View::mapxDev(int x) const
+ {
+ int val;
+ if (xmag <= 0)
+ val = (x + xpos + rmapx(xorg)) * (-xmag);
+ else
+ val = (x + xpos + rmapx(xorg) + xmag / 2) / xmag;
+ if (val < 0) // DEBUG
+ val = 0;
+ return val;
+ }
+
+int View::mapyDev(int y) const
+ {
+ if (ymag <= 0)
+ return (y + ypos + rmapy(yorg)) * (-ymag);
+ else
+ return (y + ypos + rmapy(yorg) + ymag / 2) / ymag;
+ }
+
+int View::rmapx(int x) const
+ {
+ if (xmag < 0)
+ return (x-xmag/2) / (-xmag);
+ else
+ return x * xmag;
+ }
+int View::rmapy(int y) const
+ {
+ if (ymag < 0)
+ return (y-ymag/2) / (-ymag);
+ else
+ return y * ymag;
+ }
+int View::rmapxDev(int x) const
+ {
+ if (xmag <= 0)
+ return x * (-xmag);
+ else
+ return (x + xmag/2) / xmag;
+ }
+int View::rmapyDev(int y) const
+ {
+ if (ymag <= 0)
+ return y * (-ymag);
+ else
+ return (y + ymag/2) / ymag;
+ }
+
diff --git a/muse2/muse/widgets/view.h b/muse2/muse/widgets/view.h
new file mode 100644
index 00000000..5eaf761f
--- /dev/null
+++ b/muse2/muse/widgets/view.h
@@ -0,0 +1,108 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: view.h,v 1.2.2.1 2008/01/26 07:23:21 terminator356 Exp $
+// (C) Copyright 1999 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __VIEW_H__
+#define __VIEW_H__
+
+#include <qwidget.h>
+#include <qpixmap.h>
+#include <qmatrix.h>
+#include <qpainter.h>
+#include <qbrush.h>
+//Added by qt3to4:
+#include <QResizeEvent>
+#include <QDropEvent>
+#include <QMouseEvent>
+#include <QKeyEvent>
+#include <QPaintEvent>
+
+//---------------------------------------------------------
+// View
+// horizontal View with double buffering
+//---------------------------------------------------------
+
+class View : public QWidget {
+ QPixmap pm; // for double buffering
+ bool pmValid;
+ QPixmap bgPixmap; // background Pixmap
+ QBrush brush;
+ bool _virt;
+ Q_OBJECT
+
+ protected:
+ int xorg;
+ int yorg;
+ int xpos, ypos;
+ int xmag, ymag;
+
+ virtual void keyPressEvent(QKeyEvent* event);
+ virtual void mousePressEvent(QMouseEvent* event);
+ virtual void mouseDoubleClickEvent(QMouseEvent* event);
+ virtual void mouseMoveEvent(QMouseEvent* event);
+ virtual void mouseReleaseEvent(QMouseEvent* event);
+ virtual void dropEvent(QDropEvent* event);
+
+ virtual void draw(QPainter&, const QRect&) {}
+ virtual void drawOverlay(QPainter&) {}
+ virtual QRect overlayRect() const { return QRect(0, 0, 0, 0); }
+
+ virtual void pdraw(QPainter&, const QRect&);
+
+ virtual void paintEvent(QPaintEvent* ev);
+ void redraw(const QRect&);
+
+ void paint(const QRect& r);
+
+ virtual void resizeEvent(QResizeEvent*);
+ virtual void viewKeyPressEvent(QKeyEvent*);
+ virtual void viewMousePressEvent(QMouseEvent*) {}
+ virtual void viewMouseDoubleClickEvent(QMouseEvent*) {}
+ virtual void viewMouseMoveEvent(QMouseEvent*) {}
+ virtual void viewMouseReleaseEvent(QMouseEvent*) {}
+ virtual void viewDropEvent(QDropEvent*) {}
+
+ QRect map(const QRect&) const;
+ QPoint map(const QPoint&) const;
+ QRect mapDev(const QRect&) const;
+ QPoint mapDev(const QPoint&) const;
+
+ int mapx(int x) const;
+ int mapy(int y) const;
+ int mapyDev(int y) const;
+ int mapxDev(int x) const;
+ int rmapy(int y) const;
+ int rmapyDev(int y) const;
+
+ void setPainter(QPainter& p);
+
+ public slots:
+ void setXPos(int);
+ void setYPos(int);
+ void setXMag(int xs);
+ void setYMag(int ys);
+ void redraw();
+
+ public:
+ View(QWidget*, int, int, const char* name = 0);
+ void setBg(const QPixmap& pm);
+ void setBg(const QColor& color) { brush.setColor(color); redraw(); }
+ void setXOffset(int v) { setXPos(mapx(v)); }
+ int xOffset() const { return mapxDev(xpos)-xorg; }
+ int xOffsetDev() const { return xpos-rmapx(xorg); }
+
+ int yOffset() const { return mapyDev(ypos)-yorg; }
+ int getXScale() const { return xmag; }
+ int getYScale() const { return ymag; }
+ void setOrigin(int x, int y);
+ void setVirt(bool flag) { _virt = flag; }
+ bool virt() const { return _virt; }
+ int rmapxDev(int x) const;
+ int rmapx(int x) const;
+ };
+
+#endif
+
diff --git a/muse2/muse/widgets/vscale.cpp b/muse2/muse/widgets/vscale.cpp
new file mode 100644
index 00000000..c0679882
--- /dev/null
+++ b/muse2/muse/widgets/vscale.cpp
@@ -0,0 +1,27 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: vscale.cpp,v 1.1.1.1 2003/10/27 18:54:41 wschweer Exp $
+// (C) Copyright 1999 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include "vscale.h"
+#include <qpainter.h>
+//Added by qt3to4:
+#include <QPaintEvent>
+
+//---------------------------------------------------------
+// paintEvent
+//---------------------------------------------------------
+
+void VScale::paintEvent(QPaintEvent*)
+ {
+ int h = height();
+ int w = width();
+ QPainter p(this);
+ p.drawLine(w/2, h/4, w, h/4);
+ p.drawLine(0, h/2, w, h/2);
+ p.drawLine(w/2, (3*h)/4, w, (3*h)/4);
+ setFixedWidth(18);
+ }
+
diff --git a/muse2/muse/widgets/vscale.h b/muse2/muse/widgets/vscale.h
new file mode 100644
index 00000000..b6b381ac
--- /dev/null
+++ b/muse2/muse/widgets/vscale.h
@@ -0,0 +1,29 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: vscale.h,v 1.1.1.1.2.1 2008/01/19 13:33:47 wschweer Exp $
+// (C) Copyright 1999 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __VSCALE_H__
+#define __VSCALE_H__
+
+#include <qwidget.h>
+//Added by qt3to4:
+#include <QPaintEvent>
+
+//---------------------------------------------------------
+// VScale
+//---------------------------------------------------------
+
+class VScale : public QWidget {
+ Q_OBJECT
+
+ virtual void paintEvent(QPaintEvent*);
+
+ public:
+ VScale(QWidget* parent) : QWidget(parent) {}
+ };
+
+#endif
+
diff --git a/muse2/muse/widgets/wtrackinfobase.ui b/muse2/muse/widgets/wtrackinfobase.ui
new file mode 100644
index 00000000..a429398a
--- /dev/null
+++ b/muse2/muse/widgets/wtrackinfobase.ui
@@ -0,0 +1,224 @@
+<!DOCTYPE UI><UI version="3.2" stdsetdef="1">
+<class>WaveTrackInfoBase</class>
+<widget class="QWidget">
+ <property name="name">
+ <cstring>WaveTrackInfoBase</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>120</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="caption">
+ <string>MusE: TrackInfo</string>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string></string>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string></string>
+ </property>
+ <vbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>1</number>
+ </property>
+ <property name="spacing">
+ <number>1</number>
+ </property>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>TextLabel1</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>7</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="frameShape">
+ <enum>WinPanel</enum>
+ </property>
+ <property name="frameShadow">
+ <enum>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>AlignCenter</set>
+ </property>
+ </widget>
+ <widget class="QLineEdit">
+ <property name="name">
+ <cstring>iName</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>7</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Track Name</string>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>Track Name</string>
+ </property>
+ </widget>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>TextLabel1_2</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>Output Route:</string>
+ </property>
+ </widget>
+ <widget class="QComboBox">
+ <property name="name">
+ <cstring>outputRoute</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ </widget>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>TextLabel2</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>Input Route:</string>
+ </property>
+ </widget>
+ <widget class="QComboBox">
+ <property name="name">
+ <cstring>inputRoute</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ </widget>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>TextLabel1_3</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>Ports:</string>
+ </property>
+ </widget>
+ <widget class="QComboBox">
+ <item>
+ <property name="text">
+ <string>Mono</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Stereo</string>
+ </property>
+ </item>
+ <property name="name">
+ <cstring>ports</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ </widget>
+ <spacer>
+ <property name="name">
+ <cstring>Spacer1</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Vertical</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>0</width>
+ <height>371</height>
+ </size>
+ </property>
+ </spacer>
+ </vbox>
+</widget>
+<tabstops>
+ <tabstop>iName</tabstop>
+</tabstops>
+<layoutdefaults spacing="6" margin="11"/>
+</UI>
diff --git a/muse2/muse/widgets/wtscale.cpp b/muse2/muse/widgets/wtscale.cpp
new file mode 100644
index 00000000..5976670e
--- /dev/null
+++ b/muse2/muse/widgets/wtscale.cpp
@@ -0,0 +1,289 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: wtscale.cpp,v 1.3 2004/04/11 13:03:32 wschweer Exp $
+// (C) Copyright 2000 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include <values.h>
+
+#include <qpainter.h>
+#include <qtooltip.h>
+//Added by qt3to4:
+#include <QPixmap>
+#include <QMouseEvent>
+#include <QEvent>
+
+#include "wtscale.h"
+#include "midieditor.h"
+#include "globals.h"
+#include "song.h"
+#include "../marker/marker.h"
+#include "icons.h"
+
+//---------------------------------------------------------
+// WTScale
+// Wave Time Scale
+//---------------------------------------------------------
+
+WTScale::WTScale(int* r, QWidget* parent, int xs)
+ : View(parent, xs, 1)
+ {
+ QToolTip::add(this, tr("bar scale"));
+ barLocator = false;
+ raster = r;
+ pos[0] = int(song->tempomap()->tick2time(song->cpos()) * sampleRate);
+ pos[1] = int(song->tempomap()->tick2time(song->lpos()) * sampleRate);
+ pos[2] = int(song->tempomap()->tick2time(song->rpos()) * sampleRate);
+ pos[3] = -1; // do not show
+ button = Qt::NoButton;
+ setMouseTracking(true);
+ connect(song, SIGNAL(posChanged(int, unsigned, bool)), SLOT(setPos(int, unsigned, bool)));
+ connect(song, SIGNAL(songChanged(int)), SLOT(songChanged(int)));
+ connect(song, SIGNAL(markerChanged(int)), SLOT(redraw()));
+ setFixedHeight(28);
+ setBg(QColor(0xe0, 0xe0, 0xe0));
+ }
+
+//---------------------------------------------------------
+// songChanged
+//---------------------------------------------------------
+
+void WTScale::songChanged(int /*type*/)
+ {
+ }
+
+//---------------------------------------------------------
+// setPos
+//---------------------------------------------------------
+
+void WTScale::setPos(int idx, unsigned val, bool adjustScrollbar)
+ {
+ val = int(song->tempomap()->tick2time(val) * sampleRate);
+ if (val == pos[idx])
+ return;
+ int opos = mapx(pos[idx] == -1 ? val : pos[idx]);
+ pos[idx] = val;
+ if (!isVisible())
+ return;
+ val = mapx(val);
+ int x = -9;
+ int w = 18;
+ if (opos > val) {
+ w += opos - val;
+ x += val;
+ }
+ else {
+ w += val - opos;
+ x += opos;
+ }
+ redraw(QRect(x, 0, w, height()));
+ }
+
+//---------------------------------------------------------
+// viewMousePressEvent
+//---------------------------------------------------------
+
+void WTScale::viewMousePressEvent(QMouseEvent* event)
+ {
+ button = event->button();
+ viewMouseMoveEvent(event);
+ }
+
+//---------------------------------------------------------
+// viewMouseReleaseEvent
+//---------------------------------------------------------
+
+void WTScale::viewMouseReleaseEvent(QMouseEvent* event)
+ {
+ button = Qt::NoButton;
+ }
+
+//---------------------------------------------------------
+// viewMouseMoveEvent
+//---------------------------------------------------------
+
+void WTScale::viewMouseMoveEvent(QMouseEvent* event)
+ {
+ int x= song->tempomap()->time2tick(double(event->x())/double(sampleRate));
+ x = song->raster(x, *raster);
+ if (x < 0)
+ x = 0;
+ emit timeChanged(x);
+ int i;
+ switch (button) {
+ case Qt::LeftButton:
+ i = 0;
+ break;
+ case Qt::MidButton:
+ i = 1;
+ break;
+ case Qt::RightButton:
+ i = 2;
+ break;
+ default:
+ return;
+ }
+ song->setPos(i, x);
+ }
+
+//---------------------------------------------------------
+// leaveEvent
+//---------------------------------------------------------
+
+void WTScale::leaveEvent(QEvent*)
+ {
+// emit timeChanged(MAXINT);
+ }
+
+//---------------------------------------------------------
+// draw
+//---------------------------------------------------------
+
+void WTScale::pdraw(QPainter& p, const QRect& r)
+ {
+ int x = r.x();
+ int w = r.width();
+
+ x -= 20;
+ w += 40; // wg. Text
+
+ //
+ // draw Marker
+ //
+ int y = 12;
+ p.setPen(Qt::black);
+ p.setFont(font4);
+ p.drawLine(r.x(), y+1, r.x() + r.width(), y+1);
+ QRect tr(r);
+ tr.setHeight(12);
+ MarkerList* marker = song->marker();
+ for (iMarker m = marker->begin(); m != marker->end(); ++m) {
+ int xp = mapx(int(m->second.time() * sampleRate));
+ if (xp > x+w)
+ break;
+ int xe = r.x() + r.width();
+ iMarker mm = m;
+ ++mm;
+ if (mm != marker->end()) {
+ xe = mapx(mm->first);
+ }
+ QRect tr(xp, 0, xe-xp, 13);
+ if (m->second.current()) {
+ p.fillRect(tr, Qt::white);
+ }
+ if (r.intersects(tr)) {
+ int x2;
+ 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());
+ }
+ }
+
+ //---------------------------------------------------
+ // draw location marker
+ //---------------------------------------------------
+
+ int h = height()-12;
+
+ if (barLocator) {
+ p.setPen(Qt::red);
+ int xp = mapx(pos[0]);
+ if (xp >= x && xp < x+w)
+ p.drawLine(xp, y, xp, h);
+ p.setPen(Qt::blue);
+ xp = mapx(pos[1]);
+ if (xp >= x && xp < x+w)
+ p.drawLine(xp, y, xp, h);
+ xp = mapx(pos[2]);
+ if (xp >= x && xp < x+w)
+ p.drawLine(xp, y, xp, h);
+ }
+ else {
+ for (int i = 0; i < 3; ++i) {
+ int xp = mapx(pos[i]);
+ if (xp >= x && xp < x+w) {
+ QPixmap* pm = markIcon[i];
+ p.drawPixmap(xp - pm->width()/2, y-1, *pm);
+ }
+ }
+ }
+ p.setPen(Qt::black);
+ if (pos[3] != -1) {
+ int xp = mapx(pos[3]);
+ if (xp >= x && xp < x+w)
+ p.drawLine(xp, 0, xp, height());
+ }
+
+ int ctick = song->samples2tick(mapxDev(x));
+ int bar1, bar2, beat, tick;
+ song->tickValues(ctick, &bar1, &beat, &tick);
+ song->tickValues(song->samples2tick(mapxDev(x+w)), &bar2, &beat, &tick);
+
+//printf("bar %d %d-%d=%d\n", bar, ntick, stick, ntick-stick);
+
+ int stick = song->bar2tick(bar1, 0, 0);
+ int ntick;
+ for (int bar = bar1; bar <= bar2; bar++, stick = ntick) {
+ ntick = song->bar2tick(bar+1, 0, 0);
+ int a = song->tick2samples(ntick);
+ int b = song->tick2samples(stick);
+ int tpix = rmapx(a - b);
+ if (tpix < 64) {
+ // don´t show beats if measure is this small
+ int n = 1;
+ if (tpix < 32)
+ n = 2;
+ if (tpix <= 16)
+ n = 4;
+ if (tpix < 8)
+ n = 8;
+ if (tpix <= 4)
+ n = 16;
+ if (tpix <= 2)
+ n = 32;
+ if (bar % n)
+ continue;
+ p.setFont(font3);
+ int x = mapx(b);
+ QString s;
+ s.setNum(bar + 1);
+ p.drawLine(x, y+1, x, y+1+h);
+ QRect r = QRect(x+2, y, 0, h);
+ p.drawText(r, Qt::AlignLeft|Qt::AlignVCenter|Qt::TextDontClip, s);
+ }
+ else {
+ int z, n;
+ song->timesig(stick, z, n);
+ for (int beat = 0; beat < z; beat++) {
+ int xx = song->tick2samples(song->bar2tick(bar, beat, 0));
+ int xp = mapx(xx);
+ QString s;
+ QRect r(xp+2, y, 0, h);
+ int y1;
+ int num;
+ if (beat == 0) {
+ num = bar + 1;
+ y1 = y + 1;
+ p.setFont(font3);
+ }
+ else {
+ num = beat + 1;
+ y1 = y + 7;
+ p.setFont(font1);
+ r.setY(y+3);
+ }
+ s.setNum(num);
+ p.drawLine(xp, y1, xp, y+1+h);
+ p.drawText(r, Qt::AlignLeft|Qt::AlignVCenter|Qt::TextDontClip, s);
+ }
+ }
+ }
+ }
+
diff --git a/muse2/muse/widgets/wtscale.h b/muse2/muse/widgets/wtscale.h
new file mode 100644
index 00000000..ab378296
--- /dev/null
+++ b/muse2/muse/widgets/wtscale.h
@@ -0,0 +1,51 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: wtscale.h,v 1.2 2004/01/11 18:55:37 wschweer Exp $
+// (C) Copyright 2000 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __MTSCALE_H__
+#define __MTSCALE_H__
+
+#include "view.h"
+//Added by qt3to4:
+#include <QMouseEvent>
+#include <QEvent>
+
+class QPainter;
+
+//---------------------------------------------------------
+// WTScale
+// scale for wave track
+//---------------------------------------------------------
+
+class WTScale : public View {
+ Q_OBJECT
+ int* raster;
+ unsigned pos[4];
+ int button;
+ bool barLocator;
+
+ private slots:
+ void songChanged(int);
+
+ protected:
+ virtual void pdraw(QPainter&, const QRect&);
+ virtual void viewMousePressEvent(QMouseEvent* event);
+ virtual void viewMouseMoveEvent(QMouseEvent* event);
+ virtual void viewMouseReleaseEvent(QMouseEvent* event);
+ virtual void leaveEvent(QEvent*e);
+
+ signals:
+ void timeChanged(unsigned);
+
+ public slots:
+ void setPos(int, unsigned, bool);
+
+ public:
+ WTScale(int* raster, QWidget* parent, int xscale);
+ void setBarLocator(bool f) { barLocator = f; }
+ };
+#endif
+
diff --git a/muse2/muse/xml.cpp b/muse2/muse/xml.cpp
new file mode 100644
index 00000000..88251cc8
--- /dev/null
+++ b/muse2/muse/xml.cpp
@@ -0,0 +1,733 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: xml.cpp,v 1.17.2.6 2009/12/07 20:48:45 spamatica Exp $
+//
+// (C) Copyright 2000 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include <stdio.h>
+#include <stdarg.h>
+#include <qstring.h>
+#include <qcolor.h>
+#include <qwidget.h>
+#include <qrect.h>
+
+#include "xml.h"
+
+//---------------------------------------------------------
+// Note:
+// this code is a Q/D hack for reading/parsing and
+// writing XML-Files
+// - can only handle the XML subset used by MusE
+// - may not handle misformed XML (eg. when manually
+// editing MusE output)
+
+//---------------------------------------------------------
+// Xml
+//---------------------------------------------------------
+
+Xml::Xml(FILE* _f)
+ {
+ f = _f;
+ _line = 0;
+ _col = 0;
+ level = 0;
+ inTag = false;
+ inComment = false;
+ lbuffer[0] = 0;
+ bufptr = lbuffer;
+ _minorVersion = -1;
+ _majorVersion = -1;
+ }
+
+Xml::Xml(const char* buf)
+ {
+ f = 0;
+ _line = 0;
+ _col = 0;
+ level = 0;
+ inTag = false;
+ inComment = false;
+ bufptr = buf;
+ _minorVersion = -1;
+ _majorVersion = -1;
+ }
+
+//---------------------------------------------------------
+// next
+//---------------------------------------------------------
+
+void Xml::next()
+ {
+ if (*bufptr == 0) {
+ if (f == 0 || fgets(lbuffer, 512, f) == 0) {
+ c = EOF;
+ return;
+ }
+ bufptr = lbuffer;
+ }
+ c = *bufptr++;
+ if (c == '\n') {
+ ++_line;
+ _col = -1;
+ }
+ ++_col;
+ }
+
+//---------------------------------------------------------
+// nextc
+// get next non space character
+//---------------------------------------------------------
+
+void Xml::nextc()
+ {
+ next();
+ while (c == ' ' || c == '\t' || c == '\n')
+ next();
+ }
+
+//---------------------------------------------------------
+// token
+// read token into _s2
+//---------------------------------------------------------
+
+void Xml::token(int cc)
+ {
+ char buffer[512];
+ int i = 0;
+ for (; i < 511;) {
+ if (c == ' ' || c == '\t' || c == cc || c == '\n' || c == EOF)
+ break;
+ buffer[i++] = c;
+ next();
+ }
+ buffer[i] = 0;
+ _s2 = buffer; // deep copy !?
+ }
+
+//---------------------------------------------------------
+// stoken
+// read string token into _s2
+//---------------------------------------------------------
+
+void Xml::stoken()
+ {
+ char buffer[1024*4];
+ int i = 0;
+ buffer[i] = c;
+ ++i;
+ next();
+ for (;i < 1024*4-1;) {
+ if (c == '"') {
+ buffer[i++] = c;
+ next();
+ break;
+ }
+ if (c == '&') {
+ char entity[6];
+ int k = 0;
+ for (; k < 6; ++k) {
+ next();
+ if (c == EOF)
+ break;
+ else if (c == ';') {
+ entity[k] = 0;
+ if (strcmp(entity, "quot") == 0)
+ c = '"';
+ else if (strcmp(entity, "amp") == 0)
+ c = '&';
+ else if (strcmp(entity, "lt") == 0)
+ c = '<';
+ else if (strcmp(entity, "gt") == 0)
+ c = '>';
+ else if (strcmp(entity, "apos") == 0)
+ c = '\\';
+ else
+ entity[k] = c;
+ break;
+ }
+ else
+ entity[k] = c;
+ }
+ if (c == EOF || k == 6) {
+ // dump entity
+ int n = 0;
+ buffer[i++] = '&';
+ for (;(i < 511) && (n < k); ++i, ++n)
+ buffer[i] = entity[n];
+ }
+ else
+ buffer[i++] = c;
+ }
+ else if(c != EOF)
+ buffer[i++] = c;
+ if (c == EOF)
+ break;
+ next();
+ }
+ buffer[i] = 0;
+ _s2 = buffer;
+ }
+
+//---------------------------------------------------------
+// strip
+// strip `"` from string
+//---------------------------------------------------------
+
+QString Xml::strip(const QString& s)
+ {
+ int l = s.length();
+ if (l >= 2 && s[0] == '"')
+ return s.mid(1, l-2);
+ return s;
+ }
+
+//---------------------------------------------------------
+// parse
+//---------------------------------------------------------
+
+Xml::Token Xml::parse()
+ {
+ char buffer[1024*1024]; // increase buffer -rj
+ char* p;
+
+ again:
+ bool endFlag = false;
+ nextc();
+ if (c == EOF) {
+ printf("unexpected EOF reading *.med file at level %d, line %d, <%s><%s><%s>\n",
+ level, _line, _tag.latin1(), _s1.latin1(), _s2.latin1());
+ return level == 0 ? End : Error;
+ }
+
+ _s1 = QString("");
+ if (inTag) {
+ //-------------------
+ // parse Attributes
+ //-------------------
+ if (c == '/') {
+ nextc();
+ token('>');
+ if (c != '>') {
+ printf("Xml: unexpected char '%c', expected '>'\n", c);
+ goto error;
+ }
+ _s1 = _tag;
+ inTag = false;
+ --level;
+ return TagEnd;
+ }
+ _s2 = QString("");
+ token('=');
+ _s1 = _s2;
+ nextc(); // skip space
+ if (c == '"')
+ stoken();
+ else
+ token('>');
+ if (c == '>')
+ inTag = false;
+ else
+ --bufptr;
+ _s2 = strip(_s2);
+ return Attribut;
+ }
+ if (c == '<') {
+ //--------------
+ // parse Tag
+ //--------------
+ next();
+ if (c == '/') {
+ endFlag = true;
+ next();
+ }
+ if (c == '?') {
+ next();
+ p = buffer;
+ for (;;) {
+ if (c == '?' || c == EOF || c == '>')
+ break;
+ *p++ = c;
+ // TODO: check overflow
+ next();
+ }
+ *p = 0;
+ _s1 = QString(buffer);
+ if (c == EOF) {
+ fprintf(stderr, "XML: unexpected EOF\n");
+ goto error;
+ }
+ nextc();
+ if (c != '>') {
+ fprintf(stderr, "XML: '>' expected\n");
+ goto error;
+ }
+ next();
+ return Proc;
+ }
+ else if (c == '!') { // process comment
+ bool endc = false;
+ for(;;) {
+ next();
+ if (c == '>' && endc)
+ break;
+ endc = c == '-';
+ if (c == EOF) {
+ fprintf(stderr, "XML: unexpected EOF in comment\n");
+ goto error;
+ }
+ }
+ goto again;
+ }
+ p = buffer;
+ for (;;) {
+ if (c == '/' || c == ' ' || c == '\t' || c == '>' || c == '\n' || c == EOF)
+ break;
+ // TODO: check overflow
+ *p++ = c;
+ next();
+ }
+ *p = 0;
+ _s1 = QString(buffer);
+ // skip white space:
+ while (c == ' ' || c == '\t' || c == '\n')
+ next();
+ if (c == '/') {
+ nextc();
+ if (c == '>')
+ return Flag;
+ fprintf(stderr, "XML: '>' expected\n");
+ goto error;
+ }
+ if (c == '?') {
+ nextc();
+ if (c == '>')
+ return Proc;
+ fprintf(stderr, "XML: '>' expected\n");
+ goto error;
+ }
+ if (c == '>') {
+ if (endFlag) {
+ --level;
+ return TagEnd;
+ }
+ else {
+ ++level;
+ return TagStart;
+ }
+ }
+ else {
+ _tag = _s1;
+ --bufptr;
+ inTag = true;
+ ++level;
+ if (!endFlag) {
+ return TagStart;
+ }
+ fprintf(stderr, "XML: endFlag expected\n");
+ goto error;
+ }
+ }
+ else {
+ //--------------
+ // parse Text
+ //--------------
+ if (level == 0) {
+ fprintf(stderr, "XML: level = 0\n");
+ goto error;
+ }
+ p = buffer;
+ for (;;) {
+ if (c == EOF || c == '<')
+ break;
+ if (c == '&') {
+ next();
+ if (c == '<') { // be tolerant with old muse files
+ *p++ = '&';
+ continue;
+ }
+ char name[32];
+ char* dp = name;
+ *dp++ = c;
+ for (; dp-name < 31;) {
+ next();
+ if (c == ';')
+ break;
+ *dp++ = c;
+ }
+ *dp = 0;
+ if (strcmp(name, "lt") == 0)
+ c = '<';
+ else if (strcmp(name, "gt") == 0)
+ c = '>';
+ else if (strcmp(name, "apos") == 0)
+ c = '\\';
+ else if (strcmp(name, "quot") == 0)
+ c = '"';
+ else if (strcmp(name, "amp") == 0)
+ c = '&';
+ else
+ c = '?';
+ }
+ *p++ = c;
+ next();
+ }
+ *p = 0;
+ _s1 = QString(buffer);
+
+ if (c == '<')
+ --bufptr;
+ return Text;
+ }
+error:
+ fprintf(stderr, "XML Parse Error at line %d col %d\n", _line, _col+1);
+ return Error;
+ }
+
+//---------------------------------------------------------
+// parse(QString)
+//---------------------------------------------------------
+
+QString Xml::parse(const QString& tag)
+ {
+ QString a;
+
+ for (;;) {
+ switch (parse()) {
+ case Error:
+ case End:
+ return a;
+ default:
+ case TagStart:
+ case Attribut:
+ break;
+ case Text:
+ a = _s1;
+ break;
+ case TagEnd:
+ if (_s1 == tag)
+ return a;
+ break;
+ }
+ }
+ return a;
+ }
+
+//---------------------------------------------------------
+// parse1
+//---------------------------------------------------------
+
+QString Xml::parse1()
+ {
+ return parse(_s1.simplifyWhiteSpace());
+ }
+
+//---------------------------------------------------------
+// parseInt
+//---------------------------------------------------------
+
+int Xml::parseInt()
+ {
+ QString s(parse1().simplifyWhiteSpace());
+ bool ok;
+ int base = 10;
+ if (s.startsWith("0x") || s.startsWith("0X")) {
+ base = 16;
+ s = s.mid(2);
+ }
+ int n = s.toInt(&ok, base);
+ return n;
+ }
+
+//---------------------------------------------------------
+// parseUInt
+//---------------------------------------------------------
+// Added by Tim. p3.3.8
+
+unsigned int Xml::parseUInt()
+ {
+ QString s(parse1().simplifyWhiteSpace());
+ bool ok;
+ int base = 10;
+ if (s.startsWith("0x") || s.startsWith("0X")) {
+ base = 16;
+ s = s.mid(2);
+ }
+ unsigned int n = s.toUInt(&ok, base);
+ return n;
+ }
+
+//---------------------------------------------------------
+// parseFloat
+//---------------------------------------------------------
+
+float Xml::parseFloat()
+ {
+ QString s(parse1().simplifyWhiteSpace());
+ return s.toFloat();
+ }
+
+//---------------------------------------------------------
+// parseDouble
+//---------------------------------------------------------
+
+double Xml::parseDouble()
+ {
+ QString s(parse1().simplifyWhiteSpace());
+ return s.toDouble();
+ }
+
+//---------------------------------------------------------
+// unknown
+//---------------------------------------------------------
+
+void Xml::unknown(const char* s)
+ {
+ printf("%s: unknown tag <%s> at line %d\n",
+ s, _s1.latin1(), _line+1);
+ parse1();
+ }
+
+//---------------------------------------------------------
+// header
+//---------------------------------------------------------
+
+void Xml::header()
+ {
+ fprintf(f, "<?xml version=\"1.0\"?>\n");
+ }
+
+//---------------------------------------------------------
+// put
+//---------------------------------------------------------
+
+void Xml::put(const char* format, ...)
+ {
+ va_list args;
+ va_start(args, format);
+
+ vfprintf(f, format, args);
+ va_end(args);
+ putc('\n', f);
+ }
+
+void Xml::put(int level, const char* format, ...)
+ {
+ va_list args;
+ va_start(args, format);
+ putLevel(level);
+ vfprintf(f, format, args);
+ va_end(args);
+ putc('\n', f);
+ }
+
+//---------------------------------------------------------
+// nput
+//---------------------------------------------------------
+
+void Xml::nput(int level, const char* format, ...)
+ {
+ va_list args;
+ va_start(args, format);
+ putLevel(level);
+ vfprintf(f, format, args);
+ va_end(args);
+ }
+
+void Xml::nput(const char* format, ...)
+ {
+ va_list args;
+ va_start(args, format);
+ vfprintf(f, format, args);
+ va_end(args);
+ }
+
+//---------------------------------------------------------
+// tag
+//---------------------------------------------------------
+
+void Xml::tag(int level, const char* format, ...)
+ {
+ va_list args;
+ va_start(args, format);
+ putLevel(level);
+ putc('<', f);
+ vfprintf(f, format, args);
+ va_end(args);
+ putc('>', f);
+ putc('\n', f);
+ }
+
+//---------------------------------------------------------
+// etag
+//---------------------------------------------------------
+
+void Xml::etag(int level, const char* format, ...)
+ {
+ va_list args;
+ va_start(args, format);
+ putLevel(level);
+ putc('<', f);
+ putc('/', f);
+ vfprintf(f, format, args);
+ va_end(args);
+ putc('>', f);
+ putc('\n', f);
+ }
+
+void Xml::putLevel(int n)
+ {
+ for (int i = 0; i < n*2; ++i)
+ putc(' ', f);
+ }
+
+void Xml::intTag(int level, const char* name, int val)
+ {
+ putLevel(level);
+ fprintf(f, "<%s>%d</%s>\n", name, val, name);
+ }
+
+void Xml::uintTag(int level, const char* name, unsigned int val)
+ {
+ putLevel(level);
+ fprintf(f, "<%s>%u</%s>\n", name, val, name);
+ }
+
+void Xml::floatTag(int level, const char* name, float val)
+ {
+ putLevel(level);
+ QString s("<%1>%2</%3>\n");
+ fprintf(f, "%s", s.arg(name).arg(val).arg(name).latin1());
+ }
+
+void Xml::doubleTag(int level, const char* name, double val)
+ {
+ putLevel(level);
+ QString s("<%1>%2</%3>\n");
+ fprintf(f, "%s", s.arg(name).arg(val).arg(name).latin1());
+ }
+
+void Xml::strTag(int level, const char* name, const char* val)
+ {
+ putLevel(level);
+ fprintf(f, "<%s>", name);
+ if (val) {
+ while (*val) {
+ switch(*val) {
+ case '&': fprintf(f, "&amp;"); break;
+ case '<': fprintf(f, "&lt;"); break;
+ case '>': fprintf(f, "&gt;"); break;
+ case '\\': fprintf(f, "&apos;"); break;
+ case '"': fprintf(f, "&quot;"); break;
+ default: fputc(*val, f); break;
+ }
+ ++val;
+ }
+ }
+ fprintf(f, "</%s>\n", name);
+ }
+
+//---------------------------------------------------------
+// colorTag
+//---------------------------------------------------------
+
+void Xml::colorTag(int level, const char* name, const QColor& color)
+ {
+ putLevel(level);
+ fprintf(f, "<%s r=\"%d\" g=\"%d\" b=\"%d\"></%s>\n",
+ name, color.red(), color.green(), color.blue(), name);
+ }
+
+//---------------------------------------------------------
+// geometryTag
+//---------------------------------------------------------
+
+void Xml::geometryTag(int level, const char* name, const QWidget* g)
+ {
+ qrectTag(level, name, QRect(g->pos(), g->size()));
+ }
+
+//---------------------------------------------------------
+// qrectTag
+//---------------------------------------------------------
+
+void Xml::qrectTag(int level, const char* name, const QRect& r)
+ {
+ putLevel(level);
+ fprintf(f, "<%s x=\"%d\" y=\"%d\" w=\"%d\" h=\"%d\"></%s>\n",
+ name, r.x(), r.y(), r.width(), r.height(), name);
+ }
+
+//---------------------------------------------------------
+// strTag
+//---------------------------------------------------------
+
+void Xml::strTag(int level, const char* name, const QString& val)
+ {
+ strTag(level, name, val.latin1());
+ }
+
+//---------------------------------------------------------
+// Xml::skip
+//---------------------------------------------------------
+
+void Xml::skip(const QString& etag)
+ {
+ for (;;) {
+ Token token = parse();
+ const QString& tag = s1();
+ switch (token) {
+ case Xml::Error:
+ case Xml::End:
+ return;
+ case Xml::Text:
+ break;
+ case Xml::TagEnd:
+ if (tag == etag)
+ return;
+ break;
+ case Xml::TagStart:
+ skip(tag);
+ break;
+ default:
+ break;
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// xmlString
+//---------------------------------------------------------
+
+QString Xml::xmlString(const char* s)
+ {
+ return Xml::xmlString(QString(s));
+ }
+
+//---------------------------------------------------------
+// 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;
+ }
+
+void Xml::dump(QString &dump)
+ {
+ if (f == 0)
+ return;
+ fpos_t pos;
+ fgetpos(f, &pos);
+ rewind(f);
+ while(fgets(lbuffer, 512, f) != 0)
+ dump.append(lbuffer);
+ fsetpos(f, &pos);
+ }
diff --git a/muse2/muse/xml.h b/muse2/muse/xml.h
new file mode 100644
index 00000000..912ddb4a
--- /dev/null
+++ b/muse2/muse/xml.h
@@ -0,0 +1,95 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: xml.h,v 1.8.2.3 2009/11/09 20:28:28 terminator356 Exp $
+//
+// (C) Copyright 2000 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __XML_H__
+#define __XML_H__
+
+#include <stdio.h>
+#include <qstring.h>
+
+class QColor;
+class QWidget;
+class QRect;
+
+//---------------------------------------------------------
+// Xml
+// very simple XML-like parser
+//---------------------------------------------------------
+
+class Xml {
+ FILE* f;
+ int _line;
+ int _col;
+ QString _s1, _s2, _tag;
+ int level;
+ bool inTag;
+ bool inComment;
+ int _minorVersion;
+ int _majorVersion;
+
+ int c; // current char
+ char lbuffer[512];
+ const char* bufptr;
+
+ void next();
+ void nextc();
+ void token(int);
+ void stoken();
+ QString strip(const QString& s);
+ void putLevel(int n);
+
+ public:
+ enum Token {Error, TagStart, TagEnd, Flag,
+ Proc, Text, Attribut, End};
+ int majorVersion() const { return _majorVersion; }
+ int minorVersion() const { return _minorVersion; }
+ void setVersion(int maj, int min) {
+ _minorVersion = min;
+ _majorVersion = maj;
+ }
+ Xml(FILE*);
+ Xml(const char*);
+ Token parse();
+ QString parse(const QString&);
+ QString parse1();
+ int parseInt();
+ unsigned int parseUInt();
+ float parseFloat();
+ double parseDouble();
+ void unknown(const char*);
+ int line() const { return _line; } // current line
+ int col() const { return _col; } // current col
+ const QString& s1() { return _s1; }
+ const QString& s2() { return _s2; }
+ void dump(QString &dump);
+
+ void header();
+ void put(const char* format, ...);
+ void put(int level, const char* format, ...);
+ void nput(int level, const char* format, ...);
+ void nput(const char* format, ...);
+ void tag(int level, const char* format, ...);
+ void etag(int level, const char* format, ...);
+ void intTag(int level, const char* const name, int val);
+ void uintTag(int level, const char* const name, unsigned int val);
+ void doubleTag(int level, const char* const name, double val);
+ void floatTag(int level, const char* const name, float val);
+ void strTag(int level, const char* const name, const char* val);
+ void strTag(int level, const char* const name, const QString& s);
+ void colorTag(int level, const char* name, const QColor& color);
+ void geometryTag(int level, const char* name, const QWidget* g);
+ void qrectTag(int level, const char* name, const QRect& r);
+ static QString xmlString(const QString&);
+ static QString xmlString(const char*);
+
+ void skip(const QString& tag);
+ };
+
+extern QRect readGeometry(Xml&, const QString&);
+#endif
+
diff --git a/muse2/packaging/Makefile.am b/muse2/packaging/Makefile.am
new file mode 100644
index 00000000..5e49fdf9
--- /dev/null
+++ b/muse2/packaging/Makefile.am
@@ -0,0 +1,5 @@
+desktop_DATA = muse.desktop
+desktopdir = $(datadir)/applications
+icon_DATA = muse_icon.png
+icondir = $(datadir)/icons/hicolor/64x64/apps
+EXTRA_DIST = muse_icon.png muse.desktop
diff --git a/muse2/packaging/Makefile.in b/muse2/packaging/Makefile.in
new file mode 100644
index 00000000..8db59b1e
--- /dev/null
+++ b/muse2/packaging/Makefile.in
@@ -0,0 +1,488 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = packaging
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal-include.m4 \
+ $(top_srcdir)/m4/alsa.m4 $(top_srcdir)/m4/docbook.m4 \
+ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
+ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
+ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+SOURCES =
+DIST_SOURCES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__installdirs = "$(DESTDIR)$(desktopdir)" "$(DESTDIR)$(icondir)"
+DATA = $(desktop_DATA) $(icon_DATA)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ALSA_CFLAGS = @ALSA_CFLAGS@
+ALSA_LIBS = @ALSA_LIBS@
+AMTAR = @AMTAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DOCBOOKSTYLE = @DOCBOOKSTYLE@
+DOCBOOKTARGETS = @DOCBOOKTARGETS@
+DOT = @DOT@
+DOTPATH = @DOTPATH@
+DOXYGEN = @DOXYGEN@
+DOXYGEN_TREEVIEW = @DOXYGEN_TREEVIEW@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+FLUIDSYNTHDIRS = @FLUIDSYNTHDIRS@
+FST_CFLAGS = @FST_CFLAGS@
+FST_LIBS = @FST_LIBS@
+Fluidsynth_CFLAGS = @Fluidsynth_CFLAGS@
+Fluidsynth_LIBS = @Fluidsynth_LIBS@
+GIVERTCAP = @GIVERTCAP@
+GREP = @GREP@
+HAVEDOT = @HAVEDOT@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JACK_CFLAGS = @JACK_CFLAGS@
+JACK_LIBS = @JACK_LIBS@
+JADE = @JADE@
+LASH_CFLAGS = @LASH_CFLAGS@
+LASH_LIBS = @LASH_LIBS@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LO_CFLAGS = @LO_CFLAGS@
+LO_LIBS = @LO_LIBS@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+MUSECXXFLAGS = @MUSECXXFLAGS@
+NM = @NM@
+NMEDIT = @NMEDIT@
+NSGMLS = @NSGMLS@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PCH = @PCH@
+PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+PYTHON = @PYTHON@
+PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
+PYTHON_INCLUDES = @PYTHON_INCLUDES@
+PYTHON_LIB = @PYTHON_LIB@
+PYTHON_PLATFORM = @PYTHON_PLATFORM@
+PYTHON_PREFIX = @PYTHON_PREFIX@
+PYTHON_VERSION = @PYTHON_VERSION@
+QTDIR_BIN = @QTDIR_BIN@
+QTDIR_INC = @QTDIR_INC@
+QT_LIBS = @QT_LIBS@
+RANLIB = @RANLIB@
+SAMPLERATE_CFLAGS = @SAMPLERATE_CFLAGS@
+SAMPLERATE_LIBS = @SAMPLERATE_LIBS@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SNDFILE_CFLAGS = @SNDFILE_CFLAGS@
+SNDFILE_LIBS = @SNDFILE_LIBS@
+STRIP = @STRIP@
+SUIDBUILD = @SUIDBUILD@
+SUIDINSTALL = @SUIDINSTALL@
+USE_SSE = @USE_SSE@
+UUID_CFLAGS = @UUID_CFLAGS@
+UUID_LIBS = @UUID_LIBS@
+VERSION = @VERSION@
+XMKMF = @XMKMF@
+X_CFLAGS = @X_CFLAGS@
+X_EXTRA_LIBS = @X_EXTRA_LIBS@
+X_LIBS = @X_LIBS@
+X_PRE_LIBS = @X_PRE_LIBS@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+have_docbook = @have_docbook@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+lt_ECHO = @lt_ECHO@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+pkgpyexecdir = @pkgpyexecdir@
+pkgpythondir = @pkgpythondir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+pyexecdir = @pyexecdir@
+pythondir = @pythondir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+synth_fluid = @synth_fluid@
+synth_fluidsynth = @synth_fluidsynth@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+desktop_DATA = muse.desktop
+desktopdir = $(datadir)/applications
+icon_DATA = muse_icon.png
+icondir = $(datadir)/icons/hicolor/64x64/apps
+EXTRA_DIST = muse_icon.png muse.desktop
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu packaging/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu packaging/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+install-desktopDATA: $(desktop_DATA)
+ @$(NORMAL_INSTALL)
+ test -z "$(desktopdir)" || $(MKDIR_P) "$(DESTDIR)$(desktopdir)"
+ @list='$(desktop_DATA)'; test -n "$(desktopdir)" || list=; \
+ for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(desktopdir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(desktopdir)" || exit $$?; \
+ done
+
+uninstall-desktopDATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(desktop_DATA)'; test -n "$(desktopdir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ test -n "$$files" || exit 0; \
+ echo " ( cd '$(DESTDIR)$(desktopdir)' && rm -f" $$files ")"; \
+ cd "$(DESTDIR)$(desktopdir)" && rm -f $$files
+install-iconDATA: $(icon_DATA)
+ @$(NORMAL_INSTALL)
+ test -z "$(icondir)" || $(MKDIR_P) "$(DESTDIR)$(icondir)"
+ @list='$(icon_DATA)'; test -n "$(icondir)" || list=; \
+ for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(icondir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(icondir)" || exit $$?; \
+ done
+
+uninstall-iconDATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(icon_DATA)'; test -n "$(icondir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ test -n "$$files" || exit 0; \
+ echo " ( cd '$(DESTDIR)$(icondir)' && rm -f" $$files ")"; \
+ cd "$(DESTDIR)$(icondir)" && rm -f $$files
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile $(DATA)
+installdirs:
+ for dir in "$(DESTDIR)$(desktopdir)" "$(DESTDIR)$(icondir)"; do \
+ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-desktopDATA install-iconDATA
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-desktopDATA uninstall-iconDATA
+
+.MAKE: install-am install-strip
+
+.PHONY: all all-am check check-am clean clean-generic clean-libtool \
+ distclean distclean-generic distclean-libtool distdir dvi \
+ dvi-am html html-am info info-am install install-am \
+ install-data install-data-am install-desktopDATA install-dvi \
+ install-dvi-am install-exec install-exec-am install-html \
+ install-html-am install-iconDATA install-info install-info-am \
+ install-man install-pdf install-pdf-am install-ps \
+ install-ps-am install-strip installcheck installcheck-am \
+ installdirs maintainer-clean maintainer-clean-generic \
+ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
+ ps ps-am uninstall uninstall-am uninstall-desktopDATA \
+ uninstall-iconDATA
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/muse2/packaging/muse.desktop b/muse2/packaging/muse.desktop
new file mode 100644
index 00000000..c5f0c84b
--- /dev/null
+++ b/muse2/packaging/muse.desktop
@@ -0,0 +1,9 @@
+[Desktop Entry]
+Name=Muse
+GenericName=Audio/MIDI Sequencer
+Comment=Midi Music Editor
+Icon=muse_icon
+Type=Application
+Exec=muse
+Terminal=false
+Categories=Sequencer;Midi;X-Jack;X-Sequencers;X-MIDI;Audio;
diff --git a/muse2/packaging/muse_icon.png b/muse2/packaging/muse_icon.png
new file mode 100644
index 00000000..5a1acb96
--- /dev/null
+++ b/muse2/packaging/muse_icon.png
Binary files differ
diff --git a/muse2/packaging/muse_mdk.spec b/muse2/packaging/muse_mdk.spec
new file mode 100755
index 00000000..1a7a68ff
--- /dev/null
+++ b/muse2/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/muse2/plugins/Makefile.am b/muse2/plugins/Makefile.am
new file mode 100644
index 00000000..fbb995c4
--- /dev/null
+++ b/muse2/plugins/Makefile.am
@@ -0,0 +1,5 @@
+SUBDIRS = freeverb pandelay doublechorus
+
+include $(top_srcdir)/common.am
+
+EXTRA_DIST = plugins-install.am
diff --git a/muse2/plugins/Makefile.in b/muse2/plugins/Makefile.in
new file mode 100644
index 00000000..63200a2b
--- /dev/null
+++ b/muse2/plugins/Makefile.in
@@ -0,0 +1,668 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
+ $(top_srcdir)/common.am
+subdir = plugins
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal-include.m4 \
+ $(top_srcdir)/m4/alsa.m4 $(top_srcdir)/m4/docbook.m4 \
+ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
+ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
+ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+SOURCES =
+DIST_SOURCES =
+RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
+ html-recursive info-recursive install-data-recursive \
+ install-dvi-recursive install-exec-recursive \
+ install-html-recursive install-info-recursive \
+ install-pdf-recursive install-ps-recursive install-recursive \
+ installcheck-recursive installdirs-recursive pdf-recursive \
+ ps-recursive uninstall-recursive
+RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
+ distclean-recursive maintainer-clean-recursive
+AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
+ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
+ distdir
+ETAGS = etags
+CTAGS = ctags
+DIST_SUBDIRS = $(SUBDIRS)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+am__relativize = \
+ dir0=`pwd`; \
+ sed_first='s,^\([^/]*\)/.*$$,\1,'; \
+ sed_rest='s,^[^/]*/*,,'; \
+ sed_last='s,^.*/\([^/]*\)$$,\1,'; \
+ sed_butlast='s,/*[^/]*$$,,'; \
+ while test -n "$$dir1"; do \
+ first=`echo "$$dir1" | sed -e "$$sed_first"`; \
+ if test "$$first" != "."; then \
+ if test "$$first" = ".."; then \
+ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
+ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
+ else \
+ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
+ if test "$$first2" = "$$first"; then \
+ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
+ else \
+ dir2="../$$dir2"; \
+ fi; \
+ dir0="$$dir0"/"$$first"; \
+ fi; \
+ fi; \
+ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
+ done; \
+ reldir="$$dir2"
+ACLOCAL = @ACLOCAL@
+ALSA_CFLAGS = @ALSA_CFLAGS@
+ALSA_LIBS = @ALSA_LIBS@
+AMTAR = @AMTAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DOCBOOKSTYLE = @DOCBOOKSTYLE@
+DOCBOOKTARGETS = @DOCBOOKTARGETS@
+DOT = @DOT@
+DOTPATH = @DOTPATH@
+DOXYGEN = @DOXYGEN@
+DOXYGEN_TREEVIEW = @DOXYGEN_TREEVIEW@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+FLUIDSYNTHDIRS = @FLUIDSYNTHDIRS@
+FST_CFLAGS = @FST_CFLAGS@
+FST_LIBS = @FST_LIBS@
+Fluidsynth_CFLAGS = @Fluidsynth_CFLAGS@
+Fluidsynth_LIBS = @Fluidsynth_LIBS@
+GIVERTCAP = @GIVERTCAP@
+GREP = @GREP@
+HAVEDOT = @HAVEDOT@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JACK_CFLAGS = @JACK_CFLAGS@
+JACK_LIBS = @JACK_LIBS@
+JADE = @JADE@
+LASH_CFLAGS = @LASH_CFLAGS@
+LASH_LIBS = @LASH_LIBS@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LO_CFLAGS = @LO_CFLAGS@
+LO_LIBS = @LO_LIBS@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+MUSECXXFLAGS = @MUSECXXFLAGS@
+NM = @NM@
+NMEDIT = @NMEDIT@
+NSGMLS = @NSGMLS@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PCH = @PCH@
+PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+PYTHON = @PYTHON@
+PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
+PYTHON_INCLUDES = @PYTHON_INCLUDES@
+PYTHON_LIB = @PYTHON_LIB@
+PYTHON_PLATFORM = @PYTHON_PLATFORM@
+PYTHON_PREFIX = @PYTHON_PREFIX@
+PYTHON_VERSION = @PYTHON_VERSION@
+QTDIR_BIN = @QTDIR_BIN@
+QTDIR_INC = @QTDIR_INC@
+QT_LIBS = @QT_LIBS@
+RANLIB = @RANLIB@
+SAMPLERATE_CFLAGS = @SAMPLERATE_CFLAGS@
+SAMPLERATE_LIBS = @SAMPLERATE_LIBS@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SNDFILE_CFLAGS = @SNDFILE_CFLAGS@
+SNDFILE_LIBS = @SNDFILE_LIBS@
+STRIP = @STRIP@
+SUIDBUILD = @SUIDBUILD@
+SUIDINSTALL = @SUIDINSTALL@
+USE_SSE = @USE_SSE@
+UUID_CFLAGS = @UUID_CFLAGS@
+UUID_LIBS = @UUID_LIBS@
+VERSION = @VERSION@
+XMKMF = @XMKMF@
+X_CFLAGS = @X_CFLAGS@
+X_EXTRA_LIBS = @X_EXTRA_LIBS@
+X_LIBS = @X_LIBS@
+X_PRE_LIBS = @X_PRE_LIBS@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+have_docbook = @have_docbook@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+lt_ECHO = @lt_ECHO@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+pkgpyexecdir = @pkgpyexecdir@
+pkgpythondir = @pkgpythondir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+pyexecdir = @pyexecdir@
+pythondir = @pythondir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+synth_fluid = @synth_fluid@
+synth_fluidsynth = @synth_fluidsynth@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+SUBDIRS = freeverb pandelay doublechorus
+AM_CXXFLAGS = $(MUSECXXFLAGS) -I.. -I$(top_srcdir)/synti \
+ -I$(top_srcdir)/muse/widgets -DQT_SHARED -DQT_THREAD_SUPPORT \
+ -DQT_PLUGIN $(QTDIR_INC) -DQT3_SUPPORT
+AM_CPPFLAGS =
+MOC = $(QTDIR_BIN)/moc
+#UIC = $(QTDIR_BIN)/uic3
+UIC = /usr/bin/uic3
+UIFILES = $(wildcard *.ui)
+MOCFILES = $(shell for h in $(filter %.h,$(SOURCES)); do \
+ if grep -q Q_OBJECT $$h; then \
+ echo $$h | sed "s/\(.*\)\.h/moc_\1.cpp/"; \
+ fi; \
+ done)
+
+BUILT_SOURCES = $(MOCFILES) $(UIFILES:%.ui=%.h)
+MOSTLYCLEANFILES = $(MOCFILES) $(UIFILES:%.ui=%.h)
+SUFFIXES = .ui .h.gch
+EXTRA_DIST = plugins-install.am
+all: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) all-recursive
+
+.SUFFIXES:
+.SUFFIXES: .ui .h.gch .lo .o
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/common.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu plugins/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu plugins/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+
+# This directory's subdirectories are mostly independent; you can cd
+# into them and run `make' without going through this Makefile.
+# To change the values of `make' variables: instead of editing Makefiles,
+# (1) if the variable is set in `config.status', edit `config.status'
+# (which will cause the Makefiles to be regenerated when you run `make');
+# (2) otherwise, pass the desired values on the `make' command line.
+$(RECURSIVE_TARGETS):
+ @fail= failcom='exit 1'; \
+ for f in x $$MAKEFLAGS; do \
+ case $$f in \
+ *=* | --[!k]*);; \
+ *k*) failcom='fail=yes';; \
+ esac; \
+ done; \
+ dot_seen=no; \
+ target=`echo $@ | sed s/-recursive//`; \
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ echo "Making $$target in $$subdir"; \
+ if test "$$subdir" = "."; then \
+ dot_seen=yes; \
+ local_target="$$target-am"; \
+ else \
+ local_target="$$target"; \
+ fi; \
+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ || eval $$failcom; \
+ done; \
+ if test "$$dot_seen" = "no"; then \
+ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
+ fi; test -z "$$fail"
+
+$(RECURSIVE_CLEAN_TARGETS):
+ @fail= failcom='exit 1'; \
+ for f in x $$MAKEFLAGS; do \
+ case $$f in \
+ *=* | --[!k]*);; \
+ *k*) failcom='fail=yes';; \
+ esac; \
+ done; \
+ dot_seen=no; \
+ case "$@" in \
+ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+ *) list='$(SUBDIRS)' ;; \
+ esac; \
+ rev=''; for subdir in $$list; do \
+ if test "$$subdir" = "."; then :; else \
+ rev="$$subdir $$rev"; \
+ fi; \
+ done; \
+ rev="$$rev ."; \
+ target=`echo $@ | sed s/-recursive//`; \
+ for subdir in $$rev; do \
+ echo "Making $$target in $$subdir"; \
+ if test "$$subdir" = "."; then \
+ local_target="$$target-am"; \
+ else \
+ local_target="$$target"; \
+ fi; \
+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ || eval $$failcom; \
+ done && test -z "$$fail"
+tags-recursive:
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+ done
+ctags-recursive:
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
+ done
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ mkid -fID $$unique
+tags: TAGS
+
+TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ set x; \
+ here=`pwd`; \
+ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
+ include_option=--etags-include; \
+ empty_fix=.; \
+ else \
+ include_option=--include; \
+ empty_fix=; \
+ fi; \
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ test ! -f $$subdir/TAGS || \
+ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
+ fi; \
+ done; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: CTAGS
+CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+ @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ test -d "$(distdir)/$$subdir" \
+ || $(MKDIR_P) "$(distdir)/$$subdir" \
+ || exit 1; \
+ fi; \
+ done
+ @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
+ $(am__relativize); \
+ new_distdir=$$reldir; \
+ dir1=$$subdir; dir2="$(top_distdir)"; \
+ $(am__relativize); \
+ new_top_distdir=$$reldir; \
+ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
+ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
+ ($(am__cd) $$subdir && \
+ $(MAKE) $(AM_MAKEFLAGS) \
+ top_distdir="$$new_top_distdir" \
+ distdir="$$new_distdir" \
+ am__remove_distdir=: \
+ am__skip_length_check=: \
+ am__skip_mode_fix=: \
+ distdir) \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) check-recursive
+all-am: Makefile
+installdirs: installdirs-recursive
+installdirs-am:
+install: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) install-recursive
+install-exec: install-exec-recursive
+install-data: install-data-recursive
+uninstall: uninstall-recursive
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-recursive
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+ -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES)
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+ -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
+clean: clean-recursive
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-recursive
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-tags
+
+dvi: dvi-recursive
+
+dvi-am:
+
+html: html-recursive
+
+html-am:
+
+info: info-recursive
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-recursive
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-recursive
+
+install-html-am:
+
+install-info: install-info-recursive
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-recursive
+
+install-pdf-am:
+
+install-ps: install-ps-recursive
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-recursive
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-recursive
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-recursive
+
+pdf-am:
+
+ps: ps-recursive
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) all check \
+ ctags-recursive install install-am install-strip \
+ tags-recursive
+
+.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
+ all all-am check check-am clean clean-generic clean-libtool \
+ ctags ctags-recursive distclean distclean-generic \
+ distclean-libtool distclean-tags distdir dvi dvi-am html \
+ html-am info info-am install install-am install-data \
+ install-data-am install-dvi install-dvi-am install-exec \
+ install-exec-am install-html install-html-am install-info \
+ install-info-am install-man install-pdf install-pdf-am \
+ install-ps install-ps-am install-strip installcheck \
+ installcheck-am installdirs installdirs-am maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-generic \
+ mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \
+ uninstall uninstall-am
+
+
+de:
+ @for base in $(MOCFILES); do echo -e "\t$${base}.cpp $${base}.h \\"; done
+
+nde:
+ @for base in $(MOCFILES); do echo -e "\tmoc_$${base}.cpp \\"; done
+
+.ui.o: %.h
+ $(UIC) -L $(top_srcdir)/muse/widgets -o $*.cpp -impl $*.h $*.ui
+ $(MOC) $*.h >> $*.cpp
+ $(CXXCOMPILE) -c $*.cpp -o $*.o
+ $(RM) $*.cpp moc_$*.cpp moc_$*.o
+
+.ui.lo: %.h
+ $(UIC) -L $(top_srcdir)/muse/widgets -o $*.cpp -impl $*.h $*.ui
+ $(MOC) $*.h >> $*.cpp
+ $(LTCXXCOMPILE) -c $*.cpp -o $*.lo
+ $(RM) $*.cpp moc_$*.cpp moc_$*.lo moc_$*.o
+
+moc_%.cpp: %.h
+ $(MOC) $< -o $@
+
+%.h: %.ui
+ $(UIC) -o $@ $<
+# $(UIC) -L $(top_srcdir)/muse/widgets -o $@ $<
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/muse2/plugins/doublechorus/Makefile.am b/muse2/plugins/doublechorus/Makefile.am
new file mode 100644
index 00000000..40022184
--- /dev/null
+++ b/muse2/plugins/doublechorus/Makefile.am
@@ -0,0 +1,16 @@
+include $(top_srcdir)/common.am
+include $(top_srcdir)/plugins/plugins-install.am
+
+AM_CXXFLAGS += -O3 -fno-exceptions -fno-rtti -ffast-math
+
+plugins_LTLIBRARIES = doublechorus.la
+
+plugins_DATA =
+
+doublechorus_la_SOURCES = \
+ doublechorus.cpp \
+ doublechorusmodel.cpp doublechorusmodel.h \
+ simplechorusmodel.cpp simplechorusmodel.h
+doublechorus_la_LDFLAGS = -module -avoid-version
+
+
diff --git a/muse2/plugins/doublechorus/Makefile.in b/muse2/plugins/doublechorus/Makefile.in
new file mode 100644
index 00000000..1d800d0e
--- /dev/null
+++ b/muse2/plugins/doublechorus/Makefile.in
@@ -0,0 +1,673 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
+ $(top_srcdir)/common.am \
+ $(top_srcdir)/plugins/plugins-install.am
+subdir = plugins/doublechorus
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal-include.m4 \
+ $(top_srcdir)/m4/alsa.m4 $(top_srcdir)/m4/docbook.m4 \
+ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
+ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
+ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__installdirs = "$(DESTDIR)$(pluginsdir)" "$(DESTDIR)$(pluginsdir)"
+LTLIBRARIES = $(plugins_LTLIBRARIES)
+doublechorus_la_LIBADD =
+am_doublechorus_la_OBJECTS = doublechorus.lo doublechorusmodel.lo \
+ simplechorusmodel.lo
+doublechorus_la_OBJECTS = $(am_doublechorus_la_OBJECTS)
+doublechorus_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \
+ $(CXXFLAGS) $(doublechorus_la_LDFLAGS) $(LDFLAGS) -o $@
+DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
+depcomp = $(SHELL) $(top_srcdir)/depcomp
+am__depfiles_maybe = depfiles
+am__mv = mv -f
+CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
+LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
+CXXLD = $(CXX)
+CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \
+ $(LDFLAGS) -o $@
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
+ $(LDFLAGS) -o $@
+SOURCES = $(doublechorus_la_SOURCES)
+DIST_SOURCES = $(doublechorus_la_SOURCES)
+DATA = $(plugins_DATA)
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ALSA_CFLAGS = @ALSA_CFLAGS@
+ALSA_LIBS = @ALSA_LIBS@
+AMTAR = @AMTAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DOCBOOKSTYLE = @DOCBOOKSTYLE@
+DOCBOOKTARGETS = @DOCBOOKTARGETS@
+DOT = @DOT@
+DOTPATH = @DOTPATH@
+DOXYGEN = @DOXYGEN@
+DOXYGEN_TREEVIEW = @DOXYGEN_TREEVIEW@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+FLUIDSYNTHDIRS = @FLUIDSYNTHDIRS@
+FST_CFLAGS = @FST_CFLAGS@
+FST_LIBS = @FST_LIBS@
+Fluidsynth_CFLAGS = @Fluidsynth_CFLAGS@
+Fluidsynth_LIBS = @Fluidsynth_LIBS@
+GIVERTCAP = @GIVERTCAP@
+GREP = @GREP@
+HAVEDOT = @HAVEDOT@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JACK_CFLAGS = @JACK_CFLAGS@
+JACK_LIBS = @JACK_LIBS@
+JADE = @JADE@
+LASH_CFLAGS = @LASH_CFLAGS@
+LASH_LIBS = @LASH_LIBS@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LO_CFLAGS = @LO_CFLAGS@
+LO_LIBS = @LO_LIBS@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+MUSECXXFLAGS = @MUSECXXFLAGS@
+NM = @NM@
+NMEDIT = @NMEDIT@
+NSGMLS = @NSGMLS@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PCH = @PCH@
+PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+PYTHON = @PYTHON@
+PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
+PYTHON_INCLUDES = @PYTHON_INCLUDES@
+PYTHON_LIB = @PYTHON_LIB@
+PYTHON_PLATFORM = @PYTHON_PLATFORM@
+PYTHON_PREFIX = @PYTHON_PREFIX@
+PYTHON_VERSION = @PYTHON_VERSION@
+QTDIR_BIN = @QTDIR_BIN@
+QTDIR_INC = @QTDIR_INC@
+QT_LIBS = @QT_LIBS@
+RANLIB = @RANLIB@
+SAMPLERATE_CFLAGS = @SAMPLERATE_CFLAGS@
+SAMPLERATE_LIBS = @SAMPLERATE_LIBS@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SNDFILE_CFLAGS = @SNDFILE_CFLAGS@
+SNDFILE_LIBS = @SNDFILE_LIBS@
+STRIP = @STRIP@
+SUIDBUILD = @SUIDBUILD@
+SUIDINSTALL = @SUIDINSTALL@
+USE_SSE = @USE_SSE@
+UUID_CFLAGS = @UUID_CFLAGS@
+UUID_LIBS = @UUID_LIBS@
+VERSION = @VERSION@
+XMKMF = @XMKMF@
+X_CFLAGS = @X_CFLAGS@
+X_EXTRA_LIBS = @X_EXTRA_LIBS@
+X_LIBS = @X_LIBS@
+X_PRE_LIBS = @X_PRE_LIBS@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+have_docbook = @have_docbook@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+lt_ECHO = @lt_ECHO@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+pkgpyexecdir = @pkgpyexecdir@
+pkgpythondir = @pkgpythondir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+pyexecdir = @pyexecdir@
+pythondir = @pythondir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+synth_fluid = @synth_fluid@
+synth_fluidsynth = @synth_fluidsynth@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+AM_CXXFLAGS = $(MUSECXXFLAGS) -I.. -I$(top_srcdir)/synti \
+ -I$(top_srcdir)/muse/widgets -DQT_SHARED -DQT_THREAD_SUPPORT \
+ -DQT_PLUGIN $(QTDIR_INC) -DQT3_SUPPORT -O3 -fno-exceptions \
+ -fno-rtti -ffast-math
+AM_CPPFLAGS =
+MOC = $(QTDIR_BIN)/moc
+#UIC = $(QTDIR_BIN)/uic3
+UIC = /usr/bin/uic3
+UIFILES = $(wildcard *.ui)
+MOCFILES = $(shell for h in $(filter %.h,$(SOURCES)); do \
+ if grep -q Q_OBJECT $$h; then \
+ echo $$h | sed "s/\(.*\)\.h/moc_\1.cpp/"; \
+ fi; \
+ done)
+
+BUILT_SOURCES = $(MOCFILES) $(UIFILES:%.ui=%.h)
+MOSTLYCLEANFILES = $(MOCFILES) $(UIFILES:%.ui=%.h)
+SUFFIXES = .ui .h.gch
+pluginsdir = $(pkglibdir)/plugins
+plugins_LTLIBRARIES = doublechorus.la
+plugins_DATA =
+doublechorus_la_SOURCES = \
+ doublechorus.cpp \
+ doublechorusmodel.cpp doublechorusmodel.h \
+ simplechorusmodel.cpp simplechorusmodel.h
+
+doublechorus_la_LDFLAGS = -module -avoid-version
+all: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) all-am
+
+.SUFFIXES:
+.SUFFIXES: .ui .h.gch .cpp .lo .o .obj
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/common.am $(top_srcdir)/plugins/plugins-install.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu plugins/doublechorus/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu plugins/doublechorus/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+install-pluginsLTLIBRARIES: $(plugins_LTLIBRARIES)
+ @$(NORMAL_INSTALL)
+ test -z "$(pluginsdir)" || $(MKDIR_P) "$(DESTDIR)$(pluginsdir)"
+ @list='$(plugins_LTLIBRARIES)'; test -n "$(pluginsdir)" || list=; \
+ list2=; for p in $$list; do \
+ if test -f $$p; then \
+ list2="$$list2 $$p"; \
+ else :; fi; \
+ done; \
+ test -z "$$list2" || { \
+ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(pluginsdir)'"; \
+ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(pluginsdir)"; \
+ }
+
+uninstall-pluginsLTLIBRARIES:
+ @$(NORMAL_UNINSTALL)
+ @list='$(plugins_LTLIBRARIES)'; test -n "$(pluginsdir)" || list=; \
+ for p in $$list; do \
+ $(am__strip_dir) \
+ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(pluginsdir)/$$f'"; \
+ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(pluginsdir)/$$f"; \
+ done
+
+clean-pluginsLTLIBRARIES:
+ -test -z "$(plugins_LTLIBRARIES)" || rm -f $(plugins_LTLIBRARIES)
+ @list='$(plugins_LTLIBRARIES)'; for p in $$list; do \
+ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
+ test "$$dir" != "$$p" || dir=.; \
+ echo "rm -f \"$${dir}/so_locations\""; \
+ rm -f "$${dir}/so_locations"; \
+ done
+doublechorus.la: $(doublechorus_la_OBJECTS) $(doublechorus_la_DEPENDENCIES)
+ $(doublechorus_la_LINK) -rpath $(pluginsdir) $(doublechorus_la_OBJECTS) $(doublechorus_la_LIBADD) $(LIBS)
+
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT)
+
+distclean-compile:
+ -rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/doublechorus.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/doublechorusmodel.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/simplechorusmodel.Plo@am__quote@
+
+.cpp.o:
+@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $<
+
+.cpp.obj:
+@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+
+.cpp.lo:
+@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $<
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+install-pluginsDATA: $(plugins_DATA)
+ @$(NORMAL_INSTALL)
+ test -z "$(pluginsdir)" || $(MKDIR_P) "$(DESTDIR)$(pluginsdir)"
+ @list='$(plugins_DATA)'; test -n "$(pluginsdir)" || list=; \
+ for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pluginsdir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(pluginsdir)" || exit $$?; \
+ done
+
+uninstall-pluginsDATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(plugins_DATA)'; test -n "$(pluginsdir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ test -n "$$files" || exit 0; \
+ echo " ( cd '$(DESTDIR)$(pluginsdir)' && rm -f" $$files ")"; \
+ cd "$(DESTDIR)$(pluginsdir)" && rm -f $$files
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ mkid -fID $$unique
+tags: TAGS
+
+TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ set x; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: CTAGS
+CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) check-am
+all-am: Makefile $(LTLIBRARIES) $(DATA)
+installdirs:
+ for dir in "$(DESTDIR)$(pluginsdir)" "$(DESTDIR)$(pluginsdir)"; do \
+ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ done
+install: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+ -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES)
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+ -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
+clean: clean-am
+
+clean-am: clean-generic clean-libtool clean-pluginsLTLIBRARIES \
+ mostlyclean-am
+
+distclean: distclean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+ distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-pluginsDATA install-pluginsLTLIBRARIES
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+ mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-pluginsDATA uninstall-pluginsLTLIBRARIES
+
+.MAKE: all check install install-am install-strip
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
+ clean-libtool clean-pluginsLTLIBRARIES ctags distclean \
+ distclean-compile distclean-generic distclean-libtool \
+ distclean-tags distdir dvi dvi-am html html-am info info-am \
+ install install-am install-data install-data-am install-dvi \
+ install-dvi-am install-exec install-exec-am install-html \
+ install-html-am install-info install-info-am install-man \
+ install-pdf install-pdf-am install-pluginsDATA \
+ install-pluginsLTLIBRARIES install-ps install-ps-am \
+ install-strip installcheck installcheck-am installdirs \
+ maintainer-clean maintainer-clean-generic mostlyclean \
+ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
+ pdf pdf-am ps ps-am tags uninstall uninstall-am \
+ uninstall-pluginsDATA uninstall-pluginsLTLIBRARIES
+
+
+de:
+ @for base in $(MOCFILES); do echo -e "\t$${base}.cpp $${base}.h \\"; done
+
+nde:
+ @for base in $(MOCFILES); do echo -e "\tmoc_$${base}.cpp \\"; done
+
+.ui.o: %.h
+ $(UIC) -L $(top_srcdir)/muse/widgets -o $*.cpp -impl $*.h $*.ui
+ $(MOC) $*.h >> $*.cpp
+ $(CXXCOMPILE) -c $*.cpp -o $*.o
+ $(RM) $*.cpp moc_$*.cpp moc_$*.o
+
+.ui.lo: %.h
+ $(UIC) -L $(top_srcdir)/muse/widgets -o $*.cpp -impl $*.h $*.ui
+ $(MOC) $*.h >> $*.cpp
+ $(LTCXXCOMPILE) -c $*.cpp -o $*.lo
+ $(RM) $*.cpp moc_$*.cpp moc_$*.lo moc_$*.o
+
+moc_%.cpp: %.h
+ $(MOC) $< -o $@
+
+%.h: %.ui
+ $(UIC) -o $@ $<
+# $(UIC) -L $(top_srcdir)/muse/widgets -o $@ $<
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/muse2/plugins/doublechorus/doublechorus.cpp b/muse2/plugins/doublechorus/doublechorus.cpp
new file mode 100644
index 00000000..27d84336
--- /dev/null
+++ b/muse2/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/muse2/plugins/doublechorus/doublechorusmodel.cpp b/muse2/plugins/doublechorus/doublechorusmodel.cpp
new file mode 100644
index 00000000..01def026
--- /dev/null
+++ b/muse2/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/muse2/plugins/doublechorus/doublechorusmodel.h b/muse2/plugins/doublechorus/doublechorusmodel.h
new file mode 100644
index 00000000..40ce9f3f
--- /dev/null
+++ b/muse2/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/muse2/plugins/doublechorus/simplechorusmodel.cpp b/muse2/plugins/doublechorus/simplechorusmodel.cpp
new file mode 100644
index 00000000..72015465
--- /dev/null
+++ b/muse2/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/muse2/plugins/doublechorus/simplechorusmodel.h b/muse2/plugins/doublechorus/simplechorusmodel.h
new file mode 100644
index 00000000..797e7030
--- /dev/null
+++ b/muse2/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/muse2/plugins/freeverb/Makefile.am b/muse2/plugins/freeverb/Makefile.am
new file mode 100644
index 00000000..81dbec2d
--- /dev/null
+++ b/muse2/plugins/freeverb/Makefile.am
@@ -0,0 +1,17 @@
+include $(top_srcdir)/common.am
+include $(top_srcdir)/plugins/plugins-install.am
+
+AM_CXXFLAGS += -O3 -fno-exceptions -fno-rtti -ffast-math
+
+plugins_LTLIBRARIES = freeverb.la
+
+plugins_DATA =
+
+freeverb_la_SOURCES = \
+ freeverb.cpp \
+ revmodel.cpp revmodel.h \
+ allpass.h comb.h denormals.h tuning.h
+freeverb_la_LDFLAGS = -module -avoid-version
+
+EXTRA_DIST = readme.txt
+
diff --git a/muse2/plugins/freeverb/Makefile.in b/muse2/plugins/freeverb/Makefile.in
new file mode 100644
index 00000000..394c9cbd
--- /dev/null
+++ b/muse2/plugins/freeverb/Makefile.in
@@ -0,0 +1,672 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
+ $(top_srcdir)/common.am \
+ $(top_srcdir)/plugins/plugins-install.am
+subdir = plugins/freeverb
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal-include.m4 \
+ $(top_srcdir)/m4/alsa.m4 $(top_srcdir)/m4/docbook.m4 \
+ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
+ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
+ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__installdirs = "$(DESTDIR)$(pluginsdir)" "$(DESTDIR)$(pluginsdir)"
+LTLIBRARIES = $(plugins_LTLIBRARIES)
+freeverb_la_LIBADD =
+am_freeverb_la_OBJECTS = freeverb.lo revmodel.lo
+freeverb_la_OBJECTS = $(am_freeverb_la_OBJECTS)
+freeverb_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \
+ $(CXXFLAGS) $(freeverb_la_LDFLAGS) $(LDFLAGS) -o $@
+DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
+depcomp = $(SHELL) $(top_srcdir)/depcomp
+am__depfiles_maybe = depfiles
+am__mv = mv -f
+CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
+LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
+CXXLD = $(CXX)
+CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \
+ $(LDFLAGS) -o $@
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
+ $(LDFLAGS) -o $@
+SOURCES = $(freeverb_la_SOURCES)
+DIST_SOURCES = $(freeverb_la_SOURCES)
+DATA = $(plugins_DATA)
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ALSA_CFLAGS = @ALSA_CFLAGS@
+ALSA_LIBS = @ALSA_LIBS@
+AMTAR = @AMTAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DOCBOOKSTYLE = @DOCBOOKSTYLE@
+DOCBOOKTARGETS = @DOCBOOKTARGETS@
+DOT = @DOT@
+DOTPATH = @DOTPATH@
+DOXYGEN = @DOXYGEN@
+DOXYGEN_TREEVIEW = @DOXYGEN_TREEVIEW@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+FLUIDSYNTHDIRS = @FLUIDSYNTHDIRS@
+FST_CFLAGS = @FST_CFLAGS@
+FST_LIBS = @FST_LIBS@
+Fluidsynth_CFLAGS = @Fluidsynth_CFLAGS@
+Fluidsynth_LIBS = @Fluidsynth_LIBS@
+GIVERTCAP = @GIVERTCAP@
+GREP = @GREP@
+HAVEDOT = @HAVEDOT@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JACK_CFLAGS = @JACK_CFLAGS@
+JACK_LIBS = @JACK_LIBS@
+JADE = @JADE@
+LASH_CFLAGS = @LASH_CFLAGS@
+LASH_LIBS = @LASH_LIBS@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LO_CFLAGS = @LO_CFLAGS@
+LO_LIBS = @LO_LIBS@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+MUSECXXFLAGS = @MUSECXXFLAGS@
+NM = @NM@
+NMEDIT = @NMEDIT@
+NSGMLS = @NSGMLS@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PCH = @PCH@
+PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+PYTHON = @PYTHON@
+PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
+PYTHON_INCLUDES = @PYTHON_INCLUDES@
+PYTHON_LIB = @PYTHON_LIB@
+PYTHON_PLATFORM = @PYTHON_PLATFORM@
+PYTHON_PREFIX = @PYTHON_PREFIX@
+PYTHON_VERSION = @PYTHON_VERSION@
+QTDIR_BIN = @QTDIR_BIN@
+QTDIR_INC = @QTDIR_INC@
+QT_LIBS = @QT_LIBS@
+RANLIB = @RANLIB@
+SAMPLERATE_CFLAGS = @SAMPLERATE_CFLAGS@
+SAMPLERATE_LIBS = @SAMPLERATE_LIBS@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SNDFILE_CFLAGS = @SNDFILE_CFLAGS@
+SNDFILE_LIBS = @SNDFILE_LIBS@
+STRIP = @STRIP@
+SUIDBUILD = @SUIDBUILD@
+SUIDINSTALL = @SUIDINSTALL@
+USE_SSE = @USE_SSE@
+UUID_CFLAGS = @UUID_CFLAGS@
+UUID_LIBS = @UUID_LIBS@
+VERSION = @VERSION@
+XMKMF = @XMKMF@
+X_CFLAGS = @X_CFLAGS@
+X_EXTRA_LIBS = @X_EXTRA_LIBS@
+X_LIBS = @X_LIBS@
+X_PRE_LIBS = @X_PRE_LIBS@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+have_docbook = @have_docbook@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+lt_ECHO = @lt_ECHO@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+pkgpyexecdir = @pkgpyexecdir@
+pkgpythondir = @pkgpythondir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+pyexecdir = @pyexecdir@
+pythondir = @pythondir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+synth_fluid = @synth_fluid@
+synth_fluidsynth = @synth_fluidsynth@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+AM_CXXFLAGS = $(MUSECXXFLAGS) -I.. -I$(top_srcdir)/synti \
+ -I$(top_srcdir)/muse/widgets -DQT_SHARED -DQT_THREAD_SUPPORT \
+ -DQT_PLUGIN $(QTDIR_INC) -DQT3_SUPPORT -O3 -fno-exceptions \
+ -fno-rtti -ffast-math
+AM_CPPFLAGS =
+MOC = $(QTDIR_BIN)/moc
+#UIC = $(QTDIR_BIN)/uic3
+UIC = /usr/bin/uic3
+UIFILES = $(wildcard *.ui)
+MOCFILES = $(shell for h in $(filter %.h,$(SOURCES)); do \
+ if grep -q Q_OBJECT $$h; then \
+ echo $$h | sed "s/\(.*\)\.h/moc_\1.cpp/"; \
+ fi; \
+ done)
+
+BUILT_SOURCES = $(MOCFILES) $(UIFILES:%.ui=%.h)
+MOSTLYCLEANFILES = $(MOCFILES) $(UIFILES:%.ui=%.h)
+SUFFIXES = .ui .h.gch
+pluginsdir = $(pkglibdir)/plugins
+plugins_LTLIBRARIES = freeverb.la
+plugins_DATA =
+freeverb_la_SOURCES = \
+ freeverb.cpp \
+ revmodel.cpp revmodel.h \
+ allpass.h comb.h denormals.h tuning.h
+
+freeverb_la_LDFLAGS = -module -avoid-version
+EXTRA_DIST = readme.txt
+all: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) all-am
+
+.SUFFIXES:
+.SUFFIXES: .ui .h.gch .cpp .lo .o .obj
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/common.am $(top_srcdir)/plugins/plugins-install.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu plugins/freeverb/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu plugins/freeverb/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+install-pluginsLTLIBRARIES: $(plugins_LTLIBRARIES)
+ @$(NORMAL_INSTALL)
+ test -z "$(pluginsdir)" || $(MKDIR_P) "$(DESTDIR)$(pluginsdir)"
+ @list='$(plugins_LTLIBRARIES)'; test -n "$(pluginsdir)" || list=; \
+ list2=; for p in $$list; do \
+ if test -f $$p; then \
+ list2="$$list2 $$p"; \
+ else :; fi; \
+ done; \
+ test -z "$$list2" || { \
+ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(pluginsdir)'"; \
+ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(pluginsdir)"; \
+ }
+
+uninstall-pluginsLTLIBRARIES:
+ @$(NORMAL_UNINSTALL)
+ @list='$(plugins_LTLIBRARIES)'; test -n "$(pluginsdir)" || list=; \
+ for p in $$list; do \
+ $(am__strip_dir) \
+ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(pluginsdir)/$$f'"; \
+ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(pluginsdir)/$$f"; \
+ done
+
+clean-pluginsLTLIBRARIES:
+ -test -z "$(plugins_LTLIBRARIES)" || rm -f $(plugins_LTLIBRARIES)
+ @list='$(plugins_LTLIBRARIES)'; for p in $$list; do \
+ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
+ test "$$dir" != "$$p" || dir=.; \
+ echo "rm -f \"$${dir}/so_locations\""; \
+ rm -f "$${dir}/so_locations"; \
+ done
+freeverb.la: $(freeverb_la_OBJECTS) $(freeverb_la_DEPENDENCIES)
+ $(freeverb_la_LINK) -rpath $(pluginsdir) $(freeverb_la_OBJECTS) $(freeverb_la_LIBADD) $(LIBS)
+
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT)
+
+distclean-compile:
+ -rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/freeverb.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/revmodel.Plo@am__quote@
+
+.cpp.o:
+@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $<
+
+.cpp.obj:
+@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+
+.cpp.lo:
+@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $<
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+install-pluginsDATA: $(plugins_DATA)
+ @$(NORMAL_INSTALL)
+ test -z "$(pluginsdir)" || $(MKDIR_P) "$(DESTDIR)$(pluginsdir)"
+ @list='$(plugins_DATA)'; test -n "$(pluginsdir)" || list=; \
+ for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pluginsdir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(pluginsdir)" || exit $$?; \
+ done
+
+uninstall-pluginsDATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(plugins_DATA)'; test -n "$(pluginsdir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ test -n "$$files" || exit 0; \
+ echo " ( cd '$(DESTDIR)$(pluginsdir)' && rm -f" $$files ")"; \
+ cd "$(DESTDIR)$(pluginsdir)" && rm -f $$files
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ mkid -fID $$unique
+tags: TAGS
+
+TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ set x; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: CTAGS
+CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) check-am
+all-am: Makefile $(LTLIBRARIES) $(DATA)
+installdirs:
+ for dir in "$(DESTDIR)$(pluginsdir)" "$(DESTDIR)$(pluginsdir)"; do \
+ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ done
+install: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+ -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES)
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+ -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
+clean: clean-am
+
+clean-am: clean-generic clean-libtool clean-pluginsLTLIBRARIES \
+ mostlyclean-am
+
+distclean: distclean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+ distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-pluginsDATA install-pluginsLTLIBRARIES
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+ mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-pluginsDATA uninstall-pluginsLTLIBRARIES
+
+.MAKE: all check install install-am install-strip
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
+ clean-libtool clean-pluginsLTLIBRARIES ctags distclean \
+ distclean-compile distclean-generic distclean-libtool \
+ distclean-tags distdir dvi dvi-am html html-am info info-am \
+ install install-am install-data install-data-am install-dvi \
+ install-dvi-am install-exec install-exec-am install-html \
+ install-html-am install-info install-info-am install-man \
+ install-pdf install-pdf-am install-pluginsDATA \
+ install-pluginsLTLIBRARIES install-ps install-ps-am \
+ install-strip installcheck installcheck-am installdirs \
+ maintainer-clean maintainer-clean-generic mostlyclean \
+ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
+ pdf pdf-am ps ps-am tags uninstall uninstall-am \
+ uninstall-pluginsDATA uninstall-pluginsLTLIBRARIES
+
+
+de:
+ @for base in $(MOCFILES); do echo -e "\t$${base}.cpp $${base}.h \\"; done
+
+nde:
+ @for base in $(MOCFILES); do echo -e "\tmoc_$${base}.cpp \\"; done
+
+.ui.o: %.h
+ $(UIC) -L $(top_srcdir)/muse/widgets -o $*.cpp -impl $*.h $*.ui
+ $(MOC) $*.h >> $*.cpp
+ $(CXXCOMPILE) -c $*.cpp -o $*.o
+ $(RM) $*.cpp moc_$*.cpp moc_$*.o
+
+.ui.lo: %.h
+ $(UIC) -L $(top_srcdir)/muse/widgets -o $*.cpp -impl $*.h $*.ui
+ $(MOC) $*.h >> $*.cpp
+ $(LTCXXCOMPILE) -c $*.cpp -o $*.lo
+ $(RM) $*.cpp moc_$*.cpp moc_$*.lo moc_$*.o
+
+moc_%.cpp: %.h
+ $(MOC) $< -o $@
+
+%.h: %.ui
+ $(UIC) -o $@ $<
+# $(UIC) -L $(top_srcdir)/muse/widgets -o $@ $<
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/muse2/plugins/freeverb/allpass.h b/muse2/plugins/freeverb/allpass.h
new file mode 100644
index 00000000..4eb1c1a0
--- /dev/null
+++ b/muse2/plugins/freeverb/allpass.h
@@ -0,0 +1,50 @@
+// 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; }
+ };
+
+
+// Big to inline - but crucial for speed
+
+
+#endif//_allpass
diff --git a/muse2/plugins/freeverb/comb.h b/muse2/plugins/freeverb/comb.h
new file mode 100644
index 00000000..d2e0f871
--- /dev/null
+++ b/muse2/plugins/freeverb/comb.h
@@ -0,0 +1,66 @@
+// 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; }
+ };
+
+
+// Big to inline - but crucial for speed
+
+
+#endif //_comb_
+
+//ends
diff --git a/muse2/plugins/freeverb/denormals.h b/muse2/plugins/freeverb/denormals.h
new file mode 100644
index 00000000..d18412b4
--- /dev/null
+++ b/muse2/plugins/freeverb/denormals.h
@@ -0,0 +1,28 @@
+// 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)
+
+#define undenormalise(sample) \
+ { \
+ float anti_denormal = 1e-18; \
+ sample += anti_denormal; \
+ sample -= anti_denormal; \
+ }
+
+#endif//_denormals_
+
+//ends
+
diff --git a/muse2/plugins/freeverb/freeverb.cpp b/muse2/plugins/freeverb/freeverb.cpp
new file mode 100644
index 00000000..0385e887
--- /dev/null
+++ b/muse2/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/muse2/plugins/freeverb/readme.txt b/muse2/plugins/freeverb/readme.txt
new file mode 100644
index 00000000..2c1349a3
--- /dev/null
+++ b/muse2/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/muse2/plugins/freeverb/revmodel.cpp b/muse2/plugins/freeverb/revmodel.cpp
new file mode 100644
index 00000000..c72ee22b
--- /dev/null
+++ b/muse2/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/muse2/plugins/freeverb/revmodel.h b/muse2/plugins/freeverb/revmodel.h
new file mode 100644
index 00000000..bfa1f0b3
--- /dev/null
+++ b/muse2/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/muse2/plugins/freeverb/tuning.h b/muse2/plugins/freeverb/tuning.h
new file mode 100644
index 00000000..ced89252
--- /dev/null
+++ b/muse2/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/muse2/plugins/pandelay/Makefile.am b/muse2/plugins/pandelay/Makefile.am
new file mode 100644
index 00000000..664b3170
--- /dev/null
+++ b/muse2/plugins/pandelay/Makefile.am
@@ -0,0 +1,16 @@
+include $(top_srcdir)/common.am
+include $(top_srcdir)/plugins/plugins-install.am
+
+AM_CXXFLAGS += -O3 -fno-exceptions -fno-rtti -ffast-math
+
+plugins_LTLIBRARIES = pandelay.la
+
+plugins_DATA =
+
+pandelay_la_SOURCES = \
+ ladspapandelay.cpp ladspapandelay.h \
+ pandelay.cpp \
+ pandelaymodel.cpp pandelaymodel.h
+pandelay_la_LDFLAGS = -module -avoid-version
+
+
diff --git a/muse2/plugins/pandelay/Makefile.in b/muse2/plugins/pandelay/Makefile.in
new file mode 100644
index 00000000..bd3f80dd
--- /dev/null
+++ b/muse2/plugins/pandelay/Makefile.in
@@ -0,0 +1,673 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
+ $(top_srcdir)/common.am \
+ $(top_srcdir)/plugins/plugins-install.am
+subdir = plugins/pandelay
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal-include.m4 \
+ $(top_srcdir)/m4/alsa.m4 $(top_srcdir)/m4/docbook.m4 \
+ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
+ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
+ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__installdirs = "$(DESTDIR)$(pluginsdir)" "$(DESTDIR)$(pluginsdir)"
+LTLIBRARIES = $(plugins_LTLIBRARIES)
+pandelay_la_LIBADD =
+am_pandelay_la_OBJECTS = ladspapandelay.lo pandelay.lo \
+ pandelaymodel.lo
+pandelay_la_OBJECTS = $(am_pandelay_la_OBJECTS)
+pandelay_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \
+ $(CXXFLAGS) $(pandelay_la_LDFLAGS) $(LDFLAGS) -o $@
+DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
+depcomp = $(SHELL) $(top_srcdir)/depcomp
+am__depfiles_maybe = depfiles
+am__mv = mv -f
+CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
+LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
+CXXLD = $(CXX)
+CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \
+ $(LDFLAGS) -o $@
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
+ $(LDFLAGS) -o $@
+SOURCES = $(pandelay_la_SOURCES)
+DIST_SOURCES = $(pandelay_la_SOURCES)
+DATA = $(plugins_DATA)
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ALSA_CFLAGS = @ALSA_CFLAGS@
+ALSA_LIBS = @ALSA_LIBS@
+AMTAR = @AMTAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DOCBOOKSTYLE = @DOCBOOKSTYLE@
+DOCBOOKTARGETS = @DOCBOOKTARGETS@
+DOT = @DOT@
+DOTPATH = @DOTPATH@
+DOXYGEN = @DOXYGEN@
+DOXYGEN_TREEVIEW = @DOXYGEN_TREEVIEW@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+FLUIDSYNTHDIRS = @FLUIDSYNTHDIRS@
+FST_CFLAGS = @FST_CFLAGS@
+FST_LIBS = @FST_LIBS@
+Fluidsynth_CFLAGS = @Fluidsynth_CFLAGS@
+Fluidsynth_LIBS = @Fluidsynth_LIBS@
+GIVERTCAP = @GIVERTCAP@
+GREP = @GREP@
+HAVEDOT = @HAVEDOT@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JACK_CFLAGS = @JACK_CFLAGS@
+JACK_LIBS = @JACK_LIBS@
+JADE = @JADE@
+LASH_CFLAGS = @LASH_CFLAGS@
+LASH_LIBS = @LASH_LIBS@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LO_CFLAGS = @LO_CFLAGS@
+LO_LIBS = @LO_LIBS@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+MUSECXXFLAGS = @MUSECXXFLAGS@
+NM = @NM@
+NMEDIT = @NMEDIT@
+NSGMLS = @NSGMLS@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PCH = @PCH@
+PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+PYTHON = @PYTHON@
+PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
+PYTHON_INCLUDES = @PYTHON_INCLUDES@
+PYTHON_LIB = @PYTHON_LIB@
+PYTHON_PLATFORM = @PYTHON_PLATFORM@
+PYTHON_PREFIX = @PYTHON_PREFIX@
+PYTHON_VERSION = @PYTHON_VERSION@
+QTDIR_BIN = @QTDIR_BIN@
+QTDIR_INC = @QTDIR_INC@
+QT_LIBS = @QT_LIBS@
+RANLIB = @RANLIB@
+SAMPLERATE_CFLAGS = @SAMPLERATE_CFLAGS@
+SAMPLERATE_LIBS = @SAMPLERATE_LIBS@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SNDFILE_CFLAGS = @SNDFILE_CFLAGS@
+SNDFILE_LIBS = @SNDFILE_LIBS@
+STRIP = @STRIP@
+SUIDBUILD = @SUIDBUILD@
+SUIDINSTALL = @SUIDINSTALL@
+USE_SSE = @USE_SSE@
+UUID_CFLAGS = @UUID_CFLAGS@
+UUID_LIBS = @UUID_LIBS@
+VERSION = @VERSION@
+XMKMF = @XMKMF@
+X_CFLAGS = @X_CFLAGS@
+X_EXTRA_LIBS = @X_EXTRA_LIBS@
+X_LIBS = @X_LIBS@
+X_PRE_LIBS = @X_PRE_LIBS@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+have_docbook = @have_docbook@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+lt_ECHO = @lt_ECHO@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+pkgpyexecdir = @pkgpyexecdir@
+pkgpythondir = @pkgpythondir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+pyexecdir = @pyexecdir@
+pythondir = @pythondir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+synth_fluid = @synth_fluid@
+synth_fluidsynth = @synth_fluidsynth@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+AM_CXXFLAGS = $(MUSECXXFLAGS) -I.. -I$(top_srcdir)/synti \
+ -I$(top_srcdir)/muse/widgets -DQT_SHARED -DQT_THREAD_SUPPORT \
+ -DQT_PLUGIN $(QTDIR_INC) -DQT3_SUPPORT -O3 -fno-exceptions \
+ -fno-rtti -ffast-math
+AM_CPPFLAGS =
+MOC = $(QTDIR_BIN)/moc
+#UIC = $(QTDIR_BIN)/uic3
+UIC = /usr/bin/uic3
+UIFILES = $(wildcard *.ui)
+MOCFILES = $(shell for h in $(filter %.h,$(SOURCES)); do \
+ if grep -q Q_OBJECT $$h; then \
+ echo $$h | sed "s/\(.*\)\.h/moc_\1.cpp/"; \
+ fi; \
+ done)
+
+BUILT_SOURCES = $(MOCFILES) $(UIFILES:%.ui=%.h)
+MOSTLYCLEANFILES = $(MOCFILES) $(UIFILES:%.ui=%.h)
+SUFFIXES = .ui .h.gch
+pluginsdir = $(pkglibdir)/plugins
+plugins_LTLIBRARIES = pandelay.la
+plugins_DATA =
+pandelay_la_SOURCES = \
+ ladspapandelay.cpp ladspapandelay.h \
+ pandelay.cpp \
+ pandelaymodel.cpp pandelaymodel.h
+
+pandelay_la_LDFLAGS = -module -avoid-version
+all: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) all-am
+
+.SUFFIXES:
+.SUFFIXES: .ui .h.gch .cpp .lo .o .obj
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/common.am $(top_srcdir)/plugins/plugins-install.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu plugins/pandelay/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu plugins/pandelay/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+install-pluginsLTLIBRARIES: $(plugins_LTLIBRARIES)
+ @$(NORMAL_INSTALL)
+ test -z "$(pluginsdir)" || $(MKDIR_P) "$(DESTDIR)$(pluginsdir)"
+ @list='$(plugins_LTLIBRARIES)'; test -n "$(pluginsdir)" || list=; \
+ list2=; for p in $$list; do \
+ if test -f $$p; then \
+ list2="$$list2 $$p"; \
+ else :; fi; \
+ done; \
+ test -z "$$list2" || { \
+ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(pluginsdir)'"; \
+ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(pluginsdir)"; \
+ }
+
+uninstall-pluginsLTLIBRARIES:
+ @$(NORMAL_UNINSTALL)
+ @list='$(plugins_LTLIBRARIES)'; test -n "$(pluginsdir)" || list=; \
+ for p in $$list; do \
+ $(am__strip_dir) \
+ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(pluginsdir)/$$f'"; \
+ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(pluginsdir)/$$f"; \
+ done
+
+clean-pluginsLTLIBRARIES:
+ -test -z "$(plugins_LTLIBRARIES)" || rm -f $(plugins_LTLIBRARIES)
+ @list='$(plugins_LTLIBRARIES)'; for p in $$list; do \
+ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
+ test "$$dir" != "$$p" || dir=.; \
+ echo "rm -f \"$${dir}/so_locations\""; \
+ rm -f "$${dir}/so_locations"; \
+ done
+pandelay.la: $(pandelay_la_OBJECTS) $(pandelay_la_DEPENDENCIES)
+ $(pandelay_la_LINK) -rpath $(pluginsdir) $(pandelay_la_OBJECTS) $(pandelay_la_LIBADD) $(LIBS)
+
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT)
+
+distclean-compile:
+ -rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ladspapandelay.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pandelay.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pandelaymodel.Plo@am__quote@
+
+.cpp.o:
+@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $<
+
+.cpp.obj:
+@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+
+.cpp.lo:
+@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $<
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+install-pluginsDATA: $(plugins_DATA)
+ @$(NORMAL_INSTALL)
+ test -z "$(pluginsdir)" || $(MKDIR_P) "$(DESTDIR)$(pluginsdir)"
+ @list='$(plugins_DATA)'; test -n "$(pluginsdir)" || list=; \
+ for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pluginsdir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(pluginsdir)" || exit $$?; \
+ done
+
+uninstall-pluginsDATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(plugins_DATA)'; test -n "$(pluginsdir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ test -n "$$files" || exit 0; \
+ echo " ( cd '$(DESTDIR)$(pluginsdir)' && rm -f" $$files ")"; \
+ cd "$(DESTDIR)$(pluginsdir)" && rm -f $$files
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ mkid -fID $$unique
+tags: TAGS
+
+TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ set x; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: CTAGS
+CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) check-am
+all-am: Makefile $(LTLIBRARIES) $(DATA)
+installdirs:
+ for dir in "$(DESTDIR)$(pluginsdir)" "$(DESTDIR)$(pluginsdir)"; do \
+ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ done
+install: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+ -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES)
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+ -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
+clean: clean-am
+
+clean-am: clean-generic clean-libtool clean-pluginsLTLIBRARIES \
+ mostlyclean-am
+
+distclean: distclean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+ distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-pluginsDATA install-pluginsLTLIBRARIES
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+ mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-pluginsDATA uninstall-pluginsLTLIBRARIES
+
+.MAKE: all check install install-am install-strip
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
+ clean-libtool clean-pluginsLTLIBRARIES ctags distclean \
+ distclean-compile distclean-generic distclean-libtool \
+ distclean-tags distdir dvi dvi-am html html-am info info-am \
+ install install-am install-data install-data-am install-dvi \
+ install-dvi-am install-exec install-exec-am install-html \
+ install-html-am install-info install-info-am install-man \
+ install-pdf install-pdf-am install-pluginsDATA \
+ install-pluginsLTLIBRARIES install-ps install-ps-am \
+ install-strip installcheck installcheck-am installdirs \
+ maintainer-clean maintainer-clean-generic mostlyclean \
+ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
+ pdf pdf-am ps ps-am tags uninstall uninstall-am \
+ uninstall-pluginsDATA uninstall-pluginsLTLIBRARIES
+
+
+de:
+ @for base in $(MOCFILES); do echo -e "\t$${base}.cpp $${base}.h \\"; done
+
+nde:
+ @for base in $(MOCFILES); do echo -e "\tmoc_$${base}.cpp \\"; done
+
+.ui.o: %.h
+ $(UIC) -L $(top_srcdir)/muse/widgets -o $*.cpp -impl $*.h $*.ui
+ $(MOC) $*.h >> $*.cpp
+ $(CXXCOMPILE) -c $*.cpp -o $*.o
+ $(RM) $*.cpp moc_$*.cpp moc_$*.o
+
+.ui.lo: %.h
+ $(UIC) -L $(top_srcdir)/muse/widgets -o $*.cpp -impl $*.h $*.ui
+ $(MOC) $*.h >> $*.cpp
+ $(LTCXXCOMPILE) -c $*.cpp -o $*.lo
+ $(RM) $*.cpp moc_$*.cpp moc_$*.lo moc_$*.o
+
+moc_%.cpp: %.h
+ $(MOC) $< -o $@
+
+%.h: %.ui
+ $(UIC) -o $@ $<
+# $(UIC) -L $(top_srcdir)/muse/widgets -o $@ $<
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/muse2/plugins/pandelay/ladspapandelay.cpp b/muse2/plugins/pandelay/ladspapandelay.cpp
new file mode 100644
index 00000000..b5680d3e
--- /dev/null
+++ b/muse2/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/muse2/plugins/pandelay/ladspapandelay.h b/muse2/plugins/pandelay/ladspapandelay.h
new file mode 100644
index 00000000..ab5427a1
--- /dev/null
+++ b/muse2/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/muse2/plugins/pandelay/pandelay.cpp b/muse2/plugins/pandelay/pandelay.cpp
new file mode 100644
index 00000000..18ce1a41
--- /dev/null
+++ b/muse2/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/muse2/plugins/pandelay/pandelaymodel.cpp b/muse2/plugins/pandelay/pandelaymodel.cpp
new file mode 100644
index 00000000..a30d0646
--- /dev/null
+++ b/muse2/plugins/pandelay/pandelaymodel.cpp
@@ -0,0 +1,157 @@
+//===========================================================================
+//
+// 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"
+#include <stdio.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;
+ _beatRatio = 4;
+ setBPM(120);
+ 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/muse2/plugins/pandelay/pandelaymodel.h b/muse2/plugins/pandelay/pandelaymodel.h
new file mode 100644
index 00000000..65983187
--- /dev/null
+++ b/muse2/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/muse2/plugins/plugins-install.am b/muse2/plugins/plugins-install.am
new file mode 100644
index 00000000..86b41ecb
--- /dev/null
+++ b/muse2/plugins/plugins-install.am
@@ -0,0 +1 @@
+pluginsdir = $(pkglibdir)/plugins \ No newline at end of file
diff --git a/muse2/qt4migration.log b/muse2/qt4migration.log
new file mode 100644
index 00000000..c8cdf995
--- /dev/null
+++ b/muse2/qt4migration.log
@@ -0,0 +1,35 @@
+This is a quick shot at converting the MusE 1.0 sources to Qt4 using the
+Qt3Support compatibility classes. This far it looks quite promising the code
+compiles and is runnable. When used it is quickly found that things are not
+ok though. Hopefully we can fix most without too much effort
+
+-------
+The process this far has involved processing the codebase with the tool
+qt3to4 which substitutes many class types for their Qt3Support counterpart and
+adds the necessary includes (it missed quite a lot of includes though)
+
+Known issues:
+
+* One .ui file compiles to a nonfunctional .h file, mtrackinfobase.h, this far
+I have just commented the errenous line in the .h file (line 400 something)
+
+* Most things that I have touched that didn't feel 100% clear are marked with
+'ddskrjo' so just grep the sources for ddskrjo to find potential issues and
+things that are outright commented out.
+
+* configuration of QT4 is hardcoded in configure.am, must be adapted with some
+clever script there is also a hardcoded path to uic3 in common.am.
+We need both a way to detect this generically AND a way to use the correct uic
+for files that are converted to Qt4 format.
+
+* QTooltip has changed significantly so code that uses this is commented out.
+
+* When launched there are a bunch of errors printed, mostly QPainter that most
+likely point to actual problems. As I read in the migration docs previously it
+was supported to draw "on" a widget outside the paintEvent this isn't supported
+anymore (except with a specific define which we should probably steer clear of)
+
+* Can't open mixer
+* Can't open transport
+* Pianoroll is nonfunctional
+* Drumeditor is nonfunctional (hopefully the same problem)
diff --git a/muse2/share/Makefile.am b/muse2/share/Makefile.am
new file mode 100644
index 00000000..f9ec31d5
--- /dev/null
+++ b/muse2/share/Makefile.am
@@ -0,0 +1,8 @@
+SUBDIRS = drummaps html locale wallpapers instruments \
+ plugins templates pybridge scripts
+
+EXTRA_DIST = $(wildcard *.png)
+
+firstpkgdata_DATA = $(EXTRA_DIST)
+firstpkgdatadir = $(pkgdatadir)
+
diff --git a/muse2/share/Makefile.in b/muse2/share/Makefile.in
new file mode 100644
index 00000000..6e76f785
--- /dev/null
+++ b/muse2/share/Makefile.in
@@ -0,0 +1,670 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = share
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal-include.m4 \
+ $(top_srcdir)/m4/alsa.m4 $(top_srcdir)/m4/docbook.m4 \
+ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
+ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
+ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+SOURCES =
+DIST_SOURCES =
+RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
+ html-recursive info-recursive install-data-recursive \
+ install-dvi-recursive install-exec-recursive \
+ install-html-recursive install-info-recursive \
+ install-pdf-recursive install-ps-recursive install-recursive \
+ installcheck-recursive installdirs-recursive pdf-recursive \
+ ps-recursive uninstall-recursive
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__installdirs = "$(DESTDIR)$(firstpkgdatadir)"
+DATA = $(firstpkgdata_DATA)
+RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
+ distclean-recursive maintainer-clean-recursive
+AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
+ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
+ distdir
+ETAGS = etags
+CTAGS = ctags
+DIST_SUBDIRS = $(SUBDIRS)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+am__relativize = \
+ dir0=`pwd`; \
+ sed_first='s,^\([^/]*\)/.*$$,\1,'; \
+ sed_rest='s,^[^/]*/*,,'; \
+ sed_last='s,^.*/\([^/]*\)$$,\1,'; \
+ sed_butlast='s,/*[^/]*$$,,'; \
+ while test -n "$$dir1"; do \
+ first=`echo "$$dir1" | sed -e "$$sed_first"`; \
+ if test "$$first" != "."; then \
+ if test "$$first" = ".."; then \
+ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
+ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
+ else \
+ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
+ if test "$$first2" = "$$first"; then \
+ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
+ else \
+ dir2="../$$dir2"; \
+ fi; \
+ dir0="$$dir0"/"$$first"; \
+ fi; \
+ fi; \
+ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
+ done; \
+ reldir="$$dir2"
+ACLOCAL = @ACLOCAL@
+ALSA_CFLAGS = @ALSA_CFLAGS@
+ALSA_LIBS = @ALSA_LIBS@
+AMTAR = @AMTAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DOCBOOKSTYLE = @DOCBOOKSTYLE@
+DOCBOOKTARGETS = @DOCBOOKTARGETS@
+DOT = @DOT@
+DOTPATH = @DOTPATH@
+DOXYGEN = @DOXYGEN@
+DOXYGEN_TREEVIEW = @DOXYGEN_TREEVIEW@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+FLUIDSYNTHDIRS = @FLUIDSYNTHDIRS@
+FST_CFLAGS = @FST_CFLAGS@
+FST_LIBS = @FST_LIBS@
+Fluidsynth_CFLAGS = @Fluidsynth_CFLAGS@
+Fluidsynth_LIBS = @Fluidsynth_LIBS@
+GIVERTCAP = @GIVERTCAP@
+GREP = @GREP@
+HAVEDOT = @HAVEDOT@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JACK_CFLAGS = @JACK_CFLAGS@
+JACK_LIBS = @JACK_LIBS@
+JADE = @JADE@
+LASH_CFLAGS = @LASH_CFLAGS@
+LASH_LIBS = @LASH_LIBS@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LO_CFLAGS = @LO_CFLAGS@
+LO_LIBS = @LO_LIBS@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+MUSECXXFLAGS = @MUSECXXFLAGS@
+NM = @NM@
+NMEDIT = @NMEDIT@
+NSGMLS = @NSGMLS@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PCH = @PCH@
+PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+PYTHON = @PYTHON@
+PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
+PYTHON_INCLUDES = @PYTHON_INCLUDES@
+PYTHON_LIB = @PYTHON_LIB@
+PYTHON_PLATFORM = @PYTHON_PLATFORM@
+PYTHON_PREFIX = @PYTHON_PREFIX@
+PYTHON_VERSION = @PYTHON_VERSION@
+QTDIR_BIN = @QTDIR_BIN@
+QTDIR_INC = @QTDIR_INC@
+QT_LIBS = @QT_LIBS@
+RANLIB = @RANLIB@
+SAMPLERATE_CFLAGS = @SAMPLERATE_CFLAGS@
+SAMPLERATE_LIBS = @SAMPLERATE_LIBS@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SNDFILE_CFLAGS = @SNDFILE_CFLAGS@
+SNDFILE_LIBS = @SNDFILE_LIBS@
+STRIP = @STRIP@
+SUIDBUILD = @SUIDBUILD@
+SUIDINSTALL = @SUIDINSTALL@
+USE_SSE = @USE_SSE@
+UUID_CFLAGS = @UUID_CFLAGS@
+UUID_LIBS = @UUID_LIBS@
+VERSION = @VERSION@
+XMKMF = @XMKMF@
+X_CFLAGS = @X_CFLAGS@
+X_EXTRA_LIBS = @X_EXTRA_LIBS@
+X_LIBS = @X_LIBS@
+X_PRE_LIBS = @X_PRE_LIBS@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+have_docbook = @have_docbook@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+lt_ECHO = @lt_ECHO@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+pkgpyexecdir = @pkgpyexecdir@
+pkgpythondir = @pkgpythondir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+pyexecdir = @pyexecdir@
+pythondir = @pythondir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+synth_fluid = @synth_fluid@
+synth_fluidsynth = @synth_fluidsynth@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+SUBDIRS = drummaps html locale wallpapers instruments \
+ plugins templates pybridge scripts
+
+EXTRA_DIST = $(wildcard *.png)
+firstpkgdata_DATA = $(EXTRA_DIST)
+firstpkgdatadir = $(pkgdatadir)
+all: all-recursive
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu share/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu share/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+install-firstpkgdataDATA: $(firstpkgdata_DATA)
+ @$(NORMAL_INSTALL)
+ test -z "$(firstpkgdatadir)" || $(MKDIR_P) "$(DESTDIR)$(firstpkgdatadir)"
+ @list='$(firstpkgdata_DATA)'; test -n "$(firstpkgdatadir)" || list=; \
+ for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(firstpkgdatadir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(firstpkgdatadir)" || exit $$?; \
+ done
+
+uninstall-firstpkgdataDATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(firstpkgdata_DATA)'; test -n "$(firstpkgdatadir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ test -n "$$files" || exit 0; \
+ echo " ( cd '$(DESTDIR)$(firstpkgdatadir)' && rm -f" $$files ")"; \
+ cd "$(DESTDIR)$(firstpkgdatadir)" && rm -f $$files
+
+# This directory's subdirectories are mostly independent; you can cd
+# into them and run `make' without going through this Makefile.
+# To change the values of `make' variables: instead of editing Makefiles,
+# (1) if the variable is set in `config.status', edit `config.status'
+# (which will cause the Makefiles to be regenerated when you run `make');
+# (2) otherwise, pass the desired values on the `make' command line.
+$(RECURSIVE_TARGETS):
+ @fail= failcom='exit 1'; \
+ for f in x $$MAKEFLAGS; do \
+ case $$f in \
+ *=* | --[!k]*);; \
+ *k*) failcom='fail=yes';; \
+ esac; \
+ done; \
+ dot_seen=no; \
+ target=`echo $@ | sed s/-recursive//`; \
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ echo "Making $$target in $$subdir"; \
+ if test "$$subdir" = "."; then \
+ dot_seen=yes; \
+ local_target="$$target-am"; \
+ else \
+ local_target="$$target"; \
+ fi; \
+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ || eval $$failcom; \
+ done; \
+ if test "$$dot_seen" = "no"; then \
+ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
+ fi; test -z "$$fail"
+
+$(RECURSIVE_CLEAN_TARGETS):
+ @fail= failcom='exit 1'; \
+ for f in x $$MAKEFLAGS; do \
+ case $$f in \
+ *=* | --[!k]*);; \
+ *k*) failcom='fail=yes';; \
+ esac; \
+ done; \
+ dot_seen=no; \
+ case "$@" in \
+ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+ *) list='$(SUBDIRS)' ;; \
+ esac; \
+ rev=''; for subdir in $$list; do \
+ if test "$$subdir" = "."; then :; else \
+ rev="$$subdir $$rev"; \
+ fi; \
+ done; \
+ rev="$$rev ."; \
+ target=`echo $@ | sed s/-recursive//`; \
+ for subdir in $$rev; do \
+ echo "Making $$target in $$subdir"; \
+ if test "$$subdir" = "."; then \
+ local_target="$$target-am"; \
+ else \
+ local_target="$$target"; \
+ fi; \
+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ || eval $$failcom; \
+ done && test -z "$$fail"
+tags-recursive:
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+ done
+ctags-recursive:
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
+ done
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ mkid -fID $$unique
+tags: TAGS
+
+TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ set x; \
+ here=`pwd`; \
+ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
+ include_option=--etags-include; \
+ empty_fix=.; \
+ else \
+ include_option=--include; \
+ empty_fix=; \
+ fi; \
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ test ! -f $$subdir/TAGS || \
+ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
+ fi; \
+ done; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: CTAGS
+CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+ @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ test -d "$(distdir)/$$subdir" \
+ || $(MKDIR_P) "$(distdir)/$$subdir" \
+ || exit 1; \
+ fi; \
+ done
+ @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
+ $(am__relativize); \
+ new_distdir=$$reldir; \
+ dir1=$$subdir; dir2="$(top_distdir)"; \
+ $(am__relativize); \
+ new_top_distdir=$$reldir; \
+ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
+ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
+ ($(am__cd) $$subdir && \
+ $(MAKE) $(AM_MAKEFLAGS) \
+ top_distdir="$$new_top_distdir" \
+ distdir="$$new_distdir" \
+ am__remove_distdir=: \
+ am__skip_length_check=: \
+ am__skip_mode_fix=: \
+ distdir) \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-recursive
+all-am: Makefile $(DATA)
+installdirs: installdirs-recursive
+installdirs-am:
+ for dir in "$(DESTDIR)$(firstpkgdatadir)"; do \
+ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ done
+install: install-recursive
+install-exec: install-exec-recursive
+install-data: install-data-recursive
+uninstall: uninstall-recursive
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-recursive
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-recursive
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-recursive
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-tags
+
+dvi: dvi-recursive
+
+dvi-am:
+
+html: html-recursive
+
+html-am:
+
+info: info-recursive
+
+info-am:
+
+install-data-am: install-firstpkgdataDATA
+
+install-dvi: install-dvi-recursive
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-recursive
+
+install-html-am:
+
+install-info: install-info-recursive
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-recursive
+
+install-pdf-am:
+
+install-ps: install-ps-recursive
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-recursive
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-recursive
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-recursive
+
+pdf-am:
+
+ps: ps-recursive
+
+ps-am:
+
+uninstall-am: uninstall-firstpkgdataDATA
+
+.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \
+ install-am install-strip tags-recursive
+
+.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
+ all all-am check check-am clean clean-generic clean-libtool \
+ ctags ctags-recursive distclean distclean-generic \
+ distclean-libtool distclean-tags distdir dvi dvi-am html \
+ html-am info info-am install install-am install-data \
+ install-data-am install-dvi install-dvi-am install-exec \
+ install-exec-am install-firstpkgdataDATA install-html \
+ install-html-am install-info install-info-am install-man \
+ install-pdf install-pdf-am install-ps install-ps-am \
+ install-strip installcheck installcheck-am installdirs \
+ installdirs-am maintainer-clean maintainer-clean-generic \
+ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
+ ps ps-am tags tags-recursive uninstall uninstall-am \
+ uninstall-firstpkgdataDATA
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/muse2/share/drummaps/AKAI_SG01v_Bank_dr1.map b/muse2/share/drummaps/AKAI_SG01v_Bank_dr1.map
new file mode 100644
index 00000000..adf9b5c0
--- /dev/null
+++ b/muse2/share/drummaps/AKAI_SG01v_Bank_dr1.map
@@ -0,0 +1,977 @@
+<?xml version="1.0"?>
+<muse version="1.0">
+ <drummap>
+ <comment>
+ # Drum Set List for AKAI SG01v Bank dr1
+ # generated by babarosa
+ # please report changes and errors
+ # to muse mailing list
+ </comment>
+ <entry>
+ <name>BLIP#1</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>27</enote>
+ <anote>27</anote>
+ </entry>
+ <entry>
+ <name>PLATE-</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>28</enote>
+ <anote>28</anote>
+ </entry>
+ <entry>
+ <name>BLIP#2</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>29</enote>
+ <anote>29</anote>
+ </entry>
+ <entry>
+ <name>SCRATCH-</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>30</enote>
+ <anote>30</anote>
+ </entry>
+ <entry>
+ <name>SYN. RIM</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>31</enote>
+ <anote>31</anote>
+ </entry>
+ <entry>
+ <name>MM CLIC C2</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>32</enote>
+ <anote>32</anote>
+ </entry>
+ <entry>
+ <name>MM CLIK C5</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>33</enote>
+ <anote>33</anote>
+ </entry>
+ <entry>
+ <name>BLIP#2</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>34</enote>
+ <anote>34</anote>
+ </entry>
+ <entry>
+ <name>SYN. KICK</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>35</enote>
+ <anote>35</anote>
+ </entry>
+ <entry>
+ <name>SDS5 KICK3</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>36</enote>
+ <anote>36</anote>
+ </entry>
+ <entry>
+ <name>SIDE STICK</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>37</enote>
+ <anote>37</anote>
+ </entry>
+ <entry>
+ <name>SYN. SNRE 2</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>38</enote>
+ <anote>38</anote>
+ </entry>
+ <entry>
+ <name>SYN. CLAPS</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>39</enote>
+ <anote>39</anote>
+ </entry>
+ <entry>
+ <name>SIM. SNRE</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>40</enote>
+ <anote>40</anote>
+ </entry>
+ <entry>
+ <name>MID AC TOM</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>41</enote>
+ <anote>41</anote>
+ </entry>
+ <entry>
+ <name>SYN. CL-HAT</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>42</enote>
+ <anote>42</anote>
+ </entry>
+ <entry>
+ <name>MID AC TOM</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>43</enote>
+ <anote>43</anote>
+ </entry>
+ <entry>
+ <name>SYN. HLF-HAT</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>44</enote>
+ <anote>44</anote>
+ </entry>
+ <entry>
+ <name>MID AC TOM</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>45</enote>
+ <anote>45</anote>
+ </entry>
+ <entry>
+ <name>SYN. OP-HAT</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>46</enote>
+ <anote>46</anote>
+ </entry>
+ <entry>
+ <name>MID AC TOM</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>47</enote>
+ <anote>47</anote>
+ </entry>
+ <entry>
+ <name>MID AC TOM</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>48</enote>
+ <anote>48</anote>
+ </entry>
+ <entry>
+ <name>CRASH</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>49</enote>
+ <anote>49</anote>
+ </entry>
+ <entry>
+ <name>MID AC TOM</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>50</enote>
+ <anote>50</anote>
+ </entry>
+ <entry>
+ <name>RIDE SYMBAL</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>51</enote>
+ <anote>51</anote>
+ </entry>
+ <entry>
+ <name>CRASH</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>52</enote>
+ <anote>52</anote>
+ </entry>
+ <entry>
+ <name>RIDE SYMBAL</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>53</enote>
+ <anote>53</anote>
+ </entry>
+ <entry>
+ <name>TAMBOURINE</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>54</enote>
+ <anote>54</anote>
+ </entry>
+ <entry>
+ <name>CRASH</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>55</enote>
+ <anote>55</anote>
+ </entry>
+ <entry>
+ <name>COWBELL</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>56</enote>
+ <anote>56</anote>
+ </entry>
+ <entry>
+ <name>CRASH</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>57</enote>
+ <anote>57</anote>
+ </entry>
+ <entry>
+ <name>FINGER SNAPS</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>58</enote>
+ <anote>58</anote>
+ </entry>
+ <entry>
+ <name>RIDE SYMBAL</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>59</enote>
+ <anote>59</anote>
+ </entry>
+ <entry>
+ <name>HI CONGA SL</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>60</enote>
+ <anote>60</anote>
+ </entry>
+ <entry>
+ <name>HI CONGA SL</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>61</enote>
+ <anote>61</anote>
+ </entry>
+ <entry>
+ <name>LO CONGA SL</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>62</enote>
+ <anote>62</anote>
+ </entry>
+ <entry>
+ <name>HI CONGA OP</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>63</enote>
+ <anote>63</anote>
+ </entry>
+ <entry>
+ <name>LOW CONGA OP</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>64</enote>
+ <anote>64</anote>
+ </entry>
+ <entry>
+ <name>TIMBAL</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>65</enote>
+ <anote>65</anote>
+ </entry>
+ <entry>
+ <name>TIMBAL</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>66</enote>
+ <anote>66</anote>
+ </entry>
+ <entry>
+ <name>AGOGO 1</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>67</enote>
+ <anote>67</anote>
+ </entry>
+ <entry>
+ <name>AGOGO 1</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>68</enote>
+ <anote>68</anote>
+ </entry>
+ <entry>
+ <name>SYN. MARACAS</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>69</enote>
+ <anote>69</anote>
+ </entry>
+ <entry>
+ <name>MARACAS</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>70</enote>
+ <anote>70</anote>
+ </entry>
+ <entry>
+ <name> </name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>71</enote>
+ <anote>71</anote>
+ </entry>
+ <entry>
+ <name>POWER KICK</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>72</enote>
+ <anote>72</anote>
+ </entry>
+ <entry>
+ <name>SYN. RIM</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>73</enote>
+ <anote>73</anote>
+ </entry>
+ <entry>
+ <name>POWER SNRE</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>74</enote>
+ <anote>74</anote>
+ </entry>
+ <entry>
+ <name>BIG CLAP</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>75</enote>
+ <anote>75</anote>
+ </entry>
+ <entry>
+ <name>SDS5 SNARE9</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>76</enote>
+ <anote>76</anote>
+ </entry>
+ <entry>
+ <name>MID E.TOM</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>77</enote>
+ <anote>77</anote>
+ </entry>
+ <entry>
+ <name>CL HAT</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>78</enote>
+ <anote>78</anote>
+ </entry>
+ <entry>
+ <name>MID E.TOM</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>79</enote>
+ <anote>79</anote>
+ </entry>
+ <entry>
+ <name>HLF HAT</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>80</enote>
+ <anote>80</anote>
+ </entry>
+ <entry>
+ <name>MID E.TOM</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>81</enote>
+ <anote>81</anote>
+ </entry>
+ <entry>
+ <name>OP HAT</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>82</enote>
+ <anote>82</anote>
+ </entry>
+ <entry>
+ <name>MID E.TOM</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>83</enote>
+ <anote>83</anote>
+ </entry>
+ <entry>
+ <name>MID E.TOM</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>84</enote>
+ <anote>84</anote>
+ </entry>
+ <entry>
+ <name>CRASH</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>85</enote>
+ <anote>85</anote>
+ </entry>
+ <entry>
+ <name>MID E.TOM</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>86</enote>
+ <anote>86</anote>
+ </entry>
+ <entry>
+ <name>RIDE SYMBAL</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>87</enote>
+ <anote>87</anote>
+ </entry>
+ <entry>
+ <name>WHITE NOISE</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>88</enote>
+ <anote>88</anote>
+ </entry>
+ <entry>
+ <name> </name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>89</enote>
+ <anote>89</anote>
+ </entry>
+ <entry>
+ <name>BLIP#2</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>90</enote>
+ <anote>90</anote>
+ </entry>
+ <entry>
+ <name>SYN. LO-CONGA</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>91</enote>
+ <anote>91</anote>
+ </entry>
+ <entry>
+ <name>SYN. COWBELL</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>92</enote>
+ <anote>92</anote>
+ </entry>
+ <entry>
+ <name>SYN. LO-CONGA</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>93</enote>
+ <anote>93</anote>
+ </entry>
+ <entry>
+ <name>SYN. CLAVES</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>94</enote>
+ <anote>94</anote>
+ </entry>
+ <entry>
+ <name>SYN. LO-CONGA</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>95</enote>
+ <anote>95</anote>
+ </entry>
+ </drummap>
+ </muse>
diff --git a/muse2/share/drummaps/AKAI_SG01v_Bank_dr2.map b/muse2/share/drummaps/AKAI_SG01v_Bank_dr2.map
new file mode 100644
index 00000000..46db39a0
--- /dev/null
+++ b/muse2/share/drummaps/AKAI_SG01v_Bank_dr2.map
@@ -0,0 +1,977 @@
+<?xml version="1.0"?>
+<muse version="1.0">
+ <drummap>
+ <comment>
+ # Drum Set List for AKAI SG01v Bank dr2
+ # generated by babarosa
+ # please report changes and errors
+ # to muse mailing list
+ </comment>
+ <entry>
+ <name>BLIP#1</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>27</enote>
+ <anote>27</anote>
+ </entry>
+ <entry>
+ <name>PLATE-</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>28</enote>
+ <anote>28</anote>
+ </entry>
+ <entry>
+ <name>BLIP#2</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>29</enote>
+ <anote>29</anote>
+ </entry>
+ <entry>
+ <name>SCRATCH-</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>30</enote>
+ <anote>30</anote>
+ </entry>
+ <entry>
+ <name>SYN. RIM</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>31</enote>
+ <anote>31</anote>
+ </entry>
+ <entry>
+ <name>MM CLIC C2</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>32</enote>
+ <anote>32</anote>
+ </entry>
+ <entry>
+ <name>MM CLIK C5</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>33</enote>
+ <anote>33</anote>
+ </entry>
+ <entry>
+ <name>BLIP#2</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>34</enote>
+ <anote>34</anote>
+ </entry>
+ <entry>
+ <name>SYN. KICK</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>35</enote>
+ <anote>35</anote>
+ </entry>
+ <entry>
+ <name>SDS5 KICK3</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>36</enote>
+ <anote>36</anote>
+ </entry>
+ <entry>
+ <name>SIDE STICK</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>37</enote>
+ <anote>37</anote>
+ </entry>
+ <entry>
+ <name>SYN. SNRE 2</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>38</enote>
+ <anote>38</anote>
+ </entry>
+ <entry>
+ <name>SYN. CLAPS</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>39</enote>
+ <anote>39</anote>
+ </entry>
+ <entry>
+ <name>SDS5 SNARE9</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>40</enote>
+ <anote>40</anote>
+ </entry>
+ <entry>
+ <name>SIM. SNRE</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>41</enote>
+ <anote>41</anote>
+ </entry>
+ <entry>
+ <name>SYN. CL-HAT</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>42</enote>
+ <anote>42</anote>
+ </entry>
+ <entry>
+ <name>SIM. SNRE</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>43</enote>
+ <anote>43</anote>
+ </entry>
+ <entry>
+ <name>SYN. HLF-HAT</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>44</enote>
+ <anote>44</anote>
+ </entry>
+ <entry>
+ <name>SIM. SNRE</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>45</enote>
+ <anote>45</anote>
+ </entry>
+ <entry>
+ <name>SYN. OP-HAT</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>46</enote>
+ <anote>46</anote>
+ </entry>
+ <entry>
+ <name>SIM. SNRE</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>47</enote>
+ <anote>47</anote>
+ </entry>
+ <entry>
+ <name>SIM. SNRE</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>48</enote>
+ <anote>48</anote>
+ </entry>
+ <entry>
+ <name>CRASH</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>49</enote>
+ <anote>49</anote>
+ </entry>
+ <entry>
+ <name>SIM. SNRE</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>50</enote>
+ <anote>50</anote>
+ </entry>
+ <entry>
+ <name>RIDE SYMBAL</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>51</enote>
+ <anote>51</anote>
+ </entry>
+ <entry>
+ <name>CRASH</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>52</enote>
+ <anote>52</anote>
+ </entry>
+ <entry>
+ <name>RIDE SYMBAL</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>53</enote>
+ <anote>53</anote>
+ </entry>
+ <entry>
+ <name>TAMBOURINE</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>54</enote>
+ <anote>54</anote>
+ </entry>
+ <entry>
+ <name>CRASH</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>55</enote>
+ <anote>55</anote>
+ </entry>
+ <entry>
+ <name>COWBELL</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>56</enote>
+ <anote>56</anote>
+ </entry>
+ <entry>
+ <name>CRASH</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>57</enote>
+ <anote>57</anote>
+ </entry>
+ <entry>
+ <name>FINGER SNAPS</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>58</enote>
+ <anote>58</anote>
+ </entry>
+ <entry>
+ <name>RIDE SYMBAL</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>59</enote>
+ <anote>59</anote>
+ </entry>
+ <entry>
+ <name>HI CONGA SL</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>60</enote>
+ <anote>60</anote>
+ </entry>
+ <entry>
+ <name>HI CONGA SL</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>61</enote>
+ <anote>61</anote>
+ </entry>
+ <entry>
+ <name>LO CONGA SL</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>62</enote>
+ <anote>62</anote>
+ </entry>
+ <entry>
+ <name>HI CONGA OP</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>63</enote>
+ <anote>63</anote>
+ </entry>
+ <entry>
+ <name>LOW CONGA OP</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>64</enote>
+ <anote>64</anote>
+ </entry>
+ <entry>
+ <name>TIMBAL</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>65</enote>
+ <anote>65</anote>
+ </entry>
+ <entry>
+ <name>TIMBAL</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>66</enote>
+ <anote>66</anote>
+ </entry>
+ <entry>
+ <name>AGOGO 1</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>67</enote>
+ <anote>67</anote>
+ </entry>
+ <entry>
+ <name>AGOGO 1</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>68</enote>
+ <anote>68</anote>
+ </entry>
+ <entry>
+ <name>SYN. MARACAS</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>69</enote>
+ <anote>69</anote>
+ </entry>
+ <entry>
+ <name>MARACAS</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>70</enote>
+ <anote>70</anote>
+ </entry>
+ <entry>
+ <name> </name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>71</enote>
+ <anote>71</anote>
+ </entry>
+ <entry>
+ <name>POWER KICK</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>72</enote>
+ <anote>72</anote>
+ </entry>
+ <entry>
+ <name>SYN. RIM</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>73</enote>
+ <anote>73</anote>
+ </entry>
+ <entry>
+ <name>POWER SNRE</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>74</enote>
+ <anote>74</anote>
+ </entry>
+ <entry>
+ <name>BIG CLAP</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>75</enote>
+ <anote>75</anote>
+ </entry>
+ <entry>
+ <name>SDS5 SNARE9</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>76</enote>
+ <anote>76</anote>
+ </entry>
+ <entry>
+ <name>MID E.TOM</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>77</enote>
+ <anote>77</anote>
+ </entry>
+ <entry>
+ <name>CL HAT</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>78</enote>
+ <anote>78</anote>
+ </entry>
+ <entry>
+ <name>MID E.TOM</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>79</enote>
+ <anote>79</anote>
+ </entry>
+ <entry>
+ <name>HLF HAT</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>80</enote>
+ <anote>80</anote>
+ </entry>
+ <entry>
+ <name>MID E.TOM</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>81</enote>
+ <anote>81</anote>
+ </entry>
+ <entry>
+ <name>OP HAT</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>82</enote>
+ <anote>82</anote>
+ </entry>
+ <entry>
+ <name>MID E.TOM</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>83</enote>
+ <anote>83</anote>
+ </entry>
+ <entry>
+ <name>MID E.TOM</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>84</enote>
+ <anote>84</anote>
+ </entry>
+ <entry>
+ <name>CRASH</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>85</enote>
+ <anote>85</anote>
+ </entry>
+ <entry>
+ <name>MID E.TOM</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>86</enote>
+ <anote>86</anote>
+ </entry>
+ <entry>
+ <name>RIDE SYMBAL</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>87</enote>
+ <anote>87</anote>
+ </entry>
+ <entry>
+ <name>WHITE NOISE</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>88</enote>
+ <anote>88</anote>
+ </entry>
+ <entry>
+ <name> </name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>89</enote>
+ <anote>89</anote>
+ </entry>
+ <entry>
+ <name>BLIP#2</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>90</enote>
+ <anote>90</anote>
+ </entry>
+ <entry>
+ <name>SYN. LO-CONGA</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>91</enote>
+ <anote>91</anote>
+ </entry>
+ <entry>
+ <name>SYN. COWBELL</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>92</enote>
+ <anote>92</anote>
+ </entry>
+ <entry>
+ <name>SYN. LO-CONGA</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>93</enote>
+ <anote>93</anote>
+ </entry>
+ <entry>
+ <name>SYN. CLAVES</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>94</enote>
+ <anote>94</anote>
+ </entry>
+ <entry>
+ <name>SYN. LO-CONGA</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>95</enote>
+ <anote>95</anote>
+ </entry>
+ </drummap>
+ </muse>
diff --git a/muse2/share/drummaps/KURZWEIL_SP2X_Drum_Map_GM_ReMap.map b/muse2/share/drummaps/KURZWEIL_SP2X_Drum_Map_GM_ReMap.map
new file mode 100644
index 00000000..1106bda1
--- /dev/null
+++ b/muse2/share/drummaps/KURZWEIL_SP2X_Drum_Map_GM_ReMap.map
@@ -0,0 +1,1425 @@
+<?xml version="1.0"?>
+<muse version="1.0">
+ <drummap>
+ <comment>
+ # Drum Set List for KURZWEIL SP2X Drum Map GM ReMap
+ # generated by babarosa
+ # please report changes and errors
+ # to muse mailing list
+ </comment>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>27</enote>
+ <anote>27</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>28</enote>
+ <anote>28</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>29</enote>
+ <anote>29</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>30</enote>
+ <anote>30</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>31</enote>
+ <anote>31</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>32</enote>
+ <anote>32</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>33</enote>
+ <anote>33</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>34</enote>
+ <anote>34</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>35</enote>
+ <anote>35</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>36</enote>
+ <anote>36</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>37</enote>
+ <anote>37</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>38</enote>
+ <anote>38</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>39</enote>
+ <anote>39</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>40</enote>
+ <anote>40</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>41</enote>
+ <anote>41</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>42</enote>
+ <anote>42</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>43</enote>
+ <anote>43</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>44</enote>
+ <anote>44</anote>
+ </entry>
+ <entry>
+ <name>Metronome Click</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>45</enote>
+ <anote>45</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>46</enote>
+ <anote>46</anote>
+ </entry>
+ <entry>
+ <name>Kick Drum 2</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>47</enote>
+ <anote>47</anote>
+ </entry>
+ <entry>
+ <name>Kick Drum 1</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>48</enote>
+ <anote>48</anote>
+ </entry>
+ <entry>
+ <name>Side Stick</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>49</enote>
+ <anote>49</anote>
+ </entry>
+ <entry>
+ <name>Snare Drum 1</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>50</enote>
+ <anote>50</anote>
+ </entry>
+ <entry>
+ <name>Hand Clap</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>51</enote>
+ <anote>51</anote>
+ </entry>
+ <entry>
+ <name>Snare Drum 2</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>52</enote>
+ <anote>52</anote>
+ </entry>
+ <entry>
+ <name>Lo Tom 2</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>53</enote>
+ <anote>53</anote>
+ </entry>
+ <entry>
+ <name>Closed Hi Hat</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>54</enote>
+ <anote>54</anote>
+ </entry>
+ <entry>
+ <name>Lo Tom 1</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>55</enote>
+ <anote>55</anote>
+ </entry>
+ <entry>
+ <name>Pedal Hi Hat</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>56</enote>
+ <anote>56</anote>
+ </entry>
+ <entry>
+ <name>Mid Tom 2</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>57</enote>
+ <anote>57</anote>
+ </entry>
+ <entry>
+ <name>Open Hi Hat</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>58</enote>
+ <anote>58</anote>
+ </entry>
+ <entry>
+ <name>Mid Tom 1</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>59</enote>
+ <anote>59</anote>
+ </entry>
+ <entry>
+ <name>Hi Tom 2</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>60</enote>
+ <anote>60</anote>
+ </entry>
+ <entry>
+ <name>Crash Cymbal 1</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>61</enote>
+ <anote>61</anote>
+ </entry>
+ <entry>
+ <name>Hi Tom 1</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>62</enote>
+ <anote>62</anote>
+ </entry>
+ <entry>
+ <name>Ride Cymbal 1</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>63</enote>
+ <anote>63</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>64</enote>
+ <anote>64</anote>
+ </entry>
+ <entry>
+ <name>Ride Bell</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>65</enote>
+ <anote>65</anote>
+ </entry>
+ <entry>
+ <name>Tambourine</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>66</enote>
+ <anote>66</anote>
+ </entry>
+ <entry>
+ <name>Splash Cymbal</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>67</enote>
+ <anote>67</anote>
+ </entry>
+ <entry>
+ <name>Cowbell</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>68</enote>
+ <anote>68</anote>
+ </entry>
+ <entry>
+ <name>Crash Cymbal 2</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>69</enote>
+ <anote>69</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>70</enote>
+ <anote>70</anote>
+ </entry>
+ <entry>
+ <name>Ride Cymbal 2</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>71</enote>
+ <anote>71</anote>
+ </entry>
+ <entry>
+ <name>Hi Bongo</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>72</enote>
+ <anote>72</anote>
+ </entry>
+ <entry>
+ <name>Lo Bongo</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>73</enote>
+ <anote>73</anote>
+ </entry>
+ <entry>
+ <name>Mute Conga</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>74</enote>
+ <anote>74</anote>
+ </entry>
+ <entry>
+ <name>Hi Conga</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>75</enote>
+ <anote>75</anote>
+ </entry>
+ <entry>
+ <name>Lo Conga</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>76</enote>
+ <anote>76</anote>
+ </entry>
+ <entry>
+ <name>Hi Timbale</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>77</enote>
+ <anote>77</anote>
+ </entry>
+ <entry>
+ <name>Lo Timbale</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>78</enote>
+ <anote>78</anote>
+ </entry>
+ <entry>
+ <name>Hi Agogo</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>79</enote>
+ <anote>79</anote>
+ </entry>
+ <entry>
+ <name>Lo Agogo</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>80</enote>
+ <anote>80</anote>
+ </entry>
+ <entry>
+ <name>Cabasa</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>81</enote>
+ <anote>81</anote>
+ </entry>
+ <entry>
+ <name>Maracas</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>82</enote>
+ <anote>82</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>83</enote>
+ <anote>83</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>84</enote>
+ <anote>84</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>85</enote>
+ <anote>85</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>86</enote>
+ <anote>86</anote>
+ </entry>
+ <entry>
+ <name>Clave</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>87</enote>
+ <anote>87</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>88</enote>
+ <anote>88</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>89</enote>
+ <anote>89</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>90</enote>
+ <anote>90</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>91</enote>
+ <anote>91</anote>
+ </entry>
+ <entry>
+ <name>Triangle Mute</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>92</enote>
+ <anote>92</anote>
+ </entry>
+ <entry>
+ <name>Triangle Open</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>93</enote>
+ <anote>93</anote>
+ </entry>
+ <entry>
+ <name>Shaker</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>94</enote>
+ <anote>94</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>95</enote>
+ <anote>95</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>96</enote>
+ <anote>96</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>97</enote>
+ <anote>97</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>98</enote>
+ <anote>98</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>99</enote>
+ <anote>99</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>100</enote>
+ <anote>100</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>101</enote>
+ <anote>101</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>102</enote>
+ <anote>102</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>103</enote>
+ <anote>103</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>104</enote>
+ <anote>104</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>105</enote>
+ <anote>105</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>106</enote>
+ <anote>106</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>107</enote>
+ <anote>107</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>108</enote>
+ <anote>108</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>109</enote>
+ <anote>109</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>110</enote>
+ <anote>110</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>111</enote>
+ <anote>111</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>112</enote>
+ <anote>112</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>113</enote>
+ <anote>113</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>114</enote>
+ <anote>114</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>115</enote>
+ <anote>115</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>116</enote>
+ <anote>116</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>117</enote>
+ <anote>117</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>118</enote>
+ <anote>118</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>119</enote>
+ <anote>119</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>120</enote>
+ <anote>120</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>121</enote>
+ <anote>121</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>122</enote>
+ <anote>122</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>123</enote>
+ <anote>123</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>124</enote>
+ <anote>124</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>125</enote>
+ <anote>125</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>126</enote>
+ <anote>126</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>127</enote>
+ <anote>127</anote>
+ </entry>
+ </drummap>
+ </muse>
diff --git a/muse2/share/drummaps/KURZWEIL_SP2X_Drum_Map_Normal.map b/muse2/share/drummaps/KURZWEIL_SP2X_Drum_Map_Normal.map
new file mode 100644
index 00000000..a7d9632e
--- /dev/null
+++ b/muse2/share/drummaps/KURZWEIL_SP2X_Drum_Map_Normal.map
@@ -0,0 +1,1419 @@
+<?xml version="1.0"?>
+<muse version="1.0">
+ <drummap>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>27</enote>
+ <anote>27</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>28</enote>
+ <anote>28</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>29</enote>
+ <anote>29</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>30</enote>
+ <anote>30</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>31</enote>
+ <anote>31</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>32</enote>
+ <anote>32</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>33</enote>
+ <anote>33</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>34</enote>
+ <anote>34</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>35</enote>
+ <anote>35</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>36</enote>
+ <anote>36</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>37</enote>
+ <anote>37</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>38</enote>
+ <anote>38</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>39</enote>
+ <anote>39</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>40</enote>
+ <anote>40</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>41</enote>
+ <anote>41</anote>
+ </entry>
+ <entry>
+ <name>Hard Snare 1</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>42</enote>
+ <anote>42</anote>
+ </entry>
+ <entry>
+ <name>Kick 3</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>43</enote>
+ <anote>43</anote>
+ </entry>
+ <entry>
+ <name>Kick 3</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>44</enote>
+ <anote>44</anote>
+ </entry>
+ <entry>
+ <name>Snare 4</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>45</enote>
+ <anote>45</anote>
+ </entry>
+ <entry>
+ <name>Snare 4</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>46</enote>
+ <anote>46</anote>
+ </entry>
+ <entry>
+ <name>Crash Cymbal</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>47</enote>
+ <anote>47</anote>
+ </entry>
+ <entry>
+ <name>Floor Tom</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>48</enote>
+ <anote>48</anote>
+ </entry>
+ <entry>
+ <name>Floor Tom</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>49</enote>
+ <anote>49</anote>
+ </entry>
+ <entry>
+ <name>Lo Mid Tom</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>50</enote>
+ <anote>50</anote>
+ </entry>
+ <entry>
+ <name>Lo Mid Tom</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>51</enote>
+ <anote>51</anote>
+ </entry>
+ <entry>
+ <name>Mid Tom</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>52</enote>
+ <anote>52</anote>
+ </entry>
+ <entry>
+ <name>Mid Tom</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>53</enote>
+ <anote>53</anote>
+ </entry>
+ <entry>
+ <name>Mid Tom</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>54</enote>
+ <anote>54</anote>
+ </entry>
+ <entry>
+ <name>Hi Tom</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>55</enote>
+ <anote>55</anote>
+ </entry>
+ <entry>
+ <name>Hi Tom</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>56</enote>
+ <anote>56</anote>
+ </entry>
+ <entry>
+ <name>Hi Tom</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>57</enote>
+ <anote>57</anote>
+ </entry>
+ <entry>
+ <name>Hi Tom</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>58</enote>
+ <anote>58</anote>
+ </entry>
+ <entry>
+ <name>Kick 1</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>59</enote>
+ <anote>59</anote>
+ </entry>
+ <entry>
+ <name>Kick 1</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>60</enote>
+ <anote>60</anote>
+ </entry>
+ <entry>
+ <name>Kick 1</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>61</enote>
+ <anote>61</anote>
+ </entry>
+ <entry>
+ <name>Kick 2</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>62</enote>
+ <anote>62</anote>
+ </entry>
+ <entry>
+ <name>Kick 2</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>63</enote>
+ <anote>63</anote>
+ </entry>
+ <entry>
+ <name>Cross Stick Ambient</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>64</enote>
+ <anote>64</anote>
+ </entry>
+ <entry>
+ <name>Cross Stick Ambient</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>65</enote>
+ <anote>65</anote>
+ </entry>
+ <entry>
+ <name>Cross Stick</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>66</enote>
+ <anote>66</anote>
+ </entry>
+ <entry>
+ <name>Snare 3</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>67</enote>
+ <anote>67</anote>
+ </entry>
+ <entry>
+ <name>Snare 3</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>68</enote>
+ <anote>68</anote>
+ </entry>
+ <entry>
+ <name>Snare 2</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>69</enote>
+ <anote>69</anote>
+ </entry>
+ <entry>
+ <name>Snare 2</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>70</enote>
+ <anote>70</anote>
+ </entry>
+ <entry>
+ <name>Soft Snare 1</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>71</enote>
+ <anote>71</anote>
+ </entry>
+ <entry>
+ <name>Dual Snare 1</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>72</enote>
+ <anote>72</anote>
+ </entry>
+ <entry>
+ <name>Dual Snare 1</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>73</enote>
+ <anote>73</anote>
+ </entry>
+ <entry>
+ <name>Closed Hi-hat</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>74</enote>
+ <anote>74</anote>
+ </entry>
+ <entry>
+ <name>Closed Hi-hat</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>75</enote>
+ <anote>75</anote>
+ </entry>
+ <entry>
+ <name>Closed Hi-hat</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>76</enote>
+ <anote>76</anote>
+ </entry>
+ <entry>
+ <name>Slightly Open Hi-hat</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>77</enote>
+ <anote>77</anote>
+ </entry>
+ <entry>
+ <name>Slightly Open Hi-hat</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>78</enote>
+ <anote>78</anote>
+ </entry>
+ <entry>
+ <name>Slightly Open Hi-hat</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>79</enote>
+ <anote>79</anote>
+ </entry>
+ <entry>
+ <name>Open Hi-hat</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>80</enote>
+ <anote>80</anote>
+ </entry>
+ <entry>
+ <name>Open Hi-hat</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>81</enote>
+ <anote>81</anote>
+ </entry>
+ <entry>
+ <name>Open\Closed Hi-hat</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>82</enote>
+ <anote>82</anote>
+ </entry>
+ <entry>
+ <name>Open\Closed Hi-hat</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>83</enote>
+ <anote>83</anote>
+ </entry>
+ <entry>
+ <name>Foot Hi-hat</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>84</enote>
+ <anote>84</anote>
+ </entry>
+ <entry>
+ <name>Crash Cymbal</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>85</enote>
+ <anote>85</anote>
+ </entry>
+ <entry>
+ <name>Crash Cymbal</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>86</enote>
+ <anote>86</anote>
+ </entry>
+ <entry>
+ <name>Crash Cymbal</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>87</enote>
+ <anote>87</anote>
+ </entry>
+ <entry>
+ <name>Crash Cymbal</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>88</enote>
+ <anote>88</anote>
+ </entry>
+ <entry>
+ <name>Crash Cymbal</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>89</enote>
+ <anote>89</anote>
+ </entry>
+ <entry>
+ <name>Crash Cymbal</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>90</enote>
+ <anote>90</anote>
+ </entry>
+ <entry>
+ <name>Splash Cymbal</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>91</enote>
+ <anote>91</anote>
+ </entry>
+ <entry>
+ <name>Ride Cymbal</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>92</enote>
+ <anote>92</anote>
+ </entry>
+ <entry>
+ <name>Ride Cymbal Rim</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>93</enote>
+ <anote>93</anote>
+ </entry>
+ <entry>
+ <name>Ride Cymbal Rim\Bell</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>94</enote>
+ <anote>94</anote>
+ </entry>
+ <entry>
+ <name>Ride Cymbal Bell</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>95</enote>
+ <anote>95</anote>
+ </entry>
+ <entry>
+ <name>Ride Cymbal Bell</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>96</enote>
+ <anote>96</anote>
+ </entry>
+ <entry>
+ <name>Cowbell</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>97</enote>
+ <anote>97</anote>
+ </entry>
+ <entry>
+ <name>Hand Clap</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>98</enote>
+ <anote>98</anote>
+ </entry>
+ <entry>
+ <name>Lo Timbale\Hi Timbale</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>99</enote>
+ <anote>99</anote>
+ </entry>
+ <entry>
+ <name>Timbale Shell</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>100</enote>
+ <anote>100</anote>
+ </entry>
+ <entry>
+ <name>Conga</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>101</enote>
+ <anote>101</anote>
+ </entry>
+ <entry>
+ <name>Hi Tumba</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>102</enote>
+ <anote>102</anote>
+ </entry>
+ <entry>
+ <name>Conga</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>103</enote>
+ <anote>103</anote>
+ </entry>
+ <entry>
+ <name>Lo Tumba</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>104</enote>
+ <anote>104</anote>
+ </entry>
+ <entry>
+ <name>Clave</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>105</enote>
+ <anote>105</anote>
+ </entry>
+ <entry>
+ <name>Shakers</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>106</enote>
+ <anote>106</anote>
+ </entry>
+ <entry>
+ <name>Tambourine</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>107</enote>
+ <anote>107</anote>
+ </entry>
+ <entry>
+ <name>Tambourine</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>108</enote>
+ <anote>108</anote>
+ </entry>
+ <entry>
+ <name>Shakers</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>109</enote>
+ <anote>109</anote>
+ </entry>
+ <entry>
+ <name>Tambourine</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>110</enote>
+ <anote>110</anote>
+ </entry>
+ <entry>
+ <name>Maracas</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>111</enote>
+ <anote>111</anote>
+ </entry>
+ <entry>
+ <name>Maracas</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>112</enote>
+ <anote>112</anote>
+ </entry>
+ <entry>
+ <name>Lo Agogo</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>113</enote>
+ <anote>113</anote>
+ </entry>
+ <entry>
+ <name>Hi Agogo</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>114</enote>
+ <anote>114</anote>
+ </entry>
+ <entry>
+ <name>Lo Bongo</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>115</enote>
+ <anote>115</anote>
+ </entry>
+ <entry>
+ <name>Bongo Slap</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>116</enote>
+ <anote>116</anote>
+ </entry>
+ <entry>
+ <name>Hi Bongo</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>117</enote>
+ <anote>117</anote>
+ </entry>
+ <entry>
+ <name>Finger Snap</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>118</enote>
+ <anote>118</anote>
+ </entry>
+ <entry>
+ <name>Muted Triangle</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>119</enote>
+ <anote>119</anote>
+ </entry>
+ <entry>
+ <name>Open Triangle</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>120</enote>
+ <anote>120</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>121</enote>
+ <anote>121</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>122</enote>
+ <anote>122</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>123</enote>
+ <anote>123</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>124</enote>
+ <anote>124</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>125</enote>
+ <anote>125</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>126</enote>
+ <anote>126</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>9</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>127</lv3>
+ <lv4>110</lv4>
+ <enote>127</enote>
+ <anote>127</anote>
+ </entry>
+ </drummap>
+ </muse>
diff --git a/muse2/share/drummaps/Makefile.am b/muse2/share/drummaps/Makefile.am
new file mode 100644
index 00000000..6050b1f1
--- /dev/null
+++ b/muse2/share/drummaps/Makefile.am
@@ -0,0 +1,5 @@
+EXTRA_DIST = $(wildcard *.map)
+
+drumpkgdata_DATA = $(EXTRA_DIST)
+
+drumpkgdatadir = $(pkgdatadir)/drummaps
diff --git a/muse2/share/drummaps/Makefile.in b/muse2/share/drummaps/Makefile.in
new file mode 100644
index 00000000..62216c30
--- /dev/null
+++ b/muse2/share/drummaps/Makefile.in
@@ -0,0 +1,465 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = share/drummaps
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal-include.m4 \
+ $(top_srcdir)/m4/alsa.m4 $(top_srcdir)/m4/docbook.m4 \
+ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
+ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
+ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+SOURCES =
+DIST_SOURCES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__installdirs = "$(DESTDIR)$(drumpkgdatadir)"
+DATA = $(drumpkgdata_DATA)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ALSA_CFLAGS = @ALSA_CFLAGS@
+ALSA_LIBS = @ALSA_LIBS@
+AMTAR = @AMTAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DOCBOOKSTYLE = @DOCBOOKSTYLE@
+DOCBOOKTARGETS = @DOCBOOKTARGETS@
+DOT = @DOT@
+DOTPATH = @DOTPATH@
+DOXYGEN = @DOXYGEN@
+DOXYGEN_TREEVIEW = @DOXYGEN_TREEVIEW@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+FLUIDSYNTHDIRS = @FLUIDSYNTHDIRS@
+FST_CFLAGS = @FST_CFLAGS@
+FST_LIBS = @FST_LIBS@
+Fluidsynth_CFLAGS = @Fluidsynth_CFLAGS@
+Fluidsynth_LIBS = @Fluidsynth_LIBS@
+GIVERTCAP = @GIVERTCAP@
+GREP = @GREP@
+HAVEDOT = @HAVEDOT@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JACK_CFLAGS = @JACK_CFLAGS@
+JACK_LIBS = @JACK_LIBS@
+JADE = @JADE@
+LASH_CFLAGS = @LASH_CFLAGS@
+LASH_LIBS = @LASH_LIBS@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LO_CFLAGS = @LO_CFLAGS@
+LO_LIBS = @LO_LIBS@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+MUSECXXFLAGS = @MUSECXXFLAGS@
+NM = @NM@
+NMEDIT = @NMEDIT@
+NSGMLS = @NSGMLS@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PCH = @PCH@
+PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+PYTHON = @PYTHON@
+PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
+PYTHON_INCLUDES = @PYTHON_INCLUDES@
+PYTHON_LIB = @PYTHON_LIB@
+PYTHON_PLATFORM = @PYTHON_PLATFORM@
+PYTHON_PREFIX = @PYTHON_PREFIX@
+PYTHON_VERSION = @PYTHON_VERSION@
+QTDIR_BIN = @QTDIR_BIN@
+QTDIR_INC = @QTDIR_INC@
+QT_LIBS = @QT_LIBS@
+RANLIB = @RANLIB@
+SAMPLERATE_CFLAGS = @SAMPLERATE_CFLAGS@
+SAMPLERATE_LIBS = @SAMPLERATE_LIBS@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SNDFILE_CFLAGS = @SNDFILE_CFLAGS@
+SNDFILE_LIBS = @SNDFILE_LIBS@
+STRIP = @STRIP@
+SUIDBUILD = @SUIDBUILD@
+SUIDINSTALL = @SUIDINSTALL@
+USE_SSE = @USE_SSE@
+UUID_CFLAGS = @UUID_CFLAGS@
+UUID_LIBS = @UUID_LIBS@
+VERSION = @VERSION@
+XMKMF = @XMKMF@
+X_CFLAGS = @X_CFLAGS@
+X_EXTRA_LIBS = @X_EXTRA_LIBS@
+X_LIBS = @X_LIBS@
+X_PRE_LIBS = @X_PRE_LIBS@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+have_docbook = @have_docbook@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+lt_ECHO = @lt_ECHO@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+pkgpyexecdir = @pkgpyexecdir@
+pkgpythondir = @pkgpythondir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+pyexecdir = @pyexecdir@
+pythondir = @pythondir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+synth_fluid = @synth_fluid@
+synth_fluidsynth = @synth_fluidsynth@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+EXTRA_DIST = $(wildcard *.map)
+drumpkgdata_DATA = $(EXTRA_DIST)
+drumpkgdatadir = $(pkgdatadir)/drummaps
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu share/drummaps/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu share/drummaps/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+install-drumpkgdataDATA: $(drumpkgdata_DATA)
+ @$(NORMAL_INSTALL)
+ test -z "$(drumpkgdatadir)" || $(MKDIR_P) "$(DESTDIR)$(drumpkgdatadir)"
+ @list='$(drumpkgdata_DATA)'; test -n "$(drumpkgdatadir)" || list=; \
+ for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(drumpkgdatadir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(drumpkgdatadir)" || exit $$?; \
+ done
+
+uninstall-drumpkgdataDATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(drumpkgdata_DATA)'; test -n "$(drumpkgdatadir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ test -n "$$files" || exit 0; \
+ echo " ( cd '$(DESTDIR)$(drumpkgdatadir)' && rm -f" $$files ")"; \
+ cd "$(DESTDIR)$(drumpkgdatadir)" && rm -f $$files
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile $(DATA)
+installdirs:
+ for dir in "$(DESTDIR)$(drumpkgdatadir)"; do \
+ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-drumpkgdataDATA
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-drumpkgdataDATA
+
+.MAKE: install-am install-strip
+
+.PHONY: all all-am check check-am clean clean-generic clean-libtool \
+ distclean distclean-generic distclean-libtool distdir dvi \
+ dvi-am html html-am info info-am install install-am \
+ install-data install-data-am install-drumpkgdataDATA \
+ install-dvi install-dvi-am install-exec install-exec-am \
+ install-html install-html-am install-info install-info-am \
+ install-man install-pdf install-pdf-am install-ps \
+ install-ps-am install-strip installcheck installcheck-am \
+ installdirs maintainer-clean maintainer-clean-generic \
+ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
+ ps ps-am uninstall uninstall-am uninstall-drumpkgdataDATA
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/muse2/share/drummaps/addictive_drums.map b/muse2/share/drummaps/addictive_drums.map
new file mode 100644
index 00000000..a513f67f
--- /dev/null
+++ b/muse2/share/drummaps/addictive_drums.map
@@ -0,0 +1,1797 @@
+<?xml version="1.0"?>
+<muse version="1.0">
+ <drummap>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>0</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>110</lv3>
+ <lv4>127</lv4>
+ <enote>35</enote>
+ <anote>35</anote>
+ </entry>
+ <entry>
+ <name>Bass Drum 1</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>0</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>110</lv3>
+ <lv4>127</lv4>
+ <enote>36</enote>
+ <anote>36</anote>
+ </entry>
+ <entry>
+ <name>Snare1</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>0</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>110</lv3>
+ <lv4>127</lv4>
+ <enote>37</enote>
+ <anote>37</anote>
+ </entry>
+ <entry>
+ <name>Snare2</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>0</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>110</lv3>
+ <lv4>127</lv4>
+ <enote>38</enote>
+ <anote>38</anote>
+ </entry>
+ <entry>
+ <name>Snare3</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>0</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>110</lv3>
+ <lv4>127</lv4>
+ <enote>39</enote>
+ <anote>39</anote>
+ </entry>
+ <entry>
+ <name>Snare4</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>0</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>110</lv3>
+ <lv4>127</lv4>
+ <enote>40</enote>
+ <anote>40</anote>
+ </entry>
+ <entry>
+ <name>Snare5H</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>0</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>110</lv3>
+ <lv4>127</lv4>
+ <enote>41</enote>
+ <anote>41</anote>
+ </entry>
+ <entry>
+ <name>Snare6</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>0</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>110</lv3>
+ <lv4>127</lv4>
+ <enote>43</enote>
+ <anote>43</anote>
+ </entry>
+ <entry>
+ <name>SideStick</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>0</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>110</lv3>
+ <lv4>127</lv4>
+ <enote>42</enote>
+ <anote>42</anote>
+ </entry>
+ <entry>
+ <name>SideStick2</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>0</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>110</lv3>
+ <lv4>127</lv4>
+ <enote>44</enote>
+ <anote>44</anote>
+ </entry>
+ <entry>
+ <name>Cymbal1</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>0</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>110</lv3>
+ <lv4>127</lv4>
+ <enote>46</enote>
+ <anote>46</anote>
+ </entry>
+ <entry>
+ <name>Xtra</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>0</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>110</lv3>
+ <lv4>127</lv4>
+ <enote>47</enote>
+ <anote>47</anote>
+ </entry>
+ <entry>
+ <name>HighHatStomp</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>0</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>110</lv3>
+ <lv4>127</lv4>
+ <enote>48</enote>
+ <anote>48</anote>
+ </entry>
+ <entry>
+ <name>HighHat1</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>0</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>110</lv3>
+ <lv4>127</lv4>
+ <enote>49</enote>
+ <anote>49</anote>
+ </entry>
+ <entry>
+ <name>HighHat2</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>0</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>110</lv3>
+ <lv4>127</lv4>
+ <enote>50</enote>
+ <anote>50</anote>
+ </entry>
+ <entry>
+ <name>HighHat3</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>0</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>110</lv3>
+ <lv4>127</lv4>
+ <enote>51</enote>
+ <anote>51</anote>
+ </entry>
+ <entry>
+ <name>HighHat4</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>0</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>110</lv3>
+ <lv4>127</lv4>
+ <enote>52</enote>
+ <anote>52</anote>
+ </entry>
+ <entry>
+ <name>HighHatBell</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>0</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>110</lv3>
+ <lv4>127</lv4>
+ <enote>53</enote>
+ <anote>53</anote>
+ </entry>
+ <entry>
+ <name>HighHatOpen1</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>0</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>110</lv3>
+ <lv4>127</lv4>
+ <enote>54</enote>
+ <anote>54</anote>
+ </entry>
+ <entry>
+ <name>HighHatOpen2</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>0</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>110</lv3>
+ <lv4>127</lv4>
+ <enote>55</enote>
+ <anote>55</anote>
+ </entry>
+ <entry>
+ <name>HighHatOpen3</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>0</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>110</lv3>
+ <lv4>127</lv4>
+ <enote>56</enote>
+ <anote>56</anote>
+ </entry>
+ <entry>
+ <name>HighHatOpen4</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>0</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>110</lv3>
+ <lv4>127</lv4>
+ <enote>57</enote>
+ <anote>57</anote>
+ </entry>
+ <entry>
+ <name>HighHatOpen5</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>0</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>110</lv3>
+ <lv4>127</lv4>
+ <enote>58</enote>
+ <anote>58</anote>
+ </entry>
+ <entry>
+ <name>HighHatOpenStomp</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>0</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>110</lv3>
+ <lv4>127</lv4>
+ <enote>59</enote>
+ <anote>59</anote>
+ </entry>
+ <entry>
+ <name>Ride</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>0</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>110</lv3>
+ <lv4>127</lv4>
+ <enote>45</enote>
+ <anote>45</anote>
+ </entry>
+ <entry>
+ <name>Ride2</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>0</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>110</lv3>
+ <lv4>127</lv4>
+ <enote>60</enote>
+ <anote>60</anote>
+ </entry>
+ <entry>
+ <name>Ride3</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>0</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>110</lv3>
+ <lv4>127</lv4>
+ <enote>61</enote>
+ <anote>61</anote>
+ </entry>
+ <entry>
+ <name>Ride4</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>0</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>110</lv3>
+ <lv4>127</lv4>
+ <enote>62</enote>
+ <anote>62</anote>
+ </entry>
+ <entry>
+ <name>RideHold</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>0</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>110</lv3>
+ <lv4>127</lv4>
+ <enote>63</enote>
+ <anote>63</anote>
+ </entry>
+ <entry>
+ <name>Tom4_1</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>0</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>110</lv3>
+ <lv4>127</lv4>
+ <enote>65</enote>
+ <anote>65</anote>
+ </entry>
+ <entry>
+ <name>Tom4_2</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>0</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>110</lv3>
+ <lv4>127</lv4>
+ <enote>66</enote>
+ <anote>66</anote>
+ </entry>
+ <entry>
+ <name>Tom3_1</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>0</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>110</lv3>
+ <lv4>127</lv4>
+ <enote>67</enote>
+ <anote>67</anote>
+ </entry>
+ <entry>
+ <name>Tom3_2</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>0</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>110</lv3>
+ <lv4>127</lv4>
+ <enote>68</enote>
+ <anote>68</anote>
+ </entry>
+ <entry>
+ <name>Tom2_1</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>0</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>110</lv3>
+ <lv4>127</lv4>
+ <enote>69</enote>
+ <anote>69</anote>
+ </entry>
+ <entry>
+ <name>Tom2_2</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>0</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>110</lv3>
+ <lv4>127</lv4>
+ <enote>70</enote>
+ <anote>70</anote>
+ </entry>
+ <entry>
+ <name>Tom1_1</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>0</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>110</lv3>
+ <lv4>127</lv4>
+ <enote>71</enote>
+ <anote>71</anote>
+ </entry>
+ <entry>
+ <name>Tom1_2</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>0</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>110</lv3>
+ <lv4>127</lv4>
+ <enote>72</enote>
+ <anote>72</anote>
+ </entry>
+ <entry>
+ <name>Sticks</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>0</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>110</lv3>
+ <lv4>127</lv4>
+ <enote>75</enote>
+ <anote>75</anote>
+ </entry>
+ <entry>
+ <name>Cymbal1</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>0</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>110</lv3>
+ <lv4>127</lv4>
+ <enote>77</enote>
+ <anote>77</anote>
+ </entry>
+ <entry>
+ <name>Cymbal1Grab</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>0</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>110</lv3>
+ <lv4>127</lv4>
+ <enote>78</enote>
+ <anote>78</anote>
+ </entry>
+ <entry>
+ <name>Cymbal2</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>0</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>110</lv3>
+ <lv4>127</lv4>
+ <enote>79</enote>
+ <anote>79</anote>
+ </entry>
+ <entry>
+ <name>Cymbal2Grab</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>0</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>110</lv3>
+ <lv4>127</lv4>
+ <enote>80</enote>
+ <anote>80</anote>
+ </entry>
+ <entry>
+ <name>Cymbal3</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>0</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>110</lv3>
+ <lv4>127</lv4>
+ <enote>81</enote>
+ <anote>81</anote>
+ </entry>
+ <entry>
+ <name>Cymbal3Grab</name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>0</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>110</lv3>
+ <lv4>127</lv4>
+ <enote>82</enote>
+ <anote>82</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>0</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>110</lv3>
+ <lv4>127</lv4>
+ <enote>76</enote>
+ <anote>76</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>0</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>110</lv3>
+ <lv4>127</lv4>
+ <enote>74</enote>
+ <anote>74</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>0</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>110</lv3>
+ <lv4>127</lv4>
+ <enote>64</enote>
+ <anote>64</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>0</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>110</lv3>
+ <lv4>127</lv4>
+ <enote>73</enote>
+ <anote>73</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>0</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>110</lv3>
+ <lv4>127</lv4>
+ <enote>83</enote>
+ <anote>83</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>0</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>110</lv3>
+ <lv4>127</lv4>
+ <enote>84</enote>
+ <anote>84</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>0</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>110</lv3>
+ <lv4>127</lv4>
+ <enote>85</enote>
+ <anote>85</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>0</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>110</lv3>
+ <lv4>127</lv4>
+ <enote>86</enote>
+ <anote>86</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>0</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>110</lv3>
+ <lv4>127</lv4>
+ <enote>87</enote>
+ <anote>87</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>0</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>110</lv3>
+ <lv4>127</lv4>
+ <enote>88</enote>
+ <anote>88</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>0</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>110</lv3>
+ <lv4>127</lv4>
+ <enote>89</enote>
+ <anote>89</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>0</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>110</lv3>
+ <lv4>127</lv4>
+ <enote>90</enote>
+ <anote>90</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>0</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>110</lv3>
+ <lv4>127</lv4>
+ <enote>91</enote>
+ <anote>91</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>0</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>110</lv3>
+ <lv4>127</lv4>
+ <enote>92</enote>
+ <anote>92</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>0</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>110</lv3>
+ <lv4>127</lv4>
+ <enote>93</enote>
+ <anote>93</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>0</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>110</lv3>
+ <lv4>127</lv4>
+ <enote>94</enote>
+ <anote>94</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>0</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>110</lv3>
+ <lv4>127</lv4>
+ <enote>95</enote>
+ <anote>95</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>0</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>110</lv3>
+ <lv4>127</lv4>
+ <enote>96</enote>
+ <anote>96</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>0</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>110</lv3>
+ <lv4>127</lv4>
+ <enote>97</enote>
+ <anote>97</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>0</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>110</lv3>
+ <lv4>127</lv4>
+ <enote>98</enote>
+ <anote>98</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>0</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>110</lv3>
+ <lv4>127</lv4>
+ <enote>99</enote>
+ <anote>99</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>0</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>110</lv3>
+ <lv4>127</lv4>
+ <enote>100</enote>
+ <anote>100</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>0</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>110</lv3>
+ <lv4>127</lv4>
+ <enote>101</enote>
+ <anote>101</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>0</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>110</lv3>
+ <lv4>127</lv4>
+ <enote>102</enote>
+ <anote>102</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>0</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>110</lv3>
+ <lv4>127</lv4>
+ <enote>103</enote>
+ <anote>103</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>0</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>110</lv3>
+ <lv4>127</lv4>
+ <enote>104</enote>
+ <anote>104</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>0</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>110</lv3>
+ <lv4>127</lv4>
+ <enote>105</enote>
+ <anote>105</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>0</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>110</lv3>
+ <lv4>127</lv4>
+ <enote>106</enote>
+ <anote>106</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>0</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>110</lv3>
+ <lv4>127</lv4>
+ <enote>107</enote>
+ <anote>107</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>0</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>110</lv3>
+ <lv4>127</lv4>
+ <enote>108</enote>
+ <anote>108</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>0</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>110</lv3>
+ <lv4>127</lv4>
+ <enote>109</enote>
+ <anote>109</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>0</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>110</lv3>
+ <lv4>127</lv4>
+ <enote>110</enote>
+ <anote>110</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>0</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>110</lv3>
+ <lv4>127</lv4>
+ <enote>111</enote>
+ <anote>111</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>0</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>110</lv3>
+ <lv4>127</lv4>
+ <enote>112</enote>
+ <anote>112</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>0</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>110</lv3>
+ <lv4>127</lv4>
+ <enote>113</enote>
+ <anote>113</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>0</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>110</lv3>
+ <lv4>127</lv4>
+ <enote>114</enote>
+ <anote>114</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>0</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>110</lv3>
+ <lv4>127</lv4>
+ <enote>115</enote>
+ <anote>115</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>0</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>110</lv3>
+ <lv4>127</lv4>
+ <enote>116</enote>
+ <anote>116</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>0</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>110</lv3>
+ <lv4>127</lv4>
+ <enote>117</enote>
+ <anote>117</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>0</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>110</lv3>
+ <lv4>127</lv4>
+ <enote>118</enote>
+ <anote>118</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>0</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>110</lv3>
+ <lv4>127</lv4>
+ <enote>119</enote>
+ <anote>119</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>0</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>110</lv3>
+ <lv4>127</lv4>
+ <enote>120</enote>
+ <anote>120</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>0</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>110</lv3>
+ <lv4>127</lv4>
+ <enote>121</enote>
+ <anote>121</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>0</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>110</lv3>
+ <lv4>127</lv4>
+ <enote>122</enote>
+ <anote>122</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>0</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>110</lv3>
+ <lv4>127</lv4>
+ <enote>123</enote>
+ <anote>123</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>0</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>110</lv3>
+ <lv4>127</lv4>
+ <enote>124</enote>
+ <anote>124</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>0</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>110</lv3>
+ <lv4>127</lv4>
+ <enote>125</enote>
+ <anote>125</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>0</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>110</lv3>
+ <lv4>127</lv4>
+ <enote>126</enote>
+ <anote>126</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>0</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>110</lv3>
+ <lv4>127</lv4>
+ <enote>127</enote>
+ <anote>127</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>0</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>110</lv3>
+ <lv4>127</lv4>
+ <enote>0</enote>
+ <anote>0</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>0</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>110</lv3>
+ <lv4>127</lv4>
+ <enote>1</enote>
+ <anote>1</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>0</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>110</lv3>
+ <lv4>127</lv4>
+ <enote>2</enote>
+ <anote>2</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>0</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>110</lv3>
+ <lv4>127</lv4>
+ <enote>3</enote>
+ <anote>3</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>0</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>110</lv3>
+ <lv4>127</lv4>
+ <enote>4</enote>
+ <anote>4</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>0</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>110</lv3>
+ <lv4>127</lv4>
+ <enote>5</enote>
+ <anote>5</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>0</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>110</lv3>
+ <lv4>127</lv4>
+ <enote>6</enote>
+ <anote>6</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>0</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>110</lv3>
+ <lv4>127</lv4>
+ <enote>7</enote>
+ <anote>7</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>0</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>110</lv3>
+ <lv4>127</lv4>
+ <enote>8</enote>
+ <anote>8</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>0</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>110</lv3>
+ <lv4>127</lv4>
+ <enote>9</enote>
+ <anote>9</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>0</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>110</lv3>
+ <lv4>127</lv4>
+ <enote>10</enote>
+ <anote>10</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>0</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>110</lv3>
+ <lv4>127</lv4>
+ <enote>11</enote>
+ <anote>11</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>0</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>110</lv3>
+ <lv4>127</lv4>
+ <enote>12</enote>
+ <anote>12</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>0</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>110</lv3>
+ <lv4>127</lv4>
+ <enote>13</enote>
+ <anote>13</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>0</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>110</lv3>
+ <lv4>127</lv4>
+ <enote>14</enote>
+ <anote>14</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>0</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>110</lv3>
+ <lv4>127</lv4>
+ <enote>15</enote>
+ <anote>15</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>0</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>110</lv3>
+ <lv4>127</lv4>
+ <enote>16</enote>
+ <anote>16</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>0</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>110</lv3>
+ <lv4>127</lv4>
+ <enote>17</enote>
+ <anote>17</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>0</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>110</lv3>
+ <lv4>127</lv4>
+ <enote>18</enote>
+ <anote>18</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>0</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>110</lv3>
+ <lv4>127</lv4>
+ <enote>19</enote>
+ <anote>19</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>0</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>110</lv3>
+ <lv4>127</lv4>
+ <enote>20</enote>
+ <anote>20</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>0</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>110</lv3>
+ <lv4>127</lv4>
+ <enote>21</enote>
+ <anote>21</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>0</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>110</lv3>
+ <lv4>127</lv4>
+ <enote>22</enote>
+ <anote>22</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>0</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>110</lv3>
+ <lv4>127</lv4>
+ <enote>23</enote>
+ <anote>23</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>0</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>110</lv3>
+ <lv4>127</lv4>
+ <enote>24</enote>
+ <anote>24</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>0</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>110</lv3>
+ <lv4>127</lv4>
+ <enote>25</enote>
+ <anote>25</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>0</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>110</lv3>
+ <lv4>127</lv4>
+ <enote>26</enote>
+ <anote>26</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>0</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>110</lv3>
+ <lv4>127</lv4>
+ <enote>27</enote>
+ <anote>27</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>0</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>110</lv3>
+ <lv4>127</lv4>
+ <enote>28</enote>
+ <anote>28</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>0</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>110</lv3>
+ <lv4>127</lv4>
+ <enote>29</enote>
+ <anote>29</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>0</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>110</lv3>
+ <lv4>127</lv4>
+ <enote>30</enote>
+ <anote>30</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>0</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>110</lv3>
+ <lv4>127</lv4>
+ <enote>31</enote>
+ <anote>31</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>0</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>110</lv3>
+ <lv4>127</lv4>
+ <enote>32</enote>
+ <anote>32</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>0</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>110</lv3>
+ <lv4>127</lv4>
+ <enote>33</enote>
+ <anote>33</anote>
+ </entry>
+ <entry>
+ <name></name>
+ <vol>100</vol>
+ <quant>16</quant>
+ <len>32</len>
+ <channel>0</channel>
+ <port>0</port>
+ <lv1>70</lv1>
+ <lv2>90</lv2>
+ <lv3>110</lv3>
+ <lv4>127</lv4>
+ <enote>34</enote>
+ <anote>34</anote>
+ </entry>
+ </drummap>
+ </muse>
diff --git a/muse2/share/drummaps/dx200_drum.map b/muse2/share/drummaps/dx200_drum.map
new file mode 100644
index 00000000..25011979
--- /dev/null
+++ b/muse2/share/drummaps/dx200_drum.map
@@ -0,0 +1,131 @@
+<?xml version="1.0"?>
+<muse version="1.0">
+<drummap>
+<entry><name>PulseBass C</name><channel>1</channel><enote>0</enote><anote>0</anote></entry>
+<entry><name>PulseBass C#</name><channel>1</channel><enote>1</enote><anote>1</anote></entry>
+<entry><name>PulseBass D</name><channel>1</channel><enote>2</enote><anote>2</anote></entry>
+<entry><name>PulseBass D#</name><channel>1</channel><enote>3</enote><anote>3</anote></entry>
+<entry><name>PulseBass E</name><channel>1</channel><enote>4</enote><anote>4</anote></entry>
+<entry><name>PulseBass F</name><channel>1</channel><enote>5</enote><anote>5</anote></entry>
+<entry><name>PulseBass F#</name><channel>1</channel><enote>6</enote><anote>6</anote></entry>
+<entry><name>PulseBass G</name><channel>1</channel><enote>7</enote><anote>7</anote></entry>
+<entry><name>PulseBass G#</name><channel>1</channel><enote>8</enote><anote>8</anote></entry>
+<entry><name>PulseBass A</name><channel>1</channel><enote>9</enote><anote>9</anote></entry>
+<entry><name>PulseBass A#</name><channel>1</channel><enote>10</enote><anote>10</anote></entry>
+<entry><name>PulseBass B</name><channel>1</channel><enote>11</enote><anote>11</anote></entry>
+<entry><name>SineBass C</name><channel>1</channel><enote>12</enote><anote>12</anote></entry>
+<entry><name>SineBass C#</name><channel>1</channel><enote>13</enote><anote>13</anote></entry>
+<entry><name>SineBass D</name><channel>1</channel><enote>14</enote><anote>14</anote></entry>
+<entry><name>SineBass D#</name><channel>1</channel><enote>15</enote><anote>15</anote></entry>
+<entry><name>SineBass E</name><channel>1</channel><enote>16</enote><anote>16</anote></entry>
+<entry><name>SineBass F</name><channel>1</channel><enote>17</enote><anote>17</anote></entry>
+<entry><name>SineBass F#</name><channel>1</channel><enote>18</enote><anote>18</anote></entry>
+<entry><name>SineBass G</name><channel>1</channel><enote>19</enote><anote>19</anote></entry>
+<entry><name>SineBass G#</name><channel>1</channel><enote>20</enote><anote>20</anote></entry>
+<entry><name>SineBass A</name><channel>1</channel><enote>21</enote><anote>21</anote></entry>
+<entry><name>SineBass A#</name><channel>1</channel><enote>22</enote><anote>22</anote></entry>
+<entry><name>SineBass B</name><channel>1</channel><enote>23</enote><anote>23</anote></entry>
+<entry><name>PickBass C</name><channel>1</channel><enote>24</enote><anote>24</anote></entry>
+<entry><name>PickBass C#</name><channel>1</channel><enote>25</enote><anote>25</anote></entry>
+<entry><name>PickBass D</name><channel>1</channel><enote>26</enote><anote>26</anote></entry>
+<entry><name>PickBass D#</name><channel>1</channel><enote>27</enote><anote>27</anote></entry>
+<entry><name>PickBass E</name><channel>1</channel><enote>28</enote><anote>28</anote></entry>
+<entry><name>PickBass F</name><channel>1</channel><enote>29</enote><anote>29</anote></entry>
+<entry><name>PickBass F#</name><channel>1</channel><enote>30</enote><anote>30</anote></entry>
+<entry><name>PickBass G</name><channel>1</channel><enote>31</enote><anote>31</anote></entry>
+<entry><name>PickBass G#</name><channel>1</channel><enote>32</enote><anote>32</anote></entry>
+<entry><name>PickBass A</name><channel>1</channel><enote>33</enote><anote>33</anote></entry>
+<entry><name>PickBass A#</name><channel>1</channel><enote>34</enote><anote>34</anote></entry>
+<entry><name>PickBass B</name><channel>1</channel><enote>35</enote><anote>35</anote></entry>
+<entry><name>BD Analog 808</name><channel>1</channel><enote>36</enote><anote>36</anote></entry>
+<entry><name>BD R&B 1</name><channel>1</channel><enote>37</enote><anote>37</anote></entry>
+<entry><name>BD R&B 2</name><channel>1</channel><enote>38</enote><anote>38</anote></entry>
+<entry><name>BD Lo-Fi</name><channel>1</channel><enote>39</enote><anote>39</anote></entry>
+<entry><name>BD Jungle</name><channel>1</channel><enote>40</enote><anote>40</anote></entry>
+<entry><name>BD Hip 1</name><channel>1</channel><enote>41</enote><anote>41</anote></entry>
+<entry><name>BD Hip 2</name><channel>1</channel><enote>42</enote><anote>42</anote></entry>
+<entry><name>BD Tech</name><channel>1</channel><enote>43</enote><anote>43</anote></entry>
+<entry><name>BD Dist 1</name><channel>1</channel><enote>44</enote><anote>44</anote></entry>
+<entry><name>BD Dist 2</name><channel>1</channel><enote>45</enote><anote>45</anote></entry>
+<entry><name>BD Human 1</name><channel>1</channel><enote>46</enote><anote>46</anote></entry>
+<entry><name>BD Human 2</name><channel>1</channel><enote>47</enote><anote>47</anote></entry>
+<entry><name>BD Elec 1</name><channel>1</channel><enote>48</enote><anote>48</anote></entry>
+<entry><name>BD Elec 2 909</name><channel>1</channel><enote>49</enote><anote>49</anote></entry>
+<entry><name>BD Elec 3 909</name><channel>1</channel><enote>50</enote><anote>50</anote></entry>
+<entry><name>SD Live</name><channel>1</channel><enote>51</enote><anote>51</anote></entry>
+<entry><name>SD R&B 1</name><channel>1</channel><enote>52</enote><anote>52</anote></entry>
+<entry><name>SD R&B 2</name><channel>1</channel><enote>53</enote><anote>53</anote></entry>
+<entry><name>SD Analog 808</name><channel>1</channel><enote>54</enote><anote>54</anote></entry>
+<entry><name>SD Hip 1</name><channel>1</channel><enote>55</enote><anote>55</anote></entry>
+<entry><name>SD Hip 2 Lo-Fi</name><channel>1</channel><enote>56</enote><anote>56</anote></entry>
+<entry><name>SD Hip 3</name><channel>1</channel><enote>57</enote><anote>57</anote></entry>
+<entry><name>SD Cut Jungle</name><channel>1</channel><enote>58</enote><anote>58</anote></entry>
+<entry><name>SD Dodge</name><channel>1</channel><enote>59</enote><anote>59</anote></entry>
+<entry><name>SD Timbra</name><channel>1</channel><enote>60</enote><anote>60</anote></entry>
+<entry><name>SD D&B</name><channel>1</channel><enote>61</enote><anote>61</anote></entry>
+<entry><name>SD Dist 909</name><channel>1</channel><enote>62</enote><anote>62</anote></entry>
+<entry><name>SD Elec 1 909</name><channel>1</channel><enote>63</enote><anote>63</anote></entry>
+<entry><name>SD Elec 2 909</name><channel>1</channel><enote>64</enote><anote>64</anote></entry>
+<entry><name>SD Rim 1</name><channel>1</channel><enote>65</enote><anote>65</anote></entry>
+<entry><name>SD Rim 2</name><channel>1</channel><enote>66</enote><anote>66</anote></entry>
+<entry><name>HH D&B Cls</name><channel>1</channel><enote>67</enote><anote>67</anote></entry>
+<entry><name>HH D&B Opn</name><channel>1</channel><enote>68</enote><anote>68</anote></entry>
+<entry><name>HH Ana Cls 1 909</name><channel>1</channel><enote>69</enote><anote>69</anote></entry>
+<entry><name>HH Ana Opn 1 808</name><channel>1</channel><enote>70</enote><anote>70</anote></entry>
+<entry><name>HH Syn Cls</name><channel>1</channel><enote>71</enote><anote>71</anote></entry>
+<entry><name>HH Syn Opn</name><channel>1</channel><enote>72</enote><anote>72</anote></entry>
+<entry><name>HH Ana Cls 2 909</name><channel>1</channel><enote>73</enote><anote>73</anote></entry>
+<entry><name>HH Ana Opn 2 909</name><channel>1</channel><enote>74</enote><anote>74</anote></entry>
+<entry><name>Tom Dist 909</name><channel>1</channel><enote>75</enote><anote>75</anote></entry>
+<entry><name>Tom Ana 1</name><channel>1</channel><enote>76</enote><anote>76</anote></entry>
+<entry><name>Tom Ana 2 909</name><channel>1</channel><enote>77</enote><anote>77</anote></entry>
+<entry><name>Tom Synth</name><channel>1</channel><enote>78</enote><anote>78</anote></entry>
+<entry><name>Tom Sine</name><channel>1</channel><enote>79</enote><anote>79</anote></entry>
+<entry><name>Crush Sym</name><channel>1</channel><enote>80</enote><anote>80</anote></entry>
+<entry><name>Ride Sym</name><channel>1</channel><enote>81</enote><anote>81</anote></entry>
+<entry><name>Ride Bell</name><channel>1</channel><enote>82</enote><anote>82</anote></entry>
+<entry><name>Tambourine</name><channel>1</channel><enote>83</enote><anote>83</anote></entry>
+<entry><name>Tabla Open</name><channel>1</channel><enote>84</enote><anote>84</anote></entry>
+<entry><name>Taba Mute</name><channel>1</channel><enote>85</enote><anote>85</anote></entry>
+<entry><name>Tabla Nah</name><channel>1</channel><enote>86</enote><anote>86</anote></entry>
+<entry><name>Udu Low</name><channel>1</channel><enote>87</enote><anote>87</anote></entry>
+<entry><name>Udu High</name><channel>1</channel><enote>88</enote><anote>88</anote></entry>
+<entry><name>Udu Finger</name><channel>1</channel><enote>89</enote><anote>89</anote></entry>
+<entry><name>Clave 808</name><channel>1</channel><enote>90</enote><anote>90</anote></entry>
+<entry><name>Maracas</name><channel>1</channel><enote>91</enote><anote>91</anote></entry>
+<entry><name>Shaker</name><channel>1</channel><enote>92</enote><anote>92</anote></entry>
+<entry><name>Clap 909</name><channel>1</channel><enote>93</enote><anote>93</anote></entry>
+<entry><name>Scratch 1</name><channel>1</channel><enote>94</enote><anote>94</anote></entry>
+<entry><name>Scratch 2</name><channel>1</channel><enote>95</enote><anote>95</anote></entry>
+<entry><name>Scratch 3</name><channel>1</channel><enote>96</enote><anote>96</anote></entry>
+<entry><name>Scratch 4</name><channel>1</channel><enote>97</enote><anote>97</anote></entry>
+<entry><name>Ripper</name><channel>1</channel><enote>98</enote><anote>98</anote></entry>
+<entry><name>Zap 1</name><channel>1</channel><enote>99</enote><anote>99</anote></entry>
+<entry><name>Zap 2</name><channel>1</channel><enote>100</enote><anote>100</anote></entry>
+<entry><name>Rev Low</name><channel>1</channel><enote>101</enote><anote>101</anote></entry>
+<entry><name>Synth Vibra</name><channel>1</channel><enote>102</enote><anote>102</anote></entry>
+<entry><name>Metal</name><channel>1</channel><enote>103</enote><anote>103</anote></entry>
+<entry><name>Click</name><channel>1</channel><enote>104</enote><anote>104</anote></entry>
+<entry><name>Gt Attack</name><channel>1</channel><enote>105</enote><anote>105</anote></entry>
+<entry><name>Gt Power</name><channel>1</channel><enote>106</enote><anote>106</anote></entry>
+<entry><name>Stab Organ</name><channel>1</channel><enote>107</enote><anote>107</anote></entry>
+<entry><name>SlowBass</name><channel>1</channel><enote>108</enote><anote>108</anote></entry>
+<entry><name>FingerBass</name><channel>1</channel><enote>109</enote><anote>109</anote></entry>
+<entry><name>SynthBass 1</name><channel>1</channel><enote>110</enote><anote>110</anote></entry>
+<entry><name>SynthBass 2</name><channel>1</channel><enote>111</enote><anote>111</anote></entry>
+<entry><name>SynthBass 3</name><channel>1</channel><enote>112</enote><anote>112</anote></entry>
+<entry><name>SynthBass 4</name><channel>1</channel><enote>113</enote><anote>113</anote></entry>
+<entry><name>Digi Wave 1</name><channel>1</channel><enote>114</enote><anote>114</anote></entry>
+<entry><name>Digi Wave 2</name><channel>1</channel><enote>115</enote><anote>115</anote></entry>
+<entry><name>Digi Wave 3</name><channel>1</channel><enote>116</enote><anote>116</anote></entry>
+<entry><name>Digi Wave 4</name><channel>1</channel><enote>117</enote><anote>117</anote></entry>
+<entry><name>Digi Wave 5</name><channel>1</channel><enote>118</enote><anote>118</anote></entry>
+<entry><name>Digi Wave 6</name><channel>1</channel><enote>119</enote><anote>119</anote></entry>
+<entry><name>Digi Wave 7</name><channel>1</channel><enote>120</enote><anote>120</anote></entry>
+
+
+
+</drummap>
+</muse>
+
+
diff --git a/muse2/share/drummaps/sc88-pc1.map b/muse2/share/drummaps/sc88-pc1.map
new file mode 100644
index 00000000..57275589
--- /dev/null
+++ b/muse2/share/drummaps/sc88-pc1.map
@@ -0,0 +1,329 @@
+<?xml version="1.0"?>
+<muse version="1.0">
+ <drummap>
+ <comment>
+ # Drum Set List SC-88 Drum Set 1
+ #
+ # "Program Change 1"
+ # "Standard Set 1"
+ #
+ </comment>
+
+ <entry>
+ <name>Snare Roll</name>
+ <enote>25</enote>
+ <anote>25</anote>
+ </entry>
+ <entry>
+ <name>Finger Snare</name>
+ <enote>26</enote>
+ <anote>26</anote>
+ </entry>
+ <entry>
+ <name>High Q</name>
+ <enote>27</enote>
+ <anote>27</anote>
+ </entry>
+ <entry>
+ <name>Slap</name>
+ <enote>28</enote>
+ <anote>28</anote>
+ </entry>
+ <entry>
+ <name>Scratch Push</name>
+ <enote>29</enote>
+ <anote>29</anote>
+ </entry>
+ <entry>
+ <name>Scratch Pull</name>
+ <enote>30</enote>
+ <anote>30</anote>
+ </entry>
+ <entry>
+ <name>Sticks</name>
+ <enote>31</enote>
+ <anote>31</anote>
+ </entry>
+ <entry>
+ <name>Square Click</name>
+ <enote>32</enote>
+ <anote>32</anote>
+ </entry>
+ <entry>
+ <name>Metronome Click</name>
+ <enote>33</enote>
+ <anote>33</anote>
+ </entry>
+ <entry>
+ <name>Metronome Bell</name>
+ <enote>34</enote>
+ <anote>34</anote>
+ </entry>
+ <entry>
+ <name>Standard 1 Kick 2</name>
+ <enote>35</enote>
+ <anote>35</anote>
+ </entry>
+ <entry>
+ <name>Standard 1 Kick 1</name>
+ <enote>36</enote>
+ <anote>36</anote>
+ </entry>
+ <entry>
+ <name>Side Stick</name>
+ <enote>37</enote>
+ <anote>37</anote>
+ </entry>
+ <entry>
+ <name>Standard 1 Snare 1</name>
+ <enote>38</enote>
+ <anote>38</anote>
+ </entry>
+ <entry>
+ <name>Hand Clap</name>
+ <enote>39</enote>
+ <anote>39</anote>
+ </entry>
+ <entry>
+ <name>Standard 1 Snare 2</name>
+ <enote>40</enote>
+ <anote>40</anote>
+ </entry>
+ <entry>
+ <name>Low Tom 2</name>
+ <enote>41</enote>
+ <anote>41</anote>
+ </entry>
+ <entry>
+ <name>Closed Hi-hat 1</name>
+ <enote>42</enote>
+ <anote>42</anote>
+ </entry>
+ <entry>
+ <name>Low Tom 1</name>
+ <enote>43</enote>
+ <anote>43</anote>
+ </entry>
+ <entry>
+ <name>Pedal Hi-hat</name>
+ <enote>44</enote>
+ <anote>44</anote>
+ </entry>
+ <entry>
+ <name>Mid Tom 2</name>
+ <enote>45</enote>
+ <anote>45</anote>
+ </entry>
+ <entry>
+ <name>Open Hi-hat 2</name>
+ <enote>46</enote>
+ <anote>46</anote>
+ </entry>
+ <entry>
+ <name>Mid Tom 1</name>
+ <enote>47</enote>
+ <anote>47</anote>
+ </entry>
+ <entry>
+ <name>High Tom 2</name>
+ <enote>48</enote>
+ <anote>48</anote>
+ </entry>
+ <entry>
+ <name>Crash Cymbal 1</name>
+ <enote>49</enote>
+ <anote>49</anote>
+ </entry>
+ <entry>
+ <name>High Tom 1</name>
+ <enote>50</enote>
+ <anote>50</anote>
+ </entry>
+ <entry>
+ <name>Ride Cymbal 1</name>
+ <enote>51</enote>
+ <anote>51</anote>
+ </entry>
+ <entry>
+ <name>Chinese Cymbal</name>
+ <enote>52</enote>
+ <anote>52</anote>
+ </entry>
+ <entry>
+ <name>Ride Bell</name>
+ <enote>53</enote>
+ <anote>53</anote>
+ </entry>
+ <entry>
+ <name>Tambourine</name>
+ <enote>54</enote>
+ <anote>54</anote>
+ </entry>
+ <entry>
+ <name>Splash Cymbal</name>
+ <enote>55</enote>
+ <anote>55</anote>
+ </entry>
+ <entry>
+ <name>Cowbell</name>
+ <enote>56</enote>
+ <anote>56</anote>
+ </entry>
+ <entry>
+ <name>Crash Cymbal 2</name>
+ <enote>57</enote>
+ <anote>57</anote>
+ </entry>
+ <entry>
+ <name>Vibra Slap</name>
+ <enote>58</enote>
+ <anote>58</anote>
+ </entry>
+ <entry>
+ <name>Ride Cymbal 2</name>
+ <enote>59</enote>
+ <anote>59</anote>
+ </entry>
+ <entry>
+ <name>High Bongo</name>
+ <enote>60</enote>
+ <anote>60</anote>
+ </entry>
+ <entry>
+ <name>Low Bongo</name>
+ <enote>61</enote>
+ <anote>61</anote>
+ </entry>
+ <entry>
+ <name>Mute High Conga</name>
+ <enote>62</enote>
+ <anote>62</anote>
+ </entry>
+ <entry>
+ <name>Open High Conga</name>
+ <enote>63</enote>
+ <anote>63</anote>
+ </entry>
+ <entry>
+ <name>Low Conga</name>
+ <enote>64</enote>
+ <anote>64</anote>
+ </entry>
+ <entry>
+ <name>High Timbale</name>
+ <enote>65</enote>
+ <anote>65</anote>
+ </entry>
+ <entry>
+ <name>Low Timbale</name>
+ <enote>66</enote>
+ <anote>66</anote>
+ </entry>
+ <entry>
+ <name>High Agogo</name>
+ <enote>67</enote>
+ <anote>67</anote>
+ </entry>
+ <entry>
+ <name>Low Agogo</name>
+ <enote>68</enote>
+ <anote>68</anote>
+ </entry>
+ <entry>
+ <name>Cabasa</name>
+ <enote>69</enote>
+ <anote>69</anote>
+ </entry>
+ <entry>
+ <name>Maracas</name>
+ <enote>70</enote>
+ <anote>70</anote>
+ </entry>
+ <entry>
+ <name>Short Hi Whistle</name>
+ <enote>71</enote>
+ <anote>71</anote>
+ </entry>
+ <entry>
+ <name>Long Low Whistle</name>
+ <enote>72</enote>
+ <anote>72</anote>
+ </entry>
+ <entry>
+ <name>Short Guiro</name>
+ <enote>73</enote>
+ <anote>73</anote>
+ </entry>
+ <entry>
+ <name>Long Guiro</name>
+ <enote>74</enote>
+ <anote>74</anote>
+ </entry>
+ <entry>
+ <name>Claves</name>
+ <enote>75</enote>
+ <anote>75</anote>
+ </entry>
+ <entry>
+ <name>High Wood Block</name>
+ <enote>76</enote>
+ <anote>76</anote>
+ </entry>
+ <entry>
+ <name>Low Wood Block</name>
+ <enote>77</enote>
+ <anote>77</anote>
+ </entry>
+ <entry>
+ <name>Mute Cuica</name>
+ <enote>78</enote>
+ <anote>78</anote>
+ </entry>
+ <entry>
+ <name>Open Cuica</name>
+ <enote>79</enote>
+ <anote>79</anote>
+ </entry>
+ <entry>
+ <name>Mute Triangle</name>
+ <enote>80</enote>
+ <anote>80</anote>
+ </entry>
+ <entry>
+ <name>Open Triangle</name>
+ <enote>81</enote>
+ <anote>81</anote>
+ </entry>
+ <entry>
+ <name>Shaker</name>
+ <enote>82</enote>
+ <anote>82</anote>
+ </entry>
+ <entry>
+ <name>Jingle Bell</name>
+ <enote>83</enote>
+ <anote>83</anote>
+ </entry>
+ <entry>
+ <name>Bell Tree</name>
+ <enote>84</enote>
+ <anote>84</anote>
+ </entry>
+ <entry>
+ <name>Castanets</name>
+ <enote>85</enote>
+ <anote>85</anote>
+ </entry>
+ <entry>
+ <name>Mute Surdo</name>
+ <enote>86</enote>
+ <anote>86</anote>
+ </entry>
+ <entry>
+ <name>Open Surdo</name>
+ <enote>87</enote>
+ <anote>87</anote>
+ </entry>
+ </drummap>
+ </muse>
+
diff --git a/muse2/share/html/COPYING.html b/muse2/share/html/COPYING.html
new file mode 100644
index 00000000..86b6fa8e
--- /dev/null
+++ b/muse2/share/html/COPYING.html
@@ -0,0 +1,353 @@
+<qt>
+<pre>
+ Note that the GPL below is copyrighted by the Free Software
+ Foundation, but the instance of code that it refers to (the
+ MusE music editor) is copyrighted by me and others who
+ actually wrote it.
+
+ Werner Schweer
+
+----------------------------------------
+
+ 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) 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., 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) 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.
+</pre>
+</qt>
diff --git a/muse2/share/html/Makefile.am b/muse2/share/html/Makefile.am
new file mode 100644
index 00000000..8e37c8e3
--- /dev/null
+++ b/muse2/share/html/Makefile.am
@@ -0,0 +1,5 @@
+EXTRA_DIST = $(wildcard *.html) $(wildcard *.txt) $(wildcard *.jpg)
+
+htmlpkgdata_DATA = $(EXTRA_DIST)
+
+htmlpkgdatadir = $(pkgdatadir)/html
diff --git a/muse2/share/html/Makefile.in b/muse2/share/html/Makefile.in
new file mode 100644
index 00000000..23fa57c1
--- /dev/null
+++ b/muse2/share/html/Makefile.in
@@ -0,0 +1,465 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = share/html
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal-include.m4 \
+ $(top_srcdir)/m4/alsa.m4 $(top_srcdir)/m4/docbook.m4 \
+ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
+ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
+ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+SOURCES =
+DIST_SOURCES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__installdirs = "$(DESTDIR)$(htmlpkgdatadir)"
+DATA = $(htmlpkgdata_DATA)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ALSA_CFLAGS = @ALSA_CFLAGS@
+ALSA_LIBS = @ALSA_LIBS@
+AMTAR = @AMTAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DOCBOOKSTYLE = @DOCBOOKSTYLE@
+DOCBOOKTARGETS = @DOCBOOKTARGETS@
+DOT = @DOT@
+DOTPATH = @DOTPATH@
+DOXYGEN = @DOXYGEN@
+DOXYGEN_TREEVIEW = @DOXYGEN_TREEVIEW@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+FLUIDSYNTHDIRS = @FLUIDSYNTHDIRS@
+FST_CFLAGS = @FST_CFLAGS@
+FST_LIBS = @FST_LIBS@
+Fluidsynth_CFLAGS = @Fluidsynth_CFLAGS@
+Fluidsynth_LIBS = @Fluidsynth_LIBS@
+GIVERTCAP = @GIVERTCAP@
+GREP = @GREP@
+HAVEDOT = @HAVEDOT@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JACK_CFLAGS = @JACK_CFLAGS@
+JACK_LIBS = @JACK_LIBS@
+JADE = @JADE@
+LASH_CFLAGS = @LASH_CFLAGS@
+LASH_LIBS = @LASH_LIBS@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LO_CFLAGS = @LO_CFLAGS@
+LO_LIBS = @LO_LIBS@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+MUSECXXFLAGS = @MUSECXXFLAGS@
+NM = @NM@
+NMEDIT = @NMEDIT@
+NSGMLS = @NSGMLS@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PCH = @PCH@
+PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+PYTHON = @PYTHON@
+PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
+PYTHON_INCLUDES = @PYTHON_INCLUDES@
+PYTHON_LIB = @PYTHON_LIB@
+PYTHON_PLATFORM = @PYTHON_PLATFORM@
+PYTHON_PREFIX = @PYTHON_PREFIX@
+PYTHON_VERSION = @PYTHON_VERSION@
+QTDIR_BIN = @QTDIR_BIN@
+QTDIR_INC = @QTDIR_INC@
+QT_LIBS = @QT_LIBS@
+RANLIB = @RANLIB@
+SAMPLERATE_CFLAGS = @SAMPLERATE_CFLAGS@
+SAMPLERATE_LIBS = @SAMPLERATE_LIBS@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SNDFILE_CFLAGS = @SNDFILE_CFLAGS@
+SNDFILE_LIBS = @SNDFILE_LIBS@
+STRIP = @STRIP@
+SUIDBUILD = @SUIDBUILD@
+SUIDINSTALL = @SUIDINSTALL@
+USE_SSE = @USE_SSE@
+UUID_CFLAGS = @UUID_CFLAGS@
+UUID_LIBS = @UUID_LIBS@
+VERSION = @VERSION@
+XMKMF = @XMKMF@
+X_CFLAGS = @X_CFLAGS@
+X_EXTRA_LIBS = @X_EXTRA_LIBS@
+X_LIBS = @X_LIBS@
+X_PRE_LIBS = @X_PRE_LIBS@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+have_docbook = @have_docbook@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+lt_ECHO = @lt_ECHO@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+pkgpyexecdir = @pkgpyexecdir@
+pkgpythondir = @pkgpythondir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+pyexecdir = @pyexecdir@
+pythondir = @pythondir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+synth_fluid = @synth_fluid@
+synth_fluidsynth = @synth_fluidsynth@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+EXTRA_DIST = $(wildcard *.html) $(wildcard *.txt) $(wildcard *.jpg)
+htmlpkgdata_DATA = $(EXTRA_DIST)
+htmlpkgdatadir = $(pkgdatadir)/html
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu share/html/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu share/html/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+install-htmlpkgdataDATA: $(htmlpkgdata_DATA)
+ @$(NORMAL_INSTALL)
+ test -z "$(htmlpkgdatadir)" || $(MKDIR_P) "$(DESTDIR)$(htmlpkgdatadir)"
+ @list='$(htmlpkgdata_DATA)'; test -n "$(htmlpkgdatadir)" || list=; \
+ for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(htmlpkgdatadir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(htmlpkgdatadir)" || exit $$?; \
+ done
+
+uninstall-htmlpkgdataDATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(htmlpkgdata_DATA)'; test -n "$(htmlpkgdatadir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ test -n "$$files" || exit 0; \
+ echo " ( cd '$(DESTDIR)$(htmlpkgdatadir)' && rm -f" $$files ")"; \
+ cd "$(DESTDIR)$(htmlpkgdatadir)" && rm -f $$files
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile $(DATA)
+installdirs:
+ for dir in "$(DESTDIR)$(htmlpkgdatadir)"; do \
+ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-htmlpkgdataDATA
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-htmlpkgdataDATA
+
+.MAKE: install-am install-strip
+
+.PHONY: all all-am check check-am clean clean-generic clean-libtool \
+ distclean distclean-generic distclean-libtool distdir dvi \
+ dvi-am html html-am info info-am install install-am \
+ install-data install-data-am install-dvi install-dvi-am \
+ install-exec install-exec-am install-html install-html-am \
+ install-htmlpkgdataDATA install-info install-info-am \
+ install-man install-pdf install-pdf-am install-ps \
+ install-ps-am install-strip installcheck installcheck-am \
+ installdirs maintainer-clean maintainer-clean-generic \
+ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
+ ps ps-am uninstall uninstall-am uninstall-htmlpkgdataDATA
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/muse2/share/html/button_bar.jpg b/muse2/share/html/button_bar.jpg
new file mode 100644
index 00000000..204328c8
--- /dev/null
+++ b/muse2/share/html/button_bar.jpg
Binary files differ
diff --git a/muse2/share/html/getting_started.html b/muse2/share/html/getting_started.html
new file mode 100644
index 00000000..0d6c4344
--- /dev/null
+++ b/muse2/share/html/getting_started.html
@@ -0,0 +1,89 @@
+<qt bgcolor="#f4f4c8" title="MusE - The Linux (Midi) Music Editor">
+<center><h1>MusE - The Linux (Midi) Music Editor</h1></center>
+
+<h2>5. Getting Started</h2>
+<p>
+<h2>5.1 Creating A New Song</h2>
+<p>
+Here's a very short tutorial on how to create a new song from scratch.
+
+<p>
+
+<ol>
+ <li> Start MusE with the name of a new song (ie. a filename that doesn't
+already exist):
+<pre>
+ muse blues1.med
+</pre>
+Alternatively, start MusE and select <tt>File-&gt;New</tt>. The default song
+name is <tt>default</tt> and the first time you select <tt>File-&gt;Save</tt>,
+MusE asks you for a real name.
+
+ <li> Select a song type from the <tt>Type</tt> pulldown menu in the
+Toolbar. This selects the capabilities of your MIDI hardware (either
+NO, GM, GS, or XG).
+
+ <li> Doubleclick on the first empty track to create a new track.
+ <li> Select the MIDI channel for the new track; click with the right mouse
+button on Ch column in the track list to increment channel nummber, click
+with middle mouse button to decrement.
+ <li> If the TrackInfo window is not visible, press TrackInfo.
+ <li> Select a MIDI instrument for the MIDI channel of your new track.
+ <li> Click with the middle mouse button on ruler to set left locator mark.
+ <li> Click with the right mouse button on the ruler to set right locator mark.
+<b>Note:</b> The right mark must be set to the right of the left mark.
+ <li> Double click between the left and right locators on first track to
+create a new part, <b>or</b> select the Pencil tool and draw with the left
+mouse button pressed to create a new part.
+</ol>
+
+<p>
+<h2>5.2 Recording Events</h2>
+<p>
+<b>Entering Notes Manually</b>
+
+<ol>
+ <li> Select Pointer tool from toolbar
+ <li> Double click on part in part canvas to start the pianoroll editor
+ <li> Select Pencil tool from toolbar in the pianoroll editor
+ <li> Now you can draw events into the event canvas
+</ol>
+
+<p>
+<b>Play The Notes</b>
+
+<ol>
+ <li> Click with middle mouse button on ruler to set left locator mark
+ <li> Click with right mouse button on ruler to set right locator mark
+ <li> Note: right mark must be set right to left mark
+ <li> Click with left mouse button on ruler to set current position between left and right locator
+ <li> Select "loop" in the transport toolbar
+ <li> Press play to start sequencer
+ <li> You can enter new notes while the sequencer is playing
+</ol>
+
+<p>
+<b>Some Hints</b>
+
+<ol>
+ <li> You can "play" in realtime on the piano keyboard on the left side of the pianoroll editor
+ <li> You can change Channel Info and Track Info values during play
+</ol>
+
+<p>
+<h2>5.3 Step Recording</h2>
+<p>
+<ol>
+ <li> Start the pianoroll editor
+ <li> Click with left mouse button on ruler to set current position to the start position of your recording
+ <li> Set the Snap value to the step distance
+ <li> Set the Quantize value to the length of the notes to record
+ <li> Enter step record mode by pressing the "S" toolbar button
+ <li> Every click on the piano keyboard records a note with "Quantize" len and advances the current record position to
+ <li> The next "Snap" position
+ <li> Shift+click records a note without advancing the current record position
+ <li> Change the current position with the cursor keys
+ <li> Shift+space inserts a gap; all notes to the right of the current position move to the next snap position
+</ol>
+
+</qt>
diff --git a/muse2/share/html/index.html b/muse2/share/html/index.html
new file mode 100644
index 00000000..c2e5b6a7
--- /dev/null
+++ b/muse2/share/html/index.html
@@ -0,0 +1,66 @@
+<html>
+<center><h1>MusE - The Linux Music Editor</h1></center>
+<p>
+<h2>About MusE</h2>
+
+MusE is a multitrack virtual studio for Linux that has support
+for sequencing of both midi and audio and has, among other things,
+support for LADSPA, Jack and ALSA. <br>
+MusE is written by Werner Schweer and others and is published under the
+<a href="COPYING.html"> GNU General Public License</a>.
+The latest release of MusE and the <b>up2date documentation</b> can be found at the MusE hompage:
+<a href="http://www.muse-sequencer.org/">http://www.muse-sequencer.org/</a>.
+<br>
+<br>
+This is the old manual of the 0.6.3 release but there is already a new one in development, try this:
+<a href="http://www.muse-sequencer.org/wiki/index.php/Manual">http://www.muse-sequencer.org/wiki/index.php/Manual</a>
+
+<p>
+<h2>1. Introduction (still to be written)</h2>
+
+<p>
+<h2>2. <a href="installation.html">Installation</a></h2>
+<ul>
+ <li>2.1 How to Obtain MusE
+ <li>2.2 System Requirements
+ <li>2.3 Compiliation and Installation
+</ul>
+
+<p>
+<h2>3. <a href="invocation.html">Invoking MusE</a></h2>
+<ul>
+ <li>3.1 Invoking MusE
+ <li>3.2 Command Line Options
+ <li>3.3 File Types Recognized by MusE
+</ul>
+
+<p>
+<h2>4. <a href="window_ref.html">Window Reference Guide</a></h2>
+<ul>
+ <li>4.1 The Main Window
+ <li>4.2 The Arranger
+ <li>4.2.1 The Left Pane
+ <li>4.2.1.1 Track Info
+ <li>4.2.2 The Right Pane
+
+ <li>4.3 The Button Bar &amp; Menus
+</ul>
+
+<p>
+<h2>5. <a href="getting_started.html">Getting Started</a></h2>
+<ul>
+ <li>5.1 Creating A New Song
+ <li>5.2 Recording Events
+ <li>5.3 Step Recording
+</ul>
+
+<p>
+<h2>6. Mixer Automation (still to be written)</h2>
+<ul>
+ <li>6.1 Record Automation Events (still to be written)
+</ul>
+
+
+<p>
+<h2>Glossary (still to be written)</h2>
+</html>
diff --git a/muse2/share/html/installation.html b/muse2/share/html/installation.html
new file mode 100644
index 00000000..19527333
--- /dev/null
+++ b/muse2/share/html/installation.html
@@ -0,0 +1,64 @@
+<qt bgcolor="#f4f4c8" title="MusE - The Linux (Midi) Music Editor">
+<center><h1>MusE - The Linux (Midi) Music Editor</h1></center>
+
+<h2>2. Installation</h2>
+<p>
+<h2>2.1 How to Obtain MusE</h2>
+MusE is available at the MusE Homepage, located at
+<a href="http://www.muse-sequencer.org/">http://www.muse-sequencer.org/</a>.
+Download the latest non-beta release and follow the
+installation instructions below.
+
+<h2>2.2 System Requirements</h2>
+To run MusE on your workstation, the following conditions must be met:
+<ul>
+ <li>A GNU/Linux distribution (Red Hat, Debian, etc.)
+ <li>A working windowing system (most likely X Windows)
+ <li>qt 2.2 (<a href="http://www.trolltech.com/products/qt">http://www.trolltech.com/products/qt</a>)
+ <li>gcc 2.95.2 (<a href="http://www.gnu.org/software/gcc/gcc.html">http://www.gnu.org/software/gcc/gcc.html</a>)
+ <li>glibc 2.1 (<a href="http://ftp.gnu.org/gnu/glibc">http://ftp.gnu.org/gnu/glibc</a>)
+ <li>Linux kernel configured with RealTimeClock support (<tt>/dev/rtc</tt>)
+ <li>ALSA (Advanced Linux Sound Architecture) 0.5.9c (it should work with standard OSS drivers as well)
+ <li>an external midi device
+</ul>
+
+<h2>2.3 Compiliation and Installation</h2>
+Unpack the newly-downloaded tarball into a directory and edit
+the file <tt>make.inc</tt>.
+<p>
+The most important variables to set in this file are:
+<ul>
+ <li>QTDIR
+ <li>ALSA
+ <li>OSS
+</ul>
+
+Point <tt>QTDIR</tt> to where your QT libraries are installed.
+<tt>ALSA</tt> and <tt>OSS</tt> are boolean values (ie. <tt>yes</tt>
+or <tt>no</tt>) that tell MusE how to handle Midi and Audio on your
+system. It is safe to say <tt>yes</tt> to both.
+<p>
+A sample config:
+<p>
+<pre>
+ QTDIR = /usr/local/qt
+ ALSA = no
+ OSS = yes
+</pre>
+
+<p>
+When done, save <tt>make.inc</tt> and run the following commands:
+<pre>
+ make depend
+ make
+ make install
+</pre>
+
+<p>
+Note that <tt>make install</tt> will ask for the <tt>root</tt> password,
+as MusE is installed as a setuid-root binary. Setuid-root is needed to allow
+MusE to get proper timing functions from the Linux kernel.
+<p>
+<b>Hint:</b> To get even better timing than that, run MusE with the -R option.
+
+</qt>
diff --git a/muse2/share/html/invocation.html b/muse2/share/html/invocation.html
new file mode 100644
index 00000000..778422c2
--- /dev/null
+++ b/muse2/share/html/invocation.html
@@ -0,0 +1,54 @@
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <title>MusE: Linux Music Editor</title>
+ <link rel="stylesheet" type="text/css" href="styles.css">
+</head>
+
+<body>
+<center><h1>MusE - The Linux (Midi) Music Editor</h1></center>
+
+<h2>3. Invoking MusE</h2>
+<p>
+<h2>3.1 Invoking MusE</h2>
+MusE is invoked from the command line by typing in:
+<pre>
+ <tt>muse</tt>
+</pre>
+
+Optionally, you can use command line options of the form:
+
+<pre>
+ muse &lt;options&gt; &lt;midifile&gt;
+</pre>
+
+&lt;options&gt; : see section 3.2 below for details on options.
+&lt;midifile&gt; can be either a standard MIDI file or a MusE
+file (*.med, *.med.gz or *.med.bz2).
+
+<h2>3.2 Command Line Options</h2>
+<p>
+MusE accepts some options as listed below:
+<pre>
+ -v print version
+ -d debug mode: no threads
+ -D debug mode: enable some debug messages
+ -m debug mode: trace midi Input
+ -M debug mode: trace midi Output
+ -s debug mode: trace sync
+ -R enable real time scheduling
+</pre>
+
+<h2>3.3 File Types Recognized by MusE</h2>
+<p>
+<table border=1 cellpadding=5>
+<tr><td><tt>~/.MusE<td>MusE Configuration File ("~" refers to your home directory)
+<tr><td><tt>.musePrj<td>Hidden Project File; stores list of last projects
+<tr><td><tt>*.med<td>MusE song file; internal MusE format
+<tr><td><tt>*.mid<td>midi file; can be imported
+<tr><td><tt>*.kar<td>karaoke: midi file with additional information; some types can be imported
+</table>
+<p>
+With adding the additional extensions <tt>.gz</tt> or <tt>.bz2</tt>
+you can read or write compressed files.
+
+</qt>
diff --git a/muse2/share/html/left_pane.jpg b/muse2/share/html/left_pane.jpg
new file mode 100644
index 00000000..a659e1ee
--- /dev/null
+++ b/muse2/share/html/left_pane.jpg
Binary files differ
diff --git a/muse2/share/html/main_window.jpg b/muse2/share/html/main_window.jpg
new file mode 100644
index 00000000..eee1e43f
--- /dev/null
+++ b/muse2/share/html/main_window.jpg
Binary files differ
diff --git a/muse2/share/html/main_window_track_info.jpg b/muse2/share/html/main_window_track_info.jpg
new file mode 100644
index 00000000..d4dc207c
--- /dev/null
+++ b/muse2/share/html/main_window_track_info.jpg
Binary files differ
diff --git a/muse2/share/html/right_pane.jpg b/muse2/share/html/right_pane.jpg
new file mode 100644
index 00000000..a770a4e8
--- /dev/null
+++ b/muse2/share/html/right_pane.jpg
Binary files differ
diff --git a/muse2/share/html/styles.css b/muse2/share/html/styles.css
new file mode 100644
index 00000000..53026fa1
--- /dev/null
+++ b/muse2/share/html/styles.css
@@ -0,0 +1,85 @@
+:link { color: #091cef; }
+:visited { color: #091cef; }
+
+body {
+ background: #eeeeee;
+ color: #00;
+ font-family: Arial, Geneva;
+ font-size: 10pt;
+ }
+h1.head {
+ margin: 0.05em 0.3em;
+ font-family: Arial, helvetica, sans-serif;
+ color: #091cef;
+ }
+td.head {
+ background: #aeb3e8;
+ color: #091cef;
+ }
+td.nav {
+ background: #aeb3e8;
+ color: #000;
+ }
+td.ld {
+ background: #aeb3e8;
+ valign: top;
+ width: 60;
+ font-weight: bold;
+ }
+td.lh {
+ background: #aeb3e8;
+ }
+td.lb {
+ background: #ced1e2;
+ }
+
+h3.navhead {
+ margin-top: 0.2em;
+ margin-bottom: 0em;
+ font-size: small;
+ font-family: Verdana, Geneva, Arial, sans-serif;
+ }
+
+.navlink {
+ font-size: small;
+ font-family: Verdana, Geneva, Arial, sans-serif;
+ }
+
+p, input {
+ font-family: Arial, Geneva;
+ font-size: 10pt;
+}
+
+b {
+ font-family: Arial, Geneva;
+ font-size: 10pt;
+ font-weight: bold;
+}
+
+h1 {
+ font-family: Arial, Geneva;
+ font-size: 24pt;
+ font-weight: bold;
+}
+h2 {
+ font-family: Arial, Geneva;
+ font-size: 18pt;
+ font-weight: bold;
+}
+
+a {
+ font-family: Arial, Geneva;
+ font-size: 12pt;
+}
+
+th {
+ font-family: Arial, Geneva;
+ font-size: 10pt;
+
+}
+
+td {
+ font-family: Arial, Geneva;
+ font-size: 12pt;
+ color: #000000;
+ }
diff --git a/muse2/share/html/toc_.txt b/muse2/share/html/toc_.txt
new file mode 100644
index 00000000..d8503ff4
--- /dev/null
+++ b/muse2/share/html/toc_.txt
@@ -0,0 +1,13 @@
+"Glossary" "glossary.html"
+"Getting Started" "getting_started.html"
++"Window Reference Guide" "window_ref.html"
+ +"The Arranger" "window_ref.html"
+ "The Button Bar & Menus" "window_ref.html"
+ "The Right Pane" "window_ref.html"
+ +"The Left Pane" "window_ref.html"
+ "Track Info" "window_ref.html"
+ "The Main Window" "window_ref.html"
+"Invoking MusE" "invocation.html"
+"Installation" "installation.html"
+"Introduction" "introduction.html"
+"Index" "index.html"
diff --git a/muse2/share/html/track_info.jpg b/muse2/share/html/track_info.jpg
new file mode 100644
index 00000000..89834d71
--- /dev/null
+++ b/muse2/share/html/track_info.jpg
Binary files differ
diff --git a/muse2/share/html/window_ref.html b/muse2/share/html/window_ref.html
new file mode 100644
index 00000000..549e88d3
--- /dev/null
+++ b/muse2/share/html/window_ref.html
@@ -0,0 +1,180 @@
+<qt bgcolor="#f4f4c8" title="MusE - The Linux (Midi) Music Editor">
+<center><h1>MusE - The Linux (Midi) Music Editor</h1></center>
+
+<h2>4. Window Reference Guide</h2>
+<p>
+<h2>4.1 The Main Window</h2>
+Here's a screenshot of the main window, with a standard MIDI file already
+loaded:
+<p>
+<img src="main_window.jpg"</img>
+
+<p>
+The main window is basically divided up into two panes separated by a
+veritcal bar that is movable horizontally. These two panes together
+are called the Arranger.
+
+<h2>4.2 The Arranger</h2>
+<p>
+The left pane of the Arranger describes each track in detail,
+while the right pane describes each track graphically.
+
+<h3>4.2.1 The Left Pane</h3>
+<img src="left_pane.jpg"</img>
+<p>
+The left pane details the following information for each track:
+<ul>
+ <li>A -??
+ <li>M - Mute the track
+ <li>C - Defines whether the track is one of MIDI, Drum or Wave.
+ <li>Track - A freely-editable track name.
+ <li>Ch - Defines which MIDI Channel this track plays on.
+ <li>Port - Defines which MIDI port this track plays on.
+ <li>T -??
+</ul>
+
+You can select which track is currently "active" by simply clicking
+on the track.
+<p>
+When a track's M column is clicked, that track is marked as Muted with
+a red circle and upon playback that track will not be heard. To hear
+the track, click on the M column for that track again.
+<p>
+Right click on the C column for a track to declare the track to be of
+type MIDI, Drum or Wave.
+<p>
+The Track column is free-form, meaning that a double-click on a track's
+Track column will allow you to enter a descriptive name for the track,
+for example "Hot Lead Guitar".
+<p>
+The Ch column for a track is changed by right-clicking to increment the
+number or middle-clicking to decrement the number. It's generally a
+good idea to keep differing instruments on different MIDI channels and it's
+considered common to have the drum kit on channel 10.
+<p>
+<h4>4.2.1.1 Track Info</h4>
+<p>
+At the bottom of the left pane, you'll see a little button labelled
+"TrackInfo". When clicked, the standard information plus more about
+the currently selected track is presented:
+<p>
+<img src="track_info.jpg"</img>
+<ul>
+ <li>Track Name
+ <li>Channel
+ <li>Transpose
+ <li>Delay
+ <li>Length
+ <li>Velocity
+ <li>Compr
+</ul>
+The bottom half of the TrackInfo display describes MIDI channel information:
+<ul>
+ <li>MIDI Instrument
+ <li>H-Bank
+ <li>L-Bank
+ <li>Progr
+ <li>Volume
+ <li>Pan
+</ul>
+
+<p>
+Operations that can be performed on the left pane:
+<table border=1>
+<th> <strong>Track Functions </strong></th> <th>&nbsp;</th>
+<tr><td>Select Track<td>
+ <ul>
+ <li>Left Mouse Button
+ </ul>
+<tr><td>Select multiple Tracks<td>
+ <ul>
+ <li>Shift + Left Mouse Button
+ </ul>
+<tr><td>Change Selected Track<td>
+ <ul>
+ <li>Key Up: previous Track
+ <li>Key Down: next Track
+ <li>click with left mouse button in name field
+ </ul>
+<tr><td>Move Track<td>
+ <ul>
+ <li>Drag with left Mouse Button
+ </ul>
+<tr><td>Create New Track<td>
+ <ul>
+ <li>Pulldown Edit<br>
+ <li>Ctrl T
+ <li>double click in empty track
+ </ul>
+<tr><td>Delete selected Track(s)<td>
+ <ul>
+ <li>Pulldown Edit
+ <li>Del
+ </ul>
+<tr><td>Rename Track<td>
+ <ul>
+ <li>doubleClick with left mouse button
+ on track name
+ </ul>
+<tr><td>Change Midi Channel<td>
+ <ul>
+ <li> left mouse button increments midi channel
+ <li> middle mouse button decrements midi channel
+ </ul>
+<tr><td>Select Midi Port<td>
+ <ul>
+ <li> click with right mouse button on portname;
+ select from pulldown menu
+ </ul>
+<tr><td>Mute Track<td>
+ <ul>
+ <li> click with left mouse button on "M" field in
+ Tracklist
+ </ul>
+<tr><td>Solo Track<td>
+ <ul>
+ <li> click "Solo" button
+ </ul>
+</table>
+
+
+<h2>4.2.2 The Right Pane</h2>
+<img src="right_pane.jpg"</img>
+<p>
+The right pane desribes each track graphically. Time moves from left
+to right and is measured in beats that are referenced at the top of
+the right pane. Tracks are displayed vertically in boxes, called
+"Parts", that depict where MIDI and audio data are played.
+<p>
+The small sliders that are adjacent to the bottom right corner affect
+the view of the right pane in terms of "zooming". The vertical slider
+affects the height of the tracks, while the horizontal slider affects
+the width.
+<p>
+Operations that can be performed on the right pane:
+<p>
+<table border=1>
+<tr><td><b>To do this...</b><td><b>...Do this</b>
+<tr><td>Select Part<td>Left Click
+<tr><td>Select multiple parts<td>Shift + left click
+<tr><td>Change selected track<td>Key left: previous part, Key right: next part
+<tr><td>Move part<td>Drag with left mouse button
+<tr><td>Create new part<td>select Pencil tool; draw with left mouse button pressed, OR set left and right mark; double click on track
+<tr><td>Delete selected part(s)<td>select rubber tool; click part to delete
+<tr><td>Rename part<td>double click with left mouse button on part
+<tr><td>Copy part<td>drag with shift + left mouse button
+<tr><td>Cut part<td>select Cut Tool; click on part to cut
+<tr><td>Glue part<td>select Glue Tool; click on part to glue with next part
+</table>
+<p>
+
+<h2>4.2.3 The Button Bar &amp; Menus</h2>
+<img src="button_bar.jpg"</img>
+<p>
+Across the top, above the Arranger, are a menu system, icons and other
+widgets that you use to manipulate your project. Most of these are
+self-explanatory, while others are described later in this document.
+
+
+
+</qt>
diff --git a/muse2/share/instruments/Access_Virus.idf b/muse2/share/instruments/Access_Virus.idf
new file mode 100644
index 00000000..8772cde9
--- /dev/null
+++ b/muse2/share/instruments/Access_Virus.idf
@@ -0,0 +1,1046 @@
+<?xml version="1.0"?>
+<muse version="1.0">
+ <MidiInstrument name="Access Virus">
+ <PatchGroup name="Bank A">
+ <Patch name="A 000" hbank="0" lbank="0" prog="0" />
+ <Patch name="A 001" hbank="0" lbank="0" prog="1" />
+ <Patch name="A 002" hbank="0" lbank="0" prog="2" />
+ <Patch name="A 003" hbank="0" lbank="0" prog="3" />
+ <Patch name="A 004" hbank="0" lbank="0" prog="4" />
+ <Patch name="A 005" hbank="0" lbank="0" prog="5" />
+ <Patch name="A 006" hbank="0" lbank="0" prog="6" />
+ <Patch name="A 007" hbank="0" lbank="0" prog="7" />
+ <Patch name="A 008" hbank="0" lbank="0" prog="8" />
+ <Patch name="A 009" hbank="0" lbank="0" prog="9" />
+ <Patch name="A 010" hbank="0" lbank="0" prog="10" />
+ <Patch name="A 011" hbank="0" lbank="0" prog="11" />
+ <Patch name="A 012" hbank="0" lbank="0" prog="12" />
+ <Patch name="A 013" hbank="0" lbank="0" prog="13" />
+ <Patch name="A 014" hbank="0" lbank="0" prog="14" />
+ <Patch name="A 015" hbank="0" lbank="0" prog="15" />
+ <Patch name="A 016" hbank="0" lbank="0" prog="16" />
+ <Patch name="A 017" hbank="0" lbank="0" prog="17" />
+ <Patch name="A 018" hbank="0" lbank="0" prog="18" />
+ <Patch name="A 019" hbank="0" lbank="0" prog="19" />
+ <Patch name="A 020" hbank="0" lbank="0" prog="20" />
+ <Patch name="A 021" hbank="0" lbank="0" prog="21" />
+ <Patch name="A 022" hbank="0" lbank="0" prog="22" />
+ <Patch name="A 023" hbank="0" lbank="0" prog="23" />
+ <Patch name="A 024" hbank="0" lbank="0" prog="24" />
+ <Patch name="A 025" hbank="0" lbank="0" prog="25" />
+ <Patch name="A 026" hbank="0" lbank="0" prog="26" />
+ <Patch name="A 027" hbank="0" lbank="0" prog="27" />
+ <Patch name="A 028" hbank="0" lbank="0" prog="28" />
+ <Patch name="A 029" hbank="0" lbank="0" prog="29" />
+ <Patch name="A 030" hbank="0" lbank="0" prog="30" />
+ <Patch name="A 031" hbank="0" lbank="0" prog="31" />
+ <Patch name="A 032" hbank="0" lbank="0" prog="32" />
+ <Patch name="A 033" hbank="0" lbank="0" prog="33" />
+ <Patch name="A 034" hbank="0" lbank="0" prog="34" />
+ <Patch name="A 035" hbank="0" lbank="0" prog="35" />
+ <Patch name="A 036" hbank="0" lbank="0" prog="36" />
+ <Patch name="A 037" hbank="0" lbank="0" prog="37" />
+ <Patch name="A 038" hbank="0" lbank="0" prog="38" />
+ <Patch name="A 039" hbank="0" lbank="0" prog="39" />
+ <Patch name="A 040" hbank="0" lbank="0" prog="40" />
+ <Patch name="A 041" hbank="0" lbank="0" prog="41" />
+ <Patch name="A 042" hbank="0" lbank="0" prog="42" />
+ <Patch name="A 043" hbank="0" lbank="0" prog="43" />
+ <Patch name="A 044" hbank="0" lbank="0" prog="44" />
+ <Patch name="A 045" hbank="0" lbank="0" prog="45" />
+ <Patch name="A 046" hbank="0" lbank="0" prog="46" />
+ <Patch name="A 047" hbank="0" lbank="0" prog="47" />
+ <Patch name="A 048" hbank="0" lbank="0" prog="48" />
+ <Patch name="A 049" hbank="0" lbank="0" prog="49" />
+ <Patch name="A 050" hbank="0" lbank="0" prog="50" />
+ <Patch name="A 051" hbank="0" lbank="0" prog="51" />
+ <Patch name="A 052" hbank="0" lbank="0" prog="52" />
+ <Patch name="A 053" hbank="0" lbank="0" prog="53" />
+ <Patch name="A 054" hbank="0" lbank="0" prog="54" />
+ <Patch name="A 055" hbank="0" lbank="0" prog="55" />
+ <Patch name="A 056" hbank="0" lbank="0" prog="56" />
+ <Patch name="A 057" hbank="0" lbank="0" prog="57" />
+ <Patch name="A 058" hbank="0" lbank="0" prog="58" />
+ <Patch name="A 059" hbank="0" lbank="0" prog="59" />
+ <Patch name="A 060" hbank="0" lbank="0" prog="60" />
+ <Patch name="A 061" hbank="0" lbank="0" prog="61" />
+ <Patch name="A 062" hbank="0" lbank="0" prog="62" />
+ <Patch name="A 063" hbank="0" lbank="0" prog="63" />
+ <Patch name="A 064" hbank="0" lbank="0" prog="64" />
+ <Patch name="A 065" hbank="0" lbank="0" prog="65" />
+ <Patch name="A 066" hbank="0" lbank="0" prog="66" />
+ <Patch name="A 067" hbank="0" lbank="0" prog="67" />
+ <Patch name="A 068" hbank="0" lbank="0" prog="68" />
+ <Patch name="A 069" hbank="0" lbank="0" prog="69" />
+ <Patch name="A 070" hbank="0" lbank="0" prog="70" />
+ <Patch name="A 071" hbank="0" lbank="0" prog="71" />
+ <Patch name="A 072" hbank="0" lbank="0" prog="72" />
+ <Patch name="A 073" hbank="0" lbank="0" prog="73" />
+ <Patch name="A 074" hbank="0" lbank="0" prog="74" />
+ <Patch name="A 075" hbank="0" lbank="0" prog="75" />
+ <Patch name="A 076" hbank="0" lbank="0" prog="76" />
+ <Patch name="A 077" hbank="0" lbank="0" prog="77" />
+ <Patch name="A 078" hbank="0" lbank="0" prog="78" />
+ <Patch name="A 079" hbank="0" lbank="0" prog="79" />
+ <Patch name="A 080" hbank="0" lbank="0" prog="80" />
+ <Patch name="A 081" hbank="0" lbank="0" prog="81" />
+ <Patch name="A 082" hbank="0" lbank="0" prog="82" />
+ <Patch name="A 083" hbank="0" lbank="0" prog="83" />
+ <Patch name="A 084" hbank="0" lbank="0" prog="84" />
+ <Patch name="A 085" hbank="0" lbank="0" prog="85" />
+ <Patch name="A 086" hbank="0" lbank="0" prog="86" />
+ <Patch name="A 087" hbank="0" lbank="0" prog="87" />
+ <Patch name="A 088" hbank="0" lbank="0" prog="88" />
+ <Patch name="A 089" hbank="0" lbank="0" prog="89" />
+ <Patch name="A 090" hbank="0" lbank="0" prog="90" />
+ <Patch name="A 091" hbank="0" lbank="0" prog="91" />
+ <Patch name="A 092" hbank="0" lbank="0" prog="92" />
+ <Patch name="A 093" hbank="0" lbank="0" prog="93" />
+ <Patch name="A 094" hbank="0" lbank="0" prog="94" />
+ <Patch name="A 095" hbank="0" lbank="0" prog="95" />
+ <Patch name="A 096" hbank="0" lbank="0" prog="96" />
+ <Patch name="A 097" hbank="0" lbank="0" prog="97" />
+ <Patch name="A 098" hbank="0" lbank="0" prog="98" />
+ <Patch name="A 099" hbank="0" lbank="0" prog="99" />
+ <Patch name="A 100" hbank="0" lbank="0" prog="100" />
+ <Patch name="A 101" hbank="0" lbank="0" prog="101" />
+ <Patch name="A 102" hbank="0" lbank="0" prog="102" />
+ <Patch name="A 103" hbank="0" lbank="0" prog="103" />
+ <Patch name="A 104" hbank="0" lbank="0" prog="104" />
+ <Patch name="A 105" hbank="0" lbank="0" prog="105" />
+ <Patch name="A 106" hbank="0" lbank="0" prog="106" />
+ <Patch name="A 107" hbank="0" lbank="0" prog="107" />
+ <Patch name="A 108" hbank="0" lbank="0" prog="108" />
+ <Patch name="A 109" hbank="0" lbank="0" prog="109" />
+ <Patch name="A 110" hbank="0" lbank="0" prog="110" />
+ <Patch name="A 111" hbank="0" lbank="0" prog="111" />
+ <Patch name="A 112" hbank="0" lbank="0" prog="112" />
+ <Patch name="A 113" hbank="0" lbank="0" prog="113" />
+ <Patch name="A 114" hbank="0" lbank="0" prog="114" />
+ <Patch name="A 115" hbank="0" lbank="0" prog="115" />
+ <Patch name="A 116" hbank="0" lbank="0" prog="116" />
+ <Patch name="A 117" hbank="0" lbank="0" prog="117" />
+ <Patch name="A 118" hbank="0" lbank="0" prog="118" />
+ <Patch name="A 119" hbank="0" lbank="0" prog="119" />
+ <Patch name="A 120" hbank="0" lbank="0" prog="120" />
+ <Patch name="A 121" hbank="0" lbank="0" prog="121" />
+ <Patch name="A 122" hbank="0" lbank="0" prog="122" />
+ <Patch name="A 123" hbank="0" lbank="0" prog="123" />
+ <Patch name="A 124" hbank="0" lbank="0" prog="124" />
+ <Patch name="A 125" hbank="0" lbank="0" prog="125" />
+ <Patch name="A 126" hbank="0" lbank="0" prog="126" />
+ <Patch name="A 127" hbank="0" lbank="0" prog="127" />
+ </PatchGroup>
+ <PatchGroup name="Bank B">
+ <Patch name="B 000" hbank="0" lbank="1" prog="0" />
+ <Patch name="B 001" hbank="0" lbank="1" prog="1" />
+ <Patch name="B 002" hbank="0" lbank="1" prog="2" />
+ <Patch name="B 003" hbank="0" lbank="1" prog="3" />
+ <Patch name="B 004" hbank="0" lbank="1" prog="4" />
+ <Patch name="B 005" hbank="0" lbank="1" prog="5" />
+ <Patch name="B 006" hbank="0" lbank="1" prog="6" />
+ <Patch name="B 007" hbank="0" lbank="1" prog="7" />
+ <Patch name="B 008" hbank="0" lbank="1" prog="8" />
+ <Patch name="B 009" hbank="0" lbank="1" prog="9" />
+ <Patch name="B 010" hbank="0" lbank="1" prog="10" />
+ <Patch name="B 011" hbank="0" lbank="1" prog="11" />
+ <Patch name="B 012" hbank="0" lbank="1" prog="12" />
+ <Patch name="B 013" hbank="0" lbank="1" prog="13" />
+ <Patch name="B 014" hbank="0" lbank="1" prog="14" />
+ <Patch name="B 015" hbank="0" lbank="1" prog="15" />
+ <Patch name="B 016" hbank="0" lbank="1" prog="16" />
+ <Patch name="B 017" hbank="0" lbank="1" prog="17" />
+ <Patch name="B 018" hbank="0" lbank="1" prog="18" />
+ <Patch name="B 019" hbank="0" lbank="1" prog="19" />
+ <Patch name="B 020" hbank="0" lbank="1" prog="20" />
+ <Patch name="B 021" hbank="0" lbank="1" prog="21" />
+ <Patch name="B 022" hbank="0" lbank="1" prog="22" />
+ <Patch name="B 023" hbank="0" lbank="1" prog="23" />
+ <Patch name="B 024" hbank="0" lbank="1" prog="24" />
+ <Patch name="B 025" hbank="0" lbank="1" prog="25" />
+ <Patch name="B 026" hbank="0" lbank="1" prog="26" />
+ <Patch name="B 027" hbank="0" lbank="1" prog="27" />
+ <Patch name="B 028" hbank="0" lbank="1" prog="28" />
+ <Patch name="B 029" hbank="0" lbank="1" prog="29" />
+ <Patch name="B 030" hbank="0" lbank="1" prog="30" />
+ <Patch name="B 031" hbank="0" lbank="1" prog="31" />
+ <Patch name="B 032" hbank="0" lbank="1" prog="32" />
+ <Patch name="B 033" hbank="0" lbank="1" prog="33" />
+ <Patch name="B 034" hbank="0" lbank="1" prog="34" />
+ <Patch name="B 035" hbank="0" lbank="1" prog="35" />
+ <Patch name="B 036" hbank="0" lbank="1" prog="36" />
+ <Patch name="B 037" hbank="0" lbank="1" prog="37" />
+ <Patch name="B 038" hbank="0" lbank="1" prog="38" />
+ <Patch name="B 039" hbank="0" lbank="1" prog="39" />
+ <Patch name="B 040" hbank="0" lbank="1" prog="40" />
+ <Patch name="B 041" hbank="0" lbank="1" prog="41" />
+ <Patch name="B 042" hbank="0" lbank="1" prog="42" />
+ <Patch name="B 043" hbank="0" lbank="1" prog="43" />
+ <Patch name="B 044" hbank="0" lbank="1" prog="44" />
+ <Patch name="B 045" hbank="0" lbank="1" prog="45" />
+ <Patch name="B 046" hbank="0" lbank="1" prog="46" />
+ <Patch name="B 047" hbank="0" lbank="1" prog="47" />
+ <Patch name="B 048" hbank="0" lbank="1" prog="48" />
+ <Patch name="B 049" hbank="0" lbank="1" prog="49" />
+ <Patch name="B 050" hbank="0" lbank="1" prog="50" />
+ <Patch name="B 051" hbank="0" lbank="1" prog="51" />
+ <Patch name="B 052" hbank="0" lbank="1" prog="52" />
+ <Patch name="B 053" hbank="0" lbank="1" prog="53" />
+ <Patch name="B 054" hbank="0" lbank="1" prog="54" />
+ <Patch name="B 055" hbank="0" lbank="1" prog="55" />
+ <Patch name="B 056" hbank="0" lbank="1" prog="56" />
+ <Patch name="B 057" hbank="0" lbank="1" prog="57" />
+ <Patch name="B 058" hbank="0" lbank="1" prog="58" />
+ <Patch name="B 059" hbank="0" lbank="1" prog="59" />
+ <Patch name="B 060" hbank="0" lbank="1" prog="60" />
+ <Patch name="B 061" hbank="0" lbank="1" prog="61" />
+ <Patch name="B 062" hbank="0" lbank="1" prog="62" />
+ <Patch name="B 063" hbank="0" lbank="1" prog="63" />
+ <Patch name="B 064" hbank="0" lbank="1" prog="64" />
+ <Patch name="B 065" hbank="0" lbank="1" prog="65" />
+ <Patch name="B 066" hbank="0" lbank="1" prog="66" />
+ <Patch name="B 067" hbank="0" lbank="1" prog="67" />
+ <Patch name="B 068" hbank="0" lbank="1" prog="68" />
+ <Patch name="B 069" hbank="0" lbank="1" prog="69" />
+ <Patch name="B 070" hbank="0" lbank="1" prog="70" />
+ <Patch name="B 071" hbank="0" lbank="1" prog="71" />
+ <Patch name="B 072" hbank="0" lbank="1" prog="72" />
+ <Patch name="B 073" hbank="0" lbank="1" prog="73" />
+ <Patch name="B 074" hbank="0" lbank="1" prog="74" />
+ <Patch name="B 075" hbank="0" lbank="1" prog="75" />
+ <Patch name="B 076" hbank="0" lbank="1" prog="76" />
+ <Patch name="B 077" hbank="0" lbank="1" prog="77" />
+ <Patch name="B 078" hbank="0" lbank="1" prog="78" />
+ <Patch name="B 079" hbank="0" lbank="1" prog="79" />
+ <Patch name="B 080" hbank="0" lbank="1" prog="80" />
+ <Patch name="B 081" hbank="0" lbank="1" prog="81" />
+ <Patch name="B 082" hbank="0" lbank="1" prog="82" />
+ <Patch name="B 083" hbank="0" lbank="1" prog="83" />
+ <Patch name="B 084" hbank="0" lbank="1" prog="84" />
+ <Patch name="B 085" hbank="0" lbank="1" prog="85" />
+ <Patch name="B 086" hbank="0" lbank="1" prog="86" />
+ <Patch name="B 087" hbank="0" lbank="1" prog="87" />
+ <Patch name="B 088" hbank="0" lbank="1" prog="88" />
+ <Patch name="B 089" hbank="0" lbank="1" prog="89" />
+ <Patch name="B 090" hbank="0" lbank="1" prog="90" />
+ <Patch name="B 091" hbank="0" lbank="1" prog="91" />
+ <Patch name="B 092" hbank="0" lbank="1" prog="92" />
+ <Patch name="B 093" hbank="0" lbank="1" prog="93" />
+ <Patch name="B 094" hbank="0" lbank="1" prog="94" />
+ <Patch name="B 095" hbank="0" lbank="1" prog="95" />
+ <Patch name="B 096" hbank="0" lbank="1" prog="96" />
+ <Patch name="B 097" hbank="0" lbank="1" prog="97" />
+ <Patch name="B 098" hbank="0" lbank="1" prog="98" />
+ <Patch name="B 099" hbank="0" lbank="1" prog="99" />
+ <Patch name="B 100" hbank="0" lbank="1" prog="100" />
+ <Patch name="B 101" hbank="0" lbank="1" prog="101" />
+ <Patch name="B 102" hbank="0" lbank="1" prog="102" />
+ <Patch name="B 103" hbank="0" lbank="1" prog="103" />
+ <Patch name="B 104" hbank="0" lbank="1" prog="104" />
+ <Patch name="B 105" hbank="0" lbank="1" prog="105" />
+ <Patch name="B 106" hbank="0" lbank="1" prog="106" />
+ <Patch name="B 107" hbank="0" lbank="1" prog="107" />
+ <Patch name="B 108" hbank="0" lbank="1" prog="108" />
+ <Patch name="B 109" hbank="0" lbank="1" prog="109" />
+ <Patch name="B 110" hbank="0" lbank="1" prog="110" />
+ <Patch name="B 111" hbank="0" lbank="1" prog="111" />
+ <Patch name="B 112" hbank="0" lbank="1" prog="112" />
+ <Patch name="B 113" hbank="0" lbank="1" prog="113" />
+ <Patch name="B 114" hbank="0" lbank="1" prog="114" />
+ <Patch name="B 115" hbank="0" lbank="1" prog="115" />
+ <Patch name="B 116" hbank="0" lbank="1" prog="116" />
+ <Patch name="B 117" hbank="0" lbank="1" prog="117" />
+ <Patch name="B 118" hbank="0" lbank="1" prog="118" />
+ <Patch name="B 119" hbank="0" lbank="1" prog="119" />
+ <Patch name="B 120" hbank="0" lbank="1" prog="120" />
+ <Patch name="B 121" hbank="0" lbank="1" prog="121" />
+ <Patch name="B 122" hbank="0" lbank="1" prog="122" />
+ <Patch name="B 123" hbank="0" lbank="1" prog="123" />
+ <Patch name="B 124" hbank="0" lbank="1" prog="124" />
+ <Patch name="B 125" hbank="0" lbank="1" prog="125" />
+ <Patch name="B 126" hbank="0" lbank="1" prog="126" />
+ <Patch name="B 127" hbank="0" lbank="1" prog="127" />
+ </PatchGroup>
+ <PatchGroup name="Bank C">
+ <Patch name="C 000" hbank="0" lbank="2" prog="0" />
+ <Patch name="C 001" hbank="0" lbank="2" prog="1" />
+ <Patch name="C 002" hbank="0" lbank="2" prog="2" />
+ <Patch name="C 003" hbank="0" lbank="2" prog="3" />
+ <Patch name="C 004" hbank="0" lbank="2" prog="4" />
+ <Patch name="C 005" hbank="0" lbank="2" prog="5" />
+ <Patch name="C 006" hbank="0" lbank="2" prog="6" />
+ <Patch name="C 007" hbank="0" lbank="2" prog="7" />
+ <Patch name="C 008" hbank="0" lbank="2" prog="8" />
+ <Patch name="C 009" hbank="0" lbank="2" prog="9" />
+ <Patch name="C 010" hbank="0" lbank="2" prog="10" />
+ <Patch name="C 011" hbank="0" lbank="2" prog="11" />
+ <Patch name="C 012" hbank="0" lbank="2" prog="12" />
+ <Patch name="C 013" hbank="0" lbank="2" prog="13" />
+ <Patch name="C 014" hbank="0" lbank="2" prog="14" />
+ <Patch name="C 015" hbank="0" lbank="2" prog="15" />
+ <Patch name="C 016" hbank="0" lbank="2" prog="16" />
+ <Patch name="C 017" hbank="0" lbank="2" prog="17" />
+ <Patch name="C 018" hbank="0" lbank="2" prog="18" />
+ <Patch name="C 019" hbank="0" lbank="2" prog="19" />
+ <Patch name="C 020" hbank="0" lbank="2" prog="20" />
+ <Patch name="C 021" hbank="0" lbank="2" prog="21" />
+ <Patch name="C 022" hbank="0" lbank="2" prog="22" />
+ <Patch name="C 023" hbank="0" lbank="2" prog="23" />
+ <Patch name="C 024" hbank="0" lbank="2" prog="24" />
+ <Patch name="C 025" hbank="0" lbank="2" prog="25" />
+ <Patch name="C 026" hbank="0" lbank="2" prog="26" />
+ <Patch name="C 027" hbank="0" lbank="2" prog="27" />
+ <Patch name="C 028" hbank="0" lbank="2" prog="28" />
+ <Patch name="C 029" hbank="0" lbank="2" prog="29" />
+ <Patch name="C 030" hbank="0" lbank="2" prog="30" />
+ <Patch name="C 031" hbank="0" lbank="2" prog="31" />
+ <Patch name="C 032" hbank="0" lbank="2" prog="32" />
+ <Patch name="C 033" hbank="0" lbank="2" prog="33" />
+ <Patch name="C 034" hbank="0" lbank="2" prog="34" />
+ <Patch name="C 035" hbank="0" lbank="2" prog="35" />
+ <Patch name="C 036" hbank="0" lbank="2" prog="36" />
+ <Patch name="C 037" hbank="0" lbank="2" prog="37" />
+ <Patch name="C 038" hbank="0" lbank="2" prog="38" />
+ <Patch name="C 039" hbank="0" lbank="2" prog="39" />
+ <Patch name="C 040" hbank="0" lbank="2" prog="40" />
+ <Patch name="C 041" hbank="0" lbank="2" prog="41" />
+ <Patch name="C 042" hbank="0" lbank="2" prog="42" />
+ <Patch name="C 043" hbank="0" lbank="2" prog="43" />
+ <Patch name="C 044" hbank="0" lbank="2" prog="44" />
+ <Patch name="C 045" hbank="0" lbank="2" prog="45" />
+ <Patch name="C 046" hbank="0" lbank="2" prog="46" />
+ <Patch name="C 047" hbank="0" lbank="2" prog="47" />
+ <Patch name="C 048" hbank="0" lbank="2" prog="48" />
+ <Patch name="C 049" hbank="0" lbank="2" prog="49" />
+ <Patch name="C 050" hbank="0" lbank="2" prog="50" />
+ <Patch name="C 051" hbank="0" lbank="2" prog="51" />
+ <Patch name="C 052" hbank="0" lbank="2" prog="52" />
+ <Patch name="C 053" hbank="0" lbank="2" prog="53" />
+ <Patch name="C 054" hbank="0" lbank="2" prog="54" />
+ <Patch name="C 055" hbank="0" lbank="2" prog="55" />
+ <Patch name="C 056" hbank="0" lbank="2" prog="56" />
+ <Patch name="C 057" hbank="0" lbank="2" prog="57" />
+ <Patch name="C 058" hbank="0" lbank="2" prog="58" />
+ <Patch name="C 059" hbank="0" lbank="2" prog="59" />
+ <Patch name="C 060" hbank="0" lbank="2" prog="60" />
+ <Patch name="C 061" hbank="0" lbank="2" prog="61" />
+ <Patch name="C 062" hbank="0" lbank="2" prog="62" />
+ <Patch name="C 063" hbank="0" lbank="2" prog="63" />
+ <Patch name="C 064" hbank="0" lbank="2" prog="64" />
+ <Patch name="C 065" hbank="0" lbank="2" prog="65" />
+ <Patch name="C 066" hbank="0" lbank="2" prog="66" />
+ <Patch name="C 067" hbank="0" lbank="2" prog="67" />
+ <Patch name="C 068" hbank="0" lbank="2" prog="68" />
+ <Patch name="C 069" hbank="0" lbank="2" prog="69" />
+ <Patch name="C 070" hbank="0" lbank="2" prog="70" />
+ <Patch name="C 071" hbank="0" lbank="2" prog="71" />
+ <Patch name="C 072" hbank="0" lbank="2" prog="72" />
+ <Patch name="C 073" hbank="0" lbank="2" prog="73" />
+ <Patch name="C 074" hbank="0" lbank="2" prog="74" />
+ <Patch name="C 075" hbank="0" lbank="2" prog="75" />
+ <Patch name="C 076" hbank="0" lbank="2" prog="76" />
+ <Patch name="C 077" hbank="0" lbank="2" prog="77" />
+ <Patch name="C 078" hbank="0" lbank="2" prog="78" />
+ <Patch name="C 079" hbank="0" lbank="2" prog="79" />
+ <Patch name="C 080" hbank="0" lbank="2" prog="80" />
+ <Patch name="C 081" hbank="0" lbank="2" prog="81" />
+ <Patch name="C 082" hbank="0" lbank="2" prog="82" />
+ <Patch name="C 083" hbank="0" lbank="2" prog="83" />
+ <Patch name="C 084" hbank="0" lbank="2" prog="84" />
+ <Patch name="C 085" hbank="0" lbank="2" prog="85" />
+ <Patch name="C 086" hbank="0" lbank="2" prog="86" />
+ <Patch name="C 087" hbank="0" lbank="2" prog="87" />
+ <Patch name="C 088" hbank="0" lbank="2" prog="88" />
+ <Patch name="C 089" hbank="0" lbank="2" prog="89" />
+ <Patch name="C 090" hbank="0" lbank="2" prog="90" />
+ <Patch name="C 091" hbank="0" lbank="2" prog="91" />
+ <Patch name="C 092" hbank="0" lbank="2" prog="92" />
+ <Patch name="C 093" hbank="0" lbank="2" prog="93" />
+ <Patch name="C 094" hbank="0" lbank="2" prog="94" />
+ <Patch name="C 095" hbank="0" lbank="2" prog="95" />
+ <Patch name="C 096" hbank="0" lbank="2" prog="96" />
+ <Patch name="C 097" hbank="0" lbank="2" prog="97" />
+ <Patch name="C 098" hbank="0" lbank="2" prog="98" />
+ <Patch name="C 099" hbank="0" lbank="2" prog="99" />
+ <Patch name="C 100" hbank="0" lbank="2" prog="100" />
+ <Patch name="C 101" hbank="0" lbank="2" prog="101" />
+ <Patch name="C 102" hbank="0" lbank="2" prog="102" />
+ <Patch name="C 103" hbank="0" lbank="2" prog="103" />
+ <Patch name="C 104" hbank="0" lbank="2" prog="104" />
+ <Patch name="C 105" hbank="0" lbank="2" prog="105" />
+ <Patch name="C 106" hbank="0" lbank="2" prog="106" />
+ <Patch name="C 107" hbank="0" lbank="2" prog="107" />
+ <Patch name="C 108" hbank="0" lbank="2" prog="108" />
+ <Patch name="C 109" hbank="0" lbank="2" prog="109" />
+ <Patch name="C 110" hbank="0" lbank="2" prog="110" />
+ <Patch name="C 111" hbank="0" lbank="2" prog="111" />
+ <Patch name="C 112" hbank="0" lbank="2" prog="112" />
+ <Patch name="C 113" hbank="0" lbank="2" prog="113" />
+ <Patch name="C 114" hbank="0" lbank="2" prog="114" />
+ <Patch name="C 115" hbank="0" lbank="2" prog="115" />
+ <Patch name="C 116" hbank="0" lbank="2" prog="116" />
+ <Patch name="C 117" hbank="0" lbank="2" prog="117" />
+ <Patch name="C 118" hbank="0" lbank="2" prog="118" />
+ <Patch name="C 119" hbank="0" lbank="2" prog="119" />
+ <Patch name="C 120" hbank="0" lbank="2" prog="120" />
+ <Patch name="C 121" hbank="0" lbank="2" prog="121" />
+ <Patch name="C 122" hbank="0" lbank="2" prog="122" />
+ <Patch name="C 123" hbank="0" lbank="2" prog="123" />
+ <Patch name="C 124" hbank="0" lbank="2" prog="124" />
+ <Patch name="C 125" hbank="0" lbank="2" prog="125" />
+ <Patch name="C 126" hbank="0" lbank="2" prog="126" />
+ <Patch name="C 127" hbank="0" lbank="2" prog="127" />
+ </PatchGroup>
+ <PatchGroup name="Bank D">
+ <Patch name="D 000" hbank="0" lbank="3" prog="0" />
+ <Patch name="D 001" hbank="0" lbank="3" prog="1" />
+ <Patch name="D 002" hbank="0" lbank="3" prog="2" />
+ <Patch name="D 003" hbank="0" lbank="3" prog="3" />
+ <Patch name="D 004" hbank="0" lbank="3" prog="4" />
+ <Patch name="D 005" hbank="0" lbank="3" prog="5" />
+ <Patch name="D 006" hbank="0" lbank="3" prog="6" />
+ <Patch name="D 007" hbank="0" lbank="3" prog="7" />
+ <Patch name="D 008" hbank="0" lbank="3" prog="8" />
+ <Patch name="D 009" hbank="0" lbank="3" prog="9" />
+ <Patch name="D 010" hbank="0" lbank="3" prog="10" />
+ <Patch name="D 011" hbank="0" lbank="3" prog="11" />
+ <Patch name="D 012" hbank="0" lbank="3" prog="12" />
+ <Patch name="D 013" hbank="0" lbank="3" prog="13" />
+ <Patch name="D 014" hbank="0" lbank="3" prog="14" />
+ <Patch name="D 015" hbank="0" lbank="3" prog="15" />
+ <Patch name="D 016" hbank="0" lbank="3" prog="16" />
+ <Patch name="D 017" hbank="0" lbank="3" prog="17" />
+ <Patch name="D 018" hbank="0" lbank="3" prog="18" />
+ <Patch name="D 019" hbank="0" lbank="3" prog="19" />
+ <Patch name="D 020" hbank="0" lbank="3" prog="20" />
+ <Patch name="D 021" hbank="0" lbank="3" prog="21" />
+ <Patch name="D 022" hbank="0" lbank="3" prog="22" />
+ <Patch name="D 023" hbank="0" lbank="3" prog="23" />
+ <Patch name="D 024" hbank="0" lbank="3" prog="24" />
+ <Patch name="D 025" hbank="0" lbank="3" prog="25" />
+ <Patch name="D 026" hbank="0" lbank="3" prog="26" />
+ <Patch name="D 027" hbank="0" lbank="3" prog="27" />
+ <Patch name="D 028" hbank="0" lbank="3" prog="28" />
+ <Patch name="D 029" hbank="0" lbank="3" prog="29" />
+ <Patch name="D 030" hbank="0" lbank="3" prog="30" />
+ <Patch name="D 031" hbank="0" lbank="3" prog="31" />
+ <Patch name="D 032" hbank="0" lbank="3" prog="32" />
+ <Patch name="D 033" hbank="0" lbank="3" prog="33" />
+ <Patch name="D 034" hbank="0" lbank="3" prog="34" />
+ <Patch name="D 035" hbank="0" lbank="3" prog="35" />
+ <Patch name="D 036" hbank="0" lbank="3" prog="36" />
+ <Patch name="D 037" hbank="0" lbank="3" prog="37" />
+ <Patch name="D 038" hbank="0" lbank="3" prog="38" />
+ <Patch name="D 039" hbank="0" lbank="3" prog="39" />
+ <Patch name="D 040" hbank="0" lbank="3" prog="40" />
+ <Patch name="D 041" hbank="0" lbank="3" prog="41" />
+ <Patch name="D 042" hbank="0" lbank="3" prog="42" />
+ <Patch name="D 043" hbank="0" lbank="3" prog="43" />
+ <Patch name="D 044" hbank="0" lbank="3" prog="44" />
+ <Patch name="D 045" hbank="0" lbank="3" prog="45" />
+ <Patch name="D 046" hbank="0" lbank="3" prog="46" />
+ <Patch name="D 047" hbank="0" lbank="3" prog="47" />
+ <Patch name="D 048" hbank="0" lbank="3" prog="48" />
+ <Patch name="D 049" hbank="0" lbank="3" prog="49" />
+ <Patch name="D 050" hbank="0" lbank="3" prog="50" />
+ <Patch name="D 051" hbank="0" lbank="3" prog="51" />
+ <Patch name="D 052" hbank="0" lbank="3" prog="52" />
+ <Patch name="D 053" hbank="0" lbank="3" prog="53" />
+ <Patch name="D 054" hbank="0" lbank="3" prog="54" />
+ <Patch name="D 055" hbank="0" lbank="3" prog="55" />
+ <Patch name="D 056" hbank="0" lbank="3" prog="56" />
+ <Patch name="D 057" hbank="0" lbank="3" prog="57" />
+ <Patch name="D 058" hbank="0" lbank="3" prog="58" />
+ <Patch name="D 059" hbank="0" lbank="3" prog="59" />
+ <Patch name="D 060" hbank="0" lbank="3" prog="60" />
+ <Patch name="D 061" hbank="0" lbank="3" prog="61" />
+ <Patch name="D 062" hbank="0" lbank="3" prog="62" />
+ <Patch name="D 063" hbank="0" lbank="3" prog="63" />
+ <Patch name="D 064" hbank="0" lbank="3" prog="64" />
+ <Patch name="D 065" hbank="0" lbank="3" prog="65" />
+ <Patch name="D 066" hbank="0" lbank="3" prog="66" />
+ <Patch name="D 067" hbank="0" lbank="3" prog="67" />
+ <Patch name="D 068" hbank="0" lbank="3" prog="68" />
+ <Patch name="D 069" hbank="0" lbank="3" prog="69" />
+ <Patch name="D 070" hbank="0" lbank="3" prog="70" />
+ <Patch name="D 071" hbank="0" lbank="3" prog="71" />
+ <Patch name="D 072" hbank="0" lbank="3" prog="72" />
+ <Patch name="D 073" hbank="0" lbank="3" prog="73" />
+ <Patch name="D 074" hbank="0" lbank="3" prog="74" />
+ <Patch name="D 075" hbank="0" lbank="3" prog="75" />
+ <Patch name="D 076" hbank="0" lbank="3" prog="76" />
+ <Patch name="D 077" hbank="0" lbank="3" prog="77" />
+ <Patch name="D 078" hbank="0" lbank="3" prog="78" />
+ <Patch name="D 079" hbank="0" lbank="3" prog="79" />
+ <Patch name="D 080" hbank="0" lbank="3" prog="80" />
+ <Patch name="D 081" hbank="0" lbank="3" prog="81" />
+ <Patch name="D 082" hbank="0" lbank="3" prog="82" />
+ <Patch name="D 083" hbank="0" lbank="3" prog="83" />
+ <Patch name="D 084" hbank="0" lbank="3" prog="84" />
+ <Patch name="D 085" hbank="0" lbank="3" prog="85" />
+ <Patch name="D 086" hbank="0" lbank="3" prog="86" />
+ <Patch name="D 087" hbank="0" lbank="3" prog="87" />
+ <Patch name="D 088" hbank="0" lbank="3" prog="88" />
+ <Patch name="D 089" hbank="0" lbank="3" prog="89" />
+ <Patch name="D 090" hbank="0" lbank="3" prog="90" />
+ <Patch name="D 091" hbank="0" lbank="3" prog="91" />
+ <Patch name="D 092" hbank="0" lbank="3" prog="92" />
+ <Patch name="D 093" hbank="0" lbank="3" prog="93" />
+ <Patch name="D 094" hbank="0" lbank="3" prog="94" />
+ <Patch name="D 095" hbank="0" lbank="3" prog="95" />
+ <Patch name="D 096" hbank="0" lbank="3" prog="96" />
+ <Patch name="D 097" hbank="0" lbank="3" prog="97" />
+ <Patch name="D 098" hbank="0" lbank="3" prog="98" />
+ <Patch name="D 099" hbank="0" lbank="3" prog="99" />
+ <Patch name="D 100" hbank="0" lbank="3" prog="100" />
+ <Patch name="D 101" hbank="0" lbank="3" prog="101" />
+ <Patch name="D 102" hbank="0" lbank="3" prog="102" />
+ <Patch name="D 103" hbank="0" lbank="3" prog="103" />
+ <Patch name="D 104" hbank="0" lbank="3" prog="104" />
+ <Patch name="D 105" hbank="0" lbank="3" prog="105" />
+ <Patch name="D 106" hbank="0" lbank="3" prog="106" />
+ <Patch name="D 107" hbank="0" lbank="3" prog="107" />
+ <Patch name="D 108" hbank="0" lbank="3" prog="108" />
+ <Patch name="D 109" hbank="0" lbank="3" prog="109" />
+ <Patch name="D 110" hbank="0" lbank="3" prog="110" />
+ <Patch name="D 111" hbank="0" lbank="3" prog="111" />
+ <Patch name="D 112" hbank="0" lbank="3" prog="112" />
+ <Patch name="D 113" hbank="0" lbank="3" prog="113" />
+ <Patch name="D 114" hbank="0" lbank="3" prog="114" />
+ <Patch name="D 115" hbank="0" lbank="3" prog="115" />
+ <Patch name="D 116" hbank="0" lbank="3" prog="116" />
+ <Patch name="D 117" hbank="0" lbank="3" prog="117" />
+ <Patch name="D 118" hbank="0" lbank="3" prog="118" />
+ <Patch name="D 119" hbank="0" lbank="3" prog="119" />
+ <Patch name="D 120" hbank="0" lbank="3" prog="120" />
+ <Patch name="D 121" hbank="0" lbank="3" prog="121" />
+ <Patch name="D 122" hbank="0" lbank="3" prog="122" />
+ <Patch name="D 123" hbank="0" lbank="3" prog="123" />
+ <Patch name="D 124" hbank="0" lbank="3" prog="124" />
+ <Patch name="D 125" hbank="0" lbank="3" prog="125" />
+ <Patch name="D 126" hbank="0" lbank="3" prog="126" />
+ <Patch name="D 127" hbank="0" lbank="3" prog="127" />
+ </PatchGroup>
+ <PatchGroup name="Bank E">
+ <Patch name="E 000" hbank="0" lbank="4" prog="0" />
+ <Patch name="E 001" hbank="0" lbank="4" prog="1" />
+ <Patch name="E 002" hbank="0" lbank="4" prog="2" />
+ <Patch name="E 003" hbank="0" lbank="4" prog="3" />
+ <Patch name="E 004" hbank="0" lbank="4" prog="4" />
+ <Patch name="E 005" hbank="0" lbank="4" prog="5" />
+ <Patch name="E 006" hbank="0" lbank="4" prog="6" />
+ <Patch name="E 007" hbank="0" lbank="4" prog="7" />
+ <Patch name="E 008" hbank="0" lbank="4" prog="8" />
+ <Patch name="E 009" hbank="0" lbank="4" prog="9" />
+ <Patch name="E 010" hbank="0" lbank="4" prog="10" />
+ <Patch name="E 011" hbank="0" lbank="4" prog="11" />
+ <Patch name="E 012" hbank="0" lbank="4" prog="12" />
+ <Patch name="E 013" hbank="0" lbank="4" prog="13" />
+ <Patch name="E 014" hbank="0" lbank="4" prog="14" />
+ <Patch name="E 015" hbank="0" lbank="4" prog="15" />
+ <Patch name="E 016" hbank="0" lbank="4" prog="16" />
+ <Patch name="E 017" hbank="0" lbank="4" prog="17" />
+ <Patch name="E 018" hbank="0" lbank="4" prog="18" />
+ <Patch name="E 019" hbank="0" lbank="4" prog="19" />
+ <Patch name="E 020" hbank="0" lbank="4" prog="20" />
+ <Patch name="E 021" hbank="0" lbank="4" prog="21" />
+ <Patch name="E 022" hbank="0" lbank="4" prog="22" />
+ <Patch name="E 023" hbank="0" lbank="4" prog="23" />
+ <Patch name="E 024" hbank="0" lbank="4" prog="24" />
+ <Patch name="E 025" hbank="0" lbank="4" prog="25" />
+ <Patch name="E 026" hbank="0" lbank="4" prog="26" />
+ <Patch name="E 027" hbank="0" lbank="4" prog="27" />
+ <Patch name="E 028" hbank="0" lbank="4" prog="28" />
+ <Patch name="E 029" hbank="0" lbank="4" prog="29" />
+ <Patch name="E 030" hbank="0" lbank="4" prog="30" />
+ <Patch name="E 031" hbank="0" lbank="4" prog="31" />
+ <Patch name="E 032" hbank="0" lbank="4" prog="32" />
+ <Patch name="E 033" hbank="0" lbank="4" prog="33" />
+ <Patch name="E 034" hbank="0" lbank="4" prog="34" />
+ <Patch name="E 035" hbank="0" lbank="4" prog="35" />
+ <Patch name="E 036" hbank="0" lbank="4" prog="36" />
+ <Patch name="E 037" hbank="0" lbank="4" prog="37" />
+ <Patch name="E 038" hbank="0" lbank="4" prog="38" />
+ <Patch name="E 039" hbank="0" lbank="4" prog="39" />
+ <Patch name="E 040" hbank="0" lbank="4" prog="40" />
+ <Patch name="E 041" hbank="0" lbank="4" prog="41" />
+ <Patch name="E 042" hbank="0" lbank="4" prog="42" />
+ <Patch name="E 043" hbank="0" lbank="4" prog="43" />
+ <Patch name="E 044" hbank="0" lbank="4" prog="44" />
+ <Patch name="E 045" hbank="0" lbank="4" prog="45" />
+ <Patch name="E 046" hbank="0" lbank="4" prog="46" />
+ <Patch name="E 047" hbank="0" lbank="4" prog="47" />
+ <Patch name="E 048" hbank="0" lbank="4" prog="48" />
+ <Patch name="E 049" hbank="0" lbank="4" prog="49" />
+ <Patch name="E 050" hbank="0" lbank="4" prog="50" />
+ <Patch name="E 051" hbank="0" lbank="4" prog="51" />
+ <Patch name="E 052" hbank="0" lbank="4" prog="52" />
+ <Patch name="E 053" hbank="0" lbank="4" prog="53" />
+ <Patch name="E 054" hbank="0" lbank="4" prog="54" />
+ <Patch name="E 055" hbank="0" lbank="4" prog="55" />
+ <Patch name="E 056" hbank="0" lbank="4" prog="56" />
+ <Patch name="E 057" hbank="0" lbank="4" prog="57" />
+ <Patch name="E 058" hbank="0" lbank="4" prog="58" />
+ <Patch name="E 059" hbank="0" lbank="4" prog="59" />
+ <Patch name="E 060" hbank="0" lbank="4" prog="60" />
+ <Patch name="E 061" hbank="0" lbank="4" prog="61" />
+ <Patch name="E 062" hbank="0" lbank="4" prog="62" />
+ <Patch name="E 063" hbank="0" lbank="4" prog="63" />
+ <Patch name="E 064" hbank="0" lbank="4" prog="64" />
+ <Patch name="E 065" hbank="0" lbank="4" prog="65" />
+ <Patch name="E 066" hbank="0" lbank="4" prog="66" />
+ <Patch name="E 067" hbank="0" lbank="4" prog="67" />
+ <Patch name="E 068" hbank="0" lbank="4" prog="68" />
+ <Patch name="E 069" hbank="0" lbank="4" prog="69" />
+ <Patch name="E 070" hbank="0" lbank="4" prog="70" />
+ <Patch name="E 071" hbank="0" lbank="4" prog="71" />
+ <Patch name="E 072" hbank="0" lbank="4" prog="72" />
+ <Patch name="E 073" hbank="0" lbank="4" prog="73" />
+ <Patch name="E 074" hbank="0" lbank="4" prog="74" />
+ <Patch name="E 075" hbank="0" lbank="4" prog="75" />
+ <Patch name="E 076" hbank="0" lbank="4" prog="76" />
+ <Patch name="E 077" hbank="0" lbank="4" prog="77" />
+ <Patch name="E 078" hbank="0" lbank="4" prog="78" />
+ <Patch name="E 079" hbank="0" lbank="4" prog="79" />
+ <Patch name="E 080" hbank="0" lbank="4" prog="80" />
+ <Patch name="E 081" hbank="0" lbank="4" prog="81" />
+ <Patch name="E 082" hbank="0" lbank="4" prog="82" />
+ <Patch name="E 083" hbank="0" lbank="4" prog="83" />
+ <Patch name="E 084" hbank="0" lbank="4" prog="84" />
+ <Patch name="E 085" hbank="0" lbank="4" prog="85" />
+ <Patch name="E 086" hbank="0" lbank="4" prog="86" />
+ <Patch name="E 087" hbank="0" lbank="4" prog="87" />
+ <Patch name="E 088" hbank="0" lbank="4" prog="88" />
+ <Patch name="E 089" hbank="0" lbank="4" prog="89" />
+ <Patch name="E 090" hbank="0" lbank="4" prog="90" />
+ <Patch name="E 091" hbank="0" lbank="4" prog="91" />
+ <Patch name="E 092" hbank="0" lbank="4" prog="92" />
+ <Patch name="E 093" hbank="0" lbank="4" prog="93" />
+ <Patch name="E 094" hbank="0" lbank="4" prog="94" />
+ <Patch name="E 095" hbank="0" lbank="4" prog="95" />
+ <Patch name="E 096" hbank="0" lbank="4" prog="96" />
+ <Patch name="E 097" hbank="0" lbank="4" prog="97" />
+ <Patch name="E 098" hbank="0" lbank="4" prog="98" />
+ <Patch name="E 099" hbank="0" lbank="4" prog="99" />
+ <Patch name="E 100" hbank="0" lbank="4" prog="100" />
+ <Patch name="E 101" hbank="0" lbank="4" prog="101" />
+ <Patch name="E 102" hbank="0" lbank="4" prog="102" />
+ <Patch name="E 103" hbank="0" lbank="4" prog="103" />
+ <Patch name="E 104" hbank="0" lbank="4" prog="104" />
+ <Patch name="E 105" hbank="0" lbank="4" prog="105" />
+ <Patch name="E 106" hbank="0" lbank="4" prog="106" />
+ <Patch name="E 107" hbank="0" lbank="4" prog="107" />
+ <Patch name="E 108" hbank="0" lbank="4" prog="108" />
+ <Patch name="E 109" hbank="0" lbank="4" prog="109" />
+ <Patch name="E 110" hbank="0" lbank="4" prog="110" />
+ <Patch name="E 111" hbank="0" lbank="4" prog="111" />
+ <Patch name="E 112" hbank="0" lbank="4" prog="112" />
+ <Patch name="E 113" hbank="0" lbank="4" prog="113" />
+ <Patch name="E 114" hbank="0" lbank="4" prog="114" />
+ <Patch name="E 115" hbank="0" lbank="4" prog="115" />
+ <Patch name="E 116" hbank="0" lbank="4" prog="116" />
+ <Patch name="E 117" hbank="0" lbank="4" prog="117" />
+ <Patch name="E 118" hbank="0" lbank="4" prog="118" />
+ <Patch name="E 119" hbank="0" lbank="4" prog="119" />
+ <Patch name="E 120" hbank="0" lbank="4" prog="120" />
+ <Patch name="E 121" hbank="0" lbank="4" prog="121" />
+ <Patch name="E 122" hbank="0" lbank="4" prog="122" />
+ <Patch name="E 123" hbank="0" lbank="4" prog="123" />
+ <Patch name="E 124" hbank="0" lbank="4" prog="124" />
+ <Patch name="E 125" hbank="0" lbank="4" prog="125" />
+ <Patch name="E 126" hbank="0" lbank="4" prog="126" />
+ <Patch name="E 127" hbank="0" lbank="4" prog="127" />
+ </PatchGroup>
+ <PatchGroup name="Bank F">
+ <Patch name="F 000" hbank="0" lbank="5" prog="0" />
+ <Patch name="F 001" hbank="0" lbank="5" prog="1" />
+ <Patch name="F 002" hbank="0" lbank="5" prog="2" />
+ <Patch name="F 003" hbank="0" lbank="5" prog="3" />
+ <Patch name="F 004" hbank="0" lbank="5" prog="4" />
+ <Patch name="F 005" hbank="0" lbank="5" prog="5" />
+ <Patch name="F 006" hbank="0" lbank="5" prog="6" />
+ <Patch name="F 007" hbank="0" lbank="5" prog="7" />
+ <Patch name="F 008" hbank="0" lbank="5" prog="8" />
+ <Patch name="F 009" hbank="0" lbank="5" prog="9" />
+ <Patch name="F 010" hbank="0" lbank="5" prog="10" />
+ <Patch name="F 011" hbank="0" lbank="5" prog="11" />
+ <Patch name="F 012" hbank="0" lbank="5" prog="12" />
+ <Patch name="F 013" hbank="0" lbank="5" prog="13" />
+ <Patch name="F 014" hbank="0" lbank="5" prog="14" />
+ <Patch name="F 015" hbank="0" lbank="5" prog="15" />
+ <Patch name="F 016" hbank="0" lbank="5" prog="16" />
+ <Patch name="F 017" hbank="0" lbank="5" prog="17" />
+ <Patch name="F 018" hbank="0" lbank="5" prog="18" />
+ <Patch name="F 019" hbank="0" lbank="5" prog="19" />
+ <Patch name="F 020" hbank="0" lbank="5" prog="20" />
+ <Patch name="F 021" hbank="0" lbank="5" prog="21" />
+ <Patch name="F 022" hbank="0" lbank="5" prog="22" />
+ <Patch name="F 023" hbank="0" lbank="5" prog="23" />
+ <Patch name="F 024" hbank="0" lbank="5" prog="24" />
+ <Patch name="F 025" hbank="0" lbank="5" prog="25" />
+ <Patch name="F 026" hbank="0" lbank="5" prog="26" />
+ <Patch name="F 027" hbank="0" lbank="5" prog="27" />
+ <Patch name="F 028" hbank="0" lbank="5" prog="28" />
+ <Patch name="F 029" hbank="0" lbank="5" prog="29" />
+ <Patch name="F 030" hbank="0" lbank="5" prog="30" />
+ <Patch name="F 031" hbank="0" lbank="5" prog="31" />
+ <Patch name="F 032" hbank="0" lbank="5" prog="32" />
+ <Patch name="F 033" hbank="0" lbank="5" prog="33" />
+ <Patch name="F 034" hbank="0" lbank="5" prog="34" />
+ <Patch name="F 035" hbank="0" lbank="5" prog="35" />
+ <Patch name="F 036" hbank="0" lbank="5" prog="36" />
+ <Patch name="F 037" hbank="0" lbank="5" prog="37" />
+ <Patch name="F 038" hbank="0" lbank="5" prog="38" />
+ <Patch name="F 039" hbank="0" lbank="5" prog="39" />
+ <Patch name="F 040" hbank="0" lbank="5" prog="40" />
+ <Patch name="F 041" hbank="0" lbank="5" prog="41" />
+ <Patch name="F 042" hbank="0" lbank="5" prog="42" />
+ <Patch name="F 043" hbank="0" lbank="5" prog="43" />
+ <Patch name="F 044" hbank="0" lbank="5" prog="44" />
+ <Patch name="F 045" hbank="0" lbank="5" prog="45" />
+ <Patch name="F 046" hbank="0" lbank="5" prog="46" />
+ <Patch name="F 047" hbank="0" lbank="5" prog="47" />
+ <Patch name="F 048" hbank="0" lbank="5" prog="48" />
+ <Patch name="F 049" hbank="0" lbank="5" prog="49" />
+ <Patch name="F 050" hbank="0" lbank="5" prog="50" />
+ <Patch name="F 051" hbank="0" lbank="5" prog="51" />
+ <Patch name="F 052" hbank="0" lbank="5" prog="52" />
+ <Patch name="F 053" hbank="0" lbank="5" prog="53" />
+ <Patch name="F 054" hbank="0" lbank="5" prog="54" />
+ <Patch name="F 055" hbank="0" lbank="5" prog="55" />
+ <Patch name="F 056" hbank="0" lbank="5" prog="56" />
+ <Patch name="F 057" hbank="0" lbank="5" prog="57" />
+ <Patch name="F 058" hbank="0" lbank="5" prog="58" />
+ <Patch name="F 059" hbank="0" lbank="5" prog="59" />
+ <Patch name="F 060" hbank="0" lbank="5" prog="60" />
+ <Patch name="F 061" hbank="0" lbank="5" prog="61" />
+ <Patch name="F 062" hbank="0" lbank="5" prog="62" />
+ <Patch name="F 063" hbank="0" lbank="5" prog="63" />
+ <Patch name="F 064" hbank="0" lbank="5" prog="64" />
+ <Patch name="F 065" hbank="0" lbank="5" prog="65" />
+ <Patch name="F 066" hbank="0" lbank="5" prog="66" />
+ <Patch name="F 067" hbank="0" lbank="5" prog="67" />
+ <Patch name="F 068" hbank="0" lbank="5" prog="68" />
+ <Patch name="F 069" hbank="0" lbank="5" prog="69" />
+ <Patch name="F 070" hbank="0" lbank="5" prog="70" />
+ <Patch name="F 071" hbank="0" lbank="5" prog="71" />
+ <Patch name="F 072" hbank="0" lbank="5" prog="72" />
+ <Patch name="F 073" hbank="0" lbank="5" prog="73" />
+ <Patch name="F 074" hbank="0" lbank="5" prog="74" />
+ <Patch name="F 075" hbank="0" lbank="5" prog="75" />
+ <Patch name="F 076" hbank="0" lbank="5" prog="76" />
+ <Patch name="F 077" hbank="0" lbank="5" prog="77" />
+ <Patch name="F 078" hbank="0" lbank="5" prog="78" />
+ <Patch name="F 079" hbank="0" lbank="5" prog="79" />
+ <Patch name="F 080" hbank="0" lbank="5" prog="80" />
+ <Patch name="F 081" hbank="0" lbank="5" prog="81" />
+ <Patch name="F 082" hbank="0" lbank="5" prog="82" />
+ <Patch name="F 083" hbank="0" lbank="5" prog="83" />
+ <Patch name="F 084" hbank="0" lbank="5" prog="84" />
+ <Patch name="F 085" hbank="0" lbank="5" prog="85" />
+ <Patch name="F 086" hbank="0" lbank="5" prog="86" />
+ <Patch name="F 087" hbank="0" lbank="5" prog="87" />
+ <Patch name="F 088" hbank="0" lbank="5" prog="88" />
+ <Patch name="F 089" hbank="0" lbank="5" prog="89" />
+ <Patch name="F 090" hbank="0" lbank="5" prog="90" />
+ <Patch name="F 091" hbank="0" lbank="5" prog="91" />
+ <Patch name="F 092" hbank="0" lbank="5" prog="92" />
+ <Patch name="F 093" hbank="0" lbank="5" prog="93" />
+ <Patch name="F 094" hbank="0" lbank="5" prog="94" />
+ <Patch name="F 095" hbank="0" lbank="5" prog="95" />
+ <Patch name="F 096" hbank="0" lbank="5" prog="96" />
+ <Patch name="F 097" hbank="0" lbank="5" prog="97" />
+ <Patch name="F 098" hbank="0" lbank="5" prog="98" />
+ <Patch name="F 099" hbank="0" lbank="5" prog="99" />
+ <Patch name="F 100" hbank="0" lbank="5" prog="100" />
+ <Patch name="F 101" hbank="0" lbank="5" prog="101" />
+ <Patch name="F 102" hbank="0" lbank="5" prog="102" />
+ <Patch name="F 103" hbank="0" lbank="5" prog="103" />
+ <Patch name="F 104" hbank="0" lbank="5" prog="104" />
+ <Patch name="F 105" hbank="0" lbank="5" prog="105" />
+ <Patch name="F 106" hbank="0" lbank="5" prog="106" />
+ <Patch name="F 107" hbank="0" lbank="5" prog="107" />
+ <Patch name="F 108" hbank="0" lbank="5" prog="108" />
+ <Patch name="F 109" hbank="0" lbank="5" prog="109" />
+ <Patch name="F 110" hbank="0" lbank="5" prog="110" />
+ <Patch name="F 111" hbank="0" lbank="5" prog="111" />
+ <Patch name="F 112" hbank="0" lbank="5" prog="112" />
+ <Patch name="F 113" hbank="0" lbank="5" prog="113" />
+ <Patch name="F 114" hbank="0" lbank="5" prog="114" />
+ <Patch name="F 115" hbank="0" lbank="5" prog="115" />
+ <Patch name="F 116" hbank="0" lbank="5" prog="116" />
+ <Patch name="F 117" hbank="0" lbank="5" prog="117" />
+ <Patch name="F 118" hbank="0" lbank="5" prog="118" />
+ <Patch name="F 119" hbank="0" lbank="5" prog="119" />
+ <Patch name="F 120" hbank="0" lbank="5" prog="120" />
+ <Patch name="F 121" hbank="0" lbank="5" prog="121" />
+ <Patch name="F 122" hbank="0" lbank="5" prog="122" />
+ <Patch name="F 123" hbank="0" lbank="5" prog="123" />
+ <Patch name="F 124" hbank="0" lbank="5" prog="124" />
+ <Patch name="F 125" hbank="0" lbank="5" prog="125" />
+ <Patch name="F 126" hbank="0" lbank="5" prog="126" />
+ <Patch name="F 127" hbank="0" lbank="5" prog="127" />
+ </PatchGroup>
+ <PatchGroup name="Bank G">
+ <Patch name="G 000" hbank="0" lbank="6" prog="0" />
+ <Patch name="G 001" hbank="0" lbank="6" prog="1" />
+ <Patch name="G 002" hbank="0" lbank="6" prog="2" />
+ <Patch name="G 003" hbank="0" lbank="6" prog="3" />
+ <Patch name="G 004" hbank="0" lbank="6" prog="4" />
+ <Patch name="G 005" hbank="0" lbank="6" prog="5" />
+ <Patch name="G 006" hbank="0" lbank="6" prog="6" />
+ <Patch name="G 007" hbank="0" lbank="6" prog="7" />
+ <Patch name="G 008" hbank="0" lbank="6" prog="8" />
+ <Patch name="G 009" hbank="0" lbank="6" prog="9" />
+ <Patch name="G 010" hbank="0" lbank="6" prog="10" />
+ <Patch name="G 011" hbank="0" lbank="6" prog="11" />
+ <Patch name="G 012" hbank="0" lbank="6" prog="12" />
+ <Patch name="G 013" hbank="0" lbank="6" prog="13" />
+ <Patch name="G 014" hbank="0" lbank="6" prog="14" />
+ <Patch name="G 015" hbank="0" lbank="6" prog="15" />
+ <Patch name="G 016" hbank="0" lbank="6" prog="16" />
+ <Patch name="G 017" hbank="0" lbank="6" prog="17" />
+ <Patch name="G 018" hbank="0" lbank="6" prog="18" />
+ <Patch name="G 019" hbank="0" lbank="6" prog="19" />
+ <Patch name="G 020" hbank="0" lbank="6" prog="20" />
+ <Patch name="G 021" hbank="0" lbank="6" prog="21" />
+ <Patch name="G 022" hbank="0" lbank="6" prog="22" />
+ <Patch name="G 023" hbank="0" lbank="6" prog="23" />
+ <Patch name="G 024" hbank="0" lbank="6" prog="24" />
+ <Patch name="G 025" hbank="0" lbank="6" prog="25" />
+ <Patch name="G 026" hbank="0" lbank="6" prog="26" />
+ <Patch name="G 027" hbank="0" lbank="6" prog="27" />
+ <Patch name="G 028" hbank="0" lbank="6" prog="28" />
+ <Patch name="G 029" hbank="0" lbank="6" prog="29" />
+ <Patch name="G 030" hbank="0" lbank="6" prog="30" />
+ <Patch name="G 031" hbank="0" lbank="6" prog="31" />
+ <Patch name="G 032" hbank="0" lbank="6" prog="32" />
+ <Patch name="G 033" hbank="0" lbank="6" prog="33" />
+ <Patch name="G 034" hbank="0" lbank="6" prog="34" />
+ <Patch name="G 035" hbank="0" lbank="6" prog="35" />
+ <Patch name="G 036" hbank="0" lbank="6" prog="36" />
+ <Patch name="G 037" hbank="0" lbank="6" prog="37" />
+ <Patch name="G 038" hbank="0" lbank="6" prog="38" />
+ <Patch name="G 039" hbank="0" lbank="6" prog="39" />
+ <Patch name="G 040" hbank="0" lbank="6" prog="40" />
+ <Patch name="G 041" hbank="0" lbank="6" prog="41" />
+ <Patch name="G 042" hbank="0" lbank="6" prog="42" />
+ <Patch name="G 043" hbank="0" lbank="6" prog="43" />
+ <Patch name="G 044" hbank="0" lbank="6" prog="44" />
+ <Patch name="G 045" hbank="0" lbank="6" prog="45" />
+ <Patch name="G 046" hbank="0" lbank="6" prog="46" />
+ <Patch name="G 047" hbank="0" lbank="6" prog="47" />
+ <Patch name="G 048" hbank="0" lbank="6" prog="48" />
+ <Patch name="G 049" hbank="0" lbank="6" prog="49" />
+ <Patch name="G 050" hbank="0" lbank="6" prog="50" />
+ <Patch name="G 051" hbank="0" lbank="6" prog="51" />
+ <Patch name="G 052" hbank="0" lbank="6" prog="52" />
+ <Patch name="G 053" hbank="0" lbank="6" prog="53" />
+ <Patch name="G 054" hbank="0" lbank="6" prog="54" />
+ <Patch name="G 055" hbank="0" lbank="6" prog="55" />
+ <Patch name="G 056" hbank="0" lbank="6" prog="56" />
+ <Patch name="G 057" hbank="0" lbank="6" prog="57" />
+ <Patch name="G 058" hbank="0" lbank="6" prog="58" />
+ <Patch name="G 059" hbank="0" lbank="6" prog="59" />
+ <Patch name="G 060" hbank="0" lbank="6" prog="60" />
+ <Patch name="G 061" hbank="0" lbank="6" prog="61" />
+ <Patch name="G 062" hbank="0" lbank="6" prog="62" />
+ <Patch name="G 063" hbank="0" lbank="6" prog="63" />
+ <Patch name="G 064" hbank="0" lbank="6" prog="64" />
+ <Patch name="G 065" hbank="0" lbank="6" prog="65" />
+ <Patch name="G 066" hbank="0" lbank="6" prog="66" />
+ <Patch name="G 067" hbank="0" lbank="6" prog="67" />
+ <Patch name="G 068" hbank="0" lbank="6" prog="68" />
+ <Patch name="G 069" hbank="0" lbank="6" prog="69" />
+ <Patch name="G 070" hbank="0" lbank="6" prog="70" />
+ <Patch name="G 071" hbank="0" lbank="6" prog="71" />
+ <Patch name="G 072" hbank="0" lbank="6" prog="72" />
+ <Patch name="G 073" hbank="0" lbank="6" prog="73" />
+ <Patch name="G 074" hbank="0" lbank="6" prog="74" />
+ <Patch name="G 075" hbank="0" lbank="6" prog="75" />
+ <Patch name="G 076" hbank="0" lbank="6" prog="76" />
+ <Patch name="G 077" hbank="0" lbank="6" prog="77" />
+ <Patch name="G 078" hbank="0" lbank="6" prog="78" />
+ <Patch name="G 079" hbank="0" lbank="6" prog="79" />
+ <Patch name="G 080" hbank="0" lbank="6" prog="80" />
+ <Patch name="G 081" hbank="0" lbank="6" prog="81" />
+ <Patch name="G 082" hbank="0" lbank="6" prog="82" />
+ <Patch name="G 083" hbank="0" lbank="6" prog="83" />
+ <Patch name="G 084" hbank="0" lbank="6" prog="84" />
+ <Patch name="G 085" hbank="0" lbank="6" prog="85" />
+ <Patch name="G 086" hbank="0" lbank="6" prog="86" />
+ <Patch name="G 087" hbank="0" lbank="6" prog="87" />
+ <Patch name="G 088" hbank="0" lbank="6" prog="88" />
+ <Patch name="G 089" hbank="0" lbank="6" prog="89" />
+ <Patch name="G 090" hbank="0" lbank="6" prog="90" />
+ <Patch name="G 091" hbank="0" lbank="6" prog="91" />
+ <Patch name="G 092" hbank="0" lbank="6" prog="92" />
+ <Patch name="G 093" hbank="0" lbank="6" prog="93" />
+ <Patch name="G 094" hbank="0" lbank="6" prog="94" />
+ <Patch name="G 095" hbank="0" lbank="6" prog="95" />
+ <Patch name="G 096" hbank="0" lbank="6" prog="96" />
+ <Patch name="G 097" hbank="0" lbank="6" prog="97" />
+ <Patch name="G 098" hbank="0" lbank="6" prog="98" />
+ <Patch name="G 099" hbank="0" lbank="6" prog="99" />
+ <Patch name="G 100" hbank="0" lbank="6" prog="100" />
+ <Patch name="G 101" hbank="0" lbank="6" prog="101" />
+ <Patch name="G 102" hbank="0" lbank="6" prog="102" />
+ <Patch name="G 103" hbank="0" lbank="6" prog="103" />
+ <Patch name="G 104" hbank="0" lbank="6" prog="104" />
+ <Patch name="G 105" hbank="0" lbank="6" prog="105" />
+ <Patch name="G 106" hbank="0" lbank="6" prog="106" />
+ <Patch name="G 107" hbank="0" lbank="6" prog="107" />
+ <Patch name="G 108" hbank="0" lbank="6" prog="108" />
+ <Patch name="G 109" hbank="0" lbank="6" prog="109" />
+ <Patch name="G 110" hbank="0" lbank="6" prog="110" />
+ <Patch name="G 111" hbank="0" lbank="6" prog="111" />
+ <Patch name="G 112" hbank="0" lbank="6" prog="112" />
+ <Patch name="G 113" hbank="0" lbank="6" prog="113" />
+ <Patch name="G 114" hbank="0" lbank="6" prog="114" />
+ <Patch name="G 115" hbank="0" lbank="6" prog="115" />
+ <Patch name="G 116" hbank="0" lbank="6" prog="116" />
+ <Patch name="G 117" hbank="0" lbank="6" prog="117" />
+ <Patch name="G 118" hbank="0" lbank="6" prog="118" />
+ <Patch name="G 119" hbank="0" lbank="6" prog="119" />
+ <Patch name="G 120" hbank="0" lbank="6" prog="120" />
+ <Patch name="G 121" hbank="0" lbank="6" prog="121" />
+ <Patch name="G 122" hbank="0" lbank="6" prog="122" />
+ <Patch name="G 123" hbank="0" lbank="6" prog="123" />
+ <Patch name="G 124" hbank="0" lbank="6" prog="124" />
+ <Patch name="G 125" hbank="0" lbank="6" prog="125" />
+ <Patch name="G 126" hbank="0" lbank="6" prog="126" />
+ <Patch name="G 127" hbank="0" lbank="6" prog="127" />
+ </PatchGroup>
+ <PatchGroup name="Bank H">
+ <Patch name="H 000" hbank="0" lbank="7" prog="0" />
+ <Patch name="H 001" hbank="0" lbank="7" prog="1" />
+ <Patch name="H 002" hbank="0" lbank="7" prog="2" />
+ <Patch name="H 003" hbank="0" lbank="7" prog="3" />
+ <Patch name="H 004" hbank="0" lbank="7" prog="4" />
+ <Patch name="H 005" hbank="0" lbank="7" prog="5" />
+ <Patch name="H 006" hbank="0" lbank="7" prog="6" />
+ <Patch name="H 007" hbank="0" lbank="7" prog="7" />
+ <Patch name="H 008" hbank="0" lbank="7" prog="8" />
+ <Patch name="H 009" hbank="0" lbank="7" prog="9" />
+ <Patch name="H 010" hbank="0" lbank="7" prog="10" />
+ <Patch name="H 011" hbank="0" lbank="7" prog="11" />
+ <Patch name="H 012" hbank="0" lbank="7" prog="12" />
+ <Patch name="H 013" hbank="0" lbank="7" prog="13" />
+ <Patch name="H 014" hbank="0" lbank="7" prog="14" />
+ <Patch name="H 015" hbank="0" lbank="7" prog="15" />
+ <Patch name="H 016" hbank="0" lbank="7" prog="16" />
+ <Patch name="H 017" hbank="0" lbank="7" prog="17" />
+ <Patch name="H 018" hbank="0" lbank="7" prog="18" />
+ <Patch name="H 019" hbank="0" lbank="7" prog="19" />
+ <Patch name="H 020" hbank="0" lbank="7" prog="20" />
+ <Patch name="H 021" hbank="0" lbank="7" prog="21" />
+ <Patch name="H 022" hbank="0" lbank="7" prog="22" />
+ <Patch name="H 023" hbank="0" lbank="7" prog="23" />
+ <Patch name="H 024" hbank="0" lbank="7" prog="24" />
+ <Patch name="H 025" hbank="0" lbank="7" prog="25" />
+ <Patch name="H 026" hbank="0" lbank="7" prog="26" />
+ <Patch name="H 027" hbank="0" lbank="7" prog="27" />
+ <Patch name="H 028" hbank="0" lbank="7" prog="28" />
+ <Patch name="H 029" hbank="0" lbank="7" prog="29" />
+ <Patch name="H 030" hbank="0" lbank="7" prog="30" />
+ <Patch name="H 031" hbank="0" lbank="7" prog="31" />
+ <Patch name="H 032" hbank="0" lbank="7" prog="32" />
+ <Patch name="H 033" hbank="0" lbank="7" prog="33" />
+ <Patch name="H 034" hbank="0" lbank="7" prog="34" />
+ <Patch name="H 035" hbank="0" lbank="7" prog="35" />
+ <Patch name="H 036" hbank="0" lbank="7" prog="36" />
+ <Patch name="H 037" hbank="0" lbank="7" prog="37" />
+ <Patch name="H 038" hbank="0" lbank="7" prog="38" />
+ <Patch name="H 039" hbank="0" lbank="7" prog="39" />
+ <Patch name="H 040" hbank="0" lbank="7" prog="40" />
+ <Patch name="H 041" hbank="0" lbank="7" prog="41" />
+ <Patch name="H 042" hbank="0" lbank="7" prog="42" />
+ <Patch name="H 043" hbank="0" lbank="7" prog="43" />
+ <Patch name="H 044" hbank="0" lbank="7" prog="44" />
+ <Patch name="H 045" hbank="0" lbank="7" prog="45" />
+ <Patch name="H 046" hbank="0" lbank="7" prog="46" />
+ <Patch name="H 047" hbank="0" lbank="7" prog="47" />
+ <Patch name="H 048" hbank="0" lbank="7" prog="48" />
+ <Patch name="H 049" hbank="0" lbank="7" prog="49" />
+ <Patch name="H 050" hbank="0" lbank="7" prog="50" />
+ <Patch name="H 051" hbank="0" lbank="7" prog="51" />
+ <Patch name="H 052" hbank="0" lbank="7" prog="52" />
+ <Patch name="H 053" hbank="0" lbank="7" prog="53" />
+ <Patch name="H 054" hbank="0" lbank="7" prog="54" />
+ <Patch name="H 055" hbank="0" lbank="7" prog="55" />
+ <Patch name="H 056" hbank="0" lbank="7" prog="56" />
+ <Patch name="H 057" hbank="0" lbank="7" prog="57" />
+ <Patch name="H 058" hbank="0" lbank="7" prog="58" />
+ <Patch name="H 059" hbank="0" lbank="7" prog="59" />
+ <Patch name="H 060" hbank="0" lbank="7" prog="60" />
+ <Patch name="H 061" hbank="0" lbank="7" prog="61" />
+ <Patch name="H 062" hbank="0" lbank="7" prog="62" />
+ <Patch name="H 063" hbank="0" lbank="7" prog="63" />
+ <Patch name="H 064" hbank="0" lbank="7" prog="64" />
+ <Patch name="H 065" hbank="0" lbank="7" prog="65" />
+ <Patch name="H 066" hbank="0" lbank="7" prog="66" />
+ <Patch name="H 067" hbank="0" lbank="7" prog="67" />
+ <Patch name="H 068" hbank="0" lbank="7" prog="68" />
+ <Patch name="H 069" hbank="0" lbank="7" prog="69" />
+ <Patch name="H 070" hbank="0" lbank="7" prog="70" />
+ <Patch name="H 071" hbank="0" lbank="7" prog="71" />
+ <Patch name="H 072" hbank="0" lbank="7" prog="72" />
+ <Patch name="H 073" hbank="0" lbank="7" prog="73" />
+ <Patch name="H 074" hbank="0" lbank="7" prog="74" />
+ <Patch name="H 075" hbank="0" lbank="7" prog="75" />
+ <Patch name="H 076" hbank="0" lbank="7" prog="76" />
+ <Patch name="H 077" hbank="0" lbank="7" prog="77" />
+ <Patch name="H 078" hbank="0" lbank="7" prog="78" />
+ <Patch name="H 079" hbank="0" lbank="7" prog="79" />
+ <Patch name="H 080" hbank="0" lbank="7" prog="80" />
+ <Patch name="H 081" hbank="0" lbank="7" prog="81" />
+ <Patch name="H 082" hbank="0" lbank="7" prog="82" />
+ <Patch name="H 083" hbank="0" lbank="7" prog="83" />
+ <Patch name="H 084" hbank="0" lbank="7" prog="84" />
+ <Patch name="H 085" hbank="0" lbank="7" prog="85" />
+ <Patch name="H 086" hbank="0" lbank="7" prog="86" />
+ <Patch name="H 087" hbank="0" lbank="7" prog="87" />
+ <Patch name="H 088" hbank="0" lbank="7" prog="88" />
+ <Patch name="H 089" hbank="0" lbank="7" prog="89" />
+ <Patch name="H 090" hbank="0" lbank="7" prog="90" />
+ <Patch name="H 091" hbank="0" lbank="7" prog="91" />
+ <Patch name="H 092" hbank="0" lbank="7" prog="92" />
+ <Patch name="H 093" hbank="0" lbank="7" prog="93" />
+ <Patch name="H 094" hbank="0" lbank="7" prog="94" />
+ <Patch name="H 095" hbank="0" lbank="7" prog="95" />
+ <Patch name="H 096" hbank="0" lbank="7" prog="96" />
+ <Patch name="H 097" hbank="0" lbank="7" prog="97" />
+ <Patch name="H 098" hbank="0" lbank="7" prog="98" />
+ <Patch name="H 099" hbank="0" lbank="7" prog="99" />
+ <Patch name="H 100" hbank="0" lbank="7" prog="100" />
+ <Patch name="H 101" hbank="0" lbank="7" prog="101" />
+ <Patch name="H 102" hbank="0" lbank="7" prog="102" />
+ <Patch name="H 103" hbank="0" lbank="7" prog="103" />
+ <Patch name="H 104" hbank="0" lbank="7" prog="104" />
+ <Patch name="H 105" hbank="0" lbank="7" prog="105" />
+ <Patch name="H 106" hbank="0" lbank="7" prog="106" />
+ <Patch name="H 107" hbank="0" lbank="7" prog="107" />
+ <Patch name="H 108" hbank="0" lbank="7" prog="108" />
+ <Patch name="H 109" hbank="0" lbank="7" prog="109" />
+ <Patch name="H 110" hbank="0" lbank="7" prog="110" />
+ <Patch name="H 111" hbank="0" lbank="7" prog="111" />
+ <Patch name="H 112" hbank="0" lbank="7" prog="112" />
+ <Patch name="H 113" hbank="0" lbank="7" prog="113" />
+ <Patch name="H 114" hbank="0" lbank="7" prog="114" />
+ <Patch name="H 115" hbank="0" lbank="7" prog="115" />
+ <Patch name="H 116" hbank="0" lbank="7" prog="116" />
+ <Patch name="H 117" hbank="0" lbank="7" prog="117" />
+ <Patch name="H 118" hbank="0" lbank="7" prog="118" />
+ <Patch name="H 119" hbank="0" lbank="7" prog="119" />
+ <Patch name="H 120" hbank="0" lbank="7" prog="120" />
+ <Patch name="H 121" hbank="0" lbank="7" prog="121" />
+ <Patch name="H 122" hbank="0" lbank="7" prog="122" />
+ <Patch name="H 123" hbank="0" lbank="7" prog="123" />
+ <Patch name="H 124" hbank="0" lbank="7" prog="124" />
+ <Patch name="H 125" hbank="0" lbank="7" prog="125" />
+ <Patch name="H 126" hbank="0" lbank="7" prog="126" />
+ <Patch name="H 127" hbank="0" lbank="7" prog="127" />
+ </PatchGroup>
+ <Controller name="Program" type="Program" init="0x0" />
+ </MidiInstrument>
+</muse>
diff --git a/muse2/share/instruments/Akai-SG01v.idf b/muse2/share/instruments/Akai-SG01v.idf
new file mode 100644
index 00000000..7c41b429
--- /dev/null
+++ b/muse2/share/instruments/Akai-SG01v.idf
@@ -0,0 +1,282 @@
+<?xml version="1.0"?>
+<muse version="1.0">
+ <MidiInstrument name="Akai SG01v">
+ <PatchGroup name="Bank 00">
+ <Patch name="MEGA BRASS" hbank="0" lbank="0" prog="0" />
+ <Patch name="SWEEP #1" hbank="0" lbank="0" prog="1" />
+ <Patch name="KILLER STR" hbank="0" lbank="0" prog="2" />
+ <Patch name="HP SWEEP" hbank="0" lbank="0" prog="3" />
+ <Patch name="SILKY STRING" hbank="0" lbank="0" prog="4" />
+ <Patch name="BIG PAD SWP" hbank="0" lbank="0" prog="5" />
+ <Patch name="MILD BRASS" hbank="0" lbank="0" prog="6" />
+ <Patch name="BAND PASSING" hbank="0" lbank="0" prog="7" />
+ <Patch name="OUTER LIMITS" hbank="0" lbank="0" prog="8" />
+ <Patch name="DRAMA" hbank="0" lbank="0" prog="9" />
+ <Patch name="FEED BACK" hbank="0" lbank="0" prog="10" />
+ <Patch name="P-EVIL-666 MW" hbank="0" lbank="0" prog="11" />
+ <Patch name="BIG FIFTH" hbank="0" lbank="0" prog="12" />
+ <Patch name="REZOSWEEP#1" hbank="0" lbank="0" prog="13" />
+ <Patch name="BIGSYNTH#1" hbank="0" lbank="0" prog="14" />
+ <Patch name="LFO FLTSWP#1" hbank="0" lbank="0" prog="15" />
+ <Patch name="REZON 8 SWP" hbank="0" lbank="0" prog="16" />
+ <Patch name="SEQ BUZZ" hbank="0" lbank="0" prog="17" />
+ <Patch name="TRILL-PAD#1" hbank="0" lbank="0" prog="18" />
+ <Patch name="JX3P-POLARIS" hbank="0" lbank="0" prog="19" />
+ <Patch name="SNAP BASS" hbank="0" lbank="0" prog="20" />
+ <Patch name="3 OCTV BASS" hbank="0" lbank="0" prog="21" />
+ <Patch name="KUBOTA BASS" hbank="0" lbank="0" prog="22" />
+ <Patch name="SQUIDGY BASS" hbank="0" lbank="0" prog="23" />
+ <Patch name="OCTAVE BASS" hbank="0" lbank="0" prog="24" />
+ <Patch name="SYNC BASS#1" hbank="0" lbank="0" prog="25" />
+ <Patch name="STEREO BASS" hbank="0" lbank="0" prog="26" />
+ <Patch name="REZ BASS" hbank="0" lbank="0" prog="27" />
+ <Patch name="BUBBLEBASS" hbank="0" lbank="0" prog="28" />
+ <Patch name="JUNORGBASS" hbank="0" lbank="0" prog="29" />
+ <Patch name="AN BIGBASS#1" hbank="0" lbank="0" prog="30" />
+ <Patch name="MM BASS#1" hbank="0" lbank="0" prog="31" />
+ <Patch name="MM BASS#2" hbank="0" lbank="0" prog="32" />
+ <Patch name="MM BASS#3" hbank="0" lbank="0" prog="33" />
+ <Patch name="MM BASS#4" hbank="0" lbank="0" prog="34" />
+ <Patch name="BASS #1" hbank="0" lbank="0" prog="35" />
+ <Patch name="BASS #2" hbank="0" lbank="0" prog="36" />
+ <Patch name="BASS #3" hbank="0" lbank="0" prog="37" />
+ <Patch name="BASS #4" hbank="0" lbank="0" prog="38" />
+ <Patch name="BASS #5" hbank="0" lbank="0" prog="39" />
+ <Patch name="STACK EPF#1" hbank="0" lbank="0" prog="40" />
+ <Patch name="DX EPF#1" hbank="0" lbank="0" prog="41" />
+ <Patch name="DX EPF#2" hbank="0" lbank="0" prog="42" />
+ <Patch name="LA E.PNO#1" hbank="0" lbank="0" prog="43" />
+ <Patch name="WIRE E.PNO" hbank="0" lbank="0" prog="44" />
+ <Patch name="D6 CLAV" hbank="0" lbank="0" prog="45" />
+ <Patch name="MUTED CLAV" hbank="0" lbank="0" prog="46" />
+ <Patch name="HYPER CLAV" hbank="0" lbank="0" prog="47" />
+ <Patch name="MXR100 CLAV" hbank="0" lbank="0" prog="48" />
+ <Patch name="CLAV #1" hbank="0" lbank="0" prog="49" />
+ <Patch name="P5 + SOLENA" hbank="0" lbank="0" prog="50" />
+ <Patch name="PADDING" hbank="0" lbank="0" prog="51" />
+ <Patch name="DELICATE PAD" hbank="0" lbank="0" prog="52" />
+ <Patch name="HI STR SYN#1" hbank="0" lbank="0" prog="53" />
+ <Patch name="PEEPEEGEE PAD" hbank="0" lbank="0" prog="54" />
+ <Patch name="WARM PAD" hbank="0" lbank="0" prog="55" />
+ <Patch name="SQUARE PAD" hbank="0" lbank="0" prog="56" />
+ <Patch name="SAWTOOTH PAD" hbank="0" lbank="0" prog="57" />
+ <Patch name="WARM FILTPAD" hbank="0" lbank="0" prog="58" />
+ <Patch name="JUNO PAD" hbank="0" lbank="0" prog="59" />
+ <Patch name="OBIE X PAD" hbank="0" lbank="0" prog="60" />
+ <Patch name="STACK PAD" hbank="0" lbank="0" prog="61" />
+ <Patch name="WIDE SAWPAD" hbank="0" lbank="0" prog="62" />
+ <Patch name="MATRIX PAD" hbank="0" lbank="0" prog="63" />
+ <Patch name="GLISTEN PAD" hbank="0" lbank="0" prog="64" />
+ <Patch name="MOOGY PAD" hbank="0" lbank="0" prog="65" />
+ <Patch name="PULSE PAD" hbank="0" lbank="0" prog="66" />
+ <Patch name="PROFIT PAD" hbank="0" lbank="0" prog="67" />
+ <Patch name="PPG ANALOGUE" hbank="0" lbank="0" prog="68" />
+ <Patch name="BELL PAD" hbank="0" lbank="0" prog="69" />
+ <Patch name="PPG CHIMES" hbank="0" lbank="0" prog="70" />
+ <Patch name="PPG STING" hbank="0" lbank="0" prog="71" />
+ <Patch name="CLASSIC PPG 1" hbank="0" lbank="0" prog="72" />
+ <Patch name="CLASSIC PPG 2" hbank="0" lbank="0" prog="73" />
+ <Patch name="CLASSIC PPG 4" hbank="0" lbank="0" prog="74" />
+ <Patch name="PPG TINGLE" hbank="0" lbank="0" prog="75" />
+ <Patch name="PPG PERC VOX" hbank="0" lbank="0" prog="76" />
+ <Patch name="PPG VOCALISE" hbank="0" lbank="0" prog="77" />
+ <Patch name="PPG CELESTE" hbank="0" lbank="0" prog="78" />
+ <Patch name="PPG BRITTLE" hbank="0" lbank="0" prog="79" />
+ <Patch name="SYNBRASS#1" hbank="0" lbank="0" prog="80" />
+ <Patch name="ANA BRASS2" hbank="0" lbank="0" prog="81" />
+ <Patch name="SFT BRASS2" hbank="0" lbank="0" prog="82" />
+ <Patch name="SOFT BRASS3" hbank="0" lbank="0" prog="83" />
+ <Patch name="OPEN SAWS" hbank="0" lbank="0" prog="84" />
+ <Patch name="TRANCER BRS" hbank="0" lbank="0" prog="85" />
+ <Patch name="ANA BRASS1" hbank="0" lbank="0" prog="86" />
+ <Patch name="EG BRASS #1" hbank="0" lbank="0" prog="87" />
+ <Patch name="AFT BRASS" hbank="0" lbank="0" prog="88" />
+ <Patch name="SOFT BRASS" hbank="0" lbank="0" prog="89" />
+ <Patch name="STACK ORGAN" hbank="0" lbank="0" prog="90" />
+ <Patch name="ORGAN#1" hbank="0" lbank="0" prog="91" />
+ <Patch name="ORGAN JVT" hbank="0" lbank="0" prog="92" />
+ <Patch name="FULL PIPES" hbank="0" lbank="0" prog="93" />
+ <Patch name="MWHL LESLIE1" hbank="0" lbank="0" prog="94" />
+ <Patch name="MWHL LESLIE2" hbank="0" lbank="0" prog="95" />
+ <Patch name="5TH ORGAN" hbank="0" lbank="0" prog="96" />
+ <Patch name="CHURCH ORGAN" hbank="0" lbank="0" prog="97" />
+ <Patch name="CLICKY ORGAN" hbank="0" lbank="0" prog="98" />
+ <Patch name="PHASEY ORGAN" hbank="0" lbank="0" prog="99" />
+ <Patch name="VP330+SELINA" hbank="0" lbank="0" prog="100" />
+ <Patch name="REAL ARP ENS" hbank="0" lbank="0" prog="101" />
+ <Patch name="HARD STR SYN" hbank="0" lbank="0" prog="102" />
+ <Patch name="PHASE STRSYN" hbank="0" lbank="0" prog="103" />
+ <Patch name="RHAPSODY STR" hbank="0" lbank="0" prog="104" />
+ <Patch name="SOFT SERINA" hbank="0" lbank="0" prog="105" />
+ <Patch name="OCTV SERINA" hbank="0" lbank="0" prog="106" />
+ <Patch name="STEREO ENSMB" hbank="0" lbank="0" prog="107" />
+ <Patch name="P5+STR SYNTH" hbank="0" lbank="0" prog="108" />
+ <Patch name="OMNI STRINGS" hbank="0" lbank="0" prog="109" />
+ <Patch name="FUNK LEAD1" hbank="0" lbank="0" prog="110" />
+ <Patch name="LEAD LINE#1" hbank="0" lbank="0" prog="111" />
+ <Patch name="LEAD LINE#2" hbank="0" lbank="0" prog="112" />
+ <Patch name="LEAD LINE#3" hbank="0" lbank="0" prog="113" />
+ <Patch name="FLUTEY" hbank="0" lbank="0" prog="114" />
+ <Patch name="PULSE LEAD" hbank="0" lbank="0" prog="115" />
+ <Patch name="PORTASYNC" hbank="0" lbank="0" prog="116" />
+ <Patch name="FIFTH SYNC#1" hbank="0" lbank="0" prog="117" />
+ <Patch name="VELO GLIDE#1" hbank="0" lbank="0" prog="118" />
+ <Patch name="THICK LEAD" hbank="0" lbank="0" prog="119" />
+ <Patch name="HOWELLING" hbank="0" lbank="0" prog="120" />
+ <Patch name="NOISE BURST" hbank="0" lbank="0" prog="121" />
+ <Patch name="TUNED NOISE" hbank="0" lbank="0" prog="122" />
+ <Patch name="COMPUTER SH1" hbank="0" lbank="0" prog="123" />
+ <Patch name="COMPUBLEEP" hbank="0" lbank="0" prog="124" />
+ <Patch name="SPACE BELL" hbank="0" lbank="0" prog="125" />
+ <Patch name="TOTALLY RANDM" hbank="0" lbank="0" prog="126" />
+ <Patch name="SFX PAN" hbank="0" lbank="0" prog="127" />
+ </PatchGroup>
+ <PatchGroup name="Bank 01">
+ <Patch name="SWEEP#2" hbank="1" lbank="0" prog="0" />
+ <Patch name="MYSTIX PAD 1" hbank="1" lbank="0" prog="1" />
+ <Patch name="MYSTIX PAD 2" hbank="1" lbank="0" prog="2" />
+ <Patch name="SQUARE WOW" hbank="1" lbank="0" prog="3" />
+ <Patch name="EASTERN MOON" hbank="1" lbank="0" prog="4" />
+ <Patch name="SQUARE SWELL" hbank="1" lbank="0" prog="5" />
+ <Patch name="HARPISH#1" hbank="1" lbank="0" prog="6" />
+ <Patch name="INVERT FILT1" hbank="1" lbank="0" prog="7" />
+ <Patch name="JUNOTRANCER1" hbank="1" lbank="0" prog="8" />
+ <Patch name="EPIC SYNTH#1" hbank="1" lbank="0" prog="9" />
+ <Patch name="JUNOTRANCER2" hbank="1" lbank="0" prog="10" />
+ <Patch name="TOUCH SYN#1" hbank="1" lbank="0" prog="11" />
+ <Patch name="KILLER STING" hbank="1" lbank="0" prog="12" />
+ <Patch name="JUNOTRANCER3" hbank="1" lbank="0" prog="13" />
+ <Patch name="DET SYNTH" hbank="1" lbank="0" prog="14" />
+ <Patch name="JMJ POLYSYN" hbank="1" lbank="0" prog="15" />
+ <Patch name="M500SYNTH1MW" hbank="1" lbank="0" prog="16" />
+ <Patch name="FLATMAN+REZ" hbank="1" lbank="0" prog="17" />
+ <Patch name="PERC SYNTH" hbank="1" lbank="0" prog="18" />
+ <Patch name="ATTACK SYNTH" hbank="1" lbank="0" prog="19" />
+ <Patch name="FUNK BASS" hbank="1" lbank="0" prog="20" />
+ <Patch name="RUBBER BASS" hbank="1" lbank="0" prog="21" />
+ <Patch name="BASSOMATIX" hbank="1" lbank="0" prog="22" />
+ <Patch name="STACK BASS" hbank="1" lbank="0" prog="23" />
+ <Patch name="BASSOLOGY" hbank="1" lbank="0" prog="24" />
+ <Patch name="SWEEP BASS" hbank="1" lbank="0" prog="25" />
+ <Patch name="KNOCK BASS" hbank="1" lbank="0" prog="26" />
+ <Patch name="TB303 #1" hbank="1" lbank="0" prog="27" />
+ <Patch name="TB303 #2" hbank="1" lbank="0" prog="28" />
+ <Patch name="BASS#6" hbank="1" lbank="0" prog="29" />
+ <Patch name="BASS#7" hbank="1" lbank="0" prog="30" />
+ <Patch name="BASS#9" hbank="1" lbank="0" prog="31" />
+ <Patch name="BASS#10" hbank="1" lbank="0" prog="32" />
+ <Patch name="MM BASS#6" hbank="1" lbank="0" prog="33" />
+ <Patch name="MM BASS#7" hbank="1" lbank="0" prog="34" />
+ <Patch name="MM BASS#9" hbank="1" lbank="0" prog="35" />
+ <Patch name="MM BASS#10" hbank="1" lbank="0" prog="36" />
+ <Patch name="MM BASS#11" hbank="1" lbank="0" prog="37" />
+ <Patch name="MM BASS#12" hbank="1" lbank="0" prog="38" />
+ <Patch name="KIMINIAITAI" hbank="1" lbank="0" prog="39" />
+ <Patch name="FM E.PF" hbank="1" lbank="0" prog="40" />
+ <Patch name="SIMPLE DX EP" hbank="1" lbank="0" prog="41" />
+ <Patch name="STACK EPF#2" hbank="1" lbank="0" prog="42" />
+ <Patch name="STACK EPF#3" hbank="1" lbank="0" prog="43" />
+ <Patch name="E.PIANORGAN" hbank="1" lbank="0" prog="44" />
+ <Patch name="SFT CLAV" hbank="1" lbank="0" prog="45" />
+ <Patch name="ANA CLAV 3" hbank="1" lbank="0" prog="46" />
+ <Patch name="CLAVISYNTH1" hbank="1" lbank="0" prog="47" />
+ <Patch name="THINCLAVIER" hbank="1" lbank="0" prog="48" />
+ <Patch name="HARPSICHORD" hbank="1" lbank="0" prog="49" />
+ <Patch name="EPF STRPAD" hbank="1" lbank="0" prog="50" />
+ <Patch name="THICK PWM" hbank="1" lbank="0" prog="51" />
+ <Patch name="BUBBLEPAD" hbank="1" lbank="0" prog="52" />
+ <Patch name="KILLER PAD" hbank="1" lbank="0" prog="53" />
+ <Patch name="BELL STRINGS" hbank="1" lbank="0" prog="54" />
+ <Patch name="DETUNE PAD" hbank="1" lbank="0" prog="55" />
+ <Patch name="SMORKY PAD" hbank="1" lbank="0" prog="56" />
+ <Patch name="CRYSTAL-PAD" hbank="1" lbank="0" prog="57" />
+ <Patch name="THICK PAD#1" hbank="1" lbank="0" prog="58" />
+ <Patch name="TOMITA STR" hbank="1" lbank="0" prog="59" />
+ <Patch name="PWM PAD#1" hbank="1" lbank="0" prog="60" />
+ <Patch name="SMOOTH PAD#1" hbank="1" lbank="0" prog="61" />
+ <Patch name="DARK PAD#1" hbank="1" lbank="0" prog="62" />
+ <Patch name="MELLOWNESS" hbank="1" lbank="0" prog="63" />
+ <Patch name="CHIFF PAD" hbank="1" lbank="0" prog="64" />
+ <Patch name="SMOOOOTH" hbank="1" lbank="0" prog="65" />
+ <Patch name="PORY MOGUE" hbank="1" lbank="0" prog="66" />
+ <Patch name="ALMOST VOCAL" hbank="1" lbank="0" prog="67" />
+ <Patch name="ROUND PAD" hbank="1" lbank="0" prog="68" />
+ <Patch name="SO MELLOW" hbank="1" lbank="0" prog="69" />
+ <Patch name="SPIKE BASS" hbank="1" lbank="0" prog="70" />
+ <Patch name="PPG+ANLGBASS" hbank="1" lbank="0" prog="71" />
+ <Patch name="PPG TINGBASS" hbank="1" lbank="0" prog="72" />
+ <Patch name="PPG BASS#1" hbank="1" lbank="0" prog="73" />
+ <Patch name="METAL BASS" hbank="1" lbank="0" prog="74" />
+ <Patch name="PPG BASS#2" hbank="1" lbank="0" prog="75" />
+ <Patch name="FM BASS #1" hbank="1" lbank="0" prog="76" />
+ <Patch name="FM BASS #2" hbank="1" lbank="0" prog="77" />
+ <Patch name="FM BASS #3" hbank="1" lbank="0" prog="78" />
+ <Patch name="FM BASS #4" hbank="1" lbank="0" prog="79" />
+ <Patch name="ANA BRASS1" hbank="1" lbank="0" prog="80" />
+ <Patch name="FUZZ BRASS" hbank="1" lbank="0" prog="81" />
+ <Patch name="SYNBRASS#2" hbank="1" lbank="0" prog="82" />
+ <Patch name="BRASSY PAD" hbank="1" lbank="0" prog="83" />
+ <Patch name="SQUARE BRASS" hbank="1" lbank="0" prog="84" />
+ <Patch name="WOW BRASS" hbank="1" lbank="0" prog="85" />
+ <Patch name="SWELL BRASS" hbank="1" lbank="0" prog="86" />
+ <Patch name="DUCK BRASS" hbank="1" lbank="0" prog="87" />
+ <Patch name="SOFT BRASS#2" hbank="1" lbank="0" prog="88" />
+ <Patch name="MONSTER BRAS" hbank="1" lbank="0" prog="89" />
+ <Patch name="BELLS #1" hbank="1" lbank="0" prog="90" />
+ <Patch name="BELL#2" hbank="1" lbank="0" prog="91" />
+ <Patch name="BELL#1" hbank="1" lbank="0" prog="92" />
+ <Patch name="MAGIC BELLS" hbank="1" lbank="0" prog="93" />
+ <Patch name="NIHON BELL" hbank="1" lbank="0" prog="94" />
+ <Patch name="ORIENTL BELL" hbank="1" lbank="0" prog="95" />
+ <Patch name="SLOWBELL PAN" hbank="1" lbank="0" prog="96" />
+ <Patch name="SMALL BELL" hbank="1" lbank="0" prog="97" />
+ <Patch name="BIG BELL" hbank="1" lbank="0" prog="98" />
+ <Patch name="HOLD THE KEY" hbank="1" lbank="0" prog="99" />
+ <Patch name="TOMITA VOX1" hbank="1" lbank="0" prog="100" />
+ <Patch name="VOX HUMANA" hbank="1" lbank="0" prog="101" />
+ <Patch name="VOXY#1" hbank="1" lbank="0" prog="102" />
+ <Patch name="CELEST VOX1" hbank="1" lbank="0" prog="103" />
+ <Patch name="VOICES #1" hbank="1" lbank="0" prog="104" />
+ <Patch name="SOLO SOPRANO" hbank="1" lbank="0" prog="105" />
+ <Patch name="ANALOGUE VOX" hbank="1" lbank="0" prog="106" />
+ <Patch name="EERY VOX PAD" hbank="1" lbank="0" prog="107" />
+ <Patch name="VOXY PPG" hbank="1" lbank="0" prog="108" />
+ <Patch name="VOICE STACK" hbank="1" lbank="0" prog="109" />
+ <Patch name="THICK LEAD #2" hbank="1" lbank="0" prog="110" />
+ <Patch name="ANA WHISTLE" hbank="1" lbank="0" prog="111" />
+ <Patch name="POWER LEAD" hbank="1" lbank="0" prog="112" />
+ <Patch name="ONDES MARTIN" hbank="1" lbank="0" prog="113" />
+ <Patch name="HAMMER LEAD" hbank="1" lbank="0" prog="114" />
+ <Patch name="SOFT MOGUE" hbank="1" lbank="0" prog="115" />
+ <Patch name="PLAIN LEAD" hbank="1" lbank="0" prog="116" />
+ <Patch name="AWAKE MAN" hbank="1" lbank="0" prog="117" />
+ <Patch name="PORTALEAD" hbank="1" lbank="0" prog="118" />
+ <Patch name="SEXY LEAD" hbank="1" lbank="0" prog="119" />
+ <Patch name="SAMPLE+HOLD" hbank="1" lbank="0" prog="120" />
+ <Patch name="SWEEP STORM" hbank="1" lbank="0" prog="121" />
+ <Patch name="MISTY STORM" hbank="1" lbank="0" prog="122" />
+ <Patch name="ALLEATORIC" hbank="1" lbank="0" prog="123" />
+ <Patch name="FLANGED NOIZ" hbank="1" lbank="0" prog="124" />
+ <Patch name="VCS SWEEP #1" hbank="1" lbank="0" prog="125" />
+ <Patch name="S+H DRONE MW" hbank="1" lbank="0" prog="126" />
+ <Patch name="EXPLOSION" hbank="1" lbank="0" prog="127" />
+ </PatchGroup>
+ <PatchGroup name="Bank D (Ch 10)">
+ <Patch name="Drum Set 1" hbank="0" lbank="0" prog="0" />
+ <Patch name="Drum Set 2" hbank="0" lbank="0" prog="1" />
+ </PatchGroup>
+ <Controller name="Modulation" l="1" />
+ <Controller name="PortamentoTime" l="5" />
+ <Controller name="Volume" l="7" init="100" />
+ <Controller name="Pan" l="10" min="-64" max="63" init="0" />
+ <Controller name="Expression" l="11" init="127" />
+ <Controller name="GenericControl1" l="16" init="64" />
+ <Controller name="GenericControl2" l="17" init="64" />
+ <Controller name="GenericControl3" l="18" init="64" />
+ <Controller name="SustainPedal" l="64" />
+ <Controller name="PortamentPedal" l="65" />
+ <Controller name="SostenutoPedal" l="66" />
+ <Controller name="SoftPedal" l="67" />
+ <Controller name="Program" type="Program" />
+ </MidiInstrument>
+</muse>
diff --git a/muse2/share/instruments/Alesis-QS-78R.idf b/muse2/share/instruments/Alesis-QS-78R.idf
new file mode 100644
index 00000000..303d99d5
--- /dev/null
+++ b/muse2/share/instruments/Alesis-QS-78R.idf
@@ -0,0 +1,674 @@
+<?xml version="1.0"?>
+<muse version="1.0">
+ <MidiInstrument name="Alesis QS7, QS8 &amp; QSR">
+ <PatchGroup name="General Midi">
+ <Patch name="Acoustic Grand Piano" hbank="4" lbank="32" prog="0" />
+ <Patch name="Bright Acoustic Piano" hbank="4" lbank="32" prog="1" />
+ <Patch name="Electric Grand Piano" hbank="4" lbank="32" prog="2" />
+ <Patch name="Honky-tonk Piano" hbank="4" lbank="32" prog="3" />
+ <Patch name="Electric Piano 1" hbank="4" lbank="32" prog="4" />
+ <Patch name="Electric Piano 2" hbank="4" lbank="32" prog="5" />
+ <Patch name="Harpsichord" hbank="4" lbank="32" prog="6" />
+ <Patch name="Clavi" hbank="4" lbank="32" prog="7" />
+ <Patch name="Celesta" hbank="4" lbank="32" prog="8" />
+ <Patch name="Glockenspiel" hbank="4" lbank="32" prog="9" />
+ <Patch name="Music Box" hbank="4" lbank="32" prog="10" />
+ <Patch name="Vibraphone" hbank="4" lbank="32" prog="11" />
+ <Patch name="Marimba" hbank="4" lbank="32" prog="12" />
+ <Patch name="Xylophone" hbank="4" lbank="32" prog="13" />
+ <Patch name="Tubular Bells" hbank="4" lbank="32" prog="14" />
+ <Patch name="Dulcimer" hbank="4" lbank="32" prog="15" />
+ <Patch name="Drawbar Organ" hbank="4" lbank="32" prog="16" />
+ <Patch name="Percussive Organ" hbank="4" lbank="32" prog="17" />
+ <Patch name="Rock Organ" hbank="4" lbank="32" prog="18" />
+ <Patch name="Church Organ" hbank="4" lbank="32" prog="19" />
+ <Patch name="Reed Organ" hbank="4" lbank="32" prog="20" />
+ <Patch name="Accordion" hbank="4" lbank="32" prog="21" />
+ <Patch name="Harmonica" hbank="4" lbank="32" prog="22" />
+ <Patch name="Tango Accordion" hbank="4" lbank="32" prog="23" />
+ <Patch name="Acoustic Guitar (nylon)" hbank="4" lbank="32" prog="24" />
+ <Patch name="Acoustic Guitar (steel)" hbank="4" lbank="32" prog="25" />
+ <Patch name="Electric Guitar (jazz)" hbank="4" lbank="32" prog="26" />
+ <Patch name="Electric Guitar (clean)" hbank="4" lbank="32" prog="27" />
+ <Patch name="Electric Guitar (muted)" hbank="4" lbank="32" prog="28" />
+ <Patch name="Overdriven Guitar" hbank="4" lbank="32" prog="29" />
+ <Patch name="Distortion Guitar" hbank="4" lbank="32" prog="30" />
+ <Patch name="Guitar harmonics" hbank="4" lbank="32" prog="31" />
+ <Patch name="Acoustic Bass" hbank="4" lbank="32" prog="32" />
+ <Patch name="Fingered Bass" hbank="4" lbank="32" prog="33" />
+ <Patch name="Picked Bass" hbank="4" lbank="32" prog="34" />
+ <Patch name="Fretless Bass" hbank="4" lbank="32" prog="35" />
+ <Patch name="Slap Bass 1" hbank="4" lbank="32" prog="36" />
+ <Patch name="Slap Bass 2" hbank="4" lbank="32" prog="37" />
+ <Patch name="Synth Bass 1" hbank="4" lbank="32" prog="38" />
+ <Patch name="Synth Bass 2" hbank="4" lbank="32" prog="39" />
+ <Patch name="Violin" hbank="4" lbank="32" prog="40" />
+ <Patch name="Viola" hbank="4" lbank="32" prog="41" />
+ <Patch name="Cello" hbank="4" lbank="32" prog="42" />
+ <Patch name="Contrabass" hbank="4" lbank="32" prog="43" />
+ <Patch name="Tremolo Strings" hbank="4" lbank="32" prog="44" />
+ <Patch name="Pizzicato Strings" hbank="4" lbank="32" prog="45" />
+ <Patch name="Orchestral Harp" hbank="4" lbank="32" prog="46" />
+ <Patch name="Timpani" hbank="4" lbank="32" prog="47" />
+ <Patch name="String Ensemble 1" hbank="4" lbank="32" prog="48" />
+ <Patch name="String Ensemble 2" hbank="4" lbank="32" prog="49" />
+ <Patch name="SynthStrings 1" hbank="4" lbank="32" prog="50" />
+ <Patch name="SynthStrings 2" hbank="4" lbank="32" prog="51" />
+ <Patch name="Choir Aahs" hbank="4" lbank="32" prog="52" />
+ <Patch name="Voice Oohs" hbank="4" lbank="32" prog="53" />
+ <Patch name="Synth Voice" hbank="4" lbank="32" prog="54" />
+ <Patch name="Orchestra Hit" hbank="4" lbank="32" prog="55" />
+ <Patch name="Trumpet" hbank="4" lbank="32" prog="56" />
+ <Patch name="Trombone" hbank="4" lbank="32" prog="57" />
+ <Patch name="Tuba" hbank="4" lbank="32" prog="58" />
+ <Patch name="Muted Trumpet" hbank="4" lbank="32" prog="59" />
+ <Patch name="French Horn" hbank="4" lbank="32" prog="60" />
+ <Patch name="Brass Section" hbank="4" lbank="32" prog="61" />
+ <Patch name="SynthBrass 1" hbank="4" lbank="32" prog="62" />
+ <Patch name="SynthBrass 2" hbank="4" lbank="32" prog="63" />
+ <Patch name="Soprano Sax" hbank="4" lbank="32" prog="64" />
+ <Patch name="Alto Sax" hbank="4" lbank="32" prog="65" />
+ <Patch name="Tenor Sax" hbank="4" lbank="32" prog="66" />
+ <Patch name="Baritone Sax" hbank="4" lbank="32" prog="67" />
+ <Patch name="Oboe" hbank="4" lbank="32" prog="68" />
+ <Patch name="English Horn" hbank="4" lbank="32" prog="69" />
+ <Patch name="Bassoon" hbank="4" lbank="32" prog="70" />
+ <Patch name="Clarinet" hbank="4" lbank="32" prog="71" />
+ <Patch name="Piccolo" hbank="4" lbank="32" prog="72" />
+ <Patch name="Flute" hbank="4" lbank="32" prog="73" />
+ <Patch name="Recorder" hbank="4" lbank="32" prog="74" />
+ <Patch name="Pan Flute" hbank="4" lbank="32" prog="75" />
+ <Patch name="Blown Bottle" hbank="4" lbank="32" prog="76" />
+ <Patch name="Shakuhachi" hbank="4" lbank="32" prog="77" />
+ <Patch name="Whistle" hbank="4" lbank="32" prog="78" />
+ <Patch name="Ocarina" hbank="4" lbank="32" prog="79" />
+ <Patch name="Lead 1 (square)" hbank="4" lbank="32" prog="80" />
+ <Patch name="Lead 2 (sawtooth)" hbank="4" lbank="32" prog="81" />
+ <Patch name="Lead 3 (calliope)" hbank="4" lbank="32" prog="82" />
+ <Patch name="Lead 4 (chiff)" hbank="4" lbank="32" prog="83" />
+ <Patch name="Lead 5 (charang)" hbank="4" lbank="32" prog="84" />
+ <Patch name="Lead 6 (voice)" hbank="4" lbank="32" prog="85" />
+ <Patch name="Lead 7 (fifths)" hbank="4" lbank="32" prog="86" />
+ <Patch name="Lead 8 (bass + lead)" hbank="4" lbank="32" prog="87" />
+ <Patch name="Pad 1 (new age)" hbank="4" lbank="32" prog="88" />
+ <Patch name="Pad 2 (warm)" hbank="4" lbank="32" prog="89" />
+ <Patch name="Pad 3 (polysynth)" hbank="4" lbank="32" prog="90" />
+ <Patch name="Pad 4 (choir)" hbank="4" lbank="32" prog="91" />
+ <Patch name="Pad 5 (bowed)" hbank="4" lbank="32" prog="92" />
+ <Patch name="Pad 6 (metallic)" hbank="4" lbank="32" prog="93" />
+ <Patch name="Pad 7 (halo)" hbank="4" lbank="32" prog="94" />
+ <Patch name="Pad 8 (sweep)" hbank="4" lbank="32" prog="95" />
+ <Patch name="FX 1 (rain)" hbank="4" lbank="32" prog="96" />
+ <Patch name="FX 2 (soundtrack)" hbank="4" lbank="32" prog="97" />
+ <Patch name="FX 3 (crystal)" hbank="4" lbank="32" prog="98" />
+ <Patch name="FX 4 (atmosphere)" hbank="4" lbank="32" prog="99" />
+ <Patch name="FX 5 (brightness)" hbank="4" lbank="32" prog="100" />
+ <Patch name="FX 6 (goblins)" hbank="4" lbank="32" prog="101" />
+ <Patch name="FX 7 (echoes)" hbank="4" lbank="32" prog="102" />
+ <Patch name="FX 8 (sci-fi)" hbank="4" lbank="32" prog="103" />
+ <Patch name="Sitar" hbank="4" lbank="32" prog="104" />
+ <Patch name="Banjo" hbank="4" lbank="32" prog="105" />
+ <Patch name="Shamisen" hbank="4" lbank="32" prog="106" />
+ <Patch name="Koto" hbank="4" lbank="32" prog="107" />
+ <Patch name="Kalimba" hbank="4" lbank="32" prog="108" />
+ <Patch name="Bag pipe" hbank="4" lbank="32" prog="109" />
+ <Patch name="Fiddle" hbank="4" lbank="32" prog="110" />
+ <Patch name="Shanai" hbank="4" lbank="32" prog="111" />
+ <Patch name="Tinkle Bell" hbank="4" lbank="32" prog="112" />
+ <Patch name="Agogo" hbank="4" lbank="32" prog="113" />
+ <Patch name="Steel Drums" hbank="4" lbank="32" prog="114" />
+ <Patch name="Woodblock" hbank="4" lbank="32" prog="115" />
+ <Patch name="Taiko Drum" hbank="4" lbank="32" prog="116" />
+ <Patch name="Melodic Tom" hbank="4" lbank="32" prog="117" />
+ <Patch name="Synth Drum" hbank="4" lbank="32" prog="118" />
+ <Patch name="Reverse Cymbal" hbank="4" lbank="32" prog="119" />
+ <Patch name="Guitar Fret Noise" hbank="4" lbank="32" prog="120" />
+ <Patch name="Breath Noise" hbank="4" lbank="32" prog="121" />
+ <Patch name="Seashore" hbank="4" lbank="32" prog="122" />
+ <Patch name="Bird Tweet" hbank="4" lbank="32" prog="123" />
+ <Patch name="Telephone Ring" hbank="4" lbank="32" prog="124" />
+ <Patch name="Helicopter" hbank="4" lbank="32" prog="125" />
+ <Patch name="Applause" hbank="4" lbank="32" prog="126" />
+ <Patch name="Gunshot" hbank="4" lbank="32" prog="127" />
+ </PatchGroup>
+ <PatchGroup name="Pianos">
+ <Patch name="True Stereo" hbank="1" lbank="32" prog="0" />
+ <Patch name="DarkClascl" hbank="2" lbank="32" prog="0" />
+ <Patch name="64 Grand" hbank="3" lbank="32" prog="0" />
+ <Patch name="PureStereo" hbank="0" lbank="32" prog="0" />
+ <Patch name="Titanium88" hbank="1" lbank="32" prog="1" />
+ <Patch name="InThePiano" hbank="2" lbank="32" prog="1" />
+ <Patch name="HyperPiano" hbank="3" lbank="32" prog="1" />
+ <Patch name="Rave Knave" hbank="0" lbank="32" prog="1" />
+ <Patch name="OctavPiano" hbank="1" lbank="32" prog="2" />
+ <Patch name="Player Pno" hbank="2" lbank="32" prog="2" />
+ <Patch name="HousePiano" hbank="3" lbank="32" prog="2" />
+ <Patch name="AntiquePno" hbank="0" lbank="32" prog="2" />
+ <Patch name="PianoMorph" hbank="1" lbank="32" prog="3" />
+ <Patch name="PianoStrng" hbank="2" lbank="32" prog="3" />
+ <Patch name="Piano Pad" hbank="3" lbank="32" prog="3" />
+ <Patch name="Pianooohs" hbank="0" lbank="32" prog="3" />
+ <Patch name="BellPianah" hbank="1" lbank="32" prog="4" />
+ <Patch name="EP &amp; String" hbank="2" lbank="32" prog="4" />
+ <Patch name="EP &amp; Oohs" hbank="3" lbank="32" prog="4" />
+ <Patch name="LA Studio" hbank="0" lbank="32" prog="4" />
+ <Patch name="Rayz Roadz" hbank="1" lbank="32" prog="5" />
+ <Patch name="Hard Roads" hbank="2" lbank="32" prog="5" />
+ <Patch name="SuperRoadz" hbank="3" lbank="32" prog="5" />
+ <Patch name="No Quarter" hbank="0" lbank="32" prog="5" />
+ <Patch name="QS Tines" hbank="1" lbank="32" prog="6" />
+ <Patch name="Suitcase" hbank="2" lbank="32" prog="6" />
+ <Patch name="SoftSuitcs" hbank="3" lbank="32" prog="6" />
+ <Patch name="Fat Roadz" hbank="0" lbank="32" prog="6" />
+ <Patch name="ClascWurly" hbank="1" lbank="32" prog="7" />
+ <Patch name="DirtyWurly" hbank="2" lbank="32" prog="7" />
+ <Patch name="TrampWurly" hbank="3" lbank="32" prog="7" />
+ <Patch name="Whirl Lee" hbank="0" lbank="32" prog="7" />
+ <Patch name="FM E Piano" hbank="1" lbank="32" prog="8" />
+ <Patch name="Soft FM EP" hbank="2" lbank="32" prog="8" />
+ <Patch name="Crysalis" hbank="3" lbank="32" prog="8" />
+ <Patch name="Mars E Pno" hbank="0" lbank="32" prog="8" />
+ <Patch name="Wave Piano" hbank="1" lbank="32" prog="9" />
+ <Patch name="Toy Grand" hbank="2" lbank="32" prog="9" />
+ <Patch name="PnoStrVox" hbank="3" lbank="32" prog="9" />
+ <Patch name="TineString" hbank="0" lbank="32" prog="9" />
+ </PatchGroup>
+ <PatchGroup name="Chromatic">
+ <Patch name="Clavitube" hbank="1" lbank="32" prog="10" />
+ <Patch name="Quack Clav" hbank="2" lbank="32" prog="10" />
+ <Patch name="LiquidClav" hbank="3" lbank="32" prog="10" />
+ <Patch name="Clavislap" hbank="0" lbank="32" prog="10" />
+ <Patch name="Real Clav" hbank="1" lbank="32" prog="11" />
+ <Patch name="Clavatar" hbank="2" lbank="32" prog="11" />
+ <Patch name="ProfitClav" hbank="3" lbank="32" prog="11" />
+ <Patch name="Digi Clav" hbank="0" lbank="32" prog="11" />
+ <Patch name="TrueHarpsi" hbank="1" lbank="32" prog="12" />
+ <Patch name="Harpsifunk" hbank="2" lbank="32" prog="12" />
+ <Patch name="8;4;Harpsi" hbank="3" lbank="32" prog="12" />
+ <Patch name="Ana Harpsi" hbank="0" lbank="32" prog="12" />
+ <Patch name="Cool Vibes" hbank="1" lbank="32" prog="13" />
+ <Patch name="Mad Vibes" hbank="2" lbank="32" prog="13" />
+ <Patch name="Rezophone" hbank="3" lbank="32" prog="13" />
+ <Patch name="Toy Hammer" hbank="0" lbank="32" prog="13" />
+ <Patch name="BriteMarim" hbank="1" lbank="32" prog="14" />
+ <Patch name="Woody Xylo" hbank="2" lbank="32" prog="14" />
+ <Patch name="Yanklungs" hbank="3" lbank="32" prog="14" />
+ <Patch name="Chasers" hbank="0" lbank="32" prog="14" />
+ <Patch name="Kalimba MW" hbank="1" lbank="32" prog="15" />
+ <Patch name="Potsticker" hbank="2" lbank="32" prog="15" />
+ <Patch name="Roundup" hbank="3" lbank="32" prog="15" />
+ <Patch name="Sebastian" hbank="0" lbank="32" prog="15" />
+ <Patch name="Brake Drum" hbank="1" lbank="32" prog="16" />
+ <Patch name="Watercan" hbank="2" lbank="32" prog="16" />
+ <Patch name="AlloyGlock" hbank="3" lbank="32" prog="16" />
+ <Patch name="Met Talls" hbank="0" lbank="32" prog="16" />
+ <Patch name="St. Thomas" hbank="1" lbank="32" prog="17" />
+ <Patch name="AttakOfice" hbank="2" lbank="32" prog="17" />
+ <Patch name="FairyBellz" hbank="3" lbank="32" prog="17" />
+ <Patch name="GlassBells" hbank="0" lbank="32" prog="17" />
+ <Patch name="Basic Bell" hbank="1" lbank="32" prog="18" />
+ <Patch name="BlkBoxBell" hbank="2" lbank="32" prog="18" />
+ <Patch name="Ice Bell" hbank="3" lbank="32" prog="18" />
+ <Patch name="MorphBells" hbank="0" lbank="32" prog="18" />
+ <Patch name="ClockTower" hbank="1" lbank="32" prog="19" />
+ <Patch name="Tacko Bell" hbank="2" lbank="32" prog="19" />
+ <Patch name="Waterphone" hbank="3" lbank="32" prog="19" />
+ <Patch name="MW RvrsBel" hbank="0" lbank="32" prog="19" />
+ </PatchGroup>
+ <PatchGroup name="Organ">
+ <Patch name="Real Prc B" hbank="1" lbank="32" prog="20" />
+ <Patch name="AmericaOrg" hbank="2" lbank="32" prog="20" />
+ <Patch name="3Draw Rock" hbank="3" lbank="32" prog="20" />
+ <Patch name="4Draw Rock" hbank="0" lbank="32" prog="20" />
+ <Patch name="High Life" hbank="1" lbank="32" prog="21" />
+ <Patch name="BluesOrgan" hbank="2" lbank="32" prog="21" />
+ <Patch name="KeyClikOrg" hbank="3" lbank="32" prog="21" />
+ <Patch name="DrawbarCtl" hbank="0" lbank="32" prog="21" />
+ <Patch name="Grit Organ" hbank="1" lbank="32" prog="22" />
+ <Patch name="Purple B" hbank="2" lbank="32" prog="22" />
+ <Patch name="Rockin; B3" hbank="3" lbank="32" prog="22" />
+ <Patch name="Keith;s C3" hbank="0" lbank="32" prog="22" />
+ <Patch name="ABCDrawbar" hbank="1" lbank="32" prog="23" />
+ <Patch name="Jazz Prc B" hbank="2" lbank="32" prog="23" />
+ <Patch name="GospelOrgn" hbank="3" lbank="32" prog="23" />
+ <Patch name="Ballad B" hbank="0" lbank="32" prog="23" />
+ <Patch name="WhitrShade" hbank="1" lbank="32" prog="24" />
+ <Patch name="Survival" hbank="2" lbank="32" prog="24" />
+ <Patch name="MetalOrgan" hbank="3" lbank="32" prog="24" />
+ <Patch name="LFO Lezly" hbank="0" lbank="32" prog="24" />
+ <Patch name="Toccata&amp;Fg" hbank="1" lbank="32" prog="25" />
+ <Patch name="High Mass" hbank="2" lbank="32" prog="25" />
+ <Patch name="Full Ranks" hbank="3" lbank="32" prog="25" />
+ <Patch name="PhantomOrg" hbank="0" lbank="32" prog="25" />
+ <Patch name="KingsCourt" hbank="1" lbank="32" prog="26" />
+ <Patch name="SftPipeOrg" hbank="2" lbank="32" prog="26" />
+ <Patch name="Communion" hbank="3" lbank="32" prog="26" />
+ <Patch name="PositivPuff" hbank="0" lbank="32" prog="26" />
+ <Patch name="3rdHarmPerc" hbank="1" lbank="32" prog="27" />
+ <Patch name="2 Drawbars" hbank="2" lbank="32" prog="27" />
+ <Patch name="KiknPedals" hbank="3" lbank="32" prog="27" />
+ <Patch name="Eng Organ" hbank="0" lbank="32" prog="27" />
+ <Patch name="FrAccrdion" hbank="1" lbank="32" prog="28" />
+ <Patch name="WrmAcrdion" hbank="2" lbank="32" prog="28" />
+ <Patch name="Surf Organ" hbank="3" lbank="32" prog="28" />
+ <Patch name="Gypsies" hbank="0" lbank="32" prog="28" />
+ <Patch name="WhammerJmr" hbank="1" lbank="32" prog="29" />
+ <Patch name="JazzHrmnca" hbank="2" lbank="32" prog="29" />
+ <Patch name="Synthonica" hbank="3" lbank="32" prog="29" />
+ <Patch name="JamHarmnca" hbank="0" lbank="32" prog="29" />
+ </PatchGroup>
+ <PatchGroup name="Guitar">
+ <Patch name="Steel Ride" hbank="1" lbank="32" prog="30" />
+ <Patch name="LegatoAGtr" hbank="2" lbank="32" prog="30" />
+ <Patch name="SteelHorse" hbank="3" lbank="32" prog="30" />
+ <Patch name="Quiet Time" hbank="0" lbank="32" prog="30" />
+ <Patch name="GuildedAge" hbank="1" lbank="32" prog="31" />
+ <Patch name="Big Body12" hbank="2" lbank="32" prog="31" />
+ <Patch name="TuesdayAft" hbank="3" lbank="32" prog="31" />
+ <Patch name="FolkBarGtr" hbank="0" lbank="32" prog="31" />
+ <Patch name="Gitarala" hbank="1" lbank="32" prog="32" />
+ <Patch name="GuitarsOoh" hbank="2" lbank="32" prog="32" />
+ <Patch name="Dulcioto" hbank="3" lbank="32" prog="32" />
+ <Patch name="GuitarPoem" hbank="0" lbank="32" prog="32" />
+ <Patch name="ThickNylon" hbank="1" lbank="32" prog="33" />
+ <Patch name="AcHarmonic" hbank="2" lbank="32" prog="33" />
+ <Patch name="ElHarmonic" hbank="3" lbank="32" prog="33" />
+ <Patch name="SteelNylon" hbank="0" lbank="32" prog="33" />
+ <Patch name="Fat Strat" hbank="1" lbank="32" prog="34" />
+ <Patch name="818 Guitar" hbank="2" lbank="32" prog="34" />
+ <Patch name="PassGuitar" hbank="3" lbank="32" prog="34" />
+ <Patch name="InstntEdge" hbank="0" lbank="32" prog="34" />
+ <Patch name="TreMellow" hbank="1" lbank="32" prog="35" />
+ <Patch name="Silvertone" hbank="2" lbank="32" prog="35" />
+ <Patch name="PedalSteel" hbank="3" lbank="32" prog="35" />
+ <Patch name="PulpGuuitar" hbank="0" lbank="32" prog="35" />
+ <Patch name="Total Chug" hbank="1" lbank="32" prog="36" />
+ <Patch name="Chunky" hbank="2" lbank="32" prog="36" />
+ <Patch name="Hyperdrivr" hbank="3" lbank="32" prog="36" />
+ <Patch name="Hard 5ths" hbank="0" lbank="32" prog="36" />
+ <Patch name="FacePlantr" hbank="1" lbank="32" prog="37" />
+ <Patch name="Fuzzhead" hbank="2" lbank="32" prog="37" />
+ <Patch name="HeroHarmnx" hbank="3" lbank="32" prog="37" />
+ <Patch name="Feedbacker" hbank="0" lbank="32" prog="37" />
+ <Patch name="WorldSitar" hbank="1" lbank="32" prog="38" />
+ <Patch name="CaralLezli" hbank="2" lbank="32" prog="38" />
+ <Patch name="Dulcimer" hbank="3" lbank="32" prog="38" />
+ <Patch name="Ethnoba" hbank="0" lbank="32" prog="38" />
+ <Patch name="Koto Pluck" hbank="1" lbank="32" prog="39" />
+ <Patch name="Spamisen" hbank="2" lbank="32" prog="39" />
+ <Patch name="Mando Trem" hbank="3" lbank="32" prog="39" />
+ <Patch name="kotobaba" hbank="0" lbank="32" prog="39" />
+ </PatchGroup>
+ <PatchGroup name="Bass">
+ <Patch name="BigUpright" hbank="1" lbank="32" prog="40" />
+ <Patch name="FatUpright" hbank="2" lbank="32" prog="40" />
+ <Patch name="SharpStick" hbank="3" lbank="32" prog="40" />
+ <Patch name="Dance X" hbank="0" lbank="32" prog="40" />
+ <Patch name="QS Bass" hbank="1" lbank="32" prog="41" />
+ <Patch name="Face Bass" hbank="2" lbank="32" prog="41" />
+ <Patch name="Deep Bass" hbank="3" lbank="32" prog="41" />
+ <Patch name="PsychoBass" hbank="0" lbank="32" prog="41" />
+ <Patch name="007 Bass" hbank="1" lbank="32" prog="42" />
+ <Patch name="Heavy Bass" hbank="2" lbank="32" prog="42" />
+ <Patch name="Roundwound" hbank="3" lbank="32" prog="42" />
+ <Patch name="Space Bass" hbank="0" lbank="32" prog="42" />
+ <Patch name="Slap It!" hbank="1" lbank="32" prog="43" />
+ <Patch name="GothamBass" hbank="2" lbank="32" prog="43" />
+ <Patch name="Pop;n Bass" hbank="3" lbank="32" prog="43" />
+ <Patch name="House Bass" hbank="0" lbank="32" prog="43" />
+ <Patch name="VolumeKnob" hbank="1" lbank="32" prog="44" />
+ <Patch name="No Frets!" hbank="2" lbank="32" prog="44" />
+ <Patch name="Octaver" hbank="3" lbank="32" prog="44" />
+ <Patch name="Jazzy Bass" hbank="0" lbank="32" prog="44" />
+ <Patch name="Fat Mini" hbank="1" lbank="32" prog="45" />
+ <Patch name="FM Pluxx" hbank="2" lbank="32" prog="45" />
+ <Patch name="FunkSnapBs" hbank="3" lbank="32" prog="45" />
+ <Patch name="Lately Bass" hbank="0" lbank="32" prog="45" />
+ <Patch name="Filter Wow" hbank="1" lbank="32" prog="46" />
+ <Patch name="Touch Bass" hbank="2" lbank="32" prog="46" />
+ <Patch name="Funky Acid" hbank="3" lbank="32" prog="46" />
+ <Patch name="SynAtkBass" hbank="0" lbank="32" prog="46" />
+ <Patch name="IndustryRez" hbank="1" lbank="32" prog="47" />
+ <Patch name="Buzzz Base" hbank="2" lbank="32" prog="47" />
+ <Patch name="MellowBass" hbank="3" lbank="32" prog="47" />
+ <Patch name="Quack" hbank="0" lbank="32" prog="47" />
+ <Patch name="DeutschBas" hbank="1" lbank="32" prog="48" />
+ <Patch name="TranceBass" hbank="2" lbank="32" prog="48" />
+ <Patch name="ArndsHouse" hbank="3" lbank="32" prog="48" />
+ <Patch name="Trick Bass" hbank="0" lbank="32" prog="48" />
+ <Patch name="CyberBass" hbank="1" lbank="32" prog="49" />
+ <Patch name="Dist Bass" hbank="2" lbank="32" prog="49" />
+ <Patch name="BassHarmnc" hbank="3" lbank="32" prog="49" />
+ <Patch name="DanceGlide" hbank="0" lbank="32" prog="49" />
+ </PatchGroup>
+ <PatchGroup name="Strings">
+ <Patch name="Violinist" hbank="1" lbank="32" prog="50" />
+ <Patch name="MI Viola" hbank="2" lbank="32" prog="50" />
+ <Patch name="Solo Cello" hbank="3" lbank="32" prog="50" />
+ <Patch name="ContraBass" hbank="0" lbank="32" prog="50" />
+ <Patch name="MedSection" hbank="1" lbank="32" prog="51" />
+ <Patch name="SmlSection" hbank="2" lbank="32" prog="51" />
+ <Patch name="Solodious" hbank="3" lbank="32" prog="51" />
+ <Patch name="DSP Violin" hbank="0" lbank="32" prog="51" />
+ <Patch name="StringVox" hbank="1" lbank="32" prog="52" />
+ <Patch name="LushStrngs" hbank="2" lbank="32" prog="52" />
+ <Patch name="RichString" hbank="3" lbank="32" prog="52" />
+ <Patch name="DiamondStr" hbank="0" lbank="32" prog="52" />
+ <Patch name="LA Phil" hbank="1" lbank="32" prog="53" />
+ <Patch name="Violin Orc" hbank="2" lbank="32" prog="53" />
+ <Patch name="Film Score" hbank="3" lbank="32" prog="53" />
+ <Patch name="SynthEnsmb" hbank="0" lbank="32" prog="53" />
+ <Patch name="Arco Ens" hbank="1" lbank="32" prog="54" />
+ <Patch name="OctaString" hbank="2" lbank="32" prog="54" />
+ <Patch name="HugeString" hbank="3" lbank="32" prog="54" />
+ <Patch name="Syn Arcos" hbank="0" lbank="32" prog="54" />
+ <Patch name="Bali Hai" hbank="1" lbank="32" prog="55" />
+ <Patch name="Pit String" hbank="2" lbank="32" prog="55" />
+ <Patch name="Strng&amp;Perc" hbank="3" lbank="32" prog="55" />
+ <Patch name="StarDustMW" hbank="0" lbank="32" prog="55" />
+ <Patch name="Obersphere" hbank="1" lbank="32" prog="56" />
+ <Patch name="Tron Mood" hbank="2" lbank="32" prog="56" />
+ <Patch name="True Tron" hbank="3" lbank="32" prog="56" />
+ <Patch name="DreamStrgs" hbank="0" lbank="32" prog="56" />
+ <Patch name="J Strings" hbank="1" lbank="32" prog="57" />
+ <Patch name="SE Flange" hbank="2" lbank="32" prog="57" />
+ <Patch name="StrgMachin" hbank="3" lbank="32" prog="57" />
+ <Patch name="Ana String" hbank="0" lbank="32" prog="57" />
+ <Patch name="Pizz Pluck" hbank="1" lbank="32" prog="58" />
+ <Patch name="Pitzi" hbank="2" lbank="32" prog="58" />
+ <Patch name="PizzViolin" hbank="3" lbank="32" prog="58" />
+ <Patch name="SpacePluck" hbank="0" lbank="32" prog="58" />
+ <Patch name="Harp Pluck" hbank="1" lbank="32" prog="59" />
+ <Patch name="HeavenHarp" hbank="2" lbank="32" prog="59" />
+ <Patch name="Harp Gliss" hbank="3" lbank="32" prog="59" />
+ <Patch name="Waterfalls" hbank="0" lbank="32" prog="59" />
+ </PatchGroup>
+ <PatchGroup name="Brass">
+ <Patch name="FlugelSolo" hbank="1" lbank="32" prog="60" />
+ <Patch name="Bone-afied" hbank="2" lbank="32" prog="60" />
+ <Patch name="Francaise" hbank="3" lbank="32" prog="60" />
+ <Patch name="SmokeyRoom" hbank="0" lbank="32" prog="60" />
+ <Patch name="ClsclTrmpt" hbank="1" lbank="32" prog="61" />
+ <Patch name="Jazz Mute" hbank="2" lbank="32" prog="61" />
+ <Patch name="Orch Mutes" hbank="3" lbank="32" prog="61" />
+ <Patch name="MW Mute TP" hbank="0" lbank="32" prog="61" />
+ <Patch name="Solo Tromb" hbank="1" lbank="32" prog="62" />
+ <Patch name="RegalBones" hbank="2" lbank="32" prog="62" />
+ <Patch name="Tromb Ens" hbank="3" lbank="32" prog="62" />
+ <Patch name="Hard Tuba" hbank="0" lbank="32" prog="62" />
+ <Patch name="Dual Horns" hbank="1" lbank="32" prog="63" />
+ <Patch name="Ooh Horns" hbank="2" lbank="32" prog="63" />
+ <Patch name="3rdImpTrpt" hbank="3" lbank="32" prog="63" />
+ <Patch name="FusionHorn" hbank="0" lbank="32" prog="63" />
+ <Patch name="Real Brass" hbank="1" lbank="32" prog="64" />
+ <Patch name="ClsclHorns" hbank="2" lbank="32" prog="64" />
+ <Patch name="TrumpetEns" hbank="3" lbank="32" prog="64" />
+ <Patch name="Vivaldian" hbank="0" lbank="32" prog="64" />
+ <Patch name="Pop Brass" hbank="1" lbank="32" prog="65" />
+ <Patch name="Gold Brass" hbank="2" lbank="32" prog="65" />
+ <Patch name="Four Horns" hbank="3" lbank="32" prog="65" />
+ <Patch name="BigBrsSect" hbank="0" lbank="32" prog="65" />
+ <Patch name="Bigg Brass" hbank="1" lbank="32" prog="66" />
+ <Patch name="BeBopHorns" hbank="2" lbank="32" prog="66" />
+ <Patch name="Dixi Brass" hbank="3" lbank="32" prog="66" />
+ <Patch name="ButtahHrns" hbank="0" lbank="32" prog="66" />
+ <Patch name="Brass Pump" hbank="1" lbank="32" prog="67" />
+ <Patch name="Sfz Brass" hbank="2" lbank="32" prog="67" />
+ <Patch name="HornExpans" hbank="3" lbank="32" prog="67" />
+ <Patch name="TrumpletMW" hbank="0" lbank="32" prog="67" />
+ <Patch name="ClassBrass" hbank="1" lbank="32" prog="68" />
+ <Patch name="Orchestral" hbank="2" lbank="32" prog="68" />
+ <Patch name="GhostHorns" hbank="3" lbank="32" prog="68" />
+ <Patch name="SkyWatcher" hbank="0" lbank="32" prog="68" />
+ <Patch name="Ohbe Brass" hbank="1" lbank="32" prog="69" />
+ <Patch name="ClscSynBrs" hbank="2" lbank="32" prog="69" />
+ <Patch name="OB Horns" hbank="3" lbank="32" prog="69" />
+ <Patch name="Mighty5th" hbank="0" lbank="32" prog="69" />
+ </PatchGroup>
+ <PatchGroup name="Winds">
+ <Patch name="Lyric Flute" hbank="1" lbank="32" prog="70" />
+ <Patch name="SingleFlut" hbank="2" lbank="32" prog="70" />
+ <Patch name="Hard Flute" hbank="3" lbank="32" prog="70" />
+ <Patch name="ChiffFlute" hbank="0" lbank="32" prog="70" />
+ <Patch name="TronFlutes" hbank="1" lbank="32" prog="71" />
+ <Patch name="SpaceFlute" hbank="2" lbank="32" prog="71" />
+ <Patch name="Mutablow" hbank="3" lbank="32" prog="71" />
+ <Patch name="TalkinPipe" hbank="0" lbank="32" prog="71" />
+ <Patch name="PanPeople" hbank="1" lbank="32" prog="72" />
+ <Patch name="Hard Pipes" hbank="2" lbank="32" prog="72" />
+ <Patch name="PetersPipe" hbank="3" lbank="32" prog="72" />
+ <Patch name="PanBristle" hbank="0" lbank="32" prog="72" />
+ <Patch name="Bottle Pad" hbank="1" lbank="32" prog="73" />
+ <Patch name="Tripan" hbank="2" lbank="32" prog="73" />
+ <Patch name="Minotaur" hbank="3" lbank="32" prog="73" />
+ <Patch name="BlowDeTune" hbank="0" lbank="32" prog="73" />
+ <Patch name="Wind Ensmb" hbank="1" lbank="32" prog="74" />
+ <Patch name="Wind Orch" hbank="2" lbank="32" prog="74" />
+ <Patch name="Dark Winds" hbank="3" lbank="32" prog="74" />
+ <Patch name="Wind Woods" hbank="0" lbank="32" prog="74" />
+ <Patch name="SoloBasoon" hbank="1" lbank="32" prog="75" />
+ <Patch name="Oboe Blow" hbank="2" lbank="32" prog="75" />
+ <Patch name="G. Soprano" hbank="3" lbank="32" prog="75" />
+ <Patch name="Croccodile" hbank="0" lbank="32" prog="75" />
+ <Patch name="Tenor Solo" hbank="1" lbank="32" prog="76" />
+ <Patch name="Brite Alto" hbank="2" lbank="32" prog="76" />
+ <Patch name="Sax Touch" hbank="3" lbank="32" prog="76" />
+ <Patch name="BreathySax" hbank="0" lbank="32" prog="76" />
+ <Patch name="ThoseSaxes" hbank="1" lbank="32" prog="77" />
+ <Patch name="Big Band" hbank="2" lbank="32" prog="77" />
+ <Patch name="Sax Mass" hbank="3" lbank="32" prog="77" />
+ <Patch name="SprnoRcrdr" hbank="0" lbank="32" prog="77" />
+ <Patch name="Nautical" hbank="1" lbank="32" prog="78" />
+ <Patch name="Wistelaan" hbank="2" lbank="32" prog="78" />
+ <Patch name="Transformr" hbank="3" lbank="32" prog="78" />
+ <Patch name="HybridBlow" hbank="0" lbank="32" prog="78" />
+ <Patch name="FantaFlute" hbank="1" lbank="32" prog="79" />
+ <Patch name="Shamanixst" hbank="2" lbank="32" prog="79" />
+ <Patch name="1001Nights" hbank="3" lbank="32" prog="79" />
+ <Patch name="Cartoonin;" hbank="0" lbank="32" prog="79" />
+ </PatchGroup>
+ <PatchGroup name="Synth 1">
+ <Patch name="Ooh Choir" hbank="1" lbank="32" prog="80" />
+ <Patch name="Oohzee" hbank="2" lbank="32" prog="80" />
+ <Patch name="VelOooz&amp;Aaz" hbank="3" lbank="32" prog="80" />
+ <Patch name="PavlovsDog" hbank="0" lbank="32" prog="80" />
+ <Patch name="Ahh Choir" hbank="1" lbank="32" prog="81" />
+ <Patch name="Glory Ahhs" hbank="2" lbank="32" prog="81" />
+ <Patch name="Voxalon" hbank="3" lbank="32" prog="81" />
+ <Patch name="MorphChoir" hbank="0" lbank="32" prog="81" />
+ <Patch name="Sunsrizer" hbank="1" lbank="32" prog="82" />
+ <Patch name="Dead Sea" hbank="2" lbank="32" prog="82" />
+ <Patch name="Final Dawn" hbank="3" lbank="32" prog="82" />
+ <Patch name="Air Pad MW" hbank="0" lbank="32" prog="82" />
+ <Patch name="Afterglow" hbank="1" lbank="32" prog="83" />
+ <Patch name="Anasthesia" hbank="2" lbank="32" prog="83" />
+ <Patch name="1stContact" hbank="3" lbank="32" prog="83" />
+ <Patch name="GlideVoxMW" hbank="0" lbank="32" prog="83" />
+ <Patch name="TyrellCorp" hbank="1" lbank="32" prog="84" />
+ <Patch name="Sparks" hbank="2" lbank="32" prog="84" />
+ <Patch name="Applewine" hbank="3" lbank="32" prog="84" />
+ <Patch name="JoshuaTree" hbank="0" lbank="32" prog="84" />
+ <Patch name="MindSweep" hbank="1" lbank="32" prog="85" />
+ <Patch name="Hol&amp;Sampl" hbank="2" lbank="32" prog="85" />
+ <Patch name="Shiftaling" hbank="3" lbank="32" prog="85" />
+ <Patch name="Metal Wash" hbank="0" lbank="32" prog="85" />
+ <Patch name="GenesisWav" hbank="1" lbank="32" prog="86" />
+ <Patch name="Dew Drops" hbank="2" lbank="32" prog="86" />
+ <Patch name="Comet Rain" hbank="3" lbank="32" prog="86" />
+ <Patch name="HeavenCent" hbank="0" lbank="32" prog="86" />
+ <Patch name="Rainforest" hbank="1" lbank="32" prog="87" />
+ <Patch name="Outland" hbank="2" lbank="32" prog="87" />
+ <Patch name="7th Wave" hbank="3" lbank="32" prog="87" />
+ <Patch name="Ocean Mood" hbank="0" lbank="32" prog="87" />
+ <Patch name="Sahara Sun" hbank="1" lbank="32" prog="88" />
+ <Patch name="Emperor" hbank="2" lbank="32" prog="88" />
+ <Patch name="Eno Pad" hbank="3" lbank="32" prog="88" />
+ <Patch name="MoonRise" hbank="0" lbank="32" prog="88" />
+ <Patch name="Water!!!" hbank="1" lbank="32" prog="89" />
+ <Patch name="Ascent" hbank="2" lbank="32" prog="89" />
+ <Patch name="Tsynami" hbank="3" lbank="32" prog="89" />
+ <Patch name="InnerPhase" hbank="0" lbank="32" prog="89" />
+ </PatchGroup>
+ <PatchGroup name="Synth 2">
+ <Patch name="Quadatix" hbank="1" lbank="32" prog="90" />
+ <Patch name="Fanfare GX" hbank="2" lbank="32" prog="90" />
+ <Patch name="Touch &amp; Go" hbank="3" lbank="32" prog="90" />
+ <Patch name="TicSawlead" hbank="0" lbank="32" prog="90" />
+ <Patch name="VoltagePad" hbank="1" lbank="32" prog="91" />
+ <Patch name="PowerChirp" hbank="2" lbank="32" prog="91" />
+ <Patch name="EmersonSaw" hbank="3" lbank="32" prog="91" />
+ <Patch name="Spaceport" hbank="0" lbank="32" prog="91" />
+ <Patch name="Xpando Pad" hbank="1" lbank="32" prog="92" />
+ <Patch name="BladeRunnr" hbank="2" lbank="32" prog="92" />
+ <Patch name="Fluid Pad" hbank="3" lbank="32" prog="92" />
+ <Patch name="FlashBack" hbank="0" lbank="32" prog="92" />
+ <Patch name="Scarlamare" hbank="1" lbank="32" prog="93" />
+ <Patch name="Distance" hbank="2" lbank="32" prog="93" />
+ <Patch name="Vector Pad" hbank="3" lbank="32" prog="93" />
+ <Patch name="VintageRez" hbank="0" lbank="32" prog="93" />
+ <Patch name="A/V Pad" hbank="1" lbank="32" prog="94" />
+ <Patch name="Angelsynth" hbank="2" lbank="32" prog="94" />
+ <Patch name="Fuzz Choir" hbank="3" lbank="32" prog="94" />
+ <Patch name="Mink Pad" hbank="0" lbank="32" prog="94" />
+ <Patch name="AirLAYER" hbank="1" lbank="32" prog="95" />
+ <Patch name="HighGlissz" hbank="2" lbank="32" prog="95" />
+ <Patch name="Hihowareya" hbank="3" lbank="32" prog="95" />
+ <Patch name="Cromaphon" hbank="0" lbank="32" prog="95" />
+ <Patch name="Kalimpanad" hbank="1" lbank="32" prog="96" />
+ <Patch name="Delectea" hbank="2" lbank="32" prog="96" />
+ <Patch name="Scientific" hbank="3" lbank="32" prog="96" />
+ <Patch name="Amakudari" hbank="0" lbank="32" prog="96" />
+ <Patch name="Blacksmith" hbank="1" lbank="32" prog="97" />
+ <Patch name="PatchCords" hbank="2" lbank="32" prog="97" />
+ <Patch name="Pop Out" hbank="3" lbank="32" prog="97" />
+ <Patch name="RubberMetl" hbank="0" lbank="32" prog="97" />
+ <Patch name="Digidee" hbank="1" lbank="32" prog="98" />
+ <Patch name="Silk&amp;Satin" hbank="2" lbank="32" prog="98" />
+ <Patch name="Voice Bell" hbank="3" lbank="32" prog="98" />
+ <Patch name="TinSynLead" hbank="0" lbank="32" prog="98" />
+ <Patch name="Marburg" hbank="1" lbank="32" prog="99" />
+ <Patch name="FuzzyGlass" hbank="2" lbank="32" prog="99" />
+ <Patch name="PebbleBell" hbank="3" lbank="32" prog="99" />
+ <Patch name="Marimpanad" hbank="0" lbank="32" prog="99" />
+ </PatchGroup>
+ <PatchGroup name="Synth 3">
+ <Patch name="Porta Lead" hbank="1" lbank="32" prog="100" />
+ <Patch name="FmDBgining" hbank="2" lbank="32" prog="100" />
+ <Patch name="Fast Sync" hbank="3" lbank="32" prog="100" />
+ <Patch name="Zoo Lead" hbank="0" lbank="32" prog="100" />
+ <Patch name="ClassicSqr" hbank="1" lbank="32" prog="101" />
+ <Patch name="EPROM Boy" hbank="2" lbank="32" prog="101" />
+ <Patch name="Spork Boy" hbank="3" lbank="32" prog="101" />
+ <Patch name="Spring Boy" hbank="0" lbank="32" prog="101" />
+ <Patch name="Triangular" hbank="1" lbank="32" prog="102" />
+ <Patch name="EmoL7 Lead" hbank="2" lbank="32" prog="102" />
+ <Patch name="Tri Lead" hbank="3" lbank="32" prog="102" />
+ <Patch name="3oh3 SawMW" hbank="0" lbank="32" prog="102" />
+ <Patch name="Maze Lead" hbank="1" lbank="32" prog="103" />
+ <Patch name="DiodeDoodl" hbank="2" lbank="32" prog="103" />
+ <Patch name="Beta Lead" hbank="3" lbank="32" prog="103" />
+ <Patch name="3oh3 SqrMW" hbank="0" lbank="32" prog="103" />
+ <Patch name="BPF Lead" hbank="1" lbank="32" prog="104" />
+ <Patch name="MellowGold" hbank="2" lbank="32" prog="104" />
+ <Patch name="WhstleLead" hbank="3" lbank="32" prog="104" />
+ <Patch name="HiPassCtrl" hbank="0" lbank="32" prog="104" />
+ <Patch name="Screamer!" hbank="1" lbank="32" prog="105" />
+ <Patch name="PortaWheel" hbank="2" lbank="32" prog="105" />
+ <Patch name="Alpha Lead" hbank="3" lbank="32" prog="105" />
+ <Patch name=";74 Square" hbank="0" lbank="32" prog="105" />
+ <Patch name="ShineOn..." hbank="1" lbank="32" prog="106" />
+ <Patch name="Sweet Lead" hbank="2" lbank="32" prog="106" />
+ <Patch name="Rezzathing" hbank="3" lbank="32" prog="106" />
+ <Patch name="RaveSaw QS" hbank="0" lbank="32" prog="106" />
+ <Patch name="Touchsaw" hbank="1" lbank="32" prog="107" />
+ <Patch name="Brassy 5th" hbank="2" lbank="32" prog="107" />
+ <Patch name="Trilogy Ld" hbank="3" lbank="32" prog="107" />
+ <Patch name="RaveSqr QS" hbank="0" lbank="32" prog="107" />
+ <Patch name="Fuzz Box" hbank="1" lbank="32" prog="108" />
+ <Patch name="SuperNova" hbank="2" lbank="32" prog="108" />
+ <Patch name="Hazy Lead" hbank="3" lbank="32" prog="108" />
+ <Patch name="Buzz Clip" hbank="0" lbank="32" prog="108" />
+ <Patch name="AquaTarkus" hbank="1" lbank="32" prog="109" />
+ <Patch name="AbdnsTriad" hbank="2" lbank="32" prog="109" />
+ <Patch name="The Sage" hbank="3" lbank="32" prog="109" />
+ <Patch name="SyncNSaws!" hbank="0" lbank="32" prog="109" />
+ </PatchGroup>
+ <PatchGroup name="Rhythm/FX">
+ <Patch name="Synergy MW" hbank="1" lbank="32" prog="110" />
+ <Patch name="Transcope" hbank="2" lbank="32" prog="110" />
+ <Patch name="Pitch-Bot" hbank="3" lbank="32" prog="110" />
+ <Patch name="Wormholes" hbank="0" lbank="32" prog="110" />
+ <Patch name="Discotron" hbank="1" lbank="32" prog="111" />
+ <Patch name="Groovy-bot" hbank="2" lbank="32" prog="111" />
+ <Patch name="Disco Boy" hbank="3" lbank="32" prog="111" />
+ <Patch name="Bonk" hbank="0" lbank="32" prog="111" />
+ <Patch name="Bhangra" hbank="1" lbank="32" prog="112" />
+ <Patch name="Yonderland" hbank="2" lbank="32" prog="112" />
+ <Patch name="Braveheart" hbank="3" lbank="32" prog="112" />
+ <Patch name="No Age" hbank="0" lbank="32" prog="112" />
+ <Patch name="Randomania" hbank="1" lbank="32" prog="113" />
+ <Patch name="Robotechno" hbank="2" lbank="32" prog="113" />
+ <Patch name="NineIncher" hbank="3" lbank="32" prog="113" />
+ <Patch name="Funkngruvn" hbank="0" lbank="32" prog="113" />
+ <Patch name="Pop Thing" hbank="1" lbank="32" prog="114" />
+ <Patch name="JungleGruv" hbank="2" lbank="32" prog="114" />
+ <Patch name="TheSandMan" hbank="3" lbank="32" prog="114" />
+ <Patch name="New Waves" hbank="0" lbank="32" prog="114" />
+ <Patch name="Loop-O-Mat" hbank="1" lbank="32" prog="115" />
+ <Patch name="WhereDrums" hbank="2" lbank="32" prog="115" />
+ <Patch name="ConsumRism" hbank="3" lbank="32" prog="115" />
+ <Patch name="Pss Roll" hbank="0" lbank="32" prog="115" />
+ <Patch name="Clockwork" hbank="1" lbank="32" prog="116" />
+ <Patch name="Sardauker" hbank="2" lbank="32" prog="116" />
+ <Patch name="Fanfare" hbank="3" lbank="32" prog="116" />
+ <Patch name="TseTse Fly" hbank="0" lbank="32" prog="116" />
+ <Patch name="Heartbeat" hbank="1" lbank="32" prog="117" />
+ <Patch name="Circles" hbank="2" lbank="32" prog="117" />
+ <Patch name="Big Sur" hbank="3" lbank="32" prog="117" />
+ <Patch name="DogsInSpac" hbank="0" lbank="32" prog="117" />
+ <Patch name="Nanites" hbank="1" lbank="32" prog="118" />
+ <Patch name="T-Minus 1" hbank="2" lbank="32" prog="118" />
+ <Patch name="BubbleHead" hbank="3" lbank="32" prog="118" />
+ <Patch name="Insectagon" hbank="0" lbank="32" prog="118" />
+ <Patch name="MonstrMash" hbank="1" lbank="32" prog="119" />
+ <Patch name="Creeps" hbank="2" lbank="32" prog="119" />
+ <Patch name="Hyperspace" hbank="3" lbank="32" prog="119" />
+ <Patch name="Laboratory" hbank="0" lbank="32" prog="119" />
+ </PatchGroup>
+ <PatchGroup name="Drums/Percussion">
+ <Patch name="DM5 Drums" hbank="1" lbank="32" prog="120" drum="1" />
+ <Patch name="Pop Up Kit" hbank="2" lbank="32" prog="120" drum="1" />
+ <Patch name="CountryKit" hbank="3" lbank="32" prog="120" drum="1" />
+ <Patch name="Real Rock" hbank="0" lbank="32" prog="120" drum="1" />
+ <Patch name="Straight 8" hbank="1" lbank="32" prog="121" drum="1" />
+ <Patch name="9 Time" hbank="2" lbank="32" prog="121" drum="1" />
+ <Patch name="See our 78" hbank="3" lbank="32" prog="121" drum="1" />
+ <Patch name="Asylum Kit" hbank="0" lbank="32" prog="121" drum="1" />
+ <Patch name="Industro" hbank="1" lbank="32" prog="122" drum="1" />
+ <Patch name="HardcoreKit" hbank="2" lbank="32" prog="122" drum="1" />
+ <Patch name="Groovy Lube" hbank="3" lbank="32" prog="122" drum="1" />
+ <Patch name="Harlem Tek" hbank="0" lbank="32" prog="122" drum="1" />
+ <Patch name="StreetBeat" hbank="1" lbank="32" prog="123" drum="1" />
+ <Patch name="UrbanBliss" hbank="2" lbank="32" prog="123" drum="1" />
+ <Patch name="Disco Kit" hbank="3" lbank="32" prog="123" drum="1" />
+ <Patch name="15ips Kit" hbank="0" lbank="32" prog="123" drum="1" />
+ <Patch name="Outer Kit" hbank="1" lbank="32" prog="124" drum="1" />
+ <Patch name="GuessTrips" hbank="2" lbank="32" prog="124" drum="1" />
+ <Patch name="UFO Drums" hbank="3" lbank="32" prog="124" drum="1" />
+ <Patch name="GuessDrums" hbank="0" lbank="32" prog="124" drum="1" />
+ <Patch name="AfricaPerc" hbank="1" lbank="32" prog="125" drum="1" />
+ <Patch name="India Perc" hbank="2" lbank="32" prog="125" drum="1" />
+ <Patch name="Asia Perc" hbank="3" lbank="32" prog="125" drum="1" />
+ <Patch name="VocoderKit" hbank="0" lbank="32" prog="125" drum="1" />
+ <Patch name="Marktree" hbank="1" lbank="32" prog="126" drum="1" />
+ <Patch name="TimpaniHit" hbank="2" lbank="32" prog="126" drum="1" />
+ <Patch name="Doom Toms" hbank="3" lbank="32" prog="126" drum="1" />
+ <Patch name="Rainstick" hbank="0" lbank="32" prog="126" drum="1" />
+ <Patch name="Orch Hits" hbank="1" lbank="32" prog="127" drum="1" />
+ <Patch name="Danz Hitz" hbank="2" lbank="32" prog="127" drum="1" />
+ <Patch name="Film Hit" hbank="3" lbank="32" prog="127" drum="1" />
+ <Patch name="Deja Hitz" hbank="0" lbank="32" prog="127" drum="1" />
+ </PatchGroup>
+ <Controller name="Program" type="Program" />
+ </MidiInstrument>
+</muse>
diff --git a/muse2/share/instruments/AlesisQS6.idf b/muse2/share/instruments/AlesisQS6.idf
new file mode 100644
index 00000000..cb4de5b1
--- /dev/null
+++ b/muse2/share/instruments/AlesisQS6.idf
@@ -0,0 +1,655 @@
+<?xml version="1.0"?>
+<muse version="1.0">
+ <MidiInstrument name="AlesisQS6">
+ <PatchGroup name="General Midi">
+ <Patch name="Acoustic Grand Piano" hbank="4" lbank="32" prog="0" />
+ <Patch name="Bright Acoustic Piano" hbank="4" lbank="32" prog="1" />
+ <Patch name="Electric Grand Piano" hbank="4" lbank="32" prog="2" />
+ <Patch name="Honky-tonk Piano" hbank="4" lbank="32" prog="3" />
+ <Patch name="Electric Piano 1" hbank="4" lbank="32" prog="4" />
+ <Patch name="Electric Piano 2" hbank="4" lbank="32" prog="5" />
+ <Patch name="Harpsichord" hbank="4" lbank="32" prog="6" />
+ <Patch name="Clavi" hbank="4" lbank="32" prog="7" />
+ <Patch name="Celesta" hbank="4" lbank="32" prog="8" />
+ <Patch name="Glockenspiel" hbank="4" lbank="32" prog="9" />
+ <Patch name="Music Box" hbank="4" lbank="32" prog="10" />
+ <Patch name="Vibraphone" hbank="4" lbank="32" prog="11" />
+ <Patch name="Marimba" hbank="4" lbank="32" prog="12" />
+ <Patch name="Xylophone" hbank="4" lbank="32" prog="13" />
+ <Patch name="Tubular Bells" hbank="4" lbank="32" prog="14" />
+ <Patch name="Dulcimer" hbank="4" lbank="32" prog="15" />
+ <Patch name="Drawbar Organ" hbank="4" lbank="32" prog="16" />
+ <Patch name="Percussive Organ" hbank="4" lbank="32" prog="17" />
+ <Patch name="Rock Organ" hbank="4" lbank="32" prog="18" />
+ <Patch name="Church Organ" hbank="4" lbank="32" prog="19" />
+ <Patch name="Reed Organ" hbank="4" lbank="32" prog="20" />
+ <Patch name="Accordion" hbank="4" lbank="32" prog="21" />
+ <Patch name="Harmonica" hbank="4" lbank="32" prog="22" />
+ <Patch name="Tango Accordion" hbank="4" lbank="32" prog="23" />
+ <Patch name="Acoustic Guitar (nylon)" hbank="4" lbank="32" prog="24" />
+ <Patch name="Acoustic Guitar (steel)" hbank="4" lbank="32" prog="25" />
+ <Patch name="Electric Guitar (jazz)" hbank="4" lbank="32" prog="26" />
+ <Patch name="Electric Guitar (clean)" hbank="4" lbank="32" prog="27" />
+ <Patch name="Electric Guitar (muted)" hbank="4" lbank="32" prog="28" />
+ <Patch name="Overdriven Guitar" hbank="4" lbank="32" prog="29" />
+ <Patch name="Distortion Guitar" hbank="4" lbank="32" prog="30" />
+ <Patch name="Guitar harmonics" hbank="4" lbank="32" prog="31" />
+ <Patch name="Acoustic Bass" hbank="4" lbank="32" prog="32" />
+ <Patch name="Fingered Bass" hbank="4" lbank="32" prog="33" />
+ <Patch name="Picked Bass" hbank="4" lbank="32" prog="34" />
+ <Patch name="Fretless Bass" hbank="4" lbank="32" prog="35" />
+ <Patch name="Slap Bass 1" hbank="4" lbank="32" prog="36" />
+ <Patch name="Slap Bass 2" hbank="4" lbank="32" prog="37" />
+ <Patch name="Synth Bass 1" hbank="4" lbank="32" prog="38" />
+ <Patch name="Synth Bass 2" hbank="4" lbank="32" prog="39" />
+ <Patch name="Violin" hbank="4" lbank="32" prog="40" />
+ <Patch name="Viola" hbank="4" lbank="32" prog="41" />
+ <Patch name="Cello" hbank="4" lbank="32" prog="42" />
+ <Patch name="Contrabass" hbank="4" lbank="32" prog="43" />
+ <Patch name="Tremolo Strings" hbank="4" lbank="32" prog="44" />
+ <Patch name="Pizzicato Strings" hbank="4" lbank="32" prog="45" />
+ <Patch name="Orchestral Harp" hbank="4" lbank="32" prog="46" />
+ <Patch name="Timpani" hbank="4" lbank="32" prog="47" />
+ <Patch name="String Ensemble 1" hbank="4" lbank="32" prog="48" />
+ <Patch name="String Ensemble 2" hbank="4" lbank="32" prog="49" />
+ <Patch name="SynthStrings 1" hbank="4" lbank="32" prog="50" />
+ <Patch name="SynthStrings 2" hbank="4" lbank="32" prog="51" />
+ <Patch name="Choir Aahs" hbank="4" lbank="32" prog="52" />
+ <Patch name="Voice Oohs" hbank="4" lbank="32" prog="53" />
+ <Patch name="Synth Voice" hbank="4" lbank="32" prog="54" />
+ <Patch name="Orchestra Hit" hbank="4" lbank="32" prog="55" />
+ <Patch name="Trumpet" hbank="4" lbank="32" prog="56" />
+ <Patch name="Trombone" hbank="4" lbank="32" prog="57" />
+ <Patch name="Tuba" hbank="4" lbank="32" prog="58" />
+ <Patch name="Muted Trumpet" hbank="4" lbank="32" prog="59" />
+ <Patch name="French Horn" hbank="4" lbank="32" prog="60" />
+ <Patch name="Brass Section" hbank="4" lbank="32" prog="61" />
+ <Patch name="SynthBrass 1" hbank="4" lbank="32" prog="62" />
+ <Patch name="SynthBrass 2" hbank="4" lbank="32" prog="63" />
+ <Patch name="Soprano Sax" hbank="4" lbank="32" prog="64" />
+ <Patch name="Alto Sax" hbank="4" lbank="32" prog="65" />
+ <Patch name="Tenor Sax" hbank="4" lbank="32" prog="66" />
+ <Patch name="Baritone Sax" hbank="4" lbank="32" prog="67" />
+ <Patch name="Oboe" hbank="4" lbank="32" prog="68" />
+ <Patch name="English Horn" hbank="4" lbank="32" prog="69" />
+ <Patch name="Bassoon" hbank="4" lbank="32" prog="70" />
+ <Patch name="Clarinet" hbank="4" lbank="32" prog="71" />
+ <Patch name="Piccolo" hbank="4" lbank="32" prog="72" />
+ <Patch name="Flute" hbank="4" lbank="32" prog="73" />
+ <Patch name="Recorder" hbank="4" lbank="32" prog="74" />
+ <Patch name="Pan Flute" hbank="4" lbank="32" prog="75" />
+ <Patch name="Blown Bottle" hbank="4" lbank="32" prog="76" />
+ <Patch name="Shakuhachi" hbank="4" lbank="32" prog="77" />
+ <Patch name="Whistle" hbank="4" lbank="32" prog="78" />
+ <Patch name="Ocarina" hbank="4" lbank="32" prog="79" />
+ <Patch name="Lead 1 (square)" hbank="4" lbank="32" prog="80" />
+ <Patch name="Lead 2 (sawtooth)" hbank="4" lbank="32" prog="81" />
+ <Patch name="Lead 3 (calliope)" hbank="4" lbank="32" prog="82" />
+ <Patch name="Lead 4 (chiff)" hbank="4" lbank="32" prog="83" />
+ <Patch name="Lead 5 (charang)" hbank="4" lbank="32" prog="84" />
+ <Patch name="Lead 6 (voice)" hbank="4" lbank="32" prog="85" />
+ <Patch name="Lead 7 (fifths)" hbank="4" lbank="32" prog="86" />
+ <Patch name="Lead 8 (bass + lead)" hbank="4" lbank="32" prog="87" />
+ <Patch name="Pad 1 (new age)" hbank="4" lbank="32" prog="88" />
+ <Patch name="Pad 2 (warm)" hbank="4" lbank="32" prog="89" />
+ <Patch name="Pad 3 (polysynth)" hbank="4" lbank="32" prog="90" />
+ <Patch name="Pad 4 (choir)" hbank="4" lbank="32" prog="91" />
+ <Patch name="Pad 5 (bowed)" hbank="4" lbank="32" prog="92" />
+ <Patch name="Pad 6 (metallic)" hbank="4" lbank="32" prog="93" />
+ <Patch name="Pad 7 (halo)" hbank="4" lbank="32" prog="94" />
+ <Patch name="Pad 8 (sweep)" hbank="4" lbank="32" prog="95" />
+ <Patch name="FX 1 (rain)" hbank="4" lbank="32" prog="96" />
+ <Patch name="FX 2 (soundtrack)" hbank="4" lbank="32" prog="97" />
+ <Patch name="FX 3 (crystal)" hbank="4" lbank="32" prog="98" />
+ <Patch name="FX 4 (atmosphere)" hbank="4" lbank="32" prog="99" />
+ <Patch name="FX 5 (brightness)" hbank="4" lbank="32" prog="100" />
+ <Patch name="FX 6 (goblins)" hbank="4" lbank="32" prog="101" />
+ <Patch name="FX 7 (echoes)" hbank="4" lbank="32" prog="102" />
+ <Patch name="FX 8 (sci-fi)" hbank="4" lbank="32" prog="103" />
+ <Patch name="Sitar" hbank="4" lbank="32" prog="104" />
+ <Patch name="Banjo" hbank="4" lbank="32" prog="105" />
+ <Patch name="Shamisen" hbank="4" lbank="32" prog="106" />
+ <Patch name="Koto" hbank="4" lbank="32" prog="107" />
+ <Patch name="Kalimba" hbank="4" lbank="32" prog="108" />
+ <Patch name="Bag pipe" hbank="4" lbank="32" prog="109" />
+ <Patch name="Fiddle" hbank="4" lbank="32" prog="110" />
+ <Patch name="Shanai" hbank="4" lbank="32" prog="111" />
+ <Patch name="Tinkle Bell" hbank="4" lbank="32" prog="112" />
+ <Patch name="Agogo" hbank="4" lbank="32" prog="113" />
+ <Patch name="Steel Drums" hbank="4" lbank="32" prog="114" />
+ <Patch name="Woodblock" hbank="4" lbank="32" prog="115" />
+ <Patch name="Taiko Drum" hbank="4" lbank="32" prog="116" />
+ <Patch name="Melodic Tom" hbank="4" lbank="32" prog="117" />
+ <Patch name="Synth Drum" hbank="4" lbank="32" prog="118" />
+ <Patch name="Reverse Cymbal" hbank="4" lbank="32" prog="119" />
+ <Patch name="Guitar Fret Noise" hbank="4" lbank="32" prog="120" />
+ <Patch name="Breath Noise" hbank="4" lbank="32" prog="121" />
+ <Patch name="Seashore" hbank="4" lbank="32" prog="122" />
+ <Patch name="Bird Tweet" hbank="4" lbank="32" prog="123" />
+ <Patch name="Telephone Ring" hbank="4" lbank="32" prog="124" />
+ <Patch name="Helicopter" hbank="4" lbank="32" prog="125" />
+ <Patch name="Applause" hbank="4" lbank="32" prog="126" />
+ <Patch name="Gunshot" hbank="4" lbank="32" prog="127" />
+ </PatchGroup>
+ <PatchGroup name="Preset1 Programs">
+ <Patch name="GrandPiano" hbank="1" lbank="32" prog="0" />
+ <Patch name="PianoMorph" hbank="1" lbank="32" prog="1" />
+ <Patch name="HyperPiano" hbank="1" lbank="32" prog="2" />
+ <Patch name="Rayz Rhodz" hbank="1" lbank="32" prog="3" />
+ <Patch name="61 Tines" hbank="1" lbank="32" prog="4" />
+ <Patch name="FM E Piano" hbank="1" lbank="32" prog="5" />
+ <Patch name="EP &amp; Oohs" hbank="1" lbank="32" prog="6" />
+ <Patch name="Wave Piano" hbank="1" lbank="32" prog="7" />
+ <Patch name="ClascWurly" hbank="1" lbank="32" prog="8" />
+ <Patch name="Jazz Duo" hbank="1" lbank="32" prog="9" />
+ <Patch name="Clavitube" hbank="1" lbank="32" prog="10" />
+ <Patch name="Real Clav" hbank="1" lbank="32" prog="11" />
+ <Patch name="TrueHarpsi" hbank="1" lbank="32" prog="12" />
+ <Patch name="Cool Vibes" hbank="1" lbank="32" prog="13" />
+ <Patch name="BriteMarim" hbank="1" lbank="32" prog="14" />
+ <Patch name="Kalimba MW" hbank="1" lbank="32" prog="15" />
+ <Patch name="Brake Drum" hbank="1" lbank="32" prog="16" />
+ <Patch name="St. Thomas" hbank="1" lbank="32" prog="17" />
+ <Patch name="Basic Bell" hbank="1" lbank="32" prog="18" />
+ <Patch name="ClockTower" hbank="1" lbank="32" prog="19" />
+ <Patch name="Real Prc B" hbank="1" lbank="32" prog="20" />
+ <Patch name="High Life" hbank="1" lbank="32" prog="21" />
+ <Patch name="Grit Organ" hbank="1" lbank="32" prog="22" />
+ <Patch name="HoedownOrg" hbank="1" lbank="32" prog="23" />
+ <Patch name="Purple B" hbank="1" lbank="32" prog="24" />
+ <Patch name="Toccata&amp;Fg" hbank="1" lbank="32" prog="25" />
+ <Patch name="High Mass" hbank="1" lbank="32" prog="26" />
+ <Patch name="Communion" hbank="1" lbank="32" prog="27" />
+ <Patch name="FrAccrdion" hbank="1" lbank="32" prog="28" />
+ <Patch name="WhammerJmr" hbank="1" lbank="32" prog="29" />
+ <Patch name="SteelHorse" hbank="1" lbank="32" prog="30" />
+ <Patch name="GuildedAge" hbank="1" lbank="32" prog="31" />
+ <Patch name="Gitarala" hbank="1" lbank="32" prog="32" />
+ <Patch name="Nylon&amp;Oohs" hbank="1" lbank="32" prog="33" />
+ <Patch name="TreMellow" hbank="1" lbank="32" prog="34" />
+ <Patch name="TurboSlidr" hbank="1" lbank="32" prog="35" />
+ <Patch name="Total Chug" hbank="1" lbank="32" prog="36" />
+ <Patch name="Feebacker" hbank="1" lbank="32" prog="37" />
+ <Patch name="WorldSitar" hbank="1" lbank="32" prog="38" />
+ <Patch name="Koto Pluck" hbank="1" lbank="32" prog="39" />
+ <Patch name="BigUpright" hbank="1" lbank="32" prog="40" />
+ <Patch name="QS Bass" hbank="1" lbank="32" prog="41" />
+ <Patch name="007 Bass" hbank="1" lbank="32" prog="42" />
+ <Patch name="Slap It!" hbank="1" lbank="32" prog="43" />
+ <Patch name="VolumeKnob" hbank="1" lbank="32" prog="44" />
+ <Patch name="Fat Mini" hbank="1" lbank="32" prog="45" />
+ <Patch name="Filter Wow" hbank="1" lbank="32" prog="46" />
+ <Patch name="IndustryRez" hbank="1" lbank="32" prog="47" />
+ <Patch name="DeutschBas" hbank="1" lbank="32" prog="48" />
+ <Patch name="CyberBass" hbank="1" lbank="32" prog="49" />
+ <Patch name="Stradivari" hbank="1" lbank="32" prog="50" />
+ <Patch name="SmlSection" hbank="1" lbank="32" prog="51" />
+ <Patch name="MedSection" hbank="1" lbank="32" prog="52" />
+ <Patch name="FireStrngs" hbank="1" lbank="32" prog="53" />
+ <Patch name="ArcoStrngs" hbank="1" lbank="32" prog="54" />
+ <Patch name="Pit String" hbank="1" lbank="32" prog="55" />
+ <Patch name="Obersphere" hbank="1" lbank="32" prog="56" />
+ <Patch name="J Strings" hbank="1" lbank="32" prog="57" />
+ <Patch name="PizzViolin" hbank="1" lbank="32" prog="58" />
+ <Patch name="Harp Pluck" hbank="1" lbank="32" prog="59" />
+ <Patch name="FlugelSolo" hbank="1" lbank="32" prog="60" />
+ <Patch name="Jazz Mute" hbank="1" lbank="32" prog="61" />
+ <Patch name="Solor Tromb" hbank="1" lbank="32" prog="62" />
+ <Patch name="FHrn Ens" hbank="1" lbank="32" prog="63" />
+ <Patch name="BriteBass" hbank="1" lbank="32" prog="64" />
+ <Patch name="Ohbe Brass" hbank="1" lbank="32" prog="65" />
+ <Patch name="Stab Brass" hbank="1" lbank="32" prog="66" />
+ <Patch name="Brass Pump" hbank="1" lbank="32" prog="67" />
+ <Patch name="Big Brass" hbank="1" lbank="32" prog="68" />
+ <Patch name="Orchestral" hbank="1" lbank="32" prog="69" />
+ <Patch name="Lyric Flute" hbank="1" lbank="32" prog="70" />
+ <Patch name="TronFlutes" hbank="1" lbank="32" prog="71" />
+ <Patch name="PanPeople" hbank="1" lbank="32" prog="72" />
+ <Patch name="Velo Shaku" hbank="1" lbank="32" prog="73" />
+ <Patch name="Wind Ensmb" hbank="1" lbank="32" prog="74" />
+ <Patch name="SoloBasoon" hbank="1" lbank="32" prog="75" />
+ <Patch name="Tenor Solo" hbank="1" lbank="32" prog="76" />
+ <Patch name="ThoseSaxes" hbank="1" lbank="32" prog="77" />
+ <Patch name="Nautical" hbank="1" lbank="32" prog="78" />
+ <Patch name="MagicFlute" hbank="1" lbank="32" prog="79" />
+ <Patch name="Air Choir" hbank="1" lbank="32" prog="80" />
+ <Patch name="Ooh LaLa" hbank="1" lbank="32" prog="81" />
+ <Patch name="Sunsrizer" hbank="1" lbank="32" prog="82" />
+ <Patch name="Afterglow" hbank="1" lbank="32" prog="83" />
+ <Patch name="Meditation" hbank="1" lbank="32" prog="84" />
+ <Patch name="Marburg" hbank="1" lbank="32" prog="85" />
+ <Patch name="Kalimpanad" hbank="1" lbank="32" prog="86" />
+ <Patch name="Ocean Mood" hbank="1" lbank="32" prog="87" />
+ <Patch name="Bali Hai" hbank="1" lbank="32" prog="88" />
+ <Patch name="StaticMing" hbank="1" lbank="32" prog="89" />
+ <Patch name="Scientific" hbank="1" lbank="32" prog="90" />
+ <Patch name="Digidee" hbank="1" lbank="32" prog="91" />
+ <Patch name="Technoids" hbank="1" lbank="32" prog="92" />
+ <Patch name="C Quenced" hbank="1" lbank="32" prog="93" />
+ <Patch name="Dew Drops" hbank="1" lbank="32" prog="94" />
+ <Patch name="GldnFleece" hbank="1" lbank="32" prog="95" />
+ <Patch name="Dreamscape" hbank="1" lbank="32" prog="96" />
+ <Patch name="HighGlissz" hbank="1" lbank="32" prog="97" />
+ <Patch name="Shiftaling" hbank="1" lbank="32" prog="98" />
+ <Patch name="GenesisWav" hbank="1" lbank="32" prog="99" />
+ <Patch name="Quadratix" hbank="1" lbank="32" prog="100" />
+ <Patch name="Analogist" hbank="1" lbank="32" prog="101" />
+ <Patch name="Scarlamare" hbank="1" lbank="32" prog="102" />
+ <Patch name="ShineOn..." hbank="1" lbank="32" prog="103" />
+ <Patch name="ClassicSqr" hbank="1" lbank="32" prog="104" />
+ <Patch name="Porta Lead" hbank="1" lbank="32" prog="105" />
+ <Patch name="FatAnaLead" hbank="1" lbank="32" prog="106" />
+ <Patch name="Screamer!" hbank="1" lbank="32" prog="107" />
+ <Patch name="Fuzz Box" hbank="1" lbank="32" prog="108" />
+ <Patch name="Transformr" hbank="1" lbank="32" prog="109" />
+ <Patch name="AutoBahn" hbank="1" lbank="32" prog="110" />
+ <Patch name="ThrobPants" hbank="1" lbank="32" prog="111" />
+ <Patch name="EkectriKyv" hbank="1" lbank="32" prog="112" />
+ <Patch name="TheBeatnik" hbank="1" lbank="32" prog="113" />
+ <Patch name="ShakYerLup" hbank="1" lbank="32" prog="114" />
+ <Patch name="Raga No.1" hbank="1" lbank="32" prog="115" />
+ <Patch name="T I M E !" hbank="1" lbank="32" prog="116" />
+ <Patch name="Heartbeat" hbank="1" lbank="32" prog="117" />
+ <Patch name="Amazonia" hbank="1" lbank="32" prog="118" />
+ <Patch name="Nanites" hbank="1" lbank="32" prog="119" />
+ <Patch name="Basic Kit" hbank="1" lbank="32" prog="120" />
+ <Patch name="Straight 8" hbank="1" lbank="32" prog="121" />
+ <Patch name="Club Kit" hbank="1" lbank="32" prog="123" />
+ <Patch name="T Funk Era" hbank="1" lbank="32" prog="124" />
+ <Patch name="IsmellFUNK" hbank="1" lbank="32" prog="125" />
+ <Patch name="Chimes" hbank="1" lbank="32" prog="126" />
+ <Patch name="Orch Hits" hbank="1" lbank="32" prog="127" />
+ </PatchGroup>
+ <PatchGroup name="Preset2 Programs">
+ <Patch name="Solo Piano" hbank="2" lbank="32" prog="0" />
+ <Patch name="Pno&amp;Strngs" hbank="2" lbank="32" prog="1" />
+ <Patch name="Pno&amp;Roadz" hbank="2" lbank="32" prog="2" />
+ <Patch name="Hard Roads" hbank="2" lbank="32" prog="3" />
+ <Patch name="Suitcase" hbank="2" lbank="32" prog="4" />
+ <Patch name="Soft FM EP" hbank="2" lbank="32" prog="5" />
+ <Patch name="EP &amp; String" hbank="2" lbank="32" prog="6" />
+ <Patch name="Glassworks" hbank="2" lbank="32" prog="7" />
+ <Patch name="DirtyWurly" hbank="2" lbank="32" prog="8" />
+ <Patch name="Stik&amp;Tines" hbank="2" lbank="32" prog="9" />
+ <Patch name="Clavicomp" hbank="2" lbank="32" prog="10" />
+ <Patch name="Clavatar" hbank="2" lbank="32" prog="11" />
+ <Patch name="Harpsifunk" hbank="2" lbank="32" prog="12" />
+ <Patch name="Mad Vibes" hbank="2" lbank="32" prog="13" />
+ <Patch name="Woody Xylo" hbank="2" lbank="32" prog="14" />
+ <Patch name="Potsticker" hbank="2" lbank="32" prog="15" />
+ <Patch name="Watercan" hbank="2" lbank="32" prog="16" />
+ <Patch name="Chiff Bell" hbank="2" lbank="32" prog="17" />
+ <Patch name="Toy Bell" hbank="2" lbank="32" prog="18" />
+ <Patch name="Tacko Bell" hbank="2" lbank="32" prog="19" />
+ <Patch name="WhitrShade" hbank="2" lbank="32" prog="20" />
+ <Patch name="BluesOrgan" hbank="2" lbank="32" prog="21" />
+ <Patch name="GreasyOrgan" hbank="2" lbank="32" prog="22" />
+ <Patch name="Organ 66" hbank="2" lbank="32" prog="23" />
+ <Patch name="MetalOrgan" hbank="2" lbank="32" prog="24" />
+ <Patch name="Full Ranks" hbank="2" lbank="32" prog="25" />
+ <Patch name="SftPipeOrg" hbank="2" lbank="32" prog="26" />
+ <Patch name="2 Drawbars" hbank="2" lbank="32" prog="27" />
+ <Patch name="WrmAcrdion" hbank="2" lbank="32" prog="28" />
+ <Patch name="JazzHrmnca" hbank="2" lbank="32" prog="29" />
+ <Patch name="Acous6strg" hbank="2" lbank="32" prog="30" />
+ <Patch name="Big Body12" hbank="2" lbank="32" prog="31" />
+ <Patch name="Guitar Poem" hbank="2" lbank="32" prog="32" />
+ <Patch name="ThickNylon" hbank="2" lbank="32" prog="33" />
+ <Patch name="Silvertone" hbank="2" lbank="32" prog="34" />
+ <Patch name="818 Guitar" hbank="2" lbank="32" prog="35" />
+ <Patch name="Chunky" hbank="2" lbank="32" prog="36" />
+ <Patch name="Rock Lead" hbank="2" lbank="32" prog="37" />
+ <Patch name="CaralLezli" hbank="2" lbank="32" prog="38" />
+ <Patch name="Ethnoplukk" hbank="2" lbank="32" prog="39" />
+ <Patch name="FatUpright" hbank="2" lbank="32" prog="40" />
+ <Patch name="Face Bass" hbank="2" lbank="32" prog="41" />
+ <Patch name="Heavy Bass" hbank="2" lbank="32" prog="42" />
+ <Patch name="GothamBass" hbank="2" lbank="32" prog="43" />
+ <Patch name="No Frets!" hbank="2" lbank="32" prog="44" />
+ <Patch name="House Bass" hbank="2" lbank="32" prog="45" />
+ <Patch name="Rezzo Baze" hbank="2" lbank="32" prog="46" />
+ <Patch name="StreetBass" hbank="2" lbank="32" prog="47" />
+ <Patch name="TranceBass" hbank="2" lbank="32" prog="48" />
+ <Patch name="Dist Bass" hbank="2" lbank="32" prog="49" />
+ <Patch name="2 Violins" hbank="2" lbank="32" prog="50" />
+ <Patch name="Violin Orc" hbank="2" lbank="32" prog="51" />
+ <Patch name="Concerto" hbank="2" lbank="32" prog="52" />
+ <Patch name="StringAura" hbank="2" lbank="32" prog="53" />
+ <Patch name="OctaString" hbank="2" lbank="32" prog="54" />
+ <Patch name="Strng&amp;Timp" hbank="2" lbank="32" prog="55" />
+ <Patch name="SE Flange" hbank="2" lbank="32" prog="56" />
+ <Patch name="SynStrings" hbank="2" lbank="32" prog="57" />
+ <Patch name="Cello/Pizz" hbank="2" lbank="32" prog="58" />
+ <Patch name="HeavenHarp" hbank="2" lbank="32" prog="59" />
+ <Patch name="UseMWandAT" hbank="2" lbank="32" prog="60" />
+ <Patch name="Mute&amp;Flute" hbank="2" lbank="32" prog="61" />
+ <Patch name="RegalBones" hbank="2" lbank="32" prog="62" />
+ <Patch name="Fhorn&amp;Bssn" hbank="2" lbank="32" prog="63" />
+ <Patch name="ClsclHorns" hbank="2" lbank="32" prog="64" />
+ <Patch name="ClscSynBrs" hbank="2" lbank="32" prog="65" />
+ <Patch name="BrassTouch" hbank="2" lbank="32" prog="66" />
+ <Patch name="Sfz Brass" hbank="2" lbank="32" prog="67" />
+ <Patch name="BeBopHorns" hbank="2" lbank="32" prog="68" />
+ <Patch name="Orchestra2" hbank="2" lbank="32" prog="69" />
+ <Patch name="SingleFlut" hbank="2" lbank="32" prog="70" />
+ <Patch name="Bottle Pad" hbank="2" lbank="32" prog="71" />
+ <Patch name="PetersPipe" hbank="2" lbank="32" prog="72" />
+ <Patch name="Hard Pipes" hbank="2" lbank="32" prog="73" />
+ <Patch name="Wind Orch" hbank="2" lbank="32" prog="74" />
+ <Patch name="VeryEnglsh" hbank="2" lbank="32" prog="75" />
+ <Patch name="Brite Alto" hbank="2" lbank="32" prog="76" />
+ <Patch name="Sax ouch" hbank="2" lbank="32" prog="77" />
+ <Patch name="Wistelaan" hbank="2" lbank="32" prog="78" />
+ <Patch name="Shamanixst" hbank="2" lbank="32" prog="79" />
+ <Patch name="Nice Voice" hbank="2" lbank="32" prog="80" />
+ <Patch name="Glory Ahhs" hbank="2" lbank="32" prog="81" />
+ <Patch name="Dead Sea" hbank="2" lbank="32" prog="82" />
+ <Patch name="Anasthesia" hbank="2" lbank="32" prog="83" />
+ <Patch name="Sparks" hbank="2" lbank="32" prog="84" />
+ <Patch name="Rain Pad" hbank="2" lbank="32" prog="85" />
+ <Patch name="Pluck Pad" hbank="2" lbank="32" prog="86" />
+ <Patch name="Outland" hbank="2" lbank="32" prog="87" />
+ <Patch name="Swell Pad" hbank="2" lbank="32" prog="88" />
+ <Patch name="Mirage" hbank="2" lbank="32" prog="89" />
+ <Patch name="Blacksmith" hbank="2" lbank="32" prog="90" />
+ <Patch name="Silk&amp;Satin" hbank="2" lbank="32" prog="91" />
+ <Patch name="Synctax" hbank="2" lbank="32" prog="92" />
+ <Patch name="Delecea" hbank="2" lbank="32" prog="93" />
+ <Patch name="Comet Rain" hbank="2" lbank="32" prog="94" />
+ <Patch name="Nitrous" hbank="2" lbank="32" prog="95" />
+ <Patch name="Rez Blastz" hbank="2" lbank="32" prog="96" />
+ <Patch name="Intertwine" hbank="2" lbank="32" prog="97" />
+ <Patch name="Hold&amp;Sampl" hbank="2" lbank="32" prog="98" />
+ <Patch name="Serengeti" hbank="2" lbank="32" prog="99" />
+ <Patch name="VoltagePad" hbank="2" lbank="32" prog="100" />
+ <Patch name="Taurus III" hbank="2" lbank="32" prog="101" />
+ <Patch name="BladeRunnr" hbank="2" lbank="32" prog="102" />
+ <Patch name="SynTrumpet" hbank="2" lbank="32" prog="103" />
+ <Patch name="Triangular" hbank="2" lbank="32" prog="104" />
+ <Patch name="PortaWheel" hbank="2" lbank="32" prog="105" />
+ <Patch name="DiodeDoodl" hbank="2" lbank="32" prog="106" />
+ <Patch name="SuperNova" hbank="2" lbank="32" prog="107" />
+ <Patch name="Buzz Clip" hbank="2" lbank="32" prog="108" />
+ <Patch name="Angelsynth" hbank="2" lbank="32" prog="109" />
+ <Patch name="NineIncher" hbank="2" lbank="32" prog="110" />
+ <Patch name="Wonderland" hbank="2" lbank="32" prog="111" />
+ <Patch name="SyncoPress" hbank="2" lbank="32" prog="112" />
+ <Patch name="Disco Boy" hbank="2" lbank="32" prog="113" />
+ <Patch name="CrazyHorse" hbank="2" lbank="32" prog="114" />
+ <Patch name="TheSandMan" hbank="2" lbank="32" prog="115" />
+ <Patch name="OnionClock" hbank="2" lbank="32" prog="116" />
+ <Patch name="RoboShop" hbank="2" lbank="32" prog="117" />
+ <Patch name="TseTse Fly" hbank="2" lbank="32" prog="118" />
+ <Patch name="Bat Cave" hbank="2" lbank="32" prog="119" />
+ <Patch name="Pop Up Kit" hbank="2" lbank="32" prog="120" />
+ <Patch name="UrbanBliss" hbank="2" lbank="32" prog="121" />
+ <Patch name="Harlem Tek" hbank="2" lbank="32" prog="122" />
+ <Patch name="Techno Kit" hbank="2" lbank="32" prog="123" />
+ <Patch name="Dry70;sKit" hbank="2" lbank="32" prog="124" />
+ <Patch name="Gruvy Lube" hbank="2" lbank="32" prog="125" />
+ <Patch name="Marktree" hbank="2" lbank="32" prog="126" />
+ <Patch name="Danz Hitz" hbank="2" lbank="32" prog="127" />
+ </PatchGroup>
+ <PatchGroup name="Preset3 Programs">
+ <Patch name="Stoneway" hbank="3" lbank="32" prog="0" />
+ <Patch name="Piano&amp;Pad" hbank="3" lbank="32" prog="1" />
+ <Patch name="Player Ori" hbank="3" lbank="32" prog="2" />
+ <Patch name="SuperRoadz" hbank="3" lbank="32" prog="3" />
+ <Patch name="SoftSuitcs" hbank="3" lbank="32" prog="4" />
+ <Patch name="FM Tines" hbank="3" lbank="32" prog="5" />
+ <Patch name="Balladeer" hbank="3" lbank="32" prog="6" />
+ <Patch name="Electratak" hbank="3" lbank="32" prog="7" />
+ <Patch name="TrampWurly" hbank="3" lbank="32" prog="8" />
+ <Patch name="Bass&amp;Roadz" hbank="3" lbank="32" prog="9" />
+ <Patch name="LiquidClav" hbank="3" lbank="32" prog="10" />
+ <Patch name="ProfitClav" hbank="3" lbank="32" prog="11" />
+ <Patch name="8;4;Harpsi" hbank="3" lbank="32" prog="12" />
+ <Patch name="Elf Hammer" hbank="3" lbank="32" prog="13" />
+ <Patch name="Strukit" hbank="3" lbank="32" prog="14" />
+ <Patch name="Roundup" hbank="3" lbank="32" prog="15" />
+ <Patch name="AlloyGlock" hbank="3" lbank="32" prog="16" />
+ <Patch name="FairyBellz" hbank="3" lbank="32" prog="17" />
+ <Patch name="Ice Bell" hbank="3" lbank="32" prog="18" />
+ <Patch name="Waterphone" hbank="3" lbank="32" prog="19" />
+ <Patch name="BigBadPerc" hbank="3" lbank="32" prog="20" />
+ <Patch name="KeyClikOrg" hbank="3" lbank="32" prog="21" />
+ <Patch name="Dist Organ" hbank="3" lbank="32" prog="22" />
+ <Patch name="Survival" hbank="3" lbank="32" prog="23" />
+ <Patch name="LFO Lezly" hbank="3" lbank="32" prog="24" />
+ <Patch name="BritePipes" hbank="3" lbank="32" prog="25" />
+ <Patch name="Gothic Org" hbank="3" lbank="32" prog="26" />
+ <Patch name="KingsCourt" hbank="3" lbank="32" prog="27" />
+ <Patch name="ClrAcrdion" hbank="3" lbank="32" prog="28" />
+ <Patch name="PocketHarp" hbank="3" lbank="32" prog="29" />
+ <Patch name="AcHarmonic" hbank="3" lbank="32" prog="30" />
+ <Patch name="Gut Strung" hbank="3" lbank="32" prog="31" />
+ <Patch name="Dulcioto" hbank="3" lbank="32" prog="32" />
+ <Patch name="Steel Ride" hbank="3" lbank="32" prog="33" />
+ <Patch name="PedalSteel" hbank="3" lbank="32" prog="34" />
+ <Patch name="PassGuitar" hbank="3" lbank="32" prog="35" />
+ <Patch name="PowerSplit" hbank="3" lbank="32" prog="36" />
+ <Patch name="HeroHarmnx" hbank="3" lbank="32" prog="37" />
+ <Patch name="Ethnoba" hbank="3" lbank="32" prog="38" />
+ <Patch name="Ethnotal" hbank="3" lbank="32" prog="39" />
+ <Patch name="SharpStick" hbank="3" lbank="32" prog="40" />
+ <Patch name="Deep Bass" hbank="3" lbank="32" prog="41" />
+ <Patch name="Roundwound" hbank="3" lbank="32" prog="42" />
+ <Patch name="NuStudioBs" hbank="3" lbank="32" prog="43" />
+ <Patch name="Octaver" hbank="3" lbank="32" prog="44" />
+ <Patch name="SynAtkBass" hbank="3" lbank="32" prog="45" />
+ <Patch name="Funky Acid" hbank="3" lbank="32" prog="46" />
+ <Patch name="Dunce Biss" hbank="3" lbank="32" prog="47" />
+ <Patch name="ArndsHouse" hbank="3" lbank="32" prog="48" />
+ <Patch name="BassHarmnc" hbank="3" lbank="32" prog="49" />
+ <Patch name="Dark Cello" hbank="3" lbank="32" prog="50" />
+ <Patch name="Celli" hbank="3" lbank="32" prog="51" />
+ <Patch name="RichString" hbank="3" lbank="32" prog="52" />
+ <Patch name="SynthEnsmb" hbank="3" lbank="32" prog="53" />
+ <Patch name="HugeString" hbank="3" lbank="32" prog="54" />
+ <Patch name="Strng&amp;Perc" hbank="3" lbank="32" prog="55" />
+ <Patch name="LushStrings" hbank="3" lbank="32" prog="56" />
+ <Patch name="Ana String" hbank="3" lbank="32" prog="57" />
+ <Patch name="Pizz Pluck" hbank="3" lbank="32" prog="58" />
+ <Patch name="Harp Gliss" hbank="3" lbank="32" prog="59" />
+ <Patch name="TrumpetEns" hbank="3" lbank="32" prog="60" />
+ <Patch name="Orch Mutes" hbank="3" lbank="32" prog="61" />
+ <Patch name="Tromb Ens" hbank="3" lbank="32" prog="62" />
+ <Patch name="Ooh Horns" hbank="3" lbank="32" prog="63" />
+ <Patch name="Hard Tuba" hbank="3" lbank="32" prog="64" />
+ <Patch name="Matrix Brs" hbank="3" lbank="32" prog="65" />
+ <Patch name="EssexBrass" hbank="3" lbank="32" prog="66" />
+ <Patch name="HornExpans" hbank="3" lbank="32" prog="67" />
+ <Patch name="Sax&amp;Brass" hbank="3" lbank="32" prog="68" />
+ <Patch name="Fanfare" hbank="3" lbank="32" prog="69" />
+ <Patch name="Hard Flute" hbank="3" lbank="32" prog="70" />
+ <Patch name="Mutablow" hbank="3" lbank="32" prog="71" />
+ <Patch name="PanBristle" hbank="3" lbank="32" prog="72" />
+ <Patch name="Pastorale" hbank="3" lbank="32" prog="73" />
+ <Patch name="Dark Winds" hbank="3" lbank="32" prog="74" />
+ <Patch name="SprnoRcrdr" hbank="3" lbank="32" prog="75" />
+ <Patch name="G. Soprano" hbank="3" lbank="32" prog="76" />
+ <Patch name="BreathySax" hbank="3" lbank="32" prog="77" />
+ <Patch name="Maze Lead" hbank="3" lbank="32" prog="78" />
+ <Patch name="1001Nights" hbank="3" lbank="32" prog="79" />
+ <Patch name="VelOooz&amp;Aaz" hbank="3" lbank="32" prog="80" />
+ <Patch name="Atlantis" hbank="3" lbank="32" prog="81" />
+ <Patch name="Hen-Ya" hbank="3" lbank="32" prog="82" />
+ <Patch name="1stContact" hbank="3" lbank="32" prog="83" />
+ <Patch name="Applewine" hbank="3" lbank="32" prog="84" />
+ <Patch name="Amakudari" hbank="3" lbank="32" prog="85" />
+ <Patch name="ChirpPluck" hbank="3" lbank="32" prog="86" />
+ <Patch name="7th Wave" hbank="3" lbank="32" prog="87" />
+ <Patch name="Tidal Wave" hbank="3" lbank="32" prog="88" />
+ <Patch name="Nostromo" hbank="3" lbank="32" prog="89" />
+ <Patch name="Chromaphon" hbank="3" lbank="32" prog="90" />
+ <Patch name="Voice Bell" hbank="3" lbank="32" prog="91" />
+ <Patch name="TinSynLead" hbank="3" lbank="32" prog="92" />
+ <Patch name="Xpando Pad" hbank="3" lbank="32" prog="93" />
+ <Patch name="HeavenCent" hbank="3" lbank="32" prog="94" />
+ <Patch name="ShimmerPad" hbank="3" lbank="32" prog="95" />
+ <Patch name="Laboratory" hbank="3" lbank="32" prog="96" />
+ <Patch name="Red Aurora" hbank="3" lbank="32" prog="97" />
+ <Patch name="Helical" hbank="3" lbank="32" prog="98" />
+ <Patch name="Ice Forest" hbank="3" lbank="32" prog="99" />
+ <Patch name="Synth Bite" hbank="3" lbank="32" prog="100" />
+ <Patch name="Quentex" hbank="3" lbank="32" prog="101" />
+ <Patch name="Zalfous" hbank="3" lbank="32" prog="102" />
+ <Patch name="Brassy 5th" hbank="3" lbank="32" prog="103" />
+ <Patch name="Alpha Lead" hbank="3" lbank="32" prog="104" />
+ <Patch name="HighFunkLd" hbank="3" lbank="32" prog="105" />
+ <Patch name="BriteRezzo" hbank="3" lbank="32" prog="106" />
+ <Patch name="Wicked Owl" hbank="3" lbank="32" prog="107" />
+ <Patch name="Zip Lead" hbank="3" lbank="32" prog="108" />
+ <Patch name="T-Minus 1" hbank="3" lbank="32" prog="109" />
+ <Patch name="New Waves" hbank="3" lbank="32" prog="110" />
+ <Patch name="Rhythm X" hbank="3" lbank="32" prog="111" />
+ <Patch name="Insta-Gig" hbank="3" lbank="32" prog="112" />
+ <Patch name="Lung Gravy" hbank="3" lbank="32" prog="113" />
+ <Patch name="Spec Perc" hbank="3" lbank="32" prog="114" />
+ <Patch name="The Rat" hbank="3" lbank="32" prog="115" />
+ <Patch name="Teknologiz" hbank="3" lbank="32" prog="116" />
+ <Patch name="Gutteral" hbank="3" lbank="32" prog="117" />
+ <Patch name="VoodooBeat" hbank="3" lbank="32" prog="118" />
+ <Patch name="Final Dawn" hbank="3" lbank="32" prog="119" />
+ <Patch name="Ambi Rock" hbank="3" lbank="32" prog="120" />
+ <Patch name="Trash Canz" hbank="3" lbank="32" prog="121" />
+ <Patch name="Destructo!" hbank="3" lbank="32" prog="122" />
+ <Patch name="VocoderKit" hbank="3" lbank="32" prog="123" />
+ <Patch name="15ips Kit" hbank="3" lbank="32" prog="124" />
+ <Patch name="Trashy Kit" hbank="3" lbank="32" prog="125" />
+ <Patch name="Rainstick" hbank="3" lbank="32" prog="126" />
+ <Patch name="Hitz Peak" hbank="3" lbank="32" prog="127" />
+ </PatchGroup>
+ <PatchGroup name="User Programs">
+ <Patch name="1" hbank="0" lbank="32" prog="0" />
+ <Patch name="2" hbank="0" lbank="32" prog="1" />
+ <Patch name="3" hbank="0" lbank="32" prog="2" />
+ <Patch name="4" hbank="0" lbank="32" prog="3" />
+ <Patch name="5" hbank="0" lbank="32" prog="4" />
+ <Patch name="6" hbank="0" lbank="32" prog="5" />
+ <Patch name="7" hbank="0" lbank="32" prog="6" />
+ <Patch name="8" hbank="0" lbank="32" prog="7" />
+ <Patch name="9" hbank="0" lbank="32" prog="8" />
+ <Patch name="10" hbank="0" lbank="32" prog="9" />
+ <Patch name="11" hbank="0" lbank="32" prog="10" />
+ <Patch name="12" hbank="0" lbank="32" prog="11" />
+ <Patch name="13" hbank="0" lbank="32" prog="12" />
+ <Patch name="14" hbank="0" lbank="32" prog="13" />
+ <Patch name="15" hbank="0" lbank="32" prog="14" />
+ <Patch name="16" hbank="0" lbank="32" prog="15" />
+ <Patch name="17" hbank="0" lbank="32" prog="16" />
+ <Patch name="18" hbank="0" lbank="32" prog="17" />
+ <Patch name="19" hbank="0" lbank="32" prog="18" />
+ <Patch name="20" hbank="0" lbank="32" prog="19" />
+ <Patch name="21" hbank="0" lbank="32" prog="20" />
+ <Patch name="22" hbank="0" lbank="32" prog="21" />
+ <Patch name="23" hbank="0" lbank="32" prog="22" />
+ <Patch name="24" hbank="0" lbank="32" prog="23" />
+ <Patch name="25" hbank="0" lbank="32" prog="24" />
+ <Patch name="26" hbank="0" lbank="32" prog="25" />
+ <Patch name="27" hbank="0" lbank="32" prog="26" />
+ <Patch name="28" hbank="0" lbank="32" prog="27" />
+ <Patch name="29" hbank="0" lbank="32" prog="28" />
+ <Patch name="30" hbank="0" lbank="32" prog="29" />
+ <Patch name="31" hbank="0" lbank="32" prog="30" />
+ <Patch name="32" hbank="0" lbank="32" prog="31" />
+ <Patch name="33" hbank="0" lbank="32" prog="32" />
+ <Patch name="34" hbank="0" lbank="32" prog="33" />
+ <Patch name="35" hbank="0" lbank="32" prog="34" />
+ <Patch name="36" hbank="0" lbank="32" prog="35" />
+ <Patch name="37" hbank="0" lbank="32" prog="36" />
+ <Patch name="38" hbank="0" lbank="32" prog="37" />
+ <Patch name="39" hbank="0" lbank="32" prog="38" />
+ <Patch name="40" hbank="0" lbank="32" prog="39" />
+ <Patch name="41" hbank="0" lbank="32" prog="40" />
+ <Patch name="42" hbank="0" lbank="32" prog="41" />
+ <Patch name="43" hbank="0" lbank="32" prog="42" />
+ <Patch name="44" hbank="0" lbank="32" prog="43" />
+ <Patch name="45" hbank="0" lbank="32" prog="44" />
+ <Patch name="46" hbank="0" lbank="32" prog="45" />
+ <Patch name="47" hbank="0" lbank="32" prog="46" />
+ <Patch name="48" hbank="0" lbank="32" prog="47" />
+ <Patch name="49" hbank="0" lbank="32" prog="48" />
+ <Patch name="50" hbank="0" lbank="32" prog="49" />
+ <Patch name="51" hbank="0" lbank="32" prog="50" />
+ <Patch name="52" hbank="0" lbank="32" prog="51" />
+ <Patch name="53" hbank="0" lbank="32" prog="52" />
+ <Patch name="54" hbank="0" lbank="32" prog="53" />
+ <Patch name="55" hbank="0" lbank="32" prog="54" />
+ <Patch name="56" hbank="0" lbank="32" prog="55" />
+ <Patch name="57" hbank="0" lbank="32" prog="56" />
+ <Patch name="58" hbank="0" lbank="32" prog="57" />
+ <Patch name="59" hbank="0" lbank="32" prog="58" />
+ <Patch name="60" hbank="0" lbank="32" prog="59" />
+ <Patch name="61" hbank="0" lbank="32" prog="60" />
+ <Patch name="62" hbank="0" lbank="32" prog="61" />
+ <Patch name="63" hbank="0" lbank="32" prog="62" />
+ <Patch name="64" hbank="0" lbank="32" prog="63" />
+ <Patch name="65" hbank="0" lbank="32" prog="64" />
+ <Patch name="66" hbank="0" lbank="32" prog="65" />
+ <Patch name="67" hbank="0" lbank="32" prog="66" />
+ <Patch name="68" hbank="0" lbank="32" prog="67" />
+ <Patch name="69" hbank="0" lbank="32" prog="68" />
+ <Patch name="70" hbank="0" lbank="32" prog="69" />
+ <Patch name="71" hbank="0" lbank="32" prog="70" />
+ <Patch name="72" hbank="0" lbank="32" prog="71" />
+ <Patch name="73" hbank="0" lbank="32" prog="72" />
+ <Patch name="74" hbank="0" lbank="32" prog="73" />
+ <Patch name="75" hbank="0" lbank="32" prog="74" />
+ <Patch name="76" hbank="0" lbank="32" prog="75" />
+ <Patch name="77" hbank="0" lbank="32" prog="76" />
+ <Patch name="78" hbank="0" lbank="32" prog="77" />
+ <Patch name="79" hbank="0" lbank="32" prog="78" />
+ <Patch name="80" hbank="0" lbank="32" prog="79" />
+ <Patch name="81" hbank="0" lbank="32" prog="80" />
+ <Patch name="82" hbank="0" lbank="32" prog="81" />
+ <Patch name="83" hbank="0" lbank="32" prog="82" />
+ <Patch name="84" hbank="0" lbank="32" prog="83" />
+ <Patch name="85" hbank="0" lbank="32" prog="84" />
+ <Patch name="86" hbank="0" lbank="32" prog="85" />
+ <Patch name="87" hbank="0" lbank="32" prog="86" />
+ <Patch name="88" hbank="0" lbank="32" prog="87" />
+ <Patch name="89" hbank="0" lbank="32" prog="88" />
+ <Patch name="90" hbank="0" lbank="32" prog="89" />
+ <Patch name="91" hbank="0" lbank="32" prog="90" />
+ <Patch name="92" hbank="0" lbank="32" prog="91" />
+ <Patch name="93" hbank="0" lbank="32" prog="92" />
+ <Patch name="94" hbank="0" lbank="32" prog="93" />
+ <Patch name="95" hbank="0" lbank="32" prog="94" />
+ <Patch name="96" hbank="0" lbank="32" prog="95" />
+ <Patch name="97" hbank="0" lbank="32" prog="96" />
+ <Patch name="98" hbank="0" lbank="32" prog="97" />
+ <Patch name="99" hbank="0" lbank="32" prog="98" />
+ <Patch name="100" hbank="0" lbank="32" prog="99" />
+ <Patch name="101" hbank="0" lbank="32" prog="100" />
+ <Patch name="102" hbank="0" lbank="32" prog="101" />
+ <Patch name="103" hbank="0" lbank="32" prog="102" />
+ <Patch name="104" hbank="0" lbank="32" prog="103" />
+ <Patch name="105" hbank="0" lbank="32" prog="104" />
+ <Patch name="106" hbank="0" lbank="32" prog="105" />
+ <Patch name="107" hbank="0" lbank="32" prog="106" />
+ <Patch name="108" hbank="0" lbank="32" prog="107" />
+ <Patch name="109" hbank="0" lbank="32" prog="108" />
+ <Patch name="110" hbank="0" lbank="32" prog="109" />
+ <Patch name="111" hbank="0" lbank="32" prog="110" />
+ <Patch name="112" hbank="0" lbank="32" prog="111" />
+ <Patch name="113" hbank="0" lbank="32" prog="112" />
+ <Patch name="114" hbank="0" lbank="32" prog="113" />
+ <Patch name="115" hbank="0" lbank="32" prog="114" />
+ <Patch name="116" hbank="0" lbank="32" prog="115" />
+ <Patch name="117" hbank="0" lbank="32" prog="116" />
+ <Patch name="118" hbank="0" lbank="32" prog="117" />
+ <Patch name="119" hbank="0" lbank="32" prog="118" />
+ <Patch name="120" hbank="0" lbank="32" prog="119" />
+ <Patch name="121" hbank="0" lbank="32" prog="120" />
+ <Patch name="122" hbank="0" lbank="32" prog="121" />
+ <Patch name="123" hbank="0" lbank="32" prog="122" />
+ <Patch name="124" hbank="0" lbank="32" prog="123" />
+ <Patch name="125" hbank="0" lbank="32" prog="124" />
+ <Patch name="126" hbank="0" lbank="32" prog="125" />
+ <Patch name="127" hbank="0" lbank="32" prog="126" />
+ <Patch name="128" hbank="0" lbank="32" prog="127" />
+ </PatchGroup>
+ <Controller name="Program" type="Program" />
+ </MidiInstrument>
+</muse>
diff --git a/muse2/share/instruments/Emu-4mbgsgmmt-sf.idf b/muse2/share/instruments/Emu-4mbgsgmmt-sf.idf
new file mode 100644
index 00000000..b8b312c9
--- /dev/null
+++ b/muse2/share/instruments/Emu-4mbgsgmmt-sf.idf
@@ -0,0 +1,440 @@
+<?xml version="1.0"?>
+<muse version="1.0">
+ <MidiInstrument name="Emu 4mbgsgmmt sound font" nullparam="32639">
+ <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 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" />
+ </PatchGroup>
+ <PatchGroup name="Bass MT">
+ <Patch name="Synth Bass 1 MT" hbank="127" lbank="0" prog="28" />
+ <Patch name="Synth Bass 2 MT" hbank="127" lbank="0" prog="29" />
+ <Patch name="Synth Bass 3 MT" hbank="127" lbank="0" prog="30" />
+ <Patch name="Synth Bass 4 MT" hbank="127" lbank="0" prog="31" />
+ <Patch name="Acou Bass 1" hbank="127" lbank="0" prog="64" />
+ <Patch name="Acou Bass 2" hbank="127" lbank="0" prog="65" />
+ <Patch name="Elec Bass 1" hbank="127" lbank="0" prog="66" />
+ <Patch name="Elec Bass 2" hbank="127" lbank="0" prog="67" />
+ <Patch name="Slap Bass 1 MT" hbank="127" lbank="0" prog="68" />
+ <Patch name="Slap Bass 2 MT" hbank="127" lbank="0" prog="69" />
+ <Patch name="Fretless 1" hbank="127" lbank="0" prog="70" />
+ <Patch name="Fretless 2" hbank="127" lbank="0" prog="71" />
+ </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 Horns" hbank="0" lbank="0" prog="60" />
+ <Patch name="Brass" hbank="0" lbank="0" prog="61" />
+ <Patch name="Brass 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="Synth Brass 2" hbank="0" lbank="0" prog="63" />
+ <Patch name="Synth Brass 4" hbank="8" lbank="0" prog="63" />
+ </PatchGroup>
+ <PatchGroup name="Brass MT">
+ <Patch name="Synth Brass 1 MT" hbank="127" lbank="0" prog="24" />
+ <Patch name="Synth Brass 2 MT" hbank="127" lbank="0" prog="25" />
+ <Patch name="Synth Brass 3 MT" hbank="127" lbank="0" prog="26" />
+ <Patch name="Synth Brass 4 MT" hbank="127" lbank="0" prog="27" />
+ <Patch name="Trumpet 1" hbank="127" lbank="0" prog="88" />
+ <Patch name="Trumpet 2" hbank="127" lbank="0" prog="89" />
+ <Patch name="Trombone 1" hbank="127" lbank="0" prog="90" />
+ <Patch name="Trombone 2" hbank="127" lbank="0" prog="91" />
+ <Patch name="French Horn 1" hbank="127" lbank="0" prog="92" />
+ <Patch name="French Horn 2" hbank="127" lbank="0" prog="93" />
+ <Patch name="Tuba MT" hbank="127" lbank="0" prog="94" />
+ <Patch name="Brass Section 1" hbank="127" lbank="0" prog="95" />
+ <Patch name="Brass Section 2" hbank="127" lbank="0" prog="96" />
+ </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="Church Bell" hbank="8" lbank="0" prog="14" />
+ <Patch name="Dulcimer" hbank="0" lbank="0" prog="15" />
+ </PatchGroup>
+ <PatchGroup name="Chromatic Perc MT">
+ <Patch name="Celesta 1" hbank="127" lbank="0" prog="22" />
+ <Patch name="Celesta 2" hbank="127" lbank="0" prog="23" />
+ <Patch name="Vibes 1" hbank="127" lbank="0" prog="97" />
+ <Patch name="Vibes 2" hbank="127" lbank="0" prog="98" />
+ <Patch name="Syn Mallet" hbank="127" lbank="0" prog="99" />
+ <Patch name="Windbell" hbank="127" lbank="0" prog="100" />
+ <Patch name="Glock" hbank="127" lbank="0" prog="101" />
+ <Patch name="Tube Bell" hbank="127" lbank="0" prog="102" />
+ <Patch name="Xylophone MT" hbank="127" lbank="0" prog="103" />
+ <Patch name="Marimba MT" hbank="127" lbank="0" prog="104" />
+ </PatchGroup>
+ <PatchGroup name="Drums">
+ <Patch name="Standard" hbank="127" prog="0" drum="1" />
+ <Patch name="Room" hbank="127" prog="8" drum="1" />
+ <Patch name="Power" hbank="127" prog="16" drum="1" />
+ <Patch name="Electronic" hbank="127" prog="24" drum="1" />
+ <Patch name="TR 808" hbank="127" prog="25" drum="1" />
+ <Patch name="Jazz" hbank="127" prog="32" drum="1" />
+ <Patch name="Brush" hbank="127" prog="40" drum="1" />
+ <Patch name="Orchestra" hbank="127" prog="48" drum="1" />
+ <Patch name="SFX" hbank="127" prog="56" drum="1" />
+ <Patch name="CM-64/32 Set" hbank="127" prog="127" drum="1" />
+ </PatchGroup>
+ <PatchGroup name="Ensemble">
+ <Patch name="Strings" hbank="0" lbank="0" prog="48" />
+ <Patch name="Orchestral Pad" hbank="8" lbank="0" prog="48" />
+ <Patch name="Slow Strings" hbank="0" lbank="0" prog="49" />
+ <Patch name="Synth Strings 1" hbank="0" lbank="0" prog="50" />
+ <Patch name="Synth Strings 3" hbank="8" 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 Vox" hbank="0" lbank="0" prog="54" />
+ <Patch name="Orchestra Hit" hbank="0" lbank="0" prog="55" />
+ </PatchGroup>
+ <PatchGroup name="Ensemble MT">
+ <Patch name="String Section 1" hbank="127" lbank="0" prog="48" />
+ <Patch name="String Section 2" hbank="127" lbank="0" prog="49" />
+ <Patch name="String Section 3" hbank="127" lbank="0" prog="50" />
+ <Patch name="Orchestral Hit MT" hbank="127" lbank="0" prog="122" />
+ </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="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="Shenai" hbank="0" lbank="0" prog="111" />
+ </PatchGroup>
+ <PatchGroup name="Ethnic MT">
+ <Patch name="Sitar MT" hbank="127" lbank="0" prog="63" />
+ <Patch name="Koto MT" hbank="127" lbank="0" prog="105" />
+ <Patch name="Sho" hbank="127" lbank="0" prog="106" />
+ <Patch name="Shakuhachi MT" hbank="127" lbank="0" prog="107" />
+ </PatchGroup>
+ <PatchGroup name="Guitar">
+ <Patch name="Nylon Guitar" hbank="0" lbank="0" prog="24" />
+ <Patch name="Ukulele" hbank="8" lbank="0" prog="24" />
+ <Patch name="Steel Guitar" hbank="0" lbank="0" prog="25" />
+ <Patch name="12 String Guitar" hbank="8" lbank="0" prog="25" />
+ <Patch name="Mandolin" hbank="9" lbank="0" prog="25" />
+ <Patch name="Jazz Guitar" hbank="0" lbank="0" prog="26" />
+ <Patch name="Hawaiian Guitar" hbank="8" lbank="0" prog="26" />
+ <Patch name="Clean Guitar" hbank="0" lbank="0" prog="27" />
+ <Patch name="Chorused 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="Overdrive Guitar" hbank="0" lbank="0" prog="29" />
+ <Patch name="Distortion Guitar" hbank="0" lbank="0" prog="30" />
+ <Patch name="Feedback Guitar" hbank="8" lbank="0" prog="30" />
+ <Patch name="Guitar Harmonics" hbank="0" lbank="0" prog="31" />
+ <Patch name="Guitar Feedback" hbank="8" lbank="0" prog="31" />
+ </PatchGroup>
+ <PatchGroup name="Guitar MT">
+ <Patch name="Guitar 1" hbank="127" lbank="0" prog="59" />
+ <Patch name="Guitar 2" hbank="127" lbank="0" prog="60" />
+ <Patch name="Elec Guitar 1" hbank="127" lbank="0" prog="61" />
+ <Patch name="Elec Guitar 2" hbank="127" lbank="0" prog="62" />
+ </PatchGroup>
+ <PatchGroup name="Organ">
+ <Patch name="Drawbar Organ" hbank="0" lbank="0" prog="16" />
+ <Patch name="Detuned Organ 1" hbank="8" lbank="0" prog="16" />
+ <Patch name="Perc. Organ" hbank="0" lbank="0" prog="17" />
+ <Patch name="Detuned Organ 2" hbank="8" 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="Church Organ 2" hbank="8" 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="Italian Accordion" 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="Organ MT">
+ <Patch name="Elec Organ 1" hbank="127" lbank="0" prog="8" />
+ <Patch name="Elec Organ 2" hbank="127" lbank="0" prog="9" />
+ <Patch name="Elec Organ 3" hbank="127" lbank="0" prog="10" />
+ <Patch name="Elec Organ 4" hbank="127" lbank="0" prog="11" />
+ <Patch name="Pipe Organ 1" hbank="127" lbank="0" prog="12" />
+ <Patch name="Pipe Organ 2" hbank="127" lbank="0" prog="13" />
+ <Patch name="Pipe Organ 3" hbank="127" lbank="0" prog="14" />
+ <Patch name="Accordion MT" hbank="127" lbank="0" prog="15" />
+ <Patch name="Harmonica MT" hbank="127" lbank="0" prog="87" />
+ </PatchGroup>
+ <PatchGroup name="Percussive">
+ <Patch name="Tinker Bell" hbank="0" lbank="0" prog="112" />
+ <Patch name="Agogo" hbank="0" lbank="0" prog="113" />
+ <Patch name="Steel Drum" hbank="0" lbank="0" prog="114" />
+ <Patch name="Wood Block" 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 Bass Drum" hbank="8" lbank="0" prog="116" />
+ <Patch name="Melodic Tom" hbank="0" lbank="0" prog="117" />
+ <Patch name="Melo Tom 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="Reverse Cymbal" hbank="0" lbank="0" prog="119" />
+ </PatchGroup>
+ <PatchGroup name="Percussive MT">
+ <Patch name="Melodic Tom MT" hbank="127" lbank="0" prog="113" />
+ <Patch name="Deep Snare" hbank="127" lbank="0" prog="114" />
+ <Patch name="Elec Perc 1" hbank="127" lbank="0" prog="115" />
+ <Patch name="Elec Perc 2" hbank="127" lbank="0" prog="116" />
+ <Patch name="Taiko MT" hbank="127" lbank="0" prog="117" />
+ <Patch name="Taiko Rim" hbank="127" lbank="0" prog="118" />
+ <Patch name="Cymbal" hbank="127" lbank="0" prog="119" />
+ <Patch name="Castanets MT" hbank="127" lbank="0" prog="120" />
+ <Patch name="Triangle" hbank="127" lbank="0" prog="121" />
+ </PatchGroup>
+ <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="Detuned EP 1" hbank="8" 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="Harpsichord" hbank="0" lbank="0" prog="6" />
+ <Patch name="Coupled Harpsichord" hbank="8" lbank="0" prog="6" />
+ <Patch name="Clavinet" hbank="0" lbank="0" prog="7" />
+ </PatchGroup>
+ <PatchGroup name="Piano MT">
+ <Patch name="Acou Piano 1" hbank="127" lbank="0" prog="0" />
+ <Patch name="Acou Piano 2" hbank="127" lbank="0" prog="1" />
+ <Patch name="Acou Piano 3" hbank="127" lbank="0" prog="2" />
+ <Patch name="Elec Piano 1" hbank="127" lbank="0" prog="3" />
+ <Patch name="Elec Piano 2" hbank="127" lbank="0" prog="4" />
+ <Patch name="Elec Piano 3" hbank="127" lbank="0" prog="5" />
+ <Patch name="Elec Piano 4" hbank="127" lbank="0" prog="6" />
+ <Patch name="Honkytonk" hbank="127" lbank="0" prog="7" />
+ <Patch name="Harpsichord 1" hbank="127" lbank="0" prog="16" />
+ <Patch name="Harpsichord 2" hbank="127" lbank="0" prog="17" />
+ <Patch name="Harpsichord 3" hbank="127" lbank="0" prog="18" />
+ <Patch name="Clavinet 1" hbank="127" lbank="0" prog="19" />
+ <Patch name="Clavinet 2" hbank="127" lbank="0" prog="20" />
+ <Patch name="Clavinet 3" hbank="127" lbank="0" prog="21" />
+ </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="Bottle Chiff" 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="Pipe MT">
+ <Patch name="Flute 1" hbank="127" lbank="0" prog="72" />
+ <Patch name="Flute 2" hbank="127" lbank="0" prog="73" />
+ <Patch name="Piccolo 1" hbank="127" lbank="0" prog="74" />
+ <Patch name="Piccolo 2" hbank="127" lbank="0" prog="75" />
+ <Patch name="Recorder MT" hbank="127" lbank="0" prog="76" />
+ <Patch name="Pan Pipes" hbank="127" lbank="0" prog="77" />
+ <Patch name="Whistle 1" hbank="127" lbank="0" prog="108" />
+ <Patch name="Whistle 2" hbank="127" lbank="0" prog="109" />
+ <Patch name="Bottleblow" hbank="127" lbank="0" prog="110" />
+ <Patch name="Breathpipe" hbank="127" lbank="0" prog="111" />
+ </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="Reed MT">
+ <Patch name="Sax 1" hbank="127" lbank="0" prog="78" />
+ <Patch name="Sax 2" hbank="127" lbank="0" prog="79" />
+ <Patch name="Sax 3" hbank="127" lbank="0" prog="80" />
+ <Patch name="Sax 4" hbank="127" lbank="0" prog="81" />
+ <Patch name="Clarinet 1" hbank="127" lbank="0" prog="82" />
+ <Patch name="Clarinet 2" hbank="127" lbank="0" prog="83" />
+ <Patch name="Oboe MT" hbank="127" lbank="0" prog="84" />
+ <Patch name="English Horn MT" hbank="127" lbank="0" prog="85" />
+ <Patch name="Bassoon MT" hbank="127" lbank="0" prog="86" />
+ </PatchGroup>
+ <PatchGroup name="Special FX">
+ <Patch name="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="Fl. 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" 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 Slam" 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="Helicopter" hbank="0" lbank="0" prog="125" />
+ <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="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="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="Gun Shot" hbank="0" lbank="0" prog="127" />
+ <Patch name="Machine Gun" hbank="1" lbank="0" prog="127" />
+ <Patch name="Lazergun" hbank="2" lbank="0" prog="127" />
+ <Patch name="Explosion" hbank="3" lbank="0" prog="127" />
+ </PatchGroup>
+ <PatchGroup name="Special FX MT">
+ <Patch name="Telephone" hbank="127" lbank="0" prog="123" />
+ <Patch name="Bird Tweet" hbank="127" lbank="0" prog="124" />
+ <Patch name="Jungle Tune" hbank="127" lbank="0" prog="127" />
+ </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 Strings" hbank="0" lbank="0" prog="44" />
+ <Patch name="Pizzicato" 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="Strings/Orch MT">
+ <Patch name="Pizzicato MT" hbank="127" lbank="0" prog="51" />
+ <Patch name="Violin 1" hbank="127" lbank="0" prog="52" />
+ <Patch name="Violin 2" hbank="127" lbank="0" prog="53" />
+ <Patch name="Cello 1" hbank="127" lbank="0" prog="54" />
+ <Patch name="Cello 2" hbank="127" lbank="0" prog="55" />
+ <Patch name="Contrabass MT" hbank="127" lbank="0" prog="56" />
+ <Patch name="Harp 1" hbank="127" lbank="0" prog="57" />
+ <Patch name="Harp 2" hbank="127" lbank="0" prog="58" />
+ <Patch name="Timpani MT" hbank="127" lbank="0" prog="112" />
+ </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="Atmosphere" hbank="0" lbank="0" prog="99" />
+ <Patch name="Brightness" hbank="0" lbank="0" prog="100" />
+ <Patch name="Goblin" hbank="0" lbank="0" prog="101" />
+ <Patch name="Echo Drops" hbank="0" lbank="0" prog="102" />
+ <Patch name="Star Theme" hbank="0" lbank="0" prog="103" />
+ </PatchGroup>
+ <PatchGroup name="Synth FX MT">
+ <Patch name="Fantasy" hbank="127" lbank="0" prog="32" />
+ <Patch name="Harmo Pan" hbank="127" lbank="0" prog="33" />
+ <Patch name="Chorale" hbank="127" lbank="0" prog="34" />
+ <Patch name="Glasses" hbank="127" lbank="0" prog="35" />
+ <Patch name="Soundtrack MT" hbank="127" lbank="0" prog="36" />
+ <Patch name="Atmosphere MT" hbank="127" lbank="0" prog="37" />
+ <Patch name="Warm Bell" hbank="127" lbank="0" prog="38" />
+ <Patch name="Funny Vox" hbank="127" lbank="0" prog="39" />
+ <Patch name="Echo Bell" hbank="127" lbank="0" prog="40" />
+ <Patch name="Ice Rain MT" hbank="127" lbank="0" prog="41" />
+ <Patch name="Oboe 2001" hbank="127" lbank="0" prog="42" />
+ <Patch name="Echo Pan" hbank="127" lbank="0" prog="43" />
+ <Patch name="Water Bell" hbank="127" lbank="0" prog="126" />
+ </PatchGroup>
+ <PatchGroup name="Synth Lead">
+ <Patch name="Square Wave" hbank="0" 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="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 &amp; Lead" hbank="0" lbank="0" prog="87" />
+ </PatchGroup>
+ <PatchGroup name="Synth Lead MT">
+ <Patch name="Doctor Solo" hbank="127" lbank="0" prog="44" />
+ <Patch name="School Daze" hbank="127" lbank="0" prog="45" />
+ <Patch name="Bell Singer" hbank="127" lbank="0" prog="46" />
+ </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="Poly Synth" hbank="0" lbank="0" prog="90" />
+ <Patch name="Space Voice" hbank="0" lbank="0" prog="91" />
+ <Patch name="Bowed Glass" hbank="0" lbank="0" prog="92" />
+ <Patch name="Metal 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 Pad MT">
+ <Patch name="Big Notes Pad" hbank="127" lbank="0" prog="125" />
+ </PatchGroup>
+ <Controller name="Modulation" l="1" />
+ <Controller name="PortamentoTime" l="5" />
+ <Controller name="MainVolume" l="7" init="100" />
+ <Controller name="Pan" l="10" min="-64" max="63" init="0" />
+ <Controller name="Expression" l="11" init="127" />
+ <Controller name="GenPurpose1" l="16" />
+ <Controller name="GenPurpose2" l="17" />
+ <Controller name="GenPurpose3" l="18" />
+ <Controller name="GenPurpose4" l="19" />
+ <Controller name="Sustain" l="64" />
+ <Controller name="Portamento" l="65" />
+ <Controller name="Sostenuto" l="66" />
+ <Controller name="SoftPedal" l="67" />
+ <Controller name="HarmonicContent" l="68" />
+ <Controller name="ReleaseTime" l="72" />
+ <Controller name="AttackTime" l="73" />
+ <Controller name="Brightness" l="74" init="127" />
+ <Controller name="PortamentoControl" l="75" />
+ <Controller name="Effect1Depth" l="76" />
+ <Controller name="Effect3Depth" l="93" />
+ <Controller name="VariationSend" l="94" init="0" />
+ <Controller name="AllSoundsOff" l="120" />
+ <Controller name="ResetAllController" l="121" />
+ <Controller name="AllNotesOff" l="123" />
+ <Controller name="PitchBendSensitivity" type="RPN" h="0" l="0" max="24" init="2" />
+ <Controller name="FineTuning" type="RPN" h="0" l="1" min="-64" max="63" init="0" />
+ <Controller name="VibratoRate" type="NRPN" h="1" l="8" />
+ <Controller name="VibratoDepth" type="NRPN" h="1" l="9" />
+ <Controller name="VibratoDelay" type="NRPN" h="1" l="10" />
+ <Controller name="FilterCutoffFreq" type="NRPN" h="1" l="32" />
+ <Controller name="FilterResonance" type="NRPN" h="1" l="33" />
+ <Controller name="AttackRate" type="NRPN" h="1" l="99" />
+ <Controller name="DecayRate" type="NRPN" h="1" l="100" />
+ <Controller name="ReleaseRate" type="NRPN" h="1" l="102" />
+ <Controller name="DrumPitchCoarseTune" type="NRPN" h="24" l="pitch" min="-64" max="63" />
+ <Controller name="DrumLevel" type="NRPN" h="26" l="pitch" />
+ <Controller name="DrumPanpot" type="NRPN" h="28" l="pitch" min="-64" max="63" init="0" />
+ <Controller name="DrumReverbSend" type="NRPN" h="29" l="pitch" />
+ <Controller name="DrumChorusSend" type="NRPN" h="30" l="pitch" />
+ <Controller name="Pitch" type="Pitch" />
+ <Controller name="Program" type="Program" />
+ </MidiInstrument>
+</muse>
diff --git a/muse2/share/instruments/Hammond_XB-1.idf b/muse2/share/instruments/Hammond_XB-1.idf
new file mode 100644
index 00000000..06896383
--- /dev/null
+++ b/muse2/share/instruments/Hammond_XB-1.idf
@@ -0,0 +1,89 @@
+<?xml version="1.0"?>
+<muse version="1.0">
+ <MidiInstrument name="Hammond XB-1">
+ <PatchGroup name="Cancel">
+ <Patch name="Cancel" hbank="0" lbank="0" prog="0" />
+ </PatchGroup>
+ <PatchGroup name="Bank A">
+ <Patch name="A-1" hbank="0" lbank="0" prog="1" />
+ <Patch name="A-2" hbank="0" lbank="0" prog="2" />
+ <Patch name="A-3" hbank="0" lbank="0" prog="3" />
+ <Patch name="A-4" hbank="0" lbank="0" prog="4" />
+ <Patch name="A-5" hbank="0" lbank="0" prog="5" />
+ <Patch name="A-6" hbank="0" lbank="0" prog="6" />
+ <Patch name="A-7" hbank="0" lbank="0" prog="7" />
+ <Patch name="A-8" hbank="0" lbank="0" prog="8" />
+ </PatchGroup>
+ <PatchGroup name="Bank B">
+ <Patch name="B-1" hbank="0" lbank="0" prog="9" />
+ <Patch name="B-2" hbank="0" lbank="0" prog="10" />
+ <Patch name="B-3" hbank="0" lbank="0" prog="11" />
+ <Patch name="B-4" hbank="0" lbank="0" prog="12" />
+ <Patch name="B-5" hbank="0" lbank="0" prog="13" />
+ <Patch name="B-6" hbank="0" lbank="0" prog="14" />
+ <Patch name="B-7" hbank="0" lbank="0" prog="15" />
+ <Patch name="B-8" hbank="0" lbank="0" prog="16" />
+ </PatchGroup>
+ <PatchGroup name="Bank C">
+ <Patch name="C-1" hbank="0" lbank="0" prog="17" />
+ <Patch name="C-2" hbank="0" lbank="0" prog="18" />
+ <Patch name="C-3" hbank="0" lbank="0" prog="19" />
+ <Patch name="C-4" hbank="0" lbank="0" prog="20" />
+ <Patch name="C-5" hbank="0" lbank="0" prog="21" />
+ <Patch name="C-6" hbank="0" lbank="0" prog="22" />
+ <Patch name="C-7" hbank="0" lbank="0" prog="23" />
+ <Patch name="C-8" hbank="0" lbank="0" prog="24" />
+ </PatchGroup>
+ <PatchGroup name="Bank D">
+ <Patch name="D-1" hbank="0" lbank="0" prog="25" />
+ <Patch name="D-2" hbank="0" lbank="0" prog="26" />
+ <Patch name="D-3" hbank="0" lbank="0" prog="27" />
+ <Patch name="D-4" hbank="0" lbank="0" prog="28" />
+ <Patch name="D-5" hbank="0" lbank="0" prog="29" />
+ <Patch name="D-6" hbank="0" lbank="0" prog="30" />
+ <Patch name="D-7" hbank="0" lbank="0" prog="31" />
+ <Patch name="D-8" hbank="0" lbank="0" prog="32" />
+ </PatchGroup>
+ <PatchGroup name="Bank E">
+ <Patch name="E-1" hbank="0" lbank="0" prog="33" />
+ <Patch name="E-2" hbank="0" lbank="0" prog="34" />
+ <Patch name="E-3" hbank="0" lbank="0" prog="35" />
+ <Patch name="E-4" hbank="0" lbank="0" prog="36" />
+ <Patch name="E-5" hbank="0" lbank="0" prog="37" />
+ <Patch name="E-6" hbank="0" lbank="0" prog="38" />
+ <Patch name="E-7" hbank="0" lbank="0" prog="39" />
+ <Patch name="E-8" hbank="0" lbank="0" prog="40" />
+ </PatchGroup>
+ <PatchGroup name="Bank F">
+ <Patch name="F-1" hbank="0" lbank="0" prog="41" />
+ <Patch name="F-2" hbank="0" lbank="0" prog="42" />
+ <Patch name="F-3" hbank="0" lbank="0" prog="43" />
+ <Patch name="F-4" hbank="0" lbank="0" prog="44" />
+ <Patch name="F-5" hbank="0" lbank="0" prog="45" />
+ <Patch name="F-6" hbank="0" lbank="0" prog="46" />
+ <Patch name="F-7" hbank="0" lbank="0" prog="47" />
+ <Patch name="F-8" hbank="0" lbank="0" prog="48" />
+ </PatchGroup>
+ <PatchGroup name="Bank G">
+ <Patch name="G-1" hbank="0" lbank="0" prog="49" />
+ <Patch name="G-2" hbank="0" lbank="0" prog="50" />
+ <Patch name="G-3" hbank="0" lbank="0" prog="51" />
+ <Patch name="G-4" hbank="0" lbank="0" prog="52" />
+ <Patch name="G-5" hbank="0" lbank="0" prog="53" />
+ <Patch name="G-6" hbank="0" lbank="0" prog="54" />
+ <Patch name="G-7" hbank="0" lbank="0" prog="55" />
+ <Patch name="G-8" hbank="0" lbank="0" prog="56" />
+ </PatchGroup>
+ <PatchGroup name="Bank H">
+ <Patch name="H-1" hbank="0" lbank="0" prog="57" />
+ <Patch name="H-2" hbank="0" lbank="0" prog="58" />
+ <Patch name="H-3" hbank="0" lbank="0" prog="59" />
+ <Patch name="H-4" hbank="0" lbank="0" prog="60" />
+ <Patch name="H-5" hbank="0" lbank="0" prog="61" />
+ <Patch name="H-6" hbank="0" lbank="0" prog="62" />
+ <Patch name="H-7" hbank="0" lbank="0" prog="63" />
+ <Patch name="H-8" hbank="0" lbank="0" prog="64" />
+ </PatchGroup>
+ <Controller name="Program" type="Program" />
+ </MidiInstrument>
+</muse>
diff --git a/muse2/share/instruments/Korg-MS2000R.idf b/muse2/share/instruments/Korg-MS2000R.idf
new file mode 100644
index 00000000..b5ad41a7
--- /dev/null
+++ b/muse2/share/instruments/Korg-MS2000R.idf
@@ -0,0 +1,546 @@
+<?xml version="1.0"?>
+<muse version="1.0">
+ <MidiInstrument name="Korg MS2000R">
+ <PatchGroup name="Original Set">
+ <Patch name="Stab Saw" hbank="0" lbank="0" prog="0" />
+ <Patch name="Synth Lana" hbank="0" lbank="0" prog="1" />
+ <Patch name="Evolution" hbank="0" lbank="0" prog="2" />
+ <Patch name="Boost Bass" hbank="0" lbank="0" prog="3" />
+ <Patch name="Dirty Sync" hbank="0" lbank="0" prog="4" />
+ <Patch name="Zoop Mania" hbank="0" lbank="0" prog="5" />
+ <Patch name="Ice Field" hbank="0" lbank="0" prog="6" />
+ <Patch name="Lounge Organ" hbank="0" lbank="0" prog="7" />
+ <Patch name="MG Bass" hbank="0" lbank="0" prog="8" />
+ <Patch name="Gates Of Hell" hbank="0" lbank="0" prog="9" />
+ <Patch name="PWM Strings" hbank="0" lbank="0" prog="10" />
+ <Patch name="Turn Wheel" hbank="0" lbank="0" prog="11" />
+ <Patch name="Synth Tp" hbank="0" lbank="0" prog="12" />
+ <Patch name="DWGS Wave Seq" hbank="0" lbank="0" prog="13" />
+ <Patch name="Drive Bass" hbank="0" lbank="0" prog="14" />
+ <Patch name="Surrounded" hbank="0" lbank="0" prog="15" />
+ <Patch name="Lazy Pitch" hbank="0" lbank="0" prog="16" />
+ <Patch name="Stairs Pad" hbank="0" lbank="0" prog="17" />
+ <Patch name="Silk Pad" hbank="0" lbank="0" prog="18" />
+ <Patch name="Zap Bass" hbank="0" lbank="0" prog="19" />
+ <Patch name="Uni Synth" hbank="0" lbank="0" prog="20" />
+ <Patch name="Psyche Trance" hbank="0" lbank="0" prog="21" />
+ <Patch name="Deep Bell" hbank="0" lbank="0" prog="22" />
+ <Patch name="Synth Clav" hbank="0" lbank="0" prog="23" />
+ <Patch name="Line Bass" hbank="0" lbank="0" prog="24" />
+ <Patch name="Search Engine" hbank="0" lbank="0" prog="25" />
+ <Patch name="Voice/A/" hbank="0" lbank="0" prog="26" />
+ <Patch name="Far Horizon" hbank="0" lbank="0" prog="27" />
+ <Patch name="Glass" hbank="0" lbank="0" prog="28" />
+ <Patch name="Random" hbank="0" lbank="0" prog="29" />
+ <Patch name="Jami Bass" hbank="0" lbank="0" prog="30" />
+ <Patch name="Loomy" hbank="0" lbank="0" prog="31" />
+ <Patch name="Poly Line" hbank="0" lbank="0" prog="32" />
+ <Patch name="Krazy Arpy 1" hbank="0" lbank="0" prog="33" />
+ <Patch name="Mod 3 + 4 Squad" hbank="0" lbank="0" prog="34" />
+ <Patch name="What D\ Time" hbank="0" lbank="0" prog="35" />
+ <Patch name="Healing" hbank="0" lbank="0" prog="36" />
+ <Patch name="Auto Disco" hbank="0" lbank="0" prog="37" />
+ <Patch name="Candy Box" hbank="0" lbank="0" prog="38" />
+ <Patch name="Vintage EP" hbank="0" lbank="0" prog="39" />
+ <Patch name="Mini Bass" hbank="0" lbank="0" prog="40" />
+ <Patch name="Tap Lead" hbank="0" lbank="0" prog="41" />
+ <Patch name="Royal Pad" hbank="0" lbank="0" prog="42" />
+ <Patch name="Freq Lead" hbank="0" lbank="0" prog="43" />
+ <Patch name="Solemn Brass" hbank="0" lbank="0" prog="44" />
+ <Patch name="IZDISA-WS" hbank="0" lbank="0" prog="45" />
+ <Patch name="House Bass" hbank="0" lbank="0" prog="46" />
+ <Patch name="Invaders" hbank="0" lbank="0" prog="47" />
+ <Patch name="Ana Fuzz" hbank="0" lbank="0" prog="48" />
+ <Patch name="Water Edge" hbank="0" lbank="0" prog="49" />
+ <Patch name="Reactor Pad" hbank="0" lbank="0" prog="50" />
+ <Patch name="MS-101 Sqr" hbank="0" lbank="0" prog="51" />
+ <Patch name="Edge Lead" hbank="0" lbank="0" prog="52" />
+ <Patch name="Goa Trax" hbank="0" lbank="0" prog="53" />
+ <Patch name="Retro BD/SD" hbank="0" lbank="0" prog="54" />
+ <Patch name="Wet Reed" hbank="0" lbank="0" prog="55" />
+ <Patch name="Fat Brass" hbank="0" lbank="0" prog="56" />
+ <Patch name="Flashlight" hbank="0" lbank="0" prog="57" />
+ <Patch name="Stream Pad" hbank="0" lbank="0" prog="58" />
+ <Patch name="EP Fusion Ld" hbank="0" lbank="0" prog="59" />
+ <Patch name="Tremolo Synth" hbank="0" lbank="0" prog="60" />
+ <Patch name="Motion Pad" hbank="0" lbank="0" prog="61" />
+ <Patch name="Banana Bass" hbank="0" lbank="0" prog="62" />
+ <Patch name="Bad Dream" hbank="0" lbank="0" prog="63" />
+ <Patch name="Century Stab" hbank="0" lbank="0" prog="64" />
+ <Patch name="Simple Arpg" hbank="0" lbank="0" prog="65" />
+ <Patch name="Tin Memoreez" hbank="0" lbank="0" prog="66" />
+ <Patch name="Organ Bass" hbank="0" lbank="0" prog="67" />
+ <Patch name="High Voltage" hbank="0" lbank="0" prog="68" />
+ <Patch name="Trip Planet" hbank="0" lbank="0" prog="69" />
+ <Patch name="Dry Plant" hbank="0" lbank="0" prog="70" />
+ <Patch name="Reed Piano" hbank="0" lbank="0" prog="71" />
+ <Patch name="Magnum Bass" hbank="0" lbank="0" prog="72" />
+ <Patch name="Mad Lead" hbank="0" lbank="0" prog="73" />
+ <Patch name="Belly" hbank="0" lbank="0" prog="74" />
+ <Patch name="Back In The Day" hbank="0" lbank="0" prog="75" />
+ <Patch name="Synth Brass" hbank="0" lbank="0" prog="76" />
+ <Patch name="Electro Shock" hbank="0" lbank="0" prog="77" />
+ <Patch name="Bakin\ Bass" hbank="0" lbank="0" prog="78" />
+ <Patch name="Telephone" hbank="0" lbank="0" prog="79" />
+ <Patch name="Golden Synth" hbank="0" lbank="0" prog="80" />
+ <Patch name="Blue + White" hbank="0" lbank="0" prog="81" />
+ <Patch name="Pan Tran" hbank="0" lbank="0" prog="82" />
+ <Patch name="Warp Bass" hbank="0" lbank="0" prog="83" />
+ <Patch name="Killa Lead" hbank="0" lbank="0" prog="84" />
+ <Patch name="Tribe\n Beat" hbank="0" lbank="0" prog="85" />
+ <Patch name="Bound Ball" hbank="0" lbank="0" prog="86" />
+ <Patch name="Cutting Arpg" hbank="0" lbank="0" prog="87" />
+ <Patch name="Bass Machine" hbank="0" lbank="0" prog="88" />
+ <Patch name="Trip 2 Ibiza" hbank="0" lbank="0" prog="89" />
+ <Patch name="Ana Strings" hbank="0" lbank="0" prog="90" />
+ <Patch name="Past Mind" hbank="0" lbank="0" prog="91" />
+ <Patch name="Future Vibe" hbank="0" lbank="0" prog="92" />
+ <Patch name="Euro Synthe" hbank="0" lbank="0" prog="93" />
+ <Patch name="Digy Bass" hbank="0" lbank="0" prog="94" />
+ <Patch name="Thunder" hbank="0" lbank="0" prog="95" />
+ <Patch name="Square Comp" hbank="0" lbank="0" prog="96" />
+ <Patch name="Krazy Arpy 2" hbank="0" lbank="0" prog="97" />
+ <Patch name="Sweep Pad" hbank="0" lbank="0" prog="98" />
+ <Patch name="Sub Bass" hbank="0" lbank="0" prog="99" />
+ <Patch name="Phenomenon" hbank="0" lbank="0" prog="100" />
+ <Patch name="Ready 2 Air" hbank="0" lbank="0" prog="101" />
+ <Patch name="X-Mod Perc" hbank="0" lbank="0" prog="102" />
+ <Patch name="British Organ" hbank="0" lbank="0" prog="103" />
+ <Patch name="80\s Bass" hbank="0" lbank="0" prog="104" />
+ <Patch name="Min.Deal" hbank="0" lbank="0" prog="105" />
+ <Patch name="Astral Vox" hbank="0" lbank="0" prog="106" />
+ <Patch name="Rez Lead" hbank="0" lbank="0" prog="107" />
+ <Patch name="Soft Brass" hbank="0" lbank="0" prog="108" />
+ <Patch name="CPU Talk" hbank="0" lbank="0" prog="109" />
+ <Patch name="Phunk Bass" hbank="0" lbank="0" prog="110" />
+ <Patch name="Jet Set 2000" hbank="0" lbank="0" prog="111" />
+ <Patch name="Poly 400" hbank="0" lbank="0" prog="112" />
+ <Patch name="Diginator" hbank="0" lbank="0" prog="113" />
+ <Patch name="Light Pad" hbank="0" lbank="0" prog="114" />
+ <Patch name="Bass + 5th Lead" hbank="0" lbank="0" prog="115" />
+ <Patch name="Woody\s Lead" hbank="0" lbank="0" prog="116" />
+ <Patch name="Filter Muzik" hbank="0" lbank="0" prog="117" />
+ <Patch name="Time Zone SFX" hbank="0" lbank="0" prog="118" />
+ <Patch name="Pulse Comp" hbank="0" lbank="0" prog="119" />
+ <Patch name="Vocoder Ens" hbank="0" lbank="0" prog="120" />
+ <Patch name="Vocoder Cho" hbank="0" lbank="0" prog="121" />
+ <Patch name="Vocoder Wah" hbank="0" lbank="0" prog="122" />
+ <Patch name="Vocoder Pulse" hbank="0" lbank="0" prog="123" />
+ <Patch name="Voice Changer" hbank="0" lbank="0" prog="124" />
+ <Patch name="Vocodevil" hbank="0" lbank="0" prog="125" />
+ <Patch name="Audio In INIT" hbank="0" lbank="0" prog="126" />
+ <Patch name="Init Program" hbank="0" lbank="0" prog="127" />
+ </PatchGroup>
+ <PatchGroup name="Additional Set">
+ <Patch name="Trance Solo" hbank="1" lbank="0" prog="0" />
+ <Patch name="Pulsator" hbank="1" lbank="0" prog="1" />
+ <Patch name="Full Blast" hbank="1" lbank="0" prog="2" />
+ <Patch name="Like Guitar!" hbank="1" lbank="0" prog="3" />
+ <Patch name="Massive Attack" hbank="1" lbank="0" prog="4" />
+ <Patch name="Blast!!!" hbank="1" lbank="0" prog="5" />
+ <Patch name="Sunshine" hbank="1" lbank="0" prog="6" />
+ <Patch name="Prodigy" hbank="1" lbank="0" prog="7" />
+ <Patch name="Soft + Jazzy" hbank="1" lbank="0" prog="8" />
+ <Patch name="Gombath" hbank="1" lbank="0" prog="9" />
+ <Patch name="Electro Koto" hbank="1" lbank="0" prog="10" />
+ <Patch name="Dual Solo" hbank="1" lbank="0" prog="11" />
+ <Patch name="70\s Solo" hbank="1" lbank="0" prog="12" />
+ <Patch name="Percuter" hbank="1" lbank="0" prog="13" />
+ <Patch name="Brain Chaser" hbank="1" lbank="0" prog="14" />
+ <Patch name="Bombastix" hbank="1" lbank="0" prog="15" />
+ <Patch name="Full Strings" hbank="1" lbank="0" prog="16" />
+ <Patch name="Digi Pad 1" hbank="1" lbank="0" prog="17" />
+ <Patch name="Sphere Voice" hbank="1" lbank="0" prog="18" />
+ <Patch name="Lush Strings" hbank="1" lbank="0" prog="19" />
+ <Patch name="Cod Pad" hbank="1" lbank="0" prog="20" />
+ <Patch name="Organ Pad" hbank="1" lbank="0" prog="21" />
+ <Patch name="Strange Pad" hbank="1" lbank="0" prog="22" />
+ <Patch name="Digi Ensemble" hbank="1" lbank="0" prog="23" />
+ <Patch name="Obi Nrass" hbank="1" lbank="0" prog="24" />
+ <Patch name="New Age Piano" hbank="1" lbank="0" prog="25" />
+ <Patch name="Fat Strings" hbank="1" lbank="0" prog="26" />
+ <Patch name="Long Pad" hbank="1" lbank="0" prog="27" />
+ <Patch name="Mystic Pad" hbank="1" lbank="0" prog="28" />
+ <Patch name="Ghosty Pad" hbank="1" lbank="0" prog="29" />
+ <Patch name="Old Ensemble" hbank="1" lbank="0" prog="30" />
+ <Patch name="Ambient Vox" hbank="1" lbank="0" prog="31" />
+ <Patch name="D + B Chords" hbank="1" lbank="0" prog="32" />
+ <Patch name="Organ Chords" hbank="1" lbank="0" prog="33" />
+ <Patch name="Octaves" hbank="1" lbank="0" prog="34" />
+ <Patch name="Trance Chord" hbank="1" lbank="0" prog="35" />
+ <Patch name="Ring Chord" hbank="1" lbank="0" prog="36" />
+ <Patch name="Bell Synth" hbank="1" lbank="0" prog="37" />
+ <Patch name="5ths Big" hbank="1" lbank="0" prog="38" />
+ <Patch name="Metal Chord" hbank="1" lbank="0" prog="39" />
+ <Patch name="Birdy" hbank="1" lbank="0" prog="40" />
+ <Patch name="Organizer" hbank="1" lbank="0" prog="41" />
+ <Patch name="Smooth Chord" hbank="1" lbank="0" prog="42" />
+ <Patch name="Fat Boy" hbank="1" lbank="0" prog="43" />
+ <Patch name="Ferrum Chord" hbank="1" lbank="0" prog="44" />
+ <Patch name="Morpheus" hbank="1" lbank="0" prog="45" />
+ <Patch name="Future Chord" hbank="1" lbank="0" prog="46" />
+ <Patch name="Hellraiser" hbank="1" lbank="0" prog="47" />
+ <Patch name="Swing Chord" hbank="1" lbank="0" prog="48" />
+ <Patch name="Berlin School" hbank="1" lbank="0" prog="49" />
+ <Patch name="Angst!" hbank="1" lbank="0" prog="50" />
+ <Patch name="MS Wave 2000" hbank="1" lbank="0" prog="51" />
+ <Patch name="Filter Groove" hbank="1" lbank="0" prog="52" />
+ <Patch name="Dual Sequenz" hbank="1" lbank="0" prog="53" />
+ <Patch name="Wave Trancfer" hbank="1" lbank="0" prog="54" />
+ <Patch name="Human Touch" hbank="1" lbank="0" prog="55" />
+ <Patch name="Chilly Filter" hbank="1" lbank="0" prog="56" />
+ <Patch name="Dr. Atmo" hbank="1" lbank="0" prog="57" />
+ <Patch name="Wave Station" hbank="1" lbank="0" prog="58" />
+ <Patch name="Frogger" hbank="1" lbank="0" prog="59" />
+ <Patch name="Uranus" hbank="1" lbank="0" prog="60" />
+ <Patch name="Deep Ambient" hbank="1" lbank="0" prog="61" />
+ <Patch name="Ambient Texture" hbank="1" lbank="0" prog="62" />
+ <Patch name="Trance Gater" hbank="1" lbank="0" prog="63" />
+ <Patch name="Sync Bass" hbank="1" lbank="0" prog="64" />
+ <Patch name="Acid Bass" hbank="1" lbank="0" prog="65" />
+ <Patch name="Distorted 303" hbank="1" lbank="0" prog="66" />
+ <Patch name="Super Bass" hbank="1" lbank="0" prog="67" />
+ <Patch name="Wet Bass MW" hbank="1" lbank="0" prog="68" />
+ <Patch name="Mini Bass" hbank="1" lbank="0" prog="69" />
+ <Patch name="Synth Bass MW" hbank="1" lbank="0" prog="70" />
+ <Patch name="Sequence Bass" hbank="1" lbank="0" prog="71" />
+ <Patch name="Short Bass MW" hbank="1" lbank="0" prog="72" />
+ <Patch name="Organ Bass" hbank="1" lbank="0" prog="73" />
+ <Patch name="D + B Bass" hbank="1" lbank="0" prog="74" />
+ <Patch name="Dr. Alban" hbank="1" lbank="0" prog="75" />
+ <Patch name="Moogy Bass" hbank="1" lbank="0" prog="76" />
+ <Patch name="90\s Friend 1" hbank="1" lbank="0" prog="77" />
+ <Patch name="Deep Bass" hbank="1" lbank="0" prog="78" />
+ <Patch name="Fat Bass" hbank="1" lbank="0" prog="79" />
+ <Patch name="Lucky Man MW16" hbank="1" lbank="0" prog="80" />
+ <Patch name="Percussive 5ths" hbank="1" lbank="0" prog="81" />
+ <Patch name="Rock Solo" hbank="1" lbank="0" prog="82" />
+ <Patch name="Saw Solo" hbank="1" lbank="0" prog="83" />
+ <Patch name="HP-Solo" hbank="1" lbank="0" prog="84" />
+ <Patch name="Attack Solo" hbank="1" lbank="0" prog="85" />
+ <Patch name="Ricochet" hbank="1" lbank="0" prog="86" />
+ <Patch name="Pro Soloist" hbank="1" lbank="0" prog="87" />
+ <Patch name="Distortion" hbank="1" lbank="0" prog="88" />
+ <Patch name="Synth Fanfare" hbank="1" lbank="0" prog="89" />
+ <Patch name="Percussive Triangle" hbank="1" lbank="0" prog="90" />
+ <Patch name="Solo Split" hbank="1" lbank="0" prog="91" />
+ <Patch name="Overdrive" hbank="1" lbank="0" prog="92" />
+ <Patch name="Classic Solo" hbank="1" lbank="0" prog="93" />
+ <Patch name="Syntraction" hbank="1" lbank="0" prog="94" />
+ <Patch name="Dirty Solo" hbank="1" lbank="0" prog="95" />
+ <Patch name="Trance Master" hbank="1" lbank="0" prog="96" />
+ <Patch name="Expo 2000 Groove" hbank="1" lbank="0" prog="97" />
+ <Patch name="Trancefer" hbank="1" lbank="0" prog="98" />
+ <Patch name="Sequence This" hbank="1" lbank="0" prog="99" />
+ <Patch name="Auto Accomp." hbank="1" lbank="0" prog="100" />
+ <Patch name="Random Energy" hbank="1" lbank="0" prog="101" />
+ <Patch name="Mercury" hbank="1" lbank="0" prog="102" />
+ <Patch name="Tap Lead" hbank="1" lbank="0" prog="103" />
+ <Patch name="Classic Arp" hbank="1" lbank="0" prog="104" />
+ <Patch name="Goa Trax" hbank="1" lbank="0" prog="105" />
+ <Patch name="Moog Sequenz" hbank="1" lbank="0" prog="106" />
+ <Patch name="Self Solo" hbank="1" lbank="0" prog="107" />
+ <Patch name="Psyche Trance" hbank="1" lbank="0" prog="108" />
+ <Patch name="Sequence 2k" hbank="1" lbank="0" prog="109" />
+ <Patch name="Sequenz + Solo" hbank="1" lbank="0" prog="110" />
+ <Patch name="Filter Jam" hbank="1" lbank="0" prog="111" />
+ <Patch name="Wharp" hbank="1" lbank="0" prog="112" />
+ <Patch name="Scratchin\" hbank="1" lbank="0" prog="113" />
+ <Patch name="Intro Pad" hbank="1" lbank="0" prog="114" />
+ <Patch name="MS 20" hbank="1" lbank="0" prog="115" />
+ <Patch name="EMS VCS 3" hbank="1" lbank="0" prog="116" />
+ <Patch name="Psychosis" hbank="1" lbank="0" prog="117" />
+ <Patch name="Far Explosion" hbank="1" lbank="0" prog="118" />
+ <Patch name="KW-Drums" hbank="1" lbank="0" prog="119" />
+ <Patch name="Vocoder Ens." hbank="1" lbank="0" prog="120" />
+ <Patch name="Vocoder Cho." hbank="1" lbank="0" prog="121" />
+ <Patch name="Vocoder Wah" hbank="1" lbank="0" prog="122" />
+ <Patch name="Vocoder Pulse" hbank="1" lbank="0" prog="123" />
+ <Patch name="Voice Changer" hbank="1" lbank="0" prog="124" />
+ <Patch name="Vocodevil" hbank="1" lbank="0" prog="125" />
+ <Patch name="Audio In INIT" hbank="1" lbank="0" prog="126" />
+ <Patch name="Init Sound" hbank="1" lbank="0" prog="127" />
+ </PatchGroup>
+ <PatchGroup name="MicroKorg Set">
+ <Patch name="Trancey Arpeg" hbank="1" lbank="0" prog="0" />
+ <Patch name="AcidSawBass" hbank="1" lbank="0" prog="1" />
+ <Patch name="UnisonSawLD" hbank="1" lbank="0" prog="2" />
+ <Patch name="UnisonHP+LP" hbank="1" lbank="0" prog="3" />
+ <Patch name="WeepyLead" hbank="1" lbank="0" prog="4" />
+ <Patch name="Slippy Pad" hbank="1" lbank="0" prog="5" />
+ <Patch name="SweepPolyPad" hbank="1" lbank="0" prog="6" />
+ <Patch name="FilterString" hbank="1" lbank="0" prog="7" />
+ <Patch name="AutoHouse" hbank="1" lbank="0" prog="8" />
+ <Patch name="Burnin\Rave" hbank="1" lbank="0" prog="9" />
+ <Patch name="X-ModPerc" hbank="1" lbank="0" prog="10" />
+ <Patch name="HouseBass" hbank="1" lbank="0" prog="11" />
+ <Patch name="DistortedBas" hbank="1" lbank="0" prog="12" />
+ <Patch name="AcidSquBass" hbank="1" lbank="0" prog="13" />
+ <Patch name="SynvBass" hbank="1" lbank="0" prog="14" />
+ <Patch name="HardHouseLD" hbank="1" lbank="0" prog="15" />
+ <Patch name="SequencePad" hbank="1" lbank="0" prog="16" />
+ <Patch name="BleepsPerc" hbank="1" lbank="0" prog="17" />
+ <Patch name="GatedSyncBas" hbank="1" lbank="0" prog="18" />
+ <Patch name="Flap+Sweep" hbank="1" lbank="0" prog="19" />
+ <Patch name="ReverseLead" hbank="1" lbank="0" prog="20" />
+ <Patch name="IDM Pad" hbank="1" lbank="0" prog="21" />
+ <Patch name="Flange5thPad" hbank="1" lbank="0" prog="22" />
+ <Patch name="Voice/A/" hbank="1" lbank="0" prog="23" />
+ <Patch name="2StepBass" hbank="1" lbank="0" prog="24" />
+ <Patch name="TechRingBass" hbank="1" lbank="0" prog="25" />
+ <Patch name="ValveKickBas" hbank="1" lbank="0" prog="26" />
+ <Patch name="DriveBass" hbank="1" lbank="0" prog="27" />
+ <Patch name="BladeBass" hbank="1" lbank="0" prog="28" />
+ <Patch name="SweepSyncLD" hbank="1" lbank="0" prog="29" />
+ <Patch name="ScienceLead" hbank="1" lbank="0" prog="30" />
+ <Patch name="GatedChord" hbank="1" lbank="0" prog="31" />
+ <Patch name="DirtyBass" hbank="1" lbank="0" prog="32" />
+ <Patch name="MG Bass 1" hbank="1" lbank="0" prog="33" />
+ <Patch name="R+B Lead" hbank="1" lbank="0" prog="34" />
+ <Patch name="PWM Strings" hbank="1" lbank="0" prog="35" />
+ <Patch name="ReedPiano" hbank="1" lbank="0" prog="36" />
+ <Patch name="BritishOrgan" hbank="1" lbank="0" prog="37" />
+ <Patch name="SynthClav" hbank="1" lbank="0" prog="38" />
+ <Patch name="TapeChoir" hbank="1" lbank="0" prog="39" />
+ <Patch name="ElektricArpe" hbank="1" lbank="0" prog="40" />
+ <Patch name="WaterEdge" hbank="1" lbank="0" prog="41" />
+ <Patch name="80\sSynthBas" hbank="1" lbank="0" prog="42" />
+ <Patch name="ReversSyncLD" hbank="1" lbank="0" prog="43" />
+ <Patch name="BritePolySyn" hbank="1" lbank="0" prog="44" />
+ <Patch name="PolySynth" hbank="1" lbank="0" prog="45" />
+ <Patch name="Warm4thPad" hbank="1" lbank="0" prog="46" />
+ <Patch name="OctaveString" hbank="1" lbank="0" prog="47" />
+ <Patch name="KillaBeez" hbank="1" lbank="0" prog="48" />
+ <Patch name="Diginator" hbank="1" lbank="0" prog="49" />
+ <Patch name="Stutter" hbank="1" lbank="0" prog="50" />
+ <Patch name="Invaders" hbank="1" lbank="0" prog="51" />
+ <Patch name="RingChord" hbank="1" lbank="0" prog="52" />
+ <Patch name="Sweep\min\" hbank="1" lbank="0" prog="53" />
+ <Patch name="NoisyHit" hbank="1" lbank="0" prog="54" />
+ <Patch name="4OSC\m7\" hbank="1" lbank="0" prog="55" />
+ <Patch name="Male-Ahhh" hbank="1" lbank="0" prog="56" />
+ <Patch name="Male-Eeee" hbank="1" lbank="0" prog="57" />
+ <Patch name="Male-Ahhh5th" hbank="1" lbank="0" prog="58" />
+ <Patch name="VocoderEns" hbank="1" lbank="0" prog="59" />
+ <Patch name="VocoderCho" hbank="1" lbank="0" prog="60" />
+ <Patch name="Vocoder5th" hbank="1" lbank="0" prog="61" />
+ <Patch name="BassVocoder" hbank="1" lbank="0" prog="62" />
+ <Patch name="VoiceChanger" hbank="1" lbank="0" prog="63" />
+ <Patch name="SynthHarp" hbank="1" lbank="0" prog="64" />
+ <Patch name="AcidRingBass" hbank="1" lbank="0" prog="65" />
+ <Patch name="UnisonRingLD" hbank="1" lbank="0" prog="66" />
+ <Patch name="PhaserLead" hbank="1" lbank="0" prog="67" />
+ <Patch name="SynthPizz" hbank="1" lbank="0" prog="68" />
+ <Patch name="EuphoricSyn" hbank="1" lbank="0" prog="69" />
+ <Patch name="Flashin\Pad" hbank="1" lbank="0" prog="70" />
+ <Patch name="StreamPad" hbank="1" lbank="0" prog="71" />
+ <Patch name="S+H Signal" hbank="1" lbank="0" prog="72" />
+ <Patch name="DirtyMotion" hbank="1" lbank="0" prog="73" />
+ <Patch name="RingPerc" hbank="1" lbank="0" prog="74" />
+ <Patch name="OrganBass" hbank="1" lbank="0" prog="75" />
+ <Patch name="UnisonSquBas" hbank="1" lbank="0" prog="76" />
+ <Patch name="DetuneBass" hbank="1" lbank="0" prog="77" />
+ <Patch name="ShortSynBass" hbank="1" lbank="0" prog="78" />
+ <Patch name="NRG Stab" hbank="1" lbank="0" prog="79" />
+ <Patch name="NoizeBlasts" hbank="1" lbank="0" prog="80" />
+ <Patch name="FuturePerc" hbank="1" lbank="0" prog="81" />
+ <Patch name="RhythmicPad" hbank="1" lbank="0" prog="82" />
+ <Patch name="PumpOrgan" hbank="1" lbank="0" prog="83" />
+ <Patch name="LazyPitch" hbank="1" lbank="0" prog="84" />
+ <Patch name="BPF4thPad" hbank="1" lbank="0" prog="85" />
+ <Patch name="FuturePad" hbank="1" lbank="0" prog="86" />
+ <Patch name="ShadowPad" hbank="1" lbank="0" prog="87" />
+ <Patch name="X-ModBass" hbank="1" lbank="0" prog="88" />
+ <Patch name="PipeBass" hbank="1" lbank="0" prog="89" />
+ <Patch name="ReverseBass" hbank="1" lbank="0" prog="90" />
+ <Patch name="RingSyncBass" hbank="1" lbank="0" prog="91" />
+ <Patch name="HPFSweepBass" hbank="1" lbank="0" prog="92" />
+ <Patch name="NuSkoolDrop" hbank="1" lbank="0" prog="93" />
+ <Patch name="ModLead" hbank="1" lbank="0" prog="94" />
+ <Patch name="GrimeyStorm" hbank="1" lbank="0" prog="95" />
+ <Patch name="DarkBass" hbank="1" lbank="0" prog="96" />
+ <Patch name="MG Bass 2" hbank="1" lbank="0" prog="97" />
+ <Patch name="Sub Bass" hbank="1" lbank="0" prog="98" />
+ <Patch name="70\sFunkLead" hbank="1" lbank="0" prog="99" />
+ <Patch name="RockOrgan" hbank="1" lbank="0" prog="100" />
+ <Patch name="PercOrgan" hbank="1" lbank="0" prog="101" />
+ <Patch name="PhaserClav" hbank="1" lbank="0" prog="102" />
+ <Patch name="StringMachin" hbank="1" lbank="0" prog="103" />
+ <Patch name="AnalogBell" hbank="1" lbank="0" prog="104" />
+ <Patch name="StairsPad" hbank="1" lbank="0" prog="105" />
+ <Patch name="TriangleLead" hbank="1" lbank="0" prog="106" />
+ <Patch name="RandomComp" hbank="1" lbank="0" prog="107" />
+ <Patch name="StabSaw" hbank="1" lbank="0" prog="108" />
+ <Patch name="SquareComp" hbank="1" lbank="0" prog="109" />
+ <Patch name="DetunedComp" hbank="1" lbank="0" prog="110" />
+ <Patch name="OldStrings" hbank="1" lbank="0" prog="111" />
+ <Patch name="TimeZoneSFX" hbank="1" lbank="0" prog="112" />
+ <Patch name="Domin8or" hbank="1" lbank="0" prog="113" />
+ <Patch name="Thunder" hbank="1" lbank="0" prog="114" />
+ <Patch name="Cry" hbank="1" lbank="0" prog="115" />
+ <Patch name="HPF\m7\Chord" hbank="1" lbank="0" prog="116" />
+ <Patch name="\M3rd\Chord" hbank="1" lbank="0" prog="117" />
+ <Patch name="HardcoreHit" hbank="1" lbank="0" prog="118" />
+ <Patch name="Artcore\M7\" hbank="1" lbank="0" prog="119" />
+ <Patch name="Female-Ahhh" hbank="1" lbank="0" prog="120" />
+ <Patch name="Kid-Eeey" hbank="1" lbank="0" prog="121" />
+ <Patch name="Kid-Ahhh-Wow" hbank="1" lbank="0" prog="122" />
+ <Patch name="VocoderPulse" hbank="1" lbank="0" prog="123" />
+ <Patch name="VocoderSqu" hbank="1" lbank="0" prog="124" />
+ <Patch name="VocoderWah" hbank="1" lbank="0" prog="125" />
+ <Patch name="VocoderVoxWv" hbank="1" lbank="0" prog="126" />
+ <Patch name="VocoderDWGS" hbank="1" lbank="0" prog="127" />
+ </PatchGroup>
+ <PatchGroup name="MS2000B Set">
+ <Patch name="UnisonRingLD" hbank="1" lbank="0" prog="0" />
+ <Patch name="Flashin\Pad" hbank="1" lbank="0" prog="1" />
+ <Patch name="X-ModBass" hbank="1" lbank="0" prog="2" />
+ <Patch name="IDM Pad" hbank="1" lbank="0" prog="3" />
+ <Patch name="HyperForce" hbank="1" lbank="0" prog="4" />
+ <Patch name="Pan Tran" hbank="1" lbank="0" prog="5" />
+ <Patch name="Razor Blade" hbank="1" lbank="0" prog="6" />
+ <Patch name="DetuneBass" hbank="1" lbank="0" prog="7" />
+ <Patch name="High Voltage" hbank="1" lbank="0" prog="8" />
+ <Patch name="AnalogBell" hbank="1" lbank="0" prog="9" />
+ <Patch name="FonkaDeli" hbank="1" lbank="0" prog="10" />
+ <Patch name="AutoTrance" hbank="1" lbank="0" prog="11" />
+ <Patch name="4OSC\m7\" hbank="1" lbank="0" prog="12" />
+ <Patch name="Digy Bass" hbank="1" lbank="0" prog="13" />
+ <Patch name="Domin8or" hbank="1" lbank="0" prog="14" />
+ <Patch name="FilterString" hbank="1" lbank="0" prog="15" />
+ <Patch name="70\sFunkLead" hbank="1" lbank="0" prog="16" />
+ <Patch name="SawSaw" hbank="1" lbank="0" prog="17" />
+ <Patch name="House Bass" hbank="1" lbank="0" prog="18" />
+ <Patch name="Stairs Pad" hbank="1" lbank="0" prog="19" />
+ <Patch name="Poly Line" hbank="1" lbank="0" prog="20" />
+ <Patch name="Ice Field" hbank="1" lbank="0" prog="21" />
+ <Patch name="Fairies" hbank="1" lbank="0" prog="22" />
+ <Patch name="Line Bass" hbank="1" lbank="0" prog="23" />
+ <Patch name="ModLead" hbank="1" lbank="0" prog="24" />
+ <Patch name="RingPerc" hbank="1" lbank="0" prog="25" />
+ <Patch name="Reed Piano" hbank="1" lbank="0" prog="26" />
+ <Patch name="Filter Muzik" hbank="1" lbank="0" prog="27" />
+ <Patch name="RingChord" hbank="1" lbank="0" prog="28" />
+ <Patch name="Warp Bass" hbank="1" lbank="0" prog="29" />
+ <Patch name="KillaBeez" hbank="1" lbank="0" prog="30" />
+ <Patch name="Evolution" hbank="1" lbank="0" prog="31" />
+ <Patch name="TriangleLead" hbank="1" lbank="0" prog="32" />
+ <Patch name="GatedSyncBas" hbank="1" lbank="0" prog="33" />
+ <Patch name="Bass Machine" hbank="1" lbank="0" prog="34" />
+ <Patch name="Snowdance" hbank="1" lbank="0" prog="35" />
+ <Patch name="Stab Saw" hbank="1" lbank="0" prog="36" />
+ <Patch name="Wheeler Pad" hbank="1" lbank="0" prog="37" />
+ <Patch name="SynthHarp" hbank="1" lbank="0" prog="38" />
+ <Patch name="AcidRingBass" hbank="1" lbank="0" prog="39" />
+ <Patch name="Dirty Sync" hbank="1" lbank="0" prog="40" />
+ <Patch name="ElektricArpe" hbank="1" lbank="0" prog="41" />
+ <Patch name="RockOrgan" hbank="1" lbank="0" prog="42" />
+ <Patch name="Ready 2 Air" hbank="1" lbank="0" prog="43" />
+ <Patch name="Sweep\min\" hbank="1" lbank="0" prog="44" />
+ <Patch name="TechRingBass" hbank="1" lbank="0" prog="45" />
+ <Patch name="Echo Park" hbank="1" lbank="0" prog="46" />
+ <Patch name="PWM Strings" hbank="1" lbank="0" prog="47" />
+ <Patch name="Uni Synth" hbank="1" lbank="0" prog="48" />
+ <Patch name="Electrick" hbank="1" lbank="0" prog="49" />
+ <Patch name="Zap Bass" hbank="1" lbank="0" prog="50" />
+ <Patch name="Reactor Pad" hbank="1" lbank="0" prog="51" />
+ <Patch name="TheMehT" hbank="1" lbank="0" prog="52" />
+ <Patch name="Astral Vox" hbank="1" lbank="0" prog="53" />
+ <Patch name="Water Edge" hbank="1" lbank="0" prog="54" />
+ <Patch name="Phunk Bass" hbank="1" lbank="0" prog="55" />
+ <Patch name="Ana Fuzz" hbank="1" lbank="0" prog="56" />
+ <Patch name="Deep Bell" hbank="1" lbank="0" prog="57" />
+ <Patch name="PhaserClav" hbank="1" lbank="0" prog="58" />
+ <Patch name="Trip Planet" hbank="1" lbank="0" prog="59" />
+ <Patch name="Glass" hbank="1" lbank="0" prog="60" />
+ <Patch name="ReverseBass" hbank="1" lbank="0" prog="61" />
+ <Patch name="Diginator" hbank="1" lbank="0" prog="62" />
+ <Patch name="Ana Strings" hbank="1" lbank="0" prog="63" />
+ <Patch name="Rez Lead" hbank="1" lbank="0" prog="64" />
+ <Patch name="DWGS WaveSeq" hbank="1" lbank="0" prog="65" />
+ <Patch name="AcidSawBass" hbank="1" lbank="0" prog="66" />
+ <Patch name="TickerPad" hbank="1" lbank="0" prog="67" />
+ <Patch name="Slippy Pad" hbank="1" lbank="0" prog="68" />
+ <Patch name="Synth Brass" hbank="1" lbank="0" prog="69" />
+ <Patch name="S+H Signal" hbank="1" lbank="0" prog="70" />
+ <Patch name="Magnum Bass" hbank="1" lbank="0" prog="71" />
+ <Patch name="Freq Lead" hbank="1" lbank="0" prog="72" />
+ <Patch name="BleepsPerc" hbank="1" lbank="0" prog="73" />
+ <Patch name="Brett Ped" hbank="1" lbank="0" prog="74" />
+ <Patch name="Auto Disco" hbank="1" lbank="0" prog="75" />
+ <Patch name="NoisyHit" hbank="1" lbank="0" prog="76" />
+ <Patch name="RingSyncBass" hbank="1" lbank="0" prog="77" />
+ <Patch name="Stutter" hbank="1" lbank="0" prog="78" />
+ <Patch name="StringMachin" hbank="1" lbank="0" prog="79" />
+ <Patch name="Far Horizon" hbank="1" lbank="0" prog="80" />
+ <Patch name="Burnin\Rave" hbank="1" lbank="0" prog="81" />
+ <Patch name="Sub Bass" hbank="1" lbank="0" prog="82" />
+ <Patch name="Stream Pad" hbank="1" lbank="0" prog="83" />
+ <Patch name="Square Comp" hbank="1" lbank="0" prog="84" />
+ <Patch name="Organ Bass" hbank="1" lbank="0" prog="85" />
+ <Patch name="Tap Lead" hbank="1" lbank="0" prog="86" />
+ <Patch name="Banana Bass" hbank="1" lbank="0" prog="87" />
+ <Patch name="UnisonSqurLd" hbank="1" lbank="0" prog="88" />
+ <Patch name="Bound Ball" hbank="1" lbank="0" prog="89" />
+ <Patch name="Lounge Organ" hbank="1" lbank="0" prog="90" />
+ <Patch name="Zoop Mania" hbank="1" lbank="0" prog="91" />
+ <Patch name="\M3rd\Chord" hbank="1" lbank="0" prog="92" />
+ <Patch name="Jami Bass" hbank="1" lbank="0" prog="93" />
+ <Patch name="Bad Dream" hbank="1" lbank="0" prog="94" />
+ <Patch name="Need4Speed" hbank="1" lbank="0" prog="95" />
+ <Patch name="Turn Wheel" hbank="1" lbank="0" prog="96" />
+ <Patch name="Trip 2 Ibiza" hbank="1" lbank="0" prog="97" />
+ <Patch name="80\s Bass" hbank="1" lbank="0" prog="98" />
+ <Patch name="Motion Pad" hbank="1" lbank="0" prog="99" />
+ <Patch name="Golden Synth" hbank="1" lbank="0" prog="100" />
+ <Patch name="NuSkoolDrop" hbank="1" lbank="0" prog="101" />
+ <Patch name="Synth Lana" hbank="1" lbank="0" prog="102" />
+ <Patch name="MG Bass" hbank="1" lbank="0" prog="103" />
+ <Patch name="Bass+5thLead" hbank="1" lbank="0" prog="104" />
+ <Patch name="ElectroShock" hbank="1" lbank="0" prog="105" />
+ <Patch name="Pulse Comp" hbank="1" lbank="0" prog="106" />
+ <Patch name="Snow+Ice" hbank="1" lbank="0" prog="107" />
+ <Patch name="Century Stab" hbank="1" lbank="0" prog="108" />
+ <Patch name="Drive Bass" hbank="1" lbank="0" prog="109" />
+ <Patch name="DooM" hbank="1" lbank="0" prog="110" />
+ <Patch name="stROBOsCOPe" hbank="1" lbank="0" prog="111" />
+ <Patch name="CleanVocoder" hbank="1" lbank="0" prog="112" />
+ <Patch name="WispaVcoder" hbank="1" lbank="0" prog="113" />
+ <Patch name="DarkVocoder" hbank="1" lbank="0" prog="114" />
+ <Patch name="Vocoder Ens" hbank="1" lbank="0" prog="115" />
+ <Patch name="Vocoder Cho" hbank="1" lbank="0" prog="116" />
+ <Patch name="Vocoder 5th" hbank="1" lbank="0" prog="117" />
+ <Patch name="Bass Vocoder" hbank="1" lbank="0" prog="118" />
+ <Patch name="Voice Changer" hbank="1" lbank="0" prog="119" />
+ <Patch name="VocoderPulse" hbank="1" lbank="0" prog="120" />
+ <Patch name="Vocoder Squ" hbank="1" lbank="0" prog="121" />
+ <Patch name="Vocoder Wah" hbank="1" lbank="0" prog="122" />
+ <Patch name="Vocoder Vox" hbank="1" lbank="0" prog="123" />
+ <Patch name="Voice DWGS" hbank="1" lbank="0" prog="124" />
+ <Patch name="Vocodevil" hbank="1" lbank="0" prog="125" />
+ <Patch name="AudioIn INIT" hbank="1" lbank="0" prog="126" />
+ <Patch name="Init Program" hbank="1" lbank="0" prog="127" />
+ </PatchGroup>
+ <Controller name="ModulationWheel" l="1" />
+ <Controller name="BreathController" l="2" />
+ <Controller name="FootController" l="4" />
+ <Controller name="Volume" l="7" init="100" />
+ <Controller name="Panpot" l="10" min="-64" max="63" init="0" />
+ <Controller name="Expression" l="11" init="127" />
+ <Controller name="Osc1Level" l="20" />
+ <Controller name="Osc2Level" l="21" />
+ <Controller name="NoiseLevel" l="22" />
+ <Controller name="Patch1" l="28" />
+ <Controller name="Patch2" l="29" />
+ <Controller name="Patch3" l="30" />
+ <Controller name="Patch4" l="31" />
+ <Controller name="Damper" l="64" />
+ <Controller name="Portamento" l="65" />
+ <Controller name="Resonance" l="71" />
+ <Controller name="Cutoff" l="74" />
+ <Controller name="SeqOn/Off" l="89" />
+ <Controller name="AllSoundsOff" l="120" />
+ <Controller name="ResetAllController" l="121" />
+ <Controller name="Program" type="Program" />
+ </MidiInstrument>
+</muse>
diff --git a/muse2/share/instruments/Korg-X50.idf b/muse2/share/instruments/Korg-X50.idf
new file mode 100644
index 00000000..e8a7b13b
--- /dev/null
+++ b/muse2/share/instruments/Korg-X50.idf
@@ -0,0 +1,1091 @@
+<?xml version="1.0"?>
+<muse version="1.0">
+ <MidiInstrument name="Korg X50">
+ <PatchGroup name="Combinations Bank A">
+ <Patch name="StereophonicKeys" hbank="0" lbank="0" prog="0" />
+ <Patch name="Archi Prime File" hbank="0" lbank="0" prog="1" />
+ <Patch name="Vintage Pad" hbank="0" lbank="0" prog="2" />
+ <Patch name="Wonkaville" hbank="0" lbank="0" prog="3" />
+ <Patch name="Epic Escape !!" hbank="0" lbank="0" prog="4" />
+ <Patch name="D\Ya Wanna Ride?" hbank="0" lbank="0" prog="5" />
+ <Patch name="The Fire Inside" hbank="0" lbank="0" prog="6" />
+ <Patch name="Real Steppers" hbank="0" lbank="0" prog="7" />
+ <Patch name="Song Of Africa" hbank="0" lbank="0" prog="8" />
+ <Patch name="Trumpets+Strings" hbank="0" lbank="0" prog="9" />
+ <Patch name="Analog 101" hbank="0" lbank="0" prog="10" />
+ <Patch name="Triton Voices" hbank="0" lbank="0" prog="11" />
+ <Patch name="Bellagio" hbank="0" lbank="0" prog="12" />
+ <Patch name="Scatt Blatt Phatt" hbank="0" lbank="0" prog="13" />
+ <Patch name="Reasons Unclear" hbank="0" lbank="0" prog="14" />
+ <Patch name="Heavy Organ" hbank="0" lbank="0" prog="15" />
+ <Patch name="Session E.P." hbank="0" lbank="0" prog="16" />
+ <Patch name="Detailed Strings" hbank="0" lbank="0" prog="17" />
+ <Patch name="People Watching" hbank="0" lbank="0" prog="18" />
+ <Patch name="The White Box" hbank="0" lbank="0" prog="19" />
+ <Patch name="Fantasmagoria" hbank="0" lbank="0" prog="20" />
+ <Patch name="Urban Nature RnB" hbank="0" lbank="0" prog="21" />
+ <Patch name="Late Night Jam" hbank="0" lbank="0" prog="22" />
+ <Patch name="Chillfactor" hbank="0" lbank="0" prog="23" />
+ <Patch name="Bass+WhirlySplit" hbank="0" lbank="0" prog="24" />
+ <Patch name="Vibrating Woods" hbank="0" lbank="0" prog="25" />
+ <Patch name="Waiting4Sunrise" hbank="0" lbank="0" prog="26" />
+ <Patch name="Pink Flutes" hbank="0" lbank="0" prog="27" />
+ <Patch name="South Beach Gtr." hbank="0" lbank="0" prog="28" />
+ <Patch name="Pro Brass" hbank="0" lbank="0" prog="29" />
+ <Patch name="Yo,Wasup, Dude!" hbank="0" lbank="0" prog="30" />
+ <Patch name="Med.--Tutti/Knbs" hbank="0" lbank="0" prog="31" />
+ <Patch name="Ice River Piano" hbank="0" lbank="0" prog="32" />
+ <Patch name="DynOctaveStrings" hbank="0" lbank="0" prog="33" />
+ <Patch name="Phases Of Angels" hbank="0" lbank="0" prog="34" />
+ <Patch name="Dark Element" hbank="0" lbank="0" prog="35" />
+ <Patch name="Progressive Code" hbank="0" lbank="0" prog="36" />
+ <Patch name="Wave Sequencer" hbank="0" lbank="0" prog="37" />
+ <Patch name="Jazz Step DnB" hbank="0" lbank="0" prog="38" />
+ <Patch name="-T-nage-Dancing-" hbank="0" lbank="0" prog="39" />
+ <Patch name="Indian Ocean" hbank="0" lbank="0" prog="40" />
+ <Patch name="Delicate Winds" hbank="0" lbank="0" prog="41" />
+ <Patch name="Chord Memory" hbank="0" lbank="0" prog="42" />
+ <Patch name="Stereo Voices" hbank="0" lbank="0" prog="43" />
+ <Patch name="Vaderian Bells" hbank="0" lbank="0" prog="44" />
+ <Patch name="Velo Orchestra" hbank="0" lbank="0" prog="45" />
+ <Patch name="Millenium Files" hbank="0" lbank="0" prog="46" />
+ <Patch name="Dirty BX-3 Organ" hbank="0" lbank="0" prog="47" />
+ <Patch name="Lush Layers" hbank="0" lbank="0" prog="48" />
+ <Patch name="Bell Aniamtions" hbank="0" lbank="0" prog="49" />
+ <Patch name="/\Gods Bathtub/\" hbank="0" lbank="0" prog="50" />
+ <Patch name="Funky Keys" hbank="0" lbank="0" prog="51" />
+ <Patch name="Gimme a ring..." hbank="0" lbank="0" prog="52" />
+ <Patch name="Bunnies In Love" hbank="0" lbank="0" prog="53" />
+ <Patch name="Rap Bass Split" hbank="0" lbank="0" prog="54" />
+ <Patch name="Tremolo Guitar" hbank="0" lbank="0" prog="55" />
+ <Patch name="Mute Tp + More" hbank="0" lbank="0" prog="56" />
+ <Patch name="Orchestral Brass" hbank="0" lbank="0" prog="57" />
+ <Patch name="REZ IS KING" hbank="0" lbank="0" prog="58" />
+ <Patch name="*Pad Tropolis*" hbank="0" lbank="0" prog="59" />
+ <Patch name="Pad Guitar SW1" hbank="0" lbank="0" prog="60" />
+ <Patch name="Oboe Split" hbank="0" lbank="0" prog="61" />
+ <Patch name="Speed Racer" hbank="0" lbank="0" prog="62" />
+ <Patch name="Jazz/GospelOrgan" hbank="0" lbank="0" prog="63" />
+ <Patch name="Piano/WideString" hbank="0" lbank="0" prog="64" />
+ <Patch name="SlowStrings+@" hbank="0" lbank="0" prog="65" />
+ <Patch name="Large SqwishiThag" hbank="0" lbank="0" prog="66" />
+ <Patch name="Back + 4th" hbank="0" lbank="0" prog="67" />
+ <Patch name="US Garage House" hbank="0" lbank="0" prog="68" />
+ <Patch name="Chic 2 Chic" hbank="0" lbank="0" prog="69" />
+ <Patch name="*Time Crisis*" hbank="0" lbank="0" prog="70" />
+ <Patch name="-Auto Rave-Knobs" hbank="0" lbank="0" prog="71" />
+ <Patch name="Accordion (SW)" hbank="0" lbank="0" prog="72" />
+ <Patch name="Strings + Winds" hbank="0" lbank="0" prog="73" />
+ <Patch name="UltimateAnaPizz" hbank="0" lbank="0" prog="74" />
+ <Patch name="TheNightBefore" hbank="0" lbank="0" prog="75" />
+ <Patch name="Heaven\s Bells" hbank="0" lbank="0" prog="76" />
+ <Patch name="Warm Bars" hbank="0" lbank="0" prog="77" />
+ <Patch name="*Dying Star*" hbank="0" lbank="0" prog="78" />
+ <Patch name="3rd Harm on Knob" hbank="0" lbank="0" prog="79" />
+ <Patch name="Cutting Clav" hbank="0" lbank="0" prog="80" />
+ <Patch name="Pro Strings" hbank="0" lbank="0" prog="81" />
+ <Patch name="Northern Stars" hbank="0" lbank="0" prog="82" />
+ <Patch name="FutureJazztronic" hbank="0" lbank="0" prog="83" />
+ <Patch name="Killer Smile" hbank="0" lbank="0" prog="84" />
+ <Patch name="Space Wah Bass" hbank="0" lbank="0" prog="85" />
+ <Patch name="Missing Android" hbank="0" lbank="0" prog="86" />
+ <Patch name="Dry as Garage" hbank="0" lbank="0" prog="87" />
+ <Patch name="At The Copa!" hbank="0" lbank="0" prog="88" />
+ <Patch name="Flutambient" hbank="0" lbank="0" prog="89" />
+ <Patch name="*Movin\Stars*" hbank="0" lbank="0" prog="90" />
+ <Patch name="Judgement Day" hbank="0" lbank="0" prog="91" />
+ <Patch name="Brothers Acoustic" hbank="0" lbank="0" prog="92" />
+ <Patch name="Cascade Bells" hbank="0" lbank="0" prog="93" />
+ <Patch name="Talk to Galileo" hbank="0" lbank="0" prog="94" />
+ <Patch name="Med.Mixture/Knbs" hbank="0" lbank="0" prog="95" />
+ <Patch name="Harmonic Whisper" hbank="0" lbank="0" prog="96" />
+ <Patch name="Detached Bows" hbank="0" lbank="0" prog="97" />
+ <Patch name="Shh-I\m Sweeping" hbank="0" lbank="0" prog="98" />
+ <Patch name="Do U Funk?" hbank="0" lbank="0" prog="99" />
+ <Patch name="Jazz Bass/Gtr." hbank="0" lbank="0" prog="100" />
+ <Patch name="Trash Aliens" hbank="0" lbank="0" prog="101" />
+ <Patch name="Groove\n Soloman" hbank="0" lbank="0" prog="102" />
+ <Patch name="*ResoChord Pad*" hbank="0" lbank="0" prog="103" />
+ <Patch name="Magic Kingdom" hbank="0" lbank="0" prog="104" />
+ <Patch name="-Smaller Ensbl-" hbank="0" lbank="0" prog="105" />
+ <Patch name="=Sync to Drum=" hbank="0" lbank="0" prog="106" />
+ <Patch name="Falling Leaves" hbank="0" lbank="0" prog="107" />
+ <Patch name="Bell Amis" hbank="0" lbank="0" prog="108" />
+ <Patch name="Ballad Organ" hbank="0" lbank="0" prog="109" />
+ <Patch name="Bass + PianoPad" hbank="0" lbank="0" prog="110" />
+ <Patch name="Upper+Lower Org" hbank="0" lbank="0" prog="111" />
+ <Patch name="Dark Bell EP" hbank="0" lbank="0" prog="112" />
+ <Patch name="OrchestraStrings" hbank="0" lbank="0" prog="113" />
+ <Patch name="StreetCatScratch" hbank="0" lbank="0" prog="114" />
+ <Patch name="**4:17 a.m.**" hbank="0" lbank="0" prog="115" />
+ <Patch name="Talk 2 Me" hbank="0" lbank="0" prog="116" />
+ <Patch name="-Relax Pad-" hbank="0" lbank="0" prog="117" />
+ <Patch name="Digital\n\Bass" hbank="0" lbank="0" prog="118" />
+ <Patch name=")Beat Boy(" hbank="0" lbank="0" prog="119" />
+ <Patch name="Old Tubes!" hbank="0" lbank="0" prog="120" />
+ <Patch name="DynOrchestra 2" hbank="0" lbank="0" prog="121" />
+ <Patch name="Huge Ober Sweep" hbank="0" lbank="0" prog="122" />
+ <Patch name="Essential Flute" hbank="0" lbank="0" prog="123" />
+ <Patch name="12-Strings (Arp)" hbank="0" lbank="0" prog="124" />
+ <Patch name="It\s Sine Tine!" hbank="0" lbank="0" prog="125" />
+ <Patch name="DrumConstruction" hbank="0" lbank="0" prog="126" />
+ <Patch name="Gospel Organ" hbank="0" lbank="0" prog="127" />
+ </PatchGroup>
+ <PatchGroup name="Combinations Bank B">
+ <Patch name="Amp Driven Wurly" hbank="1" lbank="0" prog="0" />
+ <Patch name="Dynamic Strings" hbank="1" lbank="0" prog="1" />
+ <Patch name="//Feel,-)Pad//" hbank="1" lbank="0" prog="2" />
+ <Patch name="PartyReggaeMahn" hbank="1" lbank="0" prog="3" />
+ <Patch name="Trancy Euphoria" hbank="1" lbank="0" prog="4" />
+ <Patch name="SynthBass + Pitz" hbank="1" lbank="0" prog="5" />
+ <Patch name="Tribal Drum\n.." hbank="1" lbank="0" prog="6" />
+ <Patch name="GroovyGarage" hbank="1" lbank="0" prog="7" />
+ <Patch name="Isle Of Indigo" hbank="1" lbank="0" prog="8" />
+ <Patch name="Studio Orchestra" hbank="1" lbank="0" prog="9" />
+ <Patch name="Warm + Snappy" hbank="1" lbank="0" prog="10" />
+ <Patch name="Breath Monster" hbank="1" lbank="0" prog="11" />
+ <Patch name="ChristmasStrings" hbank="1" lbank="0" prog="12" />
+ <Patch name="Big Jazz Band" hbank="1" lbank="0" prog="13" />
+ <Patch name="All Was Lost" hbank="1" lbank="0" prog="14" />
+ <Patch name="Rock Organ" hbank="1" lbank="0" prog="15" />
+ <Patch name="Hip Hop Clav" hbank="1" lbank="0" prog="16" />
+ <Patch name="Bowed Strings" hbank="1" lbank="0" prog="17" />
+ <Patch name="Sailing" hbank="1" lbank="0" prog="18" />
+ <Patch name="E.Piano/Brass" hbank="1" lbank="0" prog="19" />
+ <Patch name="Galactic Artcore" hbank="1" lbank="0" prog="20" />
+ <Patch name="Sweet RnB Vibe" hbank="1" lbank="0" prog="21" />
+ <Patch name="HardHouse" hbank="1" lbank="0" prog="22" />
+ <Patch name="ClassicGarage" hbank="1" lbank="0" prog="23" />
+ <Patch name="You Will Love It" hbank="1" lbank="0" prog="24" />
+ <Patch name="Presto + Vivace" hbank="1" lbank="0" prog="25" />
+ <Patch name="Fuji-yama" hbank="1" lbank="0" prog="26" />
+ <Patch name="Night Reeds" hbank="1" lbank="0" prog="27" />
+ <Patch name="The Guitarist" hbank="1" lbank="0" prog="28" />
+ <Patch name="Warm Brass Ens." hbank="1" lbank="0" prog="29" />
+ <Patch name="Modern Orchestra" hbank="1" lbank="0" prog="30" />
+ <Patch name="Registrations" hbank="1" lbank="0" prog="31" />
+ <Patch name="Soft Piano Pad" hbank="1" lbank="0" prog="32" />
+ <Patch name="-Movie Strings-" hbank="1" lbank="0" prog="33" />
+ <Patch name="Forget-Me-Not" hbank="1" lbank="0" prog="34" />
+ <Patch name="-SWEET GROOVE-" hbank="1" lbank="0" prog="35" />
+ <Patch name="The 16th Strummer" hbank="1" lbank="0" prog="36" />
+ <Patch name="Retrogene" hbank="1" lbank="0" prog="37" />
+ <Patch name="Stationary Split" hbank="1" lbank="0" prog="38" />
+ <Patch name="/Nice + Easy/" hbank="1" lbank="0" prog="39" />
+ <Patch name="Delhicacy (vel)" hbank="1" lbank="0" prog="40" />
+ <Patch name="FrenchEnsemble" hbank="1" lbank="0" prog="41" />
+ <Patch name="80\s Analogues" hbank="1" lbank="0" prog="42" />
+ <Patch name="Universal Choir" hbank="1" lbank="0" prog="43" />
+ <Patch name="Deep Crystals" hbank="1" lbank="0" prog="44" />
+ <Patch name="Polished Brass" hbank="1" lbank="0" prog="45" />
+ <Patch name="The Rain Forest" hbank="1" lbank="0" prog="46" />
+ <Patch name="Super Jazz Organ" hbank="1" lbank="0" prog="47" />
+ <Patch name="Stream E.Piano" hbank="1" lbank="0" prog="48" />
+ <Patch name="Horns + Strings" hbank="1" lbank="0" prog="49" />
+ <Patch name="Kromatica" hbank="1" lbank="0" prog="50" />
+ <Patch name="Club Movement" hbank="1" lbank="0" prog="51" />
+ <Patch name="POP Princessa" hbank="1" lbank="0" prog="52" />
+ <Patch name="Breaks Step" hbank="1" lbank="0" prog="53" />
+ <Patch name="Brass Jazz Funk" hbank="1" lbank="0" prog="54" />
+ <Patch name="FunkedUpGarage" hbank="1" lbank="0" prog="55" />
+ <Patch name="Journey To Bali" hbank="1" lbank="0" prog="56" />
+ <Patch name="Gotham Snd. Track" hbank="1" lbank="0" prog="57" />
+ <Patch name="LushiousClavinus" hbank="1" lbank="0" prog="58" />
+ <Patch name="Classic Combi" hbank="1" lbank="0" prog="59" />
+ <Patch name="LargeScaleGuitar" hbank="1" lbank="0" prog="60" />
+ <Patch name="Velo Orch Winds" hbank="1" lbank="0" prog="61" />
+ <Patch name="Carnival Parade" hbank="1" lbank="0" prog="62" />
+ <Patch name="Pipes on SW+Knbs" hbank="1" lbank="0" prog="63" />
+ <Patch name="Layered A.Piano" hbank="1" lbank="0" prog="64" />
+ <Patch name="Classic AnaString" hbank="1" lbank="0" prog="65" />
+ <Patch name="Tritium" hbank="1" lbank="0" prog="66" />
+ <Patch name="-Movies Theme-" hbank="1" lbank="0" prog="67" />
+ <Patch name="Club NYC" hbank="1" lbank="0" prog="68" />
+ <Patch name="Organic Beats" hbank="1" lbank="0" prog="69" />
+ <Patch name="Ethereal Piano" hbank="1" lbank="0" prog="70" />
+ <Patch name="In The Pocket" hbank="1" lbank="0" prog="71" />
+ <Patch name="Fisatic Dreams" hbank="1" lbank="0" prog="72" />
+ <Patch name="Dry Chamber Ens." hbank="1" lbank="0" prog="73" />
+ <Patch name="Sigma Strings" hbank="1" lbank="0" prog="74" />
+ <Patch name="Sequence Pad" hbank="1" lbank="0" prog="75" />
+ <Patch name="-Fourier\s Idea-" hbank="1" lbank="0" prog="76" />
+ <Patch name="Knob as Drawbar 1" hbank="1" lbank="0" prog="77" />
+ <Patch name="Narita Airport C4" hbank="1" lbank="0" prog="78" />
+ <Patch name="JazzyChords/Knbs" hbank="1" lbank="0" prog="79" />
+ <Patch name="Village Pump" hbank="1" lbank="0" prog="80" />
+ <Patch name="AfterRainStrings" hbank="1" lbank="0" prog="81" />
+ <Patch name="-Smoky Soft Pad-" hbank="1" lbank="0" prog="82" />
+ <Patch name="Hidden Rhythm" hbank="1" lbank="0" prog="83" />
+ <Patch name="Streetwalk" hbank="1" lbank="0" prog="84" />
+ <Patch name="Clavi-Jammer" hbank="1" lbank="0" prog="85" />
+ <Patch name="Slow Motion Man" hbank="1" lbank="0" prog="86" />
+ <Patch name="Elektro Express" hbank="1" lbank="0" prog="87" />
+ <Patch name="Peasant Song" hbank="1" lbank="0" prog="88" />
+ <Patch name="Sweet Dyn-Orch" hbank="1" lbank="0" prog="89" />
+ <Patch name="Miami Virtue" hbank="1" lbank="0" prog="90" />
+ <Patch name="Strings Of Silk" hbank="1" lbank="0" prog="91" />
+ <Patch name="My Baby\s Asleep" hbank="1" lbank="0" prog="92" />
+ <Patch name="Going Home @ 3am" hbank="1" lbank="0" prog="93" />
+ <Patch name="Arp Factory 1" hbank="1" lbank="0" prog="94" />
+ <Patch name="Pipes on Knob" hbank="1" lbank="0" prog="95" />
+ <Patch name="Layered M1 Piano" hbank="1" lbank="0" prog="96" />
+ <Patch name="CinematicStrings" hbank="1" lbank="0" prog="97" />
+ <Patch name="Speoretical" hbank="1" lbank="0" prog="98" />
+ <Patch name="Steely Keys" hbank="1" lbank="0" prog="99" />
+ <Patch name="Lonely Moon" hbank="1" lbank="0" prog="100" />
+ <Patch name="Freewheeling LFO" hbank="1" lbank="0" prog="101" />
+ <Patch name="Mystic Presence" hbank="1" lbank="0" prog="102" />
+ <Patch name="-Housemade-" hbank="1" lbank="0" prog="103" />
+ <Patch name="Snap!ReggaeOrgan" hbank="1" lbank="0" prog="104" />
+ <Patch name="Expressive Orch" hbank="1" lbank="0" prog="105" />
+ <Patch name="Anabell Rain New" hbank="1" lbank="0" prog="106" />
+ <Patch name="Simple Pad" hbank="1" lbank="0" prog="107" />
+ <Patch name="Bella Proach" hbank="1" lbank="0" prog="108" />
+ <Patch name="Knob as Drawbar2" hbank="1" lbank="0" prog="109" />
+ <Patch name="Living Cycles" hbank="1" lbank="0" prog="110" />
+ <Patch name="Velo*Perc*Organ" hbank="1" lbank="0" prog="111" />
+ <Patch name="LayerEP+Pad/Knbs" hbank="1" lbank="0" prog="112" />
+ <Patch name="Splittavox" hbank="1" lbank="0" prog="113" />
+ <Patch name="**Weightless**" hbank="1" lbank="0" prog="114" />
+ <Patch name="Bass On Drums" hbank="1" lbank="0" prog="115" />
+ <Patch name="-Flimmer Line-" hbank="1" lbank="0" prog="116" />
+ <Patch name="Love to Play Pad" hbank="1" lbank="0" prog="117" />
+ <Patch name="ErraJ si Gnivil" hbank="1" lbank="0" prog="118" />
+ <Patch name="Dem is Well Hard" hbank="1" lbank="0" prog="119" />
+ <Patch name="Quidam" hbank="1" lbank="0" prog="120" />
+ <Patch name="Dream Orchestra" hbank="1" lbank="0" prog="121" />
+ <Patch name="Poly Sixual" hbank="1" lbank="0" prog="122" />
+ <Patch name="--Solo @ Pad--" hbank="1" lbank="0" prog="123" />
+ <Patch name="Classical Guitar" hbank="1" lbank="0" prog="124" />
+ <Patch name="]Glass Shop[" hbank="1" lbank="0" prog="125" />
+ <Patch name="Dude,That\s SICK" hbank="1" lbank="0" prog="126" />
+ <Patch name="Gospel Church" hbank="1" lbank="0" prog="127" />
+ </PatchGroup>
+ <PatchGroup name="Combinations Bank C">
+ <Patch name="Ballad Layer EP" hbank="1" lbank="0" prog="0" />
+ <Patch name="Super Strings" hbank="1" lbank="0" prog="1" />
+ <Patch name="Squarehead" hbank="1" lbank="0" prog="2" />
+ <Patch name="Ballad Grand" hbank="1" lbank="0" prog="3" />
+ <Patch name="Play The Trance" hbank="1" lbank="0" prog="4" />
+ <Patch name="The ILL Chill" hbank="1" lbank="0" prog="5" />
+ <Patch name="Nu Cyber Breaks" hbank="1" lbank="0" prog="6" />
+ <Patch name="Strumi\2Steps" hbank="1" lbank="0" prog="7" />
+ <Patch name="World Atmosphere" hbank="1" lbank="0" prog="8" />
+ <Patch name="Rhythms + Bows" hbank="1" lbank="0" prog="9" />
+ <Patch name="Analog Clavical" hbank="1" lbank="0" prog="10" />
+ <Patch name="=Liquifield=" hbank="1" lbank="0" prog="11" />
+ <Patch name="Random Blocks" hbank="1" lbank="0" prog="12" />
+ <Patch name="Sop/Alt/Tnr/Bari" hbank="1" lbank="0" prog="13" />
+ <Patch name="One Bad Monster" hbank="1" lbank="0" prog="14" />
+ <Patch name="Comp Organ/Knobs" hbank="1" lbank="0" prog="15" />
+ <Patch name="Damper Wah Clav" hbank="1" lbank="0" prog="16" />
+ <Patch name="3-V.Switch-Strgs" hbank="1" lbank="0" prog="17" />
+ <Patch name="(Where Are You?)" hbank="1" lbank="0" prog="18" />
+ <Patch name="Acid Groover..." hbank="1" lbank="0" prog="19" />
+ <Patch name="Paradise Cycle" hbank="1" lbank="0" prog="20" />
+ <Patch name="-Groovy Jam-" hbank="1" lbank="0" prog="21" />
+ <Patch name="-Sneakin-" hbank="1" lbank="0" prog="22" />
+ <Patch name="Elec Laboratory" hbank="1" lbank="0" prog="23" />
+ <Patch name="Velo Psycedelic" hbank="1" lbank="0" prog="24" />
+ <Patch name="DynOrchestra 1" hbank="1" lbank="0" prog="25" />
+ <Patch name="WIDE StringPad" hbank="1" lbank="0" prog="26" />
+ <Patch name="PerformingGuitar" hbank="1" lbank="0" prog="27" />
+ <Patch name="Mountainside" hbank="1" lbank="0" prog="28" />
+ <Patch name="Pompus Brass" hbank="1" lbank="0" prog="29" />
+ <Patch name="Psycho Orchestra" hbank="1" lbank="0" prog="30" />
+ <Patch name="Orchestral Pipes" hbank="1" lbank="0" prog="31" />
+ <Patch name="Tiney Harmonic" hbank="1" lbank="0" prog="32" />
+ <Patch name="Violin Section" hbank="1" lbank="0" prog="33" />
+ <Patch name="What GEOS Around" hbank="1" lbank="0" prog="34" />
+ <Patch name="*Blood Cooker*" hbank="1" lbank="0" prog="35" />
+ <Patch name="Manic 3AM" hbank="1" lbank="0" prog="36" />
+ <Patch name="OffToHollywood.." hbank="1" lbank="0" prog="37" />
+ <Patch name="Spiral Design" hbank="1" lbank="0" prog="38" />
+ <Patch name="Garage\r\us!" hbank="1" lbank="0" prog="39" />
+ <Patch name="World Winds" hbank="1" lbank="0" prog="40" />
+ <Patch name="Film Tools" hbank="1" lbank="0" prog="41" />
+ <Patch name="BleepageForDays" hbank="1" lbank="0" prog="42" />
+ <Patch name="VoicesFromHeaven" hbank="1" lbank="0" prog="43" />
+ <Patch name="Emtim Bells" hbank="1" lbank="0" prog="44" />
+ <Patch name="French Brass" hbank="1" lbank="0" prog="45" />
+ <Patch name="Sargasso Sea" hbank="1" lbank="0" prog="46" />
+ <Patch name="BX-3 Click Organ" hbank="1" lbank="0" prog="47" />
+ <Patch name="Real EP + Pad" hbank="1" lbank="0" prog="48" />
+ <Patch name="Strings/Brass" hbank="1" lbank="0" prog="49" />
+ <Patch name="isabellacoola" hbank="1" lbank="0" prog="50" />
+ <Patch name="Session Piano" hbank="1" lbank="0" prog="51" />
+ <Patch name="-Mutant Hop-Knbs" hbank="1" lbank="0" prog="52" />
+ <Patch name="Echo Jamm" hbank="1" lbank="0" prog="53" />
+ <Patch name="--Jenindaze--" hbank="1" lbank="0" prog="54" />
+ <Patch name="-BAD Luck-" hbank="1" lbank="0" prog="55" />
+ <Patch name="Alchemy Layer" hbank="1" lbank="0" prog="56" />
+ <Patch name="Orchestra" hbank="1" lbank="0" prog="57" />
+ <Patch name="Hybrid BellPad" hbank="1" lbank="0" prog="58" />
+ <Patch name="Healing Pad" hbank="1" lbank="0" prog="59" />
+ <Patch name="Strumming Guitar" hbank="1" lbank="0" prog="60" />
+ <Patch name="RomanticSparkles" hbank="1" lbank="0" prog="61" />
+ <Patch name="Laid-Back-Split" hbank="1" lbank="0" prog="62" />
+ <Patch name="Holy Pipes" hbank="1" lbank="0" prog="63" />
+ <Patch name="Modern Piano" hbank="1" lbank="0" prog="64" />
+ <Patch name="Golden Strings" hbank="1" lbank="0" prog="65" />
+ <Patch name="FourStar*Choice" hbank="1" lbank="0" prog="66" />
+ <Patch name="Abstract Hop" hbank="1" lbank="0" prog="67" />
+ <Patch name="Invisible Sun" hbank="1" lbank="0" prog="68" />
+ <Patch name="*\tude.com*" hbank="1" lbank="0" prog="69" />
+ <Patch name="D\nB\n\AllMySon" hbank="1" lbank="0" prog="70" />
+ <Patch name="ClubbinGarage" hbank="1" lbank="0" prog="71" />
+ <Patch name="CaribicSituation" hbank="1" lbank="0" prog="72" />
+ <Patch name="Small Orchestra" hbank="1" lbank="0" prog="73" />
+ <Patch name="Analogue Blatter" hbank="1" lbank="0" prog="74" />
+ <Patch name="Symphonic Voices" hbank="1" lbank="0" prog="75" />
+ <Patch name="Bellish Pad" hbank="1" lbank="0" prog="76" />
+ <Patch name="Dirty Drawbars" hbank="1" lbank="0" prog="77" />
+ <Patch name="Trance Split" hbank="1" lbank="0" prog="78" />
+ <Patch name="Old Vox Organ" hbank="1" lbank="0" prog="79" />
+ <Patch name="Big Bottom Clav" hbank="1" lbank="0" prog="80" />
+ <Patch name="Smoothie Strings" hbank="1" lbank="0" prog="81" />
+ <Patch name="||TRANSIT||" hbank="1" lbank="0" prog="82" />
+ <Patch name="Tranzation/Knobs" hbank="1" lbank="0" prog="83" />
+ <Patch name="Trancendental" hbank="1" lbank="0" prog="84" />
+ <Patch name="Trick House" hbank="1" lbank="0" prog="85" />
+ <Patch name="Petit Lounge" hbank="1" lbank="0" prog="86" />
+ <Patch name="Funky Moves" hbank="1" lbank="0" prog="87" />
+ <Patch name="Shogun" hbank="1" lbank="0" prog="88" />
+ <Patch name="Serenade" hbank="1" lbank="0" prog="89" />
+ <Patch name="Syzzle Synth" hbank="1" lbank="0" prog="90" />
+ <Patch name="Solo+Arp+IcePad" hbank="1" lbank="0" prog="91" />
+ <Patch name="-Hybr.Guit+Arp.-" hbank="1" lbank="0" prog="92" />
+ <Patch name="Angelic Bells" hbank="1" lbank="0" prog="93" />
+ <Patch name="Arp Factory 2" hbank="1" lbank="0" prog="94" />
+ <Patch name="Pipes+Choir SW" hbank="1" lbank="0" prog="95" />
+ <Patch name="Piano +Strings" hbank="1" lbank="0" prog="96" />
+ <Patch name="(Octave-Strings)" hbank="1" lbank="0" prog="97" />
+ <Patch name="Respirator" hbank="1" lbank="0" prog="98" />
+ <Patch name="Rock-tave Gtr" hbank="1" lbank="0" prog="99" />
+ <Patch name="Zero Sleep" hbank="1" lbank="0" prog="100" />
+ <Patch name="Rhythm Of Asia" hbank="1" lbank="0" prog="101" />
+ <Patch name="Stutter Pad" hbank="1" lbank="0" prog="102" />
+ <Patch name="Strut Break" hbank="1" lbank="0" prog="103" />
+ <Patch name="Delhi/gate" hbank="1" lbank="0" prog="104" />
+ <Patch name="OrchestraMaximus" hbank="1" lbank="0" prog="105" />
+ <Patch name="Alpha Mega Synth" hbank="1" lbank="0" prog="106" />
+ <Patch name="The Night Sky" hbank="1" lbank="0" prog="107" />
+ <Patch name="Stereo Mallets" hbank="1" lbank="0" prog="108" />
+ <Patch name="Sax Banquet" hbank="1" lbank="0" prog="109" />
+ <Patch name="Grungie Vibe Jam" hbank="1" lbank="0" prog="110" />
+ <Patch name="Melon Flute" hbank="1" lbank="0" prog="111" />
+ <Patch name="Shiny DigiPiano" hbank="1" lbank="0" prog="112" />
+ <Patch name="Handmade Jazz" hbank="1" lbank="0" prog="113" />
+ <Patch name="Millenium Pad" hbank="1" lbank="0" prog="114" />
+ <Patch name="Chewing Gum" hbank="1" lbank="0" prog="115" />
+ <Patch name="Organ Vel--Brass" hbank="1" lbank="0" prog="116" />
+ <Patch name="-Wah-Solo-Jam-" hbank="1" lbank="0" prog="117" />
+ <Patch name="Acid Clav" hbank="1" lbank="0" prog="118" />
+ <Patch name="Kleen Guitah" hbank="1" lbank="0" prog="119" />
+ <Patch name="*Dance with me!*" hbank="1" lbank="0" prog="120" />
+ <Patch name="Bows+KnobHarpsi" hbank="1" lbank="0" prog="121" />
+ <Patch name="Noisy Funk Synth" hbank="1" lbank="0" prog="122" />
+ <Patch name="Oboe + Strings" hbank="1" lbank="0" prog="123" />
+ <Patch name="Vintage12String" hbank="1" lbank="0" prog="124" />
+ <Patch name="Big Bad Brass" hbank="1" lbank="0" prog="125" />
+ <Patch name="Analog Baff SW" hbank="1" lbank="0" prog="126" />
+ <Patch name="Init Combination" hbank="1" lbank="0" prog="127" />
+ </PatchGroup>
+ <PatchGroup name="Programs Bank A">
+ <Patch name="Portamento Pad" hbank="63" lbank="0" prog="0" />
+ <Patch name="StereoPiano mf/f" hbank="63" lbank="0" prog="1" />
+ <Patch name="Centerfuge" hbank="63" lbank="0" prog="2" />
+ <Patch name="Session Strings" hbank="63" lbank="0" prog="3" />
+ <Patch name="Mashed Kit" hbank="63" lbank="0" prog="4" />
+ <Patch name="HardPulse Bass" hbank="63" lbank="0" prog="5" />
+ <Patch name="Session Brass" hbank="63" lbank="0" prog="6" />
+ <Patch name="Jazz Organ 1" hbank="63" lbank="0" prog="7" />
+ <Patch name="Vibraphone 2" hbank="63" lbank="0" prog="8" />
+ <Patch name="Saw Strings" hbank="63" lbank="0" prog="9" />
+ <Patch name="Saw OD Bass/Lead" hbank="63" lbank="0" prog="10" />
+ <Patch name="SiniSTAR Bass" hbank="63" lbank="0" prog="11" />
+ <Patch name="Nylon Guitar 2" hbank="63" lbank="0" prog="12" />
+ <Patch name="Ping/Pong Synth" hbank="63" lbank="0" prog="13" />
+ <Patch name="Harmonica-Wah" hbank="63" lbank="0" prog="14" />
+ <Patch name="THEY were here" hbank="63" lbank="0" prog="15" />
+ <Patch name="Fast saw Synth" hbank="63" lbank="0" prog="16" />
+ <Patch name="EP Bright mf/f" hbank="63" lbank="0" prog="17" />
+ <Patch name="PunchBowl HIT" hbank="63" lbank="0" prog="18" />
+ <Patch name="Tape Strings" hbank="63" lbank="0" prog="19" />
+ <Patch name="Standard Kit 3" hbank="63" lbank="0" prog="20" />
+ <Patch name="Velo Scat Voices" hbank="63" lbank="0" prog="21" />
+ <Patch name="Trumpet Duo" hbank="63" lbank="0" prog="22" />
+ <Patch name="BX-3 Velo Switch" hbank="63" lbank="0" prog="23" />
+ <Patch name="Analog Bells" hbank="63" lbank="0" prog="24" />
+ <Patch name="Overture Pad" hbank="63" lbank="0" prog="25" />
+ <Patch name="2VCO Planet Lead" hbank="63" lbank="0" prog="26" />
+ <Patch name="Club Ac Bass" hbank="63" lbank="0" prog="27" />
+ <Patch name="Mono Guitar Lead" hbank="63" lbank="0" prog="28" />
+ <Patch name="Spikey Unisyn" hbank="63" lbank="0" prog="29" />
+ <Patch name="Flute Vibrato" hbank="63" lbank="0" prog="30" />
+ <Patch name="Cymbalis" hbank="63" lbank="0" prog="31" />
+ <Patch name="Ghostly Popper" hbank="63" lbank="0" prog="32" />
+ <Patch name="Tremolo Wurly" hbank="63" lbank="0" prog="33" />
+ <Patch name="Saw Arpeggiator" hbank="63" lbank="0" prog="34" />
+ <Patch name="StringsQuartet 2" hbank="63" lbank="0" prog="35" />
+ <Patch name="DWGS Sync2 Knob1" hbank="63" lbank="0" prog="36" />
+ <Patch name="Nice+Expensive" hbank="63" lbank="0" prog="37" />
+ <Patch name="5th Stab" hbank="63" lbank="0" prog="38" />
+ <Patch name="Distortion Organ" hbank="63" lbank="0" prog="39" />
+ <Patch name="Monkey Skulls" hbank="63" lbank="0" prog="40" />
+ <Patch name="Korgmatose" hbank="63" lbank="0" prog="41" />
+ <Patch name="Dance Lead" hbank="63" lbank="0" prog="42" />
+ <Patch name="SuperSwitch Bass" hbank="63" lbank="0" prog="43" />
+ <Patch name="A. Guitar Gliss." hbank="63" lbank="0" prog="44" />
+ <Patch name="Time Stood Still" hbank="63" lbank="0" prog="45" />
+ <Patch name="Sax Ensemble" hbank="63" lbank="0" prog="46" />
+ <Patch name="Orbitting Probes" hbank="63" lbank="0" prog="47" />
+ <Patch name="-Fast Reaction-" hbank="63" lbank="0" prog="48" />
+ <Patch name="Funky Clav" hbank="63" lbank="0" prog="49" />
+ <Patch name="NetherlandHit" hbank="63" lbank="0" prog="50" />
+ <Patch name="D\n\B/GarageBass" hbank="63" lbank="0" prog="51" />
+ <Patch name="Psycho Kit" hbank="63" lbank="0" prog="52" />
+ <Patch name="Aah Voices" hbank="63" lbank="0" prog="53" />
+ <Patch name="Horns + Ensemble" hbank="63" lbank="0" prog="54" />
+ <Patch name="Transweep" hbank="63" lbank="0" prog="55" />
+ <Patch name="Chorus E. Guitar" hbank="63" lbank="0" prog="56" />
+ <Patch name="FlutaSonic Pad" hbank="63" lbank="0" prog="57" />
+ <Patch name="Ripper" hbank="63" lbank="0" prog="58" />
+ <Patch name="Low Finger Bass" hbank="63" lbank="0" prog="59" />
+ <Patch name="Power-Chords+FX" hbank="63" lbank="0" prog="60" />
+ <Patch name="Motion Saw" hbank="63" lbank="0" prog="61" />
+ <Patch name="Oboe Vibrato" hbank="63" lbank="0" prog="62" />
+ <Patch name="Xpanded Voice" hbank="63" lbank="0" prog="63" />
+ <Patch name="Polysix Pad" hbank="63" lbank="0" prog="64" />
+ <Patch name="M1 Piano" hbank="63" lbank="0" prog="65" />
+ <Patch name="Chord Trigger" hbank="63" lbank="0" prog="66" />
+ <Patch name="Hybrid Strings" hbank="63" lbank="0" prog="67" />
+ <Patch name="Mega Drum Hit" hbank="63" lbank="0" prog="68" />
+ <Patch name="M1 Organ Bass" hbank="63" lbank="0" prog="69" />
+ <Patch name="Velo Resonant" hbank="63" lbank="0" prog="70" />
+ <Patch name="Additive Organ" hbank="63" lbank="0" prog="71" />
+ <Patch name="Digital Bells 1" hbank="63" lbank="0" prog="72" />
+ <Patch name="ClassicAnaPad" hbank="63" lbank="0" prog="73" />
+ <Patch name="DetunedSuperLead" hbank="63" lbank="0" prog="74" />
+ <Patch name="Bass-Depot" hbank="63" lbank="0" prog="75" />
+ <Patch name="Processed E.Gtr." hbank="63" lbank="0" prog="76" />
+ <Patch name="LightOfTheSource" hbank="63" lbank="0" prog="77" />
+ <Patch name="Classic Tines" hbank="63" lbank="0" prog="78" />
+ <Patch name="Big Break Down" hbank="63" lbank="0" prog="79" />
+ <Patch name="Paddy Whack" hbank="63" lbank="0" prog="80" />
+ <Patch name="Analog E.Piano" hbank="63" lbank="0" prog="81" />
+ <Patch name="Chipper Dayglow" hbank="63" lbank="0" prog="82" />
+ <Patch name="Acid Square Bass" hbank="63" lbank="0" prog="83" />
+ <Patch name="Filter Drums" hbank="63" lbank="0" prog="84" />
+ <Patch name="Digital Voice" hbank="63" lbank="0" prog="85" />
+ <Patch name="Trumpets+Brass" hbank="63" lbank="0" prog="86" />
+ <Patch name="Velo Pulse Clav" hbank="63" lbank="0" prog="87" />
+ <Patch name="Ensemble Bell" hbank="63" lbank="0" prog="88" />
+ <Patch name="ASineOfTheTimes" hbank="63" lbank="0" prog="89" />
+ <Patch name="JuicyBleep-age" hbank="63" lbank="0" prog="90" />
+ <Patch name="DarkCore Bass" hbank="63" lbank="0" prog="91" />
+ <Patch name="Harp" hbank="63" lbank="0" prog="92" />
+ <Patch name="Swirling Dreams" hbank="63" lbank="0" prog="93" />
+ <Patch name="Fisa Americana" hbank="63" lbank="0" prog="94" />
+ <Patch name="Monster Island" hbank="63" lbank="0" prog="95" />
+ <Patch name="Reso Comp" hbank="63" lbank="0" prog="96" />
+ <Patch name="DarkTineStage EP" hbank="63" lbank="0" prog="97" />
+ <Patch name="Progressive Trance" hbank="63" lbank="0" prog="98" />
+ <Patch name="PizzAnsamble" hbank="63" lbank="0" prog="99" />
+ <Patch name="!{Tricky} Kit!" hbank="63" lbank="0" prog="100" />
+ <Patch name="Deep Detune Bass" hbank="63" lbank="0" prog="101" />
+ <Patch name="Cosmic Furnace" hbank="63" lbank="0" prog="102" />
+ <Patch name="Pipe Mixture" hbank="63" lbank="0" prog="103" />
+ <Patch name="Krystal Bells" hbank="63" lbank="0" prog="104" />
+ <Patch name="Strings Synth" hbank="63" lbank="0" prog="105" />
+ <Patch name="Detox Lead" hbank="63" lbank="0" prog="106" />
+ <Patch name="Wah Space Bass" hbank="63" lbank="0" prog="107" />
+ <Patch name="Da Mute...ModWhl" hbank="63" lbank="0" prog="108" />
+ <Patch name="Sinistar*Android" hbank="63" lbank="0" prog="109" />
+ <Patch name="Piano Pad" hbank="63" lbank="0" prog="110" />
+ <Patch name="ModWheel Machine" hbank="63" lbank="0" prog="111" />
+ <Patch name="Super Saw Brass" hbank="63" lbank="0" prog="112" />
+ <Patch name="Romance Piano" hbank="63" lbank="0" prog="113" />
+ <Patch name="Techno Organ Hit" hbank="63" lbank="0" prog="114" />
+ <Patch name="Boost RnB Bass" hbank="63" lbank="0" prog="115" />
+ <Patch name="BD+SD Kit 1" hbank="63" lbank="0" prog="116" />
+ <Patch name="Talkin\Keys" hbank="63" lbank="0" prog="117" />
+ <Patch name="Trombone Ens." hbank="63" lbank="0" prog="118" />
+ <Patch name="PowerRezSweep" hbank="63" lbank="0" prog="119" />
+ <Patch name="Thin Bell-s-park" hbank="63" lbank="0" prog="120" />
+ <Patch name="Cross Sweeper" hbank="63" lbank="0" prog="121" />
+ <Patch name="Nu HPF Lead" hbank="63" lbank="0" prog="122" />
+ <Patch name="Motion Bass/Lead" hbank="63" lbank="0" prog="123" />
+ <Patch name="Jazz Guitar" hbank="63" lbank="0" prog="124" />
+ <Patch name="Space Pod for 2" hbank="63" lbank="0" prog="125" />
+ <Patch name="TenorSax GrowlSW" hbank="63" lbank="0" prog="126" />
+ <Patch name="Steam Sweeps" hbank="63" lbank="0" prog="127" />
+ </PatchGroup>
+ <PatchGroup name="Programs Bank B">
+ <Patch name="Big Sweep Stab" hbank="63" lbank="1" prog="0" />
+ <Patch name="Acoustic Piano" hbank="63" lbank="1" prog="1" />
+ <Patch name="Flip Blip" hbank="63" lbank="1" prog="2" />
+ <Patch name="Arco Strings" hbank="63" lbank="1" prog="3" />
+ <Patch name="Trance/GarageKit" hbank="63" lbank="1" prog="4" />
+ <Patch name="Bass 4 Da Phunk" hbank="63" lbank="1" prog="5" />
+ <Patch name="Burnin\ Brass" hbank="63" lbank="1" prog="6" />
+ <Patch name="Full Drawbars" hbank="63" lbank="1" prog="7" />
+ <Patch name="Bali Gamelon" hbank="63" lbank="1" prog="8" />
+ <Patch name="Breakdown String" hbank="63" lbank="1" prog="9" />
+ <Patch name="Phat Saw Lead" hbank="63" lbank="1" prog="10" />
+ <Patch name="Drive Bass" hbank="63" lbank="1" prog="11" />
+ <Patch name="AcousticGuitar 1" hbank="63" lbank="1" prog="12" />
+ <Patch name="VCF Modulation" hbank="63" lbank="1" prog="13" />
+ <Patch name="Harmonica" hbank="63" lbank="1" prog="14" />
+ <Patch name="Soundscapes" hbank="63" lbank="1" prog="15" />
+ <Patch name="Rezbo" hbank="63" lbank="1" prog="16" />
+ <Patch name="Stereo E.Piano" hbank="63" lbank="1" prog="17" />
+ <Patch name="BlastFromDaPast" hbank="63" lbank="1" prog="18" />
+ <Patch name="Vintage Stringz" hbank="63" lbank="1" prog="19" />
+ <Patch name="Standard Kit 1" hbank="63" lbank="1" prog="20" />
+ <Patch name="Dah Voices" hbank="63" lbank="1" prog="21" />
+ <Patch name="Trombone Hard" hbank="63" lbank="1" prog="22" />
+ <Patch name="Classic Click" hbank="63" lbank="1" prog="23" />
+ <Patch name="VS Bell Boy" hbank="63" lbank="1" prog="24" />
+ <Patch name="Reactor Pad" hbank="63" lbank="1" prog="25" />
+ <Patch name="MonoSynGtr LEAD" hbank="63" lbank="1" prog="26" />
+ <Patch name="Acoustic Bass" hbank="63" lbank="1" prog="27" />
+ <Patch name="Wet Dist. Guitar" hbank="63" lbank="1" prog="28" />
+ <Patch name="Crimson 5ths" hbank="63" lbank="1" prog="29" />
+ <Patch name="Old Shakuhachi" hbank="63" lbank="1" prog="30" />
+ <Patch name="Loop-Iteria" hbank="63" lbank="1" prog="31" />
+ <Patch name="Perky Bleeper" hbank="63" lbank="1" prog="32" />
+ <Patch name="Velo Whirly" hbank="63" lbank="1" prog="33" />
+ <Patch name="Auto Pilot" hbank="63" lbank="1" prog="34" />
+ <Patch name="Small StringsEns" hbank="63" lbank="1" prog="35" />
+ <Patch name="WellAardHouse" hbank="63" lbank="1" prog="36" />
+ <Patch name="Slow Choir ST" hbank="63" lbank="1" prog="37" />
+ <Patch name="Garage PWM" hbank="63" lbank="1" prog="38" />
+ <Patch name="Perc Short Decay" hbank="63" lbank="1" prog="39" />
+ <Patch name="Log Drum" hbank="63" lbank="1" prog="40" />
+ <Patch name="Rez. Down" hbank="63" lbank="1" prog="41" />
+ <Patch name="Espress Lead" hbank="63" lbank="1" prog="42" />
+ <Patch name="Slap Bass v/s" hbank="63" lbank="1" prog="43" />
+ <Patch name="Sitar Sitar" hbank="63" lbank="1" prog="44" />
+ <Patch name="Tinklin\ Pad" hbank="63" lbank="1" prog="45" />
+ <Patch name="SopranoSax Br.SW" hbank="63" lbank="1" prog="46" />
+ <Patch name="The Great Wall" hbank="63" lbank="1" prog="47" />
+ <Patch name="Mega Big Synth" hbank="63" lbank="1" prog="48" />
+ <Patch name="Clav" hbank="63" lbank="1" prog="49" />
+ <Patch name="Percussive Hits" hbank="63" lbank="1" prog="50" />
+ <Patch name="Drum\n\Bass Bass" hbank="63" lbank="1" prog="51" />
+ <Patch name="Psycho Pitch Kit" hbank="63" lbank="1" prog="52" />
+ <Patch name="Woh Voices" hbank="63" lbank="1" prog="53" />
+ <Patch name="Classic Fanfare" hbank="63" lbank="1" prog="54" />
+ <Patch name="Blasta Brasster" hbank="63" lbank="1" prog="55" />
+ <Patch name="Strato-Chime" hbank="63" lbank="1" prog="56" />
+ <Patch name="Clouds of Air" hbank="63" lbank="1" prog="57" />
+ <Patch name="Nu Skool Bleeps" hbank="63" lbank="1" prog="58" />
+ <Patch name="Stein Bass" hbank="63" lbank="1" prog="59" />
+ <Patch name="ModWheel Gtr" hbank="63" lbank="1" prog="60" />
+ <Patch name="Transformation" hbank="63" lbank="1" prog="61" />
+ <Patch name="DoubleReed" hbank="63" lbank="1" prog="62" />
+ <Patch name="-Techno Vox Box-" hbank="63" lbank="1" prog="63" />
+ <Patch name="InverseSGwave" hbank="63" lbank="1" prog="64" />
+ <Patch name="Warm E.Grand" hbank="63" lbank="1" prog="65" />
+ <Patch name="VCF Sample+Hold" hbank="63" lbank="1" prog="66" />
+ <Patch name="AnalogStrings1+2" hbank="63" lbank="1" prog="67" />
+ <Patch name="Dragon Gong" hbank="63" lbank="1" prog="68" />
+ <Patch name="Tekno Organ*Bass" hbank="63" lbank="1" prog="69" />
+ <Patch name="5th Sweeper" hbank="63" lbank="1" prog="70" />
+ <Patch name="Dark Jazz-Organ" hbank="63" lbank="1" prog="71" />
+ <Patch name="Hybrid Bell" hbank="63" lbank="1" prog="72" />
+ <Patch name="Digi Ice Pad" hbank="63" lbank="1" prog="73" />
+ <Patch name="Detune Leader" hbank="63" lbank="1" prog="74" />
+ <Patch name="House Bass" hbank="63" lbank="1" prog="75" />
+ <Patch name="SingleCoil+Piezo" hbank="63" lbank="1" prog="76" />
+ <Patch name="BPF Sweep Pad" hbank="63" lbank="1" prog="77" />
+ <Patch name="Night Tines EP" hbank="63" lbank="1" prog="78" />
+ <Patch name="Sonic Blast" hbank="63" lbank="1" prog="79" />
+ <Patch name="Future Syn Pad" hbank="63" lbank="1" prog="80" />
+ <Patch name="SynPiano X" hbank="63" lbank="1" prog="81" />
+ <Patch name="Jungle Melody" hbank="63" lbank="1" prog="82" />
+ <Patch name="Ana Bass 1" hbank="63" lbank="1" prog="83" />
+ <Patch name="Drum\n\Bass Kit" hbank="63" lbank="1" prog="84" />
+ <Patch name="Fresh Breath" hbank="63" lbank="1" prog="85" />
+ <Patch name="Fat Brass" hbank="63" lbank="1" prog="86" />
+ <Patch name="Turn back Stab" hbank="63" lbank="1" prog="87" />
+ <Patch name="Tropico Bells" hbank="63" lbank="1" prog="88" />
+ <Patch name="Simple Sine Pad" hbank="63" lbank="1" prog="89" />
+ <Patch name="Seq DDL LEAD" hbank="63" lbank="1" prog="90" />
+ <Patch name="2 Step Bass" hbank="63" lbank="1" prog="91" />
+ <Patch name="Koto" hbank="63" lbank="1" prog="92" />
+ <Patch name="Astral Dreams" hbank="63" lbank="1" prog="93" />
+ <Patch name="Musette" hbank="63" lbank="1" prog="94" />
+ <Patch name="Dark Night" hbank="63" lbank="1" prog="95" />
+ <Patch name="Metalic Rez" hbank="63" lbank="1" prog="96" />
+ <Patch name="Dyno Tine EP" hbank="63" lbank="1" prog="97" />
+ <Patch name="Goa Message" hbank="63" lbank="1" prog="98" />
+ <Patch name="PizzicatoSection" hbank="63" lbank="1" prog="99" />
+ <Patch name="Orchestra+Ethnic" hbank="63" lbank="1" prog="100" />
+ <Patch name="The Tea-Bea" hbank="63" lbank="1" prog="101" />
+ <Patch name="Synth Sweeper" hbank="63" lbank="1" prog="102" />
+ <Patch name="Church Pipes" hbank="63" lbank="1" prog="103" />
+ <Patch name="Tinkle Bells" hbank="63" lbank="1" prog="104" />
+ <Patch name="Noble Brite Pad" hbank="63" lbank="1" prog="105" />
+ <Patch name="Old + Analog" hbank="63" lbank="1" prog="106" />
+ <Patch name="Nu Skool Bass" hbank="63" lbank="1" prog="107" />
+ <Patch name="Funkin\ Guitar" hbank="63" lbank="1" prog="108" />
+ <Patch name="Spectrum Alloy" hbank="63" lbank="1" prog="109" />
+ <Patch name="HarpsyKorg 8\+4\" hbank="63" lbank="1" prog="110" />
+ <Patch name="VenusianStories" hbank="63" lbank="1" prog="111" />
+ <Patch name="SynthBrass" hbank="63" lbank="1" prog="112" />
+ <Patch name="Phantom Of Tine" hbank="63" lbank="1" prog="113" />
+ <Patch name="Rave Synth" hbank="63" lbank="1" prog="114" />
+ <Patch name="Dark R+B Bass" hbank="63" lbank="1" prog="115" />
+ <Patch name="BD+SD Kit 2" hbank="63" lbank="1" prog="116" />
+ <Patch name="Take Voices" hbank="63" lbank="1" prog="117" />
+ <Patch name="Glen + The Boys" hbank="63" lbank="1" prog="118" />
+ <Patch name="Dual Filterz" hbank="63" lbank="1" prog="119" />
+ <Patch name="Future Bell" hbank="63" lbank="1" prog="120" />
+ <Patch name="Ultra Res. Sweep" hbank="63" lbank="1" prog="121" />
+ <Patch name="Glide Lead" hbank="63" lbank="1" prog="122" />
+ <Patch name="Nasty Bass" hbank="63" lbank="1" prog="123" />
+ <Patch name="Vintage Stratt" hbank="63" lbank="1" prog="124" />
+ <Patch name="Symphonic Waves" hbank="63" lbank="1" prog="125" />
+ <Patch name="AltoSax2 Brth.SW" hbank="63" lbank="1" prog="126" />
+ <Patch name="DJ Touch" hbank="63" lbank="1" prog="127" />
+ </PatchGroup>
+ <PatchGroup name="Programs Bank C">
+ <Patch name="EuphoricTrancer" hbank="63" lbank="2" prog="0" />
+ <Patch name="Attack Piano" hbank="63" lbank="2" prog="1" />
+ <Patch name="Scattersynth" hbank="63" lbank="2" prog="2" />
+ <Patch name="StSlowStringsEXP" hbank="63" lbank="2" prog="3" />
+ <Patch name="Hip Hop Kit" hbank="63" lbank="2" prog="4" />
+ <Patch name="Ana Bass 2" hbank="63" lbank="2" prog="5" />
+ <Patch name="SFZ Brass ST" hbank="63" lbank="2" prog="6" />
+ <Patch name="Gospel PercOrgan" hbank="63" lbank="2" prog="7" />
+ <Patch name="Marimba" hbank="63" lbank="2" prog="8" />
+ <Patch name="Symphonic Ensemb" hbank="63" lbank="2" prog="9" />
+ <Patch name="BrightPulseLead" hbank="63" lbank="2" prog="10" />
+ <Patch name="DistortedTeaBea" hbank="63" lbank="2" prog="11" />
+ <Patch name="Nylon Guitar 1" hbank="63" lbank="2" prog="12" />
+ <Patch name="Gating Voice Pad" hbank="63" lbank="2" prog="13" />
+ <Patch name="Spitz Bottle" hbank="63" lbank="2" prog="14" />
+ <Patch name="MotionSoundTrack" hbank="63" lbank="2" prog="15" />
+ <Patch name="Rez. Sweep" hbank="63" lbank="2" prog="16" />
+ <Patch name="EP Dark mf/f" hbank="63" lbank="2" prog="17" />
+ <Patch name="StaccatoPizzHit" hbank="63" lbank="2" prog="18" />
+ <Patch name="WatcherOfTheSky" hbank="63" lbank="2" prog="19" />
+ <Patch name="Standard Kit 2" hbank="63" lbank="2" prog="20" />
+ <Patch name="Choir of Light" hbank="63" lbank="2" prog="21" />
+ <Patch name="Trumpet" hbank="63" lbank="2" prog="22" />
+ <Patch name="Percussion BX3" hbank="63" lbank="2" prog="23" />
+ <Patch name="Moving Bellz" hbank="63" lbank="2" prog="24" />
+ <Patch name="Tsunami Waves" hbank="63" lbank="2" prog="25" />
+ <Patch name="HipHop Lead" hbank="63" lbank="2" prog="26" />
+ <Patch name="Fretless Bass" hbank="63" lbank="2" prog="27" />
+ <Patch name="Mute Monster" hbank="63" lbank="2" prog="28" />
+ <Patch name="Aqua Phonics" hbank="63" lbank="2" prog="29" />
+ <Patch name="Jazz Clarinet" hbank="63" lbank="2" prog="30" />
+ <Patch name="Goa Lover" hbank="63" lbank="2" prog="31" />
+ <Patch name="Analog Piano" hbank="63" lbank="2" prog="32" />
+ <Patch name="Classic Wurly" hbank="63" lbank="2" prog="33" />
+ <Patch name="Noise Shot" hbank="63" lbank="2" prog="34" />
+ <Patch name="StringsQuartet 1" hbank="63" lbank="2" prog="35" />
+ <Patch name="X-Mod Raver" hbank="63" lbank="2" prog="36" />
+ <Patch name="Garage SQ Bass" hbank="63" lbank="2" prog="37" />
+ <Patch name="Power Snap Synth" hbank="63" lbank="2" prog="38" />
+ <Patch name="Old Tone-Wheel" hbank="63" lbank="2" prog="39" />
+ <Patch name="Velo Kalimba" hbank="63" lbank="2" prog="40" />
+ <Patch name="Antarctic Wind" hbank="63" lbank="2" prog="41" />
+ <Patch name="Smooth Sine Lead" hbank="63" lbank="2" prog="42" />
+ <Patch name="E.Bass Pick 2" hbank="63" lbank="2" prog="43" />
+ <Patch name="A.Guitar NatATK" hbank="63" lbank="2" prog="44" />
+ <Patch name="Pods In The Pad" hbank="63" lbank="2" prog="45" />
+ <Patch name="Reeds Of Power" hbank="63" lbank="2" prog="46" />
+ <Patch name="New Voyage" hbank="63" lbank="2" prog="47" />
+ <Patch name="Noisy Stabber" hbank="63" lbank="2" prog="48" />
+ <Patch name="Sticky Rez Clav" hbank="63" lbank="2" prog="49" />
+ <Patch name="Organ Impact" hbank="63" lbank="2" prog="50" />
+ <Patch name="UK Garage Bass" hbank="63" lbank="2" prog="51" />
+ <Patch name="UGLY HoUSe Kit" hbank="63" lbank="2" prog="52" />
+ <Patch name="Oooh Voices ST" hbank="63" lbank="2" prog="53" />
+ <Patch name="Film Brass" hbank="63" lbank="2" prog="54" />
+ <Patch name="Polyphonic Line" hbank="63" lbank="2" prog="55" />
+ <Patch name="Dynamic E.Guitar" hbank="63" lbank="2" prog="56" />
+ <Patch name="Ravelian Pad" hbank="63" lbank="2" prog="57" />
+ <Patch name="Fat Syn Sync" hbank="63" lbank="2" prog="58" />
+ <Patch name="E.Bass Finger" hbank="63" lbank="2" prog="59" />
+ <Patch name="Feedback D.Gtr." hbank="63" lbank="2" prog="60" />
+ <Patch name="Cyclic X-Fades" hbank="63" lbank="2" prog="61" />
+ <Patch name="English Horn" hbank="63" lbank="2" prog="62" />
+ <Patch name="Gliding Squares" hbank="63" lbank="2" prog="63" />
+ <Patch name="Square Snaps" hbank="63" lbank="2" prog="64" />
+ <Patch name="90\s Piano" hbank="63" lbank="2" prog="65" />
+ <Patch name="Synchro Science" hbank="63" lbank="2" prog="66" />
+ <Patch name="HybridStrg/Choir" hbank="63" lbank="2" prog="67" />
+ <Patch name="Marc Tree" hbank="63" lbank="2" prog="68" />
+ <Patch name="Hard Velo Bass" hbank="63" lbank="2" prog="69" />
+ <Patch name="Cyber Choir" hbank="63" lbank="2" prog="70" />
+ <Patch name="Sine DWGS-Organ" hbank="63" lbank="2" prog="71" />
+ <Patch name="Digital Bells 2" hbank="63" lbank="2" prog="72" />
+ <Patch name="Harmonic Pad" hbank="63" lbank="2" prog="73" />
+ <Patch name="Digitized Raver" hbank="63" lbank="2" prog="74" />
+ <Patch name="Feedback MG Bass" hbank="63" lbank="2" prog="75" />
+ <Patch name="PedalSteelGuitar" hbank="63" lbank="2" prog="76" />
+ <Patch name="OXYGEN" hbank="63" lbank="2" prog="77" />
+ <Patch name="Hybrid Digi EP" hbank="63" lbank="2" prog="78" />
+ <Patch name="Video Blaster" hbank="63" lbank="2" prog="79" />
+ <Patch name="Pop Synth Pad" hbank="63" lbank="2" prog="80" />
+ <Patch name="White Pad EP" hbank="63" lbank="2" prog="81" />
+ <Patch name="Big Hit in India" hbank="63" lbank="2" prog="82" />
+ <Patch name="Jungle Rez Bass" hbank="63" lbank="2" prog="83" />
+ <Patch name="D\n\B Gate Kit" hbank="63" lbank="2" prog="84" />
+ <Patch name="The AirVox" hbank="63" lbank="2" prog="85" />
+ <Patch name="Tight Brass" hbank="63" lbank="2" prog="86" />
+ <Patch name="Thunderlog" hbank="63" lbank="2" prog="87" />
+ <Patch name="Bottle-Bell" hbank="63" lbank="2" prog="88" />
+ <Patch name="Smoothy Pad" hbank="63" lbank="2" prog="89" />
+ <Patch name="Synchro City" hbank="63" lbank="2" prog="90" />
+ <Patch name="Ramp Jungle Bass" hbank="63" lbank="2" prog="91" />
+ <Patch name="Old 12-String" hbank="63" lbank="2" prog="92" />
+ <Patch name="Flying Machines" hbank="63" lbank="2" prog="93" />
+ <Patch name="Fisa Cassotto" hbank="63" lbank="2" prog="94" />
+ <Patch name="Compu-shift" hbank="63" lbank="2" prog="95" />
+ <Patch name="S+H Reso Comp" hbank="63" lbank="2" prog="96" />
+ <Patch name="Pro-Dyno EP" hbank="63" lbank="2" prog="97" />
+ <Patch name="Motion Raver" hbank="63" lbank="2" prog="98" />
+ <Patch name="Octave Strings" hbank="63" lbank="2" prog="99" />
+ <Patch name="Percussion Kit" hbank="63" lbank="2" prog="100" />
+ <Patch name="Blaster Bass" hbank="63" lbank="2" prog="101" />
+ <Patch name="Band Passed" hbank="63" lbank="2" prog="102" />
+ <Patch name="M1 Organ" hbank="63" lbank="2" prog="103" />
+ <Patch name="GlassBell Bright" hbank="63" lbank="2" prog="104" />
+ <Patch name="Analog Pad" hbank="63" lbank="2" prog="105" />
+ <Patch name="Octo Lead" hbank="63" lbank="2" prog="106" />
+ <Patch name="Karma Sutra" hbank="63" lbank="2" prog="107" />
+ <Patch name="CleanMute-Guitar" hbank="63" lbank="2" prog="108" />
+ <Patch name="Stereo Rez Sweep" hbank="63" lbank="2" prog="109" />
+ <Patch name="Theatrical Pad" hbank="63" lbank="2" prog="110" />
+ <Patch name="Distant Lights" hbank="63" lbank="2" prog="111" />
+ <Patch name="Soft Synth Brass" hbank="63" lbank="2" prog="112" />
+ <Patch name="Sweeping EP" hbank="63" lbank="2" prog="113" />
+ <Patch name="Techno Stat" hbank="63" lbank="2" prog="114" />
+ <Patch name="Phatt Bass" hbank="63" lbank="2" prog="115" />
+ <Patch name="Wild Wasp" hbank="63" lbank="2" prog="116" />
+ <Patch name="Vocalscaping" hbank="63" lbank="2" prog="117" />
+ <Patch name="Big Band Plunger" hbank="63" lbank="2" prog="118" />
+ <Patch name="Filter Morpher" hbank="63" lbank="2" prog="119" />
+ <Patch name="Breathy Bells" hbank="63" lbank="2" prog="120" />
+ <Patch name="Cinema Pad" hbank="63" lbank="2" prog="121" />
+ <Patch name="Electro Lead" hbank="63" lbank="2" prog="122" />
+ <Patch name="30303 Mega Bass" hbank="63" lbank="2" prog="123" />
+ <Patch name="E.G. Harmonics" hbank="63" lbank="2" prog="124" />
+ <Patch name="Moon Talker" hbank="63" lbank="2" prog="125" />
+ <Patch name="TenorSax Brth.SW" hbank="63" lbank="2" prog="126" />
+ <Patch name="Wispy Dry Wind" hbank="63" lbank="2" prog="127" />
+ </PatchGroup>
+ <PatchGroup name="Programs Bank D">
+ <Patch name="Comp Trance Stab" hbank="63" lbank="3" prog="0" />
+ <Patch name="PianoMezzoDark" hbank="63" lbank="3" prog="1" />
+ <Patch name="Bounce Shot" hbank="63" lbank="3" prog="2" />
+ <Patch name="Legato Strings" hbank="63" lbank="3" prog="3" />
+ <Patch name="House Kit" hbank="63" lbank="3" prog="4" />
+ <Patch name="Bazooka Bass" hbank="63" lbank="3" prog="5" />
+ <Patch name="Brass Of Power" hbank="63" lbank="3" prog="6" />
+ <Patch name="Jazz Organ 2" hbank="63" lbank="3" prog="7" />
+ <Patch name="Mondo\Rimba" hbank="63" lbank="3" prog="8" />
+ <Patch name="Money Pad" hbank="63" lbank="3" prog="9" />
+ <Patch name="Square Wave Lead" hbank="63" lbank="3" prog="10" />
+ <Patch name="The Growler" hbank="63" lbank="3" prog="11" />
+ <Patch name="FingertipsGuitar" hbank="63" lbank="3" prog="12" />
+ <Patch name="Flashlight Pad" hbank="63" lbank="3" prog="13" />
+ <Patch name="Recorder" hbank="63" lbank="3" prog="14" />
+ <Patch name="One Note Stories" hbank="63" lbank="3" prog="15" />
+ <Patch name="Square Rez" hbank="63" lbank="3" prog="16" />
+ <Patch name="Vintage EP" hbank="63" lbank="3" prog="17" />
+ <Patch name="Brass Impact Hit" hbank="63" lbank="3" prog="18" />
+ <Patch name="The Pad" hbank="63" lbank="3" prog="19" />
+ <Patch name="Jazz/Brush Kits" hbank="63" lbank="3" prog="20" />
+ <Patch name="Ooh/Aah VoicesST" hbank="63" lbank="3" prog="21" />
+ <Patch name="Muted Trumpet" hbank="63" lbank="3" prog="22" />
+ <Patch name="Killer B" hbank="63" lbank="3" prog="23" />
+ <Patch name="Magical Bells" hbank="63" lbank="3" prog="24" />
+ <Patch name="{(Meditate})" hbank="63" lbank="3" prog="25" />
+ <Patch name="Trancer Lead" hbank="63" lbank="3" prog="26" />
+ <Patch name="Sweet Fretless" hbank="63" lbank="3" prog="27" />
+ <Patch name="Amp D.Guitar" hbank="63" lbank="3" prog="28" />
+ <Patch name="Rezzo Release" hbank="63" lbank="3" prog="29" />
+ <Patch name="BambuSilverFlute" hbank="63" lbank="3" prog="30" />
+ <Patch name="CyborgFactoryHit" hbank="63" lbank="3" prog="31" />
+ <Patch name="The ANAPIZZ" hbank="63" lbank="3" prog="32" />
+ <Patch name="R+B E.Piano" hbank="63" lbank="3" prog="33" />
+ <Patch name="Arp Twins" hbank="63" lbank="3" prog="34" />
+ <Patch name="Camera Strings" hbank="63" lbank="3" prog="35" />
+ <Patch name="Busy Sync" hbank="63" lbank="3" prog="36" />
+ <Patch name="30303 Square" hbank="63" lbank="3" prog="37" />
+ <Patch name="Trumpet Ens." hbank="63" lbank="3" prog="38" />
+ <Patch name="Dirty "B"" hbank="63" lbank="3" prog="39" />
+ <Patch name="Log Drum + Bells" hbank="63" lbank="3" prog="40" />
+ <Patch name="Freedom Pad" hbank="63" lbank="3" prog="41" />
+ <Patch name="Thin AnaLead" hbank="63" lbank="3" prog="42" />
+ <Patch name="E.Bass Pick 1" hbank="63" lbank="3" prog="43" />
+ <Patch name="Indian Stars" hbank="63" lbank="3" prog="44" />
+ <Patch name="OutOfTheClouds" hbank="63" lbank="3" prog="45" />
+ <Patch name="Barisax Growl SW" hbank="63" lbank="3" prog="46" />
+ <Patch name="Hemispheres" hbank="63" lbank="3" prog="47" />
+ <Patch name="Techno Phobic" hbank="63" lbank="3" prog="48" />
+ <Patch name="Clav Snap" hbank="63" lbank="3" prog="49" />
+ <Patch name="Old Record Hit" hbank="63" lbank="3" prog="50" />
+ <Patch name="Cyber Tom" hbank="63" lbank="3" prog="51" />
+ <Patch name="That Heaven Vibe" hbank="63" lbank="3" prog="52" />
+ <Patch name="Aaah Voices ST" hbank="63" lbank="3" prog="53" />
+ <Patch name="French Horn Sect" hbank="63" lbank="3" prog="54" />
+ <Patch name="Garage Organ" hbank="63" lbank="3" prog="55" />
+ <Patch name="Nu Strat" hbank="63" lbank="3" prog="56" />
+ <Patch name="Brass Pad" hbank="63" lbank="3" prog="57" />
+ <Patch name="Brian\s Sync" hbank="63" lbank="3" prog="58" />
+ <Patch name="SynBassRes" hbank="63" lbank="3" prog="59" />
+ <Patch name="Vox Wah Chicks" hbank="63" lbank="3" prog="60" />
+ <Patch name="Stereo WaveSweep" hbank="63" lbank="3" prog="61" />
+ <Patch name="Bassoon" hbank="63" lbank="3" prog="62" />
+ <Patch name="Flute Pad" hbank="63" lbank="3" prog="63" />
+ <Patch name="Syn Pizz" hbank="63" lbank="3" prog="64" />
+ <Patch name="ST Piano mp/f" hbank="63" lbank="3" prog="65" />
+ <Patch name="Arp Angeles" hbank="63" lbank="3" prog="66" />
+ <Patch name="Analog Velvet" hbank="63" lbank="3" prog="67" />
+ <Patch name="Clock It Out" hbank="63" lbank="3" prog="68" />
+ <Patch name="MG Pulse Bass" hbank="63" lbank="3" prog="69" />
+ <Patch name="Power Saw" hbank="63" lbank="3" prog="70" />
+ <Patch name="Formant Voices" hbank="63" lbank="3" prog="71" />
+ <Patch name="Vibraphone 1" hbank="63" lbank="3" prog="72" />
+ <Patch name="StereoStringsEXP" hbank="63" lbank="3" prog="73" />
+ <Patch name="Syn Pipes" hbank="63" lbank="3" prog="74" />
+ <Patch name="Digi Syn Bass" hbank="63" lbank="3" prog="75" />
+ <Patch name="PiezoMix Guitar" hbank="63" lbank="3" prog="76" />
+ <Patch name="Dolphin Ride" hbank="63" lbank="3" prog="77" />
+ <Patch name="Studio Stage EP" hbank="63" lbank="3" prog="78" />
+ <Patch name="Glass Vox" hbank="63" lbank="3" prog="79" />
+ <Patch name="Ana Brass/Lead" hbank="63" lbank="3" prog="80" />
+ <Patch name="Reson Piano" hbank="63" lbank="3" prog="81" />
+ <Patch name="Hit Me 2 Times!!" hbank="63" lbank="3" prog="82" />
+ <Patch name="Euro 8va Bass" hbank="63" lbank="3" prog="83" />
+ <Patch name="WAcKy HiPHop Kit" hbank="63" lbank="3" prog="84" />
+ <Patch name="Vocalesque" hbank="63" lbank="3" prog="85" />
+ <Patch name="Brass Expression" hbank="63" lbank="3" prog="86" />
+ <Patch name="Fire Wave" hbank="63" lbank="3" prog="87" />
+ <Patch name="Mallet Clocker" hbank="63" lbank="3" prog="88" />
+ <Patch name="Stereo Piano mf" hbank="63" lbank="3" prog="89" />
+ <Patch name="Sync Kronicity" hbank="63" lbank="3" prog="90" />
+ <Patch name="Poinker Bass" hbank="63" lbank="3" prog="91" />
+ <Patch name="AcousticGuitar 2" hbank="63" lbank="3" prog="92" />
+ <Patch name="Station Of Waves" hbank="63" lbank="3" prog="93" />
+ <Patch name="MixFisaMaster" hbank="63" lbank="3" prog="94" />
+ <Patch name="Frozen Glaciers" hbank="63" lbank="3" prog="95" />
+ <Patch name="AStabInTheDark" hbank="63" lbank="3" prog="96" />
+ <Patch name="Pro-Stage EP" hbank="63" lbank="3" prog="97" />
+ <Patch name="Wild Arp" hbank="63" lbank="3" prog="98" />
+ <Patch name="Stereo Strings" hbank="63" lbank="3" prog="99" />
+ <Patch name="Processed Kit" hbank="63" lbank="3" prog="100" />
+ <Patch name="Acid Dist Bass" hbank="63" lbank="3" prog="101" />
+ <Patch name="Few Bows Here" hbank="63" lbank="3" prog="102" />
+ <Patch name="Arctic Voices" hbank="63" lbank="3" prog="103" />
+ <Patch name="Classic E.Piano" hbank="63" lbank="3" prog="104" />
+ <Patch name="Mellow Movie Pad" hbank="63" lbank="3" prog="105" />
+ <Patch name="AMSFeedbackLead" hbank="63" lbank="3" prog="106" />
+ <Patch name="Classic F.Horn" hbank="63" lbank="3" prog="107" />
+ <Patch name="Indian Frets Gtr" hbank="63" lbank="3" prog="108" />
+ <Patch name="Virtual Traveler" hbank="63" lbank="3" prog="109" />
+ <Patch name="Flute" hbank="63" lbank="3" prog="110" />
+ <Patch name="Vanishing Planet" hbank="63" lbank="3" prog="111" />
+ <Patch name="Symphonic Bows" hbank="63" lbank="3" prog="112" />
+ <Patch name="Classic Piano" hbank="63" lbank="3" prog="113" />
+ <Patch name="Velo PowerStab" hbank="63" lbank="3" prog="114" />
+ <Patch name="Happy Vibe Lead" hbank="63" lbank="3" prog="115" />
+ <Patch name="Trumpet Section" hbank="63" lbank="3" prog="116" />
+ <Patch name="Dream Voices" hbank="63" lbank="3" prog="117" />
+ <Patch name="Octave Brass Exp" hbank="63" lbank="3" prog="118" />
+ <Patch name="Solo Violin" hbank="63" lbank="3" prog="119" />
+ <Patch name="Santur" hbank="63" lbank="3" prog="120" />
+ <Patch name="Full Vox Pad" hbank="63" lbank="3" prog="121" />
+ <Patch name="A leadload" hbank="63" lbank="3" prog="122" />
+ <Patch name="L/R Piano(Knob1)" hbank="63" lbank="3" prog="123" />
+ <Patch name="Spanish Guitar" hbank="63" lbank="3" prog="124" />
+ <Patch name="Motion Ocean !" hbank="63" lbank="3" prog="125" />
+ <Patch name="AltoSax1 GrowlSW" hbank="63" lbank="3" prog="126" />
+ <Patch name="Init.Program" hbank="63" lbank="3" prog="127" />
+ </PatchGroup>
+ <PatchGroup name="Programs Bank G">
+ <Patch name="Acoustic Piano" hbank="121" lbank="0" prog="0" />
+ <Patch name="Bright Piano" hbank="121" lbank="0" prog="1" />
+ <Patch name="El.Grand Piano" hbank="121" lbank="0" prog="2" />
+ <Patch name="Honkey-Tonk" hbank="1121" lbank="0" prog="3" />
+ <Patch name="Electric Piano 1" hbank="121" lbank="0" prog="4" />
+ <Patch name="Electric Piano 2" hbank="121" lbank="0" prog="5" />
+ <Patch name="Harpsichord" hbank="121" lbank="0" prog="6" />
+ <Patch name="Clavi." hbank="121" lbank="0" prog="7" />
+ <Patch name="Celesta" hbank="121" lbank="0" prog="8" />
+ <Patch name="Glockenspiel" hbank="121" lbank="0" prog="9" />
+ <Patch name="Music Box" hbank="121" lbank="0" prog="10" />
+ <Patch name="Vibraphone" hbank="121" lbank="0" prog="11" />
+ <Patch name="Marimba" hbank="121" lbank="0" prog="12" />
+ <Patch name="Xylophone" hbank="121" lbank="0" prog="13" />
+ <Patch name="Tubular Bells" hbank="121" lbank="0" prog="14" />
+ <Patch name="Santur" hbank="121" lbank="0" prog="15" />
+ <Patch name="Drawbar Organ 1" hbank="121" lbank="0" prog="16" />
+ <Patch name="PercussiveOrgan1" hbank="121" lbank="0" prog="17" />
+ <Patch name="Rock Organ" hbank="121" lbank="0" prog="18" />
+ <Patch name="Church Organ" hbank="121" lbank="0" prog="19" />
+ <Patch name="Reed Organ" hbank="121" lbank="0" prog="20" />
+ <Patch name="Accordion 1" hbank="121" lbank="0" prog="21" />
+ <Patch name="Harmonica" hbank="121" lbank="0" prog="22" />
+ <Patch name="Bandoneon" hbank="121" lbank="0" prog="23" />
+ <Patch name="Nylon Guitar 1" hbank="121" lbank="0" prog="24" />
+ <Patch name="Steel Guitar" hbank="121" lbank="0" prog="25" />
+ <Patch name="Jazz Guitar" hbank="121" lbank="0" prog="26" />
+ <Patch name="Clean Guitar" hbank="121" lbank="0" prog="27" />
+ <Patch name="Muted Guitar" hbank="121" lbank="0" prog="28" />
+ <Patch name="Overdrive Guitar" hbank="121" lbank="0" prog="29" />
+ <Patch name="DistortionGuitar" hbank="121" lbank="0" prog="30" />
+ <Patch name="Guitar Harmonics" hbank="121" lbank="0" prog="31" />
+ <Patch name="Acoustic Bass" hbank="121" lbank="0" prog="32" />
+ <Patch name="Fingered Bass" hbank="121" lbank="0" prog="33" />
+ <Patch name="Picked Bass" hbank="121" lbank="0" prog="34" />
+ <Patch name="Fretless Bass" hbank="121" lbank="0" prog="35" />
+ <Patch name="Slap Bass 1" hbank="121" lbank="0" prog="36" />
+ <Patch name="Slap Bass 2" hbank="121" lbank="0" prog="37" />
+ <Patch name="Synth Bass 1" hbank="121" lbank="0" prog="38" />
+ <Patch name="Synth Bass 2" hbank="121" lbank="0" prog="39" />
+ <Patch name="Violin" hbank="121" lbank="0" prog="40" />
+ <Patch name="Viola" hbank="121" lbank="0" prog="41" />
+ <Patch name="Cello" hbank="121" lbank="0" prog="42" />
+ <Patch name="Contrabass" hbank="121" lbank="0" prog="43" />
+ <Patch name="Tremolo Strings" hbank="121" lbank="0" prog="44" />
+ <Patch name="Pizzicato Str." hbank="121" lbank="0" prog="45" />
+ <Patch name="Orchestral Harp" hbank="121" lbank="0" prog="46" />
+ <Patch name="Timpani" hbank="121" lbank="0" prog="47" />
+ <Patch name="Strings" hbank="121" lbank="0" prog="48" />
+ <Patch name="Slow Strings" hbank="121" lbank="0" prog="49" />
+ <Patch name="Synth Strings 1" hbank="121" lbank="0" prog="50" />
+ <Patch name="Synth Strings 2" hbank="121" lbank="0" prog="51" />
+ <Patch name="Choir Aahs 1" hbank="121" lbank="0" prog="52" />
+ <Patch name="Voice Oohs" hbank="121" lbank="0" prog="53" />
+ <Patch name="Synth Vox" hbank="121" lbank="0" prog="54" />
+ <Patch name="Orchestra Hit" hbank="121" lbank="0" prog="55" />
+ <Patch name="Trumpet" hbank="121" lbank="0" prog="56" />
+ <Patch name="Trombone 1" hbank="121" lbank="0" prog="57" />
+ <Patch name="Tuba" hbank="121" lbank="0" prog="58" />
+ <Patch name="Muted Trumpet 1" hbank="121" lbank="0" prog="59" />
+ <Patch name="French Horn" hbank="121" lbank="0" prog="60" />
+ <Patch name="Brass Section 1" hbank="121" lbank="0" prog="61" />
+ <Patch name="Synth Brass 1" hbank="121" lbank="0" prog="62" />
+ <Patch name="Synth Brass 2" hbank="121" lbank="0" prog="63" />
+ <Patch name="Soprano Sax" hbank="121" lbank="0" prog="64" />
+ <Patch name="Alto Sax" hbank="121" lbank="0" prog="65" />
+ <Patch name="Tenor Sax" hbank="121" lbank="0" prog="66" />
+ <Patch name="Baritone Sax" hbank="121" lbank="0" prog="67" />
+ <Patch name="Oboe" hbank="121" lbank="0" prog="68" />
+ <Patch name="English Horn" hbank="121" lbank="0" prog="69" />
+ <Patch name="Bassoon" hbank="121" lbank="0" prog="70" />
+ <Patch name="Clarinet" hbank="121" lbank="0" prog="71" />
+ <Patch name="Piccolo" hbank="121" lbank="0" prog="72" />
+ <Patch name="Flute" hbank="121" lbank="0" prog="73" />
+ <Patch name="Recorder" hbank="121" lbank="0" prog="74" />
+ <Patch name="Pan Flute" hbank="121" lbank="0" prog="75" />
+ <Patch name="Blown Bottle" hbank="121" lbank="0" prog="76" />
+ <Patch name="Shakuhachi" hbank="121" lbank="0" prog="77" />
+ <Patch name="Whistle" hbank="121" lbank="0" prog="78" />
+ <Patch name="Ocarina" hbank="121" lbank="0" prog="79" />
+ <Patch name="Detuned Square" hbank="121" lbank="0" prog="80" />
+ <Patch name="Detuned Sawtooth" hbank="121" lbank="0" prog="81" />
+ <Patch name="Synth Calliope" hbank="121" lbank="0" prog="82" />
+ <Patch name="Chiff Lead" hbank="121" lbank="0" prog="83" />
+ <Patch name="Charang" hbank="121" lbank="0" prog="84" />
+ <Patch name="Air Voice" hbank="121" lbank="0" prog="85" />
+ <Patch name="5th Sawtooth" hbank="121" lbank="0" prog="86" />
+ <Patch name="Bass + Lead" hbank="121" lbank="0" prog="87" />
+ <Patch name="Fantasia" hbank="121" lbank="0" prog="88" />
+ <Patch name="Warm Pad" hbank="121" lbank="0" prog="89" />
+ <Patch name="Polyphonic Synth" hbank="121" lbank="0" prog="90" />
+ <Patch name="Space Voice" hbank="121" lbank="0" prog="91" />
+ <Patch name="Bowed Glass" hbank="121" lbank="0" prog="92" />
+ <Patch name="Metallic Pad" hbank="121" lbank="0" prog="93" />
+ <Patch name="Halo Pad" hbank="121" lbank="0" prog="94" />
+ <Patch name="Sweep Pad" hbank="121" lbank="0" prog="95" />
+ <Patch name="Ice Rain" hbank="121" lbank="0" prog="96" />
+ <Patch name="Sound Track" hbank="121" lbank="0" prog="97" />
+ <Patch name="Crystal" hbank="121" lbank="0" prog="98" />
+ <Patch name="Atmosphere" hbank="121" lbank="0" prog="99" />
+ <Patch name="Brightness" hbank="121" lbank="0" prog="100" />
+ <Patch name="Goblins" hbank="121" lbank="0" prog="101" />
+ <Patch name="Echo Drops" hbank="121" lbank="0" prog="102" />
+ <Patch name="Star Theme" hbank="121" lbank="0" prog="103" />
+ <Patch name="Sitar 1" hbank="121" lbank="0" prog="104" />
+ <Patch name="Banjo" hbank="121" lbank="0" prog="105" />
+ <Patch name="Shamisen" hbank="121" lbank="0" prog="106" />
+ <Patch name="Koto" hbank="121" lbank="0" prog="107" />
+ <Patch name="Kalimba" hbank="121" lbank="0" prog="108" />
+ <Patch name="Bagpipe" hbank="121" lbank="0" prog="109" />
+ <Patch name="Fiddle" hbank="121" lbank="0" prog="110" />
+ <Patch name="Shanai" hbank="121" lbank="0" prog="111" />
+ <Patch name="Tinkle Bell" hbank="121" lbank="0" prog="112" />
+ <Patch name="Agogo" hbank="121" lbank="0" prog="113" />
+ <Patch name="Steel Drums" hbank="121" lbank="0" prog="114" />
+ <Patch name="Woodblock" hbank="121" lbank="0" prog="115" />
+ <Patch name="Taiko" hbank="121" lbank="0" prog="116" />
+ <Patch name="Melodic Tom 1" hbank="121" lbank="0" prog="117" />
+ <Patch name="Synth Drum" hbank="121" lbank="0" prog="118" />
+ <Patch name="Reverse Cymbal" hbank="121" lbank="0" prog="119" />
+ <Patch name="Gtr.Fret Noise" hbank="121" lbank="0" prog="120" />
+ <Patch name="Breath Noise" hbank="121" lbank="0" prog="121" />
+ <Patch name="Seashore" hbank="121" lbank="0" prog="122" />
+ <Patch name="Bird Tweet 1" hbank="121" lbank="0" prog="123" />
+ <Patch name="Telephone Ring 1" hbank="121" lbank="0" prog="124" />
+ <Patch name="Helicopter" hbank="121" lbank="0" prog="125" />
+ <Patch name="Applause" hbank="121" lbank="0" prog="126" />
+ <Patch name="Gun Shot" hbank="121" lbank="0" prog="127" />
+ </PatchGroup>
+ <PatchGroup name="Programs Bank Drums">
+ <Patch name="STANDARD Kit" hbank="120" lbank="0" prog="0" />
+ <Patch name="ROOM Kit" hbank="120" lbank="0" prog="9" />
+ <Patch name="POWER Kit" hbank="120" lbank="0" prog="17" />
+ <Patch name="ELECTRONIC Kit" hbank="120" lbank="0" prog="24" />
+ <Patch name="ANALOG Kit" hbank="120" lbank="0" prog="25" />
+ <Patch name="JAZZ Kit" hbank="120" lbank="0" prog="33" />
+ <Patch name="BRUSH Kit" hbank="120" lbank="0" prog="41" />
+ <Patch name="ORCHESTRA Kit" hbank="120" lbank="0" prog="49" />
+ <Patch name="SFX Kit" hbank="120" lbank="0" prog="57" />
+ </PatchGroup>
+ <Controller name="Modulation_Wheel" l="1" />
+ <Controller name="Joystick_-Y" l="2" />
+ <Controller name="Pedal" l="4" />
+ <Controller name="Portamento_Time" l="5" />
+ <Controller name="Volume" l="7" init="100" />
+ <Controller name="IFX_Pan" l="8" min="-64" max="63" init="0" />
+ <Controller name="Pan" l="10" min="-64" max="63" init="0" />
+ <Controller name="Expression" l="11" init="127" />
+ <Controller name="Effect_Control 1" l="12" />
+ <Controller name="Effect_Control 2" l="13" />
+ <Controller name="Damper" l="64" />
+ <Controller name="Portamento_Sw" l="65" />
+ <Controller name="Sostenuto" l="66" />
+ <Controller name="Soft" l="67" />
+ <Controller name="Sound_Realtime_Controls_B1" l="70" />
+ <Controller name="Resonance_HPF" l="71" />
+ <Controller name="EG_Release" l="72" />
+ <Controller name="Sound_Realtime_Controls_B2" l="73" />
+ <Controller name="LPF_Cutoff" l="74" />
+ <Controller name="Sound_Realtime_Controls_B3" l="75" />
+ <Controller name="Sound_Realtime_Controls_B4" l="76" />
+ <Controller name="Sound_Realtime_Controls_C1" l="77" />
+ <Controller name="Sound_Realtime_Controls_C2" l="78" />
+ <Controller name="EG_Intensity" l="79" />
+ <Controller name="Switch_1" l="80" />
+ <Controller name="Switch_2" l="81" />
+ <Controller name="Foot_Switch" l="82" />
+ <Controller name="Controller" l="83" />
+ <Controller name="Send_2" l="91" />
+ <Controller name="IFX_On_Off" l="92" />
+ <Controller name="Send_1" l="93" />
+ <Controller name="MFX1_On_Off" l="94" />
+ <Controller name="MFX2_On_Off" l="95" />
+ <Controller name="All_Sound_Off" l="120" />
+ <Controller name="Reset_All_Controllers" l="121" />
+ </MidiInstrument>
+</muse>
diff --git a/muse2/share/instruments/Korg-X5DR-PresetA.idf b/muse2/share/instruments/Korg-X5DR-PresetA.idf
new file mode 100644
index 00000000..5181ab09
--- /dev/null
+++ b/muse2/share/instruments/Korg-X5DR-PresetA.idf
@@ -0,0 +1,368 @@
+<?xml version="1.0"?>
+<muse version="1.0">
+ <MidiInstrument name="Korg X5DR Preset A">
+ <PatchGroup name="Bank C Combinations">
+ <Patch name="SolarFlare" hbank="127" lbank="0" prog="0" />
+ <Patch name="StereoKeys" hbank="127" lbank="0" prog="1" />
+ <Patch name="X Strings" hbank="127" lbank="0" prog="2" />
+ <Patch name="Analog King" hbank="127" lbank="0" prog="3" />
+ <Patch name="CrankItUp!" hbank="127" lbank="0" prog="4" />
+ <Patch name="HeadHunter" hbank="127" lbank="0" prog="5" />
+ <Patch name="Rock Organ" hbank="127" lbank="0" prog="6" />
+ <Patch name="X Brass" hbank="127" lbank="0" prog="7" />
+ <Patch name="TheSingers" hbank="127" lbank="0" prog="8" />
+ <Patch name="Wild Drums" hbank="127" lbank="0" prog="9" />
+ <Patch name="-The West-" hbank="127" lbank="0" prog="10" />
+ <Patch name="Super EP" hbank="127" lbank="0" prog="11" />
+ <Patch name="Wind--Orch" hbank="127" lbank="0" prog="12" />
+ <Patch name="Maxi Stab" hbank="127" lbank="0" prog="13" />
+ <Patch name="12 String" hbank="127" lbank="0" prog="14" />
+ <Patch name="-The East-" hbank="127" lbank="0" prog="15" />
+ <Patch name="ChorusClav" hbank="127" lbank="0" prog="16" />
+ <Patch name="Bass/Horn" hbank="127" lbank="0" prog="17" />
+ <Patch name="Ice Bells" hbank="127" lbank="0" prog="18" />
+ <Patch name="Wild Split" hbank="127" lbank="0" prog="19" />
+ <Patch name="Warriors" hbank="127" lbank="0" prog="20" />
+ <Patch name="Fat Pianos" hbank="127" lbank="0" prog="21" />
+ <Patch name="Sonata" hbank="127" lbank="0" prog="22" />
+ <Patch name="LayerSynth" hbank="127" lbank="0" prog="23" />
+ <Patch name="WaveGuitar" hbank="127" lbank="0" prog="24" />
+ <Patch name="EthnicOrch" hbank="127" lbank="0" prog="25" />
+ <Patch name="Cathedral" hbank="127" lbank="0" prog="26" />
+ <Patch name="BrassSwell" hbank="127" lbank="0" prog="27" />
+ <Patch name="Java Bells" hbank="127" lbank="0" prog="28" />
+ <Patch name="PhantomSax" hbank="127" lbank="0" prog="29" />
+ <Patch name="AncientSun" hbank="127" lbank="0" prog="30" />
+ <Patch name="Velo Roads" hbank="127" lbank="0" prog="31" />
+ <Patch name="Symphony" hbank="127" lbank="0" prog="32" />
+ <Patch name="NeuroFunk" hbank="127" lbank="0" prog="33" />
+ <Patch name="Slappin\" hbank="127" lbank="0" prog="34" />
+ <Patch name="EastAfrica" hbank="127" lbank="0" prog="35" />
+ <Patch name="Ultra Perc" hbank="127" lbank="0" prog="36" />
+ <Patch name="TheSaxMen" hbank="127" lbank="0" prog="37" />
+ <Patch name="LunarBells" hbank="127" lbank="0" prog="38" />
+ <Patch name="---Hell---" hbank="127" lbank="0" prog="39" />
+ <Patch name="--Heaven--" hbank="127" lbank="0" prog="40" />
+ <Patch name="Rock Piano" hbank="127" lbank="0" prog="41" />
+ <Patch name="ChamberOrc" hbank="127" lbank="0" prog="42" />
+ <Patch name="Multi Rez" hbank="127" lbank="0" prog="43" />
+ <Patch name="Chorus Gtr" hbank="127" lbank="0" prog="44" />
+ <Patch name="Zen Garden" hbank="127" lbank="0" prog="45" />
+ <Patch name="Accordion" hbank="127" lbank="0" prog="46" />
+ <Patch name="MutedHorns" hbank="127" lbank="0" prog="47" />
+ <Patch name="PizzoSynth" hbank="127" lbank="0" prog="48" />
+ <Patch name="Rap ToolKit" hbank="127" lbank="0" prog="49" />
+ <Patch name="Megatron" hbank="127" lbank="0" prog="50" />
+ <Patch name="Bs/EP+Str" hbank="127" lbank="0" prog="51" />
+ <Patch name="Fanfare" hbank="127" lbank="0" prog="52" />
+ <Patch name="Big Swell" hbank="127" lbank="0" prog="53" />
+ <Patch name="StickSplit" hbank="127" lbank="0" prog="54" />
+ <Patch name="Indian Jam" hbank="127" lbank="0" prog="55" />
+ <Patch name="Harpsicord" hbank="127" lbank="0" prog="56" />
+ <Patch name="Bass/Brass" hbank="127" lbank="0" prog="57" />
+ <Patch name="Moon Stone" hbank="127" lbank="0" prog="58" />
+ <Patch name="Torquemada" hbank="127" lbank="0" prog="59" />
+ <Patch name="Crossfades" hbank="127" lbank="0" prog="60" />
+ <Patch name="SuperKeys" hbank="127" lbank="0" prog="61" />
+ <Patch name="WoodWinds" hbank="127" lbank="0" prog="62" />
+ <Patch name="OctaveLead" hbank="127" lbank="0" prog="63" />
+ <Patch name="Malaguena" hbank="127" lbank="0" prog="64" />
+ <Patch name="RhythmPipe" hbank="127" lbank="0" prog="65" />
+ <Patch name="FullManual" hbank="127" lbank="0" prog="66" />
+ <Patch name="Bows/Trpt" hbank="127" lbank="0" prog="67" />
+ <Patch name="Airiana" hbank="127" lbank="0" prog="68" />
+ <Patch name="SpaceZones" hbank="127" lbank="0" prog="69" />
+ <Patch name="New Worlds" hbank="127" lbank="0" prog="70" />
+ <Patch name="Digi Piano" hbank="127" lbank="0" prog="71" />
+ <Patch name="FullString" hbank="127" lbank="0" prog="72" />
+ <Patch name="Rezzo Funk" hbank="127" lbank="0" prog="73" />
+ <Patch name="Guitar Man" hbank="127" lbank="0" prog="74" />
+ <Patch name="Warm Koto" hbank="127" lbank="0" prog="75" />
+ <Patch name="Rock Show!" hbank="127" lbank="0" prog="76" />
+ <Patch name="Big Band" hbank="127" lbank="0" prog="77" />
+ <Patch name="Vox Bells" hbank="127" lbank="0" prog="78" />
+ <Patch name="MenAtWork" hbank="127" lbank="0" prog="79" />
+ <Patch name="Galaxia" hbank="127" lbank="0" prog="80" />
+ <Patch name="Bass/Piano" hbank="127" lbank="0" prog="81" />
+ <Patch name="Str/Oboe" hbank="127" lbank="0" prog="82" />
+ <Patch name="RezzoSplit" hbank="127" lbank="0" prog="83" />
+ <Patch name="TheOldWest" hbank="127" lbank="0" prog="84" />
+ <Patch name="Lost Tribe" hbank="127" lbank="0" prog="85" />
+ <Patch name="DualManual" hbank="127" lbank="0" prog="86" />
+ <Patch name="Trpt+Bones" hbank="127" lbank="0" prog="87" />
+ <Patch name="Bellendra" hbank="127" lbank="0" prog="88" />
+ <Patch name="Star Lense" hbank="127" lbank="0" prog="89" />
+ <Patch name="The Abyss" hbank="127" lbank="0" prog="90" />
+ <Patch name="Piano+Str" hbank="127" lbank="0" prog="91" />
+ <Patch name="ChamberStr" hbank="127" lbank="0" prog="92" />
+ <Patch name="Hard Sync" hbank="127" lbank="0" prog="93" />
+ <Patch name="Gtr/Flute" hbank="127" lbank="0" prog="94" />
+ <Patch name="RainForest" hbank="127" lbank="0" prog="95" />
+ <Patch name="PipeOrgan" hbank="127" lbank="0" prog="96" />
+ <Patch name="Hot Salsa" hbank="127" lbank="0" prog="97" />
+ <Patch name="Prisms" hbank="127" lbank="0" prog="98" />
+ <Patch name="TheDentist" hbank="127" lbank="0" prog="99" />
+ </PatchGroup>
+ <PatchGroup name="Bank A Programs">
+ <Patch name="PipeDreams" hbank="0" lbank="0" prog="0" />
+ <Patch name="X Piano" hbank="0" lbank="0" prog="1" />
+ <Patch name="BigStrings" hbank="0" lbank="0" prog="2" />
+ <Patch name="Asian Jung" hbank="0" lbank="0" prog="3" />
+ <Patch name="Rock On!!!" hbank="0" lbank="0" prog="4" />
+ <Patch name="GlockBells" hbank="0" lbank="0" prog="5" />
+ <Patch name="FatRezBass" hbank="0" lbank="0" prog="6" />
+ <Patch name="BreathyVox" hbank="0" lbank="0" prog="7" />
+ <Patch name="Xanalog" hbank="0" lbank="0" prog="8" />
+ <Patch name="[KrazyKit]" hbank="0" lbank="0" prog="9" />
+ <Patch name="Transforms" hbank="0" lbank="0" prog="10" />
+ <Patch name="Killer B" hbank="0" lbank="0" prog="11" />
+ <Patch name="Pop Brass" hbank="0" lbank="0" prog="12" />
+ <Patch name="Harp Gliss" hbank="0" lbank="0" prog="13" />
+ <Patch name="BriteSteel" hbank="0" lbank="0" prog="14" />
+ <Patch name="PingMallet" hbank="0" lbank="0" prog="15" />
+ <Patch name="Upright" hbank="0" lbank="0" prog="16" />
+ <Patch name="Velo Flute" hbank="0" lbank="0" prog="17" />
+ <Patch name="LA Synth" hbank="0" lbank="0" prog="18" />
+ <Patch name="[ComboKit]" hbank="0" lbank="0" prog="19" />
+ <Patch name="Wave Sweep" hbank="0" lbank="0" prog="20" />
+ <Patch name="FunkyRoads" hbank="0" lbank="0" prog="21" />
+ <Patch name="AnaStrings" hbank="0" lbank="0" prog="22" />
+ <Patch name="Euro Pipe" hbank="0" lbank="0" prog="23" />
+ <Patch name="Stratified" hbank="0" lbank="0" prog="24" />
+ <Patch name="CrystalIce" hbank="0" lbank="0" prog="25" />
+ <Patch name="Dance Bass" hbank="0" lbank="0" prog="26" />
+ <Patch name="Ghost Vox" hbank="0" lbank="0" prog="27" />
+ <Patch name="FatFilterz" hbank="0" lbank="0" prog="28" />
+ <Patch name="[Down Low]" hbank="0" lbank="0" prog="29" />
+ <Patch name="Sputnik" hbank="0" lbank="0" prog="30" />
+ <Patch name="Super Perc" hbank="0" lbank="0" prog="31" />
+ <Patch name="BrassSwell" hbank="0" lbank="0" prog="32" />
+ <Patch name="Lore" hbank="0" lbank="0" prog="33" />
+ <Patch name="Follow Me" hbank="0" lbank="0" prog="34" />
+ <Patch name="Logs+Bells" hbank="0" lbank="0" prog="35" />
+ <Patch name="90\s Bass" hbank="0" lbank="0" prog="36" />
+ <Patch name="FreshWaves" hbank="0" lbank="0" prog="37" />
+ <Patch name="MIDI Grand" hbank="0" lbank="0" prog="38" />
+ <Patch name="[Mr. Gong]" hbank="0" lbank="0" prog="39" />
+ <Patch name="LandingPad" hbank="0" lbank="0" prog="40" />
+ <Patch name="M1 Piano" hbank="0" lbank="0" prog="41" />
+ <Patch name="DynoString" hbank="0" lbank="0" prog="42" />
+ <Patch name="Tamboura" hbank="0" lbank="0" prog="43" />
+ <Patch name="Chruncher" hbank="0" lbank="0" prog="44" />
+ <Patch name="Star Fire" hbank="0" lbank="0" prog="45" />
+ <Patch name="SynthBass3" hbank="0" lbank="0" prog="46" />
+ <Patch name="Woodwinds" hbank="0" lbank="0" prog="47" />
+ <Patch name="Reso Waves" hbank="0" lbank="0" prog="48" />
+ <Patch name="[Manimals]" hbank="0" lbank="0" prog="49" />
+ <Patch name="Vortex" hbank="0" lbank="0" prog="50" />
+ <Patch name="ClickOrgan" hbank="0" lbank="0" prog="51" />
+ <Patch name="StereoHorn" hbank="0" lbank="0" prog="52" />
+ <Patch name="MalletLoop" hbank="0" lbank="0" prog="53" />
+ <Patch name="Flamenco" hbank="0" lbank="0" prog="54" />
+ <Patch name="MetalGhost" hbank="0" lbank="0" prog="55" />
+ <Patch name="Velo Pick" hbank="0" lbank="0" prog="56" />
+ <Patch name="ooooooooze" hbank="0" lbank="0" prog="57" />
+ <Patch name="Dr. Tapp" hbank="0" lbank="0" prog="58" />
+ <Patch name="[Loop SFX]" hbank="0" lbank="0" prog="59" />
+ <Patch name="TimeClocks" hbank="0" lbank="0" prog="60" />
+ <Patch name="Classic EP" hbank="0" lbank="0" prog="61" />
+ <Patch name="Cello Ens." hbank="0" lbank="0" prog="62" />
+ <Patch name="Godfather" hbank="0" lbank="0" prog="63" />
+ <Patch name="Funk Guitr" hbank="0" lbank="0" prog="64" />
+ <Patch name="RealGamlon" hbank="0" lbank="0" prog="65" />
+ <Patch name="ChromeBass" hbank="0" lbank="0" prog="66" />
+ <Patch name="Real Shaku" hbank="0" lbank="0" prog="67" />
+ <Patch name="Split Sync" hbank="0" lbank="0" prog="68" />
+ <Patch name="[ Nature ]" hbank="0" lbank="0" prog="69" />
+ <Patch name="SynTronic" hbank="0" lbank="0" prog="70" />
+ <Patch name="Super BX-3" hbank="0" lbank="0" prog="71" />
+ <Patch name="Trump Ens." hbank="0" lbank="0" prog="72" />
+ <Patch name="Jaw Harp" hbank="0" lbank="0" prog="73" />
+ <Patch name="Rock Chuga" hbank="0" lbank="0" prog="74" />
+ <Patch name="TheIceMan" hbank="0" lbank="0" prog="75" />
+ <Patch name="Velo Slap" hbank="0" lbank="0" prog="76" />
+ <Patch name="Flutter" hbank="0" lbank="0" prog="77" />
+ <Patch name="Swell Pad" hbank="0" lbank="0" prog="78" />
+ <Patch name="[Natives!]" hbank="0" lbank="0" prog="79" />
+ <Patch name="Quarks" hbank="0" lbank="0" prog="80" />
+ <Patch name="Dyno Tines" hbank="0" lbank="0" prog="81" />
+ <Patch name="VeloFlugel" hbank="0" lbank="0" prog="82" />
+ <Patch name="Polka Box" hbank="0" lbank="0" prog="83" />
+ <Patch name="FeedbackGt" hbank="0" lbank="0" prog="84" />
+ <Patch name="Swiss Box" hbank="0" lbank="0" prog="85" />
+ <Patch name="Big Mini" hbank="0" lbank="0" prog="86" />
+ <Patch name="Arabesque" hbank="0" lbank="0" prog="87" />
+ <Patch name="Syn Brass" hbank="0" lbank="0" prog="88" />
+ <Patch name="[DrillMe!]" hbank="0" lbank="0" prog="89" />
+ <Patch name="Universe X" hbank="0" lbank="0" prog="90" />
+ <Patch name="Big Organ" hbank="0" lbank="0" prog="91" />
+ <Patch name="EthnoVioln" hbank="0" lbank="0" prog="92" />
+ <Patch name="Real Sitar" hbank="0" lbank="0" prog="93" />
+ <Patch name="Greek Gtr." hbank="0" lbank="0" prog="94" />
+ <Patch name="Midi Bells" hbank="0" lbank="0" prog="95" />
+ <Patch name="Stick Bass" hbank="0" lbank="0" prog="96" />
+ <Patch name="SopranoVox" hbank="0" lbank="0" prog="97" />
+ <Patch name="Solo Synth" hbank="0" lbank="0" prog="98" />
+ <Patch name="[Jet Star]" hbank="0" lbank="0" prog="99" />
+ </PatchGroup>
+ <PatchGroup name="Bank G General Midi">
+ <Patch name="Piano" hbank="61" lbank="0" prog="0" />
+ <Patch name="BritePiano" hbank="61" lbank="0" prog="1" />
+ <Patch name="HammerPno" hbank="61" lbank="0" prog="2" />
+ <Patch name="HonkeyTonk" hbank="61" lbank="0" prog="3" />
+ <Patch name="New Tines" hbank="61" lbank="0" prog="4" />
+ <Patch name="Digi Piano" hbank="61" lbank="0" prog="5" />
+ <Patch name="Harpsicord" hbank="61" lbank="0" prog="6" />
+ <Patch name="Clav" hbank="61" lbank="0" prog="7" />
+ <Patch name="Celesta" hbank="61" lbank="0" prog="8" />
+ <Patch name="Glocken" hbank="61" lbank="0" prog="9" />
+ <Patch name="Music Box" hbank="61" lbank="0" prog="10" />
+ <Patch name="Vibes" hbank="61" lbank="0" prog="11" />
+ <Patch name="Marimba" hbank="61" lbank="0" prog="12" />
+ <Patch name="Xylophon" hbank="61" lbank="0" prog="13" />
+ <Patch name="Tubular" hbank="61" lbank="0" prog="14" />
+ <Patch name="Santur" hbank="61" lbank="0" prog="15" />
+ <Patch name="Full Organ" hbank="61" lbank="0" prog="16" />
+ <Patch name="Perc Organ" hbank="61" lbank="0" prog="17" />
+ <Patch name="BX-3 Organ" hbank="61" lbank="0" prog="18" />
+ <Patch name="ChurchPipe" hbank="61" lbank="0" prog="19" />
+ <Patch name="Positive" hbank="61" lbank="0" prog="20" />
+ <Patch name="Musette" hbank="61" lbank="0" prog="21" />
+ <Patch name="Harmonica" hbank="61" lbank="0" prog="22" />
+ <Patch name="Tango" hbank="61" lbank="0" prog="23" />
+ <Patch name="ClassicGtr" hbank="61" lbank="0" prog="24" />
+ <Patch name="A.Guitar" hbank="61" lbank="0" prog="25" />
+ <Patch name="JazzGuitar" hbank="61" lbank="0" prog="26" />
+ <Patch name="Clean Gtr" hbank="61" lbank="0" prog="27" />
+ <Patch name="MuteGuitar" hbank="61" lbank="0" prog="28" />
+ <Patch name="Over Drive" hbank="61" lbank="0" prog="29" />
+ <Patch name="DistGuitar" hbank="61" lbank="0" prog="30" />
+ <Patch name="RockMonics" hbank="61" lbank="0" prog="31" />
+ <Patch name="Jazz Bass" hbank="61" lbank="0" prog="32" />
+ <Patch name="Deep Bass" hbank="61" lbank="0" prog="33" />
+ <Patch name="Pick Bass" hbank="61" lbank="0" prog="34" />
+ <Patch name="Fretless" hbank="61" lbank="0" prog="35" />
+ <Patch name="SlapBass 1" hbank="61" lbank="0" prog="36" />
+ <Patch name="SlapBass 2" hbank="61" lbank="0" prog="37" />
+ <Patch name="SynthBass1" hbank="61" lbank="0" prog="38" />
+ <Patch name="SynthBass2" hbank="61" lbank="0" prog="39" />
+ <Patch name="Violin" hbank="61" lbank="0" prog="40" />
+ <Patch name="Viola" hbank="61" lbank="0" prog="41" />
+ <Patch name="Cello" hbank="61" lbank="0" prog="42" />
+ <Patch name="ContraBass" hbank="61" lbank="0" prog="43" />
+ <Patch name="TremoloStr" hbank="61" lbank="0" prog="44" />
+ <Patch name="Pizzicato" hbank="61" lbank="0" prog="45" />
+ <Patch name="Harp" hbank="61" lbank="0" prog="46" />
+ <Patch name="Timpani" hbank="61" lbank="0" prog="47" />
+ <Patch name="Marcato" hbank="61" lbank="0" prog="48" />
+ <Patch name="SlowString" hbank="61" lbank="0" prog="49" />
+ <Patch name="Analog Pad" hbank="61" lbank="0" prog="50" />
+ <Patch name="String Pad" hbank="61" lbank="0" prog="51" />
+ <Patch name="Choir" hbank="61" lbank="0" prog="52" />
+ <Patch name="Doo Voice" hbank="61" lbank="0" prog="53" />
+ <Patch name="Voices" hbank="61" lbank="0" prog="54" />
+ <Patch name="Orch Hit" hbank="61" lbank="0" prog="55" />
+ <Patch name="Trumpet" hbank="61" lbank="0" prog="56" />
+ <Patch name="Trombone" hbank="61" lbank="0" prog="57" />
+ <Patch name="Tuba" hbank="61" lbank="0" prog="58" />
+ <Patch name="Muted Trpt" hbank="61" lbank="0" prog="59" />
+ <Patch name="FrenchHorn" hbank="61" lbank="0" prog="60" />
+ <Patch name="Brass" hbank="61" lbank="0" prog="61" />
+ <Patch name="SynBrass 1" hbank="61" lbank="0" prog="62" />
+ <Patch name="SynBrass 2" hbank="61" lbank="0" prog="63" />
+ <Patch name="SopranoSax" hbank="61" lbank="0" prog="64" />
+ <Patch name="Alto Sax" hbank="61" lbank="0" prog="65" />
+ <Patch name="Tenor Sax" hbank="61" lbank="0" prog="66" />
+ <Patch name="Bari Sax" hbank="61" lbank="0" prog="67" />
+ <Patch name="Sweet Oboe" hbank="61" lbank="0" prog="68" />
+ <Patch name="EnglishHrn" hbank="61" lbank="0" prog="69" />
+ <Patch name="BasoonOboe" hbank="61" lbank="0" prog="70" />
+ <Patch name="Clarinet" hbank="61" lbank="0" prog="71" />
+ <Patch name="Piccolo" hbank="61" lbank="0" prog="72" />
+ <Patch name="Flute" hbank="61" lbank="0" prog="73" />
+ <Patch name="Recorder" hbank="61" lbank="0" prog="74" />
+ <Patch name="Pan Flute" hbank="61" lbank="0" prog="75" />
+ <Patch name="Bottle" hbank="61" lbank="0" prog="76" />
+ <Patch name="Shakuhachi" hbank="61" lbank="0" prog="77" />
+ <Patch name="Whistle" hbank="61" lbank="0" prog="78" />
+ <Patch name="Ocarina" hbank="61" lbank="0" prog="79" />
+ <Patch name="SquareWave" hbank="61" lbank="0" prog="80" />
+ <Patch name="Saw Wave" hbank="61" lbank="0" prog="81" />
+ <Patch name="SynCaliope" hbank="61" lbank="0" prog="82" />
+ <Patch name="Syn Chiff" hbank="61" lbank="0" prog="83" />
+ <Patch name="Charang" hbank="61" lbank="0" prog="84" />
+ <Patch name="AirChorus" hbank="61" lbank="0" prog="85" />
+ <Patch name="Rezzo4ths" hbank="61" lbank="0" prog="86" />
+ <Patch name="Bass+Lead" hbank="61" lbank="0" prog="87" />
+ <Patch name="Fantasia" hbank="61" lbank="0" prog="88" />
+ <Patch name="Warm Pad" hbank="61" lbank="0" prog="89" />
+ <Patch name="Poly Pad" hbank="61" lbank="0" prog="90" />
+ <Patch name="Ghost Pad" hbank="61" lbank="0" prog="91" />
+ <Patch name="BowedGlass" hbank="61" lbank="0" prog="92" />
+ <Patch name="Metal Pad" hbank="61" lbank="0" prog="93" />
+ <Patch name="Halo Pad" hbank="61" lbank="0" prog="94" />
+ <Patch name="Sweep" hbank="61" lbank="0" prog="95" />
+ <Patch name="Ice Rain" hbank="61" lbank="0" prog="96" />
+ <Patch name="SoundTrack" hbank="61" lbank="0" prog="97" />
+ <Patch name="Crystal" hbank="61" lbank="0" prog="98" />
+ <Patch name="Atmosphere" hbank="61" lbank="0" prog="99" />
+ <Patch name="Brightness" hbank="61" lbank="0" prog="100" />
+ <Patch name="Goblin" hbank="61" lbank="0" prog="101" />
+ <Patch name="Echo Drop" hbank="61" lbank="0" prog="102" />
+ <Patch name="Star Theme" hbank="61" lbank="0" prog="103" />
+ <Patch name="Sitar" hbank="61" lbank="0" prog="104" />
+ <Patch name="Banjo" hbank="61" lbank="0" prog="105" />
+ <Patch name="Shamisen" hbank="61" lbank="0" prog="106" />
+ <Patch name="Koto" hbank="61" lbank="0" prog="107" />
+ <Patch name="Kalimba" hbank="61" lbank="0" prog="108" />
+ <Patch name="Scotland" hbank="61" lbank="0" prog="109" />
+ <Patch name="Fiddle" hbank="61" lbank="0" prog="110" />
+ <Patch name="Shanai" hbank="61" lbank="0" prog="111" />
+ <Patch name="Metal Bell" hbank="61" lbank="0" prog="112" />
+ <Patch name="Agogo" hbank="61" lbank="0" prog="113" />
+ <Patch name="SteelDrums" hbank="61" lbank="0" prog="114" />
+ <Patch name="Woodblock" hbank="61" lbank="0" prog="115" />
+ <Patch name="Taiko" hbank="61" lbank="0" prog="116" />
+ <Patch name="Tom" hbank="61" lbank="0" prog="117" />
+ <Patch name="Synth Tom" hbank="61" lbank="0" prog="118" />
+ <Patch name="Rev Cymbal" hbank="61" lbank="0" prog="119" />
+ <Patch name="Fret Noise" hbank="61" lbank="0" prog="120" />
+ <Patch name="NoiseChiff" hbank="61" lbank="0" prog="121" />
+ <Patch name="Seashore" hbank="61" lbank="0" prog="122" />
+ <Patch name="Birds" hbank="61" lbank="0" prog="123" />
+ <Patch name="Telephone" hbank="61" lbank="0" prog="124" />
+ <Patch name="Helicopter" hbank="61" lbank="0" prog="125" />
+ <Patch name="Stadium!!" hbank="61" lbank="0" prog="126" />
+ <Patch name="Gunshot" hbank="61" lbank="0" prog="127" />
+ </PatchGroup>
+ <PatchGroup name="Bank D Drums">
+ <Patch name="GM Kit" hbank="62" lbank="0" prog="0" />
+ <Patch name="Power Kit" hbank="62" lbank="0" prog="16" />
+ <Patch name="Dance Kit" hbank="62" lbank="0" prog="24" />
+ <Patch name="Analog Kit" hbank="62" lbank="0" prog="25" />
+ <Patch name="Jazz Kit" hbank="62" lbank="0" prog="32" />
+ <Patch name="Brush Kit" hbank="62" lbank="0" prog="40" />
+ <Patch name="Orch Kit" hbank="62" lbank="0" prog="48" />
+ <Patch name="Perc Kit" hbank="62" lbank="0" prog="64" />
+ </PatchGroup>
+ <Controller name="Mod Wheel(Pitch)" l="1" />
+ <Controller name="Mod Wheel(Cutoff)" l="2" />
+ <Controller name="Pedal(Scale)" l="4" />
+ <Controller name="Volume" l="7" init="100" />
+ <Controller name="A:BPanPot" l="10" min="-64" max="63" init="0" />
+ <Controller name="Expression" l="11" init="127" />
+ <Controller name="Effect1Ctl" l="12" />
+ <Controller name="Effect2Ctl" l="13" />
+ <Controller name="Pedal(Damper)" l="64" />
+ <Controller name="EG Time(Release)" l="72" />
+ <Controller name="EG Time(Attack)" l="73" />
+ <Controller name="Brightness" l="74" />
+ <Controller name="EffectSendC" l="91" />
+ <Controller name="Effect1Off/On" l="92" />
+ <Controller name="EffectSendD" l="93" />
+ <Controller name="Effect2Off/On" l="94" />
+ <Controller name="AllSoundsOff" l="120" />
+ <Controller name="ResetAllCntrls" l="121" />
+ <Controller name="Program" type="Program" />
+ </MidiInstrument>
+</muse>
diff --git a/muse2/share/instruments/Korg-X5DR-PresetB.idf b/muse2/share/instruments/Korg-X5DR-PresetB.idf
new file mode 100644
index 00000000..6441d816
--- /dev/null
+++ b/muse2/share/instruments/Korg-X5DR-PresetB.idf
@@ -0,0 +1,368 @@
+<?xml version="1.0"?>
+<muse version="1.0">
+ <MidiInstrument name="Korg X5DR Preset B">
+ <PatchGroup name="Bank C Combinations">
+ <Patch name="Star*Burst" hbank="127" lbank="0" prog="0" />
+ <Patch name="LayerPiano" hbank="127" lbank="0" prog="1" />
+ <Patch name="Synth Fat" hbank="127" lbank="0" prog="2" />
+ <Patch name="Satellite" hbank="127" lbank="0" prog="3" />
+ <Patch name="Mr. Tone" hbank="127" lbank="0" prog="4" />
+ <Patch name="Calcutta" hbank="127" lbank="0" prog="5" />
+ <Patch name="FunkySpice" hbank="127" lbank="0" prog="6" />
+ <Patch name="Layer Str" hbank="127" lbank="0" prog="7" />
+ <Patch name="Sax Heaven" hbank="127" lbank="0" prog="8" />
+ <Patch name="Celebrate!" hbank="127" lbank="0" prog="9" />
+ <Patch name="First*Snow" hbank="127" lbank="0" prog="10" />
+ <Patch name="Bass+Piano" hbank="127" lbank="0" prog="11" />
+ <Patch name="Full Brass" hbank="127" lbank="0" prog="12" />
+ <Patch name="Sing To Me" hbank="127" lbank="0" prog="13" />
+ <Patch name="Mr. Chorus" hbank="127" lbank="0" prog="14" />
+ <Patch name="Javanese" hbank="127" lbank="0" prog="15" />
+ <Patch name="L\Bit O\" hbank="127" lbank="0" prog="16" />
+ <Patch name="Philarmony" hbank="127" lbank="0" prog="17" />
+ <Patch name="Half Moons" hbank="127" lbank="0" prog="18" />
+ <Patch name="HereItComz" hbank="127" lbank="0" prog="19" />
+ <Patch name="Rezolution" hbank="127" lbank="0" prog="20" />
+ <Patch name="The Gospel" hbank="127" lbank="0" prog="21" />
+ <Patch name="New Rave" hbank="127" lbank="0" prog="22" />
+ <Patch name="FlutterPad" hbank="127" lbank="0" prog="23" />
+ <Patch name="ShoeString" hbank="127" lbank="0" prog="24" />
+ <Patch name="Tethnical" hbank="127" lbank="0" prog="25" />
+ <Patch name="Full Pipe" hbank="127" lbank="0" prog="26" />
+ <Patch name="Overture" hbank="127" lbank="0" prog="27" />
+ <Patch name="Lead+Pad" hbank="127" lbank="0" prog="28" />
+ <Patch name="Dulcimer" hbank="127" lbank="0" prog="29" />
+ <Patch name="StormOf\30" hbank="127" lbank="0" prog="30" />
+ <Patch name="Stak\oMidi" hbank="127" lbank="0" prog="31" />
+ <Patch name="SmokyHorn" hbank="127" lbank="0" prog="32" />
+ <Patch name="VeloVoxBel" hbank="127" lbank="0" prog="33" />
+ <Patch name="Slap + Pop" hbank="127" lbank="0" prog="34" />
+ <Patch name="Bass+Vibes" hbank="127" lbank="0" prog="35" />
+ <Patch name="Super Perc" hbank="127" lbank="0" prog="36" />
+ <Patch name="Pizz + Bow" hbank="127" lbank="0" prog="37" />
+ <Patch name="Aquarium" hbank="127" lbank="0" prog="38" />
+ <Patch name="HouseParty" hbank="127" lbank="0" prog="39" />
+ <Patch name="Bell Come!" hbank="127" lbank="0" prog="40" />
+ <Patch name="EP+String" hbank="127" lbank="0" prog="41" />
+ <Patch name="Latin Band" hbank="127" lbank="0" prog="42" />
+ <Patch name="HumanBeam" hbank="127" lbank="0" prog="43" />
+ <Patch name="12 Stereo" hbank="127" lbank="0" prog="44" />
+ <Patch name="Istanbul" hbank="127" lbank="0" prog="45" />
+ <Patch name="Busy Split" hbank="127" lbank="0" prog="46" />
+ <Patch name="Orchestral" hbank="127" lbank="0" prog="47" />
+ <Patch name="CymbalLite" hbank="127" lbank="0" prog="48" />
+ <Patch name="Space Port" hbank="127" lbank="0" prog="49" />
+ <Patch name="Beach Walk" hbank="127" lbank="0" prog="50" />
+ <Patch name="DynoPiano" hbank="127" lbank="0" prog="51" />
+ <Patch name="Centerfold" hbank="127" lbank="0" prog="52" />
+ <Patch name="InTheLight" hbank="127" lbank="0" prog="53" />
+ <Patch name="Velo Chord" hbank="127" lbank="0" prog="54" />
+ <Patch name="SugarBells" hbank="127" lbank="0" prog="55" />
+ <Patch name="Blues Harp" hbank="127" lbank="0" prog="56" />
+ <Patch name="Grandioso" hbank="127" lbank="0" prog="57" />
+ <Patch name="Osaka Jazz" hbank="127" lbank="0" prog="58" />
+ <Patch name="Masterfisa" hbank="127" lbank="0" prog="59" />
+ <Patch name="Autumn" hbank="127" lbank="0" prog="60" />
+ <Patch name="ElecPno+Bs" hbank="127" lbank="0" prog="61" />
+ <Patch name="MasterFunk" hbank="127" lbank="0" prog="62" />
+ <Patch name="VeloVoices" hbank="127" lbank="0" prog="63" />
+ <Patch name="Split Bass" hbank="127" lbank="0" prog="64" />
+ <Patch name="Ethno Geo" hbank="127" lbank="0" prog="65" />
+ <Patch name="Ruff+Ready" hbank="127" lbank="0" prog="66" />
+ <Patch name="Madrigal" hbank="127" lbank="0" prog="67" />
+ <Patch name="ChiffSplit" hbank="127" lbank="0" prog="68" />
+ <Patch name="Dagobar" hbank="127" lbank="0" prog="69" />
+ <Patch name="Child Song" hbank="127" lbank="0" prog="70" />
+ <Patch name="Pontette" hbank="127" lbank="0" prog="71" />
+ <Patch name="GoToSweep" hbank="127" lbank="0" prog="72" />
+ <Patch name="SilkRoad33" hbank="127" lbank="0" prog="73" />
+ <Patch name="Nashville" hbank="127" lbank="0" prog="74" />
+ <Patch name="Bolshoi" hbank="127" lbank="0" prog="75" />
+ <Patch name="Wasp Sting" hbank="127" lbank="0" prog="76" />
+ <Patch name="AnaStrings" hbank="127" lbank="0" prog="77" />
+ <Patch name="Chris Tall" hbank="127" lbank="0" prog="78" />
+ <Patch name="Rave Hits" hbank="127" lbank="0" prog="79" />
+ <Patch name="SunOfTron" hbank="127" lbank="0" prog="80" />
+ <Patch name="SamAntic" hbank="127" lbank="0" prog="81" />
+ <Patch name="SweetMutes" hbank="127" lbank="0" prog="82" />
+ <Patch name="Nebulae" hbank="127" lbank="0" prog="83" />
+ <Patch name="Dole Bee" hbank="127" lbank="0" prog="84" />
+ <Patch name="The Sphinx" hbank="127" lbank="0" prog="85" />
+ <Patch name="Deep Organ" hbank="127" lbank="0" prog="86" />
+ <Patch name="StringsAtk" hbank="127" lbank="0" prog="87" />
+ <Patch name="Lassie+Tim" hbank="127" lbank="0" prog="88" />
+ <Patch name="DeathStars" hbank="127" lbank="0" prog="89" />
+ <Patch name="FreeTime" hbank="127" lbank="0" prog="90" />
+ <Patch name="Layer Cake" hbank="127" lbank="0" prog="91" />
+ <Patch name="BiggerIdea" hbank="127" lbank="0" prog="92" />
+ <Patch name="Safari" hbank="127" lbank="0" prog="93" />
+ <Patch name="Guitar+Pad" hbank="127" lbank="0" prog="94" />
+ <Patch name="ChinaBell" hbank="127" lbank="0" prog="95" />
+ <Patch name="Sky Cat" hbank="127" lbank="0" prog="96" />
+ <Patch name="HarpString" hbank="127" lbank="0" prog="97" />
+ <Patch name="Night Taps" hbank="127" lbank="0" prog="98" />
+ <Patch name="Slammin\" hbank="127" lbank="0" prog="99" />
+ </PatchGroup>
+ <PatchGroup name="Bank A Programs">
+ <Patch name="Sunrise" hbank="0" lbank="0" prog="0" />
+ <Patch name="Piano 16" hbank="0" lbank="0" prog="1" />
+ <Patch name="AltoBreath" hbank="0" lbank="0" prog="2" />
+ <Patch name="TinyDancer" hbank="0" lbank="0" prog="3" />
+ <Patch name="Spruce Gtr" hbank="0" lbank="0" prog="4" />
+ <Patch name="Vibra Bell" hbank="0" lbank="0" prog="5" />
+ <Patch name="XFade Bass" hbank="0" lbank="0" prog="6" />
+ <Patch name="TheStrings" hbank="0" lbank="0" prog="7" />
+ <Patch name="PowerSynth" hbank="0" lbank="0" prog="8" />
+ <Patch name="Total Kit" hbank="0" lbank="0" prog="9" />
+ <Patch name="MachinAge" hbank="0" lbank="0" prog="10" />
+ <Patch name="Hot Keys" hbank="0" lbank="0" prog="11" />
+ <Patch name="Brass Band" hbank="0" lbank="0" prog="12" />
+ <Patch name="Maxi Tine" hbank="0" lbank="0" prog="13" />
+ <Patch name="Power Rock" hbank="0" lbank="0" prog="14" />
+ <Patch name="Tabla Talk" hbank="0" lbank="0" prog="15" />
+ <Patch name="FingerBass" hbank="0" lbank="0" prog="16" />
+ <Patch name="LiteVoices" hbank="0" lbank="0" prog="17" />
+ <Patch name="Color Pad" hbank="0" lbank="0" prog="18" />
+ <Patch name="Festival!" hbank="0" lbank="0" prog="19" />
+ <Patch name="GlideSweep" hbank="0" lbank="0" prog="20" />
+ <Patch name="Last Tango" hbank="0" lbank="0" prog="21" />
+ <Patch name="MagicFlute" hbank="0" lbank="0" prog="22" />
+ <Patch name="Operators" hbank="0" lbank="0" prog="23" />
+ <Patch name="E.Guitars" hbank="0" lbank="0" prog="24" />
+ <Patch name="Gamelan" hbank="0" lbank="0" prog="25" />
+ <Patch name="Zap Bass" hbank="0" lbank="0" prog="26" />
+ <Patch name="DigitalAir" hbank="0" lbank="0" prog="27" />
+ <Patch name="Analogist" hbank="0" lbank="0" prog="28" />
+ <Patch name="MandoTrem" hbank="0" lbank="0" prog="29" />
+ <Patch name="Space Wing" hbank="0" lbank="0" prog="30" />
+ <Patch name="Gospel Org" hbank="0" lbank="0" prog="31" />
+ <Patch name="Trumpets" hbank="0" lbank="0" prog="32" />
+ <Patch name="Fresh Air" hbank="0" lbank="0" prog="33" />
+ <Patch name="Rock Mutes" hbank="0" lbank="0" prog="34" />
+ <Patch name="Dustette" hbank="0" lbank="0" prog="35" />
+ <Patch name="PickedBass" hbank="0" lbank="0" prog="36" />
+ <Patch name="ChamberEns" hbank="0" lbank="0" prog="37" />
+ <Patch name="Wire Pad" hbank="0" lbank="0" prog="38" />
+ <Patch name="Industrial" hbank="0" lbank="0" prog="39" />
+ <Patch name="Neutron" hbank="0" lbank="0" prog="40" />
+ <Patch name="PianoHaven" hbank="0" lbank="0" prog="41" />
+ <Patch name="Shaku Bend" hbank="0" lbank="0" prog="42" />
+ <Patch name="BowenWave" hbank="0" lbank="0" prog="43" />
+ <Patch name="Clean Funk" hbank="0" lbank="0" prog="44" />
+ <Patch name="SplitBell" hbank="0" lbank="0" prog="45" />
+ <Patch name="Slap It" hbank="0" lbank="0" prog="46" />
+ <Patch name="AnalogPad" hbank="0" lbank="0" prog="47" />
+ <Patch name="Residue" hbank="0" lbank="0" prog="48" />
+ <Patch name="Orch Perc" hbank="0" lbank="0" prog="49" />
+ <Patch name="DreamWorld" hbank="0" lbank="0" prog="50" />
+ <Patch name="HarpsiFunk" hbank="0" lbank="0" prog="51" />
+ <Patch name="FlugelHorn" hbank="0" lbank="0" prog="52" />
+ <Patch name="Elec. Tap" hbank="0" lbank="0" prog="53" />
+ <Patch name="Harmonics" hbank="0" lbank="0" prog="54" />
+ <Patch name="Africana" hbank="0" lbank="0" prog="55" />
+ <Patch name="TechnoBass" hbank="0" lbank="0" prog="56" />
+ <Patch name="Airways" hbank="0" lbank="0" prog="57" />
+ <Patch name="Busy Boy" hbank="0" lbank="0" prog="58" />
+ <Patch name="Heartbeat" hbank="0" lbank="0" prog="59" />
+ <Patch name="Spectrum" hbank="0" lbank="0" prog="60" />
+ <Patch name="Full Pipes" hbank="0" lbank="0" prog="61" />
+ <Patch name="Woodwinds" hbank="0" lbank="0" prog="62" />
+ <Patch name="Whirly" hbank="0" lbank="0" prog="63" />
+ <Patch name="LeadGuitar" hbank="0" lbank="0" prog="64" />
+ <Patch name="Isabelle" hbank="0" lbank="0" prog="65" />
+ <Patch name="Fat Fretty" hbank="0" lbank="0" prog="66" />
+ <Patch name="Poppin\Pad" hbank="0" lbank="0" prog="67" />
+ <Patch name="Soft Horns" hbank="0" lbank="0" prog="68" />
+ <Patch name="ProducrKit" hbank="0" lbank="0" prog="69" />
+ <Patch name="InTheTrees" hbank="0" lbank="0" prog="70" />
+ <Patch name="SantaClav" hbank="0" lbank="0" prog="71" />
+ <Patch name="Sfz-Brass" hbank="0" lbank="0" prog="72" />
+ <Patch name="Tine Pad" hbank="0" lbank="0" prog="73" />
+ <Patch name="PedalSteel" hbank="0" lbank="0" prog="74" />
+ <Patch name="Log Drums" hbank="0" lbank="0" prog="75" />
+ <Patch name="HouseBass1" hbank="0" lbank="0" prog="76" />
+ <Patch name="Ambi.Voice" hbank="0" lbank="0" prog="77" />
+ <Patch name="MonoLead" hbank="0" lbank="0" prog="78" />
+ <Patch name="Hackbrett" hbank="0" lbank="0" prog="79" />
+ <Patch name="Halifax NS" hbank="0" lbank="0" prog="80" />
+ <Patch name="Drawbars" hbank="0" lbank="0" prog="81" />
+ <Patch name="Fanfare" hbank="0" lbank="0" prog="82" />
+ <Patch name="Hard Tines" hbank="0" lbank="0" prog="83" />
+ <Patch name="Dr.Guitar" hbank="0" lbank="0" prog="84" />
+ <Patch name="EtherBells" hbank="0" lbank="0" prog="85" />
+ <Patch name="Bass/Harm" hbank="0" lbank="0" prog="86" />
+ <Patch name="Air Vox" hbank="0" lbank="0" prog="87" />
+ <Patch name="Drum Hit" hbank="0" lbank="0" prog="88" />
+ <Patch name="50\s SciFi" hbank="0" lbank="0" prog="89" />
+ <Patch name="SteamCloud" hbank="0" lbank="0" prog="90" />
+ <Patch name="Bouzouki" hbank="0" lbank="0" prog="91" />
+ <Patch name="BriteBass" hbank="0" lbank="0" prog="92" />
+ <Patch name="DWGS EP" hbank="0" lbank="0" prog="93" />
+ <Patch name="JoyStickUp" hbank="0" lbank="0" prog="94" />
+ <Patch name="WaveCycles" hbank="0" lbank="0" prog="95" />
+ <Patch name="Rap Bass" hbank="0" lbank="0" prog="96" />
+ <Patch name="OoooohPad" hbank="0" lbank="0" prog="97" />
+ <Patch name="Bright Pad" hbank="0" lbank="0" prog="98" />
+ <Patch name="HarpPluck" hbank="0" lbank="0" prog="99" />
+ </PatchGroup>
+ <PatchGroup name="Bank G General Midi">
+ <Patch name="Piano" hbank="61" lbank="0" prog="0" />
+ <Patch name="BritePiano" hbank="61" lbank="0" prog="1" />
+ <Patch name="HammerPno" hbank="61" lbank="0" prog="2" />
+ <Patch name="HonkeyTonk" hbank="61" lbank="0" prog="3" />
+ <Patch name="New Tines" hbank="61" lbank="0" prog="4" />
+ <Patch name="Digi Piano" hbank="61" lbank="0" prog="5" />
+ <Patch name="Harpsicord" hbank="61" lbank="0" prog="6" />
+ <Patch name="Clav" hbank="61" lbank="0" prog="7" />
+ <Patch name="Celesta" hbank="61" lbank="0" prog="8" />
+ <Patch name="Glocken" hbank="61" lbank="0" prog="9" />
+ <Patch name="Music Box" hbank="61" lbank="0" prog="10" />
+ <Patch name="Vibes" hbank="61" lbank="0" prog="11" />
+ <Patch name="Marimba" hbank="61" lbank="0" prog="12" />
+ <Patch name="Xylophon" hbank="61" lbank="0" prog="13" />
+ <Patch name="Tubular" hbank="61" lbank="0" prog="14" />
+ <Patch name="Santur" hbank="61" lbank="0" prog="15" />
+ <Patch name="Full Organ" hbank="61" lbank="0" prog="16" />
+ <Patch name="Perc Organ" hbank="61" lbank="0" prog="17" />
+ <Patch name="BX-3 Organ" hbank="61" lbank="0" prog="18" />
+ <Patch name="ChurchPipe" hbank="61" lbank="0" prog="19" />
+ <Patch name="Positive" hbank="61" lbank="0" prog="20" />
+ <Patch name="Musette" hbank="61" lbank="0" prog="21" />
+ <Patch name="Harmonica" hbank="61" lbank="0" prog="22" />
+ <Patch name="Tango" hbank="61" lbank="0" prog="23" />
+ <Patch name="ClassicGtr" hbank="61" lbank="0" prog="24" />
+ <Patch name="A.Guitar" hbank="61" lbank="0" prog="25" />
+ <Patch name="JazzGuitar" hbank="61" lbank="0" prog="26" />
+ <Patch name="Clean Gtr" hbank="61" lbank="0" prog="27" />
+ <Patch name="MuteGuitar" hbank="61" lbank="0" prog="28" />
+ <Patch name="Over Drive" hbank="61" lbank="0" prog="29" />
+ <Patch name="DistGuitar" hbank="61" lbank="0" prog="30" />
+ <Patch name="RockMonics" hbank="61" lbank="0" prog="31" />
+ <Patch name="Jazz Bass" hbank="61" lbank="0" prog="32" />
+ <Patch name="Deep Bass" hbank="61" lbank="0" prog="33" />
+ <Patch name="Pick Bass" hbank="61" lbank="0" prog="34" />
+ <Patch name="Fretless" hbank="61" lbank="0" prog="35" />
+ <Patch name="SlapBass 1" hbank="61" lbank="0" prog="36" />
+ <Patch name="SlapBass 2" hbank="61" lbank="0" prog="37" />
+ <Patch name="SynthBass1" hbank="61" lbank="0" prog="38" />
+ <Patch name="SynthBass2" hbank="61" lbank="0" prog="39" />
+ <Patch name="Violin" hbank="61" lbank="0" prog="40" />
+ <Patch name="Viola" hbank="61" lbank="0" prog="41" />
+ <Patch name="Cello" hbank="61" lbank="0" prog="42" />
+ <Patch name="ContraBass" hbank="61" lbank="0" prog="43" />
+ <Patch name="TremoloStr" hbank="61" lbank="0" prog="44" />
+ <Patch name="Pizzicato" hbank="61" lbank="0" prog="45" />
+ <Patch name="Harp" hbank="61" lbank="0" prog="46" />
+ <Patch name="Timpani" hbank="61" lbank="0" prog="47" />
+ <Patch name="Marcato" hbank="61" lbank="0" prog="48" />
+ <Patch name="SlowString" hbank="61" lbank="0" prog="49" />
+ <Patch name="Analog Pad" hbank="61" lbank="0" prog="50" />
+ <Patch name="String Pad" hbank="61" lbank="0" prog="51" />
+ <Patch name="Choir" hbank="61" lbank="0" prog="52" />
+ <Patch name="Doo Voice" hbank="61" lbank="0" prog="53" />
+ <Patch name="Voices" hbank="61" lbank="0" prog="54" />
+ <Patch name="Orch Hit" hbank="61" lbank="0" prog="55" />
+ <Patch name="Trumpet" hbank="61" lbank="0" prog="56" />
+ <Patch name="Trombone" hbank="61" lbank="0" prog="57" />
+ <Patch name="Tuba" hbank="61" lbank="0" prog="58" />
+ <Patch name="Muted Trpt" hbank="61" lbank="0" prog="59" />
+ <Patch name="FrenchHorn" hbank="61" lbank="0" prog="60" />
+ <Patch name="Brass" hbank="61" lbank="0" prog="61" />
+ <Patch name="SynBrass 1" hbank="61" lbank="0" prog="62" />
+ <Patch name="SynBrass 2" hbank="61" lbank="0" prog="63" />
+ <Patch name="SopranoSax" hbank="61" lbank="0" prog="64" />
+ <Patch name="Alto Sax" hbank="61" lbank="0" prog="65" />
+ <Patch name="Tenor Sax" hbank="61" lbank="0" prog="66" />
+ <Patch name="Bari Sax" hbank="61" lbank="0" prog="67" />
+ <Patch name="Sweet Oboe" hbank="61" lbank="0" prog="68" />
+ <Patch name="EnglishHrn" hbank="61" lbank="0" prog="69" />
+ <Patch name="BasoonOboe" hbank="61" lbank="0" prog="70" />
+ <Patch name="Clarinet" hbank="61" lbank="0" prog="71" />
+ <Patch name="Piccolo" hbank="61" lbank="0" prog="72" />
+ <Patch name="Flute" hbank="61" lbank="0" prog="73" />
+ <Patch name="Recorder" hbank="61" lbank="0" prog="74" />
+ <Patch name="Pan Flute" hbank="61" lbank="0" prog="75" />
+ <Patch name="Bottle" hbank="61" lbank="0" prog="76" />
+ <Patch name="Shakuhachi" hbank="61" lbank="0" prog="77" />
+ <Patch name="Whistle" hbank="61" lbank="0" prog="78" />
+ <Patch name="Ocarina" hbank="61" lbank="0" prog="79" />
+ <Patch name="SquareWave" hbank="61" lbank="0" prog="80" />
+ <Patch name="Saw Wave" hbank="61" lbank="0" prog="81" />
+ <Patch name="SynCaliope" hbank="61" lbank="0" prog="82" />
+ <Patch name="Syn Chiff" hbank="61" lbank="0" prog="83" />
+ <Patch name="Charang" hbank="61" lbank="0" prog="84" />
+ <Patch name="AirChorus" hbank="61" lbank="0" prog="85" />
+ <Patch name="Rezzo4ths" hbank="61" lbank="0" prog="86" />
+ <Patch name="Bass+Lead" hbank="61" lbank="0" prog="87" />
+ <Patch name="Fantasia" hbank="61" lbank="0" prog="88" />
+ <Patch name="Warm Pad" hbank="61" lbank="0" prog="89" />
+ <Patch name="Poly Pad" hbank="61" lbank="0" prog="90" />
+ <Patch name="Ghost Pad" hbank="61" lbank="0" prog="91" />
+ <Patch name="BowedGlass" hbank="61" lbank="0" prog="92" />
+ <Patch name="Metal Pad" hbank="61" lbank="0" prog="93" />
+ <Patch name="Halo Pad" hbank="61" lbank="0" prog="94" />
+ <Patch name="Sweep" hbank="61" lbank="0" prog="95" />
+ <Patch name="Ice Rain" hbank="61" lbank="0" prog="96" />
+ <Patch name="SoundTrack" hbank="61" lbank="0" prog="97" />
+ <Patch name="Crystal" hbank="61" lbank="0" prog="98" />
+ <Patch name="Atmosphere" hbank="61" lbank="0" prog="99" />
+ <Patch name="Brightness" hbank="61" lbank="0" prog="100" />
+ <Patch name="Goblin" hbank="61" lbank="0" prog="101" />
+ <Patch name="Echo Drop" hbank="61" lbank="0" prog="102" />
+ <Patch name="Star Theme" hbank="61" lbank="0" prog="103" />
+ <Patch name="Sitar" hbank="61" lbank="0" prog="104" />
+ <Patch name="Banjo" hbank="61" lbank="0" prog="105" />
+ <Patch name="Shamisen" hbank="61" lbank="0" prog="106" />
+ <Patch name="Koto" hbank="61" lbank="0" prog="107" />
+ <Patch name="Kalimba" hbank="61" lbank="0" prog="108" />
+ <Patch name="Scotland" hbank="61" lbank="0" prog="109" />
+ <Patch name="Fiddle" hbank="61" lbank="0" prog="110" />
+ <Patch name="Shanai" hbank="61" lbank="0" prog="111" />
+ <Patch name="Metal Bell" hbank="61" lbank="0" prog="112" />
+ <Patch name="Agogo" hbank="61" lbank="0" prog="113" />
+ <Patch name="SteelDrums" hbank="61" lbank="0" prog="114" />
+ <Patch name="Woodblock" hbank="61" lbank="0" prog="115" />
+ <Patch name="Taiko" hbank="61" lbank="0" prog="116" />
+ <Patch name="Tom" hbank="61" lbank="0" prog="117" />
+ <Patch name="Synth Tom" hbank="61" lbank="0" prog="118" />
+ <Patch name="Rev Cymbal" hbank="61" lbank="0" prog="119" />
+ <Patch name="Fret Noise" hbank="61" lbank="0" prog="120" />
+ <Patch name="NoiseChiff" hbank="61" lbank="0" prog="121" />
+ <Patch name="Seashore" hbank="61" lbank="0" prog="122" />
+ <Patch name="Birds" hbank="61" lbank="0" prog="123" />
+ <Patch name="Telephone" hbank="61" lbank="0" prog="124" />
+ <Patch name="Helicopter" hbank="61" lbank="0" prog="125" />
+ <Patch name="Stadium!!" hbank="61" lbank="0" prog="126" />
+ <Patch name="Gunshot" hbank="61" lbank="0" prog="127" />
+ </PatchGroup>
+ <PatchGroup name="Bank D Drums">
+ <Patch name="GM Kit" hbank="62" lbank="0" prog="0" />
+ <Patch name="Power Kit" hbank="62" lbank="0" prog="16" />
+ <Patch name="Dance Kit" hbank="62" lbank="0" prog="24" />
+ <Patch name="Analog Kit" hbank="62" lbank="0" prog="25" />
+ <Patch name="Jazz Kit" hbank="62" lbank="0" prog="32" />
+ <Patch name="Brush Kit" hbank="62" lbank="0" prog="40" />
+ <Patch name="Orch Kit" hbank="62" lbank="0" prog="48" />
+ <Patch name="Perc Kit" hbank="62" lbank="0" prog="64" />
+ </PatchGroup>
+ <Controller name="Mod Wheel(Pitch)" l="1" />
+ <Controller name="Mod Wheel(Cutoff)" l="2" />
+ <Controller name="Pedal(Scale)" l="4" />
+ <Controller name="Volume" l="7" init="100" />
+ <Controller name="A:BPanPot" l="10" min="-64" max="63" init="0" />
+ <Controller name="Expression" l="11" init="127" />
+ <Controller name="Effect1Ctl" l="12" />
+ <Controller name="Effect2Ctl" l="13" />
+ <Controller name="Pedal(Damper)" l="64" />
+ <Controller name="EG Time(Release)" l="72" />
+ <Controller name="EG Time(Attack)" l="73" />
+ <Controller name="Brightness" l="74" />
+ <Controller name="EffectSendC" l="91" />
+ <Controller name="Effect1Off/On" l="92" />
+ <Controller name="EffectSendD" l="93" />
+ <Controller name="Effect2Off/On" l="94" />
+ <Controller name="AllSoundsOff" l="120" />
+ <Controller name="ResetAllCntrls" l="121" />
+ <Controller name="Program" type="Program" />
+ </MidiInstrument>
+</muse>
diff --git a/muse2/share/instruments/Kurzweil-SP2X.idf b/muse2/share/instruments/Kurzweil-SP2X.idf
new file mode 100644
index 00000000..fbf6dd47
--- /dev/null
+++ b/muse2/share/instruments/Kurzweil-SP2X.idf
@@ -0,0 +1,121 @@
+<?xml version="1.0"?>
+<muse version="1.0">
+ <MidiInstrument name="Kurzweil SP2X">
+ <PatchGroup name="Bank 00">
+ <Patch name="Stereo Grand" hbank="0" lbank="0" prog="0" />
+ <Patch name="Classic Grand" hbank="0" lbank="0" prog="1" />
+ <Patch name="Dynamic Grand" hbank="0" lbank="0" prog="2" />
+ <Patch name="Concert Grand" hbank="0" lbank="0" prog="3" />
+ <Patch name="Yearning" hbank="0" lbank="0" prog="4" />
+ <Patch name="Piano for layers" hbank="0" lbank="0" prog="5" />
+ <Patch name="Hard Rock Piano" hbank="0" lbank="0" prog="6" />
+ <Patch name="Rag Time Piano" hbank="0" lbank="0" prog="7" />
+ <Patch name="Studio Rhds" hbank="0" lbank="0" prog="8" />
+ <Patch name="Fagen Phaser" hbank="0" lbank="0" prog="9" />
+ <Patch name="Old Sly Rhds" hbank="0" lbank="0" prog="10" />
+ <Patch name="Dyno My E Pno" hbank="0" lbank="0" prog="11" />
+ <Patch name="Digital E Piano" hbank="0" lbank="0" prog="12" />
+ <Patch name="FantAsmAtron" hbank="0" lbank="0" prog="13" />
+ <Patch name="90\s FM Ballad" hbank="0" lbank="0" prog="14" />
+ <Patch name="Big Red Wurly" hbank="0" lbank="0" prog="15" />
+ <Patch name="Pipe 16\8_reed" hbank="0" lbank="0" prog="16" />
+ <Patch name="Orgiano" hbank="0" lbank="0" prog="17" />
+ <Patch name="Pipe Organ" hbank="0" lbank="0" prog="18" />
+ <Patch name="Ballad of 3 Bar" hbank="0" lbank="0" prog="19" />
+ <Patch name="Prog Rocker\s B" hbank="0" lbank="0" prog="20" />
+ <Patch name="Clav Classic" hbank="0" lbank="0" prog="21" />
+ <Patch name="Dual Wah Clav" hbank="0" lbank="0" prog="22" />
+ <Patch name="Harpsichord" hbank="0" lbank="0" prog="23" />
+ <Patch name="Film String" hbank="0" lbank="0" prog="24" />
+ <Patch name="Touch Strings" hbank="0" lbank="0" prog="25" />
+ <Patch name="Fast Strings" hbank="0" lbank="0" prog="26" />
+ <Patch name="Octave Strings 2" hbank="0" lbank="0" prog="27" />
+ <Patch name="Kupiter" hbank="0" lbank="0" prog="28" />
+ <Patch name="Orch Pad" hbank="0" lbank="0" prog="29" />
+ <Patch name="U Say Tomita---" hbank="0" lbank="0" prog="30" />
+ <Patch name="Spider\s Web" hbank="0" lbank="0" prog="31" />
+ <Patch name="Williams Brass" hbank="0" lbank="0" prog="32" />
+ <Patch name="Synth Brass" hbank="0" lbank="0" prog="33" />
+ <Patch name="Brass Section" hbank="0" lbank="0" prog="34" />
+ <Patch name="saxes X trumpets" hbank="0" lbank="0" prog="35" />
+ <Patch name="Indy lead" hbank="0" lbank="0" prog="36" />
+ <Patch name="Alazawi" hbank="0" lbank="0" prog="37" />
+ <Patch name="Hybrid Pan" hbank="0" lbank="0" prog="38" />
+ <Patch name="Old lead" hbank="0" lbank="0" prog="39" />
+ <Patch name="Scatman" hbank="0" lbank="0" prog="40" />
+ <Patch name="Bright Voices" hbank="0" lbank="0" prog="41" />
+ <Patch name="Doo--Daa" hbank="0" lbank="0" prog="42" />
+ <Patch name="The Croons" hbank="0" lbank="0" prog="43" />
+ <Patch name="Eurythm" hbank="0" lbank="0" prog="44" />
+ <Patch name="FLG Strings" hbank="0" lbank="0" prog="45" />
+ <Patch name="Solar Lead" hbank="0" lbank="0" prog="46" />
+ <Patch name="Attack Stack" hbank="0" lbank="0" prog="47" />
+ <Patch name="Acoustic Guitar" hbank="0" lbank="0" prog="48" />
+ <Patch name="Chorus Elec Gtr" hbank="0" lbank="0" prog="49" />
+ <Patch name="Lead Rock Gtr" hbank="0" lbank="0" prog="50" />
+ <Patch name="Jazzy Frets" hbank="0" lbank="0" prog="51" />
+ <Patch name="Round and Wound" hbank="0" lbank="0" prog="52" />
+ <Patch name="Two Finger Bass" hbank="0" lbank="0" prog="53" />
+ <Patch name="Slap Bass" hbank="0" lbank="0" prog="54" />
+ <Patch name="Upright Bass" hbank="0" lbank="0" prog="55" />
+ <Patch name="Studio Drums 1+2" hbank="0" lbank="0" prog="56" />
+ <Patch name="Radio Kings\Rods" hbank="0" lbank="0" prog="57" />
+ <Patch name="Dirt\Triphop Kit" hbank="0" lbank="0" prog="58" />
+ <Patch name="Electro kit" hbank="0" lbank="0" prog="59" />
+ <Patch name="Virtuoso Perc" hbank="0" lbank="0" prog="60" />
+ <Patch name="Rhythm Maker" hbank="0" lbank="0" prog="61" />
+ <Patch name="Dual Marimba" hbank="0" lbank="0" prog="62" />
+ <Patch name="Vibes" hbank="0" lbank="0" prog="63" />
+ </PatchGroup>
+ <Controller name="Mod Wheel" l="1" />
+ <Controller name="Breath" l="2" />
+ <Controller name="Foot Control" l="4" />
+ <Controller name="Port Time" l="5" />
+ <Controller name="Knob A" l="6" />
+ <Controller name="Volume" l="7" init="100" />
+ <Controller name="Balance" l="8" init="64" />
+ <Controller name="Pan" l="10" init="64" />
+ <Controller name="Expression" l="11" init="127" />
+ <Controller name="EfxCt 1" l="12" init="0" />
+ <Controller name="EfxCt 2\Knob B" l="13" init="0" />
+ <Controller name="AuxBnd2" l="15" init="0" />
+ <Controller name="AuxBnd2" l="15" init="0" />
+ <Controller name="Gen 1" l="16" />
+ <Controller name="Gen 2" l="17" />
+ <Controller name="Gen 3" l="18" />
+ <Controller name="Gen 4" l="19" />
+ <Controller name="Knob C" l="23" />
+ <Controller name="Knob D" l="24" />
+ <Controller name="Sustain" l="64" />
+ <Controller name="Port Switch" l="65" />
+ <Controller name="Sosten" l="66" />
+ <Controller name="Soft" l="67" />
+ <Controller name="Legato" l="68" />
+ <Controller name="Hold2" l="69" />
+ <Controller name="SndCtl1" l="70" />
+ <Controller name="SndCtl2" l="71" />
+ <Controller name="SndCtl3" l="72" />
+ <Controller name="SndCtl4" l="73" />
+ <Controller name="SndCtl5" l="74" />
+ <Controller name="SndCtl6" l="75" />
+ <Controller name="SndCtl7" l="76" />
+ <Controller name="SndCtl8" l="77" />
+ <Controller name="SndCtl9" l="78" />
+ <Controller name="SndCtl10" l="79" />
+ <Controller name="Gen 5" l="80" />
+ <Controller name="Gen 6" l="81" />
+ <Controller name="Gen 7" l="82" />
+ <Controller name="Gen 8" l="83" />
+ <Controller name="PortCtl" l="84" />
+ <Controller name="FXBWet" l="91" />
+ <Controller name="FXAWet" l="93" />
+ <Controller name="SndOff" l="120" />
+ <Controller name="RstCtl" l="121" />
+ <Controller name="LclCtl" l="122" />
+ <Controller name="NtsOff" l="123" />
+ <Controller name="OmniOf" l="124" />
+ <Controller name="OmniOn" l="125" />
+ <Controller name="MonoOn" l="126" />
+ <Controller name="PolyOn" l="127" />
+ </MidiInstrument>
+</muse>
diff --git a/muse2/share/instruments/MC303.idf b/muse2/share/instruments/MC303.idf
new file mode 100644
index 00000000..44cf51b3
--- /dev/null
+++ b/muse2/share/instruments/MC303.idf
@@ -0,0 +1,526 @@
+<?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" drum="1" />
+ <Patch name="Jngl SD Kit 1 *2" hbank="65" lbank="0" prog="120" drum="1" />
+ <Patch name="Jngl SD Kit 2 *2" hbank="66" lbank="0" prog="120" drum="1" />
+ <Patch name="Mute SD Kit *2" hbank="67" lbank="0" prog="120" drum="1" />
+ <Patch name="Funky SD Kit *2" hbank="68" lbank="0" prog="120" drum="1" />
+ <Patch name="Rap SD Kit *2" hbank="69" lbank="0" prog="120" drum="1" />
+ <Patch name="Dry SD Kit *2" hbank="70" lbank="0" prog="120" drum="1" />
+ <Patch name="Brush Tap *2" hbank="64" lbank="0" prog="121" drum="1" />
+ <Patch name="Brush Slap *2" hbank="65" lbank="0" prog="121" drum="1" />
+ <Patch name="Brush Swirl *2" hbank="66" lbank="0" prog="121" drum="1" />
+ <Patch name="909 SD Kit *2" hbank="64" lbank="0" prog="122" drum="1" />
+ <Patch name="808 SD Kit 1 *2" hbank="65" lbank="0" prog="122" drum="1" />
+ <Patch name="Hyper SD Kit *2" hbank="66" lbank="0" prog="122" drum="1" />
+ <Patch name="FX SD Kit *2" hbank="67" lbank="0" prog="122" drum="1" />
+ <Patch name="808 SD Kit 2 *2" hbank="68" lbank="0" prog="122" drum="1" />
+ <Patch name="606 SD Kit *2" hbank="69" lbank="0" prog="122" drum="1" />
+ </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" drum="1" />
+ <Patch name="Jngl.BD Kit *2" hbank="65" lbank="0" prog="126" drum="1" />
+ <Patch name="909 BD Kit 1 *2" hbank="66" lbank="0" prog="126" drum="1" />
+ <Patch name="909 BD Kit 2 *2" hbank="67" lbank="0" prog="126" drum="1" />
+ <Patch name="909 BD Kit 3 *2" hbank="68" lbank="0" prog="126" drum="1" />
+ <Patch name="Dry BD Kit *2" hbank="69" lbank="0" prog="126" drum="1" />
+ <Patch name="606 BD Kit *2" hbank="70" lbank="0" prog="126" drum="1" />
+ </PatchGroup>
+ <PatchGroup name="Drum 303">
+ <Patch name="909" hbank="64" lbank="0" prog="0" drum="1" />
+ <Patch name="808" hbank="64" lbank="0" prog="8" drum="1" />
+ <Patch name="C78" hbank="64" lbank="0" prog="16" drum="1" />
+ <Patch name="JAZZ" hbank="64" lbank="0" prog="24" drum="1" />
+ <Patch name="BR5" hbank="64" lbank="0" prog="25" drum="1" />
+ <Patch name="JUNGLE" hbank="64" lbank="0" prog="32" drum="1" />
+ <Patch name="HOUSE" hbank="64" lbank="0" prog="40" drum="1" />
+ <Patch name="TC1" hbank="64" lbank="0" prog="48" drum="1" />
+ <Patch name="TC2" hbank="64" lbank="0" prog="56" drum="1" />
+ <Patch name="TC3" hbank="64" lbank="0" prog="64" drum="1" />
+ <Patch name="ABT" hbank="64" lbank="0" prog="72" drum="1" />
+ <Patch name="HIP HOP" hbank="64" lbank="0" prog="80" drum="1" />
+ </PatchGroup>
+ <Controller name="Program" type="Program" />
+ </MidiInstrument>
+</muse>
diff --git a/muse2/share/instruments/MC505.idf b/muse2/share/instruments/MC505.idf
new file mode 100644
index 00000000..dc7e7460
--- /dev/null
+++ b/muse2/share/instruments/MC505.idf
@@ -0,0 +1,554 @@
+<?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="81" lbank="1" prog="1" />
+ <Patch name="You Can Fly" hbank="81" lbank="1" prog="2" />
+ <Patch name="Syn stack 2 " hbank="81" lbank="1" prog="3" />
+ <Patch name="Dawn Of Man" hbank="81" lbank="1" prog="4" />
+ <Patch name="Saw Stack 1 " hbank="81" lbank="1" prog="5" />
+ <Patch name="Saw Stack 2 " hbank="81" lbank="1" prog="6" />
+ <Patch name="DLM Stack " hbank="81" lbank="1" prog="7" />
+ <Patch name="DOC Stack " hbank="81" lbank="1" prog="8" />
+ <Patch name="LN2 Stack " hbank="81" lbank="1" prog="9" />
+ <Patch name="Bend Stack" hbank="81" lbank="1" prog="10" />
+ <Patch name="Freedom" hbank="81" lbank="1" prog="11" />
+ <Patch name="Good Bean " hbank="81" lbank="1" prog="12" />
+ <Patch name="JP8000 5th" hbank="81" lbank="1" prog="13" />
+ <Patch name="Mega 5th " hbank="81" lbank="1" prog="14" />
+ <Patch name="5th Saw " hbank="81" lbank="1" prog="15" />
+ <Patch name="4th Saw" hbank="81" lbank="1" prog="16" />
+ <Patch name="Soundtrack" hbank="81" lbank="1" prog="17" />
+ <Patch name="Rise Pad " hbank="81" lbank="1" prog="18" />
+ <Patch name="Warm Pad " hbank="81" lbank="1" prog="19" />
+ <Patch name="JP + OB Pad " hbank="81" lbank="1" prog="20" />
+ <Patch name="Planet " hbank="81" lbank="1" prog="21" />
+ <Patch name="Additive " hbank="81" lbank="1" prog="22" />
+ <Patch name="Noise Pad" hbank="81" lbank="1" prog="23" />
+ <Patch name="Sweep Pad 1 " hbank="81" lbank="1" prog="24" />
+ <Patch name="Sweep Pad 2" hbank="81" lbank="1" prog="25" />
+ <Patch name="Alles Padde " hbank="81" lbank="1" prog="26" />
+ <Patch name="Sky Light " hbank="81" lbank="1" prog="27" />
+ <Patch name="Stargate MC " hbank="81" lbank="1" prog="28" />
+ <Patch name="Middle Grow " hbank="81" lbank="1" prog="29" />
+ <Patch name="AiRye Bread-" hbank="81" lbank="1" prog="30" />
+ <Patch name="NU-NRG Org" hbank="81" lbank="1" prog="31" />
+ <Patch name="Halo Pad " hbank="81" lbank="1" prog="32" />
+ <Patch name="Str/Brs Pad " hbank="81" lbank="1" prog="33" />
+ <Patch name="Syn Brs Pad " hbank="81" lbank="1" prog="34" />
+ <Patch name="Simple Pad" hbank="81" lbank="1" prog="35" />
+ <Patch name="OB Rezo Pad " hbank="81" lbank="1" prog="36" />
+ <Patch name="Sweet Vocode" hbank="81" lbank="1" prog="37" />
+ <Patch name="Thin Pad " hbank="81" lbank="1" prog="38" />
+ <Patch name="Attack Pad" hbank="81" lbank="1" prog="39" />
+ <Patch name="Metal Pad " hbank="81" lbank="1" prog="40" />
+ <Patch name="Atmosphere" hbank="81" lbank="1" prog="41" />
+ <Patch name="Fantasia " hbank="81" lbank="1" prog="42" />
+ <Patch name="Feedbackwave" hbank="81" lbank="1" prog="43" />
+ <Patch name="Pacifica " hbank="81" lbank="1" prog="44" />
+ <Patch name="Atmosphere 2" hbank="81" lbank="1" prog="45" />
+ <Patch name="Sub Atmosphe" hbank="81" lbank="1" prog="46" />
+ <Patch name="Machine Pad " hbank="81" lbank="1" prog="47" />
+ <Patch name="Detuned Pad " hbank="81" lbank="1" prog="48" />
+ <Patch name="Scoop Pad " hbank="81" lbank="1" prog="49" />
+ <Patch name="Psycho Trevor " hbank="81" lbank="1" prog="50" />
+ <Patch name="Floating Pad" hbank="81" lbank="1" prog="51" />
+ <Patch name="Fancy Pad " hbank="81" lbank="1" prog="52" />
+ <Patch name="Strings 1 " hbank="81" lbank="1" prog="53" />
+ <Patch name="Strings 2 " hbank="81" lbank="1" prog="54" />
+ <Patch name="Old StringSW" hbank="81" lbank="1" prog="55" />
+ <Patch name="Swim Strings" hbank="81" lbank="1" prog="56" />
+ <Patch name="Eclip-Str" hbank="81" lbank="1" prog="57" />
+ <Patch name="Slow Strings" hbank="81" lbank="1" prog="58" />
+ <Patch name="OB Slow Str " hbank="81" lbank="1" prog="59" />
+ <Patch name="Syn.Strings1" hbank="81" lbank="1" prog="60" />
+ <Patch name="Syn.Strings2" hbank="81" lbank="1" prog="61" />
+ <Patch name="OB Strings" hbank="81" lbank="1" prog="62" />
+ <Patch name="Rhap Strings" hbank="81" lbank="1" prog="63" />
+ <Patch name="Banded Jupe" hbank="81" lbank="1" prog="64" />
+ <Patch name="NU-NRG Str" hbank="81" lbank="1" prog="65" />
+ <Patch name="Violin " hbank="81" lbank="1" prog="66" />
+ <Patch name="Contrabass" hbank="81" lbank="1" prog="67" />
+ <Patch name="Tremolo Str " hbank="81" lbank="1" prog="68" />
+ <Patch name="Pizzicato 1 " hbank="81" lbank="1" prog="69" />
+ <Patch name="Pizzicato 2 " hbank="81" lbank="1" prog="70" />
+ <Patch name="Pizz It " hbank="81" lbank="1" prog="71" />
+ <Patch name="Guardians" hbank="81" lbank="1" prog="72" />
+ <Patch name="Gat Passion " hbank="81" lbank="1" prog="73" />
+ <Patch name="Syn Harp " hbank="81" lbank="1" prog="74" />
+ <Patch name="Voice Oohs" hbank="81" lbank="1" prog="75" />
+ <Patch name="Solo Vox " hbank="81" lbank="1" prog="76" />
+ <Patch name="Syn Vox " hbank="81" lbank="1" prog="77" />
+ <Patch name="Choir Aahs" hbank="81" lbank="1" prog="78" />
+ <Patch name="Space Voice " hbank="81" lbank="1" prog="79" />
+ <Patch name="Star Voice" hbank="81" lbank="1" prog="80" />
+ <Patch name="Brightness" hbank="81" lbank="1" prog="81" />
+ <Patch name="Vox Lead " hbank="81" lbank="1" prog="82" />
+ <Patch name="Auhbient " hbank="81" lbank="1" prog="83" />
+ <Patch name="Auh Luv Rave" hbank="81" lbank="1" prog="84" />
+ <Patch name="PCM Life " hbank="81" lbank="1" prog="85" />
+ <Patch name="Noisevox " hbank="81" lbank="1" prog="86" />
+ <Patch name="Trance Voice" hbank="81" lbank="1" prog="87" />
+ <Patch name="Effect Acer " hbank="81" lbank="1" prog="88" />
+ <Patch name="Alternative " hbank="81" lbank="1" prog="89" />
+ <Patch name="Hard Pure " hbank="81" lbank="1" prog="90" />
+ <Patch name="Metal EF " hbank="81" lbank="1" prog="91" />
+ <Patch name="Dly Tone " hbank="81" lbank="1" prog="92" />
+ <Patch name="Osci Frog " hbank="81" lbank="1" prog="93" />
+ <Patch name="Cal + After " hbank="81" lbank="1" prog="94" />
+ <Patch name="8b Pad " hbank="81" lbank="1" prog="95" />
+ <Patch name="SpaceHighway" hbank="81" lbank="1" prog="96" />
+ <Patch name="Trek Storm" hbank="81" lbank="1" prog="97" />
+ <Patch name="Abduction " hbank="81" lbank="1" prog="98" />
+ <Patch name="1st Contact " hbank="81" lbank="1" prog="99" />
+ <Patch name="Ice Cave " hbank="81" lbank="1" prog="100" />
+ <Patch name="Rev Cord " hbank="81" lbank="1" prog="101" />
+ <Patch name="Blue Random " hbank="81" lbank="1" prog="102" />
+ <Patch name="Sync Tone" hbank="81" lbank="1" prog="103" />
+ <Patch name="Seq Up " hbank="81" lbank="1" prog="104" />
+ <Patch name="SawLFOSaw " hbank="81" lbank="1" prog="105" />
+ <Patch name="Calculating" hbank="81" lbank="1" prog="106" />
+ <Patch name="Touch EF " hbank="81" lbank="1" prog="107" />
+ <Patch name="Welding " hbank="81" lbank="1" prog="108" />
+ <Patch name="Press Machin" hbank="81" lbank="1" prog="109" />
+ <Patch name="EF Tribe " hbank="81" lbank="1" prog="110" />
+ <Patch name="Scratch Alt " hbank="81" lbank="1" prog="111" />
+ <Patch name="Analog FX " hbank="81" lbank="1" prog="112" />
+ <Patch name="Non TB " hbank="81" lbank="1" prog="113" />
+ <Patch name="Nasty Filt" hbank="81" lbank="1" prog="114" />
+ <Patch name="Psy-Ence" hbank="81" lbank="1" prog="115" />
+ <Patch name="Music Hi " hbank="81" lbank="1" prog="116" />
+ <Patch name="Uber Zone " hbank="81" lbank="1" prog="117" />
+ <Patch name="Down Gown " hbank="81" lbank="1" prog="118" />
+ <Patch name="For Giving" hbank="81" lbank="1" prog="119" />
+ <Patch name="Sound Alarm " hbank="81" lbank="1" prog="120" />
+ <Patch name="Acid Drone" hbank="81" lbank="1" prog="121" />
+ <Patch name="X-Mod" hbank="81" lbank="1" prog="122" />
+ <Patch name="X-FM/Org " hbank="81" lbank="1" prog="123" />
+ <Patch name="X-FM Bass " hbank="81" lbank="1" prog="124" />
+ <Patch name="Hard BD? " hbank="81" lbank="1" prog="125" />
+ <Patch name="S&amp;H Voc " hbank="81" lbank="1" prog="126" />
+ <Patch name="X-TlkBxBass " hbank="81" lbank="1" prog="127" />
+ <Patch name="X-Kick/TB" hbank="81" lbank="1" prog="-128" />
+ </PatchGroup>
+ <PatchGroup name="Preset C">
+ <Patch name="X-Org/Nz " hbank="81" lbank="2" prog="1" />
+ <Patch name="X-Pizz/Rng" hbank="81" lbank="2" prog="2" />
+ <Patch name="White Noise" hbank="81" lbank="2" prog="3" />
+ <Patch name="Pink Noise " hbank="81" lbank="2" prog="4" />
+ <Patch name="P5 Noise " hbank="81" lbank="2" prog="5" />
+ <Patch name="Toy Noise " hbank="81" lbank="2" prog="6" />
+ <Patch name="Rezo Noise " hbank="81" lbank="2" prog="7" />
+ <Patch name="Vinyl Noise" hbank="81" lbank="2" prog="8" />
+ <Patch name="Tornado Jet" hbank="81" lbank="2" prog="9" />
+ <Patch name="Smooth Jet " hbank="81" lbank="2" prog="10" />
+ <Patch name="Sweep Noise" hbank="81" lbank="2" prog="11" />
+ <Patch name="ModWhtSweep" hbank="81" lbank="2" prog="12" />
+ <Patch name="Perk Breath" hbank="81" lbank="2" prog="13" />
+ <Patch name="Pink Bomb " hbank="81" lbank="2" prog="14" />
+ <Patch name="64voicePiano" hbank="81" lbank="2" prog="15" />
+ <Patch name="Ac.Piano 1 " hbank="81" lbank="2" prog="16" />
+ <Patch name="Ac.Piano 2 " hbank="81" lbank="2" prog="17" />
+ <Patch name="Epic House " hbank="81" lbank="2" prog="18" />
+ <Patch name="Hush Piano " hbank="81" lbank="2" prog="19" />
+ <Patch name="Happy Piano" hbank="81" lbank="2" prog="20" />
+ <Patch name="BPF Piano " hbank="81" lbank="2" prog="21" />
+ <Patch name="Honky-tonk " hbank="81" lbank="2" prog="22" />
+ <Patch name="NY Piano+Str" hbank="81" lbank="2" prog="23" />
+ <Patch name="Voice Piano" hbank="81" lbank="2" prog="24" />
+ <Patch name="Old E.Piano" hbank="81" lbank="2" prog="25" />
+ <Patch name="E.Piano 1 " hbank="81" lbank="2" prog="26" />
+ <Patch name="E.Piano 2 " hbank="81" lbank="2" prog="27" />
+ <Patch name="Cool Rhodes" hbank="81" lbank="2" prog="28" />
+ <Patch name="Psycho EP " hbank="81" lbank="2" prog="29" />
+ <Patch name="Trip E.Piano" hbank="81" lbank="2" prog="30" />
+ <Patch name="Rotary Rhode" hbank="81" lbank="2" prog="31" />
+ <Patch name="EP-Organ " hbank="81" lbank="2" prog="32" />
+ <Patch name="Harpsichord" hbank="81" lbank="2" prog="33" />
+ <Patch name="Clavi" hbank="81" lbank="2" prog="34" />
+ <Patch name="Digi Clavi " hbank="81" lbank="2" prog="35" />
+ <Patch name="FM Clavi " hbank="81" lbank="2" prog="36" />
+ <Patch name="AnalogClavi1" hbank="81" lbank="2" prog="37" />
+ <Patch name="AnalogClavi2" hbank="81" lbank="2" prog="38" />
+ <Patch name="Funky Clavi" hbank="81" lbank="2" prog="39" />
+ <Patch name="RotaryOrg Sl" hbank="81" lbank="2" prog="40" />
+ <Patch name="RotaryOrg Fs" hbank="81" lbank="2" prog="41" />
+ <Patch name="Gospel Spin" hbank="81" lbank="2" prog="42" />
+ <Patch name="L Org F " hbank="81" lbank="2" prog="43" />
+ <Patch name="Organ 1 " hbank="81" lbank="2" prog="44" />
+ <Patch name="Lp-Hp Organ" hbank="81" lbank="2" prog="45" />
+ <Patch name="Organ 2 " hbank="81" lbank="2" prog="46" />
+ <Patch name="Percsv Organ" hbank="81" lbank="2" prog="47" />
+ <Patch name="Ballad B " hbank="81" lbank="2" prog="48" />
+ <Patch name="FM Club Org" hbank="81" lbank="2" prog="49" />
+ <Patch name="Pop Organ " hbank="81" lbank="2" prog="50" />
+ <Patch name="Cheese Organ" hbank="81" lbank="2" prog="51" />
+ <Patch name="Reed Organ " hbank="81" lbank="2" prog="52" />
+ <Patch name="Telstar" hbank="81" lbank="2" prog="53" />
+ <Patch name="Church Org " hbank="81" lbank="2" prog="54" />
+ <Patch name="Organ Bass" hbank="81" lbank="2" prog="55" />
+ <Patch name="Strict Organ" hbank="81" lbank="2" prog="56" />
+ <Patch name="SmkyChrd Org" hbank="81" lbank="2" prog="57" />
+ <Patch name="Sweep Organ" hbank="81" lbank="2" prog="58" />
+ <Patch name="Accordion " hbank="81" lbank="2" prog="59" />
+ <Patch name="Vibraphone " hbank="81" lbank="2" prog="60" />
+ <Patch name="FM Marimba " hbank="81" lbank="2" prog="61" />
+ <Patch name="Marimba " hbank="81" lbank="2" prog="62" />
+ <Patch name="Xylophone " hbank="81" lbank="2" prog="63" />
+ <Patch name="Balaphone " hbank="81" lbank="2" prog="64" />
+ <Patch name="Timpani " hbank="81" lbank="2" prog="65" />
+ <Patch name="Steel Drum " hbank="81" lbank="2" prog="66" />
+ <Patch name="Digi Bell " hbank="81" lbank="2" prog="67" />
+ <Patch name="Acid Perc" hbank="81" lbank="2" prog="68" />
+ <Patch name="MetaL-SD" hbank="81" lbank="2" prog="69" />
+ <Patch name="Classy Pulse" hbank="81" lbank="2" prog="70" />
+ <Patch name="Glockenspiel" hbank="81" lbank="2" prog="71" />
+ <Patch name="Fanta Bell " hbank="81" lbank="2" prog="72" />
+ <Patch name="Crystal " hbank="81" lbank="2" prog="73" />
+ <Patch name="Tubular-Bell" hbank="81" lbank="2" prog="74" />
+ <Patch name="Shank Bells" hbank="81" lbank="2" prog="75" />
+ <Patch name="MKS-30 Melts" hbank="81" lbank="2" prog="76" />
+ <Patch name="Trip Lead " hbank="81" lbank="2" prog="77" />
+ <Patch name="Steel-Str.Gt" hbank="81" lbank="2" prog="78" />
+ <Patch name="Clean Gtr " hbank="81" lbank="2" prog="79" />
+ <Patch name="Jazz Gtr 1 " hbank="81" lbank="2" prog="80" />
+ <Patch name="Jazz Gtr 2 " hbank="81" lbank="2" prog="81" />
+ <Patch name="Muted Gtr " hbank="81" lbank="2" prog="82" />
+ <Patch name="Lo-Fi Gtr " hbank="81" lbank="2" prog="83" />
+ <Patch name="Terror Dome" hbank="81" lbank="2" prog="84" />
+ <Patch name="Psycho-G" hbank="81" lbank="2" prog="85" />
+ <Patch name="Dist Gtr Chd" hbank="81" lbank="2" prog="86" />
+ <Patch name="Going Bald " hbank="81" lbank="2" prog="87" />
+ <Patch name="Gt.Harmonic1" hbank="81" lbank="2" prog="88" />
+ <Patch name="Gt.Harmonic2" hbank="81" lbank="2" prog="89" />
+ <Patch name="Shafted Gtr" hbank="81" lbank="2" prog="90" />
+ <Patch name="WahGT 2 Menu" hbank="81" lbank="2" prog="91" />
+ <Patch name="Gtr Up" hbank="81" lbank="2" prog="92" />
+ <Patch name="Gtr Down " hbank="81" lbank="2" prog="93" />
+ <Patch name="Gtr Sweep " hbank="81" lbank="2" prog="94" />
+ <Patch name="Orch Gtr" hbank="81" lbank="2" prog="95" />
+ <Patch name="Brass" hbank="81" lbank="2" prog="96" />
+ <Patch name="Bright Brass" hbank="81" lbank="2" prog="97" />
+ <Patch name="Hush Brass " hbank="81" lbank="2" prog="98" />
+ <Patch name="Synth Brass1" hbank="81" lbank="2" prog="99" />
+ <Patch name="Synth Brass2" hbank="81" lbank="2" prog="100" />
+ <Patch name="Synth Brass3" hbank="81" lbank="2" prog="101" />
+ <Patch name="Syn Brs Lead" hbank="81" lbank="2" prog="102" />
+ <Patch name="Obilator " hbank="81" lbank="2" prog="103" />
+ <Patch name="OpenUp Brass" hbank="81" lbank="2" prog="104" />
+ <Patch name="Brass Fall " hbank="81" lbank="2" prog="105" />
+ <Patch name="Trumpet " hbank="81" lbank="2" prog="106" />
+ <Patch name="MutedTrumpet" hbank="81" lbank="2" prog="107" />
+ <Patch name="Soprano Sax" hbank="81" lbank="2" prog="108" />
+ <Patch name="Alto Sax " hbank="81" lbank="2" prog="109" />
+ <Patch name="Baritone Sax" hbank="81" lbank="2" prog="110" />
+ <Patch name="SlideBiteSax" hbank="81" lbank="2" prog="111" />
+ <Patch name="Sax &amp; Tp " hbank="81" lbank="2" prog="112" />
+ <Patch name="Tuba" hbank="81" lbank="2" prog="113" />
+ <Patch name="Syn F.Horn " hbank="81" lbank="2" prog="114" />
+ <Patch name="Oboe" hbank="81" lbank="2" prog="115" />
+ <Patch name="Whistle " hbank="81" lbank="2" prog="116" />
+ <Patch name="Ocarina " hbank="81" lbank="2" prog="117" />
+ <Patch name="Recorder " hbank="81" lbank="2" prog="118" />
+ <Patch name="Jazz SynLead" hbank="81" lbank="2" prog="119" />
+ <Patch name="Solo Flute " hbank="81" lbank="2" prog="120" />
+ <Patch name="Pan Flute " hbank="81" lbank="2" prog="121" />
+ <Patch name="Bottle Blow" hbank="81" lbank="2" prog="122" />
+ <Patch name="Funky Pipe " hbank="81" lbank="2" prog="123" />
+ <Patch name="Breath Noise" hbank="81" lbank="2" prog="124" />
+ <Patch name="Shakuhachi " hbank="81" lbank="2" prog="125" />
+ <Patch name="Sitar 1 " hbank="81" lbank="2" prog="126" />
+ <Patch name="Sitar 2 " hbank="81" lbank="2" prog="127" />
+ <Patch name="Santur" hbank="81" lbank="2" prog="-128" />
+ </PatchGroup>
+ <PatchGroup name="Preset D">
+ <Patch name="Kalimba" hbank="81" lbank="3" prog="1" />
+ <Patch name="Bagpipes" hbank="81" lbank="3" prog="2" />
+ <Patch name="PnoBendM7-m7" hbank="81" lbank="3" prog="3" />
+ <Patch name="Org Chd m7" hbank="81" lbank="3" prog="4" />
+ <Patch name="BalapChd 9th" hbank="81" lbank="3" prog="5" />
+ <Patch name="Wah Gtr Hit" hbank="81" lbank="3" prog="6" />
+ <Patch name="Orch Hit 1" hbank="81" lbank="3" prog="7" />
+ <Patch name="Orch Hit 2" hbank="81" lbank="3" prog="8" />
+ <Patch name="Rave-X-Tasy" hbank="81" lbank="3" prog="9" />
+ <Patch name="Philly Hit 1" hbank="81" lbank="3" prog="10" />
+ <Patch name="Philly Hit 2" hbank="81" lbank="3" prog="11" />
+ <Patch name="Attack Hit" hbank="81" lbank="3" prog="12" />
+ <Patch name="Funky Hit" hbank="81" lbank="3" prog="13" />
+ <Patch name="Tekno ChdHit" hbank="81" lbank="3" prog="14" />
+ <Patch name="Dist Hit" hbank="81" lbank="3" prog="15" />
+ <Patch name="Glasgow Hit" hbank="81" lbank="3" prog="16" />
+ <Patch name="Happy Hit" hbank="81" lbank="3" prog="17" />
+ <Patch name="Scene Hit 1" hbank="81" lbank="3" prog="18" />
+ <Patch name="Scene Hit 2" hbank="81" lbank="3" prog="19" />
+ <Patch name="Drill Hit" hbank="81" lbank="3" prog="20" />
+ <Patch name="Gaia Message" hbank="81" lbank="3" prog="21" />
+ <Patch name="Rezo Perc" hbank="81" lbank="3" prog="22" />
+ <Patch name="Syn Perc" hbank="81" lbank="3" prog="23" />
+ <Patch name="MG Blip" hbank="81" lbank="3" prog="24" />
+ <Patch name="Rev Blip" hbank="81" lbank="3" prog="25" />
+ <Patch name="Air Blip" hbank="81" lbank="3" prog="26" />
+ <Patch name="Radical Perc" hbank="81" lbank="3" prog="27" />
+ <Patch name="Machine" hbank="81" lbank="3" prog="28" />
+ <Patch name="Metal Hit" hbank="81" lbank="3" prog="29" />
+ <Patch name="Tanz Devil" hbank="81" lbank="3" prog="30" />
+ <Patch name="Headz Direkt" hbank="81" lbank="3" prog="31" />
+ <Patch name="ShoppingCart" hbank="81" lbank="3" prog="32" />
+ <Patch name="Noisy Drill" hbank="81" lbank="3" prog="33" />
+ <Patch name="Thump Bounce" hbank="81" lbank="3" prog="34" />
+ <Patch name="Tape Rewind" hbank="81" lbank="3" prog="35" />
+ <Patch name="Stop" hbank="81" lbank="3" prog="36" />
+ <Patch name="Ao!" hbank="81" lbank="3" prog="37" />
+ <Patch name="Ha!" hbank="81" lbank="3" prog="38" />
+ <Patch name="Seashore" hbank="81" lbank="3" prog="39" />
+ <Patch name="Bird" hbank="81" lbank="3" prog="40" />
+ <Patch name="Telephone" hbank="81" lbank="3" prog="41" />
+ <Patch name="Helicopter" hbank="81" lbank="3" prog="42" />
+ <Patch name="Applause" hbank="81" lbank="3" prog="43" />
+ <Patch name="Gun Shot" hbank="81" lbank="3" prog="44" />
+ <Patch name="Machine Gun" hbank="81" lbank="3" prog="45" />
+ <Patch name="Laser Gun" hbank="81" lbank="3" prog="46" />
+ <Patch name="Sci-Fi Laser" hbank="81" lbank="3" prog="47" />
+ <Patch name="Breath" hbank="81" lbank="3" prog="48" />
+ <Patch name="Rain" hbank="81" lbank="3" prog="49" />
+ <Patch name="Siren" hbank="81" lbank="3" prog="50" />
+ <Patch name="TR909 Tom" hbank="81" lbank="3" prog="51" />
+ <Patch name="TR808 Tom" hbank="81" lbank="3" prog="52" />
+ <Patch name="Syn Tom 1" hbank="81" lbank="3" prog="53" />
+ <Patch name="Syn Tom 2" hbank="81" lbank="3" prog="54" />
+ <Patch name="Old Syn Tom" hbank="81" lbank="3" prog="55" />
+ <Patch name="Taiko" hbank="81" lbank="3" prog="56" />
+ <Patch name="Slow Down" hbank="81" lbank="3" prog="57" />
+ <Patch name="Boom Drop" hbank="81" lbank="3" prog="58" />
+ <Patch name="B-Tom-D" hbank="81" lbank="3" prog="59" />
+ <Patch name="Mr.Bong Bass" hbank="81" lbank="3" prog="60" />
+ <Patch name="Friends of 0" hbank="81" lbank="3" prog="61" />
+ <Patch name="Latin Perc" hbank="81" lbank="3" prog="62" />
+ <Patch name="Bongo Fury" hbank="81" lbank="3" prog="63" />
+ <Patch name="High Timbale" hbank="81" lbank="3" prog="64" />
+ <Patch name="MutePandeiro" hbank="81" lbank="3" prog="65" />
+ <Patch name="Open Surdo" hbank="81" lbank="3" prog="66" />
+ <Patch name="Brazil Perc" hbank="81" lbank="3" prog="67" />
+ <Patch name="Tablabaya" hbank="81" lbank="3" prog="68" />
+ <Patch name="Mute Cuica" hbank="81" lbank="3" prog="69" />
+ <Patch name="Long Whistle" hbank="81" lbank="3" prog="70" />
+ <Patch name="Agogo" hbank="81" lbank="3" prog="71" />
+ <Patch name="Short Tamb" hbank="81" lbank="3" prog="72" />
+ <Patch name="808 Cowbell" hbank="81" lbank="3" prog="73" />
+ <Patch name="CR78 Cowbell" hbank="81" lbank="3" prog="74" />
+ <Patch name="CR78 Beat" hbank="81" lbank="3" prog="75" />
+ <Patch name="Wind-Chime" hbank="81" lbank="3" prog="76" />
+ <Patch name="Rim Shot" hbank="81" lbank="3" prog="77" />
+ <Patch name="TR909 Rim" hbank="81" lbank="3" prog="78" />
+ <Patch name="Hyoshigi" hbank="81" lbank="3" prog="79" />
+ <Patch name="TR626 Shaker" hbank="81" lbank="3" prog="80" />
+ <Patch name="727 Quijada" hbank="81" lbank="3" prog="81" />
+ <Patch name="Real CH" hbank="81" lbank="3" prog="82" />
+ <Patch name="TR909 OH" hbank="81" lbank="3" prog="83" />
+ <Patch name="Syn OH" hbank="81" lbank="3" prog="84" />
+ <Patch name="TR909 Crash" hbank="81" lbank="3" prog="85" />
+ <Patch name="Reverse Cym." hbank="81" lbank="3" prog="86" />
+ <Patch name="Asian Gong" hbank="81" lbank="3" prog="87" />
+ <Patch name="TR808 Clap" hbank="81" lbank="3" prog="88" />
+ <Patch name="Down Clap" hbank="81" lbank="3" prog="89" />
+ <Patch name="Clap Tail" hbank="81" lbank="3" prog="90" />
+ <Patch name="Rap&amp;Real Clp" hbank="81" lbank="3" prog="91" />
+ <Patch name="Maddening" hbank="81" lbank="3" prog="92" />
+ <Patch name="TR909 Snare" hbank="81" lbank="3" prog="93" />
+ <Patch name="TR808 Snare" hbank="81" lbank="3" prog="94" />
+ <Patch name="House Snare" hbank="81" lbank="3" prog="95" />
+ <Patch name="Jungle Snr 1" hbank="81" lbank="3" prog="96" />
+ <Patch name="Jungle Snr 2" hbank="81" lbank="3" prog="97" />
+ <Patch name="TR808 Kick" hbank="81" lbank="3" prog="98" />
+ <Patch name="Plastic BD" hbank="81" lbank="3" prog="99" />
+ <Patch name="Gate Kick" hbank="81" lbank="3" prog="100" />
+ <Patch name="Jungle Kick" hbank="81" lbank="3" prog="101" />
+ <Patch name="Scrtch/Vo Mn" hbank="81" lbank="3" prog="102" />
+ <Patch name="Flexi Vox Mn" hbank="81" lbank="3" prog="103" />
+ <Patch name="Hit Menu" hbank="81" lbank="3" prog="104" />
+ <Patch name="Indust Menu" hbank="81" lbank="3" prog="105" />
+ <Patch name="Tom Menu" hbank="81" lbank="3" prog="106" />
+ <Patch name="Percus1 Menu" hbank="81" lbank="3" prog="107" />
+ <Patch name="Percus2 Menu" hbank="81" lbank="3" prog="108" />
+ <Patch name="Cowbell Menu" hbank="81" lbank="3" prog="109" />
+ <Patch name="Shaker+ Menu" hbank="81" lbank="3" prog="110" />
+ <Patch name="Rim Menu" hbank="81" lbank="3" prog="111" />
+ <Patch name="Cymbal Menu" hbank="81" lbank="3" prog="112" />
+ <Patch name="CHH 1 Menu" hbank="81" lbank="3" prog="113" />
+ <Patch name="CHH 2 Menu" hbank="81" lbank="3" prog="114" />
+ <Patch name="PHH Menu" hbank="81" lbank="3" prog="115" />
+ <Patch name="OHH 1 Menu" hbank="81" lbank="3" prog="116" />
+ <Patch name="OHH 2 Menu" hbank="81" lbank="3" prog="117" />
+ <Patch name="Clap 1 Menu" hbank="81" lbank="3" prog="118" />
+ <Patch name="Clap 2 Menu" hbank="81" lbank="3" prog="119" />
+ <Patch name="Snare 1 Menu" hbank="81" lbank="3" prog="120" />
+ <Patch name="Snare 2 Menu" hbank="81" lbank="3" prog="121" />
+ <Patch name="Snare 3 Menu" hbank="81" lbank="3" prog="122" />
+ <Patch name="Snare 4 Menu" hbank="81" lbank="3" prog="123" />
+ <Patch name="Snare 5 Menu" hbank="81" lbank="3" prog="124" />
+ <Patch name="Snare 6 Menu" hbank="81" lbank="3" prog="125" />
+ <Patch name="Kick 1 Menu" hbank="81" lbank="3" prog="126" />
+ <Patch name="Kick 2 Menu" hbank="81" lbank="3" prog="127" />
+ <Patch name="Kick 3 Menu" hbank="81" lbank="3" prog="-128" />
+ </PatchGroup>
+ <PatchGroup name="Drum 505">
+ <Patch name="TR-909" hbank="81" lbank="0" prog="1" drum="1" />
+ <Patch name="TR-808" hbank="81" lbank="0" prog="2" drum="1" />
+ <Patch name="TR-606" hbank="81" lbank="0" prog="3" drum="1" />
+ <Patch name="CR78&amp;Cheaps" hbank="81" lbank="0" prog="4" drum="1" />
+ <Patch name="Techno 1" hbank="81" lbank="0" prog="5" drum="1" />
+ <Patch name="Techno 2" hbank="81" lbank="0" prog="6" drum="1" />
+ <Patch name="Techno 3" hbank="81" lbank="0" prog="7" drum="1" />
+ <Patch name="Hardcore" hbank="81" lbank="0" prog="8" drum="1" />
+ <Patch name="Ambient" hbank="81" lbank="0" prog="9" drum="1" />
+ <Patch name="House 1" hbank="81" lbank="0" prog="10" drum="1" />
+ <Patch name="House 2" hbank="81" lbank="0" prog="11" drum="1" />
+ <Patch name="Jungle" hbank="81" lbank="0" prog="12" drum="1" />
+ <Patch name="Drum n bass 1" hbank="81" lbank="0" prog="13" drum="1" />
+ <Patch name="Drum n bass 2" hbank="81" lbank="0" prog="14" drum="1" />
+ <Patch name="Hip-Hop 1" hbank="81" lbank="0" prog="15" drum="1" />
+ <Patch name="Hip-Hop 2" hbank="81" lbank="0" prog="16" drum="1" />
+ <Patch name="Funk" hbank="81" lbank="0" prog="17" drum="1" />
+ <Patch name="Electro" hbank="81" lbank="0" prog="18" drum="1" />
+ <Patch name="Jazz" hbank="81" lbank="0" prog="19" drum="1" />
+ <Patch name="Brush" hbank="81" lbank="0" prog="20" drum="1" />
+ <Patch name="Disco" hbank="81" lbank="0" prog="21" drum="1" />
+ <Patch name="Ragga" hbank="81" lbank="0" prog="22" drum="1" />
+ <Patch name="Rock" hbank="81" lbank="0" prog="23" drum="1" />
+ <Patch name="Industrial" hbank="81" lbank="0" prog="24" drum="1" />
+ <Patch name="Ethnic" hbank="81" lbank="0" prog="25" drum="1" />
+ <Patch name="Reverse" hbank="81" lbank="0" prog="26" drum="1" />
+ </PatchGroup>
+ <Controller name="Program" type="Program" />
+ </MidiInstrument>
+</muse>
diff --git a/muse2/share/instruments/Makefile.am b/muse2/share/instruments/Makefile.am
new file mode 100644
index 00000000..f7f82479
--- /dev/null
+++ b/muse2/share/instruments/Makefile.am
@@ -0,0 +1,5 @@
+EXTRA_DIST = $(wildcard *.idf)
+
+instrumentspkgdata_DATA = $(EXTRA_DIST)
+
+instrumentspkgdatadir = $(pkgdatadir)/instruments
diff --git a/muse2/share/instruments/Makefile.in b/muse2/share/instruments/Makefile.in
new file mode 100644
index 00000000..1e37754b
--- /dev/null
+++ b/muse2/share/instruments/Makefile.in
@@ -0,0 +1,466 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = share/instruments
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal-include.m4 \
+ $(top_srcdir)/m4/alsa.m4 $(top_srcdir)/m4/docbook.m4 \
+ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
+ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
+ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+SOURCES =
+DIST_SOURCES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__installdirs = "$(DESTDIR)$(instrumentspkgdatadir)"
+DATA = $(instrumentspkgdata_DATA)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ALSA_CFLAGS = @ALSA_CFLAGS@
+ALSA_LIBS = @ALSA_LIBS@
+AMTAR = @AMTAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DOCBOOKSTYLE = @DOCBOOKSTYLE@
+DOCBOOKTARGETS = @DOCBOOKTARGETS@
+DOT = @DOT@
+DOTPATH = @DOTPATH@
+DOXYGEN = @DOXYGEN@
+DOXYGEN_TREEVIEW = @DOXYGEN_TREEVIEW@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+FLUIDSYNTHDIRS = @FLUIDSYNTHDIRS@
+FST_CFLAGS = @FST_CFLAGS@
+FST_LIBS = @FST_LIBS@
+Fluidsynth_CFLAGS = @Fluidsynth_CFLAGS@
+Fluidsynth_LIBS = @Fluidsynth_LIBS@
+GIVERTCAP = @GIVERTCAP@
+GREP = @GREP@
+HAVEDOT = @HAVEDOT@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JACK_CFLAGS = @JACK_CFLAGS@
+JACK_LIBS = @JACK_LIBS@
+JADE = @JADE@
+LASH_CFLAGS = @LASH_CFLAGS@
+LASH_LIBS = @LASH_LIBS@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LO_CFLAGS = @LO_CFLAGS@
+LO_LIBS = @LO_LIBS@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+MUSECXXFLAGS = @MUSECXXFLAGS@
+NM = @NM@
+NMEDIT = @NMEDIT@
+NSGMLS = @NSGMLS@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PCH = @PCH@
+PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+PYTHON = @PYTHON@
+PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
+PYTHON_INCLUDES = @PYTHON_INCLUDES@
+PYTHON_LIB = @PYTHON_LIB@
+PYTHON_PLATFORM = @PYTHON_PLATFORM@
+PYTHON_PREFIX = @PYTHON_PREFIX@
+PYTHON_VERSION = @PYTHON_VERSION@
+QTDIR_BIN = @QTDIR_BIN@
+QTDIR_INC = @QTDIR_INC@
+QT_LIBS = @QT_LIBS@
+RANLIB = @RANLIB@
+SAMPLERATE_CFLAGS = @SAMPLERATE_CFLAGS@
+SAMPLERATE_LIBS = @SAMPLERATE_LIBS@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SNDFILE_CFLAGS = @SNDFILE_CFLAGS@
+SNDFILE_LIBS = @SNDFILE_LIBS@
+STRIP = @STRIP@
+SUIDBUILD = @SUIDBUILD@
+SUIDINSTALL = @SUIDINSTALL@
+USE_SSE = @USE_SSE@
+UUID_CFLAGS = @UUID_CFLAGS@
+UUID_LIBS = @UUID_LIBS@
+VERSION = @VERSION@
+XMKMF = @XMKMF@
+X_CFLAGS = @X_CFLAGS@
+X_EXTRA_LIBS = @X_EXTRA_LIBS@
+X_LIBS = @X_LIBS@
+X_PRE_LIBS = @X_PRE_LIBS@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+have_docbook = @have_docbook@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+lt_ECHO = @lt_ECHO@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+pkgpyexecdir = @pkgpyexecdir@
+pkgpythondir = @pkgpythondir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+pyexecdir = @pyexecdir@
+pythondir = @pythondir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+synth_fluid = @synth_fluid@
+synth_fluidsynth = @synth_fluidsynth@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+EXTRA_DIST = $(wildcard *.idf)
+instrumentspkgdata_DATA = $(EXTRA_DIST)
+instrumentspkgdatadir = $(pkgdatadir)/instruments
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu share/instruments/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu share/instruments/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+install-instrumentspkgdataDATA: $(instrumentspkgdata_DATA)
+ @$(NORMAL_INSTALL)
+ test -z "$(instrumentspkgdatadir)" || $(MKDIR_P) "$(DESTDIR)$(instrumentspkgdatadir)"
+ @list='$(instrumentspkgdata_DATA)'; test -n "$(instrumentspkgdatadir)" || list=; \
+ for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(instrumentspkgdatadir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(instrumentspkgdatadir)" || exit $$?; \
+ done
+
+uninstall-instrumentspkgdataDATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(instrumentspkgdata_DATA)'; test -n "$(instrumentspkgdatadir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ test -n "$$files" || exit 0; \
+ echo " ( cd '$(DESTDIR)$(instrumentspkgdatadir)' && rm -f" $$files ")"; \
+ cd "$(DESTDIR)$(instrumentspkgdatadir)" && rm -f $$files
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile $(DATA)
+installdirs:
+ for dir in "$(DESTDIR)$(instrumentspkgdatadir)"; do \
+ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-instrumentspkgdataDATA
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-instrumentspkgdataDATA
+
+.MAKE: install-am install-strip
+
+.PHONY: all all-am check check-am clean clean-generic clean-libtool \
+ distclean distclean-generic distclean-libtool distdir dvi \
+ dvi-am html html-am info info-am install install-am \
+ install-data install-data-am install-dvi install-dvi-am \
+ install-exec install-exec-am install-html install-html-am \
+ install-info install-info-am install-instrumentspkgdataDATA \
+ install-man install-pdf install-pdf-am install-ps \
+ install-ps-am install-strip installcheck installcheck-am \
+ installdirs maintainer-clean maintainer-clean-generic \
+ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
+ ps ps-am uninstall uninstall-am \
+ uninstall-instrumentspkgdataDATA
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/muse2/share/instruments/Roland-E28.idf b/muse2/share/instruments/Roland-E28.idf
new file mode 100644
index 00000000..dd96fdd7
--- /dev/null
+++ b/muse2/share/instruments/Roland-E28.idf
@@ -0,0 +1,309 @@
+<?xml version="1.0"?>
+<muse version="1.0">
+ <MidiInstrument name="Roland E-28" nullparam="32639">
+ <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" drum="1" />
+ <Patch name="Room" hbank="0" lbank="0" prog="8" drum="1" />
+ <Patch name="Power" hbank="0" lbank="0" prog="16" drum="1" />
+ <Patch name="Electric" hbank="0" lbank="0" prog="24" drum="1" />
+ <Patch name="808" hbank="0" lbank="0" prog="25" drum="1" />
+ <Patch name="Jazz" hbank="0" lbank="0" prog="32" drum="1" />
+ <Patch name="Brush" hbank="0" lbank="0" prog="40" drum="1" />
+ <Patch name="Orchestra" hbank="0" lbank="0" prog="48" drum="1" />
+ <Patch name="SFX" hbank="0" lbank="0" prog="56" drum="1" />
+ </PatchGroup>
+ <Controller name="Modulation" l="1" />
+ <Controller name="PortamentoTime" l="5" />
+ <Controller name="MainVolume" l="7" init="100" />
+ <Controller name="Pan" l="10" min="-64" max="63" init="0" />
+ <Controller name="Expression" l="11" />
+ <Controller name="Sustain" l="64" />
+ <Controller name="Portamento" l="65" />
+ <Controller name="Sostenuto" l="66" />
+ <Controller name="SoftPedal" l="67" />
+ <Controller name="PortamentoControl" l="84" />
+ <Controller name="Effect1Depth" l="91" />
+ <Controller name="Effect3Depth" l="93" />
+ <Controller name="AllSoundsOff" l="120" max="0" />
+ <Controller name="ResetAllController" l="121" max="0" />
+ <Controller name="AllNotesOff" l="123" max="0" />
+ <Controller name="Omni off" l="124" max="0" />
+ <Controller name="Mono" l="126" max="0" />
+ <Controller name="Poly" l="127" max="0" />
+ <Controller name="PitchBendSensitivity" type="RPN" h="0" l="0" max="24" init="2" />
+ <Controller name="FineTuning" type="RPN" h="0" l="1" min="-64" max="64" init="0" />
+ <Controller name="CoarseTuning" type="RPN" h="0" l="2" min="-24" max="23" />
+ <Controller name="RPN null" type="RPN" h="127" l="127" max="0" />
+ <Controller name="VibratoRate" type="NRPN" h="1" l="8" />
+ <Controller name="VibratoDepth" type="NRPN" h="1" l="9" />
+ <Controller name="VibratoDelay" type="NRPN" h="1" l="10" />
+ <Controller name="FilterCutoffFreq" type="NRPN" h="1" l="32" />
+ <Controller name="FilterResonance" type="NRPN" h="1" l="33" />
+ <Controller name="AttackRate" type="NRPN" h="1" l="99" />
+ <Controller name="DecayRate" type="NRPN" h="1" l="100" />
+ <Controller name="ReleaseRate" type="NRPN" h="1" l="102" />
+ <Controller name="DrumPitchCoarseTune" type="NRPN" h="24" l="pitch" min="-64" max="63" />
+ <Controller name="DrumLevel" type="NRPN" h="26" l="pitch" />
+ <Controller name="DrumPanpot" type="NRPN" h="28" l="pitch" min="-64" max="63" />
+ <Controller name="DrumReverbSend" type="NRPN" h="29" l="pitch" />
+ <Controller name="DrumChorusSend" type="NRPN" h="30" l="pitch" />
+ <Controller name="Pitch" type="Pitch" />
+ <Controller name="Program" type="Program" />
+ </MidiInstrument>
+</muse>
diff --git a/muse2/share/instruments/Roland-SCD70.idf b/muse2/share/instruments/Roland-SCD70.idf
new file mode 100644
index 00000000..f85668fc
--- /dev/null
+++ b/muse2/share/instruments/Roland-SCD70.idf
@@ -0,0 +1,1371 @@
+<?xml version="1.0"?>
+<muse version="1.0">
+ <MidiInstrument name="Roland SC-D70" nullparam="32639">
+ <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.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" drum="1" />
+ <Patch name="Standard 2" hbank="1" lbank="0" prog="1" drum="1" />
+ <Patch name="Standard L/R" hbank="1" lbank="0" prog="2" drum="1" />
+ <Patch name="Room" hbank="1" lbank="0" prog="8" drum="1" />
+ <Patch name="Hip Hop" hbank="1" lbank="0" prog="9" drum="1" />
+ <Patch name="Jungle" hbank="1" lbank="0" prog="10" drum="1" />
+ <Patch name="Techno" hbank="1" lbank="0" prog="11" drum="1" />
+ <Patch name="Room L/R" hbank="1" lbank="0" prog="12" drum="1" />
+ <Patch name="House" hbank="1" lbank="0" prog="12" drum="1" />
+ <Patch name="Power" hbank="1" lbank="0" prog="16" drum="1" />
+ <Patch name="Electronic" hbank="1" lbank="0" prog="24" drum="1" />
+ <Patch name="TR 808" hbank="1" lbank="0" prog="25" drum="1" />
+ <Patch name="Dance" hbank="1" lbank="0" prog="26" drum="1" />
+ <Patch name="CR-78" hbank="1" lbank="0" prog="27" drum="1" />
+ <Patch name="TR 606" hbank="1" lbank="0" prog="28" drum="1" />
+ <Patch name="TR 707" hbank="1" lbank="0" prog="29" drum="1" />
+ <Patch name="TR 909" hbank="1" lbank="0" prog="30" drum="1" />
+ <Patch name="Jazz" hbank="1" lbank="0" prog="32" drum="1" />
+ <Patch name="Jazz L/R" hbank="1" lbank="0" prog="33" drum="1" />
+ <Patch name="Brush" hbank="1" lbank="0" prog="40" drum="1" />
+ <Patch name="Brush 2" hbank="1" lbank="0" prog="41" drum="1" />
+ <Patch name="Brush 2 L/R" hbank="1" lbank="0" prog="42" drum="1" />
+ <Patch name="Orchestra" hbank="1" lbank="0" prog="48" drum="1" />
+ <Patch name="Ethnic" hbank="1" lbank="0" prog="49" drum="1" />
+ <Patch name="Kick + Snare" hbank="1" lbank="0" prog="50" drum="1" />
+ <Patch name="Kick + Snare 2" hbank="1" lbank="0" prog="51" drum="1" />
+ <Patch name="Asia" hbank="1" lbank="0" prog="52" drum="1" />
+ <Patch name="Cymbals + Claps" hbank="1" lbank="0" prog="53" drum="1" />
+ <Patch name="Gamelan 1" hbank="1" lbank="0" prog="54" drum="1" />
+ <Patch name="Gamelan 2" hbank="1" lbank="0" prog="55" drum="1" />
+ <Patch name="SFX" hbank="1" lbank="0" prog="56" drum="1" />
+ <Patch name="Rhythm FX" hbank="1" lbank="0" prog="57" drum="1" />
+ <Patch name="Rhythm FX 2" hbank="1" lbank="0" prog="58" drum="1" />
+ <Patch name="Rhythm FX 3" hbank="1" lbank="0" prog="59" drum="1" />
+ <Patch name="SFX 2" hbank="1" lbank="0" prog="60" drum="1" />
+ <Patch name="Voice" hbank="1" lbank="0" prog="61" drum="1" />
+ <Patch name="Cym+Claps 2" hbank="1" lbank="0" prog="62" drum="1" />
+ </PatchGroup>
+ <Controller name="Modulation" l="1" />
+ <Controller name="PortamentoTime" l="5" />
+ <Controller name="MainVolume" l="7" init="100" />
+ <Controller name="Pan" l="10" min="-64" max="63" init="0" />
+ <Controller name="Expression" l="11" init="127" />
+ <Controller name="GenPurpose1" l="16" />
+ <Controller name="GenPurpose2" l="17" />
+ <Controller name="GenPurpose3" l="18" />
+ <Controller name="GenPurpose4" l="19" />
+ <Controller name="Sustain" l="64" />
+ <Controller name="Portamento" l="65" />
+ <Controller name="Sostenuto" l="66" />
+ <Controller name="SoftPedal" l="67" />
+ <Controller name="Resonance" l="71" />
+ <Controller name="ReleaseTime" l="72" />
+ <Controller name="AttackTime" l="73" />
+ <Controller name="Cutoff" l="74" />
+ <Controller name="DecayTime" l="75" />
+ <Controller name="VibratoRate" l="76" />
+ <Controller name="VibratoDepth" l="77" />
+ <Controller name="VibratoDelay" l="78" />
+ <Controller name="PortamentoControl" l="84" />
+ <Controller name="ReverbSend" l="91" init="0" />
+ <Controller name="ChorusSend" l="93" init="0" />
+ <Controller name="DelaySend" l="94" />
+ <Controller name="AllSoundsOff" l="120" />
+ <Controller name="ResetAllController" l="121" />
+ <Controller name="AllNotesOff" l="123" />
+ <Controller name="PitchBendSensitivity" type="RPN" h="0" l="0" max="24" init="2" />
+ <Controller name="FineTuning" type="RPN" h="0" l="1" min="-64" max="63" init="0" />
+ <Controller name="Pitch" type="Pitch" />
+ <Controller name="Program" type="Program" />
+ </MidiInstrument>
+</muse>
diff --git a/muse2/share/instruments/Roland-XP30.idf b/muse2/share/instruments/Roland-XP30.idf
new file mode 100644
index 00000000..4b176a17
--- /dev/null
+++ b/muse2/share/instruments/Roland-XP30.idf
@@ -0,0 +1,1591 @@
+<?xml version="1.0"?>
+<muse version="1.0">
+ <MidiInstrument name="Roland XP-30">
+ <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;RED;-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 ;==; 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 =-; (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="Rhythm (Ch 10 only)">
+ <Patch name="House Drum Set 1" hbank="80" lbank="0" prog="0" drum="1" />
+ <Patch name="Jazz Drum Set 1" hbank="80" lbank="0" prog="1" drum="1" />
+ <Patch name="Pop Drum Set 1" hbank="81" lbank="0" prog="0" drum="1" />
+ <Patch name="Pop Drum Set 2" hbank="81" lbank="0" prog="1" drum="1" />
+ <Patch name="Power Drum Set" hbank="81" lbank="1" prog="0" drum="1" />
+ <Patch name="Rave Drum Set" hbank="81" lbank="1" prog="1" drum="1" />
+ <Patch name="Jazz Drum Set 2" hbank="81" lbank="2" prog="0" drum="1" />
+ <Patch name="Orch Drum Set" hbank="81" lbank="2" prog="1" drum="1" />
+ <Patch name="GM Drum Set" hbank="81" lbank="3" prog="0" drum="1" />
+ <Patch name="Brush Drum Set" hbank="81" lbank="3" prog="1" drum="1" />
+ <Patch name="Power Drum Set 2" hbank="81" lbank="4" prog="0" drum="1" />
+ <Patch name="Power Rave Set" hbank="81" lbank="4" prog="1" drum="1" />
+ <Patch name="Session Set 1" hbank="84" lbank="0" prog="0" drum="1" />
+ <Patch name="Session Set 2" hbank="84" lbank="0" prog="1" drum="1" />
+ <Patch name="Session Set 3" hbank="84" lbank="0" prog="2" drum="1" />
+ <Patch name="Session Set 4" hbank="84" lbank="0" prog="3" drum="1" />
+ <Patch name="Session Set 5" hbank="84" lbank="0" prog="4" drum="1" />
+ <Patch name="Session Set 6" hbank="84" lbank="0" prog="5" drum="1" />
+ <Patch name="Session Set 7" hbank="84" lbank="0" prog="6" drum="1" />
+ <Patch name="Demo Drum" hbank="84" lbank="0" prog="7" drum="1" />
+ <Patch name="TR-909 Set" hbank="84" lbank="4" prog="0" drum="1" />
+ <Patch name="TR-808 Set" hbank="84" lbank="4" prog="1" drum="1" />
+ <Patch name="TR-606 Set" hbank="84" lbank="4" prog="2" drum="1" />
+ <Patch name="Techno Set" hbank="84" lbank="4" prog="3" drum="1" />
+ <Patch name="House Set" hbank="84" lbank="4" prog="4" drum="1" />
+ <Patch name="Jungle Set" hbank="84" lbank="4" prog="5" drum="1" />
+ <Patch name="Gabba Set 1" hbank="84" lbank="4" prog="6" drum="1" />
+ <Patch name="Industrial Set 1" hbank="84" lbank="4" prog="7" drum="1" />
+ </PatchGroup>
+ <Controller name="Program" type="Program" />
+ </MidiInstrument>
+</muse>
diff --git a/muse2/share/instruments/Roland_FantomXR.idf b/muse2/share/instruments/Roland_FantomXR.idf
new file mode 100755
index 00000000..684e2cc0
--- /dev/null
+++ b/muse2/share/instruments/Roland_FantomXR.idf
@@ -0,0 +1,1387 @@
+<?xml version="1.0"?>
+<muse version="1.0">
+ <MidiInstrument name="Roland Fantom XR">
+ <PatchGroup name="GM2 Drum Kits">
+ <Patch name="GM2 STANDARD" mode="7" hbank="120" lbank="0" prog="0" drum="1" />
+ <Patch name="GM2 ROOM" mode="7" hbank="120" lbank="0" prog="8" drum="1" />
+ <Patch name="GM2 POWER" mode="7" hbank="120" lbank="0" prog="16" drum="1" />
+ <Patch name="GM2 ELECTRIC" mode="7" hbank="120" lbank="0" prog="24" drum="1" />
+ <Patch name="GM2 ANALOG" mode="7" hbank="120" lbank="0" prog="25" drum="1" />
+ <Patch name="GM2 JAZZ" mode="7" hbank="120" lbank="0" prog="32" drum="1" />
+ <Patch name="GM2 BRUSH" mode="7" hbank="120" lbank="0" prog="40" drum="1" />
+ <Patch name="GM2 ORCHESTRA" mode="7" hbank="120" lbank="0" prog="48" drum="1" />
+ <Patch name="GM2 SFX" mode="7" hbank="120" lbank="0" prog="56" drum="1" />
+ </PatchGroup>
+ <PatchGroup name="GM2 Acoustic Piano">
+ <Patch name="Piano 1" mode="7" hbank="121" lbank="0" prog="0" />
+ <Patch name="Piano 1w" mode="7" hbank="121" lbank="1" prog="0" />
+ <Patch name="European Pf" mode="7" hbank="121" lbank="2" prog="0" />
+ <Patch name="Piano 2" mode="7" hbank="121" lbank="0" prog="1" />
+ <Patch name="Piano 2w" mode="7" hbank="121" lbank="1" prog="1" />
+ <Patch name="Piano 3" mode="7" hbank="121" lbank="0" prog="2" />
+ <Patch name="Piano 3w" mode="7" hbank="121" lbank="1" prog="2" />
+ <Patch name="Honky-tonk" mode="7" hbank="121" lbank="0" prog="3" />
+ <Patch name="Honky-tonk 2" mode="7" hbank="121" lbank="1" prog="3" />
+ </PatchGroup>
+ <PatchGroup name="GM2 Electric Piano">
+ <Patch name="E.Piano 1" mode="7" hbank="121" lbank="0" prog="4" />
+ <Patch name="St.Soft EP" mode="7" hbank="121" lbank="1" prog="4" />
+ <Patch name="FM+SA EP" mode="7" hbank="121" lbank="2" prog="4" />
+ <Patch name="60s Rhodes" mode="7" hbank="121" lbank="3" prog="4" />
+ <Patch name="E.Piano 2" mode="7" hbank="121" lbank="0" prog="5" />
+ <Patch name="Detuned EP 2" mode="7" hbank="121" lbank="1" prog="5" />
+ <Patch name="St.FM EP" mode="7" hbank="121" lbank="2" prog="5" />
+ <Patch name="EP Legend" mode="7" hbank="121" lbank="3" prog="5" />
+ <Patch name="EP Phase" mode="7" hbank="121" lbank="4" prog="5" />
+ </PatchGroup>
+ <PatchGroup name="GM2 Keyboards">
+ <Patch name="Harpsichord" mode="7" hbank="121" lbank="0" prog="6" />
+ <Patch name="Coupled Hps." mode="7" hbank="121" lbank="1" prog="6" />
+ <Patch name="Harpsi.w" mode="7" hbank="121" lbank="2" prog="6" />
+ <Patch name="Harpsi.o" mode="7" hbank="121" lbank="3" prog="6" />
+ <Patch name="Clav." mode="7" hbank="121" lbank="0" prog="7" />
+ <Patch name="Pulse Clav" mode="7" hbank="121" lbank="1" prog="7" />
+ </PatchGroup>
+ <PatchGroup name="GM2 Mallet">
+ <Patch name="Celesta" mode="7" hbank="121" lbank="0" prog="8" />
+ <Patch name="Glockenspiel" mode="7" hbank="121" lbank="0" prog="9" />
+ <Patch name="Music Box" mode="7" hbank="121" lbank="0" prog="10" />
+ <Patch name="Vibraphone" mode="7" hbank="121" lbank="0" prog="11" />
+ <Patch name="Vibraphone w" mode="7" hbank="121" lbank="1" prog="11" />
+ <Patch name="Marimba" mode="7" hbank="121" lbank="0" prog="12" />
+ <Patch name="Marimba w" mode="7" hbank="121" lbank="1" prog="12" />
+ <Patch name="Xylophone" mode="7" hbank="121" lbank="0" prog="13" />
+ <Patch name="Tubular-bell" mode="7" hbank="121" lbank="0" prog="14" />
+ <Patch name="Church Bell" mode="7" hbank="121" lbank="1" prog="14" />
+ <Patch name="Carillon" mode="7" hbank="121" lbank="2" prog="14" />
+ <Patch name="Santur" mode="7" hbank="121" lbank="0" prog="15" />
+ </PatchGroup>
+ <PatchGroup name="GM2 Organ and Reed">
+ <Patch name="Organ 1" mode="7" hbank="121" lbank="0" prog="16" />
+ <Patch name="Trem. Organ" mode="7" hbank="121" lbank="1" prog="16" />
+ <Patch name="60s Organ" mode="7" hbank="121" lbank="2" prog="16" />
+ <Patch name="70s E.Organ" mode="7" hbank="121" lbank="3" prog="16" />
+ <Patch name="Organ 2" mode="7" hbank="121" lbank="0" prog="17" />
+ <Patch name="Chorus Or.2" mode="7" hbank="121" lbank="1" prog="17" />
+ <Patch name="Perc. Organ" mode="7" hbank="121" lbank="2" prog="17" />
+ <Patch name="Organ 3" mode="7" hbank="121" lbank="0" prog="18" />
+ <Patch name="Church Org.1" mode="7" hbank="121" lbank="0" prog="19" />
+ <Patch name="Church Org.3" mode="7" hbank="121" lbank="2" prog="19" />
+ <Patch name="Church Org.2" mode="7" hbank="121" lbank="1" prog="19" />
+ <Patch name="Reed Organ" mode="7" hbank="121" lbank="0" prog="20" />
+ <Patch name="Puff Organ" mode="7" hbank="121" lbank="1" prog="20" />
+ <Patch name="Accordion Fr" mode="7" hbank="121" lbank="0" prog="21" />
+ <Patch name="Accordion It" mode="7" hbank="121" lbank="1" prog="21" />
+ <Patch name="Harmonica" mode="7" hbank="121" lbank="0" prog="22" />
+ <Patch name="Bandoneon" mode="7" hbank="121" lbank="0" prog="23" />
+ </PatchGroup>
+ <PatchGroup name="GM2 Guitar">
+ <Patch name="Nylon-str.Gt" mode="7" hbank="121" lbank="0" prog="24" />
+ <Patch name="Ukulele" mode="7" hbank="121" lbank="1" prog="24" />
+ <Patch name="Nylon Gt.o" mode="7" hbank="121" lbank="2" prog="24" />
+ <Patch name="Nylon Gt.2" mode="7" hbank="121" lbank="3" prog="24" />
+ <Patch name="Steel-str.Gt" mode="7" hbank="121" lbank="0" prog="25" />
+ <Patch name="12-str.Gt" mode="7" hbank="121" lbank="1" prog="25" />
+ <Patch name="Mandolin" mode="7" hbank="121" lbank="2" prog="25" />
+ <Patch name="Steel + Body" mode="7" hbank="121" lbank="3" prog="25" />
+ <Patch name="Jazz Gt." mode="7" hbank="121" lbank="0" prog="26" />
+ <Patch name="Pedal Steel" mode="7" hbank="121" lbank="1" prog="26" />
+ <Patch name="Clean Gt." mode="7" hbank="121" lbank="0" prog="27" />
+ <Patch name="Chorus Gt." mode="7" hbank="121" lbank="1" prog="27" />
+ <Patch name="Mid Tone GTR" mode="7" hbank="121" lbank="2" prog="27" />
+ <Patch name="Muted Gt." mode="7" hbank="121" lbank="0" prog="28" />
+ <Patch name="Funk Pop" mode="7" hbank="121" lbank="1" prog="28" />
+ <Patch name="Funk Gt.2" mode="7" hbank="121" lbank="2" prog="28" />
+ <Patch name="Jazz Man" mode="7" hbank="121" lbank="3" prog="28" />
+ <Patch name="Overdrive Gt" mode="7" hbank="121" lbank="0" prog="29" />
+ <Patch name="Guitar Pinch" mode="7" hbank="121" lbank="1" prog="29" />
+ <Patch name="DistortionGT" mode="7" hbank="121" lbank="0" prog="30" />
+ <Patch name="Feedback GT." mode="7" hbank="121" lbank="1" prog="30" />
+ <Patch name="Dist Rtm GTR" mode="7" hbank="121" lbank="2" prog="30" />
+ <Patch name="Gt.Harmonics" mode="7" hbank="121" lbank="0" prog="31" />
+ <Patch name="Gt.Feedback" mode="7" hbank="121" lbank="1" prog="31" />
+ </PatchGroup>
+ <PatchGroup name="GM2 Bass">
+ <Patch name="Acoustic Bs." mode="7" hbank="121" lbank="0" prog="32" />
+ <Patch name="Fingered Bs." mode="7" hbank="121" lbank="0" prog="33" />
+ <Patch name="Finger Slap" mode="7" hbank="121" lbank="1" prog="33" />
+ <Patch name="Picked Bass" mode="7" hbank="121" lbank="0" prog="34" />
+ <Patch name="Fretless Bs." mode="7" hbank="121" lbank="0" prog="35" />
+ <Patch name="Slap Bass 1" mode="7" hbank="121" lbank="0" prog="36" />
+ <Patch name="Slap Bass 2" mode="7" hbank="121" lbank="0" prog="37" />
+ <Patch name="Synth Bass 1" mode="7" hbank="121" lbank="0" prog="38" />
+ <Patch name="SynthBass101" mode="7" hbank="121" lbank="1" prog="38" />
+ <Patch name="Acid Bass" mode="7" hbank="121" lbank="2" prog="38" />
+ <Patch name="Clavi Bass" mode="7" hbank="121" lbank="3" prog="38" />
+ <Patch name="Hammer" mode="7" hbank="121" lbank="4" prog="38" />
+ <Patch name="Synth Bass2" mode="7" hbank="121" lbank="0" prog="39" />
+ <Patch name="Beef FM Bass" mode="7" hbank="121" lbank="1" prog="39" />
+ <Patch name="RubberBass2" mode="7" hbank="121" lbank="2" prog="39" />
+ <Patch name="Attack Pulse" mode="7" hbank="121" lbank="3" prog="39" />
+ </PatchGroup>
+ <PatchGroup name="GM2 Strings">
+ <Patch name="Violin" mode="7" hbank="121" lbank="0" prog="40" />
+ <Patch name="Slow Violin" mode="7" hbank="121" lbank="1" prog="40" />
+ <Patch name="Viola" mode="7" hbank="121" lbank="0" prog="41" />
+ <Patch name="Cello" mode="7" hbank="121" lbank="0" prog="42" />
+ <Patch name="Contrabass" mode="7" hbank="121" lbank="0" prog="43" />
+ <Patch name="Tremolo Str" mode="7" hbank="121" lbank="0" prog="44" />
+ <Patch name="PizzicatoStr" mode="7" hbank="121" lbank="0" prog="45" />
+ <Patch name="Harp" mode="7" hbank="121" lbank="0" prog="46" />
+ <Patch name="Yang Qin" mode="7" hbank="121" lbank="1" prog="46" />
+ <Patch name="Timpani" mode="7" hbank="121" lbank="0" prog="47" />
+ <Patch name="Orche str" mode="7" hbank="121" lbank="0" prog="48" />
+ <Patch name="Orchestra" mode="7" hbank="121" lbank="1" prog="48" />
+ <Patch name="60s Strings" mode="7" hbank="121" lbank="2" prog="48" />
+ <Patch name="Slow Strings" mode="7" hbank="121" lbank="0" prog="49" />
+ <Patch name="Syn.Strings1" mode="7" hbank="121" lbank="0" prog="50" />
+ <Patch name="Syn.Strings3" mode="7" hbank="121" lbank="1" prog="50" />
+ <Patch name="Syn.Strings2" mode="7" hbank="121" lbank="0" prog="51" />
+ </PatchGroup>
+ <PatchGroup name="GM2 Voice">
+ <Patch name="Choir Aahs" mode="7" hbank="121" lbank="0" prog="52" />
+ <Patch name="Chorus Aahs" mode="7" hbank="121" lbank="1" prog="52" />
+ <Patch name="Voice Oohs" mode="7" hbank="121" lbank="0" prog="53" />
+ <Patch name="Humming" mode="7" hbank="121" lbank="1" prog="53" />
+ <Patch name="SynVox" mode="7" hbank="121" lbank="0" prog="54" />
+ <Patch name="Analog Voice" mode="7" hbank="121" lbank="1" prog="54" />
+ </PatchGroup>
+ <PatchGroup name="GM2 Hit and Brass">
+ <Patch name="OrchestraHit" mode="7" hbank="121" lbank="0" prog="55" />
+ <Patch name="Euro Hit" mode="7" hbank="121" lbank="3" prog="55" />
+ <Patch name="Bass Hit" mode="7" hbank="121" lbank="1" prog="55" />
+ <Patch name="6th Hit" mode="7" hbank="121" lbank="2" prog="55" />
+ <Patch name="Trumpet" mode="7" hbank="121" lbank="0" prog="56" />
+ <Patch name="Dark Trumpet" mode="7" hbank="121" lbank="1" prog="56" />
+ <Patch name="Trombone" mode="7" hbank="121" lbank="0" prog="57" />
+ <Patch name="Trombone 2" mode="7" hbank="121" lbank="1" prog="57" />
+ <Patch name="Bright Tb" mode="7" hbank="121" lbank="2" prog="57" />
+ <Patch name="Tuba" mode="7" hbank="121" lbank="0" prog="58" />
+ <Patch name="MutedTrumpet" mode="7" hbank="121" lbank="0" prog="59" />
+ <Patch name="MuteTrumpet2" mode="7" hbank="121" lbank="1" prog="59" />
+ <Patch name="French Horns" mode="7" hbank="121" lbank="0" prog="60" />
+ <Patch name="Fr.Horn 2" mode="7" hbank="121" lbank="1" prog="60" />
+ <Patch name="Brass 1" mode="7" hbank="121" lbank="0" prog="61" />
+ <Patch name="Brass 2" mode="7" hbank="121" lbank="1" prog="61" />
+ <Patch name="Synth Brass1" mode="7" hbank="121" lbank="0" prog="62" />
+ <Patch name="Pro Brass" mode="7" hbank="121" lbank="1" prog="62" />
+ <Patch name="Oct SynBrass" mode="7" hbank="121" lbank="2" prog="62" />
+ <Patch name="Jump Brass" mode="7" hbank="121" lbank="3" prog="62" />
+ <Patch name="Synth Brass2" mode="7" hbank="121" lbank="0" prog="63" />
+ <Patch name="SynBrass sfz" mode="7" hbank="121" lbank="1" prog="63" />
+ <Patch name="Velo Brass 1" mode="7" hbank="121" lbank="2" prog="63" />
+ </PatchGroup>
+ <PatchGroup name="GM2 Orch. Reeds">
+ <Patch name="Soprano Sax" mode="7" hbank="121" lbank="0" prog="64" />
+ <Patch name="Alto Sax" mode="7" hbank="121" lbank="0" prog="65" />
+ <Patch name="Tenor Sax" mode="7" hbank="121" lbank="0" prog="66" />
+ <Patch name="Baritone Sax" mode="7" hbank="121" lbank="0" prog="67" />
+ <Patch name="Oboe" mode="7" hbank="121" lbank="0" prog="68" />
+ <Patch name="English Horn" mode="7" hbank="121" lbank="0" prog="69" />
+ <Patch name="Bassoon" mode="7" hbank="121" lbank="0" prog="70" />
+ <Patch name="Clarinet" mode="7" hbank="121" lbank="0" prog="71" />
+ </PatchGroup>
+ <PatchGroup name="GM2 Flute and Wind">
+ <Patch name="Piccolo" mode="7" hbank="121" lbank="0" prog="72" />
+ <Patch name="Flute" mode="7" hbank="121" lbank="0" prog="73" />
+ <Patch name="Recorder" mode="7" hbank="121" lbank="0" prog="74" />
+ <Patch name="Pan Flute" mode="7" hbank="121" lbank="0" prog="75" />
+ <Patch name="Bottle Blow" mode="7" hbank="121" lbank="0" prog="76" />
+ <Patch name="Shakuhachi" mode="7" hbank="121" lbank="0" prog="77" />
+ <Patch name="Whistle" mode="7" hbank="121" lbank="0" prog="78" />
+ <Patch name="Ocarina" mode="7" hbank="121" lbank="0" prog="79" />
+ </PatchGroup>
+ <PatchGroup name="GM2 Synthesizer">
+ <Patch name="Square Wave" mode="7" hbank="121" lbank="0" prog="80" />
+ <Patch name="MG Square" mode="7" hbank="121" lbank="1" prog="80" />
+ <Patch name="2600 Sine" mode="7" hbank="121" lbank="2" prog="80" />
+ <Patch name="Saw Wave" mode="7" hbank="121" lbank="0" prog="81" />
+ <Patch name="OB2 Saw" mode="7" hbank="121" lbank="1" prog="81" />
+ <Patch name="Doctor Solo" mode="7" hbank="121" lbank="2" prog="81" />
+ <Patch name="Natural Lead" mode="7" hbank="121" lbank="3" prog="81" />
+ <Patch name="SequencedSaw" mode="7" hbank="121" lbank="4" prog="81" />
+ <Patch name="Syn.Calliope" mode="7" hbank="121" lbank="0" prog="82" />
+ <Patch name="Chiffer Lead" mode="7" hbank="121" lbank="0" prog="83" />
+ <Patch name="Charang" mode="7" hbank="121" lbank="0" prog="84" />
+ <Patch name="Wire Lead" mode="7" hbank="121" lbank="1" prog="84" />
+ <Patch name="Solo Vox" mode="7" hbank="121" lbank="0" prog="85" />
+ <Patch name="5th Saw Wave" mode="7" hbank="121" lbank="0" prog="86" />
+ <Patch name="Bass and Lead" mode="7" hbank="121" lbank="0" prog="87" />
+ <Patch name="Delayed Lead" mode="7" hbank="121" lbank="1" prog="87" />
+ <Patch name="Fantasia" mode="7" hbank="121" lbank="0" prog="88" />
+ <Patch name="Warm Pad" mode="7" hbank="121" lbank="0" prog="89" />
+ <Patch name="Sine Pad" mode="7" hbank="121" lbank="1" prog="89" />
+ <Patch name="Polysynth" mode="7" hbank="121" lbank="0" prog="90" />
+ <Patch name="Space Voice" mode="7" hbank="121" lbank="0" prog="91" />
+ <Patch name="Itopia" mode="7" hbank="121" lbank="1" prog="91" />
+ <Patch name="Bowed Glass" mode="7" hbank="121" lbank="0" prog="92" />
+ <Patch name="Metal Pad" mode="7" hbank="121" lbank="0" prog="93" />
+ <Patch name="Halo Pad" mode="7" hbank="121" lbank="0" prog="94" />
+ <Patch name="Sweep Pad" mode="7" hbank="121" lbank="0" prog="95" />
+ <Patch name="Ice Rain" mode="7" hbank="121" lbank="0" prog="96" />
+ <Patch name="Soundtrack" mode="7" hbank="121" lbank="0" prog="97" />
+ <Patch name="Crystal" mode="7" hbank="121" lbank="0" prog="98" />
+ <Patch name="Syn Mallet" mode="7" hbank="121" lbank="1" prog="98" />
+ <Patch name="Atmosphere" mode="7" hbank="121" lbank="0" prog="99" />
+ <Patch name="Brightness" mode="7" hbank="121" lbank="0" prog="100" />
+ <Patch name="Goblin" mode="7" hbank="121" lbank="0" prog="101" />
+ <Patch name="Echo Drops" mode="7" hbank="121" lbank="0" prog="102" />
+ <Patch name="Echo Bell" mode="7" hbank="121" lbank="1" prog="102" />
+ <Patch name="Echo Pan" mode="7" hbank="121" lbank="2" prog="102" />
+ <Patch name="Star Theme" mode="7" hbank="121" lbank="0" prog="103" />
+ </PatchGroup>
+ <PatchGroup name="GM2 Ethnic">
+ <Patch name="Sitar" mode="7" hbank="121" lbank="0" prog="104" />
+ <Patch name="Sitar 2" mode="7" hbank="121" lbank="1" prog="104" />
+ <Patch name="Banjo" mode="7" hbank="121" lbank="0" prog="105" />
+ <Patch name="Shamisen" mode="7" hbank="121" lbank="0" prog="106" />
+ <Patch name="Koto" mode="7" hbank="121" lbank="0" prog="107" />
+ <Patch name="Taisho Koto" mode="7" hbank="121" lbank="1" prog="107" />
+ <Patch name="Kalimba" mode="7" hbank="121" lbank="0" prog="108" />
+ <Patch name="Bagpipe" mode="7" hbank="121" lbank="0" prog="109" />
+ <Patch name="Fiddle" mode="7" hbank="121" lbank="0" prog="110" />
+ <Patch name="Shanai" mode="7" hbank="121" lbank="0" prog="111" />
+ </PatchGroup>
+ <PatchGroup name="GM2 Percussion">
+ <Patch name="Tinkle Bell" mode="7" hbank="121" lbank="0" prog="112" />
+ <Patch name="Agogo" mode="7" hbank="121" lbank="0" prog="113" />
+ <Patch name="Steel Drims" mode="7" hbank="121" lbank="0" prog="114" />
+ <Patch name="Woodblock" mode="7" hbank="121" lbank="0" prog="115" />
+ <Patch name="Castanets" mode="7" hbank="121" lbank="1" prog="115" />
+ <Patch name="Taiko" mode="7" hbank="121" lbank="0" prog="116" />
+ <Patch name="Concert BD" mode="7" hbank="121" lbank="1" prog="116" />
+ <Patch name="Melo. Tom 1" mode="7" hbank="121" lbank="0" prog="117" />
+ <Patch name="Melo. Tom 2" mode="7" hbank="121" lbank="1" prog="117" />
+ <Patch name="Synth Drum" mode="7" hbank="121" lbank="0" prog="118" />
+ <Patch name="808 Tom" mode="7" hbank="121" lbank="1" prog="118" />
+ <Patch name="Elec Perc" mode="7" hbank="121" lbank="2" prog="118" />
+ <Patch name="Reverse Cym." mode="7" hbank="121" lbank="0" prog="119" />
+ </PatchGroup>
+ <PatchGroup name="GM2 Sound FX">
+ <Patch name="Gt.FretNoise" mode="7" hbank="121" lbank="0" prog="120" />
+ <Patch name="Gt.Cut Noise" mode="7" hbank="121" lbank="1" prog="120" />
+ <Patch name="String Slap" mode="7" hbank="121" lbank="2" prog="120" />
+ <Patch name="Breath Noise" mode="7" hbank="121" lbank="0" prog="121" />
+ <Patch name="Fl.Key Click" mode="7" hbank="121" lbank="1" prog="121" />
+ <Patch name="Seashore" mode="7" hbank="121" lbank="0" prog="122" />
+ <Patch name="Rain" mode="7" hbank="121" lbank="1" prog="122" />
+ <Patch name="Thunder" mode="7" hbank="121" lbank="2" prog="122" />
+ <Patch name="Wind" mode="7" hbank="121" lbank="3" prog="122" />
+ <Patch name="Stream" mode="7" hbank="121" lbank="4" prog="122" />
+ <Patch name="Bubble" mode="7" hbank="121" lbank="5" prog="122" />
+ <Patch name="Bird" mode="7" hbank="121" lbank="0" prog="123" />
+ <Patch name="Dog" mode="7" hbank="121" lbank="1" prog="123" />
+ <Patch name="Horse-Gallop" mode="7" hbank="121" lbank="2" prog="123" />
+ <Patch name="Bird 2" mode="7" hbank="121" lbank="3" prog="123" />
+ <Patch name="Telephone 1" mode="7" hbank="121" lbank="0" prog="124" />
+ <Patch name="Telephone 2" mode="7" hbank="121" lbank="1" prog="124" />
+ <Patch name="DoorCreaking" mode="7" hbank="121" lbank="2" prog="124" />
+ <Patch name="DoorCreaking" mode="7" hbank="121" lbank="3" prog="124" />
+ <Patch name="Scratch" mode="7" hbank="121" lbank="4" prog="124" />
+ <Patch name="Wind Chimes" mode="7" hbank="121" lbank="5" prog="124" />
+ <Patch name="Helicopter" mode="7" hbank="121" lbank="0" prog="125" />
+ <Patch name="Car-Engine" mode="7" hbank="121" lbank="1" prog="125" />
+ <Patch name="Car-Stop" mode="7" hbank="121" lbank="2" prog="125" />
+ <Patch name="Car-Pass" mode="7" hbank="121" lbank="3" prog="125" />
+ <Patch name="Car-Crash" mode="7" hbank="121" lbank="4" prog="125" />
+ <Patch name="Siren" mode="7" hbank="121" lbank="5" prog="125" />
+ <Patch name="Train" mode="7" hbank="121" lbank="6" prog="125" />
+ <Patch name="Jetplane" mode="7" hbank="121" lbank="7" prog="125" />
+ <Patch name="Starship" mode="7" hbank="121" lbank="8" prog="125" />
+ <Patch name="Burst Noise" mode="7" hbank="121" lbank="9" prog="125" />
+ <Patch name="Applause" mode="7" hbank="121" lbank="0" prog="126" />
+ <Patch name="Laughing" mode="7" hbank="121" lbank="1" prog="126" />
+ <Patch name="Screaming" mode="7" hbank="121" lbank="2" prog="126" />
+ <Patch name="Punch" mode="7" hbank="121" lbank="3" prog="126" />
+ <Patch name="Heart Beat" mode="7" hbank="121" lbank="4" prog="126" />
+ <Patch name="Footsteps" mode="7" hbank="121" lbank="5" prog="126" />
+ <Patch name="Gun Shot" mode="7" hbank="121" lbank="0" prog="127" />
+ <Patch name="Machine Gun" mode="7" hbank="121" lbank="1" prog="127" />
+ <Patch name="Lasergun" mode="7" hbank="121" lbank="2" prog="127" />
+ <Patch name="Explosion" mode="7" hbank="121" lbank="3" prog="127" />
+ </PatchGroup>
+ <PatchGroup name="Preset Drums/Percussion">
+ <Patch name="StandardKit1" hbank="86" lbank="64" prog="0" />
+ <Patch name="StandardKit2" hbank="86" lbank="64" prog="1" />
+ <Patch name="StandardKit3" hbank="86" lbank="64" prog="2" />
+ <Patch name="Rock Kit 1" hbank="86" lbank="64" prog="3" />
+ <Patch name="Rock Kit 2" hbank="86" lbank="64" prog="4" />
+ <Patch name="Brush Jz Kit" hbank="86" lbank="64" prog="5" />
+ <Patch name="Orch Kit" hbank="86" lbank="64" prog="6" />
+ <Patch name="909 808 Kit" hbank="86" lbank="64" prog="7" />
+ <Patch name="Limiter Kit" hbank="86" lbank="64" prog="8" />
+ <Patch name="HipHop Kit 1" hbank="86" lbank="64" prog="9" />
+ <Patch name="HipHop Kit 2" hbank="86" lbank="64" prog="10" />
+ <Patch name="HipHop and Latin" hbank="86" lbank="64" prog="11" />
+ <Patch name="Machine and Hip" hbank="86" lbank="64" prog="12" />
+ <Patch name="R and B Kit" hbank="86" lbank="64" prog="13" />
+ <Patch name="HiFi R and B Kit" hbank="86" lbank="64" prog="14" />
+ <Patch name="Machine Kit1" hbank="86" lbank="64" prog="15" />
+ <Patch name="4 Kit MIX" hbank="86" lbank="64" prog="16" />
+ <Patch name="Kit-Euro:POP" hbank="86" lbank="64" prog="17" />
+ <Patch name="House Kit" hbank="86" lbank="64" prog="18" />
+ <Patch name="Nu Technica" hbank="86" lbank="64" prog="19" />
+ <Patch name="Machine Kit2" hbank="86" lbank="64" prog="20" />
+ <Patch name="ArtificalKit" hbank="86" lbank="64" prog="21" />
+ <Patch name="Noise Kit" hbank="86" lbank="64" prog="22" />
+ <Patch name="Kick Menu" hbank="86" lbank="64" prog="23" />
+ <Patch name="Snare Menu 1" hbank="86" lbank="64" prog="24" />
+ <Patch name="Snare Menu 2" hbank="86" lbank="64" prog="25" />
+ <Patch name="HiHat Menu" hbank="86" lbank="64" prog="26" />
+ <Patch name="Rim and Tom Menu" hbank="86" lbank="64" prog="27" />
+ <Patch name="Clp n Cym n Hit" hbank="86" lbank="64" prog="28" />
+ <Patch name="FX/SFX Menu" hbank="86" lbank="64" prog="29" />
+ <Patch name="Percussion" hbank="86" lbank="64" prog="30" />
+ <Patch name="Scrh n Voi n Wld" hbank="86" lbank="64" prog="31" />
+ <Patch name="StudioX Kit1" hbank="86" lbank="64" prog="32" />
+ <Patch name="StudioX Kit2" hbank="86" lbank="64" prog="33" />
+ <Patch name="X Euro Kit" hbank="86" lbank="64" prog="34" />
+ <Patch name="X Hybrid Kit" hbank="86" lbank="64" prog="35" />
+ <Patch name="Neo-Wrld Kit" hbank="86" lbank="64" prog="36" />
+ <Patch name="PassionDrums" hbank="86" lbank="64" prog="37" />
+ <Patch name="Organic Kit" hbank="86" lbank="64" prog="38" />
+ <Patch name="Arpeggiate!" hbank="86" lbank="64" prog="39" />
+ </PatchGroup>
+ <PatchGroup name="Preset A">
+ <Patch name="So true..." hbank="87" lbank="64" prog="0" />
+ <Patch name="ConcertPiano" hbank="87" lbank="64" prog="1" />
+ <Patch name="Warm Piano" hbank="87" lbank="64" prog="2" />
+ <Patch name="Warm Pad Pno" hbank="87" lbank="64" prog="3" />
+ <Patch name="Warm Str Pno" hbank="87" lbank="64" prog="4" />
+ <Patch name="BealeSt Walk" hbank="87" lbank="64" prog="5" />
+ <Patch name="Rapsody" hbank="87" lbank="64" prog="6" />
+ <Patch name="JD-800 Piano" hbank="87" lbank="64" prog="7" />
+ <Patch name="SA Dance Pno" hbank="87" lbank="64" prog="8" />
+ <Patch name="FS E-Grand" hbank="87" lbank="64" prog="9" />
+ <Patch name="FS Blend Pno" hbank="87" lbank="64" prog="10" />
+ <Patch name="LA Piano" hbank="87" lbank="64" prog="11" />
+ <Patch name="FS Rhodes" hbank="87" lbank="64" prog="12" />
+ <Patch name="StageRhdTrem" hbank="87" lbank="64" prog="13" />
+ <Patch name="Back2the60s" hbank="87" lbank="64" prog="14" />
+ <Patch name="Tine Rhodes" hbank="87" lbank="64" prog="15" />
+ <Patch name="LEO Rhodes" hbank="87" lbank="64" prog="16" />
+ <Patch name="LonesomeRoad" hbank="87" lbank="64" prog="17" />
+ <Patch name="Age-n Tines" hbank="87" lbank="64" prog="18" />
+ <Patch name="Brill TremEP" hbank="87" lbank="64" prog="19" />
+ <Patch name="Crystal Rhd" hbank="87" lbank="64" prog="20" />
+ <Patch name="Celestial EP" hbank="87" lbank="64" prog="21" />
+ <Patch name="Spirit Tines" hbank="87" lbank="64" prog="22" />
+ <Patch name="Psycho EP" hbank="87" lbank="64" prog="23" />
+ <Patch name="Mk2 Stg phsr" hbank="87" lbank="64" prog="24" />
+ <Patch name="SA Stacks" hbank="87" lbank="64" prog="25" />
+ <Patch name="Backing PhEP" hbank="87" lbank="64" prog="26" />
+ <Patch name="Balladeer" hbank="87" lbank="64" prog="27" />
+ <Patch name="Remember" hbank="87" lbank="64" prog="28" />
+ <Patch name="FS Wurly" hbank="87" lbank="64" prog="29" />
+ <Patch name="Wurly Trem" hbank="87" lbank="64" prog="30" />
+ <Patch name="Super Wurly" hbank="87" lbank="64" prog="31" />
+ <Patch name="Pulse EPno" hbank="87" lbank="64" prog="32" />
+ <Patch name="Fonky Fonky" hbank="87" lbank="64" prog="33" />
+ <Patch name="FM Rhodes" hbank="87" lbank="64" prog="34" />
+ <Patch name="FM-777" hbank="87" lbank="64" prog="35" />
+ <Patch name="FM EPad" hbank="87" lbank="64" prog="36" />
+ <Patch name="D6 Clavi" hbank="87" lbank="64" prog="37" />
+ <Patch name="Cutter Clavi" hbank="87" lbank="64" prog="38" />
+ <Patch name="FS Clavi" hbank="87" lbank="64" prog="39" />
+ <Patch name="Funky D" hbank="87" lbank="64" prog="40" />
+ <Patch name="Phase Clavi" hbank="87" lbank="64" prog="41" />
+ <Patch name="BPF Clavi Ph" hbank="87" lbank="64" prog="42" />
+ <Patch name="Pulse Clavi" hbank="87" lbank="64" prog="43" />
+ <Patch name="Analog Clavi" hbank="87" lbank="64" prog="44" />
+ <Patch name="Reso Clavi" hbank="87" lbank="64" prog="45" />
+ <Patch name="Harpsy Clavi" hbank="87" lbank="64" prog="46" />
+ <Patch name="FS Harpsi" hbank="87" lbank="64" prog="47" />
+ <Patch name="Amadeus" hbank="87" lbank="64" prog="48" />
+ <Patch name="FS Celesta" hbank="87" lbank="64" prog="49" />
+ <Patch name="FS Glocken" hbank="87" lbank="64" prog="50" />
+ <Patch name="Music Bells" hbank="87" lbank="64" prog="51" />
+ <Patch name="FS Musicbox" hbank="87" lbank="64" prog="52" />
+ <Patch name="MuBox Pad" hbank="87" lbank="64" prog="53" />
+ <Patch name="Kalimbells" hbank="87" lbank="64" prog="54" />
+ <Patch name="Himalaya Ice" hbank="87" lbank="64" prog="55" />
+ <Patch name="Dreaming Box" hbank="87" lbank="64" prog="56" />
+ <Patch name="Step Ice" hbank="87" lbank="64" prog="57" />
+ <Patch name="FS Bell 1" hbank="87" lbank="64" prog="58" />
+ <Patch name="FS Bell 2" hbank="87" lbank="64" prog="59" />
+ <Patch name="Candy Bell" hbank="87" lbank="64" prog="60" />
+ <Patch name="FS Chime" hbank="87" lbank="64" prog="61" />
+ <Patch name="Bell Ring" hbank="87" lbank="64" prog="62" />
+ <Patch name="Tubular Bell" hbank="87" lbank="64" prog="63" />
+ <Patch name="5th Key" hbank="87" lbank="64" prog="64" />
+ <Patch name="Vibrations" hbank="87" lbank="64" prog="65" />
+ <Patch name="FS Vibe" hbank="87" lbank="64" prog="66" />
+ <Patch name="FS Marimba" hbank="87" lbank="64" prog="67" />
+ <Patch name="FS Xylo" hbank="87" lbank="64" prog="68" />
+ <Patch name="Ethno Keys" hbank="87" lbank="64" prog="69" />
+ <Patch name="Synergy MLT" hbank="87" lbank="64" prog="70" />
+ <Patch name="Steel Drums" hbank="87" lbank="64" prog="71" />
+ <Patch name="Xylosizer" hbank="87" lbank="64" prog="72" />
+ <Patch name="Toy Box" hbank="87" lbank="64" prog="73" />
+ <Patch name="FullDraw Org" hbank="87" lbank="64" prog="74" />
+ <Patch name="StakDraw Org" hbank="87" lbank="64" prog="75" />
+ <Patch name="FullStop Org" hbank="87" lbank="64" prog="76" />
+ <Patch name="FS Perc Org" hbank="87" lbank="64" prog="77" />
+ <Patch name="Euro Organ" hbank="87" lbank="64" prog="78" />
+ <Patch name="Perky Organ" hbank="87" lbank="64" prog="79" />
+ <Patch name="LoFi PercOrg" hbank="87" lbank="64" prog="80" />
+ <Patch name="Rochno Org" hbank="87" lbank="64" prog="81" />
+ <Patch name="RnB Organ 1" hbank="87" lbank="64" prog="82" />
+ <Patch name="RnB Organ 2" hbank="87" lbank="64" prog="83" />
+ <Patch name="Zepix Organ" hbank="87" lbank="64" prog="84" />
+ <Patch name="Peep Durple" hbank="87" lbank="64" prog="85" />
+ <Patch name="FS Dist Bee" hbank="87" lbank="64" prog="86" />
+ <Patch name="60s Org 1" hbank="87" lbank="64" prog="87" />
+ <Patch name="60s Org 2" hbank="87" lbank="64" prog="88" />
+ <Patch name="FS SoapOpera" hbank="87" lbank="64" prog="89" />
+ <Patch name="Chapel Organ" hbank="87" lbank="64" prog="90" />
+ <Patch name="Grand Pipe" hbank="87" lbank="64" prog="91" />
+ <Patch name="Masked Opera" hbank="87" lbank="64" prog="92" />
+ <Patch name="Pipe Org/Mod" hbank="87" lbank="64" prog="93" />
+ <Patch name="Vodkakordion" hbank="87" lbank="64" prog="94" />
+ <Patch name="Squeeze Me!" hbank="87" lbank="64" prog="95" />
+ <Patch name="Guinguette" hbank="87" lbank="64" prog="96" />
+ <Patch name="HarWonderca" hbank="87" lbank="64" prog="97" />
+ <Patch name="BluesHrp V/S" hbank="87" lbank="64" prog="98" />
+ <Patch name="Green Bullet" hbank="87" lbank="64" prog="99" />
+ <Patch name="SoftNyln Gtr" hbank="87" lbank="64" prog="100" />
+ <Patch name="FS Nylon Gt" hbank="87" lbank="64" prog="101" />
+ <Patch name="Wet Nyln Gtr" hbank="87" lbank="64" prog="102" />
+ <Patch name="Pre Mass Hum" hbank="87" lbank="64" prog="103" />
+ <Patch name="Thick Steel" hbank="87" lbank="64" prog="104" />
+ <Patch name="Uncle Martin" hbank="87" lbank="64" prog="105" />
+ <Patch name="Wide Ac Gtr" hbank="87" lbank="64" prog="106" />
+ <Patch name="Comp Stl Gtr" hbank="87" lbank="64" prog="107" />
+ <Patch name="Stl Gtr Duo" hbank="87" lbank="64" prog="108" />
+ <Patch name="FS 12str Gtr" hbank="87" lbank="64" prog="109" />
+ <Patch name="So good!" hbank="87" lbank="64" prog="110" />
+ <Patch name="Muted Gtr Pk" hbank="87" lbank="64" prog="111" />
+ <Patch name="StratSequence" hbank="87" lbank="64" prog="112" />
+ <Patch name="Fixx it" hbank="87" lbank="64" prog="113" />
+ <Patch name="Jazz Guitar" hbank="87" lbank="64" prog="114" />
+ <Patch name="DynoJazz Gtr" hbank="87" lbank="64" prog="115" />
+ <Patch name="Wet TC" hbank="87" lbank="64" prog="116" />
+ <Patch name="Clean Gtr" hbank="87" lbank="64" prog="117" />
+ <Patch name="Crimson Gtr" hbank="87" lbank="64" prog="118" />
+ <Patch name="Touchee Funk" hbank="87" lbank="64" prog="119" />
+ <Patch name="Plug n Gig" hbank="87" lbank="64" prog="120" />
+ <Patch name="Kinda Kurt" hbank="87" lbank="64" prog="121" />
+ <Patch name="Nice Oct Gtr" hbank="87" lbank="64" prog="122" />
+ <Patch name="Strat Gtr" hbank="87" lbank="64" prog="123" />
+ <Patch name="JC Strat Bdy" hbank="87" lbank="64" prog="124" />
+ <Patch name="Twin StratsB" hbank="87" lbank="64" prog="125" />
+ <Patch name="BluNoteStrat" hbank="87" lbank="64" prog="126" />
+ <Patch name="FS Funk Gtr" hbank="87" lbank="64" prog="127" />
+ </PatchGroup>
+ <PatchGroup name="Preset B">
+ <Patch name="GK Dubguitar" hbank="87" lbank="65" prog="0" />
+ <Patch name="and Scratchee" hbank="87" lbank="65" prog="1" />
+ <Patch name="Touch Drive" hbank="87" lbank="65" prog="2" />
+ <Patch name="FS Chunk" hbank="87" lbank="65" prog="3" />
+ <Patch name="Trem-o-Vibe" hbank="87" lbank="65" prog="4" />
+ <Patch name="Nice Dist Gt" hbank="87" lbank="65" prog="5" />
+ <Patch name="LP Dist" hbank="87" lbank="65" prog="6" />
+ <Patch name="Hurtling Gtr" hbank="87" lbank="65" prog="7" />
+ <Patch name="Searing COSM" hbank="87" lbank="65" prog="8" />
+ <Patch name="FS Loud Gtr" hbank="87" lbank="65" prog="9" />
+ <Patch name="FS Plugged!!" hbank="87" lbank="65" prog="10" />
+ <Patch name="Punker 1" hbank="87" lbank="65" prog="11" />
+ <Patch name="FS PowerChd" hbank="87" lbank="65" prog="12" />
+ <Patch name="Punker 2" hbank="87" lbank="65" prog="13" />
+ <Patch name="Ulti Ac Bass" hbank="87" lbank="65" prog="14" />
+ <Patch name="Downright BS" hbank="87" lbank="65" prog="15" />
+ <Patch name="Ultimo Bass" hbank="87" lbank="65" prog="16" />
+ <Patch name="Roomy Bass" hbank="87" lbank="65" prog="17" />
+ <Patch name="Comp-ed JBass" hbank="87" lbank="65" prog="18" />
+ <Patch name="FingerMaster" hbank="87" lbank="65" prog="19" />
+ <Patch name="CompressBass" hbank="87" lbank="65" prog="20" />
+ <Patch name="All Round Bs" hbank="87" lbank="65" prog="21" />
+ <Patch name="RnB Bs/Slide" hbank="87" lbank="65" prog="22" />
+ <Patch name="Thumb Up!" hbank="87" lbank="65" prog="23" />
+ <Patch name="Tubby Mute" hbank="87" lbank="65" prog="24" />
+ <Patch name="Chicken Bass" hbank="87" lbank="65" prog="25" />
+ <Patch name="Snug Bass" hbank="87" lbank="65" prog="26" />
+ <Patch name="Return2Base!" hbank="87" lbank="65" prog="27" />
+ <Patch name="A Big Pick" hbank="87" lbank="65" prog="28" />
+ <Patch name="Basement" hbank="87" lbank="65" prog="29" />
+ <Patch name="FS Fretnot 1" hbank="87" lbank="65" prog="30" />
+ <Patch name="FS Fretnot 2" hbank="87" lbank="65" prog="31" />
+ <Patch name="RichFretless" hbank="87" lbank="65" prog="32" />
+ <Patch name="Got Pop?" hbank="87" lbank="65" prog="33" />
+ <Patch name="JBass v/Thmb" hbank="87" lbank="65" prog="34" />
+ <Patch name="FS Slap Bass" hbank="87" lbank="65" prog="35" />
+ <Patch name="LEO Bass" hbank="87" lbank="65" prog="36" />
+ <Patch name="Smooth Bass" hbank="87" lbank="65" prog="37" />
+ <Patch name="MC-404 Bass" hbank="87" lbank="65" prog="38" />
+ <Patch name="SH-101 Bs 1" hbank="87" lbank="65" prog="39" />
+ <Patch name="FS Syn Bass1" hbank="87" lbank="65" prog="40" />
+ <Patch name="Electro Rubb" hbank="87" lbank="65" prog="41" />
+ <Patch name="RnB Bass 1" hbank="87" lbank="65" prog="42" />
+ <Patch name="Enorjizor" hbank="87" lbank="65" prog="43" />
+ <Patch name="LowFat Bass" hbank="87" lbank="65" prog="44" />
+ <Patch name="Doze Bass" hbank="87" lbank="65" prog="45" />
+ <Patch name="FS Flat Bs" hbank="87" lbank="65" prog="46" />
+ <Patch name="Saw n MG Bass" hbank="87" lbank="65" prog="47" />
+ <Patch name="RnB Bass 2" hbank="87" lbank="65" prog="48" />
+ <Patch name="Foundation" hbank="87" lbank="65" prog="49" />
+ <Patch name="RnB Bass 3" hbank="87" lbank="65" prog="50" />
+ <Patch name="HipHop Bs 1" hbank="87" lbank="65" prog="51" />
+ <Patch name="HipHop Bs 2" hbank="87" lbank="65" prog="52" />
+ <Patch name="Solid Goa" hbank="87" lbank="65" prog="53" />
+ <Patch name="ResoSyn Bs 1" hbank="87" lbank="65" prog="54" />
+ <Patch name="SH-1 Bass" hbank="87" lbank="65" prog="55" />
+ <Patch name="SH-101 Bs 2" hbank="87" lbank="65" prog="56" />
+ <Patch name="FS Syn Bass2" hbank="87" lbank="65" prog="57" />
+ <Patch name="Poly Bass" hbank="87" lbank="65" prog="58" />
+ <Patch name="Punch MG 1" hbank="87" lbank="65" prog="59" />
+ <Patch name="Gashed Bass" hbank="87" lbank="65" prog="60" />
+ <Patch name="Q Bass" hbank="87" lbank="65" prog="61" />
+ <Patch name="FS Rubber Bs" hbank="87" lbank="65" prog="62" />
+ <Patch name="ResoSyn Bs 2" hbank="87" lbank="65" prog="63" />
+ <Patch name="Super-G DX" hbank="87" lbank="65" prog="64" />
+ <Patch name="Punch MG 2" hbank="87" lbank="65" prog="65" />
+ <Patch name="Kickin Bass" hbank="87" lbank="65" prog="66" />
+ <Patch name="OilDrum Bass" hbank="87" lbank="65" prog="67" />
+ <Patch name="Glide-iator" hbank="87" lbank="65" prog="68" />
+ <Patch name="MG+SubOsc Bs" hbank="87" lbank="65" prog="69" />
+ <Patch name="FS Unison Bs" hbank="87" lbank="65" prog="70" />
+ <Patch name="TexturedBusy" hbank="87" lbank="65" prog="71" />
+ <Patch name="Detune Bass" hbank="87" lbank="65" prog="72" />
+ <Patch name="Lo Bass" hbank="87" lbank="65" prog="73" />
+ <Patch name="SQ Pan" hbank="87" lbank="65" prog="74" />
+ <Patch name="FS GarageBs1" hbank="87" lbank="65" prog="75" />
+ <Patch name="FS GarageBs2" hbank="87" lbank="65" prog="76" />
+ <Patch name="Sub Sonic" hbank="87" lbank="65" prog="77" />
+ <Patch name="FS Jungle Bs" hbank="87" lbank="65" prog="78" />
+ <Patch name="RnB Bass 4" hbank="87" lbank="65" prog="79" />
+ <Patch name="Beepin Bass" hbank="87" lbank="65" prog="80" />
+ <Patch name="MC-TB Bass" hbank="87" lbank="65" prog="81" />
+ <Patch name="Acdg Bass" hbank="87" lbank="65" prog="82" />
+ <Patch name="Loco Voco" hbank="87" lbank="65" prog="83" />
+ <Patch name="TBasic" hbank="87" lbank="65" prog="84" />
+ <Patch name="Unplug it!" hbank="87" lbank="65" prog="85" />
+ <Patch name="V.Form Bass" hbank="87" lbank="65" prog="86" />
+ <Patch name="SnH Bass" hbank="87" lbank="65" prog="87" />
+ <Patch name="Destroyed Bs" hbank="87" lbank="65" prog="88" />
+ <Patch name="FS Acid Bs" hbank="87" lbank="65" prog="89" />
+ <Patch name="Lo-Fi TB" hbank="87" lbank="65" prog="90" />
+ <Patch name="Violin" hbank="87" lbank="65" prog="91" />
+ <Patch name="Viola" hbank="87" lbank="65" prog="92" />
+ <Patch name="Cello" hbank="87" lbank="65" prog="93" />
+ <Patch name="Contrabass" hbank="87" lbank="65" prog="94" />
+ <Patch name="Dolce Qrt" hbank="87" lbank="65" prog="95" />
+ <Patch name="Chamber Str" hbank="87" lbank="65" prog="96" />
+ <Patch name="Small Str" hbank="87" lbank="65" prog="97" />
+ <Patch name="Studio Sect." hbank="87" lbank="65" prog="98" />
+ <Patch name="Stringz 101" hbank="87" lbank="65" prog="99" />
+ <Patch name="Crossed Bows" hbank="87" lbank="65" prog="100" />
+ <Patch name="FS Strings" hbank="87" lbank="65" prog="101" />
+ <Patch name="2-way Sect." hbank="87" lbank="65" prog="102" />
+ <Patch name="Warm Strings" hbank="87" lbank="65" prog="103" />
+ <Patch name="Stacc mp Str" hbank="87" lbank="65" prog="104" />
+ <Patch name="Magnolia Str" hbank="87" lbank="65" prog="105" />
+ <Patch name="Movie Scene" hbank="87" lbank="65" prog="106" />
+ <Patch name="Gang Strangs" hbank="87" lbank="65" prog="107" />
+ <Patch name="Clustered!?!" hbank="87" lbank="65" prog="108" />
+ <Patch name="DramaSect/sw" hbank="87" lbank="65" prog="109" />
+ <Patch name="DelicatePizz" hbank="87" lbank="65" prog="110" />
+ <Patch name="Vls PizzHall" hbank="87" lbank="65" prog="111" />
+ <Patch name="Orch Pizz" hbank="87" lbank="65" prog="112" />
+ <Patch name="Wind and Str 1" hbank="87" lbank="65" prog="113" />
+ <Patch name="Wind and Str 2" hbank="87" lbank="65" prog="114" />
+ <Patch name="Farewell" hbank="87" lbank="65" prog="115" />
+ <Patch name="Orch and Horns" hbank="87" lbank="65" prog="116" />
+ <Patch name="Soft Orch 1" hbank="87" lbank="65" prog="117" />
+ <Patch name="Soft Orch 2" hbank="87" lbank="65" prog="118" />
+ <Patch name="Henry IX" hbank="87" lbank="65" prog="119" />
+ <Patch name="Ending Scene" hbank="87" lbank="65" prog="120" />
+ <Patch name="Good Old Day" hbank="87" lbank="65" prog="121" />
+ <Patch name="FS WindWood" hbank="87" lbank="65" prog="122" />
+ <Patch name="Clarence.net" hbank="87" lbank="65" prog="123" />
+ <Patch name="FS Oboe" hbank="87" lbank="65" prog="124" />
+ <Patch name="Hall Oboe" hbank="87" lbank="65" prog="125" />
+ <Patch name="English Horn" hbank="87" lbank="65" prog="126" />
+ <Patch name="Bassoon" hbank="87" lbank="65" prog="127" />
+ </PatchGroup>
+ <PatchGroup name="Preset C">
+ <Patch name="FS Flute" hbank="87" lbank="66" prog="0" />
+ <Patch name="Atk Flute" hbank="87" lbank="66" prog="1" />
+ <Patch name="Piccolo" hbank="87" lbank="66" prog="2" />
+ <Patch name="Andes Mood" hbank="87" lbank="66" prog="3" />
+ <Patch name="Pan Pipes" hbank="87" lbank="66" prog="4" />
+ <Patch name="Solo Tp" hbank="87" lbank="66" prog="5" />
+ <Patch name="Horn Chops" hbank="87" lbank="66" prog="6" />
+ <Patch name="Flugel Horn" hbank="87" lbank="66" prog="7" />
+ <Patch name="Spit Flugel" hbank="87" lbank="66" prog="8" />
+ <Patch name="Mute Tp/Mod" hbank="87" lbank="66" prog="9" />
+ <Patch name="Harmon Mute" hbank="87" lbank="66" prog="10" />
+ <Patch name="Soft Tb" hbank="87" lbank="66" prog="11" />
+ <Patch name="Solo Tb" hbank="87" lbank="66" prog="12" />
+ <Patch name="Solo Bone" hbank="87" lbank="66" prog="13" />
+ <Patch name="Grande Tuba" hbank="87" lbank="66" prog="14" />
+ <Patch name="FS Tuba" hbank="87" lbank="66" prog="15" />
+ <Patch name="StackTp Sect" hbank="87" lbank="66" prog="16" />
+ <Patch name="Tb Section" hbank="87" lbank="66" prog="17" />
+ <Patch name="TpTb Sect." hbank="87" lbank="66" prog="18" />
+ <Patch name="FS Brass" hbank="87" lbank="66" prog="19" />
+ <Patch name="DynamicBrass" hbank="87" lbank="66" prog="20" />
+ <Patch name="Tpts n Tmbs" hbank="87" lbank="66" prog="21" />
+ <Patch name="Brass n Sax" hbank="87" lbank="66" prog="22" />
+ <Patch name="BrassPartOut" hbank="87" lbank="66" prog="23" />
+ <Patch name="Simple Tutti" hbank="87" lbank="66" prog="24" />
+ <Patch name="Full sForza" hbank="87" lbank="66" prog="25" />
+ <Patch name="F.Horns Sect" hbank="87" lbank="66" prog="26" />
+ <Patch name="Stereo Brass" hbank="87" lbank="66" prog="27" />
+ <Patch name="Brass Fall" hbank="87" lbank="66" prog="28" />
+ <Patch name="FS Saw Brass" hbank="87" lbank="66" prog="29" />
+ <Patch name="Wide SynBrss" hbank="87" lbank="66" prog="30" />
+ <Patch name="DetuneSawBrs" hbank="87" lbank="66" prog="31" />
+ <Patch name="J-Pop Brass" hbank="87" lbank="66" prog="32" />
+ <Patch name="Brash!" hbank="87" lbank="66" prog="33" />
+ <Patch name="Jump For KY" hbank="87" lbank="66" prog="34" />
+ <Patch name="Neo SuperBrs" hbank="87" lbank="66" prog="35" />
+ <Patch name="SoftSynBrass" hbank="87" lbank="66" prog="36" />
+ <Patch name="Silky JP" hbank="87" lbank="66" prog="37" />
+ <Patch name="Silk Brs Pad" hbank="87" lbank="66" prog="38" />
+ <Patch name="FatSynBrass" hbank="87" lbank="66" prog="39" />
+ <Patch name="Soprano Sax" hbank="87" lbank="66" prog="40" />
+ <Patch name="Solo Sop Sax" hbank="87" lbank="66" prog="41" />
+ <Patch name="Alto mp" hbank="87" lbank="66" prog="42" />
+ <Patch name="Alto Sax" hbank="87" lbank="66" prog="43" />
+ <Patch name="Solo AltoSax" hbank="87" lbank="66" prog="44" />
+ <Patch name="AltoLead Sax" hbank="87" lbank="66" prog="45" />
+ <Patch name="Tenor Sax" hbank="87" lbank="66" prog="46" />
+ <Patch name="Fat TenorSax" hbank="87" lbank="66" prog="47" />
+ <Patch name="Baritone Sax" hbank="87" lbank="66" prog="48" />
+ <Patch name="Sax Sect. 1" hbank="87" lbank="66" prog="49" />
+ <Patch name="Sax Sect. 2" hbank="87" lbank="66" prog="50" />
+ <Patch name="Horny Sax" hbank="87" lbank="66" prog="51" />
+ <Patch name="RnB TryLead" hbank="87" lbank="66" prog="52" />
+ <Patch name="PeakArpSine" hbank="87" lbank="66" prog="53" />
+ <Patch name="Theramax" hbank="87" lbank="66" prog="54" />
+ <Patch name="FS Sqr Lead" hbank="87" lbank="66" prog="55" />
+ <Patch name="Dawn of Pan" hbank="87" lbank="66" prog="56" />
+ <Patch name="Sqr Diamond" hbank="87" lbank="66" prog="57" />
+ <Patch name="FS SoftLead" hbank="87" lbank="66" prog="58" />
+ <Patch name="Mid Saw Ld" hbank="87" lbank="66" prog="59" />
+ <Patch name="FS ResoLead" hbank="87" lbank="66" prog="60" />
+ <Patch name="Dig-n-Duke" hbank="87" lbank="66" prog="61" />
+ <Patch name="Modulated Ld" hbank="87" lbank="66" prog="62" />
+ <Patch name="Waspy Lead" hbank="87" lbank="66" prog="63" />
+ <Patch name="Mew Lead" hbank="87" lbank="66" prog="64" />
+ <Patch name="Violin Lead" hbank="87" lbank="66" prog="65" />
+ <Patch name="Oscillo Lead" hbank="87" lbank="66" prog="66" />
+ <Patch name="JP Saw Lead" hbank="87" lbank="66" prog="67" />
+ <Patch name="MG Sqr Lead" hbank="87" lbank="66" prog="68" />
+ <Patch name="Tristar" hbank="87" lbank="66" prog="69" />
+ <Patch name="Mod Lead" hbank="87" lbank="66" prog="70" />
+ <Patch name="Digital Ld 1" hbank="87" lbank="66" prog="71" />
+ <Patch name="Chubby Lead" hbank="87" lbank="66" prog="72" />
+ <Patch name="Sneaky Leady" hbank="87" lbank="66" prog="73" />
+ <Patch name="SoloNzPeaker" hbank="87" lbank="66" prog="74" />
+ <Patch name="Clone Zone" hbank="87" lbank="66" prog="75" />
+ <Patch name="Legato Tkno" hbank="87" lbank="66" prog="76" />
+ <Patch name="DC Triangle" hbank="87" lbank="66" prog="77" />
+ <Patch name="Sqr-Seqence" hbank="87" lbank="66" prog="78" />
+ <Patch name="Griggley" hbank="87" lbank="66" prog="79" />
+ <Patch name="Pure Square" hbank="87" lbank="66" prog="80" />
+ <Patch name="Legato Saw" hbank="87" lbank="66" prog="81" />
+ <Patch name="Lone Prophat" hbank="87" lbank="66" prog="82" />
+ <Patch name="Porta SoloLd" hbank="87" lbank="66" prog="83" />
+ <Patch name="FS Saw Ld 1" hbank="87" lbank="66" prog="84" />
+ <Patch name="FS Saw Ld 2" hbank="87" lbank="66" prog="85" />
+ <Patch name="Wind Syn Ld" hbank="87" lbank="66" prog="86" />
+ <Patch name="Dual Profs" hbank="87" lbank="66" prog="87" />
+ <Patch name="Gwyo Press" hbank="87" lbank="66" prog="88" />
+ <Patch name="Q DualSaws" hbank="87" lbank="66" prog="89" />
+ <Patch name="Mogulator Ld" hbank="87" lbank="66" prog="90" />
+ <Patch name="DirtyVoltage" hbank="87" lbank="66" prog="91" />
+ <Patch name="Clean?" hbank="87" lbank="66" prog="92" />
+ <Patch name="DistortionGT" hbank="87" lbank="66" prog="93" />
+ <Patch name="FS Syn Ld" hbank="87" lbank="66" prog="94" />
+ <Patch name="SynLead 0322" hbank="87" lbank="66" prog="95" />
+ <Patch name="Digital Ld 2" hbank="87" lbank="66" prog="96" />
+ <Patch name="X-Sink Delay" hbank="87" lbank="66" prog="97" />
+ <Patch name="Noized Lead" hbank="87" lbank="66" prog="98" />
+ <Patch name="Space Lead" hbank="87" lbank="66" prog="99" />
+ <Patch name="Destroyed Ld" hbank="87" lbank="66" prog="100" />
+ <Patch name="SyncModulate" hbank="87" lbank="66" prog="101" />
+ <Patch name="Sync Tank" hbank="87" lbank="66" prog="102" />
+ <Patch name="Squareheads" hbank="87" lbank="66" prog="103" />
+ <Patch name="Distorted MG" hbank="87" lbank="66" prog="104" />
+ <Patch name="SonicVampire" hbank="87" lbank="66" prog="105" />
+ <Patch name="Blue Meanie" hbank="87" lbank="66" prog="106" />
+ <Patch name="Defcon" hbank="87" lbank="66" prog="107" />
+ <Patch name="Stimulation" hbank="87" lbank="66" prog="108" />
+ <Patch name="Sub Hit" hbank="87" lbank="66" prog="109" />
+ <Patch name="Blue Ice" hbank="87" lbank="66" prog="110" />
+ <Patch name=".16 Orch" hbank="87" lbank="66" prog="111" />
+ <Patch name="In da Cave" hbank="87" lbank="66" prog="112" />
+ <Patch name="BlastfrmPast" hbank="87" lbank="66" prog="113" />
+ <Patch name="Smear Hit 1" hbank="87" lbank="66" prog="114" />
+ <Patch name="Smear Hit 2" hbank="87" lbank="66" prog="115" />
+ <Patch name="Good Old Hit" hbank="87" lbank="66" prog="116" />
+ <Patch name="Mix Hit 1" hbank="87" lbank="66" prog="117" />
+ <Patch name="Philly Hit" hbank="87" lbank="66" prog="118" />
+ <Patch name="Mojo Man" hbank="87" lbank="66" prog="119" />
+ <Patch name="Cheezy Movie" hbank="87" lbank="66" prog="120" />
+ <Patch name="Mix Hit 2" hbank="87" lbank="66" prog="121" />
+ <Patch name="Lo-Fi Hit" hbank="87" lbank="66" prog="122" />
+ <Patch name="2ble Action" hbank="87" lbank="66" prog="123" />
+ <Patch name="Funk Chank" hbank="87" lbank="66" prog="124" />
+ <Patch name="Venus" hbank="87" lbank="66" prog="125" />
+ <Patch name="AluminmWires" hbank="87" lbank="66" prog="126" />
+ <Patch name="Raven Chord" hbank="87" lbank="66" prog="127" />
+ </PatchGroup>
+ <PatchGroup name="Preset D">
+ <Patch name="HPF Sweep" hbank="87" lbank="67" prog="0" />
+ <Patch name="Moon Synth" hbank="87" lbank="67" prog="1" />
+ <Patch name="DelyResoSaws" hbank="87" lbank="67" prog="2" />
+ <Patch name="R-Trance" hbank="87" lbank="67" prog="3" />
+ <Patch name="Alfa Retro" hbank="87" lbank="67" prog="4" />
+ <Patch name="Nu Hoover" hbank="87" lbank="67" prog="5" />
+ <Patch name="Hoovercraft" hbank="87" lbank="67" prog="6" />
+ <Patch name="Braatz" hbank="87" lbank="67" prog="7" />
+ <Patch name="AllinOneRiff" hbank="87" lbank="67" prog="8" />
+ <Patch name="YZ Again" hbank="87" lbank="67" prog="9" />
+ <Patch name="Flazzy Lead" hbank="87" lbank="67" prog="10" />
+ <Patch name="Coffee Bee" hbank="87" lbank="67" prog="11" />
+ <Patch name="Sweet House" hbank="87" lbank="67" prog="12" />
+ <Patch name="Alien Bubble" hbank="87" lbank="67" prog="13" />
+ <Patch name="LowFreqHit" hbank="87" lbank="67" prog="14" />
+ <Patch name="Fred n Barney" hbank="87" lbank="67" prog="15" />
+ <Patch name="Periscope" hbank="87" lbank="67" prog="16" />
+ <Patch name="Electrostars" hbank="87" lbank="67" prog="17" />
+ <Patch name="Going Mad!" hbank="87" lbank="67" prog="18" />
+ <Patch name="LoFiSequence" hbank="87" lbank="67" prog="19" />
+ <Patch name="DreamInColor" hbank="87" lbank="67" prog="20" />
+ <Patch name="MelodicDrums" hbank="87" lbank="67" prog="21" />
+ <Patch name="Techno Snips" hbank="87" lbank="67" prog="22" />
+ <Patch name="TB Wah" hbank="87" lbank="67" prog="23" />
+ <Patch name="Waving TB303" hbank="87" lbank="67" prog="24" />
+ <Patch name="Digi Seq" hbank="87" lbank="67" prog="25" />
+ <Patch name="Seq Saw" hbank="87" lbank="67" prog="26" />
+ <Patch name="Reso Seq Saw" hbank="87" lbank="67" prog="27" />
+ <Patch name="DetuneSeqSaw" hbank="87" lbank="67" prog="28" />
+ <Patch name="Technotribe" hbank="87" lbank="67" prog="29" />
+ <Patch name="MetalVoxBox" hbank="87" lbank="67" prog="30" />
+ <Patch name="Teethy Grit" hbank="87" lbank="67" prog="31" />
+ <Patch name="Repertition" hbank="87" lbank="67" prog="32" />
+ <Patch name="Jucy Saw" hbank="87" lbank="67" prog="33" />
+ <Patch name="Cue Tip" hbank="87" lbank="67" prog="34" />
+ <Patch name="TB-Sequence" hbank="87" lbank="67" prog="35" />
+ <Patch name="Europe Xpres" hbank="87" lbank="67" prog="36" />
+ <Patch name="Squeepy" hbank="87" lbank="67" prog="37" />
+ <Patch name="Atmorave" hbank="87" lbank="67" prog="38" />
+ <Patch name="DOC Stack" hbank="87" lbank="67" prog="39" />
+ <Patch name="Sweep Lead" hbank="87" lbank="67" prog="40" />
+ <Patch name="Digitaless" hbank="87" lbank="67" prog="41" />
+ <Patch name="Flip Pad" hbank="87" lbank="67" prog="42" />
+ <Patch name="Short Detune" hbank="87" lbank="67" prog="43" />
+ <Patch name="forSequence" hbank="87" lbank="67" prog="44" />
+ <Patch name="Memory Pluck" hbank="87" lbank="67" prog="45" />
+ <Patch name="Metalic Bass" hbank="87" lbank="67" prog="46" />
+ <Patch name="Aqua" hbank="87" lbank="67" prog="47" />
+ <Patch name="Big Planet" hbank="87" lbank="67" prog="48" />
+ <Patch name="Wet Atax" hbank="87" lbank="67" prog="49" />
+ <Patch name="Houze Clavi" hbank="87" lbank="67" prog="50" />
+ <Patch name="SuperSawSlow" hbank="87" lbank="67" prog="51" />
+ <Patch name="TranceSaws" hbank="87" lbank="67" prog="52" />
+ <Patch name="Trancy Synth" hbank="87" lbank="67" prog="53" />
+ <Patch name="Saw Stack" hbank="87" lbank="67" prog="54" />
+ <Patch name="Frgile Saws" hbank="87" lbank="67" prog="55" />
+ <Patch name="Steamed Sawz" hbank="87" lbank="67" prog="56" />
+ <Patch name="RAVtune" hbank="87" lbank="67" prog="57" />
+ <Patch name="Bustranza" hbank="87" lbank="67" prog="58" />
+ <Patch name="AftTch Ji-n" hbank="87" lbank="67" prog="59" />
+ <Patch name="JP OctAttack" hbank="87" lbank="67" prog="60" />
+ <Patch name="Oct Unison" hbank="87" lbank="67" prog="61" />
+ <Patch name="Xtatic" hbank="87" lbank="67" prog="62" />
+ <Patch name="Dirty Combo" hbank="87" lbank="67" prog="63" />
+ <Patch name="FM-s Attack" hbank="87" lbank="67" prog="64" />
+ <Patch name="Impression" hbank="87" lbank="67" prog="65" />
+ <Patch name="Digi-vox Syn" hbank="87" lbank="67" prog="66" />
+ <Patch name="Fairy Factor" hbank="87" lbank="67" prog="67" />
+ <Patch name="Tempest" hbank="87" lbank="67" prog="68" />
+ <Patch name="X-Racer" hbank="87" lbank="67" prog="69" />
+ <Patch name="TB Booster" hbank="87" lbank="67" prog="70" />
+ <Patch name="Syn-Orch/Mod" hbank="87" lbank="67" prog="71" />
+ <Patch name="Pressyn" hbank="87" lbank="67" prog="72" />
+ <Patch name="High Five" hbank="87" lbank="67" prog="73" />
+ <Patch name="4DaCommonMan" hbank="87" lbank="67" prog="74" />
+ <Patch name="Orgaenia" hbank="87" lbank="67" prog="75" />
+ <Patch name="Sleeper" hbank="87" lbank="67" prog="76" />
+ <Patch name="Sugar Synth" hbank="87" lbank="67" prog="77" />
+ <Patch name="Ice Palace" hbank="87" lbank="67" prog="78" />
+ <Patch name="Story Harp" hbank="87" lbank="67" prog="79" />
+ <Patch name="LostParabise" hbank="87" lbank="67" prog="80" />
+ <Patch name="Magnetic 5th" hbank="87" lbank="67" prog="81" />
+ <Patch name="Jazz Doos" hbank="87" lbank="67" prog="82" />
+ <Patch name="Beat Vox" hbank="87" lbank="67" prog="83" />
+ <Patch name="Scat Beats" hbank="87" lbank="67" prog="84" />
+ <Patch name="Choir Aahs 1" hbank="87" lbank="67" prog="85" />
+ <Patch name="Choir Aahs 2" hbank="87" lbank="67" prog="86" />
+ <Patch name="ChoirOoh/Aft" hbank="87" lbank="67" prog="87" />
+ <Patch name="Angels Choir" hbank="87" lbank="67" prog="88" />
+ <Patch name="Angelique" hbank="87" lbank="67" prog="89" />
+ <Patch name="Gospel Oohs" hbank="87" lbank="67" prog="90" />
+ <Patch name="Uhmmm" hbank="87" lbank="67" prog="91" />
+ <Patch name="Aah Vox" hbank="87" lbank="67" prog="92" />
+ <Patch name="Morning Star" hbank="87" lbank="67" prog="93" />
+ <Patch name="Syn Opera" hbank="87" lbank="67" prog="94" />
+ <Patch name="BeautifulOne" hbank="87" lbank="67" prog="95" />
+ <Patch name="Ooze" hbank="87" lbank="67" prog="96" />
+ <Patch name="Aerial Choir" hbank="87" lbank="67" prog="97" />
+ <Patch name="3D Vox" hbank="87" lbank="67" prog="98" />
+ <Patch name="FS Sqr Pad" hbank="87" lbank="67" prog="99" />
+ <Patch name="FS Hollow" hbank="87" lbank="67" prog="100" />
+ <Patch name="Silk Pad" hbank="87" lbank="67" prog="101" />
+ <Patch name="WarmReso Pad" hbank="87" lbank="67" prog="102" />
+ <Patch name="FS Soft Pad" hbank="87" lbank="67" prog="103" />
+ <Patch name="Soft Breeze" hbank="87" lbank="67" prog="104" />
+ <Patch name="JP Strings 1" hbank="87" lbank="67" prog="105" />
+ <Patch name="JP Strings 2" hbank="87" lbank="67" prog="106" />
+ <Patch name="FS Syn Str" hbank="87" lbank="67" prog="107" />
+ <Patch name="Syn Strings" hbank="87" lbank="67" prog="108" />
+ <Patch name="OB Slow Str" hbank="87" lbank="67" prog="109" />
+ <Patch name="Super SynStr" hbank="87" lbank="67" prog="110" />
+ <Patch name="Strings Pad" hbank="87" lbank="67" prog="111" />
+ <Patch name="RnB SoftPad" hbank="87" lbank="67" prog="112" />
+ <Patch name="Reso Pad" hbank="87" lbank="67" prog="113" />
+ <Patch name="Phat Pad" hbank="87" lbank="67" prog="114" />
+ <Patch name="FS PhaserPad" hbank="87" lbank="67" prog="115" />
+ <Patch name="Mystic Str" hbank="87" lbank="67" prog="116" />
+ <Patch name="Glass Organ" hbank="87" lbank="67" prog="117" />
+ <Patch name="Wind Pad" hbank="87" lbank="67" prog="118" />
+ <Patch name="Combination" hbank="87" lbank="67" prog="119" />
+ <Patch name="HumanKindnes" hbank="87" lbank="67" prog="120" />
+ <Patch name="Atmospherics" hbank="87" lbank="67" prog="121" />
+ <Patch name="Terra Nostra" hbank="87" lbank="67" prog="122" />
+ <Patch name="OB Aaahs" hbank="87" lbank="67" prog="123" />
+ <Patch name="Vulcano Pad" hbank="87" lbank="67" prog="124" />
+ <Patch name="Cloud" hbank="87" lbank="67" prog="125" />
+ <Patch name="Lostscapes" hbank="87" lbank="67" prog="126" />
+ <Patch name="Organic Pad" hbank="87" lbank="67" prog="127" />
+ </PatchGroup>
+ <PatchGroup name="Preset E">
+ <Patch name="Digital Aahs" hbank="87" lbank="68" prog="0" />
+ <Patch name="FreezinNight" hbank="87" lbank="68" prog="1" />
+ <Patch name="FS MovinPad" hbank="87" lbank="68" prog="2" />
+ <Patch name="Seq-Pad 1" hbank="87" lbank="68" prog="3" />
+ <Patch name="Digi-Swell" hbank="87" lbank="68" prog="4" />
+ <Patch name="Stringship" hbank="87" lbank="68" prog="5" />
+ <Patch name="SaturnHolida" hbank="87" lbank="68" prog="6" />
+ <Patch name="India Garden" hbank="87" lbank="68" prog="7" />
+ <Patch name="OB Rezo Pad" hbank="87" lbank="68" prog="8" />
+ <Patch name="Sonic Surfer" hbank="87" lbank="68" prog="9" />
+ <Patch name="2 Point 2" hbank="87" lbank="68" prog="10" />
+ <Patch name="2.2 Pad" hbank="87" lbank="68" prog="11" />
+ <Patch name="New Year Day" hbank="87" lbank="68" prog="12" />
+ <Patch name="Mod Dare" hbank="87" lbank="68" prog="13" />
+ <Patch name="Neuro-Drone" hbank="87" lbank="68" prog="14" />
+ <Patch name="In The Pass" hbank="87" lbank="68" prog="15" />
+ <Patch name="Polar Night" hbank="87" lbank="68" prog="16" />
+ <Patch name="Electric Pad" hbank="87" lbank="68" prog="17" />
+ <Patch name="MistOver5ths" hbank="87" lbank="68" prog="18" />
+ <Patch name="Voyager" hbank="87" lbank="68" prog="19" />
+ <Patch name="Cosmic Rays" hbank="87" lbank="68" prog="20" />
+ <Patch name="Gritty Pad" hbank="87" lbank="68" prog="21" />
+ <Patch name="Distant Sun" hbank="87" lbank="68" prog="22" />
+ <Patch name="Filmscape" hbank="87" lbank="68" prog="23" />
+ <Patch name="BillionStars" hbank="87" lbank="68" prog="24" />
+ <Patch name="Sand Pad" hbank="87" lbank="68" prog="25" />
+ <Patch name="Fat Stacks" hbank="87" lbank="68" prog="26" />
+ <Patch name="ReverseSweep" hbank="87" lbank="68" prog="27" />
+ <Patch name="HugeSoundMod" hbank="87" lbank="68" prog="28" />
+ <Patch name="Metal Swell" hbank="87" lbank="68" prog="29" />
+ <Patch name="ShapeURMusic" hbank="87" lbank="68" prog="30" />
+ <Patch name="Synth Force" hbank="87" lbank="68" prog="31" />
+ <Patch name="Trance Split" hbank="87" lbank="68" prog="32" />
+ <Patch name="Step Tronce" hbank="87" lbank="68" prog="33" />
+ <Patch name="Chop Synth" hbank="87" lbank="68" prog="34" />
+ <Patch name="Euro Teuro" hbank="87" lbank="68" prog="35" />
+ <Patch name="Auto Trance" hbank="87" lbank="68" prog="36" />
+ <Patch name="Eureggae" hbank="87" lbank="68" prog="37" />
+ <Patch name="Sorry4theDLY" hbank="87" lbank="68" prog="38" />
+ <Patch name="Beat Pad" hbank="87" lbank="68" prog="39" />
+ <Patch name="FS ResoStep" hbank="87" lbank="68" prog="40" />
+ <Patch name="TMT Seq Pad" hbank="87" lbank="68" prog="41" />
+ <Patch name="ZipDoggyDoDa" hbank="87" lbank="68" prog="42" />
+ <Patch name="ForYourBreak" hbank="87" lbank="68" prog="43" />
+ <Patch name="HPF Slicer" hbank="87" lbank="68" prog="44" />
+ <Patch name="DarknessSide" hbank="87" lbank="68" prog="45" />
+ <Patch name="Sliced Choir" hbank="87" lbank="68" prog="46" />
+ <Patch name="Digi-Doo" hbank="87" lbank="68" prog="47" />
+ <Patch name="PanningFrmnt" hbank="87" lbank="68" prog="48" />
+ <Patch name="Dirty Beat" hbank="87" lbank="68" prog="49" />
+ <Patch name="Hellrazor" hbank="87" lbank="68" prog="50" />
+ <Patch name="Electrons" hbank="87" lbank="68" prog="51" />
+ <Patch name="Protons" hbank="87" lbank="68" prog="52" />
+ <Patch name="FS Alfa Rave" hbank="87" lbank="68" prog="53" />
+ <Patch name="Brisk Vortex" hbank="87" lbank="68" prog="54" />
+ <Patch name="FS Throbulax" hbank="87" lbank="68" prog="55" />
+ <Patch name="FS Lonizer" hbank="87" lbank="68" prog="56" />
+ <Patch name="FS Strobe" hbank="87" lbank="68" prog="57" />
+ <Patch name="VirtualHuman" hbank="87" lbank="68" prog="58" />
+ <Patch name="FS Line" hbank="87" lbank="68" prog="59" />
+ <Patch name="StepPitShift" hbank="87" lbank="68" prog="60" />
+ <Patch name="Sever" hbank="87" lbank="68" prog="61" />
+ <Patch name="Pad Pulses" hbank="87" lbank="68" prog="62" />
+ <Patch name="Dub Tales" hbank="87" lbank="68" prog="63" />
+ <Patch name="Seq-Pad 2" hbank="87" lbank="68" prog="64" />
+ <Patch name="Nice Kalimba" hbank="87" lbank="68" prog="65" />
+ <Patch name="Quiet River" hbank="87" lbank="68" prog="66" />
+ <Patch name="Teky Drop" hbank="87" lbank="68" prog="67" />
+ <Patch name="Pat is away" hbank="87" lbank="68" prog="68" />
+ <Patch name="FS Sitar 1" hbank="87" lbank="68" prog="69" />
+ <Patch name="FS Sitar 2" hbank="87" lbank="68" prog="70" />
+ <Patch name="Sitar on C" hbank="87" lbank="68" prog="71" />
+ <Patch name="Sitar Baby" hbank="87" lbank="68" prog="72" />
+ <Patch name="EasternDlite" hbank="87" lbank="68" prog="73" />
+ <Patch name="Elec Sitar" hbank="87" lbank="68" prog="74" />
+ <Patch name="Neo Sitar" hbank="87" lbank="68" prog="75" />
+ <Patch name="Bosporus" hbank="87" lbank="68" prog="76" />
+ <Patch name="Santur Stack" hbank="87" lbank="68" prog="77" />
+ <Patch name="Aerial Harp" hbank="87" lbank="68" prog="78" />
+ <Patch name="Harpiness" hbank="87" lbank="68" prog="79" />
+ <Patch name="TroubadorEns" hbank="87" lbank="68" prog="80" />
+ <Patch name="Jamisen" hbank="87" lbank="68" prog="81" />
+ <Patch name="Koto" hbank="87" lbank="68" prog="82" />
+ <Patch name="Monsoon" hbank="87" lbank="68" prog="83" />
+ <Patch name="Bend Koto" hbank="87" lbank="68" prog="84" />
+ <Patch name="LongDistance" hbank="87" lbank="68" prog="85" />
+ <Patch name="Ambi Shaku" hbank="87" lbank="68" prog="86" />
+ <Patch name="FS PipeDream" hbank="87" lbank="68" prog="87" />
+ <Patch name="FS Lochscape" hbank="87" lbank="68" prog="88" />
+ <Patch name="FS Far East" hbank="87" lbank="68" prog="89" />
+ <Patch name="Banjo" hbank="87" lbank="68" prog="90" />
+ <Patch name="Breath Slice" hbank="87" lbank="68" prog="91" />
+ <Patch name="Lazer Points" hbank="87" lbank="68" prog="92" />
+ <Patch name="Chaos 2003" hbank="87" lbank="68" prog="93" />
+ <Patch name="SoundOnSound" hbank="87" lbank="68" prog="94" />
+ <Patch name="Low Beat-S" hbank="87" lbank="68" prog="95" />
+ <Patch name="Control Room" hbank="87" lbank="68" prog="96" />
+ <Patch name="FS Try This!" hbank="87" lbank="68" prog="97" />
+ <Patch name="OutOf sortz" hbank="87" lbank="68" prog="98" />
+ <Patch name="Seq" hbank="87" lbank="68" prog="99" />
+ <Patch name="Scatter" hbank="87" lbank="68" prog="100" />
+ <Patch name="WaitnOutside" hbank="87" lbank="68" prog="101" />
+ <Patch name="Ambience" hbank="87" lbank="68" prog="102" />
+ <Patch name="Fantom Noise" hbank="87" lbank="68" prog="103" />
+ <Patch name="Breath Echo" hbank="87" lbank="68" prog="104" />
+ <Patch name="SoundStrange" hbank="87" lbank="68" prog="105" />
+ <Patch name="Cosmic Pulse" hbank="87" lbank="68" prog="106" />
+ <Patch name="Faked Piano" hbank="87" lbank="68" prog="107" />
+ <Patch name="Tubulence" hbank="87" lbank="68" prog="108" />
+ <Patch name="South Pole" hbank="87" lbank="68" prog="109" />
+ <Patch name="FS Crystal" hbank="87" lbank="68" prog="110" />
+ <Patch name="ResoSweep Dn" hbank="87" lbank="68" prog="111" />
+ <Patch name="Zap B3 n C4" hbank="87" lbank="68" prog="112" />
+ <Patch name="PolySweep Nz" hbank="87" lbank="68" prog="113" />
+ <Patch name="New Planetz" hbank="87" lbank="68" prog="114" />
+ <Patch name="Strange Land" hbank="87" lbank="68" prog="115" />
+ <Patch name="Trancer" hbank="87" lbank="68" prog="116" />
+ <Patch name="S and H Voc" hbank="87" lbank="68" prog="117" />
+ <Patch name="12th Planet" hbank="87" lbank="68" prog="118" />
+ <Patch name="Ambidextrous" hbank="87" lbank="68" prog="119" />
+ <Patch name="En-co-re" hbank="87" lbank="68" prog="120" />
+ <Patch name="Mobile Phone" hbank="87" lbank="68" prog="121" />
+ <Patch name="Beat (C4)" hbank="87" lbank="68" prog="122" />
+ <Patch name="StepLFO Ens" hbank="87" lbank="68" prog="123" />
+ <Patch name="Timpani+Low" hbank="87" lbank="68" prog="124" />
+ <Patch name="Timpani Roll" hbank="87" lbank="68" prog="125" />
+ <Patch name="Bass Drum" hbank="87" lbank="68" prog="126" />
+ <Patch name="Techno Craft" hbank="87" lbank="68" prog="127" />
+ </PatchGroup>
+ <PatchGroup name="Preset F">
+ <Patch name="ConcertGrand" hbank="87" lbank="69" prog="0" />
+ <Patch name="Hall Concert" hbank="87" lbank="69" prog="1" />
+ <Patch name="Bright Tune" hbank="87" lbank="69" prog="2" />
+ <Patch name="Mellow Tune" hbank="87" lbank="69" prog="3" />
+ <Patch name="Back E-Grand" hbank="87" lbank="69" prog="4" />
+ <Patch name="Rhodes mkI" hbank="87" lbank="69" prog="5" />
+ <Patch name="Stage Rhodes" hbank="87" lbank="69" prog="6" />
+ <Patch name="MKS20EnsemEP" hbank="87" lbank="69" prog="7" />
+ <Patch name="UltimatGrand" hbank="87" lbank="69" prog="8" />
+ <Patch name="X Pure Grand" hbank="87" lbank="69" prog="9" />
+ <Patch name="Studio Grand" hbank="87" lbank="69" prog="10" />
+ <Patch name="88ConcertPno" hbank="87" lbank="69" prog="11" />
+ <Patch name="DryStudio88" hbank="87" lbank="69" prog="12" />
+ <Patch name="First Choice" hbank="87" lbank="69" prog="13" />
+ <Patch name="Rokkin pF" hbank="87" lbank="69" prog="14" />
+ <Patch name="Dark Grand" hbank="87" lbank="69" prog="15" />
+ <Patch name="Piano Oz" hbank="87" lbank="69" prog="16" />
+ <Patch name="Grand Hall" hbank="87" lbank="69" prog="17" />
+ <Patch name="X Piano +Str" hbank="87" lbank="69" prog="18" />
+ <Patch name="Arie Piano" hbank="87" lbank="69" prog="19" />
+ <Patch name="Cicada Piano" hbank="87" lbank="69" prog="20" />
+ <Patch name="Clare Voyent" hbank="87" lbank="69" prog="21" />
+ <Patch name="X Piano +Pad" hbank="87" lbank="69" prog="22" />
+ <Patch name="X Piano +Vox" hbank="87" lbank="69" prog="23" />
+ <Patch name="FX Piano" hbank="87" lbank="69" prog="24" />
+ <Patch name="AmbientPiano" hbank="87" lbank="69" prog="25" />
+ <Patch name="Tre Rhodes" hbank="87" lbank="69" prog="26" />
+ <Patch name="Stage Phazer" hbank="87" lbank="69" prog="27" />
+ <Patch name="StageCabinet" hbank="87" lbank="69" prog="28" />
+ <Patch name="AMP Rhodes" hbank="87" lbank="69" prog="29" />
+ <Patch name="VelPanWurly" hbank="87" lbank="69" prog="30" />
+ <Patch name="Mr.AXXE" hbank="87" lbank="69" prog="31" />
+ <Patch name="1983 EP" hbank="87" lbank="69" prog="32" />
+ <Patch name="EP Stack" hbank="87" lbank="69" prog="33" />
+ <Patch name="EP Belle" hbank="87" lbank="69" prog="34" />
+ <Patch name="Chocolate EP" hbank="87" lbank="69" prog="35" />
+ <Patch name="Abstract EP" hbank="87" lbank="69" prog="36" />
+ <Patch name="Ringy EP" hbank="87" lbank="69" prog="37" />
+ <Patch name="Hipchord" hbank="87" lbank="69" prog="38" />
+ <Patch name="Snappy Clav" hbank="87" lbank="69" prog="39" />
+ <Patch name="Over-D6" hbank="87" lbank="69" prog="40" />
+ <Patch name="CoupleHarpsi" hbank="87" lbank="69" prog="41" />
+ <Patch name="HimalayaThaw" hbank="87" lbank="69" prog="42" />
+ <Patch name="Ballad Bells" hbank="87" lbank="69" prog="43" />
+ <Patch name="Bell Monitor" hbank="87" lbank="69" prog="44" />
+ <Patch name="SideBandBell" hbank="87" lbank="69" prog="45" />
+ <Patch name="SBF Saw Bell" hbank="87" lbank="69" prog="46" />
+ <Patch name="TubyRuesday" hbank="87" lbank="69" prog="47" />
+ <Patch name="Music Box 2" hbank="87" lbank="69" prog="48" />
+ <Patch name="AirPluck" hbank="87" lbank="69" prog="49" />
+ <Patch name="Airie Vibez" hbank="87" lbank="69" prog="50" />
+ <Patch name="Ringy Vibes" hbank="87" lbank="69" prog="51" />
+ <Patch name="50 SteelDrms" hbank="87" lbank="69" prog="52" />
+ <Patch name="VKHold4Speed" hbank="87" lbank="69" prog="53" />
+ <Patch name="X Perc Organ" hbank="87" lbank="69" prog="54" />
+ <Patch name="Rocky Organ" hbank="87" lbank="69" prog="55" />
+ <Patch name="Purple Organ" hbank="87" lbank="69" prog="56" />
+ <Patch name="Phono Organ" hbank="87" lbank="69" prog="57" />
+ <Patch name="Mid Pipe Org" hbank="87" lbank="69" prog="58" />
+ <Patch name="ParisRomance" hbank="87" lbank="69" prog="59" />
+ <Patch name="La Seine" hbank="87" lbank="69" prog="60" />
+ <Patch name="VntgAccrdion" hbank="87" lbank="69" prog="61" />
+ <Patch name="Oktoberfest" hbank="87" lbank="69" prog="62" />
+ <Patch name="NaturalNylon" hbank="87" lbank="69" prog="63" />
+ <Patch name="Nylon Gtr VS" hbank="87" lbank="69" prog="64" />
+ <Patch name="Double Nylon" hbank="87" lbank="69" prog="65" />
+ <Patch name="Mellow Nylon" hbank="87" lbank="69" prog="66" />
+ <Patch name="FlamencoGt X" hbank="87" lbank="69" prog="67" />
+ <Patch name="El Toro Gtr" hbank="87" lbank="69" prog="68" />
+ <Patch name="Dyna Nylon" hbank="87" lbank="69" prog="69" />
+ <Patch name="NylonGt /HO" hbank="87" lbank="69" prog="70" />
+ <Patch name="Nylon 4way" hbank="87" lbank="69" prog="71" />
+ <Patch name="Nyl-Intro" hbank="87" lbank="69" prog="72" />
+ <Patch name="Nylon Dreams" hbank="87" lbank="69" prog="73" />
+ <Patch name="With Love" hbank="87" lbank="69" prog="74" />
+ <Patch name="Amore Story" hbank="87" lbank="69" prog="75" />
+ <Patch name="Interlude" hbank="87" lbank="69" prog="76" />
+ <Patch name="Sweet Tears" hbank="87" lbank="69" prog="77" />
+ <Patch name="WithALtlHelp" hbank="87" lbank="69" prog="78" />
+ <Patch name="Double Track" hbank="87" lbank="69" prog="79" />
+ <Patch name="Mystic Gtr" hbank="87" lbank="69" prog="80" />
+ <Patch name="Cut Thru Wah" hbank="87" lbank="69" prog="81" />
+ <Patch name="GuitaratiuG" hbank="87" lbank="69" prog="82" />
+ <Patch name="WahGt Riff" hbank="87" lbank="69" prog="83" />
+ <Patch name="Larsen /Aft" hbank="87" lbank="69" prog="84" />
+ <Patch name="Darmstrat X" hbank="87" lbank="69" prog="85" />
+ <Patch name="Rockin Dly" hbank="87" lbank="69" prog="86" />
+ <Patch name="DistGt Mt" hbank="87" lbank="69" prog="87" />
+ <Patch name="GTR Heroes" hbank="87" lbank="69" prog="88" />
+ <Patch name="X Mute Bass" hbank="87" lbank="69" prog="89" />
+ <Patch name="Nu Finger Bs" hbank="87" lbank="69" prog="90" />
+ <Patch name="Soulfinger" hbank="87" lbank="69" prog="91" />
+ <Patch name="X Finger Bs 1" hbank="87" lbank="69" prog="92" />
+ <Patch name="StickyOctave" hbank="87" lbank="69" prog="93" />
+ <Patch name="Bass n Amp" hbank="87" lbank="69" prog="94" />
+ <Patch name="Chorus Bass" hbank="87" lbank="69" prog="95" />
+ <Patch name="X 5String Bs" hbank="87" lbank="69" prog="96" />
+ <Patch name="6-Pack Stick" hbank="87" lbank="69" prog="97" />
+ <Patch name="Nu Pick Bass" hbank="87" lbank="69" prog="98" />
+ <Patch name="Comp Picker" hbank="87" lbank="69" prog="99" />
+ <Patch name="X Finger Bs2" hbank="87" lbank="69" prog="100" />
+ <Patch name="X Picked Bs" hbank="87" lbank="69" prog="101" />
+ <Patch name="Mutation" hbank="87" lbank="69" prog="102" />
+ <Patch name="X Slap Bass" hbank="87" lbank="69" prog="103" />
+ <Patch name="Fuzz Mute" hbank="87" lbank="69" prog="104" />
+ <Patch name="Doubled Bass" hbank="87" lbank="69" prog="105" />
+ <Patch name="NewAge Frtls" hbank="87" lbank="69" prog="106" />
+ <Patch name="Powerline" hbank="87" lbank="69" prog="107" />
+ <Patch name="Reso SynBass" hbank="87" lbank="69" prog="108" />
+ <Patch name="Synth Bassic" hbank="87" lbank="69" prog="109" />
+ <Patch name="Down 4 It" hbank="87" lbank="69" prog="110" />
+ <Patch name="Glider Bass" hbank="87" lbank="69" prog="111" />
+ <Patch name="Fundamental" hbank="87" lbank="69" prog="112" />
+ <Patch name="Artus Bass" hbank="87" lbank="69" prog="113" />
+ <Patch name="Sweet n Low" hbank="87" lbank="69" prog="114" />
+ <Patch name="Change It" hbank="87" lbank="69" prog="115" />
+ <Patch name="the ONE" hbank="87" lbank="69" prog="116" />
+ <Patch name="ChoruSE ONE" hbank="87" lbank="69" prog="117" />
+ <Patch name="Eyes Bass" hbank="87" lbank="69" prog="118" />
+ <Patch name="Secret Bass" hbank="87" lbank="69" prog="119" />
+ <Patch name="Base BoX" hbank="87" lbank="69" prog="120" />
+ <Patch name="Nu RnB Bass" hbank="87" lbank="69" prog="121" />
+ <Patch name="D n Bass" hbank="87" lbank="69" prog="122" />
+ <Patch name="DnB Bass 1" hbank="87" lbank="69" prog="123" />
+ <Patch name="Fat Bottom" hbank="87" lbank="69" prog="124" />
+ <Patch name="Deep S-E" hbank="87" lbank="69" prog="125" />
+ <Patch name="Nu Bace" hbank="87" lbank="69" prog="126" />
+ <Patch name="Mini Like!" hbank="87" lbank="69" prog="127" />
+ </PatchGroup>
+ <PatchGroup name="Preset G">
+ <Patch name="Da Chronic" hbank="87" lbank="70" prog="0" />
+ <Patch name="Virtual RnBs" hbank="87" lbank="70" prog="1" />
+ <Patch name="Not a Bass" hbank="87" lbank="70" prog="2" />
+ <Patch name="Nu RnB Saw 1" hbank="87" lbank="70" prog="3" />
+ <Patch name="Nu RnB Saw 2" hbank="87" lbank="70" prog="4" />
+ <Patch name="Buzzy Bs" hbank="87" lbank="70" prog="5" />
+ <Patch name="SBF Saw Bs" hbank="87" lbank="70" prog="6" />
+ <Patch name="Party Bass" hbank="87" lbank="70" prog="7" />
+ <Patch name="Tomrubber" hbank="87" lbank="70" prog="8" />
+ <Patch name="Drop Bass" hbank="87" lbank="70" prog="9" />
+ <Patch name="Filament" hbank="87" lbank="70" prog="10" />
+ <Patch name="Dust Bass" hbank="87" lbank="70" prog="11" />
+ <Patch name="Mr. Nasty" hbank="87" lbank="70" prog="12" />
+ <Patch name="Bass Drive" hbank="87" lbank="70" prog="13" />
+ <Patch name="Underneath" hbank="87" lbank="70" prog="14" />
+ <Patch name="Dirt n Grime" hbank="87" lbank="70" prog="15" />
+ <Patch name="Down n Dirty" hbank="87" lbank="70" prog="16" />
+ <Patch name="SubOscar" hbank="87" lbank="70" prog="17" />
+ <Patch name="Full Strings" hbank="87" lbank="70" prog="18" />
+ <Patch name="X StrSection" hbank="87" lbank="70" prog="19" />
+ <Patch name="Oct Strings" hbank="87" lbank="70" prog="20" />
+ <Patch name="Sahara Str" hbank="87" lbank="70" prog="21" />
+ <Patch name="Random Mood" hbank="87" lbank="70" prog="22" />
+ <Patch name="X Hall Str" hbank="87" lbank="70" prog="23" />
+ <Patch name="Strings Flow" hbank="87" lbank="70" prog="24" />
+ <Patch name="Biggie Bows" hbank="87" lbank="70" prog="25" />
+ <Patch name="Staccato VS" hbank="87" lbank="70" prog="26" />
+ <Patch name="So Staccato" hbank="87" lbank="70" prog="27" />
+ <Patch name="Pizz-Stac VS" hbank="87" lbank="70" prog="28" />
+ <Patch name="Mellow Tron" hbank="87" lbank="70" prog="29" />
+ <Patch name="Moody Tron" hbank="87" lbank="70" prog="30" />
+ <Patch name="Tronic Str" hbank="87" lbank="70" prog="31" />
+ <Patch name="Machine Str" hbank="87" lbank="70" prog="32" />
+ <Patch name="Symphonika" hbank="87" lbank="70" prog="33" />
+ <Patch name="Pop Orch" hbank="87" lbank="70" prog="34" />
+ <Patch name="Contemp Orch" hbank="87" lbank="70" prog="35" />
+ <Patch name="Orange Skin" hbank="87" lbank="70" prog="36" />
+ <Patch name="Tutti" hbank="87" lbank="70" prog="37" />
+ <Patch name="Brass Ditt" hbank="87" lbank="70" prog="38" />
+ <Patch name="Housechord" hbank="87" lbank="70" prog="39" />
+ <Patch name="Mod Chord" hbank="87" lbank="70" prog="40" />
+ <Patch name="Dance Steam" hbank="87" lbank="70" prog="41" />
+ <Patch name="Disto Stab !" hbank="87" lbank="70" prog="42" />
+ <Patch name="Fairy Flute" hbank="87" lbank="70" prog="43" />
+ <Patch name="Chiffed Toot" hbank="87" lbank="70" prog="44" />
+ <Patch name="Hop Flute" hbank="87" lbank="70" prog="45" />
+ <Patch name="HimalayaPipe" hbank="87" lbank="70" prog="46" />
+ <Patch name="X Brs Sect 1" hbank="87" lbank="70" prog="47" />
+ <Patch name="Pop Stak Brs" hbank="87" lbank="70" prog="48" />
+ <Patch name="X Brs Sect 2" hbank="87" lbank="70" prog="49" />
+ <Patch name="Pop Brs wAtk" hbank="87" lbank="70" prog="50" />
+ <Patch name="Hybrid Brass" hbank="87" lbank="70" prog="51" />
+ <Patch name="Nu Stab Brs" hbank="87" lbank="70" prog="52" />
+ <Patch name="Heavy Brs 1" hbank="87" lbank="70" prog="53" />
+ <Patch name="Heavy Brs 2" hbank="87" lbank="70" prog="54" />
+ <Patch name="Wonder Brass" hbank="87" lbank="70" prog="55" />
+ <Patch name="Pop Brs Sfz" hbank="87" lbank="70" prog="56" />
+ <Patch name="Pop Brs Stac" hbank="87" lbank="70" prog="57" />
+ <Patch name="Brass Fall /" hbank="87" lbank="70" prog="58" />
+ <Patch name="X-Saw Brass1" hbank="87" lbank="70" prog="59" />
+ <Patch name="JP8000 Brass" hbank="87" lbank="70" prog="60" />
+ <Patch name="X-Saw Brass2" hbank="87" lbank="70" prog="61" />
+ <Patch name="Bend SynBrs" hbank="87" lbank="70" prog="62" />
+ <Patch name="Sax Heavy" hbank="87" lbank="70" prog="63" />
+ <Patch name="FXM Alto Sax" hbank="87" lbank="70" prog="64" />
+ <Patch name="Simply Nasty" hbank="87" lbank="70" prog="65" />
+ <Patch name="Deep Wine" hbank="87" lbank="70" prog="66" />
+ <Patch name="Bon Voyage" hbank="87" lbank="70" prog="67" />
+ <Patch name="Xpress Lead" hbank="87" lbank="70" prog="68" />
+ <Patch name="Body Electric" hbank="87" lbank="70" prog="69" />
+ <Patch name="Classic Lead" hbank="87" lbank="70" prog="70" />
+ <Patch name="Optik Synth" hbank="87" lbank="70" prog="71" />
+ <Patch name="Feat Lead" hbank="87" lbank="70" prog="72" />
+ <Patch name="X Sync Mod" hbank="87" lbank="70" prog="73" />
+ <Patch name="SBF Lead" hbank="87" lbank="70" prog="74" />
+ <Patch name="Hard Sync" hbank="87" lbank="70" prog="75" />
+ <Patch name="Rezo Sync" hbank="87" lbank="70" prog="76" />
+ <Patch name="Wire Sync" hbank="87" lbank="70" prog="77" />
+ <Patch name="Distro FXM" hbank="87" lbank="70" prog="78" />
+ <Patch name="Epic Lead" hbank="87" lbank="70" prog="79" />
+ <Patch name="Crumble Syn" hbank="87" lbank="70" prog="80" />
+ <Patch name="SlippingSaws" hbank="87" lbank="70" prog="81" />
+ <Patch name="Bag Lead" hbank="87" lbank="70" prog="82" />
+ <Patch name="Dirty Saw" hbank="87" lbank="70" prog="83" />
+ <Patch name="Wezcoast" hbank="87" lbank="70" prog="84" />
+ <Patch name="X-Saw Lead" hbank="87" lbank="70" prog="85" />
+ <Patch name="ActualAnalog" hbank="87" lbank="70" prog="86" />
+ <Patch name="SBF Reso" hbank="87" lbank="70" prog="87" />
+ <Patch name="SliCed Lead" hbank="87" lbank="70" prog="88" />
+ <Patch name="Synthi Fizz" hbank="87" lbank="70" prog="89" />
+ <Patch name="Mini Growl" hbank="87" lbank="70" prog="90" />
+ <Patch name="Jupiter Lead" hbank="87" lbank="70" prog="91" />
+ <Patch name="X-Pulse Lead" hbank="87" lbank="70" prog="92" />
+ <Patch name="Jupi Square" hbank="87" lbank="70" prog="93" />
+ <Patch name="TriStac Lead" hbank="87" lbank="70" prog="94" />
+ <Patch name="Modular Lead" hbank="87" lbank="70" prog="95" />
+ <Patch name="Sinetific" hbank="87" lbank="70" prog="96" />
+ <Patch name="Dirty D/A" hbank="87" lbank="70" prog="97" />
+ <Patch name="EuronalSynth" hbank="87" lbank="70" prog="98" />
+ <Patch name="Xtrem Sine" hbank="87" lbank="70" prog="99" />
+ <Patch name="Killerbeez" hbank="87" lbank="70" prog="100" />
+ <Patch name="Freeze Synth" hbank="87" lbank="70" prog="101" />
+ <Patch name="JamPacked!" hbank="87" lbank="70" prog="102" />
+ <Patch name="SawStacChd" hbank="87" lbank="70" prog="103" />
+ <Patch name="Trancepire" hbank="87" lbank="70" prog="104" />
+ <Patch name="Acid Lead" hbank="87" lbank="70" prog="105" />
+ <Patch name="Tranceformer" hbank="87" lbank="70" prog="106" />
+ <Patch name="Anadroid" hbank="87" lbank="70" prog="107" />
+ <Patch name="Shroomy" hbank="87" lbank="70" prog="108" />
+ <Patch name="SBF Nozer" hbank="87" lbank="70" prog="109" />
+ <Patch name="Voxulizer" hbank="87" lbank="70" prog="110" />
+ <Patch name="Wired Rez" hbank="87" lbank="70" prog="111" />
+ <Patch name="Noize R us" hbank="87" lbank="70" prog="112" />
+ <Patch name="Inner Voices" hbank="87" lbank="70" prog="113" />
+ <Patch name="Beep Melodie" hbank="87" lbank="70" prog="114" />
+ <Patch name="Alpha Hoover" hbank="87" lbank="70" prog="115" />
+ <Patch name="Steel Wire" hbank="87" lbank="70" prog="116" />
+ <Patch name="Rav-i-Toid" hbank="87" lbank="70" prog="117" />
+ <Patch name="Rez Therapy" hbank="87" lbank="70" prog="118" />
+ <Patch name="Ivans" hbank="87" lbank="70" prog="119" />
+ <Patch name="Morpher" hbank="87" lbank="70" prog="120" />
+ <Patch name="StellarTreck" hbank="87" lbank="70" prog="121" />
+ <Patch name="Tekno Tone" hbank="87" lbank="70" prog="122" />
+ <Patch name="Generator" hbank="87" lbank="70" prog="123" />
+ <Patch name="ARP x Race" hbank="87" lbank="70" prog="124" />
+ <Patch name="DSP Chaos" hbank="87" lbank="70" prog="125" />
+ <Patch name="Phraserblade" hbank="87" lbank="70" prog="126" />
+ <Patch name="Dancefloor" hbank="87" lbank="70" prog="127" />
+ </PatchGroup>
+ <PatchGroup name="Preset H">
+ <Patch name="Minor Thirds" hbank="87" lbank="71" prog="0" />
+ <Patch name="Strobe X" hbank="87" lbank="71" prog="1" />
+ <Patch name="Orbiting" hbank="87" lbank="71" prog="2" />
+ <Patch name="FX World" hbank="87" lbank="71" prog="3" />
+ <Patch name="Mr. Fourier" hbank="87" lbank="71" prog="4" />
+ <Patch name="Nu Trance X" hbank="87" lbank="71" prog="5" />
+ <Patch name="eXisDance" hbank="87" lbank="71" prog="6" />
+ <Patch name="Are U ready?" hbank="87" lbank="71" prog="7" />
+ <Patch name="Minty Fresh" hbank="87" lbank="71" prog="8" />
+ <Patch name="Spectrums" hbank="87" lbank="71" prog="9" />
+ <Patch name="Shape of X" hbank="87" lbank="71" prog="10" />
+ <Patch name="Auto 5thSaws" hbank="87" lbank="71" prog="11" />
+ <Patch name="Strobot" hbank="87" lbank="71" prog="12" />
+ <Patch name="Dreamswirl" hbank="87" lbank="71" prog="13" />
+ <Patch name="Galaxadin" hbank="87" lbank="71" prog="14" />
+ <Patch name="Welcome2X" hbank="87" lbank="71" prog="15" />
+ <Patch name="Space n Time" hbank="87" lbank="71" prog="16" />
+ <Patch name="Cross Talk" hbank="87" lbank="71" prog="17" />
+ <Patch name="Lava Flows" hbank="87" lbank="71" prog="18" />
+ <Patch name="Steppin Faze" hbank="87" lbank="71" prog="19" />
+ <Patch name="Reanimation" hbank="87" lbank="71" prog="20" />
+ <Patch name="VoX Chopper" hbank="87" lbank="71" prog="21" />
+ <Patch name="SquareSphere" hbank="87" lbank="71" prog="22" />
+ <Patch name="Auto Sync" hbank="87" lbank="71" prog="23" />
+ <Patch name="Vocastic" hbank="87" lbank="71" prog="24" />
+ <Patch name="Bending Logo" hbank="87" lbank="71" prog="25" />
+ <Patch name="SolarPleXus" hbank="87" lbank="71" prog="26" />
+ <Patch name="Scare" hbank="87" lbank="71" prog="27" />
+ <Patch name="Chaoism" hbank="87" lbank="71" prog="28" />
+ <Patch name="Hillside" hbank="87" lbank="71" prog="29" />
+ <Patch name="Alien Voice" hbank="87" lbank="71" prog="30" />
+ <Patch name="What What?" hbank="87" lbank="71" prog="31" />
+ <Patch name="Beyond Here" hbank="87" lbank="71" prog="32" />
+ <Patch name="Mod Scanner" hbank="87" lbank="71" prog="33" />
+ <Patch name="Gasp" hbank="87" lbank="71" prog="34" />
+ <Patch name="Neverville" hbank="87" lbank="71" prog="35" />
+ <Patch name="Landing Pad" hbank="87" lbank="71" prog="36" />
+ <Patch name="Celebrated" hbank="87" lbank="71" prog="37" />
+ <Patch name="ResoSweep Up" hbank="87" lbank="71" prog="38" />
+ <Patch name="The VorteX" hbank="87" lbank="71" prog="39" />
+ <Patch name="Magic Wave" hbank="87" lbank="71" prog="40" />
+ <Patch name="Shangri-La" hbank="87" lbank="71" prog="41" />
+ <Patch name="CerealKiller" hbank="87" lbank="71" prog="42" />
+ <Patch name="DigimaX" hbank="87" lbank="71" prog="43" />
+ <Patch name="Trancy X" hbank="87" lbank="71" prog="44" />
+ <Patch name="X Sweep Saws" hbank="87" lbank="71" prog="45" />
+ <Patch name="X-Trance" hbank="87" lbank="71" prog="46" />
+ <Patch name="JP-8000 Saws" hbank="87" lbank="71" prog="47" />
+ <Patch name="X Super Saws" hbank="87" lbank="71" prog="48" />
+ <Patch name="Exhale" hbank="87" lbank="71" prog="49" />
+ <Patch name="SBF Voices" hbank="87" lbank="71" prog="50" />
+ <Patch name="Stadium SBF" hbank="87" lbank="71" prog="51" />
+ <Patch name="Master X" hbank="87" lbank="71" prog="52" />
+ <Patch name="X-panda" hbank="87" lbank="71" prog="53" />
+ <Patch name="TDreamTouch" hbank="87" lbank="71" prog="54" />
+ <Patch name="Smooth Synth" hbank="87" lbank="71" prog="55" />
+ <Patch name="Stereotype" hbank="87" lbank="71" prog="56" />
+ <Patch name="Saw Keystep" hbank="87" lbank="71" prog="57" />
+ <Patch name="4mant Cycle" hbank="87" lbank="71" prog="58" />
+ <Patch name="Trance Sweep" hbank="87" lbank="71" prog="59" />
+ <Patch name="Modular" hbank="87" lbank="71" prog="60" />
+ <Patch name="Triple X" hbank="87" lbank="71" prog="61" />
+ <Patch name="Angel Pipes" hbank="87" lbank="71" prog="62" />
+ <Patch name="Vint Clavier" hbank="87" lbank="71" prog="63" />
+ <Patch name="Wired Synth" hbank="87" lbank="71" prog="64" />
+ <Patch name="Nu Romance" hbank="87" lbank="71" prog="65" />
+ <Patch name="Survivoz" hbank="87" lbank="71" prog="66" />
+ <Patch name="Ring Worldz" hbank="87" lbank="71" prog="67" />
+ <Patch name="Mashed!? :0)" hbank="87" lbank="71" prog="68" />
+ <Patch name="Saturn Siren" hbank="87" lbank="71" prog="69" />
+ <Patch name="Side Band X" hbank="87" lbank="71" prog="70" />
+ <Patch name="Mashy Scene" hbank="87" lbank="71" prog="71" />
+ <Patch name="Spr SideBand" hbank="87" lbank="71" prog="72" />
+ <Patch name="Digitvox" hbank="87" lbank="71" prog="73" />
+ <Patch name="Oral eXam" hbank="87" lbank="71" prog="74" />
+ <Patch name="Timeline" hbank="87" lbank="71" prog="75" />
+ <Patch name="Whisper Pad" hbank="87" lbank="71" prog="76" />
+ <Patch name="Orchipad" hbank="87" lbank="71" prog="77" />
+ <Patch name="Visionary" hbank="87" lbank="71" prog="78" />
+ <Patch name="Rave Stringy" hbank="87" lbank="71" prog="79" />
+ <Patch name="InfinitePhsr" hbank="87" lbank="71" prog="80" />
+ <Patch name="Jupiter 2004" hbank="87" lbank="71" prog="81" />
+ <Patch name="Light Phaser" hbank="87" lbank="71" prog="82" />
+ <Patch name="Life-on" hbank="87" lbank="71" prog="83" />
+ <Patch name="Polar Morn" hbank="87" lbank="71" prog="84" />
+ <Patch name="Saturn Rings" hbank="87" lbank="71" prog="85" />
+ <Patch name="Ooh La La" hbank="87" lbank="71" prog="86" />
+ <Patch name="Flying X" hbank="87" lbank="71" prog="87" />
+ <Patch name="Motion Pad" hbank="87" lbank="71" prog="88" />
+ <Patch name="Mash Pad" hbank="87" lbank="71" prog="89" />
+ <Patch name="Xtragalactic" hbank="87" lbank="71" prog="90" />
+ <Patch name="Morph Filter" hbank="87" lbank="71" prog="91" />
+ <Patch name="TmsSweepPad" hbank="87" lbank="71" prog="92" />
+ <Patch name="Follow" hbank="87" lbank="71" prog="93" />
+ <Patch name="Jupiter-X" hbank="87" lbank="71" prog="94" />
+ <Patch name="Riven Pad" hbank="87" lbank="71" prog="95" />
+ <Patch name="Consolament" hbank="87" lbank="71" prog="96" />
+ <Patch name="Spacious Pad" hbank="87" lbank="71" prog="97" />
+ <Patch name="JD Pop Pad" hbank="87" lbank="71" prog="98" />
+ <Patch name="Silhouette" hbank="87" lbank="71" prog="99" />
+ <Patch name="JP-8 Phase" hbank="87" lbank="71" prog="100" />
+ <Patch name="Nu Epic Pad" hbank="87" lbank="71" prog="101" />
+ <Patch name="Forever" hbank="87" lbank="71" prog="102" />
+ <Patch name="Flange Dream" hbank="87" lbank="71" prog="103" />
+ <Patch name="Guild Vox" hbank="87" lbank="71" prog="104" />
+ <Patch name="5th Pad X" hbank="87" lbank="71" prog="105" />
+ <Patch name="Evolution X" hbank="87" lbank="71" prog="106" />
+ <Patch name="Chariots" hbank="87" lbank="71" prog="107" />
+ <Patch name="Trevors Pad" hbank="87" lbank="71" prog="108" />
+ <Patch name="Nu Pad" hbank="87" lbank="71" prog="109" />
+ <Patch name="Fantomas Pad" hbank="87" lbank="71" prog="110" />
+ <Patch name="Film Cue" hbank="87" lbank="71" prog="111" />
+ <Patch name="Choral Sweep" hbank="87" lbank="71" prog="112" />
+ <Patch name="Paradise" hbank="87" lbank="71" prog="113" />
+ <Patch name="Sad ceremony" hbank="87" lbank="71" prog="114" />
+ <Patch name="Lost Voices" hbank="87" lbank="71" prog="115" />
+ <Patch name="Talk 2 Me" hbank="87" lbank="71" prog="116" />
+ <Patch name="Pearly Harp" hbank="87" lbank="71" prog="117" />
+ <Patch name="Nylon Harp" hbank="87" lbank="71" prog="118" />
+ <Patch name="Skydiver" hbank="87" lbank="71" prog="119" />
+ <Patch name="Unpluck-d" hbank="87" lbank="71" prog="120" />
+ <Patch name="Ethno Plucks" hbank="87" lbank="71" prog="121" />
+ <Patch name="SaraswatiRvr" hbank="87" lbank="71" prog="122" />
+ <Patch name="Drone X" hbank="87" lbank="71" prog="123" />
+ <Patch name="Lounge Kit" hbank="87" lbank="71" prog="124" />
+ <Patch name="Gospel Trio" hbank="87" lbank="71" prog="125" />
+ <Patch name="xcultural" hbank="87" lbank="71" prog="126" />
+ <Patch name="When Im 64" hbank="87" lbank="71" prog="127" />
+ </PatchGroup>
+ <Controller name="Program" type="Program" />
+ </MidiInstrument>
+</muse>
diff --git a/muse2/share/instruments/Roland_SRX-02.idf b/muse2/share/instruments/Roland_SRX-02.idf
new file mode 100755
index 00000000..bc700f1d
--- /dev/null
+++ b/muse2/share/instruments/Roland_SRX-02.idf
@@ -0,0 +1,58 @@
+<?xml version="1.0"?>
+<muse version="1.0">
+ <MidiInstrument name="Roland SRX-02 Concert Piano">
+ <PatchGroup name="SRX02 Concert Piano">
+ <Patch name="PremierGrand" hbank="93" lbank="1" prog="0" />
+ <Patch name="Steady Grand" hbank="93" lbank="1" prog="1" />
+ <Patch name="DynamicGrand" hbank="93" lbank="1" prog="2" />
+ <Patch name="Concert Hall" hbank="93" lbank="1" prog="3" />
+ <Patch name="Bright Grand" hbank="93" lbank="1" prog="4" />
+ <Patch name="Classical" hbank="93" lbank="1" prog="5" />
+ <Patch name="SoftPdlGrand" hbank="93" lbank="1" prog="6" />
+ <Patch name="OnMicPremier" hbank="93" lbank="1" prog="7" />
+ <Patch name="OnMic Bright" hbank="93" lbank="1" prog="8" />
+ <Patch name="OnMicSoftPdl" hbank="93" lbank="1" prog="9" />
+ <Patch name="Premier Mono" hbank="93" lbank="1" prog="10" />
+ <Patch name="Bright Mono" hbank="93" lbank="1" prog="11" />
+ <Patch name="SoftPdl Mono" hbank="93" lbank="1" prog="12" />
+ <Patch name="Mellow Piano" hbank="93" lbank="1" prog="13" />
+ <Patch name="Enhanced Pno" hbank="93" lbank="1" prog="14" />
+ <Patch name="Comp.Piano" hbank="93" lbank="1" prog="15" />
+ <Patch name="HonkytonkPno" hbank="93" lbank="1" prog="16" />
+ <Patch name="NewAgeGrand1" hbank="93" lbank="1" prog="17" />
+ <Patch name="NewAgeGrand2" hbank="93" lbank="1" prog="18" />
+ <Patch name="Requiem" hbank="93" lbank="1" prog="19" />
+ <Patch name="Soundscape" hbank="93" lbank="1" prog="20" />
+ <Patch name="Grand w/Str" hbank="93" lbank="1" prog="21" />
+ <Patch name="Concerto 1" hbank="93" lbank="1" prog="22" />
+ <Patch name="Concerto 2" hbank="93" lbank="1" prog="23" />
+ <Patch name="SoftpadGrand" hbank="93" lbank="1" prog="24" />
+ <Patch name="Synpad Grand" hbank="93" lbank="1" prog="25" />
+ <Patch name="Vox Grand 1" hbank="93" lbank="1" prog="26" />
+ <Patch name="Vox Grand 2" hbank="93" lbank="1" prog="27" />
+ <Patch name="Oohs Piano" hbank="93" lbank="1" prog="28" />
+ <Patch name="Air Grand" hbank="93" lbank="1" prog="29" />
+ <Patch name="GtrPad Grand" hbank="93" lbank="1" prog="30" />
+ <Patch name="PhasePad Pno" hbank="93" lbank="1" prog="31" />
+ <Patch name="HeavenPadPno" hbank="93" lbank="1" prog="32" />
+ <Patch name="Somber Pad" hbank="93" lbank="1" prog="33" />
+ <Patch name="Wet Chorus" hbank="93" lbank="1" prog="34" />
+ <Patch name="Nylon Grand" hbank="93" lbank="1" prog="35" />
+ <Patch name="FM EP Grand" hbank="93" lbank="1" prog="36" />
+ <Patch name="Bell Grand" hbank="93" lbank="1" prog="37" />
+ <Patch name="Bellvox Pno" hbank="93" lbank="1" prog="38" />
+ <Patch name="StackedGrand" hbank="93" lbank="1" prog="39" />
+ <Patch name="Hard Stack 1" hbank="93" lbank="1" prog="40" />
+ <Patch name="Hard Stack 2" hbank="93" lbank="1" prog="41" />
+ <Patch name="PianoBrass" hbank="93" lbank="1" prog="42" />
+ <Patch name="PianoBrs fff" hbank="93" lbank="1" prog="43" />
+ <Patch name="Gig Split 1" hbank="93" lbank="1" prog="44" />
+ <Patch name="Gig Split 2" hbank="93" lbank="1" prog="45" />
+ <Patch name="Gig Split 3" hbank="93" lbank="1" prog="46" />
+ <Patch name="Throb Piano" hbank="93" lbank="1" prog="47" />
+ <Patch name="Feedback Pno" hbank="93" lbank="1" prog="48" />
+ <Patch name="Eastern 5th" hbank="93" lbank="1" prog="49" />
+ </PatchGroup>
+ <Controller name="Program" type="Program" />
+ </MidiInstrument>
+</muse>
diff --git a/muse2/share/instruments/Roland_SRX-09.idf b/muse2/share/instruments/Roland_SRX-09.idf
new file mode 100755
index 00000000..1099a01f
--- /dev/null
+++ b/muse2/share/instruments/Roland_SRX-09.idf
@@ -0,0 +1,442 @@
+<?xml version="1.0"?>
+<muse version="1.0">
+ <MidiInstrument name="Roland SRX-09 World Collection">
+ <PatchGroup name="SRX09 Percussion Kits">
+ <Patch name="LatinDrmKit" hbank="92" lbank="19" prog="0" drum="1" />
+ <Patch name="AsiaDrm Kit" hbank="92" lbank="19" prog="1" drum="1" />
+ <Patch name="IndiaDrmKit" hbank="92" lbank="19" prog="2" drum="1" />
+ <Patch name="MidEastDrKit" hbank="92" lbank="19" prog="3" drum="1" />
+ <Patch name="World Phrase" hbank="92" lbank="19" prog="4" drum="1" />
+ <Patch name="Gtr Phrase" hbank="92" lbank="19" prog="5" drum="1" />
+ <Patch name="Latin Menu1" hbank="92" lbank="19" prog="6" drum="1" />
+ <Patch name="Latin Menu2" hbank="92" lbank="19" prog="7" drum="1" />
+ <Patch name="Latin Menu3" hbank="92" lbank="19" prog="8" drum="1" />
+ <Patch name="Asia Menu" hbank="92" lbank="19" prog="9" drum="1" />
+ <Patch name="India Menu" hbank="92" lbank="19" prog="10" drum="1" />
+ <Patch name="MidEast Menu" hbank="92" lbank="19" prog="11" drum="1" />
+ </PatchGroup>
+ <PatchGroup name="SRX09 World Collection 1">
+ <Patch name="World Sounds" hbank="93" lbank="19" prog="0" />
+ <Patch name="Go2China /C2" hbank="93" lbank="19" prog="1" />
+ <Patch name="Go2India /C2" hbank="93" lbank="19" prog="2" />
+ <Patch name="The Great W" hbank="93" lbank="19" prog="3" />
+ <Patch name="Yuehchin+" hbank="93" lbank="19" prog="4" />
+ <Patch name="Sweet Nylon" hbank="93" lbank="19" prog="5" />
+ <Patch name="Tele R and F" hbank="93" lbank="19" prog="6" />
+ <Patch name="Tubby Baby" hbank="93" lbank="19" prog="7" />
+ <Patch name="HeavenGender" hbank="93" lbank="19" prog="8" />
+ <Patch name="Gamelan Ems" hbank="93" lbank="19" prog="9" />
+ <Patch name="Childwood" hbank="93" lbank="19" prog="10" />
+ <Patch name="La Musette" hbank="93" lbank="19" prog="11" />
+ <Patch name="Essence" hbank="93" lbank="19" prog="12" />
+ <Patch name="Zampona" hbank="93" lbank="19" prog="13" />
+ <Patch name="GipsyTrumpt/" hbank="93" lbank="19" prog="14" />
+ <Patch name="We Dream }{" hbank="93" lbank="19" prog="15" />
+ <Patch name="Fun WithPerc" hbank="93" lbank="19" prog="16" />
+ <Patch name="GuZheng arp" hbank="93" lbank="19" prog="17" />
+ <Patch name="Feets" hbank="93" lbank="19" prog="18" />
+ <Patch name="World Radio" hbank="93" lbank="19" prog="19" />
+ <Patch name="ClanAdvances" hbank="93" lbank="19" prog="20" />
+ <Patch name="Eastern Tour" hbank="93" lbank="19" prog="21" />
+ <Patch name="Enough!STOP!" hbank="93" lbank="19" prog="22" />
+ <Patch name="Banjo Phrs" hbank="93" lbank="19" prog="23" />
+ <Patch name="Guitar Phrs1" hbank="93" lbank="19" prog="24" />
+ <Patch name="Guitar Phrs2" hbank="93" lbank="19" prog="25" />
+ <Patch name="PdlStl Phrs" hbank="93" lbank="19" prog="26" />
+ <Patch name="Asia UFO" hbank="93" lbank="19" prog="27" />
+ <Patch name="UBeenSoBaa" hbank="93" lbank="19" prog="28" />
+ <Patch name="Didgeri /" hbank="93" lbank="19" prog="29" />
+ <Patch name="WorldGroove" hbank="93" lbank="19" prog="30" />
+ <Patch name="LoopPhrase 1" hbank="93" lbank="19" prog="31" />
+ <Patch name="LoopPhrase 2" hbank="93" lbank="19" prog="32" />
+ <Patch name="TABLA groove" hbank="93" lbank="19" prog="33" />
+ <Patch name="JasonGoEast" hbank="93" lbank="19" prog="34" />
+ <Patch name="Flu and AcompSRX" hbank="93" lbank="19" prog="35" />
+ <Patch name="Split Floot" hbank="93" lbank="19" prog="36" />
+ <Patch name="Hot Salsa" hbank="93" lbank="19" prog="37" />
+ <Patch name="TempBassSolo" hbank="93" lbank="19" prog="38" />
+ <Patch name="CherryFlower" hbank="93" lbank="19" prog="39" />
+ <Patch name="SplitThisSRX" hbank="93" lbank="19" prog="40" />
+ <Patch name="Crane Dance" hbank="93" lbank="19" prog="41" />
+ <Patch name="LostInMists" hbank="93" lbank="19" prog="42" />
+ <Patch name="Qu DiEnsembl" hbank="93" lbank="19" prog="43" />
+ <Patch name="NasalBlossom" hbank="93" lbank="19" prog="44" />
+ <Patch name="Meditation 1" hbank="93" lbank="19" prog="45" />
+ <Patch name="Art Of Feng" hbank="93" lbank="19" prog="46" />
+ <Patch name="Orient xPres" hbank="93" lbank="19" prog="47" />
+ <Patch name="Padded Sitar" hbank="93" lbank="19" prog="48" />
+ <Patch name="No Worries" hbank="93" lbank="19" prog="49" />
+ <Patch name="IntarMel SRX" hbank="93" lbank="19" prog="50" />
+ <Patch name="Ode 2 An Oud" hbank="93" lbank="19" prog="51" />
+ <Patch name="Fugi-man" hbank="93" lbank="19" prog="52" />
+ <Patch name="China pluck" hbank="93" lbank="19" prog="53" />
+ <Patch name="Yuehchin SRX" hbank="93" lbank="19" prog="54" />
+ <Patch name="Kayakeum" hbank="93" lbank="19" prog="55" />
+ <Patch name="Asian Pizz" hbank="93" lbank="19" prog="56" />
+ <Patch name="PiPa SRX" hbank="93" lbank="19" prog="57" />
+ <Patch name="Koto SRX" hbank="93" lbank="19" prog="58" />
+ <Patch name="Shamisen SRX" hbank="93" lbank="19" prog="59" />
+ <Patch name="Sanshin SRX" hbank="93" lbank="19" prog="60" />
+ <Patch name="Yang Qin trm" hbank="93" lbank="19" prog="61" />
+ <Patch name="Yang Qin /Mod" hbank="93" lbank="19" prog="62" />
+ <Patch name="SultanPalace" hbank="93" lbank="19" prog="63" />
+ <Patch name="Marco Polo" hbank="93" lbank="19" prog="64" />
+ <Patch name="Bandolim SRX" hbank="93" lbank="19" prog="65" />
+ <Patch name="K.Bandolim" hbank="93" lbank="19" prog="66" />
+ <Patch name="Afro Harp" hbank="93" lbank="19" prog="67" />
+ <Patch name="Ethnhit!" hbank="93" lbank="19" prog="68" />
+ <Patch name="OctaHarp+" hbank="93" lbank="19" prog="69" />
+ <Patch name="St.GuShngSRX" hbank="93" lbank="19" prog="70" />
+ <Patch name="Sheng Sither" hbank="93" lbank="19" prog="71" />
+ <Patch name="Distance" hbank="93" lbank="19" prog="72" />
+ <Patch name="Mandolin/Mod" hbank="93" lbank="19" prog="73" />
+ <Patch name="Mandolin" hbank="93" lbank="19" prog="74" />
+ <Patch name="Mando Club" hbank="93" lbank="19" prog="75" />
+ <Patch name="MdlnTrmStSRX" hbank="93" lbank="19" prog="76" />
+ <Patch name="Drone Sitar" hbank="93" lbank="19" prog="77" />
+ <Patch name="Conch and Sitar" hbank="93" lbank="19" prog="78" />
+ <Patch name="Punjab Rocks" hbank="93" lbank="19" prog="79" />
+ <Patch name="Pas2IndiaSRX" hbank="93" lbank="19" prog="80" />
+ <Patch name="Rain Drone" hbank="93" lbank="19" prog="81" />
+ <Patch name="SitarGlisSRX" hbank="93" lbank="19" prog="82" />
+ <Patch name="Tambura SRX" hbank="93" lbank="19" prog="83" />
+ <Patch name="TambDroneSRX" hbank="93" lbank="19" prog="84" />
+ <Patch name="St.SanturSRX" hbank="93" lbank="19" prog="85" />
+ <Patch name="SanturTrmSRX" hbank="93" lbank="19" prog="86" />
+ <Patch name="Santur /Mod" hbank="93" lbank="19" prog="87" />
+ <Patch name="Canton" hbank="93" lbank="19" prog="88" />
+ <Patch name="HamrDulcimer" hbank="93" lbank="19" prog="89" />
+ <Patch name="3D Dulcimer" hbank="93" lbank="19" prog="90" />
+ <Patch name="Zither" hbank="93" lbank="19" prog="91" />
+ <Patch name="Magic Pluck" hbank="93" lbank="19" prog="92" />
+ <Patch name="Biwa SRX" hbank="93" lbank="19" prog="93" />
+ <Patch name="Biwa Menu" hbank="93" lbank="19" prog="94" />
+ <Patch name="BerimbauMenu" hbank="93" lbank="19" prog="95" />
+ <Patch name="Berimbau" hbank="93" lbank="19" prog="96" />
+ <Patch name="JawHarp Menu" hbank="93" lbank="19" prog="97" />
+ <Patch name="Steel Rhythm" hbank="93" lbank="19" prog="98" />
+ <Patch name="SoloSteelGtr" hbank="93" lbank="19" prog="99" />
+ <Patch name="N-Ville Soft" hbank="93" lbank="19" prog="100" />
+ <Patch name="Spruce Top" hbank="93" lbank="19" prog="101" />
+ <Patch name="Procssd AGtr" hbank="93" lbank="19" prog="102" />
+ <Patch name="High Strung" hbank="93" lbank="19" prog="103" />
+ <Patch name="Compresd D18" hbank="93" lbank="19" prog="104" />
+ <Patch name="12 String" hbank="93" lbank="19" prog="105" />
+ <Patch name="Mixed 12Str1" hbank="93" lbank="19" prog="106" />
+ <Patch name="Mixed 12Str2" hbank="93" lbank="19" prog="107" />
+ <Patch name="Ac Gtr 12stg" hbank="93" lbank="19" prog="108" />
+ <Patch name="No Borders" hbank="93" lbank="19" prog="109" />
+ <Patch name="Loose 12Str" hbank="93" lbank="19" prog="110" />
+ <Patch name="Living R.Gtr" hbank="93" lbank="19" prog="111" />
+ <Patch name="Dobro Modro" hbank="93" lbank="19" prog="112" />
+ <Patch name="ResonatorGtr" hbank="93" lbank="19" prog="113" />
+ <Patch name="Ac.Gtrs SRX" hbank="93" lbank="19" prog="114" />
+ <Patch name="2 Players" hbank="93" lbank="19" prog="115" />
+ <Patch name="Solo RequGtr" hbank="93" lbank="19" prog="116" />
+ <Patch name="Loose Nylon" hbank="93" lbank="19" prog="117" />
+ <Patch name="AcousticBros" hbank="93" lbank="19" prog="118" />
+ <Patch name="So Sad Nylon" hbank="93" lbank="19" prog="119" />
+ <Patch name="Chinese Duo" hbank="93" lbank="19" prog="120" />
+ <Patch name="ChugRunTrSRX" hbank="93" lbank="19" prog="121" />
+ <Patch name="Chung Ruan" hbank="93" lbank="19" prog="122" />
+ <Patch name="ChungRuanSRX" hbank="93" lbank="19" prog="123" />
+ <Patch name="Bottom Ruan" hbank="93" lbank="19" prog="124" />
+ <Patch name="RuangGtr SRX" hbank="93" lbank="19" prog="125" />
+ <Patch name="Oud SRX" hbank="93" lbank="19" prog="126" />
+ <Patch name="BlugrsSldSRX" hbank="93" lbank="19" prog="127" />
+ </PatchGroup>
+ <PatchGroup name="SRX09 World Collection 2">
+ <Patch name="Guitaro SRX" hbank="93" lbank="20" prog="0" />
+ <Patch name="Natural Tele" hbank="93" lbank="20" prog="1" />
+ <Patch name="Psyche Tele" hbank="93" lbank="20" prog="2" />
+ <Patch name="Coral" hbank="93" lbank="20" prog="3" />
+ <Patch name="Chorus Twang" hbank="93" lbank="20" prog="4" />
+ <Patch name="Pick Licker" hbank="93" lbank="20" prog="5" />
+ <Patch name="CleanStrtSRX" hbank="93" lbank="20" prog="6" />
+ <Patch name="Velo 335 SRX" hbank="93" lbank="20" prog="7" />
+ <Patch name="Right Funky" hbank="93" lbank="20" prog="8" />
+ <Patch name="Comp Muted" hbank="93" lbank="20" prog="9" />
+ <Patch name="E.GtrMt SRX" hbank="93" lbank="20" prog="10" />
+ <Patch name="335VelMt SRX" hbank="93" lbank="20" prog="11" />
+ <Patch name="Wide Guitar" hbank="93" lbank="20" prog="12" />
+ <Patch name="Dob-Compress" hbank="93" lbank="20" prog="13" />
+ <Patch name="Nice Twelvey" hbank="93" lbank="20" prog="14" />
+ <Patch name="RotaryCrunch" hbank="93" lbank="20" prog="15" />
+ <Patch name="FastRotrySRX" hbank="93" lbank="20" prog="16" />
+ <Patch name="EGDynaPikSRX" hbank="93" lbank="20" prog="17" />
+ <Patch name="BackingEGSRX" hbank="93" lbank="20" prog="18" />
+ <Patch name="Room Slide" hbank="93" lbank="20" prog="19" />
+ <Patch name="Pedal Steel" hbank="93" lbank="20" prog="20" />
+ <Patch name="Phased P.Stl" hbank="93" lbank="20" prog="21" />
+ <Patch name="PureSteelSRX" hbank="93" lbank="20" prog="22" />
+ <Patch name="MutedAmbient" hbank="93" lbank="20" prog="23" />
+ <Patch name="GtrFX Menu" hbank="93" lbank="20" prog="24" />
+ <Patch name="LP Gtr SRX" hbank="93" lbank="20" prog="25" />
+ <Patch name="Tele-Funfken" hbank="93" lbank="20" prog="26" />
+ <Patch name="335 and Cabinet" hbank="93" lbank="20" prog="27" />
+ <Patch name="Tele Licker" hbank="93" lbank="20" prog="28" />
+ <Patch name="Short and Long" hbank="93" lbank="20" prog="29" />
+ <Patch name="NewBeginning" hbank="93" lbank="20" prog="30" />
+ <Patch name="Bouzouki" hbank="93" lbank="20" prog="31" />
+ <Patch name="Bousoukhit!" hbank="93" lbank="20" prog="32" />
+ <Patch name="3ChdStrumSRX" hbank="93" lbank="20" prog="33" />
+ <Patch name="Strum Poetic" hbank="93" lbank="20" prog="34" />
+ <Patch name="Strum Away" hbank="93" lbank="20" prog="35" />
+ <Patch name="Banjo-Mando" hbank="93" lbank="20" prog="36" />
+ <Patch name="5StringBanjo" hbank="93" lbank="20" prog="37" />
+ <Patch name="Banjo SRX 1" hbank="93" lbank="20" prog="38" />
+ <Patch name="Banjo SRX 2" hbank="93" lbank="20" prog="39" />
+ <Patch name="Banjo SRX 3" hbank="93" lbank="20" prog="40" />
+ <Patch name="Fiddle" hbank="93" lbank="20" prog="41" />
+ <Patch name="Fiddle 2002" hbank="93" lbank="20" prog="42" />
+ <Patch name="FiddleSwitch" hbank="93" lbank="20" prog="43" />
+ <Patch name="Fiddle Sect." hbank="93" lbank="20" prog="44" />
+ <Patch name="FiddleStacto" hbank="93" lbank="20" prog="45" />
+ <Patch name="AsianOrcPizz" hbank="93" lbank="20" prog="46" />
+ <Patch name="AJapaneseInn" hbank="93" lbank="20" prog="47" />
+ <Patch name="Deep Blue" hbank="93" lbank="20" prog="48" />
+ <Patch name="Ethnic Ens" hbank="93" lbank="20" prog="49" />
+ <Patch name="ChinesOrcSRX" hbank="93" lbank="20" prog="50" />
+ <Patch name="ErHu / SRX" hbank="93" lbank="20" prog="51" />
+ <Patch name="ErHuSolo SRX" hbank="93" lbank="20" prog="52" />
+ <Patch name="ErHu Ld SRX" hbank="93" lbank="20" prog="53" />
+ <Patch name="FiddleFXmenu" hbank="93" lbank="20" prog="54" />
+ <Patch name="ViolnSoloSRX" hbank="93" lbank="20" prog="55" />
+ <Patch name="Comp BabyBss" hbank="93" lbank="20" prog="56" />
+ <Patch name="Baby Bass" hbank="93" lbank="20" prog="57" />
+ <Patch name="Comp Fingerd" hbank="93" lbank="20" prog="58" />
+ <Patch name="Jazz Fing.BS" hbank="93" lbank="20" prog="59" />
+ <Patch name="Live Bass" hbank="93" lbank="20" prog="60" />
+ <Patch name="Flango Bass" hbank="93" lbank="20" prog="61" />
+ <Patch name="Bass Oddesy" hbank="93" lbank="20" prog="62" />
+ <Patch name="6Str Bs SRX1" hbank="93" lbank="20" prog="63" />
+ <Patch name="Muted Bass" hbank="93" lbank="20" prog="64" />
+ <Patch name="6Str/Mt SRX" hbank="93" lbank="20" prog="65" />
+ <Patch name="PickBsHd SRX" hbank="93" lbank="20" prog="66" />
+ <Patch name="PickedBs SRX" hbank="93" lbank="20" prog="67" />
+ <Patch name="Tub Bass" hbank="93" lbank="20" prog="68" />
+ <Patch name="GuitarnBsSRX" hbank="93" lbank="20" prog="69" />
+ <Patch name="GtrnOct SRX" hbank="93" lbank="20" prog="70" />
+ <Patch name="PacificDream" hbank="93" lbank="20" prog="71" />
+ <Patch name="Meditation 2" hbank="93" lbank="20" prog="72" />
+ <Patch name="HybridKemong" hbank="93" lbank="20" prog="73" />
+ <Patch name="Purify" hbank="93" lbank="20" prog="74" />
+ <Patch name="Asia Bells" hbank="93" lbank="20" prog="75" />
+ <Patch name="Rama Cym SRX" hbank="93" lbank="20" prog="76" />
+ <Patch name="Bell Orchest" hbank="93" lbank="20" prog="77" />
+ <Patch name="Sacred Bells" hbank="93" lbank="20" prog="78" />
+ <Patch name="Spokes" hbank="93" lbank="20" prog="79" />
+ <Patch name="Winter Bells" hbank="93" lbank="20" prog="80" />
+ <Patch name="Wind Bells" hbank="93" lbank="20" prog="81" />
+ <Patch name="BelAngk SRX" hbank="93" lbank="20" prog="82" />
+ <Patch name="Tcheekolyna" hbank="93" lbank="20" prog="83" />
+ <Patch name="Wood EPiano" hbank="93" lbank="20" prog="84" />
+ <Patch name="Kalimba" hbank="93" lbank="20" prog="85" />
+ <Patch name="Kalimbatch" hbank="93" lbank="20" prog="86" />
+ <Patch name="VelAfro SRX1" hbank="93" lbank="20" prog="87" />
+ <Patch name="BSKalimbaSRX" hbank="93" lbank="20" prog="88" />
+ <Patch name="LogDetunrSRX" hbank="93" lbank="20" prog="89" />
+ <Patch name="Baateri SRX" hbank="93" lbank="20" prog="90" />
+ <Patch name="Balafon SRX" hbank="93" lbank="20" prog="91" />
+ <Patch name="Asian Wood" hbank="93" lbank="20" prog="92" />
+ <Patch name="Mellow tone" hbank="93" lbank="20" prog="93" />
+ <Patch name="Glas Mlt SRX" hbank="93" lbank="20" prog="94" />
+ <Patch name="SteelDr SRX1" hbank="93" lbank="20" prog="95" />
+ <Patch name="SteelDr SRX2" hbank="93" lbank="20" prog="96" />
+ <Patch name="Gendrous SRX" hbank="93" lbank="20" prog="97" />
+ <Patch name="BonangGamSRX" hbank="93" lbank="20" prog="98" />
+ <Patch name="VelAfro SRX2" hbank="93" lbank="20" prog="99" />
+ <Patch name="TemleMetlSRX" hbank="93" lbank="20" prog="100" />
+ <Patch name="Kemong / SRX" hbank="93" lbank="20" prog="101" />
+ <Patch name="Kane / SRX" hbank="93" lbank="20" prog="102" />
+ <Patch name="JeGong / SRX" hbank="93" lbank="20" prog="103" />
+ <Patch name="Jegogn / SRX" hbank="93" lbank="20" prog="104" />
+ <Patch name="Jublag / SRX" hbank="93" lbank="20" prog="105" />
+ <Patch name="Reyong / SRX" hbank="93" lbank="20" prog="106" />
+ <Patch name="Pemade / SRX" hbank="93" lbank="20" prog="107" />
+ <Patch name="Cajun" hbank="93" lbank="20" prog="108" />
+ <Patch name="D.Accordion" hbank="93" lbank="20" prog="109" />
+ <Patch name="SquezeBoxSRX" hbank="93" lbank="20" prog="110" />
+ <Patch name="Squeeze Box" hbank="93" lbank="20" prog="111" />
+ <Patch name="St.AcdOp SRX" hbank="93" lbank="20" prog="112" />
+ <Patch name="AcdionOp SRX" hbank="93" lbank="20" prog="113" />
+ <Patch name="Acd ffOp SRX" hbank="93" lbank="20" prog="114" />
+ <Patch name="STt.AcdCl SRX" hbank="93" lbank="20" prog="115" />
+ <Patch name="Bluesy" hbank="93" lbank="20" prog="116" />
+ <Patch name="HarmonicaSRX" hbank="93" lbank="20" prog="117" />
+ <Patch name="CuntryHrpSRX" hbank="93" lbank="20" prog="118" />
+ <Patch name="Sessn HrpSRX" hbank="93" lbank="20" prog="119" />
+ <Patch name="Esraj and Mizmar" hbank="93" lbank="20" prog="120" />
+ <Patch name="Before Time" hbank="93" lbank="20" prog="121" />
+ <Patch name="Gagaku Ems" hbank="93" lbank="20" prog="122" />
+ <Patch name="Mizmar solo" hbank="93" lbank="20" prog="123" />
+ <Patch name="PiriSolo SRX" hbank="93" lbank="20" prog="124" />
+ <Patch name="Shahnai SRX" hbank="93" lbank="20" prog="125" />
+ <Patch name="HichirikSRX" hbank="93" lbank="20" prog="126" />
+ <Patch name="Bagpipes SRX" hbank="93" lbank="20" prog="127" />
+ </PatchGroup>
+ <PatchGroup name="SRX09 World Collection 3">
+ <Patch name="Sheng / SRX" hbank="93" lbank="21" prog="0" />
+ <Patch name="Suona / SRX" hbank="93" lbank="21" prog="1" />
+ <Patch name="VillageDance" hbank="93" lbank="21" prog="2" />
+ <Patch name="Indian Ens" hbank="93" lbank="21" prog="3" />
+ <Patch name="Nature Loves" hbank="93" lbank="21" prog="4" />
+ <Patch name="PanPipes SRX" hbank="93" lbank="21" prog="5" />
+ <Patch name="Sad Pipe" hbank="93" lbank="21" prog="6" />
+ <Patch name="Shell blow" hbank="93" lbank="21" prog="7" />
+ <Patch name="Desert Flute" hbank="93" lbank="21" prog="8" />
+ <Patch name="Zampona" hbank="93" lbank="21" prog="9" />
+ <Patch name="Isolation" hbank="93" lbank="21" prog="10" />
+ <Patch name="Ocarina" hbank="93" lbank="21" prog="11" />
+ <Patch name="New IndFlute" hbank="93" lbank="21" prog="12" />
+ <Patch name="Qu Di Vib" hbank="93" lbank="21" prog="13" />
+ <Patch name="Bang Di Vib" hbank="93" lbank="21" prog="14" />
+ <Patch name="New Kawala" hbank="93" lbank="21" prog="15" />
+ <Patch name="BreathyIndia" hbank="93" lbank="21" prog="16" />
+ <Patch name="New Shaku" hbank="93" lbank="21" prog="17" />
+ <Patch name="Shakuhachi" hbank="93" lbank="21" prog="18" />
+ <Patch name="DreamInColor" hbank="93" lbank="21" prog="19" />
+ <Patch name="TwinHillyLd" hbank="93" lbank="21" prog="20" />
+ <Patch name="Snake Eyes" hbank="93" lbank="21" prog="21" />
+ <Patch name="Latin Trumpt" hbank="93" lbank="21" prog="22" />
+ <Patch name="MariachiTpts" hbank="93" lbank="21" prog="23" />
+ <Patch name="Trumpets" hbank="93" lbank="21" prog="24" />
+ <Patch name="GrowlWah/Mod" hbank="93" lbank="21" prog="25" />
+ <Patch name="Muted-Grw /" hbank="93" lbank="21" prog="26" />
+ <Patch name="SoloTuba SRX" hbank="93" lbank="21" prog="27" />
+ <Patch name="LatinTubaSRX" hbank="93" lbank="21" prog="28" />
+ <Patch name="World Orch" hbank="93" lbank="21" prog="29" />
+ <Patch name="Stab and Hold" hbank="93" lbank="21" prog="30" />
+ <Patch name="Indian Radio" hbank="93" lbank="21" prog="31" />
+ <Patch name="Wide Brass" hbank="93" lbank="21" prog="32" />
+ <Patch name="Trombones" hbank="93" lbank="21" prog="33" />
+ <Patch name="Brass Snapz" hbank="93" lbank="21" prog="34" />
+ <Patch name="Brass sfzzZZ" hbank="93" lbank="21" prog="35" />
+ <Patch name="2Tp+Tbn SRX" hbank="93" lbank="21" prog="36" />
+ <Patch name="MemphisHORNS" hbank="93" lbank="21" prog="37" />
+ <Patch name="SectStactSRX" hbank="93" lbank="21" prog="38" />
+ <Patch name="LatinBrasses" hbank="93" lbank="21" prog="39" />
+ <Patch name="Hit and Fall" hbank="93" lbank="21" prog="40" />
+ <Patch name="BrsChd13 SRX" hbank="93" lbank="21" prog="41" />
+ <Patch name="BrsChdMi9SRX" hbank="93" lbank="21" prog="42" />
+ <Patch name="BrsChdMj9SRX" hbank="93" lbank="21" prog="43" />
+ <Patch name="Blow Pad" hbank="93" lbank="21" prog="44" />
+ <Patch name="Ceremony" hbank="93" lbank="21" prog="45" />
+ <Patch name="Glasses" hbank="93" lbank="21" prog="46" />
+ <Patch name="Ambiccordian" hbank="93" lbank="21" prog="47" />
+ <Patch name="DroneFlanger" hbank="93" lbank="21" prog="48" />
+ <Patch name="Rock Gods" hbank="93" lbank="21" prog="49" />
+ <Patch name="ScotlandLass" hbank="93" lbank="21" prog="50" />
+ <Patch name="Dry Fishes" hbank="93" lbank="21" prog="51" />
+ <Patch name="SteroidBrass" hbank="93" lbank="21" prog="52" />
+ <Patch name="Soul revived" hbank="93" lbank="21" prog="53" />
+ <Patch name="Rain Pad" hbank="93" lbank="21" prog="54" />
+ <Patch name="Rising Sun" hbank="93" lbank="21" prog="55" />
+ <Patch name="Ethnopad" hbank="93" lbank="21" prog="56" />
+ <Patch name="Ethno Strngs" hbank="93" lbank="21" prog="57" />
+ <Patch name="and 40 Thieves" hbank="93" lbank="21" prog="58" />
+ <Patch name="TromboSynthy" hbank="93" lbank="21" prog="59" />
+ <Patch name="GrandExaltd1" hbank="93" lbank="21" prog="60" />
+ <Patch name="Sun Dog" hbank="93" lbank="21" prog="61" />
+ <Patch name="TechnoSpirit" hbank="93" lbank="21" prog="62" />
+ <Patch name="Play Softly" hbank="93" lbank="21" prog="63" />
+ <Patch name="WorkerBeetle" hbank="93" lbank="21" prog="64" />
+ <Patch name="Glass Cut" hbank="93" lbank="21" prog="65" />
+ <Patch name="GuruTronics" hbank="93" lbank="21" prog="66" />
+ <Patch name="DubJazz Trip" hbank="93" lbank="21" prog="67" />
+ <Patch name="Meditation 2" hbank="93" lbank="21" prog="68" />
+ <Patch name="Political" hbank="93" lbank="21" prog="69" />
+ <Patch name="G-day Mate" hbank="93" lbank="21" prog="70" />
+ <Patch name="Mission" hbank="93" lbank="21" prog="71" />
+ <Patch name="Jegorgan" hbank="93" lbank="21" prog="72" />
+ <Patch name="Dyno Conga 1" hbank="93" lbank="21" prog="73" />
+ <Patch name="Dyno Conga 2" hbank="93" lbank="21" prog="74" />
+ <Patch name="Congas+Bongo" hbank="93" lbank="21" prog="75" />
+ <Patch name="DynTimbale 1" hbank="93" lbank="21" prog="76" />
+ <Patch name="DynTimbale 2" hbank="93" lbank="21" prog="77" />
+ <Patch name="TimbaleCuica" hbank="93" lbank="21" prog="78" />
+ <Patch name="Dyno Surdo" hbank="93" lbank="21" prog="79" />
+ <Patch name="Rhythm Sect" hbank="93" lbank="21" prog="80" />
+ <Patch name="Rainstick" hbank="93" lbank="21" prog="81" />
+ <Patch name="Clap and Snap" hbank="93" lbank="21" prog="82" />
+ <Patch name="CowbellRandm" hbank="93" lbank="21" prog="83" />
+ <Patch name="Karachi-Man" hbank="93" lbank="21" prog="84" />
+ <Patch name="That Was Zen" hbank="93" lbank="21" prog="85" />
+ <Patch name="StreetParade" hbank="93" lbank="21" prog="86" />
+ <Patch name="BUK" hbank="93" lbank="21" prog="87" />
+ <Patch name="Gongs" hbank="93" lbank="21" prog="88" />
+ <Patch name="Chenchen /" hbank="93" lbank="21" prog="89" />
+ <Patch name="WisdomWithin" hbank="93" lbank="21" prog="90" />
+ <Patch name="Tabla+" hbank="93" lbank="21" prog="91" />
+ <Patch name="DrumsScene" hbank="93" lbank="21" prog="92" />
+ <Patch name="Doholla Fun" hbank="93" lbank="21" prog="93" />
+ <Patch name="AfricanRhtms" hbank="93" lbank="21" prog="94" />
+ <Patch name="Big Logs SRX" hbank="93" lbank="21" prog="95" />
+ <Patch name="WarDrums SRX" hbank="93" lbank="21" prog="96" />
+ <Patch name="Samba Menu" hbank="93" lbank="21" prog="97" />
+ <Patch name="Shaker Menu" hbank="93" lbank="21" prog="98" />
+ <Patch name="Caixa Menu" hbank="93" lbank="21" prog="99" />
+ <Patch name="Cowbell Menu" hbank="93" lbank="21" prog="100" />
+ <Patch name="JapanPrcMenu" hbank="93" lbank="21" prog="101" />
+ <Patch name="Kabuki Menu" hbank="93" lbank="21" prog="102" />
+ <Patch name="KwangawariSRX" hbank="93" lbank="21" prog="103" />
+ <Patch name="Tuzumi / SRX" hbank="93" lbank="21" prog="104" />
+ <Patch name="KoreaPrcMenu" hbank="93" lbank="21" prog="105" />
+ <Patch name="ChinaPrcMenu" hbank="93" lbank="21" prog="106" />
+ <Patch name="China Menu" hbank="93" lbank="21" prog="107" />
+ <Patch name="ChinaGongSRX" hbank="93" lbank="21" prog="108" />
+ <Patch name="Sanba / SRX" hbank="93" lbank="21" prog="109" />
+ <Patch name="St.ShouBoSRX" hbank="93" lbank="21" prog="110" />
+ <Patch name="AsiaCym Menu" hbank="93" lbank="21" prog="111" />
+ <Patch name="Gong Menu" hbank="93" lbank="21" prog="112" />
+ <Patch name="Gamelan Menu" hbank="93" lbank="21" prog="113" />
+ <Patch name="GamlnPrcMenu" hbank="93" lbank="21" prog="114" />
+ <Patch name="BigBazar SRX" hbank="93" lbank="21" prog="115" />
+ <Patch name="Udu Pot Menu" hbank="93" lbank="21" prog="116" />
+ <Patch name="TablaBy Menu" hbank="93" lbank="21" prog="117" />
+ <Patch name="Rek Menu" hbank="93" lbank="21" prog="118" />
+ <Patch name="Dholak Menu1" hbank="93" lbank="21" prog="119" />
+ <Patch name="Dholak Menu2" hbank="93" lbank="21" prog="120" />
+ <Patch name="Dhol Menu" hbank="93" lbank="21" prog="121" />
+ <Patch name="Egypt Tablah" hbank="93" lbank="21" prog="122" />
+ <Patch name="Madal Menu" hbank="93" lbank="21" prog="123" />
+ <Patch name="AfropercMenu" hbank="93" lbank="21" prog="124" />
+ <Patch name="CommSatelite" hbank="93" lbank="21" prog="125" />
+ <Patch name="Amazone" hbank="93" lbank="21" prog="126" />
+ <Patch name="Tasman Sea" hbank="93" lbank="21" prog="127" />
+ </PatchGroup>
+ <PatchGroup name="SRX09 World Collection 4">
+ <Patch name="Ethnic FX 1" hbank="93" lbank="22" prog="0" />
+ <Patch name="Ethnic FX 2" hbank="93" lbank="22" prog="1" />
+ <Patch name="SpacetualBoy" hbank="93" lbank="22" prog="2" />
+ <Patch name="Crystal" hbank="93" lbank="22" prog="3" />
+ <Patch name="SpaceLuvSick" hbank="93" lbank="22" prog="4" />
+ <Patch name="HitAscension" hbank="93" lbank="22" prog="5" />
+ <Patch name="Nervous Man" hbank="93" lbank="22" prog="6" />
+ <Patch name="Silk Stream" hbank="93" lbank="22" prog="7" />
+ <Patch name="DerangedMind" hbank="93" lbank="22" prog="8" />
+ <Patch name="PolyDrone" hbank="93" lbank="22" prog="9" />
+ <Patch name="TequillaWorm" hbank="93" lbank="22" prog="10" />
+ <Patch name="GlistenToYou" hbank="93" lbank="22" prog="11" />
+ <Patch name="Dream Harp" hbank="93" lbank="22" prog="12" />
+ <Patch name="Waterfall" hbank="93" lbank="22" prog="13" />
+ <Patch name="Gender 3D" hbank="93" lbank="22" prog="14" />
+ <Patch name="Doom Drum" hbank="93" lbank="22" prog="15" />
+ <Patch name="Stalker" hbank="93" lbank="22" prog="16" />
+ <Patch name="PlasticBones" hbank="93" lbank="22" prog="17" />
+ <Patch name="PakistanVibe" hbank="93" lbank="22" prog="18" />
+ <Patch name="ThusSpokeZtr" hbank="93" lbank="22" prog="19" />
+ <Patch name="Kalissando" hbank="93" lbank="22" prog="20" />
+ <Patch name="Rain Forest" hbank="93" lbank="22" prog="21" />
+ <Patch name="AfropunchSRX" hbank="93" lbank="22" prog="22" />
+ <Patch name="Dance Tape" hbank="93" lbank="22" prog="23" />
+ <Patch name="Zaghruta SRX" hbank="93" lbank="22" prog="24" />
+ <Patch name="1,2,3,4! SRX" hbank="93" lbank="22" prog="25" />
+ <Patch name="Voices SRX" hbank="93" lbank="22" prog="26" />
+ <Patch name="Voice Menu 1" hbank="93" lbank="22" prog="27" />
+ <Patch name="Voice Menu 2" hbank="93" lbank="22" prog="28" />
+ <Patch name="Voice Menu3" hbank="93" lbank="22" prog="29" />
+ </PatchGroup>
+ <Controller name="Program" type="Program" />
+ </MidiInstrument>
+</muse>
diff --git a/muse2/share/instruments/Waldorf-Q.idf b/muse2/share/instruments/Waldorf-Q.idf
new file mode 100644
index 00000000..e43c0eab
--- /dev/null
+++ b/muse2/share/instruments/Waldorf-Q.idf
@@ -0,0 +1,574 @@
+<?xml version="1.0"?>
+<muse version="1.0">
+ <MidiInstrument name="Waldorf Q">
+ <PatchGroup name="Internal Bank A">
+ <Patch name="A 01" hbank="0" lbank="0" prog="0" />
+ <Patch name="A 02" hbank="0" lbank="0" prog="1" />
+ <Patch name="A 03" hbank="0" lbank="0" prog="2" />
+ <Patch name="A 04" hbank="0" lbank="0" prog="3" />
+ <Patch name="A 05" hbank="0" lbank="0" prog="4" />
+ <Patch name="A 06" hbank="0" lbank="0" prog="5" />
+ <Patch name="A 07" hbank="0" lbank="0" prog="6" />
+ <Patch name="A 08" hbank="0" lbank="0" prog="7" />
+ <Patch name="A 09" hbank="0" lbank="0" prog="8" />
+ <Patch name="A 10" hbank="0" lbank="0" prog="9" />
+ <Patch name="A 11" hbank="0" lbank="0" prog="10" />
+ <Patch name="A 12" hbank="0" lbank="0" prog="11" />
+ <Patch name="A 13" hbank="0" lbank="0" prog="12" />
+ <Patch name="A 14" hbank="0" lbank="0" prog="13" />
+ <Patch name="A 15" hbank="0" lbank="0" prog="14" />
+ <Patch name="A 16" hbank="0" lbank="0" prog="15" />
+ <Patch name="A 17" hbank="0" lbank="0" prog="16" />
+ <Patch name="A 18" hbank="0" lbank="0" prog="17" />
+ <Patch name="A 19" hbank="0" lbank="0" prog="18" />
+ <Patch name="A 20" hbank="0" lbank="0" prog="19" />
+ <Patch name="A 21" hbank="0" lbank="0" prog="20" />
+ <Patch name="A 22" hbank="0" lbank="0" prog="21" />
+ <Patch name="A 23" hbank="0" lbank="0" prog="22" />
+ <Patch name="A 24" hbank="0" lbank="0" prog="23" />
+ <Patch name="A 25" hbank="0" lbank="0" prog="24" />
+ <Patch name="A 26" hbank="0" lbank="0" prog="25" />
+ <Patch name="A 27" hbank="0" lbank="0" prog="26" />
+ <Patch name="A 28" hbank="0" lbank="0" prog="27" />
+ <Patch name="A 29" hbank="0" lbank="0" prog="28" />
+ <Patch name="A 30" hbank="0" lbank="0" prog="29" />
+ <Patch name="A 31" hbank="0" lbank="0" prog="30" />
+ <Patch name="A 32" hbank="0" lbank="0" prog="31" />
+ <Patch name="A 33" hbank="0" lbank="0" prog="32" />
+ <Patch name="A 34" hbank="0" lbank="0" prog="33" />
+ <Patch name="A 35" hbank="0" lbank="0" prog="34" />
+ <Patch name="A 36" hbank="0" lbank="0" prog="35" />
+ <Patch name="A 37" hbank="0" lbank="0" prog="36" />
+ <Patch name="A 38" hbank="0" lbank="0" prog="37" />
+ <Patch name="A 39" hbank="0" lbank="0" prog="38" />
+ <Patch name="A 40" hbank="0" lbank="0" prog="39" />
+ <Patch name="A 41" hbank="0" lbank="0" prog="40" />
+ <Patch name="A 42" hbank="0" lbank="0" prog="41" />
+ <Patch name="A 43" hbank="0" lbank="0" prog="42" />
+ <Patch name="A 44" hbank="0" lbank="0" prog="43" />
+ <Patch name="A 45" hbank="0" lbank="0" prog="44" />
+ <Patch name="A 46" hbank="0" lbank="0" prog="45" />
+ <Patch name="A 47" hbank="0" lbank="0" prog="46" />
+ <Patch name="A 48" hbank="0" lbank="0" prog="47" />
+ <Patch name="A 49" hbank="0" lbank="0" prog="48" />
+ <Patch name="A 50" hbank="0" lbank="0" prog="49" />
+ <Patch name="A 51" hbank="0" lbank="0" prog="50" />
+ <Patch name="A 52" hbank="0" lbank="0" prog="51" />
+ <Patch name="A 53" hbank="0" lbank="0" prog="52" />
+ <Patch name="A 54" hbank="0" lbank="0" prog="53" />
+ <Patch name="A 55" hbank="0" lbank="0" prog="54" />
+ <Patch name="A 56" hbank="0" lbank="0" prog="55" />
+ <Patch name="A 57" hbank="0" lbank="0" prog="56" />
+ <Patch name="A 58" hbank="0" lbank="0" prog="57" />
+ <Patch name="A 59" hbank="0" lbank="0" prog="58" />
+ <Patch name="A 60" hbank="0" lbank="0" prog="59" />
+ <Patch name="A 61" hbank="0" lbank="0" prog="60" />
+ <Patch name="A 62" hbank="0" lbank="0" prog="61" />
+ <Patch name="A 63" hbank="0" lbank="0" prog="62" />
+ <Patch name="A 64" hbank="0" lbank="0" prog="63" />
+ <Patch name="A 65" hbank="0" lbank="0" prog="64" />
+ <Patch name="A 66" hbank="0" lbank="0" prog="65" />
+ <Patch name="A 67" hbank="0" lbank="0" prog="66" />
+ <Patch name="A 68" hbank="0" lbank="0" prog="67" />
+ <Patch name="A 69" hbank="0" lbank="0" prog="68" />
+ <Patch name="A 70" hbank="0" lbank="0" prog="69" />
+ <Patch name="A 71" hbank="0" lbank="0" prog="70" />
+ <Patch name="A 72" hbank="0" lbank="0" prog="71" />
+ <Patch name="A 73" hbank="0" lbank="0" prog="72" />
+ <Patch name="A 74" hbank="0" lbank="0" prog="73" />
+ <Patch name="A 75" hbank="0" lbank="0" prog="74" />
+ <Patch name="A 76" hbank="0" lbank="0" prog="75" />
+ <Patch name="A 77" hbank="0" lbank="0" prog="76" />
+ <Patch name="A 78" hbank="0" lbank="0" prog="77" />
+ <Patch name="A 79" hbank="0" lbank="0" prog="78" />
+ <Patch name="A 80" hbank="0" lbank="0" prog="79" />
+ <Patch name="A 81" hbank="0" lbank="0" prog="80" />
+ <Patch name="A 82" hbank="0" lbank="0" prog="81" />
+ <Patch name="A 83" hbank="0" lbank="0" prog="82" />
+ <Patch name="A 84" hbank="0" lbank="0" prog="83" />
+ <Patch name="A 85" hbank="0" lbank="0" prog="84" />
+ <Patch name="A 86" hbank="0" lbank="0" prog="85" />
+ <Patch name="A 87" hbank="0" lbank="0" prog="86" />
+ <Patch name="A 88" hbank="0" lbank="0" prog="87" />
+ <Patch name="A 89" hbank="0" lbank="0" prog="88" />
+ <Patch name="A 90" hbank="0" lbank="0" prog="89" />
+ <Patch name="A 91" hbank="0" lbank="0" prog="90" />
+ <Patch name="A 92" hbank="0" lbank="0" prog="91" />
+ <Patch name="A 93" hbank="0" lbank="0" prog="92" />
+ <Patch name="A 94" hbank="0" lbank="0" prog="93" />
+ <Patch name="A 95" hbank="0" lbank="0" prog="94" />
+ <Patch name="A 96" hbank="0" lbank="0" prog="95" />
+ <Patch name="A 97" hbank="0" lbank="0" prog="96" />
+ <Patch name="A 98" hbank="0" lbank="0" prog="97" />
+ <Patch name="A 99" hbank="0" lbank="0" prog="98" />
+ <Patch name="A 100" hbank="0" lbank="0" prog="99" />
+ </PatchGroup>
+ <PatchGroup name="Internal Bank B">
+ <Patch name="B 01" hbank="0" lbank="1" prog="0" />
+ <Patch name="B 02" hbank="0" lbank="1" prog="1" />
+ <Patch name="B 03" hbank="0" lbank="1" prog="2" />
+ <Patch name="B 04" hbank="0" lbank="1" prog="3" />
+ <Patch name="B 05" hbank="0" lbank="1" prog="4" />
+ <Patch name="B 06" hbank="0" lbank="1" prog="5" />
+ <Patch name="B 07" hbank="0" lbank="1" prog="6" />
+ <Patch name="B 08" hbank="0" lbank="1" prog="7" />
+ <Patch name="B 09" hbank="0" lbank="1" prog="8" />
+ <Patch name="B 10" hbank="0" lbank="1" prog="9" />
+ <Patch name="B 11" hbank="0" lbank="1" prog="10" />
+ <Patch name="B 12" hbank="0" lbank="1" prog="11" />
+ <Patch name="B 13" hbank="0" lbank="1" prog="12" />
+ <Patch name="B 14" hbank="0" lbank="1" prog="13" />
+ <Patch name="B 15" hbank="0" lbank="1" prog="14" />
+ <Patch name="B 16" hbank="0" lbank="1" prog="15" />
+ <Patch name="B 17" hbank="0" lbank="1" prog="16" />
+ <Patch name="B 18" hbank="0" lbank="1" prog="17" />
+ <Patch name="B 19" hbank="0" lbank="1" prog="18" />
+ <Patch name="B 20" hbank="0" lbank="1" prog="19" />
+ <Patch name="B 21" hbank="0" lbank="1" prog="20" />
+ <Patch name="B 22" hbank="0" lbank="1" prog="21" />
+ <Patch name="B 23" hbank="0" lbank="1" prog="22" />
+ <Patch name="B 24" hbank="0" lbank="1" prog="23" />
+ <Patch name="B 25" hbank="0" lbank="1" prog="24" />
+ <Patch name="B 26" hbank="0" lbank="1" prog="25" />
+ <Patch name="B 27" hbank="0" lbank="1" prog="26" />
+ <Patch name="B 28" hbank="0" lbank="1" prog="27" />
+ <Patch name="B 29" hbank="0" lbank="1" prog="28" />
+ <Patch name="B 30" hbank="0" lbank="1" prog="29" />
+ <Patch name="B 31" hbank="0" lbank="1" prog="30" />
+ <Patch name="B 32" hbank="0" lbank="1" prog="31" />
+ <Patch name="B 33" hbank="0" lbank="1" prog="32" />
+ <Patch name="B 34" hbank="0" lbank="1" prog="33" />
+ <Patch name="B 35" hbank="0" lbank="1" prog="34" />
+ <Patch name="B 36" hbank="0" lbank="1" prog="35" />
+ <Patch name="B 37" hbank="0" lbank="1" prog="36" />
+ <Patch name="B 38" hbank="0" lbank="1" prog="37" />
+ <Patch name="B 39" hbank="0" lbank="1" prog="38" />
+ <Patch name="B 40" hbank="0" lbank="1" prog="39" />
+ <Patch name="B 41" hbank="0" lbank="1" prog="40" />
+ <Patch name="B 42" hbank="0" lbank="1" prog="41" />
+ <Patch name="B 43" hbank="0" lbank="1" prog="42" />
+ <Patch name="B 44" hbank="0" lbank="1" prog="43" />
+ <Patch name="B 45" hbank="0" lbank="1" prog="44" />
+ <Patch name="B 46" hbank="0" lbank="1" prog="45" />
+ <Patch name="B 47" hbank="0" lbank="1" prog="46" />
+ <Patch name="B 48" hbank="0" lbank="1" prog="47" />
+ <Patch name="B 49" hbank="0" lbank="1" prog="48" />
+ <Patch name="B 50" hbank="0" lbank="1" prog="49" />
+ <Patch name="B 51" hbank="0" lbank="1" prog="50" />
+ <Patch name="B 52" hbank="0" lbank="1" prog="51" />
+ <Patch name="B 53" hbank="0" lbank="1" prog="52" />
+ <Patch name="B 54" hbank="0" lbank="1" prog="53" />
+ <Patch name="B 55" hbank="0" lbank="1" prog="54" />
+ <Patch name="B 56" hbank="0" lbank="1" prog="55" />
+ <Patch name="B 57" hbank="0" lbank="1" prog="56" />
+ <Patch name="B 58" hbank="0" lbank="1" prog="57" />
+ <Patch name="B 59" hbank="0" lbank="1" prog="58" />
+ <Patch name="B 60" hbank="0" lbank="1" prog="59" />
+ <Patch name="B 61" hbank="0" lbank="1" prog="60" />
+ <Patch name="B 62" hbank="0" lbank="1" prog="61" />
+ <Patch name="B 63" hbank="0" lbank="1" prog="62" />
+ <Patch name="B 64" hbank="0" lbank="1" prog="63" />
+ <Patch name="B 65" hbank="0" lbank="1" prog="64" />
+ <Patch name="B 66" hbank="0" lbank="1" prog="65" />
+ <Patch name="B 67" hbank="0" lbank="1" prog="66" />
+ <Patch name="B 68" hbank="0" lbank="1" prog="67" />
+ <Patch name="B 69" hbank="0" lbank="1" prog="68" />
+ <Patch name="B 70" hbank="0" lbank="1" prog="69" />
+ <Patch name="B 71" hbank="0" lbank="1" prog="70" />
+ <Patch name="B 72" hbank="0" lbank="1" prog="71" />
+ <Patch name="B 73" hbank="0" lbank="1" prog="72" />
+ <Patch name="B 74" hbank="0" lbank="1" prog="73" />
+ <Patch name="B 75" hbank="0" lbank="1" prog="74" />
+ <Patch name="B 76" hbank="0" lbank="1" prog="75" />
+ <Patch name="B 77" hbank="0" lbank="1" prog="76" />
+ <Patch name="B 78" hbank="0" lbank="1" prog="77" />
+ <Patch name="B 79" hbank="0" lbank="1" prog="78" />
+ <Patch name="B 80" hbank="0" lbank="1" prog="79" />
+ <Patch name="B 81" hbank="0" lbank="1" prog="80" />
+ <Patch name="B 82" hbank="0" lbank="1" prog="81" />
+ <Patch name="B 83" hbank="0" lbank="1" prog="82" />
+ <Patch name="B 84" hbank="0" lbank="1" prog="83" />
+ <Patch name="B 85" hbank="0" lbank="1" prog="84" />
+ <Patch name="B 86" hbank="0" lbank="1" prog="85" />
+ <Patch name="B 87" hbank="0" lbank="1" prog="86" />
+ <Patch name="B 88" hbank="0" lbank="1" prog="87" />
+ <Patch name="B 89" hbank="0" lbank="1" prog="88" />
+ <Patch name="B 90" hbank="0" lbank="1" prog="89" />
+ <Patch name="B 91" hbank="0" lbank="1" prog="90" />
+ <Patch name="B 92" hbank="0" lbank="1" prog="91" />
+ <Patch name="B 93" hbank="0" lbank="1" prog="92" />
+ <Patch name="B 94" hbank="0" lbank="1" prog="93" />
+ <Patch name="B 95" hbank="0" lbank="1" prog="94" />
+ <Patch name="B 96" hbank="0" lbank="1" prog="95" />
+ <Patch name="B 97" hbank="0" lbank="1" prog="96" />
+ <Patch name="B 98" hbank="0" lbank="1" prog="97" />
+ <Patch name="B 99" hbank="0" lbank="1" prog="98" />
+ <Patch name="B 100" hbank="0" lbank="1" prog="99" />
+ </PatchGroup>
+ <PatchGroup name="Internal Bank C">
+ <Patch name="C 01" hbank="0" lbank="2" prog="0" />
+ <Patch name="C 02" hbank="0" lbank="2" prog="1" />
+ <Patch name="C 03" hbank="0" lbank="2" prog="2" />
+ <Patch name="C 04" hbank="0" lbank="2" prog="3" />
+ <Patch name="C 05" hbank="0" lbank="2" prog="4" />
+ <Patch name="C 06" hbank="0" lbank="2" prog="5" />
+ <Patch name="C 07" hbank="0" lbank="2" prog="6" />
+ <Patch name="C 08" hbank="0" lbank="2" prog="7" />
+ <Patch name="C 09" hbank="0" lbank="2" prog="8" />
+ <Patch name="C 10" hbank="0" lbank="2" prog="9" />
+ <Patch name="C 11" hbank="0" lbank="2" prog="10" />
+ <Patch name="C 12" hbank="0" lbank="2" prog="11" />
+ <Patch name="C 13" hbank="0" lbank="2" prog="12" />
+ <Patch name="C 14" hbank="0" lbank="2" prog="13" />
+ <Patch name="C 15" hbank="0" lbank="2" prog="14" />
+ <Patch name="C 16" hbank="0" lbank="2" prog="15" />
+ <Patch name="C 17" hbank="0" lbank="2" prog="16" />
+ <Patch name="C 18" hbank="0" lbank="2" prog="17" />
+ <Patch name="C 19" hbank="0" lbank="2" prog="18" />
+ <Patch name="C 20" hbank="0" lbank="2" prog="19" />
+ <Patch name="C 21" hbank="0" lbank="2" prog="20" />
+ <Patch name="C 22" hbank="0" lbank="2" prog="21" />
+ <Patch name="C 23" hbank="0" lbank="2" prog="22" />
+ <Patch name="C 24" hbank="0" lbank="2" prog="23" />
+ <Patch name="C 25" hbank="0" lbank="2" prog="24" />
+ <Patch name="C 26" hbank="0" lbank="2" prog="25" />
+ <Patch name="C 27" hbank="0" lbank="2" prog="26" />
+ <Patch name="C 28" hbank="0" lbank="2" prog="27" />
+ <Patch name="C 29" hbank="0" lbank="2" prog="28" />
+ <Patch name="C 30" hbank="0" lbank="2" prog="29" />
+ <Patch name="C 31" hbank="0" lbank="2" prog="30" />
+ <Patch name="C 32" hbank="0" lbank="2" prog="31" />
+ <Patch name="C 33" hbank="0" lbank="2" prog="32" />
+ <Patch name="C 34" hbank="0" lbank="2" prog="33" />
+ <Patch name="C 35" hbank="0" lbank="2" prog="34" />
+ <Patch name="C 36" hbank="0" lbank="2" prog="35" />
+ <Patch name="C 37" hbank="0" lbank="2" prog="36" />
+ <Patch name="C 38" hbank="0" lbank="2" prog="37" />
+ <Patch name="C 39" hbank="0" lbank="2" prog="38" />
+ <Patch name="C 40" hbank="0" lbank="2" prog="39" />
+ <Patch name="C 41" hbank="0" lbank="2" prog="40" />
+ <Patch name="C 42" hbank="0" lbank="2" prog="41" />
+ <Patch name="C 43" hbank="0" lbank="2" prog="42" />
+ <Patch name="C 44" hbank="0" lbank="2" prog="43" />
+ <Patch name="C 45" hbank="0" lbank="2" prog="44" />
+ <Patch name="C 46" hbank="0" lbank="2" prog="45" />
+ <Patch name="C 47" hbank="0" lbank="2" prog="46" />
+ <Patch name="C 48" hbank="0" lbank="2" prog="47" />
+ <Patch name="C 49" hbank="0" lbank="2" prog="48" />
+ <Patch name="C 50" hbank="0" lbank="2" prog="49" />
+ <Patch name="C 51" hbank="0" lbank="2" prog="50" />
+ <Patch name="C 52" hbank="0" lbank="2" prog="51" />
+ <Patch name="C 53" hbank="0" lbank="2" prog="52" />
+ <Patch name="C 54" hbank="0" lbank="2" prog="53" />
+ <Patch name="C 55" hbank="0" lbank="2" prog="54" />
+ <Patch name="C 56" hbank="0" lbank="2" prog="55" />
+ <Patch name="C 57" hbank="0" lbank="2" prog="56" />
+ <Patch name="C 58" hbank="0" lbank="2" prog="57" />
+ <Patch name="C 59" hbank="0" lbank="2" prog="58" />
+ <Patch name="C 60" hbank="0" lbank="2" prog="59" />
+ <Patch name="C 61" hbank="0" lbank="2" prog="60" />
+ <Patch name="C 62" hbank="0" lbank="2" prog="61" />
+ <Patch name="C 63" hbank="0" lbank="2" prog="62" />
+ <Patch name="C 64" hbank="0" lbank="2" prog="63" />
+ <Patch name="C 65" hbank="0" lbank="2" prog="64" />
+ <Patch name="C 66" hbank="0" lbank="2" prog="65" />
+ <Patch name="C 67" hbank="0" lbank="2" prog="66" />
+ <Patch name="C 68" hbank="0" lbank="2" prog="67" />
+ <Patch name="C 69" hbank="0" lbank="2" prog="68" />
+ <Patch name="C 70" hbank="0" lbank="2" prog="69" />
+ <Patch name="C 71" hbank="0" lbank="2" prog="70" />
+ <Patch name="C 72" hbank="0" lbank="2" prog="71" />
+ <Patch name="C 73" hbank="0" lbank="2" prog="72" />
+ <Patch name="C 74" hbank="0" lbank="2" prog="73" />
+ <Patch name="C 75" hbank="0" lbank="2" prog="74" />
+ <Patch name="C 76" hbank="0" lbank="2" prog="75" />
+ <Patch name="C 77" hbank="0" lbank="2" prog="76" />
+ <Patch name="C 78" hbank="0" lbank="2" prog="77" />
+ <Patch name="C 79" hbank="0" lbank="2" prog="78" />
+ <Patch name="C 80" hbank="0" lbank="2" prog="79" />
+ <Patch name="C 81" hbank="0" lbank="2" prog="80" />
+ <Patch name="C 82" hbank="0" lbank="2" prog="81" />
+ <Patch name="C 83" hbank="0" lbank="2" prog="82" />
+ <Patch name="C 84" hbank="0" lbank="2" prog="83" />
+ <Patch name="C 85" hbank="0" lbank="2" prog="84" />
+ <Patch name="C 86" hbank="0" lbank="2" prog="85" />
+ <Patch name="C 87" hbank="0" lbank="2" prog="86" />
+ <Patch name="C 88" hbank="0" lbank="2" prog="87" />
+ <Patch name="C 89" hbank="0" lbank="2" prog="88" />
+ <Patch name="C 90" hbank="0" lbank="2" prog="89" />
+ <Patch name="C 91" hbank="0" lbank="2" prog="90" />
+ <Patch name="C 92" hbank="0" lbank="2" prog="91" />
+ <Patch name="C 93" hbank="0" lbank="2" prog="92" />
+ <Patch name="C 94" hbank="0" lbank="2" prog="93" />
+ <Patch name="C 95" hbank="0" lbank="2" prog="94" />
+ <Patch name="C 96" hbank="0" lbank="2" prog="95" />
+ <Patch name="C 97" hbank="0" lbank="2" prog="96" />
+ <Patch name="C 98" hbank="0" lbank="2" prog="97" />
+ <Patch name="C 99" hbank="0" lbank="2" prog="98" />
+ <Patch name="C 100" hbank="0" lbank="2" prog="99" />
+ </PatchGroup>
+ <PatchGroup name="Card Bank X">
+ <Patch name="X 01" hbank="0" lbank="3" prog="0" />
+ <Patch name="X 02" hbank="0" lbank="3" prog="1" />
+ <Patch name="X 03" hbank="0" lbank="3" prog="2" />
+ <Patch name="X 04" hbank="0" lbank="3" prog="3" />
+ <Patch name="X 05" hbank="0" lbank="3" prog="4" />
+ <Patch name="X 06" hbank="0" lbank="3" prog="5" />
+ <Patch name="X 07" hbank="0" lbank="3" prog="6" />
+ <Patch name="X 08" hbank="0" lbank="3" prog="7" />
+ <Patch name="X 09" hbank="0" lbank="3" prog="8" />
+ <Patch name="X 10" hbank="0" lbank="3" prog="9" />
+ <Patch name="X 11" hbank="0" lbank="3" prog="10" />
+ <Patch name="X 12" hbank="0" lbank="3" prog="11" />
+ <Patch name="X 13" hbank="0" lbank="3" prog="12" />
+ <Patch name="X 14" hbank="0" lbank="3" prog="13" />
+ <Patch name="X 15" hbank="0" lbank="3" prog="14" />
+ <Patch name="X 16" hbank="0" lbank="3" prog="15" />
+ <Patch name="X 17" hbank="0" lbank="3" prog="16" />
+ <Patch name="X 18" hbank="0" lbank="3" prog="17" />
+ <Patch name="X 19" hbank="0" lbank="3" prog="18" />
+ <Patch name="X 20" hbank="0" lbank="3" prog="19" />
+ <Patch name="X 21" hbank="0" lbank="3" prog="20" />
+ <Patch name="X 22" hbank="0" lbank="3" prog="21" />
+ <Patch name="X 23" hbank="0" lbank="3" prog="22" />
+ <Patch name="X 24" hbank="0" lbank="3" prog="23" />
+ <Patch name="X 25" hbank="0" lbank="3" prog="24" />
+ <Patch name="X 26" hbank="0" lbank="3" prog="25" />
+ <Patch name="X 27" hbank="0" lbank="3" prog="26" />
+ <Patch name="X 28" hbank="0" lbank="3" prog="27" />
+ <Patch name="X 29" hbank="0" lbank="3" prog="28" />
+ <Patch name="X 30" hbank="0" lbank="3" prog="29" />
+ <Patch name="X 31" hbank="0" lbank="3" prog="30" />
+ <Patch name="X 32" hbank="0" lbank="3" prog="31" />
+ <Patch name="X 33" hbank="0" lbank="3" prog="32" />
+ <Patch name="X 34" hbank="0" lbank="3" prog="33" />
+ <Patch name="X 35" hbank="0" lbank="3" prog="34" />
+ <Patch name="X 36" hbank="0" lbank="3" prog="35" />
+ <Patch name="X 37" hbank="0" lbank="3" prog="36" />
+ <Patch name="X 38" hbank="0" lbank="3" prog="37" />
+ <Patch name="X 39" hbank="0" lbank="3" prog="38" />
+ <Patch name="X 40" hbank="0" lbank="3" prog="39" />
+ <Patch name="X 41" hbank="0" lbank="3" prog="40" />
+ <Patch name="X 42" hbank="0" lbank="3" prog="41" />
+ <Patch name="X 43" hbank="0" lbank="3" prog="42" />
+ <Patch name="X 44" hbank="0" lbank="3" prog="43" />
+ <Patch name="X 45" hbank="0" lbank="3" prog="44" />
+ <Patch name="X 46" hbank="0" lbank="3" prog="45" />
+ <Patch name="X 47" hbank="0" lbank="3" prog="46" />
+ <Patch name="X 48" hbank="0" lbank="3" prog="47" />
+ <Patch name="X 49" hbank="0" lbank="3" prog="48" />
+ <Patch name="X 50" hbank="0" lbank="3" prog="49" />
+ <Patch name="X 51" hbank="0" lbank="3" prog="50" />
+ <Patch name="X 52" hbank="0" lbank="3" prog="51" />
+ <Patch name="X 53" hbank="0" lbank="3" prog="52" />
+ <Patch name="X 54" hbank="0" lbank="3" prog="53" />
+ <Patch name="X 55" hbank="0" lbank="3" prog="54" />
+ <Patch name="X 56" hbank="0" lbank="3" prog="55" />
+ <Patch name="X 57" hbank="0" lbank="3" prog="56" />
+ <Patch name="X 58" hbank="0" lbank="3" prog="57" />
+ <Patch name="X 59" hbank="0" lbank="3" prog="58" />
+ <Patch name="X 60" hbank="0" lbank="3" prog="59" />
+ <Patch name="X 61" hbank="0" lbank="3" prog="60" />
+ <Patch name="X 62" hbank="0" lbank="3" prog="61" />
+ <Patch name="X 63" hbank="0" lbank="3" prog="62" />
+ <Patch name="X 64" hbank="0" lbank="3" prog="63" />
+ <Patch name="X 65" hbank="0" lbank="3" prog="64" />
+ <Patch name="X 66" hbank="0" lbank="3" prog="65" />
+ <Patch name="X 67" hbank="0" lbank="3" prog="66" />
+ <Patch name="X 68" hbank="0" lbank="3" prog="67" />
+ <Patch name="X 69" hbank="0" lbank="3" prog="68" />
+ <Patch name="X 70" hbank="0" lbank="3" prog="69" />
+ <Patch name="X 71" hbank="0" lbank="3" prog="70" />
+ <Patch name="X 72" hbank="0" lbank="3" prog="71" />
+ <Patch name="X 73" hbank="0" lbank="3" prog="72" />
+ <Patch name="X 74" hbank="0" lbank="3" prog="73" />
+ <Patch name="X 75" hbank="0" lbank="3" prog="74" />
+ <Patch name="X 76" hbank="0" lbank="3" prog="75" />
+ <Patch name="X 77" hbank="0" lbank="3" prog="76" />
+ <Patch name="X 78" hbank="0" lbank="3" prog="77" />
+ <Patch name="X 79" hbank="0" lbank="3" prog="78" />
+ <Patch name="X 80" hbank="0" lbank="3" prog="79" />
+ <Patch name="X 81" hbank="0" lbank="3" prog="80" />
+ <Patch name="X 82" hbank="0" lbank="3" prog="81" />
+ <Patch name="X 83" hbank="0" lbank="3" prog="82" />
+ <Patch name="X 84" hbank="0" lbank="3" prog="83" />
+ <Patch name="X 85" hbank="0" lbank="3" prog="84" />
+ <Patch name="X 86" hbank="0" lbank="3" prog="85" />
+ <Patch name="X 87" hbank="0" lbank="3" prog="86" />
+ <Patch name="X 88" hbank="0" lbank="3" prog="87" />
+ <Patch name="X 89" hbank="0" lbank="3" prog="88" />
+ <Patch name="X 90" hbank="0" lbank="3" prog="89" />
+ <Patch name="X 91" hbank="0" lbank="3" prog="90" />
+ <Patch name="X 92" hbank="0" lbank="3" prog="91" />
+ <Patch name="X 93" hbank="0" lbank="3" prog="92" />
+ <Patch name="X 94" hbank="0" lbank="3" prog="93" />
+ <Patch name="X 95" hbank="0" lbank="3" prog="94" />
+ <Patch name="X 96" hbank="0" lbank="3" prog="95" />
+ <Patch name="X 97" hbank="0" lbank="3" prog="96" />
+ <Patch name="X 98" hbank="0" lbank="3" prog="97" />
+ <Patch name="X 99" hbank="0" lbank="3" prog="98" />
+ <Patch name="X 100" hbank="0" lbank="3" prog="99" />
+ </PatchGroup>
+ <PatchGroup name="Internal Drums D">
+ <Patch name="D 01" hbank="0" lbank="4" prog="0" />
+ <Patch name="D 02" hbank="0" lbank="4" prog="1" />
+ <Patch name="D 03" hbank="0" lbank="4" prog="2" />
+ <Patch name="D 04" hbank="0" lbank="4" prog="3" />
+ <Patch name="D 05" hbank="0" lbank="4" prog="4" />
+ <Patch name="D 06" hbank="0" lbank="4" prog="5" />
+ <Patch name="D 07" hbank="0" lbank="4" prog="6" />
+ <Patch name="D 08" hbank="0" lbank="4" prog="7" />
+ <Patch name="D 09" hbank="0" lbank="4" prog="8" />
+ <Patch name="D 10" hbank="0" lbank="4" prog="9" />
+ <Patch name="D 11" hbank="0" lbank="4" prog="10" />
+ <Patch name="D 12" hbank="0" lbank="4" prog="11" />
+ <Patch name="D 13" hbank="0" lbank="4" prog="12" />
+ <Patch name="D 14" hbank="0" lbank="4" prog="13" />
+ <Patch name="D 15" hbank="0" lbank="4" prog="14" />
+ <Patch name="D 16" hbank="0" lbank="4" prog="15" />
+ <Patch name="D 17" hbank="0" lbank="4" prog="16" />
+ <Patch name="D 18" hbank="0" lbank="4" prog="17" />
+ <Patch name="D 19" hbank="0" lbank="4" prog="18" />
+ <Patch name="D 20" hbank="0" lbank="4" prog="19" />
+ </PatchGroup>
+ <PatchGroup name="Card Drums E">
+ <Patch name="E 01" hbank="0" lbank="5" prog="0" />
+ <Patch name="E 02" hbank="0" lbank="5" prog="1" />
+ <Patch name="E 03" hbank="0" lbank="5" prog="2" />
+ <Patch name="E 04" hbank="0" lbank="5" prog="3" />
+ <Patch name="E 05" hbank="0" lbank="5" prog="4" />
+ <Patch name="E 06" hbank="0" lbank="5" prog="5" />
+ <Patch name="E 07" hbank="0" lbank="5" prog="6" />
+ <Patch name="E 08" hbank="0" lbank="5" prog="7" />
+ <Patch name="E 09" hbank="0" lbank="5" prog="8" />
+ <Patch name="E 10" hbank="0" lbank="5" prog="9" />
+ <Patch name="E 11" hbank="0" lbank="5" prog="10" />
+ <Patch name="E 12" hbank="0" lbank="5" prog="11" />
+ <Patch name="E 13" hbank="0" lbank="5" prog="12" />
+ <Patch name="E 14" hbank="0" lbank="5" prog="13" />
+ <Patch name="E 15" hbank="0" lbank="5" prog="14" />
+ <Patch name="E 16" hbank="0" lbank="5" prog="15" />
+ <Patch name="E 17" hbank="0" lbank="5" prog="16" />
+ <Patch name="E 18" hbank="0" lbank="5" prog="17" />
+ <Patch name="E 19" hbank="0" lbank="5" prog="18" />
+ <Patch name="E 20" hbank="0" lbank="5" prog="19" />
+ </PatchGroup>
+ <Controller name="Modulation" l="1" />
+ <Controller name="Breath Control" l="2" />
+ <Controller name="Foot Control" l="4" />
+ <Controller name="PortamentoTime" l="5" />
+ <Controller name="MainVolume" l="7" init="100" />
+ <Controller name="Pan" l="10" min="-64" max="63" init="0" />
+ <Controller name="Arp Range" l="12" />
+ <Controller name="Arp Length" l="13" />
+ <Controller name="Arp Active" l="14" />
+ <Controller name="Lfo 1 Shape" l="15" />
+ <Controller name="Lfo 1 Speed" l="16" />
+ <Controller name="Lfo 1 Sync" l="17" />
+ <Controller name="Lfo 1 Delay" l="18" />
+ <Controller name="Lfo 2 Shape" l="19" />
+ <Controller name="Lfo 2 Speed" l="20" />
+ <Controller name="Lfo 2 Sync" l="21" />
+ <Controller name="Lfo 2 Delay" l="22" />
+ <Controller name="Lfo 3 Shape" l="23" />
+ <Controller name="Lfo 3 Speed" l="24" />
+ <Controller name="Lfo 3 Sync" l="25" />
+ <Controller name="Lfo 3 Delay" l="26" />
+ <Controller name="Osc 1 Octave" l="27" />
+ <Controller name="Osc 1 Semitone" l="28" />
+ <Controller name="Osc 1 Detune" l="29" />
+ <Controller name="Osc 1 FM" l="30" />
+ <Controller name="Osc 1 Shape" l="31" />
+ <Controller name="Bank Select LSB" l="32" />
+ <Controller name="Osc 1 PW" l="33" />
+ <Controller name="Osc 1 PWM" l="34" />
+ <Controller name="Osc 2 Octave" l="35" />
+ <Controller name="Osc 2 Semitone" l="36" />
+ <Controller name="Osc 2 Detune" l="37" />
+ <Controller name="Osc 2 FM" l="38" />
+ <Controller name="Osc 2 Shape" l="39" />
+ <Controller name="Osc 2 PW" l="40" />
+ <Controller name="Osc 2 PWM" l="41" />
+ <Controller name="Osc 3 Octave" l="42" />
+ <Controller name="Osc 3 Semitone" l="43" />
+ <Controller name="Osc 3 Detune" l="44" />
+ <Controller name="Osc 3 FM" l="45" />
+ <Controller name="Osc 3 Shape" l="46" />
+ <Controller name="Osc 3 PW" l="47" />
+ <Controller name="Osc 3 PWM" l="48" />
+ <Controller name="Sync" l="49" />
+ <Controller name="Pitchmod" l="50" />
+ <Controller name="Glide Mode" l="51" />
+ <Controller name="Osc 1 Level" l="52" />
+ <Controller name="Osc 1 Balance" l="53" />
+ <Controller name="Ringmod Level" l="54" />
+ <Controller name="Ringmod Balance" l="55" />
+ <Controller name="Osc 2 Level" l="56" />
+ <Controller name="Osc 2 Balance" l="57" />
+ <Controller name="Osc 3 Level" l="58" />
+ <Controller name="Osc 3 Balance" l="59" />
+ <Controller name="N/E Level" l="60" />
+ <Controller name="N/E Balance" l="61" />
+ <Controller name="Sustain Pedal" l="64" />
+ <Controller name="Glide Active" l="65" />
+ <Controller name="Sostenuto" l="66" />
+ <Controller name="Routing" l="67" />
+ <Controller name="Filter 1 Type" l="68" />
+ <Controller name="Filter 1 Cutoff" l="69" />
+ <Controller name="Filter 1 Resonance" l="70" />
+ <Controller name="Filter 1 Drive" l="71" />
+ <Controller name="Filter 1 Keytrack" l="72" />
+ <Controller name="Filter 1 Env. Amount" l="73" />
+ <Controller name="Filter 1 Env. Velocity" l="74" />
+ <Controller name="Filter 1 CutoffMod" l="75" />
+ <Controller name="Filter 1 FM" l="76" />
+ <Controller name="Filter 1 Pan" l="77" />
+ <Controller name="Filter 1 PanMod" l="78" />
+ <Controller name="Filter 2 Type" l="79" />
+ <Controller name="Filter 2 Cutoff" l="80" />
+ <Controller name="Filter 2 Resonance" l="81" />
+ <Controller name="Filter 2 Drive" l="82" />
+ <Controller name="Filter 2 Keytrack" l="83" />
+ <Controller name="Filter 2 Env. Amount" l="84" />
+ <Controller name="Filter 2 Env. Velocity" l="85" />
+ <Controller name="Filter 2 CutoffMod" l="86" />
+ <Controller name="Filter 2 FM" l="87" />
+ <Controller name="Filter 2 Pan" l="88" />
+ <Controller name="Filter 2 PanMod" l="89" />
+ <Controller name="Amp Volume" l="90" />
+ <Controller name="Amp Velocity" l="91" />
+ <Controller name="Amp Mod" l="92" />
+ <Controller name="FX 1 Mix" l="93" />
+ <Controller name="FX 2 Mix" l="94" />
+ <Controller name="FE Attack" l="95" />
+ <Controller name="FE Decay" l="96" />
+ <Controller name="FE Sustain" l="97" />
+ <Controller name="FE Decay 2" l="98" />
+ <Controller name="FE Sustain 2" l="99" />
+ <Controller name="FE Release" l="100" />
+ <Controller name="AE Attack" l="101" />
+ <Controller name="AE Decay" l="102" />
+ <Controller name="AE Sustain" l="103" />
+ <Controller name="AE Decay 2" l="104" />
+ <Controller name="AE Sustain 2" l="105" />
+ <Controller name="AE Release" l="106" />
+ <Controller name="E3 Attack" l="107" />
+ <Controller name="E3 Decay" l="108" />
+ <Controller name="E3 Sustain" l="109" />
+ <Controller name="E3 Decay 2" l="110" />
+ <Controller name="E3 Sustain 2" l="111" />
+ <Controller name="E3 Release" l="112" />
+ <Controller name="E4 Attack" l="113" />
+ <Controller name="E4 Decay" l="114" />
+ <Controller name="E4 Sustain" l="115" />
+ <Controller name="E4 Decay 2" l="116" />
+ <Controller name="E4 Sustain 2" l="117" />
+ <Controller name="E4 Release" l="118" />
+ <Controller name="All Sounds Off" l="120" />
+ <Controller name="Reset All Controllers" l="121" />
+ <Controller name="Local Control" l="122" />
+ <Controller name="All Notes Off" l="123" />
+ <Controller name="Pitch" type="Pitch" />
+ <Controller name="Program" type="Program" />
+ </MidiInstrument>
+</muse>
diff --git a/muse2/share/instruments/Waldorf-microQ-Factory2000.idf b/muse2/share/instruments/Waldorf-microQ-Factory2000.idf
new file mode 100644
index 00000000..678854a8
--- /dev/null
+++ b/muse2/share/instruments/Waldorf-microQ-Factory2000.idf
@@ -0,0 +1,552 @@
+<?xml version="1.0"?>
+<muse version="1.0">
+ <MidiInstrument name="Waldorf microQ Factory2000">
+ <PatchGroup name="Internal Bank A">
+ <Patch name="HornsOfJericho" hbank="0" lbank="0" prog="0" />
+ <Patch name="Attacke" hbank="0" lbank="0" prog="1" />
+ <Patch name="MI5 Pad" hbank="0" lbank="0" prog="2" />
+ <Patch name="Simple Saw" hbank="0" lbank="0" prog="3" />
+ <Patch name="Q-Sweep2" hbank="0" lbank="0" prog="4" />
+ <Patch name="Clock+Bells" hbank="0" lbank="0" prog="5" />
+ <Patch name="Bandsweep" hbank="0" lbank="0" prog="6" />
+ <Patch name="Fiftyfive" hbank="0" lbank="0" prog="7" />
+ <Patch name="Liquid Strg" hbank="0" lbank="0" prog="8" />
+ <Patch name="Gum Bass" hbank="0" lbank="0" prog="9" />
+ <Patch name="Slow Wavetrip" hbank="0" lbank="0" prog="10" />
+ <Patch name="Expensive" hbank="0" lbank="0" prog="11" />
+ <Patch name="Mono Sync" hbank="0" lbank="0" prog="12" />
+ <Patch name="CombTutorial" hbank="0" lbank="0" prog="13" />
+ <Patch name="Antarktis2000" hbank="0" lbank="0" prog="14" />
+ <Patch name="Panreduction" hbank="0" lbank="0" prog="15" />
+ <Patch name="CS100" hbank="0" lbank="0" prog="16" />
+ <Patch name="TributeTo DX" hbank="0" lbank="0" prog="17" />
+ <Patch name="Demolition" hbank="0" lbank="0" prog="18" />
+ <Patch name="JMX vs. DeLeon" hbank="0" lbank="0" prog="19" />
+ <Patch name="PWM Pad 2000" hbank="0" lbank="0" prog="20" />
+ <Patch name="Cleanline 303" hbank="0" lbank="0" prog="21" />
+ <Patch name="Slow Strings1" hbank="0" lbank="0" prog="22" />
+ <Patch name="Stuermer 2" hbank="0" lbank="0" prog="23" />
+ <Patch name="Kamm-FX2" hbank="0" lbank="0" prog="24" />
+ <Patch name="Metal Jelly 3" hbank="0" lbank="0" prog="25" />
+ <Patch name="Acid Phunk" hbank="0" lbank="0" prog="26" />
+ <Patch name="Digiseq" hbank="0" lbank="0" prog="27" />
+ <Patch name="TschingHisCan" hbank="0" lbank="0" prog="28" />
+ <Patch name="Enough Power" hbank="0" lbank="0" prog="29" />
+ <Patch name="Replik.Dream" hbank="0" lbank="0" prog="30" />
+ <Patch name="Waterfone2000" hbank="0" lbank="0" prog="31" />
+ <Patch name="wave@waldorf.ne" hbank="0" lbank="0" prog="32" />
+ <Patch name="The Beginning" hbank="0" lbank="0" prog="33" />
+ <Patch name="Q Tables" hbank="0" lbank="0" prog="34" />
+ <Patch name="Polaris" hbank="0" lbank="0" prog="35" />
+ <Patch name="Baraka" hbank="0" lbank="0" prog="36" />
+ <Patch name="Buzzer 1" hbank="0" lbank="0" prog="37" />
+ <Patch name="Onyx" hbank="0" lbank="0" prog="38" />
+ <Patch name="Brownies" hbank="0" lbank="0" prog="39" />
+ <Patch name="Caspoly" hbank="0" lbank="0" prog="40" />
+ <Patch name="Minor Chord" hbank="0" lbank="0" prog="41" />
+ <Patch name="Quintage" hbank="0" lbank="0" prog="42" />
+ <Patch name="Bright Syn 1" hbank="0" lbank="0" prog="43" />
+ <Patch name="Jazz Percssn" hbank="0" lbank="0" prog="44" />
+ <Patch name="Dirty Organ1" hbank="0" lbank="0" prog="45" />
+ <Patch name="Saw Lead" hbank="0" lbank="0" prog="46" />
+ <Patch name="Saw 1 Osc" hbank="0" lbank="0" prog="47" />
+ <Patch name="Mayday Solo" hbank="0" lbank="0" prog="48" />
+ <Patch name="LoFi Lead" hbank="0" lbank="0" prog="49" />
+ <Patch name="Dr.Dre" hbank="0" lbank="0" prog="50" />
+ <Patch name="Zombie Nation" hbank="0" lbank="0" prog="51" />
+ <Patch name="Dr. Motte" hbank="0" lbank="0" prog="52" />
+ <Patch name="Stuermer 3" hbank="0" lbank="0" prog="53" />
+ <Patch name="Satte Sache" hbank="0" lbank="0" prog="54" />
+ <Patch name="Crunchy Nuts" hbank="0" lbank="0" prog="55" />
+ <Patch name="Wells\Tripod" hbank="0" lbank="0" prog="56" />
+ <Patch name="Phat Beat" hbank="0" lbank="0" prog="57" />
+ <Patch name="Highpass Pad" hbank="0" lbank="0" prog="58" />
+ <Patch name="Ikea Arsvik" hbank="0" lbank="0" prog="59" />
+ <Patch name="Big Beat Sync" hbank="0" lbank="0" prog="60" />
+ <Patch name="D.K.Dent Solo1" hbank="0" lbank="0" prog="61" />
+ <Patch name="DollarBells" hbank="0" lbank="0" prog="62" />
+ <Patch name="Acronaut" hbank="0" lbank="0" prog="63" />
+ <Patch name="Full Brass" hbank="0" lbank="0" prog="64" />
+ <Patch name="TrumPete" hbank="0" lbank="0" prog="65" />
+ <Patch name="Comb Clavi" hbank="0" lbank="0" prog="66" />
+ <Patch name="Qvation" hbank="0" lbank="0" prog="67" />
+ <Patch name="Alphaville ?!" hbank="0" lbank="0" prog="68" />
+ <Patch name="PPG Nylons" hbank="0" lbank="0" prog="69" />
+ <Patch name="Bad Flute" hbank="0" lbank="0" prog="70" />
+ <Patch name="Pizzicated" hbank="0" lbank="0" prog="71" />
+ <Patch name="Celli" hbank="0" lbank="0" prog="72" />
+ <Patch name="Violas" hbank="0" lbank="0" prog="73" />
+ <Patch name="Violins" hbank="0" lbank="0" prog="74" />
+ <Patch name="StringOrchid" hbank="0" lbank="0" prog="75" />
+ <Patch name="BackStrings" hbank="0" lbank="0" prog="76" />
+ <Patch name="TripleStrings" hbank="0" lbank="0" prog="77" />
+ <Patch name="WideWarmWash" hbank="0" lbank="0" prog="78" />
+ <Patch name="Faiza Strg" hbank="0" lbank="0" prog="79" />
+ <Patch name="Dark Strings" hbank="0" lbank="0" prog="80" />
+ <Patch name="GabrielsPad" hbank="0" lbank="0" prog="81" />
+ <Patch name="SlowThinPhase" hbank="0" lbank="0" prog="82" />
+ <Patch name="Silk Pad 2" hbank="0" lbank="0" prog="83" />
+ <Patch name="Padagogy" hbank="0" lbank="0" prog="84" />
+ <Patch name="Noise Pad" hbank="0" lbank="0" prog="85" />
+ <Patch name="Kling" hbank="0" lbank="0" prog="86" />
+ <Patch name="JPad" hbank="0" lbank="0" prog="87" />
+ <Patch name="FORoMANTic" hbank="0" lbank="0" prog="88" />
+ <Patch name="Hiph Sweep" hbank="0" lbank="0" prog="89" />
+ <Patch name="Choir Pad" hbank="0" lbank="0" prog="90" />
+ <Patch name="Om mani padme" hbank="0" lbank="0" prog="91" />
+ <Patch name="Melanchton" hbank="0" lbank="0" prog="92" />
+ <Patch name="Dreamware" hbank="0" lbank="0" prog="93" />
+ <Patch name="S+H+Pad+Nice" hbank="0" lbank="0" prog="94" />
+ <Patch name="Slow Motion" hbank="0" lbank="0" prog="95" />
+ <Patch name="Singing Glass" hbank="0" lbank="0" prog="96" />
+ <Patch name="Sphaer" hbank="0" lbank="0" prog="97" />
+ <Patch name="Not guilty!" hbank="0" lbank="0" prog="98" />
+ <Patch name="ARCTICA" hbank="0" lbank="0" prog="99" />
+ </PatchGroup>
+ <PatchGroup name="Internal Bank B">
+ <Patch name="Buzzer 3" hbank="0" lbank="1" prog="0" />
+ <Patch name="ClickChords" hbank="0" lbank="1" prog="1" />
+ <Patch name="Hard On Floor" hbank="0" lbank="1" prog="2" />
+ <Patch name="Clockworx" hbank="0" lbank="1" prog="3" />
+ <Patch name="DanceSequence" hbank="0" lbank="1" prog="4" />
+ <Patch name="Bassline 3O3" hbank="0" lbank="1" prog="5" />
+ <Patch name="Another One" hbank="0" lbank="1" prog="6" />
+ <Patch name="Brighter Than" hbank="0" lbank="1" prog="7" />
+ <Patch name="J106 Xiox" hbank="0" lbank="1" prog="8" />
+ <Patch name="Mantra" hbank="0" lbank="1" prog="9" />
+ <Patch name="Rhythmic Hold" hbank="0" lbank="1" prog="10" />
+ <Patch name="Physical FM" hbank="0" lbank="1" prog="11" />
+ <Patch name="Harp 2000" hbank="0" lbank="1" prog="12" />
+ <Patch name="WarinthARPa" hbank="0" lbank="1" prog="13" />
+ <Patch name="TechTrigger" hbank="0" lbank="1" prog="14" />
+ <Patch name="Groove On" hbank="0" lbank="1" prog="15" />
+ <Patch name="PWM ResoBass" hbank="0" lbank="1" prog="16" />
+ <Patch name="MM Fat Boy" hbank="0" lbank="1" prog="17" />
+ <Patch name="Data Bass" hbank="0" lbank="1" prog="18" />
+ <Patch name="Fat Dad" hbank="0" lbank="1" prog="19" />
+ <Patch name="Dirty Bass" hbank="0" lbank="1" prog="20" />
+ <Patch name="Pulse Bass 6" hbank="0" lbank="1" prog="21" />
+ <Patch name="BassPhase" hbank="0" lbank="1" prog="22" />
+ <Patch name="FilterFM Bass" hbank="0" lbank="1" prog="23" />
+ <Patch name="Jamiro-Q-ai" hbank="0" lbank="1" prog="24" />
+ <Patch name="Dust Brothers" hbank="0" lbank="1" prog="25" />
+ <Patch name="BassTARD" hbank="0" lbank="1" prog="26" />
+ <Patch name="Fat Square" hbank="0" lbank="1" prog="27" />
+ <Patch name="Ultra Sub" hbank="0" lbank="1" prog="28" />
+ <Patch name="NoAttackBass" hbank="0" lbank="1" prog="29" />
+ <Patch name="First:TheBass" hbank="0" lbank="1" prog="30" />
+ <Patch name="Bass-Piano" hbank="0" lbank="1" prog="31" />
+ <Patch name="E-Qiano" hbank="0" lbank="1" prog="32" />
+ <Patch name="ElectricGrand" hbank="0" lbank="1" prog="33" />
+ <Patch name="FM-Rhodes 1" hbank="0" lbank="1" prog="34" />
+ <Patch name="Rhodos Corso" hbank="0" lbank="1" prog="35" />
+ <Patch name="Unpredictable" hbank="0" lbank="1" prog="36" />
+ <Patch name="DeeB" hbank="0" lbank="1" prog="37" />
+ <Patch name="Soft Leader" hbank="0" lbank="1" prog="38" />
+ <Patch name="Modern Clavi" hbank="0" lbank="1" prog="39" />
+ <Patch name="Ring Sequel" hbank="0" lbank="1" prog="40" />
+ <Patch name="Pick It!" hbank="0" lbank="1" prog="41" />
+ <Patch name="Straight" hbank="0" lbank="1" prog="42" />
+ <Patch name="TelegraphSyn" hbank="0" lbank="1" prog="43" />
+ <Patch name="Dukelead" hbank="0" lbank="1" prog="44" />
+ <Patch name="Iceland" hbank="0" lbank="1" prog="45" />
+ <Patch name="Tron Flutes" hbank="0" lbank="1" prog="46" />
+ <Patch name="Zelluloid" hbank="0" lbank="1" prog="47" />
+ <Patch name="Bells" hbank="0" lbank="1" prog="48" />
+ <Patch name="Hansaplast" hbank="0" lbank="1" prog="49" />
+ <Patch name="Broadway" hbank="0" lbank="1" prog="50" />
+ <Patch name="Wartofsky" hbank="0" lbank="1" prog="51" />
+ <Patch name="Cassandra" hbank="0" lbank="1" prog="52" />
+ <Patch name="No. 5 lives" hbank="0" lbank="1" prog="53" />
+ <Patch name="Flinker" hbank="0" lbank="1" prog="54" />
+ <Patch name="FMBP Sweep" hbank="0" lbank="1" prog="55" />
+ <Patch name="Glidebells" hbank="0" lbank="1" prog="56" />
+ <Patch name="G.Quman" hbank="0" lbank="1" prog="57" />
+ <Patch name="HiFi Beast" hbank="0" lbank="1" prog="58" />
+ <Patch name="ProducersPad" hbank="0" lbank="1" prog="59" />
+ <Patch name="Late at night" hbank="0" lbank="1" prog="60" />
+ <Patch name="Make It Sweep" hbank="0" lbank="1" prog="61" />
+ <Patch name="Nimm Oel !!!" hbank="0" lbank="1" prog="62" />
+ <Patch name="Phazer PWM" hbank="0" lbank="1" prog="63" />
+ <Patch name="Shadow2" hbank="0" lbank="1" prog="64" />
+ <Patch name="TheWidestEver" hbank="0" lbank="1" prog="65" />
+ <Patch name="No Drive3" hbank="0" lbank="1" prog="66" />
+ <Patch name="8bit Arp" hbank="0" lbank="1" prog="67" />
+ <Patch name="SpaceFloats" hbank="0" lbank="1" prog="68" />
+ <Patch name="padScrape" hbank="0" lbank="1" prog="69" />
+ <Patch name="PickItUp" hbank="0" lbank="1" prog="70" />
+ <Patch name="JCage 3" hbank="0" lbank="1" prog="71" />
+ <Patch name="Steelophon" hbank="0" lbank="1" prog="72" />
+ <Patch name="Moog55 Porta" hbank="0" lbank="1" prog="73" />
+ <Patch name="Plock Lead" hbank="0" lbank="1" prog="74" />
+ <Patch name="Melodei" hbank="0" lbank="1" prog="75" />
+ <Patch name="Ghettomaster" hbank="0" lbank="1" prog="76" />
+ <Patch name="Golden Arp 4" hbank="0" lbank="1" prog="77" />
+ <Patch name="Qoir Spect 1+" hbank="0" lbank="1" prog="78" />
+ <Patch name="Arctic Dunes" hbank="0" lbank="1" prog="79" />
+ <Patch name="E-Piano Phase" hbank="0" lbank="1" prog="80" />
+ <Patch name="New Ethnic" hbank="0" lbank="1" prog="81" />
+ <Patch name="ForgetTheTB" hbank="0" lbank="1" prog="82" />
+ <Patch name="China Hit" hbank="0" lbank="1" prog="83" />
+ <Patch name="Distinguish" hbank="0" lbank="1" prog="84" />
+ <Patch name="s+h pad" hbank="0" lbank="1" prog="85" />
+ <Patch name="Jump V.Halen" hbank="0" lbank="1" prog="86" />
+ <Patch name="Bass Six" hbank="0" lbank="1" prog="87" />
+ <Patch name="Rectangle" hbank="0" lbank="1" prog="88" />
+ <Patch name="BasMannen(tm)" hbank="0" lbank="1" prog="89" />
+ <Patch name="Eerrie" hbank="0" lbank="1" prog="90" />
+ <Patch name="Event Horizon" hbank="0" lbank="1" prog="91" />
+ <Patch name="Cousteau 2001" hbank="0" lbank="1" prog="92" />
+ <Patch name="Space MusiQ 1" hbank="0" lbank="1" prog="93" />
+ <Patch name="Sound Track" hbank="0" lbank="1" prog="94" />
+ <Patch name="Buddha Pad" hbank="0" lbank="1" prog="95" />
+ <Patch name="Pro5 Brass" hbank="0" lbank="1" prog="96" />
+ <Patch name="VintageBass" hbank="0" lbank="1" prog="97" />
+ <Patch name="Perc Xtrnal" hbank="0" lbank="1" prog="98" />
+ <Patch name="Ext. Mangeler" hbank="0" lbank="1" prog="99" />
+ </PatchGroup>
+ <PatchGroup name="Internal Bank C">
+ <Patch name="The Beginning" hbank="0" lbank="2" prog="0" />
+ <Patch name="Acostic Glue" hbank="0" lbank="2" prog="1" />
+ <Patch name="VeryCompleqs" hbank="0" lbank="2" prog="2" />
+ <Patch name="Brightseite" hbank="0" lbank="2" prog="3" />
+ <Patch name="TheDarkPlanet" hbank="0" lbank="2" prog="4" />
+ <Patch name="Q Tables" hbank="0" lbank="2" prog="5" />
+ <Patch name="Trance-Port" hbank="0" lbank="2" prog="6" />
+ <Patch name="Slow Wavetrip" hbank="0" lbank="2" prog="7" />
+ <Patch name="PDQ ;-) WT13" hbank="0" lbank="2" prog="8" />
+ <Patch name="Tranquilizer" hbank="0" lbank="2" prog="9" />
+ <Patch name="S+H+Pad+Nice" hbank="0" lbank="2" prog="10" />
+ <Patch name="Arctica" hbank="0" lbank="2" prog="11" />
+ <Patch name="The BORG" hbank="0" lbank="2" prog="12" />
+ <Patch name="Deep Space" hbank="0" lbank="2" prog="13" />
+ <Patch name="Kairos" hbank="0" lbank="2" prog="14" />
+ <Patch name="The Fog" hbank="0" lbank="2" prog="15" />
+ <Patch name="HellsbugsIntro" hbank="0" lbank="2" prog="16" />
+ <Patch name="feel WAVE" hbank="0" lbank="2" prog="17" />
+ <Patch name="VocodaBass" hbank="0" lbank="2" prog="18" />
+ <Patch name="Maschinenraum" hbank="0" lbank="2" prog="19" />
+ <Patch name="Animals" hbank="0" lbank="2" prog="20" />
+ <Patch name="Tire-Guy" hbank="0" lbank="2" prog="21" />
+ <Patch name="Spiders2001" hbank="0" lbank="2" prog="22" />
+ <Patch name="Waterfone2001" hbank="0" lbank="2" prog="23" />
+ <Patch name="BD-Q0Q" hbank="0" lbank="2" prog="24" />
+ <Patch name="Electric Drum" hbank="0" lbank="2" prog="25" />
+ <Patch name="Bee Drum" hbank="0" lbank="2" prog="26" />
+ <Patch name="909 Kick 1" hbank="0" lbank="2" prog="27" />
+ <Patch name="909 Kick 2" hbank="0" lbank="2" prog="28" />
+ <Patch name="Q 808" hbank="0" lbank="2" prog="29" />
+ <Patch name="ClipDrum" hbank="0" lbank="2" prog="30" />
+ <Patch name="House Kick" hbank="0" lbank="2" prog="31" />
+ <Patch name="Techno Kick" hbank="0" lbank="2" prog="32" />
+ <Patch name="Linniskus" hbank="0" lbank="2" prog="33" />
+ <Patch name="El Snare 1" hbank="0" lbank="2" prog="34" />
+ <Patch name="E-Snare 2" hbank="0" lbank="2" prog="35" />
+ <Patch name="Fast Snare" hbank="0" lbank="2" prog="36" />
+ <Patch name="808 Snare 1" hbank="0" lbank="2" prog="37" />
+ <Patch name="808 Snare 2" hbank="0" lbank="2" prog="38" />
+ <Patch name="Thin Snare" hbank="0" lbank="2" prog="39" />
+ <Patch name="Snare 1" hbank="0" lbank="2" prog="40" />
+ <Patch name="Snare 2" hbank="0" lbank="2" prog="41" />
+ <Patch name="--@@@" hbank="0" lbank="2" prog="42" />
+ <Patch name="SimmonsSnare" hbank="0" lbank="2" prog="43" />
+ <Patch name="Reso Snare" hbank="0" lbank="2" prog="44" />
+ <Patch name="Noisy Snare" hbank="0" lbank="2" prog="45" />
+ <Patch name="ClapsMuehle" hbank="0" lbank="2" prog="46" />
+ <Patch name="Claps Rev" hbank="0" lbank="2" prog="47" />
+ <Patch name="Claps 1" hbank="0" lbank="2" prog="48" />
+ <Patch name="Claps 2" hbank="0" lbank="2" prog="49" />
+ <Patch name="Claps 3" hbank="0" lbank="2" prog="50" />
+ <Patch name="High Head" hbank="0" lbank="2" prog="51" />
+ <Patch name="High Head" hbank="0" lbank="2" prog="52" />
+ <Patch name="Band Hihat" hbank="0" lbank="2" prog="53" />
+ <Patch name="www.hihat.com" hbank="0" lbank="2" prog="54" />
+ <Patch name="Heavy HiHat" hbank="0" lbank="2" prog="55" />
+ <Patch name="El HiHat op" hbank="0" lbank="2" prog="56" />
+ <Patch name="Open HiHat" hbank="0" lbank="2" prog="57" />
+ <Patch name="HH Open" hbank="0" lbank="2" prog="58" />
+ <Patch name="TR66 Sidestk" hbank="0" lbank="2" prog="59" />
+ <Patch name="HH Closed 2" hbank="0" lbank="2" prog="60" />
+ <Patch name="TR66 Hihat" hbank="0" lbank="2" prog="61" />
+ <Patch name="El HiHat clsd" hbank="0" lbank="2" prog="62" />
+ <Patch name="Percy Noises" hbank="0" lbank="2" prog="63" />
+ <Patch name="Fat Zaps" hbank="0" lbank="2" prog="64" />
+ <Patch name="Laser Shot" hbank="0" lbank="2" prog="65" />
+ <Patch name="FM Noises" hbank="0" lbank="2" prog="66" />
+ <Patch name="Zap Snap" hbank="0" lbank="2" prog="67" />
+ <Patch name="Strom" hbank="0" lbank="2" prog="68" />
+ <Patch name="TR66 Sidestk" hbank="0" lbank="2" prog="69" />
+ <Patch name="African Perc." hbank="0" lbank="2" prog="70" />
+ <Patch name="Conga" hbank="0" lbank="2" prog="71" />
+ <Patch name="Claps 1" hbank="0" lbank="2" prog="72" />
+ <Patch name="Quiro" hbank="0" lbank="2" prog="73" />
+ <Patch name="Noise Reverse" hbank="0" lbank="2" prog="74" />
+ <Patch name="Chinese Gong" hbank="0" lbank="2" prog="75" />
+ <Patch name="Shattering FX" hbank="0" lbank="2" prog="76" />
+ <Patch name="LFO Speeddwn" hbank="0" lbank="2" prog="77" />
+ <Patch name="LFO Speedup" hbank="0" lbank="2" prog="78" />
+ <Patch name="Open Sesam" hbank="0" lbank="2" prog="79" />
+ <Patch name="Tuxedosun" hbank="0" lbank="2" prog="80" />
+ <Patch name="THX Spot" hbank="0" lbank="2" prog="81" />
+ <Patch name="Househarp" hbank="0" lbank="2" prog="82" />
+ <Patch name="Help" hbank="0" lbank="2" prog="83" />
+ <Patch name="Cpt. Future 2" hbank="0" lbank="2" prog="84" />
+ <Patch name="Alien Syn" hbank="0" lbank="2" prog="85" />
+ <Patch name="S.O.S" hbank="0" lbank="2" prog="86" />
+ <Patch name="Spiders2000" hbank="0" lbank="2" prog="87" />
+ <Patch name="FromOutaSpace" hbank="0" lbank="2" prog="88" />
+ <Patch name="Voc. Strings" hbank="0" lbank="2" prog="89" />
+ <Patch name="VocoderComb" hbank="0" lbank="2" prog="90" />
+ <Patch name="Mindblast VC" hbank="0" lbank="2" prog="91" />
+ <Patch name="Voc. Strings 2" hbank="0" lbank="2" prog="92" />
+ <Patch name="Vocoder Crazy" hbank="0" lbank="2" prog="93" />
+ <Patch name="Vocoder Mod" hbank="0" lbank="2" prog="94" />
+ <Patch name="Voc. Robot" hbnk="0" lbank="2" prog="95" />
+ <Patch name="Extern FX 1" hbank="0" lbank="2" prog="96" />
+ <Patch name="Extern FX 2" hbank="0" lbank="2" prog="97" />
+ <Patch name="External Through" hbank="0" lbank="2" prog="98" />
+ <Patch name="Init Sound" hbank="0" lbank="2" prog="99" />
+ </PatchGroup>
+ <PatchGroup name="Drums Bank D">
+ <Patch name="AnalogDrumMap" hbank="0" lbank="4" prog="0" />
+ <Patch name="DistoDrums" hbank="0" lbank="4" prog="1" />
+ <Patch name="Snares+Claps" hbank="0" lbank="4" prog="2" />
+ <Patch name="HiHats+Percs" hbank="0" lbank="4" prog="3" />
+ <Patch name="Electro Set" hbank="0" lbank="4" prog="4" />
+ <Patch name="StenzMap" hbank="0" lbank="4" prog="5" />
+ <Patch name="Atmo Map" hbank="0" lbank="4" prog="6" />
+ <Patch name="Init Drummap 2.0" hbank="0" lbank="4" prog="7" />
+ <Patch name="Init Drummap 2.0" hbank="0" lbank="4" prog="8" />
+ <Patch name="Init Drummap 2.0" hbank="0" lbank="4" prog="9" />
+ <Patch name="Init Drummap 2.0" hbank="0" lbank="4" prog="10" />
+ <Patch name="Init Drummap 2.0" hbank="0" lbank="4" prog="11" />
+ <Patch name="Init Drummap 2.0" hbank="0" lbank="4" prog="12" />
+ <Patch name="Init Drummap 2.0" hbank="0" lbank="4" prog="13" />
+ <Patch name="Init Drummap 2.0" hbank="0" lbank="4" prog="14" />
+ <Patch name="Init Drummap 2.0" hbank="0" lbank="4" prog="15" />
+ <Patch name="Init Drummap 2.0" hbank="0" lbank="4" prog="16" />
+ <Patch name="Init Drummap 2.0" hbank="0" lbank="4" prog="17" />
+ <Patch name="Init Drummap 2.0" hbank="0" lbank="4" prog="18" />
+ <Patch name="Init Drummap 2.0" hbank="0" lbank="4" prog="19" />
+ </PatchGroup>
+ <PatchGroup name="Internal Bank Multi">
+ <Patch name="Venice Beach" hbank="0" lbank="104" prog="0" />
+ <Patch name="Arp Chaos" hbank="0" lbank="104" prog="1" />
+ <Patch name="Sinzig/Rhein" hbank="0" lbank="104" prog="2" />
+ <Patch name="Choral" hbank="0" lbank="104" prog="3" />
+ <Patch name="Zimmer Score" hbank="0" lbank="104" prog="4" />
+ <Patch name="Movement" hbank="0" lbank="104" prog="5" />
+ <Patch name="Kakophonie" hbank="0" lbank="104" prog="6" />
+ <Patch name="20111973" hbank="0" lbank="104" prog="7" />
+ <Patch name="Now Play Me!" hbank="0" lbank="104" prog="8" />
+ <Patch name="Stakkatak" hbank="0" lbank="104" prog="9" />
+ <Patch name="Tshingding" hbank="0" lbank="104" prog="10" />
+ <Patch name="My Dream" hbank="0" lbank="104" prog="11" />
+ <Patch name="Slow Mow" hbank="0" lbank="104" prog="12" />
+ <Patch name="Superpad" hbank="0" lbank="104" prog="13" />
+ <Patch name="At The Movies" hbank="0" lbank="104" prog="14" />
+ <Patch name="Sequencer Multi" hbank="0" lbank="104" prog="15" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="16" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="17" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="18" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="19" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="20" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="21" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="22" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="23" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="24" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="25" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="26" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="27" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="28" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="29" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="30" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="31" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="32" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="33" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="34" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="35" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="36" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="37" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="38" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="39" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="40" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="41" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="42" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="43" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="44" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="45" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="46" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="47" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="48" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="49" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="50" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="51" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="52" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="53" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="54" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="55" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="56" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="57" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="58" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="59" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="60" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="61" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="62" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="63" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="64" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="65" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="66" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="67" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="68" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="69" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="70" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="71" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="72" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="73" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="74" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="75" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="76" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="77" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="78" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="79" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="80" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="81" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="82" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="83" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="84" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="85" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="86" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="87" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="88" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="89" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="90" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="91" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="92" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="93" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="94" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="95" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="96" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="97" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="98" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="99" />
+ </PatchGroup>
+ <Controller name="Modulation" l="1" />
+ <Controller name="Breath Control" l="2" />
+ <Controller name="Foot Control" l="4" />
+ <Controller name="PortamentoTime" l="5" />
+ <Controller name="MainVolume" l="7" init="100" />
+ <Controller name="Pan" l="10" min="-64" max="63" init="0" />
+ <Controller name="Arp Range" l="12" />
+ <Controller name="Arp Length" l="13" />
+ <Controller name="Arp Active" l="14" />
+ <Controller name="Lfo 1 Shape" l="15" />
+ <Controller name="Lfo 1 Speed" l="16" />
+ <Controller name="Lfo 1 Sync" l="17" />
+ <Controller name="Lfo 1 Delay" l="18" />
+ <Controller name="Lfo 2 Shape" l="19" />
+ <Controller name="Lfo 2 Speed" l="20" />
+ <Controller name="Lfo 2 Sync" l="21" />
+ <Controller name="Lfo 2 Delay" l="22" />
+ <Controller name="Lfo 3 Shape" l="23" />
+ <Controller name="Lfo 3 Speed" l="24" />
+ <Controller name="Lfo 3 Sync" l="25" />
+ <Controller name="Lfo 3 Delay" l="26" />
+ <Controller name="Osc 1 Octave" l="27" />
+ <Controller name="Osc 1 Semitone" l="28" />
+ <Controller name="Osc 1 Detune" l="29" />
+ <Controller name="Osc 1 FM" l="30" />
+ <Controller name="Osc 1 Shape" l="31" />
+ <Controller name="Bank Select LSB" l="32" />
+ <Controller name="Osc 1 PW" l="33" />
+ <Controller name="Osc 1 PWM" l="34" />
+ <Controller name="Osc 2 Octave" l="35" />
+ <Controller name="Osc 2 Semitone" l="36" />
+ <Controller name="Osc 2 Detune" l="37" />
+ <Controller name="Osc 2 FM" l="38" />
+ <Controller name="Osc 2 Shape" l="39" />
+ <Controller name="Osc 2 PW" l="40" />
+ <Controller name="Osc 2 PWM" l="41" />
+ <Controller name="Osc 3 Octave" l="42" />
+ <Controller name="Osc 3 Semitone" l="43" />
+ <Controller name="Osc 3 Detune" l="44" />
+ <Controller name="Osc 3 FM" l="45" />
+ <Controller name="Osc 3 Shape" l="46" />
+ <Controller name="Osc 3 PW" l="47" />
+ <Controller name="Osc 3 PWM" l="48" />
+ <Controller name="Sync" l="49" />
+ <Controller name="Pitchmod" l="50" />
+ <Controller name="Glide Mode" l="51" />
+ <Controller name="Osc 1 Level" l="52" />
+ <Controller name="Osc 1 Balance" l="53" />
+ <Controller name="Ringmod Level" l="54" />
+ <Controller name="Ringmod Balance" l="55" />
+ <Controller name="Osc 2 Level" l="56" />
+ <Controller name="Osc 2 Balance" l="57" />
+ <Controller name="Osc 3 Level" l="58" />
+ <Controller name="Osc 3 Balance" l="59" />
+ <Controller name="N/E Level" l="60" />
+ <Controller name="N/E Balance" l="61" />
+ <Controller name="Sustain Pedal" l="64" />
+ <Controller name="Glide Active" l="65" />
+ <Controller name="Sostenuto" l="66" />
+ <Controller name="Routing" l="67" />
+ <Controller name="Filter 1 Type" l="68" />
+ <Controller name="Filter 1 Cutoff" l="69" />
+ <Controller name="Filter 1 Resonance" l="70" />
+ <Controller name="Filter 1 Drive" l="71" />
+ <Controller name="Filter 1 Keytrack" l="72" />
+ <Controller name="Filter 1 Env. Amount" l="73" />
+ <Controller name="Filter 1 Env. Velocity" l="74" />
+ <Controller name="Filter 1 CutoffMod" l="75" />
+ <Controller name="Filter 1 FM" l="76" />
+ <Controller name="Filter 1 Pan" l="77" />
+ <Controller name="Filter 1 PanMod" l="78" />
+ <Controller name="Filter 2 Type" l="79" />
+ <Controller name="Filter 2 Cutoff" l="80" />
+ <Controller name="Filter 2 Resonance" l="81" />
+ <Controller name="Filter 2 Drive" l="82" />
+ <Controller name="Filter 2 Keytrack" l="83" />
+ <Controller name="Filter 2 Env. Amount" l="84" />
+ <Controller name="Filter 2 Env. Velocity" l="85" />
+ <Controller name="Filter 2 CutoffMod" l="86" />
+ <Controller name="Filter 2 FM" l="87" />
+ <Controller name="Filter 2 Pan" l="88" />
+ <Controller name="Filter 2 PanMod" l="89" />
+ <Controller name="Amp Volume" l="90" />
+ <Controller name="Amp Velocity" l="91" />
+ <Controller name="Amp Mod" l="92" />
+ <Controller name="FX 1 Mix" l="93" />
+ <Controller name="FX 2 Mix" l="94" />
+ <Controller name="FE Attack" l="95" />
+ <Controller name="FE Decay" l="96" />
+ <Controller name="FE Sustain" l="97" />
+ <Controller name="FE Decay 2" l="98" />
+ <Controller name="FE Sustain 2" l="99" />
+ <Controller name="FE Release" l="100" />
+ <Controller name="AE Attack" l="101" />
+ <Controller name="AE Decay" l="102" />
+ <Controller name="AE Sustain" l="103" />
+ <Controller name="AE Decay 2" l="104" />
+ <Controller name="AE Sustain 2" l="105" />
+ <Controller name="AE Release" l="106" />
+ <Controller name="E3 Attack" l="107" />
+ <Controller name="E3 Decay" l="108" />
+ <Controller name="E3 Sustain" l="109" />
+ <Controller name="E3 Decay 2" l="110" />
+ <Controller name="E3 Sustain 2" l="111" />
+ <Controller name="E3 Release" l="112" />
+ <Controller name="E4 Attack" l="113" />
+ <Controller name="E4 Decay" l="114" />
+ <Controller name="E4 Sustain" l="115" />
+ <Controller name="E4 Decay 2" l="116" />
+ <Controller name="E4 Sustain 2" l="117" />
+ <Controller name="E4 Release" l="118" />
+ <Controller name="All Sounds Off" l="120" />
+ <Controller name="Reset All Controllers" l="121" />
+ <Controller name="Local Control" l="122" />
+ <Controller name="All Notes Off" l="123" />
+ <Controller name="Pitch" type="Pitch" />
+ <Controller name="Program" type="Program" />
+ </MidiInstrument>
+</muse>
diff --git a/muse2/share/instruments/Waldorf-microQ-Factory2001.idf b/muse2/share/instruments/Waldorf-microQ-Factory2001.idf
new file mode 100644
index 00000000..41469732
--- /dev/null
+++ b/muse2/share/instruments/Waldorf-microQ-Factory2001.idf
@@ -0,0 +1,552 @@
+<?xml version="1.0"?>
+<muse version="1.0">
+ <MidiInstrument name="Waldorf microQ Factory2001">
+ <PatchGroup name="Internal Bank A">
+ <Patch name="LosAngeles2019" hbank="0" lbank="0" prog="0" />
+ <Patch name="Rain" hbank="0" lbank="0" prog="1" />
+ <Patch name="Choir 2.0" hbank="0" lbank="0" prog="2" />
+ <Patch name="Zeitlos" hbank="0" lbank="0" prog="3" />
+ <Patch name="Expensive" hbank="0" lbank="0" prog="4" />
+ <Patch name="OBX Purple5" hbank="0" lbank="0" prog="5" />
+ <Patch name="Queen-mom" hbank="0" lbank="0" prog="6" />
+ <Patch name="Juanita" hbank="0" lbank="0" prog="7" />
+ <Patch name="Demolition" hbank="0" lbank="0" prog="8" />
+ <Patch name="The Showroom" hbank="0" lbank="0" prog="9" />
+ <Patch name="Wartofsky" hbank="0" lbank="0" prog="10" />
+ <Patch name="Cut-Verb" hbank="0" lbank="0" prog="11" />
+ <Patch name="Visions of Q" hbank="0" lbank="0" prog="12" />
+ <Patch name="MI5 Pad" hbank="0" lbank="0" prog="13" />
+ <Patch name="Tank Girl" hbank="0" lbank="0" prog="14" />
+ <Patch name="Attacke" hbank="0" lbank="0" prog="15" />
+ <Patch name="11KHz Solo" hbank="0" lbank="0" prog="16" />
+ <Patch name="Ass age:101" hbank="0" lbank="0" prog="17" />
+ <Patch name="Hypnose 2.0" hbank="0" lbank="0" prog="18" />
+ <Patch name="Cleanline 303" hbank="0" lbank="0" prog="19" />
+ <Patch name="www.arp.com" hbank="0" lbank="0" prog="20" />
+ <Patch name="Giedi Prime" hbank="0" lbank="0" prog="21" />
+ <Patch name="Vince Clark 3" hbank="0" lbank="0" prog="22" />
+ <Patch name="Night Flight" hbank="0" lbank="0" prog="23" />
+ <Patch name="Kamm-FX2" hbank="0" lbank="0" prog="24" />
+ <Patch name="Metal Jelly 3" hbank="0" lbank="0" prog="25" />
+ <Patch name="Acid Phunk" hbank="0" lbank="0" prog="26" />
+ <Patch name="Digiseq" hbank="0" lbank="0" prog="27" />
+ <Patch name="FM Pads" hbank="0" lbank="0" prog="28" />
+ <Patch name="Kakophonia 1" hbank="0" lbank="0" prog="29" />
+ <Patch name="BackStrings" hbank="0" lbank="0" prog="30" />
+ <Patch name="Flinker" hbank="0" lbank="0" prog="31" />
+ <Patch name="TheWidestEver" hbank="0" lbank="0" prog="32" />
+ <Patch name="DuneSdTrak" hbank="0" lbank="0" prog="33" />
+ <Patch name="PrincessStrgs" hbank="0" lbank="0" prog="34" />
+ <Patch name="Namlooking" hbank="0" lbank="0" prog="35" />
+ <Patch name="Fiftyfive" hbank="0" lbank="0" prog="36" />
+ <Patch name="Liquid Strg" hbank="0" lbank="0" prog="37" />
+ <Patch name="CS100" hbank="0" lbank="0" prog="38" />
+ <Patch name="Enough Power" hbank="0" lbank="0" prog="39" />
+ <Patch name="Alphaville ?!" hbank="0" lbank="0" prog="40" />
+ <Patch name="Breit..." hbank="0" lbank="0" prog="41" />
+ <Patch name="Chord-Hose" hbank="0" lbank="0" prog="42" />
+ <Patch name="Cool Porta" hbank="0" lbank="0" prog="43" />
+ <Patch name="Trennkost" hbank="0" lbank="0" prog="44" />
+ <Patch name="Deep Synth" hbank="0" lbank="0" prog="45" />
+ <Patch name="Sounds BP" hbank="0" lbank="0" prog="46" />
+ <Patch name="XTk Bass Xt2" hbank="0" lbank="0" prog="47" />
+ <Patch name="Vibro-Hook" hbank="0" lbank="0" prog="48" />
+ <Patch name="Stuermer 2" hbank="0" lbank="0" prog="49" />
+ <Patch name="Killer Bass" hbank="0" lbank="0" prog="50" />
+ <Patch name="707Bass" hbank="0" lbank="0" prog="51" />
+ <Patch name="Narrow" hbank="0" lbank="0" prog="52" />
+ <Patch name="Gum Bass" hbank="0" lbank="0" prog="53" />
+ <Patch name="NoreBass#2" hbank="0" lbank="0" prog="54" />
+ <Patch name="Phalanx Bass" hbank="0" lbank="0" prog="55" />
+ <Patch name="CCCP 70 E" hbank="0" lbank="0" prog="56" />
+ <Patch name="Comb Clavi" hbank="0" lbank="0" prog="57" />
+ <Patch name="FM-Rhodes 1" hbank="0" lbank="0" prog="58" />
+ <Patch name="Shed" hbank="0" lbank="0" prog="59" />
+ <Patch name="Wartz Piano1" hbank="0" lbank="0" prog="60" />
+ <Patch name="Dirty Organ1" hbank="0" lbank="0" prog="61" />
+ <Patch name="Tankin\" hbank="0" lbank="0" prog="62" />
+ <Patch name="Old * Uck" hbank="0" lbank="0" prog="63" />
+ <Patch name="Testosteron" hbank="0" lbank="0" prog="64" />
+ <Patch name="Juno Soul" hbank="0" lbank="0" prog="65" />
+ <Patch name="Head Hunter" hbank="0" lbank="0" prog="66" />
+ <Patch name="Polaris" hbank="0" lbank="0" prog="67" />
+ <Patch name="PrincessBells" hbank="0" lbank="0" prog="68" />
+ <Patch name="Bells" hbank="0" lbank="0" prog="69" />
+ <Patch name="TributeTo DX" hbank="0" lbank="0" prog="70" />
+ <Patch name="DollarBells" hbank="0" lbank="0" prog="71" />
+ <Patch name="Clock+Bells" hbank="0" lbank="0" prog="72" />
+ <Patch name="RainAfterSun" hbank="0" lbank="0" prog="73" />
+ <Patch name="Phazer PWM" hbank="0" lbank="0" prog="74" />
+ <Patch name="Choir Pad" hbank="0" lbank="0" prog="75" />
+ <Patch name="Ultimaterial" hbank="0" lbank="0" prog="76" />
+ <Patch name="Broadway" hbank="0" lbank="0" prog="77" />
+ <Patch name="Dizzyland" hbank="0" lbank="0" prog="78" />
+ <Patch name="WaveDrone" hbank="0" lbank="0" prog="79" />
+ <Patch name="Major Matrix" hbank="0" lbank="0" prog="80" />
+ <Patch name="Pop Melodee" hbank="0" lbank="0" prog="81" />
+ <Patch name="Jp8 TRACER" hbank="0" lbank="0" prog="82" />
+ <Patch name="HornsOfJericho" hbank="0" lbank="0" prog="83" />
+ <Patch name="Meteor" hbank="0" lbank="0" prog="84" />
+ <Patch name="CombTutorial" hbank="0" lbank="0" prog="85" />
+ <Patch name="TschingHisCan" hbank="0" lbank="0" prog="86" />
+ <Patch name="Phazed Chordz" hbank="0" lbank="0" prog="87" />
+ <Patch name="Panreduction" hbank="0" lbank="0" prog="88" />
+ <Patch name="Pluto" hbank="0" lbank="0" prog="89" />
+ <Patch name="One Note BP" hbank="0" lbank="0" prog="90" />
+ <Patch name="Ritual" hbank="0" lbank="0" prog="91" />
+ <Patch name="He\s here!!!" hbank="0" lbank="0" prog="92" />
+ <Patch name="Rubber" hbank="0" lbank="0" prog="93" />
+ <Patch name="Buzzer 3" hbank="0" lbank="0" prog="94" />
+ <Patch name="Sierra Velone" hbank="0" lbank="0" prog="95" />
+ <Patch name="TheQBots" hbank="0" lbank="0" prog="96" />
+ <Patch name="Bassline 3O3" hbank="0" lbank="0" prog="97" />
+ <Patch name="Basssser" hbank="0" lbank="0" prog="98" />
+ <Patch name="Moogish 2" hbank="0" lbank="0" prog="99" />
+ </PatchGroup>
+ <PatchGroup name="Internal Bank B">
+ <Patch name="Jazz Percssn" hbank="0" lbank="1" prog="0" />
+ <Patch name="Wurlitzer104b" hbank="0" lbank="1" prog="1" />
+ <Patch name="Organ #2" hbank="0" lbank="1" prog="2" />
+ <Patch name="Funky Q" hbank="0" lbank="1" prog="3" />
+ <Patch name="Wurlitzer" hbank="0" lbank="1" prog="4" />
+ <Patch name="Ring Sequel" hbank="0" lbank="1" prog="5" />
+ <Patch name="Bellophon" hbank="0" lbank="1" prog="6" />
+ <Patch name="Qvation" hbank="0" lbank="1" prog="7" />
+ <Patch name="Plucked Nylon" hbank="0" lbank="1" prog="8" />
+ <Patch name="Pizzicated" hbank="0" lbank="1" prog="9" />
+ <Patch name="Sonnenaufgang" hbank="0" lbank="1" prog="10" />
+ <Patch name="FilterDenKamm" hbank="0" lbank="1" prog="11" />
+ <Patch name="Qool Water" hbank="0" lbank="1" prog="12" />
+ <Patch name="Dark Strings" hbank="0" lbank="1" prog="13" />
+ <Patch name="Q-Sweep2" hbank="0" lbank="1" prog="14" />
+ <Patch name="Score Edition" hbank="0" lbank="1" prog="15" />
+ <Patch name="Soap" hbank="0" lbank="1" prog="16" />
+ <Patch name="Soft Pad" hbank="0" lbank="1" prog="17" />
+ <Patch name="Wide Saw Pad" hbank="0" lbank="1" prog="18" />
+ <Patch name="FaMtastic" hbank="0" lbank="1" prog="19" />
+ <Patch name="Kiddings" hbank="0" lbank="1" prog="20" />
+ <Patch name="Poor Prophets" hbank="0" lbank="1" prog="21" />
+ <Patch name="LggSit" hbank="0" lbank="1" prog="22" />
+ <Patch name="Like Wool" hbank="0" lbank="1" prog="23" />
+ <Patch name="FlimmerStrings" hbank="0" lbank="1" prog="24" />
+ <Patch name="Padagogy" hbank="0" lbank="1" prog="25" />
+ <Patch name="PhaserStrings" hbank="0" lbank="1" prog="26" />
+ <Patch name="FMBP Sweep" hbank="0" lbank="1" prog="27" />
+ <Patch name="Q-rious?" hbank="0" lbank="1" prog="28" />
+ <Patch name="ProducersPad" hbank="0" lbank="1" prog="29" />
+ <Patch name="FransenHarfe" hbank="0" lbank="1" prog="30" />
+ <Patch name="Western Wind" hbank="0" lbank="1" prog="31" />
+ <Patch name="Giga Prune" hbank="0" lbank="1" prog="32" />
+ <Patch name="Acostic Glue" hbank="0" lbank="1" prog="33" />
+ <Patch name="Chor 16\" hbank="0" lbank="1" prog="34" />
+ <Patch name="JMX vs. DeLeon" hbank="0" lbank="1" prog="35" />
+ <Patch name="HighpassFixer" hbank="0" lbank="1" prog="36" />
+ <Patch name="Kl0ppelspitze" hbank="0" lbank="1" prog="37" />
+ <Patch name="Mono Sync" hbank="0" lbank="1" prog="38" />
+ <Patch name="MurkSolo" hbank="0" lbank="1" prog="39" />
+ <Patch name="Cry Baby" hbank="0" lbank="1" prog="40" />
+ <Patch name="VintageSpring" hbank="0" lbank="1" prog="41" />
+ <Patch name="Liquid Mel" hbank="0" lbank="1" prog="42" />
+ <Patch name="Zombie Nation" hbank="0" lbank="1" prog="43" />
+ <Patch name="PWMaster" hbank="0" lbank="1" prog="44" />
+ <Patch name="Qliniqs !!!" hbank="0" lbank="1" prog="45" />
+ <Patch name="Quintage" hbank="0" lbank="1" prog="46" />
+ <Patch name="Up And Down" hbank="0" lbank="1" prog="47" />
+ <Patch name="Siegessaeule" hbank="0" lbank="1" prog="48" />
+ <Patch name="Saw Lead" hbank="0" lbank="1" prog="49" />
+ <Patch name="Schubduese" hbank="0" lbank="1" prog="50" />
+ <Patch name="Sparkle Solo" hbank="0" lbank="1" prog="51" />
+ <Patch name="TQ 303" hbank="0" lbank="1" prog="52" />
+ <Patch name="Phat Beat" hbank="0" lbank="1" prog="53" />
+ <Patch name="Moany" hbank="0" lbank="1" prog="54" />
+ <Patch name="Naap! 3" hbank="0" lbank="1" prog="55" />
+ <Patch name="Matrone" hbank="0" lbank="1" prog="56" />
+ <Patch name="Tiny Solo" hbank="0" lbank="1" prog="57" />
+ <Patch name="TuBerkel" hbank="0" lbank="1" prog="58" />
+ <Patch name="Wells\Tripod" hbank="0" lbank="1" prog="59" />
+ <Patch name="Crunchy Nuts" hbank="0" lbank="1" prog="60" />
+ <Patch name="Aggreppo" hbank="0" lbank="1" prog="61" />
+ <Patch name="Tsching Lead" hbank="0" lbank="1" prog="62" />
+ <Patch name="Compromise K" hbank="0" lbank="1" prog="63" />
+ <Patch name="Pressure Drive" hbank="0" lbank="1" prog="64" />
+ <Patch name="Freaky Syncro" hbank="0" lbank="1" prog="65" />
+ <Patch name="Menace-Bass" hbank="0" lbank="1" prog="66" />
+ <Patch name="8bit ARP" hbank="0" lbank="1" prog="67" />
+ <Patch name="SpaceFloats" hbank="0" lbank="1" prog="68" />
+ <Patch name="padScrape" hbank="0" lbank="1" prog="69" />
+ <Patch name="PickItUp" hbank="0" lbank="1" prog="70" />
+ <Patch name="JCage 3" hbank="0" lbank="1" prog="71" />
+ <Patch name="Steelophon" hbank="0" lbank="1" prog="72" />
+ <Patch name="Moog55 Porta" hbank="0" lbank="1" prog="73" />
+ <Patch name="Plock Lead" hbank="0" lbank="1" prog="74" />
+ <Patch name="Melodei" hbank="0" lbank="1" prog="75" />
+ <Patch name="Ghettomaster" hbank="0" lbank="1" prog="76" />
+ <Patch name="Golden Arp 4" hbank="0" lbank="1" prog="77" />
+ <Patch name="Qoir Spect 1+" hbank="0" lbank="1" prog="78" />
+ <Patch name="Arctic Dunes" hbank="0" lbank="1" prog="79" />
+ <Patch name="E-Piano Phase" hbank="0" lbank="1" prog="80" />
+ <Patch name="New Ethnic" hbank="0" lbank="1" prog="81" />
+ <Patch name="ForgetTheTB 2" hbank="0" lbank="1" prog="82" />
+ <Patch name="China Hit" hbank="0" lbank="1" prog="83" />
+ <Patch name="Distinguish" hbank="0" lbank="1" prog="84" />
+ <Patch name="s+h pad" hbank="0" lbank="1" prog="85" />
+ <Patch name="Jump V.Halen" hbank="0" lbank="1" prog="86" />
+ <Patch name="Bass Six" hbank="0" lbank="1" prog="87" />
+ <Patch name="Rectangle" hbank="0" lbank="1" prog="88" />
+ <Patch name="BasMannen(tm)" hbank="0" lbank="1" prog="89" />
+ <Patch name="Eerrie" hbank="0" lbank="1" prog="90" />
+ <Patch name="Event Horizon" hbank="0" lbank="1" prog="91" />
+ <Patch name="Cousteau 2001" hbank="0" lbank="1" prog="92" />
+ <Patch name="Space MusiQ 1" hbank="0" lbank="1" prog="93" />
+ <Patch name="Sound Track" hbank="0" lbank="1" prog="94" />
+ <Patch name="Buddha Pad" hbank="0" lbank="1" prog="95" />
+ <Patch name="Pro5 Brass" hbank="0" lbank="1" prog="96" />
+ <Patch name="VintageBass" hbank="0" lbank="1" prog="97" />
+ <Patch name="Perc Xtrnal" hbank="0" lbank="1" prog="98" />
+ <Patch name="Ext. Mangeler" hbank="0" lbank="1" prog="99" />
+ </PatchGroup>
+ <PatchGroup name="Internal Bank C">
+ <Patch name="The Beginning" hbank="0" lbank="2" prog="0" />
+ <Patch name="Acostic Glue" hbank="0" lbank="2" prog="1" />
+ <Patch name="VeryCompleqs" hbank="0" lbank="2" prog="2" />
+ <Patch name="Brightseite" hbank="0" lbank="2" prog="3" />
+ <Patch name="TheDarkPlanet" hbank="0" lbank="2" prog="4" />
+ <Patch name="Q Tables" hbank="0" lbank="2" prog="5" />
+ <Patch name="Trance-Port" hbank="0" lbank="2" prog="6" />
+ <Patch name="Slow Wavetrip" hbank="0" lbank="2" prog="7" />
+ <Patch name="PDQ ;-) WT13" hbank="0" lbank="2" prog="8" />
+ <Patch name="Tranquilizer" hbank="0" lbank="2" prog="9" />
+ <Patch name="S+H+Pad+Nice" hbank="0" lbank="2" prog="10" />
+ <Patch name="Arctica" hbank="0" lbank="2" prog="11" />
+ <Patch name="The BORG" hbank="0" lbank="2" prog="12" />
+ <Patch name="Deep Space" hbank="0" lbank="2" prog="13" />
+ <Patch name="Kairos" hbank="0" lbank="2" prog="14" />
+ <Patch name="The Fog" hbank="0" lbank="2" prog="15" />
+ <Patch name="HellsbugsIntro" hbank="0" lbank="2" prog="16" />
+ <Patch name="feel WAVE" hbank="0" lbank="2" prog="17" />
+ <Patch name="VocodaBass" hbank="0" lbank="2" prog="18" />
+ <Patch name="Maschinenraum" hbank="0" lbank="2" prog="19" />
+ <Patch name="Animals" hbank="0" lbank="2" prog="20" />
+ <Patch name="Tire-Guy" hbank="0" lbank="2" prog="21" />
+ <Patch name="Spiders2001" hbank="0" lbank="2" prog="22" />
+ <Patch name="Waterfone2001" hbank="0" lbank="2" prog="23" />
+ <Patch name="BD-Q0Q" hbank="0" lbank="2" prog="24" />
+ <Patch name="Electric Drum" hbank="0" lbank="2" prog="25" />
+ <Patch name="Bee Drum" hbank="0" lbank="2" prog="26" />
+ <Patch name="909 Kick 1" hbank="0" lbank="2" prog="27" />
+ <Patch name="909 Kick 2" hbank="0" lbank="2" prog="28" />
+ <Patch name="Q 808" hbank="0" lbank="2" prog="29" />
+ <Patch name="ClipDrum" hbank="0" lbank="2" prog="30" />
+ <Patch name="House Kick" hbank="0" lbank="2" prog="31" />
+ <Patch name="Techno Kick" hbank="0" lbank="2" prog="32" />
+ <Patch name="Linniskus" hbank="0" lbank="2" prog="33" />
+ <Patch name="El Snare 1" hbank="0" lbank="2" prog="34" />
+ <Patch name="E-Snare 2" hbank="0" lbank="2" prog="35" />
+ <Patch name="Fast Snare" hbank="0" lbank="2" prog="36" />
+ <Patch name="808 Snare 1" hbank="0" lbank="2" prog="37" />
+ <Patch name="808 Snare 2" hbank="0" lbank="2" prog="38" />
+ <Patch name="Thin Snare" hbank="0" lbank="2" prog="39" />
+ <Patch name="Snare 1" hbank="0" lbank="2" prog="40" />
+ <Patch name="Snare 2" hbank="0" lbank="2" prog="41" />
+ <Patch name="Metalic Snare" hbank="0" lbank="2" prog="42" />
+ <Patch name="SimmonsSnare" hbank="0" lbank="2" prog="43" />
+ <Patch name="Reso Snare" hbank="0" lbank="2" prog="44" />
+ <Patch name="Noisy Snare" hbank="0" lbank="2" prog="45" />
+ <Patch name="ClapsMuehle" hbank="0" lbank="2" prog="46" />
+ <Patch name="Claps Rev" hbank="0" lbank="2" prog="47" />
+ <Patch name="Claps 1" hbank="0" lbank="2" prog="48" />
+ <Patch name="Claps 2" hbank="0" lbank="2" prog="49" />
+ <Patch name="Claps 3" hbank="0" lbank="2" prog="50" />
+ <Patch name="High Head" hbank="0" lbank="2" prog="51" />
+ <Patch name="High Head" hbank="0" lbank="2" prog="52" />
+ <Patch name="Band Hihat" hbank="0" lbank="2" prog="53" />
+ <Patch name="www.hihat.com" hbank="0" lbank="2" prog="54" />
+ <Patch name="Heavy HiHat" hbank="0" lbank="2" prog="55" />
+ <Patch name="El HiHat op" hbank="0" lbank="2" prog="56" />
+ <Patch name="Open HiHat" hbank="0" lbank="2" prog="57" />
+ <Patch name="HH Open" hbank="0" lbank="2" prog="58" />
+ <Patch name="TR66 Sidestk" hbank="0" lbank="2" prog="59" />
+ <Patch name="Tom Lo" hbank="0" lbank="2" prog="60" />
+ <Patch name="Tom Hi" hbank="0" lbank="2" prog="61" />
+ <Patch name="Tom Mid" hbank="0" lbank="2" prog="62" />
+ <Patch name="Tympani" hbank="0" lbank="2" prog="63" />
+ <Patch name="LoFi Perc" hbank="0" lbank="2" prog="64" />
+ <Patch name="Shot 1" hbank="0" lbank="2" prog="65" />
+ <Patch name="African Perc." hbank="0" lbank="2" prog="66" />
+ <Patch name="Peer Cussion" hbank="0" lbank="2" prog="67" />
+ <Patch name="Percy Noises" hbank="0" lbank="2" prog="68" />
+ <Patch name="Strom" hbank="0" lbank="2" prog="69" />
+ <Patch name="Tron Ring Game" hbank="0" lbank="2" prog="70" />
+ <Patch name="Eperc A" hbank="0" lbank="2" prog="71" />
+ <Patch name="Fat Zaps" hbank="0" lbank="2" prog="72" />
+ <Patch name="Zap Snap" hbank="0" lbank="2" prog="73" />
+ <Patch name="FM Noises" hbank="0" lbank="2" prog="74" />
+ <Patch name="LFO Speeddwn" hbank="0" lbank="2" prog="75" />
+ <Patch name="LFO Speedup" hbank="0" lbank="2" prog="76" />
+ <Patch name="No Way!" hbank="0" lbank="2" prog="77" />
+ <Patch name="Flash" hbank="0" lbank="2" prog="78" />
+ <Patch name="Chinese Gong" hbank="0" lbank="2" prog="79" />
+ <Patch name="Quiro" hbank="0" lbank="2" prog="80" />
+ <Patch name="Shattering FX" hbank="0" lbank="2" prog="81" />
+ <Patch name="Tribbles" hbank="0" lbank="2" prog="82" />
+ <Patch name="Star Trek 1" hbank="0" lbank="2" prog="83" />
+ <Patch name="Star Wars" hbank="0" lbank="2" prog="84" />
+ <Patch name="Lenco Clean" hbank="0" lbank="2" prog="85" />
+ <Patch name="ZeitlosVocoder" hbank="0" lbank="2" prog="86" />
+ <Patch name="Comb+/-Vocoder" hbank="0" lbank="2" prog="87" />
+ <Patch name="FM Vocoder" hbank="0" lbank="2" prog="88" />
+ <Patch name="Crazy Vocoder" hbank="0" lbank="2" prog="89" />
+ <Patch name="Dr. Vocoder" hbank="0" lbank="2" prog="90" />
+ <Patch name="VocoderStrings" hbank="0" lbank="2" prog="91" />
+ <Patch name="Arp+Voc=???" hbank="0" lbank="2" prog="92" />
+ <Patch name="Ext.Input FX" hbank="0" lbank="2" prog="93" />
+ <Patch name="Ext.InputCrazy" hbank="0" lbank="2" prog="94" />
+ <Patch name="Arp Init" hbank="0" lbank="2" prog="95" />
+ <Patch name="Bass Init" hbank="0" lbank="2" prog="96" />
+ <Patch name="Lead Init" hbank="0" lbank="2" prog="97" />
+ <Patch name="Pad Init" hbank="0" lbank="2" prog="98" />
+ <Patch name="Init Sound 2.0" hbank="0" lbank="2" prog="99" />
+ </PatchGroup>
+ <PatchGroup name="Drums Bank D">
+ <Patch name="Techno Set" hbank="0" lbank="4" prog="0" />
+ <Patch name="Bass Drums" hbank="0" lbank="4" prog="1" />
+ <Patch name="Snares+Claps" hbank="0" lbank="4" prog="2" />
+ <Patch name="HiHats+Percs" hbank="0" lbank="4" prog="3" />
+ <Patch name="Electro Set" hbank="0" lbank="4" prog="4" />
+ <Patch name="StenzMap" hbank="0" lbank="4" prog="5" />
+ <Patch name="Atmo Map" hbank="0" lbank="4" prog="6" />
+ <Patch name="Init Drummap 2.0" hbank="0" lbank="4" prog="7" />
+ <Patch name="Init Drummap 2.0" hbank="0" lbank="4" prog="8" />
+ <Patch name="Init Drummap 2.0" hbank="0" lbank="4" prog="9" />
+ <Patch name="Init Drummap 2.0" hbank="0" lbank="4" prog="10" />
+ <Patch name="Init Drummap 2.0" hbank="0" lbank="4" prog="11" />
+ <Patch name="Init Drummap 2.0" hbank="0" lbank="4" prog="12" />
+ <Patch name="Init Drummap 2.0" hbank="0" lbank="4" prog="13" />
+ <Patch name="Init Drummap 2.0" hbank="0" lbank="4" prog="14" />
+ <Patch name="Init Drummap 2.0" hbank="0" lbank="4" prog="15" />
+ <Patch name="Init Drummap 2.0" hbank="0" lbank="4" prog="16" />
+ <Patch name="Init Drummap 2.0" hbank="0" lbank="4" prog="17" />
+ <Patch name="Init Drummap 2.0" hbank="0" lbank="4" prog="18" />
+ <Patch name="Init Drummap 2.0" hbank="0" lbank="4" prog="19" />
+ </PatchGroup>
+ <PatchGroup name="Internal Bank Multi">
+ <Patch name="Venice Beach" hbank="0" lbank="104" prog="0" />
+ <Patch name="Arp Chaos" hbank="0" lbank="104" prog="1" />
+ <Patch name="Sinzig/Rhein" hbank="0" lbank="104" prog="2" />
+ <Patch name="Choral" hbank="0" lbank="104" prog="3" />
+ <Patch name="Zimmer Score" hbank="0" lbank="104" prog="4" />
+ <Patch name="Movement" hbank="0" lbank="104" prog="5" />
+ <Patch name="Kakophonie" hbank="0" lbank="104" prog="6" />
+ <Patch name="20111973" hbank="0" lbank="104" prog="7" />
+ <Patch name="Now Play Me!" hbank="0" lbank="104" prog="8" />
+ <Patch name="Stakkatak" hbank="0" lbank="104" prog="9" />
+ <Patch name="Tshingding" hbank="0" lbank="104" prog="10" />
+ <Patch name="My Dream" hbank="0" lbank="104" prog="11" />
+ <Patch name="Slow Mow" hbank="0" lbank="104" prog="12" />
+ <Patch name="Superpad" hbank="0" lbank="104" prog="13" />
+ <Patch name="At The Movies" hbank="0" lbank="104" prog="14" />
+ <Patch name="Sequencer Multi" hbank="0" lbank="104" prog="15" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="16" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="17" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="18" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="19" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="20" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="21" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="22" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="23" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="24" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="25" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="26" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="27" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="28" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="29" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="30" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="31" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="32" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="33" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="34" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="35" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="36" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="37" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="38" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="39" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="40" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="41" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="42" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="43" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="44" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="45" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="46" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="47" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="48" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="49" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="50" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="51" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="52" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="53" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="54" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="55" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="56" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="57" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="58" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="59" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="60" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="61" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="62" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="63" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="64" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="65" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="66" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="67" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="68" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="69" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="70" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="71" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="72" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="73" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="74" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="75" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="76" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="77" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="78" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="79" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="80" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="81" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="82" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="83" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="84" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="85" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="86" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="87" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="88" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="89" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="90" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="91" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="92" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="93" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="94" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="95" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="96" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="97" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="98" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="99" />
+ </PatchGroup>
+ <Controller name="Modulation" l="1" />
+ <Controller name="Breath Control" l="2" />
+ <Controller name="Foot Control" l="4" />
+ <Controller name="PortamentoTime" l="5" />
+ <Controller name="MainVolume" l="7" init="100" />
+ <Controller name="Pan" l="10" min="-64" max="63" init="0" />
+ <Controller name="Arp Range" l="12" />
+ <Controller name="Arp Length" l="13" />
+ <Controller name="Arp Active" l="14" />
+ <Controller name="Lfo 1 Shape" l="15" />
+ <Controller name="Lfo 1 Speed" l="16" />
+ <Controller name="Lfo 1 Sync" l="17" />
+ <Controller name="Lfo 1 Delay" l="18" />
+ <Controller name="Lfo 2 Shape" l="19" />
+ <Controller name="Lfo 2 Speed" l="20" />
+ <Controller name="Lfo 2 Sync" l="21" />
+ <Controller name="Lfo 2 Delay" l="22" />
+ <Controller name="Lfo 3 Shape" l="23" />
+ <Controller name="Lfo 3 Speed" l="24" />
+ <Controller name="Lfo 3 Sync" l="25" />
+ <Controller name="Lfo 3 Delay" l="26" />
+ <Controller name="Osc 1 Octave" l="27" />
+ <Controller name="Osc 1 Semitone" l="28" />
+ <Controller name="Osc 1 Detune" l="29" />
+ <Controller name="Osc 1 FM" l="30" />
+ <Controller name="Osc 1 Shape" l="31" />
+ <Controller name="Bank Select LSB" l="32" />
+ <Controller name="Osc 1 PW" l="33" />
+ <Controller name="Osc 1 PWM" l="34" />
+ <Controller name="Osc 2 Octave" l="35" />
+ <Controller name="Osc 2 Semitone" l="36" />
+ <Controller name="Osc 2 Detune" l="37" />
+ <Controller name="Osc 2 FM" l="38" />
+ <Controller name="Osc 2 Shape" l="39" />
+ <Controller name="Osc 2 PW" l="40" />
+ <Controller name="Osc 2 PWM" l="41" />
+ <Controller name="Osc 3 Octave" l="42" />
+ <Controller name="Osc 3 Semitone" l="43" />
+ <Controller name="Osc 3 Detune" l="44" />
+ <Controller name="Osc 3 FM" l="45" />
+ <Controller name="Osc 3 Shape" l="46" />
+ <Controller name="Osc 3 PW" l="47" />
+ <Controller name="Osc 3 PWM" l="48" />
+ <Controller name="Sync" l="49" />
+ <Controller name="Pitchmod" l="50" />
+ <Controller name="Glide Mode" l="51" />
+ <Controller name="Osc 1 Level" l="52" />
+ <Controller name="Osc 1 Balance" l="53" />
+ <Controller name="Ringmod Level" l="54" />
+ <Controller name="Ringmod Balance" l="55" />
+ <Controller name="Osc 2 Level" l="56" />
+ <Controller name="Osc 2 Balance" l="57" />
+ <Controller name="Osc 3 Level" l="58" />
+ <Controller name="Osc 3 Balance" l="59" />
+ <Controller name="N/E Level" l="60" />
+ <Controller name="N/E Balance" l="61" />
+ <Controller name="Sustain Pedal" l="64" />
+ <Controller name="Glide Active" l="65" />
+ <Controller name="Sostenuto" l="66" />
+ <Controller name="Routing" l="67" />
+ <Controller name="Filter 1 Type" l="68" />
+ <Controller name="Filter 1 Cutoff" l="69" />
+ <Controller name="Filter 1 Resonance" l="70" />
+ <Controller name="Filter 1 Drive" l="71" />
+ <Controller name="Filter 1 Keytrack" l="72" />
+ <Controller name="Filter 1 Env. Amount" l="73" />
+ <Controller name="Filter 1 Env. Velocity" l="74" />
+ <Controller name="Filter 1 CutoffMod" l="75" />
+ <Controller name="Filter 1 FM" l="76" />
+ <Controller name="Filter 1 Pan" l="77" />
+ <Controller name="Filter 1 PanMod" l="78" />
+ <Controller name="Filter 2 Type" l="79" />
+ <Controller name="Filter 2 Cutoff" l="80" />
+ <Controller name="Filter 2 Resonance" l="81" />
+ <Controller name="Filter 2 Drive" l="82" />
+ <Controller name="Filter 2 Keytrack" l="83" />
+ <Controller name="Filter 2 Env. Amount" l="84" />
+ <Controller name="Filter 2 Env. Velocity" l="85" />
+ <Controller name="Filter 2 CutoffMod" l="86" />
+ <Controller name="Filter 2 FM" l="87" />
+ <Controller name="Filter 2 Pan" l="88" />
+ <Controller name="Filter 2 PanMod" l="89" />
+ <Controller name="Amp Volume" l="90" />
+ <Controller name="Amp Velocity" l="91" />
+ <Controller name="Amp Mod" l="92" />
+ <Controller name="FX 1 Mix" l="93" />
+ <Controller name="FX 2 Mix" l="94" />
+ <Controller name="FE Attack" l="95" />
+ <Controller name="FE Decay" l="96" />
+ <Controller name="FE Sustain" l="97" />
+ <Controller name="FE Decay 2" l="98" />
+ <Controller name="FE Sustain 2" l="99" />
+ <Controller name="FE Release" l="100" />
+ <Controller name="AE Attack" l="101" />
+ <Controller name="AE Decay" l="102" />
+ <Controller name="AE Sustain" l="103" />
+ <Controller name="AE Decay 2" l="104" />
+ <Controller name="AE Sustain 2" l="105" />
+ <Controller name="AE Release" l="106" />
+ <Controller name="E3 Attack" l="107" />
+ <Controller name="E3 Decay" l="108" />
+ <Controller name="E3 Sustain" l="109" />
+ <Controller name="E3 Decay 2" l="110" />
+ <Controller name="E3 Sustain 2" l="111" />
+ <Controller name="E3 Release" l="112" />
+ <Controller name="E4 Attack" l="113" />
+ <Controller name="E4 Decay" l="114" />
+ <Controller name="E4 Sustain" l="115" />
+ <Controller name="E4 Decay 2" l="116" />
+ <Controller name="E4 Sustain 2" l="117" />
+ <Controller name="E4 Release" l="118" />
+ <Controller name="All Sounds Off" l="120" />
+ <Controller name="Reset All Controllers" l="121" />
+ <Controller name="Local Control" l="122" />
+ <Controller name="All Notes Off" l="123" />
+ <Controller name="Pitch" type="Pitch" />
+ <Controller name="Program" type="Program" />
+ </MidiInstrument>
+</muse>
diff --git a/muse2/share/instruments/Waldorf-microQ-Phoenix.idf b/muse2/share/instruments/Waldorf-microQ-Phoenix.idf
new file mode 100644
index 00000000..2a0ef824
--- /dev/null
+++ b/muse2/share/instruments/Waldorf-microQ-Phoenix.idf
@@ -0,0 +1,552 @@
+<?xml version="1.0"?>
+<muse version="1.0">
+ <MidiInstrument name="Waldorf microQ Phoenix">
+ <PatchGroup name="Internal Bank A">
+ <Patch name="LosAngeles2019" hbank="0" lbank="0" prog="0" />
+ <Patch name="Rain" hbank="0" lbank="0" prog="1" />
+ <Patch name="Hypnose 2.0" hbank="0" lbank="0" prog="2" />
+ <Patch name="Zeitlos" hbank="0" lbank="0" prog="3" />
+ <Patch name="Expensive" hbank="0" lbank="0" prog="4" />
+ <Patch name="OBX Purple5" hbank="0" lbank="0" prog="5" />
+ <Patch name="Queen-mom" hbank="0" lbank="0" prog="6" />
+ <Patch name="Juanita" hbank="0" lbank="0" prog="7" />
+ <Patch name="Demolition" hbank="0" lbank="0" prog="8" />
+ <Patch name="The Showroom" hbank="0" lbank="0" prog="9" />
+ <Patch name="Wartofsky" hbank="0" lbank="0" prog="10" />
+ <Patch name="Cut-Verb" hbank="0" lbank="0" prog="11" />
+ <Patch name="Visions of Q" hbank="0" lbank="0" prog="12" />
+ <Patch name="MI5 Pad" hbank="0" lbank="0" prog="13" />
+ <Patch name="Tank Girl" hbank="0" lbank="0" prog="14" />
+ <Patch name="Chor 2.0" hbank="0" lbank="0" prog="15" />
+ <Patch name="Attacke" hbank="0" lbank="0" prog="16" />
+ <Patch name="11KHz Solo" hbank="0" lbank="0" prog="17" />
+ <Patch name="Ass age:101" hbank="0" lbank="0" prog="18" />
+ <Patch name="Cleanline 303" hbank="0" lbank="0" prog="19" />
+ <Patch name="www.arp.com" hbank="0" lbank="0" prog="20" />
+ <Patch name="Giedi Prime" hbank="0" lbank="0" prog="21" />
+ <Patch name="Vince Clark 3" hbank="0" lbank="0" prog="22" />
+ <Patch name="Night Flight" hbank="0" lbank="0" prog="23" />
+ <Patch name="EyesWideOpen" hbank="0" lbank="0" prog="24" />
+ <Patch name="Heart Bass FM" hbank="0" lbank="0" prog="25" />
+ <Patch name="Sh-ARP" hbank="0" lbank="0" prog="26" />
+ <Patch name="KrautedHaus" hbank="0" lbank="0" prog="27" />
+ <Patch name="DEF" hbank="0" lbank="0" prog="28" />
+ <Patch name="Kakophonia 1" hbank="0" lbank="0" prog="29" />
+ <Patch name="BackStrings" hbank="0" lbank="0" prog="30" />
+ <Patch name="Flinker" hbank="0" lbank="0" prog="31" />
+ <Patch name="TheWidestEver" hbank="0" lbank="0" prog="32" />
+ <Patch name="DuneSdTrak" hbank="0" lbank="0" prog="33" />
+ <Patch name="PrincessStrgs" hbank="0" lbank="0" prog="34" />
+ <Patch name="Namlooking" hbank="0" lbank="0" prog="35" />
+ <Patch name="Fiftyfive" hbank="0" lbank="0" prog="36" />
+ <Patch name="Liquid Strg" hbank="0" lbank="0" prog="37" />
+ <Patch name="CS100" hbank="0" lbank="0" prog="38" />
+ <Patch name="Enough Power" hbank="0" lbank="0" prog="39" />
+ <Patch name="Alphaville ?!" hbank="0" lbank="0" prog="40" />
+ <Patch name="Breit..." hbank="0" lbank="0" prog="41" />
+ <Patch name="Chord-Hose" hbank="0" lbank="0" prog="42" />
+ <Patch name="Cool Porta" hbank="0" lbank="0" prog="43" />
+ <Patch name="Trennkost" hbank="0" lbank="0" prog="44" />
+ <Patch name="Deep Synth" hbank="0" lbank="0" prog="45" />
+ <Patch name="Sounds BP" hbank="0" lbank="0" prog="46" />
+ <Patch name="SH 2001" hbank="0" lbank="0" prog="47" />
+ <Patch name="Vibro-Hook" hbank="0" lbank="0" prog="48" />
+ <Patch name="Stuermer 2" hbank="0" lbank="0" prog="49" />
+ <Patch name="Killer Bass" hbank="0" lbank="0" prog="50" />
+ <Patch name="707Bass" hbank="0" lbank="0" prog="51" />
+ <Patch name="Narrow" hbank="0" lbank="0" prog="52" />
+ <Patch name="Gum Bass" hbank="0" lbank="0" prog="53" />
+ <Patch name="NoreBass#2" hbank="0" lbank="0" prog="54" />
+ <Patch name="Phalanx Bass" hbank="0" lbank="0" prog="55" />
+ <Patch name="CCCP 70 E" hbank="0" lbank="0" prog="56" />
+ <Patch name="Comb Clavi" hbank="0" lbank="0" prog="57" />
+ <Patch name="FM-Rhodes 1" hbank="0" lbank="0" prog="58" />
+ <Patch name="Shed" hbank="0" lbank="0" prog="59" />
+ <Patch name="Wartz Piano1" hbank="0" lbank="0" prog="60" />
+ <Patch name="Dirty Organ1" hbank="0" lbank="0" prog="61" />
+ <Patch name="Tankin\" hbank="0" lbank="0" prog="62" />
+ <Patch name="Old * Uck" hbank="0" lbank="0" prog="63" />
+ <Patch name="Testosteron" hbank="0" lbank="0" prog="64" />
+ <Patch name="Juno Soul" hbank="0" lbank="0" prog="65" />
+ <Patch name="PEG Horns" hbank="0" lbank="0" prog="66" />
+ <Patch name="Polaris" hbank="0" lbank="0" prog="67" />
+ <Patch name="PrincessBells" hbank="0" lbank="0" prog="68" />
+ <Patch name="Bells" hbank="0" lbank="0" prog="69" />
+ <Patch name="TributeTo DX" hbank="0" lbank="0" prog="70" />
+ <Patch name="DollarBells" hbank="0" lbank="0" prog="71" />
+ <Patch name="Clock+Bells" hbank="0" lbank="0" prog="72" />
+ <Patch name="RainAfterSun" hbank="0" lbank="0" prog="73" />
+ <Patch name="Phazer PWM" hbank="0" lbank="0" prog="74" />
+ <Patch name="Choir Pad" hbank="0" lbank="0" prog="75" />
+ <Patch name="Ultimaterial" hbank="0" lbank="0" prog="76" />
+ <Patch name="Broadway" hbank="0" lbank="0" prog="77" />
+ <Patch name="Dizzyland" hbank="0" lbank="0" prog="78" />
+ <Patch name="WaveDrone" hbank="0" lbank="0" prog="79" />
+ <Patch name="Major Matrix" hbank="0" lbank="0" prog="80" />
+ <Patch name="Pop Melodee" hbank="0" lbank="0" prog="81" />
+ <Patch name="Jp8 TRACER" hbank="0" lbank="0" prog="82" />
+ <Patch name="HornsOfJericho" hbank="0" lbank="0" prog="83" />
+ <Patch name="Meteor" hbank="0" lbank="0" prog="84" />
+ <Patch name="CombTutorial" hbank="0" lbank="0" prog="85" />
+ <Patch name="TschingHisCan" hbank="0" lbank="0" prog="86" />
+ <Patch name="Phazed Chordz" hbank="0" lbank="0" prog="87" />
+ <Patch name="Panreduction" hbank="0" lbank="0" prog="88" />
+ <Patch name="Pluto" hbank="0" lbank="0" prog="89" />
+ <Patch name="One Note BP" hbank="0" lbank="0" prog="90" />
+ <Patch name="Ritual" hbank="0" lbank="0" prog="91" />
+ <Patch name="He\s here!!!" hbank="0" lbank="0" prog="92" />
+ <Patch name="Rubber" hbank="0" lbank="0" prog="93" />
+ <Patch name="Buzzer 3" hbank="0" lbank="0" prog="94" />
+ <Patch name="Sierra Velone" hbank="0" lbank="0" prog="95" />
+ <Patch name="TheQBots" hbank="0" lbank="0" prog="96" />
+ <Patch name="Bassline 3O3" hbank="0" lbank="0" prog="97" />
+ <Patch name="Basssser" hbank="0" lbank="0" prog="98" />
+ <Patch name="Moogish 2" hbank="0" lbank="0" prog="99" />
+ </PatchGroup>
+ <PatchGroup name="Internal Bank B">
+ <Patch name="Jazz Percssn" hbank="0" lbank="1" prog="0" />
+ <Patch name="Wurlitzer104b" hbank="0" lbank="1" prog="1" />
+ <Patch name="Organ #2" hbank="0" lbank="1" prog="2" />
+ <Patch name="Funky Q" hbank="0" lbank="1" prog="3" />
+ <Patch name="Wurlitzer" hbank="0" lbank="1" prog="4" />
+ <Patch name="Ring Sequel" hbank="0" lbank="1" prog="5" />
+ <Patch name="Bellophon" hbank="0" lbank="1" prog="6" />
+ <Patch name="Qvation" hbank="0" lbank="1" prog="7" />
+ <Patch name="Plucked Nylon" hbank="0" lbank="1" prog="8" />
+ <Patch name="Pizzicated" hbank="0" lbank="1" prog="9" />
+ <Patch name="Sonnenaufgang" hbank="0" lbank="1" prog="10" />
+ <Patch name="FilterDenKamm" hbank="0" lbank="1" prog="11" />
+ <Patch name="Qool Water" hbank="0" lbank="1" prog="12" />
+ <Patch name="Dark Strings" hbank="0" lbank="1" prog="13" />
+ <Patch name="Q-Sweep2" hbank="0" lbank="1" prog="14" />
+ <Patch name="Score Edition" hbank="0" lbank="1" prog="15" />
+ <Patch name="Soap" hbank="0" lbank="1" prog="16" />
+ <Patch name="Soft Pad" hbank="0" lbank="1" prog="17" />
+ <Patch name="Wide Saw Pad" hbank="0" lbank="1" prog="18" />
+ <Patch name="FaMtastic" hbank="0" lbank="1" prog="19" />
+ <Patch name="Kiddings" hbank="0" lbank="1" prog="20" />
+ <Patch name="Poor Prophets" hbank="0" lbank="1" prog="21" />
+ <Patch name="LggSit" hbank="0" lbank="1" prog="22" />
+ <Patch name="Like Wool" hbank="0" lbank="1" prog="23" />
+ <Patch name="FlimmerStrings" hbank="0" lbank="1" prog="24" />
+ <Patch name="Padagogy" hbank="0" lbank="1" prog="25" />
+ <Patch name="PhaserStrings" hbank="0" lbank="1" prog="26" />
+ <Patch name="FMBP Sweep" hbank="0" lbank="1" prog="27" />
+ <Patch name="Q-rious?" hbank="0" lbank="1" prog="28" />
+ <Patch name="ProducersPad" hbank="0" lbank="1" prog="29" />
+ <Patch name="FransenHarfe" hbank="0" lbank="1" prog="30" />
+ <Patch name="Western Wind" hbank="0" lbank="1" prog="31" />
+ <Patch name="Giga Prune" hbank="0" lbank="1" prog="32" />
+ <Patch name="Oooh Choir" hbank="0" lbank="1" prog="33" />
+ <Patch name="Chor 16\" hbank="0" lbank="1" prog="34" />
+ <Patch name="JMX vs. DeLeon" hbank="0" lbank="1" prog="35" />
+ <Patch name="HighpassFixer" hbank="0" lbank="1" prog="36" />
+ <Patch name="Kl0ppelspitze" hbank="0" lbank="1" prog="37" />
+ <Patch name="Mono Sync" hbank="0" lbank="1" prog="38" />
+ <Patch name="MurkSolo" hbank="0" lbank="1" prog="39" />
+ <Patch name="Cry Baby" hbank="0" lbank="1" prog="40" />
+ <Patch name="VintageSpring" hbank="0" lbank="1" prog="41" />
+ <Patch name="Liquid Mel" hbank="0" lbank="1" prog="42" />
+ <Patch name="Zombie Nation" hbank="0" lbank="1" prog="43" />
+ <Patch name="PWMaster" hbank="0" lbank="1" prog="44" />
+ <Patch name="Qliniqs !!!" hbank="0" lbank="1" prog="45" />
+ <Patch name="Quintage" hbank="0" lbank="1" prog="46" />
+ <Patch name="Up And Down" hbank="0" lbank="1" prog="47" />
+ <Patch name="Siegessaeule" hbank="0" lbank="1" prog="48" />
+ <Patch name="Saw Lead" hbank="0" lbank="1" prog="49" />
+ <Patch name="Schubduese" hbank="0" lbank="1" prog="50" />
+ <Patch name="Sparkle Solo" hbank="0" lbank="1" prog="51" />
+ <Patch name="TQ 303" hbank="0" lbank="1" prog="52" />
+ <Patch name="Phat Beat" hbank="0" lbank="1" prog="53" />
+ <Patch name="Moany" hbank="0" lbank="1" prog="54" />
+ <Patch name="Naap! 3" hbank="0" lbank="1" prog="55" />
+ <Patch name="Matrone" hbank="0" lbank="1" prog="56" />
+ <Patch name="Tiny Solo" hbank="0" lbank="1" prog="57" />
+ <Patch name="TuBerkel" hbank="0" lbank="1" prog="58" />
+ <Patch name="Wells\Tripod" hbank="0" lbank="1" prog="59" />
+ <Patch name="Crunchy Nuts" hbank="0" lbank="1" prog="60" />
+ <Patch name="Aggreppo" hbank="0" lbank="1" prog="61" />
+ <Patch name="Tsching Lead" hbank="0" lbank="1" prog="62" />
+ <Patch name="Compromise K" hbank="0" lbank="1" prog="63" />
+ <Patch name="Pressure Drive" hbank="0" lbank="1" prog="64" />
+ <Patch name="Freaky Syncro" hbank="0" lbank="1" prog="65" />
+ <Patch name="No Drive3" hbank="0" lbank="1" prog="66" />
+ <Patch name="Juno Sound" hbank="0" lbank="1" prog="67" />
+ <Patch name="DropBass 2001" hbank="0" lbank="1" prog="68" />
+ <Patch name="Knurrhahn" hbank="0" lbank="1" prog="69" />
+ <Patch name="Bass-Turbation" hbank="0" lbank="1" prog="70" />
+ <Patch name="Pulse Bass 1" hbank="0" lbank="1" prog="71" />
+ <Patch name="Pulse P.41" hbank="0" lbank="1" prog="72" />
+ <Patch name="PWM ResoBass" hbank="0" lbank="1" prog="73" />
+ <Patch name="NoreBass#5" hbank="0" lbank="1" prog="74" />
+ <Patch name="NoreBass#7" hbank="0" lbank="1" prog="75" />
+ <Patch name="Q-Bass" hbank="0" lbank="1" prog="76" />
+ <Patch name="Sawproof Bass" hbank="0" lbank="1" prog="77" />
+ <Patch name="NoAttackBass" hbank="0" lbank="1" prog="78" />
+ <Patch name="Occybas" hbank="0" lbank="1" prog="79" />
+ <Patch name="Deep Bass 9" hbank="0" lbank="1" prog="80" />
+ <Patch name="FM SmurfBs" hbank="0" lbank="1" prog="81" />
+ <Patch name="Conehead 1" hbank="0" lbank="1" prog="82" />
+ <Patch name="Buzzer" hbank="0" lbank="1" prog="83" />
+ <Patch name="FilterFM Bass" hbank="0" lbank="1" prog="84" />
+ <Patch name="Dust Brothers" hbank="0" lbank="1" prog="85" />
+ <Patch name="Q Visions" hbank="0" lbank="1" prog="86" />
+ <Patch name="Love Van Dyke" hbank="0" lbank="1" prog="87" />
+ <Patch name="Diana-01" hbank="0" lbank="1" prog="88" />
+ <Patch name="Alt Wave ArP" hbank="0" lbank="1" prog="89" />
+ <Patch name="Torment" hbank="0" lbank="1" prog="90" />
+ <Patch name="Tranceomania" hbank="0" lbank="1" prog="91" />
+ <Patch name="Waver" hbank="0" lbank="1" prog="92" />
+ <Patch name="hARPo" hbank="0" lbank="1" prog="93" />
+ <Patch name="GeeGaGooQ" hbank="0" lbank="1" prog="94" />
+ <Patch name="Limbo" hbank="0" lbank="1" prog="95" />
+ <Patch name="Philicorda2" hbank="0" lbank="1" prog="96" />
+ <Patch name="DanceSequence" hbank="0" lbank="1" prog="97" />
+ <Patch name="DeviantSerge" hbank="0" lbank="1" prog="98" />
+ <Patch name="Furby Arp" hbank="0" lbank="1" prog="99" />
+ </PatchGroup>
+ <PatchGroup name="Internal Bank C">
+ <Patch name="The Beginning" hbank="0" lbank="2" prog="0" />
+ <Patch name="Acostic Glue" hbank="0" lbank="2" prog="1" />
+ <Patch name="VeryCompleqs" hbank="0" lbank="2" prog="2" />
+ <Patch name="Brightseite" hbank="0" lbank="2" prog="3" />
+ <Patch name="TheDarkPlanet" hbank="0" lbank="2" prog="4" />
+ <Patch name="Q Tables" hbank="0" lbank="2" prog="5" />
+ <Patch name="Trance-Port" hbank="0" lbank="2" prog="6" />
+ <Patch name="Slow Wavetrip" hbank="0" lbank="2" prog="7" />
+ <Patch name="PDQ ;-) WT13" hbank="0" lbank="2" prog="8" />
+ <Patch name="Tranquilizer" hbank="0" lbank="2" prog="9" />
+ <Patch name="S+H+Pad+Nice" hbank="0" lbank="2" prog="10" />
+ <Patch name="Arctica" hbank="0" lbank="2" prog="11" />
+ <Patch name="The BORG" hbank="0" lbank="2" prog="12" />
+ <Patch name="Deep Space" hbank="0" lbank="2" prog="13" />
+ <Patch name="Kairos" hbank="0" lbank="2" prog="14" />
+ <Patch name="The Fog" hbank="0" lbank="2" prog="15" />
+ <Patch name="HellsbugsIntro" hbank="0" lbank="2" prog="16" />
+ <Patch name="feel WAVE" hbank="0" lbank="2" prog="17" />
+ <Patch name="VocodaBass" hbank="0" lbank="2" prog="18" />
+ <Patch name="Maschinenraum" hbank="0" lbank="2" prog="19" />
+ <Patch name="Animals" hbank="0" lbank="2" prog="20" />
+ <Patch name="Tire-Guy" hbank="0" lbank="2" prog="21" />
+ <Patch name="Spiders2001" hbank="0" lbank="2" prog="22" />
+ <Patch name="Waterfone2001" hbank="0" lbank="2" prog="23" />
+ <Patch name="BD-Q0Q" hbank="0" lbank="2" prog="24" />
+ <Patch name="Electric Drum" hbank="0" lbank="2" prog="25" />
+ <Patch name="Bee Drum" hbank="0" lbank="2" prog="26" />
+ <Patch name="909 Kick 1" hbank="0" lbank="2" prog="27" />
+ <Patch name="909 Kick 2" hbank="0" lbank="2" prog="28" />
+ <Patch name="Q 808" hbank="0" lbank="2" prog="29" />
+ <Patch name="ClipDrum" hbank="0" lbank="2" prog="30" />
+ <Patch name="House Kick" hbank="0" lbank="2" prog="31" />
+ <Patch name="Techno Kick" hbank="0" lbank="2" prog="32" />
+ <Patch name="Linniskus" hbank="0" lbank="2" prog="33" />
+ <Patch name="El Snare 1" hbank="0" lbank="2" prog="34" />
+ <Patch name="E-Snare 2" hbank="0" lbank="2" prog="35" />
+ <Patch name="Fast Snare" hbank="0" lbank="2" prog="36" />
+ <Patch name="808 Snare 1" hbank="0" lbank="2" prog="37" />
+ <Patch name="808 Snare 2" hbank="0" lbank="2" prog="38" />
+ <Patch name="Thin Snare" hbank="0" lbank="2" prog="39" />
+ <Patch name="Snare 1" hbank="0" lbank="2" prog="40" />
+ <Patch name="Snare 2" hbank="0" lbank="2" prog="41" />
+ <Patch name="Metalic Snare" hbank="0" lbank="2" prog="42" />
+ <Patch name="SimmonsSnare" hbank="0" lbank="2" prog="43" />
+ <Patch name="Reso Snare" hbank="0" lbank="2" prog="44" />
+ <Patch name="Noisy Snare" hbank="0" lbank="2" prog="45" />
+ <Patch name="ClapsMuehle" hbank="0" lbank="2" prog="46" />
+ <Patch name="Claps Rev" hbank="0" lbank="2" prog="47" />
+ <Patch name="Claps 1" hbank="0" lbank="2" prog="48" />
+ <Patch name="Claps 2" hbank="0" lbank="2" prog="49" />
+ <Patch name="Claps 3" hbank="0" lbank="2" prog="50" />
+ <Patch name="High Head" hbank="0" lbank="2" prog="51" />
+ <Patch name="HH Closed 2" hbank="0" lbank="2" prog="52" />
+ <Patch name="Band Hihat" hbank="0" lbank="2" prog="53" />
+ <Patch name="www.hihat.com" hbank="0" lbank="2" prog="54" />
+ <Patch name="Heavy HiHat" hbank="0" lbank="2" prog="55" />
+ <Patch name="El HiHat op" hbank="0" lbank="2" prog="56" />
+ <Patch name="Open HiHat" hbank="0" lbank="2" prog="57" />
+ <Patch name="HH Open" hbank="0" lbank="2" prog="58" />
+ <Patch name="TR66 Sidestk" hbank="0" lbank="2" prog="59" />
+ <Patch name="Tom Lo" hbank="0" lbank="2" prog="60" />
+ <Patch name="Tom Hi" hbank="0" lbank="2" prog="61" />
+ <Patch name="Tom Mid" hbank="0" lbank="2" prog="62" />
+ <Patch name="Tympani" hbank="0" lbank="2" prog="63" />
+ <Patch name="LoFi Perc" hbank="0" lbank="2" prog="64" />
+ <Patch name="Shot 1" hbank="0" lbank="2" prog="65" />
+ <Patch name="African Perc." hbank="0" lbank="2" prog="66" />
+ <Patch name="Peer Cussion" hbank="0" lbank="2" prog="67" />
+ <Patch name="Percy Noises" hbank="0" lbank="2" prog="68" />
+ <Patch name="Strom" hbank="0" lbank="2" prog="69" />
+ <Patch name="Tron Ring Game" hbank="0" lbank="2" prog="70" />
+ <Patch name="Eperc A" hbank="0" lbank="2" prog="71" />
+ <Patch name="Fat Zaps" hbank="0" lbank="2" prog="72" />
+ <Patch name="Zap Snap" hbank="0" lbank="2" prog="73" />
+ <Patch name="FM Noises" hbank="0" lbank="2" prog="74" />
+ <Patch name="LFO Speeddwn" hbank="0" lbank="2" prog="75" />
+ <Patch name="LFO Speedup" hbank="0" lbank="2" prog="76" />
+ <Patch name="No Way!" hbank="0" lbank="2" prog="77" />
+ <Patch name="Flash" hbank="0" lbank="2" prog="78" />
+ <Patch name="Chinese Gong" hbank="0" lbank="2" prog="79" />
+ <Patch name="Quiro" hbank="0" lbank="2" prog="80" />
+ <Patch name="Shattering FX" hbank="0" lbank="2" prog="81" />
+ <Patch name="Tribbles" hbank="0" lbank="2" prog="82" />
+ <Patch name="Star Trek 1" hbank="0" lbank="2" prog="83" />
+ <Patch name="Star Wars" hbank="0" lbank="2" prog="84" />
+ <Patch name="Lenco Clean" hbank="0" lbank="2" prog="85" />
+ <Patch name="ZeitlosVocoder" hbank="0" lbank="2" prog="86" />
+ <Patch name="Comb+/-Vocoder" hbank="0" lbank="2" prog="87" />
+ <Patch name="FM Vocoder" hbank="0" lbank="2" prog="88" />
+ <Patch name="Crazy Vocoder" hbank="0" lbank="2" prog="89" />
+ <Patch name="Dr. Vocoder" hbank="0" lbank="2" prog="90" />
+ <Patch name="VocoderStrings" hbank="0" lbank="2" prog="91" />
+ <Patch name="Arp+Voc=???" hbank="0" lbank="2" prog="92" />
+ <Patch name="Ext.Input FX" hbank="0" lbank="2" prog="93" />
+ <Patch name="Ext.InputCrazy" hbank="0" lbank="2" prog="94" />
+ <Patch name="Arp Init" hbank="0" lbank="2" prog="95" />
+ <Patch name="Bass Init" hbank="0" lbank="2" prog="96" />
+ <Patch name="Lead Init" hbank="0" lbank="2" prog="97" />
+ <Patch name="Pad Init" hbank="0" lbank="2" prog="98" />
+ <Patch name="Init Sound 2.0" hbank="0" lbank="2" prog="99" />
+ </PatchGroup>
+ <PatchGroup name="Drums Bank D">
+ <Patch name="Techno Set" hbank="0" lbank="4" prog="0" />
+ <Patch name="Bass Drums" hbank="0" lbank="4" prog="1" />
+ <Patch name="Snares+Claps" hbank="0" lbank="4" prog="2" />
+ <Patch name="HiHats+Percs" hbank="0" lbank="4" prog="3" />
+ <Patch name="Electro Set" hbank="0" lbank="4" prog="4" />
+ <Patch name="StenzMap" hbank="0" lbank="4" prog="5" />
+ <Patch name="Atmo Map" hbank="0" lbank="4" prog="6" />
+ <Patch name="Init Drummap 2.0" hbank="0" lbank="4" prog="7" />
+ <Patch name="Init Drummap 2.0" hbank="0" lbank="4" prog="8" />
+ <Patch name="Init Drummap 2.0" hbank="0" lbank="4" prog="9" />
+ <Patch name="Init Drummap 2.0" hbank="0" lbank="4" prog="10" />
+ <Patch name="Init Drummap 2.0" hbank="0" lbank="4" prog="11" />
+ <Patch name="Init Drummap 2.0" hbank="0" lbank="4" prog="12" />
+ <Patch name="Init Drummap 2.0" hbank="0" lbank="4" prog="13" />
+ <Patch name="Init Drummap 2.0" hbank="0" lbank="4" prog="14" />
+ <Patch name="Init Drummap 2.0" hbank="0" lbank="4" prog="15" />
+ <Patch name="Init Drummap 2.0" hbank="0" lbank="4" prog="16" />
+ <Patch name="Init Drummap 2.0" hbank="0" lbank="4" prog="17" />
+ <Patch name="Init Drummap 2.0" hbank="0" lbank="4" prog="18" />
+ <Patch name="Init Drummap 2.0" hbank="0" lbank="4" prog="19" />
+ </PatchGroup>
+ <PatchGroup name="Internal Bank Multi">
+ <Patch name="Venice Beach" hbank="0" lbank="104" prog="0" />
+ <Patch name="Arp Chaos" hbank="0" lbank="104" prog="1" />
+ <Patch name="Sinzig/Rhein" hbank="0" lbank="104" prog="2" />
+ <Patch name="Choral" hbank="0" lbank="104" prog="3" />
+ <Patch name="Zimmer Score" hbank="0" lbank="104" prog="4" />
+ <Patch name="Movement" hbank="0" lbank="104" prog="5" />
+ <Patch name="Kakophonie" hbank="0" lbank="104" prog="6" />
+ <Patch name="20111973" hbank="0" lbank="104" prog="7" />
+ <Patch name="Now Play Me!" hbank="0" lbank="104" prog="8" />
+ <Patch name="Stakkatak" hbank="0" lbank="104" prog="9" />
+ <Patch name="Tshingding" hbank="0" lbank="104" prog="10" />
+ <Patch name="My Dream" hbank="0" lbank="104" prog="11" />
+ <Patch name="Slow Mow" hbank="0" lbank="104" prog="12" />
+ <Patch name="Superpad" hbank="0" lbank="104" prog="13" />
+ <Patch name="At The Movies" hbank="0" lbank="104" prog="14" />
+ <Patch name="Sequencer Multi" hbank="0" lbank="104" prog="15" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="16" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="17" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="18" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="19" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="20" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="21" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="22" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="23" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="24" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="25" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="26" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="27" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="28" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="29" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="30" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="31" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="32" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="33" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="34" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="35" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="36" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="37" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="38" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="39" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="40" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="41" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="42" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="43" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="44" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="45" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="46" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="47" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="48" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="49" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="50" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="51" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="52" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="53" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="54" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="55" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="56" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="57" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="58" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="59" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="60" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="61" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="62" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="63" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="64" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="65" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="66" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="67" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="68" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="69" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="70" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="71" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="72" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="73" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="74" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="75" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="76" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="77" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="78" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="79" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="80" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="81" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="82" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="83" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="84" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="85" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="86" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="87" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="88" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="89" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="90" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="91" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="92" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="93" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="94" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="95" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="96" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="97" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="98" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="99" />
+ </PatchGroup>
+ <Controller name="Modulation" l="1" />
+ <Controller name="Breath Control" l="2" />
+ <Controller name="Foot Control" l="4" />
+ <Controller name="PortamentoTime" l="5" />
+ <Controller name="MainVolume" l="7" init="100" />
+ <Controller name="Pan" l="10" min="-64" max="63" init="0" />
+ <Controller name="Arp Range" l="12" />
+ <Controller name="Arp Length" l="13" />
+ <Controller name="Arp Active" l="14" />
+ <Controller name="Lfo 1 Shape" l="15" />
+ <Controller name="Lfo 1 Speed" l="16" />
+ <Controller name="Lfo 1 Sync" l="17" />
+ <Controller name="Lfo 1 Delay" l="18" />
+ <Controller name="Lfo 2 Shape" l="19" />
+ <Controller name="Lfo 2 Speed" l="20" />
+ <Controller name="Lfo 2 Sync" l="21" />
+ <Controller name="Lfo 2 Delay" l="22" />
+ <Controller name="Lfo 3 Shape" l="23" />
+ <Controller name="Lfo 3 Speed" l="24" />
+ <Controller name="Lfo 3 Sync" l="25" />
+ <Controller name="Lfo 3 Delay" l="26" />
+ <Controller name="Osc 1 Octave" l="27" />
+ <Controller name="Osc 1 Semitone" l="28" />
+ <Controller name="Osc 1 Detune" l="29" />
+ <Controller name="Osc 1 FM" l="30" />
+ <Controller name="Osc 1 Shape" l="31" />
+ <Controller name="Bank Select LSB" l="32" />
+ <Controller name="Osc 1 PW" l="33" />
+ <Controller name="Osc 1 PWM" l="34" />
+ <Controller name="Osc 2 Octave" l="35" />
+ <Controller name="Osc 2 Semitone" l="36" />
+ <Controller name="Osc 2 Detune" l="37" />
+ <Controller name="Osc 2 FM" l="38" />
+ <Controller name="Osc 2 Shape" l="39" />
+ <Controller name="Osc 2 PW" l="40" />
+ <Controller name="Osc 2 PWM" l="41" />
+ <Controller name="Osc 3 Octave" l="42" />
+ <Controller name="Osc 3 Semitone" l="43" />
+ <Controller name="Osc 3 Detune" l="44" />
+ <Controller name="Osc 3 FM" l="45" />
+ <Controller name="Osc 3 Shape" l="46" />
+ <Controller name="Osc 3 PW" l="47" />
+ <Controller name="Osc 3 PWM" l="48" />
+ <Controller name="Sync" l="49" />
+ <Controller name="Pitchmod" l="50" />
+ <Controller name="Glide Mode" l="51" />
+ <Controller name="Osc 1 Level" l="52" />
+ <Controller name="Osc 1 Balance" l="53" />
+ <Controller name="Ringmod Level" l="54" />
+ <Controller name="Ringmod Balance" l="55" />
+ <Controller name="Osc 2 Level" l="56" />
+ <Controller name="Osc 2 Balance" l="57" />
+ <Controller name="Osc 3 Level" l="58" />
+ <Controller name="Osc 3 Balance" l="59" />
+ <Controller name="N/E Level" l="60" />
+ <Controller name="N/E Balance" l="61" />
+ <Controller name="Sustain Pedal" l="64" />
+ <Controller name="Glide Active" l="65" />
+ <Controller name="Sostenuto" l="66" />
+ <Controller name="Routing" l="67" />
+ <Controller name="Filter 1 Type" l="68" />
+ <Controller name="Filter 1 Cutoff" l="69" />
+ <Controller name="Filter 1 Resonance" l="70" />
+ <Controller name="Filter 1 Drive" l="71" />
+ <Controller name="Filter 1 Keytrack" l="72" />
+ <Controller name="Filter 1 Env. Amount" l="73" />
+ <Controller name="Filter 1 Env. Velocity" l="74" />
+ <Controller name="Filter 1 CutoffMod" l="75" />
+ <Controller name="Filter 1 FM" l="76" />
+ <Controller name="Filter 1 Pan" l="77" />
+ <Controller name="Filter 1 PanMod" l="78" />
+ <Controller name="Filter 2 Type" l="79" />
+ <Controller name="Filter 2 Cutoff" l="80" />
+ <Controller name="Filter 2 Resonance" l="81" />
+ <Controller name="Filter 2 Drive" l="82" />
+ <Controller name="Filter 2 Keytrack" l="83" />
+ <Controller name="Filter 2 Env. Amount" l="84" />
+ <Controller name="Filter 2 Env. Velocity" l="85" />
+ <Controller name="Filter 2 CutoffMod" l="86" />
+ <Controller name="Filter 2 FM" l="87" />
+ <Controller name="Filter 2 Pan" l="88" />
+ <Controller name="Filter 2 PanMod" l="89" />
+ <Controller name="Amp Volume" l="90" />
+ <Controller name="Amp Velocity" l="91" />
+ <Controller name="Amp Mod" l="92" />
+ <Controller name="FX 1 Mix" l="93" />
+ <Controller name="FX 2 Mix" l="94" />
+ <Controller name="FE Attack" l="95" />
+ <Controller name="FE Decay" l="96" />
+ <Controller name="FE Sustain" l="97" />
+ <Controller name="FE Decay 2" l="98" />
+ <Controller name="FE Sustain 2" l="99" />
+ <Controller name="FE Release" l="100" />
+ <Controller name="AE Attack" l="101" />
+ <Controller name="AE Decay" l="102" />
+ <Controller name="AE Sustain" l="103" />
+ <Controller name="AE Decay 2" l="104" />
+ <Controller name="AE Sustain 2" l="105" />
+ <Controller name="AE Release" l="106" />
+ <Controller name="E3 Attack" l="107" />
+ <Controller name="E3 Decay" l="108" />
+ <Controller name="E3 Sustain" l="109" />
+ <Controller name="E3 Decay 2" l="110" />
+ <Controller name="E3 Sustain 2" l="111" />
+ <Controller name="E3 Release" l="112" />
+ <Controller name="E4 Attack" l="113" />
+ <Controller name="E4 Decay" l="114" />
+ <Controller name="E4 Sustain" l="115" />
+ <Controller name="E4 Decay 2" l="116" />
+ <Controller name="E4 Sustain 2" l="117" />
+ <Controller name="E4 Release" l="118" />
+ <Controller name="All Sounds Off" l="120" />
+ <Controller name="Reset All Controllers" l="121" />
+ <Controller name="Local Control" l="122" />
+ <Controller name="All Notes Off" l="123" />
+ <Controller name="Pitch" type="Pitch" />
+ <Controller name="Program" type="Program" />
+ </MidiInstrument>
+</muse>
diff --git a/muse2/share/instruments/Waldorf-microQ.idf b/muse2/share/instruments/Waldorf-microQ.idf
new file mode 100644
index 00000000..7545857b
--- /dev/null
+++ b/muse2/share/instruments/Waldorf-microQ.idf
@@ -0,0 +1,552 @@
+<?xml version="1.0"?>
+<muse version="1.0">
+ <MidiInstrument name="Waldorf microQ">
+ <PatchGroup name="Internal Bank A">
+ <Patch name="LosAngeles2019" hbank="0" lbank="0" prog="0" />
+ <Patch name="Rain" hbank="0" lbank="0" prog="1" />
+ <Patch name="Choir 2.0" hbank="0" lbank="0" prog="2" />
+ <Patch name="Zeitlos" hbank="0" lbank="0" prog="3" />
+ <Patch name="Expensive" hbank="0" lbank="0" prog="4" />
+ <Patch name="OBX Purple5" hbank="0" lbank="0" prog="5" />
+ <Patch name="Queen-mom" hbank="0" lbank="0" prog="6" />
+ <Patch name="Juanita" hbank="0" lbank="0" prog="7" />
+ <Patch name="Demolition" hbank="0" lbank="0" prog="8" />
+ <Patch name="The Showroom" hbank="0" lbank="0" prog="9" />
+ <Patch name="Wartofsky" hbank="0" lbank="0" prog="10" />
+ <Patch name="Cut-Verb" hbank="0" lbank="0" prog="11" />
+ <Patch name="Visions of Q" hbank="0" lbank="0" prog="12" />
+ <Patch name="MI5 Pad" hbank="0" lbank="0" prog="13" />
+ <Patch name="Tank Girl" hbank="0" lbank="0" prog="14" />
+ <Patch name="Attacke" hbank="0" lbank="0" prog="15" />
+ <Patch name="11KHz Solo" hbank="0" lbank="0" prog="16" />
+ <Patch name="Ass age:101" hbank="0" lbank="0" prog="17" />
+ <Patch name="Hypnose 2.0" hbank="0" lbank="0" prog="18" />
+ <Patch name="Cleanline 303" hbank="0" lbank="0" prog="19" />
+ <Patch name="www.arp.com" hbank="0" lbank="0" prog="20" />
+ <Patch name="Giedi Prime" hbank="0" lbank="0" prog="21" />
+ <Patch name="Vince Clark 3" hbank="0" lbank="0" prog="22" />
+ <Patch name="Night Flight" hbank="0" lbank="0" prog="23" />
+ <Patch name="EyesWideOpen" hbank="0" lbank="0" prog="24" />
+ <Patch name="Heart Bass FM" hbank="0" lbank="0" prog="25" />
+ <Patch name="Sh-ARP" hbank="0" lbank="0" prog="26" />
+ <Patch name="KrautedHaus" hbank="0" lbank="0" prog="27" />
+ <Patch name="DEF" hbank="0" lbank="0" prog="28" />
+ <Patch name="Kakophonia 1" hbank="0" lbank="0" prog="29" />
+ <Patch name="BackStrings" hbank="0" lbank="0" prog="30" />
+ <Patch name="Flinker" hbank="0" lbank="0" prog="31" />
+ <Patch name="TheWidestEver" hbank="0" lbank="0" prog="32" />
+ <Patch name="DuneSdTrak" hbank="0" lbank="0" prog="33" />
+ <Patch name="PrincessStrgs" hbank="0" lbank="0" prog="34" />
+ <Patch name="Namlooking" hbank="0" lbank="0" prog="35" />
+ <Patch name="Fiftyfive" hbank="0" lbank="0" prog="36" />
+ <Patch name="Liquid Strg" hbank="0" lbank="0" prog="37" />
+ <Patch name="CS100" hbank="0" lbank="0" prog="38" />
+ <Patch name="Enough Power" hbank="0" lbank="0" prog="39" />
+ <Patch name="Alphaville ?!" hbank="0" lbank="0" prog="40" />
+ <Patch name="Breit..." hbank="0" lbank="0" prog="41" />
+ <Patch name="Chord-Hose" hbank="0" lbank="0" prog="42" />
+ <Patch name="Cool Porta" hbank="0" lbank="0" prog="43" />
+ <Patch name="Trennkost" hbank="0" lbank="0" prog="44" />
+ <Patch name="Deep Synth" hbank="0" lbank="0" prog="45" />
+ <Patch name="Sounds BP" hbank="0" lbank="0" prog="46" />
+ <Patch name="SH 2001" hbank="0" lbank="0" prog="47" />
+ <Patch name="Vibro-Hook" hbank="0" lbank="0" prog="48" />
+ <Patch name="Stuermer 2" hbank="0" lbank="0" prog="49" />
+ <Patch name="Killer Bass" hbank="0" lbank="0" prog="50" />
+ <Patch name="707Bass" hbank="0" lbank="0" prog="51" />
+ <Patch name="Narrow" hbank="0" lbank="0" prog="52" />
+ <Patch name="Gum Bass" hbank="0" lbank="0" prog="53" />
+ <Patch name="NoreBass#2" hbank="0" lbank="0" prog="54" />
+ <Patch name="Phalanx Bass" hbank="0" lbank="0" prog="55" />
+ <Patch name="CCCP 70 E" hbank="0" lbank="0" prog="56" />
+ <Patch name="Comb Clavi" hbank="0" lbank="0" prog="57" />
+ <Patch name="FM-Rhodes 1" hbank="0" lbank="0" prog="58" />
+ <Patch name="Shed" hbank="0" lbank="0" prog="59" />
+ <Patch name="Wartz Piano1" hbank="0" lbank="0" prog="60" />
+ <Patch name="Dirty Organ1" hbank="0" lbank="0" prog="61" />
+ <Patch name="Tankin\" hbank="0" lbank="0" prog="62" />
+ <Patch name="Old * Uck" hbank="0" lbank="0" prog="63" />
+ <Patch name="Testosteron" hbank="0" lbank="0" prog="64" />
+ <Patch name="Juno Soul" hbank="0" lbank="0" prog="65" />
+ <Patch name="PEG Horns" hbank="0" lbank="0" prog="66" />
+ <Patch name="Polaris" hbank="0" lbank="0" prog="67" />
+ <Patch name="PrincessBells" hbank="0" lbank="0" prog="68" />
+ <Patch name="Bells" hbank="0" lbank="0" prog="69" />
+ <Patch name="TributeTo DX" hbank="0" lbank="0" prog="70" />
+ <Patch name="DollarBells" hbank="0" lbank="0" prog="71" />
+ <Patch name="Clock+Bells" hbank="0" lbank="0" prog="72" />
+ <Patch name="RainAfterSun" hbank="0" lbank="0" prog="73" />
+ <Patch name="Phazer PWM" hbank="0" lbank="0" prog="74" />
+ <Patch name="Choir Pad" hbank="0" lbank="0" prog="75" />
+ <Patch name="Ultimaterial" hbank="0" lbank="0" prog="76" />
+ <Patch name="Broadway" hbank="0" lbank="0" prog="77" />
+ <Patch name="Dizzyland" hbank="0" lbank="0" prog="78" />
+ <Patch name="WaveDrone" hbank="0" lbank="0" prog="79" />
+ <Patch name="Major Matrix" hbank="0" lbank="0" prog="80" />
+ <Patch name="Pop Melodee" hbank="0" lbank="0" prog="81" />
+ <Patch name="Jp8 TRACER" hbank="0" lbank="0" prog="82" />
+ <Patch name="HornsOfJericho" hbank="0" lbank="0" prog="83" />
+ <Patch name="Meteor" hbank="0" lbank="0" prog="84" />
+ <Patch name="CombTutorial" hbank="0" lbank="0" prog="85" />
+ <Patch name="TschingHisCan" hbank="0" lbank="0" prog="86" />
+ <Patch name="Phazed Chordz" hbank="0" lbank="0" prog="87" />
+ <Patch name="Panreduction" hbank="0" lbank="0" prog="88" />
+ <Patch name="Pluto" hbank="0" lbank="0" prog="89" />
+ <Patch name="One Note BP" hbank="0" lbank="0" prog="90" />
+ <Patch name="Ritual" hbank="0" lbank="0" prog="91" />
+ <Patch name="He\s here!!!" hbank="0" lbank="0" prog="92" />
+ <Patch name="Rubber" hbank="0" lbank="0" prog="93" />
+ <Patch name="Buzzer 3" hbank="0" lbank="0" prog="94" />
+ <Patch name="Sierra Velone" hbank="0" lbank="0" prog="95" />
+ <Patch name="TheQBots" hbank="0" lbank="0" prog="96" />
+ <Patch name="Bassline 3O3" hbank="0" lbank="0" prog="97" />
+ <Patch name="Basssser" hbank="0" lbank="0" prog="98" />
+ <Patch name="Moogish 2" hbank="0" lbank="0" prog="99" />
+ </PatchGroup>
+ <PatchGroup name="Internal Bank B">
+ <Patch name="Jazz Percssn" hbank="0" lbank="1" prog="0" />
+ <Patch name="Wurlitzer104b" hbank="0" lbank="1" prog="1" />
+ <Patch name="Organ #2" hbank="0" lbank="1" prog="2" />
+ <Patch name="Funky Q" hbank="0" lbank="1" prog="3" />
+ <Patch name="Wurlitzer" hbank="0" lbank="1" prog="4" />
+ <Patch name="Ring Sequel" hbank="0" lbank="1" prog="5" />
+ <Patch name="Bellophon" hbank="0" lbank="1" prog="6" />
+ <Patch name="Qvation" hbank="0" lbank="1" prog="7" />
+ <Patch name="Plucked Nylon" hbank="0" lbank="1" prog="8" />
+ <Patch name="Pizzicated" hbank="0" lbank="1" prog="9" />
+ <Patch name="Sonnenaufgang" hbank="0" lbank="1" prog="10" />
+ <Patch name="FilterDenKamm" hbank="0" lbank="1" prog="11" />
+ <Patch name="Qool Water" hbank="0" lbank="1" prog="12" />
+ <Patch name="Dark Strings" hbank="0" lbank="1" prog="13" />
+ <Patch name="Q-Sweep2" hbank="0" lbank="1" prog="14" />
+ <Patch name="Score Edition" hbank="0" lbank="1" prog="15" />
+ <Patch name="Soap" hbank="0" lbank="1" prog="16" />
+ <Patch name="Soft Pad" hbank="0" lbank="1" prog="17" />
+ <Patch name="Wide Saw Pad" hbank="0" lbank="1" prog="18" />
+ <Patch name="FaMtastic" hbank="0" lbank="1" prog="19" />
+ <Patch name="Kiddings" hbank="0" lbank="1" prog="20" />
+ <Patch name="Poor Prophets" hbank="0" lbank="1" prog="21" />
+ <Patch name="LggSit" hbank="0" lbank="1" prog="22" />
+ <Patch name="Like Wool" hbank="0" lbank="1" prog="23" />
+ <Patch name="FlimmerStrings" hbank="0" lbank="1" prog="24" />
+ <Patch name="Padagogy" hbank="0" lbank="1" prog="25" />
+ <Patch name="PhaserStrings" hbank="0" lbank="1" prog="26" />
+ <Patch name="FMBP Sweep" hbank="0" lbank="1" prog="27" />
+ <Patch name="Q-rious?" hbank="0" lbank="1" prog="28" />
+ <Patch name="ProducersPad" hbank="0" lbank="1" prog="29" />
+ <Patch name="FransenHarfe" hbank="0" lbank="1" prog="30" />
+ <Patch name="Western Wind" hbank="0" lbank="1" prog="31" />
+ <Patch name="Giga Prune" hbank="0" lbank="1" prog="32" />
+ <Patch name="Acostic Glue" hbank="0" lbank="1" prog="33" />
+ <Patch name="Chor 16\" hbank="0" lbank="1" prog="34" />
+ <Patch name="JMX vs. DeLeon" hbank="0" lbank="1" prog="35" />
+ <Patch name="HighpassFixer" hbank="0" lbank="1" prog="36" />
+ <Patch name="Kl0ppelspitze" hbank="0" lbank="1" prog="37" />
+ <Patch name="Mono Sync" hbank="0" lbank="1" prog="38" />
+ <Patch name="MurkSolo" hbank="0" lbank="1" prog="39" />
+ <Patch name="Cry Baby" hbank="0" lbank="1" prog="40" />
+ <Patch name="VintageSpring" hbank="0" lbank="1" prog="41" />
+ <Patch name="Liquid Mel" hbank="0" lbank="1" prog="42" />
+ <Patch name="Zombie Nation" hbank="0" lbank="1" prog="43" />
+ <Patch name="PWMaster" hbank="0" lbank="1" prog="44" />
+ <Patch name="Qliniqs !!!" hbank="0" lbank="1" prog="45" />
+ <Patch name="Quintage" hbank="0" lbank="1" prog="46" />
+ <Patch name="Up And Down" hbank="0" lbank="1" prog="47" />
+ <Patch name="Siegessaeule" hbank="0" lbank="1" prog="48" />
+ <Patch name="Saw Lead" hbank="0" lbank="1" prog="49" />
+ <Patch name="Schubduese" hbank="0" lbank="1" prog="50" />
+ <Patch name="Sparkle Solo" hbank="0" lbank="1" prog="51" />
+ <Patch name="TQ 303" hbank="0" lbank="1" prog="52" />
+ <Patch name="Phat Beat" hbank="0" lbank="1" prog="53" />
+ <Patch name="Moany" hbank="0" lbank="1" prog="54" />
+ <Patch name="Naap! 3" hbank="0" lbank="1" prog="55" />
+ <Patch name="Matrone" hbank="0" lbank="1" prog="56" />
+ <Patch name="Tiny Solo" hbank="0" lbank="1" prog="57" />
+ <Patch name="TuBerkel" hbank="0" lbank="1" prog="58" />
+ <Patch name="Wells\Tripod" hbank="0" lbank="1" prog="59" />
+ <Patch name="Crunchy Nuts" hbank="0" lbank="1" prog="60" />
+ <Patch name="Aggreppo" hbank="0" lbank="1" prog="61" />
+ <Patch name="Tsching Lead" hbank="0" lbank="1" prog="62" />
+ <Patch name="Compromise K" hbank="0" lbank="1" prog="63" />
+ <Patch name="Pressure Drive" hbank="0" lbank="1" prog="64" />
+ <Patch name="Freaky Syncro" hbank="0" lbank="1" prog="65" />
+ <Patch name="No Drive3" hbank="0" lbank="1" prog="66" />
+ <Patch name="Juno Sound" hbank="0" lbank="1" prog="67" />
+ <Patch name="DropBass 2001" hbank="0" lbank="1" prog="68" />
+ <Patch name="Knurrhahn" hbank="0" lbank="1" prog="69" />
+ <Patch name="Bass-Turbation" hbank="0" lbank="1" prog="70" />
+ <Patch name="Pulse Bass 1" hbank="0" lbank="1" prog="71" />
+ <Patch name="Pulse P.41" hbank="0" lbank="1" prog="72" />
+ <Patch name="PWM ResoBass" hbank="0" lbank="1" prog="73" />
+ <Patch name="NoreBass#5" hbank="0" lbank="1" prog="74" />
+ <Patch name="NoreBass#7" hbank="0" lbank="1" prog="75" />
+ <Patch name="Q-Bass" hbank="0" lbank="1" prog="76" />
+ <Patch name="Sawproof Bass" hbank="0" lbank="1" prog="77" />
+ <Patch name="NoAttackBass" hbank="0" lbank="1" prog="78" />
+ <Patch name="Occybas" hbank="0" lbank="1" prog="79" />
+ <Patch name="Deep Bass 9" hbank="0" lbank="1" prog="80" />
+ <Patch name="FM SmurfBs" hbank="0" lbank="1" prog="81" />
+ <Patch name="Conehead 1" hbank="0" lbank="1" prog="82" />
+ <Patch name="Buzzer" hbank="0" lbank="1" prog="83" />
+ <Patch name="FilterFM Bass" hbank="0" lbank="1" prog="84" />
+ <Patch name="Dust Brothers" hbank="0" lbank="1" prog="85" />
+ <Patch name="Q Visions" hbank="0" lbank="1" prog="86" />
+ <Patch name="Love Van Dyke" hbank="0" lbank="1" prog="87" />
+ <Patch name="Diana-01" hbank="0" lbank="1" prog="88" />
+ <Patch name="Alt Wave ArP" hbank="0" lbank="1" prog="89" />
+ <Patch name="Torment" hbank="0" lbank="1" prog="90" />
+ <Patch name="Tranceomania" hbank="0" lbank="1" prog="91" />
+ <Patch name="Waver" hbank="0" lbank="1" prog="92" />
+ <Patch name="hARPo" hbank="0" lbank="1" prog="93" />
+ <Patch name="GeeGaGooQ" hbank="0" lbank="1" prog="94" />
+ <Patch name="Limbo" hbank="0" lbank="1" prog="95" />
+ <Patch name="Philicorda2" hbank="0" lbank="1" prog="96" />
+ <Patch name="DanceSequence" hbank="0" lbank="1" prog="97" />
+ <Patch name="DeviantSerge" hbank="0" lbank="1" prog="98" />
+ <Patch name="Furby Arp" hbank="0" lbank="1" prog="99" />
+ </PatchGroup>
+ <PatchGroup name="Internal Bank C">
+ <Patch name="The Beginning" hbank="0" lbank="2" prog="0" />
+ <Patch name="Atmotion" hbank="0" lbank="2" prog="1" />
+ <Patch name="VeryCompleqs" hbank="0" lbank="2" prog="2" />
+ <Patch name="Brightseite" hbank="0" lbank="2" prog="3" />
+ <Patch name="TheDarkPlanet" hbank="0" lbank="2" prog="4" />
+ <Patch name="Q Tables" hbank="0" lbank="2" prog="5" />
+ <Patch name="Trance-Port" hbank="0" lbank="2" prog="6" />
+ <Patch name="Slow Wavetrip" hbank="0" lbank="2" prog="7" />
+ <Patch name="PDQ ;-) WT13" hbank="0" lbank="2" prog="8" />
+ <Patch name="Tranquilizer" hbank="0" lbank="2" prog="9" />
+ <Patch name="S+H+Pad+Nice" hbank="0" lbank="2" prog="10" />
+ <Patch name="Arctica" hbank="0" lbank="2" prog="11" />
+ <Patch name="The BORG" hbank="0" lbank="2" prog="12" />
+ <Patch name="Deep Space" hbank="0" lbank="2" prog="13" />
+ <Patch name="Kairos" hbank="0" lbank="2" prog="14" />
+ <Patch name="The Fog" hbank="0" lbank="2" prog="15" />
+ <Patch name="HellsbugsIntro" hbank="0" lbank="2" prog="16" />
+ <Patch name="feel WAVE" hbank="0" lbank="2" prog="17" />
+ <Patch name="VocodaBass" hbank="0" lbank="2" prog="18" />
+ <Patch name="Maschinenraum" hbank="0" lbank="2" prog="19" />
+ <Patch name="Animals" hbank="0" lbank="2" prog="20" />
+ <Patch name="Tire-Guy" hbank="0" lbank="2" prog="21" />
+ <Patch name="Spiders2001" hbank="0" lbank="2" prog="22" />
+ <Patch name="Waterfone2001" hbank="0" lbank="2" prog="23" />
+ <Patch name="BD-Q0Q" hbank="0" lbank="2" prog="24" />
+ <Patch name="Electric Drum" hbank="0" lbank="2" prog="25" />
+ <Patch name="Bee Drum" hbank="0" lbank="2" prog="26" />
+ <Patch name="909 Kick 1" hbank="0" lbank="2" prog="27" />
+ <Patch name="909 Kick 2" hbank="0" lbank="2" prog="28" />
+ <Patch name="Q 808" hbank="0" lbank="2" prog="29" />
+ <Patch name="ClipDrum" hbank="0" lbank="2" prog="30" />
+ <Patch name="House Kick" hbank="0" lbank="2" prog="31" />
+ <Patch name="Techno Kick" hbank="0" lbank="2" prog="32" />
+ <Patch name="Linniskus" hbank="0" lbank="2" prog="33" />
+ <Patch name="El Snare 1" hbank="0" lbank="2" prog="34" />
+ <Patch name="E-Snare 2" hbank="0" lbank="2" prog="35" />
+ <Patch name="Fast Snare" hbank="0" lbank="2" prog="36" />
+ <Patch name="808 Snare 1" hbank="0" lbank="2" prog="37" />
+ <Patch name="808 Snare 2" hbank="0" lbank="2" prog="38" />
+ <Patch name="Thin Snare" hbank="0" lbank="2" prog="39" />
+ <Patch name="Snare 1" hbank="0" lbank="2" prog="40" />
+ <Patch name="Snare 2" hbank="0" lbank="2" prog="41" />
+ <Patch name="Metalic Snare" hbank="0" lbank="2" prog="42" />
+ <Patch name="SimmonsSnare" hbank="0" lbank="2" prog="43" />
+ <Patch name="Reso Snare" hbank="0" lbank="2" prog="44" />
+ <Patch name="Noisy Snare" hbank="0" lbank="2" prog="45" />
+ <Patch name="ClapsMuehle" hbank="0" lbank="2" prog="46" />
+ <Patch name="Claps Rev" hbank="0" lbank="2" prog="47" />
+ <Patch name="Claps 1" hbank="0" lbank="2" prog="48" />
+ <Patch name="Claps 2" hbank="0" lbank="2" prog="49" />
+ <Patch name="Claps 3" hbank="0" lbank="2" prog="50" />
+ <Patch name="High Head" hbank="0" lbank="2" prog="51" />
+ <Patch name="HH Closed 2" hbank="0" lbank="2" prog="52" />
+ <Patch name="Band Hihat" hbank="0" lbank="2" prog="53" />
+ <Patch name="www.hihat.com" hbank="0" lbank="2" prog="54" />
+ <Patch name="Heavy HiHat" hbank="0" lbank="2" prog="55" />
+ <Patch name="El HiHat op" hbank="0" lbank="2" prog="56" />
+ <Patch name="Open HiHat" hbank="0" lbank="2" prog="57" />
+ <Patch name="HH Open" hbank="0" lbank="2" prog="58" />
+ <Patch name="TR66 Sidestk" hbank="0" lbank="2" prog="59" />
+ <Patch name="Tom Lo" hbank="0" lbank="2" prog="60" />
+ <Patch name="Tom Hi" hbank="0" lbank="2" prog="61" />
+ <Patch name="Tom Mid" hbank="0" lbank="2" prog="62" />
+ <Patch name="Tympani" hbank="0" lbank="2" prog="63" />
+ <Patch name="LoFi Perc" hbank="0" lbank="2" prog="64" />
+ <Patch name="Shot 1" hbank="0" lbank="2" prog="65" />
+ <Patch name="African Perc." hbank="0" lbank="2" prog="66" />
+ <Patch name="Peer Cussion" hbank="0" lbank="2" prog="67" />
+ <Patch name="Percy Noises" hbank="0" lbank="2" prog="68" />
+ <Patch name="Strom" hbank="0" lbank="2" prog="69" />
+ <Patch name="Tron Ring Game" hbank="0" lbank="2" prog="70" />
+ <Patch name="Eperc A" hbank="0" lbank="2" prog="71" />
+ <Patch name="Fat Zaps" hbank="0" lbank="2" prog="72" />
+ <Patch name="Zap Snap" hbank="0" lbank="2" prog="73" />
+ <Patch name="FM Noises" hbank="0" lbank="2" prog="74" />
+ <Patch name="LFO Speeddwn" hbank="0" lbank="2" prog="75" />
+ <Patch name="LFO Speedup" hbank="0" lbank="2" prog="76" />
+ <Patch name="No Way!" hbank="0" lbank="2" prog="77" />
+ <Patch name="Flash" hbank="0" lbank="2" prog="78" />
+ <Patch name="Chinese Gong" hbank="0" lbank="2" prog="79" />
+ <Patch name="Quiro" hbank="0" lbank="2" prog="80" />
+ <Patch name="Shattering FX" hbank="0" lbank="2" prog="81" />
+ <Patch name="Tribbles" hbank="0" lbank="2" prog="82" />
+ <Patch name="Star Trek 1" hbank="0" lbank="2" prog="83" />
+ <Patch name="Star Wars" hbank="0" lbank="2" prog="84" />
+ <Patch name="Lenco Clean" hbank="0" lbank="2" prog="85" />
+ <Patch name="ZeitlosVocoder" hbank="0" lbank="2" prog="86" />
+ <Patch name="Comb+/-Vocoder" hbank="0" lbank="2" prog="87" />
+ <Patch name="FM Vocoder" hbank="0" lbank="2" prog="88" />
+ <Patch name="Crazy Vocoder" hbank="0" lbank="2" prog="89" />
+ <Patch name="Dr. Vocoder" hbank="0" lbank="2" prog="90" />
+ <Patch name="VocoderStrings" hbank="0" lbank="2" prog="91" />
+ <Patch name="Arp+Voc=???" hbank="0" lbank="2" prog="92" />
+ <Patch name="Ext.Input FX" hbank="0" lbank="2" prog="93" />
+ <Patch name="Ext.InputCrazy" hbank="0" lbank="2" prog="94" />
+ <Patch name="Arp Init" hbank="0" lbank="2" prog="95" />
+ <Patch name="Bass Init" hbank="0" lbank="2" prog="96" />
+ <Patch name="Lead Init" hbank="0" lbank="2" prog="97" />
+ <Patch name="Pad Init" hbank="0" lbank="2" prog="98" />
+ <Patch name="Init Sound 2.0" hbank="0" lbank="2" prog="99" />
+ </PatchGroup>
+ <PatchGroup name="Drums Bank D">
+ <Patch name="Techno Set" hbank="0" lbank="4" prog="0" />
+ <Patch name="Bass Drums" hbank="0" lbank="4" prog="1" />
+ <Patch name="Snares+Claps" hbank="0" lbank="4" prog="2" />
+ <Patch name="HiHats+Percs" hbank="0" lbank="4" prog="3" />
+ <Patch name="Electro Set" hbank="0" lbank="4" prog="4" />
+ <Patch name="StenzMap" hbank="0" lbank="4" prog="5" />
+ <Patch name="Atmo Map" hbank="0" lbank="4" prog="6" />
+ <Patch name="Init Drummap 2.0" hbank="0" lbank="4" prog="7" />
+ <Patch name="Init Drummap 2.0" hbank="0" lbank="4" prog="8" />
+ <Patch name="Init Drummap 2.0" hbank="0" lbank="4" prog="9" />
+ <Patch name="Init Drummap 2.0" hbank="0" lbank="4" prog="10" />
+ <Patch name="Init Drummap 2.0" hbank="0" lbank="4" prog="11" />
+ <Patch name="Init Drummap 2.0" hbank="0" lbank="4" prog="12" />
+ <Patch name="Init Drummap 2.0" hbank="0" lbank="4" prog="13" />
+ <Patch name="Init Drummap 2.0" hbank="0" lbank="4" prog="14" />
+ <Patch name="Init Drummap 2.0" hbank="0" lbank="4" prog="15" />
+ <Patch name="Init Drummap 2.0" hbank="0" lbank="4" prog="16" />
+ <Patch name="Init Drummap 2.0" hbank="0" lbank="4" prog="17" />
+ <Patch name="Init Drummap 2.0" hbank="0" lbank="4" prog="18" />
+ <Patch name="Init Drummap 2.0" hbank="0" lbank="4" prog="19" />
+ </PatchGroup>
+ <PatchGroup name="Internal Bank Multi">
+ <Patch name="Venice Beach" hbank="0" lbank="104" prog="0" />
+ <Patch name="Arp Chaos" hbank="0" lbank="104" prog="1" />
+ <Patch name="Sinzig/Rhein" hbank="0" lbank="104" prog="2" />
+ <Patch name="Choral" hbank="0" lbank="104" prog="3" />
+ <Patch name="Zimmer Score" hbank="0" lbank="104" prog="4" />
+ <Patch name="Movement" hbank="0" lbank="104" prog="5" />
+ <Patch name="Kakophonie" hbank="0" lbank="104" prog="6" />
+ <Patch name="20111973" hbank="0" lbank="104" prog="7" />
+ <Patch name="Now Play Me!" hbank="0" lbank="104" prog="8" />
+ <Patch name="Stakkatak" hbank="0" lbank="104" prog="9" />
+ <Patch name="Tshingding" hbank="0" lbank="104" prog="10" />
+ <Patch name="My Dream" hbank="0" lbank="104" prog="11" />
+ <Patch name="Slow Mov" hbank="0" lbank="104" prog="12" />
+ <Patch name="Superpad" hbank="0" lbank="104" prog="13" />
+ <Patch name="At The Movies" hbank="0" lbank="104" prog="14" />
+ <Patch name="Sequencer Multi" hbank="0" lbank="104" prog="15" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="16" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="17" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="18" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="19" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="20" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="21" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="22" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="23" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="24" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="25" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="26" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="27" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="28" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="29" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="30" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="31" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="32" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="33" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="34" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="35" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="36" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="37" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="38" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="39" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="40" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="41" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="42" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="43" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="44" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="45" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="46" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="47" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="48" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="49" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="50" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="51" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="52" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="53" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="54" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="55" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="56" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="57" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="58" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="59" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="60" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="61" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="62" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="63" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="64" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="65" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="66" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="67" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="68" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="69" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="70" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="71" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="72" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="73" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="74" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="75" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="76" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="77" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="78" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="79" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="80" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="81" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="82" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="83" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="84" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="85" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="86" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="87" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="88" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="89" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="90" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="91" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="92" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="93" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="94" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="95" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="96" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="97" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="98" />
+ <Patch name="Free Multi V1.0" hbank="0" lbank="104" prog="99" />
+ </PatchGroup>
+ <Controller name="Modulation" l="1" />
+ <Controller name="Breath Control" l="2" />
+ <Controller name="Foot Control" l="4" />
+ <Controller name="PortamentoTime" l="5" />
+ <Controller name="MainVolume" l="7" init="100" />
+ <Controller name="Pan" l="10" min="-64" max="63" init="0" />
+ <Controller name="Arp Range" l="12" />
+ <Controller name="Arp Length" l="13" />
+ <Controller name="Arp Active" l="14" />
+ <Controller name="Lfo 1 Shape" l="15" />
+ <Controller name="Lfo 1 Speed" l="16" />
+ <Controller name="Lfo 1 Sync" l="17" />
+ <Controller name="Lfo 1 Delay" l="18" />
+ <Controller name="Lfo 2 Shape" l="19" />
+ <Controller name="Lfo 2 Speed" l="20" />
+ <Controller name="Lfo 2 Sync" l="21" />
+ <Controller name="Lfo 2 Delay" l="22" />
+ <Controller name="Lfo 3 Shape" l="23" />
+ <Controller name="Lfo 3 Speed" l="24" />
+ <Controller name="Lfo 3 Sync" l="25" />
+ <Controller name="Lfo 3 Delay" l="26" />
+ <Controller name="Osc 1 Octave" l="27" />
+ <Controller name="Osc 1 Semitone" l="28" />
+ <Controller name="Osc 1 Detune" l="29" />
+ <Controller name="Osc 1 FM" l="30" />
+ <Controller name="Osc 1 Shape" l="31" />
+ <Controller name="Bank Select LSB" l="32" />
+ <Controller name="Osc 1 PW" l="33" />
+ <Controller name="Osc 1 PWM" l="34" />
+ <Controller name="Osc 2 Octave" l="35" />
+ <Controller name="Osc 2 Semitone" l="36" />
+ <Controller name="Osc 2 Detune" l="37" />
+ <Controller name="Osc 2 FM" l="38" />
+ <Controller name="Osc 2 Shape" l="39" />
+ <Controller name="Osc 2 PW" l="40" />
+ <Controller name="Osc 2 PWM" l="41" />
+ <Controller name="Osc 3 Octave" l="42" />
+ <Controller name="Osc 3 Semitone" l="43" />
+ <Controller name="Osc 3 Detune" l="44" />
+ <Controller name="Osc 3 FM" l="45" />
+ <Controller name="Osc 3 Shape" l="46" />
+ <Controller name="Osc 3 PW" l="47" />
+ <Controller name="Osc 3 PWM" l="48" />
+ <Controller name="Sync" l="49" />
+ <Controller name="Pitchmod" l="50" />
+ <Controller name="Glide Mode" l="51" />
+ <Controller name="Osc 1 Level" l="52" />
+ <Controller name="Osc 1 Balance" l="53" />
+ <Controller name="Ringmod Level" l="54" />
+ <Controller name="Ringmod Balance" l="55" />
+ <Controller name="Osc 2 Level" l="56" />
+ <Controller name="Osc 2 Balance" l="57" />
+ <Controller name="Osc 3 Level" l="58" />
+ <Controller name="Osc 3 Balance" l="59" />
+ <Controller name="N/E Level" l="60" />
+ <Controller name="N/E Balance" l="61" />
+ <Controller name="Sustain Pedal" l="64" />
+ <Controller name="Glide Active" l="65" />
+ <Controller name="Sostenuto" l="66" />
+ <Controller name="Routing" l="67" />
+ <Controller name="Filter 1 Type" l="68" />
+ <Controller name="Filter 1 Cutoff" l="69" />
+ <Controller name="Filter 1 Resonance" l="70" />
+ <Controller name="Filter 1 Drive" l="71" />
+ <Controller name="Filter 1 Keytrack" l="72" />
+ <Controller name="Filter 1 Env. Amount" l="73" />
+ <Controller name="Filter 1 Env. Velocity" l="74" />
+ <Controller name="Filter 1 CutoffMod" l="75" />
+ <Controller name="Filter 1 FM" l="76" />
+ <Controller name="Filter 1 Pan" l="77" />
+ <Controller name="Filter 1 PanMod" l="78" />
+ <Controller name="Filter 2 Type" l="79" />
+ <Controller name="Filter 2 Cutoff" l="80" />
+ <Controller name="Filter 2 Resonance" l="81" />
+ <Controller name="Filter 2 Drive" l="82" />
+ <Controller name="Filter 2 Keytrack" l="83" />
+ <Controller name="Filter 2 Env. Amount" l="84" />
+ <Controller name="Filter 2 Env. Velocity" l="85" />
+ <Controller name="Filter 2 CutoffMod" l="86" />
+ <Controller name="Filter 2 FM" l="87" />
+ <Controller name="Filter 2 Pan" l="88" />
+ <Controller name="Filter 2 PanMod" l="89" />
+ <Controller name="Amp Volume" l="90" />
+ <Controller name="Amp Velocity" l="91" />
+ <Controller name="Amp Mod" l="92" />
+ <Controller name="FX 1 Mix" l="93" />
+ <Controller name="FX 2 Mix" l="94" />
+ <Controller name="FE Attack" l="95" />
+ <Controller name="FE Decay" l="96" />
+ <Controller name="FE Sustain" l="97" />
+ <Controller name="FE Decay 2" l="98" />
+ <Controller name="FE Sustain 2" l="99" />
+ <Controller name="FE Release" l="100" />
+ <Controller name="AE Attack" l="101" />
+ <Controller name="AE Decay" l="102" />
+ <Controller name="AE Sustain" l="103" />
+ <Controller name="AE Decay 2" l="104" />
+ <Controller name="AE Sustain 2" l="105" />
+ <Controller name="AE Release" l="106" />
+ <Controller name="E3 Attack" l="107" />
+ <Controller name="E3 Decay" l="108" />
+ <Controller name="E3 Sustain" l="109" />
+ <Controller name="E3 Decay 2" l="110" />
+ <Controller name="E3 Sustain 2" l="111" />
+ <Controller name="E3 Release" l="112" />
+ <Controller name="E4 Attack" l="113" />
+ <Controller name="E4 Decay" l="114" />
+ <Controller name="E4 Sustain" l="115" />
+ <Controller name="E4 Decay 2" l="116" />
+ <Controller name="E4 Sustain 2" l="117" />
+ <Controller name="E4 Release" l="118" />
+ <Controller name="All Sounds Off" l="120" />
+ <Controller name="Reset All Controllers" l="121" />
+ <Controller name="Local Control" l="122" />
+ <Controller name="All Notes Off" l="123" />
+ <Controller name="Pitch" type="Pitch" />
+ <Controller name="Program" type="Program" />
+ </MidiInstrument>
+</muse>
diff --git a/muse2/share/instruments/Waldorf_Microwave-I.idf b/muse2/share/instruments/Waldorf_Microwave-I.idf
new file mode 100644
index 00000000..4b953fc2
--- /dev/null
+++ b/muse2/share/instruments/Waldorf_Microwave-I.idf
@@ -0,0 +1,142 @@
+<?xml version="1.0"?>
+<muse version="1.0">
+ <MidiInstrument name="Waldorf Microwave I">
+ <PatchGroup name="Internal Bank A">
+ <Patch name="A 01" hbank="0" lbank="0" prog="0" />
+ <Patch name="A 02" hbank="0" lbank="0" prog="1" />
+ <Patch name="A 03" hbank="0" lbank="0" prog="2" />
+ <Patch name="A 04" hbank="0" lbank="0" prog="3" />
+ <Patch name="A 05" hbank="0" lbank="0" prog="4" />
+ <Patch name="A 06" hbank="0" lbank="0" prog="5" />
+ <Patch name="A 07" hbank="0" lbank="0" prog="6" />
+ <Patch name="A 08" hbank="0" lbank="0" prog="7" />
+ <Patch name="A 09" hbank="0" lbank="0" prog="8" />
+ <Patch name="A 10" hbank="0" lbank="0" prog="9" />
+ <Patch name="A 11" hbank="0" lbank="0" prog="10" />
+ <Patch name="A 12" hbank="0" lbank="0" prog="11" />
+ <Patch name="A 13" hbank="0" lbank="0" prog="12" />
+ <Patch name="A 14" hbank="0" lbank="0" prog="13" />
+ <Patch name="A 15" hbank="0" lbank="0" prog="14" />
+ <Patch name="A 16" hbank="0" lbank="0" prog="15" />
+ <Patch name="A 17" hbank="0" lbank="0" prog="16" />
+ <Patch name="A 18" hbank="0" lbank="0" prog="17" />
+ <Patch name="A 19" hbank="0" lbank="0" prog="18" />
+ <Patch name="A 20" hbank="0" lbank="0" prog="19" />
+ <Patch name="A 21" hbank="0" lbank="0" prog="20" />
+ <Patch name="A 22" hbank="0" lbank="0" prog="21" />
+ <Patch name="A 23" hbank="0" lbank="0" prog="22" />
+ <Patch name="A 24" hbank="0" lbank="0" prog="23" />
+ <Patch name="A 25" hbank="0" lbank="0" prog="24" />
+ <Patch name="A 26" hbank="0" lbank="0" prog="25" />
+ <Patch name="A 27" hbank="0" lbank="0" prog="26" />
+ <Patch name="A 28" hbank="0" lbank="0" prog="27" />
+ <Patch name="A 29" hbank="0" lbank="0" prog="28" />
+ <Patch name="A 30" hbank="0" lbank="0" prog="29" />
+ <Patch name="A 31" hbank="0" lbank="0" prog="30" />
+ <Patch name="A 32" hbank="0" lbank="0" prog="31" />
+ </PatchGroup>
+ <PatchGroup name="Internal Bank B">
+ <Patch name="B 01" hbank="0" lbank="0" prog="32" />
+ <Patch name="B 02" hbank="0" lbank="0" prog="33" />
+ <Patch name="B 03" hbank="0" lbank="0" prog="34" />
+ <Patch name="B 04" hbank="0" lbank="0" prog="35" />
+ <Patch name="B 05" hbank="0" lbank="0" prog="36" />
+ <Patch name="B 06" hbank="0" lbank="0" prog="37" />
+ <Patch name="B 07" hbank="0" lbank="0" prog="38" />
+ <Patch name="B 08" hbank="0" lbank="0" prog="39" />
+ <Patch name="B 09" hbank="0" lbank="0" prog="40" />
+ <Patch name="B 10" hbank="0" lbank="0" prog="41" />
+ <Patch name="B 11" hbank="0" lbank="0" prog="42" />
+ <Patch name="B 12" hbank="0" lbank="0" prog="43" />
+ <Patch name="B 13" hbank="0" lbank="0" prog="44" />
+ <Patch name="B 14" hbank="0" lbank="0" prog="45" />
+ <Patch name="B 15" hbank="0" lbank="0" prog="46" />
+ <Patch name="B 16" hbank="0" lbank="0" prog="47" />
+ <Patch name="B 17" hbank="0" lbank="0" prog="48" />
+ <Patch name="B 18" hbank="0" lbank="0" prog="49" />
+ <Patch name="B 19" hbank="0" lbank="0" prog="50" />
+ <Patch name="B 20" hbank="0" lbank="0" prog="51" />
+ <Patch name="B 21" hbank="0" lbank="0" prog="52" />
+ <Patch name="B 22" hbank="0" lbank="0" prog="53" />
+ <Patch name="B 23" hbank="0" lbank="0" prog="54" />
+ <Patch name="B 24" hbank="0" lbank="0" prog="55" />
+ <Patch name="B 25" hbank="0" lbank="0" prog="56" />
+ <Patch name="B 26" hbank="0" lbank="0" prog="57" />
+ <Patch name="B 27" hbank="0" lbank="0" prog="58" />
+ <Patch name="B 28" hbank="0" lbank="0" prog="59" />
+ <Patch name="B 29" hbank="0" lbank="0" prog="60" />
+ <Patch name="B 30" hbank="0" lbank="0" prog="61" />
+ <Patch name="B 31" hbank="0" lbank="0" prog="62" />
+ <Patch name="B 32" hbank="0" lbank="0" prog="63" />
+ </PatchGroup>
+ <PatchGroup name="Card Bank C">
+ <Patch name="C 01" hbank="0" lbank="0" prog="64" />
+ <Patch name="C 02" hbank="0" lbank="0" prog="65" />
+ <Patch name="C 03" hbank="0" lbank="0" prog="66" />
+ <Patch name="C 04" hbank="0" lbank="0" prog="67" />
+ <Patch name="C 05" hbank="0" lbank="0" prog="68" />
+ <Patch name="C 06" hbank="0" lbank="0" prog="69" />
+ <Patch name="C 07" hbank="0" lbank="0" prog="70" />
+ <Patch name="C 08" hbank="0" lbank="0" prog="71" />
+ <Patch name="C 09" hbank="0" lbank="0" prog="72" />
+ <Patch name="C 10" hbank="0" lbank="0" prog="73" />
+ <Patch name="C 11" hbank="0" lbank="0" prog="74" />
+ <Patch name="C 12" hbank="0" lbank="0" prog="75" />
+ <Patch name="C 13" hbank="0" lbank="0" prog="76" />
+ <Patch name="C 14" hbank="0" lbank="0" prog="77" />
+ <Patch name="C 15" hbank="0" lbank="0" prog="78" />
+ <Patch name="C 16" hbank="0" lbank="0" prog="79" />
+ <Patch name="C 17" hbank="0" lbank="0" prog="80" />
+ <Patch name="C 18" hbank="0" lbank="0" prog="81" />
+ <Patch name="C 19" hbank="0" lbank="0" prog="82" />
+ <Patch name="C 20" hbank="0" lbank="0" prog="83" />
+ <Patch name="C 21" hbank="0" lbank="0" prog="84" />
+ <Patch name="C 22" hbank="0" lbank="0" prog="85" />
+ <Patch name="C 23" hbank="0" lbank="0" prog="86" />
+ <Patch name="C 24" hbank="0" lbank="0" prog="87" />
+ <Patch name="C 25" hbank="0" lbank="0" prog="88" />
+ <Patch name="C 26" hbank="0" lbank="0" prog="89" />
+ <Patch name="C 27" hbank="0" lbank="0" prog="90" />
+ <Patch name="C 28" hbank="0" lbank="0" prog="91" />
+ <Patch name="C 29" hbank="0" lbank="0" prog="92" />
+ <Patch name="C 30" hbank="0" lbank="0" prog="93" />
+ <Patch name="C 31" hbank="0" lbank="0" prog="94" />
+ <Patch name="C 32" hbank="0" lbank="0" prog="95" />
+ </PatchGroup>
+ <PatchGroup name="Card Bank D">
+ <Patch name="D 01" hbank="0" lbank="0" prog="96" />
+ <Patch name="D 02" hbank="0" lbank="0" prog="97" />
+ <Patch name="D 03" hbank="0" lbank="0" prog="98" />
+ <Patch name="D 04" hbank="0" lbank="0" prog="99" />
+ <Patch name="D 05" hbank="0" lbank="0" prog="100" />
+ <Patch name="D 06" hbank="0" lbank="0" prog="101" />
+ <Patch name="D 07" hbank="0" lbank="0" prog="102" />
+ <Patch name="D 08" hbank="0" lbank="0" prog="103" />
+ <Patch name="D 09" hbank="0" lbank="0" prog="104" />
+ <Patch name="D 10" hbank="0" lbank="0" prog="105" />
+ <Patch name="D 11" hbank="0" lbank="0" prog="106" />
+ <Patch name="D 12" hbank="0" lbank="0" prog="107" />
+ <Patch name="D 13" hbank="0" lbank="0" prog="108" />
+ <Patch name="D 14" hbank="0" lbank="0" prog="109" />
+ <Patch name="D 15" hbank="0" lbank="0" prog="110" />
+ <Patch name="D 16" hbank="0" lbank="0" prog="111" />
+ <Patch name="D 17" hbank="0" lbank="0" prog="112" />
+ <Patch name="D 18" hbank="0" lbank="0" prog="113" />
+ <Patch name="D 19" hbank="0" lbank="0" prog="114" />
+ <Patch name="D 20" hbank="0" lbank="0" prog="115" />
+ <Patch name="D 21" hbank="0" lbank="0" prog="116" />
+ <Patch name="D 22" hbank="0" lbank="0" prog="117" />
+ <Patch name="D 23" hbank="0" lbank="0" prog="118" />
+ <Patch name="D 24" hbank="0" lbank="0" prog="119" />
+ <Patch name="D 25" hbank="0" lbank="0" prog="120" />
+ <Patch name="D 26" hbank="0" lbank="0" prog="121" />
+ <Patch name="D 27" hbank="0" lbank="0" prog="122" />
+ <Patch name="D 28" hbank="0" lbank="0" prog="123" />
+ <Patch name="D 29" hbank="0" lbank="0" prog="124" />
+ <Patch name="D 30" hbank="0" lbank="0" prog="125" />
+ <Patch name="D 31" hbank="0" lbank="0" prog="126" />
+ <Patch name="D 32" hbank="0" lbank="0" prog="127" />
+ </PatchGroup>
+ <Controller name="Program" type="Program" />
+ </MidiInstrument>
+</muse>
diff --git a/muse2/share/instruments/Yamaha-01v.idf b/muse2/share/instruments/Yamaha-01v.idf
new file mode 100644
index 00000000..06826594
--- /dev/null
+++ b/muse2/share/instruments/Yamaha-01v.idf
@@ -0,0 +1,219 @@
+<?xml version="1.0"?>
+<muse version="1.0">
+ <MidiInstrument name="Yamaha 01v">
+ <PatchGroup name="Internal Bank A">
+ <Patch name="00 init Data" hbank="0" lbank="0" prog="99" />
+ <Patch name="01" hbank="0" lbank="0" prog="0" />
+ <Patch name="02" hbank="0" lbank="0" prog="1" />
+ <Patch name="03" hbank="0" lbank="0" prog="2" />
+ <Patch name="04" hbank="0" lbank="0" prog="3" />
+ <Patch name="05" hbank="0" lbank="0" prog="4" />
+ <Patch name="06" hbank="0" lbank="0" prog="5" />
+ <Patch name="07" hbank="0" lbank="0" prog="6" />
+ <Patch name="08" hbank="0" lbank="0" prog="7" />
+ <Patch name="09" hbank="0" lbank="0" prog="8" />
+ <Patch name="10" hbank="0" lbank="0" prog="9" />
+ <Patch name="11" hbank="0" lbank="0" prog="10" />
+ <Patch name="12" hbank="0" lbank="0" prog="11" />
+ <Patch name="13" hbank="0" lbank="0" prog="12" />
+ <Patch name="14" hbank="0" lbank="0" prog="13" />
+ <Patch name="15" hbank="0" lbank="0" prog="14" />
+ <Patch name="16" hbank="0" lbank="0" prog="15" />
+ <Patch name="17" hbank="0" lbank="0" prog="16" />
+ <Patch name="18" hbank="0" lbank="0" prog="17" />
+ <Patch name="19" hbank="0" lbank="0" prog="18" />
+ <Patch name="20" hbank="0" lbank="0" prog="19" />
+ <Patch name="21" hbank="0" lbank="0" prog="20" />
+ <Patch name="22" hbank="0" lbank="0" prog="21" />
+ <Patch name="23" hbank="0" lbank="0" prog="22" />
+ <Patch name="24" hbank="0" lbank="0" prog="23" />
+ <Patch name="25" hbank="0" lbank="0" prog="24" />
+ <Patch name="26" hbank="0" lbank="0" prog="25" />
+ <Patch name="27" hbank="0" lbank="0" prog="26" />
+ <Patch name="28" hbank="0" lbank="0" prog="27" />
+ <Patch name="29" hbank="0" lbank="0" prog="28" />
+ <Patch name="30" hbank="0" lbank="0" prog="29" />
+ <Patch name="31" hbank="0" lbank="0" prog="30" />
+ <Patch name="32" hbank="0" lbank="0" prog="31" />
+ <Patch name="33" hbank="0" lbank="0" prog="32" />
+ <Patch name="34" hbank="0" lbank="0" prog="33" />
+ <Patch name="35" hbank="0" lbank="0" prog="34" />
+ <Patch name="36" hbank="0" lbank="0" prog="35" />
+ <Patch name="37" hbank="0" lbank="0" prog="36" />
+ <Patch name="38" hbank="0" lbank="0" prog="37" />
+ <Patch name="39" hbank="0" lbank="0" prog="38" />
+ <Patch name="40" hbank="0" lbank="0" prog="39" />
+ <Patch name="41" hbank="0" lbank="0" prog="40" />
+ <Patch name="42" hbank="0" lbank="0" prog="41" />
+ <Patch name="43" hbank="0" lbank="0" prog="42" />
+ <Patch name="44" hbank="0" lbank="0" prog="43" />
+ <Patch name="45" hbank="0" lbank="0" prog="44" />
+ <Patch name="46" hbank="0" lbank="0" prog="45" />
+ <Patch name="47" hbank="0" lbank="0" prog="46" />
+ <Patch name="48" hbank="0" lbank="0" prog="47" />
+ <Patch name="49" hbank="0" lbank="0" prog="48" />
+ <Patch name="50" hbank="0" lbank="0" prog="49" />
+ <Patch name="51" hbank="0" lbank="0" prog="50" />
+ <Patch name="52" hbank="0" lbank="0" prog="51" />
+ <Patch name="53" hbank="0" lbank="0" prog="52" />
+ <Patch name="54" hbank="0" lbank="0" prog="53" />
+ <Patch name="55" hbank="0" lbank="0" prog="54" />
+ <Patch name="56" hbank="0" lbank="0" prog="55" />
+ <Patch name="57" hbank="0" lbank="0" prog="56" />
+ <Patch name="58" hbank="0" lbank="0" prog="57" />
+ <Patch name="59" hbank="0" lbank="0" prog="58" />
+ <Patch name="60" hbank="0" lbank="0" prog="59" />
+ <Patch name="61" hbank="0" lbank="0" prog="60" />
+ <Patch name="62" hbank="0" lbank="0" prog="61" />
+ <Patch name="63" hbank="0" lbank="0" prog="62" />
+ <Patch name="64" hbank="0" lbank="0" prog="63" />
+ <Patch name="65" hbank="0" lbank="0" prog="64" />
+ <Patch name="66" hbank="0" lbank="0" prog="65" />
+ <Patch name="67" hbank="0" lbank="0" prog="66" />
+ <Patch name="68" hbank="0" lbank="0" prog="67" />
+ <Patch name="69" hbank="0" lbank="0" prog="68" />
+ <Patch name="70" hbank="0" lbank="0" prog="69" />
+ <Patch name="71" hbank="0" lbank="0" prog="70" />
+ <Patch name="72" hbank="0" lbank="0" prog="71" />
+ <Patch name="73" hbank="0" lbank="0" prog="72" />
+ <Patch name="74" hbank="0" lbank="0" prog="73" />
+ <Patch name="75" hbank="0" lbank="0" prog="74" />
+ <Patch name="76" hbank="0" lbank="0" prog="75" />
+ <Patch name="77" hbank="0" lbank="0" prog="76" />
+ <Patch name="78" hbank="0" lbank="0" prog="77" />
+ <Patch name="79" hbank="0" lbank="0" prog="78" />
+ <Patch name="80" hbank="0" lbank="0" prog="79" />
+ <Patch name="81" hbank="0" lbank="0" prog="80" />
+ <Patch name="82" hbank="0" lbank="0" prog="81" />
+ <Patch name="83" hbank="0" lbank="0" prog="82" />
+ <Patch name="84" hbank="0" lbank="0" prog="83" />
+ <Patch name="85" hbank="0" lbank="0" prog="84" />
+ <Patch name="86" hbank="0" lbank="0" prog="85" />
+ <Patch name="87" hbank="0" lbank="0" prog="86" />
+ <Patch name="88" hbank="0" lbank="0" prog="87" />
+ <Patch name="89" hbank="0" lbank="0" prog="88" />
+ <Patch name="90" hbank="0" lbank="0" prog="89" />
+ <Patch name="91" hbank="0" lbank="0" prog="90" />
+ <Patch name="92" hbank="0" lbank="0" prog="91" />
+ <Patch name="93" hbank="0" lbank="0" prog="92" />
+ <Patch name="94" hbank="0" lbank="0" prog="93" />
+ <Patch name="95" hbank="0" lbank="0" prog="94" />
+ <Patch name="96" hbank="0" lbank="0" prog="95" />
+ <Patch name="97" hbank="0" lbank="0" prog="96" />
+ <Patch name="98" hbank="0" lbank="0" prog="97" />
+ <Patch name="99" hbank="0" lbank="0" prog="98" />
+ </PatchGroup>
+ <Controller name="Fader CH 1" l="1" />
+ <Controller name="Fader CH 2" l="2" />
+ <Controller name="Fader CH 3" l="3" />
+ <Controller name="Fader CH 4" l="4" />
+ <Controller name="Fader CH 5" l="5" />
+ <Controller name="Fader CH 6" l="6" />
+ <Controller name="Fader CH 7" l="7" />
+ <Controller name="Fader CH 8" l="8" />
+ <Controller name="Fader CH 9" l="9" />
+ <Controller name="Fader CH 10" l="10" />
+ <Controller name="Fader CH 11" l="11" />
+ <Controller name="Fader CH 12" l="12" />
+ <Controller name="Fader CH 13-14" l="13" />
+ <Controller name="Fader CH 15-16" l="14" />
+ <Controller name="Fader Return 1" l="15" />
+ <Controller name="Fader Return 2" l="16" />
+ <Controller name="Fader Aux 1" l="17" />
+ <Controller name="Fader Aux 2" l="18" />
+ <Controller name="Fader Aux 3" l="19" />
+ <Controller name="Fader Aux 4" l="20" />
+ <Controller name="Fader Bus 1" l="21" />
+ <Controller name="Fader Bus 2" l="22" />
+ <Controller name="Fader Bus 3" l="23" />
+ <Controller name="Fader Bus 4" l="24" />
+ <Controller name="Fader Effect 1" l="25" />
+ <Controller name="Fader Effect 2" l="26" />
+ <Controller name="Fader St Out" l="27" />
+ <Controller name="On CH 1" l="28" />
+ <Controller name="On CH 2" l="29" />
+ <Controller name="On CH 3" l="30" />
+ <Controller name="On CH 4" l="31" />
+ <Controller name="On CH 5" l="33" />
+ <Controller name="On CH 6" l="34" />
+ <Controller name="On CH 7" l="35" />
+ <Controller name="On CH 8" l="36" />
+ <Controller name="On CH 9" l="37" />
+ <Controller name="On CH 10" l="38" />
+ <Controller name="On CH 11" l="39" />
+ <Controller name="On CH 12" l="40" />
+ <Controller name="On CH 13-14" l="41" />
+ <Controller name="On CH 15-16" l="42" />
+ <Controller name="On Return 1" l="43" />
+ <Controller name="On Return 2" l="44" />
+ <Controller name="On Aux 1" l="45" />
+ <Controller name="On Aux 2" l="46" />
+ <Controller name="On Aux 3" l="47" />
+ <Controller name="On Aux 4" l="48" />
+ <Controller name="On Bus 1" l="49" />
+ <Controller name="On Bus 2" l="50" />
+ <Controller name="On Bus 3" l="51" />
+ <Controller name="On Bus 4" l="52" />
+ <Controller name="On Effect 1" l="53" />
+ <Controller name="On Effect 2" l="54" />
+ <Controller name="On St Out" l="55" />
+ <Controller name="Pan CH 1" l="56" min="-64" max="63" />
+ <Controller name="Pan CH 2" l="57" min="-64" max="63" />
+ <Controller name="Pan CH 3" l="58" min="-64" max="63" />
+ <Controller name="Pan CH 4" l="59" min="-64" max="63" />
+ <Controller name="Pan CH 5" l="60" min="-64" max="63" />
+ <Controller name="Pan CH 6" l="61" min="-64" max="63" />
+ <Controller name="Pan CH 7" l="62" min="-64" max="63" />
+ <Controller name="Pan CH 8" l="63" min="-64" max="63" />
+ <Controller name="Pan CH 9" l="64" min="-64" max="63" />
+ <Controller name="Pan CH 10" l="65" min="-64" max="63" />
+ <Controller name="Pan CH 11" l="66" min="-64" max="63" />
+ <Controller name="Pan CH 12" l="67" min="-64" max="63" />
+ <Controller name="Pan CH 13" l="68" min="-64" max="63" />
+ <Controller name="Pan CH 14" l="69" min="-64" max="63" />
+ <Controller name="Pan CH 15" l="70" min="-64" max="63" />
+ <Controller name="Pan CH 16" l="71" min="-64" max="63" />
+ <Controller name="Pan Return 1 L" l="72" min="-64" max="63" />
+ <Controller name="Pan Return 1 R" l="73" min="-64" max="63" />
+ <Controller name="Pan Return 2 L" l="74" min="-64" max="63" />
+ <Controller name="Pan Return 2 R" l="75" min="-64" max="63" />
+ <Controller name="Pan St Out" l="76" min="-64" max="63" />
+ <Controller name="Eff 1 Send CH 1" l="77" />
+ <Controller name="Eff 1 Send CH 2" l="78" />
+ <Controller name="Eff 1 Send CH 3" l="79" />
+ <Controller name="Eff 1 Send CH 4" l="80" />
+ <Controller name="Eff 1 Send CH 5" l="81" />
+ <Controller name="Eff 1 Send CH 6" l="82" />
+ <Controller name="Eff 1 Send CH 7" l="83" />
+ <Controller name="Eff 1 Send CH 8" l="84" />
+ <Controller name="Eff 1 Send CH 9" l="85" />
+ <Controller name="Eff 1 Send CH 10" l="86" />
+ <Controller name="Eff 1 Send CH 11" l="87" />
+ <Controller name="Eff 1 Send CH 12" l="88" />
+ <Controller name="Eff 1 Send CH 13-14" l="89" />
+ <Controller name="Eff 1 Send CH 15-16" l="90" />
+ <Controller name="Eff 2 Send CH 1" l="91" />
+ <Controller name="Eff 2 Send CH 2" l="92" />
+ <Controller name="Eff 2 Send CH 3" l="93" />
+ <Controller name="Eff 2 Send CH 4" l="94" />
+ <Controller name="Eff 2 Send CH 5" l="95" />
+ <Controller name="Eff 2 Send CH 6" l="102" />
+ <Controller name="Eff 2 Send CH 7" l="103" />
+ <Controller name="Eff 2 Send CH 8" l="104" />
+ <Controller name="Eff 2 Send CH 9" l="105" />
+ <Controller name="Eff 2 Send CH 10" l="106" />
+ <Controller name="Eff 2 Send CH 11" l="107" />
+ <Controller name="Eff 2 Send CH 12" l="108" />
+ <Controller name="Eff 2 Send CH 13-14" l="109" />
+ <Controller name="Eff 2 Send CH 15-16" l="110" />
+ <Controller name="Fader CH 17" l="111" />
+ <Controller name="Fader CH 18" l="112" />
+ <Controller name="Fader CH 19" l="113" />
+ <Controller name="Fader CH 20" l="114" />
+ <Controller name="Fader CH 21" l="115" />
+ <Controller name="Fader CH 22" l="116" />
+ <Controller name="Fader CH 23" l="117" />
+ <Controller name="Fader CH 24" l="118" />
+ <Controller name="Program" type="Program" />
+ </MidiInstrument>
+</muse>
diff --git a/muse2/share/instruments/Yamaha-Motif-Rack.idf b/muse2/share/instruments/Yamaha-Motif-Rack.idf
new file mode 100644
index 00000000..956a8d92
--- /dev/null
+++ b/muse2/share/instruments/Yamaha-Motif-Rack.idf
@@ -0,0 +1,1135 @@
+<?xml version="1.0"?>
+<muse version="1.0">
+ <MidiInstrument name="Yamaha Motif Rack" nullparam="32639">
+ <PatchGroup name="Preset 1">
+ <Patch name="PowerGrand" hbank="63" lbank="0" prog="0" />
+ <Patch name="Jazz Grand" hbank="63" lbank="0" prog="1" />
+ <Patch name="Dark Grand" hbank="63" lbank="0" prog="2" />
+ <Patch name="CP 80" hbank="63" lbank="0" prog="3" />
+ <Patch name="CP80 + EP" hbank="63" lbank="0" prog="4" />
+ <Patch name="Yama EP`s" hbank="63" lbank="0" prog="5" />
+ <Patch name="BalladKeys" hbank="63" lbank="0" prog="6" />
+ <Patch name="80s Layer" hbank="63" lbank="0" prog="7" />
+ <Patch name="Piano + Strg" hbank="63" lbank="0" prog="8" />
+ <Patch name="Piano Ooh" hbank="63" lbank="0" prog="9" />
+ <Patch name="PianoBakup" hbank="63" lbank="0" prog="10" />
+ <Patch name="Max Tine" hbank="63" lbank="0" prog="11" />
+ <Patch name="Early Fusn" hbank="63" lbank="0" prog="12" />
+ <Patch name="Vintage;74" hbank="63" lbank="0" prog="13" />
+ <Patch name="Sweetness" hbank="63" lbank="0" prog="14" />
+ <Patch name="DynoStrait" hbank="63" lbank="0" prog="15" />
+ <Patch name="ChorusHard" hbank="63" lbank="0" prog="16" />
+ <Patch name="VintagCase" hbank="63" lbank="0" prog="17" />
+ <Patch name="ChorusDyno" hbank="63" lbank="0" prog="18" />
+ <Patch name="80th Boost" hbank="63" lbank="0" prog="19" />
+ <Patch name="Contempo" hbank="63" lbank="0" prog="20" />
+ <Patch name="Early 70;s" hbank="63" lbank="0" prog="21" />
+ <Patch name="Tonight" hbank="63" lbank="0" prog="22" />
+ <Patch name="E.PianoPad" hbank="63" lbank="0" prog="23" />
+ <Patch name="TX802" hbank="63" lbank="0" prog="24" />
+ <Patch name="ChorusBel" hbank="63" lbank="0" prog="25" />
+ <Patch name="BellDX" hbank="63" lbank="0" prog="26" />
+ <Patch name="Dark DX" hbank="63" lbank="0" prog="27" />
+ <Patch name="GS Tines" hbank="63" lbank="0" prog="28" />
+ <Patch name="Rich FM" hbank="63" lbank="0" prog="29" />
+ <Patch name="FilteredDX" hbank="63" lbank="0" prog="30" />
+ <Patch name="Ice Piano" hbank="63" lbank="0" prog="31" />
+ <Patch name="WurliTrem" hbank="63" lbank="0" prog="32" />
+ <Patch name="WurliAmped" hbank="63" lbank="0" prog="33" />
+ <Patch name="TouchClavi" hbank="63" lbank="0" prog="34" />
+ <Patch name="SuperClavi" hbank="63" lbank="0" prog="35" />
+ <Patch name="StereoClav" hbank="63" lbank="0" prog="36" />
+ <Patch name="HollowClav" hbank="63" lbank="0" prog="37" />
+ <Patch name="Nu Phasing" hbank="63" lbank="0" prog="38" />
+ <Patch name="Digi Clavi" hbank="63" lbank="0" prog="39" />
+ <Patch name="PulseClavi" hbank="63" lbank="0" prog="40" />
+ <Patch name="Twinkle" hbank="63" lbank="0" prog="41" />
+ <Patch name="Stick Bell" hbank="63" lbank="0" prog="42" />
+ <Patch name="Bell Chiff" hbank="63" lbank="0" prog="43" />
+ <Patch name="FngrCymbl" hbank="63" lbank="0" prog="44" />
+ <Patch name="ChorusBell" hbank="63" lbank="0" prog="45" />
+ <Patch name="Tibetan" hbank="63" lbank="0" prog="46" />
+ <Patch name="EastBell" hbank="63" lbank="0" prog="47" />
+ <Patch name="Gamelan" hbank="63" lbank="0" prog="48" />
+ <Patch name="IceBells" hbank="63" lbank="0" prog="49" />
+ <Patch name="Digi Bell" hbank="63" lbank="0" prog="50" />
+ <Patch name="Marimbell" hbank="63" lbank="0" prog="51" />
+ <Patch name="16+8+5 + 1/3" hbank="63" lbank="0" prog="52" />
+ <Patch name="Petit" hbank="63" lbank="0" prog="53" />
+ <Patch name="Glassy" hbank="63" lbank="0" prog="54" />
+ <Patch name="Jazzy" hbank="63" lbank="0" prog="55" />
+ <Patch name="Slow Jam" hbank="63" lbank="0" prog="56" />
+ <Patch name="Greasy" hbank="63" lbank="0" prog="57" />
+ <Patch name="Swishie" hbank="63" lbank="0" prog="58" />
+ <Patch name="Clean" hbank="63" lbank="0" prog="59" />
+ <Patch name="Full/CVib" hbank="63" lbank="0" prog="60" />
+ <Patch name="Mellow" hbank="63" lbank="0" prog="61" />
+ <Patch name="Nu Shade" hbank="63" lbank="0" prog="62" />
+ <Patch name="Cool Cat" hbank="63" lbank="0" prog="63" />
+ <Patch name="Flutey" hbank="63" lbank="0" prog="64" />
+ <Patch name="LeftManual" hbank="63" lbank="0" prog="65" />
+ <Patch name="DrawContrl" hbank="63" lbank="0" prog="66" />
+ <Patch name="Rocky" hbank="63" lbank="0" prog="67" />
+ <Patch name="Expensive" hbank="63" lbank="0" prog="68" />
+ <Patch name="Progressy" hbank="63" lbank="0" prog="69" />
+ <Patch name="Crunchy" hbank="63" lbank="0" prog="70" />
+ <Patch name="Early Bird" hbank="63" lbank="0" prog="71" />
+ <Patch name="Jazz Split" hbank="63" lbank="0" prog="72" />
+ <Patch name="GosplSplit" hbank="63" lbank="0" prog="73" />
+ <Patch name="Tradi" hbank="63" lbank="0" prog="74" />
+ <Patch name="Sunday" hbank="63" lbank="0" prog="75" />
+ <Patch name="BreathPipe" hbank="63" lbank="0" prog="76" />
+ <Patch name="Fluty Pipe" hbank="63" lbank="0" prog="77" />
+ <Patch name="Reedy Pipe" hbank="63" lbank="0" prog="78" />
+ <Patch name="OohPipes" hbank="63" lbank="0" prog="79" />
+ <Patch name="Flamenco" hbank="63" lbank="0" prog="80" />
+ <Patch name="Nylon Jam" hbank="63" lbank="0" prog="81" />
+ <Patch name="BriteSteel" hbank="63" lbank="0" prog="82" />
+ <Patch name="Strums" hbank="63" lbank="0" prog="83" />
+ <Patch name="Big Steel" hbank="63" lbank="0" prog="84" />
+ <Patch name="Folk Steel" hbank="63" lbank="0" prog="85" />
+ <Patch name="18 String" hbank="63" lbank="0" prog="86" />
+ <Patch name="HarpsiGtr" hbank="63" lbank="0" prog="87" />
+ <Patch name="HybridGtr" hbank="63" lbank="0" prog="88" />
+ <Patch name="JazzGTmelo" hbank="63" lbank="0" prog="89" />
+ <Patch name="Velo Jazz" hbank="63" lbank="0" prog="90" />
+ <Patch name="FM Jazz" hbank="63" lbank="0" prog="91" />
+ <Patch name="For Funk" hbank="63" lbank="0" prog="92" />
+ <Patch name="Spanky" hbank="63" lbank="0" prog="93" />
+ <Patch name="Funkiest" hbank="63" lbank="0" prog="94" />
+ <Patch name="Vin Strum" hbank="63" lbank="0" prog="95" />
+ <Patch name="1CoilChors" hbank="63" lbank="0" prog="96" />
+ <Patch name="CleanChors" hbank="63" lbank="0" prog="97" />
+ <Patch name="ChorusPlus" hbank="63" lbank="0" prog="98" />
+ <Patch name="SmoothChor" hbank="63" lbank="0" prog="99" />
+ <Patch name="TexBoogie" hbank="63" lbank="0" prog="100" />
+ <Patch name="Rockabilly" hbank="63" lbank="0" prog="101" />
+ <Patch name="65 Combo" hbank="63" lbank="0" prog="102" />
+ <Patch name="VinTremolo" hbank="63" lbank="0" prog="103" />
+ <Patch name="Crunchoid" hbank="63" lbank="0" prog="104" />
+ <Patch name="DynamicAmp" hbank="63" lbank="0" prog="105" />
+ <Patch name="Feedback" hbank="63" lbank="0" prog="106" />
+ <Patch name="VOODOOMAN" hbank="63" lbank="0" prog="106" />
+ <Patch name="BlueLead" hbank="63" lbank="0" prog="107" />
+ <Patch name="MeloRckLd" hbank="63" lbank="0" prog="108" />
+ <Patch name="MetalMute" hbank="63" lbank="0" prog="109" />
+ <Patch name="OverTheTop" hbank="63" lbank="0" prog="110" />
+ <Patch name="RoundWound" hbank="63" lbank="0" prog="111" />
+ <Patch name="FingerMan" hbank="63" lbank="0" prog="112" />
+ <Patch name="PrecRW" hbank="63" lbank="0" prog="113" />
+ <Patch name="PrecFW" hbank="63" lbank="0" prog="114" />
+ <Patch name="HybridBass" hbank="63" lbank="0" prog="115" />
+ <Patch name="Stand Up" hbank="63" lbank="0" prog="116" />
+ <Patch name="Fretless" hbank="63" lbank="0" prog="117" />
+ <Patch name="Slap + Fx" hbank="63" lbank="0" prog="118" />
+ <Patch name="BriteSlap" hbank="63" lbank="0" prog="119" />
+ <Patch name="Velo Bass" hbank="63" lbank="0" prog="120" />
+ <Patch name="Bs+Cym+Vb" hbank="63" lbank="0" prog="121" />
+ <Patch name="Boogie on" hbank="63" lbank="0" prog="122" />
+ <Patch name="MiniDetune" hbank="63" lbank="0" prog="123" />
+ <Patch name="Long Spit" hbank="63" lbank="0" prog="124" />
+ <Patch name="Tack Bass" hbank="63" lbank="0" prog="125" />
+ <Patch name="Fat Octave" hbank="63" lbank="0" prog="126" />
+ </PatchGroup>
+ <PatchGroup name="Preset 2">
+ <Patch name="Violin" hbank="63" lbank="1" prog="0" />
+ <Patch name="Viola" hbank="63" lbank="1" prog="1" />
+ <Patch name="Cello" hbank="63" lbank="1" prog="2" />
+ <Patch name="SoloSpicat" hbank="63" lbank="1" prog="3" />
+ <Patch name="2 Solos" hbank="63" lbank="1" prog="4" />
+ <Patch name="Cello Duet" hbank="63" lbank="1" prog="5" />
+ <Patch name="Trio" hbank="63" lbank="1" prog="6" />
+ <Patch name="Chamber" hbank="63" lbank="1" prog="7" />
+ <Patch name="Small Ens" hbank="63" lbank="1" prog="8" />
+ <Patch name="Medium Ens" hbank="63" lbank="1" prog="9" />
+ <Patch name="Ens Mix" hbank="63" lbank="1" prog="10" />
+ <Patch name="Ensemble" hbank="63" lbank="1" prog="11" />
+ <Patch name="Hard Ens" hbank="63" lbank="1" prog="12" />
+ <Patch name="Background" hbank="63" lbank="1" prog="13" />
+ <Patch name="BigSymphny" hbank="63" lbank="1" prog="14" />
+ <Patch name="Str/Horns" hbank="63" lbank="1" prog="15" />
+ <Patch name="Stringy" hbank="63" lbank="1" prog="16" />
+ <Patch name="Polystring" hbank="63" lbank="1" prog="17" />
+ <Patch name="JP Strings" hbank="63" lbank="1" prog="18" />
+ <Patch name="MournStrgs" hbank="63" lbank="1" prog="19" />
+ <Patch name="The Pizz" hbank="63" lbank="1" prog="20" />
+ <Patch name="Fanfare" hbank="63" lbank="1" prog="21" />
+ <Patch name="Hi Brass" hbank="63" lbank="1" prog="22" />
+ <Patch name="Fat Sect" hbank="63" lbank="1" prog="23" />
+ <Patch name="Sforzando" hbank="63" lbank="1" prog="24" />
+ <Patch name="Symphony" hbank="63" lbank="1" prog="25" />
+ <Patch name="Big Band" hbank="63" lbank="1" prog="26" />
+ <Patch name="Big Band 2" hbank="63" lbank="1" prog="27" />
+ <Patch name="SaxBigBand" hbank="63" lbank="1" prog="28" />
+ <Patch name="MedmBrass" hbank="63" lbank="1" prog="29" />
+ <Patch name="Soft Brass" hbank="63" lbank="1" prog="30" />
+ <Patch name="SoftVeloBr" hbank="63" lbank="1" prog="31" />
+ <Patch name="TrpRomantc" hbank="63" lbank="1" prog="32" />
+ <Patch name="Phase Mute" hbank="63" lbank="1" prog="33" />
+ <Patch name="Legend" hbank="63" lbank="1" prog="34" />
+ <Patch name="Trombone" hbank="63" lbank="1" prog="35" />
+ <Patch name="Flugelleaz" hbank="63" lbank="1" prog="36" />
+ <Patch name="F.Horn Ens" hbank="63" lbank="1" prog="37" />
+ <Patch name="SlowAttack" hbank="63" lbank="1" prog="38" />
+ <Patch name="Strng/Bras" hbank="63" lbank="1" prog="39" />
+ <Patch name="Movie Ens " hbank="63" lbank="1" prog="40" />
+ <Patch name="Powered" hbank="63" lbank="1" prog="41" />
+ <Patch name="ObStuff" hbank="63" lbank="1" prog="42" />
+ <Patch name="Prophy" hbank="63" lbank="1" prog="43" />
+ <Patch name="AnalogBras" hbank="63" lbank="1" prog="44" />
+ <Patch name="After 1984" hbank="63" lbank="1" prog="45" />
+ <Patch name="Soprano" hbank="63" lbank="1" prog="46" />
+ <Patch name="Alto Vib" hbank="63" lbank="1" prog="47" />
+ <Patch name="SaxEnsembl" hbank="63" lbank="1" prog="48" />
+ <Patch name="Tenor Sax" hbank="63" lbank="1" prog="49" />
+ <Patch name="Tenor Soft" hbank="63" lbank="1" prog="50" />
+ <Patch name="The Winds" hbank="63" lbank="1" prog="51" />
+ <Patch name="WindOrch" hbank="63" lbank="1" prog="52" />
+ <Patch name="SweetFlute" hbank="63" lbank="1" prog="53" />
+ <Patch name="PanBottle" hbank="63" lbank="1" prog="54" />
+ <Patch name="AmpHarpMW" hbank="63" lbank="1" prog="55" />
+ <Patch name="SmoothSaw" hbank="63" lbank="1" prog="56" />
+ <Patch name="Lucky" hbank="63" lbank="1" prog="57" />
+ <Patch name="Tri Solo" hbank="63" lbank="1" prog="58" />
+ <Patch name="Syntrump" hbank="63" lbank="1" prog="59" />
+ <Patch name="PWM Lead" hbank="63" lbank="1" prog="60" />
+ <Patch name="Clicky Saw" hbank="63" lbank="1" prog="61" />
+ <Patch name="Mini Pulse" hbank="63" lbank="1" prog="62" />
+ <Patch name="Sync Lead" hbank="63" lbank="1" prog="63" />
+ <Patch name="Altair" hbank="63" lbank="1" prog="64" />
+ <Patch name="Analog" hbank="63" lbank="1" prog="65" />
+ <Patch name="Sweetland" hbank="63" lbank="1" prog="66" />
+ <Patch name="WarmSweepy" hbank="63" lbank="1" prog="67" />
+ <Patch name="SinePad" hbank="63" lbank="1" prog="68" />
+ <Patch name="Square" hbank="63" lbank="1" prog="69" />
+ <Patch name="VoxPad" hbank="63" lbank="1" prog="70" />
+ <Patch name="Pure Syn" hbank="63" lbank="1" prog="71" />
+ <Patch name="MovingPad" hbank="63" lbank="1" prog="72" />
+ <Patch name="SimpleSaws" hbank="63" lbank="1" prog="73" />
+ <Patch name="X-Shower" hbank="63" lbank="1" prog="74" />
+ <Patch name="PWM Pad" hbank="63" lbank="1" prog="75" />
+ <Patch name="Bell Choir" hbank="63" lbank="1" prog="76" />
+ <Patch name="ObSoft" hbank="63" lbank="1" prog="77" />
+ <Patch name="MellowAnlg" hbank="63" lbank="1" prog="78" />
+ <Patch name="Glasschoir" hbank="63" lbank="1" prog="79" />
+ <Patch name="PeaceVox" hbank="63" lbank="1" prog="80" />
+ <Patch name="StackChoir" hbank="63" lbank="1" prog="81" />
+ <Patch name="Bronx" hbank="63" lbank="1" prog="82" />
+ <Patch name="IceChoir" hbank="63" lbank="1" prog="83" />
+ <Patch name="Fast Oohs" hbank="63" lbank="1" prog="84" />
+ <Patch name="Ooze + OZ" hbank="63" lbank="1" prog="85" />
+ <Patch name="NeoCrystal" hbank="63" lbank="1" prog="86" />
+ <Patch name="Pop Synth" hbank="63" lbank="1" prog="87" />
+ <Patch name="Fantasy" hbank="63" lbank="1" prog="88" />
+ <Patch name="Heavenly" hbank="63" lbank="1" prog="89" />
+ <Patch name="Retro" hbank="63" lbank="1" prog="90" />
+ <Patch name="Airy Nylon" hbank="63" lbank="1" prog="91" />
+ <Patch name="Antares" hbank="63" lbank="1" prog="92" />
+ <Patch name="Pan Sphere" hbank="63" lbank="1" prog="93" />
+ <Patch name="Tamburax" hbank="63" lbank="1" prog="94" />
+ <Patch name="IndianFlai" hbank="63" lbank="1" prog="95" />
+ <Patch name="SAKURA" hbank="63" lbank="1" prog="96" />
+ <Patch name="RisingHigh" hbank="63" lbank="1" prog="97" />
+ <Patch name="Champ" hbank="63" lbank="1" prog="98" />
+ <Patch name="Gladiator" hbank="63" lbank="1" prog="99" />
+ <Patch name="Hades" hbank="63" lbank="1" prog="100" />
+ <Patch name="Glacy" hbank="63" lbank="1" prog="101" />
+ <Patch name="Forest" hbank="63" lbank="1" prog="102" />
+ <Patch name="MirrorRing" hbank="63" lbank="1" prog="103" />
+ <Patch name="Poly" hbank="63" lbank="1" prog="104" />
+ <Patch name="AnaTonk" hbank="63" lbank="1" prog="105" />
+ <Patch name="Jaipur" hbank="63" lbank="1" prog="106" />
+ <Patch name="Dulcitar" hbank="63" lbank="1" prog="107" />
+ <Patch name="Cimbalon" hbank="63" lbank="1" prog="108" />
+ <Patch name="EthncFlute" hbank="63" lbank="1" prog="109" />
+ <Patch name="Hichiriki" hbank="63" lbank="1" prog="110" />
+ <Patch name="Ryuteki" hbank="63" lbank="1" prog="111" />
+ <Patch name="Gagaku" hbank="63" lbank="1" prog="112" />
+ <Patch name="Kokyu" hbank="63" lbank="1" prog="113" />
+ <Patch name="Digidoo" hbank="63" lbank="1" prog="114" />
+ <Patch name="Bali" hbank="63" lbank="1" prog="115" />
+ <Patch name="Indo" hbank="63" lbank="1" prog="116" />
+ <Patch name="Trip East" hbank="63" lbank="1" prog="117" />
+ <Patch name="Tabla" hbank="63" lbank="1" prog="118" />
+ <Patch name="Djembe" hbank="63" lbank="1" prog="119" />
+ <Patch name="Djerimbe" hbank="63" lbank="1" prog="120" />
+ <Patch name="Udu" hbank="63" lbank="1" prog="121" />
+ <Patch name="Tribal" hbank="63" lbank="1" prog="122" />
+ <Patch name="Log+Drum" hbank="63" lbank="1" prog="123" />
+ <Patch name="Afro" hbank="63" lbank="1" prog="124" />
+ <Patch name="Japanesque" hbank="63" lbank="1" prog="125" />
+ <Patch name="EthnoShock" hbank="63" lbank="1" prog="126" />
+ <Patch name="Ethnology" hbank="63" lbank="1" prog="127" />
+ </PatchGroup>
+ <PatchGroup name="Preset 3">
+ <Patch name="Wide Comp" hbank="63" lbank="2" prog="0" />
+ <Patch name="78rpmPiano" hbank="63" lbank="2" prog="1" />
+ <Patch name="Bristol" hbank="63" lbank="2" prog="2" />
+ <Patch name="Mono Comp" hbank="63" lbank="2" prog="3" />
+ <Patch name="Dance" hbank="63" lbank="2" prog="4" />
+ <Patch name="Houze" hbank="63" lbank="2" prog="5" />
+ <Patch name="Glass EP" hbank="63" lbank="2" prog="6" />
+ <Patch name="VintSwitch" hbank="63" lbank="2" prog="7" />
+ <Patch name="Early Case" hbank="63" lbank="2" prog="8" />
+ <Patch name="RdsScape" hbank="63" lbank="2" prog="9" />
+ <Patch name="RichEcho" hbank="63" lbank="2" prog="10" />
+ <Patch name="StringyPno" hbank="63" lbank="2" prog="11" />
+ <Patch name="Champagne" hbank="63" lbank="2" prog="12" />
+ <Patch name="Moet" hbank="63" lbank="2" prog="13" />
+ <Patch name="Compact" hbank="63" lbank="2" prog="14" />
+ <Patch name="1967 Keys" hbank="63" lbank="2" prog="15" />
+ <Patch name="YD-45C" hbank="63" lbank="2" prog="16" />
+ <Patch name="Gnarly" hbank="63" lbank="2" prog="17" />
+ <Patch name="Modular" hbank="63" lbank="2" prog="18" />
+ <Patch name="Dark Jack" hbank="63" lbank="2" prog="19" />
+ <Patch name="OneVoice" hbank="63" lbank="2" prog="20" />
+ <Patch name="Dry Syn" hbank="63" lbank="2" prog="21" />
+ <Patch name="PlasticBas" hbank="63" lbank="2" prog="22" />
+ <Patch name="Bassline" hbank="63" lbank="2" prog="23" />
+ <Patch name="RubbaRap" hbank="63" lbank="2" prog="24" />
+ <Patch name="Juicy" hbank="63" lbank="2" prog="25" />
+ <Patch name="Dark" hbank="63" lbank="2" prog="26" />
+ <Patch name="UniBass" hbank="63" lbank="2" prog="27" />
+ <Patch name="Flyer" hbank="63" lbank="2" prog="28" />
+ <Patch name="QuackBass" hbank="63" lbank="2" prog="29" />
+ <Patch name="Moonbass" hbank="63" lbank="2" prog="30" />
+ <Patch name="ClassicSub" hbank="63" lbank="2" prog="31" />
+ <Patch name="DX100" hbank="63" lbank="2" prog="32" />
+ <Patch name="Lately" hbank="63" lbank="2" prog="33" />
+ <Patch name="FMBass" hbank="63" lbank="2" prog="34" />
+ <Patch name="Oct String" hbank="63" lbank="2" prog="35" />
+ <Patch name="3 Octave" hbank="63" lbank="2" prog="36" />
+ <Patch name="TapeStrngs" hbank="63" lbank="2" prog="37" />
+ <Patch name="VP Strings" hbank="63" lbank="2" prog="38" />
+ <Patch name="BriteTeeth" hbank="63" lbank="2" prog="39" />
+ <Patch name="XDance" hbank="63" lbank="2" prog="40" />
+ <Patch name="Timeless" hbank="63" lbank="2" prog="41" />
+ <Patch name="FatSynth" hbank="63" lbank="2" prog="42" />
+ <Patch name="Big Syn" hbank="63" lbank="2" prog="43" />
+ <Patch name="Bluesharp" hbank="63" lbank="2" prog="44" />
+ <Patch name="Sync" hbank="63" lbank="2" prog="45" />
+ <Patch name="Atk Reso" hbank="63" lbank="2" prog="46" />
+ <Patch name="Singleline" hbank="63" lbank="2" prog="47" />
+ <Patch name="Free LFO" hbank="63" lbank="2" prog="48" />
+ <Patch name="Soft Lead" hbank="63" lbank="2" prog="49" />
+ <Patch name="PulseWound" hbank="63" lbank="2" prog="50" />
+ <Patch name="Big Drone" hbank="63" lbank="2" prog="51" />
+ <Patch name="Big Tune" hbank="63" lbank="2" prog="52" />
+ <Patch name="PowerWheel" hbank="63" lbank="2" prog="53" />
+ <Patch name="Flangefilt" hbank="63" lbank="2" prog="54" />
+ <Patch name="G-Funk" hbank="63" lbank="2" prog="55" />
+ <Patch name="Maria AT" hbank="63" lbank="2" prog="56" />
+ <Patch name="InThePast" hbank="63" lbank="2" prog="57" />
+ <Patch name="FatSawPad" hbank="63" lbank="2" prog="58" />
+ <Patch name="Wide Sweep" hbank="63" lbank="2" prog="59" />
+ <Patch name="Sunbeams" hbank="63" lbank="2" prog="60" />
+ <Patch name="BPFx" hbank="63" lbank="2" prog="61" />
+ <Patch name="FrozenPad" hbank="63" lbank="2" prog="62" />
+ <Patch name="MICHINOKU" hbank="63" lbank="2" prog="63" />
+ <Patch name="Esmeralda" hbank="63" lbank="2" prog="64" />
+ <Patch name="Romance" hbank="63" lbank="2" prog="65" />
+ <Patch name="Circle" hbank="63" lbank="2" prog="66" />
+ <Patch name="Dreamspher" hbank="63" lbank="2" prog="67" />
+ <Patch name="Silverlake" hbank="63" lbank="2" prog="68" />
+ <Patch name="Shadow" hbank="63" lbank="2" prog="69" />
+ <Patch name="Platinum" hbank="63" lbank="2" prog="70" />
+ <Patch name="Gently" hbank="63" lbank="2" prog="71" />
+ <Patch name="Warming" hbank="63" lbank="2" prog="72" />
+ <Patch name="PW-EMMY" hbank="63" lbank="2" prog="73" />
+ <Patch name="X-fade Pad" hbank="63" lbank="2" prog="74" />
+ <Patch name="Zosma" hbank="63" lbank="2" prog="75" />
+ <Patch name="NoizRezz" hbank="63" lbank="2" prog="76" />
+ <Patch name="Mira" hbank="63" lbank="2" prog="77" />
+ <Patch name="MultiPulse" hbank="63" lbank="2" prog="78" />
+ <Patch name="VoxWaves" hbank="63" lbank="2" prog="79" />
+ <Patch name="LazySweep" hbank="63" lbank="2" prog="80" />
+ <Patch name="Doomed" hbank="63" lbank="2" prog="81" />
+ <Patch name="PerkaVox" hbank="63" lbank="2" prog="82" />
+ <Patch name="Punchy" hbank="63" lbank="2" prog="83" />
+ <Patch name="Eyeliner" hbank="63" lbank="2" prog="84" />
+ <Patch name="Quieck" hbank="63" lbank="2" prog="85" />
+ <Patch name="Aladdin" hbank="63" lbank="2" prog="86" />
+ <Patch name="QuadSwell" hbank="63" lbank="2" prog="87" />
+ <Patch name="Lilley Pad" hbank="63" lbank="2" prog="88" />
+ <Patch name="Didje Baz" hbank="63" lbank="2" prog="89" />
+ <Patch name="RING PAD" hbank="63" lbank="2" prog="90" />
+ <Patch name="Chaser 1" hbank="63" lbank="2" prog="91" />
+ <Patch name="Chaser 2" hbank="63" lbank="2" prog="92" />
+ <Patch name="Spacebreat" hbank="63" lbank="2" prog="93" />
+ <Patch name="Long HiPa" hbank="63" lbank="2" prog="94" />
+ <Patch name="Action Y" hbank="63" lbank="2" prog="95" />
+ <Patch name="Trancelan" hbank="63" lbank="2" prog="96" />
+ <Patch name="Eternal" hbank="63" lbank="2" prog="97" />
+ <Patch name="VirtualSyn" hbank="63" lbank="2" prog="98" />
+ <Patch name="Interlude" hbank="63" lbank="2" prog="99" />
+ <Patch name="Flying" hbank="63" lbank="2" prog="100" />
+ <Patch name="TheSlayer" hbank="63" lbank="2" prog="101" />
+ <Patch name="White Rabb" hbank="63" lbank="2" prog="102" />
+ <Patch name="Siam" hbank="63" lbank="2" prog="103" />
+ <Patch name="Ududu" hbank="63" lbank="2" prog="104" />
+ <Patch name="Particle" hbank="63" lbank="2" prog="105" />
+ <Patch name="Shaper" hbank="63" lbank="2" prog="106" />
+ <Patch name="VintageArp" hbank="63" lbank="2" prog="107" />
+ <Patch name="Aah Dance" hbank="63" lbank="2" prog="108" />
+ <Patch name="Joker" hbank="63" lbank="2" prog="109" />
+ <Patch name="Holiday" hbank="63" lbank="2" prog="110" />
+ <Patch name="Android" hbank="63" lbank="2" prog="111" />
+ <Patch name="Spacious" hbank="63" lbank="2" prog="112" />
+ <Patch name="VoiceCuica" hbank="63" lbank="2" prog="113" />
+ <Patch name="Pop Arp" hbank="63" lbank="2" prog="114" />
+ <Patch name="Ping Pong" hbank="63" lbank="2" prog="115" />
+ <Patch name="Amoeba" hbank="63" lbank="2" prog="116" />
+ <Patch name="Landing" hbank="63" lbank="2" prog="117" />
+ <Patch name="I was born" hbank="63" lbank="2" prog="118" />
+ <Patch name="PsychoGtr" hbank="63" lbank="2" prog="119" />
+ <Patch name="NoGravity" hbank="63" lbank="2" prog="120" />
+ <Patch name="Pulser" hbank="63" lbank="2" prog="121" />
+ <Patch name="Racer" hbank="63" lbank="2" prog="122" />
+ <Patch name="Storm" hbank="63" lbank="2" prog="123" />
+ <Patch name="Oscillatin" hbank="63" lbank="2" prog="124" />
+ <Patch name="FamlyFeud " hbank="63" lbank="2" prog="125" />
+ <Patch name="WatrForest" hbank="63" lbank="2" prog="126" />
+ <Patch name="Spacecraft" hbank="63" lbank="2" prog="127" />
+ </PatchGroup>
+ <PatchGroup name="Preset 4">
+ <Patch name="MultcmpPno" hbank="63" lbank="3" prog="0" />
+ <Patch name="Light" hbank="63" lbank="3" prog="1" />
+ <Patch name="ConcrtGrnd" hbank="63" lbank="3" prog="2" />
+ <Patch name="Balld Stck" hbank="63" lbank="3" prog="3" />
+ <Patch name="Hard CP80" hbank="63" lbank="3" prog="4" />
+ <Patch name="StereoComp" hbank="63" lbank="3" prog="5" />
+ <Patch name="MetalPiano" hbank="63" lbank="3" prog="6" />
+ <Patch name="Old Piano" hbank="63" lbank="3" prog="7" />
+ <Patch name="Diablo" hbank="63" lbank="3" prog="8" />
+ <Patch name="Satellite" hbank="63" lbank="3" prog="9" />
+ <Patch name="SummerTime" hbank="63" lbank="3" prog="10" />
+ <Patch name="SparkleTin" hbank="63" lbank="3" prog="11" />
+ <Patch name="Tine E" hbank="63" lbank="3" prog="12" />
+ <Patch name="Mr. Klank" hbank="63" lbank="3" prog="13" />
+ <Patch name="DX7+Pad" hbank="63" lbank="3" prog="14" />
+ <Patch name="PluckBells" hbank="63" lbank="3" prog="15" />
+ <Patch name="RetroWurli" hbank="63" lbank="3" prog="16" />
+ <Patch name="DampedClav" hbank="63" lbank="3" prog="17" />
+ <Patch name="Dummy" hbank="63" lbank="3" prog="18" />
+ <Patch name="Neo Soul" hbank="63" lbank="3" prog="19" />
+ <Patch name="EpfCrusher" hbank="63" lbank="3" prog="20" />
+ <Patch name="PlukdThing" hbank="63" lbank="3" prog="21" />
+ <Patch name="Hiss Pad" hbank="63" lbank="3" prog="22" />
+ <Patch name="GlassBells" hbank="63" lbank="3" prog="23" />
+ <Patch name="YumiBell" hbank="63" lbank="3" prog="24" />
+ <Patch name="Pad Bells" hbank="63" lbank="3" prog="25" />
+ <Patch name="EthnoStone" hbank="63" lbank="3" prog="26" />
+ <Patch name="BellsAbuzz" hbank="63" lbank="3" prog="27" />
+ <Patch name="Icey Vibe" hbank="63" lbank="3" prog="28" />
+ <Patch name="Gongladeer" hbank="63" lbank="3" prog="29" />
+ <Patch name="ScaryNight" hbank="63" lbank="3" prog="30" />
+ <Patch name="MoreDrwbrs" hbank="63" lbank="3" prog="31" />
+ <Patch name="Soulemn" hbank="63" lbank="3" prog="32" />
+ <Patch name="Green" hbank="63" lbank="3" prog="33" />
+ <Patch name="JimyPercC3" hbank="63" lbank="3" prog="34" />
+ <Patch name="Dirt Organ" hbank="63" lbank="3" prog="35" />
+ <Patch name="Vint Drive" hbank="63" lbank="3" prog="36" />
+ <Patch name="Yoshi Perc" hbank="63" lbank="3" prog="37" />
+ <Patch name="Big Track" hbank="63" lbank="3" prog="38" />
+ <Patch name="Circus" hbank="63" lbank="3" prog="39" />
+ <Patch name="Mikuni’sFI" hbank="63" lbank="3" prog="40" />
+ <Patch name="Elemental" hbank="63" lbank="3" prog="41" />
+ <Patch name="Farfasso" hbank="63" lbank="3" prog="42" />
+ <Patch name="Willis" hbank="63" lbank="3" prog="43" />
+ <Patch name="Reed" hbank="63" lbank="3" prog="44" />
+ <Patch name="Partita" hbank="63" lbank="3" prog="45" />
+ <Patch name="Policia" hbank="63" lbank="3" prog="46" />
+ <Patch name="Jazzmaster" hbank="63" lbank="3" prog="47" />
+ <Patch name="Trip Rotor" hbank="63" lbank="3" prog="48" />
+ <Patch name="Radio Cmp2" hbank="63" lbank="3" prog="49" />
+ <Patch name="Simple WAH" hbank="63" lbank="3" prog="50" />
+ <Patch name="Wah-Riff" hbank="63" lbank="3" prog="51" />
+ <Patch name="Guitar&amp;Pad" hbank="63" lbank="3" prog="52" />
+ <Patch name="Coral" hbank="63" lbank="3" prog="53" />
+ <Patch name="Harp" hbank="63" lbank="3" prog="54" />
+ <Patch name="RnB Harp" hbank="63" lbank="3" prog="55" />
+ <Patch name="Precsn Cmp" hbank="63" lbank="3" prog="56" />
+ <Patch name="TubeFinger" hbank="63" lbank="3" prog="57" />
+ <Patch name="Finger Amp" hbank="63" lbank="3" prog="58" />
+ <Patch name="It;sRounda" hbank="63" lbank="3" prog="59" />
+ <Patch name="NoResBass" hbank="63" lbank="3" prog="60" />
+ <Patch name="Fat Sine" hbank="63" lbank="3" prog="61" />
+ <Patch name="Wobble" hbank="63" lbank="3" prog="62" />
+ <Patch name="Decor" hbank="63" lbank="3" prog="63" />
+ <Patch name="Thump" hbank="63" lbank="3" prog="64" />
+ <Patch name="EmFunk" hbank="63" lbank="3" prog="65" />
+ <Patch name="FatOctaRes" hbank="63" lbank="3" prog="66" />
+ <Patch name="Org Bass" hbank="63" lbank="3" prog="67" />
+ <Patch name="FM Klick" hbank="63" lbank="3" prog="68" />
+ <Patch name="Fat Low" hbank="63" lbank="3" prog="69" />
+ <Patch name="SimplePowr" hbank="63" lbank="3" prog="70" />
+ <Patch name="VeloString" hbank="63" lbank="3" prog="71" />
+ <Patch name="NoSofia St" hbank="63" lbank="3" prog="72" />
+ <Patch name="HoodStrngs" hbank="63" lbank="3" prog="73" />
+ <Patch name="FullStrngs" hbank="63" lbank="3" prog="74" />
+ <Patch name="Chamber AT" hbank="63" lbank="3" prog="75" />
+ <Patch name="Big Swell2" hbank="63" lbank="3" prog="76" />
+ <Patch name="BlueString" hbank="63" lbank="3" prog="77" />
+ <Patch name="Old String" hbank="63" lbank="3" prog="78" />
+ <Patch name="78rpmStrgs" hbank="63" lbank="3" prog="79" />
+ <Patch name="Ens+Flute" hbank="63" lbank="3" prog="80" />
+ <Patch name="Bells&amp;Bows" hbank="63" lbank="3" prog="81" />
+ <Patch name="The Pad" hbank="63" lbank="3" prog="82" />
+ <Patch name="Full PWM" hbank="63" lbank="3" prog="83" />
+ <Patch name="HybridSect" hbank="63" lbank="3" prog="84" />
+ <Patch name="TaniBrass" hbank="63" lbank="3" prog="85" />
+ <Patch name="Hybrid" hbank="63" lbank="3" prog="86" />
+ <Patch name="F HornSec2" hbank="63" lbank="3" prog="87" />
+ <Patch name="Hi Brass 2" hbank="63" lbank="3" prog="88" />
+ <Patch name="Brassy" hbank="63" lbank="3" prog="89" />
+ <Patch name="Hybri Pad" hbank="63" lbank="3" prog="90" />
+ <Patch name="Oberhorns" hbank="63" lbank="3" prog="91" />
+ <Patch name="PiccoloTpt" hbank="63" lbank="3" prog="92" />
+ <Patch name="Flugelist" hbank="63" lbank="3" prog="93" />
+ <Patch name="Soprano 3" hbank="63" lbank="3" prog="94" />
+ <Patch name="4Brothers" hbank="63" lbank="3" prog="95" />
+ <Patch name="Antique" hbank="63" lbank="3" prog="96" />
+ <Patch name="Flutter Fl" hbank="63" lbank="3" prog="97" />
+ <Patch name="Real Flute" hbank="63" lbank="3" prog="98" />
+ <Patch name="Querfloete" hbank="63" lbank="3" prog="99" />
+ <Patch name="Oboe+EHorn" hbank="63" lbank="3" prog="100" />
+ <Patch name="FluteChord" hbank="63" lbank="3" prog="101" />
+ <Patch name="Mini Soft" hbank="63" lbank="3" prog="102" />
+ <Patch name="Portatone" hbank="63" lbank="3" prog="103" />
+ <Patch name="Sine 2" hbank="63" lbank="3" prog="104" />
+ <Patch name="Bare Saw" hbank="63" lbank="3" prog="105" />
+ <Patch name="Green Eyes" hbank="63" lbank="3" prog="106" />
+ <Patch name="inda Night" hbank="63" lbank="3" prog="107" />
+ <Patch name="Shine on" hbank="63" lbank="3" prog="108" />
+ <Patch name="Simp. Pad" hbank="63" lbank="3" prog="109" />
+ <Patch name="Voxxaire" hbank="63" lbank="3" prog="110" />
+ <Patch name="Angelvoice" hbank="63" lbank="3" prog="111" />
+ <Patch name="Shangralo" hbank="63" lbank="3" prog="112" />
+ <Patch name="Warm PWM" hbank="63" lbank="3" prog="113" />
+ <Patch name="Balcony" hbank="63" lbank="3" prog="114" />
+ <Patch name="Alabaster" hbank="63" lbank="3" prog="115" />
+ <Patch name="BackPad MW" hbank="63" lbank="3" prog="116" />
+ <Patch name="Dark Tower" hbank="63" lbank="3" prog="117" />
+ <Patch name="Basic Poly" hbank="63" lbank="3" prog="118" />
+ <Patch name="Straight" hbank="63" lbank="3" prog="119" />
+ <Patch name="Soleil" hbank="63" lbank="3" prog="120" />
+ <Patch name="Ana Synth1" hbank="63" lbank="3" prog="121" />
+ <Patch name="PopularSyn" hbank="63" lbank="3" prog="122" />
+ <Patch name="For Bertje" hbank="63" lbank="3" prog="123" />
+ <Patch name="Udu Too" hbank="63" lbank="3" prog="124" />
+ <Patch name="Funky Mood" hbank="63" lbank="3" prog="125" />
+ <Patch name="Step Down" hbank="63" lbank="3" prog="126" />
+ <Patch name="Shantasma" hbank="63" lbank="3" prog="127" />
+ </PatchGroup>
+ <PatchGroup name="Preset 5">
+ <Patch name="Gruvmaster" hbank="63" lbank="4" prog="0" />
+ <Patch name="ANbasicARP" hbank="63" lbank="4" prog="1" />
+ <Patch name="Europa" hbank="63" lbank="4" prog="2" />
+ <Patch name="Q Machine" hbank="63" lbank="4" prog="3" />
+ <Patch name="Happy Boy" hbank="63" lbank="4" prog="4" />
+ <Patch name="X-Pulsar" hbank="63" lbank="4" prog="5" />
+ <Patch name="Tekno Spy" hbank="63" lbank="4" prog="6" />
+ <Patch name="Tuff Arp" hbank="63" lbank="4" prog="7" />
+ <Patch name="Polygroove" hbank="63" lbank="4" prog="8" />
+ <Patch name="OrangeMW" hbank="63" lbank="4" prog="9" />
+ <Patch name="Hip Chordz" hbank="63" lbank="4" prog="10" />
+ <Patch name="Em Arp" hbank="63" lbank="4" prog="11" />
+ <Patch name="LostIsland" hbank="63" lbank="4" prog="12" />
+ <Patch name="Bobby Bass" hbank="63" lbank="4" prog="13" />
+ <Patch name="RnBass" hbank="63" lbank="4" prog="14" />
+ <Patch name="SimpleBss2" hbank="63" lbank="4" prog="15" />
+ <Patch name="SimpleReso" hbank="63" lbank="4" prog="16" />
+ <Patch name="BobbyJuice" hbank="63" lbank="4" prog="17" />
+ <Patch name="Bass&amp;Comp!" hbank="63" lbank="4" prog="18" />
+ <Patch name="TranceBass" hbank="63" lbank="4" prog="19" />
+ <Patch name="Emlate" hbank="63" lbank="4" prog="20" />
+ <Patch name="Velomaster" hbank="63" lbank="4" prog="21" />
+ <Patch name="Kick Bass" hbank="63" lbank="4" prog="22" />
+ <Patch name="Hollow" hbank="63" lbank="4" prog="23" />
+ <Patch name="Em Bass" hbank="63" lbank="4" prog="24" />
+ <Patch name="Oxide" hbank="63" lbank="4" prog="25" />
+ <Patch name="Acidd" hbank="63" lbank="4" prog="26" />
+ <Patch name="Pirate" hbank="63" lbank="4" prog="27" />
+ <Patch name="AgressoFx" hbank="63" lbank="4" prog="28" />
+ <Patch name="LOFI-BASS" hbank="63" lbank="4" prog="29" />
+ <Patch name="Quack" hbank="63" lbank="4" prog="30" />
+ <Patch name="ConeFlappe" hbank="63" lbank="4" prog="31" />
+ <Patch name="Warmest" hbank="63" lbank="4" prog="32" />
+ <Patch name="FatStrings" hbank="63" lbank="4" prog="33" />
+ <Patch name="Superstrgs" hbank="63" lbank="4" prog="34" />
+ <Patch name="JupiterStr" hbank="63" lbank="4" prog="35" />
+ <Patch name="MIDIPAD" hbank="63" lbank="4" prog="36" />
+ <Patch name="AKIRABRASS" hbank="63" lbank="4" prog="37" />
+ <Patch name="TV Brass" hbank="63" lbank="4" prog="38" />
+ <Patch name="Oberbrass" hbank="63" lbank="4" prog="39" />
+ <Patch name="Thinth" hbank="63" lbank="4" prog="40" />
+ <Patch name="Trendy" hbank="63" lbank="4" prog="41" />
+ <Patch name="Tech Lead" hbank="63" lbank="4" prog="42" />
+ <Patch name="PulseWidth" hbank="63" lbank="4" prog="43" />
+ <Patch name="Mr. Finger" hbank="63" lbank="4" prog="44" />
+ <Patch name="Punch Lead" hbank="63" lbank="4" prog="45" />
+ <Patch name="GOA LEAD" hbank="63" lbank="4" prog="46" />
+ <Patch name="I.C.U.2." hbank="63" lbank="4" prog="47" />
+ <Patch name="Space Lead" hbank="63" lbank="4" prog="48" />
+ <Patch name="Lead Wait" hbank="63" lbank="4" prog="49" />
+ <Patch name="Pig Lead" hbank="63" lbank="4" prog="50" />
+ <Patch name="Chordz" hbank="63" lbank="4" prog="51" />
+ <Patch name="Twilight" hbank="63" lbank="4" prog="52" />
+ <Patch name="VDU Pad" hbank="63" lbank="4" prog="53" />
+ <Patch name="HPF+LPFpad" hbank="63" lbank="4" prog="54" />
+ <Patch name="Sonar Pad" hbank="63" lbank="4" prog="55" />
+ <Patch name="Whisperer" hbank="63" lbank="4" prog="56" />
+ <Patch name="Flangerous" hbank="63" lbank="4" prog="57" />
+ <Patch name="Sadness" hbank="63" lbank="4" prog="58" />
+ <Patch name="Super Back" hbank="63" lbank="4" prog="59" />
+ <Patch name="Bastille" hbank="63" lbank="4" prog="60" />
+ <Patch name="Fat Swell" hbank="63" lbank="4" prog="61" />
+ <Patch name="Pad&amp;Syn" hbank="63" lbank="4" prog="62" />
+ <Patch name="Eurostar" hbank="63" lbank="4" prog="63" />
+ <Patch name="Pretty far" hbank="63" lbank="4" prog="64" />
+ <Patch name="Needles" hbank="63" lbank="4" prog="65" />
+ <Patch name="VectorPad1" hbank="63" lbank="4" prog="66" />
+ <Patch name="Wake Up" hbank="63" lbank="4" prog="67" />
+ <Patch name="Ether" hbank="63" lbank="4" prog="68" />
+ <Patch name="Spiralised" hbank="63" lbank="4" prog="69" />
+ <Patch name="RezSinePad" hbank="63" lbank="4" prog="70" />
+ <Patch name="Granular" hbank="63" lbank="4" prog="71" />
+ <Patch name="Ropey" hbank="63" lbank="4" prog="72" />
+ <Patch name="Smear" hbank="63" lbank="4" prog="73" />
+ <Patch name="Mizar" hbank="63" lbank="4" prog="74" />
+ <Patch name="Homesick" hbank="63" lbank="4" prog="75" />
+ <Patch name="Lost." hbank="63" lbank="4" prog="76" />
+ <Patch name="Haunting" hbank="63" lbank="4" prog="77" />
+ <Patch name="Infant" hbank="63" lbank="4" prog="78" />
+ <Patch name="High Sine" hbank="63" lbank="4" prog="79" />
+ <Patch name="Sm.OrganPd" hbank="63" lbank="4" prog="80" />
+ <Patch name="Chianti" hbank="63" lbank="4" prog="81" />
+ <Patch name="Guitar Pad" hbank="63" lbank="4" prog="82" />
+ <Patch name="Tuscan" hbank="63" lbank="4" prog="83" />
+ <Patch name="Shuttle" hbank="63" lbank="4" prog="84" />
+ <Patch name="Ether 2" hbank="63" lbank="4" prog="85" />
+ <Patch name="Sine Comp" hbank="63" lbank="4" prog="86" />
+ <Patch name="Queens" hbank="63" lbank="4" prog="87" />
+ <Patch name="Kairo" hbank="63" lbank="4" prog="88" />
+ <Patch name="Synes XL" hbank="63" lbank="4" prog="89" />
+ <Patch name="FaaatDance" hbank="63" lbank="4" prog="90" />
+ <Patch name="Random LFO" hbank="63" lbank="4" prog="91" />
+ <Patch name="Vacuum" hbank="63" lbank="4" prog="92" />
+ <Patch name="RezzPunch" hbank="63" lbank="4" prog="93" />
+ <Patch name="Kordal MW" hbank="63" lbank="4" prog="94" />
+ <Patch name="M-Trance" hbank="63" lbank="4" prog="95" />
+ <Patch name="Euro" hbank="63" lbank="4" prog="96" />
+ <Patch name="DX Metal" hbank="63" lbank="4" prog="97" />
+ <Patch name="Atlantis" hbank="63" lbank="4" prog="98" />
+ <Patch name="Meteors" hbank="63" lbank="4" prog="99" />
+ <Patch name="Girlfriend" hbank="63" lbank="4" prog="100" />
+ <Patch name="Nebula AT" hbank="63" lbank="4" prog="101" />
+ <Patch name="CosmicRain" hbank="63" lbank="4" prog="102" />
+ <Patch name="Contact" hbank="63" lbank="4" prog="103" />
+ <Patch name="Dalahi" hbank="63" lbank="4" prog="104" />
+ <Patch name="CrushpadMW" hbank="63" lbank="4" prog="105" />
+ <Patch name="Ar-tic" hbank="63" lbank="4" prog="106" />
+ <Patch name="Alaska" hbank="63" lbank="4" prog="107" />
+ <Patch name="Clusters" hbank="63" lbank="4" prog="108" />
+ <Patch name="Glister" hbank="63" lbank="4" prog="109" />
+ <Patch name="SliceIt Up" hbank="63" lbank="4" prog="110" />
+ <Patch name="Chaser 3" hbank="63" lbank="4" prog="111" />
+ <Patch name="Surface" hbank="63" lbank="4" prog="112" />
+ <Patch name="Stalagtite" hbank="63" lbank="4" prog="113" />
+ <Patch name="4ling Star" hbank="63" lbank="4" prog="114" />
+ <Patch name="Old Skool" hbank="63" lbank="4" prog="115" />
+ <Patch name="Katsu" hbank="63" lbank="4" prog="116" />
+ <Patch name="Genie" hbank="63" lbank="4" prog="117" />
+ <Patch name="Dream Text" hbank="63" lbank="4" prog="118" />
+ <Patch name="Ambi Rain" hbank="63" lbank="4" prog="119" />
+ <Patch name="Bitzz MW" hbank="63" lbank="4" prog="120" />
+ <Patch name="JumpQ MW" hbank="63" lbank="4" prog="121" />
+ <Patch name="Molt" hbank="63" lbank="4" prog="122" />
+ <Patch name="Samsara" hbank="63" lbank="4" prog="123" />
+ <Patch name="FX-MWSweep" hbank="63" lbank="4" prog="124" />
+ <Patch name="Static" hbank="63" lbank="4" prog="125" />
+ <Patch name="Wriggle" hbank="63" lbank="4" prog="126" />
+ <Patch name="Kraftbeat" hbank="63" lbank="4" prog="127" />
+ </PatchGroup>
+ <PatchGroup name="User 1">
+ <Patch name="JM25 M.W." hbank="63" lbank="8" prog="0" />
+ <Patch name="Softstars" hbank="63" lbank="8" prog="1" />
+ <Patch name="Fast PWM" hbank="63" lbank="8" prog="2" />
+ <Patch name="Terminator" hbank="63" lbank="8" prog="3" />
+ <Patch name="Soft Tar" hbank="63" lbank="8" prog="4" />
+ <Patch name="Sorted" hbank="63" lbank="8" prog="5" />
+ <Patch name="Trendy Wah" hbank="63" lbank="8" prog="6" />
+ <Patch name="Feed S&amp;H" hbank="63" lbank="8" prog="7" />
+ <Patch name="Didge" hbank="63" lbank="8" prog="8" />
+ <Patch name="Old House" hbank="63" lbank="8" prog="9" />
+ <Patch name="HPF Dance" hbank="63" lbank="8" prog="10" />
+ <Patch name="Like Bees" hbank="63" lbank="8" prog="11" />
+ <Patch name="Exodus" hbank="63" lbank="8" prog="12" />
+ <Patch name="S/H Gruv" hbank="63" lbank="8" prog="13" />
+ <Patch name="Funk It!!" hbank="63" lbank="8" prog="14" />
+ <Patch name="Opening" hbank="63" lbank="8" prog="15" />
+ <Patch name="DigDag" hbank="63" lbank="8" prog="16" />
+ <Patch name="Dark Light" hbank="63" lbank="8" prog="17" />
+ <Patch name="Boom Bass" hbank="63" lbank="8" prog="18" />
+ <Patch name="Dirtbox" hbank="63" lbank="8" prog="19" />
+ <Patch name="Shandala" hbank="63" lbank="8" prog="20" />
+ <Patch name="Titan" hbank="63" lbank="8" prog="21" />
+ <Patch name="Puls Step" hbank="63" lbank="8" prog="22" />
+ <Patch name="Racket" hbank="63" lbank="8" prog="23" />
+ <Patch name="Big Lead" hbank="63" lbank="8" prog="24" />
+ <Patch name="Blush" hbank="63" lbank="8" prog="25" />
+ <Patch name="Squeaky" hbank="63" lbank="8" prog="26" />
+ <Patch name="Duck Worm" hbank="63" lbank="8" prog="27" />
+ <Patch name="Jon" hbank="63" lbank="8" prog="28" />
+ <Patch name="Weird scar" hbank="63" lbank="8" prog="29" />
+ <Patch name="Auto Wah" hbank="63" lbank="8" prog="30" />
+ <Patch name="MINIMAL" hbank="63" lbank="8" prog="31" />
+ <Patch name="MGul" hbank="63" lbank="8" prog="32" />
+ <Patch name="BrokenStar" hbank="63" lbank="8" prog="33" />
+ <Patch name="Smooth" hbank="63" lbank="8" prog="34" />
+ <Patch name="Sawmill" hbank="63" lbank="8" prog="35" />
+ <Patch name="Cavern" hbank="63" lbank="8" prog="36" />
+ <Patch name="Supersnap" hbank="63" lbank="8" prog="37" />
+ <Patch name="Fuzzline" hbank="63" lbank="8" prog="38" />
+ <Patch name="Foreplay" hbank="63" lbank="8" prog="39" />
+ <Patch name="Brooklyn" hbank="63" lbank="8" prog="40" />
+ <Patch name="Brief" hbank="63" lbank="8" prog="41" />
+ <Patch name="Dist-MW" hbank="63" lbank="8" prog="42" />
+ <Patch name="Hit&amp;Down" hbank="63" lbank="8" prog="43" />
+ <Patch name="Froglegs" hbank="63" lbank="8" prog="44" />
+ <Patch name="Sand" hbank="63" lbank="8" prog="45" />
+ <Patch name="R&amp;B Steel" hbank="63" lbank="8" prog="46" />
+ <Patch name="Rabbit" hbank="63" lbank="8" prog="47" />
+ <Patch name="ElecWorld" hbank="63" lbank="8" prog="48" />
+ <Patch name="Sickday" hbank="63" lbank="8" prog="49" />
+ <Patch name="LoSnake" hbank="63" lbank="8" prog="50" />
+ <Patch name="Boomeran" hbank="63" lbank="8" prog="51" />
+ <Patch name="O+Ca+Si+Na" hbank="63" lbank="8" prog="52" />
+ <Patch name="Space Run" hbank="63" lbank="8" prog="53" />
+ <Patch name="Additive" hbank="63" lbank="8" prog="54" />
+ <Patch name="Rap Lead 1" hbank="63" lbank="8" prog="55" />
+ <Patch name="Nordic" hbank="63" lbank="8" prog="56" />
+ <Patch name="Hip Aco" hbank="63" lbank="8" prog="57" />
+ <Patch name="Mr. Cool" hbank="63" lbank="8" prog="58" />
+ <Patch name="Orch Hits" hbank="63" lbank="8" prog="59" />
+ <Patch name="Damp Cat" hbank="63" lbank="8" prog="60" />
+ <Patch name="FISHINREEL" hbank="63" lbank="8" prog="61" />
+ <Patch name="Melo Trmlo" hbank="63" lbank="8" prog="62" />
+ <Patch name="Fois Gras" hbank="63" lbank="8" prog="63" />
+ <Patch name="CheapEP" hbank="63" lbank="8" prog="64" />
+ <Patch name="AnaMarcato" hbank="63" lbank="8" prog="65" />
+ <Patch name="G Bass" hbank="63" lbank="8" prog="66" />
+ <Patch name="Dolphin" hbank="63" lbank="8" prog="67" />
+ <Patch name="Evolve" hbank="63" lbank="8" prog="68" />
+ <Patch name="ARRIVAL" hbank="63" lbank="8" prog="69" />
+ <Patch name="Wazzo" hbank="63" lbank="8" prog="70" />
+ <Patch name="Rap Lead" hbank="63" lbank="8" prog="71" />
+ <Patch name="Richard" hbank="63" lbank="8" prog="72" />
+ <Patch name="Hip Pick" hbank="63" lbank="8" prog="73" />
+ <Patch name="Early Lead" hbank="63" lbank="8" prog="74" />
+ <Patch name="BDScrtch" hbank="63" lbank="8" prog="75" />
+ <Patch name="Dukes" hbank="63" lbank="8" prog="76" />
+ <Patch name="Mayday MW" hbank="63" lbank="8" prog="77" />
+ <Patch name="CoolWAH" hbank="63" lbank="8" prog="78" />
+ <Patch name="Mascara" hbank="63" lbank="8" prog="79" />
+ <Patch name="HipWahEP" hbank="63" lbank="8" prog="80" />
+ <Patch name="ChorusComp" hbank="63" lbank="8" prog="81" />
+ <Patch name="Compton" hbank="63" lbank="8" prog="82" />
+ <Patch name="Red Dots" hbank="63" lbank="8" prog="83" />
+ <Patch name="Fragile" hbank="63" lbank="8" prog="84" />
+ <Patch name="SpookyVibe" hbank="63" lbank="8" prog="85" />
+ <Patch name="Gangsta" hbank="63" lbank="8" prog="86" />
+ <Patch name="Rap Lead" hbank="63" lbank="8" prog="87" />
+ <Patch name="81Z Comp" hbank="63" lbank="8" prog="88" />
+ <Patch name="DarkBass" hbank="63" lbank="8" prog="89" />
+ <Patch name="HiPaWheel" hbank="63" lbank="8" prog="90" />
+ <Patch name="Rap Scream" hbank="63" lbank="8" prog="91" />
+ <Patch name="InyerBass" hbank="63" lbank="8" prog="92" />
+ <Patch name="Pierced" hbank="63" lbank="8" prog="93" />
+ <Patch name="Hip Mute" hbank="63" lbank="8" prog="94" />
+ <Patch name="Hip Pizz" hbank="63" lbank="8" prog="95" />
+ <Patch name="R&amp;B EP+" hbank="63" lbank="8" prog="96" />
+ <Patch name="Kustom" hbank="63" lbank="8" prog="97" />
+ <Patch name="PortaBass" hbank="63" lbank="8" prog="98" />
+ <Patch name="Sirens" hbank="63" lbank="8" prog="99" />
+ <Patch name="Silver" hbank="63" lbank="8" prog="100" />
+ <Patch name="Zanaks" hbank="63" lbank="8" prog="101" />
+ <Patch name="2001 Sub" hbank="63" lbank="8" prog="102" />
+ <Patch name="Sine Lead" hbank="63" lbank="8" prog="103" />
+ <Patch name="UK Oam" hbank="63" lbank="8" prog="104" />
+ <Patch name="Fooger" hbank="63" lbank="8" prog="105" />
+ <Patch name="D-tune" hbank="63" lbank="8" prog="106" />
+ <Patch name="Rap Toyz" hbank="63" lbank="8" prog="107" />
+ <Patch name="Mucus M" hbank="63" lbank="8" prog="108" />
+ <Patch name="Future Z" hbank="63" lbank="8" prog="109" />
+ <Patch name="FM Guitar" hbank="63" lbank="8" prog="110" />
+ <Patch name="Trancedot" hbank="63" lbank="8" prog="111" />
+ <Patch name="Dead?Alive" hbank="63" lbank="8" prog="112" />
+ <Patch name="SlowSuckr" hbank="63" lbank="8" prog="113" />
+ <Patch name="Clickk" hbank="63" lbank="8" prog="114" />
+ <Patch name="KewBrick" hbank="63" lbank="8" prog="115" />
+ <Patch name="Munchkins" hbank="63" lbank="8" prog="116" />
+ <Patch name="Ants" hbank="63" lbank="8" prog="117" />
+ <Patch name="Snoop Bass" hbank="63" lbank="8" prog="118" />
+ <Patch name="BabeMagnet" hbank="63" lbank="8" prog="119" />
+ <Patch name="Jones" hbank="63" lbank="8" prog="120" />
+ <Patch name="100 dreams" hbank="63" lbank="8" prog="121" />
+ <Patch name="FKitchen" hbank="63" lbank="8" prog="122" />
+ <Patch name="Rabino" hbank="63" lbank="8" prog="123" />
+ <Patch name="Teknophobe" hbank="63" lbank="8" prog="124" />
+ <Patch name="FizzWah" hbank="63" lbank="8" prog="125" />
+ <Patch name="Hip Voice" hbank="63" lbank="8" prog="126" />
+ <Patch name="Strobe" hbank="63" lbank="8" prog="127" />
+ </PatchGroup>
+ <PatchGroup name="User 2">
+ <Patch name="Gruvmaster" hbank="63" lbank="9" prog="0" />
+ <Patch name="ANbasicARP" hbank="63" lbank="9" prog="1" />
+ <Patch name="Europa" hbank="63" lbank="9" prog="2" />
+ <Patch name="Q Machine" hbank="63" lbank="9" prog="3" />
+ <Patch name="Happy Boy" hbank="63" lbank="9" prog="4" />
+ <Patch name="X-Pulsar" hbank="63" lbank="9" prog="5" />
+ <Patch name="Tekno Spy" hbank="63" lbank="9" prog="6" />
+ <Patch name="Tuff Arp" hbank="63" lbank="9" prog="7" />
+ <Patch name="Polygroove" hbank="63" lbank="9" prog="8" />
+ <Patch name="OrangeMW" hbank="63" lbank="9" prog="9" />
+ <Patch name="Hip Chordz" hbank="63" lbank="9" prog="10" />
+ <Patch name="Em Arp" hbank="63" lbank="9" prog="11" />
+ <Patch name="LostIsland" hbank="63" lbank="9" prog="12" />
+ <Patch name="Bobby Bass" hbank="63" lbank="9" prog="13" />
+ <Patch name="RnBass" hbank="63" lbank="9" prog="14" />
+ <Patch name="SimpleBss2" hbank="63" lbank="9" prog="15" />
+ <Patch name="SimpleReso" hbank="63" lbank="9" prog="16" />
+ <Patch name="BobbyJuice" hbank="63" lbank="9" prog="17" />
+ <Patch name="Bass&amp;Comp!" hbank="63" lbank="9" prog="18" />
+ <Patch name="TranceBass" hbank="63" lbank="9" prog="19" />
+ <Patch name="Emlate" hbank="63" lbank="9" prog="20" />
+ <Patch name="Velomaster" hbank="63" lbank="9" prog="21" />
+ <Patch name="Kick Bass" hbank="63" lbank="9" prog="22" />
+ <Patch name="Hollow" hbank="63" lbank="9" prog="23" />
+ <Patch name="Em Bass" hbank="63" lbank="9" prog="24" />
+ <Patch name="Oxide" hbank="63" lbank="9" prog="25" />
+ <Patch name="Acidd" hbank="63" lbank="9" prog="26" />
+ <Patch name="Pirate" hbank="63" lbank="9" prog="27" />
+ <Patch name="AgressoFx" hbank="63" lbank="9" prog="28" />
+ <Patch name="LOFI-BASS" hbank="63" lbank="9" prog="29" />
+ <Patch name="Quack" hbank="63" lbank="9" prog="30" />
+ <Patch name="ConeFlappe" hbank="63" lbank="9" prog="31" />
+ <Patch name="Warmest" hbank="63" lbank="9" prog="32" />
+ <Patch name="FatStrings" hbank="63" lbank="9" prog="33" />
+ <Patch name="Superstrgs" hbank="63" lbank="9" prog="34" />
+ <Patch name="JupiterStr" hbank="63" lbank="9" prog="35" />
+ <Patch name="MIDIPAD" hbank="63" lbank="9" prog="36" />
+ <Patch name="AKIRABRASS" hbank="63" lbank="9" prog="37" />
+ <Patch name="TV Brass" hbank="63" lbank="9" prog="38" />
+ <Patch name="Oberbrass" hbank="63" lbank="9" prog="39" />
+ <Patch name="Thinth" hbank="63" lbank="9" prog="40" />
+ <Patch name="Trendy" hbank="63" lbank="9" prog="41" />
+ <Patch name="Tech Lead" hbank="63" lbank="9" prog="42" />
+ <Patch name="PulseWidth" hbank="63" lbank="9" prog="43" />
+ <Patch name="Mr. Finger" hbank="63" lbank="9" prog="44" />
+ <Patch name="Punch Lead" hbank="63" lbank="9" prog="45" />
+ <Patch name="GOA LEAD" hbank="63" lbank="9" prog="46" />
+ <Patch name="I.C.U.2." hbank="63" lbank="9" prog="47" />
+ <Patch name="Space Lead" hbank="63" lbank="9" prog="48" />
+ <Patch name="Lead Wait" hbank="63" lbank="9" prog="49" />
+ <Patch name="Pig Lead" hbank="63" lbank="9" prog="50" />
+ <Patch name="Chordz" hbank="63" lbank="9" prog="51" />
+ <Patch name="Twilight" hbank="63" lbank="9" prog="52" />
+ <Patch name="VDU Pad" hbank="63" lbank="9" prog="53" />
+ <Patch name="HPF+LPFpad" hbank="63" lbank="9" prog="54" />
+ <Patch name="Sonar Pad" hbank="63" lbank="9" prog="55" />
+ <Patch name="Whisperer" hbank="63" lbank="9" prog="56" />
+ <Patch name="Flangerous" hbank="63" lbank="9" prog="57" />
+ <Patch name="Sadness" hbank="63" lbank="9" prog="58" />
+ <Patch name="Super Back" hbank="63" lbank="9" prog="59" />
+ <Patch name="Bastille" hbank="63" lbank="9" prog="60" />
+ <Patch name="Fat Swell" hbank="63" lbank="9" prog="61" />
+ <Patch name="Pad&amp;Syn" hbank="63" lbank="9" prog="62" />
+ <Patch name="Eurostar" hbank="63" lbank="9" prog="63" />
+ <Patch name="Pretty far" hbank="63" lbank="9" prog="64" />
+ <Patch name="Needles" hbank="63" lbank="9" prog="65" />
+ <Patch name="VectorPad1" hbank="63" lbank="9" prog="66" />
+ <Patch name="Wake Up" hbank="63" lbank="9" prog="67" />
+ <Patch name="Ether" hbank="63" lbank="9" prog="68" />
+ <Patch name="Spiralised" hbank="63" lbank="9" prog="69" />
+ <Patch name="RezSinePad" hbank="63" lbank="9" prog="70" />
+ <Patch name="Granular" hbank="63" lbank="9" prog="71" />
+ <Patch name="Ropey" hbank="63" lbank="9" prog="72" />
+ <Patch name="Smear" hbank="63" lbank="9" prog="73" />
+ <Patch name="Mizar" hbank="63" lbank="9" prog="74" />
+ <Patch name="Homesick" hbank="63" lbank="9" prog="75" />
+ <Patch name="Lost." hbank="63" lbank="9" prog="76" />
+ <Patch name="Haunting" hbank="63" lbank="9" prog="77" />
+ <Patch name="Infant" hbank="63" lbank="9" prog="78" />
+ <Patch name="High Sine" hbank="63" lbank="9" prog="79" />
+ <Patch name="Sm.OrganPd" hbank="63" lbank="9" prog="80" />
+ <Patch name="Chianti" hbank="63" lbank="9" prog="81" />
+ <Patch name="Guitar Pad" hbank="63" lbank="9" prog="82" />
+ <Patch name="Tuscan" hbank="63" lbank="9" prog="83" />
+ <Patch name="Shuttle" hbank="63" lbank="9" prog="84" />
+ <Patch name="Ether 2" hbank="63" lbank="9" prog="85" />
+ <Patch name="Sine Comp" hbank="63" lbank="9" prog="86" />
+ <Patch name="Queens" hbank="63" lbank="9" prog="87" />
+ <Patch name="Kairo" hbank="63" lbank="9" prog="88" />
+ <Patch name="Synes XL" hbank="63" lbank="9" prog="89" />
+ <Patch name="FaaatDance" hbank="63" lbank="9" prog="90" />
+ <Patch name="Random LFO" hbank="63" lbank="9" prog="91" />
+ <Patch name="Vacuum" hbank="63" lbank="9" prog="92" />
+ <Patch name="RezzPunch" hbank="63" lbank="9" prog="93" />
+ <Patch name="Kordal MW" hbank="63" lbank="9" prog="94" />
+ <Patch name="M-Trance" hbank="63" lbank="9" prog="95" />
+ <Patch name="Euro" hbank="63" lbank="9" prog="96" />
+ <Patch name="DX Metal" hbank="63" lbank="9" prog="97" />
+ <Patch name="Atlantis" hbank="63" lbank="9" prog="98" />
+ <Patch name="Meteors" hbank="63" lbank="9" prog="99" />
+ <Patch name="Girlfriend" hbank="63" lbank="9" prog="100" />
+ <Patch name="Nebula AT" hbank="63" lbank="9" prog="101" />
+ <Patch name="CosmicRain" hbank="63" lbank="9" prog="102" />
+ <Patch name="Contact" hbank="63" lbank="9" prog="103" />
+ <Patch name="Dalahi" hbank="63" lbank="9" prog="104" />
+ <Patch name="CrushpadMW" hbank="63" lbank="9" prog="105" />
+ <Patch name="Ar-tic" hbank="63" lbank="9" prog="106" />
+ <Patch name="Alaska" hbank="63" lbank="9" prog="107" />
+ <Patch name="Clusters" hbank="63" lbank="9" prog="108" />
+ <Patch name="Glister" hbank="63" lbank="9" prog="109" />
+ <Patch name="SliceIt Up" hbank="63" lbank="9" prog="110" />
+ <Patch name="Chaser 3" hbank="63" lbank="9" prog="111" />
+ <Patch name="Surface" hbank="63" lbank="9" prog="112" />
+ <Patch name="Stalagtite" hbank="63" lbank="9" prog="113" />
+ <Patch name="4ling Star" hbank="63" lbank="9" prog="114" />
+ <Patch name="Old Skool" hbank="63" lbank="9" prog="115" />
+ <Patch name="Katsu" hbank="63" lbank="9" prog="116" />
+ <Patch name="Genie" hbank="63" lbank="9" prog="117" />
+ <Patch name="Dream Text" hbank="63" lbank="9" prog="118" />
+ <Patch name="Ambi Rain" hbank="63" lbank="9" prog="119" />
+ <Patch name="Bitzz MW" hbank="63" lbank="9" prog="120" />
+ <Patch name="JumpQ MW" hbank="63" lbank="9" prog="121" />
+ <Patch name="Molt" hbank="63" lbank="9" prog="122" />
+ <Patch name="Samsara" hbank="63" lbank="9" prog="123" />
+ <Patch name="FX-MWSweep" hbank="63" lbank="9" prog="124" />
+ <Patch name="Static" hbank="63" lbank="9" prog="125" />
+ <Patch name="Wriggle" hbank="63" lbank="9" prog="126" />
+ <Patch name="Kraftbeat" hbank="63" lbank="9" prog="127" />
+ </PatchGroup>
+ <PatchGroup name="Drums Preset">
+ <Patch name="PoweredStd" hbank="63" lbank="32" prog="0" drum="1" />
+ <Patch name="DryStandrd" hbank="63" lbank="32" prog="1" drum="1" />
+ <Patch name="RockSt1" hbank="63" lbank="32" prog="2" drum="1" />
+ <Patch name="RockSt2" hbank="63" lbank="32" prog="3" drum="1" />
+ <Patch name="RockMono 1" hbank="63" lbank="32" prog="4" drum="1" />
+ <Patch name="Hip Hop1" hbank="63" lbank="32" prog="5" drum="1" />
+ <Patch name="Hip Hop2" hbank="63" lbank="32" prog="6" drum="1" />
+ <Patch name="HipStick1" hbank="63" lbank="32" prog="7" drum="1" />
+ <Patch name="T9HipKit1" hbank="63" lbank="32" prog="8" drum="1" />
+ <Patch name="RnB Kit1" hbank="63" lbank="32" prog="9" drum="1" />
+ <Patch name="RnB Kit2" hbank="63" lbank="32" prog="10" drum="1" />
+ <Patch name="Analog T9" hbank="63" lbank="32" prog="11" drum="1" />
+ <Patch name="Analog T8" hbank="63" lbank="32" prog="12" drum="1" />
+ <Patch name="Techno Kit" hbank="63" lbank="32" prog="13" drum="1" />
+ <Patch name="House Kit1" hbank="63" lbank="32" prog="14" drum="1" />
+ <Patch name="House Kit2" hbank="63" lbank="32" prog="15" drum="1" />
+ <Patch name="Big Kit" hbank="63" lbank="32" prog="16" drum="1" />
+ <Patch name="Break Kit" hbank="63" lbank="32" prog="17" drum="1" />
+ <Patch name="Drum`n`Bass" hbank="63" lbank="32" prog="18" drum="1" />
+ <Patch name="Acid Kit" hbank="63" lbank="32" prog="19" drum="1" />
+ <Patch name="Jungle Kit" hbank="63" lbank="32" prog="20" drum="1" />
+ <Patch name="Electric" hbank="63" lbank="32" prog="21" drum="1" />
+ <Patch name="Human Kit" hbank="63" lbank="32" prog="22" drum="1" />
+ <Patch name="Hard Kit" hbank="63" lbank="32" prog="23" drum="1" />
+ <Patch name="DistrtdKit" hbank="63" lbank="32" prog="24" drum="1" />
+ <Patch name="AmbientKit" hbank="63" lbank="32" prog="25" drum="1" />
+ <Patch name="Jazz Kit" hbank="63" lbank="32" prog="26" drum="1" />
+ <Patch name="Hip Hop3" hbank="63" lbank="32" prog="27" drum="1" />
+ <Patch name="Hip Hop4" hbank="63" lbank="32" prog="28" drum="1" />
+ <Patch name="HipStick2" hbank="63" lbank="32" prog="29" drum="1" />
+ <Patch name="Garage" hbank="63" lbank="32" prog="30" drum="1" />
+ <Patch name="All-Round" hbank="63" lbank="32" prog="31" drum="1" />
+ <Patch name="Rock Multi" hbank="63" lbank="32" prog="32" drum="1" />
+ <Patch name="Hip Multi" hbank="63" lbank="32" prog="33" drum="1" />
+ <Patch name="Percussion" hbank="63" lbank="32" prog="34" drum="1" />
+ <Patch name="Latin Parc" hbank="63" lbank="32" prog="35" drum="1" />
+ <Patch name="Gtr/Bs Fx" hbank="63" lbank="32" prog="36" drum="1" />
+ <Patch name="Wacko Kit" hbank="63" lbank="32" prog="37" drum="1" />
+ <Patch name="Wood Bits" hbank="63" lbank="32" prog="38" drum="1" />
+ <Patch name="Metal Bits" hbank="63" lbank="32" prog="39" drum="1" />
+ <Patch name="Hands Kit" hbank="63" lbank="32" prog="40" drum="1" />
+ <Patch name="Scratches" hbank="63" lbank="32" prog="41" drum="1" />
+ <Patch name="AcstSnares" hbank="63" lbank="32" prog="42" drum="1" />
+ <Patch name="StSnares" hbank="63" lbank="32" prog="43" drum="1" />
+ <Patch name="AllKicks" hbank="63" lbank="32" prog="44" drum="1" />
+ <Patch name="DanceKicks" hbank="63" lbank="32" prog="45" drum="1" />
+ <Patch name="Snare + Fx" hbank="63" lbank="32" prog="46" drum="1" />
+ <Patch name="Easy Snares" hbank="63" lbank="32" prog="47" drum="1" />
+ </PatchGroup>
+ <PatchGroup name="Drums User">
+ <Patch name="RockMono2" hbank="63" lbank="40" prog="0" drum="1" />
+ <Patch name="RockMono3" hbank="63" lbank="40" prog="1" drum="1" />
+ <Patch name="Hip Hop5" hbank="63" lbank="40" prog="2" drum="1" />
+ <Patch name="Hip Hop6" hbank="63" lbank="40" prog="3" drum="1" />
+ <Patch name="T9HipKit2" hbank="63" lbank="40" prog="4" drum="1" />
+ <Patch name="HipStick3" hbank="63" lbank="40" prog="5" drum="1" />
+ <Patch name="HipStick4" hbank="63" lbank="40" prog="6" drum="1" />
+ <Patch name="R&amp;B Kit3" hbank="63" lbank="40" prog="7" drum="1" />
+ <Patch name="Motor City" hbank="63" lbank="40" prog="8" drum="1" />
+ <Patch name="MW AmpSim" hbank="63" lbank="40" prog="9" drum="1" />
+ </PatchGroup>
+ <PatchGroup name="Drums GM">
+ <Patch name="Stereo GM" hbank="127" lbank="0" prog="0" drum="1" />
+ </PatchGroup>
+ <PatchGroup name="GM">
+ <Patch name="NaturlGrnd" hbank="0" lbank="0" prog="0" />
+ <Patch name="Rock Brite" hbank="0" lbank="0" prog="1" />
+ <Patch name="CP 2001" hbank="0" lbank="0" prog="2" />
+ <Patch name="Honkytonk" hbank="0" lbank="0" prog="3" />
+ <Patch name="E.Piano 1" hbank="0" lbank="0" prog="4" />
+ <Patch name="E.Piano 2" hbank="0" lbank="0" prog="5" />
+ <Patch name="Harpsicord" hbank="0" lbank="0" prog="6" />
+ <Patch name="Brite Clav" hbank="0" lbank="0" prog="7" />
+ <Patch name="Celeste" hbank="0" lbank="0" prog="8" />
+ <Patch name="Glocken" hbank="0" lbank="0" prog="9" />
+ <Patch name="Music Box" hbank="0" lbank="0" prog="10" />
+ <Patch name="Vibes" 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="TublarBell" hbank="0" lbank="0" prog="14" />
+ <Patch name="Dulcimar" hbank="0" lbank="0" prog="15" />
+ <Patch name="Draw 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="ChurchOrgn" 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="TangoAccrd" hbank="0" lbank="0" prog="23" />
+ <Patch name="Nylon" hbank="0" lbank="0" prog="24" />
+ <Patch name="Steel" hbank="0" lbank="0" prog="25" />
+ <Patch name="ModernJazz" hbank="0" lbank="0" prog="26" />
+ <Patch name="Clean" hbank="0" lbank="0" prog="27" />
+ <Patch name="Mute" hbank="0" lbank="0" prog="28" />
+ <Patch name="Overdrive" hbank="0" lbank="0" prog="29" />
+ <Patch name="Distortion" hbank="0" lbank="0" prog="30" />
+ <Patch name="Harmonics" hbank="0" lbank="0" prog="31" />
+ <Patch name="Accoustic" hbank="0" lbank="0" prog="32" />
+ <Patch name="FingerBass" hbank="0" lbank="0" prog="33" />
+ <Patch name="Pick Bass" hbank="0" lbank="0" prog="34" />
+ <Patch name="Fretless 2" hbank="0" lbank="0" prog="35" />
+ <Patch name="SimpleSlap" hbank="0" lbank="0" prog="36" />
+ <Patch name="Velo Slap" hbank="0" lbank="0" prog="37" />
+ <Patch name="SynthBass1" hbank="0" lbank="0" prog="38" />
+ <Patch name="SynthBass2" hbank="0" lbank="0" prog="39" />
+ <Patch name="Violin 2" hbank="0" lbank="0" prog="40" />
+ <Patch name="Viola 2" hbank="0" lbank="0" prog="41" />
+ <Patch name="Cello 2" hbank="0" lbank="0" prog="42" />
+ <Patch name="Contrabass" hbank="0" lbank="0" prog="43" />
+ <Patch name="TremoloStr" hbank="0" lbank="0" prog="44" />
+ <Patch name="Pizz" hbank="0" lbank="0" prog="45" />
+ <Patch name="Harp" hbank="0" lbank="0" prog="46" />
+ <Patch name="Timpni+Cym" hbank="0" lbank="0" prog="47" />
+ <Patch name="StereoSt1" hbank="0" lbank="0" prog="48" />
+ <Patch name="StereoSt2" hbank="0" lbank="0" prog="49" />
+ <Patch name="Grand Saw" hbank="0" lbank="0" prog="50" />
+ <Patch name="SynStrings" hbank="0" lbank="0" prog="51" />
+ <Patch name="Aah Choir" hbank="0" lbank="0" prog="52" />
+ <Patch name="Ooh Choir" hbank="0" lbank="0" prog="53" />
+ <Patch name="Syn Voice" hbank="0" lbank="0" prog="54" />
+ <Patch name="Orch.Hit" hbank="0" lbank="0" prog="55" />
+ <Patch name="Trumpet" hbank="0" lbank="0" prog="56" />
+ <Patch name="Trombone 2" hbank="0" lbank="0" prog="57" />
+ <Patch name="Tuba" hbank="0" lbank="0" prog="58" />
+ <Patch name="MuteTrpt 2" hbank="0" lbank="0" prog="59" />
+ <Patch name="F.Horns" hbank="0" lbank="0" prog="60" />
+ <Patch name="Brass Sect" hbank="0" lbank="0" prog="61" />
+ <Patch name="SynthBrass" hbank="0" lbank="0" prog="62" />
+ <Patch name="Soft Brass" hbank="0" lbank="0" prog="63" />
+ <Patch name="Soprano 2" hbank="0" lbank="0" prog="64" />
+ <Patch name="Alto Sax" hbank="0" lbank="0" prog="65" />
+ <Patch name="TenorSax 2" hbank="0" lbank="0" prog="66" />
+ <Patch name="Bari Sax" hbank="0" lbank="0" prog="67" />
+ <Patch name="Oboe" hbank="0" lbank="0" prog="68" />
+ <Patch name="Eng.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="Panflute" hbank="0" lbank="0" prog="75" />
+ <Patch name="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="Square Ld" hbank="0" lbank="0" prog="80" />
+ <Patch name="Saw Ld" hbank="0" lbank="0" prog="81" />
+ <Patch name="Caliop Ld" hbank="0" lbank="0" prog="82" />
+ <Patch name="Chiff Ld" hbank="0" lbank="0" prog="83" />
+ <Patch name="Charan Ld" hbank="0" lbank="0" prog="84" />
+ <Patch name="Voice Ld" hbank="0" lbank="0" prog="85" />
+ <Patch name="Fifth Ld" hbank="0" lbank="0" prog="86" />
+ <Patch name="Bass+Ld" hbank="0" lbank="0" prog="87" />
+ <Patch name="New Age" hbank="0" lbank="0" prog="88" />
+ <Patch name="Warm Pad" hbank="0" lbank="0" prog="89" />
+ <Patch name="Poly Synth" hbank="0" lbank="0" prog="90" />
+ <Patch name="Choir Pad" hbank="0" lbank="0" prog="91" />
+ <Patch name="BowedPad" hbank="0" lbank="0" prog="92" />
+ <Patch name="Metal 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" />
+ <Patch name="Rain Pad" 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="Atmosphere" hbank="0" lbank="0" prog="99" />
+ <Patch name="Brightness" hbank="0" lbank="0" prog="100" />
+ <Patch name="Goblin" 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" />
+ <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" />
+ <Patch name="Tinkerbel" hbank="0" lbank="0" prog="112" />
+ <Patch name="Agogo" hbank="0" lbank="0" prog="113" />
+ <Patch name="Steeldrum" hbank="0" lbank="0" prog="114" />
+ <Patch name="Woodblock" hbank="0" lbank="0" prog="115" />
+ <Patch name="TaikoDrum" hbank="0" lbank="0" prog="116" />
+ <Patch name="MelodicTom" 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" />
+ <Patch name="Fret Noise" hbank="0" lbank="0" prog="120" />
+ <Patch name="BreathNoiz" hbank="0" lbank="0" prog="121" />
+ <Patch name="Seashore" hbank="0" lbank="0" prog="122" />
+ <Patch name="Tweet" 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="Applause" hbank="0" lbank="0" prog="126" />
+ <Patch name="Gunshot" hbank="0" lbank="0" prog="127" />
+ </PatchGroup>
+ <Controller name="Modulation" l="1" />
+ <Controller name="PortamentoTime" l="5" />
+ <Controller name="MainVolume" l="7" init="100" />
+ <Controller name="Pan" l="10" min="-64" max="63" init="0" />
+ <Controller name="Expression" l="11" init="127" />
+ <Controller name="Sustain" l="64" />
+ <Controller name="Portamento" l="65" />
+ <Controller name="Sostenuto" l="66" />
+ <Controller name="FilterResonance" l="71" init="64" />
+ <Controller name="ReleaseTime" l="72" init="64" />
+ <Controller name="AttackTime" l="73" init="64" />
+ <Controller name="Brightness" l="74" init="64" />
+ <Controller name="DecayTime" l="75" init="64" />
+ <Controller name="ReverbSendLevel" l="91" init="40" />
+ <Controller name="ChorusSendLevel" l="93" init="0" />
+ <Controller name="VariationSend" l="94" init="0" />
+ <Controller name="AllSoundsOff" l="120" />
+ <Controller name="ResetAllController" l="121" />
+ <Controller name="AllNotesOff" l="123" />
+ <Controller name="Mono" l="126" />
+ <Controller name="Poly" l="127" />
+ <Controller name="PitchBendSensitivity" type="RPN" h="0" l="0" max="24" init="2" />
+ <Controller name="FineTuning" type="RPN" h="0" l="1" min="-64" max="63" init="0" />
+ <Controller name="Pitch" type="Pitch" />
+ <Controller name="Program" type="Program" />
+ </MidiInstrument>
+</muse>
diff --git a/muse2/share/instruments/Yamaha-Motif.idf b/muse2/share/instruments/Yamaha-Motif.idf
new file mode 100644
index 00000000..e7acb5fc
--- /dev/null
+++ b/muse2/share/instruments/Yamaha-Motif.idf
@@ -0,0 +1,744 @@
+<?xml version="1.0"?>
+<muse version="1.0">
+ <MidiInstrument name="Yamaha Motif" nullparam="32639">
+ <PatchGroup name="PRE1">
+ <Patch name="PowerGrand" hbank="63" lbank="0" prog="0" />
+ <Patch name="Jazz Grand" hbank="63" lbank="0" prog="1" />
+ <Patch name="Dark Grand" hbank="63" lbank="0" prog="2" />
+ <Patch name="CP 80" hbank="63" lbank="0" prog="3" />
+ <Patch name="CP80 + EP" hbank="63" lbank="0" prog="4" />
+ <Patch name="Yama EP`s" hbank="63" lbank="0" prog="5" />
+ <Patch name="BalladKeys" hbank="63" lbank="0" prog="6" />
+ <Patch name="80s Layer" hbank="63" lbank="0" prog="7" />
+ <Patch name="Piano + Strg" hbank="63" lbank="0" prog="8" />
+ <Patch name="Piano Ooh" hbank="63" lbank="0" prog="9" />
+ <Patch name="PianoBakup" hbank="63" lbank="0" prog="10" />
+ <Patch name="Max Tine" hbank="63" lbank="0" prog="11" />
+ <Patch name="Early Fusn" hbank="63" lbank="0" prog="12" />
+ <Patch name="Vintage;74" hbank="63" lbank="0" prog="13" />
+ <Patch name="Sweetness" hbank="63" lbank="0" prog="14" />
+ <Patch name="DynoStrait" hbank="63" lbank="0" prog="15" />
+ <Patch name="ChorusHard" hbank="63" lbank="0" prog="16" />
+ <Patch name="VintagCase" hbank="63" lbank="0" prog="17" />
+ <Patch name="ChorusDyno" hbank="63" lbank="0" prog="18" />
+ <Patch name="80th Boost" hbank="63" lbank="0" prog="19" />
+ <Patch name="Contempo" hbank="63" lbank="0" prog="20" />
+ <Patch name="Early 70;s" hbank="63" lbank="0" prog="21" />
+ <Patch name="Tonight" hbank="63" lbank="0" prog="22" />
+ <Patch name="E.PianoPad" hbank="63" lbank="0" prog="23" />
+ <Patch name="TX802" hbank="63" lbank="0" prog="24" />
+ <Patch name="ChorusBel" hbank="63" lbank="0" prog="25" />
+ <Patch name="BellDX" hbank="63" lbank="0" prog="26" />
+ <Patch name="Dark DX" hbank="63" lbank="0" prog="27" />
+ <Patch name="GS Tines" hbank="63" lbank="0" prog="28" />
+ <Patch name="Rich FM" hbank="63" lbank="0" prog="29" />
+ <Patch name="FilteredDX" hbank="63" lbank="0" prog="30" />
+ <Patch name="Ice Piano" hbank="63" lbank="0" prog="31" />
+ <Patch name="WurliTrem" hbank="63" lbank="0" prog="32" />
+ <Patch name="WurliAmped" hbank="63" lbank="0" prog="33" />
+ <Patch name="TouchClavi" hbank="63" lbank="0" prog="34" />
+ <Patch name="SuperClavi" hbank="63" lbank="0" prog="35" />
+ <Patch name="StereoClav" hbank="63" lbank="0" prog="36" />
+ <Patch name="HollowClav" hbank="63" lbank="0" prog="37" />
+ <Patch name="Nu Phasing" hbank="63" lbank="0" prog="38" />
+ <Patch name="Digi Clavi" hbank="63" lbank="0" prog="39" />
+ <Patch name="PulseClavi" hbank="63" lbank="0" prog="40" />
+ <Patch name="Twinkle" hbank="63" lbank="0" prog="41" />
+ <Patch name="Stick Bell" hbank="63" lbank="0" prog="42" />
+ <Patch name="Bell Chiff" hbank="63" lbank="0" prog="43" />
+ <Patch name="FngrCymbl" hbank="63" lbank="0" prog="44" />
+ <Patch name="ChorusBell" hbank="63" lbank="0" prog="45" />
+ <Patch name="Tibetan" hbank="63" lbank="0" prog="46" />
+ <Patch name="EastBell" hbank="63" lbank="0" prog="47" />
+ <Patch name="Gamelan" hbank="63" lbank="0" prog="48" />
+ <Patch name="IceBells" hbank="63" lbank="0" prog="49" />
+ <Patch name="Digi Bell" hbank="63" lbank="0" prog="50" />
+ <Patch name="Marimbell" hbank="63" lbank="0" prog="51" />
+ <Patch name="16+8+5 + 1/3" hbank="63" lbank="0" prog="52" />
+ <Patch name="Petit" hbank="63" lbank="0" prog="53" />
+ <Patch name="Glassy" hbank="63" lbank="0" prog="54" />
+ <Patch name="Jazzy" hbank="63" lbank="0" prog="55" />
+ <Patch name="Slow Jam" hbank="63" lbank="0" prog="56" />
+ <Patch name="Greasy" hbank="63" lbank="0" prog="57" />
+ <Patch name="Swishie" hbank="63" lbank="0" prog="58" />
+ <Patch name="Clean" hbank="63" lbank="0" prog="59" />
+ <Patch name="Full/CVib" hbank="63" lbank="0" prog="60" />
+ <Patch name="Mellow" hbank="63" lbank="0" prog="61" />
+ <Patch name="Nu Shade" hbank="63" lbank="0" prog="62" />
+ <Patch name="Cool Cat" hbank="63" lbank="0" prog="63" />
+ <Patch name="Flutey" hbank="63" lbank="0" prog="64" />
+ <Patch name="LeftManual" hbank="63" lbank="0" prog="65" />
+ <Patch name="DrawContrl" hbank="63" lbank="0" prog="66" />
+ <Patch name="Rocky" hbank="63" lbank="0" prog="67" />
+ <Patch name="Expensive" hbank="63" lbank="0" prog="68" />
+ <Patch name="Progressy" hbank="63" lbank="0" prog="69" />
+ <Patch name="Crunchy" hbank="63" lbank="0" prog="70" />
+ <Patch name="Early Bird" hbank="63" lbank="0" prog="71" />
+ <Patch name="Jazz Split" hbank="63" lbank="0" prog="72" />
+ <Patch name="GosplSplit" hbank="63" lbank="0" prog="73" />
+ <Patch name="Tradi" hbank="63" lbank="0" prog="74" />
+ <Patch name="Sunday" hbank="63" lbank="0" prog="75" />
+ <Patch name="BreathPipe" hbank="63" lbank="0" prog="76" />
+ <Patch name="Fluty Pipe" hbank="63" lbank="0" prog="77" />
+ <Patch name="Reedy Pipe" hbank="63" lbank="0" prog="78" />
+ <Patch name="OohPipes" hbank="63" lbank="0" prog="79" />
+ <Patch name="Flamenco" hbank="63" lbank="0" prog="80" />
+ <Patch name="Nylon Jam" hbank="63" lbank="0" prog="81" />
+ <Patch name="BriteSteel" hbank="63" lbank="0" prog="82" />
+ <Patch name="Strums" hbank="63" lbank="0" prog="83" />
+ <Patch name="Big Steel" hbank="63" lbank="0" prog="84" />
+ <Patch name="Folk Steel" hbank="63" lbank="0" prog="85" />
+ <Patch name="18 String" hbank="63" lbank="0" prog="86" />
+ <Patch name="HarpsiGtr" hbank="63" lbank="0" prog="87" />
+ <Patch name="HybridGtr" hbank="63" lbank="0" prog="88" />
+ <Patch name="JazzGTmelo" hbank="63" lbank="0" prog="89" />
+ <Patch name="Velo Jazz" hbank="63" lbank="0" prog="90" />
+ <Patch name="FM Jazz" hbank="63" lbank="0" prog="91" />
+ <Patch name="For Funk" hbank="63" lbank="0" prog="92" />
+ <Patch name="Spanky" hbank="63" lbank="0" prog="93" />
+ <Patch name="Funkiest" hbank="63" lbank="0" prog="94" />
+ <Patch name="Vin Strum" hbank="63" lbank="0" prog="95" />
+ <Patch name="1CoilChors" hbank="63" lbank="0" prog="96" />
+ <Patch name="CleanChors" hbank="63" lbank="0" prog="97" />
+ <Patch name="ChorusPlus" hbank="63" lbank="0" prog="98" />
+ <Patch name="SmoothChor" hbank="63" lbank="0" prog="99" />
+ <Patch name="TexBoogie" hbank="63" lbank="0" prog="100" />
+ <Patch name="Rockabilly" hbank="63" lbank="0" prog="101" />
+ <Patch name="65 Combo" hbank="63" lbank="0" prog="102" />
+ <Patch name="VinTremolo" hbank="63" lbank="0" prog="103" />
+ <Patch name="Crunchoid" hbank="63" lbank="0" prog="104" />
+ <Patch name="DynamicAmp" hbank="63" lbank="0" prog="105" />
+ <Patch name="Feedback" hbank="63" lbank="0" prog="106" />
+ <Patch name="VOODOOMAN" hbank="63" lbank="0" prog="106" />
+ <Patch name="BlueLead" hbank="63" lbank="0" prog="107" />
+ <Patch name="MeloRckLd" hbank="63" lbank="0" prog="108" />
+ <Patch name="MetalMute" hbank="63" lbank="0" prog="109" />
+ <Patch name="OverTheTop" hbank="63" lbank="0" prog="110" />
+ <Patch name="RoundWound" hbank="63" lbank="0" prog="111" />
+ <Patch name="FingerMan" hbank="63" lbank="0" prog="112" />
+ <Patch name="PrecRW" hbank="63" lbank="0" prog="113" />
+ <Patch name="PrecFW" hbank="63" lbank="0" prog="114" />
+ <Patch name="HybridBass" hbank="63" lbank="0" prog="115" />
+ <Patch name="Stand Up" hbank="63" lbank="0" prog="116" />
+ <Patch name="Fretless" hbank="63" lbank="0" prog="117" />
+ <Patch name="Slap + Fx" hbank="63" lbank="0" prog="118" />
+ <Patch name="BriteSlap" hbank="63" lbank="0" prog="119" />
+ <Patch name="Velo Bass" hbank="63" lbank="0" prog="120" />
+ <Patch name="Bs+Cym+Vb" hbank="63" lbank="0" prog="121" />
+ <Patch name="Boogie on" hbank="63" lbank="0" prog="122" />
+ <Patch name="MiniDetune" hbank="63" lbank="0" prog="123" />
+ <Patch name="Long Spit" hbank="63" lbank="0" prog="124" />
+ <Patch name="Tack Bass" hbank="63" lbank="0" prog="125" />
+ <Patch name="Fat Octave" hbank="63" lbank="0" prog="126" />
+ </PatchGroup>
+ <PatchGroup name="PRE2">
+ <Patch name="Violin" hbank="63" lbank="1" prog="0" />
+ <Patch name="Viola" hbank="63" lbank="1" prog="1" />
+ <Patch name="Cello" hbank="63" lbank="1" prog="2" />
+ <Patch name="SoloSpicat" hbank="63" lbank="1" prog="3" />
+ <Patch name="2 Solos" hbank="63" lbank="1" prog="4" />
+ <Patch name="Cello Duet" hbank="63" lbank="1" prog="5" />
+ <Patch name="Trio" hbank="63" lbank="1" prog="6" />
+ <Patch name="Chamber" hbank="63" lbank="1" prog="7" />
+ <Patch name="Small Ens" hbank="63" lbank="1" prog="8" />
+ <Patch name="Medium Ens" hbank="63" lbank="1" prog="9" />
+ <Patch name="Ens Mix" hbank="63" lbank="1" prog="10" />
+ <Patch name="Ensemble" hbank="63" lbank="1" prog="11" />
+ <Patch name="Hard Ens" hbank="63" lbank="1" prog="12" />
+ <Patch name="Background" hbank="63" lbank="1" prog="13" />
+ <Patch name="BigSymphny" hbank="63" lbank="1" prog="14" />
+ <Patch name="Str/Horns" hbank="63" lbank="1" prog="15" />
+ <Patch name="Stringy" hbank="63" lbank="1" prog="16" />
+ <Patch name="Polystring" hbank="63" lbank="1" prog="17" />
+ <Patch name="JP Strings" hbank="63" lbank="1" prog="18" />
+ <Patch name="MournStrgs" hbank="63" lbank="1" prog="19" />
+ <Patch name="The Pizz" hbank="63" lbank="1" prog="20" />
+ <Patch name="Fanfare" hbank="63" lbank="1" prog="21" />
+ <Patch name="Hi Brass" hbank="63" lbank="1" prog="22" />
+ <Patch name="Fat Sect" hbank="63" lbank="1" prog="23" />
+ <Patch name="Sforzando" hbank="63" lbank="1" prog="24" />
+ <Patch name="Symphony" hbank="63" lbank="1" prog="25" />
+ <Patch name="Big Band" hbank="63" lbank="1" prog="26" />
+ <Patch name="Big Band 2" hbank="63" lbank="1" prog="27" />
+ <Patch name="SaxBigBand" hbank="63" lbank="1" prog="28" />
+ <Patch name="MedmBrass" hbank="63" lbank="1" prog="29" />
+ <Patch name="Soft Brass" hbank="63" lbank="1" prog="30" />
+ <Patch name="SoftVeloBr" hbank="63" lbank="1" prog="31" />
+ <Patch name="TrpRomantc" hbank="63" lbank="1" prog="32" />
+ <Patch name="Phase Mute" hbank="63" lbank="1" prog="33" />
+ <Patch name="Legend" hbank="63" lbank="1" prog="34" />
+ <Patch name="Trombone" hbank="63" lbank="1" prog="35" />
+ <Patch name="Flugelleaz" hbank="63" lbank="1" prog="36" />
+ <Patch name="F.Horn Ens" hbank="63" lbank="1" prog="37" />
+ <Patch name="SlowAttack" hbank="63" lbank="1" prog="38" />
+ <Patch name="Strng/Bras" hbank="63" lbank="1" prog="39" />
+ <Patch name="Movie Ens " hbank="63" lbank="1" prog="40" />
+ <Patch name="Powered" hbank="63" lbank="1" prog="41" />
+ <Patch name="ObStuff" hbank="63" lbank="1" prog="42" />
+ <Patch name="Prophy" hbank="63" lbank="1" prog="43" />
+ <Patch name="AnalogBras" hbank="63" lbank="1" prog="44" />
+ <Patch name="After 1984" hbank="63" lbank="1" prog="45" />
+ <Patch name="Soprano" hbank="63" lbank="1" prog="46" />
+ <Patch name="Alto Vib" hbank="63" lbank="1" prog="47" />
+ <Patch name="SaxEnsembl" hbank="63" lbank="1" prog="48" />
+ <Patch name="Tenor Sax" hbank="63" lbank="1" prog="49" />
+ <Patch name="Tenor Soft" hbank="63" lbank="1" prog="50" />
+ <Patch name="The Winds" hbank="63" lbank="1" prog="51" />
+ <Patch name="WindOrch" hbank="63" lbank="1" prog="52" />
+ <Patch name="SweetFlute" hbank="63" lbank="1" prog="53" />
+ <Patch name="PanBottle" hbank="63" lbank="1" prog="54" />
+ <Patch name="AmpHarpMW" hbank="63" lbank="1" prog="55" />
+ <Patch name="SmoothSaw" hbank="63" lbank="1" prog="56" />
+ <Patch name="Lucky" hbank="63" lbank="1" prog="57" />
+ <Patch name="Tri Solo" hbank="63" lbank="1" prog="58" />
+ <Patch name="Syntrump" hbank="63" lbank="1" prog="59" />
+ <Patch name="PWM Lead" hbank="63" lbank="1" prog="60" />
+ <Patch name="Clicky Saw" hbank="63" lbank="1" prog="61" />
+ <Patch name="Mini Pulse" hbank="63" lbank="1" prog="62" />
+ <Patch name="Sync Lead" hbank="63" lbank="1" prog="63" />
+ <Patch name="Altair" hbank="63" lbank="1" prog="64" />
+ <Patch name="Analog" hbank="63" lbank="1" prog="65" />
+ <Patch name="Sweetland" hbank="63" lbank="1" prog="66" />
+ <Patch name="WarmSweepy" hbank="63" lbank="1" prog="67" />
+ <Patch name="SinePad" hbank="63" lbank="1" prog="68" />
+ <Patch name="Square" hbank="63" lbank="1" prog="69" />
+ <Patch name="VoxPad" hbank="63" lbank="1" prog="70" />
+ <Patch name="Pure Syn" hbank="63" lbank="1" prog="71" />
+ <Patch name="MovingPad" hbank="63" lbank="1" prog="72" />
+ <Patch name="SimpleSaws" hbank="63" lbank="1" prog="73" />
+ <Patch name="X-Shower" hbank="63" lbank="1" prog="74" />
+ <Patch name="PWM Pad" hbank="63" lbank="1" prog="75" />
+ <Patch name="Bell Choir" hbank="63" lbank="1" prog="76" />
+ <Patch name="ObSoft" hbank="63" lbank="1" prog="77" />
+ <Patch name="MellowAnlg" hbank="63" lbank="1" prog="78" />
+ <Patch name="Glasschoir" hbank="63" lbank="1" prog="79" />
+ <Patch name="PeaceVox" hbank="63" lbank="1" prog="80" />
+ <Patch name="StackChoir" hbank="63" lbank="1" prog="81" />
+ <Patch name="Bronx" hbank="63" lbank="1" prog="82" />
+ <Patch name="IceChoir" hbank="63" lbank="1" prog="83" />
+ <Patch name="Fast Oohs" hbank="63" lbank="1" prog="84" />
+ <Patch name="Ooze + OZ" hbank="63" lbank="1" prog="85" />
+ <Patch name="NeoCrystal" hbank="63" lbank="1" prog="86" />
+ <Patch name="Pop Synth" hbank="63" lbank="1" prog="87" />
+ <Patch name="Fantasy" hbank="63" lbank="1" prog="88" />
+ <Patch name="Heavenly" hbank="63" lbank="1" prog="89" />
+ <Patch name="Retro" hbank="63" lbank="1" prog="90" />
+ <Patch name="Airy Nylon" hbank="63" lbank="1" prog="91" />
+ <Patch name="Antares" hbank="63" lbank="1" prog="92" />
+ <Patch name="Pan Sphere" hbank="63" lbank="1" prog="93" />
+ <Patch name="Tamburax" hbank="63" lbank="1" prog="94" />
+ <Patch name="IndianFlai" hbank="63" lbank="1" prog="95" />
+ <Patch name="SAKURA" hbank="63" lbank="1" prog="96" />
+ <Patch name="RisingHigh" hbank="63" lbank="1" prog="97" />
+ <Patch name="Champ" hbank="63" lbank="1" prog="98" />
+ <Patch name="Gladiator" hbank="63" lbank="1" prog="99" />
+ <Patch name="Hades" hbank="63" lbank="1" prog="100" />
+ <Patch name="Glacy" hbank="63" lbank="1" prog="101" />
+ <Patch name="Forest" hbank="63" lbank="1" prog="102" />
+ <Patch name="MirrorRing" hbank="63" lbank="1" prog="103" />
+ <Patch name="Poly" hbank="63" lbank="1" prog="104" />
+ <Patch name="AnaTonk" hbank="63" lbank="1" prog="105" />
+ <Patch name="Jaipur" hbank="63" lbank="1" prog="106" />
+ <Patch name="Dulcitar" hbank="63" lbank="1" prog="107" />
+ <Patch name="Cimbalon" hbank="63" lbank="1" prog="108" />
+ <Patch name="EthncFlute" hbank="63" lbank="1" prog="109" />
+ <Patch name="Hichiriki" hbank="63" lbank="1" prog="110" />
+ <Patch name="Ryuteki" hbank="63" lbank="1" prog="111" />
+ <Patch name="Gagaku" hbank="63" lbank="1" prog="112" />
+ <Patch name="Kokyu" hbank="63" lbank="1" prog="113" />
+ <Patch name="Digidoo" hbank="63" lbank="1" prog="114" />
+ <Patch name="Bali" hbank="63" lbank="1" prog="115" />
+ <Patch name="Indo" hbank="63" lbank="1" prog="116" />
+ <Patch name="Trip East" hbank="63" lbank="1" prog="117" />
+ <Patch name="Tabla" hbank="63" lbank="1" prog="118" />
+ <Patch name="Djembe" hbank="63" lbank="1" prog="119" />
+ <Patch name="Djerimbe" hbank="63" lbank="1" prog="120" />
+ <Patch name="Udu" hbank="63" lbank="1" prog="121" />
+ <Patch name="Tribal" hbank="63" lbank="1" prog="122" />
+ <Patch name="Log+Drum" hbank="63" lbank="1" prog="123" />
+ <Patch name="Afro" hbank="63" lbank="1" prog="124" />
+ <Patch name="Japanesque" hbank="63" lbank="1" prog="125" />
+ <Patch name="EthnoShock" hbank="63" lbank="1" prog="126" />
+ <Patch name="Ethnology" hbank="63" lbank="1" prog="127" />
+ </PatchGroup>
+ <PatchGroup name="PRE3">
+ <Patch name="Wide Comp" hbank="63" lbank="2" prog="0" />
+ <Patch name="78rpmPiano" hbank="63" lbank="2" prog="1" />
+ <Patch name="Bristol" hbank="63" lbank="2" prog="2" />
+ <Patch name="Mono Comp" hbank="63" lbank="2" prog="3" />
+ <Patch name="Dance" hbank="63" lbank="2" prog="4" />
+ <Patch name="Houze" hbank="63" lbank="2" prog="5" />
+ <Patch name="Glass EP" hbank="63" lbank="2" prog="6" />
+ <Patch name="VintSwitch" hbank="63" lbank="2" prog="7" />
+ <Patch name="Early Case" hbank="63" lbank="2" prog="8" />
+ <Patch name="RdsScape" hbank="63" lbank="2" prog="9" />
+ <Patch name="RichEcho" hbank="63" lbank="2" prog="10" />
+ <Patch name="StringyPno" hbank="63" lbank="2" prog="11" />
+ <Patch name="Champagne" hbank="63" lbank="2" prog="12" />
+ <Patch name="Moet" hbank="63" lbank="2" prog="13" />
+ <Patch name="Compact" hbank="63" lbank="2" prog="14" />
+ <Patch name="1967 Keys" hbank="63" lbank="2" prog="15" />
+ <Patch name="YD-45C" hbank="63" lbank="2" prog="16" />
+ <Patch name="Gnarly" hbank="63" lbank="2" prog="17" />
+ <Patch name="Modular" hbank="63" lbank="2" prog="18" />
+ <Patch name="Dark Jack" hbank="63" lbank="2" prog="19" />
+ <Patch name="OneVoice" hbank="63" lbank="2" prog="20" />
+ <Patch name="Dry Syn" hbank="63" lbank="2" prog="21" />
+ <Patch name="PlasticBas" hbank="63" lbank="2" prog="22" />
+ <Patch name="Bassline" hbank="63" lbank="2" prog="23" />
+ <Patch name="RubbaRap" hbank="63" lbank="2" prog="24" />
+ <Patch name="Juicy" hbank="63" lbank="2" prog="25" />
+ <Patch name="Dark" hbank="63" lbank="2" prog="26" />
+ <Patch name="UniBass" hbank="63" lbank="2" prog="27" />
+ <Patch name="Flyer" hbank="63" lbank="2" prog="28" />
+ <Patch name="QuackBass" hbank="63" lbank="2" prog="29" />
+ <Patch name="Moonbass" hbank="63" lbank="2" prog="30" />
+ <Patch name="ClassicSub" hbank="63" lbank="2" prog="31" />
+ <Patch name="DX100" hbank="63" lbank="2" prog="32" />
+ <Patch name="Lately" hbank="63" lbank="2" prog="33" />
+ <Patch name="FMBass" hbank="63" lbank="2" prog="34" />
+ <Patch name="Oct String" hbank="63" lbank="2" prog="35" />
+ <Patch name="3 Octave" hbank="63" lbank="2" prog="36" />
+ <Patch name="TapeStrngs" hbank="63" lbank="2" prog="37" />
+ <Patch name="VP Strings" hbank="63" lbank="2" prog="38" />
+ <Patch name="BriteTeeth" hbank="63" lbank="2" prog="39" />
+ <Patch name="XDance" hbank="63" lbank="2" prog="40" />
+ <Patch name="Timeless" hbank="63" lbank="2" prog="41" />
+ <Patch name="FatSynth" hbank="63" lbank="2" prog="42" />
+ <Patch name="Big Syn" hbank="63" lbank="2" prog="43" />
+ <Patch name="Bluesharp" hbank="63" lbank="2" prog="44" />
+ <Patch name="Sync" hbank="63" lbank="2" prog="45" />
+ <Patch name="Atk Reso" hbank="63" lbank="2" prog="46" />
+ <Patch name="Singleline" hbank="63" lbank="2" prog="47" />
+ <Patch name="Free LFO" hbank="63" lbank="2" prog="48" />
+ <Patch name="Soft Lead" hbank="63" lbank="2" prog="49" />
+ <Patch name="PulseWound" hbank="63" lbank="2" prog="50" />
+ <Patch name="Big Drone" hbank="63" lbank="2" prog="51" />
+ <Patch name="Big Tune" hbank="63" lbank="2" prog="52" />
+ <Patch name="PowerWheel" hbank="63" lbank="2" prog="53" />
+ <Patch name="Flangefilt" hbank="63" lbank="2" prog="54" />
+ <Patch name="G-Funk" hbank="63" lbank="2" prog="55" />
+ <Patch name="Maria AT" hbank="63" lbank="2" prog="56" />
+ <Patch name="InThePast" hbank="63" lbank="2" prog="57" />
+ <Patch name="FatSawPad" hbank="63" lbank="2" prog="58" />
+ <Patch name="Wide Sweep" hbank="63" lbank="2" prog="59" />
+ <Patch name="Sunbeams" hbank="63" lbank="2" prog="60" />
+ <Patch name="BPFx" hbank="63" lbank="2" prog="61" />
+ <Patch name="FrozenPad" hbank="63" lbank="2" prog="62" />
+ <Patch name="MICHINOKU" hbank="63" lbank="2" prog="63" />
+ <Patch name="Esmeralda" hbank="63" lbank="2" prog="64" />
+ <Patch name="Romance" hbank="63" lbank="2" prog="65" />
+ <Patch name="Circle" hbank="63" lbank="2" prog="66" />
+ <Patch name="Dreamspher" hbank="63" lbank="2" prog="67" />
+ <Patch name="Silverlake" hbank="63" lbank="2" prog="68" />
+ <Patch name="Shadow" hbank="63" lbank="2" prog="69" />
+ <Patch name="Platinum" hbank="63" lbank="2" prog="70" />
+ <Patch name="Gently" hbank="63" lbank="2" prog="71" />
+ <Patch name="Warming" hbank="63" lbank="2" prog="72" />
+ <Patch name="PW-EMMY" hbank="63" lbank="2" prog="73" />
+ <Patch name="X-fade Pad" hbank="63" lbank="2" prog="74" />
+ <Patch name="Zosma" hbank="63" lbank="2" prog="75" />
+ <Patch name="NoizRezz" hbank="63" lbank="2" prog="76" />
+ <Patch name="Mira" hbank="63" lbank="2" prog="77" />
+ <Patch name="MultiPulse" hbank="63" lbank="2" prog="78" />
+ <Patch name="VoxWaves" hbank="63" lbank="2" prog="79" />
+ <Patch name="LazySweep" hbank="63" lbank="2" prog="80" />
+ <Patch name="Doomed" hbank="63" lbank="2" prog="81" />
+ <Patch name="PerkaVox" hbank="63" lbank="2" prog="82" />
+ <Patch name="Punchy" hbank="63" lbank="2" prog="83" />
+ <Patch name="Eyeliner" hbank="63" lbank="2" prog="84" />
+ <Patch name="Quieck" hbank="63" lbank="2" prog="85" />
+ <Patch name="Aladdin" hbank="63" lbank="2" prog="86" />
+ <Patch name="QuadSwell" hbank="63" lbank="2" prog="87" />
+ <Patch name="Lilley Pad" hbank="63" lbank="2" prog="88" />
+ <Patch name="Didje Baz" hbank="63" lbank="2" prog="89" />
+ <Patch name="RING PAD" hbank="63" lbank="2" prog="90" />
+ <Patch name="Chaser 1" hbank="63" lbank="2" prog="91" />
+ <Patch name="Chaser 2" hbank="63" lbank="2" prog="92" />
+ <Patch name="Spacebreat" hbank="63" lbank="2" prog="93" />
+ <Patch name="Long HiPa" hbank="63" lbank="2" prog="94" />
+ <Patch name="Action Y" hbank="63" lbank="2" prog="95" />
+ <Patch name="Trancelan" hbank="63" lbank="2" prog="96" />
+ <Patch name="Eternal" hbank="63" lbank="2" prog="97" />
+ <Patch name="VirtualSyn" hbank="63" lbank="2" prog="98" />
+ <Patch name="Interlude" hbank="63" lbank="2" prog="99" />
+ <Patch name="Flying" hbank="63" lbank="2" prog="100" />
+ <Patch name="TheSlayer" hbank="63" lbank="2" prog="101" />
+ <Patch name="White Rabb" hbank="63" lbank="2" prog="102" />
+ <Patch name="Siam" hbank="63" lbank="2" prog="103" />
+ <Patch name="Ududu" hbank="63" lbank="2" prog="104" />
+ <Patch name="Particle" hbank="63" lbank="2" prog="105" />
+ <Patch name="Shaper" hbank="63" lbank="2" prog="106" />
+ <Patch name="VintageArp" hbank="63" lbank="2" prog="107" />
+ <Patch name="Aah Dance" hbank="63" lbank="2" prog="108" />
+ <Patch name="Joker" hbank="63" lbank="2" prog="109" />
+ <Patch name="Holiday" hbank="63" lbank="2" prog="110" />
+ <Patch name="Android" hbank="63" lbank="2" prog="111" />
+ <Patch name="Spacious" hbank="63" lbank="2" prog="112" />
+ <Patch name="VoiceCuica" hbank="63" lbank="2" prog="113" />
+ <Patch name="Pop Arp" hbank="63" lbank="2" prog="114" />
+ <Patch name="Ping Pong" hbank="63" lbank="2" prog="115" />
+ <Patch name="Amoeba" hbank="63" lbank="2" prog="116" />
+ <Patch name="Landing" hbank="63" lbank="2" prog="117" />
+ <Patch name="I was born" hbank="63" lbank="2" prog="118" />
+ <Patch name="PsychoGtr" hbank="63" lbank="2" prog="119" />
+ <Patch name="NoGravity" hbank="63" lbank="2" prog="120" />
+ <Patch name="Pulser" hbank="63" lbank="2" prog="121" />
+ <Patch name="Racer" hbank="63" lbank="2" prog="122" />
+ <Patch name="Storm" hbank="63" lbank="2" prog="123" />
+ <Patch name="Oscillatin" hbank="63" lbank="2" prog="124" />
+ <Patch name="FamlyFeud " hbank="63" lbank="2" prog="125" />
+ <Patch name="WatrForest" hbank="63" lbank="2" prog="126" />
+ <Patch name="Spacecraft" hbank="63" lbank="2" prog="127" />
+ </PatchGroup>
+ <PatchGroup name="USER">
+ <Patch name="1" hbank="63" lbank="8" prog="0" />
+ <Patch name="2" hbank="63" lbank="8" prog="1" />
+ <Patch name="3" hbank="63" lbank="8" prog="2" />
+ <Patch name="4" hbank="63" lbank="8" prog="3" />
+ <Patch name="5" hbank="63" lbank="8" prog="4" />
+ <Patch name="6" hbank="63" lbank="8" prog="5" />
+ <Patch name="7" hbank="63" lbank="8" prog="6" />
+ <Patch name="8" hbank="63" lbank="8" prog="7" />
+ <Patch name="9" hbank="63" lbank="8" prog="8" />
+ <Patch name="10" hbank="63" lbank="8" prog="9" />
+ <Patch name="11" hbank="63" lbank="8" prog="10" />
+ <Patch name="12" hbank="63" lbank="8" prog="11" />
+ <Patch name="13" hbank="63" lbank="8" prog="12" />
+ <Patch name="14" hbank="63" lbank="8" prog="13" />
+ <Patch name="15" hbank="63" lbank="8" prog="14" />
+ <Patch name="16" hbank="63" lbank="8" prog="15" />
+ <Patch name="17" hbank="63" lbank="8" prog="16" />
+ <Patch name="18" hbank="63" lbank="8" prog="17" />
+ <Patch name="19" hbank="63" lbank="8" prog="18" />
+ <Patch name="20" hbank="63" lbank="8" prog="19" />
+ <Patch name="21" hbank="63" lbank="8" prog="20" />
+ <Patch name="22" hbank="63" lbank="8" prog="21" />
+ <Patch name="23" hbank="63" lbank="8" prog="22" />
+ <Patch name="24" hbank="63" lbank="8" prog="23" />
+ <Patch name="25" hbank="63" lbank="8" prog="24" />
+ <Patch name="26" hbank="63" lbank="8" prog="25" />
+ <Patch name="27" hbank="63" lbank="8" prog="26" />
+ <Patch name="28" hbank="63" lbank="8" prog="27" />
+ <Patch name="29" hbank="63" lbank="8" prog="28" />
+ <Patch name="30" hbank="63" lbank="8" prog="29" />
+ <Patch name="31" hbank="63" lbank="8" prog="30" />
+ <Patch name="32" hbank="63" lbank="8" prog="31" />
+ <Patch name="33" hbank="63" lbank="8" prog="32" />
+ <Patch name="34" hbank="63" lbank="8" prog="33" />
+ <Patch name="35" hbank="63" lbank="8" prog="34" />
+ <Patch name="36" hbank="63" lbank="8" prog="35" />
+ <Patch name="37" hbank="63" lbank="8" prog="36" />
+ <Patch name="38" hbank="63" lbank="8" prog="37" />
+ <Patch name="39" hbank="63" lbank="8" prog="38" />
+ <Patch name="40" hbank="63" lbank="8" prog="39" />
+ <Patch name="41" hbank="63" lbank="8" prog="40" />
+ <Patch name="42" hbank="63" lbank="8" prog="41" />
+ <Patch name="43" hbank="63" lbank="8" prog="42" />
+ <Patch name="44" hbank="63" lbank="8" prog="43" />
+ <Patch name="45" hbank="63" lbank="8" prog="44" />
+ <Patch name="46" hbank="63" lbank="8" prog="45" />
+ <Patch name="47" hbank="63" lbank="8" prog="46" />
+ <Patch name="48" hbank="63" lbank="8" prog="47" />
+ <Patch name="49" hbank="63" lbank="8" prog="48" />
+ <Patch name="50" hbank="63" lbank="8" prog="49" />
+ <Patch name="51" hbank="63" lbank="8" prog="50" />
+ <Patch name="52" hbank="63" lbank="8" prog="51" />
+ <Patch name="53" hbank="63" lbank="8" prog="52" />
+ <Patch name="54" hbank="63" lbank="8" prog="53" />
+ <Patch name="55" hbank="63" lbank="8" prog="54" />
+ <Patch name="56" hbank="63" lbank="8" prog="55" />
+ <Patch name="57" hbank="63" lbank="8" prog="56" />
+ <Patch name="58" hbank="63" lbank="8" prog="57" />
+ <Patch name="59" hbank="63" lbank="8" prog="58" />
+ <Patch name="60" hbank="63" lbank="8" prog="59" />
+ <Patch name="61" hbank="63" lbank="8" prog="60" />
+ <Patch name="62" hbank="63" lbank="8" prog="61" />
+ <Patch name="63" hbank="63" lbank="8" prog="62" />
+ <Patch name="64" hbank="63" lbank="8" prog="63" />
+ <Patch name="65" hbank="63" lbank="8" prog="64" />
+ <Patch name="66" hbank="63" lbank="8" prog="65" />
+ <Patch name="67" hbank="63" lbank="8" prog="66" />
+ <Patch name="68" hbank="63" lbank="8" prog="67" />
+ <Patch name="69" hbank="63" lbank="8" prog="68" />
+ <Patch name="70" hbank="63" lbank="8" prog="69" />
+ <Patch name="71" hbank="63" lbank="8" prog="70" />
+ <Patch name="72" hbank="63" lbank="8" prog="71" />
+ <Patch name="73" hbank="63" lbank="8" prog="72" />
+ <Patch name="74" hbank="63" lbank="8" prog="73" />
+ <Patch name="75" hbank="63" lbank="8" prog="74" />
+ <Patch name="76" hbank="63" lbank="8" prog="75" />
+ <Patch name="77" hbank="63" lbank="8" prog="76" />
+ <Patch name="78" hbank="63" lbank="8" prog="77" />
+ <Patch name="79" hbank="63" lbank="8" prog="78" />
+ <Patch name="80" hbank="63" lbank="8" prog="79" />
+ <Patch name="81" hbank="63" lbank="8" prog="80" />
+ <Patch name="82" hbank="63" lbank="8" prog="81" />
+ <Patch name="83" hbank="63" lbank="8" prog="82" />
+ <Patch name="84" hbank="63" lbank="8" prog="83" />
+ <Patch name="85" hbank="63" lbank="8" prog="84" />
+ <Patch name="86" hbank="63" lbank="8" prog="85" />
+ <Patch name="87" hbank="63" lbank="8" prog="86" />
+ <Patch name="88" hbank="63" lbank="8" prog="87" />
+ <Patch name="89" hbank="63" lbank="8" prog="88" />
+ <Patch name="90" hbank="63" lbank="8" prog="89" />
+ <Patch name="91" hbank="63" lbank="8" prog="90" />
+ <Patch name="92" hbank="63" lbank="8" prog="91" />
+ <Patch name="93" hbank="63" lbank="8" prog="92" />
+ <Patch name="94" hbank="63" lbank="8" prog="93" />
+ <Patch name="95" hbank="63" lbank="8" prog="94" />
+ <Patch name="96" hbank="63" lbank="8" prog="95" />
+ <Patch name="97" hbank="63" lbank="8" prog="96" />
+ <Patch name="98" hbank="63" lbank="8" prog="97" />
+ <Patch name="99" hbank="63" lbank="8" prog="98" />
+ <Patch name="100" hbank="63" lbank="8" prog="99" />
+ <Patch name="101" hbank="63" lbank="8" prog="100" />
+ <Patch name="102" hbank="63" lbank="8" prog="101" />
+ <Patch name="103" hbank="63" lbank="8" prog="102" />
+ <Patch name="104" hbank="63" lbank="8" prog="103" />
+ <Patch name="105" hbank="63" lbank="8" prog="104" />
+ <Patch name="106" hbank="63" lbank="8" prog="105" />
+ <Patch name="107" hbank="63" lbank="8" prog="106" />
+ <Patch name="108" hbank="63" lbank="8" prog="107" />
+ <Patch name="109" hbank="63" lbank="8" prog="108" />
+ <Patch name="110" hbank="63" lbank="8" prog="109" />
+ <Patch name="111" hbank="63" lbank="8" prog="110" />
+ <Patch name="112" hbank="63" lbank="8" prog="111" />
+ <Patch name="113" hbank="63" lbank="8" prog="112" />
+ <Patch name="114" hbank="63" lbank="8" prog="113" />
+ <Patch name="115" hbank="63" lbank="8" prog="114" />
+ <Patch name="116" hbank="63" lbank="8" prog="115" />
+ <Patch name="117" hbank="63" lbank="8" prog="116" />
+ <Patch name="118" hbank="63" lbank="8" prog="117" />
+ <Patch name="119" hbank="63" lbank="8" prog="118" />
+ <Patch name="120" hbank="63" lbank="8" prog="119" />
+ <Patch name="121" hbank="63" lbank="8" prog="120" />
+ <Patch name="122" hbank="63" lbank="8" prog="121" />
+ <Patch name="123" hbank="63" lbank="8" prog="122" />
+ <Patch name="124" hbank="63" lbank="8" prog="123" />
+ <Patch name="125" hbank="63" lbank="8" prog="124" />
+ <Patch name="126" hbank="63" lbank="8" prog="125" />
+ <Patch name="127" hbank="63" lbank="8" prog="126" />
+ <Patch name="128" hbank="63" lbank="8" prog="127" />
+ </PatchGroup>
+ <PatchGroup name="GM">
+ <Patch name="NaturlGrnd" hbank="0" lbank="0" prog="0" />
+ <Patch name="Rock Brite" hbank="0" lbank="0" prog="1" />
+ <Patch name="CP 2001" hbank="0" lbank="0" prog="2" />
+ <Patch name="Honkytonk" hbank="0" lbank="0" prog="3" />
+ <Patch name="E.Piano 1" hbank="0" lbank="0" prog="4" />
+ <Patch name="E.Piano 2" hbank="0" lbank="0" prog="5" />
+ <Patch name="Harpsicord" hbank="0" lbank="0" prog="6" />
+ <Patch name="Brite" hbank="0" lbank="0" prog="7" />
+ <Patch name="Clav" hbank="0" lbank="0" prog="8" />
+ <Patch name="Celeste" hbank="0" lbank="0" prog="9" />
+ <Patch name="Glocken" hbank="0" lbank="0" prog="10" />
+ <Patch name="Music Box" hbank="0" lbank="0" prog="11" />
+ <Patch name="Vibes" hbank="0" lbank="0" prog="12" />
+ <Patch name="Marimba" hbank="0" lbank="0" prog="13" />
+ <Patch name="Xylophone" hbank="0" lbank="0" prog="14" />
+ <Patch name="TublarBell" hbank="0" lbank="0" prog="15" />
+ <Patch name="Dulcimar" hbank="0" lbank="0" prog="16" />
+ <Patch name="Draw Organ" hbank="0" lbank="0" prog="17" />
+ <Patch name="Perc Organ" hbank="0" lbank="0" prog="18" />
+ <Patch name="Rock Organ" hbank="0" lbank="0" prog="19" />
+ <Patch name="ChurchOrgn" hbank="0" lbank="0" prog="20" />
+ <Patch name="Reed Organ" hbank="0" lbank="0" prog="21" />
+ <Patch name="Accordion" hbank="0" lbank="0" prog="22" />
+ <Patch name="Harmonica" hbank="0" lbank="0" prog="23" />
+ <Patch name="TangoAccrd" hbank="0" lbank="0" prog="24" />
+ <Patch name="Nylon" hbank="0" lbank="0" prog="25" />
+ <Patch name="Steel" hbank="0" lbank="0" prog="26" />
+ <Patch name="ModernJazz" hbank="0" lbank="0" prog="27" />
+ <Patch name="Clean" hbank="0" lbank="0" prog="28" />
+ <Patch name="Mute" hbank="0" lbank="0" prog="29" />
+ <Patch name="Overdrive" hbank="0" lbank="0" prog="30" />
+ <Patch name="Distortion" hbank="0" lbank="0" prog="31" />
+ <Patch name="Harmonics" hbank="0" lbank="0" prog="32" />
+ <Patch name="Accoustic" hbank="0" lbank="0" prog="33" />
+ <Patch name="FingerBass" hbank="0" lbank="0" prog="34" />
+ <Patch name="Pick Bass" hbank="0" lbank="0" prog="35" />
+ <Patch name="Fretless 2" hbank="0" lbank="0" prog="36" />
+ <Patch name="SimpleSlap" hbank="0" lbank="0" prog="37" />
+ <Patch name="Velo Slap" hbank="0" lbank="0" prog="38" />
+ <Patch name="SynthBass1" hbank="0" lbank="0" prog="39" />
+ <Patch name="SynthBass2" hbank="0" lbank="0" prog="40" />
+ <Patch name="Violin 2" hbank="0" lbank="0" prog="41" />
+ <Patch name="Viola 2" hbank="0" lbank="0" prog="42" />
+ <Patch name="Cello 2" hbank="0" lbank="0" prog="43" />
+ <Patch name="Contrabass" hbank="0" lbank="0" prog="44" />
+ <Patch name="TremoloStr" hbank="0" lbank="0" prog="45" />
+ <Patch name="Pizz Harp" hbank="0" lbank="0" prog="46" />
+ <Patch name="Timpni+Cym" hbank="0" lbank="0" prog="47" />
+ <Patch name="StereoSt1" hbank="0" lbank="0" prog="48" />
+ <Patch name="StereoSt2" hbank="0" lbank="0" prog="49" />
+ <Patch name="Grand Saw" hbank="0" lbank="0" prog="50" />
+ <Patch name="SynStrings" hbank="0" lbank="0" prog="51" />
+ <Patch name="Aah Choir" hbank="0" lbank="0" prog="52" />
+ <Patch name="Ooh Choir" hbank="0" lbank="0" prog="53" />
+ <Patch name="Syn Voice" hbank="0" lbank="0" prog="54" />
+ <Patch name="Orch.Hit" hbank="0" lbank="0" prog="55" />
+ <Patch name="Trumpet" hbank="0" lbank="0" prog="56" />
+ <Patch name="Trombone 2" hbank="0" lbank="0" prog="57" />
+ <Patch name="Tuba" hbank="0" lbank="0" prog="58" />
+ <Patch name="MuteTrpt 2" hbank="0" lbank="0" prog="59" />
+ <Patch name="F.Horns" hbank="0" lbank="0" prog="60" />
+ <Patch name="Brass Sect" hbank="0" lbank="0" prog="61" />
+ <Patch name="SynthBrass" hbank="0" lbank="0" prog="62" />
+ <Patch name="Soft Brass" hbank="0" lbank="0" prog="63" />
+ <Patch name="Soprano 2" hbank="0" lbank="0" prog="64" />
+ <Patch name="Alto Sax" hbank="0" lbank="0" prog="65" />
+ <Patch name="TenorSax 2" hbank="0" lbank="0" prog="66" />
+ <Patch name="Bari Sax" hbank="0" lbank="0" prog="67" />
+ <Patch name="Oboe" hbank="0" lbank="0" prog="68" />
+ <Patch name="Eng.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="Panflute" hbank="0" lbank="0" prog="75" />
+ <Patch name="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="Square Ld" hbank="0" lbank="0" prog="80" />
+ <Patch name="Saw Ld" hbank="0" lbank="0" prog="81" />
+ <Patch name="Caliop Ld" hbank="0" lbank="0" prog="82" />
+ <Patch name="Chiff Ld" hbank="0" lbank="0" prog="83" />
+ <Patch name="Charan Ld" hbank="0" lbank="0" prog="84" />
+ <Patch name="Voice Ld" hbank="0" lbank="0" prog="85" />
+ <Patch name="Fifth Ld" hbank="0" lbank="0" prog="86" />
+ <Patch name="Bass+Ld" hbank="0" lbank="0" prog="87" />
+ <Patch name="New Age" hbank="0" lbank="0" prog="88" />
+ <Patch name="Warm Pad" hbank="0" lbank="0" prog="89" />
+ <Patch name="Poly Synth" hbank="0" lbank="0" prog="90" />
+ <Patch name="Choir Pad" hbank="0" lbank="0" prog="91" />
+ <Patch name="BowedPad" hbank="0" lbank="0" prog="92" />
+ <Patch name="Metal 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" />
+ <Patch name="Rain Pad" 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="Atmosphere" hbank="0" lbank="0" prog="99" />
+ <Patch name="Brightness" hbank="0" lbank="0" prog="100" />
+ <Patch name="Goblin" 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" />
+ <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" />
+ <Patch name="Tinkerbel" hbank="0" lbank="0" prog="112" />
+ <Patch name="Agogo" hbank="0" lbank="0" prog="113" />
+ <Patch name="Steeldrum" hbank="0" lbank="0" prog="114" />
+ <Patch name="Woodblock" hbank="0" lbank="0" prog="115" />
+ <Patch name="TaikoDrum" hbank="0" lbank="0" prog="116" />
+ <Patch name="MelodicTom" 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" />
+ <Patch name="Fret Noise" hbank="0" lbank="0" prog="120" />
+ <Patch name="BreathNoiz" hbank="0" lbank="0" prog="121" />
+ <Patch name="Seashore" hbank="0" lbank="0" prog="122" />
+ <Patch name="Tweet" 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="Applause" hbank="0" lbank="0" prog="126" />
+ <Patch name="Gunshot" hbank="63" lbank="1" prog="127" />
+ </PatchGroup>
+ <PatchGroup name="Drum Kits">
+ <Patch name="PoweredStd" hbank="63" lbank="32" prog="0" drum="1" />
+ <Patch name="DryStandrd" hbank="63" lbank="32" prog="1" drum="1" />
+ <Patch name="RockSt1" hbank="63" lbank="32" prog="2" drum="1" />
+ <Patch name="RockSt2" hbank="63" lbank="32" prog="3" drum="1" />
+ <Patch name="RockMono 1" hbank="63" lbank="32" prog="4" drum="1" />
+ <Patch name="Hip Hop1" hbank="63" lbank="32" prog="5" drum="1" />
+ <Patch name="Hip Hop2" hbank="63" lbank="32" prog="6" drum="1" />
+ <Patch name="HipStick1" hbank="63" lbank="32" prog="7" drum="1" />
+ <Patch name="T9HipKit1" hbank="63" lbank="32" prog="8" drum="1" />
+ <Patch name="RnB Kit1" hbank="63" lbank="32" prog="9" drum="1" />
+ <Patch name="RnB Kit2" hbank="63" lbank="32" prog="10" drum="1" />
+ <Patch name="Analog T9" hbank="63" lbank="32" prog="11" drum="1" />
+ <Patch name="Analog T8" hbank="63" lbank="32" prog="12" drum="1" />
+ <Patch name="Techno Kit" hbank="63" lbank="32" prog="13" drum="1" />
+ <Patch name="House Kit1" hbank="63" lbank="32" prog="14" drum="1" />
+ <Patch name="House Kit2" hbank="63" lbank="32" prog="15" drum="1" />
+ <Patch name="Big Kit" hbank="63" lbank="32" prog="16" drum="1" />
+ <Patch name="Break Kit" hbank="63" lbank="32" prog="17" drum="1" />
+ <Patch name="Drum`n`Bass" hbank="63" lbank="32" prog="18" drum="1" />
+ <Patch name="Acid Kit" hbank="63" lbank="32" prog="19" drum="1" />
+ <Patch name="Jungle Kit" hbank="63" lbank="32" prog="20" drum="1" />
+ <Patch name="Electric" hbank="63" lbank="32" prog="21" drum="1" />
+ <Patch name="Human Kit" hbank="63" lbank="32" prog="22" drum="1" />
+ <Patch name="Hard Kit" hbank="63" lbank="32" prog="23" drum="1" />
+ <Patch name="DistrtdKit" hbank="63" lbank="32" prog="24" drum="1" />
+ <Patch name="AmbientKit" hbank="63" lbank="32" prog="25" drum="1" />
+ <Patch name="Jazz Kit" hbank="63" lbank="32" prog="26" drum="1" />
+ <Patch name="Hip Hop3" hbank="63" lbank="32" prog="27" drum="1" />
+ <Patch name="Hip Hop4" hbank="63" lbank="32" prog="28" drum="1" />
+ <Patch name="HipStick2" hbank="63" lbank="32" prog="29" drum="1" />
+ <Patch name="Garage" hbank="63" lbank="32" prog="30" drum="1" />
+ <Patch name="All-Round" hbank="63" lbank="32" prog="31" drum="1" />
+ <Patch name="Rock Multi" hbank="63" lbank="32" prog="32" drum="1" />
+ <Patch name="Hip Multi" hbank="63" lbank="32" prog="33" drum="1" />
+ <Patch name="Percussion" hbank="63" lbank="32" prog="34" drum="1" />
+ <Patch name="Latin Parc" hbank="63" lbank="32" prog="35" drum="1" />
+ <Patch name="Gtr/Bs Fx" hbank="63" lbank="32" prog="36" drum="1" />
+ <Patch name="Wacko Kit" hbank="63" lbank="32" prog="37" drum="1" />
+ <Patch name="Wood Bits" hbank="63" lbank="32" prog="38" drum="1" />
+ <Patch name="Metal Bits" hbank="63" lbank="32" prog="39" drum="1" />
+ <Patch name="Hands Kit" hbank="63" lbank="32" prog="40" drum="1" />
+ <Patch name="Scratches" hbank="63" lbank="32" prog="41" drum="1" />
+ <Patch name="AcstSnares" hbank="63" lbank="32" prog="42" drum="1" />
+ <Patch name="StSnares" hbank="63" lbank="32" prog="43" drum="1" />
+ <Patch name="AllKicks" hbank="63" lbank="32" prog="44" drum="1" />
+ <Patch name="DanceKicks" hbank="63" lbank="32" prog="45" drum="1" />
+ <Patch name="Snare + Fx" hbank="63" lbank="32" prog="46" drum="1" />
+ <Patch name="Easy Snares" hbank="63" lbank="32" prog="47" drum="1" />
+ </PatchGroup>
+ <PatchGroup name="GM Drum Kits">
+ <Patch name="GM Drum" hbank="127" lbank="0" prog="0" drum="1" />
+ <Patch name="RockMono2" hbank="63" lbank="40" prog="0" drum="1" />
+ <Patch name="RockMono3" hbank="63" lbank="40" prog="1" drum="1" />
+ <Patch name="HipHop5" hbank="63" lbank="40" prog="2" drum="1" />
+ <Patch name="HipHop6" hbank="63" lbank="40" prog="3" drum="1" />
+ <Patch name="T9HipKit2" hbank="63" lbank="40" prog="4" drum="1" />
+ <Patch name="HipStick3" hbank="63" lbank="40" prog="5" drum="1" />
+ <Patch name="HipStick4" hbank="63" lbank="40" prog="6" drum="1" />
+ <Patch name="RnB Kit3" hbank="63" lbank="40" prog="7" drum="1" />
+ </PatchGroup>
+ <Controller name="Modulation" l="1" />
+ <Controller name="PortamentoTime" l="5" />
+ <Controller name="MainVolume" l="7" init="100" />
+ <Controller name="Pan" l="10" min="-64" max="63" init="0" />
+ <Controller name="Expression" l="11" init="127" />
+ <Controller name="Sustain" l="64" />
+ <Controller name="Portamento" l="65" />
+ <Controller name="Sostenuto" l="66" />
+ <Controller name="SoftPedal" l="67" />
+ <Controller name="FilterResonance" l="71" init="64" />
+ <Controller name="ReleaseTime" l="72" init="64" />
+ <Controller name="AttackTime" l="73" init="64" />
+ <Controller name="Brightness" l="74" init="64" />
+ <Controller name="DecayTime" l="75" init="64" />
+ <Controller name="VibrateRate" l="76" init="64" />
+ <Controller name="VibrateDepth" l="77" init="64" />
+ <Controller name="VibrateDelay" l="78" init="64" />
+ <Controller name="PortamentoControl" l="84" />
+ <Controller name="ReverbSendLevel" l="91" init="40" />
+ <Controller name="ChorusSendLevel" l="93" init="0" />
+ <Controller name="VariationSend" l="94" init="0" />
+ <Controller name="AllSoundsOff" l="120" />
+ <Controller name="ResetAllController" l="121" />
+ <Controller name="AllNotesOff" l="123" />
+ <Controller name="PitchBendSensitivity" type="RPN" h="0" l="0" max="24" init="2" />
+ <Controller name="FineTuning" type="RPN" h="0" l="1" min="-64" max="63" init="0" />
+ <Controller name="Pitch" type="Pitch" />
+ <Controller name="Program" type="Program" />
+ </MidiInstrument>
+</muse>
diff --git a/muse2/share/instruments/Yamaha-P100.idf b/muse2/share/instruments/Yamaha-P100.idf
new file mode 100644
index 00000000..7a583555
--- /dev/null
+++ b/muse2/share/instruments/Yamaha-P100.idf
@@ -0,0 +1,44 @@
+<?xml version="1.0"?>
+<muse version="1.0">
+ <MidiInstrument name="Yamaha P100" nullparam="32639">
+ <PatchGroup name="">
+ <Patch name="Piano 1" prog="0" />
+ <Patch name="Piano 2" prog="1" />
+ <Patch name="E.Piano 1" prog="2" />
+ <Patch name="E.Piano 2" prog="3" />
+ <Patch name="Clavinova Tone" prog="4" />
+ <Patch name="Vibes" prog="5" />
+ <Patch name="Strings" prog="6" />
+ <Patch name="Organ" prog="7" />
+ <Patch name="Bass 1" prog="8" />
+ <Patch name="Bass 2" prog="9" />
+ </PatchGroup>
+ <Controller name="Modulation" l="1" />
+ <Controller name="PortamentoTime" l="5" />
+ <Controller name="MainVolume" l="7" init="100" />
+ <Controller name="Pan" l="10" min="-64" max="63" init="0" />
+ <Controller name="Expression" l="11" init="127" />
+ <Controller name="Sustain" l="64" />
+ <Controller name="Portamento" l="65" />
+ <Controller name="Sostenuto" l="66" />
+ <Controller name="SoftPedal" l="67" />
+ <Controller name="HarmonicContent" l="71" />
+ <Controller name="ReleaseTime" l="72" />
+ <Controller name="AttackTime" l="73" />
+ <Controller name="Brightness" l="74" />
+ <Controller name="PortamentoControl" l="84" />
+ <Controller name="Effect1Depth" l="91" />
+ <Controller name="Effect3Depth" l="93" />
+ <Controller name="PitchBendSensitivity" type="RPN" h="0" l="0" max="24" init="2" />
+ <Controller name="FineTuning" type="RPN" h="0" l="1" min="-64" max="63" init="0" />
+ <Controller name="VibratoRate" type="NRPN" h="1" l="8" min="-100" max="100" />
+ <Controller name="VibratoDepth" type="NRPN" h="1" l="9" min="-100" max="100" />
+ <Controller name="VibratoDelay" type="NRPN" h="1" l="10" min="-100" max="100" />
+ <Controller name="FilterCutoffFrequency" type="NRPN" h="1" l="32" min="-100" max="100" />
+ <Controller name="FilterResonance" type="NRPN" h="1" l="33" min="-100" max="100" />
+ <Controller name="EgAttackTime" type="NRPN" h="1" l="99" min="-100" max="100" />
+ <Controller name="EgDecayTime" type="NRPN" h="1" l="100" min="-100" max="100" />
+ <Controller name="EgReleaseTime" type="NRPN" h="1" l="102" min="-100" max="100" />
+ <Controller name="Program" type="Program" />
+ </MidiInstrument>
+</muse>
diff --git a/muse2/share/instruments/Yamaha-P50m.idf b/muse2/share/instruments/Yamaha-P50m.idf
new file mode 100644
index 00000000..8ad932d5
--- /dev/null
+++ b/muse2/share/instruments/Yamaha-P50m.idf
@@ -0,0 +1,63 @@
+<?xml version="1.0"?>
+<muse version="1.0">
+ <MidiInstrument name="Yamaha-P50m" nullparam="32639">
+ <PatchGroup name="">
+ <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" />
+ </PatchGroup>
+ <Controller name="Modulation" l="1" />
+ <Controller name="PortamentoTime" l="5" />
+ <Controller name="MainVolume" l="7" init="100" />
+ <Controller name="Pan" l="10" min="-64" max="63" init="0" />
+ <Controller name="Expression" l="11" init="127" />
+ <Controller name="Sustain" l="64" />
+ <Controller name="Portamento" l="65" />
+ <Controller name="Sostenuto" l="66" />
+ <Controller name="SoftPedal" l="67" />
+ <Controller name="HarmonicContent" l="71" />
+ <Controller name="ReleaseTime" l="72" />
+ <Controller name="AttackTime" l="73" />
+ <Controller name="Brightness" l="74" />
+ <Controller name="PortamentoControl" l="84" />
+ <Controller name="Effect1Depth" l="91" />
+ <Controller name="Effect3Depth" l="93" />
+ <Controller name="PitchBendSensitivity" type="RPN" h="0" l="0" max="24" init="2" />
+ <Controller name="FineTuning" type="RPN" h="0" l="1" min="-64" max="63" init="0" />
+ <Controller name="VibratoRate" type="NRPN" h="1" l="8" min="-100" max="100" />
+ <Controller name="VibratoDepth" type="NRPN" h="1" l="9" min="-100" max="100" />
+ <Controller name="VibratoDelay" type="NRPN" h="1" l="10" min="-100" max="100" />
+ <Controller name="FilterCutoffFrequency" type="NRPN" h="1" l="32" min="-100" max="100" />
+ <Controller name="FilterResonance" type="NRPN" h="1" l="33" min="-100" max="100" />
+ <Controller name="EgAttackTime" type="NRPN" h="1" l="99" min="-100" max="100" />
+ <Controller name="EgDecayTime" type="NRPN" h="1" l="100" min="-100" max="100" />
+ <Controller name="EgReleaseTime" type="NRPN" h="1" l="102" min="-100" max="100" />
+ <Controller name="Program" type="Program" />
+ </MidiInstrument>
+</muse>
diff --git a/muse2/share/instruments/Yamaha-PSR275.idf b/muse2/share/instruments/Yamaha-PSR275.idf
new file mode 100755
index 00000000..c448c3bf
--- /dev/null
+++ b/muse2/share/instruments/Yamaha-PSR275.idf
@@ -0,0 +1,567 @@
+<?xml version="1.0"?>
+<muse version="1.0">
+ <MidiInstrument name="Yamaha PSR-275">
+ <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" mode="5" hbank="0" lbank="0" prog="0" />
+ <Patch name="Grand Piano KSP" mode="4" hbank="0" lbank="1" prog="0" />
+ <Patch name="Piano Strings" mode="4" hbank="0" lbank="40" prog="0" />
+ <Patch name="Dream" mode="4" hbank="0" lbank="41" prog="0" />
+ <Patch name="Bright Piano" mode="5" hbank="0" lbank="0" prog="1" />
+ <Patch name="Bright Piano KSP" mode="4" hbank="0" lbank="1" prog="1" />
+ <Patch name="Electric Grand Piano" mode="5" hbank="0" lbank="0" prog="2" />
+ <Patch name="Electric Grand Piano KSP" mode="4" hbank="0" lbank="1" prog="2" />
+ <Patch name="Detuned CP80" mode="4" hbank="0" lbank="32" prog="2" />
+ <Patch name="Honky-tonk Piano" mode="5" hbank="0" lbank="0" prog="3" />
+ <Patch name="Honky-tonk Piano KSP" mode="4" hbank="0" lbank="1" prog="3" />
+ <Patch name="Electric Piano 1" mode="5" hbank="0" lbank="0" prog="4" />
+ <Patch name="Electric Piano 1 KSP" mode="4" hbank="0" lbank="1" prog="4" />
+ <Patch name="Chorus Electric Piano 1" mode="4" hbank="0" lbank="32" prog="4" />
+ <Patch name="Electric Piano 2" mode="5" hbank="0" lbank="0" prog="5" />
+ <Patch name="Electric Piano 2 KSP" mode="4" hbank="0" lbank="1" prog="5" />
+ <Patch name="Chorus Electric Piano 2" mode="4" hbank="0" lbank="32" prog="5" />
+ <Patch name="DX + Analog Electric Piano" mode="4" hbank="0" lbank="41" prog="5" />
+ <Patch name="Harpsichord" mode="5" hbank="0" lbank="0" prog="6" />
+ <Patch name="Harpsichord KSP" mode="4" hbank="0" lbank="1" prog="6" />
+ <Patch name="Harpsichord 3" mode="4" hbank="0" lbank="35" prog="6" />
+ <Patch name="Clavi" mode="5" hbank="0" lbank="0" prog="7" />
+ <Patch name="Clavi KSP" mode="4" hbank="0" lbank="1" prog="7" />
+ </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" mode="5" hbank="0" lbank="0" prog="16" />
+ <Patch name="Detuned DrawOrg" mode="4" hbank="0" lbank="32" prog="16" />
+ <Patch name="60;s DrawOrg 1" mode="4" hbank="0" lbank="33" prog="16" />
+ <Patch name="60;s DrawOrg 2" mode="4" hbank="0" lbank="34" prog="16" />
+ <Patch name="70;s DrawOrg 1" mode="4" hbank="0" lbank="35" prog="16" />
+ <Patch name="60;s DrawOrg 3" mode="4" hbank="0" lbank="37" prog="16" />
+ <Patch name="16+2&quot;2/3" mode="4" hbank="0" lbank="40" prog="16" />
+ <Patch name="Organ Bass" mode="4" hbank="0" lbank="64" prog="16" />
+ <Patch name="70;s DrawOrg 2" mode="4" hbank="0" lbank="65" prog="16" />
+ <Patch name="Cheezy Organ" mode="4" hbank="0" lbank="66" prog="16" />
+ <Patch name="DrawOrg 3" mode="4" hbank="0" lbank="67" prog="16" />
+ <Patch name="Percussive Organ" mode="5" hbank="0" lbank="0" prog="17" />
+ <Patch name="70;s Percussive Organ" mode="4" hbank="0" lbank="24" prog="17" />
+ <Patch name="Detuned Percussive Organ" mode="4" hbank="0" lbank="32" prog="17" />
+ <Patch name="Light Organ" mode="4" hbank="0" lbank="33" prog="17" />
+ <Patch name="Percussive Organ 2" mode="4" hbank="0" lbank="37" prog="17" />
+ <Patch name="Rock Organ" mode="5" hbank="0" lbank="0" prog="18" />
+ <Patch name="Rotary Organ" mode="4" hbank="0" lbank="64" prog="18" />
+ <Patch name="Slow Rotary" mode="4" hbank="0" lbank="65" prog="18" />
+ <Patch name="Fast Rotary" mode="4" hbank="0" lbank="66" prog="18" />
+ <Patch name="Church Organ" mode="5" hbank="0" lbank="0" prog="19" />
+ <Patch name="Church Organ 3" mode="4" hbank="0" lbank="32" prog="19" />
+ <Patch name="Church Organ 2" mode="4" hbank="0" lbank="35" prog="19" />
+ <Patch name="Notre Dame" mode="4" hbank="0" lbank="40" prog="19" />
+ <Patch name="Organ Flute" mode="4" hbank="0" lbank="64" prog="19" />
+ <Patch name="Tremolo Organ Flute" mode="4" hbank="0" lbank="65" prog="19" />
+ <Patch name="Reed Organ" mode="5" hbank="0" lbank="0" prog="20" />
+ <Patch name="Puff Organ" mode="4" hbank="0" lbank="40" prog="20" />
+ <Patch name="Accordion" mode="5" hbank="0" lbank="0" prog="21" />
+ <Patch name="Harmonica" mode="5" hbank="0" lbank="0" prog="22" />
+ <Patch name="Harmonica 2" mode="4" hbank="0" lbank="32" prog="22" />
+ <Patch name="Tango Accordion" mode="5" hbank="0" lbank="0" prog="23" />
+ <Patch name="Tango Accordion 2" mode="4" hbank="0" lbank="64" prog="23" />
+ </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" mode="5" hbank="0" lbank="0" prog="24" />
+ <Patch name="Ukulele" mode="4" hbank="0" lbank="96" prog="24" />
+ <Patch name="Steel Guitar" mode="5" hbank="0" lbank="0" prog="25" />
+ <Patch name="12-string Guitar" mode="4" hbank="0" lbank="35" prog="25" />
+ <Patch name="Nylon &amp; Steel Guitar" mode="4" hbank="0" lbank="40" prog="25" />
+ <Patch name="Steel Guitar with Body Sound" mode="4" hbank="0" lbank="41" prog="25" />
+ <Patch name="Mandolin" mode="4" hbank="0" lbank="96" prog="25" />
+ <Patch name="Jazz Guitar" mode="5" hbank="0" lbank="0" prog="26" />
+ <Patch name="Jazz Amp" mode="4" hbank="0" lbank="32" prog="26" />
+ <Patch name="Clean Guitar" mode="5" hbank="0" lbank="0" prog="27" />
+ <Patch name="Chorus Guitar" mode="4" hbank="0" lbank="32" prog="27" />
+ <Patch name="Muted Guitar" mode="5" hbank="0" lbank="0" prog="28" />
+ <Patch name="Funk Guitar 1" mode="4" hbank="0" lbank="40" prog="28" />
+ <Patch name="Muted Steel Guitar" mode="4" hbank="0" lbank="41" prog="28" />
+ <Patch name="Jazz Man" mode="4" hbank="0" lbank="45" prog="28" />
+ <Patch name="Overdriven Guitar" mode="5" hbank="0" lbank="0" prog="29" />
+ <Patch name="Guitar Pinch" mode="4" hbank="0" lbank="43" prog="29" />
+ <Patch name="Distortion Guitar" mode="5" hbank="0" lbank="0" prog="30" />
+ <Patch name="Feedback Guitar" mode="4" hbank="0" lbank="40" prog="30" />
+ <Patch name="Feedback Guitar 2" mode="4" hbank="0" lbank="41" prog="30" />
+ <Patch name="Guitar Harmonics" mode="5" hbank="0" lbank="0" prog="31" />
+ <Patch name="Guitar Feedback" mode="4" hbank="0" lbank="65" prog="31" />
+ <Patch name="Guitar Harmonics 2" mode="4" hbank="0" lbank="66" prog="31" />
+ </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" mode="5" hbank="0" lbank="0" prog="32" />
+ <Patch name="Jazz Rhythm" mode="4" hbank="0" lbank="40" prog="32" />
+ <Patch name="Velocity Crossfade Upright Bass" mode="4" hbank="0" lbank="45" prog="32" />
+ <Patch name="Finger Bass" mode="5" hbank="0" lbank="0" prog="33" />
+ <Patch name="Finger Dark" mode="4" hbank="0" lbank="18" prog="33" />
+ <Patch name="Bass &amp; Distorted Electric Guitar" mode="4" hbank="0" lbank="40" prog="33" />
+ <Patch name="Finger Slap Bass" mode="4" hbank="0" lbank="43" prog="33" />
+ <Patch name="Finger Bass 2" mode="4" hbank="0" lbank="45" prog="33" />
+ <Patch name="Modulated Bass" mode="4" hbank="0" lbank="65" prog="33" />
+ <Patch name="Pick Bass" mode="5" hbank="0" lbank="0" prog="34" />
+ <Patch name="Muted Pick Bass" mode="4" hbank="0" lbank="28" prog="34" />
+ <Patch name="Fretless Bass" mode="5" hbank="0" lbank="0" prog="35" />
+ <Patch name="Fretless Bass 2" mode="4" hbank="0" lbank="32" prog="35" />
+ <Patch name="Fretless Bass 3" mode="4" hbank="0" lbank="33" prog="35" />
+ <Patch name="Fretless Bass 4" mode="4" hbank="0" lbank="34" prog="35" />
+ <Patch name="Slap Bass 1" mode="5" hbank="0" lbank="0" prog="36" />
+ <Patch name="Punch Thumb Bass" mode="4" hbank="0" lbank="32" prog="36" />
+ <Patch name="Slap Bass 2" mode="5" hbank="0" lbank="0" prog="37" />
+ <Patch name="Velocity Switch Slap" mode="4" hbank="0" lbank="43" prog="37" />
+ <Patch name="Synth Bass 1" mode="5" hbank="0" lbank="0" prog="38" />
+ <Patch name="Techno Synth Bass" mode="4" hbank="0" lbank="40" prog="38" />
+ <Patch name="Synth Bass 2" mode="5" hbank="0" lbank="0" prog="39" />
+ <Patch name="Mellow Synth Bass" mode="4" hbank="0" lbank="6" prog="39" />
+ <Patch name="Sequenced Bass" mode="4" hbank="0" lbank="12" prog="39" />
+ <Patch name="Click Synth Bass" mode="4" hbank="0" lbank="18" prog="39" />
+ <Patch name="Synth Bass 2 Dark" mode="4" hbank="0" lbank="19" prog="39" />
+ <Patch name="Modular Synth Bass" mode="4" hbank="0" lbank="40" prog="39" />
+ <Patch name="DX Bass" mode="4" hbank="0" lbank="41" prog="39" />
+ </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" mode="5" hbank="0" lbank="0" prog="40" />
+ <Patch name="Slow Violin" mode="4" hbank="0" lbank="8" prog="40" />
+ <Patch name="Viola" mode="5" hbank="0" lbank="0" prog="41" />
+ <Patch name="Cello" mode="5" hbank="0" lbank="0" prog="42" />
+ <Patch name="Contrabass" mode="5" hbank="0" lbank="0" prog="43" />
+ <Patch name="Tremolo Strings" mode="5" hbank="0" lbank="0" prog="44" />
+ <Patch name="Slow Tremolo Strings" mode="4" hbank="0" lbank="8" prog="44" />
+ <Patch name="Suspense Strings" mode="4" hbank="0" lbank="40" prog="44" />
+ <Patch name="Pizzicato Strings" mode="5" hbank="0" lbank="0" prog="45" />
+ <Patch name="Orchestral Harp" mode="5" hbank="0" lbank="0" prog="46" />
+ <Patch name="Yang Chin" mode="4" hbank="0" lbank="40" prog="46" />
+ <Patch name="Timpani" mode="5" hbank="0" lbank="0" prog="47" />
+ </PatchGroup>
+ <PatchGroup name="Ensemble (XG)">
+ <Patch name="Strings 1" mode="5" hbank="0" lbank="0" prog="48" />
+ <Patch name="Stereo Strings" mode="4" hbank="0" lbank="3" prog="48" />
+ <Patch name="Slow Strings" mode="4" hbank="0" lbank="8" prog="48" />
+ <Patch name="60;s Strings" mode="4" hbank="0" lbank="35" prog="48" />
+ <Patch name="Orchestra" mode="4" hbank="0" lbank="40" prog="48" />
+ <Patch name="Orchestra 2" mode="4" hbank="0" lbank="41" prog="48" />
+ <Patch name="Tremolo Orchestra" mode="4" hbank="0" lbank="42" prog="48" />
+ <Patch name="Velocity Strings" mode="4" hbank="0" lbank="45" prog="48" />
+ <Patch name="Strings 2" mode="5" hbank="0" lbank="0" prog="49" />
+ <Patch name="Slow Stereo Strings" mode="4" hbank="0" lbank="3" prog="49" />
+ <Patch name="Legato Strings" mode="4" hbank="0" lbank="8" prog="49" />
+ <Patch name="Warm Strings" mode="4" hbank="0" lbank="40" prog="49" />
+ <Patch name="Kingdom" mode="4" hbank="0" lbank="41" prog="49" />
+ <Patch name="Synth Strings 1" mode="5" hbank="0" lbank="0" prog="50" />
+ <Patch name="Synth Strings 2" mode="5" hbank="0" lbank="0" prog="51" />
+ <Patch name="Choir Aahs" mode="5" hbank="0" lbank="0" prog="52" />
+ <Patch name="Stereo Choir" mode="4" hbank="0" lbank="3" prog="52" />
+ <Patch name="Mellow Choir" mode="4" hbank="0" lbank="32" prog="52" />
+ <Patch name="Choir Strings" mode="4" hbank="0" lbank="40" prog="52" />
+ <Patch name="Voice Oohs" mode="5" hbank="0" lbank="0" prog="53" />
+ <Patch name="Synth Voice" mode="5" hbank="0" lbank="0" prog="54" />
+ <Patch name="Synth Voice 2" mode="4" hbank="0" lbank="40" prog="54" />
+ <Patch name="Choral" mode="4" hbank="0" lbank="41" prog="54" />
+ <Patch name="Analog Voice" mode="4" hbank="0" lbank="64" prog="54" />
+ <Patch name="Orchestra Hit" mode="5" hbank="0" lbank="0" prog="55" />
+ <Patch name="Orchestra Hit 2" mode="4" hbank="0" lbank="35" prog="55" />
+ <Patch name="Impact" mode="4" hbank="0" lbank="64" prog="55" />
+ </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" mode="5" hbank="0" lbank="0" prog="56" />
+ <Patch name="Warm Trumpet" mode="4" hbank="0" lbank="32" prog="56" />
+ <Patch name="Trombone" mode="5" hbank="0" lbank="0" prog="57" />
+ <Patch name="Trombone 2" mode="4" hbank="0" lbank="18" prog="57" />
+ <Patch name="Tuba" mode="5" hbank="0" lbank="0" prog="58" />
+ <Patch name="Muted Trumpet" mode="5" hbank="0" lbank="0" prog="59" />
+ <Patch name="French Horn" mode="5" hbank="0" lbank="0" prog="60" />
+ <Patch name="French Horn Solo" mode="4" hbank="0" lbank="6" prog="60" />
+ <Patch name="French Horn 2" mode="4" hbank="0" lbank="32" prog="60" />
+ <Patch name="Horn Orchestra" mode="4" hbank="0" lbank="37" prog="60" />
+ <Patch name="Brass Section" mode="5" hbank="0" lbank="0" prog="61" />
+ <Patch name="Trumpet &amp; Trombone Section" mode="4" hbank="0" lbank="35" prog="61" />
+ <Patch name="Synth Brass 1" mode="5" hbank="0" lbank="0" prog="62" />
+ <Patch name="Resonant Synth Brass" mode="4" hbank="0" lbank="20" prog="62" />
+ <Patch name="Synth Brass 2" mode="5" hbank="0" lbank="0" prog="63" />
+ <Patch name="Soft Brass" mode="4" hbank="0" lbank="18" prog="63" />
+ <Patch name="Choir Brass" mode="4" hbank="0" lbank="41" prog="63" />
+ </PatchGroup>
+ <PatchGroup name="Reed (XG)">
+ <Patch name="Soprano Sax" mode="5" hbank="0" lbank="0" prog="64" />
+ <Patch name="Alto Sax" mode="5" hbank="0" lbank="0" prog="65" />
+ <Patch name="Sax Section" mode="4" hbank="0" lbank="40" prog="65" />
+ <Patch name="Tenor Sax" mode="5" hbank="0" lbank="0" prog="66" />
+ <Patch name="Breathy Tenor Sax" mode="4" hbank="0" lbank="40" prog="66" />
+ <Patch name="Baritone Sax" mode="5" hbank="0" lbank="0" prog="67" />
+ <Patch name="Oboe" mode="5" hbank="0" lbank="0" prog="68" />
+ <Patch name="English Horn" mode="5" hbank="0" lbank="0" prog="69" />
+ <Patch name="Bassoon" mode="5" hbank="0" lbank="0" prog="70" />
+ <Patch name="Clarinet" mode="5" hbank="0" lbank="0" prog="71" />
+ </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" mode="5" hbank="0" lbank="0" prog="72" />
+ <Patch name="Flute" mode="5" hbank="0" lbank="0" prog="73" />
+ <Patch name="Recorder" mode="5" hbank="0" lbank="0" prog="74" />
+ <Patch name="Pan Flute" mode="5" hbank="0" lbank="0" prog="75" />
+ <Patch name="Blown Bottle" mode="5" hbank="0" lbank="0" prog="76" />
+ <Patch name="Shakuhachi" mode="5" hbank="0" lbank="0" prog="77" />
+ <Patch name="Whistle" mode="5" hbank="0" lbank="0" prog="78" />
+ <Patch name="Ocarina" mode="5" hbank="0" lbank="0" prog="79" />
+ </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" mode="5" hbank="0" lbank="0" prog="80" />
+ <Patch name="Square Lead 2" mode="4" hbank="0" lbank="6" prog="80" />
+ <Patch name="LM Square" mode="4" hbank="0" lbank="8" prog="80" />
+ <Patch name="Hollow" mode="4" hbank="0" lbank="18" prog="80" />
+ <Patch name="Shroud" mode="4" hbank="0" lbank="19" prog="80" />
+ <Patch name="Mellow" mode="4" hbank="0" lbank="64" prog="80" />
+ <Patch name="Solo Sine" mode="4" hbank="0" lbank="65" prog="80" />
+ <Patch name="Sine Lead" mode="4" hbank="0" lbank="66" prog="80" />
+ <Patch name="Sawtooth Lead" mode="5" hbank="0" lbank="0" prog="81" />
+ <Patch name="Sawtooth Lead 2" mode="4" hbank="0" lbank="6" prog="81" />
+ <Patch name="Thick Sawtooth" mode="4" hbank="0" lbank="8" prog="81" />
+ <Patch name="Dynamic Sawtooth" mode="4" hbank="0" lbank="18" prog="81" />
+ <Patch name="Digital Sawtooth" mode="4" hbank="0" lbank="19" prog="81" />
+ <Patch name="Big Lead" mode="4" hbank="0" lbank="20" prog="81" />
+ <Patch name="Sequenced Analog" mode="4" hbank="0" lbank="96" prog="81" />
+ <Patch name="Calliope Lead" mode="5" hbank="0" lbank="0" prog="82" />
+ <Patch name="Pure Lead" mode="4" hbank="0" lbank="65" prog="82" />
+ <Patch name="Chiff Lead" mode="5" hbank="0" lbank="0" prog="83" />
+ <Patch name="Charang Lead" mode="5" hbank="0" lbank="0" prog="84" />
+ <Patch name="Distorted Lead" mode="4" hbank="0" lbank="64" prog="84" />
+ <Patch name="Voice Lead" mode="5" hbank="0" lbank="0" prog="85" />
+ <Patch name="Fifths Lead" mode="5" hbank="0" lbank="0" prog="86" />
+ <Patch name="Big Five" mode="4" hbank="0" lbank="35" prog="86" />
+ <Patch name="Bass &amp; Lead" mode="5" hbank="0" lbank="0" prog="87" />
+ <Patch name="Big &amp; Low" mode="4" hbank="0" lbank="16" prog="87" />
+ <Patch name="Fat &amp; Perky" mode="4" hbank="0" lbank="64" prog="87" />
+ <Patch name="Soft Whirl" mode="4" hbank="0" lbank="65" prog="87" />
+ </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" mode="5" hbank="0" lbank="0" prog="88" />
+ <Patch name="Fantasy" mode="4" hbank="0" lbank="64" prog="88" />
+ <Patch name="Warm Pad" mode="5" hbank="0" lbank="0" prog="89" />
+ <Patch name="Poly Synth Pad" mode="5" hbank="0" lbank="0" prog="90" />
+ <Patch name="Choir Pad" mode="5" hbank="0" lbank="0" prog="91" />
+ <Patch name="Itopia" mode="4" hbank="0" lbank="66" prog="91" />
+ <Patch name="Bowed Pad" mode="5" hbank="0" lbank="0" prog="92" />
+ <Patch name="Metallic Pad" mode="5" hbank="0" lbank="0" prog="93" />
+ <Patch name="Halo Pad" mode="5" hbank="0" lbank="0" prog="94" />
+ <Patch name="Sweep Pad" mode="5" hbank="0" lbank="0" prog="95" />
+ </PatchGroup>
+ <PatchGroup name="Synth Effects (XG)">
+ <Patch name="Rain" mode="5" hbank="0" lbank="0" prog="96" />
+ <Patch name="African Wind" mode="4" hbank="0" lbank="65" prog="96" />
+ <Patch name="Carib" mode="4" hbank="0" lbank="66" prog="96" />
+ <Patch name="Sound Track" mode="5" hbank="0" lbank="0" prog="97" />
+ <Patch name="Prologue" mode="4" hbank="0" lbank="27" prog="97" />
+ <Patch name="Crystal" mode="5" hbank="0" lbank="0" prog="98" />
+ <Patch name="Synth Drum Comp" mode="4" hbank="0" lbank="12" prog="98" />
+ <Patch name="Popcorn" mode="4" hbank="0" lbank="14" prog="98" />
+ <Patch name="Tiny Bells" mode="4" hbank="0" lbank="18" prog="98" />
+ <Patch name="Round Glockenspiel" mode="4" hbank="0" lbank="35" prog="98" />
+ <Patch name="Glockenspiel Chimes" mode="4" hbank="0" lbank="40" prog="98" />
+ <Patch name="Clear Bells" mode="4" hbank="0" lbank="41" prog="98" />
+ <Patch name="Chorus Bells" mode="4" hbank="0" lbank="42" prog="98" />
+ <Patch name="Soft Crystal" mode="4" hbank="0" lbank="65" prog="98" />
+ <Patch name="Air Bells" mode="4" hbank="0" lbank="70" prog="98" />
+ <Patch name="Bell Harp" mode="4" hbank="0" lbank="71" prog="98" />
+ <Patch name="Gamelimba" mode="4" hbank="0" lbank="72" prog="98" />
+ <Patch name="Atmosphere" mode="5" hbank="0" lbank="0" prog="99" />
+ <Patch name="Warm Atmosphere" mode="4" hbank="0" lbank="18" prog="99" />
+ <Patch name="Hollow Release" mode="4" hbank="0" lbank="19" prog="99" />
+ <Patch name="Nylon Electric Piano" mode="4" hbank="0" lbank="40" prog="99" />
+ <Patch name="Nylon Harp" mode="4" hbank="0" lbank="64" prog="99" />
+ <Patch name="Harp Vox" mode="4" hbank="0" lbank="65" prog="99" />
+ <Patch name="Atmosphere Pad" mode="4" hbank="0" lbank="66" prog="99" />
+ <Patch name="Brightness" mode="5" hbank="0" lbank="0" prog="100" />
+ <Patch name="Goblins" mode="5" hbank="0" lbank="0" prog="101" />
+ <Patch name="Goblins Synth" mode="4" hbank="0" lbank="64" prog="101" />
+ <Patch name="Creeper" mode="4" hbank="0" lbank="65" prog="101" />
+ <Patch name="Ritual" mode="4" hbank="0" lbank="67" prog="101" />
+ <Patch name="To Heaven" mode="4" hbank="0" lbank="68" prog="101" />
+ <Patch name="Night" mode="4" hbank="0" lbank="70" prog="101" />
+ <Patch name="Glisten" mode="4" hbank="0" lbank="71" prog="101" />
+ <Patch name="Bell Choir" mode="4" hbank="0" lbank="96" prog="101" />
+ <Patch name="Echoes" mode="5" hbank="0" lbank="0" prog="102" />
+ <Patch name="Sci-Fi" mode="5" hbank="0" lbank="0" prog="103" />
+ </PatchGroup>
+ <PatchGroup name="World (XG)">
+ <Patch name="Sitar" mode="5" hbank="0" lbank="0" prog="104" />
+ <Patch name="Detuned Sitar" mode="4" hbank="0" lbank="32" prog="104" />
+ <Patch name="Sitar 2" mode="4" hbank="0" lbank="35" prog="104" />
+ <Patch name="Tamboura" mode="4" hbank="0" lbank="97" prog="104" />
+ <Patch name="Banjo" mode="5" hbank="0" lbank="0" prog="105" />
+ <Patch name="Muted Banjo" mode="4" hbank="0" lbank="28" prog="105" />
+ <Patch name="Rabab" mode="4" hbank="0" lbank="96" prog="105" />
+ <Patch name="Gopichant" mode="4" hbank="0" lbank="97" prog="105" />
+ <Patch name="Oud" mode="4" hbank="0" lbank="98" prog="105" />
+ <Patch name="Shamisen" mode="5" hbank="0" lbank="0" prog="106" />
+ <Patch name="Koto" mode="5" hbank="0" lbank="0" prog="107" />
+ <Patch name="Taisho-kin" mode="4" hbank="0" lbank="96" prog="107" />
+ <Patch name="Kanoon" mode="4" hbank="0" lbank="97" prog="107" />
+ <Patch name="Kalimba" mode="5" hbank="0" lbank="0" prog="108" />
+ <Patch name="Bagpipe" mode="5" hbank="0" lbank="0" prog="109" />
+ <Patch name="Fiddle" mode="5" hbank="0" lbank="0" prog="110" />
+ <Patch name="Shanai" mode="5" hbank="0" lbank="0" prog="111" />
+ </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" mode="5" hbank="0" lbank="0" prog="8" />
+ <Patch name="Glockenspiel" mode="5" hbank="0" lbank="0" prog="9" />
+ <Patch name="Music Box" mode="5" hbank="0" lbank="0" prog="10" />
+ <Patch name="Orgel" mode="4" hbank="0" lbank="64" prog="10" />
+ <Patch name="Vibraphone" mode="5" hbank="0" lbank="0" prog="11" />
+ <Patch name="Vibraphone KSP" mode="4" hbank="0" lbank="1" prog="11" />
+ <Patch name="Marimba" mode="5" hbank="0" lbank="0" prog="12" />
+ <Patch name="Marimba KSP" mode="4" hbank="0" lbank="1" prog="12" />
+ <Patch name="Sine Marimba" mode="4" hbank="0" lbank="64" prog="12" />
+ <Patch name="Balimba" mode="4" hbank="0" lbank="97" prog="12" />
+ <Patch name="Log Drums" mode="4" hbank="0" lbank="98" prog="12" />
+ <Patch name="Xylophone" mode="5" hbank="0" lbank="0" prog="13" />
+ <Patch name="Tubular Bells" mode="5" hbank="0" lbank="0" prog="14" />
+ <Patch name="Church Bells" mode="4" hbank="0" lbank="96" prog="14" />
+ <Patch name="Carillon" mode="4" hbank="0" lbank="97" prog="14" />
+ <Patch name="Dulcimer" mode="5" hbank="0" lbank="0" prog="15" />
+ <Patch name="Dulcimer 2" 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="Percussive (XG)">
+ <Patch name="Tinkle Bell" mode="5" hbank="0" lbank="0" prog="112" />
+ <Patch name="Bonang" mode="4" hbank="0" lbank="96" prog="112" />
+ <Patch name="Altair" mode="4" hbank="0" lbank="97" prog="112" />
+ <Patch name="Gamelan Gongs" mode="4" hbank="0" lbank="98" prog="112" />
+ <Patch name="Stereo Gamelan Gongs" mode="4" hbank="0" lbank="99" prog="112" />
+ <Patch name="Rama Cymbal" mode="4" hbank="0" lbank="100" prog="112" />
+ <Patch name="Agogo" mode="5" hbank="0" lbank="0" prog="113" />
+ <Patch name="Steel Drums" mode="5" hbank="0" lbank="0" prog="114" />
+ <Patch name="Glass Percussion" mode="4" hbank="0" lbank="97" prog="114" />
+ <Patch name="Thai Bells" mode="4" hbank="0" lbank="98" prog="114" />
+ <Patch name="Woodblock" mode="5" hbank="0" lbank="0" prog="115" />
+ <Patch name="Castanets" mode="4" hbank="0" lbank="96" prog="115" />
+ <Patch name="Taiko Drum" mode="5" hbank="0" lbank="0" prog="116" />
+ <Patch name="Gran Cassa" mode="4" hbank="0" lbank="96" prog="116" />
+ <Patch name="Melodic Tom" mode="5" hbank="0" lbank="0" prog="117" />
+ <Patch name="Melodic Tom 2" mode="4" hbank="0" lbank="64" prog="117" />
+ <Patch name="Real Tom" mode="4" hbank="0" lbank="65" prog="117" />
+ <Patch name="Rock Tom" mode="4" hbank="0" lbank="66" prog="117" />
+ <Patch name="Synth Drum" mode="5" hbank="0" lbank="0" prog="118" />
+ <Patch name="Analog Tom" mode="4" hbank="0" lbank="64" prog="118" />
+ <Patch name="Electronic Percussion" mode="4" hbank="0" lbank="65" prog="118" />
+ <Patch name="Reverse Cymbal" mode="5" hbank="0" lbank="0" prog="119" />
+ </PatchGroup>
+ <PatchGroup name="Sound Effects (XG)">
+ <Patch name="Fret Noise" mode="5" hbank="0" lbank="0" prog="120" />
+ <Patch name="Breath Noise" mode="5" hbank="0" lbank="0" prog="121" />
+ <Patch name="Seashore" mode="5" hbank="0" lbank="0" prog="122" />
+ <Patch name="Bird Tweet" mode="5" hbank="0" lbank="0" prog="123" />
+ <Patch name="Telephone Ring" mode="5" hbank="0" lbank="0" prog="124" />
+ <Patch name="Helicopter" mode="5" hbank="0" lbank="0" prog="125" />
+ <Patch name="Applause" mode="5" hbank="0" lbank="0" prog="126" />
+ <Patch name="Gunshot" mode="5" hbank="0" lbank="0" prog="127" />
+ <Patch name="Cutting Noise" mode="4" hbank="64" lbank="0" prog="0" />
+ <Patch name="Cutting Noise 2" mode="4" hbank="64" lbank="0" prog="1" />
+ <Patch name="String Slap" mode="4" hbank="64" lbank="0" prog="3" />
+ <Patch name="Flute Key Click" mode="4" hbank="64" lbank="0" prog="16" />
+ <Patch name="Shower" mode="4" hbank="64" lbank="0" prog="32" />
+ <Patch name="Thunder" mode="4" hbank="64" lbank="0" prog="33" />
+ <Patch name="Wind" mode="4" hbank="64" lbank="0" prog="34" />
+ <Patch name="Steam" mode="4" hbank="64" lbank="0" prog="35" />
+ <Patch name="Bubble" mode="4" hbank="64" lbank="0" prog="36" />
+ <Patch name="Feed" mode="4" hbank="64" lbank="0" prog="37" />
+ <Patch name="Dog" mode="4" hbank="64" lbank="0" prog="48" />
+ <Patch name="Horse" mode="4" hbank="64" lbank="0" prog="49" />
+ <Patch name="Bird Tweet 2" mode="4" hbank="64" lbank="0" prog="50" />
+ <Patch name="Maou" mode="4" hbank="64" lbank="0" prog="55" />
+ <Patch name="Phone Call" mode="4" hbank="64" lbank="0" prog="64" />
+ <Patch name="Door Squeak" mode="4" hbank="64" lbank="0" prog="65" />
+ <Patch name="Door Slam" mode="4" hbank="64" lbank="0" prog="66" />
+ <Patch name="Scratch Cut" mode="4" hbank="64" lbank="0" prog="67" />
+ <Patch name="Scratch Split" mode="4" hbank="64" lbank="0" prog="68" />
+ <Patch name="Wind Chime" mode="4" hbank="64" lbank="0" prog="69" />
+ <Patch name="Telephone Ring 2" mode="4" hbank="64" lbank="0" prog="70" />
+ <Patch name="Car Engine Ignition" mode="4" hbank="64" lbank="0" prog="80" />
+ <Patch name="Car Tires Squeak" mode="4" hbank="64" lbank="0" prog="81" />
+ <Patch name="Car Passing" mode="4" hbank="64" lbank="0" prog="82" />
+ <Patch name="Car Crash" mode="4" hbank="64" lbank="0" prog="83" />
+ <Patch name="Siren" mode="4" hbank="64" lbank="0" prog="84" />
+ <Patch name="Train" mode="4" hbank="64" lbank="0" prog="85" />
+ <Patch name="Jet Plane" mode="4" hbank="64" lbank="0" prog="86" />
+ <Patch name="Starship" mode="4" hbank="64" lbank="0" prog="87" />
+ <Patch name="Burst" mode="4" hbank="64" lbank="0" prog="88" />
+ <Patch name="Roller Coaster" mode="4" hbank="64" lbank="0" prog="89" />
+ <Patch name="Submarine" mode="4" hbank="64" lbank="0" prog="90" />
+ <Patch name="Laugh" mode="4" hbank="64" lbank="0" prog="96" />
+ <Patch name="Scream" mode="4" hbank="64" lbank="0" prog="97" />
+ <Patch name="Punch" mode="4" hbank="64" lbank="0" prog="98" />
+ <Patch name="Heartbeat" mode="4" hbank="64" lbank="0" prog="99" />
+ <Patch name="Footsteps" mode="4" hbank="64" lbank="0" prog="100" />
+ <Patch name="Machine Gun" mode="4" hbank="64" lbank="0" prog="112" />
+ <Patch name="Laser Gun" mode="4" hbank="64" lbank="0" prog="113" />
+ <Patch name="Explosion" mode="4" hbank="64" lbank="0" prog="114" />
+ <Patch name="Firework" mode="4" hbank="64" lbank="0" prog="115" />
+ </PatchGroup>
+ <PatchGroup name="Drums">
+ <Patch name="Standard Kit 1" mode="5" hbank="127" lbank="0" prog="0" drum="1" />
+ <Patch name="Standard Kit 2" mode="4" hbank="127" lbank="0" prog="1" drum="1" />
+ <Patch name="Room Kit" mode="4" hbank="127" lbank="0" prog="8" drum="1" />
+ <Patch name="Rock Kit" mode="4" hbank="127" lbank="0" prog="16" drum="1" />
+ <Patch name="Electronic Kit" mode="4" hbank="127" lbank="0" prog="24" drum="1" />
+ <Patch name="Analog Kit" mode="4" hbank="127" lbank="0" prog="25" drum="1" />
+ <Patch name="Dance Kit" mode="4" hbank="127" lbank="0" prog="27" drum="1" />
+ <Patch name="Jazz Kit" mode="4" hbank="127" lbank="0" prog="32" drum="1" />
+ <Patch name="Brush Kit" mode="4" hbank="127" lbank="0" prog="40" drum="1" />
+ <Patch name="Symphony Kit" mode="4" hbank="127" lbank="0" prog="48" drum="1" />
+ </PatchGroup>
+ <PatchGroup name="SFX">
+ <Patch name="SFX Kit 1" mode="4" hbank="126" lbank="0" prog="0" />
+ <Patch name="SFX Kit 2" mode="4" hbank="126" lbank="0" prog="1" />
+ </PatchGroup>
+ <Controller name="Pitch" type="Pitch" />
+ <Controller name="Program" type="Program" />
+ <Controller name="Modulation" l="1" />
+ <Controller name="MainVolume" l="7" init="100" />
+ <Controller name="Pan" l="10" min="-64" max="63" init="0" />
+ <Controller name="Expression" l="11" init="100" />
+ <Controller name="Sustain" l="64" />
+ <Controller name="ReleaseTime" l="72" init="64" />
+ <Controller name="AttackTime" l="73" init="64" />
+ <Controller name="Brightness" l="74" init="64" />
+ <Controller name="PortamentoControl" l="84" />
+ <Controller name="ReverbSendLevel" l="91" init="0" />
+ <Controller name="ChorusSendLevel" l="93" init="0" />
+ <Controller name="AllSoundsOff" l="120" />
+ <Controller name="ResetAllController" l="121" />
+ <Controller name="AllNotesOff" l="123" />
+ </MidiInstrument>
+</muse>
diff --git a/muse2/share/instruments/Yamaha-PSR530.idf b/muse2/share/instruments/Yamaha-PSR530.idf
new file mode 100644
index 00000000..7637b5f2
--- /dev/null
+++ b/muse2/share/instruments/Yamaha-PSR530.idf
@@ -0,0 +1,757 @@
+<?xml version="1.0"?>
+<muse version="1.0">
+ <MidiInstrument name="Yamaha PSR 530">
+ <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" drum="1" />
+ <Patch name="202: Std.Kit2" hbank="127" lbank="0" prog="1" drum="1" />
+ <Patch name="203: Room Kit" hbank="127" lbank="0" prog="8" drum="1" />
+ <Patch name="204: Rock Kit" hbank="127" lbank="0" prog="16" drum="1" />
+ <Patch name="205: Electro Kit" hbank="127" lbank="0" prog="24" drum="1" />
+ <Patch name="206: Analog Kit" hbank="127" lbank="0" prog="25" drum="1" />
+ <Patch name="207: Dance Kit" hbank="127" lbank="0" prog="27" drum="1" />
+ <Patch name="208: Jazz Kit" hbank="127" lbank="0" prog="32" drum="1" />
+ <Patch name="209: Brush Kit" hbank="127" lbank="0" prog="40" drum="1" />
+ <Patch name="210: Classic Kit" hbank="127" lbank="0" prog="48" drum="1" />
+ <Patch name="211: SFX Kit1" hbank="126" lbank="0" prog="0" drum="1" />
+ <Patch name="212: SFX Kit2" hbank="126" lbank="0" prog="1" drum="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>
+ <Controller name="Program" type="Program" />
+ </MidiInstrument>
+</muse>
diff --git a/muse2/share/instruments/Yamaha-S90.idf b/muse2/share/instruments/Yamaha-S90.idf
new file mode 100644
index 00000000..dd0125a1
--- /dev/null
+++ b/muse2/share/instruments/Yamaha-S90.idf
@@ -0,0 +1,666 @@
+<?xml version="1.0"?>
+<muse version="1.0">
+ <MidiInstrument name="Yamaha-S90">
+ <PatchGroup name="PRE1">
+ <Patch name="3LayerS700" hbank="63" lbank="0" prog="0" />
+ <Patch name="Soft Touch" hbank="63" lbank="0" prog="1" />
+ <Patch name="PowerGrand" hbank="63" lbank="0" prog="2" />
+ <Patch name="BriteRock" hbank="63" lbank="0" prog="3" />
+ <Patch name="Jazz Grand" hbank="63" lbank="0" prog="4" />
+ <Patch name="CP 80" hbank="63" lbank="0" prog="5" />
+ <Patch name="BalladKeys" hbank="63" lbank="0" prog="6" />
+ <Patch name="80;s Layer" hbank="63" lbank="0" prog="7" />
+ <Patch name="S700&amp;Strg" hbank="63" lbank="0" prog="8" />
+ <Patch name="S700&amp;Ooh" hbank="63" lbank="0" prog="9" />
+ <Patch name="PianoBakup" hbank="63" lbank="0" prog="10" />
+ <Patch name="Max Tine" hbank="63" lbank="0" prog="11" />
+ <Patch name="Early Fusn" hbank="63" lbank="0" prog="12" />
+ <Patch name="Vintage;74" hbank="63" lbank="0" prog="13" />
+ <Patch name="Sweetness" hbank="63" lbank="0" prog="14" />
+ <Patch name="DynoStrait" hbank="63" lbank="0" prog="15" />
+ <Patch name="ChorusHard" hbank="63" lbank="0" prog="16" />
+ <Patch name="VintagCase" hbank="63" lbank="0" prog="17" />
+ <Patch name="ChorusDyno" hbank="63" lbank="0" prog="18" />
+ <Patch name="80th Boost" hbank="63" lbank="0" prog="19" />
+ <Patch name="Contempo" hbank="63" lbank="0" prog="20" />
+ <Patch name="Early 70;s" hbank="63" lbank="0" prog="21" />
+ <Patch name="Tonight" hbank="63" lbank="0" prog="22" />
+ <Patch name="E.PianoPad" hbank="63" lbank="0" prog="23" />
+ <Patch name="TX802" hbank="63" lbank="0" prog="24" />
+ <Patch name="ChorusBel" hbank="63" lbank="0" prog="25" />
+ <Patch name="BellDX" hbank="63" lbank="0" prog="26" />
+ <Patch name="Dark DX" hbank="63" lbank="0" prog="27" />
+ <Patch name="GS Tines" hbank="63" lbank="0" prog="28" />
+ <Patch name="Rich FM" hbank="63" lbank="0" prog="29" />
+ <Patch name="FilteredDX" hbank="63" lbank="0" prog="30" />
+ <Patch name="Ice Piano" hbank="63" lbank="0" prog="31" />
+ <Patch name="WurliTrem" hbank="63" lbank="0" prog="32" />
+ <Patch name="WurliAmped" hbank="63" lbank="0" prog="33" />
+ <Patch name="TouchClavi" hbank="63" lbank="0" prog="34" />
+ <Patch name="SuperClavi" hbank="63" lbank="0" prog="35" />
+ <Patch name="StereoClav" hbank="63" lbank="0" prog="36" />
+ <Patch name="HollowClav" hbank="63" lbank="0" prog="37" />
+ <Patch name="Nu Phasing" hbank="63" lbank="0" prog="38" />
+ <Patch name="Digi Clavi" hbank="63" lbank="0" prog="39" />
+ <Patch name="PulseClavi" hbank="63" lbank="0" prog="40" />
+ <Patch name="Twinkle" hbank="63" lbank="0" prog="41" />
+ <Patch name="Stick Bell" hbank="63" lbank="0" prog="42" />
+ <Patch name="Bell Chiff" hbank="63" lbank="0" prog="43" />
+ <Patch name="FngrCymbl" hbank="63" lbank="0" prog="44" />
+ <Patch name="ChorusBell" hbank="63" lbank="0" prog="45" />
+ <Patch name="Tibetan" hbank="63" lbank="0" prog="46" />
+ <Patch name="EastBell" hbank="63" lbank="0" prog="47" />
+ <Patch name="Gamelan" hbank="63" lbank="0" prog="48" />
+ <Patch name="IceBells" hbank="63" lbank="0" prog="49" />
+ <Patch name="Digi Bell" hbank="63" lbank="0" prog="50" />
+ <Patch name="Marimbell" hbank="63" lbank="0" prog="51" />
+ <Patch name="16+8+5&amp;1/3" hbank="63" lbank="0" prog="52" />
+ <Patch name="Petit" hbank="63" lbank="0" prog="53" />
+ <Patch name="Glassy" hbank="63" lbank="0" prog="54" />
+ <Patch name="Jazzy" hbank="63" lbank="0" prog="55" />
+ <Patch name="Slow Jam" hbank="63" lbank="0" prog="56" />
+ <Patch name="Greasy" hbank="63" lbank="0" prog="57" />
+ <Patch name="Swishie" hbank="63" lbank="0" prog="58" />
+ <Patch name="Clean" hbank="63" lbank="0" prog="59" />
+ <Patch name="Full/CVib" hbank="63" lbank="0" prog="60" />
+ <Patch name="Mellow" hbank="63" lbank="0" prog="61" />
+ <Patch name="Nu Shade" hbank="63" lbank="0" prog="62" />
+ <Patch name="Cool Cat" hbank="63" lbank="0" prog="63" />
+ <Patch name="Flutey" hbank="63" lbank="0" prog="0" />
+ <Patch name="LeftManual" hbank="63" lbank="0" prog="1" />
+ <Patch name="DrawContrl" hbank="63" lbank="0" prog="2" />
+ <Patch name="Rocky" hbank="63" lbank="0" prog="3" />
+ <Patch name="Expensive" hbank="63" lbank="0" prog="4" />
+ <Patch name="Progressy" hbank="63" lbank="0" prog="5" />
+ <Patch name="Crunchy" hbank="63" lbank="0" prog="6" />
+ <Patch name="Early Bird" hbank="63" lbank="0" prog="7" />
+ <Patch name="Jazz Split" hbank="63" lbank="0" prog="8" />
+ <Patch name="GosplSplit" hbank="63" lbank="0" prog="9" />
+ <Patch name="Tradi" hbank="63" lbank="0" prog="10" />
+ <Patch name="Sunday" hbank="63" lbank="0" prog="11" />
+ <Patch name="BreathPipe" hbank="63" lbank="0" prog="12" />
+ <Patch name="Fluty Pipe" hbank="63" lbank="0" prog="13" />
+ <Patch name="Reedy Pipe" hbank="63" lbank="0" prog="14" />
+ <Patch name="OohPipes" hbank="63" lbank="0" prog="15" />
+ <Patch name="Flamenco" hbank="63" lbank="0" prog="16" />
+ <Patch name="Nylon Jam" hbank="63" lbank="0" prog="17" />
+ <Patch name="BriteSteel" hbank="63" lbank="0" prog="18" />
+ <Patch name="Strums" hbank="63" lbank="0" prog="19" />
+ <Patch name="Big Steel" hbank="63" lbank="0" prog="20" />
+ <Patch name="Folk Steel" hbank="63" lbank="0" prog="21" />
+ <Patch name="18 String" hbank="63" lbank="0" prog="22" />
+ <Patch name="HarpsiGtr" hbank="63" lbank="0" prog="23" />
+ <Patch name="HybridGtr" hbank="63" lbank="0" prog="24" />
+ <Patch name="JazzGTmelo" hbank="63" lbank="0" prog="25" />
+ <Patch name="Velo Jazz" hbank="63" lbank="0" prog="26" />
+ <Patch name="FM Jazz" hbank="63" lbank="0" prog="27" />
+ <Patch name="For Funk" hbank="63" lbank="0" prog="28" />
+ <Patch name="Spanky" hbank="63" lbank="0" prog="29" />
+ <Patch name="Funkiest" hbank="63" lbank="0" prog="30" />
+ <Patch name="Vin Strum" hbank="63" lbank="0" prog="31" />
+ <Patch name="1CoilChors" hbank="63" lbank="0" prog="32" />
+ <Patch name="CleanChors" hbank="63" lbank="0" prog="33" />
+ <Patch name="ChorusPlus" hbank="63" lbank="0" prog="34" />
+ <Patch name="SmoothChor" hbank="63" lbank="0" prog="35" />
+ <Patch name="TexBoogie" hbank="63" lbank="0" prog="36" />
+ <Patch name="Rockabilly" hbank="63" lbank="0" prog="37" />
+ <Patch name="65 Combo" hbank="63" lbank="0" prog="38" />
+ <Patch name="VinTremolo" hbank="63" lbank="0" prog="39" />
+ <Patch name="Crunchoid" hbank="63" lbank="0" prog="40" />
+ <Patch name="DynamicAmp" hbank="63" lbank="0" prog="41" />
+ <Patch name="Feedback" hbank="63" lbank="0" prog="42" />
+ <Patch name="VOODOOMAN" hbank="63" lbank="0" prog="43" />
+ <Patch name="BlueLead" hbank="63" lbank="0" prog="44" />
+ <Patch name="MeloRckLd" hbank="63" lbank="0" prog="45" />
+ <Patch name="MetalMute" hbank="63" lbank="0" prog="46" />
+ <Patch name="OverTheTop" hbank="63" lbank="0" prog="47" />
+ <Patch name="RoundWound" hbank="63" lbank="0" prog="48" />
+ <Patch name="FingerMan" hbank="63" lbank="0" prog="49" />
+ <Patch name="PrecRW" hbank="63" lbank="0" prog="50" />
+ <Patch name="PrecFW" hbank="63" lbank="0" prog="51" />
+ <Patch name="HybridBass" hbank="63" lbank="0" prog="52" />
+ <Patch name="Stand Up" hbank="63" lbank="0" prog="53" />
+ <Patch name="Fretless" hbank="63" lbank="0" prog="54" />
+ <Patch name="Slap&amp;Fx" hbank="63" lbank="0" prog="55" />
+ <Patch name="BriteSlap" hbank="63" lbank="0" prog="56" />
+ <Patch name="Velo Bass" hbank="63" lbank="0" prog="57" />
+ <Patch name="Bs+Cym+Vb" hbank="63" lbank="0" prog="58" />
+ <Patch name="Boogie on" hbank="63" lbank="0" prog="59" />
+ <Patch name="MiniDetune" hbank="63" lbank="0" prog="60" />
+ <Patch name="Long Spit" hbank="63" lbank="0" prog="61" />
+ <Patch name="Tack Bass" hbank="63" lbank="0" prog="62" />
+ <Patch name="Fat Octave" hbank="63" lbank="0" prog="63" />
+ </PatchGroup>
+ <PatchGroup name="PRE2">
+ <Patch name="Violin" hbank="63" lbank="1" prog="0" />
+ <Patch name="Viola" hbank="63" lbank="1" prog="1" />
+ <Patch name="Cello" hbank="63" lbank="1" prog="2" />
+ <Patch name="SoloSpicat" hbank="63" lbank="1" prog="3" />
+ <Patch name="2 Solos" hbank="63" lbank="1" prog="4" />
+ <Patch name="Cello Duet" hbank="63" lbank="1" prog="5" />
+ <Patch name="Trio" hbank="63" lbank="1" prog="6" />
+ <Patch name="Chamber" hbank="63" lbank="1" prog="7" />
+ <Patch name="Small Ens" hbank="63" lbank="1" prog="8" />
+ <Patch name="Medium Ens" hbank="63" lbank="1" prog="9" />
+ <Patch name="Ens Mix" hbank="63" lbank="1" prog="10" />
+ <Patch name="Ensemble" hbank="63" lbank="1" prog="11" />
+ <Patch name="Hard Ens" hbank="63" lbank="1" prog="12" />
+ <Patch name="Background" hbank="63" lbank="1" prog="13" />
+ <Patch name="BigSymphny" hbank="63" lbank="1" prog="14" />
+ <Patch name="Str/Horns" hbank="63" lbank="1" prog="15" />
+ <Patch name="Stringy" hbank="63" lbank="1" prog="16" />
+ <Patch name="Polystring" hbank="63" lbank="1" prog="17" />
+ <Patch name="JP Strings" hbank="63" lbank="1" prog="18" />
+ <Patch name="MournStrgs" hbank="63" lbank="1" prog="19" />
+ <Patch name="The Pizz" hbank="63" lbank="1" prog="20" />
+ <Patch name="Fanfare" hbank="63" lbank="1" prog="21" />
+ <Patch name="Hi Brass" hbank="63" lbank="1" prog="22" />
+ <Patch name="Fat Sect" hbank="63" lbank="1" prog="23" />
+ <Patch name="Sforzando" hbank="63" lbank="1" prog="24" />
+ <Patch name="Symphony" hbank="63" lbank="1" prog="25" />
+ <Patch name="Big Band" hbank="63" lbank="1" prog="26" />
+ <Patch name="Big Band 2" hbank="63" lbank="1" prog="27" />
+ <Patch name="SaxBigBand" hbank="63" lbank="1" prog="28" />
+ <Patch name="MedmBrass" hbank="63" lbank="1" prog="29" />
+ <Patch name="Soft Brass" hbank="63" lbank="1" prog="30" />
+ <Patch name="SoftVeloBr" hbank="63" lbank="1" prog="31" />
+ <Patch name="TrpRomantc" hbank="63" lbank="1" prog="32" />
+ <Patch name="Phase Mute" hbank="63" lbank="1" prog="33" />
+ <Patch name="Legend" hbank="63" lbank="1" prog="34" />
+ <Patch name="Trombone" hbank="63" lbank="1" prog="35" />
+ <Patch name="Flugelleaz" hbank="63" lbank="1" prog="36" />
+ <Patch name="F.Horn Ens" hbank="63" lbank="1" prog="37" />
+ <Patch name="SlowAttack" hbank="63" lbank="1" prog="38" />
+ <Patch name="Strng/Bras" hbank="63" lbank="1" prog="39" />
+ <Patch name="Movie Ens " hbank="63" lbank="1" prog="40" />
+ <Patch name="Powered" hbank="63" lbank="1" prog="41" />
+ <Patch name="ObStuff" hbank="63" lbank="1" prog="42" />
+ <Patch name="Prophy" hbank="63" lbank="1" prog="43" />
+ <Patch name="AnalogBras" hbank="63" lbank="1" prog="44" />
+ <Patch name="After 1984" hbank="63" lbank="1" prog="45" />
+ <Patch name="Soprano" hbank="63" lbank="1" prog="46" />
+ <Patch name="Alto Vib" hbank="63" lbank="1" prog="47" />
+ <Patch name="SaxEnsembl" hbank="63" lbank="1" prog="48" />
+ <Patch name="Tenor Sax" hbank="63" lbank="1" prog="49" />
+ <Patch name="Tenor Soft" hbank="63" lbank="1" prog="50" />
+ <Patch name="The Winds" hbank="63" lbank="1" prog="51" />
+ <Patch name="WindOrch" hbank="63" lbank="1" prog="52" />
+ <Patch name="SweetFlute" hbank="63" lbank="1" prog="53" />
+ <Patch name="PanBottle" hbank="63" lbank="1" prog="54" />
+ <Patch name="AmpHarpMW" hbank="63" lbank="1" prog="55" />
+ <Patch name="SmoothSaw" hbank="63" lbank="1" prog="56" />
+ <Patch name="Lucky" hbank="63" lbank="1" prog="57" />
+ <Patch name="Tri Solo" hbank="63" lbank="1" prog="58" />
+ <Patch name="Syntrump" hbank="63" lbank="1" prog="59" />
+ <Patch name="PWM Lead" hbank="63" lbank="1" prog="60" />
+ <Patch name="Clicky Saw" hbank="63" lbank="1" prog="61" />
+ <Patch name="Mini Pulse" hbank="63" lbank="1" prog="62" />
+ <Patch name="Sync Lead" hbank="63" lbank="1" prog="63" />
+ <Patch name="Altair" hbank="63" lbank="1" prog="64" />
+ <Patch name="Analog" hbank="63" lbank="1" prog="65" />
+ <Patch name="Sweetland" hbank="63" lbank="1" prog="66" />
+ <Patch name="WarmSweepy" hbank="63" lbank="1" prog="67" />
+ <Patch name="SinePad" hbank="63" lbank="1" prog="68" />
+ <Patch name="Square" hbank="63" lbank="1" prog="69" />
+ <Patch name="VoxPad" hbank="63" lbank="1" prog="70" />
+ <Patch name="Pure Syn" hbank="63" lbank="1" prog="71" />
+ <Patch name="MovingPad" hbank="63" lbank="1" prog="72" />
+ <Patch name="SimpleSaws" hbank="63" lbank="1" prog="73" />
+ <Patch name="X-Shower" hbank="63" lbank="1" prog="74" />
+ <Patch name="PWM Pad" hbank="63" lbank="1" prog="75" />
+ <Patch name="Bell Choir" hbank="63" lbank="1" prog="76" />
+ <Patch name="ObSoft" hbank="63" lbank="1" prog="77" />
+ <Patch name="MellowAnlg" hbank="63" lbank="1" prog="78" />
+ <Patch name="Glasschoir" hbank="63" lbank="1" prog="79" />
+ <Patch name="PeaceVox" hbank="63" lbank="1" prog="80" />
+ <Patch name="StackChoir" hbank="63" lbank="1" prog="81" />
+ <Patch name="Bronx" hbank="63" lbank="1" prog="82" />
+ <Patch name="IceChoir" hbank="63" lbank="1" prog="83" />
+ <Patch name="Fast Oohs" hbank="63" lbank="1" prog="84" />
+ <Patch name="Ooze &amp; OZ" hbank="63" lbank="1" prog="85" />
+ <Patch name="NeoCrystal" hbank="63" lbank="1" prog="86" />
+ <Patch name="Pop Synth" hbank="63" lbank="1" prog="87" />
+ <Patch name="Fantasy" hbank="63" lbank="1" prog="88" />
+ <Patch name="Heavenly" hbank="63" lbank="1" prog="89" />
+ <Patch name="Retro" hbank="63" lbank="1" prog="90" />
+ <Patch name="Airy" hbank="63" lbank="1" prog="91" />
+ <Patch name="Nylon" hbank="63" lbank="1" prog="92" />
+ <Patch name="Antares" hbank="63" lbank="1" prog="93" />
+ <Patch name="Pan Sphere" hbank="63" lbank="1" prog="94" />
+ <Patch name="Tamburax" hbank="63" lbank="1" prog="95" />
+ <Patch name="IndianFlai" hbank="63" lbank="1" prog="96" />
+ <Patch name="SAKURA" hbank="63" lbank="1" prog="97" />
+ <Patch name="RisingHigh" hbank="63" lbank="1" prog="98" />
+ <Patch name="Champ" hbank="63" lbank="1" prog="99" />
+ <Patch name="Gladiator" hbank="63" lbank="1" prog="100" />
+ <Patch name="Hades" hbank="63" lbank="1" prog="101" />
+ <Patch name="Glacy" hbank="63" lbank="1" prog="102" />
+ <Patch name="Forest" hbank="63" lbank="1" prog="103" />
+ <Patch name="MirrorRing" hbank="63" lbank="1" prog="104" />
+ <Patch name="Poly" hbank="63" lbank="1" prog="105" />
+ <Patch name="AnaTonk" hbank="63" lbank="1" prog="106" />
+ <Patch name="Jaipur" hbank="63" lbank="1" prog="107" />
+ <Patch name="Dulcitar" hbank="63" lbank="1" prog="108" />
+ <Patch name="Cimbalon" hbank="63" lbank="1" prog="109" />
+ <Patch name="EthncFlute" hbank="63" lbank="1" prog="110" />
+ <Patch name="Hichiriki" hbank="63" lbank="1" prog="111" />
+ <Patch name="Ryuteki" hbank="63" lbank="1" prog="112" />
+ <Patch name="Gagaku" hbank="63" lbank="1" prog="113" />
+ <Patch name="Kokyu" hbank="63" lbank="1" prog="114" />
+ <Patch name="Digidoo" hbank="63" lbank="1" prog="115" />
+ <Patch name="Bali" hbank="63" lbank="1" prog="116" />
+ <Patch name="Indo Trip" hbank="63" lbank="1" prog="117" />
+ <Patch name="East Tabla" hbank="63" lbank="1" prog="118" />
+ <Patch name="Djembe" hbank="63" lbank="1" prog="119" />
+ <Patch name="Djerimbe" hbank="63" lbank="1" prog="120" />
+ <Patch name="Udu" hbank="63" lbank="1" prog="121" />
+ <Patch name="Tribal" hbank="63" lbank="1" prog="122" />
+ <Patch name="Log&amp;Drum" hbank="63" lbank="1" prog="123" />
+ <Patch name="Afro" hbank="63" lbank="1" prog="124" />
+ <Patch name="Japanesque" hbank="63" lbank="1" prog="125" />
+ <Patch name="EthnoShock" hbank="63" lbank="1" prog="126" />
+ <Patch name="Ethnology" hbank="63" lbank="1" prog="127" />
+ </PatchGroup>
+ <PatchGroup name="PRE3">
+ <Patch name="Wide Comp" hbank="63" lbank="2" prog="0" />
+ <Patch name="78rpmPiano" hbank="63" lbank="2" prog="1" />
+ <Patch name="1968 45rpm" hbank="63" lbank="2" prog="2" />
+ <Patch name="1971 33rpm" hbank="63" lbank="2" prog="3" />
+ <Patch name="DigiGrand1" hbank="63" lbank="2" prog="4" />
+ <Patch name="Harp&amp;Piano" hbank="63" lbank="2" prog="5" />
+ <Patch name="Glass EP" hbank="63" lbank="2" prog="6" />
+ <Patch name="VintSwitch" hbank="63" lbank="2" prog="7" />
+ <Patch name="Early Case" hbank="63" lbank="2" prog="8" />
+ <Patch name="RdsScape" hbank="63" lbank="2" prog="9" />
+ <Patch name="Feathers" hbank="63" lbank="2" prog="10" />
+ <Patch name="StringyPno" hbank="63" lbank="2" prog="11" />
+ <Patch name="Champagne" hbank="63" lbank="2" prog="12" />
+ <Patch name="Moet" hbank="63" lbank="2" prog="13" />
+ <Patch name="Compact" hbank="63" lbank="2" prog="14" />
+ <Patch name="1967 Keys" hbank="63" lbank="2" prog="15" />
+ <Patch name="YD-45C" hbank="63" lbank="2" prog="16" />
+ <Patch name="Gnarly" hbank="63" lbank="2" prog="17" />
+ <Patch name="Modular" hbank="63" lbank="2" prog="18" />
+ <Patch name="Dark Jack" hbank="63" lbank="2" prog="19" />
+ <Patch name="OneVoice" hbank="63" lbank="2" prog="20" />
+ <Patch name="Dry Syn" hbank="63" lbank="2" prog="21" />
+ <Patch name="PlasticBas" hbank="63" lbank="2" prog="22" />
+ <Patch name="Bassline" hbank="63" lbank="2" prog="23" />
+ <Patch name="RubbaRap" hbank="63" lbank="2" prog="24" />
+ <Patch name="Juicy" hbank="63" lbank="2" prog="25" />
+ <Patch name="Dark" hbank="63" lbank="2" prog="26" />
+ <Patch name="UniBass" hbank="63" lbank="2" prog="27" />
+ <Patch name="Flyer" hbank="63" lbank="2" prog="28" />
+ <Patch name="QuackBass" hbank="63" lbank="2" prog="29" />
+ <Patch name="Moonbass" hbank="63" lbank="2" prog="30" />
+ <Patch name="ClassicSub" hbank="63" lbank="2" prog="31" />
+ <Patch name="DX100" hbank="63" lbank="2" prog="32" />
+ <Patch name="Lately" hbank="63" lbank="2" prog="33" />
+ <Patch name="FMBass" hbank="63" lbank="2" prog="34" />
+ <Patch name="Oct String" hbank="63" lbank="2" prog="35" />
+ <Patch name="3 Octave" hbank="63" lbank="2" prog="36" />
+ <Patch name="TapeStrngs" hbank="63" lbank="2" prog="37" />
+ <Patch name="VP Strings" hbank="63" lbank="2" prog="38" />
+ <Patch name="BriteTeeth" hbank="63" lbank="2" prog="39" />
+ <Patch name="XDance" hbank="63" lbank="2" prog="40" />
+ <Patch name="Timeless" hbank="63" lbank="2" prog="41" />
+ <Patch name="FatSynth" hbank="63" lbank="2" prog="42" />
+ <Patch name="Big Syn" hbank="63" lbank="2" prog="43" />
+ <Patch name="Bluesharp" hbank="63" lbank="2" prog="44" />
+ <Patch name="Sync Atk" hbank="63" lbank="2" prog="45" />
+ <Patch name="Reso" hbank="63" lbank="2" prog="46" />
+ <Patch name="Singleline" hbank="63" lbank="2" prog="47" />
+ <Patch name="Free LFO" hbank="63" lbank="2" prog="48" />
+ <Patch name="Soft Lead" hbank="63" lbank="2" prog="49" />
+ <Patch name="PulseWound" hbank="63" lbank="2" prog="50" />
+ <Patch name="Big Drone" hbank="63" lbank="2" prog="51" />
+ <Patch name="Big Tune" hbank="63" lbank="2" prog="52" />
+ <Patch name="PowerWheel" hbank="63" lbank="2" prog="53" />
+ <Patch name="Flangefilt" hbank="63" lbank="2" prog="54" />
+ <Patch name="G-Funk" hbank="63" lbank="2" prog="55" />
+ <Patch name="Maria AT" hbank="63" lbank="2" prog="56" />
+ <Patch name="InThePast" hbank="63" lbank="2" prog="57" />
+ <Patch name="FatSawPad" hbank="63" lbank="2" prog="58" />
+ <Patch name="Wide Sweep" hbank="63" lbank="2" prog="59" />
+ <Patch name="Sunbeams" hbank="63" lbank="2" prog="60" />
+ <Patch name="BPFx" hbank="63" lbank="2" prog="61" />
+ <Patch name="FrozenPad" hbank="63" lbank="2" prog="62" />
+ <Patch name="MICHINOKU" hbank="63" lbank="2" prog="63" />
+ <Patch name="Esmeralda" hbank="63" lbank="2" prog="64" />
+ <Patch name="Romance" hbank="63" lbank="2" prog="65" />
+ <Patch name="Circle" hbank="63" lbank="2" prog="66" />
+ <Patch name="Dreamspher" hbank="63" lbank="2" prog="67" />
+ <Patch name="Silverlake" hbank="63" lbank="2" prog="68" />
+ <Patch name="Shadow" hbank="63" lbank="2" prog="69" />
+ <Patch name="Platinum" hbank="63" lbank="2" prog="70" />
+ <Patch name="Gently" hbank="63" lbank="2" prog="71" />
+ <Patch name="Warming" hbank="63" lbank="2" prog="72" />
+ <Patch name="PW-EMMY" hbank="63" lbank="2" prog="73" />
+ <Patch name="X-fade" hbank="63" lbank="2" prog="74" />
+ <Patch name="Pad Zosma" hbank="63" lbank="2" prog="75" />
+ <Patch name="NoizRezz" hbank="63" lbank="2" prog="76" />
+ <Patch name="Mira" hbank="63" lbank="2" prog="77" />
+ <Patch name="MultiPulse" hbank="63" lbank="2" prog="78" />
+ <Patch name="VoxWaves" hbank="63" lbank="2" prog="79" />
+ <Patch name="LazySweep" hbank="63" lbank="2" prog="80" />
+ <Patch name="Doomed" hbank="63" lbank="2" prog="81" />
+ <Patch name="PerkaVox" hbank="63" lbank="2" prog="82" />
+ <Patch name="Punchy" hbank="63" lbank="2" prog="83" />
+ <Patch name="Eyeliner" hbank="63" lbank="2" prog="84" />
+ <Patch name="Quieck" hbank="63" lbank="2" prog="85" />
+ <Patch name="Aladdin" hbank="63" lbank="2" prog="86" />
+ <Patch name="QuadSwell" hbank="63" lbank="2" prog="87" />
+ <Patch name="Lilley" hbank="63" lbank="2" prog="88" />
+ <Patch name="Pad Didje" hbank="63" lbank="2" prog="89" />
+ <Patch name="Baz" hbank="63" lbank="2" prog="90" />
+ <Patch name="RING PAD" hbank="63" lbank="2" prog="91" />
+ <Patch name="Chaser 1" hbank="63" lbank="2" prog="92" />
+ <Patch name="Chaser 2" hbank="63" lbank="2" prog="93" />
+ <Patch name="Spacebreat" hbank="63" lbank="2" prog="94" />
+ <Patch name="Long HiPa" hbank="63" lbank="2" prog="95" />
+ <Patch name="Action Y" hbank="63" lbank="2" prog="96" />
+ <Patch name="Trancelan" hbank="63" lbank="2" prog="97" />
+ <Patch name="Eternal" hbank="63" lbank="2" prog="98" />
+ <Patch name="VirtualSyn" hbank="63" lbank="2" prog="99" />
+ <Patch name="Interlude" hbank="63" lbank="2" prog="100" />
+ <Patch name="Flying" hbank="63" lbank="2" prog="101" />
+ <Patch name="TheSlayer" hbank="63" lbank="2" prog="102" />
+ <Patch name="White Rabb" hbank="63" lbank="2" prog="103" />
+ <Patch name="Siam Ududu" hbank="63" lbank="2" prog="104" />
+ <Patch name="Particle" hbank="63" lbank="2" prog="105" />
+ <Patch name="Shaper" hbank="63" lbank="2" prog="106" />
+ <Patch name="VintageArp" hbank="63" lbank="2" prog="107" />
+ <Patch name="Aah Dance" hbank="63" lbank="2" prog="108" />
+ <Patch name="Joker" hbank="63" lbank="2" prog="109" />
+ <Patch name="Holiday" hbank="63" lbank="2" prog="110" />
+ <Patch name="Android" hbank="63" lbank="2" prog="111" />
+ <Patch name="Spacious" hbank="63" lbank="2" prog="112" />
+ <Patch name="VoiceCuica" hbank="63" lbank="2" prog="113" />
+ <Patch name="Pop Arp" hbank="63" lbank="2" prog="114" />
+ <Patch name="Ping Pong" hbank="63" lbank="2" prog="115" />
+ <Patch name="Amoeba" hbank="63" lbank="2" prog="116" />
+ <Patch name="Landing" hbank="63" lbank="2" prog="117" />
+ <Patch name="I was born" hbank="63" lbank="2" prog="118" />
+ <Patch name="PsychoGtr" hbank="63" lbank="2" prog="119" />
+ <Patch name="NoGravity" hbank="63" lbank="2" prog="120" />
+ <Patch name="Pulser" hbank="63" lbank="2" prog="121" />
+ <Patch name="Racer" hbank="63" lbank="2" prog="122" />
+ <Patch name="Storm" hbank="63" lbank="2" prog="123" />
+ <Patch name="Oscillatin" hbank="63" lbank="2" prog="124" />
+ <Patch name="FamlyFeud " hbank="63" lbank="2" prog="125" />
+ <Patch name="WatrForest" hbank="63" lbank="2" prog="126" />
+ <Patch name="Spacecraft" hbank="63" lbank="2" prog="127" />
+ </PatchGroup>
+ <PatchGroup name="USER">
+ <Patch name="BriteS700" hbank="63" lbank="8" prog="0" />
+ <Patch name="Old Blues" hbank="63" lbank="8" prog="1" />
+ <Patch name="S700&amp;OldEp" hbank="63" lbank="8" prog="2" />
+ <Patch name="S700&amp;DX" hbank="63" lbank="8" prog="3" />
+ <Patch name="Bell Piano" hbank="63" lbank="8" prog="4" />
+ <Patch name="Dream" hbank="63" lbank="8" prog="5" />
+ <Patch name="Tomorrow" hbank="63" lbank="8" prog="6" />
+ <Patch name="Piano&amp;Pad" hbank="63" lbank="8" prog="7" />
+ <Patch name="CP80&amp;EP" hbank="63" lbank="8" prog="8" />
+ <Patch name="Yama EP;s" hbank="63" lbank="8" prog="9" />
+ <Patch name="Mr. Klank" hbank="63" lbank="8" prog="10" />
+ <Patch name="Electro" hbank="63" lbank="8" prog="11" />
+ <Patch name="Satellite" hbank="63" lbank="8" prog="12" />
+ <Patch name="Partita" hbank="63" lbank="8" prog="13" />
+ <Patch name="Reed" hbank="63" lbank="8" prog="14" />
+ <Patch name="Org&amp;Voice" hbank="63" lbank="8" prog="15" />
+ <Patch name="Stingfingr" hbank="63" lbank="8" prog="16" />
+ <Patch name="Fat Low" hbank="63" lbank="8" prog="17" />
+ <Patch name="OB Saw" hbank="63" lbank="8" prog="18" />
+ <Patch name="Ana Decay" hbank="63" lbank="8" prog="19" />
+ <Patch name="MiniAnalog" hbank="63" lbank="8" prog="20" />
+ <Patch name="SimpleReso" hbank="63" lbank="8" prog="21" />
+ <Patch name="SyzStrng" hbank="63" lbank="8" prog="22" />
+ <Patch name="Real Harp" hbank="63" lbank="8" prog="23" />
+ <Patch name="Real Flute" hbank="63" lbank="8" prog="24" />
+ <Patch name="Twilight" hbank="63" lbank="8" prog="25" />
+ <Patch name="HighSine" hbank="63" lbank="8" prog="26" />
+ <Patch name="Hi Q Pad" hbank="63" lbank="8" prog="27" />
+ <Patch name="Snow Storm" hbank="63" lbank="8" prog="28" />
+ <Patch name="Classic" hbank="63" lbank="8" prog="29" />
+ <Patch name="Step Down" hbank="63" lbank="8" prog="30" />
+ <Patch name="Ens+Flute" hbank="63" lbank="8" prog="31" />
+ <Patch name="Polygroove" hbank="63" lbank="8" prog="32" />
+ <Patch name="ANbasicARP" hbank="63" lbank="8" prog="33" />
+ <Patch name="Pop Split" hbank="63" lbank="8" prog="34" />
+ <Patch name="Pianosyn" hbank="63" lbank="8" prog="35" />
+ <Patch name="Wake Up" hbank="63" lbank="8" prog="36" />
+ <Patch name="BackPad MW" hbank="63" lbank="8" prog="37" />
+ <Patch name="Poly Comp" hbank="63" lbank="8" prog="38" />
+ <Patch name="Surface" hbank="63" lbank="8" prog="39" />
+ <Patch name="HPF+LPFpad" hbank="63" lbank="8" prog="40" />
+ <Patch name="Hip Chordz" hbank="63" lbank="8" prog="41" />
+ <Patch name="CrushPadMW" hbank="63" lbank="8" prog="42" />
+ <Patch name="Warmest" hbank="63" lbank="8" prog="43" />
+ <Patch name="Sadness" hbank="63" lbank="8" prog="44" />
+ <Patch name="Bright Aah" hbank="63" lbank="8" prog="45" />
+ <Patch name="FatSwell" hbank="63" lbank="8" prog="46" />
+ <Patch name="Pearls" hbank="63" lbank="8" prog="47" />
+ <Patch name="Sonar Pad" hbank="63" lbank="8" prog="48" />
+ <Patch name="Alaska" hbank="63" lbank="8" prog="49" />
+ <Patch name="Happy Boy" hbank="63" lbank="8" prog="50" />
+ <Patch name="Whisperer" hbank="63" lbank="8" prog="51" />
+ <Patch name="Pad Bells" hbank="63" lbank="8" prog="52" />
+ <Patch name="Funky Mood" hbank="63" lbank="8" prog="53" />
+ <Patch name="For you!" hbank="63" lbank="8" prog="54" />
+ <Patch name="Gruvmaster" hbank="63" lbank="8" prog="55" />
+ <Patch name="PlucknGruv" hbank="63" lbank="8" prog="56" />
+ <Patch name="AllYouNeed" hbank="63" lbank="8" prog="57" />
+ <Patch name="Atlantis" hbank="63" lbank="8" prog="58" />
+ <Patch name="Pad&amp;Syn" hbank="63" lbank="8" prog="59" />
+ <Patch name="Warm AN" hbank="63" lbank="8" prog="60" />
+ <Patch name="BigOctave" hbank="63" lbank="8" prog="61" />
+ <Patch name="OldStrings" hbank="63" lbank="8" prog="62" />
+ <Patch name="Pro Lead" hbank="63" lbank="8" prog="63" />
+ <Patch name="Shine on" hbank="63" lbank="8" prog="64" />
+ <Patch name="Pianospher" hbank="63" lbank="8" prog="65" />
+ <Patch name="SuperStrgs" hbank="63" lbank="8" prog="66" />
+ <Patch name="Guitar&amp;Pad" hbank="63" lbank="8" prog="67" />
+ <Patch name="PluckPno" hbank="63" lbank="8" prog="68" />
+ <Patch name="Softstars" hbank="63" lbank="8" prog="69" />
+ <Patch name="Soft Tar" hbank="63" lbank="8" prog="70" />
+ <Patch name="Sorted" hbank="63" lbank="8" prog="71" />
+ <Patch name="Trendy" hbank="63" lbank="8" prog="72" />
+ <Patch name="Wah Feed" hbank="63" lbank="8" prog="73" />
+ <Patch name="S&amp;H Didge" hbank="63" lbank="8" prog="74" />
+ <Patch name="Old House" hbank="63" lbank="8" prog="75" />
+ <Patch name="HPF Dance" hbank="63" lbank="8" prog="76" />
+ <Patch name="Exodus" hbank="63" lbank="8" prog="77" />
+ <Patch name="S/H Gruv" hbank="63" lbank="8" prog="78" />
+ <Patch name="Dark Light" hbank="63" lbank="8" prog="79" />
+ <Patch name="Boom Bass" hbank="63" lbank="8" prog="80" />
+ <Patch name="Shandala" hbank="63" lbank="8" prog="81" />
+ <Patch name="Titan" hbank="63" lbank="8" prog="82" />
+ <Patch name="Puls Step" hbank="63" lbank="8" prog="83" />
+ <Patch name="Big Lead " hbank="63" lbank="8" prog="84" />
+ <Patch name="Squeaky" hbank="63" lbank="8" prog="85" />
+ <Patch name="Auto Wah" hbank="63" lbank="8" prog="86" />
+ <Patch name="MetalPiano" hbank="63" lbank="8" prog="87" />
+ <Patch name="BrokenStar" hbank="63" lbank="8" prog="88" />
+ <Patch name="Smooth" hbank="63" lbank="8" prog="89" />
+ <Patch name="Fuzzline" hbank="63" lbank="8" prog="90" />
+ <Patch name="Brief" hbank="63" lbank="8" prog="91" />
+ <Patch name="Dist-MW" hbank="63" lbank="8" prog="92" />
+ <Patch name="Hit&amp;Down" hbank="63" lbank="8" prog="93" />
+ <Patch name="Sand" hbank="63" lbank="8" prog="94" />
+ <Patch name="R&amp;B Steel" hbank="63" lbank="8" prog="95" />
+ <Patch name="LoSnake" hbank="63" lbank="8" prog="96" />
+ <Patch name="Additive" hbank="63" lbank="8" prog="97" />
+ <Patch name="Rap Lead 1" hbank="63" lbank="8" prog="98" />
+ <Patch name="Orch Hits" hbank="63" lbank="8" prog="99" />
+ <Patch name="Melo Trmlo" hbank="63" lbank="8" prog="100" />
+ <Patch name="DigiGrand2" hbank="63" lbank="8" prog="101" />
+ <Patch name="CheapEP" hbank="63" lbank="8" prog="102" />
+ <Patch name="AnaMarcato" hbank="63" lbank="8" prog="103" />
+ <Patch name="Evolve" hbank="63" lbank="8" prog="104" />
+ <Patch name="Wazzo" hbank="63" lbank="8" prog="105" />
+ <Patch name="Rap Lead 2" hbank="63" lbank="8" prog="106" />
+ <Patch name="Early Lead" hbank="63" lbank="8" prog="107" />
+ <Patch name="BDScrtch" hbank="63" lbank="8" prog="108" />
+ <Patch name="Mayday MW" hbank="63" lbank="8" prog="109" />
+ <Patch name="CoolWAH" hbank="63" lbank="8" prog="110" />
+ <Patch name="HipWahEP" hbank="63" lbank="8" prog="111" />
+ <Patch name="Rap Lead 3" hbank="63" lbank="8" prog="112" />
+ <Patch name="DarkBass" hbank="63" lbank="8" prog="113" />
+ <Patch name="HiPaWheel" hbank="63" lbank="8" prog="114" />
+ <Patch name="Pierced" hbank="63" lbank="8" prog="115" />
+ <Patch name="PortaBass" hbank="63" lbank="8" prog="116" />
+ <Patch name="Sine Lead" hbank="63" lbank="8" prog="117" />
+ <Patch name="UK Oam" hbank="63" lbank="8" prog="118" />
+ <Patch name="Rap" hbank="63" lbank="8" prog="119" />
+ <Patch name="Toyz" hbank="63" lbank="8" prog="120" />
+ <Patch name="Future Z" hbank="63" lbank="8" prog="121" />
+ <Patch name="Dead?Alive" hbank="63" lbank="8" prog="122" />
+ <Patch name="SlowSuckr" hbank="63" lbank="8" prog="123" />
+ <Patch name="Munchkins" hbank="63" lbank="8" prog="124" />
+ <Patch name="Snoop Bass" hbank="63" lbank="8" prog="125" />
+ <Patch name="BabeMagnet" hbank="63" lbank="8" prog="126" />
+ <Patch name="Rabino Hip" hbank="63" lbank="8" prog="127" />
+ </PatchGroup>
+ <PatchGroup name="GM">
+ <Patch name="NaturlGrnd" hbank="0" lbank="0" prog="0" />
+ <Patch name="Rock Brite" hbank="0" lbank="0" prog="1" />
+ <Patch name="CP 2001" hbank="0" lbank="0" prog="2" />
+ <Patch name="Honkytonk" hbank="0" lbank="0" prog="3" />
+ <Patch name="E.Piano 1" hbank="0" lbank="0" prog="4" />
+ <Patch name="E.Piano 2" hbank="0" lbank="0" prog="5" />
+ <Patch name="Harpsicord" hbank="0" lbank="0" prog="6" />
+ <Patch name="Brite" hbank="0" lbank="0" prog="7" />
+ <Patch name="Clav" hbank="0" lbank="0" prog="8" />
+ <Patch name="Celeste" hbank="0" lbank="0" prog="9" />
+ <Patch name="Glocken" hbank="0" lbank="0" prog="10" />
+ <Patch name="Music Box" hbank="0" lbank="0" prog="11" />
+ <Patch name="Vibes" hbank="0" lbank="0" prog="12" />
+ <Patch name="Marimba" hbank="0" lbank="0" prog="13" />
+ <Patch name="Xylophone" hbank="0" lbank="0" prog="14" />
+ <Patch name="TublarBell" hbank="0" lbank="0" prog="15" />
+ <Patch name="Dulcimar" hbank="0" lbank="0" prog="16" />
+ <Patch name="Draw Organ" hbank="0" lbank="0" prog="17" />
+ <Patch name="Perc Organ" hbank="0" lbank="0" prog="18" />
+ <Patch name="Rock Organ" hbank="0" lbank="0" prog="19" />
+ <Patch name="ChurchOrgn" hbank="0" lbank="0" prog="20" />
+ <Patch name="Reed Organ" hbank="0" lbank="0" prog="21" />
+ <Patch name="Accordion" hbank="0" lbank="0" prog="22" />
+ <Patch name="Harmonica" hbank="0" lbank="0" prog="23" />
+ <Patch name="TangoAccrd" hbank="0" lbank="0" prog="24" />
+ <Patch name="Nylon" hbank="0" lbank="0" prog="25" />
+ <Patch name="Steel" hbank="0" lbank="0" prog="26" />
+ <Patch name="ModernJazz" hbank="0" lbank="0" prog="27" />
+ <Patch name="Clean" hbank="0" lbank="0" prog="28" />
+ <Patch name="Mute" hbank="0" lbank="0" prog="29" />
+ <Patch name="Overdrive" hbank="0" lbank="0" prog="30" />
+ <Patch name="Distortion" hbank="0" lbank="0" prog="31" />
+ <Patch name="Harmonics" hbank="0" lbank="0" prog="32" />
+ <Patch name="Accoustic" hbank="0" lbank="0" prog="33" />
+ <Patch name="FingerBass" hbank="0" lbank="0" prog="34" />
+ <Patch name="Pick Bass" hbank="0" lbank="0" prog="35" />
+ <Patch name="Fretless 2" hbank="0" lbank="0" prog="36" />
+ <Patch name="SimpleSlap" hbank="0" lbank="0" prog="37" />
+ <Patch name="Velo Slap" hbank="0" lbank="0" prog="38" />
+ <Patch name="SynthBass1" hbank="0" lbank="0" prog="39" />
+ <Patch name="SynthBass2" hbank="0" lbank="0" prog="40" />
+ <Patch name="Violin 2" hbank="0" lbank="0" prog="41" />
+ <Patch name="Viola 2" hbank="0" lbank="0" prog="42" />
+ <Patch name="Cello 2" hbank="0" lbank="0" prog="43" />
+ <Patch name="Contrabass" hbank="0" lbank="0" prog="44" />
+ <Patch name="TremoloStr" hbank="0" lbank="0" prog="45" />
+ <Patch name="Pizz Harp" hbank="0" lbank="0" prog="46" />
+ <Patch name="Timpni+Cym" hbank="0" lbank="0" prog="47" />
+ <Patch name="StereoSt1" hbank="0" lbank="0" prog="48" />
+ <Patch name="StereoSt2" hbank="0" lbank="0" prog="49" />
+ <Patch name="Grand Saw" hbank="0" lbank="0" prog="50" />
+ <Patch name="SynStrings" hbank="0" lbank="0" prog="51" />
+ <Patch name="Aah Choir" hbank="0" lbank="0" prog="52" />
+ <Patch name="Ooh Choir" hbank="0" lbank="0" prog="53" />
+ <Patch name="Syn Voice" hbank="0" lbank="0" prog="54" />
+ <Patch name="Orch.Hit" hbank="0" lbank="0" prog="55" />
+ <Patch name="Trumpet" hbank="0" lbank="0" prog="56" />
+ <Patch name="Trombone 2" hbank="0" lbank="0" prog="57" />
+ <Patch name="Tuba" hbank="0" lbank="0" prog="58" />
+ <Patch name="MuteTrpt 2" hbank="0" lbank="0" prog="59" />
+ <Patch name="F.Horns" hbank="0" lbank="0" prog="60" />
+ <Patch name="Brass Sect" hbank="0" lbank="0" prog="61" />
+ <Patch name="SynthBrass" hbank="0" lbank="0" prog="62" />
+ <Patch name="Soft Brass" hbank="0" lbank="0" prog="63" />
+ <Patch name="Soprano 2" hbank="0" lbank="0" prog="64" />
+ <Patch name="Alto Sax" hbank="0" lbank="0" prog="65" />
+ <Patch name="TenorSax 2" hbank="0" lbank="0" prog="66" />
+ <Patch name="Bari Sax" hbank="0" lbank="0" prog="67" />
+ <Patch name="Oboe" hbank="0" lbank="0" prog="68" />
+ <Patch name="Eng.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="Panflute" hbank="0" lbank="0" prog="75" />
+ <Patch name="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="Square Ld" hbank="0" lbank="0" prog="80" />
+ <Patch name="Saw Ld" hbank="0" lbank="0" prog="81" />
+ <Patch name="Caliop Ld" hbank="0" lbank="0" prog="82" />
+ <Patch name="Chiff Ld" hbank="0" lbank="0" prog="83" />
+ <Patch name="Charan Ld" hbank="0" lbank="0" prog="84" />
+ <Patch name="Voice Ld" hbank="0" lbank="0" prog="85" />
+ <Patch name="Fifth Ld" hbank="0" lbank="0" prog="86" />
+ <Patch name="Bass&amp;Ld" hbank="0" lbank="0" prog="87" />
+ <Patch name="New Age" hbank="0" lbank="0" prog="88" />
+ <Patch name="Warm Pad" hbank="0" lbank="0" prog="89" />
+ <Patch name="Poly Synth" hbank="0" lbank="0" prog="90" />
+ <Patch name="Choir Pad" hbank="0" lbank="0" prog="91" />
+ <Patch name="BowedPad" hbank="0" lbank="0" prog="92" />
+ <Patch name="Metal 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" />
+ <Patch name="Rain Pad" 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="Atmosphere" hbank="0" lbank="0" prog="99" />
+ <Patch name="Brightness" hbank="0" lbank="0" prog="100" />
+ <Patch name="Goblin" 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" />
+ <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" />
+ <Patch name="Tinkerbel" hbank="0" lbank="0" prog="112" />
+ <Patch name="Agogo" hbank="0" lbank="0" prog="113" />
+ <Patch name="Steeldrum" hbank="0" lbank="0" prog="114" />
+ <Patch name="Woodblock" hbank="0" lbank="0" prog="115" />
+ <Patch name="TaikoDrum" hbank="0" lbank="0" prog="116" />
+ <Patch name="MelodicTom" 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" />
+ <Patch name="Fret Noise" hbank="0" lbank="0" prog="120" />
+ <Patch name="BreathNoiz" hbank="0" lbank="0" prog="121" />
+ <Patch name="Seashore" hbank="0" lbank="0" prog="122" />
+ <Patch name="Tweet" 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="Applause" hbank="0" lbank="0" prog="126" />
+ <Patch name="Gunshot" hbank="63" lbank="1" prog="127" />
+ </PatchGroup>
+ <PatchGroup name="Drum Kits">
+ <Patch name="PoweredStd" hbank="63" lbank="32" prog="0" drum="1" />
+ <Patch name="DryStd" hbank="63" lbank="32" prog="1" drum="1" />
+ </PatchGroup>
+ <PatchGroup name="GM Drum Kits">
+ <Patch name="GM Drum" hbank="127" lbank="0" prog="0" drum="1" />
+ <Patch name="RockMono2" hbank="63" lbank="40" prog="0" drum="1" />
+ <Patch name="RockMono3" hbank="63" lbank="40" prog="1" drum="1" />
+ <Patch name="HipHop5" hbank="63" lbank="40" prog="2" drum="1" />
+ </PatchGroup>
+ <Controller name="Program" type="Program" />
+ </MidiInstrument>
+</muse>
diff --git a/muse2/share/instruments/ZynAdd-1_4.idf b/muse2/share/instruments/ZynAdd-1_4.idf
new file mode 100644
index 00000000..55b2d818
--- /dev/null
+++ b/muse2/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="Program" type="Program" />
+ <Controller name="Pitch" type="Pitch" />
+ <Controller name="Modulation" l="1" />
+ <Controller name="MainVolume" l="7" init="100" />
+ <Controller name="Pan" l="10" min="-64" max="63" init="0" />
+ <Controller name="Expression" l="11" init="127" />
+ <Controller name="Sustain" l="64" />
+ <Controller name="Portamento" l="65" />
+ <Controller name="FilterQ" l="71" init="64" />
+ <Controller name="FilterCutoff" l="74" init="64" />
+ <Controller name="Bandwidth" l="75" init="64" />
+ <Controller name="ModulationAmp" l="76" init="127" />
+ <Controller name="ResonanceCenter" l="77" init="64" />
+ <Controller name="ResonanceBandwidth" l="78" init="64" />
+ <Controller name="AllSoundsOff" l="120" />
+ <Controller name="ResetAllController" l="121" />
+ <Controller name="AllNotesOff" l="123" />
+ </MidiInstrument>
+</muse>
diff --git a/muse2/share/instruments/emuproteus2000.idf b/muse2/share/instruments/emuproteus2000.idf
new file mode 100644
index 00000000..8a1fccaf
--- /dev/null
+++ b/muse2/share/instruments/emuproteus2000.idf
@@ -0,0 +1,1081 @@
+<?xml version="1.0"?>
+<muse version="1.0">
+ <MidiInstrument name="Emu Proteus 2000">
+ <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" drum="1" />
+ <Patch name="Swing Hop 3" hbank="4" lbank="3" prog="124" drum="1" />
+ <Patch name="Dance 2" hbank="4" lbank="3" prog="89" drum="1" />
+ <Patch name="Kit" hbank="4" lbank="4" prog="34" drum="1" />
+ <Patch name="ClubVinyl" hbank="4" lbank="3" prog="86" drum="1" />
+ <Patch name="Drum/Bass 1" hbank="4" lbank="3" prog="96" drum="1" />
+ <Patch name="GritKitt" hbank="4" lbank="3" prog="106" drum="1" />
+ <Patch name="Dee and Be 1" hbank="4" lbank="3" prog="91" drum="1" />
+ <Patch name="Skin Drums" hbank="4" lbank="3" prog="117" drum="1" />
+ <Patch name="SounDfacTory" hbank="4" lbank="3" prog="119" drum="1" />
+ <Patch name="Clean R&amp;B" hbank="4" lbank="3" prog="85" drum="1" />
+ <Patch name="Kit 16" hbank="4" lbank="3" prog="74" drum="1" />
+ <Patch name="Bag O Tricks" hbank="4" lbank="4" prog="27" drum="1" />
+ <Patch name="Swing Hop 1" hbank="4" lbank="3" prog="122" drum="1" />
+ <Patch name="Shag" hbank="4" lbank="3" prog="116" drum="1" />
+ <Patch name="Kit 02" hbank="4" lbank="3" prog="60" drum="1" />
+ <Patch name="Acoustic 2" hbank="4" lbank="3" prog="79" drum="1" />
+ <Patch name="Acoustic 1" hbank="4" lbank="4" prog="20" drum="1" />
+ <Patch name="Subversive" hbank="4" lbank="3" prog="121" drum="1" />
+ <Patch name="OnTheTip" hbank="4" lbank="3" prog="112" drum="1" />
+ <Patch name="Drum/Bass 6" hbank="4" lbank="3" prog="101" drum="1" />
+ <Patch name="Drum/Bass 4" hbank="4" lbank="3" prog="99" drum="1" />
+ <Patch name="ClassicHouse" hbank="4" lbank="3" prog="84" drum="1" />
+ <Patch name="BMF" hbank="4" lbank="3" prog="82" drum="1" />
+ <Patch name="This &amp; That" hbank="4" lbank="3" prog="125" drum="1" />
+ <Patch name="Kit 19" hbank="4" lbank="3" prog="77" drum="1" />
+ <Patch name="Kit 12" hbank="4" lbank="3" prog="70" drum="1" />
+ <Patch name="Booster" hbank="4" lbank="3" prog="83" drum="1" />
+ <Patch name="Berzerker" hbank="4" lbank="3" prog="81" drum="1" />
+ <Patch name="Kit 09" hbank="4" lbank="3" prog="67" drum="1" />
+ <Patch name="DeepBooty" hbank="4" lbank="3" prog="93" drum="1" />
+ <Patch name="Jazz Trio" hbank="4" lbank="3" prog="111" drum="1" />
+ <Patch name="Kit 05" hbank="4" lbank="3" prog="63" drum="1" />
+ <Patch name="Kit 10" hbank="4" lbank="3" prog="68" drum="1" />
+ <Patch name="Gate Dances" hbank="4" lbank="3" prog="104" drum="1" />
+ <Patch name="Kit 07" hbank="4" lbank="3" prog="65" drum="1" />
+ <Patch name="DearLyBeEmuD" hbank="4" lbank="3" prog="90" drum="1" />
+ <Patch name="Jazz Quartet" hbank="4" lbank="3" prog="110" drum="1" />
+ <Patch name="Smackers" hbank="4" lbank="3" prog="118" drum="1" />
+ <Patch name="Speed Garage" hbank="4" lbank="3" prog="120" drum="1" />
+ <Patch name="Kit 06" hbank="4" lbank="3" prog="64" drum="1" />
+ <Patch name="Dance 1" hbank="4" lbank="3" prog="88" drum="1" />
+ <Patch name="Phattasassin" hbank="4" lbank="3" prog="114" drum="1" />
+ <Patch name="Dee and Be 2" hbank="4" lbank="3" prog="92" drum="1" />
+ <Patch name="Jams" hbank="4" lbank="3" prog="109" drum="1" />
+ <Patch name="Kit 15" hbank="4" lbank="3" prog="73" drum="1" />
+ <Patch name="Drum/Bass 2" hbank="4" lbank="3" prog="97" drum="1" />
+ <Patch name="For Real" hbank="4" lbank="3" prog="103" drum="1" />
+ <Patch name="Kit 17" hbank="4" lbank="3" prog="75" drum="1" />
+ <Patch name="Swing Hop 2" hbank="4" lbank="3" prog="123" drum="1" />
+ <Patch name="Kit 03" hbank="4" lbank="3" prog="61" drum="1" />
+ <Patch name="424" hbank="4" lbank="3" prog="59" drum="1" />
+ <Patch name="Drum/Bass 3" hbank="4" lbank="3" prog="98" drum="1" />
+ <Patch name="DrumBuzza" hbank="4" lbank="3" prog="102" drum="1" />
+ <Patch name="Kit 08" hbank="4" lbank="3" prog="66" drum="1" />
+ <Patch name="Drum/Bass 5" hbank="4" lbank="3" prog="100" drum="1" />
+ <Patch name="Kit 14" hbank="4" lbank="3" prog="72" drum="1" />
+ <Patch name="Kit 11" hbank="4" lbank="3" prog="69" drum="1" />
+ <Patch name="Kit 04" hbank="4" lbank="3" prog="62" drum="1" />
+ <Patch name="Disenegrate" hbank="4" lbank="3" prog="94" drum="1" />
+ <Patch name="All Niter" hbank="4" lbank="3" prog="80" drum="1" />
+ <Patch name="Kit 13" hbank="4" lbank="3" prog="71" drum="1" />
+ <Patch name="HatAttack" hbank="4" lbank="3" prog="107" drum="1" />
+ <Patch name="Gett..OutPt2" hbank="4" lbank="3" prog="105" drum="1" />
+ <Patch name="Werzerker" hbank="4" lbank="3" prog="127" drum="1" />
+ <Patch name="Phased DrumR" hbank="4" lbank="3" prog="113" drum="1" />
+ <Patch name="Kit 1" hbank="4" lbank="4" prog="9" drum="1" />
+ <Patch name="R&amp;B Flava" hbank="4" lbank="3" prog="115" drum="1" />
+ <Patch name="Tribal House" hbank="4" lbank="3" prog="126" drum="1" />
+ <Patch name="CookUsAHit" hbank="4" lbank="3" prog="87" drum="1" />
+ <Patch name="Drum 3" hbank="4" lbank="3" prog="95" drum="1" />
+ <Patch name="Kit 20" hbank="4" lbank="3" prog="78" drum="1" />
+ <Patch name="Kit 18" hbank="4" lbank="3" prog="76" drum="1" />
+ </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>
+ <Controller name="Program" type="Program" />
+ </MidiInstrument>
+</muse>
diff --git a/muse2/share/instruments/gm.idf b/muse2/share/instruments/gm.idf
new file mode 100644
index 00000000..04bf23ff
--- /dev/null
+++ b/muse2/share/instruments/gm.idf
@@ -0,0 +1,193 @@
+<?xml version="1.0"?>
+<muse version="1.0">
+ <MidiInstrument name="GM" nullparam="32639">
+ <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 name="Modulation" l="1" />
+ <Controller name="PortamentoTime" l="5" />
+ <Controller name="MainVolume" l="7" init="100" />
+ <Controller name="Pan" l="10" min="-64" max="63" init="0" />
+ <Controller name="Expression" l="11" init="127" />
+ <Controller name="Sustain" l="64" />
+ <Controller name="Portamento" l="65" />
+ <Controller name="Sostenuto" l="66" />
+ <Controller name="FilterResonance" l="71" init="64" />
+ <Controller name="ReleaseTime" l="72" init="64" />
+ <Controller name="AttackTime" l="73" init="64" />
+ <Controller name="Brightness" l="74" init="64" />
+ <Controller name="DecayTime" l="75" init="64" />
+ <Controller name="VibrateRate" l="76" init="64" />
+ <Controller name="VibrateDepth" l="77" init="64" />
+ <Controller name="VibrateDelay" l="78" init="64" />
+ <Controller name="PortamentoControl" l="84" />
+ <Controller name="ReverbSendLevel" l="91" init="40" />
+ <Controller name="ChorusSendLevel" l="93" init="0" />
+ <Controller name="VariationSend" l="94" init="0" />
+ <Controller name="AllSoundsOff" l="120" />
+ <Controller name="ResetAllController" l="121" />
+ <Controller name="AllNotesOff" l="123" />
+ <Controller name="SoftPedal" l="67" />
+ <Controller name="PitchBendSensitivity" type="RPN" h="0" l="0" max="24" init="2" />
+ <Controller name="FineTuning" type="RPN" h="0" l="1" min="-64" max="63" init="0" />
+ <Controller name="Pitch" type="Pitch" />
+ <Controller name="Program" type="Program" />
+ </MidiInstrument>
+</muse>
diff --git a/muse2/share/instruments/gs.idf b/muse2/share/instruments/gs.idf
new file mode 100644
index 00000000..3368b7c9
--- /dev/null
+++ b/muse2/share/instruments/gs.idf
@@ -0,0 +1,218 @@
+<?xml version="1.0"?>
+<muse version="1.0">
+ <MidiInstrument name="GS" nullparam="32639">
+ <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="127" prog="0" drum="1" />
+ <Patch name="Room" hbank="127" prog="8" drum="1" />
+ <Patch name="Electro" hbank="127" prog="24" drum="1" />
+ <Patch name="Analog" hbank="127" prog="25" drum="1" />
+ <Patch name="Jazz" hbank="127" prog="32" drum="1" />
+ <Patch name="Brush" hbank="127" prog="40" drum="1" />
+ <Patch name="Classic" hbank="127" prog="48" drum="1" />
+ <Patch name="Power" hbank="127" prog="16" drum="1" />
+ <Patch name="SFX1" hbank="127" prog="56" drum="1" />
+ <Patch name="GM" hbank="127" prog="127" drum="1" />
+ </PatchGroup>
+ <Controller name="Modulation" l="1" />
+ <Controller name="PortamentoTime" l="5" />
+ <Controller name="MainVolume" l="7" init="100" />
+ <Controller name="Pan" l="10" min="-64" max="63" init="0" />
+ <Controller name="Expression" l="11" init="127" />
+ <Controller name="GenPurpose1" l="16" />
+ <Controller name="GenPurpose2" l="17" />
+ <Controller name="GenPurpose3" l="18" />
+ <Controller name="GenPurpose4" l="19" />
+ <Controller name="Sustain" l="64" />
+ <Controller name="Portamento" l="65" />
+ <Controller name="Sostenuto" l="66" />
+ <Controller name="SoftPedal" l="67" />
+ <Controller name="HarmonicContent" l="68" />
+ <Controller name="ReleaseTime" l="72" />
+ <Controller name="AttackTime" l="73" />
+ <Controller name="Brightness" l="74" init="127" />
+ <Controller name="PortamentoControl" l="75" />
+ <Controller name="Effect1Depth" l="76" />
+ <Controller name="Effect3Depth" l="93" />
+ <Controller name="VariationSend" l="94" init="0" />
+ <Controller name="AllSoundsOff" l="120" />
+ <Controller name="ResetAllController" l="121" />
+ <Controller name="AllNotesOff" l="123" />
+ <Controller name="PitchBendSensitivity" type="RPN" h="0" l="0" max="24" init="2" />
+ <Controller name="FineTuning" type="RPN" h="0" l="1" min="-64" max="63" init="0" />
+ <Controller name="VibratoRate" type="NRPN" h="1" l="8" />
+ <Controller name="VibratoDepth" type="NRPN" h="1" l="9" />
+ <Controller name="VibratoDelay" type="NRPN" h="1" l="10" />
+ <Controller name="FilterCutoffFreq" type="NRPN" h="1" l="32" />
+ <Controller name="FilterResonance" type="NRPN" h="1" l="33" />
+ <Controller name="AttackRate" type="NRPN" h="1" l="99" />
+ <Controller name="DecayRate" type="NRPN" h="1" l="100" />
+ <Controller name="ReleaseRate" type="NRPN" h="1" l="102" />
+ <Controller name="DrumPitchCoarseTune" type="NRPN" h="24" l="pitch" min="-64" max="63" />
+ <Controller name="DrumLevel" type="NRPN" h="26" l="pitch" />
+ <Controller name="DrumPanpot" type="NRPN" h="28" l="pitch" min="-64" max="63" init="0" />
+ <Controller name="DrumReverbSend" type="NRPN" h="29" l="pitch" />
+ <Controller name="DrumChorusSend" type="NRPN" h="30" l="pitch" />
+ <Controller name="Pitch" type="Pitch" />
+ <Controller name="Program" type="Program" />
+ </MidiInstrument>
+</muse>
diff --git a/muse2/share/instruments/ns5r.idf b/muse2/share/instruments/ns5r.idf
new file mode 100644
index 00000000..a7448372
--- /dev/null
+++ b/muse2/share/instruments/ns5r.idf
@@ -0,0 +1,565 @@
+<?xml version="1.0"?>
+<muse version="1.0">
+ <MidiInstrument name="Korg-NS5R">
+ <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="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\" 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="127" lbank="0" prog="0" drum="1" />
+ <Patch name="Standrd2" mode="4" hbank="127" lbank="0" prog="1" drum="1" />
+ <Patch name="Room" mode="6" hbank="127" lbank="0" prog="8" drum="1" />
+ <Patch name="Rock" mode="4" hbank="127" lbank="0" prog="16" drum="1" />
+ <Patch name="Electro" mode="6" hbank="127" lbank="0" prog="24" drum="1" />
+ <Patch name="Analog" mode="6" hbank="127" lbank="0" prog="25" drum="1" />
+ <Patch name="Jazz" mode="6" hbank="127" lbank="0" prog="32" drum="1" />
+ <Patch name="Brush" mode="6" hbank="127" lbank="0" prog="40" drum="1" />
+ <Patch name="Classic" mode="6" hbank="127" lbank="0" prog="48" drum="1" />
+ <Patch name="Power" mode="2" hbank="127" lbank="0" prog="16" drum="1" />
+ <Patch name="SFX1" mode="2" hbank="127" lbank="0" prog="56" drum="1" />
+ <Patch name="GM" mode="2" hbank="127" lbank="0" prog="127" drum="1" />
+ <Patch name="SFX1" mode="4" hbank="126" lbank="0" prog="0" drum="1" />
+ <Patch name="SFX2" mode="4" hbank="126" lbank="0" prog="1" drum="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>
+ <Controller name="Program" type="Program" />
+ </MidiInstrument>
+</muse>
diff --git a/muse2/share/instruments/xg.idf b/muse2/share/instruments/xg.idf
new file mode 100644
index 00000000..4f5f586e
--- /dev/null
+++ b/muse2/share/instruments/xg.idf
@@ -0,0 +1,606 @@
+<?xml version="1.0"?>
+<muse version="1.0">
+ <MidiInstrument name="XG" nullparam="32639">
+ <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="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\" 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="0" 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="Sound FX">
+ <Patch name="SFX1" hbank="126" prog="0" drum="1" />
+ <Patch name="SFX2" hbank="126" prog="1" drum="1" />
+ <Patch name="CuttngNz" hbank="64" lbank="0" prog="0" />
+ <Patch name="CuttngNz2" hbank="64" lbank="0" prog="1" />
+ <Patch name="StrSlap" hbank="64" lbank="0" prog="3" />
+ <Patch name="Fl.KClik" hbank="64" lbank="0" prog="16" />
+ <Patch name="Rain" hbank="64" lbank="0" prog="32" />
+ <Patch name="Thunder" hbank="64" lbank="0" prog="33" />
+ <Patch name="Wind" hbank="64" lbank="0" prog="34" />
+ <Patch name="Stream" hbank="64" lbank="0" prog="35" />
+ <Patch name="Bubble" hbank="64" lbank="0" prog="36" />
+ <Patch name="Feed" hbank="64" lbank="0" prog="37" />
+ <Patch name="Dog" hbank="64" lbank="0" prog="48" />
+ <Patch name="Horse" hbank="64" lbank="0" prog="49" />
+ <Patch name="Bird2" hbank="64" lbank="0" prog="50" />
+ <Patch name="Ghost" hbank="64" lbank="0" prog="54" />
+ <Patch name="Maou" hbank="64" lbank="0" prog="55" />
+ <Patch name="Tel.Dial" hbank="64" lbank="0" prog="64" />
+ <Patch name="DoorSqek" hbank="64" lbank="0" prog="65" />
+ <Patch name="DoorSlam" hbank="64" lbank="0" prog="66" />
+ <Patch name="Scratch" hbank="64" lbank="0" prog="67" />
+ <Patch name="Scratch2" hbank="64" lbank="0" prog="68" />
+ <Patch name="WindChm" hbank="64" lbank="0" prog="69" />
+ <Patch name="Telphon2" hbank="64" lbank="0" prog="70" />
+ <Patch name="CarEngin" hbank="64" lbank="0" prog="80" />
+ <Patch name="CarStop" hbank="64" lbank="0" prog="81" />
+ <Patch name="CarPass" hbank="64" lbank="0" prog="82" />
+ <Patch name="CarCrash" hbank="64" lbank="0" prog="83" />
+ <Patch name="Siren" hbank="64" lbank="0" prog="84" />
+ <Patch name="Train" hbank="64" lbank="0" prog="85" />
+ <Patch name="Jetplane" hbank="64" lbank="0" prog="86" />
+ <Patch name="Starship" hbank="64" lbank="0" prog="87" />
+ <Patch name="Burst" hbank="64" lbank="0" prog="88" />
+ <Patch name="Coaster" hbank="64" lbank="0" prog="89" />
+ <Patch name="SbMarine" hbank="64" lbank="0" prog="90" />
+ <Patch name="Laughing" hbank="64" lbank="0" prog="96" />
+ <Patch name="Scream" hbank="64" lbank="0" prog="97" />
+ <Patch name="Punch" hbank="64" lbank="0" prog="98" />
+ <Patch name="Heart" hbank="64" lbank="0" prog="99" />
+ <Patch name="FootStep" hbank="64" lbank="0" prog="100" />
+ <Patch name="MchinGun" hbank="64" lbank="0" prog="112" />
+ <Patch name="LaserGun" hbank="64" lbank="0" prog="113" />
+ <Patch name="Xplosion" hbank="64" lbank="0" prog="114" />
+ <Patch name="FireWork" hbank="64" lbank="0" prog="115" />
+ <Patch name="DstCutNz" hbank="64" lbank="0" prog="2" />
+ <Patch name="B.Slide" hbank="64" lbank="0" prog="4" />
+ <Patch name="P.Scrape" hbank="64" lbank="0" prog="5" />
+ <Patch name="Kitty" hbank="64" lbank="0" prog="51" />
+ <Patch name="Growl" hbank="64" lbank="0" prog="52" />
+ <Patch name="Haunted" hbank="64" lbank="0" prog="53" />
+ <Patch name="Applaus2" hbank="64" lbank="0" prog="101" />
+ </PatchGroup>
+ <PatchGroup name="Drum Kits">
+ <Patch name="Analog" hbank="127" prog="25" drum="1" />
+ <Patch name="Brush" hbank="127" prog="40" drum="1" />
+ <Patch name="Classic" hbank="127" prog="48" drum="1" />
+ <Patch name="Electro" hbank="127" prog="24" drum="1" />
+ <Patch name="Rock" hbank="127" prog="16" drum="1" />
+ <Patch name="Room" hbank="127" prog="8" drum="1" />
+ <Patch name="Standard" hbank="127" prog="0" drum="1" />
+ <Patch name="Standard2" hbank="127" prog="1" drum="1" />
+ <Patch name="Jazz" hbank="127" prog="32" drum="1" />
+ </PatchGroup>
+ <Controller name="Modulation" l="1" />
+ <Controller name="BreathControl" l="2" />
+ <Controller name="FootControl" l="4" />
+ <Controller name="PortamentoTime" l="5" />
+ <Controller name="MainVolume" l="7" init="100" />
+ <Controller name="Balance" l="8" min="-64" max="63" />
+ <Controller name="Pan" l="10" min="-64" max="63" init="0" />
+ <Controller name="Expression" l="11" />
+ <Controller name="Sustain" l="64" />
+ <Controller name="Portamento" l="65" />
+ <Controller name="Sostenuto" l="66" />
+ <Controller name="SoftPedal" l="67" />
+ <Controller name="HarmonicContent" l="71" />
+ <Controller name="ReleaseTime" l="72" />
+ <Controller name="AttackTime" l="73" />
+ <Controller name="Brightness" l="74" />
+ <Controller name="PortamentoControl" l="84" />
+ <Controller name="Effect1Depth" l="91" />
+ <Controller name="Effect3Depth" l="93" />
+ <Controller name="VariationSend" l="94" init="0" />
+ <Controller name="PitchBendSensitivity" type="RPN" h="0" l="0" max="24" init="2" />
+ <Controller name="FineTuning" type="RPN" h="0" l="1" min="-64" max="63" init="0" />
+ <Controller name="VibratoRate" type="NRPN" h="1" l="8" />
+ <Controller name="VibratoDepth" type="NRPN" h="1" l="9" />
+ <Controller name="VibratoDelay" type="NRPN" h="1" l="10" />
+ <Controller name="FilterCutoffFreq" type="NRPN" h="1" l="32" />
+ <Controller name="FilterResonance" type="NRPN" h="1" l="33" />
+ <Controller name="EG AttackTime" type="NRPN" h="1" l="99" />
+ <Controller name="EG DecayTime" type="NRPN" h="1" l="100" />
+ <Controller name="EG Release" type="NRPN" h="1" l="102" />
+ <Controller name="Drum FilterCutoffFreq" type="NRPN" h="20" l="pitch" />
+ <Controller name="Drum FilterResonance" type="NRPN" h="21" l="pitch" />
+ <Controller name="Drum EG AttackRate" type="NRPN" h="22" l="pitch" />
+ <Controller name="Drum EG DecayRage" type="NRPN" h="23" l="pitch" />
+ <Controller name="Drum Pitch Coarse" type="NRPN" h="24" l="pitch" min="-64" max="63" />
+ <Controller name="Drum Pitch Fine" type="NRPN" h="25" l="pitch" min="-64" max="63" />
+ <Controller name="Drum Level" type="NRPN" h="26" l="pitch" />
+ <Controller name="Drum Pan" type="NRPN" h="28" l="pitch" min="-64" max="63" />
+ <Controller name="Drum ReverbSendLevel" type="NRPN" h="29" l="pitch" />
+ <Controller name="Drum ChorusSendLevel" type="NRPN" h="30" l="pitch" />
+ <Controller name="Drum VariationSendLev" type="NRPN" h="31" l="pitch" />
+ <Controller name="Pitch" type="Pitch" />
+ <Controller name="Program" type="Program" />
+ </MidiInstrument>
+</muse>
diff --git a/muse2/share/locale/Makefile.am b/muse2/share/locale/Makefile.am
new file mode 100644
index 00000000..976b8885
--- /dev/null
+++ b/muse2/share/locale/Makefile.am
@@ -0,0 +1,11 @@
+EXTRA_DIST = \
+ muse_de.qm muse_de.ts \
+ muse_fr.qm muse_fr.ts \
+ muse_sv_SE.qm muse_sv_SE.ts \
+ muse_es.qm muse_es.ts \
+ muse_pl.qm muse_pl.ts \
+ muse_ru.qm muse_ru.ts
+
+localepkgdata_DATA = $(EXTRA_DIST)
+
+localepkgdatadir = $(pkgdatadir)/locale
diff --git a/muse2/share/locale/Makefile.in b/muse2/share/locale/Makefile.in
new file mode 100644
index 00000000..5e60257c
--- /dev/null
+++ b/muse2/share/locale/Makefile.in
@@ -0,0 +1,472 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = share/locale
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal-include.m4 \
+ $(top_srcdir)/m4/alsa.m4 $(top_srcdir)/m4/docbook.m4 \
+ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
+ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
+ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+SOURCES =
+DIST_SOURCES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__installdirs = "$(DESTDIR)$(localepkgdatadir)"
+DATA = $(localepkgdata_DATA)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ALSA_CFLAGS = @ALSA_CFLAGS@
+ALSA_LIBS = @ALSA_LIBS@
+AMTAR = @AMTAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DOCBOOKSTYLE = @DOCBOOKSTYLE@
+DOCBOOKTARGETS = @DOCBOOKTARGETS@
+DOT = @DOT@
+DOTPATH = @DOTPATH@
+DOXYGEN = @DOXYGEN@
+DOXYGEN_TREEVIEW = @DOXYGEN_TREEVIEW@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+FLUIDSYNTHDIRS = @FLUIDSYNTHDIRS@
+FST_CFLAGS = @FST_CFLAGS@
+FST_LIBS = @FST_LIBS@
+Fluidsynth_CFLAGS = @Fluidsynth_CFLAGS@
+Fluidsynth_LIBS = @Fluidsynth_LIBS@
+GIVERTCAP = @GIVERTCAP@
+GREP = @GREP@
+HAVEDOT = @HAVEDOT@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JACK_CFLAGS = @JACK_CFLAGS@
+JACK_LIBS = @JACK_LIBS@
+JADE = @JADE@
+LASH_CFLAGS = @LASH_CFLAGS@
+LASH_LIBS = @LASH_LIBS@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LO_CFLAGS = @LO_CFLAGS@
+LO_LIBS = @LO_LIBS@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+MUSECXXFLAGS = @MUSECXXFLAGS@
+NM = @NM@
+NMEDIT = @NMEDIT@
+NSGMLS = @NSGMLS@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PCH = @PCH@
+PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+PYTHON = @PYTHON@
+PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
+PYTHON_INCLUDES = @PYTHON_INCLUDES@
+PYTHON_LIB = @PYTHON_LIB@
+PYTHON_PLATFORM = @PYTHON_PLATFORM@
+PYTHON_PREFIX = @PYTHON_PREFIX@
+PYTHON_VERSION = @PYTHON_VERSION@
+QTDIR_BIN = @QTDIR_BIN@
+QTDIR_INC = @QTDIR_INC@
+QT_LIBS = @QT_LIBS@
+RANLIB = @RANLIB@
+SAMPLERATE_CFLAGS = @SAMPLERATE_CFLAGS@
+SAMPLERATE_LIBS = @SAMPLERATE_LIBS@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SNDFILE_CFLAGS = @SNDFILE_CFLAGS@
+SNDFILE_LIBS = @SNDFILE_LIBS@
+STRIP = @STRIP@
+SUIDBUILD = @SUIDBUILD@
+SUIDINSTALL = @SUIDINSTALL@
+USE_SSE = @USE_SSE@
+UUID_CFLAGS = @UUID_CFLAGS@
+UUID_LIBS = @UUID_LIBS@
+VERSION = @VERSION@
+XMKMF = @XMKMF@
+X_CFLAGS = @X_CFLAGS@
+X_EXTRA_LIBS = @X_EXTRA_LIBS@
+X_LIBS = @X_LIBS@
+X_PRE_LIBS = @X_PRE_LIBS@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+have_docbook = @have_docbook@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+lt_ECHO = @lt_ECHO@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+pkgpyexecdir = @pkgpyexecdir@
+pkgpythondir = @pkgpythondir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+pyexecdir = @pyexecdir@
+pythondir = @pythondir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+synth_fluid = @synth_fluid@
+synth_fluidsynth = @synth_fluidsynth@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+EXTRA_DIST = \
+ muse_de.qm muse_de.ts \
+ muse_fr.qm muse_fr.ts \
+ muse_sv_SE.qm muse_sv_SE.ts \
+ muse_es.qm muse_es.ts \
+ muse_pl.qm muse_pl.ts \
+ muse_ru.qm muse_ru.ts
+
+localepkgdata_DATA = $(EXTRA_DIST)
+localepkgdatadir = $(pkgdatadir)/locale
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu share/locale/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu share/locale/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+install-localepkgdataDATA: $(localepkgdata_DATA)
+ @$(NORMAL_INSTALL)
+ test -z "$(localepkgdatadir)" || $(MKDIR_P) "$(DESTDIR)$(localepkgdatadir)"
+ @list='$(localepkgdata_DATA)'; test -n "$(localepkgdatadir)" || list=; \
+ for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(localepkgdatadir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(localepkgdatadir)" || exit $$?; \
+ done
+
+uninstall-localepkgdataDATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(localepkgdata_DATA)'; test -n "$(localepkgdatadir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ test -n "$$files" || exit 0; \
+ echo " ( cd '$(DESTDIR)$(localepkgdatadir)' && rm -f" $$files ")"; \
+ cd "$(DESTDIR)$(localepkgdatadir)" && rm -f $$files
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile $(DATA)
+installdirs:
+ for dir in "$(DESTDIR)$(localepkgdatadir)"; do \
+ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-localepkgdataDATA
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-localepkgdataDATA
+
+.MAKE: install-am install-strip
+
+.PHONY: all all-am check check-am clean clean-generic clean-libtool \
+ distclean distclean-generic distclean-libtool distdir dvi \
+ dvi-am html html-am info info-am install install-am \
+ install-data install-data-am install-dvi install-dvi-am \
+ install-exec install-exec-am install-html install-html-am \
+ install-info install-info-am install-localepkgdataDATA \
+ install-man install-pdf install-pdf-am install-ps \
+ install-ps-am install-strip installcheck installcheck-am \
+ installdirs maintainer-clean maintainer-clean-generic \
+ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
+ ps ps-am uninstall uninstall-am uninstall-localepkgdataDATA
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/muse2/share/locale/muse_de.qm b/muse2/share/locale/muse_de.qm
new file mode 100644
index 00000000..55504f9e
--- /dev/null
+++ b/muse2/share/locale/muse_de.qm
Binary files differ
diff --git a/muse2/share/locale/muse_de.ts b/muse2/share/locale/muse_de.ts
new file mode 100644
index 00000000..5124ad8b
--- /dev/null
+++ b/muse2/share/locale/muse_de.ts
@@ -0,0 +1,5722 @@
+<!DOCTYPE TS><TS>
+<context>
+ <name></name>
+ <message>
+ <source>Click this button to enable recording</source>
+ <translation>Auf diese Schaltfläche klicken um in den Modus &quot;Aufnahme&quot; zu gelangen</translation>
+ </message>
+ <message>
+ <source>sets amount of quantization:
+0 - no quantization
+100 - full quantization</source>
+ <translation>Quantisierungsstärke einstellen:
+0 - keine Quantisierung
+100 - volle Quantisierung</translation>
+ </message>
+ <message>
+ <source>select Pointer Tool:
+with the pointer tool you can:
+ select parts
+ move parts
+ copy parts</source>
+ <translation>Werkzeug &quot;Zeiger&quot;:
+Dieses Werkzeug ermöglicht:
+ Parts auswählen
+ Parts verschieben
+ Parts kopieren</translation>
+ </message>
+</context>
+<context>
+ <name>@default</name>
+ <message>
+ <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>Auf diese Schaltfläche klicken um ein &lt;em&gt;Neues Lied&lt;/em&gt; zu öffnen.&lt;br&gt; Alternativ den Befehl &lt;b&gt;Neues Lied&lt;/b&gt; des Menüs &quot;Datei&quot; auswählen.</translation>
+ </message>
+ <message>
+ <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>Auf diese Schaltfläche klicken um das gerade bearbeitete Lied zu sichern mit der automatischen Aufforderung einen Dateinamen anzugeben.
+Alternativ das Lied mit dem Befehl &quot;Sichern&quot; im Menü &quot;Datei&quot; sichern.</translation>
+ </message>
+ <message>
+ <source>Create New Song</source>
+ <translation>Neues Lied erzeugen</translation>
+ </message>
+ <message>
+ <source>Click this button to stop playback</source>
+ <translation>Klicke auf diese Schaltfläche um die Wiedergabe zu stoppen</translation>
+ </message>
+ <message>
+ <source>Click this button to start playback</source>
+ <translation>Klicke auf diese Schaltfläche um die Wiedergabe zu starten</translation>
+ </message>
+ <message>
+ <source>Click this button to rewind to start position</source>
+ <translation>Klicke auf diese Schaltfläche um zur Startposition zurückzukehren</translation>
+ </message>
+ <message>
+ <source>Click this button to rewind</source>
+ <translation>Klicke auf diese Schaltfläche um einen Taktschlag rückwärts zu springen</translation>
+ </message>
+ <message>
+ <source>Click this button to forward current play position</source>
+ <translation>Klicke auf diese Schaltfläche um einen Taktschlag vorwärts zu springen</translation>
+ </message>
+ <message>
+ <source>don&apos;t quantize notes above this tick limit</source>
+ <translation>Keine Note länger als die Taktschlagdauer quantisieren</translation>
+ </message>
+ <message>
+ <source>quantize also note len as default</source>
+ <translation>Auch die Notenlänge als Standard quantisieren</translation>
+ </message>
+ <message>
+ <source>loop between left mark and right mark</source>
+ <translation>Schleife zwischen linkem und rechtem Marker erzeugen</translation>
+ </message>
+ <message>
+ <source>record starts at left mark</source>
+ <translation>Aufnahme am linken Marker beginnen</translation>
+ </message>
+ <message>
+ <source>record stops at right mark</source>
+ <translation>Aufnahme am rechten Marker beenden</translation>
+ </message>
+ <message>
+ <source>rewind to start position</source>
+ <translation>Zur Startposition springen</translation>
+ </message>
+ <message>
+ <source>rewind current position</source>
+ <translation>Einen Taktschlag rückwärts</translation>
+ </message>
+ <message>
+ <source>move current position</source>
+ <translation>Einen Taktschlag vorwärts</translation>
+ </message>
+ <message>
+ <source>stop sequencer</source>
+ <translation>Wiedergabe beenden</translation>
+ </message>
+ <message>
+ <source>start sequencer play</source>
+ <translation>Wiedergabe beginnen</translation>
+ </message>
+ <message>
+ <source>to record press record and then play</source>
+ <translation>Zur Aufnahme erst die Schaltfläche &quot;Aufnahme&quot; und dann &quot;Wiedergabe&quot; klicken</translation>
+ </message>
+ <message>
+ <source>send note off to all midi channels</source>
+ <translation>Panik - &quot;Note aus&quot; Befehl an alle Midikanäle senden</translation>
+ </message>
+ <message>
+ <source>select Pencil Tool:
+with the pencil tool you can:
+ create new parts
+ modify length of parts</source>
+ <translation>Werkzeug &quot;Zeichenstift&quot;:
+Dieses Werkzeug ermöglicht:
+ Neue Parts erzeugen
+ Die Länge einzelner Parts ändern</translation>
+ </message>
+ <message>
+ <source>select Delete Tool:
+with the delete tool you can delete parts</source>
+ <translation>Werkzeug &quot;Radierer&quot;:
+ mit diesem Werkzeug werden Parts gelöscht</translation>
+ </message>
+ <message>
+ <source>select Cut Tool:
+with the cut tool you can split a part</source>
+ <translation>Werkzeug &quot;Schnitt&quot;:
+ mit diesem Werkzeug werden Parts geteilt</translation>
+ </message>
+ <message>
+ <source>select Glue Tool:
+with the glue tool you can glue two parts</source>
+ <translation>Werkzeug &quot;Verbinder&quot;:
+ mit diesem Werkzeug werden zwei einzelne Parts zu einem verbunden</translation>
+ </message>
+ <message>
+ <source>select Score Tool:
+</source>
+ <translation>Werkzeug &quot;Notensatz&quot;:</translation>
+ </message>
+ <message>
+ <source>select Quantize Tool:
+insert display quantize event</source>
+ <translation>Werkzeug &quot;Quantisierung&quot;:
+ mit diesem Werkzeug werden quantisierte Ereignisse eingefügt</translation>
+ </message>
+ <message>
+ <source>select Drawing Tool</source>
+ <translation>Werkzeug &quot;Zeichenstift&quot;</translation>
+ </message>
+ <message>
+ <source>select Muting Tool:
+click on part to mute/unmute</source>
+ <translation>Werkzeug &quot;Stille&quot;:
+ Klicke auf einen Part um diesen still/laut zu schalten</translation>
+ </message>
+ <message>
+ <source>pointer</source>
+ <translation>Zeiger</translation>
+ </message>
+ <message>
+ <source>pencil</source>
+ <translation>Zeichenstift</translation>
+ </message>
+ <message>
+ <source>cutter</source>
+ <translation>Schnitt</translation>
+ </message>
+ <message>
+ <source>score</source>
+ <translation>Notensatz</translation>
+ </message>
+ <message>
+ <source>glue</source>
+ <translation>Verbinder</translation>
+ </message>
+ <message>
+ <source>quantize</source>
+ <translation>Quantisierung</translation>
+ </message>
+ <message>
+ <source>draw</source>
+ <translation>Zeichenstift</translation>
+ </message>
+ <message>
+ <source>mute parts</source>
+ <translation>Schalte Part still</translation>
+ </message>
+ <message>
+ <source>Off</source>
+ <translation>Aus</translation>
+ </message>
+ <message>
+ <source>presets (*.pre *.pre.gz *.pre.bz2)</source>
+ <translation>Vorlagen (*.pre *.pre.gz *.pre.bz2)</translation>
+ </message>
+ <message>
+ <source>All Files (*)</source>
+ <translation>Alle Dateien (*)</translation>
+ </message>
+ <message>
+ <source>Add Midi Track</source>
+ <translation>Midispur erzeugen</translation>
+ </message>
+ <message>
+ <source>Add Drum Track</source>
+ <translation>Schlagzeugspur erzeugen</translation>
+ </message>
+ <message>
+ <source>Add Wave Track</source>
+ <translation>Wavespur erzeugen</translation>
+ </message>
+ <message>
+ <source>Add Audio Output</source>
+ <translation>Audioausgang erzeugen</translation>
+ </message>
+ <message>
+ <source>Add Audio Group</source>
+ <translation>Audiogruppe erzeugen</translation>
+ </message>
+ <message>
+ <source>Add Audio Input</source>
+ <translation>Audioeingang erzeugen</translation>
+ </message>
+ <message>
+ <source>Add Aux Send</source>
+ <translation>Aux Send erzeugen</translation>
+ </message>
+ <message>
+ <source>eraser</source>
+ <translation>Radierer</translation>
+ </message>
+</context>
+<context>
+ <name>AboutBox</name>
+ <message>
+ <source>AboutBox</source>
+ <translation>Projektinformation</translation>
+ </message>
+ <message>
+ <source>Keep On Rocking!</source>
+ <translation>Zurück zu MusE!</translation>
+ </message>
+ <message>
+ <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></translation>
+ </message>
+</context>
+<context>
+ <name>Appearance</name>
+ <message>
+ <source>MusE: load image</source>
+ <translation>MusE: Bild laden</translation>
+ </message>
+</context>
+<context>
+ <name>AppearanceDialogBase</name>
+ <message>
+ <source>MusE: Appearance settings</source>
+ <translation>MusE: Erscheinungsbild einstellen</translation>
+ </message>
+ <message>
+ <source>Apply</source>
+ <translation>Anwenden</translation>
+ </message>
+ <message>
+ <source>Ok</source>
+ <translation>Bestätigen</translation>
+ </message>
+ <message>
+ <source>Cancel</source>
+ <translation>Abbrechen</translation>
+ </message>
+ <message>
+ <source>Arranger</source>
+ <translation>Arrangierer</translation>
+ </message>
+ <message>
+ <source>Parts</source>
+ <translation>Parts</translation>
+ </message>
+ <message>
+ <source>show names</source>
+ <translation>Namen anzeigen</translation>
+ </message>
+ <message>
+ <source>show events</source>
+ <translation>Ereignisse anzeigen</translation>
+ </message>
+ <message>
+ <source>show Cakewalk Style</source>
+ <translation>Cakewalk Stil</translation>
+ </message>
+ <message>
+ <source>Events</source>
+ <translation>Ereignisse</translation>
+ </message>
+ <message>
+ <source>note on</source>
+ <translation>Note An</translation>
+ </message>
+ <message>
+ <source>poly pressure</source>
+ <translation>Poly Tastendruck</translation>
+ </message>
+ <message>
+ <source>controller</source>
+ <translation>Kontroller</translation>
+ </message>
+ <message>
+ <source>aftertouch</source>
+ <translation>Aftertouch</translation>
+ </message>
+ <message>
+ <source>pitch bend</source>
+ <translation>Pitch bend</translation>
+ </message>
+ <message>
+ <source>program change</source>
+ <translation>Programmwechsel</translation>
+ </message>
+ <message>
+ <source>special</source>
+ <translation>Spezial</translation>
+ </message>
+ <message>
+ <source>Background picture</source>
+ <translation>Hintergrundbild</translation>
+ </message>
+ <message>
+ <source>bg</source>
+ <translation>bg</translation>
+ </message>
+ <message>
+ <source>select...</source>
+ <translation>auswählen ...</translation>
+ </message>
+ <message>
+ <source>show snap grid</source>
+ <translation>Magnetisches Gitter anzeigen</translation>
+ </message>
+ <message>
+ <source>Colors</source>
+ <translation>Farben</translation>
+ </message>
+ <message>
+ <source>Items</source>
+ <translation>Items</translation>
+ </message>
+ <message>
+ <source>Style/Fonts</source>
+ <translation>Stil und Schriftart</translation>
+ </message>
+ <message>
+ <source>QT Theme</source>
+ <translation>Qt Thema</translation>
+ </message>
+ <message>
+ <source>Windows</source>
+ <translation>Fenster</translation>
+ </message>
+ <message>
+ <source>MusE</source>
+ <translation>MusE</translation>
+ </message>
+ <message>
+ <source>Metal</source>
+ <translation>Metall</translation>
+ </message>
+ <message>
+ <source>Norwegian Wood</source>
+ <translation>Norwegisches Holz</translation>
+ </message>
+ <message>
+ <source>Platinum</source>
+ <translation>Platinum</translation>
+ </message>
+ <message>
+ <source>CDE</source>
+ <translation>CDE</translation>
+ </message>
+ <message>
+ <source>Motif</source>
+ <translation>Motif</translation>
+ </message>
+ <message>
+ <source>Motif Plus</source>
+ <translation>Motif Plus</translation>
+ </message>
+ <message>
+ <source>Fonts</source>
+ <translation>Schriftarten</translation>
+ </message>
+ <message>
+ <source>Family</source>
+ <translation>Familie</translation>
+ </message>
+ <message>
+ <source>Size</source>
+ <translation>Größe</translation>
+ </message>
+ <message>
+ <source>Font 1</source>
+ <translation>Schriftart 1</translation>
+ </message>
+ <message>
+ <source>Font 2</source>
+ <translation>Schriftart 2</translation>
+ </message>
+ <message>
+ <source>Font 3</source>
+ <translation>Schriftart 3</translation>
+ </message>
+ <message>
+ <source>Font 0</source>
+ <translation>Schriftart 0</translation>
+ </message>
+ <message>
+ <source>Bold</source>
+ <translation>Fett</translation>
+ </message>
+ <message>
+ <source>Italic</source>
+ <translation>Kursiv</translation>
+ </message>
+ <message>
+ <source>...</source>
+ <translation>...</translation>
+ </message>
+ <message>
+ <source>Font 4</source>
+ <translation>Schriftart 4</translation>
+ </message>
+ <message>
+ <source>Font 5</source>
+ <translation>Schriftart 5</translation>
+ </message>
+ <message>
+ <source>Palette</source>
+ <translation>Palette</translation>
+ </message>
+ <message>
+ <source>add to palette</source>
+ <translation>Zur Palette hinzufügen</translation>
+ </message>
+ <message>
+ <source>B</source>
+ <translation>B</translation>
+ </message>
+ <message>
+ <source>S</source>
+ <translation>S</translation>
+ </message>
+ <message>
+ <source>H</source>
+ <translation>H</translation>
+ </message>
+ <message>
+ <source>V</source>
+ <translation>V</translation>
+ </message>
+ <message>
+ <source>G</source>
+ <translation>G</translation>
+ </message>
+ <message>
+ <source>R</source>
+ <translation>R</translation>
+ </message>
+</context>
+<context>
+ <name>Arranger</name>
+ <message>
+ <source>Cursor</source>
+ <translation>Position</translation>
+ </message>
+ <message>
+ <source>Snap</source>
+ <translation>Magnet</translation>
+ </message>
+ <message>
+ <source>Len</source>
+ <translation>Länge</translation>
+ </message>
+ <message>
+ <source>NO</source>
+ <translation>Kein</translation>
+ </message>
+ <message>
+ <source>TrackInfo</source>
+ <translation>Spurinfo</translation>
+ </message>
+ <message>
+ <source>Track</source>
+ <translation>Spur</translation>
+ </message>
+ <message>
+ <source>Type</source>
+ <translation>Typ</translation>
+ </message>
+ <message>
+ <source>midi song type</source>
+ <translation>Midi Lied Typ</translation>
+ </message>
+ <message>
+ <source>Pitch</source>
+ <translation>Tonhöhenänderung</translation>
+ </message>
+ <message>
+ <source>midi pitch</source>
+ <translation>Midi Tonhöhenänderung</translation>
+ </message>
+ <message>
+ <source>global midi pitch shift</source>
+ <translation>Globale Midi Tonhöhenänderung</translation>
+ </message>
+ <message>
+ <source>Tempo</source>
+ <translation>Tempo</translation>
+ </message>
+ <message>
+ <source>midi tempo</source>
+ <translation>Midi Tempo</translation>
+ </message>
+ <message>
+ <source>O-Port</source>
+ <translation>Ausgangsanschluss</translation>
+ </message>
+ <message>
+ <source>Arranger</source>
+ <translation>Arrangierer</translation>
+ </message>
+ <message>
+ <source>Off</source>
+ <translation>Aus</translation>
+ </message>
+ <message>
+ <source>Bar</source>
+ <translation>Takt</translation>
+ </message>
+ <message>
+ <source>GM</source>
+ <translation>GM</translation>
+ </message>
+ <message>
+ <source>GS</source>
+ <translation>GS</translation>
+ </message>
+ <message>
+ <source>XG</source>
+ <translation>XG</translation>
+ </message>
+ <message>
+ <source>N</source>
+ <translation>N</translation>
+ </message>
+ <message>
+ <source>R</source>
+ <translation>R</translation>
+ </message>
+ <message>
+ <source>M</source>
+ <translation>M</translation>
+ </message>
+ <message>
+ <source>S</source>
+ <translation>S</translation>
+ </message>
+ <message>
+ <source>C</source>
+ <translation>C</translation>
+ </message>
+ <message>
+ <source>Ch</source>
+ <translation>K</translation>
+ </message>
+ <message>
+ <source>T</source>
+ <translation>T</translation>
+ </message>
+</context>
+<context>
+ <name>AudioMixerApp</name>
+ <message>
+ <source>MusE: Mixer</source>
+ <translation>MusE: Mischpult</translation>
+ </message>
+ <message>
+ <source>&amp;Create</source>
+ <translation>&amp;Erzeugen</translation>
+ </message>
+ <message>
+ <source>&amp;View</source>
+ <translation>&amp;Zeigen</translation>
+ </message>
+ <message>
+ <source>Routing</source>
+ <translation>Signalfluss</translation>
+ </message>
+</context>
+<context>
+ <name>AudioStrip</name>
+ <message>
+ <source>panorama</source>
+ <translation>Panorama</translation>
+ </message>
+ <message>
+ <source>aux send level</source>
+ <translation>Aux Send Pegel</translation>
+ </message>
+ <message>
+ <source>off</source>
+ <translation>Aus</translation>
+ </message>
+ <message>
+ <source>Pan</source>
+ <translation>Balance</translation>
+ </message>
+ <message>
+ <source>1/2 channel</source>
+ <translation>1/2 Kanal</translation>
+ </message>
+ <message>
+ <source>Pre</source>
+ <translation>Pre</translation>
+ </message>
+ <message>
+ <source>pre fader - post fader</source>
+ <translation>Vor Regler - nach Regler</translation>
+ </message>
+ <message>
+ <source>dB</source>
+ <translation>dB</translation>
+ </message>
+ <message>
+ <source>record</source>
+ <translation>Aufnahme</translation>
+ </message>
+ <message>
+ <source>mute</source>
+ <translation>still</translation>
+ </message>
+ <message>
+ <source>record downmix</source>
+ <translation>Aufnahme Abmischung</translation>
+ </message>
+ <message>
+ <source>solo mode (monitor)</source>
+ <translation>Solo Modus (Monitor)</translation>
+ </message>
+ <message>
+ <source>pre fader listening</source>
+ <translation>Abhöre vor Regler</translation>
+ </message>
+ <message>
+ <source>iR</source>
+ <translation>iR</translation>
+ </message>
+ <message>
+ <source>intput routing</source>
+ <translation>Eingangs-Signalfluss</translation>
+ </message>
+ <message>
+ <source>oR</source>
+ <translation>oR</translation>
+ </message>
+ <message>
+ <source>output routing</source>
+ <translation>Ausgangs-Signalfluss</translation>
+ </message>
+ <message>
+ <source>Off</source>
+ <translation>Aus</translation>
+ </message>
+ <message>
+ <source>Read</source>
+ <translation>Lesen</translation>
+ </message>
+ <message>
+ <source>Touch</source>
+ <translation>Antasten</translation>
+ </message>
+ <message>
+ <source>Write</source>
+ <translation>Schreiben</translation>
+ </message>
+ <message>
+ <source>automation type</source>
+ <translation>Automationstyp</translation>
+ </message>
+ <message>
+ <source>Channel</source>
+ <translation>Kanal</translation>
+ </message>
+</context>
+<context>
+ <name>BigTime</name>
+ <message>
+ <source>MusE: Bigtime</source>
+ <translation>MusE: Zeitanzeige groß</translation>
+ </message>
+</context>
+<context>
+ <name>ClipListEditorBase</name>
+ <message>
+ <source>MusE: ClipList</source>
+ <translation>MusE: Klipp Liste</translation>
+ </message>
+ <message>
+ <source>Name</source>
+ <translation>Name</translation>
+ </message>
+ <message>
+ <source>Refs</source>
+ <translation>Refs</translation>
+ </message>
+ <message>
+ <source>Start</source>
+ <translation>Start</translation>
+ </message>
+ <message>
+ <source>Len</source>
+ <translation>Länge</translation>
+ </message>
+ <message>
+ <source>Data</source>
+ <translation>Daten</translation>
+ </message>
+ <message>
+ <source>Clip Properties</source>
+ <translation>Klippeigenschaften</translation>
+ </message>
+ <message>
+ <source>Pos:</source>
+ <translation>Pos:</translation>
+ </message>
+ <message>
+ <source>Len:</source>
+ <translation>Länge:</translation>
+ </message>
+</context>
+<context>
+ <name>CommentBase</name>
+ <message>
+ <source>Form1</source>
+ <translation>Form1</translation>
+ </message>
+ <message>
+ <source>Track Comment</source>
+ <translation>Spur Kommentar</translation>
+ </message>
+ <message>
+ <source>Track 1</source>
+ <translation>Spur 1</translation>
+ </message>
+</context>
+<context>
+ <name>ConfigMidiFileBase</name>
+ <message>
+ <source>MusE: Config Midi File Export</source>
+ <translation>MusE: Konfiguration Midi Datei exportieren</translation>
+ </message>
+ <message>
+ <source>&amp;OK</source>
+ <translation>&amp;Bestätigen</translation>
+ </message>
+ <message>
+ <source>&amp;Cancel</source>
+ <translation>&amp;Abbrechen</translation>
+ </message>
+ <message>
+ <source>0 (single track)</source>
+ <translation>0 (einzelne Spur)</translation>
+ </message>
+ <message>
+ <source>1 (multiple tracks)</source>
+ <translation>1 (mehrere Spuren)</translation>
+ </message>
+ <message>
+ <source>Format:</source>
+ <translation>Format:</translation>
+ </message>
+ <message>
+ <source>96</source>
+ <translation>96</translation>
+ </message>
+ <message>
+ <source>192</source>
+ <translation>192</translation>
+ </message>
+ <message>
+ <source>384</source>
+ <translation>384</translation>
+ </message>
+ <message>
+ <source>Division:</source>
+ <translation>Unterteilung:</translation>
+ </message>
+ <message>
+ <source>Copyright:</source>
+ <translation>Copyright:</translation>
+ </message>
+ <message>
+ <source>Enable extended smf format</source>
+ <translation>Aktiviere erweitertes SMF Format</translation>
+ </message>
+</context>
+<context>
+ <name>CtrlPanel</name>
+ <message>
+ <source>select controller</source>
+ <translation>Kontroller wählen</translation>
+ </message>
+ <message>
+ <source>remove panel</source>
+ <translation>Kontrolleransicht schließen</translation>
+ </message>
+ <message>
+ <source>Sel</source>
+ <translation>Wählen</translation>
+ </message>
+ <message>
+ <source>x</source>
+ <translation>Schließen</translation>
+ </message>
+ <message>
+ <source>Velocity</source>
+ <translation>Velocity</translation>
+ </message>
+ <message>
+ <source>add new ...</source>
+ <translation>Neuen Kontroller hinzufügen ...</translation>
+ </message>
+</context>
+<context>
+ <name>DrumEdit</name>
+ <message>
+ <source>Load Map</source>
+ <translation>Schlagzeugbelegung laden</translation>
+ </message>
+ <message>
+ <source>Save Map</source>
+ <translation>Schlagzeugbelegung Sichern</translation>
+ </message>
+ <message>
+ <source>&amp;Edit</source>
+ <translation>&amp;Bearbeiten</translation>
+ </message>
+ <message>
+ <source>Cut</source>
+ <translation>Ausschneiden</translation>
+ </message>
+ <message>
+ <source>Copy</source>
+ <translation>Kopieren</translation>
+ </message>
+ <message>
+ <source>Paste</source>
+ <translation>Einfügen</translation>
+ </message>
+ <message>
+ <source>Delete Events</source>
+ <translation>Events entfernen</translation>
+ </message>
+ <message>
+ <source>Select All</source>
+ <translation>Alles auswählen</translation>
+ </message>
+ <message>
+ <source>Select None</source>
+ <translation>Auswahl aufheben</translation>
+ </message>
+ <message>
+ <source>Invert</source>
+ <translation>Auswahl umkehren</translation>
+ </message>
+ <message>
+ <source>Inside Loop</source>
+ <translation>Innerhalb Schleife</translation>
+ </message>
+ <message>
+ <source>Outside Loop</source>
+ <translation>Ausserhalb Schleife</translation>
+ </message>
+ <message>
+ <source>&amp;Select</source>
+ <translation>&amp;Auswählen</translation>
+ </message>
+ <message>
+ <source>Step Record</source>
+ <translation>Aufnahme taktschlagweise</translation>
+ </message>
+ <message>
+ <source>Midi Input</source>
+ <translation>Midi Eingang</translation>
+ </message>
+ <message>
+ <source>Add Controller View</source>
+ <translation>Kontrolleransicht hinzufügen</translation>
+ </message>
+ <message>
+ <source>M</source>
+ <translation>M</translation>
+ </message>
+ <message>
+ <source>Sound</source>
+ <translation>Klang</translation>
+ </message>
+ <message>
+ <source>QNT</source>
+ <translation>QNT</translation>
+ </message>
+ <message>
+ <source>E-Note</source>
+ <translation>E-Note</translation>
+ </message>
+ <message>
+ <source>Len</source>
+ <translation>Länge</translation>
+ </message>
+ <message>
+ <source>A-Note</source>
+ <translation>A-Note</translation>
+ </message>
+ <message>
+ <source>Ch</source>
+ <translation>K</translation>
+ </message>
+ <message>
+ <source>Port</source>
+ <translation>Port</translation>
+ </message>
+ <message>
+ <source>LV1</source>
+ <translation>LV1</translation>
+ </message>
+ <message>
+ <source>LV2</source>
+ <translation>LV2</translation>
+ </message>
+ <message>
+ <source>LV3</source>
+ <translation>LV3</translation>
+ </message>
+ <message>
+ <source>LV4</source>
+ <translation>LV4</translation>
+ </message>
+ <message>
+ <source>&amp;File</source>
+ <translation>&amp;Datei</translation>
+ </message>
+ <message>
+ <source>Load Drummap</source>
+ <translation>Schlagzeugbelegung laden</translation>
+ </message>
+ <message>
+ <source>Store Drummap</source>
+ <translation>Schlagzeugbelegung sichern</translation>
+ </message>
+ <message>
+ <source>ctrl</source>
+ <translation>steuern</translation>
+ </message>
+ <message>
+ <source>drummaps</source>
+ <translation>Schlagzeugbelegungen</translation>
+ </message>
+ <message>
+ <source>Muse: Load Drum Map</source>
+ <translation>MusE: Schlagzeugbelegung laden</translation>
+ </message>
+ <message>
+ <source>MusE: Store Drum Map</source>
+ <translation>MusE: Schlagzeugbelegung speichern</translation>
+ </message>
+ <message>
+ <source>Set fixed length</source>
+ <translation>Länge festlegen</translation>
+ </message>
+ <message>
+ <source>&amp;Functions</source>
+ <translation>&amp;Funktionen</translation>
+ </message>
+ <message>
+ <source>Modify Velocity</source>
+ <translation>Velocity ändern</translation>
+ </message>
+</context>
+<context>
+ <name>EditCAfterDialog</name>
+ <message>
+ <source>Time Position</source>
+ <translation>Position</translation>
+ </message>
+ <message>
+ <source>Pressure</source>
+ <translation>Anschlagsdruck</translation>
+ </message>
+ <message>
+ <source>MusE: Enter Channel Aftertouch</source>
+ <translation>MusE: Kanal Aftertouch festlegen</translation>
+ </message>
+</context>
+<context>
+ <name>EditCtrl7DialogBase</name>
+ <message>
+ <source>MusE: Enter Controller</source>
+ <translation>MusE: Kontroller eingeben</translation>
+ </message>
+ <message>
+ <source>Controller:</source>
+ <translation>Kontroller:</translation>
+ </message>
+ <message>
+ <source>Time Position:</source>
+ <translation>Position:</translation>
+ </message>
+ <message>
+ <source>Value:</source>
+ <translation>Wert:</translation>
+ </message>
+ <message>
+ <source>controller value</source>
+ <translation>Kontroller Wert</translation>
+ </message>
+ <message>
+ <source>OK</source>
+ <translation>Bestätigen</translation>
+ </message>
+ <message>
+ <source>Cancel</source>
+ <translation>Abbrechen</translation>
+ </message>
+</context>
+<context>
+ <name>EditCtrlBase</name>
+ <message>
+ <source>MusE: Edit Controller Event</source>
+ <translation>MusE: Kontroller Ereignis bearbeiten</translation>
+ </message>
+ <message>
+ <source>Time Position</source>
+ <translation>Position</translation>
+ </message>
+ <message>
+ <source>Available Controller:</source>
+ <translation>Verfügbare Kontroller:</translation>
+ </message>
+ <message>
+ <source>Create New Controller</source>
+ <translation>Neuen Kontroller erstellen</translation>
+ </message>
+ <message>
+ <source>textLabel3</source>
+ <translation>Beschriftung3</translation>
+ </message>
+ <message>
+ <source>Value</source>
+ <translation>Wert</translation>
+ </message>
+ <message>
+ <source>Controller</source>
+ <translation>Kontroller</translation>
+ </message>
+ <message>
+ <source>H-Bank</source>
+ <translation>H-Bank</translation>
+ </message>
+ <message>
+ <source>L-Bank</source>
+ <translation>L-Bank</translation>
+ </message>
+ <message>
+ <source>Program</source>
+ <translation>Programm</translation>
+ </message>
+ <message>
+ <source>off</source>
+ <translation>aus</translation>
+ </message>
+ <message>
+ <source>pushButton4</source>
+ <translation>Schaltfläche4</translation>
+ </message>
+ <message>
+ <source>&amp;OK</source>
+ <translation>&amp;Bestätigen</translation>
+ </message>
+ <message>
+ <source>&amp;Cancel</source>
+ <translation>&amp;Abbrechen</translation>
+ </message>
+</context>
+<context>
+ <name>EditEventDialog</name>
+ <message>
+ <source>Ok</source>
+ <translation>Bestätigen</translation>
+ </message>
+ <message>
+ <source>Cancel</source>
+ <translation>Abbrechen</translation>
+ </message>
+</context>
+<context>
+ <name>EditInstrumentBase</name>
+ <message>
+ <source>MusE: Instrument Editor</source>
+ <translation>MusE: Instrumenten Editor</translation>
+ </message>
+ <message>
+ <source>Patches</source>
+ <translation>Patches</translation>
+ </message>
+ <message>
+ <source>Patch Name:</source>
+ <translation>Patch Name:</translation>
+ </message>
+ <message>
+ <source>High Bank:</source>
+ <translation>High Bank:</translation>
+ </message>
+ <message>
+ <source>Low Bank:</source>
+ <translation>Low Bank:</translation>
+ </message>
+ <message>
+ <source>Program:</source>
+ <translation>Programm:</translation>
+ </message>
+ <message>
+ <source>d.c.</source>
+ <comment>dont care</comment>
+ <translation>d.c.</translation>
+ </message>
+ <message>
+ <source>d.c.</source>
+ <translation>d.c.</translation>
+ </message>
+ <message>
+ <source>Patch/Group</source>
+ <translation>Patch/Gruppe</translation>
+ </message>
+ <message>
+ <source>&amp;Delete</source>
+ <translation>&amp;Löschen</translation>
+ </message>
+ <message>
+ <source>Alt+D</source>
+ <translation>Alt+D</translation>
+ </message>
+ <message>
+ <source>&amp;New Patch</source>
+ <translation>&amp;Neuer Patch</translation>
+ </message>
+ <message>
+ <source>Alt+N</source>
+ <translation>Alt+N</translation>
+ </message>
+ <message>
+ <source>New Group</source>
+ <translation>Neue Gruppe</translation>
+ </message>
+ <message>
+ <source>Drum</source>
+ <translation>Schlagzeug</translation>
+ </message>
+ <message>
+ <source>GM</source>
+ <translation>GM</translation>
+ </message>
+ <message>
+ <source>GS</source>
+ <translation>GS</translation>
+ </message>
+ <message>
+ <source>XG</source>
+ <translation>XG</translation>
+ </message>
+ <message>
+ <source>Controller</source>
+ <translation>Kontroller</translation>
+ </message>
+ <message>
+ <source>Predefined Controller:</source>
+ <translation>Vordefinierte Kontroller:</translation>
+ </message>
+ <message>
+ <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>Dies ist eine Liste häufig verwendeter Midi Kontroller.
+MusE behandelt allerdings Kontroller wie &quot;pitch&quot; und &quot;program changes&quot; wie normale Kontroller.</translation>
+ </message>
+ <message>
+ <source>Properties</source>
+ <translation>Eigenschaften</translation>
+ </message>
+ <message>
+ <source>Name</source>
+ <translation>Name</translation>
+ </message>
+ <message>
+ <source>Type</source>
+ <translation>Typ</translation>
+ </message>
+ <message>
+ <source>Control7</source>
+ <translation>Kontroller7</translation>
+ </message>
+ <message>
+ <source>Control14</source>
+ <translation>Kontroller14</translation>
+ </message>
+ <message>
+ <source>RPN</source>
+ <translation>RPN</translation>
+ </message>
+ <message>
+ <source>NRPN</source>
+ <translation>NRPN</translation>
+ </message>
+ <message>
+ <source>Pitch</source>
+ <translation>Tonhöhe</translation>
+ </message>
+ <message>
+ <source>Program</source>
+ <translation>Programm</translation>
+ </message>
+ <message>
+ <source>H-Ctrl</source>
+ <translation>H-Ctrl</translation>
+ </message>
+ <message>
+ <source>Midi Controller Number High Byte</source>
+ <translation>Midi Kontrollernummer High Byte</translation>
+ </message>
+ <message>
+ <source>L-Ctrl</source>
+ <translation>L-Ctrl</translation>
+ </message>
+ <message>
+ <source>Midi Controller Number Low Byte</source>
+ <translation>Midi Kontrollernummer Low Byte</translation>
+ </message>
+ <message>
+ <source>Range</source>
+ <translation>Bereich</translation>
+ </message>
+ <message>
+ <source>Min</source>
+ <translation>Min</translation>
+ </message>
+ <message>
+ <source>Max</source>
+ <translation>Max</translation>
+ </message>
+ <message>
+ <source>Default</source>
+ <translation>Standard</translation>
+ </message>
+ <message>
+ <source>Name </source>
+ <translation>Name</translation>
+ </message>
+ <message>
+ <source>Type </source>
+ <translation>Typ</translation>
+ </message>
+ <message>
+ <source>Min Val</source>
+ <translation>Min Wert</translation>
+ </message>
+ <message>
+ <source>Max Val</source>
+ <translation>Max Wert</translation>
+ </message>
+ <message>
+ <source>list of defined controllers</source>
+ <translation>Liste von definierten Kontrollern</translation>
+ </message>
+ <message>
+ <source>This is the MusE list of defined controllers.</source>
+ <translation>Dies ist die MusE Liste von definierten Kontrollern.</translation>
+ </message>
+ <message>
+ <source>SysEx</source>
+ <translation>SysEx</translation>
+ </message>
+ <message>
+ <source>Initialization</source>
+ <translation>Initialisierung</translation>
+ </message>
+ <message>
+ <source>Panic</source>
+ <translation>Panik</translation>
+ </message>
+ <message>
+ <source>Hex Entry:</source>
+ <translation>Hex Eintrag:</translation>
+ </message>
+ <message>
+ <source>&amp;File</source>
+ <translation>&amp;Datei</translation>
+ </message>
+ <message>
+ <source>Tools</source>
+ <translation>Werkzeuge</translation>
+ </message>
+ <message>
+ <source>New</source>
+ <translation>Neu</translation>
+ </message>
+ <message>
+ <source>&amp;New</source>
+ <translation>&amp;Neu</translation>
+ </message>
+ <message>
+ <source>Ctrl+N</source>
+ <translation>Ctrl+N</translation>
+ </message>
+ <message>
+ <source>Open</source>
+ <translation>Öffnen</translation>
+ </message>
+ <message>
+ <source>&amp;Open...</source>
+ <translation>&amp;Öffnen ...</translation>
+ </message>
+ <message>
+ <source>Ctrl+O</source>
+ <translation>Ctrl+O</translation>
+ </message>
+ <message>
+ <source>Save</source>
+ <translation>Sichern</translation>
+ </message>
+ <message>
+ <source>&amp;Save</source>
+ <translation>&amp;Sichern</translation>
+ </message>
+ <message>
+ <source>Ctrl+S</source>
+ <translation>Ctrl+S</translation>
+ </message>
+ <message>
+ <source>Save As</source>
+ <translation>Sichern Unter</translation>
+ </message>
+ <message>
+ <source>Save &amp;As...</source>
+ <translation>Sichern &amp;Unter...</translation>
+ </message>
+ <message>
+ <source>Exit</source>
+ <translation>Beenden</translation>
+ </message>
+ <message>
+ <source>E&amp;xit</source>
+ <translation>&amp;Beenden</translation>
+ </message>
+</context>
+<context>
+ <name>EditMetaDialog</name>
+ <message>
+ <source>Time Position</source>
+ <translation>Position</translation>
+ </message>
+ <message>
+ <source>Meta Type</source>
+ <translation>Meta Typ</translation>
+ </message>
+ <message>
+ <source>Enter Hex</source>
+ <translation>Hex Eingabe</translation>
+ </message>
+ <message>
+ <source>MusE: Enter Meta Event</source>
+ <translation>MusE: Eingabe von Metaereignissen</translation>
+ </message>
+</context>
+<context>
+ <name>EditMetaDialogBase</name>
+ <message>
+ <source>MusE: Enter Meta Event</source>
+ <translation>MusE: Meta Ereignis eingeben</translation>
+ </message>
+ <message>
+ <source>OK</source>
+ <translation>Bestätigen</translation>
+ </message>
+ <message>
+ <source>Cancel</source>
+ <translation>Abbrechen</translation>
+ </message>
+ <message>
+ <source>TextLabel1</source>
+ <translation>Beschriftung1</translation>
+ </message>
+ <message>
+ <source>Time Position:</source>
+ <translation>Position:</translation>
+ </message>
+ <message>
+ <source>Meta Type:</source>
+ <translation>Meta Typ:</translation>
+ </message>
+ <message>
+ <source>Enter Hex</source>
+ <translation>Hex eingeben</translation>
+ </message>
+</context>
+<context>
+ <name>EditNoteDialogBase</name>
+ <message>
+ <source>MusE: Enter Note</source>
+ <translation>MusE: Note eingeben</translation>
+ </message>
+ <message>
+ <source>OK</source>
+ <translation>Bestätigen</translation>
+ </message>
+ <message>
+ <source>Cancel</source>
+ <translation>Abbrechen</translation>
+ </message>
+ <message>
+ <source>Length:</source>
+ <translation>Länge:</translation>
+ </message>
+ <message>
+ <source>Time Position:</source>
+ <translation>Position:</translation>
+ </message>
+ <message>
+ <source>Pitch:</source>
+ <translation>Tonhöhe:</translation>
+ </message>
+ <message>
+ <source>Velocity On:</source>
+ <translation>Velocity An:</translation>
+ </message>
+ <message>
+ <source>Velocity Off:</source>
+ <translation>Velocity Aus:</translation>
+ </message>
+</context>
+<context>
+ <name>EditPAfterDialog</name>
+ <message>
+ <source>Time Position</source>
+ <translation>Position</translation>
+ </message>
+ <message>
+ <source>Pitch</source>
+ <translation>Tonhöhe</translation>
+ </message>
+ <message>
+ <source>Pressure</source>
+ <translation>Anschlagsdruck</translation>
+ </message>
+ <message>
+ <source>MusE: Enter Poly Aftertouch</source>
+ <translation>MusE: Poly Aftertouch eingeben</translation>
+ </message>
+</context>
+<context>
+ <name>EditSysexDialogBase</name>
+ <message>
+ <source>MusE: Enter SysEx</source>
+ <translation>MusE: SysEx eingeben</translation>
+ </message>
+ <message>
+ <source>TimePosition:</source>
+ <translation>Position:</translation>
+ </message>
+ <message>
+ <source>Comment:</source>
+ <translation>Kommentar:</translation>
+ </message>
+ <message>
+ <source>OK</source>
+ <translation>Bestätigen</translation>
+ </message>
+ <message>
+ <source>Cancel</source>
+ <translation>Abbrechen</translation>
+ </message>
+</context>
+<context>
+ <name>EditToolBar</name>
+ <message>
+ <source>Edit Tools</source>
+ <translation>Werkzeuge bearbeiten</translation>
+ </message>
+</context>
+<context>
+ <name>EffectRack</name>
+ <message>
+ <source>effect rack</source>
+ <translation>Effekteinschub</translation>
+ </message>
+ <message>
+ <source>move up</source>
+ <translation>Nach oben bewegen</translation>
+ </message>
+ <message>
+ <source>move down</source>
+ <translation>Nach unten bewegen</translation>
+ </message>
+ <message>
+ <source>remove</source>
+ <translation>entfernen</translation>
+ </message>
+ <message>
+ <source>bypass</source>
+ <translation>umleiten</translation>
+ </message>
+ <message>
+ <source>show gui</source>
+ <translation>GUI anzeigen</translation>
+ </message>
+ <message>
+ <source>new</source>
+ <translation>neu</translation>
+ </message>
+ <message>
+ <source>change</source>
+ <translation>ändern</translation>
+ </message>
+</context>
+<context>
+ <name>FileDialogButtons</name>
+ <message>
+ <source>Form1</source>
+ <translation>Form1</translation>
+ </message>
+ <message>
+ <source>Global</source>
+ <translation>Global</translation>
+ </message>
+ <message>
+ <source>User</source>
+ <translation>Benutzer</translation>
+ </message>
+ <message>
+ <source>Project</source>
+ <translation>Projekt</translation>
+ </message>
+ <message>
+ <source>Load:</source>
+ <translation>Laden:</translation>
+ </message>
+ <message>
+ <source>Songdata +
+Cofiguration</source>
+ <translation>Lieddaten +
+Konfiguration</translation>
+ </message>
+ <message>
+ <source>only
+Songdata</source>
+ <translation>Nur Lieddaten</translation>
+ </message>
+</context>
+<context>
+ <name>FontSel</name>
+ <message>
+ <source>Size:</source>
+ <translation>Größe:</translation>
+ </message>
+</context>
+<context>
+ <name>GateTimeBase</name>
+ <message>
+ <source>MusE: Modify Gate Time</source>
+ <translation>MusE: Gate Zeit ändern</translation>
+ </message>
+ <message>
+ <source>Range</source>
+ <translation>Bereich</translation>
+ </message>
+ <message>
+ <source>All Events</source>
+ <translation>Alle Ereignisse</translation>
+ </message>
+ <message>
+ <source>Selected Events</source>
+ <translation>Ausgewählte Ereignisse</translation>
+ </message>
+ <message>
+ <source>Looped Events</source>
+ <translation>Ereignisse innerhalb Schleife</translation>
+ </message>
+ <message>
+ <source>Selected &amp; Looped</source>
+ <translation>Ausgewählt &amp; innerhalb der Schleife</translation>
+ </message>
+ <message>
+ <source>Values</source>
+ <translation>Werte</translation>
+ </message>
+ <message>
+ <source>Rate:</source>
+ <translation>Rate:</translation>
+ </message>
+ <message>
+ <source>Offset:</source>
+ <translation>Zeitversatz:</translation>
+ </message>
+ <message>
+ <source>%</source>
+ <translation>%</translation>
+ </message>
+ <message>
+ <source>OK</source>
+ <translation>Bestätigen</translation>
+ </message>
+ <message>
+ <source>Cancel</source>
+ <translation>Abbrechen</translation>
+ </message>
+</context>
+<context>
+ <name>GlobalSettingsDialogBase</name>
+ <message>
+ <source>MusE: Global Settings</source>
+ <translation>MusE: Globale Einstellungen</translation>
+ </message>
+ <message>
+ <source>Audio</source>
+ <translation>Audio</translation>
+ </message>
+ <message>
+ <source>Mixer</source>
+ <translation>Mischpult</translation>
+ </message>
+ <message>
+ <source>dB</source>
+ <translation>dB</translation>
+ </message>
+ <message>
+ <source>min. Meter Value</source>
+ <translation>min. Pegelreglerwerte</translation>
+ </message>
+ <message>
+ <source>min.Slider Val</source>
+ <translation>min. Schiebereglerwerte</translation>
+ </message>
+ <message>
+ <source>Midi</source>
+ <translation>Midi</translation>
+ </message>
+ <message>
+ <source>Ticks</source>
+ <translation>Ticks</translation>
+ </message>
+ <message>
+ <source>1024</source>
+ <translation>1024</translation>
+ </message>
+ <message>
+ <source>2048</source>
+ <translation>2048</translation>
+ </message>
+ <message>
+ <source>4096</source>
+ <translation>4096</translation>
+ </message>
+ <message>
+ <source>8172</source>
+ <translation>8172</translation>
+ </message>
+ <message>
+ <source>Displayed Resolution
+(Ticks/Quarternote)</source>
+ <translation>Angezeigte Auflösung
+(Ticks/Viertelnote)</translation>
+ </message>
+ <message>
+ <source>48</source>
+ <translation>48</translation>
+ </message>
+ <message>
+ <source>96</source>
+ <translation>96</translation>
+ </message>
+ <message>
+ <source>192</source>
+ <translation>192</translation>
+ </message>
+ <message>
+ <source>384</source>
+ <translation>384</translation>
+ </message>
+ <message>
+ <source>768</source>
+ <translation>768</translation>
+ </message>
+ <message>
+ <source>1536</source>
+ <translation>1536</translation>
+ </message>
+ <message>
+ <source>3072</source>
+ <translation>3072</translation>
+ </message>
+ <message>
+ <source>6144</source>
+ <translation>61144</translation>
+ </message>
+ <message>
+ <source>12288</source>
+ <translation>12288</translation>
+ </message>
+ <message>
+ <source>RTC Resolution
+(Ticks/Sec)</source>
+ <translation>RTC (RealTimeClock) Auflösung
+(Ticks/Sekunde)</translation>
+ </message>
+ <message>
+ <source>GUI</source>
+ <translation>GUI</translation>
+ </message>
+ <message>
+ <source>/sec</source>
+ <translation>/sek</translation>
+ </message>
+ <message>
+ <source>GUI Refresh Rate</source>
+ <translation>GUI Aktualisierungsrate</translation>
+ </message>
+ <message>
+ <source>&amp;Apply</source>
+ <translation>&amp;Anwenden</translation>
+ </message>
+ <message>
+ <source>&amp;Ok</source>
+ <translation>&amp;Bestätigen</translation>
+ </message>
+ <message>
+ <source>&amp;Cancel</source>
+ <translation>Abb&amp;rechen</translation>
+ </message>
+ <message>
+ <source>Help Browser:</source>
+ <translation>Hilfe Browser:</translation>
+ </message>
+ <message>
+ <source>Application</source>
+ <translation>Anwendung</translation>
+ </message>
+ <message>
+ <source>Start Muse</source>
+ <translation>MusE starten</translation>
+ </message>
+ <message>
+ <source>start with last song</source>
+ <translation>Mit letztem Lied starten</translation>
+ </message>
+ <message>
+ <source>start with song</source>
+ <translation>Mit bestimmtem Lied starten</translation>
+ </message>
+ <message>
+ <source>start song:</source>
+ <translation>Startlied:</translation>
+ </message>
+ <message>
+ <source>Views</source>
+ <translation>Ansichten</translation>
+ </message>
+ <message>
+ <source>y-pos</source>
+ <translation>y-pos</translation>
+ </message>
+ <message>
+ <source>show</source>
+ <translation>zeigen</translation>
+ </message>
+ <message>
+ <source>x-pos</source>
+ <translation>x-pos</translation>
+ </message>
+ <message>
+ <source>height</source>
+ <translation>Höhe</translation>
+ </message>
+ <message>
+ <source>width</source>
+ <translation>Breite</translation>
+ </message>
+ <message>
+ <source>Big Time</source>
+ <translation>Zeitanzeige groß</translation>
+ </message>
+ <message>
+ <source>Arranger</source>
+ <translation>Arrangierer</translation>
+ </message>
+ <message>
+ <source>Transport</source>
+ <translation>Transport</translation>
+ </message>
+ <message>
+ <source>Cur</source>
+ <translation>Jetzt</translation>
+ </message>
+ <message>
+ <source>set current values</source>
+ <translation>Jetzige Werte übernehmen</translation>
+ </message>
+ <message>
+ <source>start with template: default.med</source>
+ <translation>Mit Lied: default.med starten</translation>
+ </message>
+ <message>
+ <source>show splash screen</source>
+ <translation>Begrüßungsbild anzeigen</translation>
+ </message>
+</context>
+<context>
+ <name>LMaster</name>
+ <message>
+ <source>new tempo</source>
+ <translation>Neues Tempo</translation>
+ </message>
+ <message>
+ <source>new signature</source>
+ <translation>Neues Taktmaß</translation>
+ </message>
+ <message>
+ <source>Meter</source>
+ <translation>Taktposition</translation>
+ </message>
+ <message>
+ <source>Time</source>
+ <translation>Zeitposition</translation>
+ </message>
+ <message>
+ <source>Type</source>
+ <translation>Typ</translation>
+ </message>
+ <message>
+ <source>Value</source>
+ <translation>Wert</translation>
+ </message>
+ <message>
+ <source>MusE: Mastertrack</source>
+ <translation>MusE: Masterspur</translation>
+ </message>
+ <message>
+ <source>Tempo</source>
+ <translation>Tempo</translation>
+ </message>
+ <message>
+ <source>Timesig</source>
+ <translation>Taktmaß</translation>
+ </message>
+</context>
+<context>
+ <name>ListEdit</name>
+ <message>
+ <source>&amp;Edit</source>
+ <translation>B&amp;earbeiten</translation>
+ </message>
+ <message>
+ <source>Cut</source>
+ <translation>Ausschneiden</translation>
+ </message>
+ <message>
+ <source>Copy</source>
+ <translation>Kopieren</translation>
+ </message>
+ <message>
+ <source>Paste</source>
+ <translation>Einfügen</translation>
+ </message>
+ <message>
+ <source>List Tools</source>
+ <translation>Werkzeuge &quot;Liste&quot;</translation>
+ </message>
+ <message>
+ <source>Insert Tools</source>
+ <translation>Werkzeuge &quot;Einfügen&quot;</translation>
+ </message>
+ <message>
+ <source>Delete Events</source>
+ <translation>Ereignisse löschen</translation>
+ </message>
+ <message>
+ <source>Insert Note</source>
+ <translation>Note einfügen</translation>
+ </message>
+ <message>
+ <source>insert Note</source>
+ <translation>Note einfügen</translation>
+ </message>
+ <message>
+ <source>Insert SysEx</source>
+ <translation>SysEx einfügen</translation>
+ </message>
+ <message>
+ <source>insert SysEx</source>
+ <translation>SysEx einfügen</translation>
+ </message>
+ <message>
+ <source>Insert Ctrl</source>
+ <translation>Ctrl einfügen</translation>
+ </message>
+ <message>
+ <source>insert Ctrl</source>
+ <translation>ctrl einfügen</translation>
+ </message>
+ <message>
+ <source>Insert Meta</source>
+ <translation>Meta einfügen</translation>
+ </message>
+ <message>
+ <source>insert Meta</source>
+ <translation>Meta einfügen</translation>
+ </message>
+ <message>
+ <source>Insert Channel Aftertouch</source>
+ <translation>Channel Aftertouch einfügen</translation>
+ </message>
+ <message>
+ <source>insert Channel Aftertouch</source>
+ <translation>Channel Aftertouch einfügen</translation>
+ </message>
+ <message>
+ <source>Insert Key Aftertouch</source>
+ <translation>Key Aftertouch einfügen</translation>
+ </message>
+ <message>
+ <source>insert Poly Aftertouch</source>
+ <translation>Poly Aftertouch einfügen</translation>
+ </message>
+ <message>
+ <source>Tick</source>
+ <translation>Tick</translation>
+ </message>
+ <message>
+ <source>Bar</source>
+ <translation>Takt</translation>
+ </message>
+ <message>
+ <source>Typ</source>
+ <translation>Typ</translation>
+ </message>
+ <message>
+ <source>Ch</source>
+ <translation>K</translation>
+ </message>
+ <message>
+ <source>Val A</source>
+ <translation>Wert A</translation>
+ </message>
+ <message>
+ <source>Val B</source>
+ <translation>Wert B</translation>
+ </message>
+ <message>
+ <source>Val C</source>
+ <translation>Wert C</translation>
+ </message>
+ <message>
+ <source>Len</source>
+ <translation>Länge</translation>
+ </message>
+ <message>
+ <source>Comment</source>
+ <translation>Kommentar</translation>
+ </message>
+</context>
+<context>
+ <name>MITTransposeBase</name>
+ <message>
+ <source>MusE: Midi Input Plugin: Transpose</source>
+ <translation>MusE: Midi Eingang PlugIn: Transponieren</translation>
+ </message>
+ <message>
+ <source>On</source>
+ <translation>An</translation>
+ </message>
+ <message>
+ <source>TriggerKey</source>
+ <translation>Auslösertaste</translation>
+ </message>
+ <message>
+ <source>Transpose:</source>
+ <translation>Transponieren:</translation>
+ </message>
+ <message>
+ <source>+0</source>
+ <translation>+0</translation>
+ </message>
+</context>
+<context>
+ <name>MPConfig</name>
+ <message>
+ <source>none</source>
+ <translation>kein</translation>
+ </message>
+ <message>
+ <source>Port</source>
+ <translation>Anschluss</translation>
+ </message>
+ <message>
+ <source>GUI</source>
+ <translation>GUI</translation>
+ </message>
+ <message>
+ <source>Instrument</source>
+ <translation>Instrument</translation>
+ </message>
+ <message>
+ <source>Device Name</source>
+ <translation>Gerätename</translation>
+ </message>
+ <message>
+ <source>State</source>
+ <translation>Status</translation>
+ </message>
+ <message>
+ <source>unknown</source>
+ <translation>unbekannt</translation>
+ </message>
+ <message>
+ <source>I</source>
+ <translation>E</translation>
+ </message>
+ <message>
+ <source>O</source>
+ <translation>A</translation>
+ </message>
+</context>
+<context>
+ <name>MRConfigBase</name>
+ <message>
+ <source>MusE: Midi Input Plugin: Remote Control</source>
+ <translation>MusE: Midi Eingang PlugIn: Fernbedienung</translation>
+ </message>
+ <message>
+ <source>Activate</source>
+ <translation>Einschalten</translation>
+ </message>
+ <message>
+ <source>On</source>
+ <translation>An</translation>
+ </message>
+ <message>
+ <source>Actions</source>
+ <translation>Funktionen</translation>
+ </message>
+ <message>
+ <source>Stop</source>
+ <translation>Stopp</translation>
+ </message>
+ <message>
+ <source>Record</source>
+ <translation>Aufnahme</translation>
+ </message>
+ <message>
+ <source>Goto Left Mark</source>
+ <translation>Zum linken Marker bewegen</translation>
+ </message>
+ <message>
+ <source>Play</source>
+ <translation>Wiedergabe</translation>
+ </message>
+</context>
+<context>
+ <name>MTScale</name>
+ <message>
+ <source>bar scale</source>
+ <translation>Taktposition</translation>
+ </message>
+</context>
+<context>
+ <name>MarkerView</name>
+ <message>
+ <source>Bar:Beat:Tick</source>
+ <translation>Takt:Schlag:Tick</translation>
+ </message>
+ <message>
+ <source>Hr:Mn:Sc:Fr:Sf</source>
+ <translation>Std:Min:Sek:R:SR</translation>
+ </message>
+ <message>
+ <source>Lock</source>
+ <translation>Sperre</translation>
+ </message>
+ <message>
+ <source>Text</source>
+ <translation>Text</translation>
+ </message>
+ <message>
+ <source>Marker Properties</source>
+ <translation>Marker Eigenschaften</translation>
+ </message>
+ <message>
+ <source>MusE: Marker</source>
+ <translation>MusE: Marker</translation>
+ </message>
+ <message>
+ <source>add marker</source>
+ <translation>Marker hinzufügen</translation>
+ </message>
+ <message>
+ <source>Add Marker</source>
+ <translation>Marker hinzufügen</translation>
+ </message>
+ <message>
+ <source>delete marker</source>
+ <translation>Marker löschen</translation>
+ </message>
+ <message>
+ <source>Delete Marker</source>
+ <translation>Marker löschen</translation>
+ </message>
+ <message>
+ <source>&amp;File</source>
+ <translation>&amp;Datei</translation>
+ </message>
+ <message>
+ <source>&amp;Edit</source>
+ <translation>&amp;Bearbeiten</translation>
+ </message>
+</context>
+<context>
+ <name>MasterEdit</name>
+ <message>
+ <source>Cursor</source>
+ <translation>Positionsmarker</translation>
+ </message>
+ <message>
+ <source>Snap</source>
+ <translation>Magnet</translation>
+ </message>
+ <message>
+ <source>time at cursor position</source>
+ <translation>Zeit an aktuellem Positionsmarker</translation>
+ </message>
+ <message>
+ <source>tempo at cursor position</source>
+ <translation>Tempo an aktuellem Positionsmarker</translation>
+ </message>
+ <message>
+ <source>CurPos </source>
+ <translation>AktPos</translation>
+ </message>
+ <message>
+ <source>tempo at current position</source>
+ <translation>Tempo an aktuellem Positionsmarker</translation>
+ </message>
+ <message>
+ <source>time signature at current position</source>
+ <translation>Taktmaß an aktuellem Positionsmarker</translation>
+ </message>
+ <message>
+ <source>MusE: Mastertrack</source>
+ <translation>MusE: Masterspur</translation>
+ </message>
+ <message>
+ <source>edit tools</source>
+ <translation>Werkzeuge &quot;Bearbeitung&quot;</translation>
+ </message>
+ <message>
+ <source>EnableMaster</source>
+ <translation>Master aktivieren</translation>
+ </message>
+ <message>
+ <source>Info</source>
+ <translation>Info</translation>
+ </message>
+ <message>
+ <source>Off</source>
+ <translation>Aus
+</translation>
+ </message>
+ <message>
+ <source>Enable</source>
+ <translation>Einschalten</translation>
+ </message>
+ <message>
+ <source>Enable usage of master track</source>
+ <translation>Verwendung der Masterspur einschalten</translation>
+ </message>
+</context>
+<context>
+ <name>MetronomeConfigBase</name>
+ <message>
+ <source>MusE: Metronome Config</source>
+ <translation>MusE: Metronom Konfiguration</translation>
+ </message>
+ <message>
+ <source>Metronome</source>
+ <translation>Metronom</translation>
+ </message>
+ <message>
+ <source>Audio Beep</source>
+ <translation>Interner PC Lautsprecher</translation>
+ </message>
+ <message>
+ <source>MIDI Click</source>
+ <translation>MIDI Klick</translation>
+ </message>
+ <message>
+ <source>Midi Channel</source>
+ <translation>Midi Kanal</translation>
+ </message>
+ <message>
+ <source>Measure Note</source>
+ <translation>Midi Note Taktbeginn</translation>
+ </message>
+ <message>
+ <source>Measure Velocity</source>
+ <translation>Midi Note Taktschlag</translation>
+ </message>
+ <message>
+ <source>Beat Velocity</source>
+ <translation>Taktbeginn Anschlagstärke</translation>
+ </message>
+ <message>
+ <source>Beat Note</source>
+ <translation>Taktschlag Anschlagstärke</translation>
+ </message>
+ <message>
+ <source>Midi Port</source>
+ <translation>Midi Anschluss</translation>
+ </message>
+ <message>
+ <source>Precount</source>
+ <translation>Einzählen</translation>
+ </message>
+ <message>
+ <source>enable</source>
+ <translation>einschalten</translation>
+ </message>
+ <message>
+ <source>Bars</source>
+ <translation>Takte</translation>
+ </message>
+ <message>
+ <source>From Mastertrack</source>
+ <translation>Von der Masterspur</translation>
+ </message>
+ <message>
+ <source>/</source>
+ <translation>/</translation>
+ </message>
+ <message>
+ <source>Signature</source>
+ <translation>Taktmaß</translation>
+ </message>
+ <message>
+ <source>Prerecord</source>
+ <translation>Aufnahme ab Einzählen</translation>
+ </message>
+ <message>
+ <source>Preroll</source>
+ <translation>Vorlauf</translation>
+ </message>
+ <message>
+ <source>&amp;Apply</source>
+ <translation>&amp;Anwenden</translation>
+ </message>
+ <message>
+ <source>&amp;OK</source>
+ <translation>&amp;Bestätigen</translation>
+ </message>
+ <message>
+ <source>&amp;Cancel</source>
+ <translation>Abb&amp;rechen</translation>
+ </message>
+</context>
+<context>
+ <name>MidiController</name>
+ <message>
+ <source>Velocity</source>
+ <translation>Velocity</translation>
+ </message>
+</context>
+<context>
+ <name>MidiControllerEditDialogBase</name>
+ <message>
+ <source>Type </source>
+ <translation>Typ</translation>
+ </message>
+ <message>
+ <source>Properties</source>
+ <translation>Eigenschaften</translation>
+ </message>
+ <message>
+ <source>Type</source>
+ <translation>Typ</translation>
+ </message>
+ <message>
+ <source>&amp;New</source>
+ <translation type="obsolete">Neu</translation>
+ </message>
+ <message>
+ <source>&amp;Delete</source>
+ <translation>&amp;Löschen</translation>
+ </message>
+ <message>
+ <source>&amp;OK</source>
+ <translation>&amp;Bestätigen</translation>
+ </message>
+ <message>
+ <source>&amp;Cancel</source>
+ <translation>Abb&amp;rechen</translation>
+ </message>
+ <message>
+ <source>MusE: Define Midi Controller</source>
+ <translation>MusE: Midi Kontroller definieren</translation>
+ </message>
+ <message>
+ <source>&amp;Add</source>
+ <translation>&amp;Hinzufügen</translation>
+ </message>
+ <message>
+ <source>Alt+A</source>
+ <translation>Alt+A</translation>
+ </message>
+ <message>
+ <source>create new entry</source>
+ <translation>Neuen Eintrag erzeugen</translation>
+ </message>
+ <message>
+ <source>pressing the New button you create a new entry
+in the MusE list of defined controllers</source>
+ <translation>Durch Klicken der Schaltfläche &quot;Neu&quot; einen neuen Eintrag erzeugen
+in der MusE Liste &quot;Definierte Kontroller&quot;</translation>
+ </message>
+ <message>
+ <source>delete selected entry</source>
+ <translation>Ausgewählten Eintrag löschen</translation>
+ </message>
+ <message>
+ <source>Predefined Controller:</source>
+ <translation>Vordefinierte Kontroller:</translation>
+ </message>
+ <message>
+ <source>Name </source>
+ <translation>Name</translation>
+ </message>
+ <message>
+ <source>H-Ctrl</source>
+ <translation>H-Ctrl</translation>
+ </message>
+ <message>
+ <source>L-Ctrl</source>
+ <translation>L-Ctrl</translation>
+ </message>
+ <message>
+ <source>Min Val</source>
+ <translation>Min Wert</translation>
+ </message>
+ <message>
+ <source>Max Val</source>
+ <translation>Max Wert</translation>
+ </message>
+ <message>
+ <source>list of defined controllers</source>
+ <translation>Liste definierter Kontroller</translation>
+ </message>
+ <message>
+ <source>This is the MusE list of defined controllers.</source>
+ <translation>Dies ist die MusE Liste definierter Kontroller.</translation>
+ </message>
+ <message>
+ <source>Managed Controller for Port</source>
+ <translation>Verwendeter Kontroller für Anschluss</translation>
+ </message>
+ <message>
+ <source>Channel</source>
+ <translation>Kanal</translation>
+ </message>
+ <message>
+ <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>Dies ist eine Liste oft standardisierter Midi Kontroller.
+Beachte dass in MusE Tonhöhen- und Programmwechselbefehle wie Midikontroller behandelt werden.</translation>
+ </message>
+ <message>
+ <source>Name</source>
+ <translation>Name</translation>
+ </message>
+ <message>
+ <source>Min Value</source>
+ <translation>Min Wert</translation>
+ </message>
+ <message>
+ <source>Max Value</source>
+ <translation>Max Wert</translation>
+ </message>
+ <message>
+ <source>Control7</source>
+ <translation>Kontroller7</translation>
+ </message>
+ <message>
+ <source>Control14</source>
+ <translation>Kontroller14</translation>
+ </message>
+ <message>
+ <source>RPN</source>
+ <translation>RPN</translation>
+ </message>
+ <message>
+ <source>NRPN</source>
+ <translation>NRPN</translation>
+ </message>
+ <message>
+ <source>Pitch</source>
+ <translation>Tonhöhe</translation>
+ </message>
+ <message>
+ <source>Program</source>
+ <translation>Programm</translation>
+ </message>
+ <message>
+ <source>Midi Controller Number High Byte</source>
+ <translation>Midi Kontrollernummer höchstwertiges Byte</translation>
+ </message>
+ <message>
+ <source>Midi Controller Number Low Byte</source>
+ <translation>Midi Kontrollernummer niederwertigstes Byte</translation>
+ </message>
+ <message>
+ <source>Range</source>
+ <translation>Bereich</translation>
+ </message>
+</context>
+<context>
+ <name>MidiFilterConfigBase</name>
+ <message>
+ <source>MusE: Midi Input Filter</source>
+ <translation>MusE: Midi Eingangsfilter</translation>
+ </message>
+ <message>
+ <source>Record Filter</source>
+ <translation>Aufnahme Filter</translation>
+ </message>
+ <message>
+ <source>Note On</source>
+ <translation>Note an</translation>
+ </message>
+ <message>
+ <source>Poly Pressure</source>
+ <translation>Poly Anschlagsdruck</translation>
+ </message>
+ <message>
+ <source>Controller</source>
+ <translation>Kontroller</translation>
+ </message>
+ <message>
+ <source>Program Change</source>
+ <translation>Programmwechsel</translation>
+ </message>
+ <message>
+ <source>After Touch</source>
+ <translation>Aftertouch</translation>
+ </message>
+ <message>
+ <source>Pitch Bend</source>
+ <translation>Pitch bend</translation>
+ </message>
+ <message>
+ <source>Sysex</source>
+ <translation>Sysex</translation>
+ </message>
+ <message>
+ <source>Thru Filter</source>
+ <translation>Thru Filter</translation>
+ </message>
+ <message>
+ <source>Controller Filter</source>
+ <translation>Kontroller Filter</translation>
+ </message>
+ <message>
+ <source>Channel Filter</source>
+ <translation>Kanal Filter</translation>
+ </message>
+ <message>
+ <source>14</source>
+ <translation>14</translation>
+ </message>
+ <message>
+ <source>10</source>
+ <translation>10</translation>
+ </message>
+ <message>
+ <source>6</source>
+ <translation>6</translation>
+ </message>
+ <message>
+ <source>12</source>
+ <translation>12</translation>
+ </message>
+ <message>
+ <source>4</source>
+ <translation>4</translation>
+ </message>
+ <message>
+ <source>2</source>
+ <translation>2</translation>
+ </message>
+ <message>
+ <source>9</source>
+ <translation>9</translation>
+ </message>
+ <message>
+ <source>8</source>
+ <translation>8</translation>
+ </message>
+ <message>
+ <source>3</source>
+ <translation>3</translation>
+ </message>
+ <message>
+ <source>13</source>
+ <translation>13</translation>
+ </message>
+ <message>
+ <source>15</source>
+ <translation>15</translation>
+ </message>
+ <message>
+ <source>16</source>
+ <translation>16</translation>
+ </message>
+ <message>
+ <source>7</source>
+ <translation>7</translation>
+ </message>
+ <message>
+ <source>11</source>
+ <translation>11</translation>
+ </message>
+ <message>
+ <source>5</source>
+ <translation>5</translation>
+ </message>
+ <message>
+ <source>1</source>
+ <translation>1</translation>
+ </message>
+</context>
+<context>
+ <name>MidiInputTransformDialog</name>
+ <message>
+ <source>New</source>
+ <translation>Neu</translation>
+ </message>
+</context>
+<context>
+ <name>MidiInputTransformDialogBase</name>
+ <message>
+ <source>MusE: Midi Input Transformator</source>
+ <translation>MusE: Midi Eingang Transformator</translation>
+ </message>
+ <message>
+ <source>Filter</source>
+ <translation>Filter</translation>
+ </message>
+ <message>
+ <source>All</source>
+ <translation>alle</translation>
+ </message>
+ <message>
+ <source>Equal</source>
+ <translation>gleich</translation>
+ </message>
+ <message>
+ <source>Unequal</source>
+ <translation>ungleich</translation>
+ </message>
+ <message>
+ <source>Note</source>
+ <translation>Note</translation>
+ </message>
+ <message>
+ <source>Poly Pressure</source>
+ <translation>Poly Anschlagsdruck</translation>
+ </message>
+ <message>
+ <source>Control Change</source>
+ <translation>Kontrollerwechsel</translation>
+ </message>
+ <message>
+ <source>Aftertouch</source>
+ <translation>Aftertouch</translation>
+ </message>
+ <message>
+ <source>Pitch Bend</source>
+ <translation>Pitch bend</translation>
+ </message>
+ <message>
+ <source>NRPN</source>
+ <translation>NRPN</translation>
+ </message>
+ <message>
+ <source>RPN</source>
+ <translation>RPN</translation>
+ </message>
+ <message>
+ <source>Value 2</source>
+ <translation>Wert 2</translation>
+ </message>
+ <message>
+ <source>Value 1</source>
+ <translation>Wert 1</translation>
+ </message>
+ <message>
+ <source>Event Type</source>
+ <translation>Ereignistyp</translation>
+ </message>
+ <message>
+ <source>Ignore</source>
+ <translation>ignorieren</translation>
+ </message>
+ <message>
+ <source>Higher</source>
+ <translation>größer</translation>
+ </message>
+ <message>
+ <source>Lower</source>
+ <translation>kleiner</translation>
+ </message>
+ <message>
+ <source>Inside</source>
+ <translation>innerhalb</translation>
+ </message>
+ <message>
+ <source>Outside</source>
+ <translation>außerhalb</translation>
+ </message>
+ <message>
+ <source>Channel</source>
+ <translation>Kanal</translation>
+ </message>
+ <message>
+ <source>Port</source>
+ <translation>Anschluss</translation>
+ </message>
+ <message>
+ <source>Processing</source>
+ <translation>Bearbeitung</translation>
+ </message>
+ <message>
+ <source>Keep</source>
+ <translation>behalten</translation>
+ </message>
+ <message>
+ <source>Fix</source>
+ <translation>fest</translation>
+ </message>
+ <message>
+ <source>Plus</source>
+ <translation>plus</translation>
+ </message>
+ <message>
+ <source>Minus</source>
+ <translation>minus</translation>
+ </message>
+ <message>
+ <source>Multiply</source>
+ <translation>multiplizieren</translation>
+ </message>
+ <message>
+ <source>Divide</source>
+ <translation>dividieren</translation>
+ </message>
+ <message>
+ <source>Invert</source>
+ <translation>invertieren</translation>
+ </message>
+ <message>
+ <source>ScaleMap</source>
+ <translation>Notenbelegung</translation>
+ </message>
+ <message>
+ <source>Flip</source>
+ <translation>umdrehen</translation>
+ </message>
+ <message>
+ <source>Dyn</source>
+ <translation>Dyn</translation>
+ </message>
+ <message>
+ <source>Random</source>
+ <translation>zufällig</translation>
+ </message>
+ <message>
+ <source>Modules</source>
+ <translation>Module</translation>
+ </message>
+ <message>
+ <source>1</source>
+ <translation>1</translation>
+ </message>
+ <message>
+ <source>2</source>
+ <translation>2</translation>
+ </message>
+ <message>
+ <source>3</source>
+ <translation>3</translation>
+ </message>
+ <message>
+ <source>4</source>
+ <translation>4</translation>
+ </message>
+ <message>
+ <source>enable modul 1</source>
+ <translation>Modul 1 einschalten</translation>
+ </message>
+ <message>
+ <source>enable modul 2</source>
+ <translation>Modul 2 einschalten</translation>
+ </message>
+ <message>
+ <source>enable modul 3</source>
+ <translation>Modul 3 einschalten</translation>
+ </message>
+ <message>
+ <source>enable modul 4</source>
+ <translation>Modul 4 einschalten</translation>
+ </message>
+ <message>
+ <source>Preset</source>
+ <translation>Vorlage</translation>
+ </message>
+ <message>
+ <source>Name:</source>
+ <translation>Name:</translation>
+ </message>
+ <message>
+ <source>Comment:</source>
+ <translation>Kommentar:</translation>
+ </message>
+ <message>
+ <source>Function</source>
+ <translation>Funktion</translation>
+ </message>
+ <message>
+ <source>&amp;New</source>
+ <translation>&amp;Neu</translation>
+ </message>
+ <message>
+ <source>create new preset</source>
+ <translation>Neue Vorlage erzeugen</translation>
+ </message>
+ <message>
+ <source>&amp;Delete</source>
+ <translation>&amp;Löschen</translation>
+ </message>
+ <message>
+ <source>delete preset</source>
+ <translation>Vorlage löschen</translation>
+ </message>
+ <message>
+ <source>&amp;Dismiss</source>
+ <translation>&amp;Verwerfen</translation>
+ </message>
+ <message>
+ <source>PresetList</source>
+ <translation>Liste Vorlagen</translation>
+ </message>
+</context>
+<context>
+ <name>MidiPortRouteBase</name>
+ <message>
+ <source>MusE: Midi Port Routing</source>
+ <translation>MusE: Midi Anschluss Signalfluss</translation>
+ </message>
+ <message>
+ <source>Port 2</source>
+ <translation>Anschluss 2</translation>
+ </message>
+ <message>
+ <source>Output</source>
+ <translation>Ausgang</translation>
+ </message>
+ <message>
+ <source>Input</source>
+ <translation>Eingang</translation>
+ </message>
+</context>
+<context>
+ <name>MidiStrip</name>
+ <message>
+ <source>VariationSend</source>
+ <translation>VariationSend</translation>
+ </message>
+ <message>
+ <source>Var</source>
+ <translation>Var</translation>
+ </message>
+ <message>
+ <source>ReverbSend</source>
+ <translation>ReverbSend</translation>
+ </message>
+ <message>
+ <source>Rev</source>
+ <translation>Rev</translation>
+ </message>
+ <message>
+ <source>ChorusSend</source>
+ <translation>ChorusSend</translation>
+ </message>
+ <message>
+ <source>Cho</source>
+ <translation>Cho</translation>
+ </message>
+ <message>
+ <source>off</source>
+ <translation>aus</translation>
+ </message>
+ <message>
+ <source>dB</source>
+ <translation>dB</translation>
+ </message>
+ <message>
+ <source>Pan/Balance</source>
+ <translation>Pan/Balance</translation>
+ </message>
+ <message>
+ <source>Pan</source>
+ <translation>Pan</translation>
+ </message>
+ <message>
+ <source>record</source>
+ <translation>Aufnahme</translation>
+ </message>
+ <message>
+ <source>mute</source>
+ <translation>still</translation>
+ </message>
+ <message>
+ <source>pre fader listening</source>
+ <translation>Vor Regler abhören</translation>
+ </message>
+ <message>
+ <source>Route</source>
+ <translation>Signalfluss</translation>
+ </message>
+ <message>
+ <source>set routing</source>
+ <translation>Signalfluss einstellen</translation>
+ </message>
+ <message>
+ <source>Off</source>
+ <translation>aus</translation>
+ </message>
+ <message>
+ <source>Read</source>
+ <translation>lesen</translation>
+ </message>
+ <message>
+ <source>Touch</source>
+ <translation>berühren</translation>
+ </message>
+ <message>
+ <source>Write</source>
+ <translation>schreiben</translation>
+ </message>
+ <message>
+ <source>automation type</source>
+ <translation>Automatisationstyp</translation>
+ </message>
+</context>
+<context>
+ <name>MidiSyncConfigBase</name>
+ <message>
+ <source>MusE: Midi Sync</source>
+ <translation>MusE: Midi Sync</translation>
+ </message>
+ <message>
+ <source>Apply</source>
+ <translation>Anwenden</translation>
+ </message>
+ <message>
+ <source>Ok</source>
+ <translation>Bestätigen</translation>
+ </message>
+ <message>
+ <source>Cancel</source>
+ <translation>Abbrechen</translation>
+ </message>
+ <message>
+ <source>hour</source>
+ <translation>Stunde</translation>
+ </message>
+ <message>
+ <source>h</source>
+ <translation>Std</translation>
+ </message>
+ <message>
+ <source>minute</source>
+ <translation>Minute</translation>
+ </message>
+ <message>
+ <source>m</source>
+ <translation>min</translation>
+ </message>
+ <message>
+ <source>second</source>
+ <translation>Sekunde</translation>
+ </message>
+ <message>
+ <source>s</source>
+ <translation>Sek</translation>
+ </message>
+ <message>
+ <source>frame</source>
+ <translation>Rahmen</translation>
+ </message>
+ <message>
+ <source>f</source>
+ <translation>R</translation>
+ </message>
+ <message>
+ <source>subframe</source>
+ <translation>Subrahmen</translation>
+ </message>
+ <message>
+ <source>24</source>
+ <translation>24</translation>
+ </message>
+ <message>
+ <source>25</source>
+ <translation>25</translation>
+ </message>
+ <message>
+ <source>30D</source>
+ <translation>30D</translation>
+ </message>
+ <message>
+ <source>30N</source>
+ <translation>30N</translation>
+ </message>
+ <message>
+ <source>Id:</source>
+ <translation>Id:</translation>
+ </message>
+ <message>
+ <source>device id</source>
+ <translation>Geräte id</translation>
+ </message>
+ <message>
+ <source>Port:</source>
+ <translation>Anschluss:</translation>
+ </message>
+ <message>
+ <source>midi port</source>
+ <translation>Midi Anschluss</translation>
+ </message>
+ <message>
+ <source>Sync Source</source>
+ <translation>Sync Quelle</translation>
+ </message>
+ <message>
+ <source>accept MTC</source>
+ <translation>MTC erlauben</translation>
+ </message>
+ <message>
+ <source>accept Midi Clock</source>
+ <translation>Midi Clock erlauben</translation>
+ </message>
+ <message>
+ <source>accept MMC</source>
+ <translation>MMC erlauben</translation>
+ </message>
+ <message>
+ <source>Sync Gen</source>
+ <translation>Sync Gen</translation>
+ </message>
+ <message>
+ <source>Midi Time Code (MTC)</source>
+ <translation>Midi Time Code (MTC)</translation>
+ </message>
+ <message>
+ <source>Midi Clock</source>
+ <translation>Midi Clock</translation>
+ </message>
+ <message>
+ <source>Midi Machine Control (MMC)</source>
+ <translation>Midi Machine Control (MMC)</translation>
+ </message>
+ <message>
+ <source>Sync Mode</source>
+ <translation>Sync Modus</translation>
+ </message>
+ <message>
+ <source>Master</source>
+ <translation>Master</translation>
+ </message>
+ <message>
+ <source>Slave</source>
+ <translation>Sklave</translation>
+ </message>
+ <message>
+ <source>all</source>
+ <translation>alle</translation>
+ </message>
+ <message>
+ <source>MTC</source>
+ <translation>MTC</translation>
+ </message>
+ <message>
+ <source>Type:</source>
+ <translation>Typ:</translation>
+ </message>
+ <message>
+ <source>Offset:</source>
+ <translation>Zeitversatz:</translation>
+ </message>
+</context>
+<context>
+ <name>MidiTrackInfoBase</name>
+ <message>
+ <source>MusE: TrackInfo</source>
+ <translation>MusE: Spurinfo</translation>
+ </message>
+ <message>
+ <source>output channel</source>
+ <translation>Ausgangskanal</translation>
+ </message>
+ <message>
+ <source>all midi events are send to this output channel</source>
+ <translation>Alle Midi Ereignisse werden an diesen Ausgangskanal gesandt</translation>
+ </message>
+ <message>
+ <source>Track Info</source>
+ <translation>Spurinfo</translation>
+ </message>
+ <message>
+ <source>%</source>
+ <translation>%</translation>
+ </message>
+ <message>
+ <source>Track Name</source>
+ <translation>Spur Name</translation>
+ </message>
+ <message>
+ <source>output port</source>
+ <translation>Ausgangsanschluss</translation>
+ </message>
+ <message>
+ <source>off</source>
+ <translation>aus</translation>
+ </message>
+ <message>
+ <source>change stereo position</source>
+ <translation>Stereoposition tauschen</translation>
+ </message>
+ <message>
+ <source>OCh.</source>
+ <translation>AusgKan.</translation>
+ </message>
+ <message>
+ <source>???</source>
+ <translation>???</translation>
+ </message>
+ <message>
+ <source>select instrument patch</source>
+ <translation>Instrumentenpatch auswählen</translation>
+ </message>
+ <message>
+ <source>Transp.</source>
+ <translation>Transp.</translation>
+ </message>
+ <message>
+ <source>Volume</source>
+ <translation>Volume</translation>
+ </message>
+ <message>
+ <source>Channel Info</source>
+ <translation>Kanalinfo</translation>
+ </message>
+ <message>
+ <source>Pan</source>
+ <translation>Pan</translation>
+ </message>
+ <message>
+ <source>Delay</source>
+ <translation>Delay</translation>
+ </message>
+ <message>
+ <source>H-Bank</source>
+ <translation>H-Bank</translation>
+ </message>
+ <message>
+ <source>Compr.</source>
+ <translation>Kompr.</translation>
+ </message>
+ <message>
+ <source>L-Bank</source>
+ <translation>L-Bank</translation>
+ </message>
+ <message>
+ <source>Progr.</source>
+ <translation>Progr.</translation>
+ </message>
+ <message>
+ <source>Velocity</source>
+ <translation>Velocity</translation>
+ </message>
+ <message>
+ <source>Length</source>
+ <translation>Länge</translation>
+ </message>
+ <message>
+ <source>input ports</source>
+ <translation>Eingangsanschlüsse</translation>
+ </message>
+ <message>
+ <source>IChan.</source>
+ <translation>EingKan.</translation>
+ </message>
+ <message>
+ <source>input channels</source>
+ <translation>Eingangsknäle</translation>
+ </message>
+ <message>
+ <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>Ereignisse von allen gewählten Kanälen
+werden auf dieser Spur aufgenommen.
+Zur Aufnahme können mehrere Kanäle gewählt werden:
+<byte value="x9"/>1 2 3<byte value="x9"/>Aufnahme von den Kanälen 1 2 und 3
+<byte value="x9"/>1-3<byte value="x9"/>Aufnahme von den Kanälen 1 2 und 3
+<byte value="x9"/>1-3 5<byte value="x9"/>Aufnahme von den Kanälen 1 2 3 und 5
+</translation>
+ </message>
+ <message>
+ <source>record:</source>
+ <translation>aufnehmen:</translation>
+ </message>
+ <message>
+ <source>Rec</source>
+ <translation>Aufnahme</translation>
+ </message>
+ <message>
+ <source>add settings to song</source>
+ <translation>Einstellungen zum Lied hinzufügen</translation>
+ </message>
+ <message>
+ <source>Bank Select LSB</source>
+ <translation>Bank Wahl LSB</translation>
+ </message>
+ <message>
+ <source>Bank Select MSB</source>
+ <translation>Bank Wahl MSB</translation>
+ </message>
+</context>
+<context>
+ <name>MidiTransformDialogBase</name>
+ <message>
+ <source>MusE: Midi Transformator</source>
+ <translation>MusE: Midi Transformator</translation>
+ </message>
+ <message>
+ <source>&amp;New</source>
+ <translation>&amp;Neu</translation>
+ </message>
+ <message>
+ <source>&amp;Delete</source>
+ <translation>&amp;Löschen</translation>
+ </message>
+ <message>
+ <source>&amp;Apply</source>
+ <translation>&amp;Anwenden</translation>
+ </message>
+ <message>
+ <source>&amp;OK</source>
+ <translation>&amp;Bestätigen</translation>
+ </message>
+ <message>
+ <source>&amp;Cancel</source>
+ <translation>Abb&amp;rechen</translation>
+ </message>
+ <message>
+ <source>PresetList</source>
+ <translation>Vorlagenliste</translation>
+ </message>
+ <message>
+ <source>Processing</source>
+ <translation>Bearbeitung</translation>
+ </message>
+ <message>
+ <source>Event Type</source>
+ <translation>Ereignistyp</translation>
+ </message>
+ <message>
+ <source>Keep</source>
+ <translation>behalten</translation>
+ </message>
+ <message>
+ <source>Fix</source>
+ <translation>fest</translation>
+ </message>
+ <message>
+ <source>Note</source>
+ <translation>Note</translation>
+ </message>
+ <message>
+ <source>Poly Pressure</source>
+ <translation>Poly Andruckstärke</translation>
+ </message>
+ <message>
+ <source>Control Change</source>
+ <translation>Kontrollerwechsel</translation>
+ </message>
+ <message>
+ <source>Aftertouch</source>
+ <translation>Aftertouch</translation>
+ </message>
+ <message>
+ <source>Pitch Bend</source>
+ <translation>Pitch bend</translation>
+ </message>
+ <message>
+ <source>NRPN</source>
+ <translation>NRPN</translation>
+ </message>
+ <message>
+ <source>RPN</source>
+ <translation>RPN</translation>
+ </message>
+ <message>
+ <source>Plus</source>
+ <translation>plus</translation>
+ </message>
+ <message>
+ <source>Minus</source>
+ <translation>minus</translation>
+ </message>
+ <message>
+ <source>Multiply</source>
+ <translation>multiplizieren</translation>
+ </message>
+ <message>
+ <source>Divide</source>
+ <translation>dividieren</translation>
+ </message>
+ <message>
+ <source>Value 2</source>
+ <translation>Wert 2</translation>
+ </message>
+ <message>
+ <source>Invert</source>
+ <translation>umkehren</translation>
+ </message>
+ <message>
+ <source>ScaleMap</source>
+ <translation>Notenbelegung</translation>
+ </message>
+ <message>
+ <source>Flip</source>
+ <translation>umdrehen</translation>
+ </message>
+ <message>
+ <source>Dyn</source>
+ <translation>Dyn</translation>
+ </message>
+ <message>
+ <source>Random</source>
+ <translation>zufällig</translation>
+ </message>
+ <message>
+ <source>Value 1</source>
+ <translation>Wert 1</translation>
+ </message>
+ <message>
+ <source>Length</source>
+ <translation>Länge</translation>
+ </message>
+ <message>
+ <source>Position</source>
+ <translation>Zeitposition</translation>
+ </message>
+ <message>
+ <source>Filter</source>
+ <translation>Filter</translation>
+ </message>
+ <message>
+ <source>All</source>
+ <translation>alle</translation>
+ </message>
+ <message>
+ <source>Equal</source>
+ <translation>gleich</translation>
+ </message>
+ <message>
+ <source>Unequal</source>
+ <translation>ungleich</translation>
+ </message>
+ <message>
+ <source>Ignore</source>
+ <translation>ignorieren</translation>
+ </message>
+ <message>
+ <source>Higher</source>
+ <translation>größer</translation>
+ </message>
+ <message>
+ <source>Lower</source>
+ <translation>kleiner</translation>
+ </message>
+ <message>
+ <source>Inside</source>
+ <translation>innerhalb</translation>
+ </message>
+ <message>
+ <source>Outside</source>
+ <translation>außerhalb</translation>
+ </message>
+ <message>
+ <source>Bar Range</source>
+ <translation>Taktbereich</translation>
+ </message>
+ <message>
+ <source>Preset</source>
+ <translation>Vorlage</translation>
+ </message>
+ <message>
+ <source>Name:</source>
+ <translation>Name:</translation>
+ </message>
+ <message>
+ <source>Comment:</source>
+ <translation>Kommentar:</translation>
+ </message>
+ <message>
+ <source>Range</source>
+ <translation>Bereich</translation>
+ </message>
+ <message>
+ <source>process all events</source>
+ <translation>Alle Ereignisse verarbeiten</translation>
+ </message>
+ <message>
+ <source>selected tracks</source>
+ <translation>Ausgewählte Spuren</translation>
+ </message>
+ <message>
+ <source>inside loop</source>
+ <translation>Innerhalb der Schleife</translation>
+ </message>
+ <message>
+ <source>Function</source>
+ <translation>Funktion</translation>
+ </message>
+ <message>
+ <source>Select</source>
+ <translation>Auswählen</translation>
+ </message>
+ <message>
+ <source>Quantize</source>
+ <translation>Quantisieren</translation>
+ </message>
+ <message>
+ <source>Delete</source>
+ <translation>Löschen</translation>
+ </message>
+ <message>
+ <source>Transform</source>
+ <translation>Transformieren</translation>
+ </message>
+ <message>
+ <source>Insert</source>
+ <translation>Einfügen</translation>
+ </message>
+ <message>
+ <source>Copy</source>
+ <translation>Kopieren</translation>
+ </message>
+ <message>
+ <source>Extract</source>
+ <translation>Entnehmen</translation>
+ </message>
+ <message>
+ <source>Quantize Value</source>
+ <translation>Wert quantisieren</translation>
+ </message>
+</context>
+<context>
+ <name>MidiTransformerDialog</name>
+ <message>
+ <source>New</source>
+ <translation>Neu</translation>
+ </message>
+</context>
+<context>
+ <name>MixdownFileDialog</name>
+ <message>
+ <source>Wave Files (*.wav);;All Files (*)</source>
+ <translation>Wave Dateien (*.wav);;Alle Dateien (*)</translation>
+ </message>
+</context>
+<context>
+ <name>MixdownFileDialogBase</name>
+ <message>
+ <source>MusE: Set Mixdown Wavefile</source>
+ <translation>MusE: Wave Datei Abmischung einstellen</translation>
+ </message>
+ <message>
+ <source>&amp;OK</source>
+ <translation>&amp;Bestätigen</translation>
+ </message>
+ <message>
+ <source>&amp;Cancel</source>
+ <translation>Abb&amp;rechen</translation>
+ </message>
+ <message>
+ <source>File Path</source>
+ <translation>Dateipfad</translation>
+ </message>
+ <message>
+ <source>Channel</source>
+ <translation>Kanal</translation>
+ </message>
+ <message>
+ <source>Stereo</source>
+ <translation>Stereo</translation>
+ </message>
+ <message>
+ <source>Mono</source>
+ <translation>Mono</translation>
+ </message>
+ <message>
+ <source>5.1</source>
+ <translation>5.1</translation>
+ </message>
+ <message>
+ <source>wav,16 Bit</source>
+ <translation>wav, 16 Bit</translation>
+ </message>
+ <message>
+ <source>wav, 24 Bit</source>
+ <translation>wav, 24 Bit</translation>
+ </message>
+ <message>
+ <source>wav, 32 Bit (float)</source>
+ <translation>wav, 32 Bit (float)</translation>
+ </message>
+ <message>
+ <source>Format</source>
+ <translation>Format</translation>
+ </message>
+</context>
+<context>
+ <name>Mixer</name>
+ <message>
+ <source>Port</source>
+ <translation type="obsolete">Port</translation>
+ </message>
+</context>
+<context>
+ <name>MusE</name>
+ <message>
+ <source>&amp;File</source>
+ <translation>Lied&amp;datei</translation>
+ </message>
+ <message>
+ <source>Open &amp;Recent</source>
+ <translation>&amp;Letztes Lied öffnen</translation>
+ </message>
+ <message>
+ <source>Save &amp;As</source>
+ <translation>Lied &amp;sichern als</translation>
+ </message>
+ <message>
+ <source>Config &amp;Printer</source>
+ <translation type="obsolete">Druckerkonfiguration</translation>
+ </message>
+ <message>
+ <source>Import Midifile</source>
+ <translation>Mididatei importieren</translation>
+ </message>
+ <message>
+ <source>Export Midifile</source>
+ <translation>Mididatei exportieren</translation>
+ </message>
+ <message>
+ <source>Import Wave File</source>
+ <translation>Wavedatei importieren</translation>
+ </message>
+ <message>
+ <source>&amp;Quit</source>
+ <translation>&amp;Beenden</translation>
+ </message>
+ <message>
+ <source>&amp;Edit</source>
+ <translation>B&amp;earbeiten</translation>
+ </message>
+ <message>
+ <source>C&amp;ut</source>
+ <translation>&amp;Ausschneiden</translation>
+ </message>
+ <message>
+ <source>&amp;Copy</source>
+ <translation>&amp;Kopieren</translation>
+ </message>
+ <message>
+ <source>&amp;Paste</source>
+ <translation>Ei&amp;nfügen</translation>
+ </message>
+ <message>
+ <source>Delete Track</source>
+ <translation type="obsolete">Spur löschen</translation>
+ </message>
+ <message>
+ <source>Add Track</source>
+ <translation>Spur hinzufügen</translation>
+ </message>
+ <message>
+ <source>Select &amp;All</source>
+ <translation>Alles a&amp;uswählen</translation>
+ </message>
+ <message>
+ <source>&amp;Deselect All</source>
+ <translation>Alles ab&amp;wählen</translation>
+ </message>
+ <message>
+ <source>Invert &amp;Selection</source>
+ <translation>Auswa&amp;hl umkehren</translation>
+ </message>
+ <message>
+ <source>&amp;Inside Loop</source>
+ <translation>Bereich &amp;innerhalb der Schleife</translation>
+ </message>
+ <message>
+ <source>&amp;Outside Loop</source>
+ <translation>Bereich außerhalb der Schlei&amp;fe</translation>
+ </message>
+ <message>
+ <source>All &amp;Parts on Track</source>
+ <translation>Alle &amp;Parts der Spur</translation>
+ </message>
+ <message>
+ <source>Select</source>
+ <translation>Auswählen</translation>
+ </message>
+ <message>
+ <source>Drums</source>
+ <translation>Schlagzeug Editor</translation>
+ </message>
+ <message>
+ <source>List</source>
+ <translation>Listen Editor</translation>
+ </message>
+ <message>
+ <source>Graphic</source>
+ <translation>Graphischer Editor</translation>
+ </message>
+ <message>
+ <source>Mastertrack</source>
+ <translation>Masterspur</translation>
+ </message>
+ <message>
+ <source>Midi &amp;Transform</source>
+ <translation>Midi &amp;transformieren</translation>
+ </message>
+ <message>
+ <source>Modify Gate Time</source>
+ <translation>Gate Zeit ändern</translation>
+ </message>
+ <message>
+ <source>Modify Velocity</source>
+ <translation>Velocity ändern</translation>
+ </message>
+ <message>
+ <source>Crescendo</source>
+ <translation>Crescendo</translation>
+ </message>
+ <message>
+ <source>Transpose</source>
+ <translation>Transponieren</translation>
+ </message>
+ <message>
+ <source>Thin Out</source>
+ <translation>Daten ausdünnen</translation>
+ </message>
+ <message>
+ <source>Erase Event</source>
+ <translation>Ereignis löschen</translation>
+ </message>
+ <message>
+ <source>Note Shift</source>
+ <translation>Notenhöhe ändern</translation>
+ </message>
+ <message>
+ <source>Move Clock</source>
+ <translation></translation>
+ </message>
+ <message>
+ <source>Copy Measure</source>
+ <translation>Takt kopieren</translation>
+ </message>
+ <message>
+ <source>Erase Measure</source>
+ <translation>Takt löschen</translation>
+ </message>
+ <message>
+ <source>Delete Measure</source>
+ <translation>Takt entfernen</translation>
+ </message>
+ <message>
+ <source>Create Measure</source>
+ <translation>Takt erzeugen</translation>
+ </message>
+ <message>
+ <source>Mix Track</source>
+ <translation>Spur mischen</translation>
+ </message>
+ <message>
+ <source>Midi</source>
+ <translation>Midi</translation>
+ </message>
+ <message>
+ <source>&amp;Structure</source>
+ <translation>&amp;Struktur</translation>
+ </message>
+ <message>
+ <source>Global Cut</source>
+ <translation>Globaler Schnitt</translation>
+ </message>
+ <message>
+ <source>Global Insert</source>
+ <translation>Globales Einfügen</translation>
+ </message>
+ <message>
+ <source>Global Split</source>
+ <translation>Globales Aufteilen</translation>
+ </message>
+ <message>
+ <source>Copy Range</source>
+ <translation>Bereich kopieren</translation>
+ </message>
+ <message>
+ <source>Cut Events</source>
+ <translation>Ereignisse ausschneiden</translation>
+ </message>
+ <message>
+ <source>Transport Panel</source>
+ <translation>Transportkonsole</translation>
+ </message>
+ <message>
+ <source>Bigtime window</source>
+ <translation>Zeitanzeige groß</translation>
+ </message>
+ <message>
+ <source>dont follow Song</source>
+ <translation>Fenster folgt nicht dem Lied</translation>
+ </message>
+ <message>
+ <source>follow page</source>
+ <translation>Fenster folgt dem Lied seitenweise</translation>
+ </message>
+ <message>
+ <source>follow continuous</source>
+ <translation>Fenster folgt dem Lied ständig</translation>
+ </message>
+ <message>
+ <source>Global Settings</source>
+ <translation>Globale Einstellungen</translation>
+ </message>
+ <message>
+ <source>follow song</source>
+ <translation>Folge dem Lied</translation>
+ </message>
+ <message>
+ <source>Metronome</source>
+ <translation>Metronom</translation>
+ </message>
+ <message>
+ <source>Midi Sync</source>
+ <translation>Midi Sync</translation>
+ </message>
+ <message>
+ <source>Appearance settings</source>
+ <translation>Erscheinungsbild einstellen</translation>
+ </message>
+ <message>
+ <source>Midi Input Transform</source>
+ <translation>Midi Eingang transformieren</translation>
+ </message>
+ <message>
+ <source>Midi Input Filter</source>
+ <translation>Midi Eingangsfilter</translation>
+ </message>
+ <message>
+ <source>Midi Remote Control</source>
+ <translation>Midi Fernbedienung</translation>
+ </message>
+ <message>
+ <source>Random Rhythm Generator</source>
+ <translation>Zufälliger Rhythmusgenerator</translation>
+ </message>
+ <message>
+ <source>&amp;Midi</source>
+ <translation>&amp;Midi</translation>
+ </message>
+ <message>
+ <source>Mixer</source>
+ <translation>Mischpult</translation>
+ </message>
+ <message>
+ <source>Input Plugins</source>
+ <translation>Eingangs-PlugIns</translation>
+ </message>
+ <message>
+ <source>Reset Instr.</source>
+ <translation>Rücksetzen Instr.</translation>
+ </message>
+ <message>
+ <source>Init Instr.</source>
+ <translation>Initialisieren Instr.</translation>
+ </message>
+ <message>
+ <source>local off</source>
+ <translation>Lokal off</translation>
+ </message>
+ <message>
+ <source>&amp;Audio</source>
+ <translation>&amp;Audio</translation>
+ </message>
+ <message>
+ <source>Bounce to Track</source>
+ <translation>Auf Spur abmischen</translation>
+ </message>
+ <message>
+ <source>Bounce to File</source>
+ <translation>In Datei abmischen</translation>
+ </message>
+ <message>
+ <source>&amp;Help</source>
+ <translation>&amp;Hilfe</translation>
+ </message>
+ <message>
+ <source>Browser</source>
+ <translation type="obsolete">Browser</translation>
+ </message>
+ <message>
+ <source>About&amp;Qt</source>
+ <translation>Ãœber &amp;Qt</translation>
+ </message>
+ <message>
+ <source>MusE: load project</source>
+ <translation>Muse: Projekt laden</translation>
+ </message>
+ <message>
+ <source>The current Project contains unsaved data
+Save Current Project?</source>
+ <translation>Das aktuelle Projekt enthält ungesicherte Daten
+Aktuelles Projekt sichern?</translation>
+ </message>
+ <message>
+ <source>&amp;Save</source>
+ <translation>Lied &amp;sichern</translation>
+ </message>
+ <message>
+ <source>&amp;Nosave</source>
+ <translation>Lied &amp;nicht Sichern</translation>
+ </message>
+ <message>
+ <source>&amp;Abort</source>
+ <translation>&amp;Abbrechen</translation>
+ </message>
+ <message>
+ <source>MusE: Save As</source>
+ <translation>MusE: Lied sichern als</translation>
+ </message>
+ <message>
+ <source>Nothing to edit</source>
+ <translation>Es gibt Nichts zu editieren</translation>
+ </message>
+ <message>
+ <source>The current Project contains unsaved data
+Load overwrites current Project:
+Save Current Project?</source>
+ <translation>Das aktuelle Projekt enthält ungesicherte Daten
+Neues Lied laden überschreibt das aktuelle Projekt:
+Aktuelles Projekt sichern?</translation>
+ </message>
+ <message>
+ <source>&amp;Overwrite</source>
+ <translation>&amp;Ãœberschreiben</translation>
+ </message>
+ <message>
+ <source>no help found at: </source>
+ <translation>Hilfe wurde nicht gefunden:</translation>
+ </message>
+ <message>
+ <source>MusE: Open Help</source>
+ <translation>MusE: Hilfe öffnen</translation>
+ </message>
+ <message>
+ <source>UndoRedo</source>
+ <translation>Zurück Wiederholen</translation>
+ </message>
+ <message>
+ <source>undo</source>
+ <translation>Rücksetzen</translation>
+ </message>
+ <message>
+ <source>Und&amp;o</source>
+ <translation>&amp;Rücksetzen</translation>
+ </message>
+ <message>
+ <source>redo</source>
+ <translation>Wiederholen</translation>
+ </message>
+ <message>
+ <source>Re&amp;do</source>
+ <translation>&amp;Wiederholen</translation>
+ </message>
+ <message>
+ <source>undo last change to song</source>
+ <translation>Letzte Änderung am Lied rücksetzen</translation>
+ </message>
+ <message>
+ <source>redo last undo</source>
+ <translation>Letztes Rücksetzen wiederholen</translation>
+ </message>
+ <message>
+ <source>Transport</source>
+ <translation>Transport</translation>
+ </message>
+ <message>
+ <source>loop</source>
+ <translation>Schleife erzeugen</translation>
+ </message>
+ <message>
+ <source>Loop</source>
+ <translation>Schleife</translation>
+ </message>
+ <message>
+ <source>punchin</source>
+ <translation>Aufnahme am linken Marker beginnen</translation>
+ </message>
+ <message>
+ <source>Punchin</source>
+ <translation>Aufnahme am linken Marker beginnen</translation>
+ </message>
+ <message>
+ <source>punchout</source>
+ <translation>Aufnahme am rechten Marker beenden</translation>
+ </message>
+ <message>
+ <source>Punchout</source>
+ <translation>Aufnahme am rechten Marker beenden</translation>
+ </message>
+ <message>
+ <source>start</source>
+ <translation>Start</translation>
+ </message>
+ <message>
+ <source>Start</source>
+ <translation>Start</translation>
+ </message>
+ <message>
+ <source>rewind</source>
+ <translation>Einen Taktschlag rückwärts</translation>
+ </message>
+ <message>
+ <source>Rewind</source>
+ <translation>Einen Taktschlag rückwärts</translation>
+ </message>
+ <message>
+ <source>forward</source>
+ <translation>Einen Taktschlag vorwärts</translation>
+ </message>
+ <message>
+ <source>Forward</source>
+ <translation>Einen Taktschlag vorwärts</translation>
+ </message>
+ <message>
+ <source>stop</source>
+ <translation>Stopp</translation>
+ </message>
+ <message>
+ <source>Stop</source>
+ <translation>Stopp</translation>
+ </message>
+ <message>
+ <source>play</source>
+ <translation>Wiedergabe</translation>
+ </message>
+ <message>
+ <source>Play</source>
+ <translation>Wiedergabe</translation>
+ </message>
+ <message>
+ <source>record</source>
+ <translation>Aufnahme</translation>
+ </message>
+ <message>
+ <source>Record</source>
+ <translation>Aufnahme</translation>
+ </message>
+ <message>
+ <source>panic</source>
+ <translation>Panik</translation>
+ </message>
+ <message>
+ <source>Panic</source>
+ <translation>Panik</translation>
+ </message>
+ <message>
+ <source>new</source>
+ <translation>Neues Lied</translation>
+ </message>
+ <message>
+ <source>&amp;New</source>
+ <translation>&amp;Neues Lied</translation>
+ </message>
+ <message>
+ <source>open</source>
+ <translation>Öffnen</translation>
+ </message>
+ <message>
+ <source>&amp;Open</source>
+ <translation>Lied &amp;öffnen</translation>
+ </message>
+ <message>
+ <source>save</source>
+ <translation>Lied sichern</translation>
+ </message>
+ <message>
+ <source>pianoroll</source>
+ <translation>Pianorollen Editor</translation>
+ </message>
+ <message>
+ <source>Pianoroll</source>
+ <translation>Pianorollen Editor</translation>
+ </message>
+ <message>
+ <source>marker</source>
+ <translation>Marker</translation>
+ </message>
+ <message>
+ <source>Marker</source>
+ <translation>Marker</translation>
+ </message>
+ <message>
+ <source>File Buttons</source>
+ <translation>Schaltflächen</translation>
+ </message>
+ <message>
+ <source>Unknown File Format</source>
+ <translation>Unbekanntes Dateiformat</translation>
+ </message>
+ <message>
+ <source>MusE: Write File failed</source>
+ <translation>MusE: Datei schreiben schlug fehl</translation>
+ </message>
+ <message>
+ <source>MusE: Song: </source>
+ <translation>MusE: Lied:</translation>
+ </message>
+ <message>
+ <source>MusE: Copy Range</source>
+ <translation>MusE: Bereich kopieren</translation>
+ </message>
+ <message>
+ <source>not implemented</source>
+ <translation>Nicht umgesetzt</translation>
+ </message>
+ <message>
+ <source>MusE: Cut Events</source>
+ <translation>MusE: Ereignisse ausschneiden</translation>
+ </message>
+ <message>
+ <source>MusE: Bounce to Track</source>
+ <translation>MusE: Auf Spur abmischen</translation>
+ </message>
+ <message>
+ <source>more than one target track selected</source>
+ <translation>Mehr als eine Zielspur ausgewählt</translation>
+ </message>
+ <message>
+ <source>wrong target track type,
+select wave track as target</source>
+ <translation>Falscher Zielspurtyp,
+Wave Spur als Zielspur auswählen</translation>
+ </message>
+ <message>
+ <source>no target track selected</source>
+ <translation>Keine Zielspur ausgewählt</translation>
+ </message>
+ <message>
+ <source>to import a audio file you have first to selecta wave track</source>
+ <translation>Um eine Audiodatei zu importieren zuerst eine Wave Spur auswählen</translation>
+ </message>
+ <message>
+ <source>Delete Selected Tracks</source>
+ <translation>Ausgewählte Spuren löschen</translation>
+ </message>
+ <message>
+ <source>View</source>
+ <translation>Ansicht</translation>
+ </message>
+ <message>
+ <source>Edit Instrument</source>
+ <translation>Instrument bearbeiten</translation>
+ </message>
+ <message>
+ <source>Restart Audio</source>
+ <translation>Audio erneut starten</translation>
+ </message>
+ <message>
+ <source>Automation</source>
+ <translation>Automatisierung</translation>
+ </message>
+ <message>
+ <source>Mixer Automation</source>
+ <translation>Mischpult Automatisierung</translation>
+ </message>
+ <message>
+ <source>Take Snapshot</source>
+ <translation>Schnappschuss aufnehmen</translation>
+ </message>
+ <message>
+ <source>Clear Automation Data</source>
+ <translation>Automatisierungsdaten löschen</translation>
+ </message>
+ <message>
+ <source>Settings</source>
+ <translation>Einstellungen</translation>
+ </message>
+ <message>
+ <source>Configure shortcuts</source>
+ <translation>Tastenkürzel einstellen</translation>
+ </message>
+ <message>
+ <source>Midi File Export</source>
+ <translation>Midi Datei exportieren</translation>
+ </message>
+ <message>
+ <source>Midi Ports / Soft Synth</source>
+ <translation>Midi Anschlüsse / Software Synthesizer</translation>
+ </message>
+ <message>
+ <source>&amp;Manual</source>
+ <translation>&amp;Handbuch</translation>
+ </message>
+ <message>
+ <source>&amp;MusE homepage</source>
+ <translation>&amp;MusE Webseite</translation>
+ </message>
+ <message>
+ <source>&amp;Report Bug...</source>
+ <translation>&amp;Fehler melden ...</translation>
+ </message>
+ <message>
+ <source>&amp;About MusE</source>
+ <translation>&amp;Ãœber MusE</translation>
+ </message>
+ <message>
+ <source>What&apos;s &amp;This?</source>
+ <translation>Was ist &amp;das?</translation>
+ </message>
+ <message>
+ <source>Cannot read template</source>
+ <translation>Vorlage nicht lesbar</translation>
+ </message>
+ <message>
+ <source>File open error</source>
+ <translation>Fehler beim Datei öffnen</translation>
+ </message>
+ <message>
+ <source>File read error</source>
+ <translation>Fehler beim Datei lesen</translation>
+ </message>
+ <message>
+ <source>MusE: load template</source>
+ <translation>Muse: Vorlage laden</translation>
+ </message>
+ <message>
+ <source>MusE: Bounce</source>
+ <translation>MusE: Abmischen</translation>
+ </message>
+ <message>
+ <source>set left/right marker for bounce range</source>
+ <translation>Linken/rechten Marker für Abmischbereich einstellen</translation>
+ </message>
+ <message>
+ <source>MusE: Bounce to File</source>
+ <translation>MusE: In Datei abmischen</translation>
+ </message>
+ <message>
+ <source>no output track found</source>
+ <translation>Keine Ausgangsspur gefunden</translation>
+ </message>
+ <message>
+ <source>MusE: Export Midi</source>
+ <translation>MusE: Midi exportieren</translation>
+ </message>
+ <message>
+ <source>MusE: Import Midi</source>
+ <translation>MusE: Midi importieren</translation>
+ </message>
+ <message>
+ <source>Add midi file to current project?
+</source>
+ <translation>Mididatei zu aktuellem Lied hinzufügen?</translation>
+ </message>
+ <message>
+ <source>&amp;Add to Project</source>
+ <translation>Zu Lied hin&amp;zufügen</translation>
+ </message>
+ <message>
+ <source>&amp;Replace</source>
+ <translation>Erset&amp;zen</translation>
+ </message>
+ <message>
+ <source>reading midifile
+ </source>
+ <translation>Lese Mididatei</translation>
+ </message>
+ <message>
+ <source>
+failed: </source>
+ <translation>schlug fehl:</translation>
+ </message>
+</context>
+<context>
+ <name>NoteInfo</name>
+ <message>
+ <source>Start</source>
+ <translation>Start</translation>
+ </message>
+ <message>
+ <source>Len</source>
+ <translation>Länge</translation>
+ </message>
+ <message>
+ <source>Pitch</source>
+ <translation>Tonhöhe</translation>
+ </message>
+ <message>
+ <source>Velo On</source>
+ <translation>Velo an</translation>
+ </message>
+ <message>
+ <source>Velo Off</source>
+ <translation>Velo aus</translation>
+ </message>
+ <message>
+ <source>Note Info</source>
+ <translation>Noteninformation</translation>
+ </message>
+</context>
+<context>
+ <name>PageSettings</name>
+ <message>
+ <source>Track Name</source>
+ <translation type="obsolete">Spur Name</translation>
+ </message>
+</context>
+<context>
+ <name>PartCanvas</name>
+ <message>
+ <source>C&amp;ut</source>
+ <translation>&amp;Ausschneiden</translation>
+ </message>
+ <message>
+ <source>&amp;Copy</source>
+ <translation>&amp;Kopieren</translation>
+ </message>
+ <message>
+ <source>rename</source>
+ <translation>Umbenennen</translation>
+ </message>
+ <message>
+ <source>delete</source>
+ <translation>Löschen</translation>
+ </message>
+ <message>
+ <source>split</source>
+ <translation>Schnitt</translation>
+ </message>
+ <message>
+ <source>glue</source>
+ <translation>Verbinder</translation>
+ </message>
+ <message>
+ <source>pianoroll</source>
+ <translation>Pianorollen Editor</translation>
+ </message>
+ <message>
+ <source>list</source>
+ <translation>Listen Editor</translation>
+ </message>
+ <message>
+ <source>drums</source>
+ <translation>Schlagzeug Editor</translation>
+ </message>
+ <message>
+ <source>Cannot copy/move/clone to different Track-Type</source>
+ <translation>Kopieren/verschieben/klonen auf anderen Spurtyp nicht möglich</translation>
+ </message>
+ <message>
+ <source>color</source>
+ <translation>Farbe</translation>
+ </message>
+ <message>
+ <source>de-clone</source>
+ <translation>Entklonen</translation>
+ </message>
+ <message>
+ <source>wave edit</source>
+ <translation>Wave Editor</translation>
+ </message>
+ <message>
+ <source>Cannot paste: multiple tracks selected</source>
+ <translation>Einfügen nicht möglich: mehrere Spuren ausgewählt</translation>
+ </message>
+ <message>
+ <source>Cannot paste: no track selected</source>
+ <translation>Einfügen nicht möglich: keine Spur ausgewählt</translation>
+ </message>
+ <message>
+ <source>Cannot paste: wrong data type</source>
+ <translation>Einfügen nicht möglich: falscher Datentyp</translation>
+ </message>
+ <message>
+ <source>Can only paste to midi/drum track</source>
+ <translation>Einfügen möglich nur in Midi/Drum Spur </translation>
+ </message>
+ <message>
+ <source>Can only paste to wave track</source>
+ <translation>Einfügen möglich nur in Wave Spur</translation>
+ </message>
+</context>
+<context>
+ <name>PatchBay</name>
+ <message>
+ <source>MusE: ALSA MIDI Patch Bay</source>
+ <translation>MusE: ALSA Midi Verbindungsübersicht</translation>
+ </message>
+</context>
+<context>
+ <name>PatchBayBase</name>
+ <message>
+ <source>ALSA Patch Bay</source>
+ <translation>ALSA Verbindungsübersicht</translation>
+ </message>
+</context>
+<context>
+ <name>PianoRoll</name>
+ <message>
+ <source>&amp;Edit</source>
+ <translation>&amp;Bearbeiten</translation>
+ </message>
+ <message>
+ <source>Cut</source>
+ <translation>Ausschneiden</translation>
+ </message>
+ <message>
+ <source>Copy</source>
+ <translation>Kopieren</translation>
+ </message>
+ <message>
+ <source>Paste</source>
+ <translation>Einfügen</translation>
+ </message>
+ <message>
+ <source>Delete Events</source>
+ <translation>Ereignisse löschen</translation>
+ </message>
+ <message>
+ <source>Select All</source>
+ <translation>Alle auswählen</translation>
+ </message>
+ <message>
+ <source>Select None</source>
+ <translation>Nichts auswählen</translation>
+ </message>
+ <message>
+ <source>Invert</source>
+ <translation>Auswahl umkehren</translation>
+ </message>
+ <message>
+ <source>Inside Loop</source>
+ <translation>Auswahl innerhalb Schleife</translation>
+ </message>
+ <message>
+ <source>Outside Loop</source>
+ <translation>Auswahl außerhalb Schleife</translation>
+ </message>
+ <message>
+ <source>&amp;Select</source>
+ <translation>&amp;Auswählen</translation>
+ </message>
+ <message>
+ <source>blue</source>
+ <translation>Farbe blau</translation>
+ </message>
+ <message>
+ <source>pitch colors</source>
+ <translation>Farbe nach Tonhöhe</translation>
+ </message>
+ <message>
+ <source>velocity colors</source>
+ <translation>Farbe nach Anschlagsstärke</translation>
+ </message>
+ <message>
+ <source>&amp;Config</source>
+ <translation>&amp;Einstellen</translation>
+ </message>
+ <message>
+ <source>event color</source>
+ <translation>Ereignisfarbe</translation>
+ </message>
+ <message>
+ <source>&amp;Functions</source>
+ <translation>&amp;Funktionen</translation>
+ </message>
+ <message>
+ <source>Over Quantize</source>
+ <translation>Ãœberquantisieren</translation>
+ </message>
+ <message>
+ <source>Note On Quantize</source>
+ <translation>Wert &quot;Note an&quot; quantisieren</translation>
+ </message>
+ <message>
+ <source>Note On/Off Quantize</source>
+ <translation>Wert &quot;Note an/aus&quot; quantisieren</translation>
+ </message>
+ <message>
+ <source>Iterative Quantize</source>
+ <translation>Iteratives quantisieren</translation>
+ </message>
+ <message>
+ <source>Pianoroll Tools</source>
+ <translation>Werkzeug &quot;Pianorollen Editor&quot;</translation>
+ </message>
+ <message>
+ <source>Step Record</source>
+ <translation>Aufnahme taktschlagweise</translation>
+ </message>
+ <message>
+ <source>Midi Input</source>
+ <translation>Midi Eingang</translation>
+ </message>
+ <message>
+ <source>Play Events</source>
+ <translation>Ereignisse abspielen</translation>
+ </message>
+ <message>
+ <source>Add Controller View</source>
+ <translation>Kontrolleransicht hinzufügen</translation>
+ </message>
+ <message>
+ <source>Config Quant...</source>
+ <translation>Quantisierung einstellen ...</translation>
+ </message>
+ <message>
+ <source>Modify Gate Time</source>
+ <translation>Gate Zeit ändern</translation>
+ </message>
+ <message>
+ <source>Modify Velocity</source>
+ <translation>Velocity ändern</translation>
+ </message>
+ <message>
+ <source>Crescendo</source>
+ <translation>Crescendo</translation>
+ </message>
+ <message>
+ <source>Transpose</source>
+ <translation>Transponieren</translation>
+ </message>
+ <message>
+ <source>Thin Out</source>
+ <translation>Ausdünnen</translation>
+ </message>
+ <message>
+ <source>Erase Event</source>
+ <translation>Ereignis löschen</translation>
+ </message>
+ <message>
+ <source>Note Shift</source>
+ <translation>Note verschieben</translation>
+ </message>
+ <message>
+ <source>Move Clock</source>
+ <translation>Zeitposition verschieben</translation>
+ </message>
+ <message>
+ <source>Copy Measure</source>
+ <translation>Taktmaß kopieren</translation>
+ </message>
+ <message>
+ <source>Erase Measure</source>
+ <translation>Taktmaß löschen</translation>
+ </message>
+ <message>
+ <source>Delete Measure</source>
+ <translation>Taktmaß löschen</translation>
+ </message>
+ <message>
+ <source>Create Measure</source>
+ <translation>Taktmaß erzeugen</translation>
+ </message>
+ <message>
+ <source>ctrl</source>
+ <translation>Ktrl</translation>
+ </message>
+</context>
+<context>
+ <name>PluginDialog</name>
+ <message>
+ <source>Ok</source>
+ <translation>Bestätigen</translation>
+ </message>
+ <message>
+ <source>Cancel</source>
+ <translation>Abbrechen</translation>
+ </message>
+ <message>
+ <source>MusE: select plugin</source>
+ <translation>MusE: PlugIn wählen</translation>
+ </message>
+ <message>
+ <source>Lib</source>
+ <translation>Lib</translation>
+ </message>
+ <message>
+ <source>Label</source>
+ <translation>Beschriftung</translation>
+ </message>
+ <message>
+ <source>Name</source>
+ <translation>Name</translation>
+ </message>
+ <message>
+ <source>AI</source>
+ <translation>Al</translation>
+ </message>
+ <message>
+ <source>AO</source>
+ <translation>AO</translation>
+ </message>
+ <message>
+ <source>CI</source>
+ <translation>Cl</translation>
+ </message>
+ <message>
+ <source>CO</source>
+ <translation>CO</translation>
+ </message>
+ <message>
+ <source>IP</source>
+ <translation>IP</translation>
+ </message>
+ <message>
+ <source>id</source>
+ <translation>id</translation>
+ </message>
+ <message>
+ <source>Maker</source>
+ <translation>Erzeuger</translation>
+ </message>
+ <message>
+ <source>Copyright</source>
+ <translation>Copyright</translation>
+ </message>
+ <message>
+ <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>Typen in Liste dargestellter PlugIns auswählen, &quot;all&quot; beinhaltet auch in MusE womöglich nicht nutzbare PlugIns.</translation>
+ </message>
+ <message>
+ <source>Stereo and Mono</source>
+ <translation>Stereo und Mono</translation>
+ </message>
+ <message>
+ <source>Stereo</source>
+ <translation>Stereo</translation>
+ </message>
+ <message>
+ <source>Mono</source>
+ <translation>Mono</translation>
+ </message>
+ <message>
+ <source>All</source>
+ <translation>alle</translation>
+ </message>
+</context>
+<context>
+ <name>PluginGui</name>
+ <message>
+ <source>bypass plugin</source>
+ <translation>Signalfluss PlugIn umleiten</translation>
+ </message>
+ <message>
+ <source>MusE: load preset</source>
+ <translation>MusE: Vorlage laden</translation>
+ </message>
+ <message>
+ <source>MusE: save preset</source>
+ <translation>MusE: Vorlage sichern</translation>
+ </message>
+ <message>
+ <source>File Buttons</source>
+ <translation>Schaltfläche Datei</translation>
+ </message>
+ <message>
+ <source>Load Preset</source>
+ <translation></translation>
+ </message>
+ <message>
+ <source>Save Preset</source>
+ <translation>Speicher Preset</translation>
+ </message>
+</context>
+<context>
+ <name>QHeader</name>
+ <message>
+ <source>Port Number</source>
+ <translation>Anschlussnummer</translation>
+ </message>
+ <message>
+ <source>enable gui for device</source>
+ <translation>GUI für Gerät einschalten</translation>
+ </message>
+ <message>
+ <source>Instrument connected to port</source>
+ <translation>Instrument mit Anschluss verbunden</translation>
+ </message>
+ <message>
+ <source>State: result of opening the device</source>
+ <translation>Status: Ergebnis des Geräteanschlusses</translation>
+ </message>
+ <message>
+ <source>mute instrument</source>
+ <translation>Instrument still schalten</translation>
+ </message>
+ <message>
+ <source>sound name</source>
+ <translation>Klangname</translation>
+ </message>
+ <message>
+ <source>quantisation
+currently not used</source>
+ <translation>Quantisierung
+gegenwärtig nicht benutzt</translation>
+ </message>
+ <message>
+ <source>this input note triggers the sound</source>
+ <translation>Diese Eingangsnote löst den Klang aus</translation>
+ </message>
+ <message>
+ <source>note length</source>
+ <translation>Notenlänge</translation>
+ </message>
+ <message>
+ <source>this note is send for the sound</source>
+ <translation>Diese Note wird für den Klang verwendet</translation>
+ </message>
+ <message>
+ <source>output channel
+currently not used</source>
+ <translation>Ausgangskanal
+gegenwärtig nicht benutzt</translation>
+ </message>
+ <message>
+ <source>output port
+currently not used</source>
+ <translation>Ausgangsanschluss
+gegenwärtig nicht benutzt</translation>
+ </message>
+ <message>
+ <source>velocity level 1</source>
+ <translation>Velocity Pegel 1</translation>
+ </message>
+ <message>
+ <source>velocity level 2</source>
+ <translation>Velocity Pegel 2</translation>
+ </message>
+ <message>
+ <source>velocity level 3</source>
+ <translation>Velocity Pegel 3</translation>
+ </message>
+ <message>
+ <source>velocity level 4</source>
+ <translation>Velocity Pegel 4</translation>
+ </message>
+ <message>
+ <source>quantisation</source>
+ <translation>Quantisierung</translation>
+ </message>
+ <message>
+ <source>output channel</source>
+ <translation>Ausgangskanal</translation>
+ </message>
+ <message>
+ <source>output port</source>
+ <translation>Ausgangsanschluss</translation>
+ </message>
+ <message>
+ <source>Enable Recording</source>
+ <translation>Aufnahme einschalten</translation>
+ </message>
+ <message>
+ <source>Mute Indicator</source>
+ <translation>Anzeige &quot;Stille&quot;</translation>
+ </message>
+ <message>
+ <source>Solo Indicator</source>
+ <translation>Anzeige &quot;Solo&quot;</translation>
+ </message>
+ <message>
+ <source>Track Type</source>
+ <translation>Spurtyp</translation>
+ </message>
+ <message>
+ <source>Track Name</source>
+ <translation>Spurname</translation>
+ </message>
+ <message>
+ <source>Output Channel Number</source>
+ <translation>Ausgangskanalnummer</translation>
+ </message>
+ <message>
+ <source>Output Port</source>
+ <translation>Ausgangsanschluss</translation>
+ </message>
+ <message>
+ <source>Time Lock</source>
+ <translation>Sperre &quot;Zeit&quot;</translation>
+ </message>
+ <message>
+ <source>Solo/Pre Fader Listening</source>
+ <translation>Solo/Vor Regler Abhöre</translation>
+ </message>
+ <message>
+ <source>Name of the midi device associated with this port number</source>
+ <translation>Name des Midi Gerätes an dieser Anschlussnummer</translation>
+ </message>
+ <message>
+ <source>enables reading from device</source>
+ <translation>Auslesen vom Gerät ermöglichen</translation>
+ </message>
+ <message>
+ <source>enables writing to device</source>
+ <translation>Schreiben zum Gerät ermöglichen</translation>
+ </message>
+</context>
+<context>
+ <name>QWidget</name>
+ <message>
+ <source>Cannot convert sysex string</source>
+ <translation>Sysex Kette nicht umwandelbar</translation>
+ </message>
+ <message>
+ <source>Hex String too long (2048 bytes limit)</source>
+ <translation>Hex Kette ist zu lang (Grenze 2048 Bytes)</translation>
+ </message>
+ <message>
+ <source>new</source>
+ <translation>Neu</translation>
+ </message>
+ <message>
+ <source>create peakfile for </source>
+ <translation>Pegelspitzendatei erzeugen für</translation>
+ </message>
+ <message>
+ <source>MusE: get file name</source>
+ <translation>MusE: Dateinamen übermitteln</translation>
+ </message>
+ <message>
+ <source>the directory
+</source>
+ <translation>Das Verzeichnis</translation>
+ </message>
+ <message>
+ <source>
+does not exist
+create?</source>
+ <translation>Es besteht nicht
+Erzeugen?</translation>
+ </message>
+ <message>
+ <source>&amp;Create</source>
+ <translation>&amp;Erzeugen</translation>
+ </message>
+ <message>
+ <source>Cancel</source>
+ <translation>Abbrechen</translation>
+ </message>
+ <message>
+ <source>MusE: create directory</source>
+ <translation>MusE: Verzeichnis erzeugen</translation>
+ </message>
+ <message>
+ <source>creating dir failed</source>
+ <translation>Verzeichnis erzeugen schlug fehl</translation>
+ </message>
+ <message>
+ <source>File
+</source>
+ <translation>Datei</translation>
+ </message>
+ <message>
+ <source>
+exists</source>
+ <translation>besteht</translation>
+ </message>
+ <message>
+ <source>MusE: write</source>
+ <translation>MusE: schreiben</translation>
+ </message>
+ <message>
+ <source>Overwrite</source>
+ <translation>Ãœberschreiben</translation>
+ </message>
+ <message>
+ <source>Quit</source>
+ <translation>Beenden</translation>
+ </message>
+ <message>
+ <source>Open File
+</source>
+ <translation>Datei öffnen</translation>
+ </message>
+ <message>
+ <source>
+failed: </source>
+ <translation>schlug fehl:</translation>
+ </message>
+ <message>
+ <source>MusE: Open File</source>
+ <translation>MusE: Datei öffnen</translation>
+ </message>
+ <message>
+ <source>None</source>
+ <translation>Kein</translation>
+ </message>
+ <message>
+ <source>generic midi</source>
+ <translation>General Midi</translation>
+ </message>
+</context>
+<context>
+ <name>QuantConfig</name>
+ <message>
+ <source>Config Quantize</source>
+ <translation>Quantisierung einstellen</translation>
+ </message>
+ <message>
+ <source>Strength</source>
+ <translation>Stärke</translation>
+ </message>
+ <message>
+ <source>Don&#xb4;t Quantize</source>
+ <translation>Nicht quantisieren</translation>
+ </message>
+ <message>
+ <source>Quant Len</source>
+ <translation>Länge quantisieren</translation>
+ </message>
+ <message>
+ <source>MusE: Config Quantize</source>
+ <translation>MusE: Quantisierung einstellen</translation>
+ </message>
+</context>
+<context>
+ <name>RhythmBase</name>
+ <message>
+ <source>MusE: Random Rhythm Generator</source>
+ <translation>MusE: Rhythmus Zufallsgenerator</translation>
+ </message>
+ <message>
+ <source>Instrument Properties</source>
+ <translation>Instrumenteigenschaften</translation>
+ </message>
+ <message>
+ <source>counts/bar</source>
+ <translation>Schläge/Takt</translation>
+ </message>
+ <message>
+ <source>steps/count</source>
+ <translation>Schritte/Schlag</translation>
+ </message>
+ <message>
+ <source># bars</source>
+ <translation># Takte</translation>
+ </message>
+ <message>
+ <source>test</source>
+ <translation>testen</translation>
+ </message>
+ <message>
+ <source>contrib</source>
+ <translation>beitragen</translation>
+ </message>
+ <message>
+ <source>randomize</source>
+ <translation>zufällig anordnen</translation>
+ </message>
+ <message>
+ <source>Group 1</source>
+ <translation>Gruppe 1</translation>
+ </message>
+ <message>
+ <source>Group 2</source>
+ <translation>Gruppe 2</translation>
+ </message>
+ <message>
+ <source>Group 3</source>
+ <translation>Gruppe 3</translation>
+ </message>
+ <message>
+ <source>Group 4</source>
+ <translation>Gruppe 4</translation>
+ </message>
+ <message>
+ <source>Group 5</source>
+ <translation>Gruppe 5</translation>
+ </message>
+ <message>
+ <source>listen</source>
+ <translation>vorhören</translation>
+ </message>
+ <message>
+ <source>Instrument</source>
+ <translation>Instrument</translation>
+ </message>
+ <message>
+ <source>Group</source>
+ <translation>Gruppe</translation>
+ </message>
+ <message>
+ <source>&amp;New</source>
+ <translation>&amp;Neu</translation>
+ </message>
+ <message>
+ <source>create new entry</source>
+ <translation>Neuen Eintrag erzeugen</translation>
+ </message>
+ <message>
+ <source>pressing the New button you create a new entry
+in the MusE list of defined controllers</source>
+ <translation>Schaltfläche &quot;Neu&quot; klicken um einen neuen Eintrag
+in der MusE Liste definierter Kontroller zu erzeugen</translation>
+ </message>
+ <message>
+ <source>&amp;Delete</source>
+ <translation>&amp;Löschen</translation>
+ </message>
+ <message>
+ <source>delete selected entry</source>
+ <translation>Ausgewählten Eintrag löschen</translation>
+ </message>
+ <message>
+ <source>Up</source>
+ <translation>Nach oben</translation>
+ </message>
+ <message>
+ <source>Down</source>
+ <translation>Nach unten</translation>
+ </message>
+ <message>
+ <source>Instrument </source>
+ <translation>Instrument</translation>
+ </message>
+ <message>
+ <source>steps/count </source>
+ <translation>Schritte/Schlag</translation>
+ </message>
+ <message>
+ <source>list of defined controllers</source>
+ <translation>Liste definierter Kontroller</translation>
+ </message>
+ <message>
+ <source>This is the MusE list of defined controllers.</source>
+ <translation>Dies ist die MusE Liste definierter Kontroller.</translation>
+ </message>
+ <message>
+ <source>&amp;File</source>
+ <translation>&amp;Datei</translation>
+ </message>
+ <message>
+ <source>&amp;Edit</source>
+ <translation>&amp;Bearbeiten</translation>
+ </message>
+ <message>
+ <source>&amp;Help</source>
+ <translation>&amp;Hilfe</translation>
+ </message>
+ <message>
+ <source>Tools</source>
+ <translation>Werkzeuge</translation>
+ </message>
+ <message>
+ <source>New</source>
+ <translation>Neu</translation>
+ </message>
+ <message>
+ <source>Open</source>
+ <translation>Öffnen</translation>
+ </message>
+ <message>
+ <source>&amp;Open...</source>
+ <translation>&amp;Öffnen ...</translation>
+ </message>
+ <message>
+ <source>Save</source>
+ <translation>Sichern</translation>
+ </message>
+ <message>
+ <source>&amp;Save</source>
+ <translation>&amp;Sichern</translation>
+ </message>
+ <message>
+ <source>Save As</source>
+ <translation>Sichern als</translation>
+ </message>
+ <message>
+ <source>Save &amp;As...</source>
+ <translation>S&amp;ichern als ...</translation>
+ </message>
+ <message>
+ <source>Print</source>
+ <translation>Drucken</translation>
+ </message>
+ <message>
+ <source>&amp;Print...</source>
+ <translation>&amp;Drucken ...</translation>
+ </message>
+ <message>
+ <source>Exit</source>
+ <translation>Beenden</translation>
+ </message>
+ <message>
+ <source>E&amp;xit</source>
+ <translation>Bee&amp;nden</translation>
+ </message>
+ <message>
+ <source>Undo</source>
+ <translation>Rckgängig</translation>
+ </message>
+ <message>
+ <source>&amp;Undo</source>
+ <translation>&amp;Rückgängig</translation>
+ </message>
+ <message>
+ <source>Redo</source>
+ <translation>Wiederherstellen</translation>
+ </message>
+ <message>
+ <source>&amp;Redo</source>
+ <translation>&amp;Wiederherstellen</translation>
+ </message>
+ <message>
+ <source>Cut</source>
+ <translation>Ausschneiden</translation>
+ </message>
+ <message>
+ <source>&amp;Cut</source>
+ <translation>A&amp;usschneiden</translation>
+ </message>
+ <message>
+ <source>Copy</source>
+ <translation>Kopieren</translation>
+ </message>
+ <message>
+ <source>C&amp;opy</source>
+ <translation>Ko&amp;pieren</translation>
+ </message>
+ <message>
+ <source>Paste</source>
+ <translation>Einfügen</translation>
+ </message>
+ <message>
+ <source>&amp;Paste</source>
+ <translation>Ein&amp;fügen</translation>
+ </message>
+ <message>
+ <source>Find</source>
+ <translation>Suchen</translation>
+ </message>
+ <message>
+ <source>&amp;Find...</source>
+ <translation>&amp;Suchen ...</translation>
+ </message>
+ <message>
+ <source>Contents</source>
+ <translation>Inhalte</translation>
+ </message>
+ <message>
+ <source>&amp;Contents...</source>
+ <translation>&amp;Inhalte ...</translation>
+ </message>
+ <message>
+ <source>Index</source>
+ <translation>Verzeichnis</translation>
+ </message>
+ <message>
+ <source>&amp;Index...</source>
+ <translation>&amp;Verzeichnis ...</translation>
+ </message>
+ <message>
+ <source>About</source>
+ <translation>Ãœber</translation>
+ </message>
+ <message>
+ <source>&amp;About...</source>
+ <translation>&amp;Ãœber ...</translation>
+ </message>
+ <message>
+ <source>&lt;b&gt;Notice!&lt;/b&gt;&lt;br&gt;
+Random Rhythm Generator is not enabled yet!</source>
+ <translation>Merke!
+Rhythmus Zufallsgenerator noch nicht eingeführt!</translation>
+ </message>
+ <message>
+ <source>Ctrl+N</source>
+ <translation>Strg+N</translation>
+ </message>
+ <message>
+ <source>Ctrl+O</source>
+ <translation>Strg+O</translation>
+ </message>
+ <message>
+ <source>Ctrl+S</source>
+ <translation>Strg+S</translation>
+ </message>
+ <message>
+ <source>Ctrl+P</source>
+ <translation>Strg+P</translation>
+ </message>
+ <message>
+ <source>Ctrl+Z</source>
+ <translation>Strg+Z</translation>
+ </message>
+ <message>
+ <source>Ctrl+Y</source>
+ <translation>Strg+Y</translation>
+ </message>
+ <message>
+ <source>Ctrl+X</source>
+ <translation>Strg+X</translation>
+ </message>
+ <message>
+ <source>Ctrl+C</source>
+ <translation>Strg+C</translation>
+ </message>
+ <message>
+ <source>Ctrl+V</source>
+ <translation>Strg+V</translation>
+ </message>
+ <message>
+ <source>Ctrl+F</source>
+ <translation>Strg+F</translation>
+ </message>
+</context>
+<context>
+ <name>RhythmGenerator</name>
+ <message>
+ <source>Instrument Settings:</source>
+ <translation type="obsolete">Instrument Einstellungen</translation>
+ </message>
+ <message>
+ <source>add</source>
+ <translation type="obsolete">Zufgen</translation>
+ </message>
+ <message>
+ <source>delete</source>
+ <translation type="obsolete">Entfernen</translation>
+ </message>
+ <message>
+ <source>Group</source>
+ <translation type="obsolete">Gruppe</translation>
+ </message>
+ <message>
+ <source></source>
+ <translation>Rhythmusgenerator</translation>
+ </message>
+</context>
+<context>
+ <name>RouteDialogBase</name>
+ <message>
+ <source>MusE: Routing</source>
+ <translation>MusE: Signalfluss</translation>
+ </message>
+ <message>
+ <source>Add Route</source>
+ <translation>Signalfluss hinzufügen</translation>
+ </message>
+ <message>
+ <source>Source:</source>
+ <translation>Quelle:</translation>
+ </message>
+ <message>
+ <source>Destination:</source>
+ <translation>Ziel:</translation>
+ </message>
+ <message>
+ <source>Connect</source>
+ <translation>Verbinden</translation>
+ </message>
+ <message>
+ <source>connect source to destination</source>
+ <translation>Quelle mit Ziel verbinden</translation>
+ </message>
+ <message>
+ <source>Current Routes</source>
+ <translation>Aktueller Signalfluss</translation>
+ </message>
+ <message>
+ <source>Source</source>
+ <translation>Quelle</translation>
+ </message>
+ <message>
+ <source>Destination</source>
+ <translation>Ziel</translation>
+ </message>
+ <message>
+ <source>Remove</source>
+ <translation>Entfernen</translation>
+ </message>
+ <message>
+ <source>remove selected route</source>
+ <translation>Ausgewählten Signalfluss entfernen</translation>
+ </message>
+</context>
+<context>
+ <name>ScrollScale</name>
+ <message>
+ <source>next page</source>
+ <translation>Nächste Seite</translation>
+ </message>
+ <message>
+ <source>previous page</source>
+ <translation>Vorherige Seite</translation>
+ </message>
+ <message>
+ <source>current page number</source>
+ <translation>Aktuelle Seitennummer</translation>
+ </message>
+</context>
+<context>
+ <name>ShortcutCaptureDialogBase</name>
+ <message>
+ <source>Enter shortcut sequence</source>
+ <translation>Folge von Tastenkürzeln eingeben</translation>
+ </message>
+ <message>
+ <source>Press keys to enter shortcut sequence!</source>
+ <translation>Tasten drücken um Folge von Tastenkürzeln einzugeben!</translation>
+ </message>
+ <message>
+ <source>Old shortcut:</source>
+ <translation>Altes Tastenkürzel:</translation>
+ </message>
+ <message>
+ <source>Undefined</source>
+ <translation>unbestimmt</translation>
+ </message>
+ <message>
+ <source>New shortcut:</source>
+ <translation>Neues Tastenkürzel:</translation>
+ </message>
+ <message>
+ <source>OK</source>
+ <translation>Bestätigen</translation>
+ </message>
+ <message>
+ <source>Cancel</source>
+ <translation>Abbrechen</translation>
+ </message>
+</context>
+<context>
+ <name>ShortcutConfigBase</name>
+ <message>
+ <source>Configure Keyboard Shortcuts</source>
+ <translation>Tastenkürzel einstellen</translation>
+ </message>
+ <message>
+ <source>Shortcut Category</source>
+ <translation>Kategorie Tastenkürzel</translation>
+ </message>
+ <message>
+ <source>Description</source>
+ <translation>Beschreibung</translation>
+ </message>
+ <message>
+ <source>Shortcut</source>
+ <translation>Tastenkürzel</translation>
+ </message>
+ <message>
+ <source>&amp;Clear</source>
+ <translation>&amp;Löschen</translation>
+ </message>
+ <message>
+ <source>Alt+C</source>
+ <translation>Alt+C</translation>
+ </message>
+ <message>
+ <source>&amp;Define</source>
+ <translation>&amp;Bestimmen</translation>
+ </message>
+ <message>
+ <source>Alt+D</source>
+ <translation>Alt+D</translation>
+ </message>
+ <message>
+ <source>&amp;Apply</source>
+ <translation>&amp;Anwenden</translation>
+ </message>
+ <message>
+ <source>Alt+A</source>
+ <translation>Alt+A</translation>
+ </message>
+</context>
+<context>
+ <name>SigScale</name>
+ <message>
+ <source>signature scale</source>
+ <translation>Skala Taktmaß</translation>
+ </message>
+</context>
+<context>
+ <name>SynthConfigBase</name>
+ <message>
+ <source>MusE: Synth Configuration</source>
+ <translation>MusE: Synth Einstellung</translation>
+ </message>
+ <message>
+ <source>Soft Synthesizer</source>
+ <translation>Software-Synthesizer</translation>
+ </message>
+ <message>
+ <source>File</source>
+ <translation>Datei</translation>
+ </message>
+ <message>
+ <source>Instances</source>
+ <translation>Instanzen</translation>
+ </message>
+ <message>
+ <source>Name</source>
+ <translation>Name</translation>
+ </message>
+ <message>
+ <source>list of available software synthesizers</source>
+ <translation>Liste verfügbarer Software-Synthesizer</translation>
+ </message>
+ <message>
+ <source>Add Instance</source>
+ <translation>Instanz hinzufügen</translation>
+ </message>
+ <message>
+ <source>Remove Instance</source>
+ <translation>Instanz entfernen</translation>
+ </message>
+ <message>
+ <source>Midi Port</source>
+ <translation>Midi Anschluss</translation>
+ </message>
+ <message>
+ <source>Midi connections</source>
+ <translation>Midi Verbindungen</translation>
+ </message>
+ <message>
+ <source>Inst</source>
+ <translation>Inst</translation>
+ </message>
+ <message>
+ <source>Version</source>
+ <translation>Version</translation>
+ </message>
+ <message>
+ <source>Description</source>
+ <translation>Beschreibung</translation>
+ </message>
+</context>
+<context>
+ <name>TList</name>
+ <message>
+ <source>Midi</source>
+ <translation>Midi</translation>
+ </message>
+ <message>
+ <source>Drum</source>
+ <translation>Drum</translation>
+ </message>
+ <message>
+ <source>Delete Track</source>
+ <translation>Spur löschen</translation>
+ </message>
+ <message>
+ <source>Track Comment</source>
+ <translation>Spur Kommentar</translation>
+ </message>
+ <message>
+ <source>Show Gui</source>
+ <translation>Zeige GUI</translation>
+ </message>
+ <message>
+ <source>Add Midi Track</source>
+ <translation>Midi Spur hinzufügen</translation>
+ </message>
+ <message>
+ <source>Add Drum Track</source>
+ <translation>Drum Spur hinzufügen</translation>
+ </message>
+ <message>
+ <source>Add Wave Track</source>
+ <translation>Wave Spur hinzufügen</translation>
+ </message>
+ <message>
+ <source>MusE: bad trackname</source>
+ <translation>MusE: ungeeigneter Spurname</translation>
+ </message>
+ <message>
+ <source>please choose a unique track name</source>
+ <translation>Bitte eindeutigen Spurnamen wählen</translation>
+ </message>
+ <message>
+ <source>Add Output</source>
+ <translation>Ausgang hinzufügen</translation>
+ </message>
+ <message>
+ <source>Add Group</source>
+ <translation>Gruppe hinzufügen</translation>
+ </message>
+ <message>
+ <source>Add Input</source>
+ <translation>Eingang hinzufügen</translation>
+ </message>
+ <message>
+ <source>Add Aux Send</source>
+ <translation>Aux Send hinzufügen</translation>
+ </message>
+ <message>
+ <source>Update drummap?</source>
+ <translation>Drumbelegung aktualisieren?</translation>
+ </message>
+ <message>
+ <source>Do you want to use same port for all instruments in the drummap?</source>
+ <translation>Möchten Sie für alle Instrumente der Drumbelegung den selben Anschluss verwenden?</translation>
+ </message>
+ <message>
+ <source>&amp;Yes</source>
+ <translation>&amp;Ja</translation>
+ </message>
+ <message>
+ <source>&amp;No</source>
+ <translation>&amp;Nein</translation>
+ </message>
+ <message>
+ <source>Do you want to use same port and channel for all instruments in the drummap?</source>
+ <translation>Möchten Sie für alle Instrumente der Drumbelegung den selben Anschluss und Kanal verwenden?</translation>
+ </message>
+</context>
+<context>
+ <name>TempoSig</name>
+ <message>
+ <source>Tempo/Sig</source>
+ <translation>Tempo/Taktmaß</translation>
+ </message>
+</context>
+<context>
+ <name>Toolbar1</name>
+ <message>
+ <source>Solo</source>
+ <translation>Solo</translation>
+ </message>
+ <message>
+ <source>Snap</source>
+ <translation>Magnet</translation>
+ </message>
+ <message>
+ <source>Quantize</source>
+ <translation>Quantisieren</translation>
+ </message>
+ <message>
+ <source>To</source>
+ <translation>Zu</translation>
+ </message>
+ <message>
+ <source>All Events</source>
+ <translation>Alle Ereignisse</translation>
+ </message>
+ <message>
+ <source>Looped Ev.</source>
+ <translation>Ereignisse innerhalb Schleife.</translation>
+ </message>
+ <message>
+ <source>Selected Ev.</source>
+ <translation>Ausgewählte Ereignisse.</translation>
+ </message>
+ <message>
+ <source>Looped+Sel.</source>
+ <translation>Innerhalb Schleife + augewählt.</translation>
+ </message>
+ <message>
+ <source>Cursor</source>
+ <translation>Positionsmarker</translation>
+ </message>
+</context>
+<context>
+ <name>TrackComment</name>
+ <message>
+ <source>MusE: Track Comment</source>
+ <translation>MusE: Spur Kommentar</translation>
+ </message>
+ <message>
+ <source>Track Comment:</source>
+ <translation>Spur Kommentar:</translation>
+ </message>
+</context>
+<context>
+ <name>Transport</name>
+ <message>
+ <source>Punch In</source>
+ <translation>Aufnahme am linken Marker beginnen</translation>
+ </message>
+ <message>
+ <source>Loop</source>
+ <translation>Schleife</translation>
+ </message>
+ <message>
+ <source>Punch Out</source>
+ <translation>Aufnahme am rechten Marker beenden</translation>
+ </message>
+ <message>
+ <source>Left Mark</source>
+ <translation>Linker Marker</translation>
+ </message>
+ <message>
+ <source>Right Mark</source>
+ <translation>Rechter Marker</translation>
+ </message>
+ <message>
+ <source>Overdub</source>
+ <translation>Ãœberschreiben</translation>
+ </message>
+ <message>
+ <source>Replace</source>
+ <translation>Ersetzen</translation>
+ </message>
+ <message>
+ <source>Rec Mode</source>
+ <translation>Modus &quot;Aufnahme&quot;</translation>
+ </message>
+ <message>
+ <source>Normal</source>
+ <translation>Normal</translation>
+ </message>
+ <message>
+ <source>Mix</source>
+ <translation>Mischen</translation>
+ </message>
+ <message>
+ <source>Cycle Rec</source>
+ <translation>Aufnahme in Schleife</translation>
+ </message>
+ <message>
+ <source>punchin</source>
+ <translation>Aufnahme am linken Marker geginnen</translation>
+ </message>
+ <message>
+ <source>loop</source>
+ <translation>Schleife</translation>
+ </message>
+ <message>
+ <source>punchout</source>
+ <translation>Aufnahme am rechten Marker beenden</translation>
+ </message>
+ <message>
+ <source>rewind to start</source>
+ <translation>Zum Start zurück</translation>
+ </message>
+ <message>
+ <source>rewind</source>
+ <translation>Einen Taktschlag rückwärts</translation>
+ </message>
+ <message>
+ <source>forward</source>
+ <translation>Einen Taktschlag vorwärts</translation>
+ </message>
+ <message>
+ <source>stop</source>
+ <translation>Stopp</translation>
+ </message>
+ <message>
+ <source>play</source>
+ <translation>Wiedergabe</translation>
+ </message>
+ <message>
+ <source>record</source>
+ <translation>Aufnahme</translation>
+ </message>
+ <message>
+ <source>AC</source>
+ <translation>AC</translation>
+ </message>
+ <message>
+ <source>quantize during record</source>
+ <translation>Während Aufnahme quantisieren</translation>
+ </message>
+ <message>
+ <source>Click</source>
+ <translation>Klick</translation>
+ </message>
+ <message>
+ <source>metronom click on/off</source>
+ <translation>Metronom Klick an/aus</translation>
+ </message>
+ <message>
+ <source>Sync</source>
+ <translation>Sync</translation>
+ </message>
+ <message>
+ <source>external sync on/off</source>
+ <translation>Externer Sync an/aus</translation>
+ </message>
+ <message>
+ <source>Master</source>
+ <translation>Master</translation>
+ </message>
+ <message>
+ <source>use master track</source>
+ <translation>Masterspur einschalten</translation>
+ </message>
+</context>
+<context>
+ <name>TransposeDialogBase</name>
+ <message>
+ <source>MusE: Midi Transpose</source>
+ <translation>MusE: Midi transponieren</translation>
+ </message>
+ <message>
+ <source>Value</source>
+ <translation>Wert</translation>
+ </message>
+ <message>
+ <source>halftones</source>
+ <translation>Halbtonschritte</translation>
+ </message>
+ <message>
+ <source>Time</source>
+ <translation>Zeit</translation>
+ </message>
+ <message>
+ <source>all</source>
+ <translation>alle</translation>
+ </message>
+ <message>
+ <source>between markers</source>
+ <translation>Zwischen Markern</translation>
+ </message>
+ <message>
+ <source>Parts</source>
+ <translation>Parts</translation>
+ </message>
+ <message>
+ <source>all in selected tracks</source>
+ <translation>Alles in ausgewählter Spur</translation>
+ </message>
+ <message>
+ <source>OK</source>
+ <translation>Bestätigen</translation>
+ </message>
+ <message>
+ <source>Cancel</source>
+ <translation>Abbrechen</translation>
+ </message>
+</context>
+<context>
+ <name>VelocityBase</name>
+ <message>
+ <source>MusE: Modify Velocity</source>
+ <translation>MusE: Velocity ändern</translation>
+ </message>
+ <message>
+ <source>Range</source>
+ <translation>Bereich</translation>
+ </message>
+ <message>
+ <source>All Events</source>
+ <translation>Alle Ereignisse</translation>
+ </message>
+ <message>
+ <source>Selected Events</source>
+ <translation>Ausgewählte Ereignisse</translation>
+ </message>
+ <message>
+ <source>Looped Events</source>
+ <translation>Ereignisse innerhalb Schleife</translation>
+ </message>
+ <message>
+ <source>Selected &amp; Looped</source>
+ <translation>Ausgewählt &amp; innerhalb Schleife</translation>
+ </message>
+ <message>
+ <source>Values</source>
+ <translation>Werte</translation>
+ </message>
+ <message>
+ <source>Rate:</source>
+ <translation>Rate:</translation>
+ </message>
+ <message>
+ <source>Offset:</source>
+ <translation>Zeitversatz:</translation>
+ </message>
+ <message>
+ <source>%</source>
+ <translation>%</translation>
+ </message>
+ <message>
+ <source>OK</source>
+ <translation>Bestätigen</translation>
+ </message>
+ <message>
+ <source>Cancel</source>
+ <translation>Abbrechen</translation>
+ </message>
+</context>
+<context>
+ <name>WTScale</name>
+ <message>
+ <source>bar scale</source>
+ <translation>Taktskala</translation>
+ </message>
+</context>
+<context>
+ <name>WaveEdit</name>
+ <message>
+ <source>Normalize</source>
+ <translation>Normalisieren</translation>
+ </message>
+ <message>
+ <source>weTools</source>
+ <translation>Werkzeug &quot;we&quot;</translation>
+ </message>
+ <message>
+ <source>Solo</source>
+ <translation>Solo</translation>
+ </message>
+ <message>
+ <source>Cursor</source>
+ <translation>Positionsmarker</translation>
+ </message>
+ <message>
+ <source>&amp;File</source>
+ <translation>&amp;Datei</translation>
+ </message>
+ <message>
+ <source>Functions</source>
+ <translation>Funktionen</translation>
+ </message>
+</context>
+<context>
+ <name>WaveTrackInfoBase</name>
+ <message>
+ <source>MusE: TrackInfo</source>
+ <translation>MusE: Spurinfo</translation>
+ </message>
+ <message>
+ <source>Track Info</source>
+ <translation>Spurinfo</translation>
+ </message>
+ <message>
+ <source>Track Name</source>
+ <translation>Spurname</translation>
+ </message>
+ <message>
+ <source>Output Route:</source>
+ <translation>Ausgangssignalfluss:</translation>
+ </message>
+ <message>
+ <source>Input Route:</source>
+ <translation>Eingangssignalfluss:</translation>
+ </message>
+ <message>
+ <source>Ports:</source>
+ <translation>Anschlüsse:</translation>
+ </message>
+ <message>
+ <source>Mono</source>
+ <translation>Mono</translation>
+ </message>
+ <message>
+ <source>Stereo</source>
+ <translation>Stereo</translation>
+ </message>
+</context>
+</TS>
diff --git a/muse2/share/locale/muse_es.qm b/muse2/share/locale/muse_es.qm
new file mode 100644
index 00000000..8a328844
--- /dev/null
+++ b/muse2/share/locale/muse_es.qm
Binary files differ
diff --git a/muse2/share/locale/muse_es.ts b/muse2/share/locale/muse_es.ts
new file mode 100644
index 00000000..c48735b4
--- /dev/null
+++ b/muse2/share/locale/muse_es.ts
@@ -0,0 +1,7146 @@
+<!DOCTYPE TS><TS>
+<context>
+ <name></name>
+ <message>
+ <source>Click this button to enable recording</source>
+ <translation type="unfinished">Pulsa este bot� para habilitar la grabaci�</translation>
+ </message>
+ <message>
+ <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>
+ <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>
+</context>
+<context>
+ <name>@default</name>
+ <message>
+ <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="unfinished">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>
+ <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="unfinished">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>
+ <source>Create New Song</source>
+ <translation type="unfinished">Crea una nueva Canci�</translation>
+ </message>
+ <message>
+ <source>Click this button to stop playback</source>
+ <translation type="unfinished">Pulsa este bot� para parar la reproducci�</translation>
+ </message>
+ <message>
+ <source>Click this button to start playback</source>
+ <translation type="unfinished">Pulsa este bot� para iniciar la reproducci�</translation>
+ </message>
+ <message>
+ <source>Click this button to rewind to start position</source>
+ <translation type="unfinished">Pulsa este bot� para regresar al principio</translation>
+ </message>
+ <message>
+ <source>Click this button to rewind</source>
+ <translation type="unfinished">Pulsa este bot� para ir hacia atr�</translation>
+ </message>
+ <message>
+ <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>
+ <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>
+ <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>
+ <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>
+ <source>record starts at left mark</source>
+ <translation type="unfinished">la grabaci� comienza en la marca izquierda</translation>
+ </message>
+ <message>
+ <source>record stops at right mark</source>
+ <translation type="unfinished">la grabaci� termina en la merca derecha</translation>
+ </message>
+ <message>
+ <source>rewind to start position</source>
+ <translation type="unfinished">retrocede a la posici� de inicio</translation>
+ </message>
+ <message>
+ <source>rewind current position</source>
+ <translation type="unfinished">retrasa la posici� actual</translation>
+ </message>
+ <message>
+ <source>move current position</source>
+ <translation type="unfinished">mueve la posici� actual</translation>
+ </message>
+ <message>
+ <source>stop sequencer</source>
+ <translation type="unfinished">para el secuenciador</translation>
+ </message>
+ <message>
+ <source>start sequencer play</source>
+ <translation type="unfinished">inicia el secuenciador</translation>
+ </message>
+ <message>
+ <source>to record press record and then play</source>
+ <translation type="unfinished">para grabar pulsa grabar y despu� reproducir</translation>
+ </message>
+ <message>
+ <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>
+ <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>
+ <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>
+ <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>
+ <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>
+ <source>select Score Tool:
+</source>
+ <translation type="unfinished">selecciona la Herramienta de Partitura:
+</translation>
+ </message>
+ <message>
+ <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>
+ <source>select Drawing Tool</source>
+ <translation type="unfinished">selecciona la Herramienta de Dibujo</translation>
+ </message>
+ <message>
+ <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>
+ <source>pointer</source>
+ <translation type="unfinished">puntero</translation>
+ </message>
+ <message>
+ <source>pencil</source>
+ <translation type="unfinished">l�iz</translation>
+ </message>
+ <message>
+ <source>rubber</source>
+ <translation type="obsolete">goma</translation>
+ </message>
+ <message>
+ <source>cutter</source>
+ <translation type="unfinished">cortador</translation>
+ </message>
+ <message>
+ <source>score</source>
+ <translation type="unfinished">partitura</translation>
+ </message>
+ <message>
+ <source>glue</source>
+ <translation type="unfinished">pegamento</translation>
+ </message>
+ <message>
+ <source>quantize</source>
+ <translation type="unfinished">cuantizador</translation>
+ </message>
+ <message>
+ <source>draw</source>
+ <translation type="unfinished">dibujar</translation>
+ </message>
+ <message>
+ <source>mute parts</source>
+ <translation type="unfinished">silenciar partes</translation>
+ </message>
+ <message>
+ <source>Off</source>
+ <translation type="unfinished">Apagar</translation>
+ </message>
+ <message>
+ <source>presets (*.pre *.pre.gz *.pre.bz2)</source>
+ <translation type="unfinished">preselecciones (*.pre *.pre.gz *.pre.bz2)</translation>
+ </message>
+ <message>
+ <source>All Files (*)</source>
+ <translation type="unfinished">Todos los archivos (*)</translation>
+ </message>
+ <message>
+ <source>Add Midi Track</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Add Drum Track</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Add Wave Track</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Add Audio Output</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Add Audio Group</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Add Audio Input</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Add Aux Send</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>eraser</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>AboutBox</name>
+ <message>
+ <source>AboutBox</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Keep On Rocking!</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <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="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>Appearance</name>
+ <message>
+ <source>MusE: load image</source>
+ <translation type="unfinished">MusE: carga imagen</translation>
+ </message>
+ <message>
+ <source>handle of transport window</source>
+ <translation type="obsolete">gestor de la ventana de transporte</translation>
+ </message>
+ <message>
+ <source>track activity in arranger</source>
+ <translation type="obsolete">actividad de tramos en el arreglador</translation>
+ </message>
+ <message>
+ <source>bigtime font color</source>
+ <translation type="obsolete">color de fuente bigtime</translation>
+ </message>
+ <message>
+ <source>bigtime background color</source>
+ <translation type="obsolete">color de fondo de bigtime</translation>
+ </message>
+ <message>
+ <source>waveedit background color</source>
+ <translation type="obsolete">color de fondo de edici� de onda</translation>
+ </message>
+</context>
+<context>
+ <name>AppearanceDialogBase</name>
+ <message>
+ <source>MusE: Appearance settings</source>
+ <translation type="unfinished">MusE: Configuraci� de apariencia</translation>
+ </message>
+ <message>
+ <source>Apply</source>
+ <translation type="unfinished">Aplicar</translation>
+ </message>
+ <message>
+ <source>Ok</source>
+ <translation type="unfinished">Aceptar</translation>
+ </message>
+ <message>
+ <source>Cancel</source>
+ <translation type="unfinished">Cancelar</translation>
+ </message>
+ <message>
+ <source>Arranger</source>
+ <translation type="unfinished">Arreglador</translation>
+ </message>
+ <message>
+ <source>Parts</source>
+ <translation type="unfinished">Partes</translation>
+ </message>
+ <message>
+ <source>show frames</source>
+ <translation type="obsolete">mostrar frames</translation>
+ </message>
+ <message>
+ <source>show names</source>
+ <translation type="unfinished">mostrar nombres</translation>
+ </message>
+ <message>
+ <source>show events</source>
+ <translation type="unfinished">mostrar eventos</translation>
+ </message>
+ <message>
+ <source>show Cakewalk Style</source>
+ <translation type="unfinished">mostrar al estilo de Cakewalk</translation>
+ </message>
+ <message>
+ <source>Events</source>
+ <translation type="unfinished">Eventos</translation>
+ </message>
+ <message>
+ <source>note on</source>
+ <translation type="unfinished">nota on</translation>
+ </message>
+ <message>
+ <source>poly pressure</source>
+ <translation type="unfinished">presi� polif�ica</translation>
+ </message>
+ <message>
+ <source>controller</source>
+ <translation type="unfinished">controlador</translation>
+ </message>
+ <message>
+ <source>aftertouch</source>
+ <translation type="unfinished">aftertouch</translation>
+ </message>
+ <message>
+ <source>pitch bend</source>
+ <translation type="unfinished">pitch bend</translation>
+ </message>
+ <message>
+ <source>program change</source>
+ <translation type="unfinished">cambio de programa</translation>
+ </message>
+ <message>
+ <source>special</source>
+ <translation type="unfinished">especial</translation>
+ </message>
+ <message>
+ <source>Background picture</source>
+ <translation type="unfinished">Imagen de fondo</translation>
+ </message>
+ <message>
+ <source>bg</source>
+ <translation type="unfinished">fondo</translation>
+ </message>
+ <message>
+ <source>select...</source>
+ <translation type="unfinished">selecciona...</translation>
+ </message>
+ <message>
+ <source>show snap grid</source>
+ <translation type="unfinished">muestra la rejilla de captura</translation>
+ </message>
+ <message>
+ <source>Colors</source>
+ <translation type="unfinished">Colores</translation>
+ </message>
+ <message>
+ <source>Items</source>
+ <translation type="unfinished">Objetos</translation>
+ </message>
+ <message>
+ <source>selected</source>
+ <translation type="obsolete">seleccionado</translation>
+ </message>
+ <message>
+ <source>current:</source>
+ <translation type="obsolete">actual:</translation>
+ </message>
+ <message>
+ <source>change...</source>
+ <translation type="obsolete">cambia...</translation>
+ </message>
+ <message>
+ <source>dynamic colors for track activity in arranger</source>
+ <translation type="obsolete">colores din�icos para actividad en el arreglador</translation>
+ </message>
+ <message>
+ <source>Style/Fonts</source>
+ <translation type="unfinished">Estilo/Tipografia</translation>
+ </message>
+ <message>
+ <source>QT Theme</source>
+ <translation type="unfinished">tema QT</translation>
+ </message>
+ <message>
+ <source>Windows</source>
+ <translation type="unfinished">Ventanas</translation>
+ </message>
+ <message>
+ <source>MusE</source>
+ <translation type="unfinished">MusE</translation>
+ </message>
+ <message>
+ <source>Metal</source>
+ <translation type="unfinished">Metal</translation>
+ </message>
+ <message>
+ <source>Norwegian Wood</source>
+ <translation type="unfinished">Madera Noruega</translation>
+ </message>
+ <message>
+ <source>Platinum</source>
+ <translation type="unfinished">Platino</translation>
+ </message>
+ <message>
+ <source>CDE</source>
+ <translation type="unfinished">CDE</translation>
+ </message>
+ <message>
+ <source>Motif</source>
+ <translation type="unfinished">Motif</translation>
+ </message>
+ <message>
+ <source>Motif Plus</source>
+ <translation type="unfinished">Motif Plus</translation>
+ </message>
+ <message>
+ <source>Fonts</source>
+ <translation type="unfinished">Tipografia</translation>
+ </message>
+ <message>
+ <source>Family</source>
+ <translation type="unfinished">Familia</translation>
+ </message>
+ <message>
+ <source>Size</source>
+ <translation type="unfinished">Tama�</translation>
+ </message>
+ <message>
+ <source>Font 1</source>
+ <translation type="unfinished">Tipografia 1</translation>
+ </message>
+ <message>
+ <source>Font 2</source>
+ <translation type="unfinished">Tipografia 2</translation>
+ </message>
+ <message>
+ <source>Font 3</source>
+ <translation type="unfinished">Tipografia 3</translation>
+ </message>
+ <message>
+ <source>Font 0</source>
+ <translation type="unfinished">Tipografia 0</translation>
+ </message>
+ <message>
+ <source>Bold</source>
+ <translation type="unfinished">Negrita</translation>
+ </message>
+ <message>
+ <source>Italic</source>
+ <translation type="unfinished">Cursiva</translation>
+ </message>
+ <message>
+ <source>...</source>
+ <translation type="unfinished">...</translation>
+ </message>
+ <message>
+ <source>Font 4</source>
+ <translation type="unfinished">Tipografia 4</translation>
+ </message>
+ <message>
+ <source>Font 5</source>
+ <translation type="unfinished">Tipografia 5</translation>
+ </message>
+ <message>
+ <source>Palette</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>add to palette</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>B</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>S</source>
+ <translation type="unfinished">S</translation>
+ </message>
+ <message>
+ <source>H</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>V</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>G</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>R</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>Arranger</name>
+ <message>
+ <source>Cursor</source>
+ <translation type="unfinished">Cursor</translation>
+ </message>
+ <message>
+ <source>Snap</source>
+ <translation type="unfinished">Snap</translation>
+ </message>
+ <message>
+ <source>Len</source>
+ <translation type="unfinished">Longitud</translation>
+ </message>
+ <message>
+ <source>NO</source>
+ <translation>No</translation>
+ </message>
+ <message>
+ <source>TrackInfo</source>
+ <translation>Informaci� de pista</translation>
+ </message>
+ <message>
+ <source>Track</source>
+ <translation>Pista</translation>
+ </message>
+ <message>
+ <source>Type</source>
+ <translation type="unfinished">Tipo</translation>
+ </message>
+ <message>
+ <source>midi song type</source>
+ <translation type="unfinished">tipo de canci� midi</translation>
+ </message>
+ <message>
+ <source>Pitch</source>
+ <translation type="unfinished">Tono</translation>
+ </message>
+ <message>
+ <source>midi pitch</source>
+ <translation type="unfinished">tono midi</translation>
+ </message>
+ <message>
+ <source>global midi pitch shift</source>
+ <translation type="unfinished">desplazamiento de tono midi</translation>
+ </message>
+ <message>
+ <source>Tempo</source>
+ <translation type="unfinished">Tempo</translation>
+ </message>
+ <message>
+ <source>midi tempo</source>
+ <translation type="unfinished">tempo midi</translation>
+ </message>
+ <message>
+ <source>O-Port</source>
+ <translation type="unfinished">Port de Salida</translation>
+ </message>
+ <message>
+ <source>Arranger</source>
+ <translation type="unfinished">Arreglador</translation>
+ </message>
+ <message>
+ <source>Off</source>
+ <translation type="unfinished">apagado</translation>
+ </message>
+ <message>
+ <source>Bar</source>
+ <translation type="unfinished">comp�</translation>
+ </message>
+ <message>
+ <source>GM</source>
+ <translation type="unfinished">GM</translation>
+ </message>
+ <message>
+ <source>GS</source>
+ <translation type="unfinished">GS</translation>
+ </message>
+ <message>
+ <source>XG</source>
+ <translation type="unfinished">XG</translation>
+ </message>
+ <message>
+ <source>N</source>
+ <translation type="unfinished">N</translation>
+ </message>
+ <message>
+ <source>R</source>
+ <translation type="unfinished">R</translation>
+ </message>
+ <message>
+ <source>A</source>
+ <translation type="obsolete">A</translation>
+ </message>
+ <message>
+ <source>M</source>
+ <translation type="unfinished">M</translation>
+ </message>
+ <message>
+ <source>S</source>
+ <translation type="unfinished">S</translation>
+ </message>
+ <message>
+ <source>C</source>
+ <translation type="unfinished">C</translation>
+ </message>
+ <message>
+ <source>Ch</source>
+ <translation type="unfinished">Ch</translation>
+ </message>
+ <message>
+ <source>T</source>
+ <translation type="unfinished">T</translation>
+ </message>
+ <message>
+ <source>Master</source>
+ <translation type="obsolete">Maestro</translation>
+ </message>
+ <message>
+ <source>Group A</source>
+ <translation type="obsolete">Grupo A</translation>
+ </message>
+ <message>
+ <source>Group B</source>
+ <translation type="obsolete">Grupo B</translation>
+ </message>
+ <message>
+ <source>Group C</source>
+ <translation type="obsolete">Grupo C</translation>
+ </message>
+ <message>
+ <source>Group D</source>
+ <translation type="obsolete">Grupo D</translation>
+ </message>
+</context>
+<context>
+ <name>AudioConfBase</name>
+ <message>
+ <source>MusE: Audio Configuration</source>
+ <translation type="obsolete">MusE: Configuraci� de Audio</translation>
+ </message>
+ <message>
+ <source>&amp;Apply</source>
+ <translation type="obsolete">&amp;Aplicar</translation>
+ </message>
+ <message>
+ <source>&amp;OK</source>
+ <translation type="obsolete">C&amp;orrecto</translation>
+ </message>
+ <message>
+ <source>&amp;Cancel</source>
+ <translation type="obsolete">&amp;Cancelar</translation>
+ </message>
+ <message>
+ <source>Audio Parameters</source>
+ <translation type="obsolete">Par�etros de Audio</translation>
+ </message>
+ <message>
+ <source>32</source>
+ <translation type="obsolete">32</translation>
+ </message>
+ <message>
+ <source>64</source>
+ <translation type="obsolete">64</translation>
+ </message>
+ <message>
+ <source>128</source>
+ <translation type="obsolete">128</translation>
+ </message>
+ <message>
+ <source>256</source>
+ <translation type="obsolete">256</translation>
+ </message>
+ <message>
+ <source>512</source>
+ <translation type="obsolete">512</translation>
+ </message>
+ <message>
+ <source>1024</source>
+ <translation type="obsolete">1024</translation>
+ </message>
+ <message>
+ <source>2048</source>
+ <translation type="obsolete">2048</translation>
+ </message>
+ <message>
+ <source>4096</source>
+ <translation type="obsolete">4096</translation>
+ </message>
+ <message>
+ <source>Frame Size:</source>
+ <translation type="obsolete">Tama� de ventana:</translation>
+ </message>
+ <message>
+ <source>Delay:</source>
+ <translation type="obsolete">Retardo:</translation>
+ </message>
+ <message>
+ <source>Sample Rate:</source>
+ <translation type="obsolete">Velocidad de muestreo:</translation>
+ </message>
+ <message>
+ <source>44100</source>
+ <translation type="obsolete">44100</translation>
+ </message>
+ <message>
+ <source>48000</source>
+ <translation type="obsolete">48000</translation>
+ </message>
+ <message>
+ <source>96000</source>
+ <translation type="obsolete">96000</translation>
+ </message>
+ <message>
+ <source>Audio Driver</source>
+ <translation type="obsolete">Controlador de Audio</translation>
+ </message>
+ <message>
+ <source>Use Alsa</source>
+ <translation type="obsolete">Usa Alsa</translation>
+ </message>
+ <message>
+ <source>Use JACK</source>
+ <translation type="obsolete">Usa Jack</translation>
+ </message>
+ <message>
+ <source>No Audio</source>
+ <translation type="obsolete">Sin Audio</translation>
+ </message>
+ <message>
+ <source>Status:</source>
+ <translation type="obsolete">Estado:</translation>
+ </message>
+ <message>
+ <source>TextLabel6</source>
+ <translation type="obsolete">EtiquetadeTexto16</translation>
+ </message>
+</context>
+<context>
+ <name>AudioMixerApp</name>
+ <message>
+ <source>1/2 channel</source>
+ <translation type="obsolete">Canales 1/2</translation>
+ </message>
+ <message>
+ <source>pre fader - post fader</source>
+ <translation type="obsolete">pre fader - port fader</translation>
+ </message>
+ <message>
+ <source>record</source>
+ <translation type="obsolete">grabar</translation>
+ </message>
+ <message>
+ <source>mute</source>
+ <translation type="obsolete">silencio</translation>
+ </message>
+ <message>
+ <source>pre fader listening</source>
+ <translation type="obsolete">monitorizar pre fader</translation>
+ </message>
+ <message>
+ <source>record downmix</source>
+ <translation type="obsolete">downmix de grabaci�</translation>
+ </message>
+ <message>
+ <source>off</source>
+ <translation type="obsolete">apagado</translation>
+ </message>
+ <message>
+ <source>output routing</source>
+ <translation type="obsolete">ruteado de entrada</translation>
+ </message>
+ <message>
+ <source>&amp;Config</source>
+ <translation type="obsolete">&amp;Configuraci�</translation>
+ </message>
+ <message>
+ <source>Add Input Strip</source>
+ <translation type="obsolete">A�dir canal de entrada</translation>
+ </message>
+ <message>
+ <source>S</source>
+ <translation type="obsolete">S</translation>
+ </message>
+ <message>
+ <source>Pre</source>
+ <translation type="obsolete">Pre</translation>
+ </message>
+ <message>
+ <source>dB</source>
+ <translation type="obsolete">dB</translation>
+ </message>
+ <message>
+ <source>MusE: Audio Mixer</source>
+ <translation type="obsolete">MusE: Mezclador de audio</translation>
+ </message>
+ <message>
+ <source>Inputs</source>
+ <translation type="obsolete">Entradas</translation>
+ </message>
+ <message>
+ <source>Synthi</source>
+ <translation type="obsolete">Entrada de sintetizador</translation>
+ </message>
+ <message>
+ <source>Tracks</source>
+ <translation type="obsolete">Pistas</translation>
+ </message>
+ <message>
+ <source>Groups</source>
+ <translation type="obsolete">Grupos</translation>
+ </message>
+ <message>
+ <source>Master</source>
+ <translation type="obsolete">Maestro</translation>
+ </message>
+ <message>
+ <source>Group A</source>
+ <translation type="obsolete">Grupo A</translation>
+ </message>
+ <message>
+ <source>Group B</source>
+ <translation type="obsolete">Grupo B</translation>
+ </message>
+ <message>
+ <source>Group C</source>
+ <translation type="obsolete">Grupo C</translation>
+ </message>
+ <message>
+ <source>Group D</source>
+ <translation type="obsolete">Grupo D</translation>
+ </message>
+ <message>
+ <source>MusE: Mixer</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>&amp;Create</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>&amp;View</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Routing</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>AudioStrip</name>
+ <message>
+ <source>panorama</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>aux send level</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>off</source>
+ <translation type="unfinished">apagado</translation>
+ </message>
+ <message>
+ <source>Pan</source>
+ <translation type="unfinished">Bal</translation>
+ </message>
+ <message>
+ <source>S</source>
+ <translation type="obsolete">S</translation>
+ </message>
+ <message>
+ <source>1/2 channel</source>
+ <translation type="unfinished">Canales 1/2</translation>
+ </message>
+ <message>
+ <source>Pre</source>
+ <translation type="unfinished">Pre</translation>
+ </message>
+ <message>
+ <source>pre fader - post fader</source>
+ <translation type="unfinished">pre fader - port fader</translation>
+ </message>
+ <message>
+ <source>dB</source>
+ <translation type="unfinished">dB</translation>
+ </message>
+ <message>
+ <source>record</source>
+ <translation type="unfinished">grabar</translation>
+ </message>
+ <message>
+ <source>mute</source>
+ <translation type="unfinished">silencio</translation>
+ </message>
+ <message>
+ <source>record downmix</source>
+ <translation type="unfinished">downmix de grabaci�</translation>
+ </message>
+ <message>
+ <source>solo mode (monitor)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>pre fader listening</source>
+ <translation type="unfinished">monitorizar pre fader</translation>
+ </message>
+ <message>
+ <source>iR</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>intput routing</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>oR</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>output routing</source>
+ <translation type="unfinished">ruteado de entrada</translation>
+ </message>
+ <message>
+ <source>Off</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Read</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Touch</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Write</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>automation type</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Channel</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>BigTime</name>
+ <message>
+ <source>MusE: Bigtime</source>
+ <translation type="unfinished">MusE: Big Time</translation>
+ </message>
+</context>
+<context>
+ <name>ClipListEdit</name>
+ <message>
+ <source>MusE: Clip List Editor</source>
+ <translation type="obsolete">MusE: Editor de lista de clips</translation>
+ </message>
+</context>
+<context>
+ <name>ClipListEditorBase</name>
+ <message>
+ <source>MusE: ClipList</source>
+ <translation type="unfinished">MusE: Lista de Clips</translation>
+ </message>
+ <message>
+ <source>Name</source>
+ <translation type="unfinished">Nombre</translation>
+ </message>
+ <message>
+ <source>Refs</source>
+ <translation type="unfinished">Referencias</translation>
+ </message>
+ <message>
+ <source>Start</source>
+ <translation type="unfinished">Inicio</translation>
+ </message>
+ <message>
+ <source>Len</source>
+ <translation type="unfinished">Longitud</translation>
+ </message>
+ <message>
+ <source>Data</source>
+ <translation type="unfinished">Datos</translation>
+ </message>
+ <message>
+ <source>Clip Properties</source>
+ <translation type="unfinished">Propiedades del Clip</translation>
+ </message>
+ <message>
+ <source>Pos:</source>
+ <translation type="unfinished">Posici�:</translation>
+ </message>
+ <message>
+ <source>Len:</source>
+ <translation type="unfinished">Longitud:</translation>
+ </message>
+</context>
+<context>
+ <name>CommentBase</name>
+ <message>
+ <source>Form1</source>
+ <translation type="unfinished">Form1</translation>
+ </message>
+ <message>
+ <source>Track Comment</source>
+ <translation type="unfinished">Comentario de la pista</translation>
+ </message>
+ <message>
+ <source>Track 1</source>
+ <translation type="unfinished">Pista 1</translation>
+ </message>
+</context>
+<context>
+ <name>ConfigMidiFileBase</name>
+ <message>
+ <source>MusE: Config Midi File Export</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>&amp;OK</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>&amp;Cancel</source>
+ <translation type="unfinished">&amp;Cancelar</translation>
+ </message>
+ <message>
+ <source>0 (single track)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>1 (multiple tracks)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Format:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>96</source>
+ <translation type="unfinished">96</translation>
+ </message>
+ <message>
+ <source>192</source>
+ <translation type="unfinished">192</translation>
+ </message>
+ <message>
+ <source>384</source>
+ <translation type="unfinished">384</translation>
+ </message>
+ <message>
+ <source>Division:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Copyright:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Enable extended smf format</source>
+ <translation type="unfinished">Habilita el formato extendido de smf</translation>
+ </message>
+</context>
+<context>
+ <name>CtrlPanel</name>
+ <message>
+ <source>select controller</source>
+ <translation type="unfinished">selecciona controlador</translation>
+ </message>
+ <message>
+ <source>remove panel</source>
+ <translation type="unfinished">quitar panel</translation>
+ </message>
+ <message>
+ <source>other ...</source>
+ <translation type="obsolete">otro ...</translation>
+ </message>
+ <message>
+ <source>Sel</source>
+ <translation type="unfinished">Sel</translation>
+ </message>
+ <message>
+ <source>x</source>
+ <translation type="unfinished">x</translation>
+ </message>
+ <message>
+ <source>Velocity</source>
+ <translation type="unfinished">Velocidad</translation>
+ </message>
+ <message>
+ <source>Pitch</source>
+ <translation type="obsolete">Tono</translation>
+ </message>
+ <message>
+ <source>add new ...</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>DrumEdit</name>
+ <message>
+ <source>Load Map</source>
+ <translation type="unfinished">Carga Mapa</translation>
+ </message>
+ <message>
+ <source>Save Map</source>
+ <translation type="unfinished">Guarda Mapa</translation>
+ </message>
+ <message>
+ <source>&amp;Edit</source>
+ <translation type="unfinished">&amp;Editar</translation>
+ </message>
+ <message>
+ <source>Cut</source>
+ <translation type="unfinished">Cortar</translation>
+ </message>
+ <message>
+ <source>Copy</source>
+ <translation type="unfinished">Copiar</translation>
+ </message>
+ <message>
+ <source>Paste</source>
+ <translation type="unfinished">Pegar</translation>
+ </message>
+ <message>
+ <source>Delete Events</source>
+ <translation type="unfinished">Borrar Eventos</translation>
+ </message>
+ <message>
+ <source>Select All</source>
+ <translation type="unfinished">Seleccionar todo</translation>
+ </message>
+ <message>
+ <source>Select None</source>
+ <translation type="unfinished">Deseleccionar</translation>
+ </message>
+ <message>
+ <source>Invert</source>
+ <translation type="unfinished">Invertir</translation>
+ </message>
+ <message>
+ <source>Inside Loop</source>
+ <translation type="unfinished">Bucle interior</translation>
+ </message>
+ <message>
+ <source>Outside Loop</source>
+ <translation type="unfinished">Bucle exterior</translation>
+ </message>
+ <message>
+ <source>&amp;Select</source>
+ <translation type="unfinished">&amp;Seleccionar</translation>
+ </message>
+ <message>
+ <source>Step Record</source>
+ <translation type="unfinished">Parar Grabaci�</translation>
+ </message>
+ <message>
+ <source>Midi Input</source>
+ <translation type="unfinished">Entrada MIDI</translation>
+ </message>
+ <message>
+ <source>Add Controller View</source>
+ <translation type="unfinished">A�dir Controlador</translation>
+ </message>
+ <message>
+ <source>M</source>
+ <translation type="unfinished">M</translation>
+ </message>
+ <message>
+ <source>Sound</source>
+ <translation type="unfinished">Sonido</translation>
+ </message>
+ <message>
+ <source>QNT</source>
+ <translation type="unfinished">QNT</translation>
+ </message>
+ <message>
+ <source>E-Note</source>
+ <translation type="unfinished">Nota-E</translation>
+ </message>
+ <message>
+ <source>Len</source>
+ <translation type="unfinished">Longitud</translation>
+ </message>
+ <message>
+ <source>A-Note</source>
+ <translation type="unfinished">Nota-A</translation>
+ </message>
+ <message>
+ <source>Ch</source>
+ <translation type="unfinished">Ch</translation>
+ </message>
+ <message>
+ <source>Port</source>
+ <translation type="unfinished">Puerto</translation>
+ </message>
+ <message>
+ <source>LV1</source>
+ <translation type="unfinished">VL1</translation>
+ </message>
+ <message>
+ <source>LV2</source>
+ <translation type="unfinished">VL2</translation>
+ </message>
+ <message>
+ <source>LV3</source>
+ <translation type="unfinished">VL3</translation>
+ </message>
+ <message>
+ <source>LV4</source>
+ <translation type="unfinished">VL4</translation>
+ </message>
+ <message>
+ <source>&amp;File</source>
+ <translation type="unfinished">&amp;Fichero</translation>
+ </message>
+ <message>
+ <source>Load Drummap</source>
+ <translation type="unfinished">Cargar mapa de percusi�</translation>
+ </message>
+ <message>
+ <source>Store Drummap</source>
+ <translation type="unfinished">Guardar mapa de percusi�</translation>
+ </message>
+ <message>
+ <source>ctrl</source>
+ <translation type="unfinished">control</translation>
+ </message>
+ <message>
+ <source>drummaps</source>
+ <translation type="unfinished">mapas de percusi�</translation>
+ </message>
+ <message>
+ <source>Muse: Load Drum Map</source>
+ <translation type="unfinished">MusE: Cargar mapa de percusi�</translation>
+ </message>
+ <message>
+ <source>MusE: Store Drum Map</source>
+ <translation type="unfinished">MusE: Guardar mapa de percusi�</translation>
+ </message>
+ <message>
+ <source>Set fixed length</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>&amp;Functions</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Modify Velocity</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>EditCAfterDialog</name>
+ <message>
+ <source>Time Position</source>
+ <translation type="unfinished">Posici� de tiempo</translation>
+ </message>
+ <message>
+ <source>Pressure</source>
+ <translation type="unfinished">Presi�</translation>
+ </message>
+ <message>
+ <source>MusE: Enter Channel Aftertouch</source>
+ <translation type="unfinished">MusE: Introduce el AfterTouch del canal</translation>
+ </message>
+</context>
+<context>
+ <name>EditCtrl14Dialog</name>
+ <message>
+ <source>Time Position</source>
+ <translation type="obsolete">Posici� de tiempo</translation>
+ </message>
+ <message>
+ <source>Controller-H</source>
+ <translation type="obsolete">Controlador-H</translation>
+ </message>
+ <message>
+ <source>Controller-L</source>
+ <translation type="obsolete">Controlador-L</translation>
+ </message>
+ <message>
+ <source>Value</source>
+ <translation type="obsolete">Valor</translation>
+ </message>
+ <message>
+ <source>MusE: Enter Controller14 Event</source>
+ <translation type="obsolete">MusE: Introduce el evento del controlador 14</translation>
+ </message>
+</context>
+<context>
+ <name>EditCtrl7Dialog</name>
+ <message>
+ <source>Time Position</source>
+ <translation type="obsolete">Posici� de tiempo</translation>
+ </message>
+ <message>
+ <source>Controller</source>
+ <translation type="obsolete">Controlador</translation>
+ </message>
+ <message>
+ <source>Value</source>
+ <translation type="obsolete">Valor</translation>
+ </message>
+ <message>
+ <source>MusE: Enter Controller Event</source>
+ <translation type="obsolete">MusE: Introduce el evento del controlador</translation>
+ </message>
+</context>
+<context>
+ <name>EditCtrl7DialogBase</name>
+ <message>
+ <source>MusE: Enter Controller</source>
+ <translation type="unfinished">MusE: Introduce controlador</translation>
+ </message>
+ <message>
+ <source>Controller:</source>
+ <translation type="unfinished">Controlador:</translation>
+ </message>
+ <message>
+ <source>Time Position:</source>
+ <translation type="unfinished">Posici� de tiempo:</translation>
+ </message>
+ <message>
+ <source>Value:</source>
+ <translation type="unfinished">Valor:</translation>
+ </message>
+ <message>
+ <source>controller value</source>
+ <translation type="unfinished">valor del controlador</translation>
+ </message>
+ <message>
+ <source>OK</source>
+ <translation type="unfinished">Aceptar</translation>
+ </message>
+ <message>
+ <source>Cancel</source>
+ <translation type="unfinished">Cancelar</translation>
+ </message>
+</context>
+<context>
+ <name>EditCtrlBase</name>
+ <message>
+ <source>MusE: Edit Controller Event</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Time Position</source>
+ <translation type="unfinished">Posici� de tiempo</translation>
+ </message>
+ <message>
+ <source>Available Controller:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Create New Controller</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>textLabel3</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Value</source>
+ <translation type="unfinished">Valor</translation>
+ </message>
+ <message>
+ <source>Controller</source>
+ <translation type="unfinished">Controlador</translation>
+ </message>
+ <message>
+ <source>H-Bank</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>L-Bank</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Program</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>off</source>
+ <translation type="unfinished">apagado</translation>
+ </message>
+ <message>
+ <source>pushButton4</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>&amp;OK</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>&amp;Cancel</source>
+ <translation type="unfinished">&amp;Cancelar</translation>
+ </message>
+</context>
+<context>
+ <name>EditEventDialog</name>
+ <message>
+ <source>Ok</source>
+ <translation type="unfinished">Aceptar</translation>
+ </message>
+ <message>
+ <source>Cancel</source>
+ <translation type="unfinished">Cancelar</translation>
+ </message>
+</context>
+<context>
+ <name>EditInstrumentBase</name>
+ <message>
+ <source>MusE: Instrument Editor</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Patches</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Patch Name:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>High Bank:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Low Bank:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Program:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>d.c.</source>
+ <comment>dont care</comment>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>d.c.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Patch/Group</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>&amp;Delete</source>
+ <translation type="unfinished">&amp;Borrar</translation>
+ </message>
+ <message>
+ <source>Alt+D</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>&amp;New Patch</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Alt+N</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>New Group</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Drum</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>GM</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>GS</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>XG</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Controller</source>
+ <translation type="unfinished">Controlador</translation>
+ </message>
+ <message>
+ <source>Predefined Controller:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <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="unfinished"></translation>
+ </message>
+ <message>
+ <source>Properties</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Name</source>
+ <translation type="unfinished">Nombre</translation>
+ </message>
+ <message>
+ <source>Type</source>
+ <translation type="unfinished">Tipo</translation>
+ </message>
+ <message>
+ <source>Control7</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Control14</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>RPN</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>NRPN</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Pitch</source>
+ <translation type="unfinished">Tono</translation>
+ </message>
+ <message>
+ <source>Program</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>H-Ctrl</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Midi Controller Number High Byte</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>L-Ctrl</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Midi Controller Number Low Byte</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Range</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Min</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Max</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Default</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Name </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Type </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Min Val</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Max Val</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>list of defined controllers</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>This is the MusE list of defined controllers.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>SysEx</source>
+ <translation type="unfinished">Sistema Exclusivo</translation>
+ </message>
+ <message>
+ <source>Initialization</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Panic</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Hex Entry:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>&amp;File</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Tools</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>New</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>&amp;New</source>
+ <translation type="unfinished">&amp;Nuevo</translation>
+ </message>
+ <message>
+ <source>Ctrl+N</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Open</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>&amp;Open...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Ctrl+O</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Save</source>
+ <translation type="unfinished">Guardar</translation>
+ </message>
+ <message>
+ <source>&amp;Save</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Ctrl+S</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Save As</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Save &amp;As...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Exit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>E&amp;xit</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>EditMetaDialog</name>
+ <message>
+ <source>Time Position</source>
+ <translation type="unfinished">Posici� de tiempo</translation>
+ </message>
+ <message>
+ <source>Meta Type</source>
+ <translation type="unfinished">Tipo de Meta</translation>
+ </message>
+ <message>
+ <source>Enter Hex</source>
+ <translation type="unfinished">Introduzca en Hexadecimal</translation>
+ </message>
+ <message>
+ <source>MusE: Enter Meta Event</source>
+ <translation type="unfinished">MusE: Introduzca evento Meta</translation>
+ </message>
+</context>
+<context>
+ <name>EditMetaDialogBase</name>
+ <message>
+ <source>MusE: Enter Meta Event</source>
+ <translation type="unfinished">MusE: Introduzca evento Meta</translation>
+ </message>
+ <message>
+ <source>OK</source>
+ <translation type="unfinished">Aceptar</translation>
+ </message>
+ <message>
+ <source>Cancel</source>
+ <translation type="unfinished">Cancelar</translation>
+ </message>
+ <message>
+ <source>TextLabel1</source>
+ <translation type="unfinished">EtiquetaTexto1</translation>
+ </message>
+ <message>
+ <source>Time Position:</source>
+ <translation type="unfinished">Posici� de tiempo</translation>
+ </message>
+ <message>
+ <source>Meta Type:</source>
+ <translation type="unfinished">Tipo de Meta:</translation>
+ </message>
+ <message>
+ <source>Enter Hex</source>
+ <translation type="unfinished">Escribe Hexadecimal</translation>
+ </message>
+</context>
+<context>
+ <name>EditNoteDialogBase</name>
+ <message>
+ <source>MusE: Enter Note</source>
+ <translation type="unfinished">MusE: Escribe Nota</translation>
+ </message>
+ <message>
+ <source>OK</source>
+ <translation type="unfinished">Aceptar</translation>
+ </message>
+ <message>
+ <source>Cancel</source>
+ <translation type="unfinished">Cancelar</translation>
+ </message>
+ <message>
+ <source>Length:</source>
+ <translation type="unfinished">Longitud:</translation>
+ </message>
+ <message>
+ <source>Time Position:</source>
+ <translation type="unfinished">Posici� de tiempo</translation>
+ </message>
+ <message>
+ <source>Pitch:</source>
+ <translation type="unfinished">Tono:</translation>
+ </message>
+ <message>
+ <source>Velocity On:</source>
+ <translation type="unfinished">Velocidad On:</translation>
+ </message>
+ <message>
+ <source>Velocity Off:</source>
+ <translation type="unfinished">Velocidad Off:</translation>
+ </message>
+</context>
+<context>
+ <name>EditPAfterDialog</name>
+ <message>
+ <source>Time Position</source>
+ <translation type="unfinished">Posici� de tiempo</translation>
+ </message>
+ <message>
+ <source>Pitch</source>
+ <translation type="unfinished">Tono</translation>
+ </message>
+ <message>
+ <source>Pressure</source>
+ <translation type="unfinished">Presi�</translation>
+ </message>
+ <message>
+ <source>MusE: Enter Poly Aftertouch</source>
+ <translation type="unfinished">Muse: Escribe el aftertouch polif�ico</translation>
+ </message>
+</context>
+<context>
+ <name>EditPitchDialog</name>
+ <message>
+ <source>Time Position</source>
+ <translation type="obsolete">Posici� de tiempo</translation>
+ </message>
+ <message>
+ <source>Pitch</source>
+ <translation type="obsolete">Tono</translation>
+ </message>
+ <message>
+ <source>MusE: Enter Pitch Shift</source>
+ <translation type="obsolete">MusE: Introduce el deplazamiento de tono</translation>
+ </message>
+</context>
+<context>
+ <name>EditSysexDialogBase</name>
+ <message>
+ <source>MusE: Enter SysEx</source>
+ <translation type="unfinished">MusE: Introduce el sistema exclusivo</translation>
+ </message>
+ <message>
+ <source>TimePosition:</source>
+ <translation type="unfinished">Posici� de tiempo:</translation>
+ </message>
+ <message>
+ <source>Comment:</source>
+ <translation type="unfinished">Comentario:</translation>
+ </message>
+ <message>
+ <source>OK</source>
+ <translation type="unfinished">Aceptar</translation>
+ </message>
+ <message>
+ <source>Cancel</source>
+ <translation type="unfinished">Cancelar</translation>
+ </message>
+</context>
+<context>
+ <name>EditToolBar</name>
+ <message>
+ <source>Edit Tools</source>
+ <translation type="unfinished">Editar herramientas</translation>
+ </message>
+</context>
+<context>
+ <name>EffectRack</name>
+ <message>
+ <source>effect rack</source>
+ <translation type="unfinished">rack de efectos</translation>
+ </message>
+ <message>
+ <source>move up</source>
+ <translation type="unfinished">subir</translation>
+ </message>
+ <message>
+ <source>move down</source>
+ <translation type="unfinished">bajar</translation>
+ </message>
+ <message>
+ <source>remove</source>
+ <translation type="unfinished">quitar</translation>
+ </message>
+ <message>
+ <source>bypass</source>
+ <translation type="unfinished">saltar</translation>
+ </message>
+ <message>
+ <source>show gui</source>
+ <translation type="unfinished">mostrar gui</translation>
+ </message>
+ <message>
+ <source>new</source>
+ <translation type="unfinished">nuevo</translation>
+ </message>
+ <message>
+ <source>change</source>
+ <translation type="unfinished">cambiar</translation>
+ </message>
+</context>
+<context>
+ <name>FileDialogButtons</name>
+ <message>
+ <source>Form1</source>
+ <translation type="unfinished">Formulario1</translation>
+ </message>
+ <message>
+ <source>Global</source>
+ <translation type="unfinished">Global</translation>
+ </message>
+ <message>
+ <source>User</source>
+ <translation type="unfinished">Usuario</translation>
+ </message>
+ <message>
+ <source>Project</source>
+ <translation type="unfinished">Proyecto</translation>
+ </message>
+ <message>
+ <source>Load:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Songdata +
+Cofiguration</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>only
+Songdata</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>FontSel</name>
+ <message>
+ <source>Size:</source>
+ <translation type="unfinished">Tama�:</translation>
+ </message>
+</context>
+<context>
+ <name>GateTimeBase</name>
+ <message>
+ <source>MusE: Modify Gate Time</source>
+ <translation type="unfinished">MusE: Modifica el timpo de puerta</translation>
+ </message>
+ <message>
+ <source>Range</source>
+ <translation type="unfinished">Rango</translation>
+ </message>
+ <message>
+ <source>All Events</source>
+ <translation type="unfinished">Todos los eventos</translation>
+ </message>
+ <message>
+ <source>Selected Events</source>
+ <translation type="unfinished">Eventos seleccionados</translation>
+ </message>
+ <message>
+ <source>Looped Events</source>
+ <translation type="unfinished">Eventos en bucle</translation>
+ </message>
+ <message>
+ <source>Selected &amp; Looped</source>
+ <translation type="unfinished">Seleccionados y en bucle</translation>
+ </message>
+ <message>
+ <source>Values</source>
+ <translation type="unfinished">Valores</translation>
+ </message>
+ <message>
+ <source>Rate:</source>
+ <translation type="unfinished">Velocidad:</translation>
+ </message>
+ <message>
+ <source>Offset:</source>
+ <translation type="unfinished">Desplazamiento:</translation>
+ </message>
+ <message>
+ <source>%</source>
+ <translation type="unfinished">%</translation>
+ </message>
+ <message>
+ <source>OK</source>
+ <translation type="unfinished">Aceptar</translation>
+ </message>
+ <message>
+ <source>Cancel</source>
+ <translation type="unfinished">Cancelar</translation>
+ </message>
+</context>
+<context>
+ <name>GlobalSettingsDialogBase</name>
+ <message>
+ <source>MusE: Global Settings</source>
+ <translation type="unfinished">MusE: Valores globales</translation>
+ </message>
+ <message>
+ <source>Audio</source>
+ <translation type="unfinished">Audio</translation>
+ </message>
+ <message>
+ <source>Mixer</source>
+ <translation type="unfinished">Mezclador</translation>
+ </message>
+ <message>
+ <source>dB</source>
+ <translation type="unfinished">dB</translation>
+ </message>
+ <message>
+ <source>min. Meter Value</source>
+ <translation type="unfinished">valor m�imo del vumeter</translation>
+ </message>
+ <message>
+ <source>min.Slider Val</source>
+ <translation type="unfinished">valor m�imo del desplazador</translation>
+ </message>
+ <message>
+ <source>Midi</source>
+ <translation type="unfinished">MIDI</translation>
+ </message>
+ <message>
+ <source>Ticks</source>
+ <translation type="unfinished">Ticks</translation>
+ </message>
+ <message>
+ <source>1024</source>
+ <translation type="unfinished">1024</translation>
+ </message>
+ <message>
+ <source>2048</source>
+ <translation type="unfinished">2048</translation>
+ </message>
+ <message>
+ <source>4096</source>
+ <translation type="unfinished">4096</translation>
+ </message>
+ <message>
+ <source>8172</source>
+ <translation type="unfinished">8172</translation>
+ </message>
+ <message>
+ <source>Displayed Resolution
+(Ticks/Quarternote)</source>
+ <translation type="unfinished">Resoluci� mostrada
+(ticks/negra)</translation>
+ </message>
+ <message>
+ <source>48</source>
+ <translation type="unfinished">48</translation>
+ </message>
+ <message>
+ <source>96</source>
+ <translation type="unfinished">96</translation>
+ </message>
+ <message>
+ <source>192</source>
+ <translation type="unfinished">192</translation>
+ </message>
+ <message>
+ <source>384</source>
+ <translation type="unfinished">384</translation>
+ </message>
+ <message>
+ <source>768</source>
+ <translation type="unfinished">768</translation>
+ </message>
+ <message>
+ <source>1536</source>
+ <translation type="unfinished">1536</translation>
+ </message>
+ <message>
+ <source>3072</source>
+ <translation type="unfinished">3072</translation>
+ </message>
+ <message>
+ <source>6144</source>
+ <translation type="unfinished">6144</translation>
+ </message>
+ <message>
+ <source>12288</source>
+ <translation type="unfinished">12288</translation>
+ </message>
+ <message>
+ <source>RTC Resolution
+(Ticks/Sec)</source>
+ <translation type="unfinished">Resoluci� del reloj
+(Ticks/segundo)</translation>
+ </message>
+ <message>
+ <source>GUI</source>
+ <translation type="unfinished">GUI</translation>
+ </message>
+ <message>
+ <source>/sec</source>
+ <translation type="unfinished">/seg</translation>
+ </message>
+ <message>
+ <source>GUI Refresh Rate</source>
+ <translation type="unfinished">Velocidad de refresco del GUI</translation>
+ </message>
+ <message>
+ <source>&amp;Apply</source>
+ <translation type="unfinished">&amp;Aplicar</translation>
+ </message>
+ <message>
+ <source>&amp;Ok</source>
+ <translation type="unfinished">Ac&amp;eptar</translation>
+ </message>
+ <message>
+ <source>&amp;Cancel</source>
+ <translation type="unfinished">&amp;Cancelar</translation>
+ </message>
+ <message>
+ <source>Help Browser:</source>
+ <translation type="unfinished">Navegador de ayuda:</translation>
+ </message>
+ <message>
+ <source>Application</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Start Muse</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>start with last song</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>start with song</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>start song:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Views</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>y-pos</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>show</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>x-pos</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>height</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>width</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Big Time</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Arranger</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Transport</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cur</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>set current values</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>start with template: default.med</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>show splash screen</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>IIWUGuiBase</name>
+ <message>
+ <source>Form1</source>
+ <translation type="obsolete">Formulario1</translation>
+ </message>
+ <message>
+ <source>Soundfont</source>
+ <translation type="obsolete">Fuente de sonido</translation>
+ </message>
+ <message>
+ <source>Load</source>
+ <translation type="obsolete">Cargar</translation>
+ </message>
+</context>
+<context>
+ <name>IIWUSynthGuiBase</name>
+ <message>
+ <source>IIWU Synth</source>
+ <translation type="obsolete">Sintetizador IIWU</translation>
+ </message>
+ <message>
+ <source>Gain</source>
+ <translation type="obsolete">Ganancia</translation>
+ </message>
+ <message>
+ <source>Room Size</source>
+ <translation type="obsolete">Tama� estancia</translation>
+ </message>
+ <message>
+ <source>Damping</source>
+ <translation type="obsolete">Amortiguamiento</translation>
+ </message>
+ <message>
+ <source>Level</source>
+ <translation type="obsolete">Nivel</translation>
+ </message>
+ <message>
+ <source>Width</source>
+ <translation type="obsolete">Anchura</translation>
+ </message>
+ <message>
+ <source>Speed</source>
+ <translation type="obsolete">Velocidad</translation>
+ </message>
+ <message>
+ <source>Depth</source>
+ <translation type="obsolete">Profundidad</translation>
+ </message>
+ <message>
+ <source>Number</source>
+ <translation type="obsolete">Nmero</translation>
+ </message>
+ <message>
+ <source>Type</source>
+ <translation type="obsolete">Tipo</translation>
+ </message>
+ <message>
+ <source>Sine</source>
+ <translation type="obsolete">Seno</translation>
+ </message>
+ <message>
+ <source>Triangle</source>
+ <translation type="obsolete">Tri�gulo</translation>
+ </message>
+ <message>
+ <source>Reverb</source>
+ <translation type="obsolete">Reverberaci�</translation>
+ </message>
+ <message>
+ <source>Chorus</source>
+ <translation type="obsolete">Coro ;-)</translation>
+ </message>
+ <message>
+ <source>Pop</source>
+ <translation type="obsolete">Pop 8-?</translation>
+ </message>
+ <message>
+ <source>Push</source>
+ <translation type="obsolete">Empuje</translation>
+ </message>
+ <message>
+ <source>...</source>
+ <translation type="obsolete">...</translation>
+ </message>
+ <message>
+ <source>show iiwusynth controls</source>
+ <translation type="obsolete">mostrar controles del sintetizador iiwu</translation>
+ </message>
+ <message>
+ <source>Load</source>
+ <translation type="obsolete">Cargar</translation>
+ </message>
+ <message>
+ <source>Save</source>
+ <translation type="obsolete">Guardar</translation>
+ </message>
+</context>
+<context>
+ <name>LMaster</name>
+ <message>
+ <source>new tempo</source>
+ <translation type="unfinished">nuevo tempo</translation>
+ </message>
+ <message>
+ <source>new signature</source>
+ <translation type="unfinished">nuevo comp�</translation>
+ </message>
+ <message>
+ <source>Meter</source>
+ <translation type="unfinished">Metr�omo</translation>
+ </message>
+ <message>
+ <source>Time</source>
+ <translation type="unfinished">Tiempo</translation>
+ </message>
+ <message>
+ <source>Type</source>
+ <translation type="unfinished">Tipo</translation>
+ </message>
+ <message>
+ <source>Value</source>
+ <translation type="unfinished">Valor</translation>
+ </message>
+ <message>
+ <source>MusE: Mastertrack</source>
+ <translation type="unfinished">MusE: Pista maestra</translation>
+ </message>
+ <message>
+ <source>Tempo</source>
+ <translation type="unfinished">Tempo</translation>
+ </message>
+ <message>
+ <source>Timesig</source>
+ <translation type="unfinished">comp�</translation>
+ </message>
+</context>
+<context>
+ <name>ListEdit</name>
+ <message>
+ <source>&amp;Edit</source>
+ <translation type="unfinished">&amp;Editar</translation>
+ </message>
+ <message>
+ <source>Cut</source>
+ <translation type="unfinished">Cortar</translation>
+ </message>
+ <message>
+ <source>Copy</source>
+ <translation type="unfinished">Copiar</translation>
+ </message>
+ <message>
+ <source>Paste</source>
+ <translation type="unfinished">Pegar</translation>
+ </message>
+ <message>
+ <source>List Tools</source>
+ <translation type="unfinished">Lista de herramientas</translation>
+ </message>
+ <message>
+ <source>Insert Tools</source>
+ <translation type="unfinished">Insertar herramientas</translation>
+ </message>
+ <message>
+ <source>Delete Events</source>
+ <translation type="unfinished">Borrar eventos</translation>
+ </message>
+ <message>
+ <source>Insert Note</source>
+ <translation type="unfinished">Insertar nota</translation>
+ </message>
+ <message>
+ <source>insert Note</source>
+ <translation type="unfinished">insertar Nota</translation>
+ </message>
+ <message>
+ <source>Insert SysEx</source>
+ <translation type="unfinished">Insertar sistema exclusivo</translation>
+ </message>
+ <message>
+ <source>insert SysEx</source>
+ <translation type="unfinished">insertar sistema exclusivo</translation>
+ </message>
+ <message>
+ <source>Insert Ctrl</source>
+ <translation type="unfinished">Insertar controlador</translation>
+ </message>
+ <message>
+ <source>insert Ctrl</source>
+ <translation type="unfinished">insertar controlador</translation>
+ </message>
+ <message>
+ <source>Insert Meta</source>
+ <translation type="unfinished">Insertar Meta</translation>
+ </message>
+ <message>
+ <source>insert Meta</source>
+ <translation type="unfinished">insertar Meta</translation>
+ </message>
+ <message>
+ <source>Insert Pitch</source>
+ <translation type="obsolete">Insertar Tono</translation>
+ </message>
+ <message>
+ <source>insert Pitch</source>
+ <translation type="obsolete">insertar Tono</translation>
+ </message>
+ <message>
+ <source>Insert Channel Aftertouch</source>
+ <translation type="unfinished">Insertar AfterTouch de canal</translation>
+ </message>
+ <message>
+ <source>insert Channel Aftertouch</source>
+ <translation type="unfinished">insertar AfterTouch de canal</translation>
+ </message>
+ <message>
+ <source>Insert Key Aftertouch</source>
+ <translation type="unfinished">Insertar AfterTouch de tecla</translation>
+ </message>
+ <message>
+ <source>insert Poly Aftertouch</source>
+ <translation type="unfinished">insertar AfterTouch Polif�ico</translation>
+ </message>
+ <message>
+ <source>Tick</source>
+ <translation type="unfinished">Tick</translation>
+ </message>
+ <message>
+ <source>Bar</source>
+ <translation type="unfinished">Comp�</translation>
+ </message>
+ <message>
+ <source>Typ</source>
+ <translation type="unfinished">Tip</translation>
+ </message>
+ <message>
+ <source>Ch</source>
+ <translation type="unfinished">Cn</translation>
+ </message>
+ <message>
+ <source>Val A</source>
+ <translation type="unfinished">Val A</translation>
+ </message>
+ <message>
+ <source>Val B</source>
+ <translation type="unfinished">Val B</translation>
+ </message>
+ <message>
+ <source>Val C</source>
+ <translation type="unfinished">Val C</translation>
+ </message>
+ <message>
+ <source>Len</source>
+ <translation type="unfinished">Lon</translation>
+ </message>
+ <message>
+ <source>Comment</source>
+ <translation type="unfinished">Comentario</translation>
+ </message>
+</context>
+<context>
+ <name>MITTransposeBase</name>
+ <message>
+ <source>MusE: Midi Input Plugin: Transpose</source>
+ <translation type="unfinished">MusE: Plugin de entrada MIDI : Transposici�</translation>
+ </message>
+ <message>
+ <source>On</source>
+ <translation type="unfinished">Encendido</translation>
+ </message>
+ <message>
+ <source>TriggerKey</source>
+ <translation type="unfinished">Tecla de salto</translation>
+ </message>
+ <message>
+ <source>Transpose:</source>
+ <translation type="unfinished">Trasponer:</translation>
+ </message>
+ <message>
+ <source>+0</source>
+ <translation type="unfinished">+0</translation>
+ </message>
+</context>
+<context>
+ <name>MPConfig</name>
+ <message>
+ <source>none</source>
+ <translation type="unfinished">ninguno</translation>
+ </message>
+ <message>
+ <source>other raw ...</source>
+ <translation type="obsolete">otro crudo (raw) ...</translation>
+ </message>
+ <message>
+ <source>MusE: Midi Port Table</source>
+ <translation type="obsolete">MusE: Tabla de puertos MIDI</translation>
+ </message>
+ <message>
+ <source>Port</source>
+ <translation type="unfinished">Puerto</translation>
+ </message>
+ <message>
+ <source>GUI</source>
+ <translation type="unfinished">GUI</translation>
+ </message>
+ <message>
+ <source>Rec</source>
+ <translation type="obsolete">Grabar</translation>
+ </message>
+ <message>
+ <source>Instrument</source>
+ <translation type="unfinished">Instrumento</translation>
+ </message>
+ <message>
+ <source>Device Name</source>
+ <translation type="unfinished">Nombre de dispositivo</translation>
+ </message>
+ <message>
+ <source>State</source>
+ <translation type="unfinished">Estado</translation>
+ </message>
+ <message>
+ <source>unknown</source>
+ <translation type="unfinished">desconocido</translation>
+ </message>
+ <message>
+ <source>I</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>O</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>MRConfigBase</name>
+ <message>
+ <source>MusE: Midi Input Plugin: Remote Control</source>
+ <translation type="unfinished">MusE: Pluginde entrada MIDI : Control remoto</translation>
+ </message>
+ <message>
+ <source>Activate</source>
+ <translation type="unfinished">Activar</translation>
+ </message>
+ <message>
+ <source>On</source>
+ <translation type="unfinished">Encendido</translation>
+ </message>
+ <message>
+ <source>Actions</source>
+ <translation type="unfinished">Acciones</translation>
+ </message>
+ <message>
+ <source>Stop</source>
+ <translation type="unfinished">Parar</translation>
+ </message>
+ <message>
+ <source>Record</source>
+ <translation type="unfinished">Grabar</translation>
+ </message>
+ <message>
+ <source>Goto Left Mark</source>
+ <translation type="unfinished">Ir ala marca izquierda</translation>
+ </message>
+ <message>
+ <source>Play</source>
+ <translation type="unfinished">Reproducir</translation>
+ </message>
+</context>
+<context>
+ <name>MTScale</name>
+ <message>
+ <source>bar scale</source>
+ <translation type="unfinished">escala de compases</translation>
+ </message>
+</context>
+<context>
+ <name>MarkerView</name>
+ <message>
+ <source>Bar:Beat:Tick</source>
+ <translation type="unfinished">Barra:Golpe:Tick</translation>
+ </message>
+ <message>
+ <source>Hr:Mn:Sc:Fr:Sf</source>
+ <translation type="unfinished">Hr:Mn:Sg:Fr:Sf</translation>
+ </message>
+ <message>
+ <source>Lock</source>
+ <translation type="unfinished">Bloquear</translation>
+ </message>
+ <message>
+ <source>Text</source>
+ <translation type="unfinished">Texto</translation>
+ </message>
+ <message>
+ <source>Marker Properties</source>
+ <translation type="unfinished">Propiedades del marcador</translation>
+ </message>
+ <message>
+ <source>MusE: Marker</source>
+ <translation type="unfinished">MusE: Marcador</translation>
+ </message>
+ <message>
+ <source>add marker</source>
+ <translation type="unfinished">a�dir marcador</translation>
+ </message>
+ <message>
+ <source>Add Marker</source>
+ <translation type="unfinished">A�dir marcador</translation>
+ </message>
+ <message>
+ <source>delete marker</source>
+ <translation type="unfinished">borrar marcador</translation>
+ </message>
+ <message>
+ <source>Delete Marker</source>
+ <translation type="unfinished">Borrar Marcador</translation>
+ </message>
+ <message>
+ <source>&amp;File</source>
+ <translation type="unfinished">&amp;Archivo</translation>
+ </message>
+ <message>
+ <source>&amp;Edit</source>
+ <translation type="unfinished">&amp;Editar</translation>
+ </message>
+</context>
+<context>
+ <name>MasterEdit</name>
+ <message>
+ <source>Cursor</source>
+ <translation type="unfinished">Cursor</translation>
+ </message>
+ <message>
+ <source>Snap</source>
+ <translation type="unfinished">Snap</translation>
+ </message>
+ <message>
+ <source>time at cursor position</source>
+ <translation type="unfinished">tiempo en la posici� del cursor</translation>
+ </message>
+ <message>
+ <source>tempo at cursor position</source>
+ <translation type="unfinished">tempo en la posici� del cursor</translation>
+ </message>
+ <message>
+ <source>CurPos </source>
+ <translation type="unfinished">Posici� del cursor </translation>
+ </message>
+ <message>
+ <source>tempo at current position</source>
+ <translation type="unfinished">tempo en la posici� actual</translation>
+ </message>
+ <message>
+ <source>time signature at current position</source>
+ <translation type="unfinished">comp� en la posici� actual</translation>
+ </message>
+ <message>
+ <source>Master</source>
+ <translation type="obsolete">Maestro</translation>
+ </message>
+ <message>
+ <source>MusE: Mastertrack</source>
+ <translation type="unfinished">Muse: Pista Maestra</translation>
+ </message>
+ <message>
+ <source>edit tools</source>
+ <translation type="unfinished">editar herramientas</translation>
+ </message>
+ <message>
+ <source>EnableMaster</source>
+ <translation type="unfinished">Habilitar maestro</translation>
+ </message>
+ <message>
+ <source>use master track</source>
+ <translation type="obsolete">usar pista maestra</translation>
+ </message>
+ <message>
+ <source>Info</source>
+ <translation type="unfinished">Info</translation>
+ </message>
+ <message>
+ <source>Off</source>
+ <translation type="unfinished">Apagado</translation>
+ </message>
+ <message>
+ <source>Enable</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Enable usage of master track</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>MetronomeConfigBase</name>
+ <message>
+ <source>MusE: Metronome Config</source>
+ <translation type="unfinished">MusE: Configuraci� del metr�omo</translation>
+ </message>
+ <message>
+ <source>Metronome</source>
+ <translation type="unfinished">Metr�omo</translation>
+ </message>
+ <message>
+ <source>Audio Beep</source>
+ <translation type="unfinished">Bip de audio</translation>
+ </message>
+ <message>
+ <source>MIDI Click</source>
+ <translation type="unfinished">Click MIDI</translation>
+ </message>
+ <message>
+ <source>Midi Channel</source>
+ <translation type="unfinished">Canal MIDI</translation>
+ </message>
+ <message>
+ <source>Measure Note</source>
+ <translation type="unfinished">Nota de comp�</translation>
+ </message>
+ <message>
+ <source>Measure Velocity</source>
+ <translation type="unfinished">Velocidad de comp�</translation>
+ </message>
+ <message>
+ <source>Beat Velocity</source>
+ <translation type="unfinished">Velocidad de barra</translation>
+ </message>
+ <message>
+ <source>Beat Note</source>
+ <translation type="unfinished">Nota de barra</translation>
+ </message>
+ <message>
+ <source>Midi Port</source>
+ <translation type="unfinished">Puerto MIDI</translation>
+ </message>
+ <message>
+ <source>Precount</source>
+ <translation type="unfinished">Cuenta atr�</translation>
+ </message>
+ <message>
+ <source>enable</source>
+ <translation type="unfinished">habilitada</translation>
+ </message>
+ <message>
+ <source>Bars</source>
+ <translation type="unfinished">Compases</translation>
+ </message>
+ <message>
+ <source>From Mastertrack</source>
+ <translation type="unfinished">desde la pista Mestra</translation>
+ </message>
+ <message>
+ <source>/</source>
+ <translation type="unfinished">/</translation>
+ </message>
+ <message>
+ <source>Signature</source>
+ <translation type="unfinished">comp�</translation>
+ </message>
+ <message>
+ <source>Prerecord</source>
+ <translation type="unfinished">pre-grabaci�</translation>
+ </message>
+ <message>
+ <source>Preroll</source>
+ <translation type="unfinished">pre-escucha</translation>
+ </message>
+ <message>
+ <source>&amp;Apply</source>
+ <translation type="unfinished">&amp;Aplicar</translation>
+ </message>
+ <message>
+ <source>&amp;OK</source>
+ <translation type="unfinished">Ac&amp;eptar</translation>
+ </message>
+ <message>
+ <source>&amp;Cancel</source>
+ <translation type="unfinished">&amp;Cancelar</translation>
+ </message>
+</context>
+<context>
+ <name>MidiController</name>
+ <message>
+ <source>Velocity</source>
+ <translation type="unfinished">Velocidad</translation>
+ </message>
+</context>
+<context>
+ <name>MidiControllerEditDialog</name>
+ <message>
+ <source>MusE: save midi controller list</source>
+ <translation type="obsolete">MusE: guardar lista de controladores MIDI</translation>
+ </message>
+ <message>
+ <source>MusE: load midi controller list</source>
+ <translation type="obsolete">MusE: Cargar lista de controladores MIDI</translation>
+ </message>
+</context>
+<context>
+ <name>MidiControllerEditDialogBase</name>
+ <message>
+ <source>MusE: Define Midi Controller</source>
+ <translation type="unfinished">MusE: Define controlador MIDI</translation>
+ </message>
+ <message>
+ <source>replace controller set</source>
+ <translation type="obsolete">reemplazar conjunto de controladores</translation>
+ </message>
+ <message>
+ <source>merge controller set</source>
+ <translation type="obsolete">unir conjunto de controladores</translation>
+ </message>
+ <message>
+ <source>save controller set as</source>
+ <translation type="obsolete">guardar conjunto de controladores como</translation>
+ </message>
+ <message>
+ <source>Name </source>
+ <translation type="unfinished">Nombre </translation>
+ </message>
+ <message>
+ <source>Type </source>
+ <translation type="unfinished">Tipo </translation>
+ </message>
+ <message>
+ <source>H-Ctrl</source>
+ <translation type="unfinished">Control-H</translation>
+ </message>
+ <message>
+ <source>L-Ctrl</source>
+ <translation type="unfinished">Control-L</translation>
+ </message>
+ <message>
+ <source>Min Val</source>
+ <translation type="unfinished">Valor m�imo</translation>
+ </message>
+ <message>
+ <source>Max Val</source>
+ <translation type="unfinished">Valor m�imo</translation>
+ </message>
+ <message>
+ <source>list of defined controllers</source>
+ <translation type="unfinished">lista de controladores definidos</translation>
+ </message>
+ <message>
+ <source>This is the MusE list of defined controllers.</source>
+ <translation type="unfinished">Esta es la lista de controladores definidos por MusE.</translation>
+ </message>
+ <message>
+ <source>Properties</source>
+ <translation type="unfinished">Propiedades</translation>
+ </message>
+ <message>
+ <source>Name</source>
+ <translation type="unfinished">Nombre</translation>
+ </message>
+ <message>
+ <source>Max Value</source>
+ <translation type="unfinished">Valor m�imo</translation>
+ </message>
+ <message>
+ <source>Min Value</source>
+ <translation type="unfinished">Valor m�imo</translation>
+ </message>
+ <message>
+ <source>Control7</source>
+ <translation type="unfinished">Control7 :-?</translation>
+ </message>
+ <message>
+ <source>Control14</source>
+ <translation type="unfinished">Control14</translation>
+ </message>
+ <message>
+ <source>RPN</source>
+ <translation type="unfinished">RPN</translation>
+ </message>
+ <message>
+ <source>NRPN</source>
+ <translation type="unfinished">NRPN</translation>
+ </message>
+ <message>
+ <source>XG-SysEx</source>
+ <translation type="obsolete">Sys-Ex-XG</translation>
+ </message>
+ <message>
+ <source>SysEx</source>
+ <translation type="obsolete">Sistema Exclusivo</translation>
+ </message>
+ <message>
+ <source>Type</source>
+ <translation type="unfinished">Tipo</translation>
+ </message>
+ <message>
+ <source>&amp;New</source>
+ <translation type="obsolete">&amp;Nuevo</translation>
+ </message>
+ <message>
+ <source>create new entry</source>
+ <translation type="unfinished">crear entrada nueva</translation>
+ </message>
+ <message>
+ <source>pressing the New button you create a new entry
+in the MusE list of defined controllers</source>
+ <translation type="unfinished">pulsando el bot� se crear�una nueva
+clase de controladores en la lista de MusE.</translation>
+ </message>
+ <message>
+ <source>&amp;Delete</source>
+ <translation type="unfinished">&amp;Borrar</translation>
+ </message>
+ <message>
+ <source>delete selected entry</source>
+ <translation type="unfinished">borra la clase seleccionada</translation>
+ </message>
+ <message>
+ <source>&amp;OK</source>
+ <translation type="unfinished">&amp;Aceptar</translation>
+ </message>
+ <message>
+ <source>&amp;Cancel</source>
+ <translation type="unfinished">&amp;Cancelar</translation>
+ </message>
+ <message>
+ <source>&amp;Add</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Alt+A</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Predefined Controller:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Managed Controller for Port</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Channel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <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="unfinished"></translation>
+ </message>
+ <message>
+ <source>Pitch</source>
+ <translation type="unfinished">Tono</translation>
+ </message>
+ <message>
+ <source>Program</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Midi Controller Number High Byte</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Midi Controller Number Low Byte</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Range</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>MidiFileConfig</name>
+ <message>
+ <source>Enable extended smf format</source>
+ <translation type="obsolete">Habilita el formato extendido de smf</translation>
+ </message>
+ <message>
+ <source>Division</source>
+ <translation type="obsolete">Divisi�</translation>
+ </message>
+ <message>
+ <source>Copyright</source>
+ <translation type="obsolete">Copyright</translation>
+ </message>
+ <message>
+ <source>Config exported Midi Files</source>
+ <translation type="obsolete">Configurar archivos MIDI exportados</translation>
+ </message>
+ <message>
+ <source>MusE: Config exported Midi Files</source>
+ <translation type="obsolete">MusE: configurar archivos MIDi exportados</translation>
+ </message>
+</context>
+<context>
+ <name>MidiFilterConfigBase</name>
+ <message>
+ <source>MusE: Midi Input Filter</source>
+ <translation type="unfinished">MusE: Filtro de entrada MIDI</translation>
+ </message>
+ <message>
+ <source>Record Filter</source>
+ <translation type="unfinished">Filtro de grabaci�</translation>
+ </message>
+ <message>
+ <source>Note On</source>
+ <translation type="unfinished">Nota on</translation>
+ </message>
+ <message>
+ <source>Poly Pressure</source>
+ <translation type="unfinished">Presi� polif�ica</translation>
+ </message>
+ <message>
+ <source>Controller</source>
+ <translation type="unfinished">Caontrolador</translation>
+ </message>
+ <message>
+ <source>Program Change</source>
+ <translation type="unfinished">Cambio de programa</translation>
+ </message>
+ <message>
+ <source>After Touch</source>
+ <translation type="unfinished">After Touch</translation>
+ </message>
+ <message>
+ <source>Pitch Bend</source>
+ <translation type="unfinished">Rueda de bend</translation>
+ </message>
+ <message>
+ <source>Sysex</source>
+ <translation type="unfinished">Sistema exclusivo</translation>
+ </message>
+ <message>
+ <source>Thru Filter</source>
+ <translation type="unfinished">Filtro Thru</translation>
+ </message>
+ <message>
+ <source>Controller Filter</source>
+ <translation type="unfinished">Filtrar controlador</translation>
+ </message>
+ <message>
+ <source>Channel Filter</source>
+ <translation type="unfinished">Filtro de canal</translation>
+ </message>
+ <message>
+ <source>14</source>
+ <translation type="unfinished">14</translation>
+ </message>
+ <message>
+ <source>10</source>
+ <translation type="unfinished">10</translation>
+ </message>
+ <message>
+ <source>6</source>
+ <translation type="unfinished">6</translation>
+ </message>
+ <message>
+ <source>12</source>
+ <translation type="unfinished">12</translation>
+ </message>
+ <message>
+ <source>4</source>
+ <translation type="unfinished">4</translation>
+ </message>
+ <message>
+ <source>2</source>
+ <translation type="unfinished">2</translation>
+ </message>
+ <message>
+ <source>9</source>
+ <translation type="unfinished">9</translation>
+ </message>
+ <message>
+ <source>8</source>
+ <translation type="unfinished">8</translation>
+ </message>
+ <message>
+ <source>3</source>
+ <translation type="unfinished">3</translation>
+ </message>
+ <message>
+ <source>13</source>
+ <translation type="unfinished">13</translation>
+ </message>
+ <message>
+ <source>15</source>
+ <translation type="unfinished">15</translation>
+ </message>
+ <message>
+ <source>16</source>
+ <translation type="unfinished">16</translation>
+ </message>
+ <message>
+ <source>7</source>
+ <translation type="unfinished">7</translation>
+ </message>
+ <message>
+ <source>11</source>
+ <translation type="unfinished">11</translation>
+ </message>
+ <message>
+ <source>5</source>
+ <translation type="unfinished">5</translation>
+ </message>
+ <message>
+ <source>1</source>
+ <translation type="unfinished">1</translation>
+ </message>
+</context>
+<context>
+ <name>MidiInputTransformDialog</name>
+ <message>
+ <source>New</source>
+ <translation type="unfinished">Nueva</translation>
+ </message>
+</context>
+<context>
+ <name>MidiInputTransformDialogBase</name>
+ <message>
+ <source>MusE: Midi Input Transformator</source>
+ <translation type="unfinished">MusE: Transformador de entrada MIDI</translation>
+ </message>
+ <message>
+ <source>Filter</source>
+ <translation type="unfinished">Filtrar</translation>
+ </message>
+ <message>
+ <source>All</source>
+ <translation type="unfinished">Todo</translation>
+ </message>
+ <message>
+ <source>Equal</source>
+ <translation type="unfinished">Igual</translation>
+ </message>
+ <message>
+ <source>Unequal</source>
+ <translation type="unfinished">Diferente</translation>
+ </message>
+ <message>
+ <source>Note</source>
+ <translation type="unfinished">Nota</translation>
+ </message>
+ <message>
+ <source>Poly Pressure</source>
+ <translation type="unfinished">Presi� poif�ica</translation>
+ </message>
+ <message>
+ <source>Control Change</source>
+ <translation type="unfinished">Cambio de control</translation>
+ </message>
+ <message>
+ <source>Aftertouch</source>
+ <translation type="unfinished">AfterTouch</translation>
+ </message>
+ <message>
+ <source>Pitch Bend</source>
+ <translation type="unfinished">Rueda de modulaci�</translation>
+ </message>
+ <message>
+ <source>NRPN</source>
+ <translation type="unfinished">NRPN</translation>
+ </message>
+ <message>
+ <source>RPN</source>
+ <translation type="unfinished">RPN</translation>
+ </message>
+ <message>
+ <source>Value 2</source>
+ <translation type="unfinished">Valor 2</translation>
+ </message>
+ <message>
+ <source>Value 1</source>
+ <translation type="unfinished">Valor 1</translation>
+ </message>
+ <message>
+ <source>Event Type</source>
+ <translation type="unfinished">Tipo de Evento</translation>
+ </message>
+ <message>
+ <source>Ignore</source>
+ <translation type="unfinished">Ignorar</translation>
+ </message>
+ <message>
+ <source>Higher</source>
+ <translation type="unfinished">Mayor</translation>
+ </message>
+ <message>
+ <source>Lower</source>
+ <translation type="unfinished">Menor</translation>
+ </message>
+ <message>
+ <source>Inside</source>
+ <translation type="unfinished">Entre</translation>
+ </message>
+ <message>
+ <source>Outside</source>
+ <translation type="unfinished">Fuera</translation>
+ </message>
+ <message>
+ <source>Channel</source>
+ <translation type="unfinished">Canal</translation>
+ </message>
+ <message>
+ <source>Port</source>
+ <translation type="unfinished">Puerto</translation>
+ </message>
+ <message>
+ <source>Processing</source>
+ <translation type="unfinished">Procesando</translation>
+ </message>
+ <message>
+ <source>Keep</source>
+ <translation type="unfinished">Mantener</translation>
+ </message>
+ <message>
+ <source>Fix</source>
+ <translation type="unfinished">Arreglar</translation>
+ </message>
+ <message>
+ <source>Plus</source>
+ <translation type="unfinished">M�</translation>
+ </message>
+ <message>
+ <source>Minus</source>
+ <translation type="unfinished">Menos</translation>
+ </message>
+ <message>
+ <source>Multiply</source>
+ <translation type="unfinished">Multiplicar</translation>
+ </message>
+ <message>
+ <source>Divide</source>
+ <translation type="unfinished">Dividir</translation>
+ </message>
+ <message>
+ <source>Invert</source>
+ <translation type="unfinished">Invertir</translation>
+ </message>
+ <message>
+ <source>ScaleMap</source>
+ <translation type="unfinished">Mapa de escalado</translation>
+ </message>
+ <message>
+ <source>Flip</source>
+ <translation type="unfinished">cambiar</translation>
+ </message>
+ <message>
+ <source>Dyn</source>
+ <translation type="unfinished">Din�ico</translation>
+ </message>
+ <message>
+ <source>Random</source>
+ <translation type="unfinished">Aleatorio</translation>
+ </message>
+ <message>
+ <source>Modules</source>
+ <translation type="unfinished">M�ulos</translation>
+ </message>
+ <message>
+ <source>1</source>
+ <translation type="unfinished">1</translation>
+ </message>
+ <message>
+ <source>2</source>
+ <translation type="unfinished">2</translation>
+ </message>
+ <message>
+ <source>3</source>
+ <translation type="unfinished">3</translation>
+ </message>
+ <message>
+ <source>4</source>
+ <translation type="unfinished">4</translation>
+ </message>
+ <message>
+ <source>enable modul 1</source>
+ <translation type="unfinished">habilitar m�ulo 1</translation>
+ </message>
+ <message>
+ <source>enable modul 2</source>
+ <translation type="unfinished">habilitar m�ulo 2</translation>
+ </message>
+ <message>
+ <source>enable modul 3</source>
+ <translation type="unfinished">habilitar m�ulo 3</translation>
+ </message>
+ <message>
+ <source>enable modul 4</source>
+ <translation type="unfinished">habilitar m�ulo 4</translation>
+ </message>
+ <message>
+ <source>Preset</source>
+ <translation type="unfinished">Preselecci�</translation>
+ </message>
+ <message>
+ <source>Name:</source>
+ <translation type="unfinished">Nombre:</translation>
+ </message>
+ <message>
+ <source>Comment:</source>
+ <translation type="unfinished">Comentario:</translation>
+ </message>
+ <message>
+ <source>Function</source>
+ <translation type="unfinished">Funci�</translation>
+ </message>
+ <message>
+ <source>&amp;New</source>
+ <translation type="unfinished">&amp;Nueva</translation>
+ </message>
+ <message>
+ <source>create new preset</source>
+ <translation type="unfinished">crea nueva preselecci�</translation>
+ </message>
+ <message>
+ <source>&amp;Delete</source>
+ <translation type="unfinished">&amp;Borrar</translation>
+ </message>
+ <message>
+ <source>delete preset</source>
+ <translation type="unfinished">borra la preselecci�</translation>
+ </message>
+ <message>
+ <source>&amp;Dismiss</source>
+ <translation type="unfinished">&amp;Ocultar</translation>
+ </message>
+ <message>
+ <source>PresetList</source>
+ <translation type="unfinished">Lista de Preselecciones</translation>
+ </message>
+</context>
+<context>
+ <name>MidiPortRouteBase</name>
+ <message>
+ <source>MusE: Midi Port Routing</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Port 2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Output</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Input</source>
+ <translation type="unfinished">Entrada</translation>
+ </message>
+</context>
+<context>
+ <name>MidiRawDeviceDialogBase</name>
+ <message>
+ <source>MusE: raw midi device configuration</source>
+ <translation type="obsolete">NusE: Condifuraci� de dispositivo MIDI directo</translation>
+ </message>
+ <message>
+ <source>Name</source>
+ <translation type="obsolete">Nombre</translation>
+ </message>
+ <message>
+ <source>Device</source>
+ <translation type="obsolete">Dispositivo</translation>
+ </message>
+ <message>
+ <source>Type</source>
+ <translation type="obsolete">Tipo</translation>
+ </message>
+ <message>
+ <source>Virt. Ports</source>
+ <translation type="obsolete">Puertos virtuales</translation>
+ </message>
+ <message>
+ <source>Speed</source>
+ <translation type="obsolete">Velocidad</translation>
+ </message>
+ <message>
+ <source>Handshaking</source>
+ <translation type="obsolete">Control de flujo</translation>
+ </message>
+ <message>
+ <source>Device Properties</source>
+ <translation type="obsolete">Propiedades del dispositivo</translation>
+ </message>
+ <message>
+ <source>Virt.Ports</source>
+ <translation type="obsolete">Ports Virtuales</translation>
+ </message>
+ <message>
+ <source>Raw Device</source>
+ <translation type="obsolete">Dispositivo directo</translation>
+ </message>
+ <message>
+ <source>Serial Port</source>
+ <translation type="obsolete">Puerto s�ie</translation>
+ </message>
+ <message>
+ <source>Pipe</source>
+ <translation type="obsolete">Tuberia</translation>
+ </message>
+ <message>
+ <source>Device Path</source>
+ <translation type="obsolete">Direcci� del dispositivo</translation>
+ </message>
+ <message>
+ <source>9600</source>
+ <translation type="obsolete">9600</translation>
+ </message>
+ <message>
+ <source>19200</source>
+ <translation type="obsolete">19200</translation>
+ </message>
+ <message>
+ <source>38400</source>
+ <translation type="obsolete">38400</translation>
+ </message>
+ <message>
+ <source>None</source>
+ <translation type="obsolete">Ninguno</translation>
+ </message>
+ <message>
+ <source>RTS/CTS</source>
+ <translation type="obsolete">RTS/CTS</translation>
+ </message>
+ <message>
+ <source>Xon/Xoff</source>
+ <translation type="obsolete">Xon/Xoff</translation>
+ </message>
+ <message>
+ <source>&amp;New</source>
+ <translation type="obsolete">&amp;Nuevo</translation>
+ </message>
+ <message>
+ <source>&amp;Delete</source>
+ <translation type="obsolete">&amp;Borrar</translation>
+ </message>
+ <message>
+ <source>&amp;OK</source>
+ <translation type="obsolete">&amp;Aceptar</translation>
+ </message>
+ <message>
+ <source>&amp;Cancel</source>
+ <translation type="obsolete">&amp;Cancelar</translation>
+ </message>
+</context>
+<context>
+ <name>MidiStrip</name>
+ <message>
+ <source>VariationSend</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Var</source>
+ <translation type="unfinished">Var</translation>
+ </message>
+ <message>
+ <source>ReverbSend</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Rev</source>
+ <translation type="unfinished">Rev</translation>
+ </message>
+ <message>
+ <source>ChorusSend</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cho</source>
+ <translation type="unfinished">Cho</translation>
+ </message>
+ <message>
+ <source>off</source>
+ <translation type="unfinished">apagado</translation>
+ </message>
+ <message>
+ <source>dB</source>
+ <translation type="unfinished">dB</translation>
+ </message>
+ <message>
+ <source>Pan/Balance</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Pan</source>
+ <translation type="unfinished">Bal</translation>
+ </message>
+ <message>
+ <source>record</source>
+ <translation type="unfinished">grabar</translation>
+ </message>
+ <message>
+ <source>mute</source>
+ <translation type="unfinished">silencio</translation>
+ </message>
+ <message>
+ <source>pre fader listening</source>
+ <translation type="unfinished">monitorizar pre fader</translation>
+ </message>
+ <message>
+ <source>Route</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>set routing</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Off</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Read</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Touch</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Write</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>automation type</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>MidiSyncConfigBase</name>
+ <message>
+ <source>MusE: Midi Sync</source>
+ <translation type="unfinished">MusE: Sincronizaci� MIDI</translation>
+ </message>
+ <message>
+ <source>Apply</source>
+ <translation type="unfinished">Aplicar</translation>
+ </message>
+ <message>
+ <source>Ok</source>
+ <translation type="unfinished">Aceptar</translation>
+ </message>
+ <message>
+ <source>Cancel</source>
+ <translation type="unfinished">Cancelar</translation>
+ </message>
+ <message>
+ <source>hour</source>
+ <translation type="unfinished">hora</translation>
+ </message>
+ <message>
+ <source>h</source>
+ <translation type="unfinished">h</translation>
+ </message>
+ <message>
+ <source>minute</source>
+ <translation type="unfinished">minuto</translation>
+ </message>
+ <message>
+ <source>m</source>
+ <translation type="unfinished">m</translation>
+ </message>
+ <message>
+ <source>second</source>
+ <translation type="unfinished">segundo</translation>
+ </message>
+ <message>
+ <source>s</source>
+ <translation type="unfinished">s</translation>
+ </message>
+ <message>
+ <source>frame</source>
+ <translation type="unfinished">frame</translation>
+ </message>
+ <message>
+ <source>f</source>
+ <translation type="unfinished">f</translation>
+ </message>
+ <message>
+ <source>subframe</source>
+ <translation type="unfinished">sub-frame</translation>
+ </message>
+ <message>
+ <source>24</source>
+ <translation type="unfinished">24</translation>
+ </message>
+ <message>
+ <source>25</source>
+ <translation type="unfinished">25</translation>
+ </message>
+ <message>
+ <source>30D</source>
+ <translation type="unfinished">30D</translation>
+ </message>
+ <message>
+ <source>30N</source>
+ <translation type="unfinished">30N</translation>
+ </message>
+ <message>
+ <source>Id:</source>
+ <translation type="unfinished">Id:</translation>
+ </message>
+ <message>
+ <source>device id</source>
+ <translation type="unfinished">id de dispositivo</translation>
+ </message>
+ <message>
+ <source>Port:</source>
+ <translation type="unfinished">Puerto:</translation>
+ </message>
+ <message>
+ <source>midi port</source>
+ <translation type="unfinished">puerto MIDI</translation>
+ </message>
+ <message>
+ <source>Sync Source</source>
+ <translation type="unfinished">Fuente de Sincronizaci�</translation>
+ </message>
+ <message>
+ <source>accept MTC</source>
+ <translation type="unfinished">aceptar MTC</translation>
+ </message>
+ <message>
+ <source>accept Midi Clock</source>
+ <translation type="unfinished">aceptar MIDI clock</translation>
+ </message>
+ <message>
+ <source>accept MMC</source>
+ <translation type="unfinished">aceptar MMC</translation>
+ </message>
+ <message>
+ <source>Sync Gen</source>
+ <translation type="unfinished">Generar Sync</translation>
+ </message>
+ <message>
+ <source>Midi Time Code (MTC)</source>
+ <translation type="unfinished">C�igo de Tiempo Midi (MTC)</translation>
+ </message>
+ <message>
+ <source>Midi Clock</source>
+ <translation type="unfinished">Reloj Midi</translation>
+ </message>
+ <message>
+ <source>Midi Machine Control (MMC)</source>
+ <translation type="unfinished">Control de m�uina MIDI (MMC)</translation>
+ </message>
+ <message>
+ <source>Sync Mode</source>
+ <translation type="unfinished">Modo de sincronizaci�</translation>
+ </message>
+ <message>
+ <source>Master</source>
+ <translation type="unfinished">Maestro</translation>
+ </message>
+ <message>
+ <source>Slave</source>
+ <translation type="unfinished">Esclavo</translation>
+ </message>
+ <message>
+ <source>all</source>
+ <translation type="unfinished">todo</translation>
+ </message>
+ <message>
+ <source>MTC</source>
+ <translation type="unfinished">MTC</translation>
+ </message>
+ <message>
+ <source>Type:</source>
+ <translation type="unfinished">Tipo:</translation>
+ </message>
+ <message>
+ <source>Offset:</source>
+ <translation type="unfinished">Desplazamiento:</translation>
+ </message>
+</context>
+<context>
+ <name>MidiTrackInfoBase</name>
+ <message>
+ <source>MusE: TrackInfo</source>
+ <translation type="unfinished">MusE: Informaci� de pista</translation>
+ </message>
+ <message>
+ <source>output channel</source>
+ <translation type="unfinished">canal de salida</translation>
+ </message>
+ <message>
+ <source>all midi events are send to this output channel</source>
+ <translation type="unfinished">todos los eventos MIDI se envian a �te canal de salida</translation>
+ </message>
+ <message>
+ <source>Track Info</source>
+ <translation type="unfinished">Informaci� de Pista</translation>
+ </message>
+ <message>
+ <source>%</source>
+ <translation type="unfinished">%</translation>
+ </message>
+ <message>
+ <source>Track Name</source>
+ <translation type="unfinished">Nombre de Pista</translation>
+ </message>
+ <message>
+ <source>output port</source>
+ <translation type="unfinished">puerto de salida</translation>
+ </message>
+ <message>
+ <source>off</source>
+ <translation type="unfinished">apagado</translation>
+ </message>
+ <message>
+ <source>change stereo position</source>
+ <translation type="unfinished">cambiar posici� estereof�ica</translation>
+ </message>
+ <message>
+ <source>OCh.</source>
+ <translation type="unfinished">OCh.</translation>
+ </message>
+ <message>
+ <source>MidiThru</source>
+ <translation type="obsolete">Midi Thru</translation>
+ </message>
+ <message>
+ <source>???</source>
+ <translation type="unfinished">???</translation>
+ </message>
+ <message>
+ <source>select instrument patch</source>
+ <translation type="unfinished">selecciona el grupo de instrumento</translation>
+ </message>
+ <message>
+ <source>Transp.</source>
+ <translation type="unfinished">Transposici�</translation>
+ </message>
+ <message>
+ <source>Volume</source>
+ <translation type="unfinished">Volumen</translation>
+ </message>
+ <message>
+ <source>Channel Info</source>
+ <translation type="unfinished">Informaci� de Canal</translation>
+ </message>
+ <message>
+ <source>Pan</source>
+ <translation type="unfinished">Balance</translation>
+ </message>
+ <message>
+ <source>Delay</source>
+ <translation type="unfinished">Delay</translation>
+ </message>
+ <message>
+ <source>H-Bank</source>
+ <translation type="unfinished">Banco-H</translation>
+ </message>
+ <message>
+ <source>Compr.</source>
+ <translation type="unfinished">Compr.</translation>
+ </message>
+ <message>
+ <source>L-Bank</source>
+ <translation type="unfinished">Banco-L</translation>
+ </message>
+ <message>
+ <source>Progr.</source>
+ <translation type="unfinished">Progr.</translation>
+ </message>
+ <message>
+ <source>Velocity</source>
+ <translation type="unfinished">Velocidad</translation>
+ </message>
+ <message>
+ <source>Length</source>
+ <translation type="unfinished">Longitud</translation>
+ </message>
+ <message>
+ <source>input ports</source>
+ <translation type="unfinished">puertos de entrada</translation>
+ </message>
+ <message>
+ <source>IChan.</source>
+ <translation type="unfinished">Canal de entrada</translation>
+ </message>
+ <message>
+ <source>input channels</source>
+ <translation type="unfinished">Canales de entrada</translation>
+ </message>
+ <message>
+ <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="unfinished">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>
+ <source>record:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Rec</source>
+ <translation type="unfinished">Grabar</translation>
+ </message>
+ <message>
+ <source>add settings to song</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Bank Select LSB</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Bank Select MSB</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>MidiTransformDialogBase</name>
+ <message>
+ <source>MusE: Midi Transformator</source>
+ <translation type="unfinished">MusE: Transformador MIDI</translation>
+ </message>
+ <message>
+ <source>&amp;New</source>
+ <translation type="unfinished">&amp;Nueva</translation>
+ </message>
+ <message>
+ <source>&amp;Delete</source>
+ <translation type="unfinished">&amp;Borrar</translation>
+ </message>
+ <message>
+ <source>&amp;Apply</source>
+ <translation type="unfinished">&amp;Aplicar</translation>
+ </message>
+ <message>
+ <source>&amp;OK</source>
+ <translation type="unfinished">Ac&amp;eptar</translation>
+ </message>
+ <message>
+ <source>&amp;Cancel</source>
+ <translation type="unfinished">&amp;Cancelar</translation>
+ </message>
+ <message>
+ <source>PresetList</source>
+ <translation type="unfinished">Lista de preselecciones</translation>
+ </message>
+ <message>
+ <source>Processing</source>
+ <translation type="unfinished">Procesando</translation>
+ </message>
+ <message>
+ <source>Event Type</source>
+ <translation type="unfinished">Tipo de evento</translation>
+ </message>
+ <message>
+ <source>Keep</source>
+ <translation type="unfinished">Mantener</translation>
+ </message>
+ <message>
+ <source>Fix</source>
+ <translation type="unfinished">Arreglar</translation>
+ </message>
+ <message>
+ <source>Note</source>
+ <translation type="unfinished">Nota</translation>
+ </message>
+ <message>
+ <source>Poly Pressure</source>
+ <translation type="unfinished">Presi� polif�ica</translation>
+ </message>
+ <message>
+ <source>Control Change</source>
+ <translation type="unfinished">Cambio de control</translation>
+ </message>
+ <message>
+ <source>Aftertouch</source>
+ <translation type="unfinished">AfterTouch</translation>
+ </message>
+ <message>
+ <source>Pitch Bend</source>
+ <translation type="unfinished">Rueda de modulaci�</translation>
+ </message>
+ <message>
+ <source>NRPN</source>
+ <translation type="unfinished">NRPN</translation>
+ </message>
+ <message>
+ <source>RPN</source>
+ <translation type="unfinished">RPN</translation>
+ </message>
+ <message>
+ <source>Plus</source>
+ <translation type="unfinished">M�</translation>
+ </message>
+ <message>
+ <source>Minus</source>
+ <translation type="unfinished">Menos</translation>
+ </message>
+ <message>
+ <source>Multiply</source>
+ <translation type="unfinished">Multiplicar</translation>
+ </message>
+ <message>
+ <source>Divide</source>
+ <translation type="unfinished">Dividir</translation>
+ </message>
+ <message>
+ <source>Value 2</source>
+ <translation type="unfinished">Valor 2</translation>
+ </message>
+ <message>
+ <source>Invert</source>
+ <translation type="unfinished">Invertir</translation>
+ </message>
+ <message>
+ <source>ScaleMap</source>
+ <translation type="unfinished">Escalado de mapa</translation>
+ </message>
+ <message>
+ <source>Flip</source>
+ <translation type="unfinished">Cambiar</translation>
+ </message>
+ <message>
+ <source>Dyn</source>
+ <translation type="unfinished">Dyn</translation>
+ </message>
+ <message>
+ <source>Random</source>
+ <translation type="unfinished">Aleatorio</translation>
+ </message>
+ <message>
+ <source>Value 1</source>
+ <translation type="unfinished">Valor 1</translation>
+ </message>
+ <message>
+ <source>Length</source>
+ <translation type="unfinished">Longitud</translation>
+ </message>
+ <message>
+ <source>Position</source>
+ <translation type="unfinished">Posici�</translation>
+ </message>
+ <message>
+ <source>Filter</source>
+ <translation type="unfinished">Filtro</translation>
+ </message>
+ <message>
+ <source>All</source>
+ <translation type="unfinished">Todo</translation>
+ </message>
+ <message>
+ <source>Equal</source>
+ <translation type="unfinished">Igual</translation>
+ </message>
+ <message>
+ <source>Unequal</source>
+ <translation type="unfinished">Diferente</translation>
+ </message>
+ <message>
+ <source>Ignore</source>
+ <translation type="unfinished">Ignora</translation>
+ </message>
+ <message>
+ <source>Higher</source>
+ <translation type="unfinished">Mayor</translation>
+ </message>
+ <message>
+ <source>Lower</source>
+ <translation type="unfinished">Menor</translation>
+ </message>
+ <message>
+ <source>Inside</source>
+ <translation type="unfinished">Entre</translation>
+ </message>
+ <message>
+ <source>Outside</source>
+ <translation type="unfinished">Fuera</translation>
+ </message>
+ <message>
+ <source>Bar Range</source>
+ <translation type="unfinished">Rango de compases</translation>
+ </message>
+ <message>
+ <source>Preset</source>
+ <translation type="unfinished">Preselecci�</translation>
+ </message>
+ <message>
+ <source>Name:</source>
+ <translation type="unfinished">Nombre:</translation>
+ </message>
+ <message>
+ <source>Comment:</source>
+ <translation type="unfinished">Comentario:</translation>
+ </message>
+ <message>
+ <source>Range</source>
+ <translation type="unfinished">Rango</translation>
+ </message>
+ <message>
+ <source>process all events</source>
+ <translation type="unfinished">procesar todos los eventos</translation>
+ </message>
+ <message>
+ <source>selected tracks</source>
+ <translation type="unfinished">seleccionar pistas</translation>
+ </message>
+ <message>
+ <source>inside loop</source>
+ <translation type="unfinished">dentro de bucle</translation>
+ </message>
+ <message>
+ <source>Function</source>
+ <translation type="unfinished">Funci�</translation>
+ </message>
+ <message>
+ <source>Select</source>
+ <translation type="unfinished">Seleccionar</translation>
+ </message>
+ <message>
+ <source>Quantize</source>
+ <translation type="unfinished">Cuantizar</translation>
+ </message>
+ <message>
+ <source>Delete</source>
+ <translation type="unfinished">Borrar</translation>
+ </message>
+ <message>
+ <source>Transform</source>
+ <translation type="unfinished">Transformar</translation>
+ </message>
+ <message>
+ <source>Insert</source>
+ <translation type="unfinished">Insertar</translation>
+ </message>
+ <message>
+ <source>Copy</source>
+ <translation type="unfinished">Copiar</translation>
+ </message>
+ <message>
+ <source>Extract</source>
+ <translation type="unfinished">Extraer</translation>
+ </message>
+ <message>
+ <source>Quantize Value</source>
+ <translation type="unfinished">Cuantizar valor</translation>
+ </message>
+</context>
+<context>
+ <name>MidiTransformerDialog</name>
+ <message>
+ <source>New</source>
+ <translation type="unfinished">Nueva</translation>
+ </message>
+</context>
+<context>
+ <name>MixdownFileDialog</name>
+ <message>
+ <source>Wave Files (*.wav);;All Files (*)</source>
+ <translation type="unfinished">Archivos de onda (*.wav);;Todos los archivos(*)</translation>
+ </message>
+</context>
+<context>
+ <name>MixdownFileDialogBase</name>
+ <message>
+ <source>MusE: Set Mixdown Wavefile</source>
+ <translation type="unfinished">MusE: Selecciona el archivo de Masterizaci�</translation>
+ </message>
+ <message>
+ <source>&amp;OK</source>
+ <translation type="unfinished">&amp;Aceptar</translation>
+ </message>
+ <message>
+ <source>&amp;Cancel</source>
+ <translation type="unfinished">&amp;Cancelar</translation>
+ </message>
+ <message>
+ <source>File Path</source>
+ <translation type="unfinished">Directorio del archivo</translation>
+ </message>
+ <message>
+ <source>Channel</source>
+ <translation type="unfinished">Canal</translation>
+ </message>
+ <message>
+ <source>Stereo</source>
+ <translation type="unfinished">Est�eo</translation>
+ </message>
+ <message>
+ <source>Mono</source>
+ <translation type="unfinished">Mono</translation>
+ </message>
+ <message>
+ <source>5.1</source>
+ <translation type="unfinished">5.1</translation>
+ </message>
+ <message>
+ <source>wav,16 Bit</source>
+ <translation type="unfinished">wav, 16 bits</translation>
+ </message>
+ <message>
+ <source>wav, 24 Bit</source>
+ <translation type="unfinished">wav, 24 bits</translation>
+ </message>
+ <message>
+ <source>wav, 32 Bit (float)</source>
+ <translation type="unfinished">wav, 32 bits</translation>
+ </message>
+ <message>
+ <source>Format</source>
+ <translation type="unfinished">Formato</translation>
+ </message>
+</context>
+<context>
+ <name>Mixer</name>
+ <message>
+ <source>Mute</source>
+ <translation type="obsolete">Silencio</translation>
+ </message>
+ <message>
+ <source>MusE: Midi Mixer</source>
+ <translation type="obsolete">MusE: MExclador MIDI</translation>
+ </message>
+ <message>
+ <source>Rev</source>
+ <translation type="obsolete">Rev</translation>
+ </message>
+ <message>
+ <source>Cho</source>
+ <translation type="obsolete">Cho</translation>
+ </message>
+ <message>
+ <source>Var</source>
+ <translation type="obsolete">Var</translation>
+ </message>
+ <message>
+ <source>Pan</source>
+ <translation type="obsolete">Bal</translation>
+ </message>
+ <message>
+ <source>Master</source>
+ <translation type="obsolete">Maestro</translation>
+ </message>
+ <message>
+ <source>Port</source>
+ <translation type="obsolete">Puerto</translation>
+ </message>
+</context>
+<context>
+ <name>MusE</name>
+ <message>
+ <source>&amp;File</source>
+ <translation type="unfinished">&amp;Archivo</translation>
+ </message>
+ <message>
+ <source>Open &amp;Recent</source>
+ <translation type="unfinished">Abrir &amp;Recientes</translation>
+ </message>
+ <message>
+ <source>Save &amp;As</source>
+ <translation type="unfinished">Guardar c&amp;omo</translation>
+ </message>
+ <message>
+ <source>Config &amp;Printer</source>
+ <translation type="obsolete">Configurar &amp;Impresi�</translation>
+ </message>
+ <message>
+ <source>Import Midifile</source>
+ <translation type="unfinished">Importar archivo MIDI</translation>
+ </message>
+ <message>
+ <source>Export Midifile</source>
+ <translation type="unfinished">Exportar archivo MIDI</translation>
+ </message>
+ <message>
+ <source>Import Wave File</source>
+ <translation type="unfinished">Importar archivo de audio</translation>
+ </message>
+ <message>
+ <source>&amp;Quit</source>
+ <translation type="unfinished">&amp;Salir</translation>
+ </message>
+ <message>
+ <source>&amp;Edit</source>
+ <translation type="unfinished">&amp;Editar</translation>
+ </message>
+ <message>
+ <source>C&amp;ut</source>
+ <translation type="unfinished">C&amp;ortar</translation>
+ </message>
+ <message>
+ <source>&amp;Copy</source>
+ <translation type="unfinished">&amp;Copiar</translation>
+ </message>
+ <message>
+ <source>&amp;Paste</source>
+ <translation type="unfinished">&amp;Pegar</translation>
+ </message>
+ <message>
+ <source>Delete Track</source>
+ <translation type="obsolete">Borrar pista</translation>
+ </message>
+ <message>
+ <source>Add Track</source>
+ <translation type="unfinished">A�dir Pista</translation>
+ </message>
+ <message>
+ <source>Select &amp;All</source>
+ <translation type="unfinished">Seleccion&amp;ar Todo</translation>
+ </message>
+ <message>
+ <source>&amp;Deselect All</source>
+ <translation type="unfinished">&amp;Deseleccionar Todo</translation>
+ </message>
+ <message>
+ <source>Invert &amp;Selection</source>
+ <translation type="unfinished">Invertir &amp;Selecci�</translation>
+ </message>
+ <message>
+ <source>&amp;Inside Loop</source>
+ <translation type="unfinished">&amp;Interior de bucle</translation>
+ </message>
+ <message>
+ <source>&amp;Outside Loop</source>
+ <translation type="unfinished">&amp;Exterior de Bucle</translation>
+ </message>
+ <message>
+ <source>All &amp;Parts on Track</source>
+ <translation type="unfinished">Todas las &amp;Partes de la pista</translation>
+ </message>
+ <message>
+ <source>Select</source>
+ <translation type="unfinished">Seleccionar</translation>
+ </message>
+ <message>
+ <source>Drums</source>
+ <translation type="unfinished">Percusi�</translation>
+ </message>
+ <message>
+ <source>List</source>
+ <translation type="unfinished">Lista</translation>
+ </message>
+ <message>
+ <source>Graphic</source>
+ <translation type="unfinished">Gr�ico</translation>
+ </message>
+ <message>
+ <source>Mastertrack</source>
+ <translation type="unfinished">Pista Maestra</translation>
+ </message>
+ <message>
+ <source>Midi &amp;Transform</source>
+ <translation type="unfinished">&amp;Transformaci� MIDI</translation>
+ </message>
+ <message>
+ <source>Modify Gate Time</source>
+ <translation type="unfinished">Modificar el tiempo de puerta</translation>
+ </message>
+ <message>
+ <source>Modify Velocity</source>
+ <translation type="unfinished">Modificar Velocidad</translation>
+ </message>
+ <message>
+ <source>Crescendo</source>
+ <translation type="unfinished">Crescendo</translation>
+ </message>
+ <message>
+ <source>Transpose</source>
+ <translation type="unfinished">Transponer</translation>
+ </message>
+ <message>
+ <source>Thin Out</source>
+ <translation type="unfinished">Adelgazar? (Thin Out)</translation>
+ </message>
+ <message>
+ <source>Erase Event</source>
+ <translation type="unfinished">Borrar Evento</translation>
+ </message>
+ <message>
+ <source>Note Shift</source>
+ <translation type="unfinished">Desplazamiento de nota</translation>
+ </message>
+ <message>
+ <source>Move Clock</source>
+ <translation type="unfinished">Mover reloj</translation>
+ </message>
+ <message>
+ <source>Copy Measure</source>
+ <translation type="unfinished">Copiar comp�</translation>
+ </message>
+ <message>
+ <source>Erase Measure</source>
+ <translation type="unfinished">Vaciar comp�</translation>
+ </message>
+ <message>
+ <source>Delete Measure</source>
+ <translation type="unfinished">Borrar comp�</translation>
+ </message>
+ <message>
+ <source>Create Measure</source>
+ <translation type="unfinished">Crear comp�</translation>
+ </message>
+ <message>
+ <source>Mix Track</source>
+ <translation type="unfinished">Mezclar pista</translation>
+ </message>
+ <message>
+ <source>Midi</source>
+ <translation type="unfinished">MIDI</translation>
+ </message>
+ <message>
+ <source>&amp;Structure</source>
+ <translation type="unfinished">E&amp;structura</translation>
+ </message>
+ <message>
+ <source>Global Cut</source>
+ <translation type="unfinished">Corte global</translation>
+ </message>
+ <message>
+ <source>Global Insert</source>
+ <translation type="unfinished">Inserci� Global</translation>
+ </message>
+ <message>
+ <source>Global Split</source>
+ <translation type="unfinished">Partici� Global</translation>
+ </message>
+ <message>
+ <source>Copy Range</source>
+ <translation type="unfinished">Copiar Rango</translation>
+ </message>
+ <message>
+ <source>Cut Events</source>
+ <translation type="unfinished">Cortar eventos</translation>
+ </message>
+ <message>
+ <source>&amp;Display</source>
+ <translation type="obsolete">&amp;Mostrar</translation>
+ </message>
+ <message>
+ <source>Transport Panel</source>
+ <translation type="unfinished">Panel de transporte</translation>
+ </message>
+ <message>
+ <source>Bigtime window</source>
+ <translation type="unfinished">ventana BigTime</translation>
+ </message>
+ <message>
+ <source>dont follow Song</source>
+ <translation type="unfinished">no sigas la canci�</translation>
+ </message>
+ <message>
+ <source>follow page</source>
+ <translation type="unfinished">sigue la p�ina</translation>
+ </message>
+ <message>
+ <source>follow continuous</source>
+ <translation type="unfinished">sigue cont�uamente</translation>
+ </message>
+ <message>
+ <source>&amp;Config</source>
+ <translation type="obsolete">&amp;Configuraci�</translation>
+ </message>
+ <message>
+ <source>Global Settings</source>
+ <translation type="unfinished">Selecciones Globales</translation>
+ </message>
+ <message>
+ <source>follow song</source>
+ <translation type="unfinished">seguir canci�</translation>
+ </message>
+ <message>
+ <source>Metronome</source>
+ <translation type="unfinished">Metr�omo</translation>
+ </message>
+ <message>
+ <source>Midi Sync</source>
+ <translation type="unfinished">Sincronizaci� MIDI</translation>
+ </message>
+ <message>
+ <source>Midi File Config</source>
+ <translation type="obsolete">Configuraci� de archivos MIDI</translation>
+ </message>
+ <message>
+ <source>Appearance settings</source>
+ <translation type="unfinished">Selecciones de apariencia</translation>
+ </message>
+ <message>
+ <source>Soft Synthesizer</source>
+ <translation type="obsolete">Sintetizador virtual</translation>
+ </message>
+ <message>
+ <source>Midi Ports</source>
+ <translation type="obsolete">Puertos MIDI</translation>
+ </message>
+ <message>
+ <source>Audio System</source>
+ <translation type="obsolete">Sistema de Audio</translation>
+ </message>
+ <message>
+ <source>Save Configuration</source>
+ <translation type="obsolete">Guardar configuraci�</translation>
+ </message>
+ <message>
+ <source>Midi Input Transform</source>
+ <translation type="unfinished">Transformaci� de entrada MIDI</translation>
+ </message>
+ <message>
+ <source>Midi Input Filter</source>
+ <translation type="unfinished">Filtrado de entrada MIDI</translation>
+ </message>
+ <message>
+ <source>Midi Remote Control</source>
+ <translation type="unfinished">Control remoto MIDI</translation>
+ </message>
+ <message>
+ <source>Random Rhythm Generator</source>
+ <translation type="unfinished">generador aleatorio de ritmos</translation>
+ </message>
+ <message>
+ <source>&amp;Midi</source>
+ <translation type="unfinished">&amp;MIDI</translation>
+ </message>
+ <message>
+ <source>Mixer</source>
+ <translation type="unfinished">Mezclador</translation>
+ </message>
+ <message>
+ <source>Define Controller</source>
+ <translation type="obsolete">Define Controlador</translation>
+ </message>
+ <message>
+ <source>Input Plugins</source>
+ <translation type="unfinished">Plugins e entrada</translation>
+ </message>
+ <message>
+ <source>Reset Instr.</source>
+ <translation type="unfinished">Reinicializa Instrumento</translation>
+ </message>
+ <message>
+ <source>Init Instr.</source>
+ <translation type="unfinished">Inicializa Instruemnto</translation>
+ </message>
+ <message>
+ <source>local off</source>
+ <translation type="unfinished">apagado local</translation>
+ </message>
+ <message>
+ <source>&amp;Audio</source>
+ <translation type="unfinished">&amp;Audio</translation>
+ </message>
+ <message>
+ <source>Audio</source>
+ <translation type="obsolete">Audio</translation>
+ </message>
+ <message>
+ <source>Cliplist</source>
+ <translation type="obsolete">Lista de Clips</translation>
+ </message>
+ <message>
+ <source>Bounce to Track</source>
+ <translation type="unfinished">Rebotar a pista</translation>
+ </message>
+ <message>
+ <source>Bounce to File</source>
+ <translation type="unfinished">Rebotar a Archivo</translation>
+ </message>
+ <message>
+ <source>Bounce</source>
+ <translation type="obsolete">Rebotar</translation>
+ </message>
+ <message>
+ <source>&amp;Help</source>
+ <translation type="unfinished">A&amp;yuda</translation>
+ </message>
+ <message>
+ <source>Browser</source>
+ <translation type="obsolete">Navegador</translation>
+ </message>
+ <message>
+ <source>&amp;About</source>
+ <translation type="obsolete">&amp;Acerca de</translation>
+ </message>
+ <message>
+ <source>About&amp;Qt</source>
+ <translation type="unfinished">Acerca de &amp;Qt</translation>
+ </message>
+ <message>
+ <source>What&apos;s &amp;This</source>
+ <translation type="obsolete">Qu�es esto</translation>
+ </message>
+ <message>
+ <source>MusE: load project</source>
+ <translation type="unfinished">MusE: Carga proyecto</translation>
+ </message>
+ <message>
+ <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>
+ <source>&amp;Save</source>
+ <translation type="unfinished">&amp;Guardar</translation>
+ </message>
+ <message>
+ <source>&amp;Nosave</source>
+ <translation type="unfinished">&amp;No Guardar</translation>
+ </message>
+ <message>
+ <source>&amp;Abort</source>
+ <translation type="unfinished">&amp;Abortar</translation>
+ </message>
+ <message>
+ <source>MusE: Save As</source>
+ <translation type="unfinished">MusE: Guardar como</translation>
+ </message>
+ <message>
+ <source>MusE: Import Midi</source>
+ <translation type="unfinished">MusE: Importar MIDI</translation>
+ </message>
+ <message>
+ <source>MusE: Export Midi</source>
+ <translation type="unfinished">MusE: Exportar MIDI</translation>
+ </message>
+ <message>
+ <source>Nothing to edit</source>
+ <translation type="unfinished">Nada para editar</translation>
+ </message>
+ <message>
+ <source>The current Project contains unsaved data
+Load overwrites current Project:
+Save Current Project?</source>
+ <translation type="unfinished">El proyecto actual contine datos no guardados
+Cargar sobreescribe el proyecto actual:
+Guardar el proyecto actual?</translation>
+ </message>
+ <message>
+ <source>&amp;Overwrite</source>
+ <translation type="unfinished">S&amp;obre escribir</translation>
+ </message>
+ <message>
+ <source>no help found at: </source>
+ <translation type="unfinished">no se ha encontrado ayuda en: </translation>
+ </message>
+ <message>
+ <source>MusE: Open Help</source>
+ <translation type="unfinished">MusE: Abre ayuda</translation>
+ </message>
+ <message>
+ <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>
+ <source>UndoRedo</source>
+ <translation type="unfinished">Deshacer/Rehacer</translation>
+ </message>
+ <message>
+ <source>undo</source>
+ <translation type="unfinished">deshacer</translation>
+ </message>
+ <message>
+ <source>Und&amp;o</source>
+ <translation type="unfinished">&amp;Deshacer</translation>
+ </message>
+ <message>
+ <source>redo</source>
+ <translation type="unfinished">rehacer</translation>
+ </message>
+ <message>
+ <source>Re&amp;do</source>
+ <translation type="unfinished">&amp;Rehacer</translation>
+ </message>
+ <message>
+ <source>undo last change to song</source>
+ <translation type="unfinished">deshace el ltimo cambio en la canci�</translation>
+ </message>
+ <message>
+ <source>redo last undo</source>
+ <translation type="unfinished">rehace el ltimo deshacer</translation>
+ </message>
+ <message>
+ <source>Transport</source>
+ <translation type="unfinished">Transporte</translation>
+ </message>
+ <message>
+ <source>loop</source>
+ <translation type="unfinished">bucle</translation>
+ </message>
+ <message>
+ <source>Loop</source>
+ <translation type="unfinished">Bucle</translation>
+ </message>
+ <message>
+ <source>punchin</source>
+ <translation type="unfinished">pinchar</translation>
+ </message>
+ <message>
+ <source>Punchin</source>
+ <translation type="unfinished">Pinchar</translation>
+ </message>
+ <message>
+ <source>punchout</source>
+ <translation type="unfinished">fin pinchado</translation>
+ </message>
+ <message>
+ <source>Punchout</source>
+ <translation type="unfinished">Fin pinchado</translation>
+ </message>
+ <message>
+ <source>start</source>
+ <translation type="unfinished">empezar</translation>
+ </message>
+ <message>
+ <source>Start</source>
+ <translation type="unfinished">Empezar</translation>
+ </message>
+ <message>
+ <source>rewind</source>
+ <translation type="unfinished">retroceder</translation>
+ </message>
+ <message>
+ <source>Rewind</source>
+ <translation type="unfinished">Retroceder</translation>
+ </message>
+ <message>
+ <source>forward</source>
+ <translation type="unfinished">avanzar</translation>
+ </message>
+ <message>
+ <source>Forward</source>
+ <translation type="unfinished">Avanzar</translation>
+ </message>
+ <message>
+ <source>stop</source>
+ <translation type="unfinished">parar</translation>
+ </message>
+ <message>
+ <source>Stop</source>
+ <translation type="unfinished">Parar</translation>
+ </message>
+ <message>
+ <source>play</source>
+ <translation type="unfinished">reproducir</translation>
+ </message>
+ <message>
+ <source>Play</source>
+ <translation type="unfinished">Reproducir</translation>
+ </message>
+ <message>
+ <source>record</source>
+ <translation type="unfinished">grabar</translation>
+ </message>
+ <message>
+ <source>Record</source>
+ <translation type="unfinished">Grabar</translation>
+ </message>
+ <message>
+ <source>panic</source>
+ <translation type="unfinished">p�ico</translation>
+ </message>
+ <message>
+ <source>Panic</source>
+ <translation type="unfinished">P�ico</translation>
+ </message>
+ <message>
+ <source>new</source>
+ <translation type="unfinished">nuevo</translation>
+ </message>
+ <message>
+ <source>&amp;New</source>
+ <translation type="unfinished">&amp;Nuevo</translation>
+ </message>
+ <message>
+ <source>open</source>
+ <translation type="unfinished">abrir</translation>
+ </message>
+ <message>
+ <source>&amp;Open</source>
+ <translation type="unfinished">&amp;Abrir</translation>
+ </message>
+ <message>
+ <source>save</source>
+ <translation type="unfinished">guardar</translation>
+ </message>
+ <message>
+ <source>pianoroll</source>
+ <translation type="unfinished">pianola</translation>
+ </message>
+ <message>
+ <source>Pianoroll</source>
+ <translation type="unfinished">Pianola</translation>
+ </message>
+ <message>
+ <source>score</source>
+ <translation type="obsolete">partitura</translation>
+ </message>
+ <message>
+ <source>Score</source>
+ <translation type="obsolete">Partitura</translation>
+ </message>
+ <message>
+ <source>marker</source>
+ <translation type="unfinished">marcador</translation>
+ </message>
+ <message>
+ <source>Marker</source>
+ <translation type="unfinished">Marcador</translation>
+ </message>
+ <message>
+ <source>File Buttons</source>
+ <translation type="unfinished">Botones de Archivo</translation>
+ </message>
+ <message>
+ <source>Unknown File Format</source>
+ <translation type="unfinished">Formato de archivo desconocido</translation>
+ </message>
+ <message>
+ <source>none</source>
+ <translation type="obsolete">ninguno</translation>
+ </message>
+ <message>
+ <source>MusE: Write File failed</source>
+ <translation type="unfinished">MusE: La grabaci� del archivo ha fallado</translation>
+ </message>
+ <message>
+ <source>MusE: About</source>
+ <translation type="obsolete">Muse: Acerca de</translation>
+ </message>
+ <message>
+ <source>MusE: Song: </source>
+ <translation type="unfinished">MusE: Canci�: </translation>
+ </message>
+ <message>
+ <source>reading midifile
+ </source>
+ <translation type="unfinished">leyendo archivo midi
+ </translation>
+ </message>
+ <message>
+ <source>
+failed</source>
+ <translation type="obsolete">
+fall�</translation>
+ </message>
+ <message>
+ <source>MusE: Copy Range</source>
+ <translation type="unfinished">MusE: Copiar Rango</translation>
+ </message>
+ <message>
+ <source>not implemented</source>
+ <translation type="unfinished">no implementado</translation>
+ </message>
+ <message>
+ <source>MusE: Cut Events</source>
+ <translation type="unfinished">MusE: Cortar Eventos</translation>
+ </message>
+ <message>
+ <source>MusE: Bounce to Track</source>
+ <translation type="unfinished">MusE: Rebotar a la pista</translation>
+ </message>
+ <message>
+ <source>more than one target track selected</source>
+ <translation type="unfinished">m� de una pista de destino seleccionada</translation>
+ </message>
+ <message>
+ <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>
+ <source>no target track selected</source>
+ <translation type="unfinished">no hay pista de destino seleccionada</translation>
+ </message>
+ <message>
+ <source>to import a audio file you have first to selecta wave track</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Delete Selected Tracks</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>View</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Edit Instrument</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Restart Audio</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Automation</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Mixer Automation</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Take Snapshot</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Clear Automation Data</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Settings</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Configure shortcuts</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Midi File Export</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Midi Ports / Soft Synth</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>&amp;Manual</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>&amp;MusE homepage</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>&amp;Report Bug...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>&amp;About MusE</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>What&apos;s &amp;This?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cannot read template</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>File open error</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>File read error</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>MusE: load template</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>MusE: Bounce</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>set left/right marker for bounce range</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>MusE: Bounce to File</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>no output track found</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Add midi file to current project?
+</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>&amp;Add to Project</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>&amp;Replace</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>
+failed: </source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>NoteInfo</name>
+ <message>
+ <source>Start</source>
+ <translation type="unfinished">Inicio</translation>
+ </message>
+ <message>
+ <source>Len</source>
+ <translation type="unfinished">Longitud</translation>
+ </message>
+ <message>
+ <source>Pitch</source>
+ <translation type="unfinished">Tono</translation>
+ </message>
+ <message>
+ <source>Velo On</source>
+ <translation type="unfinished">Velocidad On</translation>
+ </message>
+ <message>
+ <source>Velo Off</source>
+ <translation type="unfinished">Velocidad Off</translation>
+ </message>
+ <message>
+ <source>Note Info</source>
+ <translation type="unfinished">Informaci� de nota</translation>
+ </message>
+</context>
+<context>
+ <name>OrganGuiBase</name>
+ <message>
+ <source>MusE: Organ</source>
+ <translation type="obsolete">MusE: �gano</translation>
+ </message>
+ <message>
+ <source>Presets</source>
+ <translation type="obsolete">Preselecciones</translation>
+ </message>
+ <message>
+ <source>Set</source>
+ <translation type="obsolete">Pon</translation>
+ </message>
+ <message>
+ <source>load preset list</source>
+ <translation type="obsolete">cargar lista de preselecciones</translation>
+ </message>
+ <message>
+ <source>save preset list</source>
+ <translation type="obsolete">guardar lista de preselecciones</translation>
+ </message>
+ <message>
+ <source>O-1</source>
+ <translation type="obsolete">0-1</translation>
+ </message>
+ <message>
+ <source>Oscillator</source>
+ <translation type="obsolete">Oscilador</translation>
+ </message>
+ <message>
+ <source>Brass</source>
+ <translation type="obsolete">Metales</translation>
+ </message>
+ <message>
+ <source>Reed</source>
+ <translation type="obsolete">Reed</translation>
+ </message>
+ <message>
+ <source>Flute</source>
+ <translation type="obsolete">Flauta</translation>
+ </message>
+ <message>
+ <source>Drawbars</source>
+ <translation type="obsolete">Drawbars</translation>
+ </message>
+ <message>
+ <source>16&apos;</source>
+ <translation type="obsolete">16&apos;</translation>
+ </message>
+ <message>
+ <source>4&apos;</source>
+ <translation type="obsolete">4&apos;</translation>
+ </message>
+ <message>
+ <source>2 2/3&apos;</source>
+ <translation type="obsolete">2 2/3&apos;</translation>
+ </message>
+ <message>
+ <source>2&apos;</source>
+ <translation type="obsolete">2&apos;</translation>
+ </message>
+ <message>
+ <source>8&apos;</source>
+ <translation type="obsolete">8&apos;</translation>
+ </message>
+ <message>
+ <source>5 1/3&apos;</source>
+ <translation type="obsolete">5 1/3&apos;</translation>
+ </message>
+ <message>
+ <source>Envelope Lo</source>
+ <translation type="obsolete">Envolvente Lo</translation>
+ </message>
+ <message>
+ <source>Attack(ms)</source>
+ <translation type="obsolete">Ataque (ms)</translation>
+ </message>
+ <message>
+ <source>Decay(ms)</source>
+ <translation type="obsolete">Decaimiento (ms)</translation>
+ </message>
+ <message>
+ <source>Sustain(%)</source>
+ <translation type="obsolete">Sostenido (%)</translation>
+ </message>
+ <message>
+ <source>Release(ms)</source>
+ <translation type="obsolete">Relajaci� (ms)</translation>
+ </message>
+ <message>
+ <source>Envelope Hi</source>
+ <translation type="obsolete">Envolvente Hi</translation>
+ </message>
+</context>
+<context>
+ <name>PageSettings</name>
+ <message>
+ <source>Paper Size</source>
+ <translation type="obsolete">Tama� del papel</translation>
+ </message>
+ <message>
+ <source>user</source>
+ <translation type="obsolete">usuario</translation>
+ </message>
+ <message>
+ <source>Margins</source>
+ <translation type="obsolete">M�genes</translation>
+ </message>
+ <message>
+ <source>Header</source>
+ <translation type="obsolete">Cabecera</translation>
+ </message>
+ <message>
+ <source>Title</source>
+ <translation type="obsolete">T�ulo</translation>
+ </message>
+ <message>
+ <source>Author</source>
+ <translation type="obsolete">Autor</translation>
+ </message>
+ <message>
+ <source>Fonts</source>
+ <translation type="obsolete">Tipos</translation>
+ </message>
+ <message>
+ <source>Page No.</source>
+ <translation type="obsolete">P�ina n</translation>
+ </message>
+ <message>
+ <source>Measure No</source>
+ <translation type="obsolete">Comp� n</translation>
+ </message>
+ <message>
+ <source>Track Name</source>
+ <translation type="obsolete">Nombre de Pista</translation>
+ </message>
+ <message>
+ <source>Lyrics</source>
+ <translation type="obsolete">Letra</translation>
+ </message>
+ <message>
+ <source>Layout</source>
+ <translation type="obsolete">Disposici�</translation>
+ </message>
+ <message>
+ <source>Scale</source>
+ <translation type="obsolete">Escala</translation>
+ </message>
+ <message>
+ <source>Flags</source>
+ <translation type="obsolete">Se�lizadores</translation>
+ </message>
+ <message>
+ <source>show page no.</source>
+ <translation type="obsolete">muestra el nmero de p�ina</translation>
+ </message>
+ <message>
+ <source>show measure no.</source>
+ <translation type="obsolete">muestra el nmero de comp�</translation>
+ </message>
+ <message>
+ <source>show track name</source>
+ <translation type="obsolete">muestra el nombre de la pista</translation>
+ </message>
+ <message>
+ <source>Ok</source>
+ <translation type="obsolete">Aceptar</translation>
+ </message>
+ <message>
+ <source>Apply</source>
+ <translation type="obsolete">Aplicar</translation>
+ </message>
+ <message>
+ <source>Cancel</source>
+ <translation type="obsolete">Cancelar</translation>
+ </message>
+ <message>
+ <source>left Margin</source>
+ <translation type="obsolete">Margen izquierdo</translation>
+ </message>
+ <message>
+ <source>top Margin</source>
+ <translation type="obsolete">Margen Superior</translation>
+ </message>
+ <message>
+ <source>right Margin</source>
+ <translation type="obsolete">Margen derecho</translation>
+ </message>
+ <message>
+ <source>bottom Margin</source>
+ <translation type="obsolete">Margen inferior</translation>
+ </message>
+ <message>
+ <source>Bars across the Page</source>
+ <translation type="obsolete">Barras a trav� de la p�ina</translation>
+ </message>
+</context>
+<context>
+ <name>PartCanvas</name>
+ <message>
+ <source>C&amp;ut</source>
+ <translation type="unfinished">C&amp;ortar</translation>
+ </message>
+ <message>
+ <source>&amp;Copy</source>
+ <translation type="unfinished">&amp;Copiar</translation>
+ </message>
+ <message>
+ <source>rename</source>
+ <translation type="unfinished">renombrar</translation>
+ </message>
+ <message>
+ <source>delete</source>
+ <translation type="unfinished">borrar</translation>
+ </message>
+ <message>
+ <source>split</source>
+ <translation type="unfinished">partir</translation>
+ </message>
+ <message>
+ <source>glue</source>
+ <translation type="unfinished">pegar</translation>
+ </message>
+ <message>
+ <source>pianoroll</source>
+ <translation type="unfinished">pianola</translation>
+ </message>
+ <message>
+ <source>score</source>
+ <translation type="obsolete">partitura</translation>
+ </message>
+ <message>
+ <source>list</source>
+ <translation type="unfinished">lista</translation>
+ </message>
+ <message>
+ <source>drums</source>
+ <translation type="unfinished">percusi�</translation>
+ </message>
+ <message>
+ <source>Cannot copy/move/clone to different Track-Type</source>
+ <translation type="unfinished">No puedo copiar/mover/clonar a un tipo diferente de pista</translation>
+ </message>
+ <message>
+ <source>color</source>
+ <translation type="unfinished">color</translation>
+ </message>
+ <message>
+ <source>de-clone</source>
+ <translation type="unfinished">des-clonar</translation>
+ </message>
+ <message>
+ <source>wave edit</source>
+ <translation type="unfinished">editar onda</translation>
+ </message>
+ <message>
+ <source>Cannot paste: multiple tracks selected</source>
+ <translation type="unfinished">No puedo pegar: mtilpes pistas seleccionadas</translation>
+ </message>
+ <message>
+ <source>Cannot paste: no track selected</source>
+ <translation type="unfinished">No puedo pegar: No hay pista seleccionada</translation>
+ </message>
+ <message>
+ <source>Cannot paste midi parts to wave track</source>
+ <translation type="obsolete">No puedo pegar MIDI en una pista de audio</translation>
+ </message>
+ <message>
+ <source>Cannot paste wave parts to midi track</source>
+ <translation type="obsolete">No puedo pegar audio en una pista MIDI</translation>
+ </message>
+ <message>
+ <source>Cannot paste: wrong data type</source>
+ <translation type="unfinished">No puedo pegar: Tipo de datos equivocado</translation>
+ </message>
+ <message>
+ <source>Can only paste to midi/drum track</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Can only paste to wave track</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>PatchBay</name>
+ <message>
+ <source>MusE: ALSA MIDI Patch Bay</source>
+ <translation type="unfinished">MusE: Panel de ruteado MIDI de ALSA</translation>
+ </message>
+</context>
+<context>
+ <name>PatchBayBase</name>
+ <message>
+ <source>ALSA Patch Bay</source>
+ <translation type="unfinished">Panel de ruteado de ALSA</translation>
+ </message>
+</context>
+<context>
+ <name>PianoRoll</name>
+ <message>
+ <source>&amp;Edit</source>
+ <translation type="unfinished">&amp;Editar</translation>
+ </message>
+ <message>
+ <source>Cut</source>
+ <translation type="unfinished">Cortar</translation>
+ </message>
+ <message>
+ <source>Copy</source>
+ <translation type="unfinished">Copiar</translation>
+ </message>
+ <message>
+ <source>Paste</source>
+ <translation type="unfinished">Pegar</translation>
+ </message>
+ <message>
+ <source>Delete Events</source>
+ <translation type="unfinished">Borrar eventos</translation>
+ </message>
+ <message>
+ <source>Select All</source>
+ <translation type="unfinished">Seleccionar Todo</translation>
+ </message>
+ <message>
+ <source>Select None</source>
+ <translation type="unfinished">De-seleccionar todo</translation>
+ </message>
+ <message>
+ <source>Invert</source>
+ <translation type="unfinished">Invertir</translation>
+ </message>
+ <message>
+ <source>Inside Loop</source>
+ <translation type="unfinished">Dentro del bucle</translation>
+ </message>
+ <message>
+ <source>Outside Loop</source>
+ <translation type="unfinished">Fuera del bucle</translation>
+ </message>
+ <message>
+ <source>&amp;Select</source>
+ <translation type="unfinished">&amp;Seleccionar</translation>
+ </message>
+ <message>
+ <source>blue</source>
+ <translation type="unfinished">azul</translation>
+ </message>
+ <message>
+ <source>pitch colors</source>
+ <translation type="unfinished">colores de tono</translation>
+ </message>
+ <message>
+ <source>velocity colors</source>
+ <translation type="unfinished">colores de velocidad</translation>
+ </message>
+ <message>
+ <source>&amp;Config</source>
+ <translation type="unfinished">&amp;Configurar</translation>
+ </message>
+ <message>
+ <source>event color</source>
+ <translation type="unfinished">color de eventos</translation>
+ </message>
+ <message>
+ <source>&amp;Functions</source>
+ <translation type="unfinished">&amp;Funciones</translation>
+ </message>
+ <message>
+ <source>Over Quantize</source>
+ <translation type="unfinished">Sobre cuantizar</translation>
+ </message>
+ <message>
+ <source>Note On Quantize</source>
+ <translation type="unfinished">Cuantizar inicio de nota</translation>
+ </message>
+ <message>
+ <source>Note On/Off Quantize</source>
+ <translation type="unfinished">Cuantizar inicio y final de nota</translation>
+ </message>
+ <message>
+ <source>Iterative Quantize</source>
+ <translation type="unfinished">Cuantizaci� iterativa</translation>
+ </message>
+ <message>
+ <source>Pianoroll Tools</source>
+ <translation type="unfinished">Herramientas de pianola</translation>
+ </message>
+ <message>
+ <source>Step Record</source>
+ <translation type="unfinished">Grabaci� por pasos</translation>
+ </message>
+ <message>
+ <source>Midi Input</source>
+ <translation type="unfinished">Entrada MIDI</translation>
+ </message>
+ <message>
+ <source>Play Events</source>
+ <translation type="unfinished">Reproducir eventos</translation>
+ </message>
+ <message>
+ <source>Add Controller View</source>
+ <translation type="unfinished">A�de vista de controladores</translation>
+ </message>
+ <message>
+ <source>Config Quant...</source>
+ <translation type="unfinished">Configura cuantizaci�...</translation>
+ </message>
+ <message>
+ <source>Modify Gate Time</source>
+ <translation type="unfinished">Modifica el tiempo de puerta</translation>
+ </message>
+ <message>
+ <source>Modify Velocity</source>
+ <translation type="unfinished">Modifica la velocidad</translation>
+ </message>
+ <message>
+ <source>Crescendo</source>
+ <translation type="unfinished">Crescendo</translation>
+ </message>
+ <message>
+ <source>Transpose</source>
+ <translation type="unfinished">Transponer</translation>
+ </message>
+ <message>
+ <source>Thin Out</source>
+ <translation type="unfinished">Adelgazar</translation>
+ </message>
+ <message>
+ <source>Erase Event</source>
+ <translation type="unfinished">Borrar evento</translation>
+ </message>
+ <message>
+ <source>Note Shift</source>
+ <translation type="unfinished">Desplazar nota</translation>
+ </message>
+ <message>
+ <source>Move Clock</source>
+ <translation type="unfinished">Mover reloj</translation>
+ </message>
+ <message>
+ <source>Copy Measure</source>
+ <translation type="unfinished">Copiar comp�</translation>
+ </message>
+ <message>
+ <source>Erase Measure</source>
+ <translation type="unfinished">Vaciar comp�</translation>
+ </message>
+ <message>
+ <source>Delete Measure</source>
+ <translation type="unfinished">Borrar comp�</translation>
+ </message>
+ <message>
+ <source>Create Measure</source>
+ <translation type="unfinished">Crear comp�</translation>
+ </message>
+ <message>
+ <source>ctrl</source>
+ <translation type="unfinished">control</translation>
+ </message>
+</context>
+<context>
+ <name>PluginDialog</name>
+ <message>
+ <source>Ok</source>
+ <translation type="unfinished">Aceptar</translation>
+ </message>
+ <message>
+ <source>Cancel</source>
+ <translation type="unfinished">Cancelar</translation>
+ </message>
+ <message>
+ <source>MusE: select plugin</source>
+ <translation type="unfinished">MusE: Selecciona el plugin</translation>
+ </message>
+ <message>
+ <source>Lib</source>
+ <translation type="unfinished">Lib</translation>
+ </message>
+ <message>
+ <source>Label</source>
+ <translation type="unfinished">Etiqueta</translation>
+ </message>
+ <message>
+ <source>Name</source>
+ <translation type="unfinished">Nombre</translation>
+ </message>
+ <message>
+ <source>AI</source>
+ <translation type="unfinished">AI</translation>
+ </message>
+ <message>
+ <source>AO</source>
+ <translation type="unfinished">AO</translation>
+ </message>
+ <message>
+ <source>CI</source>
+ <translation type="unfinished">CI</translation>
+ </message>
+ <message>
+ <source>CO</source>
+ <translation type="unfinished">CO</translation>
+ </message>
+ <message>
+ <source>IP</source>
+ <translation type="unfinished">IP</translation>
+ </message>
+ <message>
+ <source>id</source>
+ <translation type="unfinished">id</translation>
+ </message>
+ <message>
+ <source>Maker</source>
+ <translation type="unfinished">Fabricante</translation>
+ </message>
+ <message>
+ <source>Copyright</source>
+ <translation type="unfinished">Copyright</translation>
+ </message>
+ <message>
+ <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="unfinished"></translation>
+ </message>
+ <message>
+ <source>Stereo and Mono</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Stereo</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Mono</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>All</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>PluginGui</name>
+ <message>
+ <source>bypass plugin</source>
+ <translation type="unfinished">saltar plugin</translation>
+ </message>
+ <message>
+ <source>MusE: load preset</source>
+ <translation type="unfinished">MusE: Cargar plantilla</translation>
+ </message>
+ <message>
+ <source>MusE: save preset</source>
+ <translation type="unfinished">MusE: Guardar plantilla</translation>
+ </message>
+ <message>
+ <source>File Buttons</source>
+ <translation type="unfinished">Archivar botones</translation>
+ </message>
+ <message>
+ <source>Load Preset</source>
+ <translation type="unfinished">Cargar plantilla</translation>
+ </message>
+ <message>
+ <source>Save Preset</source>
+ <translation type="unfinished">Guardar plantilla</translation>
+ </message>
+</context>
+<context>
+ <name>PrinterConfig</name>
+ <message>
+ <source>MusE: Config Printer</source>
+ <translation type="obsolete">MusE: Configuraci� de impresora</translation>
+ </message>
+ <message>
+ <source>Print to file</source>
+ <translation type="obsolete">Imprimir en archivo</translation>
+ </message>
+ <message>
+ <source>Print Command</source>
+ <translation type="obsolete">Comando de impresi�</translation>
+ </message>
+ <message>
+ <source>Preview Command</source>
+ <translation type="obsolete">Comando de previsualizaci�</translation>
+ </message>
+ <message>
+ <source>OK</source>
+ <translation type="obsolete">Aceptar</translation>
+ </message>
+ <message>
+ <source>Cancel</source>
+ <translation type="obsolete">Cancelar</translation>
+ </message>
+</context>
+<context>
+ <name>QHeader</name>
+ <message>
+ <source>Port Number</source>
+ <translation type="unfinished">Nmero de puerto</translation>
+ </message>
+ <message>
+ <source>enable gui for device</source>
+ <translation type="unfinished">habilitar gui para dispositivo</translation>
+ </message>
+ <message>
+ <source>enables recording from the device</source>
+ <translation type="obsolete">habilita la grabaci� para el dispositivo</translation>
+ </message>
+ <message>
+ <source>Instrument connected to port</source>
+ <translation type="unfinished">Instrumento conectado al puerto</translation>
+ </message>
+ <message>
+ <source>State: result of opening the device</source>
+ <translation type="unfinished">Estado: resultado de abrir el puerto</translation>
+ </message>
+ <message>
+ <source>mute instrument</source>
+ <translation type="unfinished">silenciar instrumento</translation>
+ </message>
+ <message>
+ <source>sound name</source>
+ <translation type="unfinished">nombre del sonido</translation>
+ </message>
+ <message>
+ <source>quantisation
+currently not used</source>
+ <translation type="unfinished">cuantizaci�
+actualmente sin usar</translation>
+ </message>
+ <message>
+ <source>this input note triggers the sound</source>
+ <translation type="unfinished">ensta nota de entrada dispara el sonido</translation>
+ </message>
+ <message>
+ <source>note length</source>
+ <translation type="unfinished">longitud de nota</translation>
+ </message>
+ <message>
+ <source>this note is send for the sound</source>
+ <translation type="unfinished">esta nota se envia al sonido</translation>
+ </message>
+ <message>
+ <source>output channel
+currently not used</source>
+ <translation type="unfinished">canal de salida
+actualmente sin uso</translation>
+ </message>
+ <message>
+ <source>output port
+currently not used</source>
+ <translation type="unfinished">puerto de salida
+actualmente sin uso</translation>
+ </message>
+ <message>
+ <source>velocity level 1</source>
+ <translation type="unfinished">nivel de velocidad 1</translation>
+ </message>
+ <message>
+ <source>velocity level 2</source>
+ <translation type="unfinished">nivel de velocidad 2</translation>
+ </message>
+ <message>
+ <source>velocity level 3</source>
+ <translation type="unfinished">nivel de velocidad 3</translation>
+ </message>
+ <message>
+ <source>velocity level 4</source>
+ <translation type="unfinished">nivel de velocidad 4</translation>
+ </message>
+ <message>
+ <source>quantisation</source>
+ <translation type="unfinished">cuantizaci�</translation>
+ </message>
+ <message>
+ <source>output channel</source>
+ <translation type="unfinished">canal de salida</translation>
+ </message>
+ <message>
+ <source>output port</source>
+ <translation type="unfinished">puerto de salida</translation>
+ </message>
+ <message>
+ <source>Enable Recording</source>
+ <translation type="unfinished">Habilita grabaci�</translation>
+ </message>
+ <message>
+ <source>Track Activity</source>
+ <translation type="obsolete">Actividad de pista</translation>
+ </message>
+ <message>
+ <source>Mute Indicator</source>
+ <translation type="unfinished">Indicador de silencio</translation>
+ </message>
+ <message>
+ <source>Solo Indicator</source>
+ <translation type="unfinished">Indicador de solo</translation>
+ </message>
+ <message>
+ <source>Track Type</source>
+ <translation type="unfinished">Tipo de pista</translation>
+ </message>
+ <message>
+ <source>Track Name</source>
+ <translation type="unfinished">Nombre de pista</translation>
+ </message>
+ <message>
+ <source>Output Channel Number</source>
+ <translation type="unfinished">Nmero de canal de salida</translation>
+ </message>
+ <message>
+ <source>Output Port</source>
+ <translation type="unfinished">Puerto de salida</translation>
+ </message>
+ <message>
+ <source>Time Lock</source>
+ <translation type="unfinished">Bloqueo de tiempo</translation>
+ </message>
+ <message>
+ <source>Solo/Pre Fader Listening</source>
+ <translation type="unfinished">Escucha de S�o/pre-fader</translation>
+ </message>
+ <message>
+ <source>Name of the midi device associated with this port number</source>
+ <translation type="unfinished">Nombre del dispositivo MIDI asociado con este nmero de puerto</translation>
+ </message>
+ <message>
+ <source>enables reading from device</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>enables writing to device</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QWidget</name>
+ <message>
+ <source>Cannot transform non empty track</source>
+ <translation type="obsolete">No puedo transformar una pista que no est�vacia</translation>
+ </message>
+ <message>
+ <source>Velocity</source>
+ <translation type="obsolete">Velocidad</translation>
+ </message>
+ <message>
+ <source>Cannot convert sysex string</source>
+ <translation type="unfinished">No puedo convertir el paquete de sistema exclusivo</translation>
+ </message>
+ <message>
+ <source>Hex String too long (2048 bytes limit)</source>
+ <translation type="unfinished">Cadena hexadecimal demasiado larga (l�ite de 2048 bytes)</translation>
+ </message>
+ <message>
+ <source>generic midi</source>
+ <translation type="unfinished">midi gen�ico</translation>
+ </message>
+ <message>
+ <source>new</source>
+ <translation type="unfinished">nuevo</translation>
+ </message>
+ <message>
+ <source>create peakfile for </source>
+ <translation type="unfinished">crear archivo de picos para</translation>
+ </message>
+ <message>
+ <source>MusE: get file name</source>
+ <translation type="unfinished">MusE: obtener el nombre de archivo</translation>
+ </message>
+ <message>
+ <source>the directory
+</source>
+ <translation type="unfinished">el directorio
+</translation>
+ </message>
+ <message>
+ <source>
+does not exist
+create?</source>
+ <translation type="unfinished">
+no existe
+ Lo creo ?</translation>
+ </message>
+ <message>
+ <source>&amp;Create</source>
+ <translation type="unfinished">&amp;Crear</translation>
+ </message>
+ <message>
+ <source>Cancel</source>
+ <translation type="unfinished">Cancelar</translation>
+ </message>
+ <message>
+ <source>MusE: create directory</source>
+ <translation type="unfinished">MusE: crear directorio</translation>
+ </message>
+ <message>
+ <source>creating dir failed</source>
+ <translation type="unfinished">fall�la creaci� de directorio</translation>
+ </message>
+ <message>
+ <source>File
+</source>
+ <translation type="unfinished">El archivo
+</translation>
+ </message>
+ <message>
+ <source>
+exists</source>
+ <translation type="unfinished">
+existe</translation>
+ </message>
+ <message>
+ <source>MusE: write</source>
+ <translation type="unfinished">MusE: escribe</translation>
+ </message>
+ <message>
+ <source>Overwrite</source>
+ <translation type="unfinished">Sobre escribe</translation>
+ </message>
+ <message>
+ <source>Quit</source>
+ <translation type="unfinished">Salir</translation>
+ </message>
+ <message>
+ <source>Open File
+</source>
+ <translation type="unfinished">Abrir archivo</translation>
+ </message>
+ <message>
+ <source>
+failed: </source>
+ <translation type="unfinished">
+fall� </translation>
+ </message>
+ <message>
+ <source>MusE: Open File</source>
+ <translation type="unfinished">MusE: Abrir archivo</translation>
+ </message>
+ <message>
+ <source>None</source>
+ <translation type="unfinished">Ninguno</translation>
+ </message>
+ <message>
+ <source>Master</source>
+ <translation type="obsolete">Maestro</translation>
+ </message>
+ <message>
+ <source>Input</source>
+ <translation type="obsolete">Entrada</translation>
+ </message>
+ <message>
+ <source>Group %c</source>
+ <translation type="obsolete">Grupo %c</translation>
+ </message>
+ <message>
+ <source>Unknown</source>
+ <translation type="obsolete">Desconocido</translation>
+ </message>
+</context>
+<context>
+ <name>QuantConfig</name>
+ <message>
+ <source>Config Quantize</source>
+ <translation type="unfinished">Configurar Cuantizaci�</translation>
+ </message>
+ <message>
+ <source>Strength</source>
+ <translation type="unfinished">Fuerza</translation>
+ </message>
+ <message>
+ <source>Don&#xb4;t Quantize</source>
+ <translation type="unfinished">No cuantizes</translation>
+ </message>
+ <message>
+ <source>Quant Len</source>
+ <translation type="unfinished">Cuantizar la longitud</translation>
+ </message>
+ <message>
+ <source>MusE: Config Quantize</source>
+ <translation type="unfinished">MusE: Configurar Cuantizaci�</translation>
+ </message>
+</context>
+<context>
+ <name>QuantDialog</name>
+ <message>
+ <source>Display Quantize</source>
+ <translation type="obsolete">Mostrar la cuantizaci�</translation>
+ </message>
+ <message>
+ <source>Position</source>
+ <translation type="obsolete">Posici�</translation>
+ </message>
+ <message>
+ <source>Note Quantize</source>
+ <translation type="obsolete">Cuantizar Nota</translation>
+ </message>
+ <message>
+ <source>Rest Quantize</source>
+ <translation type="obsolete">Cuantizar el resto</translation>
+ </message>
+ <message>
+ <source>Ok</source>
+ <translation type="obsolete">Aceptar</translation>
+ </message>
+ <message>
+ <source>Cancel</source>
+ <translation type="obsolete">Cancelar</translation>
+ </message>
+</context>
+<context>
+ <name>RhythmBase</name>
+ <message>
+ <source>MusE: Random Rhythm Generator</source>
+ <translation type="unfinished">MusE: Generador de r�mo aleatorio</translation>
+ </message>
+ <message>
+ <source>Instrument Properties</source>
+ <translation type="unfinished">Propiedades del instrumento</translation>
+ </message>
+ <message>
+ <source>counts/bar</source>
+ <translation type="unfinished">cuentar por barra</translation>
+ </message>
+ <message>
+ <source>steps/count</source>
+ <translation type="unfinished">pasos por cuenta</translation>
+ </message>
+ <message>
+ <source># bars</source>
+ <translation type="unfinished">n barras</translation>
+ </message>
+ <message>
+ <source>test</source>
+ <translation type="unfinished">probar</translation>
+ </message>
+ <message>
+ <source>contrib</source>
+ <translation type="unfinished">contribuir</translation>
+ </message>
+ <message>
+ <source>randomize</source>
+ <translation type="unfinished">aleartorizar</translation>
+ </message>
+ <message>
+ <source>Group 1</source>
+ <translation type="unfinished">Grupo 1</translation>
+ </message>
+ <message>
+ <source>Group 2</source>
+ <translation type="unfinished">Grupo 2</translation>
+ </message>
+ <message>
+ <source>Group 3</source>
+ <translation type="unfinished">Grupo 3</translation>
+ </message>
+ <message>
+ <source>Group 4</source>
+ <translation type="unfinished">Grupo 4</translation>
+ </message>
+ <message>
+ <source>Group 5</source>
+ <translation type="unfinished">Grupo 5</translation>
+ </message>
+ <message>
+ <source>listen</source>
+ <translation type="unfinished">escuchar</translation>
+ </message>
+ <message>
+ <source>Instrument</source>
+ <translation type="unfinished">Instrumento</translation>
+ </message>
+ <message>
+ <source>Group</source>
+ <translation type="unfinished">Grupo</translation>
+ </message>
+ <message>
+ <source>&amp;New</source>
+ <translation type="unfinished">&amp;Nuevo</translation>
+ </message>
+ <message>
+ <source>create new entry</source>
+ <translation type="unfinished">crear nueva entrada</translation>
+ </message>
+ <message>
+ <source>pressing the New button you create a new entry
+in the MusE list of defined controllers</source>
+ <translation type="unfinished">pulsando el bot� Nuevo creas una entrada nueva
+en la lista de controles definidos por MusE</translation>
+ </message>
+ <message>
+ <source>&amp;Delete</source>
+ <translation type="unfinished">&amp;Borrar</translation>
+ </message>
+ <message>
+ <source>delete selected entry</source>
+ <translation type="unfinished">borra la entrada seleccionada</translation>
+ </message>
+ <message>
+ <source>Up</source>
+ <translation type="unfinished">Arriba</translation>
+ </message>
+ <message>
+ <source>Down</source>
+ <translation type="unfinished">Abajo</translation>
+ </message>
+ <message>
+ <source>Instrument </source>
+ <translation type="unfinished">Instrumento </translation>
+ </message>
+ <message>
+ <source>steps/count </source>
+ <translation type="unfinished">pasos por cuenta </translation>
+ </message>
+ <message>
+ <source>list of defined controllers</source>
+ <translation type="unfinished">Lista de controladores definidos</translation>
+ </message>
+ <message>
+ <source>This is the MusE list of defined controllers.</source>
+ <translation type="unfinished">Esta es la lista de controladores definidos en MusE.</translation>
+ </message>
+ <message>
+ <source>&amp;File</source>
+ <translation type="unfinished">&amp;Archivo</translation>
+ </message>
+ <message>
+ <source>&amp;Edit</source>
+ <translation type="unfinished">&amp;Editar</translation>
+ </message>
+ <message>
+ <source>&amp;Help</source>
+ <translation type="unfinished">A&amp;yuda</translation>
+ </message>
+ <message>
+ <source>Tools</source>
+ <translation type="unfinished">Herramientas</translation>
+ </message>
+ <message>
+ <source>New</source>
+ <translation type="unfinished">Nuevo</translation>
+ </message>
+ <message>
+ <source>Open</source>
+ <translation type="unfinished">Abrir</translation>
+ </message>
+ <message>
+ <source>&amp;Open...</source>
+ <translation type="unfinished">&amp;Abrir...</translation>
+ </message>
+ <message>
+ <source>Save</source>
+ <translation type="unfinished">Guardar</translation>
+ </message>
+ <message>
+ <source>&amp;Save</source>
+ <translation type="unfinished">&amp;Guardar</translation>
+ </message>
+ <message>
+ <source>Save As</source>
+ <translation type="unfinished">Guardar como</translation>
+ </message>
+ <message>
+ <source>Save &amp;As...</source>
+ <translation type="unfinished">Guardar &amp;Como...</translation>
+ </message>
+ <message>
+ <source>Print</source>
+ <translation type="unfinished">Imprimir</translation>
+ </message>
+ <message>
+ <source>&amp;Print...</source>
+ <translation type="unfinished">&amp;Imprimir...</translation>
+ </message>
+ <message>
+ <source>Exit</source>
+ <translation type="unfinished">Salir</translation>
+ </message>
+ <message>
+ <source>E&amp;xit</source>
+ <translation type="unfinished">&amp;Salir</translation>
+ </message>
+ <message>
+ <source>Undo</source>
+ <translation type="unfinished">Deshacer</translation>
+ </message>
+ <message>
+ <source>&amp;Undo</source>
+ <translation type="unfinished">&amp;Deshacer</translation>
+ </message>
+ <message>
+ <source>Redo</source>
+ <translation type="unfinished">Rehacer</translation>
+ </message>
+ <message>
+ <source>&amp;Redo</source>
+ <translation type="unfinished">&amp;Rehacer</translation>
+ </message>
+ <message>
+ <source>Cut</source>
+ <translation type="unfinished">Cortar</translation>
+ </message>
+ <message>
+ <source>&amp;Cut</source>
+ <translation type="unfinished">&amp;Cortar</translation>
+ </message>
+ <message>
+ <source>Copy</source>
+ <translation type="unfinished">Copiar</translation>
+ </message>
+ <message>
+ <source>C&amp;opy</source>
+ <translation type="unfinished">C&amp;opiar</translation>
+ </message>
+ <message>
+ <source>Paste</source>
+ <translation type="unfinished">Pegar</translation>
+ </message>
+ <message>
+ <source>&amp;Paste</source>
+ <translation type="unfinished">&amp;Pegar</translation>
+ </message>
+ <message>
+ <source>Find</source>
+ <translation type="unfinished">Buscar</translation>
+ </message>
+ <message>
+ <source>&amp;Find...</source>
+ <translation type="unfinished">&amp;Buscar...</translation>
+ </message>
+ <message>
+ <source>Contents</source>
+ <translation type="unfinished">Contenidos</translation>
+ </message>
+ <message>
+ <source>&amp;Contents...</source>
+ <translation type="unfinished">&amp;Contenidos...</translation>
+ </message>
+ <message>
+ <source>Index</source>
+ <translation type="unfinished">�dice</translation>
+ </message>
+ <message>
+ <source>&amp;Index...</source>
+ <translation type="unfinished">&amp;Indice...</translation>
+ </message>
+ <message>
+ <source>About</source>
+ <translation type="unfinished">Acerca de</translation>
+ </message>
+ <message>
+ <source>&amp;About...</source>
+ <translation type="unfinished">&amp;Acerca de ...</translation>
+ </message>
+ <message>
+ <source>&lt;b&gt;Notice!&lt;/b&gt;&lt;br&gt;
+Random Rhythm Generator is not enabled yet!</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Ctrl+N</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Ctrl+O</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Ctrl+S</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Ctrl+P</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Ctrl+Z</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Ctrl+Y</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Ctrl+X</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Ctrl+C</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Ctrl+V</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Ctrl+F</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>RhythmGenerator</name>
+ <message>
+ <source>Form3</source>
+ <translation type="obsolete">Formulario3</translation>
+ </message>
+ <message>
+ <source>Instrument Settings:</source>
+ <translation type="obsolete">Configuraci� de instrumento:</translation>
+ </message>
+ <message>
+ <source>Instrument</source>
+ <translation type="obsolete">Instrumento</translation>
+ </message>
+ <message>
+ <source>Hi-Hat</source>
+ <translation type="obsolete">Charli</translation>
+ </message>
+ <message>
+ <source>add</source>
+ <translation type="obsolete">a�dir</translation>
+ </message>
+ <message>
+ <source>delete</source>
+ <translation type="obsolete">borrar</translation>
+ </message>
+ <message>
+ <source>steps/count</source>
+ <translation type="obsolete">pasos/cuenta</translation>
+ </message>
+ <message>
+ <source>count/bar</source>
+ <translation type="obsolete">cuentas/comp�</translation>
+ </message>
+ <message>
+ <source># bars</source>
+ <translation type="obsolete">n compases</translation>
+ </message>
+ <message>
+ <source>Group Settings:</source>
+ <translation type="obsolete">Configuraci� de grupo:</translation>
+ </message>
+ <message>
+ <source>Group</source>
+ <translation type="obsolete">Grupo</translation>
+ </message>
+ <message>
+ <source>Group 1</source>
+ <translation type="obsolete">Grupo 1</translation>
+ </message>
+ <message>
+ <source>Group 2</source>
+ <translation type="obsolete">Grupo 2</translation>
+ </message>
+ <message>
+ <source>Group 3</source>
+ <translation type="obsolete">Grupo 3</translation>
+ </message>
+ <message>
+ <source>Group 4</source>
+ <translation type="obsolete">Grupo 4</translation>
+ </message>
+ <message>
+ <source>Group 5</source>
+ <translation type="obsolete">Grupo 5</translation>
+ </message>
+ <message>
+ <source>contrib</source>
+ <translation type="obsolete">contrib</translation>
+ </message>
+ <message>
+ <source>listen</source>
+ <translation type="obsolete">escuchar</translation>
+ </message>
+ <message>
+ <source>Randomize</source>
+ <translation type="obsolete">aleatorizar</translation>
+ </message>
+ <message>
+ <source>Rhythm Style:</source>
+ <translation type="obsolete">Estilo de ritmo:</translation>
+ </message>
+ <message>
+ <source>Clear</source>
+ <translation type="obsolete">L�pio</translation>
+ </message>
+ <message>
+ <source>Open...</source>
+ <translation type="obsolete">Abrir...</translation>
+ </message>
+ <message>
+ <source>Save</source>
+ <translation type="obsolete">Guardar</translation>
+ </message>
+ <message>
+ <source>Save as...</source>
+ <translation type="obsolete">Guardar como...</translation>
+ </message>
+ <message>
+ <source>Generate</source>
+ <translation type="obsolete">Generar</translation>
+ </message>
+ <message>
+ <source>Close</source>
+ <translation type="obsolete">Cerrar</translation>
+ </message>
+ <message>
+ <source></source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>RouteDialogBase</name>
+ <message>
+ <source>MusE: Routing</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Add Route</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Source:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Destination:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Connect</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>connect source to destination</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Current Routes</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Source</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Destination</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Remove</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>remove selected route</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>Score</name>
+ <message>
+ <source>&amp;Config</source>
+ <translation type="obsolete">&amp;Configuraci�</translation>
+ </message>
+ <message>
+ <source>Page Settings</source>
+ <translation type="obsolete">Configuraci� de p�ina</translation>
+ </message>
+ <message>
+ <source>Staff Settings</source>
+ <translation type="obsolete">Configuraci� de pentagrama</translation>
+ </message>
+ <message>
+ <source>Background Pixmap</source>
+ <translation type="obsolete">imagen de fondo</translation>
+ </message>
+ <message>
+ <source>Palettes</source>
+ <translation type="obsolete">Paletas</translation>
+ </message>
+ <message>
+ <source>Dynamics</source>
+ <translation type="obsolete">Din�icos</translation>
+ </message>
+ <message>
+ <source>Print</source>
+ <translation type="obsolete">Imprimir</translation>
+ </message>
+ <message>
+ <source>Preview Print</source>
+ <translation type="obsolete">Previsualizar la impresi�</translation>
+ </message>
+ <message>
+ <source>Lyrics</source>
+ <translation type="obsolete">Letra</translation>
+ </message>
+ <message>
+ <source>enter lyrics</source>
+ <translation type="obsolete">escribe la letra</translation>
+ </message>
+ <message>
+ <source>Text</source>
+ <translation type="obsolete">Texto</translation>
+ </message>
+ <message>
+ <source>enter text</source>
+ <translation type="obsolete">escribe el texto</translation>
+ </message>
+ <message>
+ <source>C7m</source>
+ <translation type="obsolete">C7m</translation>
+ </message>
+ <message>
+ <source>enter chord symbol</source>
+ <translation type="obsolete">escribe el s�bolo del acorde</translation>
+ </message>
+ <message>
+ <source>to previous voice</source>
+ <translation type="obsolete">al timbre anterior</translation>
+ </message>
+ <message>
+ <source>to next voice</source>
+ <translation type="obsolete">al timbre siguiente</translation>
+ </message>
+ <message>
+ <source>flip stem direction</source>
+ <translation type="obsolete">intercambia la direcci� de la armadura</translation>
+ </message>
+ <message>
+ <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>
+ <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>
+ <source>flip stem direction of selected notes</source>
+ <translation type="obsolete">intercambia la direcci� de la armadura de las notas seleccionadas</translation>
+ </message>
+ <message>
+ <source>StaffSettings</source>
+ <translation type="obsolete">Configuraci� de pentagrama</translation>
+ </message>
+ <message>
+ <source>MusE: config wallpaper</source>
+ <translation type="obsolete">MusE: Configurar imagen de fondo</translation>
+ </message>
+ <message>
+ <source>Score</source>
+ <translation type="obsolete">Partitura</translation>
+ </message>
+</context>
+<context>
+ <name>ScoreConfig</name>
+ <message>
+ <source>Staff Settings: </source>
+ <translation type="obsolete">Configuraci� de Pentagrama: </translation>
+ </message>
+ <message>
+ <source>Track List</source>
+ <translation type="obsolete">Lista de pistas</translation>
+ </message>
+ <message>
+ <source>Key/Clef</source>
+ <translation type="obsolete">Clave</translation>
+ </message>
+ <message>
+ <source>Raster</source>
+ <translation type="obsolete">Raster</translation>
+ </message>
+ <message>
+ <source>Note Quantize</source>
+ <translation type="obsolete">Cuantizaci� de nota</translation>
+ </message>
+ <message>
+ <source>Rest Quantize</source>
+ <translation type="obsolete">Restaurar cuantizaci�</translation>
+ </message>
+ <message>
+ <source>Mode</source>
+ <translation type="obsolete">Modo</translation>
+ </message>
+ <message>
+ <source>Split System</source>
+ <translation type="obsolete">Sistema partido</translation>
+ </message>
+ <message>
+ <source>Splitpoint</source>
+ <translation type="obsolete">punto de separaci�</translation>
+ </message>
+ <message>
+ <source>Ok</source>
+ <translation type="obsolete">Aceptar</translation>
+ </message>
+ <message>
+ <source>Apply</source>
+ <translation type="obsolete">Aplicar</translation>
+ </message>
+ <message>
+ <source>Cancel</source>
+ <translation type="obsolete">Cancelar</translation>
+ </message>
+ <message>
+ <source>Upper Staff</source>
+ <translation type="obsolete">Pentagrama superior</translation>
+ </message>
+ <message>
+ <source>Lower Staff</source>
+ <translation type="obsolete">Pentagrama inferior</translation>
+ </message>
+</context>
+<context>
+ <name>ScrollScale</name>
+ <message>
+ <source>next page</source>
+ <translation type="unfinished">p�ina siguiente</translation>
+ </message>
+ <message>
+ <source>previous page</source>
+ <translation type="unfinished">p�ina anterior</translation>
+ </message>
+ <message>
+ <source>current page number</source>
+ <translation type="unfinished">numero de p�ina actual</translation>
+ </message>
+</context>
+<context>
+ <name>ShortcutCaptureDialogBase</name>
+ <message>
+ <source>Enter shortcut sequence</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Press keys to enter shortcut sequence!</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Old shortcut:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Undefined</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>New shortcut:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>OK</source>
+ <translation type="unfinished">Aceptar</translation>
+ </message>
+ <message>
+ <source>Cancel</source>
+ <translation type="unfinished">Cancelar</translation>
+ </message>
+</context>
+<context>
+ <name>ShortcutConfigBase</name>
+ <message>
+ <source>Configure Keyboard Shortcuts</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Shortcut Category</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Description</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Shortcut</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>&amp;Clear</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Alt+C</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>&amp;Define</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Alt+D</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>&amp;Apply</source>
+ <translation type="unfinished">&amp;Aplicar</translation>
+ </message>
+ <message>
+ <source>Alt+A</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SigScale</name>
+ <message>
+ <source>signature scale</source>
+ <translation type="unfinished">Armadura de la escala</translation>
+ </message>
+</context>
+<context>
+ <name>StkGuiBase</name>
+ <message>
+ <source>MyDialog2</source>
+ <translation type="obsolete">MiDialogo2</translation>
+ </message>
+ <message>
+ <source>Voices</source>
+ <translation type="obsolete">Voces</translation>
+ </message>
+ <message>
+ <source>Edit</source>
+ <translation type="obsolete">Editar</translation>
+ </message>
+</context>
+<context>
+ <name>SynthConfigBase</name>
+ <message>
+ <source>MusE: Synth Configuration</source>
+ <translation type="unfinished">MusE: Configuraci� del Sintetizador virtual</translation>
+ </message>
+ <message>
+ <source>Soft Synthesizer</source>
+ <translation type="unfinished">Sintetizador Virtual</translation>
+ </message>
+ <message>
+ <source>File</source>
+ <translation type="unfinished">Archivo</translation>
+ </message>
+ <message>
+ <source>Instances</source>
+ <translation type="unfinished">Copias</translation>
+ </message>
+ <message>
+ <source>Name</source>
+ <translation type="unfinished">Nombre</translation>
+ </message>
+ <message>
+ <source>list of available software synthesizers</source>
+ <translation type="unfinished">lista de sintetizadores de software dispoibles</translation>
+ </message>
+ <message>
+ <source>Add Instance</source>
+ <translation type="unfinished">A�dir copia</translation>
+ </message>
+ <message>
+ <source>Alsa Port</source>
+ <translation type="obsolete">Puerto ALSA</translation>
+ </message>
+ <message>
+ <source>Remove Instance</source>
+ <translation type="unfinished">Quitar copia</translation>
+ </message>
+ <message>
+ <source>Midi Port</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Midi connections</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Inst</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Version</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Description</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>TList</name>
+ <message>
+ <source>Midi</source>
+ <translation type="unfinished">MIDI</translation>
+ </message>
+ <message>
+ <source>Drum</source>
+ <translation type="unfinished">Percusi�</translation>
+ </message>
+ <message>
+ <source>Wave</source>
+ <translation type="obsolete">Audio</translation>
+ </message>
+ <message>
+ <source>Delete Track</source>
+ <translation type="unfinished">Borrar pista</translation>
+ </message>
+ <message>
+ <source>Track Comment</source>
+ <translation type="unfinished">Comentario de pista</translation>
+ </message>
+ <message>
+ <source>Show Gui</source>
+ <translation type="unfinished">Mostrar GUI</translation>
+ </message>
+ <message>
+ <source>Add Midi Track</source>
+ <translation type="unfinished">A�dir pista MIDI</translation>
+ </message>
+ <message>
+ <source>Add Drum Track</source>
+ <translation type="unfinished">A�dir pista de percusi�</translation>
+ </message>
+ <message>
+ <source>Add Wave Track</source>
+ <translation type="unfinished">A�dir pista de audio</translation>
+ </message>
+ <message>
+ <source>MusE: bad trackname</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>please choose a unique track name</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Add Output</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Add Group</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Add Input</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Add Aux Send</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Update drummap?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Do you want to use same port for all instruments in the drummap?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>&amp;Yes</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>&amp;No</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Do you want to use same port and channel for all instruments in the drummap?</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>TempoSig</name>
+ <message>
+ <source>Tempo/Sig</source>
+ <translation type="unfinished">tempo/firma</translation>
+ </message>
+</context>
+<context>
+ <name>Toolbar1</name>
+ <message>
+ <source>Solo</source>
+ <translation type="unfinished">Solo</translation>
+ </message>
+ <message>
+ <source>Snap</source>
+ <translation type="unfinished">Snap</translation>
+ </message>
+ <message>
+ <source>Quantize</source>
+ <translation type="unfinished">Cuantizar</translation>
+ </message>
+ <message>
+ <source>To</source>
+ <translation type="unfinished">A</translation>
+ </message>
+ <message>
+ <source>All Events</source>
+ <translation type="unfinished">Todos los eventos</translation>
+ </message>
+ <message>
+ <source>Looped Ev.</source>
+ <translation type="unfinished">Eventos del bucle</translation>
+ </message>
+ <message>
+ <source>Selected Ev.</source>
+ <translation type="unfinished">Eventos seleccionados</translation>
+ </message>
+ <message>
+ <source>Looped+Sel.</source>
+ <translation type="unfinished">Bucle + Selecci�</translation>
+ </message>
+ <message>
+ <source>Cursor</source>
+ <translation type="unfinished">Cursor</translation>
+ </message>
+</context>
+<context>
+ <name>TrackComment</name>
+ <message>
+ <source>MusE: Track Comment</source>
+ <translation type="unfinished">MusE: Comentario de la pista</translation>
+ </message>
+ <message>
+ <source>Track Comment:</source>
+ <translation type="unfinished">Comentario de la pista:</translation>
+ </message>
+</context>
+<context>
+ <name>Transport</name>
+ <message>
+ <source>Punch In</source>
+ <translation type="unfinished">Pinchar</translation>
+ </message>
+ <message>
+ <source>Loop</source>
+ <translation type="unfinished">Bucle</translation>
+ </message>
+ <message>
+ <source>Punch Out</source>
+ <translation type="unfinished">Fin pinchado</translation>
+ </message>
+ <message>
+ <source>Left Mark</source>
+ <translation type="unfinished">Marca izquierda</translation>
+ </message>
+ <message>
+ <source>Right Mark</source>
+ <translation type="unfinished">Marca derecha</translation>
+ </message>
+ <message>
+ <source>Overdub</source>
+ <translation type="unfinished">A�dir</translation>
+ </message>
+ <message>
+ <source>Replace</source>
+ <translation type="unfinished">Reemplazar</translation>
+ </message>
+ <message>
+ <source>Rec Mode</source>
+ <translation type="unfinished">Modo de grabaci�</translation>
+ </message>
+ <message>
+ <source>Normal</source>
+ <translation type="unfinished">Normal</translation>
+ </message>
+ <message>
+ <source>Mix</source>
+ <translation type="unfinished">Mezcla</translation>
+ </message>
+ <message>
+ <source>Cycle Rec</source>
+ <translation type="unfinished">Ciclar Grabaci�</translation>
+ </message>
+ <message>
+ <source>punchin</source>
+ <translation type="unfinished">pinchar</translation>
+ </message>
+ <message>
+ <source>loop</source>
+ <translation type="unfinished">bucle</translation>
+ </message>
+ <message>
+ <source>punchout</source>
+ <translation type="unfinished">fin pinchado</translation>
+ </message>
+ <message>
+ <source>rewind to start</source>
+ <translation type="unfinished">retroceder al inicio</translation>
+ </message>
+ <message>
+ <source>rewind</source>
+ <translation type="unfinished">retroceder</translation>
+ </message>
+ <message>
+ <source>forward</source>
+ <translation type="unfinished">avanzar</translation>
+ </message>
+ <message>
+ <source>stop</source>
+ <translation type="unfinished">parar</translation>
+ </message>
+ <message>
+ <source>play</source>
+ <translation type="unfinished">reproducir</translation>
+ </message>
+ <message>
+ <source>record</source>
+ <translation type="unfinished">grabar</translation>
+ </message>
+ <message>
+ <source>AC</source>
+ <translation type="unfinished">AC</translation>
+ </message>
+ <message>
+ <source>quantize during record</source>
+ <translation type="unfinished">cuantizar durante la grabaci�</translation>
+ </message>
+ <message>
+ <source>Click</source>
+ <translation type="unfinished">Click</translation>
+ </message>
+ <message>
+ <source>metronom click on/off</source>
+ <translation type="unfinished">Click del metr�omo encendido/apagado</translation>
+ </message>
+ <message>
+ <source>Sync</source>
+ <translation type="unfinished">Sinconizaci�</translation>
+ </message>
+ <message>
+ <source>external sync on/off</source>
+ <translation type="unfinished">Sincronizaci� externa encedida/apagada</translation>
+ </message>
+ <message>
+ <source>Master</source>
+ <translation type="unfinished">Maestro</translation>
+ </message>
+ <message>
+ <source>use master track</source>
+ <translation type="unfinished">usar pista maestra</translation>
+ </message>
+</context>
+<context>
+ <name>TransposeDialogBase</name>
+ <message>
+ <source>MusE: Midi Transpose</source>
+ <translation type="unfinished">MusE: Transposici� MIDI</translation>
+ </message>
+ <message>
+ <source>Value</source>
+ <translation type="unfinished">Valor</translation>
+ </message>
+ <message>
+ <source>halftones</source>
+ <translation type="unfinished">semitonos</translation>
+ </message>
+ <message>
+ <source>Time</source>
+ <translation type="unfinished">Tiempo</translation>
+ </message>
+ <message>
+ <source>all</source>
+ <translation type="unfinished">todo</translation>
+ </message>
+ <message>
+ <source>between markers</source>
+ <translation type="unfinished">entre marcadores</translation>
+ </message>
+ <message>
+ <source>Parts</source>
+ <translation type="unfinished">Partes</translation>
+ </message>
+ <message>
+ <source>all in selected tracks</source>
+ <translation type="unfinished">todo en las pistas seleccionadas</translation>
+ </message>
+ <message>
+ <source>OK</source>
+ <translation type="unfinished">Aceptar</translation>
+ </message>
+ <message>
+ <source>Cancel</source>
+ <translation type="unfinished">Cancelar</translation>
+ </message>
+</context>
+<context>
+ <name>VAMGuiBase</name>
+ <message>
+ <source>Virtual Analogue for MusE</source>
+ <translation type="obsolete">Analogico virtual para MusE</translation>
+ </message>
+ <message>
+ <source>LFO</source>
+ <translation type="obsolete">LFO</translation>
+ </message>
+ <message>
+ <source>Freq</source>
+ <translation type="obsolete">Freq</translation>
+ </message>
+ <message>
+ <source>Waveform</source>
+ <translation type="obsolete">Tipo Onda</translation>
+ </message>
+ <message>
+ <source>Sine</source>
+ <translation type="obsolete">Seno</translation>
+ </message>
+ <message>
+ <source>Pulse</source>
+ <translation type="obsolete">Pulso</translation>
+ </message>
+ <message>
+ <source>Saw</source>
+ <translation type="obsolete">Sierra</translation>
+ </message>
+ <message>
+ <source>Triangle</source>
+ <translation type="obsolete">Tri�gulo</translation>
+ </message>
+ <message>
+ <source>Filter</source>
+ <translation type="obsolete">Filtro</translation>
+ </message>
+ <message>
+ <source>EnvMod</source>
+ <translation type="obsolete">Modulaci� de envolvente</translation>
+ </message>
+ <message>
+ <source>Attack</source>
+ <translation type="obsolete">Ataque</translation>
+ </message>
+ <message>
+ <source>Decay</source>
+ <translation type="obsolete">Decaimiento</translation>
+ </message>
+ <message>
+ <source>Sustain</source>
+ <translation type="obsolete">Sostenido</translation>
+ </message>
+ <message>
+ <source>Release</source>
+ <translation type="obsolete">Relajaci�</translation>
+ </message>
+ <message>
+ <source>Cutoff</source>
+ <translation type="obsolete">Frecuencia de corte</translation>
+ </message>
+ <message>
+ <source>Resonance</source>
+ <translation type="obsolete">Resonancia</translation>
+ </message>
+ <message>
+ <source>Invert</source>
+ <translation type="obsolete">Invertir</translation>
+ </message>
+ <message>
+ <source>KeyTrack</source>
+ <translation type="obsolete">Seguir teclas</translation>
+ </message>
+ <message>
+ <source>Presets</source>
+ <translation type="obsolete">Plantillas</translation>
+ </message>
+ <message>
+ <source>Set</source>
+ <translation type="obsolete">Establecer</translation>
+ </message>
+ <message>
+ <source>load preset list</source>
+ <translation type="obsolete">cargar lista de plantillas</translation>
+ </message>
+ <message>
+ <source>save preset list</source>
+ <translation type="obsolete">guardar lista de plantillas</translation>
+ </message>
+ <message>
+ <source>save preset list to a new file</source>
+ <translation type="obsolete">guardar lista de plantillas en un archivo nuevo</translation>
+ </message>
+ <message>
+ <source>delete preset</source>
+ <translation type="obsolete">borrar plantilla</translation>
+ </message>
+ <message>
+ <source>DCO 1</source>
+ <translation type="obsolete">DCO 1</translation>
+ </message>
+ <message>
+ <source>Pitch</source>
+ <translation type="obsolete">Tono</translation>
+ </message>
+ <message>
+ <source>Detune</source>
+ <translation type="obsolete">Desafinaci�</translation>
+ </message>
+ <message>
+ <source>PWM</source>
+ <translation type="obsolete">PWM</translation>
+ </message>
+ <message>
+ <source>FM</source>
+ <translation type="obsolete">FM</translation>
+ </message>
+ <message>
+ <source>PW</source>
+ <translation type="obsolete">PW</translation>
+ </message>
+ <message>
+ <source>DCO 2</source>
+ <translation type="obsolete">DCO 2</translation>
+ </message>
+ <message>
+ <source>On</source>
+ <translation type="obsolete">Encendido</translation>
+ </message>
+ <message encoding="UTF-8">
+ <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>VelocityBase</name>
+ <message>
+ <source>MusE: Modify Velocity</source>
+ <translation type="unfinished">MusE: Modificar velocidad</translation>
+ </message>
+ <message>
+ <source>Range</source>
+ <translation type="unfinished">Rango</translation>
+ </message>
+ <message>
+ <source>All Events</source>
+ <translation type="unfinished">Todos los eventos</translation>
+ </message>
+ <message>
+ <source>Selected Events</source>
+ <translation type="unfinished">Eventos seleccionados</translation>
+ </message>
+ <message>
+ <source>Looped Events</source>
+ <translation type="unfinished">Eventos del bucle</translation>
+ </message>
+ <message>
+ <source>Selected &amp; Looped</source>
+ <translation type="unfinished">Seleccionados y bucle</translation>
+ </message>
+ <message>
+ <source>Values</source>
+ <translation type="unfinished">Valores</translation>
+ </message>
+ <message>
+ <source>Rate:</source>
+ <translation type="unfinished">Velocidad:</translation>
+ </message>
+ <message>
+ <source>Offset:</source>
+ <translation type="unfinished">Desplazamiento:</translation>
+ </message>
+ <message>
+ <source>%</source>
+ <translation type="unfinished">%</translation>
+ </message>
+ <message>
+ <source>OK</source>
+ <translation type="unfinished">Aceptar</translation>
+ </message>
+ <message>
+ <source>Cancel</source>
+ <translation type="unfinished">Cancelar</translation>
+ </message>
+</context>
+<context>
+ <name>WTScale</name>
+ <message>
+ <source>bar scale</source>
+ <translation type="unfinished">escala de compases</translation>
+ </message>
+</context>
+<context>
+ <name>WaveEdit</name>
+ <message>
+ <source>Normalize</source>
+ <translation>Normalizar</translation>
+ </message>
+ <message>
+ <source>weTools</source>
+ <translation type="unfinished">Herramientas de Audio</translation>
+ </message>
+ <message>
+ <source>Solo</source>
+ <translation type="unfinished">Solo</translation>
+ </message>
+ <message>
+ <source>Cursor</source>
+ <translation type="unfinished">Cursor</translation>
+ </message>
+ <message>
+ <source>&amp;File</source>
+ <translation type="unfinished">&amp;Archivo</translation>
+ </message>
+ <message>
+ <source>Functions</source>
+ <translation type="unfinished">Funciones</translation>
+ </message>
+</context>
+<context>
+ <name>WaveTrackInfoBase</name>
+ <message>
+ <source>MusE: TrackInfo</source>
+ <translation type="unfinished">MusE: Informaci� de pista</translation>
+ </message>
+ <message>
+ <source>Track Info</source>
+ <translation type="unfinished">Informaci� de pista</translation>
+ </message>
+ <message>
+ <source>Track Name</source>
+ <translation type="unfinished">Nombre de pista</translation>
+ </message>
+ <message>
+ <source>Output Route:</source>
+ <translation type="unfinished">Ruta de salida:</translation>
+ </message>
+ <message>
+ <source>Input Route:</source>
+ <translation type="unfinished">Ruta de netrada:</translation>
+ </message>
+ <message>
+ <source>Ports:</source>
+ <translation type="unfinished">Puertos:</translation>
+ </message>
+ <message>
+ <source>Mono</source>
+ <translation type="unfinished">Mono</translation>
+ </message>
+ <message>
+ <source>Stereo</source>
+ <translation type="unfinished">Est�eo</translation>
+ </message>
+</context>
+</TS>
diff --git a/muse2/share/locale/muse_fr.qm b/muse2/share/locale/muse_fr.qm
new file mode 100644
index 00000000..60d57825
--- /dev/null
+++ b/muse2/share/locale/muse_fr.qm
Binary files differ
diff --git a/muse2/share/locale/muse_fr.ts b/muse2/share/locale/muse_fr.ts
new file mode 100644
index 00000000..0f654345
--- /dev/null
+++ b/muse2/share/locale/muse_fr.ts
@@ -0,0 +1,5947 @@
+<!DOCTYPE TS><TS>
+<context>
+ <name></name>
+ <message>
+ <source>Click this button to enable recording</source>
+ <translation>Cliquez sur ce bouton pour activer
+l&apos;enregistrement</translation>
+ </message>
+ <message>
+ <source>sets amount of quantization:
+0 - no quantization
+100 - full quantization</source>
+ <translation>Définit le niveau de quantisation:
+0 - pas de quantisation
+100 - quantisation complète</translation>
+ </message>
+ <message>
+ <source>select Pointer Tool:
+with the pointer tool you can:
+ select parts
+ move parts
+ copy parts</source>
+ <translation>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>
+</context>
+<context>
+ <name>@default</name>
+ <message>
+ <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>Cliquez sur ce bouton pour ouvrir une &lt;em&gt;nouvelle
+chanson&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>
+ <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>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>
+ <source>Create New Song</source>
+ <translation>Créer une nouvelle chanson</translation>
+ </message>
+ <message>
+ <source>Click this button to stop playback</source>
+ <translation>Cliquez sur ce bouton pour arréter la
+lecture</translation>
+ </message>
+ <message>
+ <source>Click this button to start playback</source>
+ <translation>Cliquez sur ce bouton pour démarrer la
+lecture</translation>
+ </message>
+ <message>
+ <source>Click this button to rewind to start position</source>
+ <translation>Cliquez sur ce bouton pour revenir � la position de
+départ</translation>
+ </message>
+ <message>
+ <source>Click this button to rewind</source>
+ <translation>Cliquez sur ce bouton pour revenir en
+arrière</translation>
+ </message>
+ <message>
+ <source>Click this button to forward current play position</source>
+ <translation>Cliquez sur ce bouton pour avancer dans la
+lecture</translation>
+ </message>
+ <message>
+ <source>don&apos;t quantize notes above this tick limit</source>
+ <translation>Ne pas quantiser les notes sur cette limite (en
+tick)</translation>
+ </message>
+ <message>
+ <source>quantize also note len as default</source>
+ <translation>quantiser aussi la longueur de note par
+défault</translation>
+ </message>
+ <message>
+ <source>loop between left mark and right mark</source>
+ <translation>Boucler entre les marqueurs gauche et droit</translation>
+ </message>
+ <message>
+ <source>record starts at left mark</source>
+ <translation>l&apos;enregistrement démarre au marqueur
+gauche</translation>
+ </message>
+ <message>
+ <source>record stops at right mark</source>
+ <translation>l&apos;enregistrement s&apos;arrète au marqueur
+droit</translation>
+ </message>
+ <message>
+ <source>rewind to start position</source>
+ <translation>revenir � la position de départ</translation>
+ </message>
+ <message>
+ <source>rewind current position</source>
+ <translation>revenir � la position en cours</translation>
+ </message>
+ <message>
+ <source>move current position</source>
+ <translation>déplacer la position en cours</translation>
+ </message>
+ <message>
+ <source>stop sequencer</source>
+ <translation>arréter le séquenceur</translation>
+ </message>
+ <message>
+ <source>start sequencer play</source>
+ <translation>démarrer la lecture du séquenceur</translation>
+ </message>
+ <message>
+ <source>to record press record and then play</source>
+ <translation>pour enregistrer, presser Enregistrement (Record) puis
+Lecture (Play)</translation>
+ </message>
+ <message>
+ <source>send note off to all midi channels</source>
+ <translation>envoyer ordre de relachement de note � tous les canaux
+midi</translation>
+ </message>
+ <message>
+ <source>select Pencil Tool:
+with the pencil tool you can:
+ create new parts
+ modify length of parts</source>
+ <translation>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>
+ <source>select Delete Tool:
+with the delete tool you can delete parts</source>
+ <translation>choisir l&apos;Outil Gomme:
+avec la gomme vous pouvez effacer les pièces</translation>
+ </message>
+ <message>
+ <source>select Cut Tool:
+with the cut tool you can split a part</source>
+ <translation>Choisir l&apos;Outil Ciseaux
+avec les ciseaux vous pouver couper une pièce</translation>
+ </message>
+ <message>
+ <source>select Glue Tool:
+with the glue tool you can glue two parts</source>
+ <translation>Choisir l&apos;Outil Colle:
+avec la colle vous pouvez coller deux pièces ensemble</translation>
+ </message>
+ <message>
+ <source>select Score Tool:
+</source>
+ <translation>Choisir l&apos;Outil Partition</translation>
+ </message>
+ <message>
+ <source>select Quantize Tool:
+insert display quantize event</source>
+ <translation>Choisir l&apos;Outil Quantisation:
+pour voir les marques de quantisation</translation>
+ </message>
+ <message>
+ <source>select Drawing Tool</source>
+ <translation>Choisir l&apos;Outil de Dessin</translation>
+ </message>
+ <message>
+ <source>select Muting Tool:
+click on part to mute/unmute</source>
+ <translation>Choisir l&apos;Outil Silence:
+cliquez sur une pièces pour la rendre muette ou pas.</translation>
+ </message>
+ <message>
+ <source>pointer</source>
+ <translation>pointeur</translation>
+ </message>
+ <message>
+ <source>pencil</source>
+ <translation>crayon</translation>
+ </message>
+ <message>
+ <source>rubber</source>
+ <translation>gomme</translation>
+ </message>
+ <message>
+ <source>cutter</source>
+ <translation>ciseaux</translation>
+ </message>
+ <message>
+ <source>score</source>
+ <translation>partition</translation>
+ </message>
+ <message>
+ <source>glue</source>
+ <translation>colle</translation>
+ </message>
+ <message>
+ <source>quantize</source>
+ <translation>quantisation</translation>
+ </message>
+ <message>
+ <source>draw</source>
+ <translation>dessin</translation>
+ </message>
+ <message>
+ <source>mute parts</source>
+ <translation>silence</translation>
+ </message>
+ <message>
+ <source>Off</source>
+ <translation>Arrêt</translation>
+ </message>
+ <message>
+ <source>presets (*.pre *.pre.gz *.pre.bz2)</source>
+ <translation>réglages (presets: *.pre *.pre.gz
+*.pre.bz2)</translation>
+ </message>
+ <message>
+ <source>All Files (*)</source>
+ <translation>Tous les Fichiers (*)</translation>
+ </message>
+</context>
+<context>
+ <name>Appearance</name>
+ <message>
+ <source>MusE: load image</source>
+ <translation>MusE: charger une image</translation>
+ </message>
+ <message>
+ <source>handle of transport window</source>
+ <translation>poignée de la fenêtre Transport</translation>
+ </message>
+ <message>
+ <source>track activity in arranger</source>
+ <translation>Activité des pistes dans l&apos;Arrangeur</translation>
+ </message>
+ <message>
+ <source>bigtime font color</source>
+ <translation>Couleur de la police dans le GrandChrono</translation>
+ </message>
+ <message>
+ <source>bigtime background color</source>
+ <translation>Couleur de fond du GrandChrono</translation>
+ </message>
+ <message>
+ <source>waveedit background color</source>
+ <translation>Couleur du fond de l&apos;éditeur
+d&apos;échantillon</translation>
+ </message>
+</context>
+<context>
+ <name>AppearanceDialogBase</name>
+ <message>
+ <source>MusE: Appearance settings</source>
+ <translation>MusE: réglages de l&apos;apparence</translation>
+ </message>
+ <message>
+ <source>Apply</source>
+ <translation>Appliquer</translation>
+ </message>
+ <message>
+ <source>Ok</source>
+ <translation>Ok</translation>
+ </message>
+ <message>
+ <source>Cancel</source>
+ <translation>Annuler</translation>
+ </message>
+ <message>
+ <source>Arranger</source>
+ <translation>Arrangeur</translation>
+ </message>
+ <message>
+ <source>Parts</source>
+ <translation>Pièces</translation>
+ </message>
+ <message>
+ <source>show frames</source>
+ <translation>montrer les séparations</translation>
+ </message>
+ <message>
+ <source>show names</source>
+ <translation>montrer les noms</translation>
+ </message>
+ <message>
+ <source>show events</source>
+ <translation>montrer les évènements</translation>
+ </message>
+ <message>
+ <source>show Cakewalk Style</source>
+ <translation>montrer dans le style Cakewalk</translation>
+ </message>
+ <message>
+ <source>Events</source>
+ <translation>Evènements</translation>
+ </message>
+ <message>
+ <source>note on</source>
+ <translation>note on</translation>
+ </message>
+ <message>
+ <source>poly pressure</source>
+ <translation>pression poly</translation>
+ </message>
+ <message>
+ <source>controller</source>
+ <translation>contrôleurs</translation>
+ </message>
+ <message>
+ <source>aftertouch</source>
+ <translation>pression (aftertouch)</translation>
+ </message>
+ <message>
+ <source>pitch bend</source>
+ <translation>molette de hauteur (pitch)</translation>
+ </message>
+ <message>
+ <source>program change</source>
+ <translation>sélection de programme (prog. change)</translation>
+ </message>
+ <message>
+ <source>special</source>
+ <translation>spécial</translation>
+ </message>
+ <message>
+ <source>Background picture</source>
+ <translation>image de fond</translation>
+ </message>
+ <message>
+ <source>bg</source>
+ <translation>fond</translation>
+ </message>
+ <message>
+ <source>select...</source>
+ <translation>choisissez...</translation>
+ </message>
+ <message>
+ <source>show snap grid</source>
+ <translation>voir la grille de positionnement</translation>
+ </message>
+ <message>
+ <source>Colors</source>
+ <translation>couleurs</translation>
+ </message>
+ <message>
+ <source>Items</source>
+ <translation>Objets</translation>
+ </message>
+ <message>
+ <source>selected</source>
+ <translation>sélectionné</translation>
+ </message>
+ <message>
+ <source>current:</source>
+ <translation>en cours:</translation>
+ </message>
+ <message>
+ <source>change...</source>
+ <translation>changer...</translation>
+ </message>
+ <message>
+ <source>dynamic colors for track activity in arranger</source>
+ <translation>Choix auto des couleurs pour l&apos;activité des pistes
+dans l&apos;Arrangeur</translation>
+ </message>
+ <message>
+ <source>Style/Fonts</source>
+ <translation>Styles/Polices</translation>
+ </message>
+ <message>
+ <source>QT Theme</source>
+ <translation>Thème</translation>
+ </message>
+ <message>
+ <source>Windows</source>
+ <translation>Windows</translation>
+ </message>
+ <message>
+ <source>MusE</source>
+ <translation>MusE</translation>
+ </message>
+ <message>
+ <source>Metal</source>
+ <translation>Metal</translation>
+ </message>
+ <message>
+ <source>Norwegian Wood</source>
+ <translation>Norwegian Wood</translation>
+ </message>
+ <message>
+ <source>Platinum</source>
+ <translation>Platinum</translation>
+ </message>
+ <message>
+ <source>CDE</source>
+ <translation>CDE</translation>
+ </message>
+ <message>
+ <source>Motif</source>
+ <translation>Motif</translation>
+ </message>
+ <message>
+ <source>Motif Plus</source>
+ <translation>Motif Plus</translation>
+ </message>
+ <message>
+ <source>Fonts</source>
+ <translation>Polices</translation>
+ </message>
+ <message>
+ <source>Family</source>
+ <translation>Famille</translation>
+ </message>
+ <message>
+ <source>Size</source>
+ <translation>Taille</translation>
+ </message>
+ <message>
+ <source>Font 1</source>
+ <translation>Police 1</translation>
+ </message>
+ <message>
+ <source>Font 2</source>
+ <translation>Police 2</translation>
+ </message>
+ <message>
+ <source>Font 3</source>
+ <translation>Police 3</translation>
+ </message>
+ <message>
+ <source>Font 0</source>
+ <translation>Police 0</translation>
+ </message>
+ <message>
+ <source>Bold</source>
+ <translation>Gras</translation>
+ </message>
+ <message>
+ <source>Italic</source>
+ <translation>Italique</translation>
+ </message>
+ <message>
+ <source>...</source>
+ <translation>...</translation>
+ </message>
+ <message>
+ <source>Font 4</source>
+ <translation>Police 4</translation>
+ </message>
+ <message>
+ <source>Font 5</source>
+ <translation>Couleurs</translation>
+ </message>
+</context>
+<context>
+ <name>Arranger</name>
+ <message>
+ <source>Cursor</source>
+ <translation>Curseur</translation>
+ </message>
+ <message>
+ <source>Snap</source>
+ <translation>Aligne</translation>
+ </message>
+ <message>
+ <source>Len</source>
+ <translation>Long</translation>
+ </message>
+ <message>
+ <source>Type</source>
+ <translation>Type</translation>
+ </message>
+ <message>
+ <source>NO</source>
+ <translation>NON</translation>
+ </message>
+ <message>
+ <source>midi song type</source>
+ <translation>type de fichier midi</translation>
+ </message>
+ <message>
+ <source>Pitch</source>
+ <translation>Hauteur</translation>
+ </message>
+ <message>
+ <source>midi pitch</source>
+ <translation>hauteur midi</translation>
+ </message>
+ <message>
+ <source>global midi pitch shift</source>
+ <translation>transposition midi globale</translation>
+ </message>
+ <message>
+ <source>Tempo</source>
+ <translation>Tempo</translation>
+ </message>
+ <message>
+ <source>midi tempo</source>
+ <translation>tempo midi</translation>
+ </message>
+ <message>
+ <source>TrackInfo</source>
+ <translation>InfoPiste</translation>
+ </message>
+ <message>
+ <source>Track</source>
+ <translation>Piste</translation>
+ </message>
+ <message>
+ <source>O-Port</source>
+ <translation>O-Port</translation>
+ </message>
+ <message>
+ <source>Arranger</source>
+ <translation>Arrangeur</translation>
+ </message>
+ <message>
+ <source>Off</source>
+ <translation>Arrêt</translation>
+ </message>
+ <message>
+ <source>Bar</source>
+ <translation>Mesure</translation>
+ </message>
+ <message>
+ <source>GM</source>
+ <translation>GM</translation>
+ </message>
+ <message>
+ <source>GS</source>
+ <translation>GS</translation>
+ </message>
+ <message>
+ <source>XG</source>
+ <translation>XG</translation>
+ </message>
+ <message>
+ <source>N</source>
+ <translation>N</translation>
+ </message>
+ <message>
+ <source>R</source>
+ <translation>R</translation>
+ </message>
+ <message>
+ <source>A</source>
+ <translation>A</translation>
+ </message>
+ <message>
+ <source>M</source>
+ <translation>M</translation>
+ </message>
+ <message>
+ <source>S</source>
+ <translation>S</translation>
+ </message>
+ <message>
+ <source>C</source>
+ <translation>C</translation>
+ </message>
+ <message>
+ <source>Ch</source>
+ <translation>Ch</translation>
+ </message>
+ <message>
+ <source>T</source>
+ <translation>T</translation>
+ </message>
+ <message>
+ <source>Master</source>
+ <translation></translation>
+ </message>
+ <message>
+ <source>Group A</source>
+ <translation></translation>
+ </message>
+ <message>
+ <source>Group B</source>
+ <translation></translation>
+ </message>
+ <message>
+ <source>Group C</source>
+ <translation></translation>
+ </message>
+ <message>
+ <source>Group D</source>
+ <translation></translation>
+ </message>
+</context>
+<context>
+ <name>AudioConfBase</name>
+ <message>
+ <source>MusE: Audio Configuration</source>
+ <translation>MusE: Configuration Audio</translation>
+ </message>
+ <message>
+ <source>&amp;Apply</source>
+ <translation>&amp;Appliquer</translation>
+ </message>
+ <message>
+ <source>&amp;OK</source>
+ <translation>&amp;OK</translation>
+ </message>
+ <message>
+ <source>&amp;Cancel</source>
+ <translation>A&amp;nnuler</translation>
+ </message>
+ <message>
+ <source>Audio Parameters</source>
+ <translation>Paramètres Audio</translation>
+ </message>
+ <message>
+ <source>32</source>
+ <translation>32</translation>
+ </message>
+ <message>
+ <source>64</source>
+ <translation>64</translation>
+ </message>
+ <message>
+ <source>128</source>
+ <translation>128</translation>
+ </message>
+ <message>
+ <source>256</source>
+ <translation>256</translation>
+ </message>
+ <message>
+ <source>512</source>
+ <translation>512</translation>
+ </message>
+ <message>
+ <source>1024</source>
+ <translation>1024</translation>
+ </message>
+ <message>
+ <source>2048</source>
+ <translation>2048</translation>
+ </message>
+ <message>
+ <source>4096</source>
+ <translation>4096</translation>
+ </message>
+ <message>
+ <source>Frame Size:</source>
+ <translation>Longueur des trames:</translation>
+ </message>
+ <message>
+ <source>Delay:</source>
+ <translation>Délai:</translation>
+ </message>
+ <message>
+ <source>Sample Rate:</source>
+ <translation>Fréquence d&apos;échantillonage:</translation>
+ </message>
+ <message>
+ <source>44100</source>
+ <translation>44100</translation>
+ </message>
+ <message>
+ <source>48000</source>
+ <translation>48000</translation>
+ </message>
+ <message>
+ <source>96000</source>
+ <translation>96000</translation>
+ </message>
+ <message>
+ <source>Audio Driver</source>
+ <translation>Pilote Audio</translation>
+ </message>
+ <message>
+ <source>Use Alsa</source>
+ <translation>Alsa</translation>
+ </message>
+ <message>
+ <source>Use JACK</source>
+ <translation>JACK</translation>
+ </message>
+ <message>
+ <source>No Audio</source>
+ <translation>Pas d&apos;audio</translation>
+ </message>
+ <message>
+ <source>Status:</source>
+ <translation>Etat:</translation>
+ </message>
+ <message>
+ <source>TextLabel6</source>
+ <translation>TextLabel6</translation>
+ </message>
+</context>
+<context>
+ <name>AudioMixerApp</name>
+ <message>
+ <source>1/2 channel</source>
+ <translation>1/2 canal</translation>
+ </message>
+ <message>
+ <source>pre fader - post fader</source>
+ <translation>pre fader - post fader</translation>
+ </message>
+ <message>
+ <source>record</source>
+ <translation>enregistrement</translation>
+ </message>
+ <message>
+ <source>mute</source>
+ <translation>silence</translation>
+ </message>
+ <message>
+ <source>pre fader listening</source>
+ <translation>écoute pre fader</translation>
+ </message>
+ <message>
+ <source>record downmix</source>
+ <translation>enregistrer mixdown</translation>
+ </message>
+ <message>
+ <source>off</source>
+ <translation>arrêt</translation>
+ </message>
+ <message>
+ <source>output routing</source>
+ <translation>chemin de sortie (routing)</translation>
+ </message>
+ <message>
+ <source>&amp;Config</source>
+ <translation>&amp;Configuration</translation>
+ </message>
+ <message>
+ <source>Add Input Strip</source>
+ <translation>Ajouter une Bande d&apos;Entrée</translation>
+ </message>
+ <message>
+ <source>S</source>
+ <translation>S</translation>
+ </message>
+ <message>
+ <source>Pre</source>
+ <translation>Pre</translation>
+ </message>
+ <message>
+ <source>dB</source>
+ <translation>dB</translation>
+ </message>
+ <message>
+ <source>MusE: Audio Mixer</source>
+ <translation>MusE: Mixeur Audio</translation>
+ </message>
+ <message>
+ <source>Inputs</source>
+ <translation>Entrées</translation>
+ </message>
+ <message>
+ <source>Synthi</source>
+ <translation>Synth</translation>
+ </message>
+ <message>
+ <source>Tracks</source>
+ <translation>Pistes</translation>
+ </message>
+ <message>
+ <source>Groups</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Master</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Group A</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Group B</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Group C</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Group D</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>None</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>BigTime</name>
+ <message>
+ <source>MusE: Bigtime</source>
+ <translation>MusE: GrandChrono</translation>
+ </message>
+</context>
+<context>
+ <name>ClipListEdit</name>
+ <message>
+ <source>MusE: Clip List Editor</source>
+ <translation>MusE: Editeur de la Liste de Clips</translation>
+ </message>
+</context>
+<context>
+ <name>ClipListEditorBase</name>
+ <message>
+ <source>MusE: ClipList</source>
+ <translation>MusE: Liste de Clips</translation>
+ </message>
+ <message>
+ <source>Name</source>
+ <translation>Nom</translation>
+ </message>
+ <message>
+ <source>Refs</source>
+ <translation>Réfs</translation>
+ </message>
+ <message>
+ <source>Start</source>
+ <translation>Départ</translation>
+ </message>
+ <message>
+ <source>Len</source>
+ <translation>Long</translation>
+ </message>
+ <message>
+ <source>Data</source>
+ <translation>Donnée</translation>
+ </message>
+ <message>
+ <source>Clip Properties</source>
+ <translation>Propriétés du Clip</translation>
+ </message>
+ <message>
+ <source>Pos:</source>
+ <translation>Pos:</translation>
+ </message>
+ <message>
+ <source>Len:</source>
+ <translation>Long:</translation>
+ </message>
+</context>
+<context>
+ <name>CommentBase</name>
+ <message>
+ <source>Form1</source>
+ <translation>Forme1</translation>
+ </message>
+ <message>
+ <source>Track Comment</source>
+ <translation>Commentaire pour la Piste</translation>
+ </message>
+ <message>
+ <source>Track 1</source>
+ <translation>Piste 1</translation>
+ </message>
+</context>
+<context>
+ <name>CtrlPanel</name>
+ <message>
+ <source>select controller</source>
+ <translation>Choisissez le contrôle</translation>
+ </message>
+ <message>
+ <source>remove panel</source>
+ <translation>enlever le panneau</translation>
+ </message>
+ <message>
+ <source>other ...</source>
+ <translation>autres...</translation>
+ </message>
+ <message>
+ <source>Sel</source>
+ <translation>Sél</translation>
+ </message>
+ <message>
+ <source>x</source>
+ <translation>x</translation>
+ </message>
+ <message>
+ <source>Velocity</source>
+ <translation>Vélocité</translation>
+ </message>
+ <message>
+ <source>Pitch</source>
+ <translation>Hauteur</translation>
+ </message>
+</context>
+<context>
+ <name>DrumEdit</name>
+ <message>
+ <source>Load Map</source>
+ <translation>Charger set de batterie</translation>
+ </message>
+ <message>
+ <source>Save Map</source>
+ <translation>Enregistrer set de batterie</translation>
+ </message>
+ <message>
+ <source>&amp;Edit</source>
+ <translation>&amp;Editer</translation>
+ </message>
+ <message>
+ <source>Cut</source>
+ <translation>Couper</translation>
+ </message>
+ <message>
+ <source>Copy</source>
+ <translation>Copier</translation>
+ </message>
+ <message>
+ <source>Paste</source>
+ <translation>Coller</translation>
+ </message>
+ <message>
+ <source>Delete Events</source>
+ <translation>Effacer</translation>
+ </message>
+ <message>
+ <source>Select All</source>
+ <translation>Tout sélectionner</translation>
+ </message>
+ <message>
+ <source>Select None</source>
+ <translation>Dé-sélectionner</translation>
+ </message>
+ <message>
+ <source>Invert</source>
+ <translation>Inverser</translation>
+ </message>
+ <message>
+ <source>Inside Loop</source>
+ <translation>Dans la boucle</translation>
+ </message>
+ <message>
+ <source>Outside Loop</source>
+ <translation>Hors de la boucle</translation>
+ </message>
+ <message>
+ <source>&amp;Select</source>
+ <translation>&amp;Sélectionner</translation>
+ </message>
+ <message>
+ <source>Step Record</source>
+ <translation>Enregistrement pas-�-pas</translation>
+ </message>
+ <message>
+ <source>Midi Input</source>
+ <translation>Entrée Midi</translation>
+ </message>
+ <message>
+ <source>Add Controller View</source>
+ <translation>Ajouter une Vue des contrôles</translation>
+ </message>
+ <message>
+ <source>M</source>
+ <translation>M</translation>
+ </message>
+ <message>
+ <source>Sound</source>
+ <translation>Son</translation>
+ </message>
+ <message>
+ <source>QNT</source>
+ <translation>QNT</translation>
+ </message>
+ <message>
+ <source>E-Note</source>
+ <translation>E-Note</translation>
+ </message>
+ <message>
+ <source>Len</source>
+ <translation>Long</translation>
+ </message>
+ <message>
+ <source>A-Note</source>
+ <translation>A-Note</translation>
+ </message>
+ <message>
+ <source>Ch</source>
+ <translation>Ch</translation>
+ </message>
+ <message>
+ <source>Port</source>
+ <translation>Port</translation>
+ </message>
+ <message>
+ <source>LV1</source>
+ <translation>LV1</translation>
+ </message>
+ <message>
+ <source>LV2</source>
+ <translation>LV2</translation>
+ </message>
+ <message>
+ <source>LV3</source>
+ <translation>LV3</translation>
+ </message>
+ <message>
+ <source>LV4</source>
+ <translation>LV4</translation>
+ </message>
+ <message>
+ <source>&amp;File</source>
+ <translation>&amp;Fichier</translation>
+ </message>
+ <message>
+ <source>Load Drummap</source>
+ <translation>Charger Set de Batterie</translation>
+ </message>
+ <message>
+ <source>Store Drummap</source>
+ <translation>Enregistrer Set de Batterie</translation>
+ </message>
+ <message>
+ <source>ctrl</source>
+ <translation>ctrl</translation>
+ </message>
+ <message>
+ <source>drummaps</source>
+ <translation>Sets de Batterie</translation>
+ </message>
+ <message>
+ <source>Muse: Load Drum Map</source>
+ <translation>MusE: Charger Set de Batterie</translation>
+ </message>
+ <message>
+ <source>MusE: Store Drum Map</source>
+ <translation>MusE: Enregistrer Set de Batterie</translation>
+ </message>
+</context>
+<context>
+ <name>EditCAfterDialog</name>
+ <message>
+ <source>Time Position</source>
+ <translation>Position temporelle</translation>
+ </message>
+ <message>
+ <source>Pressure</source>
+ <translation>Pression</translation>
+ </message>
+ <message>
+ <source>MusE: Enter Channel Aftertouch</source>
+ <translation>MusE: Entrez le Canal de Pression
+(AfterTouch)</translation>
+ </message>
+</context>
+<context>
+ <name>EditCtrl14Dialog</name>
+ <message>
+ <source>Time Position</source>
+ <translation>Position temporelle</translation>
+ </message>
+ <message>
+ <source>Controller-H</source>
+ <translation>Contrôle H</translation>
+ </message>
+ <message>
+ <source>Controller-L</source>
+ <translation>Contrôle L</translation>
+ </message>
+ <message>
+ <source>Value</source>
+ <translation>Valeur</translation>
+ </message>
+ <message>
+ <source>MusE: Enter Controller14 Event</source>
+ <translation>MusE: Entrer l&apos;évènement Contrôle 14</translation>
+ </message>
+</context>
+<context>
+ <name>EditCtrl7Dialog</name>
+ <message>
+ <source>Time Position</source>
+ <translation>Position temporelle</translation>
+ </message>
+ <message>
+ <source>Controller</source>
+ <translation>Contrôle</translation>
+ </message>
+ <message>
+ <source>Value</source>
+ <translation>Valeur</translation>
+ </message>
+ <message>
+ <source>MusE: Enter Controller Event</source>
+ <translation>MusE: Entrez l&apos;Evénement Contrôle</translation>
+ </message>
+</context>
+<context>
+ <name>EditCtrl7DialogBase</name>
+ <message>
+ <source>MusE: Enter Controller</source>
+ <translation>Muse: Entrez le Contrôle</translation>
+ </message>
+ <message>
+ <source>Controller:</source>
+ <translation>Contrôle:</translation>
+ </message>
+ <message>
+ <source>Time Position:</source>
+ <translation>Position temporelle:</translation>
+ </message>
+ <message>
+ <source>Value:</source>
+ <translation>Valeur:</translation>
+ </message>
+ <message>
+ <source>controller value</source>
+ <translation>Valeur du Contrôle</translation>
+ </message>
+ <message>
+ <source>OK</source>
+ <translation>OK</translation>
+ </message>
+ <message>
+ <source>Cancel</source>
+ <translation>Annuler</translation>
+ </message>
+</context>
+<context>
+ <name>EditEventDialog</name>
+ <message>
+ <source>Ok</source>
+ <translation>Ok</translation>
+ </message>
+ <message>
+ <source>Cancel</source>
+ <translation>Annuler</translation>
+ </message>
+</context>
+<context>
+ <name>EditMetaDialog</name>
+ <message>
+ <source>Time Position</source>
+ <translation>Position temporelle</translation>
+ </message>
+ <message>
+ <source>Meta Type</source>
+ <translation>Meta Type</translation>
+ </message>
+ <message>
+ <source>Enter Hex</source>
+ <translation>Entrez en Hexa</translation>
+ </message>
+ <message>
+ <source>MusE: Enter Meta Event</source>
+ <translation>MusE: Entrer un Evènement en Hexa</translation>
+ </message>
+</context>
+<context>
+ <name>EditMetaDialogBase</name>
+ <message>
+ <source>MusE: Enter Meta Event</source>
+ <translation>MusE: Entrer un Méta Evènement</translation>
+ </message>
+ <message>
+ <source>OK</source>
+ <translation>OK</translation>
+ </message>
+ <message>
+ <source>Cancel</source>
+ <translation>Annuler</translation>
+ </message>
+ <message>
+ <source>TextLabel1</source>
+ <translation>TextLabel1</translation>
+ </message>
+ <message>
+ <source>Time Position:</source>
+ <translation>Position temporelle</translation>
+ </message>
+ <message>
+ <source>Meta Type:</source>
+ <translation>Meta Type</translation>
+ </message>
+ <message>
+ <source>Enter Hex</source>
+ <translation>Entrée Hexa</translation>
+ </message>
+</context>
+<context>
+ <name>EditNoteDialogBase</name>
+ <message>
+ <source>MusE: Enter Note</source>
+ <translation>Mus2: Entrer la Note</translation>
+ </message>
+ <message>
+ <source>OK</source>
+ <translation>OK</translation>
+ </message>
+ <message>
+ <source>Cancel</source>
+ <translation>Annuler</translation>
+ </message>
+ <message>
+ <source>Length:</source>
+ <translation>Longueur:</translation>
+ </message>
+ <message>
+ <source>Time Position:</source>
+ <translation>Position temporelle:</translation>
+ </message>
+ <message>
+ <source>Pitch:</source>
+ <translation>Hauteur</translation>
+ </message>
+ <message>
+ <source>Velocity On:</source>
+ <translation>Vélocité On:</translation>
+ </message>
+ <message>
+ <source>Velocity Off:</source>
+ <translation>Vélocité Off:</translation>
+ </message>
+</context>
+<context>
+ <name>EditPAfterDialog</name>
+ <message>
+ <source>Time Position</source>
+ <translation>Position temporelle</translation>
+ </message>
+ <message>
+ <source>Pitch</source>
+ <translation>Hauteur</translation>
+ </message>
+ <message>
+ <source>Pressure</source>
+ <translation>Pression</translation>
+ </message>
+ <message>
+ <source>MusE: Enter Poly Aftertouch</source>
+ <translation>Muse: Entrer la Pression polyphonique</translation>
+ </message>
+</context>
+<context>
+ <name>EditPitchDialog</name>
+ <message>
+ <source>Time Position</source>
+ <translation>Editer la Position temporelle</translation>
+ </message>
+ <message>
+ <source>Pitch</source>
+ <translation>Hauteur</translation>
+ </message>
+ <message>
+ <source>MusE: Enter Pitch Shift</source>
+ <translation>MusE: Entrez le décalage de Hauteur</translation>
+ </message>
+</context>
+<context>
+ <name>EditSysexDialogBase</name>
+ <message>
+ <source>MusE: Enter SysEx</source>
+ <translation>MusE: Entrer le Sysex</translation>
+ </message>
+ <message>
+ <source>TimePosition:</source>
+ <translation>Position temporelle</translation>
+ </message>
+ <message>
+ <source>Comment:</source>
+ <translation>Commentaire:</translation>
+ </message>
+ <message>
+ <source>OK</source>
+ <translation>OK</translation>
+ </message>
+ <message>
+ <source>Cancel</source>
+ <translation>Annuler</translation>
+ </message>
+</context>
+<context>
+ <name>EditToolBar</name>
+ <message>
+ <source>Edit Tools</source>
+ <translation>Outils d&apos;Edition</translation>
+ </message>
+</context>
+<context>
+ <name>EffectRack</name>
+ <message>
+ <source>effect rack</source>
+ <translation>rack d&apos;effets</translation>
+ </message>
+ <message>
+ <source>move up</source>
+ <translation>Déplacer vers le haut</translation>
+ </message>
+ <message>
+ <source>move down</source>
+ <translation>Déplacer vers le bas</translation>
+ </message>
+ <message>
+ <source>remove</source>
+ <translation>enlever</translation>
+ </message>
+ <message>
+ <source>bypass</source>
+ <translation>direct</translation>
+ </message>
+ <message>
+ <source>show gui</source>
+ <translation>montrer l&apos;interface</translation>
+ </message>
+ <message>
+ <source>new</source>
+ <translation>nouveau</translation>
+ </message>
+ <message>
+ <source>change</source>
+ <translation>changement</translation>
+ </message>
+</context>
+<context>
+ <name>FLUIDGuiBase</name>
+ <message>
+ <source>Form1</source>
+ <translation>Form1</translation>
+ </message>
+ <message>
+ <source>Soundfont</source>
+ <translation>Set de Sons</translation>
+ </message>
+ <message>
+ <source>Load</source>
+ <translation>Charger</translation>
+ </message>
+</context>
+<context>
+ <name>FLUIDSynthGuiBase</name>
+ <message>
+ <source>FLUID Synth</source>
+ <translation>FLUID Synth</translation>
+ </message>
+ <message>
+ <source>Gain</source>
+ <translation>Gain</translation>
+ </message>
+ <message>
+ <source>Room Size</source>
+ <translation>Dimension de la chambre</translation>
+ </message>
+ <message>
+ <source>Damping</source>
+ <translation>Atténuation</translation>
+ </message>
+ <message>
+ <source>Level</source>
+ <translation>Niveau</translation>
+ </message>
+ <message>
+ <source>Width</source>
+ <translation>Largeur</translation>
+ </message>
+ <message>
+ <source>Speed</source>
+ <translation>Vitesse</translation>
+ </message>
+ <message>
+ <source>Depth</source>
+ <translation>Profondeur</translation>
+ </message>
+ <message>
+ <source>Number</source>
+ <translation>Nombre</translation>
+ </message>
+ <message>
+ <source>Type</source>
+ <translation>Type</translation>
+ </message>
+ <message>
+ <source>Sine</source>
+ <translation>Sinusoide</translation>
+ </message>
+ <message>
+ <source>Triangle</source>
+ <translation>Triangle</translation>
+ </message>
+ <message>
+ <source>Reverb</source>
+ <translation>Réverb</translation>
+ </message>
+ <message>
+ <source>Chorus</source>
+ <translation>Chorus</translation>
+ </message>
+ <message>
+ <source>Pop</source>
+ <translation>Pop</translation>
+ </message>
+ <message>
+ <source>Push</source>
+ <translation>Pousser</translation>
+ </message>
+ <message>
+ <source>...</source>
+ <translation>...</translation>
+ </message>
+ <message>
+ <source>show fluidsynth controls</source>
+ <translation>Montrer les contrôles de fluidsynth</translation>
+ </message>
+ <message>
+ <source>Load</source>
+ <translation>charger</translation>
+ </message>
+ <message>
+ <source>Save</source>
+ <translation>Enregistrer</translation>
+ </message>
+</context>
+<context>
+ <name>FileDialogButtons</name>
+ <message>
+ <source>Form1</source>
+ <translation>Form1</translation>
+ </message>
+ <message>
+ <source>Global</source>
+ <translation>Global</translation>
+ </message>
+ <message>
+ <source>User</source>
+ <translation>Utilisateur</translation>
+ </message>
+ <message>
+ <source>Project</source>
+ <translation>Projet</translation>
+ </message>
+</context>
+<context>
+ <name>FontSel</name>
+ <message>
+ <source>Size:</source>
+ <translation>Taille:</translation>
+ </message>
+</context>
+<context>
+ <name>GateTimeBase</name>
+ <message>
+ <source>MusE: Modify Gate Time</source>
+ <translation>MusE: modifier le temps de fermeture (Gate
+Time)</translation>
+ </message>
+ <message>
+ <source>Range</source>
+ <translation>Entre</translation>
+ </message>
+ <message>
+ <source>All Events</source>
+ <translation>Tous les Evènements</translation>
+ </message>
+ <message>
+ <source>Selected Events</source>
+ <translation>Evènements choisis</translation>
+ </message>
+ <message>
+ <source>Looped Events</source>
+ <translation>Evènements bouclés</translation>
+ </message>
+ <message>
+ <source>Selected &amp; Looped</source>
+ <translation>Boucle &amp; sélectionnée</translation>
+ </message>
+ <message>
+ <source>Values</source>
+ <translation>Valeurs</translation>
+ </message>
+ <message>
+ <source>Rate:</source>
+ <translation>Vitesse:</translation>
+ </message>
+ <message>
+ <source>Offset:</source>
+ <translation>Décalage:</translation>
+ </message>
+ <message>
+ <source>%</source>
+ <translation>%</translation>
+ </message>
+ <message>
+ <source>OK</source>
+ <translation>OK</translation>
+ </message>
+ <message>
+ <source>Cancel</source>
+ <translation>Annuler</translation>
+ </message>
+</context>
+<context>
+ <name>GlobalSettingsDialogBase</name>
+ <message>
+ <source>MusE: Global Settings</source>
+ <translation>MusE: Paramètres</translation>
+ </message>
+ <message>
+ <source>Audio</source>
+ <translation>Audio</translation>
+ </message>
+ <message>
+ <source>Mixer</source>
+ <translation>Mixeur</translation>
+ </message>
+ <message>
+ <source>dB</source>
+ <translation>dB</translation>
+ </message>
+ <message>
+ <source>min. Meter Value</source>
+ <translation>Métrage mini</translation>
+ </message>
+ <message>
+ <source>min.Slider Val</source>
+ <translation>Val. mini du Curseur</translation>
+ </message>
+ <message>
+ <source>Midi</source>
+ <translation>Midi</translation>
+ </message>
+ <message>
+ <source>Ticks</source>
+ <translation>Tics</translation>
+ </message>
+ <message>
+ <source>1024</source>
+ <translation>1024</translation>
+ </message>
+ <message>
+ <source>2048</source>
+ <translation>2048</translation>
+ </message>
+ <message>
+ <source>4096</source>
+ <translation>4096</translation>
+ </message>
+ <message>
+ <source>8172</source>
+ <translation>8172</translation>
+ </message>
+ <message>
+ <source>Displayed Resolution
+(Ticks/Quarternote)</source>
+ <translation>Résolution affichée
+(Tics par 1/4 de note)</translation>
+ </message>
+ <message>
+ <source>48</source>
+ <translation>48</translation>
+ </message>
+ <message>
+ <source>96</source>
+ <translation>96</translation>
+ </message>
+ <message>
+ <source>192</source>
+ <translation>192</translation>
+ </message>
+ <message>
+ <source>384</source>
+ <translation>384</translation>
+ </message>
+ <message>
+ <source>768</source>
+ <translation>768</translation>
+ </message>
+ <message>
+ <source>1536</source>
+ <translation>1536</translation>
+ </message>
+ <message>
+ <source>3072</source>
+ <translation>3072</translation>
+ </message>
+ <message>
+ <source>6144</source>
+ <translation>6144</translation>
+ </message>
+ <message>
+ <source>12288</source>
+ <translation>12288</translation>
+ </message>
+ <message>
+ <source>RTC Resolution
+(Ticks/Sec)</source>
+ <translation>Résolution RTC
+(Tics par sec.)</translation>
+ </message>
+ <message>
+ <source>GUI</source>
+ <translation>GUI</translation>
+ </message>
+ <message>
+ <source>/sec</source>
+ <translation>/sec</translation>
+ </message>
+ <message>
+ <source>GUI Refresh Rate</source>
+ <translation>Vitesse de rafraîchissement de
+l&apos;interface</translation>
+ </message>
+ <message>
+ <source>&amp;Apply</source>
+ <translation>&amp;Appliquer</translation>
+ </message>
+ <message>
+ <source>&amp;Ok</source>
+ <translation>&amp;Ok</translation>
+ </message>
+ <message>
+ <source>&amp;Cancel</source>
+ <translation>&amp;Annuler</translation>
+ </message>
+ <message>
+ <source>Help Browser:</source>
+ <translation>Navigateur pour l&apos;aide:</translation>
+ </message>
+</context>
+<context>
+ <name>LMaster</name>
+ <message>
+ <source>new tempo</source>
+ <translation>nouveau tempo</translation>
+ </message>
+ <message>
+ <source>new signature</source>
+ <translation>nouvelle signature</translation>
+ </message>
+ <message>
+ <source>Meter</source>
+ <translation>Métrage</translation>
+ </message>
+ <message>
+ <source>Time</source>
+ <translation>Temps</translation>
+ </message>
+ <message>
+ <source>Type</source>
+ <translation>Type</translation>
+ </message>
+ <message>
+ <source>Value</source>
+ <translation>Valeur</translation>
+ </message>
+ <message>
+ <source>MusE: Mastertrack</source>
+ <translation>MusE: Piste principale</translation>
+ </message>
+ <message>
+ <source>Tempo</source>
+ <translation>Tempo</translation>
+ </message>
+ <message>
+ <source>Timesig</source>
+ <translation>Signature Temporelle</translation>
+ </message>
+</context>
+<context>
+ <name>ListEdit</name>
+ <message>
+ <source>&amp;Edit</source>
+ <translation>&amp;Edition</translation>
+ </message>
+ <message>
+ <source>Cut</source>
+ <translation>Couper</translation>
+ </message>
+ <message>
+ <source>Copy</source>
+ <translation>Copier</translation>
+ </message>
+ <message>
+ <source>Paste</source>
+ <translation>Coller</translation>
+ </message>
+ <message>
+ <source>Delete Events</source>
+ <translation>Effacer évènements</translation>
+ </message>
+ <message>
+ <source>List Tools</source>
+ <translation>Outils de Liste</translation>
+ </message>
+ <message>
+ <source>Insert Tools</source>
+ <translation>Outils d&apos;Insertion</translation>
+ </message>
+ <message>
+ <source>Insert Note</source>
+ <translation>Insérer Note</translation>
+ </message>
+ <message>
+ <source>insert Note</source>
+ <translation>insére une note</translation>
+ </message>
+ <message>
+ <source>Insert SysEx</source>
+ <translation>Insérer SysEx</translation>
+ </message>
+ <message>
+ <source>insert SysEx</source>
+ <translation>insère une commande midi SysEx</translation>
+ </message>
+ <message>
+ <source>Insert Ctrl</source>
+ <translation>Insérer Ctrl</translation>
+ </message>
+ <message>
+ <source>insert Ctrl</source>
+ <translation>insére un caractère de Contrôle</translation>
+ </message>
+ <message>
+ <source>Insert Meta</source>
+ <translation>Insérer Meta</translation>
+ </message>
+ <message>
+ <source>insert Meta</source>
+ <translation>insére une balise Meta</translation>
+ </message>
+ <message>
+ <source>Insert Pitch</source>
+ <translation>Insérer Hauteur</translation>
+ </message>
+ <message>
+ <source>insert Pitch</source>
+ <translation>insére un changement de tonalité</translation>
+ </message>
+ <message>
+ <source>Insert Channel Aftertouch</source>
+ <translation>Insérer Canal de Pression</translation>
+ </message>
+ <message>
+ <source>insert Channel Aftertouch</source>
+ <translation>insére un canal de Pression (AfterTouch)</translation>
+ </message>
+ <message>
+ <source>Insert Key Aftertouch</source>
+ <translation>Insérer une note de Pression</translation>
+ </message>
+ <message>
+ <source>insert Poly Aftertouch</source>
+ <translation>insère une Pression (AfterTouch)
+polyphonique</translation>
+ </message>
+ <message>
+ <source>Tick</source>
+ <translation>Tic</translation>
+ </message>
+ <message>
+ <source>Bar</source>
+ <translation>Mesure</translation>
+ </message>
+ <message>
+ <source>Typ</source>
+ <translation>Typ</translation>
+ </message>
+ <message>
+ <source>Ch</source>
+ <translation>Can</translation>
+ </message>
+ <message>
+ <source>Val A</source>
+ <translation>Val A</translation>
+ </message>
+ <message>
+ <source>Val B</source>
+ <translation>Val B</translation>
+ </message>
+ <message>
+ <source>Val C</source>
+ <translation>Val C</translation>
+ </message>
+ <message>
+ <source>Len</source>
+ <translation>Lon</translation>
+ </message>
+ <message>
+ <source>Comment</source>
+ <translation>Commentaire</translation>
+ </message>
+</context>
+<context>
+ <name>MITTransposeBase</name>
+ <message>
+ <source>MusE: Midi Input Plugin: Transpose</source>
+ <translation>MusE: Plugin d&apos;Entrée Midi:
+Transposition</translation>
+ </message>
+ <message>
+ <source>On</source>
+ <translation>On</translation>
+ </message>
+ <message>
+ <source>TriggerKey</source>
+ <translation>Note de Déclenchement</translation>
+ </message>
+ <message>
+ <source>Transpose:</source>
+ <translation>Transposition:</translation>
+ </message>
+ <message>
+ <source>+0</source>
+ <translation>+0</translation>
+ </message>
+</context>
+<context>
+ <name>MPConfig</name>
+ <message>
+ <source>none</source>
+ <translation>aucun</translation>
+ </message>
+ <message>
+ <source>other raw ...</source>
+ <translation>autre brut (raw)...</translation>
+ </message>
+ <message>
+ <source>MusE: Midi Port Table</source>
+ <translation>MusE: Table des ports Midi</translation>
+ </message>
+ <message>
+ <source>Port</source>
+ <translation>Port</translation>
+ </message>
+ <message>
+ <source>GUI</source>
+ <translation>GUI</translation>
+ </message>
+ <message>
+ <source>Rec</source>
+ <translation>Enr</translation>
+ </message>
+ <message>
+ <source>Instrument</source>
+ <translation>Instrument</translation>
+ </message>
+ <message>
+ <source>Device Name</source>
+ <translation>Nom du Périphérique</translation>
+ </message>
+ <message>
+ <source>State</source>
+ <translation>Etat</translation>
+ </message>
+ <message>
+ <source>unknown</source>
+ <translation>inconnu</translation>
+ </message>
+</context>
+<context>
+ <name>MRConfigBase</name>
+ <message>
+ <source>MusE: Midi Input Plugin: Remote Control</source>
+ <translation>MusE: Plugin d&apos;Entrée Midi: Contrôle
+Distant</translation>
+ </message>
+ <message>
+ <source>Activate</source>
+ <translation>Activer</translation>
+ </message>
+ <message>
+ <source>On</source>
+ <translation>On</translation>
+ </message>
+ <message>
+ <source>Actions</source>
+ <translation>Actions</translation>
+ </message>
+ <message>
+ <source>Stop</source>
+ <translation>Stop</translation>
+ </message>
+ <message>
+ <source>Record</source>
+ <translation>Enregistre</translation>
+ </message>
+ <message>
+ <source>Goto Left Mark</source>
+ <translation>Aller � la Marque Gauche</translation>
+ </message>
+ <message>
+ <source>Play</source>
+ <translation>Jouer</translation>
+ </message>
+</context>
+<context>
+ <name>MTScale</name>
+ <message>
+ <source>bar scale</source>
+ <translation>Echelle de la mesure</translation>
+ </message>
+</context>
+<context>
+ <name>MarkerView</name>
+ <message>
+ <source>Bar:Beat:Tick</source>
+ <translation>Mesure:Résolution(Beat):Tic</translation>
+ </message>
+ <message>
+ <source>Hr:Mn:Sc:Fr:Sf</source>
+ <translation>Hr:Mn:Sc:Fr:Sf</translation>
+ </message>
+ <message>
+ <source>Lock</source>
+ <translation>Verrouillage</translation>
+ </message>
+ <message>
+ <source>Text</source>
+ <translation>Texte</translation>
+ </message>
+ <message>
+ <source>Marker Properties</source>
+ <translation>Propriétés du Marqueur</translation>
+ </message>
+ <message>
+ <source>MusE: Marker</source>
+ <translation>MusE: Marqueur</translation>
+ </message>
+ <message>
+ <source>add marker</source>
+ <translation>Ajouter marqueur</translation>
+ </message>
+ <message>
+ <source>Add Marker</source>
+ <translation>Ajoute un marqueur</translation>
+ </message>
+ <message>
+ <source>delete marker</source>
+ <translation>Effacer Marqueur</translation>
+ </message>
+ <message>
+ <source>Delete Marker</source>
+ <translation>Efface le marqueur</translation>
+ </message>
+ <message>
+ <source>&amp;File</source>
+ <translation>&amp;Fichier</translation>
+ </message>
+ <message>
+ <source>&amp;Edit</source>
+ <translation>&amp;Edition</translation>
+ </message>
+</context>
+<context>
+ <name>MasterEdit</name>
+ <message>
+ <source>Master</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cursor</source>
+ <translation>Curseur</translation>
+ </message>
+ <message>
+ <source>Snap</source>
+ <translation>Aligne</translation>
+ </message>
+ <message>
+ <source>time at cursor position</source>
+ <translation>Temps à la position du curseur</translation>
+ </message>
+ <message>
+ <source>tempo at cursor position</source>
+ <translation>Temps � la position du curseur</translation>
+ </message>
+ <message>
+ <source>CurPos </source>
+ <translation>PosCur</translation>
+ </message>
+ <message>
+ <source>tempo at current position</source>
+ <translation>tempo � la position en cours</translation>
+ </message>
+ <message>
+ <source>time signature at current position</source>
+ <translation>Signature temporelle à la position en cours</translation>
+ </message>
+ <message>
+ <source>MusE: Mastertrack</source>
+ <translation>MusE: PistePrincipale</translation>
+ </message>
+ <message>
+ <source>edit tools</source>
+ <translation>outils d&apos;édition</translation>
+ </message>
+ <message>
+ <source>EnableMaster</source>
+ <translation>ActiverMaître</translation>
+ </message>
+ <message>
+ <source>use master track</source>
+ <translation>Utiliser la piste principale</translation>
+ </message>
+ <message>
+ <source>Info</source>
+ <translation>Info</translation>
+ </message>
+ <message>
+ <source>Off</source>
+ <translation>Off</translation>
+ </message>
+</context>
+<context>
+ <name>MetronomeConfigBase</name>
+ <message>
+ <source>MusE: Metronome Config</source>
+ <translation>MusE: Configuration du Métronome</translation>
+ </message>
+ <message>
+ <source>Metronome</source>
+ <translation>Métronome</translation>
+ </message>
+ <message>
+ <source>Audio Beep</source>
+ <translation>Bip audio</translation>
+ </message>
+ <message>
+ <source>MIDI Click</source>
+ <translation>Clic MIDI</translation>
+ </message>
+ <message>
+ <source>Midi Channel</source>
+ <translation>Canal Midi</translation>
+ </message>
+ <message>
+ <source>Measure Note</source>
+ <translation>Note Mesure</translation>
+ </message>
+ <message>
+ <source>Measure Velocity</source>
+ <translation>Vélocité de la Mesure</translation>
+ </message>
+ <message>
+ <source>Beat Velocity</source>
+ <translation>Résolution (Beat) de la Vélocité</translation>
+ </message>
+ <message>
+ <source>Beat Note</source>
+ <translation>Note de Résolution (Beat)</translation>
+ </message>
+ <message>
+ <source>Midi Port</source>
+ <translation>Port MIDI</translation>
+ </message>
+ <message>
+ <source>Precount</source>
+ <translation>Pré-compte</translation>
+ </message>
+ <message>
+ <source>enable</source>
+ <translation>activer</translation>
+ </message>
+ <message>
+ <source>Bars</source>
+ <translation>Mesures</translation>
+ </message>
+ <message>
+ <source>From Mastertrack</source>
+ <translation>de la Piste Principale</translation>
+ </message>
+ <message>
+ <source>/</source>
+ <translation>/</translation>
+ </message>
+ <message>
+ <source>Signature</source>
+ <translation>Signature</translation>
+ </message>
+ <message>
+ <source>Prerecord</source>
+ <translation>Pré-enregistrement</translation>
+ </message>
+ <message>
+ <source>Preroll</source>
+ <translation>PreRoll</translation>
+ </message>
+ <message>
+ <source>&amp;Apply</source>
+ <translation>&amp;Appliquer</translation>
+ </message>
+ <message>
+ <source>&amp;OK</source>
+ <translation>&amp;Ok</translation>
+ </message>
+ <message>
+ <source>&amp;Cancel</source>
+ <translation>&amp;Annuler</translation>
+ </message>
+</context>
+<context>
+ <name>MidiControllerEditDialog</name>
+ <message>
+ <source>MusE: save midi controller list</source>
+ <translation>MusE: enregistrer la liste des contrôles
+midi</translation>
+ </message>
+ <message>
+ <source>MusE: load midi controller list</source>
+ <translation>MusE: charger une liste de contrôles midi</translation>
+ </message>
+</context>
+<context>
+ <name>MidiControllerEditDialogBase</name>
+ <message>
+ <source>MusE: Define Midi Controller</source>
+ <translation>MusE: Définir un Contrôle Midi</translation>
+ </message>
+ <message>
+ <source>replace controller set</source>
+ <translation>remplacer le groupe de contrôles</translation>
+ </message>
+ <message>
+ <source>merge controller set</source>
+ <translation>ajouter le groupe de contrôles</translation>
+ </message>
+ <message>
+ <source>save controller set as</source>
+ <translation>Enregistrer le groupe de contrôles sous</translation>
+ </message>
+ <message>
+ <source>Name </source>
+ <translation>Nom </translation>
+ </message>
+ <message>
+ <source>Type </source>
+ <translation>Type </translation>
+ </message>
+ <message>
+ <source>H-Ctrl</source>
+ <translation>H-Ctrl</translation>
+ </message>
+ <message>
+ <source>L-Ctrl</source>
+ <translation>L-Ctrl</translation>
+ </message>
+ <message>
+ <source>Min Val</source>
+ <translation>Val Min</translation>
+ </message>
+ <message>
+ <source>Max Val</source>
+ <translation>Val Max</translation>
+ </message>
+ <message>
+ <source>list of defined controllers</source>
+ <translation>list des contrôles définis</translation>
+ </message>
+ <message>
+ <source>This is the MusE list of defined controllers.</source>
+ <translation>C&apos;est la liste des contrôles qui ont été
+définis.</translation>
+ </message>
+ <message>
+ <source>Properties</source>
+ <translation>Propriétés</translation>
+ </message>
+ <message>
+ <source>Name</source>
+ <translation>Nom</translation>
+ </message>
+ <message>
+ <source>Max Value</source>
+ <translation>Valeur Max</translation>
+ </message>
+ <message>
+ <source>Min Value</source>
+ <translation>Valeur Mini</translation>
+ </message>
+ <message>
+ <source>Control7</source>
+ <translation>Control7</translation>
+ </message>
+ <message>
+ <source>Control14</source>
+ <translation>Control8</translation>
+ </message>
+ <message>
+ <source>RPN</source>
+ <translation>RPN</translation>
+ </message>
+ <message>
+ <source>NRPN</source>
+ <translation>NRPN</translation>
+ </message>
+ <message>
+ <source>XG-SysEx</source>
+ <translation>XG-SysEx</translation>
+ </message>
+ <message>
+ <source>SysEx</source>
+ <translation>SysEx</translation>
+ </message>
+ <message>
+ <source>Type</source>
+ <translation>Type</translation>
+ </message>
+ <message>
+ <source>&amp;New</source>
+ <translation>&amp;Nouveau</translation>
+ </message>
+ <message>
+ <source>create new entry</source>
+ <translation>Crée une nouvelle entrée</translation>
+ </message>
+ <message>
+ <source>pressing the New button you create a new entry
+in the MusE list of defined controllers</source>
+ <translation>Crée une nouvelle entrée dans la liste des
+contrôles</translation>
+ </message>
+ <message>
+ <source>&amp;Delete</source>
+ <translation>&amp;Effacer</translation>
+ </message>
+ <message>
+ <source>delete selected entry</source>
+ <translation>efface l&apos;entrée sélectionnée</translation>
+ </message>
+ <message>
+ <source>&amp;OK</source>
+ <translation>&amp;Ok</translation>
+ </message>
+ <message>
+ <source>&amp;Cancel</source>
+ <translation>&amp;Annuler</translation>
+ </message>
+</context>
+<context>
+ <name>MidiFileConfig</name>
+ <message>
+ <source>Enable extended smf format</source>
+ <translation>Activer la prise en charge du format smf
+étendu</translation>
+ </message>
+ <message>
+ <source>Division</source>
+ <translation>Division</translation>
+ </message>
+ <message>
+ <source>Copyright</source>
+ <translation>Copyright</translation>
+ </message>
+ <message>
+ <source>Config exported Midi Files</source>
+ <translation>Configuration de l&apos;export en fichier
+Midi</translation>
+ </message>
+ <message>
+ <source>MusE: Config exported Midi Files</source>
+ <translation>MusE: Configurer l&apos;export en fichier
+Midi</translation>
+ </message>
+</context>
+<context>
+ <name>MidiFilterConfigBase</name>
+ <message>
+ <source>MusE: Midi Input Filter</source>
+ <translation>MusE: Filtre Entrée Midi</translation>
+ </message>
+ <message>
+ <source>Record Filter</source>
+ <translation>Filtre d&apos;Enregistrement</translation>
+ </message>
+ <message>
+ <source>Note On</source>
+ <translation>Note On</translation>
+ </message>
+ <message>
+ <source>Poly Pressure</source>
+ <translation>Pression Poly</translation>
+ </message>
+ <message>
+ <source>Controller</source>
+ <translation>Contrôle</translation>
+ </message>
+ <message>
+ <source>Program Change</source>
+ <translation>Changement de son (Program Change)</translation>
+ </message>
+ <message>
+ <source>After Touch</source>
+ <translation>Pression (After Touch)</translation>
+ </message>
+ <message>
+ <source>Pitch Bend</source>
+ <translation>Molette de modulation - Hauteur</translation>
+ </message>
+ <message>
+ <source>Sysex</source>
+ <translation>SysEx</translation>
+ </message>
+ <message>
+ <source>Thru Filter</source>
+ <translation>Filtre Thru</translation>
+ </message>
+ <message>
+ <source>Controller Filter</source>
+ <translation>Filtre de contrôle</translation>
+ </message>
+ <message>
+ <source>Channel Filter</source>
+ <translation>Filtre Canal</translation>
+ </message>
+ <message>
+ <source>14</source>
+ <translation>14</translation>
+ </message>
+ <message>
+ <source>10</source>
+ <translation>10</translation>
+ </message>
+ <message>
+ <source>6</source>
+ <translation>6</translation>
+ </message>
+ <message>
+ <source>12</source>
+ <translation>12</translation>
+ </message>
+ <message>
+ <source>4</source>
+ <translation>4</translation>
+ </message>
+ <message>
+ <source>2</source>
+ <translation>2</translation>
+ </message>
+ <message>
+ <source>9</source>
+ <translation>9</translation>
+ </message>
+ <message>
+ <source>8</source>
+ <translation>8</translation>
+ </message>
+ <message>
+ <source>3</source>
+ <translation>3</translation>
+ </message>
+ <message>
+ <source>13</source>
+ <translation>13</translation>
+ </message>
+ <message>
+ <source>15</source>
+ <translation>15</translation>
+ </message>
+ <message>
+ <source>16</source>
+ <translation>16</translation>
+ </message>
+ <message>
+ <source>7</source>
+ <translation>7</translation>
+ </message>
+ <message>
+ <source>11</source>
+ <translation>11</translation>
+ </message>
+ <message>
+ <source>5</source>
+ <translation>5</translation>
+ </message>
+ <message>
+ <source>1</source>
+ <translation>1</translation>
+ </message>
+</context>
+<context>
+ <name>MidiInputTransformDialog</name>
+ <message>
+ <source>New</source>
+ <translation>Nouveau</translation>
+ </message>
+</context>
+<context>
+ <name>MidiInputTransformDialogBase</name>
+ <message>
+ <source>MusE: Midi Input Transformator</source>
+ <translation>MusE: Transformateur d&apos;Entrée Midi</translation>
+ </message>
+ <message>
+ <source>Filter</source>
+ <translation>Filtre</translation>
+ </message>
+ <message>
+ <source>All</source>
+ <translation>Tous</translation>
+ </message>
+ <message>
+ <source>Equal</source>
+ <translation>Egal</translation>
+ </message>
+ <message>
+ <source>Unequal</source>
+ <translation>Différent de</translation>
+ </message>
+ <message>
+ <source>Note</source>
+ <translation>Note</translation>
+ </message>
+ <message>
+ <source>Poly Pressure</source>
+ <translation>Pression Poly</translation>
+ </message>
+ <message>
+ <source>Control Change</source>
+ <translation>Contrôle de Changement</translation>
+ </message>
+ <message>
+ <source>Aftertouch</source>
+ <translation>Pression</translation>
+ </message>
+ <message>
+ <source>Pitch Bend</source>
+ <translation>Molette de modulation</translation>
+ </message>
+ <message>
+ <source>NRPN</source>
+ <translation>NRPN</translation>
+ </message>
+ <message>
+ <source>RPN</source>
+ <translation>RPN</translation>
+ </message>
+ <message>
+ <source>Value 2</source>
+ <translation>Valeur 2</translation>
+ </message>
+ <message>
+ <source>Value 1</source>
+ <translation>Valeur 1</translation>
+ </message>
+ <message>
+ <source>Event Type</source>
+ <translation>Type d&apos;Evènements</translation>
+ </message>
+ <message>
+ <source>Ignore</source>
+ <translation>Ignore</translation>
+ </message>
+ <message>
+ <source>Higher</source>
+ <translation>Plus Haut</translation>
+ </message>
+ <message>
+ <source>Lower</source>
+ <translation>Plus Bas</translation>
+ </message>
+ <message>
+ <source>Inside</source>
+ <translation>A l&apos;intérieur</translation>
+ </message>
+ <message>
+ <source>Outside</source>
+ <translation>Al&apos;extérieur</translation>
+ </message>
+ <message>
+ <source>Channel</source>
+ <translation>Canal</translation>
+ </message>
+ <message>
+ <source>Port</source>
+ <translation>Port</translation>
+ </message>
+ <message>
+ <source>Processing</source>
+ <translation>Travail</translation>
+ </message>
+ <message>
+ <source>Keep</source>
+ <translation>Garder</translation>
+ </message>
+ <message>
+ <source>Fix</source>
+ <translation>Fixer</translation>
+ </message>
+ <message>
+ <source>Plus</source>
+ <translation>Plus</translation>
+ </message>
+ <message>
+ <source>Minus</source>
+ <translation>Moins</translation>
+ </message>
+ <message>
+ <source>Multiply</source>
+ <translation>Multiplier</translation>
+ </message>
+ <message>
+ <source>Divide</source>
+ <translation>Diviser</translation>
+ </message>
+ <message>
+ <source>Invert</source>
+ <translation>Inverser</translation>
+ </message>
+ <message>
+ <source>ScaleMap</source>
+ <translation>Echelle</translation>
+ </message>
+ <message>
+ <source>Flip</source>
+ <translation>Retourner</translation>
+ </message>
+ <message>
+ <source>Dyn</source>
+ <translation>Dyn</translation>
+ </message>
+ <message>
+ <source>Random</source>
+ <translation>Aléatoire</translation>
+ </message>
+ <message>
+ <source>Modules</source>
+ <translation>Modules</translation>
+ </message>
+ <message>
+ <source>1</source>
+ <translation>1</translation>
+ </message>
+ <message>
+ <source>2</source>
+ <translation>2</translation>
+ </message>
+ <message>
+ <source>3</source>
+ <translation>3</translation>
+ </message>
+ <message>
+ <source>4</source>
+ <translation>4</translation>
+ </message>
+ <message>
+ <source>enable modul 1</source>
+ <translation>Activer module 1</translation>
+ </message>
+ <message>
+ <source>enable modul 2</source>
+ <translation>Activer module 2</translation>
+ </message>
+ <message>
+ <source>enable modul 3</source>
+ <translation>Activer module 3</translation>
+ </message>
+ <message>
+ <source>enable modul 4</source>
+ <translation>Activer module 4</translation>
+ </message>
+ <message>
+ <source>Preset</source>
+ <translation>Réglages enregistrés</translation>
+ </message>
+ <message>
+ <source>Name:</source>
+ <translation>Nom:</translation>
+ </message>
+ <message>
+ <source>Comment:</source>
+ <translation>Commentaires:</translation>
+ </message>
+ <message>
+ <source>Function</source>
+ <translation>Fonction</translation>
+ </message>
+ <message>
+ <source>&amp;New</source>
+ <translation>&amp;Nouveau</translation>
+ </message>
+ <message>
+ <source>create new preset</source>
+ <translation>Crée un nouveau réglage</translation>
+ </message>
+ <message>
+ <source>&amp;Delete</source>
+ <translation>&amp;Efface</translation>
+ </message>
+ <message>
+ <source>delete preset</source>
+ <translation>efface un réglage</translation>
+ </message>
+ <message>
+ <source>&amp;Dismiss</source>
+ <translation>&amp;Rejeter</translation>
+ </message>
+ <message>
+ <source>PresetList</source>
+ <translation>Liste de Réglages</translation>
+ </message>
+</context>
+<context>
+ <name>MidiRawDeviceDialogBase</name>
+ <message>
+ <source>MusE: raw midi device configuration</source>
+ <translation>MusE: configuration des périphériques Midi</translation>
+ </message>
+ <message>
+ <source>Name</source>
+ <translation>Nom</translation>
+ </message>
+ <message>
+ <source>Device</source>
+ <translation>Périphérique</translation>
+ </message>
+ <message>
+ <source>Type</source>
+ <translation>Type</translation>
+ </message>
+ <message>
+ <source>Virt. Ports</source>
+ <translation>Ports virtuels</translation>
+ </message>
+ <message>
+ <source>Speed</source>
+ <translation>Vitesse</translation>
+ </message>
+ <message>
+ <source>Handshaking</source>
+ <translation>Méthode (handshaking)</translation>
+ </message>
+ <message>
+ <source>Device Properties</source>
+ <translation>Propriétés du périphérique</translation>
+ </message>
+ <message>
+ <source>Virt.Ports</source>
+ <translation>Ports virtuels</translation>
+ </message>
+ <message>
+ <source>Raw Device</source>
+ <translation>Périphérique pur (raw)</translation>
+ </message>
+ <message>
+ <source>Serial Port</source>
+ <translation>Port série</translation>
+ </message>
+ <message>
+ <source>Pipe</source>
+ <translation>Tuyau (Pipe)</translation>
+ </message>
+ <message>
+ <source>Device Path</source>
+ <translation>Chemin du périphérique</translation>
+ </message>
+ <message>
+ <source>9600</source>
+ <translation>9600</translation>
+ </message>
+ <message>
+ <source>19200</source>
+ <translation>19200</translation>
+ </message>
+ <message>
+ <source>38400</source>
+ <translation>38400</translation>
+ </message>
+ <message>
+ <source>None</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>RTS/CTS</source>
+ <translation>RTS/CTS</translation>
+ </message>
+ <message>
+ <source>Xon/Xoff</source>
+ <translation>Xon/Xoff</translation>
+ </message>
+ <message>
+ <source>&amp;New</source>
+ <translation>&amp;Nouveau</translation>
+ </message>
+ <message>
+ <source>&amp;Delete</source>
+ <translation>&amp;Effacer</translation>
+ </message>
+ <message>
+ <source>&amp;OK</source>
+ <translation>&amp;OK</translation>
+ </message>
+ <message>
+ <source>&amp;Cancel</source>
+ <translation>&amp;Annuler</translation>
+ </message>
+</context>
+<context>
+ <name>MidiSyncConfigBase</name>
+ <message>
+ <source>MusE: Midi Sync</source>
+ <translation>MusE: Synchro Midi</translation>
+ </message>
+ <message>
+ <source>Apply</source>
+ <translation>Appliquer</translation>
+ </message>
+ <message>
+ <source>Ok</source>
+ <translation>Ok</translation>
+ </message>
+ <message>
+ <source>Cancel</source>
+ <translation>Annuler</translation>
+ </message>
+ <message>
+ <source>hour</source>
+ <translation>heure</translation>
+ </message>
+ <message>
+ <source>h</source>
+ <translation>h</translation>
+ </message>
+ <message>
+ <source>minute</source>
+ <translation>minute</translation>
+ </message>
+ <message>
+ <source>m</source>
+ <translation>m</translation>
+ </message>
+ <message>
+ <source>second</source>
+ <translation>second</translation>
+ </message>
+ <message>
+ <source>s</source>
+ <translation>s</translation>
+ </message>
+ <message>
+ <source>frame</source>
+ <translation>trame (frame)</translation>
+ </message>
+ <message>
+ <source>f</source>
+ <translation>f</translation>
+ </message>
+ <message>
+ <source>subframe</source>
+ <translation>trame fine (subframe)</translation>
+ </message>
+ <message>
+ <source>24</source>
+ <translation>24</translation>
+ </message>
+ <message>
+ <source>25</source>
+ <translation>25</translation>
+ </message>
+ <message>
+ <source>30D</source>
+ <translation>30D</translation>
+ </message>
+ <message>
+ <source>30N</source>
+ <translation>30N</translation>
+ </message>
+ <message>
+ <source>Id:</source>
+ <translation>Id:</translation>
+ </message>
+ <message>
+ <source>device id</source>
+ <translation>Id. du périphérique</translation>
+ </message>
+ <message>
+ <source>Port:</source>
+ <translation>Port:</translation>
+ </message>
+ <message>
+ <source>midi port</source>
+ <translation>port midi</translation>
+ </message>
+ <message>
+ <source>Sync Source</source>
+ <translation>Source de la synchro</translation>
+ </message>
+ <message>
+ <source>accept MTC</source>
+ <translation>accepter MTC</translation>
+ </message>
+ <message>
+ <source>accept Midi Clock</source>
+ <translation>accepter Horloge Midi</translation>
+ </message>
+ <message>
+ <source>accept MMC</source>
+ <translation>accepter MMC</translation>
+ </message>
+ <message>
+ <source>Sync Gen</source>
+ <translation>Générer Synchro</translation>
+ </message>
+ <message>
+ <source>Midi Time Code (MTC)</source>
+ <translation>Code Temporel Midi (MTC)</translation>
+ </message>
+ <message>
+ <source>Midi Clock</source>
+ <translation>Horloge Midi</translation>
+ </message>
+ <message>
+ <source>Midi Machine Control (MMC)</source>
+ <translation>Contrôle Machine MIDI (MMC)</translation>
+ </message>
+ <message>
+ <source>Sync Mode</source>
+ <translation>Mode de synchro</translation>
+ </message>
+ <message>
+ <source>Master</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Slave</source>
+ <translation>Esclave</translation>
+ </message>
+ <message>
+ <source>all</source>
+ <translation>tous</translation>
+ </message>
+ <message>
+ <source>MTC</source>
+ <translation>MTC</translation>
+ </message>
+ <message>
+ <source>Type:</source>
+ <translation>Type:</translation>
+ </message>
+ <message>
+ <source>Offset:</source>
+ <translation>Décalage:</translation>
+ </message>
+</context>
+<context>
+ <name>MidiTrackInfoBase</name>
+ <message>
+ <source>MusE: TrackInfo</source>
+ <translation>MusE: InfoPiste</translation>
+ </message>
+ <message>
+ <source>output channel</source>
+ <translation>canal de sortie</translation>
+ </message>
+ <message>
+ <source>all midi events are send to this output channel</source>
+ <translation>tous les évènements midi seront envoyés vers cette
+sortie</translation>
+ </message>
+ <message>
+ <source>Track Info</source>
+ <translation>Info Piste</translation>
+ </message>
+ <message>
+ <source>%</source>
+ <translation>%</translation>
+ </message>
+ <message>
+ <source>Track Name</source>
+ <translation>Nom de Piste</translation>
+ </message>
+ <message>
+ <source>output port</source>
+ <translation>port de sortie (Output Ch.)</translation>
+ </message>
+ <message>
+ <source>off</source>
+ <translation>off</translation>
+ </message>
+ <message>
+ <source>change stereo position</source>
+ <translation>changer la position stéréo</translation>
+ </message>
+ <message>
+ <source>OCh.</source>
+ <translation>OCh.</translation>
+ </message>
+ <message>
+ <source>MidiThru</source>
+ <translation>MidiThru</translation>
+ </message>
+ <message>
+ <source>???</source>
+ <translation>???</translation>
+ </message>
+ <message>
+ <source>select instrument patch</source>
+ <translation>choisissez le groupe d&apos;instruments</translation>
+ </message>
+ <message>
+ <source>Transp.</source>
+ <translation>Transp.</translation>
+ </message>
+ <message>
+ <source>Volume</source>
+ <translation>Volume</translation>
+ </message>
+ <message>
+ <source>Channel Info</source>
+ <translation>Info canal</translation>
+ </message>
+ <message>
+ <source>Pan</source>
+ <translation>Pan</translation>
+ </message>
+ <message>
+ <source>Delay</source>
+ <translation>Délai</translation>
+ </message>
+ <message>
+ <source>H-Bank</source>
+ <translation>H-Bank</translation>
+ </message>
+ <message>
+ <source>Compr.</source>
+ <translation>Compr.</translation>
+ </message>
+ <message>
+ <source>L-Bank</source>
+ <translation>L-Bank</translation>
+ </message>
+ <message>
+ <source>Progr.</source>
+ <translation>Progr.</translation>
+ </message>
+ <message>
+ <source>Velocity</source>
+ <translation>Vélocité</translation>
+ </message>
+ <message>
+ <source>Length</source>
+ <translation>Longueur</translation>
+ </message>
+ <message>
+ <source>input ports</source>
+ <translation>ports d&apos;entrée (Input Ch.)</translation>
+ </message>
+ <message>
+ <source>IChan.</source>
+ <translation>IChan:</translation>
+ </message>
+ <message>
+ <source>input channels</source>
+ <translation>canaux d&apos;entrée</translation>
+ </message>
+ <message>
+ <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>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>
+</context>
+<context>
+ <name>MidiTransformDialogBase</name>
+ <message>
+ <source>MusE: Midi Transformator</source>
+ <translation>MusE: Transformateur Midi</translation>
+ </message>
+ <message>
+ <source>&amp;New</source>
+ <translation>&amp;Nouveau</translation>
+ </message>
+ <message>
+ <source>&amp;Delete</source>
+ <translation>&amp;Effacer</translation>
+ </message>
+ <message>
+ <source>&amp;Apply</source>
+ <translation>&amp;Appliquer</translation>
+ </message>
+ <message>
+ <source>&amp;OK</source>
+ <translation>&amp;Ok</translation>
+ </message>
+ <message>
+ <source>&amp;Cancel</source>
+ <translation>&amp;Annuler</translation>
+ </message>
+ <message>
+ <source>PresetList</source>
+ <translation>ListRéglages</translation>
+ </message>
+ <message>
+ <source>Processing</source>
+ <translation>Transformations</translation>
+ </message>
+ <message>
+ <source>Event Type</source>
+ <translation>Type d&apos;évènements</translation>
+ </message>
+ <message>
+ <source>Keep</source>
+ <translation>Garder</translation>
+ </message>
+ <message>
+ <source>Fix</source>
+ <translation>Fixer</translation>
+ </message>
+ <message>
+ <source>Note</source>
+ <translation>Note</translation>
+ </message>
+ <message>
+ <source>Poly Pressure</source>
+ <translation>Pression Poly</translation>
+ </message>
+ <message>
+ <source>Control Change</source>
+ <translation>Changement de Contrôle</translation>
+ </message>
+ <message>
+ <source>Aftertouch</source>
+ <translation>Pression</translation>
+ </message>
+ <message>
+ <source>Pitch Bend</source>
+ <translation>Molette de modulation</translation>
+ </message>
+ <message>
+ <source>NRPN</source>
+ <translation>NRPN</translation>
+ </message>
+ <message>
+ <source>RPN</source>
+ <translation>RPN</translation>
+ </message>
+ <message>
+ <source>Plus</source>
+ <translation>Addition</translation>
+ </message>
+ <message>
+ <source>Minus</source>
+ <translation>Soustraction</translation>
+ </message>
+ <message>
+ <source>Multiply</source>
+ <translation>Multiplication</translation>
+ </message>
+ <message>
+ <source>Divide</source>
+ <translation>Division</translation>
+ </message>
+ <message>
+ <source>Value 2</source>
+ <translation>Valeur 2</translation>
+ </message>
+ <message>
+ <source>Invert</source>
+ <translation>Inverser</translation>
+ </message>
+ <message>
+ <source>ScaleMap</source>
+ <translation>Echelle</translation>
+ </message>
+ <message>
+ <source>Flip</source>
+ <translation>Retourner</translation>
+ </message>
+ <message>
+ <source>Dyn</source>
+ <translation>Dyn</translation>
+ </message>
+ <message>
+ <source>Random</source>
+ <translation>Aléatoire</translation>
+ </message>
+ <message>
+ <source>Value 1</source>
+ <translation>Valeur 1</translation>
+ </message>
+ <message>
+ <source>Length</source>
+ <translation>Longueur</translation>
+ </message>
+ <message>
+ <source>Position</source>
+ <translation>Position</translation>
+ </message>
+ <message>
+ <source>Filter</source>
+ <translation>Filtre</translation>
+ </message>
+ <message>
+ <source>All</source>
+ <translation>Tous</translation>
+ </message>
+ <message>
+ <source>Equal</source>
+ <translation>Egal</translation>
+ </message>
+ <message>
+ <source>Unequal</source>
+ <translation>Différent</translation>
+ </message>
+ <message>
+ <source>Ignore</source>
+ <translation>Ignore</translation>
+ </message>
+ <message>
+ <source>Higher</source>
+ <translation>Plus haut</translation>
+ </message>
+ <message>
+ <source>Lower</source>
+ <translation>Plus bas</translation>
+ </message>
+ <message>
+ <source>Inside</source>
+ <translation>A l&apos;intérieur</translation>
+ </message>
+ <message>
+ <source>Outside</source>
+ <translation>A l&apos;extérieur</translation>
+ </message>
+ <message>
+ <source>Bar Range</source>
+ <translation>Type de mesure</translation>
+ </message>
+ <message>
+ <source>Preset</source>
+ <translation>Réglages</translation>
+ </message>
+ <message>
+ <source>Name:</source>
+ <translation>Nom:</translation>
+ </message>
+ <message>
+ <source>Comment:</source>
+ <translation>Commentaire:</translation>
+ </message>
+ <message>
+ <source>Range</source>
+ <translation>Type</translation>
+ </message>
+ <message>
+ <source>process all events</source>
+ <translation>Transformer tous les évènements</translation>
+ </message>
+ <message>
+ <source>selected tracks</source>
+ <translation>pistes sélectionnées</translation>
+ </message>
+ <message>
+ <source>inside loop</source>
+ <translation>dans la boucle</translation>
+ </message>
+ <message>
+ <source>Function</source>
+ <translation>fonction</translation>
+ </message>
+ <message>
+ <source>Select</source>
+ <translation>Sélectionner</translation>
+ </message>
+ <message>
+ <source>Quantize</source>
+ <translation>Quantiser</translation>
+ </message>
+ <message>
+ <source>Delete</source>
+ <translation>Effacer</translation>
+ </message>
+ <message>
+ <source>Transform</source>
+ <translation>Transformer</translation>
+ </message>
+ <message>
+ <source>Insert</source>
+ <translation>Insérer</translation>
+ </message>
+ <message>
+ <source>Copy</source>
+ <translation>Copier</translation>
+ </message>
+ <message>
+ <source>Extract</source>
+ <translation>Extraire</translation>
+ </message>
+ <message>
+ <source>Quantize Value</source>
+ <translation>Valeur de Quantisation</translation>
+ </message>
+</context>
+<context>
+ <name>MidiTransformerDialog</name>
+ <message>
+ <source>New</source>
+ <translation></translation>
+ </message>
+</context>
+<context>
+ <name>MixdownFileDialog</name>
+ <message>
+ <source>Wave Files (*.wav);;All Files (*)</source>
+ <translation>Fichiers Wave (*.wav);;Tous les Fichiers (*)</translation>
+ </message>
+</context>
+<context>
+ <name>MixdownFileDialogBase</name>
+ <message>
+ <source>MusE: Set Mixdown Wavefile</source>
+ <translation>MusE: Fichier wav pour mixage</translation>
+ </message>
+ <message>
+ <source>&amp;OK</source>
+ <translation>&amp;OK</translation>
+ </message>
+ <message>
+ <source>&amp;Cancel</source>
+ <translation>&amp;Annuler</translation>
+ </message>
+ <message>
+ <source>File Path</source>
+ <translation>Chemin d&apos;accés</translation>
+ </message>
+ <message>
+ <source>Channel</source>
+ <translation>Canal</translation>
+ </message>
+ <message>
+ <source>Stereo</source>
+ <translation>Stéréo</translation>
+ </message>
+ <message>
+ <source>Mono</source>
+ <translation>Mono</translation>
+ </message>
+ <message>
+ <source>5.1</source>
+ <translation>5.1</translation>
+ </message>
+ <message>
+ <source>wav,16 Bit</source>
+ <translation>wav,16 Bit</translation>
+ </message>
+ <message>
+ <source>wav, 24 Bit</source>
+ <translation>wav, 24 Bit</translation>
+ </message>
+ <message>
+ <source>wav, 32 Bit (float)</source>
+ <translation>wav, 32 Bit (flottant)</translation>
+ </message>
+ <message>
+ <source>Format</source>
+ <translation>Format</translation>
+ </message>
+</context>
+<context>
+ <name>Mixer</name>
+ <message>
+ <source>Mute</source>
+ <translation>Muet</translation>
+ </message>
+ <message>
+ <source>MusE: Midi Mixer</source>
+ <translation>MusE: Mixeur Midi</translation>
+ </message>
+ <message>
+ <source>Rev</source>
+ <translation>Rev</translation>
+ </message>
+ <message>
+ <source>Cho</source>
+ <translation>Cho</translation>
+ </message>
+ <message>
+ <source>Var</source>
+ <translation>Var</translation>
+ </message>
+ <message>
+ <source>Pan</source>
+ <translation>Pan</translation>
+ </message>
+ <message>
+ <source>Master</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Port</source>
+ <translation>Port</translation>
+ </message>
+</context>
+<context>
+ <name>MusE</name>
+ <message>
+ <source>&amp;File</source>
+ <translation>&amp;Fichier</translation>
+ </message>
+ <message>
+ <source>Open &amp;Recent</source>
+ <translation>Ouvrir &amp;Récent</translation>
+ </message>
+ <message>
+ <source>Save &amp;As</source>
+ <translation>Enregistrer &amp;Sous</translation>
+ </message>
+ <message>
+ <source>Config &amp;Printer</source>
+ <translation>Configuration Im&amp;primante</translation>
+ </message>
+ <message>
+ <source>Import Midifile</source>
+ <translation>Importer fichier MIDI</translation>
+ </message>
+ <message>
+ <source>Export Midifile</source>
+ <translation>Exporter fichier MIDI</translation>
+ </message>
+ <message>
+ <source>Import Wave File</source>
+ <translation>Importer fichier WAV</translation>
+ </message>
+ <message>
+ <source>&amp;Quit</source>
+ <translation>&amp;Quitter</translation>
+ </message>
+ <message>
+ <source>&amp;Edit</source>
+ <translation>&amp;Edition</translation>
+ </message>
+ <message>
+ <source>C&amp;ut</source>
+ <translation>Co&amp;uper</translation>
+ </message>
+ <message>
+ <source>&amp;Copy</source>
+ <translation>&amp;Copier</translation>
+ </message>
+ <message>
+ <source>&amp;Paste</source>
+ <translation>Co&amp;ller</translation>
+ </message>
+ <message>
+ <source>Delete Track</source>
+ <translation>Effacer Piste</translation>
+ </message>
+ <message>
+ <source>Add Track</source>
+ <translation>Ajouter Piste</translation>
+ </message>
+ <message>
+ <source>Select &amp;All</source>
+ <translation>Selectionner &amp;Tout</translation>
+ </message>
+ <message>
+ <source>&amp;Deselect All</source>
+ <translation>&amp;Dé-selectionner tout</translation>
+ </message>
+ <message>
+ <source>Invert &amp;Selection</source>
+ <translation>Inverser la &amp;Sélection</translation>
+ </message>
+ <message>
+ <source>&amp;Inside Loop</source>
+ <translation>A l&apos;&amp;intérieur de la Boucle</translation>
+ </message>
+ <message>
+ <source>&amp;Outside Loop</source>
+ <translation>A l&apos;e&amp;xtérieur de la Boucle</translation>
+ </message>
+ <message>
+ <source>All &amp;Parts on Track</source>
+ <translation>Tous les &amp;bouts de la Piste</translation>
+ </message>
+ <message>
+ <source>Select</source>
+ <translation>Sélectionner</translation>
+ </message>
+ <message>
+ <source>Drums</source>
+ <translation>Batterie</translation>
+ </message>
+ <message>
+ <source>List</source>
+ <translation>Liste</translation>
+ </message>
+ <message>
+ <source>Graphic</source>
+ <translation>Graphique</translation>
+ </message>
+ <message>
+ <source>Mastertrack</source>
+ <translation>PistePrincipale</translation>
+ </message>
+ <message>
+ <source>Midi &amp;Transform</source>
+ <translation>&amp;Transformation MIDI</translation>
+ </message>
+ <message>
+ <source>Modify Gate Time</source>
+ <translation>Modifier la Durée du Pont (Gate Time)</translation>
+ </message>
+ <message>
+ <source>Modify Velocity</source>
+ <translation>Modifier la vélocité</translation>
+ </message>
+ <message>
+ <source>Crescendo</source>
+ <translation>Crescendo</translation>
+ </message>
+ <message>
+ <source>Transpose</source>
+ <translation>Transposition</translation>
+ </message>
+ <message>
+ <source>Thin Out</source>
+ <translation>Sortie fine</translation>
+ </message>
+ <message>
+ <source>Erase Event</source>
+ <translation>Effacer évènements</translation>
+ </message>
+ <message>
+ <source>Note Shift</source>
+ <translation>Décalage de note</translation>
+ </message>
+ <message>
+ <source>Move Clock</source>
+ <translation>Décalage horloge</translation>
+ </message>
+ <message>
+ <source>Copy Measure</source>
+ <translation>Copier la mesure</translation>
+ </message>
+ <message>
+ <source>Erase Measure</source>
+ <translation>Effacer la mesure</translation>
+ </message>
+ <message>
+ <source>Delete Measure</source>
+ <translation>Supprimer la mesure</translation>
+ </message>
+ <message>
+ <source>Create Measure</source>
+ <translation>Créer une mesure</translation>
+ </message>
+ <message>
+ <source>Mix Track</source>
+ <translation>Mixeur Piste</translation>
+ </message>
+ <message>
+ <source>Midi</source>
+ <translation>MIDI</translation>
+ </message>
+ <message>
+ <source>&amp;Structure</source>
+ <translation>&amp;Structure</translation>
+ </message>
+ <message>
+ <source>Global Cut</source>
+ <translation>Couper tout</translation>
+ </message>
+ <message>
+ <source>Global Insert</source>
+ <translation>Insérer tout</translation>
+ </message>
+ <message>
+ <source>Global Split</source>
+ <translation>Diviser Tout</translation>
+ </message>
+ <message>
+ <source>Copy Range</source>
+ <translation>Limites de Copie</translation>
+ </message>
+ <message>
+ <source>Cut Events</source>
+ <translation>Couper Evènements</translation>
+ </message>
+ <message>
+ <source>&amp;Display</source>
+ <translation>&amp;Affichage</translation>
+ </message>
+ <message>
+ <source>Transport Panel</source>
+ <translation>Panneau de Contrôle</translation>
+ </message>
+ <message>
+ <source>Bigtime window</source>
+ <translation>Fenêtre GrandeHorloge</translation>
+ </message>
+ <message>
+ <source>dont follow Song</source>
+ <translation>Ne pas suivre la chanson</translation>
+ </message>
+ <message>
+ <source>follow page</source>
+ <translation>Défilement par page</translation>
+ </message>
+ <message>
+ <source>follow continuous</source>
+ <translation>Défilement fin</translation>
+ </message>
+ <message>
+ <source>&amp;Config</source>
+ <translation>&amp;Configuration</translation>
+ </message>
+ <message>
+ <source>Global Settings</source>
+ <translation>Paramètres Généraux</translation>
+ </message>
+ <message>
+ <source>follow song</source>
+ <translation>suivre la chanson</translation>
+ </message>
+ <message>
+ <source>Metronome</source>
+ <translation>Métronome</translation>
+ </message>
+ <message>
+ <source>Midi Sync</source>
+ <translation>Synchro MIDI</translation>
+ </message>
+ <message>
+ <source>Midi File Config</source>
+ <translation>Paramètres du fichier MIDI</translation>
+ </message>
+ <message>
+ <source>Appearance settings</source>
+ <translation>Apparence</translation>
+ </message>
+ <message>
+ <source>Soft Synthesizer</source>
+ <translation>Synthétiseur virtuel</translation>
+ </message>
+ <message>
+ <source>Midi Ports</source>
+ <translation>Ports MIDI</translation>
+ </message>
+ <message>
+ <source>Audio System</source>
+ <translation>System Audio</translation>
+ </message>
+ <message>
+ <source>Save Configuration</source>
+ <translation>Sauvegarder la Configuration</translation>
+ </message>
+ <message>
+ <source>Midi Input Transform</source>
+ <translation>Transformations Entrée MIDI</translation>
+ </message>
+ <message>
+ <source>Midi Input Filter</source>
+ <translation>Filtres pour l&apos;Entrée MIDI</translation>
+ </message>
+ <message>
+ <source>Midi Remote Control</source>
+ <translation>Contrôle MIDI à distance</translation>
+ </message>
+ <message>
+ <source>Random Rhythm Generator</source>
+ <translation>Générateur aléatoire de rythmes</translation>
+ </message>
+ <message>
+ <source>&amp;Midi</source>
+ <translation>&amp;MIDI</translation>
+ </message>
+ <message>
+ <source>Mixer</source>
+ <translation>Mixeur</translation>
+ </message>
+ <message>
+ <source>Define Controller</source>
+ <translation>Définir contrôles</translation>
+ </message>
+ <message>
+ <source>Input Plugins</source>
+ <translation>Plugins d&apos;Entrée</translation>
+ </message>
+ <message>
+ <source>Reset Instr.</source>
+ <translation>Ré-initialisation des Instruments</translation>
+ </message>
+ <message>
+ <source>Init Instr.</source>
+ <translation>Init. Instr.</translation>
+ </message>
+ <message>
+ <source>local off</source>
+ <translation>local off</translation>
+ </message>
+ <message>
+ <source>&amp;Audio</source>
+ <translation>&amp;Audio</translation>
+ </message>
+ <message>
+ <source>Cliplist</source>
+ <translation>ListClip</translation>
+ </message>
+ <message>
+ <source>Bounce to Track</source>
+ <translation>Rebondir (bounce) sur la piste</translation>
+ </message>
+ <message>
+ <source>Bounce to File</source>
+ <translation>Rebondir (bounce) sur Fichier</translation>
+ </message>
+ <message>
+ <source>Bounce</source>
+ <translation>Rebondir (bounce)</translation>
+ </message>
+ <message>
+ <source>&amp;Help</source>
+ <translation>&amp;Aide</translation>
+ </message>
+ <message>
+ <source>Browser</source>
+ <translation>Navigateur</translation>
+ </message>
+ <message>
+ <source>&amp;About</source>
+ <translation>&amp;A propos</translation>
+ </message>
+ <message>
+ <source>About&amp;Qt</source>
+ <translation>A propos de &amp;Qt</translation>
+ </message>
+ <message>
+ <source>What&apos;s &amp;This</source>
+ <translation>Qu&apos;est-ce que c&apos;es&amp;t</translation>
+ </message>
+ <message>
+ <source>MusE: load project</source>
+ <translation>Muse: charger Projet</translation>
+ </message>
+ <message>
+ <source>The current Project contains unsaved data
+Save Current Project?</source>
+ <translation>Le Projet en cours contient des données
+non encore sauvegardées. Enregistrer?</translation>
+ </message>
+ <message>
+ <source>&amp;Save</source>
+ <translation>&amp;Enregistrer</translation>
+ </message>
+ <message>
+ <source>&amp;Nosave</source>
+ <translation>&amp;Pas d&apos;enregistrement</translation>
+ </message>
+ <message>
+ <source>&amp;Abort</source>
+ <translation>&amp;Annuler</translation>
+ </message>
+ <message>
+ <source>MusE: Save As</source>
+ <translation>MusE: enregistrer sous</translation>
+ </message>
+ <message>
+ <source>MusE: Import Midi</source>
+ <translation>MusE: importer fichier MIDI</translation>
+ </message>
+ <message>
+ <source>MusE: Export Midi</source>
+ <translation>MusE: exporter fichier MIDI</translation>
+ </message>
+ <message>
+ <source>Nothing to edit</source>
+ <translation>Rien � éditer</translation>
+ </message>
+ <message>
+ <source>The current Project contains unsaved data
+Load overwrites current Project:
+Save Current Project?</source>
+ <translation>Le Projet en cours contient des données non
+sauvegardées. Voulez-vous l&apos;enregistrer
+avant d&apos;en ouvrir un autre?</translation>
+ </message>
+ <message>
+ <source>&amp;Overwrite</source>
+ <translation>Ec&amp;raser</translation>
+ </message>
+ <message>
+ <source>no help found at: </source>
+ <translation>Pas d&apos;aide trouvée ici:</translation>
+ </message>
+ <message>
+ <source>MusE: Open Help</source>
+ <translation>MusE: Ouvrir l&apos;Aide</translation>
+ </message>
+ <message>
+ <source>to import a audio file you have first to selecta audio
+track</source>
+ <translation>Pour importer un fichier AUDIO, sélectionner d&apos;abord
+une piste AUDIO</translation>
+ </message>
+ <message>
+ <source>UndoRedo</source>
+ <translation>AnnulerRefaire</translation>
+ </message>
+ <message>
+ <source>undo</source>
+ <translation>annuler</translation>
+ </message>
+ <message>
+ <source>Und&amp;o</source>
+ <translation>&amp;Annuler</translation>
+ </message>
+ <message>
+ <source>redo</source>
+ <translation>Refaire</translation>
+ </message>
+ <message>
+ <source>Re&amp;do</source>
+ <translation>Re&amp;faire</translation>
+ </message>
+ <message>
+ <source>undo last change to song</source>
+ <translation>Annuler le dernier changement sur la chanson</translation>
+ </message>
+ <message>
+ <source>redo last undo</source>
+ <translation>Refaire ce qui a été annulé en dernier</translation>
+ </message>
+ <message>
+ <source>Transport</source>
+ <translation>Transport</translation>
+ </message>
+ <message>
+ <source>loop</source>
+ <translation>boucle</translation>
+ </message>
+ <message>
+ <source>Loop</source>
+ <translation>Boucle</translation>
+ </message>
+ <message>
+ <source>punchin</source>
+ <translation>Punch-In</translation>
+ </message>
+ <message>
+ <source>Punchin</source>
+ <translation>Punch-In</translation>
+ </message>
+ <message>
+ <source>punchout</source>
+ <translation>Punch-Out</translation>
+ </message>
+ <message>
+ <source>Punchout</source>
+ <translation>Punch-Out</translation>
+ </message>
+ <message>
+ <source>start</source>
+ <translation>démarrer</translation>
+ </message>
+ <message>
+ <source>Start</source>
+ <translation>Démarrer</translation>
+ </message>
+ <message>
+ <source>rewind</source>
+ <translation>rembobiner</translation>
+ </message>
+ <message>
+ <source>Rewind</source>
+ <translation>Rembobiner</translation>
+ </message>
+ <message>
+ <source>forward</source>
+ <translation>avance</translation>
+ </message>
+ <message>
+ <source>Forward</source>
+ <translation>Avance</translation>
+ </message>
+ <message>
+ <source>stop</source>
+ <translation>stop</translation>
+ </message>
+ <message>
+ <source>Stop</source>
+ <translation>Stop</translation>
+ </message>
+ <message>
+ <source>play</source>
+ <translation>jouer</translation>
+ </message>
+ <message>
+ <source>Play</source>
+ <translation>Jouer</translation>
+ </message>
+ <message>
+ <source>record</source>
+ <translation>enregistrer</translation>
+ </message>
+ <message>
+ <source>Record</source>
+ <translation>Enregistrer</translation>
+ </message>
+ <message>
+ <source>panic</source>
+ <translation>panique!</translation>
+ </message>
+ <message>
+ <source>Panic</source>
+ <translation>Panique!</translation>
+ </message>
+ <message>
+ <source>new</source>
+ <translation>nouveau</translation>
+ </message>
+ <message>
+ <source>&amp;New</source>
+ <translation>&amp;Nouveau</translation>
+ </message>
+ <message>
+ <source>open</source>
+ <translation>ouvrir</translation>
+ </message>
+ <message>
+ <source>&amp;Open</source>
+ <translation>&amp;Ouvrir</translation>
+ </message>
+ <message>
+ <source>save</source>
+ <translation>enregistrer</translation>
+ </message>
+ <message>
+ <source>pianoroll</source>
+ <translation>rouleau Piano</translation>
+ </message>
+ <message>
+ <source>Pianoroll</source>
+ <translation>Rouleau-Piano</translation>
+ </message>
+ <message>
+ <source>score</source>
+ <translation>partition</translation>
+ </message>
+ <message>
+ <source>Score</source>
+ <translation>Partition</translation>
+ </message>
+ <message>
+ <source>marker</source>
+ <translation>marqueur</translation>
+ </message>
+ <message>
+ <source>Marker</source>
+ <translation>Marker</translation>
+ </message>
+ <message>
+ <source>File Buttons</source>
+ <translation>Boutons Fichiers</translation>
+ </message>
+ <message>
+ <source>Unknown File Format</source>
+ <translation>Format de fichier inconnu</translation>
+ </message>
+ <message>
+ <source>none</source>
+ <translation>aucun</translation>
+ </message>
+ <message>
+ <source>MusE: Write File failed</source>
+ <translation>MusE: échec de l&apos;enregistrement</translation>
+ </message>
+ <message>
+ <source>MusE: About</source>
+ <translation>MusE: A propos</translation>
+ </message>
+ <message>
+ <source>MusE: Song: </source>
+ <translation>MusE: chanson</translation>
+ </message>
+ <message>
+ <source>reading midifile
+ </source>
+ <translation>lecture du fichier MIDI
+</translation>
+ </message>
+ <message>
+ <source>
+failed</source>
+ <translation>
+Echec</translation>
+ </message>
+ <message>
+ <source>MusE: Copy Range</source>
+ <translation>MusE: limites de la copie</translation>
+ </message>
+ <message>
+ <source>not implemented</source>
+ <translation>Non-implémenté (désolé)</translation>
+ </message>
+ <message>
+ <source>MusE: Cut Events</source>
+ <translation>MusE: Couper Evènements</translation>
+ </message>
+ <message>
+ <source>MusE: Bounce to Track</source>
+ <translation>MusE: Rebondir sur la piste (bounce)</translation>
+ </message>
+ <message>
+ <source>more than one target track selected</source>
+ <translation>vous avez sélectionné plus d&apos;une piste en
+destination</translation>
+ </message>
+ <message>
+ <source>wrong target track type,
+select wave track as target</source>
+ <translation>mauvais type de piste en destination,
+choisissez une piste AUDIO en destination</translation>
+ </message>
+ <message>
+ <source>no target track selected</source>
+ <translation>vous n&apos;avez pas sélectionné de piste de
+destination</translation>
+ </message>
+</context>
+<context>
+ <name>NoteInfo</name>
+ <message>
+ <source>Start</source>
+ <translation>Début</translation>
+ </message>
+ <message>
+ <source>Len</source>
+ <translation>Long</translation>
+ </message>
+ <message>
+ <source>Pitch</source>
+ <translation>Hauteur</translation>
+ </message>
+ <message>
+ <source>Velo On</source>
+ <translation>Vélo on</translation>
+ </message>
+ <message>
+ <source>Velo Off</source>
+ <translation>Vélo off</translation>
+ </message>
+ <message>
+ <source>Note Info</source>
+ <translation>Info Note</translation>
+ </message>
+</context>
+<context>
+ <name>OrganGuiBase</name>
+ <message>
+ <source>MusE: Organ</source>
+ <translation>MusE: Orgue</translation>
+ </message>
+ <message>
+ <source>Presets</source>
+ <translation>Presets</translation>
+ </message>
+ <message>
+ <source>Set</source>
+ <translation>Set</translation>
+ </message>
+ <message>
+ <source>load preset list</source>
+ <translation>charger la liste des presets</translation>
+ </message>
+ <message>
+ <source>save preset list</source>
+ <translation>enregistrer la liste des presets</translation>
+ </message>
+ <message>
+ <source>O-1</source>
+ <translation>O-1</translation>
+ </message>
+ <message>
+ <source>Oscillator</source>
+ <translation>Oscillateur</translation>
+ </message>
+ <message>
+ <source>Brass</source>
+ <translation>Cuivres</translation>
+ </message>
+ <message>
+ <source>Reed</source>
+ <translation>Roseau</translation>
+ </message>
+ <message>
+ <source>Flute</source>
+ <translation>Flûte</translation>
+ </message>
+ <message>
+ <source>Drawbars</source>
+ <translation>Grands Tuyaux</translation>
+ </message>
+ <message>
+ <source>16&apos;</source>
+ <translation>16&apos;</translation>
+ </message>
+ <message>
+ <source>4&apos;</source>
+ <translation>4&apos;</translation>
+ </message>
+ <message>
+ <source>2 2/3&apos;</source>
+ <translation>2 2/3&apos;</translation>
+ </message>
+ <message>
+ <source>2&apos;</source>
+ <translation>2&apos;</translation>
+ </message>
+ <message>
+ <source>8&apos;</source>
+ <translation>8&apos;</translation>
+ </message>
+ <message>
+ <source>5 1/3&apos;</source>
+ <translation>5 1/3&apos;</translation>
+ </message>
+ <message>
+ <source>Envelope Lo</source>
+ <translation>Enveloppe basse (Lo)</translation>
+ </message>
+ <message>
+ <source>Attack(ms)</source>
+ <translation>Attaque (en ms)</translation>
+ </message>
+ <message>
+ <source>Decay(ms)</source>
+ <translation>Affaiblissement (ms)</translation>
+ </message>
+ <message>
+ <source>Sustain(%)</source>
+ <translation>Tenue (%)</translation>
+ </message>
+ <message>
+ <source>Release(ms)</source>
+ <translation>Relachement (ms)</translation>
+ </message>
+ <message>
+ <source>Envelope Hi</source>
+ <translation>Enveloppe Haute (Hi)</translation>
+ </message>
+</context>
+<context>
+ <name>PageSettings</name>
+ <message>
+ <source>Paper Size</source>
+ <translation>Dimension de la feuille</translation>
+ </message>
+ <message>
+ <source>user</source>
+ <translation>utilisateur</translation>
+ </message>
+ <message>
+ <source>Margins</source>
+ <translation>Marges</translation>
+ </message>
+ <message>
+ <source>Header</source>
+ <translation>En-Tête</translation>
+ </message>
+ <message>
+ <source>Title</source>
+ <translation>Titre</translation>
+ </message>
+ <message>
+ <source>Author</source>
+ <translation>Auteur</translation>
+ </message>
+ <message>
+ <source>Fonts</source>
+ <translation>Polices</translation>
+ </message>
+ <message>
+ <source>Page No.</source>
+ <translation>N° de page</translation>
+ </message>
+ <message>
+ <source>Measure No</source>
+ <translation>N° de mesure</translation>
+ </message>
+ <message>
+ <source>Track Name</source>
+ <translation>Nom de la Piste</translation>
+ </message>
+ <message>
+ <source>Lyrics</source>
+ <translation>Paroles</translation>
+ </message>
+ <message>
+ <source>Layout</source>
+ <translation>Disposition</translation>
+ </message>
+ <message>
+ <source>Scale</source>
+ <translation>Echelle</translation>
+ </message>
+ <message>
+ <source>Flags</source>
+ <translation>Drapeaux</translation>
+ </message>
+ <message>
+ <source>show page no.</source>
+ <translation>Montrer la page N°</translation>
+ </message>
+ <message>
+ <source>show measure no.</source>
+ <translation>Montrer la mesure N°</translation>
+ </message>
+ <message>
+ <source>show track name</source>
+ <translation>Montrer le nom des Pistes</translation>
+ </message>
+ <message>
+ <source>Ok</source>
+ <translation>Ok</translation>
+ </message>
+ <message>
+ <source>Apply</source>
+ <translation>Appliquer</translation>
+ </message>
+ <message>
+ <source>Cancel</source>
+ <translation>Annuler</translation>
+ </message>
+ <message>
+ <source>left Margin</source>
+ <translation>Marge de gauche</translation>
+ </message>
+ <message>
+ <source>top Margin</source>
+ <translation>Marge du haut</translation>
+ </message>
+ <message>
+ <source>right Margin</source>
+ <translation>Marge de droite</translation>
+ </message>
+ <message>
+ <source>bottom Margin</source>
+ <translation>Marge du bas</translation>
+ </message>
+ <message>
+ <source>Bars across the Page</source>
+ <translation>Mesures par Page</translation>
+ </message>
+</context>
+<context>
+ <name>PartCanvas</name>
+ <message>
+ <source>Cannot copy/move/clone to different Track-Type</source>
+ <translation>Ne peut copier/déplacer vers une type de Piste
+différent</translation>
+ </message>
+ <message>
+ <source>C&amp;ut</source>
+ <translation>Co&amp;uper</translation>
+ </message>
+ <message>
+ <source>&amp;Copy</source>
+ <translation>&amp;Copier</translation>
+ </message>
+ <message>
+ <source>rename</source>
+ <translation>renommer</translation>
+ </message>
+ <message>
+ <source>color</source>
+ <translation>couleur</translation>
+ </message>
+ <message>
+ <source>delete</source>
+ <translation>effacer</translation>
+ </message>
+ <message>
+ <source>split</source>
+ <translation>séparer</translation>
+ </message>
+ <message>
+ <source>glue</source>
+ <translation>coller</translation>
+ </message>
+ <message>
+ <source>de-clone</source>
+ <translation>annuler-clônage</translation>
+ </message>
+ <message>
+ <source>pianoroll</source>
+ <translation>rouleau-piano</translation>
+ </message>
+ <message>
+ <source>score</source>
+ <translation>partition</translation>
+ </message>
+ <message>
+ <source>list</source>
+ <translation>liste</translation>
+ </message>
+ <message>
+ <source>drums</source>
+ <translation>batterie</translation>
+ </message>
+ <message>
+ <source>wave edit</source>
+ <translation>édition wav</translation>
+ </message>
+ <message>
+ <source>Cannot paste: multiple tracks selected</source>
+ <translation>Ne peut coller: plusieurs pistes
+sélectionnées</translation>
+ </message>
+ <message>
+ <source>Cannot paste: no track selected</source>
+ <translation>Ne peut coller: pas de piste choisie</translation>
+ </message>
+ <message>
+ <source>Cannot paste midi parts to wave track</source>
+ <translation>Ne peut coller des bouts MIDI sur des pistes
+AUDIO</translation>
+ </message>
+ <message>
+ <source>Cannot paste wave parts to midi track</source>
+ <translation>Ne peut copier des bouts AUDIO sur des pistes
+MIDI</translation>
+ </message>
+ <message>
+ <source>Cannot paste: wrong data type</source>
+ <translation>Ne peut coller: mauvais type de donnée</translation>
+ </message>
+</context>
+<context>
+ <name>PatchBay</name>
+ <message>
+ <source>MusE: ALSA MIDI Patch Bay</source>
+ <translation>MusE: Baie de Patches MIDI ALSA</translation>
+ </message>
+</context>
+<context>
+ <name>PatchBayBase</name>
+ <message>
+ <source>ALSA Patch Bay</source>
+ <translation>Baie de Patches ALSA</translation>
+ </message>
+</context>
+<context>
+ <name>PianoRoll</name>
+ <message>
+ <source>&amp;Edit</source>
+ <translation>&amp;Edition</translation>
+ </message>
+ <message>
+ <source>Cut</source>
+ <translation>Couper</translation>
+ </message>
+ <message>
+ <source>Copy</source>
+ <translation>Copier</translation>
+ </message>
+ <message>
+ <source>Paste</source>
+ <translation>Coller</translation>
+ </message>
+ <message>
+ <source>Delete Events</source>
+ <translation>Effacer Evènements</translation>
+ </message>
+ <message>
+ <source>Select All</source>
+ <translation>Sélectionner tout</translation>
+ </message>
+ <message>
+ <source>Select None</source>
+ <translation>Dé-sélectionner</translation>
+ </message>
+ <message>
+ <source>Invert</source>
+ <translation>Inverser</translation>
+ </message>
+ <message>
+ <source>Inside Loop</source>
+ <translation>Dans la Boucle</translation>
+ </message>
+ <message>
+ <source>Outside Loop</source>
+ <translation>Hors de la Boucle</translation>
+ </message>
+ <message>
+ <source>&amp;Select</source>
+ <translation>&amp;Sélectionner</translation>
+ </message>
+ <message>
+ <source>blue</source>
+ <translation>bleu</translation>
+ </message>
+ <message>
+ <source>pitch colors</source>
+ <translation>couleurs pour la hauteur</translation>
+ </message>
+ <message>
+ <source>velocity colors</source>
+ <translation>couleurs pour la vélocité</translation>
+ </message>
+ <message>
+ <source>&amp;Config</source>
+ <translation>&amp;Configuration</translation>
+ </message>
+ <message>
+ <source>event color</source>
+ <translation>couleur pour les évènements</translation>
+ </message>
+ <message>
+ <source>&amp;Functions</source>
+ <translation>&amp;Fonctions</translation>
+ </message>
+ <message>
+ <source>Over Quantize</source>
+ <translation>Plus de Quantisation</translation>
+ </message>
+ <message>
+ <source>Note On Quantize</source>
+ <translation>Quantisation Appui de Note</translation>
+ </message>
+ <message>
+ <source>Note On/Off Quantize</source>
+ <translation>Quantisation Appui/Relachement de Note</translation>
+ </message>
+ <message>
+ <source>Iterative Quantize</source>
+ <translation>Quantisation itérative</translation>
+ </message>
+ <message>
+ <source>Config Quant...</source>
+ <translation type="unfinished">Config. Quant...</translation>
+ </message>
+ <message>
+ <source>Modify Gate Time</source>
+ <translation>Modifier temps de fermeture (gate time)</translation>
+ </message>
+ <message>
+ <source>Modify Velocity</source>
+ <translation>Modifier la vélocité</translation>
+ </message>
+ <message>
+ <source>Crescendo</source>
+ <translation>Crescendo</translation>
+ </message>
+ <message>
+ <source>Transpose</source>
+ <translation>Transposition</translation>
+ </message>
+ <message>
+ <source>Thin Out</source>
+ <translation>Sortie fine</translation>
+ </message>
+ <message>
+ <source>Erase Event</source>
+ <translation>Effacer Evènements</translation>
+ </message>
+ <message>
+ <source>Note Shift</source>
+ <translation>Décalage de Note</translation>
+ </message>
+ <message>
+ <source>Move Clock</source>
+ <translation>Décalage temporel</translation>
+ </message>
+ <message>
+ <source>Copy Measure</source>
+ <translation>Copier mesure</translation>
+ </message>
+ <message>
+ <source>Erase Measure</source>
+ <translation>Effacer mesure</translation>
+ </message>
+ <message>
+ <source>Delete Measure</source>
+ <translation>Supprimer mesure</translation>
+ </message>
+ <message>
+ <source>Create Measure</source>
+ <translation>Créer mesure</translation>
+ </message>
+ <message>
+ <source>Pianoroll Tools</source>
+ <translation>Outils de piano-roll</translation>
+ </message>
+ <message>
+ <source>Step Record</source>
+ <translation>Enregistrement pas-a-pas</translation>
+ </message>
+ <message>
+ <source>Midi Input</source>
+ <translation>Entrée MIDI</translation>
+ </message>
+ <message>
+ <source>Play Events</source>
+ <translation>Jouer Evènements</translation>
+ </message>
+ <message>
+ <source>Add Controller View</source>
+ <translation>Ajouter une vue de contrôles</translation>
+ </message>
+ <message>
+ <source>ctrl</source>
+ <translation>ctrl</translation>
+ </message>
+</context>
+<context>
+ <name>PluginDialog</name>
+ <message>
+ <source>Ok</source>
+ <translation>Ok</translation>
+ </message>
+ <message>
+ <source>Cancel</source>
+ <translation>Annuler</translation>
+ </message>
+ <message>
+ <source>MusE: select plugin</source>
+ <translation>MusE: choisir plugin</translation>
+ </message>
+ <message>
+ <source>Lib</source>
+ <translation>Lib</translation>
+ </message>
+ <message>
+ <source>Label</source>
+ <translation>Label</translation>
+ </message>
+ <message>
+ <source>Name</source>
+ <translation>Nom</translation>
+ </message>
+ <message>
+ <source>AI</source>
+ <translation>AI</translation>
+ </message>
+ <message>
+ <source>AO</source>
+ <translation>AO</translation>
+ </message>
+ <message>
+ <source>CI</source>
+ <translation>CI</translation>
+ </message>
+ <message>
+ <source>CO</source>
+ <translation>CO</translation>
+ </message>
+ <message>
+ <source>IP</source>
+ <translation>IP</translation>
+ </message>
+ <message>
+ <source>id</source>
+ <translation>id</translation>
+ </message>
+ <message>
+ <source>Maker</source>
+ <translation>Fabrique</translation>
+ </message>
+ <message>
+ <source>Copyright</source>
+ <translation>Copyright</translation>
+ </message>
+</context>
+<context>
+ <name>PluginGui</name>
+ <message>
+ <source>bypass plugin</source>
+ <translation>Plugin de Direct (bypass)</translation>
+ </message>
+ <message>
+ <source>MusE: load preset</source>
+ <translation>MusE: charger réglages</translation>
+ </message>
+ <message>
+ <source>MusE: save preset</source>
+ <translation>MusE: enregistrer réglages</translation>
+ </message>
+ <message>
+ <source>File Buttons</source>
+ <translation>Boutons Fichier</translation>
+ </message>
+ <message>
+ <source>Load Preset</source>
+ <translation>Charger réglages</translation>
+ </message>
+ <message>
+ <source>Save Preset</source>
+ <translation>Enregistrer réglages</translation>
+ </message>
+</context>
+<context>
+ <name>PrinterConfig</name>
+ <message>
+ <source>MusE: Config Printer</source>
+ <translation>MusE: configuration de l&apos;imprimante</translation>
+ </message>
+ <message>
+ <source>Print to file</source>
+ <translation>Enregistrer dans un fichier</translation>
+ </message>
+ <message>
+ <source>Print Command</source>
+ <translation>Commande d&apos;impression</translation>
+ </message>
+ <message>
+ <source>Preview Command</source>
+ <translation>Commande de Visualisation</translation>
+ </message>
+ <message>
+ <source>OK</source>
+ <translation>OK</translation>
+ </message>
+ <message>
+ <source>Cancel</source>
+ <translation>Annuler</translation>
+ </message>
+</context>
+<context>
+ <name>QHeader</name>
+ <message>
+ <source>Port Number</source>
+ <translation>Numéro de port</translation>
+ </message>
+ <message>
+ <source>enable gui for device</source>
+ <translation>Activer interface utilisateur pour ce
+périphérique</translation>
+ </message>
+ <message>
+ <source>enables recording from the device</source>
+ <translation>active enregistrement � partir du
+périphérique</translation>
+ </message>
+ <message>
+ <source>Instrument connected to port</source>
+ <translation>Instrument connecté au port</translation>
+ </message>
+ <message>
+ <source>State: result of opening the device</source>
+ <translation>Etat: résultat de l&apos;ouverture du port</translation>
+ </message>
+ <message>
+ <source>mute instrument</source>
+ <translation>Rendre muet l&apos;instrument</translation>
+ </message>
+ <message>
+ <source>sound name</source>
+ <translation>Nom du son</translation>
+ </message>
+ <message>
+ <source>quantisation
+currently not used</source>
+ <translation>quantisation
+non-utilisé actuellement</translation>
+ </message>
+ <message>
+ <source>this input note triggers the sound</source>
+ <translation>cette note en entrée déclenche le son</translation>
+ </message>
+ <message>
+ <source>note length</source>
+ <translation>longueur de note</translation>
+ </message>
+ <message>
+ <source>this note is send for the sound</source>
+ <translation>Cette note est envoyée pour le son</translation>
+ </message>
+ <message>
+ <source>output channel
+currently not used</source>
+ <translation>canal de sortie
+actuellement non utilisé</translation>
+ </message>
+ <message>
+ <source>output port
+currently not used</source>
+ <translation>port de sortie
+actuellement non utilisé</translation>
+ </message>
+ <message>
+ <source>velocity level 1</source>
+ <translation>vélocité niveau 1</translation>
+ </message>
+ <message>
+ <source>velocity level 2</source>
+ <translation>vélocité niveau 2</translation>
+ </message>
+ <message>
+ <source>velocity level 3</source>
+ <translation>vélocité niveau 3</translation>
+ </message>
+ <message>
+ <source>velocity level 4</source>
+ <translation>vélocité niveau 4</translation>
+ </message>
+ <message>
+ <source>quantisation</source>
+ <translation>quantisation</translation>
+ </message>
+ <message>
+ <source>output channel</source>
+ <translation>canal de sortie</translation>
+ </message>
+ <message>
+ <source>output port</source>
+ <translation>port de sortie</translation>
+ </message>
+ <message>
+ <source>Enable Recording</source>
+ <translation>Activer l&apos;Enregistrement</translation>
+ </message>
+ <message>
+ <source>Track Activity</source>
+ <translation>Activité des Pistes</translation>
+ </message>
+ <message>
+ <source>Mute Indicator</source>
+ <translation>Indicateur de Silence</translation>
+ </message>
+ <message>
+ <source>Solo Indicator</source>
+ <translation>Indicateur de Solo</translation>
+ </message>
+ <message>
+ <source>Track Type</source>
+ <translation>Type de Piste</translation>
+ </message>
+ <message>
+ <source>Track Name</source>
+ <translation>Nom de la Piste</translation>
+ </message>
+ <message>
+ <source>Output Channel Number</source>
+ <translation>Numéro de Canal de Sortie</translation>
+ </message>
+ <message>
+ <source>Output Port</source>
+ <translation>Port de Sortie</translation>
+ </message>
+ <message>
+ <source>Time Lock</source>
+ <translation>Vérouillage d&apos;Horloge</translation>
+ </message>
+ <message>
+ <source>Solo/Pre Fader Listening</source>
+ <translation>Ecoute Solo/Pre Fader</translation>
+ </message>
+ <message>
+ <source>Name of the midi device associated with this port
+number</source>
+ <translation>Nom du périphérique midi associé avec ce numéro de
+port</translation>
+ </message>
+</context>
+<context>
+ <name>QWidget</name>
+ <message>
+ <source>Cannot transform non empty track</source>
+ <translation>Ne peut transformer une piste non vide</translation>
+ </message>
+ <message>
+ <source>Velocity</source>
+ <translation>Vélocité</translation>
+ </message>
+ <message>
+ <source>Cannot convert sysex string</source>
+ <translation>Ne peut convertir le code sysex</translation>
+ </message>
+ <message>
+ <source>Hex String too long (2048 bytes limit)</source>
+ <translation>Code Hexa tro long (limite: 2048 octets)</translation>
+ </message>
+ <message>
+ <source>generic midi</source>
+ <translation>MIDI générique</translation>
+ </message>
+ <message>
+ <source>new</source>
+ <translation>nouveau</translation>
+ </message>
+ <message>
+ <source>create peakfile for </source>
+ <translation>créer fichier de crêtes pour</translation>
+ </message>
+ <message>
+ <source>MusE: get file name</source>
+ <translation>MusE: avoir le nom du fichier</translation>
+ </message>
+ <message>
+ <source>the directory
+</source>
+ <translation>le répertoire
+</translation>
+ </message>
+ <message>
+ <source>
+does not exist
+create?</source>
+ <translation>n&apos;existe pas.
+Le créer?</translation>
+ </message>
+ <message>
+ <source>&amp;Create</source>
+ <translation>&amp;Créer</translation>
+ </message>
+ <message>
+ <source>Cancel</source>
+ <translation>Annuler</translation>
+ </message>
+ <message>
+ <source>MusE: create directory</source>
+ <translation>MusE: créer un répertoire</translation>
+ </message>
+ <message>
+ <source>creating dir failed</source>
+ <translation>échec de la création du répertoire</translation>
+ </message>
+ <message>
+ <source>File
+</source>
+ <translation>Fichier
+</translation>
+ </message>
+ <message>
+ <source>
+exists</source>
+ <translation>
+existe</translation>
+ </message>
+ <message>
+ <source>MusE: write</source>
+ <translation>MusE: écriture</translation>
+ </message>
+ <message>
+ <source>Overwrite</source>
+ <translation>Ecrasement</translation>
+ </message>
+ <message>
+ <source>Quit</source>
+ <translation>Quitter</translation>
+ </message>
+ <message>
+ <source>Open File
+</source>
+ <translation>Ouvrir Fichier
+</translation>
+ </message>
+ <message>
+ <source>
+failed: </source>
+ <translation>
+échec:</translation>
+ </message>
+ <message>
+ <source>MusE: Open File</source>
+ <translation>MusE: Ouvrir un Fichier</translation>
+ </message>
+ <message>
+ <source>None</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Master</source>
+ <translation></translation>
+ </message>
+ <message>
+ <source>Input</source>
+ <translation>Entrée</translation>
+ </message>
+ <message>
+ <source>Group %c</source>
+ <translation></translation>
+ </message>
+ <message>
+ <source>Unknown</source>
+ <translation>Inconnu</translation>
+ </message>
+</context>
+<context>
+ <name>QuantConfig</name>
+ <message>
+ <source>Config Quantize</source>
+ <translation>Configuration de la Quantisation</translation>
+ </message>
+ <message>
+ <source>Strength</source>
+ <translation>Force</translation>
+ </message>
+ <message>
+ <source>Don&#xb4;t Quantize</source>
+ <translation>Ne pas quantiser</translation>
+ </message>
+ <message>
+ <source>Quant Len</source>
+ <translation>Lon Quant</translation>
+ </message>
+ <message>
+ <source>MusE: Config Quantize</source>
+ <translation>MusE: Configuration de la Quantisation</translation>
+ </message>
+</context>
+<context>
+ <name>QuantDialog</name>
+ <message>
+ <source>Display Quantize</source>
+ <translation>Afficher Quantisation</translation>
+ </message>
+ <message>
+ <source>Position</source>
+ <translation>Position</translation>
+ </message>
+ <message>
+ <source>Note Quantize</source>
+ <translation>Quantisation de Note</translation>
+ </message>
+ <message>
+ <source>Rest Quantize</source>
+ <translation>Quantisation des Silences</translation>
+ </message>
+ <message>
+ <source>Ok</source>
+ <translation>Ok</translation>
+ </message>
+ <message>
+ <source>Cancel</source>
+ <translation>Annuler</translation>
+ </message>
+</context>
+<context>
+ <name>RhythmBase</name>
+ <message>
+ <source>MusE: Random Rhythm Generator</source>
+ <translation>MusE: Générateur Aléatoire de Rythmes</translation>
+ </message>
+ <message>
+ <source>Instrument Properties</source>
+ <translation>Propriétés des Instruments</translation>
+ </message>
+ <message>
+ <source>counts/bar</source>
+ <translation>battements/mesure</translation>
+ </message>
+ <message>
+ <source>steps/count</source>
+ <translation>divisions/battements</translation>
+ </message>
+ <message>
+ <source># bars</source>
+ <translation># mesure</translation>
+ </message>
+ <message>
+ <source>test</source>
+ <translation>test</translation>
+ </message>
+ <message>
+ <source>contrib</source>
+ <translation>contrib</translation>
+ </message>
+ <message>
+ <source>randomize</source>
+ <translation>aléatoire</translation>
+ </message>
+ <message>
+ <source>Group 1</source>
+ <translation>Groupe 1</translation>
+ </message>
+ <message>
+ <source>Group 2</source>
+ <translation>Groupe 2</translation>
+ </message>
+ <message>
+ <source>Group 3</source>
+ <translation>Groupe 3</translation>
+ </message>
+ <message>
+ <source>Group 4</source>
+ <translation>Groupe 4</translation>
+ </message>
+ <message>
+ <source>Group 5</source>
+ <translation>Groupe 5</translation>
+ </message>
+ <message>
+ <source>listen</source>
+ <translation>écoute</translation>
+ </message>
+ <message>
+ <source>Instrument</source>
+ <translation>Instrument</translation>
+ </message>
+ <message>
+ <source>Group</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>&amp;New</source>
+ <translation>&amp;Nouveau</translation>
+ </message>
+ <message>
+ <source>create new entry</source>
+ <translation>créer une nouvelle entrée</translation>
+ </message>
+ <message>
+ <source>pressing the New button you create a new entry
+in the MusE list of defined controllers</source>
+ <translation>en appuyant sur Nouveau vous créez une nouvelle entrée
+dans la liste des contrôles</translation>
+ </message>
+ <message>
+ <source>&amp;Delete</source>
+ <translation>&amp;Effacer</translation>
+ </message>
+ <message>
+ <source>delete selected entry</source>
+ <translation>efface l&apos;entrée sélectionnée</translation>
+ </message>
+ <message>
+ <source>Up</source>
+ <translation>Haut</translation>
+ </message>
+ <message>
+ <source>Down</source>
+ <translation>Bas</translation>
+ </message>
+ <message>
+ <source>Instrument </source>
+ <translation>Instrument</translation>
+ </message>
+ <message>
+ <source>steps/count </source>
+ <translation>divisions/battement</translation>
+ </message>
+ <message>
+ <source>list of defined controllers</source>
+ <translation>liste des contrôles définis</translation>
+ </message>
+ <message>
+ <source>This is the MusE list of defined controllers.</source>
+ <translation>Ceci est la liste des contrôles qui ont été
+définis.</translation>
+ </message>
+ <message>
+ <source>&amp;File</source>
+ <translation>&amp;Fichier</translation>
+ </message>
+ <message>
+ <source>&amp;Edit</source>
+ <translation>&amp;Edition</translation>
+ </message>
+ <message>
+ <source>&amp;Help</source>
+ <translation>&amp;Aide</translation>
+ </message>
+ <message>
+ <source>Tools</source>
+ <translation>Outils</translation>
+ </message>
+ <message>
+ <source>New</source>
+ <translation>Nouveau</translation>
+ </message>
+ <message>
+ <source>Open</source>
+ <translation>Ouvrir</translation>
+ </message>
+ <message>
+ <source>&amp;Open...</source>
+ <translation>&amp;Ouvrir...</translation>
+ </message>
+ <message>
+ <source>Save</source>
+ <translation>Sauvegarder</translation>
+ </message>
+ <message>
+ <source>&amp;Save</source>
+ <translation>&amp;Sauvegarder</translation>
+ </message>
+ <message>
+ <source>Save As</source>
+ <translation>Sauvegarder sous</translation>
+ </message>
+ <message>
+ <source>Save &amp;As...</source>
+ <translation>Sauvegarder &amp;sous...</translation>
+ </message>
+ <message>
+ <source>Print</source>
+ <translation>Imprimer</translation>
+ </message>
+ <message>
+ <source>&amp;Print...</source>
+ <translation>Im&amp;primer...</translation>
+ </message>
+ <message>
+ <source>Exit</source>
+ <translation>Quitter</translation>
+ </message>
+ <message>
+ <source>E&amp;xit</source>
+ <translation>&amp;Quitter</translation>
+ </message>
+ <message>
+ <source>Undo</source>
+ <translation>Annuler</translation>
+ </message>
+ <message>
+ <source>&amp;Undo</source>
+ <translation>&amp;Annuler</translation>
+ </message>
+ <message>
+ <source>Redo</source>
+ <translation>Refaire</translation>
+ </message>
+ <message>
+ <source>&amp;Redo</source>
+ <translation>&amp;Refaire</translation>
+ </message>
+ <message>
+ <source>Cut</source>
+ <translation>Couper</translation>
+ </message>
+ <message>
+ <source>&amp;Cut</source>
+ <translation>Co&amp;uper</translation>
+ </message>
+ <message>
+ <source>Copy</source>
+ <translation>Copier</translation>
+ </message>
+ <message>
+ <source>C&amp;opy</source>
+ <translation>&amp;Copier</translation>
+ </message>
+ <message>
+ <source>Paste</source>
+ <translation>Coller</translation>
+ </message>
+ <message>
+ <source>&amp;Paste</source>
+ <translation>C&amp;oller</translation>
+ </message>
+ <message>
+ <source>Find</source>
+ <translation>Rechercher</translation>
+ </message>
+ <message>
+ <source>&amp;Find...</source>
+ <translation>&amp;Rechercher...</translation>
+ </message>
+ <message>
+ <source>Contents</source>
+ <translation>Contenus</translation>
+ </message>
+ <message>
+ <source>&amp;Contents...</source>
+ <translation>Co&amp;ntenus...</translation>
+ </message>
+ <message>
+ <source>Index</source>
+ <translation>Index</translation>
+ </message>
+ <message>
+ <source>&amp;Index...</source>
+ <translation>&amp;Index...</translation>
+ </message>
+ <message>
+ <source>About</source>
+ <translation>A propos</translation>
+ </message>
+ <message>
+ <source>&amp;About...</source>
+ <translation>&amp;A propos...</translation>
+ </message>
+</context>
+<context>
+ <name>RhythmGenerator</name>
+ <message>
+ <source>Form3</source>
+ <translation>Form3</translation>
+ </message>
+ <message>
+ <source>Instrument Settings:</source>
+ <translation>Réglages des Instruments:</translation>
+ </message>
+ <message>
+ <source>Instrument</source>
+ <translation>Instrument</translation>
+ </message>
+ <message>
+ <source>Hi-Hat</source>
+ <translation>Charley (Hi-Hat)</translation>
+ </message>
+ <message>
+ <source>add</source>
+ <translation>ajouter</translation>
+ </message>
+ <message>
+ <source>delete</source>
+ <translation>effacer</translation>
+ </message>
+ <message>
+ <source>steps/count</source>
+ <translation>battements/division</translation>
+ </message>
+ <message>
+ <source>count/bar</source>
+ <translation>divisions/mesure</translation>
+ </message>
+ <message>
+ <source># bars</source>
+ <translation># mesures</translation>
+ </message>
+ <message>
+ <source>Group Settings:</source>
+ <translation>Réglages des Groupes:</translation>
+ </message>
+ <message>
+ <source>Group</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Group 1</source>
+ <translation>Groupe 1</translation>
+ </message>
+ <message>
+ <source>Group 2</source>
+ <translation>Groupe 2</translation>
+ </message>
+ <message>
+ <source>Group 3</source>
+ <translation>Groupe 3</translation>
+ </message>
+ <message>
+ <source>Group 4</source>
+ <translation>Groupe 4</translation>
+ </message>
+ <message>
+ <source>Group 5</source>
+ <translation>Groupe 5</translation>
+ </message>
+ <message>
+ <source>contrib</source>
+ <translation>contrib</translation>
+ </message>
+ <message>
+ <source>listen</source>
+ <translation>écoute</translation>
+ </message>
+ <message>
+ <source>Randomize</source>
+ <translation>Aléatoire</translation>
+ </message>
+ <message>
+ <source>Rhythm Style:</source>
+ <translation>Style de Rythme:</translation>
+ </message>
+ <message>
+ <source>Clear</source>
+ <translation>Effacer</translation>
+ </message>
+ <message>
+ <source>Open...</source>
+ <translation>Ouvrir...</translation>
+ </message>
+ <message>
+ <source>Save</source>
+ <translation>Sauvegarder</translation>
+ </message>
+ <message>
+ <source>Save as...</source>
+ <translation>Sauvegarder sous...</translation>
+ </message>
+ <message>
+ <source>Generate</source>
+ <translation>Générer</translation>
+ </message>
+ <message>
+ <source>Close</source>
+ <translation>Fermer</translation>
+ </message>
+</context>
+<context>
+ <name>Score</name>
+ <message>
+ <source>Dynamics</source>
+ <translation>Dynamiques</translation>
+ </message>
+ <message>
+ <source>&amp;Config</source>
+ <translation>&amp;Configuration</translation>
+ </message>
+ <message>
+ <source>Page Settings</source>
+ <translation>Paramètres de la Page</translation>
+ </message>
+ <message>
+ <source>Staff Settings</source>
+ <translation>Paramètre de la portée</translation>
+ </message>
+ <message>
+ <source>Background Pixmap</source>
+ <translation>image de fond</translation>
+ </message>
+ <message>
+ <source>Palettes</source>
+ <translation>Palettes</translation>
+ </message>
+ <message>
+ <source>Print</source>
+ <translation>Imprimer</translation>
+ </message>
+ <message>
+ <source>Preview Print</source>
+ <translation>Aperçu avant Impression</translation>
+ </message>
+ <message>
+ <source>Lyrics</source>
+ <translation>Paroles</translation>
+ </message>
+ <message>
+ <source>enter lyrics</source>
+ <translation>entrer des paroles</translation>
+ </message>
+ <message>
+ <source>Text</source>
+ <translation>Texte</translation>
+ </message>
+ <message>
+ <source>enter text</source>
+ <translation>entrer un texte</translation>
+ </message>
+ <message>
+ <source>C7m</source>
+ <translation>Do-7</translation>
+ </message>
+ <message>
+ <source>enter chord symbol</source>
+ <translation>entrer la notation d&apos;un accord</translation>
+ </message>
+ <message>
+ <source>to previous voice</source>
+ <translation>� la voie précédante</translation>
+ </message>
+ <message>
+ <source>to next voice</source>
+ <translation>� la voie suivante</translation>
+ </message>
+ <message>
+ <source>flip stem direction</source>
+ <translation>changer la direction de la queue</translation>
+ </message>
+ <message>
+ <source>move marked notes to previous voice or to upper stave in a
+split system</source>
+ <translation>déplacer les notes marquées � la voie précédante ou �
+la portée du dessus d&apos;un système double</translation>
+ </message>
+ <message>
+ <source>move marked notes to next voice or to lower stave in a split
+system</source>
+ <translation>déplacer les notes marquées � la voie suivante ou � la
+portée basse d&apos;un système double</translation>
+ </message>
+ <message>
+ <source>flip stem direction of selected notes</source>
+ <translation>changer la direction de la queue des notes
+sélectionnées</translation>
+ </message>
+ <message>
+ <source>StaffSettings</source>
+ <translation>Paramètres de la portée</translation>
+ </message>
+ <message>
+ <source>MusE: config wallpaper</source>
+ <translation>MusE: Configuration du papier de fond</translation>
+ </message>
+ <message>
+ <source>Score</source>
+ <translation>Partition</translation>
+ </message>
+</context>
+<context>
+ <name>ScoreConfig</name>
+ <message>
+ <source>Staff Settings: </source>
+ <translation>Paramètres de Portée:</translation>
+ </message>
+ <message>
+ <source>Track List</source>
+ <translation>Liste Piste</translation>
+ </message>
+ <message>
+ <source>Key/Clef</source>
+ <translation>Clef</translation>
+ </message>
+ <message>
+ <source>Raster</source>
+ <translation>Trame</translation>
+ </message>
+ <message>
+ <source>Note Quantize</source>
+ <translation>Quantisation de Note</translation>
+ </message>
+ <message>
+ <source>Rest Quantize</source>
+ <translation>Quantisation de Silence</translation>
+ </message>
+ <message>
+ <source>Mode</source>
+ <translation>Mode</translation>
+ </message>
+ <message>
+ <source>Split System</source>
+ <translation>Portée Double</translation>
+ </message>
+ <message>
+ <source>Splitpoint</source>
+ <translation>Point de Séparation</translation>
+ </message>
+ <message>
+ <source>Ok</source>
+ <translation>Ok</translation>
+ </message>
+ <message>
+ <source>Apply</source>
+ <translation>Appliquer</translation>
+ </message>
+ <message>
+ <source>Cancel</source>
+ <translation>Annuler</translation>
+ </message>
+ <message>
+ <source>Upper Staff</source>
+ <translation>Portée Supérieure</translation>
+ </message>
+ <message>
+ <source>Lower Staff</source>
+ <translation>Portée Inférieure</translation>
+ </message>
+</context>
+<context>
+ <name>ScrollScale</name>
+ <message>
+ <source>next page</source>
+ <translation>page suivante</translation>
+ </message>
+ <message>
+ <source>previous page</source>
+ <translation>page précédente</translation>
+ </message>
+ <message>
+ <source>current page number</source>
+ <translation>numéro de page courante</translation>
+ </message>
+</context>
+<context>
+ <name>SigScale</name>
+ <message>
+ <source>signature scale</source>
+ <translation>Echelle de la signature</translation>
+ </message>
+</context>
+<context>
+ <name>StkGuiBase</name>
+ <message>
+ <source>MyDialog2</source>
+ <translation>MonDialogue2</translation>
+ </message>
+ <message>
+ <source>Voices</source>
+ <translation>Voies</translation>
+ </message>
+ <message>
+ <source>Edit</source>
+ <translation>Editer</translation>
+ </message>
+</context>
+<context>
+ <name>SynthConfigBase</name>
+ <message>
+ <source>MusE: Synth Configuration</source>
+ <translation>MusE: Configuration Synth Virtuel</translation>
+ </message>
+ <message>
+ <source>Soft Synthesizer</source>
+ <translation>Synthétiseur Virtuel</translation>
+ </message>
+ <message>
+ <source>File</source>
+ <translation>Fichier</translation>
+ </message>
+ <message>
+ <source>Instances</source>
+ <translation>Exemplaires</translation>
+ </message>
+ <message>
+ <source>Name</source>
+ <translation>Nom</translation>
+ </message>
+ <message>
+ <source>list of available software synthesizers</source>
+ <translation>liste des synthétiseurs virtuels
+disponibles</translation>
+ </message>
+ <message>
+ <source>Add Instance</source>
+ <translation>Ajouter un Exemplaire</translation>
+ </message>
+ <message>
+ <source>Alsa Port</source>
+ <translation>Port Alsa</translation>
+ </message>
+ <message>
+ <source>Remove Instance</source>
+ <translation>Retirer un Exemplaire</translation>
+ </message>
+</context>
+<context>
+ <name>TList</name>
+ <message>
+ <source>Delete Track</source>
+ <translation>Effacer la Piste</translation>
+ </message>
+ <message>
+ <source>Track Comment</source>
+ <translation>Commentaire de Piste</translation>
+ </message>
+ <message>
+ <source>Midi</source>
+ <translation>Midi</translation>
+ </message>
+ <message>
+ <source>Drum</source>
+ <translation>Batterie</translation>
+ </message>
+ <message>
+ <source>Wave</source>
+ <translation>Forme d&apos;Onde</translation>
+ </message>
+ <message>
+ <source>Show Gui</source>
+ <translation>Montrer la Gui</translation>
+ </message>
+ <message>
+ <source>Add Midi Track</source>
+ <translation>Ajouter une Piste Midi</translation>
+ </message>
+ <message>
+ <source>Add Drum Track</source>
+ <translation>Ajouter une Piste de Batterie</translation>
+ </message>
+ <message>
+ <source>Add Wave Track</source>
+ <translation>Ajouter une Piste Audio</translation>
+ </message>
+</context>
+<context>
+ <name>TempoSig</name>
+ <message>
+ <source>Tempo/Sig</source>
+ <translation>Tempo/Sig</translation>
+ </message>
+</context>
+<context>
+ <name>Toolbar1</name>
+ <message>
+ <source>Solo</source>
+ <translation>Solo</translation>
+ </message>
+ <message>
+ <source>Snap</source>
+ <translation>Aligne</translation>
+ </message>
+ <message>
+ <source>Quantize</source>
+ <translation>Quantisation</translation>
+ </message>
+ <message>
+ <source>To</source>
+ <translation>A</translation>
+ </message>
+ <message>
+ <source>All Events</source>
+ <translation>Tous les Evènements</translation>
+ </message>
+ <message>
+ <source>Looped Ev.</source>
+ <translation>Ev. Bouclés</translation>
+ </message>
+ <message>
+ <source>Selected Ev.</source>
+ <translation>Ev. Choisis</translation>
+ </message>
+ <message>
+ <source>Looped+Sel.</source>
+ <translation>Bouclés+Sél.</translation>
+ </message>
+ <message>
+ <source>Cursor</source>
+ <translation>Curseur</translation>
+ </message>
+</context>
+<context>
+ <name>TrackComment</name>
+ <message>
+ <source>MusE: Track Comment</source>
+ <translation>Muse: Commentaire de Piste</translation>
+ </message>
+ <message>
+ <source>Track Comment:</source>
+ <translation>Commentaire de Piste:</translation>
+ </message>
+</context>
+<context>
+ <name>Transport</name>
+ <message>
+ <source>Punch In</source>
+ <translation>Punch-In</translation>
+ </message>
+ <message>
+ <source>Loop</source>
+ <translation>Boucle</translation>
+ </message>
+ <message>
+ <source>Punch Out</source>
+ <translation>Punch-Out</translation>
+ </message>
+ <message>
+ <source>Left Mark</source>
+ <translation>Marque Gauche</translation>
+ </message>
+ <message>
+ <source>Right Mark</source>
+ <translation>Marque Droite</translation>
+ </message>
+ <message>
+ <source>Overdub</source>
+ <translation>Sur-enregistrement (Overdub)</translation>
+ </message>
+ <message>
+ <source>Replace</source>
+ <translation>Remplace</translation>
+ </message>
+ <message>
+ <source>Rec Mode</source>
+ <translation>Mode Enregistrement</translation>
+ </message>
+ <message>
+ <source>Normal</source>
+ <translation>Normal</translation>
+ </message>
+ <message>
+ <source>Mix</source>
+ <translation>Mix</translation>
+ </message>
+ <message>
+ <source>Cycle Rec</source>
+ <translation>Enr. Cycle</translation>
+ </message>
+ <message>
+ <source>punchin</source>
+ <translation>Punch-In</translation>
+ </message>
+ <message>
+ <source>loop</source>
+ <translation>boucle</translation>
+ </message>
+ <message>
+ <source>punchout</source>
+ <translation>Punch-Out</translation>
+ </message>
+ <message>
+ <source>rewind to start</source>
+ <translation>rembobine au départ</translation>
+ </message>
+ <message>
+ <source>rewind</source>
+ <translation>rembobiner</translation>
+ </message>
+ <message>
+ <source>forward</source>
+ <translation>avance</translation>
+ </message>
+ <message>
+ <source>stop</source>
+ <translation>stop</translation>
+ </message>
+ <message>
+ <source>play</source>
+ <translation>jouer</translation>
+ </message>
+ <message>
+ <source>record</source>
+ <translation>enregistrement</translation>
+ </message>
+ <message>
+ <source>AC</source>
+ <translation>AC</translation>
+ </message>
+ <message>
+ <source>quantize during record</source>
+ <translation>quantise pendant l&apos;enregistrement</translation>
+ </message>
+ <message>
+ <source>Click</source>
+ <translation>Clic</translation>
+ </message>
+ <message>
+ <source>metronom click on/off</source>
+ <translation>clic du métronome oui/non</translation>
+ </message>
+ <message>
+ <source>Sync</source>
+ <translation>Synchro</translation>
+ </message>
+ <message>
+ <source>external sync on/off</source>
+ <translation>synchro externe oui/non</translation>
+ </message>
+ <message>
+ <source>Master</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>use master track</source>
+ <translation>Utiliser la piste principale</translation>
+ </message>
+</context>
+<context>
+ <name>TransposeDialogBase</name>
+ <message>
+ <source>MusE: Midi Transpose</source>
+ <translation>MusE: Transposition Midi</translation>
+ </message>
+ <message>
+ <source>Value</source>
+ <translation>Valeur</translation>
+ </message>
+ <message>
+ <source>halftones</source>
+ <translation>demi-tons</translation>
+ </message>
+ <message>
+ <source>Time</source>
+ <translation>Temps</translation>
+ </message>
+ <message>
+ <source>all</source>
+ <translation>tous</translation>
+ </message>
+ <message>
+ <source>between markers</source>
+ <translation>entre les marqueurs</translation>
+ </message>
+ <message>
+ <source>Parts</source>
+ <translation>Pièces</translation>
+ </message>
+ <message>
+ <source>all in selected tracks</source>
+ <translation>tous dans les pistes sélectionnées</translation>
+ </message>
+ <message>
+ <source>OK</source>
+ <translation>OK</translation>
+ </message>
+ <message>
+ <source>Cancel</source>
+ <translation>Annuler</translation>
+ </message>
+</context>
+<context>
+ <name>VAMGuiBase</name>
+ <message>
+ <source>Virtual Analogue for MusE</source>
+ <translation>Synthé Analogique Virtuel pour Muse</translation>
+ </message>
+ <message>
+ <source>LFO</source>
+ <translation>LFO</translation>
+ </message>
+ <message>
+ <source>Freq</source>
+ <translation>Frèq</translation>
+ </message>
+ <message>
+ <source>Waveform</source>
+ <translation>Forme d&apos;Onde</translation>
+ </message>
+ <message>
+ <source>Sine</source>
+ <translation>Sinusoïde</translation>
+ </message>
+ <message>
+ <source>Pulse</source>
+ <translation>Impulsion</translation>
+ </message>
+ <message>
+ <source>Saw</source>
+ <translation>Dents-de-scie</translation>
+ </message>
+ <message>
+ <source>Triangle</source>
+ <translation>Triangle</translation>
+ </message>
+ <message>
+ <source>Filter</source>
+ <translation>Filtre</translation>
+ </message>
+ <message>
+ <source>EnvMod</source>
+ <translation>ModEnv</translation>
+ </message>
+ <message>
+ <source>Attack</source>
+ <translation>Attaque</translation>
+ </message>
+ <message>
+ <source>Decay</source>
+ <translation>Affaiblissement</translation>
+ </message>
+ <message>
+ <source>Sustain</source>
+ <translation>Tenue</translation>
+ </message>
+ <message>
+ <source>Release</source>
+ <translation>Relachement</translation>
+ </message>
+ <message>
+ <source>Cutoff</source>
+ <translation>Limiteur (CutOff)</translation>
+ </message>
+ <message>
+ <source>Resonance</source>
+ <translation>Résonance</translation>
+ </message>
+ <message>
+ <source>Invert</source>
+ <translation>Inverser</translation>
+ </message>
+ <message>
+ <source>KeyTrack</source>
+ <translation>PisteClef</translation>
+ </message>
+ <message>
+ <source>Presets</source>
+ <translation>Presets</translation>
+ </message>
+ <message>
+ <source>Set</source>
+ <translation>Set</translation>
+ </message>
+ <message>
+ <source>load preset list</source>
+ <translation>charger la liste des presets</translation>
+ </message>
+ <message>
+ <source>save preset list</source>
+ <translation>enregistrer la liste des presets</translation>
+ </message>
+ <message>
+ <source>save preset list to a new file</source>
+ <translation>enregistrer la liste des presets dans un nouveau
+fichier</translation>
+ </message>
+ <message>
+ <source>delete preset</source>
+ <translation>efface le preset</translation>
+ </message>
+ <message>
+ <source>DCO 1</source>
+ <translation>DCO 1</translation>
+ </message>
+ <message>
+ <source>Pitch</source>
+ <translation>Hauteur</translation>
+ </message>
+ <message>
+ <source>Detune</source>
+ <translation>Désaccordage</translation>
+ </message>
+ <message>
+ <source>PWM</source>
+ <translation>PWM</translation>
+ </message>
+ <message>
+ <source>FM</source>
+ <translation>FM</translation>
+ </message>
+ <message>
+ <source>PW</source>
+ <translation>PW</translation>
+ </message>
+ <message>
+ <source>DCO 2</source>
+ <translation>DCO 2</translation>
+ </message>
+ <message>
+ <source>On</source>
+ <translation>On</translation>
+ </message>
+ <message encoding="UTF-8">
+ <source>VAM 1.0beta2
+Virtual Analog for MusE
+Released under GPL.
+Copyright(C) 2002
+Jotsif Lindman Hörnlund
+( jotsif@linux.nu )</source>
+ <translation>VAM 1.0beta2
+Virtual Analog pour MusE
+License GPL.
+Copyright(C) 2002
+Jotsif Lindman Hörnlund
+( jotsif@linux.nu )</translation>
+ </message>
+</context>
+<context>
+ <name>VelocityBase</name>
+ <message>
+ <source>MusE: Modify Velocity</source>
+ <translation>Muse: Modifier la vélocité</translation>
+ </message>
+ <message>
+ <source>Range</source>
+ <translation>Taille</translation>
+ </message>
+ <message>
+ <source>All Events</source>
+ <translation>Tous les Evènements</translation>
+ </message>
+ <message>
+ <source>Selected Events</source>
+ <translation>Evènements choisis</translation>
+ </message>
+ <message>
+ <source>Looped Events</source>
+ <translation>Evènements bouclés</translation>
+ </message>
+ <message>
+ <source>Selected &amp; Looped</source>
+ <translation>Bouclés &amp; Sélectionnés</translation>
+ </message>
+ <message>
+ <source>Values</source>
+ <translation>Valeurs</translation>
+ </message>
+ <message>
+ <source>Rate:</source>
+ <translation>Vitesse:</translation>
+ </message>
+ <message>
+ <source>Offset:</source>
+ <translation>Décalage:</translation>
+ </message>
+ <message>
+ <source>%</source>
+ <translation>%</translation>
+ </message>
+ <message>
+ <source>OK</source>
+ <translation>OK</translation>
+ </message>
+ <message>
+ <source>Cancel</source>
+ <translation>Annuler</translation>
+ </message>
+</context>
+<context>
+ <name>WTScale</name>
+ <message>
+ <source>bar scale</source>
+ <translation>échelle de la mesure</translation>
+ </message>
+</context>
+<context>
+ <name>WaveEdit</name>
+ <message>
+ <source>Normalize</source>
+ <translation>Normaliser</translation>
+ </message>
+ <message>
+ <source>weTools</source>
+ <translation>weTools</translation>
+ </message>
+ <message>
+ <source>Solo</source>
+ <translation>Solo</translation>
+ </message>
+ <message>
+ <source>Cursor</source>
+ <translation>Curseur</translation>
+ </message>
+ <message>
+ <source>&amp;File</source>
+ <translation>&amp;Fichier</translation>
+ </message>
+ <message>
+ <source>Functions</source>
+ <translation>Fonctions</translation>
+ </message>
+</context>
+<context>
+ <name>WaveTrackInfoBase</name>
+ <message>
+ <source>MusE: TrackInfo</source>
+ <translation>MusE: InfoPiste</translation>
+ </message>
+ <message>
+ <source>Track Info</source>
+ <translation>Info Piste</translation>
+ </message>
+ <message>
+ <source>Track Name</source>
+ <translation>Nom de Piste</translation>
+ </message>
+ <message>
+ <source>Output Route:</source>
+ <translation>Chemin de Sortie:</translation>
+ </message>
+ <message>
+ <source>Input Route:</source>
+ <translation>Chemin d&apos;Entrée:</translation>
+ </message>
+ <message>
+ <source>Ports:</source>
+ <translation>Ports:</translation>
+ </message>
+ <message>
+ <source>Mono</source>
+ <translation>Mono</translation>
+ </message>
+ <message>
+ <source>Stereo</source>
+ <translation>Stéréo</translation>
+ </message>
+</context>
+</TS>
diff --git a/muse2/share/locale/muse_pl.qm b/muse2/share/locale/muse_pl.qm
new file mode 100644
index 00000000..f0199c58
--- /dev/null
+++ b/muse2/share/locale/muse_pl.qm
Binary files differ
diff --git a/muse2/share/locale/muse_pl.ts b/muse2/share/locale/muse_pl.ts
new file mode 100644
index 00000000..34934881
--- /dev/null
+++ b/muse2/share/locale/muse_pl.ts
@@ -0,0 +1,5722 @@
+<!DOCTYPE TS><TS>
+<context>
+ <name></name>
+ <message>
+ <source>Click this button to enable recording</source>
+ <translation>Naciśnij ten przycisk, aby pozwolić na nagrywanie</translation>
+ </message>
+ <message>
+ <source>sets amount of quantization:
+0 - no quantization
+100 - full quantization</source>
+ <translation>stopień kwantyzacji:
+0 - bez kwantyzacji
+100 - pełna kwantyzacja</translation>
+ </message>
+ <message>
+ <source>select Pointer Tool:
+with the pointer tool you can:
+ select parts
+ move parts
+ copy parts</source>
+ <translation>Kliknij na strzałkę.
+Strzałką możesz zaznaczać, przesuwać i kopiować klocki</translation>
+ </message>
+</context>
+<context>
+ <name>@default</name>
+ <message>
+ <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>Otwórz nowy utwór. Można też wybrać &lt;b&gt;Otwórz&lt;/b&gt; z menu Plik.
+</translation>
+ </message>
+ <message>
+ <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>Zapisz edytowany utwór. Trzeba podać nazwę pliku.
+Można też wybrać &quot;Zapisz&quot; z menu plik, lub &quot;Ctrl-S&quot;.
+</translation>
+ </message>
+ <message>
+ <source>Create New Song</source>
+ <translation>Twórz nowy utwór. Można też nacisnąć skrót &quot;Ctrl-N&quot;.</translation>
+ </message>
+ <message>
+ <source>Click this button to stop playback</source>
+ <translation>Zatrzymaj odtwarzanie.</translation>
+ </message>
+ <message>
+ <source>Click this button to start playback</source>
+ <translation>Rozpocznij odtwarzanie.</translation>
+ </message>
+ <message>
+ <source>Click this button to rewind to start position</source>
+ <translation>Przewiń do początku.</translation>
+ </message>
+ <message>
+ <source>Click this button to rewind</source>
+ <translation>Przewijaj do tyłu.</translation>
+ </message>
+ <message>
+ <source>Click this button to forward current play position</source>
+ <translation>Przewijaj do przodu.</translation>
+ </message>
+ <message>
+ <source>don&apos;t quantize notes above this tick limit</source>
+ <translation>Nie kwantyzuj nut poniżej tego poziomu.</translation>
+ </message>
+ <message>
+ <source>quantize also note len as default</source>
+ <translation>Kwantyzuj długości nut tak samo jak domyślnie.</translation>
+ </message>
+ <message>
+ <source>loop between left mark and right mark</source>
+ <translation>Zapętl pomiędzy lokatorami</translation>
+ </message>
+ <message>
+ <source>record starts at left mark</source>
+ <translation>Nagrywaj od lewego lokatora.</translation>
+ </message>
+ <message>
+ <source>record stops at right mark</source>
+ <translation>Nagrywaj od prawego lokatora.</translation>
+ </message>
+ <message>
+ <source>rewind to start position</source>
+ <translation>Przewiń do początku.</translation>
+ </message>
+ <message>
+ <source>rewind current position</source>
+ <translation>Przewijaj kursor do tyłu.</translation>
+ </message>
+ <message>
+ <source>move current position</source>
+ <translation>Przewijaj kursor do przodu.</translation>
+ </message>
+ <message>
+ <source>stop sequencer</source>
+ <translation>Zatrzymaj sekwencer.</translation>
+ </message>
+ <message>
+ <source>start sequencer play</source>
+ <translation>Uruchom odtwarzanie sekwencera.</translation>
+ </message>
+ <message>
+ <source>to record press record and then play</source>
+ <translation>Aby nagrywać najpierw naciśnij nagrywanie, potem odtwarzanie.</translation>
+ </message>
+ <message>
+ <source>send note off to all midi channels</source>
+ <translation>Zatrzymaj komunikaty midi na wszystkich kanałach!</translation>
+ </message>
+ <message>
+ <source>select Pencil Tool:
+with the pencil tool you can:
+ create new parts
+ modify length of parts</source>
+ <translation>Kliknij na ołówek.
+Ołówkiem możesz tworzyć klocki oraz zmieniać ich długość.</translation>
+ </message>
+ <message>
+ <source>select Delete Tool:
+with the delete tool you can delete parts</source>
+ <translation>Kliknij na GumkÄ™.
+Gumką można kasować klocki.</translation>
+ </message>
+ <message>
+ <source>select Cut Tool:
+with the cut tool you can split a part</source>
+ <translation>Kliknij na Nożyczki.
+Nożyczkami można ciąć klocki.</translation>
+ </message>
+ <message>
+ <source>select Glue Tool:
+with the glue tool you can glue two parts</source>
+ <translation>Kliknij na Klej.
+Klejem możesz sklejać dwa klocki</translation>
+ </message>
+ <message>
+ <source>select Score Tool:
+</source>
+ <translation>Wybierz PodglÄ…d Nutowy.</translation>
+ </message>
+ <message>
+ <source>select Quantize Tool:
+insert display quantize event</source>
+ <translation>Ustaw Kwantyzator
+(ustawia kwantyzację wstawiania komunikatów midi).</translation>
+ </message>
+ <message>
+ <source>select Drawing Tool</source>
+ <translation>wybierz Wykres</translation>
+ </message>
+ <message>
+ <source>select Muting Tool:
+click on part to mute/unmute</source>
+ <translation>Kliknij na Wyłącz.
+Kliknij na pojedynczy klocek aby go wyłączyć z odtwarzania.</translation>
+ </message>
+ <message>
+ <source>pointer</source>
+ <translation>Strzałka</translation>
+ </message>
+ <message>
+ <source>pencil</source>
+ <translation>Ołówek</translation>
+ </message>
+ <message>
+ <source>cutter</source>
+ <translation>Nożyczki</translation>
+ </message>
+ <message>
+ <source>score</source>
+ <translation>PoglÄ…d nutowy</translation>
+ </message>
+ <message>
+ <source>glue</source>
+ <translation>Klej</translation>
+ </message>
+ <message>
+ <source>quantize</source>
+ <translation>Kwantyzator</translation>
+ </message>
+ <message>
+ <source>draw</source>
+ <translation>Wykres</translation>
+ </message>
+ <message>
+ <source>mute parts</source>
+ <translation>Wyłącz klocki z odtwarzania</translation>
+ </message>
+ <message>
+ <source>Off</source>
+ <translation>Wył.</translation>
+ </message>
+ <message>
+ <source>presets (*.pre *.pre.gz *.pre.bz2)</source>
+ <translation>ustawienia (*.pre *.pre.gz *.pre.bz2)</translation>
+ </message>
+ <message>
+ <source>All Files (*)</source>
+ <translation>Wszystkie Pliki (*)</translation>
+ </message>
+ <message>
+ <source>Add Midi Track</source>
+ <translation>Dodaj Åšlad Midi</translation>
+ </message>
+ <message>
+ <source>Add Drum Track</source>
+ <translation>Dodaj Åšlad Perkusyjny</translation>
+ </message>
+ <message>
+ <source>Add Wave Track</source>
+ <translation>Dodaj Åšlad Audio</translation>
+ </message>
+ <message>
+ <source>Add Audio Output</source>
+ <translation>Dodaj Wyjście Audio</translation>
+ </message>
+ <message>
+ <source>Add Audio Group</source>
+ <translation>Dodaj GrupÄ™(SzynÄ™) Audio</translation>
+ </message>
+ <message>
+ <source>Add Audio Input</source>
+ <translation>Dodaj Wejście Audio</translation>
+ </message>
+ <message>
+ <source>Add Aux Send</source>
+ <translation>Dodaj Wysyłkę Audio</translation>
+ </message>
+ <message>
+ <source>eraser</source>
+ <translation>Gumka</translation>
+ </message>
+</context>
+<context>
+ <name>AboutBox</name>
+ <message>
+ <source>AboutBox</source>
+ <translation>O Programie</translation>
+ </message>
+ <message>
+ <source>Keep On Rocking!</source>
+ <translation>Trzymajmy tak dalej!</translation>
+ </message>
+ <message>
+ <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>Wersja Programu 0.7.0
+(C) Prawa Autorskie 1999-2004 Werner Schweer i inni.
+Wejdź na http://lmuse.sourceforge.net aby ściągnąć nową wersję i aby uzyskać informację.
+Spolszczył: Piotr Sawicki, pelle@plusnet.pl
+
+Opublikowane na zasadzie licencji GNU Public License
+
+</translation>
+ </message>
+</context>
+<context>
+ <name>Appearance</name>
+ <message>
+ <source>MusE: load image</source>
+ <translation type="unfinished">Muza: Załaduj obrazek.</translation>
+ </message>
+</context>
+<context>
+ <name>AppearanceDialogBase</name>
+ <message>
+ <source>MusE: Appearance settings</source>
+ <translation type="unfinished">MuzA: WyglÄ…d aplikacji.</translation>
+ </message>
+ <message>
+ <source>Apply</source>
+ <translation>Zastosuj</translation>
+ </message>
+ <message>
+ <source>Ok</source>
+ <translation>Akceptuj</translation>
+ </message>
+ <message>
+ <source>Cancel</source>
+ <translation>Anuluj</translation>
+ </message>
+ <message>
+ <source>Arranger</source>
+ <translation>Główne Okno</translation>
+ </message>
+ <message>
+ <source>Parts</source>
+ <translation>Klocki</translation>
+ </message>
+ <message>
+ <source>show names</source>
+ <translation>pokaż nazwy</translation>
+ </message>
+ <message>
+ <source>show events</source>
+ <translation>pokaż elementy midi</translation>
+ </message>
+ <message>
+ <source>show Cakewalk Style</source>
+ <translation>pokaż w stylu Cakewalk</translation>
+ </message>
+ <message>
+ <source>Events</source>
+ <translation>Elementy midi</translation>
+ </message>
+ <message>
+ <source>note on</source>
+ <translation>Dźwięki</translation>
+ </message>
+ <message>
+ <source>poly pressure</source>
+ <translation>Poly pressure</translation>
+ </message>
+ <message>
+ <source>controller</source>
+ <translation>Kontrolery midi</translation>
+ </message>
+ <message>
+ <source>aftertouch</source>
+ <translation>Nacisk pod uderzeniu (aftertouch)</translation>
+ </message>
+ <message>
+ <source>pitch bend</source>
+ <translation>Odchylenie stroju (Pitch Bend)</translation>
+ </message>
+ <message>
+ <source>program change</source>
+ <translation>Zmiana programu (program change)</translation>
+ </message>
+ <message>
+ <source>special</source>
+ <translation>specjalne</translation>
+ </message>
+ <message>
+ <source>Background picture</source>
+ <translation>Obrazek w tle</translation>
+ </message>
+ <message>
+ <source>bg</source>
+ <translation>tło</translation>
+ </message>
+ <message>
+ <source>select...</source>
+ <translation>wybierz...</translation>
+ </message>
+ <message>
+ <source>show snap grid</source>
+ <translation>pokaż siatkę przyciągania</translation>
+ </message>
+ <message>
+ <source>Colors</source>
+ <translation>Kolory</translation>
+ </message>
+ <message>
+ <source>Items</source>
+ <translation>Składniki</translation>
+ </message>
+ <message>
+ <source>Style/Fonts</source>
+ <translation>Style/Czcionki</translation>
+ </message>
+ <message>
+ <source>QT Theme</source>
+ <translation>Styl Qt</translation>
+ </message>
+ <message>
+ <source>Windows</source>
+ <translation>Windows</translation>
+ </message>
+ <message>
+ <source>MusE</source>
+ <translation>MuzA</translation>
+ </message>
+ <message>
+ <source>Metal</source>
+ <translation>Metaliczny</translation>
+ </message>
+ <message>
+ <source>Norwegian Wood</source>
+ <translation>Norweskie drzewo</translation>
+ </message>
+ <message>
+ <source>Platinum</source>
+ <translation>Platyna</translation>
+ </message>
+ <message>
+ <source>CDE</source>
+ <translation>CDE</translation>
+ </message>
+ <message>
+ <source>Motif</source>
+ <translation>Motif</translation>
+ </message>
+ <message>
+ <source>Motif Plus</source>
+ <translation>Motif Plus</translation>
+ </message>
+ <message>
+ <source>Fonts</source>
+ <translation>Czcionki</translation>
+ </message>
+ <message>
+ <source>Family</source>
+ <translation>Rodzina Czcionek</translation>
+ </message>
+ <message>
+ <source>Size</source>
+ <translation>Rozmiar</translation>
+ </message>
+ <message>
+ <source>Font 1</source>
+ <translation>Czcionka 1</translation>
+ </message>
+ <message>
+ <source>Font 2</source>
+ <translation>Czcionka 2</translation>
+ </message>
+ <message>
+ <source>Font 3</source>
+ <translation>Czcionka 3</translation>
+ </message>
+ <message>
+ <source>Font 0</source>
+ <translation>Czcionka 0</translation>
+ </message>
+ <message>
+ <source>Bold</source>
+ <translation>Pogrubionie</translation>
+ </message>
+ <message>
+ <source>Italic</source>
+ <translation>Kursywa</translation>
+ </message>
+ <message>
+ <source>...</source>
+ <translation>...</translation>
+ </message>
+ <message>
+ <source>Font 4</source>
+ <translation>Czcionka 4</translation>
+ </message>
+ <message>
+ <source>Font 5</source>
+ <translation>Czcionka 5</translation>
+ </message>
+ <message>
+ <source>Palette</source>
+ <translation>Paleta kolorów</translation>
+ </message>
+ <message>
+ <source>add to palette</source>
+ <translation>dodaj do palety</translation>
+ </message>
+ <message>
+ <source>B</source>
+ <translation>B</translation>
+ </message>
+ <message>
+ <source>S</source>
+ <translation>S</translation>
+ </message>
+ <message>
+ <source>H</source>
+ <translation>H</translation>
+ </message>
+ <message>
+ <source>V</source>
+ <translation>V</translation>
+ </message>
+ <message>
+ <source>G</source>
+ <translation>G</translation>
+ </message>
+ <message>
+ <source>R</source>
+ <translation>R</translation>
+ </message>
+</context>
+<context>
+ <name>Arranger</name>
+ <message>
+ <source>Cursor</source>
+ <translation>Kursor</translation>
+ </message>
+ <message>
+ <source>Snap</source>
+ <translation>Przyciąganie elementów</translation>
+ </message>
+ <message>
+ <source>Len</source>
+ <translation>Długość utworu w taktach</translation>
+ </message>
+ <message>
+ <source>NO</source>
+ <translation>Brak</translation>
+ </message>
+ <message>
+ <source>TrackInfo</source>
+ <translation>Info o śladzie</translation>
+ </message>
+ <message>
+ <source>Track</source>
+ <translation>Åšlad</translation>
+ </message>
+ <message>
+ <source>Type</source>
+ <translation>Typ</translation>
+ </message>
+ <message>
+ <source>midi song type</source>
+ <translation>Utwór Midi</translation>
+ </message>
+ <message>
+ <source>Pitch</source>
+ <translation>Glob. Transpozycja</translation>
+ </message>
+ <message>
+ <source>midi pitch</source>
+ <translation>transpozycja midi</translation>
+ </message>
+ <message>
+ <source>global midi pitch shift</source>
+ <translation>globalna transpozycja midi</translation>
+ </message>
+ <message>
+ <source>Tempo</source>
+ <translation>Tempo</translation>
+ </message>
+ <message>
+ <source>midi tempo</source>
+ <translation>Tempo Midi</translation>
+ </message>
+ <message>
+ <source>O-Port</source>
+ <translation>Wyjście</translation>
+ </message>
+ <message>
+ <source>Arranger</source>
+ <translation>Główne Okno</translation>
+ </message>
+ <message>
+ <source>Off</source>
+ <translation>Wył.</translation>
+ </message>
+ <message>
+ <source>Bar</source>
+ <translation>do kreski taktowej</translation>
+ </message>
+ <message>
+ <source>GM</source>
+ <translation>GM</translation>
+ </message>
+ <message>
+ <source>GS</source>
+ <translation>GS</translation>
+ </message>
+ <message>
+ <source>XG</source>
+ <translation>XG</translation>
+ </message>
+ <message>
+ <source>N</source>
+ <translation>100%</translation>
+ </message>
+ <message>
+ <source>R</source>
+ <translation>N</translation>
+ </message>
+ <message>
+ <source>M</source>
+ <translation>W</translation>
+ </message>
+ <message>
+ <source>S</source>
+ <translation>S</translation>
+ </message>
+ <message>
+ <source>C</source>
+ <translation>T</translation>
+ </message>
+ <message>
+ <source>Ch</source>
+ <translation>K</translation>
+ </message>
+ <message>
+ <source>T</source>
+ <translation>B</translation>
+ </message>
+</context>
+<context>
+ <name>AudioMixerApp</name>
+ <message>
+ <source>MusE: Mixer</source>
+ <translation>MuzA: Mikser</translation>
+ </message>
+ <message>
+ <source>&amp;Create</source>
+ <translation type="unfinished">&amp;Dodaj</translation>
+ </message>
+ <message>
+ <source>&amp;View</source>
+ <translation type="unfinished">&amp;PrzeglÄ…daj</translation>
+ </message>
+ <message>
+ <source>Routing</source>
+ <translation>Konfiguracja połączeń</translation>
+ </message>
+</context>
+<context>
+ <name>AudioStrip</name>
+ <message>
+ <source>panorama</source>
+ <translation>Panorama</translation>
+ </message>
+ <message>
+ <source>aux send level</source>
+ <translation>Poziom syngału na wysyłce</translation>
+ </message>
+ <message>
+ <source>off</source>
+ <translation>Wył.</translation>
+ </message>
+ <message>
+ <source>Pan</source>
+ <translation>Pan</translation>
+ </message>
+ <message>
+ <source>1/2 channel</source>
+ <translation>kanał m/s</translation>
+ </message>
+ <message>
+ <source>Pre</source>
+ <translation>Przed</translation>
+ </message>
+ <message>
+ <source>pre fader - post fader</source>
+ <translation>przed/ za tłumikiem</translation>
+ </message>
+ <message>
+ <source>dB</source>
+ <translation>dB</translation>
+ </message>
+ <message>
+ <source>record</source>
+ <translation>nagranie</translation>
+ </message>
+ <message>
+ <source>mute</source>
+ <translation>wycisz</translation>
+ </message>
+ <message>
+ <source>record downmix</source>
+ <translation>zgraj miks</translation>
+ </message>
+ <message>
+ <source>solo mode (monitor)</source>
+ <translation>Solo (Monitor)</translation>
+ </message>
+ <message>
+ <source>pre fader listening</source>
+ <translation>odsłuch przed tłumikiem</translation>
+ </message>
+ <message>
+ <source>iR</source>
+ <translation>Wej.</translation>
+ </message>
+ <message>
+ <source>intput routing</source>
+ <translation>połączenie wejścia</translation>
+ </message>
+ <message>
+ <source>oR</source>
+ <translation>Wyj.</translation>
+ </message>
+ <message>
+ <source>output routing</source>
+ <translation>połączenie Wyjścia</translation>
+ </message>
+ <message>
+ <source>Off</source>
+ <translation>Wył.</translation>
+ </message>
+ <message>
+ <source>Read</source>
+ <translation>Czytaj</translation>
+ </message>
+ <message>
+ <source>Touch</source>
+ <translation>Dotknij</translation>
+ </message>
+ <message>
+ <source>Write</source>
+ <translation>Zapisz</translation>
+ </message>
+ <message>
+ <source>automation type</source>
+ <translation>typ automatyki</translation>
+ </message>
+ <message>
+ <source>Channel</source>
+ <translation>Kanał</translation>
+ </message>
+</context>
+<context>
+ <name>BigTime</name>
+ <message>
+ <source>MusE: Bigtime</source>
+ <translation>MuzA: Duży zegar</translation>
+ </message>
+</context>
+<context>
+ <name>ClipListEditorBase</name>
+ <message>
+ <source>MusE: ClipList</source>
+ <translation>MuzA: Lista Klipów</translation>
+ </message>
+ <message>
+ <source>Name</source>
+ <translation>Nazwa</translation>
+ </message>
+ <message>
+ <source>Refs</source>
+ <translation type="unfinished">Refs</translation>
+ </message>
+ <message>
+ <source>Start</source>
+ <translation>Start</translation>
+ </message>
+ <message>
+ <source>Len</source>
+ <translation>Długość</translation>
+ </message>
+ <message>
+ <source>Data</source>
+ <translation>Dane</translation>
+ </message>
+ <message>
+ <source>Clip Properties</source>
+ <translation>Właściwości klipu</translation>
+ </message>
+ <message>
+ <source>Pos:</source>
+ <translation>Poz.:</translation>
+ </message>
+ <message>
+ <source>Len:</source>
+ <translation>DÅ‚.:</translation>
+ </message>
+</context>
+<context>
+ <name>CommentBase</name>
+ <message>
+ <source>Form1</source>
+ <translation>Form. 1</translation>
+ </message>
+ <message>
+ <source>Track Comment</source>
+ <translation>Opis śladu</translation>
+ </message>
+ <message>
+ <source>Track 1</source>
+ <translation>Åšlad 1</translation>
+ </message>
+</context>
+<context>
+ <name>ConfigMidiFileBase</name>
+ <message>
+ <source>MusE: Config Midi File Export</source>
+ <translation>MuzA: Konfiguracja exportu plików midi</translation>
+ </message>
+ <message>
+ <source>&amp;OK</source>
+ <translation>&amp;Akceptuj</translation>
+ </message>
+ <message>
+ <source>&amp;Cancel</source>
+ <translation>&amp;Anuluj</translation>
+ </message>
+ <message>
+ <source>0 (single track)</source>
+ <translation>0 (pojedynczy ślad)</translation>
+ </message>
+ <message>
+ <source>1 (multiple tracks)</source>
+ <translation>1 (wiele śladów)</translation>
+ </message>
+ <message>
+ <source>Format:</source>
+ <translation>Format:</translation>
+ </message>
+ <message>
+ <source>96</source>
+ <translation>96</translation>
+ </message>
+ <message>
+ <source>192</source>
+ <translation>192</translation>
+ </message>
+ <message>
+ <source>384</source>
+ <translation>384</translation>
+ </message>
+ <message>
+ <source>Division:</source>
+ <translation>Rozdzielczość:</translation>
+ </message>
+ <message>
+ <source>Copyright:</source>
+ <translation>Prawa autorskie:</translation>
+ </message>
+ <message>
+ <source>Enable extended smf format</source>
+ <translation>Aktuwuj rozszerzony format smf (standard midi file)</translation>
+ </message>
+</context>
+<context>
+ <name>CtrlPanel</name>
+ <message>
+ <source>select controller</source>
+ <translation>Wybierz kontroler</translation>
+ </message>
+ <message>
+ <source>remove panel</source>
+ <translation>Usuń panel</translation>
+ </message>
+ <message>
+ <source>Sel</source>
+ <translation>Wyb.</translation>
+ </message>
+ <message>
+ <source>x</source>
+ <translation>x</translation>
+ </message>
+ <message>
+ <source>Velocity</source>
+ <translation>Predkość uderzenia (velocity)</translation>
+ </message>
+ <message>
+ <source>add new ...</source>
+ <translation>dodaj nowe ...</translation>
+ </message>
+</context>
+<context>
+ <name>DrumEdit</name>
+ <message>
+ <source>Load Map</source>
+ <translation>Załaduj zestaw</translation>
+ </message>
+ <message>
+ <source>Save Map</source>
+ <translation>Zapisz zestaw</translation>
+ </message>
+ <message>
+ <source>&amp;Edit</source>
+ <translation>&amp;Edytuj</translation>
+ </message>
+ <message>
+ <source>Cut</source>
+ <translation>Wytnij</translation>
+ </message>
+ <message>
+ <source>Copy</source>
+ <translation>Kopiuj</translation>
+ </message>
+ <message>
+ <source>Paste</source>
+ <translation>Wklej</translation>
+ </message>
+ <message>
+ <source>Delete Events</source>
+ <translation>Kasuj Elementy</translation>
+ </message>
+ <message>
+ <source>Select All</source>
+ <translation>Zaznacz wszystko</translation>
+ </message>
+ <message>
+ <source>Select None</source>
+ <translation>Bez zaznaczenia</translation>
+ </message>
+ <message>
+ <source>Invert</source>
+ <translation>Odwróć zaznaczenie</translation>
+ </message>
+ <message>
+ <source>Inside Loop</source>
+ <translation>Pomiędzy lokatorami</translation>
+ </message>
+ <message>
+ <source>Outside Loop</source>
+ <translation>Poza obrębem lokatorów</translation>
+ </message>
+ <message>
+ <source>&amp;Select</source>
+ <translation>&amp;Zaznacz</translation>
+ </message>
+ <message>
+ <source>Step Record</source>
+ <translation>Nagrywanie po jednej nucie</translation>
+ </message>
+ <message>
+ <source>Midi Input</source>
+ <translation>PodglÄ…d Midi</translation>
+ </message>
+ <message>
+ <source>Add Controller View</source>
+ <translation>Pokaż widok kontrolerów</translation>
+ </message>
+ <message>
+ <source>M</source>
+ <translation>Wycisz</translation>
+ </message>
+ <message>
+ <source>Sound</source>
+ <translation>Brzmienie</translation>
+ </message>
+ <message>
+ <source>QNT</source>
+ <translation>Kwant.</translation>
+ </message>
+ <message>
+ <source>E-Note</source>
+ <translation>U-Wys</translation>
+ </message>
+ <message>
+ <source>Len</source>
+ <translation>DÅ‚ug.</translation>
+ </message>
+ <message>
+ <source>A-Note</source>
+ <translation>W-Wys</translation>
+ </message>
+ <message>
+ <source>Ch</source>
+ <translation>Kanał</translation>
+ </message>
+ <message>
+ <source>Port</source>
+ <translation>Urz. Midi</translation>
+ </message>
+ <message>
+ <source>LV1</source>
+ <translation>PV1</translation>
+ </message>
+ <message>
+ <source>LV2</source>
+ <translation>PV2</translation>
+ </message>
+ <message>
+ <source>LV3</source>
+ <translation>PV3</translation>
+ </message>
+ <message>
+ <source>LV4</source>
+ <translation>PV4</translation>
+ </message>
+ <message>
+ <source>&amp;File</source>
+ <translation>&amp;Plik</translation>
+ </message>
+ <message>
+ <source>Load Drummap</source>
+ <translation>Załaduj zestaw perkusyjny</translation>
+ </message>
+ <message>
+ <source>Store Drummap</source>
+ <translation>Zapisz zestaw perkusyjny</translation>
+ </message>
+ <message>
+ <source>ctrl</source>
+ <translation>ctrl</translation>
+ </message>
+ <message>
+ <source>drummaps</source>
+ <translation>Zestawy perkusyjne</translation>
+ </message>
+ <message>
+ <source>Muse: Load Drum Map</source>
+ <translation>MuzA: Załaduj zestaw perkusyjny</translation>
+ </message>
+ <message>
+ <source>MusE: Store Drum Map</source>
+ <translation>MuzA: Zapisz zestaw perkusyjny</translation>
+ </message>
+ <message>
+ <source>Set fixed length</source>
+ <translation>Ustaw stałą długość nut</translation>
+ </message>
+ <message>
+ <source>&amp;Functions</source>
+ <translation>&amp;Opcje</translation>
+ </message>
+ <message>
+ <source>Modify Velocity</source>
+ <translation>Zmień Velocity</translation>
+ </message>
+</context>
+<context>
+ <name>EditCAfterDialog</name>
+ <message>
+ <source>Time Position</source>
+ <translation>Pozycja:</translation>
+ </message>
+ <message>
+ <source>Pressure</source>
+ <translation>Nacisk</translation>
+ </message>
+ <message>
+ <source>MusE: Enter Channel Aftertouch</source>
+ <translation>MuzA: Wstaw zmianę średniego nacisku pod uderzeniu (channel aftertouch)</translation>
+ </message>
+</context>
+<context>
+ <name>EditCtrl7DialogBase</name>
+ <message>
+ <source>MusE: Enter Controller</source>
+ <translation>MuzA: Podaj kontroler</translation>
+ </message>
+ <message>
+ <source>Controller:</source>
+ <translation>Kontroler:</translation>
+ </message>
+ <message>
+ <source>Time Position:</source>
+ <translation>Pozycja:</translation>
+ </message>
+ <message>
+ <source>Value:</source>
+ <translation>Wartość:</translation>
+ </message>
+ <message>
+ <source>controller value</source>
+ <translation>Wartość dla kontrolera</translation>
+ </message>
+ <message>
+ <source>OK</source>
+ <translation>Akceptuj</translation>
+ </message>
+ <message>
+ <source>Cancel</source>
+ <translation>Anuluj</translation>
+ </message>
+</context>
+<context>
+ <name>EditCtrlBase</name>
+ <message>
+ <source>MusE: Edit Controller Event</source>
+ <translation>MuzA: Edytuj zdarzenia kontrolera</translation>
+ </message>
+ <message>
+ <source>Time Position</source>
+ <translation>Pozycja:</translation>
+ </message>
+ <message>
+ <source>Available Controller:</source>
+ <translation>Dostępne kontrolery:</translation>
+ </message>
+ <message>
+ <source>Create New Controller</source>
+ <translation>Ustaw nowy kontroler</translation>
+ </message>
+ <message>
+ <source>textLabel3</source>
+ <translation>Etykieta3</translation>
+ </message>
+ <message>
+ <source>Value</source>
+ <translation>Wartość</translation>
+ </message>
+ <message>
+ <source>Controller</source>
+ <translation>Kontroler</translation>
+ </message>
+ <message>
+ <source>H-Bank</source>
+ <translation>H-Bank</translation>
+ </message>
+ <message>
+ <source>L-Bank</source>
+ <translation>L-Bank</translation>
+ </message>
+ <message>
+ <source>Program</source>
+ <translation>Program</translation>
+ </message>
+ <message>
+ <source>off</source>
+ <translation>wył.</translation>
+ </message>
+ <message>
+ <source>pushButton4</source>
+ <translation>naciśnij Przycisk 4</translation>
+ </message>
+ <message>
+ <source>&amp;OK</source>
+ <translation>&amp;Akceptuj</translation>
+ </message>
+ <message>
+ <source>&amp;Cancel</source>
+ <translation>&amp;Anuluj</translation>
+ </message>
+</context>
+<context>
+ <name>EditEventDialog</name>
+ <message>
+ <source>Ok</source>
+ <translation>Akceptuj</translation>
+ </message>
+ <message>
+ <source>Cancel</source>
+ <translation>Anuluj</translation>
+ </message>
+</context>
+<context>
+ <name>EditInstrumentBase</name>
+ <message>
+ <source>MusE: Instrument Editor</source>
+ <translation>MuzA: Edytor Instrumentów</translation>
+ </message>
+ <message>
+ <source>Patches</source>
+ <translation>Patche</translation>
+ </message>
+ <message>
+ <source>Patch Name:</source>
+ <translation>Patch Nazwa</translation>
+ </message>
+ <message>
+ <source>High Bank:</source>
+ <translation>Górny Bank:</translation>
+ </message>
+ <message>
+ <source>Low Bank:</source>
+ <translation>Dolny Bank:</translation>
+ </message>
+ <message>
+ <source>Program:</source>
+ <translation>Program:</translation>
+ </message>
+ <message>
+ <source>d.c.</source>
+ <comment>dont care</comment>
+ <translation>brak,
+nie ważne</translation>
+ </message>
+ <message>
+ <source>d.c.</source>
+ <translation>nie ważne</translation>
+ </message>
+ <message>
+ <source>Patch/Group</source>
+ <translation type="unfinished">Patch/Grupa</translation>
+ </message>
+ <message>
+ <source>&amp;Delete</source>
+ <translation>&amp;Kasuj</translation>
+ </message>
+ <message>
+ <source>Alt+D</source>
+ <translation>Alt+D</translation>
+ </message>
+ <message>
+ <source>&amp;New Patch</source>
+ <translation type="unfinished">&amp;Nowy Patch</translation>
+ </message>
+ <message>
+ <source>Alt+N</source>
+ <translation>Alt+N</translation>
+ </message>
+ <message>
+ <source>New Group</source>
+ <translation>Nowa Grupa</translation>
+ </message>
+ <message>
+ <source>Drum</source>
+ <translation>Perkusja</translation>
+ </message>
+ <message>
+ <source>GM</source>
+ <translation>GM</translation>
+ </message>
+ <message>
+ <source>GS</source>
+ <translation>GS</translation>
+ </message>
+ <message>
+ <source>XG</source>
+ <translation>XG</translation>
+ </message>
+ <message>
+ <source>Controller</source>
+ <translation>Kontroler</translation>
+ </message>
+ <message>
+ <source>Predefined Controller:</source>
+ <translation>Predefiniowany kontroler:</translation>
+ </message>
+ <message>
+ <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>To jest lista najczęściej używanych kontorlerów midi.
+Zauważ, że &quot;pitch&quot; i &quot;zmiana programu (program change)&quot; są traktowane w MuzA jako zwykłe kontrolery.</translation>
+ </message>
+ <message>
+ <source>Properties</source>
+ <translation>Właściwości</translation>
+ </message>
+ <message>
+ <source>Name</source>
+ <translation>Nazwa</translation>
+ </message>
+ <message>
+ <source>Type</source>
+ <translation>Typ</translation>
+ </message>
+ <message>
+ <source>Control7</source>
+ <translation>Kontroler7</translation>
+ </message>
+ <message>
+ <source>Control14</source>
+ <translation>Kontroler14</translation>
+ </message>
+ <message>
+ <source>RPN</source>
+ <translation type="unfinished">RPN</translation>
+ </message>
+ <message>
+ <source>NRPN</source>
+ <translation type="unfinished">NRPN</translation>
+ </message>
+ <message>
+ <source>Pitch</source>
+ <translation type="unfinished">Transpozycja</translation>
+ </message>
+ <message>
+ <source>Program</source>
+ <translation>Program</translation>
+ </message>
+ <message>
+ <source>H-Ctrl</source>
+ <translation type="unfinished">H-Ctrl</translation>
+ </message>
+ <message>
+ <source>Midi Controller Number High Byte</source>
+ <translation type="unfinished">Numer midi kontrolera High Byte</translation>
+ </message>
+ <message>
+ <source>L-Ctrl</source>
+ <translation type="unfinished">L-Ctrl</translation>
+ </message>
+ <message>
+ <source>Midi Controller Number Low Byte</source>
+ <translation type="unfinished">Numer midi kontrolera Low Byte</translation>
+ </message>
+ <message>
+ <source>Range</source>
+ <translation>Zakres</translation>
+ </message>
+ <message>
+ <source>Min</source>
+ <translation>Min.</translation>
+ </message>
+ <message>
+ <source>Max</source>
+ <translation>Max</translation>
+ </message>
+ <message>
+ <source>Default</source>
+ <translation>Domyślny</translation>
+ </message>
+ <message>
+ <source>Name </source>
+ <translation>nazwa</translation>
+ </message>
+ <message>
+ <source>Type </source>
+ <translation>Typ</translation>
+ </message>
+ <message>
+ <source>Min Val</source>
+ <translation>Min. Wart.</translation>
+ </message>
+ <message>
+ <source>Max Val</source>
+ <translation>Max Wart.</translation>
+ </message>
+ <message>
+ <source>list of defined controllers</source>
+ <translation>Lista zdefiniowanych kontrolerów</translation>
+ </message>
+ <message>
+ <source>This is the MusE list of defined controllers.</source>
+ <translation>To jest lista MuzA zdefiniowanych midi kontrolerów.</translation>
+ </message>
+ <message>
+ <source>SysEx</source>
+ <translation>SysEx</translation>
+ </message>
+ <message>
+ <source>Initialization</source>
+ <translation>Inicjalizacja</translation>
+ </message>
+ <message>
+ <source>Panic</source>
+ <translation>Zatrzymaj wszystkie komunikaty midi!</translation>
+ </message>
+ <message>
+ <source>Hex Entry:</source>
+ <translation>Wartość Heks.</translation>
+ </message>
+ <message>
+ <source>&amp;File</source>
+ <translation>&amp;Plik</translation>
+ </message>
+ <message>
+ <source>Tools</source>
+ <translation>Narzędzia</translation>
+ </message>
+ <message>
+ <source>New</source>
+ <translation>Nowy</translation>
+ </message>
+ <message>
+ <source>&amp;New</source>
+ <translation>&amp;Nowy</translation>
+ </message>
+ <message>
+ <source>Ctrl+N</source>
+ <translation>Ctrl+N</translation>
+ </message>
+ <message>
+ <source>Open</source>
+ <translation>Otwórz</translation>
+ </message>
+ <message>
+ <source>&amp;Open...</source>
+ <translation>&amp;Otwórz...</translation>
+ </message>
+ <message>
+ <source>Ctrl+O</source>
+ <translation>Ctrl+O</translation>
+ </message>
+ <message>
+ <source>Save</source>
+ <translation>Zapisz</translation>
+ </message>
+ <message>
+ <source>&amp;Save</source>
+ <translation>&amp;Zapisz</translation>
+ </message>
+ <message>
+ <source>Ctrl+S</source>
+ <translation>Ctrl+S</translation>
+ </message>
+ <message>
+ <source>Save As</source>
+ <translation>Zapisz jako</translation>
+ </message>
+ <message>
+ <source>Save &amp;As...</source>
+ <translation>Zapisz &amp;Jako...</translation>
+ </message>
+ <message>
+ <source>Exit</source>
+ <translation>Zakończ</translation>
+ </message>
+ <message>
+ <source>E&amp;xit</source>
+ <translation>&amp;Zakończ</translation>
+ </message>
+</context>
+<context>
+ <name>EditMetaDialog</name>
+ <message>
+ <source>Time Position</source>
+ <translation>Pozycja:</translation>
+ </message>
+ <message>
+ <source>Meta Type</source>
+ <translation>Meta Typ</translation>
+ </message>
+ <message>
+ <source>Enter Hex</source>
+ <translation>Wstaw Heks.</translation>
+ </message>
+ <message>
+ <source>MusE: Enter Meta Event</source>
+ <translation>MuzA: Wstaw Zdarzenie Meta (nacisk po uderzeniu</translation>
+ </message>
+</context>
+<context>
+ <name>EditMetaDialogBase</name>
+ <message>
+ <source>MusE: Enter Meta Event</source>
+ <translation>MuzA: Wstaw Meta Zdarzenie</translation>
+ </message>
+ <message>
+ <source>OK</source>
+ <translation>Akceptuj</translation>
+ </message>
+ <message>
+ <source>Cancel</source>
+ <translation>Anuluj</translation>
+ </message>
+ <message>
+ <source>TextLabel1</source>
+ <translation>Etykieta</translation>
+ </message>
+ <message>
+ <source>Time Position:</source>
+ <translation>Pozycja:</translation>
+ </message>
+ <message>
+ <source>Meta Type:</source>
+ <translation>Meta Typ:</translation>
+ </message>
+ <message>
+ <source>Enter Hex</source>
+ <translation>Wstaw Heks.</translation>
+ </message>
+</context>
+<context>
+ <name>EditNoteDialogBase</name>
+ <message>
+ <source>MusE: Enter Note</source>
+ <translation>MuzA: Wstaw NutÄ™</translation>
+ </message>
+ <message>
+ <source>OK</source>
+ <translation>Akceptuj</translation>
+ </message>
+ <message>
+ <source>Cancel</source>
+ <translation>Anuluj</translation>
+ </message>
+ <message>
+ <source>Length:</source>
+ <translation>Długość:</translation>
+ </message>
+ <message>
+ <source>Time Position:</source>
+ <translation>Pozycja:</translation>
+ </message>
+ <message>
+ <source>Pitch:</source>
+ <translation>Wysokość dźwięku</translation>
+ </message>
+ <message>
+ <source>Velocity On:</source>
+ <translation>Predkość uderzenia (velocity) Wł.:</translation>
+ </message>
+ <message>
+ <source>Velocity Off:</source>
+ <translation>Predkość uderzenia (velocity) Wył.:</translation>
+ </message>
+</context>
+<context>
+ <name>EditPAfterDialog</name>
+ <message>
+ <source>Time Position</source>
+ <translation>Pozycja:</translation>
+ </message>
+ <message>
+ <source>Pitch</source>
+ <translation>Wysokość dźwięku</translation>
+ </message>
+ <message>
+ <source>Pressure</source>
+ <translation>Nacisk</translation>
+ </message>
+ <message>
+ <source>MusE: Enter Poly Aftertouch</source>
+ <translation>MuzA: Wstaw zmianę średniego nacisku pod uderzeniu (channel aftertouch)</translation>
+ </message>
+</context>
+<context>
+ <name>EditSysexDialogBase</name>
+ <message>
+ <source>MusE: Enter SysEx</source>
+ <translation>MuzA: Wstaw komunikat midi SysEx</translation>
+ </message>
+ <message>
+ <source>TimePosition:</source>
+ <translation>Pozycja:</translation>
+ </message>
+ <message>
+ <source>Comment:</source>
+ <translation>Opis:</translation>
+ </message>
+ <message>
+ <source>OK</source>
+ <translation>Akceptuj</translation>
+ </message>
+ <message>
+ <source>Cancel</source>
+ <translation>Anuluj</translation>
+ </message>
+</context>
+<context>
+ <name>EditToolBar</name>
+ <message>
+ <source>Edit Tools</source>
+ <translation>Narzędzia Edycyjne</translation>
+ </message>
+</context>
+<context>
+ <name>EffectRack</name>
+ <message>
+ <source>effect rack</source>
+ <translation>skrzynia efektów</translation>
+ </message>
+ <message>
+ <source>move up</source>
+ <translation>przesuń w górę</translation>
+ </message>
+ <message>
+ <source>move down</source>
+ <translation>przesuń w dół</translation>
+ </message>
+ <message>
+ <source>remove</source>
+ <translation>usuń</translation>
+ </message>
+ <message>
+ <source>bypass</source>
+ <translation>omiń (bypass)</translation>
+ </message>
+ <message>
+ <source>show gui</source>
+ <translation>pokaż interfejs użytkownika</translation>
+ </message>
+ <message>
+ <source>new</source>
+ <translation>nowy</translation>
+ </message>
+ <message>
+ <source>change</source>
+ <translation>zmień</translation>
+ </message>
+</context>
+<context>
+ <name>FileDialogButtons</name>
+ <message>
+ <source>Form1</source>
+ <translation>Form1</translation>
+ </message>
+ <message>
+ <source>Global</source>
+ <translation>Globalnie</translation>
+ </message>
+ <message>
+ <source>User</source>
+ <translation>Użytkownik</translation>
+ </message>
+ <message>
+ <source>Project</source>
+ <translation>Katalog projektu</translation>
+ </message>
+ <message>
+ <source>Load:</source>
+ <translation>Åaduj:</translation>
+ </message>
+ <message>
+ <source>Songdata +
+Cofiguration</source>
+ <translation>Plik typu utwór +
+konfiguracja</translation>
+ </message>
+ <message>
+ <source>only
+Songdata</source>
+ <translation>Tylko pliki typu utwór</translation>
+ </message>
+</context>
+<context>
+ <name>FontSel</name>
+ <message>
+ <source>Size:</source>
+ <translation>Rozmiar:</translation>
+ </message>
+</context>
+<context>
+ <name>GateTimeBase</name>
+ <message>
+ <source>MusE: Modify Gate Time</source>
+ <translation>MuzA: modyfikuj Gate Time</translation>
+ </message>
+ <message>
+ <source>Range</source>
+ <translation>Zakres</translation>
+ </message>
+ <message>
+ <source>All Events</source>
+ <translation>Wszytkie Elementy</translation>
+ </message>
+ <message>
+ <source>Selected Events</source>
+ <translation>Zaznaczone Elementy</translation>
+ </message>
+ <message>
+ <source>Looped Events</source>
+ <translation>Pomiędzy lokatorami</translation>
+ </message>
+ <message>
+ <source>Selected &amp; Looped</source>
+ <translation>Zaznaczone &amp; Pomiędzy lokatorami</translation>
+ </message>
+ <message>
+ <source>Values</source>
+ <translation>Wartość</translation>
+ </message>
+ <message>
+ <source>Rate:</source>
+ <translation>Częstotliwość:</translation>
+ </message>
+ <message>
+ <source>Offset:</source>
+ <translation>Offset:</translation>
+ </message>
+ <message>
+ <source>%</source>
+ <translation>%</translation>
+ </message>
+ <message>
+ <source>OK</source>
+ <translation>Akceptuj</translation>
+ </message>
+ <message>
+ <source>Cancel</source>
+ <translation>Anuluj</translation>
+ </message>
+</context>
+<context>
+ <name>GlobalSettingsDialogBase</name>
+ <message>
+ <source>MusE: Global Settings</source>
+ <translation>MuzA: Globalne Ustawienia</translation>
+ </message>
+ <message>
+ <source>Audio</source>
+ <translation>Audio</translation>
+ </message>
+ <message>
+ <source>Mixer</source>
+ <translation>Mikser</translation>
+ </message>
+ <message>
+ <source>dB</source>
+ <translation>dB</translation>
+ </message>
+ <message>
+ <source>min. Meter Value</source>
+ <translation>min. wartość miernika sygnału</translation>
+ </message>
+ <message>
+ <source>min.Slider Val</source>
+ <translation>dolna granica przesunięcia tłumika</translation>
+ </message>
+ <message>
+ <source>Midi</source>
+ <translation>Midi</translation>
+ </message>
+ <message>
+ <source>Ticks</source>
+ <translation>Tykanie</translation>
+ </message>
+ <message>
+ <source>1024</source>
+ <translation>1024</translation>
+ </message>
+ <message>
+ <source>2048</source>
+ <translation>2048</translation>
+ </message>
+ <message>
+ <source>4096</source>
+ <translation>4096</translation>
+ </message>
+ <message>
+ <source>8172</source>
+ <translation>8172</translation>
+ </message>
+ <message>
+ <source>Displayed Resolution
+(Ticks/Quarternote)</source>
+ <translation>Wyświetlana Rozdzielczość
+(Tykanie/Ćwiartka)</translation>
+ </message>
+ <message>
+ <source>48</source>
+ <translation>48</translation>
+ </message>
+ <message>
+ <source>96</source>
+ <translation>96</translation>
+ </message>
+ <message>
+ <source>192</source>
+ <translation>192</translation>
+ </message>
+ <message>
+ <source>384</source>
+ <translation>384</translation>
+ </message>
+ <message>
+ <source>768</source>
+ <translation>768</translation>
+ </message>
+ <message>
+ <source>1536</source>
+ <translation>1536</translation>
+ </message>
+ <message>
+ <source>3072</source>
+ <translation>3072</translation>
+ </message>
+ <message>
+ <source>6144</source>
+ <translation>6144</translation>
+ </message>
+ <message>
+ <source>12288</source>
+ <translation>12288</translation>
+ </message>
+ <message>
+ <source>RTC Resolution
+(Ticks/Sec)</source>
+ <translation>
+RTC (Rzeczywista Rozdzielczość Zegara)
+(Tykanie/Sekunda)</translation>
+ </message>
+ <message>
+ <source>GUI</source>
+ <translation>Interfejs Użytkownika</translation>
+ </message>
+ <message>
+ <source>/sec</source>
+ <translation>/sek.</translation>
+ </message>
+ <message>
+ <source>GUI Refresh Rate</source>
+ <translation>Częstotliwość odświeżania interfejsu użytkownika</translation>
+ </message>
+ <message>
+ <source>&amp;Apply</source>
+ <translation>&amp;Zastosuj</translation>
+ </message>
+ <message>
+ <source>&amp;Ok</source>
+ <translation>&amp;Akceptuj</translation>
+ </message>
+ <message>
+ <source>&amp;Cancel</source>
+ <translation>A&amp;nuluj</translation>
+ </message>
+ <message>
+ <source>Help Browser:</source>
+ <translation>PrzeglÄ…darka pomocy:</translation>
+ </message>
+ <message>
+ <source>Application</source>
+ <translation>Zastosowanie</translation>
+ </message>
+ <message>
+ <source>Start Muse</source>
+ <translation>Uruchamianie MuzA</translation>
+ </message>
+ <message>
+ <source>start with last song</source>
+ <translation>Otwórz ostatnio otwierany utwór</translation>
+ </message>
+ <message>
+ <source>start with song</source>
+ <translation>Åaduj przy uruchamianiu utwór</translation>
+ </message>
+ <message>
+ <source>start song:</source>
+ <translation>Åaduj utwór:</translation>
+ </message>
+ <message>
+ <source>Views</source>
+ <translation>Widoki</translation>
+ </message>
+ <message>
+ <source>y-pos</source>
+ <translation>poz.-y</translation>
+ </message>
+ <message>
+ <source>show</source>
+ <translation>Pokaż</translation>
+ </message>
+ <message>
+ <source>x-pos</source>
+ <translation>poz.-x</translation>
+ </message>
+ <message>
+ <source>height</source>
+ <translation>wysokość</translation>
+ </message>
+ <message>
+ <source>width</source>
+ <translation>szerokość</translation>
+ </message>
+ <message>
+ <source>Big Time</source>
+ <translation>Duży Zegar</translation>
+ </message>
+ <message>
+ <source>Arranger</source>
+ <translation>Główne Okno</translation>
+ </message>
+ <message>
+ <source>Transport</source>
+ <translation>Panel transportu</translation>
+ </message>
+ <message>
+ <source>Cur</source>
+ <translation>Aktualne</translation>
+ </message>
+ <message>
+ <source>set current values</source>
+ <translation>Ustaw aktualną wartość</translation>
+ </message>
+ <message>
+ <source>start with template: default.med</source>
+ <translation>Załaduj utwór szablon: default.med</translation>
+ </message>
+ <message>
+ <source>show splash screen</source>
+ <translation>Pokaż okno o programie przy starcie</translation>
+ </message>
+</context>
+<context>
+ <name>LMaster</name>
+ <message>
+ <source>new tempo</source>
+ <translation>nowe tempo</translation>
+ </message>
+ <message>
+ <source>new signature</source>
+ <translation>nowe metrum</translation>
+ </message>
+ <message>
+ <source>Meter</source>
+ <translation>Miernik</translation>
+ </message>
+ <message>
+ <source>Time</source>
+ <translation>Pozycja</translation>
+ </message>
+ <message>
+ <source>Type</source>
+ <translation>Typ</translation>
+ </message>
+ <message>
+ <source>Value</source>
+ <translation>Wartość</translation>
+ </message>
+ <message>
+ <source>MusE: Mastertrack</source>
+ <translation>MuzA: Åšlad Tempo/Metrum</translation>
+ </message>
+ <message>
+ <source>Tempo</source>
+ <translation>Tempo</translation>
+ </message>
+ <message>
+ <source>Timesig</source>
+ <translation>Metrum</translation>
+ </message>
+</context>
+<context>
+ <name>ListEdit</name>
+ <message>
+ <source>&amp;Edit</source>
+ <translation>E&amp;dytuj</translation>
+ </message>
+ <message>
+ <source>Cut</source>
+ <translation>Wytnij</translation>
+ </message>
+ <message>
+ <source>Copy</source>
+ <translation>Kopiuj</translation>
+ </message>
+ <message>
+ <source>Paste</source>
+ <translation>Wklej</translation>
+ </message>
+ <message>
+ <source>List Tools</source>
+ <translation>Lista Narzędzi</translation>
+ </message>
+ <message>
+ <source>Insert Tools</source>
+ <translation>Wstaw Narzędzia</translation>
+ </message>
+ <message>
+ <source>Delete Events</source>
+ <translation>Kasuj Elementy</translation>
+ </message>
+ <message>
+ <source>Insert Note</source>
+ <translation>Wstaw nutÄ™</translation>
+ </message>
+ <message>
+ <source>insert Note</source>
+ <translation>Wstaw nutÄ™</translation>
+ </message>
+ <message>
+ <source>Insert SysEx</source>
+ <translation>wstaw SysEx</translation>
+ </message>
+ <message>
+ <source>insert SysEx</source>
+ <translation>wstaw SysEx</translation>
+ </message>
+ <message>
+ <source>Insert Ctrl</source>
+ <translation>Wstaw kontroler</translation>
+ </message>
+ <message>
+ <source>insert Ctrl</source>
+ <translation>wstaw </translation>
+ </message>
+ <message>
+ <source>Insert Meta</source>
+ <translation>Wstaw Meta</translation>
+ </message>
+ <message>
+ <source>insert Meta</source>
+ <translation>Wstaw Meta</translation>
+ </message>
+ <message>
+ <source>Insert Channel Aftertouch</source>
+ <translation>Wstaw zmianę średniego nacisku pod uderzeniu (channel aftertouch)</translation>
+ </message>
+ <message>
+ <source>insert Channel Aftertouch</source>
+ <translation>Wstaw zmianę średniego nacisku pod uderzeniu (channel aftertouch)</translation>
+ </message>
+ <message>
+ <source>Insert Key Aftertouch</source>
+ <translation>Wstaw pojedynczÄ… zmiane nacisku pod uderzeniu</translation>
+ </message>
+ <message>
+ <source>insert Poly Aftertouch</source>
+ <translation>Wstaw zmianę średniego nacisku pod uderzeniu (Poly Aftertouch)</translation>
+ </message>
+ <message>
+ <source>Tick</source>
+ <translation>Takt (impuls sygnału czasu)</translation>
+ </message>
+ <message>
+ <source>Bar</source>
+ <translation>Takt</translation>
+ </message>
+ <message>
+ <source>Typ</source>
+ <translation>Typ</translation>
+ </message>
+ <message>
+ <source>Ch</source>
+ <translation>Kan</translation>
+ </message>
+ <message>
+ <source>Val A</source>
+ <translation>Wart. A</translation>
+ </message>
+ <message>
+ <source>Val B</source>
+ <translation>Wart. B</translation>
+ </message>
+ <message>
+ <source>Val C</source>
+ <translation>Wart. C</translation>
+ </message>
+ <message>
+ <source>Len</source>
+ <translation>DÅ‚ug.</translation>
+ </message>
+ <message>
+ <source>Comment</source>
+ <translation>Opis</translation>
+ </message>
+</context>
+<context>
+ <name>MITTransposeBase</name>
+ <message>
+ <source>MusE: Midi Input Plugin: Transpose</source>
+ <translation>MuzA: Wtyczka Wejścia Midi: Transponuj</translation>
+ </message>
+ <message>
+ <source>On</source>
+ <translation>WÅ‚Ä…cz.</translation>
+ </message>
+ <message>
+ <source>TriggerKey</source>
+ <translation>Klawisz uruchamiajÄ…cy</translation>
+ </message>
+ <message>
+ <source>Transpose:</source>
+ <translation>Transponuj:</translation>
+ </message>
+ <message>
+ <source>+0</source>
+ <translation></translation>
+ </message>
+</context>
+<context>
+ <name>MPConfig</name>
+ <message>
+ <source>none</source>
+ <translation>brak</translation>
+ </message>
+ <message>
+ <source>Port</source>
+ <translation>Numer</translation>
+ </message>
+ <message>
+ <source>GUI</source>
+ <translation>Interfejs użytkownika </translation>
+ </message>
+ <message>
+ <source>Instrument</source>
+ <translation>Typ portu midi</translation>
+ </message>
+ <message>
+ <source>Device Name</source>
+ <translation>Nazwa UrzÄ…dzenia</translation>
+ </message>
+ <message>
+ <source>State</source>
+ <translation>Status</translation>
+ </message>
+ <message>
+ <source>unknown</source>
+ <translation>nieznane</translation>
+ </message>
+ <message>
+ <source>I</source>
+ <translation>Wej.</translation>
+ </message>
+ <message>
+ <source>O</source>
+ <translation>Wyj.</translation>
+ </message>
+</context>
+<context>
+ <name>MRConfigBase</name>
+ <message>
+ <source>MusE: Midi Input Plugin: Remote Control</source>
+ <translation>MuzA: Wtyczka Wejścia Midi: Zdalne Sterowanie</translation>
+ </message>
+ <message>
+ <source>Activate</source>
+ <translation>Aktywuj</translation>
+ </message>
+ <message>
+ <source>On</source>
+ <translation>WÅ‚.</translation>
+ </message>
+ <message>
+ <source>Actions</source>
+ <translation>Funkcje</translation>
+ </message>
+ <message>
+ <source>Stop</source>
+ <translation>Stop</translation>
+ </message>
+ <message>
+ <source>Record</source>
+ <translation>Nagrywanie</translation>
+ </message>
+ <message>
+ <source>Goto Left Mark</source>
+ <translation>Idź do lewego lokatora</translation>
+ </message>
+ <message>
+ <source>Play</source>
+ <translation>Odtwarzanie</translation>
+ </message>
+</context>
+<context>
+ <name>MTScale</name>
+ <message>
+ <source>bar scale</source>
+ <translation>Oś taktów</translation>
+ </message>
+</context>
+<context>
+ <name>MarkerView</name>
+ <message>
+ <source>Bar:Beat:Tick</source>
+ <translation>Takt:Puls:Takt</translation>
+ </message>
+ <message>
+ <source>Hr:Mn:Sc:Fr:Sf</source>
+ <translation>Godz.:Min.:Sek.:Kl.:SKl</translation>
+ </message>
+ <message>
+ <source>Lock</source>
+ <translation>Zablokuj</translation>
+ </message>
+ <message>
+ <source>Text</source>
+ <translation>Tekst</translation>
+ </message>
+ <message>
+ <source>Marker Properties</source>
+ <translation>Właściwości znacznika</translation>
+ </message>
+ <message>
+ <source>MusE: Marker</source>
+ <translation>MuzA: Znacznik</translation>
+ </message>
+ <message>
+ <source>add marker</source>
+ <translation>Dodaj znacznik</translation>
+ </message>
+ <message>
+ <source>Add Marker</source>
+ <translation>Dodaj znacznik</translation>
+ </message>
+ <message>
+ <source>delete marker</source>
+ <translation>Kasuj znacznik</translation>
+ </message>
+ <message>
+ <source>Delete Marker</source>
+ <translation>Kasuj znacznik</translation>
+ </message>
+ <message>
+ <source>&amp;File</source>
+ <translation>&amp;Plik</translation>
+ </message>
+ <message>
+ <source>&amp;Edit</source>
+ <translation>&amp;Edycja</translation>
+ </message>
+</context>
+<context>
+ <name>MasterEdit</name>
+ <message>
+ <source>Cursor</source>
+ <translation>Poz. kursora</translation>
+ </message>
+ <message>
+ <source>Snap</source>
+ <translation>PrzyciÄ…ganie</translation>
+ </message>
+ <message>
+ <source>time at cursor position</source>
+ <translation>Wstaw metrum w aktualnej pozycji kursora</translation>
+ </message>
+ <message>
+ <source>tempo at cursor position</source>
+ <translation>Wstaw tempo w aktualnej pozycji kursora</translation>
+ </message>
+ <message>
+ <source>CurPos </source>
+ <translation>Akt. Poz. Kursora:</translation>
+ </message>
+ <message>
+ <source>tempo at current position</source>
+ <translation>Wstaw tempo w aktualnej pozycji kursora</translation>
+ </message>
+ <message>
+ <source>time signature at current position</source>
+ <translation>Wstaw tempo w aktualnej pozycji kursora</translation>
+ </message>
+ <message>
+ <source>MusE: Mastertrack</source>
+ <translation>MuzA: Åšlad Tempo/Metrum</translation>
+ </message>
+ <message>
+ <source>edit tools</source>
+ <translation>Narzędzia Edycyjne</translation>
+ </message>
+ <message>
+ <source>EnableMaster</source>
+ <translation>Aktywuj Åšlad Tempo/Metrum</translation>
+ </message>
+ <message>
+ <source>Info</source>
+ <translation>Info</translation>
+ </message>
+ <message>
+ <source>Off</source>
+ <translation>Wył.</translation>
+ </message>
+ <message>
+ <source>Enable</source>
+ <translation>WÅ‚Ä…cz</translation>
+ </message>
+ <message>
+ <source>Enable usage of master track</source>
+ <translation>Aktywuj Åšlad Tempo/Metrum</translation>
+ </message>
+</context>
+<context>
+ <name>MetronomeConfigBase</name>
+ <message>
+ <source>MusE: Metronome Config</source>
+ <translation>MuzA: Konfiguracja Metronomu</translation>
+ </message>
+ <message>
+ <source>Metronome</source>
+ <translation>Metronom</translation>
+ </message>
+ <message>
+ <source>Audio Beep</source>
+ <translation>Audio Beep</translation>
+ </message>
+ <message>
+ <source>MIDI Click</source>
+ <translation>MIDI Klik</translation>
+ </message>
+ <message>
+ <source>Midi Channel</source>
+ <translation>Kanał Midi</translation>
+ </message>
+ <message>
+ <source>Measure Note</source>
+ <translation>Dźwięk 1 uderzenie w takcie</translation>
+ </message>
+ <message>
+ <source>Measure Velocity</source>
+ <translation>Głośność 1 uderzenie w takcie</translation>
+ </message>
+ <message>
+ <source>Beat Velocity</source>
+ <translation>Głośność pozostałych uderzeń metronomu</translation>
+ </message>
+ <message>
+ <source>Beat Note</source>
+ <translation>Dźwięk pozostałych uderzeń metronomu</translation>
+ </message>
+ <message>
+ <source>Midi Port</source>
+ <translation>Numer Portu Midi</translation>
+ </message>
+ <message>
+ <source>Precount</source>
+ <translation>Nabicie tempa</translation>
+ </message>
+ <message>
+ <source>enable</source>
+ <translation>włącz</translation>
+ </message>
+ <message>
+ <source>Bars</source>
+ <translation>Takty</translation>
+ </message>
+ <message>
+ <source>From Mastertrack</source>
+ <translation>Ze śladu tempo/metrum (Mastertrack)</translation>
+ </message>
+ <message>
+ <source>/</source>
+ <translation>/</translation>
+ </message>
+ <message>
+ <source>Signature</source>
+ <translation>Metrum</translation>
+ </message>
+ <message>
+ <source>Prerecord</source>
+ <translation>Prerecord</translation>
+ </message>
+ <message>
+ <source>Preroll</source>
+ <translation>Preroll</translation>
+ </message>
+ <message>
+ <source>&amp;Apply</source>
+ <translation>&amp;Zastosuj</translation>
+ </message>
+ <message>
+ <source>&amp;OK</source>
+ <translation>&amp;Akceptuj</translation>
+ </message>
+ <message>
+ <source>&amp;Cancel</source>
+ <translation>&amp;Anuluj</translation>
+ </message>
+</context>
+<context>
+ <name>MidiController</name>
+ <message>
+ <source>Velocity</source>
+ <translation>Głośność</translation>
+ </message>
+</context>
+<context>
+ <name>MidiControllerEditDialogBase</name>
+ <message>
+ <source>Type </source>
+ <translation>Typ</translation>
+ </message>
+ <message>
+ <source>Properties</source>
+ <translation>Właściwości</translation>
+ </message>
+ <message>
+ <source>Type</source>
+ <translation>Typ</translation>
+ </message>
+ <message>
+ <source>&amp;New</source>
+ <translation type="obsolete">Neu</translation>
+ </message>
+ <message>
+ <source>&amp;Delete</source>
+ <translation>&amp;Kasuj</translation>
+ </message>
+ <message>
+ <source>&amp;OK</source>
+ <translation>&amp;AkceptujOK</translation>
+ </message>
+ <message>
+ <source>&amp;Cancel</source>
+ <translation>&amp;Anuluj</translation>
+ </message>
+ <message>
+ <source>MusE: Define Midi Controller</source>
+ <translation>MuzA: Zdefiniuj Midi Kontroler</translation>
+ </message>
+ <message>
+ <source>&amp;Add</source>
+ <translation>&amp;Dodaj</translation>
+ </message>
+ <message>
+ <source>Alt+A</source>
+ <translation></translation>
+ </message>
+ <message>
+ <source>create new entry</source>
+ <translation>Stwórz nowy wpis</translation>
+ </message>
+ <message>
+ <source>pressing the New button you create a new entry
+in the MusE list of defined controllers</source>
+ <translation>Naciśnij Nowy żeby utworzyć nowy wpis do listy zdefiniowanych kontrolerów MuzA</translation>
+ </message>
+ <message>
+ <source>delete selected entry</source>
+ <translation>kasuj zaznaczone elementy</translation>
+ </message>
+ <message>
+ <source>Predefined Controller:</source>
+ <translation>Predefiniowany kontroler:</translation>
+ </message>
+ <message>
+ <source>Name </source>
+ <translation>nazwa</translation>
+ </message>
+ <message>
+ <source>H-Ctrl</source>
+ <translation type="unfinished">H-Ctrl</translation>
+ </message>
+ <message>
+ <source>L-Ctrl</source>
+ <translation type="unfinished">L-Ctrl</translation>
+ </message>
+ <message>
+ <source>Min Val</source>
+ <translation>Min. Wart.</translation>
+ </message>
+ <message>
+ <source>Max Val</source>
+ <translation>Max Wart.</translation>
+ </message>
+ <message>
+ <source>list of defined controllers</source>
+ <translation>Lista zdefiniowanych kontrolerów</translation>
+ </message>
+ <message>
+ <source>This is the MusE list of defined controllers.</source>
+ <translation>To jest lista MuzA zdefiniowanych midi kontrolerów.</translation>
+ </message>
+ <message>
+ <source>Managed Controller for Port</source>
+ <translation>Obsługiwane kontrolery dla portu</translation>
+ </message>
+ <message>
+ <source>Channel</source>
+ <translation>Kanał</translation>
+ </message>
+ <message>
+ <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>To jest lista najczęściej używanych kontorlerów midi.
+Zauważ, że &quot;pitch&quot; i &quot;zmiana programu (program change)&quot; są traktowane w MuzA jako zwykłe kontrolery.</translation>
+ </message>
+ <message>
+ <source>Name</source>
+ <translation>Nazwa</translation>
+ </message>
+ <message>
+ <source>Min Value</source>
+ <translation>Min. Wart.</translation>
+ </message>
+ <message>
+ <source>Max Value</source>
+ <translation>Max Wart.</translation>
+ </message>
+ <message>
+ <source>Control7</source>
+ <translation>Kontroler7</translation>
+ </message>
+ <message>
+ <source>Control14</source>
+ <translation>Kontroler14</translation>
+ </message>
+ <message>
+ <source>RPN</source>
+ <translation type="unfinished">RPN</translation>
+ </message>
+ <message>
+ <source>NRPN</source>
+ <translation type="unfinished">NRPN</translation>
+ </message>
+ <message>
+ <source>Pitch</source>
+ <translation>Transpozycja</translation>
+ </message>
+ <message>
+ <source>Program</source>
+ <translation>Program</translation>
+ </message>
+ <message>
+ <source>Midi Controller Number High Byte</source>
+ <translation type="unfinished">Numer midi kontrolera High Byte</translation>
+ </message>
+ <message>
+ <source>Midi Controller Number Low Byte</source>
+ <translation type="unfinished">Numer midi kontrolera Low Byte</translation>
+ </message>
+ <message>
+ <source>Range</source>
+ <translation>Zakres</translation>
+ </message>
+</context>
+<context>
+ <name>MidiFilterConfigBase</name>
+ <message>
+ <source>MusE: Midi Input Filter</source>
+ <translation>Filtr Wejścia Midi</translation>
+ </message>
+ <message>
+ <source>Record Filter</source>
+ <translation>Filtr Komunikatów Przych. (Midi In)</translation>
+ </message>
+ <message>
+ <source>Note On</source>
+ <translation>Dźwięki</translation>
+ </message>
+ <message>
+ <source>Poly Pressure</source>
+ <translation>Åšredni nacisk po uderzeniu</translation>
+ </message>
+ <message>
+ <source>Controller</source>
+ <translation>Kontrolery</translation>
+ </message>
+ <message>
+ <source>Program Change</source>
+ <translation>Zmiana programu (program change)</translation>
+ </message>
+ <message>
+ <source>After Touch</source>
+ <translation>Nacisk pod uderzeniu (aftertouch)</translation>
+ </message>
+ <message>
+ <source>Pitch Bend</source>
+ <translation>Odchylenie stroju (Pitch Bend)</translation>
+ </message>
+ <message>
+ <source>Sysex</source>
+ <translation>SysEx</translation>
+ </message>
+ <message>
+ <source>Thru Filter</source>
+ <translation>Filtr Komunikatów Wych. (Midi Thru)</translation>
+ </message>
+ <message>
+ <source>Controller Filter</source>
+ <translation>Filtruj Kontroler</translation>
+ </message>
+ <message>
+ <source>Channel Filter</source>
+ <translation>Filtruj Kanał</translation>
+ </message>
+ <message>
+ <source>14</source>
+ <translation>14</translation>
+ </message>
+ <message>
+ <source>10</source>
+ <translation>10</translation>
+ </message>
+ <message>
+ <source>6</source>
+ <translation>6</translation>
+ </message>
+ <message>
+ <source>12</source>
+ <translation>12</translation>
+ </message>
+ <message>
+ <source>4</source>
+ <translation>4</translation>
+ </message>
+ <message>
+ <source>2</source>
+ <translation>2</translation>
+ </message>
+ <message>
+ <source>9</source>
+ <translation>9</translation>
+ </message>
+ <message>
+ <source>8</source>
+ <translation>8</translation>
+ </message>
+ <message>
+ <source>3</source>
+ <translation>3</translation>
+ </message>
+ <message>
+ <source>13</source>
+ <translation>13</translation>
+ </message>
+ <message>
+ <source>15</source>
+ <translation>15</translation>
+ </message>
+ <message>
+ <source>16</source>
+ <translation>16</translation>
+ </message>
+ <message>
+ <source>7</source>
+ <translation>7</translation>
+ </message>
+ <message>
+ <source>11</source>
+ <translation>11</translation>
+ </message>
+ <message>
+ <source>5</source>
+ <translation>5</translation>
+ </message>
+ <message>
+ <source>1</source>
+ <translation>1</translation>
+ </message>
+</context>
+<context>
+ <name>MidiInputTransformDialog</name>
+ <message>
+ <source>New</source>
+ <translation>Nowy</translation>
+ </message>
+</context>
+<context>
+ <name>MidiInputTransformDialogBase</name>
+ <message>
+ <source>MusE: Midi Input Transformator</source>
+ <translation>MuzA: Transformator Wejścia Midi</translation>
+ </message>
+ <message>
+ <source>Filter</source>
+ <translation>Filtr</translation>
+ </message>
+ <message>
+ <source>All</source>
+ <translation>Wszystko</translation>
+ </message>
+ <message>
+ <source>Equal</source>
+ <translation>Równe</translation>
+ </message>
+ <message>
+ <source>Unequal</source>
+ <translation>Nierówne</translation>
+ </message>
+ <message>
+ <source>Note</source>
+ <translation>Dźwięk</translation>
+ </message>
+ <message>
+ <source>Poly Pressure</source>
+ <translation>Åšredni nacisk po uderzeniu (Poly Pressure)</translation>
+ </message>
+ <message>
+ <source>Control Change</source>
+ <translation type="unfinished">Control Change</translation>
+ </message>
+ <message>
+ <source>Aftertouch</source>
+ <translation>Nacisk pod uderzeniu (aftertouch)</translation>
+ </message>
+ <message>
+ <source>Pitch Bend</source>
+ <translation>Odchylenie stroju (Pitch Bend)</translation>
+ </message>
+ <message>
+ <source>NRPN</source>
+ <translation type="unfinished">NRPN</translation>
+ </message>
+ <message>
+ <source>RPN</source>
+ <translation type="unfinished">RPN</translation>
+ </message>
+ <message>
+ <source>Value 2</source>
+ <translation>Wartość 2</translation>
+ </message>
+ <message>
+ <source>Value 1</source>
+ <translation>Wartość 1</translation>
+ </message>
+ <message>
+ <source>Event Type</source>
+ <translation>Rodzaje komunikatów midi</translation>
+ </message>
+ <message>
+ <source>Ignore</source>
+ <translation>Ignoruj</translation>
+ </message>
+ <message>
+ <source>Higher</source>
+ <translation>Powyżej</translation>
+ </message>
+ <message>
+ <source>Lower</source>
+ <translation>Poniżej</translation>
+ </message>
+ <message>
+ <source>Inside</source>
+ <translation>Pomiędzy</translation>
+ </message>
+ <message>
+ <source>Outside</source>
+ <translation>Poza</translation>
+ </message>
+ <message>
+ <source>Channel</source>
+ <translation>Kanał</translation>
+ </message>
+ <message>
+ <source>Port</source>
+ <translation>Port</translation>
+ </message>
+ <message>
+ <source>Processing</source>
+ <translation>Przetwarzanie</translation>
+ </message>
+ <message>
+ <source>Keep</source>
+ <translation>Pozostaw</translation>
+ </message>
+ <message>
+ <source>Fix</source>
+ <translation>Ustal</translation>
+ </message>
+ <message>
+ <source>Plus</source>
+ <translation>Plus</translation>
+ </message>
+ <message>
+ <source>Minus</source>
+ <translation>Minus</translation>
+ </message>
+ <message>
+ <source>Multiply</source>
+ <translation>Przemnóż</translation>
+ </message>
+ <message>
+ <source>Divide</source>
+ <translation>Podziel</translation>
+ </message>
+ <message>
+ <source>Invert</source>
+ <translation>Odwróć</translation>
+ </message>
+ <message>
+ <source>ScaleMap</source>
+ <translation type="unfinished">Zakres Skali</translation>
+ </message>
+ <message>
+ <source>Flip</source>
+ <translation>Odwróć</translation>
+ </message>
+ <message>
+ <source>Dyn</source>
+ <translation type="unfinished">Dyn</translation>
+ </message>
+ <message>
+ <source>Random</source>
+ <translation>Losowo</translation>
+ </message>
+ <message>
+ <source>Modules</source>
+ <translation>Moduły</translation>
+ </message>
+ <message>
+ <source>1</source>
+ <translation>1</translation>
+ </message>
+ <message>
+ <source>2</source>
+ <translation>2</translation>
+ </message>
+ <message>
+ <source>3</source>
+ <translation>3</translation>
+ </message>
+ <message>
+ <source>4</source>
+ <translation>4</translation>
+ </message>
+ <message>
+ <source>enable modul 1</source>
+ <translation>aktywuj moduł 1</translation>
+ </message>
+ <message>
+ <source>enable modul 2</source>
+ <translation>aktywuj moduł 2</translation>
+ </message>
+ <message>
+ <source>enable modul 3</source>
+ <translation>aktywuj moduł 3</translation>
+ </message>
+ <message>
+ <source>enable modul 4</source>
+ <translation>aktywuj moduł 4</translation>
+ </message>
+ <message>
+ <source>Preset</source>
+ <translation>Ustawienie</translation>
+ </message>
+ <message>
+ <source>Name:</source>
+ <translation>Nazwa:</translation>
+ </message>
+ <message>
+ <source>Comment:</source>
+ <translation>Opis:</translation>
+ </message>
+ <message>
+ <source>Function</source>
+ <translation>Funkcja</translation>
+ </message>
+ <message>
+ <source>&amp;New</source>
+ <translation>&amp;Nowy</translation>
+ </message>
+ <message>
+ <source>create new preset</source>
+ <translation>Twórz nowe ustawienie</translation>
+ </message>
+ <message>
+ <source>&amp;Delete</source>
+ <translation>&amp;Kasuj</translation>
+ </message>
+ <message>
+ <source>delete preset</source>
+ <translation>kasuj ustawienie</translation>
+ </message>
+ <message>
+ <source>&amp;Dismiss</source>
+ <translation>&amp;Wyrzuć</translation>
+ </message>
+ <message>
+ <source>PresetList</source>
+ <translation>Lista Ustawień</translation>
+ </message>
+</context>
+<context>
+ <name>MidiPortRouteBase</name>
+ <message>
+ <source>MusE: Midi Port Routing</source>
+ <translation>MuzA: Połączenia Portów Midi</translation>
+ </message>
+ <message>
+ <source>Port 2</source>
+ <translation>Port 2</translation>
+ </message>
+ <message>
+ <source>Output</source>
+ <translation>Wyjście</translation>
+ </message>
+ <message>
+ <source>Input</source>
+ <translation>Wejście</translation>
+ </message>
+</context>
+<context>
+ <name>MidiStrip</name>
+ <message>
+ <source>VariationSend</source>
+ <translation type="unfinished">VariationSend</translation>
+ </message>
+ <message>
+ <source>Var</source>
+ <translation type="unfinished">Var</translation>
+ </message>
+ <message>
+ <source>ReverbSend</source>
+ <translation>Wysyłka Pogłosu</translation>
+ </message>
+ <message>
+ <source>Rev</source>
+ <translation>Pogł.</translation>
+ </message>
+ <message>
+ <source>ChorusSend</source>
+ <translation>Wysyłka Chorusa</translation>
+ </message>
+ <message>
+ <source>Cho</source>
+ <translation>Chorus</translation>
+ </message>
+ <message>
+ <source>off</source>
+ <translation>Wył.</translation>
+ </message>
+ <message>
+ <source>dB</source>
+ <translation>dB</translation>
+ </message>
+ <message>
+ <source>Pan/Balance</source>
+ <translation>Pan/Równowaga</translation>
+ </message>
+ <message>
+ <source>Pan</source>
+ <translation>Pan</translation>
+ </message>
+ <message>
+ <source>record</source>
+ <translation>nagranie</translation>
+ </message>
+ <message>
+ <source>mute</source>
+ <translation>wycisz</translation>
+ </message>
+ <message>
+ <source>pre fader listening</source>
+ <translation>odsłuch przed tłumikiem</translation>
+ </message>
+ <message>
+ <source>Route</source>
+ <translation>Połącznie</translation>
+ </message>
+ <message>
+ <source>set routing</source>
+ <translation>Ustaw połączenie</translation>
+ </message>
+ <message>
+ <source>Off</source>
+ <translation>Wył.</translation>
+ </message>
+ <message>
+ <source>Read</source>
+ <translation>Czytaj</translation>
+ </message>
+ <message>
+ <source>Touch</source>
+ <translation>Dotknij</translation>
+ </message>
+ <message>
+ <source>Write</source>
+ <translation>Zapisz</translation>
+ </message>
+ <message>
+ <source>automation type</source>
+ <translation>typ automatyki</translation>
+ </message>
+</context>
+<context>
+ <name>MidiSyncConfigBase</name>
+ <message>
+ <source>MusE: Midi Sync</source>
+ <translation>MuzA: Synchronizacja Midi</translation>
+ </message>
+ <message>
+ <source>Apply</source>
+ <translation>Zastosuj</translation>
+ </message>
+ <message>
+ <source>Ok</source>
+ <translation>Akceptuj</translation>
+ </message>
+ <message>
+ <source>Cancel</source>
+ <translation>Anuluj</translation>
+ </message>
+ <message>
+ <source>hour</source>
+ <translation>godzina</translation>
+ </message>
+ <message>
+ <source>h</source>
+ <translation>godz.</translation>
+ </message>
+ <message>
+ <source>minute</source>
+ <translation>minuta</translation>
+ </message>
+ <message>
+ <source>m</source>
+ <translation>min.</translation>
+ </message>
+ <message>
+ <source>second</source>
+ <translation>sekunda</translation>
+ </message>
+ <message>
+ <source>s</source>
+ <translation>sek.</translation>
+ </message>
+ <message>
+ <source>frame</source>
+ <translation>ramka</translation>
+ </message>
+ <message>
+ <source>f</source>
+ <translation>r.</translation>
+ </message>
+ <message>
+ <source>subframe</source>
+ <translation>subramka</translation>
+ </message>
+ <message>
+ <source>24</source>
+ <translation>24</translation>
+ </message>
+ <message>
+ <source>25</source>
+ <translation>25</translation>
+ </message>
+ <message>
+ <source>30D</source>
+ <translation type="unfinished">30D</translation>
+ </message>
+ <message>
+ <source>30N</source>
+ <translation type="unfinished">30N</translation>
+ </message>
+ <message>
+ <source>Id:</source>
+ <translation>numer:</translation>
+ </message>
+ <message>
+ <source>device id</source>
+ <translation>numer urzÄ…dzenia</translation>
+ </message>
+ <message>
+ <source>Port:</source>
+ <translation>Port Midi</translation>
+ </message>
+ <message>
+ <source>midi port</source>
+ <translation>port midi</translation>
+ </message>
+ <message>
+ <source>Sync Source</source>
+ <translation>Źródło synchronizacji</translation>
+ </message>
+ <message>
+ <source>accept MTC</source>
+ <translation>akceptuj MTC</translation>
+ </message>
+ <message>
+ <source>accept Midi Clock</source>
+ <translation>akceptuj Zegar Midi</translation>
+ </message>
+ <message>
+ <source>accept MMC</source>
+ <translation>akceptuj MMC</translation>
+ </message>
+ <message>
+ <source>Sync Gen</source>
+ <translation>Generowanie synchronizacji</translation>
+ </message>
+ <message>
+ <source>Midi Time Code (MTC)</source>
+ <translation>Midi Time Code (MTC)</translation>
+ </message>
+ <message>
+ <source>Midi Clock</source>
+ <translation>Zegar Midi</translation>
+ </message>
+ <message>
+ <source>Midi Machine Control (MMC)</source>
+ <translation>Midi Machine Control (MMC)</translation>
+ </message>
+ <message>
+ <source>Sync Mode</source>
+ <translation>Rodzaj synchronizacji</translation>
+ </message>
+ <message>
+ <source>Master</source>
+ <translation>Urz. Nadrzędne (master)</translation>
+ </message>
+ <message>
+ <source>Slave</source>
+ <translation>Urz. PodporzÄ…dkowane (slave)</translation>
+ </message>
+ <message>
+ <source>all</source>
+ <translation>wszystkie</translation>
+ </message>
+ <message>
+ <source>MTC</source>
+ <translation>MTC</translation>
+ </message>
+ <message>
+ <source>Type:</source>
+ <translation>Typ:</translation>
+ </message>
+ <message>
+ <source>Offset:</source>
+ <translation>Offset:</translation>
+ </message>
+</context>
+<context>
+ <name>MidiTrackInfoBase</name>
+ <message>
+ <source>MusE: TrackInfo</source>
+ <translation>Info o śladzie</translation>
+ </message>
+ <message>
+ <source>output channel</source>
+ <translation>kanał wyjściowy</translation>
+ </message>
+ <message>
+ <source>all midi events are send to this output channel</source>
+ <translation>wszystkie komunikaty midi są przekierowane do tego kanału</translation>
+ </message>
+ <message>
+ <source>Track Info</source>
+ <translation>Info o śladzie</translation>
+ </message>
+ <message>
+ <source>%</source>
+ <translation>%</translation>
+ </message>
+ <message>
+ <source>Track Name</source>
+ <translation>Nazwa Åšladu</translation>
+ </message>
+ <message>
+ <source>output port</source>
+ <translation>port wyjściowy</translation>
+ </message>
+ <message>
+ <source>off</source>
+ <translation>Wył.</translation>
+ </message>
+ <message>
+ <source>change stereo position</source>
+ <translation>zmień panoramę</translation>
+ </message>
+ <message>
+ <source>OCh.</source>
+ <translation>Kanał Wyjść</translation>
+ </message>
+ <message>
+ <source>???</source>
+ <translation>???</translation>
+ </message>
+ <message>
+ <source>select instrument patch</source>
+ <translation type="unfinished">wybierz ustawienie instrumentu</translation>
+ </message>
+ <message>
+ <source>Transp.</source>
+ <translation>Transpozycja</translation>
+ </message>
+ <message>
+ <source>Volume</source>
+ <translation>Głośność</translation>
+ </message>
+ <message>
+ <source>Channel Info</source>
+ <translation>Info o kanale</translation>
+ </message>
+ <message>
+ <source>Pan</source>
+ <translation>Panorama</translation>
+ </message>
+ <message>
+ <source>Delay</source>
+ <translation>Opóźnienie</translation>
+ </message>
+ <message>
+ <source>H-Bank</source>
+ <translation type="unfinished">H-Bank</translation>
+ </message>
+ <message>
+ <source>Compr.</source>
+ <translation>Kompr.</translation>
+ </message>
+ <message>
+ <source>L-Bank</source>
+ <translation type="unfinished">L-Bank</translation>
+ </message>
+ <message>
+ <source>Progr.</source>
+ <translation>Nr programu</translation>
+ </message>
+ <message>
+ <source>Velocity</source>
+ <translation>Prędk. uderz. (vel)</translation>
+ </message>
+ <message>
+ <source>Length</source>
+ <translation>Długość</translation>
+ </message>
+ <message>
+ <source>input ports</source>
+ <translation>porty wejściowe</translation>
+ </message>
+ <message>
+ <source>IChan.</source>
+ <translation>Kanał Wejśc</translation>
+ </message>
+ <message>
+ <source>input channels</source>
+ <translation>kanały wejść.</translation>
+ </message>
+ <message>
+ <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>Elementy ze wszystkich kanałów dą nagrywane na ten ślad
+Możesz określić więcej niż jeden ślad do nagrywania:
+1 2 3 nagrywaj z kanału 1 2 i 3
+1-3 tak samo
+1-3-5 nagrywaj z kanału 1 2 3 i 5</translation>
+ </message>
+ <message>
+ <source>record:</source>
+ <translation>Nagraj:</translation>
+ </message>
+ <message>
+ <source>Rec</source>
+ <translation type="unfinished">Ustawienie</translation>
+ </message>
+ <message>
+ <source>add settings to song</source>
+ <translation>naciśnij w trakcie nagrywania aby zapisać na śladzie</translation>
+ </message>
+ <message>
+ <source>Bank Select LSB</source>
+ <translation>Wybierz Bank LSB</translation>
+ </message>
+ <message>
+ <source>Bank Select MSB</source>
+ <translation>Wybierz Bank MSB</translation>
+ </message>
+</context>
+<context>
+ <name>MidiTransformDialogBase</name>
+ <message>
+ <source>MusE: Midi Transformator</source>
+ <translation>MuzA: Midi Transformator</translation>
+ </message>
+ <message>
+ <source>&amp;New</source>
+ <translation>&amp;Nowy</translation>
+ </message>
+ <message>
+ <source>&amp;Delete</source>
+ <translation>&amp;Kasuj</translation>
+ </message>
+ <message>
+ <source>&amp;Apply</source>
+ <translation>&amp;Zastosuj</translation>
+ </message>
+ <message>
+ <source>&amp;OK</source>
+ <translation>&amp;Akceptuj</translation>
+ </message>
+ <message>
+ <source>&amp;Cancel</source>
+ <translation>&amp;Anuluj</translation>
+ </message>
+ <message>
+ <source>PresetList</source>
+ <translation>Lista Ustawień</translation>
+ </message>
+ <message>
+ <source>Processing</source>
+ <translation>Przetwarzanie</translation>
+ </message>
+ <message>
+ <source>Event Type</source>
+ <translation>Rodzaje komunikatów midi</translation>
+ </message>
+ <message>
+ <source>Keep</source>
+ <translation>Pozostaw</translation>
+ </message>
+ <message>
+ <source>Fix</source>
+ <translation>Ustal</translation>
+ </message>
+ <message>
+ <source>Note</source>
+ <translation>Dźwięki</translation>
+ </message>
+ <message>
+ <source>Poly Pressure</source>
+ <translation>Åšredni nacisk po uderzeniu</translation>
+ </message>
+ <message>
+ <source>Control Change</source>
+ <translation type="unfinished">Control Change</translation>
+ </message>
+ <message>
+ <source>Aftertouch</source>
+ <translation>Nacisk pod uderzeniu (aftertouch)</translation>
+ </message>
+ <message>
+ <source>Pitch Bend</source>
+ <translation type="unfinished">Odchylenie stroju (Pitch Bend)</translation>
+ </message>
+ <message>
+ <source>NRPN</source>
+ <translation type="unfinished">NRPN</translation>
+ </message>
+ <message>
+ <source>RPN</source>
+ <translation type="unfinished">RPN</translation>
+ </message>
+ <message>
+ <source>Plus</source>
+ <translation>Plus</translation>
+ </message>
+ <message>
+ <source>Minus</source>
+ <translation>Minus</translation>
+ </message>
+ <message>
+ <source>Multiply</source>
+ <translation>Przemnóż</translation>
+ </message>
+ <message>
+ <source>Divide</source>
+ <translation>Podziel</translation>
+ </message>
+ <message>
+ <source>Value 2</source>
+ <translation>Wartość 2</translation>
+ </message>
+ <message>
+ <source>Invert</source>
+ <translation>Odwróć</translation>
+ </message>
+ <message>
+ <source>ScaleMap</source>
+ <translation type="unfinished">Zakres Skali</translation>
+ </message>
+ <message>
+ <source>Flip</source>
+ <translation>Odwróć</translation>
+ </message>
+ <message>
+ <source>Dyn</source>
+ <translation type="unfinished">Dyn.</translation>
+ </message>
+ <message>
+ <source>Random</source>
+ <translation>Losowo</translation>
+ </message>
+ <message>
+ <source>Value 1</source>
+ <translation>Wartość 1</translation>
+ </message>
+ <message>
+ <source>Length</source>
+ <translation>Długość:</translation>
+ </message>
+ <message>
+ <source>Position</source>
+ <translation>Pozycja</translation>
+ </message>
+ <message>
+ <source>Filter</source>
+ <translation>Filtruj</translation>
+ </message>
+ <message>
+ <source>All</source>
+ <translation>Wszystko</translation>
+ </message>
+ <message>
+ <source>Equal</source>
+ <translation>Równe</translation>
+ </message>
+ <message>
+ <source>Unequal</source>
+ <translation>Nnierówne</translation>
+ </message>
+ <message>
+ <source>Ignore</source>
+ <translation>Ignoruj</translation>
+ </message>
+ <message>
+ <source>Higher</source>
+ <translation>Powyżej</translation>
+ </message>
+ <message>
+ <source>Lower</source>
+ <translation>Poniżej</translation>
+ </message>
+ <message>
+ <source>Inside</source>
+ <translation>Pomiędzy</translation>
+ </message>
+ <message>
+ <source>Outside</source>
+ <translation>Poza</translation>
+ </message>
+ <message>
+ <source>Bar Range</source>
+ <translation>Zakres Taktów</translation>
+ </message>
+ <message>
+ <source>Preset</source>
+ <translation>Ustawienie</translation>
+ </message>
+ <message>
+ <source>Name:</source>
+ <translation>Nazwa:</translation>
+ </message>
+ <message>
+ <source>Comment:</source>
+ <translation>Opis:</translation>
+ </message>
+ <message>
+ <source>Range</source>
+ <translation>Zakres</translation>
+ </message>
+ <message>
+ <source>process all events</source>
+ <translation>przetwórz wszystkie elementy</translation>
+ </message>
+ <message>
+ <source>selected tracks</source>
+ <translation>Zaznaczone ślady</translation>
+ </message>
+ <message>
+ <source>inside loop</source>
+ <translation>Pomiędzy lokatorami.</translation>
+ </message>
+ <message>
+ <source>Function</source>
+ <translation>Opcje</translation>
+ </message>
+ <message>
+ <source>Select</source>
+ <translation>Wybierz</translation>
+ </message>
+ <message>
+ <source>Quantize</source>
+ <translation>Kwantyzuj</translation>
+ </message>
+ <message>
+ <source>Delete</source>
+ <translation>Kasuj</translation>
+ </message>
+ <message>
+ <source>Transform</source>
+ <translation>przekształć</translation>
+ </message>
+ <message>
+ <source>Insert</source>
+ <translation>Wstaw</translation>
+ </message>
+ <message>
+ <source>Copy</source>
+ <translation>Kopiuj</translation>
+ </message>
+ <message>
+ <source>Extract</source>
+ <translation>Wydobądź</translation>
+ </message>
+ <message>
+ <source>Quantize Value</source>
+ <translation>Wartość kwantyzacji</translation>
+ </message>
+</context>
+<context>
+ <name>MidiTransformerDialog</name>
+ <message>
+ <source>New</source>
+ <translation>Nowy</translation>
+ </message>
+</context>
+<context>
+ <name>MixdownFileDialog</name>
+ <message>
+ <source>Wave Files (*.wav);;All Files (*)</source>
+ <translation>Pliki Wave (*.wav);;Wszystkie Pliki (*)</translation>
+ </message>
+</context>
+<context>
+ <name>MixdownFileDialogBase</name>
+ <message>
+ <source>MusE: Set Mixdown Wavefile</source>
+ <translation>MuzA: Ustaw miks do zgrania do pliku Wavefile</translation>
+ </message>
+ <message>
+ <source>&amp;OK</source>
+ <translation>&amp;Akceptuj</translation>
+ </message>
+ <message>
+ <source>&amp;Cancel</source>
+ <translation>&amp;Anuluj</translation>
+ </message>
+ <message>
+ <source>File Path</source>
+ <translation>Ścieżka do pliku</translation>
+ </message>
+ <message>
+ <source>Channel</source>
+ <translation>Ilość Kanałów</translation>
+ </message>
+ <message>
+ <source>Stereo</source>
+ <translation>Stereo</translation>
+ </message>
+ <message>
+ <source>Mono</source>
+ <translation>Mono</translation>
+ </message>
+ <message>
+ <source>5.1</source>
+ <translation>5.1</translation>
+ </message>
+ <message>
+ <source>wav,16 Bit</source>
+ <translation>wav, 16 Bitów</translation>
+ </message>
+ <message>
+ <source>wav, 24 Bit</source>
+ <translation>wav, 24 Bity</translation>
+ </message>
+ <message>
+ <source>wav, 32 Bit (float)</source>
+ <translation>wav, 32 Bity (float)</translation>
+ </message>
+ <message>
+ <source>Format</source>
+ <translation>Format</translation>
+ </message>
+</context>
+<context>
+ <name>Mixer</name>
+ <message>
+ <source>Port</source>
+ <translation type="obsolete">Port</translation>
+ </message>
+</context>
+<context>
+ <name>MusE</name>
+ <message>
+ <source>&amp;File</source>
+ <translation>&amp;Plik</translation>
+ </message>
+ <message>
+ <source>Open &amp;Recent</source>
+ <translation>Otwórz O&amp;statnie</translation>
+ </message>
+ <message>
+ <source>Save &amp;As</source>
+ <translation>Zapisz &amp;Jako</translation>
+ </message>
+ <message>
+ <source>Config &amp;Printer</source>
+ <translation type="obsolete">Druckerkonfiguration</translation>
+ </message>
+ <message>
+ <source>Import Midifile</source>
+ <translation>&amp;Import Pliku Midi</translation>
+ </message>
+ <message>
+ <source>Export Midifile</source>
+ <translation>&amp;Export do pliku midi</translation>
+ </message>
+ <message>
+ <source>Import Wave File</source>
+ <translation>Import Pliku &amp;Wave</translation>
+ </message>
+ <message>
+ <source>&amp;Quit</source>
+ <translation>&amp;Zakończ</translation>
+ </message>
+ <message>
+ <source>&amp;Edit</source>
+ <translation>&amp;Edycja</translation>
+ </message>
+ <message>
+ <source>C&amp;ut</source>
+ <translation>W&amp;ytnij</translation>
+ </message>
+ <message>
+ <source>&amp;Copy</source>
+ <translation>&amp;Kopiuj</translation>
+ </message>
+ <message>
+ <source>&amp;Paste</source>
+ <translation>&amp;Wklej</translation>
+ </message>
+ <message>
+ <source>Delete Track</source>
+ <translation type="obsolete">Spur Lschen</translation>
+ </message>
+ <message>
+ <source>Add Track</source>
+ <translation>Dodaj Åšlad</translation>
+ </message>
+ <message>
+ <source>Select &amp;All</source>
+ <translation>Zaznacz &amp;wszystko</translation>
+ </message>
+ <message>
+ <source>&amp;Deselect All</source>
+ <translation>&amp;Odznacz wszystko</translation>
+ </message>
+ <message>
+ <source>Invert &amp;Selection</source>
+ <translation>Odwróć &amp;zaznaczenie</translation>
+ </message>
+ <message>
+ <source>&amp;Inside Loop</source>
+ <translation>&amp;Pomiędzy lokatorami.</translation>
+ </message>
+ <message>
+ <source>&amp;Outside Loop</source>
+ <translation>&amp;Poza obrębem lokatorów</translation>
+ </message>
+ <message>
+ <source>All &amp;Parts on Track</source>
+ <translation>Wszystkie &amp;klocki na śladzie</translation>
+ </message>
+ <message>
+ <source>Select</source>
+ <translation>Zaznacz</translation>
+ </message>
+ <message>
+ <source>Drums</source>
+ <translation>Edytor Perkusji</translation>
+ </message>
+ <message>
+ <source>List</source>
+ <translation>Edytor Lista</translation>
+ </message>
+ <message>
+ <source>Graphic</source>
+ <translation>Edytor Graficzny Tempo/Metrum</translation>
+ </message>
+ <message>
+ <source>Mastertrack</source>
+ <translation>Åšlad Tempo/Metrum</translation>
+ </message>
+ <message>
+ <source>Midi &amp;Transform</source>
+ <translation>&amp;Przekształcanie Midi</translation>
+ </message>
+ <message>
+ <source>Modify Gate Time</source>
+ <translation>Modyfikuj Gate Time</translation>
+ </message>
+ <message>
+ <source>Modify Velocity</source>
+ <translation>Modifikuj predkość uderzenia (velocity)</translation>
+ </message>
+ <message>
+ <source>Crescendo</source>
+ <translation>Crescendo</translation>
+ </message>
+ <message>
+ <source>Transpose</source>
+ <translation>Transponuj</translation>
+ </message>
+ <message>
+ <source>Thin Out</source>
+ <translation>Decresendo</translation>
+ </message>
+ <message>
+ <source>Erase Event</source>
+ <translation>Skasuj Element</translation>
+ </message>
+ <message>
+ <source>Note Shift</source>
+ <translation>Przesunięcie Dźwięku</translation>
+ </message>
+ <message>
+ <source>Move Clock</source>
+ <translation>Przesuń licznik</translation>
+ </message>
+ <message>
+ <source>Copy Measure</source>
+ <translation>Kopiuj Takt</translation>
+ </message>
+ <message>
+ <source>Erase Measure</source>
+ <translation>Skasuj Takt</translation>
+ </message>
+ <message>
+ <source>Delete Measure</source>
+ <translation>Skasuj Takt</translation>
+ </message>
+ <message>
+ <source>Create Measure</source>
+ <translation>Twórz Takt</translation>
+ </message>
+ <message>
+ <source>Mix Track</source>
+ <translation>Zmiksuj Åšlad</translation>
+ </message>
+ <message>
+ <source>Midi</source>
+ <translation>Midi</translation>
+ </message>
+ <message>
+ <source>&amp;Structure</source>
+ <translation>&amp;Globalne</translation>
+ </message>
+ <message>
+ <source>Global Cut</source>
+ <translation>Globalne Wycięcie</translation>
+ </message>
+ <message>
+ <source>Global Insert</source>
+ <translation>Globalne Wstawienie</translation>
+ </message>
+ <message>
+ <source>Global Split</source>
+ <translation>Globalne Podzielenie</translation>
+ </message>
+ <message>
+ <source>Copy Range</source>
+ <translation>Kopiuj Zakres</translation>
+ </message>
+ <message>
+ <source>Cut Events</source>
+ <translation>Wytnij Elementy</translation>
+ </message>
+ <message>
+ <source>Transport Panel</source>
+ <translation>Panel transportu</translation>
+ </message>
+ <message>
+ <source>Bigtime window</source>
+ <translation>Duży Zegar</translation>
+ </message>
+ <message>
+ <source>dont follow Song</source>
+ <translation>nie podążaj za utworem</translation>
+ </message>
+ <message>
+ <source>follow page</source>
+ <translation>kursor siÄ™ przesuwa</translation>
+ </message>
+ <message>
+ <source>follow continuous</source>
+ <translation>takty siÄ™ przesuwajÄ… (kursor stoi)</translation>
+ </message>
+ <message>
+ <source>Global Settings</source>
+ <translation>Globalne Ustawienia</translation>
+ </message>
+ <message>
+ <source>follow song</source>
+ <translation>podążanie kursora za utworem</translation>
+ </message>
+ <message>
+ <source>Metronome</source>
+ <translation>Metronom</translation>
+ </message>
+ <message>
+ <source>Midi Sync</source>
+ <translation>Synchronizacja Midi</translation>
+ </message>
+ <message>
+ <source>Appearance settings</source>
+ <translation>Ustawienia wyglÄ…du</translation>
+ </message>
+ <message>
+ <source>Midi Input Transform</source>
+ <translation>Przekształcanie Wejścia Midi</translation>
+ </message>
+ <message>
+ <source>Midi Input Filter</source>
+ <translation>Filtr Wejścia Midi</translation>
+ </message>
+ <message>
+ <source>Midi Remote Control</source>
+ <translation>Zdalne Sterowanie Midi</translation>
+ </message>
+ <message>
+ <source>Random Rhythm Generator</source>
+ <translation>Losowy generator rytmu</translation>
+ </message>
+ <message>
+ <source>&amp;Midi</source>
+ <translation>&amp;Midi</translation>
+ </message>
+ <message>
+ <source>Mixer</source>
+ <translation>Mikser</translation>
+ </message>
+ <message>
+ <source>Input Plugins</source>
+ <translation>Wtyczki wejścia</translation>
+ </message>
+ <message>
+ <source>Reset Instr.</source>
+ <translation>Reset Instr.</translation>
+ </message>
+ <message>
+ <source>Init Instr.</source>
+ <translation type="unfinished">Inicjalizacja Instr.</translation>
+ </message>
+ <message>
+ <source>local off</source>
+ <translation type="unfinished">local off</translation>
+ </message>
+ <message>
+ <source>&amp;Audio</source>
+ <translation>&amp;Audio</translation>
+ </message>
+ <message>
+ <source>Bounce to Track</source>
+ <translation>
+Zgrywanie śladu (bounce)</translation>
+ </message>
+ <message>
+ <source>Bounce to File</source>
+ <translation>Zgrywanie do Pliku (bounce)</translation>
+ </message>
+ <message>
+ <source>&amp;Help</source>
+ <translation>P&amp;omoc</translation>
+ </message>
+ <message>
+ <source>Browser</source>
+ <translation type="obsolete">Browser</translation>
+ </message>
+ <message>
+ <source>About&amp;Qt</source>
+ <translation>Informacje o &amp;Qt</translation>
+ </message>
+ <message>
+ <source>MusE: load project</source>
+ <translation>MuzA: ładuj utwór</translation>
+ </message>
+ <message>
+ <source>The current Project contains unsaved data
+Save Current Project?</source>
+ <translation>Otwarty utwór zawiera niezapisane dane
+Zapisać otwarty utwór?</translation>
+ </message>
+ <message>
+ <source>&amp;Save</source>
+ <translation>&amp;Zapisz</translation>
+ </message>
+ <message>
+ <source>&amp;Nosave</source>
+ <translation>&amp;Nie zapisuj</translation>
+ </message>
+ <message>
+ <source>&amp;Abort</source>
+ <translation>&amp;Anuluj</translation>
+ </message>
+ <message>
+ <source>MusE: Save As</source>
+ <translation>MuzA: Zapisz Jako</translation>
+ </message>
+ <message>
+ <source>Nothing to edit</source>
+ <translation>Nie ma nic do edytowania</translation>
+ </message>
+ <message>
+ <source>The current Project contains unsaved data
+Load overwrites current Project:
+Save Current Project?</source>
+ <translation>Otwarty utwór zawiera niezapisane dane.
+Załadowanie nadpisze otwarty utwór:
+Zapisać otwarty utwór?</translation>
+ </message>
+ <message>
+ <source>&amp;Overwrite</source>
+ <translation>&amp;Nadpisz</translation>
+ </message>
+ <message>
+ <source>no help found at: </source>
+ <translation>nie znalezniono pomocy</translation>
+ </message>
+ <message>
+ <source>MusE: Open Help</source>
+ <translation>MuzA: Otwórz Pomoc</translation>
+ </message>
+ <message>
+ <source>UndoRedo</source>
+ <translation>CofnijPonów</translation>
+ </message>
+ <message>
+ <source>undo</source>
+ <translation>cofnij</translation>
+ </message>
+ <message>
+ <source>Und&amp;o</source>
+ <translation>Co&amp;fnij</translation>
+ </message>
+ <message>
+ <source>redo</source>
+ <translation>cofnij</translation>
+ </message>
+ <message>
+ <source>Re&amp;do</source>
+ <translation>Co&amp;fnij</translation>
+ </message>
+ <message>
+ <source>undo last change to song</source>
+ <translation>cofnij ostatniÄ… zmianÄ™ w utworze</translation>
+ </message>
+ <message>
+ <source>redo last undo</source>
+ <translation>ponów ostanie cofnij</translation>
+ </message>
+ <message>
+ <source>Transport</source>
+ <translation>Panel transportu</translation>
+ </message>
+ <message>
+ <source>loop</source>
+ <translation>pętla</translation>
+ </message>
+ <message>
+ <source>Loop</source>
+ <translation>Pętla</translation>
+ </message>
+ <message>
+ <source>punchin</source>
+ <translation>włącz wcinki (punch In)</translation>
+ </message>
+ <message>
+ <source>Punchin</source>
+ <translation>WÅ‚Ä…cz wcinki (punch In)</translation>
+ </message>
+ <message>
+ <source>punchout</source>
+ <translation>wył. wcinki (punch out)punchout</translation>
+ </message>
+ <message>
+ <source>Punchout</source>
+ <translation>Wył. wcinki (punch out)</translation>
+ </message>
+ <message>
+ <source>start</source>
+ <translation>PoczÄ…tek</translation>
+ </message>
+ <message>
+ <source>Start</source>
+ <translation>PoczÄ…tek</translation>
+ </message>
+ <message>
+ <source>rewind</source>
+ <translation>Przewiń do tyłu</translation>
+ </message>
+ <message>
+ <source>Rewind</source>
+ <translation>Przewiń do tyłu</translation>
+ </message>
+ <message>
+ <source>forward</source>
+ <translation>Przewiń do przodu</translation>
+ </message>
+ <message>
+ <source>Forward</source>
+ <translation>Przewiń do przodu</translation>
+ </message>
+ <message>
+ <source>stop</source>
+ <translation>Stop</translation>
+ </message>
+ <message>
+ <source>Stop</source>
+ <translation>Stop</translation>
+ </message>
+ <message>
+ <source>play</source>
+ <translation>Odtwarzaj</translation>
+ </message>
+ <message>
+ <source>Play</source>
+ <translation>Odtwarzanie</translation>
+ </message>
+ <message>
+ <source>record</source>
+ <translation>Nagrywaj</translation>
+ </message>
+ <message>
+ <source>Record</source>
+ <translation>Nagrywanie</translation>
+ </message>
+ <message>
+ <source>panic</source>
+ <translation>Zatrzymaj wszystkie komunikaty midi!</translation>
+ </message>
+ <message>
+ <source>Panic</source>
+ <translation>Zatrzymaj wszystkie komunikaty midi!</translation>
+ </message>
+ <message>
+ <source>new</source>
+ <translation>nowy</translation>
+ </message>
+ <message>
+ <source>&amp;New</source>
+ <translation>&amp;Nowy</translation>
+ </message>
+ <message>
+ <source>open</source>
+ <translation>otwórz</translation>
+ </message>
+ <message>
+ <source>&amp;Open</source>
+ <translation>&amp;Otwórz</translation>
+ </message>
+ <message>
+ <source>save</source>
+ <translation>Zapisz</translation>
+ </message>
+ <message>
+ <source>pianoroll</source>
+ <translation>Pianoroll</translation>
+ </message>
+ <message>
+ <source>Pianoroll</source>
+ <translation>Pianoroll</translation>
+ </message>
+ <message>
+ <source>marker</source>
+ <translation>znacznik</translation>
+ </message>
+ <message>
+ <source>Marker</source>
+ <translation>Edytor Znaczników</translation>
+ </message>
+ <message>
+ <source>File Buttons</source>
+ <translation>Przyciski Menu Plik</translation>
+ </message>
+ <message>
+ <source>Unknown File Format</source>
+ <translation>Nieznany Format Pliku</translation>
+ </message>
+ <message>
+ <source>MusE: Write File failed</source>
+ <translation>MuzA: Zapis pliku nie powiódł się</translation>
+ </message>
+ <message>
+ <source>MusE: Song: </source>
+ <translation type="unfinished">MuzA: Utwór</translation>
+ </message>
+ <message>
+ <source>MusE: Copy Range</source>
+ <translation>Kopiuj Zakres</translation>
+ </message>
+ <message>
+ <source>not implemented</source>
+ <translation>jeszcze nie wprowadzone</translation>
+ </message>
+ <message>
+ <source>MusE: Cut Events</source>
+ <translation>MuzA: Wytnij Elementy</translation>
+ </message>
+ <message>
+ <source>MusE: Bounce to Track</source>
+ <translation>MuzA: Zgrywanie (bounce) do Åšladu</translation>
+ </message>
+ <message>
+ <source>more than one target track selected</source>
+ <translation>więcej niż jeden docelowy ślad jest zaznaczony</translation>
+ </message>
+ <message>
+ <source>wrong target track type,
+select wave track as target</source>
+ <translation>zły typ śladu docelowego
+zaznacz ślad audio jako docelowy</translation>
+ </message>
+ <message>
+ <source>no target track selected</source>
+ <translation>nie zaznaczono żadnego śladu</translation>
+ </message>
+ <message>
+ <source>to import a audio file you have first to selecta wave track</source>
+ <translation>aby zaimpotować plik audio, najpierw zaznacz ślad audio</translation>
+ </message>
+ <message>
+ <source>Delete Selected Tracks</source>
+ <translation>Skasuj Zaznaczone Åšlady</translation>
+ </message>
+ <message>
+ <source>View</source>
+ <translation>&amp;Widok</translation>
+ </message>
+ <message>
+ <source>Edit Instrument</source>
+ <translation>Edytuj Instrument</translation>
+ </message>
+ <message>
+ <source>Restart Audio</source>
+ <translation>Zrestartuj Audio</translation>
+ </message>
+ <message>
+ <source>Automation</source>
+ <translation>Au&amp;tomatyka</translation>
+ </message>
+ <message>
+ <source>Mixer Automation</source>
+ <translation>Automatyka Miksera</translation>
+ </message>
+ <message>
+ <source>Take Snapshot</source>
+ <translation>Zrób zrzut ekranu</translation>
+ </message>
+ <message>
+ <source>Clear Automation Data</source>
+ <translation>Wyczyść automatykę</translation>
+ </message>
+ <message>
+ <source>Settings</source>
+ <translation>&amp;Ustawienia</translation>
+ </message>
+ <message>
+ <source>Configure shortcuts</source>
+ <translation>Konfiguracja skrótów</translation>
+ </message>
+ <message>
+ <source>Midi File Export</source>
+ <translation>Export do pliku midi</translation>
+ </message>
+ <message>
+ <source>Midi Ports / Soft Synth</source>
+ <translation>Porty Midi i Syntezatory Softowe</translation>
+ </message>
+ <message>
+ <source>&amp;Manual</source>
+ <translation>&amp;Instrukcja Obłsugi</translation>
+ </message>
+ <message>
+ <source>&amp;MusE homepage</source>
+ <translation>strona domowa &amp;MuzA</translation>
+ </message>
+ <message>
+ <source>&amp;Report Bug...</source>
+ <translation>&amp;Zgłoś Błąd...</translation>
+ </message>
+ <message>
+ <source>&amp;About MusE</source>
+ <translation>&amp;Informacje o programie</translation>
+ </message>
+ <message>
+ <source>What&apos;s &amp;This?</source>
+ <translation>Co &amp;To?</translation>
+ </message>
+ <message>
+ <source>Cannot read template</source>
+ <translation>Nie można odczytać pliku szablonu</translation>
+ </message>
+ <message>
+ <source>File open error</source>
+ <translation>BÅ‚Ä…d odczytu pliku</translation>
+ </message>
+ <message>
+ <source>File read error</source>
+ <translation>błąd odczytu pliku</translation>
+ </message>
+ <message>
+ <source>MusE: load template</source>
+ <translation>MuzA: Å‚aduj szablon</translation>
+ </message>
+ <message>
+ <source>MusE: Bounce</source>
+ <translation>MuzA: Zgrywanie (bounce)</translation>
+ </message>
+ <message>
+ <source>set left/right marker for bounce range</source>
+ <translation>ustaw lokatory do zgrania (bounce) danego zakresu</translation>
+ </message>
+ <message>
+ <source>MusE: Bounce to File</source>
+ <translation>MuzA: Zgrywanie (bounce) do Pliku</translation>
+ </message>
+ <message>
+ <source>no output track found</source>
+ <translation>nie znaleziono śladu wyjściowego</translation>
+ </message>
+ <message>
+ <source>MusE: Export Midi</source>
+ <translation>MuzA: Exportuj Midi</translation>
+ </message>
+ <message>
+ <source>MusE: Import Midi</source>
+ <translation>MuzA: Importuj Midi</translation>
+ </message>
+ <message>
+ <source>Add midi file to current project?
+</source>
+ <translation>Dodać plik midi do otwartego utworu?</translation>
+ </message>
+ <message>
+ <source>&amp;Add to Project</source>
+ <translation>&amp;Dodaj do utworu</translation>
+ </message>
+ <message>
+ <source>&amp;Replace</source>
+ <translation>&amp;ZastÄ…p</translation>
+ </message>
+ <message>
+ <source>reading midifile
+ </source>
+ <translation>czytanie pliku midi</translation>
+ </message>
+ <message>
+ <source>
+failed: </source>
+ <translation>nie powiodło się</translation>
+ </message>
+</context>
+<context>
+ <name>NoteInfo</name>
+ <message>
+ <source>Start</source>
+ <translation>Pozycja</translation>
+ </message>
+ <message>
+ <source>Len</source>
+ <translation>Długość</translation>
+ </message>
+ <message>
+ <source>Pitch</source>
+ <translation>Wysokość dźwięku</translation>
+ </message>
+ <message>
+ <source>Velo On</source>
+ <translation>Prędk. uderz.</translation>
+ </message>
+ <message>
+ <source>Velo Off</source>
+ <translation>Prędk. puszcz.</translation>
+ </message>
+ <message>
+ <source>Note Info</source>
+ <translation>Info o dźwięku</translation>
+ </message>
+</context>
+<context>
+ <name>PageSettings</name>
+ <message>
+ <source>Track Name</source>
+ <translation type="obsolete">Spur Name</translation>
+ </message>
+</context>
+<context>
+ <name>PartCanvas</name>
+ <message>
+ <source>C&amp;ut</source>
+ <translation>&amp;Wytnij</translation>
+ </message>
+ <message>
+ <source>&amp;Copy</source>
+ <translation>&amp;Kopiuj</translation>
+ </message>
+ <message>
+ <source>rename</source>
+ <translation>zmień nazwę</translation>
+ </message>
+ <message>
+ <source>delete</source>
+ <translation>kasuj</translation>
+ </message>
+ <message>
+ <source>split</source>
+ <translation>podziel</translation>
+ </message>
+ <message>
+ <source>glue</source>
+ <translation>sklej</translation>
+ </message>
+ <message>
+ <source>pianoroll</source>
+ <translation>pianoroll</translation>
+ </message>
+ <message>
+ <source>list</source>
+ <translation>edytor lista </translation>
+ </message>
+ <message>
+ <source>drums</source>
+ <translation>edytor perkusja</translation>
+ </message>
+ <message>
+ <source>Cannot copy/move/clone to different Track-Type</source>
+ <translation>Nie można skopiować/przenieść/sklonować do innego typu śladu</translation>
+ </message>
+ <message>
+ <source>color</source>
+ <translation>kolor</translation>
+ </message>
+ <message>
+ <source>de-clone</source>
+ <translation type="unfinished">sklonuj</translation>
+ </message>
+ <message>
+ <source>wave edit</source>
+ <translation>edycja audio</translation>
+ </message>
+ <message>
+ <source>Cannot paste: multiple tracks selected</source>
+ <translation>Nie można wkleić: zaznaczono kilka śladów</translation>
+ </message>
+ <message>
+ <source>Cannot paste: no track selected</source>
+ <translation>Nie można wkleić: nie zaznaczono żadnych śladów</translation>
+ </message>
+ <message>
+ <source>Cannot paste: wrong data type</source>
+ <translation>Nie można wkleić: nieprawidłowy typ danych</translation>
+ </message>
+ <message>
+ <source>Can only paste to midi/drum track</source>
+ <translation>Można tylko wkleić do śladu midi, lub perkusji</translation>
+ </message>
+ <message>
+ <source>Can only paste to wave track</source>
+ <translation>Można wkleić tylko do śladu audio</translation>
+ </message>
+</context>
+<context>
+ <name>PatchBay</name>
+ <message>
+ <source>MusE: ALSA MIDI Patch Bay</source>
+ <translation>MuzA: krosownica ALSA MIDI </translation>
+ </message>
+</context>
+<context>
+ <name>PatchBayBase</name>
+ <message>
+ <source>ALSA Patch Bay</source>
+ <translation>krosownica ALSA</translation>
+ </message>
+</context>
+<context>
+ <name>PianoRoll</name>
+ <message>
+ <source>&amp;Edit</source>
+ <translation>&amp;Edycja</translation>
+ </message>
+ <message>
+ <source>Cut</source>
+ <translation>Wytnij</translation>
+ </message>
+ <message>
+ <source>Copy</source>
+ <translation>Kopiuj</translation>
+ </message>
+ <message>
+ <source>Paste</source>
+ <translation>Wklej</translation>
+ </message>
+ <message>
+ <source>Delete Events</source>
+ <translation>Kasuj Elementy</translation>
+ </message>
+ <message>
+ <source>Select All</source>
+ <translation>Zaznacz wszystko</translation>
+ </message>
+ <message>
+ <source>Select None</source>
+ <translation>Bez zaznaczenia</translation>
+ </message>
+ <message>
+ <source>Invert</source>
+ <translation>Odwróć zaznaczenie</translation>
+ </message>
+ <message>
+ <source>Inside Loop</source>
+ <translation>Pomiędzy lokatorami.</translation>
+ </message>
+ <message>
+ <source>Outside Loop</source>
+ <translation>Poza obrębem lokatorów</translation>
+ </message>
+ <message>
+ <source>&amp;Select</source>
+ <translation>&amp;Zaznacz</translation>
+ </message>
+ <message>
+ <source>blue</source>
+ <translation>niebieski</translation>
+ </message>
+ <message>
+ <source>pitch colors</source>
+ <translation>kolory wysokości dźwięków</translation>
+ </message>
+ <message>
+ <source>velocity colors</source>
+ <translation>kolory predkości uderzenia (velocity)</translation>
+ </message>
+ <message>
+ <source>&amp;Config</source>
+ <translation>&amp;Konfiguracja</translation>
+ </message>
+ <message>
+ <source>event color</source>
+ <translation>kolor elementu</translation>
+ </message>
+ <message>
+ <source>&amp;Functions</source>
+ <translation>&amp;Opcje</translation>
+ </message>
+ <message>
+ <source>Over Quantize</source>
+ <translation>Inteligentna kwantyzacja do najbliższej dozw. poz. (w tym samym kierunku)</translation>
+ </message>
+ <message>
+ <source>Note On Quantize</source>
+ <translation>Kwantyzacja do najbl. dozwolonej pozycji</translation>
+ </message>
+ <message>
+ <source>Note On/Off Quantize</source>
+ <translation>Kwantyzacja pocz i końca dźwięku</translation>
+ </message>
+ <message>
+ <source>Iterative Quantize</source>
+ <translation>Przesuwana Kwantyzacja</translation>
+ </message>
+ <message>
+ <source>Pianoroll Tools</source>
+ <translation>Narzędzia Pianoroll</translation>
+ </message>
+ <message>
+ <source>Step Record</source>
+ <translation>Nagrywanie krok po kroku</translation>
+ </message>
+ <message>
+ <source>Midi Input</source>
+ <translation>Wejście Midi</translation>
+ </message>
+ <message>
+ <source>Play Events</source>
+ <translation>PodglÄ…d midi</translation>
+ </message>
+ <message>
+ <source>Add Controller View</source>
+ <translation>Dodaj wykres kontorolera</translation>
+ </message>
+ <message>
+ <source>Config Quant...</source>
+ <translation>Konfiguruj kwantyzacjÄ™</translation>
+ </message>
+ <message>
+ <source>Modify Gate Time</source>
+ <translation>Modyfikuj czas bramki</translation>
+ </message>
+ <message>
+ <source>Modify Velocity</source>
+ <translation>Modyfikuj predkość uderzenia (velocity)</translation>
+ </message>
+ <message>
+ <source>Crescendo</source>
+ <translation>Crescendo</translation>
+ </message>
+ <message>
+ <source>Transpose</source>
+ <translation>Transponuj</translation>
+ </message>
+ <message>
+ <source>Thin Out</source>
+ <translation>Decresendo</translation>
+ </message>
+ <message>
+ <source>Erase Event</source>
+ <translation>Skasuj element</translation>
+ </message>
+ <message>
+ <source>Note Shift</source>
+ <translation>Przesuń dźwięk</translation>
+ </message>
+ <message>
+ <source>Move Clock</source>
+ <translation>Przesuń zegar</translation>
+ </message>
+ <message>
+ <source>Copy Measure</source>
+ <translation>Kopiuj takt</translation>
+ </message>
+ <message>
+ <source>Erase Measure</source>
+ <translation>Wyczyść takt</translation>
+ </message>
+ <message>
+ <source>Delete Measure</source>
+ <translation>Kasuj takt</translation>
+ </message>
+ <message>
+ <source>Create Measure</source>
+ <translation>Stwórz takt</translation>
+ </message>
+ <message>
+ <source>ctrl</source>
+ <translation>kontr.</translation>
+ </message>
+</context>
+<context>
+ <name>PluginDialog</name>
+ <message>
+ <source>Ok</source>
+ <translation>Akceptuj</translation>
+ </message>
+ <message>
+ <source>Cancel</source>
+ <translation>Anuluj</translation>
+ </message>
+ <message>
+ <source>MusE: select plugin</source>
+ <translation>MuzA: wybierz wtyczkÄ™</translation>
+ </message>
+ <message>
+ <source>Lib</source>
+ <translation type="unfinished">Bibl.</translation>
+ </message>
+ <message>
+ <source>Label</source>
+ <translation>Etykieta</translation>
+ </message>
+ <message>
+ <source>Name</source>
+ <translation>Nazwa</translation>
+ </message>
+ <message>
+ <source>AI</source>
+ <translation type="unfinished">AI</translation>
+ </message>
+ <message>
+ <source>AO</source>
+ <translation type="unfinished">AO</translation>
+ </message>
+ <message>
+ <source>CI</source>
+ <translation type="unfinished">CI</translation>
+ </message>
+ <message>
+ <source>CO</source>
+ <translation type="unfinished">CO</translation>
+ </message>
+ <message>
+ <source>IP</source>
+ <translation type="unfinished">IP</translation>
+ </message>
+ <message>
+ <source>id</source>
+ <translation>numer</translation>
+ </message>
+ <message>
+ <source>Maker</source>
+ <translation>Znacznik</translation>
+ </message>
+ <message>
+ <source>Copyright</source>
+ <translation>Prawa autorskie</translation>
+ </message>
+ <message>
+ <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="unfinished">Wybierz, które wtyczki mają być widoczne na liście, zwróć uwagę, że nie wszysktie mogą być używane przez MuzA.</translation>
+ </message>
+ <message>
+ <source>Stereo and Mono</source>
+ <translation>Stereo i Mono</translation>
+ </message>
+ <message>
+ <source>Stereo</source>
+ <translation>Stereo</translation>
+ </message>
+ <message>
+ <source>Mono</source>
+ <translation>Mono</translation>
+ </message>
+ <message>
+ <source>All</source>
+ <translation>Wszystko</translation>
+ </message>
+</context>
+<context>
+ <name>PluginGui</name>
+ <message>
+ <source>bypass plugin</source>
+ <translation>omiń wtyczkę (bypass)</translation>
+ </message>
+ <message>
+ <source>MusE: load preset</source>
+ <translation>MuzA: załaduj ustawienie</translation>
+ </message>
+ <message>
+ <source>MusE: save preset</source>
+ <translation>MuzA: zapisz ustawienie</translation>
+ </message>
+ <message>
+ <source>File Buttons</source>
+ <translation>Przyciski Menu Plik</translation>
+ </message>
+ <message>
+ <source>Load Preset</source>
+ <translation>Załaduj Ustawienie</translation>
+ </message>
+ <message>
+ <source>Save Preset</source>
+ <translation>Zapisz ustawienie</translation>
+ </message>
+</context>
+<context>
+ <name>QHeader</name>
+ <message>
+ <source>Port Number</source>
+ <translation>Numer portu</translation>
+ </message>
+ <message>
+ <source>enable gui for device</source>
+ <translation>Udostępnij interfejs dla urządzenia</translation>
+ </message>
+ <message>
+ <source>Instrument connected to port</source>
+ <translation>Instrument połączony do portu</translation>
+ </message>
+ <message>
+ <source>State: result of opening the device</source>
+ <translation>Status: rezultat otworzenia urzÄ…dzenia</translation>
+ </message>
+ <message>
+ <source>mute instrument</source>
+ <translation>wyłącz instrument</translation>
+ </message>
+ <message>
+ <source>sound name</source>
+ <translation>nazwa brzmienia</translation>
+ </message>
+ <message>
+ <source>quantisation
+currently not used</source>
+ <translation>kwantyzacja nie jest aktualnie używana</translation>
+ </message>
+ <message>
+ <source>this input note triggers the sound</source>
+ <translation>ta wysokość uruchamia brzmienie</translation>
+ </message>
+ <message>
+ <source>note length</source>
+ <translation>długość dźwięku</translation>
+ </message>
+ <message>
+ <source>this note is send for the sound</source>
+ <translation>ta wysokość jest wysłana do brzmienia</translation>
+ </message>
+ <message>
+ <source>output channel
+currently not used</source>
+ <translation>kanał wyjściowy jest aktualnie nie używany</translation>
+ </message>
+ <message>
+ <source>output port
+currently not used</source>
+ <translation>port wyjściowy jest aktualnie nie używany</translation>
+ </message>
+ <message>
+ <source>velocity level 1</source>
+ <translation>poziom predkości uderzenia (velocity) 1</translation>
+ </message>
+ <message>
+ <source>velocity level 2</source>
+ <translation>poziom predkości uderzenia (velocity) 2</translation>
+ </message>
+ <message>
+ <source>velocity level 3</source>
+ <translation>poziom predkości uderzenia (velocity) 3</translation>
+ </message>
+ <message>
+ <source>velocity level 4</source>
+ <translation>poziom predkości uderzenia (velocity) 4</translation>
+ </message>
+ <message>
+ <source>quantisation</source>
+ <translation>kwantyzacja</translation>
+ </message>
+ <message>
+ <source>output channel</source>
+ <translation>kanał wyjściowy</translation>
+ </message>
+ <message>
+ <source>output port</source>
+ <translation>port wyjściowy</translation>
+ </message>
+ <message>
+ <source>Enable Recording</source>
+ <translation>Udostępnij nagrywanie</translation>
+ </message>
+ <message>
+ <source>Mute Indicator</source>
+ <translation>Wyłącz wzkaźnik</translation>
+ </message>
+ <message>
+ <source>Solo Indicator</source>
+ <translation>Solo Wzkaźnik</translation>
+ </message>
+ <message>
+ <source>Track Type</source>
+ <translation>Typ śladu</translation>
+ </message>
+ <message>
+ <source>Track Name</source>
+ <translation>Nazwa śladu</translation>
+ </message>
+ <message>
+ <source>Output Channel Number</source>
+ <translation>Numer kanału wyjściowego</translation>
+ </message>
+ <message>
+ <source>Output Port</source>
+ <translation>Port wyjsciowy</translation>
+ </message>
+ <message>
+ <source>Time Lock</source>
+ <translation>Zablokuj Åšlad</translation>
+ </message>
+ <message>
+ <source>Solo/Pre Fader Listening</source>
+ <translation>Solo/ Odsłuch przed tłumikiem</translation>
+ </message>
+ <message>
+ <source>Name of the midi device associated with this port number</source>
+ <translation>Nazwa urzÄ…dzenia midi skojarzona z tym numerem portu</translation>
+ </message>
+ <message>
+ <source>enables reading from device</source>
+ <translation>Pozwala na odczyt z urzÄ…dzenia</translation>
+ </message>
+ <message>
+ <source>enables writing to device</source>
+ <translation>Pozwala na zapis do urzÄ…dzenia</translation>
+ </message>
+</context>
+<context>
+ <name>QWidget</name>
+ <message>
+ <source>Cannot convert sysex string</source>
+ <translation type="unfinished">Nie można przekonwertować łańcucha sysex</translation>
+ </message>
+ <message>
+ <source>Hex String too long (2048 bytes limit)</source>
+ <translation type="unfinished">ÅaÅ„cuch Hex za dÅ‚ugi (limit 2048 bajtów)</translation>
+ </message>
+ <message>
+ <source>new</source>
+ <translation>nowy</translation>
+ </message>
+ <message>
+ <source>create peakfile for </source>
+ <translation type="unfinished">stwórz plik szczytu dla</translation>
+ </message>
+ <message>
+ <source>MusE: get file name</source>
+ <translation>MuzA: weź nazwę pliku</translation>
+ </message>
+ <message>
+ <source>the directory
+</source>
+ <translation>katalog</translation>
+ </message>
+ <message>
+ <source>
+does not exist
+create?</source>
+ <translation>nie istnieje
+utworzyć?</translation>
+ </message>
+ <message>
+ <source>&amp;Create</source>
+ <translation>&amp;Twórz</translation>
+ </message>
+ <message>
+ <source>Cancel</source>
+ <translation>Anuluj</translation>
+ </message>
+ <message>
+ <source>MusE: create directory</source>
+ <translation>MuzA: utwórz katalog</translation>
+ </message>
+ <message>
+ <source>creating dir failed</source>
+ <translation>tworzenie katalogu nie powiodło się</translation>
+ </message>
+ <message>
+ <source>File
+</source>
+ <translation>Plik</translation>
+ </message>
+ <message>
+ <source>
+exists</source>
+ <translation>istnieje</translation>
+ </message>
+ <message>
+ <source>MusE: write</source>
+ <translation type="unfinished">MuzA: zapis:</translation>
+ </message>
+ <message>
+ <source>Overwrite</source>
+ <translation>Nadpisz</translation>
+ </message>
+ <message>
+ <source>Quit</source>
+ <translation>Wyjdź</translation>
+ </message>
+ <message>
+ <source>Open File
+</source>
+ <translation>Otwórz plik</translation>
+ </message>
+ <message>
+ <source>
+failed: </source>
+ <translation>nie udane</translation>
+ </message>
+ <message>
+ <source>MusE: Open File</source>
+ <translation>MuzA: Otwórz plik</translation>
+ </message>
+ <message>
+ <source>None</source>
+ <translation>Brak</translation>
+ </message>
+ <message>
+ <source>generic midi</source>
+ <translation>generyczne midi</translation>
+ </message>
+</context>
+<context>
+ <name>QuantConfig</name>
+ <message>
+ <source>Config Quantize</source>
+ <translation>Konfiguruj KwantyzacjÄ™</translation>
+ </message>
+ <message>
+ <source>Strength</source>
+ <translation>Siła</translation>
+ </message>
+ <message>
+ <source>Don&#xb4;t Quantize</source>
+ <translation>Nie kwantyzuj</translation>
+ </message>
+ <message>
+ <source>Quant Len</source>
+ <translation>Wartość kwantyzacji</translation>
+ </message>
+ <message>
+ <source>MusE: Config Quantize</source>
+ <translation>MuzA: Konfiguracja kwantyzacji</translation>
+ </message>
+</context>
+<context>
+ <name>RhythmBase</name>
+ <message>
+ <source>MusE: Random Rhythm Generator</source>
+ <translation>MuzA: Generator Losowego Rytmu</translation>
+ </message>
+ <message>
+ <source>Instrument Properties</source>
+ <translation>Właściwości Instrumentu</translation>
+ </message>
+ <message>
+ <source>counts/bar</source>
+ <translation>ilość taktów</translation>
+ </message>
+ <message>
+ <source>steps/count</source>
+ <translation>ilość kroków</translation>
+ </message>
+ <message>
+ <source># bars</source>
+ <translation># takty</translation>
+ </message>
+ <message>
+ <source>test</source>
+ <translation type="unfinished">test</translation>
+ </message>
+ <message>
+ <source>contrib</source>
+ <translation type="unfinished">contrib</translation>
+ </message>
+ <message>
+ <source>randomize</source>
+ <translation>ustaw w przypadkowej kolejności</translation>
+ </message>
+ <message>
+ <source>Group 1</source>
+ <translation>Grupa 1</translation>
+ </message>
+ <message>
+ <source>Group 2</source>
+ <translation>Grupa 2</translation>
+ </message>
+ <message>
+ <source>Group 3</source>
+ <translation>Grupa 3</translation>
+ </message>
+ <message>
+ <source>Group 4</source>
+ <translation>Grupa 4</translation>
+ </message>
+ <message>
+ <source>Group 5</source>
+ <translation>Grupa 5</translation>
+ </message>
+ <message>
+ <source>listen</source>
+ <translation>słuchaj</translation>
+ </message>
+ <message>
+ <source>Instrument</source>
+ <translation>Instrument</translation>
+ </message>
+ <message>
+ <source>Group</source>
+ <translation>Grupa</translation>
+ </message>
+ <message>
+ <source>&amp;New</source>
+ <translation>&amp;Nowy</translation>
+ </message>
+ <message>
+ <source>create new entry</source>
+ <translation>stwórz nowy wpis</translation>
+ </message>
+ <message>
+ <source>pressing the New button you create a new entry
+in the MusE list of defined controllers</source>
+ <translation>naciśnij przycisk Nowy aby utworzyć wpis na lisćie zdefiniowanych kontrolerów </translation>
+ </message>
+ <message>
+ <source>&amp;Delete</source>
+ <translation>&amp;Kasuj</translation>
+ </message>
+ <message>
+ <source>delete selected entry</source>
+ <translation>kasuj zaznaczone elementy</translation>
+ </message>
+ <message>
+ <source>Up</source>
+ <translation>W góre</translation>
+ </message>
+ <message>
+ <source>Down</source>
+ <translation>W dół </translation>
+ </message>
+ <message>
+ <source>Instrument </source>
+ <translation>Instrument</translation>
+ </message>
+ <message>
+ <source>steps/count </source>
+ <translation type="unfinished">kroki/liczy</translation>
+ </message>
+ <message>
+ <source>list of defined controllers</source>
+ <translation>Lista zdefiniowanych kontrolerów</translation>
+ </message>
+ <message>
+ <source>This is the MusE list of defined controllers.</source>
+ <translation>To jest lista MuzA zdefiniowanych midi kontrolerów.</translation>
+ </message>
+ <message>
+ <source>&amp;File</source>
+ <translation>&amp;Plik</translation>
+ </message>
+ <message>
+ <source>&amp;Edit</source>
+ <translation>&amp;Edytuj</translation>
+ </message>
+ <message>
+ <source>&amp;Help</source>
+ <translation>P&amp;omoc</translation>
+ </message>
+ <message>
+ <source>Tools</source>
+ <translation>Narzędzia</translation>
+ </message>
+ <message>
+ <source>New</source>
+ <translation>Nowy</translation>
+ </message>
+ <message>
+ <source>Open</source>
+ <translation>Otwórz</translation>
+ </message>
+ <message>
+ <source>&amp;Open...</source>
+ <translation>&amp;Otwórz...</translation>
+ </message>
+ <message>
+ <source>Save</source>
+ <translation>Zapisz</translation>
+ </message>
+ <message>
+ <source>&amp;Save</source>
+ <translation>&amp;Zapisz</translation>
+ </message>
+ <message>
+ <source>Save As</source>
+ <translation>Zapisz jako</translation>
+ </message>
+ <message>
+ <source>Save &amp;As...</source>
+ <translation>Zapisz &amp;Jako...</translation>
+ </message>
+ <message>
+ <source>Print</source>
+ <translation>Drukuj</translation>
+ </message>
+ <message>
+ <source>&amp;Print...</source>
+ <translation>&amp;Drukuj</translation>
+ </message>
+ <message>
+ <source>Exit</source>
+ <translation>Zakończ</translation>
+ </message>
+ <message>
+ <source>E&amp;xit</source>
+ <translation>&amp;Zakończ</translation>
+ </message>
+ <message>
+ <source>Undo</source>
+ <translation>Cofnij</translation>
+ </message>
+ <message>
+ <source>&amp;Undo</source>
+ <translation>&amp;Cofnij</translation>
+ </message>
+ <message>
+ <source>Redo</source>
+ <translation>Ponów</translation>
+ </message>
+ <message>
+ <source>&amp;Redo</source>
+ <translation>&amp;Ponów</translation>
+ </message>
+ <message>
+ <source>Cut</source>
+ <translation>Wytnij</translation>
+ </message>
+ <message>
+ <source>&amp;Cut</source>
+ <translation>&amp;Wytnij</translation>
+ </message>
+ <message>
+ <source>Copy</source>
+ <translation>Kopiuj</translation>
+ </message>
+ <message>
+ <source>C&amp;opy</source>
+ <translation>&amp;Kopiuj</translation>
+ </message>
+ <message>
+ <source>Paste</source>
+ <translation>Wklej</translation>
+ </message>
+ <message>
+ <source>&amp;Paste</source>
+ <translation>&amp;Wklej</translation>
+ </message>
+ <message>
+ <source>Find</source>
+ <translation>Szukaj</translation>
+ </message>
+ <message>
+ <source>&amp;Find...</source>
+ <translation>&amp;Szukaj</translation>
+ </message>
+ <message>
+ <source>Contents</source>
+ <translation>Spis treści</translation>
+ </message>
+ <message>
+ <source>&amp;Contents...</source>
+ <translation>&amp;Spis treści</translation>
+ </message>
+ <message>
+ <source>Index</source>
+ <translation>Indeks</translation>
+ </message>
+ <message>
+ <source>&amp;Index...</source>
+ <translation>&amp;Indeks</translation>
+ </message>
+ <message>
+ <source>About</source>
+ <translation>O programie</translation>
+ </message>
+ <message>
+ <source>&amp;About...</source>
+ <translation>&amp;O programie</translation>
+ </message>
+ <message>
+ <source>&lt;b&gt;Notice!&lt;/b&gt;&lt;br&gt;
+Random Rhythm Generator is not enabled yet!</source>
+ <translation>&lt;b&gt;Zauważ!&lt;/b&gt;&lt;br&gt;
+Losowy Generator Rytmu jeszcze nie jest udostępniony!</translation>
+ </message>
+ <message>
+ <source>Ctrl+N</source>
+ <translation>Ctrl+N</translation>
+ </message>
+ <message>
+ <source>Ctrl+O</source>
+ <translation>Ctrl+O</translation>
+ </message>
+ <message>
+ <source>Ctrl+S</source>
+ <translation>Ctrl+S</translation>
+ </message>
+ <message>
+ <source>Ctrl+P</source>
+ <translation>Ctrl+P</translation>
+ </message>
+ <message>
+ <source>Ctrl+Z</source>
+ <translation>Ctrl+Z</translation>
+ </message>
+ <message>
+ <source>Ctrl+Y</source>
+ <translation>Ctrl+Y</translation>
+ </message>
+ <message>
+ <source>Ctrl+X</source>
+ <translation>Ctrl+X</translation>
+ </message>
+ <message>
+ <source>Ctrl+C</source>
+ <translation>Ctrl+C</translation>
+ </message>
+ <message>
+ <source>Ctrl+V</source>
+ <translation>Ctrl+V</translation>
+ </message>
+ <message>
+ <source>Ctrl+F</source>
+ <translation>Ctrl+F</translation>
+ </message>
+</context>
+<context>
+ <name>RhythmGenerator</name>
+ <message>
+ <source>Instrument Settings:</source>
+ <translation type="obsolete">Instrument Einstellungen</translation>
+ </message>
+ <message>
+ <source>add</source>
+ <translation type="obsolete">Zufgen</translation>
+ </message>
+ <message>
+ <source>delete</source>
+ <translation type="obsolete">Entfernen</translation>
+ </message>
+ <message>
+ <source>Group</source>
+ <translation type="obsolete">Gruppe</translation>
+ </message>
+ <message>
+ <source></source>
+ <translation></translation>
+ </message>
+</context>
+<context>
+ <name>RouteDialogBase</name>
+ <message>
+ <source>MusE: Routing</source>
+ <translation>MuzA: Konfiguracja połączeń</translation>
+ </message>
+ <message>
+ <source>Add Route</source>
+ <translation>Dodaj połączenie</translation>
+ </message>
+ <message>
+ <source>Source:</source>
+ <translation>Źródło:</translation>
+ </message>
+ <message>
+ <source>Destination:</source>
+ <translation>Odbiornik:</translation>
+ </message>
+ <message>
+ <source>Connect</source>
+ <translation>Połącz</translation>
+ </message>
+ <message>
+ <source>connect source to destination</source>
+ <translation>połącz źródło do odbiornika</translation>
+ </message>
+ <message>
+ <source>Current Routes</source>
+ <translation>Aktualne połączenia</translation>
+ </message>
+ <message>
+ <source>Source</source>
+ <translation>Źródło</translation>
+ </message>
+ <message>
+ <source>Destination</source>
+ <translation>Odbiornik</translation>
+ </message>
+ <message>
+ <source>Remove</source>
+ <translation>Usuń</translation>
+ </message>
+ <message>
+ <source>remove selected route</source>
+ <translation>Usuń wybrane połączenie</translation>
+ </message>
+</context>
+<context>
+ <name>ScrollScale</name>
+ <message>
+ <source>next page</source>
+ <translation>następna strona</translation>
+ </message>
+ <message>
+ <source>previous page</source>
+ <translation>poprzednia strona</translation>
+ </message>
+ <message>
+ <source>current page number</source>
+ <translation>aktualny numer strony</translation>
+ </message>
+</context>
+<context>
+ <name>ShortcutCaptureDialogBase</name>
+ <message>
+ <source>Enter shortcut sequence</source>
+ <translation>Wprowadź skrót - kominację klawiszy </translation>
+ </message>
+ <message>
+ <source>Press keys to enter shortcut sequence!</source>
+ <translation>Naciśnij kombinację klawiszy by wprowadzić skrót!</translation>
+ </message>
+ <message>
+ <source>Old shortcut:</source>
+ <translation>Stary skrót</translation>
+ </message>
+ <message>
+ <source>Undefined</source>
+ <translation>Niezdefiniowany</translation>
+ </message>
+ <message>
+ <source>New shortcut:</source>
+ <translation>Nowy skrót</translation>
+ </message>
+ <message>
+ <source>OK</source>
+ <translation>Akceptuj</translation>
+ </message>
+ <message>
+ <source>Cancel</source>
+ <translation>Anuluj</translation>
+ </message>
+</context>
+<context>
+ <name>ShortcutConfigBase</name>
+ <message>
+ <source>Configure Keyboard Shortcuts</source>
+ <translation>Konfiguruj Skróty Klawiaturowe</translation>
+ </message>
+ <message>
+ <source>Shortcut Category</source>
+ <translation>Kategoria Skrótu</translation>
+ </message>
+ <message>
+ <source>Description</source>
+ <translation>Opis</translation>
+ </message>
+ <message>
+ <source>Shortcut</source>
+ <translation>Skrót</translation>
+ </message>
+ <message>
+ <source>&amp;Clear</source>
+ <translation>&amp;Wyczyść</translation>
+ </message>
+ <message>
+ <source>Alt+C</source>
+ <translation>Alt+C</translation>
+ </message>
+ <message>
+ <source>&amp;Define</source>
+ <translation>&amp;Zdefiniuj</translation>
+ </message>
+ <message>
+ <source>Alt+D</source>
+ <translation>Alt+D</translation>
+ </message>
+ <message>
+ <source>&amp;Apply</source>
+ <translation>&amp;Zastosuj</translation>
+ </message>
+ <message>
+ <source>Alt+A</source>
+ <translation>Alt+A</translation>
+ </message>
+</context>
+<context>
+ <name>SigScale</name>
+ <message>
+ <source>signature scale</source>
+ <translation>oÅ› metrum</translation>
+ </message>
+</context>
+<context>
+ <name>SynthConfigBase</name>
+ <message>
+ <source>MusE: Synth Configuration</source>
+ <translation>MuzA: Konfiguracja Syntezatora Softowego</translation>
+ </message>
+ <message>
+ <source>Soft Synthesizer</source>
+ <translation>Syntezator Softowy</translation>
+ </message>
+ <message>
+ <source>File</source>
+ <translation>Plik</translation>
+ </message>
+ <message>
+ <source>Instances</source>
+ <translation>UrzÄ…dzenia</translation>
+ </message>
+ <message>
+ <source>Name</source>
+ <translation>Nazwa</translation>
+ </message>
+ <message>
+ <source>list of available software synthesizers</source>
+ <translation>lista wszystkich dostępnych syntezatorów softowych</translation>
+ </message>
+ <message>
+ <source>Add Instance</source>
+ <translation>Dodaj urzÄ…dzenie</translation>
+ </message>
+ <message>
+ <source>Remove Instance</source>
+ <translation>Usuń urządzenie</translation>
+ </message>
+ <message>
+ <source>Midi Port</source>
+ <translation>Port Midi</translation>
+ </message>
+ <message>
+ <source>Midi connections</source>
+ <translation>Połączenia midi</translation>
+ </message>
+ <message>
+ <source>Inst</source>
+ <translation>Instr.</translation>
+ </message>
+ <message>
+ <source>Version</source>
+ <translation>Wersja</translation>
+ </message>
+ <message>
+ <source>Description</source>
+ <translation>Opis</translation>
+ </message>
+</context>
+<context>
+ <name>TList</name>
+ <message>
+ <source>Midi</source>
+ <translation>Midi</translation>
+ </message>
+ <message>
+ <source>Drum</source>
+ <translation>Perkusja</translation>
+ </message>
+ <message>
+ <source>Delete Track</source>
+ <translation>Kasuj Åšlad</translation>
+ </message>
+ <message>
+ <source>Track Comment</source>
+ <translation>Opis Åšladu</translation>
+ </message>
+ <message>
+ <source>Show Gui</source>
+ <translation>Pokaż interfejs użytkownika</translation>
+ </message>
+ <message>
+ <source>Add Midi Track</source>
+ <translation>Dodaj ślad midi</translation>
+ </message>
+ <message>
+ <source>Add Drum Track</source>
+ <translation>Dodaj ślad perkusyjny</translation>
+ </message>
+ <message>
+ <source>Add Wave Track</source>
+ <translation>Dodaj ślad audio</translation>
+ </message>
+ <message>
+ <source>MusE: bad trackname</source>
+ <translation>MuzA: zła nazwa śladu</translation>
+ </message>
+ <message>
+ <source>please choose a unique track name</source>
+ <translation>proszę wybrać niepowtarzalną nazwę dla śladu</translation>
+ </message>
+ <message>
+ <source>Add Output</source>
+ <translation>Dodaj wyjście audio</translation>
+ </message>
+ <message>
+ <source>Add Group</source>
+ <translation>Dodaj szynÄ™ audio</translation>
+ </message>
+ <message>
+ <source>Add Input</source>
+ <translation>Dodaj wejście audio</translation>
+ </message>
+ <message>
+ <source>Add Aux Send</source>
+ <translation>Dodaj wysyłkę na efekty</translation>
+ </message>
+ <message>
+ <source>Update drummap?</source>
+ <translation>Zaktualizować zestaw perkusyjny?</translation>
+ </message>
+ <message>
+ <source>Do you want to use same port for all instruments in the drummap?</source>
+ <translation>Czy chcesz używać jednego portu midi dla wszystkich instrumentów w zestawie perkusyjnym?</translation>
+ </message>
+ <message>
+ <source>&amp;Yes</source>
+ <translation>&amp;Tak</translation>
+ </message>
+ <message>
+ <source>&amp;No</source>
+ <translation>&amp;Nie</translation>
+ </message>
+ <message>
+ <source>Do you want to use same port and channel for all instruments in the drummap?</source>
+ <translation>Czy chcesz używać jednego portu i jednego kanału dla wszystkich instrumentów w zestawie perkusyjnym?</translation>
+ </message>
+</context>
+<context>
+ <name>TempoSig</name>
+ <message>
+ <source>Tempo/Sig</source>
+ <translation>Tempo/Metrum</translation>
+ </message>
+</context>
+<context>
+ <name>Toolbar1</name>
+ <message>
+ <source>Solo</source>
+ <translation>Solo</translation>
+ </message>
+ <message>
+ <source>Snap</source>
+ <translation>PrzyciÄ…ganie</translation>
+ </message>
+ <message>
+ <source>Quantize</source>
+ <translation>Kwantyzacja</translation>
+ </message>
+ <message>
+ <source>To</source>
+ <translation>Zakres</translation>
+ </message>
+ <message>
+ <source>All Events</source>
+ <translation>Wszytkie Elementy</translation>
+ </message>
+ <message>
+ <source>Looped Ev.</source>
+ <translation>Pomiędzy lokatorami</translation>
+ </message>
+ <message>
+ <source>Selected Ev.</source>
+ <translation>Zaznaczone Elementy</translation>
+ </message>
+ <message>
+ <source>Looped+Sel.</source>
+ <translation>Zaznaczone + Pomiędzy lokatorami</translation>
+ </message>
+ <message>
+ <source>Cursor</source>
+ <translation>Kursor</translation>
+ </message>
+</context>
+<context>
+ <name>TrackComment</name>
+ <message>
+ <source>MusE: Track Comment</source>
+ <translation>MuzA: Opis Åšladu</translation>
+ </message>
+ <message>
+ <source>Track Comment:</source>
+ <translation>Opis Åšladu</translation>
+ </message>
+</context>
+<context>
+ <name>Transport</name>
+ <message>
+ <source>Punch In</source>
+ <translation>WÅ‚Ä…cz wcinki (punch In)</translation>
+ </message>
+ <message>
+ <source>Loop</source>
+ <translation>Pętla</translation>
+ </message>
+ <message>
+ <source>Punch Out</source>
+ <translation>Wył. wcinki (punch out)</translation>
+ </message>
+ <message>
+ <source>Left Mark</source>
+ <translation>Lewy Lokator</translation>
+ </message>
+ <message>
+ <source>Right Mark</source>
+ <translation>Prawy Lokator</translation>
+ </message>
+ <message>
+ <source>Overdub</source>
+ <translation>Dogrywanie</translation>
+ </message>
+ <message>
+ <source>Replace</source>
+ <translation>Zastępowania</translation>
+ </message>
+ <message>
+ <source>Rec Mode</source>
+ <translation>Typ Nagrywania</translation>
+ </message>
+ <message>
+ <source>Normal</source>
+ <translation>Normalny</translation>
+ </message>
+ <message>
+ <source>Mix</source>
+ <translation>Miks</translation>
+ </message>
+ <message>
+ <source>Cycle Rec</source>
+ <translation>Zapętl nagrywanie</translation>
+ </message>
+ <message>
+ <source>punchin</source>
+ <translation>włącz wcinki (punch In)</translation>
+ </message>
+ <message>
+ <source>loop</source>
+ <translation>pętla</translation>
+ </message>
+ <message>
+ <source>punchout</source>
+ <translation>wył. wcinki (punch out)punchout</translation>
+ </message>
+ <message>
+ <source>rewind to start</source>
+ <translation>przewiń do początku</translation>
+ </message>
+ <message>
+ <source>rewind</source>
+ <translation>przewijaj do tyłu</translation>
+ </message>
+ <message>
+ <source>forward</source>
+ <translation>przewijaj do przodu</translation>
+ </message>
+ <message>
+ <source>stop</source>
+ <translation>stop</translation>
+ </message>
+ <message>
+ <source>play</source>
+ <translation>odtwarzanie</translation>
+ </message>
+ <message>
+ <source>record</source>
+ <translation>nagrywanie</translation>
+ </message>
+ <message>
+ <source>AC</source>
+ <translation>Aut. Kw.</translation>
+ </message>
+ <message>
+ <source>quantize during record</source>
+ <translation>kwantyzuj podczas nagrywania</translation>
+ </message>
+ <message>
+ <source>Click</source>
+ <translation>Metronom</translation>
+ </message>
+ <message>
+ <source>metronom click on/off</source>
+ <translation>włącz/wyłącz metronom</translation>
+ </message>
+ <message>
+ <source>Sync</source>
+ <translation>Synch.</translation>
+ </message>
+ <message>
+ <source>external sync on/off</source>
+ <translation>synchronizowanie do zewn. urz.</translation>
+ </message>
+ <message>
+ <source>Master</source>
+ <translation>Åšlad Tempo/Metrum</translation>
+ </message>
+ <message>
+ <source>use master track</source>
+ <translation>Używaj śladu tempo/metrum</translation>
+ </message>
+</context>
+<context>
+ <name>TransposeDialogBase</name>
+ <message>
+ <source>MusE: Midi Transpose</source>
+ <translation>MuzA: Transponuj Midi</translation>
+ </message>
+ <message>
+ <source>Value</source>
+ <translation>Wartość</translation>
+ </message>
+ <message>
+ <source>halftones</source>
+ <translation>Półtony</translation>
+ </message>
+ <message>
+ <source>Time</source>
+ <translation>Zakres</translation>
+ </message>
+ <message>
+ <source>all</source>
+ <translation>Wszystko</translation>
+ </message>
+ <message>
+ <source>between markers</source>
+ <translation>Pomiędzy znacznikami</translation>
+ </message>
+ <message>
+ <source>Parts</source>
+ <translation>Klocki</translation>
+ </message>
+ <message>
+ <source>all in selected tracks</source>
+ <translation>Wszystko na zaznaczonych śladach</translation>
+ </message>
+ <message>
+ <source>OK</source>
+ <translation>Akceptuj</translation>
+ </message>
+ <message>
+ <source>Cancel</source>
+ <translation>Anuluj</translation>
+ </message>
+</context>
+<context>
+ <name>VelocityBase</name>
+ <message>
+ <source>MusE: Modify Velocity</source>
+ <translation>MuzA: Modyfikuj predkość uderzenia (velocity)</translation>
+ </message>
+ <message>
+ <source>Range</source>
+ <translation>Zakres</translation>
+ </message>
+ <message>
+ <source>All Events</source>
+ <translation>Wszytkie Elementy</translation>
+ </message>
+ <message>
+ <source>Selected Events</source>
+ <translation>Zaznaczone Elementy</translation>
+ </message>
+ <message>
+ <source>Looped Events</source>
+ <translation>Pomiędzy lokatorami</translation>
+ </message>
+ <message>
+ <source>Selected &amp; Looped</source>
+ <translation>Zaznaczone &amp; Pomiędzy lokatorami</translation>
+ </message>
+ <message>
+ <source>Values</source>
+ <translation>Wartość</translation>
+ </message>
+ <message>
+ <source>Rate:</source>
+ <translation>Częstotliwość:</translation>
+ </message>
+ <message>
+ <source>Offset:</source>
+ <translation>Offset:</translation>
+ </message>
+ <message>
+ <source>%</source>
+ <translation>%</translation>
+ </message>
+ <message>
+ <source>OK</source>
+ <translation>Akceptuj</translation>
+ </message>
+ <message>
+ <source>Cancel</source>
+ <translation>Anuluj</translation>
+ </message>
+</context>
+<context>
+ <name>WTScale</name>
+ <message>
+ <source>bar scale</source>
+ <translation>oś taktów</translation>
+ </message>
+</context>
+<context>
+ <name>WaveEdit</name>
+ <message>
+ <source>Normalize</source>
+ <translation>Normalizuj</translation>
+ </message>
+ <message>
+ <source>weTools</source>
+ <translation>Narzędzia audio</translation>
+ </message>
+ <message>
+ <source>Solo</source>
+ <translation>Solo</translation>
+ </message>
+ <message>
+ <source>Cursor</source>
+ <translation>Kursor</translation>
+ </message>
+ <message>
+ <source>&amp;File</source>
+ <translation>&amp;Plik</translation>
+ </message>
+ <message>
+ <source>Functions</source>
+ <translation>Opcje</translation>
+ </message>
+</context>
+<context>
+ <name>WaveTrackInfoBase</name>
+ <message>
+ <source>MusE: TrackInfo</source>
+ <translation>MuzA: Info o śladzie</translation>
+ </message>
+ <message>
+ <source>Track Info</source>
+ <translation>Info o śladzie</translation>
+ </message>
+ <message>
+ <source>Track Name</source>
+ <translation>Nazwa Åšladu</translation>
+ </message>
+ <message>
+ <source>Output Route:</source>
+ <translation>połączenie Wyjścia</translation>
+ </message>
+ <message>
+ <source>Input Route:</source>
+ <translation>połączenie wejścia</translation>
+ </message>
+ <message>
+ <source>Ports:</source>
+ <translation>Porty</translation>
+ </message>
+ <message>
+ <source>Mono</source>
+ <translation>Mono</translation>
+ </message>
+ <message>
+ <source>Stereo</source>
+ <translation>Stereo</translation>
+ </message>
+</context>
+</TS>
+
diff --git a/muse2/share/locale/muse_ru.qm b/muse2/share/locale/muse_ru.qm
new file mode 100644
index 00000000..76268c00
--- /dev/null
+++ b/muse2/share/locale/muse_ru.qm
Binary files differ
diff --git a/muse2/share/locale/muse_ru.ts b/muse2/share/locale/muse_ru.ts
new file mode 100644
index 00000000..141827d4
--- /dev/null
+++ b/muse2/share/locale/muse_ru.ts
@@ -0,0 +1,7466 @@
+<!DOCTYPE TS><TS>
+<context>
+ <name></name>
+ <message>
+ <source>Click this button to enable recording</source>
+ <translation>Ðажмите Ñту клавишу Ð´Ð»Ñ Ð½Ð°Ñ‡Ð°Ð»Ð° запиÑи</translation>
+ </message>
+ <message>
+ <source>sets amount of quantization:
+0 - no quantization
+100 - full quantization</source>
+ <translation>уÑтанавливает объём квантованиÑ:(new line)
+0 - без квантованиÑ(new line)
+100 - полное квантование</translation>
+ </message>
+ <message>
+ <source>select Pointer Tool:
+with the pointer tool you can:
+ select parts
+ move parts
+ copy parts</source>
+ <translation>выбрать инÑтрумент &quot;Указатель&quot;:(new line)
+при помощи ÑƒÐºÐ°Ð·Ð°Ñ‚ÐµÐ»Ñ Ð¼Ð¾Ð¶Ð½Ð¾:(new line)
+ выделÑÑ‚ÑŒ чаÑти(new line)
+ перемещать чаÑти(new line)
+ копировать чаÑти</translation>
+ </message>
+</context>
+<context>
+ <name>@default</name>
+ <message>
+ <source>Click this button to stop playback</source>
+ <translation>Ðажмите Ñту кнопку Ð´Ð»Ñ Ð¾Ñтановки воÑпроизведениÑ</translation>
+ </message>
+ <message>
+ <source>Click this button to start playback</source>
+ <translation>Ðажмите Ñту кнопку Ð´Ð»Ñ Ð½Ð°Ñ‡Ð°Ð»Ð° воÑпроизведениÑ</translation>
+ </message>
+ <message>
+ <source>Click this button to rewind to start position</source>
+ <translation>Ðажмите Ñту кнопку Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ Ðº началу</translation>
+ </message>
+ <message>
+ <source>Click this button to rewind</source>
+ <translation>Ðажмите Ñту кнопку Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ¼Ð¾Ñ‚ÐºÐ¸ назад</translation>
+ </message>
+ <message>
+ <source>Click this button to forward current play position</source>
+ <translation>Ðажмите Ñту кнопку Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ Ð²Ð¿ÐµÑ€Ñ‘Ð´</translation>
+ </message>
+ <message>
+ <source>don&apos;t quantize notes above this tick limit</source>
+ <translation>не квантовать ноты выше Ñтого предела тиков</translation>
+ </message>
+ <message>
+ <source>quantize also note len as default</source>
+ <translation>также квантовать продолжительноÑÑ‚ÑŒ нот по умолчанию</translation>
+ </message>
+ <message>
+ <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>Ðажмите Ñту кнопку Ð´Ð»Ñ Ð¾Ñ‚ÐºÑ€Ñ‹Ñ‚Ð¸Ñ &lt;em&gt;другой композиции&lt;/em&gt;.&lt;br&gt;Ð’Ñ‹ также можете выбрать пункт &lt;b&gt;Открыть&lt;/b&gt; в меню &quot;Файл&quot;.</translation>
+ </message>
+ <message>
+ <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>Ðажмите Ñту кнопку Ð´Ð»Ñ ÑÐ¾Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ Ñ€ÐµÐ´Ð°ÐºÑ‚Ð¸Ñ€ÑƒÐµÐ¼Ð¾Ð¹ композиции.
+Вы также можете выбрать пункт &lt;b&gt;Открыть&lt;/b&gt; в меню &quot;Файл&quot;.</translation>
+ </message>
+ <message>
+ <source>Create New Song</source>
+ <translation>Создать новую композицию</translation>
+ </message>
+ <message>
+ <source>loop between left mark and right mark</source>
+ <translation>цикл между левым и правым маркерами</translation>
+ </message>
+ <message>
+ <source>record starts at left mark</source>
+ <translation>запиÑÑŒ начинаетÑÑ Ñ Ð»ÐµÐ²Ð¾Ð³Ð¾ маркера</translation>
+ </message>
+ <message>
+ <source>record stops at right mark</source>
+ <translation>запиÑÑŒ оÑтанавливаетÑÑ Ð² правом маркере</translation>
+ </message>
+ <message>
+ <source>rewind to start position</source>
+ <translation>перемотать к начальной позиции</translation>
+ </message>
+ <message>
+ <source>rewind current position</source>
+ <translation>перемотать к текущей позиции</translation>
+ </message>
+ <message>
+ <source>move current position</source>
+ <translation>перемеÑтить текущую позицию</translation>
+ </message>
+ <message>
+ <source>stop sequencer</source>
+ <translation>оÑтановить ÑеквенÑер</translation>
+ </message>
+ <message>
+ <source>start sequencer play</source>
+ <translation>начать воÑпроизведение из ÑеквенÑера</translation>
+ </message>
+ <message>
+ <source>to record press record and then play</source>
+ <translation>Ð´Ð»Ñ Ð½Ð°Ñ‡Ð°Ð»Ð° запиÑи нажмите &quot;запиÑÑŒ&quot;, а затем &quot;воÑпроизвеÑти&quot;</translation>
+ </message>
+ <message>
+ <source>send note off to all midi channels</source>
+ <translation>поÑлать note off на вÑе MIDI-каналы</translation>
+ </message>
+ <message>
+ <source>select Pencil Tool:
+with the pencil tool you can:
+ create new parts
+ modify length of parts</source>
+ <translation>выбрать инÑтрумент &quot;Карандаш&quot;:
+при помощи карандаша можно:
+ Ñоздавать новые чаÑти
+ изменÑÑ‚ÑŒ продолжительноÑÑ‚ÑŒ чаÑтей</translation>
+ </message>
+ <message>
+ <source>select Delete Tool:
+with the delete tool you can delete parts</source>
+ <translation>выбрать инÑтрумент &quot;Стёрка&quot;:
+при помощи Ñтёрки можно удалÑÑ‚ÑŒ чаÑти</translation>
+ </message>
+ <message>
+ <source>select Cut Tool:
+with the cut tool you can split a part</source>
+ <translation>выбрать инÑтрумент &quot;Ðожницы&quot;:
+при помощи ножниц можно разделÑÑ‚ÑŒ чаÑти</translation>
+ </message>
+ <message>
+ <source>select Glue Tool:
+with the glue tool you can glue two parts</source>
+ <translation>выбрать инÑтрумент &quot;Клей&quot;:
+при помощи ÐºÐ»ÐµÑ Ð¼Ð¾Ð¶Ð½Ð¾ объединÑÑ‚ÑŒ чаÑти</translation>
+ </message>
+ <message>
+ <source>select Score Tool:
+</source>
+ <translation>выбрать редактор партитур:
+</translation>
+ </message>
+ <message>
+ <source>select Quantize Tool:
+insert display quantize event</source>
+ <translation>выбрать инÑтрумент &quot;Квантование&quot;:
+вÑтавить отображение квантуемых Ñобытий</translation>
+ </message>
+ <message>
+ <source>select Drawing Tool</source>
+ <translation>выбрать инÑтрумент &quot;РиÑование&quot;</translation>
+ </message>
+ <message>
+ <source>select Muting Tool:
+click on part to mute/unmute</source>
+ <translation>выбрать инÑтрумент &quot;Глушитель&quot;:
+click on part to mute/unmute</translation>
+ </message>
+ <message>
+ <source>pointer</source>
+ <translation>Указатель</translation>
+ </message>
+ <message>
+ <source>pencil</source>
+ <translation>Карандаш</translation>
+ </message>
+ <message>
+ <source>cutter</source>
+ <translation>Ðожницы</translation>
+ </message>
+ <message>
+ <source>score</source>
+ <translation>Партитура</translation>
+ </message>
+ <message>
+ <source>glue</source>
+ <translation>Клей</translation>
+ </message>
+ <message>
+ <source>quantize</source>
+ <translation>Квантователь</translation>
+ </message>
+ <message>
+ <source>draw</source>
+ <translation>РиÑование</translation>
+ </message>
+ <message>
+ <source>mute parts</source>
+ <translation>приглушить чаÑти</translation>
+ </message>
+ <message>
+ <source>Off</source>
+ <translation>Выкл</translation>
+ </message>
+ <message>
+ <source>presets (*.pre *.pre.gz *.pre.bz2)</source>
+ <translation>предуÑтановки (*.pre *.pre.gz *.pre.bz2)</translation>
+ </message>
+ <message>
+ <source>All Files (*)</source>
+ <translation>Ð’Ñе файлы (*)</translation>
+ </message>
+ <message>
+ <source>Add Midi Track</source>
+ <translation>Добавить MIDI-дорожку</translation>
+ </message>
+ <message>
+ <source>Add Drum Track</source>
+ <translation>Добавить дорожку Ñ ÑƒÐ´Ð°Ñ€Ð½Ñ‹Ð¼Ð¸</translation>
+ </message>
+ <message>
+ <source>Add Wave Track</source>
+ <translation>Добавить звуковую дорожку</translation>
+ </message>
+ <message>
+ <source>Add Audio Output</source>
+ <translation>Добавить аудиовыход</translation>
+ </message>
+ <message>
+ <source>Add Audio Group</source>
+ <translation>Добавить аудиогруппу</translation>
+ </message>
+ <message>
+ <source>Add Audio Input</source>
+ <translation>Добавить аудиовход</translation>
+ </message>
+ <message>
+ <source>Add Aux Send</source>
+ <translation>Добавить Aux поÑыл</translation>
+ </message>
+ <message>
+ <source>eraser</source>
+ <translation>ЛаÑтик</translation>
+ </message>
+</context>
+<context>
+ <name>AboutBox</name>
+ <message>
+ <source>AboutBox</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Keep On Rocking!</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Version 0.7.2pre3
+
+(C) Copyright 1999-2005 Werner Schweer and others.
+See http://www.muse-sequencer.org for new versions and
+more information.
+
+Published under the GNU Public License</source>
+ <translation>Version 0.7.2pre3
+
+(C) Copyright 1999-2005 Werner Schweer и другие.
+Сходите на http://www.muse-sequencer.org за
+новой верÑией или подробноÑÑ‚Ñми
+
+Опубликовано на уÑловиÑÑ… GNU Public License</translation>
+ </message>
+</context>
+<context>
+ <name>Appearance</name>
+ <message>
+ <source>MusE: load image</source>
+ <translation>MusE: загрузить изображение</translation>
+ </message>
+</context>
+<context>
+ <name>AppearanceDialogBase</name>
+ <message>
+ <source>MusE: Appearance settings</source>
+ <translation>MusE: ÐаÑтройки облика</translation>
+ </message>
+ <message>
+ <source>Apply</source>
+ <translation>Применить</translation>
+ </message>
+ <message>
+ <source>Ok</source>
+ <translation>Ok</translation>
+ </message>
+ <message>
+ <source>Cancel</source>
+ <translation>Отменить</translation>
+ </message>
+ <message>
+ <source>Arranger</source>
+ <translation>Компоновщик</translation>
+ </message>
+ <message>
+ <source>Parts</source>
+ <translation>ЧаÑти</translation>
+ </message>
+ <message>
+ <source>show names</source>
+ <translation>показывать рамки</translation>
+ </message>
+ <message>
+ <source>show events</source>
+ <translation>показывать ÑобытиÑ</translation>
+ </message>
+ <message>
+ <source>show Cakewalk Style</source>
+ <translation>показывать в Ñтиле Cakewalk</translation>
+ </message>
+ <message>
+ <source>Events</source>
+ <translation>СобытиÑ</translation>
+ </message>
+ <message>
+ <source>note on</source>
+ <translation>note on</translation>
+ </message>
+ <message>
+ <source>poly pressure</source>
+ <translation>полифоничеÑкое поÑлекаÑание</translation>
+ </message>
+ <message>
+ <source>controller</source>
+ <translation>контроллер</translation>
+ </message>
+ <message>
+ <source>aftertouch</source>
+ <translation>поÑлекаÑание</translation>
+ </message>
+ <message>
+ <source>pitch bend</source>
+ <translation>Ñмена выÑоты звука</translation>
+ </message>
+ <message>
+ <source>program change</source>
+ <translation>Ñмена программы</translation>
+ </message>
+ <message>
+ <source>special</source>
+ <translation>ÑпециальнаÑ</translation>
+ </message>
+ <message>
+ <source>Background picture</source>
+ <translation>Фоновое изображение</translation>
+ </message>
+ <message>
+ <source>bg</source>
+ <translation>фон</translation>
+ </message>
+ <message>
+ <source>select...</source>
+ <translation>выбрать...</translation>
+ </message>
+ <message>
+ <source>show snap grid</source>
+ <translation>показывать Ñетку привÑзки</translation>
+ </message>
+ <message>
+ <source>Colors</source>
+ <translation>Цвета</translation>
+ </message>
+ <message>
+ <source>Items</source>
+ <translation></translation>
+ </message>
+ <message>
+ <source>Style/Fonts</source>
+ <translation>Стиль/Шрифты</translation>
+ </message>
+ <message>
+ <source>QT Theme</source>
+ <translation>Тема QT</translation>
+ </message>
+ <message>
+ <source>Windows</source>
+ <translation>Окна</translation>
+ </message>
+ <message>
+ <source>MusE</source>
+ <translation>MusE</translation>
+ </message>
+ <message>
+ <source>Metal</source>
+ <translation>Металл</translation>
+ </message>
+ <message>
+ <source>Norwegian Wood</source>
+ <translation>ÐорвежÑкое дерево</translation>
+ </message>
+ <message>
+ <source>Platinum</source>
+ <translation>Платина</translation>
+ </message>
+ <message>
+ <source>CDE</source>
+ <translation>CDE</translation>
+ </message>
+ <message>
+ <source>Motif</source>
+ <translation>Motif</translation>
+ </message>
+ <message>
+ <source>Motif Plus</source>
+ <translation>Motif Plus</translation>
+ </message>
+ <message>
+ <source>Fonts</source>
+ <translation>Шрифты</translation>
+ </message>
+ <message>
+ <source>Family</source>
+ <translation>СемейÑтво</translation>
+ </message>
+ <message>
+ <source>Size</source>
+ <translation>Размер</translation>
+ </message>
+ <message>
+ <source>Font 1</source>
+ <translation>Шрифт 1</translation>
+ </message>
+ <message>
+ <source>Font 2</source>
+ <translation>Шрифт 2</translation>
+ </message>
+ <message>
+ <source>Font 3</source>
+ <translation>Шрифт 3</translation>
+ </message>
+ <message>
+ <source>Font 0</source>
+ <translation>Шрифт 0</translation>
+ </message>
+ <message>
+ <source>Bold</source>
+ <translation>Жирный</translation>
+ </message>
+ <message>
+ <source>Italic</source>
+ <translation>КурÑив</translation>
+ </message>
+ <message>
+ <source>...</source>
+ <translation>...</translation>
+ </message>
+ <message>
+ <source>Font 4</source>
+ <translation>Шрифт 4</translation>
+ </message>
+ <message>
+ <source>Font 5</source>
+ <translation>Шрифт 5</translation>
+ </message>
+ <message>
+ <source>Palette</source>
+ <translation>Палитра</translation>
+ </message>
+ <message>
+ <source>add to palette</source>
+ <translation>Добавить в палитру</translation>
+ </message>
+ <message>
+ <source>B</source>
+ <translation>B</translation>
+ </message>
+ <message>
+ <source>S</source>
+ <translation>S</translation>
+ </message>
+ <message>
+ <source>H</source>
+ <translation>H</translation>
+ </message>
+ <message>
+ <source>V</source>
+ <translation>V</translation>
+ </message>
+ <message>
+ <source>G</source>
+ <translation>G</translation>
+ </message>
+ <message>
+ <source>R</source>
+ <translation>R</translation>
+ </message>
+</context>
+<context>
+ <name>Arranger</name>
+ <message>
+ <source>Arranger</source>
+ <translation>Компоновщик</translation>
+ </message>
+ <message>
+ <source>Cursor</source>
+ <translation>КурÑор</translation>
+ </message>
+ <message>
+ <source>Off</source>
+ <translation>Выкл</translation>
+ </message>
+ <message>
+ <source>Bar</source>
+ <translation>Деление</translation>
+ </message>
+ <message>
+ <source>Snap</source>
+ <translation>ПривÑзка</translation>
+ </message>
+ <message>
+ <source>Len</source>
+ <translation>Длн</translation>
+ </message>
+ <message>
+ <source>Type</source>
+ <translation>Тип</translation>
+ </message>
+ <message>
+ <source>NO</source>
+ <translation>ÐЕТ</translation>
+ </message>
+ <message>
+ <source>GM</source>
+ <translation>GM</translation>
+ </message>
+ <message>
+ <source>GS</source>
+ <translation>GS</translation>
+ </message>
+ <message>
+ <source>XG</source>
+ <translation>XG</translation>
+ </message>
+ <message>
+ <source>midi song type</source>
+ <translation>тип midi-композиции</translation>
+ </message>
+ <message>
+ <source>Pitch</source>
+ <translation>Ð’Ñ‹Ñота тона</translation>
+ </message>
+ <message>
+ <source>midi pitch</source>
+ <translation>midi выÑота тона</translation>
+ </message>
+ <message>
+ <source>global midi pitch shift</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Tempo</source>
+ <translation>Темп</translation>
+ </message>
+ <message>
+ <source>midi tempo</source>
+ <translation>MIDI-темп</translation>
+ </message>
+ <message>
+ <source>N</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>TrackInfo</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>R</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>M</source>
+ <translation type="unfinished">M</translation>
+ </message>
+ <message>
+ <source>S</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>C</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Track</source>
+ <translation>Дорожка</translation>
+ </message>
+ <message>
+ <source>O-Port</source>
+ <translation>Вых. порт</translation>
+ </message>
+ <message>
+ <source>Ch</source>
+ <translation>К</translation>
+ </message>
+ <message>
+ <source>T</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>AudioMixerApp</name>
+ <message>
+ <source>MusE: Mixer</source>
+ <translation>MusE: микшер</translation>
+ </message>
+ <message>
+ <source>&amp;Create</source>
+ <translation>&amp;Создать</translation>
+ </message>
+ <message>
+ <source>&amp;View</source>
+ <translation>&amp;Вид</translation>
+ </message>
+ <message>
+ <source>Routing</source>
+ <translation>Маршруты</translation>
+ </message>
+</context>
+<context>
+ <name>AudioStrip</name>
+ <message>
+ <source>panorama</source>
+ <translation>Панорама</translation>
+ </message>
+ <message>
+ <source>aux send level</source>
+ <translation>Уровень Aux поÑыла</translation>
+ </message>
+ <message>
+ <source>off</source>
+ <translation>выкл</translation>
+ </message>
+ <message>
+ <source>Pan</source>
+ <translation>Пан</translation>
+ </message>
+ <message>
+ <source>1/2 channel</source>
+ <translation>1/2 канала</translation>
+ </message>
+ <message>
+ <source>Pre</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>pre fader - post fader</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>dB</source>
+ <translation>Дб</translation>
+ </message>
+ <message>
+ <source>record</source>
+ <translation>ЗапиÑать</translation>
+ </message>
+ <message>
+ <source>mute</source>
+ <translation>Приглушить</translation>
+ </message>
+ <message>
+ <source>record downmix</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>solo mode (monitor)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>pre fader listening</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>iR</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>intput routing</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>oR</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>output routing</source>
+ <translation type="unfinished">роутинг выхода</translation>
+ </message>
+ <message>
+ <source>Off</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Read</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Touch</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Write</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>automation type</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Channel</source>
+ <translation type="unfinished">Канал</translation>
+ </message>
+</context>
+<context>
+ <name>BigTime</name>
+ <message>
+ <source>MusE: Bigtime</source>
+ <translation>MusE: Bigtime</translation>
+ </message>
+</context>
+<context>
+ <name>ClipListEdit</name>
+ <message>
+ <source>MusE: Clip List Editor</source>
+ <translation>MusE: Редактор ÑпиÑка фрагментов</translation>
+ </message>
+</context>
+<context>
+ <name>ClipListEditorBase</name>
+ <message>
+ <source>MusE: ClipList</source>
+ <translation>MusE: СпиÑок фрагментов</translation>
+ </message>
+ <message>
+ <source>Name</source>
+ <translation>ИмÑ</translation>
+ </message>
+ <message>
+ <source>Refs</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Start</source>
+ <translation>Ðачало</translation>
+ </message>
+ <message>
+ <source>Len</source>
+ <translation>Длн</translation>
+ </message>
+ <message>
+ <source>Data</source>
+ <translation>Данные</translation>
+ </message>
+ <message>
+ <source>Clip Properties</source>
+ <translation>СвойÑтва фрагмента</translation>
+ </message>
+ <message>
+ <source>Pos:</source>
+ <translation>Поз.:</translation>
+ </message>
+ <message>
+ <source>Len:</source>
+ <translation>Длн.:</translation>
+ </message>
+</context>
+<context>
+ <name>CommentBase</name>
+ <message>
+ <source>Form1</source>
+ <translation>Form1</translation>
+ </message>
+ <message>
+ <source>Track Comment</source>
+ <translation>Комментарий к дорожке</translation>
+ </message>
+ <message>
+ <source>Track 1</source>
+ <translation>Дорожка 1</translation>
+ </message>
+</context>
+<context>
+ <name>ConfigMidiFileBase</name>
+ <message>
+ <source>MusE: Config Midi File Export</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>&amp;OK</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>&amp;Cancel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>0 (single track)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>1 (multiple tracks)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Format:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>96</source>
+ <translation type="unfinished">96</translation>
+ </message>
+ <message>
+ <source>192</source>
+ <translation type="unfinished">192</translation>
+ </message>
+ <message>
+ <source>384</source>
+ <translation type="unfinished">384</translation>
+ </message>
+ <message>
+ <source>Division:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Copyright:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Enable extended smf format</source>
+ <translation type="unfinished">Разрешить раÑширенный формат SMF</translation>
+ </message>
+</context>
+<context>
+ <name>CtrlPanel</name>
+ <message>
+ <source>Sel</source>
+ <translation>Выбр</translation>
+ </message>
+ <message>
+ <source>select controller</source>
+ <translation>выбрать контроллер</translation>
+ </message>
+ <message>
+ <source>x</source>
+ <translation>x</translation>
+ </message>
+ <message>
+ <source>remove panel</source>
+ <translation>удалить панель</translation>
+ </message>
+ <message>
+ <source>Velocity</source>
+ <translation>СкороÑÑ‚ÑŒ</translation>
+ </message>
+ <message>
+ <source>add new ...</source>
+ <translation>Добавить новый...</translation>
+ </message>
+</context>
+<context>
+ <name>DeicsOnzeGui</name>
+ <message>
+ <source>Delete preset</source>
+ <translation>Удалить преÑет</translation>
+ </message>
+ <message>
+ <source>Do you really want to delete %1 ?</source>
+ <translation>Ð’Ñ‹ дейÑтвительно хотите удалить %1 ?</translation>
+ </message>
+ <message>
+ <source>&amp;Yes</source>
+ <translation>&amp;Да</translation>
+ </message>
+ <message>
+ <source>&amp;No</source>
+ <translation>&amp;Ðет</translation>
+ </message>
+</context>
+<context>
+ <name>DeicsOnzeGuiBase</name>
+ <message>
+ <source>DeicsOnze</source>
+ <translation>DeicsOnze</translation>
+ </message>
+ <message>
+ <source>&amp;Presets</source>
+ <translation>&amp;ПреÑеты</translation>
+ </message>
+ <message>
+ <source>Load</source>
+ <translation>Загрузить</translation>
+ </message>
+ <message>
+ <source>Save</source>
+ <translation>Сохранить</translation>
+ </message>
+ <message>
+ <source>Preset Name</source>
+ <translation>Ð˜Ð¼Ñ Ð¿Ñ€ÐµÑета</translation>
+ </message>
+ <message>
+ <source>INIT VOICE</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Subcategory</source>
+ <translation>ПодкатегориÑ</translation>
+ </message>
+ <message>
+ <source>NONE</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Category</source>
+ <translation>КатегориÑ</translation>
+ </message>
+ <message>
+ <source>Delete</source>
+ <translation>Удалить</translation>
+ </message>
+ <message>
+ <source>Preset</source>
+ <translation>ПреÑет</translation>
+ </message>
+ <message>
+ <source>New</source>
+ <translation>Ðовый</translation>
+ </message>
+ <message>
+ <source>Bank</source>
+ <translation>Банк</translation>
+ </message>
+ <message>
+ <source>Bank numerous</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Prog</source>
+ <translation>Программа</translation>
+ </message>
+ <message>
+ <source>Program numerous</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>DeicsOnze v0.2.2 Copyright (c) 2004 Nil Geisweiller under GPL licence</source>
+ <translation>DeicsOnze v0.2.2 Copyright (c) 2004 Nil Geisweiller на уÑловиÑÑ… GPL licence</translation>
+ </message>
+ <message>
+ <source>&amp;Global</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Master Volume</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Master volume</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>feedback</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Coarse Ratio</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Feedback of Op 4</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Function</source>
+ <translation type="unfinished">ФункциÑ</translation>
+ </message>
+ <message>
+ <source>POLY</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>MONO</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>PBR</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Pitch Bend Range</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>LFO</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>PMS</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>PMD</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>AMD</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Speed</source>
+ <translation type="unfinished">СкороÑÑ‚ÑŒ</translation>
+ </message>
+ <message>
+ <source>Delay</source>
+ <translation type="unfinished">Задержка</translation>
+ </message>
+ <message>
+ <source>AMS</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Saw Up</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Square</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Triangl</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>S/Hold</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>LFO Waveform</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>LFO Sync</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Amplitude Modulation Sensitivity</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Pitch Modulation Sensitivity</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Pitch Modulation Depth</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>LFO Speed</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>LFO Delay</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Transpose and Global Detune</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Transpose</source>
+ <translation type="unfinished">ТранÑпонировать</translation>
+ </message>
+ <message>
+ <source>Global Detune</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Algorithm 1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Algorithm 2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Algorithm 3</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Algorithm 4</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Algorithm 5</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Algorithm 6</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Algorithm 7</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Algorithm 8</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Modulation Matrix</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>&lt;b&gt;Algorithm 1&lt;/b&gt; : &lt;i&gt;Op 1&lt;/i&gt; modulated by &lt;i&gt;Op 2&lt;/i&gt; modulated by &lt;i&gt;Op 3&lt;/i&gt; modulated by &lt;i&gt;Op 4&lt;/i&gt;&lt;br&gt;
+&lt;b&gt;Algorithm 2&lt;/b&gt; : &lt;i&gt;Op 1&lt;/i&gt; modulated by &lt;i&gt;Op 2&lt;/i&gt; modulated by both &lt;i&gt;Op 3&lt;/i&gt; and &lt;i&gt;Op 4&lt;/i&gt;&lt;br&gt;
+&lt;b&gt;Algorithm 3&lt;/b&gt; : &lt;i&gt;Op 1&lt;/i&gt; modulated by both &lt;i&gt;Op 4&lt;/i&gt; and &lt;i&gt;Op 2&lt;/i&gt; modulated by &lt;i&gt;Op 3&lt;/i&gt;&lt;br&gt;
+&lt;b&gt;Algorithm 4&lt;/b&gt; : &lt;i&gt;Op 1&lt;/i&gt; modulated by both &lt;i&gt;Op 2&lt;/i&gt; and &lt;i&gt;Op 3&lt;/i&gt; modulated by &lt;i&gt;Op 4&lt;/i&gt;&lt;br&gt;
+&lt;b&gt;Algorithm 5&lt;/b&gt; : (&lt;i&gt;Op 1&lt;/i&gt; modulated by &lt;i&gt;Op 2&lt;/i&gt;) add to (&lt;i&gt;Op 3&lt;/i&gt; modulated by &lt;i&gt;Op 4&lt;/i&gt;) &lt;br&gt;
+&lt;b&gt;Algorithm 6&lt;/b&gt; : addition of the three &lt;i&gt;Op 1, 2, 3&lt;/i&gt; all modulated by &lt;i&gt;Op 4&lt;/i&gt;&lt;br&gt;
+&lt;b&gt;Algorithm 7&lt;/b&gt; : addition of the three &lt;i&gt;Op 1, 2, 3&lt;/i&gt; with &lt;i&gt;Op 3&lt;/i&gt; modulated by &lt;i&gt;Op 4&lt;/i&gt;&lt;br&gt;
+&lt;b&gt;Algorithm 8&lt;/b&gt; : addition of the four &lt;i&gt;Op 1, 2, 3, 4&lt;/i&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Op &amp;1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Frequency 1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>FIX</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Coarse 1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Fine 1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Freq 1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Fine Ratio</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Fixed Frequency</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Envelope 1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>RR1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>D1R1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>D1L1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>D2R1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message encoding="UTF-8">
+ <source>1° Decay Level</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message encoding="UTF-8">
+ <source>2° Decay Rate</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message encoding="UTF-8">
+ <source>1° Decay Rate</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Release Rate</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>AR1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Attack Rate</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Scaling 1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>LS1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>RS1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Level Scaling</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Attack Rate of the operator 1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Rate Scaling</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Vol 1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Volume</source>
+ <translation type="unfinished">ГромкоÑÑ‚ÑŒ</translation>
+ </message>
+ <message>
+ <source>Sensitivity 1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>EBS1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>KVS1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>AME1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Amplitude Modulation Enable</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Key Velocity Sensitivity</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>EG Bias Sensitivity</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Detune Wave EGShift 1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Wave1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Wave2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Wave3</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Wave4</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Wave5</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Wave6</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Wave7</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Wave8</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Wave Form</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Wave form 1 = &lt;i&gt;sin(&lt;b&gt;t&lt;/b&gt;)&lt;/i&gt;&lt;br&gt;
+Wave form 2 = &lt;i&gt;sin(&lt;b&gt;t&lt;/b&gt;)*abs(sin(&lt;b&gt;t&lt;/b&gt;))&lt;/i&gt;&lt;br&gt;
+Wave form 3 = &lt;i&gt;if &lt;b&gt;t&lt;/b&gt;&amp;#060 pi then sin(&lt;b&gt;t&lt;/b&gt;) else 0&lt;/i&gt;&lt;br&gt;
+Wave form 4 = &lt;i&gt;if &lt;b&gt;t&lt;/b&gt;&amp;#060 pi then sin(&lt;b&gt;t&lt;/b&gt;)*abs(sin(&lt;b&gt;t&lt;/b&gt;)) else 0&lt;/i&gt;&lt;br&gt;
+Wave form 5 = &lt;i&gt;if &lt;b&gt;t&lt;/b&gt;&amp;#060 pi then sin(2*&lt;b&gt;t&lt;/b&gt;) else 0&lt;/i&gt;&lt;br&gt;
+Wave form 6 = &lt;i&gt;if &lt;b&gt;t&lt;/b&gt;&amp;#060 pi then sin(2*&lt;b&gt;t&lt;/b&gt;)*abs(sin(2*&lt;b&gt;t&lt;/b&gt;)) else 0&lt;/i&gt;&lt;br&gt;
+Wave form 7 = &lt;i&gt;if &lt;b&gt;t&lt;/b&gt;&amp;#060 pi then abs(sin(2*&lt;b&gt;t&lt;/b&gt;)) else 0&lt;/i&gt;&lt;br&gt;
+Wave form 8 = &lt;i&gt;if &lt;b&gt;t&lt;/b&gt;&amp;#060 pi then sin(2*&lt;b&gt;t&lt;/b&gt;)*sin(2*&lt;b&gt;t&lt;/b&gt;) else 0&lt;/i&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>DET1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>96dB</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>48dB</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>24dB</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>12dB</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>EG Shift</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Detune</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Op &amp;2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Frequency 2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Freq 2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Fine 2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Coarse 2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Envelope 2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>AR2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>RR2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>D2R2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>D1L2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>D1R2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Scaling 2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>LS2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>RS2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Vol 2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Sensitivity 2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>EBS2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>KVS2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>AME2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Detune Wave EGShift 2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>DET2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Op &amp;3</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Frequency 3</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Coarse 3</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Fine 3</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Freq 3</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Envelope 3</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>RR3</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>D2R3</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>D1L3</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>D1R3</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>AR3</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Scaling 3</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>LS3</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>RS3</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Vol 3</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Sensitivity 3</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>EBS3</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>KVS3</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>AME3</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Detune Wave EGShift 3</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>DET3</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Op &amp;4</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Frequency 4</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Coarse 4</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Fine 4</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Freq 4</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Scaling 4</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>LS4</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>RS4</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Envelope 4</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>AR4</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>RR4</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>D2R4</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>D1L4</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>D1R4</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Vol 4</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Sensitivity 4</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>EBS4</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>KVS4</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>AME4</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Detune Wave EGShift 4</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>DET4</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>DrumEdit</name>
+ <message>
+ <source>&amp;File</source>
+ <translation>&amp;Файл</translation>
+ </message>
+ <message>
+ <source>Load Map</source>
+ <translation>Загрузить карту</translation>
+ </message>
+ <message>
+ <source>Save Map</source>
+ <translation>Сохранить карту</translation>
+ </message>
+ <message>
+ <source>&amp;Edit</source>
+ <translation>&amp;Правка</translation>
+ </message>
+ <message>
+ <source>Cut</source>
+ <translation>Вырезать</translation>
+ </message>
+ <message>
+ <source>Copy</source>
+ <translation>Скопировать</translation>
+ </message>
+ <message>
+ <source>Paste</source>
+ <translation>Ð’Ñтавить</translation>
+ </message>
+ <message>
+ <source>Delete Events</source>
+ <translation>Удалить ÑобытиÑ</translation>
+ </message>
+ <message>
+ <source>Select All</source>
+ <translation>Выделить вÑÑ‘</translation>
+ </message>
+ <message>
+ <source>Select None</source>
+ <translation>Убрать выделение</translation>
+ </message>
+ <message>
+ <source>Invert</source>
+ <translation>Инвертировать</translation>
+ </message>
+ <message>
+ <source>Inside Loop</source>
+ <translation>Внутри цикла</translation>
+ </message>
+ <message>
+ <source>Outside Loop</source>
+ <translation>Снаружи цикла</translation>
+ </message>
+ <message>
+ <source>&amp;Select</source>
+ <translation>&amp;Выделение</translation>
+ </message>
+ <message>
+ <source>Load Drummap</source>
+ <translation>Загрузить драм-карту</translation>
+ </message>
+ <message>
+ <source>Store Drummap</source>
+ <translation>Сохранить драм-карту</translation>
+ </message>
+ <message>
+ <source>Step Record</source>
+ <translation>ÐŸÐ¾ÑˆÐ°Ð³Ð¾Ð²Ð°Ñ Ð·Ð°Ð¿Ð¸ÑÑŒ</translation>
+ </message>
+ <message>
+ <source>Midi Input</source>
+ <translation>MIDI-вход</translation>
+ </message>
+ <message>
+ <source>ctrl</source>
+ <translation>кнтр</translation>
+ </message>
+ <message>
+ <source>Add Controller View</source>
+ <translation>Добавить вид контроллера</translation>
+ </message>
+ <message>
+ <source>M</source>
+ <translation>M</translation>
+ </message>
+ <message>
+ <source>Sound</source>
+ <translation>Звук</translation>
+ </message>
+ <message>
+ <source>QNT</source>
+ <translation>КВÐТ</translation>
+ </message>
+ <message>
+ <source>E-Note</source>
+ <translation>E-Ðота</translation>
+ </message>
+ <message>
+ <source>Len</source>
+ <translation>Длн</translation>
+ </message>
+ <message>
+ <source>A-Note</source>
+ <translation>A-Ðота</translation>
+ </message>
+ <message>
+ <source>Ch</source>
+ <translation>К</translation>
+ </message>
+ <message>
+ <source>Port</source>
+ <translation>Порт</translation>
+ </message>
+ <message>
+ <source>LV1</source>
+ <translation>LV1</translation>
+ </message>
+ <message>
+ <source>LV2</source>
+ <translation>LV2</translation>
+ </message>
+ <message>
+ <source>LV3</source>
+ <translation>LV3</translation>
+ </message>
+ <message>
+ <source>LV4</source>
+ <translation>LV4</translation>
+ </message>
+ <message>
+ <source>drummaps</source>
+ <translation>драм-карты</translation>
+ </message>
+ <message>
+ <source>Muse: Load Drum Map</source>
+ <translation>Muse: Загрузить драм-карту</translation>
+ </message>
+ <message>
+ <source>MusE: Store Drum Map</source>
+ <translation>Muse: Сохранить драм-карту</translation>
+ </message>
+ <message>
+ <source>Set fixed length</source>
+ <translation>УÑтановить фикÑ. продолжительноÑÑ‚ÑŒ</translation>
+ </message>
+ <message>
+ <source>&amp;Functions</source>
+ <translation>&amp;Функции</translation>
+ </message>
+ <message>
+ <source>Modify Velocity</source>
+ <translation>Изменить ÑкороÑÑ‚ÑŒ</translation>
+ </message>
+</context>
+<context>
+ <name>EditCAfterDialog</name>
+ <message>
+ <source>MusE: Enter Channel Aftertouch</source>
+ <translation>MusE: ВвеÑти Channel Aftertouch</translation>
+ </message>
+ <message>
+ <source>Time Position</source>
+ <translation>ÐŸÐ¾Ð·Ð¸Ñ†Ð¸Ñ Ð²Ð¾ времени</translation>
+ </message>
+ <message>
+ <source>Pressure</source>
+ <translation>Сила нажатиÑ</translation>
+ </message>
+</context>
+<context>
+ <name>EditCtrl7DialogBase</name>
+ <message>
+ <source>MusE: Enter Controller</source>
+ <translation>MusE: ВвеÑти контроллер</translation>
+ </message>
+ <message>
+ <source>Controller:</source>
+ <translation>Контроллер:</translation>
+ </message>
+ <message>
+ <source>Time Position:</source>
+ <translation>ÐŸÐ¾Ð·Ð¸Ñ†Ð¸Ñ Ð²Ð¾ времени:</translation>
+ </message>
+ <message>
+ <source>Value:</source>
+ <translation>Значение:</translation>
+ </message>
+ <message>
+ <source>controller value</source>
+ <translation>значение контроллера</translation>
+ </message>
+ <message>
+ <source>OK</source>
+ <translation>ОК</translation>
+ </message>
+ <message>
+ <source>Cancel</source>
+ <translation>Отменить</translation>
+ </message>
+</context>
+<context>
+ <name>EditCtrlBase</name>
+ <message>
+ <source>MusE: Edit Controller Event</source>
+ <translation>MusE: изменить Ñобытие контроллера</translation>
+ </message>
+ <message>
+ <source>Time Position</source>
+ <translation>ÐŸÐ¾Ð·Ð¸Ñ†Ð¸Ñ Ð²Ð¾ времени</translation>
+ </message>
+ <message>
+ <source>Available Controller:</source>
+ <translation>ДоÑтупный контроллер:</translation>
+ </message>
+ <message>
+ <source>Create New Controller</source>
+ <translation>Создать новый контроллер</translation>
+ </message>
+ <message>
+ <source>textLabel3</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Value</source>
+ <translation>Значение</translation>
+ </message>
+ <message>
+ <source>Controller</source>
+ <translation>Контроллер</translation>
+ </message>
+ <message>
+ <source>H-Bank</source>
+ <translation>H-банк</translation>
+ </message>
+ <message>
+ <source>L-Bank</source>
+ <translation>L-банк</translation>
+ </message>
+ <message>
+ <source>Program</source>
+ <translation>Программа</translation>
+ </message>
+ <message>
+ <source>off</source>
+ <translation>выкл</translation>
+ </message>
+ <message>
+ <source>pushButton4</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>&amp;OK</source>
+ <translation>&amp;ОК</translation>
+ </message>
+ <message>
+ <source>&amp;Cancel</source>
+ <translation>О&amp;тменить</translation>
+ </message>
+</context>
+<context>
+ <name>EditEventDialog</name>
+ <message>
+ <source>Ok</source>
+ <translation>ОК</translation>
+ </message>
+ <message>
+ <source>Cancel</source>
+ <translation>Отменить</translation>
+ </message>
+</context>
+<context>
+ <name>EditGainBase</name>
+ <message>
+ <source>MusE: Modify gain</source>
+ <translation>MusE: изменить уÑиление</translation>
+ </message>
+ <message>
+ <source>Gain</source>
+ <translation>УÑиление</translation>
+ </message>
+ <message>
+ <source>200%</source>
+ <translation>200%</translation>
+ </message>
+ <message>
+ <source>100%</source>
+ <translation>100%</translation>
+ </message>
+ <message>
+ <source>0%</source>
+ <translation>0%</translation>
+ </message>
+ <message>
+ <source>&amp;Reset</source>
+ <translation>&amp;СброÑить</translation>
+ </message>
+ <message>
+ <source>Alt+R</source>
+ <translation>Alt+С</translation>
+ </message>
+ <message>
+ <source>&amp;Apply</source>
+ <translation>&amp;Применить</translation>
+ </message>
+ <message>
+ <source>Alt+A</source>
+ <translation>Alt+П</translation>
+ </message>
+ <message>
+ <source>&amp;Cancel</source>
+ <translation>О&amp;тменить</translation>
+ </message>
+ <message>
+ <source>Alt+C</source>
+ <translation>Alt+Т</translation>
+ </message>
+</context>
+<context>
+ <name>EditInstrumentBase</name>
+ <message>
+ <source>MusE: Instrument Editor</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Patches</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Patch Name:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>High Bank:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Low Bank:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Program:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>d.c.</source>
+ <comment>dont care</comment>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>d.c.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Patch/Group</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>&amp;Delete</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Alt+D</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>&amp;New Patch</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Alt+N</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>New Group</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Drum</source>
+ <translation type="unfinished">Ударные</translation>
+ </message>
+ <message>
+ <source>GM</source>
+ <translation type="unfinished">GM</translation>
+ </message>
+ <message>
+ <source>GS</source>
+ <translation type="unfinished">GS</translation>
+ </message>
+ <message>
+ <source>XG</source>
+ <translation type="unfinished">XG</translation>
+ </message>
+ <message>
+ <source>Controller</source>
+ <translation type="unfinished">Контроллер</translation>
+ </message>
+ <message>
+ <source>Predefined Controller:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <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="unfinished"></translation>
+ </message>
+ <message>
+ <source>Properties</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Name</source>
+ <translation type="unfinished">ИмÑ</translation>
+ </message>
+ <message>
+ <source>Type</source>
+ <translation type="unfinished">Тип</translation>
+ </message>
+ <message>
+ <source>Control7</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Control14</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>RPN</source>
+ <translation type="unfinished">RPN</translation>
+ </message>
+ <message>
+ <source>NRPN</source>
+ <translation type="unfinished">NRPN</translation>
+ </message>
+ <message>
+ <source>Pitch</source>
+ <translation type="unfinished">Ð’Ñ‹Ñота тона</translation>
+ </message>
+ <message>
+ <source>Program</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>H-Ctrl</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Midi Controller Number High Byte</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>L-Ctrl</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Midi Controller Number Low Byte</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Range</source>
+ <translation type="unfinished">ОблаÑÑ‚ÑŒ</translation>
+ </message>
+ <message>
+ <source>Min</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Max</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Default</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Name </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Type </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Min Val</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Max Val</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>list of defined controllers</source>
+ <translation type="unfinished">ÑпиÑок назначенных контроллеров</translation>
+ </message>
+ <message>
+ <source>This is the MusE list of defined controllers.</source>
+ <translation type="unfinished">Это ÑпиÑок назначенных контроллеров Ð´Ð»Ñ MusE</translation>
+ </message>
+ <message>
+ <source>SysEx</source>
+ <translation type="unfinished">SysEx</translation>
+ </message>
+ <message>
+ <source>Initialization</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Panic</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Hex Entry:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>&amp;File</source>
+ <translation type="unfinished">&amp;Файл</translation>
+ </message>
+ <message>
+ <source>Tools</source>
+ <translation type="unfinished">СервиÑ</translation>
+ </message>
+ <message>
+ <source>New</source>
+ <translation type="unfinished">Ðовый</translation>
+ </message>
+ <message>
+ <source>&amp;New</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Ctrl+N</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Open</source>
+ <translation type="unfinished">Открыть</translation>
+ </message>
+ <message>
+ <source>&amp;Open...</source>
+ <translation type="unfinished">&amp;Открыть...</translation>
+ </message>
+ <message>
+ <source>Ctrl+O</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Save</source>
+ <translation type="unfinished">Сохранить</translation>
+ </message>
+ <message>
+ <source>&amp;Save</source>
+ <translation type="unfinished">&amp;Сохранить</translation>
+ </message>
+ <message>
+ <source>Ctrl+S</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Save As</source>
+ <translation type="unfinished">Сохранить как</translation>
+ </message>
+ <message>
+ <source>Save &amp;As...</source>
+ <translation type="unfinished">Сохранить &amp;как...</translation>
+ </message>
+ <message>
+ <source>Exit</source>
+ <translation type="unfinished">Выйти</translation>
+ </message>
+ <message>
+ <source>E&amp;xit</source>
+ <translation type="unfinished">В&amp;ыйти</translation>
+ </message>
+</context>
+<context>
+ <name>EditMetaDialog</name>
+ <message>
+ <source>MusE: Enter Meta Event</source>
+ <translation>MusE: ВвеÑти метаÑобытие</translation>
+ </message>
+ <message>
+ <source>Time Position</source>
+ <translation>ÐŸÐ¾Ð·Ð¸Ñ†Ð¸Ñ Ð²Ð¾ времени</translation>
+ </message>
+ <message>
+ <source>Meta Type</source>
+ <translation>Метатип</translation>
+ </message>
+ <message>
+ <source>Enter Hex</source>
+ <translation>Введите Hex</translation>
+ </message>
+</context>
+<context>
+ <name>EditMetaDialogBase</name>
+ <message>
+ <source>MusE: Enter Meta Event</source>
+ <translation>MusE: ВвеÑти метаÑобытие</translation>
+ </message>
+ <message>
+ <source>OK</source>
+ <translation>ОК</translation>
+ </message>
+ <message>
+ <source>Cancel</source>
+ <translation>Отменить</translation>
+ </message>
+ <message>
+ <source>TextLabel1</source>
+ <translation>ТекÑтоваÑМетка1</translation>
+ </message>
+ <message>
+ <source>Time Position:</source>
+ <translation>ÐŸÐ¾Ð·Ð¸Ñ†Ð¸Ñ Ð²Ð¾ времени:</translation>
+ </message>
+ <message>
+ <source>Meta Type:</source>
+ <translation>Метатип:</translation>
+ </message>
+ <message>
+ <source>Enter Hex</source>
+ <translation>Введите Hex</translation>
+ </message>
+</context>
+<context>
+ <name>EditNoteDialogBase</name>
+ <message>
+ <source>MusE: Enter Note</source>
+ <translation>MusE: ВвеÑти ноту</translation>
+ </message>
+ <message>
+ <source>OK</source>
+ <translation>ОК</translation>
+ </message>
+ <message>
+ <source>Cancel</source>
+ <translation>Отменить</translation>
+ </message>
+ <message>
+ <source>Length:</source>
+ <translation>ПродолжительноÑÑ‚ÑŒ:</translation>
+ </message>
+ <message>
+ <source>Time Position:</source>
+ <translation>ÐŸÐ¾Ð·Ð¸Ñ†Ð¸Ñ Ð²Ð¾ времени:</translation>
+ </message>
+ <message>
+ <source>Pitch:</source>
+ <translation>Ð’Ñ‹Ñота тона:</translation>
+ </message>
+ <message>
+ <source>Velocity On:</source>
+ <translation>СкороÑÑ‚ÑŒ вкл.:</translation>
+ </message>
+ <message>
+ <source>Velocity Off:</source>
+ <translation>СкороÑÑ‚ÑŒ выкл.:</translation>
+ </message>
+</context>
+<context>
+ <name>EditPAfterDialog</name>
+ <message>
+ <source>MusE: Enter Poly Aftertouch</source>
+ <translation>MusE: ВвеÑти многоголоÑое поÑлекаÑание</translation>
+ </message>
+ <message>
+ <source>Time Position</source>
+ <translation>ÐŸÐ¾Ð·Ð¸Ñ†Ð¸Ñ Ð²Ð¾ времени</translation>
+ </message>
+ <message>
+ <source>Pitch</source>
+ <translation>Ð’Ñ‹Ñота тона</translation>
+ </message>
+ <message>
+ <source>Pressure</source>
+ <translation>Сила нажатиÑ</translation>
+ </message>
+</context>
+<context>
+ <name>EditSysexDialogBase</name>
+ <message>
+ <source>MusE: Enter SysEx</source>
+ <translation>MusE: ВвеÑти SysEx</translation>
+ </message>
+ <message>
+ <source>TimePosition:</source>
+ <translation>ВремÑ:</translation>
+ </message>
+ <message>
+ <source>Comment:</source>
+ <translation>Комментарий:</translation>
+ </message>
+ <message>
+ <source>OK</source>
+ <translation>ОК</translation>
+ </message>
+ <message>
+ <source>Cancel</source>
+ <translation>Отменить</translation>
+ </message>
+</context>
+<context>
+ <name>EditToolBar</name>
+ <message>
+ <source>Edit Tools</source>
+ <translation>ИнÑтрументы редактированиÑ</translation>
+ </message>
+</context>
+<context>
+ <name>EffectRack</name>
+ <message>
+ <source>effect rack</source>
+ <translation>Ñ€Ñк Ñффектов</translation>
+ </message>
+ <message>
+ <source>move up</source>
+ <translation>ÑмеÑтить выше</translation>
+ </message>
+ <message>
+ <source>move down</source>
+ <translation>ÑмеÑтить ниже</translation>
+ </message>
+ <message>
+ <source>remove</source>
+ <translation>удалить</translation>
+ </message>
+ <message>
+ <source>bypass</source>
+ <translation>обойти</translation>
+ </message>
+ <message>
+ <source>show gui</source>
+ <translation>показать ГИП</translation>
+ </message>
+ <message>
+ <source>new</source>
+ <translation>новый</translation>
+ </message>
+ <message>
+ <source>change</source>
+ <translation>изменить</translation>
+ </message>
+ <message>
+ <source>Replace effect</source>
+ <translation>Заменить Ñффект</translation>
+ </message>
+ <message>
+ <source>Do you really want to replace the effect %1?</source>
+ <translation>Ð’Ñ‹ дейÑтвительно хотите заменить Ñффект %1?</translation>
+ </message>
+ <message>
+ <source>&amp;Yes</source>
+ <translation>&amp;Да</translation>
+ </message>
+ <message>
+ <source>&amp;No</source>
+ <translation>&amp;Ðет</translation>
+ </message>
+</context>
+<context>
+ <name>FLUIDGui</name>
+ <message>
+ <source>FLUID: open Soundfile</source>
+ <translation>FLUID: открыть аудиофайл</translation>
+ </message>
+</context>
+<context>
+ <name>FLUIDGuiBase</name>
+ <message>
+ <source>Form1</source>
+ <translation type="unfinished">Form1</translation>
+ </message>
+ <message>
+ <source>Soundfont</source>
+ <translation type="unfinished">Soundfont</translation>
+ </message>
+ <message>
+ <source>Load</source>
+ <translation type="unfinished">Загрузить</translation>
+ </message>
+</context>
+<context>
+ <name>FLUIDSynthGuiBase</name>
+ <message>
+ <source>FLUID Synth</source>
+ <translation>FLUID Synth</translation>
+ </message>
+ <message>
+ <source>Gain</source>
+ <translation>УÑиление</translation>
+ </message>
+ <message>
+ <source>Level</source>
+ <translation>Уровень</translation>
+ </message>
+ <message>
+ <source>Width</source>
+ <translation>Ширина</translation>
+ </message>
+ <message>
+ <source>Damping</source>
+ <translation>Глушение</translation>
+ </message>
+ <message>
+ <source>Room Size</source>
+ <translation>Размер комнаты</translation>
+ </message>
+ <message>
+ <source>Reverb</source>
+ <translation>РеверберациÑ</translation>
+ </message>
+ <message>
+ <source>Delete</source>
+ <translation>Удалить</translation>
+ </message>
+ <message>
+ <source>Load</source>
+ <translation>Загрузить</translation>
+ </message>
+ <message>
+ <source>Sine</source>
+ <translation>СинуÑоида</translation>
+ </message>
+ <message>
+ <source>Triangle</source>
+ <translation>ТреугольнаÑ</translation>
+ </message>
+ <message>
+ <source>Type</source>
+ <translation>Тип</translation>
+ </message>
+ <message>
+ <source>Number</source>
+ <translation>Ðомер</translation>
+ </message>
+ <message>
+ <source>Speed</source>
+ <translation>СкороÑÑ‚ÑŒ</translation>
+ </message>
+ <message>
+ <source>Depth</source>
+ <translation>Глубина</translation>
+ </message>
+ <message>
+ <source>Chorus</source>
+ <translation>ХоруÑ</translation>
+ </message>
+ <message>
+ <source>CHANNEL SETUP</source>
+ <translation>ÐÐСТРОЙКРКÐÐÐЛÐ</translation>
+ </message>
+ <message>
+ <source>ID</source>
+ <translation>ID</translation>
+ </message>
+ <message>
+ <source>Fontname</source>
+ <translation>Ð˜Ð¼Ñ ÑÑмпла</translation>
+ </message>
+ <message>
+ <source>Chnl</source>
+ <translation>Канал</translation>
+ </message>
+ <message>
+ <source>Soundfont</source>
+ <translation>СÑмпл</translation>
+ </message>
+ <message>
+ <source>LOADED SOUNDFONTS</source>
+ <translation>ЗÐГРУЖЕÐÐЫЕ СЭМПЛЫ</translation>
+ </message>
+ <message>
+ <source>Dump Info</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Drum Chnl</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>FileDialogButtons</name>
+ <message>
+ <source>Form1</source>
+ <translation>Form1</translation>
+ </message>
+ <message>
+ <source>Global</source>
+ <translation>Глобально</translation>
+ </message>
+ <message>
+ <source>User</source>
+ <translation>Домашний
+каталог</translation>
+ </message>
+ <message>
+ <source>Project</source>
+ <translation>Проект</translation>
+ </message>
+ <message>
+ <source>Load:</source>
+ <translation>Загрузить:</translation>
+ </message>
+ <message>
+ <source>Songdata +
+Cofiguration</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>only
+Songdata</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>FontSel</name>
+ <message>
+ <source>Size:</source>
+ <translation>Размер:</translation>
+ </message>
+</context>
+<context>
+ <name>GateTimeBase</name>
+ <message>
+ <source>MusE: Modify Gate Time</source>
+ <translation>MusE: Изменить Ð²Ñ€ÐµÐ¼Ñ Ð·Ð²ÑƒÑ‡Ð°Ð½Ð¸Ñ</translation>
+ </message>
+ <message>
+ <source>Range</source>
+ <translation>ОблаÑÑ‚ÑŒ</translation>
+ </message>
+ <message>
+ <source>All Events</source>
+ <translation>Ð’Ñе ÑобытиÑ</translation>
+ </message>
+ <message>
+ <source>Selected Events</source>
+ <translation>Выбранные ÑобытиÑ</translation>
+ </message>
+ <message>
+ <source>Looped Events</source>
+ <translation>Ð¡Ð¾Ð±Ñ‹Ñ‚Ð¸Ñ Ð² цикле</translation>
+ </message>
+ <message>
+ <source>Selected &amp; Looped</source>
+ <translation>Выбранные и в цикле</translation>
+ </message>
+ <message>
+ <source>Values</source>
+ <translation>ЗначениÑ</translation>
+ </message>
+ <message>
+ <source>Rate:</source>
+ <translation>ЧаÑтота:</translation>
+ </message>
+ <message>
+ <source>Offset:</source>
+ <translation>Смещение:</translation>
+ </message>
+ <message>
+ <source>%</source>
+ <translation>%</translation>
+ </message>
+ <message>
+ <source>OK</source>
+ <translation>ОК</translation>
+ </message>
+ <message>
+ <source>Cancel</source>
+ <translation>Отменить</translation>
+ </message>
+</context>
+<context>
+ <name>GlobalSettingsDialogBase</name>
+ <message>
+ <source>MusE: Global Settings</source>
+ <translation>MusE: Общие наÑтройки</translation>
+ </message>
+ <message>
+ <source>&amp;Apply</source>
+ <translation>&amp;Применить</translation>
+ </message>
+ <message>
+ <source>&amp;Ok</source>
+ <translation>&amp;ОК</translation>
+ </message>
+ <message>
+ <source>&amp;Cancel</source>
+ <translation>О&amp;тменить</translation>
+ </message>
+ <message>
+ <source>Audio</source>
+ <translation>Звук</translation>
+ </message>
+ <message>
+ <source>Mixer</source>
+ <translation>Микшер</translation>
+ </message>
+ <message>
+ <source>dB</source>
+ <translation>Дб</translation>
+ </message>
+ <message>
+ <source>min. Meter Value</source>
+ <translation>мин. значение индикатора</translation>
+ </message>
+ <message>
+ <source>min.Slider Val</source>
+ <translation>мин. значение ползунка</translation>
+ </message>
+ <message>
+ <source>Midi</source>
+ <translation>MIDI</translation>
+ </message>
+ <message>
+ <source>Ticks</source>
+ <translation>Тактовые импульÑÑ‹ (тики)</translation>
+ </message>
+ <message>
+ <source>1024</source>
+ <translation>1024</translation>
+ </message>
+ <message>
+ <source>2048</source>
+ <translation>2048</translation>
+ </message>
+ <message>
+ <source>4096</source>
+ <translation>4096</translation>
+ </message>
+ <message>
+ <source>8172</source>
+ <translation>8172</translation>
+ </message>
+ <message>
+ <source>Displayed Resolution
+(Ticks/Quarternote)</source>
+ <translation>Отображаемое разрешение
+(Тиков/четвертей)</translation>
+ </message>
+ <message>
+ <source>48</source>
+ <translation>48</translation>
+ </message>
+ <message>
+ <source>96</source>
+ <translation>96</translation>
+ </message>
+ <message>
+ <source>192</source>
+ <translation>192</translation>
+ </message>
+ <message>
+ <source>384</source>
+ <translation>384</translation>
+ </message>
+ <message>
+ <source>768</source>
+ <translation>768</translation>
+ </message>
+ <message>
+ <source>1536</source>
+ <translation>1536</translation>
+ </message>
+ <message>
+ <source>3072</source>
+ <translation>3072</translation>
+ </message>
+ <message>
+ <source>6144</source>
+ <translation>6144</translation>
+ </message>
+ <message>
+ <source>12288</source>
+ <translation>12288</translation>
+ </message>
+ <message>
+ <source>RTC Resolution
+(Ticks/Sec)</source>
+ <translation>RTC-разрешение
+(тиков/Ñек)</translation>
+ </message>
+ <message>
+ <source>GUI</source>
+ <translation>GUI</translation>
+ </message>
+ <message>
+ <source>Help Browser:</source>
+ <translation>Ð’ чём читать Ñправку:</translation>
+ </message>
+ <message>
+ <source>GUI Refresh Rate</source>
+ <translation>ЧаÑтота Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ GUI</translation>
+ </message>
+ <message>
+ <source>/sec</source>
+ <translation>/Ñек</translation>
+ </message>
+ <message>
+ <source>Application</source>
+ <translation>Приложение</translation>
+ </message>
+ <message>
+ <source>Start Muse</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>start with last song</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>start with song</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>start song:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Views</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>y-pos</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>show</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>x-pos</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>height</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>width</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Big Time</source>
+ <translation>Хронометр</translation>
+ </message>
+ <message>
+ <source>Arranger</source>
+ <translation>Компоновщик</translation>
+ </message>
+ <message>
+ <source>Transport</source>
+ <translation>Пульт управлениÑ</translation>
+ </message>
+ <message>
+ <source>Cur</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>set current values</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>start with template: default.med</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>show splash screen</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>External Waveditor</source>
+ <translation>Внешний аудиоредактор</translation>
+ </message>
+ <message>
+ <source>External Waveditor command</source>
+ <translation>Команда вызова внешнего аудиоредактора</translation>
+ </message>
+</context>
+<context>
+ <name>LMaster</name>
+ <message>
+ <source>MusE: Mastertrack</source>
+ <translation>MusE: МаÑтер-дорожка</translation>
+ </message>
+ <message>
+ <source>Tempo</source>
+ <translation>Темп</translation>
+ </message>
+ <message>
+ <source>Timesig</source>
+ <translation>Знак размера</translation>
+ </message>
+ <message>
+ <source>new tempo</source>
+ <translation>новый темп</translation>
+ </message>
+ <message>
+ <source>new signature</source>
+ <translation>новый размер</translation>
+ </message>
+ <message>
+ <source>Meter</source>
+ <translation>Размер</translation>
+ </message>
+ <message>
+ <source>Time</source>
+ <translation>ВремÑ</translation>
+ </message>
+ <message>
+ <source>Type</source>
+ <translation>Тип</translation>
+ </message>
+ <message>
+ <source>Value</source>
+ <translation>Значение</translation>
+ </message>
+ <message>
+ <source>&amp;Edit</source>
+ <translation>&amp;Правка</translation>
+ </message>
+ <message>
+ <source>Insert Tempo</source>
+ <translation>Ð’Ñтавить темп</translation>
+ </message>
+ <message>
+ <source>Insert Signature</source>
+ <translation type="unfinished">Ð’Ñтавить размер</translation>
+ </message>
+ <message>
+ <source>Edit Positon</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Edit Value</source>
+ <translation>Изменить значение</translation>
+ </message>
+ <message>
+ <source>Delete Event</source>
+ <translation>Удалить Ñобытие</translation>
+ </message>
+ <message>
+ <source>Reposition of the initial tempo and signature events is not allowed</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>MusE: List Editor</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Input error, conversion not OK or value out of range</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Reposition of tempo and signature events to start position is not allowed!</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ListEdit</name>
+ <message>
+ <source>Insert Note</source>
+ <translation>Ð’Ñтавить ноту</translation>
+ </message>
+ <message>
+ <source>insert Note</source>
+ <translation>вÑтавить ноту</translation>
+ </message>
+ <message>
+ <source>Insert SysEx</source>
+ <translation>Ð’Ñтавить SysEx</translation>
+ </message>
+ <message>
+ <source>insert SysEx</source>
+ <translation>вÑтавить SysEx</translation>
+ </message>
+ <message>
+ <source>Insert Ctrl</source>
+ <translation>Ð’Ñтавить контроллер</translation>
+ </message>
+ <message>
+ <source>insert Ctrl</source>
+ <translation>вÑтавить контроллер</translation>
+ </message>
+ <message>
+ <source>Insert Meta</source>
+ <translation>Ð’Ñтавить Meta</translation>
+ </message>
+ <message>
+ <source>insert Meta</source>
+ <translation>вÑтавить Meta</translation>
+ </message>
+ <message>
+ <source>Insert Channel Aftertouch</source>
+ <translation>Ð’Ñтавить Channel Aftertouch</translation>
+ </message>
+ <message>
+ <source>insert Channel Aftertouch</source>
+ <translation>вÑтавить Channel Aftertouch</translation>
+ </message>
+ <message>
+ <source>Insert Key Aftertouch</source>
+ <translation>Ð’Ñтавить Key Aftertouch</translation>
+ </message>
+ <message>
+ <source>insert Poly Aftertouch</source>
+ <translation>вÑтавить Key Aftertouch</translation>
+ </message>
+ <message>
+ <source>&amp;Edit</source>
+ <translation>&amp;Правка</translation>
+ </message>
+ <message>
+ <source>Cut</source>
+ <translation>Вырезать</translation>
+ </message>
+ <message>
+ <source>Copy</source>
+ <translation>Скопировать</translation>
+ </message>
+ <message>
+ <source>Paste</source>
+ <translation>Ð’Ñтавить</translation>
+ </message>
+ <message>
+ <source>Delete Events</source>
+ <translation>Удалить ÑобытиÑ</translation>
+ </message>
+ <message>
+ <source>List Tools</source>
+ <translation>Показать ÑпиÑок инÑтрументов</translation>
+ </message>
+ <message>
+ <source>Insert Tools</source>
+ <translation>Ð’Ñтавить инÑтрументы</translation>
+ </message>
+ <message>
+ <source>Tick</source>
+ <translation>Щелчок метронома</translation>
+ </message>
+ <message>
+ <source>Bar</source>
+ <translation>Деление</translation>
+ </message>
+ <message>
+ <source>Typ</source>
+ <translation>Тип</translation>
+ </message>
+ <message>
+ <source>Ch</source>
+ <translation>К</translation>
+ </message>
+ <message>
+ <source>Val A</source>
+ <translation>Знач. Ð</translation>
+ </message>
+ <message>
+ <source>Val B</source>
+ <translation>Знач. B</translation>
+ </message>
+ <message>
+ <source>Val C</source>
+ <translation>Знач. С</translation>
+ </message>
+ <message>
+ <source>Len</source>
+ <translation>Длг</translation>
+ </message>
+ <message>
+ <source>Comment</source>
+ <translation>Комментарий</translation>
+ </message>
+</context>
+<context>
+ <name>MITTransposeBase</name>
+ <message>
+ <source>MusE: Midi Input Plugin: Transpose</source>
+ <translation>MusE: MIDI-модуль на входе: ТранÑпонирование</translation>
+ </message>
+ <message>
+ <source>On</source>
+ <translation>Вкл</translation>
+ </message>
+ <message>
+ <source>TriggerKey</source>
+ <translation>TriggerKey</translation>
+ </message>
+ <message>
+ <source>Transpose:</source>
+ <translation>ТранÑпонирование:</translation>
+ </message>
+ <message>
+ <source>+0</source>
+ <translation>+0</translation>
+ </message>
+</context>
+<context>
+ <name>MPConfig</name>
+ <message>
+ <source>none</source>
+ <translation>ничего</translation>
+ </message>
+ <message>
+ <source>Port</source>
+ <translation>Порт</translation>
+ </message>
+ <message>
+ <source>GUI</source>
+ <translation>GUI</translation>
+ </message>
+ <message>
+ <source>Instrument</source>
+ <translation>ИнÑтрумент</translation>
+ </message>
+ <message>
+ <source>Device Name</source>
+ <translation>Ð˜Ð¼Ñ ÑƒÑтройÑтва</translation>
+ </message>
+ <message>
+ <source>State</source>
+ <translation>СоÑтоÑние</translation>
+ </message>
+ <message>
+ <source>unknown</source>
+ <translation>неизвеÑтно</translation>
+ </message>
+ <message>
+ <source>I</source>
+ <translation>Ð’Ñ…</translation>
+ </message>
+ <message>
+ <source>O</source>
+ <translation>Ð’Ñ‹Ñ…</translation>
+ </message>
+</context>
+<context>
+ <name>MRConfigBase</name>
+ <message>
+ <source>MusE: Midi Input Plugin: Remote Control</source>
+ <translation>MusE: Входной MIDI-модуль: ДиÑтан. управление</translation>
+ </message>
+ <message>
+ <source>Activate</source>
+ <translation>Ðктивировать</translation>
+ </message>
+ <message>
+ <source>On</source>
+ <translation>Вкл</translation>
+ </message>
+ <message>
+ <source>Actions</source>
+ <translation>ДейÑтвиÑ</translation>
+ </message>
+ <message>
+ <source>Stop</source>
+ <translation>ОÑтановить</translation>
+ </message>
+ <message>
+ <source>Record</source>
+ <translation>ЗапиÑать</translation>
+ </message>
+ <message>
+ <source>Goto Left Mark</source>
+ <translation>Перейти к левой метке</translation>
+ </message>
+ <message>
+ <source>Play</source>
+ <translation>ВоÑпроизвеÑти</translation>
+ </message>
+</context>
+<context>
+ <name>MTScale</name>
+ <message>
+ <source>bar scale</source>
+ <translation>шкала Ñ Ð´ÐµÐ»ÐµÐ½Ð¸Ñми</translation>
+ </message>
+</context>
+<context>
+ <name>MarkerView</name>
+ <message>
+ <source>MusE: Marker</source>
+ <translation>MusE: Маркер</translation>
+ </message>
+ <message>
+ <source>add marker</source>
+ <translation>добавить маркер</translation>
+ </message>
+ <message>
+ <source>Add Marker</source>
+ <translation>Добавить маркер</translation>
+ </message>
+ <message>
+ <source>delete marker</source>
+ <translation>удалить маркер</translation>
+ </message>
+ <message>
+ <source>Delete Marker</source>
+ <translation>Удалить маркер</translation>
+ </message>
+ <message>
+ <source>&amp;File</source>
+ <translation>&amp;Файл</translation>
+ </message>
+ <message>
+ <source>&amp;Edit</source>
+ <translation>&amp;Правка</translation>
+ </message>
+ <message>
+ <source>Bar:Beat:Tick</source>
+ <translation>Деление:ДолÑ:Тик</translation>
+ </message>
+ <message>
+ <source>Hr:Mn:Sc:Fr:Sf</source>
+ <translation>Hr:Mn:Sc:Fr:Sf</translation>
+ </message>
+ <message>
+ <source>Lock</source>
+ <translation>Блок</translation>
+ </message>
+ <message>
+ <source>Text</source>
+ <translation>ТекÑÑ‚</translation>
+ </message>
+ <message>
+ <source>Marker Properties</source>
+ <translation>СвойÑтва маркера</translation>
+ </message>
+</context>
+<context>
+ <name>MasterEdit</name>
+ <message>
+ <source>MusE: Mastertrack</source>
+ <translation>MusE: МаÑтер-дорожка</translation>
+ </message>
+ <message>
+ <source>edit tools</source>
+ <translation>инÑтрументы редактированиÑ</translation>
+ </message>
+ <message>
+ <source>EnableMaster</source>
+ <translation>Разрешить МаÑтер</translation>
+ </message>
+ <message>
+ <source>Info</source>
+ <translation>Инфо</translation>
+ </message>
+ <message>
+ <source>Cursor</source>
+ <translation>КурÑор</translation>
+ </message>
+ <message>
+ <source>Off</source>
+ <translation>выкл</translation>
+ </message>
+ <message>
+ <source>Snap</source>
+ <translation>ПривÑзка</translation>
+ </message>
+ <message>
+ <source>time at cursor position</source>
+ <translation>Ð²Ñ€ÐµÐ¼Ñ Ð² позиции курÑора</translation>
+ </message>
+ <message>
+ <source>tempo at cursor position</source>
+ <translation>темп в позиции курÑора</translation>
+ </message>
+ <message>
+ <source>CurPos </source>
+ <translation>КурÑПоз</translation>
+ </message>
+ <message>
+ <source>tempo at current position</source>
+ <translation>темп в текущей позиции</translation>
+ </message>
+ <message>
+ <source>time signature at current position</source>
+ <translation>ключевые знаки альтерации в текущей позиции</translation>
+ </message>
+ <message>
+ <source>Enable</source>
+ <translation>Разрешить</translation>
+ </message>
+ <message>
+ <source>Enable usage of master track</source>
+ <translation>Разрешить иÑпользование маÑтер-дорожки</translation>
+ </message>
+</context>
+<context>
+ <name>MetronomeConfigBase</name>
+ <message>
+ <source>MusE: Metronome Config</source>
+ <translation>MusE: ÐаÑтройка метронома</translation>
+ </message>
+ <message>
+ <source>Metronome</source>
+ <translation>Метроном</translation>
+ </message>
+ <message>
+ <source>Audio Beep</source>
+ <translation>Звуковой Ñигнал</translation>
+ </message>
+ <message>
+ <source>MIDI Click</source>
+ <translation>MIDI-клик</translation>
+ </message>
+ <message>
+ <source>Midi Channel</source>
+ <translation>MIDI-канал</translation>
+ </message>
+ <message>
+ <source>Measure Note</source>
+ <translation>Ðот в такте</translation>
+ </message>
+ <message>
+ <source>Measure Velocity</source>
+ <translation>Сила Ð½Ð°Ð¶Ð°Ñ‚Ð¸Ñ Ð½Ð° такт</translation>
+ </message>
+ <message>
+ <source>Beat Velocity</source>
+ <translation>Сила Ð½Ð°Ð¶Ð°Ñ‚Ð¸Ñ Ð½Ð° долю</translation>
+ </message>
+ <message>
+ <source>Beat Note</source>
+ <translation>Ðот на долю</translation>
+ </message>
+ <message>
+ <source>Midi Port</source>
+ <translation>MIDI-порт</translation>
+ </message>
+ <message>
+ <source>Precount</source>
+ <translation>ПредраÑчёт</translation>
+ </message>
+ <message>
+ <source>enable</source>
+ <translation>Разрешить</translation>
+ </message>
+ <message>
+ <source>Bars</source>
+ <translation>Делений</translation>
+ </message>
+ <message>
+ <source>From Mastertrack</source>
+ <translation>Из маÑтер-дорожки</translation>
+ </message>
+ <message>
+ <source>/</source>
+ <translation>/</translation>
+ </message>
+ <message>
+ <source>Signature</source>
+ <translation>Размер</translation>
+ </message>
+ <message>
+ <source>Prerecord</source>
+ <translation>ПредзапиÑÑŒ</translation>
+ </message>
+ <message>
+ <source>Preroll</source>
+ <translation>ПредвоÑпроизведение</translation>
+ </message>
+ <message>
+ <source>&amp;Apply</source>
+ <translation>&amp;Применить</translation>
+ </message>
+ <message>
+ <source>&amp;OK</source>
+ <translation>&amp;ОК</translation>
+ </message>
+ <message>
+ <source>&amp;Cancel</source>
+ <translation>О&amp;тменить</translation>
+ </message>
+</context>
+<context>
+ <name>MidiController</name>
+ <message>
+ <source>Velocity</source>
+ <translation>СкороÑÑ‚ÑŒ</translation>
+ </message>
+</context>
+<context>
+ <name>MidiControllerEditDialogBase</name>
+ <message>
+ <source>MusE: Define Midi Controller</source>
+ <translation>MusE: назначить MIDI-контроллер</translation>
+ </message>
+ <message>
+ <source>Name </source>
+ <translation>ИмÑ</translation>
+ </message>
+ <message>
+ <source>Type </source>
+ <translation>Тип</translation>
+ </message>
+ <message>
+ <source>H-Ctrl</source>
+ <translation>H-Ctrl</translation>
+ </message>
+ <message>
+ <source>L-Ctrl</source>
+ <translation>L-Ctrl</translation>
+ </message>
+ <message>
+ <source>Min Val</source>
+ <translation>Мин знач</translation>
+ </message>
+ <message>
+ <source>Max Val</source>
+ <translation>ÐœÐ°ÐºÑ Ð·Ð½Ð°Ñ‡</translation>
+ </message>
+ <message>
+ <source>list of defined controllers</source>
+ <translation>СпиÑок назначенных контроллеров</translation>
+ </message>
+ <message>
+ <source>This is the MusE list of defined controllers.</source>
+ <translation>Это ÑпиÑок назначенных в MusE контроллеров.</translation>
+ </message>
+ <message>
+ <source>Properties</source>
+ <translation>СвойÑтва</translation>
+ </message>
+ <message>
+ <source>Name</source>
+ <translation>ИмÑ</translation>
+ </message>
+ <message>
+ <source>Max Value</source>
+ <translation>ÐœÐ°ÐºÑ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ðµ</translation>
+ </message>
+ <message>
+ <source>Min Value</source>
+ <translation>Мин значение</translation>
+ </message>
+ <message>
+ <source>Control7</source>
+ <translation>Control7</translation>
+ </message>
+ <message>
+ <source>Control14</source>
+ <translation>Control14</translation>
+ </message>
+ <message>
+ <source>RPN</source>
+ <translation>RPN</translation>
+ </message>
+ <message>
+ <source>NRPN</source>
+ <translation>NRPN</translation>
+ </message>
+ <message>
+ <source>Type</source>
+ <translation>Тип</translation>
+ </message>
+ <message>
+ <source>create new entry</source>
+ <translation>Создать новую запиÑÑŒ</translation>
+ </message>
+ <message>
+ <source>pressing the New button you create a new entry
+in the MusE list of defined controllers</source>
+ <translation>По нажатию кнопки &quot;ÐоваÑ&quot; ÑоздаётÑÑ Ð½Ð¾Ð²Ð°Ñ
+запиÑÑŒ в ÑпиÑок назначенных в MusE контроллеров</translation>
+ </message>
+ <message>
+ <source>&amp;Delete</source>
+ <translation>&amp;Удалить</translation>
+ </message>
+ <message>
+ <source>delete selected entry</source>
+ <translation>Удалить выделенное Ñобытие</translation>
+ </message>
+ <message>
+ <source>&amp;OK</source>
+ <translation>&amp;OK</translation>
+ </message>
+ <message>
+ <source>&amp;Cancel</source>
+ <translation>О&amp;тменить</translation>
+ </message>
+ <message>
+ <source>&amp;Add</source>
+ <translation>&amp;Добавить</translation>
+ </message>
+ <message>
+ <source>Alt+A</source>
+ <translation>Alt+Д</translation>
+ </message>
+ <message>
+ <source>Predefined Controller:</source>
+ <translation>Уже назначенный контроллер:</translation>
+ </message>
+ <message>
+ <source>Managed Controller for Port</source>
+ <translation>ÐаÑтроенный контроллер Ð´Ð»Ñ Ð¿Ð¾Ñ€Ñ‚Ð°</translation>
+ </message>
+ <message>
+ <source>Channel</source>
+ <translation>Канал</translation>
+ </message>
+ <message>
+ <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="unfinished"></translation>
+ </message>
+ <message>
+ <source>Pitch</source>
+ <translation>Ð’Ñ‹Ñота тона</translation>
+ </message>
+ <message>
+ <source>Program</source>
+ <translation>Программа</translation>
+ </message>
+ <message>
+ <source>Midi Controller Number High Byte</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Midi Controller Number Low Byte</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Range</source>
+ <translation>Диапазон</translation>
+ </message>
+</context>
+<context>
+ <name>MidiFilterConfigBase</name>
+ <message>
+ <source>MusE: Midi Input Filter</source>
+ <translation>MusE: Фильтр входÑщих MIDI-Ñобытий</translation>
+ </message>
+ <message>
+ <source>Record Filter</source>
+ <translation>Фильтр запиÑи</translation>
+ </message>
+ <message>
+ <source>Note On</source>
+ <translation>Note On</translation>
+ </message>
+ <message>
+ <source>Poly Pressure</source>
+ <translation>ПолифоничеÑкое поÑлекаÑание</translation>
+ </message>
+ <message>
+ <source>Controller</source>
+ <translation>Контроллер</translation>
+ </message>
+ <message>
+ <source>Program Change</source>
+ <translation>Смена программы</translation>
+ </message>
+ <message>
+ <source>After Touch</source>
+ <translation>ПоÑлекаÑание</translation>
+ </message>
+ <message>
+ <source>Pitch Bend</source>
+ <translation>Смена выÑоты звука</translation>
+ </message>
+ <message>
+ <source>Sysex</source>
+ <translation>SysEx</translation>
+ </message>
+ <message>
+ <source>Thru Filter</source>
+ <translation>Thru-фильтр</translation>
+ </message>
+ <message>
+ <source>Controller Filter</source>
+ <translation>Фильтр контроллеров</translation>
+ </message>
+ <message>
+ <source>Channel Filter</source>
+ <translation>Фильтр каналов</translation>
+ </message>
+ <message>
+ <source>14</source>
+ <translation>14</translation>
+ </message>
+ <message>
+ <source>10</source>
+ <translation>10</translation>
+ </message>
+ <message>
+ <source>6</source>
+ <translation>6</translation>
+ </message>
+ <message>
+ <source>12</source>
+ <translation>12</translation>
+ </message>
+ <message>
+ <source>4</source>
+ <translation>4</translation>
+ </message>
+ <message>
+ <source>2</source>
+ <translation>2</translation>
+ </message>
+ <message>
+ <source>9</source>
+ <translation>9</translation>
+ </message>
+ <message>
+ <source>8</source>
+ <translation>8</translation>
+ </message>
+ <message>
+ <source>3</source>
+ <translation>3</translation>
+ </message>
+ <message>
+ <source>13</source>
+ <translation>13</translation>
+ </message>
+ <message>
+ <source>15</source>
+ <translation>15</translation>
+ </message>
+ <message>
+ <source>16</source>
+ <translation>16</translation>
+ </message>
+ <message>
+ <source>7</source>
+ <translation>7</translation>
+ </message>
+ <message>
+ <source>11</source>
+ <translation>11</translation>
+ </message>
+ <message>
+ <source>5</source>
+ <translation>5</translation>
+ </message>
+ <message>
+ <source>1</source>
+ <translation>1</translation>
+ </message>
+</context>
+<context>
+ <name>MidiInputTransformDialog</name>
+ <message>
+ <source>New</source>
+ <translation>Ðовый</translation>
+ </message>
+</context>
+<context>
+ <name>MidiInputTransformDialogBase</name>
+ <message>
+ <source>MusE: Midi Input Transformator</source>
+ <translation>MusE: Преобразование входÑщих MIDI-Ñообщений</translation>
+ </message>
+ <message>
+ <source>Filter</source>
+ <translation>Фильтр</translation>
+ </message>
+ <message>
+ <source>All</source>
+ <translation>Ð’Ñе</translation>
+ </message>
+ <message>
+ <source>Equal</source>
+ <translation>Равно</translation>
+ </message>
+ <message>
+ <source>Unequal</source>
+ <translation>Ðе равно</translation>
+ </message>
+ <message>
+ <source>Note</source>
+ <translation>Ðота</translation>
+ </message>
+ <message>
+ <source>Poly Pressure</source>
+ <translation>ПолифоничеÑкое поÑлекаÑание</translation>
+ </message>
+ <message>
+ <source>Control Change</source>
+ <translation>Смена контроллера</translation>
+ </message>
+ <message>
+ <source>Aftertouch</source>
+ <translation>ПоÑлекаÑание</translation>
+ </message>
+ <message>
+ <source>Pitch Bend</source>
+ <translation>Смена выÑоты звука</translation>
+ </message>
+ <message>
+ <source>NRPN</source>
+ <translation>NRPN</translation>
+ </message>
+ <message>
+ <source>RPN</source>
+ <translation>RPN</translation>
+ </message>
+ <message>
+ <source>Value 2</source>
+ <translation>Значение 2</translation>
+ </message>
+ <message>
+ <source>Value 1</source>
+ <translation>Значение 1</translation>
+ </message>
+ <message>
+ <source>Event Type</source>
+ <translation>Тип ÑобытиÑ</translation>
+ </message>
+ <message>
+ <source>Ignore</source>
+ <translation>Игнорировать</translation>
+ </message>
+ <message>
+ <source>Higher</source>
+ <translation>Выше</translation>
+ </message>
+ <message>
+ <source>Lower</source>
+ <translation>Ðиже</translation>
+ </message>
+ <message>
+ <source>Inside</source>
+ <translation>Внутри</translation>
+ </message>
+ <message>
+ <source>Outside</source>
+ <translation>Снаружи</translation>
+ </message>
+ <message>
+ <source>Channel</source>
+ <translation>Канал</translation>
+ </message>
+ <message>
+ <source>Port</source>
+ <translation>Порт</translation>
+ </message>
+ <message>
+ <source>Processing</source>
+ <translation>Идёт обработка</translation>
+ </message>
+ <message>
+ <source>Keep</source>
+ <translation>Сохранить</translation>
+ </message>
+ <message>
+ <source>Fix</source>
+ <translation>Поправить</translation>
+ </message>
+ <message>
+ <source>Plus</source>
+ <translation>ПлюÑ</translation>
+ </message>
+ <message>
+ <source>Minus</source>
+ <translation>МинуÑ</translation>
+ </message>
+ <message>
+ <source>Multiply</source>
+ <translation>Умножить</translation>
+ </message>
+ <message>
+ <source>Divide</source>
+ <translation>Разделить</translation>
+ </message>
+ <message>
+ <source>Invert</source>
+ <translation>Инвертировать</translation>
+ </message>
+ <message>
+ <source>ScaleMap</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Flip</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Dyn</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Random</source>
+ <translation>Случайно</translation>
+ </message>
+ <message>
+ <source>Modules</source>
+ <translation>Модули</translation>
+ </message>
+ <message>
+ <source>1</source>
+ <translation>1</translation>
+ </message>
+ <message>
+ <source>2</source>
+ <translation>2</translation>
+ </message>
+ <message>
+ <source>3</source>
+ <translation>3</translation>
+ </message>
+ <message>
+ <source>4</source>
+ <translation>4</translation>
+ </message>
+ <message>
+ <source>enable modul 1</source>
+ <translation>разрешить модуль 1</translation>
+ </message>
+ <message>
+ <source>enable modul 2</source>
+ <translation>разрешить модуль 2</translation>
+ </message>
+ <message>
+ <source>enable modul 3</source>
+ <translation>разрешить модуль 3</translation>
+ </message>
+ <message>
+ <source>enable modul 4</source>
+ <translation>разрешить модуль 4</translation>
+ </message>
+ <message>
+ <source>Preset</source>
+ <translation>ПредуÑтановка</translation>
+ </message>
+ <message>
+ <source>Name:</source>
+ <translation>ИмÑ:</translation>
+ </message>
+ <message>
+ <source>Comment:</source>
+ <translation>Комментарий:</translation>
+ </message>
+ <message>
+ <source>Function</source>
+ <translation>ФункциÑ</translation>
+ </message>
+ <message>
+ <source>&amp;New</source>
+ <translation>&amp;Ðовый</translation>
+ </message>
+ <message>
+ <source>create new preset</source>
+ <translation>Ñоздать новую предуÑтановку</translation>
+ </message>
+ <message>
+ <source>&amp;Delete</source>
+ <translation>&amp;Удалить</translation>
+ </message>
+ <message>
+ <source>delete preset</source>
+ <translation>удалить предуÑтановку</translation>
+ </message>
+ <message>
+ <source>&amp;Dismiss</source>
+ <translation>&amp;ПропуÑтить</translation>
+ </message>
+ <message>
+ <source>PresetList</source>
+ <translation>СпиÑок предуÑтановок</translation>
+ </message>
+</context>
+<context>
+ <name>MidiPortRouteBase</name>
+ <message>
+ <source>MusE: Midi Port Routing</source>
+ <translation>MusE: маршруты между MIDI-портами</translation>
+ </message>
+ <message>
+ <source>Port 2</source>
+ <translation>Порт 2</translation>
+ </message>
+ <message>
+ <source>Output</source>
+ <translation>Выход</translation>
+ </message>
+ <message>
+ <source>Input</source>
+ <translation>Вход</translation>
+ </message>
+</context>
+<context>
+ <name>MidiStrip</name>
+ <message>
+ <source>VariationSend</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Var</source>
+ <translation type="unfinished">Вар</translation>
+ </message>
+ <message>
+ <source>ReverbSend</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Rev</source>
+ <translation type="unfinished">Ревер</translation>
+ </message>
+ <message>
+ <source>ChorusSend</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cho</source>
+ <translation type="unfinished">Хор</translation>
+ </message>
+ <message>
+ <source>off</source>
+ <translation type="unfinished">выкл</translation>
+ </message>
+ <message>
+ <source>dB</source>
+ <translation type="unfinished">Дб</translation>
+ </message>
+ <message>
+ <source>Pan/Balance</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Pan</source>
+ <translation type="unfinished">Пан</translation>
+ </message>
+ <message>
+ <source>record</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>mute</source>
+ <translation type="unfinished">приглушить</translation>
+ </message>
+ <message>
+ <source>pre fader listening</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Route</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>set routing</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Off</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Read</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Touch</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Write</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>automation type</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>MidiSyncConfigBase</name>
+ <message>
+ <source>MusE: Midi Sync</source>
+ <translation>MusE: MIDI-Ñинхр.</translation>
+ </message>
+ <message>
+ <source>Sync Mode</source>
+ <translation>Режим Ñинхр.</translation>
+ </message>
+ <message>
+ <source>Master</source>
+ <translation>Ведущий</translation>
+ </message>
+ <message>
+ <source>Slave</source>
+ <translation>Ведомый</translation>
+ </message>
+ <message>
+ <source>Sync Source</source>
+ <translation>ИÑточник Ñинхр.</translation>
+ </message>
+ <message>
+ <source>accept MTC</source>
+ <translation>принÑÑ‚ÑŒ MTC</translation>
+ </message>
+ <message>
+ <source>accept Midi Clock</source>
+ <translation>принÑÑ‚ÑŒ MIDI Clock</translation>
+ </message>
+ <message>
+ <source>accept MMC</source>
+ <translation>принÑÑ‚ÑŒ MMC</translation>
+ </message>
+ <message>
+ <source>Id:</source>
+ <translation>Id:</translation>
+ </message>
+ <message>
+ <source>device id</source>
+ <translation>id уÑтройÑтва</translation>
+ </message>
+ <message>
+ <source>Port:</source>
+ <translation>Порт:</translation>
+ </message>
+ <message>
+ <source>all</source>
+ <translation>вÑе</translation>
+ </message>
+ <message>
+ <source>midi port</source>
+ <translation>MIDI-порт</translation>
+ </message>
+ <message>
+ <source>Sync Gen</source>
+ <translation>Генератор ÑинхроимпульÑов</translation>
+ </message>
+ <message>
+ <source>Midi Time Code (MTC)</source>
+ <translation>Midi Time Code (MTC)</translation>
+ </message>
+ <message>
+ <source>Midi Clock</source>
+ <translation>MIDI Clock</translation>
+ </message>
+ <message>
+ <source>Midi Machine Control (MMC)</source>
+ <translation>Midi Machine Control (MMC)</translation>
+ </message>
+ <message>
+ <source>Apply</source>
+ <translation>Применить</translation>
+ </message>
+ <message>
+ <source>Ok</source>
+ <translation>ОК</translation>
+ </message>
+ <message>
+ <source>Cancel</source>
+ <translation>Отменить</translation>
+ </message>
+ <message>
+ <source>MTC</source>
+ <translation>MТC</translation>
+ </message>
+ <message>
+ <source>Type:</source>
+ <translation>Тип:</translation>
+ </message>
+ <message>
+ <source>24</source>
+ <translation>24</translation>
+ </message>
+ <message>
+ <source>25</source>
+ <translation>25</translation>
+ </message>
+ <message>
+ <source>30D</source>
+ <translation>30D</translation>
+ </message>
+ <message>
+ <source>30N</source>
+ <translation>30D</translation>
+ </message>
+ <message>
+ <source>Offset:</source>
+ <translation>Смещение:</translation>
+ </message>
+ <message>
+ <source>hour</source>
+ <translation>чаÑов</translation>
+ </message>
+ <message>
+ <source>h</source>
+ <translation>ч</translation>
+ </message>
+ <message>
+ <source>minute</source>
+ <translation>минут</translation>
+ </message>
+ <message>
+ <source>m</source>
+ <translation>м</translation>
+ </message>
+ <message>
+ <source>second</source>
+ <translation>Ñекунд</translation>
+ </message>
+ <message>
+ <source>s</source>
+ <translation>Ñ</translation>
+ </message>
+ <message>
+ <source>frame</source>
+ <translation>кадров</translation>
+ </message>
+ <message>
+ <source>f</source>
+ <translation>к</translation>
+ </message>
+ <message>
+ <source>subframe</source>
+ <translation>Ñубкадров</translation>
+ </message>
+</context>
+<context>
+ <name>MidiTrackInfoBase</name>
+ <message>
+ <source>MusE: TrackInfo</source>
+ <translation>MusE: Инфо о дорожке</translation>
+ </message>
+ <message>
+ <source>output channel</source>
+ <translation>канал выхода</translation>
+ </message>
+ <message>
+ <source>all midi events are send to this output channel</source>
+ <translation>вÑе midi-ÑÐ¾Ð±Ñ‹Ñ‚Ð¸Ñ Ð¿Ð¾ÑылаютÑÑ Ð² Ñтот канал выхода</translation>
+ </message>
+ <message>
+ <source>Track Info</source>
+ <translation>Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¾ дорожке</translation>
+ </message>
+ <message>
+ <source>%</source>
+ <translation>%</translation>
+ </message>
+ <message>
+ <source>Track Name</source>
+ <translation>Ð˜Ð¼Ñ Ð´Ð¾Ñ€Ð¾Ð¶ÐºÐ¸</translation>
+ </message>
+ <message>
+ <source>output port</source>
+ <translation>порт выхода</translation>
+ </message>
+ <message>
+ <source>off</source>
+ <translation>выкл</translation>
+ </message>
+ <message>
+ <source>change stereo position</source>
+ <translation>изменить Ñтереопозицию</translation>
+ </message>
+ <message>
+ <source>OCh.</source>
+ <translation>Вых.канал</translation>
+ </message>
+ <message>
+ <source>???</source>
+ <translation>???</translation>
+ </message>
+ <message>
+ <source>select instrument patch</source>
+ <translation>выбрать патч инÑтрумента</translation>
+ </message>
+ <message>
+ <source>Transp.</source>
+ <translation>ТранÑп.</translation>
+ </message>
+ <message>
+ <source>Volume</source>
+ <translation>ГромкоÑÑ‚ÑŒ</translation>
+ </message>
+ <message>
+ <source>Channel Info</source>
+ <translation>Инфо о канале</translation>
+ </message>
+ <message>
+ <source>Pan</source>
+ <translation>Пан</translation>
+ </message>
+ <message>
+ <source>Delay</source>
+ <translation>Задержка</translation>
+ </message>
+ <message>
+ <source>H-Bank</source>
+ <translation>H-банк</translation>
+ </message>
+ <message>
+ <source>Compr.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>L-Bank</source>
+ <translation>L-банк</translation>
+ </message>
+ <message>
+ <source>Progr.</source>
+ <translation>Прогр.</translation>
+ </message>
+ <message>
+ <source>Velocity</source>
+ <translation>Сила нажатиÑ</translation>
+ </message>
+ <message>
+ <source>Length</source>
+ <translation>ПродолжительноÑÑ‚ÑŒ</translation>
+ </message>
+ <message>
+ <source>input ports</source>
+ <translation>порты входа</translation>
+ </message>
+ <message>
+ <source>IChan.</source>
+ <translation>Вх.канал</translation>
+ </message>
+ <message>
+ <source>input channels</source>
+ <translation>порты входа</translation>
+ </message>
+ <message>
+ <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>Ð¡Ð¾Ð±Ñ‹Ñ‚Ð¸Ñ Ñо вÑех наÑтроенных каналов
+запиÑываютÑÑ Ð² Ñту дорожку.
+Вы можете указать больше одного канала
+запиÑи:
+ 1 2 3 запиÑывать Ñ ÐºÐ°Ð½Ð°Ð»Ð¾Ð² 1, 2 и 3
+ 1-3 то же Ñамое
+ 1-3 5 запиÑывать из каналов 1, 2, 3 и 5</translation>
+ </message>
+ <message>
+ <source>record:</source>
+ <translation>ЗапиÑать:</translation>
+ </message>
+ <message>
+ <source>Rec</source>
+ <translation>Зап</translation>
+ </message>
+ <message>
+ <source>add settings to song</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Bank Select LSB</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Bank Select MSB</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>MidiTransformDialogBase</name>
+ <message>
+ <source>MusE: Midi Transformator</source>
+ <translation>MusE: Преобразование MIDI-Ñообщений</translation>
+ </message>
+ <message>
+ <source>&amp;New</source>
+ <translation>&amp;ÐоваÑ</translation>
+ </message>
+ <message>
+ <source>&amp;Delete</source>
+ <translation>У&amp;далить</translation>
+ </message>
+ <message>
+ <source>&amp;Apply</source>
+ <translation>&amp;Применить</translation>
+ </message>
+ <message>
+ <source>&amp;OK</source>
+ <translation>&amp;ОК</translation>
+ </message>
+ <message>
+ <source>&amp;Cancel</source>
+ <translation>О&amp;тменить</translation>
+ </message>
+ <message>
+ <source>PresetList</source>
+ <translation>СпиÑок предуÑтановок</translation>
+ </message>
+ <message>
+ <source>Processing</source>
+ <translation>Обработка</translation>
+ </message>
+ <message>
+ <source>Event Type</source>
+ <translation>Тип ÑобытиÑ</translation>
+ </message>
+ <message>
+ <source>Keep</source>
+ <translation>Сохранить</translation>
+ </message>
+ <message>
+ <source>Fix</source>
+ <translation>Поправить</translation>
+ </message>
+ <message>
+ <source>Note</source>
+ <translation>Ðота</translation>
+ </message>
+ <message>
+ <source>Poly Pressure</source>
+ <translation>ПолифоничеÑкое поÑлекаÑание</translation>
+ </message>
+ <message>
+ <source>Control Change</source>
+ <translation>Смена контроллера</translation>
+ </message>
+ <message>
+ <source>Aftertouch</source>
+ <translation>ПоÑлекаÑание</translation>
+ </message>
+ <message>
+ <source>Pitch Bend</source>
+ <translation>Смена выÑоты звука</translation>
+ </message>
+ <message>
+ <source>NRPN</source>
+ <translation>NRPN</translation>
+ </message>
+ <message>
+ <source>RPN</source>
+ <translation>RPN</translation>
+ </message>
+ <message>
+ <source>Plus</source>
+ <translation>ПлюÑ</translation>
+ </message>
+ <message>
+ <source>Minus</source>
+ <translation>МинуÑ</translation>
+ </message>
+ <message>
+ <source>Multiply</source>
+ <translation>Умножить</translation>
+ </message>
+ <message>
+ <source>Divide</source>
+ <translation>Разделить</translation>
+ </message>
+ <message>
+ <source>Value 2</source>
+ <translation>Значение 2</translation>
+ </message>
+ <message>
+ <source>Invert</source>
+ <translation>Инвертировать</translation>
+ </message>
+ <message>
+ <source>ScaleMap</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Flip</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Dyn</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Random</source>
+ <translation>Случайно</translation>
+ </message>
+ <message>
+ <source>Value 1</source>
+ <translation>Значение 1</translation>
+ </message>
+ <message>
+ <source>Length</source>
+ <translation>ПродолжительноÑÑ‚ÑŒ</translation>
+ </message>
+ <message>
+ <source>Position</source>
+ <translation>ПозициÑ</translation>
+ </message>
+ <message>
+ <source>Filter</source>
+ <translation>Фильтр</translation>
+ </message>
+ <message>
+ <source>All</source>
+ <translation>Ð’Ñе</translation>
+ </message>
+ <message>
+ <source>Equal</source>
+ <translation>Равные</translation>
+ </message>
+ <message>
+ <source>Unequal</source>
+ <translation>Ðе равные</translation>
+ </message>
+ <message>
+ <source>Ignore</source>
+ <translation>Игнорировать</translation>
+ </message>
+ <message>
+ <source>Higher</source>
+ <translation>Выше</translation>
+ </message>
+ <message>
+ <source>Lower</source>
+ <translation>Ðиже</translation>
+ </message>
+ <message>
+ <source>Inside</source>
+ <translation>Внутри</translation>
+ </message>
+ <message>
+ <source>Outside</source>
+ <translation>Снаружи</translation>
+ </message>
+ <message>
+ <source>Bar Range</source>
+ <translation>Ð¢Ð°ÐºÑ‚Ð¾Ð²Ð°Ñ Ð¾Ð±Ð»Ð°ÑÑ‚ÑŒ</translation>
+ </message>
+ <message>
+ <source>Preset</source>
+ <translation>ПредуÑтановка</translation>
+ </message>
+ <message>
+ <source>Name:</source>
+ <translation>ИмÑ:</translation>
+ </message>
+ <message>
+ <source>Comment:</source>
+ <translation>Комментарий:</translation>
+ </message>
+ <message>
+ <source>Range</source>
+ <translation>ОблаÑÑ‚ÑŒ</translation>
+ </message>
+ <message>
+ <source>process all events</source>
+ <translation>обработать вÑе ÑобытиÑ</translation>
+ </message>
+ <message>
+ <source>selected tracks</source>
+ <translation>выделенные дорожки</translation>
+ </message>
+ <message>
+ <source>inside loop</source>
+ <translation>Внутри цикла</translation>
+ </message>
+ <message>
+ <source>Function</source>
+ <translation>ФункциÑ</translation>
+ </message>
+ <message>
+ <source>Select</source>
+ <translation>Выделить</translation>
+ </message>
+ <message>
+ <source>Quantize</source>
+ <translation>Квантовать</translation>
+ </message>
+ <message>
+ <source>Delete</source>
+ <translation>Удалить</translation>
+ </message>
+ <message>
+ <source>Transform</source>
+ <translation>Преобразовать</translation>
+ </message>
+ <message>
+ <source>Insert</source>
+ <translation>Ð’Ñтавить</translation>
+ </message>
+ <message>
+ <source>Copy</source>
+ <translation>Скопировать</translation>
+ </message>
+ <message>
+ <source>Extract</source>
+ <translation>Извлечь</translation>
+ </message>
+ <message>
+ <source>Quantize Value</source>
+ <translation>Значение квантованиÑ</translation>
+ </message>
+</context>
+<context>
+ <name>MidiTransformerDialog</name>
+ <message>
+ <source>New</source>
+ <translation>Ðовый</translation>
+ </message>
+</context>
+<context>
+ <name>MixdownFileDialog</name>
+ <message>
+ <source>Wave Files (*.wav);;All Files (*)</source>
+ <translation>Файлы Wave (*.wav);;Ð’Ñе файлы (*)</translation>
+ </message>
+</context>
+<context>
+ <name>MixdownFileDialogBase</name>
+ <message>
+ <source>MusE: Set Mixdown Wavefile</source>
+ <translation>MusE: ÐаÑтроить параметры Wave-файла</translation>
+ </message>
+ <message>
+ <source>&amp;OK</source>
+ <translation>&amp;OK</translation>
+ </message>
+ <message>
+ <source>&amp;Cancel</source>
+ <translation>О&amp;тменить</translation>
+ </message>
+ <message>
+ <source>File Path</source>
+ <translation>Путь к файлу</translation>
+ </message>
+ <message>
+ <source>Channel</source>
+ <translation>Канал</translation>
+ </message>
+ <message>
+ <source>Stereo</source>
+ <translation>Стерео</translation>
+ </message>
+ <message>
+ <source>Mono</source>
+ <translation>Моно</translation>
+ </message>
+ <message>
+ <source>5.1</source>
+ <translation>5.1</translation>
+ </message>
+ <message>
+ <source>wav,16 Bit</source>
+ <translation>wav, 16 бит</translation>
+ </message>
+ <message>
+ <source>wav, 24 Bit</source>
+ <translation>wav, 24 бита</translation>
+ </message>
+ <message>
+ <source>wav, 32 Bit (float)</source>
+ <translation>wav, 32 бита (float)</translation>
+ </message>
+ <message>
+ <source>Format</source>
+ <translation>Формат</translation>
+ </message>
+</context>
+<context>
+ <name>MusE</name>
+ <message>
+ <source>Import Wave File</source>
+ <translation>Импортировать WAV-файл</translation>
+ </message>
+ <message>
+ <source>UndoRedo</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>undo</source>
+ <translation>отменить</translation>
+ </message>
+ <message>
+ <source>Und&amp;o</source>
+ <translation>&amp;Отменить</translation>
+ </message>
+ <message>
+ <source>redo</source>
+ <translation>повторить</translation>
+ </message>
+ <message>
+ <source>Re&amp;do</source>
+ <translation>&amp;Повторить</translation>
+ </message>
+ <message>
+ <source>undo last change to song</source>
+ <translation>отменить поÑледнее изменение композиции</translation>
+ </message>
+ <message>
+ <source>redo last undo</source>
+ <translation>повторить поÑледнюю отмену</translation>
+ </message>
+ <message>
+ <source>Transport</source>
+ <translation>Пульт управлениÑ</translation>
+ </message>
+ <message>
+ <source>loop</source>
+ <translation>цикл</translation>
+ </message>
+ <message>
+ <source>Loop</source>
+ <translation>Цикл</translation>
+ </message>
+ <message>
+ <source>punchin</source>
+ <translation>Ðачало врезки</translation>
+ </message>
+ <message>
+ <source>Punchin</source>
+ <translation>Ðачало врезки</translation>
+ </message>
+ <message>
+ <source>punchout</source>
+ <translation>Конец врезки</translation>
+ </message>
+ <message>
+ <source>Punchout</source>
+ <translation>Конец врезки</translation>
+ </message>
+ <message>
+ <source>start</source>
+ <translation>к началу</translation>
+ </message>
+ <message>
+ <source>Start</source>
+ <translation>К началу</translation>
+ </message>
+ <message>
+ <source>rewind</source>
+ <translation>перемотать назад</translation>
+ </message>
+ <message>
+ <source>Rewind</source>
+ <translation>Перемотать назад</translation>
+ </message>
+ <message>
+ <source>forward</source>
+ <translation>перемотать вперёд</translation>
+ </message>
+ <message>
+ <source>Forward</source>
+ <translation>Перемотать вперёд</translation>
+ </message>
+ <message>
+ <source>stop</source>
+ <translation>оÑтановить</translation>
+ </message>
+ <message>
+ <source>Stop</source>
+ <translation>ОÑтановить</translation>
+ </message>
+ <message>
+ <source>play</source>
+ <translation>воÑпроизвеÑти</translation>
+ </message>
+ <message>
+ <source>Play</source>
+ <translation>ВоÑпроизвеÑти</translation>
+ </message>
+ <message>
+ <source>record</source>
+ <translation>запиÑать</translation>
+ </message>
+ <message>
+ <source>Record</source>
+ <translation>ЗапиÑать</translation>
+ </message>
+ <message>
+ <source>panic</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Panic</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>new</source>
+ <translation>новый</translation>
+ </message>
+ <message>
+ <source>&amp;New</source>
+ <translation>&amp;Ðовый</translation>
+ </message>
+ <message>
+ <source>open</source>
+ <translation>открыть</translation>
+ </message>
+ <message>
+ <source>&amp;Open</source>
+ <translation>&amp;Открыть</translation>
+ </message>
+ <message>
+ <source>save</source>
+ <translation>Ñохранить</translation>
+ </message>
+ <message>
+ <source>&amp;Save</source>
+ <translation>&amp;Сохранить</translation>
+ </message>
+ <message>
+ <source>pianoroll</source>
+ <translation>pianoroll</translation>
+ </message>
+ <message>
+ <source>Pianoroll</source>
+ <translation>Pianoroll</translation>
+ </message>
+ <message>
+ <source>File Buttons</source>
+ <translation type="unfinished">Файловые кнопки</translation>
+ </message>
+ <message>
+ <source>&amp;File</source>
+ <translation>&amp;Файл</translation>
+ </message>
+ <message>
+ <source>Open &amp;Recent</source>
+ <translation>Открыть из &amp;недавних</translation>
+ </message>
+ <message>
+ <source>Save &amp;As</source>
+ <translation>Сохранить &amp;как</translation>
+ </message>
+ <message>
+ <source>Import Midifile</source>
+ <translation>Импортировать MIDI-файл</translation>
+ </message>
+ <message>
+ <source>Export Midifile</source>
+ <translation>ЭкÑпортировать MIDI-файл</translation>
+ </message>
+ <message>
+ <source>&amp;Quit</source>
+ <translation>Вы&amp;йти</translation>
+ </message>
+ <message>
+ <source>&amp;Edit</source>
+ <translation>&amp;Правка</translation>
+ </message>
+ <message>
+ <source>C&amp;ut</source>
+ <translation>&amp;Вырезать</translation>
+ </message>
+ <message>
+ <source>&amp;Copy</source>
+ <translation>С&amp;копировать</translation>
+ </message>
+ <message>
+ <source>&amp;Paste</source>
+ <translation>&amp;Ð’Ñтавить</translation>
+ </message>
+ <message>
+ <source>Add Track</source>
+ <translation>Добавить дорожку</translation>
+ </message>
+ <message>
+ <source>Select &amp;All</source>
+ <translation>Выделить &amp;вÑÑ‘</translation>
+ </message>
+ <message>
+ <source>&amp;Deselect All</source>
+ <translation>&amp;Убрать выделение</translation>
+ </message>
+ <message>
+ <source>Invert &amp;Selection</source>
+ <translation>Обратить в&amp;ыделение</translation>
+ </message>
+ <message>
+ <source>&amp;Inside Loop</source>
+ <translation>&amp;Внутри цикла</translation>
+ </message>
+ <message>
+ <source>&amp;Outside Loop</source>
+ <translation>&amp;Снаружи цикла</translation>
+ </message>
+ <message>
+ <source>All &amp;Parts on Track</source>
+ <translation>Ð’Ñе &amp;чаÑти в дорожке</translation>
+ </message>
+ <message>
+ <source>Select</source>
+ <translation>Выделить</translation>
+ </message>
+ <message>
+ <source>Drums</source>
+ <translation>Ударные</translation>
+ </message>
+ <message>
+ <source>List</source>
+ <translation>СпиÑок</translation>
+ </message>
+ <message>
+ <source>Graphic</source>
+ <translation>Графика</translation>
+ </message>
+ <message>
+ <source>Mastertrack</source>
+ <translation>МаÑтер-дорожка</translation>
+ </message>
+ <message>
+ <source>Midi &amp;Transform</source>
+ <translation>&amp;Преобразовать MIDI-ÑообщениÑ</translation>
+ </message>
+ <message>
+ <source>Modify Gate Time</source>
+ <translation>Изменить Ð²Ñ€ÐµÐ¼Ñ Ð·Ð²ÑƒÑ‡Ð°Ð½Ð¸Ñ</translation>
+ </message>
+ <message>
+ <source>Modify Velocity</source>
+ <translation>Изменить ÑкороÑÑ‚ÑŒ</translation>
+ </message>
+ <message>
+ <source>Crescendo</source>
+ <translation>Крещендо</translation>
+ </message>
+ <message>
+ <source>Transpose</source>
+ <translation>ТранÑпонировать</translation>
+ </message>
+ <message>
+ <source>Thin Out</source>
+ <translation>Удалить дубли</translation>
+ </message>
+ <message>
+ <source>Erase Event</source>
+ <translation>Удалить Ñобытие</translation>
+ </message>
+ <message>
+ <source>Note Shift</source>
+ <translation>Сдвиг ноты</translation>
+ </message>
+ <message>
+ <source>Move Clock</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Copy Measure</source>
+ <translation>Скопировать деление</translation>
+ </message>
+ <message>
+ <source>Erase Measure</source>
+ <translation>Стереть деление</translation>
+ </message>
+ <message>
+ <source>Delete Measure</source>
+ <translation>Удалить деление</translation>
+ </message>
+ <message>
+ <source>Create Measure</source>
+ <translation>Создать деление</translation>
+ </message>
+ <message>
+ <source>Mix Track</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Midi</source>
+ <translation>MIDI</translation>
+ </message>
+ <message>
+ <source>&amp;Structure</source>
+ <translation>&amp;Структура</translation>
+ </message>
+ <message>
+ <source>Global Cut</source>
+ <translation>Глобальное вырезание</translation>
+ </message>
+ <message>
+ <source>Global Insert</source>
+ <translation>Ð“Ð»Ð¾Ð±Ð°Ð»ÑŒÐ½Ð°Ñ Ð²Ñтавка</translation>
+ </message>
+ <message>
+ <source>Global Split</source>
+ <translation>Глобальное разделение</translation>
+ </message>
+ <message>
+ <source>Copy Range</source>
+ <translation>Скопировать облаÑÑ‚ÑŒ</translation>
+ </message>
+ <message>
+ <source>Cut Events</source>
+ <translation>Вырезать ÑобытиÑ</translation>
+ </message>
+ <message>
+ <source>Transport Panel</source>
+ <translation>Панель пульта управлениÑ</translation>
+ </message>
+ <message>
+ <source>Bigtime window</source>
+ <translation>Окно хронометра</translation>
+ </message>
+ <message>
+ <source>dont follow Song</source>
+ <translation>не Ñледовать за композицией</translation>
+ </message>
+ <message>
+ <source>follow page</source>
+ <translation>Ñледовать поÑтранично</translation>
+ </message>
+ <message>
+ <source>follow continuous</source>
+ <translation>Ñледовать плавно</translation>
+ </message>
+ <message>
+ <source>Global Settings</source>
+ <translation>Общие наÑтройки</translation>
+ </message>
+ <message>
+ <source>follow song</source>
+ <translation>Ñледовать за композицией</translation>
+ </message>
+ <message>
+ <source>Metronome</source>
+ <translation>Метроном</translation>
+ </message>
+ <message>
+ <source>Midi Sync</source>
+ <translation>MIDI-ÑинхронизациÑ</translation>
+ </message>
+ <message>
+ <source>Appearance settings</source>
+ <translation>ÐаÑтройки облика</translation>
+ </message>
+ <message>
+ <source>Midi Input Transform</source>
+ <translation>Преобразование входÑщих MIDI-Ñообщений</translation>
+ </message>
+ <message>
+ <source>Midi Input Filter</source>
+ <translation>Фильтр входÑщих MIDI-Ñобытий</translation>
+ </message>
+ <message>
+ <source>Midi Remote Control</source>
+ <translation>ДиÑтанционное управление MIDI</translation>
+ </message>
+ <message>
+ <source>&amp;Midi</source>
+ <translation>&amp;MIDI</translation>
+ </message>
+ <message>
+ <source>Mixer</source>
+ <translation>Микшер</translation>
+ </message>
+ <message>
+ <source>Input Plugins</source>
+ <translation>Модули на входе</translation>
+ </message>
+ <message>
+ <source>Reset Instr.</source>
+ <translation>Перегрузить инÑтрументы</translation>
+ </message>
+ <message>
+ <source>Init Instr.</source>
+ <translation>ЗапуÑтить инÑтрументы</translation>
+ </message>
+ <message>
+ <source>local off</source>
+ <translation>откл. локальное управление</translation>
+ </message>
+ <message>
+ <source>&amp;Audio</source>
+ <translation>&amp;Звук</translation>
+ </message>
+ <message>
+ <source>Bounce to Track</source>
+ <translation>СвеÑти в дорожку</translation>
+ </message>
+ <message>
+ <source>Bounce to File</source>
+ <translation>СвеÑти в файл</translation>
+ </message>
+ <message>
+ <source>&amp;Help</source>
+ <translation>&amp;Помощь</translation>
+ </message>
+ <message>
+ <source>About&amp;Qt</source>
+ <translation>О &amp;Qt</translation>
+ </message>
+ <message>
+ <source>Unknown File Format</source>
+ <translation>ÐеизвеÑтный формат файла</translation>
+ </message>
+ <message>
+ <source>MusE: load project</source>
+ <translation>MusE: Открыть проект</translation>
+ </message>
+ <message>
+ <source>MusE: Write File failed</source>
+ <translation>MusE: Попытка запиÑать файл провалилаÑÑŒ</translation>
+ </message>
+ <message>
+ <source>The current Project contains unsaved data
+Save Current Project?</source>
+ <translation>Текущий проект Ñодержит не Ñохранённые данные.
+Сохранить текущий проект?</translation>
+ </message>
+ <message>
+ <source>&amp;Abort</source>
+ <translation>&amp;Прервать</translation>
+ </message>
+ <message>
+ <source>MusE: Save As</source>
+ <translation>MusE: Сохранить как</translation>
+ </message>
+ <message>
+ <source>MusE: Song: </source>
+ <translation>MusE: ПеÑнÑ:</translation>
+ </message>
+ <message>
+ <source>MusE: Import Midi</source>
+ <translation>MusE: импорт MIDI</translation>
+ </message>
+ <message>
+ <source>MusE: Export Midi</source>
+ <translation>MusE: ÑкÑпорт MIDI</translation>
+ </message>
+ <message>
+ <source>reading midifile
+ </source>
+ <translation>читаетÑÑ MIDI-файл
+ </translation>
+ </message>
+ <message>
+ <source>Nothing to edit</source>
+ <translation>Ðечего редактировать</translation>
+ </message>
+ <message>
+ <source>MusE: Copy Range</source>
+ <translation>MusE: Скопировать облаÑÑ‚ÑŒ</translation>
+ </message>
+ <message>
+ <source>not implemented</source>
+ <translation>не реализовано</translation>
+ </message>
+ <message>
+ <source>MusE: Cut Events</source>
+ <translation>MusE: Вырезать ÑобытиÑ</translation>
+ </message>
+ <message>
+ <source>MusE: Bounce to Track</source>
+ <translation>MusE: Сведение в дорожку</translation>
+ </message>
+ <message>
+ <source>more than one target track selected</source>
+ <translation>выбрано больше одной конечной дорожки</translation>
+ </message>
+ <message>
+ <source>wrong target track type,
+select wave track as target</source>
+ <translation>Ñто неправильный тип конечной дорожки,
+выберите звуковую дорожку</translation>
+ </message>
+ <message>
+ <source>no target track selected</source>
+ <translation>ÐºÐ¾Ð½ÐµÑ‡Ð½Ð°Ñ Ð´Ð¾Ñ€Ð¾Ð¶ÐºÐ° не выбрана</translation>
+ </message>
+ <message>
+ <source>The current Project contains unsaved data
+Load overwrites current Project:
+Save Current Project?</source>
+ <translation>Текущий проект Ñодержит не Ñохранённые данные.
+Загрузка нового проекта приведёт к перезапиÑи данных Ñтого.
+Сохранить текущий проект?</translation>
+ </message>
+ <message>
+ <source>no help found at: </source>
+ <translation>Ñправка не найдена в:</translation>
+ </message>
+ <message>
+ <source>MusE: Open Help</source>
+ <translation>MusE: Открыть Ñправку</translation>
+ </message>
+ <message>
+ <source>Midi Ports / Soft Synth</source>
+ <translation>MIDI-порты / Прогр. Ñинтезаторы</translation>
+ </message>
+ <message>
+ <source>to import a audio file you have first to selecta wave track</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Delete Selected Tracks</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>View</source>
+ <translation>Вид</translation>
+ </message>
+ <message>
+ <source>Restart Audio</source>
+ <translation>ПерезапуÑтить аудио</translation>
+ </message>
+ <message>
+ <source>Automation</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Mixer Automation</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Take Snapshot</source>
+ <translation>Сделать Ñнимок</translation>
+ </message>
+ <message>
+ <source>Clear Automation Data</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Settings</source>
+ <translation>ÐаÑтройки</translation>
+ </message>
+ <message>
+ <source>Configure shortcuts</source>
+ <translation>ÐаÑтроить горÑчие клавиши</translation>
+ </message>
+ <message>
+ <source>Midi File Export</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>&amp;Manual</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>&amp;MusE homepage</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>&amp;Report Bug...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>&amp;About MusE</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>What&apos;s &amp;This?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cannot read template</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>File open error</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>File read error</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>MusE: load template</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>MusE: Bounce</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>set left/right marker for bounce range</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>MusE: Bounce to File</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>no output track found</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Add midi file to current project?
+</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>&amp;Add to Project</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>&amp;Replace</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>
+failed: </source>
+ <translation type="unfinished">(new line)
+не удалоÑÑŒ:</translation>
+ </message>
+ <message>
+ <source>Import Part</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Marker View</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>&amp;Skip</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Import part is only valid for midi tracks!</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>MusE: load part</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>No track selected for import</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>NewPreset</name>
+ <message>
+ <source>New preset</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Preset Name</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>INIT VOICE</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Subcategory</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>NONE</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Category</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Bank</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Bank numerous</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Prog</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Program numerous</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>&amp;Cancel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Alt+C</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>&amp;Ok</source>
+ <translation type="unfinished">&amp;ОК</translation>
+ </message>
+ <message>
+ <source>Alt+O</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>NoteInfo</name>
+ <message>
+ <source>Note Info</source>
+ <translation>Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¾ ноте</translation>
+ </message>
+ <message>
+ <source>Start</source>
+ <translation>Ðачало</translation>
+ </message>
+ <message>
+ <source>Len</source>
+ <translation>Длн</translation>
+ </message>
+ <message>
+ <source>Pitch</source>
+ <translation>Ð’Ñ‹Ñота тона</translation>
+ </message>
+ <message>
+ <source>Velo On</source>
+ <translation>Скор. вкл</translation>
+ </message>
+ <message>
+ <source>Velo Off</source>
+ <translation>Скор. выкл</translation>
+ </message>
+</context>
+<context>
+ <name>OrganGuiBase</name>
+ <message>
+ <source>MusE: Organ</source>
+ <translation>MusE: Орган</translation>
+ </message>
+ <message>
+ <source>O-1</source>
+ <translation>O-1</translation>
+ </message>
+ <message>
+ <source>Oscillator</source>
+ <translation>ОÑциллÑтор</translation>
+ </message>
+ <message>
+ <source>Brass</source>
+ <translation>Медные духовые</translation>
+ </message>
+ <message>
+ <source>Reed</source>
+ <translation>Язычковые деревÑнные духовые</translation>
+ </message>
+ <message>
+ <source>Flute</source>
+ <translation>Флейта</translation>
+ </message>
+ <message>
+ <source>16&apos;</source>
+ <translation>16&apos;</translation>
+ </message>
+ <message>
+ <source>4&apos;</source>
+ <translation>4&apos;</translation>
+ </message>
+ <message>
+ <source>2 2/3&apos;</source>
+ <translation>2 2/3&apos;</translation>
+ </message>
+ <message>
+ <source>2&apos;</source>
+ <translation>2&apos;</translation>
+ </message>
+ <message>
+ <source>8&apos;</source>
+ <translation>8&apos;</translation>
+ </message>
+ <message>
+ <source>5 1/3&apos;</source>
+ <translation>5 1/3&apos;</translation>
+ </message>
+ <message>
+ <source>Drawbars</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Envelope Hi</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Release</source>
+ <translation>Затухание</translation>
+ </message>
+ <message>
+ <source>Sustain</source>
+ <translation>Продление</translation>
+ </message>
+ <message>
+ <source>Decay</source>
+ <translation>Первичное затухание</translation>
+ </message>
+ <message>
+ <source>Attack</source>
+ <translation>Ðтака</translation>
+ </message>
+ <message>
+ <source>ms</source>
+ <translation>мÑ</translation>
+ </message>
+ <message>
+ <source>cB</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Envelope Lo</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Velocity</source>
+ <translation>СкороÑÑ‚ÑŒ</translation>
+ </message>
+</context>
+<context>
+ <name>PartCanvas</name>
+ <message>
+ <source>Cannot copy/move/clone to different Track-Type</source>
+ <translation>Ðевозможно копировать/перемещать/клонировать данные в иные типы дорожек</translation>
+ </message>
+ <message>
+ <source>C&amp;ut</source>
+ <translation>&amp;Вырезать</translation>
+ </message>
+ <message>
+ <source>&amp;Copy</source>
+ <translation>С&amp;копировать</translation>
+ </message>
+ <message>
+ <source>rename</source>
+ <translation>Переименовать</translation>
+ </message>
+ <message>
+ <source>color</source>
+ <translation>Цвет</translation>
+ </message>
+ <message>
+ <source>delete</source>
+ <translation>Удалить</translation>
+ </message>
+ <message>
+ <source>split</source>
+ <translation>Разделить</translation>
+ </message>
+ <message>
+ <source>glue</source>
+ <translation>Склеить</translation>
+ </message>
+ <message>
+ <source>de-clone</source>
+ <translation>Деклонировать</translation>
+ </message>
+ <message>
+ <source>pianoroll</source>
+ <translation>Pianoroll</translation>
+ </message>
+ <message>
+ <source>list</source>
+ <translation>Редактор ÑпиÑка Ñобытий</translation>
+ </message>
+ <message>
+ <source>drums</source>
+ <translation>Редактор ударных</translation>
+ </message>
+ <message>
+ <source>wave edit</source>
+ <translation>Редактор Ñемплов</translation>
+ </message>
+ <message>
+ <source>Cannot paste: multiple tracks selected</source>
+ <translation>Ð’Ñтавка невозможна: выделено неÑколько дорожек</translation>
+ </message>
+ <message>
+ <source>Cannot paste: no track selected</source>
+ <translation>Ð’Ñтавка невозможна: не выделено ни одной дорожек</translation>
+ </message>
+ <message>
+ <source>Cannot paste: wrong data type</source>
+ <translation>Ð’Ñтавка невозможна: неправильный тип данных</translation>
+ </message>
+ <message>
+ <source>Can only paste to midi/drum track</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Can only paste to wave track</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>export</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>MusE: save part</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>PatchBay</name>
+ <message>
+ <source>MusE: ALSA MIDI Patch Bay</source>
+ <translation>MusE: ALSA MIDI Patch Bay</translation>
+ </message>
+</context>
+<context>
+ <name>PatchBayBase</name>
+ <message>
+ <source>ALSA Patch Bay</source>
+ <translation>ALSA Patch Bay</translation>
+ </message>
+</context>
+<context>
+ <name>PianoRoll</name>
+ <message>
+ <source>&amp;Edit</source>
+ <translation>&amp;Правка</translation>
+ </message>
+ <message>
+ <source>Cut</source>
+ <translation>Вырезать</translation>
+ </message>
+ <message>
+ <source>Copy</source>
+ <translation>Скопировать</translation>
+ </message>
+ <message>
+ <source>Paste</source>
+ <translation>Ð’Ñтавить</translation>
+ </message>
+ <message>
+ <source>Delete Events</source>
+ <translation>Удалить ÑобытиÑ</translation>
+ </message>
+ <message>
+ <source>Select All</source>
+ <translation>Выделить вÑÑ‘</translation>
+ </message>
+ <message>
+ <source>Select None</source>
+ <translation>Убрать выделение</translation>
+ </message>
+ <message>
+ <source>Invert</source>
+ <translation>Инвертировать</translation>
+ </message>
+ <message>
+ <source>Inside Loop</source>
+ <translation>Внутри цикла</translation>
+ </message>
+ <message>
+ <source>Outside Loop</source>
+ <translation>Вне цикла</translation>
+ </message>
+ <message>
+ <source>&amp;Select</source>
+ <translation>&amp;Выбрать</translation>
+ </message>
+ <message>
+ <source>blue</source>
+ <translation>голубой</translation>
+ </message>
+ <message>
+ <source>pitch colors</source>
+ <translation>цвета выÑоты тона</translation>
+ </message>
+ <message>
+ <source>velocity colors</source>
+ <translation>цвета ÑкороÑти</translation>
+ </message>
+ <message>
+ <source>&amp;Config</source>
+ <translation>&amp;ÐаÑтроить</translation>
+ </message>
+ <message>
+ <source>event color</source>
+ <translation>цвет ÑобытиÑ</translation>
+ </message>
+ <message>
+ <source>&amp;Functions</source>
+ <translation>&amp;Функции</translation>
+ </message>
+ <message>
+ <source>Over Quantize</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Note On Quantize</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Note On/Off Quantize</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Iterative Quantize</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Config Quant...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Modify Gate Time</source>
+ <translation>Изменить Ð²Ñ€ÐµÐ¼Ñ Ð·Ð²ÑƒÑ‡Ð°Ð½Ð¸Ñ</translation>
+ </message>
+ <message>
+ <source>Modify Velocity</source>
+ <translation>Изменить ÑкороÑÑ‚ÑŒ</translation>
+ </message>
+ <message>
+ <source>Crescendo</source>
+ <translation>Крещендо</translation>
+ </message>
+ <message>
+ <source>Transpose</source>
+ <translation>ТранÑпонировать</translation>
+ </message>
+ <message>
+ <source>Thin Out</source>
+ <translation>Удалить дубли</translation>
+ </message>
+ <message>
+ <source>Erase Event</source>
+ <translation>Удалить Ñобытие</translation>
+ </message>
+ <message>
+ <source>Note Shift</source>
+ <translation>Смещение ноты</translation>
+ </message>
+ <message>
+ <source>Move Clock</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Copy Measure</source>
+ <translation>Скопировать деление</translation>
+ </message>
+ <message>
+ <source>Erase Measure</source>
+ <translation>Стереть деление</translation>
+ </message>
+ <message>
+ <source>Delete Measure</source>
+ <translation>Удалить деление</translation>
+ </message>
+ <message>
+ <source>Create Measure</source>
+ <translation>Создать деление</translation>
+ </message>
+ <message>
+ <source>Pianoroll Tools</source>
+ <translation>ИнÑтрументы pianoroll</translation>
+ </message>
+ <message>
+ <source>Step Record</source>
+ <translation>ÐŸÐ¾ÑˆÐ°Ð³Ð¾Ð²Ð°Ñ Ð·Ð°Ð¿Ð¸ÑÑŒ</translation>
+ </message>
+ <message>
+ <source>Midi Input</source>
+ <translation>MIDI-вход</translation>
+ </message>
+ <message>
+ <source>Play Events</source>
+ <translation>ВоÑпроизвеÑти ÑобытиÑ</translation>
+ </message>
+ <message>
+ <source>ctrl</source>
+ <translation>кнтр</translation>
+ </message>
+ <message>
+ <source>Add Controller View</source>
+ <translation>Добавить вид контроллера</translation>
+ </message>
+ <message>
+ <source>Set fixed length</source>
+ <translation type="unfinished">УÑтановить фикÑ. продолжительноÑÑ‚ÑŒ</translation>
+ </message>
+</context>
+<context>
+ <name>PluginDialog</name>
+ <message>
+ <source>MusE: select plugin</source>
+ <translation>MusE: выбрать модуль</translation>
+ </message>
+ <message>
+ <source>Lib</source>
+ <translation>Библ.</translation>
+ </message>
+ <message>
+ <source>Label</source>
+ <translation>Метка</translation>
+ </message>
+ <message>
+ <source>Name</source>
+ <translation>ИмÑ</translation>
+ </message>
+ <message>
+ <source>AI</source>
+ <translation>AI</translation>
+ </message>
+ <message>
+ <source>AO</source>
+ <translation>AO</translation>
+ </message>
+ <message>
+ <source>CI</source>
+ <translation>CI</translation>
+ </message>
+ <message>
+ <source>CO</source>
+ <translation>CP</translation>
+ </message>
+ <message>
+ <source>IP</source>
+ <translation>IP</translation>
+ </message>
+ <message>
+ <source>id</source>
+ <translation>id</translation>
+ </message>
+ <message>
+ <source>Maker</source>
+ <translation>Создатель</translation>
+ </message>
+ <message>
+ <source>Copyright</source>
+ <translation>ÐвторÑкое право</translation>
+ </message>
+ <message>
+ <source>Ok</source>
+ <translation>Ok</translation>
+ </message>
+ <message>
+ <source>Cancel</source>
+ <translation>Отменить</translation>
+ </message>
+ <message>
+ <source>Stereo and Mono</source>
+ <translation>Стерео и моно</translation>
+ </message>
+ <message>
+ <source>Stereo</source>
+ <translation>Стерео</translation>
+ </message>
+ <message>
+ <source>Mono</source>
+ <translation>Моно</translation>
+ </message>
+ <message>
+ <source>All</source>
+ <translation>Ð’Ñе</translation>
+ </message>
+ <message>
+ <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>
+</context>
+<context>
+ <name>PluginGui</name>
+ <message>
+ <source>File Buttons</source>
+ <translation>Файловые кнопки</translation>
+ </message>
+ <message>
+ <source>Load Preset</source>
+ <translation>Загрузить предуÑтановку</translation>
+ </message>
+ <message>
+ <source>Save Preset</source>
+ <translation>Сохранить предуÑтановку</translation>
+ </message>
+ <message>
+ <source>bypass plugin</source>
+ <translation>обойти модуль</translation>
+ </message>
+ <message>
+ <source>MusE: load preset</source>
+ <translation>MusE: загрузить предуÑтановку</translation>
+ </message>
+ <message>
+ <source>MusE: save preset</source>
+ <translation>MusE: Ñохранить предуÑтановку</translation>
+ </message>
+</context>
+<context>
+ <name>QHeader</name>
+ <message>
+ <source>Port Number</source>
+ <translation>Ðомер порта</translation>
+ </message>
+ <message>
+ <source>enable gui for device</source>
+ <translation>разрешить GUI Ð´Ð»Ñ ÑƒÑтройÑтва</translation>
+ </message>
+ <message>
+ <source>Name of the midi device associated with this port number</source>
+ <translation>Ð˜Ð¼Ñ MIDI-уÑтройÑтва, аÑÑоциированного Ñ Ð½Ð¾Ð¼ÐµÑ€Ð¾Ð¼ Ñтого порта </translation>
+ </message>
+ <message>
+ <source>Instrument connected to port</source>
+ <translation>ИнÑтрумент, подÑоединённый к Ñтому порту</translation>
+ </message>
+ <message>
+ <source>State: result of opening the device</source>
+ <translation>СоÑтоÑние: результат Ð¾Ñ‚ÐºÑ€Ñ‹Ñ‚Ð¸Ñ ÑƒÑтройÑтва</translation>
+ </message>
+ <message>
+ <source>mute instrument</source>
+ <translation>приглушить инÑтрумент</translation>
+ </message>
+ <message>
+ <source>sound name</source>
+ <translation>Ð¸Ð¼Ñ Ð·Ð²ÑƒÐºÐ°</translation>
+ </message>
+ <message>
+ <source>quantisation
+currently not used</source>
+ <translation>квантование(new line)
+ÑÐµÐ¹Ñ‡Ð°Ñ Ð½Ðµ иÑпользуетÑÑ</translation>
+ </message>
+ <message>
+ <source>this input note triggers the sound</source>
+ <translation>Ñто входÑÑ‰Ð°Ñ Ð½Ð¾Ñ‚Ð° переключает звук</translation>
+ </message>
+ <message>
+ <source>note length</source>
+ <translation>продолжительноÑÑ‚ÑŒ ноты</translation>
+ </message>
+ <message>
+ <source>this note is send for the sound</source>
+ <translation>Ñто нота поÑлана Ð´Ð»Ñ Ð·Ð²ÑƒÐºÐ°</translation>
+ </message>
+ <message>
+ <source>output channel
+currently not used</source>
+ <translation>канал выхода(new line)
+ÑÐµÐ¹Ñ‡Ð°Ñ Ð½Ðµ иÑпользуетÑÑ</translation>
+ </message>
+ <message>
+ <source>output port
+currently not used</source>
+ <translation>порт выхода(new line)
+ÑÐµÐ¹Ñ‡Ð°Ñ Ð½Ðµ иÑпользуетÑÑ</translation>
+ </message>
+ <message>
+ <source>velocity level 1</source>
+ <translation>Уровень 1 Ñилы нажатиÑ</translation>
+ </message>
+ <message>
+ <source>velocity level 2</source>
+ <translation>Уровень 2 Ñилы нажатиÑ</translation>
+ </message>
+ <message>
+ <source>velocity level 3</source>
+ <translation>Уровень 3 Ñилы нажатиÑ</translation>
+ </message>
+ <message>
+ <source>velocity level 4</source>
+ <translation>Уровень 4 Ñилы нажатиÑ</translation>
+ </message>
+ <message>
+ <source>quantisation</source>
+ <translation>квантование</translation>
+ </message>
+ <message>
+ <source>output channel</source>
+ <translation>канал выхода</translation>
+ </message>
+ <message>
+ <source>output port</source>
+ <translation>порт выхода</translation>
+ </message>
+ <message>
+ <source>Enable Recording</source>
+ <translation>Разрешить запиÑÑŒ</translation>
+ </message>
+ <message>
+ <source>Mute Indicator</source>
+ <translation>Индикатор приглушениÑ</translation>
+ </message>
+ <message>
+ <source>Solo Indicator</source>
+ <translation>Индикатор Ñоло</translation>
+ </message>
+ <message>
+ <source>Track Type</source>
+ <translation>Тип дорожки</translation>
+ </message>
+ <message>
+ <source>Track Name</source>
+ <translation>Ð˜Ð¼Ñ Ð´Ð¾Ñ€Ð¾Ð¶ÐºÐ¸</translation>
+ </message>
+ <message>
+ <source>Output Channel Number</source>
+ <translation>Ðомер канала выхода</translation>
+ </message>
+ <message>
+ <source>Output Port</source>
+ <translation>Порт выхода</translation>
+ </message>
+ <message>
+ <source>Time Lock</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Solo/Pre Fader Listening</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>enables reading from device</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>enables writing to device</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QWidget</name>
+ <message>
+ <source>Cannot convert sysex string</source>
+ <translation>Ðевозможно преобразовать Ñтроку SysEx</translation>
+ </message>
+ <message>
+ <source>Hex String too long (2048 bytes limit)</source>
+ <translation>Hex-Ñтрока Ñлишком Ð´Ð»Ð¸Ð½Ð½Ð°Ñ (предел ÑоÑтавлÑет 2048 байтов)</translation>
+ </message>
+ <message>
+ <source>generic midi</source>
+ <translation>Обычный MIDI</translation>
+ </message>
+ <message>
+ <source>new</source>
+ <translation>новый</translation>
+ </message>
+ <message>
+ <source>create peakfile for </source>
+ <translation>Ñоздать пиковый файл длÑ</translation>
+ </message>
+ <message>
+ <source>MusE: get file name</source>
+ <translation>MusE: получить Ð¸Ð¼Ñ Ñ„Ð°Ð¹Ð»Ð°</translation>
+ </message>
+ <message>
+ <source>the directory
+</source>
+ <translation>каталог(new line)</translation>
+ </message>
+ <message>
+ <source>
+does not exist
+create?</source>
+ <translation>(new line)
+не ÑущеÑтвует(new line)
+Создать?</translation>
+ </message>
+ <message>
+ <source>&amp;Create</source>
+ <translation>&amp;Создать</translation>
+ </message>
+ <message>
+ <source>Cancel</source>
+ <translation>Отменить</translation>
+ </message>
+ <message>
+ <source>MusE: create directory</source>
+ <translation>MusE: Ñоздать каталог</translation>
+ </message>
+ <message>
+ <source>creating dir failed</source>
+ <translation>Ñоздание каталога не удалоÑÑŒ</translation>
+ </message>
+ <message>
+ <source>File
+</source>
+ <translation>Файл</translation>
+ </message>
+ <message>
+ <source>
+exists</source>
+ <translation>(new line)
+ÑущеÑтвует</translation>
+ </message>
+ <message>
+ <source>MusE: write</source>
+ <translation>MusE: запиÑать</translation>
+ </message>
+ <message>
+ <source>Overwrite</source>
+ <translation>ПерезапиÑать</translation>
+ </message>
+ <message>
+ <source>Quit</source>
+ <translation>Выйти</translation>
+ </message>
+ <message>
+ <source>Open File
+</source>
+ <translation>Открыть файл(new line)</translation>
+ </message>
+ <message>
+ <source>
+failed: </source>
+ <translation>(new line)
+не удалоÑÑŒ:</translation>
+ </message>
+ <message>
+ <source>MusE: Open File</source>
+ <translation>MusE: Открыть файл</translation>
+ </message>
+ <message>
+ <source>None</source>
+ <translation>Ðичего</translation>
+ </message>
+</context>
+<context>
+ <name>QuantConfig</name>
+ <message>
+ <source>MusE: Config Quantize</source>
+ <translation>MusE: наÑтройка квантованиÑ</translation>
+ </message>
+ <message>
+ <source>Config Quantize</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Strength</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Don&#xb4;t Quantize</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Quant Len</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>RhythmBase</name>
+ <message>
+ <source>MusE: Random Rhythm Generator</source>
+ <translation>MusE: Генератор Ñлучайного ритма</translation>
+ </message>
+ <message>
+ <source>Instrument Properties</source>
+ <translation>СвойÑтва инÑтрумента</translation>
+ </message>
+ <message>
+ <source>counts/bar</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>steps/count</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source># bars</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>test</source>
+ <translation>теÑÑ‚</translation>
+ </message>
+ <message>
+ <source>contrib</source>
+ <translation>внеÑти</translation>
+ </message>
+ <message>
+ <source>randomize</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Group 1</source>
+ <translation>Группа C</translation>
+ </message>
+ <message>
+ <source>Group 2</source>
+ <translation>Группа 2</translation>
+ </message>
+ <message>
+ <source>Group 3</source>
+ <translation>Группа 3</translation>
+ </message>
+ <message>
+ <source>Group 4</source>
+ <translation>Группа 4</translation>
+ </message>
+ <message>
+ <source>Group 5</source>
+ <translation>Группа 5</translation>
+ </message>
+ <message>
+ <source>listen</source>
+ <translation>проÑлушать</translation>
+ </message>
+ <message>
+ <source>Instrument</source>
+ <translation>ИнÑтрумент</translation>
+ </message>
+ <message>
+ <source>Group</source>
+ <translation>Группа</translation>
+ </message>
+ <message>
+ <source>&amp;New</source>
+ <translation>&amp;Ðовый</translation>
+ </message>
+ <message>
+ <source>create new entry</source>
+ <translation>Ñоздать новую запиÑÑŒ</translation>
+ </message>
+ <message>
+ <source>pressing the New button you create a new entry
+in the MusE list of defined controllers</source>
+ <translation>По нажатию кнопки &quot;ÐоваÑ&quot; ÑоздаётÑÑ Ð½Ð¾Ð²Ð°Ñ
+запиÑÑŒ в ÑпиÑок назначенных в MusE контроллеров</translation>
+ </message>
+ <message>
+ <source>&amp;Delete</source>
+ <translation>У&amp;далить</translation>
+ </message>
+ <message>
+ <source>delete selected entry</source>
+ <translation>удалить выделенное Ñобытие</translation>
+ </message>
+ <message>
+ <source>Up</source>
+ <translation>Вверх</translation>
+ </message>
+ <message>
+ <source>Down</source>
+ <translation>Вниз</translation>
+ </message>
+ <message>
+ <source>Instrument </source>
+ <translation>ИнÑтрумент</translation>
+ </message>
+ <message>
+ <source>steps/count </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>list of defined controllers</source>
+ <translation>ÑпиÑок назначенных контроллеров</translation>
+ </message>
+ <message>
+ <source>This is the MusE list of defined controllers.</source>
+ <translation>Это ÑпиÑок назначенных контроллеров Ð´Ð»Ñ MusE</translation>
+ </message>
+ <message>
+ <source>&amp;File</source>
+ <translation>&amp;Файл</translation>
+ </message>
+ <message>
+ <source>&amp;Edit</source>
+ <translation>&amp;Правка</translation>
+ </message>
+ <message>
+ <source>&amp;Help</source>
+ <translation>П&amp;омощь</translation>
+ </message>
+ <message>
+ <source>Tools</source>
+ <translation>СервиÑ</translation>
+ </message>
+ <message>
+ <source>New</source>
+ <translation>Ðовый</translation>
+ </message>
+ <message>
+ <source>Open</source>
+ <translation>Открыть</translation>
+ </message>
+ <message>
+ <source>&amp;Open...</source>
+ <translation>&amp;Открыть...</translation>
+ </message>
+ <message>
+ <source>Save</source>
+ <translation>Сохранить</translation>
+ </message>
+ <message>
+ <source>&amp;Save</source>
+ <translation>&amp;Сохранить</translation>
+ </message>
+ <message>
+ <source>Save As</source>
+ <translation>Сохранить как</translation>
+ </message>
+ <message>
+ <source>Save &amp;As...</source>
+ <translation>Сохранить &amp;как...</translation>
+ </message>
+ <message>
+ <source>Print</source>
+ <translation>Ðапечатать</translation>
+ </message>
+ <message>
+ <source>&amp;Print...</source>
+ <translation>&amp;Печать...</translation>
+ </message>
+ <message>
+ <source>Exit</source>
+ <translation>Выйти</translation>
+ </message>
+ <message>
+ <source>E&amp;xit</source>
+ <translation>В&amp;ыйти</translation>
+ </message>
+ <message>
+ <source>Undo</source>
+ <translation>Отменить</translation>
+ </message>
+ <message>
+ <source>&amp;Undo</source>
+ <translation>&amp;Отменить</translation>
+ </message>
+ <message>
+ <source>Redo</source>
+ <translation>Повторить</translation>
+ </message>
+ <message>
+ <source>&amp;Redo</source>
+ <translation>П&amp;овторить</translation>
+ </message>
+ <message>
+ <source>Cut</source>
+ <translation>Вырезать</translation>
+ </message>
+ <message>
+ <source>&amp;Cut</source>
+ <translation>&amp;Вырезать</translation>
+ </message>
+ <message>
+ <source>Copy</source>
+ <translation>Скопировать</translation>
+ </message>
+ <message>
+ <source>C&amp;opy</source>
+ <translation>С&amp;копировать</translation>
+ </message>
+ <message>
+ <source>Paste</source>
+ <translation>Ð’Ñтавить</translation>
+ </message>
+ <message>
+ <source>&amp;Paste</source>
+ <translation>&amp;Ð’Ñтавить</translation>
+ </message>
+ <message>
+ <source>Find</source>
+ <translation>Ðайти</translation>
+ </message>
+ <message>
+ <source>&amp;Find...</source>
+ <translation>&amp;Ðайти...</translation>
+ </message>
+ <message>
+ <source>Contents</source>
+ <translation>Содержание</translation>
+ </message>
+ <message>
+ <source>&amp;Contents...</source>
+ <translation>&amp;Содержание...</translation>
+ </message>
+ <message>
+ <source>Index</source>
+ <translation>ИндекÑ</translation>
+ </message>
+ <message>
+ <source>&amp;Index...</source>
+ <translation>&amp;ИндекÑ...</translation>
+ </message>
+ <message>
+ <source>About</source>
+ <translation>О программе</translation>
+ </message>
+ <message>
+ <source>&amp;About...</source>
+ <translation>&amp;О программе...</translation>
+ </message>
+ <message>
+ <source>&lt;b&gt;Notice!&lt;/b&gt;&lt;br&gt;
+Random Rhythm Generator is not enabled yet!</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Ctrl+N</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Ctrl+O</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Ctrl+S</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Ctrl+P</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Ctrl+Z</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Ctrl+Y</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Ctrl+X</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Ctrl+C</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Ctrl+V</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Ctrl+F</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>RhythmGenerator</name>
+ <message>
+ <source>Form3</source>
+ <translation>Form3</translation>
+ </message>
+ <message>
+ <source>Instrument Settings:</source>
+ <translation>ÐаÑтройки инÑтрумента:</translation>
+ </message>
+ <message>
+ <source>Instrument</source>
+ <translation>ИнÑтрумент</translation>
+ </message>
+ <message>
+ <source>Hi-Hat</source>
+ <translation>Хай-Ñ…ÑÑ‚</translation>
+ </message>
+ <message>
+ <source>add</source>
+ <translation>добавить</translation>
+ </message>
+ <message>
+ <source>delete</source>
+ <translation>удалить</translation>
+ </message>
+ <message>
+ <source>Group Settings:</source>
+ <translation>ÐаÑтройки группы:</translation>
+ </message>
+ <message>
+ <source>Group</source>
+ <translation>Группа</translation>
+ </message>
+ <message>
+ <source>Group 1</source>
+ <translation>Группа 1</translation>
+ </message>
+ <message>
+ <source>Group 2</source>
+ <translation>Группа 2</translation>
+ </message>
+ <message>
+ <source>Group 3</source>
+ <translation>Группа 3</translation>
+ </message>
+ <message>
+ <source>Group 4</source>
+ <translation>Группа 4</translation>
+ </message>
+ <message>
+ <source>Group 5</source>
+ <translation>Группа 5</translation>
+ </message>
+ <message>
+ <source>contrib</source>
+ <translation>внеÑти</translation>
+ </message>
+ <message>
+ <source>listen</source>
+ <translation>проÑлушать</translation>
+ </message>
+ <message>
+ <source>Randomize</source>
+ <translation>Случайным образом</translation>
+ </message>
+ <message>
+ <source>Rhythm Style:</source>
+ <translation>Стиль ритма:</translation>
+ </message>
+ <message>
+ <source>Clear</source>
+ <translation>ОчиÑтить</translation>
+ </message>
+ <message>
+ <source>Open...</source>
+ <translation>Открыть...</translation>
+ </message>
+ <message>
+ <source>Save</source>
+ <translation>Сохранить</translation>
+ </message>
+ <message>
+ <source>Save as...</source>
+ <translation>Сохранить как...</translation>
+ </message>
+ <message>
+ <source>Generate</source>
+ <translation>Создать</translation>
+ </message>
+ <message>
+ <source>Close</source>
+ <translation>Закрыть</translation>
+ </message>
+ <message>
+ <source></source>
+ <translation></translation>
+ </message>
+ <message>
+ <source>steps/count</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>count/bar</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source># bars</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>RouteDialogBase</name>
+ <message>
+ <source>MusE: Routing</source>
+ <translation>MusE: маршруты</translation>
+ </message>
+ <message>
+ <source>Add Route</source>
+ <translation>Добавить маршрут</translation>
+ </message>
+ <message>
+ <source>Source:</source>
+ <translation>ИÑточник:</translation>
+ </message>
+ <message>
+ <source>Destination:</source>
+ <translation>Ðазначение:</translation>
+ </message>
+ <message>
+ <source>Connect</source>
+ <translation>Соединить</translation>
+ </message>
+ <message>
+ <source>connect source to destination</source>
+ <translation>Соединить иÑточник Ñ Ð½Ð°Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸ÐµÐ¼</translation>
+ </message>
+ <message>
+ <source>Current Routes</source>
+ <translation>Текущие маршруты</translation>
+ </message>
+ <message>
+ <source>Source</source>
+ <translation>ИÑточник</translation>
+ </message>
+ <message>
+ <source>Destination</source>
+ <translation>Ðазначение</translation>
+ </message>
+ <message>
+ <source>Remove</source>
+ <translation>Удалить</translation>
+ </message>
+ <message>
+ <source>remove selected route</source>
+ <translation>Удалить выбранные маршруты</translation>
+ </message>
+</context>
+<context>
+ <name>SS_PluginChooserBase</name>
+ <message>
+ <source>SimpleDrums - Ladspa Plugin Chooser</source>
+ <translation>SimpleDrums - Выбор LADSPA-модулÑ</translation>
+ </message>
+ <message>
+ <source>Name</source>
+ <translation>ИмÑ</translation>
+ </message>
+ <message>
+ <source>Label</source>
+ <translation>Метка</translation>
+ </message>
+ <message>
+ <source>Inports</source>
+ <translation>Порты входа</translation>
+ </message>
+ <message>
+ <source>Outports</source>
+ <translation>Порты выхода</translation>
+ </message>
+ <message>
+ <source>Creator</source>
+ <translation>Создатель</translation>
+ </message>
+ <message>
+ <source>&amp;Cancel</source>
+ <translation>О&amp;тменить</translation>
+ </message>
+ <message>
+ <source>Alt+C</source>
+ <translation>Alt+Т</translation>
+ </message>
+ <message>
+ <source>&amp;OK</source>
+ <translation>&amp;ОК</translation>
+ </message>
+ <message>
+ <source>Alt+O</source>
+ <translation>Alt+О</translation>
+ </message>
+</context>
+<context>
+ <name>ScrollScale</name>
+ <message>
+ <source>next page</source>
+ <translation>Ñлед Ñтраница</translation>
+ </message>
+ <message>
+ <source>previous page</source>
+ <translation>пред Ñтраница</translation>
+ </message>
+ <message>
+ <source>current page number</source>
+ <translation>номер текущей Ñтраницы</translation>
+ </message>
+</context>
+<context>
+ <name>ShortcutCaptureDialog</name>
+ <message>
+ <source>Ok</source>
+ <translation>OK</translation>
+ </message>
+ <message>
+ <source>Cancel</source>
+ <translation>Отменить</translation>
+ </message>
+ <message>
+ <source>Shortcut conflicts with </source>
+ <translation>ГорÑÑ‡Ð°Ñ ÐºÐ»Ð°Ð²Ð¸ÑˆÐ° конфликтует Ñ </translation>
+ </message>
+ <message>
+ <source>Undefined</source>
+ <translation>Ðе назначено</translation>
+ </message>
+</context>
+<context>
+ <name>ShortcutCaptureDialogBase</name>
+ <message>
+ <source>Enter shortcut sequence</source>
+ <translation>Введите поÑледовательноÑÑ‚ÑŒ горÑчих клавиш</translation>
+ </message>
+ <message>
+ <source>Press keys to enter shortcut sequence!</source>
+ <translation>Ðажмите клавиши Ð´Ð»Ñ Ð·Ð°Ð´Ð°Ð½Ð¸Ñ Ð³Ð¾Ñ€Ñчих клавиш!</translation>
+ </message>
+ <message>
+ <source>Old shortcut:</source>
+ <translation>Старое Ñочетание:</translation>
+ </message>
+ <message>
+ <source>Undefined</source>
+ <translation>Ðе назначено</translation>
+ </message>
+ <message>
+ <source>New shortcut:</source>
+ <translation>Ðовое Ñочетание:</translation>
+ </message>
+ <message>
+ <source>OK</source>
+ <translation>ОК</translation>
+ </message>
+ <message>
+ <source>Cancel</source>
+ <translation>Отменить</translation>
+ </message>
+</context>
+<context>
+ <name>ShortcutConfigBase</name>
+ <message>
+ <source>Configure Keyboard Shortcuts</source>
+ <translation>ÐаÑтроить горÑчие клавиши</translation>
+ </message>
+ <message>
+ <source>Shortcut Category</source>
+ <translation>ÐšÐ°Ñ‚ÐµÐ³Ð¾Ñ€Ð¸Ñ Ð³Ð¾Ñ€Ñчих клавиш</translation>
+ </message>
+ <message>
+ <source>Description</source>
+ <translation>ОпиÑание</translation>
+ </message>
+ <message>
+ <source>Shortcut</source>
+ <translation>ГорÑÑ‡Ð°Ñ ÐºÐ»Ð°Ð²Ð¸ÑˆÐ°</translation>
+ </message>
+ <message>
+ <source>&amp;Clear</source>
+ <translation>О&amp;чиÑтить</translation>
+ </message>
+ <message>
+ <source>Alt+C</source>
+ <translation>Alt+Ч</translation>
+ </message>
+ <message>
+ <source>&amp;Define</source>
+ <translation>Ð&amp;азначить</translation>
+ </message>
+ <message>
+ <source>Alt+D</source>
+ <translation>Alt+Ð</translation>
+ </message>
+ <message>
+ <source>&amp;Apply</source>
+ <translation>&amp;Применить</translation>
+ </message>
+ <message>
+ <source>Alt+A</source>
+ <translation>Alt+П</translation>
+ </message>
+</context>
+<context>
+ <name>SigScale</name>
+ <message>
+ <source>signature scale</source>
+ <translation>шкала знаков альтерации</translation>
+ </message>
+</context>
+<context>
+ <name>SimpleDrumsGuiBase</name>
+ <message>
+ <source>DrumSynth 0.1</source>
+ <translation>DrumSynth 0.1</translation>
+ </message>
+</context>
+<context>
+ <name>SimpleSynthGui</name>
+ <message>
+ <source>&amp;Load setup</source>
+ <translation>З&amp;агрузить наÑтройки</translation>
+ </message>
+ <message>
+ <source>&amp;Save setup</source>
+ <translation>&amp;Сохранить наÑтройки</translation>
+ </message>
+</context>
+<context>
+ <name>SynthConfigBase</name>
+ <message>
+ <source>MusE: Synth Configuration</source>
+ <translation>MusE: ÐаÑтройка программного Ñинтезатора</translation>
+ </message>
+ <message>
+ <source>Soft Synthesizer</source>
+ <translation>Программный Ñинтезатор</translation>
+ </message>
+ <message>
+ <source>File</source>
+ <translation>Файл</translation>
+ </message>
+ <message>
+ <source>Instances</source>
+ <translation>ИпоÑтаÑи</translation>
+ </message>
+ <message>
+ <source>Name</source>
+ <translation>ИмÑ</translation>
+ </message>
+ <message>
+ <source>list of available software synthesizers</source>
+ <translation>ÑпиÑок доÑтупных программных Ñинтезаторов</translation>
+ </message>
+ <message>
+ <source>Add Instance</source>
+ <translation>Добавить ипоÑтаÑÑŒ</translation>
+ </message>
+ <message>
+ <source>Remove Instance</source>
+ <translation>Удалить ипоÑтаÑÑŒ</translation>
+ </message>
+ <message>
+ <source>Midi connections</source>
+ <translation>MIDI-ÑоединениÑ</translation>
+ </message>
+ <message>
+ <source>Midi Port</source>
+ <translation>MIDI-порт</translation>
+ </message>
+ <message>
+ <source>Inst</source>
+ <translation>ИнÑÑ‚Ñ€</translation>
+ </message>
+ <message>
+ <source>Version</source>
+ <translation>ВерÑиÑ</translation>
+ </message>
+ <message>
+ <source>Description</source>
+ <translation>ОпиÑание</translation>
+ </message>
+</context>
+<context>
+ <name>TList</name>
+ <message>
+ <source>Show Gui</source>
+ <translation>Показать ГИП</translation>
+ </message>
+ <message>
+ <source>Add Midi Track</source>
+ <translation>Добавить MIDI-дорожку</translation>
+ </message>
+ <message>
+ <source>Add Drum Track</source>
+ <translation>Добавить дорожку Ñ ÑƒÐ´Ð°Ñ€Ð½Ñ‹Ð¼Ð¸</translation>
+ </message>
+ <message>
+ <source>Add Wave Track</source>
+ <translation>Добавить звуковую дорожку</translation>
+ </message>
+ <message>
+ <source>Delete Track</source>
+ <translation>Удалить дорожку</translation>
+ </message>
+ <message>
+ <source>Track Comment</source>
+ <translation>Комментарий к дорожке</translation>
+ </message>
+ <message>
+ <source>Midi</source>
+ <translation>MIDI</translation>
+ </message>
+ <message>
+ <source>Drum</source>
+ <translation>Ударные</translation>
+ </message>
+ <message>
+ <source>MusE: bad trackname</source>
+ <translation>MusE: неверное Ð¸Ð¼Ñ Ð´Ð¾Ñ€Ð¾Ð¶ÐºÐ¸</translation>
+ </message>
+ <message>
+ <source>please choose a unique track name</source>
+ <translation>Выберите неповторÑющееÑÑ Ð¸Ð¼Ñ Ð´Ð»Ñ Ð´Ð¾Ñ€Ð¾Ð¶ÐºÐ¸</translation>
+ </message>
+ <message>
+ <source>Add Output</source>
+ <translation>Добавить выход</translation>
+ </message>
+ <message>
+ <source>Add Group</source>
+ <translation>Добавить группу</translation>
+ </message>
+ <message>
+ <source>Add Input</source>
+ <translation>Добавить вход</translation>
+ </message>
+ <message>
+ <source>Add Aux Send</source>
+ <translation>Добавить Aux поÑыл</translation>
+ </message>
+ <message>
+ <source>Update drummap?</source>
+ <translation>Обновить Ñхему ударных?</translation>
+ </message>
+ <message>
+ <source>Do you want to use same port for all instruments in the drummap?</source>
+ <translation>Ð’Ñ‹ хотите иÑопльзовать один и тот же порт Ð´Ð»Ñ Ð²Ñех инÑтрументов в Ñхеме ударных?</translation>
+ </message>
+ <message>
+ <source>&amp;Yes</source>
+ <translation>&amp;Да</translation>
+ </message>
+ <message>
+ <source>&amp;No</source>
+ <translation>&amp;Ðет</translation>
+ </message>
+ <message>
+ <source>Do you want to use same port and channel for all instruments in the drummap?</source>
+ <translation>Ð’Ñ‹ хотите иÑопльзовать один и тот же порт и канал Ð´Ð»Ñ Ð²Ñех инÑтрументов в Ñхеме ударных?</translation>
+ </message>
+</context>
+<context>
+ <name>TempoSig</name>
+ <message>
+ <source>Tempo/Sig</source>
+ <translation>Темп/Знаки альтерации</translation>
+ </message>
+</context>
+<context>
+ <name>Toolbar1</name>
+ <message>
+ <source>Solo</source>
+ <translation>Соло</translation>
+ </message>
+ <message>
+ <source>Cursor</source>
+ <translation>КурÑор</translation>
+ </message>
+ <message>
+ <source>Snap</source>
+ <translation>ПривÑзка</translation>
+ </message>
+ <message>
+ <source>Quantize</source>
+ <translation>Квантовать</translation>
+ </message>
+ <message>
+ <source>To</source>
+ <translation>К</translation>
+ </message>
+ <message>
+ <source>All Events</source>
+ <translation>Ð’Ñе ÑобытиÑ</translation>
+ </message>
+ <message>
+ <source>Looped Ev.</source>
+ <translation>Соб. в цикле</translation>
+ </message>
+ <message>
+ <source>Selected Ev.</source>
+ <translation>Выделенное Ñоб.</translation>
+ </message>
+ <message>
+ <source>Looped+Sel.</source>
+ <translation>В цикле+Выделенн.</translation>
+ </message>
+</context>
+<context>
+ <name>TrackComment</name>
+ <message>
+ <source>MusE: Track Comment</source>
+ <translation>MusE: Комментарии к дорожке</translation>
+ </message>
+ <message>
+ <source>Track Comment:</source>
+ <translation>Комментарий к дорожке:</translation>
+ </message>
+</context>
+<context>
+ <name>Transport</name>
+ <message>
+ <source>Overdub</source>
+ <translation>Ðаложить</translation>
+ </message>
+ <message>
+ <source>Replace</source>
+ <translation>Заменить</translation>
+ </message>
+ <message>
+ <source>Rec Mode</source>
+ <translation>Режим запиÑи</translation>
+ </message>
+ <message>
+ <source>Normal</source>
+ <translation>Ðорм.</translation>
+ </message>
+ <message>
+ <source>Mix</source>
+ <translation>Смешать</translation>
+ </message>
+ <message>
+ <source>Cycle Rec</source>
+ <translation>Циклич. запиÑÑŒ</translation>
+ </message>
+ <message>
+ <source>punchin</source>
+ <translation>нач. врезки</translation>
+ </message>
+ <message>
+ <source>loop</source>
+ <translation>цикл</translation>
+ </message>
+ <message>
+ <source>punchout</source>
+ <translation>кнц. врезки</translation>
+ </message>
+ <message>
+ <source>Punch In</source>
+ <translation>Ðачало врезки</translation>
+ </message>
+ <message>
+ <source>Loop</source>
+ <translation>Цикл</translation>
+ </message>
+ <message>
+ <source>Punch Out</source>
+ <translation>Конец врезки</translation>
+ </message>
+ <message>
+ <source>Left Mark</source>
+ <translation>Левый маркер</translation>
+ </message>
+ <message>
+ <source>Right Mark</source>
+ <translation>Правый маркер</translation>
+ </message>
+ <message>
+ <source>rewind to start</source>
+ <translation>перемотать к началу</translation>
+ </message>
+ <message>
+ <source>rewind</source>
+ <translation>перемотать назад</translation>
+ </message>
+ <message>
+ <source>forward</source>
+ <translation>перемотать вперёд</translation>
+ </message>
+ <message>
+ <source>stop</source>
+ <translation>оÑтановить</translation>
+ </message>
+ <message>
+ <source>play</source>
+ <translation>воÑпроизвеÑти</translation>
+ </message>
+ <message>
+ <source>record</source>
+ <translation>запиÑать</translation>
+ </message>
+ <message>
+ <source>AC</source>
+ <translation>AC</translation>
+ </message>
+ <message>
+ <source>quantize during record</source>
+ <translation>квантовать при запиÑи</translation>
+ </message>
+ <message>
+ <source>Click</source>
+ <translation>Метр.</translation>
+ </message>
+ <message>
+ <source>metronom click on/off</source>
+ <translation>Щелчки метронома</translation>
+ </message>
+ <message>
+ <source>Sync</source>
+ <translation>Синхр.</translation>
+ </message>
+ <message>
+ <source>external sync on/off</source>
+ <translation>Вкл/выкл внешнюю Ñинхронизацию</translation>
+ </message>
+ <message>
+ <source>Master</source>
+ <translation>МаÑтер</translation>
+ </message>
+ <message>
+ <source>use master track</source>
+ <translation>иÑпользовать маÑтер-дорожку</translation>
+ </message>
+</context>
+<context>
+ <name>TransposeDialogBase</name>
+ <message>
+ <source>MusE: Midi Transpose</source>
+ <translation>MusE: MIDI-транÑпонирование</translation>
+ </message>
+ <message>
+ <source>Value</source>
+ <translation>Значение</translation>
+ </message>
+ <message>
+ <source>halftones</source>
+ <translation>полутонов</translation>
+ </message>
+ <message>
+ <source>Time</source>
+ <translation>ВремÑ</translation>
+ </message>
+ <message>
+ <source>all</source>
+ <translation>вÑÑ‘</translation>
+ </message>
+ <message>
+ <source>between markers</source>
+ <translation>между маркерами</translation>
+ </message>
+ <message>
+ <source>Parts</source>
+ <translation>ЧаÑти</translation>
+ </message>
+ <message>
+ <source>all in selected tracks</source>
+ <translation>вÑе в выбранных дорожках</translation>
+ </message>
+ <message>
+ <source>OK</source>
+ <translation>ОК</translation>
+ </message>
+ <message>
+ <source>Cancel</source>
+ <translation>Отменить</translation>
+ </message>
+</context>
+<context>
+ <name>VAMGui</name>
+ <message>
+ <source>MusE: Load VAM Presets</source>
+ <translation>MusE: загрузка преÑетов VAM</translation>
+ </message>
+ <message>
+ <source>MusE: Save VAM Presets</source>
+ <translation>MusE: Ñохранение преÑетов VAM</translation>
+ </message>
+</context>
+<context>
+ <name>VAMGuiBase</name>
+ <message>
+ <source>Virtual Analogue for MusE</source>
+ <translation type="unfinished">Virtual Analogue for MusE</translation>
+ </message>
+ <message>
+ <source>LFO</source>
+ <translation>LFO</translation>
+ </message>
+ <message>
+ <source>Freq</source>
+ <translation>ЧаÑтота</translation>
+ </message>
+ <message>
+ <source>Waveform</source>
+ <translation>Форма волны</translation>
+ </message>
+ <message>
+ <source>Sine</source>
+ <translation>СинуÑоида</translation>
+ </message>
+ <message>
+ <source>Pulse</source>
+ <translation>ПульÑ</translation>
+ </message>
+ <message>
+ <source>Saw</source>
+ <translation>ПилообразнаÑ</translation>
+ </message>
+ <message>
+ <source>Triangle</source>
+ <translation>ТреугольнаÑ</translation>
+ </message>
+ <message>
+ <source>Filter</source>
+ <translation>Фильтр</translation>
+ </message>
+ <message>
+ <source>EnvMod</source>
+ <translation type="unfinished">EnvMod</translation>
+ </message>
+ <message>
+ <source>Attack</source>
+ <translation>Ðтака</translation>
+ </message>
+ <message>
+ <source>Decay</source>
+ <translation>Первичное затухание</translation>
+ </message>
+ <message>
+ <source>Sustain</source>
+ <translation>Продление</translation>
+ </message>
+ <message>
+ <source>Release</source>
+ <translation>Затухание</translation>
+ </message>
+ <message>
+ <source>Cutoff</source>
+ <translation type="unfinished">Отключение</translation>
+ </message>
+ <message>
+ <source>Resonance</source>
+ <translation>РезонанÑ</translation>
+ </message>
+ <message>
+ <source>Invert</source>
+ <translation>Инвертировать</translation>
+ </message>
+ <message>
+ <source>KeyTrack</source>
+ <translation type="unfinished">Трекинг клавиатуры</translation>
+ </message>
+ <message>
+ <source>Presets</source>
+ <translation>ПреÑеты</translation>
+ </message>
+ <message>
+ <source>Set</source>
+ <translation type="unfinished">УÑтановить</translation>
+ </message>
+ <message>
+ <source>load preset list</source>
+ <translation>Загрузить ÑпиÑок преÑетов</translation>
+ </message>
+ <message>
+ <source>save preset list</source>
+ <translation>Сохранить ÑпиÑок преÑетов</translation>
+ </message>
+ <message>
+ <source>save preset list to a new file</source>
+ <translation>Сохранить ÑпиÑок преÑетов в новый файл</translation>
+ </message>
+ <message>
+ <source>delete preset</source>
+ <translation>Удалить преÑет</translation>
+ </message>
+ <message>
+ <source>DCO 1</source>
+ <translation>DCO 1</translation>
+ </message>
+ <message>
+ <source>Pitch</source>
+ <translation>Ð’Ñ‹Ñота тона</translation>
+ </message>
+ <message>
+ <source>Detune</source>
+ <translation>РаÑÑтройка</translation>
+ </message>
+ <message>
+ <source>PWM</source>
+ <translation>PWM</translation>
+ </message>
+ <message>
+ <source>FM</source>
+ <translation>FM</translation>
+ </message>
+ <message>
+ <source>PW</source>
+ <translation>PW</translation>
+ </message>
+ <message>
+ <source>DCO 2</source>
+ <translation>DCO 2</translation>
+ </message>
+ <message>
+ <source>On</source>
+ <translation>Вкл</translation>
+ </message>
+ <message encoding="UTF-8">
+ <source>VAM 1.0beta2
+Virtual Analog for MusE
+Released under GPL.
+Copyright(C) 2002
+Jotsif Lindman Hörnlund
+( jotsif@linux.nu )</source>
+ <translation>VAM 1.0beta2
+Virtual Analog for MusE
+Выпущено на уÑловиÑÑ… GPL.
+Copyright(C) 2002
+Jotsif Lindman Hörnlund
+( jotsif@linux.nu )</translation>
+ </message>
+</context>
+<context>
+ <name>VelocityBase</name>
+ <message>
+ <source>MusE: Modify Velocity</source>
+ <translation>MusE: Изменить Ñилу нажатиÑ</translation>
+ </message>
+ <message>
+ <source>Range</source>
+ <translation>ОблаÑÑ‚ÑŒ</translation>
+ </message>
+ <message>
+ <source>All Events</source>
+ <translation>Ð’Ñе ÑобытиÑ</translation>
+ </message>
+ <message>
+ <source>Selected Events</source>
+ <translation>Выбранные ÑобытиÑ</translation>
+ </message>
+ <message>
+ <source>Looped Events</source>
+ <translation>Ð¡Ð¾Ð±Ñ‹Ñ‚Ð¸Ñ Ð² цикле</translation>
+ </message>
+ <message>
+ <source>Selected &amp; Looped</source>
+ <translation>Выбранные &amp; в цикле</translation>
+ </message>
+ <message>
+ <source>Values</source>
+ <translation>ЗначениÑ</translation>
+ </message>
+ <message>
+ <source>Rate:</source>
+ <translation>ЧаÑтота:</translation>
+ </message>
+ <message>
+ <source>Offset:</source>
+ <translation>Смещение:</translation>
+ </message>
+ <message>
+ <source>%</source>
+ <translation>%</translation>
+ </message>
+ <message>
+ <source>OK</source>
+ <translation>OК</translation>
+ </message>
+ <message>
+ <source>Cancel</source>
+ <translation>Отменить</translation>
+ </message>
+</context>
+<context>
+ <name>WTScale</name>
+ <message>
+ <source>bar scale</source>
+ <translation>шкала тактов</translation>
+ </message>
+</context>
+<context>
+ <name>WaveEdit</name>
+ <message>
+ <source>&amp;File</source>
+ <translation>&amp;Файл</translation>
+ </message>
+ <message>
+ <source>weTools</source>
+ <translation>weTools</translation>
+ </message>
+ <message>
+ <source>Solo</source>
+ <translation>Соло</translation>
+ </message>
+ <message>
+ <source>Cursor</source>
+ <translation>КурÑор</translation>
+ </message>
+ <message>
+ <source>&amp;Edit</source>
+ <translation>&amp;Правка</translation>
+ </message>
+ <message>
+ <source>Func&amp;tions</source>
+ <translation>Фу&amp;нкции</translation>
+ </message>
+ <message>
+ <source>200%</source>
+ <translation>200%</translation>
+ </message>
+ <message>
+ <source>150%</source>
+ <translation>150%</translation>
+ </message>
+ <message>
+ <source>75%</source>
+ <translation>75%</translation>
+ </message>
+ <message>
+ <source>50%</source>
+ <translation>50%</translation>
+ </message>
+ <message>
+ <source>25%</source>
+ <translation>25%</translation>
+ </message>
+ <message>
+ <source>Other</source>
+ <translation>Другой</translation>
+ </message>
+ <message>
+ <source>&amp;Gain</source>
+ <translation>&amp;УÑиление</translation>
+ </message>
+ <message>
+ <source>Edit in E&amp;xternal Editor</source>
+ <translation>Изменить во &amp;внешнем редакторе</translation>
+ </message>
+ <message>
+ <source>Mute Selection</source>
+ <translation>Приглушить выделенное</translation>
+ </message>
+ <message>
+ <source>Normalize Selection</source>
+ <translation>Ðормализовать выделенное</translation>
+ </message>
+ <message>
+ <source>Fade In Selection</source>
+ <translation>ÐараÑтание в выделенном</translation>
+ </message>
+ <message>
+ <source>Fade Out Selection</source>
+ <translation>УгаÑание в выделенном</translation>
+ </message>
+ <message>
+ <source>Reverse Selection</source>
+ <translation>Развернуть выделенное</translation>
+ </message>
+ <message>
+ <source>Select &amp;All</source>
+ <translation>Выделить &amp;вÑÑ‘</translation>
+ </message>
+ <message>
+ <source>&amp;Deselect All</source>
+ <translation>&amp;Убрать выделение</translation>
+ </message>
+ <message>
+ <source>Select</source>
+ <translation>Выделить</translation>
+ </message>
+</context>
+<context>
+ <name>WaveTrackInfoBase</name>
+ <message>
+ <source>MusE: TrackInfo</source>
+ <translation>MusE: Инфо о дорожке</translation>
+ </message>
+ <message>
+ <source>Track Info</source>
+ <translation>Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¾ дорожке</translation>
+ </message>
+ <message>
+ <source>Track Name</source>
+ <translation>Ð˜Ð¼Ñ Ð´Ð¾Ñ€Ð¾Ð¶ÐºÐ¸</translation>
+ </message>
+ <message>
+ <source>Output Route:</source>
+ <translation>Маршрут выхода:</translation>
+ </message>
+ <message>
+ <source>Input Route:</source>
+ <translation>Маршрут входа:</translation>
+ </message>
+ <message>
+ <source>Ports:</source>
+ <translation>Порты:</translation>
+ </message>
+ <message>
+ <source>Mono</source>
+ <translation>Моно</translation>
+ </message>
+ <message>
+ <source>Stereo</source>
+ <translation>Стерео</translation>
+ </message>
+</context>
+<context>
+ <name>WaveView</name>
+ <message>
+ <source>MusE - file size changed</source>
+ <translation>MusE - размео файла изменилÑÑ</translation>
+ </message>
+ <message>
+ <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>
+<context>
+ <name>freeverb</name>
+ <message>
+ <source>FreeVerb</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Rooom Size</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Damping</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Wet Level</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Tap-Reverberator</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Decay [ms]</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>dB</source>
+ <translation type="unfinished">Дб</translation>
+ </message>
+ <message>
+ <source>Dry Level [dB]</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Wet Level [dB]</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Preset:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>AfterBurn</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>AfterBurn (Long)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Ambience</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Ambience (Thick)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Ambience (Thick) - HD</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cathedral</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cathedral - HD</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Drum Chamber</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Garage</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Garage (Bright)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Gymnasium</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Gymnasium (Bright)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Gymnasium (Bright) - HD</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Hall (Small)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Hall (Medium)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Hall (Large)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Hall (Large) - HD</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Plate (Small)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Plate (Medium)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Plate (Large)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Plate (Large) - HD</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Pulse Chamber</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Pulse Chamber (Reverse)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Resonator (96 ms)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Resonator (152 ms)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Resonator (208 ms)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Room (Small)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Room (Medium)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Room (Large)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Room (Large) - HD</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Slap Chamber</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Slap Chamber - HD</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Slap Chamber (Bright)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Slap Chamber (Bright) HD</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Smooth Hall (Small)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Smooth Hall (Medium)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Smooth Hall (Large)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Smooth Hall (Large) - HD</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Vocal Plate</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Vocal Plate - HD</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Warble Chamber</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Warehoouse</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Warehouse - HD</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Comb Filters</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Allpass Filters</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Bandpass Filters</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Enhanced Stereo</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS>
diff --git a/muse2/share/locale/muse_sv_SE.qm b/muse2/share/locale/muse_sv_SE.qm
new file mode 100644
index 00000000..2a8c4dbb
--- /dev/null
+++ b/muse2/share/locale/muse_sv_SE.qm
Binary files differ
diff --git a/muse2/share/locale/muse_sv_SE.ts b/muse2/share/locale/muse_sv_SE.ts
new file mode 100644
index 00000000..25b78cc5
--- /dev/null
+++ b/muse2/share/locale/muse_sv_SE.ts
@@ -0,0 +1,8357 @@
+<!DOCTYPE TS><TS>
+<context>
+ <name></name>
+ <message>
+ <source>Click this button to enable recording</source>
+ <translation>Klicka här för att spela in</translation>
+ </message>
+ <message>
+ <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>
+ <source>select Pointer Tool:
+with the pointer tool you can:
+ select parts
+ move parts
+ copy parts</source>
+ <translation>välj pek-verktyg:
+med pekverktyget kan du:
+ välja parter
+ flytta parter
+ kopiera parter</translation>
+ </message>
+</context>
+<context>
+ <name>@default</name>
+ <message>
+ <source>Click this button to stop playback</source>
+ <translation>Klicka här för att stoppa uppspelning</translation>
+ </message>
+ <message>
+ <source>Click this button to start playback</source>
+ <translation>Klicka här för att starta uppspelning</translation>
+ </message>
+ <message>
+ <source>Click this button to rewind to start position</source>
+ <translation>Klicka här för att spola tillbaks till början</translation>
+ </message>
+ <message>
+ <source>Click this button to rewind</source>
+ <translation>Klicka här för att flytta markören bakåt</translation>
+ </message>
+ <message>
+ <source>Click this button to forward current play position</source>
+ <translation>Klicka här för att flytta markören framåt</translation>
+ </message>
+ <message>
+ <source>don&apos;t quantize notes above this tick limit</source>
+ <translation>Kvantisera inte över denna tick gräns</translation>
+ </message>
+ <message>
+ <source>quantize also note len as default</source>
+ <translation>Kvantisera &quot;note len&quot; som standard</translation>
+ </message>
+ <message>
+ <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>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>
+ <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>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>
+ <source>Create New Song</source>
+ <translation>Ny sång</translation>
+ </message>
+ <message>
+ <source>loop between left mark and right mark</source>
+ <translation>loopa mellan vänster och höger markering</translation>
+ </message>
+ <message>
+ <source>record starts at left mark</source>
+ <translation>inspelning börjar vid vänster markering</translation>
+ </message>
+ <message>
+ <source>record stops at right mark</source>
+ <translation>inspelning slutar vid höger markering</translation>
+ </message>
+ <message>
+ <source>rewind to start position</source>
+ <translation>spola tillbaka till startposition</translation>
+ </message>
+ <message>
+ <source>rewind current position</source>
+ <translation>flytta markör bakåt</translation>
+ </message>
+ <message>
+ <source>move current position</source>
+ <translation>flytta markör</translation>
+ </message>
+ <message>
+ <source>stop sequencer</source>
+ <translation>stoppa sequencer</translation>
+ </message>
+ <message>
+ <source>start sequencer play</source>
+ <translation>starta sequenceruppspelning</translation>
+ </message>
+ <message>
+ <source>to record press record and then play</source>
+ <translation>för att spela in, tryck på record och sedan play</translation>
+ </message>
+ <message>
+ <source>send note off to all midi channels</source>
+ <translation>skicka note-off till alla midi kanaler</translation>
+ </message>
+ <message>
+ <source>select Pencil Tool:
+with the pencil tool you can:
+ create new parts
+ modify length of parts</source>
+ <translation>välj Pennverktyg:
+med pennverktyget kan du:
+ skapa parter
+ ändra längden på parter
+</translation>
+ </message>
+ <message>
+ <source>select Delete Tool:
+with the delete tool you can delete parts</source>
+ <translation>välj Suddverktyg:
+med suddverktyget kan du ta bort parter</translation>
+ </message>
+ <message>
+ <source>select Cut Tool:
+with the cut tool you can split a part</source>
+ <translation>välj Delningsverktyg:
+med delningsverktyget kan du dela på parter</translation>
+ </message>
+ <message>
+ <source>select Glue Tool:
+with the glue tool you can glue two parts</source>
+ <translation>välj Limverktyg:
+med limverktyget kan du limma ihop två parter</translation>
+ </message>
+ <message>
+ <source>select Score Tool:
+</source>
+ <translation>välj Partiturverktyg:
+</translation>
+ </message>
+ <message>
+ <source>select Quantize Tool:
+insert display quantize event</source>
+ <translation>välj Kvantiseringsverktyg:
+sätt in kvantiseringshändelser</translation>
+ </message>
+ <message>
+ <source>select Drawing Tool</source>
+ <translation>välj Ritverktyg
+</translation>
+ </message>
+ <message>
+ <source>select Muting Tool:
+click on part to mute/unmute</source>
+ <translation>välj Tystningsverktyg:
+klicka på en part för att Tysta/Avtysta</translation>
+ </message>
+ <message>
+ <source>pointer</source>
+ <translation>pekare</translation>
+ </message>
+ <message>
+ <source>pencil</source>
+ <translation>penna</translation>
+ </message>
+ <message>
+ <source>rubber</source>
+ <translation type="obsolete">sudd</translation>
+ </message>
+ <message>
+ <source>cutter</source>
+ <translation>delare</translation>
+ </message>
+ <message>
+ <source>score</source>
+ <translation>partitur</translation>
+ </message>
+ <message>
+ <source>glue</source>
+ <translation>lim</translation>
+ </message>
+ <message>
+ <source>quantize</source>
+ <translation>kvantisering</translation>
+ </message>
+ <message>
+ <source>draw</source>
+ <translation>rita</translation>
+ </message>
+ <message>
+ <source>mute parts</source>
+ <translation>tysta parter</translation>
+ </message>
+ <message>
+ <source>Off</source>
+ <translation>Av</translation>
+ </message>
+ <message>
+ <source>presets (*.pre *.pre.gz *.pre.bz2)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>All Files (*)</source>
+ <translation>Alla filer (*)</translation>
+ </message>
+ <message>
+ <source>Add Midi Track</source>
+ <translation type="unfinished">Lägg till Midispår</translation>
+ </message>
+ <message>
+ <source>Add Drum Track</source>
+ <translation type="unfinished">Lägg till Trumspår</translation>
+ </message>
+ <message>
+ <source>Add Wave Track</source>
+ <translation type="unfinished">Lägg till Wavespår</translation>
+ </message>
+ <message>
+ <source>Add Audio Output</source>
+ <translation type="unfinished">Lägg till Ljudutgång</translation>
+ </message>
+ <message>
+ <source>Add Audio Group</source>
+ <translation type="unfinished">Lägg till Ljudgrupp</translation>
+ </message>
+ <message>
+ <source>Add Audio Input</source>
+ <translation type="unfinished">Lägg till Ljudingång</translation>
+ </message>
+ <message>
+ <source>Add Aux Send</source>
+ <translation type="unfinished">Lägg till Aux-Send</translation>
+ </message>
+ <message>
+ <source>eraser</source>
+ <translation type="unfinished">sudd</translation>
+ </message>
+</context>
+<context>
+ <name>AboutBox</name>
+ <message>
+ <source>AboutBox</source>
+ <translation type="unfinished">Om</translation>
+ </message>
+ <message>
+ <source>Keep On Rocking!</source>
+ <translation type="unfinished">Rocka på!</translation>
+ </message>
+ <message>
+ <source>Version 0.7.2pre5
+
+(C) Copyright 1999-2005 Werner Schweer and others.
+See http://www.muse-sequencer.org for new versions and
+more information.
+
+Published under the GNU Public License</source>
+ <translation type="unfinished">Version 0.7.2pre5
+
+(C) Copyright 1999-2005 Werner Schweer och andra.
+Se http://www.muse-sequencer.org för nya versioner och
+och mer information.
+
+Publiserad under GNU Public License</translation>
+ </message>
+</context>
+<context>
+ <name>Appearance</name>
+ <message>
+ <source>handle of transport window</source>
+ <translation type="obsolete">handtag för transportfönster</translation>
+ </message>
+ <message>
+ <source>track activity in arranger</source>
+ <translation type="obsolete">spår-aktivitet i Arrangeraren</translation>
+ </message>
+ <message>
+ <source>bigtime font color</source>
+ <translation type="obsolete">bigtime typsnittsfärg</translation>
+ </message>
+ <message>
+ <source>bigtime background color</source>
+ <translation type="obsolete">bigtime bakgrundsfärg</translation>
+ </message>
+ <message>
+ <source>waveedit background color</source>
+ <translation type="obsolete">audioeditor bakgrundsfärg</translation>
+ </message>
+ <message>
+ <source>MusE: load image</source>
+ <translation>MusE: ladda bild</translation>
+ </message>
+</context>
+<context>
+ <name>AppearanceDialogBase</name>
+ <message>
+ <source>MusE: Appearance settings</source>
+ <translation>MusE: Utseendeinställningar</translation>
+ </message>
+ <message>
+ <source>Apply</source>
+ <translation>Verkställ</translation>
+ </message>
+ <message>
+ <source>Ok</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cancel</source>
+ <translation>Avbryt</translation>
+ </message>
+ <message>
+ <source>Arranger</source>
+ <translation>Arrangerare</translation>
+ </message>
+ <message>
+ <source>Parts</source>
+ <translation>Parter</translation>
+ </message>
+ <message>
+ <source>show frames</source>
+ <translation type="obsolete">visa ramar</translation>
+ </message>
+ <message>
+ <source>show names</source>
+ <translation>visa namn</translation>
+ </message>
+ <message>
+ <source>show events</source>
+ <translation>visa händelser(events)</translation>
+ </message>
+ <message>
+ <source>show Cakewalk Style</source>
+ <translation>använd Cakewalkstil</translation>
+ </message>
+ <message>
+ <source>Events</source>
+ <translation>Händelser</translation>
+ </message>
+ <message>
+ <source>note on</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>poly pressure</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>controller</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>aftertouch</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>pitch bend</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>program change</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>special</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Background picture</source>
+ <translation>Bakgrundsbild</translation>
+ </message>
+ <message>
+ <source>bg</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>select...</source>
+ <translation>välj...</translation>
+ </message>
+ <message>
+ <source>show snap grid</source>
+ <translation>visa rutnät</translation>
+ </message>
+ <message>
+ <source>Colors</source>
+ <translation>Färger</translation>
+ </message>
+ <message>
+ <source>Items</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>selected</source>
+ <translation type="obsolete">vald</translation>
+ </message>
+ <message>
+ <source>current:</source>
+ <translation type="obsolete">nuvarande:</translation>
+ </message>
+ <message>
+ <source>change...</source>
+ <translation type="obsolete">byt...</translation>
+ </message>
+ <message>
+ <source>dynamic colors for track activity in arranger</source>
+ <translation type="obsolete">dynamisk färgallokering för spåraktivitet i arranger</translation>
+ </message>
+ <message>
+ <source>Style/Fonts</source>
+ <translation>Stil/Typsnitt</translation>
+ </message>
+ <message>
+ <source>QT Theme</source>
+ <translation>QT-tema</translation>
+ </message>
+ <message>
+ <source>Windows</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>MusE</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Metal</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Norwegian Wood</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Platinum</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>CDE</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Motif</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Motif Plus</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Fonts</source>
+ <translation>Typsnitt</translation>
+ </message>
+ <message>
+ <source>Family</source>
+ <translation>Familj</translation>
+ </message>
+ <message>
+ <source>Size</source>
+ <translation>Storlek</translation>
+ </message>
+ <message>
+ <source>Font 1</source>
+ <translation>Typsnitt 1</translation>
+ </message>
+ <message>
+ <source>Font 2</source>
+ <translation>Typsnitt 2</translation>
+ </message>
+ <message>
+ <source>Font 3</source>
+ <translation>Typsnitt 3</translation>
+ </message>
+ <message>
+ <source>Font 0</source>
+ <translation>Typsnitt 0</translation>
+ </message>
+ <message>
+ <source>Bold</source>
+ <translation>Fet</translation>
+ </message>
+ <message>
+ <source>Italic</source>
+ <translation>Kursiv</translation>
+ </message>
+ <message>
+ <source>...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Font 4</source>
+ <translation>Typsnitt 4</translation>
+ </message>
+ <message>
+ <source>Font 5</source>
+ <translation>Typsnitt 5</translation>
+ </message>
+ <message>
+ <source>Palette</source>
+ <translation type="unfinished">Palett</translation>
+ </message>
+ <message>
+ <source>add to palette</source>
+ <translation type="unfinished">lägg till palett</translation>
+ </message>
+ <message>
+ <source>B</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>S</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>H</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>V</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>G</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>R</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>Arranger</name>
+ <message>
+ <source>Arranger</source>
+ <translation>Arrangerare</translation>
+ </message>
+ <message>
+ <source>Cursor</source>
+ <translation>Markör</translation>
+ </message>
+ <message>
+ <source>Off</source>
+ <translation>Av</translation>
+ </message>
+ <message>
+ <source>Bar</source>
+ <translation type="unfinished">Takt</translation>
+ </message>
+ <message>
+ <source>Snap</source>
+ <translation type="unfinished">Fäst vid</translation>
+ </message>
+ <message>
+ <source>Len</source>
+ <translation type="unfinished">Längd</translation>
+ </message>
+ <message>
+ <source>Type</source>
+ <translation>Typ</translation>
+ </message>
+ <message>
+ <source>NO</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>GM</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>GS</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>XG</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>midi song type</source>
+ <translation>typ av midsång</translation>
+ </message>
+ <message>
+ <source>Pitch</source>
+ <translation type="unfinished">Tonhöjd</translation>
+ </message>
+ <message>
+ <source>midi pitch</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>global midi pitch shift</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Tempo</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>midi tempo</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>N</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>TrackInfo</source>
+ <translation>Spårinfo</translation>
+ </message>
+ <message>
+ <source>R</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>M</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>S</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>C</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Track</source>
+ <translation>Spår</translation>
+ </message>
+ <message>
+ <source>O-Port</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Ch</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>T</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Master</source>
+ <translation type="obsolete">Master</translation>
+ </message>
+ <message>
+ <source>Group A</source>
+ <translation type="obsolete">Grupp A</translation>
+ </message>
+ <message>
+ <source>Group B</source>
+ <translation type="obsolete">Grupp B</translation>
+ </message>
+ <message>
+ <source>Group C</source>
+ <translation type="obsolete">Grupp C</translation>
+ </message>
+ <message>
+ <source>Group D</source>
+ <translation type="obsolete">Grupp D</translation>
+ </message>
+</context>
+<context>
+ <name>AudioConfBase</name>
+ <message>
+ <source>MusE: Audio Configuration</source>
+ <translation type="obsolete">MusE: Ljudinställningar</translation>
+ </message>
+ <message>
+ <source>&amp;Apply</source>
+ <translation type="obsolete">&amp;Verkställ</translation>
+ </message>
+ <message>
+ <source>&amp;OK</source>
+ <translation type="obsolete">&amp;Ok</translation>
+ </message>
+ <message>
+ <source>&amp;Cancel</source>
+ <translation type="obsolete">&amp;Avbryt</translation>
+ </message>
+ <message>
+ <source>Audio Parameters</source>
+ <translation type="obsolete">Ljudparametrar</translation>
+ </message>
+ <message>
+ <source>Frame Size:</source>
+ <translation type="obsolete">Ramstorlek:</translation>
+ </message>
+ <message>
+ <source>Delay:</source>
+ <translation type="obsolete">Fördröjning(ms):</translation>
+ </message>
+ <message>
+ <source>Sample Rate:</source>
+ <translation type="obsolete">Samplingsfrekvens:</translation>
+ </message>
+ <message>
+ <source>Audio Driver</source>
+ <translation type="obsolete">Ljuddrivrutin</translation>
+ </message>
+ <message>
+ <source>Use Alsa</source>
+ <translation type="obsolete">Använd Alsa</translation>
+ </message>
+ <message>
+ <source>Use JACK</source>
+ <translation type="obsolete">Använd JACK</translation>
+ </message>
+ <message>
+ <source>No Audio</source>
+ <translation type="obsolete">Ljud avstängt</translation>
+ </message>
+</context>
+<context>
+ <name>AudioMixerApp</name>
+ <message>
+ <source>1/2 channel</source>
+ <translation type="obsolete">1/2 kanal</translation>
+ </message>
+ <message>
+ <source>record</source>
+ <translation type="obsolete">inspelning</translation>
+ </message>
+ <message>
+ <source>mute</source>
+ <translation type="obsolete">tysta</translation>
+ </message>
+ <message>
+ <source>pre fader listening</source>
+ <translation type="obsolete">pre fader lyssning</translation>
+ </message>
+ <message>
+ <source>record downmix</source>
+ <translation type="obsolete">spela in nermixning</translation>
+ </message>
+ <message>
+ <source>off</source>
+ <translation type="obsolete">av</translation>
+ </message>
+ <message>
+ <source>&amp;Config</source>
+ <translation type="obsolete">&amp;Inställningar</translation>
+ </message>
+ <message>
+ <source>Add Input Strip</source>
+ <translation type="obsolete">Lägg till Input-remsa</translation>
+ </message>
+ <message>
+ <source>Inputs</source>
+ <translation type="obsolete">Ingångar</translation>
+ </message>
+ <message>
+ <source>Tracks</source>
+ <translation type="obsolete">Spår</translation>
+ </message>
+ <message>
+ <source>Groups</source>
+ <translation type="obsolete">Grupper</translation>
+ </message>
+ <message>
+ <source>Master</source>
+ <translation type="obsolete">Master</translation>
+ </message>
+ <message>
+ <source>Group A</source>
+ <translation type="obsolete">Grupp A</translation>
+ </message>
+ <message>
+ <source>Group B</source>
+ <translation type="obsolete">Grupp B</translation>
+ </message>
+ <message>
+ <source>Group C</source>
+ <translation type="obsolete">Grupp C</translation>
+ </message>
+ <message>
+ <source>Group D</source>
+ <translation type="obsolete">Grupp D</translation>
+ </message>
+ <message>
+ <source>None</source>
+ <translation type="obsolete">Ingen</translation>
+ </message>
+ <message>
+ <source>MusE: Mixer</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>&amp;Create</source>
+ <translation type="unfinished">&amp;Skapa</translation>
+ </message>
+ <message>
+ <source>&amp;View</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Routing</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>AudioStrip</name>
+ <message>
+ <source>panorama</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>aux send level</source>
+ <translation type="unfinished">aux send nivå</translation>
+ </message>
+ <message>
+ <source>off</source>
+ <translation type="unfinished">av</translation>
+ </message>
+ <message>
+ <source>Pan</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>1/2 channel</source>
+ <translation type="unfinished">1/2 kanal</translation>
+ </message>
+ <message>
+ <source>Pre</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>pre fader - post fader</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>dB</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>record</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>mute</source>
+ <translation type="unfinished">tysta</translation>
+ </message>
+ <message>
+ <source>record downmix</source>
+ <translation type="unfinished">spela in nermixning</translation>
+ </message>
+ <message>
+ <source>solo mode (monitor)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>pre fader listening</source>
+ <translation type="unfinished">pre fader lyssning</translation>
+ </message>
+ <message>
+ <source>iR</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>intput routing</source>
+ <translation type="unfinished">ingångsrouting</translation>
+ </message>
+ <message>
+ <source>oR</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>output routing</source>
+ <translation type="unfinished">utgångsrouting</translation>
+ </message>
+ <message>
+ <source>Off</source>
+ <translation type="unfinished">Av</translation>
+ </message>
+ <message>
+ <source>Read</source>
+ <translation type="unfinished">Läs</translation>
+ </message>
+ <message>
+ <source>Touch</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Write</source>
+ <translation type="unfinished">Skriv</translation>
+ </message>
+ <message>
+ <source>automation type</source>
+ <translation type="unfinished">automationstyp</translation>
+ </message>
+ <message>
+ <source>Channel</source>
+ <translation type="unfinished">Kanal</translation>
+ </message>
+</context>
+<context>
+ <name>BigTime</name>
+ <message>
+ <source>MusE: Bigtime</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ClipListEdit</name>
+ <message>
+ <source>MusE: Clip List Editor</source>
+ <translation type="unfinished">MusE: Clip-listredigerare</translation>
+ </message>
+</context>
+<context>
+ <name>ClipListEditorBase</name>
+ <message>
+ <source>MusE: ClipList</source>
+ <translation>MusE: Clip-lista</translation>
+ </message>
+ <message>
+ <source>Name</source>
+ <translation>Namn</translation>
+ </message>
+ <message>
+ <source>Refs</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Start</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Len</source>
+ <translation type="unfinished">Längd</translation>
+ </message>
+ <message>
+ <source>Data</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Clip Properties</source>
+ <translation>Clip-egenskaper</translation>
+ </message>
+ <message>
+ <source>Pos:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Len:</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>CommentBase</name>
+ <message>
+ <source>Form1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Track Comment</source>
+ <translation>Spår-kommentar</translation>
+ </message>
+ <message>
+ <source>Track 1</source>
+ <translation>Spår 1</translation>
+ </message>
+</context>
+<context>
+ <name>ConfigMidiFileBase</name>
+ <message>
+ <source>MusE: Config Midi File Export</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>&amp;OK</source>
+ <translation type="unfinished">&amp;Ok</translation>
+ </message>
+ <message>
+ <source>&amp;Cancel</source>
+ <translation type="unfinished">&amp;Avbryt</translation>
+ </message>
+ <message>
+ <source>0 (single track)</source>
+ <translation type="unfinished">0 (ett spår)</translation>
+ </message>
+ <message>
+ <source>1 (multiple tracks)</source>
+ <translation type="unfinished">1 (flera spår)</translation>
+ </message>
+ <message>
+ <source>Format:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>96</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>192</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>384</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Division:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Copyright:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Enable extended smf format</source>
+ <translation type="unfinished">Slå på utbyggt smf-format</translation>
+ </message>
+</context>
+<context>
+ <name>CtrlPanel</name>
+ <message>
+ <source>Sel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>select controller</source>
+ <translation>välj controller</translation>
+ </message>
+ <message>
+ <source>x</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>remove panel</source>
+ <translation>ta bort panel</translation>
+ </message>
+ <message>
+ <source>Velocity</source>
+ <translation>Hastighet</translation>
+ </message>
+ <message>
+ <source>Pitch</source>
+ <translation type="obsolete">Tonhöjd</translation>
+ </message>
+ <message>
+ <source>other ...</source>
+ <translation type="obsolete">annat ...</translation>
+ </message>
+ <message>
+ <source>add new ...</source>
+ <translation type="unfinished">lägg till ny...</translation>
+ </message>
+</context>
+<context>
+ <name>DeicsOnzeGui</name>
+ <message>
+ <source>Delete preset</source>
+ <translation type="unfinished">Ta bort preset</translation>
+ </message>
+ <message>
+ <source>Do you really want to delete %1 ?</source>
+ <translation type="unfinished">Vill du verkligen ta bort %1 ?</translation>
+ </message>
+ <message>
+ <source>&amp;Yes</source>
+ <translation type="unfinished">&amp;Ja</translation>
+ </message>
+ <message>
+ <source>&amp;No</source>
+ <translation type="unfinished">&amp;Nej</translation>
+ </message>
+</context>
+<context>
+ <name>DeicsOnzeGuiBase</name>
+ <message>
+ <source>DeicsOnze</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>&amp;Presets</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Load</source>
+ <translation type="unfinished">Ladda</translation>
+ </message>
+ <message>
+ <source>Save</source>
+ <translation type="unfinished">Spara</translation>
+ </message>
+ <message>
+ <source>Preset Name</source>
+ <translation type="unfinished">Presetnamn</translation>
+ </message>
+ <message>
+ <source>INIT VOICE</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Subcategory</source>
+ <translation type="unfinished">Underkategori</translation>
+ </message>
+ <message>
+ <source>NONE</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Category</source>
+ <translation type="unfinished">Kategori</translation>
+ </message>
+ <message>
+ <source>Delete</source>
+ <translation type="unfinished">Ta bort</translation>
+ </message>
+ <message>
+ <source>Preset</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>New</source>
+ <translation type="unfinished">Ny</translation>
+ </message>
+ <message>
+ <source>Bank</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Bank numerous</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Prog</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Program numerous</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>DeicsOnze v0.2.2 Copyright (c) 2004 Nil Geisweiller under GPL licence</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>&amp;Global</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Master Volume</source>
+ <translation type="unfinished">Mastervolym</translation>
+ </message>
+ <message>
+ <source>Master volume</source>
+ <translation type="unfinished">Mastervolym</translation>
+ </message>
+ <message>
+ <source>feedback</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Coarse Ratio</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Feedback of Op 4</source>
+ <translation type="unfinished">Återkoppling för Op 4</translation>
+ </message>
+ <message>
+ <source>Function</source>
+ <translation type="unfinished">Funktion</translation>
+ </message>
+ <message>
+ <source>POLY</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>MONO</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>PBR</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Pitch Bend Range</source>
+ <translation type="unfinished">Pitchbend område</translation>
+ </message>
+ <message>
+ <source>LFO</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>PMS</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>PMD</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>AMD</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Speed</source>
+ <translation type="unfinished">Hastighet</translation>
+ </message>
+ <message>
+ <source>Delay</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>AMS</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Saw Up</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Square</source>
+ <translation type="unfinished">Fyrkant</translation>
+ </message>
+ <message>
+ <source>Triangl</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>S/Hold</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>LFO Waveform</source>
+ <translation type="unfinished">LFO VÃ¥gform</translation>
+ </message>
+ <message>
+ <source>LFO Sync</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Amplitude Modulation Sensitivity</source>
+ <translation type="unfinished">Amplitudmodulationskänslighet</translation>
+ </message>
+ <message>
+ <source>Pitch Modulation Sensitivity</source>
+ <translation type="unfinished">Pitchmodulationskänslighet</translation>
+ </message>
+ <message>
+ <source>Pitch Modulation Depth</source>
+ <translation type="unfinished">Pitchmodulationsdjup</translation>
+ </message>
+ <message>
+ <source>LFO Speed</source>
+ <translation type="unfinished">LFO Hastighet</translation>
+ </message>
+ <message>
+ <source>LFO Delay</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Transpose and Global Detune</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Transpose</source>
+ <translation type="unfinished">Transponera</translation>
+ </message>
+ <message>
+ <source>Global Detune</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Algorithm 1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Algorithm 2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Algorithm 3</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Algorithm 4</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Algorithm 5</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Algorithm 6</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Algorithm 7</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Algorithm 8</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Modulation Matrix</source>
+ <translation type="unfinished">Modulationsmatris</translation>
+ </message>
+ <message>
+ <source>&lt;b&gt;Algorithm 1&lt;/b&gt; : &lt;i&gt;Op 1&lt;/i&gt; modulated by &lt;i&gt;Op 2&lt;/i&gt; modulated by &lt;i&gt;Op 3&lt;/i&gt; modulated by &lt;i&gt;Op 4&lt;/i&gt;&lt;br&gt;
+&lt;b&gt;Algorithm 2&lt;/b&gt; : &lt;i&gt;Op 1&lt;/i&gt; modulated by &lt;i&gt;Op 2&lt;/i&gt; modulated by both &lt;i&gt;Op 3&lt;/i&gt; and &lt;i&gt;Op 4&lt;/i&gt;&lt;br&gt;
+&lt;b&gt;Algorithm 3&lt;/b&gt; : &lt;i&gt;Op 1&lt;/i&gt; modulated by both &lt;i&gt;Op 4&lt;/i&gt; and &lt;i&gt;Op 2&lt;/i&gt; modulated by &lt;i&gt;Op 3&lt;/i&gt;&lt;br&gt;
+&lt;b&gt;Algorithm 4&lt;/b&gt; : &lt;i&gt;Op 1&lt;/i&gt; modulated by both &lt;i&gt;Op 2&lt;/i&gt; and &lt;i&gt;Op 3&lt;/i&gt; modulated by &lt;i&gt;Op 4&lt;/i&gt;&lt;br&gt;
+&lt;b&gt;Algorithm 5&lt;/b&gt; : (&lt;i&gt;Op 1&lt;/i&gt; modulated by &lt;i&gt;Op 2&lt;/i&gt;) add to (&lt;i&gt;Op 3&lt;/i&gt; modulated by &lt;i&gt;Op 4&lt;/i&gt;) &lt;br&gt;
+&lt;b&gt;Algorithm 6&lt;/b&gt; : addition of the three &lt;i&gt;Op 1, 2, 3&lt;/i&gt; all modulated by &lt;i&gt;Op 4&lt;/i&gt;&lt;br&gt;
+&lt;b&gt;Algorithm 7&lt;/b&gt; : addition of the three &lt;i&gt;Op 1, 2, 3&lt;/i&gt; with &lt;i&gt;Op 3&lt;/i&gt; modulated by &lt;i&gt;Op 4&lt;/i&gt;&lt;br&gt;
+&lt;b&gt;Algorithm 8&lt;/b&gt; : addition of the four &lt;i&gt;Op 1, 2, 3, 4&lt;/i&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Op &amp;1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Frequency 1</source>
+ <translation type="unfinished">Frekvens 1</translation>
+ </message>
+ <message>
+ <source>FIX</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Coarse 1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Fine 1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Freq 1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Fine Ratio</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Fixed Frequency</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Envelope 1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>RR1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>D1R1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>D1L1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>D2R1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message encoding="UTF-8">
+ <source>1° Decay Level</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message encoding="UTF-8">
+ <source>2° Decay Rate</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message encoding="UTF-8">
+ <source>1° Decay Rate</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Release Rate</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>AR1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Attack Rate</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Scaling 1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>LS1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>RS1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Level Scaling</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Attack Rate of the operator 1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Rate Scaling</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Vol 1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Volume</source>
+ <translation type="unfinished">Volym</translation>
+ </message>
+ <message>
+ <source>Sensitivity 1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>EBS1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>KVS1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>AME1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Amplitude Modulation Enable</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Key Velocity Sensitivity</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>EG Bias Sensitivity</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Detune Wave EGShift 1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Wave1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Wave2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Wave3</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Wave4</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Wave5</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Wave6</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Wave7</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Wave8</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Wave Form</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Wave form 1 = &lt;i&gt;sin(&lt;b&gt;t&lt;/b&gt;)&lt;/i&gt;&lt;br&gt;
+Wave form 2 = &lt;i&gt;sin(&lt;b&gt;t&lt;/b&gt;)*abs(sin(&lt;b&gt;t&lt;/b&gt;))&lt;/i&gt;&lt;br&gt;
+Wave form 3 = &lt;i&gt;if &lt;b&gt;t&lt;/b&gt;&amp;#060 pi then sin(&lt;b&gt;t&lt;/b&gt;) else 0&lt;/i&gt;&lt;br&gt;
+Wave form 4 = &lt;i&gt;if &lt;b&gt;t&lt;/b&gt;&amp;#060 pi then sin(&lt;b&gt;t&lt;/b&gt;)*abs(sin(&lt;b&gt;t&lt;/b&gt;)) else 0&lt;/i&gt;&lt;br&gt;
+Wave form 5 = &lt;i&gt;if &lt;b&gt;t&lt;/b&gt;&amp;#060 pi then sin(2*&lt;b&gt;t&lt;/b&gt;) else 0&lt;/i&gt;&lt;br&gt;
+Wave form 6 = &lt;i&gt;if &lt;b&gt;t&lt;/b&gt;&amp;#060 pi then sin(2*&lt;b&gt;t&lt;/b&gt;)*abs(sin(2*&lt;b&gt;t&lt;/b&gt;)) else 0&lt;/i&gt;&lt;br&gt;
+Wave form 7 = &lt;i&gt;if &lt;b&gt;t&lt;/b&gt;&amp;#060 pi then abs(sin(2*&lt;b&gt;t&lt;/b&gt;)) else 0&lt;/i&gt;&lt;br&gt;
+Wave form 8 = &lt;i&gt;if &lt;b&gt;t&lt;/b&gt;&amp;#060 pi then sin(2*&lt;b&gt;t&lt;/b&gt;)*sin(2*&lt;b&gt;t&lt;/b&gt;) else 0&lt;/i&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>DET1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>96dB</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>48dB</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>24dB</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>12dB</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>EG Shift</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Detune</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Op &amp;2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Frequency 2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Freq 2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Fine 2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Coarse 2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Envelope 2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>AR2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>RR2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>D2R2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>D1L2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>D1R2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Scaling 2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>LS2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>RS2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Vol 2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Sensitivity 2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>EBS2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>KVS2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>AME2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Detune Wave EGShift 2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>DET2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Op &amp;3</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Frequency 3</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Coarse 3</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Fine 3</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Freq 3</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Envelope 3</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>RR3</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>D2R3</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>D1L3</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>D1R3</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>AR3</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Scaling 3</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>LS3</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>RS3</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Vol 3</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Sensitivity 3</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>EBS3</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>KVS3</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>AME3</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Detune Wave EGShift 3</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>DET3</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Op &amp;4</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Frequency 4</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Coarse 4</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Fine 4</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Freq 4</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Scaling 4</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>LS4</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>RS4</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Envelope 4</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>AR4</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>RR4</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>D2R4</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>D1L4</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>D1R4</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Vol 4</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Sensitivity 4</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>EBS4</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>KVS4</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>AME4</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Detune Wave EGShift 4</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>DET4</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>DrumEdit</name>
+ <message>
+ <source>&amp;File</source>
+ <translation>&amp;Arkiv</translation>
+ </message>
+ <message>
+ <source>Load Map</source>
+ <translation>Ladda mappning</translation>
+ </message>
+ <message>
+ <source>Save Map</source>
+ <translation>Spara Mappning</translation>
+ </message>
+ <message>
+ <source>&amp;Edit</source>
+ <translation>&amp;Redigera</translation>
+ </message>
+ <message>
+ <source>Cut</source>
+ <translation>Klipp ut</translation>
+ </message>
+ <message>
+ <source>Copy</source>
+ <translation>Kopiera</translation>
+ </message>
+ <message>
+ <source>Paste</source>
+ <translation>Klistra in</translation>
+ </message>
+ <message>
+ <source>Delete Events</source>
+ <translation>Ta bort händelser</translation>
+ </message>
+ <message>
+ <source>Select All</source>
+ <translation>Välj Allt</translation>
+ </message>
+ <message>
+ <source>Select None</source>
+ <translation>Välj Ingen</translation>
+ </message>
+ <message>
+ <source>Invert</source>
+ <translation>Invertera</translation>
+ </message>
+ <message>
+ <source>Inside Loop</source>
+ <translation>I loop</translation>
+ </message>
+ <message>
+ <source>Outside Loop</source>
+ <translation>Utanför loop</translation>
+ </message>
+ <message>
+ <source>&amp;Select</source>
+ <translation>&amp;Välj</translation>
+ </message>
+ <message>
+ <source>Load Drummap</source>
+ <translation>Ladda trummappning</translation>
+ </message>
+ <message>
+ <source>Store Drummap</source>
+ <translation>Spara trummappning</translation>
+ </message>
+ <message>
+ <source>Step Record</source>
+ <translation>Stegvis inspelning</translation>
+ </message>
+ <message>
+ <source>Midi Input</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>ctrl</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Add Controller View</source>
+ <translation>Lägg till Controller vy</translation>
+ </message>
+ <message>
+ <source>M</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Sound</source>
+ <translation>Ljud</translation>
+ </message>
+ <message>
+ <source>QNT</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>E-Note</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Len</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>A-Note</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Ch</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Port</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>LV1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>LV2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>LV3</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>LV4</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>drummaps</source>
+ <translation type="obsolete">trummappningar</translation>
+ </message>
+ <message>
+ <source>Muse: Load Drum Map</source>
+ <translation>Muse: Ladda trummappning</translation>
+ </message>
+ <message>
+ <source>MusE: Store Drum Map</source>
+ <translation>MusE: Spara trummappning</translation>
+ </message>
+ <message>
+ <source>Set fixed length</source>
+ <translation type="unfinished">Sätt fast längd</translation>
+ </message>
+ <message>
+ <source>&amp;Functions</source>
+ <translation type="unfinished">&amp;Funktioner</translation>
+ </message>
+ <message>
+ <source>Modify Velocity</source>
+ <translation type="unfinished">Modifiera Velocity</translation>
+ </message>
+</context>
+<context>
+ <name>EditCAfterDialog</name>
+ <message>
+ <source>MusE: Enter Channel Aftertouch</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Time Position</source>
+ <translation type="unfinished">Tidsposition</translation>
+ </message>
+ <message>
+ <source>Pressure</source>
+ <translation type="unfinished">Tryck</translation>
+ </message>
+</context>
+<context>
+ <name>EditCtrl14Dialog</name>
+ <message>
+ <source>MusE: Enter Controller14 Event</source>
+ <translation type="obsolete">MusE: Mata in Controller14 Händelse</translation>
+ </message>
+ <message>
+ <source>Time Position</source>
+ <translation type="obsolete">Tidsposition</translation>
+ </message>
+ <message>
+ <source>Value</source>
+ <translation type="obsolete">Värde</translation>
+ </message>
+</context>
+<context>
+ <name>EditCtrl7Dialog</name>
+ <message>
+ <source>MusE: Enter Controller Event</source>
+ <translation type="obsolete">MusE: Mata in Controller Händelse</translation>
+ </message>
+ <message>
+ <source>Time Position</source>
+ <translation type="obsolete">Tidsposition</translation>
+ </message>
+ <message>
+ <source>Value</source>
+ <translation type="obsolete">Värde</translation>
+ </message>
+</context>
+<context>
+ <name>EditCtrl7DialogBase</name>
+ <message>
+ <source>MusE: Enter Controller</source>
+ <translation>MusE: Mata in Controller</translation>
+ </message>
+ <message>
+ <source>Controller:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Time Position:</source>
+ <translation>Tidspositions:</translation>
+ </message>
+ <message>
+ <source>Value:</source>
+ <translation>Värde:</translation>
+ </message>
+ <message>
+ <source>controller value</source>
+ <translation type="unfinished">controllervärde</translation>
+ </message>
+ <message>
+ <source>OK</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cancel</source>
+ <translation>Avbryt</translation>
+ </message>
+</context>
+<context>
+ <name>EditCtrlBase</name>
+ <message>
+ <source>MusE: Edit Controller Event</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Time Position</source>
+ <translation type="unfinished">Tidsposition</translation>
+ </message>
+ <message>
+ <source>Available Controller:</source>
+ <translation type="unfinished">Tillgänglig controller:</translation>
+ </message>
+ <message>
+ <source>Create New Controller</source>
+ <translation type="unfinished">Skapa ny Controller:</translation>
+ </message>
+ <message>
+ <source>textLabel3</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Value</source>
+ <translation type="unfinished">Värde</translation>
+ </message>
+ <message>
+ <source>Controller</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>H-Bank</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>L-Bank</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Program</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>off</source>
+ <translation type="unfinished">av</translation>
+ </message>
+ <message>
+ <source>pushButton4</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>&amp;OK</source>
+ <translation type="unfinished">&amp;Ok</translation>
+ </message>
+ <message>
+ <source>&amp;Cancel</source>
+ <translation type="unfinished">&amp;Avbryt</translation>
+ </message>
+</context>
+<context>
+ <name>EditEventDialog</name>
+ <message>
+ <source>Ok</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cancel</source>
+ <translation type="unfinished">Avbryt</translation>
+ </message>
+</context>
+<context>
+ <name>EditGainBase</name>
+ <message>
+ <source>MusE: Modify gain</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Gain</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>200%</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>100%</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>0%</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>&amp;Reset</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Alt+R</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>&amp;Apply</source>
+ <translation type="unfinished">&amp;Verkställ</translation>
+ </message>
+ <message>
+ <source>Alt+A</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>&amp;Cancel</source>
+ <translation type="unfinished">&amp;Avbryt</translation>
+ </message>
+ <message>
+ <source>Alt+C</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>EditInstrumentBase</name>
+ <message>
+ <source>MusE: Instrument Editor</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Patches</source>
+ <translation type="unfinished">Patcher</translation>
+ </message>
+ <message>
+ <source>Patch Name:</source>
+ <translation type="unfinished">Patchnamn:</translation>
+ </message>
+ <message>
+ <source>High Bank:</source>
+ <translation type="unfinished">Hög bank:</translation>
+ </message>
+ <message>
+ <source>Low Bank:</source>
+ <translation type="unfinished">LÃ¥g bank:</translation>
+ </message>
+ <message>
+ <source>Program:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>d.c.</source>
+ <comment>dont care</comment>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>d.c.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Patch/Group</source>
+ <translation type="unfinished">Patch/Grupp;</translation>
+ </message>
+ <message>
+ <source>&amp;Delete</source>
+ <translation type="unfinished">&amp;Ta bort</translation>
+ </message>
+ <message>
+ <source>Alt+D</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>&amp;New Patch</source>
+ <translation type="unfinished">&amp;Ny Patch</translation>
+ </message>
+ <message>
+ <source>Alt+N</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>New Group</source>
+ <translation type="unfinished">Ny Grupp;</translation>
+ </message>
+ <message>
+ <source>Drum</source>
+ <translation type="unfinished">Trumma</translation>
+ </message>
+ <message>
+ <source>GM</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>GS</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>XG</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Controller</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Predefined Controller:</source>
+ <translation type="unfinished">Fördefinierad controller:</translation>
+ </message>
+ <message>
+ <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="unfinished">Detta är en lista med vanligt använda midi-controllers
+Notera att i MusE hanteras tonhöjd och program change som
+vanliga controllers.</translation>
+ </message>
+ <message>
+ <source>Properties</source>
+ <translation type="unfinished">Egenskaper</translation>
+ </message>
+ <message>
+ <source>Name</source>
+ <translation type="unfinished">Namn</translation>
+ </message>
+ <message>
+ <source>Type</source>
+ <translation type="unfinished">Typ</translation>
+ </message>
+ <message>
+ <source>Control7</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Control14</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>RPN</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>NRPN</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Pitch</source>
+ <translation type="unfinished">Tonhöjd</translation>
+ </message>
+ <message>
+ <source>Program</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>H-Ctrl</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Midi Controller Number High Byte</source>
+ <translation type="unfinished">Midicontrollernummer, hög byte</translation>
+ </message>
+ <message>
+ <source>L-Ctrl</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Midi Controller Number Low Byte</source>
+ <translation type="unfinished">Midicontrollernummer, låg byte</translation>
+ </message>
+ <message>
+ <source>Range</source>
+ <translation type="unfinished">Område</translation>
+ </message>
+ <message>
+ <source>Min</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Max</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Default</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Name </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Type </source>
+ <translation type="unfinished">Typ</translation>
+ </message>
+ <message>
+ <source>Min Val</source>
+ <translation type="unfinished">Minvärde</translation>
+ </message>
+ <message>
+ <source>Max Val</source>
+ <translation type="unfinished">Maxvärde</translation>
+ </message>
+ <message>
+ <source>list of defined controllers</source>
+ <translation type="unfinished">lista med definierade controllers</translation>
+ </message>
+ <message>
+ <source>This is the MusE list of defined controllers.</source>
+ <translation type="unfinished">Detta är MusEs lista med definierade controllers.</translation>
+ </message>
+ <message>
+ <source>SysEx</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Initialization</source>
+ <translation type="unfinished">Initiering</translation>
+ </message>
+ <message>
+ <source>Panic</source>
+ <translation type="unfinished">Panik</translation>
+ </message>
+ <message>
+ <source>Hex Entry:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>&amp;File</source>
+ <translation type="unfinished">&amp;Arkiv</translation>
+ </message>
+ <message>
+ <source>Tools</source>
+ <translation type="unfinished">Verktyg</translation>
+ </message>
+ <message>
+ <source>New</source>
+ <translation type="unfinished">Ny</translation>
+ </message>
+ <message>
+ <source>&amp;New</source>
+ <translation type="unfinished">&amp;Ny</translation>
+ </message>
+ <message>
+ <source>Ctrl+N</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Open</source>
+ <translation type="unfinished">Öppna</translation>
+ </message>
+ <message>
+ <source>&amp;Open...</source>
+ <translation type="unfinished">&amp;Öppna...</translation>
+ </message>
+ <message>
+ <source>Ctrl+O</source>
+ <translation type="unfinished">Ctrl+Ö</translation>
+ </message>
+ <message>
+ <source>Save</source>
+ <translation type="unfinished">Spara</translation>
+ </message>
+ <message>
+ <source>&amp;Save</source>
+ <translation type="unfinished">&amp;Spara</translation>
+ </message>
+ <message>
+ <source>Ctrl+S</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Save As</source>
+ <translation type="unfinished">Spara som</translation>
+ </message>
+ <message>
+ <source>Save &amp;As...</source>
+ <translation type="unfinished">S&amp;para som...</translation>
+ </message>
+ <message>
+ <source>Exit</source>
+ <translation type="unfinished">Stäng</translation>
+ </message>
+ <message>
+ <source>E&amp;xit</source>
+ <translation type="unfinished">S&amp;täng</translation>
+ </message>
+</context>
+<context>
+ <name>EditMetaDialog</name>
+ <message>
+ <source>MusE: Enter Meta Event</source>
+ <translation>MusE: Mata in Meta Händelse</translation>
+ </message>
+ <message>
+ <source>Time Position</source>
+ <translation>Tidsposition</translation>
+ </message>
+ <message>
+ <source>Meta Type</source>
+ <translation>Metatyp</translation>
+ </message>
+ <message>
+ <source>Enter Hex</source>
+ <translation>Mata in Hex</translation>
+ </message>
+</context>
+<context>
+ <name>EditMetaDialogBase</name>
+ <message>
+ <source>MusE: Enter Meta Event</source>
+ <translation>MusE: Mata in Meta Händelse</translation>
+ </message>
+ <message>
+ <source>OK</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cancel</source>
+ <translation>Avbryt</translation>
+ </message>
+ <message>
+ <source>TextLabel1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Time Position:</source>
+ <translation>Tidsposition:</translation>
+ </message>
+ <message>
+ <source>Meta Type:</source>
+ <translation>Metatyp:</translation>
+ </message>
+ <message>
+ <source>Enter Hex</source>
+ <translation>Mata in hex</translation>
+ </message>
+</context>
+<context>
+ <name>EditNoteDialogBase</name>
+ <message>
+ <source>MusE: Enter Note</source>
+ <translation>MusE: Mata in Not</translation>
+ </message>
+ <message>
+ <source>OK</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cancel</source>
+ <translation>Avbryt</translation>
+ </message>
+ <message>
+ <source>Length:</source>
+ <translation>Längd:</translation>
+ </message>
+ <message>
+ <source>Time Position:</source>
+ <translation>Tidsposition:</translation>
+ </message>
+ <message>
+ <source>Pitch:</source>
+ <translation>Tonhöjd:</translation>
+ </message>
+ <message>
+ <source>Velocity On:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Velocity Off:</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>EditPAfterDialog</name>
+ <message>
+ <source>MusE: Enter Poly Aftertouch</source>
+ <translation>MusE: Mata in Poly Aftertouch</translation>
+ </message>
+ <message>
+ <source>Time Position</source>
+ <translation>Tidsposition</translation>
+ </message>
+ <message>
+ <source>Pitch</source>
+ <translation>Tonhöjd</translation>
+ </message>
+ <message>
+ <source>Pressure</source>
+ <translation type="unfinished">Tryck</translation>
+ </message>
+</context>
+<context>
+ <name>EditPitchDialog</name>
+ <message>
+ <source>MusE: Enter Pitch Shift</source>
+ <translation type="obsolete">MusE: Mata in Pitch Shift</translation>
+ </message>
+ <message>
+ <source>Time Position</source>
+ <translation type="obsolete">Tidsposition</translation>
+ </message>
+ <message>
+ <source>Pitch</source>
+ <translation type="obsolete">Tonhöjd</translation>
+ </message>
+</context>
+<context>
+ <name>EditSysexDialogBase</name>
+ <message>
+ <source>MusE: Enter SysEx</source>
+ <translation>MusE: Mata in SysEx</translation>
+ </message>
+ <message>
+ <source>TimePosition:</source>
+ <translation>Tidsposition:</translation>
+ </message>
+ <message>
+ <source>Comment:</source>
+ <translation>Kommentar:</translation>
+ </message>
+ <message>
+ <source>OK</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cancel</source>
+ <translation>Avbryt</translation>
+ </message>
+</context>
+<context>
+ <name>EditToolBar</name>
+ <message>
+ <source>Edit Tools</source>
+ <translation>Redigeringsverktyg</translation>
+ </message>
+</context>
+<context>
+ <name>EffectRack</name>
+ <message>
+ <source>effect rack</source>
+ <translation>effektrack</translation>
+ </message>
+ <message>
+ <source>move up</source>
+ <translation>flytta upp</translation>
+ </message>
+ <message>
+ <source>move down</source>
+ <translation>flytta ner</translation>
+ </message>
+ <message>
+ <source>remove</source>
+ <translation>ta bort</translation>
+ </message>
+ <message>
+ <source>bypass</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>show gui</source>
+ <translation>visa gui</translation>
+ </message>
+ <message>
+ <source>new</source>
+ <translation>ny</translation>
+ </message>
+ <message>
+ <source>change</source>
+ <translation>ändra</translation>
+ </message>
+ <message>
+ <source>Replace effect</source>
+ <translation type="unfinished">Byt effekt</translation>
+ </message>
+ <message>
+ <source>Do you really want to replace the effect %1?</source>
+ <translation type="unfinished">Vill du verkligen ersätta effekten %1?</translation>
+ </message>
+ <message>
+ <source>&amp;Yes</source>
+ <translation type="unfinished">&amp;Ja</translation>
+ </message>
+ <message>
+ <source>&amp;No</source>
+ <translation type="unfinished">&amp;Nej</translation>
+ </message>
+</context>
+<context>
+ <name>ErrorHandlerBase</name>
+ <message>
+ <source>Form1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>We are sorry, MusE has encountered a
+fatal error and is unable to continue.</source>
+ <translation type="unfinished">Tyvärr har ett fatalt fel inträffat, MusE
+kan inte fortsätta.</translation>
+ </message>
+ <message>
+ <source>The Error
+Message:</source>
+ <translation type="unfinished">Felmeddelandet:</translation>
+ </message>
+ <message>
+ <source>textLabel2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Terminate</source>
+ <translation type="unfinished">Terminera</translation>
+ </message>
+</context>
+<context>
+ <name>FLUIDGui</name>
+ <message>
+ <source>FLUID: open Soundfile</source>
+ <translation type="unfinished">FLUID: öppna ljudbank</translation>
+ </message>
+</context>
+<context>
+ <name>FLUIDGuiBase</name>
+ <message>
+ <source>Load</source>
+ <translation type="unfinished">Ladda</translation>
+ </message>
+ <message>
+ <source>Form1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Soundfont</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>FLUIDSynthGuiBase</name>
+ <message>
+ <source>Gain</source>
+ <translation type="unfinished">Förstärkning</translation>
+ </message>
+ <message>
+ <source>Room Size</source>
+ <translation type="unfinished">Rumsstorlek</translation>
+ </message>
+ <message>
+ <source>Damping</source>
+ <translation type="unfinished">Dämpning</translation>
+ </message>
+ <message>
+ <source>Level</source>
+ <translation type="unfinished">Nivå</translation>
+ </message>
+ <message>
+ <source>Width</source>
+ <translation type="unfinished">Bredd</translation>
+ </message>
+ <message>
+ <source>Speed</source>
+ <translation type="unfinished">Hastighet</translation>
+ </message>
+ <message>
+ <source>Depth</source>
+ <translation type="unfinished">Djup</translation>
+ </message>
+ <message>
+ <source>Number</source>
+ <translation type="unfinished">Nummer</translation>
+ </message>
+ <message>
+ <source>Type</source>
+ <translation type="unfinished">Typ</translation>
+ </message>
+ <message>
+ <source>Sine</source>
+ <translation type="unfinished">Sinus</translation>
+ </message>
+ <message>
+ <source>Triangle</source>
+ <translation type="unfinished">Triangel</translation>
+ </message>
+ <message>
+ <source>Load</source>
+ <translation type="unfinished">Ladda</translation>
+ </message>
+ <message>
+ <source>Save</source>
+ <translation type="obsolete">Spara</translation>
+ </message>
+ <message>
+ <source>Delete</source>
+ <translation type="unfinished">Ta bort</translation>
+ </message>
+ <message>
+ <source>Fontname</source>
+ <translation type="unfinished">Fontnamn</translation>
+ </message>
+ <message>
+ <source>FLUID Synth</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Dump Info</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>ID</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Chnl</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Soundfont</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Drum Chnl</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Reverb</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>CHANNEL SETUP</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Chorus</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>LOADED SOUNDFONTS</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>FileDialogButtons</name>
+ <message>
+ <source>Form1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Global</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>User</source>
+ <translation>Användare</translation>
+ </message>
+ <message>
+ <source>Project</source>
+ <translation>Projekt</translation>
+ </message>
+ <message>
+ <source>Load:</source>
+ <translation type="unfinished">Ladda:</translation>
+ </message>
+ <message>
+ <source>Songdata +
+Cofiguration</source>
+ <translation type="unfinished">SÃ¥ngdata +
+konfiguration</translation>
+ </message>
+ <message>
+ <source>only
+Songdata</source>
+ <translation type="unfinished">bara sångdata</translation>
+ </message>
+</context>
+<context>
+ <name>FontSel</name>
+ <message>
+ <source>Size:</source>
+ <translation type="unfinished">Storlek:</translation>
+ </message>
+</context>
+<context>
+ <name>GateTimeBase</name>
+ <message>
+ <source>MusE: Modify Gate Time</source>
+ <translation>MusE: Ändra Gate-tid</translation>
+ </message>
+ <message>
+ <source>Range</source>
+ <translation>Område</translation>
+ </message>
+ <message>
+ <source>All Events</source>
+ <translation>Alla Händelser</translation>
+ </message>
+ <message>
+ <source>Selected Events</source>
+ <translation>Valda Händelser</translation>
+ </message>
+ <message>
+ <source>Looped Events</source>
+ <translation>Loopade Händelser</translation>
+ </message>
+ <message>
+ <source>Selected &amp; Looped</source>
+ <translation>Valda &amp; Loopade</translation>
+ </message>
+ <message>
+ <source>Values</source>
+ <translation>Värden</translation>
+ </message>
+ <message>
+ <source>Rate:</source>
+ <translation>Hastighet:</translation>
+ </message>
+ <message>
+ <source>Offset:</source>
+ <translation type="unfinished">Offset:</translation>
+ </message>
+ <message>
+ <source>%</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>OK</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cancel</source>
+ <translation>Avbryt</translation>
+ </message>
+</context>
+<context>
+ <name>GlobalSettingsDialogBase</name>
+ <message>
+ <source>MusE: Global Settings</source>
+ <translation>MusE: Globala Inställningar</translation>
+ </message>
+ <message>
+ <source>&amp;Apply</source>
+ <translation>&amp;Verkställ</translation>
+ </message>
+ <message>
+ <source>&amp;Ok</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>&amp;Cancel</source>
+ <translation>&amp;Avbryt</translation>
+ </message>
+ <message>
+ <source>Audio</source>
+ <translation type="unfinished">Ljud</translation>
+ </message>
+ <message>
+ <source>Mixer</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>dB</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>min. Meter Value</source>
+ <translation>min. Metervärde</translation>
+ </message>
+ <message>
+ <source>min.Slider Val</source>
+ <translation type="unfinished">min. Slider värde</translation>
+ </message>
+ <message>
+ <source>Midi</source>
+ <translation type="unfinished">Midi</translation>
+ </message>
+ <message>
+ <source>Ticks</source>
+ <translation type="unfinished">Tick</translation>
+ </message>
+ <message>
+ <source>1024</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>2048</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>4096</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>8172</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Displayed Resolution
+(Ticks/Quarternote)</source>
+ <translation>Visad upplösning
+(Tick/Kvartsnot)</translation>
+ </message>
+ <message>
+ <source>48</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>96</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>192</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>384</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>768</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>1536</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>3072</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>6144</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>12288</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>RTC Resolution
+(Ticks/Sec)</source>
+ <translation>RTC-Upplösning
+(Tick/Sek)</translation>
+ </message>
+ <message>
+ <source>GUI</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Help Browser:</source>
+ <translation>Hjälpläsare:</translation>
+ </message>
+ <message>
+ <source>GUI Refresh Rate</source>
+ <translation>GUI-uppdateringsfrekvens</translation>
+ </message>
+ <message>
+ <source>/sec</source>
+ <translation>/sek</translation>
+ </message>
+ <message>
+ <source>Application</source>
+ <translation type="unfinished">Applikation</translation>
+ </message>
+ <message>
+ <source>Start Muse</source>
+ <translation type="unfinished">Starta MusE</translation>
+ </message>
+ <message>
+ <source>start with last song</source>
+ <translation type="unfinished">starta med föregående sång</translation>
+ </message>
+ <message>
+ <source>start with song</source>
+ <translation type="unfinished">starta med sång</translation>
+ </message>
+ <message>
+ <source>start song:</source>
+ <translation type="unfinished">startsång:</translation>
+ </message>
+ <message>
+ <source>Views</source>
+ <translation type="unfinished">Vyer</translation>
+ </message>
+ <message>
+ <source>y-pos</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>show</source>
+ <translation type="unfinished">visa</translation>
+ </message>
+ <message>
+ <source>x-pos</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>height</source>
+ <translation type="unfinished">höjd</translation>
+ </message>
+ <message>
+ <source>width</source>
+ <translation type="unfinished">bredd</translation>
+ </message>
+ <message>
+ <source>Big Time</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Arranger</source>
+ <translation type="unfinished">Arrangerare</translation>
+ </message>
+ <message>
+ <source>Transport</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cur</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>set current values</source>
+ <translation type="unfinished">sätt nuvarande värden</translation>
+ </message>
+ <message>
+ <source>start with template: default.med</source>
+ <translation type="unfinished">börja med mall: default.med</translation>
+ </message>
+ <message>
+ <source>show splash screen</source>
+ <translation type="unfinished">visa splash</translation>
+ </message>
+ <message>
+ <source>External Waveditor</source>
+ <translation type="unfinished">Extern Ljudredigerare</translation>
+ </message>
+ <message>
+ <source>External Waveditor command</source>
+ <translation type="unfinished">Extern Ljudredigerarkommando</translation>
+ </message>
+</context>
+<context>
+ <name>LMaster</name>
+ <message>
+ <source>MusE: Mastertrack</source>
+ <translation>MusE: Masterspår</translation>
+ </message>
+ <message>
+ <source>Tempo</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Timesig</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>new tempo</source>
+ <translation>nytt tempo</translation>
+ </message>
+ <message>
+ <source>new signature</source>
+ <translation>ny signatur</translation>
+ </message>
+ <message>
+ <source>Meter</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Time</source>
+ <translation>Tid</translation>
+ </message>
+ <message>
+ <source>Type</source>
+ <translation>Typ</translation>
+ </message>
+ <message>
+ <source>Value</source>
+ <translation>Värde</translation>
+ </message>
+ <message>
+ <source>&amp;Edit</source>
+ <translation type="unfinished">&amp;Redigera</translation>
+ </message>
+ <message>
+ <source>Insert Tempo</source>
+ <translation type="unfinished">Sätt in tempo</translation>
+ </message>
+ <message>
+ <source>Insert Signature</source>
+ <translation type="unfinished">Sätt in signatur</translation>
+ </message>
+ <message>
+ <source>Edit Positon</source>
+ <translation type="unfinished">Editera position</translation>
+ </message>
+ <message>
+ <source>Edit Value</source>
+ <translation type="unfinished">Editera värde</translation>
+ </message>
+ <message>
+ <source>Delete Event</source>
+ <translation type="unfinished">Ta bort event</translation>
+ </message>
+ <message>
+ <source>Reposition of the initial tempo and signature events is not allowed</source>
+ <translation type="unfinished">Ompositionering av initalt tempo och/eller signaturevent är inte tillåtet</translation>
+ </message>
+ <message>
+ <source>MusE: List Editor</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Input error, conversion not OK or value out of range</source>
+ <translation type="unfinished">Inmatningsfel, konvertering felaktig eller värde utanför område</translation>
+ </message>
+ <message>
+ <source>Reposition of tempo and signature events to start position is not allowed!</source>
+ <translation type="unfinished">Ompositionering av tempo och/eller signaturevent till startposition är inte tillåtet</translation>
+ </message>
+</context>
+<context>
+ <name>ListEdit</name>
+ <message>
+ <source>Insert Note</source>
+ <translation>Mata in Not</translation>
+ </message>
+ <message>
+ <source>insert Note</source>
+ <translation>Mata in Not</translation>
+ </message>
+ <message>
+ <source>Insert SysEx</source>
+ <translation>Mata in SysEx</translation>
+ </message>
+ <message>
+ <source>insert SysEx</source>
+ <translation>Mata in SysEx</translation>
+ </message>
+ <message>
+ <source>Insert Ctrl</source>
+ <translation>Mata in Ctrl</translation>
+ </message>
+ <message>
+ <source>insert Ctrl</source>
+ <translation>Mata in Ctrl</translation>
+ </message>
+ <message>
+ <source>Insert Meta</source>
+ <translation>Mata in Meta</translation>
+ </message>
+ <message>
+ <source>insert Meta</source>
+ <translation>Mata in Meta</translation>
+ </message>
+ <message>
+ <source>Insert Pitch</source>
+ <translation type="obsolete">Mata in Pitch</translation>
+ </message>
+ <message>
+ <source>insert Pitch</source>
+ <translation type="obsolete">Mata in Pitch</translation>
+ </message>
+ <message>
+ <source>Insert Channel Aftertouch</source>
+ <translation>Mata in Aftertouch för kanal</translation>
+ </message>
+ <message>
+ <source>insert Channel Aftertouch</source>
+ <translation>Mata in Aftertouch för kanal</translation>
+ </message>
+ <message>
+ <source>Insert Key Aftertouch</source>
+ <translation>Mata in Key Aftertouch</translation>
+ </message>
+ <message>
+ <source>insert Poly Aftertouch</source>
+ <translation>Mata in Poly Aftertouch</translation>
+ </message>
+ <message>
+ <source>&amp;Edit</source>
+ <translation>&amp;Redigera</translation>
+ </message>
+ <message>
+ <source>Cut</source>
+ <translation>Klipp ut</translation>
+ </message>
+ <message>
+ <source>Copy</source>
+ <translation>Kopiera</translation>
+ </message>
+ <message>
+ <source>Paste</source>
+ <translation>Klistra in</translation>
+ </message>
+ <message>
+ <source>Delete Events</source>
+ <translation>Ta bort Händelser</translation>
+ </message>
+ <message>
+ <source>List Tools</source>
+ <translation>Listverktyg</translation>
+ </message>
+ <message>
+ <source>Insert Tools</source>
+ <translation>Inmatningsverktyg</translation>
+ </message>
+ <message>
+ <source>Tick</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Bar</source>
+ <translation type="unfinished">Takt</translation>
+ </message>
+ <message>
+ <source>Typ</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Ch</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Val A</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Val B</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Val C</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Len</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Comment</source>
+ <translation>Kommentar</translation>
+ </message>
+</context>
+<context>
+ <name>MITTransposeBase</name>
+ <message>
+ <source>MusE: Midi Input Plugin: Transpose</source>
+ <translation>MusE: Midi Inputplugin: Transponering</translation>
+ </message>
+ <message>
+ <source>On</source>
+ <translation>PÃ¥</translation>
+ </message>
+ <message>
+ <source>TriggerKey</source>
+ <translation type="unfinished">TriggNot</translation>
+ </message>
+ <message>
+ <source>Transpose:</source>
+ <translation type="unfinished">Transponering:</translation>
+ </message>
+ <message>
+ <source>+0</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>MPConfig</name>
+ <message>
+ <source>none</source>
+ <translation>inga</translation>
+ </message>
+ <message>
+ <source>other raw ...</source>
+ <translation type="obsolete">annan raw ...</translation>
+ </message>
+ <message>
+ <source>MusE: Midi Port Table</source>
+ <translation type="obsolete">MusE: Midiporttabell</translation>
+ </message>
+ <message>
+ <source>Port</source>
+ <translation></translation>
+ </message>
+ <message>
+ <source>GUI</source>
+ <translation></translation>
+ </message>
+ <message>
+ <source>Instrument</source>
+ <translation></translation>
+ </message>
+ <message>
+ <source>Device Name</source>
+ <translation>Enhetsnamn</translation>
+ </message>
+ <message>
+ <source>State</source>
+ <translation>Status</translation>
+ </message>
+ <message>
+ <source>unknown</source>
+ <translation>okänd</translation>
+ </message>
+ <message>
+ <source>I</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>O</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>MRConfigBase</name>
+ <message>
+ <source>MusE: Midi Input Plugin: Remote Control</source>
+ <translation>MusE: Midiinputplugin: Fjärrkontroll</translation>
+ </message>
+ <message>
+ <source>Activate</source>
+ <translation>Aktivera</translation>
+ </message>
+ <message>
+ <source>On</source>
+ <translation>PÃ¥</translation>
+ </message>
+ <message>
+ <source>Actions</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Stop</source>
+ <translation type="unfinished">Stopp</translation>
+ </message>
+ <message>
+ <source>Record</source>
+ <translation type="unfinished">Spela in</translation>
+ </message>
+ <message>
+ <source>Goto Left Mark</source>
+ <translation>Gå till vänster markering</translation>
+ </message>
+ <message>
+ <source>Play</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>MTScale</name>
+ <message>
+ <source>bar scale</source>
+ <translation>takt skala</translation>
+ </message>
+</context>
+<context>
+ <name>MarkerView</name>
+ <message>
+ <source>MusE: Marker</source>
+ <translation>MusE: Markör</translation>
+ </message>
+ <message>
+ <source>add marker</source>
+ <translation>lägg till markör</translation>
+ </message>
+ <message>
+ <source>Add Marker</source>
+ <translation>Lägg till Markör</translation>
+ </message>
+ <message>
+ <source>delete marker</source>
+ <translation>ta bort markör</translation>
+ </message>
+ <message>
+ <source>Delete Marker</source>
+ <translation>Ta bort Markör</translation>
+ </message>
+ <message>
+ <source>&amp;File</source>
+ <translation>&amp;Arkiv</translation>
+ </message>
+ <message>
+ <source>&amp;Edit</source>
+ <translation>&amp;Redigera</translation>
+ </message>
+ <message>
+ <source>Bar:Beat:Tick</source>
+ <translation>Takt:Slag:Tick</translation>
+ </message>
+ <message>
+ <source>Hr:Mn:Sc:Fr:Sf</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Lock</source>
+ <translation>LÃ¥s</translation>
+ </message>
+ <message>
+ <source>Text</source>
+ <translation type="unfinished">Text</translation>
+ </message>
+ <message>
+ <source>Marker Properties</source>
+ <translation>Markörinställningar</translation>
+ </message>
+</context>
+<context>
+ <name>MasterEdit</name>
+ <message>
+ <source>MusE: Mastertrack</source>
+ <translation>MusE: Masterspår</translation>
+ </message>
+ <message>
+ <source>edit tools</source>
+ <translation>redigeringsverktyg</translation>
+ </message>
+ <message>
+ <source>EnableMaster</source>
+ <translation>Aktivera Master</translation>
+ </message>
+ <message>
+ <source>use master track</source>
+ <translation type="obsolete">använd master track</translation>
+ </message>
+ <message>
+ <source>Info</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cursor</source>
+ <translation type="unfinished">Markör</translation>
+ </message>
+ <message>
+ <source>Off</source>
+ <translation>Av</translation>
+ </message>
+ <message>
+ <source>Snap</source>
+ <translation>Fäst vid</translation>
+ </message>
+ <message>
+ <source>time at cursor position</source>
+ <translation>tid vid markörposition</translation>
+ </message>
+ <message>
+ <source>tempo at cursor position</source>
+ <translation>tempo vid markörposition</translation>
+ </message>
+ <message>
+ <source>CurPos </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>tempo at current position</source>
+ <translation>tempo vid nuvarande position</translation>
+ </message>
+ <message>
+ <source>time signature at current position</source>
+ <translation>time signature vid nuvarande position</translation>
+ </message>
+ <message>
+ <source>Enable</source>
+ <translation type="unfinished">Aktivera</translation>
+ </message>
+ <message>
+ <source>Enable usage of master track</source>
+ <translation type="unfinished">Aktivera användning av masterspår</translation>
+ </message>
+</context>
+<context>
+ <name>MetronomeConfigBase</name>
+ <message>
+ <source>MusE: Metronome Config</source>
+ <translation>MusE: Metronomeconfiguration</translation>
+ </message>
+ <message>
+ <source>Metronome</source>
+ <translation>Metronom</translation>
+ </message>
+ <message>
+ <source>Audio Beep</source>
+ <translation>Audio - Ton</translation>
+ </message>
+ <message>
+ <source>MIDI Click</source>
+ <translation type="unfinished">Midiklick</translation>
+ </message>
+ <message>
+ <source>Midi Channel</source>
+ <translation type="unfinished">Midikanal</translation>
+ </message>
+ <message>
+ <source>Measure Note</source>
+ <translation>Taktnot</translation>
+ </message>
+ <message>
+ <source>Measure Velocity</source>
+ <translation>Taktanslag</translation>
+ </message>
+ <message>
+ <source>Beat Velocity</source>
+ <translation>Slaganslag</translation>
+ </message>
+ <message>
+ <source>Beat Note</source>
+ <translation>Slagnot</translation>
+ </message>
+ <message>
+ <source>Midi Port</source>
+ <translation type="unfinished">Midiport</translation>
+ </message>
+ <message>
+ <source>Precount</source>
+ <translation>Inräkning</translation>
+ </message>
+ <message>
+ <source>enable</source>
+ <translation>på</translation>
+ </message>
+ <message>
+ <source>Bars</source>
+ <translation>Takter</translation>
+ </message>
+ <message>
+ <source>From Mastertrack</source>
+ <translation>Från Masterspår</translation>
+ </message>
+ <message>
+ <source>/</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Signature</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Prerecord</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Preroll</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>&amp;Apply</source>
+ <translation>&amp;Verställ</translation>
+ </message>
+ <message>
+ <source>&amp;OK</source>
+ <translation>&amp;Ok</translation>
+ </message>
+ <message>
+ <source>&amp;Cancel</source>
+ <translation>&amp;Avbryt</translation>
+ </message>
+</context>
+<context>
+ <name>MidiController</name>
+ <message>
+ <source>Velocity</source>
+ <translation type="unfinished">Hastighet</translation>
+ </message>
+</context>
+<context>
+ <name>MidiControllerEditDialog</name>
+ <message>
+ <source>MusE: save midi controller list</source>
+ <translation type="obsolete">MusE: spara midi-controller lista</translation>
+ </message>
+ <message>
+ <source>MusE: load midi controller list</source>
+ <translation type="obsolete">MusE:ladda midi-controller lista</translation>
+ </message>
+</context>
+<context>
+ <name>MidiControllerEditDialogBase</name>
+ <message>
+ <source>MusE: Define Midi Controller</source>
+ <translation type="unfinished">MusE: Definiera Midi-controller</translation>
+ </message>
+ <message>
+ <source>replace controller set</source>
+ <translation type="obsolete">ersätt controller-set</translation>
+ </message>
+ <message>
+ <source>merge controller set</source>
+ <translation type="obsolete">slå ihop controller-set</translation>
+ </message>
+ <message>
+ <source>save controller set as</source>
+ <translation type="obsolete">spara controller-set</translation>
+ </message>
+ <message>
+ <source>Name </source>
+ <translation type="unfinished">Namn</translation>
+ </message>
+ <message>
+ <source>Type </source>
+ <translation type="unfinished">Typ</translation>
+ </message>
+ <message>
+ <source>Min Val</source>
+ <translation type="unfinished">Min.värde</translation>
+ </message>
+ <message>
+ <source>Max Val</source>
+ <translation type="unfinished">Max.värde</translation>
+ </message>
+ <message>
+ <source>list of defined controllers</source>
+ <translation type="unfinished">lista med definierade controllers</translation>
+ </message>
+ <message>
+ <source>This is the MusE list of defined controllers.</source>
+ <translation type="unfinished">Detta är MusEs lista med definierade controllers.</translation>
+ </message>
+ <message>
+ <source>Properties</source>
+ <translation type="unfinished">Egenskaper</translation>
+ </message>
+ <message>
+ <source>Name</source>
+ <translation type="unfinished">Namn</translation>
+ </message>
+ <message>
+ <source>Max Value</source>
+ <translation type="unfinished">Max.värde</translation>
+ </message>
+ <message>
+ <source>Min Value</source>
+ <translation type="unfinished">Min.värde</translation>
+ </message>
+ <message>
+ <source>Type</source>
+ <translation type="unfinished">Typ</translation>
+ </message>
+ <message>
+ <source>&amp;New</source>
+ <translation type="obsolete">&amp;Ny</translation>
+ </message>
+ <message>
+ <source>create new entry</source>
+ <translation type="unfinished">skapa nytt inlägg</translation>
+ </message>
+ <message>
+ <source>pressing the New button you create a new entry
+in the MusE list of defined controllers</source>
+ <translation type="unfinished">tryck på Ny knappen för att skapa nytt inlägg
+i MusEs lista med definierade controllers</translation>
+ </message>
+ <message>
+ <source>&amp;Delete</source>
+ <translation type="unfinished">&amp;Ta bort</translation>
+ </message>
+ <message>
+ <source>delete selected entry</source>
+ <translation type="unfinished">ta bort valt inlägg</translation>
+ </message>
+ <message>
+ <source>&amp;OK</source>
+ <translation type="unfinished">&amp;Ok</translation>
+ </message>
+ <message>
+ <source>&amp;Cancel</source>
+ <translation type="unfinished">&amp;Avbryt</translation>
+ </message>
+ <message>
+ <source>&amp;Add</source>
+ <translation type="unfinished">&amp;Lägg till</translation>
+ </message>
+ <message>
+ <source>Alt+A</source>
+ <translation type="unfinished">Alt+L</translation>
+ </message>
+ <message>
+ <source>Predefined Controller:</source>
+ <translation type="unfinished">Fördefinieradecontrollers:</translation>
+ </message>
+ <message>
+ <source>H-Ctrl</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>L-Ctrl</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Managed Controller for Port</source>
+ <translation type="unfinished">Hanterad controller för port</translation>
+ </message>
+ <message>
+ <source>Channel</source>
+ <translation type="unfinished">Kanal</translation>
+ </message>
+ <message>
+ <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="unfinished">Detta är en lista med vanligt använda midi-controllers.
+Notera att tonhöjd- och program-change hanteras
+som vanliga controllers i MusE.</translation>
+ </message>
+ <message>
+ <source>Control7</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Control14</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>RPN</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>NRPN</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Pitch</source>
+ <translation type="unfinished">Tonhöjd</translation>
+ </message>
+ <message>
+ <source>Program</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Midi Controller Number High Byte</source>
+ <translation type="unfinished">Midicontrollernummer, hög byte</translation>
+ </message>
+ <message>
+ <source>Midi Controller Number Low Byte</source>
+ <translation type="unfinished">Midicontrollernummer, låg byte</translation>
+ </message>
+ <message>
+ <source>Range</source>
+ <translation type="unfinished">Område</translation>
+ </message>
+</context>
+<context>
+ <name>MidiFileConfig</name>
+ <message>
+ <source>Config exported Midi Files</source>
+ <translation type="obsolete">Inställningar exporterade midifiler</translation>
+ </message>
+ <message>
+ <source>MusE: Config exported Midi Files</source>
+ <translation type="obsolete">MusE: Inställningar exporterade midifiler</translation>
+ </message>
+ <message>
+ <source>Enable extended smf format</source>
+ <translation type="obsolete">Slå på utbyggt smf-format</translation>
+ </message>
+</context>
+<context>
+ <name>MidiFilterConfigBase</name>
+ <message>
+ <source>MusE: Midi Input Filter</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Record Filter</source>
+ <translation type="unfinished">Inspelningsfilter</translation>
+ </message>
+ <message>
+ <source>Note On</source>
+ <translation type="unfinished">Noteon</translation>
+ </message>
+ <message>
+ <source>Poly Pressure</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Controller</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Program Change</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>After Touch</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Pitch Bend</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Sysex</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Thru Filter</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Controller Filter</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Channel Filter</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>14</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>10</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>6</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>12</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>4</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>9</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>8</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>3</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>13</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>15</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>16</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>7</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>11</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>5</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>1</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>MidiInputTransformDialog</name>
+ <message>
+ <source>New</source>
+ <translation type="unfinished">Ny</translation>
+ </message>
+</context>
+<context>
+ <name>MidiInputTransformDialogBase</name>
+ <message>
+ <source>MusE: Midi Input Transformator</source>
+ <translation>MusE: Midi inputtransformator</translation>
+ </message>
+ <message>
+ <source>Filter</source>
+ <translation type="unfinished">Filter</translation>
+ </message>
+ <message>
+ <source>All</source>
+ <translation type="unfinished">Alla</translation>
+ </message>
+ <message>
+ <source>Equal</source>
+ <translation>Lika</translation>
+ </message>
+ <message>
+ <source>Unequal</source>
+ <translation type="unfinished">Ej lika</translation>
+ </message>
+ <message>
+ <source>Note</source>
+ <translation>Not</translation>
+ </message>
+ <message>
+ <source>Poly Pressure</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Control Change</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Aftertouch</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Pitch Bend</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>NRPN</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>RPN</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Value 2</source>
+ <translation>Värde 2</translation>
+ </message>
+ <message>
+ <source>Value 1</source>
+ <translation>Värde 1</translation>
+ </message>
+ <message>
+ <source>Event Type</source>
+ <translation>Händelsetyp</translation>
+ </message>
+ <message>
+ <source>Ignore</source>
+ <translation type="unfinished">Ignorera</translation>
+ </message>
+ <message>
+ <source>Higher</source>
+ <translation type="unfinished">Högre</translation>
+ </message>
+ <message>
+ <source>Lower</source>
+ <translation>Lägre</translation>
+ </message>
+ <message>
+ <source>Inside</source>
+ <translation type="unfinished">Innanför</translation>
+ </message>
+ <message>
+ <source>Outside</source>
+ <translation type="unfinished">Utanför</translation>
+ </message>
+ <message>
+ <source>Channel</source>
+ <translation type="unfinished">Kanal</translation>
+ </message>
+ <message>
+ <source>Port</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Processing</source>
+ <translation>Bearbetar</translation>
+ </message>
+ <message>
+ <source>Keep</source>
+ <translation>Behåll</translation>
+ </message>
+ <message>
+ <source>Fix</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Plus</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Minus</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Multiply</source>
+ <translation>Multiplicera</translation>
+ </message>
+ <message>
+ <source>Divide</source>
+ <translation type="unfinished">Dela</translation>
+ </message>
+ <message>
+ <source>Invert</source>
+ <translation>Invertera</translation>
+ </message>
+ <message>
+ <source>ScaleMap</source>
+ <translation type="unfinished">Skalmap</translation>
+ </message>
+ <message>
+ <source>Flip</source>
+ <translation type="unfinished">Vänd</translation>
+ </message>
+ <message>
+ <source>Dyn</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Random</source>
+ <translation type="unfinished">Slumpmässig</translation>
+ </message>
+ <message>
+ <source>Modules</source>
+ <translation>Moduler</translation>
+ </message>
+ <message>
+ <source>1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>3</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>4</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>enable modul 1</source>
+ <translation>aktivera modul 1</translation>
+ </message>
+ <message>
+ <source>enable modul 2</source>
+ <translation>aktivera modul 2</translation>
+ </message>
+ <message>
+ <source>enable modul 3</source>
+ <translation>aktivera modul 3</translation>
+ </message>
+ <message>
+ <source>enable modul 4</source>
+ <translation>aktivera modul 4</translation>
+ </message>
+ <message>
+ <source>Preset</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Name:</source>
+ <translation>Namn:</translation>
+ </message>
+ <message>
+ <source>Comment:</source>
+ <translation type="unfinished">Kommentar:</translation>
+ </message>
+ <message>
+ <source>Function</source>
+ <translation type="unfinished">Funktion</translation>
+ </message>
+ <message>
+ <source>&amp;New</source>
+ <translation>&amp;Ny</translation>
+ </message>
+ <message>
+ <source>create new preset</source>
+ <translation type="unfinished">skapa ny preset</translation>
+ </message>
+ <message>
+ <source>&amp;Delete</source>
+ <translation>&amp;Ta bort</translation>
+ </message>
+ <message>
+ <source>delete preset</source>
+ <translation>ta bort preset</translation>
+ </message>
+ <message>
+ <source>&amp;Dismiss</source>
+ <translation>&amp;Stäng</translation>
+ </message>
+ <message>
+ <source>PresetList</source>
+ <translation type="unfinished">Presetlista</translation>
+ </message>
+</context>
+<context>
+ <name>MidiPortRouteBase</name>
+ <message>
+ <source>MusE: Midi Port Routing</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Port 2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Output</source>
+ <translation type="unfinished">Utgång</translation>
+ </message>
+ <message>
+ <source>Input</source>
+ <translation type="unfinished">Ingång</translation>
+ </message>
+</context>
+<context>
+ <name>MidiRawDeviceDialogBase</name>
+ <message>
+ <source>MusE: raw midi device configuration</source>
+ <translation type="obsolete">MusE: raw midienhets-inställningar</translation>
+ </message>
+ <message>
+ <source>Name</source>
+ <translation type="obsolete">Namn</translation>
+ </message>
+ <message>
+ <source>Type</source>
+ <translation type="obsolete">Typ</translation>
+ </message>
+ <message>
+ <source>Virt. Ports</source>
+ <translation type="obsolete">Virt. port</translation>
+ </message>
+ <message>
+ <source>Speed</source>
+ <translation type="obsolete">Hastighet</translation>
+ </message>
+ <message>
+ <source>Handshaking</source>
+ <translation type="obsolete">Handskakning</translation>
+ </message>
+ <message>
+ <source>Virt.Ports</source>
+ <translation type="obsolete">Virt.port</translation>
+ </message>
+ <message>
+ <source>Serial Port</source>
+ <translation type="obsolete">Serieport</translation>
+ </message>
+ <message>
+ <source>None</source>
+ <translation type="obsolete">Ingen</translation>
+ </message>
+ <message>
+ <source>&amp;New</source>
+ <translation type="obsolete">&amp;Ny</translation>
+ </message>
+ <message>
+ <source>&amp;Delete</source>
+ <translation type="obsolete">&amp;Ta bort</translation>
+ </message>
+ <message>
+ <source>&amp;OK</source>
+ <translation type="obsolete">&amp;Ok</translation>
+ </message>
+ <message>
+ <source>&amp;Cancel</source>
+ <translation type="obsolete">&amp;Avbryt</translation>
+ </message>
+</context>
+<context>
+ <name>MidiStrip</name>
+ <message>
+ <source>VariationSend</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Var</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>ReverbSend</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Rev</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>ChorusSend</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cho</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>off</source>
+ <translation type="unfinished">av</translation>
+ </message>
+ <message>
+ <source>dB</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Pan/Balance</source>
+ <translation type="unfinished">Pan/Balans</translation>
+ </message>
+ <message>
+ <source>Pan</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>record</source>
+ <translation type="unfinished">spela in</translation>
+ </message>
+ <message>
+ <source>mute</source>
+ <translation type="unfinished">tysta</translation>
+ </message>
+ <message>
+ <source>pre fader listening</source>
+ <translation type="unfinished">pre fader lyssning</translation>
+ </message>
+ <message>
+ <source>Route</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>set routing</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Off</source>
+ <translation type="unfinished">Av</translation>
+ </message>
+ <message>
+ <source>Read</source>
+ <translation type="unfinished">Läs</translation>
+ </message>
+ <message>
+ <source>Touch</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Write</source>
+ <translation type="unfinished">Skriv</translation>
+ </message>
+ <message>
+ <source>automation type</source>
+ <translation type="unfinished">automationstyp</translation>
+ </message>
+</context>
+<context>
+ <name>MidiSyncConfigBase</name>
+ <message>
+ <source>MusE: Midi Sync</source>
+ <translation type="unfinished">MusE: Midisync</translation>
+ </message>
+ <message>
+ <source>Sync Mode</source>
+ <translation type="unfinished">Synkläge</translation>
+ </message>
+ <message>
+ <source>Master</source>
+ <translation type="unfinished">Master</translation>
+ </message>
+ <message>
+ <source>Slave</source>
+ <translation type="unfinished">Slav</translation>
+ </message>
+ <message>
+ <source>Sync Source</source>
+ <translation type="unfinished">Sync-källa</translation>
+ </message>
+ <message>
+ <source>accept MTC</source>
+ <translation type="unfinished">acceptera MTC</translation>
+ </message>
+ <message>
+ <source>accept Midi Clock</source>
+ <translation type="unfinished">acceptera Midiclocka</translation>
+ </message>
+ <message>
+ <source>accept MMC</source>
+ <translation type="unfinished">acceptera MMC</translation>
+ </message>
+ <message>
+ <source>Id:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>device id</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Port:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>all</source>
+ <translation type="unfinished">alla</translation>
+ </message>
+ <message>
+ <source>midi port</source>
+ <translation type="unfinished">midiport</translation>
+ </message>
+ <message>
+ <source>Sync Gen</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Midi Time Code (MTC)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Midi Clock</source>
+ <translation type="unfinished">Midiklocka</translation>
+ </message>
+ <message>
+ <source>Midi Machine Control (MMC)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Apply</source>
+ <translation>Verkställ</translation>
+ </message>
+ <message>
+ <source>Ok</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cancel</source>
+ <translation>Avbryt</translation>
+ </message>
+ <message>
+ <source>MTC</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Type:</source>
+ <translation>Typ:</translation>
+ </message>
+ <message>
+ <source>24</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>25</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>30D</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>30N</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Offset:</source>
+ <translation type="unfinished">Offset:</translation>
+ </message>
+ <message>
+ <source>hour</source>
+ <translation>timma</translation>
+ </message>
+ <message>
+ <source>h</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>minute</source>
+ <translation type="unfinished">minut</translation>
+ </message>
+ <message>
+ <source>m</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>second</source>
+ <translation type="unfinished">sekund</translation>
+ </message>
+ <message>
+ <source>s</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>frame</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>f</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>subframe</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>MidiTrackInfoBase</name>
+ <message>
+ <source>MusE: TrackInfo</source>
+ <translation type="unfinished">MusE: Spårinfo</translation>
+ </message>
+ <message>
+ <source>output channel</source>
+ <translation>utgångskanal</translation>
+ </message>
+ <message>
+ <source>all midi events are send to this output channel</source>
+ <translation>alla midihändelser skickas till denna utkanal</translation>
+ </message>
+ <message>
+ <source>Track Info</source>
+ <translation type="unfinished">Spårinfo</translation>
+ </message>
+ <message>
+ <source>%</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Track Name</source>
+ <translation type="unfinished">Spårnamn</translation>
+ </message>
+ <message>
+ <source>output port</source>
+ <translation>utgångsport</translation>
+ </message>
+ <message>
+ <source>off</source>
+ <translation type="unfinished">av</translation>
+ </message>
+ <message>
+ <source>change stereo position</source>
+ <translation>byt stereoposition</translation>
+ </message>
+ <message>
+ <source>OCh.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>???</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>select instrument patch</source>
+ <translation type="unfinished">välj instrumentpatch</translation>
+ </message>
+ <message>
+ <source>Transp.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Volume</source>
+ <translation>Volym</translation>
+ </message>
+ <message>
+ <source>Channel Info</source>
+ <translation>Kanalinfo</translation>
+ </message>
+ <message>
+ <source>Pan</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Delay</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>H-Bank</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Compr.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>L-Bank</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Progr.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Velocity</source>
+ <translation>Hastighet</translation>
+ </message>
+ <message>
+ <source>Length</source>
+ <translation type="unfinished">Längd</translation>
+ </message>
+ <message>
+ <source>input ports</source>
+ <translation>inputportar</translation>
+ </message>
+ <message>
+ <source>IChan.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>input channels</source>
+ <translation>inputkanaler</translation>
+ </message>
+ <message>
+ <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>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>
+ <source>record:</source>
+ <translation type="unfinished">spela in:</translation>
+ </message>
+ <message>
+ <source>Rec</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>add settings to song</source>
+ <translation type="unfinished">lägg inställningar till sång</translation>
+ </message>
+ <message>
+ <source>Bank Select LSB</source>
+ <translation type="unfinished">Välj bank LSB</translation>
+ </message>
+ <message>
+ <source>Bank Select MSB</source>
+ <translation type="unfinished">Välj bank MSB</translation>
+ </message>
+</context>
+<context>
+ <name>MidiTransformDialogBase</name>
+ <message>
+ <source>MusE: Midi Transformator</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>&amp;New</source>
+ <translation>&amp;Ny</translation>
+ </message>
+ <message>
+ <source>&amp;Delete</source>
+ <translation>&amp;Ta bort</translation>
+ </message>
+ <message>
+ <source>&amp;Apply</source>
+ <translation>&amp;Verkställ</translation>
+ </message>
+ <message>
+ <source>&amp;OK</source>
+ <translation>&amp;Ok</translation>
+ </message>
+ <message>
+ <source>&amp;Cancel</source>
+ <translation>&amp;Avbryt</translation>
+ </message>
+ <message>
+ <source>PresetList</source>
+ <translation type="unfinished">Presetlista</translation>
+ </message>
+ <message>
+ <source>Processing</source>
+ <translation>Bearbetar</translation>
+ </message>
+ <message>
+ <source>Event Type</source>
+ <translation type="unfinished">Händelsetyp</translation>
+ </message>
+ <message>
+ <source>Keep</source>
+ <translation>Behåll</translation>
+ </message>
+ <message>
+ <source>Fix</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Note</source>
+ <translation>Not</translation>
+ </message>
+ <message>
+ <source>Poly Pressure</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Control Change</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Aftertouch</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Pitch Bend</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>NRPN</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>RPN</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Plus</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Minus</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Multiply</source>
+ <translation>Multiplicera</translation>
+ </message>
+ <message>
+ <source>Divide</source>
+ <translation type="unfinished">Dela</translation>
+ </message>
+ <message>
+ <source>Value 2</source>
+ <translation>Värde 2</translation>
+ </message>
+ <message>
+ <source>Invert</source>
+ <translation>Invertera</translation>
+ </message>
+ <message>
+ <source>ScaleMap</source>
+ <translation type="unfinished">Skalmap</translation>
+ </message>
+ <message>
+ <source>Flip</source>
+ <translation type="unfinished">Vänd</translation>
+ </message>
+ <message>
+ <source>Dyn</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Random</source>
+ <translation>Slumpmässig</translation>
+ </message>
+ <message>
+ <source>Value 1</source>
+ <translation>Värde 1</translation>
+ </message>
+ <message>
+ <source>Length</source>
+ <translation>Längd</translation>
+ </message>
+ <message>
+ <source>Position</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Filter</source>
+ <translation type="unfinished">Filter</translation>
+ </message>
+ <message>
+ <source>All</source>
+ <translation>Alla</translation>
+ </message>
+ <message>
+ <source>Equal</source>
+ <translation type="unfinished">Lika</translation>
+ </message>
+ <message>
+ <source>Unequal</source>
+ <translation>Ej lika</translation>
+ </message>
+ <message>
+ <source>Ignore</source>
+ <translation>Ignorera</translation>
+ </message>
+ <message>
+ <source>Higher</source>
+ <translation>Högre</translation>
+ </message>
+ <message>
+ <source>Lower</source>
+ <translation>Lägre</translation>
+ </message>
+ <message>
+ <source>Inside</source>
+ <translation>Innanför</translation>
+ </message>
+ <message>
+ <source>Outside</source>
+ <translation>Utanför</translation>
+ </message>
+ <message>
+ <source>Bar Range</source>
+ <translation type="unfinished">Takt Område</translation>
+ </message>
+ <message>
+ <source>Preset</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Name:</source>
+ <translation>Namn:</translation>
+ </message>
+ <message>
+ <source>Comment:</source>
+ <translation>Kommentar:</translation>
+ </message>
+ <message>
+ <source>Range</source>
+ <translation>Område</translation>
+ </message>
+ <message>
+ <source>process all events</source>
+ <translation type="unfinished">bearbeta alla händelser</translation>
+ </message>
+ <message>
+ <source>selected tracks</source>
+ <translation type="unfinished">valda spår</translation>
+ </message>
+ <message>
+ <source>inside loop</source>
+ <translation>I loop</translation>
+ </message>
+ <message>
+ <source>Function</source>
+ <translation type="unfinished">Funktion</translation>
+ </message>
+ <message>
+ <source>Select</source>
+ <translation type="unfinished">Välj</translation>
+ </message>
+ <message>
+ <source>Quantize</source>
+ <translation>Kvantisera</translation>
+ </message>
+ <message>
+ <source>Delete</source>
+ <translation>Ta bort</translation>
+ </message>
+ <message>
+ <source>Transform</source>
+ <translation>Transformera</translation>
+ </message>
+ <message>
+ <source>Insert</source>
+ <translation>Sätt in</translation>
+ </message>
+ <message>
+ <source>Copy</source>
+ <translation>Kopiera</translation>
+ </message>
+ <message>
+ <source>Extract</source>
+ <translation type="unfinished">Extrahera</translation>
+ </message>
+ <message>
+ <source>Quantize Value</source>
+ <translation>Kvantisera värde</translation>
+ </message>
+</context>
+<context>
+ <name>MidiTransformerDialog</name>
+ <message>
+ <source>New</source>
+ <translation>Ny</translation>
+ </message>
+</context>
+<context>
+ <name>MixdownFileDialog</name>
+ <message>
+ <source>Wave Files (*.wav);;All Files (*)</source>
+ <translation>Ljudfiler (*.wav);;Alla filer (*)</translation>
+ </message>
+</context>
+<context>
+ <name>MixdownFileDialogBase</name>
+ <message>
+ <source>MusE: Set Mixdown Wavefile</source>
+ <translation>MusE: Välj mixdown-ljudfil</translation>
+ </message>
+ <message>
+ <source>&amp;OK</source>
+ <translation>&amp;Ok</translation>
+ </message>
+ <message>
+ <source>&amp;Cancel</source>
+ <translation>&amp;Avbryt</translation>
+ </message>
+ <message>
+ <source>File Path</source>
+ <translation>Sökväg till fil</translation>
+ </message>
+ <message>
+ <source>Channel</source>
+ <translation>Kanal</translation>
+ </message>
+ <message>
+ <source>Stereo</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Mono</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>5.1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>wav,16 Bit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>wav, 24 Bit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>wav, 32 Bit (float)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Format</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>Mixer</name>
+ <message>
+ <source>MusE: Midi Mixer</source>
+ <translation type="obsolete">MusE: Midimixer</translation>
+ </message>
+ <message>
+ <source>Master</source>
+ <translation type="obsolete">Master</translation>
+ </message>
+</context>
+<context>
+ <name>MusE</name>
+ <message>
+ <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>
+ <source>Import Wave File</source>
+ <translation>Importera ljudfil</translation>
+ </message>
+ <message>
+ <source>UndoRedo</source>
+ <translation>ÅngraGörom</translation>
+ </message>
+ <message>
+ <source>undo</source>
+ <translation>Ã¥ngra</translation>
+ </message>
+ <message>
+ <source>Und&amp;o</source>
+ <translation>&amp;Ã…ngra</translation>
+ </message>
+ <message>
+ <source>redo</source>
+ <translation>gör om</translation>
+ </message>
+ <message>
+ <source>Re&amp;do</source>
+ <translation>&amp;Gör om</translation>
+ </message>
+ <message>
+ <source>undo last change to song</source>
+ <translation>ångra sista ändring i sång</translation>
+ </message>
+ <message>
+ <source>redo last undo</source>
+ <translation>gör om sista ångring</translation>
+ </message>
+ <message>
+ <source>Transport</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>loop</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Loop</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>punchin</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Punchin</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>punchout</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Punchout</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>start</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Start</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>rewind</source>
+ <translation type="unfinished">flytta tillbaka</translation>
+ </message>
+ <message>
+ <source>Rewind</source>
+ <translation type="unfinished">Flytta tillbaka</translation>
+ </message>
+ <message>
+ <source>forward</source>
+ <translation type="unfinished">frammåt</translation>
+ </message>
+ <message>
+ <source>Forward</source>
+ <translation type="unfinished">Frammåt</translation>
+ </message>
+ <message>
+ <source>stop</source>
+ <translation type="unfinished">stopp</translation>
+ </message>
+ <message>
+ <source>Stop</source>
+ <translation type="unfinished">Stopp</translation>
+ </message>
+ <message>
+ <source>play</source>
+ <translation type="unfinished">spela</translation>
+ </message>
+ <message>
+ <source>Play</source>
+ <translation type="unfinished">Spela</translation>
+ </message>
+ <message>
+ <source>record</source>
+ <translation type="unfinished">spela in</translation>
+ </message>
+ <message>
+ <source>Record</source>
+ <translation type="unfinished">Spela in</translation>
+ </message>
+ <message>
+ <source>panic</source>
+ <translation type="unfinished">panik</translation>
+ </message>
+ <message>
+ <source>Panic</source>
+ <translation type="unfinished">Panik</translation>
+ </message>
+ <message>
+ <source>new</source>
+ <translation>ny</translation>
+ </message>
+ <message>
+ <source>&amp;New</source>
+ <translation>&amp;Ny</translation>
+ </message>
+ <message>
+ <source>open</source>
+ <translation>öppna</translation>
+ </message>
+ <message>
+ <source>&amp;Open</source>
+ <translation>&amp;Öppna</translation>
+ </message>
+ <message>
+ <source>save</source>
+ <translation>spara</translation>
+ </message>
+ <message>
+ <source>&amp;Save</source>
+ <translation>&amp;Spara</translation>
+ </message>
+ <message>
+ <source>pianoroll</source>
+ <translation>pianorulle</translation>
+ </message>
+ <message>
+ <source>Pianoroll</source>
+ <translation>Pianorulle</translation>
+ </message>
+ <message>
+ <source>score</source>
+ <translation type="obsolete">partitur</translation>
+ </message>
+ <message>
+ <source>Score</source>
+ <translation type="obsolete">Partitur</translation>
+ </message>
+ <message>
+ <source>marker</source>
+ <translation type="obsolete">markör</translation>
+ </message>
+ <message>
+ <source>Marker</source>
+ <translation type="obsolete">Markör</translation>
+ </message>
+ <message>
+ <source>File Buttons</source>
+ <translation>Arkivknappar</translation>
+ </message>
+ <message>
+ <source>&amp;File</source>
+ <translation>&amp;Arkiv</translation>
+ </message>
+ <message>
+ <source>Open &amp;Recent</source>
+ <translation>&amp;Nyligen öppnade</translation>
+ </message>
+ <message>
+ <source>Save &amp;As</source>
+ <translation>S&amp;para som</translation>
+ </message>
+ <message>
+ <source>Config &amp;Printer</source>
+ <translation type="obsolete">&amp;Konfigurera skrivare</translation>
+ </message>
+ <message>
+ <source>Import Midifile</source>
+ <translation>Importera midifil</translation>
+ </message>
+ <message>
+ <source>Export Midifile</source>
+ <translation>Exportera midifil</translation>
+ </message>
+ <message>
+ <source>&amp;Quit</source>
+ <translation>A&amp;vsluta</translation>
+ </message>
+ <message>
+ <source>&amp;Edit</source>
+ <translation>&amp;Redigera</translation>
+ </message>
+ <message>
+ <source>C&amp;ut</source>
+ <translation>Klipp &amp;ut</translation>
+ </message>
+ <message>
+ <source>&amp;Copy</source>
+ <translation>&amp;Kopiera</translation>
+ </message>
+ <message>
+ <source>&amp;Paste</source>
+ <translation>K&amp;listra in</translation>
+ </message>
+ <message>
+ <source>Delete Track</source>
+ <translation type="obsolete">Ta bort spår</translation>
+ </message>
+ <message>
+ <source>Add Track</source>
+ <translation>Lägg Till Spår</translation>
+ </message>
+ <message>
+ <source>Select &amp;All</source>
+ <translation>Markera &amp;Allt</translation>
+ </message>
+ <message>
+ <source>&amp;Deselect All</source>
+ <translation type="unfinished">A&amp;vmarkera Allt</translation>
+ </message>
+ <message>
+ <source>Invert &amp;Selection</source>
+ <translation>Invertera &amp;Markering</translation>
+ </message>
+ <message>
+ <source>&amp;Inside Loop</source>
+ <translation>&amp;I Loop</translation>
+ </message>
+ <message>
+ <source>&amp;Outside Loop</source>
+ <translation>&amp;Utanför Loop</translation>
+ </message>
+ <message>
+ <source>All &amp;Parts on Track</source>
+ <translation>Alla &amp;Parter i spår</translation>
+ </message>
+ <message>
+ <source>Select</source>
+ <translation>Välj</translation>
+ </message>
+ <message>
+ <source>Drums</source>
+ <translation>Trummor</translation>
+ </message>
+ <message>
+ <source>List</source>
+ <translation>Lista</translation>
+ </message>
+ <message>
+ <source>Graphic</source>
+ <translation>Grafik</translation>
+ </message>
+ <message>
+ <source>Mastertrack</source>
+ <translation>Masterspår</translation>
+ </message>
+ <message>
+ <source>Midi &amp;Transform</source>
+ <translation>Midi &amp;Transform</translation>
+ </message>
+ <message>
+ <source>Modify Gate Time</source>
+ <translation>Modifiera Gate Time</translation>
+ </message>
+ <message>
+ <source>Modify Velocity</source>
+ <translation>Modifiera Velocity</translation>
+ </message>
+ <message>
+ <source>Crescendo</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Transpose</source>
+ <translation>Transponera</translation>
+ </message>
+ <message>
+ <source>Thin Out</source>
+ <translation>Tunna ut</translation>
+ </message>
+ <message>
+ <source>Erase Event</source>
+ <translation>Ta bort Händelse</translation>
+ </message>
+ <message>
+ <source>Note Shift</source>
+ <translation>Shifta Not</translation>
+ </message>
+ <message>
+ <source>Move Clock</source>
+ <translation>Flytta Klocka</translation>
+ </message>
+ <message>
+ <source>Copy Measure</source>
+ <translation>Kopiera Takt</translation>
+ </message>
+ <message>
+ <source>Erase Measure</source>
+ <translation>Radera Takt</translation>
+ </message>
+ <message>
+ <source>Delete Measure</source>
+ <translation>Ta bort Takt</translation>
+ </message>
+ <message>
+ <source>Create Measure</source>
+ <translation>Skapa Takt</translation>
+ </message>
+ <message>
+ <source>Mix Track</source>
+ <translation>Mixa Spår</translation>
+ </message>
+ <message>
+ <source>Midi</source>
+ <translation type="unfinished">Midi</translation>
+ </message>
+ <message>
+ <source>&amp;Structure</source>
+ <translation>&amp;Struktur</translation>
+ </message>
+ <message>
+ <source>Global Cut</source>
+ <translation>Globalt klipp</translation>
+ </message>
+ <message>
+ <source>Global Insert</source>
+ <translation>Global insättning</translation>
+ </message>
+ <message>
+ <source>Global Split</source>
+ <translation>Global delning</translation>
+ </message>
+ <message>
+ <source>Copy Range</source>
+ <translation>Kopiera Område</translation>
+ </message>
+ <message>
+ <source>Cut Events</source>
+ <translation>Klipp ut Händelse</translation>
+ </message>
+ <message>
+ <source>Transport Panel</source>
+ <translation type="unfinished">Transportpanel</translation>
+ </message>
+ <message>
+ <source>Bigtime window</source>
+ <translation>Bigtime fönster</translation>
+ </message>
+ <message>
+ <source>dont follow Song</source>
+ <translation>följ inte Sång</translation>
+ </message>
+ <message>
+ <source>follow page</source>
+ <translation>följ sida</translation>
+ </message>
+ <message>
+ <source>follow continuous</source>
+ <translation>följ kontinuerligt</translation>
+ </message>
+ <message>
+ <source>&amp;Config</source>
+ <translation type="obsolete">&amp;Inställningar</translation>
+ </message>
+ <message>
+ <source>Global Settings</source>
+ <translation>Globala Inställningar</translation>
+ </message>
+ <message>
+ <source>follow song</source>
+ <translation>följ sång</translation>
+ </message>
+ <message>
+ <source>Metronome</source>
+ <translation>Metronom</translation>
+ </message>
+ <message>
+ <source>Midi Sync</source>
+ <translation>Midi Synk</translation>
+ </message>
+ <message>
+ <source>Midi File Config</source>
+ <translation type="obsolete">Midi Filkonfigurering</translation>
+ </message>
+ <message>
+ <source>Appearance settings</source>
+ <translation>Utseendeinställningar</translation>
+ </message>
+ <message>
+ <source>Soft Synthesizer</source>
+ <translation type="obsolete">Mjukvarusynthar</translation>
+ </message>
+ <message>
+ <source>Midi Ports</source>
+ <translation type="obsolete">Midiportar</translation>
+ </message>
+ <message>
+ <source>Audio System</source>
+ <translation type="obsolete">Audiosubsystem</translation>
+ </message>
+ <message>
+ <source>Save Configuration</source>
+ <translation type="obsolete">Spara Inställningar</translation>
+ </message>
+ <message>
+ <source>Midi Input Transform</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Midi Input Filter</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Midi Remote Control</source>
+ <translation>Midi-fjärrkontroll</translation>
+ </message>
+ <message>
+ <source>Random Rhythm Generator</source>
+ <translation type="obsolete">Slumprytmgenerator</translation>
+ </message>
+ <message>
+ <source>&amp;Midi</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Mixer</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Define Controller</source>
+ <translation type="obsolete">Definiera Controller</translation>
+ </message>
+ <message>
+ <source>Input Plugins</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Reset Instr.</source>
+ <translation>Resetta Instr.</translation>
+ </message>
+ <message>
+ <source>Init Instr.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>local off</source>
+ <translation type="unfinished">lokal av</translation>
+ </message>
+ <message>
+ <source>&amp;Audio</source>
+ <translation type="unfinished">L&amp;jud</translation>
+ </message>
+ <message>
+ <source>Bounce to Track</source>
+ <translation>Bounce till Spår</translation>
+ </message>
+ <message>
+ <source>Bounce to File</source>
+ <translation>Bounce till Fil</translation>
+ </message>
+ <message>
+ <source>&amp;Help</source>
+ <translation>&amp;Hjälp</translation>
+ </message>
+ <message>
+ <source>Browser</source>
+ <translation type="obsolete">Läsare</translation>
+ </message>
+ <message>
+ <source>&amp;About</source>
+ <translation type="obsolete">&amp;Om</translation>
+ </message>
+ <message>
+ <source>About&amp;Qt</source>
+ <translation>Om &amp;Qt</translation>
+ </message>
+ <message>
+ <source>What&apos;s &amp;This</source>
+ <translation type="obsolete">Vad är &amp;Detta</translation>
+ </message>
+ <message>
+ <source>Unknown File Format</source>
+ <translation>Okänt filformat</translation>
+ </message>
+ <message>
+ <source>none</source>
+ <translation type="obsolete">inget</translation>
+ </message>
+ <message>
+ <source>MusE: load project</source>
+ <translation>MusE: Öppna projekt</translation>
+ </message>
+ <message>
+ <source>MusE: Write File failed</source>
+ <translation>MusE: Misslyckades med att skriva Fil</translation>
+ </message>
+ <message>
+ <source>The current Project contains unsaved data
+Save Current Project?</source>
+ <translation>Det nuvarande Projektet innehåller osparade ändringar
+Spara nuvarande Projekt?</translation>
+ </message>
+ <message>
+ <source>&amp;Nosave</source>
+ <translation type="obsolete">&amp;Inte spara</translation>
+ </message>
+ <message>
+ <source>&amp;Abort</source>
+ <translation>&amp;Avbryt</translation>
+ </message>
+ <message>
+ <source>MusE: About</source>
+ <translation type="obsolete">MusE: Om</translation>
+ </message>
+ <message>
+ <source>MusE: Save As</source>
+ <translation>MusE: Spara Som</translation>
+ </message>
+ <message>
+ <source>MusE: Song: </source>
+ <translation>MusE: SÃ¥ng:</translation>
+ </message>
+ <message>
+ <source>MusE: Import Midi</source>
+ <translation type="unfinished">MusE: Importera Midi</translation>
+ </message>
+ <message>
+ <source>MusE: Export Midi</source>
+ <translation type="unfinished">MusE: Exportera Midi</translation>
+ </message>
+ <message>
+ <source>reading midifile
+ </source>
+ <translation type="unfinished">läser midifil</translation>
+ </message>
+ <message>
+ <source>
+failed</source>
+ <translation type="obsolete">misslyckades</translation>
+ </message>
+ <message>
+ <source>Nothing to edit</source>
+ <translation>Inget att redigera</translation>
+ </message>
+ <message>
+ <source>MusE: Copy Range</source>
+ <translation>MusE: Kopiera område</translation>
+ </message>
+ <message>
+ <source>not implemented</source>
+ <translation>ej implementerat</translation>
+ </message>
+ <message>
+ <source>MusE: Cut Events</source>
+ <translation>MusE: Klipp ut Händelse</translation>
+ </message>
+ <message>
+ <source>MusE: Bounce to Track</source>
+ <translation>MusE: Bounce till Spår</translation>
+ </message>
+ <message>
+ <source>more than one target track selected</source>
+ <translation>mer än ett spår valt som mål</translation>
+ </message>
+ <message>
+ <source>wrong target track type,
+select wave track as target</source>
+ <translation>fel spårtyp som mål
+välj wave-spår som mål</translation>
+ </message>
+ <message>
+ <source>no target track selected</source>
+ <translation>inget spår valt som mål</translation>
+ </message>
+ <message>
+ <source>The current Project contains unsaved data
+Load overwrites current Project:
+Save Current Project?</source>
+ <translation>Det nuvarande Projektet innehåller osparade ändringar
+Öppning skriver över nuvarande Projekt
+Spara nuvarande Projekt?</translation>
+ </message>
+ <message>
+ <source>&amp;Overwrite</source>
+ <translation type="obsolete">Skriv &amp;över</translation>
+ </message>
+ <message>
+ <source>no help found at: </source>
+ <translation>ingen h jälp hittad vid:</translation>
+ </message>
+ <message>
+ <source>MusE: Open Help</source>
+ <translation>Muse: Arkiv hjälp</translation>
+ </message>
+ <message>
+ <source>to import a audio file you have first to selecta wave track</source>
+ <translation type="unfinished">för att importa en ljudfil så måste du första välja ett wavespår</translation>
+ </message>
+ <message>
+ <source>Delete Selected Tracks</source>
+ <translation type="unfinished">Ta bort valda spår</translation>
+ </message>
+ <message>
+ <source>View</source>
+ <translation type="unfinished">Vy</translation>
+ </message>
+ <message>
+ <source>Restart Audio</source>
+ <translation type="unfinished">Starta om Audio</translation>
+ </message>
+ <message>
+ <source>Automation</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Mixer Automation</source>
+ <translation type="unfinished">Mixerautomation</translation>
+ </message>
+ <message>
+ <source>Take Snapshot</source>
+ <translation type="unfinished">Ta ett snapshot</translation>
+ </message>
+ <message>
+ <source>Clear Automation Data</source>
+ <translation type="unfinished">Rensa automationsdata</translation>
+ </message>
+ <message>
+ <source>Settings</source>
+ <translation type="unfinished">Inställningar</translation>
+ </message>
+ <message>
+ <source>Configure shortcuts</source>
+ <translation type="unfinished">Konfigurera kortkommandon</translation>
+ </message>
+ <message>
+ <source>Midi File Export</source>
+ <translation type="unfinished">Midifilexport</translation>
+ </message>
+ <message>
+ <source>Midi Ports / Soft Synth</source>
+ <translation type="unfinished">Midiportar / Mjukvarusyntar</translation>
+ </message>
+ <message>
+ <source>&amp;Manual</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>&amp;MusE homepage</source>
+ <translation type="unfinished">M&amp;usEs hemsida</translation>
+ </message>
+ <message>
+ <source>&amp;Report Bug...</source>
+ <translation type="unfinished">&amp;Rapportera fel...</translation>
+ </message>
+ <message>
+ <source>&amp;About MusE</source>
+ <translation type="unfinished">&amp;Om MusE</translation>
+ </message>
+ <message>
+ <source>What&apos;s &amp;This?</source>
+ <translation type="unfinished">Vad är &amp;detta?</translation>
+ </message>
+ <message>
+ <source>Cannot read template</source>
+ <translation type="unfinished">Kan inte läsa mall</translation>
+ </message>
+ <message>
+ <source>File open error</source>
+ <translation type="unfinished">Fel vid öppning av fil</translation>
+ </message>
+ <message>
+ <source>File read error</source>
+ <translation type="unfinished">Fel vid läsning av fil</translation>
+ </message>
+ <message>
+ <source>MusE: load template</source>
+ <translation type="unfinished">MusE: ladda mall</translation>
+ </message>
+ <message>
+ <source>MusE: Bounce</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>set left/right marker for bounce range</source>
+ <translation type="unfinished">sätt vänster och höger markör till bounce-område</translation>
+ </message>
+ <message>
+ <source>MusE: Bounce to File</source>
+ <translation type="unfinished">MusE: Bounce till fil</translation>
+ </message>
+ <message>
+ <source>no output track found</source>
+ <translation type="unfinished">hittar inget utgångsspår</translation>
+ </message>
+ <message>
+ <source>Add midi file to current project?
+</source>
+ <translation type="unfinished">Lägg midifil till nuvarande projekt?</translation>
+ </message>
+ <message>
+ <source>&amp;Add to Project</source>
+ <translation type="unfinished">&amp;Lägg till projekt</translation>
+ </message>
+ <message>
+ <source>&amp;Replace</source>
+ <translation type="unfinished">&amp;Ersätt</translation>
+ </message>
+ <message>
+ <source>
+failed: </source>
+ <translation type="unfinished">
+misslyckades:</translation>
+ </message>
+ <message>
+ <source>Import Part</source>
+ <translation type="unfinished">Importera Part</translation>
+ </message>
+ <message>
+ <source>Marker View</source>
+ <translation type="unfinished">Markörvy</translation>
+ </message>
+ <message>
+ <source>&amp;Skip</source>
+ <translation type="unfinished">&amp;Hoppa över</translation>
+ </message>
+ <message>
+ <source>Import part is only valid for midi tracks!</source>
+ <translation type="unfinished">Bara midispår kan importera parter!</translation>
+ </message>
+ <message>
+ <source>MusE: load part</source>
+ <translation type="unfinished">MusE: ladda part</translation>
+ </message>
+ <message>
+ <source>No track selected for import</source>
+ <translation type="unfinished">Inget spår valt för import</translation>
+ </message>
+</context>
+<context>
+ <name>NewPreset</name>
+ <message>
+ <source>New preset</source>
+ <translation type="unfinished">Ny preset</translation>
+ </message>
+ <message>
+ <source>Preset Name</source>
+ <translation type="unfinished">Presetnamn</translation>
+ </message>
+ <message>
+ <source>INIT VOICE</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Subcategory</source>
+ <translation type="unfinished">Underkategori</translation>
+ </message>
+ <message>
+ <source>NONE</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Category</source>
+ <translation type="unfinished">Kategori</translation>
+ </message>
+ <message>
+ <source>Bank</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Bank numerous</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Prog</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Program numerous</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>&amp;Cancel</source>
+ <translation type="unfinished">&amp;Avbryt</translation>
+ </message>
+ <message>
+ <source>Alt+C</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>&amp;Ok</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Alt+O</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>NoteInfo</name>
+ <message>
+ <source>Note Info</source>
+ <translation>Notinfo</translation>
+ </message>
+ <message>
+ <source>Start</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Len</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Pitch</source>
+ <translation type="unfinished">Tonhöjd</translation>
+ </message>
+ <message>
+ <source>Velo On</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Velo Off</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>OrganGuiBase</name>
+ <message>
+ <source>Presets</source>
+ <translation type="obsolete">Preset</translation>
+ </message>
+ <message>
+ <source>load preset list</source>
+ <translation type="obsolete">öppna presetlista</translation>
+ </message>
+ <message>
+ <source>save preset list</source>
+ <translation type="obsolete">spara presetlista</translation>
+ </message>
+ <message>
+ <source>MusE: Organ</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Drawbars</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>16&apos;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>4&apos;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>2 2/3&apos;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>2&apos;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>5 1/3&apos;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>8&apos;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Envelope Hi</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Release</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Sustain</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Decay</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Attack</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>ms</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>cB</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Envelope Lo</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>O-1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Oscillator</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Brass</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Reed</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Flute</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Velocity</source>
+ <translation type="unfinished">Hastighet</translation>
+ </message>
+</context>
+<context>
+ <name>PageSettings</name>
+ <message>
+ <source>Paper Size</source>
+ <translation type="obsolete">Pappersstorlek</translation>
+ </message>
+ <message>
+ <source>user</source>
+ <translation type="obsolete">användare</translation>
+ </message>
+ <message>
+ <source>Margins</source>
+ <translation type="obsolete">Marginal</translation>
+ </message>
+ <message>
+ <source>left Margin</source>
+ <translation type="obsolete">vänster Marginal</translation>
+ </message>
+ <message>
+ <source>top Margin</source>
+ <translation type="obsolete">övre Marginal</translation>
+ </message>
+ <message>
+ <source>right Margin</source>
+ <translation type="obsolete">höger Marginal</translation>
+ </message>
+ <message>
+ <source>bottom Margin</source>
+ <translation type="obsolete">undre Marginal</translation>
+ </message>
+ <message>
+ <source>Header</source>
+ <translation type="obsolete">Överskrift</translation>
+ </message>
+ <message>
+ <source>Title</source>
+ <translation type="obsolete">Titel</translation>
+ </message>
+ <message>
+ <source>Author</source>
+ <translation type="obsolete">Författare</translation>
+ </message>
+ <message>
+ <source>Fonts</source>
+ <translation type="obsolete">Typsnitt</translation>
+ </message>
+ <message>
+ <source>Page No.</source>
+ <translation type="obsolete">Sidnummer.</translation>
+ </message>
+ <message>
+ <source>Measure No</source>
+ <translation type="obsolete">Taktnummer</translation>
+ </message>
+ <message>
+ <source>Track Name</source>
+ <translation type="obsolete">Spårnamn</translation>
+ </message>
+ <message>
+ <source>Lyrics</source>
+ <translation type="obsolete">Text</translation>
+ </message>
+ <message>
+ <source>Layout</source>
+ <translation type="obsolete">Utseende</translation>
+ </message>
+ <message>
+ <source>Bars across the Page</source>
+ <translation type="obsolete">Takter över sidan</translation>
+ </message>
+ <message>
+ <source>Scale</source>
+ <translation type="obsolete">Skala</translation>
+ </message>
+ <message>
+ <source>Flags</source>
+ <translation type="obsolete">Flaggor</translation>
+ </message>
+ <message>
+ <source>show page no.</source>
+ <translation type="obsolete">visa sida nr.</translation>
+ </message>
+ <message>
+ <source>show measure no.</source>
+ <translation type="obsolete">visa takt nr.</translation>
+ </message>
+ <message>
+ <source>show track name</source>
+ <translation type="obsolete">visa spårnamn</translation>
+ </message>
+ <message>
+ <source>Apply</source>
+ <translation type="obsolete">Verkställ</translation>
+ </message>
+ <message>
+ <source>Cancel</source>
+ <translation type="obsolete">Avbryt</translation>
+ </message>
+</context>
+<context>
+ <name>PartCanvas</name>
+ <message>
+ <source>Cannot copy/move/clone to different Track-Type</source>
+ <translation>Kan inte kopiera/flytta/klona till annan Spårtyp</translation>
+ </message>
+ <message>
+ <source>C&amp;ut</source>
+ <translation>Klipp &amp;ut</translation>
+ </message>
+ <message>
+ <source>&amp;Copy</source>
+ <translation>&amp;Kopiera</translation>
+ </message>
+ <message>
+ <source>rename</source>
+ <translation>byt namn</translation>
+ </message>
+ <message>
+ <source>color</source>
+ <translation>färg</translation>
+ </message>
+ <message>
+ <source>delete</source>
+ <translation>ta bort</translation>
+ </message>
+ <message>
+ <source>split</source>
+ <translation>dela</translation>
+ </message>
+ <message>
+ <source>glue</source>
+ <translation>lim</translation>
+ </message>
+ <message>
+ <source>de-clone</source>
+ <translation>häv kloning</translation>
+ </message>
+ <message>
+ <source>pianoroll</source>
+ <translation>pianorulle</translation>
+ </message>
+ <message>
+ <source>score</source>
+ <translation type="obsolete">partitur</translation>
+ </message>
+ <message>
+ <source>list</source>
+ <translation>lista</translation>
+ </message>
+ <message>
+ <source>drums</source>
+ <translation>trummor</translation>
+ </message>
+ <message>
+ <source>wave edit</source>
+ <translation>wave redigering</translation>
+ </message>
+ <message>
+ <source>Cannot paste: multiple tracks selected</source>
+ <translation>Kan inte klistra in: flera spår valda</translation>
+ </message>
+ <message>
+ <source>Cannot paste: no track selected</source>
+ <translation>Kan inte klistra in: inget spår valt</translation>
+ </message>
+ <message>
+ <source>Cannot paste midi parts to wave track</source>
+ <translation type="obsolete">Kan inte klistra in midipart till wavespår</translation>
+ </message>
+ <message>
+ <source>Cannot paste wave parts to midi track</source>
+ <translation type="obsolete">Kan inte klistra in wavepart på midispår</translation>
+ </message>
+ <message>
+ <source>Cannot paste: wrong data type</source>
+ <translation>Kan inte klistra in: fel datatyp</translation>
+ </message>
+ <message>
+ <source>Can only paste to midi/drum track</source>
+ <translation type="unfinished">Kan endast klistra in på midi/trummspår</translation>
+ </message>
+ <message>
+ <source>Can only paste to wave track</source>
+ <translation type="unfinished">Kan endast klistra till wavespår</translation>
+ </message>
+ <message>
+ <source>export</source>
+ <translation type="unfinished">exportera</translation>
+ </message>
+ <message>
+ <source>MusE: save part</source>
+ <translation type="unfinished">MusE: spara part</translation>
+ </message>
+</context>
+<context>
+ <name>PatchBay</name>
+ <message>
+ <source>MusE: ALSA MIDI Patch Bay</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>PatchBayBase</name>
+ <message>
+ <source>ALSA Patch Bay</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>PianoRoll</name>
+ <message>
+ <source>&amp;Edit</source>
+ <translation>&amp;Redigera</translation>
+ </message>
+ <message>
+ <source>Cut</source>
+ <translation>Klipp ut</translation>
+ </message>
+ <message>
+ <source>Copy</source>
+ <translation>Kopiera</translation>
+ </message>
+ <message>
+ <source>Paste</source>
+ <translation>Klistra in</translation>
+ </message>
+ <message>
+ <source>Delete Events</source>
+ <translation>Ta bort Händelser</translation>
+ </message>
+ <message>
+ <source>Select All</source>
+ <translation>Välj Allt</translation>
+ </message>
+ <message>
+ <source>Select None</source>
+ <translation>Välj Ingen</translation>
+ </message>
+ <message>
+ <source>Invert</source>
+ <translation>Invertera</translation>
+ </message>
+ <message>
+ <source>Inside Loop</source>
+ <translation>I loop</translation>
+ </message>
+ <message>
+ <source>Outside Loop</source>
+ <translation>Utanför loop</translation>
+ </message>
+ <message>
+ <source>&amp;Select</source>
+ <translation>&amp;Välj</translation>
+ </message>
+ <message>
+ <source>blue</source>
+ <translation>blå</translation>
+ </message>
+ <message>
+ <source>pitch colors</source>
+ <translation>pitchfärger</translation>
+ </message>
+ <message>
+ <source>velocity colors</source>
+ <translation type="unfinished">velocityfärger</translation>
+ </message>
+ <message>
+ <source>&amp;Config</source>
+ <translation type="unfinished">&amp;Inställningar</translation>
+ </message>
+ <message>
+ <source>event color</source>
+ <translation>händelsefärg</translation>
+ </message>
+ <message>
+ <source>&amp;Functions</source>
+ <translation>&amp;Funktioner</translation>
+ </message>
+ <message>
+ <source>Over Quantize</source>
+ <translation>Över Kvantisera</translation>
+ </message>
+ <message>
+ <source>Note On Quantize</source>
+ <translation>Note On-kvantisera</translation>
+ </message>
+ <message>
+ <source>Note On/Off Quantize</source>
+ <translation>Note On/Off Kvantisera</translation>
+ </message>
+ <message>
+ <source>Iterative Quantize</source>
+ <translation>Iterativ kvantisering</translation>
+ </message>
+ <message>
+ <source>Config Quant...</source>
+ <translation>Konfigurera Kvant...</translation>
+ </message>
+ <message>
+ <source>Modify Gate Time</source>
+ <translation>Modifiera Gate Time</translation>
+ </message>
+ <message>
+ <source>Modify Velocity</source>
+ <translation>Modifiera Velocity</translation>
+ </message>
+ <message>
+ <source>Crescendo</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Transpose</source>
+ <translation>Transponera</translation>
+ </message>
+ <message>
+ <source>Thin Out</source>
+ <translation>Tunna ut</translation>
+ </message>
+ <message>
+ <source>Erase Event</source>
+ <translation>Ta bort Händelse</translation>
+ </message>
+ <message>
+ <source>Note Shift</source>
+ <translation>Shifta Not</translation>
+ </message>
+ <message>
+ <source>Move Clock</source>
+ <translation>Flytta Klocka</translation>
+ </message>
+ <message>
+ <source>Copy Measure</source>
+ <translation>Kopiera Takt</translation>
+ </message>
+ <message>
+ <source>Erase Measure</source>
+ <translation>Radera Takt</translation>
+ </message>
+ <message>
+ <source>Delete Measure</source>
+ <translation>Ta bort Takt</translation>
+ </message>
+ <message>
+ <source>Create Measure</source>
+ <translation>Skapa Takt</translation>
+ </message>
+ <message>
+ <source>Pianoroll Tools</source>
+ <translation>Verktyg Pianorulle</translation>
+ </message>
+ <message>
+ <source>Step Record</source>
+ <translation>Stegvis inspelning</translation>
+ </message>
+ <message>
+ <source>Midi Input</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Play Events</source>
+ <translation>Spela Händelser</translation>
+ </message>
+ <message>
+ <source>ctrl</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Add Controller View</source>
+ <translation>Lägg till Controller Vy</translation>
+ </message>
+ <message>
+ <source>Set fixed length</source>
+ <translation type="unfinished">Sätt fast längd</translation>
+ </message>
+</context>
+<context>
+ <name>PluginDialog</name>
+ <message>
+ <source>MusE: select plugin</source>
+ <translation>MusE: välj plugin</translation>
+ </message>
+ <message>
+ <source>Lib</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Label</source>
+ <translation>Etikett</translation>
+ </message>
+ <message>
+ <source>Name</source>
+ <translation type="unfinished">Namn</translation>
+ </message>
+ <message>
+ <source>AI</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>AO</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>CI</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>CO</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>IP</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>id</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Maker</source>
+ <translation>Upphovsman</translation>
+ </message>
+ <message>
+ <source>Copyright</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Ok</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cancel</source>
+ <translation>Avbryt</translation>
+ </message>
+ <message>
+ <source>Stereo and Mono</source>
+ <translation type="unfinished">Stereo och mono</translation>
+ </message>
+ <message>
+ <source>Stereo</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Mono</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>All</source>
+ <translation type="unfinished">Alla</translation>
+ </message>
+ <message>
+ <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">Välj vilka typer av plugins som skall vara synliga i listan.&lt;br&gt;Notera att användning av mono plugins på ett stereospår inte är något problem, två instanser kommer&lt;br&gt; att att användas parallellt. Var också medveten om att &apos;alla&apos; alternativet inkluderar plugins som MusE antagligen inte kan använda.</translation>
+ </message>
+</context>
+<context>
+ <name>PluginGui</name>
+ <message>
+ <source>File Buttons</source>
+ <translation>Arkiv Knappar</translation>
+ </message>
+ <message>
+ <source>Load Preset</source>
+ <translation>Öppna Preset</translation>
+ </message>
+ <message>
+ <source>Save Preset</source>
+ <translation>Spara Preset</translation>
+ </message>
+ <message>
+ <source>bypass plugin</source>
+ <translation>koppla ur plugin</translation>
+ </message>
+ <message>
+ <source>MusE: load preset</source>
+ <translation>MusE: öppna preset</translation>
+ </message>
+ <message>
+ <source>MusE: save preset</source>
+ <translation>MusE: spara preset</translation>
+ </message>
+</context>
+<context>
+ <name>PrinterConfig</name>
+ <message>
+ <source>MusE: Config Printer</source>
+ <translation type="obsolete">MusE: Konfigurera Skrivare</translation>
+ </message>
+ <message>
+ <source>Print to file</source>
+ <translation type="obsolete">Skriv till fil</translation>
+ </message>
+ <message>
+ <source>Print Command</source>
+ <translation type="obsolete">Utskriftskommando</translation>
+ </message>
+ <message>
+ <source>Preview Command</source>
+ <translation type="obsolete">Förhandsgranskningskommando</translation>
+ </message>
+ <message>
+ <source>Cancel</source>
+ <translation type="obsolete">Avbryt</translation>
+ </message>
+</context>
+<context>
+ <name>QHeader</name>
+ <message>
+ <source>Port Number</source>
+ <translation>Portnummer</translation>
+ </message>
+ <message>
+ <source>enable gui for device</source>
+ <translation>visa gui för enhet</translation>
+ </message>
+ <message>
+ <source>enables recording from the device</source>
+ <translation type="obsolete">slå på inspelning från enhet</translation>
+ </message>
+ <message>
+ <source>Name of the midi device associated with this port number</source>
+ <translation>Namn på midienhet associerad med detta portnummer</translation>
+ </message>
+ <message>
+ <source>Instrument connected to port</source>
+ <translation>Instrument kopplat till denna port</translation>
+ </message>
+ <message>
+ <source>State: result of opening the device</source>
+ <translation>Status: resultat av öppning av enhet</translation>
+ </message>
+ <message>
+ <source>mute instrument</source>
+ <translation type="unfinished">tysta instrument</translation>
+ </message>
+ <message>
+ <source>sound name</source>
+ <translation>ljudnamn</translation>
+ </message>
+ <message>
+ <source>quantisation
+currently not used</source>
+ <translation>kvantisering
+används inte för tillfället</translation>
+ </message>
+ <message>
+ <source>this input note triggers the sound</source>
+ <translation>denna in-not triggar ljudet</translation>
+ </message>
+ <message>
+ <source>note length</source>
+ <translation>notlängd</translation>
+ </message>
+ <message>
+ <source>this note is send for the sound</source>
+ <translation>denna not skickas för ljudet</translation>
+ </message>
+ <message>
+ <source>output channel
+currently not used</source>
+ <translation>utgångskanal
+används inte för tillfället</translation>
+ </message>
+ <message>
+ <source>output port
+currently not used</source>
+ <translation>utgångsport
+används inte för tillfället</translation>
+ </message>
+ <message>
+ <source>velocity level 1</source>
+ <translation>velocity nivå 1</translation>
+ </message>
+ <message>
+ <source>velocity level 2</source>
+ <translation>velocity nivå 2</translation>
+ </message>
+ <message>
+ <source>velocity level 3</source>
+ <translation>velocity nivå 3</translation>
+ </message>
+ <message>
+ <source>velocity level 4</source>
+ <translation>velocity nivå 4</translation>
+ </message>
+ <message>
+ <source>quantisation</source>
+ <translation>kvantisering</translation>
+ </message>
+ <message>
+ <source>output channel</source>
+ <translation>utgångskanal</translation>
+ </message>
+ <message>
+ <source>output port</source>
+ <translation>utgångsport</translation>
+ </message>
+ <message>
+ <source>Enable Recording</source>
+ <translation>Slå på Inspelning</translation>
+ </message>
+ <message>
+ <source>Track Activity</source>
+ <translation type="obsolete">Spåraktivitet</translation>
+ </message>
+ <message>
+ <source>Mute Indicator</source>
+ <translation>Tyst-Indikator</translation>
+ </message>
+ <message>
+ <source>Solo Indicator</source>
+ <translation>Solo-Indikator</translation>
+ </message>
+ <message>
+ <source>Track Type</source>
+ <translation>Spårtyp</translation>
+ </message>
+ <message>
+ <source>Track Name</source>
+ <translation>Spårnamn</translation>
+ </message>
+ <message>
+ <source>Output Channel Number</source>
+ <translation>Kanalnummer för utgång</translation>
+ </message>
+ <message>
+ <source>Output Port</source>
+ <translation>Utgångsport</translation>
+ </message>
+ <message>
+ <source>Time Lock</source>
+ <translation>Tidlås</translation>
+ </message>
+ <message>
+ <source>Solo/Pre Fader Listening</source>
+ <translation>Solo/För-reglage lyssning</translation>
+ </message>
+ <message>
+ <source>enables reading from device</source>
+ <translation type="unfinished">slår på läsning från device</translation>
+ </message>
+ <message>
+ <source>enables writing to device</source>
+ <translation type="unfinished">slår på skrivning till device</translation>
+ </message>
+</context>
+<context>
+ <name>QWidget</name>
+ <message>
+ <source>Velocity</source>
+ <translation type="obsolete">Hastighet</translation>
+ </message>
+ <message>
+ <source>Cannot convert sysex string</source>
+ <translation>Kan inte konvertera sysex-sträng</translation>
+ </message>
+ <message>
+ <source>Hex String too long (2048 bytes limit)</source>
+ <translation>Hex-sträng för lång (2048 bytes maxgräns)</translation>
+ </message>
+ <message>
+ <source>generic midi</source>
+ <translation type="unfinished">generell midi</translation>
+ </message>
+ <message>
+ <source>new</source>
+ <translation>ny</translation>
+ </message>
+ <message>
+ <source>create peakfile for </source>
+ <translation>skapa &quot;peak&quot;-fil</translation>
+ </message>
+ <message>
+ <source>Cannot transform non empty track</source>
+ <translation type="obsolete">Kan inte transformera ej tomt spår</translation>
+ </message>
+ <message>
+ <source>MusE: get file name</source>
+ <translation>MusE: hämta filnamn</translation>
+ </message>
+ <message>
+ <source>the directory
+</source>
+ <translation>katalogen</translation>
+ </message>
+ <message>
+ <source>
+does not exist
+create?</source>
+ <translation>
+finns inte
+skapa?</translation>
+ </message>
+ <message>
+ <source>&amp;Create</source>
+ <translation>&amp;Skapa</translation>
+ </message>
+ <message>
+ <source>Cancel</source>
+ <translation>Avbryt</translation>
+ </message>
+ <message>
+ <source>MusE: create directory</source>
+ <translation>MusE: skapa katalog</translation>
+ </message>
+ <message>
+ <source>creating dir failed</source>
+ <translation>misslyckades med att skapa katalog</translation>
+ </message>
+ <message>
+ <source>File
+</source>
+ <translation>Arkiv</translation>
+ </message>
+ <message>
+ <source>
+exists</source>
+ <translation>existerar</translation>
+ </message>
+ <message>
+ <source>MusE: write</source>
+ <translation>MusE: skriv</translation>
+ </message>
+ <message>
+ <source>Overwrite</source>
+ <translation>Spara inte</translation>
+ </message>
+ <message>
+ <source>Quit</source>
+ <translation>Avsluta</translation>
+ </message>
+ <message>
+ <source>Open File
+</source>
+ <translation>Öppna fil</translation>
+ </message>
+ <message>
+ <source>
+failed: </source>
+ <translation>
+misslyckades:</translation>
+ </message>
+ <message>
+ <source>MusE: Open File</source>
+ <translation>MusE: Öppna fil</translation>
+ </message>
+ <message>
+ <source>None</source>
+ <translation type="unfinished">Ingen</translation>
+ </message>
+ <message>
+ <source>Master</source>
+ <translation type="obsolete">Master</translation>
+ </message>
+ <message>
+ <source>Group %c</source>
+ <translation type="obsolete">Grupp %c</translation>
+ </message>
+ <message>
+ <source>Unknown</source>
+ <translation type="obsolete">Okänd</translation>
+ </message>
+ <message>
+ <source>Group</source>
+ <translation type="obsolete">Grupp</translation>
+ </message>
+</context>
+<context>
+ <name>QuantConfig</name>
+ <message>
+ <source>MusE: Config Quantize</source>
+ <translation>MusE: Konfigurera Kvantisering</translation>
+ </message>
+ <message>
+ <source>Config Quantize</source>
+ <translation>Konfigurera Kvantisering</translation>
+ </message>
+ <message>
+ <source>Strength</source>
+ <translation>Styrka</translation>
+ </message>
+ <message>
+ <source>Don&#xb4;t Quantize</source>
+ <translation>Kvantisera Inte</translation>
+ </message>
+ <message>
+ <source>Quant Len</source>
+ <translation>Kvant Längd</translation>
+ </message>
+</context>
+<context>
+ <name>QuantDialog</name>
+ <message>
+ <source>Display Quantize</source>
+ <translation type="obsolete">Visa Kvantisering</translation>
+ </message>
+ <message>
+ <source>Note Quantize</source>
+ <translation type="obsolete">Not Kvantisering</translation>
+ </message>
+ <message>
+ <source>Rest Quantize</source>
+ <translation type="obsolete">Rest Kvantisering</translation>
+ </message>
+ <message>
+ <source>Cancel</source>
+ <translation type="obsolete">Avbryt</translation>
+ </message>
+</context>
+<context>
+ <name>RhythmBase</name>
+ <message>
+ <source>MusE: Random Rhythm Generator</source>
+ <translation>MusE: Slumprytmgenerator</translation>
+ </message>
+ <message>
+ <source>Instrument Properties</source>
+ <translation>Instrumentinställningar</translation>
+ </message>
+ <message>
+ <source>counts/bar</source>
+ <translation type="unfinished">slag/takt</translation>
+ </message>
+ <message>
+ <source>steps/count</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source># bars</source>
+ <translation type="unfinished"># takter</translation>
+ </message>
+ <message>
+ <source>test</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>contrib</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>randomize</source>
+ <translation>slumpa</translation>
+ </message>
+ <message>
+ <source>Group 1</source>
+ <translation>Grupp 1</translation>
+ </message>
+ <message>
+ <source>Group 2</source>
+ <translation>Grupp 2</translation>
+ </message>
+ <message>
+ <source>Group 3</source>
+ <translation>Grupp 3</translation>
+ </message>
+ <message>
+ <source>Group 4</source>
+ <translation>Grupp 4</translation>
+ </message>
+ <message>
+ <source>Group 5</source>
+ <translation>Grupp 5</translation>
+ </message>
+ <message>
+ <source>listen</source>
+ <translation>lyssna</translation>
+ </message>
+ <message>
+ <source>Instrument</source>
+ <translation type="unfinished">Instrument</translation>
+ </message>
+ <message>
+ <source>Group</source>
+ <translation>Grupp</translation>
+ </message>
+ <message>
+ <source>&amp;New</source>
+ <translation>&amp;Ny</translation>
+ </message>
+ <message>
+ <source>create new entry</source>
+ <translation>skapa nytt inlägg</translation>
+ </message>
+ <message>
+ <source>pressing the New button you create a new entry
+in the MusE list of defined controllers</source>
+ <translation>skapa nytt inlägg genom att trycka på Ny knappen
+i MusEs lista över definierade controllers</translation>
+ </message>
+ <message>
+ <source>&amp;Delete</source>
+ <translation>&amp;Ta bort</translation>
+ </message>
+ <message>
+ <source>delete selected entry</source>
+ <translation>ta bort valt inlägg</translation>
+ </message>
+ <message>
+ <source>Up</source>
+ <translation>Upp</translation>
+ </message>
+ <message>
+ <source>Down</source>
+ <translation>Ner</translation>
+ </message>
+ <message>
+ <source>Instrument </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>steps/count </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>list of defined controllers</source>
+ <translation>lista med definierade controllers</translation>
+ </message>
+ <message>
+ <source>This is the MusE list of defined controllers.</source>
+ <translation>Detta är MusEs lista med definierade controllers.</translation>
+ </message>
+ <message>
+ <source>&amp;File</source>
+ <translation>&amp;Arkiv</translation>
+ </message>
+ <message>
+ <source>&amp;Edit</source>
+ <translation>&amp;Redigera</translation>
+ </message>
+ <message>
+ <source>&amp;Help</source>
+ <translation>&amp;Hjälp</translation>
+ </message>
+ <message>
+ <source>Tools</source>
+ <translation>Verktyg</translation>
+ </message>
+ <message>
+ <source>New</source>
+ <translation>Ny</translation>
+ </message>
+ <message>
+ <source>Open</source>
+ <translation>Öppna</translation>
+ </message>
+ <message>
+ <source>&amp;Open...</source>
+ <translation>&amp;Öppna...</translation>
+ </message>
+ <message>
+ <source>Save</source>
+ <translation>Spara</translation>
+ </message>
+ <message>
+ <source>&amp;Save</source>
+ <translation>&amp;Spara</translation>
+ </message>
+ <message>
+ <source>Save As</source>
+ <translation>Spara som</translation>
+ </message>
+ <message>
+ <source>Save &amp;As...</source>
+ <translation>S&amp;para som...</translation>
+ </message>
+ <message>
+ <source>Print</source>
+ <translation>Skriv ut</translation>
+ </message>
+ <message>
+ <source>&amp;Print...</source>
+ <translation>Skriv &amp;ut...</translation>
+ </message>
+ <message>
+ <source>Exit</source>
+ <translation>Stäng</translation>
+ </message>
+ <message>
+ <source>E&amp;xit</source>
+ <translation>S&amp;täng</translation>
+ </message>
+ <message>
+ <source>Undo</source>
+ <translation>Ã…ngra</translation>
+ </message>
+ <message>
+ <source>&amp;Undo</source>
+ <translation>&amp;Ã…ngra</translation>
+ </message>
+ <message>
+ <source>Redo</source>
+ <translation>Gör om</translation>
+ </message>
+ <message>
+ <source>&amp;Redo</source>
+ <translation>Gör &amp;om</translation>
+ </message>
+ <message>
+ <source>Cut</source>
+ <translation>Klipp ut</translation>
+ </message>
+ <message>
+ <source>&amp;Cut</source>
+ <translation>Klipp &amp;ut</translation>
+ </message>
+ <message>
+ <source>Copy</source>
+ <translation>Kopiera</translation>
+ </message>
+ <message>
+ <source>C&amp;opy</source>
+ <translation>&amp;Öppna</translation>
+ </message>
+ <message>
+ <source>Paste</source>
+ <translation>Klistra in</translation>
+ </message>
+ <message>
+ <source>&amp;Paste</source>
+ <translation>K&amp;listra in</translation>
+ </message>
+ <message>
+ <source>Find</source>
+ <translation>Sök</translation>
+ </message>
+ <message>
+ <source>&amp;Find...</source>
+ <translation>&amp;Sök...</translation>
+ </message>
+ <message>
+ <source>Contents</source>
+ <translation>Innehåll</translation>
+ </message>
+ <message>
+ <source>&amp;Contents...</source>
+ <translation>&amp;Innehåll...</translation>
+ </message>
+ <message>
+ <source>Index</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>&amp;Index...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>About</source>
+ <translation>Om</translation>
+ </message>
+ <message>
+ <source>&amp;About...</source>
+ <translation>&amp;Om...</translation>
+ </message>
+ <message>
+ <source>&lt;b&gt;Notice!&lt;/b&gt;&lt;br&gt;
+Random Rhythm Generator is not enabled yet!</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Ctrl+N</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Ctrl+O</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Ctrl+S</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Ctrl+P</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Ctrl+Z</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Ctrl+Y</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Ctrl+X</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Ctrl+C</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Ctrl+V</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Ctrl+F</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>RhythmGenerator</name>
+ <message>
+ <source>Instrument Settings:</source>
+ <translation type="unfinished">Instrumentinställningar:</translation>
+ </message>
+ <message>
+ <source>Instrument</source>
+ <translation type="unfinished">Instrument</translation>
+ </message>
+ <message>
+ <source>add</source>
+ <translation type="unfinished">lägg till</translation>
+ </message>
+ <message>
+ <source>delete</source>
+ <translation type="unfinished">ta bort</translation>
+ </message>
+ <message>
+ <source>count/bar</source>
+ <translation type="unfinished">slag/takt</translation>
+ </message>
+ <message>
+ <source># bars</source>
+ <translation type="unfinished"># takt</translation>
+ </message>
+ <message>
+ <source>Group Settings:</source>
+ <translation type="unfinished">Gruppinställningar:</translation>
+ </message>
+ <message>
+ <source>Group</source>
+ <translation type="unfinished">Grupp</translation>
+ </message>
+ <message>
+ <source>Group 1</source>
+ <translation type="unfinished">Grupp 1</translation>
+ </message>
+ <message>
+ <source>Group 2</source>
+ <translation type="unfinished">Grupp 2</translation>
+ </message>
+ <message>
+ <source>Group 3</source>
+ <translation type="unfinished">Grupp 3</translation>
+ </message>
+ <message>
+ <source>Group 4</source>
+ <translation type="unfinished">Grupp 4</translation>
+ </message>
+ <message>
+ <source>Group 5</source>
+ <translation type="unfinished">Grupp 5</translation>
+ </message>
+ <message>
+ <source>listen</source>
+ <translation type="unfinished">lyssna</translation>
+ </message>
+ <message>
+ <source>Randomize</source>
+ <translation type="unfinished">Slumpa</translation>
+ </message>
+ <message>
+ <source>Rhythm Style:</source>
+ <translation type="unfinished">Rytmstil:</translation>
+ </message>
+ <message>
+ <source>Clear</source>
+ <translation type="unfinished">Rensa</translation>
+ </message>
+ <message>
+ <source>Open...</source>
+ <translation type="unfinished">Öppna...</translation>
+ </message>
+ <message>
+ <source>Save</source>
+ <translation type="unfinished">Spara</translation>
+ </message>
+ <message>
+ <source>Save as...</source>
+ <translation type="unfinished">Spara som...</translation>
+ </message>
+ <message>
+ <source>Generate</source>
+ <translation type="unfinished">Generera</translation>
+ </message>
+ <message>
+ <source>Close</source>
+ <translation type="unfinished">Stäng</translation>
+ </message>
+ <message>
+ <source></source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Form3</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Hi-Hat</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>steps/count</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>contrib</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>RouteDialogBase</name>
+ <message>
+ <source>MusE: Routing</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Add Route</source>
+ <translation type="unfinished">Lägg till rutt</translation>
+ </message>
+ <message>
+ <source>Source:</source>
+ <translation type="unfinished">Källa:</translation>
+ </message>
+ <message>
+ <source>Destination:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Connect</source>
+ <translation type="unfinished">Koppla</translation>
+ </message>
+ <message>
+ <source>connect source to destination</source>
+ <translation type="unfinished">koppla källa till destination</translation>
+ </message>
+ <message>
+ <source>Current Routes</source>
+ <translation type="unfinished">Nuvarande rutter</translation>
+ </message>
+ <message>
+ <source>Source</source>
+ <translation type="unfinished">Källa</translation>
+ </message>
+ <message>
+ <source>Destination</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Remove</source>
+ <translation type="unfinished">Ta bort</translation>
+ </message>
+ <message>
+ <source>remove selected route</source>
+ <translation type="unfinished">Ta bort vald rutt</translation>
+ </message>
+</context>
+<context>
+ <name>SS_PluginChooserBase</name>
+ <message>
+ <source>SimpleDrums - Ladspa Plugin Chooser</source>
+ <translation type="unfinished">SimpleDrums - Ladspa pluginväljare</translation>
+ </message>
+ <message>
+ <source>Name</source>
+ <translation type="unfinished">Namn</translation>
+ </message>
+ <message>
+ <source>Label</source>
+ <translation type="unfinished">Etikett</translation>
+ </message>
+ <message>
+ <source>Inports</source>
+ <translation type="unfinished">Inporta</translation>
+ </message>
+ <message>
+ <source>Outports</source>
+ <translation type="unfinished">Utportar</translation>
+ </message>
+ <message>
+ <source>Creator</source>
+ <translation type="unfinished">Upphovsman</translation>
+ </message>
+ <message>
+ <source>&amp;Cancel</source>
+ <translation type="unfinished">&amp;Avbryt</translation>
+ </message>
+ <message>
+ <source>Alt+C</source>
+ <translation type="unfinished">Alt+A</translation>
+ </message>
+ <message>
+ <source>&amp;OK</source>
+ <translation type="unfinished">&amp;Ok</translation>
+ </message>
+ <message>
+ <source>Alt+O</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>Score</name>
+ <message>
+ <source>Dynamics</source>
+ <translation type="obsolete">Dynamik</translation>
+ </message>
+ <message>
+ <source>&amp;Config</source>
+ <translation type="obsolete">&amp;Inställningar</translation>
+ </message>
+ <message>
+ <source>Page Settings</source>
+ <translation type="obsolete">Sidinställningar</translation>
+ </message>
+ <message>
+ <source>Staff Settings</source>
+ <translation type="obsolete">Notsystem inställningar</translation>
+ </message>
+ <message>
+ <source>Background Pixmap</source>
+ <translation type="obsolete">Bakgrundsbild</translation>
+ </message>
+ <message>
+ <source>Palettes</source>
+ <translation type="obsolete">Palett</translation>
+ </message>
+ <message>
+ <source>Print</source>
+ <translation type="obsolete">Skriv ut</translation>
+ </message>
+ <message>
+ <source>Preview Print</source>
+ <translation type="obsolete">Förhandsgranska utskrift</translation>
+ </message>
+ <message>
+ <source>Lyrics</source>
+ <translation type="obsolete">Text</translation>
+ </message>
+ <message>
+ <source>enter lyrics</source>
+ <translation type="obsolete">skriv in text</translation>
+ </message>
+ <message>
+ <source>Text</source>
+ <translation type="obsolete">Text</translation>
+ </message>
+ <message>
+ <source>enter text</source>
+ <translation type="obsolete">skriv in Text</translation>
+ </message>
+ <message>
+ <source>enter chord symbol</source>
+ <translation type="obsolete">skriv in ackordsymbol</translation>
+ </message>
+ <message>
+ <source>Score</source>
+ <translation type="obsolete">Partitur</translation>
+ </message>
+ <message>
+ <source>to previous voice</source>
+ <translation type="obsolete">till föregående röst</translation>
+ </message>
+ <message>
+ <source>to next voice</source>
+ <translation type="obsolete">till nästa röst</translation>
+ </message>
+ <message>
+ <source>flip stem direction</source>
+ <translation type="obsolete">ändra stämriktning</translation>
+ </message>
+ <message>
+ <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>
+ <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>
+ <source>flip stem direction of selected notes</source>
+ <translation type="obsolete">byt stämriktning för valda noter</translation>
+ </message>
+ <message>
+ <source>StaffSettings</source>
+ <translation type="obsolete">Notsysteminställningar</translation>
+ </message>
+ <message>
+ <source>MusE: config wallpaper</source>
+ <translation type="obsolete">MusE: konfigurera bakgrundsbild</translation>
+ </message>
+</context>
+<context>
+ <name>ScoreConfig</name>
+ <message>
+ <source>Staff Settings: </source>
+ <translation type="obsolete">Partiturinställningar:</translation>
+ </message>
+ <message>
+ <source>Track List</source>
+ <translation type="obsolete">Spårlista</translation>
+ </message>
+ <message>
+ <source>Key/Clef</source>
+ <translation type="obsolete">Stämma/Klav</translation>
+ </message>
+ <message>
+ <source>Upper Staff</source>
+ <translation type="obsolete">Övre notplan</translation>
+ </message>
+ <message>
+ <source>Lower Staff</source>
+ <translation type="obsolete">Nedre notplan</translation>
+ </message>
+ <message>
+ <source>Raster</source>
+ <translation type="obsolete">Rutnät</translation>
+ </message>
+ <message>
+ <source>Note Quantize</source>
+ <translation type="obsolete">Notkvantisera</translation>
+ </message>
+ <message>
+ <source>Rest Quantize</source>
+ <translation type="obsolete">Restkvantisera</translation>
+ </message>
+ <message>
+ <source>Mode</source>
+ <translation type="obsolete">Läge</translation>
+ </message>
+ <message>
+ <source>Split System</source>
+ <translation type="obsolete">Delat system</translation>
+ </message>
+ <message>
+ <source>Splitpoint</source>
+ <translation type="obsolete">Delningspunkt</translation>
+ </message>
+ <message>
+ <source>Apply</source>
+ <translation type="obsolete">Verkställ</translation>
+ </message>
+ <message>
+ <source>Cancel</source>
+ <translation type="obsolete">Avbryt</translation>
+ </message>
+</context>
+<context>
+ <name>ScrollScale</name>
+ <message>
+ <source>next page</source>
+ <translation>nästa sida</translation>
+ </message>
+ <message>
+ <source>previous page</source>
+ <translation>förra sidan</translation>
+ </message>
+ <message>
+ <source>current page number</source>
+ <translation>nuvarande sidnummer</translation>
+ </message>
+</context>
+<context>
+ <name>ShortcutCaptureDialog</name>
+ <message>
+ <source>Ok</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cancel</source>
+ <translation type="unfinished">Avbryt</translation>
+ </message>
+ <message>
+ <source>Shortcut conflicts with </source>
+ <translation type="unfinished">Kortkommando konfliktar med</translation>
+ </message>
+ <message>
+ <source>Undefined</source>
+ <translation type="unfinished">Odefinierad</translation>
+ </message>
+</context>
+<context>
+ <name>ShortcutCaptureDialogBase</name>
+ <message>
+ <source>Enter shortcut sequence</source>
+ <translation type="unfinished">Ange kortkommandosekvens</translation>
+ </message>
+ <message>
+ <source>Press keys to enter shortcut sequence!</source>
+ <translation type="unfinished">Tryck på tangenter för att ange kortkommandosekvens:</translation>
+ </message>
+ <message>
+ <source>Old shortcut:</source>
+ <translation type="unfinished">Gammalt kortkommando</translation>
+ </message>
+ <message>
+ <source>Undefined</source>
+ <translation type="unfinished">Odefinierad</translation>
+ </message>
+ <message>
+ <source>New shortcut:</source>
+ <translation type="unfinished">Nytt kortkommando</translation>
+ </message>
+ <message>
+ <source>OK</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cancel</source>
+ <translation type="unfinished">Avbryt</translation>
+ </message>
+</context>
+<context>
+ <name>ShortcutConfigBase</name>
+ <message>
+ <source>Configure Keyboard Shortcuts</source>
+ <translation type="unfinished">Konfigurera tangentbordskortkommando</translation>
+ </message>
+ <message>
+ <source>Shortcut Category</source>
+ <translation type="unfinished">Kortkommandokategori</translation>
+ </message>
+ <message>
+ <source>Description</source>
+ <translation type="unfinished">Beskrivning</translation>
+ </message>
+ <message>
+ <source>Shortcut</source>
+ <translation type="unfinished">Kortkommando</translation>
+ </message>
+ <message>
+ <source>&amp;Clear</source>
+ <translation type="unfinished">&amp;Rensa</translation>
+ </message>
+ <message>
+ <source>Alt+C</source>
+ <translation type="unfinished">Alt+R</translation>
+ </message>
+ <message>
+ <source>&amp;Define</source>
+ <translation type="unfinished">&amp;Definiera</translation>
+ </message>
+ <message>
+ <source>Alt+D</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>&amp;Apply</source>
+ <translation type="unfinished">&amp;Verkställ</translation>
+ </message>
+ <message>
+ <source>Alt+A</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SigScale</name>
+ <message>
+ <source>signature scale</source>
+ <translation>signaturskala</translation>
+ </message>
+</context>
+<context>
+ <name>SimpleDrumsGuiBase</name>
+ <message>
+ <source>DrumSynth 0.1</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SimpleSynthGui</name>
+ <message>
+ <source>&amp;Load setup</source>
+ <translation type="unfinished">&amp;Ladda setup</translation>
+ </message>
+ <message>
+ <source>&amp;Save setup</source>
+ <translation type="unfinished">&amp;Spara setup</translation>
+ </message>
+</context>
+<context>
+ <name>StkGuiBase</name>
+ <message>
+ <source>Voices</source>
+ <translation type="obsolete">Röster</translation>
+ </message>
+ <message>
+ <source>Edit</source>
+ <translation type="obsolete">Redigera</translation>
+ </message>
+</context>
+<context>
+ <name>SynthConfigBase</name>
+ <message>
+ <source>MusE: Synth Configuration</source>
+ <translation>MusE: Syntinställningar</translation>
+ </message>
+ <message>
+ <source>Soft Synthesizer</source>
+ <translation>Mjukvarusynt</translation>
+ </message>
+ <message>
+ <source>File</source>
+ <translation>Arkiv</translation>
+ </message>
+ <message>
+ <source>Instances</source>
+ <translation>Instanser</translation>
+ </message>
+ <message>
+ <source>Name</source>
+ <translation>Namn</translation>
+ </message>
+ <message>
+ <source>list of available software synthesizers</source>
+ <translation type="unfinished">lista med tillgängliga mjukvarusyntar</translation>
+ </message>
+ <message>
+ <source>Add Instance</source>
+ <translation>Lägg till instans</translation>
+ </message>
+ <message>
+ <source>Remove Instance</source>
+ <translation>Ta bort instans</translation>
+ </message>
+ <message>
+ <source>Midi Port</source>
+ <translation type="unfinished">Midiport</translation>
+ </message>
+ <message>
+ <source>Midi connections</source>
+ <translation type="unfinished">Midikopplingar</translation>
+ </message>
+ <message>
+ <source>Inst</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Version</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Description</source>
+ <translation type="unfinished">Beskrivning</translation>
+ </message>
+</context>
+<context>
+ <name>TList</name>
+ <message>
+ <source>Show Gui</source>
+ <translation>Visa Gui</translation>
+ </message>
+ <message>
+ <source>Add Midi Track</source>
+ <translation>Lägg till Midispår</translation>
+ </message>
+ <message>
+ <source>Add Drum Track</source>
+ <translation>Lägg till Trumspår</translation>
+ </message>
+ <message>
+ <source>Add Wave Track</source>
+ <translation>Lägg till Wavespår</translation>
+ </message>
+ <message>
+ <source>Delete Track</source>
+ <translation>Ta bort spår</translation>
+ </message>
+ <message>
+ <source>Track Comment</source>
+ <translation>Spårkommentar</translation>
+ </message>
+ <message>
+ <source>Midi</source>
+ <translation>Midi</translation>
+ </message>
+ <message>
+ <source>Drum</source>
+ <translation>Trumma</translation>
+ </message>
+ <message>
+ <source>Wave</source>
+ <translation type="obsolete">Wave</translation>
+ </message>
+ <message>
+ <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>
+ <source>Save dialog</source>
+ <translation type="obsolete">Spara dialog</translation>
+ </message>
+ <message>
+ <source>Cancel</source>
+ <translation type="obsolete">Avbryt</translation>
+ </message>
+ <message>
+ <source>MusE: bad trackname</source>
+ <translation type="unfinished">MusE: dåligt spårnamn</translation>
+ </message>
+ <message>
+ <source>please choose a unique track name</source>
+ <translation type="unfinished">vänligen välj ett unikt spårnamn</translation>
+ </message>
+ <message>
+ <source>Add Output</source>
+ <translation type="unfinished">Lägg till utgång</translation>
+ </message>
+ <message>
+ <source>Add Group</source>
+ <translation type="unfinished">Lägg till grupp</translation>
+ </message>
+ <message>
+ <source>Add Input</source>
+ <translation type="unfinished">Lägg till ingång</translation>
+ </message>
+ <message>
+ <source>Add Aux Send</source>
+ <translation type="unfinished">Lägg till aux-send</translation>
+ </message>
+ <message>
+ <source>Update drummap?</source>
+ <translation type="unfinished">Updatera trum-map?</translation>
+ </message>
+ <message>
+ <source>Do you want to use same port for all instruments in the drummap?</source>
+ <translation type="unfinished">Vill du använda samma port för alla instrument i trum-map:en?</translation>
+ </message>
+ <message>
+ <source>&amp;Yes</source>
+ <translation type="unfinished">&amp;Ja</translation>
+ </message>
+ <message>
+ <source>&amp;No</source>
+ <translation type="unfinished">&amp;Nej</translation>
+ </message>
+ <message>
+ <source>Do you want to use same port and channel for all instruments in the drummap?</source>
+ <translation type="unfinished">Vill du använda samma port och kanal för alla instrument i trummap:en?</translation>
+ </message>
+</context>
+<context>
+ <name>TempoSig</name>
+ <message>
+ <source>Tempo/Sig</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>Toolbar1</name>
+ <message>
+ <source>Solo</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cursor</source>
+ <translation>Markör</translation>
+ </message>
+ <message>
+ <source>Snap</source>
+ <translation>Fäst vid</translation>
+ </message>
+ <message>
+ <source>Quantize</source>
+ <translation>Kvantisera</translation>
+ </message>
+ <message>
+ <source>To</source>
+ <translation>Till</translation>
+ </message>
+ <message>
+ <source>All Events</source>
+ <translation>Alla Händelser</translation>
+ </message>
+ <message>
+ <source>Looped Ev.</source>
+ <translation>Loopade Händelser.</translation>
+ </message>
+ <message>
+ <source>Selected Ev.</source>
+ <translation>Valda Händelser.</translation>
+ </message>
+ <message>
+ <source>Looped+Sel.</source>
+ <translation>Loopade och Valda.</translation>
+ </message>
+</context>
+<context>
+ <name>TrackComment</name>
+ <message>
+ <source>MusE: Track Comment</source>
+ <translation>MusE: Spårkommentar</translation>
+ </message>
+ <message>
+ <source>Track Comment:</source>
+ <translation>Spårkommentar:</translation>
+ </message>
+</context>
+<context>
+ <name>Transport</name>
+ <message>
+ <source>Overdub</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Replace</source>
+ <translation>Ersätt</translation>
+ </message>
+ <message>
+ <source>Rec Mode</source>
+ <translation>Recläge</translation>
+ </message>
+ <message>
+ <source>Normal</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Mix</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cycle Rec</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>punchin</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>loop</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>punchout</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Punch In</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Loop</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Punch Out</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Left Mark</source>
+ <translation>Vänster Markering</translation>
+ </message>
+ <message>
+ <source>Right Mark</source>
+ <translation>Höger Markering</translation>
+ </message>
+ <message>
+ <source>rewind to start</source>
+ <translation>flytta tillbaka till början</translation>
+ </message>
+ <message>
+ <source>rewind</source>
+ <translation>flytta tillbaka</translation>
+ </message>
+ <message>
+ <source>forward</source>
+ <translation>frammåt</translation>
+ </message>
+ <message>
+ <source>stop</source>
+ <translation>stopp</translation>
+ </message>
+ <message>
+ <source>play</source>
+ <translation>spela</translation>
+ </message>
+ <message>
+ <source>record</source>
+ <translation>spela in</translation>
+ </message>
+ <message>
+ <source>AC</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>quantize during record</source>
+ <translation>kvantisera under inspelning</translation>
+ </message>
+ <message>
+ <source>Click</source>
+ <translation></translation>
+ </message>
+ <message>
+ <source>metronom click on/off</source>
+ <translation>metronomklick av/på</translation>
+ </message>
+ <message>
+ <source>Sync</source>
+ <translation>Synk</translation>
+ </message>
+ <message>
+ <source>external sync on/off</source>
+ <translation>externsynk. av/på</translation>
+ </message>
+ <message>
+ <source>Master</source>
+ <translation>Master</translation>
+ </message>
+ <message>
+ <source>use master track</source>
+ <translation>använder masterspår</translation>
+ </message>
+</context>
+<context>
+ <name>TransposeDialogBase</name>
+ <message>
+ <source>MusE: Midi Transpose</source>
+ <translation>MusE: Miditransponering</translation>
+ </message>
+ <message>
+ <source>Value</source>
+ <translation>Värde</translation>
+ </message>
+ <message>
+ <source>halftones</source>
+ <translation>halvtoner</translation>
+ </message>
+ <message>
+ <source>Time</source>
+ <translation>Tid</translation>
+ </message>
+ <message>
+ <source>all</source>
+ <translation>alla</translation>
+ </message>
+ <message>
+ <source>between markers</source>
+ <translation>mellan markeringar</translation>
+ </message>
+ <message>
+ <source>Parts</source>
+ <translation>Parter</translation>
+ </message>
+ <message>
+ <source>all in selected tracks</source>
+ <translation>alla i valda spår</translation>
+ </message>
+ <message>
+ <source>OK</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cancel</source>
+ <translation>Avbryt</translation>
+ </message>
+</context>
+<context>
+ <name>VAMGui</name>
+ <message>
+ <source>MusE: Save VAM Presets</source>
+ <translation type="unfinished">MusE: Spara VAM presets</translation>
+ </message>
+</context>
+<context>
+ <name>VAMGuiBase</name>
+ <message>
+ <source>Virtual Analogue for MusE</source>
+ <translation type="unfinished">Virtual Analogue för MusE</translation>
+ </message>
+ <message>
+ <source>Waveform</source>
+ <translation type="unfinished">VÃ¥gform</translation>
+ </message>
+ <message>
+ <source>Sine</source>
+ <translation type="unfinished">Sinus</translation>
+ </message>
+ <message>
+ <source>Pulse</source>
+ <translation type="unfinished">Puls</translation>
+ </message>
+ <message>
+ <source>Saw</source>
+ <translation type="unfinished">SÃ¥gtand</translation>
+ </message>
+ <message>
+ <source>Triangle</source>
+ <translation type="unfinished">Triangel</translation>
+ </message>
+ <message>
+ <source>Filter</source>
+ <translation type="unfinished">Filter</translation>
+ </message>
+ <message>
+ <source>Invert</source>
+ <translation type="unfinished">Invertera</translation>
+ </message>
+ <message>
+ <source>Presets</source>
+ <translation type="unfinished">Preset</translation>
+ </message>
+ <message>
+ <source>load preset list</source>
+ <translation type="unfinished">öppna presetlista</translation>
+ </message>
+ <message>
+ <source>save preset list</source>
+ <translation type="unfinished">spara presetlista</translation>
+ </message>
+ <message>
+ <source>save preset list to a new file</source>
+ <translation type="unfinished">spara presetlista till ny fil</translation>
+ </message>
+ <message>
+ <source>delete preset</source>
+ <translation type="unfinished">ta bort preset</translation>
+ </message>
+ <message>
+ <source>Pitch</source>
+ <translation type="unfinished">Tonhöjd</translation>
+ </message>
+ <message>
+ <source>On</source>
+ <translation type="unfinished">PÃ¥</translation>
+ </message>
+ <message>
+ <source>LFO</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Freq</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>EnvMod</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Attack</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Decay</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Sustain</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Release</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cutoff</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Resonance</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>KeyTrack</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Set</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>DCO 1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Detune</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>PWM</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>FM</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>PW</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>DCO 2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message encoding="UTF-8">
+ <source>VAM 1.0beta3
+Virtual Analog for MusE
+Released under GPL.
+Copyright(C) 2002
+Jotsif Lindman Hörnlund
+( jotsif@linux.nu )
+Copyright(C) 2005
+Robert Jonsson
+(rj@spamatica.se)</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>VelocityBase</name>
+ <message>
+ <source>MusE: Modify Velocity</source>
+ <translation>MusE: Modifiera Velocity</translation>
+ </message>
+ <message>
+ <source>Range</source>
+ <translation>Område</translation>
+ </message>
+ <message>
+ <source>All Events</source>
+ <translation>Alla Händelser</translation>
+ </message>
+ <message>
+ <source>Selected Events</source>
+ <translation>Valda Händelser</translation>
+ </message>
+ <message>
+ <source>Looped Events</source>
+ <translation>Loopade Händelser</translation>
+ </message>
+ <message>
+ <source>Selected &amp; Looped</source>
+ <translation>Valda &amp; Loopade</translation>
+ </message>
+ <message>
+ <source>Values</source>
+ <translation>Värden</translation>
+ </message>
+ <message>
+ <source>Rate:</source>
+ <translation>Hastighet:</translation>
+ </message>
+ <message>
+ <source>Offset:</source>
+ <translation>Offset:</translation>
+ </message>
+ <message>
+ <source>%</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>OK</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cancel</source>
+ <translation>Avbryt</translation>
+ </message>
+</context>
+<context>
+ <name>WTScale</name>
+ <message>
+ <source>bar scale</source>
+ <translation>takt-skala</translation>
+ </message>
+</context>
+<context>
+ <name>WaveEdit</name>
+ <message>
+ <source>&amp;File</source>
+ <translation>&amp;Arkiv</translation>
+ </message>
+ <message>
+ <source>Functions</source>
+ <translation type="obsolete">Funktioner</translation>
+ </message>
+ <message>
+ <source>Normalize</source>
+ <translation type="obsolete">Normalisera</translation>
+ </message>
+ <message>
+ <source>weTools</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Solo</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cursor</source>
+ <translation>Markör</translation>
+ </message>
+ <message>
+ <source>&amp;Edit</source>
+ <translation type="unfinished">&amp;Redigera</translation>
+ </message>
+ <message>
+ <source>Func&amp;tions</source>
+ <translation type="unfinished">Funk&amp;tioner</translation>
+ </message>
+ <message>
+ <source>200%</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>150%</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>75%</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>50%</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>25%</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Other</source>
+ <translation type="unfinished">Andra</translation>
+ </message>
+ <message>
+ <source>&amp;Gain</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Edit in E&amp;xternal Editor</source>
+ <translation type="unfinished">Editera i e&amp;xtern redigerare</translation>
+ </message>
+ <message>
+ <source>Mute Selection</source>
+ <translation type="unfinished">Tysta markering</translation>
+ </message>
+ <message>
+ <source>Normalize Selection</source>
+ <translation type="unfinished">Normalisera markering</translation>
+ </message>
+ <message>
+ <source>Fade In Selection</source>
+ <translation type="unfinished">Tona in markering</translation>
+ </message>
+ <message>
+ <source>Fade Out Selection</source>
+ <translation type="unfinished">Tona ut Markering</translation>
+ </message>
+ <message>
+ <source>Reverse Selection</source>
+ <translation type="unfinished">Reversera markering</translation>
+ </message>
+ <message>
+ <source>Select &amp;All</source>
+ <translation type="unfinished">Markera &amp;Allt</translation>
+ </message>
+ <message>
+ <source>&amp;Deselect All</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Select</source>
+ <translation type="unfinished">Välj</translation>
+ </message>
+</context>
+<context>
+ <name>WaveTrackInfoBase</name>
+ <message>
+ <source>MusE: TrackInfo</source>
+ <translation>MusE: Spårinfo</translation>
+ </message>
+ <message>
+ <source>Track Info</source>
+ <translation>Spårinfo</translation>
+ </message>
+ <message>
+ <source>Track Name</source>
+ <translation>Spårnamn</translation>
+ </message>
+ <message>
+ <source>Output Route:</source>
+ <translation type="unfinished">Utgångsrutt:</translation>
+ </message>
+ <message>
+ <source>Input Route:</source>
+ <translation type="unfinished">Ingångsrutt:</translation>
+ </message>
+ <message>
+ <source>Ports:</source>
+ <translation>Portar:</translation>
+ </message>
+ <message>
+ <source>Mono</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Stereo</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>WaveView</name>
+ <message>
+ <source>MusE - external editor failed</source>
+ <translation type="unfinished">MusE - fel med extern redigerare </translation>
+ </message>
+ <message>
+ <source>MusE was unable to launch the external editor
+check if the editor setting in:
+Global Settings-&gt;Audio:External Waveditor
+is set to a valid editor.</source>
+ <translation type="unfinished">MusE kunde inte starta extern redigerare
+kontrollera om inställningarna i:
+Globala inställningar-&gt;Ljud:Extern ljudredigerare
+är satt till en giltig redigerarbinär</translation>
+ </message>
+ <message>
+ <source>MusE - file size changed</source>
+ <translation type="unfinished">MusE - filstorleken har förändrats</translation>
+ </message>
+ <message>
+ <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">Vid editering i extern editor - bör du inte ändra filstorleken
+eftersom den måste passa i regionen.
+
+Saknat data tystas</translation>
+ </message>
+</context>
+<context>
+ <name>freeverb</name>
+ <message>
+ <source>FreeVerb</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Rooom Size</source>
+ <translation type="unfinished">Rumstorlek</translation>
+ </message>
+ <message>
+ <source>Damping</source>
+ <translation type="unfinished">Dämpning</translation>
+ </message>
+ <message>
+ <source>Wet Level</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Tap-Reverberator</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Decay [ms]</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>dB</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Dry Level [dB]</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Wet Level [dB]</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Preset:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>AfterBurn</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>AfterBurn (Long)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Ambience</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Ambience (Thick)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Ambience (Thick) - HD</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cathedral</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cathedral - HD</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Drum Chamber</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Garage</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Garage (Bright)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Gymnasium</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Gymnasium (Bright)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Gymnasium (Bright) - HD</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Hall (Small)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Hall (Medium)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Hall (Large)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Hall (Large) - HD</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Plate (Small)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Plate (Medium)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Plate (Large)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Plate (Large) - HD</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Pulse Chamber</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Pulse Chamber (Reverse)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Resonator (96 ms)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Resonator (152 ms)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Resonator (208 ms)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Room (Small)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Room (Medium)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Room (Large)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Room (Large) - HD</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Slap Chamber</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Slap Chamber - HD</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Slap Chamber (Bright)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Slap Chamber (Bright) HD</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Smooth Hall (Small)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Smooth Hall (Medium)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Smooth Hall (Large)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Smooth Hall (Large) - HD</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Vocal Plate</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Vocal Plate - HD</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Warble Chamber</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Warehoouse</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Warehouse - HD</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Comb Filters</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Allpass Filters</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Bandpass Filters</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Enhanced Stereo</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS>
diff --git a/muse2/share/plugins/1050.ui b/muse2/share/plugins/1050.ui
new file mode 100644
index 00000000..ce4448ae
--- /dev/null
+++ b/muse2/share/plugins/1050.ui
@@ -0,0 +1,246 @@
+<!DOCTYPE UI><UI version="3.2" stdsetdef="1">
+<class>freeverb</class>
+<widget class="QWidget">
+ <property name="name">
+ <cstring>freeverb</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>516</width>
+ <height>87</height>
+ </rect>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>4</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="caption">
+ <string>FreeVerb</string>
+ </property>
+ <grid>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>4</number>
+ </property>
+ <property name="spacing">
+ <number>2</number>
+ </property>
+ <widget class="QLabel" row="0" column="0">
+ <property name="name">
+ <cstring>textLabel1</cstring>
+ </property>
+ <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>
+ <widget class="Slider" row="1" column="2">
+ <property name="name">
+ <cstring>P1slider</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>7</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>10</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="id">
+ <number>1</number>
+ </property>
+ <property name="maxValue">
+ <number>1</number>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ </widget>
+ <widget class="DoubleLabel" row="0" column="1">
+ <property name="name">
+ <cstring>P0label</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>4</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="frame">
+ <bool>true</bool>
+ </property>
+ <property name="id">
+ <number>0</number>
+ </property>
+ <property name="value">
+ <number>0</number>
+ </property>
+ <property name="minValue">
+ <number>0</number>
+ </property>
+ <property name="maxValue">
+ <number>1</number>
+ </property>
+ <property name="precision">
+ <number>4</number>
+ </property>
+ </widget>
+ <widget class="DoubleLabel" row="1" column="1">
+ <property name="name">
+ <cstring>P1label</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>4</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="frame">
+ <bool>true</bool>
+ </property>
+ <property name="id">
+ <number>1</number>
+ </property>
+ <property name="value">
+ <number>0</number>
+ </property>
+ <property name="minValue">
+ <number>0</number>
+ </property>
+ <property name="maxValue">
+ <number>1</number>
+ </property>
+ <property name="precision">
+ <number>4</number>
+ </property>
+ </widget>
+ <widget class="QLabel" row="1" column="0">
+ <property name="name">
+ <cstring>textLabel2</cstring>
+ </property>
+ <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>
+ <widget class="Slider" row="2" column="2">
+ <property name="name">
+ <cstring>P2slider</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>7</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>10</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="id">
+ <number>2</number>
+ </property>
+ <property name="maxValue">
+ <number>1</number>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ </widget>
+ <widget class="DoubleLabel" row="2" column="1">
+ <property name="name">
+ <cstring>P2label</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>4</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="frame">
+ <bool>true</bool>
+ </property>
+ <property name="id">
+ <number>2</number>
+ </property>
+ <property name="value">
+ <number>0</number>
+ </property>
+ <property name="minValue">
+ <number>0</number>
+ </property>
+ <property name="maxValue">
+ <number>1</number>
+ </property>
+ <property name="precision">
+ <number>4</number>
+ </property>
+ </widget>
+ <widget class="QLabel" row="2" column="0">
+ <property name="name">
+ <cstring>textLabel3</cstring>
+ </property>
+ <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>
+ <widget class="Slider" row="0" column="2">
+ <property name="name">
+ <cstring>P0slider</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>10</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="id">
+ <number>0</number>
+ </property>
+ <property name="maxValue">
+ <number>1</number>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ </widget>
+ </grid>
+</widget>
+<layoutdefaults spacing="6" margin="11"/>
+</UI>
diff --git a/muse2/share/plugins/2142.ui b/muse2/share/plugins/2142.ui
new file mode 100644
index 00000000..2a0ae35f
--- /dev/null
+++ b/muse2/share/plugins/2142.ui
@@ -0,0 +1,520 @@
+<!DOCTYPE UI><UI version="3.2" stdsetdef="1">
+<class>freeverb</class>
+<widget class="QWidget">
+ <property name="name">
+ <cstring>freeverb</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>1</y>
+ <width>512</width>
+ <height>205</height>
+ </rect>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>4</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>400</width>
+ <height>200</height>
+ </size>
+ </property>
+ <property name="caption">
+ <string>Tap-Reverberator</string>
+ </property>
+ <grid>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QLabel" row="0" column="0">
+ <property name="name">
+ <cstring>textLabel1</cstring>
+ </property>
+ <property name="text">
+ <string>Decay [ms]</string>
+ </property>
+ </widget>
+ <widget class="DoubleLabel" row="0" column="1">
+ <property name="name">
+ <cstring>P0label</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="frame">
+ <bool>true</bool>
+ </property>
+ <property name="id">
+ <number>0</number>
+ </property>
+ <property name="value">
+ <number>0</number>
+ </property>
+ <property name="minValue">
+ <number>0</number>
+ </property>
+ <property name="maxValue">
+ <number>10000</number>
+ </property>
+ <property name="precision">
+ <number>0</number>
+ </property>
+ </widget>
+ <widget class="DoubleLabel" row="1" column="1">
+ <property name="name">
+ <cstring>P1label</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="frame">
+ <bool>true</bool>
+ </property>
+ <property name="id">
+ <number>1</number>
+ </property>
+ <property name="value">
+ <number>0</number>
+ </property>
+ <property name="minValue">
+ <number>-70</number>
+ </property>
+ <property name="maxValue">
+ <number>10</number>
+ </property>
+ <property name="suffix">
+ <string>dB</string>
+ </property>
+ <property name="precision">
+ <number>2</number>
+ </property>
+ </widget>
+ <widget class="QLabel" row="1" column="0">
+ <property name="name">
+ <cstring>textLabel2</cstring>
+ </property>
+ <property name="text">
+ <string>Dry Level [dB]</string>
+ </property>
+ </widget>
+ <widget class="DoubleLabel" row="2" column="1">
+ <property name="name">
+ <cstring>P2label</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="frame">
+ <bool>true</bool>
+ </property>
+ <property name="id">
+ <number>2</number>
+ </property>
+ <property name="value">
+ <number>0</number>
+ </property>
+ <property name="minValue">
+ <number>-70</number>
+ </property>
+ <property name="maxValue">
+ <number>10</number>
+ </property>
+ <property name="suffix">
+ <string>dB</string>
+ </property>
+ <property name="precision">
+ <number>2</number>
+ </property>
+ </widget>
+ <widget class="QLabel" row="2" column="0">
+ <property name="name">
+ <cstring>textLabel3</cstring>
+ </property>
+ <property name="text">
+ <string>Wet Level [dB]</string>
+ </property>
+ </widget>
+ <widget class="Slider" row="1" column="2" rowspan="1" colspan="2">
+ <property name="name">
+ <cstring>P1Slider</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>7</hsizetype>
+ <vsizetype>5</vsizetype>
+ <horstretch>10</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="id">
+ <number>1</number>
+ </property>
+ <property name="minValue">
+ <number>-70</number>
+ </property>
+ <property name="maxValue">
+ <number>10</number>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ </widget>
+ <widget class="Slider" row="2" column="2" rowspan="1" colspan="2">
+ <property name="name">
+ <cstring>P2Slider</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>7</hsizetype>
+ <vsizetype>5</vsizetype>
+ <horstretch>10</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="id">
+ <number>2</number>
+ </property>
+ <property name="minValue">
+ <number>-70</number>
+ </property>
+ <property name="maxValue">
+ <number>10</number>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ </widget>
+ <widget class="Slider" row="0" column="2" rowspan="1" colspan="2">
+ <property name="name">
+ <cstring>P0Slider</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>7</hsizetype>
+ <vsizetype>5</vsizetype>
+ <horstretch>10</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="id">
+ <number>0</number>
+ </property>
+ <property name="maxValue">
+ <number>10000</number>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ </widget>
+ <widget class="QLayoutWidget" row="4" column="2" rowspan="2" colspan="1">
+ <property name="name">
+ <cstring>layout1</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>textLabel1_2</cstring>
+ </property>
+ <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>
+ </hbox>
+ </widget>
+ <widget class="QComboBox" row="4" column="3" rowspan="2" colspan="1">
+ <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>
+ <property name="name">
+ <cstring>P7presetCombo</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ </widget>
+ <widget class="QCheckBox" row="3" column="0" rowspan="1" colspan="2">
+ <property name="name">
+ <cstring>P3checkbox</cstring>
+ </property>
+ <property name="text">
+ <string>Comb Filters</string>
+ </property>
+ </widget>
+ <widget class="QCheckBox" row="4" column="0" rowspan="1" colspan="2">
+ <property name="name">
+ <cstring>P4checkbox</cstring>
+ </property>
+ <property name="text">
+ <string>Allpass Filters</string>
+ </property>
+ </widget>
+ <widget class="QCheckBox" row="5" column="0" rowspan="1" colspan="2">
+ <property name="name">
+ <cstring>P5checkbox</cstring>
+ </property>
+ <property name="text">
+ <string>Bandpass Filters</string>
+ </property>
+ </widget>
+ <widget class="QCheckBox" row="3" column="2" rowspan="1" colspan="2">
+ <property name="name">
+ <cstring>P6checkBox</cstring>
+ </property>
+ <property name="text">
+ <string>Enhanced Stereo</string>
+ </property>
+ </widget>
+ </grid>
+</widget>
+<layoutdefaults spacing="6" margin="11"/>
+</UI>
diff --git a/muse2/share/plugins/Makefile.am b/muse2/share/plugins/Makefile.am
new file mode 100644
index 00000000..585ac69f
--- /dev/null
+++ b/muse2/share/plugins/Makefile.am
@@ -0,0 +1,5 @@
+EXTRA_DIST = $(wildcard *.ui)
+
+pluginspkgdata_DATA = $(EXTRA_DIST)
+
+pluginspkgdatadir = $(pkgdatadir)/plugins
diff --git a/muse2/share/plugins/Makefile.in b/muse2/share/plugins/Makefile.in
new file mode 100644
index 00000000..e96d7a0f
--- /dev/null
+++ b/muse2/share/plugins/Makefile.in
@@ -0,0 +1,465 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = share/plugins
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal-include.m4 \
+ $(top_srcdir)/m4/alsa.m4 $(top_srcdir)/m4/docbook.m4 \
+ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
+ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
+ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+SOURCES =
+DIST_SOURCES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__installdirs = "$(DESTDIR)$(pluginspkgdatadir)"
+DATA = $(pluginspkgdata_DATA)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ALSA_CFLAGS = @ALSA_CFLAGS@
+ALSA_LIBS = @ALSA_LIBS@
+AMTAR = @AMTAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DOCBOOKSTYLE = @DOCBOOKSTYLE@
+DOCBOOKTARGETS = @DOCBOOKTARGETS@
+DOT = @DOT@
+DOTPATH = @DOTPATH@
+DOXYGEN = @DOXYGEN@
+DOXYGEN_TREEVIEW = @DOXYGEN_TREEVIEW@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+FLUIDSYNTHDIRS = @FLUIDSYNTHDIRS@
+FST_CFLAGS = @FST_CFLAGS@
+FST_LIBS = @FST_LIBS@
+Fluidsynth_CFLAGS = @Fluidsynth_CFLAGS@
+Fluidsynth_LIBS = @Fluidsynth_LIBS@
+GIVERTCAP = @GIVERTCAP@
+GREP = @GREP@
+HAVEDOT = @HAVEDOT@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JACK_CFLAGS = @JACK_CFLAGS@
+JACK_LIBS = @JACK_LIBS@
+JADE = @JADE@
+LASH_CFLAGS = @LASH_CFLAGS@
+LASH_LIBS = @LASH_LIBS@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LO_CFLAGS = @LO_CFLAGS@
+LO_LIBS = @LO_LIBS@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+MUSECXXFLAGS = @MUSECXXFLAGS@
+NM = @NM@
+NMEDIT = @NMEDIT@
+NSGMLS = @NSGMLS@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PCH = @PCH@
+PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+PYTHON = @PYTHON@
+PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
+PYTHON_INCLUDES = @PYTHON_INCLUDES@
+PYTHON_LIB = @PYTHON_LIB@
+PYTHON_PLATFORM = @PYTHON_PLATFORM@
+PYTHON_PREFIX = @PYTHON_PREFIX@
+PYTHON_VERSION = @PYTHON_VERSION@
+QTDIR_BIN = @QTDIR_BIN@
+QTDIR_INC = @QTDIR_INC@
+QT_LIBS = @QT_LIBS@
+RANLIB = @RANLIB@
+SAMPLERATE_CFLAGS = @SAMPLERATE_CFLAGS@
+SAMPLERATE_LIBS = @SAMPLERATE_LIBS@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SNDFILE_CFLAGS = @SNDFILE_CFLAGS@
+SNDFILE_LIBS = @SNDFILE_LIBS@
+STRIP = @STRIP@
+SUIDBUILD = @SUIDBUILD@
+SUIDINSTALL = @SUIDINSTALL@
+USE_SSE = @USE_SSE@
+UUID_CFLAGS = @UUID_CFLAGS@
+UUID_LIBS = @UUID_LIBS@
+VERSION = @VERSION@
+XMKMF = @XMKMF@
+X_CFLAGS = @X_CFLAGS@
+X_EXTRA_LIBS = @X_EXTRA_LIBS@
+X_LIBS = @X_LIBS@
+X_PRE_LIBS = @X_PRE_LIBS@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+have_docbook = @have_docbook@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+lt_ECHO = @lt_ECHO@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+pkgpyexecdir = @pkgpyexecdir@
+pkgpythondir = @pkgpythondir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+pyexecdir = @pyexecdir@
+pythondir = @pythondir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+synth_fluid = @synth_fluid@
+synth_fluidsynth = @synth_fluidsynth@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+EXTRA_DIST = $(wildcard *.ui)
+pluginspkgdata_DATA = $(EXTRA_DIST)
+pluginspkgdatadir = $(pkgdatadir)/plugins
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu share/plugins/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu share/plugins/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+install-pluginspkgdataDATA: $(pluginspkgdata_DATA)
+ @$(NORMAL_INSTALL)
+ test -z "$(pluginspkgdatadir)" || $(MKDIR_P) "$(DESTDIR)$(pluginspkgdatadir)"
+ @list='$(pluginspkgdata_DATA)'; test -n "$(pluginspkgdatadir)" || list=; \
+ for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pluginspkgdatadir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(pluginspkgdatadir)" || exit $$?; \
+ done
+
+uninstall-pluginspkgdataDATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(pluginspkgdata_DATA)'; test -n "$(pluginspkgdatadir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ test -n "$$files" || exit 0; \
+ echo " ( cd '$(DESTDIR)$(pluginspkgdatadir)' && rm -f" $$files ")"; \
+ cd "$(DESTDIR)$(pluginspkgdatadir)" && rm -f $$files
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile $(DATA)
+installdirs:
+ for dir in "$(DESTDIR)$(pluginspkgdatadir)"; do \
+ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-pluginspkgdataDATA
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-pluginspkgdataDATA
+
+.MAKE: install-am install-strip
+
+.PHONY: all all-am check check-am clean clean-generic clean-libtool \
+ distclean distclean-generic distclean-libtool distdir dvi \
+ dvi-am html html-am info info-am install install-am \
+ install-data install-data-am install-dvi install-dvi-am \
+ install-exec install-exec-am install-html install-html-am \
+ install-info install-info-am install-man install-pdf \
+ install-pdf-am install-pluginspkgdataDATA install-ps \
+ install-ps-am install-strip installcheck installcheck-am \
+ installdirs maintainer-clean maintainer-clean-generic \
+ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
+ ps ps-am uninstall uninstall-am uninstall-pluginspkgdataDATA
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/muse2/share/pybridge/Makefile.am b/muse2/share/pybridge/Makefile.am
new file mode 100644
index 00000000..dc323905
--- /dev/null
+++ b/muse2/share/pybridge/Makefile.am
@@ -0,0 +1,6 @@
+EXTRA_DIST = $(wildcard *.py)
+
+pybridgepkgdata_DATA = $(EXTRA_DIST)
+
+pybridgepkgdatadir = $(pkgdatadir)/pybridge
+
diff --git a/muse2/share/pybridge/Makefile.in b/muse2/share/pybridge/Makefile.in
new file mode 100644
index 00000000..8fe22658
--- /dev/null
+++ b/muse2/share/pybridge/Makefile.in
@@ -0,0 +1,466 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = share/pybridge
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal-include.m4 \
+ $(top_srcdir)/m4/alsa.m4 $(top_srcdir)/m4/docbook.m4 \
+ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
+ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
+ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+SOURCES =
+DIST_SOURCES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__installdirs = "$(DESTDIR)$(pybridgepkgdatadir)"
+DATA = $(pybridgepkgdata_DATA)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ALSA_CFLAGS = @ALSA_CFLAGS@
+ALSA_LIBS = @ALSA_LIBS@
+AMTAR = @AMTAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DOCBOOKSTYLE = @DOCBOOKSTYLE@
+DOCBOOKTARGETS = @DOCBOOKTARGETS@
+DOT = @DOT@
+DOTPATH = @DOTPATH@
+DOXYGEN = @DOXYGEN@
+DOXYGEN_TREEVIEW = @DOXYGEN_TREEVIEW@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+FLUIDSYNTHDIRS = @FLUIDSYNTHDIRS@
+FST_CFLAGS = @FST_CFLAGS@
+FST_LIBS = @FST_LIBS@
+Fluidsynth_CFLAGS = @Fluidsynth_CFLAGS@
+Fluidsynth_LIBS = @Fluidsynth_LIBS@
+GIVERTCAP = @GIVERTCAP@
+GREP = @GREP@
+HAVEDOT = @HAVEDOT@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JACK_CFLAGS = @JACK_CFLAGS@
+JACK_LIBS = @JACK_LIBS@
+JADE = @JADE@
+LASH_CFLAGS = @LASH_CFLAGS@
+LASH_LIBS = @LASH_LIBS@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LO_CFLAGS = @LO_CFLAGS@
+LO_LIBS = @LO_LIBS@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+MUSECXXFLAGS = @MUSECXXFLAGS@
+NM = @NM@
+NMEDIT = @NMEDIT@
+NSGMLS = @NSGMLS@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PCH = @PCH@
+PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+PYTHON = @PYTHON@
+PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
+PYTHON_INCLUDES = @PYTHON_INCLUDES@
+PYTHON_LIB = @PYTHON_LIB@
+PYTHON_PLATFORM = @PYTHON_PLATFORM@
+PYTHON_PREFIX = @PYTHON_PREFIX@
+PYTHON_VERSION = @PYTHON_VERSION@
+QTDIR_BIN = @QTDIR_BIN@
+QTDIR_INC = @QTDIR_INC@
+QT_LIBS = @QT_LIBS@
+RANLIB = @RANLIB@
+SAMPLERATE_CFLAGS = @SAMPLERATE_CFLAGS@
+SAMPLERATE_LIBS = @SAMPLERATE_LIBS@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SNDFILE_CFLAGS = @SNDFILE_CFLAGS@
+SNDFILE_LIBS = @SNDFILE_LIBS@
+STRIP = @STRIP@
+SUIDBUILD = @SUIDBUILD@
+SUIDINSTALL = @SUIDINSTALL@
+USE_SSE = @USE_SSE@
+UUID_CFLAGS = @UUID_CFLAGS@
+UUID_LIBS = @UUID_LIBS@
+VERSION = @VERSION@
+XMKMF = @XMKMF@
+X_CFLAGS = @X_CFLAGS@
+X_EXTRA_LIBS = @X_EXTRA_LIBS@
+X_LIBS = @X_LIBS@
+X_PRE_LIBS = @X_PRE_LIBS@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+have_docbook = @have_docbook@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+lt_ECHO = @lt_ECHO@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+pkgpyexecdir = @pkgpyexecdir@
+pkgpythondir = @pkgpythondir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+pyexecdir = @pyexecdir@
+pythondir = @pythondir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+synth_fluid = @synth_fluid@
+synth_fluidsynth = @synth_fluidsynth@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+EXTRA_DIST = $(wildcard *.py)
+pybridgepkgdata_DATA = $(EXTRA_DIST)
+pybridgepkgdatadir = $(pkgdatadir)/pybridge
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu share/pybridge/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu share/pybridge/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+install-pybridgepkgdataDATA: $(pybridgepkgdata_DATA)
+ @$(NORMAL_INSTALL)
+ test -z "$(pybridgepkgdatadir)" || $(MKDIR_P) "$(DESTDIR)$(pybridgepkgdatadir)"
+ @list='$(pybridgepkgdata_DATA)'; test -n "$(pybridgepkgdatadir)" || list=; \
+ for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pybridgepkgdatadir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(pybridgepkgdatadir)" || exit $$?; \
+ done
+
+uninstall-pybridgepkgdataDATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(pybridgepkgdata_DATA)'; test -n "$(pybridgepkgdatadir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ test -n "$$files" || exit 0; \
+ echo " ( cd '$(DESTDIR)$(pybridgepkgdatadir)' && rm -f" $$files ")"; \
+ cd "$(DESTDIR)$(pybridgepkgdatadir)" && rm -f $$files
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile $(DATA)
+installdirs:
+ for dir in "$(DESTDIR)$(pybridgepkgdatadir)"; do \
+ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-pybridgepkgdataDATA
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-pybridgepkgdataDATA
+
+.MAKE: install-am install-strip
+
+.PHONY: all all-am check check-am clean clean-generic clean-libtool \
+ distclean distclean-generic distclean-libtool distdir dvi \
+ dvi-am html html-am info info-am install install-am \
+ install-data install-data-am install-dvi install-dvi-am \
+ install-exec install-exec-am install-html install-html-am \
+ install-info install-info-am install-man install-pdf \
+ install-pdf-am install-ps install-ps-am \
+ install-pybridgepkgdataDATA install-strip installcheck \
+ installcheck-am installdirs maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-generic \
+ mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am \
+ uninstall-pybridgepkgdataDATA
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/muse2/share/pybridge/Pyro_NS_URI b/muse2/share/pybridge/Pyro_NS_URI
new file mode 100644
index 00000000..8e304cc1
--- /dev/null
+++ b/muse2/share/pybridge/Pyro_NS_URI
@@ -0,0 +1 @@
+PYRO://127.0.1.1:9090/7f0001010beb68ea2286bbe6686be546
diff --git a/muse2/share/pybridge/examples/addpartexample.py b/muse2/share/pybridge/examples/addpartexample.py
new file mode 100644
index 00000000..65c41bdf
--- /dev/null
+++ b/muse2/share/pybridge/examples/addpartexample.py
@@ -0,0 +1,29 @@
+"""
+//=========================================================
+// MusE
+// Linux Music Editor
+// (C) Copyright 2009 Mathias Gyllengahm (lunar_shuttle@users.sf.net)
+//=========================================================
+"""
+
+import Pyro.core
+muse=Pyro.core.getProxyForURI('PYRONAME://:Default.muse')
+
+#
+# Example on how to insert a new note, outcommented since I run the script several times and it inserts so many notes :-)
+# But it works!
+#
+
+
+rpos = muse.getRPos()
+lpos = muse.getLPos()
+
+event = {'data':[61,100,0],
+ 'tick':0, # Relative offset of part - 0 = beginning of part
+ 'type':"note",
+ 'len':rpos - lpos}
+
+part = {'events': [event],
+ 'tick': lpos}
+muse.createPart("Track 1", lpos, rpos - lpos, part)
+
diff --git a/muse2/share/pybridge/examples/addtrack.py b/muse2/share/pybridge/examples/addtrack.py
new file mode 100644
index 00000000..116b35c0
--- /dev/null
+++ b/muse2/share/pybridge/examples/addtrack.py
@@ -0,0 +1,33 @@
+"""
+//=========================================================
+// MusE
+// Linux Music Editor
+// (C) Copyright 2009 Mathias Gyllengahm (lunar_shuttle@users.sf.net)
+//=========================================================
+"""
+
+import Pyro.core
+import time
+
+muse=Pyro.core.getProxyForURI('PYRONAME://:Default.muse')
+
+for j in range(0,5):
+ for i in range(0,30):
+ muse.addMidiTrack("amiditrack" + str(i))
+ for i in range(0,30):
+ muse.deleteTrack("amiditrack" + str(i))
+
+for i in range(0, 10):
+ print i
+ muse.addMidiTrack("amiditrack")
+ muse.addWaveTrack("awavetrack")
+ muse.addOutput("anoutput")
+ muse.addInput("aninput")
+ muse.setMute("aninput", False)
+ muse.setAudioTrackVolume("aninput",1.0)
+ muse.deleteTrack("amiditrack")
+ muse.deleteTrack("awavetrack")
+ muse.deleteTrack("anoutput")
+ muse.deleteTrack("aninput")
+ time.sleep(1)
+
diff --git a/muse2/share/pybridge/examples/ctrlexample.py b/muse2/share/pybridge/examples/ctrlexample.py
new file mode 100644
index 00000000..9e28afad
--- /dev/null
+++ b/muse2/share/pybridge/examples/ctrlexample.py
@@ -0,0 +1,26 @@
+"""
+//=========================================================
+// MusE
+// Linux Music Editor
+// (C) Copyright 2009 Mathias Gyllengahm (lunar_shuttle@users.sf.net)
+//=========================================================
+"""
+
+import Pyro.core
+import time
+
+muse=Pyro.core.getProxyForURI('PYRONAME://:Default.muse')
+#for i in range(0,10):
+# print "Ctrl no " + str(i) + " = " + str(muse.getMidiControllerValue("Track 1", i))
+
+"""
+for i in range(0,127):
+ muse.setMidiControllerValue("Track 1", 7, i)
+ time.sleep(0.1)
+"""
+
+muse.setMidiControllerValue("Track 1", 7, 56)
+print muse.getMidiControllerValue("Track 1", 7)
+print muse.getAudioTrackVolume("Out 1")
+muse.setAudioTrackVolume("Out 1", -1.0)
+
diff --git a/muse2/share/pybridge/examples/effecttoggle.py b/muse2/share/pybridge/examples/effecttoggle.py
new file mode 100644
index 00000000..6feb4bca
--- /dev/null
+++ b/muse2/share/pybridge/examples/effecttoggle.py
@@ -0,0 +1,23 @@
+"""
+//=========================================================
+// MusE
+// Linux Music Editor
+// (C) Copyright 2009 Mathias Gyllengahm (lunar_shuttle@users.sf.net)
+//=========================================================
+"""
+
+import Pyro.core
+import time
+
+muse=Pyro.core.getProxyForURI('PYRONAME://:Default.muse')
+trackname = "wavtrack"
+
+fxs = muse.getTrackEffects(trackname)
+print fxs
+
+for i in range (0,10):
+ muse.toggleTrackEffect(trackname,0, False)
+ time.sleep(1)
+ muse.toggleTrackEffect(trackname,0, True)
+ time.sleep(1)
+
diff --git a/muse2/share/pybridge/examples/mute.py b/muse2/share/pybridge/examples/mute.py
new file mode 100644
index 00000000..5732a7f8
--- /dev/null
+++ b/muse2/share/pybridge/examples/mute.py
@@ -0,0 +1,20 @@
+"""
+//=========================================================
+// MusE
+// Linux Music Editor
+// (C) Copyright 2009 Mathias Gyllengahm (lunar_shuttle@users.sf.net)
+//=========================================================
+"""
+
+import Pyro.core
+import time
+
+muse=Pyro.core.getProxyForURI('PYRONAME://:Default.muse')
+for i in range(0,10):
+ muse.setMute("Strings", False)
+ muse.setMute("Lead1", True)
+ time.sleep(1)
+ muse.setMute("Strings", True)
+ muse.setMute("Lead1", False)
+ time.sleep(1)
+
diff --git a/muse2/share/pybridge/examples/repeatpart.py b/muse2/share/pybridge/examples/repeatpart.py
new file mode 100644
index 00000000..e2b8ff31
--- /dev/null
+++ b/muse2/share/pybridge/examples/repeatpart.py
@@ -0,0 +1,61 @@
+"""
+//=========================================================
+// MusE
+// Linux Music Editor
+// (C) Copyright 2009 Mathias Gyllengahm (lunar_shuttle@users.sf.net)
+//=========================================================
+"""
+
+import Pyro.core
+import sys
+import time
+
+SLEEPIVAL=0.3
+
+def advanceToNextSection(muse, newlpos, newrpos):
+ print "Advancing..."
+ currpos = muse.getRPos()
+ curlpos = muse.getLPos()
+ curpos = muse.getCPos()
+ muse.setLoop(False)
+
+ while curpos < currpos:
+ time.sleep(SLEEPIVAL)
+ curpos = muse.getCPos()
+ print "Leaving current section..."
+ muse.setRPos(newrpos)
+ curpos = muse.getCPos()
+
+ while curpos < newlpos:
+ time.sleep(SLEEPIVAL)
+ curpos = muse.getCPos()
+ print "Entered new section"
+ muse.setLPos(newlpos)
+ muse.setLoop(True)
+ return
+
+muse=Pyro.core.getProxyForURI('PYRONAME://:Default.muse')
+muse.stopPlay()
+parts = muse.getParts("Track 1")
+muse.setLPos(parts[0]['tick'])
+muse.setRPos(parts[0]['tick'] + parts[0]['len'])
+muse.setCPos(0)
+time.sleep(0.2) # Hmmm, don't like it but it seems necessary to pause a short while before starting play
+muse.setLoop(True)
+muse.startPlay()
+
+for i in range(1, len(parts)):
+ part = parts[i]
+ tick = part['tick']
+ len = part['len']
+ print "Press enter to advance to next section/part!"
+ sys.stdin.read(1)
+ advanceToNextSection(muse, tick, tick + len)
+
+print "This is the final section. Disabling loop and leaving..."
+muse.setLoop(False)
+
+#print "Press enter to leave final section"
+#sys.stdin.read(1)
+#muse.setLoop(False)
+
diff --git a/muse2/share/pybridge/examples/setpositionexample.py b/muse2/share/pybridge/examples/setpositionexample.py
new file mode 100644
index 00000000..476410d9
--- /dev/null
+++ b/muse2/share/pybridge/examples/setpositionexample.py
@@ -0,0 +1,35 @@
+"""
+//=========================================================
+// MusE
+// Linux Music Editor
+// (C) Copyright 2009 Mathias Gyllengahm (lunar_shuttle@users.sf.net)
+//=========================================================
+"""
+
+import Pyro.core
+import time
+muse=Pyro.core.getProxyForURI('PYRONAME://:Default.muse')
+parts = muse.getParts("Track 1")
+
+ptick = parts[0]['tick']
+len = parts[0]['len']
+muse.setLPos(ptick)
+muse.setRPos(ptick + len)
+muse.setCPos(ptick + len / 2)
+
+songlen = muse.getSongLen()
+#print "Song length: " + str(songlen)
+
+#
+# Copy first part to after current song length, thus increase song length with length of first part
+#
+newsonglen = songlen + parts[0]['len']
+muse.setSongLen(newsonglen)
+muse.createPart("Track 1", songlen + 1, parts[0]['len'], parts[0])
+time.sleep(1)
+
+lastpart = muse.getParts("Track 1").pop()
+print lastpart['id']
+muse.deletePart(lastpart['id'])
+print muse.getDivision()
+
diff --git a/muse2/share/pybridge/examples/tempoexample.py b/muse2/share/pybridge/examples/tempoexample.py
new file mode 100644
index 00000000..ed12638d
--- /dev/null
+++ b/muse2/share/pybridge/examples/tempoexample.py
@@ -0,0 +1,6 @@
+import Pyro.core
+
+muse=Pyro.core.getProxyForURI('PYRONAME://:Default.muse')
+
+print "Tempo: " + str(muse.getTempo(0))
+
diff --git a/muse2/share/pybridge/examples/trackparamchangeexample.py b/muse2/share/pybridge/examples/trackparamchangeexample.py
new file mode 100644
index 00000000..0681ccb4
--- /dev/null
+++ b/muse2/share/pybridge/examples/trackparamchangeexample.py
@@ -0,0 +1,21 @@
+"""
+//=========================================================
+// MusE
+// Linux Music Editor
+// (C) Copyright 2009 Mathias Gyllengahm (lunar_shuttle@users.sf.net)
+//=========================================================
+"""
+import Pyro.core
+import time
+
+muse=Pyro.core.getProxyForURI('PYRONAME://:Default.muse')
+
+muse.setMidiTrackParameter("Track 1", "velocity",10)
+muse.setMidiTrackParameter("Track 1", "compression",101)
+muse.setMidiTrackParameter("Track 1", "delay",2)
+muse.setMidiTrackParameter("Track 1", "transposition",1)
+
+for i in range(-127, 127):
+ muse.setMidiTrackParameter("Track 1", "velocity",i)
+ time.sleep(0.1)
+
diff --git a/muse2/share/pybridge/musepclient.py b/muse2/share/pybridge/musepclient.py
new file mode 100644
index 00000000..dc87e4e8
--- /dev/null
+++ b/muse2/share/pybridge/musepclient.py
@@ -0,0 +1,17 @@
+#
+# Example client for MusE Pyro bridge (Python Remote Object)
+#
+import Pyro.core
+import time
+
+muse=Pyro.core.getProxyForURI('PYRONAME://:Default.muse')
+print "Current position is: " + str(muse.getCPos())
+muse.startPlay()
+time.sleep(1) # Sleep one second
+muse.stopPlay()
+print "New position is: " + str(muse.getCPos())
+muse.rewindStart()
+print "Pos after rewind is: " + str(muse.getCPos())
+print "Lpos, Rpos: " + str(muse.getLPos()) + ":" + str(muse.getRPos())
+
+
diff --git a/muse2/share/pybridge/museplauncher.py b/muse2/share/pybridge/museplauncher.py
new file mode 100644
index 00000000..24206213
--- /dev/null
+++ b/muse2/share/pybridge/museplauncher.py
@@ -0,0 +1,257 @@
+"""
+//=========================================================
+// MusE
+// Linux Music Editor
+// (C) Copyright 2009 Mathias Gyllengahm (lunar_shuttle@users.sf.net)
+//=========================================================
+
+This file is used by MusE for launching a Pyro name service and connecting a remote object to the global Python functions
+"""
+
+import Pyro.naming
+import Pyro.core
+from Pyro.errors import PyroError,NamingError
+import sys, time
+import threading
+
+#
+# Note: this module, 'muse' is activated from within MusE - thus it is not possible to execute the scripts without a running
+# MusE instance
+#
+import muse
+
+#
+# Class which implements the functionality that is used remotely.
+# In short just repeating the global functions in the muse-module
+#
+# TODO: It should be better to skip this class completely by implementing
+# functionality as a class in pyapi.cpp instead of global functions
+# that need to be wrapped like this
+#
+class MusE:
+ def getCPos(self): # Get current position
+ return muse.getCPos()
+
+ def startPlay(self): # Start playback
+ return muse.startPlay()
+
+ def stopPlay(self): # Stop playback
+ return muse.stopPlay()
+
+ def rewindStart(self): # Rewind current position to start
+ return muse.rewindStart()
+
+ def getLPos(self): # Get position of left locator
+ return muse.getLPos()
+
+ def getRPos(self): # Get position of right locator
+ return muse.getRPos()
+
+ def getTempo(self, tick): #Get tempo at particular tick
+ return muse.getTempo(tick)
+
+ def getTrackNames(self): # get track names
+ return muse.getTrackNames()
+
+ def getParts(self, trackname): # get parts in a particular track
+ return muse.getParts(trackname)
+
+ def createPart(self, trackname, starttick, lenticks, part): # create part in track
+ return muse.createPart(trackname, starttick, lenticks, part)
+
+ def modifyPart(self, part): # modify a part (the part to be modified is specified by its id
+ return muse.modifyPart((part))
+
+ def deletePart(self, part): # delete a part
+ return muse.deletePart((part))
+
+ def getSelectedTrack(self): # get first selected track in arranger window
+ return muse.getSelectedTrack()
+
+ def importPart(self, trackname, filename, tick): # import part file to a track at a given position
+ return muse.importPart(trackname, filename, tick)
+
+ def setCPos(self, tick): # set current position
+ return muse.setPos(0, tick)
+
+ def setLPos(self, tick): # set left locator
+ return muse.setPos(1, tick)
+
+ def setRPos(self, tick): # set right locator
+ return muse.setPos(2, tick)
+
+ def setSongLen(self, ticks): # set song length
+ return muse.setSongLen(ticks)
+
+ def getSongLen(self): # get song length
+ return muse.getSongLen()
+
+ def getDivision(self): # get division (ticks per 1/4, or per beat?)
+ return muse.getDivision()
+
+ def setMidiTrackParameter(self, trackname, paramname, value): # set midi track parameter (velocity, compression, len, transpose)
+ return muse.setMidiTrackParameter(trackname, paramname, value);
+
+ def getLoop(self): # get loop flag
+ return muse.getLoop()
+
+ def setLoop(self, loopFlag): # set loop flag
+ return muse.setLoop(loopFlag)
+
+ def getMute(self, trackname): # get track mute parameter
+ return muse.getMute(trackname)
+
+ def setMute(self, trackname, enabled): # set track mute parameter
+ return muse.setMute(trackname, enabled)
+
+ def setVolume(self, trackname, volume): # set mixer volume
+ return muse.setVolume(trackname, volume)
+
+ def getMidiControllerValue(self, trackname, ctrlno): # get a particular midi controller value for a track
+ return muse.getMidiControllerValue(trackname, ctrlno)
+
+ def setMidiControllerValue(self, trackname, ctrlno, value): # set a particular midi controller value for a track
+ return muse.setMidiControllerValue(trackname, ctrlno, value)
+
+ def setAudioTrackVolume(self, trackname, dvol): # set volume for audio track
+ return muse.setAudioTrackVolume(trackname, dvol)
+
+ def getAudioTrackVolume(self, trackname): # get volume for audio track
+ return muse.getAudioTrackVolume(trackname)
+
+ def getTrackEffects(self, trackname): # get effect names for an audio track
+ return muse.getTrackEffects(trackname)
+
+ def toggleTrackEffect(self, trackname, effectno, onoff): # toggle specific effect on/off
+ return muse.toggleTrackEffect(trackname, effectno, onoff)
+
+ def findNewTrack(self, oldtracknames): #internal function
+ tracknames = muse.getTrackNames()
+ for trackname in tracknames:
+ if trackname in oldtracknames:
+ continue
+
+ return trackname
+
+ def changeTrackName(self, trackname, newname): #change track name
+ return muse.changeTrackName(trackname, newname)
+
+ def nameNewTrack(self, newname, oldtracknames):# Internal function, wait until new track shows up in tracknames, then rename it
+ tmpname = None
+ for i in range(0,100):
+ tmpname = self.findNewTrack(oldtracknames)
+ if tmpname == None:
+ time.sleep(0.1)
+ continue
+ else:
+ self.changeTrackName(tmpname, newname)
+ time.sleep(0.1) # Ouch!!
+ break
+
+
+ def addMidiTrack(self, trackname): # add midi track
+ oldtracknames = muse.getTrackNames()
+ if trackname in oldtracknames:
+ return None
+
+ muse.addMidiTrack()
+ self.nameNewTrack(trackname, oldtracknames)
+
+
+ def addWaveTrack(self, trackname): # add wave track
+ oldtracknames = muse.getTrackNames()
+ if trackname in oldtracknames:
+ return None
+
+ muse.addWaveTrack()
+ self.nameNewTrack(trackname, oldtracknames)
+
+ def addInput(self, trackname): # add audio input
+ oldtracknames = muse.getTrackNames()
+ if trackname in oldtracknames:
+ return None
+
+ muse.addInput()
+ self.nameNewTrack(trackname, oldtracknames)
+
+ def addOutput(self, trackname): # add audio output
+ oldtracknames = muse.getTrackNames()
+ if trackname in oldtracknames:
+ return None
+
+ muse.addOutput()
+ self.nameNewTrack(trackname, oldtracknames)
+
+ def addGroup(self, trackname): # add audio group
+ oldtracknames = muse.getTrackNames()
+ if trackname in oldtracknames:
+ return None
+
+ muse.addGroup()
+ self.nameNewTrack(trackname, oldtracknames)
+
+ def deleteTrack(self, trackname): # delete a track
+ tracknames = muse.getTrackNames()
+ if trackname not in tracknames:
+ return False
+
+ muse.deleteTrack(trackname)
+
+# def getOutputRoute(self, trackname):
+# return muse.getOutputRoute(trackname)
+
+class NameServiceThread(threading.Thread):
+ def __init__(self):
+ threading.Thread.__init__(self)
+ self.starter = Pyro.naming.NameServerStarter()
+
+ def run(self):
+ self.starter.start()
+
+ def verifyRunning(self):
+ return self.starter.waitUntilStarted(10)
+
+#
+# museclass Pyro object
+#
+class museclass(Pyro.core.ObjBase, MusE):
+ pass
+
+#
+# main server program
+#
+def main():
+ Pyro.core.initServer()
+ nsthread = NameServiceThread()
+ nsthread.start()
+ if (nsthread.verifyRunning() == False):
+ print "Failed to launch name service..."
+ sys.exit(1)
+
+ daemon = Pyro.core.Daemon()
+ # locate the NS
+ locator = Pyro.naming.NameServerLocator()
+ #print 'searching for Name Server...'
+ ns = locator.getNS()
+ daemon.useNameServer(ns)
+
+ # connect a new object implementation (first unregister previous one)
+ try:
+ # 'test' is the name by which our object will be known to the outside world
+ ns.unregister('muse')
+ except NamingError:
+ pass
+
+ # connect new object implementation
+ daemon.connect(museclass(),'muse')
+
+ # enter the server loop.
+ print 'Muse remote object published'
+ daemon.requestLoop()
+
+if __name__=="__main__":
+ main()
+
+main()
+
+
diff --git a/muse2/share/pybridge/parter/main.py b/muse2/share/pybridge/parter/main.py
new file mode 100644
index 00000000..40b85734
--- /dev/null
+++ b/muse2/share/pybridge/parter/main.py
@@ -0,0 +1,26 @@
+import sys,time
+from PyQt4 import QtGui
+
+from parter import ParterMainwidget
+import sys, os
+import Pyro.core
+
+#import musemock
+#muse = musemock.MusEMock()
+muse=Pyro.core.getProxyForURI('PYRONAME://:Default.muse')
+"""
+strack = muse.getSelectedTrack()
+cpos = muse.getCPos()
+muse.importPart(strack, "/home/ddskmlg/.muse/parts/testpart2.mpt", cpos)
+sys.exit(0)
+"""
+
+
+if __name__ == '__main__':
+ app = QtGui.QApplication(sys.argv)
+ partsdir = os.getenv("HOME") + "/.muse/parts"
+ mainw = ParterMainwidget(None, muse, partsdir)
+ mainw.show()
+ #muse.importPart("Track 1","/home/ddskmlg/.muse/parts/testpart2.mpt",18432)
+ sys.exit(app.exec_())
+
diff --git a/muse2/share/pybridge/parter/parter.py b/muse2/share/pybridge/parter/parter.py
new file mode 100644
index 00000000..889b00a1
--- /dev/null
+++ b/muse2/share/pybridge/parter/parter.py
@@ -0,0 +1,107 @@
+import sys,time,os
+from PyQt4 import QtGui, QtCore
+from PyQt4.QtGui import QFileDialog, QListView, QStringListModel, QButtonGroup, QPushButton
+
+class ParterMainwidget(QtGui.QWidget):
+ def __init__(self, parent=None, muse=None, partsdir=None):
+ QtGui.QWidget.__init__(self, parent)
+ self.muse = muse
+ self.partsdir = partsdir
+ self.lcurdir = QtGui.QLabel(partsdir)
+ moveupbutton = QPushButton("Parent dir")
+ appendbutton = QPushButton("Append")
+ putbutton = QPushButton("Put")
+ blayout = QtGui.QGridLayout()
+ blayout.addWidget(self.lcurdir)
+ blayout.addWidget(moveupbutton)
+ blayout.addWidget(appendbutton)
+ blayout.addWidget(putbutton)
+ self.tree = QtGui.QTreeView()
+ self.dirmodel = QtGui.QDirModel()
+ self.tree.setModel(self.dirmodel)
+ self.tree.setRootIndex(self.dirmodel.index(self.partsdir))
+
+ layout = QtGui.QGridLayout()
+ self.setLayout(layout)
+ layout.addWidget(self.tree, 0, 0)
+ layout.addLayout(blayout, 0, 1)
+
+ self.connect(moveupbutton, QtCore.SIGNAL('clicked()'), self.parentDir)
+ self.connect(appendbutton, QtCore.SIGNAL('clicked()'), self.appendPressed)
+ self.connect(putbutton, QtCore.SIGNAL('clicked()'), self.putPressed)
+
+ self.connect(self.tree, QtCore.SIGNAL('activated(QModelIndex)'), self.activated)
+
+ def parentDir(self):
+ f = QtCore.QFileInfo(self.partsdir)
+ self.changeDir(f.canonicalPath())
+
+ def changeDir(self, newdir):
+ self.partsdir = newdir
+ self.tree.setRootIndex(self.dirmodel.index(self.partsdir))
+ self.lcurdir.setText(self.partsdir)
+
+ def activated(self, s):
+ fileInfo = self.dirmodel.fileInfo(s)
+ if fileInfo.isDir():
+ self.changeDir(fileInfo.absoluteFilePath())
+ return
+
+ fname = str(fileInfo.absoluteFilePath()) # if not str() around it crashes!
+ self.putPart(fname)
+
+ def putPart(self, fname):
+ trackid = self.muse.getSelectedTrack()
+ if trackid == None:
+ return
+ cpos = self.muse.getCPos()
+ self.muse.importPart(trackid, fname, cpos)
+
+ def getSelectedItem(self):
+ selectionmodel = self.tree.selectionModel()
+ for i in selectionmodel.selectedIndexes():
+ fileInfo = self.dirmodel.fileInfo(i)
+ return str(fileInfo.absoluteFilePath())
+ return None
+
+ def appendPressed(self):
+ selected = self.getSelectedItem()
+ if selected == None:
+ return
+ trackid = self.muse.getSelectedTrack()
+ if trackid == None:
+ return
+ parts = self.muse.getParts(trackid)
+ if parts == None:
+ return
+
+ pos = 0
+ if len(parts) > 0:
+ part = parts[len(parts) - 1]
+ pos = part['tick'] + part['len']
+ print "Appending " + selected
+ self.muse.importPart(trackid, selected, pos)
+
+
+
+ def putPressed(self):
+ selected = self.getSelectedItem()
+ if selected == None:
+ return
+ trackid = self.muse.getSelectedTrack()
+ if trackid == None:
+ return
+ cpos = self.muse.getCPos()
+ self.muse.importPart(trackid, selected, cpos)
+
+ def testfunc2(self, index):
+ print str(index.row()) + " " + str(index.column())
+ print index.data().toString()
+
+if __name__ == '__main__':
+ app = QtGui.QApplication(sys.argv)
+ mainw = ParterMainwidget()
+ mainw.show()
+ sys.exit(app.exec_())
+
+
diff --git a/muse2/share/pybridge/robert.py b/muse2/share/pybridge/robert.py
new file mode 100644
index 00000000..2de8e1ab
--- /dev/null
+++ b/muse2/share/pybridge/robert.py
@@ -0,0 +1,46 @@
+# -*- coding: utf-8 -*-
+#
+# Example client for MusE Pyro bridge (Python Remote Object)
+#
+import Pyro.core
+import time
+
+muse=Pyro.core.getProxyForURI('PYRONAME://:Default.muse')
+print "Current position is: " + str(muse.getCPos())
+
+midiDevice=file("/dev/snd/midiC1D0")
+nextIsCommand=False
+while True:
+ v=midiDevice.read(1)
+ if nextIsCommand:
+ print " %d"%ord(v)
+ if ord(v) == 0:
+ print "set hh"
+ muse.setMute("hh", False)
+ muse.setMute("RIDE", True)
+ if ord(v) == 1:
+ muse.setMute("hh", True)
+ muse.setMute("RIDE", False)
+ print "set ride"
+ if ord(v) == 2:
+ muse.setMute("ACCENT1", False)
+ if ord(v) == 3:
+ muse.setMute("ACCENT2", False)
+ if ord(v) == 127:
+ print "mute all accents"
+ muse.setMute("ACCENT1", True)
+ muse.setMute("ACCENT2", True)
+ nextIsCommand=False
+ if ord(v) == 192:
+ nextIsCommand=True
+
+'''
+muse.startPlay()
+time.sleep(1) # Sleep one second
+muse.stopPlay()
+print "New position is: " + str(muse.getCPos())
+muse.rewindStart()
+print "Pos after rewind is: " + str(muse.getCPos())
+print "Lpos, Rpos: " + str(muse.getLPos()) + ":" + str(muse.getRPos())
+
+'''
diff --git a/muse2/share/scripts/ConstantLength b/muse2/share/scripts/ConstantLength
new file mode 100755
index 00000000..f03addcd
--- /dev/null
+++ b/muse2/share/scripts/ConstantLength
@@ -0,0 +1,77 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+import sys,time
+from PyQt4 import QtGui, QtCore
+
+class ScriptClass(QtGui.QWidget):
+ def __init__(self, parent=None):
+ QtGui.QWidget.__init__(self, parent)
+
+ self.setWindowTitle('Constant length')
+ title = QtGui.QLabel('Make all events of length:')
+ self.titleEdit = QtGui.QComboBox()
+ self.titleEdit.addItem('1/1',1)
+ self.titleEdit.addItem('1/2',2)
+ self.titleEdit.addItem('1/4',4)
+ self.titleEdit.addItem('1/8',8)
+ self.titleEdit.addItem('1/16',16)
+ self.titleEdit.addItem('1/32',32)
+ self.titleEdit.addItem('1/64',64)
+ self.titleEdit.setCurrentIndex(4)
+
+ button = QtGui.QPushButton("Execute")
+ self.connect(button, QtCore.SIGNAL('clicked()'), self.execute)
+ grid = QtGui.QGridLayout()
+ grid.setSpacing(3)
+
+ grid.addWidget(title, 1, 0)
+ grid.addWidget(self.titleEdit, 1, 1)
+
+ grid.addWidget(button, 2, 1)
+
+ self.setLayout(grid)
+ self.resize(200, 100)
+ button.setFocus()
+
+ def execute(self):
+ testFile = file(sys.argv[1],"r")
+ inputEvents = testFile.readlines()
+ testFile.close()
+
+ beatDiv = self.titleEdit.itemData(self.titleEdit.currentIndex()).toInt()[0]
+ print "beatDiv=",beatDiv
+ eventLen=0
+ #get beat length to calculate minimum length of event
+ for line in inputEvents:
+ if line.startswith('BEATLEN'):
+ tag,tick = line.split(' ')
+ eventLen=int(tick)/beatDiv*4
+ break
+
+ outputEvents=[]
+ #loop through events
+ for line in inputEvents:
+
+ if line.startswith('NOTE'):
+ tag,tick,note,length,velocity = line.split(' ')
+
+ length=eventLen
+ newLine=tag+" "+tick+" "+note+" "+str(length)+" "+velocity
+ outputEvents.append(newLine)
+
+ else:
+ outputEvents.append(line)
+
+ testFile = file(sys.argv[1],"w")
+ testFile.writelines(outputEvents)
+ testFile.close()
+
+ quit()
+
+
+
+app = QtGui.QApplication(sys.argv)
+qb = ScriptClass()
+qb.show()
+sys.exit(app.exec_())
diff --git a/muse2/share/scripts/DoNothing b/muse2/share/scripts/DoNothing
new file mode 100755
index 00000000..a3d92c7d
--- /dev/null
+++ b/muse2/share/scripts/DoNothing
@@ -0,0 +1,15 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+import sys
+testFile = file(sys.argv[1],"r")
+inputEvents = testFile.readlines()
+testFile.close()
+
+outputEvents=[]
+#loop through events
+for line in inputEvents:
+ outputEvents.append(line)
+
+testFile = file(sys.argv[1],"w")
+testFile.writelines(outputEvents)
+testFile.close()
diff --git a/muse2/share/scripts/DoubleSpeed b/muse2/share/scripts/DoubleSpeed
new file mode 100755
index 00000000..da6d0c2e
--- /dev/null
+++ b/muse2/share/scripts/DoubleSpeed
@@ -0,0 +1,24 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+# MusE external midi processing script
+# By: Mathias Gyllengahm 2009
+# DoubleSpeed
+
+import sys,time
+testFile = file(sys.argv[1],"r")
+inputEvents = testFile.readlines()
+testFile.close()
+
+outputEvents=[]
+#loop through events
+for line in inputEvents:
+
+ if line.startswith('NOTE'):
+ tag,tick,pitch,length,velocity = line.split(' ')
+ newline = tag + " " + str(int(tick)/2) + " " + pitch + " " + length + " " + velocity
+ outputEvents.append(newline)
+
+testFile = file(sys.argv[1],"w")
+testFile.writelines(outputEvents)
+testFile.close()
+
diff --git a/muse2/share/scripts/Makefile.am b/muse2/share/scripts/Makefile.am
new file mode 100644
index 00000000..0f2a9634
--- /dev/null
+++ b/muse2/share/scripts/Makefile.am
@@ -0,0 +1,11 @@
+EXTRA_DIST = DoNothing RemoveShortEvents DoubleSpeed ConstantLength SwingQuantize1
+
+#musemidiscriptspkgdata_DATA = $(EXTRA_DIST)
+
+#musemidiscriptspkgdatadir = $(pkgdatadir)/scripts
+
+install-data-local:
+ mkdir -p $(DESTDIR)/$(pkgdatadir)/scripts/
+ cp $(EXTRA_DIST) $(DESTDIR)/$(pkgdatadir)/scripts/
+ chmod a+x $(DESTDIR)/$(pkgdatadir)/scripts/*
+
diff --git a/muse2/share/scripts/Makefile.in b/muse2/share/scripts/Makefile.in
new file mode 100644
index 00000000..7fef85f6
--- /dev/null
+++ b/muse2/share/scripts/Makefile.in
@@ -0,0 +1,425 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = share/scripts
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal-include.m4 \
+ $(top_srcdir)/m4/alsa.m4 $(top_srcdir)/m4/docbook.m4 \
+ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
+ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
+ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+SOURCES =
+DIST_SOURCES =
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ALSA_CFLAGS = @ALSA_CFLAGS@
+ALSA_LIBS = @ALSA_LIBS@
+AMTAR = @AMTAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DOCBOOKSTYLE = @DOCBOOKSTYLE@
+DOCBOOKTARGETS = @DOCBOOKTARGETS@
+DOT = @DOT@
+DOTPATH = @DOTPATH@
+DOXYGEN = @DOXYGEN@
+DOXYGEN_TREEVIEW = @DOXYGEN_TREEVIEW@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+FLUIDSYNTHDIRS = @FLUIDSYNTHDIRS@
+FST_CFLAGS = @FST_CFLAGS@
+FST_LIBS = @FST_LIBS@
+Fluidsynth_CFLAGS = @Fluidsynth_CFLAGS@
+Fluidsynth_LIBS = @Fluidsynth_LIBS@
+GIVERTCAP = @GIVERTCAP@
+GREP = @GREP@
+HAVEDOT = @HAVEDOT@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JACK_CFLAGS = @JACK_CFLAGS@
+JACK_LIBS = @JACK_LIBS@
+JADE = @JADE@
+LASH_CFLAGS = @LASH_CFLAGS@
+LASH_LIBS = @LASH_LIBS@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LO_CFLAGS = @LO_CFLAGS@
+LO_LIBS = @LO_LIBS@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+MUSECXXFLAGS = @MUSECXXFLAGS@
+NM = @NM@
+NMEDIT = @NMEDIT@
+NSGMLS = @NSGMLS@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PCH = @PCH@
+PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+PYTHON = @PYTHON@
+PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
+PYTHON_INCLUDES = @PYTHON_INCLUDES@
+PYTHON_LIB = @PYTHON_LIB@
+PYTHON_PLATFORM = @PYTHON_PLATFORM@
+PYTHON_PREFIX = @PYTHON_PREFIX@
+PYTHON_VERSION = @PYTHON_VERSION@
+QTDIR_BIN = @QTDIR_BIN@
+QTDIR_INC = @QTDIR_INC@
+QT_LIBS = @QT_LIBS@
+RANLIB = @RANLIB@
+SAMPLERATE_CFLAGS = @SAMPLERATE_CFLAGS@
+SAMPLERATE_LIBS = @SAMPLERATE_LIBS@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SNDFILE_CFLAGS = @SNDFILE_CFLAGS@
+SNDFILE_LIBS = @SNDFILE_LIBS@
+STRIP = @STRIP@
+SUIDBUILD = @SUIDBUILD@
+SUIDINSTALL = @SUIDINSTALL@
+USE_SSE = @USE_SSE@
+UUID_CFLAGS = @UUID_CFLAGS@
+UUID_LIBS = @UUID_LIBS@
+VERSION = @VERSION@
+XMKMF = @XMKMF@
+X_CFLAGS = @X_CFLAGS@
+X_EXTRA_LIBS = @X_EXTRA_LIBS@
+X_LIBS = @X_LIBS@
+X_PRE_LIBS = @X_PRE_LIBS@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+have_docbook = @have_docbook@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+lt_ECHO = @lt_ECHO@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+pkgpyexecdir = @pkgpyexecdir@
+pkgpythondir = @pkgpythondir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+pyexecdir = @pyexecdir@
+pythondir = @pythondir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+synth_fluid = @synth_fluid@
+synth_fluidsynth = @synth_fluidsynth@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+EXTRA_DIST = DoNothing RemoveShortEvents DoubleSpeed ConstantLength SwingQuantize1
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu share/scripts/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu share/scripts/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-data-local
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: install-am install-strip
+
+.PHONY: all all-am check check-am clean clean-generic clean-libtool \
+ distclean distclean-generic distclean-libtool distdir dvi \
+ dvi-am html html-am info info-am install install-am \
+ install-data install-data-am install-data-local install-dvi \
+ install-dvi-am install-exec install-exec-am install-html \
+ install-html-am install-info install-info-am install-man \
+ install-pdf install-pdf-am install-ps install-ps-am \
+ install-strip installcheck installcheck-am installdirs \
+ maintainer-clean maintainer-clean-generic mostlyclean \
+ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+ uninstall uninstall-am
+
+
+#musemidiscriptspkgdata_DATA = $(EXTRA_DIST)
+
+#musemidiscriptspkgdatadir = $(pkgdatadir)/scripts
+
+install-data-local:
+ mkdir -p $(DESTDIR)/$(pkgdatadir)/scripts/
+ cp $(EXTRA_DIST) $(DESTDIR)/$(pkgdatadir)/scripts/
+ chmod a+x $(DESTDIR)/$(pkgdatadir)/scripts/*
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/muse2/share/scripts/README.txt b/muse2/share/scripts/README.txt
new file mode 100644
index 00000000..8490dd69
--- /dev/null
+++ b/muse2/share/scripts/README.txt
@@ -0,0 +1,36 @@
+MusE midi event scripting format 0.5
+
+Some information for the budding script writer, here is some info
+about the format currently used.
+
+Scripts can be put in two different dirs.
+<install_path>/share/muse/scripts
+for scripts bundled
+or $HOME/.muse/scripts
+for user created scripts
+
+There are two main requirements on scripts.
+
+1. a script must have the executable flag set, that is, it must be considered
+an executable from the perspective of the operating system.
+2. a script shall take an input file as argument and will update this
+file with the sought output.
+
+The tags that may occur in the file sent to the script are:
+PARTLEN <len in ticks>
+BEATLEN <len in ticks>
+QUANTLEN <len in ticks>
+NOTE <tick> <pitch> <len in ticks> <velocity>
+CONTROLLER <tick> <a> <b> <c>
+
+PARTLEN, BEATLEN and QUANTLEN are there for informational purposes, to
+make some transformations possible. e.g. quantization, beat delay.
+
+NOTE and CONTROLLER are the ones that are read back into MusE when the filter
+stops executing. These may be manipulated, removed or multiplied as seen
+fit by the filter.
+-- Note that it is a good idea to just pass on the lines your script is not
+interested in, otherwise data may unintentionally be removed --
+
+A short example in pyton that does nothing but pass on output from input
+to output is available in script DoNothing
diff --git a/muse2/share/scripts/RemoveShortEvents b/muse2/share/scripts/RemoveShortEvents
new file mode 100755
index 00000000..cc6735b2
--- /dev/null
+++ b/muse2/share/scripts/RemoveShortEvents
@@ -0,0 +1,79 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+# MusE external midi processing script
+# By: Robert Jonsson 2009
+# RemoveShortEvents
+
+import sys,time
+from PyQt4 import QtGui, QtCore
+
+class RemoveShortEvents(QtGui.QWidget):
+ def __init__(self, parent=None):
+ QtGui.QWidget.__init__(self, parent)
+
+ self.setWindowTitle('RemoveShortEvents')
+
+ title = QtGui.QLabel('Remove events shorter than:')
+ self.timeEdit = QtGui.QComboBox()
+ self.timeEdit.addItem('1/1',1)
+ self.timeEdit.addItem('1/2',2)
+ self.timeEdit.addItem('1/4',4)
+ self.timeEdit.addItem('1/8',8)
+ self.timeEdit.addItem('1/16',16)
+ self.timeEdit.addItem('1/32',32)
+ self.timeEdit.setCurrentIndex(3)
+
+ button = QtGui.QPushButton("Execute")
+ self.connect(button, QtCore.SIGNAL('clicked()'), self.execute)
+
+ grid = QtGui.QGridLayout()
+ grid.setSpacing(3)
+
+ grid.addWidget(title, 1, 0)
+ grid.addWidget(self.timeEdit, 1, 1)
+
+ grid.addWidget(button, 2, 1)
+
+ self.setLayout(grid)
+ self.resize(200, 100)
+ button.setFocus()
+
+ def execute(self):
+ testFile = file(sys.argv[1],"r")
+ inputEvents = testFile.readlines()
+ testFile.close()
+
+ beatDiv = int(self.timeEdit.itemData(self.timeEdit.currentIndex()).toInt()[0])
+ minSize=0 # fill in when we get the beat size value
+ outputEvents=[]
+
+ #get beat length to calculate minimum length of event
+ for line in inputEvents:
+ if line.startswith('BEATLEN'):
+ tag,tick = line.split(' ')
+ minSize=int(tick)/beatDiv
+ break
+ #loop through events
+ for line in inputEvents:
+ if line.startswith('NOTE'):
+ tag,tick,note,length,velocity = line.split(' ')
+ if int(length) > minSize: # only append long enough events
+ outputEvents.append(line)
+
+ else:
+ outputEvents.append(line)
+
+
+ testFile = file(sys.argv[1],"w")
+ testFile.writelines(outputEvents)
+ testFile.close()
+
+
+ quit()
+
+
+
+app = QtGui.QApplication(sys.argv)
+qb = RemoveShortEvents()
+qb.show()
+sys.exit(app.exec_())
diff --git a/muse2/share/scripts/SwingQuantize1 b/muse2/share/scripts/SwingQuantize1
new file mode 100755
index 00000000..11fded84
--- /dev/null
+++ b/muse2/share/scripts/SwingQuantize1
@@ -0,0 +1,105 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+# MusE external midi processing script
+# By: Robert Jonsson 2009
+# Quantize
+
+import sys,time
+from PyQt4 import QtGui, QtCore
+import random
+
+class Quantize(QtGui.QWidget):
+ def __init__(self, parent=None):
+ QtGui.QWidget.__init__(self, parent)
+
+ self.setWindowTitle('Swing quantize V1')
+
+
+ self.beatEdit = QtGui.QComboBox()
+ self.beatEdit.addItem('1/1',1)
+ self.beatEdit.addItem('1/2',2)
+ self.beatEdit.addItem('1/4',4)
+ self.beatEdit.addItem('1/8',8)
+ self.beatEdit.addItem('1/16',16)
+ self.beatEdit.addItem('1/32',32)
+ self.beatEdit.setCurrentIndex(2)
+ self.spreadEdit = QtGui.QLineEdit()
+ self.spreadEdit.setText('10')
+
+ button = QtGui.QPushButton("Execute")
+ self.connect(button, QtCore.SIGNAL('clicked()'), self.execute)
+
+ grid = QtGui.QGridLayout()
+ grid.setSpacing(3)
+
+ grid.addWidget(QtGui.QLabel('Beat granularity:'), 1, 0)
+ grid.addWidget(self.beatEdit, 1, 1)
+ grid.addWidget(QtGui.QLabel('Spread/Swing(ticks)'), 2, 0)
+ grid.addWidget(self.spreadEdit, 2, 1)
+ grid.addWidget(button, 3, 1)
+
+ self.setLayout(grid)
+ self.resize(200, 100)
+ button.setFocus()
+
+ def execute(self):
+ testFile = file(sys.argv[1],"r")
+ inputEvents = testFile.readlines()
+ testFile.close()
+
+ beatDiv = self.beatEdit.itemData(self.beatEdit.currentIndex()).toInt()[0]
+ minSize=0 # fill in when we get the beat size value
+ outputEvents=[]
+ quantLen=0
+
+ #get beat length to calculate minimum length of event
+ for line in inputEvents:
+ if line.startswith('BEATLEN'):
+ tag,tick = line.split(' ')
+ beatLen=int(tick)
+ quantLen=int(tick)/beatDiv*4
+ print "quantLen=%d beatDiv=%d"%(quantLen, beatDiv)
+ print line.strip()
+ #loop through events and quantize to the given beat
+ eventList=[]
+ for line in inputEvents:
+ if line.startswith('NOTE'):
+ tag,tick,pitch,length,velocity = line.split(' ')
+
+ # over quantize
+ lowerBound=(int(tick)/quantLen)*quantLen
+ upperBound=lowerBound+quantLen
+ lowDiff=int(tick)-lowerBound
+ highDiff=upperBound - int(tick)
+ if( lowDiff < highDiff):
+ newTick=lowerBound
+ else:
+ newTick=upperBound
+
+ # apply swing factor to every other 8 beat
+ print "float =%f int = %d"%((float(newTick+beatLen)) / beatLen/2,((newTick+beatLen))/beatLen/2)
+ if ((float(newTick+beatLen)) / beatLen/2 - ((newTick+beatLen))/beatLen/2) < 0.1:
+ print "adding swing to:",newTick
+ newTick=int(random.gauss(newTick,self.spreadEdit.text().toInt()[0]))
+ if (newTick < 0):
+ newTick=0
+
+ newLine="NOTE "+ str(newTick)+" " + pitch + " "+ length + " " + velocity
+ print "newLine:",newLine.strip()
+ outputEvents.append(newLine)
+ else:
+ outputEvents.append(line)
+
+
+
+ testFile = file(sys.argv[1],"w")
+ testFile.writelines(outputEvents)
+ testFile.close()
+
+ quit()
+
+
+app = QtGui.QApplication(sys.argv)
+qb = Quantize()
+qb.show()
+sys.exit(app.exec_())
diff --git a/muse2/share/splash.png b/muse2/share/splash.png
new file mode 100644
index 00000000..38d7c465
--- /dev/null
+++ b/muse2/share/splash.png
Binary files differ
diff --git a/muse2/share/templates/Makefile.am b/muse2/share/templates/Makefile.am
new file mode 100644
index 00000000..1fa6def9
--- /dev/null
+++ b/muse2/share/templates/Makefile.am
@@ -0,0 +1,5 @@
+EXTRA_DIST = $(wildcard *.med)
+
+templatespkgdata_DATA = $(EXTRA_DIST)
+
+templatespkgdatadir = $(pkgdatadir)/templates
diff --git a/muse2/share/templates/Makefile.in b/muse2/share/templates/Makefile.in
new file mode 100644
index 00000000..90566232
--- /dev/null
+++ b/muse2/share/templates/Makefile.in
@@ -0,0 +1,465 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = share/templates
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal-include.m4 \
+ $(top_srcdir)/m4/alsa.m4 $(top_srcdir)/m4/docbook.m4 \
+ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
+ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
+ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+SOURCES =
+DIST_SOURCES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__installdirs = "$(DESTDIR)$(templatespkgdatadir)"
+DATA = $(templatespkgdata_DATA)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ALSA_CFLAGS = @ALSA_CFLAGS@
+ALSA_LIBS = @ALSA_LIBS@
+AMTAR = @AMTAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DOCBOOKSTYLE = @DOCBOOKSTYLE@
+DOCBOOKTARGETS = @DOCBOOKTARGETS@
+DOT = @DOT@
+DOTPATH = @DOTPATH@
+DOXYGEN = @DOXYGEN@
+DOXYGEN_TREEVIEW = @DOXYGEN_TREEVIEW@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+FLUIDSYNTHDIRS = @FLUIDSYNTHDIRS@
+FST_CFLAGS = @FST_CFLAGS@
+FST_LIBS = @FST_LIBS@
+Fluidsynth_CFLAGS = @Fluidsynth_CFLAGS@
+Fluidsynth_LIBS = @Fluidsynth_LIBS@
+GIVERTCAP = @GIVERTCAP@
+GREP = @GREP@
+HAVEDOT = @HAVEDOT@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JACK_CFLAGS = @JACK_CFLAGS@
+JACK_LIBS = @JACK_LIBS@
+JADE = @JADE@
+LASH_CFLAGS = @LASH_CFLAGS@
+LASH_LIBS = @LASH_LIBS@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LO_CFLAGS = @LO_CFLAGS@
+LO_LIBS = @LO_LIBS@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+MUSECXXFLAGS = @MUSECXXFLAGS@
+NM = @NM@
+NMEDIT = @NMEDIT@
+NSGMLS = @NSGMLS@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PCH = @PCH@
+PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+PYTHON = @PYTHON@
+PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
+PYTHON_INCLUDES = @PYTHON_INCLUDES@
+PYTHON_LIB = @PYTHON_LIB@
+PYTHON_PLATFORM = @PYTHON_PLATFORM@
+PYTHON_PREFIX = @PYTHON_PREFIX@
+PYTHON_VERSION = @PYTHON_VERSION@
+QTDIR_BIN = @QTDIR_BIN@
+QTDIR_INC = @QTDIR_INC@
+QT_LIBS = @QT_LIBS@
+RANLIB = @RANLIB@
+SAMPLERATE_CFLAGS = @SAMPLERATE_CFLAGS@
+SAMPLERATE_LIBS = @SAMPLERATE_LIBS@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SNDFILE_CFLAGS = @SNDFILE_CFLAGS@
+SNDFILE_LIBS = @SNDFILE_LIBS@
+STRIP = @STRIP@
+SUIDBUILD = @SUIDBUILD@
+SUIDINSTALL = @SUIDINSTALL@
+USE_SSE = @USE_SSE@
+UUID_CFLAGS = @UUID_CFLAGS@
+UUID_LIBS = @UUID_LIBS@
+VERSION = @VERSION@
+XMKMF = @XMKMF@
+X_CFLAGS = @X_CFLAGS@
+X_EXTRA_LIBS = @X_EXTRA_LIBS@
+X_LIBS = @X_LIBS@
+X_PRE_LIBS = @X_PRE_LIBS@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+have_docbook = @have_docbook@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+lt_ECHO = @lt_ECHO@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+pkgpyexecdir = @pkgpyexecdir@
+pkgpythondir = @pkgpythondir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+pyexecdir = @pyexecdir@
+pythondir = @pythondir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+synth_fluid = @synth_fluid@
+synth_fluidsynth = @synth_fluidsynth@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+EXTRA_DIST = $(wildcard *.med)
+templatespkgdata_DATA = $(EXTRA_DIST)
+templatespkgdatadir = $(pkgdatadir)/templates
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu share/templates/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu share/templates/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+install-templatespkgdataDATA: $(templatespkgdata_DATA)
+ @$(NORMAL_INSTALL)
+ test -z "$(templatespkgdatadir)" || $(MKDIR_P) "$(DESTDIR)$(templatespkgdatadir)"
+ @list='$(templatespkgdata_DATA)'; test -n "$(templatespkgdatadir)" || list=; \
+ for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(templatespkgdatadir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(templatespkgdatadir)" || exit $$?; \
+ done
+
+uninstall-templatespkgdataDATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(templatespkgdata_DATA)'; test -n "$(templatespkgdatadir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ test -n "$$files" || exit 0; \
+ echo " ( cd '$(DESTDIR)$(templatespkgdatadir)' && rm -f" $$files ")"; \
+ cd "$(DESTDIR)$(templatespkgdatadir)" && rm -f $$files
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile $(DATA)
+installdirs:
+ for dir in "$(DESTDIR)$(templatespkgdatadir)"; do \
+ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-templatespkgdataDATA
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-templatespkgdataDATA
+
+.MAKE: install-am install-strip
+
+.PHONY: all all-am check check-am clean clean-generic clean-libtool \
+ distclean distclean-generic distclean-libtool distdir dvi \
+ dvi-am html html-am info info-am install install-am \
+ install-data install-data-am install-dvi install-dvi-am \
+ install-exec install-exec-am install-html install-html-am \
+ install-info install-info-am install-man install-pdf \
+ install-pdf-am install-ps install-ps-am install-strip \
+ install-templatespkgdataDATA installcheck installcheck-am \
+ installdirs maintainer-clean maintainer-clean-generic \
+ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
+ ps ps-am uninstall uninstall-am uninstall-templatespkgdataDATA
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/muse2/share/templates/audio.med b/muse2/share/templates/audio.med
new file mode 100644
index 00000000..208313ff
--- /dev/null
+++ b/muse2/share/templates/audio.med
@@ -0,0 +1,329 @@
+<?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>
+ </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>0</record>
+ <mute>0</mute>
+ <solo>0</solo>
+ <off>0</off>
+ <channels>1</channels>
+ <height>20</height>
+ <locked>0</locked>
+ <selected>1</selected>
+ <mute>0</mute>
+ <solo>0</solo>
+ <prefader>0</prefader>
+ <off>0</off>
+ <automation>1</automation>
+ <auxSend idx=0>0</auxSend>
+ <auxSend idx=1>0</auxSend>
+ <controller id="0" cur="0">
+ </controller>
+ <controller id="1" cur="0">
+ </controller>
+ </wavetrack>
+ <wavetrack>
+ <name>Track 2</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>
+ <automation>1</automation>
+ <auxSend idx=0>0</auxSend>
+ <auxSend idx=1>0</auxSend>
+ <controller id="0" cur="0">
+ </controller>
+ <controller id="1" cur="0">
+ </controller>
+ </wavetrack>
+ <wavetrack>
+ <name>Track 3</name>
+ <record>0</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>
+ <automation>1</automation>
+ <auxSend idx=0>0</auxSend>
+ <auxSend idx=1>0</auxSend>
+ <controller id="0" cur="0">
+ </controller>
+ <controller id="1" cur="0">
+ </controller>
+ </wavetrack>
+ <wavetrack>
+ <name>Track 4</name>
+ <record>0</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>
+ <automation>1</automation>
+ <auxSend idx=0>0</auxSend>
+ <auxSend idx=1>0</auxSend>
+ <controller id="0" cur="0">
+ </controller>
+ <controller id="1" cur="0">
+ </controller>
+ </wavetrack>
+ <AudioGroup>
+ <name>Group 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>
+ <automation>1</automation>
+ <auxSend idx=0>0</auxSend>
+ <auxSend idx=1>0</auxSend>
+ <controller id="0" cur="0">
+ </controller>
+ <controller id="1" cur="0">
+ </controller>
+ </AudioGroup>
+ <AudioGroup>
+ <name>Group 2</name>
+ <record>0</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>
+ <automation>1</automation>
+ <auxSend idx=0>0</auxSend>
+ <auxSend idx=1>0</auxSend>
+ <controller id="0" cur="0">
+ </controller>
+ <controller id="1" cur="0">
+ </controller>
+ </AudioGroup>
+ <AudioAux>
+ <name>Aux 1</name>
+ <record>0</record>
+ <mute>0</mute>
+ <solo>0</solo>
+ <off>0</off>
+ <channels>2</channels>
+ <height>20</height>
+ <locked>1</locked>
+ <mute>0</mute>
+ <solo>0</solo>
+ <prefader>0</prefader>
+ <off>0</off>
+ <automation>1</automation>
+ <controller id="0" cur="0">
+ </controller>
+ <controller id="1" cur="0">
+ </controller>
+ </AudioAux>
+ <AudioAux>
+ <name>Aux 2</name>
+ <record>0</record>
+ <mute>0</mute>
+ <solo>0</solo>
+ <off>0</off>
+ <channels>2</channels>
+ <height>20</height>
+ <locked>1</locked>
+ <mute>0</mute>
+ <solo>0</solo>
+ <prefader>0</prefader>
+ <off>0</off>
+ <automation>1</automation>
+ <controller id="0" cur="0">
+ </controller>
+ <controller id="1" cur="0">
+ </controller>
+ </AudioAux>
+ <AudioInput>
+ <name>Input 1</name>
+ <record>0</record>
+ <mute>1</mute>
+ <solo>0</solo>
+ <off>0</off>
+ <channels>2</channels>
+ <height>20</height>
+ <locked>1</locked>
+ <mute>1</mute>
+ <solo>0</solo>
+ <prefader>0</prefader>
+ <off>0</off>
+ <automation>1</automation>
+ <auxSend idx=0>0</auxSend>
+ <auxSend idx=1>0</auxSend>
+ <controller id="0" cur="0">
+ </controller>
+ <controller id="1" cur="0">
+ </controller>
+ </AudioInput>
+ <AudioOutput>
+ <name>Out 1</name>
+ <record>0</record>
+ <mute>0</mute>
+ <solo>0</solo>
+ <off>0</off>
+ <channels>2</channels>
+ <height>20</height>
+ <locked>1</locked>
+ <mute>0</mute>
+ <solo>0</solo>
+ <prefader>0</prefader>
+ <off>0</off>
+ <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/muse2/share/templates/default.med b/muse2/share/templates/default.med
new file mode 100644
index 00000000..9bfb56c9
--- /dev/null
+++ b/muse2/share/templates/default.med
@@ -0,0 +1,150 @@
+<?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>440 799 </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>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="1.02164">
+ </controller>
+ <controller id="1" cur="0">
+ </controller>
+ </AudioOutput>
+ <Route>
+ <srcNode>1:Out 1</srcNode>
+ <dstNode>alsa_pcm:playback_1</dstNode>
+ </Route>
+ <Route>
+ <srcNode>2:Out 1</srcNode>
+ <dstNode>alsa_pcm:playback_2</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>
+ </muse>
diff --git a/muse2/share/templates/midiGM.med b/muse2/share/templates/midiGM.med
new file mode 100644
index 00000000..ebd6333b
--- /dev/null
+++ b/muse2/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/muse2/share/templates/monorecord.med b/muse2/share/templates/monorecord.med
new file mode 100644
index 00000000..07ab6997
--- /dev/null
+++ b/muse2/share/templates/monorecord.med
@@ -0,0 +1,432 @@
+<?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>
+ <transport visible=1>
+ </transport>
+ <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/muse2/share/templates/synti.med b/muse2/share/templates/synti.med
new file mode 100644
index 00000000..a4eec239
--- /dev/null
+++ b/muse2/share/templates/synti.med
@@ -0,0 +1,809 @@
+<?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>
+ <transport visible=0>
+ </transport>
+ <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>organ-1</instrument>
+ <name>organ-1</name>
+ <record>0</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>
+ <midiport idx="1">
+ <instrument>fluid-1</instrument>
+ <name>fluid-1</name>
+ <record>0</record>
+ <channel idx="0">
+ <controller>7</controller>
+ <controller>10</controller>
+ <controller>262145</controller>
+ </channel>
+ <channel idx="1">
+ <controller>7</controller>
+ <controller>10</controller>
+ <controller>262145</controller>
+ </channel>
+ <channel idx="2">
+ <controller>7</controller>
+ <controller>10</controller>
+ <controller>262145</controller>
+ </channel>
+ <channel idx="3">
+ <controller>7</controller>
+ <controller>10</controller>
+ <controller>262145</controller>
+ </channel>
+ <channel idx="4">
+ <controller>7</controller>
+ <controller>10</controller>
+ <controller>262145</controller>
+ </channel>
+ <channel idx="5">
+ <controller>7</controller>
+ <controller>10</controller>
+ <controller>262145</controller>
+ </channel>
+ <channel idx="6">
+ <controller>7</controller>
+ <controller>10</controller>
+ <controller>262145</controller>
+ </channel>
+ <channel idx="7">
+ <controller>7</controller>
+ <controller>10</controller>
+ <controller>262145</controller>
+ </channel>
+ <channel idx="8">
+ <controller>7</controller>
+ <controller>10</controller>
+ <controller>262145</controller>
+ </channel>
+ <channel idx="9">
+ <controller>7</controller>
+ <controller>10</controller>
+ <controller>262145</controller>
+ </channel>
+ <channel idx="10">
+ <controller>7</controller>
+ <controller>10</controller>
+ <controller>262145</controller>
+ </channel>
+ <channel idx="11">
+ <controller>7</controller>
+ <controller>10</controller>
+ <controller>262145</controller>
+ </channel>
+ <channel idx="12">
+ <controller>7</controller>
+ <controller>10</controller>
+ <controller>262145</controller>
+ </channel>
+ <channel idx="13">
+ <controller>7</controller>
+ <controller>10</controller>
+ <controller>262145</controller>
+ </channel>
+ <channel idx="14">
+ <controller>7</controller>
+ <controller>10</controller>
+ <controller>262145</controller>
+ </channel>
+ <channel idx="15">
+ <controller>7</controller>
+ <controller>10</controller>
+ <controller>262145</controller>
+ </channel>
+ </midiport>
+ <midiport idx="2">
+ <instrument>s1-1</instrument>
+ <name>s1-1</name>
+ <record>0</record>
+ <channel idx="0">
+ <controller>7</controller>
+ <controller>10</controller>
+ <controller>262145</controller>
+ </channel>
+ <channel idx="1">
+ <controller>7</controller>
+ <controller>10</controller>
+ <controller>262145</controller>
+ </channel>
+ <channel idx="2">
+ <controller>7</controller>
+ <controller>10</controller>
+ <controller>262145</controller>
+ </channel>
+ <channel idx="3">
+ <controller>7</controller>
+ <controller>10</controller>
+ <controller>262145</controller>
+ </channel>
+ <channel idx="4">
+ <controller>7</controller>
+ <controller>10</controller>
+ <controller>262145</controller>
+ </channel>
+ <channel idx="5">
+ <controller>7</controller>
+ <controller>10</controller>
+ <controller>262145</controller>
+ </channel>
+ <channel idx="6">
+ <controller>7</controller>
+ <controller>10</controller>
+ <controller>262145</controller>
+ </channel>
+ <channel idx="7">
+ <controller>7</controller>
+ <controller>10</controller>
+ <controller>262145</controller>
+ </channel>
+ <channel idx="8">
+ <controller>7</controller>
+ <controller>10</controller>
+ <controller>262145</controller>
+ </channel>
+ <channel idx="9">
+ <controller>7</controller>
+ <controller>10</controller>
+ <controller>262145</controller>
+ </channel>
+ <channel idx="10">
+ <controller>7</controller>
+ <controller>10</controller>
+ <controller>262145</controller>
+ </channel>
+ <channel idx="11">
+ <controller>7</controller>
+ <controller>10</controller>
+ <controller>262145</controller>
+ </channel>
+ <channel idx="12">
+ <controller>7</controller>
+ <controller>10</controller>
+ <controller>262145</controller>
+ </channel>
+ <channel idx="13">
+ <controller>7</controller>
+ <controller>10</controller>
+ <controller>262145</controller>
+ </channel>
+ <channel idx="14">
+ <controller>7</controller>
+ <controller>10</controller>
+ <controller>262145</controller>
+ </channel>
+ <channel idx="15">
+ <controller>7</controller>
+ <controller>10</controller>
+ <controller>262145</controller>
+ </channel>
+ </midiport>
+ <midiport idx="3">
+ <instrument>vam-1</instrument>
+ <name>vam-1</name>
+ <record>0</record>
+ <channel idx="0">
+ <controller>7</controller>
+ <controller>10</controller>
+ <controller>262145</controller>
+ </channel>
+ <channel idx="1">
+ <controller>7</controller>
+ <controller>10</controller>
+ <controller>262145</controller>
+ </channel>
+ <channel idx="2">
+ <controller>7</controller>
+ <controller>10</controller>
+ <controller>262145</controller>
+ </channel>
+ <channel idx="3">
+ <controller>7</controller>
+ <controller>10</controller>
+ <controller>262145</controller>
+ </channel>
+ <channel idx="4">
+ <controller>7</controller>
+ <controller>10</controller>
+ <controller>262145</controller>
+ </channel>
+ <channel idx="5">
+ <controller>7</controller>
+ <controller>10</controller>
+ <controller>262145</controller>
+ </channel>
+ <channel idx="6">
+ <controller>7</controller>
+ <controller>10</controller>
+ <controller>262145</controller>
+ </channel>
+ <channel idx="7">
+ <controller>7</controller>
+ <controller>10</controller>
+ <controller>262145</controller>
+ </channel>
+ <channel idx="8">
+ <controller>7</controller>
+ <controller>10</controller>
+ <controller>262145</controller>
+ </channel>
+ <channel idx="9">
+ <controller>7</controller>
+ <controller>10</controller>
+ <controller>262145</controller>
+ </channel>
+ <channel idx="10">
+ <controller>7</controller>
+ <controller>10</controller>
+ <controller>262145</controller>
+ </channel>
+ <channel idx="11">
+ <controller>7</controller>
+ <controller>10</controller>
+ <controller>262145</controller>
+ </channel>
+ <channel idx="12">
+ <controller>7</controller>
+ <controller>10</controller>
+ <controller>262145</controller>
+ </channel>
+ <channel idx="13">
+ <controller>7</controller>
+ <controller>10</controller>
+ <controller>262145</controller>
+ </channel>
+ <channel idx="14">
+ <controller>7</controller>
+ <controller>10</controller>
+ <controller>262145</controller>
+ </channel>
+ <channel idx="15">
+ <controller>7</controller>
+ <controller>10</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="169" g="181" b="223"></bgcolor>
+ <width>600</width>
+ <height>400</height>
+ </waveedit>
+ </configuration>
+ <song>
+ <automation>0</automation>
+ <cpos>12288</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>18432</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>
+ <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>
+ <midiThru>1</midiThru>
+ <part>
+ <name>Track 1</name>
+ <poslen tick="0" len="18432" />
+ <selected>1</selected>
+ <color>0</color>
+ </part>
+ </miditrack>
+ <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>
+ <mute>0</mute>
+ <solo>0</solo>
+ <prefader>0</prefader>
+ <off>0</off>
+ <controller id="0" cur="1.021645">
+ </controller>
+ <controller id="1" cur="0.000000">
+ </controller>
+ </AudioOutput>
+ <SynthI>
+ <name>fluid-1</name>
+ <record>0</record>
+ <mute>0</mute>
+ <solo>0</solo>
+ <off>1</off>
+ <channels>2</channels>
+ <height>20</height>
+ <locked>124</locked>
+ <mute>0</mute>
+ <solo>0</solo>
+ <prefader>0</prefader>
+ <off>1</off>
+ <controller id="0" cur="1.410912">
+ </controller>
+ <controller id="1" cur="0.000000">
+ </controller>
+ <class>fluid</class>
+ <port>1</port>
+ <guiVisible>0</guiVisible>
+ <midistate>
+ <event type="2" datalen="30">
+ 7c 00 01 2f 68 6f 6d 65 2f 77 73 2f 73 66 6f 6e
+ 74 2f 46 6c 75 69 64 52 33 2e 53 46 32 00
+ </event>
+ </midistate>
+ </SynthI>
+ <SynthI>
+ <name>organ-1</name>
+ <record>0</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>
+ <controller id="0" cur="1.021645">
+ </controller>
+ <controller id="1" cur="-0.040000">
+ </controller>
+ <class>organ</class>
+ <port>0</port>
+ <guiVisible>0</guiVisible>
+ <midistate>
+ <event type="2" datalen="136">
+ 00 00 03 00 ff 3f 00 00 01 00 03 00 ff 3f 00 00
+ 02 00 03 00 ff 3f 00 00 03 00 03 00 ff 3f 00 00
+ 04 00 03 00 ff 3f 00 00 05 00 03 00 ff 3f 00 00
+ 06 00 03 00 a2 00 00 00 07 00 03 00 00 00 00 00
+ 08 00 03 00 ff 3f 00 00 09 00 03 00 fe 1f 00 00
+ 0a 00 03 00 a2 00 00 00 0b 00 03 00 00 00 00 00
+ 0c 00 03 00 ff 3f 00 00 0d 00 03 00 fe 1f 00 00
+ 0e 00 03 00 01 00 00 00 0f 00 03 00 01 00 00 00
+ 10 00 03 00 01 00 00 00
+ </event>
+ </midistate>
+ </SynthI>
+ <SynthI>
+ <name>s1-1</name>
+ <record>0</record>
+ <mute>0</mute>
+ <solo>0</solo>
+ <off>1</off>
+ <channels>1</channels>
+ <height>20</height>
+ <locked>11</locked>
+ <mute>0</mute>
+ <solo>0</solo>
+ <prefader>0</prefader>
+ <off>1</off>
+ <controller id="0" cur="0.000000">
+ </controller>
+ <controller id="1" cur="0.000000">
+ </controller>
+ <class>s1</class>
+ <port>2</port>
+ <guiVisible>0</guiVisible>
+ </SynthI>
+ <SynthI>
+ <name>vam-1</name>
+ <record>0</record>
+ <mute>0</mute>
+ <solo>0</solo>
+ <off>1</off>
+ <channels>1</channels>
+ <height>20</height>
+ <locked>0</locked>
+ <mute>0</mute>
+ <solo>0</solo>
+ <prefader>0</prefader>
+ <off>1</off>
+ <controller id="0" cur="0.000000">
+ </controller>
+ <controller id="1" cur="0.000000">
+ </controller>
+ <class>vam</class>
+ <port>3</port>
+ <guiVisible>0</guiVisible>
+ </SynthI>
+ <Route>
+ <srcNode>1:Out 1</srcNode>
+ <dstNode>alsa_pcm:playback_1</dstNode>
+ </Route>
+ <Route>
+ <srcNode>2:Out 1</srcNode>
+ <dstNode>alsa_pcm:playback_2</dstNode>
+ </Route>
+ <Route>
+ <srcNode>fluid-1</srcNode>
+ <dstNode>Out 1</dstNode>
+ </Route>
+ <Route>
+ <srcNode>organ-1</srcNode>
+ <dstNode>Out 1</dstNode>
+ </Route>
+ <Route>
+ <srcNode>s1-1</srcNode>
+ <dstNode>Out 1</dstNode>
+ </Route>
+ <Route>
+ <srcNode>vam-1</srcNode>
+ <dstNode>Out 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>
+ </topwin>
+ </audiomixer>
+ <part>0:0</part>
+ <pianoroll>
+ <midieditor>
+ <topwin>
+ </topwin>
+ <quant>96</quant>
+ <raster>96</raster>
+ </midieditor>
+ <splitter>255 </splitter>
+ <steprec>0</steprec>
+ <midiin>0</midiin>
+ <tool>1</tool>
+ <quantStrength>80</quantStrength>
+ <quantLimit>50</quantLimit>
+ <quantLen>0</quantLen>
+ <playEvents>0</playEvents>
+ <xpos>0</xpos>
+ <xmag>346</xmag>
+ <ypos>390</ypos>
+ <ymag>286</ymag>
+ </pianoroll>
+ </toplevels>
+ </muse>
diff --git a/muse2/share/wallpapers/Makefile.am b/muse2/share/wallpapers/Makefile.am
new file mode 100644
index 00000000..57946365
--- /dev/null
+++ b/muse2/share/wallpapers/Makefile.am
@@ -0,0 +1,5 @@
+EXTRA_DIST = $(wildcard *.gif) $(wildcard *.jpg) $(wildcard *.png)
+
+wallpkgdata_DATA = $(EXTRA_DIST)
+
+wallpkgdatadir = $(pkgdatadir)/wallpapers
diff --git a/muse2/share/wallpapers/Makefile.in b/muse2/share/wallpapers/Makefile.in
new file mode 100644
index 00000000..ac556a0c
--- /dev/null
+++ b/muse2/share/wallpapers/Makefile.in
@@ -0,0 +1,465 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = share/wallpapers
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal-include.m4 \
+ $(top_srcdir)/m4/alsa.m4 $(top_srcdir)/m4/docbook.m4 \
+ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
+ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
+ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+SOURCES =
+DIST_SOURCES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__installdirs = "$(DESTDIR)$(wallpkgdatadir)"
+DATA = $(wallpkgdata_DATA)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ALSA_CFLAGS = @ALSA_CFLAGS@
+ALSA_LIBS = @ALSA_LIBS@
+AMTAR = @AMTAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DOCBOOKSTYLE = @DOCBOOKSTYLE@
+DOCBOOKTARGETS = @DOCBOOKTARGETS@
+DOT = @DOT@
+DOTPATH = @DOTPATH@
+DOXYGEN = @DOXYGEN@
+DOXYGEN_TREEVIEW = @DOXYGEN_TREEVIEW@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+FLUIDSYNTHDIRS = @FLUIDSYNTHDIRS@
+FST_CFLAGS = @FST_CFLAGS@
+FST_LIBS = @FST_LIBS@
+Fluidsynth_CFLAGS = @Fluidsynth_CFLAGS@
+Fluidsynth_LIBS = @Fluidsynth_LIBS@
+GIVERTCAP = @GIVERTCAP@
+GREP = @GREP@
+HAVEDOT = @HAVEDOT@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JACK_CFLAGS = @JACK_CFLAGS@
+JACK_LIBS = @JACK_LIBS@
+JADE = @JADE@
+LASH_CFLAGS = @LASH_CFLAGS@
+LASH_LIBS = @LASH_LIBS@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LO_CFLAGS = @LO_CFLAGS@
+LO_LIBS = @LO_LIBS@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+MUSECXXFLAGS = @MUSECXXFLAGS@
+NM = @NM@
+NMEDIT = @NMEDIT@
+NSGMLS = @NSGMLS@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PCH = @PCH@
+PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+PYTHON = @PYTHON@
+PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
+PYTHON_INCLUDES = @PYTHON_INCLUDES@
+PYTHON_LIB = @PYTHON_LIB@
+PYTHON_PLATFORM = @PYTHON_PLATFORM@
+PYTHON_PREFIX = @PYTHON_PREFIX@
+PYTHON_VERSION = @PYTHON_VERSION@
+QTDIR_BIN = @QTDIR_BIN@
+QTDIR_INC = @QTDIR_INC@
+QT_LIBS = @QT_LIBS@
+RANLIB = @RANLIB@
+SAMPLERATE_CFLAGS = @SAMPLERATE_CFLAGS@
+SAMPLERATE_LIBS = @SAMPLERATE_LIBS@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SNDFILE_CFLAGS = @SNDFILE_CFLAGS@
+SNDFILE_LIBS = @SNDFILE_LIBS@
+STRIP = @STRIP@
+SUIDBUILD = @SUIDBUILD@
+SUIDINSTALL = @SUIDINSTALL@
+USE_SSE = @USE_SSE@
+UUID_CFLAGS = @UUID_CFLAGS@
+UUID_LIBS = @UUID_LIBS@
+VERSION = @VERSION@
+XMKMF = @XMKMF@
+X_CFLAGS = @X_CFLAGS@
+X_EXTRA_LIBS = @X_EXTRA_LIBS@
+X_LIBS = @X_LIBS@
+X_PRE_LIBS = @X_PRE_LIBS@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+have_docbook = @have_docbook@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+lt_ECHO = @lt_ECHO@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+pkgpyexecdir = @pkgpyexecdir@
+pkgpythondir = @pkgpythondir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+pyexecdir = @pyexecdir@
+pythondir = @pythondir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+synth_fluid = @synth_fluid@
+synth_fluidsynth = @synth_fluidsynth@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+EXTRA_DIST = $(wildcard *.gif) $(wildcard *.jpg) $(wildcard *.png)
+wallpkgdata_DATA = $(EXTRA_DIST)
+wallpkgdatadir = $(pkgdatadir)/wallpapers
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu share/wallpapers/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu share/wallpapers/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+install-wallpkgdataDATA: $(wallpkgdata_DATA)
+ @$(NORMAL_INSTALL)
+ test -z "$(wallpkgdatadir)" || $(MKDIR_P) "$(DESTDIR)$(wallpkgdatadir)"
+ @list='$(wallpkgdata_DATA)'; test -n "$(wallpkgdatadir)" || list=; \
+ for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(wallpkgdatadir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(wallpkgdatadir)" || exit $$?; \
+ done
+
+uninstall-wallpkgdataDATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(wallpkgdata_DATA)'; test -n "$(wallpkgdatadir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ test -n "$$files" || exit 0; \
+ echo " ( cd '$(DESTDIR)$(wallpkgdatadir)' && rm -f" $$files ")"; \
+ cd "$(DESTDIR)$(wallpkgdatadir)" && rm -f $$files
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile $(DATA)
+installdirs:
+ for dir in "$(DESTDIR)$(wallpkgdatadir)"; do \
+ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-wallpkgdataDATA
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-wallpkgdataDATA
+
+.MAKE: install-am install-strip
+
+.PHONY: all all-am check check-am clean clean-generic clean-libtool \
+ distclean distclean-generic distclean-libtool distdir dvi \
+ dvi-am html html-am info info-am install install-am \
+ install-data install-data-am install-dvi install-dvi-am \
+ install-exec install-exec-am install-html install-html-am \
+ install-info install-info-am install-man install-pdf \
+ install-pdf-am install-ps install-ps-am install-strip \
+ install-wallpkgdataDATA installcheck installcheck-am \
+ installdirs maintainer-clean maintainer-clean-generic \
+ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
+ ps ps-am uninstall uninstall-am uninstall-wallpkgdataDATA
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/muse2/share/wallpapers/gray.gif b/muse2/share/wallpapers/gray.gif
new file mode 100644
index 00000000..cb30e856
--- /dev/null
+++ b/muse2/share/wallpapers/gray.gif
Binary files differ
diff --git a/muse2/share/wallpapers/gray_rock.gif b/muse2/share/wallpapers/gray_rock.gif
new file mode 100644
index 00000000..dcf1a19b
--- /dev/null
+++ b/muse2/share/wallpapers/gray_rock.gif
Binary files differ
diff --git a/muse2/share/wallpapers/gray_stucco.gif b/muse2/share/wallpapers/gray_stucco.gif
new file mode 100644
index 00000000..bcebdb02
--- /dev/null
+++ b/muse2/share/wallpapers/gray_stucco.gif
Binary files differ
diff --git a/muse2/share/wallpapers/paper1.jpg b/muse2/share/wallpapers/paper1.jpg
new file mode 100644
index 00000000..1d4923e8
--- /dev/null
+++ b/muse2/share/wallpapers/paper1.jpg
Binary files differ
diff --git a/muse2/share/wallpapers/stone1.gif b/muse2/share/wallpapers/stone1.gif
new file mode 100644
index 00000000..f45407cc
--- /dev/null
+++ b/muse2/share/wallpapers/stone1.gif
Binary files differ
diff --git a/muse2/synti/Makefile.am b/muse2/synti/Makefile.am
new file mode 100644
index 00000000..b1d11400
--- /dev/null
+++ b/muse2/synti/Makefile.am
@@ -0,0 +1,19 @@
+#if ENABLEFLUIDSYNTH
+#SUBDIRS = libsynti s1 organ fluidsynth fluid vam deicsonze simpledrums
+#else
+#SUBDIRS = libsynti s1 organ vam deicsonze simpledrums
+#endif
+SUBDIRS = libsynti\
+ s1 \
+ organ \
+ $(synth_fluidsynth) \
+ $(synth_fluid) \
+ vam \
+ simpledrums
+# deicsonze
+# deicsonze2
+
+include $(top_srcdir)/common.am
+
+EXTRA_DIST = synti-install.am
+
diff --git a/muse2/synti/Makefile.in b/muse2/synti/Makefile.in
new file mode 100644
index 00000000..a39b9d9b
--- /dev/null
+++ b/muse2/synti/Makefile.in
@@ -0,0 +1,683 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
+ $(top_srcdir)/common.am
+subdir = synti
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal-include.m4 \
+ $(top_srcdir)/m4/alsa.m4 $(top_srcdir)/m4/docbook.m4 \
+ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
+ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
+ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+SOURCES =
+DIST_SOURCES =
+RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
+ html-recursive info-recursive install-data-recursive \
+ install-dvi-recursive install-exec-recursive \
+ install-html-recursive install-info-recursive \
+ install-pdf-recursive install-ps-recursive install-recursive \
+ installcheck-recursive installdirs-recursive pdf-recursive \
+ ps-recursive uninstall-recursive
+RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
+ distclean-recursive maintainer-clean-recursive
+AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
+ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
+ distdir
+ETAGS = etags
+CTAGS = ctags
+DIST_SUBDIRS = $(SUBDIRS)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+am__relativize = \
+ dir0=`pwd`; \
+ sed_first='s,^\([^/]*\)/.*$$,\1,'; \
+ sed_rest='s,^[^/]*/*,,'; \
+ sed_last='s,^.*/\([^/]*\)$$,\1,'; \
+ sed_butlast='s,/*[^/]*$$,,'; \
+ while test -n "$$dir1"; do \
+ first=`echo "$$dir1" | sed -e "$$sed_first"`; \
+ if test "$$first" != "."; then \
+ if test "$$first" = ".."; then \
+ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
+ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
+ else \
+ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
+ if test "$$first2" = "$$first"; then \
+ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
+ else \
+ dir2="../$$dir2"; \
+ fi; \
+ dir0="$$dir0"/"$$first"; \
+ fi; \
+ fi; \
+ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
+ done; \
+ reldir="$$dir2"
+ACLOCAL = @ACLOCAL@
+ALSA_CFLAGS = @ALSA_CFLAGS@
+ALSA_LIBS = @ALSA_LIBS@
+AMTAR = @AMTAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DOCBOOKSTYLE = @DOCBOOKSTYLE@
+DOCBOOKTARGETS = @DOCBOOKTARGETS@
+DOT = @DOT@
+DOTPATH = @DOTPATH@
+DOXYGEN = @DOXYGEN@
+DOXYGEN_TREEVIEW = @DOXYGEN_TREEVIEW@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+FLUIDSYNTHDIRS = @FLUIDSYNTHDIRS@
+FST_CFLAGS = @FST_CFLAGS@
+FST_LIBS = @FST_LIBS@
+Fluidsynth_CFLAGS = @Fluidsynth_CFLAGS@
+Fluidsynth_LIBS = @Fluidsynth_LIBS@
+GIVERTCAP = @GIVERTCAP@
+GREP = @GREP@
+HAVEDOT = @HAVEDOT@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JACK_CFLAGS = @JACK_CFLAGS@
+JACK_LIBS = @JACK_LIBS@
+JADE = @JADE@
+LASH_CFLAGS = @LASH_CFLAGS@
+LASH_LIBS = @LASH_LIBS@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LO_CFLAGS = @LO_CFLAGS@
+LO_LIBS = @LO_LIBS@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+MUSECXXFLAGS = @MUSECXXFLAGS@
+NM = @NM@
+NMEDIT = @NMEDIT@
+NSGMLS = @NSGMLS@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PCH = @PCH@
+PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+PYTHON = @PYTHON@
+PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
+PYTHON_INCLUDES = @PYTHON_INCLUDES@
+PYTHON_LIB = @PYTHON_LIB@
+PYTHON_PLATFORM = @PYTHON_PLATFORM@
+PYTHON_PREFIX = @PYTHON_PREFIX@
+PYTHON_VERSION = @PYTHON_VERSION@
+QTDIR_BIN = @QTDIR_BIN@
+QTDIR_INC = @QTDIR_INC@
+QT_LIBS = @QT_LIBS@
+RANLIB = @RANLIB@
+SAMPLERATE_CFLAGS = @SAMPLERATE_CFLAGS@
+SAMPLERATE_LIBS = @SAMPLERATE_LIBS@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SNDFILE_CFLAGS = @SNDFILE_CFLAGS@
+SNDFILE_LIBS = @SNDFILE_LIBS@
+STRIP = @STRIP@
+SUIDBUILD = @SUIDBUILD@
+SUIDINSTALL = @SUIDINSTALL@
+USE_SSE = @USE_SSE@
+UUID_CFLAGS = @UUID_CFLAGS@
+UUID_LIBS = @UUID_LIBS@
+VERSION = @VERSION@
+XMKMF = @XMKMF@
+X_CFLAGS = @X_CFLAGS@
+X_EXTRA_LIBS = @X_EXTRA_LIBS@
+X_LIBS = @X_LIBS@
+X_PRE_LIBS = @X_PRE_LIBS@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+have_docbook = @have_docbook@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+lt_ECHO = @lt_ECHO@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+pkgpyexecdir = @pkgpyexecdir@
+pkgpythondir = @pkgpythondir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+pyexecdir = @pyexecdir@
+pythondir = @pythondir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+synth_fluid = @synth_fluid@
+synth_fluidsynth = @synth_fluidsynth@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+
+#if ENABLEFLUIDSYNTH
+#SUBDIRS = libsynti s1 organ fluidsynth fluid vam deicsonze simpledrums
+#else
+#SUBDIRS = libsynti s1 organ vam deicsonze simpledrums
+#endif
+SUBDIRS = libsynti\
+ s1 \
+ organ \
+ $(synth_fluidsynth) \
+ $(synth_fluid) \
+ vam \
+ simpledrums
+
+AM_CXXFLAGS = $(MUSECXXFLAGS) -I.. -I$(top_srcdir)/synti \
+ -I$(top_srcdir)/muse/widgets -DQT_SHARED -DQT_THREAD_SUPPORT \
+ -DQT_PLUGIN $(QTDIR_INC) -DQT3_SUPPORT
+AM_CPPFLAGS =
+MOC = $(QTDIR_BIN)/moc
+#UIC = $(QTDIR_BIN)/uic3
+UIC = /usr/bin/uic3
+UIFILES = $(wildcard *.ui)
+MOCFILES = $(shell for h in $(filter %.h,$(SOURCES)); do \
+ if grep -q Q_OBJECT $$h; then \
+ echo $$h | sed "s/\(.*\)\.h/moc_\1.cpp/"; \
+ fi; \
+ done)
+
+BUILT_SOURCES = $(MOCFILES) $(UIFILES:%.ui=%.h)
+MOSTLYCLEANFILES = $(MOCFILES) $(UIFILES:%.ui=%.h)
+SUFFIXES = .ui .h.gch
+# deicsonze
+# deicsonze2
+EXTRA_DIST = synti-install.am
+all: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) all-recursive
+
+.SUFFIXES:
+.SUFFIXES: .ui .h.gch .lo .o
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/common.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu synti/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu synti/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+
+# This directory's subdirectories are mostly independent; you can cd
+# into them and run `make' without going through this Makefile.
+# To change the values of `make' variables: instead of editing Makefiles,
+# (1) if the variable is set in `config.status', edit `config.status'
+# (which will cause the Makefiles to be regenerated when you run `make');
+# (2) otherwise, pass the desired values on the `make' command line.
+$(RECURSIVE_TARGETS):
+ @fail= failcom='exit 1'; \
+ for f in x $$MAKEFLAGS; do \
+ case $$f in \
+ *=* | --[!k]*);; \
+ *k*) failcom='fail=yes';; \
+ esac; \
+ done; \
+ dot_seen=no; \
+ target=`echo $@ | sed s/-recursive//`; \
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ echo "Making $$target in $$subdir"; \
+ if test "$$subdir" = "."; then \
+ dot_seen=yes; \
+ local_target="$$target-am"; \
+ else \
+ local_target="$$target"; \
+ fi; \
+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ || eval $$failcom; \
+ done; \
+ if test "$$dot_seen" = "no"; then \
+ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
+ fi; test -z "$$fail"
+
+$(RECURSIVE_CLEAN_TARGETS):
+ @fail= failcom='exit 1'; \
+ for f in x $$MAKEFLAGS; do \
+ case $$f in \
+ *=* | --[!k]*);; \
+ *k*) failcom='fail=yes';; \
+ esac; \
+ done; \
+ dot_seen=no; \
+ case "$@" in \
+ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+ *) list='$(SUBDIRS)' ;; \
+ esac; \
+ rev=''; for subdir in $$list; do \
+ if test "$$subdir" = "."; then :; else \
+ rev="$$subdir $$rev"; \
+ fi; \
+ done; \
+ rev="$$rev ."; \
+ target=`echo $@ | sed s/-recursive//`; \
+ for subdir in $$rev; do \
+ echo "Making $$target in $$subdir"; \
+ if test "$$subdir" = "."; then \
+ local_target="$$target-am"; \
+ else \
+ local_target="$$target"; \
+ fi; \
+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ || eval $$failcom; \
+ done && test -z "$$fail"
+tags-recursive:
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+ done
+ctags-recursive:
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
+ done
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ mkid -fID $$unique
+tags: TAGS
+
+TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ set x; \
+ here=`pwd`; \
+ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
+ include_option=--etags-include; \
+ empty_fix=.; \
+ else \
+ include_option=--include; \
+ empty_fix=; \
+ fi; \
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ test ! -f $$subdir/TAGS || \
+ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
+ fi; \
+ done; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: CTAGS
+CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+ @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ test -d "$(distdir)/$$subdir" \
+ || $(MKDIR_P) "$(distdir)/$$subdir" \
+ || exit 1; \
+ fi; \
+ done
+ @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
+ $(am__relativize); \
+ new_distdir=$$reldir; \
+ dir1=$$subdir; dir2="$(top_distdir)"; \
+ $(am__relativize); \
+ new_top_distdir=$$reldir; \
+ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
+ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
+ ($(am__cd) $$subdir && \
+ $(MAKE) $(AM_MAKEFLAGS) \
+ top_distdir="$$new_top_distdir" \
+ distdir="$$new_distdir" \
+ am__remove_distdir=: \
+ am__skip_length_check=: \
+ am__skip_mode_fix=: \
+ distdir) \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) check-recursive
+all-am: Makefile
+installdirs: installdirs-recursive
+installdirs-am:
+install: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) install-recursive
+install-exec: install-exec-recursive
+install-data: install-data-recursive
+uninstall: uninstall-recursive
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-recursive
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+ -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES)
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+ -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
+clean: clean-recursive
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-recursive
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-tags
+
+dvi: dvi-recursive
+
+dvi-am:
+
+html: html-recursive
+
+html-am:
+
+info: info-recursive
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-recursive
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-recursive
+
+install-html-am:
+
+install-info: install-info-recursive
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-recursive
+
+install-pdf-am:
+
+install-ps: install-ps-recursive
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-recursive
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-recursive
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-recursive
+
+pdf-am:
+
+ps: ps-recursive
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) all check \
+ ctags-recursive install install-am install-strip \
+ tags-recursive
+
+.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
+ all all-am check check-am clean clean-generic clean-libtool \
+ ctags ctags-recursive distclean distclean-generic \
+ distclean-libtool distclean-tags distdir dvi dvi-am html \
+ html-am info info-am install install-am install-data \
+ install-data-am install-dvi install-dvi-am install-exec \
+ install-exec-am install-html install-html-am install-info \
+ install-info-am install-man install-pdf install-pdf-am \
+ install-ps install-ps-am install-strip installcheck \
+ installcheck-am installdirs installdirs-am maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-generic \
+ mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \
+ uninstall uninstall-am
+
+
+de:
+ @for base in $(MOCFILES); do echo -e "\t$${base}.cpp $${base}.h \\"; done
+
+nde:
+ @for base in $(MOCFILES); do echo -e "\tmoc_$${base}.cpp \\"; done
+
+.ui.o: %.h
+ $(UIC) -L $(top_srcdir)/muse/widgets -o $*.cpp -impl $*.h $*.ui
+ $(MOC) $*.h >> $*.cpp
+ $(CXXCOMPILE) -c $*.cpp -o $*.o
+ $(RM) $*.cpp moc_$*.cpp moc_$*.o
+
+.ui.lo: %.h
+ $(UIC) -L $(top_srcdir)/muse/widgets -o $*.cpp -impl $*.h $*.ui
+ $(MOC) $*.h >> $*.cpp
+ $(LTCXXCOMPILE) -c $*.cpp -o $*.lo
+ $(RM) $*.cpp moc_$*.cpp moc_$*.lo moc_$*.o
+
+moc_%.cpp: %.h
+ $(MOC) $< -o $@
+
+%.h: %.ui
+ $(UIC) -o $@ $<
+# $(UIC) -L $(top_srcdir)/muse/widgets -o $@ $<
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/muse2/synti/deicsonze/.deps/deicsonze.Plo b/muse2/synti/deicsonze/.deps/deicsonze.Plo
new file mode 100644
index 00000000..64f193a6
--- /dev/null
+++ b/muse2/synti/deicsonze/.deps/deicsonze.Plo
@@ -0,0 +1,768 @@
+deicsonze.lo: deicsonze.cpp /usr/include/c++/4.4/cmath \
+ /usr/include/c++/4.4/i486-linux-gnu/bits/c++config.h \
+ /usr/include/c++/4.4/i486-linux-gnu/bits/os_defines.h \
+ /usr/include/features.h /usr/include/bits/predefs.h \
+ /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h \
+ /usr/include/gnu/stubs.h /usr/include/gnu/stubs-32.h \
+ /usr/include/c++/4.4/i486-linux-gnu/bits/cpu_defines.h \
+ /usr/include/c++/4.4/bits/cpp_type_traits.h \
+ /usr/include/c++/4.4/ext/type_traits.h /usr/include/math.h \
+ /usr/include/bits/huge_val.h /usr/include/bits/huge_valf.h \
+ /usr/include/bits/huge_vall.h /usr/include/bits/inf.h \
+ /usr/include/bits/nan.h /usr/include/bits/mathdef.h \
+ /usr/include/bits/mathcalls.h /usr/include/bits/mathinline.h \
+ /usr/include/c++/4.4/bits/cmath.tcc /usr/include/c++/4.4/list \
+ /usr/include/c++/4.4/bits/stl_algobase.h /usr/include/c++/4.4/cstddef \
+ /usr/lib/gcc/i486-linux-gnu/4.4.3/include/stddef.h \
+ /usr/include/c++/4.4/bits/functexcept.h \
+ /usr/include/c++/4.4/exception_defines.h \
+ /usr/include/c++/4.4/ext/numeric_traits.h \
+ /usr/include/c++/4.4/bits/stl_pair.h /usr/include/c++/4.4/bits/move.h \
+ /usr/include/c++/4.4/bits/concept_check.h \
+ /usr/include/c++/4.4/bits/stl_iterator_base_types.h \
+ /usr/include/c++/4.4/bits/stl_iterator_base_funcs.h \
+ /usr/include/c++/4.4/bits/stl_iterator.h \
+ /usr/include/c++/4.4/debug/debug.h /usr/include/c++/4.4/bits/allocator.h \
+ /usr/include/c++/4.4/i486-linux-gnu/bits/c++allocator.h \
+ /usr/include/c++/4.4/ext/new_allocator.h /usr/include/c++/4.4/new \
+ /usr/include/c++/4.4/exception /usr/include/c++/4.4/bits/stl_list.h \
+ /usr/include/c++/4.4/initializer_list /usr/include/c++/4.4/bits/list.tcc \
+ /usr/include/stdio.h /usr/include/bits/types.h \
+ /usr/include/bits/typesizes.h /usr/include/libio.h \
+ /usr/include/_G_config.h /usr/include/wchar.h \
+ /usr/lib/gcc/i486-linux-gnu/4.4.3/include/stdarg.h \
+ /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
+ /usr/include/bits/stdio.h /usr/include/bits/stdio2.h ../libsynti/mess.h \
+ ../libsynti/mpevent.h ../libsynti/evdata.h /usr/include/memory.h \
+ /usr/include/string.h /usr/include/xlocale.h /usr/include/bits/string3.h \
+ ../../muse/midictrl.h /usr/share/qt4/include/QtCore/qstring.h \
+ /usr/share/qt4/include/QtCore/qchar.h \
+ /usr/share/qt4/include/QtCore/qglobal.h \
+ /usr/share/qt4/include/QtCore/qconfig.h \
+ /usr/share/qt4/include/QtCore/qfeatures.h \
+ /usr/share/qt4/include/QtCore/qbytearray.h \
+ /usr/share/qt4/include/QtCore/qatomic.h \
+ /usr/share/qt4/include/QtCore/qbasicatomic.h \
+ /usr/share/qt4/include/QtCore/qatomic_arch.h \
+ /usr/share/qt4/include/QtCore/qatomic_i386.h \
+ /usr/share/qt4/include/QtCore/qnamespace.h /usr/include/c++/4.4/string \
+ /usr/include/c++/4.4/bits/stringfwd.h \
+ /usr/include/c++/4.4/bits/char_traits.h \
+ /usr/include/c++/4.4/bits/postypes.h /usr/include/c++/4.4/cwchar \
+ /usr/include/bits/wchar.h /usr/include/bits/wchar2.h \
+ /usr/include/c++/4.4/bits/localefwd.h \
+ /usr/include/c++/4.4/i486-linux-gnu/bits/c++locale.h \
+ /usr/include/c++/4.4/clocale /usr/include/locale.h \
+ /usr/include/bits/locale.h /usr/include/c++/4.4/iosfwd \
+ /usr/include/c++/4.4/cctype /usr/include/ctype.h /usr/include/endian.h \
+ /usr/include/bits/endian.h /usr/include/bits/byteswap.h \
+ /usr/include/c++/4.4/bits/ostream_insert.h \
+ /usr/include/c++/4.4/cxxabi-forced.h \
+ /usr/include/c++/4.4/bits/stl_function.h \
+ /usr/include/c++/4.4/backward/binders.h \
+ /usr/include/c++/4.4/bits/basic_string.h \
+ /usr/include/c++/4.4/ext/atomicity.h \
+ /usr/include/c++/4.4/i486-linux-gnu/bits/gthr.h \
+ /usr/include/c++/4.4/i486-linux-gnu/bits/gthr-default.h \
+ /usr/include/pthread.h /usr/include/sched.h /usr/include/time.h \
+ /usr/include/bits/sched.h /usr/include/bits/time.h /usr/include/signal.h \
+ /usr/include/bits/sigset.h /usr/include/bits/pthreadtypes.h \
+ /usr/include/bits/setjmp.h /usr/include/unistd.h \
+ /usr/include/bits/posix_opt.h /usr/include/bits/environments.h \
+ /usr/include/bits/confname.h /usr/include/getopt.h \
+ /usr/include/bits/unistd.h \
+ /usr/include/c++/4.4/i486-linux-gnu/bits/atomic_word.h \
+ /usr/include/c++/4.4/bits/basic_string.tcc /usr/include/c++/4.4/map \
+ /usr/include/c++/4.4/bits/stl_tree.h /usr/include/c++/4.4/bits/stl_map.h \
+ /usr/include/c++/4.4/bits/stl_multimap.h deicsonze.h \
+ /usr/include/c++/4.4/iostream /usr/include/c++/4.4/ostream \
+ /usr/include/c++/4.4/ios /usr/include/c++/4.4/bits/ios_base.h \
+ /usr/include/c++/4.4/bits/locale_classes.h \
+ /usr/include/c++/4.4/bits/locale_classes.tcc \
+ /usr/include/c++/4.4/streambuf /usr/include/c++/4.4/bits/streambuf.tcc \
+ /usr/include/c++/4.4/bits/basic_ios.h \
+ /usr/include/c++/4.4/bits/locale_facets.h /usr/include/c++/4.4/cwctype \
+ /usr/include/wctype.h \
+ /usr/include/c++/4.4/i486-linux-gnu/bits/ctype_base.h \
+ /usr/include/c++/4.4/bits/streambuf_iterator.h \
+ /usr/include/c++/4.4/i486-linux-gnu/bits/ctype_inline.h \
+ /usr/include/c++/4.4/bits/locale_facets.tcc \
+ /usr/include/c++/4.4/bits/basic_ios.tcc \
+ /usr/include/c++/4.4/bits/ostream.tcc /usr/include/c++/4.4/istream \
+ /usr/include/c++/4.4/bits/istream.tcc /usr/include/c++/4.4/vector \
+ /usr/include/c++/4.4/bits/stl_construct.h \
+ /usr/include/c++/4.4/bits/stl_uninitialized.h \
+ /usr/include/c++/4.4/bits/stl_vector.h \
+ /usr/include/c++/4.4/bits/stl_bvector.h \
+ /usr/include/c++/4.4/bits/vector.tcc deicsonzegui.h \
+ /usr/share/qt4/include/Qt3Support/q3listview.h \
+ /usr/share/qt4/include/Qt3Support/q3scrollview.h \
+ /usr/share/qt4/include/Qt3Support/q3frame.h \
+ /usr/share/qt4/include/QtGui/qframe.h \
+ /usr/share/qt4/include/QtGui/qwidget.h \
+ /usr/share/qt4/include/QtGui/qwindowdefs.h \
+ /usr/share/qt4/include/QtCore/qobjectdefs.h \
+ /usr/share/qt4/include/QtCore/qobject.h \
+ /usr/share/qt4/include/QtCore/qstring.h \
+ /usr/share/qt4/include/QtCore/qlist.h \
+ /usr/share/qt4/include/QtCore/qiterator.h \
+ /usr/share/qt4/include/QtCore/qalgorithms.h \
+ /usr/include/c++/4.4/iterator \
+ /usr/include/c++/4.4/bits/stream_iterator.h \
+ /usr/share/qt4/include/QtCore/qscopedpointer.h \
+ /usr/share/qt4/include/QtCore/qmargins.h \
+ /usr/share/qt4/include/QtGui/qpaintdevice.h \
+ /usr/share/qt4/include/QtCore/qrect.h \
+ /usr/share/qt4/include/QtCore/qsize.h \
+ /usr/share/qt4/include/QtCore/qpoint.h \
+ /usr/share/qt4/include/QtGui/qpalette.h \
+ /usr/share/qt4/include/QtGui/qcolor.h \
+ /usr/share/qt4/include/QtGui/qrgb.h \
+ /usr/share/qt4/include/QtCore/qstringlist.h \
+ /usr/share/qt4/include/QtCore/qdatastream.h \
+ /usr/share/qt4/include/QtCore/qiodevice.h \
+ /usr/share/qt4/include/QtCore/qregexp.h \
+ /usr/share/qt4/include/QtCore/qstringmatcher.h \
+ /usr/share/qt4/include/QtGui/qbrush.h \
+ /usr/share/qt4/include/QtCore/qpair.h \
+ /usr/share/qt4/include/QtCore/qvector.h /usr/include/stdlib.h \
+ /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
+ /usr/include/sys/types.h /usr/include/sys/select.h \
+ /usr/include/bits/select.h /usr/include/sys/sysmacros.h \
+ /usr/include/alloca.h /usr/include/bits/stdlib.h \
+ /usr/share/qt4/include/QtGui/qmatrix.h \
+ /usr/share/qt4/include/QtGui/qpolygon.h \
+ /usr/share/qt4/include/QtGui/qregion.h \
+ /usr/share/qt4/include/QtCore/qline.h \
+ /usr/share/qt4/include/QtGui/qwmatrix.h \
+ /usr/share/qt4/include/QtGui/qtransform.h \
+ /usr/share/qt4/include/QtGui/qpainterpath.h \
+ /usr/share/qt4/include/QtGui/qimage.h \
+ /usr/share/qt4/include/QtGui/qpixmap.h \
+ /usr/share/qt4/include/QtCore/qsharedpointer.h \
+ /usr/share/qt4/include/QtCore/qshareddata.h \
+ /usr/share/qt4/include/QtCore/qsharedpointer_impl.h \
+ /usr/share/qt4/include/QtGui/qfont.h \
+ /usr/share/qt4/include/QtGui/qfontmetrics.h \
+ /usr/share/qt4/include/QtGui/qfontinfo.h \
+ /usr/share/qt4/include/QtGui/qsizepolicy.h \
+ /usr/share/qt4/include/QtGui/qcursor.h \
+ /usr/share/qt4/include/QtGui/qkeysequence.h \
+ /usr/share/qt4/include/QtGui/qscrollbar.h \
+ /usr/share/qt4/include/QtGui/qabstractslider.h deicsonzeguibase.h \
+ /usr/share/qt4/include/QtCore/qvariant.h \
+ /usr/share/qt4/include/QtCore/qmetatype.h \
+ /usr/share/qt4/include/QtCore/qmap.h \
+ /usr/share/qt4/include/QtCore/qhash.h \
+ /usr/share/qt4/include/Qt3Support/Q3GroupBox \
+ /usr/share/qt4/include/Qt3Support/q3groupbox.h \
+ /usr/share/qt4/include/QtGui/qgroupbox.h \
+ /usr/share/qt4/include/Qt3Support/Q3Header \
+ /usr/share/qt4/include/Qt3Support/q3header.h \
+ /usr/share/qt4/include/QtGui/qicon.h \
+ /usr/share/qt4/include/Qt3Support/Q3ListView \
+ /usr/share/qt4/include/Qt3Support/q3listview.h \
+ /usr/share/qt4/include/QtCore/QVariant \
+ /usr/share/qt4/include/QtCore/qvariant.h \
+ /usr/share/qt4/include/QtGui/QAction \
+ /usr/share/qt4/include/QtGui/qaction.h \
+ /usr/share/qt4/include/QtCore/qvariant.h \
+ /usr/share/qt4/include/QtGui/qactiongroup.h \
+ /usr/share/qt4/include/QtGui/qaction.h \
+ /usr/share/qt4/include/QtGui/QApplication \
+ /usr/share/qt4/include/QtGui/qapplication.h \
+ /usr/share/qt4/include/QtCore/qcoreapplication.h \
+ /usr/share/qt4/include/QtCore/qcoreevent.h \
+ /usr/share/qt4/include/QtCore/qeventloop.h \
+ /usr/share/qt4/include/QtGui/QButtonGroup \
+ /usr/share/qt4/include/QtGui/qbuttongroup.h \
+ /usr/share/qt4/include/QtGui/QCheckBox \
+ /usr/share/qt4/include/QtGui/qcheckbox.h \
+ /usr/share/qt4/include/QtGui/qabstractbutton.h \
+ /usr/share/qt4/include/QtGui/QComboBox \
+ /usr/share/qt4/include/QtGui/qcombobox.h \
+ /usr/share/qt4/include/QtGui/qabstractitemdelegate.h \
+ /usr/share/qt4/include/QtGui/qstyleoption.h \
+ /usr/share/qt4/include/QtGui/qabstractspinbox.h \
+ /usr/share/qt4/include/QtGui/qvalidator.h \
+ /usr/share/qt4/include/QtCore/qlocale.h \
+ /usr/share/qt4/include/QtGui/qslider.h \
+ /usr/share/qt4/include/QtGui/qstyle.h \
+ /usr/share/qt4/include/QtGui/qtabbar.h \
+ /usr/share/qt4/include/QtGui/qtabwidget.h \
+ /usr/share/qt4/include/QtGui/qrubberband.h \
+ /usr/share/qt4/include/QtCore/qabstractitemmodel.h \
+ /usr/share/qt4/include/QtGui/QDialog \
+ /usr/share/qt4/include/QtGui/qdialog.h \
+ /usr/share/qt4/include/QtGui/QHeaderView \
+ /usr/share/qt4/include/QtGui/qheaderview.h \
+ /usr/share/qt4/include/QtGui/qabstractitemview.h \
+ /usr/share/qt4/include/QtGui/qabstractscrollarea.h \
+ /usr/share/qt4/include/QtGui/qitemselectionmodel.h \
+ /usr/share/qt4/include/QtCore/qset.h /usr/share/qt4/include/QtGui/QLabel \
+ /usr/share/qt4/include/QtGui/qlabel.h \
+ /usr/share/qt4/include/QtGui/QLineEdit \
+ /usr/share/qt4/include/QtGui/qlineedit.h \
+ /usr/share/qt4/include/QtGui/QPushButton \
+ /usr/share/qt4/include/QtGui/qpushbutton.h \
+ /usr/share/qt4/include/QtGui/QSlider \
+ /usr/share/qt4/include/QtGui/qslider.h \
+ /usr/share/qt4/include/QtGui/QSpinBox \
+ /usr/share/qt4/include/QtGui/qspinbox.h \
+ /usr/share/qt4/include/QtGui/QTabWidget \
+ /usr/share/qt4/include/QtGui/qtabwidget.h \
+ /usr/share/qt4/include/QtGui/QWidget \
+ /usr/share/qt4/include/QtGui/qwidget.h ../libsynti/gui.h \
+ ../../muse/midi.h
+
+/usr/include/c++/4.4/cmath:
+
+/usr/include/c++/4.4/i486-linux-gnu/bits/c++config.h:
+
+/usr/include/c++/4.4/i486-linux-gnu/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/bits/predefs.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/gnu/stubs-32.h:
+
+/usr/include/c++/4.4/i486-linux-gnu/bits/cpu_defines.h:
+
+/usr/include/c++/4.4/bits/cpp_type_traits.h:
+
+/usr/include/c++/4.4/ext/type_traits.h:
+
+/usr/include/math.h:
+
+/usr/include/bits/huge_val.h:
+
+/usr/include/bits/huge_valf.h:
+
+/usr/include/bits/huge_vall.h:
+
+/usr/include/bits/inf.h:
+
+/usr/include/bits/nan.h:
+
+/usr/include/bits/mathdef.h:
+
+/usr/include/bits/mathcalls.h:
+
+/usr/include/bits/mathinline.h:
+
+/usr/include/c++/4.4/bits/cmath.tcc:
+
+/usr/include/c++/4.4/list:
+
+/usr/include/c++/4.4/bits/stl_algobase.h:
+
+/usr/include/c++/4.4/cstddef:
+
+/usr/lib/gcc/i486-linux-gnu/4.4.3/include/stddef.h:
+
+/usr/include/c++/4.4/bits/functexcept.h:
+
+/usr/include/c++/4.4/exception_defines.h:
+
+/usr/include/c++/4.4/ext/numeric_traits.h:
+
+/usr/include/c++/4.4/bits/stl_pair.h:
+
+/usr/include/c++/4.4/bits/move.h:
+
+/usr/include/c++/4.4/bits/concept_check.h:
+
+/usr/include/c++/4.4/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/4.4/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/4.4/bits/stl_iterator.h:
+
+/usr/include/c++/4.4/debug/debug.h:
+
+/usr/include/c++/4.4/bits/allocator.h:
+
+/usr/include/c++/4.4/i486-linux-gnu/bits/c++allocator.h:
+
+/usr/include/c++/4.4/ext/new_allocator.h:
+
+/usr/include/c++/4.4/new:
+
+/usr/include/c++/4.4/exception:
+
+/usr/include/c++/4.4/bits/stl_list.h:
+
+/usr/include/c++/4.4/initializer_list:
+
+/usr/include/c++/4.4/bits/list.tcc:
+
+/usr/include/stdio.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/wchar.h:
+
+/usr/lib/gcc/i486-linux-gnu/4.4.3/include/stdarg.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+/usr/include/bits/stdio2.h:
+
+../libsynti/mess.h:
+
+../libsynti/mpevent.h:
+
+../libsynti/evdata.h:
+
+/usr/include/memory.h:
+
+/usr/include/string.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/bits/string3.h:
+
+../../muse/midictrl.h:
+
+/usr/share/qt4/include/QtCore/qstring.h:
+
+/usr/share/qt4/include/QtCore/qchar.h:
+
+/usr/share/qt4/include/QtCore/qglobal.h:
+
+/usr/share/qt4/include/QtCore/qconfig.h:
+
+/usr/share/qt4/include/QtCore/qfeatures.h:
+
+/usr/share/qt4/include/QtCore/qbytearray.h:
+
+/usr/share/qt4/include/QtCore/qatomic.h:
+
+/usr/share/qt4/include/QtCore/qbasicatomic.h:
+
+/usr/share/qt4/include/QtCore/qatomic_arch.h:
+
+/usr/share/qt4/include/QtCore/qatomic_i386.h:
+
+/usr/share/qt4/include/QtCore/qnamespace.h:
+
+/usr/include/c++/4.4/string:
+
+/usr/include/c++/4.4/bits/stringfwd.h:
+
+/usr/include/c++/4.4/bits/char_traits.h:
+
+/usr/include/c++/4.4/bits/postypes.h:
+
+/usr/include/c++/4.4/cwchar:
+
+/usr/include/bits/wchar.h:
+
+/usr/include/bits/wchar2.h:
+
+/usr/include/c++/4.4/bits/localefwd.h:
+
+/usr/include/c++/4.4/i486-linux-gnu/bits/c++locale.h:
+
+/usr/include/c++/4.4/clocale:
+
+/usr/include/locale.h:
+
+/usr/include/bits/locale.h:
+
+/usr/include/c++/4.4/iosfwd:
+
+/usr/include/c++/4.4/cctype:
+
+/usr/include/ctype.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/bits/byteswap.h:
+
+/usr/include/c++/4.4/bits/ostream_insert.h:
+
+/usr/include/c++/4.4/cxxabi-forced.h:
+
+/usr/include/c++/4.4/bits/stl_function.h:
+
+/usr/include/c++/4.4/backward/binders.h:
+
+/usr/include/c++/4.4/bits/basic_string.h:
+
+/usr/include/c++/4.4/ext/atomicity.h:
+
+/usr/include/c++/4.4/i486-linux-gnu/bits/gthr.h:
+
+/usr/include/c++/4.4/i486-linux-gnu/bits/gthr-default.h:
+
+/usr/include/pthread.h:
+
+/usr/include/sched.h:
+
+/usr/include/time.h:
+
+/usr/include/bits/sched.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/signal.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/bits/setjmp.h:
+
+/usr/include/unistd.h:
+
+/usr/include/bits/posix_opt.h:
+
+/usr/include/bits/environments.h:
+
+/usr/include/bits/confname.h:
+
+/usr/include/getopt.h:
+
+/usr/include/bits/unistd.h:
+
+/usr/include/c++/4.4/i486-linux-gnu/bits/atomic_word.h:
+
+/usr/include/c++/4.4/bits/basic_string.tcc:
+
+/usr/include/c++/4.4/map:
+
+/usr/include/c++/4.4/bits/stl_tree.h:
+
+/usr/include/c++/4.4/bits/stl_map.h:
+
+/usr/include/c++/4.4/bits/stl_multimap.h:
+
+deicsonze.h:
+
+/usr/include/c++/4.4/iostream:
+
+/usr/include/c++/4.4/ostream:
+
+/usr/include/c++/4.4/ios:
+
+/usr/include/c++/4.4/bits/ios_base.h:
+
+/usr/include/c++/4.4/bits/locale_classes.h:
+
+/usr/include/c++/4.4/bits/locale_classes.tcc:
+
+/usr/include/c++/4.4/streambuf:
+
+/usr/include/c++/4.4/bits/streambuf.tcc:
+
+/usr/include/c++/4.4/bits/basic_ios.h:
+
+/usr/include/c++/4.4/bits/locale_facets.h:
+
+/usr/include/c++/4.4/cwctype:
+
+/usr/include/wctype.h:
+
+/usr/include/c++/4.4/i486-linux-gnu/bits/ctype_base.h:
+
+/usr/include/c++/4.4/bits/streambuf_iterator.h:
+
+/usr/include/c++/4.4/i486-linux-gnu/bits/ctype_inline.h:
+
+/usr/include/c++/4.4/bits/locale_facets.tcc:
+
+/usr/include/c++/4.4/bits/basic_ios.tcc:
+
+/usr/include/c++/4.4/bits/ostream.tcc:
+
+/usr/include/c++/4.4/istream:
+
+/usr/include/c++/4.4/bits/istream.tcc:
+
+/usr/include/c++/4.4/vector:
+
+/usr/include/c++/4.4/bits/stl_construct.h:
+
+/usr/include/c++/4.4/bits/stl_uninitialized.h:
+
+/usr/include/c++/4.4/bits/stl_vector.h:
+
+/usr/include/c++/4.4/bits/stl_bvector.h:
+
+/usr/include/c++/4.4/bits/vector.tcc:
+
+deicsonzegui.h:
+
+/usr/share/qt4/include/Qt3Support/q3listview.h:
+
+/usr/share/qt4/include/Qt3Support/q3scrollview.h:
+
+/usr/share/qt4/include/Qt3Support/q3frame.h:
+
+/usr/share/qt4/include/QtGui/qframe.h:
+
+/usr/share/qt4/include/QtGui/qwidget.h:
+
+/usr/share/qt4/include/QtGui/qwindowdefs.h:
+
+/usr/share/qt4/include/QtCore/qobjectdefs.h:
+
+/usr/share/qt4/include/QtCore/qobject.h:
+
+/usr/share/qt4/include/QtCore/qstring.h:
+
+/usr/share/qt4/include/QtCore/qlist.h:
+
+/usr/share/qt4/include/QtCore/qiterator.h:
+
+/usr/share/qt4/include/QtCore/qalgorithms.h:
+
+/usr/include/c++/4.4/iterator:
+
+/usr/include/c++/4.4/bits/stream_iterator.h:
+
+/usr/share/qt4/include/QtCore/qscopedpointer.h:
+
+/usr/share/qt4/include/QtCore/qmargins.h:
+
+/usr/share/qt4/include/QtGui/qpaintdevice.h:
+
+/usr/share/qt4/include/QtCore/qrect.h:
+
+/usr/share/qt4/include/QtCore/qsize.h:
+
+/usr/share/qt4/include/QtCore/qpoint.h:
+
+/usr/share/qt4/include/QtGui/qpalette.h:
+
+/usr/share/qt4/include/QtGui/qcolor.h:
+
+/usr/share/qt4/include/QtGui/qrgb.h:
+
+/usr/share/qt4/include/QtCore/qstringlist.h:
+
+/usr/share/qt4/include/QtCore/qdatastream.h:
+
+/usr/share/qt4/include/QtCore/qiodevice.h:
+
+/usr/share/qt4/include/QtCore/qregexp.h:
+
+/usr/share/qt4/include/QtCore/qstringmatcher.h:
+
+/usr/share/qt4/include/QtGui/qbrush.h:
+
+/usr/share/qt4/include/QtCore/qpair.h:
+
+/usr/share/qt4/include/QtCore/qvector.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/alloca.h:
+
+/usr/include/bits/stdlib.h:
+
+/usr/share/qt4/include/QtGui/qmatrix.h:
+
+/usr/share/qt4/include/QtGui/qpolygon.h:
+
+/usr/share/qt4/include/QtGui/qregion.h:
+
+/usr/share/qt4/include/QtCore/qline.h:
+
+/usr/share/qt4/include/QtGui/qwmatrix.h:
+
+/usr/share/qt4/include/QtGui/qtransform.h:
+
+/usr/share/qt4/include/QtGui/qpainterpath.h:
+
+/usr/share/qt4/include/QtGui/qimage.h:
+
+/usr/share/qt4/include/QtGui/qpixmap.h:
+
+/usr/share/qt4/include/QtCore/qsharedpointer.h:
+
+/usr/share/qt4/include/QtCore/qshareddata.h:
+
+/usr/share/qt4/include/QtCore/qsharedpointer_impl.h:
+
+/usr/share/qt4/include/QtGui/qfont.h:
+
+/usr/share/qt4/include/QtGui/qfontmetrics.h:
+
+/usr/share/qt4/include/QtGui/qfontinfo.h:
+
+/usr/share/qt4/include/QtGui/qsizepolicy.h:
+
+/usr/share/qt4/include/QtGui/qcursor.h:
+
+/usr/share/qt4/include/QtGui/qkeysequence.h:
+
+/usr/share/qt4/include/QtGui/qscrollbar.h:
+
+/usr/share/qt4/include/QtGui/qabstractslider.h:
+
+deicsonzeguibase.h:
+
+/usr/share/qt4/include/QtCore/qvariant.h:
+
+/usr/share/qt4/include/QtCore/qmetatype.h:
+
+/usr/share/qt4/include/QtCore/qmap.h:
+
+/usr/share/qt4/include/QtCore/qhash.h:
+
+/usr/share/qt4/include/Qt3Support/Q3GroupBox:
+
+/usr/share/qt4/include/Qt3Support/q3groupbox.h:
+
+/usr/share/qt4/include/QtGui/qgroupbox.h:
+
+/usr/share/qt4/include/Qt3Support/Q3Header:
+
+/usr/share/qt4/include/Qt3Support/q3header.h:
+
+/usr/share/qt4/include/QtGui/qicon.h:
+
+/usr/share/qt4/include/Qt3Support/Q3ListView:
+
+/usr/share/qt4/include/Qt3Support/q3listview.h:
+
+/usr/share/qt4/include/QtCore/QVariant:
+
+/usr/share/qt4/include/QtCore/qvariant.h:
+
+/usr/share/qt4/include/QtGui/QAction:
+
+/usr/share/qt4/include/QtGui/qaction.h:
+
+/usr/share/qt4/include/QtCore/qvariant.h:
+
+/usr/share/qt4/include/QtGui/qactiongroup.h:
+
+/usr/share/qt4/include/QtGui/qaction.h:
+
+/usr/share/qt4/include/QtGui/QApplication:
+
+/usr/share/qt4/include/QtGui/qapplication.h:
+
+/usr/share/qt4/include/QtCore/qcoreapplication.h:
+
+/usr/share/qt4/include/QtCore/qcoreevent.h:
+
+/usr/share/qt4/include/QtCore/qeventloop.h:
+
+/usr/share/qt4/include/QtGui/QButtonGroup:
+
+/usr/share/qt4/include/QtGui/qbuttongroup.h:
+
+/usr/share/qt4/include/QtGui/QCheckBox:
+
+/usr/share/qt4/include/QtGui/qcheckbox.h:
+
+/usr/share/qt4/include/QtGui/qabstractbutton.h:
+
+/usr/share/qt4/include/QtGui/QComboBox:
+
+/usr/share/qt4/include/QtGui/qcombobox.h:
+
+/usr/share/qt4/include/QtGui/qabstractitemdelegate.h:
+
+/usr/share/qt4/include/QtGui/qstyleoption.h:
+
+/usr/share/qt4/include/QtGui/qabstractspinbox.h:
+
+/usr/share/qt4/include/QtGui/qvalidator.h:
+
+/usr/share/qt4/include/QtCore/qlocale.h:
+
+/usr/share/qt4/include/QtGui/qslider.h:
+
+/usr/share/qt4/include/QtGui/qstyle.h:
+
+/usr/share/qt4/include/QtGui/qtabbar.h:
+
+/usr/share/qt4/include/QtGui/qtabwidget.h:
+
+/usr/share/qt4/include/QtGui/qrubberband.h:
+
+/usr/share/qt4/include/QtCore/qabstractitemmodel.h:
+
+/usr/share/qt4/include/QtGui/QDialog:
+
+/usr/share/qt4/include/QtGui/qdialog.h:
+
+/usr/share/qt4/include/QtGui/QHeaderView:
+
+/usr/share/qt4/include/QtGui/qheaderview.h:
+
+/usr/share/qt4/include/QtGui/qabstractitemview.h:
+
+/usr/share/qt4/include/QtGui/qabstractscrollarea.h:
+
+/usr/share/qt4/include/QtGui/qitemselectionmodel.h:
+
+/usr/share/qt4/include/QtCore/qset.h:
+
+/usr/share/qt4/include/QtGui/QLabel:
+
+/usr/share/qt4/include/QtGui/qlabel.h:
+
+/usr/share/qt4/include/QtGui/QLineEdit:
+
+/usr/share/qt4/include/QtGui/qlineedit.h:
+
+/usr/share/qt4/include/QtGui/QPushButton:
+
+/usr/share/qt4/include/QtGui/qpushbutton.h:
+
+/usr/share/qt4/include/QtGui/QSlider:
+
+/usr/share/qt4/include/QtGui/qslider.h:
+
+/usr/share/qt4/include/QtGui/QSpinBox:
+
+/usr/share/qt4/include/QtGui/qspinbox.h:
+
+/usr/share/qt4/include/QtGui/QTabWidget:
+
+/usr/share/qt4/include/QtGui/qtabwidget.h:
+
+/usr/share/qt4/include/QtGui/QWidget:
+
+/usr/share/qt4/include/QtGui/qwidget.h:
+
+../libsynti/gui.h:
+
+../../muse/midi.h:
diff --git a/muse2/synti/deicsonze/.deps/deicsonzegui.Plo b/muse2/synti/deicsonze/.deps/deicsonzegui.Plo
new file mode 100644
index 00000000..6f6f554c
--- /dev/null
+++ b/muse2/synti/deicsonze/.deps/deicsonzegui.Plo
@@ -0,0 +1,593 @@
+deicsonzegui.lo: deicsonzegui.cpp /usr/share/qt3/include/qvariant.h \
+ /usr/share/qt3/include/qstring.h /usr/share/qt3/include/qcstring.h \
+ /usr/share/qt3/include/qmemarray.h /usr/share/qt3/include/qgarray.h \
+ /usr/share/qt3/include/qshared.h /usr/share/qt3/include/qglobal.h \
+ /usr/share/qt3/include/qconfig.h /usr/share/qt3/include/qmodules.h \
+ /usr/share/qt3/include/qfeatures.h /usr/share/qt3/include/qwinexport.h \
+ /usr/include/string.h /usr/include/features.h \
+ /usr/include/bits/predefs.h /usr/include/sys/cdefs.h \
+ /usr/include/bits/wordsize.h /usr/include/gnu/stubs.h \
+ /usr/include/gnu/stubs-32.h \
+ /usr/lib/gcc/i486-linux-gnu/4.4.3/include/stddef.h \
+ /usr/include/xlocale.h /usr/include/bits/string3.h \
+ /usr/lib/gcc/i486-linux-gnu/4.4.3/include-fixed/limits.h \
+ /usr/lib/gcc/i486-linux-gnu/4.4.3/include-fixed/syslimits.h \
+ /usr/include/limits.h /usr/include/bits/posix1_lim.h \
+ /usr/include/bits/local_lim.h /usr/include/linux/limits.h \
+ /usr/include/bits/posix2_lim.h /usr/include/bits/xopen_lim.h \
+ /usr/include/bits/stdio_lim.h /usr/include/c++/4.4/string \
+ /usr/include/c++/4.4/i486-linux-gnu/bits/c++config.h \
+ /usr/include/c++/4.4/i486-linux-gnu/bits/os_defines.h \
+ /usr/include/c++/4.4/i486-linux-gnu/bits/cpu_defines.h \
+ /usr/include/c++/4.4/bits/stringfwd.h \
+ /usr/include/c++/4.4/bits/char_traits.h \
+ /usr/include/c++/4.4/bits/stl_algobase.h /usr/include/c++/4.4/cstddef \
+ /usr/include/c++/4.4/bits/functexcept.h \
+ /usr/include/c++/4.4/exception_defines.h \
+ /usr/include/c++/4.4/bits/cpp_type_traits.h \
+ /usr/include/c++/4.4/ext/type_traits.h \
+ /usr/include/c++/4.4/ext/numeric_traits.h \
+ /usr/include/c++/4.4/bits/stl_pair.h /usr/include/c++/4.4/bits/move.h \
+ /usr/include/c++/4.4/bits/concept_check.h \
+ /usr/include/c++/4.4/bits/stl_iterator_base_types.h \
+ /usr/include/c++/4.4/bits/stl_iterator_base_funcs.h \
+ /usr/include/c++/4.4/bits/stl_iterator.h \
+ /usr/include/c++/4.4/debug/debug.h /usr/include/c++/4.4/bits/postypes.h \
+ /usr/include/c++/4.4/cwchar /usr/include/wchar.h /usr/include/stdio.h \
+ /usr/lib/gcc/i486-linux-gnu/4.4.3/include/stdarg.h \
+ /usr/include/bits/wchar.h /usr/include/bits/wchar2.h \
+ /usr/include/c++/4.4/bits/allocator.h \
+ /usr/include/c++/4.4/i486-linux-gnu/bits/c++allocator.h \
+ /usr/include/c++/4.4/ext/new_allocator.h /usr/include/c++/4.4/new \
+ /usr/include/c++/4.4/exception /usr/include/c++/4.4/bits/localefwd.h \
+ /usr/include/c++/4.4/i486-linux-gnu/bits/c++locale.h \
+ /usr/include/c++/4.4/clocale /usr/include/locale.h \
+ /usr/include/bits/locale.h /usr/include/c++/4.4/iosfwd \
+ /usr/include/c++/4.4/cctype /usr/include/ctype.h \
+ /usr/include/bits/types.h /usr/include/bits/typesizes.h \
+ /usr/include/endian.h /usr/include/bits/endian.h \
+ /usr/include/bits/byteswap.h /usr/include/c++/4.4/bits/ostream_insert.h \
+ /usr/include/c++/4.4/cxxabi-forced.h \
+ /usr/include/c++/4.4/bits/stl_function.h \
+ /usr/include/c++/4.4/backward/binders.h \
+ /usr/include/c++/4.4/bits/basic_string.h \
+ /usr/include/c++/4.4/ext/atomicity.h \
+ /usr/include/c++/4.4/i486-linux-gnu/bits/gthr.h \
+ /usr/include/c++/4.4/i486-linux-gnu/bits/gthr-default.h \
+ /usr/include/pthread.h /usr/include/sched.h /usr/include/time.h \
+ /usr/include/bits/sched.h /usr/include/bits/time.h /usr/include/signal.h \
+ /usr/include/bits/sigset.h /usr/include/bits/pthreadtypes.h \
+ /usr/include/bits/setjmp.h /usr/include/unistd.h \
+ /usr/include/bits/posix_opt.h /usr/include/bits/environments.h \
+ /usr/include/bits/confname.h /usr/include/getopt.h \
+ /usr/include/bits/unistd.h \
+ /usr/include/c++/4.4/i486-linux-gnu/bits/atomic_word.h \
+ /usr/include/c++/4.4/initializer_list \
+ /usr/include/c++/4.4/bits/basic_string.tcc \
+ /usr/share/qt3/include/qvaluelist.h /usr/share/qt3/include/qtl.h \
+ /usr/share/qt3/include/qtextstream.h /usr/share/qt3/include/qiodevice.h \
+ /usr/include/libio.h /usr/include/_G_config.h \
+ /usr/include/bits/sys_errlist.h /usr/include/bits/stdio.h \
+ /usr/include/bits/stdio2.h /usr/share/qt3/include/qdatastream.h \
+ /usr/include/c++/4.4/iterator /usr/include/c++/4.4/ostream \
+ /usr/include/c++/4.4/ios /usr/include/c++/4.4/bits/ios_base.h \
+ /usr/include/c++/4.4/bits/locale_classes.h \
+ /usr/include/c++/4.4/bits/locale_classes.tcc \
+ /usr/include/c++/4.4/streambuf /usr/include/c++/4.4/bits/streambuf.tcc \
+ /usr/include/c++/4.4/bits/basic_ios.h \
+ /usr/include/c++/4.4/bits/locale_facets.h /usr/include/c++/4.4/cwctype \
+ /usr/include/wctype.h \
+ /usr/include/c++/4.4/i486-linux-gnu/bits/ctype_base.h \
+ /usr/include/c++/4.4/bits/streambuf_iterator.h \
+ /usr/include/c++/4.4/i486-linux-gnu/bits/ctype_inline.h \
+ /usr/include/c++/4.4/bits/locale_facets.tcc \
+ /usr/include/c++/4.4/bits/basic_ios.tcc \
+ /usr/include/c++/4.4/bits/ostream.tcc /usr/include/c++/4.4/istream \
+ /usr/include/c++/4.4/bits/istream.tcc \
+ /usr/include/c++/4.4/bits/stream_iterator.h /usr/include/c++/4.4/list \
+ /usr/include/c++/4.4/bits/stl_list.h /usr/include/c++/4.4/bits/list.tcc \
+ /usr/share/qt3/include/qstringlist.h /usr/share/qt3/include/qstrlist.h \
+ /usr/share/qt3/include/qptrlist.h /usr/share/qt3/include/qglist.h \
+ /usr/share/qt3/include/qptrcollection.h /usr/share/qt3/include/qmap.h \
+ /usr/share/qt3/include/qpair.h /usr/include/c++/4.4/map \
+ /usr/include/c++/4.4/bits/stl_tree.h /usr/include/c++/4.4/bits/stl_map.h \
+ /usr/include/c++/4.4/bits/stl_multimap.h \
+ /usr/share/qt3/include/qgroupbox.h /usr/share/qt3/include/qframe.h \
+ /usr/share/qt3/include/qwidget.h /usr/share/qt3/include/qwindowdefs.h \
+ /usr/share/qt3/include/qobjectdefs.h /usr/share/qt3/include/qnamespace.h \
+ /usr/share/qt3/include/qobject.h /usr/share/qt3/include/qevent.h \
+ /usr/share/qt3/include/qregion.h /usr/share/qt3/include/qrect.h \
+ /usr/share/qt3/include/qsize.h /usr/share/qt3/include/qpoint.h \
+ /usr/share/qt3/include/qmime.h /usr/share/qt3/include/qpaintdevice.h \
+ /usr/share/qt3/include/qpalette.h /usr/share/qt3/include/qcolor.h \
+ /usr/share/qt3/include/qbrush.h /usr/share/qt3/include/qfont.h \
+ /usr/share/qt3/include/qfontmetrics.h /usr/share/qt3/include/qfontinfo.h \
+ /usr/share/qt3/include/qsizepolicy.h /usr/share/qt3/include/qslider.h \
+ /usr/share/qt3/include/qrangecontrol.h \
+ /usr/share/qt3/include/qcombobox.h /usr/share/qt3/include/qcheckbox.h \
+ /usr/share/qt3/include/qbutton.h /usr/share/qt3/include/qkeysequence.h \
+ /usr/share/qt3/include/qlineedit.h /usr/share/qt3/include/qlcdnumber.h \
+ /usr/share/qt3/include/qbitarray.h /usr/share/qt3/include/qlistview.h \
+ /usr/share/qt3/include/qscrollview.h /usr/share/qt3/include/qscrollbar.h \
+ /usr/share/qt3/include/qspinbox.h /usr/share/qt3/include/qlayout.h \
+ /usr/share/qt3/include/qtooltip.h /usr/share/qt3/include/qwhatsthis.h \
+ /usr/share/qt3/include/qcursor.h /usr/share/qt3/include/qstring.h \
+ /usr/share/qt3/include/qfiledialog.h /usr/share/qt3/include/qdir.h \
+ /usr/share/qt3/include/qfileinfo.h /usr/share/qt3/include/qfile.h \
+ /usr/share/qt3/include/qdatetime.h /usr/share/qt3/include/qdialog.h \
+ /usr/share/qt3/include/qurloperator.h /usr/share/qt3/include/qurl.h \
+ /usr/share/qt3/include/qnetworkprotocol.h \
+ /usr/share/qt3/include/qurlinfo.h /usr/share/qt3/include/qdict.h \
+ /usr/share/qt3/include/qgdict.h /usr/share/qt3/include/qmessagebox.h \
+ /usr/share/qt3/include/qpushbutton.h /usr/share/qt3/include/qiconset.h \
+ /usr/share/qt3/include/qpixmap.h /usr/include/math.h \
+ /usr/include/bits/huge_val.h /usr/include/bits/huge_valf.h \
+ /usr/include/bits/huge_vall.h /usr/include/bits/inf.h \
+ /usr/include/bits/nan.h /usr/include/bits/mathdef.h \
+ /usr/include/bits/mathcalls.h /usr/include/bits/mathinline.h newpreset.h \
+ /usr/share/qt3/include/qpixmap.h /usr/share/qt3/include/qdialog.h \
+ deicsonzegui.h /usr/include/c++/4.4/vector \
+ /usr/include/c++/4.4/bits/stl_construct.h \
+ /usr/include/c++/4.4/bits/stl_uninitialized.h \
+ /usr/include/c++/4.4/bits/stl_vector.h \
+ /usr/include/c++/4.4/bits/stl_bvector.h \
+ /usr/include/c++/4.4/bits/vector.tcc deicsonzeguibase.h \
+ ../libsynti/gui.h ../libsynti/mpevent.h ../libsynti/evdata.h \
+ /usr/include/memory.h deicsonze.h /usr/include/c++/4.4/iostream \
+ ../libsynti/mess.h
+
+/usr/share/qt3/include/qvariant.h:
+
+/usr/share/qt3/include/qstring.h:
+
+/usr/share/qt3/include/qcstring.h:
+
+/usr/share/qt3/include/qmemarray.h:
+
+/usr/share/qt3/include/qgarray.h:
+
+/usr/share/qt3/include/qshared.h:
+
+/usr/share/qt3/include/qglobal.h:
+
+/usr/share/qt3/include/qconfig.h:
+
+/usr/share/qt3/include/qmodules.h:
+
+/usr/share/qt3/include/qfeatures.h:
+
+/usr/share/qt3/include/qwinexport.h:
+
+/usr/include/string.h:
+
+/usr/include/features.h:
+
+/usr/include/bits/predefs.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/gnu/stubs-32.h:
+
+/usr/lib/gcc/i486-linux-gnu/4.4.3/include/stddef.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/bits/string3.h:
+
+/usr/lib/gcc/i486-linux-gnu/4.4.3/include-fixed/limits.h:
+
+/usr/lib/gcc/i486-linux-gnu/4.4.3/include-fixed/syslimits.h:
+
+/usr/include/limits.h:
+
+/usr/include/bits/posix1_lim.h:
+
+/usr/include/bits/local_lim.h:
+
+/usr/include/linux/limits.h:
+
+/usr/include/bits/posix2_lim.h:
+
+/usr/include/bits/xopen_lim.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/c++/4.4/string:
+
+/usr/include/c++/4.4/i486-linux-gnu/bits/c++config.h:
+
+/usr/include/c++/4.4/i486-linux-gnu/bits/os_defines.h:
+
+/usr/include/c++/4.4/i486-linux-gnu/bits/cpu_defines.h:
+
+/usr/include/c++/4.4/bits/stringfwd.h:
+
+/usr/include/c++/4.4/bits/char_traits.h:
+
+/usr/include/c++/4.4/bits/stl_algobase.h:
+
+/usr/include/c++/4.4/cstddef:
+
+/usr/include/c++/4.4/bits/functexcept.h:
+
+/usr/include/c++/4.4/exception_defines.h:
+
+/usr/include/c++/4.4/bits/cpp_type_traits.h:
+
+/usr/include/c++/4.4/ext/type_traits.h:
+
+/usr/include/c++/4.4/ext/numeric_traits.h:
+
+/usr/include/c++/4.4/bits/stl_pair.h:
+
+/usr/include/c++/4.4/bits/move.h:
+
+/usr/include/c++/4.4/bits/concept_check.h:
+
+/usr/include/c++/4.4/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/4.4/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/4.4/bits/stl_iterator.h:
+
+/usr/include/c++/4.4/debug/debug.h:
+
+/usr/include/c++/4.4/bits/postypes.h:
+
+/usr/include/c++/4.4/cwchar:
+
+/usr/include/wchar.h:
+
+/usr/include/stdio.h:
+
+/usr/lib/gcc/i486-linux-gnu/4.4.3/include/stdarg.h:
+
+/usr/include/bits/wchar.h:
+
+/usr/include/bits/wchar2.h:
+
+/usr/include/c++/4.4/bits/allocator.h:
+
+/usr/include/c++/4.4/i486-linux-gnu/bits/c++allocator.h:
+
+/usr/include/c++/4.4/ext/new_allocator.h:
+
+/usr/include/c++/4.4/new:
+
+/usr/include/c++/4.4/exception:
+
+/usr/include/c++/4.4/bits/localefwd.h:
+
+/usr/include/c++/4.4/i486-linux-gnu/bits/c++locale.h:
+
+/usr/include/c++/4.4/clocale:
+
+/usr/include/locale.h:
+
+/usr/include/bits/locale.h:
+
+/usr/include/c++/4.4/iosfwd:
+
+/usr/include/c++/4.4/cctype:
+
+/usr/include/ctype.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/bits/byteswap.h:
+
+/usr/include/c++/4.4/bits/ostream_insert.h:
+
+/usr/include/c++/4.4/cxxabi-forced.h:
+
+/usr/include/c++/4.4/bits/stl_function.h:
+
+/usr/include/c++/4.4/backward/binders.h:
+
+/usr/include/c++/4.4/bits/basic_string.h:
+
+/usr/include/c++/4.4/ext/atomicity.h:
+
+/usr/include/c++/4.4/i486-linux-gnu/bits/gthr.h:
+
+/usr/include/c++/4.4/i486-linux-gnu/bits/gthr-default.h:
+
+/usr/include/pthread.h:
+
+/usr/include/sched.h:
+
+/usr/include/time.h:
+
+/usr/include/bits/sched.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/signal.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/bits/setjmp.h:
+
+/usr/include/unistd.h:
+
+/usr/include/bits/posix_opt.h:
+
+/usr/include/bits/environments.h:
+
+/usr/include/bits/confname.h:
+
+/usr/include/getopt.h:
+
+/usr/include/bits/unistd.h:
+
+/usr/include/c++/4.4/i486-linux-gnu/bits/atomic_word.h:
+
+/usr/include/c++/4.4/initializer_list:
+
+/usr/include/c++/4.4/bits/basic_string.tcc:
+
+/usr/share/qt3/include/qvaluelist.h:
+
+/usr/share/qt3/include/qtl.h:
+
+/usr/share/qt3/include/qtextstream.h:
+
+/usr/share/qt3/include/qiodevice.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+/usr/include/bits/stdio2.h:
+
+/usr/share/qt3/include/qdatastream.h:
+
+/usr/include/c++/4.4/iterator:
+
+/usr/include/c++/4.4/ostream:
+
+/usr/include/c++/4.4/ios:
+
+/usr/include/c++/4.4/bits/ios_base.h:
+
+/usr/include/c++/4.4/bits/locale_classes.h:
+
+/usr/include/c++/4.4/bits/locale_classes.tcc:
+
+/usr/include/c++/4.4/streambuf:
+
+/usr/include/c++/4.4/bits/streambuf.tcc:
+
+/usr/include/c++/4.4/bits/basic_ios.h:
+
+/usr/include/c++/4.4/bits/locale_facets.h:
+
+/usr/include/c++/4.4/cwctype:
+
+/usr/include/wctype.h:
+
+/usr/include/c++/4.4/i486-linux-gnu/bits/ctype_base.h:
+
+/usr/include/c++/4.4/bits/streambuf_iterator.h:
+
+/usr/include/c++/4.4/i486-linux-gnu/bits/ctype_inline.h:
+
+/usr/include/c++/4.4/bits/locale_facets.tcc:
+
+/usr/include/c++/4.4/bits/basic_ios.tcc:
+
+/usr/include/c++/4.4/bits/ostream.tcc:
+
+/usr/include/c++/4.4/istream:
+
+/usr/include/c++/4.4/bits/istream.tcc:
+
+/usr/include/c++/4.4/bits/stream_iterator.h:
+
+/usr/include/c++/4.4/list:
+
+/usr/include/c++/4.4/bits/stl_list.h:
+
+/usr/include/c++/4.4/bits/list.tcc:
+
+/usr/share/qt3/include/qstringlist.h:
+
+/usr/share/qt3/include/qstrlist.h:
+
+/usr/share/qt3/include/qptrlist.h:
+
+/usr/share/qt3/include/qglist.h:
+
+/usr/share/qt3/include/qptrcollection.h:
+
+/usr/share/qt3/include/qmap.h:
+
+/usr/share/qt3/include/qpair.h:
+
+/usr/include/c++/4.4/map:
+
+/usr/include/c++/4.4/bits/stl_tree.h:
+
+/usr/include/c++/4.4/bits/stl_map.h:
+
+/usr/include/c++/4.4/bits/stl_multimap.h:
+
+/usr/share/qt3/include/qgroupbox.h:
+
+/usr/share/qt3/include/qframe.h:
+
+/usr/share/qt3/include/qwidget.h:
+
+/usr/share/qt3/include/qwindowdefs.h:
+
+/usr/share/qt3/include/qobjectdefs.h:
+
+/usr/share/qt3/include/qnamespace.h:
+
+/usr/share/qt3/include/qobject.h:
+
+/usr/share/qt3/include/qevent.h:
+
+/usr/share/qt3/include/qregion.h:
+
+/usr/share/qt3/include/qrect.h:
+
+/usr/share/qt3/include/qsize.h:
+
+/usr/share/qt3/include/qpoint.h:
+
+/usr/share/qt3/include/qmime.h:
+
+/usr/share/qt3/include/qpaintdevice.h:
+
+/usr/share/qt3/include/qpalette.h:
+
+/usr/share/qt3/include/qcolor.h:
+
+/usr/share/qt3/include/qbrush.h:
+
+/usr/share/qt3/include/qfont.h:
+
+/usr/share/qt3/include/qfontmetrics.h:
+
+/usr/share/qt3/include/qfontinfo.h:
+
+/usr/share/qt3/include/qsizepolicy.h:
+
+/usr/share/qt3/include/qslider.h:
+
+/usr/share/qt3/include/qrangecontrol.h:
+
+/usr/share/qt3/include/qcombobox.h:
+
+/usr/share/qt3/include/qcheckbox.h:
+
+/usr/share/qt3/include/qbutton.h:
+
+/usr/share/qt3/include/qkeysequence.h:
+
+/usr/share/qt3/include/qlineedit.h:
+
+/usr/share/qt3/include/qlcdnumber.h:
+
+/usr/share/qt3/include/qbitarray.h:
+
+/usr/share/qt3/include/qlistview.h:
+
+/usr/share/qt3/include/qscrollview.h:
+
+/usr/share/qt3/include/qscrollbar.h:
+
+/usr/share/qt3/include/qspinbox.h:
+
+/usr/share/qt3/include/qlayout.h:
+
+/usr/share/qt3/include/qtooltip.h:
+
+/usr/share/qt3/include/qwhatsthis.h:
+
+/usr/share/qt3/include/qcursor.h:
+
+/usr/share/qt3/include/qstring.h:
+
+/usr/share/qt3/include/qfiledialog.h:
+
+/usr/share/qt3/include/qdir.h:
+
+/usr/share/qt3/include/qfileinfo.h:
+
+/usr/share/qt3/include/qfile.h:
+
+/usr/share/qt3/include/qdatetime.h:
+
+/usr/share/qt3/include/qdialog.h:
+
+/usr/share/qt3/include/qurloperator.h:
+
+/usr/share/qt3/include/qurl.h:
+
+/usr/share/qt3/include/qnetworkprotocol.h:
+
+/usr/share/qt3/include/qurlinfo.h:
+
+/usr/share/qt3/include/qdict.h:
+
+/usr/share/qt3/include/qgdict.h:
+
+/usr/share/qt3/include/qmessagebox.h:
+
+/usr/share/qt3/include/qpushbutton.h:
+
+/usr/share/qt3/include/qiconset.h:
+
+/usr/share/qt3/include/qpixmap.h:
+
+/usr/include/math.h:
+
+/usr/include/bits/huge_val.h:
+
+/usr/include/bits/huge_valf.h:
+
+/usr/include/bits/huge_vall.h:
+
+/usr/include/bits/inf.h:
+
+/usr/include/bits/nan.h:
+
+/usr/include/bits/mathdef.h:
+
+/usr/include/bits/mathcalls.h:
+
+/usr/include/bits/mathinline.h:
+
+newpreset.h:
+
+/usr/share/qt3/include/qpixmap.h:
+
+/usr/share/qt3/include/qdialog.h:
+
+deicsonzegui.h:
+
+/usr/include/c++/4.4/vector:
+
+/usr/include/c++/4.4/bits/stl_construct.h:
+
+/usr/include/c++/4.4/bits/stl_uninitialized.h:
+
+/usr/include/c++/4.4/bits/stl_vector.h:
+
+/usr/include/c++/4.4/bits/stl_bvector.h:
+
+/usr/include/c++/4.4/bits/vector.tcc:
+
+deicsonzeguibase.h:
+
+../libsynti/gui.h:
+
+../libsynti/mpevent.h:
+
+../libsynti/evdata.h:
+
+/usr/include/memory.h:
+
+deicsonze.h:
+
+/usr/include/c++/4.4/iostream:
+
+../libsynti/mess.h:
diff --git a/muse2/synti/deicsonze/.deps/deicsonzegui.Tpo b/muse2/synti/deicsonze/.deps/deicsonzegui.Tpo
new file mode 100644
index 00000000..c30839bd
--- /dev/null
+++ b/muse2/synti/deicsonze/.deps/deicsonzegui.Tpo
@@ -0,0 +1,894 @@
+deicsonzegui.lo: deicsonzegui.cpp \
+ /usr/share/qt4/include/QtCore/qvariant.h \
+ /usr/share/qt4/include/QtCore/qatomic.h \
+ /usr/share/qt4/include/QtCore/qglobal.h \
+ /usr/lib/gcc/i486-linux-gnu/4.4.3/include/stddef.h \
+ /usr/share/qt4/include/QtCore/qconfig.h \
+ /usr/share/qt4/include/QtCore/qfeatures.h \
+ /usr/share/qt4/include/QtCore/qbasicatomic.h \
+ /usr/share/qt4/include/QtCore/qatomic_arch.h \
+ /usr/share/qt4/include/QtCore/qatomic_i386.h \
+ /usr/share/qt4/include/QtCore/qbytearray.h \
+ /usr/share/qt4/include/QtCore/qnamespace.h /usr/include/string.h \
+ /usr/include/features.h /usr/include/bits/predefs.h \
+ /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h \
+ /usr/include/gnu/stubs.h /usr/include/gnu/stubs-32.h \
+ /usr/include/xlocale.h /usr/include/bits/string3.h \
+ /usr/lib/gcc/i486-linux-gnu/4.4.3/include/stdarg.h \
+ /usr/share/qt4/include/QtCore/qlist.h \
+ /usr/share/qt4/include/QtCore/qiterator.h \
+ /usr/share/qt4/include/QtCore/qalgorithms.h \
+ /usr/include/c++/4.4/iterator \
+ /usr/include/c++/4.4/i486-linux-gnu/bits/c++config.h \
+ /usr/include/c++/4.4/i486-linux-gnu/bits/os_defines.h \
+ /usr/include/c++/4.4/i486-linux-gnu/bits/cpu_defines.h \
+ /usr/include/c++/4.4/cstddef \
+ /usr/include/c++/4.4/bits/stl_iterator_base_types.h \
+ /usr/include/c++/4.4/bits/stl_iterator_base_funcs.h \
+ /usr/include/c++/4.4/bits/concept_check.h \
+ /usr/include/c++/4.4/bits/stl_iterator.h \
+ /usr/include/c++/4.4/bits/cpp_type_traits.h \
+ /usr/include/c++/4.4/ext/type_traits.h /usr/include/c++/4.4/bits/move.h \
+ /usr/include/c++/4.4/ostream /usr/include/c++/4.4/ios \
+ /usr/include/c++/4.4/iosfwd /usr/include/c++/4.4/bits/stringfwd.h \
+ /usr/include/c++/4.4/bits/postypes.h /usr/include/c++/4.4/cwchar \
+ /usr/include/wchar.h /usr/include/stdio.h /usr/include/bits/wchar.h \
+ /usr/include/bits/wchar2.h /usr/include/c++/4.4/exception \
+ /usr/include/c++/4.4/bits/char_traits.h \
+ /usr/include/c++/4.4/bits/stl_algobase.h \
+ /usr/include/c++/4.4/bits/functexcept.h \
+ /usr/include/c++/4.4/exception_defines.h \
+ /usr/include/c++/4.4/ext/numeric_traits.h \
+ /usr/include/c++/4.4/bits/stl_pair.h /usr/include/c++/4.4/debug/debug.h \
+ /usr/include/c++/4.4/bits/localefwd.h \
+ /usr/include/c++/4.4/i486-linux-gnu/bits/c++locale.h \
+ /usr/include/c++/4.4/clocale /usr/include/locale.h \
+ /usr/include/bits/locale.h /usr/include/c++/4.4/cctype \
+ /usr/include/ctype.h /usr/include/bits/types.h \
+ /usr/include/bits/typesizes.h /usr/include/endian.h \
+ /usr/include/bits/endian.h /usr/include/bits/byteswap.h \
+ /usr/include/c++/4.4/bits/ios_base.h \
+ /usr/include/c++/4.4/ext/atomicity.h \
+ /usr/include/c++/4.4/i486-linux-gnu/bits/gthr.h \
+ /usr/include/c++/4.4/i486-linux-gnu/bits/gthr-default.h \
+ /usr/include/pthread.h /usr/include/sched.h /usr/include/time.h \
+ /usr/include/bits/sched.h /usr/include/bits/time.h /usr/include/signal.h \
+ /usr/include/bits/sigset.h /usr/include/bits/pthreadtypes.h \
+ /usr/include/bits/setjmp.h /usr/include/unistd.h \
+ /usr/include/bits/posix_opt.h /usr/include/bits/environments.h \
+ /usr/include/bits/confname.h /usr/include/getopt.h \
+ /usr/include/bits/unistd.h \
+ /usr/include/c++/4.4/i486-linux-gnu/bits/atomic_word.h \
+ /usr/include/c++/4.4/bits/locale_classes.h /usr/include/c++/4.4/string \
+ /usr/include/c++/4.4/bits/allocator.h \
+ /usr/include/c++/4.4/i486-linux-gnu/bits/c++allocator.h \
+ /usr/include/c++/4.4/ext/new_allocator.h /usr/include/c++/4.4/new \
+ /usr/include/c++/4.4/bits/ostream_insert.h \
+ /usr/include/c++/4.4/cxxabi-forced.h \
+ /usr/include/c++/4.4/bits/stl_function.h \
+ /usr/include/c++/4.4/backward/binders.h \
+ /usr/include/c++/4.4/bits/basic_string.h \
+ /usr/include/c++/4.4/initializer_list \
+ /usr/include/c++/4.4/bits/basic_string.tcc \
+ /usr/include/c++/4.4/bits/locale_classes.tcc \
+ /usr/include/c++/4.4/streambuf /usr/include/c++/4.4/bits/streambuf.tcc \
+ /usr/include/c++/4.4/bits/basic_ios.h \
+ /usr/include/c++/4.4/bits/locale_facets.h /usr/include/c++/4.4/cwctype \
+ /usr/include/wctype.h \
+ /usr/include/c++/4.4/i486-linux-gnu/bits/ctype_base.h \
+ /usr/include/c++/4.4/bits/streambuf_iterator.h \
+ /usr/include/c++/4.4/i486-linux-gnu/bits/ctype_inline.h \
+ /usr/include/c++/4.4/bits/locale_facets.tcc \
+ /usr/include/c++/4.4/bits/basic_ios.tcc \
+ /usr/include/c++/4.4/bits/ostream.tcc /usr/include/c++/4.4/istream \
+ /usr/include/c++/4.4/bits/istream.tcc \
+ /usr/include/c++/4.4/bits/stream_iterator.h /usr/include/c++/4.4/list \
+ /usr/include/c++/4.4/bits/stl_list.h /usr/include/c++/4.4/bits/list.tcc \
+ /usr/share/qt4/include/QtCore/qmetatype.h \
+ /usr/share/qt4/include/QtCore/qdatastream.h \
+ /usr/share/qt4/include/QtCore/qscopedpointer.h \
+ /usr/share/qt4/include/QtCore/qiodevice.h \
+ /usr/share/qt4/include/QtCore/qobject.h \
+ /usr/share/qt4/include/QtCore/qobjectdefs.h \
+ /usr/share/qt4/include/QtCore/qstring.h \
+ /usr/share/qt4/include/QtCore/qchar.h \
+ /usr/share/qt4/include/QtCore/qmap.h /usr/include/c++/4.4/map \
+ /usr/include/c++/4.4/bits/stl_tree.h /usr/include/c++/4.4/bits/stl_map.h \
+ /usr/include/c++/4.4/bits/stl_multimap.h \
+ /usr/share/qt4/include/QtCore/qhash.h \
+ /usr/share/qt4/include/QtCore/qpair.h \
+ /usr/share/qt4/include/Qt3Support/q3groupbox.h \
+ /usr/share/qt4/include/QtGui/qgroupbox.h \
+ /usr/share/qt4/include/QtGui/qframe.h \
+ /usr/share/qt4/include/QtGui/qwidget.h \
+ /usr/share/qt4/include/QtGui/qwindowdefs.h \
+ /usr/share/qt4/include/QtCore/qmargins.h \
+ /usr/share/qt4/include/QtGui/qpaintdevice.h \
+ /usr/share/qt4/include/QtCore/qrect.h \
+ /usr/share/qt4/include/QtCore/qsize.h \
+ /usr/share/qt4/include/QtCore/qpoint.h \
+ /usr/share/qt4/include/QtGui/qpalette.h \
+ /usr/share/qt4/include/QtGui/qcolor.h \
+ /usr/share/qt4/include/QtGui/qrgb.h \
+ /usr/share/qt4/include/QtCore/qstringlist.h \
+ /usr/share/qt4/include/QtCore/qregexp.h \
+ /usr/share/qt4/include/QtCore/qstringmatcher.h \
+ /usr/share/qt4/include/QtGui/qbrush.h \
+ /usr/share/qt4/include/QtCore/qvector.h /usr/include/c++/4.4/vector \
+ /usr/include/c++/4.4/bits/stl_construct.h \
+ /usr/include/c++/4.4/bits/stl_uninitialized.h \
+ /usr/include/c++/4.4/bits/stl_vector.h \
+ /usr/include/c++/4.4/bits/stl_bvector.h \
+ /usr/include/c++/4.4/bits/vector.tcc /usr/include/stdlib.h \
+ /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
+ /usr/include/sys/types.h /usr/include/sys/select.h \
+ /usr/include/bits/select.h /usr/include/sys/sysmacros.h \
+ /usr/include/alloca.h /usr/include/bits/stdlib.h \
+ /usr/share/qt4/include/QtGui/qmatrix.h \
+ /usr/share/qt4/include/QtGui/qpolygon.h \
+ /usr/share/qt4/include/QtGui/qregion.h \
+ /usr/share/qt4/include/QtCore/qline.h \
+ /usr/share/qt4/include/QtGui/qwmatrix.h \
+ /usr/share/qt4/include/QtGui/qtransform.h \
+ /usr/share/qt4/include/QtGui/qpainterpath.h \
+ /usr/share/qt4/include/QtGui/qimage.h \
+ /usr/share/qt4/include/QtGui/qpixmap.h \
+ /usr/share/qt4/include/QtCore/qsharedpointer.h \
+ /usr/share/qt4/include/QtCore/qshareddata.h \
+ /usr/share/qt4/include/QtCore/qsharedpointer_impl.h \
+ /usr/share/qt4/include/QtGui/qfont.h \
+ /usr/share/qt4/include/QtGui/qfontmetrics.h \
+ /usr/share/qt4/include/QtGui/qfontinfo.h \
+ /usr/share/qt4/include/QtGui/qsizepolicy.h \
+ /usr/share/qt4/include/QtGui/qcursor.h \
+ /usr/share/qt4/include/QtGui/qkeysequence.h \
+ /usr/share/qt4/include/QtGui/qslider.h \
+ /usr/share/qt4/include/QtGui/qabstractslider.h \
+ /usr/share/qt4/include/QtGui/qcombobox.h \
+ /usr/share/qt4/include/QtGui/qabstractitemdelegate.h \
+ /usr/share/qt4/include/QtGui/qstyleoption.h \
+ /usr/share/qt4/include/QtCore/qvariant.h \
+ /usr/share/qt4/include/QtGui/qabstractspinbox.h \
+ /usr/share/qt4/include/QtGui/qvalidator.h \
+ /usr/share/qt4/include/QtCore/qlocale.h \
+ /usr/share/qt4/include/QtGui/qicon.h \
+ /usr/share/qt4/include/QtGui/qslider.h \
+ /usr/share/qt4/include/QtGui/qstyle.h \
+ /usr/share/qt4/include/QtGui/qtabbar.h \
+ /usr/share/qt4/include/QtGui/qtabwidget.h \
+ /usr/share/qt4/include/QtGui/qrubberband.h \
+ /usr/share/qt4/include/QtCore/qabstractitemmodel.h \
+ /usr/share/qt4/include/QtGui/qcheckbox.h \
+ /usr/share/qt4/include/QtGui/qabstractbutton.h \
+ /usr/share/qt4/include/QtGui/qlineedit.h \
+ /usr/share/qt4/include/QtGui/qlcdnumber.h \
+ /usr/share/qt4/include/QtCore/qbitarray.h \
+ /usr/share/qt4/include/Qt3Support/q3listview.h \
+ /usr/share/qt4/include/Qt3Support/q3scrollview.h \
+ /usr/share/qt4/include/Qt3Support/q3frame.h \
+ /usr/share/qt4/include/QtGui/qscrollbar.h \
+ /usr/share/qt4/include/QtGui/qspinbox.h \
+ /usr/share/qt4/include/QtGui/qlayout.h \
+ /usr/share/qt4/include/QtGui/qlayoutitem.h \
+ /usr/lib/gcc/i486-linux-gnu/4.4.3/include-fixed/limits.h \
+ /usr/lib/gcc/i486-linux-gnu/4.4.3/include-fixed/syslimits.h \
+ /usr/include/limits.h /usr/include/bits/posix1_lim.h \
+ /usr/include/bits/local_lim.h /usr/include/linux/limits.h \
+ /usr/include/bits/posix2_lim.h /usr/include/bits/xopen_lim.h \
+ /usr/include/bits/stdio_lim.h /usr/share/qt4/include/QtGui/qboxlayout.h \
+ /usr/share/qt4/include/QtGui/qlayout.h \
+ /usr/share/qt4/include/QtGui/qgridlayout.h \
+ /usr/share/qt4/include/QtGui/qtooltip.h \
+ /usr/share/qt4/include/Qt3Support/q3whatsthis.h \
+ /usr/share/qt4/include/QtGui/qwhatsthis.h \
+ /usr/share/qt4/include/QtCore/qstring.h \
+ /usr/share/qt4/include/Qt3Support/q3filedialog.h \
+ /usr/share/qt4/include/QtCore/qdir.h \
+ /usr/share/qt4/include/QtCore/qfileinfo.h \
+ /usr/share/qt4/include/QtCore/qfile.h /usr/include/libio.h \
+ /usr/include/_G_config.h /usr/include/bits/sys_errlist.h \
+ /usr/include/bits/stdio.h /usr/include/bits/stdio2.h \
+ /usr/share/qt4/include/QtGui/qdialog.h \
+ /usr/share/qt4/include/Qt3Support/q3urloperator.h \
+ /usr/share/qt4/include/Qt3Support/q3url.h \
+ /usr/share/qt4/include/Qt3Support/q3ptrlist.h \
+ /usr/share/qt4/include/Qt3Support/q3glist.h \
+ /usr/share/qt4/include/Qt3Support/q3ptrcollection.h \
+ /usr/share/qt4/include/Qt3Support/q3networkprotocol.h \
+ /usr/share/qt4/include/Qt3Support/q3dict.h \
+ /usr/share/qt4/include/Qt3Support/q3gdict.h \
+ /usr/share/qt4/include/Qt3Support/q3valuelist.h \
+ /usr/share/qt4/include/QtCore/qlinkedlist.h \
+ /usr/share/qt4/include/QtGui/qmessagebox.h \
+ /usr/share/qt4/include/QtGui/qpushbutton.h /usr/include/math.h \
+ /usr/include/bits/huge_val.h /usr/include/bits/huge_valf.h \
+ /usr/include/bits/huge_vall.h /usr/include/bits/inf.h \
+ /usr/include/bits/nan.h /usr/include/bits/mathdef.h \
+ /usr/include/bits/mathcalls.h /usr/include/bits/mathinline.h newpreset.h \
+ /usr/share/qt4/include/Qt3Support/Q3ButtonGroup \
+ /usr/share/qt4/include/Qt3Support/q3buttongroup.h \
+ /usr/share/qt4/include/QtGui/qbuttongroup.h \
+ /usr/share/qt4/include/Qt3Support/q3groupbox.h \
+ /usr/share/qt4/include/Qt3Support/Q3GroupBox \
+ /usr/share/qt4/include/Qt3Support/q3groupbox.h \
+ /usr/share/qt4/include/QtCore/QVariant \
+ /usr/share/qt4/include/QtCore/qvariant.h \
+ /usr/share/qt4/include/QtGui/QAction \
+ /usr/share/qt4/include/QtGui/qaction.h \
+ /usr/share/qt4/include/QtGui/qactiongroup.h \
+ /usr/share/qt4/include/QtGui/qaction.h \
+ /usr/share/qt4/include/QtGui/QApplication \
+ /usr/share/qt4/include/QtGui/qapplication.h \
+ /usr/share/qt4/include/QtCore/qcoreapplication.h \
+ /usr/share/qt4/include/QtCore/qcoreevent.h \
+ /usr/share/qt4/include/QtCore/qeventloop.h \
+ /usr/share/qt4/include/QtGui/QButtonGroup \
+ /usr/share/qt4/include/QtGui/qbuttongroup.h \
+ /usr/share/qt4/include/QtGui/QDialog \
+ /usr/share/qt4/include/QtGui/qdialog.h \
+ /usr/share/qt4/include/QtGui/QHeaderView \
+ /usr/share/qt4/include/QtGui/qheaderview.h \
+ /usr/share/qt4/include/QtGui/qabstractitemview.h \
+ /usr/share/qt4/include/QtGui/qabstractscrollarea.h \
+ /usr/share/qt4/include/QtGui/qitemselectionmodel.h \
+ /usr/share/qt4/include/QtCore/qset.h \
+ /usr/share/qt4/include/QtGui/QLineEdit \
+ /usr/share/qt4/include/QtGui/qlineedit.h \
+ /usr/share/qt4/include/QtGui/QPushButton \
+ /usr/share/qt4/include/QtGui/qpushbutton.h \
+ /usr/share/qt4/include/QtGui/QSpinBox \
+ /usr/share/qt4/include/QtGui/qspinbox.h deicsonzegui.h \
+ deicsonzeguibase.h /usr/share/qt4/include/Qt3Support/Q3Header \
+ /usr/share/qt4/include/Qt3Support/q3header.h \
+ /usr/share/qt4/include/Qt3Support/Q3ListView \
+ /usr/share/qt4/include/Qt3Support/q3listview.h \
+ /usr/share/qt4/include/QtGui/QCheckBox \
+ /usr/share/qt4/include/QtGui/qcheckbox.h \
+ /usr/share/qt4/include/QtGui/QComboBox \
+ /usr/share/qt4/include/QtGui/qcombobox.h \
+ /usr/share/qt4/include/QtGui/QLabel \
+ /usr/share/qt4/include/QtGui/qlabel.h \
+ /usr/share/qt4/include/QtGui/QSlider \
+ /usr/share/qt4/include/QtGui/qslider.h \
+ /usr/share/qt4/include/QtGui/QTabWidget \
+ /usr/share/qt4/include/QtGui/qtabwidget.h \
+ /usr/share/qt4/include/QtGui/QWidget \
+ /usr/share/qt4/include/QtGui/qwidget.h ../libsynti/gui.h \
+ ../libsynti/mpevent.h ../libsynti/evdata.h /usr/include/memory.h \
+ deicsonze.h /usr/include/c++/4.4/iostream ../libsynti/mess.h
+
+/usr/share/qt4/include/QtCore/qvariant.h:
+
+/usr/share/qt4/include/QtCore/qatomic.h:
+
+/usr/share/qt4/include/QtCore/qglobal.h:
+
+/usr/lib/gcc/i486-linux-gnu/4.4.3/include/stddef.h:
+
+/usr/share/qt4/include/QtCore/qconfig.h:
+
+/usr/share/qt4/include/QtCore/qfeatures.h:
+
+/usr/share/qt4/include/QtCore/qbasicatomic.h:
+
+/usr/share/qt4/include/QtCore/qatomic_arch.h:
+
+/usr/share/qt4/include/QtCore/qatomic_i386.h:
+
+/usr/share/qt4/include/QtCore/qbytearray.h:
+
+/usr/share/qt4/include/QtCore/qnamespace.h:
+
+/usr/include/string.h:
+
+/usr/include/features.h:
+
+/usr/include/bits/predefs.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/gnu/stubs-32.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/bits/string3.h:
+
+/usr/lib/gcc/i486-linux-gnu/4.4.3/include/stdarg.h:
+
+/usr/share/qt4/include/QtCore/qlist.h:
+
+/usr/share/qt4/include/QtCore/qiterator.h:
+
+/usr/share/qt4/include/QtCore/qalgorithms.h:
+
+/usr/include/c++/4.4/iterator:
+
+/usr/include/c++/4.4/i486-linux-gnu/bits/c++config.h:
+
+/usr/include/c++/4.4/i486-linux-gnu/bits/os_defines.h:
+
+/usr/include/c++/4.4/i486-linux-gnu/bits/cpu_defines.h:
+
+/usr/include/c++/4.4/cstddef:
+
+/usr/include/c++/4.4/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/4.4/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/4.4/bits/concept_check.h:
+
+/usr/include/c++/4.4/bits/stl_iterator.h:
+
+/usr/include/c++/4.4/bits/cpp_type_traits.h:
+
+/usr/include/c++/4.4/ext/type_traits.h:
+
+/usr/include/c++/4.4/bits/move.h:
+
+/usr/include/c++/4.4/ostream:
+
+/usr/include/c++/4.4/ios:
+
+/usr/include/c++/4.4/iosfwd:
+
+/usr/include/c++/4.4/bits/stringfwd.h:
+
+/usr/include/c++/4.4/bits/postypes.h:
+
+/usr/include/c++/4.4/cwchar:
+
+/usr/include/wchar.h:
+
+/usr/include/stdio.h:
+
+/usr/include/bits/wchar.h:
+
+/usr/include/bits/wchar2.h:
+
+/usr/include/c++/4.4/exception:
+
+/usr/include/c++/4.4/bits/char_traits.h:
+
+/usr/include/c++/4.4/bits/stl_algobase.h:
+
+/usr/include/c++/4.4/bits/functexcept.h:
+
+/usr/include/c++/4.4/exception_defines.h:
+
+/usr/include/c++/4.4/ext/numeric_traits.h:
+
+/usr/include/c++/4.4/bits/stl_pair.h:
+
+/usr/include/c++/4.4/debug/debug.h:
+
+/usr/include/c++/4.4/bits/localefwd.h:
+
+/usr/include/c++/4.4/i486-linux-gnu/bits/c++locale.h:
+
+/usr/include/c++/4.4/clocale:
+
+/usr/include/locale.h:
+
+/usr/include/bits/locale.h:
+
+/usr/include/c++/4.4/cctype:
+
+/usr/include/ctype.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/bits/byteswap.h:
+
+/usr/include/c++/4.4/bits/ios_base.h:
+
+/usr/include/c++/4.4/ext/atomicity.h:
+
+/usr/include/c++/4.4/i486-linux-gnu/bits/gthr.h:
+
+/usr/include/c++/4.4/i486-linux-gnu/bits/gthr-default.h:
+
+/usr/include/pthread.h:
+
+/usr/include/sched.h:
+
+/usr/include/time.h:
+
+/usr/include/bits/sched.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/signal.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/bits/setjmp.h:
+
+/usr/include/unistd.h:
+
+/usr/include/bits/posix_opt.h:
+
+/usr/include/bits/environments.h:
+
+/usr/include/bits/confname.h:
+
+/usr/include/getopt.h:
+
+/usr/include/bits/unistd.h:
+
+/usr/include/c++/4.4/i486-linux-gnu/bits/atomic_word.h:
+
+/usr/include/c++/4.4/bits/locale_classes.h:
+
+/usr/include/c++/4.4/string:
+
+/usr/include/c++/4.4/bits/allocator.h:
+
+/usr/include/c++/4.4/i486-linux-gnu/bits/c++allocator.h:
+
+/usr/include/c++/4.4/ext/new_allocator.h:
+
+/usr/include/c++/4.4/new:
+
+/usr/include/c++/4.4/bits/ostream_insert.h:
+
+/usr/include/c++/4.4/cxxabi-forced.h:
+
+/usr/include/c++/4.4/bits/stl_function.h:
+
+/usr/include/c++/4.4/backward/binders.h:
+
+/usr/include/c++/4.4/bits/basic_string.h:
+
+/usr/include/c++/4.4/initializer_list:
+
+/usr/include/c++/4.4/bits/basic_string.tcc:
+
+/usr/include/c++/4.4/bits/locale_classes.tcc:
+
+/usr/include/c++/4.4/streambuf:
+
+/usr/include/c++/4.4/bits/streambuf.tcc:
+
+/usr/include/c++/4.4/bits/basic_ios.h:
+
+/usr/include/c++/4.4/bits/locale_facets.h:
+
+/usr/include/c++/4.4/cwctype:
+
+/usr/include/wctype.h:
+
+/usr/include/c++/4.4/i486-linux-gnu/bits/ctype_base.h:
+
+/usr/include/c++/4.4/bits/streambuf_iterator.h:
+
+/usr/include/c++/4.4/i486-linux-gnu/bits/ctype_inline.h:
+
+/usr/include/c++/4.4/bits/locale_facets.tcc:
+
+/usr/include/c++/4.4/bits/basic_ios.tcc:
+
+/usr/include/c++/4.4/bits/ostream.tcc:
+
+/usr/include/c++/4.4/istream:
+
+/usr/include/c++/4.4/bits/istream.tcc:
+
+/usr/include/c++/4.4/bits/stream_iterator.h:
+
+/usr/include/c++/4.4/list:
+
+/usr/include/c++/4.4/bits/stl_list.h:
+
+/usr/include/c++/4.4/bits/list.tcc:
+
+/usr/share/qt4/include/QtCore/qmetatype.h:
+
+/usr/share/qt4/include/QtCore/qdatastream.h:
+
+/usr/share/qt4/include/QtCore/qscopedpointer.h:
+
+/usr/share/qt4/include/QtCore/qiodevice.h:
+
+/usr/share/qt4/include/QtCore/qobject.h:
+
+/usr/share/qt4/include/QtCore/qobjectdefs.h:
+
+/usr/share/qt4/include/QtCore/qstring.h:
+
+/usr/share/qt4/include/QtCore/qchar.h:
+
+/usr/share/qt4/include/QtCore/qmap.h:
+
+/usr/include/c++/4.4/map:
+
+/usr/include/c++/4.4/bits/stl_tree.h:
+
+/usr/include/c++/4.4/bits/stl_map.h:
+
+/usr/include/c++/4.4/bits/stl_multimap.h:
+
+/usr/share/qt4/include/QtCore/qhash.h:
+
+/usr/share/qt4/include/QtCore/qpair.h:
+
+/usr/share/qt4/include/Qt3Support/q3groupbox.h:
+
+/usr/share/qt4/include/QtGui/qgroupbox.h:
+
+/usr/share/qt4/include/QtGui/qframe.h:
+
+/usr/share/qt4/include/QtGui/qwidget.h:
+
+/usr/share/qt4/include/QtGui/qwindowdefs.h:
+
+/usr/share/qt4/include/QtCore/qmargins.h:
+
+/usr/share/qt4/include/QtGui/qpaintdevice.h:
+
+/usr/share/qt4/include/QtCore/qrect.h:
+
+/usr/share/qt4/include/QtCore/qsize.h:
+
+/usr/share/qt4/include/QtCore/qpoint.h:
+
+/usr/share/qt4/include/QtGui/qpalette.h:
+
+/usr/share/qt4/include/QtGui/qcolor.h:
+
+/usr/share/qt4/include/QtGui/qrgb.h:
+
+/usr/share/qt4/include/QtCore/qstringlist.h:
+
+/usr/share/qt4/include/QtCore/qregexp.h:
+
+/usr/share/qt4/include/QtCore/qstringmatcher.h:
+
+/usr/share/qt4/include/QtGui/qbrush.h:
+
+/usr/share/qt4/include/QtCore/qvector.h:
+
+/usr/include/c++/4.4/vector:
+
+/usr/include/c++/4.4/bits/stl_construct.h:
+
+/usr/include/c++/4.4/bits/stl_uninitialized.h:
+
+/usr/include/c++/4.4/bits/stl_vector.h:
+
+/usr/include/c++/4.4/bits/stl_bvector.h:
+
+/usr/include/c++/4.4/bits/vector.tcc:
+
+/usr/include/stdlib.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/alloca.h:
+
+/usr/include/bits/stdlib.h:
+
+/usr/share/qt4/include/QtGui/qmatrix.h:
+
+/usr/share/qt4/include/QtGui/qpolygon.h:
+
+/usr/share/qt4/include/QtGui/qregion.h:
+
+/usr/share/qt4/include/QtCore/qline.h:
+
+/usr/share/qt4/include/QtGui/qwmatrix.h:
+
+/usr/share/qt4/include/QtGui/qtransform.h:
+
+/usr/share/qt4/include/QtGui/qpainterpath.h:
+
+/usr/share/qt4/include/QtGui/qimage.h:
+
+/usr/share/qt4/include/QtGui/qpixmap.h:
+
+/usr/share/qt4/include/QtCore/qsharedpointer.h:
+
+/usr/share/qt4/include/QtCore/qshareddata.h:
+
+/usr/share/qt4/include/QtCore/qsharedpointer_impl.h:
+
+/usr/share/qt4/include/QtGui/qfont.h:
+
+/usr/share/qt4/include/QtGui/qfontmetrics.h:
+
+/usr/share/qt4/include/QtGui/qfontinfo.h:
+
+/usr/share/qt4/include/QtGui/qsizepolicy.h:
+
+/usr/share/qt4/include/QtGui/qcursor.h:
+
+/usr/share/qt4/include/QtGui/qkeysequence.h:
+
+/usr/share/qt4/include/QtGui/qslider.h:
+
+/usr/share/qt4/include/QtGui/qabstractslider.h:
+
+/usr/share/qt4/include/QtGui/qcombobox.h:
+
+/usr/share/qt4/include/QtGui/qabstractitemdelegate.h:
+
+/usr/share/qt4/include/QtGui/qstyleoption.h:
+
+/usr/share/qt4/include/QtCore/qvariant.h:
+
+/usr/share/qt4/include/QtGui/qabstractspinbox.h:
+
+/usr/share/qt4/include/QtGui/qvalidator.h:
+
+/usr/share/qt4/include/QtCore/qlocale.h:
+
+/usr/share/qt4/include/QtGui/qicon.h:
+
+/usr/share/qt4/include/QtGui/qslider.h:
+
+/usr/share/qt4/include/QtGui/qstyle.h:
+
+/usr/share/qt4/include/QtGui/qtabbar.h:
+
+/usr/share/qt4/include/QtGui/qtabwidget.h:
+
+/usr/share/qt4/include/QtGui/qrubberband.h:
+
+/usr/share/qt4/include/QtCore/qabstractitemmodel.h:
+
+/usr/share/qt4/include/QtGui/qcheckbox.h:
+
+/usr/share/qt4/include/QtGui/qabstractbutton.h:
+
+/usr/share/qt4/include/QtGui/qlineedit.h:
+
+/usr/share/qt4/include/QtGui/qlcdnumber.h:
+
+/usr/share/qt4/include/QtCore/qbitarray.h:
+
+/usr/share/qt4/include/Qt3Support/q3listview.h:
+
+/usr/share/qt4/include/Qt3Support/q3scrollview.h:
+
+/usr/share/qt4/include/Qt3Support/q3frame.h:
+
+/usr/share/qt4/include/QtGui/qscrollbar.h:
+
+/usr/share/qt4/include/QtGui/qspinbox.h:
+
+/usr/share/qt4/include/QtGui/qlayout.h:
+
+/usr/share/qt4/include/QtGui/qlayoutitem.h:
+
+/usr/lib/gcc/i486-linux-gnu/4.4.3/include-fixed/limits.h:
+
+/usr/lib/gcc/i486-linux-gnu/4.4.3/include-fixed/syslimits.h:
+
+/usr/include/limits.h:
+
+/usr/include/bits/posix1_lim.h:
+
+/usr/include/bits/local_lim.h:
+
+/usr/include/linux/limits.h:
+
+/usr/include/bits/posix2_lim.h:
+
+/usr/include/bits/xopen_lim.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/share/qt4/include/QtGui/qboxlayout.h:
+
+/usr/share/qt4/include/QtGui/qlayout.h:
+
+/usr/share/qt4/include/QtGui/qgridlayout.h:
+
+/usr/share/qt4/include/QtGui/qtooltip.h:
+
+/usr/share/qt4/include/Qt3Support/q3whatsthis.h:
+
+/usr/share/qt4/include/QtGui/qwhatsthis.h:
+
+/usr/share/qt4/include/QtCore/qstring.h:
+
+/usr/share/qt4/include/Qt3Support/q3filedialog.h:
+
+/usr/share/qt4/include/QtCore/qdir.h:
+
+/usr/share/qt4/include/QtCore/qfileinfo.h:
+
+/usr/share/qt4/include/QtCore/qfile.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+/usr/include/bits/stdio2.h:
+
+/usr/share/qt4/include/QtGui/qdialog.h:
+
+/usr/share/qt4/include/Qt3Support/q3urloperator.h:
+
+/usr/share/qt4/include/Qt3Support/q3url.h:
+
+/usr/share/qt4/include/Qt3Support/q3ptrlist.h:
+
+/usr/share/qt4/include/Qt3Support/q3glist.h:
+
+/usr/share/qt4/include/Qt3Support/q3ptrcollection.h:
+
+/usr/share/qt4/include/Qt3Support/q3networkprotocol.h:
+
+/usr/share/qt4/include/Qt3Support/q3dict.h:
+
+/usr/share/qt4/include/Qt3Support/q3gdict.h:
+
+/usr/share/qt4/include/Qt3Support/q3valuelist.h:
+
+/usr/share/qt4/include/QtCore/qlinkedlist.h:
+
+/usr/share/qt4/include/QtGui/qmessagebox.h:
+
+/usr/share/qt4/include/QtGui/qpushbutton.h:
+
+/usr/include/math.h:
+
+/usr/include/bits/huge_val.h:
+
+/usr/include/bits/huge_valf.h:
+
+/usr/include/bits/huge_vall.h:
+
+/usr/include/bits/inf.h:
+
+/usr/include/bits/nan.h:
+
+/usr/include/bits/mathdef.h:
+
+/usr/include/bits/mathcalls.h:
+
+/usr/include/bits/mathinline.h:
+
+newpreset.h:
+
+/usr/share/qt4/include/Qt3Support/Q3ButtonGroup:
+
+/usr/share/qt4/include/Qt3Support/q3buttongroup.h:
+
+/usr/share/qt4/include/QtGui/qbuttongroup.h:
+
+/usr/share/qt4/include/Qt3Support/q3groupbox.h:
+
+/usr/share/qt4/include/Qt3Support/Q3GroupBox:
+
+/usr/share/qt4/include/Qt3Support/q3groupbox.h:
+
+/usr/share/qt4/include/QtCore/QVariant:
+
+/usr/share/qt4/include/QtCore/qvariant.h:
+
+/usr/share/qt4/include/QtGui/QAction:
+
+/usr/share/qt4/include/QtGui/qaction.h:
+
+/usr/share/qt4/include/QtGui/qactiongroup.h:
+
+/usr/share/qt4/include/QtGui/qaction.h:
+
+/usr/share/qt4/include/QtGui/QApplication:
+
+/usr/share/qt4/include/QtGui/qapplication.h:
+
+/usr/share/qt4/include/QtCore/qcoreapplication.h:
+
+/usr/share/qt4/include/QtCore/qcoreevent.h:
+
+/usr/share/qt4/include/QtCore/qeventloop.h:
+
+/usr/share/qt4/include/QtGui/QButtonGroup:
+
+/usr/share/qt4/include/QtGui/qbuttongroup.h:
+
+/usr/share/qt4/include/QtGui/QDialog:
+
+/usr/share/qt4/include/QtGui/qdialog.h:
+
+/usr/share/qt4/include/QtGui/QHeaderView:
+
+/usr/share/qt4/include/QtGui/qheaderview.h:
+
+/usr/share/qt4/include/QtGui/qabstractitemview.h:
+
+/usr/share/qt4/include/QtGui/qabstractscrollarea.h:
+
+/usr/share/qt4/include/QtGui/qitemselectionmodel.h:
+
+/usr/share/qt4/include/QtCore/qset.h:
+
+/usr/share/qt4/include/QtGui/QLineEdit:
+
+/usr/share/qt4/include/QtGui/qlineedit.h:
+
+/usr/share/qt4/include/QtGui/QPushButton:
+
+/usr/share/qt4/include/QtGui/qpushbutton.h:
+
+/usr/share/qt4/include/QtGui/QSpinBox:
+
+/usr/share/qt4/include/QtGui/qspinbox.h:
+
+deicsonzegui.h:
+
+deicsonzeguibase.h:
+
+/usr/share/qt4/include/Qt3Support/Q3Header:
+
+/usr/share/qt4/include/Qt3Support/q3header.h:
+
+/usr/share/qt4/include/Qt3Support/Q3ListView:
+
+/usr/share/qt4/include/Qt3Support/q3listview.h:
+
+/usr/share/qt4/include/QtGui/QCheckBox:
+
+/usr/share/qt4/include/QtGui/qcheckbox.h:
+
+/usr/share/qt4/include/QtGui/QComboBox:
+
+/usr/share/qt4/include/QtGui/qcombobox.h:
+
+/usr/share/qt4/include/QtGui/QLabel:
+
+/usr/share/qt4/include/QtGui/qlabel.h:
+
+/usr/share/qt4/include/QtGui/QSlider:
+
+/usr/share/qt4/include/QtGui/qslider.h:
+
+/usr/share/qt4/include/QtGui/QTabWidget:
+
+/usr/share/qt4/include/QtGui/qtabwidget.h:
+
+/usr/share/qt4/include/QtGui/QWidget:
+
+/usr/share/qt4/include/QtGui/qwidget.h:
+
+../libsynti/gui.h:
+
+../libsynti/mpevent.h:
+
+../libsynti/evdata.h:
+
+/usr/include/memory.h:
+
+deicsonze.h:
+
+/usr/include/c++/4.4/iostream:
+
+../libsynti/mess.h:
diff --git a/muse2/synti/deicsonze/.deps/moc_deicsonzegui.Plo b/muse2/synti/deicsonze/.deps/moc_deicsonzegui.Plo
new file mode 100644
index 00000000..4d7c28b5
--- /dev/null
+++ b/muse2/synti/deicsonze/.deps/moc_deicsonzegui.Plo
@@ -0,0 +1,514 @@
+moc_deicsonzegui.lo: moc_deicsonzegui.cpp deicsonzegui.h \
+ /usr/share/qt3/include/qlistview.h /usr/share/qt3/include/qscrollview.h \
+ /usr/share/qt3/include/qframe.h /usr/share/qt3/include/qwidget.h \
+ /usr/share/qt3/include/qwindowdefs.h \
+ /usr/share/qt3/include/qobjectdefs.h /usr/share/qt3/include/qglobal.h \
+ /usr/share/qt3/include/qconfig.h /usr/share/qt3/include/qmodules.h \
+ /usr/share/qt3/include/qfeatures.h /usr/share/qt3/include/qstring.h \
+ /usr/share/qt3/include/qcstring.h /usr/share/qt3/include/qmemarray.h \
+ /usr/share/qt3/include/qgarray.h /usr/share/qt3/include/qshared.h \
+ /usr/share/qt3/include/qwinexport.h /usr/include/string.h \
+ /usr/include/features.h /usr/include/bits/predefs.h \
+ /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h \
+ /usr/include/gnu/stubs.h /usr/include/gnu/stubs-32.h \
+ /usr/lib/gcc/i486-linux-gnu/4.4.3/include/stddef.h \
+ /usr/include/xlocale.h /usr/include/bits/string3.h \
+ /usr/lib/gcc/i486-linux-gnu/4.4.3/include-fixed/limits.h \
+ /usr/lib/gcc/i486-linux-gnu/4.4.3/include-fixed/syslimits.h \
+ /usr/include/limits.h /usr/include/bits/posix1_lim.h \
+ /usr/include/bits/local_lim.h /usr/include/linux/limits.h \
+ /usr/include/bits/posix2_lim.h /usr/include/bits/xopen_lim.h \
+ /usr/include/bits/stdio_lim.h /usr/include/c++/4.4/string \
+ /usr/include/c++/4.4/i486-linux-gnu/bits/c++config.h \
+ /usr/include/c++/4.4/i486-linux-gnu/bits/os_defines.h \
+ /usr/include/c++/4.4/i486-linux-gnu/bits/cpu_defines.h \
+ /usr/include/c++/4.4/bits/stringfwd.h \
+ /usr/include/c++/4.4/bits/char_traits.h \
+ /usr/include/c++/4.4/bits/stl_algobase.h /usr/include/c++/4.4/cstddef \
+ /usr/include/c++/4.4/bits/functexcept.h \
+ /usr/include/c++/4.4/exception_defines.h \
+ /usr/include/c++/4.4/bits/cpp_type_traits.h \
+ /usr/include/c++/4.4/ext/type_traits.h \
+ /usr/include/c++/4.4/ext/numeric_traits.h \
+ /usr/include/c++/4.4/bits/stl_pair.h /usr/include/c++/4.4/bits/move.h \
+ /usr/include/c++/4.4/bits/concept_check.h \
+ /usr/include/c++/4.4/bits/stl_iterator_base_types.h \
+ /usr/include/c++/4.4/bits/stl_iterator_base_funcs.h \
+ /usr/include/c++/4.4/bits/stl_iterator.h \
+ /usr/include/c++/4.4/debug/debug.h /usr/include/c++/4.4/bits/postypes.h \
+ /usr/include/c++/4.4/cwchar /usr/include/wchar.h /usr/include/stdio.h \
+ /usr/lib/gcc/i486-linux-gnu/4.4.3/include/stdarg.h \
+ /usr/include/bits/wchar.h /usr/include/bits/wchar2.h \
+ /usr/include/c++/4.4/bits/allocator.h \
+ /usr/include/c++/4.4/i486-linux-gnu/bits/c++allocator.h \
+ /usr/include/c++/4.4/ext/new_allocator.h /usr/include/c++/4.4/new \
+ /usr/include/c++/4.4/exception /usr/include/c++/4.4/bits/localefwd.h \
+ /usr/include/c++/4.4/i486-linux-gnu/bits/c++locale.h \
+ /usr/include/c++/4.4/clocale /usr/include/locale.h \
+ /usr/include/bits/locale.h /usr/include/c++/4.4/iosfwd \
+ /usr/include/c++/4.4/cctype /usr/include/ctype.h \
+ /usr/include/bits/types.h /usr/include/bits/typesizes.h \
+ /usr/include/endian.h /usr/include/bits/endian.h \
+ /usr/include/bits/byteswap.h /usr/include/c++/4.4/bits/ostream_insert.h \
+ /usr/include/c++/4.4/cxxabi-forced.h \
+ /usr/include/c++/4.4/bits/stl_function.h \
+ /usr/include/c++/4.4/backward/binders.h \
+ /usr/include/c++/4.4/bits/basic_string.h \
+ /usr/include/c++/4.4/ext/atomicity.h \
+ /usr/include/c++/4.4/i486-linux-gnu/bits/gthr.h \
+ /usr/include/c++/4.4/i486-linux-gnu/bits/gthr-default.h \
+ /usr/include/pthread.h /usr/include/sched.h /usr/include/time.h \
+ /usr/include/bits/sched.h /usr/include/bits/time.h /usr/include/signal.h \
+ /usr/include/bits/sigset.h /usr/include/bits/pthreadtypes.h \
+ /usr/include/bits/setjmp.h /usr/include/unistd.h \
+ /usr/include/bits/posix_opt.h /usr/include/bits/environments.h \
+ /usr/include/bits/confname.h /usr/include/getopt.h \
+ /usr/include/bits/unistd.h \
+ /usr/include/c++/4.4/i486-linux-gnu/bits/atomic_word.h \
+ /usr/include/c++/4.4/initializer_list \
+ /usr/include/c++/4.4/bits/basic_string.tcc \
+ /usr/share/qt3/include/qnamespace.h /usr/share/qt3/include/qobject.h \
+ /usr/share/qt3/include/qevent.h /usr/share/qt3/include/qregion.h \
+ /usr/share/qt3/include/qrect.h /usr/share/qt3/include/qsize.h \
+ /usr/share/qt3/include/qpoint.h /usr/share/qt3/include/qmime.h \
+ /usr/share/qt3/include/qmap.h /usr/share/qt3/include/qdatastream.h \
+ /usr/share/qt3/include/qiodevice.h /usr/share/qt3/include/qpair.h \
+ /usr/share/qt3/include/qvaluelist.h /usr/share/qt3/include/qtl.h \
+ /usr/share/qt3/include/qtextstream.h /usr/include/libio.h \
+ /usr/include/_G_config.h /usr/include/bits/sys_errlist.h \
+ /usr/include/bits/stdio.h /usr/include/bits/stdio2.h \
+ /usr/include/c++/4.4/iterator /usr/include/c++/4.4/ostream \
+ /usr/include/c++/4.4/ios /usr/include/c++/4.4/bits/ios_base.h \
+ /usr/include/c++/4.4/bits/locale_classes.h \
+ /usr/include/c++/4.4/bits/locale_classes.tcc \
+ /usr/include/c++/4.4/streambuf /usr/include/c++/4.4/bits/streambuf.tcc \
+ /usr/include/c++/4.4/bits/basic_ios.h \
+ /usr/include/c++/4.4/bits/locale_facets.h /usr/include/c++/4.4/cwctype \
+ /usr/include/wctype.h \
+ /usr/include/c++/4.4/i486-linux-gnu/bits/ctype_base.h \
+ /usr/include/c++/4.4/bits/streambuf_iterator.h \
+ /usr/include/c++/4.4/i486-linux-gnu/bits/ctype_inline.h \
+ /usr/include/c++/4.4/bits/locale_facets.tcc \
+ /usr/include/c++/4.4/bits/basic_ios.tcc \
+ /usr/include/c++/4.4/bits/ostream.tcc /usr/include/c++/4.4/istream \
+ /usr/include/c++/4.4/bits/istream.tcc \
+ /usr/include/c++/4.4/bits/stream_iterator.h /usr/include/c++/4.4/list \
+ /usr/include/c++/4.4/bits/stl_list.h /usr/include/c++/4.4/bits/list.tcc \
+ /usr/include/c++/4.4/map /usr/include/c++/4.4/bits/stl_tree.h \
+ /usr/include/c++/4.4/bits/stl_map.h \
+ /usr/include/c++/4.4/bits/stl_multimap.h \
+ /usr/share/qt3/include/qpaintdevice.h /usr/share/qt3/include/qpalette.h \
+ /usr/share/qt3/include/qcolor.h /usr/share/qt3/include/qstringlist.h \
+ /usr/share/qt3/include/qstrlist.h /usr/share/qt3/include/qptrlist.h \
+ /usr/share/qt3/include/qglist.h /usr/share/qt3/include/qptrcollection.h \
+ /usr/share/qt3/include/qbrush.h /usr/share/qt3/include/qfont.h \
+ /usr/share/qt3/include/qfontmetrics.h /usr/share/qt3/include/qfontinfo.h \
+ /usr/share/qt3/include/qsizepolicy.h /usr/share/qt3/include/qscrollbar.h \
+ /usr/share/qt3/include/qrangecontrol.h /usr/include/c++/4.4/vector \
+ /usr/include/c++/4.4/bits/stl_construct.h \
+ /usr/include/c++/4.4/bits/stl_uninitialized.h \
+ /usr/include/c++/4.4/bits/stl_vector.h \
+ /usr/include/c++/4.4/bits/stl_bvector.h \
+ /usr/include/c++/4.4/bits/vector.tcc deicsonzeguibase.h \
+ /usr/share/qt3/include/qvariant.h /usr/share/qt3/include/qpixmap.h \
+ /usr/share/qt3/include/qdialog.h ../libsynti/gui.h ../libsynti/mpevent.h \
+ ../libsynti/evdata.h /usr/include/memory.h \
+ /usr/share/qt3/include/qmetaobject.h \
+ /usr/share/qt3/include/qconnection.h \
+ /usr/share/qt3/include/qapplication.h \
+ /usr/share/qt3/include/qdesktopwidget.h \
+ /usr/share/qt3/include/qasciidict.h /usr/share/qt3/include/qgdict.h \
+ /usr/share/qt3/include/qtranslator.h \
+ /usr/share/qt3/include/private/qucomextra_p.h \
+ /usr/share/qt3/include/private/qucom_p.h \
+ /usr/share/qt3/include/qstring.h /usr/share/qt3/include/quuid.h
+
+deicsonzegui.h:
+
+/usr/share/qt3/include/qlistview.h:
+
+/usr/share/qt3/include/qscrollview.h:
+
+/usr/share/qt3/include/qframe.h:
+
+/usr/share/qt3/include/qwidget.h:
+
+/usr/share/qt3/include/qwindowdefs.h:
+
+/usr/share/qt3/include/qobjectdefs.h:
+
+/usr/share/qt3/include/qglobal.h:
+
+/usr/share/qt3/include/qconfig.h:
+
+/usr/share/qt3/include/qmodules.h:
+
+/usr/share/qt3/include/qfeatures.h:
+
+/usr/share/qt3/include/qstring.h:
+
+/usr/share/qt3/include/qcstring.h:
+
+/usr/share/qt3/include/qmemarray.h:
+
+/usr/share/qt3/include/qgarray.h:
+
+/usr/share/qt3/include/qshared.h:
+
+/usr/share/qt3/include/qwinexport.h:
+
+/usr/include/string.h:
+
+/usr/include/features.h:
+
+/usr/include/bits/predefs.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/gnu/stubs-32.h:
+
+/usr/lib/gcc/i486-linux-gnu/4.4.3/include/stddef.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/bits/string3.h:
+
+/usr/lib/gcc/i486-linux-gnu/4.4.3/include-fixed/limits.h:
+
+/usr/lib/gcc/i486-linux-gnu/4.4.3/include-fixed/syslimits.h:
+
+/usr/include/limits.h:
+
+/usr/include/bits/posix1_lim.h:
+
+/usr/include/bits/local_lim.h:
+
+/usr/include/linux/limits.h:
+
+/usr/include/bits/posix2_lim.h:
+
+/usr/include/bits/xopen_lim.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/c++/4.4/string:
+
+/usr/include/c++/4.4/i486-linux-gnu/bits/c++config.h:
+
+/usr/include/c++/4.4/i486-linux-gnu/bits/os_defines.h:
+
+/usr/include/c++/4.4/i486-linux-gnu/bits/cpu_defines.h:
+
+/usr/include/c++/4.4/bits/stringfwd.h:
+
+/usr/include/c++/4.4/bits/char_traits.h:
+
+/usr/include/c++/4.4/bits/stl_algobase.h:
+
+/usr/include/c++/4.4/cstddef:
+
+/usr/include/c++/4.4/bits/functexcept.h:
+
+/usr/include/c++/4.4/exception_defines.h:
+
+/usr/include/c++/4.4/bits/cpp_type_traits.h:
+
+/usr/include/c++/4.4/ext/type_traits.h:
+
+/usr/include/c++/4.4/ext/numeric_traits.h:
+
+/usr/include/c++/4.4/bits/stl_pair.h:
+
+/usr/include/c++/4.4/bits/move.h:
+
+/usr/include/c++/4.4/bits/concept_check.h:
+
+/usr/include/c++/4.4/bits/stl_iterator_base_types.h:
+
+/usr/include/c++/4.4/bits/stl_iterator_base_funcs.h:
+
+/usr/include/c++/4.4/bits/stl_iterator.h:
+
+/usr/include/c++/4.4/debug/debug.h:
+
+/usr/include/c++/4.4/bits/postypes.h:
+
+/usr/include/c++/4.4/cwchar:
+
+/usr/include/wchar.h:
+
+/usr/include/stdio.h:
+
+/usr/lib/gcc/i486-linux-gnu/4.4.3/include/stdarg.h:
+
+/usr/include/bits/wchar.h:
+
+/usr/include/bits/wchar2.h:
+
+/usr/include/c++/4.4/bits/allocator.h:
+
+/usr/include/c++/4.4/i486-linux-gnu/bits/c++allocator.h:
+
+/usr/include/c++/4.4/ext/new_allocator.h:
+
+/usr/include/c++/4.4/new:
+
+/usr/include/c++/4.4/exception:
+
+/usr/include/c++/4.4/bits/localefwd.h:
+
+/usr/include/c++/4.4/i486-linux-gnu/bits/c++locale.h:
+
+/usr/include/c++/4.4/clocale:
+
+/usr/include/locale.h:
+
+/usr/include/bits/locale.h:
+
+/usr/include/c++/4.4/iosfwd:
+
+/usr/include/c++/4.4/cctype:
+
+/usr/include/ctype.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/bits/byteswap.h:
+
+/usr/include/c++/4.4/bits/ostream_insert.h:
+
+/usr/include/c++/4.4/cxxabi-forced.h:
+
+/usr/include/c++/4.4/bits/stl_function.h:
+
+/usr/include/c++/4.4/backward/binders.h:
+
+/usr/include/c++/4.4/bits/basic_string.h:
+
+/usr/include/c++/4.4/ext/atomicity.h:
+
+/usr/include/c++/4.4/i486-linux-gnu/bits/gthr.h:
+
+/usr/include/c++/4.4/i486-linux-gnu/bits/gthr-default.h:
+
+/usr/include/pthread.h:
+
+/usr/include/sched.h:
+
+/usr/include/time.h:
+
+/usr/include/bits/sched.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/signal.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/bits/setjmp.h:
+
+/usr/include/unistd.h:
+
+/usr/include/bits/posix_opt.h:
+
+/usr/include/bits/environments.h:
+
+/usr/include/bits/confname.h:
+
+/usr/include/getopt.h:
+
+/usr/include/bits/unistd.h:
+
+/usr/include/c++/4.4/i486-linux-gnu/bits/atomic_word.h:
+
+/usr/include/c++/4.4/initializer_list:
+
+/usr/include/c++/4.4/bits/basic_string.tcc:
+
+/usr/share/qt3/include/qnamespace.h:
+
+/usr/share/qt3/include/qobject.h:
+
+/usr/share/qt3/include/qevent.h:
+
+/usr/share/qt3/include/qregion.h:
+
+/usr/share/qt3/include/qrect.h:
+
+/usr/share/qt3/include/qsize.h:
+
+/usr/share/qt3/include/qpoint.h:
+
+/usr/share/qt3/include/qmime.h:
+
+/usr/share/qt3/include/qmap.h:
+
+/usr/share/qt3/include/qdatastream.h:
+
+/usr/share/qt3/include/qiodevice.h:
+
+/usr/share/qt3/include/qpair.h:
+
+/usr/share/qt3/include/qvaluelist.h:
+
+/usr/share/qt3/include/qtl.h:
+
+/usr/share/qt3/include/qtextstream.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+/usr/include/bits/stdio2.h:
+
+/usr/include/c++/4.4/iterator:
+
+/usr/include/c++/4.4/ostream:
+
+/usr/include/c++/4.4/ios:
+
+/usr/include/c++/4.4/bits/ios_base.h:
+
+/usr/include/c++/4.4/bits/locale_classes.h:
+
+/usr/include/c++/4.4/bits/locale_classes.tcc:
+
+/usr/include/c++/4.4/streambuf:
+
+/usr/include/c++/4.4/bits/streambuf.tcc:
+
+/usr/include/c++/4.4/bits/basic_ios.h:
+
+/usr/include/c++/4.4/bits/locale_facets.h:
+
+/usr/include/c++/4.4/cwctype:
+
+/usr/include/wctype.h:
+
+/usr/include/c++/4.4/i486-linux-gnu/bits/ctype_base.h:
+
+/usr/include/c++/4.4/bits/streambuf_iterator.h:
+
+/usr/include/c++/4.4/i486-linux-gnu/bits/ctype_inline.h:
+
+/usr/include/c++/4.4/bits/locale_facets.tcc:
+
+/usr/include/c++/4.4/bits/basic_ios.tcc:
+
+/usr/include/c++/4.4/bits/ostream.tcc:
+
+/usr/include/c++/4.4/istream:
+
+/usr/include/c++/4.4/bits/istream.tcc:
+
+/usr/include/c++/4.4/bits/stream_iterator.h:
+
+/usr/include/c++/4.4/list:
+
+/usr/include/c++/4.4/bits/stl_list.h:
+
+/usr/include/c++/4.4/bits/list.tcc:
+
+/usr/include/c++/4.4/map:
+
+/usr/include/c++/4.4/bits/stl_tree.h:
+
+/usr/include/c++/4.4/bits/stl_map.h:
+
+/usr/include/c++/4.4/bits/stl_multimap.h:
+
+/usr/share/qt3/include/qpaintdevice.h:
+
+/usr/share/qt3/include/qpalette.h:
+
+/usr/share/qt3/include/qcolor.h:
+
+/usr/share/qt3/include/qstringlist.h:
+
+/usr/share/qt3/include/qstrlist.h:
+
+/usr/share/qt3/include/qptrlist.h:
+
+/usr/share/qt3/include/qglist.h:
+
+/usr/share/qt3/include/qptrcollection.h:
+
+/usr/share/qt3/include/qbrush.h:
+
+/usr/share/qt3/include/qfont.h:
+
+/usr/share/qt3/include/qfontmetrics.h:
+
+/usr/share/qt3/include/qfontinfo.h:
+
+/usr/share/qt3/include/qsizepolicy.h:
+
+/usr/share/qt3/include/qscrollbar.h:
+
+/usr/share/qt3/include/qrangecontrol.h:
+
+/usr/include/c++/4.4/vector:
+
+/usr/include/c++/4.4/bits/stl_construct.h:
+
+/usr/include/c++/4.4/bits/stl_uninitialized.h:
+
+/usr/include/c++/4.4/bits/stl_vector.h:
+
+/usr/include/c++/4.4/bits/stl_bvector.h:
+
+/usr/include/c++/4.4/bits/vector.tcc:
+
+deicsonzeguibase.h:
+
+/usr/share/qt3/include/qvariant.h:
+
+/usr/share/qt3/include/qpixmap.h:
+
+/usr/share/qt3/include/qdialog.h:
+
+../libsynti/gui.h:
+
+../libsynti/mpevent.h:
+
+../libsynti/evdata.h:
+
+/usr/include/memory.h:
+
+/usr/share/qt3/include/qmetaobject.h:
+
+/usr/share/qt3/include/qconnection.h:
+
+/usr/share/qt3/include/qapplication.h:
+
+/usr/share/qt3/include/qdesktopwidget.h:
+
+/usr/share/qt3/include/qasciidict.h:
+
+/usr/share/qt3/include/qgdict.h:
+
+/usr/share/qt3/include/qtranslator.h:
+
+/usr/share/qt3/include/private/qucomextra_p.h:
+
+/usr/share/qt3/include/private/qucom_p.h:
+
+/usr/share/qt3/include/qstring.h:
+
+/usr/share/qt3/include/quuid.h:
diff --git a/muse2/synti/deicsonze/ARCH_ALIN b/muse2/synti/deicsonze/ARCH_ALIN
new file mode 100644
index 00000000..e16f3428
--- /dev/null
+++ b/muse2/synti/deicsonze/ARCH_ALIN
@@ -0,0 +1,24941 @@
+* TX81Z/DX11 Voice Archive
+* $Header: /cvsroot/lmuse/muse/synti/deicsonze/ARCH_ALIN,v 1.1.2.1 2004/11/28 21:10:16 spamatica 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 English Horn
+
+
+** 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 Flugel Horn
+
+
+** 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 French Horn
+
+
+** 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 Bass Guitar
+
+
+** 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 Double Bass
+
+
+** 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 Organ
+
+
+** 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
+
+
+** 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 Piano
+
+
+** 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
+
+
+--Bank 15
+
+** 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
+
+
+--Bank 16
+
+** 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 Synthesizer
+
+
+** 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
+
+
+** 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
+
+--Bank 19
+
+
+** 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 Drum
+
+
+** 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
+
+--Bank 26
+
+
+** 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 Noises
+
+** 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
+
+
+--Bank 28
+
+** 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/muse2/synti/deicsonze/Makefile b/muse2/synti/deicsonze/Makefile
new file mode 100644
index 00000000..bd473630
--- /dev/null
+++ b/muse2/synti/deicsonze/Makefile
@@ -0,0 +1,683 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# synti/deicsonze/Makefile. Generated from Makefile.in by configure.
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+
+
+
+
+pkgdatadir = $(datadir)/muse
+pkgincludedir = $(includedir)/muse
+pkglibdir = $(libdir)/muse
+pkglibexecdir = $(libexecdir)/muse
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = i686-pc-linux-gnu
+host_triplet = i686-pc-linux-gnu
+DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
+ $(top_srcdir)/common.am $(top_srcdir)/synti/synti-install.am \
+ TODO
+#am__append_1 = -include $(top_srcdir)/all-pic.h -DINSTPREFIX=\"$(prefix)\"
+am__append_2 = -DINSTPREFIX=\"$(prefix)\"
+subdir = synti/deicsonze
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal-include.m4 \
+ $(top_srcdir)/m4/alsa.m4 $(top_srcdir)/m4/docbook.m4 \
+ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
+ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
+ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__installdirs = "$(DESTDIR)$(synthidir)" \
+ "$(DESTDIR)$(deicsonzepkgdatadir)"
+LTLIBRARIES = $(synthi_LTLIBRARIES)
+deicsonze_la_DEPENDENCIES = ../libsynti/libsynti.la
+am_deicsonze_la_OBJECTS = deicsonze.lo deicsonzegui.lo \
+ deicsonzeguibase.lo newpreset.lo
+nodist_deicsonze_la_OBJECTS = moc_deicsonzegui.lo
+deicsonze_la_OBJECTS = $(am_deicsonze_la_OBJECTS) \
+ $(nodist_deicsonze_la_OBJECTS)
+deicsonze_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \
+ $(CXXFLAGS) $(deicsonze_la_LDFLAGS) $(LDFLAGS) -o $@
+DEFAULT_INCLUDES = -I. -I$(top_builddir)
+depcomp = $(SHELL) $(top_srcdir)/depcomp
+am__depfiles_maybe = depfiles
+am__mv = mv -f
+CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
+LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
+CXXLD = $(CXX)
+CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \
+ $(LDFLAGS) -o $@
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
+ $(LDFLAGS) -o $@
+SOURCES = $(deicsonze_la_SOURCES) $(nodist_deicsonze_la_SOURCES)
+DIST_SOURCES = $(deicsonze_la_SOURCES)
+DATA = $(deicsonzepkgdata_DATA)
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = ${SHELL} /home/ddskrjo/dev/museqt4/muse/missing --run aclocal-1.11 -I m4
+ALSA_CFLAGS =
+ALSA_LIBS = -lasound -lm -ldl
+AMTAR = ${SHELL} /home/ddskrjo/dev/museqt4/muse/missing --run tar
+AR = ar
+AUTOCONF = ${SHELL} /home/ddskrjo/dev/museqt4/muse/missing --run autoconf
+AUTOHEADER = ${SHELL} /home/ddskrjo/dev/museqt4/muse/missing --run autoheader
+AUTOMAKE = ${SHELL} /home/ddskrjo/dev/museqt4/muse/missing --run automake-1.11
+AWK = gawk
+CC = gcc
+CCDEPMODE = depmode=gcc3
+CFLAGS = -g -O2
+CPP = gcc -E
+CPPFLAGS =
+CXX = g++
+CXXCPP = g++ -E
+CXXDEPMODE = depmode=gcc3
+CXXFLAGS =
+CYGPATH_W = echo
+DEFS = -DHAVE_CONFIG_H
+DEPDIR = .deps
+DOCBOOKSTYLE =
+DOCBOOKTARGETS =
+DOT = no
+DOTPATH =
+DOXYGEN = no
+DOXYGEN_TREEVIEW = YES
+DSYMUTIL =
+DUMPBIN =
+ECHO_C =
+ECHO_N = -n
+ECHO_T =
+EGREP = /bin/grep -E
+EXEEXT =
+FGREP = /bin/grep -F
+FLUIDSYNTHDIRS = fluid fluidsynth
+FST_CFLAGS =
+FST_LIBS =
+Fluidsynth_CFLAGS =
+Fluidsynth_LIBS = -lfluidsynth
+GIVERTCAP =
+GREP = /bin/grep
+HAVEDOT = NO
+INSTALL = /usr/bin/install -c
+INSTALL_DATA = ${INSTALL} -m 644
+INSTALL_PROGRAM = ${INSTALL}
+INSTALL_SCRIPT = ${INSTALL}
+INSTALL_STRIP_PROGRAM = $(install_sh) -c -s
+JACK_CFLAGS =
+JACK_LIBS = -ljack
+JADE =
+LASH_CFLAGS =
+LASH_LIBS =
+LD = /usr/bin/ld
+LDFLAGS =
+LIBOBJS =
+LIBS = -lasound -lm -ldl
+LIBTOOL = $(SHELL) $(top_builddir)/libtool
+LIPO =
+LN_S = ln -s
+LO_CFLAGS = -I/usr/local/include
+LO_LIBS = -llo
+LTLIBOBJS =
+MAKEINFO = ${SHELL} /home/ddskrjo/dev/museqt4/muse/missing --run makeinfo
+MKDIR_P = /bin/mkdir -p
+MUSECXXFLAGS = -g -fno-exceptions -Wall -W -D_GNU_SOURCE -D_REENTRANT -DQT_CLEAN_NAMESPACE -DQT_NO_COMPAT -I$(top_srcdir) -I$(top_srcdir)/muse/widgets $(QT_CFLAGS)
+NM = /usr/bin/nm -B
+NMEDIT =
+NSGMLS =
+OBJDUMP = objdump
+OBJEXT = o
+OTOOL =
+OTOOL64 =
+PACKAGE = muse
+PACKAGE_BUGREPORT =
+PACKAGE_NAME = MusE
+PACKAGE_STRING = MusE 1.1
+PACKAGE_TARNAME = muse
+PACKAGE_URL =
+PACKAGE_VERSION = 1.1
+PATH_SEPARATOR = :
+PCH =
+PERL = /usr/bin/perl
+PKG_CONFIG = /usr/bin/pkg-config
+PYTHON = /usr/bin/python
+PYTHON_EXEC_PREFIX = ${exec_prefix}
+PYTHON_INCLUDES = -I/usr/include/python2.6 -I/usr/include/python2.6
+PYTHON_LIB = -lpthread -ldl -lutil -lm -lpython2.6
+PYTHON_PLATFORM = linux2
+PYTHON_PREFIX = ${prefix}
+PYTHON_VERSION = 2.6
+QTDIR_BIN = /usr/share/qt4/bin
+QTDIR_INC = -I/usr/share/qt4/include -I/usr/share/qt4/include/QtGui -I/usr/share/qt4/include/QtCore -I/usr/share/qt4/include/Qt3Support -DQT_OPENGL_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED
+QT_LIBS = -Wl,-rpath,/usr/share/qt4/lib -L/usr/share/qt4/lib -lQtGui -lQtOpenGL -lQtCore -lQt3Support -lX11 -lXext -lXmu -lXt -lXi -lGLU -lGL -lpthread
+RANLIB = ranlib
+SAMPLERATE_CFLAGS =
+SAMPLERATE_LIBS = -lsamplerate
+SED = /bin/sed
+SET_MAKE =
+SHELL = /bin/bash
+SNDFILE_CFLAGS =
+SNDFILE_LIBS = -lsndfile
+STRIP = strip
+SUIDBUILD = no
+SUIDINSTALL = no
+USE_SSE =
+UUID_CFLAGS =
+UUID_LIBS = -luuid
+VERSION = 1.1
+XMKMF =
+X_CFLAGS =
+X_EXTRA_LIBS =
+X_LIBS =
+X_PRE_LIBS = -lSM -lICE -lSM -lICE
+abs_builddir = /home/ddskrjo/dev/museqt4/muse/synti/deicsonze
+abs_srcdir = /home/ddskrjo/dev/museqt4/muse/synti/deicsonze
+abs_top_builddir = /home/ddskrjo/dev/museqt4/muse
+abs_top_srcdir = /home/ddskrjo/dev/museqt4/muse
+ac_ct_CC = gcc
+ac_ct_CXX = g++
+ac_ct_DUMPBIN =
+am__include = include
+am__leading_dot = .
+am__quote =
+am__tar = ${AMTAR} chof - "$$tardir"
+am__untar = ${AMTAR} xf -
+bindir = ${exec_prefix}/bin
+build = i686-pc-linux-gnu
+build_alias =
+build_cpu = i686
+build_os = linux-gnu
+build_vendor = pc
+builddir = .
+datadir = ${datarootdir}
+datarootdir = ${prefix}/share
+docdir = ${datarootdir}/doc/${PACKAGE_TARNAME}
+dvidir = ${docdir}
+exec_prefix = ${prefix}
+have_docbook =
+host = i686-pc-linux-gnu
+host_alias =
+host_cpu = i686
+host_os = linux-gnu
+host_vendor = pc
+htmldir = ${docdir}
+includedir = ${prefix}/include
+infodir = ${datarootdir}/info
+install_sh = ${SHELL} /home/ddskrjo/dev/museqt4/muse/install-sh
+libdir = ${exec_prefix}/lib
+libexecdir = ${exec_prefix}/libexec
+localedir = ${datarootdir}/locale
+localstatedir = ${prefix}/var
+lt_ECHO = echo
+mandir = ${datarootdir}/man
+mkdir_p = /bin/mkdir -p
+oldincludedir = /usr/include
+pdfdir = ${docdir}
+pkgpyexecdir = ${pyexecdir}/muse
+pkgpythondir = ${pythondir}/muse
+prefix = /usr/local
+program_transform_name = s,x,x,
+psdir = ${docdir}
+pyexecdir = ${exec_prefix}/lib/python2.6/dist-packages
+pythondir = ${prefix}/lib/python2.6/dist-packages
+sbindir = ${exec_prefix}/sbin
+sharedstatedir = ${prefix}/com
+srcdir = .
+synth_fluid = fluid
+synth_fluidsynth = fluidsynth
+sysconfdir = ${prefix}/etc
+target_alias =
+top_build_prefix = ../../
+top_builddir = ../..
+top_srcdir = ../..
+AM_CXXFLAGS = $(MUSECXXFLAGS) -I.. -I$(top_srcdir)/synti \
+ -I$(top_srcdir)/muse/widgets -DQT_SHARED -DQT_THREAD_SUPPORT \
+ -DQT_PLUGIN $(QTDIR_INC) -DQT3_SUPPORT $(am__append_1) \
+ $(am__append_2)
+AM_CPPFLAGS =
+MOC = $(QTDIR_BIN)/moc
+#UIC = $(QTDIR_BIN)/uic3
+UIC = /usr/bin/uic3
+UIFILES = $(wildcard *.ui)
+MOCFILES = $(shell for h in $(filter %.h,$(SOURCES)); do \
+ if grep -q Q_OBJECT $$h; then \
+ echo $$h | sed "s/\(.*\)\.h/moc_\1.cpp/"; \
+ fi; \
+ done)
+
+BUILT_SOURCES = $(MOCFILES) $(UIFILES:%.ui=%.h)
+MOSTLYCLEANFILES = $(MOCFILES) $(UIFILES:%.ui=%.h)
+SUFFIXES = .ui .h.gch
+synthidir = $(pkglibdir)/synthi
+synthi_LTLIBRARIES = deicsonze.la
+deicsonze_la_SOURCES = deicsonze.cpp deicsonze.h deicsonzegui.cpp deicsonzegui.h \
+ deicsonzeguibase.ui newpreset.ui
+
+nodist_deicsonze_la_SOURCES = moc_deicsonzegui.cpp
+deicsonze_la_LIBADD = ../libsynti/libsynti.la
+deicsonze_la_LDFLAGS = -module -avoid-version
+EXTRA_DIST = ARCH_ALIN README
+deicsonzepkgdata_DATA = ARCH_ALIN
+deicsonzepkgdatadir = $(pkgdatadir)/presets/deicsonze
+all: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) all-am
+
+.SUFFIXES:
+.SUFFIXES: .ui .h.gch .cpp .lo .o .obj
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/common.am $(top_srcdir)/synti/synti-install.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu synti/deicsonze/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu synti/deicsonze/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+install-synthiLTLIBRARIES: $(synthi_LTLIBRARIES)
+ @$(NORMAL_INSTALL)
+ test -z "$(synthidir)" || $(MKDIR_P) "$(DESTDIR)$(synthidir)"
+ @list='$(synthi_LTLIBRARIES)'; test -n "$(synthidir)" || list=; \
+ list2=; for p in $$list; do \
+ if test -f $$p; then \
+ list2="$$list2 $$p"; \
+ else :; fi; \
+ done; \
+ test -z "$$list2" || { \
+ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(synthidir)'"; \
+ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(synthidir)"; \
+ }
+
+uninstall-synthiLTLIBRARIES:
+ @$(NORMAL_UNINSTALL)
+ @list='$(synthi_LTLIBRARIES)'; test -n "$(synthidir)" || list=; \
+ for p in $$list; do \
+ $(am__strip_dir) \
+ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(synthidir)/$$f'"; \
+ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(synthidir)/$$f"; \
+ done
+
+clean-synthiLTLIBRARIES:
+ -test -z "$(synthi_LTLIBRARIES)" || rm -f $(synthi_LTLIBRARIES)
+ @list='$(synthi_LTLIBRARIES)'; for p in $$list; do \
+ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
+ test "$$dir" != "$$p" || dir=.; \
+ echo "rm -f \"$${dir}/so_locations\""; \
+ rm -f "$${dir}/so_locations"; \
+ done
+deicsonze.la: $(deicsonze_la_OBJECTS) $(deicsonze_la_DEPENDENCIES)
+ $(deicsonze_la_LINK) -rpath $(synthidir) $(deicsonze_la_OBJECTS) $(deicsonze_la_LIBADD) $(LIBS)
+
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT)
+
+distclean-compile:
+ -rm -f *.tab.c
+
+include ./$(DEPDIR)/deicsonze.Plo
+include ./$(DEPDIR)/deicsonzegui.Plo
+include ./$(DEPDIR)/moc_deicsonzegui.Plo
+
+.cpp.o:
+ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+# source='$<' object='$@' libtool=no \
+# DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
+# $(CXXCOMPILE) -c -o $@ $<
+
+.cpp.obj:
+ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+# source='$<' object='$@' libtool=no \
+# DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
+# $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+
+.cpp.lo:
+ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+# source='$<' object='$@' libtool=yes \
+# DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
+# $(LTCXXCOMPILE) -c -o $@ $<
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+install-deicsonzepkgdataDATA: $(deicsonzepkgdata_DATA)
+ @$(NORMAL_INSTALL)
+ test -z "$(deicsonzepkgdatadir)" || $(MKDIR_P) "$(DESTDIR)$(deicsonzepkgdatadir)"
+ @list='$(deicsonzepkgdata_DATA)'; test -n "$(deicsonzepkgdatadir)" || list=; \
+ for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(deicsonzepkgdatadir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(deicsonzepkgdatadir)" || exit $$?; \
+ done
+
+uninstall-deicsonzepkgdataDATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(deicsonzepkgdata_DATA)'; test -n "$(deicsonzepkgdatadir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ test -n "$$files" || exit 0; \
+ echo " ( cd '$(DESTDIR)$(deicsonzepkgdatadir)' && rm -f" $$files ")"; \
+ cd "$(DESTDIR)$(deicsonzepkgdatadir)" && rm -f $$files
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ mkid -fID $$unique
+tags: TAGS
+
+TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ set x; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: CTAGS
+CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) check-am
+all-am: Makefile $(LTLIBRARIES) $(DATA)
+installdirs:
+ for dir in "$(DESTDIR)$(synthidir)" "$(DESTDIR)$(deicsonzepkgdatadir)"; do \
+ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ done
+install: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+ -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES)
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+ -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
+clean: clean-am
+
+clean-am: clean-generic clean-libtool clean-synthiLTLIBRARIES \
+ mostlyclean-am
+
+distclean: distclean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+ distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-deicsonzepkgdataDATA \
+ install-synthiLTLIBRARIES
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+ mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-deicsonzepkgdataDATA \
+ uninstall-synthiLTLIBRARIES
+
+.MAKE: all check install install-am install-strip
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
+ clean-libtool clean-synthiLTLIBRARIES ctags distclean \
+ distclean-compile distclean-generic distclean-libtool \
+ distclean-tags distdir dvi dvi-am html html-am info info-am \
+ install install-am install-data install-data-am \
+ install-deicsonzepkgdataDATA install-dvi install-dvi-am \
+ install-exec install-exec-am install-html install-html-am \
+ install-info install-info-am install-man install-pdf \
+ install-pdf-am install-ps install-ps-am install-strip \
+ install-synthiLTLIBRARIES installcheck installcheck-am \
+ installdirs maintainer-clean maintainer-clean-generic \
+ mostlyclean mostlyclean-compile mostlyclean-generic \
+ mostlyclean-libtool pdf pdf-am ps ps-am tags uninstall \
+ uninstall-am uninstall-deicsonzepkgdataDATA \
+ uninstall-synthiLTLIBRARIES
+
+
+de:
+ @for base in $(MOCFILES); do echo -e "\t$${base}.cpp $${base}.h \\"; done
+
+nde:
+ @for base in $(MOCFILES); do echo -e "\tmoc_$${base}.cpp \\"; done
+
+.ui.o: %.h
+ $(UIC) -L $(top_srcdir)/muse/widgets -o $*.cpp -impl $*.h $*.ui
+ $(MOC) $*.h >> $*.cpp
+ $(CXXCOMPILE) -c $*.cpp -o $*.o
+ $(RM) $*.cpp moc_$*.cpp moc_$*.o
+
+.ui.lo: %.h
+ $(UIC) -L $(top_srcdir)/muse/widgets -o $*.cpp -impl $*.h $*.ui
+ $(MOC) $*.h >> $*.cpp
+ $(LTCXXCOMPILE) -c $*.cpp -o $*.lo
+ $(RM) $*.cpp moc_$*.cpp moc_$*.lo moc_$*.o
+
+moc_%.cpp: %.h
+ $(MOC) $< -o $@
+
+%.h: %.ui
+ $(UIC) -o $@ $<
+# $(UIC) -L $(top_srcdir)/muse/widgets -o $@ $<
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/muse2/synti/deicsonze/Makefile.am b/muse2/synti/deicsonze/Makefile.am
new file mode 100644
index 00000000..7ae43a5d
--- /dev/null
+++ b/muse2/synti/deicsonze/Makefile.am
@@ -0,0 +1,23 @@
+include $(top_srcdir)/common.am
+include $(top_srcdir)/synti/synti-install.am
+
+if PCH
+AM_CXXFLAGS += -include $(top_srcdir)/all-pic.h -DINSTPREFIX=\"$(prefix)\"
+else
+AM_CXXFLAGS += -DINSTPREFIX=\"$(prefix)\"
+endif
+
+synthi_LTLIBRARIES = deicsonze.la
+
+deicsonze_la_SOURCES = deicsonze.cpp deicsonze.h deicsonzegui.cpp deicsonzegui.h \
+ deicsonzeguibase.ui newpreset.ui
+
+nodist_deicsonze_la_SOURCES = moc_deicsonzegui.cpp
+
+deicsonze_la_LIBADD = ../libsynti/libsynti.la
+deicsonze_la_LDFLAGS = -module -avoid-version
+
+EXTRA_DIST = ARCH_ALIN README
+
+deicsonzepkgdata_DATA = ARCH_ALIN
+deicsonzepkgdatadir = $(pkgdatadir)/presets/deicsonze
diff --git a/muse2/synti/deicsonze/Makefile.in b/muse2/synti/deicsonze/Makefile.in
new file mode 100644
index 00000000..26791d17
--- /dev/null
+++ b/muse2/synti/deicsonze/Makefile.in
@@ -0,0 +1,683 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
+ $(top_srcdir)/common.am $(top_srcdir)/synti/synti-install.am \
+ TODO
+@PCH_TRUE@am__append_1 = -include $(top_srcdir)/all-pic.h -DINSTPREFIX=\"$(prefix)\"
+@PCH_FALSE@am__append_2 = -DINSTPREFIX=\"$(prefix)\"
+subdir = synti/deicsonze
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal-include.m4 \
+ $(top_srcdir)/m4/alsa.m4 $(top_srcdir)/m4/docbook.m4 \
+ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
+ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
+ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__installdirs = "$(DESTDIR)$(synthidir)" \
+ "$(DESTDIR)$(deicsonzepkgdatadir)"
+LTLIBRARIES = $(synthi_LTLIBRARIES)
+deicsonze_la_DEPENDENCIES = ../libsynti/libsynti.la
+am_deicsonze_la_OBJECTS = deicsonze.lo deicsonzegui.lo \
+ deicsonzeguibase.lo newpreset.lo
+nodist_deicsonze_la_OBJECTS = moc_deicsonzegui.lo
+deicsonze_la_OBJECTS = $(am_deicsonze_la_OBJECTS) \
+ $(nodist_deicsonze_la_OBJECTS)
+deicsonze_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \
+ $(CXXFLAGS) $(deicsonze_la_LDFLAGS) $(LDFLAGS) -o $@
+DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
+depcomp = $(SHELL) $(top_srcdir)/depcomp
+am__depfiles_maybe = depfiles
+am__mv = mv -f
+CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
+LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
+CXXLD = $(CXX)
+CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \
+ $(LDFLAGS) -o $@
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
+ $(LDFLAGS) -o $@
+SOURCES = $(deicsonze_la_SOURCES) $(nodist_deicsonze_la_SOURCES)
+DIST_SOURCES = $(deicsonze_la_SOURCES)
+DATA = $(deicsonzepkgdata_DATA)
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ALSA_CFLAGS = @ALSA_CFLAGS@
+ALSA_LIBS = @ALSA_LIBS@
+AMTAR = @AMTAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DOCBOOKSTYLE = @DOCBOOKSTYLE@
+DOCBOOKTARGETS = @DOCBOOKTARGETS@
+DOT = @DOT@
+DOTPATH = @DOTPATH@
+DOXYGEN = @DOXYGEN@
+DOXYGEN_TREEVIEW = @DOXYGEN_TREEVIEW@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+FLUIDSYNTHDIRS = @FLUIDSYNTHDIRS@
+FST_CFLAGS = @FST_CFLAGS@
+FST_LIBS = @FST_LIBS@
+Fluidsynth_CFLAGS = @Fluidsynth_CFLAGS@
+Fluidsynth_LIBS = @Fluidsynth_LIBS@
+GIVERTCAP = @GIVERTCAP@
+GREP = @GREP@
+HAVEDOT = @HAVEDOT@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JACK_CFLAGS = @JACK_CFLAGS@
+JACK_LIBS = @JACK_LIBS@
+JADE = @JADE@
+LASH_CFLAGS = @LASH_CFLAGS@
+LASH_LIBS = @LASH_LIBS@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LO_CFLAGS = @LO_CFLAGS@
+LO_LIBS = @LO_LIBS@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+MUSECXXFLAGS = @MUSECXXFLAGS@
+NM = @NM@
+NMEDIT = @NMEDIT@
+NSGMLS = @NSGMLS@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PCH = @PCH@
+PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+PYTHON = @PYTHON@
+PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
+PYTHON_INCLUDES = @PYTHON_INCLUDES@
+PYTHON_LIB = @PYTHON_LIB@
+PYTHON_PLATFORM = @PYTHON_PLATFORM@
+PYTHON_PREFIX = @PYTHON_PREFIX@
+PYTHON_VERSION = @PYTHON_VERSION@
+QTDIR_BIN = @QTDIR_BIN@
+QTDIR_INC = @QTDIR_INC@
+QT_LIBS = @QT_LIBS@
+RANLIB = @RANLIB@
+SAMPLERATE_CFLAGS = @SAMPLERATE_CFLAGS@
+SAMPLERATE_LIBS = @SAMPLERATE_LIBS@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SNDFILE_CFLAGS = @SNDFILE_CFLAGS@
+SNDFILE_LIBS = @SNDFILE_LIBS@
+STRIP = @STRIP@
+SUIDBUILD = @SUIDBUILD@
+SUIDINSTALL = @SUIDINSTALL@
+USE_SSE = @USE_SSE@
+UUID_CFLAGS = @UUID_CFLAGS@
+UUID_LIBS = @UUID_LIBS@
+VERSION = @VERSION@
+XMKMF = @XMKMF@
+X_CFLAGS = @X_CFLAGS@
+X_EXTRA_LIBS = @X_EXTRA_LIBS@
+X_LIBS = @X_LIBS@
+X_PRE_LIBS = @X_PRE_LIBS@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+have_docbook = @have_docbook@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+lt_ECHO = @lt_ECHO@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+pkgpyexecdir = @pkgpyexecdir@
+pkgpythondir = @pkgpythondir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+pyexecdir = @pyexecdir@
+pythondir = @pythondir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+synth_fluid = @synth_fluid@
+synth_fluidsynth = @synth_fluidsynth@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+AM_CXXFLAGS = $(MUSECXXFLAGS) -I.. -I$(top_srcdir)/synti \
+ -I$(top_srcdir)/muse/widgets -DQT_SHARED -DQT_THREAD_SUPPORT \
+ -DQT_PLUGIN $(QTDIR_INC) -DQT3_SUPPORT $(am__append_1) \
+ $(am__append_2)
+AM_CPPFLAGS =
+MOC = $(QTDIR_BIN)/moc
+#UIC = $(QTDIR_BIN)/uic3
+UIC = /usr/bin/uic3
+UIFILES = $(wildcard *.ui)
+MOCFILES = $(shell for h in $(filter %.h,$(SOURCES)); do \
+ if grep -q Q_OBJECT $$h; then \
+ echo $$h | sed "s/\(.*\)\.h/moc_\1.cpp/"; \
+ fi; \
+ done)
+
+BUILT_SOURCES = $(MOCFILES) $(UIFILES:%.ui=%.h)
+MOSTLYCLEANFILES = $(MOCFILES) $(UIFILES:%.ui=%.h)
+SUFFIXES = .ui .h.gch
+synthidir = $(pkglibdir)/synthi
+synthi_LTLIBRARIES = deicsonze.la
+deicsonze_la_SOURCES = deicsonze.cpp deicsonze.h deicsonzegui.cpp deicsonzegui.h \
+ deicsonzeguibase.ui newpreset.ui
+
+nodist_deicsonze_la_SOURCES = moc_deicsonzegui.cpp
+deicsonze_la_LIBADD = ../libsynti/libsynti.la
+deicsonze_la_LDFLAGS = -module -avoid-version
+EXTRA_DIST = ARCH_ALIN README
+deicsonzepkgdata_DATA = ARCH_ALIN
+deicsonzepkgdatadir = $(pkgdatadir)/presets/deicsonze
+all: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) all-am
+
+.SUFFIXES:
+.SUFFIXES: .ui .h.gch .cpp .lo .o .obj
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/common.am $(top_srcdir)/synti/synti-install.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu synti/deicsonze/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu synti/deicsonze/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+install-synthiLTLIBRARIES: $(synthi_LTLIBRARIES)
+ @$(NORMAL_INSTALL)
+ test -z "$(synthidir)" || $(MKDIR_P) "$(DESTDIR)$(synthidir)"
+ @list='$(synthi_LTLIBRARIES)'; test -n "$(synthidir)" || list=; \
+ list2=; for p in $$list; do \
+ if test -f $$p; then \
+ list2="$$list2 $$p"; \
+ else :; fi; \
+ done; \
+ test -z "$$list2" || { \
+ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(synthidir)'"; \
+ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(synthidir)"; \
+ }
+
+uninstall-synthiLTLIBRARIES:
+ @$(NORMAL_UNINSTALL)
+ @list='$(synthi_LTLIBRARIES)'; test -n "$(synthidir)" || list=; \
+ for p in $$list; do \
+ $(am__strip_dir) \
+ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(synthidir)/$$f'"; \
+ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(synthidir)/$$f"; \
+ done
+
+clean-synthiLTLIBRARIES:
+ -test -z "$(synthi_LTLIBRARIES)" || rm -f $(synthi_LTLIBRARIES)
+ @list='$(synthi_LTLIBRARIES)'; for p in $$list; do \
+ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
+ test "$$dir" != "$$p" || dir=.; \
+ echo "rm -f \"$${dir}/so_locations\""; \
+ rm -f "$${dir}/so_locations"; \
+ done
+deicsonze.la: $(deicsonze_la_OBJECTS) $(deicsonze_la_DEPENDENCIES)
+ $(deicsonze_la_LINK) -rpath $(synthidir) $(deicsonze_la_OBJECTS) $(deicsonze_la_LIBADD) $(LIBS)
+
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT)
+
+distclean-compile:
+ -rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/deicsonze.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/deicsonzegui.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/moc_deicsonzegui.Plo@am__quote@
+
+.cpp.o:
+@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $<
+
+.cpp.obj:
+@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+
+.cpp.lo:
+@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $<
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+install-deicsonzepkgdataDATA: $(deicsonzepkgdata_DATA)
+ @$(NORMAL_INSTALL)
+ test -z "$(deicsonzepkgdatadir)" || $(MKDIR_P) "$(DESTDIR)$(deicsonzepkgdatadir)"
+ @list='$(deicsonzepkgdata_DATA)'; test -n "$(deicsonzepkgdatadir)" || list=; \
+ for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(deicsonzepkgdatadir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(deicsonzepkgdatadir)" || exit $$?; \
+ done
+
+uninstall-deicsonzepkgdataDATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(deicsonzepkgdata_DATA)'; test -n "$(deicsonzepkgdatadir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ test -n "$$files" || exit 0; \
+ echo " ( cd '$(DESTDIR)$(deicsonzepkgdatadir)' && rm -f" $$files ")"; \
+ cd "$(DESTDIR)$(deicsonzepkgdatadir)" && rm -f $$files
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ mkid -fID $$unique
+tags: TAGS
+
+TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ set x; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: CTAGS
+CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) check-am
+all-am: Makefile $(LTLIBRARIES) $(DATA)
+installdirs:
+ for dir in "$(DESTDIR)$(synthidir)" "$(DESTDIR)$(deicsonzepkgdatadir)"; do \
+ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ done
+install: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+ -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES)
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+ -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
+clean: clean-am
+
+clean-am: clean-generic clean-libtool clean-synthiLTLIBRARIES \
+ mostlyclean-am
+
+distclean: distclean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+ distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-deicsonzepkgdataDATA \
+ install-synthiLTLIBRARIES
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+ mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-deicsonzepkgdataDATA \
+ uninstall-synthiLTLIBRARIES
+
+.MAKE: all check install install-am install-strip
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
+ clean-libtool clean-synthiLTLIBRARIES ctags distclean \
+ distclean-compile distclean-generic distclean-libtool \
+ distclean-tags distdir dvi dvi-am html html-am info info-am \
+ install install-am install-data install-data-am \
+ install-deicsonzepkgdataDATA install-dvi install-dvi-am \
+ install-exec install-exec-am install-html install-html-am \
+ install-info install-info-am install-man install-pdf \
+ install-pdf-am install-ps install-ps-am install-strip \
+ install-synthiLTLIBRARIES installcheck installcheck-am \
+ installdirs maintainer-clean maintainer-clean-generic \
+ mostlyclean mostlyclean-compile mostlyclean-generic \
+ mostlyclean-libtool pdf pdf-am ps ps-am tags uninstall \
+ uninstall-am uninstall-deicsonzepkgdataDATA \
+ uninstall-synthiLTLIBRARIES
+
+
+de:
+ @for base in $(MOCFILES); do echo -e "\t$${base}.cpp $${base}.h \\"; done
+
+nde:
+ @for base in $(MOCFILES); do echo -e "\tmoc_$${base}.cpp \\"; done
+
+.ui.o: %.h
+ $(UIC) -L $(top_srcdir)/muse/widgets -o $*.cpp -impl $*.h $*.ui
+ $(MOC) $*.h >> $*.cpp
+ $(CXXCOMPILE) -c $*.cpp -o $*.o
+ $(RM) $*.cpp moc_$*.cpp moc_$*.o
+
+.ui.lo: %.h
+ $(UIC) -L $(top_srcdir)/muse/widgets -o $*.cpp -impl $*.h $*.ui
+ $(MOC) $*.h >> $*.cpp
+ $(LTCXXCOMPILE) -c $*.cpp -o $*.lo
+ $(RM) $*.cpp moc_$*.cpp moc_$*.lo moc_$*.o
+
+moc_%.cpp: %.h
+ $(MOC) $< -o $@
+
+%.h: %.ui
+ $(UIC) -o $@ $<
+# $(UIC) -L $(top_srcdir)/muse/widgets -o $@ $<
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/muse2/synti/deicsonze/README b/muse2/synti/deicsonze/README
new file mode 100644
index 00000000..5cb76402
--- /dev/null
+++ b/muse2/synti/deicsonze/README
@@ -0,0 +1,18 @@
+DeicsOnze is a virtual synthesizer plugin for MusE which reproduces the
+FM synthesis of the YAMAHA DX11 synthesizer/TX81Z sound module.
+
+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 it off as soon as possible.
+
+Not every function is implemented but it starts to sound like the original
+(and even better). Pitch envelope, portamento, pitch bend, modulation and some
+others are not implemented yet.
+
+The vertical sliders are inverted because QTDesigner doesn't have the feature
+of slider invertion, since I think that it will get it before I will finish
+DeicsOnze I'm waiting for a QT improvement.
+
+
+Nil Geisweiller
+alinweiller@caramail.com \ No newline at end of file
diff --git a/muse2/synti/deicsonze/TODO b/muse2/synti/deicsonze/TODO
new file mode 100644
index 00000000..cbcd9b6a
--- /dev/null
+++ b/muse2/synti/deicsonze/TODO
@@ -0,0 +1,13 @@
+- Pitch Bend CTRL
+- Modulation CTRL
+- LFO Delay (bug)
+- Fixed Frequency load Sutula
+- Load save delete GUI
+- Manage unique bank and prog numerous
+- Communication with MusE for automation
+- portamento
+- EG Shift
+- EG Pitch
+- Rate Scaling
+- Monophony
+- newPreset \ No newline at end of file
diff --git a/muse2/synti/deicsonze/deicsonze.cpp b/muse2/synti/deicsonze/deicsonze.cpp
new file mode 100644
index 00000000..2b7162f7
--- /dev/null
+++ b/muse2/synti/deicsonze/deicsonze.cpp
@@ -0,0 +1,1658 @@
+//===========================================================================
+//
+// DeicsOnze an emulator of the YAMAHA DX11 synthesizer
+//
+// Version 0.2.2
+//
+//
+//
+//
+// Copyright (c) 2004 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 "libsynti/mess.h"
+#include "muse/midictrl.h"
+#include "deicsonze.h"
+
+#include "deicsonzegui.h"
+
+#include "muse/midi.h"
+#define ABS(x) (x>=0?x:-x)
+
+
+float DeicsOnze::waveTable[NBRWAVES][RESOLUTION];
+int DeicsOnze::useCount = 0;
+
+//---------------------------------------------------------
+// DeicsOnze
+//---------------------------------------------------------
+
+DeicsOnze::DeicsOnze() : Mess(1)
+{
+ 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);}
+ }
+
+
+
+ srand(time(0)); // initialize random number generator
+
+ loadSutulaPresets();
+
+ initGlobal();
+ initVoices();
+ _preset = new Preset();
+ _preset->initPreset();
+
+ setPreset();
+
+ _gui = new DeicsOnzeGui(this);
+ _gui->setCaption(QString("DeicsOnze"));
+ _gui->show();
+}
+
+//---------------------------------------------------------
+// ~DeicsOnze
+//---------------------------------------------------------
+
+DeicsOnze::~DeicsOnze()
+{
+ //if (--useCount == 0)
+ //delete[] sine_table;
+}
+
+//---------------------------------------------------------
+// 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();
+}
+
+//---------------------------------------------------------
+// setGeometry
+//---------------------------------------------------------
+
+void DeicsOnze::setGeometry(int x, int y, int w, int h) {
+ _gui->resize(QSize(w, h));
+ _gui->move(QPoint(x, y));
+}
+
+//---------------------------------------------------------
+// initGlobal
+//---------------------------------------------------------
+void DeicsOnze::initGlobal() {
+ _global.amp=1.0/(double)NBRVOICES;
+ _global.sustain=false;
+ _global.pitchBendCoef=1.0;
+ _global.lfoIndex=0;
+ _numPatch=0;
+}
+
+//---------------------------------------------------------
+// initVoices
+//---------------------------------------------------------
+void DeicsOnze::initVoices() {
+ for(int i=0; i<NBRVOICES; i++) {
+ _voices[i].isOn=false;
+ _voices[i].isSustained=false;
+ }
+}
+
+//---------------------------------------------------------
+// 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="INIT VOICE";
+ //Subcategory
+ subcategory="NONE";
+ //Category
+ category="NONE";
+}
+
+
+//---------------------------------------------------------
+// findPreset
+// return the first preset corresponding of lbank and prog
+//---------------------------------------------------------
+Preset* presetSet::findPreset(int lbank, int prog) {
+ std::vector<Preset*>::iterator pvi;
+ for(pvi=_presetVector.begin(); pvi!=_presetVector.end(); pvi++)
+ if((*pvi)->bank==lbank && (*pvi)->prog==prog) {
+ return(*pvi);
+ }
+ return NULL;
+}
+Preset* subcategorySet::findPreset(int lbank, int prog) {
+ Preset* p_preset;
+ std::vector<presetSet*>::iterator psvi;
+ for(psvi=_subcategoryVector.begin();psvi!=_subcategoryVector.end(); psvi++)
+ {
+ p_preset=(*psvi)->findPreset(lbank, prog);
+ if(p_preset) return p_preset;
+ }
+ return NULL;
+}
+Preset* categorySet::findPreset(int lbank, int prog) {
+ Preset* p_preset;
+ std::vector<subcategorySet*>::iterator ssvi;
+ for(ssvi=_categoryVector.begin(); ssvi!=_categoryVector.end(); ssvi++)
+ {
+ p_preset=(*ssvi)->findPreset(lbank, prog);
+ if(p_preset) return p_preset;
+ }
+ return NULL;
+}
+Preset* DeicsOnze::findPreset(int lbank, int prog) {
+ return _categorySet->findPreset(lbank, prog);
+}
+
+//---------------------------------------------------------
+// findSubcategorySet
+// take string of a category and return the subcategorySet
+//---------------------------------------------------------
+subcategorySet* categorySet::findSubcategorySet(std::string s) {
+ std::vector<subcategorySet*>::iterator ssvi=_categoryVector.begin();
+ while(ssvi!=_categoryVector.end() && s!=(*ssvi)->_categoryName) ssvi++;
+ return(*ssvi);
+}
+//---------------------------------------------------------
+// findPresetSet
+// take string of a subcategory and return the presetSet
+//---------------------------------------------------------
+presetSet* subcategorySet::findPresetSet(std::string s) {
+ std::vector<presetSet*>::iterator pvi=_subcategoryVector.begin();
+ while(pvi!=_subcategoryVector.end() && s!=(*pvi)->_subcategoryName) pvi++;
+ //if (pvi==NULL) printf("presetSet %s doesn't exist!", s);
+ return(*pvi);
+}
+
+//---------------------------------------------------------
+// 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);
+}
+
+
+//----------------------------------------------------------------
+// setMasterVol
+//----------------------------------------------------------------
+void DeicsOnze::setMasterVol(int mv)
+{
+ _global.amp=(double)mv/(double)MAXMASTERVOL;
+}
+
+//----------------------------------------------------------------
+// getMasterVol
+//----------------------------------------------------------------
+int DeicsOnze::getMasterVol()
+{
+ return((int)(_global.amp*(double)MAXMASTERVOL));
+}
+
+//----------------------------------------------------------------
+// setLfo
+//----------------------------------------------------------------
+
+void DeicsOnze::setLfo()
+{
+ double x;
+ x=(double)_preset->lfo.speed;
+ // lfoSpeed to Hz, obtained by fitting the actual curve by a polynomial
+ _global.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.lfoMaxIndex=(_global.lfoFreq==0?0:(int)((1.0/_global.lfoFreq)
+ *(double)sampleRate()));
+ _global.lfoPitch=(((double)_preset->lfo.pModDepth/(double)MAXPMODDEPTH)
+ *(COEFPLFO(_preset->sensitivity.pitch)));
+ //Amplitude LFO
+ _global.lfoMaxAmp=(((double)_preset->lfo.aModDepth/(double)MAXAMODDEPTH)
+ *(COEFALFO(_preset->sensitivity.amplitude)));
+ //index is concidered on the frequency of the delay
+ _global.lfoDelayMaxIndex=delay2Time(_preset->lfo.delay)*_global.lfoFreq;
+ _global.lfoDelayInct=(double)(RESOLUTION/4)/_global.lfoDelayMaxIndex;
+}
+
+//-----------------------------------------------------------------
+// setFeedback
+//-----------------------------------------------------------------
+void DeicsOnze::setFeedback() {
+ _global.feedbackAmp=COEFFEEDBACK*exp(log(2)*(double)(_preset->feedback
+ -MAXFEEDBACK));
+}
+
+//-----------------------------------------------------------------
+// setPreset
+//-----------------------------------------------------------------
+
+void DeicsOnze::setPreset() {
+ setFeedback();
+ setLfo();
+}
+
+//---------------------------------------------------------
+// printPreset
+//---------------------------------------------------------
+
+inline void printPreset(Preset* p)
+{
+ printf("\n");
+ printf("Algorithm : %d, Feedback : %d\n", p->algorithm, p->feedback);
+ printf("LFO : ");
+ switch(p->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, ",
+ p->lfo.speed, p->lfo.delay, p->lfo.pModDepth, p->lfo.aModDepth);
+ if(p->lfo.sync) printf("Sync\n"); else printf("Not Sync\n");
+ printf("LFO Pitch Sensitivity : %d, LFO Amplitude Sensitivity : %d\n",
+ p->sensitivity.pitch, p->sensitivity.amplitude);
+ for(int i=0; i<NBROP; i++)
+ {
+ printf("amp%d ",i+1);
+ if(p->sensitivity.ampOn) printf("ON "); else printf("OFF ");
+ }
+ printf("\n");
+ for(int i=0; i<NBROP; i++)
+ printf("EgBias%d : %d ",i+1, p->sensitivity.egBias[i]);
+ printf("\n");
+ for(int i=0; i<NBROP; i++)
+ printf("KVS%d : %d ",i+1, p->sensitivity.keyVelocity[i]);
+ printf("\n");
+ for(int i=0; i<NBROP; i++)
+ {
+ if(p->frequency[i].isFix)
+ printf("Freq%d : %f ",i+1, p->frequency[i].ratio);
+ else printf("Ratio%d : %f ",i+1, p->frequency[i].ratio);
+ }
+ printf("\n");
+ for(int i=0; i<NBROP; i++)
+ {
+ printf("OscWave%d ", i+1);
+ switch(p->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, p->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, p->eg[i].ar, i+1, p->eg[i].d1r,
+ i+1, p->eg[i].d1l, i+1, p->eg[i].d2r, i+1, p->eg[i].rr, i+1);
+ switch(p->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"
+ , p->pitchEg.pr1, p->pitchEg.pr2, p->pitchEg.pr3,
+ p->pitchEg.pl1, p->pitchEg.pl2, p->pitchEg.pl3);
+ printf("\n");
+ for(int i=0; i<NBROP; i++)
+ printf("OutLevel%d : %d ",i+1, p->outLevel[i]);
+ printf("\n");
+ printf("Name : %s\n", p->name.c_str());
+}
+
+void presetSet::printSubcategory() {
+ std::cout << " " << _subcategoryName << "\n";
+ for(unsigned int i=0; i<_presetVector.size(); i++)
+ printPreset(_presetVector[i]);
+}
+
+void subcategorySet::printCategory() {
+ std::cout << " " << _categoryName << "\n";
+ for(unsigned int i=0; i<_subcategoryVector.size(); i++)
+ _subcategoryVector[i]->printSubcategory();
+}
+
+void categorySet::printBank() {
+ std::cout << _bankName << "\n";
+ for(unsigned int i=0; i<_categoryVector.size(); i++)
+ _categoryVector[i]->printCategory();
+}
+
+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]);
+}
+
+//---------------------------------------------------------------
+// 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 nBank, nPreset;
+
+ _categorySet=new categorySet("Sutula Bank");
+ Preset* presetTemp;
+
+ nBank=0;
+ nPreset=0;
+
+ QString presetPath(INSTPREFIX);
+ presetPath += "/share/muse/presets/deicsonze/ARCH_ALIN";
+
+ file = fopen (presetPath.latin1(), "rt");
+ if (file == NULL) {
+ printf("can't open ");
+ printf("%s",presetPath.latin1());
+ printf("\n");
+ }
+ else
+ {
+ while(fgets(s, 500, file) && !strstr(s, "** Source:"))
+ {
+ if (strstr(s,"* CATEGORY"))
+ {
+ sscanf(s, "* CATEGORY %s", scategory);
+ _categorySet->_categoryVector
+ .push_back(new subcategorySet(scategory));
+ }
+ if (strstr(s,"* SUBCATEGORY"))
+ {
+ sscanf(s, "* SUBCATEGORY %s", ssubcategory);
+ _categorySet->_categoryVector.back()->_subcategoryVector
+ .push_back(new presetSet(ssubcategory));
+ }
+ }
+ while(!feof(file))
+ {
+ _categorySet->_categoryVector.back()->_subcategoryVector.back()
+ ->_presetVector.push_back(new Preset);
+ presetTemp=_categorySet->_categoryVector.back()
+ ->_subcategoryVector.back()->_presetVector.back();
+ /************* 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);
+ 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].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->subcategory=ssubcategory;
+ presetTemp->category=scategory;
+ presetTemp->bank=nBank;
+ 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);
+ _categorySet->_categoryVector
+ .push_back(new subcategorySet(scategory));
+ }
+ if (strstr(s,"* SUBCATEGORY"))
+ {
+ sscanf(s, "* SUBCATEGORY %s", ssubcategory);
+ _categorySet->_categoryVector.back()
+ ->_subcategoryVector
+ .push_back(new presetSet(ssubcategory));
+ }
+ if(strstr(s, "--Bank"))
+ {
+ nBank++;
+ nPreset=0;
+ }
+ }
+ }
+ }
+ //_categorySet->printBank();
+ 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 minVoice=0;
+ double min=MAXVOLUME;
+ for(int i=0; i<NBRVOICES; i++)
+ {
+ min=((min>_voices[i].volume
+ && _voices[i].op[0].envState!=ATTACK
+ && _voices[i].op[1].envState!=ATTACK
+ && _voices[i].op[2].envState!=ATTACK
+ && _voices[i].op[3].envState!=ATTACK)?_voices[i].volume:min);
+ minVoice=(min==_voices[i].volume?i:minVoice);
+ }
+ return minVoice;
+}
+
+//---------------------------------------------------------
+// noteOff2Voice
+// return the number of the voice off, NBRVOICES otherwise
+//---------------------------------------------------------
+int DeicsOnze::noteOff2Voice()
+{
+ int offVoice=NBRVOICES;
+ for(int i=0; i<NBRVOICES; i++) offVoice=(_voices[i].isOn?offVoice:i);
+ return offVoice;
+}
+
+//---------------------------------------------------------
+// pitchOn2Voice
+// return the number of the voice which has the input
+// pitch and is On and not release, NBRVOICES otherwise
+//---------------------------------------------------------
+int DeicsOnze::pitchOn2Voice(int pitch)
+{
+ int pitchVoice=NBRVOICES;
+ for(int i=0; i<NBRVOICES; i++)
+ pitchVoice=((_voices[i].pitch==pitch
+ && _voices[i].isOn
+ && (_voices[i].op[0].envState==ATTACK
+ || _voices[i].op[0].envState==DECAY
+ || _voices[i].op[0].envState==SUSTAIN)
+ && !_voices[i].isSustained)?
+ i:pitchVoice);
+ return pitchVoice;
+}
+
+
+//---------------------------------------------------------
+// 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, Global* p_g, float* wt)
+{
+ double delayCoef;
+
+ if(p_g->lfoIndex==0)
+ {
+ if(p_g->lfoDelayIndex<(double)(RESOLUTION/4))
+ {
+ delayCoef=(double)wt[(int)p_g->lfoDelayIndex];
+ p_g->lfoMaxCoefInct=exp((log(2.0)/12.0)*p_g->lfoPitch*delayCoef);
+ p_g->lfoCoefInctInct=
+ exp((log(2.0)/12.0)*((2*p_g->lfoPitch*delayCoef)
+ /p_g->lfoMaxIndex));
+ p_g->lfoDelayIndex+=p_g->lfoDelayInct;
+ p_g->lfoMaxDAmp=delayCoef*p_g->lfoMaxAmp;
+ }
+ else
+ if(!p_g->delayPassed)
+ {
+ p_g->lfoMaxCoefInct=exp((log(2.0)/12.0)*p_g->lfoPitch);
+ p_g->lfoCoefInctInct=
+ exp((log(2.0)/12.0)*((2*p_g->lfoPitch)/p_g->lfoMaxIndex));
+ p_g->delayPassed=true;
+ p_g->lfoMaxDAmp=p_g->lfoMaxDAmp;
+ }
+ }
+
+ switch(p->lfo.wave)
+ {
+ case SAWUP :
+ if(p_g->lfoIndex==0)
+ {
+ p_g->lfoCoefInct=1.0/(p_g->lfoMaxCoefInct);
+ p_g->lfoCoefAmp=p_g->lfoMaxDAmp/(double)p_g->lfoMaxIndex;
+ p_g->lfoAmp=1.0;
+ }
+ else
+ {
+ p_g->lfoCoefInct*=p_g->lfoCoefInctInct;
+ p_g->lfoAmp-=p_g->lfoCoefAmp;
+ }
+ break;
+ case SQUARE :
+ if(p_g->lfoIndex==0)
+ {
+ p_g->lfoCoefInct=p_g->lfoMaxCoefInct;
+ p_g->lfoAmp=1.0;
+ }
+ if(p_g->lfoIndex==(p_g->lfoMaxIndex/2))
+ {
+ p_g->lfoCoefInct=1.0/p_g->lfoMaxCoefInct;
+ p_g->lfoAmp=1.0-p_g->lfoMaxDAmp;
+ }
+ break;
+ case TRIANGL :
+ if(p_g->lfoIndex==0)
+ {
+ p_g->lfoCoefInct=1.0;
+ p_g->lfoCoefAmp=p_g->lfoMaxDAmp
+ /(double)(p_g->lfoMaxIndex/2);
+ p_g->lfoAmp=1.0-p_g->lfoMaxDAmp/2.0;
+ }
+ else if(p_g->lfoIndex<(p_g->lfoMaxIndex/4))
+ {
+ p_g->lfoCoefInct*=p_g->lfoCoefInctInct;
+ p_g->lfoAmp-=p_g->lfoCoefAmp;
+ }
+ else if(p_g->lfoIndex<((3*p_g->lfoMaxIndex)/4))
+ {
+ p_g->lfoCoefInct/=p_g->lfoCoefInctInct;
+ p_g->lfoAmp+=p_g->lfoCoefAmp;
+ }
+ else if(p_g->lfoIndex<p_g->lfoMaxIndex)
+ {
+ p_g->lfoCoefInct*=p_g->lfoCoefInctInct;
+ p_g->lfoAmp-=p_g->lfoCoefAmp;
+ }
+ break;
+ case SHOLD :
+ if(p_g->lfoIndex==0||p_g->lfoIndex==(p_g->lfoMaxIndex/2))
+ {
+ double r;//uniform random between -1.0 and 1.0
+ r = (double)(2*rand()-RAND_MAX)/(double)RAND_MAX;
+ p_g->lfoCoefInct=(r>=0.0?1.0+r*(p_g->lfoMaxCoefInct-1.0)
+ :1.0/(1.0-r*(p_g->lfoMaxCoefInct-1.0)));
+ p_g->lfoAmp=1.0-(r/2.0+0.5)*p_g->lfoMaxDAmp;
+ }
+ break;
+ default : printf("Error : flo wave does not exist");
+ break;
+ }
+ p_g->lfoIndex=(p_g->lfoIndex<p_g->lfoMaxIndex?p_g->lfoIndex+1:0);
+ //printf("indexLfo : %d\n",p_g->indexLfo);
+}
+
+//---------------------------------------------------------
+// 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);
+}
+
+//---------------------------------------------------------
+// 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, int 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/(double)sr);
+ }
+}
+
+//---------------------------------------------------------
+// envRR2coef
+// return the coefficient for the exponential decrease
+// with respect to rr and sampleRate, sr
+//---------------------------------------------------------
+inline double envRR2coef(int rr, int sr)
+{
+ 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);
+
+ //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/(double)sr);
+}
+
+
+//---------------------------------------------------------
+// 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(int 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
+ {
+ //printf("DECAY\n");
+ p_opVoice->envState=DECAY;
+ p_opVoice->envLevel=1.0;
+ p_opVoice->coefVLevel=envD1R2coef(eg.d1r, sr);
+ }
+ break;
+ case DECAY:
+ if (p_opVoice->envLevel>((double)eg.d1l/(double)MAXD1L)+COEFERRDECSUS)
+ {
+ p_opVoice->envLevel*=p_opVoice->coefVLevel;
+ }
+ else
+ {
+ //printf("SUSTAIN\n");
+ p_opVoice->envState=SUSTAIN;
+ p_opVoice->envLevel=((double)eg.d1l/(double)MAXD1L);
+ p_opVoice->coefVLevel=envD1R2coef(eg.d2r, sr);//probably the same
+ }
+ break;
+ case SUSTAIN:
+ if (p_opVoice->envLevel>COEFERRSUSREL)
+ {
+ p_opVoice->envLevel*=p_opVoice->coefVLevel;
+ }
+ else
+ {
+ //printf("OFF\n");
+ p_opVoice->envState=OFF;
+ p_opVoice->envLevel=0.0;
+ }
+ break;
+ case RELEASE:
+ if (p_opVoice->envLevel > COEFERRSUSREL)
+ {
+ p_opVoice->envLevel*=p_opVoice->coefVLevel;
+ }
+ else
+ {
+ p_opVoice->envState=OFF;
+ p_opVoice->envLevel=0.0;
+ }
+ break;
+ default:
+ printf("Error case envelopeState");
+ /* fall thru */
+ case OFF:
+ p_opVoice->envLevel = 0.0;
+ break;
+ }
+ return p_opVoice->envLevel;
+
+
+}
+
+//---------------------------------------------------------
+// programSelect
+//---------------------------------------------------------
+
+void DeicsOnze::programSelect(int /*ch*/, int lbank, int prog) {
+ Preset* p_preset;
+ p_preset=findPreset(lbank, prog);
+ if (p_preset) _preset=p_preset;
+ else _preset->initPreset();
+ setPreset();
+}
+
+//---------------------------------------------------------
+// setPitchBendCoef
+//---------------------------------------------------------
+
+void DeicsOnze::setPitchBendCoef(int /*ch*/, int val) {
+ _global.pitchBendCoef=exp(log(2)
+ *((double)_preset->function.pBendRange
+ /(double)MAXPBENDRANGE)
+ *((double)val/(double)MAXPITCHBENDVALUE));
+}
+
+//---------------------------------------------------------
+// setSustain
+//---------------------------------------------------------
+void DeicsOnze::setSustain(int /*ch*/, int val) {
+ _global.sustain=(val>64);
+ if(!_global.sustain)
+ for(int i=0; i<NBRVOICES; i++)
+ if(_voices[i].isSustained) {
+ for(int j=0; j<NBROP; j++) {
+ _voices[i].op[j].envState=RELEASE;
+ _voices[i].op[j].coefVLevel=envRR2coef(_preset->eg[j].rr
+ ,sampleRate());
+ }
+ _voices[i].isSustained=false;
+ }
+}
+
+//---------------------------------------------------------
+// setController
+//---------------------------------------------------------
+
+bool DeicsOnze::setController(int ch, int ctrl, int val)
+{
+ 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;
+ programSelect(ch, lbank, prog);
+ _gui->updatePreset();
+ }
+ break;
+ case CTRL_PITCH:
+ setPitchBendCoef(ch, val);
+ break;
+ case CTRL_SUSTAIN:
+ setSustain(ch, val);
+ break;
+ default:
+ break;
+ }
+ return false;
+}
+
+//---------------------------------------------------------
+// getPatchName
+//---------------------------------------------------------
+
+const char* DeicsOnze::getPatchName(int /*ch*/, int val, int, bool /*drum*/) const
+{
+ int prog = val & 0xff;
+ if(val == CTRL_VAL_UNKNOWN || prog == 0xff)
+ return "<unknown>";
+ prog &= 0x7f;
+
+ 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;
+ const char* name="<unknown>";
+ p_preset=_categorySet->findPreset(lbank, prog);
+ if (p_preset) name=const_cast<char *>(p_preset->name.c_str());
+ return name;
+}
+
+
+//---------------------------------------------------------
+// getPatchInfo
+//---------------------------------------------------------
+
+const MidiPatch* DeicsOnze::getPatchInfo(int /*ch*/, const MidiPatch* /*p*/) const
+{
+ /*if(_numPatch<NBRBANKPRESETS)
+ {
+ _patch.typ = 0;
+ _patch.name = bankA[_numPatch].name;
+ _patch.lbank = 1;
+ _patch.prog = _numPatch;
+ return &_patch;
+ }*/
+ return 0;
+}
+
+
+//---------------------------------------------------------
+// playNote
+// process note on
+//---------------------------------------------------------
+
+bool DeicsOnze::playNote(int /*channel*/, int pitch, int velo)
+{
+ int newVoice;
+ int nO2V;
+ int p2V;
+
+ p2V=pitchOn2Voice(pitch);
+
+ if(velo==0) {//Note off
+ if(p2V<NBRVOICES)
+ {
+ if(_global.sustain) _voices[p2V].isSustained=true;
+ else
+ for(int i=0; i<NBROP; i++)
+ {
+ _voices[p2V].op[i].envState=RELEASE;
+ _voices[p2V].op[i].coefVLevel=envRR2coef(_preset->eg[i].rr
+ ,sampleRate());
+ }
+ return false;}
+ //else printf("error over NBRVOICES\n");
+ }
+ else //Note on
+ {
+ nO2V=noteOff2Voice();
+ newVoice=((nO2V==NBRVOICES)?minVolu2Voice():nO2V);
+
+ _voices[newVoice].isOn=true;
+ _voices[newVoice].sampleFeedback=0.0;
+ _voices[newVoice].pitch=pitch;
+
+ /*if(_preset->lfo.sync)*/ _global.lfoIndex=0;//a revoir
+ _global.lfoDelayIndex=0.0;
+ _global.delayPassed=false;
+
+ for(int i=0; i<NBROP; i++)
+ {
+ _voices[newVoice].op[i].amp=outLevel2Amp(_preset->outLevel[i])
+ *velo2AmpR(velo, _preset->sensitivity.keyVelocity[i])
+ *note2Amp((double)(pitch+_preset->function.transpose),
+ _preset->scaling.level[i]);
+ _voices[newVoice].op[i].index=0.0;
+ _voices[newVoice].op[i].freq=
+ (pitch2freq((double)_preset->globalDetune
+ /(double)MAXGLOBALDETUNE)
+ /LOWERNOTEFREQ)*
+ (_preset->frequency[i].isFix?
+ _preset->frequency[i].freq:
+ (_preset->frequency[i].ratio
+ *pitch2freq((double)(pitch+_preset->function.transpose)
+ +(double)_preset->detune[i]*COEFDETUNE)));
+ _voices[newVoice].op[i].inct=(double)RESOLUTION
+ /((double)sampleRate()/_voices[newVoice].op[i].freq);
+ _voices[newVoice].op[i].envState=ATTACK;
+ _voices[newVoice].op[i].envIndex=0.0;
+ _voices[newVoice].op[i].envInct=(_preset->eg[i].ar==0?0:
+ (double)(RESOLUTION/4)
+ /(envAR2s(_preset->eg[i].ar)
+ *(double)sampleRate()));
+ }
+ return false;
+ }
+ return false;
+}
+
+//---------------------------------------------------------
+// plusMod
+// add two doubles modulo SINRESOLUTION
+//---------------------------------------------------------
+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)
+{
+ float* p = buffer[0] + offset;
+ float sample[NBRVOICES];
+ float resSample;
+ float sampleOp[NBROP];
+ float ampOp[NBROP];
+ for(int i = 0; i < n; i++)
+ {
+ resSample = 0;
+ //stepProcess return the result to resSample
+
+ //Global
+ lfoUpdate(_preset, &_global, waveTable[W2]);
+
+ //per voice
+ for(int j=0; j<NBRVOICES; j++)
+ {
+ if (_voices[j].isOn)
+ {
+ for(int k=0; k<NBROP; k++)
+ {
+ _voices[j].op[k].index=
+ plusMod(_voices[j].op[k].index,
+ _global.lfoCoefInct*_voices[j].op[k].inct
+ *_global.pitchBendCoef);
+
+ ampOp[k]=_voices[j].op[k].amp*COEFLEVEL
+ *(_preset->sensitivity.ampOn[k]?_global.lfoAmp:1.0)
+ *env2AmpR(sampleRate(), waveTable[W2],
+ _preset->eg[k], &_voices[j].op[k]);
+ }
+
+ switch(_preset->algorithm)
+ {
+ case FIRST :
+ sampleOp[3]=ampOp[3]
+ *waveTable[_preset->oscWave[3]]
+ [(int)plusMod(_voices[j].op[3].index,
+ (float)RESOLUTION
+ *_voices[j].sampleFeedback)];
+ sampleOp[2]=ampOp[2]
+ *waveTable[_preset->oscWave[2]]
+ [(int)plusMod(_voices[j].op[2].index,
+ (float)RESOLUTION*sampleOp[3])];
+ sampleOp[1]=ampOp[1]
+ *waveTable[_preset->oscWave[1]]
+ [(int)plusMod(_voices[j].op[1].index,
+ (float)RESOLUTION*sampleOp[2])];
+ sampleOp[0]=ampOp[0]
+ *waveTable[_preset->oscWave[0]]
+ [(int)plusMod(_voices[j].op[0].index,
+ (float)RESOLUTION*sampleOp[1])];
+
+ sample[j]=sampleOp[0];///COEFLEVEL;
+
+ _voices[j].isOn=(_voices[j].op[0].envState!=OFF);
+ break;
+ case SECOND :
+ sampleOp[3]=ampOp[3]
+ *waveTable[_preset->oscWave[3]]
+ [(int)plusMod(_voices[j].op[3].index,
+ (float)RESOLUTION
+ *_voices[j].sampleFeedback)];
+ sampleOp[2]=ampOp[2]
+ *waveTable[_preset->oscWave[2]]
+ [(int)_voices[j].op[2].index];
+ sampleOp[1]=ampOp[1]
+ *waveTable[_preset->oscWave[1]]
+ [(int)plusMod(_voices[j].op[1].index,
+ (float)RESOLUTION
+ *(sampleOp[2]+sampleOp[3])/2.0)];
+ sampleOp[0]=ampOp[0]
+ *waveTable[_preset->oscWave[0]]
+ [(int)plusMod(_voices[j].op[0].index,
+ (float)RESOLUTION
+ *sampleOp[1])];
+
+ sample[j]=sampleOp[0];///COEFLEVEL;
+
+ _voices[j].isOn=(_voices[j].op[0].envState!=OFF);
+ break;
+ case THIRD :
+ sampleOp[3]=ampOp[3]
+ *waveTable[_preset->oscWave[3]]
+ [(int)plusMod(_voices[j].op[3].index,
+ (float)RESOLUTION
+ *_voices[j].sampleFeedback)];
+ sampleOp[2]=ampOp[2]
+ *waveTable[_preset->oscWave[2]]
+ [(int)_voices[j].op[2].index];
+ sampleOp[1]=ampOp[1]
+ *waveTable[_preset->oscWave[1]]
+ [(int)plusMod(_voices[j].op[1].index,
+ (float)RESOLUTION*sampleOp[2])];
+ sampleOp[0]=ampOp[0]
+ *waveTable[_preset->oscWave[0]]
+ [(int)plusMod(_voices[j].op[0].index,
+ (float)RESOLUTION
+ *(sampleOp[3]+sampleOp[1])/2.0)];
+
+ sample[j]=sampleOp[0];///COEFLEVEL;
+
+ _voices[j].isOn=(_voices[j].op[0].envState!=OFF);
+ break;
+ case FOURTH :
+ sampleOp[3]=ampOp[3]
+ *waveTable[_preset->oscWave[3]]
+ [(int)plusMod(_voices[j].op[3].index,
+ (float)RESOLUTION
+ *_voices[j].sampleFeedback)];
+ sampleOp[2]=ampOp[2]
+ *waveTable[_preset->oscWave[2]]
+ [(int)plusMod(_voices[j].op[2].index,
+ (float)RESOLUTION
+ *sampleOp[3])];
+ sampleOp[1]=ampOp[1]
+ *waveTable[_preset->oscWave[1]]
+ [(int)_voices[j].op[1].index];
+ sampleOp[0]=ampOp[0]
+ *waveTable[_preset->oscWave[0]]
+ [(int)plusMod(_voices[j].op[0].index,
+ (float)RESOLUTION
+ *(sampleOp[1]+sampleOp[2])/2.0)];
+
+ sample[j]=sampleOp[0];///COEFLEVEL;
+
+ _voices[j].isOn=(_voices[j].op[0].envState!=OFF);
+ break;
+ case FIFTH :
+ sampleOp[3]=ampOp[3]
+ *waveTable[_preset->oscWave[3]]
+ [(int)plusMod(_voices[j].op[3].index,
+ (float)RESOLUTION
+ *_voices[j].sampleFeedback)];
+ sampleOp[2]=ampOp[2]
+ *waveTable[_preset->oscWave[2]]
+ [(int)plusMod(_voices[j].op[2].index,
+ (float)RESOLUTION*sampleOp[3])];
+ sampleOp[1]=ampOp[1]
+ *waveTable[_preset->oscWave[1]]
+ [(int)_voices[j].op[1].index];
+ sampleOp[0]=ampOp[0]
+ *waveTable[_preset->oscWave[0]]
+ [(int)plusMod(_voices[j].op[0].index,
+ (float)RESOLUTION*sampleOp[1])];
+
+ sample[j]=(sampleOp[0]+sampleOp[2])/2.0;///COEFLEVEL;
+
+ _voices[j].isOn=(_voices[j].op[0].envState!=OFF
+ ||_voices[j].op[2].envState!=OFF);
+ break;
+ case SIXTH :
+ sampleOp[3]=ampOp[3]
+ *waveTable[_preset->oscWave[3]]
+ [(int)plusMod(_voices[j].op[3].index,
+ (float)RESOLUTION
+ *_voices[j].sampleFeedback)];
+ sampleOp[2]=ampOp[2]
+ *waveTable[_preset->oscWave[2]]
+ [(int)plusMod(_voices[j].op[2].index,
+ (float)RESOLUTION*sampleOp[3])];
+ sampleOp[1]=ampOp[1]
+ *waveTable[_preset->oscWave[1]]
+ [(int)plusMod(_voices[j].op[1].index,
+ (float)RESOLUTION*sampleOp[3])];
+ sampleOp[0]=ampOp[0]
+ *waveTable[_preset->oscWave[0]]
+ [(int)plusMod(_voices[j].op[0].index,
+ (float)RESOLUTION*sampleOp[3])];
+
+ sample[j]=(sampleOp[0]+sampleOp[1]+sampleOp[2])/3.0;
+
+ _voices[j].isOn=(_voices[j].op[0].envState!=OFF);
+ break;
+ case SEVENTH :
+ sampleOp[3]=ampOp[3]
+ *waveTable[_preset->oscWave[3]]
+ [(int)plusMod(_voices[j].op[3].index,
+ (float)RESOLUTION
+ *_voices[j].sampleFeedback)];
+ sampleOp[2]=ampOp[2]
+ *waveTable[_preset->oscWave[2]]
+ [(int)plusMod(_voices[j].op[2].index,
+ (float)RESOLUTION*sampleOp[3])];
+ sampleOp[1]=ampOp[1]
+ *waveTable[_preset->oscWave[1]]
+ [(int)_voices[j].op[1].index];
+ sampleOp[0]=ampOp[0]*waveTable[_preset->oscWave[3]]
+ [(int)_voices[j].op[0].index];
+
+ sample[j]=(sampleOp[0]+sampleOp[1]+sampleOp[2])/3.0;
+
+ _voices[j].isOn=(_voices[j].op[0].envState!=OFF);
+ break;
+ case EIGHTH :
+ sampleOp[3]=ampOp[3]
+ *waveTable[_preset->oscWave[3]]
+ [(int)plusMod(_voices[j].op[3].index,
+ (float)RESOLUTION
+ *_voices[j].sampleFeedback)];
+ sampleOp[2]=ampOp[2]
+ *waveTable[_preset->oscWave[3]]
+ [(int)_voices[j].op[2].index];
+ sampleOp[1]=ampOp[1]
+ *waveTable[_preset->oscWave[3]]
+ [(int)_voices[j].op[1].index];
+ sampleOp[0]=ampOp[0]
+ *waveTable[_preset->oscWave[3]]
+ [(int)_voices[j].op[0].index];
+
+ sample[j]=
+ (sampleOp[0]+sampleOp[1]+sampleOp[2]+sampleOp[3])
+ /4.0;
+
+ _voices[j].isOn=(_voices[j].op[0].envState!=OFF
+ || _voices[j].op[1].envState!=OFF
+ || _voices[j].op[2].envState!=OFF
+ || _voices[j].op[3].envState!=OFF);
+ break;
+ default : printf("Error : No algorithm");
+
+ sampleOp[3]= sampleOp[2]= sampleOp[1]= sampleOp[0]=0; //prevent unitialiazed use of variable
+ break;
+ }
+
+ _voices[j].volume=
+ ampOp[0]+ampOp[1]+ampOp[2]+ampOp[3];
+
+ _voices[j].sampleFeedback=sampleOp[3]*_global.feedbackAmp;
+
+ resSample += sample[j];
+ }
+ }
+ p[i] += resSample*_global.amp;
+ }
+}
+
+//---------------------------------------------------------
+// processEvent
+// All events from the sequencer go here
+//---------------------------------------------------------
+bool DeicsOnze::processEvent(const MidiPlayEvent& ev)
+{
+ switch(ev.type()) {
+ case ME_CONTROLLER:
+ setController(ev.channel(), ev.dataA(), ev.dataB());
+ 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:
+ return sysex(ev.len(), ev.data());
+ case ME_PITCHBEND:
+ setController(ev.channel(), CTRL_PITCH, ev.dataA());
+ break;
+ case ME_PROGRAM:
+ setController(ev.channel(), CTRL_PROGRAM, ev.dataA());
+ break;
+ default:
+ break;
+ }
+ return false;
+}
+
+//---------------------------------------------------------
+// inst
+//---------------------------------------------------------
+
+class QWidget;
+
+static Mess* instantiate(int sr, QWidget*, QString* projectPathPtr, const char*)
+{
+ DeicsOnze* deicsonze = new DeicsOnze();
+ deicsonze->setSampleRate(sr);
+ return deicsonze;
+}
+
+extern "C" {
+ static MESS descriptor = {
+ "DeicsOnze",
+ "DeicsOnze FM DX11 emulator",
+ "0.2.2", // version string
+ MESS_MAJOR_VERSION, MESS_MINOR_VERSION,
+ instantiate
+ };
+
+ const MESS* mess_descriptor() { return &descriptor; }
+}
+
diff --git a/muse2/synti/deicsonze/deicsonze.h b/muse2/synti/deicsonze/deicsonze.h
new file mode 100644
index 00000000..3dd57a70
--- /dev/null
+++ b/muse2/synti/deicsonze/deicsonze.h
@@ -0,0 +1,462 @@
+//===========================================================================
+//
+// DeicsOnze an emulator of the YAMAHA DX11 synthesizer
+//
+// Version 0.2.2
+//
+//
+//
+//
+// Copyright (c) 2004 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 <iostream>
+#include <vector>
+#include <string>
+
+#include "deicsonzegui.h"
+#include "libsynti/mess.h"
+
+// #define PRESETPATH "/home/a-lin/sources/muse-0.7.0/synti/deicsonze/ARCH_ALIN"
+
+#define MAXPITCHBENDVALUE 8191
+
+#define RESOLUTION 96000
+
+#define NBRBANKS 19
+#define NBRPRESETS 128
+
+#define LOWERNOTEFREQ 8.176
+
+#define DB0LEVEL 90
+
+#define MAXFEEDBACK 7
+#define MAXSPEED 99
+#define MAXDELAY 99
+#define MAXPMODDEPTH 99
+#define MAXAMODDEPTH 99
+#define MAXSENSPITCH 7
+#define MAXKVS 7
+#define MAXAR 31
+#define MAXD1R 31
+#define MAXD1L 15
+#define MAXD2R 31
+#define MAXOUTLEVEL 99
+#define MAXRR 15
+#define MAXRATE 3
+#define MAXPBENDRANGE 12
+#define MAXPROTATIME 99
+#define MAXFCVOLUME 99
+#define MAXFCPITCH 99
+#define MAXFCAMPLITUDE 99
+#define MAXMWPITCH 99
+#define MAXMWAMPLITUDE 99
+#define MAXBCPITCH 99
+#define MAXBCAMPLITUDE 99
+#define MAXBCEGBIAS 50
+#define LENGTHNAME 20
+#define LENGTHCATEGORY 20
+#define LENGTHSUBCATEGORY 20
+
+#define MAXGLOBALDETUNE 15
+#define MAXVELO 127
+#define MAXVOLUME 100.0
+
+#define MAXMASTERVOL 255
+
+//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 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 COEFDECAY 1.0
+#define COEFSUSTAIN 0.2
+#define COEFRELEASE 1.0
+#define COEFDETUNE 0.008
+#define COEFLEVELSCALE 0.0005
+#define LEVELSCALENOTE 24.0
+
+#define NBROP 4 //do not change
+#define NBRWAVES 8 //number wave forms, do not change
+#define NBRBANKPRESETS 32
+#define NBRVOICES 8
+
+
+//---------------------------------------------------------
+// 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;
+};
+
+//---------------------------------------------------------
+// Frequency
+//---------------------------------------------------------
+struct Frequency {
+ double ratio;
+ bool isFix; //if isFix no ratio but frequency
+ double freq;
+};
+
+//---------------------------------------------------------
+// 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
+};
+
+//---------------------------------------------------------
+// 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:
+ //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; //-15 to 15
+ std::string name;//char name[LENGTHNAME+1];
+ std::string subcategory;//char subcategory[LENGTHSUBCATEGORY+1];
+ std::string category;//char category[LENGTHCATEGORY+1];
+ int bank; //0 to 127
+ int prog; //0 to 127
+ //Methods
+ void initPreset();
+ //constructor
+ //Preset(Preset* p_preset) {_preset=*p_preset;}
+ //~Preset();
+};
+
+
+//---------------------------------------------------------
+// EnvState
+//---------------------------------------------------------
+
+enum EnvState{
+ ATTACK,
+ DECAY,
+ SUSTAIN,
+ RELEASE,
+ OFF
+};
+
+//---------------------------------------------------------
+// OpVoice
+//---------------------------------------------------------
+
+struct OpVoice {
+ double freq;
+ double index;
+ double inct;
+ double amp; //between 0 and 1
+ EnvState envState;
+ double envIndex;
+ double envInct;
+ double envLevel;
+ double coefVLevel;
+};
+
+//---------------------------------------------------------
+// Voice
+//---------------------------------------------------------
+
+struct Voice {
+ bool isOn;
+ bool isSustained;
+ int pitch;
+ double volume;
+ OpVoice op[NBROP];
+ float sampleFeedback;
+};
+
+//---------------------------------------------------------
+// Global
+//---------------------------------------------------------
+
+struct Global {
+ float amp;
+ 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
+};
+
+//---------------------------------------------------------------
+// Bank, organized by a tree of category, subcategory, preset
+//---------------------------------------------------------------
+class presetSet {
+ public:
+ std::string _subcategoryName;
+ std::vector<Preset*> _presetVector;
+ Preset* findPreset(int lbank, int prog);
+ void printSubcategory();
+ presetSet(std::string name){_subcategoryName=name;}
+ ~presetSet(){};
+};
+
+class subcategorySet {
+ public:
+ std::string _categoryName;
+ std::vector<presetSet*> _subcategoryVector;
+ presetSet* findPresetSet(std::string s);
+ Preset* findPreset(int lbank, int prog);
+ void printCategory();
+ subcategorySet(const std::string name){_categoryName=name;}
+ ~subcategorySet(){};
+};
+
+class categorySet {
+ public:
+ std::string _bankName;
+ std::vector<subcategorySet*> _categoryVector;
+ Preset* findPreset(int lbank, int prog);
+ subcategorySet* findSubcategorySet(std::string s);
+ void printBank();
+ categorySet(const std::string name){_bankName=name;}
+ ~categorySet(){};
+};
+
+//---------------------------------------------------------
+// DeicsOnze : DX11 emulator
+//---------------------------------------------------------
+
+class DeicsOnze : public Mess {
+ DeicsOnzeGui* _gui;
+
+ static int useCount;
+ static float waveTable[NBRWAVES][RESOLUTION];
+
+ public:
+
+ Global _global;
+ Voice _voices[NBRVOICES];
+ Preset* _preset;
+
+ mutable MidiPatch _patch;
+ int _numPatch;
+
+ //preset tree
+ categorySet* _categorySet;
+
+ /*subcategorySet* findSubcategorySet(std::string s);*/
+ Preset* findPreset(int lbank, int prog);
+ void initGlobal();
+ void initVoices();
+ void initPreset();
+ void setPreset();
+ void setFeedback();
+ void setLfo();
+ void loadSutulaPresets();
+ int noteOff2Voice();
+ int minVolu2Voice();
+ int pitchOn2Voice(int pitch);
+ void programSelect(int ch, int lbank, int prog);
+
+ void setPitchBendCoef(int ch, int val);
+ void setSustain(int ch, int val);
+ virtual bool setController(int ch, int ctrl, int val);
+ virtual const char* getPatchName(int ch, int number, int, bool) const;
+ virtual const MidiPatch* getPatchInfo(int, const MidiPatch *) const;
+ virtual bool playNote(int channel, int pitch, int velo);
+ //virtual void processMessages();
+ virtual void process(float** buffer, int offset, int n);
+
+ virtual bool processEvent(const MidiPlayEvent&);
+ // 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);
+
+ void setMasterVol(int mv);
+ int getMasterVol();
+
+ DeicsOnze();
+ ~DeicsOnze();
+};
+
+
+#endif /* __DEICSONZE_H */
diff --git a/muse2/synti/deicsonze/deicsonzegui.cpp b/muse2/synti/deicsonze/deicsonzegui.cpp
new file mode 100644
index 00000000..da293df9
--- /dev/null
+++ b/muse2/synti/deicsonze/deicsonzegui.cpp
@@ -0,0 +1,720 @@
+//===========================================================================
+//
+// DeicsOnze an emulator of the YAMAHA DX11 synthesizer
+//
+// Version 0.2.2
+//
+// deicsonzegui.cpp
+//
+//
+// Copyright (c) 2004 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 <qvariant.h>
+#include <q3groupbox.h>
+#include <qslider.h>
+#include <qcombobox.h>
+#include <qcheckbox.h>
+#include <qlineedit.h>
+#include <qlcdnumber.h>
+#include <q3listview.h>
+#include <qspinbox.h>
+#include <qlayout.h>
+#include <qtooltip.h>
+#include <q3whatsthis.h>
+#include <qstring.h>
+#include <q3filedialog.h>
+#include <qmessagebox.h>
+#include <qpushbutton.h>
+#include <math.h>
+
+#include "newpreset.h"
+#include "deicsonzegui.h"
+#include "deicsonze.h"
+
+DeicsOnzeGui::DeicsOnzeGui(DeicsOnze* deicsOnze)
+ : DeicsOnzeGuiBase(0, "deicsOnzeGui"),
+ MessGui()
+{
+ this->setFixedWidth(470);
+ this->setFixedHeight(358);
+ _deicsOnze = deicsOnze;
+ lastDir= "";
+ connect(newPushButton, SIGNAL(clicked()),
+ this, SLOT(newPresetDialogue()));
+ connect(deletePushButton, SIGNAL(clicked()),
+ this, SLOT(deletePresetDialogue()));
+ connect(loadPushButton, SIGNAL(clicked()),
+ this, SLOT(loadPresetsDialogue()));
+ connect(savePushButton, SIGNAL(clicked()),
+ this, SLOT(savePresetsDialogue()));
+ //Preset and bank
+ connect(nameLineEdit, SIGNAL(textChanged(const QString&)),
+ this, SLOT(setName(const QString&)));
+ connect(subcategoryLineEdit, SIGNAL(textChanged(const QString&)),
+ this, SLOT(setSubcategory(const QString&)));
+ connect(categoryLineEdit, SIGNAL(textChanged(const QString&)),
+ this, SLOT(setCategory(const QString&)));
+ connect(bankSpinBox, SIGNAL(valueChanged(int)), this, SLOT(setBank(int)));
+ connect(progSpinBox, SIGNAL(valueChanged(int)), this, SLOT(setProg(int)));
+ //Global
+ connect(masterVolSlider, SIGNAL(valueChanged(int)),
+ this, SLOT(setMasterVol(int)));
+ connect(feedbackSlider, SIGNAL(valueChanged(int)),
+ this, SLOT(setFeedback(int)));
+ connect(LFOWaveComboBox, SIGNAL(activated(const QString&)),
+ this, SLOT(setLfoWave(const QString&)));
+ 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(globalDetuneSlider, SIGNAL(valueChanged(int)),
+ this, SLOT(setGlobalDetune(int)));
+ connect(algorithmComboBox, SIGNAL(activated(const QString&)),
+ this, SLOT(setAlgorithm(const QString&)));
+ connect(PitchBendRangeSlider, SIGNAL(valueChanged(int)),
+ this, SLOT(setPitchBendRange(int)));
+ //envelope
+ connect(AR1Slider, SIGNAL(valueChanged(int)), this, SLOT(setAR1(int)));
+ connect(D1R1Slider, SIGNAL(valueChanged(int)), this, SLOT(setD1R1(int)));
+ connect(D1L1Slider, SIGNAL(valueChanged(int)), this, SLOT(setD1L1(int)));
+ connect(D2R1Slider, SIGNAL(valueChanged(int)), this, SLOT(setD2R1(int)));
+ connect(RR1Slider, SIGNAL(valueChanged(int)), this, SLOT(setRR1(int)));
+ connect(AR2Slider, SIGNAL(valueChanged(int)), this, SLOT(setAR2(int)));
+ connect(D1R2Slider, SIGNAL(valueChanged(int)), this, SLOT(setD1R2(int)));
+ connect(D1L2Slider, SIGNAL(valueChanged(int)), this, SLOT(setD1L2(int)));
+ connect(D2R2Slider, SIGNAL(valueChanged(int)), this, SLOT(setD2R2(int)));
+ connect(RR2Slider, SIGNAL(valueChanged(int)), this, SLOT(setRR2(int)));
+ connect(AR3Slider, SIGNAL(valueChanged(int)), this, SLOT(setAR3(int)));
+ connect(D1R3Slider, SIGNAL(valueChanged(int)), this, SLOT(setD1R3(int)));
+ connect(D1L3Slider, SIGNAL(valueChanged(int)), this, SLOT(setD1L3(int)));
+ connect(D2R3Slider, SIGNAL(valueChanged(int)), this, SLOT(setD2R3(int)));
+ connect(RR3Slider, SIGNAL(valueChanged(int)), this, SLOT(setRR3(int)));
+ connect(AR4Slider, SIGNAL(valueChanged(int)), this, SLOT(setAR4(int)));
+ connect(D1R4Slider, SIGNAL(valueChanged(int)), this, SLOT(setD1R4(int)));
+ connect(D1L4Slider, SIGNAL(valueChanged(int)), this, SLOT(setD1L4(int)));
+ connect(D2R4Slider, SIGNAL(valueChanged(int)), this, SLOT(setD2R4(int)));
+ connect(RR4Slider, 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(Vol1Slider, SIGNAL(valueChanged(int)), this, SLOT(setVol1(int)));
+ connect(Vol2Slider, SIGNAL(valueChanged(int)), this, SLOT(setVol2(int)));
+ connect(Vol3Slider, SIGNAL(valueChanged(int)), this, SLOT(setVol3(int)));
+ connect(Vol4Slider, 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(const QString&)),
+ this, SLOT(setWaveForm1(const QString&)));
+ connect(WaveForm2ComboBox, SIGNAL(activated(const QString&)),
+ this, SLOT(setWaveForm2(const QString&)));
+ connect(WaveForm3ComboBox, SIGNAL(activated(const QString&)),
+ this, SLOT(setWaveForm3(const QString&)));
+ connect(WaveForm4ComboBox, SIGNAL(activated(const QString&)),
+ this, SLOT(setWaveForm4(const QString&)));
+ //category subcategory preset
+ connect(categoryListView, SIGNAL(currentChanged(Q3ListViewItem*)),
+ this, SLOT(setSubcategorySet(Q3ListViewItem*)));
+ connect(categoryListView, SIGNAL(clicked(Q3ListViewItem*)),
+ this, SLOT(setSubcategorySet(Q3ListViewItem*)));
+ connect(subcategoryListView, SIGNAL(currentChanged(Q3ListViewItem*)),
+ this, SLOT(setPresetSet(Q3ListViewItem*)));
+ connect(subcategoryListView, SIGNAL(clicked(Q3ListViewItem*)),
+ this, SLOT(setPresetSet(Q3ListViewItem*)));
+ connect(presetsListView, SIGNAL(currentChanged(Q3ListViewItem*)),
+ this, SLOT(setPreset(Q3ListViewItem*)));
+ connect(presetsListView, SIGNAL(clicked(Q3ListViewItem*)),
+ this, SLOT(setPreset(Q3ListViewItem*)));
+
+
+ for(unsigned int i=0; i<_deicsOnze->_categorySet->_categoryVector.size();
+ i++)
+ (void) new QListViewItemCategory
+ (categoryListView, _deicsOnze->_categorySet->_categoryVector[i]
+ ->_categoryName.c_str(), _deicsOnze->_categorySet->_categoryVector[i]);
+
+ // work around for probable QT/WM interaction bug.
+ // for certain window managers, e.g xfce, this window is
+ // is displayed although not specifically set to show();
+ // bug: 2811156 Softsynth GUI unclosable with XFCE4 (and a few others)
+ show();
+ hide();
+};
+
+
+//-----------------------------------------------------------
+// newPresetsDialogue
+//-----------------------------------------------------------
+void DeicsOnzeGui::newPresetDialogue() {
+ NewPreset* newpreset = new NewPreset(0, "newPreset");
+ if(_currentQLVICategory)
+ newpreset->categoryNPLineEdit->setText(_currentQLVICategory
+ ->_c->_categoryName.c_str());
+ if(_currentQLVISubcategory)
+ newpreset->subcategoryNPLineEdit->setText(_currentQLVISubcategory
+ ->_s->_subcategoryName.c_str());
+
+ if(QDialog::Accepted==newpreset->exec()) {
+ std::string std_s = newpreset->categoryNPLineEdit->text().ascii();
+ subcategorySet* subcatS = _deicsOnze->_categorySet
+ ->findSubcategorySet(std_s);
+ if(subcatS) {
+ std::string std_s_2 = newpreset->subcategoryNPLineEdit
+ ->text().ascii();
+ presetSet* preS = subcatS->findPresetSet(std_s_2);
+ if(preS) {
+ preS->_presetVector.push_back(new Preset());
+ Preset* presetTemp=preS->_presetVector.back();
+
+ presetTemp->initPreset();
+ presetTemp->name=newpreset->nameNPLineEdit->text().ascii();
+ presetTemp->subcategory=
+ newpreset->subcategoryNPLineEdit->text().ascii();
+ presetTemp->category=
+ newpreset->categoryNPLineEdit->text().ascii();
+ presetTemp->bank=newpreset->bankNPSpinBox->value()-1;
+ presetTemp->prog=newpreset->progNPSpinBox->value()-1;
+ }
+ }
+ }
+}
+//-----------------------------------------------------------
+// deletePresetsDialogue
+//-----------------------------------------------------------
+void DeicsOnzeGui::deletePresetDialogue() {
+ std::vector<Preset*>::iterator i=_currentQLVIPreset->i_p;
+ if(!QMessageBox::question(
+ this,
+ tr("Delete preset"),
+ tr("Do you really want to delete %1 ?").arg((*i)->name.c_str()),
+ tr("&Yes"), tr("&No"),
+ QString::null, 0, 1 ))
+ {
+ //delete(_currentQLVIPreset->_p);
+ delete(_currentQLVIPreset);
+ _currentQLVISubcategory->_s->_presetVector.erase(i);
+ }
+}
+//-----------------------------------------------------------
+// loadPresetsDialogue
+//-----------------------------------------------------------
+void DeicsOnzeGui::loadPresetsDialogue() {
+ QString filename =
+ Q3FileDialog::getOpenFileName(lastDir,
+ QString("*.dei"),
+ this,
+ "Load presets dialog","Choose presets");
+}
+//-----------------------------------------------------------
+// savePresetsDialogue
+//-----------------------------------------------------------
+void DeicsOnzeGui::savePresetsDialogue() {
+ QString filename =
+ Q3FileDialog::getSaveFileName(lastDir,
+ QString("*.dei"),
+ this,
+ "Save presets dialog","Choose file");
+}
+//-----------------------------------------------------------
+// Preset and bank
+//-----------------------------------------------------------
+void DeicsOnzeGui::setName(const QString& n) {
+ _deicsOnze->_preset->name=n.ascii();
+}
+void DeicsOnzeGui::setSubcategory(const QString& s) {
+ _deicsOnze->_preset->subcategory=s.ascii();
+}
+void DeicsOnzeGui::setCategory(const QString& c) {
+ _deicsOnze->_preset->category=c.ascii();
+}
+void DeicsOnzeGui::setBank(int b) {_deicsOnze->_preset->bank=b-1;}
+void DeicsOnzeGui::setProg(int p) {_deicsOnze->_preset->prog=p-1;}
+
+//-----------------------------------------------------------
+// Global controle
+//-----------------------------------------------------------
+void DeicsOnzeGui::setMasterVol(int mv) {
+ _deicsOnze->setMasterVol(mv);
+}
+
+void DeicsOnzeGui::setFeedback(int f) {
+ _deicsOnze->_preset->feedback=f;
+ _deicsOnze->setFeedback();
+}
+
+void DeicsOnzeGui::setLfoWave(const QString& qs) {
+ _deicsOnze->_preset->lfo.wave=
+ ((operator==(qs,"Saw Up")?SAWUP:
+ (operator==(qs,"Square")?SQUARE:
+ (operator==(qs,"Triangl")?TRIANGL:SHOLD))));
+ _deicsOnze->setLfo();
+}
+
+void DeicsOnzeGui::setLfoSpeed(int ls) {
+ _deicsOnze->_preset->lfo.speed=ls;
+ _deicsOnze->setLfo();
+}
+
+void DeicsOnzeGui::setLfoDelay(int ld) {
+ _deicsOnze->_preset->lfo.delay=ld;
+ _deicsOnze->setLfo();
+}
+
+void DeicsOnzeGui::setLfoPModDepth(int lpmd) {
+ _deicsOnze->_preset->lfo.pModDepth=lpmd;
+ _deicsOnze->setLfo();
+}
+
+void DeicsOnzeGui::setLfoPitchSens(int lps) {
+ _deicsOnze->_preset->sensitivity.pitch=lps;
+ _deicsOnze->setLfo();
+}
+
+void DeicsOnzeGui::setLfoAModDepth(int lamd) {
+ _deicsOnze->_preset->lfo.aModDepth=lamd;
+ _deicsOnze->setLfo();
+}
+
+void DeicsOnzeGui::setLfoAmpSens(int las) {
+ _deicsOnze->_preset->sensitivity.amplitude=las;
+ _deicsOnze->setLfo();
+}
+
+void DeicsOnzeGui::setTranspose(int t) {
+ _deicsOnze->_preset->function.transpose=t;
+}
+
+void DeicsOnzeGui::setGlobalDetune(int gd) {
+ _deicsOnze->_preset->globalDetune=gd;
+}
+
+void DeicsOnzeGui::setAlgorithm(const QString& a) {
+ _deicsOnze->_preset->algorithm=
+ ((operator==(a,"Algorithm 1")?FIRST:
+ (operator==(a,"Algorithm 2")?SECOND:
+ (operator==(a,"Algorithm 3")?THIRD:
+ (operator==(a, "Algorithm 4")?FOURTH:
+ (operator==(a, "Algorithm 5")?FIFTH:
+ (operator==(a, "Algorithm 6")?SIXTH:
+ (operator==(a, "Algorithm 7")?SEVENTH:EIGHTH))))))));
+}
+
+void DeicsOnzeGui::setPitchBendRange(int pbr) {
+ _deicsOnze->_preset->function.pBendRange=pbr;
+}
+
+//---------------------------------------------------------------
+// envelope controle
+//---------------------------------------------------------------
+void DeicsOnzeGui::setAR1(int val){_deicsOnze->_preset->eg[0].ar=val;}
+void DeicsOnzeGui::setD1R1(int val){_deicsOnze->_preset->eg[0].d1r=val;}
+void DeicsOnzeGui::setD1L1(int val){_deicsOnze->_preset->eg[0].d1l=val;}
+void DeicsOnzeGui::setD2R1(int val){_deicsOnze->_preset->eg[0].d2r=val;}
+void DeicsOnzeGui::setRR1(int val){_deicsOnze->_preset->eg[0].rr=val;}
+void DeicsOnzeGui::setAR2(int val){_deicsOnze->_preset->eg[1].ar=val;}
+void DeicsOnzeGui::setD1R2(int val){_deicsOnze->_preset->eg[1].d1r=val;}
+void DeicsOnzeGui::setD1L2(int val){_deicsOnze->_preset->eg[1].d1l=val;}
+void DeicsOnzeGui::setD2R2(int val){_deicsOnze->_preset->eg[1].d2r=val;}
+void DeicsOnzeGui::setRR2(int val){_deicsOnze->_preset->eg[1].rr=val;}
+void DeicsOnzeGui::setAR3(int val){_deicsOnze->_preset->eg[2].ar=val;}
+void DeicsOnzeGui::setD1R3(int val){_deicsOnze->_preset->eg[2].d1r=val;}
+void DeicsOnzeGui::setD1L3(int val){_deicsOnze->_preset->eg[2].d1l=val;}
+void DeicsOnzeGui::setD2R3(int val){_deicsOnze->_preset->eg[2].d2r=val;}
+void DeicsOnzeGui::setRR3(int val){_deicsOnze->_preset->eg[2].rr=val;}
+void DeicsOnzeGui::setAR4(int val){_deicsOnze->_preset->eg[3].ar=val;}
+void DeicsOnzeGui::setD1R4(int val){_deicsOnze->_preset->eg[3].d1r=val;}
+void DeicsOnzeGui::setD1L4(int val){_deicsOnze->_preset->eg[3].d1l=val;}
+void DeicsOnzeGui::setD2R4(int val){_deicsOnze->_preset->eg[3].d2r=val;}
+void DeicsOnzeGui::setRR4(int val){_deicsOnze->_preset->eg[3].rr=val;}
+
+//--------------------------------------------------------------
+// set Scaling
+//--------------------------------------------------------------
+void DeicsOnzeGui::setLS1(int val){_deicsOnze->_preset->scaling.level[0]=val;}
+void DeicsOnzeGui::setRS1(int val){_deicsOnze->_preset->scaling.rate[0]=val;}
+void DeicsOnzeGui::setLS2(int val){_deicsOnze->_preset->scaling.level[1]=val;}
+void DeicsOnzeGui::setRS2(int val){_deicsOnze->_preset->scaling.rate[1]=val;}
+void DeicsOnzeGui::setLS3(int val){_deicsOnze->_preset->scaling.level[2]=val;}
+void DeicsOnzeGui::setRS3(int val){_deicsOnze->_preset->scaling.rate[2]=val;}
+void DeicsOnzeGui::setLS4(int val){_deicsOnze->_preset->scaling.level[3]=val;}
+void DeicsOnzeGui::setRS4(int val){_deicsOnze->_preset->scaling.rate[3]=val;}
+
+//--------------------------------------------------------------
+// set Volume
+//--------------------------------------------------------------
+void DeicsOnzeGui::setVol1(int val){_deicsOnze->_preset->outLevel[0]=val;}
+void DeicsOnzeGui::setVol2(int val){_deicsOnze->_preset->outLevel[1]=val;}
+void DeicsOnzeGui::setVol3(int val){_deicsOnze->_preset->outLevel[2]=val;}
+void DeicsOnzeGui::setVol4(int val){_deicsOnze->_preset->outLevel[3]=val;}
+
+//--------------------------------------------------------------
+// set Ratio and Frequency
+//--------------------------------------------------------------
+void DeicsOnzeGui::setCoarseRatio1(int val) {
+ double intf, decf;
+ decf=modf(_deicsOnze->_preset->frequency[0].ratio, &intf);
+ _deicsOnze->_preset->frequency[0].ratio=(double)val+decf;
+}
+void DeicsOnzeGui::setFineRatio1(int val) {
+ double intf, decf;
+ decf=modf(_deicsOnze->_preset->frequency[0].ratio, &intf);
+ _deicsOnze->_preset->frequency[0].ratio=intf+0.01*(double)val;
+}
+void DeicsOnzeGui::setFreq1(int val) {
+ _deicsOnze->_preset->frequency[0].freq=(double)val;}
+void DeicsOnzeGui::setFix1(bool f) {
+ _deicsOnze->_preset->frequency[0].isFix=f;}
+void DeicsOnzeGui::setCoarseRatio2(int val) {
+ double intf, decf;
+ decf=modf(_deicsOnze->_preset->frequency[1].ratio, &intf);
+ _deicsOnze->_preset->frequency[1].ratio=(double)val+decf;
+}
+void DeicsOnzeGui::setFineRatio2(int val) {
+ double intf, decf;
+ decf=modf(_deicsOnze->_preset->frequency[1].ratio, &intf);
+ _deicsOnze->_preset->frequency[1].ratio=intf+0.01*(double)val;
+}
+void DeicsOnzeGui::setFreq2(int val) {
+ _deicsOnze->_preset->frequency[1].freq=(double)val;}
+void DeicsOnzeGui::setFix2(bool f) {
+ _deicsOnze->_preset->frequency[1].isFix=f;}
+void DeicsOnzeGui::setCoarseRatio3(int val) {
+ double intf, decf;
+ decf=modf(_deicsOnze->_preset->frequency[2].ratio, &intf);
+ _deicsOnze->_preset->frequency[2].ratio=(double)val+decf;
+}
+void DeicsOnzeGui::setFineRatio3(int val) {
+ double intf, decf;
+ decf=modf(_deicsOnze->_preset->frequency[2].ratio, &intf);
+ _deicsOnze->_preset->frequency[2].ratio=intf+0.01*(double)val;
+}
+void DeicsOnzeGui::setFreq3(int val) {
+ _deicsOnze->_preset->frequency[2].freq=(double)val;}
+void DeicsOnzeGui::setFix3(bool f) {
+ _deicsOnze->_preset->frequency[2].isFix=f;}
+void DeicsOnzeGui::setCoarseRatio4(int val) {
+ double intf, decf;
+ decf=modf(_deicsOnze->_preset->frequency[3].ratio, &intf);
+ _deicsOnze->_preset->frequency[3].ratio=(double)val+decf;
+}
+void DeicsOnzeGui::setFineRatio4(int val) {
+ double intf, decf;
+ decf=modf(_deicsOnze->_preset->frequency[3].ratio, &intf);
+ _deicsOnze->_preset->frequency[3].ratio=intf+0.01*(double)val;
+}
+void DeicsOnzeGui::setFreq4(int val) {
+ _deicsOnze->_preset->frequency[3].freq=(double)val;}
+void DeicsOnzeGui::setFix4(bool f) {
+ _deicsOnze->_preset->frequency[3].isFix=f;}
+
+//--------------------------------------------------------------
+// set Sensitivity
+//--------------------------------------------------------------
+void DeicsOnzeGui::setAME1(bool val) {
+ _deicsOnze->_preset->sensitivity.ampOn[0]=val;}
+void DeicsOnzeGui::setEBS1(int val) {
+ _deicsOnze->_preset->sensitivity.egBias[0]=val;}
+void DeicsOnzeGui::setKVS1(int val) {
+ _deicsOnze->_preset->sensitivity.keyVelocity[0]=val;}
+void DeicsOnzeGui::setAME2(bool val) {
+ _deicsOnze->_preset->sensitivity.ampOn[1]=val;}
+void DeicsOnzeGui::setEBS2(int val) {
+ _deicsOnze->_preset->sensitivity.egBias[1]=val;}
+void DeicsOnzeGui::setKVS2(int val) {
+ _deicsOnze->_preset->sensitivity.keyVelocity[1]=val;}
+void DeicsOnzeGui::setAME3(bool val) {
+ _deicsOnze->_preset->sensitivity.ampOn[2]=val;}
+void DeicsOnzeGui::setEBS3(int val) {
+ _deicsOnze->_preset->sensitivity.egBias[2]=val;}
+void DeicsOnzeGui::setKVS3(int val) {
+ _deicsOnze->_preset->sensitivity.keyVelocity[2]=val;}
+void DeicsOnzeGui::setAME4(bool val) {
+ _deicsOnze->_preset->sensitivity.ampOn[3]=val;}
+void DeicsOnzeGui::setEBS4(int val) {
+ _deicsOnze->_preset->sensitivity.egBias[3]=val;}
+void DeicsOnzeGui::setKVS4(int val) {
+ _deicsOnze->_preset->sensitivity.keyVelocity[3]=val;}
+
+//--------------------------------------------------------------
+// set detune
+//--------------------------------------------------------------
+void DeicsOnzeGui::setDET1(int val){_deicsOnze->_preset->detune[0]=val;}
+void DeicsOnzeGui::setDET2(int val){_deicsOnze->_preset->detune[1]=val;}
+void DeicsOnzeGui::setDET3(int val){_deicsOnze->_preset->detune[2]=val;}
+void DeicsOnzeGui::setDET4(int val){_deicsOnze->_preset->detune[3]=val;}
+
+//--------------------------------------------------------------
+// set WaveForm
+//--------------------------------------------------------------
+void DeicsOnzeGui::setWaveForm1(const QString& a) {
+ _deicsOnze->_preset->oscWave[0]=
+ ((operator==(a,"Wave1")?W1:
+ (operator==(a,"Wave2")?W2:
+ (operator==(a,"Wave3")?W3:
+ (operator==(a, "Wave4")?W4:
+ (operator==(a, "Wave5")?W5:
+ (operator==(a, "Wave6")?W6:
+ (operator==(a, "Wave7")?W7:W8))))))));
+}
+void DeicsOnzeGui::setWaveForm2(const QString& a) {
+ _deicsOnze->_preset->oscWave[1]=
+ ((operator==(a,"Wave1")?W1:
+ (operator==(a,"Wave2")?W2:
+ (operator==(a,"Wave3")?W3:
+ (operator==(a, "Wave4")?W4:
+ (operator==(a, "Wave5")?W5:
+ (operator==(a, "Wave6")?W6:
+ (operator==(a, "Wave7")?W7:W8))))))));
+}
+void DeicsOnzeGui::setWaveForm3(const QString& a) {
+ _deicsOnze->_preset->oscWave[2]=
+ ((operator==(a,"Wave1")?W1:
+ (operator==(a,"Wave2")?W2:
+ (operator==(a,"Wave3")?W3:
+ (operator==(a, "Wave4")?W4:
+ (operator==(a, "Wave5")?W5:
+ (operator==(a, "Wave6")?W6:
+ (operator==(a, "Wave7")?W7:W8))))))));
+}
+void DeicsOnzeGui::setWaveForm4(const QString& a) {
+ _deicsOnze->_preset->oscWave[3]=
+ ((operator==(a,"Wave1")?W1:
+ (operator==(a,"Wave2")?W2:
+ (operator==(a,"Wave3")?W3:
+ (operator==(a, "Wave4")?W4:
+ (operator==(a, "Wave5")?W5:
+ (operator==(a, "Wave6")?W6:
+ (operator==(a, "Wave7")?W7:W8))))))));
+}
+
+//--------------------------------------------------------------
+// setSubcategorySet
+//--------------------------------------------------------------
+void DeicsOnzeGui::setSubcategorySet(Q3ListViewItem* cat) {
+ if(cat) {
+ _currentQLVICategory=(QListViewItemCategory*)cat;
+ subcategoryListView->clear();
+ for(unsigned int i=0;
+ i<((QListViewItemCategory*)cat)->_c->_subcategoryVector.size();i++)
+ (void) new QListViewItemSubcategory(subcategoryListView,
+ _currentQLVICategory->_c
+ ->_subcategoryVector[i]
+ ->_subcategoryName.c_str(),
+ _currentQLVICategory->_c
+ ->_subcategoryVector[i]);
+ }
+}
+
+///--------------------------------------------------------------
+// setPresetSet
+//--------------------------------------------------------------
+void DeicsOnzeGui::setPresetSet(Q3ListViewItem* subcat) {
+ if(subcat) {
+ _currentQLVISubcategory=(QListViewItemSubcategory*)subcat;
+ presetsListView->clear();
+ for(std::vector<Preset*>::iterator
+ i=_currentQLVISubcategory->_s->_presetVector.begin();
+ i!=_currentQLVISubcategory->_s->_presetVector.end(); i++)
+ (void) new QListViewItemPreset(presetsListView,
+ (*i)->name.c_str(), i);
+ }
+}
+
+///--------------------------------------------------------------
+// setPreset
+//--------------------------------------------------------------
+void DeicsOnzeGui::setPreset(Q3ListViewItem* pre) {
+ if(pre) {
+ _currentQLVIPreset=(QListViewItemPreset*)pre;
+ std::vector<Preset*>::iterator i=_currentQLVIPreset->i_p;
+ _deicsOnze->programSelect(1, (*i)->bank, (*i)->prog);
+ updatePreset();
+ }
+}
+//--------------------------------------------------------------
+// updatePreset
+// update gui following the current preset
+//--------------------------------------------------------------
+void DeicsOnzeGui::updatePreset(void) {
+ //global
+ masterVolSlider->setValue(_deicsOnze->getMasterVol());
+ feedbackSlider->setValue(_deicsOnze->_preset->feedback);
+ LFOWaveComboBox->setCurrentItem((int)_deicsOnze->_preset->lfo.wave);
+ LFOSpeedSlider->setValue(_deicsOnze->_preset->lfo.speed);
+ LFODelaySlider->setValue(_deicsOnze->_preset->lfo.delay);
+ PModDepthSlider->setValue(_deicsOnze->_preset->lfo.pModDepth);
+ PModSensSlider->setValue(_deicsOnze->_preset->sensitivity.pitch);
+ AModDepthSlider->setValue(_deicsOnze->_preset->lfo.aModDepth);
+ AModSensSlider->setValue(_deicsOnze->_preset->sensitivity.amplitude);
+ transposeSlider->setValue(_deicsOnze->_preset->function.transpose);
+ algorithmComboBox->setCurrentItem((int)_deicsOnze->_preset->algorithm);
+ PitchBendRangeSlider->setValue(_deicsOnze->_preset->function.pBendRange);
+ //envelope
+ AR1Slider->setValue(_deicsOnze->_preset->eg[0].ar);
+ D1R1Slider->setValue(_deicsOnze->_preset->eg[0].d1r);
+ D1L1Slider->setValue(_deicsOnze->_preset->eg[0].d1l);
+ D2R1Slider->setValue(_deicsOnze->_preset->eg[0].d2r);
+ RR1Slider->setValue(_deicsOnze->_preset->eg[0].rr);
+ AR2Slider->setValue(_deicsOnze->_preset->eg[1].ar);
+ D1R2Slider->setValue(_deicsOnze->_preset->eg[1].d1r);
+ D1L2Slider->setValue(_deicsOnze->_preset->eg[1].d1l);
+ D2R2Slider->setValue(_deicsOnze->_preset->eg[1].d2r);
+ RR2Slider->setValue(_deicsOnze->_preset->eg[1].rr);
+ AR3Slider->setValue(_deicsOnze->_preset->eg[2].ar);
+ D1R3Slider->setValue(_deicsOnze->_preset->eg[2].d1r);
+ D1L3Slider->setValue(_deicsOnze->_preset->eg[2].d1l);
+ D2R3Slider->setValue(_deicsOnze->_preset->eg[2].d2r);
+ RR3Slider->setValue(_deicsOnze->_preset->eg[2].rr);
+ AR4Slider->setValue(_deicsOnze->_preset->eg[3].ar);
+ D1R4Slider->setValue(_deicsOnze->_preset->eg[3].d1r);
+ D1L4Slider->setValue(_deicsOnze->_preset->eg[3].d1l);
+ D2R4Slider->setValue(_deicsOnze->_preset->eg[3].d2r);
+ RR4Slider->setValue(_deicsOnze->_preset->eg[3].rr);
+ //scaling
+ LS1Slider->setValue(_deicsOnze->_preset->scaling.level[0]);
+ RS1Slider->setValue(_deicsOnze->_preset->scaling.rate[0]);
+ LS2Slider->setValue(_deicsOnze->_preset->scaling.level[1]);
+ RS2Slider->setValue(_deicsOnze->_preset->scaling.rate[1]);
+ LS3Slider->setValue(_deicsOnze->_preset->scaling.level[2]);
+ RS3Slider->setValue(_deicsOnze->_preset->scaling.rate[2]);
+ LS4Slider->setValue(_deicsOnze->_preset->scaling.level[3]);
+ RS4Slider->setValue(_deicsOnze->_preset->scaling.rate[3]);
+ //Volume
+ Vol1Slider->setValue(_deicsOnze->_preset->outLevel[0]);
+ Vol2Slider->setValue(_deicsOnze->_preset->outLevel[1]);
+ Vol3Slider->setValue(_deicsOnze->_preset->outLevel[2]);
+ Vol4Slider->setValue(_deicsOnze->_preset->outLevel[3]);
+ //Ratio and Frequency
+ double intf, decf;
+ decf=modf(_deicsOnze->_preset->frequency[0].ratio, &intf);
+ CoarseRatio1SpinBox->setValue((int)intf);
+ FineRatio1SpinBox->setValue((int)(decf*100.0));
+ Freq1SpinBox->setValue((int)_deicsOnze->_preset->frequency[0].freq);
+ Fix1CheckBox->setChecked(_deicsOnze->_preset->frequency[0].isFix);
+ decf=modf(_deicsOnze->_preset->frequency[1].ratio, &intf);
+ CoarseRatio2SpinBox->setValue((int)intf);
+ FineRatio2SpinBox->setValue((int)(decf*100.0));
+ Freq2SpinBox->setValue((int)_deicsOnze->_preset->frequency[1].freq);
+ Fix2CheckBox->setChecked(_deicsOnze->_preset->frequency[1].isFix);
+ decf=modf(_deicsOnze->_preset->frequency[2].ratio, &intf);
+ CoarseRatio3SpinBox->setValue((int)intf);
+ FineRatio3SpinBox->setValue((int)(decf*100.0));
+ Freq3SpinBox->setValue((int)_deicsOnze->_preset->frequency[2].freq);
+ Fix3CheckBox->setChecked(_deicsOnze->_preset->frequency[2].isFix);
+ decf=modf(_deicsOnze->_preset->frequency[3].ratio, &intf);
+ CoarseRatio4SpinBox->setValue((int)intf);
+ FineRatio4SpinBox->setValue((int)(decf*100.0));
+ Freq4SpinBox->setValue((int)_deicsOnze->_preset->frequency[3].freq);
+ Fix4CheckBox->setChecked(_deicsOnze->_preset->frequency[3].isFix);
+ //Sensitivity
+ AME1CheckBox->setChecked(_deicsOnze->_preset->sensitivity.ampOn[0]);
+ EBS1Slider->setValue(_deicsOnze->_preset->sensitivity.egBias[0]);
+ KVS1Slider->setValue(_deicsOnze->_preset->sensitivity.keyVelocity[0]);
+ AME2CheckBox->setChecked(_deicsOnze->_preset->sensitivity.ampOn[1]);
+ EBS2Slider->setValue(_deicsOnze->_preset->sensitivity.egBias[1]);
+ KVS2Slider->setValue(_deicsOnze->_preset->sensitivity.keyVelocity[1]);
+ AME3CheckBox->setChecked(_deicsOnze->_preset->sensitivity.ampOn[2]);
+ EBS3Slider->setValue(_deicsOnze->_preset->sensitivity.egBias[2]);
+ KVS3Slider->setValue(_deicsOnze->_preset->sensitivity.keyVelocity[2]);
+ AME4CheckBox->setChecked(_deicsOnze->_preset->sensitivity.ampOn[3]);
+ EBS4Slider->setValue(_deicsOnze->_preset->sensitivity.egBias[3]);
+ KVS4Slider->setValue(_deicsOnze->_preset->sensitivity.keyVelocity[3]);
+ //detune
+ DET1Slider->setValue(_deicsOnze->_preset->detune[0]);
+ DET2Slider->setValue(_deicsOnze->_preset->detune[1]);
+ DET3Slider->setValue(_deicsOnze->_preset->detune[2]);
+ DET4Slider->setValue(_deicsOnze->_preset->detune[3]);
+ //Waveform
+ WaveForm1ComboBox->setCurrentItem((int)_deicsOnze->_preset->oscWave[0]);
+ WaveForm2ComboBox->setCurrentItem((int)_deicsOnze->_preset->oscWave[1]);
+ WaveForm3ComboBox->setCurrentItem((int)_deicsOnze->_preset->oscWave[2]);
+ WaveForm4ComboBox->setCurrentItem((int)_deicsOnze->_preset->oscWave[3]);
+ //name, subcategory, category
+ nameLineEdit->setText(QString(_deicsOnze->_preset->name.c_str()));
+ subcategoryLineEdit->setText(QString(_deicsOnze->_preset->subcategory.c_str()));
+ categoryLineEdit->setText(QString(_deicsOnze->_preset->category.c_str()));
+ //bank n prog
+ bankSpinBox->setValue(_deicsOnze->_preset->bank+1);
+ progSpinBox->setValue(_deicsOnze->_preset->prog+1);
+}
+
diff --git a/muse2/synti/deicsonze/deicsonzegui.h b/muse2/synti/deicsonze/deicsonzegui.h
new file mode 100644
index 00000000..190d3277
--- /dev/null
+++ b/muse2/synti/deicsonze/deicsonzegui.h
@@ -0,0 +1,191 @@
+//===========================================================================
+//
+// DeicsOnze an emulator of the YAMAHA DX11 synthesizer
+//
+// Version 0.2.2
+//
+// deicsonzegui.h
+//
+//
+// Copyright (c) 2004 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 <q3listview.h>
+#include <vector>
+
+#include "deicsonzeguibase.h"
+#include "libsynti/gui.h"
+
+class DeicsOnze;
+class categorySet;
+class subcategorySet;
+class presetSet;
+class Preset;
+class QListViewItemCategory;
+class QListViewItemSubcategory;
+class QListViewItemPreset;
+//---------------------------------------------------------
+// DeicsOnzeGui
+//---------------------------------------------------------
+
+class DeicsOnzeGui : public DeicsOnzeGuiBase, public MessGui {
+ DeicsOnze* _deicsOnze;
+ QListViewItemCategory* _currentQLVICategory;
+ QListViewItemSubcategory* _currentQLVISubcategory;
+ QListViewItemPreset* _currentQLVIPreset;
+
+ Q_OBJECT
+ QString lastDir;
+ private slots:
+ void newPresetDialogue();
+ void deletePresetDialogue();
+ void loadPresetsDialogue();
+ void savePresetsDialogue();
+ //Preset and bank
+ void setName(const QString&);
+ void setSubcategory(const QString&);
+ void setCategory(const QString&);
+ void setBank(int);
+ void setProg(int);
+ //Global
+ void setMasterVol(int);
+ void setFeedback(int);
+ void setLfoWave(const QString&);
+ void setLfoSpeed(int);
+ void setLfoDelay(int);
+ void setLfoPModDepth(int);
+ void setLfoPitchSens(int);
+ void setLfoAModDepth(int);
+ void setLfoAmpSens(int);
+ void setTranspose(int);
+ void setGlobalDetune(int);
+ void setAlgorithm(const QString&);
+ void setPitchBendRange(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(const QString&);
+ void setWaveForm2(const QString&);
+ void setWaveForm3(const QString&);
+ void setWaveForm4(const QString&);
+ //category subcategory preset
+ void setSubcategorySet(Q3ListViewItem*);
+ void setPresetSet(Q3ListViewItem*);
+ void setPreset(Q3ListViewItem*);
+
+ public:
+ void updatePreset(void); //update gui following the current preset
+ DeicsOnzeGui(DeicsOnze*);
+};
+
+class QListViewItemCategory:public Q3ListViewItem {
+ public:
+ subcategorySet* _c;
+ QListViewItemCategory(Q3ListView* p, QString l, subcategorySet* c)
+ :Q3ListViewItem(p, l) {_c=c;};
+};
+
+class QListViewItemSubcategory:public Q3ListViewItem {
+ public:
+ presetSet* _s;
+ QListViewItemSubcategory(Q3ListView* p, QString l, presetSet* s)
+ :Q3ListViewItem(p, l) {_s=s;};
+};
+
+class QListViewItemPreset:public Q3ListViewItem {
+ public:
+ std::vector<Preset*>::iterator i_p;//presetClass* _p;
+ QListViewItemPreset(Q3ListView* pa, QString l,
+ std::vector<Preset*>::iterator ip)
+ :Q3ListViewItem(pa, l) {i_p=ip;};
+};
+
+#endif /* __DEICSONZEGUI_H */
diff --git a/muse2/synti/deicsonze/deicsonzeguibase.h b/muse2/synti/deicsonze/deicsonzeguibase.h
new file mode 100644
index 00000000..a580b190
--- /dev/null
+++ b/muse2/synti/deicsonze/deicsonzeguibase.h
@@ -0,0 +1,3854 @@
+#ifndef DEICSONZEGUIBASE_H
+#define DEICSONZEGUIBASE_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/QCheckBox>
+#include <QtGui/QComboBox>
+#include <QtGui/QDialog>
+#include <QtGui/QHeaderView>
+#include <QtGui/QLabel>
+#include <QtGui/QLineEdit>
+#include <QtGui/QPushButton>
+#include <QtGui/QSlider>
+#include <QtGui/QSpinBox>
+#include <QtGui/QTabWidget>
+#include <QtGui/QWidget>
+
+QT_BEGIN_NAMESPACE
+
+class Ui_DeicsOnzeGuiBase
+{
+public:
+ QTabWidget *deicsOnzeTabWidget;
+ QWidget *TabPage;
+ QPushButton *loadPushButton;
+ QPushButton *savePushButton;
+ Q3GroupBox *nameGroupBox;
+ QLineEdit *nameLineEdit;
+ Q3GroupBox *subcategoryGroupBox;
+ QLineEdit *subcategoryLineEdit;
+ Q3GroupBox *categoryGroupBox;
+ QLineEdit *categoryLineEdit;
+ QPushButton *deletePushButton;
+ Q3ListView *categoryListView;
+ Q3ListView *subcategoryListView;
+ Q3ListView *presetsListView;
+ QPushButton *newPushButton;
+ Q3GroupBox *bankGroupBox;
+ QSpinBox *bankSpinBox;
+ Q3GroupBox *progGroupBox;
+ QSpinBox *progSpinBox;
+ QLabel *presentTextLAbel;
+ QWidget *TabPage1;
+ Q3GroupBox *masterVolGroupBox;
+ QSlider *masterVolSlider;
+ QSpinBox *MasterVolumeSpinBox;
+ Q3GroupBox *FeedbackGroupBox;
+ QSpinBox *feedbackSpinBox;
+ QSlider *feedbackSlider;
+ Q3GroupBox *functionGroupBox;
+ QComboBox *polyMonoComboBox;
+ QLabel *PitchBendRangeLabel;
+ QSlider *PitchBendRangeSlider;
+ QSpinBox *pitchBendRangeSpinBox;
+ Q3GroupBox *LFOGroupBox;
+ QLabel *PModSensLabel;
+ QLabel *PModDepthLabel;
+ QLabel *AModDepthLabel;
+ QLabel *LFOSpeedLabel;
+ QLabel *LFODelayLabel;
+ QLabel *AModSensLabel;
+ QComboBox *LFOWaveComboBox;
+ QCheckBox *LFOSyncCheckBox;
+ QSlider *AModSensSlider;
+ QSlider *PModSensSlider;
+ QSpinBox *PMSSpinBox;
+ QSpinBox *AMSSpinBox;
+ QSlider *PModDepthSlider;
+ QSlider *AModDepthSlider;
+ QSlider *LFOSpeedSlider;
+ QSpinBox *LFOSpeedSpinBox;
+ QSlider *LFODelaySlider;
+ QSpinBox *LFODelaySpinBox;
+ QSpinBox *PModDepthSpinBox;
+ QSpinBox *AModDepthSpinBox;
+ Q3GroupBox *transposeGroupBox;
+ QSlider *transposeSlider;
+ QSpinBox *transposeSpinBox;
+ QSlider *globalDetuneSlider;
+ QSpinBox *globalDetuneSpinBox;
+ QComboBox *algorithmComboBox;
+ QWidget *tab;
+ Q3GroupBox *Frequency1groupBox;
+ QCheckBox *Fix1CheckBox;
+ QLabel *CoarseRatio1Label;
+ QLabel *FineRatio1Label;
+ QLabel *Freq1Label;
+ QSpinBox *CoarseRatio1SpinBox;
+ QSpinBox *FineRatio1SpinBox;
+ QSpinBox *Freq1SpinBox;
+ Q3GroupBox *Env1GroupBox;
+ QLabel *RR1Label;
+ QLabel *D1R1Label;
+ QLabel *D1L1Label;
+ QLabel *D2R1Label;
+ QSlider *D1L1Slider;
+ QSlider *D2R1Slider;
+ QSlider *D1R1Slider;
+ QSlider *RR1Slider;
+ QLabel *AR1Label;
+ QSpinBox *D1R1SpinBox;
+ QSpinBox *D1L1SpinBox;
+ QSpinBox *D2R1SpinBox;
+ QSpinBox *RR1SpinBox;
+ QSlider *AR1Slider;
+ QSpinBox *AR1SpinBox;
+ Q3GroupBox *Scaling1GroupBox;
+ QLabel *LS1Label;
+ QLabel *RS1Label;
+ QSlider *LS1Slider;
+ QSlider *RS1Slider;
+ QSpinBox *LS1SpinBox;
+ QSpinBox *RS1SpinBox;
+ Q3GroupBox *Vol1groupBox;
+ QSlider *Vol1Slider;
+ QSpinBox *Vol1SpinBox;
+ Q3GroupBox *sensitivity1groupBox;
+ QLabel *EGS1Label;
+ QLabel *KVS1Label;
+ QCheckBox *AME1CheckBox;
+ QSlider *KVS1Slider;
+ QSlider *EBS1Slider;
+ QSpinBox *KVS1SpinBox;
+ QSpinBox *EBS1SpinBox;
+ Q3GroupBox *DetWaveEGS1GroupBox;
+ QComboBox *WaveForm1ComboBox;
+ QLabel *DET1Label;
+ QComboBox *EGQ1ComboBox;
+ QSlider *DET1Slider;
+ QSpinBox *DET1SpinBox;
+ QWidget *tab1;
+ Q3GroupBox *Frequency2groupBox;
+ QCheckBox *Fix2CheckBox;
+ QLabel *Freq2Label;
+ QLabel *FineRatio2Label;
+ QLabel *CoarseRatio2Label;
+ QSpinBox *CoarseRatio2SpinBox;
+ QSpinBox *FineRatio2SpinBox;
+ QSpinBox *Freq2SpinBox;
+ Q3GroupBox *Env2GroupBox;
+ QLabel *AR2Label;
+ QLabel *RR2Label;
+ QLabel *D2R2Label;
+ QLabel *D1L2Label;
+ QLabel *D1R2Label;
+ QSlider *AR2Slider;
+ QSlider *D1R2Slider;
+ QSlider *D1L2Slider;
+ QSlider *D2R2Slider;
+ QSlider *RR2Slider;
+ QSpinBox *D1R2SpinBox;
+ QSpinBox *D1L2SpinBox;
+ QSpinBox *D2R2SpinBox;
+ QSpinBox *RR2SpinBox;
+ QSpinBox *AR2SpinBox;
+ Q3GroupBox *Scaling2GroupBox;
+ QLabel *LS2Label;
+ QLabel *RS2Label;
+ QSlider *LS2Slider;
+ QSlider *RS2Slider;
+ QSpinBox *LS2SpinBox;
+ QSpinBox *RS2SpinBox;
+ Q3GroupBox *Vol2groupBox;
+ QSlider *Vol2Slider;
+ QSpinBox *Vol2SpinBox;
+ Q3GroupBox *sensitivity2groupBox;
+ QLabel *EGS2Label;
+ QLabel *KVS2Label;
+ QCheckBox *AME2CheckBox;
+ QSlider *KVS2Slider;
+ QSlider *EBS2Slider;
+ QSpinBox *EBS2SpinBox;
+ QSpinBox *KVS2SpinBox;
+ Q3GroupBox *DetWaveEGS2GroupBox;
+ QSlider *DET2Slider;
+ QLabel *DET2Label;
+ QComboBox *WaveForm2ComboBox;
+ QComboBox *EGS2comboBox;
+ QSpinBox *DET2SpinBox;
+ QWidget *TabPage2;
+ Q3GroupBox *Frequency3groupBox;
+ QCheckBox *Fix3CheckBox;
+ QLabel *CoarseRatio3Label;
+ QLabel *FineRatio3Label;
+ QLabel *Freq3Label;
+ QSpinBox *CoarseRatio3SpinBox;
+ QSpinBox *FineRatio3SpinBox;
+ QSpinBox *Freq3SpinBox;
+ Q3GroupBox *Env3GroupBox;
+ QLabel *RR3Label;
+ QLabel *D2R3Label;
+ QLabel *D1L3Label;
+ QLabel *D1R3Label;
+ QLabel *AR3Label;
+ QSlider *AR3Slider;
+ QSlider *D1R3Slider;
+ QSlider *D1L3Slider;
+ QSlider *D2R3Slider;
+ QSlider *RR3Slider;
+ QSpinBox *D1R3SpinBox;
+ QSpinBox *D1L3SpinBox;
+ QSpinBox *D2R3SpinBox;
+ QSpinBox *RR3SpinBox;
+ QSpinBox *AR3SpinBox;
+ Q3GroupBox *Scaling3GroupBox;
+ QLabel *LS3Label;
+ QLabel *RS3Label;
+ QSlider *LS3Slider;
+ QSlider *RS3Slider;
+ QSpinBox *LS3SpinBox;
+ QSpinBox *RS3SpinBox;
+ Q3GroupBox *Vol3groupBox;
+ QSlider *Vol3Slider;
+ QSpinBox *Vol3SpinBox;
+ Q3GroupBox *sensitivity3groupBox;
+ QLabel *EGS3Label;
+ QLabel *KVS3Label;
+ QCheckBox *AME3CheckBox;
+ QSlider *KVS3Slider;
+ QSlider *EBS3Slider;
+ QSpinBox *EBS3SpinBox;
+ QSpinBox *KVS3SpinBox;
+ Q3GroupBox *DetWaveEGS3GroupBox;
+ QComboBox *WaveForm3ComboBox;
+ QComboBox *EGS3comboBox;
+ QLabel *DET3Label;
+ QSlider *DET3Slider;
+ QSpinBox *DET3SpinBox;
+ QWidget *TabPage3;
+ Q3GroupBox *Frequency4groupBox;
+ QLabel *CoarseRatio4Label;
+ QLabel *FineRatio4Label;
+ QLabel *Freq4Label;
+ QCheckBox *Fix4CheckBox;
+ QSpinBox *FineRatio4SpinBox;
+ QSpinBox *Freq4SpinBox;
+ QSpinBox *CoarseRatio4SpinBox;
+ Q3GroupBox *Scaling4GroupBox;
+ QLabel *LS4Label;
+ QLabel *RS4Label;
+ QSlider *LS4Slider;
+ QSlider *RS4Slider;
+ QSpinBox *RS4SpinBox;
+ QSpinBox *LS4SpinBox;
+ Q3GroupBox *Env4GroupBox;
+ QSlider *AR4Slider;
+ QLabel *AR4Label;
+ QLabel *RR4Label;
+ QLabel *D2R4Label;
+ QSlider *D2R4Slider;
+ QSlider *D1L4Slider;
+ QLabel *D1L4Label;
+ QLabel *D1R4Label;
+ QSlider *D1R4Slider;
+ QSlider *RR4Slider;
+ QSpinBox *D1R4SpinBox;
+ QSpinBox *D1L4SpinBox;
+ QSpinBox *D2R4SpinBox;
+ QSpinBox *RR4SpinBox;
+ QSpinBox *AR4SpinBox;
+ Q3GroupBox *Vol4groupBox;
+ QSlider *Vol4Slider;
+ QSpinBox *Vol4SpinBox;
+ Q3GroupBox *sensitivity4groupBox;
+ QLabel *EGS4Label;
+ QLabel *KVS4Label;
+ QCheckBox *AME4CheckBox;
+ QSlider *KVS4Slider;
+ QSlider *EBS4Slider;
+ QSpinBox *KVS4SpinBox;
+ QSpinBox *EBS4SpinBox;
+ Q3GroupBox *DetWaveEGS4GroupBox;
+ QSlider *DET4Slider;
+ QLabel *DET4Label;
+ QComboBox *WaveForm4ComboBox;
+ QComboBox *EGS4comboBox;
+ QSpinBox *DET4SpinBox;
+
+ void setupUi(QDialog *DeicsOnzeGuiBase)
+ {
+ if (DeicsOnzeGuiBase->objectName().isEmpty())
+ DeicsOnzeGuiBase->setObjectName(QString::fromUtf8("DeicsOnzeGuiBase"));
+ DeicsOnzeGuiBase->resize(468, 357);
+ DeicsOnzeGuiBase->setSizeGripEnabled(false);
+ DeicsOnzeGuiBase->setModal(false);
+ deicsOnzeTabWidget = new QTabWidget(DeicsOnzeGuiBase);
+ deicsOnzeTabWidget->setObjectName(QString::fromUtf8("deicsOnzeTabWidget"));
+ deicsOnzeTabWidget->setGeometry(QRect(0, 0, 470, 360));
+ QSizePolicy sizePolicy(static_cast<QSizePolicy::Policy>(7), static_cast<QSizePolicy::Policy>(7));
+ sizePolicy.setHorizontalStretch(0);
+ sizePolicy.setVerticalStretch(0);
+ sizePolicy.setHeightForWidth(deicsOnzeTabWidget->sizePolicy().hasHeightForWidth());
+ deicsOnzeTabWidget->setSizePolicy(sizePolicy);
+ QFont font;
+ font.setFamily(QString::fromUtf8("Teen"));
+ deicsOnzeTabWidget->setFont(font);
+ deicsOnzeTabWidget->setCursor(QCursor(static_cast<Qt::CursorShape>(0)));
+ deicsOnzeTabWidget->setTabShape(QTabWidget::Rounded);
+ TabPage = new QWidget();
+ TabPage->setObjectName(QString::fromUtf8("TabPage"));
+ loadPushButton = new QPushButton(TabPage);
+ loadPushButton->setObjectName(QString::fromUtf8("loadPushButton"));
+ loadPushButton->setEnabled(true);
+ loadPushButton->setGeometry(QRect(340, 260, 60, 30));
+ loadPushButton->setCursor(QCursor(static_cast<Qt::CursorShape>(13)));
+ savePushButton = new QPushButton(TabPage);
+ savePushButton->setObjectName(QString::fromUtf8("savePushButton"));
+ savePushButton->setEnabled(true);
+ savePushButton->setGeometry(QRect(400, 260, 60, 30));
+ savePushButton->setCursor(QCursor(static_cast<Qt::CursorShape>(13)));
+ nameGroupBox = new Q3GroupBox(TabPage);
+ nameGroupBox->setObjectName(QString::fromUtf8("nameGroupBox"));
+ nameGroupBox->setGeometry(QRect(340, 10, 120, 50));
+ nameLineEdit = new QLineEdit(nameGroupBox);
+ nameLineEdit->setObjectName(QString::fromUtf8("nameLineEdit"));
+ nameLineEdit->setGeometry(QRect(10, 20, 100, 21));
+ QFont font1;
+ font1.setFamily(QString::fromUtf8("Zero Threes"));
+ font1.setPointSize(8);
+ nameLineEdit->setFont(font1);
+ nameLineEdit->setMaxLength(12);
+ subcategoryGroupBox = new Q3GroupBox(TabPage);
+ subcategoryGroupBox->setObjectName(QString::fromUtf8("subcategoryGroupBox"));
+ subcategoryGroupBox->setGeometry(QRect(340, 60, 120, 50));
+ subcategoryLineEdit = new QLineEdit(subcategoryGroupBox);
+ subcategoryLineEdit->setObjectName(QString::fromUtf8("subcategoryLineEdit"));
+ subcategoryLineEdit->setGeometry(QRect(10, 20, 100, 21));
+ subcategoryLineEdit->setFont(font1);
+ subcategoryLineEdit->setMaxLength(12);
+ categoryGroupBox = new Q3GroupBox(TabPage);
+ categoryGroupBox->setObjectName(QString::fromUtf8("categoryGroupBox"));
+ categoryGroupBox->setGeometry(QRect(340, 110, 120, 50));
+ categoryLineEdit = new QLineEdit(categoryGroupBox);
+ categoryLineEdit->setObjectName(QString::fromUtf8("categoryLineEdit"));
+ categoryLineEdit->setGeometry(QRect(10, 20, 100, 21));
+ categoryLineEdit->setFont(font1);
+ categoryLineEdit->setMaxLength(12);
+ deletePushButton = new QPushButton(TabPage);
+ deletePushButton->setObjectName(QString::fromUtf8("deletePushButton"));
+ deletePushButton->setEnabled(false);
+ deletePushButton->setGeometry(QRect(400, 220, 60, 29));
+ deletePushButton->setCursor(QCursor(static_cast<Qt::CursorShape>(13)));
+ categoryListView = new Q3ListView(TabPage);
+ categoryListView->addColumn(QApplication::translate("DeicsOnzeGuiBase", "Category", 0, QApplication::UnicodeUTF8));
+ categoryListView->header()->setClickEnabled(false, categoryListView->header()->count() - 1);
+ categoryListView->header()->setResizeEnabled(false, categoryListView->header()->count() - 1);
+ categoryListView->setObjectName(QString::fromUtf8("categoryListView"));
+ categoryListView->setGeometry(QRect(10, 10, 100, 280));
+ categoryListView->setFont(font1);
+ categoryListView->setFrameShadow(QFrame::Sunken);
+ categoryListView->setAllColumnsShowFocus(false);
+ categoryListView->setShowSortIndicator(false);
+ categoryListView->setResizeMode(Q3ListView::AllColumns);
+ subcategoryListView = new Q3ListView(TabPage);
+ subcategoryListView->addColumn(QApplication::translate("DeicsOnzeGuiBase", "Subcategory", 0, QApplication::UnicodeUTF8));
+ subcategoryListView->header()->setClickEnabled(false, subcategoryListView->header()->count() - 1);
+ subcategoryListView->header()->setResizeEnabled(false, subcategoryListView->header()->count() - 1);
+ subcategoryListView->setObjectName(QString::fromUtf8("subcategoryListView"));
+ subcategoryListView->setGeometry(QRect(120, 10, 100, 280));
+ subcategoryListView->setFont(font1);
+ subcategoryListView->setFrameShadow(QFrame::Sunken);
+ subcategoryListView->setAllColumnsShowFocus(false);
+ subcategoryListView->setShowSortIndicator(false);
+ subcategoryListView->setResizeMode(Q3ListView::AllColumns);
+ presetsListView = new Q3ListView(TabPage);
+ presetsListView->addColumn(QApplication::translate("DeicsOnzeGuiBase", "Preset", 0, QApplication::UnicodeUTF8));
+ presetsListView->header()->setClickEnabled(false, presetsListView->header()->count() - 1);
+ presetsListView->header()->setResizeEnabled(false, presetsListView->header()->count() - 1);
+ presetsListView->setObjectName(QString::fromUtf8("presetsListView"));
+ presetsListView->setGeometry(QRect(230, 10, 100, 280));
+ presetsListView->setFont(font1);
+ presetsListView->setFrameShadow(QFrame::Sunken);
+ presetsListView->setAllColumnsShowFocus(false);
+ presetsListView->setShowSortIndicator(false);
+ presetsListView->setResizeMode(Q3ListView::AllColumns);
+ newPushButton = new QPushButton(TabPage);
+ newPushButton->setObjectName(QString::fromUtf8("newPushButton"));
+ newPushButton->setEnabled(true);
+ newPushButton->setGeometry(QRect(340, 220, 60, 29));
+ newPushButton->setCursor(QCursor(static_cast<Qt::CursorShape>(13)));
+ bankGroupBox = new Q3GroupBox(TabPage);
+ bankGroupBox->setObjectName(QString::fromUtf8("bankGroupBox"));
+ bankGroupBox->setGeometry(QRect(340, 160, 60, 50));
+ bankSpinBox = new QSpinBox(bankGroupBox);
+ bankSpinBox->setObjectName(QString::fromUtf8("bankSpinBox"));
+ bankSpinBox->setGeometry(QRect(10, 20, 40, 21));
+ QFont font2;
+ font2.setFamily(QString::fromUtf8("Zero Threes"));
+ font2.setItalic(true);
+ bankSpinBox->setFont(font2);
+ bankSpinBox->setMaximum(128);
+ bankSpinBox->setMinimum(1);
+ progGroupBox = new Q3GroupBox(TabPage);
+ progGroupBox->setObjectName(QString::fromUtf8("progGroupBox"));
+ progGroupBox->setGeometry(QRect(400, 160, 60, 50));
+ progSpinBox = new QSpinBox(progGroupBox);
+ progSpinBox->setObjectName(QString::fromUtf8("progSpinBox"));
+ progSpinBox->setGeometry(QRect(10, 20, 40, 21));
+ progSpinBox->setFont(font2);
+ progSpinBox->setMaximum(128);
+ progSpinBox->setMinimum(1);
+ presentTextLAbel = new QLabel(TabPage);
+ presentTextLAbel->setObjectName(QString::fromUtf8("presentTextLAbel"));
+ presentTextLAbel->setGeometry(QRect(20, 300, 420, 20));
+ presentTextLAbel->setFrameShape(QFrame::NoFrame);
+ presentTextLAbel->setFrameShadow(QFrame::Plain);
+ presentTextLAbel->setWordWrap(false);
+ deicsOnzeTabWidget->addTab(TabPage, QString());
+ TabPage1 = new QWidget();
+ TabPage1->setObjectName(QString::fromUtf8("TabPage1"));
+ masterVolGroupBox = new Q3GroupBox(TabPage1);
+ masterVolGroupBox->setObjectName(QString::fromUtf8("masterVolGroupBox"));
+ masterVolGroupBox->setGeometry(QRect(10, 0, 330, 50));
+ masterVolSlider = new QSlider(masterVolGroupBox);
+ masterVolSlider->setObjectName(QString::fromUtf8("masterVolSlider"));
+ masterVolSlider->setGeometry(QRect(10, 20, 250, 20));
+ masterVolSlider->setCursor(QCursor(static_cast<Qt::CursorShape>(13)));
+ masterVolSlider->setMaximum(255);
+ masterVolSlider->setOrientation(Qt::Horizontal);
+ MasterVolumeSpinBox = new QSpinBox(masterVolGroupBox);
+ MasterVolumeSpinBox->setObjectName(QString::fromUtf8("MasterVolumeSpinBox"));
+ MasterVolumeSpinBox->setGeometry(QRect(270, 20, 50, 21));
+ MasterVolumeSpinBox->setFont(font2);
+ MasterVolumeSpinBox->setMaximum(255);
+ FeedbackGroupBox = new Q3GroupBox(TabPage1);
+ FeedbackGroupBox->setObjectName(QString::fromUtf8("FeedbackGroupBox"));
+ FeedbackGroupBox->setGeometry(QRect(350, 0, 110, 50));
+ feedbackSpinBox = new QSpinBox(FeedbackGroupBox);
+ feedbackSpinBox->setObjectName(QString::fromUtf8("feedbackSpinBox"));
+ feedbackSpinBox->setGeometry(QRect(70, 20, 30, 21));
+ feedbackSpinBox->setFont(font2);
+ feedbackSpinBox->setMaximum(7);
+ feedbackSlider = new QSlider(FeedbackGroupBox);
+ feedbackSlider->setObjectName(QString::fromUtf8("feedbackSlider"));
+ feedbackSlider->setGeometry(QRect(10, 20, 50, 20));
+ feedbackSlider->setCursor(QCursor(static_cast<Qt::CursorShape>(13)));
+ feedbackSlider->setMaximum(7);
+ feedbackSlider->setSingleStep(1);
+ feedbackSlider->setPageStep(1);
+ feedbackSlider->setOrientation(Qt::Horizontal);
+ feedbackSlider->setTickPosition(QSlider::NoTicks);
+ functionGroupBox = new Q3GroupBox(TabPage1);
+ functionGroupBox->setObjectName(QString::fromUtf8("functionGroupBox"));
+ functionGroupBox->setGeometry(QRect(10, 50, 200, 200));
+ polyMonoComboBox = new QComboBox(functionGroupBox);
+ polyMonoComboBox->setObjectName(QString::fromUtf8("polyMonoComboBox"));
+ polyMonoComboBox->setEnabled(false);
+ polyMonoComboBox->setGeometry(QRect(10, 20, 180, 20));
+ QPalette palette;
+ palette.setColor(QPalette::Active, static_cast<QPalette::ColorRole>(0), QColor(0, 0, 0));
+ palette.setColor(QPalette::Active, static_cast<QPalette::ColorRole>(1), QColor(195, 195, 195));
+ palette.setColor(QPalette::Active, static_cast<QPalette::ColorRole>(2), QColor(255, 255, 255));
+ palette.setColor(QPalette::Active, static_cast<QPalette::ColorRole>(3), QColor(225, 225, 225));
+ palette.setColor(QPalette::Active, static_cast<QPalette::ColorRole>(4), QColor(97, 97, 97));
+ palette.setColor(QPalette::Active, static_cast<QPalette::ColorRole>(5), QColor(130, 130, 130));
+ palette.setColor(QPalette::Active, static_cast<QPalette::ColorRole>(6), QColor(0, 0, 0));
+ palette.setColor(QPalette::Active, static_cast<QPalette::ColorRole>(7), QColor(249, 249, 249));
+ palette.setColor(QPalette::Active, static_cast<QPalette::ColorRole>(8), QColor(0, 0, 0));
+ palette.setColor(QPalette::Active, static_cast<QPalette::ColorRole>(9), QColor(255, 255, 255));
+ palette.setColor(QPalette::Active, static_cast<QPalette::ColorRole>(10), QColor(177, 177, 177));
+ palette.setColor(QPalette::Active, static_cast<QPalette::ColorRole>(11), QColor(0, 0, 0));
+ palette.setColor(QPalette::Active, static_cast<QPalette::ColorRole>(12), QColor(57, 15, 195));
+ palette.setColor(QPalette::Active, static_cast<QPalette::ColorRole>(13), QColor(255, 255, 255));
+ palette.setColor(QPalette::Active, static_cast<QPalette::ColorRole>(14), QColor(195, 18, 71));
+ palette.setColor(QPalette::Active, static_cast<QPalette::ColorRole>(15), QColor(128, 0, 128));
+ palette.setColor(QPalette::Inactive, static_cast<QPalette::ColorRole>(0), QColor(0, 0, 0));
+ palette.setColor(QPalette::Inactive, static_cast<QPalette::ColorRole>(1), QColor(195, 195, 195));
+ palette.setColor(QPalette::Inactive, static_cast<QPalette::ColorRole>(2), QColor(255, 255, 255));
+ palette.setColor(QPalette::Inactive, static_cast<QPalette::ColorRole>(3), QColor(224, 224, 224));
+ palette.setColor(QPalette::Inactive, static_cast<QPalette::ColorRole>(4), QColor(97, 97, 97));
+ palette.setColor(QPalette::Inactive, static_cast<QPalette::ColorRole>(5), QColor(130, 130, 130));
+ palette.setColor(QPalette::Inactive, static_cast<QPalette::ColorRole>(6), QColor(0, 0, 0));
+ palette.setColor(QPalette::Inactive, static_cast<QPalette::ColorRole>(7), QColor(249, 249, 249));
+ palette.setColor(QPalette::Inactive, static_cast<QPalette::ColorRole>(8), QColor(0, 0, 0));
+ palette.setColor(QPalette::Inactive, static_cast<QPalette::ColorRole>(9), QColor(255, 255, 255));
+ palette.setColor(QPalette::Inactive, static_cast<QPalette::ColorRole>(10), QColor(177, 177, 177));
+ palette.setColor(QPalette::Inactive, static_cast<QPalette::ColorRole>(11), QColor(0, 0, 0));
+ palette.setColor(QPalette::Inactive, static_cast<QPalette::ColorRole>(12), QColor(57, 15, 195));
+ palette.setColor(QPalette::Inactive, static_cast<QPalette::ColorRole>(13), QColor(255, 255, 255));
+ palette.setColor(QPalette::Inactive, static_cast<QPalette::ColorRole>(14), QColor(195, 18, 71));
+ palette.setColor(QPalette::Inactive, static_cast<QPalette::ColorRole>(15), QColor(128, 0, 128));
+ palette.setColor(QPalette::Disabled, static_cast<QPalette::ColorRole>(0), QColor(128, 128, 128));
+ palette.setColor(QPalette::Disabled, static_cast<QPalette::ColorRole>(1), QColor(195, 195, 195));
+ palette.setColor(QPalette::Disabled, static_cast<QPalette::ColorRole>(2), QColor(255, 255, 255));
+ palette.setColor(QPalette::Disabled, static_cast<QPalette::ColorRole>(3), QColor(224, 224, 224));
+ palette.setColor(QPalette::Disabled, static_cast<QPalette::ColorRole>(4), QColor(97, 97, 97));
+ palette.setColor(QPalette::Disabled, static_cast<QPalette::ColorRole>(5), QColor(130, 130, 130));
+ palette.setColor(QPalette::Disabled, static_cast<QPalette::ColorRole>(6), QColor(0, 0, 0));
+ palette.setColor(QPalette::Disabled, static_cast<QPalette::ColorRole>(7), QColor(249, 249, 249));
+ palette.setColor(QPalette::Disabled, static_cast<QPalette::ColorRole>(8), QColor(128, 128, 128));
+ palette.setColor(QPalette::Disabled, static_cast<QPalette::ColorRole>(9), QColor(255, 255, 255));
+ palette.setColor(QPalette::Disabled, static_cast<QPalette::ColorRole>(10), QColor(177, 177, 177));
+ palette.setColor(QPalette::Disabled, static_cast<QPalette::ColorRole>(11), QColor(0, 0, 0));
+ palette.setColor(QPalette::Disabled, static_cast<QPalette::ColorRole>(12), QColor(57, 15, 195));
+ palette.setColor(QPalette::Disabled, static_cast<QPalette::ColorRole>(13), QColor(255, 255, 255));
+ palette.setColor(QPalette::Disabled, static_cast<QPalette::ColorRole>(14), QColor(195, 18, 71));
+ palette.setColor(QPalette::Disabled, static_cast<QPalette::ColorRole>(15), QColor(128, 0, 128));
+ polyMonoComboBox->setPalette(palette);
+ polyMonoComboBox->setCursor(QCursor(static_cast<Qt::CursorShape>(13)));
+ PitchBendRangeLabel = new QLabel(functionGroupBox);
+ PitchBendRangeLabel->setObjectName(QString::fromUtf8("PitchBendRangeLabel"));
+ PitchBendRangeLabel->setGeometry(QRect(10, 50, 40, 22));
+ PitchBendRangeLabel->setFrameShape(QFrame::Box);
+ PitchBendRangeLabel->setFrameShadow(QFrame::Sunken);
+ PitchBendRangeLabel->setWordWrap(false);
+ PitchBendRangeSlider = new QSlider(functionGroupBox);
+ PitchBendRangeSlider->setObjectName(QString::fromUtf8("PitchBendRangeSlider"));
+ PitchBendRangeSlider->setGeometry(QRect(60, 50, 90, 20));
+ PitchBendRangeSlider->setCursor(QCursor(static_cast<Qt::CursorShape>(13)));
+ PitchBendRangeSlider->setMinimum(0);
+ PitchBendRangeSlider->setMaximum(12);
+ PitchBendRangeSlider->setPageStep(1);
+ PitchBendRangeSlider->setValue(0);
+ PitchBendRangeSlider->setOrientation(Qt::Horizontal);
+ PitchBendRangeSlider->setTickPosition(QSlider::NoTicks);
+ pitchBendRangeSpinBox = new QSpinBox(functionGroupBox);
+ pitchBendRangeSpinBox->setObjectName(QString::fromUtf8("pitchBendRangeSpinBox"));
+ pitchBendRangeSpinBox->setGeometry(QRect(160, 50, 30, 21));
+ pitchBendRangeSpinBox->setFont(font2);
+ pitchBendRangeSpinBox->setMaximum(12);
+ LFOGroupBox = new Q3GroupBox(TabPage1);
+ LFOGroupBox->setObjectName(QString::fromUtf8("LFOGroupBox"));
+ LFOGroupBox->setGeometry(QRect(220, 50, 240, 200));
+ PModSensLabel = new QLabel(LFOGroupBox);
+ PModSensLabel->setObjectName(QString::fromUtf8("PModSensLabel"));
+ PModSensLabel->setGeometry(QRect(100, 20, 40, 22));
+ PModSensLabel->setFrameShape(QFrame::Box);
+ PModSensLabel->setFrameShadow(QFrame::Sunken);
+ PModSensLabel->setWordWrap(false);
+ PModDepthLabel = new QLabel(LFOGroupBox);
+ PModDepthLabel->setObjectName(QString::fromUtf8("PModDepthLabel"));
+ PModDepthLabel->setGeometry(QRect(10, 80, 40, 24));
+ PModDepthLabel->setFrameShape(QFrame::Box);
+ PModDepthLabel->setFrameShadow(QFrame::Sunken);
+ PModDepthLabel->setWordWrap(false);
+ AModDepthLabel = new QLabel(LFOGroupBox);
+ AModDepthLabel->setObjectName(QString::fromUtf8("AModDepthLabel"));
+ AModDepthLabel->setGeometry(QRect(10, 110, 40, 22));
+ AModDepthLabel->setFrameShape(QFrame::Box);
+ AModDepthLabel->setFrameShadow(QFrame::Sunken);
+ AModDepthLabel->setWordWrap(false);
+ LFOSpeedLabel = new QLabel(LFOGroupBox);
+ LFOSpeedLabel->setObjectName(QString::fromUtf8("LFOSpeedLabel"));
+ LFOSpeedLabel->setGeometry(QRect(10, 140, 50, 24));
+ LFOSpeedLabel->setFrameShape(QFrame::Box);
+ LFOSpeedLabel->setFrameShadow(QFrame::Sunken);
+ LFOSpeedLabel->setWordWrap(false);
+ LFODelayLabel = new QLabel(LFOGroupBox);
+ LFODelayLabel->setObjectName(QString::fromUtf8("LFODelayLabel"));
+ LFODelayLabel->setGeometry(QRect(10, 170, 50, 24));
+ LFODelayLabel->setFrameShape(QFrame::Box);
+ LFODelayLabel->setFrameShadow(QFrame::Sunken);
+ LFODelayLabel->setWordWrap(false);
+ AModSensLabel = new QLabel(LFOGroupBox);
+ AModSensLabel->setObjectName(QString::fromUtf8("AModSensLabel"));
+ AModSensLabel->setGeometry(QRect(100, 50, 40, 22));
+ AModSensLabel->setFrameShape(QFrame::Box);
+ AModSensLabel->setFrameShadow(QFrame::Sunken);
+ AModSensLabel->setWordWrap(false);
+ LFOWaveComboBox = new QComboBox(LFOGroupBox);
+ LFOWaveComboBox->setObjectName(QString::fromUtf8("LFOWaveComboBox"));
+ LFOWaveComboBox->setGeometry(QRect(10, 50, 80, 20));
+ LFOWaveComboBox->setCursor(QCursor(static_cast<Qt::CursorShape>(13)));
+ LFOSyncCheckBox = new QCheckBox(LFOGroupBox);
+ LFOSyncCheckBox->setObjectName(QString::fromUtf8("LFOSyncCheckBox"));
+ LFOSyncCheckBox->setGeometry(QRect(10, 20, 80, 25));
+ LFOSyncCheckBox->setCursor(QCursor(static_cast<Qt::CursorShape>(13)));
+ AModSensSlider = new QSlider(LFOGroupBox);
+ AModSensSlider->setObjectName(QString::fromUtf8("AModSensSlider"));
+ AModSensSlider->setGeometry(QRect(150, 50, 40, 20));
+ AModSensSlider->setCursor(QCursor(static_cast<Qt::CursorShape>(13)));
+ AModSensSlider->setMaximum(3);
+ AModSensSlider->setSingleStep(1);
+ AModSensSlider->setPageStep(1);
+ AModSensSlider->setOrientation(Qt::Horizontal);
+ AModSensSlider->setTickPosition(QSlider::NoTicks);
+ PModSensSlider = new QSlider(LFOGroupBox);
+ PModSensSlider->setObjectName(QString::fromUtf8("PModSensSlider"));
+ PModSensSlider->setGeometry(QRect(150, 20, 40, 20));
+ PModSensSlider->setCursor(QCursor(static_cast<Qt::CursorShape>(13)));
+ PModSensSlider->setMaximum(7);
+ PModSensSlider->setSingleStep(1);
+ PModSensSlider->setPageStep(1);
+ PModSensSlider->setOrientation(Qt::Horizontal);
+ PModSensSlider->setTickPosition(QSlider::NoTicks);
+ PMSSpinBox = new QSpinBox(LFOGroupBox);
+ PMSSpinBox->setObjectName(QString::fromUtf8("PMSSpinBox"));
+ PMSSpinBox->setGeometry(QRect(200, 20, 30, 21));
+ PMSSpinBox->setFont(font2);
+ PMSSpinBox->setMaximum(7);
+ AMSSpinBox = new QSpinBox(LFOGroupBox);
+ AMSSpinBox->setObjectName(QString::fromUtf8("AMSSpinBox"));
+ AMSSpinBox->setGeometry(QRect(200, 50, 30, 21));
+ AMSSpinBox->setFont(font2);
+ AMSSpinBox->setMaximum(7);
+ PModDepthSlider = new QSlider(LFOGroupBox);
+ PModDepthSlider->setObjectName(QString::fromUtf8("PModDepthSlider"));
+ PModDepthSlider->setGeometry(QRect(70, 80, 110, 20));
+ PModDepthSlider->setCursor(QCursor(static_cast<Qt::CursorShape>(13)));
+ PModDepthSlider->setMaximum(99);
+ PModDepthSlider->setSingleStep(1);
+ PModDepthSlider->setPageStep(1);
+ PModDepthSlider->setOrientation(Qt::Horizontal);
+ PModDepthSlider->setTickPosition(QSlider::NoTicks);
+ AModDepthSlider = new QSlider(LFOGroupBox);
+ AModDepthSlider->setObjectName(QString::fromUtf8("AModDepthSlider"));
+ AModDepthSlider->setGeometry(QRect(70, 110, 110, 20));
+ AModDepthSlider->setCursor(QCursor(static_cast<Qt::CursorShape>(13)));
+ AModDepthSlider->setMaximum(99);
+ AModDepthSlider->setSingleStep(1);
+ AModDepthSlider->setPageStep(1);
+ AModDepthSlider->setOrientation(Qt::Horizontal);
+ AModDepthSlider->setTickPosition(QSlider::NoTicks);
+ LFOSpeedSlider = new QSlider(LFOGroupBox);
+ LFOSpeedSlider->setObjectName(QString::fromUtf8("LFOSpeedSlider"));
+ LFOSpeedSlider->setGeometry(QRect(70, 140, 110, 20));
+ LFOSpeedSlider->setCursor(QCursor(static_cast<Qt::CursorShape>(13)));
+ LFOSpeedSlider->setMaximum(99);
+ LFOSpeedSlider->setSingleStep(1);
+ LFOSpeedSlider->setPageStep(1);
+ LFOSpeedSlider->setOrientation(Qt::Horizontal);
+ LFOSpeedSlider->setTickPosition(QSlider::NoTicks);
+ LFOSpeedSpinBox = new QSpinBox(LFOGroupBox);
+ LFOSpeedSpinBox->setObjectName(QString::fromUtf8("LFOSpeedSpinBox"));
+ LFOSpeedSpinBox->setGeometry(QRect(190, 140, 40, 21));
+ LFOSpeedSpinBox->setFont(font2);
+ LFOSpeedSpinBox->setMaximum(99);
+ LFODelaySlider = new QSlider(LFOGroupBox);
+ LFODelaySlider->setObjectName(QString::fromUtf8("LFODelaySlider"));
+ LFODelaySlider->setGeometry(QRect(70, 170, 110, 20));
+ LFODelaySlider->setCursor(QCursor(static_cast<Qt::CursorShape>(13)));
+ LFODelaySlider->setMaximum(99);
+ LFODelaySlider->setSingleStep(1);
+ LFODelaySlider->setPageStep(1);
+ LFODelaySlider->setOrientation(Qt::Horizontal);
+ LFODelaySlider->setTickPosition(QSlider::NoTicks);
+ LFODelaySpinBox = new QSpinBox(LFOGroupBox);
+ LFODelaySpinBox->setObjectName(QString::fromUtf8("LFODelaySpinBox"));
+ LFODelaySpinBox->setGeometry(QRect(190, 170, 40, 21));
+ LFODelaySpinBox->setFont(font2);
+ LFODelaySpinBox->setMaximum(99);
+ PModDepthSpinBox = new QSpinBox(LFOGroupBox);
+ PModDepthSpinBox->setObjectName(QString::fromUtf8("PModDepthSpinBox"));
+ PModDepthSpinBox->setGeometry(QRect(190, 80, 40, 21));
+ PModDepthSpinBox->setFont(font2);
+ PModDepthSpinBox->setMaximum(99);
+ AModDepthSpinBox = new QSpinBox(LFOGroupBox);
+ AModDepthSpinBox->setObjectName(QString::fromUtf8("AModDepthSpinBox"));
+ AModDepthSpinBox->setGeometry(QRect(190, 110, 40, 21));
+ AModDepthSpinBox->setFont(font2);
+ AModDepthSpinBox->setMaximum(99);
+ transposeGroupBox = new Q3GroupBox(TabPage1);
+ transposeGroupBox->setObjectName(QString::fromUtf8("transposeGroupBox"));
+ transposeGroupBox->setGeometry(QRect(10, 250, 310, 70));
+ transposeSlider = new QSlider(transposeGroupBox);
+ transposeSlider->setObjectName(QString::fromUtf8("transposeSlider"));
+ transposeSlider->setGeometry(QRect(10, 20, 110, 19));
+ transposeSlider->setCursor(QCursor(static_cast<Qt::CursorShape>(13)));
+ transposeSlider->setMinimum(-24);
+ transposeSlider->setMaximum(24);
+ transposeSlider->setPageStep(1);
+ transposeSlider->setOrientation(Qt::Horizontal);
+ transposeSlider->setTickPosition(QSlider::NoTicks);
+ transposeSpinBox = new QSpinBox(transposeGroupBox);
+ transposeSpinBox->setObjectName(QString::fromUtf8("transposeSpinBox"));
+ transposeSpinBox->setGeometry(QRect(130, 20, 40, 21));
+ transposeSpinBox->setFont(font2);
+ transposeSpinBox->setMaximum(99);
+ transposeSpinBox->setMinimum(-24);
+ globalDetuneSlider = new QSlider(transposeGroupBox);
+ globalDetuneSlider->setObjectName(QString::fromUtf8("globalDetuneSlider"));
+ globalDetuneSlider->setGeometry(QRect(180, 20, 70, 20));
+ globalDetuneSlider->setCursor(QCursor(static_cast<Qt::CursorShape>(13)));
+ globalDetuneSlider->setMinimum(-15);
+ globalDetuneSlider->setMaximum(15);
+ globalDetuneSlider->setPageStep(1);
+ globalDetuneSlider->setOrientation(Qt::Horizontal);
+ globalDetuneSlider->setTickPosition(QSlider::NoTicks);
+ globalDetuneSpinBox = new QSpinBox(transposeGroupBox);
+ globalDetuneSpinBox->setObjectName(QString::fromUtf8("globalDetuneSpinBox"));
+ globalDetuneSpinBox->setGeometry(QRect(260, 20, 40, 21));
+ globalDetuneSpinBox->setFont(font2);
+ globalDetuneSpinBox->setMaximum(15);
+ globalDetuneSpinBox->setMinimum(-15);
+ algorithmComboBox = new QComboBox(TabPage1);
+ algorithmComboBox->setObjectName(QString::fromUtf8("algorithmComboBox"));
+ algorithmComboBox->setGeometry(QRect(340, 280, 110, 30));
+ algorithmComboBox->setCursor(QCursor(static_cast<Qt::CursorShape>(13)));
+ deicsOnzeTabWidget->addTab(TabPage1, QString());
+ tab = new QWidget();
+ tab->setObjectName(QString::fromUtf8("tab"));
+ Frequency1groupBox = new Q3GroupBox(tab);
+ Frequency1groupBox->setObjectName(QString::fromUtf8("Frequency1groupBox"));
+ Frequency1groupBox->setGeometry(QRect(10, 190, 450, 50));
+ Fix1CheckBox = new QCheckBox(Frequency1groupBox);
+ Fix1CheckBox->setObjectName(QString::fromUtf8("Fix1CheckBox"));
+ Fix1CheckBox->setEnabled(true);
+ Fix1CheckBox->setGeometry(QRect(400, 20, 40, 25));
+ Fix1CheckBox->setFont(font);
+ Fix1CheckBox->setCursor(QCursor(static_cast<Qt::CursorShape>(13)));
+ CoarseRatio1Label = new QLabel(Frequency1groupBox);
+ CoarseRatio1Label->setObjectName(QString::fromUtf8("CoarseRatio1Label"));
+ CoarseRatio1Label->setGeometry(QRect(10, 20, 70, 22));
+ CoarseRatio1Label->setFrameShape(QFrame::Box);
+ CoarseRatio1Label->setFrameShadow(QFrame::Sunken);
+ CoarseRatio1Label->setWordWrap(false);
+ FineRatio1Label = new QLabel(Frequency1groupBox);
+ FineRatio1Label->setObjectName(QString::fromUtf8("FineRatio1Label"));
+ FineRatio1Label->setGeometry(QRect(140, 20, 50, 22));
+ FineRatio1Label->setFrameShape(QFrame::Box);
+ FineRatio1Label->setFrameShadow(QFrame::Sunken);
+ FineRatio1Label->setWordWrap(false);
+ Freq1Label = new QLabel(Frequency1groupBox);
+ Freq1Label->setObjectName(QString::fromUtf8("Freq1Label"));
+ Freq1Label->setGeometry(QRect(250, 20, 50, 22));
+ Freq1Label->setFrameShape(QFrame::Box);
+ Freq1Label->setFrameShadow(QFrame::Sunken);
+ Freq1Label->setWordWrap(false);
+ CoarseRatio1SpinBox = new QSpinBox(Frequency1groupBox);
+ CoarseRatio1SpinBox->setObjectName(QString::fromUtf8("CoarseRatio1SpinBox"));
+ CoarseRatio1SpinBox->setGeometry(QRect(90, 20, 40, 21));
+ CoarseRatio1SpinBox->setFont(font2);
+ FineRatio1SpinBox = new QSpinBox(Frequency1groupBox);
+ FineRatio1SpinBox->setObjectName(QString::fromUtf8("FineRatio1SpinBox"));
+ FineRatio1SpinBox->setGeometry(QRect(200, 20, 40, 21));
+ FineRatio1SpinBox->setFont(font2);
+ Freq1SpinBox = new QSpinBox(Frequency1groupBox);
+ Freq1SpinBox->setObjectName(QString::fromUtf8("Freq1SpinBox"));
+ Freq1SpinBox->setEnabled(false);
+ Freq1SpinBox->setGeometry(QRect(310, 20, 80, 21));
+ Freq1SpinBox->setFont(font2);
+ Freq1SpinBox->setMaximum(32000);
+ Env1GroupBox = new Q3GroupBox(tab);
+ Env1GroupBox->setObjectName(QString::fromUtf8("Env1GroupBox"));
+ Env1GroupBox->setGeometry(QRect(10, 0, 260, 190));
+ RR1Label = new QLabel(Env1GroupBox);
+ RR1Label->setObjectName(QString::fromUtf8("RR1Label"));
+ RR1Label->setGeometry(QRect(210, 160, 43, 22));
+ RR1Label->setFrameShape(QFrame::Box);
+ RR1Label->setFrameShadow(QFrame::Sunken);
+ RR1Label->setWordWrap(false);
+ D1R1Label = new QLabel(Env1GroupBox);
+ D1R1Label->setObjectName(QString::fromUtf8("D1R1Label"));
+ D1R1Label->setGeometry(QRect(60, 160, 43, 22));
+ D1R1Label->setFrameShape(QFrame::Box);
+ D1R1Label->setFrameShadow(QFrame::Sunken);
+ D1R1Label->setWordWrap(false);
+ D1L1Label = new QLabel(Env1GroupBox);
+ D1L1Label->setObjectName(QString::fromUtf8("D1L1Label"));
+ D1L1Label->setGeometry(QRect(110, 160, 43, 22));
+ D1L1Label->setFrameShape(QFrame::Box);
+ D1L1Label->setFrameShadow(QFrame::Sunken);
+ D1L1Label->setWordWrap(false);
+ D2R1Label = new QLabel(Env1GroupBox);
+ D2R1Label->setObjectName(QString::fromUtf8("D2R1Label"));
+ D2R1Label->setGeometry(QRect(160, 160, 43, 22));
+ D2R1Label->setFrameShape(QFrame::Box);
+ D2R1Label->setFrameShadow(QFrame::Sunken);
+ D2R1Label->setWordWrap(false);
+ D1L1Slider = new QSlider(Env1GroupBox);
+ D1L1Slider->setObjectName(QString::fromUtf8("D1L1Slider"));
+ D1L1Slider->setGeometry(QRect(120, 50, 20, 100));
+ D1L1Slider->setCursor(QCursor(static_cast<Qt::CursorShape>(13)));
+ D1L1Slider->setMaximum(15);
+ D1L1Slider->setSingleStep(1);
+ D1L1Slider->setPageStep(1);
+ D1L1Slider->setValue(0);
+ D1L1Slider->setOrientation(Qt::Vertical);
+ D1L1Slider->setTickPosition(QSlider::NoTicks);
+ D2R1Slider = new QSlider(Env1GroupBox);
+ D2R1Slider->setObjectName(QString::fromUtf8("D2R1Slider"));
+ D2R1Slider->setGeometry(QRect(170, 50, 20, 100));
+ D2R1Slider->setCursor(QCursor(static_cast<Qt::CursorShape>(13)));
+ D2R1Slider->setMaximum(31);
+ D2R1Slider->setSingleStep(1);
+ D2R1Slider->setPageStep(1);
+ D2R1Slider->setValue(0);
+ D2R1Slider->setOrientation(Qt::Vertical);
+ D2R1Slider->setTickPosition(QSlider::NoTicks);
+ D1R1Slider = new QSlider(Env1GroupBox);
+ D1R1Slider->setObjectName(QString::fromUtf8("D1R1Slider"));
+ D1R1Slider->setGeometry(QRect(70, 50, 20, 100));
+ D1R1Slider->setCursor(QCursor(static_cast<Qt::CursorShape>(13)));
+ D1R1Slider->setMouseTracking(false);
+ D1R1Slider->setFocusPolicy(Qt::TabFocus);
+ D1R1Slider->setAcceptDrops(false);
+ D1R1Slider->setMaximum(31);
+ D1R1Slider->setSingleStep(1);
+ D1R1Slider->setPageStep(1);
+ D1R1Slider->setValue(0);
+ D1R1Slider->setOrientation(Qt::Vertical);
+ D1R1Slider->setTickPosition(QSlider::NoTicks);
+ RR1Slider = new QSlider(Env1GroupBox);
+ RR1Slider->setObjectName(QString::fromUtf8("RR1Slider"));
+ RR1Slider->setGeometry(QRect(220, 50, 20, 100));
+ RR1Slider->setCursor(QCursor(static_cast<Qt::CursorShape>(13)));
+ RR1Slider->setMinimum(0);
+ RR1Slider->setMaximum(15);
+ RR1Slider->setSingleStep(1);
+ RR1Slider->setPageStep(1);
+ RR1Slider->setValue(0);
+ RR1Slider->setOrientation(Qt::Vertical);
+ RR1Slider->setTickPosition(QSlider::NoTicks);
+ RR1Slider->setTickInterval(0);
+ AR1Label = new QLabel(Env1GroupBox);
+ AR1Label->setObjectName(QString::fromUtf8("AR1Label"));
+ AR1Label->setGeometry(QRect(10, 160, 40, 22));
+ AR1Label->setFrameShape(QFrame::Box);
+ AR1Label->setFrameShadow(QFrame::Sunken);
+ AR1Label->setWordWrap(false);
+ D1R1SpinBox = new QSpinBox(Env1GroupBox);
+ D1R1SpinBox->setObjectName(QString::fromUtf8("D1R1SpinBox"));
+ D1R1SpinBox->setGeometry(QRect(60, 20, 40, 21));
+ D1R1SpinBox->setFont(font2);
+ D1R1SpinBox->setMaximum(31);
+ D1L1SpinBox = new QSpinBox(Env1GroupBox);
+ D1L1SpinBox->setObjectName(QString::fromUtf8("D1L1SpinBox"));
+ D1L1SpinBox->setGeometry(QRect(110, 20, 40, 21));
+ D1L1SpinBox->setFont(font2);
+ D1L1SpinBox->setMaximum(15);
+ D2R1SpinBox = new QSpinBox(Env1GroupBox);
+ D2R1SpinBox->setObjectName(QString::fromUtf8("D2R1SpinBox"));
+ D2R1SpinBox->setGeometry(QRect(160, 20, 40, 21));
+ D2R1SpinBox->setFont(font2);
+ D2R1SpinBox->setMaximum(31);
+ RR1SpinBox = new QSpinBox(Env1GroupBox);
+ RR1SpinBox->setObjectName(QString::fromUtf8("RR1SpinBox"));
+ RR1SpinBox->setGeometry(QRect(210, 20, 40, 21));
+ RR1SpinBox->setFont(font2);
+ RR1SpinBox->setMaximum(15);
+ AR1Slider = new QSlider(Env1GroupBox);
+ AR1Slider->setObjectName(QString::fromUtf8("AR1Slider"));
+ AR1Slider->setGeometry(QRect(20, 50, 20, 100));
+ AR1Slider->setCursor(QCursor(static_cast<Qt::CursorShape>(13)));
+ AR1Slider->setMaximum(31);
+ AR1Slider->setSingleStep(1);
+ AR1Slider->setPageStep(1);
+ AR1Slider->setValue(0);
+ AR1Slider->setOrientation(Qt::Vertical);
+ AR1Slider->setTickPosition(QSlider::NoTicks);
+ AR1SpinBox = new QSpinBox(Env1GroupBox);
+ AR1SpinBox->setObjectName(QString::fromUtf8("AR1SpinBox"));
+ AR1SpinBox->setGeometry(QRect(10, 20, 40, 21));
+ AR1SpinBox->setFont(font2);
+ AR1SpinBox->setMaximum(31);
+ Scaling1GroupBox = new Q3GroupBox(tab);
+ Scaling1GroupBox->setObjectName(QString::fromUtf8("Scaling1GroupBox"));
+ Scaling1GroupBox->setGeometry(QRect(280, 0, 110, 190));
+ LS1Label = new QLabel(Scaling1GroupBox);
+ LS1Label->setObjectName(QString::fromUtf8("LS1Label"));
+ LS1Label->setGeometry(QRect(10, 160, 40, 22));
+ LS1Label->setFrameShape(QFrame::Box);
+ LS1Label->setFrameShadow(QFrame::Sunken);
+ LS1Label->setWordWrap(false);
+ RS1Label = new QLabel(Scaling1GroupBox);
+ RS1Label->setObjectName(QString::fromUtf8("RS1Label"));
+ RS1Label->setGeometry(QRect(60, 160, 40, 22));
+ RS1Label->setFrameShape(QFrame::Box);
+ RS1Label->setFrameShadow(QFrame::Sunken);
+ RS1Label->setWordWrap(false);
+ LS1Slider = new QSlider(Scaling1GroupBox);
+ LS1Slider->setObjectName(QString::fromUtf8("LS1Slider"));
+ LS1Slider->setGeometry(QRect(20, 50, 19, 100));
+ LS1Slider->setCursor(QCursor(static_cast<Qt::CursorShape>(13)));
+ LS1Slider->setMaximum(99);
+ LS1Slider->setSingleStep(1);
+ LS1Slider->setPageStep(1);
+ LS1Slider->setValue(0);
+ LS1Slider->setOrientation(Qt::Vertical);
+ LS1Slider->setTickPosition(QSlider::NoTicks);
+ RS1Slider = new QSlider(Scaling1GroupBox);
+ RS1Slider->setObjectName(QString::fromUtf8("RS1Slider"));
+ RS1Slider->setGeometry(QRect(70, 50, 19, 100));
+ RS1Slider->setCursor(QCursor(static_cast<Qt::CursorShape>(13)));
+ RS1Slider->setMaximum(3);
+ RS1Slider->setSingleStep(1);
+ RS1Slider->setPageStep(1);
+ RS1Slider->setValue(0);
+ RS1Slider->setOrientation(Qt::Vertical);
+ RS1Slider->setTickPosition(QSlider::NoTicks);
+ LS1SpinBox = new QSpinBox(Scaling1GroupBox);
+ LS1SpinBox->setObjectName(QString::fromUtf8("LS1SpinBox"));
+ LS1SpinBox->setGeometry(QRect(10, 20, 40, 21));
+ LS1SpinBox->setFont(font2);
+ LS1SpinBox->setMaximum(99);
+ RS1SpinBox = new QSpinBox(Scaling1GroupBox);
+ RS1SpinBox->setObjectName(QString::fromUtf8("RS1SpinBox"));
+ RS1SpinBox->setGeometry(QRect(60, 20, 40, 21));
+ RS1SpinBox->setFont(font2);
+ RS1SpinBox->setMaximum(3);
+ Vol1groupBox = new Q3GroupBox(tab);
+ Vol1groupBox->setObjectName(QString::fromUtf8("Vol1groupBox"));
+ Vol1groupBox->setGeometry(QRect(400, 0, 60, 190));
+ Vol1Slider = new QSlider(Vol1groupBox);
+ Vol1Slider->setObjectName(QString::fromUtf8("Vol1Slider"));
+ Vol1Slider->setGeometry(QRect(20, 50, 19, 130));
+ Vol1Slider->setCursor(QCursor(static_cast<Qt::CursorShape>(13)));
+ Vol1Slider->setMaximum(99);
+ Vol1Slider->setSingleStep(1);
+ Vol1Slider->setPageStep(1);
+ Vol1Slider->setValue(0);
+ Vol1Slider->setOrientation(Qt::Vertical);
+ Vol1Slider->setTickPosition(QSlider::NoTicks);
+ Vol1SpinBox = new QSpinBox(Vol1groupBox);
+ Vol1SpinBox->setObjectName(QString::fromUtf8("Vol1SpinBox"));
+ Vol1SpinBox->setGeometry(QRect(10, 20, 40, 21));
+ Vol1SpinBox->setFont(font2);
+ Vol1SpinBox->setMaximum(99);
+ sensitivity1groupBox = new Q3GroupBox(tab);
+ sensitivity1groupBox->setObjectName(QString::fromUtf8("sensitivity1groupBox"));
+ sensitivity1groupBox->setGeometry(QRect(10, 240, 260, 80));
+ EGS1Label = new QLabel(sensitivity1groupBox);
+ EGS1Label->setObjectName(QString::fromUtf8("EGS1Label"));
+ EGS1Label->setGeometry(QRect(80, 20, 40, 22));
+ EGS1Label->setFrameShape(QFrame::Box);
+ EGS1Label->setFrameShadow(QFrame::Sunken);
+ EGS1Label->setWordWrap(false);
+ KVS1Label = new QLabel(sensitivity1groupBox);
+ KVS1Label->setObjectName(QString::fromUtf8("KVS1Label"));
+ KVS1Label->setGeometry(QRect(10, 50, 40, 22));
+ KVS1Label->setFrameShape(QFrame::Box);
+ KVS1Label->setFrameShadow(QFrame::Sunken);
+ KVS1Label->setWordWrap(false);
+ AME1CheckBox = new QCheckBox(sensitivity1groupBox);
+ AME1CheckBox->setObjectName(QString::fromUtf8("AME1CheckBox"));
+ AME1CheckBox->setGeometry(QRect(10, 20, 60, 25));
+ AME1CheckBox->setFont(font);
+ AME1CheckBox->setCursor(QCursor(static_cast<Qt::CursorShape>(13)));
+ KVS1Slider = new QSlider(sensitivity1groupBox);
+ KVS1Slider->setObjectName(QString::fromUtf8("KVS1Slider"));
+ KVS1Slider->setGeometry(QRect(60, 50, 84, 19));
+ KVS1Slider->setCursor(QCursor(static_cast<Qt::CursorShape>(13)));
+ KVS1Slider->setAcceptDrops(false);
+ KVS1Slider->setMaximum(7);
+ KVS1Slider->setSingleStep(1);
+ KVS1Slider->setPageStep(1);
+ KVS1Slider->setOrientation(Qt::Horizontal);
+ KVS1Slider->setTickPosition(QSlider::NoTicks);
+ EBS1Slider = new QSlider(sensitivity1groupBox);
+ EBS1Slider->setObjectName(QString::fromUtf8("EBS1Slider"));
+ EBS1Slider->setGeometry(QRect(130, 20, 70, 20));
+ EBS1Slider->setCursor(QCursor(static_cast<Qt::CursorShape>(13)));
+ EBS1Slider->setMaximum(7);
+ EBS1Slider->setSingleStep(1);
+ EBS1Slider->setPageStep(1);
+ EBS1Slider->setOrientation(Qt::Horizontal);
+ EBS1Slider->setTickPosition(QSlider::NoTicks);
+ KVS1SpinBox = new QSpinBox(sensitivity1groupBox);
+ KVS1SpinBox->setObjectName(QString::fromUtf8("KVS1SpinBox"));
+ KVS1SpinBox->setGeometry(QRect(160, 50, 40, 21));
+ KVS1SpinBox->setFont(font2);
+ KVS1SpinBox->setMaximum(7);
+ EBS1SpinBox = new QSpinBox(sensitivity1groupBox);
+ EBS1SpinBox->setObjectName(QString::fromUtf8("EBS1SpinBox"));
+ EBS1SpinBox->setGeometry(QRect(210, 20, 40, 21));
+ EBS1SpinBox->setFont(font2);
+ EBS1SpinBox->setMaximum(7);
+ DetWaveEGS1GroupBox = new Q3GroupBox(tab);
+ DetWaveEGS1GroupBox->setObjectName(QString::fromUtf8("DetWaveEGS1GroupBox"));
+ DetWaveEGS1GroupBox->setGeometry(QRect(280, 240, 180, 80));
+ WaveForm1ComboBox = new QComboBox(DetWaveEGS1GroupBox);
+ WaveForm1ComboBox->setObjectName(QString::fromUtf8("WaveForm1ComboBox"));
+ WaveForm1ComboBox->setGeometry(QRect(10, 50, 80, 20));
+ WaveForm1ComboBox->setCursor(QCursor(static_cast<Qt::CursorShape>(13)));
+ DET1Label = new QLabel(DetWaveEGS1GroupBox);
+ DET1Label->setObjectName(QString::fromUtf8("DET1Label"));
+ DET1Label->setGeometry(QRect(10, 20, 44, 24));
+ DET1Label->setFrameShape(QFrame::Box);
+ DET1Label->setFrameShadow(QFrame::Sunken);
+ DET1Label->setWordWrap(false);
+ EGQ1ComboBox = new QComboBox(DetWaveEGS1GroupBox);
+ EGQ1ComboBox->setObjectName(QString::fromUtf8("EGQ1ComboBox"));
+ EGQ1ComboBox->setEnabled(false);
+ EGQ1ComboBox->setGeometry(QRect(100, 50, 70, 20));
+ EGQ1ComboBox->setCursor(QCursor(static_cast<Qt::CursorShape>(13)));
+ DET1Slider = new QSlider(DetWaveEGS1GroupBox);
+ DET1Slider->setObjectName(QString::fromUtf8("DET1Slider"));
+ DET1Slider->setGeometry(QRect(60, 20, 70, 19));
+ DET1Slider->setCursor(QCursor(static_cast<Qt::CursorShape>(13)));
+ DET1Slider->setMinimum(-3);
+ DET1Slider->setMaximum(3);
+ DET1Slider->setSingleStep(1);
+ DET1Slider->setPageStep(1);
+ DET1Slider->setValue(0);
+ DET1Slider->setOrientation(Qt::Horizontal);
+ DET1Slider->setTickPosition(QSlider::NoTicks);
+ DET1SpinBox = new QSpinBox(DetWaveEGS1GroupBox);
+ DET1SpinBox->setObjectName(QString::fromUtf8("DET1SpinBox"));
+ DET1SpinBox->setGeometry(QRect(140, 20, 30, 21));
+ DET1SpinBox->setFont(font2);
+ DET1SpinBox->setMaximum(3);
+ DET1SpinBox->setMinimum(-3);
+ deicsOnzeTabWidget->addTab(tab, QString());
+ tab1 = new QWidget();
+ tab1->setObjectName(QString::fromUtf8("tab1"));
+ Frequency2groupBox = new Q3GroupBox(tab1);
+ Frequency2groupBox->setObjectName(QString::fromUtf8("Frequency2groupBox"));
+ Frequency2groupBox->setGeometry(QRect(10, 190, 450, 50));
+ Fix2CheckBox = new QCheckBox(Frequency2groupBox);
+ Fix2CheckBox->setObjectName(QString::fromUtf8("Fix2CheckBox"));
+ Fix2CheckBox->setEnabled(true);
+ Fix2CheckBox->setGeometry(QRect(400, 20, 40, 25));
+ Fix2CheckBox->setFont(font);
+ Fix2CheckBox->setCursor(QCursor(static_cast<Qt::CursorShape>(13)));
+ Freq2Label = new QLabel(Frequency2groupBox);
+ Freq2Label->setObjectName(QString::fromUtf8("Freq2Label"));
+ Freq2Label->setGeometry(QRect(250, 20, 50, 22));
+ Freq2Label->setFrameShape(QFrame::Box);
+ Freq2Label->setFrameShadow(QFrame::Sunken);
+ Freq2Label->setWordWrap(false);
+ FineRatio2Label = new QLabel(Frequency2groupBox);
+ FineRatio2Label->setObjectName(QString::fromUtf8("FineRatio2Label"));
+ FineRatio2Label->setGeometry(QRect(140, 20, 50, 22));
+ FineRatio2Label->setFrameShape(QFrame::Box);
+ FineRatio2Label->setFrameShadow(QFrame::Sunken);
+ FineRatio2Label->setWordWrap(false);
+ CoarseRatio2Label = new QLabel(Frequency2groupBox);
+ CoarseRatio2Label->setObjectName(QString::fromUtf8("CoarseRatio2Label"));
+ CoarseRatio2Label->setGeometry(QRect(10, 20, 70, 22));
+ CoarseRatio2Label->setFrameShape(QFrame::Box);
+ CoarseRatio2Label->setFrameShadow(QFrame::Sunken);
+ CoarseRatio2Label->setWordWrap(false);
+ CoarseRatio2SpinBox = new QSpinBox(Frequency2groupBox);
+ CoarseRatio2SpinBox->setObjectName(QString::fromUtf8("CoarseRatio2SpinBox"));
+ CoarseRatio2SpinBox->setGeometry(QRect(90, 20, 40, 21));
+ CoarseRatio2SpinBox->setFont(font2);
+ FineRatio2SpinBox = new QSpinBox(Frequency2groupBox);
+ FineRatio2SpinBox->setObjectName(QString::fromUtf8("FineRatio2SpinBox"));
+ FineRatio2SpinBox->setGeometry(QRect(200, 20, 40, 21));
+ FineRatio2SpinBox->setFont(font2);
+ Freq2SpinBox = new QSpinBox(Frequency2groupBox);
+ Freq2SpinBox->setObjectName(QString::fromUtf8("Freq2SpinBox"));
+ Freq2SpinBox->setEnabled(false);
+ Freq2SpinBox->setGeometry(QRect(310, 20, 80, 21));
+ Freq2SpinBox->setFont(font2);
+ Freq2SpinBox->setMaximum(32000);
+ Env2GroupBox = new Q3GroupBox(tab1);
+ Env2GroupBox->setObjectName(QString::fromUtf8("Env2GroupBox"));
+ Env2GroupBox->setGeometry(QRect(10, 0, 260, 190));
+ AR2Label = new QLabel(Env2GroupBox);
+ AR2Label->setObjectName(QString::fromUtf8("AR2Label"));
+ AR2Label->setGeometry(QRect(10, 160, 40, 22));
+ AR2Label->setFrameShape(QFrame::Box);
+ AR2Label->setFrameShadow(QFrame::Sunken);
+ AR2Label->setWordWrap(false);
+ RR2Label = new QLabel(Env2GroupBox);
+ RR2Label->setObjectName(QString::fromUtf8("RR2Label"));
+ RR2Label->setGeometry(QRect(210, 160, 43, 22));
+ RR2Label->setFrameShape(QFrame::Box);
+ RR2Label->setFrameShadow(QFrame::Sunken);
+ RR2Label->setWordWrap(false);
+ D2R2Label = new QLabel(Env2GroupBox);
+ D2R2Label->setObjectName(QString::fromUtf8("D2R2Label"));
+ D2R2Label->setGeometry(QRect(160, 160, 43, 22));
+ D2R2Label->setFrameShape(QFrame::Box);
+ D2R2Label->setFrameShadow(QFrame::Sunken);
+ D2R2Label->setWordWrap(false);
+ D1L2Label = new QLabel(Env2GroupBox);
+ D1L2Label->setObjectName(QString::fromUtf8("D1L2Label"));
+ D1L2Label->setGeometry(QRect(110, 160, 43, 22));
+ D1L2Label->setFrameShape(QFrame::Box);
+ D1L2Label->setFrameShadow(QFrame::Sunken);
+ D1L2Label->setWordWrap(false);
+ D1R2Label = new QLabel(Env2GroupBox);
+ D1R2Label->setObjectName(QString::fromUtf8("D1R2Label"));
+ D1R2Label->setGeometry(QRect(60, 160, 43, 22));
+ D1R2Label->setFrameShape(QFrame::Box);
+ D1R2Label->setFrameShadow(QFrame::Sunken);
+ D1R2Label->setWordWrap(false);
+ AR2Slider = new QSlider(Env2GroupBox);
+ AR2Slider->setObjectName(QString::fromUtf8("AR2Slider"));
+ AR2Slider->setEnabled(true);
+ AR2Slider->setGeometry(QRect(20, 50, 20, 100));
+ AR2Slider->setCursor(QCursor(static_cast<Qt::CursorShape>(13)));
+ AR2Slider->setMaximum(31);
+ AR2Slider->setPageStep(1);
+ AR2Slider->setValue(0);
+ AR2Slider->setTracking(true);
+ AR2Slider->setOrientation(Qt::Vertical);
+ AR2Slider->setTickPosition(QSlider::NoTicks);
+ D1R2Slider = new QSlider(Env2GroupBox);
+ D1R2Slider->setObjectName(QString::fromUtf8("D1R2Slider"));
+ D1R2Slider->setGeometry(QRect(70, 50, 20, 100));
+ D1R2Slider->setCursor(QCursor(static_cast<Qt::CursorShape>(13)));
+ D1R2Slider->setMaximum(31);
+ D1R2Slider->setPageStep(1);
+ D1R2Slider->setValue(0);
+ D1R2Slider->setOrientation(Qt::Vertical);
+ D1R2Slider->setTickPosition(QSlider::NoTicks);
+ D1L2Slider = new QSlider(Env2GroupBox);
+ D1L2Slider->setObjectName(QString::fromUtf8("D1L2Slider"));
+ D1L2Slider->setGeometry(QRect(120, 50, 20, 100));
+ D1L2Slider->setCursor(QCursor(static_cast<Qt::CursorShape>(13)));
+ D1L2Slider->setMaximum(15);
+ D1L2Slider->setPageStep(1);
+ D1L2Slider->setValue(0);
+ D1L2Slider->setOrientation(Qt::Vertical);
+ D1L2Slider->setTickPosition(QSlider::NoTicks);
+ D2R2Slider = new QSlider(Env2GroupBox);
+ D2R2Slider->setObjectName(QString::fromUtf8("D2R2Slider"));
+ D2R2Slider->setGeometry(QRect(170, 50, 20, 100));
+ D2R2Slider->setCursor(QCursor(static_cast<Qt::CursorShape>(13)));
+ D2R2Slider->setMaximum(31);
+ D2R2Slider->setPageStep(1);
+ D2R2Slider->setValue(0);
+ D2R2Slider->setOrientation(Qt::Vertical);
+ D2R2Slider->setTickPosition(QSlider::NoTicks);
+ RR2Slider = new QSlider(Env2GroupBox);
+ RR2Slider->setObjectName(QString::fromUtf8("RR2Slider"));
+ RR2Slider->setGeometry(QRect(220, 50, 20, 100));
+ RR2Slider->setCursor(QCursor(static_cast<Qt::CursorShape>(13)));
+ RR2Slider->setMinimum(0);
+ RR2Slider->setMaximum(15);
+ RR2Slider->setPageStep(1);
+ RR2Slider->setValue(0);
+ RR2Slider->setOrientation(Qt::Vertical);
+ RR2Slider->setTickPosition(QSlider::NoTicks);
+ RR2Slider->setTickInterval(0);
+ D1R2SpinBox = new QSpinBox(Env2GroupBox);
+ D1R2SpinBox->setObjectName(QString::fromUtf8("D1R2SpinBox"));
+ D1R2SpinBox->setGeometry(QRect(60, 20, 40, 21));
+ D1R2SpinBox->setFont(font2);
+ D1R2SpinBox->setMaximum(31);
+ D1L2SpinBox = new QSpinBox(Env2GroupBox);
+ D1L2SpinBox->setObjectName(QString::fromUtf8("D1L2SpinBox"));
+ D1L2SpinBox->setGeometry(QRect(110, 20, 40, 21));
+ D1L2SpinBox->setFont(font2);
+ D1L2SpinBox->setMaximum(15);
+ D2R2SpinBox = new QSpinBox(Env2GroupBox);
+ D2R2SpinBox->setObjectName(QString::fromUtf8("D2R2SpinBox"));
+ D2R2SpinBox->setGeometry(QRect(160, 20, 40, 21));
+ D2R2SpinBox->setFont(font2);
+ D2R2SpinBox->setMaximum(31);
+ RR2SpinBox = new QSpinBox(Env2GroupBox);
+ RR2SpinBox->setObjectName(QString::fromUtf8("RR2SpinBox"));
+ RR2SpinBox->setGeometry(QRect(210, 20, 40, 21));
+ RR2SpinBox->setFont(font2);
+ RR2SpinBox->setMaximum(15);
+ AR2SpinBox = new QSpinBox(Env2GroupBox);
+ AR2SpinBox->setObjectName(QString::fromUtf8("AR2SpinBox"));
+ AR2SpinBox->setGeometry(QRect(10, 20, 40, 21));
+ AR2SpinBox->setFont(font2);
+ AR2SpinBox->setMaximum(31);
+ Scaling2GroupBox = new Q3GroupBox(tab1);
+ Scaling2GroupBox->setObjectName(QString::fromUtf8("Scaling2GroupBox"));
+ Scaling2GroupBox->setGeometry(QRect(280, 0, 110, 190));
+ LS2Label = new QLabel(Scaling2GroupBox);
+ LS2Label->setObjectName(QString::fromUtf8("LS2Label"));
+ LS2Label->setGeometry(QRect(10, 160, 40, 22));
+ LS2Label->setFrameShape(QFrame::Box);
+ LS2Label->setFrameShadow(QFrame::Sunken);
+ LS2Label->setWordWrap(false);
+ RS2Label = new QLabel(Scaling2GroupBox);
+ RS2Label->setObjectName(QString::fromUtf8("RS2Label"));
+ RS2Label->setGeometry(QRect(60, 160, 40, 22));
+ RS2Label->setFrameShape(QFrame::Box);
+ RS2Label->setFrameShadow(QFrame::Sunken);
+ RS2Label->setWordWrap(false);
+ LS2Slider = new QSlider(Scaling2GroupBox);
+ LS2Slider->setObjectName(QString::fromUtf8("LS2Slider"));
+ LS2Slider->setGeometry(QRect(20, 50, 20, 100));
+ LS2Slider->setCursor(QCursor(static_cast<Qt::CursorShape>(13)));
+ LS2Slider->setMaximum(99);
+ LS2Slider->setPageStep(1);
+ LS2Slider->setValue(0);
+ LS2Slider->setOrientation(Qt::Vertical);
+ LS2Slider->setTickPosition(QSlider::NoTicks);
+ LS2Slider->setTickInterval(1);
+ RS2Slider = new QSlider(Scaling2GroupBox);
+ RS2Slider->setObjectName(QString::fromUtf8("RS2Slider"));
+ RS2Slider->setGeometry(QRect(70, 50, 20, 100));
+ RS2Slider->setCursor(QCursor(static_cast<Qt::CursorShape>(13)));
+ RS2Slider->setMaximum(3);
+ RS2Slider->setPageStep(1);
+ RS2Slider->setValue(0);
+ RS2Slider->setOrientation(Qt::Vertical);
+ RS2Slider->setTickPosition(QSlider::NoTicks);
+ LS2SpinBox = new QSpinBox(Scaling2GroupBox);
+ LS2SpinBox->setObjectName(QString::fromUtf8("LS2SpinBox"));
+ LS2SpinBox->setGeometry(QRect(10, 20, 40, 21));
+ LS2SpinBox->setFont(font2);
+ LS2SpinBox->setMaximum(99);
+ RS2SpinBox = new QSpinBox(Scaling2GroupBox);
+ RS2SpinBox->setObjectName(QString::fromUtf8("RS2SpinBox"));
+ RS2SpinBox->setGeometry(QRect(60, 20, 40, 21));
+ RS2SpinBox->setFont(font2);
+ RS2SpinBox->setMaximum(3);
+ Vol2groupBox = new Q3GroupBox(tab1);
+ Vol2groupBox->setObjectName(QString::fromUtf8("Vol2groupBox"));
+ Vol2groupBox->setGeometry(QRect(400, 0, 60, 190));
+ Vol2Slider = new QSlider(Vol2groupBox);
+ Vol2Slider->setObjectName(QString::fromUtf8("Vol2Slider"));
+ Vol2Slider->setGeometry(QRect(20, 50, 19, 130));
+ Vol2Slider->setCursor(QCursor(static_cast<Qt::CursorShape>(13)));
+ Vol2Slider->setMaximum(99);
+ Vol2Slider->setPageStep(1);
+ Vol2Slider->setValue(0);
+ Vol2Slider->setOrientation(Qt::Vertical);
+ Vol2Slider->setTickPosition(QSlider::NoTicks);
+ Vol2SpinBox = new QSpinBox(Vol2groupBox);
+ Vol2SpinBox->setObjectName(QString::fromUtf8("Vol2SpinBox"));
+ Vol2SpinBox->setGeometry(QRect(10, 20, 40, 21));
+ Vol2SpinBox->setFont(font2);
+ Vol2SpinBox->setMaximum(99);
+ sensitivity2groupBox = new Q3GroupBox(tab1);
+ sensitivity2groupBox->setObjectName(QString::fromUtf8("sensitivity2groupBox"));
+ sensitivity2groupBox->setGeometry(QRect(10, 240, 260, 80));
+ EGS2Label = new QLabel(sensitivity2groupBox);
+ EGS2Label->setObjectName(QString::fromUtf8("EGS2Label"));
+ EGS2Label->setGeometry(QRect(80, 20, 40, 22));
+ EGS2Label->setFrameShape(QFrame::Box);
+ EGS2Label->setFrameShadow(QFrame::Sunken);
+ EGS2Label->setWordWrap(false);
+ KVS2Label = new QLabel(sensitivity2groupBox);
+ KVS2Label->setObjectName(QString::fromUtf8("KVS2Label"));
+ KVS2Label->setGeometry(QRect(10, 50, 40, 22));
+ KVS2Label->setFrameShape(QFrame::Box);
+ KVS2Label->setFrameShadow(QFrame::Sunken);
+ KVS2Label->setWordWrap(false);
+ AME2CheckBox = new QCheckBox(sensitivity2groupBox);
+ AME2CheckBox->setObjectName(QString::fromUtf8("AME2CheckBox"));
+ AME2CheckBox->setGeometry(QRect(10, 20, 60, 25));
+ AME2CheckBox->setFont(font);
+ AME2CheckBox->setCursor(QCursor(static_cast<Qt::CursorShape>(13)));
+ KVS2Slider = new QSlider(sensitivity2groupBox);
+ KVS2Slider->setObjectName(QString::fromUtf8("KVS2Slider"));
+ KVS2Slider->setGeometry(QRect(60, 50, 84, 19));
+ KVS2Slider->setCursor(QCursor(static_cast<Qt::CursorShape>(13)));
+ KVS2Slider->setAcceptDrops(false);
+ KVS2Slider->setMaximum(7);
+ KVS2Slider->setPageStep(1);
+ KVS2Slider->setOrientation(Qt::Horizontal);
+ KVS2Slider->setTickPosition(QSlider::NoTicks);
+ EBS2Slider = new QSlider(sensitivity2groupBox);
+ EBS2Slider->setObjectName(QString::fromUtf8("EBS2Slider"));
+ EBS2Slider->setGeometry(QRect(130, 20, 70, 20));
+ EBS2Slider->setCursor(QCursor(static_cast<Qt::CursorShape>(13)));
+ EBS2Slider->setMaximum(7);
+ EBS2Slider->setPageStep(1);
+ EBS2Slider->setOrientation(Qt::Horizontal);
+ EBS2Slider->setTickPosition(QSlider::NoTicks);
+ EBS2SpinBox = new QSpinBox(sensitivity2groupBox);
+ EBS2SpinBox->setObjectName(QString::fromUtf8("EBS2SpinBox"));
+ EBS2SpinBox->setGeometry(QRect(210, 20, 40, 21));
+ EBS2SpinBox->setFont(font2);
+ EBS2SpinBox->setMaximum(7);
+ KVS2SpinBox = new QSpinBox(sensitivity2groupBox);
+ KVS2SpinBox->setObjectName(QString::fromUtf8("KVS2SpinBox"));
+ KVS2SpinBox->setGeometry(QRect(160, 50, 40, 21));
+ KVS2SpinBox->setFont(font2);
+ KVS2SpinBox->setMaximum(7);
+ DetWaveEGS2GroupBox = new Q3GroupBox(tab1);
+ DetWaveEGS2GroupBox->setObjectName(QString::fromUtf8("DetWaveEGS2GroupBox"));
+ DetWaveEGS2GroupBox->setGeometry(QRect(280, 240, 180, 80));
+ DET2Slider = new QSlider(DetWaveEGS2GroupBox);
+ DET2Slider->setObjectName(QString::fromUtf8("DET2Slider"));
+ DET2Slider->setGeometry(QRect(60, 20, 70, 19));
+ DET2Slider->setCursor(QCursor(static_cast<Qt::CursorShape>(13)));
+ DET2Slider->setMinimum(-3);
+ DET2Slider->setMaximum(3);
+ DET2Slider->setPageStep(1);
+ DET2Slider->setValue(0);
+ DET2Slider->setOrientation(Qt::Horizontal);
+ DET2Slider->setTickPosition(QSlider::NoTicks);
+ DET2Label = new QLabel(DetWaveEGS2GroupBox);
+ DET2Label->setObjectName(QString::fromUtf8("DET2Label"));
+ DET2Label->setGeometry(QRect(10, 20, 44, 24));
+ DET2Label->setFrameShape(QFrame::Box);
+ DET2Label->setFrameShadow(QFrame::Sunken);
+ DET2Label->setWordWrap(false);
+ WaveForm2ComboBox = new QComboBox(DetWaveEGS2GroupBox);
+ WaveForm2ComboBox->setObjectName(QString::fromUtf8("WaveForm2ComboBox"));
+ WaveForm2ComboBox->setGeometry(QRect(10, 50, 80, 20));
+ WaveForm2ComboBox->setCursor(QCursor(static_cast<Qt::CursorShape>(13)));
+ EGS2comboBox = new QComboBox(DetWaveEGS2GroupBox);
+ EGS2comboBox->setObjectName(QString::fromUtf8("EGS2comboBox"));
+ EGS2comboBox->setEnabled(false);
+ EGS2comboBox->setGeometry(QRect(100, 50, 70, 20));
+ EGS2comboBox->setCursor(QCursor(static_cast<Qt::CursorShape>(13)));
+ DET2SpinBox = new QSpinBox(DetWaveEGS2GroupBox);
+ DET2SpinBox->setObjectName(QString::fromUtf8("DET2SpinBox"));
+ DET2SpinBox->setGeometry(QRect(140, 20, 30, 21));
+ DET2SpinBox->setFont(font2);
+ DET2SpinBox->setMaximum(3);
+ DET2SpinBox->setMinimum(-3);
+ deicsOnzeTabWidget->addTab(tab1, QString());
+ TabPage2 = new QWidget();
+ TabPage2->setObjectName(QString::fromUtf8("TabPage2"));
+ Frequency3groupBox = new Q3GroupBox(TabPage2);
+ Frequency3groupBox->setObjectName(QString::fromUtf8("Frequency3groupBox"));
+ Frequency3groupBox->setGeometry(QRect(10, 190, 450, 50));
+ Fix3CheckBox = new QCheckBox(Frequency3groupBox);
+ Fix3CheckBox->setObjectName(QString::fromUtf8("Fix3CheckBox"));
+ Fix3CheckBox->setEnabled(true);
+ Fix3CheckBox->setGeometry(QRect(400, 20, 40, 25));
+ Fix3CheckBox->setFont(font);
+ Fix3CheckBox->setCursor(QCursor(static_cast<Qt::CursorShape>(13)));
+ CoarseRatio3Label = new QLabel(Frequency3groupBox);
+ CoarseRatio3Label->setObjectName(QString::fromUtf8("CoarseRatio3Label"));
+ CoarseRatio3Label->setGeometry(QRect(10, 20, 70, 22));
+ CoarseRatio3Label->setFrameShape(QFrame::Box);
+ CoarseRatio3Label->setFrameShadow(QFrame::Sunken);
+ CoarseRatio3Label->setWordWrap(false);
+ FineRatio3Label = new QLabel(Frequency3groupBox);
+ FineRatio3Label->setObjectName(QString::fromUtf8("FineRatio3Label"));
+ FineRatio3Label->setGeometry(QRect(140, 20, 50, 22));
+ FineRatio3Label->setFrameShape(QFrame::Box);
+ FineRatio3Label->setFrameShadow(QFrame::Sunken);
+ FineRatio3Label->setWordWrap(false);
+ Freq3Label = new QLabel(Frequency3groupBox);
+ Freq3Label->setObjectName(QString::fromUtf8("Freq3Label"));
+ Freq3Label->setGeometry(QRect(250, 20, 50, 22));
+ Freq3Label->setFrameShape(QFrame::Box);
+ Freq3Label->setFrameShadow(QFrame::Sunken);
+ Freq3Label->setWordWrap(false);
+ CoarseRatio3SpinBox = new QSpinBox(Frequency3groupBox);
+ CoarseRatio3SpinBox->setObjectName(QString::fromUtf8("CoarseRatio3SpinBox"));
+ CoarseRatio3SpinBox->setGeometry(QRect(90, 20, 40, 21));
+ CoarseRatio3SpinBox->setFont(font2);
+ CoarseRatio3SpinBox->setCursor(QCursor(static_cast<Qt::CursorShape>(0)));
+ FineRatio3SpinBox = new QSpinBox(Frequency3groupBox);
+ FineRatio3SpinBox->setObjectName(QString::fromUtf8("FineRatio3SpinBox"));
+ FineRatio3SpinBox->setGeometry(QRect(200, 20, 40, 21));
+ FineRatio3SpinBox->setFont(font2);
+ FineRatio3SpinBox->setCursor(QCursor(static_cast<Qt::CursorShape>(0)));
+ Freq3SpinBox = new QSpinBox(Frequency3groupBox);
+ Freq3SpinBox->setObjectName(QString::fromUtf8("Freq3SpinBox"));
+ Freq3SpinBox->setEnabled(false);
+ Freq3SpinBox->setGeometry(QRect(310, 20, 80, 21));
+ Freq3SpinBox->setFont(font2);
+ Freq3SpinBox->setMaximum(32000);
+ Env3GroupBox = new Q3GroupBox(TabPage2);
+ Env3GroupBox->setObjectName(QString::fromUtf8("Env3GroupBox"));
+ Env3GroupBox->setGeometry(QRect(10, 0, 260, 190));
+ RR3Label = new QLabel(Env3GroupBox);
+ RR3Label->setObjectName(QString::fromUtf8("RR3Label"));
+ RR3Label->setGeometry(QRect(210, 160, 43, 22));
+ RR3Label->setFrameShape(QFrame::Box);
+ RR3Label->setFrameShadow(QFrame::Sunken);
+ RR3Label->setWordWrap(false);
+ D2R3Label = new QLabel(Env3GroupBox);
+ D2R3Label->setObjectName(QString::fromUtf8("D2R3Label"));
+ D2R3Label->setGeometry(QRect(160, 160, 43, 22));
+ D2R3Label->setFrameShape(QFrame::Box);
+ D2R3Label->setFrameShadow(QFrame::Sunken);
+ D2R3Label->setWordWrap(false);
+ D1L3Label = new QLabel(Env3GroupBox);
+ D1L3Label->setObjectName(QString::fromUtf8("D1L3Label"));
+ D1L3Label->setGeometry(QRect(110, 160, 43, 22));
+ D1L3Label->setFrameShape(QFrame::Box);
+ D1L3Label->setFrameShadow(QFrame::Sunken);
+ D1L3Label->setWordWrap(false);
+ D1R3Label = new QLabel(Env3GroupBox);
+ D1R3Label->setObjectName(QString::fromUtf8("D1R3Label"));
+ D1R3Label->setGeometry(QRect(60, 160, 43, 22));
+ D1R3Label->setFrameShape(QFrame::Box);
+ D1R3Label->setFrameShadow(QFrame::Sunken);
+ D1R3Label->setWordWrap(false);
+ AR3Label = new QLabel(Env3GroupBox);
+ AR3Label->setObjectName(QString::fromUtf8("AR3Label"));
+ AR3Label->setGeometry(QRect(10, 160, 40, 22));
+ AR3Label->setFrameShape(QFrame::Box);
+ AR3Label->setFrameShadow(QFrame::Sunken);
+ AR3Label->setWordWrap(false);
+ AR3Slider = new QSlider(Env3GroupBox);
+ AR3Slider->setObjectName(QString::fromUtf8("AR3Slider"));
+ AR3Slider->setGeometry(QRect(20, 50, 20, 100));
+ AR3Slider->setCursor(QCursor(static_cast<Qt::CursorShape>(13)));
+ AR3Slider->setMaximum(31);
+ AR3Slider->setPageStep(1);
+ AR3Slider->setValue(0);
+ AR3Slider->setOrientation(Qt::Vertical);
+ AR3Slider->setTickPosition(QSlider::NoTicks);
+ D1R3Slider = new QSlider(Env3GroupBox);
+ D1R3Slider->setObjectName(QString::fromUtf8("D1R3Slider"));
+ D1R3Slider->setGeometry(QRect(70, 50, 20, 100));
+ D1R3Slider->setCursor(QCursor(static_cast<Qt::CursorShape>(13)));
+ D1R3Slider->setMaximum(31);
+ D1R3Slider->setPageStep(1);
+ D1R3Slider->setValue(0);
+ D1R3Slider->setOrientation(Qt::Vertical);
+ D1R3Slider->setTickPosition(QSlider::NoTicks);
+ D1L3Slider = new QSlider(Env3GroupBox);
+ D1L3Slider->setObjectName(QString::fromUtf8("D1L3Slider"));
+ D1L3Slider->setGeometry(QRect(120, 50, 20, 100));
+ D1L3Slider->setCursor(QCursor(static_cast<Qt::CursorShape>(13)));
+ D1L3Slider->setMaximum(15);
+ D1L3Slider->setPageStep(1);
+ D1L3Slider->setValue(0);
+ D1L3Slider->setOrientation(Qt::Vertical);
+ D1L3Slider->setTickPosition(QSlider::NoTicks);
+ D2R3Slider = new QSlider(Env3GroupBox);
+ D2R3Slider->setObjectName(QString::fromUtf8("D2R3Slider"));
+ D2R3Slider->setGeometry(QRect(170, 50, 20, 100));
+ D2R3Slider->setCursor(QCursor(static_cast<Qt::CursorShape>(13)));
+ D2R3Slider->setMaximum(31);
+ D2R3Slider->setPageStep(1);
+ D2R3Slider->setValue(0);
+ D2R3Slider->setOrientation(Qt::Vertical);
+ D2R3Slider->setTickPosition(QSlider::NoTicks);
+ RR3Slider = new QSlider(Env3GroupBox);
+ RR3Slider->setObjectName(QString::fromUtf8("RR3Slider"));
+ RR3Slider->setGeometry(QRect(220, 50, 20, 100));
+ RR3Slider->setCursor(QCursor(static_cast<Qt::CursorShape>(13)));
+ RR3Slider->setMinimum(0);
+ RR3Slider->setMaximum(15);
+ RR3Slider->setPageStep(1);
+ RR3Slider->setValue(0);
+ RR3Slider->setOrientation(Qt::Vertical);
+ RR3Slider->setTickPosition(QSlider::NoTicks);
+ RR3Slider->setTickInterval(0);
+ D1R3SpinBox = new QSpinBox(Env3GroupBox);
+ D1R3SpinBox->setObjectName(QString::fromUtf8("D1R3SpinBox"));
+ D1R3SpinBox->setGeometry(QRect(60, 20, 40, 21));
+ D1R3SpinBox->setFont(font2);
+ D1R3SpinBox->setMaximum(31);
+ D1L3SpinBox = new QSpinBox(Env3GroupBox);
+ D1L3SpinBox->setObjectName(QString::fromUtf8("D1L3SpinBox"));
+ D1L3SpinBox->setGeometry(QRect(110, 20, 40, 21));
+ D1L3SpinBox->setFont(font2);
+ D1L3SpinBox->setMaximum(15);
+ D2R3SpinBox = new QSpinBox(Env3GroupBox);
+ D2R3SpinBox->setObjectName(QString::fromUtf8("D2R3SpinBox"));
+ D2R3SpinBox->setGeometry(QRect(160, 20, 40, 21));
+ D2R3SpinBox->setFont(font2);
+ D2R3SpinBox->setMaximum(31);
+ RR3SpinBox = new QSpinBox(Env3GroupBox);
+ RR3SpinBox->setObjectName(QString::fromUtf8("RR3SpinBox"));
+ RR3SpinBox->setGeometry(QRect(210, 20, 40, 21));
+ RR3SpinBox->setFont(font2);
+ RR3SpinBox->setMaximum(15);
+ AR3SpinBox = new QSpinBox(Env3GroupBox);
+ AR3SpinBox->setObjectName(QString::fromUtf8("AR3SpinBox"));
+ AR3SpinBox->setGeometry(QRect(10, 20, 40, 21));
+ AR3SpinBox->setFont(font2);
+ AR3SpinBox->setMaximum(31);
+ Scaling3GroupBox = new Q3GroupBox(TabPage2);
+ Scaling3GroupBox->setObjectName(QString::fromUtf8("Scaling3GroupBox"));
+ Scaling3GroupBox->setGeometry(QRect(280, 0, 110, 190));
+ LS3Label = new QLabel(Scaling3GroupBox);
+ LS3Label->setObjectName(QString::fromUtf8("LS3Label"));
+ LS3Label->setGeometry(QRect(10, 160, 40, 22));
+ LS3Label->setFrameShape(QFrame::Box);
+ LS3Label->setFrameShadow(QFrame::Sunken);
+ LS3Label->setWordWrap(false);
+ RS3Label = new QLabel(Scaling3GroupBox);
+ RS3Label->setObjectName(QString::fromUtf8("RS3Label"));
+ RS3Label->setGeometry(QRect(60, 160, 40, 22));
+ RS3Label->setFrameShape(QFrame::Box);
+ RS3Label->setFrameShadow(QFrame::Sunken);
+ RS3Label->setWordWrap(false);
+ LS3Slider = new QSlider(Scaling3GroupBox);
+ LS3Slider->setObjectName(QString::fromUtf8("LS3Slider"));
+ LS3Slider->setGeometry(QRect(20, 50, 19, 100));
+ LS3Slider->setCursor(QCursor(static_cast<Qt::CursorShape>(13)));
+ LS3Slider->setMaximum(99);
+ LS3Slider->setPageStep(1);
+ LS3Slider->setValue(0);
+ LS3Slider->setOrientation(Qt::Vertical);
+ LS3Slider->setTickPosition(QSlider::NoTicks);
+ RS3Slider = new QSlider(Scaling3GroupBox);
+ RS3Slider->setObjectName(QString::fromUtf8("RS3Slider"));
+ RS3Slider->setGeometry(QRect(70, 50, 19, 100));
+ RS3Slider->setCursor(QCursor(static_cast<Qt::CursorShape>(13)));
+ RS3Slider->setMaximum(3);
+ RS3Slider->setPageStep(1);
+ RS3Slider->setValue(0);
+ RS3Slider->setOrientation(Qt::Vertical);
+ RS3Slider->setTickPosition(QSlider::NoTicks);
+ LS3SpinBox = new QSpinBox(Scaling3GroupBox);
+ LS3SpinBox->setObjectName(QString::fromUtf8("LS3SpinBox"));
+ LS3SpinBox->setGeometry(QRect(10, 20, 40, 21));
+ LS3SpinBox->setFont(font2);
+ LS3SpinBox->setMaximum(99);
+ RS3SpinBox = new QSpinBox(Scaling3GroupBox);
+ RS3SpinBox->setObjectName(QString::fromUtf8("RS3SpinBox"));
+ RS3SpinBox->setGeometry(QRect(60, 20, 40, 21));
+ RS3SpinBox->setFont(font2);
+ RS3SpinBox->setMaximum(3);
+ Vol3groupBox = new Q3GroupBox(TabPage2);
+ Vol3groupBox->setObjectName(QString::fromUtf8("Vol3groupBox"));
+ Vol3groupBox->setGeometry(QRect(400, 0, 60, 190));
+ Vol3Slider = new QSlider(Vol3groupBox);
+ Vol3Slider->setObjectName(QString::fromUtf8("Vol3Slider"));
+ Vol3Slider->setGeometry(QRect(20, 50, 19, 130));
+ Vol3Slider->setCursor(QCursor(static_cast<Qt::CursorShape>(13)));
+ Vol3Slider->setMaximum(99);
+ Vol3Slider->setPageStep(1);
+ Vol3Slider->setValue(0);
+ Vol3Slider->setOrientation(Qt::Vertical);
+ Vol3Slider->setTickPosition(QSlider::NoTicks);
+ Vol3SpinBox = new QSpinBox(Vol3groupBox);
+ Vol3SpinBox->setObjectName(QString::fromUtf8("Vol3SpinBox"));
+ Vol3SpinBox->setGeometry(QRect(10, 20, 40, 21));
+ Vol3SpinBox->setFont(font2);
+ Vol3SpinBox->setMaximum(99);
+ sensitivity3groupBox = new Q3GroupBox(TabPage2);
+ sensitivity3groupBox->setObjectName(QString::fromUtf8("sensitivity3groupBox"));
+ sensitivity3groupBox->setGeometry(QRect(10, 240, 260, 80));
+ EGS3Label = new QLabel(sensitivity3groupBox);
+ EGS3Label->setObjectName(QString::fromUtf8("EGS3Label"));
+ EGS3Label->setGeometry(QRect(80, 20, 40, 22));
+ EGS3Label->setFrameShape(QFrame::Box);
+ EGS3Label->setFrameShadow(QFrame::Sunken);
+ EGS3Label->setWordWrap(false);
+ KVS3Label = new QLabel(sensitivity3groupBox);
+ KVS3Label->setObjectName(QString::fromUtf8("KVS3Label"));
+ KVS3Label->setGeometry(QRect(10, 50, 40, 22));
+ KVS3Label->setFrameShape(QFrame::Box);
+ KVS3Label->setFrameShadow(QFrame::Sunken);
+ KVS3Label->setWordWrap(false);
+ AME3CheckBox = new QCheckBox(sensitivity3groupBox);
+ AME3CheckBox->setObjectName(QString::fromUtf8("AME3CheckBox"));
+ AME3CheckBox->setGeometry(QRect(10, 20, 60, 25));
+ AME3CheckBox->setFont(font);
+ AME3CheckBox->setCursor(QCursor(static_cast<Qt::CursorShape>(13)));
+ KVS3Slider = new QSlider(sensitivity3groupBox);
+ KVS3Slider->setObjectName(QString::fromUtf8("KVS3Slider"));
+ KVS3Slider->setGeometry(QRect(60, 50, 84, 19));
+ KVS3Slider->setCursor(QCursor(static_cast<Qt::CursorShape>(13)));
+ KVS3Slider->setAcceptDrops(false);
+ KVS3Slider->setMaximum(7);
+ KVS3Slider->setPageStep(1);
+ KVS3Slider->setOrientation(Qt::Horizontal);
+ KVS3Slider->setTickPosition(QSlider::NoTicks);
+ EBS3Slider = new QSlider(sensitivity3groupBox);
+ EBS3Slider->setObjectName(QString::fromUtf8("EBS3Slider"));
+ EBS3Slider->setGeometry(QRect(130, 20, 70, 20));
+ EBS3Slider->setCursor(QCursor(static_cast<Qt::CursorShape>(13)));
+ EBS3Slider->setMaximum(7);
+ EBS3Slider->setPageStep(1);
+ EBS3Slider->setOrientation(Qt::Horizontal);
+ EBS3Slider->setTickPosition(QSlider::NoTicks);
+ EBS3SpinBox = new QSpinBox(sensitivity3groupBox);
+ EBS3SpinBox->setObjectName(QString::fromUtf8("EBS3SpinBox"));
+ EBS3SpinBox->setGeometry(QRect(210, 20, 40, 21));
+ EBS3SpinBox->setFont(font2);
+ EBS3SpinBox->setMaximum(7);
+ KVS3SpinBox = new QSpinBox(sensitivity3groupBox);
+ KVS3SpinBox->setObjectName(QString::fromUtf8("KVS3SpinBox"));
+ KVS3SpinBox->setGeometry(QRect(160, 50, 40, 21));
+ KVS3SpinBox->setFont(font2);
+ KVS3SpinBox->setMaximum(7);
+ DetWaveEGS3GroupBox = new Q3GroupBox(TabPage2);
+ DetWaveEGS3GroupBox->setObjectName(QString::fromUtf8("DetWaveEGS3GroupBox"));
+ DetWaveEGS3GroupBox->setGeometry(QRect(280, 240, 180, 80));
+ WaveForm3ComboBox = new QComboBox(DetWaveEGS3GroupBox);
+ WaveForm3ComboBox->setObjectName(QString::fromUtf8("WaveForm3ComboBox"));
+ WaveForm3ComboBox->setGeometry(QRect(10, 50, 80, 20));
+ WaveForm3ComboBox->setCursor(QCursor(static_cast<Qt::CursorShape>(13)));
+ EGS3comboBox = new QComboBox(DetWaveEGS3GroupBox);
+ EGS3comboBox->setObjectName(QString::fromUtf8("EGS3comboBox"));
+ EGS3comboBox->setEnabled(false);
+ EGS3comboBox->setGeometry(QRect(100, 50, 70, 20));
+ EGS3comboBox->setCursor(QCursor(static_cast<Qt::CursorShape>(13)));
+ DET3Label = new QLabel(DetWaveEGS3GroupBox);
+ DET3Label->setObjectName(QString::fromUtf8("DET3Label"));
+ DET3Label->setGeometry(QRect(10, 20, 44, 24));
+ DET3Label->setFrameShape(QFrame::Box);
+ DET3Label->setFrameShadow(QFrame::Sunken);
+ DET3Label->setWordWrap(false);
+ DET3Slider = new QSlider(DetWaveEGS3GroupBox);
+ DET3Slider->setObjectName(QString::fromUtf8("DET3Slider"));
+ DET3Slider->setGeometry(QRect(60, 20, 70, 19));
+ DET3Slider->setCursor(QCursor(static_cast<Qt::CursorShape>(13)));
+ DET3Slider->setMinimum(-3);
+ DET3Slider->setMaximum(3);
+ DET3Slider->setPageStep(1);
+ DET3Slider->setValue(0);
+ DET3Slider->setOrientation(Qt::Horizontal);
+ DET3Slider->setTickPosition(QSlider::NoTicks);
+ DET3SpinBox = new QSpinBox(DetWaveEGS3GroupBox);
+ DET3SpinBox->setObjectName(QString::fromUtf8("DET3SpinBox"));
+ DET3SpinBox->setGeometry(QRect(140, 20, 30, 21));
+ DET3SpinBox->setFont(font2);
+ DET3SpinBox->setMaximum(3);
+ DET3SpinBox->setMinimum(-3);
+ deicsOnzeTabWidget->addTab(TabPage2, QString());
+ TabPage3 = new QWidget();
+ TabPage3->setObjectName(QString::fromUtf8("TabPage3"));
+ Frequency4groupBox = new Q3GroupBox(TabPage3);
+ Frequency4groupBox->setObjectName(QString::fromUtf8("Frequency4groupBox"));
+ Frequency4groupBox->setGeometry(QRect(10, 190, 450, 50));
+ CoarseRatio4Label = new QLabel(Frequency4groupBox);
+ CoarseRatio4Label->setObjectName(QString::fromUtf8("CoarseRatio4Label"));
+ CoarseRatio4Label->setGeometry(QRect(10, 20, 70, 22));
+ CoarseRatio4Label->setFrameShape(QFrame::Box);
+ CoarseRatio4Label->setFrameShadow(QFrame::Sunken);
+ CoarseRatio4Label->setWordWrap(false);
+ FineRatio4Label = new QLabel(Frequency4groupBox);
+ FineRatio4Label->setObjectName(QString::fromUtf8("FineRatio4Label"));
+ FineRatio4Label->setGeometry(QRect(140, 20, 50, 22));
+ FineRatio4Label->setFrameShape(QFrame::Box);
+ FineRatio4Label->setFrameShadow(QFrame::Sunken);
+ FineRatio4Label->setWordWrap(false);
+ Freq4Label = new QLabel(Frequency4groupBox);
+ Freq4Label->setObjectName(QString::fromUtf8("Freq4Label"));
+ Freq4Label->setGeometry(QRect(250, 20, 50, 22));
+ Freq4Label->setFrameShape(QFrame::Box);
+ Freq4Label->setFrameShadow(QFrame::Sunken);
+ Freq4Label->setWordWrap(false);
+ Fix4CheckBox = new QCheckBox(Frequency4groupBox);
+ Fix4CheckBox->setObjectName(QString::fromUtf8("Fix4CheckBox"));
+ Fix4CheckBox->setEnabled(true);
+ Fix4CheckBox->setGeometry(QRect(400, 20, 40, 25));
+ Fix4CheckBox->setFont(font);
+ Fix4CheckBox->setCursor(QCursor(static_cast<Qt::CursorShape>(13)));
+ FineRatio4SpinBox = new QSpinBox(Frequency4groupBox);
+ FineRatio4SpinBox->setObjectName(QString::fromUtf8("FineRatio4SpinBox"));
+ FineRatio4SpinBox->setGeometry(QRect(200, 20, 40, 21));
+ FineRatio4SpinBox->setFont(font2);
+ Freq4SpinBox = new QSpinBox(Frequency4groupBox);
+ Freq4SpinBox->setObjectName(QString::fromUtf8("Freq4SpinBox"));
+ Freq4SpinBox->setEnabled(false);
+ Freq4SpinBox->setGeometry(QRect(310, 20, 80, 21));
+ Freq4SpinBox->setFont(font2);
+ Freq4SpinBox->setMaximum(32000);
+ CoarseRatio4SpinBox = new QSpinBox(Frequency4groupBox);
+ CoarseRatio4SpinBox->setObjectName(QString::fromUtf8("CoarseRatio4SpinBox"));
+ CoarseRatio4SpinBox->setGeometry(QRect(90, 20, 40, 21));
+ CoarseRatio4SpinBox->setFont(font2);
+ Scaling4GroupBox = new Q3GroupBox(TabPage3);
+ Scaling4GroupBox->setObjectName(QString::fromUtf8("Scaling4GroupBox"));
+ Scaling4GroupBox->setGeometry(QRect(280, 0, 110, 190));
+ LS4Label = new QLabel(Scaling4GroupBox);
+ LS4Label->setObjectName(QString::fromUtf8("LS4Label"));
+ LS4Label->setGeometry(QRect(10, 160, 40, 22));
+ LS4Label->setFrameShape(QFrame::Box);
+ LS4Label->setFrameShadow(QFrame::Sunken);
+ LS4Label->setWordWrap(false);
+ RS4Label = new QLabel(Scaling4GroupBox);
+ RS4Label->setObjectName(QString::fromUtf8("RS4Label"));
+ RS4Label->setGeometry(QRect(60, 160, 40, 22));
+ RS4Label->setFrameShape(QFrame::Box);
+ RS4Label->setFrameShadow(QFrame::Sunken);
+ RS4Label->setWordWrap(false);
+ LS4Slider = new QSlider(Scaling4GroupBox);
+ LS4Slider->setObjectName(QString::fromUtf8("LS4Slider"));
+ LS4Slider->setGeometry(QRect(20, 50, 19, 100));
+ LS4Slider->setCursor(QCursor(static_cast<Qt::CursorShape>(13)));
+ LS4Slider->setMaximum(99);
+ LS4Slider->setPageStep(1);
+ LS4Slider->setValue(0);
+ LS4Slider->setOrientation(Qt::Vertical);
+ LS4Slider->setTickPosition(QSlider::NoTicks);
+ RS4Slider = new QSlider(Scaling4GroupBox);
+ RS4Slider->setObjectName(QString::fromUtf8("RS4Slider"));
+ RS4Slider->setGeometry(QRect(70, 50, 19, 100));
+ RS4Slider->setCursor(QCursor(static_cast<Qt::CursorShape>(13)));
+ RS4Slider->setMaximum(3);
+ RS4Slider->setPageStep(1);
+ RS4Slider->setValue(0);
+ RS4Slider->setOrientation(Qt::Vertical);
+ RS4Slider->setTickPosition(QSlider::NoTicks);
+ RS4SpinBox = new QSpinBox(Scaling4GroupBox);
+ RS4SpinBox->setObjectName(QString::fromUtf8("RS4SpinBox"));
+ RS4SpinBox->setGeometry(QRect(60, 20, 40, 21));
+ RS4SpinBox->setFont(font2);
+ RS4SpinBox->setMaximum(3);
+ LS4SpinBox = new QSpinBox(Scaling4GroupBox);
+ LS4SpinBox->setObjectName(QString::fromUtf8("LS4SpinBox"));
+ LS4SpinBox->setGeometry(QRect(10, 20, 40, 21));
+ LS4SpinBox->setFont(font2);
+ LS4SpinBox->setMaximum(99);
+ Env4GroupBox = new Q3GroupBox(TabPage3);
+ Env4GroupBox->setObjectName(QString::fromUtf8("Env4GroupBox"));
+ Env4GroupBox->setGeometry(QRect(10, 0, 260, 190));
+ AR4Slider = new QSlider(Env4GroupBox);
+ AR4Slider->setObjectName(QString::fromUtf8("AR4Slider"));
+ AR4Slider->setGeometry(QRect(20, 50, 20, 100));
+ AR4Slider->setCursor(QCursor(static_cast<Qt::CursorShape>(13)));
+ AR4Slider->setMaximum(31);
+ AR4Slider->setPageStep(1);
+ AR4Slider->setValue(0);
+ AR4Slider->setOrientation(Qt::Vertical);
+ AR4Slider->setTickPosition(QSlider::NoTicks);
+ AR4Label = new QLabel(Env4GroupBox);
+ AR4Label->setObjectName(QString::fromUtf8("AR4Label"));
+ AR4Label->setGeometry(QRect(10, 160, 40, 22));
+ AR4Label->setFrameShape(QFrame::Box);
+ AR4Label->setFrameShadow(QFrame::Sunken);
+ AR4Label->setWordWrap(false);
+ RR4Label = new QLabel(Env4GroupBox);
+ RR4Label->setObjectName(QString::fromUtf8("RR4Label"));
+ RR4Label->setGeometry(QRect(210, 160, 43, 22));
+ RR4Label->setFrameShape(QFrame::Box);
+ RR4Label->setFrameShadow(QFrame::Sunken);
+ RR4Label->setWordWrap(false);
+ D2R4Label = new QLabel(Env4GroupBox);
+ D2R4Label->setObjectName(QString::fromUtf8("D2R4Label"));
+ D2R4Label->setGeometry(QRect(160, 160, 43, 22));
+ D2R4Label->setFrameShape(QFrame::Box);
+ D2R4Label->setFrameShadow(QFrame::Sunken);
+ D2R4Label->setWordWrap(false);
+ D2R4Slider = new QSlider(Env4GroupBox);
+ D2R4Slider->setObjectName(QString::fromUtf8("D2R4Slider"));
+ D2R4Slider->setGeometry(QRect(170, 50, 20, 100));
+ D2R4Slider->setCursor(QCursor(static_cast<Qt::CursorShape>(13)));
+ D2R4Slider->setMaximum(31);
+ D2R4Slider->setPageStep(1);
+ D2R4Slider->setValue(0);
+ D2R4Slider->setOrientation(Qt::Vertical);
+ D2R4Slider->setTickPosition(QSlider::NoTicks);
+ D1L4Slider = new QSlider(Env4GroupBox);
+ D1L4Slider->setObjectName(QString::fromUtf8("D1L4Slider"));
+ D1L4Slider->setGeometry(QRect(120, 50, 20, 100));
+ D1L4Slider->setCursor(QCursor(static_cast<Qt::CursorShape>(13)));
+ D1L4Slider->setMaximum(15);
+ D1L4Slider->setPageStep(1);
+ D1L4Slider->setValue(0);
+ D1L4Slider->setOrientation(Qt::Vertical);
+ D1L4Slider->setTickPosition(QSlider::NoTicks);
+ D1L4Label = new QLabel(Env4GroupBox);
+ D1L4Label->setObjectName(QString::fromUtf8("D1L4Label"));
+ D1L4Label->setGeometry(QRect(110, 160, 43, 22));
+ D1L4Label->setFrameShape(QFrame::Box);
+ D1L4Label->setFrameShadow(QFrame::Sunken);
+ D1L4Label->setWordWrap(false);
+ D1R4Label = new QLabel(Env4GroupBox);
+ D1R4Label->setObjectName(QString::fromUtf8("D1R4Label"));
+ D1R4Label->setGeometry(QRect(60, 160, 43, 22));
+ D1R4Label->setFrameShape(QFrame::Box);
+ D1R4Label->setFrameShadow(QFrame::Sunken);
+ D1R4Label->setWordWrap(false);
+ D1R4Slider = new QSlider(Env4GroupBox);
+ D1R4Slider->setObjectName(QString::fromUtf8("D1R4Slider"));
+ D1R4Slider->setGeometry(QRect(70, 50, 20, 100));
+ D1R4Slider->setCursor(QCursor(static_cast<Qt::CursorShape>(13)));
+ D1R4Slider->setMaximum(31);
+ D1R4Slider->setPageStep(1);
+ D1R4Slider->setValue(0);
+ D1R4Slider->setOrientation(Qt::Vertical);
+ D1R4Slider->setTickPosition(QSlider::NoTicks);
+ RR4Slider = new QSlider(Env4GroupBox);
+ RR4Slider->setObjectName(QString::fromUtf8("RR4Slider"));
+ RR4Slider->setGeometry(QRect(220, 50, 20, 100));
+ RR4Slider->setCursor(QCursor(static_cast<Qt::CursorShape>(13)));
+ RR4Slider->setMinimum(0);
+ RR4Slider->setMaximum(15);
+ RR4Slider->setPageStep(1);
+ RR4Slider->setValue(0);
+ RR4Slider->setOrientation(Qt::Vertical);
+ RR4Slider->setTickPosition(QSlider::NoTicks);
+ RR4Slider->setTickInterval(0);
+ D1R4SpinBox = new QSpinBox(Env4GroupBox);
+ D1R4SpinBox->setObjectName(QString::fromUtf8("D1R4SpinBox"));
+ D1R4SpinBox->setGeometry(QRect(60, 20, 40, 21));
+ D1R4SpinBox->setFont(font2);
+ D1R4SpinBox->setMaximum(31);
+ D1L4SpinBox = new QSpinBox(Env4GroupBox);
+ D1L4SpinBox->setObjectName(QString::fromUtf8("D1L4SpinBox"));
+ D1L4SpinBox->setGeometry(QRect(110, 20, 40, 21));
+ D1L4SpinBox->setFont(font2);
+ D1L4SpinBox->setMaximum(15);
+ D2R4SpinBox = new QSpinBox(Env4GroupBox);
+ D2R4SpinBox->setObjectName(QString::fromUtf8("D2R4SpinBox"));
+ D2R4SpinBox->setGeometry(QRect(160, 20, 40, 21));
+ D2R4SpinBox->setFont(font2);
+ D2R4SpinBox->setMaximum(31);
+ RR4SpinBox = new QSpinBox(Env4GroupBox);
+ RR4SpinBox->setObjectName(QString::fromUtf8("RR4SpinBox"));
+ RR4SpinBox->setGeometry(QRect(210, 20, 40, 21));
+ RR4SpinBox->setFont(font2);
+ RR4SpinBox->setMaximum(15);
+ AR4SpinBox = new QSpinBox(Env4GroupBox);
+ AR4SpinBox->setObjectName(QString::fromUtf8("AR4SpinBox"));
+ AR4SpinBox->setGeometry(QRect(10, 20, 40, 21));
+ AR4SpinBox->setFont(font2);
+ AR4SpinBox->setMaximum(31);
+ Vol4groupBox = new Q3GroupBox(TabPage3);
+ Vol4groupBox->setObjectName(QString::fromUtf8("Vol4groupBox"));
+ Vol4groupBox->setGeometry(QRect(400, 0, 60, 190));
+ Vol4Slider = new QSlider(Vol4groupBox);
+ Vol4Slider->setObjectName(QString::fromUtf8("Vol4Slider"));
+ Vol4Slider->setGeometry(QRect(20, 50, 19, 130));
+ Vol4Slider->setCursor(QCursor(static_cast<Qt::CursorShape>(13)));
+ Vol4Slider->setMaximum(99);
+ Vol4Slider->setPageStep(1);
+ Vol4Slider->setValue(0);
+ Vol4Slider->setOrientation(Qt::Vertical);
+ Vol4Slider->setTickPosition(QSlider::NoTicks);
+ Vol4SpinBox = new QSpinBox(Vol4groupBox);
+ Vol4SpinBox->setObjectName(QString::fromUtf8("Vol4SpinBox"));
+ Vol4SpinBox->setGeometry(QRect(10, 20, 40, 21));
+ Vol4SpinBox->setFont(font2);
+ Vol4SpinBox->setMaximum(99);
+ sensitivity4groupBox = new Q3GroupBox(TabPage3);
+ sensitivity4groupBox->setObjectName(QString::fromUtf8("sensitivity4groupBox"));
+ sensitivity4groupBox->setGeometry(QRect(10, 240, 260, 80));
+ EGS4Label = new QLabel(sensitivity4groupBox);
+ EGS4Label->setObjectName(QString::fromUtf8("EGS4Label"));
+ EGS4Label->setGeometry(QRect(80, 20, 40, 22));
+ EGS4Label->setFrameShape(QFrame::Box);
+ EGS4Label->setFrameShadow(QFrame::Sunken);
+ EGS4Label->setWordWrap(false);
+ KVS4Label = new QLabel(sensitivity4groupBox);
+ KVS4Label->setObjectName(QString::fromUtf8("KVS4Label"));
+ KVS4Label->setGeometry(QRect(10, 50, 40, 22));
+ KVS4Label->setFrameShape(QFrame::Box);
+ KVS4Label->setFrameShadow(QFrame::Sunken);
+ KVS4Label->setWordWrap(false);
+ AME4CheckBox = new QCheckBox(sensitivity4groupBox);
+ AME4CheckBox->setObjectName(QString::fromUtf8("AME4CheckBox"));
+ AME4CheckBox->setGeometry(QRect(10, 20, 60, 25));
+ AME4CheckBox->setFont(font);
+ AME4CheckBox->setCursor(QCursor(static_cast<Qt::CursorShape>(13)));
+ KVS4Slider = new QSlider(sensitivity4groupBox);
+ KVS4Slider->setObjectName(QString::fromUtf8("KVS4Slider"));
+ KVS4Slider->setGeometry(QRect(60, 50, 84, 19));
+ KVS4Slider->setCursor(QCursor(static_cast<Qt::CursorShape>(13)));
+ KVS4Slider->setAcceptDrops(false);
+ KVS4Slider->setMaximum(7);
+ KVS4Slider->setPageStep(1);
+ KVS4Slider->setOrientation(Qt::Horizontal);
+ KVS4Slider->setTickPosition(QSlider::NoTicks);
+ EBS4Slider = new QSlider(sensitivity4groupBox);
+ EBS4Slider->setObjectName(QString::fromUtf8("EBS4Slider"));
+ EBS4Slider->setGeometry(QRect(130, 20, 70, 20));
+ EBS4Slider->setCursor(QCursor(static_cast<Qt::CursorShape>(13)));
+ EBS4Slider->setMaximum(7);
+ EBS4Slider->setPageStep(1);
+ EBS4Slider->setOrientation(Qt::Horizontal);
+ EBS4Slider->setTickPosition(QSlider::NoTicks);
+ KVS4SpinBox = new QSpinBox(sensitivity4groupBox);
+ KVS4SpinBox->setObjectName(QString::fromUtf8("KVS4SpinBox"));
+ KVS4SpinBox->setGeometry(QRect(160, 50, 40, 21));
+ KVS4SpinBox->setFont(font2);
+ KVS4SpinBox->setMaximum(7);
+ EBS4SpinBox = new QSpinBox(sensitivity4groupBox);
+ EBS4SpinBox->setObjectName(QString::fromUtf8("EBS4SpinBox"));
+ EBS4SpinBox->setGeometry(QRect(210, 20, 40, 21));
+ EBS4SpinBox->setFont(font2);
+ EBS4SpinBox->setMaximum(7);
+ DetWaveEGS4GroupBox = new Q3GroupBox(TabPage3);
+ DetWaveEGS4GroupBox->setObjectName(QString::fromUtf8("DetWaveEGS4GroupBox"));
+ DetWaveEGS4GroupBox->setGeometry(QRect(280, 240, 180, 80));
+ DET4Slider = new QSlider(DetWaveEGS4GroupBox);
+ DET4Slider->setObjectName(QString::fromUtf8("DET4Slider"));
+ DET4Slider->setGeometry(QRect(60, 20, 70, 19));
+ DET4Slider->setCursor(QCursor(static_cast<Qt::CursorShape>(13)));
+ DET4Slider->setMinimum(-3);
+ DET4Slider->setMaximum(3);
+ DET4Slider->setPageStep(1);
+ DET4Slider->setValue(0);
+ DET4Slider->setOrientation(Qt::Horizontal);
+ DET4Slider->setTickPosition(QSlider::NoTicks);
+ DET4Label = new QLabel(DetWaveEGS4GroupBox);
+ DET4Label->setObjectName(QString::fromUtf8("DET4Label"));
+ DET4Label->setGeometry(QRect(10, 20, 44, 24));
+ DET4Label->setFrameShape(QFrame::Box);
+ DET4Label->setFrameShadow(QFrame::Sunken);
+ DET4Label->setWordWrap(false);
+ WaveForm4ComboBox = new QComboBox(DetWaveEGS4GroupBox);
+ WaveForm4ComboBox->setObjectName(QString::fromUtf8("WaveForm4ComboBox"));
+ WaveForm4ComboBox->setGeometry(QRect(10, 50, 80, 20));
+ WaveForm4ComboBox->setCursor(QCursor(static_cast<Qt::CursorShape>(13)));
+ EGS4comboBox = new QComboBox(DetWaveEGS4GroupBox);
+ EGS4comboBox->setObjectName(QString::fromUtf8("EGS4comboBox"));
+ EGS4comboBox->setEnabled(false);
+ EGS4comboBox->setGeometry(QRect(100, 50, 70, 20));
+ EGS4comboBox->setCursor(QCursor(static_cast<Qt::CursorShape>(13)));
+ DET4SpinBox = new QSpinBox(DetWaveEGS4GroupBox);
+ DET4SpinBox->setObjectName(QString::fromUtf8("DET4SpinBox"));
+ DET4SpinBox->setGeometry(QRect(140, 20, 30, 21));
+ DET4SpinBox->setFont(font2);
+ DET4SpinBox->setMaximum(3);
+ DET4SpinBox->setMinimum(-3);
+ deicsOnzeTabWidget->addTab(TabPage3, QString());
+ QWidget::setTabOrder(deicsOnzeTabWidget, categoryListView);
+ QWidget::setTabOrder(categoryListView, nameLineEdit);
+ QWidget::setTabOrder(nameLineEdit, masterVolSlider);
+ QWidget::setTabOrder(masterVolSlider, feedbackSlider);
+ QWidget::setTabOrder(feedbackSlider, polyMonoComboBox);
+ QWidget::setTabOrder(polyMonoComboBox, LFOSyncCheckBox);
+ QWidget::setTabOrder(LFOSyncCheckBox, PModSensSlider);
+ QWidget::setTabOrder(PModSensSlider, LFOWaveComboBox);
+ QWidget::setTabOrder(LFOWaveComboBox, AModSensSlider);
+ QWidget::setTabOrder(AModSensSlider, PModDepthSlider);
+ QWidget::setTabOrder(PModDepthSlider, AModDepthSlider);
+ QWidget::setTabOrder(AModDepthSlider, LFOSpeedSlider);
+ QWidget::setTabOrder(LFOSpeedSlider, LFODelaySlider);
+ QWidget::setTabOrder(LFODelaySlider, transposeSlider);
+ QWidget::setTabOrder(transposeSlider, globalDetuneSlider);
+ QWidget::setTabOrder(globalDetuneSlider, algorithmComboBox);
+ QWidget::setTabOrder(algorithmComboBox, AR1Slider);
+ QWidget::setTabOrder(AR1Slider, D1R1Slider);
+ QWidget::setTabOrder(D1R1Slider, D1L1Slider);
+ QWidget::setTabOrder(D1L1Slider, D2R1Slider);
+ QWidget::setTabOrder(D2R1Slider, RR1Slider);
+ QWidget::setTabOrder(RR1Slider, LS1Slider);
+ QWidget::setTabOrder(LS1Slider, RS1Slider);
+ QWidget::setTabOrder(RS1Slider, Vol1Slider);
+ QWidget::setTabOrder(Vol1Slider, Fix1CheckBox);
+ QWidget::setTabOrder(Fix1CheckBox, AME1CheckBox);
+ QWidget::setTabOrder(AME1CheckBox, EBS1Slider);
+ QWidget::setTabOrder(EBS1Slider, DET1Slider);
+ QWidget::setTabOrder(DET1Slider, KVS1Slider);
+ QWidget::setTabOrder(KVS1Slider, WaveForm1ComboBox);
+ QWidget::setTabOrder(WaveForm1ComboBox, EGQ1ComboBox);
+ QWidget::setTabOrder(EGQ1ComboBox, AR2Slider);
+ QWidget::setTabOrder(AR2Slider, D1R2Slider);
+ QWidget::setTabOrder(D1R2Slider, D1L2Slider);
+ QWidget::setTabOrder(D1L2Slider, D2R2Slider);
+ QWidget::setTabOrder(D2R2Slider, RR2Slider);
+ QWidget::setTabOrder(RR2Slider, LS2Slider);
+ QWidget::setTabOrder(LS2Slider, RS2Slider);
+ QWidget::setTabOrder(RS2Slider, Vol2Slider);
+ QWidget::setTabOrder(Vol2Slider, AME2CheckBox);
+ QWidget::setTabOrder(AME2CheckBox, EBS2Slider);
+ QWidget::setTabOrder(EBS2Slider, DET2Slider);
+ QWidget::setTabOrder(DET2Slider, KVS2Slider);
+ QWidget::setTabOrder(KVS2Slider, WaveForm2ComboBox);
+ QWidget::setTabOrder(WaveForm2ComboBox, EGS2comboBox);
+ QWidget::setTabOrder(EGS2comboBox, AR3Slider);
+ QWidget::setTabOrder(AR3Slider, D1R3Slider);
+ QWidget::setTabOrder(D1R3Slider, D1L3Slider);
+ QWidget::setTabOrder(D1L3Slider, D2R3Slider);
+ QWidget::setTabOrder(D2R3Slider, RR3Slider);
+ QWidget::setTabOrder(RR3Slider, LS3Slider);
+ QWidget::setTabOrder(LS3Slider, RS3Slider);
+ QWidget::setTabOrder(RS3Slider, Vol3Slider);
+ QWidget::setTabOrder(Vol3Slider, AME3CheckBox);
+ QWidget::setTabOrder(AME3CheckBox, EBS3Slider);
+ QWidget::setTabOrder(EBS3Slider, DET3Slider);
+ QWidget::setTabOrder(DET3Slider, KVS3Slider);
+ QWidget::setTabOrder(KVS3Slider, WaveForm3ComboBox);
+ QWidget::setTabOrder(WaveForm3ComboBox, EGS3comboBox);
+ QWidget::setTabOrder(EGS3comboBox, AR4Slider);
+ QWidget::setTabOrder(AR4Slider, D1R4Slider);
+ QWidget::setTabOrder(D1R4Slider, D1L4Slider);
+ QWidget::setTabOrder(D1L4Slider, D2R4Slider);
+ QWidget::setTabOrder(D2R4Slider, RR4Slider);
+ QWidget::setTabOrder(RR4Slider, LS4Slider);
+ QWidget::setTabOrder(LS4Slider, RS4Slider);
+ QWidget::setTabOrder(RS4Slider, Vol4Slider);
+ QWidget::setTabOrder(Vol4Slider, AME4CheckBox);
+ QWidget::setTabOrder(AME4CheckBox, EBS4Slider);
+ QWidget::setTabOrder(EBS4Slider, DET4Slider);
+ QWidget::setTabOrder(DET4Slider, KVS4Slider);
+ QWidget::setTabOrder(KVS4Slider, WaveForm4ComboBox);
+ QWidget::setTabOrder(WaveForm4ComboBox, EGS4comboBox);
+
+ retranslateUi(DeicsOnzeGuiBase);
+ QObject::connect(Fix1CheckBox, SIGNAL(toggled(bool)), Freq1SpinBox, SLOT(setEnabled(bool)));
+ QObject::connect(Fix1CheckBox, SIGNAL(toggled(bool)), FineRatio1SpinBox, SLOT(setDisabled(bool)));
+ QObject::connect(Fix1CheckBox, SIGNAL(toggled(bool)), CoarseRatio1SpinBox, SLOT(setDisabled(bool)));
+ QObject::connect(Fix2CheckBox, SIGNAL(toggled(bool)), FineRatio2SpinBox, SLOT(setDisabled(bool)));
+ QObject::connect(Fix2CheckBox, SIGNAL(toggled(bool)), CoarseRatio2SpinBox, SLOT(setDisabled(bool)));
+ QObject::connect(Fix3CheckBox, SIGNAL(toggled(bool)), FineRatio3SpinBox, SLOT(setDisabled(bool)));
+ QObject::connect(Fix3CheckBox, SIGNAL(toggled(bool)), CoarseRatio3SpinBox, SLOT(setDisabled(bool)));
+ QObject::connect(Fix4CheckBox, SIGNAL(toggled(bool)), FineRatio4SpinBox, SLOT(setDisabled(bool)));
+ QObject::connect(Fix4CheckBox, SIGNAL(toggled(bool)), CoarseRatio4SpinBox, SLOT(setDisabled(bool)));
+ QObject::connect(Fix2CheckBox, SIGNAL(toggled(bool)), Freq2SpinBox, SLOT(setEnabled(bool)));
+ QObject::connect(Fix3CheckBox, SIGNAL(toggled(bool)), Freq3SpinBox, SLOT(setEnabled(bool)));
+ QObject::connect(Fix4CheckBox, SIGNAL(toggled(bool)), Freq4SpinBox, SLOT(setEnabled(bool)));
+ QObject::connect(AR4Slider, SIGNAL(valueChanged(int)), AR4SpinBox, SLOT(setValue(int)));
+ QObject::connect(AR4SpinBox, SIGNAL(valueChanged(int)), AR4Slider, SLOT(setValue(int)));
+ QObject::connect(D1R4Slider, SIGNAL(valueChanged(int)), D1R4SpinBox, SLOT(setValue(int)));
+ QObject::connect(D1R4SpinBox, SIGNAL(valueChanged(int)), D1R4Slider, SLOT(setValue(int)));
+ QObject::connect(D1L4Slider, SIGNAL(valueChanged(int)), D1L4SpinBox, SLOT(setValue(int)));
+ QObject::connect(D1L4SpinBox, SIGNAL(valueChanged(int)), D1L4Slider, SLOT(setValue(int)));
+ QObject::connect(D2R4Slider, SIGNAL(valueChanged(int)), D2R4SpinBox, SLOT(setValue(int)));
+ QObject::connect(RR4Slider, SIGNAL(valueChanged(int)), RR4SpinBox, SLOT(setValue(int)));
+ QObject::connect(RR4SpinBox, SIGNAL(valueChanged(int)), RR4Slider, SLOT(setValue(int)));
+ QObject::connect(D2R4SpinBox, SIGNAL(valueChanged(int)), D2R4Slider, SLOT(setValue(int)));
+ QObject::connect(AR3SpinBox, SIGNAL(valueChanged(int)), AR3Slider, SLOT(setValue(int)));
+ QObject::connect(AR3Slider, SIGNAL(valueChanged(int)), AR3SpinBox, SLOT(setValue(int)));
+ QObject::connect(D1R3Slider, SIGNAL(valueChanged(int)), D1R3SpinBox, SLOT(setValue(int)));
+ QObject::connect(D1R3SpinBox, SIGNAL(valueChanged(int)), D1R3Slider, SLOT(setValue(int)));
+ QObject::connect(D1L3Slider, SIGNAL(valueChanged(int)), D1L3SpinBox, SLOT(setValue(int)));
+ QObject::connect(D1L3SpinBox, SIGNAL(valueChanged(int)), D1L3Slider, SLOT(setValue(int)));
+ QObject::connect(D2R3Slider, SIGNAL(valueChanged(int)), D2R3SpinBox, SLOT(setValue(int)));
+ QObject::connect(D2R3SpinBox, SIGNAL(valueChanged(int)), D2R3Slider, SLOT(setValue(int)));
+ QObject::connect(RR3Slider, SIGNAL(valueChanged(int)), RR3SpinBox, SLOT(setValue(int)));
+ QObject::connect(RR3SpinBox, SIGNAL(valueChanged(int)), RR3Slider, SLOT(setValue(int)));
+ QObject::connect(AR2Slider, SIGNAL(valueChanged(int)), AR2SpinBox, SLOT(setValue(int)));
+ QObject::connect(AR2SpinBox, SIGNAL(valueChanged(int)), AR2Slider, SLOT(setValue(int)));
+ QObject::connect(D1R2Slider, SIGNAL(valueChanged(int)), D1R2SpinBox, SLOT(setValue(int)));
+ QObject::connect(D1R2SpinBox, SIGNAL(valueChanged(int)), D1R2Slider, SLOT(setValue(int)));
+ QObject::connect(D1L2Slider, SIGNAL(valueChanged(int)), D1L2SpinBox, SLOT(setValue(int)));
+ QObject::connect(D1L2SpinBox, SIGNAL(valueChanged(int)), D1L2Slider, SLOT(setValue(int)));
+ QObject::connect(D2R2Slider, SIGNAL(valueChanged(int)), D2R2SpinBox, SLOT(setValue(int)));
+ QObject::connect(D2R2SpinBox, SIGNAL(valueChanged(int)), D2R2Slider, SLOT(setValue(int)));
+ QObject::connect(RR2Slider, SIGNAL(valueChanged(int)), RR2SpinBox, SLOT(setValue(int)));
+ QObject::connect(RR2SpinBox, SIGNAL(valueChanged(int)), RR2Slider, SLOT(setValue(int)));
+ QObject::connect(AR1Slider, SIGNAL(valueChanged(int)), AR1SpinBox, SLOT(setValue(int)));
+ QObject::connect(AR1SpinBox, SIGNAL(valueChanged(int)), AR1Slider, SLOT(setValue(int)));
+ QObject::connect(D1R1Slider, SIGNAL(valueChanged(int)), D1R1SpinBox, SLOT(setValue(int)));
+ QObject::connect(D1R1SpinBox, SIGNAL(valueChanged(int)), D1R1Slider, SLOT(setValue(int)));
+ QObject::connect(D1L1Slider, SIGNAL(valueChanged(int)), D1L1SpinBox, SLOT(setValue(int)));
+ QObject::connect(D1L1SpinBox, SIGNAL(valueChanged(int)), D1L1Slider, SLOT(setValue(int)));
+ QObject::connect(D2R1Slider, SIGNAL(valueChanged(int)), D2R1SpinBox, SLOT(setValue(int)));
+ QObject::connect(D2R1SpinBox, SIGNAL(valueChanged(int)), D2R1Slider, SLOT(setValue(int)));
+ QObject::connect(RR1Slider, SIGNAL(valueChanged(int)), RR1SpinBox, SLOT(setValue(int)));
+ QObject::connect(RR1SpinBox, SIGNAL(valueChanged(int)), RR1Slider, SLOT(setValue(int)));
+ QObject::connect(LS1Slider, SIGNAL(valueChanged(int)), LS1SpinBox, SLOT(setValue(int)));
+ QObject::connect(LS1SpinBox, SIGNAL(valueChanged(int)), LS1Slider, SLOT(setValue(int)));
+ QObject::connect(RS1Slider, SIGNAL(valueChanged(int)), RS1SpinBox, SLOT(setValue(int)));
+ QObject::connect(RS1SpinBox, SIGNAL(valueChanged(int)), RS1Slider, SLOT(setValue(int)));
+ QObject::connect(LS2Slider, SIGNAL(valueChanged(int)), LS2SpinBox, SLOT(setValue(int)));
+ QObject::connect(LS2SpinBox, SIGNAL(valueChanged(int)), LS2Slider, SLOT(setValue(int)));
+ QObject::connect(RS2Slider, SIGNAL(valueChanged(int)), RS2SpinBox, SLOT(setValue(int)));
+ QObject::connect(RS2SpinBox, SIGNAL(valueChanged(int)), RS2Slider, SLOT(setValue(int)));
+ QObject::connect(LS3Slider, SIGNAL(valueChanged(int)), LS3SpinBox, SLOT(setValue(int)));
+ QObject::connect(LS3SpinBox, SIGNAL(valueChanged(int)), LS3Slider, SLOT(setValue(int)));
+ QObject::connect(RS3Slider, SIGNAL(valueChanged(int)), RS3SpinBox, SLOT(setValue(int)));
+ QObject::connect(RS3SpinBox, SIGNAL(valueChanged(int)), RS3Slider, SLOT(setValue(int)));
+ QObject::connect(LS4Slider, SIGNAL(valueChanged(int)), LS4SpinBox, SLOT(setValue(int)));
+ QObject::connect(LS4SpinBox, SIGNAL(valueChanged(int)), LS4Slider, SLOT(setValue(int)));
+ QObject::connect(RS4Slider, SIGNAL(valueChanged(int)), RS4SpinBox, SLOT(setValue(int)));
+ QObject::connect(RS4SpinBox, SIGNAL(valueChanged(int)), RS4Slider, SLOT(setValue(int)));
+ QObject::connect(Vol4Slider, SIGNAL(valueChanged(int)), Vol4SpinBox, SLOT(setValue(int)));
+ QObject::connect(Vol4SpinBox, SIGNAL(valueChanged(int)), Vol4Slider, SLOT(setValue(int)));
+ QObject::connect(Vol3Slider, SIGNAL(valueChanged(int)), Vol3SpinBox, SLOT(setValue(int)));
+ QObject::connect(Vol3SpinBox, SIGNAL(valueChanged(int)), Vol3Slider, SLOT(setValue(int)));
+ QObject::connect(Vol2Slider, SIGNAL(valueChanged(int)), Vol2SpinBox, SLOT(setValue(int)));
+ QObject::connect(Vol2SpinBox, SIGNAL(valueChanged(int)), Vol2Slider, SLOT(setValue(int)));
+ QObject::connect(Vol1Slider, SIGNAL(valueChanged(int)), Vol1SpinBox, SLOT(setValue(int)));
+ QObject::connect(Vol1SpinBox, SIGNAL(valueChanged(int)), Vol1Slider, SLOT(setValue(int)));
+ QObject::connect(EBS1Slider, SIGNAL(valueChanged(int)), EBS1SpinBox, SLOT(setValue(int)));
+ QObject::connect(EBS1SpinBox, SIGNAL(valueChanged(int)), EBS1Slider, SLOT(setValue(int)));
+ QObject::connect(KVS1Slider, SIGNAL(valueChanged(int)), KVS1SpinBox, SLOT(setValue(int)));
+ QObject::connect(KVS1SpinBox, SIGNAL(valueChanged(int)), KVS1Slider, SLOT(setValue(int)));
+ QObject::connect(EBS2Slider, SIGNAL(valueChanged(int)), EBS2SpinBox, SLOT(setValue(int)));
+ QObject::connect(EBS2SpinBox, SIGNAL(valueChanged(int)), EBS2Slider, SLOT(setValue(int)));
+ QObject::connect(KVS2Slider, SIGNAL(valueChanged(int)), KVS2SpinBox, SLOT(setValue(int)));
+ QObject::connect(KVS2SpinBox, SIGNAL(valueChanged(int)), KVS2Slider, SLOT(setValue(int)));
+ QObject::connect(EBS3Slider, SIGNAL(valueChanged(int)), EBS3SpinBox, SLOT(setValue(int)));
+ QObject::connect(EBS3SpinBox, SIGNAL(valueChanged(int)), EBS3Slider, SLOT(setValue(int)));
+ QObject::connect(KVS3Slider, SIGNAL(valueChanged(int)), KVS3SpinBox, SLOT(setValue(int)));
+ QObject::connect(KVS3SpinBox, SIGNAL(valueChanged(int)), KVS3Slider, SLOT(setValue(int)));
+ QObject::connect(EBS4Slider, SIGNAL(valueChanged(int)), EBS4SpinBox, SLOT(setValue(int)));
+ QObject::connect(EBS4SpinBox, SIGNAL(valueChanged(int)), EBS4Slider, SLOT(setValue(int)));
+ QObject::connect(KVS4Slider, SIGNAL(valueChanged(int)), KVS4SpinBox, SLOT(setValue(int)));
+ QObject::connect(KVS4SpinBox, SIGNAL(valueChanged(int)), KVS4Slider, SLOT(setValue(int)));
+ QObject::connect(DET4Slider, SIGNAL(valueChanged(int)), DET4SpinBox, SLOT(setValue(int)));
+ QObject::connect(DET4SpinBox, SIGNAL(valueChanged(int)), DET4Slider, SLOT(setValue(int)));
+ QObject::connect(DET3Slider, SIGNAL(valueChanged(int)), DET3SpinBox, SLOT(setValue(int)));
+ QObject::connect(DET3SpinBox, SIGNAL(valueChanged(int)), DET3Slider, SLOT(setValue(int)));
+ QObject::connect(DET2Slider, SIGNAL(valueChanged(int)), DET2SpinBox, SLOT(setValue(int)));
+ QObject::connect(DET2SpinBox, SIGNAL(valueChanged(int)), DET2Slider, SLOT(setValue(int)));
+ QObject::connect(DET1Slider, SIGNAL(valueChanged(int)), DET1SpinBox, SLOT(setValue(int)));
+ QObject::connect(DET1SpinBox, SIGNAL(valueChanged(int)), DET1Slider, SLOT(setValue(int)));
+ QObject::connect(masterVolSlider, SIGNAL(valueChanged(int)), MasterVolumeSpinBox, SLOT(setValue(int)));
+ QObject::connect(MasterVolumeSpinBox, SIGNAL(valueChanged(int)), masterVolSlider, SLOT(setValue(int)));
+ QObject::connect(feedbackSlider, SIGNAL(valueChanged(int)), feedbackSpinBox, SLOT(setValue(int)));
+ QObject::connect(feedbackSpinBox, SIGNAL(valueChanged(int)), feedbackSlider, SLOT(setValue(int)));
+ QObject::connect(PitchBendRangeSlider, SIGNAL(valueChanged(int)), pitchBendRangeSpinBox, SLOT(setValue(int)));
+ QObject::connect(pitchBendRangeSpinBox, SIGNAL(valueChanged(int)), PitchBendRangeSlider, SLOT(setValue(int)));
+ QObject::connect(PModSensSlider, SIGNAL(valueChanged(int)), PMSSpinBox, SLOT(setValue(int)));
+ QObject::connect(PMSSpinBox, SIGNAL(valueChanged(int)), PModSensSlider, SLOT(setValue(int)));
+ QObject::connect(AModSensSlider, SIGNAL(valueChanged(int)), AMSSpinBox, SLOT(setValue(int)));
+ QObject::connect(AMSSpinBox, SIGNAL(valueChanged(int)), AModSensSlider, SLOT(setValue(int)));
+ QObject::connect(PModDepthSlider, SIGNAL(valueChanged(int)), PModDepthSpinBox, SLOT(setValue(int)));
+ QObject::connect(PModDepthSpinBox, SIGNAL(valueChanged(int)), PModDepthSlider, SLOT(setValue(int)));
+ QObject::connect(AModDepthSlider, SIGNAL(valueChanged(int)), AModDepthSpinBox, SLOT(setValue(int)));
+ QObject::connect(AModDepthSpinBox, SIGNAL(valueChanged(int)), AModDepthSlider, SLOT(setValue(int)));
+ QObject::connect(LFOSpeedSlider, SIGNAL(valueChanged(int)), LFOSpeedSpinBox, SLOT(setValue(int)));
+ QObject::connect(LFOSpeedSpinBox, SIGNAL(valueChanged(int)), LFOSpeedSlider, SLOT(setValue(int)));
+ QObject::connect(LFODelaySlider, SIGNAL(valueChanged(int)), LFODelaySpinBox, SLOT(setValue(int)));
+ QObject::connect(LFODelaySpinBox, SIGNAL(valueChanged(int)), LFODelaySlider, SLOT(setValue(int)));
+ QObject::connect(transposeSlider, SIGNAL(valueChanged(int)), transposeSpinBox, SLOT(setValue(int)));
+ QObject::connect(transposeSpinBox, SIGNAL(valueChanged(int)), transposeSlider, SLOT(setValue(int)));
+ QObject::connect(globalDetuneSlider, SIGNAL(valueChanged(int)), globalDetuneSpinBox, SLOT(setValue(int)));
+ QObject::connect(globalDetuneSpinBox, SIGNAL(valueChanged(int)), globalDetuneSlider, SLOT(setValue(int)));
+
+ QMetaObject::connectSlotsByName(DeicsOnzeGuiBase);
+ } // setupUi
+
+ void retranslateUi(QDialog *DeicsOnzeGuiBase)
+ {
+ DeicsOnzeGuiBase->setWindowTitle(QApplication::translate("DeicsOnzeGuiBase", "DeicsOnze", 0, QApplication::UnicodeUTF8));
+#ifndef QT_NO_TOOLTIP
+ deicsOnzeTabWidget->setProperty("toolTip", QVariant(QString()));
+#endif // QT_NO_TOOLTIP
+ loadPushButton->setText(QApplication::translate("DeicsOnzeGuiBase", "Load", 0, QApplication::UnicodeUTF8));
+ savePushButton->setText(QApplication::translate("DeicsOnzeGuiBase", "Save", 0, QApplication::UnicodeUTF8));
+ nameGroupBox->setTitle(QApplication::translate("DeicsOnzeGuiBase", "Preset Name", 0, QApplication::UnicodeUTF8));
+ nameLineEdit->setText(QApplication::translate("DeicsOnzeGuiBase", "INIT VOICE", 0, QApplication::UnicodeUTF8));
+ subcategoryGroupBox->setTitle(QApplication::translate("DeicsOnzeGuiBase", "Subcategory", 0, QApplication::UnicodeUTF8));
+ subcategoryLineEdit->setText(QApplication::translate("DeicsOnzeGuiBase", "NONE", 0, QApplication::UnicodeUTF8));
+ categoryGroupBox->setTitle(QApplication::translate("DeicsOnzeGuiBase", "Category", 0, QApplication::UnicodeUTF8));
+ categoryLineEdit->setText(QApplication::translate("DeicsOnzeGuiBase", "NONE", 0, QApplication::UnicodeUTF8));
+ deletePushButton->setText(QApplication::translate("DeicsOnzeGuiBase", "Delete", 0, QApplication::UnicodeUTF8));
+ categoryListView->header()->setLabel(0, QApplication::translate("DeicsOnzeGuiBase", "Category", 0, QApplication::UnicodeUTF8));
+ subcategoryListView->header()->setLabel(0, QApplication::translate("DeicsOnzeGuiBase", "Subcategory", 0, QApplication::UnicodeUTF8));
+ presetsListView->header()->setLabel(0, QApplication::translate("DeicsOnzeGuiBase", "Preset", 0, QApplication::UnicodeUTF8));
+ newPushButton->setText(QApplication::translate("DeicsOnzeGuiBase", "New", 0, QApplication::UnicodeUTF8));
+ bankGroupBox->setTitle(QApplication::translate("DeicsOnzeGuiBase", "Bank", 0, QApplication::UnicodeUTF8));
+#ifndef QT_NO_TOOLTIP
+ bankSpinBox->setProperty("toolTip", QVariant(QApplication::translate("DeicsOnzeGuiBase", "Bank numerous", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_TOOLTIP
+ progGroupBox->setTitle(QApplication::translate("DeicsOnzeGuiBase", "Prog", 0, QApplication::UnicodeUTF8));
+#ifndef QT_NO_TOOLTIP
+ progSpinBox->setProperty("toolTip", QVariant(QApplication::translate("DeicsOnzeGuiBase", "Program numerous", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_TOOLTIP
+ presentTextLAbel->setText(QApplication::translate("DeicsOnzeGuiBase", "DeicsOnze v0.2.2 Copyright (c) 2004 Nil Geisweiller under GPL licence", 0, QApplication::UnicodeUTF8));
+ deicsOnzeTabWidget->setTabText(deicsOnzeTabWidget->indexOf(TabPage), QApplication::translate("DeicsOnzeGuiBase", "&Presets", 0, QApplication::UnicodeUTF8));
+ masterVolGroupBox->setTitle(QApplication::translate("DeicsOnzeGuiBase", "Master Volume", 0, QApplication::UnicodeUTF8));
+#ifndef QT_NO_TOOLTIP
+ masterVolSlider->setProperty("toolTip", QVariant(QApplication::translate("DeicsOnzeGuiBase", "Master Volume", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_TOOLTIP
+#ifndef QT_NO_TOOLTIP
+ MasterVolumeSpinBox->setProperty("toolTip", QVariant(QApplication::translate("DeicsOnzeGuiBase", "Master volume", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_TOOLTIP
+ FeedbackGroupBox->setTitle(QApplication::translate("DeicsOnzeGuiBase", "feedback", 0, QApplication::UnicodeUTF8));
+#ifndef QT_NO_TOOLTIP
+ feedbackSpinBox->setProperty("toolTip", QVariant(QApplication::translate("DeicsOnzeGuiBase", "Coarse Ratio", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_TOOLTIP
+#ifndef QT_NO_TOOLTIP
+ feedbackSlider->setProperty("toolTip", QVariant(QApplication::translate("DeicsOnzeGuiBase", "Feedback of Op 4", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_TOOLTIP
+ functionGroupBox->setTitle(QApplication::translate("DeicsOnzeGuiBase", "Function", 0, QApplication::UnicodeUTF8));
+ polyMonoComboBox->clear();
+ polyMonoComboBox->insertItems(0, QStringList()
+ << QApplication::translate("DeicsOnzeGuiBase", "POLY", 0, QApplication::UnicodeUTF8)
+ << QApplication::translate("DeicsOnzeGuiBase", "MONO", 0, QApplication::UnicodeUTF8)
+ );
+ PitchBendRangeLabel->setText(QApplication::translate("DeicsOnzeGuiBase", "PBR", 0, QApplication::UnicodeUTF8));
+#ifndef QT_NO_TOOLTIP
+ PitchBendRangeSlider->setProperty("toolTip", QVariant(QApplication::translate("DeicsOnzeGuiBase", "Pitch Bend Range", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_TOOLTIP
+#ifndef QT_NO_TOOLTIP
+ pitchBendRangeSpinBox->setProperty("toolTip", QVariant(QApplication::translate("DeicsOnzeGuiBase", "Coarse Ratio", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_TOOLTIP
+ LFOGroupBox->setTitle(QApplication::translate("DeicsOnzeGuiBase", "LFO", 0, QApplication::UnicodeUTF8));
+ PModSensLabel->setText(QApplication::translate("DeicsOnzeGuiBase", "PMS", 0, QApplication::UnicodeUTF8));
+ PModDepthLabel->setText(QApplication::translate("DeicsOnzeGuiBase", "PMD", 0, QApplication::UnicodeUTF8));
+ AModDepthLabel->setText(QApplication::translate("DeicsOnzeGuiBase", "AMD", 0, QApplication::UnicodeUTF8));
+ LFOSpeedLabel->setText(QApplication::translate("DeicsOnzeGuiBase", "Speed", 0, QApplication::UnicodeUTF8));
+ LFODelayLabel->setText(QApplication::translate("DeicsOnzeGuiBase", "Delay", 0, QApplication::UnicodeUTF8));
+ AModSensLabel->setText(QApplication::translate("DeicsOnzeGuiBase", "AMS", 0, QApplication::UnicodeUTF8));
+ LFOWaveComboBox->clear();
+ LFOWaveComboBox->insertItems(0, QStringList()
+ << QApplication::translate("DeicsOnzeGuiBase", "Saw Up", 0, QApplication::UnicodeUTF8)
+ << QApplication::translate("DeicsOnzeGuiBase", "Square", 0, QApplication::UnicodeUTF8)
+ << QApplication::translate("DeicsOnzeGuiBase", "Triangl", 0, QApplication::UnicodeUTF8)
+ << QApplication::translate("DeicsOnzeGuiBase", "S/Hold", 0, QApplication::UnicodeUTF8)
+ );
+#ifndef QT_NO_TOOLTIP
+ LFOWaveComboBox->setProperty("toolTip", QVariant(QApplication::translate("DeicsOnzeGuiBase", "LFO Waveform", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_TOOLTIP
+ LFOSyncCheckBox->setText(QApplication::translate("DeicsOnzeGuiBase", "LFO Sync", 0, QApplication::UnicodeUTF8));
+#ifndef QT_NO_TOOLTIP
+ AModSensSlider->setProperty("toolTip", QVariant(QApplication::translate("DeicsOnzeGuiBase", "Amplitude Modulation Sensitivity", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_TOOLTIP
+#ifndef QT_NO_TOOLTIP
+ PModSensSlider->setProperty("toolTip", QVariant(QApplication::translate("DeicsOnzeGuiBase", "Pitch Modulation Sensitivity", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_TOOLTIP
+#ifndef QT_NO_TOOLTIP
+ PMSSpinBox->setProperty("toolTip", QVariant(QApplication::translate("DeicsOnzeGuiBase", "Coarse Ratio", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_TOOLTIP
+#ifndef QT_NO_TOOLTIP
+ AMSSpinBox->setProperty("toolTip", QVariant(QApplication::translate("DeicsOnzeGuiBase", "Coarse Ratio", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_TOOLTIP
+#ifndef QT_NO_TOOLTIP
+ PModDepthSlider->setProperty("toolTip", QVariant(QApplication::translate("DeicsOnzeGuiBase", "Pitch Modulation Depth", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_TOOLTIP
+#ifndef QT_NO_TOOLTIP
+ AModDepthSlider->setProperty("toolTip", QVariant(QApplication::translate("DeicsOnzeGuiBase", "Pitch Modulation Depth", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_TOOLTIP
+#ifndef QT_NO_TOOLTIP
+ LFOSpeedSlider->setProperty("toolTip", QVariant(QApplication::translate("DeicsOnzeGuiBase", "LFO Speed", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_TOOLTIP
+#ifndef QT_NO_TOOLTIP
+ LFOSpeedSpinBox->setProperty("toolTip", QVariant(QApplication::translate("DeicsOnzeGuiBase", "Coarse Ratio", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_TOOLTIP
+#ifndef QT_NO_TOOLTIP
+ LFODelaySlider->setProperty("toolTip", QVariant(QApplication::translate("DeicsOnzeGuiBase", "LFO Delay", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_TOOLTIP
+#ifndef QT_NO_TOOLTIP
+ LFODelaySpinBox->setProperty("toolTip", QVariant(QApplication::translate("DeicsOnzeGuiBase", "Coarse Ratio", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_TOOLTIP
+#ifndef QT_NO_TOOLTIP
+ PModDepthSpinBox->setProperty("toolTip", QVariant(QApplication::translate("DeicsOnzeGuiBase", "Coarse Ratio", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_TOOLTIP
+#ifndef QT_NO_TOOLTIP
+ AModDepthSpinBox->setProperty("toolTip", QVariant(QApplication::translate("DeicsOnzeGuiBase", "Coarse Ratio", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_TOOLTIP
+ transposeGroupBox->setTitle(QApplication::translate("DeicsOnzeGuiBase", "Transpose and Global Detune", 0, QApplication::UnicodeUTF8));
+#ifndef QT_NO_TOOLTIP
+ transposeSlider->setProperty("toolTip", QVariant(QApplication::translate("DeicsOnzeGuiBase", "Transpose", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_TOOLTIP
+#ifndef QT_NO_TOOLTIP
+ transposeSpinBox->setProperty("toolTip", QVariant(QApplication::translate("DeicsOnzeGuiBase", "Coarse Ratio", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_TOOLTIP
+#ifndef QT_NO_TOOLTIP
+ globalDetuneSlider->setProperty("toolTip", QVariant(QApplication::translate("DeicsOnzeGuiBase", "Global Detune", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_TOOLTIP
+#ifndef QT_NO_TOOLTIP
+ globalDetuneSpinBox->setProperty("toolTip", QVariant(QApplication::translate("DeicsOnzeGuiBase", "Coarse Ratio", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_TOOLTIP
+ algorithmComboBox->clear();
+ algorithmComboBox->insertItems(0, QStringList()
+ << QApplication::translate("DeicsOnzeGuiBase", "Algorithm 1", 0, QApplication::UnicodeUTF8)
+ << QApplication::translate("DeicsOnzeGuiBase", "Algorithm 2", 0, QApplication::UnicodeUTF8)
+ << QApplication::translate("DeicsOnzeGuiBase", "Algorithm 3", 0, QApplication::UnicodeUTF8)
+ << QApplication::translate("DeicsOnzeGuiBase", "Algorithm 4", 0, QApplication::UnicodeUTF8)
+ << QApplication::translate("DeicsOnzeGuiBase", "Algorithm 5", 0, QApplication::UnicodeUTF8)
+ << QApplication::translate("DeicsOnzeGuiBase", "Algorithm 6", 0, QApplication::UnicodeUTF8)
+ << QApplication::translate("DeicsOnzeGuiBase", "Algorithm 7", 0, QApplication::UnicodeUTF8)
+ << QApplication::translate("DeicsOnzeGuiBase", "Algorithm 8", 0, QApplication::UnicodeUTF8)
+ );
+#ifndef QT_NO_TOOLTIP
+ algorithmComboBox->setProperty("toolTip", QVariant(QApplication::translate("DeicsOnzeGuiBase", "Modulation Matrix", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_TOOLTIP
+#ifndef QT_NO_WHATSTHIS
+ algorithmComboBox->setProperty("whatsThis", QVariant(QApplication::translate("DeicsOnzeGuiBase", "<b>Algorithm 1</b> : <i>Op 1</i> modulated by <i>Op 2</i> modulated by <i>Op 3</i> modulated by <i>Op 4</i><br>\n"
+"<b>Algorithm 2</b> : <i>Op 1</i> modulated by <i>Op 2</i> modulated by both <i>Op 3</i> and <i>Op 4</i><br>\n"
+"<b>Algorithm 3</b> : <i>Op 1</i> modulated by both <i>Op 4</i> and <i>Op 2</i> modulated by <i>Op 3</i><br>\n"
+"<b>Algorithm 4</b> : <i>Op 1</i> modulated by both <i>Op 2</i> and <i>Op 3</i> modulated by <i>Op 4</i><br>\n"
+"<b>Algorithm 5</b> : (<i>Op 1</i> modulated by <i>Op 2</i>) add to (<i>Op 3</i> modulated by <i>Op 4</i>) <br>\n"
+"<b>Algorithm 6</b> : addition of the three <i>Op 1, 2, 3</i> all modulated by <i>Op 4</i><br>\n"
+"<b>Algorithm 7</b> : addition of the three <i>Op 1, 2, 3</i> with <i>Op 3</i> modulated by <i>Op 4</i><br>\n"
+"<b>Algorithm 8</b> : addition of the four <i>Op 1, 2, 3, 4</i>", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_WHATSTHIS
+ deicsOnzeTabWidget->setTabText(deicsOnzeTabWidget->indexOf(TabPage1), QApplication::translate("DeicsOnzeGuiBase", "&Global", 0, QApplication::UnicodeUTF8));
+ Frequency1groupBox->setTitle(QApplication::translate("DeicsOnzeGuiBase", "Frequency 1", 0, QApplication::UnicodeUTF8));
+ Fix1CheckBox->setText(QApplication::translate("DeicsOnzeGuiBase", "FIX", 0, QApplication::UnicodeUTF8));
+ CoarseRatio1Label->setText(QApplication::translate("DeicsOnzeGuiBase", "Coarse 1", 0, QApplication::UnicodeUTF8));
+ FineRatio1Label->setText(QApplication::translate("DeicsOnzeGuiBase", "Fine 1", 0, QApplication::UnicodeUTF8));
+ Freq1Label->setText(QApplication::translate("DeicsOnzeGuiBase", "Freq 1", 0, QApplication::UnicodeUTF8));
+#ifndef QT_NO_TOOLTIP
+ CoarseRatio1SpinBox->setProperty("toolTip", QVariant(QApplication::translate("DeicsOnzeGuiBase", "Coarse Ratio", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_TOOLTIP
+#ifndef QT_NO_TOOLTIP
+ FineRatio1SpinBox->setProperty("toolTip", QVariant(QApplication::translate("DeicsOnzeGuiBase", "Fine Ratio", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_TOOLTIP
+#ifndef QT_NO_TOOLTIP
+ Freq1SpinBox->setProperty("toolTip", QVariant(QApplication::translate("DeicsOnzeGuiBase", "Fixed Frequency", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_TOOLTIP
+ Env1GroupBox->setTitle(QApplication::translate("DeicsOnzeGuiBase", "Envelope 1", 0, QApplication::UnicodeUTF8));
+ RR1Label->setText(QApplication::translate("DeicsOnzeGuiBase", "RR1", 0, QApplication::UnicodeUTF8));
+ D1R1Label->setText(QApplication::translate("DeicsOnzeGuiBase", "D1R1", 0, QApplication::UnicodeUTF8));
+ D1L1Label->setText(QApplication::translate("DeicsOnzeGuiBase", "D1L1", 0, QApplication::UnicodeUTF8));
+ D2R1Label->setText(QApplication::translate("DeicsOnzeGuiBase", "D2R1", 0, QApplication::UnicodeUTF8));
+#ifndef QT_NO_TOOLTIP
+ D1L1Slider->setProperty("toolTip", QVariant(QApplication::translate("DeicsOnzeGuiBase", "1\302\260 Decay Level", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_TOOLTIP
+#ifndef QT_NO_TOOLTIP
+ D2R1Slider->setProperty("toolTip", QVariant(QApplication::translate("DeicsOnzeGuiBase", "2\302\260 Decay Rate", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_TOOLTIP
+#ifndef QT_NO_TOOLTIP
+ D1R1Slider->setProperty("toolTip", QVariant(QApplication::translate("DeicsOnzeGuiBase", "1\302\260 Decay Rate", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_TOOLTIP
+#ifndef QT_NO_TOOLTIP
+ RR1Slider->setProperty("toolTip", QVariant(QApplication::translate("DeicsOnzeGuiBase", "Release Rate", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_TOOLTIP
+ AR1Label->setText(QApplication::translate("DeicsOnzeGuiBase", "AR1", 0, QApplication::UnicodeUTF8));
+#ifndef QT_NO_TOOLTIP
+ D1R1SpinBox->setProperty("toolTip", QVariant(QApplication::translate("DeicsOnzeGuiBase", "Coarse Ratio", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_TOOLTIP
+#ifndef QT_NO_TOOLTIP
+ D1L1SpinBox->setProperty("toolTip", QVariant(QApplication::translate("DeicsOnzeGuiBase", "Coarse Ratio", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_TOOLTIP
+#ifndef QT_NO_TOOLTIP
+ D2R1SpinBox->setProperty("toolTip", QVariant(QApplication::translate("DeicsOnzeGuiBase", "Coarse Ratio", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_TOOLTIP
+#ifndef QT_NO_TOOLTIP
+ RR1SpinBox->setProperty("toolTip", QVariant(QApplication::translate("DeicsOnzeGuiBase", "Coarse Ratio", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_TOOLTIP
+#ifndef QT_NO_TOOLTIP
+ AR1Slider->setProperty("toolTip", QVariant(QApplication::translate("DeicsOnzeGuiBase", "Attack Rate", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_TOOLTIP
+#ifndef QT_NO_WHATSTHIS
+ AR1Slider->setProperty("whatsThis", QVariant(QString()));
+#endif // QT_NO_WHATSTHIS
+#ifndef QT_NO_TOOLTIP
+ AR1SpinBox->setProperty("toolTip", QVariant(QApplication::translate("DeicsOnzeGuiBase", "Attack Rate", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_TOOLTIP
+ Scaling1GroupBox->setTitle(QApplication::translate("DeicsOnzeGuiBase", "Scaling 1", 0, QApplication::UnicodeUTF8));
+ LS1Label->setText(QApplication::translate("DeicsOnzeGuiBase", "LS1", 0, QApplication::UnicodeUTF8));
+ RS1Label->setText(QApplication::translate("DeicsOnzeGuiBase", "RS1", 0, QApplication::UnicodeUTF8));
+#ifndef QT_NO_TOOLTIP
+ LS1Slider->setProperty("toolTip", QVariant(QApplication::translate("DeicsOnzeGuiBase", "Level Scaling", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_TOOLTIP
+#ifndef QT_NO_WHATSTHIS
+ LS1Slider->setProperty("whatsThis", QVariant(QApplication::translate("DeicsOnzeGuiBase", "Attack Rate of the operator 1", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_WHATSTHIS
+#ifndef QT_NO_TOOLTIP
+ RS1Slider->setProperty("toolTip", QVariant(QApplication::translate("DeicsOnzeGuiBase", "Rate Scaling", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_TOOLTIP
+#ifndef QT_NO_WHATSTHIS
+ RS1Slider->setProperty("whatsThis", QVariant(QApplication::translate("DeicsOnzeGuiBase", "Attack Rate of the operator 1", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_WHATSTHIS
+#ifndef QT_NO_TOOLTIP
+ LS1SpinBox->setProperty("toolTip", QVariant(QApplication::translate("DeicsOnzeGuiBase", "Coarse Ratio", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_TOOLTIP
+#ifndef QT_NO_TOOLTIP
+ RS1SpinBox->setProperty("toolTip", QVariant(QApplication::translate("DeicsOnzeGuiBase", "Coarse Ratio", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_TOOLTIP
+ Vol1groupBox->setTitle(QApplication::translate("DeicsOnzeGuiBase", "Vol 1", 0, QApplication::UnicodeUTF8));
+#ifndef QT_NO_TOOLTIP
+ Vol1Slider->setProperty("toolTip", QVariant(QApplication::translate("DeicsOnzeGuiBase", "Volume", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_TOOLTIP
+#ifndef QT_NO_WHATSTHIS
+ Vol1Slider->setProperty("whatsThis", QVariant(QString()));
+#endif // QT_NO_WHATSTHIS
+#ifndef QT_NO_TOOLTIP
+ Vol1SpinBox->setProperty("toolTip", QVariant(QApplication::translate("DeicsOnzeGuiBase", "Coarse Ratio", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_TOOLTIP
+ sensitivity1groupBox->setTitle(QApplication::translate("DeicsOnzeGuiBase", "Sensitivity 1", 0, QApplication::UnicodeUTF8));
+ EGS1Label->setText(QApplication::translate("DeicsOnzeGuiBase", "EBS1", 0, QApplication::UnicodeUTF8));
+ KVS1Label->setText(QApplication::translate("DeicsOnzeGuiBase", "KVS1", 0, QApplication::UnicodeUTF8));
+ AME1CheckBox->setText(QApplication::translate("DeicsOnzeGuiBase", "AME1", 0, QApplication::UnicodeUTF8));
+#ifndef QT_NO_TOOLTIP
+ AME1CheckBox->setProperty("toolTip", QVariant(QApplication::translate("DeicsOnzeGuiBase", "Amplitude Modulation Enable", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_TOOLTIP
+#ifndef QT_NO_TOOLTIP
+ KVS1Slider->setProperty("toolTip", QVariant(QApplication::translate("DeicsOnzeGuiBase", "Key Velocity Sensitivity", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_TOOLTIP
+#ifndef QT_NO_TOOLTIP
+ EBS1Slider->setProperty("toolTip", QVariant(QApplication::translate("DeicsOnzeGuiBase", "EG Bias Sensitivity", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_TOOLTIP
+#ifndef QT_NO_TOOLTIP
+ KVS1SpinBox->setProperty("toolTip", QVariant(QApplication::translate("DeicsOnzeGuiBase", "Coarse Ratio", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_TOOLTIP
+#ifndef QT_NO_TOOLTIP
+ EBS1SpinBox->setProperty("toolTip", QVariant(QApplication::translate("DeicsOnzeGuiBase", "Coarse Ratio", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_TOOLTIP
+ DetWaveEGS1GroupBox->setTitle(QApplication::translate("DeicsOnzeGuiBase", "Detune Wave EGShift 1", 0, QApplication::UnicodeUTF8));
+ WaveForm1ComboBox->clear();
+ WaveForm1ComboBox->insertItems(0, QStringList()
+ << QApplication::translate("DeicsOnzeGuiBase", "Wave1", 0, QApplication::UnicodeUTF8)
+ << QApplication::translate("DeicsOnzeGuiBase", "Wave2", 0, QApplication::UnicodeUTF8)
+ << QApplication::translate("DeicsOnzeGuiBase", "Wave3", 0, QApplication::UnicodeUTF8)
+ << QApplication::translate("DeicsOnzeGuiBase", "Wave4", 0, QApplication::UnicodeUTF8)
+ << QApplication::translate("DeicsOnzeGuiBase", "Wave5", 0, QApplication::UnicodeUTF8)
+ << QApplication::translate("DeicsOnzeGuiBase", "Wave6", 0, QApplication::UnicodeUTF8)
+ << QApplication::translate("DeicsOnzeGuiBase", "Wave7", 0, QApplication::UnicodeUTF8)
+ << QApplication::translate("DeicsOnzeGuiBase", "Wave8", 0, QApplication::UnicodeUTF8)
+ );
+#ifndef QT_NO_TOOLTIP
+ WaveForm1ComboBox->setProperty("toolTip", QVariant(QApplication::translate("DeicsOnzeGuiBase", "Wave Form", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_TOOLTIP
+#ifndef QT_NO_WHATSTHIS
+ WaveForm1ComboBox->setProperty("whatsThis", QVariant(QApplication::translate("DeicsOnzeGuiBase", "Wave form 1 = <i>sin(<b>t</b>)</i><br>\n"
+"Wave form 2 = <i>sin(<b>t</b>)*abs(sin(<b>t</b>))</i><br>\n"
+"Wave form 3 = <i>if <b>t</b>&#060 pi then sin(<b>t</b>) else 0</i><br>\n"
+"Wave form 4 = <i>if <b>t</b>&#060 pi then sin(<b>t</b>)*abs(sin(<b>t</b>)) else 0</i><br>\n"
+"Wave form 5 = <i>if <b>t</b>&#060 pi then sin(2*<b>t</b>) else 0</i><br>\n"
+"Wave form 6 = <i>if <b>t</b>&#060 pi then sin(2*<b>t</b>)*abs(sin(2*<b>t</b>)) else 0</i><br>\n"
+"Wave form 7 = <i>if <b>t</b>&#060 pi then abs(sin(2*<b>t</b>)) else 0</i><br>\n"
+"Wave form 8 = <i>if <b>t</b>&#060 pi then sin(2*<b>t</b>)*sin(2*<b>t</b>) else 0</i>", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_WHATSTHIS
+ DET1Label->setText(QApplication::translate("DeicsOnzeGuiBase", "DET1", 0, QApplication::UnicodeUTF8));
+ EGQ1ComboBox->clear();
+ EGQ1ComboBox->insertItems(0, QStringList()
+ << QApplication::translate("DeicsOnzeGuiBase", "96dB", 0, QApplication::UnicodeUTF8)
+ << QApplication::translate("DeicsOnzeGuiBase", "48dB", 0, QApplication::UnicodeUTF8)
+ << QApplication::translate("DeicsOnzeGuiBase", "24dB", 0, QApplication::UnicodeUTF8)
+ << QApplication::translate("DeicsOnzeGuiBase", "12dB", 0, QApplication::UnicodeUTF8)
+ );
+#ifndef QT_NO_TOOLTIP
+ EGQ1ComboBox->setProperty("toolTip", QVariant(QApplication::translate("DeicsOnzeGuiBase", "EG Shift", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_TOOLTIP
+#ifndef QT_NO_TOOLTIP
+ DET1Slider->setProperty("toolTip", QVariant(QApplication::translate("DeicsOnzeGuiBase", "Detune", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_TOOLTIP
+#ifndef QT_NO_WHATSTHIS
+ DET1Slider->setProperty("whatsThis", QVariant(QApplication::translate("DeicsOnzeGuiBase", "Attack Rate of the operator 1", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_WHATSTHIS
+#ifndef QT_NO_TOOLTIP
+ DET1SpinBox->setProperty("toolTip", QVariant(QApplication::translate("DeicsOnzeGuiBase", "Coarse Ratio", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_TOOLTIP
+ deicsOnzeTabWidget->setTabText(deicsOnzeTabWidget->indexOf(tab), QApplication::translate("DeicsOnzeGuiBase", "Op &1", 0, QApplication::UnicodeUTF8));
+ Frequency2groupBox->setTitle(QApplication::translate("DeicsOnzeGuiBase", "Frequency 2", 0, QApplication::UnicodeUTF8));
+ Fix2CheckBox->setText(QApplication::translate("DeicsOnzeGuiBase", "FIX", 0, QApplication::UnicodeUTF8));
+ Freq2Label->setText(QApplication::translate("DeicsOnzeGuiBase", "Freq 2", 0, QApplication::UnicodeUTF8));
+ FineRatio2Label->setText(QApplication::translate("DeicsOnzeGuiBase", "Fine 2", 0, QApplication::UnicodeUTF8));
+ CoarseRatio2Label->setText(QApplication::translate("DeicsOnzeGuiBase", "Coarse 2", 0, QApplication::UnicodeUTF8));
+#ifndef QT_NO_TOOLTIP
+ CoarseRatio2SpinBox->setProperty("toolTip", QVariant(QApplication::translate("DeicsOnzeGuiBase", "Coarse Ratio", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_TOOLTIP
+#ifndef QT_NO_TOOLTIP
+ FineRatio2SpinBox->setProperty("toolTip", QVariant(QApplication::translate("DeicsOnzeGuiBase", "Fine Ratio", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_TOOLTIP
+#ifndef QT_NO_TOOLTIP
+ Freq2SpinBox->setProperty("toolTip", QVariant(QApplication::translate("DeicsOnzeGuiBase", "Fixed Frequency", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_TOOLTIP
+ Env2GroupBox->setTitle(QApplication::translate("DeicsOnzeGuiBase", "Envelope 2", 0, QApplication::UnicodeUTF8));
+ AR2Label->setText(QApplication::translate("DeicsOnzeGuiBase", "AR2", 0, QApplication::UnicodeUTF8));
+ RR2Label->setText(QApplication::translate("DeicsOnzeGuiBase", "RR2", 0, QApplication::UnicodeUTF8));
+ D2R2Label->setText(QApplication::translate("DeicsOnzeGuiBase", "D2R2", 0, QApplication::UnicodeUTF8));
+ D1L2Label->setText(QApplication::translate("DeicsOnzeGuiBase", "D1L2", 0, QApplication::UnicodeUTF8));
+ D1R2Label->setText(QApplication::translate("DeicsOnzeGuiBase", "D1R2", 0, QApplication::UnicodeUTF8));
+#ifndef QT_NO_TOOLTIP
+ AR2Slider->setProperty("toolTip", QVariant(QApplication::translate("DeicsOnzeGuiBase", "Attack Rate", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_TOOLTIP
+#ifndef QT_NO_WHATSTHIS
+ AR2Slider->setProperty("whatsThis", QVariant(QString()));
+#endif // QT_NO_WHATSTHIS
+#ifndef QT_NO_TOOLTIP
+ D1R2Slider->setProperty("toolTip", QVariant(QApplication::translate("DeicsOnzeGuiBase", "1\302\260 Decay Rate", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_TOOLTIP
+#ifndef QT_NO_TOOLTIP
+ D1L2Slider->setProperty("toolTip", QVariant(QApplication::translate("DeicsOnzeGuiBase", "1\302\260 Decay Level", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_TOOLTIP
+#ifndef QT_NO_TOOLTIP
+ D2R2Slider->setProperty("toolTip", QVariant(QApplication::translate("DeicsOnzeGuiBase", "2\302\260 Decay Rate", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_TOOLTIP
+#ifndef QT_NO_TOOLTIP
+ RR2Slider->setProperty("toolTip", QVariant(QApplication::translate("DeicsOnzeGuiBase", "Release Rate", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_TOOLTIP
+#ifndef QT_NO_TOOLTIP
+ D1R2SpinBox->setProperty("toolTip", QVariant(QApplication::translate("DeicsOnzeGuiBase", "Coarse Ratio", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_TOOLTIP
+#ifndef QT_NO_TOOLTIP
+ D1L2SpinBox->setProperty("toolTip", QVariant(QApplication::translate("DeicsOnzeGuiBase", "Coarse Ratio", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_TOOLTIP
+#ifndef QT_NO_TOOLTIP
+ D2R2SpinBox->setProperty("toolTip", QVariant(QApplication::translate("DeicsOnzeGuiBase", "Coarse Ratio", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_TOOLTIP
+#ifndef QT_NO_TOOLTIP
+ RR2SpinBox->setProperty("toolTip", QVariant(QApplication::translate("DeicsOnzeGuiBase", "Coarse Ratio", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_TOOLTIP
+#ifndef QT_NO_TOOLTIP
+ AR2SpinBox->setProperty("toolTip", QVariant(QApplication::translate("DeicsOnzeGuiBase", "Attack Rate", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_TOOLTIP
+ Scaling2GroupBox->setTitle(QApplication::translate("DeicsOnzeGuiBase", "Scaling 2", 0, QApplication::UnicodeUTF8));
+ LS2Label->setText(QApplication::translate("DeicsOnzeGuiBase", "LS2", 0, QApplication::UnicodeUTF8));
+ RS2Label->setText(QApplication::translate("DeicsOnzeGuiBase", "RS2", 0, QApplication::UnicodeUTF8));
+#ifndef QT_NO_TOOLTIP
+ LS2Slider->setProperty("toolTip", QVariant(QApplication::translate("DeicsOnzeGuiBase", "Level Scaling", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_TOOLTIP
+#ifndef QT_NO_WHATSTHIS
+ LS2Slider->setProperty("whatsThis", QVariant(QApplication::translate("DeicsOnzeGuiBase", "Attack Rate of the operator 1", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_WHATSTHIS
+#ifndef QT_NO_TOOLTIP
+ RS2Slider->setProperty("toolTip", QVariant(QApplication::translate("DeicsOnzeGuiBase", "Rate Scaling", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_TOOLTIP
+#ifndef QT_NO_WHATSTHIS
+ RS2Slider->setProperty("whatsThis", QVariant(QApplication::translate("DeicsOnzeGuiBase", "Attack Rate of the operator 1", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_WHATSTHIS
+#ifndef QT_NO_TOOLTIP
+ LS2SpinBox->setProperty("toolTip", QVariant(QApplication::translate("DeicsOnzeGuiBase", "Coarse Ratio", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_TOOLTIP
+#ifndef QT_NO_TOOLTIP
+ RS2SpinBox->setProperty("toolTip", QVariant(QApplication::translate("DeicsOnzeGuiBase", "Coarse Ratio", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_TOOLTIP
+ Vol2groupBox->setTitle(QApplication::translate("DeicsOnzeGuiBase", "Vol 2", 0, QApplication::UnicodeUTF8));
+#ifndef QT_NO_TOOLTIP
+ Vol2Slider->setProperty("toolTip", QVariant(QApplication::translate("DeicsOnzeGuiBase", "Volume", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_TOOLTIP
+#ifndef QT_NO_WHATSTHIS
+ Vol2Slider->setProperty("whatsThis", QVariant(QString()));
+#endif // QT_NO_WHATSTHIS
+#ifndef QT_NO_TOOLTIP
+ Vol2SpinBox->setProperty("toolTip", QVariant(QApplication::translate("DeicsOnzeGuiBase", "Coarse Ratio", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_TOOLTIP
+ sensitivity2groupBox->setTitle(QApplication::translate("DeicsOnzeGuiBase", "Sensitivity 2", 0, QApplication::UnicodeUTF8));
+ EGS2Label->setText(QApplication::translate("DeicsOnzeGuiBase", "EBS2", 0, QApplication::UnicodeUTF8));
+ KVS2Label->setText(QApplication::translate("DeicsOnzeGuiBase", "KVS2", 0, QApplication::UnicodeUTF8));
+ AME2CheckBox->setText(QApplication::translate("DeicsOnzeGuiBase", "AME2", 0, QApplication::UnicodeUTF8));
+#ifndef QT_NO_TOOLTIP
+ AME2CheckBox->setProperty("toolTip", QVariant(QApplication::translate("DeicsOnzeGuiBase", "Amplitude Modulation Enable", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_TOOLTIP
+#ifndef QT_NO_TOOLTIP
+ KVS2Slider->setProperty("toolTip", QVariant(QApplication::translate("DeicsOnzeGuiBase", "Key Velocity Sensitivity", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_TOOLTIP
+#ifndef QT_NO_TOOLTIP
+ EBS2Slider->setProperty("toolTip", QVariant(QApplication::translate("DeicsOnzeGuiBase", "EG Bias Sensitivity", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_TOOLTIP
+#ifndef QT_NO_TOOLTIP
+ EBS2SpinBox->setProperty("toolTip", QVariant(QApplication::translate("DeicsOnzeGuiBase", "Coarse Ratio", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_TOOLTIP
+#ifndef QT_NO_TOOLTIP
+ KVS2SpinBox->setProperty("toolTip", QVariant(QApplication::translate("DeicsOnzeGuiBase", "Coarse Ratio", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_TOOLTIP
+ DetWaveEGS2GroupBox->setTitle(QApplication::translate("DeicsOnzeGuiBase", "Detune Wave EGShift 2", 0, QApplication::UnicodeUTF8));
+#ifndef QT_NO_TOOLTIP
+ DET2Slider->setProperty("toolTip", QVariant(QApplication::translate("DeicsOnzeGuiBase", "Detune", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_TOOLTIP
+#ifndef QT_NO_WHATSTHIS
+ DET2Slider->setProperty("whatsThis", QVariant(QApplication::translate("DeicsOnzeGuiBase", "Attack Rate of the operator 1", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_WHATSTHIS
+ DET2Label->setText(QApplication::translate("DeicsOnzeGuiBase", "DET2", 0, QApplication::UnicodeUTF8));
+ WaveForm2ComboBox->clear();
+ WaveForm2ComboBox->insertItems(0, QStringList()
+ << QApplication::translate("DeicsOnzeGuiBase", "Wave1", 0, QApplication::UnicodeUTF8)
+ << QApplication::translate("DeicsOnzeGuiBase", "Wave2", 0, QApplication::UnicodeUTF8)
+ << QApplication::translate("DeicsOnzeGuiBase", "Wave3", 0, QApplication::UnicodeUTF8)
+ << QApplication::translate("DeicsOnzeGuiBase", "Wave4", 0, QApplication::UnicodeUTF8)
+ << QApplication::translate("DeicsOnzeGuiBase", "Wave5", 0, QApplication::UnicodeUTF8)
+ << QApplication::translate("DeicsOnzeGuiBase", "Wave6", 0, QApplication::UnicodeUTF8)
+ << QApplication::translate("DeicsOnzeGuiBase", "Wave7", 0, QApplication::UnicodeUTF8)
+ << QApplication::translate("DeicsOnzeGuiBase", "Wave8", 0, QApplication::UnicodeUTF8)
+ );
+#ifndef QT_NO_TOOLTIP
+ WaveForm2ComboBox->setProperty("toolTip", QVariant(QApplication::translate("DeicsOnzeGuiBase", "Wave Form", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_TOOLTIP
+#ifndef QT_NO_WHATSTHIS
+ WaveForm2ComboBox->setProperty("whatsThis", QVariant(QApplication::translate("DeicsOnzeGuiBase", "Wave form 1 = <i>sin(<b>t</b>)</i><br>\n"
+"Wave form 2 = <i>sin(<b>t</b>)*abs(sin(<b>t</b>))</i><br>\n"
+"Wave form 3 = <i>if <b>t</b>&#060 pi then sin(<b>t</b>) else 0</i><br>\n"
+"Wave form 4 = <i>if <b>t</b>&#060 pi then sin(<b>t</b>)*abs(sin(<b>t</b>)) else 0</i><br>\n"
+"Wave form 5 = <i>if <b>t</b>&#060 pi then sin(2*<b>t</b>) else 0</i><br>\n"
+"Wave form 6 = <i>if <b>t</b>&#060 pi then sin(2*<b>t</b>)*abs(sin(2*<b>t</b>)) else 0</i><br>\n"
+"Wave form 7 = <i>if <b>t</b>&#060 pi then abs(sin(2*<b>t</b>)) else 0</i><br>\n"
+"Wave form 8 = <i>if <b>t</b>&#060 pi then sin(2*<b>t</b>)*sin(2*<b>t</b>) else 0</i>", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_WHATSTHIS
+ EGS2comboBox->clear();
+ EGS2comboBox->insertItems(0, QStringList()
+ << QApplication::translate("DeicsOnzeGuiBase", "96dB", 0, QApplication::UnicodeUTF8)
+ << QApplication::translate("DeicsOnzeGuiBase", "48dB", 0, QApplication::UnicodeUTF8)
+ << QApplication::translate("DeicsOnzeGuiBase", "24dB", 0, QApplication::UnicodeUTF8)
+ << QApplication::translate("DeicsOnzeGuiBase", "12dB", 0, QApplication::UnicodeUTF8)
+ );
+#ifndef QT_NO_TOOLTIP
+ EGS2comboBox->setProperty("toolTip", QVariant(QApplication::translate("DeicsOnzeGuiBase", "EG Shift", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_TOOLTIP
+#ifndef QT_NO_TOOLTIP
+ DET2SpinBox->setProperty("toolTip", QVariant(QApplication::translate("DeicsOnzeGuiBase", "Coarse Ratio", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_TOOLTIP
+ deicsOnzeTabWidget->setTabText(deicsOnzeTabWidget->indexOf(tab1), QApplication::translate("DeicsOnzeGuiBase", "Op &2", 0, QApplication::UnicodeUTF8));
+ Frequency3groupBox->setTitle(QApplication::translate("DeicsOnzeGuiBase", "Frequency 3", 0, QApplication::UnicodeUTF8));
+ Fix3CheckBox->setText(QApplication::translate("DeicsOnzeGuiBase", "FIX", 0, QApplication::UnicodeUTF8));
+ CoarseRatio3Label->setText(QApplication::translate("DeicsOnzeGuiBase", "Coarse 3", 0, QApplication::UnicodeUTF8));
+ FineRatio3Label->setText(QApplication::translate("DeicsOnzeGuiBase", "Fine 3", 0, QApplication::UnicodeUTF8));
+ Freq3Label->setText(QApplication::translate("DeicsOnzeGuiBase", "Freq 3", 0, QApplication::UnicodeUTF8));
+#ifndef QT_NO_TOOLTIP
+ CoarseRatio3SpinBox->setProperty("toolTip", QVariant(QApplication::translate("DeicsOnzeGuiBase", "Coarse Ratio", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_TOOLTIP
+#ifndef QT_NO_TOOLTIP
+ FineRatio3SpinBox->setProperty("toolTip", QVariant(QApplication::translate("DeicsOnzeGuiBase", "Fine Ratio", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_TOOLTIP
+#ifndef QT_NO_TOOLTIP
+ Freq3SpinBox->setProperty("toolTip", QVariant(QApplication::translate("DeicsOnzeGuiBase", "Fixed Frequency", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_TOOLTIP
+ Env3GroupBox->setTitle(QApplication::translate("DeicsOnzeGuiBase", "Envelope 3", 0, QApplication::UnicodeUTF8));
+ RR3Label->setText(QApplication::translate("DeicsOnzeGuiBase", "RR3", 0, QApplication::UnicodeUTF8));
+ D2R3Label->setText(QApplication::translate("DeicsOnzeGuiBase", "D2R3", 0, QApplication::UnicodeUTF8));
+ D1L3Label->setText(QApplication::translate("DeicsOnzeGuiBase", "D1L3", 0, QApplication::UnicodeUTF8));
+ D1R3Label->setText(QApplication::translate("DeicsOnzeGuiBase", "D1R3", 0, QApplication::UnicodeUTF8));
+ AR3Label->setText(QApplication::translate("DeicsOnzeGuiBase", "AR3", 0, QApplication::UnicodeUTF8));
+#ifndef QT_NO_TOOLTIP
+ AR3Slider->setProperty("toolTip", QVariant(QApplication::translate("DeicsOnzeGuiBase", "Attack Rate", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_TOOLTIP
+#ifndef QT_NO_WHATSTHIS
+ AR3Slider->setProperty("whatsThis", QVariant(QString()));
+#endif // QT_NO_WHATSTHIS
+#ifndef QT_NO_TOOLTIP
+ D1R3Slider->setProperty("toolTip", QVariant(QApplication::translate("DeicsOnzeGuiBase", "1\302\260 Decay Rate", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_TOOLTIP
+#ifndef QT_NO_TOOLTIP
+ D1L3Slider->setProperty("toolTip", QVariant(QApplication::translate("DeicsOnzeGuiBase", "1\302\260 Decay Level", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_TOOLTIP
+#ifndef QT_NO_TOOLTIP
+ D2R3Slider->setProperty("toolTip", QVariant(QApplication::translate("DeicsOnzeGuiBase", "2\302\260 Decay Rate", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_TOOLTIP
+#ifndef QT_NO_TOOLTIP
+ RR3Slider->setProperty("toolTip", QVariant(QApplication::translate("DeicsOnzeGuiBase", "Release Rate", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_TOOLTIP
+#ifndef QT_NO_TOOLTIP
+ D1R3SpinBox->setProperty("toolTip", QVariant(QApplication::translate("DeicsOnzeGuiBase", "Coarse Ratio", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_TOOLTIP
+#ifndef QT_NO_TOOLTIP
+ D1L3SpinBox->setProperty("toolTip", QVariant(QApplication::translate("DeicsOnzeGuiBase", "Coarse Ratio", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_TOOLTIP
+#ifndef QT_NO_TOOLTIP
+ D2R3SpinBox->setProperty("toolTip", QVariant(QApplication::translate("DeicsOnzeGuiBase", "Coarse Ratio", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_TOOLTIP
+#ifndef QT_NO_TOOLTIP
+ RR3SpinBox->setProperty("toolTip", QVariant(QApplication::translate("DeicsOnzeGuiBase", "Coarse Ratio", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_TOOLTIP
+#ifndef QT_NO_TOOLTIP
+ AR3SpinBox->setProperty("toolTip", QVariant(QApplication::translate("DeicsOnzeGuiBase", "Attack Rate", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_TOOLTIP
+ Scaling3GroupBox->setTitle(QApplication::translate("DeicsOnzeGuiBase", "Scaling 3", 0, QApplication::UnicodeUTF8));
+ LS3Label->setText(QApplication::translate("DeicsOnzeGuiBase", "LS3", 0, QApplication::UnicodeUTF8));
+ RS3Label->setText(QApplication::translate("DeicsOnzeGuiBase", "RS3", 0, QApplication::UnicodeUTF8));
+#ifndef QT_NO_TOOLTIP
+ LS3Slider->setProperty("toolTip", QVariant(QApplication::translate("DeicsOnzeGuiBase", "Level Scaling", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_TOOLTIP
+#ifndef QT_NO_WHATSTHIS
+ LS3Slider->setProperty("whatsThis", QVariant(QApplication::translate("DeicsOnzeGuiBase", "Attack Rate of the operator 1", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_WHATSTHIS
+#ifndef QT_NO_TOOLTIP
+ RS3Slider->setProperty("toolTip", QVariant(QApplication::translate("DeicsOnzeGuiBase", "Rate Scaling", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_TOOLTIP
+#ifndef QT_NO_WHATSTHIS
+ RS3Slider->setProperty("whatsThis", QVariant(QApplication::translate("DeicsOnzeGuiBase", "Attack Rate of the operator 1", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_WHATSTHIS
+#ifndef QT_NO_TOOLTIP
+ LS3SpinBox->setProperty("toolTip", QVariant(QApplication::translate("DeicsOnzeGuiBase", "Coarse Ratio", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_TOOLTIP
+#ifndef QT_NO_TOOLTIP
+ RS3SpinBox->setProperty("toolTip", QVariant(QApplication::translate("DeicsOnzeGuiBase", "Coarse Ratio", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_TOOLTIP
+ Vol3groupBox->setTitle(QApplication::translate("DeicsOnzeGuiBase", "Vol 3", 0, QApplication::UnicodeUTF8));
+#ifndef QT_NO_TOOLTIP
+ Vol3Slider->setProperty("toolTip", QVariant(QApplication::translate("DeicsOnzeGuiBase", "Volume", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_TOOLTIP
+#ifndef QT_NO_WHATSTHIS
+ Vol3Slider->setProperty("whatsThis", QVariant(QString()));
+#endif // QT_NO_WHATSTHIS
+#ifndef QT_NO_TOOLTIP
+ Vol3SpinBox->setProperty("toolTip", QVariant(QApplication::translate("DeicsOnzeGuiBase", "Coarse Ratio", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_TOOLTIP
+ sensitivity3groupBox->setTitle(QApplication::translate("DeicsOnzeGuiBase", "Sensitivity 3", 0, QApplication::UnicodeUTF8));
+ EGS3Label->setText(QApplication::translate("DeicsOnzeGuiBase", "EBS3", 0, QApplication::UnicodeUTF8));
+ KVS3Label->setText(QApplication::translate("DeicsOnzeGuiBase", "KVS3", 0, QApplication::UnicodeUTF8));
+ AME3CheckBox->setText(QApplication::translate("DeicsOnzeGuiBase", "AME3", 0, QApplication::UnicodeUTF8));
+#ifndef QT_NO_TOOLTIP
+ AME3CheckBox->setProperty("toolTip", QVariant(QApplication::translate("DeicsOnzeGuiBase", "Amplitude Modulation Enable", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_TOOLTIP
+#ifndef QT_NO_TOOLTIP
+ KVS3Slider->setProperty("toolTip", QVariant(QApplication::translate("DeicsOnzeGuiBase", "Key Velocity Sensitivity", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_TOOLTIP
+#ifndef QT_NO_TOOLTIP
+ EBS3Slider->setProperty("toolTip", QVariant(QApplication::translate("DeicsOnzeGuiBase", "EG Bias Sensitivity", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_TOOLTIP
+#ifndef QT_NO_TOOLTIP
+ EBS3SpinBox->setProperty("toolTip", QVariant(QApplication::translate("DeicsOnzeGuiBase", "Coarse Ratio", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_TOOLTIP
+#ifndef QT_NO_TOOLTIP
+ KVS3SpinBox->setProperty("toolTip", QVariant(QApplication::translate("DeicsOnzeGuiBase", "Coarse Ratio", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_TOOLTIP
+ DetWaveEGS3GroupBox->setTitle(QApplication::translate("DeicsOnzeGuiBase", "Detune Wave EGShift 3", 0, QApplication::UnicodeUTF8));
+ WaveForm3ComboBox->clear();
+ WaveForm3ComboBox->insertItems(0, QStringList()
+ << QApplication::translate("DeicsOnzeGuiBase", "Wave1", 0, QApplication::UnicodeUTF8)
+ << QApplication::translate("DeicsOnzeGuiBase", "Wave2", 0, QApplication::UnicodeUTF8)
+ << QApplication::translate("DeicsOnzeGuiBase", "Wave3", 0, QApplication::UnicodeUTF8)
+ << QApplication::translate("DeicsOnzeGuiBase", "Wave4", 0, QApplication::UnicodeUTF8)
+ << QApplication::translate("DeicsOnzeGuiBase", "Wave5", 0, QApplication::UnicodeUTF8)
+ << QApplication::translate("DeicsOnzeGuiBase", "Wave6", 0, QApplication::UnicodeUTF8)
+ << QApplication::translate("DeicsOnzeGuiBase", "Wave7", 0, QApplication::UnicodeUTF8)
+ << QApplication::translate("DeicsOnzeGuiBase", "Wave8", 0, QApplication::UnicodeUTF8)
+ );
+#ifndef QT_NO_TOOLTIP
+ WaveForm3ComboBox->setProperty("toolTip", QVariant(QApplication::translate("DeicsOnzeGuiBase", "Wave Form", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_TOOLTIP
+#ifndef QT_NO_WHATSTHIS
+ WaveForm3ComboBox->setProperty("whatsThis", QVariant(QApplication::translate("DeicsOnzeGuiBase", "Wave form 1 = <i>sin(<b>t</b>)</i><br>\n"
+"Wave form 2 = <i>sin(<b>t</b>)*abs(sin(<b>t</b>))</i><br>\n"
+"Wave form 3 = <i>if <b>t</b>&#060 pi then sin(<b>t</b>) else 0</i><br>\n"
+"Wave form 4 = <i>if <b>t</b>&#060 pi then sin(<b>t</b>)*abs(sin(<b>t</b>)) else 0</i><br>\n"
+"Wave form 5 = <i>if <b>t</b>&#060 pi then sin(2*<b>t</b>) else 0</i><br>\n"
+"Wave form 6 = <i>if <b>t</b>&#060 pi then sin(2*<b>t</b>)*abs(sin(2*<b>t</b>)) else 0</i><br>\n"
+"Wave form 7 = <i>if <b>t</b>&#060 pi then abs(sin(2*<b>t</b>)) else 0</i><br>\n"
+"Wave form 8 = <i>if <b>t</b>&#060 pi then sin(2*<b>t</b>)*sin(2*<b>t</b>) else 0</i>", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_WHATSTHIS
+ EGS3comboBox->clear();
+ EGS3comboBox->insertItems(0, QStringList()
+ << QApplication::translate("DeicsOnzeGuiBase", "96dB", 0, QApplication::UnicodeUTF8)
+ << QApplication::translate("DeicsOnzeGuiBase", "48dB", 0, QApplication::UnicodeUTF8)
+ << QApplication::translate("DeicsOnzeGuiBase", "24dB", 0, QApplication::UnicodeUTF8)
+ << QApplication::translate("DeicsOnzeGuiBase", "12dB", 0, QApplication::UnicodeUTF8)
+ );
+#ifndef QT_NO_TOOLTIP
+ EGS3comboBox->setProperty("toolTip", QVariant(QApplication::translate("DeicsOnzeGuiBase", "EG Shift", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_TOOLTIP
+ DET3Label->setText(QApplication::translate("DeicsOnzeGuiBase", "DET3", 0, QApplication::UnicodeUTF8));
+#ifndef QT_NO_TOOLTIP
+ DET3Slider->setProperty("toolTip", QVariant(QApplication::translate("DeicsOnzeGuiBase", "Detune", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_TOOLTIP
+#ifndef QT_NO_WHATSTHIS
+ DET3Slider->setProperty("whatsThis", QVariant(QApplication::translate("DeicsOnzeGuiBase", "Attack Rate of the operator 1", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_WHATSTHIS
+#ifndef QT_NO_TOOLTIP
+ DET3SpinBox->setProperty("toolTip", QVariant(QApplication::translate("DeicsOnzeGuiBase", "Coarse Ratio", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_TOOLTIP
+ deicsOnzeTabWidget->setTabText(deicsOnzeTabWidget->indexOf(TabPage2), QApplication::translate("DeicsOnzeGuiBase", "Op &3", 0, QApplication::UnicodeUTF8));
+ Frequency4groupBox->setTitle(QApplication::translate("DeicsOnzeGuiBase", "Frequency 4", 0, QApplication::UnicodeUTF8));
+ CoarseRatio4Label->setText(QApplication::translate("DeicsOnzeGuiBase", "Coarse 4", 0, QApplication::UnicodeUTF8));
+ FineRatio4Label->setText(QApplication::translate("DeicsOnzeGuiBase", "Fine 4", 0, QApplication::UnicodeUTF8));
+ Freq4Label->setText(QApplication::translate("DeicsOnzeGuiBase", "Freq 4", 0, QApplication::UnicodeUTF8));
+ Fix4CheckBox->setText(QApplication::translate("DeicsOnzeGuiBase", "FIX", 0, QApplication::UnicodeUTF8));
+#ifndef QT_NO_TOOLTIP
+ FineRatio4SpinBox->setProperty("toolTip", QVariant(QApplication::translate("DeicsOnzeGuiBase", "Fine Ratio", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_TOOLTIP
+#ifndef QT_NO_TOOLTIP
+ Freq4SpinBox->setProperty("toolTip", QVariant(QApplication::translate("DeicsOnzeGuiBase", "Fixed Frequency", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_TOOLTIP
+#ifndef QT_NO_TOOLTIP
+ CoarseRatio4SpinBox->setProperty("toolTip", QVariant(QApplication::translate("DeicsOnzeGuiBase", "Coarse Ratio", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_TOOLTIP
+ Scaling4GroupBox->setTitle(QApplication::translate("DeicsOnzeGuiBase", "Scaling 4", 0, QApplication::UnicodeUTF8));
+ LS4Label->setText(QApplication::translate("DeicsOnzeGuiBase", "LS4", 0, QApplication::UnicodeUTF8));
+ RS4Label->setText(QApplication::translate("DeicsOnzeGuiBase", "RS4", 0, QApplication::UnicodeUTF8));
+#ifndef QT_NO_TOOLTIP
+ LS4Slider->setProperty("toolTip", QVariant(QApplication::translate("DeicsOnzeGuiBase", "Level Scaling", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_TOOLTIP
+#ifndef QT_NO_WHATSTHIS
+ LS4Slider->setProperty("whatsThis", QVariant(QApplication::translate("DeicsOnzeGuiBase", "Attack Rate of the operator 1", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_WHATSTHIS
+#ifndef QT_NO_TOOLTIP
+ RS4Slider->setProperty("toolTip", QVariant(QApplication::translate("DeicsOnzeGuiBase", "Rate Scaling", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_TOOLTIP
+#ifndef QT_NO_WHATSTHIS
+ RS4Slider->setProperty("whatsThis", QVariant(QApplication::translate("DeicsOnzeGuiBase", "Attack Rate of the operator 1", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_WHATSTHIS
+#ifndef QT_NO_TOOLTIP
+ RS4SpinBox->setProperty("toolTip", QVariant(QApplication::translate("DeicsOnzeGuiBase", "Coarse Ratio", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_TOOLTIP
+#ifndef QT_NO_TOOLTIP
+ LS4SpinBox->setProperty("toolTip", QVariant(QApplication::translate("DeicsOnzeGuiBase", "Coarse Ratio", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_TOOLTIP
+ Env4GroupBox->setTitle(QApplication::translate("DeicsOnzeGuiBase", "Envelope 4", 0, QApplication::UnicodeUTF8));
+#ifndef QT_NO_TOOLTIP
+ AR4Slider->setProperty("toolTip", QVariant(QApplication::translate("DeicsOnzeGuiBase", "Attack Rate", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_TOOLTIP
+#ifndef QT_NO_WHATSTHIS
+ AR4Slider->setProperty("whatsThis", QVariant(QString()));
+#endif // QT_NO_WHATSTHIS
+ AR4Label->setText(QApplication::translate("DeicsOnzeGuiBase", "AR4", 0, QApplication::UnicodeUTF8));
+ RR4Label->setText(QApplication::translate("DeicsOnzeGuiBase", "RR4", 0, QApplication::UnicodeUTF8));
+ D2R4Label->setText(QApplication::translate("DeicsOnzeGuiBase", "D2R4", 0, QApplication::UnicodeUTF8));
+#ifndef QT_NO_TOOLTIP
+ D2R4Slider->setProperty("toolTip", QVariant(QApplication::translate("DeicsOnzeGuiBase", "2\302\260 Decay Rate", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_TOOLTIP
+#ifndef QT_NO_TOOLTIP
+ D1L4Slider->setProperty("toolTip", QVariant(QApplication::translate("DeicsOnzeGuiBase", "1\302\260 Decay Level", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_TOOLTIP
+ D1L4Label->setText(QApplication::translate("DeicsOnzeGuiBase", "D1L4", 0, QApplication::UnicodeUTF8));
+ D1R4Label->setText(QApplication::translate("DeicsOnzeGuiBase", "D1R4", 0, QApplication::UnicodeUTF8));
+#ifndef QT_NO_TOOLTIP
+ D1R4Slider->setProperty("toolTip", QVariant(QApplication::translate("DeicsOnzeGuiBase", "1\302\260 Decay Rate", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_TOOLTIP
+#ifndef QT_NO_TOOLTIP
+ RR4Slider->setProperty("toolTip", QVariant(QApplication::translate("DeicsOnzeGuiBase", "Release Rate", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_TOOLTIP
+#ifndef QT_NO_TOOLTIP
+ D1R4SpinBox->setProperty("toolTip", QVariant(QApplication::translate("DeicsOnzeGuiBase", "Coarse Ratio", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_TOOLTIP
+#ifndef QT_NO_TOOLTIP
+ D1L4SpinBox->setProperty("toolTip", QVariant(QApplication::translate("DeicsOnzeGuiBase", "Coarse Ratio", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_TOOLTIP
+#ifndef QT_NO_TOOLTIP
+ D2R4SpinBox->setProperty("toolTip", QVariant(QApplication::translate("DeicsOnzeGuiBase", "Coarse Ratio", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_TOOLTIP
+#ifndef QT_NO_TOOLTIP
+ RR4SpinBox->setProperty("toolTip", QVariant(QApplication::translate("DeicsOnzeGuiBase", "Coarse Ratio", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_TOOLTIP
+#ifndef QT_NO_TOOLTIP
+ AR4SpinBox->setProperty("toolTip", QVariant(QApplication::translate("DeicsOnzeGuiBase", "Attack Rate", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_TOOLTIP
+ Vol4groupBox->setTitle(QApplication::translate("DeicsOnzeGuiBase", "Vol 4", 0, QApplication::UnicodeUTF8));
+#ifndef QT_NO_TOOLTIP
+ Vol4Slider->setProperty("toolTip", QVariant(QApplication::translate("DeicsOnzeGuiBase", "Volume", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_TOOLTIP
+#ifndef QT_NO_WHATSTHIS
+ Vol4Slider->setProperty("whatsThis", QVariant(QString()));
+#endif // QT_NO_WHATSTHIS
+#ifndef QT_NO_TOOLTIP
+ Vol4SpinBox->setProperty("toolTip", QVariant(QApplication::translate("DeicsOnzeGuiBase", "Coarse Ratio", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_TOOLTIP
+ sensitivity4groupBox->setTitle(QApplication::translate("DeicsOnzeGuiBase", "Sensitivity 4", 0, QApplication::UnicodeUTF8));
+ EGS4Label->setText(QApplication::translate("DeicsOnzeGuiBase", "EBS4", 0, QApplication::UnicodeUTF8));
+ KVS4Label->setText(QApplication::translate("DeicsOnzeGuiBase", "KVS4", 0, QApplication::UnicodeUTF8));
+ AME4CheckBox->setText(QApplication::translate("DeicsOnzeGuiBase", "AME4", 0, QApplication::UnicodeUTF8));
+#ifndef QT_NO_TOOLTIP
+ AME4CheckBox->setProperty("toolTip", QVariant(QApplication::translate("DeicsOnzeGuiBase", "Amplitude Modulation Enable", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_TOOLTIP
+#ifndef QT_NO_TOOLTIP
+ KVS4Slider->setProperty("toolTip", QVariant(QApplication::translate("DeicsOnzeGuiBase", "Key Velocity Sensitivity", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_TOOLTIP
+#ifndef QT_NO_TOOLTIP
+ EBS4Slider->setProperty("toolTip", QVariant(QApplication::translate("DeicsOnzeGuiBase", "EG Bias Sensitivity", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_TOOLTIP
+#ifndef QT_NO_TOOLTIP
+ KVS4SpinBox->setProperty("toolTip", QVariant(QApplication::translate("DeicsOnzeGuiBase", "Coarse Ratio", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_TOOLTIP
+#ifndef QT_NO_TOOLTIP
+ EBS4SpinBox->setProperty("toolTip", QVariant(QApplication::translate("DeicsOnzeGuiBase", "Coarse Ratio", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_TOOLTIP
+ DetWaveEGS4GroupBox->setTitle(QApplication::translate("DeicsOnzeGuiBase", "Detune Wave EGShift 4", 0, QApplication::UnicodeUTF8));
+#ifndef QT_NO_TOOLTIP
+ DET4Slider->setProperty("toolTip", QVariant(QApplication::translate("DeicsOnzeGuiBase", "Detune", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_TOOLTIP
+#ifndef QT_NO_WHATSTHIS
+ DET4Slider->setProperty("whatsThis", QVariant(QApplication::translate("DeicsOnzeGuiBase", "Attack Rate of the operator 1", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_WHATSTHIS
+ DET4Label->setText(QApplication::translate("DeicsOnzeGuiBase", "DET4", 0, QApplication::UnicodeUTF8));
+ WaveForm4ComboBox->clear();
+ WaveForm4ComboBox->insertItems(0, QStringList()
+ << QApplication::translate("DeicsOnzeGuiBase", "Wave1", 0, QApplication::UnicodeUTF8)
+ << QApplication::translate("DeicsOnzeGuiBase", "Wave2", 0, QApplication::UnicodeUTF8)
+ << QApplication::translate("DeicsOnzeGuiBase", "Wave3", 0, QApplication::UnicodeUTF8)
+ << QApplication::translate("DeicsOnzeGuiBase", "Wave4", 0, QApplication::UnicodeUTF8)
+ << QApplication::translate("DeicsOnzeGuiBase", "Wave5", 0, QApplication::UnicodeUTF8)
+ << QApplication::translate("DeicsOnzeGuiBase", "Wave6", 0, QApplication::UnicodeUTF8)
+ << QApplication::translate("DeicsOnzeGuiBase", "Wave7", 0, QApplication::UnicodeUTF8)
+ << QApplication::translate("DeicsOnzeGuiBase", "Wave8", 0, QApplication::UnicodeUTF8)
+ );
+#ifndef QT_NO_TOOLTIP
+ WaveForm4ComboBox->setProperty("toolTip", QVariant(QApplication::translate("DeicsOnzeGuiBase", "Wave Form", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_TOOLTIP
+#ifndef QT_NO_WHATSTHIS
+ WaveForm4ComboBox->setProperty("whatsThis", QVariant(QApplication::translate("DeicsOnzeGuiBase", "Wave form 1 = <i>sin(<b>t</b>)</i><br>\n"
+"Wave form 2 = <i>sin(<b>t</b>)*abs(sin(<b>t</b>))</i><br>\n"
+"Wave form 3 = <i>if <b>t</b>&#060 pi then sin(<b>t</b>) else 0</i><br>\n"
+"Wave form 4 = <i>if <b>t</b>&#060 pi then sin(<b>t</b>)*abs(sin(<b>t</b>)) else 0</i><br>\n"
+"Wave form 5 = <i>if <b>t</b>&#060 pi then sin(2*<b>t</b>) else 0</i><br>\n"
+"Wave form 6 = <i>if <b>t</b>&#060 pi then sin(2*<b>t</b>)*abs(sin(2*<b>t</b>)) else 0</i><br>\n"
+"Wave form 7 = <i>if <b>t</b>&#060 pi then abs(sin(2*<b>t</b>)) else 0</i><br>\n"
+"Wave form 8 = <i>if <b>t</b>&#060 pi then sin(2*<b>t</b>)*sin(2*<b>t</b>) else 0</i>", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_WHATSTHIS
+ EGS4comboBox->clear();
+ EGS4comboBox->insertItems(0, QStringList()
+ << QApplication::translate("DeicsOnzeGuiBase", "96dB", 0, QApplication::UnicodeUTF8)
+ << QApplication::translate("DeicsOnzeGuiBase", "48dB", 0, QApplication::UnicodeUTF8)
+ << QApplication::translate("DeicsOnzeGuiBase", "24dB", 0, QApplication::UnicodeUTF8)
+ << QApplication::translate("DeicsOnzeGuiBase", "12dB", 0, QApplication::UnicodeUTF8)
+ );
+#ifndef QT_NO_TOOLTIP
+ EGS4comboBox->setProperty("toolTip", QVariant(QApplication::translate("DeicsOnzeGuiBase", "EG Shift", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_TOOLTIP
+#ifndef QT_NO_TOOLTIP
+ DET4SpinBox->setProperty("toolTip", QVariant(QApplication::translate("DeicsOnzeGuiBase", "Coarse Ratio", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_TOOLTIP
+ deicsOnzeTabWidget->setTabText(deicsOnzeTabWidget->indexOf(TabPage3), QApplication::translate("DeicsOnzeGuiBase", "Op &4", 0, QApplication::UnicodeUTF8));
+ } // retranslateUi
+
+
+protected:
+ enum IconID
+ {
+ image0_ID,
+ unknown_ID
+ };
+ static QPixmap qt_get_icon(IconID id)
+ {
+ static const char* const image0_data[] = {
+"479 360 270 2",
+"cl c #6a3039",
+"ch c #733039",
+"cb c #733439",
+"bY c #7b3439",
+"ca c #7b3441",
+"bV c #7b3839",
+"b0 c #7b3841",
+"bS c #833839",
+"bO c #833841",
+"bX c #833c41",
+"bK c #8b3841",
+"bF c #8b3c41",
+"bL c #8b3c4a",
+"bZ c #8b4041",
+"b5 c #8b404a",
+"bx c #943c41",
+"bG c #943c4a",
+"bv c #944041",
+"bA c #94404a",
+"b4 c #94444a",
+"bh c #9c4041",
+"be c #9c404a",
+"bj c #9c444a",
+"b8 c #9c484a",
+"cd c #9c4852",
+"ci c #9c5d5a",
+"ce c #9c5d62",
+"cj c #9c615a",
+"cf c #9c6162",
+"#a c #a43841",
+"b. c #a4404a",
+"a5 c #a4444a",
+"bd c #a44452",
+"bq c #a4484a",
+"bo c #a44852",
+"c# c #a44c4a",
+"cc c #a44c52",
+"bP c #a46162",
+"b1 c #a46562",
+".2 c #ac3841",
+".1 c #ac3c41",
+"aV c #ac444a",
+"a9 c #ac4452",
+"aR c #ac484a",
+"a1 c #ac4852",
+"b7 c #ac4c4a",
+"bs c #ac4c52",
+"c. c #ac5052",
+"bN c #ac6162",
+"bC c #ac6562",
+"bE c #ac656a",
+".Y c #b43c41",
+".0 c #b43c4a",
+"#c c #b44041",
+".Z c #b4404a",
+"aD c #b4484a",
+"aF c #b44852",
+"aO c #b44c52",
+"bz c #b44c5a",
+"br c #b45052",
+"bB c #b4505a",
+"b2 c #b45552",
+"b3 c #b4555a",
+"bQ c #b46562",
+"bt c #b4656a",
+"cg c #b46962",
+"bb c #b4696a",
+"## c #bd4041",
+".X c #bd404a",
+".W c #bd444a",
+"ay c #bd484a",
+"ax c #bd4852",
+"as c #bd4c52",
+"aP c #bd4c5a",
+"aQ c #bd5052",
+"aX c #bd505a",
+"bu c #bd5552",
+"bw c #bd555a",
+"bW c #bd595a",
+"a8 c #bd696a",
+"bk c #bd6973",
+"a0 c #bd6d6a",
+"a2 c #bd6d73",
+".U c #c5444a",
+".V c #c54452",
+"#s c #c5484a",
+"#v c #c54852",
+"ad c #c54c52",
+"av c #c54c5a",
+"ak c #c55052",
+"aq c #c5505a",
+"aN c #c5555a",
+"bn c #c5595a",
+"by c #c55962",
+"bR c #c55d5a",
+"bU c #c55d62",
+".3 c #c5656a",
+".# c #c5696a",
+"a3 c #c56d6a",
+"aJ c #c56d73",
+"aE c #c57173",
+"#. c #cd444a",
+"#n c #cd4452",
+".T c #cd484a",
+".S c #cd4852",
+"#A c #cd4c52",
+"#3 c #cd5052",
+"a. c #cd505a",
+"ah c #cd555a",
+"aL c #cd595a",
+"aZ c #cd5962",
+"bm c #cd5d5a",
+"bg c #cd5d62",
+"bJ c #cd6162",
+"b9 c #cd6562",
+".a c #cd696a",
+"Qt c #cd6973",
+"#g c #cd6d6a",
+".b c #cd6d73",
+"b6 c #cd716a",
+"at c #cd7173",
+"az c #cd717b",
+"an c #cd7573",
+"au c #cd757b",
+".9 c #d5484a",
+".R c #d54852",
+".Q c #d54c52",
+"#G c #d54c5a",
+"#E c #d55052",
+"#U c #d5505a",
+"#1 c #d5555a",
+"ag c #d5595a",
+"ap c #d55962",
+"aK c #d55d5a",
+"aI c #d55d62",
+"ba c #d56162",
+"bl c #d5616a",
+"bD c #d56562",
+"bH c #d5656a",
+"bT c #d5696a",
+".4 c #d56d6a",
+".c c #d56d73",
+"ck c #d5716a",
+"#i c #d57173",
+"#r c #d5717b",
+"al c #d57573",
+"aa c #d5757b",
+"#9 c #d5797b",
+".P c #de4c52",
+"#f c #de4c5a",
+".N c #de5052",
+".O c #de505a",
+"#J c #de555a",
+"#Y c #de595a",
+"#5 c #de5962",
+"ai c #de5d5a",
+"aj c #de5d62",
+"aH c #de6162",
+"aW c #de616a",
+"a7 c #de6562",
+"a6 c #de656a",
+"bp c #de696a",
+"bM c #de6973",
+"bI c #de6d6a",
+".d c #de6d73",
+".e c #de7173",
+".f c #de717b",
+"#o c #de7573",
+"#l c #de757b",
+"#C c #de797b",
+"#6 c #de7983",
+"#7 c #de7d7b",
+"#8 c #de7d83",
+".8 c #e65052",
+".M c #e6505a",
+".L c #e6555a",
+"#M c #e6595a",
+"#R c #e65962",
+"#0 c #e65d5a",
+"#Z c #e65d62",
+"ae c #e66162",
+"ao c #e6616a",
+"aC c #e66562",
+"aA c #e6656a",
+"aY c #e6696a",
+"b# c #e66973",
+"bc c #e66d6a",
+"bf c #e66d73",
+".i c #e67173",
+".g c #e6717b",
+".j c #e67573",
+".h c #e6757b",
+"#p c #e6797b",
+"#B c #e67983",
+"#H c #e67d7b",
+"#F c #e67d83",
+".J c #ee555a",
+".I c #ee595a",
+".K c #ee5962",
+"#N c #ee5d5a",
+"#P c #ee5d62",
+"#X c #ee6162",
+"#4 c #ee616a",
+"ab c #ee6562",
+"ac c #ee656a",
+"aw c #ee696a",
+"aG c #ee6973",
+"aM c #ee6d6a",
+"aS c #ee6d73",
+"a4 c #ee7173",
+"bi c #ee717b",
+".5 c #ee7573",
+".k c #ee757b",
+".l c #ee797b",
+"#m c #ee7983",
+"#u c #ee7d7b",
+"#t c #ee7d83",
+"#K c #ee8183",
+"#2 c #ee818b",
+".H c #f6595a",
+".G c #f65962",
+"#d c #f65d5a",
+".F c #f65d62",
+"#L c #f66162",
+"#T c #f6616a",
+"#V c #f66562",
+"#W c #f6656a",
+"a# c #f6696a",
+"af c #f66973",
+"am c #f66d6a",
+"ar c #f66d73",
+"aB c #f67173",
+"aU c #f6717b",
+"aT c #f67573",
+".6 c #f6757b",
+".m c #f6797b",
+".n c #f67983",
+"#h c #f67d7b",
+"#e c #f67d83",
+"#x c #f68183",
+"#I c #f6818b",
+"#Q c #f68583",
+"#O c #f6858b",
+".E c #ff5d62",
+".C c #ff6162",
+".D c #ff616a",
+".7 c #ff6562",
+".B c #ff656a",
+".A c #ff696a",
+".z c #ff6973",
+".y c #ff6d6a",
+".x c #ff6d73",
+".v c #ff7173",
+".w c #ff717b",
+".u c #ff7573",
+".t c #ff757b",
+".q c #ff797b",
+".o c #ff7983",
+".r c #ff7d7b",
+".p c #ff7d83",
+".s c #ff8183",
+"#b c #ff818b",
+"#k c #ff8583",
+"#j c #ff858b",
+"#q c #ff898b",
+"#w c #ff8994",
+"#z c #ff8d8b",
+"#y c #ff8d94",
+"#D c #ff9194",
+"#S c #ff919c",
+"Qt.#Qt.aQt.a.b.a.c.a.c.a.c.c.c.c.c.c.c.c.d.c.e.c.e.d.e.d.f.e.e.e.g.e.g.e.g.e.h.e.h.i.h.i.h.i.h.j.k.h.k.h.k.k.k.k.k.k.l.k.l.k.m.k.m.k.m.k.m.m.m.m.n.m.m.m.n.m.n.m.o.m.p.m.p.m.p.m.p.q.p.q.p.q.p.q.p.r.p.r.p.p.p.r.p.p.p.r.p.p.p.p.p.p.p.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.p.p.r.p.p.p.r.p.p.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.p.q.p"
+".q.o.q.o.q.o.q.q.q.o.q.q.q.o.q.q.t.q.t.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.t.t.u.t.t.t.v.t.v.t.v.t.v.t.v.t.v.w.v.w.v.w.v.w.v.v.v.w.x.v.x.v.x.v.x.v.x.v.x.x.x.x.x.x.x.x.y.x.z.x.A.x.A.x.A.x.A.z.A.z.A.z.A.z.A.A.B.z.B.A.B.A.B.B.B.B.B.B.B.B.B.B.C.B.D.B.C.B.C.D.C.D.C.D.C.D.E.D.E.D.E.C.F.C.F.E.F.E.F.F.F.F.G.F.H.F.H.G.I.G.I.G.I.G.J.K.J.K.J.I.L.J.L.J.L.J.M.L.M.L.M.L.N.M.N.M.N.O.P.O.P.O.Q.P.Q.P.Q.Q.R.Q.S.Q.T.R.T.S.T.S.U.S.U.V.U.U.W.U.X.W.X.X.X.X.Y.Z.Y.0.1.0.2.1",
+".3.a.#.a.aQt.aQt.a.b.a.c.a.c.a.c.4.c.4.c.c.d.c.d.c.e.c.e.d.e.d.e.e.e.e.e.e.g.e.i.e.h.e.h.i.h.i.h.i.k.i.k.j.k.j.k.k.k.5.k.k.l.k.l.k.m.k.m.k.m.k.m.6.m.m.m.m.m.m.m.m.o.m.q.m.o.m.r.m.p.m.p.q.p.q.p.q.p.q.p.q.p.r.p.r.p.r.p.r.p.r.p.r.p.r.p.r.p.r.p.p.p.r.p.p.s.r.s.p.s.r.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.r.s.p.s.r.s.p.p.r.p.p.p.r.p.r.p.r.p.r.p.r.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.p.q.p.q.p.q.p.q.q.q.o.q"
+".q.q.q.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.q.t.q.u.t.t.t.u.t.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.t.v.v.v.w.v.v.v.v.v.v.v.v.x.v.x.v.x.v.x.v.x.x.x.x.y.x.x.x.y.x.A.x.A.x.A.x.A.x.A.z.A.z.A.z.A.A.A.A.B.A.B.A.B.A.B.A.B.B.B.B.B.B.B.B.7.B.C.B.C.B.C.B.C.D.C.D.C.C.C.D.C.C.E.C.E.C.E.C.F.E.F.E.F.F.F.F.H.F.H.F.H.F.H.G.I.G.I.G.J.I.J.I.J.I.J.J.L.J.L.J.L.L.M.L.8.L.8.M.N.M.N.M.P.N.P.O.Q.N.Q.P.Q.Q.Q.Q.9.Q.S.R.T.S.T.S#..S.U.S.U.U.U.U.X.U.X.U##.X##.X.Y.Z.Y.0.1.Y.2.1#a",
+"Qt.#Qt.a.b.a.c.a.c.a.cQt.c.c.c.c.c.c.d.c.e.c.e.c.e.d.f.e.e.e.g.e.g.e.g.e.h.e.h.i.h.i.h.i.h.j.k.h.k.h.k.k.k.k.l.k.l.k.l.k.l.k.m.k.m.l.n.m.m.m.n.m.n.m.n.m.n.m.p.m.p.m.p.m.p.m.p.q.p.q.p.q.p.r.p.p.p.r.p.p.p.r.p.p.p.p.p.p.p.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s#b.s.s.s#b.s.s.s#b.s.s.s#b.s.s.s#b.s.s.s#b.s.s.s#b.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.p.p.p.p.r.p.p.p.r.p.p.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p"
+".q.p.q.p.q.o.q.o.q.o.q.o.q.q.q.o.q.q.t.q.t.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.t.t.u.t.t.t.v.t.v.t.v.t.v.t.v.t.v.w.v.w.v.w.v.w.v.v.v.w.x.v.x.v.x.v.x.v.x.x.x.x.x.x.x.x.x.x.y.x.z.x.A.x.A.x.A.x.A.z.A.z.A.z.A.z.B.A.B.z.B.A.B.A.B.B.B.B.B.B.B.B.B.B.C.B.D.B.C.B.C.D.C.D.C.D.C.D.E.C.E.D.E.C.F.E.F.E.F.E.F.F.G.F.G.F.H.F.H.G.I.G.I.G.I.G.J.K.J.K.J.J.L.J.L.J.L.J.M.L.M.L.M.M.N.M.N.O.N.O.P.O.Q.O.Q.P.Q.Q.Q.Q.R.Q.S.R.T.S.T.S.U.S.U.S.U.V.U.U.X.U.X.W##.X#c.X.Y.Z.Y.0.1.1",
+".#.a.#Qt.aQt.a.b.a.b.a.c.a.c.4.c.4.c.c.c.c.c.c.e.c.e.d.e.d.e.e.e.e.e.e.g.e.i.e.h.e.h.i.h.i.h.i.k.j.k.j.k.j.k.k.k.5.k.k.l.k.l.k.m.k.m.k.m.k.m.m.m.l.m.m.m.m.m.m.o.m.q.m.p.m.p.m.p.m.p.q.p.q.p.q.p.q.p.r.p.r.p.r.p.r.p.r.p.r.p.r.p.r.p.p.p.r.p.p.s.r.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.r.s.p.s.r.s.p.p.r.p.p.p.r.p.r.p.r.p.r.p.r.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.p.q.p.q.q.q"
+".o.q.q.q.q.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.q.t.q.t.t.t.t.u.t.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.t.v.v.v.w.v.v.v.v.v.v.v.v.x.v.x.v.x.v.x.v.x.x.x.x.y.x.x.x.y.x.A.x.A.x.A.x.A.x.A.z.A.z.A.z.A.A.A.A.B.A.B.A.B.A.B.A.B.B.B.B.7.B.B.B.7.B.C.B.C.B.C.B.C.D.C.D.C.C.C.D.E.C.E.C.E.C.E.E.F.E.F.E#d.F.G.F.H.F.H.F.I.G.I.G.I.G.I.G.J.I.J.I.J.I.J.J.L.J.L.J.8.L.M.L.8.L.N.M.N.M.N.O.P.N.P.N.Q.P.Q.P.Q.Q.R.Q.T.Q.T.R.T.S.T.S.U.T.U.S.U.U.U.U.X.U.X.X##.X#c.X.Y.Z.Y.Y.1.1.2",
+"Qt.aQt.a.b.a.c.a.cQt.c.b.c.c.c.c.d.c.e.c.e.c.e.c.f.e.e.e.f.e.f.e.g.e.h.e.h.i.h.i.h.i.h.j.k.h.k.h.k.h.k.h.l.k.l.k.l.k.l.k.m.k.m.l.n.l.m.l.n.m.n.m.n.m#e.m.p.m.p.m.p.m.p.m.p.q.p.q.p.r.p.r.p.p.p.r.p.p.p.p.p.p.p.p.p.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.s.s.s.s.s.s.s.s.s.s.s#b.s.s.s#b.s.s.s#b.s.s.s#b.s.s.s#b.s.s.s#b.s.s.s#b.s.s.s#b.s.s.s#b.s.s.s#b.s.s.s#b.s.s.s#b.s.s.s#b.s.s.s#b.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p.p.p.r.p.p.p.r.p.r.p.q.p.q.p.q.p.q.p"
+".q.p.q.p.q.p.q.o.q.o.q.o.q.o.q.q.q.o.q.q.q.q.t.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.t.t.u.t.t.t.u.t.v.t.v.t.v.t.v.t.v.w.v.w.v.w.v.w.v.v.v.w.x.v.x.v.x.v.x.v.x.x.x.x.x.x.x.x.x.x.y.x.z.x.A.x.A.x.A.z.A.z.A.z.A.z.A.z.B.A.B.z.B.A.B.A.B.B.B.B.B.B.B.B.D.B.C.B.D.B.C.B.C.D.C.D.C.D.C.D.E.C.E.D.E.C.F.E.F.E.F.E.F.F.G.F.G.F.H.F.H.G.I.G.I.G.I.G.J.I.J.K.J.J.L.J.L.J.L.L.M.L.8.L.M.M.N.M.N.O.P.O.P.O.Q#f.Q.P.Q.Q.R.Q.S.Q.S.R.T.S.T.S.U.S.U.U.U.V.U.U.X.U.X.X#c.X.Y.Z.Y.Z.1.Y",
+".#Qt.#Qt.a.b.a.b.a.c.a.c#g.c.4.c.c.c.c.c.c.e.c.e.c.e.c.e.e.e.e.e.e.g.e.i.e.h.e.h.i.h.i.h.i.h.j.k.j.k.j.k.h.k.j.k.k.l.k.l.k.m.k.m.k.m.k.m.l.m.l.m.m.m.m.m.m.o.m#h.m.p.m.p.m.p.m.p.q.p.q.p.q.p.r.p.r.p.r.p.r.p.r.p.r.p.r.p.p.p.r.p.p.s.r.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.r.s.p.s.r.s.p.p.r.p.p.p.r.p.r.p.r.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.p.q.p.q"
+".r.q.o.q.q.q.o.q.q.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.q.t.t.t.t.u.t.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.t.v.v.v.w.v.v.v.v.v.v.v.v.x.v.x.v.x.v.x.v.x.x.x.x.y.x.x.x.y.x.A.x.A.x.A.x.A.x.A.z.A.z.A.z.A.A.A.A.B.A.B.A.B.A.B.A.B.B.B.B.7.B.B.B.C.B.C.B.C.B.C.B.C.D.C.D.C.C.C.D.E.C.E.C.E.C.E.E.F.E.F.E#d.F.G.F.H.F.H.F.I.G.I.G.I.G.I.G.J.I.J.I.J.J.L.J.L.J.L.J.8.L.M.L.N.M.N.M.N.M.N.O.P.N.P.N.Q.P.Q.P.Q.Q.R.Q.T.Q.T.R.T.S#..S.U.T.U#..U.U.U.U.X.W.X.X#c.X.Y.X.Y#c.Y.Y.1",
+"Qt.a.b.a.b.a.cQt.c#g.c.c.c.c.c.c#i.c.e.c.e.c.f.e.e.e.f.e.f.e.g.e.h.e.h.i.h.i.h.g.h.j.k.h.k.h.k.h.k.h.l.k.l.k.l.k.l.k.m.k.m.l.n.l.m.l.n.m.n.m.n.m#e.m.p.m.p.m.p.m.p.m.p.q.p.r.p.p.p.r.p.p.p.r.p.p.p.p.p.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.s.s.s.s.s.s.s.s.s#b.s.s.s#b.s.s.s#b.s.s.s#b.s.s.s#b.s.s.s#b.s.s.s#b.s.s.s#b.s#b.s#b.s#b.s#b.s#b.s#b.s#b.s#b.s.s.s#b.s.s.s#b.s.s.s#b.s.s.s#b.s.s.s#b.s.s.s#b.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.p.p.r.p.p.p.r.p.p.p.r.p.q.p.q.p"
+".q.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.o.q.q.q.q.t.q.t.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.u.t.t.t.u.t.v.t.v.t.v.t.v.t.v.w.v.w.v.w.v.w.v.v.v.w.x.v.x.v.x.v.x.v.x.x.x.x.x.x.x.x.x.x.A.x.z.x.A.x.A.x.A.z.A.z.A.z.A.z.A.z.B.A.B.A.B.A.B.A.B.B.B.B.B.B.B.B.D.B.C.B.C.B.C.D.C.D.C.D.C.D.C.D.E.C.E.D.E.C.F.E.F.E.F.E.F.F.G.F.G.F.H.G.H.G.I.G.I.K.J.K.J.I.J.K.J.J.L.J.L.L.M.L.M.L.8.L.N.M.N.M.N.O.P.O.P.N.Q#f.Q.Q.Q.Q.R.Q.S.Q.S.S.T.S#..S.U.S.U.U.U.U.X.U.X.W.X.X#c.X.Y.Z.Y.0",
+".#Qt.aQt.a.b.a.c.a.c.a.c#g.c.c.c.c.c.c.e.c.e.c.e.c.e.e.e.e.e.e.g.e.i.e.h.e.h.i.h.i.h.i.h.j.h.j.k.j.k.h.k.j.l.k.l.k.l.k.m.k.m.k.m.l.m.l.m.l.m.m.n.m.m.m.n.m#h.m.p.m.p.m.p.m.p.q.p.q.p.r.p.r.p.r.p.r.p.r.p.r.p.p.p.r.p.p.s.r.s.p.s.r.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.r.s.p.s.r.p.p.p.r.p.p.p.r.p.r.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q"
+".p.q.p.q.p.q.q.q.o.q.q.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.q.t.q.t.t.u.t.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.t.v.v.v.w.v.v.v.v.v.v.x.v.x.v.x.v.x.v.x.v.x.x.x.x.y.x.x.x.y.x.A.x.A.x.A.x.A.x.A.z.A.A.A.z.A.A.A.A.B.A.B.A.B.A.B.A.B.B.B.B.7.B.B.B.C.B.C.B.C.B.C.D.C.D.C.D.C.C.C.D.E.C.E.C.F.C.F.E.F.E.F.E#d.F.G.F.H.F.H.F.I.G.I.G.I.H.J.G.J.I.J.I.L.J.L.J.L.J.L.L.8.L.8.L.N.M.N.M.N.O.P.O.P.N.P.P.Q.P.Q.Q.R.Q.R.Q.T.R.T.R.T.S#..S.U.T.U.U.U.U.X.U##.W##.X#c.X.Y.Z.Y.Y.1",
+".b.a.b.a.cQt.c#g.c.c.c.c.c.c#i.c.e.c.e.c.f.e.e.e.f.e.f.e.g.e.h.e.h.i.h.i.h.g.h.j.k.h.k.h.k.h.k.h.l.k.l.k.l.k.l.k.m.l.m.l.n.l.m.l.n.m.n.m.n.m#e.m.p.m.p.m.p.m.p.m.p.r.p.r.p.p.p.r.p.p.p.p.p.p.p.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.s.s.s.s.s.s.s#b.s.s.s#b.s.s.s#b.s.s.s#b.s.s.s#b.s#b.s#b.s#b.s#b.s#b.s#b.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#b.s#b.s#b.s#b.s#b.s#b.s.s.s#b.s.s.s#b.s.s.s#b.s.s.s#b.s.s.s#b.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p.p.p.r.p.p.p.r.p.r.p"
+".q.p.q.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.o.q.q.q.q.t.q.t.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.u.t.t.t.u.t.v.t.v.t.v.t.v.t.v.w.v.w.v.w.v.w.v.v.v.w.x.v.x.v.x.v.x.v.x.x.x.x.x.x.x.x.x.x.A.x.z.x.A.x.A.x.A.z.A.z.A.z.A.z.A.z.B.A.B.A.B.A.B.B.B.B.B.B.B.B.B.B.D.B.C.B.C.B.C.D.C.D.C.D.C.D.E.D.E.C.E.C.E.E.F.E.F.E.F.E.G.F.H.F.G.F.I.G.I.G.I.G.I.K.J.K.J.I.J.J.L.J.L.J.L.L.M.L.M.L.N.M.N.M.N.M.P.O.P.O.P.P.Q.P.Q.Q.R.Q.R.Q.T.R.S.S.T.S#..S.U.S.U.U.U.U.X.U.X.X.X.X#c.X.Y.Z",
+".aQt.a.b.a.c.a.c.a.c#g.c.c.c.4.c.c.e.c.e.c.e.c.e.e.e.e.e.e.g.e.i.e.h.e.h.i.h.i.h.i.h.j.h.j.k.j.k.h.k.j.l.k.l.k.l.k.l.k.l.k.m.l.m.l.m.l.m.m.n.m.m.m#e.m#e.m.p.m.p.m.p.m.p.q.p.q.p.r.p.r.p.r.p.r.p.r.p.r.p.p.p.r.s.p.s.r.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.r.s.p.s.r.p.p.p.r.p.r.p.r.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q"
+".p.q.p.q.p.q.p.q.q.q.o.q.q.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.q.t.q.t.t.u.t.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.t.v.v.v.w.v.v.v.v.v.v.x.v.x.v.x.v.x.v.x.v.x.x.x.x.y.x.x.x.y.x.A.x.A.x.A.x.A.x.A.z.A.A.A.z.A.A.A.A.B.A.B.A.B.A.B.B.B.B.B.B.7.B.B.B.C.B.C.B.C.B.C.D.C.D.C.D.C.C.E.C.E.C.E.C.F.E.F.E.F.E.F.E.H.F.H.F.H.F.H.G.I.G.I.G.I.I.J.K.J.I.J.I.L.J.L.J.L.L.M.L.8.L.8.L.N.M.N.M.N.O.P.O.P.N.Q.P.Q.Q.Q.Q.R.Q.R.Q.T.R.T.S.T.S#..S.U.U.U.U.U.U.X.U##.X##.X#c.X.Y.Z.1",
+".b.a.cQt.c#g.c.c.c.c.c.c#i.c.e.c.e.c.f.e.e.e.f.e.f.e.g.e.h.e.h.e.h.e.h.g.h.j.h.h.k.h.k.h.k.h.l.k.l.k.l.k.l.k.m.l.m.l.n.l.m.l.n.m.n.m#e.m#e.m.p.m.p.m.p.m.p.m.p.r.p.r.p.p.p.r.p.p.p.p.p.p.p.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.s.s.s.s.s.s.s#b.s.s.s#b.s.s.s#b.s.s.s#b.s#b.s#b.s#b.s#b.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#b.s#b.s#b.s#b.s.s.s#b.s.s.s#b.s.s.s#b.s.s.s#b.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.p.p.r.p.p.p.r.p"
+".r.p.q.p.q.p.q.p.q.p.q.p.q.p.q.p.q.o.q.o.q.q.q.o.q.q.q.o.t.q.t.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.u.t.t.t.u.t.v.t.v.t.v.t.v.t.v.w.v.w.v.w.v.w.v.v.v.w.x.v.x.v.x.v.x.v.x.x.x.x.x.x.x.x.x.x.A.x.A.x.A.x.A.x.A.z.A.z.A.z.A.z.A.z.B.A.B.A.B.A.B.B.B.B.B.B.B.B.B.B.D.B.C.B.C.B.C.D.C.D.C.D.C.D.E.D.E.C.E.C.E.E.F.E.F.E.F.E.G.F.H.F.G.F.I.G.I.G.I.G.J.K.J.K.J.I.L.J.L.J.L.J.M.L.M.L.M.L.N.M.N.M.N.O.P.O.P.O.Q.P.Q.P.Q.Q.R.Q.S.Q.T.R.T.S.T.S.U.S.U.V.U.U.W.U.X.W.X.X.Z.X.Y.Z",
+".a.b.a.c.a.c.a.c#g.c.c.c.4.c.c.e.c.e.c.e.c.e.e.e.e.e.e.f.e.e.e.h.e.h.e.h.i.h.i.h.j.h.j.k.j.k.h.k.j.l.k.l.k.l.k.l.k.l.k.m.l.m.l.m.l.m.m.n.m.m.m#e.m#e.m.p.m.p.m.p.m.p.q.p.r.p.r.p.r.p.r.p.r.p.p.p.r.p.p.s.r.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s#b.s.s.s#b.s.s.s#b.s.s.s#b.s.s.s#b.s.s.s#b.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.r.s.p.p.r.p.p.p.r.p.r.p.r.p.r.p.r.p.r.p.q.p.q"
+".p.q.p.q.p.q.p.q.p.q.q.q.o.q.q.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.q.t.q.t.t.u.t.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.t.v.v.v.w.v.v.v.v.v.v.x.v.x.v.x.v.x.v.x.v.x.x.x.x.y.x.x.x.y.x.A.x.A.x.A.x.A.x.A.z.A.A.A.z.A.A.B.A.B.A.B.A.B.A.B.B.B.B.B.B.7.B.C.B.C.B.C.B.C.B.C.D.C.D.C.D.C.C.E.C.E.C.E.C.F.E.F.E.F.E.F.E.H.F.H.F.H.F.H.G.I.G.I.G.I.I.J.I.J.I.J.J.L.J.L.J.L.L.M.L.8.L.8.M.N.M.N.M.P.N.P.O.Q.N.Q.P.Q.Q.Q.Q.9.Q.S.R.T.S.T.S#..S.U.S.U.U.U.U.X.U.X.U##.X##.X.Y.Z.Y",
+".cQt.c#g.c.b.c.c.c.c#i.c.e.c.e.c.f#i.e.e.f.e.f.e.g.e.h.e.h.e.h.e.h.g.h.j.h.h.h.h.k.h.k.h.l.k.l.k.l.k.l.k.m.l.m.l.n.l.m.l.n.m.n.m#e.m#e.m.p.m.p.m.p.m.p#h.p.p.p.r.p.p.p.r.p.p.p.p.p.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.s.s.s.s.s#b.s.s.s#b.s.s.s#b.s.s.s#b.s#b.s#b.s#b.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#b.s#b.s#b.s.s.s#b.s.s.s#b.s.s.s#b.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.p.p.r.p.p.p"
+".r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.o.q.q.q.o.q.q.t.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.u.t.t.t.u.t.v.t.v.t.v.t.v.t.v.w.v.w.v.w.v.w.v.v.v.w.x.v.x.v.x.v.x.v.x.x.x.x.x.x.x.x.x.x.A.x.A.x.A.x.A.x.A.z.A.z.A.z.A.A.B.z.B.A.B.A.B.A.B.B.B.B.B.B.B.B.C.B.D.B.C.B.C.B.C.D.C.D.C.D.C.D.E.D.E.C.E.C.F.E.F.E.F.E.F.E.G.F.H.F.H.G.I.G.I.G.I.G.J.K.J.K.J.I.L.J.L.J.L.J.M.L.M.L.M.M.N.M.N.O.N.O.P.O.Q.O.Q.P.Q.Q.Q.Q.S.Q.S.R.T.S.T.S.U.S.U.S.U.V.U.U.X.U.X.X##.X#c.X",
+".a.b.a.b.a.c#g.c.c.c.4.c.c#i.c#i.c.e.c.e.e.e.e.e.e.f.e.e.e.h.e.h.e.h.e.h.i.h.j.h.j.k.j.k.h.k.j.l.k.l.k.l.k.l.k.l.l.m.l.m.l.m.l.m.m.n.m.m.m#e.m#e.m.p.m.p.m.p.m.p.r.p#h.p.r.p.r.p.r.p.r.p.p.p.r.s.p.s.r.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s#b.s.s.s#b.s.s.s#j.s#k.s#j.s#k.s#j.s#k.s#j.s#k.s#j.s#k.s#j.s#k.s#j.s#k.s#j.s#k.s#b.s.s.s#b.s.s.s#b.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.r.s.p.p.r.p.p.p.r.p.r.p.r.p.r.p.r.p.r.p.q"
+".p.q.p.q.p.q.p.q.p.q.p.q.r.q.o.q.q.q.q.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.q.t.t.u.t.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.t.v.v.v.w.v.v.v.v.v.v.x.v.x.v.x.v.x.v.x.x.x.x.x.x.y.x.y.x.y.x.A.x.A.x.A.x.A.z.A.z.A.A.A.z.A.A.B.A.B.A.B.A.B.A.B.B.B.B.B.B.7.B.C.B.C.B.C.B.C.B.C.D.C.D.C.D.C.C.E.C.E.C.E.C.F.E.F.E.F.E.F.E.H.F.H.F.H.F.H.G.I.G.I.G.J.I.J.I.J.I.J.J.L.J.L.J.8.L.M.L.8.L.8.M.N.M.N.M.P.N.P.N.Q.P.Q.P.Q.Q.R.Q.T.Q.T.R.T.S.T.S.U.T.U#..U.U.U.U.X.U.X.X##.X#c.X.Y",
+".c#g.c.b.c.b.c.c#i.c.e.c.e.c.f.c.e#i.f.e.f.e.f.e.h.e.h.e.h.e.h.g.h.j.h.h.h.h.k.h.k.h.l.k.l.k.l.k.l.k.l.l.l.l.n.l.n.l.n.m.n.m#e.m#e.m#e.m#e.m.p.m.p#h.p.p.p.r.p.p.p.p.p.p.p.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.s.s.s.s.s.s.s#b.s.s.s#b.s.s.s#b.s#b.s#b.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#b.s#b.s.s.s#b.s.s.s#b.s.s.s#b.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p"
+".p.p.r.p.p.p.r.p.q.p.q.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.o.q.q.q.o.q.q.t.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.u.t.t.t.u.t.v.t.v.t.v.t.v.t.v.w.v.w.v.w.v.w.v.v.v.w.x.v.x.v.x.v.x.v.x.x.x.x.x.x.x.x.x.x.A.x.A.x.A.x.A.z.A.z.A.z.A.z.A.A.B.z.B.A.B.A.B.A.B.B.B.B.B.B.B.B.C.B.D.B.C.B.C.D.C.D.C.D.C.D.E.C.E.D.E.C.F.E.F.E.F.E.F.F.G.F.G.F.H.F.H.G.I.G.I.G.I.G.J.I.J.K.J.J.L.J.L.J.L.L.M.L.8.L.M.M.N.M.N.O.P.O.P.N.Q#f.Q.Q.Q.Q.R.Q.S.Q.S.S.T.S.T.S.U.S.U.U.U.U.U.U.X.U.X.X#c.X",
+".a.b.a.c#g.c.b.c.4.c.c#i.c#i.c.e.c.e.c.e#i.e.e.f.e.e.e.h.e.h.e.h.e.h.i.h.j.h.j.k.j.k.h.k.h.l.k.l.k.l.k.l.k.l.l.m.l.m.l.m.l.m.m.n.m#h.m#e.m#e.m.p.m.p.m.p.m.p#h.p#h.p.r.p.r.p.r.p.r.p.p.s.r.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s#b.s.s.s#b.s#k.s#j.s#k.s#j.s#k.s#j.s#k.s#j.s#k.s#j.s#k.s#j.s#k.s#j.s#k.s#j.s#k.s#j.s#k.s#j.s#k.s#j.s#k.s#j.s#k.s#j.s#k.s#j.s.s.s#b.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.r.p.p.p.r.p.r.p.r.p.r.p.r.p.r"
+".p.r.p.q.p.q.p.q.p.q.p.q.p.q.r.q.o.q.q.q.o.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.q.t.t.u.t.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.t.v.v.v.w.v.v.v.v.v.v.x.v.x.v.x.v.x.v.x.x.x.x.x.x.y.x.y.x.A.x.A.x.A.x.A.x.A.z.A.z.A.A.A.z.A.A.B.A.B.A.B.A.B.B.B.B.B.B.B.B.7.B.C.B.C.B.C.B.C.D.C.D.C.C.C.D.E.C.E.C.E.C.E.E.F.E.F.E#d.F.G.F.H.F.H.F.I.G.I.G.I.G.I.G.J.I.J.I.J.I.J.J.L.J.L.J.8.L.M.L.N.M.N.M.N.O.N.O.P.N.P.N.Q.P.Q.P.Q.Q.R.Q.T.Q.T.R.T.S#..S.U.T.U.U.U.U.U.U.X.W.X.X#c.X.Y",
+".c.b.c.b.c.c.c.c#i.c#i.c.f.c.e#i.f.e.f.e.f.e#l.e.h.e.h.e.h.g.h.j.h.h.h.h.k.h.k.h.l.h.l.h.l.k.l.k#m.l.l.l.n.l.n.l.n.m#e.m#e.m#e.m#e.m#e.m.p.m.p#h.p#e.p#h.p.p.p.p.p.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.s.s.s.s.s#b.s.s.s#b.s.s.s#b.s#b.s#b.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#b.s#b.s#b.s.s.s#b.s.s.s#b.s.s.s#b.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p"
+".r.p.p.p.r.p.p.p.r.p.q.p.q.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.o.q.q.q.o.q.q.t.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.u.t.t.t.u.t.v.t.v.t.v.t.v.t.v.w.v.w.v.w.v.w.v.v.x.w.x.v.x.v.x.v.x.x.x.x.x.x.x.x.y.x.z.x.A.x.A.x.A.x.A.z.A.z.A.z.A.z.A.A.B.z.B.A.B.A.B.B.B.B.B.B.B.B.B.B.C.B.D.B.C.B.C.D.C.D.C.D.C.D.E.C.E.D.E.C.F.E.F.E.F.E.F.F.G.F.G.F.H.F.H.G.I.G.I.G.J.K.J.I.J.K.J.J.L.J.L.L.M.L.M.L.N.L.N.M.N.M.N.O.P.O.P.N.Q.P.Q.Q.Q.Q.R.Q.S.Q.S.S.T.S#..S.U.S.U.U.U.U.X.U.X.W.X.X",
+".a.c#g.c.b.c#g.c.c#i.c#i.c.e.c.e.c.e#i.e.e.f.e.e.e.h.e.h.e.h.e.h.i.h.j.h.j.h.j.h.h.k.h.l.h.l.h.l.k.l.k.l.l.m.l.m.l.m.l.m.m.n.m#h.m#e.m#e.m.p.m.p.m.p#h.p#h.p#h.p.r.p.r.p.p.p.r.p.p.s.r.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s#b.s.s.s#j.s#k.s#j.s#k.s#j.s#k.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#k.s#j.s#k.s#j.s#k.s#j.s#k.s#b.s.s.s#b.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.r.s.p.p.r.p.p.p.r.p.r.p.r"
+".p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.r.q.o.q.q.q.o.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.q.t.t.u.t.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.t.v.v.v.w.v.v.v.v.v.v.x.v.x.v.x.v.x.v.x.x.x.x.x.x.y.x.y.x.A.x.A.x.A.x.A.x.A.z.A.z.A.A.A.z.A.A.B.A.B.A.B.A.B.B.B.B.7.B.B.B.7.B.C.B.C.B.C.B.C.D.C.D.C.C.C.D.E.C.E.C.E.C.E.E.F.E.F.E#d.F.G.F.H.F.H.F.I.G.I.G.I.G.I.G.J.I.J.I.L.J.L.J.L.J.L.L.8.L.8.L.N.M.N.M.N.O.P.O.P.N.P.P.Q.P.Q.Q.R.Q.R.Q.T.R.T.S.T.S#..S.U.T.U.U.U.U.X.U##.X##.X#c",
+".c.b.c.c.c.c#i.c#i.c.e.c.e#i.f.e.f.e.f.e#l.e.h.e.h.e.h.g.h.j.h.h.h.h.k.h.k.h.l.h.l.h.l.k.l.k#m.l.l.l.n.l.n.l.n.l#e.l#e.m#e.m#e.m#e.m.p#h.p#h.p#e.p#h.p.p.p.p.p.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.s.s.s.s.s.s.s#b.s.s.s#b.s.s.s#b.s#b.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#b.s#b.s#b.s.s.s#b.s.s.s#b.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.p"
+".p.p.p.p.p.p.r.p.p.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.o.q.q.q.o.q.q.t.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.u.t.t.t.u.t.v.t.v.t.v.t.v.t.v.w.v.w.v.w.v.w.v.v.x.w.x.v.x.v.x.v.x.x.x.x.x.x.x.x.y.x.z.x.A.x.A.x.A.x.A.z.A.z.A.z.A.z.B.A.B.z.B.A.B.A.B.B.B.B.B.B.B.B.D.B.C.B.C.B.C.B.C.D.C.D.C.D.C.D.E.C.E.D.E.C.F.E.F.E.F.E.G.F.H.F.G.F.H.G.I.G.I.G.I.K.J.K.J.I.J.J.L.J.L.J.L.L.M.L.M.L.N.M.N.M.N.M.P.O.P.O.Q.P.Q.P.Q.Q.R.Q.R.Q.T.R.T.S.T.S.U.S.U#n.U.U.W.U.X.W.X.X",
+".a.c.b.c#g.c.c.c.c#i.c.e.c.e.c.e#i.e.e.f.e.e.e.h.e.h.e.h.e.h.i.h.j.h.j.h.j.h.h.k.h.l.h.l.h.l.k.l.k.l.l.m.l.m.l.m.l.m.l.n.l#h.m#e.m#e.m.p.m.p.m.p#h.p#h.p#h.p.r.p.r.p.p.p.r.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s#b.s.s.s#j.s#k.s#j.s#k.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#k.s#j.s#k.s#j.s#k.s#b.s.s.s#b.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.r.s.p.p.r.p.p.p.r.p.r"
+".p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.p.q.o.q.q.q.o.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.q.t.t.u.t.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.w.v.v.v.w.v.v.v.v.v.v.x.v.x.v.x.v.x.v.x.x.y.x.x.x.y.x.y.x.A.x.A.x.A.x.A.x.A.z.A.z.A.A.A.A.B.A.B.A.B.A.B.A.B.B.B.B.7.B.B.B.C.B.C.B.C.B.C.D.C.D.C.D.C.C.C.D.E.C.E.C.F.C.F.E.F.E.F.E#d.F.H.F.H.F.H.G.I.G.I.G.I.I.J.K.J.I.J.I.L.J.L.J.L.L.M.L.8.L.8.M.N.M.N.M.N.O.P.O.Q.N.Q.P.Q.Q.Q.Q.R.Q.S.Q.T.S.T.S#..S.U.S.U.U.U.U.W.U.X.U##.X##",
+".c.c.c.c#i.c#i.c.e.c.e#i.f.e.f.e.f.e#l.e.h.e.h.e.h.e.h#o.h.h.h.h.h.h.k.h.l.h.l.h.l.k.l.k#m.l.l.l.n.l.n.l.n.l#e.l#e.m#e.m#e.m#e.m.p#h.p#h.p#e.p#h.p.p.p.p.p.p.s.p.s.p.s.p.s.p.s.p.s.p.s.s.s.s.s.s#b.s.s.s#b.s.s.s#b.s#b.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#b.s#b.s.s.s#b.s.s.s#b.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s"
+".p.p.p.p.p.p.p.p.r.p.p.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.o.q.q.t.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.u.t.t.t.v.t.v.t.v.t.v.t.v.t.v.w.v.w.v.w.v.w.v.v.x.v.x.v.x.v.x.v.x.x.x.x.x.x.x.x.y.x.z.x.A.x.A.x.A.x.A.z.A.z.A.z.A.z.B.A.B.A.B.A.B.A.B.B.B.B.B.B.B.B.D.B.C.B.C.B.C.D.C.D.C.D.C.D.E.D.E.C.E.C.E.E.F.E.F.E.F.E.G.F.H.F.G.F.I.G.I.G.I.G.J.K.J.K.J.I.L.J.L.J.L.J.M.L.M.L.M.L.N.M.N.M.N.O.P.O.Q.O.Q.P.Q.P.Q.Q.R.Q.S.Q.T.R.T.S.U.S.U.S.U.V.U.U.X.U.X.W",
+"#g.c#g.c.c.c.c#i.c#i.c.e.c.e#i.e.e.f.e.e.e#l.e#l.e.h.e.h.e.h.j.h.j.h.j.h.h.k.h.l.h.l.h.l.k.l.k.l.l.l.l.l.l.m.l.m.l.n.l#e.m#e.m#e.m#e.m#e.m.p#h.p#h.p#h.p.r.p.r.p.p.p.r.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s#b.s.s.s#j.s#k.s#j.s#k.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#k.s#j.s#k.s#j.s#k.s#b.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.r.p.p.p.r"
+".p.r.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.p.q.q.q.o.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.q.t.t.u.t.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.w.v.v.v.w.v.v.v.v.v.v.x.v.x.v.x.v.x.v.x.x.y.x.x.x.y.x.y.x.A.x.A.x.A.x.A.z.A.z.A.z.A.A.A.A.B.A.B.A.B.A.B.B.B.B.B.B.7.B.B.B.C.B.C.B.C.B.C.D.C.D.C.D.C.C.E.C.E.C.E.C.F.E.F.E.F.E.F.E.H.F.H.F.H.F.H.G.I.G.I.G.I.I.J.I.J.I.J.J.L.J.L.J.L.L.M.L.8.L.8.M.N.M.N.M.P.N.P.O.Q.P.Q.P.Q.Q.R.Q.T.Q.T.R.T.S.T.S.U.T.U.S.U.U.U.U.X.U.X.X##",
+".c.b#i.c#i.c.e.c.e#i.f#i.f#i.f.e#l.e.h.e.h.e.h.e.h#o.h.h.h.h.h.h.h.h.l.h.l.h.l.k.l.k#m.l.l.l.n.l.n.l.n.l#e.l#e.m#e.m#e.m#e.m.p#h.p#h.p#e.p#h.p.p.p.p.s.p.s.p.s.p.s.p.s.p.s.p.s.s.s.s.s.s.s.s#b.s.s.s#b.s#b.s#b.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#b.s#b.s#b.s.s.s#b.s.s.s#b.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s"
+".p.s.p.s.p.p.p.p.p.p.r.p.p.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.o.q.q.t.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.u.t.t.t.v.t.v.t.v.t.v.t.v.t.v.w.v.w.v.w.v.w.v.v.x.v.x.v.x.v.x.v.x.x.x.x.x.x.x.x.y.x.z.x.A.x.A.x.A.z.A.z.A.z.A.z.A.z.B.A.B.A.B.A.B.B.B.B.B.B.B.B.B.B.D.B.C.B.C.B.C.D.C.D.C.D.C.D.E.D.E.C.E.C.E.E.F.E.F.E.F.E.G.F.H.F.H.G.I.G.I.G.I.G.J.K.J.K.J.I.L.J.L.J.L.J.M.L.8.L.M.M.N.M.N.O.P.O.P.O.Q#f.Q.P.Q.Q.R.Q.S.Q.S.R.T.S.T.S.U.S.U.U.U.V.U.U.X.U",
+"#g.c.b.c.c#i.c#i.c#i.c.e#i.e#i.f.e.e.e#l.e#l.e.h.e.h.e.h#o.h.j.h.j.h.h.k.h.l.h.l.h.l.k.l.k.l.l.l.l.l.l.n.l.m.l.n.l#e.m#e.m#e.m#e.m#e.m.p#h.p#h.p#h.p.r.p.r.p.p.s.r.s.p.s.p.s.p.s.p.s.p.s.p.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s#b.s#k.s#j.s#k.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#k.s#j.s#k.s#j.s.s.s#b.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.r.p.p"
+".p.r.p.r.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.p.q.q.q.o.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.q.t.t.u.t.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.w.v.v.v.w.v.v.v.v.x.v.x.v.x.v.x.v.x.x.x.x.y.x.x.x.y.x.A.x.A.x.A.x.A.x.A.z.A.A.A.z.A.A.A.A.B.A.B.A.B.A.B.B.B.B.B.B.7.B.C.B.C.B.C.B.C.B.C.D.C.D.C.D.C.C.E.C.E.C.E.C.F.E.F.E.F.E.F.E.H.F.H.F.H.F.H.G.I.G.I.G.J.I.J.I.J.I.J.J.L.J.L.J.8.L.M.L.8.L.N.M.N.M.N.O.P.N.P.N.Q.P.Q.P.Q.Q.R.Q.T.Q.T.R.T.S#..S.U.T.U.U.U.U.U.U.X.W.X",
+"#i.c#i.c#i.c#i#i.f#i.f#i.f.e.f.e#l.e#l.e.h.e.h#o.h.h.h.h.h.h.h.h.l.h.l.h.l.k.l.k#m.l.l.l#m.l.n.l.n.l#e.l#e.m#e.m#e.m#e.m.p#h.p#h.p#e.p#h.p.p.p.p.s.p.s.p.s.p.s.p.s.p.s.p.s.s.s.s#b.s.s.s#b.s.s.s#b.s#b.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j#k#j#k#j#k#j#k#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#b.s#b.s.s.s#b.s.s.s#b.s.s.s.s.s.s.p.s.p.s.p.s.p.s"
+".p.s.p.s.p.s.p.p.p.p.p.p.r.p.p.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.o.q.q.t.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.u.t.t.t.v.t.v.t.v.t.v.t.v.w.v.w.v.w.v.v.v.w.v.v.x.v.x.v.x.v.x.x.x.x.x.x.x.x.x.x.A.x.z.x.A.x.A.x.A.z.A.z.A.z.A.z.B.z.B.A.B.A.B.A.B.B.B.B.B.B.B.B.C.B.D.B.C.B.C.D.C.D.C.D.C.D.E.C.E.D.E.C.F.E.F.E.F.E.F.F.G.F.G.F.H.F.H.G.I.G.I.G.I.G.J.I.J.K.J.J.L.J.L.J.M.L.M.L.8.L.N.M.N.M.N.O.P.O.P.N.Q#f.Q.Q.Q.Q.R.Q.S.Q.S.S.T.S#..S.U.S.U.U.U.U.X.U",
+".b.c.b#i.c#i.c#i.c.e#i.e#i.f#i.e.e.f.e#l.e.h.e.h.e.h#o.h.j.h.j.h.h.k.j.l.h.l.h.l.k.l.k.l.l.l.l.l.l.n.l.m.l#e.l#e.m#e.m#e.m#e.m#e#h.p#h.p#h.p#h.p.r.p.r.p.p.s.r.s.p.s.p.s.p.s.p.s.p.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s#b.s.s.s#j.s#k.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#k.s#j.s#k.s#b.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.r"
+".s.p.p.r.p.r.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.p.q.q.q.o.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.q.t.t.u.t.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.w.v.v.v.w.v.v.v.v.x.v.x.v.x.v.x.v.x.x.x.x.y.x.x.x.y.x.A.x.A.x.A.x.A.x.A.z.A.A.A.z.A.A.B.A.B.A.B.A.B.A.B.B.B.B.B.B.7.B.C.B.C.B.C.B.C.D.C.D.C.C.C.D.E.C.E.C.E.C.E.E.F.E.F.E#d.F.G.F.H.F.H.F.I.G.I.G.I.G.I.G.J.I.J.I.J.J.L.J.L.J.L.J.8.L.8.L.N.M.N.M.N.O.P.O.P.N.P.P.Q.P.Q.Q.R.Q.R.Q.T.R.T.S.T.S#..S.U.T.U.U.U.U.X.U##",
+"#i.c#i.c#i.c.f#i.f#i.f.e.f.e#l.e#l.e.h.e.h#o.h.h.h.h.h.h.h.h.l.h.l.h.l.h.l.h#m.l.l.l#m.l#m.l.n.l#e.l#e.m#e.m#e.m#e#h#e#e#e#h.p#e.p#e.p.p.p.p.s.p.s.p.s.p.s.p.s.p.s.p.s.s.s.s#b.s.s.s#b.s.s.s#b.s#b.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j#k#j#k#j#k#j#k#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#b.s#b.s#b.s.s.s#b.s.s.s.s.s.s.s.s.p.s.p.s"
+".p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p.p.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.o.q.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.t.t.u.t.t.t.v.t.v.t.v.t.v.t.v.w.v.w.v.w.v.v.v.w.x.v.x.v.x.v.x.v.x.x.x.x.x.x.x.x.x.x.A.x.A.x.A.x.A.x.A.z.A.z.A.z.A.A.B.z.B.A.B.A.B.A.B.B.B.B.B.B.B.B.C.B.D.B.C.B.C.D.C.D.C.D.C.D.E.C.E.D.E.C.F.E.F.E.F.E.F.F.G.F.G.F.H.G.H.G.I.G.I.K.J.K.J.I.J.I.L.J.L.J.L.L.M.L.M.L.N.M.N.M.N.M.P.O.P.O.Q.P.Q.P.Q.Q.R.Q.R.Q.T.R.S.S.T.S.U.S.U#n.U.U.W.U",
+".b.c.c#i.c#i.c.e.c.e#i.f#i.e.e.f.e#l.e.h.e.h.e.h#o.h.j.h.j.h.h.h.j#p.h.l.h.l.h.l.h.l.l.l.l.l.l.n.l.m.l#e.l#e.m#e.m#e.m#e.m#e#h.p#h.p#h.p#h.p#e.p#h.p.p.s.r.s.p.s.p.s.p.s.p.s.p.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s#b.s#k.s#j.s#k.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#k.s#j.s.s.s#b.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p"
+".s.r.s.p.p.r.p.r.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.p.q.q.q.o.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.q.t.t.u.t.t.t.u.t.u.t.v.t.v.t.v.t.v.t.v.t.v.w.v.v.v.w.v.v.v.v.x.v.x.v.x.v.x.v.x.x.x.x.y.x.x.x.y.x.A.x.A.x.A.x.A.z.A.z.A.A.A.z.A.A.B.A.B.A.B.A.B.B.B.B.B.B.B.B.7.B.C.B.C.B.C.B.C.D.C.D.C.C.C.D.E.C.E.C.E.C.E.E.F.E.F.E#d.F.G.F.H.F.H.F.I.G.I.G.I.H.J.K.J.I.J.I.L.J.L.J.L.L.M.L.8.L.8.L.N.M.N.M.N.O.P.O.Q.N.Q.P.Q.Q.Q.Q.R.Q.S.Q.T.S.T.S#..S.U.S.U.U.U.U.W.U.X",
+"#i.c#i.c.f#i.e#i.f.e.f.e#l.e#l.e.h.e.h#o.h#l.h.h.h.h.h.h.l.h.l.h.l.h.l.h#m.l.l.l#m.l#m.l.n.l#e.l#e.l#e.l#e.m#e#h#e#e#e#h.p#e.p#e.p#e.s#e.s.p.s.p.s.p.s.p.s.p.s.s.s.s.s.s#b.s.s.s#b.s#b.s#b.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j#k#j#k#j#k#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#j#j#j#j#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#j#j#j#j#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#b.s#b.s#b.s.s.s#b.s.s.s.s.s.s.s.s.p.s"
+".p.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p.p.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.o.q.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.t.t.u.t.t.t.v.t.v.t.v.t.v.t.v.w.v.w.v.w.v.v.v.w.x.v.x.v.x.v.x.v.x.x.x.x.x.x.x.x.x.x.A.x.A.x.A.x.A.z.A.z.A.z.A.z.A.A.B.z.B.A.B.A.B.B.B.B.B.B.B.B.D.B.C.B.C.B.C.B.C.D.C.D.C.D.C.D.E.C.E.C.E.E.F.E.F.E.F.E.G.F.H.F.G.F.I.G.I.G.I.G.I.K.J.K.J.I.L.J.L.J.L.J.M.L.M.L.M.L.N.M.N.M.N.O.P.O.Q.O.Q.P.Q.P.Q.Q.R.Q.S.Q.T.S.T.S.U.S.U.S.U.V.U.U",
+".c#i.c#i.c#i.c.e#i.e#i.e.e.f.e#l.e#l.e#l.e.h#o.h.j.h.j.h.h.h.j#p.h.l.h.l.h.l.h.l.l.l.l.l.l#m.l.m.l#e.l#e.l#e.l#e.m#e.m#e#h.p#h.p#h.p#h.p#e.p#h.s.p.s.p.s.p.s.p.s.p.s.p.s.s.s.s.s.s.s.s.s.s.s.s.s.s#b.s.s.s#j.s#k.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#k.s#j.s#k.s#b.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p"
+".s.p.s.r.s.p.p.r.p.p.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.p.q.q.q.o.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.q.t.t.u.t.t.t.u.t.u.t.v.t.v.t.v.t.v.t.v.w.v.w.v.v.v.v.v.v.v.v.x.v.x.v.x.v.x.v.x.x.x.x.y.x.y.x.A.x.A.x.A.x.A.x.A.z.A.z.A.A.A.z.A.A.B.A.B.A.B.A.B.B.B.B.7.B.B.B.C.B.C.B.C.B.C.B.C.D.C.D.C.C.C.D.E.C.E.C.F.C.F.E.F.E.F.E.H.F.H.F.H.F.H.G.I.G.I.G.I.I.J.K.J.I.J.J.L.J.L.J.L.L.M.L.8.L.8.M.N.M.N.M.P.N.P.O.Q.P.Q.P.Q.Q.R.Q.T.Q.T.R.T.S.T.S.U.T.U.S.U.U.U.U.X",
+"#i.c.f#i.e#i.f#i.f#i#l.e#l.e.h.e.h.e.h#l.h#l.h.h.h.h#p.h#p.h.l.h.l.h.l.l.l.l#m.l#m.l.n.l#e.l#e.l#e.l#e.m#e#h#e#e#e#h.p#e.p#e.p#e.s#e.s.p.s.p.s.p.s.p.s.p.s.s.s.s.s.s#b.s.s.s#b.s#b.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j#k#j#k#j#k#j#k#j#k#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#b.s#b.s.s.s#b.s.s.s#b.s.s.s.s"
+".p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.r.p.p.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.o.t.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.t.t.u.t.w.t.v.t.v.t.v.t.v.t.v.w.v.w.v.w.v.v.v.w.x.v.x.v.x.v.x.v.x.x.x.x.x.x.y.x.z.x.A.x.A.x.A.x.A.z.A.z.A.z.A.z.B.A.B.z.B.A.B.A.B.B.B.B.B.B.B.B.D.B.C.B.C.B.C.D.C.D.C.D.C.D.E.D.E.C.E.C.E.E.F.E.F.E.F.E.G.F.H.F.H.F.I.G.I.G.I.G.J.K.J.K.J.I.L.J.L.J.L.J.M.L.M.L.M.M.N.M.N.O.P.O.P.O.Q#f.Q.Q.Q.Q.R.Q.S.Q.S.S.T.S.T.S.U.S.U.U.U.U",
+".c#i.c#i.c#i#i.e#i.e#i.f.e#l.e#l.e#l.e.h.e.h#o.h#o.h.h.h.j#p.h.l.h.l.h.l.h.l.l.l.l.l.l#m.l.l.l#e.l#e.l#e.l#e.m#e.m#e#h#e#h#e#h.p#h.p#e.p#h.s.p.s.p.s.p.s.p.s.p.s.p.s.s.s.s.s.s.s.s.s.s.s.s.s.s#b.s#k.s#j.s#k.s#j.s#j.s#j.s#j.s#j.s#j.s#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#k.s#j.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p"
+".s.p.s.p.s.r.s.p.p.r.p.p.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.p.q.q.q.o.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.t.t.t.u.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.w.v.w.v.v.v.v.v.v.x.v.x.v.x.v.x.v.x.x.x.x.x.x.y.x.y.x.A.x.A.x.A.x.A.x.A.z.A.z.A.A.A.A.B.A.B.A.B.A.B.A.B.B.B.B.7.B.B.B.C.B.C.B.C.B.C.D.C.D.C.D.C.C.E.C.E.C.E.C.F.E.F.E.F.E.F.E.H.F.H.F.H.F.H.G.I.G.I.G.J.I.J.I.J.I.J.J.L.J.L.J.8.L.M.L.8.L.N.M.N.M.N.O.P.N.P.N.Q.P.Q.P.Q.Q.R.Q.T.Q.T.R.T.S#..S.U.T.U.U.U.U.W",
+"#r#i#i#i.f#i.f#i.f.e#l.e#l.e#l.e.h#l.h#o.h.h.h.h#p.h#p.h.l.h.l.h.l.l.l.l#m.l#m.l.n.l#e.l#e.l#e.l#e.m#e#h#e#e#e#h.p#e.p#e.p#e.s#e.s.p.s.p.s.p.s.p.s.p.s.s.s.s.s.s#b.s.s.s#b.s#b.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j#k#j#k#j#k#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#b.s#b.s.s.s#b.s.s.s#b.s.s"
+".s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.r.p.p.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.o.q.q.q.o.t.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.t.t.u.t.w.t.v.t.v.t.v.t.v.w.v.w.v.w.v.w.v.v.x.w.x.v.x.v.x.v.x.x.x.x.x.x.x.x.y.x.z.x.A.x.A.x.A.z.A.z.A.z.A.z.A.z.B.A.B.A.B.A.B.B.B.B.B.B.B.B.B.B.D.B.C.B.C.B.C.D.C.D.C.D.C.D.E.D.E.C.F.C.F.E.F.E.F.F.G.F.G.F.H.F.H.G.I.G.I.G.I.G.J.I.J.K.J.J.L.J.L.L.M.L.M.L.8.L.O.M.N.M.N.O.P.O.P.N.Q#f.Q.Q.Q.Q.R.Q.S.Q.S.S.T.S#..S.U.S.U.U",
+".c#i.c#i#i.e#i.e#i.f#i.f.e#l.e#l.e.h.e.h#o.h#o.h.h.h.j#p.h.l.h.l.h.l.h.l.l.l.l.l.l.l.l.l.l#e.l#e.l#e.l#e.m#e.m#e#h#e#h#e#h.p#h.p#e.p#h.s.p.s.p.s.p.s.p.s.p.s.p.s.s.s.s.s.s.s.s.s.s.s.s.s.s#j.s#k.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#j#j#k#q#j#q#k#q#j#q#k#q#j#q#k#q#j#q#k#q#j#q#k#q#j#q#k#q#j#q#k#q#j#q#k#q#j#q#k#q#j#q#k#j#j#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#k.s#j.s#k.s#b.s.s.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p"
+".s.p.s.p.s.p.s.r.s.p.p.r.p.p.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.p.q.q.q.o.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.t.t.t.u.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.v.v.w.v.v.v.v.v.v.x.v.x.v.x.v.x.v.x.x.y.x.x.x.y.x.y.x.A.x.A.x.A.x.A.z.A.z.A.z.A.A.A.A.B.A.B.A.B.A.B.B.B.B.B.B.7.B.C.B.C.B.C.B.C.B.C.D.C.D.C.D.C.C.E.C.E.C.E.C.F.E.F.E.F.F.G.F.H.F.H.F.I.G.I.G.I.G.I.G.J.I.J.I.J.J.L.J.L.J.L.J.8.L.8.L.N.M.N.M.N.O.P.O.P.N.Q.P.Q.P.Q.Q.R.Q.R.Q.T.R.T.S.T.S#..S.U#s.U.U.U",
+"#i#i.f#i.f#i.f.e#l.e#l.e#l.e.h#l.h#o.h.h.h.h#p.h#p.h.l.h.l.h.l#p.l#p#m.l#m.l#m.l#t.l#e.l#e.l#e.m#e#h#e#e#e#h.p#e.p#e.p#e.s#e.s.p.s.p.s.p.s.p.s.s.s.s.s.s.s.s#b.s.s.s#b.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j#k#j#k#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#b.s.s.s#b.s.s.s#b"
+".s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.r.p.p.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.o.q.q.q.q.t.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.t.t.u.t.v.t.v.t.v.t.v.t.v.w.v.w.v.w.v.w.v.v.x.v.x.v.x.v.x.v.x.x.x.x.x.x.x.x.y.x.z.x.A.x.A.x.A.z.A.z.A.z.A.z.A.z.B.A.B.A.B.A.B.B.B.B.B.B.B.B.C.B.D.B.C.B.C.D.C.D.C.D.C.D.E.C.E.D.E.C.F.E.F.E.F.E.F.F.G.F.G.F.H.F.I.G.I.G.I.K.J.K.J.I.J.I.L.J.L.J.L.L.M.L.M.L.N.M.N.M.N.O.P.O.P.O.Q.P.Q.P.Q.Q.R.Q.S.Q.T.R.T.S.T.S.U.S.U.V",
+".c#i.c.e#i.e#i.f#i.f.e#l.e#l.e.h.e.h#o.h#o.h.h.h.j.h.h#p.h#p.h.l.h.l#p.l#p.l.l.l.l.l.l.n.l#e.l#e.l#e.m#e.m#e#h#e#h#e#h.p#h.p#e.p#h.s.p.s.p.s.p.s.p.s.p.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s#j.s#k.s#j.s#j.s#j.s#j.s#j.s#j.s#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#j#q#k#q#j#q#k#q#j#q#k#q#j#q#k#q#j#q#k#q#j#q#k#q#j#q#k#q#j#q#k#q#j#q#k#q#j#q#k#q#j#q#k#q#j#q#k#q#j#q#k#q#j#q#k#q#j#q#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#j.s#k.s#j.s#k.s#b.s.s.s.s.s.s.s.s.s.s.s.s.s.s.p"
+".s.p.s.p.s.p.s.p.s.r.s.p.s.r.p.p.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.o.q.q.q.o.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.q.u.t.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.t.v.v.v.w.v.v.v.v.v.v.x.v.x.v.x.v.x.v.x.x.y.x.x.x.y.x.A.x.A.x.A.x.A.x.A.z.A.A.A.z.A.A.B.A.B.A.B.A.B.A.B.B.B.B.B.B.7.B.C.B.C.B.C.B.C.D.C.D.C.C.C.D.E.C.E.C.E.C.E.E.F.E.F.E#d.F.G.F.H.F.H.F.I.G.I.G.I.I.J.K.J.I.J.I.L.J.L.J.L.L.M.L.8.L.8.L.N.M.N.M.N.O.P.O.Q.N.Q.P.Q.Q.Q.Q.9.Q.S.Q.T.S.T.S.U.S.U.S.U.U.U",
+".f#i.f#i.f.e#l.e#l.e#l.e.h#l.h#o.h#l.h.h.h.h#p.h.l.h.l.h.l#p.l#p#m.l#m.l#m.l#t.l#e.l#e.l#e.l#e#u#e#e#e#h#e#e#e#e.p#e.s#e.s.p.s#e.s.p.s.p.s.s.s.s#b.s.s.s#b.s.s.s#b.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j#k#j#k#j#k#j#k#j#j#j#k#j#j#j#k#j#j#j#j#j#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#j#j#j#j#j#k#j#j#j#k#j#j#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#b.s#b.s#b.s.s"
+".s#b.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.r.p.p.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.o.q.o.q.q.q.o.q.q.q.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.u.t.t.t.u.t.v.t.v.t.v.t.v.t.v.w.v.w.v.w.v.w.v.v.x.v.x.v.x.v.x.x.x.x.x.x.x.x.x.x.A.x.A.x.A.x.A.x.A.z.A.z.A.z.A.A.B.z.B.A.B.A.B.B.B.B.B.B.B.B.B.B.C.B.D.B.C.B.C.D.C.D.C.D.C.D.E.C.E.D.E.C.F.E.F.E.F.E.G.F.H.F.G.F.I.G.I.G.I.G.I.K.J.K.J.I.L.J.L.J.L.J.M.L.M.L.M.L.N.M.N.O.N.O.P.O.Q.O.Q.P.Q.Q.Q.Q.S.Q.S.R.T.S.T.S.U.S.U#v",
+".c#i#i.e#i.f#i.e.e#l.e#l.e#l.e#l#o.h#o.h#l.h.j.h.h#p.h#p.h.l.h.l.h.l#p.l.l.l.l.l.l.n.l#e.l#e.l#e.l#e.l#e#h#e#h#e#h.p#h.p#e.p#h.s#e.s#e.s.p.s.p.s.p.s.s.s.s.s.s.s.s.s.s.s.s#b.s#k.s#j.s#k.s#j.s#j.s#j.s#j.s#j.s#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#j#q#k#q#j#q#k#q#j#q#k#q#j#q#k#q#j#q#k#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#k#q#j#q#k#q#j#q#k#q#j#q#k#q#j#q#k#q#j#q#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#k.s#j.s#k.s#b.s.s.s.s.s.s.s.s.s.s.s.s.s"
+".s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.r.p.p.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.o.q.q.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.q.u.t.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.w.v.v.v.w.v.v.v.v.x.v.x.v.x.v.x.v.x.x.x.x.y.x.x.x.y.x.A.x.A.x.A.x.A.z.A.z.A.A.A.z.A.A.B.A.B.A.B.A.B.B.B.B.B.B.B.B.7.B.C.B.C.B.C.B.C.D.C.D.C.C.C.D.E.C.E.C.F.C.F.E.F.E.F.E.H.F.H.F.H.F.H.G.I.G.I.G.I.I.J.K.J.I.J.J.L.J.L.J.L.L.M.L.8.L.N.M.N.M.N.O.P.N.P.N.Q.P.Q.P.Q.Q.R.Q.T.Q.T.R.T.S.T.S.U.T.U#..U",
+".f#i.f#i#l#i#l.e#l.e#l.f.h#o.h#l.h#l.h.h#p.h#p.h#p.h.l.h.l#p#m.l.l.l#m.l#t.l#e.l#e.l#e.l#e.l#e#e#e#h#e#e#e#e.p#e.s#e.s#e.s#e.s.p.s.p.s.s.s.s#b.s.s.s#b.s.s.s#b.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j#k#j#k#j#k#j#k#j#j#j#k#j#j#j#k#j#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#j#j#j#k#j#j#j#k#j#j#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#b.s#b.s#b"
+".s.s.s#b.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.r.p.p.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.o.q.o.q.q.q.o.q.q.q.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.u.t.t.t.v.t.v.t.v.t.v.t.v.w.v.w.v.w.v.v.v.w.x.v.x.v.x.v.x.v.x.x.x.x.x.x.x.x.x.x.A.x.A.x.A.x.A.z.A.z.A.z.A.z.A.A.B.z.B.A.B.A.B.B.B.B.B.B.B.B.D.B.C.B.C.B.C.D.C.D.C.D.C.D.E.D.E.C.E.C.E.E.F.E.F.E.F.E.G.F.H.F.H.F.I.G.I.G.I.G.J.K.J.K.J.I.L.J.L.J.L.L.M.L.8.L.O.M.N.M.N.O.P.O.P.O.Q#f.Q.Q.Q.Q.R.Q.S.Q.S.S.T.S.T.S.U.S",
+"#i#i#i.f#i.e#i#l#i#l.e#l.e#l.e.h#o.h#o.h#o.h.h#p.h#p.h.l.h.l.h.l#p.l.l.l.l.l.l#m.l#t.l#e.l#e.l#e.l#e#h#e#h#e#h#e#h#e#e.p#h.s#e.s#e.s.p.s.p.s.p.s.s.s.s.s.s.s.s.s.s.s.s#b.s#k.s#j.s#k.s#j.s#j.s#j.s#j.s#j.s#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#j#q#k#q#j#q#k#q#j#q#k#q#j#q#k#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#k#q#j#q#k#q#j#q#k#q#j#q#k#q#j#q#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#j.s#k.s#j.s.s.s.s.s.s.s.s.s.s.s"
+".s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.s.r.p.p.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.r.q.o.q.q.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.t.u.t.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.w.v.v.v.w.v.v.v.v.x.v.x.v.x.v.x.v.x.x.x.x.y.x.y.x.A.x.A.x.A.x.A.x.A.z.A.z.A.A.A.A.B.A.B.A.B.A.B.A.B.B.B.B.7.B.B.B.C.B.C.B.C.B.C.D.C.D.C.D.C.C.E.C.E.C.E.C.F.E.F.E.F.E.F.E.H.F.H.F.H.F.H.G.I.G.I.G.J.I.J.I.J.I.J.J.L.J.L.J.8.L.M.L.N.L.N.M.N.O.N.O.P.N.P.N.Q.P.Q.Q.Q.Q.R.Q.T.Q.T.S.T.S#..S.U.T.U",
+".f#i.f#i#l.e#l.e#l.e#l#o.h#l.h#l.h.h#p.h#p.h#p.h.l.h.l#p#m.l.l.l#m.l#m.l#e.l#e.l#e.l#e.l#e#e#e#h#e#e#e#e.p#e.s#e.s#e.s#e.s.p.s.p.s.s.s.s#b.s.s.s#b.s#b.s#b.s#j.s#j.s#j.s#j.s#j.s#j.s#j#k#j#k#j#k#j#j#j#k#j#j#j#k#j#j#j#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#j#j#j#j#j#k#j#j#j#k#j#j#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#b"
+".s#b.s.s.s#b.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.r.p.p.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.o.q.o.q.q.q.o.q.q.t.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.u.t.t.t.v.t.v.t.v.t.v.t.v.w.v.w.v.w.v.v.v.w.x.v.x.v.x.v.x.v.x.x.x.x.x.x.y.x.z.x.A.x.A.x.A.x.A.z.A.z.A.z.A.z.B.A.B.A.B.A.B.B.B.B.B.B.B.B.B.B.D.B.C.B.C.B.C.D.C.D.C.D.C.D.E.D.E.C.F.C.F.E.F.E.F.F.G.F.G.F.H.F.H.G.I.G.I.G.I.K.J.I.J.K.J.J.L.J.L.L.M.L.M.L.N.L.N.M.N.M.N.O.P.O.P.N.Q.P.Q.Q.Q.Q.R.Q.S.R.S.S.T.S.U.S",
+"#i.e#i.e#i.f#i#l.e#l.e#l.e.h#o.h#o.h#o.h.h#p.h#p.h.l.h.l.h.l#p.l.l.l.l.l.l#m.l#u.l#e.l#e.l#e.l#e#h#e#h#e#h#e#h#e#e.p#h.s#e.s#e.s.p.s.p.s.p.s.s.s.s.s.s.s.s.s.s.s.s#b.s#k.s#j.s#j.s#j.s#j.s#j.s#j.s#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#j#q#k#q#j#q#k#q#j#q#k#q#j#q#k#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#k#q#j#q#k#q#j#q#k#q#j#q#k#q#j#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#j.s#k.s#j.s.s.s.s.s.s.s.s.s"
+".s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.s.r.p.p.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.r.q.o.q.q.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.t.u.t.t.t.u.t.u.t.v.t.v.t.v.t.v.t.v.t.v.w.v.v.v.v.v.v.v.v.x.v.x.v.x.v.x.x.x.x.x.x.y.x.y.x.A.x.A.x.A.x.A.x.A.z.A.z.A.A.A.A.B.A.B.A.B.A.B.B.B.B.B.B.7.B.B.B.C.B.C.B.C.B.C.D.C.D.C.D.C.C.E.C.E.C.E.C.F.E.F.E.F.F.G.F.H.F.H.F.I.G.I.G.I.G.I.G.J.I.J.I.L.J.L.J.L.J.L.L.8.L.8.L.N.M.N.M.N.O.P.O.P.N.Q.P.Q.Q.Q.Q.R.Q.S.Q.T.S.T.S.T.S.U.S.U",
+".f#i#l.e#l.e#l.e#l#o.h#l.h#l.h.h.h.h#p.h#p.h.l.h.l#p#m#p.l#p#m.l#m.l#t.l#t.l#e.l#e.l#e#h#e#h#e#e#e#e.p#e.s#e.s#e.s#e.s.p.s.p.s.s.s.s#b.s.s.s#b.s#b.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j#k#j#k#j#k#j#j#j#k#j#j#j#k#j#j#j#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#j#j#j#k#j#j#j#k#j#j#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j"
+".s#b.s#b.s.s.s#b.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p.p.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.o.q.o.q.q.q.o.q.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.t.t.u.t.t.t.v.t.v.t.v.t.v.t.v.w.v.w.v.w.v.v.v.w.x.v.x.v.x.v.x.x.x.x.x.x.x.x.y.x.z.x.A.x.A.x.A.z.A.z.A.z.A.z.A.z.B.A.B.A.B.A.B.B.B.B.B.B.B.B.C.B.D.B.C.B.C.D.C.D.C.D.C.D.E.C.E.D.E.C.F.E.F.E.F.E.F.F.G.F.G.F.I.G.I.G.I.G.I.K.J.K.J.I.L.J.L.J.L.J.L.L.M.L.M.L.N.M.N.M.N.O.P.O.Q.O.Q.P.Q.P.Q.Q.R.Q.S.Q.T.S.T.S.U.S",
+"#i.e#i.f#i#l.e#l.e#l.e#l#o.h#o.h#o.h.h.h.h#p.h#p.h#p.h.l#p.l#p.l#p.l.l#m.l#u.l#e.l#e.l#e.l#e#h#e#h#e#h#e#h#e#e.p#h.s#e.s#e.s.p.s.p.s.p.s.s.s.s.s.s.s.s.s.s.s.s#b.s#k.s#j.s#j.s#j.s#j.s#j.s#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#q#j#q#k#q#j#q#k#q#j#q#k#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#k#q#j#q#k#q#j#q#k#q#j#q#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#k.s#j.s.s.s.s.s.s.s"
+".s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.r.s.p.p.r.p.p.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.r.q.o.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.q.t.t.u.t.t.t.u.t.u.t.v.t.v.t.v.t.v.t.v.w.v.w.v.v.v.v.v.v.x.v.x.v.x.v.x.v.x.x.y.x.x.x.y.x.y.x.A.x.A.x.A.x.A.z.A.A.A.z.A.A.A.A.B.A.B.A.B.A.B.B.B.B.B.B.7.B.C.B.C.B.C.B.C.D.C.D.C.C.C.D.E.C.E.C.E.C.F.E.F.E.F.E#d.F.G.F.H.F.H.F.I.G.I.G.I.I.J.K.J.I.J.I.L.J.L.J.L.L.M.L.8.L.8.M.N.M.N.M.N.N.P.O.Q.N.Q.P.Q.Q.Q.Q.T.Q.S.R.T.S.T.S.U.S.U",
+"#l#i#l.e#l.e#l.e.h#l.h#l.h#l.h#l#p.h#p.h#p.h#p#p#m#p.l#p#m.l#m.l#t.l#t.l#e.l#e.l#e#u#e#u#e#e#e#e#e#e#x#e.s#e.s#e.s.p.s.p.s.s.s.s#b.s.s.s#b.s#b.s#j.s#j.s#j.s#j.s#j.s#j.s#j#k#j#k#j#k#j#k#j#j#j#k#j#j#j#k#j#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#j#k#j#j#j#k#j#j#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#j"
+".s#j.s#b.s#b.s.s.s#b.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p.p.p.r.p.q.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.o.q.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.t.t.u.t.w.t.v.t.v.t.v.t.v.w.v.w.v.w.v.w.v.v.x.v.x.v.x.v.x.v.x.x.x.x.x.x.x.x.A.x.z.x.A.x.A.x.A.z.A.z.A.z.A.A.B.z.B.A.B.A.B.A.B.B.B.B.B.B.B.B.C.B.D.B.C.B.C.D.C.D.C.D.C.D.E.C.E.C.E.C.F.E.F.E.F.E.G.F.H.F.G.F.I.G.I.G.I.G.J.K.J.K.J.I.L.J.L.J.L.J.M.L.M.L.M.M.N.M.N.O.N.O.P.O.Q.O.Q.Q.Q.Q.R.Q.S.Q.S.S.T.S.T.S",
+"#i.f#i#l#i#l.e#l.e#l.e#l#o.h#o.h#l.h#o#p.h#p.h#p.h.l.h.l#p.l#p.l.l#m.l#u.l#t.l#t.l#e.l#e#u#e#u#e#h#e#h#e#e.p#h.s#e.s#e.s#e.s#e.s.p.s.s.s.s.s.s.s.s.s.s.s.s#j.s#k.s#j.s#j.s#j.s#j.s#j.s#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#j#q#k#q#j#q#k#q#j#q#k#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#k#q#j#q#k#q#j#q#k#q#j#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#k.s#j.s.s.s#b.s"
+".s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.r.s.p.p.r.p.p.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.r.q.o.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.q.t.t.u.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.v.v.w.v.v.v.v.v.v.x.v.x.v.x.v.x.x.x.x.y.x.x.x.y.x.A.x.A.x.A.x.A.x.A.z.A.A.A.z.A.A.B.A.B.A.B.A.B.B.B.B.B.B.B.B.7.B.C.B.C.B.C.B.C.D.C.D.C.C.C.D.E.C.E.C.F.C.F.E.F.E.F.E.H.F.H.F.H.F.H.G.I.G.I.G.I.I.J.I.J.I.J.J.L.J.L.J.L.L.M.L.N.L.N.M.N.O.N.O.P.N.P.N.Q.P.Q.P.Q.Q.R.Q.T.Q.T.R.T.S.T.S.U",
+"#l#i#l.e#l.e#l#l#l#o.h#l.h#l#p.h#p.h#p.h#p.h#m#p.l#p#m.l#m.l#t.l#t.l#e.l#e.l#e#u#e#u#e#e#e#e#e#e#x#e.s#e.s#e.s#e.s#e.s.s.s.s#b.s.s.s#b.s#b.s#j.s#j.s#j.s#j.s#j.s#j.s#j#k#j#k#j#k#j#k#j#j#j#k#j#j#j#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#j#j#j#j#j#k#j#j#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j"
+".s#j.s#j.s#b.s#b.s.s.s#b.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p.p.p.r.p.q.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.o.t.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.t.t.u.t.v.t.v.t.v.t.v.t.v.w.v.w.v.w.v.w.v.v.x.v.x.v.x.v.x.x.x.x.x.x.x.x.x.x.A.x.A.x.A.x.A.z.A.z.A.z.A.z.A.A.B.z.B.A.B.A.B.B.B.B.B.B.B.B.D.B.C.B.C.B.C.D.C.D.C.D.C.D.E.D.E.C.E.C.F.E.F.E.F.F.F.F.G.F.H.F.H.G.I.G.I.G.I.G.J.K.J.K.J.J.L.J.L.L.L.L.M.L.N.L.O.M.N.M.N.O.P.O.P.N.Q#f.Q.Q.Q.Q.R.Q.S.Q.S.S.T.S",
+"#i.f#i#l#i#l.e#l.e#l#o.h#o.h#l.h#o#p.h#p.h#p.h.l.h.l#p.l#p.l.l#m.l.l.l#t.l#t.l#e.l#e.l#e#u#e#h#e#h#e#e#e#h#x#e.s#e.s#e.s#e.s.p.s.s.s.s.s.s.s.s.s.s.s.s#j.s#k.s#j.s#j.s#j.s#j.s#j.s#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#j#q#k#q#j#q#k#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#k#q#j#q#k#q#j#q#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#k.s#j.s.s.s"
+"#b.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.r.s.p.p.r.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.q.q.o.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.t.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.w.v.v.v.w.v.v.v.v.x.v.x.v.x.v.x.v.x.x.x.x.y.x.x.x.y.x.A.x.A.x.A.x.A.z.A.z.A.A.A.z.A.A.B.A.B.A.B.A.B.B.B.B.7.B.B.B.C.B.C.B.C.B.C.D.C.D.C.D.C.C.E.C.E.C.E.C.F.E.F.E.F.F.F.F.H.F.H.F.I.F.I.G.I.G.I.G.J.I.J.I.L.I.L.J.L.J.L.L.8.L.8.L.N.M.N.M.N.O.P.O.P.N.Q.P.Q.Q.Q.Q.R.Q.R.Q.T.S.T.S.T.S.U",
+"#l.e#l.e#l#l#l#o.h#l.h#l#p.h#p.h#p.h#p.h.l#p.l#p#m#p#m#p#m.l#t.l#t.l#t.l#e#u#e#u#e#e#e#h#e#e#e#e.s#e.s#e.s#e.s#e.s.s.s.s#b.s.s.s#b.s#b.s#j.s#j.s#j.s#j.s#j.s#j.s#j#k#j#k#j#k#j#k#j#j#j#k#j#j#j#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#y#q#z#q#y#q#z#q#y#q#z#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#j#j#j#k#j#j#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j"
+".s#j.s#j.s#j.s#b.s#b.s.s.s#b.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p.p.p.r.p.q.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.u.t.t.t.v.t.v.t.v.t.v.t.v.w.v.w.v.w.v.v.v.w.x.v.x.v.x.v.x.v.x.x.x.x.x.x.x.x.z.x.A.x.A.x.A.x.A.z.A.z.A.z.A.z.B.A.B.A.B.A.B.B.B.B.B.B.B.B.B.B.D.B.C.B.C.B.C.D.C.D.C.D.C.D.E.D.E.C.F.E.F.E.F.E.F.F.G.F.G.F.H.F.I.G.I.G.I.K.J.K.J.I.J.K.L.J.L.J.L.L.M.L.M.L.N.M.N.M.N.O.P.O.Q.O.Q.P.Q.P.Q.Q.R.Q.S.Q.T.R.T.S",
+"#i#l#i#l.e#l.e#l#o.h#o.h#l.h#o.h.h#p.h#p.h#p.h#p#p.l#p.l#p#m#p.l.l#t.l#t.l#e.l#e.l#e#u#e#h#e#h#e#e#e#h#x#e.s#e.s#e.s#e.s.p.s.s.s.s.s.s.s.s.s.s.s.s#j.s#k.s#j.s#j.s#j.s#j.s#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#q#j#q#k#q#j#q#k#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#k#q#j#q#k#q#j#q#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#k.s#j.s"
+".s.s#b.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.r.s.p.p.r.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.q.q.o.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.u.t.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.w.v.v.v.w.v.v.v.v.x.v.x.v.x.v.x.v.x.x.x.x.y.x.y.x.A.x.A.x.A.x.A.x.A.z.A.z.A.A.A.A.B.A.B.A.B.A.B.B.B.B.B.B.7.B.7.B.C.B.C.B.C.B.C.D.C.D.C.D.C.C.E.C.E.C.E.E.F.E.F.E#d.F.G.F.H.F.H.F.I.G.I.G.I.K.I.K.J.I.J.I.L.J.L.J.L.L.M.L.8.L.8.L.N.M.N.M.N.O.P.O.Q.N.Q.P.Q.Q.Q.Q.S.Q.S.Q.T.S.T.S.U",
+"#l.e#l.f#l#o.h#l.h#l.h#l#p#l#p.h#p.h.l#p.l#p#m#p#m#p#m.l#t.l#t.l#t.l#e.l#e#u#e#e#e#h#e#e#e#e#x#e#x#e.s#e.s#e.s.s.s.s#b.s.s.s#b.s#b.s#j.s#j.s#j.s#j.s#j.s#j.s#j#k#j#k#j#k#j#k#j#j#j#k#j#j#j#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#j#j#j#k#j#j#j#k#j#j#j#k#j#k#j.s#j.s#j.s#j"
+".s#j.s#j.s#j.s#j.s#b.s#b.s.s.s#b.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p.p.p.r.p.q.p.q.p.q.p.q.p.q.o.q.o.q.q.q.o.q.q.q.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.u.t.t.t.v.t.v.t.v.t.v.t.v.w.v.w.v.w.v.v.v.w.x.v.x.v.x.v.x.x.x.x.x.x.x.x.y.x.z.x.A.x.A.x.A.z.A.z.A.z.A.z.A.z.B.A.B.A.B.A.B.B.B.B.B.B.B.B.C.B.D.B.C.B.C.D.C.D.C.D.C.D.E.C.E.D.E.C.F.E.F.E.F.E.F.F.H.F.G.F.I.G.I.G.I.G.I.K.J.K.J.I.L.J.L.J.L.J.L.L.M.L.M.L.N.M.N.O.N.O.P.O.Q.O.Q.Q.Q.Q.Q.Q.S.Q.S.S.T.S",
+"#i#l.e#l.e#l.e#l#o#l#o.h#o.h#l#p.h#p.h#p.h#p#p.l#p.l#p#m#p.l.l#t.l#t.l#e.l#e.l#e#u#e#u#e#u#e#e#e#h#x#e.s#e.s#e.s#e.s.p.s.s.s.s.s.s.s.s.s.s.s.s#j.s#k.s#j.s#j.s#j.s#j.s#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#q#j#q#k#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#k#q#j#q#k#q#j#q#k#q#j#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#k.s"
+"#j.s.s.s#b.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.r.s.p.p.r.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.q.q.o.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.t.u.t.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.w.v.v.v.v.v.v.x.v.x.v.x.v.x.v.x.x.y.x.x.x.y.x.y.x.A.x.A.x.A.x.A.z.A.A.A.z.A.A.A.A.B.A.B.A.B.A.B.B.B.B.B.B.7.B.C.B.C.B.C.B.C.D.C.D.C.C.C.D.E.C.E.C.F.C.F.E.F.E.F.E#d.F.G.F.H.F.H.G.I.G.I.G.I.I.J.K.J.I.J.J.L.J.L.J.L.L.M.L.8.L.N.M.N.M.N.O.P.N.P.N.Q.P.Q.P.Q.Q.R.Q.T.Q.T.R.T.S.T",
+"#l.e#l#o#l#l#l#l.h#l#p#l#p.h#p.h#p.h#p#p#m#p#m#p#m.l#t.l#t.l#t.l#e.l#e#u#e#t#e#u#e#e#e#e#x#e#x#e.s#e.s#e.s#x.s#x#b.s.s.s#b.s#b.s#j.s#j.s#j.s#j.s#j.s#j.s#j#k#j#k#j#j#j#k#j#j#j#k#j#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#z#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#j#j#j#k#j#j#j#k#j#j#j#k#j#k#j.s#j.s#j"
+".s#j.s#j.s#j.s#j.s#j.s#b.s#b.s.s.s#b.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p.p.p.q.p.q.p.q.p.q.p.q.p.q.o.q.o.q.q.q.o.q.q.t.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.u.t.t.t.v.t.v.t.v.t.v.t.v.w.v.w.v.w.v.v.x.w.x.v.x.v.x.v.x.x.x.x.x.x.x.x.A.x.z.x.A.x.A.x.A.z.A.z.A.z.A.A.B.z.B.A.B.A.B.B.B.B.B.B.B.B.B.B.C.B.C.B.C.B.C.D.C.D.C.D.E.D.E.C.E.C.E.E.F.E.F.E.F.F.G.F.H.F.G.F.I.G.I.G.I.G.J.K.J.K.J.I.L.J.L.L.L.L.M.L.N.L.O.M.N.M.N.O.P.O.P.O.Q#f.Q.Q.Q.Q.R.Q.S.Q.S.S",
+"#i#l#i#l.e#l#o#l#o.h#o.h#l#p#l#p.h#p.h#p.h.l#p.l#p.l#p.l.l#t.l#t.l#t.l#t.l#e#u#e#u#e#u#e#h#e#h#e#e#x#e.s#e.s#e.s#e.s#x.s.s.s.s.s.s.s.s.s.s#j.s#k.s#j.s#j.s#j.s#j.s#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#j#q#k#q#j#q#k#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#k#q#j#q#k#q#j#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s"
+"#k.s#j.s.s.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.r.s.p.p.r.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.o.q.q.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.t.u.t.t.t.u.t.u.t.v.t.v.t.v.t.v.t.v.w.v.w.v.v.v.v.v.v.x.v.x.v.x.v.x.v.x.x.y.x.x.x.y.x.A.x.A.x.A.x.A.x.A.z.A.A.A.z.A.A.B.A.B.A.B.A.B.B.B.B.7.B.B.B.C.B.C.B.C.B.C.B.C.D.C.D.C.C.E.C.E.C.E.C.F.E.F.E.F.E.F.F.H.F.H.F.I.F.I.G.I.G.I.G.J.I.J.I.L.I.L.J.L.J.L.L.8.L.M.L.N.M.N.M.N.O.N.O.P.N.Q.N.Q.Q.Q.Q.Q.Q.R.Q.T.R.T.S.T",
+"#l.e#l#l#l#l.h#l.h#l#p.h#p.h#p.h#p#p#m#p.l#p#m#p#t.l#t.l#t.l#t.l#e#u#e#t#e#u#e#e#e#e#x#e#x#e.s#e.s#e.s#e.s#x.s.s.s.s#b.s#b.s#j.s#j.s#j.s#j.s#j.s#j.s#j#k#j#k#j#j#j#k#j#j#j#k#j#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#z#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#j#j#j#k#j#j#j#k#j#j#j#k#j#k#j.s#j"
+".s#j.s#j.s#j.s#j.s#j.s#j.s#b.s#b.s.s.s#b.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.r.p.p.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.o.q.o.q.q.q.o.q.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.t.t.u.t.v.t.v.t.v.t.v.t.v.w.v.w.v.w.v.w.v.v.x.v.x.v.x.v.x.x.x.x.x.x.x.x.x.x.A.x.A.x.A.x.A.z.A.z.A.z.A.z.A.A.B.z.B.A.B.A.B.B.B.B.B.B.B.B.D.B.C.B.C.B.C.D.C.D.C.D.C.D.E.D.E.C.F.C.F.E.F.E.F.F.G.F.G.F.H.F.I.G.I.G.I.K.I.K.J.I.J.K.L.J.L.J.L.L.M.L.M.L.N.L.N.M.N.O.N.O.P.O.Q.N.Q.P.Q.Q.R.Q.S.Q.T.R",
+"#i#l.e#l.e#l#o.h#o.h#l.h#l#p.h#p.h#p.h#p#p#p#p.l#p.l#p#m.l#t.l#t.l#t.l#e.l#e#u#e#u#e#h#e#h#e#e#x#e#x#e.s#e.s#e.s#x.s.s.s.s.s.s.s.s.s.s#j.s#k.s#j.s#j.s#j.s#j.s#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#j#q#k#q#j#q#k#q#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#z#q#z#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#z#q#z#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#k#q#j#q#k#q#j#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s"
+"#j.s#k.s#j.s.s.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.r.p.p.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.r.q.o.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.q.t.t.u.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.v.v.w.v.v.v.v.x.v.x.v.x.v.x.v.x.x.x.x.y.x.x.x.y.x.A.x.A.x.A.x.A.z.A.z.A.A.A.A.B.A.B.A.B.A.B.A.B.B.B.B.7.B.B.B.C.B.C.B.C.B.C.D.C.D.C.D.C.C.E.C.E.C.E.C.F.E.F.E.F.F.F.F.H.F.H.F.I.G.I.G.I.K.I.K.J.I.J.I.L.J.L.J.L.L.L.L.8.L.8.L.N.M.N.M.N.O.P.O.Q.N.Q.P.Q.Q.Q.Q.S.Q.S.Q.T.S.T",
+"#l#l#l#o.h#l.h#l#p#l#p.h#p.h#p#p#m#p.l#p#m#p#m#p#t.l#t.l#t.l#t.l#e#t#e#u#e#e#e#e#x#e#x#e.s#e.s#e.s#e.s#x.s.s.s.s#b.s#b.s#b.s#j.s#j.s#j.s#j.s#j.s#j#k#j#k#j#j#j#k#j#j#j#k#j#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#j#k#j#j#j#k#j#j#j#k#j#k#j"
+".s#j.s#j.s#j.s#j.s#j.s#j.s#b.s#b.s#b.s.s.s#b.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.r.p.p.p.r.p.r.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.o.q.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.t.t.u.t.v.t.v.t.v.t.v.t.v.w.v.w.v.v.v.w.x.v.x.v.x.v.x.v.x.x.x.x.x.x.y.x.z.x.A.x.A.x.A.x.A.z.A.z.A.z.A.z.B.A.B.A.B.A.B.B.B.B.B.B.B.B.C.B.D.B.C.B.C.D.C.D.C.D.C.D.E.C.E.D.E.C.F.E.F.E.F.E.F.F.G.F.G.F.I.G.I.G.I.G.I.K.J.K.J.I.L.J.L.J.L.J.L.L.M.L.M.L.N.M.N.O.N.O.P.O.Q.O.Q.Q.Q.Q.Q.Q.S.Q.S#A",
+".e#l.e#l#o#l#o#l#l.h#o#p#l#p.h#p.h#p#p#p#p.l#p.l#p#m#p#u.l#t.l#t.l#e.l#e#u#e#u#e#h#e#h#e#e#x#h#x#e.s#e.s#e.s#x.s.s.s.s.s.s.s.s.s.s#j.s#k.s#j.s#j.s#j.s#j.s#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#j#q#k#q#j#q#k#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#k#q#j#q#k#q#j#q#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s"
+"#j.s#j.s#k.s#j.s.s.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.r.p.p.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.r.q.o.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.t.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.w.v.v.v.w.v.v.v.v.x.v.x.v.x.v.x.v.x.x.x.x.y.x.y.x.A.x.A.x.A.x.A.x.A.z.A.z.A.A.A.A.B.A.B.A.B.A.B.B.B.B.B.B.7.B.C.B.C.B.C.B.C.D.C.D.C.C.C.D.E.C.E.C.F.C.F.E.F.E.F.E#d.F.G.F.H.F.H.F.I.G.I.G.I.I.J.K.J.I.J.I.L.J.L.J.L.L.M.L.8.L.N.M.N.M.N.O.P.N.P.O.Q.P.Q.P.Q.Q.R.Q.T.Q.T.R.T",
+"#l#o#l#l.h#l#p#l#p#l#p.h#p.h#B#p#p#p#m#p#m#p#t.l#t.l#t.l#t.l#e#u#e#u#e#t#e#t#e#e#x#e#x#e#x#e.s#e.s#x.s#x.s.s#b.s.s.s#b.s#j.s#j.s#j.s#j.s#j.s#j#k#j#k#j#j#j#k#j#j#j#k#j#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#w#q#q#q#w#q#q#q#w#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#j#k#j#j#j#k#j#j#j#k#j"
+"#k#j.s#j.s#j.s#j.s#j.s#j.s#j.s#b.s.s.s#b.s.s.s#b.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.r.p.p.p.r.p.q.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.u.t.t.t.v.t.v.t.v.t.v.t.v.w.v.w.v.w.v.v.v.w.x.v.x.v.x.v.x.x.x.x.x.x.x.x.y.x.z.x.A.x.A.x.A.z.A.z.A.z.A.z.A.z.B.A.B.A.B.A.B.B.B.B.B.B.B.B.C.B.D.B.C.B.C.D.C.D.C.D.C.D.E.C.E.C.F.C.F.E.F.E.F.F.G.F.H.F.G.F.I.G.I.G.I.G.J.K.J.K.J.I.L.J.L.L.L.L.M.L.O.L.O.M.N.M.N.O.P.O.P.O.Q#f.Q.Q.Q.Q.R.Q.S.Q",
+"#i#l#o#l#o#l#l.h#o.h#l#p#l#p.h#p.h#p#p.l#p.l#p#m#p#u.l#t.l#t.l#t.l#t#u#e#u#e#u#e#u#e#e#x#h#x#e.s#e.s#e.s#e.s#x.s#x.s.s.s.s.s.s#b.s#k.s#j.s#j.s#j.s#j.s#j#k#j#k#j#k#j#k#j#k#j#k#j#k#q#j#q#k#q#j#q#k#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#k#q#j#q#k#q#j#q#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s"
+"#j.s#j.s#j.s#k.s#j.s.s.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.r.p.p.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.q.q.o.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.u.t.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.w.v.v.v.v.v.v.x.v.x.v.x.v.x.v.x.x.y.x.x.x.y.x.y.x.A.x.A.x.A.x.A.z.A.A.A.z.A.A.B.A.B.A.B.A.B.A.B.B.B.B.B.B.7.B.C.B.C.B.C.B.C.D.C.D.C.C.C.D.E.C.E.C.F.C.F.E.F.E.F.F.H.F.H.F.I.F.I.G.I.G.I.G.I.I.J.I.L.I.L.J.L.J.L.L.8.L.M.L.N.L.N.M.N.O.N.O.P.N.Q.N.Q.Q.Q.Q.Q.Q.R.Q.T#A.T",
+"#l#l#l#l.h#l#p#l#p.h#p.h#p#p#p#p#m#p#m#p#m#p#t.l#t.l#t.l#e#u#e#u#e#t#e#t#e#e#x#e#x#e#x#e.s#e.s#x.s#x.s#x#b.s.s.s#b.s#j.s#j.s#j.s#j.s#j.s#j#k#j#k#j#j#j#k#j#j#j#k#j#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#w#q#q#q#w#q#q#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#w#q#q#q#w#q#q#q#w#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#j#k#j#j#j#k#j#j#j"
+"#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#j.s#b.s.s.s#b.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p.p.p.r.p.q.p.q.p.q.p.q.p.q.o.q.o.q.q.q.o.q.q.q.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.u.t.t.t.v.t.v.t.v.t.v.t.v.w.v.w.v.w.v.v.x.v.x.v.x.v.x.v.x.x.x.x.x.x.x.x.A.x.A.x.A.x.A.x.A.z.A.z.A.z.A.A.B.z.B.A.B.A.B.B.B.B.B.B.B.B.D.B.C.B.C.B.C.D.C.D.C.D.C.D.E.D.E.C.F.C.F.E.F.E.F.F.F.F.G.F.H.F.I.G.I.G.I.K.I.K.J.I.L.K.L.J.L.J.L.L.M.L.M.L.N.L.N.M.N.O.N.O.Q.O.Q.N.Q.P.Q.Q.Q.Q.S.Q",
+".e#l#o#l#o.h#o.h#l#p#l#p.h#p.h#p#p#p#p#p#p#m#p.l#p#t.l#t.l#t.l#t.l#e#u#e#u#e#u#e#e#e#h#x#e#x#e#x#e.s#e.s#x.s#x.s.s.s.s.s.s#b.s#k.s#j.s#j.s#j.s#j.s#j#k#j#k#j#k#j#k#j#k#j#k#j#k#q#j#q#k#q#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#k#q#j#q#k#q#j#q#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j.s"
+"#j.s#j.s#j.s#j.s#k.s#j.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.p.r.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.q.q.o.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.t.u.t.t.t.u.t.u.t.v.t.v.t.v.t.v.t.v.w.v.w.v.v.v.v.v.v.x.v.x.v.x.v.x.v.x.x.y.x.x.x.y.x.A.x.A.x.A.x.A.z.A.z.A.A.A.z.A.A.B.A.B.A.B.A.B.B.B.B.7.B.B.B.C.B.C.B.C.B.C.D.C.D.C.D.C.C.E.C.E.C.E.C.F.E.F.E.F.F.F.F.H.F.H.F.I.G.I.G.I.K.I.K.J.I.J.I.L.J.L.J.L.L.L.L.8.L.8.L.N.M.N.M.N.O.P.O.Q.N.Q.P.Q.Q.Q.Q.S.Q.S.Q.T",
+"#l#l.h#l#p#l#p#l#p.h#p.h#p#p#m#p#m#p#m#p#t#p#t.l#t.l#t.l#t#u#e#t#e#u#e#e#x#e#x#e#x#e.s#e.s#e.s#x.s#x#b.s.s.s#b.s#j.s#j.s#j.s#j.s#j.s#j#k#j#k#j#j#j#k#j#j#j#k#j#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#w#q#q#q#w#q#q#q#w#q#z#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#q#q#w#q#q#q#w#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#j#k#j#j#j#k#j"
+"#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#j.s#b.s.s.s#b.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p.p.p.r.p.q.p.q.p.q.p.q.p.q.o.q.o.q.q.q.o.q.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.t.t.u.t.v.t.v.t.v.t.v.t.v.w.v.w.v.w.v.w.v.v.x.v.x.v.x.v.x.x.x.x.x.x.x.x.x.x.A.x.A.x.A.x.A.z.A.z.A.z.A.z.B.A.B.A.B.A.B.A.B.B.B.B.B.B.B.B.D.B.C.B.C.B.C.D.C.D.C.D.E.C.E.D.E.C.F.E.F.E.F.E.F.F.G.F.G.F.I.F.I.G.I.G.I.K.J.K.J.I.L.J.L.J.L.J.L.L.M.L.M.L.N.M.N.O.N.O.P.O.Q.O.Q.Q.Q.Q.Q.Q.S.Q",
+"#o#l#o#l#o#l#l#p#l#p#l#p.h#p.h#p#p#p#p.l#p.l#p#t#p#t.l#t.l#t.l#e#u#e#u#e#u#e#e#e#h#x#e#x#e#x#e.s#e.s#x.s#x.s.s.s.s.s.s#b.s#k.s#j.s#j.s#j.s#j.s#j#k#j#k#j#k#j#k#j#k#j#k#j#k#q#j#q#k#q#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#z#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#z#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#k#q#j#q#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k"
+"#j.s#j.s#j.s#j.s#j.s#k.s#j.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.r.s.p.p.r.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.o.q.q.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.t.u.t.t.t.u.t.u.t.v.t.v.t.v.t.v.t.v.v.v.w.v.v.v.v.x.v.x.v.x.v.x.v.x.x.x.x.y.x.y.x.A.x.A.x.A.x.A.x.A.z.A.z.A.A.A.A.B.A.B.A.B.A.B.B.B.B.B.B.7.B.7.B.C.B.C.B.C.B.C.D.C.D.C.D.E.C.E.C.F.C.F.E.F.E.F.E#d.F.G.F.H.F.H.F.I.G.I.G.I.I.J.K.J.I.J.I.L.J.L.J.L.L.M.L.N.L.N.M.N.O.N.O.P.N.P.O.Q.P.Q.P.Q.Q.R.Q.T.Q.T",
+"#l#l#l#l#p#l#p#l#p.h#p#p#B#p#p#p#m#p#t#p#t.l#t.l#t.l#t#u#e#t#e#u#e#t#e#t#x#e#x#e#x#e#x#e.s#x.s#x#b.s.s.s#b.s#j.s#j.s#j.s#j.s#j.s#j#k#j#k#j#k#j#k#j#j#j#k#j#j#q#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#w#q#q#q#w#q#q#q#w#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#q#q#w#q#q#q#w#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#j#j#j#k#j#j#j"
+"#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#b.s#b.s.s.s#b.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.o.q.o.q.q.q.o.q.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.t.t.u.t.v.t.v.t.v.t.v.w.v.w.v.w.v.v.v.w.x.v.x.v.x.v.x.v.x.x.x.x.x.x.y.x.z.x.A.x.A.x.A.x.A.z.A.z.A.z.A.z.B.A.B.A.B.A.B.B.B.B.B.B.B.B.C.B.D.B.C.B.C.D.C.D.C.D.C.D.E.C.F.D.F.C.F.E.F.F.F.F.G.F.H.F.G.F.I.G.I.G.I.K.J.K.J.K.J.I.L.J.L.L.L.L.M.L.O.L.O.M.N.M.N.O.P.O.P.O.Q#f.Q.Q.Q.Q.R.Q",
+"#o#l#o#l#l.h#l#p#l#p#l#p.h#p#p#p#p.l#p.l#p#m#p#t.l#t.l#t.l#t#u#t#u#e#u#e#t#e#u#x#e#x#e#x#e.s#e.s#x.s#x.s#x.s#x.s.s#b.s#k.s#j.s#j.s#j.s#j.s#j#k#j#k#j#k#j#k#j#k#j#k#j#k#q#j#q#k#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#k#q#j#q#k#j#k#j#k#j#k#j#k#j#k#j#k"
+"#j.s#j.s#j.s#j.s#j.s#j.s#k.s#b.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.r.s.p.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.r.q.o.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.t.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.w.v.v.v.w.v.v.v.v.x.v.x.v.x.v.x.x.x.x.x.x.y.x.y.x.A.x.A.x.A.x.A.z.A.z.A.z.A.A.A.A.B.A.B.A.B.A.B.B.B.B.B.B.7.B.C.B.C.B.C.B.C.D.C.D.C.C.C.D.E.C.E.C.F.C.F.E.F.F.F.F.H.F.H.F.I.F.I.G.I.G.I.G.I.I.J.I.L.I.L.J.L.J.L.L.8.L.M.L.N.L.N.M.N.O.N.O.P.N.Q.N.Q.Q.Q.Q.Q.Q.S.Q.T",
+"#l#l#p#l#p#l#p.h#p.h#B#p#p#p#m#p#m#p#t#p#t.l#t.l#t#u#e#t#e#u#e#t#e#t#x#e#x#e#x#e#x#e.s#x.s#x#b#x.s#x#b.s#b.s#j.s#j.s#j.s#j.s#j#k#j#k#j#k#j#k#j#j#j#k#j#j#q#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#w#q#q#q#w#q#q#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#z#q#w#q#q#q#w#q#q#q#w#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#j#j#j#k#j"
+"#j#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#b.s#b.s.s.s#b.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.r.p.p.p.r.p.r.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.o.t.q.t.q.t.q.t.q.t.t.t.t.t.t.u.t.t.t.v.t.v.t.v.t.v.t.v.w.v.w.v.w.v.v.v.w.x.v.x.v.x.v.x.x.x.x.x.x.x.x.y.x.z.x.A.x.A.x.A.z.A.z.A.z.A.A.B.z.B.A.B.A.B.B.B.B.B.B.B.B.D.B.C.B.C.B.C.D.C.D.C.D.C.D.E.D.E.C.F.C.F.E.F.E.F.F.F.F.G.F.I.F.I.G.I.G.I.K.I.K.J.K.L.K.L.J.L.J.L.L.M.L.M.L.N.L.N.O.N.O.N.O.Q.O.Q.N.Q.Q.Q.Q.Q.Q",
+"#o#l#l.h#o#p#l#p#l#p.h#p.h#p#p#p#p#p#p#m#p#u#p#t.l#t.l#t.l#t#u#e#u#e#u#e#u#e#e#x#e#x#e#x#e#x#e.s#x.s#x.s#x.s.s#b.s#k.s#j.s#j.s#j.s#j.s#j#k#j#k#j#k#j#k#j#k#j#k#j#k#q#j#q#k#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#z#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#k#q#j#q#k#j#k#j#k#j#k#j#k#j#k"
+"#j#k#j.s#j.s#j.s#j.s#j.s#j.s#k.s#b.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.r.p.p.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.q.q.o.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.u.t.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.w.v.v.v.v.v.v.x.v.x.v.x.v.x.v.x.x.y.x.x.x.y.x.A.x.A.x.A.x.A.x.A.z.A.A.A.z.A.A.B.A.B.A.B.A.B.B.B.B.7.B.B.B.C.B.C.B.C.B.C.D.C.D.C.D.C.C.E.C.E.C.F.C.F.E.F.E.F.F.F.F.H.F.H.F.I.G.I.G.I.K.I.K.J.I.J.I.L.J.L.J.L.L.L.L.8.L.8.L.N.M.N.M.N.O.P.O.Q.N.Q.P.Q.Q.Q.Q.S.Q.S",
+".h#l#p#l#p#l#p#l#p#p#p#p#m#p#m#p#t#p#t#p#t.l#t.l#t#u#t#u#e#t#e#t#e#e#x#e#x#e#x#e.s#e.s#x#b#x.s#x#b.s#b.s#j.s#j.s#j.s#j.s#j.s#j#k#j#k#j#k#j#j#j#k#j#j#q#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#w#q#q#q#w#q#q#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#w#q#q#q#w#q#q#q#w#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#j#j#j"
+"#k#j#j#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#j.s#b.s#b.s.s.s#b.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.r.p.p.p.r.p.q.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.u.t.t.t.v.t.v.t.v.t.v.w.v.w.v.w.v.w.v.v.x.v.x.v.x.v.x.v.x.x.x.x.x.x.x.x.A.x.A.x.A.x.A.z.A.z.A.z.A.z.A.A.B.z.B.A.B.A.B.B.B.B.B.B.B.B.D.B.C.B.C.B.C.D.C.D.C.D.C.D.E.D.E.C.F.E.F.E.F.E.F.F.G.F.G.F.I.F.I.G.I.G.I.K.J.K.J.I.L.I.L.J.L.L.L.L.M.L.O.L.N.M.N.O.N.O.P.O.Q.O.Q.Q.Q.Q.Q.Q",
+"#o#l#o#l#l#p#l#p#l#p#l#p#p#p#p#p#p#m#p.l#p#t#p#t.l#t.l#t#u#e#u#e#u#e#u#e#e#x#h#x#e#x#e#x#e.s#x.s#x.s#x.s.s.s.s.s.s#j.s#k.s#j.s#j.s#j.s#j#k#j#k#j#k#j#k#j#k#j#k#q#j#q#k#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#z#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#k#q#j#q#k#j#k#j#k#j#k#j#k"
+"#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#k.s#b.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.r.p.p.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.q.q.o.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.t.u.t.t.t.u.t.u.t.v.t.v.t.v.t.v.t.v.v.v.w.v.v.v.v.v.v.x.v.x.v.x.v.x.x.x.x.y.x.x.x.y.x.A.x.A.x.A.x.A.z.A.z.A.A.A.A.B.A.B.A.B.A.B.A.B.B.B.B.7.B.B.B.C.B.C.B.C.B.C.D.C.D.C.D.C.C.E.C.F.C.F.E.F.E.F.E#d.F.G.F.H.F.I.F.I.G.I.G.I.I.J.K.J.I.L.I.L.J.L.J.L.L.M.L.N.L.N.M.N.O.N.O.P.N.P.O.Q.N.Q.Q.Q.Q.R.Q.T",
+"#C#l#p#l#p#l#p#p#p#p#B#p#B#p#m#p#t#p#t.l#t.l#t#u#t#u#e#t#e#t#e#t#x#t#x#e#x#e#x#e#x#x.s#x.s#x#b.s#b.s#j.s#j.s#j.s#j.s#j.s#j#k#j#k#j#k#j#j#j#k#j#j#q#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#w#q#q#q#w#q#q#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#w#q#q#q#w#q#q#q#w#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#j"
+"#j#j#k#j#j#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#b.s#b.s#b.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p.p.p.r.p.q.p.q.p.q.p.q.p.q.o.q.o.q.q.q.o.q.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.t.t.u.t.v.t.v.t.v.t.v.t.v.w.v.w.v.v.v.w.x.v.x.v.x.v.x.v.x.x.x.x.x.x.y.x.z.x.A.x.A.x.A.x.A.z.A.z.A.z.A.z.B.A.B.A.B.A.B.B.B.B.B.B.B.B.C.B.D.B.C.B.C.D.C.D.C.D.C.D.E.C.F.D.F.C.F.E.F.F.F.F.G.F.H.F.G.F.I.G.I.K.I.K.J.K.J.K.L.I.L.J.L.L.L.L.M.L.O.L.O.M.N.M.N.O.P.O.Q.O.Q#f.Q.Q.Q.Q",
+"#o#l#l#p#l#p#l#p#l#p.h#p#p#p#p#m#p.l#p#t#p#t.l#t.l#t.l#t#u#t#u#e#u#e#t#x#u#x#e#x#e#x#e.s#e.s#x.s#x.s#x.s#x.s.s#j.s#k.s#j.s#j.s#j.s#j#k#j#k#j#k#j#k#j#k#j#k#j#j#q#k#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#k#q#j#q#k#q#j#j#k#j#k#j#k#j#k"
+"#j#k#j#k#j#k#j.s#j.s#j.s#j.s#k.s#j.s.s.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.p.r.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.o.q.q.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.t.u.t.u.t.u.t.u.t.v.t.v.t.v.t.v.w.v.v.v.w.v.v.v.v.x.v.x.v.x.v.x.v.x.x.x.x.y.x.y.x.A.x.A.x.A.x.A.z.A.z.A.z.A.A.A.A.B.A.B.A.B.A.B.B.B.B.B.B.7.B.C.B.C.B.C.B.C.D.C.D.C.C.C.D.E.C.E.C.F.C.F.E.F.F.F.F.H.F.H.F.I.F.I.G.I.G.I.K.I.I.J.I.L.I.L.J.L.L.L.L.8.L.M.L.N.L.N.M.N.O.N.O.Q.N.Q.N.Q.Q.Q.Q.Q.Q.S",
+"#p#l#p#l#p.h#p#p#B#p#p#p#m#p#t#p#t#p#t#p#t.l#t#u#t#t#t#u#e#t#x#t#x#e#x#e#x#e#x#x.s#x.s#x#b#x.s#x#b.s#j.s#j.s#j.s#j.s#j#k#j#k#j#k#j#j#j#k#j#j#q#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#w#q#q#q#w#q#q#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#w#q#q#q#w#q#q#q#w#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q"
+"#j#j#j#j#k#j#j#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#b.s.s.s#b.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.o.q.o.q.q.q.o.q.q.t.q.t.q.t.q.t.q.t.t.t.t.u.t.t.t.v.t.v.t.v.t.v.t.v.w.v.w.v.w.v.v.v.w.x.v.x.v.x.v.x.x.x.x.x.x.x.x.y.x.z.x.A.x.A.x.A.z.A.z.A.z.A.A.B.z.B.A.B.A.B.B.B.B.B.B.B.B.D.B.C.B.C.B.C.D.C.D.C.D.C.D.E.D.E.C.F.C.F.E.F.E.F.F.F.F.G.F.I.F.I.G.I.G.I.K.I.K.J.K.L.K.L.J.L.J.L.L.M.L.M.L.N.L.N.O.N.O.N.O.Q.O.Q.N.Q.Q.Q.Q",
+"#l#l#o#p#l#p#l#p.h#p#p#p#p#p#p#p#p#t#p#t#p#t#p#t.l#t#u#t#u#e#u#e#t#e#u#x#e#x#e#x#e#x#e#x#x.s#x.s#x.s#x.s.s#j.s#k.s#j.s#j.s#j.s#j#k#j#k#j#k#j#k#j#k#j#k#j#j#q#k#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#k#q#j#q#k#q#j#j#k#j#k#j#k"
+"#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#k.s#j.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.r.s.p.p.r.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.r.q.o.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.t.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.w.v.v.v.v.v.v.x.v.x.v.x.v.x.v.x.x.y.x.x.x.y.x.A.x.A.x.A.x.A.x.A.z.A.A.A.z.A.A.B.A.B.A.B.A.B.B.B.B.7.B.B.B.C.B.C.B.C.B.C.D.C.D.C.D.C.C.E.C.F.C.F.C.F.E.F.E.F.F.F.F.H.F.H.F.I.G.I.G.I.K.I.K.J.I.J.I.L.J.L.J.L.L.L.L.8.L.N.L.N.M.N.O.N.O.P.O.Q.N.Q.P.Q.Q.Q.Q.S",
+"#p#l#p#l#p#l#B#p#p#p#B#p#m#p#t#p#t#p#t.l#t#u#t#t#t#u#e#t#e#t#x#e#x#e#x#e#x#e#x#x#x#x#b#x.s#x#b.s#j.s#j.s#j.s#j.s#j.s#j#k#j#k#j#j#j#k#j#j#j#j#q#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#w#q#q#q#w#q#q#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#w#q#q#q#w#q#q#q#w#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q"
+"#j#j#j#j#j#j#k#j#j#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#j.s#b.s.s.s#b.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.p.p.p.r.p.p.p.r.p.r.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.u.t.t.t.v.t.v.t.v.t.v.t.v.w.v.w.v.w.v.v.x.v.x.v.x.v.x.v.x.x.x.x.x.x.x.x.A.x.A.x.A.x.A.z.A.z.A.z.A.z.A.A.B.z.B.A.B.A.B.B.B.B.B.B.B.B.D.B.C.B.C.B.C.D.C.D.C.D.C.D.E.D.E.C.F.E.F.E.F.F.F.F.G.F.G.F.I.F.I.G.I.G.I.K.J.K.J.I.L.J.L.L.L.L.L.L.M.L.O.L.N.M.N.O.N.O.P.O.Q.O.Q.Q.Q.Q",
+"#o#C#l#p#l#p#l#p#l#p#p#p#p#p#p#m#p#u#p#t#p#t.l#t.l#t#u#e#u#e#u#e#u#x#t#x#t#x#e#x#e#x#x.s#x.s#x.s#x.s.s#b.s#k.s#j.s#j.s#j.s#j#k#j#k#j#k#j#k#j#k#j#k#j#j#q#k#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#z#q#y#q#z#q#y#q#z#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#k#q#j#q#k#q#j#j#k#j#k"
+"#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#k.s#j.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.r.p.p.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.q.q.o.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.u.t.t.t.u.t.u.t.v.t.v.t.v.t.v.t.v.w.v.w.v.v.v.v.v.v.x.v.x.v.x.v.x.x.x.x.y.x.x.x.y.x.A.x.A.x.A.x.A.z.A.z.A.A.A.A.B.A.B.A.B.A.B.A.B.B.B.B.7.B.B.B.C.B.C.B.C.B.C.D.C.D.C.D.C.C.E.C.F.C.F.E.F.F.F.F#d.F.G.F.I.F.I.F.I.G.I.G.I.I.J.K.L.I.L.I.L.J.L.L.L.L.M.L.N.L.N.M.N.O.N.O.P.N.Q.O.Q.Q.Q.Q.Q.Q.R",
+"#p#l#p#l#p#p#p#p#B#p#B#p#t#p#t#p#t.l#t.l#t#t#t#u#e#t#e#t#x#t#x#t#x#e#x#e#x#x#x#x#b#x.s#x#b#x#j#x#j.s#j.s#j.s#j.s#j#k#j#k#j#j#j#k#j#j#j#j#q#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#w#q#q#q#w#q#q#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#y#D#z#D#y#D#z#D#y#D#z#D#y#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#w#q#q#q#w#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q"
+"#j#q#j#j#k#j#j#j#k#j#j#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#b.s#b.s.s.s#b.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.r.p.p.p.r.p.q.p.q.p.q.p.q.p.q.o.q.o.q.q.q.o.q.q.q.q.t.q.t.q.t.q.t.t.t.t.t.t.t.t.u.t.w.t.v.t.v.t.v.t.v.w.v.w.v.w.v.w.v.v.x.v.x.v.x.v.x.x.x.x.x.x.x.x.z.x.A.x.A.x.A.x.A.z.A.z.A.z.A.z.B.A.B.A.B.A.B.B.B.B.B.B.B.B.C.B.D.B.C.B.C.D.C.D.C.D.C.D.E.C.F.D.F.C.F.E.F.F.F.F.G.F.H.F.K.F.I.G.I.K.I.K.J.K.L.K.L.I.L.J.L.L.L.L.M.L.O.L.O.M.N.O.N.O.P.O.Q.O.Q#f.Q.Q",
+"#l#p#l#p#l#p#l#p#p#p#p#p#p#m#p.l#p#t#p#t.l#t.l#t#u#t#u#t#u#e#u#e#t#x#t#x#e#x#e#x#e#x#x#x#x.s#x.s#x#b#x#k.s#j.s#j.s#j.s#j.s#j#k#j#k#j#k#j#k#j#k#j#j#q#k#q#j#q#k#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#z#q#y#q#z#q#y#q#z#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#k#q#j#q#k#q#j#j#k"
+"#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#k.s#b.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.r.p.p.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.q.q.o.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.t.u.t.t.t.u.t.u.t.v.t.v.t.v.t.v.t.v.v.v.w.v.v.v.v.x.v.x.v.x.v.x.v.x.x.x.x.y.x.y.x.A.x.A.x.A.x.A.x.A.z.A.z.A.A.A.A.B.A.B.A.B.A.B.B.B.B.B.B.7.B.C.B.C.B.C.B.C.D.C.D.C.C.C.D.E.C.E.C.F.C.F.E.F.F.F.F.H.F.H.F.I.F.I.G.I.K.I.K.I.I.J.I.L.I.L.J.L.L.L.L.8.L.M.L.N.L.N.M.N.O.N.O.Q.N.Q.N.Q.Q.Q.Q#A",
+"#p#l#p.h#p#p#B#p#B#p#m#p#t#p#t#p#t#p#t#u#t#u#t#t#t#t#e#t#x#t#x#e#x#e#x#e#x#x#b#x.s#x#b#x#b#x#j.s#j.s#j.s#j.s#j#k#j#k#j#j#j#k#j#j#j#j#q#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#w#q#q#q#w#q#q#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#y#D#z#D#y#D#z#D#y#D#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#D#y#D#z#D#y#D#z#y#y#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#w#q#q#q#w#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q"
+"#j#q#j#q#j#j#k#j#j#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#b.s#b.s.s.s#b.s.s.s.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p.p.p.r.p.q.p.q.p.q.p.q.p.q.o.q.o.q.q.q.o.q.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.t.t.u.t.v.t.v.t.v.t.v.w.v.w.v.w.v.v.v.w.x.v.x.v.x.v.x.x.x.x.x.x.x.x.y.x.z.x.A.x.A.x.A.z.A.z.A.z.A.A.B.z.B.A.B.A.B.B.B.B.B.B.B.B.D.B.C.B.C.B.C.D.C.D.C.D.C.D.E.D.E.C.F.C.F.E.F.E.F.F.F.F.G.F.I.F.I.G.I.G.I.K.I.K.J.I.L.K.L.J.L.J.L.L.M.L.M.L.N.L.N.O.N.O.N.O.Q.O.Q#E.Q.Q",
+"#l#C#l#p#l#p.h#p#p#p#p#p#p#p#p#t#p#t#p#t#p#t.l#t#u#t#u#e#u#e#t#x#u#x#e#x#e#x#e#x#x#x#x.s#x.s#x.s#x#k.s#j.s#j.s#j.s#j.s#j#k#j#k#j#k#j#k#j#k#j#k#q#k#q#j#q#k#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#z#q#y#q#z#q#y#q#z#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#z#q#y#q#z#q#y#q#z#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#k#q#j#q#k#j#k"
+"#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#k.s#b.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.p.r.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.o.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.t.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.w.v.v.v.w.v.v.v.v.x.v.x.v.x.v.x.x.y.x.x.x.y.x.y.x.A.x.A.x.A.x.A.z.A.A.A.z.A.A.B.A.B.A.B.A.B.B.B.B.7.B.B.B.C.B.C.B.C.B.C.D.C.D.C.D.C.C.E.C.F.C.F.C.F.E.F.E.F.F.F.F.H.F.H.F.I.G.I.G.I.K.I.K.J.I.J.I.L.J.L.J.L.L.L.L.N.L.N.L.N.O.N.O.N.O.P.O.Q.N.Q.Q.Q.Q.Q",
+"#p#l#p#C#B#p#p#p#B#p#F#p#t#p#t#p#t.l#t#u#t#t#t#u#e#t#x#t#x#t#x#t#x#e#x#x#x#x#x#x#b#x#b#x#j.s#j.s#j.s#j.s#j.s#j#k#j#k#j#k#j#j#j#k#j#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#w#q#q#q#w#q#q#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#y#D#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#D#y#D#z#y#y#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#w#q#q#q#w#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q"
+"#j#q#j#q#j#j#j#j#k#j#j#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#b.s.s.s#b.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p.r.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.o.t.q.t.q.t.q.t.q.t.t.t.t.t.t.u.t.t.t.v.t.v.t.v.t.v.t.v.w.v.w.v.w.v.v.x.v.x.v.x.v.x.v.x.x.x.x.x.x.x.x.A.x.A.x.A.x.A.z.A.z.A.z.A.z.A.A.B.z.B.A.B.A.B.B.B.B.B.B.B.B.D.B.C.B.C.B.C.D.C.D.C.D.C.D.F.D.F.C.F.E.F.F.F.F.F.F.G.F.G.F.I.F.I.K.I.K.I.K.J.K.J.I.L.J.L.L.L.L.L.L.O.L.O.L.N.M.N.O.N.O.Q.O.Q.O.Q.Q",
+"#l#p#l#p#l#p#C#p#p#p#p#p#p#m#p#t#p#t#p#t.l#t#u#t#u#t#u#t#t#e#u#x#t#x#t#x#e#x#e#x#x.s#x.s#x.s#x.s.s#j.s#k.s#j.s#j.s#j.s#j#k#j#k#j#k#j#k#j#k#j#k#q#j#q#k#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#z#q#y#q#z#q#y#q#z#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#z#q#y#q#z#q#y#q#z#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#k#q#j#q#k"
+"#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#k.s#j.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.r.s.p.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.r.q.o.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.u.t.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.w.v.w.v.v.v.v.v.v.x.v.x.v.x.v.x.x.x.x.y.x.x.x.y.x.A.x.A.x.A.x.A.z.A.z.A.A.A.A.B.A.B.A.B.A.B.A.B.B.B.B.7.B.B.B.C.B.C.B.C.B.C.D.C.D.C.D.C.C.E.C.F.C.F.E.F.F.F.F#d.F.G.F.I.F.I.F.I.G.I.K.I.I.J.K.L.I.L.I.L.L.L.L.L.L.M.L.N.L.N.M.N.O.N.O.Q.N.Q.O.Q.Q.Q.Q.Q",
+"#p#l#B#p#p#p#B#p#B#p#t#p#t#p#t.l#t#u#t#t#t#u#e#t#e#t#x#t#x#t#x#e#x#e#x#x#x#x#b#x.s#x#b#x#j#x#j.s#j.s#j.s#j#k#j#k#j#k#j#j#j#k#j#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#w#q#q#q#w#q#q#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#y#D#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#D#y#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#w#q#q#q#w#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q"
+"#j#q#j#q#j#q#j#j#j#j#k#j#j#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#b.s.s.s#b.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.p.p.p.r.p.p.p.r.p.r.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.u.t.w.t.v.t.v.t.v.t.v.w.v.w.v.w.v.w.v.v.x.v.x.v.x.v.x.x.x.x.x.x.x.x.z.x.A.x.A.x.A.x.A.z.A.z.A.z.A.z.B.A.B.A.B.A.B.B.B.B.B.B.B.B.C.B.D.B.C.B.C.D.C.D.C.D.C.D.E.C.F.D.F.C.F.E.F.F.F.F.G.F.I.F.K.F.I.G.I.K.I.K.J.K.L.K.L.I.L.J.L.L.L.L.M.L.N.L.O.O.N.O.N.O.Q.O.Q.N.Q#G",
+"#l#p#l#p#l#p#p#p#p#p#p#B#p#H#p#t#p#t#p#t.l#t#u#t#u#t#u#e#u#x#t#x#t#x#e#x#e#x#x#x#x#x#x.s#x.s#x#j#x#k.s#j.s#j.s#j.s#j#k#j#k#j#k#j#k#j#k#j#k#q#j#q#k#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#z#q#y#q#z#q#y#q#z#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#z#q#y#q#z#q#y#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#k#q#j"
+"#q#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#k.s#j.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.r.p.p.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.q.q.o.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.t.u.t.t.t.u.t.u.t.v.t.v.t.v.t.v.t.v.v.v.w.v.v.v.v.x.v.x.v.x.v.x.v.x.x.x.x.y.x.y.x.A.x.A.x.A.x.A.z.A.z.A.z.A.A.A.A.B.A.B.A.B.A.B.B.B.B.B.B.7.B.C.B.C.B.C.B.C.D.C.D.C.C.C.D.F.C.F.C.F.C.F.E.F.F.F.F.H.F.H.F.I.F.I.G.I.K.I.K.J.I.J.I.L.I.L.J.L.L.L.L.8.L.O.L.N.M.N.O.N.O.N.O.Q.N.Q.N.Q.Q.Q",
+"#p#C#p#C#B#p#B#p#m#p#t#p#t#p#t#p#t#u#t#u#t#t#t#t#x#t#x#t#x#e#x#e#x#x#x#x#b#x.s#x#b#x#j#x#j.s#j.s#j.s#j.s#j#k#j#k#j#j#j#k#j#j#q#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#w#q#q#q#w#q#q#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#y#y#z#y#y#y#z#y#y#y#z#D#y#D#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#D#y#D#z#y#y#y#z#y#y#y#z#y#y#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#w#q#q#q#w#q#q#q#q#q#q#q#q#q#q#j#q#j#q"
+"#j#q#j#q#j#q#j#q#j#j#j#j#k#j#j#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#b.s#b.s.s.s#b.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.r.p.p.p.r.p.q.p.q.p.q.p.q.p.q.o.q.o.q.q.q.o.q.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.t.t.u.t.v.t.v.t.v.t.v.w.v.w.v.w.v.v.v.w.x.v.x.v.x.v.x.x.x.x.x.x.x.x.y.x.z.x.A.x.A.x.A.z.A.z.A.z.A.A.B.z.B.A.B.A.B.B.B.B.B.B.B.B.D.B.C.B.C.B.C.D.C.D.C.D.C.D.E.D.F.C.F.C.F.F.F.F.F.F.F.F.G.F.I.F.I.G.I.G.I.K.I.K.J.I.L.K.L.L.L.L.L.L.M.L.O.L.N.M.N.O.N.O.P.O.Q.O.Q.Q",
+"#l#p#l#p#l#p#C#p#p#B#p#p#p#t#p#t#p#t#p#t#u#t#u#t#u#e#u#e#t#x#t#x#e#x#e#x#e#x#x#x#x.s#x.s#x#b#x#k.s#j.s#j.s#j.s#j#k#j#k#j#k#j#k#j#k#j#k#q#j#q#k#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#z#q#y#q#z#q#y#q#z#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#D#z#D#z#D#z#D#z#D#z#D#z#D#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#z#q#y#q#z#q#y#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#k"
+"#q#j#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#k.s#b.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.r.p.p.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.o.q.q.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.t.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.w.v.v.v.w.v.v.v.v.x.v.x.v.x.v.x.x.y.x.x.x.y.x.A.x.A.x.A.x.A.x.A.z.A.A.A.z.A.A.B.A.B.A.B.A.B.B.B.B.7.B.B.B.C.B.C.B.C.B.C.D.C.D.C.D.C.C.E.C.F.C.F.C.F.F.F.F.F.F.F.F.I.F.I.F.I.G.I.G.I.K.I.K.L.I.L.I.L.J.L.L.L.L.M.L.N.L.N.L.N.O.N.O.N.O.Q.O.Q.N.Q.Q.Q",
+"#p#C#B#p#p#p#B#p#F#p#t#p#t#p#t#u#t#u#t#t#t#t#e#t#x#t#x#t#x#t#x#e#x#x#I#x#x#x#b#x#b#x#j.s#j.s#j.s#j.s#j#k#j#k#j#j#j#k#j#j#j#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#w#q#q#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#y#y#z#y#y#y#z#y#y#y#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#D#y#y#z#y#y#y#z#y#y#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#q#q#w#q#q#q#w#q#q#q#q#q#q#q#q#j#q#j#q"
+"#j#q#j#q#j#q#j#q#j#j#k#j#j#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#b.s#b.s.s.s#b.s.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p.p.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.o.t.q.t.q.t.q.t.q.t.t.t.t.t.t.u.t.t.t.v.t.v.t.v.t.v.t.v.w.v.w.v.w.v.v.x.v.x.v.x.v.x.v.x.x.x.x.x.x.x.x.A.x.A.x.A.x.A.z.A.z.A.z.A.z.B.A.B.z.B.A.B.A.B.B.B.B.B.B.B.B.D.B.C.B.C.B.C.D.C.D.C.D.E.C.F.D.F.C.F.E.F.F.F.F.F.F.K.F.K.F.I.G.I.K.I.K.I.K.L.K.L.I.L.J.L.L.L.L.M.L.O.L.O.L.N.O.N.O#E.O.Q.O.Q.O",
+"#l#p#l#p#C#p#p#p#p#p#p#t#p#t#p#t#p#t.l#t#u#t#u#t#u#t#t#x#u#x#t#x#t#x#e#x#x#x#x.s#x.s#x.s#x#k#x#j#x#j.s#j.s#j.s#j#k#j#k#j#k#j#k#j#k#j#j#q#k#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#z#q#y#q#z#q#y#q#z#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#D#z#D#z#D#z#D#z#D#z#D#z#D#z#D#z#D#z#D#z#D#z#D#z#D#z#D#z#D#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#z#q#y#q#z#q#y#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#k#q#j"
+"#q#k#q#j#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#k.s#b.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.r.s.p.p.r.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.r.q.o.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.u.t.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.w.v.w.v.v.v.v.v.v.x.v.x.v.x.v.x.x.x.x.y.x.x.x.y.x.A.x.A.x.A.x.A.z.A.z.A.A.A.A.B.A.B.A.B.A.B.B.B.B.B.B.7.B.7.B.C.B.C.B.C.D.C.D.C.C.C.D.F.C.F.C.F.C.F.E.F.F.F.F#d.F.G.F.I.F.I.G.I.K.I.K.I.I.J.K.L.I.L.J.L.L.L.L.L.L.M.L.N.L.N.M.N.O.N.O.Q.N.Q.N.Q.Q.Q",
+"#B#p#p#p#B#p#B#p#t#p#t#p#t#p#t#H#t#t#t#u#t#t#t#t#x#t#x#t#x#e#x#x#x#x#x#x#b#x#b#x#j#x#j#x#j.s#j.s#j.s#j#k#j#j#j#k#j#j#j#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#w#q#q#q#w#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#y#y#z#y#y#y#z#y#y#D#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#D#y#y#z#y#y#y#z#y#y#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#q#q#w#q#q#q#w#q#q#q#q#q#q#q#q#j#q"
+"#j#q#j#q#j#q#j#q#j#q#j#j#k#j#j#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#b.s.s.s#b.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.p.p.p.r.p.p.p.r.p.r.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.u.t.w.t.v.t.v.t.v.t.v.w.v.w.v.w.v.w.v.v.x.v.x.v.x.v.x.x.x.x.x.x.y.x.z.x.A.x.A.x.A.x.A.z.A.z.A.z.A.z.B.A.B.A.B.A.B.B.B.B.B.B.B.B.C.B.D.B.C.B.C.D.C.D.C.D.C.D.E.C.F.C.F.E.F.E.F.F.F.F.G.F.I.F.K.F.I.G.I.K.I.K.J.K.L.K.L.J.L.L.L.L.L.L.O.L.N.L.O.O.N.O.N.O.Q.O.Q#E",
+"#l#p#l#p#p#p#p#p#p#B#p#F#p#t#p#t#p#t#H#t#u#t#u#t#t#e#u#x#t#x#t#x#e#x#e#x#x#x#x#x#x.s#x.s#x#j#x#k.s#j.s#j.s#j#k#j#k#j#k#j#k#j#k#j#j#q#k#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#z#q#y#q#z#q#y#q#z#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#D#z#D#z#D#z#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#z#D#z#D#z#D#z#D#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#z#q#y#q#z#q#y#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#k"
+"#q#j#q#k#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#k.s#j.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.r.s.p.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.q.q.o.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.t.u.t.t.t.u.t.u.t.v.t.v.t.v.t.v.t.v.v.v.w.v.v.v.v.x.v.x.v.x.v.x.v.x.x.x.x.y.x.y.x.A.x.A.x.A.x.A.z.A.z.A.z.A.A.A.A.B.A.B.A.B.A.B.B.B.B.B.B.7.B.C.B.C.B.C.B.C.D.C.D.C.C.C.D.F.C.F.C.F.E.F.F.F.F.F.F.I.F.I.F.I.F.I.G.I.K.I.K.J.I.L.I.L.I.L.J.L.L.L.L.N.L.N.L.N.O.N.O.N.O.P.O.Q.N.Q.Q.Q",
+"#p#C#B#p#B#p#F#p#F#p#t#p#t#p#t#t#t#u#t#t#t#t#x#t#x#t#x#t#x#t#x#x#x#x#I#x#x#x#b#x#j#x#j.s#j.s#j.s#j#k#j#k#j#k#j#j#j#k#j#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#w#q#q#q#w#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#y#y#z#y#y#y#z#y#y#D#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#D#y#y#z#y#y#y#z#y#y#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#q#q#w#q#q#q#q#q#q#q#q#q#q#j#q"
+"#j#q#j#q#j#q#j#q#j#q#j#j#j#j#k#j#j#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#b.s.s.s#b.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.r.p.p.p.r.p.q.p.q.p.q.p.q.p.q.o.q.o.q.q.q.o.q.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.t.t.u.t.v.t.v.t.v.t.v.w.v.w.v.w.v.v.v.w.x.v.x.v.x.v.x.x.x.x.x.x.x.x.y.x.z.x.A.x.A.x.A.z.A.z.A.z.A.A.B.z.B.A.B.A.B.B.B.B.B.B.B.B.D.B.C.B.C.B.C.D.C.D.C.D.C.D.F.D.F.C.F.C.F.F.F.F.F.F.G.F.K.F.I.F.I.K.I.K.I.K.J.K.L.I.L.K.L.L.L.L.L.L.O.L.O.L.N.M.N.O.N.O.Q.O.Q.O",
+"#l#p#C#p#C#p#p#B#p#p#p#t#p#t#p#t#p#t#u#t#u#t#u#t#u#t#t#x#t#x#t#x#t#x#x#x#x#x#x.s#x.s#x#j#x#k.s#j.s#j.s#j.s#j#k#j#k#j#k#j#k#j#k#j#k#q#j#q#k#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#y#q#z#q#y#q#z#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#D#z#D#z#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#z#D#z#D#z#D#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#z#q#y#q#z#q#z#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j"
+"#q#k#q#j#q#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#k.s#j.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.r.p.p.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.q.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.t.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.w.v.v.v.v.v.v.x.v.x.v.x.v.x.v.x.x.y.x.x.x.y.x.A.x.A.x.A.x.A.x.A.z.A.A.A.z.A.A.B.A.B.A.B.A.B.B.B.B.7.B.B.B.C.B.C.B.C.B.C.D.C.D.C.D.C.C.E.C.F.C.F.C.F.F.F.F#d.F.G.F.I.F.I.F.I.K.I.K.I.K.J.K.L.I.L.I.L.L.L.L.L.L.M.L.N.L.N.M.N.O.N.O#E.N.Q.O.Q#E.Q",
+"#B#p#p#p#B#p#F#p#t#p#t#p#t#H#t#u#t#t#t#t#e#t#x#t#x#t#x#t#x#x#x#x#I#x#x#x#b#x#j#x#j#x#j#x#j.s#j.s#j#k#j#k#j#j#j#k#j#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#w#q#q#q#w#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#y#y#z#y#y#y#z#y#y#D#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#D#y#D#z#y#y#y#z#y#y#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#w#q#q#q#w#q#q#q#q#q#q#q#q#q#q"
+"#j#q#j#q#j#q#j#q#j#q#j#q#j#j#j#j#k#j#j#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#b.s#b.s.s.s#b.s.s.s.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p.p.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.o.t.q.t.q.t.q.t.q.t.t.t.t.t.t.u.t.t.t.v.t.v.t.v.t.v.t.v.w.v.w.v.w.v.v.x.v.x.v.x.v.x.v.x.x.x.x.x.x.x.x.A.x.A.x.A.x.A.z.A.z.A.z.A.z.B.A.B.A.B.A.B.B.B.B.B.B.B.B.C.B.D.B.C.B.C.D.C.D.C.D.C.D.E.C.F.D.F.C.F.E.F.F.F.F.F.F.I.F.K.F.I.G.I.K.I.K.I.K.L.K.L.I.L.J.L.L.L.L.M.L.O.L.O.O.N.O.N.O.Q.O.Q.O",
+"#l#p#C#p#p#p#p#p#p#F#p#F#p#t#p#t#p#t#H#t#u#t#u#t#t#x#u#x#t#x#t#x#e#x#x#x#x#x#x#x#x#b#x#k#x#j#x#j.s#j.s#j#k#j#k#j#k#j#k#j#k#j#k#q#j#q#k#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#y#q#z#q#y#q#z#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#D#z#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#z#D#z#D#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#z#q#y#q#z#q#y#q#z#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j"
+"#q#j#q#k#q#j#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#k.s#b.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.p.r.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.r.q.o.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.u.t.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.w.v.w.v.v.v.v.v.v.x.v.x.v.x.v.x.x.x.x.y.x.x.x.y.x.A.x.A.x.A.x.A.z.A.z.A.A.A.A.B.A.B.A.B.A.B.B.B.B.B.B.7.B.C.B.C.B.C.B.C.D.C.D.C.C.C.D.F.C.F.C.F.C.F.E.F.F.F.F#d.F.I.F.I.F.I.G.I.K.I.K.I.I.J.I.L.I.L.J.L.L.L.L.N.L.O.L.N#J.N.O.N.O.N.O.Q.N.Q.N.Q",
+"#p#C#B#p#B#p#F#p#t#p#t#p#t#H#t#t#t#u#t#t#K#t#x#t#x#t#x#e#x#x#x#x#x#x#b#x#b#x#j#x#j#x#j.s#j.s#j#k#j#k#j#j#j#k#j#j#j#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#w#q#q#q#w#q#q#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#y#y#z#y#y#y#z#y#y#D#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#y#y#y#z#y#y#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#w#q#q#q#w#q#q#q#q#q#q#q#q"
+"#j#q#j#q#j#q#j#q#j#q#j#q#j#j#k#j#j#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#b.s.s.s#b.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.p.p.p.r.p.p.p.r.p.r.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.u.t.w.t.v.t.v.t.v.t.v.w.v.w.v.v.v.w.x.v.x.v.x.v.x.v.x.x.x.x.x.x.y.x.z.x.A.x.A.x.A.z.A.z.A.z.A.z.A.z.B.A.B.A.B.A.B.B.B.B.B.B.B.B.C.B.D.B.C.B.C.D.C.D.C.D.F.D.F.C.F.C.F.F.F.F.F.F.F.F.G.F.I.F.I.K.I.K.I.K.I.K.J.K.L.K.L.L.L.L.L.L.O.L.O.L.N.L.N.O.N.O.N.O.Q.O",
+"#l#p#C#p#C#p#p#B#p#F#p#t#p#t#p#t#H#t#u#t#u#t#t#e#u#x#t#x#t#x#t#x#e#x#x#x#x#x#x.s#x.s#x#j#x#j.s#j.s#j.s#j#k#j#k#j#k#j#k#j#k#j#j#q#k#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#z#q#z#q#y#q#z#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#D#z#D#z#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#z#D#z#D#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#z#q#y#q#z#q#y#q#z#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j"
+"#q#k#q#j#q#k#q#j#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#k.s#j.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.r.s.p.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.q.q.o.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.t.u.t.t.t.u.t.u.t.v.t.v.t.v.t.v.w.v.v.v.w.v.v.v.v.x.v.x.v.x.v.x.x.x.x.x.x.y.x.y.x.A.x.A.x.A.x.A.z.A.A.A.z.A.A.B.A.B.A.B.A.B.B.B.B.B.B.B.B.7.B.C.B.C.B.C.D.C.D.C.D.C.C.E.C.F.C.F.C.F.F.F.F.F.F.F.F.I.F.I.F.I.K.I.K.I.K.I.K.L.I.L.I.L.L.L.L.L.L.L.L.N.L.N.L.N.O.N.O#E.O.Q.O.Q#E.Q",
+"#B#p#B#p#F#p#F#p#t#p#t#p#t#t#t#u#t#t#t#t#x#t#x#t#x#t#x#t#x#x#x#x#I#x#x#x#b#x#j#x#j#x#j#x#j.s#j#k#j#k#j#k#j#j#j#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#w#q#q#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#y#y#z#y#y#y#z#y#y#D#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#y#y#y#z#y#y#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#q#q#w#q#q#q#w#q#q#q#q#q#q"
+"#q#q#j#q#j#q#j#q#j#q#j#q#j#q#j#j#k#j#j#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#b.s.s.s#b.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.r.p.p.p.r.p.q.p.q.p.q.p.q.p.q.o.q.o.q.q.q.o.q.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.t.t.u.t.v.t.v.t.v.t.v.w.v.w.v.w.v.v.v.w.x.v.x.v.x.v.x.x.x.x.x.x.x.x.A.x.z.x.A.x.A.x.A.z.A.z.A.z.A.A.B.z.B.A.B.A.B.B.B.B.B.B.B.B.D.B.C.B.C.B.C.D.C.D.C.D.C.D.F.D.F.C.F.E.F.F.F.F.F.F.K.F.K.F.I.F.I.K.I.K.I.K.L.K.L.I.L.J.L.L.L.L.L.L.O.L.O#J.N.O.N.O#E.O.Q.O",
+"#C#p#C#p#p#B#p#p#p#F#p#t#p#t#p#t#u#t#u#t#u#t#u#K#t#x#t#x#t#x#t#x#x#x#x#x#x#x#x#x#x#j#x#k#x#j#x#j.s#j#k#j#k#j#k#j#k#j#k#j#j#q#k#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#z#q#y#q#z#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#D#z#D#z#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#z#D#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#z#q#y#q#z#q#y#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j"
+"#q#j#q#k#q#j#q#k#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#k.s#j.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.r.p.p.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.o.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.t.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.w.v.v.v.v.v.v.x.v.x.v.x.v.x.v.x.x.y.x.x.x.y.x.A.x.A.x.A.x.A.z.A.z.A.A.A.z.A.A.B.A.B.A.B.A.B.B.B.B.7.B.B.B.C.B.C.B.C.B.C.D.C.D.C.D#L.C.F.C.F.C.F.E.F.F.F.F#d.F.G.F.I.F.I.F.I.K.I.K.I.I.J.K.L.I.L.I.L.L.L.L.L.L.O.L.N.L.N.O.N.O.N.O.Q.N.Q.N.Q",
+"#p#p#B#p#F#p#t#p#t#p#t#H#t#H#t#t#t#t#t#t#K#t#x#t#x#t#x#x#x#x#I#x#x#x#b#x#j#x#j#x#j#x#j.s#j#k#j#k#j#k#j#j#j#k#j#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#w#q#q#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#y#y#z#y#y#y#z#y#y#D#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#y#z#y#y#y#z#y#y#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#q#q#w#q#q#q#w#q#q#q#q"
+"#q#q#j#q#j#q#j#q#j#q#j#q#j#q#j#j#j#j#k#j#j#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#b.s#b.s.s.s#b.s.s.s.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p.p.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.o.t.q.t.q.t.q.t.q.t.t.t.t.t.t.u.t.t.t.v.t.v.t.v.t.v.w.v.w.v.w.v.w.v.v.x.v.x.v.x.v.x.x.x.x.x.x.x.x.x.x.A.x.A.x.A.x.A.z.A.z.A.z.A.z.B.A.B.A.B.A.B.B.B.B.B.B.B.B.C.B.D.B.C.B.C.D.C.D.C.D#L.D.F.C.F.D.F#L.F.F.F.F.F.F.G.F.I.F.K.F.I.K.I.K.I.K.J.K.L.K.L#M.L.L.L.L#J.L.O.L.N.L.O.O.N.O.N.O.Q.O",
+"#C#p#C#p#p#p#p#F#p#F#p#t#p#t#p#t#H#t#u#t#u#t#t#x#u#x#t#x#t#x#e#x#x#x#x#x#x#x#x#b#x#k#x#j#x#j.s#j.s#j#k#j#k#j#k#j#k#j#k#j#k#q#j#q#k#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#z#q#y#q#z#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#D#z#D#z#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#z#D#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#z#q#y#q#z#q#y#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j"
+"#q#j#q#j#q#k#q#j#q#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#k.s#b.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.p.r.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.r.q.o.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.u.t.t.t.u.t.u.t.v.t.v.t.v.t.v.t.v.v.v.w.v.v.v.v.v.v.x.v.x.v.x.v.x.x.x.x.y.x.y.x.A.x.A.x.A.x.A.x.A.z.A.z.A.A.A.A.B.A.B.A.B.A.B.B.B.B.B.B.7.B.C.B.C.B.C.B.C.D.C.D.C.C.C.D.F.C.F.C.F#L.F.F.F.F.F.F.I.F.I.F.I.F.I.K.I.K.I.K.L.I.L.I.L.I.L.L.L.L.L.L.N.L.O.L.N.O.N.O.N.O.Q.O.Q.N.Q",
+"#B#p#B#p#F#p#F#p#t#p#t#H#t#t#t#u#t#t#K#t#x#t#x#t#x#t#x#K#x#x#x#x#I#x#I#x#j#x#j#x#j.s#j.s#j#k#j#k#j#j#j#k#j#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#w#q#q#q#w#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#y#y#z#y#y#y#z#y#y#D#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#D#y#y#z#y#y#y#z#y#y#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#q#q#w#q#q#q#q#q#q"
+"#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#j#k#j#j#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#b.s.s.s#b.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.p.p.p.r.p.p.p.r.p.r.p.q.p.q.p.q.p.q.p.q.o.q.q.q.o.q.q.q.q.t.q.t.q.t.q.t.t.t.t.t.t.t.t.u.t.v.t.v.t.v.t.v.t.v.w.v.w.v.v.v.w.x.v.x.v.x.v.x.v.x.x.x.x.x.x.y.x.z.x.A.x.A.x.A.z.A.z.A.z.A.A.B.z.B.A.B.A.B.B.B.B.B.B.B.B.D.B.C.B.C.B.C.D.C.D.C.D.C.D.F.D.F.C.F.C.F.F.F.F.F.F.K.F.K.F.I.F.I.K.I.K.I.K.L.K.L.I.L.K.L.L.L.L.L.L.O.L.O.L.N.O.N.O#E.O.Q.O",
+"#C#p#C#p#p#B#p#F#p#t#p#t#p#t#H#t#u#t#u#t#t#t#u#K#t#x#t#x#t#x#K#x#x#x#x#x#x.s#x#k#x#j#x#j#x#j#x#j.s#j#k#j#k#j#k#j#k#j#k#q#j#q#k#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#z#q#y#q#z#q#y#q#z#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#z#D#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#z#q#y#q#z#q#z#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j"
+"#q#j#q#j#q#j#q#k#q#j#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.r.s.p.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.q.q.o.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.t.u.t.u.t.u.t.u.t.v.t.v.t.v.t.v.w.v.v.v.w.v.v.v.v.x.v.x.v.x.v.x.x.x.x.x.x.y.x.y.x.A.x.A.x.A.x.A.z.A.A.A.z.A.A.B.A.B.A.B.A.B.B.B.B.7.B.B.B.C.B.C.B.C.B.C.D.C.D.C.D#L.C.F.C.F.C.F.C.F.F.F.F.F.F.G.F.I.F.I.F.I.K.I.K.I.K.I.K.L.I.L.I.L.L.L.L.L.L.O.L.N.L.N.L.N.O.N.O#E.O.Q.O.Q",
+"#B#p#F#p#F#p#t#p#t#p#t#F#t#H#t#t#t#t#K#t#K#t#x#t#x#t#x#x#x#x#I#x#x#x#j#x#j#x#j#x#j#x#j.s#j#k#j#j#j#k#j#j#j#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#w#q#q#q#w#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#y#y#z#y#y#D#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#D#y#y#z#y#y#y#z#y#y#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#w#q#q#q#w#q#q#q#q"
+"#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#j#j#k#j#j#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#b.s.s.s#b.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.r.p.p.p.r.p.q.p.q.p.q.p.q.p.q.o.q.o.q.q.q.o.q.q.t.q.t.q.t.q.t.q.t.t.t.t.u.t.t.t.v.t.v.t.v.t.v.t.v.w.v.w.v.w.v.v.x.w.x.v.x.v.x.v.x.x.x.x.x.x.x.x.A.x.A.x.A.x.A.z.A.z.A.z.A.z.B.A.B.z.B.A.B.A.B.B.B.B.B.B.B.B.D.B.C.B.C.D.C.D.C.D#L.D.F.C.F.D.F#L.F.F.F.F.F.F.F.F.K.F.K.F.I.G.I.K.I.K.I.K.L.K.L.I.L.L.L.L.L.L.O.L.O.L.O.O.N.O.N.O#E.O",
+"#C#p#p#B#p#p#p#F#p#F#p#t#p#t#H#t#H#t#u#t#u#K#t#x#t#x#t#x#t#x#x#x#x#x#x#x#x#x#x#j#x#k#x#j#x#j.s#j#k#j#k#j#k#j#k#j#k#j#j#q#k#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#y#q#z#q#y#q#z#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#z#D#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#z#q#y#q#z#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j"
+"#q#j#q#j#q#k#q#j#q#k#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#k.s#j.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.r.p.p.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.o.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.u.t.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.w.v.w.v.v.v.v.v.v.x.v.x.v.x.v.x.x.x.x.y.x.x.x.y.x.A.x.A.x.A.x.A.z.A.z.A.A.A.A.B.A.B.A.B.A.B.B.B.B.B.B.7.B.C.B.C.B.C.B.C.D.C.D.C.C.C.D.F.C.F.C.F#L.F.F.F.F.F.F#N.F.I.F.I.F.I.G.I.K.I.K#M.I.L.I.L.I.L.L.L.L.L.L#J.L.O.L.N#J.N.O.N.O.N.O.Q.N.Q",
+"#B#p#F#p#F#p#F#p#t#H#t#H#t#t#t#t#t#t#K#t#x#t#x#t#x#K#x#K#I#x#x#x#I#x#O#x#j#x#j#x#j.s#j#k#j#k#j#k#j#j#j#k#j#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#w#q#q#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#y#y#z#y#y#D#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#D#y#y#z#y#y#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#q#q#w#q#q#q#w#q#q"
+"#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#j#j#j#k#j#j#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#b.s#b.s.s.s#b.s.s.s.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p.r.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.u.t.w.t.v.t.v.t.v.t.v.w.v.w.v.w.v.w.v.v.x.v.x.v.x.v.x.x.x.x.x.x.y.x.z.x.A.x.A.x.A.x.A.z.A.z.A.z.A.z.B.A.B.A.B.A.B.B.B.B.B.B.B.B.C.B.D.B.C.B.C.D.C.D.C.D.F.D.F.C.F.C.F.F.F.F.F.F#P.F.K.F.I.F.I.K.I.K.I.K#M.K.L.K.L.K.L.L.L.L.L.L#J.L.O.L.N#J.N.O.N.O#E.O",
+"#C#p#C#p#p#F#p#F#p#t#p#t#p#t#H#t#u#t#u#t#t#K#u#K#t#x#t#x#t#x#K#x#x#x#x#x#x#b#x#k#x#j#x#j#x#j#x#j#k#j#k#j#k#j#k#j#k#j#k#q#j#q#k#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#z#q#z#q#y#q#z#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#z#D#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#z#q#y#q#z#q#y#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j"
+"#q#j#q#j#q#j#q#k#q#j#q#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#k.s#b.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.r.s.p.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.r.q.o.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.t.u.t.t.t.u.t.u.t.v.t.v.t.v.t.v.t.v.v.v.w.v.v.v.v.x.v.x.v.x.v.x.v.x.x.x.x.y.x.y.x.A.x.A.x.A.x.A.z.A.z.A.z.A.A.B.A.B.A.B.A.B.A.B.B.B.B.B.B.7.B.C.B.C.B.C.B.C.D.C.D#L.C.F.C.F.C.F.C.F.F.F.F.F.F.F.F.I.F.I.F.I.K.I.K.I.K.I.K.L.I.L.I.L.L.L.L.L.L.L.L.N.L.N.L.N.O.N.O#E.O.Q.O.Q",
+"#B#p#F#p#F#p#t#p#t#H#t#F#t#u#t#t#K#t#K#t#x#t#x#t#x#K#x#x#x#x#I#x#I#x#j#x#j#x#j#x#j#x#j#k#j#k#j#j#j#k#j#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#w#q#q#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#y#y#z#y#y#y#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#y#y#y#z#y#y#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#q#q#w#q#q#q#q"
+"#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#j#k#j#j#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#b.s.s.s#b.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.p.p.p.r.p.p.p.r.p.q.p.q.p.q.p.q.p.q.o.q.o.q.q.q.o.q.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.t.t.u.t.v.t.v.t.v.t.v.w.v.w.v.w.v.v.v.w.x.v.x.v.x.v.x.x.x.x.x.x.x.x.A.x.z.x.A.x.A.x.A.z.A.z.A.z.A.A.B.z.B.A.B.A.B.B.B.B.B.B.B.B.D.B.C.B.C.B.C.D.C.D#L.D#L.D.F.D.F#L.F.F.F.F.F.F.F.F.K.F.K.F.I.F.I.K.I.K.I.K.L.K.L.I.L.L.L.L.L.L#J.L.O.L.O#J.N.O.N.O#E.O",
+"#C#p#p#B#p#H#p#F#p#F#p#t#H#t#H#t#H#t#t#t#u#K#t#x#t#x#t#x#K#x#x#x#x#x#x#x#x#Q#x#j#x#j#x#j#x#j.s#j#k#j#k#j#k#j#k#j#k#q#j#q#k#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#z#q#y#q#z#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#z#q#y#q#z#q#y#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j"
+"#q#j#q#j#q#j#q#j#q#k#q#j#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#k.s#j.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.r.p.p.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.q.q.o.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.w.v.v.v.v.v.v.x.v.x.v.x.v.x.v.x.x.y.x.x.x.y.x.A.x.A.x.A.x.A.z.A.z.A.A.A.z.A.A.B.A.B.A.B.A.B.B.B.B.7.B.B.B.C.B.C.B.C.B.C.D.C.D.C.D#L.C.F.C.F#L.F.F.F.F.F.F#N.F.K.F.I.F.I.F.I.K.I.K#M.I.L.K.L.I.L#M.L.L.L.L#J.L.O.L.N#J.N.O.N.O.N.O.Q.N.Q",
+"#B#p#F#p#F#p#F#p#t#F#t#H#t#t#t#t#K#t#K#t#x#t#x#t#x#K#x#x#I#x#x#x#I#x#O#x#j#x#j#x#j.s#j#k#j#j#j#k#j#j#j#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#w#q#q#q#w#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#y#y#z#y#y#y#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#y#y#y#z#y#y#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#w#q#q#q#w#q#q"
+"#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#j#j#k#j#j#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#b.s.s.s#b.s.s.s.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p.p.p.r.p.q.p.q.p.q.p.q.p.q.o.q.o.q.q.q.o.t.q.t.q.t.q.t.q.t.t.t.t.t.t.u.t.t.t.v.t.v.t.v.t.v.w.v.w.v.w.v.w.v.v.x.v.x.v.x.v.x.x.x.x.x.x.x.x.x.x.A.x.A.x.A.x.A.z.A.z.A.z.A.z.B.A.B.A.B.A.B.B.B.B.B.B.B.B.C.B.D.B.C.B.C.D.C.D.C.D#L.D.F.C.F.D.F#L.F.F.F.F#P.F.K.F.I.F.K#P.I.K.I.K#M.K.L.K.L.K.L#M.L.L.L.L#J.L.O.L.N.L.O.O.N.O#E.O",
+"#C#B#C#p#p#F#p#F#p#t#p#t#H#t#H#t#u#t#u#t#t#K#t#K#t#x#t#x#K#x#K#x#x#x#x#x#x#j#x#k#x#j#x#j.s#j#k#j#k#j#k#j#k#j#k#j#j#q#k#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#y#q#z#q#y#q#z#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#D#z#D#z#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#z#q#y#q#z#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q"
+"#q#j#q#j#q#j#q#k#q#j#q#k#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#k.s#j.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.r.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.r.q.o.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.u.t.t.t.u.t.u.t.v.t.v.t.v.t.v.t.v.v.v.w.v.v.v.v.v.v.x.v.x.v.x.v.x.x.x.x.y.x.y.x.A.x.A.x.A.x.A.x.A.z.A.z.A.A.A.A.B.A.B.A.B.A.B.B.B.B.B.B.7.B.C.B.C.B.C.B.C.D.C.D#L.C#L.D.F.C.F.C.F#L.F.F.F.F.F.F.I.F.I.F.I#P.I.K.I.K.I.K.L.I.L.I.L#M.L.L.L.L.L.L.N.L.O.L.N.O.N.O#E.O.Q.O.Q",
+"#F#p#F#p#F#p#t#p#t#H#t#t#t#t#t#t#K#t#x#t#x#t#x#K#x#K#I#x#x#x#I#x#O#x#j#x#j#x#j#x#j#Q#j#k#j#k#j#j#j#k#j#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#w#q#q#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#y#y#z#y#y#y#z#y#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#y#z#y#y#y#z#y#y#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#z#q#w#q#q#q#w"
+"#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#j#j#j#k#j#j#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#b.s#b.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p.r.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.q.t.q.t.q.t.q.t.t.t.t.t.t.t.t.u.t.v.t.v.t.v.t.v.t.v.w.v.w.v.v.v.w.x.v.x.v.x.v.x.v.x.x.x.x.x.x.y.x.z.x.A.x.A.x.A.z.A.z.A.z.A.A.B.z.B.A.B.A.B.B.B.B.B.B.B.B.D.B.C.B.C.B.C.D.C.D#L.D#L.D.F.D.F#L.F#L.F.F.F.F.F.F.K.F.K.F.I.F.I.K.I.K.I.K.L.K.L.I.L#R.L.L.L.L.L.L.O.L.O#J.N.O.N.O#E.O",
+"#C#p#p#B#p#F#p#F#p#F#p#t#H#t#H#t#u#t#t#K#u#K#t#x#t#x#t#x#K#x#x#x#x#x#x#I#x#Q#x#j#x#j#x#j#x#j#k#j#k#j#k#j#k#j#k#q#k#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#y#q#z#q#y#q#z#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#D#z#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#z#q#y#q#z#q#y#q#z#q#q#q#q#q#q#q#q#q#q#q#q#q"
+"#q#j#q#j#q#j#q#j#q#k#q#j#q#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#k.s#b.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.r.s.p.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.q.q.o.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.t.u.t.t.t.u.t.u.t.v.t.v.t.v.t.v.w.v.v.v.w.v.v.v.v.x.v.x.v.x.v.x.x.x.x.x.x.y.x.y.x.A.x.A.x.A.x.A.z.A.A.A.z.A.A.B.A.B.A.B.A.B.B.B.B.7.B.B.B.C.B.C.B.C.B.C.D.C.D.C.D#L.C.F.C.F#L.F#L.F.F.F.F#P.F.K.F.I.F.I.F.I.K.I.K#M.K#M.K.L.I.L.I.L.L.L.L#J.L.O.L.N#J.N.O.N.O.N.O#E.N.Q",
+"#F#p#F#p#F#p#t#H#t#F#t#H#t#t#t#t#K#t#K#t#x#t#x#K#x#x#x#x#I#x#I#x#O#x#j#x#j#x#j#x#j#k#j#k#j#j#j#k#j#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#w#q#q#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#y#y#z#y#y#D#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#D#y#y#z#y#y#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#q#q#w#q#q"
+"#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#j#k#j#j#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#b.s.s.s#b.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.p.p.p.r.p.p.p.r.p.q.p.q.p.q.p.q.p.q.o.q.o.q.q.q.o.q.q.t.q.t.q.t.q.t.q.t.t.t.t.u.t.t.t.v.t.v.t.v.t.v.t.v.w.v.w.v.w.v.v.x.w.x.v.x.v.x.v.x.x.x.x.x.x.x.x.A.x.A.x.A.x.A.z.A.z.A.z.A.z.B.A.B.A.B.A.B.B.B.B.B.B.B.B.D.B.D.B.C.B.C.D.C.D.C.D#L.D.F.C.F.D.F#L.F.F.F.F#P.F#P.F.I.F.K#P.I.K.I.K#M.K#M.K.L.K.L#M.L.L.L.L#J.L.O.L.O.L.O.O.N.O#E.O",
+"#C#B#C#H#p#F#p#F#p#t#p#t#H#t#H#t#t#t#u#K#t#K#t#x#t#x#t#x#K#x#K#x#x#x#x#x#x#j#x#j#x#j#x#j.s#j#k#j#k#j#k#j#k#j#k#q#j#q#k#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#z#q#y#q#z#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#D#z#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#z#D#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#z#q#y#q#z#q#y#q#q#q#q#q#q#q#q#q#q#q#q#q"
+"#q#j#q#j#q#j#q#j#q#j#q#k#q#j#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#k.s#j.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.r.p.p.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.o.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.t.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.w.v.w.v.v.v.v.v.v.x.v.x.v.x.v.x.x.x.x.y.x.x.x.y.x.A.x.A.x.A.x.A.z.A.z.A.A.A.A.B.A.B.A.B.A.B.B.B.B.B.B.7.B.C.B.C.B.C.B.C.D.C.D#L.C#L.D.F.C.F.C.F#L.F.F.F.F.F.F#N.F.I.F.I#P.I.K.I.K.I.K#M.I.L.I.L#M.L.L.L.L.L.L.N.L.O.L.N#J.N.O#E.O#E.O.Q",
+"#F#p#F#p#F#p#t#H#t#H#t#t#t#t#K#t#K#t#x#t#x#t#x#K#x#K#I#x#x#x#I#x#O#x#j#x#j#x#j#x#j#Q#j#k#j#k#j#j#j#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#w#q#q#q#w#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#y#y#z#y#y#D#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#y#y#y#z#y#y#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#w#q#q#q#w"
+"#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#j#j#k#j#j#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#b.s#b.s.s.s#b.s.s.s.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p.r.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.u.t.w.t.v.t.v.t.v.t.v.w.v.w.v.w.v.w.v.v.x.v.x.v.x.v.x.x.x.x.x.x.y.x.z.x.A.x.A.x.A.z.A.z.A.z.A.z.A.z.B.A.B.A.B.A.B.B.B.B.B.B.B.B.C.B.D.B.C.B.C.D#L.D#L.D.F.D.F#L.F#L.F.F.F.F.F.F#P.F.K.F.I.F.I.K.I.K.I.K#M.K.L.I.L#R.L.L.L.L.L.L.O.L.O#J.N#J.N.O#E.O",
+"#C#p#p#F#p#F#p#F#p#t#H#t#H#t#H#t#u#t#t#K#t#K#t#x#t#x#K#x#K#x#x#x#x#x#x#O#x#Q#x#j#x#j#x#j#Q#j#k#j#k#j#k#j#k#j#j#q#k#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#z#q#y#q#z#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#z#D#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#z#q#y#q#z#q#q#q#q#q#q#q#q#q#q#q#q#q"
+"#q#q#q#j#q#j#q#j#q#k#q#j#q#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#k.s#b.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.r.q.o.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.t.u.t.t.t.u.t.u.t.v.t.v.t.v.t.v.t.v.v.v.w.v.v.v.v.x.v.x.v.x.v.x.v.x.x.x.x.y.x.y.x.A.x.A.x.A.x.A.z.A.A.A.z.A.A.B.A.B.A.B.A.B.B.B.B.B.B.B.B.C.B.C.B.C.B.C.D.C.D.C.D#L.C.F.C.F#L.F#L.F.F.F.F#P.F#P.F.I.F.I.F.I.K.I.K#M.K#M.K.L.I.L.I.L.L.L.L#J.L#J.L.N#J.N#J.N.O.N.O#E.O.Q",
+"#F#p#F#p#t#p#t#H#t#F#t#H#t#t#K#t#K#t#K#t#x#t#x#K#I#x#x#x#I#x#O#x#j#x#j#x#j#x#j#Q#j#k#j#k#j#j#j#k#j#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#w#q#q#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#y#y#z#y#y#y#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#y#y#y#z#y#y#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#q#q#w#q#q"
+"#q#w#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#j#j#j#j#k#j#j#j#k#j#k#j.s#j.s#j.s#j.s#j.s#b.s.s.s#b.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.p.p.p.r.p.p.p.r.p.q.p.q.p.q.p.q.p.q.o.q.o.q.q.q.o.q.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.t.t.u.t.v.t.v.t.v.t.v.w.v.w.v.w.v.v.v.w.x.v.x.v.x.v.x.x.x.x.x.x.x.x.A.x.A.x.A.x.A.x.A.z.A.z.A.z.A.A.B.z.B.A.B.A.B.B.B.B.B.B.B.B.D.B.C.B.C.B.C.D.C.D#L.D.F.C.F.D.F#L.F.F.F.F#P.F#P.F.K.F.K#P.I.K.I.K#M.K#M.K.L.K.L#M.L.L.L.L#J.L#J.L.O.L.O#J.N.O.N.O",
+"#C#B#C#F#p#F#p#F#p#t#H#t#H#t#H#t#t#t#u#K#t#x#t#x#t#x#K#x#K#x#K#x#x#I#x#Q#x#j#x#j#x#j#x#j#k#j#k#j#k#j#k#j#k#j#k#q#j#q#k#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#y#q#z#q#y#q#z#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#z#q#y#q#z#q#y#q#z#q#q#q#q#q#q#q#q#q#q#q"
+"#q#q#q#j#q#j#q#j#q#j#q#k#q#j#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.r.p.p.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.q.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.t.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.w.v.v.v.v.v.v.x.v.x.v.x.v.x.v.x.x.y.x.x.x.y.x.A.x.A.x.A.x.A.z.A.z.A.A.A.A.B.A.B.A.B.A.B.A.B.B.B.B.7.B.B.B.C.B.C.B.C.B.C.D#L.D#L.D.F.C.F.C.F#L.F.F.F.F.F.F#N.F.K.F.I#P.I.K.I.K.I.K#M.I.L.K.L#M.L.L.L.L.L.L#J.L.O.L.N#J.N.O#E.O#E.O.Q",
+"#F#p#F#p#F#p#t#F#t#H#t#t#t#t#K#t#K#t#x#t#x#t#x#K#x#K#I#x#I#x#O#x#O#x#j#x#j#x#j#Q#j#Q#j#j#j#k#j#j#j#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#w#q#q#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#y#y#z#y#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#S#D#D#D#S#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#D#y#y#z#y#y#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#q#q#w"
+"#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#j#k#j#j#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#b.s.s.s#b.s.s.s.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p.p.p.r.p.q.p.q.p.q.p.q.p.q.o.q.o.q.q.q.o.t.q.t.q.t.q.t.q.t.t.t.t.t.t.u.t.t.t.v.t.v.t.v.t.v.w.v.w.v.w.v.w.v.v.x.v.x.v.x.v.x.x.x.x.x.x.x.x.z.x.A.x.A.x.A.x.A.z.A.z.A.z.A.z.B.A.B.A.B.A.B.B.B.B.B.B.B.B.C.B.D.B.C.B.C.D#L.D#L.D#L.D.F#L.F#L.F.F.F.F.F.F#P.F.K.F.I.F.K#P.I.K.I.K#M.K.L.K.L#R.L.L.L.L.L.L#J.L.O#J.N#J.O.O#E.O",
+"#C#p#p#F#p#F#p#F#p#t#H#t#H#t#u#t#u#K#t#K#t#K#t#x#t#x#K#x#K#x#x#x#x#x#x#O#x#O#x#j#x#j#x#j#Q#j#k#j#k#j#k#j#k#q#j#q#k#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#z#q#y#q#z#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#D#z#D#z#D#y#D#z#D#y#D#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#z#q#y#q#z#q#y#q#q#q#q#q#q#q#q#q#q#q"
+"#q#q#q#j#q#j#q#j#q#k#q#j#q#k#q#j#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#k.s#j.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.r.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.r.q.o.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.u.t.t.t.u.t.u.t.v.t.v.t.v.t.v.t.v.v.v.w.v.v.v.v.x.v.x.v.x.v.x.v.x.x.x.x.y.x.y.x.A.x.A.x.A.x.A.z.A.z.A.z.A.A.A.A.B.A.B.A.B.A.B.B.B.B.B.B.7.B.C.B.C.B.C.B.C.D.C.D#L.C#L.C.F#L.F#L.F.F.F.F#P.F#P.F.I.F.I.F.I#P.I.K#M.K#M.K.L.I.L.I.L#M.L.L#J.L#J.L.N#J.N#J.N.O.N.O#E.O.Q",
+"#F#p#F#p#t#p#t#H#t#F#t#F#t#t#K#t#K#t#K#t#x#K#x#K#I#x#x#x#I#x#O#x#j#x#j#x#j#x#j#Q#j#k#j#k#j#j#j#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#w#q#q#q#w#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#y#y#z#y#y#D#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#y#y#y#z#y#y#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#w#q#q"
+"#q#w#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#j#j#j#k#j#j#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#b.s#b.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p.r.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.q.t.q.t.q.t.q.t.t.t.t.t.t.t.t.u.t.v.t.v.t.v.t.v.w.v.w.v.w.v.v.v.w.x.v.x.v.x.v.x.x.x.x.x.x.x.x.y.x.z.x.A.x.A.x.A.z.A.z.A.z.A.A.B.z.B.A.B.A.B.B.B.B.B.B.B.B.D.B.C.B.C.B.C.D.C.D#L.D#L.D.F.D.F#L.F#L.F.F#P.F#P.F.K.F.K#P.I#P.I.K#M.K#M.K.L.K.L#M.L#M.L.L#J.L#J.L.O.L.O#J.N.O.N.O",
+"#C#B#C#F#p#F#p#F#p#t#H#t#H#t#H#t#t#K#u#K#t#x#t#x#t#x#K#x#K#x#x#x#x#I#x#Q#x#j#x#j#x#j#x#j#k#j#k#j#k#j#k#j#j#q#k#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#y#q#z#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#D#z#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#z#D#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#z#q#y#q#z#q#q#q#q#q#q#q#q#q#q#q"
+"#q#q#q#j#q#j#q#j#q#j#q#k#q#j#q#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#k.s#b.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.r.s.p.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.q.q.o.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.w.v.v.v.w.v.v.v.v.x.v.x.v.x.v.x.x.y.x.x.x.y.x.A.x.A.x.A.x.A.x.A.z.A.A.A.z.A.A.B.A.B.A.B.A.B.B.B.B.7.B.B.B.C.B.C.B.C.B.C.D#L.D#L.D#L.C.F.C.F#L.F.F.F.F.F.F#N.F.K.F.I#P.I#P.I.K.I.K#M.I.L.K.L#M.L#M.L.L.L.L#J.L.O.L.N#J.N.O#E.O#E.O.Q",
+"#F#p#F#p#F#H#t#F#t#H#t#t#t#t#K#t#K#t#x#t#x#K#x#K#x#K#I#x#I#x#O#x#O#x#j#x#j#x#j#Q#j#Q#j#j#j#k#j#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#w#q#q#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#y#y#z#y#y#y#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#y#y#y#z#y#y#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#q#q#w"
+"#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#j#k#j#j#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#b.s.s.s#b.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.r.p.p.p.r.p.q.p.q.p.q.p.q.p.q.o.q.o.q.q.q.o.q.q.t.q.t.q.t.q.t.t.t.t.t.t.u.t.t.t.v.t.v.t.v.t.v.t.v.w.v.w.v.w.v.v.x.v.x.v.x.v.x.x.x.x.x.x.x.x.x.x.A.x.A.x.A.x.A.z.A.z.A.z.A.z.B.A.B.A.B.A.B.B.B.B.B.B.B.B.C.B.D.B.C.B.C.D#L.D#L.D#L.D.F#L.F#T.F#L.F.F.F.F#P.F.K.F.I.F.K#P.I.K.I.K#M.K.L.K.L#R.L#M.L.L.L.L#J.L.O#J.N#J.O.O#E.O",
+"#C#H#p#F#p#F#p#F#p#t#H#t#H#t#t#t#u#K#t#K#t#K#t#x#t#x#K#x#K#x#x#x#x#Q#x#O#x#O#x#j#x#j#x#j#Q#j#k#j#k#j#k#j#k#q#j#q#k#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#z#q#z#q#y#q#z#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#z#q#y#q#z#q#y#q#q#q#q#q#q#q#q#q#q#q"
+"#q#q#q#j#q#j#q#j#q#j#q#j#q#k#q#j#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#k.s#j.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.r.p.p.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.o.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.u.t.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.w.v.w.v.v.v.v.v.v.x.v.x.v.x.v.x.x.x.x.y.x.y.x.A.x.A.x.A.x.A.x.A.z.A.z.A.A.A.A.B.A.B.A.B.A.B.B.B.B.B.B.7.B.C.B.C.B.C.B.C.D.C.D#L.C#L.D.F#L.F#L.F#L.F.F#P.F#P.F.I.F.I.F.I#P.I.K#M.K#M.K.L.I.L.I.L#M.L.L#J.L#J.L.N#J.O#J.N.O.N.O#E.O.Q",
+"#F#p#F#p#t#H#t#H#t#F#t#F#t#t#K#t#K#t#K#t#x#K#x#K#I#x#x#x#I#x#O#x#j#x#j#x#j#x#j#Q#j#j#j#k#j#j#j#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#w#q#q#q#w#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#y#y#z#y#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#D#y#y#z#y#y#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#w#q#q"
+"#q#w#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#j#j#j#k#j#j#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#b.s#b.s.s.s#b.s.s.s.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p.r.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.u.t.v.t.v.t.v.t.v.t.v.w.v.w.v.v.v.w.x.v.x.v.x.v.x.v.x.x.x.x.x.x.y.x.z.x.A.x.A.x.A.z.A.z.A.z.A.A.B.z.B.A.B.A.B.B.B.B.B.B.B.B.D.B.C.B.C.B.C.D.C.D#L.D#L.D.F.D.F#L.F#L.F.F#P.F#P.F.K.F.K#P.I#P.I.K#M.K#M.K.L.K.L#M.L#R.L.L#J.L#J.L.O.L.O#J.N.O.N.O",
+"#C#F#C#F#p#F#p#F#p#t#H#t#H#t#H#t#t#K#t#K#t#x#t#x#t#x#K#x#K#x#x#x#x#O#x#Q#x#j#x#j#x#j#Q#j#k#j#k#j#k#j#k#j#j#q#k#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#z#q#y#q#z#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#D#z#D#z#D#y#D#z#D#y#D#z#D#y#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#z#q#y#q#z#q#q#q#q#q#q#q#q#q#q#q"
+"#q#q#q#q#q#j#q#j#q#j#q#k#q#j#q#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#k.s#b.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.r.s.p.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.q.q.o.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.t.u.t.t.t.u.t.u.t.v.t.v.t.v.t.v.w.v.v.v.w.v.v.v.v.x.v.x.v.x.v.x.x.x.x.x.x.y.x.y.x.A.x.A.x.A.x.A.z.A.A.A.z.A.A.B.A.B.A.B.A.B.B.B.B.7.B.B.B.C.B.C.B.C.B.C.D#L.D#L.D#L.C.F.C.F#L.F#L.F.F.F.F#N.F.K.F.I#P.I#P.I.K.I.K#M.K#M.K.L#M.L#M.L.L.L.L#J.L.O.L.N#J.N.O#E.O#E.O#E",
+"#F#p#F#p#F#H#t#F#t#H#t#t#K#t#K#t#K#t#x#t#x#K#I#K#x#K#I#x#I#x#O#x#O#x#j#x#j#Q#j#Q#j#Q#j#j#j#k#j#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#w#q#z#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#y#y#z#y#y#D#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#y#y#y#z#y#y#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#q#q#w"
+"#q#q#q#w#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#j#j#j#j#k#j#j#j#k#j#k#j.s#j.s#j.s#j.s#j.s#b.s.s.s#b.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.p.p.p.r.p.p.p.r.p.q.p.q.p.q.p.q.p.q.o.q.o.q.q.q.o.q.q.t.q.t.q.t.q.t.q.t.t.t.t.u.t.t.t.v.t.v.t.v.t.v.t.v.w.v.w.v.w.v.v.x.w.x.v.x.v.x.v.x.x.x.x.x.x.x.x.A.x.A.x.A.x.A.z.A.z.A.z.A.z.B.A.B.A.B.A.B.B.B.B.B.B.B.B.C.B.D.B.C.B.C.D#L.D#L.D#L.D.F#L.F#T.F#L.F.F.F.F#P.F#P.F.I#P.K#P.I.K.I.K#M.K#M.K.L#R.L#M.L.L.L.L#J.L.O#J.O#J.O.O#E.O",
+"#C#H#p#F#p#F#p#F#H#t#H#t#H#t#t#t#u#K#t#K#t#K#t#x#K#x#K#x#K#x#x#I#x#Q#x#O#x#O#x#j#x#j#Q#j#Q#j#k#j#k#j#k#j#k#q#j#q#k#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#y#q#z#q#y#q#z#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#D#z#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#z#D#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#z#q#y#q#z#q#q#q#q#q#q#q#q#q"
+"#q#q#q#q#q#j#q#j#q#j#q#j#q#k#q#j#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#k.s#j.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.r.p.p.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.o.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.u.t.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.w.v.w.v.v.v.v.v.v.x.v.x.v.x.v.x.x.x.x.y.x.x.x.y.x.A.x.A.x.A.x.A.z.A.z.A.A.A.A.B.A.B.A.B.A.B.B.B.B.B.B.7.B.C.B.C.B.C.B#L.D#L.D#L.C#L.D.F#L.F#L.F#L.F.F#P.F#P.F.I.F.I#P.I#P.I.K#M.K#M.K#M.I.L#M.L#M.L.L#J.L#J.L.N#J.O#J.N#J.N.O#E.O#E",
+"#F#p#F#p#t#H#t#H#t#F#t#F#K#t#K#t#K#t#K#t#x#K#x#K#I#x#x#x#O#x#O#x#j#x#j#x#j#Q#j#Q#j#j#j#k#j#j#j#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#w#q#q#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#y#y#z#y#y#y#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#y#z#y#y#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#q"
+"#q#w#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#j#j#k#j#j#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#b.s#b.s.s.s#b.s.s.s.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p.r.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.u.t.w.t.v.t.v.t.v.t.v.w.v.w.v.w.v.w.x.v.x.v.x.v.x.v.x.x.x.x.x.x.y.x.z.x.A.x.A.x.A.z.A.z.A.z.A.z.B.z.B.A.B.A.B.A.B.B.B.B.B.B.D.B.C.B.C.B.C.D.C.D#L.D#L.D.F.D.F#L.F#L.F.F#P.F#P.F#P.F.K#P.I#P.I.K#M.K#M.K#M.K.L#M.L#R.L.L#J.L#J.L.O.L.O#J.N.O.N.O",
+"#C#F#C#F#p#F#p#F#H#t#H#t#H#t#H#t#t#K#t#K#t#x#t#x#K#x#K#x#K#x#K#x#x#O#x#Q#x#j#x#j#x#j#Q#j#k#j#k#j#k#j#k#q#j#q#k#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#z#q#y#q#z#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#z#q#y#q#z#q#y#q#q#q#q#q#q#q#q#q"
+"#q#q#q#q#q#j#q#j#q#j#q#k#q#j#q#k#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#k.s#b.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.q.q.o.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.t.u.t.t.t.u.t.u.t.v.t.v.t.v.t.v.w.v.v.v.w.v.v.v.v.x.v.x.v.x.v.x.x.x.x.x.x.y.x.y.x.A.x.A.x.A.x.A.z.A.A.A.z.A.A.B.A.B.A.B.A.B.B.B.B.7.B.B.B.C.B.C.B.C.B.C.D#L.D#L.D#L.C.F#L.F#L.F#L.F.F#P.F#P.F#P.F.I#P.I#P.I.K.I.K#M.K#M.K.L#M.L#M.L.L.L.L#J.L.O.L.N#J.N#J#E.O#E.O#E",
+"#F#p#F#p#F#H#t#F#t#F#t#t#K#t#K#t#K#t#x#t#x#K#I#K#x#K#I#x#O#x#O#x#O#x#j#x#j#Q#j#Q#j#Q#j#j#j#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#w#q#q#q#w#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#y#y#z#y#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#D#y#y#z#y#y#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#w"
+"#q#q#q#w#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#j#j#j#k#j#j#j#k#j#k#j.s#j.s#j.s#j.s#j.s#b.s.s.s#b.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.p.p.p.r.p.p.p.r.p.q.p.q.p.q.p.q.p.q.o.q.o.q.q.q.o.q.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.t.t.v.t.v.t.v.t.v.t.v.w.v.w.v.w.v.v.x.w.x.v.x.v.x.v.x.x.x.x.x.x.x.x.A.x.A.x.A.x.A.z.A.z.A.z.A.z.A.A.B.z.B.A.B.A.B.B.B.B.B.B.B.B.D.B.C.B.C.D#L.D#L.D#L.D.F#L.F#T.F#L.F.F.F.F#P.F#P.F.K#P.K#P.I.K.I.K#M.K#M.K.L#R.L#M.L.L.L.L#J.L.O#J.O#J.O#J#E.O",
+"#C#F#p#F#p#F#p#F#H#t#H#t#H#t#t#t#u#K#t#K#t#K#t#x#K#x#K#x#K#x#x#I#x#Q#x#O#x#O#x#j#x#j#Q#j#Q#j#k#j#k#j#k#q#k#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#y#q#z#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#D#z#D#z#D#y#D#z#D#y#D#z#D#y#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#y#D#z#D#y#D#z#D#y#D#z#D#z#D#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#z#q#y#q#z#q#q#q#q#q#q#q#q#q"
+"#q#q#q#q#q#j#q#j#q#j#q#j#q#k#q#j#q#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.r.p.p.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.t.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.w.v.v.v.v.v.v.x.v.x.v.x.v.x.x.x.x.y.x.x.x.y.x.A.x.A.x.A.x.A.z.A.z.A.A.A.A.B.A.B.A.B.A.B.B.B.B.B.B.7.B.C.B.C.B.C.B#L.D#L.D#L.C#L.D.F#L.F#L.F#L.F.F#P.F#P.F#N#P.I#P.I#P.I.K#M.K#M.K#M.I.L#M.L#M.L.L#J.L#J.L#J#J.O#J.N#J.N.O#E.O#E",
+"#F#p#F#p#t#F#t#H#t#F#t#F#K#t#K#t#K#t#K#K#x#K#x#K#I#x#I#x#O#x#O#x#O#x#O#x#j#Q#j#Q#j#j#j#k#j#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#w#q#q#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#y#y#z#y#y#y#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#y#y#y#z#y#y#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#q"
+"#q#w#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#j#k#j#j#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#b.s.s.s#b.s.s.s.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p.p.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.u.t.t.t.v.t.v.t.v.t.v.w.v.w.v.w.v.w.v.v.x.v.x.v.x.v.x.x.x.x.x.x.y.x.z.x.A.x.A.x.A.z.A.z.A.z.A.z.A.z.B.A.B.A.B.A.B.B.B.B.B.B.B.B.C.B.D.B#L.B#L.D#L.D#L.D.F.D.F#L.F#L.F.F#P.F#P.F#P.F.K#P.I#P.I.K#M.K#M.K#M.K.L#R.L#R.L.L#J.L#J.L.O.L.O#J.N#J.N.O",
+"#C#F#C#F#p#F#p#F#H#t#H#t#H#t#H#K#t#K#t#K#t#K#t#x#K#x#K#x#K#x#K#x#x#O#x#O#x#j#x#j#x#j#Q#j#k#j#k#j#k#j#k#q#j#q#k#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#z#q#y#q#z#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#z#D#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#z#q#y#q#z#q#y#q#q#q#q#q#q#q#q#q"
+"#q#q#q#q#q#j#q#j#q#j#q#k#q#j#q#k#q#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#k.s#b.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.p.r.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.r.q.o.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.t.u.t.t.t.u.t.u.t.v.t.v.t.v.t.v.t.v.v.v.w.v.v.v.v.x.v.x.v.x.v.x.v.x.x.x.x.y.x.y.x.A.x.A.x.A.x.A.z.A.A.A.z.A.A.B.A.B.A.B.A.B.B.B.B.B.B.B.B.C.B.C.B.C.B.C.D#L.D#L.D#L#L.F#L.F#L.F#L#P.F#P.F#P.F#P.F.I#P.I#P.I.K.I.K#M.K#M.K.L#M.L#M.L.L.L.L#J.L#J.L.N#J.N#J#E.O#E.O#E",
+"#F#p#F#p#F#H#t#F#t#F#t#t#K#t#K#t#K#t#x#K#x#K#I#K#x#K#I#x#O#x#O#x#O#x#j#x#j#Q#j#Q#j#Q#j#j#j#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#w#q#q#q#w#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#y#y#z#y#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#D#y#y#z#y#y#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#w"
+"#q#q#q#w#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#j#j#j#k#j#j#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#b.s#b.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.p.p.p.r.p.p.p.r.p.q.p.q.p.q.p.q.p.q.o.q.o.q.q.q.o.q.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.t.t.u.t.v.t.v.t.v.t.v.w.v.w.v.w.v.v.v.w.x.v.x.v.x.v.x.x.x.x.x.x.x.x.A.x.A.x.A.x.A.x.A.z.A.z.A.z.A.A.B.z.B.A.B.A.B.B.B.B.B.B.B.B.D.B.C.B.C.B#L.D#L.D#L.D.F#L.F#T.F#L.F.F#P.F#P.F#P#P.K#P.K#P.I.K.I.K#M.K#M#R.L#R.L#M.L.L#J.L#J.L#J#J.O#J.O#J#E.O",
+"#C#F#p#F#p#F#p#F#H#t#H#t#H#t#F#K#u#K#t#K#t#K#t#x#K#x#K#x#K#x#x#I#x#Q#x#O#x#O#x#j#x#j#Q#j#Q#j#k#j#k#j#j#q#k#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#z#q#y#q#z#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#z#q#y#q#z#q#q#q#q#q#q#q#q#q"
+"#q#q#q#q#q#j#q#j#q#j#q#j#q#k#q#j#q#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#k.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.r.p.p.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.q.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.t.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.w.v.v.v.v.v.v.x.v.x.v.x.v.x.v.x.x.y.x.x.x.y.x.A.x.A.x.A.x.A.z.A.z.A.A.A.A.B.A.B.A.B.A.B.A.B.B.B.B.7.B.B.B.C.B.C.B#L.B#L.D#L.C#L.D.F#L.F#L.F#L.F.F#P.F#P.F#N#P.K#P.I#P.I.K#M.K#M.K#M#M.L#R.L#M.L.L#J.L#J.L#J#J.O#J.N#J.N.O#E.O#E",
+"#F#p#F#p#t#F#t#H#t#F#t#F#K#t#K#t#K#t#K#K#x#K#x#K#I#x#I#x#O#x#O#x#O#x#O#x#j#Q#j#Q#j#j#j#k#j#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#w#q#q#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#y#y#z#y#y#y#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#y#y#y#z#y#y#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#q"
+"#q#w#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#j#k#j#j#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#b.s.s.s#b.s.s.s.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p.p.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.o.t.q.t.q.t.q.t.q.t.t.t.t.t.t.u.t.t.t.v.t.v.t.v.t.v.w.v.w.v.w.v.w.v.v.x.v.x.v.x.v.x.x.x.x.x.x.x.x.z.x.A.x.A.x.A.x.A.z.A.z.A.z.A.z.B.A.B.A.B.A.B.B.B.B.B.B.B.B.C.B.D.B#L.B#L.D#L.D#L#T#L#T.F#L.F#L.F.F#P.F#P.F#P.F.K#P.I#P.I#P#M.K#M.K#M.K.L#R.L#R.L.L#J.L#J.L#J#J.O#J.N#J#U.O",
+"#C#F#C#F#p#F#p#F#H#t#H#t#H#t#H#K#t#K#t#K#t#K#t#K#K#x#K#x#K#x#K#x#x#O#x#O#x#j#x#j#x#j#Q#j#Q#j#Q#j#k#j#k#q#j#q#k#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#z#q#z#q#y#q#z#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#D#z#D#z#D#y#D#z#D#y#D#z#D#y#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#z#D#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#z#q#y#q#z#q#y#q#q#q#q#q#q#q#q#q"
+"#q#q#q#q#q#j#q#j#q#j#q#k#q#j#q#k#q#j#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#k.s#j.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.p.r.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.r.q.o.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.t.u.t.t.t.u.t.u.t.v.t.v.t.v.t.v.t.v.v.v.w.v.v.v.v.x.v.x.v.x.v.x.v.x.x.x.x.y.x.y.x.A.x.A.x.A.x.A.z.A.z.A.z.A.A.B.A.B.A.B.A.B.A.B.B.B.B.B.B.7.B.C.B.C.B.C.B#L.D#L.D#L#L.F#L.F#L.F#L#P.F#P.F#P.F#P.F.I#P.I#P.I#P.I.K#M.K#M.K.L#M.L#M.L.L#J.L#J.L#J.L.N#J.N#J#E.O#E.O#E",
+"#F#p#F#H#F#H#t#F#t#F#t#t#K#t#K#t#K#t#x#K#x#K#I#K#x#K#I#x#O#x#O#x#O#x#j#x#j#Q#j#Q#j#Q#j#j#j#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#w#q#q#q#w#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#y#y#z#y#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#D#y#y#z#y#y#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#w"
+"#q#q#q#w#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#j#j#j#k#j#j#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#b.s#b.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.p.p.p.r.p.p.p.r.p.q.p.q.p.q.p.q.p.q.o.q.o.q.q.q.o.q.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.t.t.u.t.v.t.v.t.v.t.v.w.v.w.v.w.v.v.v.w.x.v.x.v.x.v.x.x.x.x.x.x.x.x.A.x.z.x.A.x.A.x.A.z.A.z.A.z.A.A.B.z.B.A.B.A.B.B.B.B.B.B.B.B.D.B.C.B.C.B#L.D#L.D#L.D#L#T.F#T.F#L#P.F#P.F#P.F#P#P.K#P.K#P.I#P.I.K#M.K#M#R.L#R.L#M.L.L#J.L#J.L#J#J.O#J.O#J#E.O",
+"#C#F#p#F#p#F#p#F#H#F#H#t#H#t#F#K#H#K#t#K#t#K#t#x#K#x#K#x#K#x#x#I#x#Q#x#O#x#O#x#j#x#j#Q#j#Q#j#k#j#k#j#j#q#k#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#z#q#y#q#z#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#z#q#y#q#z#q#q#q#q#q#q#q#q#q"
+"#q#q#q#q#q#j#q#j#q#j#q#j#q#k#q#j#q#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#k.s#b.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.r.s.p.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.q.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.t.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.w.v.v.v.v.v.v.x.v.x.v.x.v.x.v.x.x.y.x.x.x.y.x.A.x.A.x.A.x.A.z.A.z.A.A.A.z.A.A.B.A.B.A.B.A.B.B.B.B.7.B.B.B.C.B.C.B#L.B#L.D#L.D#L.D.F#L.F#L.F#L.F.F#P.F#P.F#N#P.K#P.I#P.I#P#M.K#M.K#M#M.L#R.L#M.L#M#J.L#J.L#J#J.O#J.N#J.N.O#E.O#E",
+"#F#p#F#H#F#F#t#H#t#F#t#F#K#t#K#t#K#t#K#K#x#K#x#K#I#K#I#K#O#x#O#x#O#x#O#x#j#Q#j#Q#j#j#j#k#j#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#w#q#q#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#y#y#z#y#y#D#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#y#y#y#z#y#y#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#q"
+"#q#w#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#j#k#j#j#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#b.s.s.s#b.s.s.s.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p.p.p.r.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.o.t.q.t.q.t.q.t.q.t.t.t.t.t.t.u.t.t.t.v.t.v.t.v.t.v.w.v.w.v.w.v.w.v.v.x.v.x.v.x.v.x.x.x.x.x.x.x.x.z.x.A.x.A.x.A.x.A.z.A.z.A.z.A.z.B.A.B.A.B.A.B.B.B.B.B.B.B.B.C.B.D.B#L.B#L.D#L.D#L#T#L#T.F#L.F#L.F.F#P.F#P.F#P.F.K#P.I#P.K#P#M.K#M.K#M.K.L#R.L#R.L#M#J.L#J.L#J#J.O#J.N#J#U.O",
+"#C#F#C#F#p#F#p#F#H#t#H#t#H#t#H#K#t#K#t#K#t#K#t#K#K#x#K#x#K#x#K#x#x#O#x#O#x#j#x#j#x#j#Q#j#Q#j#Q#j#k#j#k#q#j#q#k#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#y#q#z#q#y#q#z#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#D#z#D#z#D#y#D#z#D#y#D#z#D#y#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#z#D#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#z#q#y#q#z#q#y#q#q#q#q#q#q#q#q#q"
+"#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#k#q#j#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#k.s#j.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.r.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.r.q.o.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.t.u.t.t.t.u.t.u.t.v.t.v.t.v.t.v.t.v.v.v.w.v.v.v.v.x.v.x.v.x.v.x.v.x.x.x.x.y.x.y.x.A.x.A.x.A.x.A.z.A.z.A.z.A.A.A.A.B.A.B.A.B.A.B.B.B.B.B.B.7.B.C.B#L.B#L.B#L.D#L.D#L#L#L#L.F#L.F#L#P.F#P.F#P.F#P.F.I#P.I#P.I#P#M.K#M.K#M.K.L#M.L#M.L#M#J.L#J.L#J#J.N#J.N#J#E.O#E.O#E",
+"#F#p#F#H#F#H#t#F#t#F#t#F#K#t#K#t#K#t#K#K#x#K#I#K#x#K#I#x#O#x#O#x#O#x#j#x#j#Q#j#Q#j#Q#j#j#j#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#w#q#q#q#w#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#y#y#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#D#y#y#z#y#y#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#w"
+"#q#q#q#w#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#j#j#j#k#j#j#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#b.s#b.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.p.p.p.r.p.p.p.r.p.r.p.q.p.q.p.q.p.q.o.q.o.q.q.q.o.q.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.t.t.u.t.v.t.v.t.v.t.v.w.v.w.v.w.v.v.v.w.x.v.x.v.x.v.x.x.x.x.x.x.x.x.y.x.z.x.A.x.A.x.A.z.A.z.A.z.A.A.B.z.B.A.B.A.B.B.B.B.B.B.B.B.D.B.C.B.C.B#L.D#L.D#L.D#L#T.F#T.F#L#P.F#P.F#P.F#P#P.K#P.K#P.I#P#M.K#M.K#M#R.L#R.L#M#J#M#J.L#J.L#J#J.O#J.O#J#E.O",
+"#C#F#p#F#p#F#p#F#H#F#H#t#H#t#F#K#H#K#t#K#t#K#t#x#K#x#K#x#K#x#x#I#x#Q#x#O#x#O#x#j#x#j#Q#j#Q#j#k#j#k#j#j#q#k#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#z#q#y#q#z#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#z#q#y#q#z#q#q#q#q#q#q#q#q#q"
+"#q#q#q#q#q#j#q#j#q#j#q#j#q#k#q#j#q#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#k.s#b.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.r.s.p.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.q.q.o.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.w.v.v.v.v.v.v.x.v.x.v.x.v.x.v.x.x.y.x.x.x.y.x.A.x.A.x.A.x.A.z.A.z.A.A.A.z.A.A.B.A.B.A.B.A.B.B.B.B.7.B.B.B.C.B.C.B#L.B#L.D#L#T#L#T#L#L.F#L.F#L#P.F#P.F#P.F#N#P.K#P.I#P.I#P#M.K#M.K#M#M.L#R.L#M.L#M#J.L#J.L#J#J.O#J.N#J#E.O#E.O#E",
+"#F#p#F#H#F#F#F#H#t#F#t#F#K#t#K#t#K#t#K#K#x#K#x#K#I#K#I#K#O#x#O#x#O#x#O#x#j#Q#j#Q#j#O#j#Q#j#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#w#q#q#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#y#y#z#y#y#D#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#y#y#y#z#y#y#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#q"
+"#q#w#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#j#k#j#j#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#b.s.s.s#b.s.s.s.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p.p.p.r.p.q.p.q.p.q.p.q.p.q.o.q.o.q.q.q.o.t.q.t.q.t.q.t.q.t.t.t.t.t.t.u.t.t.t.v.t.v.t.v.t.v.w.v.w.v.w.v.w.v.v.x.v.x.v.x.v.x.x.x.x.x.x.x.x.x.x.A.x.A.x.A.x.A.z.A.z.A.z.A.z.B.A.B.A.B.A.B.B.B.B.B.B.B.B.C.B.D.B#L.B#L.D#L.D#L#T#L#T.F#L.F#L.F#L#P.F#P.F#P#P.K#P.I#P.K#P#M.K#M.K#M.K.L#R.L#R.L#M#J.L#J#J#J#J.O#J.N#J#U.O",
+"#C#F#C#F#p#F#p#F#H#t#H#t#F#t#H#K#t#K#t#K#t#K#t#K#K#x#K#x#K#x#K#Q#x#O#x#O#x#O#x#O#x#j#Q#j#Q#j#Q#j#k#j#k#q#j#q#k#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#z#q#z#q#y#q#z#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#D#z#D#z#D#y#D#z#D#y#D#z#D#y#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#z#D#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#z#q#y#q#z#q#y#q#q#q#q#q#q#q#q#q"
+"#q#q#q#q#q#j#q#j#q#j#q#k#q#j#q#k#q#j#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#k.s#j.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.r.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.r.q.o.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.u.t.t.t.u.t.u.t.v.t.v.t.v.t.v.t.v.v.v.w.v.v.v.v.x.v.x.v.x.v.x.v.x.x.x.x.y.x.y.x.A.x.A.x.A.x.A.z.A.z.A.z.A.A.A.A.B.A.B.A.B.A.B.B.B.B.B.B.7.B.C.B#L.B#L.B#L.D#L.D#L#L#L#T.F#L.F#L#P.F#P.F#P#P#P#P.I#P.I#P#M#P#M.K#M.K#M.K.L#M.L#M#J#M#J.L#J.L#J#J.N#J.O#J#E.O#E.O#E",
+"#F#p#F#H#F#H#t#F#t#F#t#F#K#F#K#t#K#t#K#K#K#K#I#K#x#K#I#x#O#x#O#x#O#x#j#x#j#Q#j#Q#j#Q#j#j#j#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#w#q#q#q#w#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#y#y#z#y#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#D#y#y#z#y#y#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#w"
+"#q#q#q#w#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#j#j#j#k#j#j#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#b.s#b.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.p.p.p.r.p.p.p.r.p.r.p.q.p.q.p.q.p.q.o.q.o.q.q.q.o.q.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.t.t.u.t.v.t.v.t.v.t.v.w.v.w.v.w.v.v.v.w.x.v.x.v.x.v.x.x.x.x.x.x.x.x.y.x.z.x.A.x.A.x.A.z.A.z.A.z.A.A.B.z.B.A.B.A.B.B.B.B.B.B.B.B.D.B#L.B#L.B#L.D#L#T#L#T#L#T.F#T.F#L#P#L#P.F#P.F#P#P.K#P.K#P#M#P#M.K#M.K#M#R.L#R.L#M#J#R#J.L#J.L#J#J.O#J.O#J#E.O",
+"#C#F#p#F#p#F#p#F#H#F#H#t#H#t#F#K#H#K#t#K#t#K#t#x#K#x#K#x#K#x#x#O#x#Q#x#O#x#O#x#j#x#j#Q#j#Q#j#k#j#k#j#j#q#k#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#z#q#y#q#z#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#y#D#z#D#y#D#z#D#y#D#z#D#z#D#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#z#q#y#q#z#q#q#q#q#q#q#q#q#q"
+"#q#q#q#q#q#j#q#j#q#j#q#j#q#k#q#j#q#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#k.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.r.s.p.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.q.q.o.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.w.v.v.v.v.v.v.x.v.x.v.x.v.x.v.x.x.y.x.x.x.y.x.A.x.A.x.A.x.A.z.A.z.A.A.A.z.A.A.B.A.B.A.B.A.B.B.B.B.7.B.B.B#L.B#L.B#L.B#L.D#L#T#L#T#L#L.F#L#P#L#P.F#P.F#P.F#N#P.K#P.I#P.I#P#M.K#M.K#M#M.L#R.L#M.L#M#J.L#J.L#J#J.O#J.N#J#E.O#E.O#E",
+"#F#p#F#H#F#F#F#H#t#F#t#F#K#t#K#t#K#t#K#K#x#K#x#K#I#K#I#K#O#x#O#x#O#x#O#x#j#Q#j#Q#j#O#j#Q#j#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#w#q#q#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#y#y#z#y#y#y#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#y#y#y#z#y#y#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#q"
+"#q#w#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#j#k#j#j#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#b.s.s.s#b.s.s.s.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p.p.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.o.t.q.t.q.t.q.t.q.t.t.t.t.t.t.u.t.t.t.v.t.v.t.v.t.v.w.v.w.v.w.v.w.v.v.x.v.x.v.x.v.x.x.x.x.x.x.x.x.x.x.A.x.A.x.A.x.A.z.A.z.A.z.A.z.B.A.B.A.B.A.B.B.B.B.B.B.B.B.C.B.D.B#L.B#L.D#L.D#L#T#L#T.F#L#P#T#P#L#P.F#P#P#P#P.K#P.I#P.K#P#M.K#M.K#M#R.L#R.L#R.L#M#J.L#J#J#J#J.O#J#U#J#U.O",
+"#C#F#C#F#p#F#p#F#H#t#H#t#F#t#H#K#t#K#t#K#t#K#t#K#K#x#K#x#K#x#K#x#x#O#x#O#x#O#x#O#x#j#Q#j#Q#j#Q#j#k#j#k#q#j#q#k#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#z#q#z#q#y#q#z#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#z#q#y#q#z#q#y#q#q#q#q#q#q#q#q#q"
+"#q#q#q#q#q#j#q#j#q#j#q#k#q#j#q#k#q#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#k.s#j.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.p.r.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.r.q.o.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.t.u.t.t.t.u.t.u.t.v.t.v.t.v.t.v.t.v.v.v.w.v.v.v.v.x.v.x.v.x.v.x.v.x.x.x.x.y.x.y.x.A.x.A.x.A.x.A.z.A.z.A.z.A.A.A.A.B.A.B.A.B.A.B.B.B.B.B.B.7.B.C.B#L.B#L.B#L.D#L.D#L#L#L#T.F#L.F#L#P.F#P.F#P#P#P#P.I#P.I#P#M#P#M.K#M.K#M#R.L#M.L#M#J#M#J.L#J#J#J#J.N#J.O#J#E.O#E.O#E",
+"#F#p#F#H#F#H#t#F#t#F#t#F#K#F#K#t#K#t#K#K#K#K#I#K#x#K#I#x#O#x#O#x#O#x#O#x#O#Q#j#Q#j#Q#j#j#j#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#w#q#q#q#w#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#y#y#z#y#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#D#y#y#z#y#y#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#w"
+"#q#q#q#w#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#j#j#j#k#j#j#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#b.s#b.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.p.p.p.r.p.p.p.r.p.q.p.q.p.q.p.q.p.q.o.q.o.q.q.q.o.q.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.t.t.u.t.v.t.v.t.v.t.v.w.v.w.v.w.v.v.v.w.x.v.x.v.x.v.x.x.x.x.x.x.x.x.y.x.z.x.A.x.A.x.A.z.A.z.A.z.A.A.B.z.B.A.B.A.B.B.B.B.B.B.B.B.D.B#L.B#L.B#L.D#L#T#L#T#L#T.F#T.F#L#P#L#P.F#P.F#P#P.K#P.K#P#M#P#M.K#M.K#M#R.L#R.L#M#J#R#J.L#J.L#J#J.O#J.O#J#E.O",
+"#C#F#p#F#p#F#p#F#H#F#H#t#H#t#F#K#H#K#t#K#t#K#t#x#K#x#K#x#K#x#K#I#K#Q#x#O#x#O#x#j#x#j#Q#j#Q#j#Q#j#Q#j#j#q#k#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#z#q#y#q#z#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#D#z#D#z#D#y#D#z#D#y#D#z#D#y#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#z#D#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#z#q#y#q#z#q#q#q#q#q#q#q#q#q"
+"#q#q#q#q#q#j#q#j#q#j#q#j#q#k#q#j#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.r.p.p.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.q.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.t.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.w.v.v.v.v.v.v.x.v.x.v.x.v.x.v.x.x.y.x.x.x.y.x.A.x.A.x.A.x.A.z.A.z.A.A.A.z.A.A.B.A.B.A.B.A.B.B.B.B.7.B.B.B#L.B#L.B#L.B#L.D#L#T#L#T#L#L.F#L#P#L#P.F#P.F#P.F#N#P.K#P.I#P#M#P#M.K#M.K#M#M.L#R.L#M.L#M#J.L#J.L#J#J.O#J#E#J#E.O#E#U#E",
+"#F#p#F#H#F#F#F#H#t#F#t#F#K#t#K#t#K#t#K#K#x#K#x#K#I#K#I#K#O#x#O#x#O#x#O#x#j#Q#j#Q#j#O#j#Q#j#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#w#q#q#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#y#y#z#y#y#y#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#y#z#y#y#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#q"
+"#q#w#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#j#j#k#j#j#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#b.s#b.s.s.s#b.s.s.s.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p.p.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.o.t.q.t.q.t.q.t.q.t.t.t.t.t.t.u.t.t.t.v.t.v.t.v.t.v.w.v.w.v.w.v.w.v.v.x.v.x.v.x.v.x.x.x.x.x.x.x.x.x.x.A.x.A.x.A.x.A.z.A.z.A.z.A.z.B.A.B.A.B.A.B.B.B.B.B.B.B.B#L.B#T.B#L.B#L.D#L.D#L#T#L#T.F#L#P#T#P#L#P.F#P#P#P#P.K#P.I#P#R#P#M.K#M#R#M#R.L#R.L#R#J#M#J.L#J#J#J#J.O#J#U#J#U.O",
+"#C#F#C#F#p#F#p#F#H#t#H#t#H#t#H#K#t#K#t#K#t#K#t#K#K#x#K#x#K#x#K#x#x#O#x#O#x#O#x#O#x#j#Q#j#Q#j#Q#j#k#j#k#q#j#q#k#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#z#q#y#q#z#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#z#q#y#q#z#q#z#q#q#q#q#q#q#q#q#q"
+"#q#q#q#q#q#j#q#j#q#j#q#k#q#j#q#k#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#k.s#b.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.p.r.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.r.q.o.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.t.u.t.t.t.u.t.u.t.v.t.v.t.v.t.v.t.v.v.v.w.v.v.v.v.x.v.x.v.x.v.x.v.x.x.x.x.y.x.y.x.A.x.A.x.A.x.A.z.A.z.A.z.A.A.A.A.B.A.B.A.B.A.B.B.B.B.B.B.7.B.C.B#L.B#L.B#L#T#L#T#L#L#L#T.F#L#P#L#P.F#P.F#P#P#P#P.I#P.I#P#M#P#M.K#M#R#M#R.L#M.L#M#J#M#J.L#J#J#J#J.N#J.O#J#E.O#E.O#E",
+"#F#p#F#H#F#H#t#F#t#F#t#F#K#F#K#t#K#t#K#K#K#K#I#K#x#K#I#K#O#x#O#x#O#x#O#x#O#Q#j#Q#j#Q#j#j#j#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#w#q#q#q#w#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#y#y#z#y#y#D#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#y#y#y#z#y#y#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#q#q#w"
+"#q#q#q#w#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#j#j#j#j#k#j#j#j#k#j#k#j.s#j.s#j.s#j.s#j.s#b.s.s.s#b.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.p.p.p.r.p.p.p.r.p.q.p.q.p.q.p.q.p.q.o.q.o.q.q.q.o.q.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.t.t.u.t.v.t.v.t.v.t.v.w.v.w.v.w.v.v.v.w.x.v.x.v.x.v.x.x.x.x.x.x.x.x.y.x.z.x.A.x.A.x.A.z.A.z.A.z.A.A.B.z.B.A.B.A.B.B.B.B.B.B.B.B.D.B#L.B#L.B#L.D#L#T#L#T#L#T.F#T.F#L#P#L#P.F#P.F#P#P.K#P.K#P#M#P#M.K#M.K#M#R.L#R.L#M#J#R#J.L#J#J#J#J.O#J.O#J#E.O",
+"#C#F#C#F#C#F#p#F#H#F#H#t#H#t#F#K#H#K#t#K#t#K#t#K#K#K#K#x#K#x#K#I#K#Q#x#O#x#O#x#j#x#j#Q#j#Q#j#Q#j#Q#j#j#q#k#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#y#q#z#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#D#z#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#z#D#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#z#q#y#q#z#q#y#q#q#q#q#q#q#q#q#q#q#q"
+"#q#q#q#q#q#j#q#j#q#j#q#j#q#k#q#j#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#k.s#j.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.r.p.p.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.q.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.t.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.w.v.v.v.v.v.v.x.v.x.v.x.v.x.v.x.x.y.x.x.x.y.x.A.x.A.x.A.x.A.z.A.z.A.A.A.z.A.A.B.A.B.A.B.A.B.B.B.B.7.B.B.B#L.B#L.B#L.B#L.D#L#T#L#T#L#L.F#L#P#L#P.F#P#P#P#P#N#P.K#P#M#P#M#P#M.K#M.K#M#M.L#R#J#M#J#M#J.L#J.L#J#J.O#J#E#J#E.O#E#U#E",
+"#F#p#F#H#F#F#F#H#t#F#t#F#K#t#K#t#K#t#K#K#x#K#x#K#I#K#I#K#O#x#O#x#O#x#O#x#j#Q#j#Q#j#O#j#Q#j#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#w#q#q#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#y#y#z#y#y#y#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#D#y#y#z#y#y#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#w#q#q"
+"#q#w#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#j#j#k#j#j#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#b.s#b.s.s.s#b.s.s.s.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p.p.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.u.t.t.t.v.t.v.t.v.t.v.w.v.w.v.w.v.w.v.v.x.v.x.v.x.v.x.x.x.x.x.x.x.x.x.x.A.x.A.x.A.x.A.z.A.z.A.z.A.z.B.A.B.A.B.A.B.B.B.B.B.B.B.B#L.B#T.B#L.B#L#T#L#T#L#T#L#T.F#L#P#T#P#L#P.F#P#P#P#P.K#P#M#P#R#P#M.K#M#R#M#R.L#R#J#R#J#M#J.L#J#J#J#J.O#J#U#J#U.O",
+"#C#F#C#F#p#F#p#F#H#F#H#F#H#t#H#K#F#K#F#K#t#K#t#K#K#x#K#x#K#x#K#x#x#O#x#O#x#O#x#O#x#j#Q#j#Q#j#Q#j#k#j#k#q#j#q#k#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#z#q#y#q#z#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#D#z#D#z#D#y#D#z#D#y#D#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#z#D#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#z#q#y#q#z#q#q#q#q#q#q#q#q#q#q#q"
+"#q#q#q#q#q#j#q#j#q#j#q#k#q#j#q#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#k.s#b.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.r.q.o.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.t.u.t.t.t.u.t.u.t.v.t.v.t.v.t.v.t.v.v.v.w.v.v.v.v.x.v.x.v.x.v.x.v.x.x.x.x.y.x.y.x.A.x.A.x.A.x.A.z.A.z.A.z.A.A.A.A.B.A.B.A.B.A.B.B.B.B.B.B#V.B#L.B#L.B#L.B#L#T#L#T#L#L#L#T#P#L#P#L#P.F#P.F#P#P#P#P.I#P.I#P#M#P#M.K#M#R#M#R.L#M.L#M#J#M#J.L#J#J#J#J.N#J.O#J#E.O#E.O#E",
+"#F#C#F#H#F#H#F#F#t#F#t#F#K#F#K#t#K#t#K#K#K#K#I#K#x#K#I#K#O#K#O#x#O#x#O#x#O#Q#j#Q#j#Q#j#O#j#O#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#w#q#q#q#w#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#y#y#z#y#y#y#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#y#y#y#z#y#y#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#q#q#w"
+"#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#j#k#j#j#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#b.s.s.s#b.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.p.p.p.r.p.p.p.r.p.q.p.q.p.q.p.q.p.q.o.q.o.q.q.q.o.q.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.t.t.u.t.v.t.v.t.v.t.v.w.v.w.v.w.v.v.v.w.x.v.x.v.x.v.x.x.x.x.x.x.x.x.A.x.z.x.A.x.A.x.A.z.A.z.A.z.A.A.B.z.B.A.B.A.B.B.B.B.B.B#W.B#T.B#L.B#L.B#L.D#L#T#L#T#L#T#P#T#P#L#P#L#P#P#P#P#P#P.K#P.K#P#M#P#M.K#M#R#M#R.L#R.L#M#J#R#J#J#J#J#J#J.O#J#U#J#E.O",
+"#C#F#C#F#C#F#p#F#H#F#H#t#H#t#F#K#H#K#t#K#t#K#t#K#K#K#K#x#K#x#K#I#K#Q#x#O#x#O#x#O#x#O#Q#j#Q#j#Q#j#Q#j#k#q#k#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#y#q#z#q#y#q#z#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#z#q#y#q#z#q#y#q#q#q#q#q#q#q#q#q#q#q"
+"#q#q#q#j#q#j#q#j#q#j#q#j#q#k#q#j#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#k.s#j.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.r.p.p.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.o.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.t.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.w.v.v.v.v.v.v.x.v.x.v.x.v.x.v.x.x.y.x.x.x.y.x.A.x.A.x.A.x.A.z.A.z.A.A.A.z.A.A.B.A.B.A.B.A.B.B.B.B.7.B.B.B#L.B#L.B#L#W#L#T#L#T#L#T#L#L.F#L#P#L#P.F#P#P#P#P#N#P.K#P#M#P#M#P#M.K#M#R#M#M.L#R#J#M#J#M#J.L#J#J#J#J.O#J#E#J#E.O#E#U#E",
+"#F#p#F#p#F#F#F#H#t#F#t#F#K#F#K#F#K#t#K#K#K#K#K#K#I#K#I#K#O#x#O#x#O#x#O#x#j#Q#j#Q#j#O#j#Q#j#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#w#q#q#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#y#y#z#y#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#y#y#y#z#y#y#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#w#q#q"
+"#q#w#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#j#j#j#k#j#j#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#b.s#b.s.s.s#b.s.s.s.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p.r.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.u.t.t.t.v.t.v.t.v.t.v.w.v.w.v.w.v.w.v.v.x.v.x.v.x.v.x.x.x.x.x.x.x.x.z.x.A.x.A.x.A.x.A.z.A.z.A.z.A.z.B.A.B.A.B.A.B.B.B.B.B.B.B.B#L.B#T.B#L.B#L#T#L#T#L#T#L#T.F#L#P#T#P#L#P.F#P#P#P#P.K#P#M#P#R#P#M.K#M#R#M#R.L#R#J#R#J#M#J.L#J#J#J#J.O#J#U#J#U.O",
+"#C#F#C#F#p#F#p#F#H#F#H#F#H#t#H#K#F#K#F#K#t#K#t#K#K#x#K#x#K#x#K#x#K#O#K#Q#x#O#x#O#x#j#Q#j#Q#j#Q#j#Q#j#Q#j#j#q#k#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#z#q#y#q#z#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#D#z#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#z#q#y#q#z#q#q#q#q#q#q#q#q#q#q#q"
+"#q#q#q#j#q#j#q#j#q#j#q#k#q#j#q#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#k.s#b.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.r.s.p.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.q.q.o.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.t.u.t.t.t.u.t.u.t.v.t.v.t.v.t.v.t.v.v.v.w.v.v.v.v.x.v.x.v.x.v.x.v.x.x.x.x.y.x.y.x.A.x.A.x.A.x.A.z.A.z.A.z.A.A.A.A.B.A.B.A.B.A.B.B.B.B.B.B#V.B#L.B#L.B#L.B#L#T#L#T#L#L#L#T#P#L#P#L#P.F#P#P#P#P#P#P.I#P#M#P#M#P#M.K#M#R#M#R.L#M.L#M#J#M#J.L#J#J#J#J.N#J#U#J#E.O#E#U#E",
+"#F#C#F#p#F#H#F#F#F#F#t#F#K#F#K#t#K#t#K#K#K#K#I#K#x#K#I#K#O#K#O#x#O#x#O#x#O#Q#j#Q#j#Q#j#O#j#Q#j#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#w#q#q#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#y#y#z#y#y#y#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#D#y#y#z#y#y#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#q#q#w"
+"#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#j#k#j#j#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#b.s.s.s#b.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.r.p.p.p.r.p.q.p.q.p.q.p.q.p.q.o.q.o.q.q.q.o.q.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.t.t.v.t.v.t.v.t.v.t.v.w.v.w.v.w.v.v.v.w.x.v.x.v.x.v.x.x.x.x.x.x.x.x.A.x.z.x.A.x.A.x.A.z.A.z.A.z.A.A.B.z.B.A.B.A.B.B.B.B.B.B#W.B#T.B#L.B#L#W#L#T#L#T#L#T#L#T#P#T#P#L#P#L#P#P#P#P#P#P.K#P#R#P#M#P#M#R#M#R#M#R.L#R.L#M#J#R#J#J#J#J#J#J#U#J#U#J#E.O",
+"#C#F#C#F#C#F#p#F#H#F#H#t#H#t#F#K#H#K#t#K#t#K#t#K#K#K#K#x#K#x#K#I#K#Q#x#O#x#O#x#O#x#O#Q#j#Q#j#Q#j#Q#j#k#j#k#q#j#q#k#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#z#q#z#q#y#q#z#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#D#z#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#z#D#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#z#q#y#q#z#q#z#q#q#q#q#q#q#q#q#q#q#q"
+"#q#q#q#j#q#j#q#j#q#k#q#j#q#k#q#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#k.s#j.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.r.p.p.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.o.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.u.t.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.w.v.w.v.v.v.v.v.v.x.v.x.v.x.v.x.v.x.x.y.x.x.x.y.x.A.x.A.x.A.x.A.z.A.z.A.A.A.A.B.A.B.A.B.A.B.A.B.B.B.B#V.B#W.B#L.B#L.B#L#W#L#T#L#T#L#T#X#L#P#L#P#L#P.F#P#P#P#P#N#P.K#P#M#P#M#P#M#R#M#R#M#M.L#R#J#M#J#M#J#J#J#J#J#J.O#J#E#J#E.O#E#U#E",
+"#F#p#F#p#F#F#F#H#t#F#t#F#K#F#K#F#K#t#K#t#K#K#K#K#I#K#x#K#O#K#O#x#O#x#O#x#O#Q#O#Q#j#O#j#Q#j#O#j#O#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#w#q#q#q#w#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#y#y#z#y#y#D#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#y#y#y#z#y#y#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#q#q#w#q#q"
+"#q#w#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#j#j#j#j#k#j#j#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#b.s#b.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p.r.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.u.t.w.t.v.t.v.t.v.t.v.w.v.w.v.w.v.w.v.v.x.v.x.v.x.v.x.x.x.x.x.x.y.x.z.x.A.x.A.x.A.x.A.z.A.z.A.z.A.z.B.A.B.A.B.A.B.B.B.B#W.B.B.B#L.B#T.B#L.B#L#T#L#T#L#T#X#T#P#L#P#T#P#X#P#P#P#P#P#P.K#P#M#P#R#P#M.K#M#R#M#R.L#R#J#R#J#M#J.L#J#J#J#J.O#J#U#J#U#U",
+"#C#F#C#F#p#F#p#F#H#F#H#F#H#t#H#t#F#K#F#K#t#K#t#K#K#K#K#K#K#x#K#x#K#O#K#Q#x#O#x#O#x#O#Q#O#Q#j#Q#j#Q#j#Q#j#j#q#k#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#y#q#z#q#y#q#z#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#z#D#z#D#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#z#q#y#q#z#q#y#q#q#q#q#q#q#q#q#q#q#q#q#q"
+"#q#q#q#j#q#j#q#j#q#j#q#k#q#j#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#k.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.r.s.p.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.q.q.o.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.t.u.t.t.t.u.t.u.t.v.t.v.t.v.t.v.w.v.v.v.w.v.v.v.v.x.v.x.v.x.v.x.x.x.x.x.x.y.x.y.x.A.x.A.x.A.x.A.z.A.A.A.z.A.A.B.A.B.A.B.A.B.A.B.B.B.B.B.B#V.B#L.B#L#W#L#W#L#T#L#T#L#L#L#L#P#L#P#L#P#P#P#P#P#P#P#P#M#P#M#P#M#P#M.K#M#R#M#R#J#M#J#M#J#M#J.L#J#J#J#J#E#J#U#J#E#U#E#U#E",
+"#F#C#F#p#F#H#F#F#F#F#t#F#K#F#K#t#K#t#K#t#K#K#I#K#x#K#I#K#I#K#O#x#O#x#O#x#O#x#j#Q#j#Q#j#O#j#Q#j#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#w#q#q#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#y#y#z#y#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#y#y#y#z#y#y#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#w#q#q#q#w"
+"#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#j#j#k#j#j#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#b.s.s.s#b.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.r.p.p.p.r.p.q.p.q.p.q.p.q.p.q.o.q.o.q.q.q.o.q.q.t.q.t.q.t.q.t.q.t.t.t.t.u.t.t.t.v.t.v.t.v.t.v.t.v.w.v.w.v.w.v.v.x.w.x.v.x.v.x.v.x.x.x.x.x.x.x.x.A.x.A.x.A.x.A.x.A.z.A.z.A.z.A.A.B.z.B.A.B.A.B.B.B.B.B.B#W.B#T.B#L.B#L#W#L#T#L#T#L#T#L#T#P#T#P#L#P.F#P#P#P#P#P#P#R#P#R#P#M#P#M#R#M#R#M#R#J#R#J#M#J#R#J#J#J#J#J#J#U#J#U#J#E.O",
+"#C#F#C#F#C#F#p#F#H#F#H#F#H#F#F#t#H#K#F#K#F#K#t#K#K#K#K#x#K#x#K#x#K#Q#x#O#x#O#x#O#x#O#x#j#Q#j#Q#j#Q#j#Q#j#Q#q#j#q#k#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#z#q#y#q#z#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#z#q#y#q#z#q#q#q#q#q#q#q#q#q#q#q#q#q"
+"#q#j#q#j#q#j#q#j#q#k#q#j#q#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#k.s#b.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.r.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.r.q.o.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.u.t.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.w.v.w.v.v.v.v.v.v.x.v.x.v.x.v.x.x.x.x.y.x.x.x.y.x.A.x.A.x.A.x.A.z.A.z.A.A.A.A.B.A.B.A.B.A.B.A.B.B.B.B#V.B#W.B#L.B#L.B#L#W#L#T#L#T#L#T#X#L#P#L#P#L#P.F#P#P#P#P#N#P.K#P#M#P#M#P#M#R#M#R#M#M.L#R#J#M#J#M#J#J#J#J#J#J.O#J#E#J#E.O#E#U#E",
+"#F#C#F#p#F#H#F#H#F#F#t#F#K#F#K#F#K#t#K#t#K#K#K#K#I#K#x#K#I#K#O#K#O#x#O#x#O#x#O#Q#j#Q#j#Q#j#O#j#O#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#w#q#q#q#w#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#y#y#z#y#y#y#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#D#y#y#z#y#y#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#q#q#w#q#q"
+"#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#j#j#j#j#j#k#j#j#j#k#j#k#j.s#j.s#j.s#j.s#j.s#b.s.s.s#b.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.p.p.p.r.p.p.p.r.p.r.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.q.t.q.t.q.t.q.t.t.t.t.t.t.t.t.u.t.v.t.v.t.v.t.v.t.v.w.v.w.v.v.v.w.x.v.x.v.x.v.x.v.x.x.x.x.x.x.y.x.z.x.A.x.A.x.A.z.A.z.A.z.A.z.A.z.B.A.B.A.B.A.B.B.B.B#W.B#W.B#L.B#T#W#L#W#L#T#L#T#L#T#X#T#P#L#P#L#P#P#P#P#P#P#P#P.K#P#M#P#R#P#M#R#M#R#M#R.L#R#J#R#J#Y#J#J#J#J#J#J#U#J#U#J#U#U",
+"#C#F#C#F#C#F#C#F#H#F#H#F#H#t#H#t#F#K#F#K#t#K#t#K#t#K#K#K#K#x#K#x#K#I#K#Q#x#O#x#O#x#O#x#O#Q#j#Q#j#Q#j#Q#j#k#q#k#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#z#q#z#q#y#q#z#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#D#z#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#z#q#y#q#z#q#z#q#q#q#q#q#q#q#q#q#q#q#q#q"
+"#q#j#q#j#q#j#q#j#q#j#q#k#q#j#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#k.s#j.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.r.p.p.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.q.q.o.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.w.v.v.v.w.v.v.v.v.x.v.x.v.x.v.x.x.x.x.x.x.y.x.y.x.A.x.A.x.A.x.A.z.A.A.A.z.A.A.B.A.B.A.B.A.B.B.B.B#W.B#W.B#V.B#L.B#L#W#L#W#L#T#L#T#X#L#P#L#P#L#P#L#P#P#P#P#P#P#P#P#M#P#M#P#M#Z#M#R#M#R#M#R#J#M#J#M#J#Y#J#J#J#J#J#J#E#J#U#J#E#U#E#U#E",
+"#F#C#F#p#F#H#F#F#F#H#t#F#K#F#K#F#K#F#K#t#K#K#K#K#K#K#I#K#I#K#O#x#O#x#O#x#O#x#O#Q#O#Q#j#O#j#Q#j#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#w#q#q#q#w#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#y#y#z#y#y#y#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#D#y#y#z#y#y#y#z#y#y#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#z#q#w#q#q#q#w"
+"#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#j#j#j#k#j#j#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#b.s#b.s.s.s#b.s.s.s.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p.p.p.q.p.q.p.q.p.q.p.q.p.q.o.q.o.q.q.q.o.t.q.t.q.t.q.t.q.t.t.t.t.t.t.u.t.t.t.v.t.v.t.v.t.v.t.v.w.v.w.v.w.v.v.x.v.x.v.x.v.x.v.x.x.x.x.x.x.x.x.A.x.A.x.A.x.A.z.A.z.A.z.A.z.A.A.B.z.B.A.B.A.B.B#W.B#W.B#W.B#T.B#L.B#L#W#L#T#L#T#X#T#X#T#P#T#P#L#P#P#P#P#P#P#P#P#R#P#R#P#M#P#M#R#M#R#M#R#J#R#J#M#J#R#J#J#J#J#J#J#U#J#U#J#E#U",
+"#C#H#C#F#C#F#p#F#p#F#H#F#H#F#F#t#H#K#F#K#F#K#t#K#t#K#K#x#K#x#K#x#K#x#K#O#K#O#x#O#x#O#x#j#Q#O#Q#j#Q#j#Q#j#Q#j#j#q#k#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#y#q#z#q#y#q#z#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#D#z#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#z#D#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#z#q#y#q#z#q#y#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q"
+"#q#j#q#j#q#j#q#j#q#k#q#j#q#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#k.s#b.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.r.s.p.p.r.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.r.q.o.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.u.t.t.t.u.t.u.t.v.t.v.t.v.t.v.t.v.v.v.w.v.v.v.v.v.v.x.v.x.v.x.v.x.x.x.x.y.x.x.x.y.x.A.x.A.x.A.x.A.z.A.z.A.A.A.A.B.A.B.A.B.A.B.B#W.B.B.B#V.B#L.B#L#W#L#W#L#T#L#T#L#L#L#T#P#L#P#L#P#X#P#P#P#P#P#P#0#P#R#P#M#P#M#P#M#R#M#R#M#M#J#R#J#M#J#M#J#J#J#J#J#J#U#J#E#J#E#U#E#U#E",
+"#F#C#F#C#F#H#F#H#F#F#F#F#t#F#K#F#K#t#K#t#K#K#K#K#I#K#x#K#I#K#O#K#O#x#O#x#O#x#O#Q#j#Q#j#Q#j#O#j#Q#j#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#w#q#q#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#y#y#z#y#y#D#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#y#y#y#z#y#y#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#w#q#q#q#w#q#q"
+"#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#j#j#k#j#j#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#b.s.s.s#b.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.p.p.p.r.p.p.p.r.p.q.p.q.p.q.p.q.p.q.o.q.o.q.q.q.o.q.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.t.t.u.t.v.t.v.t.v.t.v.t.v.w.v.w.v.v.v.w.x.v.x.v.x.v.x.v.x.x.x.x.x.x.y.x.z.x.A.x.A.x.A.z.A.z.A.z.A.z.B.z.B.A.B.A.B.A.B.B.B.B#W.B#W.B#L.B#T#W#L#W#L#T#L#T#L#T#X#T#P#L#P#L#P#P#P#P#P#P#Z#P#R#P#M#P#R#Z#M#R#M#R#M#R#J#R#J#R#J#Y#J#J#J#J#1#J#U#J#U#J#U#U",
+"#C#F#C#F#C#F#C#F#p#F#H#F#H#t#H#t#F#K#H#K#t#K#t#K#t#K#K#K#K#x#K#x#K#I#K#Q#x#O#x#O#x#O#x#O#Q#j#Q#j#Q#j#Q#j#Q#j#Q#q#j#q#k#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#z#q#y#q#z#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#D#z#D#z#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#z#D#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#z#q#y#q#z#q#y#q#z#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j"
+"#q#j#q#j#q#j#q#k#q#j#q#k#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#k.s#j.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.r.p.p.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.o.q.q.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.t.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.w.v.v.v.v.v.v.v.v.x.v.x.v.x.v.x.x.y.x.x.x.y.x.A.x.A.x.A.x.A.x.A.z.A.A.A.z.A.A.B.A.B.A.B.A.B.B.B.B#V.B#W.B#L.B#L.B#L#W#L#T#L#T#L#T#X#L#P#L#P#L#P#L#P#P#P#P#P#P#P#P#M#P#M#P#M#Z#M#R#M#R#M#R#J#M#J#M#J#Y#J#J#J#J#J#J#E#J#U#J#E#U#E#U#E",
+"#F#C#F#p#F#H#F#F#F#H#t#F#t#F#K#F#K#F#K#t#K#K#K#K#K#K#I#K#I#K#O#K#O#K#O#x#O#x#O#Q#O#Q#j#O#j#Q#j#O#j#O#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#w#q#q#q#w#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#y#y#z#y#y#D#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#y#y#y#z#y#y#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#q#q#w#q#q#q#q"
+"#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#j#j#j#j#k#j#j#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#b.s#b.s.s.s#b.s.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p.r.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.u.t.t.t.v.t.v.t.v.t.v.w.v.w.v.w.v.w.v.v.x.v.x.v.x.v.x.x.x.x.x.x.x.x.x.x.A.x.A.x.A.x.A.z.A.z.A.z.A.z.B.A.B.A.B.A.B.A.B.B#W.B#W.B#W.B#T#W#L#W#L#W#L#T#L#T#X#T#P#L#P#T#P#X#P#P#P#P#P#P#P#P#R#P#R#P#M#P#M#R#M#R#M#R#J#R#J#M#J#Y#J#J#J#J#J#J#U#J#U#1#E#U",
+"#C#H#C#F#C#F#C#F#p#F#H#F#H#F#H#t#H#K#F#K#F#K#t#K#t#K#K#K#K#K#K#x#K#x#K#O#K#Q#x#O#x#O#x#O#Q#O#Q#j#Q#j#Q#j#Q#j#j#q#k#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#z#q#z#q#y#q#z#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#D#z#D#z#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#z#D#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#z#q#y#q#z#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j"
+"#q#j#q#j#q#j#q#j#q#k#q#j#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.r.s.p.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.q.q.o.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.t.u.t.t.t.u.t.u.t.v.t.v.t.v.t.v.t.v.v.v.w.v.v.v.v.x.v.x.v.x.v.x.v.x.x.x.x.y.x.y.x.A.x.A.x.A.x.A.x.A.z.A.z.A.A.A.A.B.A.B.A.B.A.B.B#W.B#W.B#V.B#L.B#L#W#L#W#L#T#L#T#X#L#X#T#P#L#P#L#P#X#P#P#P#P#P#P#0#P#R#P#M#Z#M#Z#M#R#M#R#Y#M#J#R#J#M#J#Y#J#J#J#J#1#J#U#J#E#1#E#U#E#U#E",
+"#F#C#F#C#F#H#F#H#F#F#F#F#t#F#K#F#K#F#K#t#K#t#K#K#2#K#K#K#I#K#O#K#O#x#O#x#O#x#O#x#O#Q#O#Q#j#O#j#Q#j#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#w#q#q#q#w#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#y#y#z#y#y#y#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#y#y#y#z#y#y#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#q#q#w#q#q#q#w#q#q"
+"#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#j#j#j#k#j#j#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#b.s.s.s#b.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.r.p.p.p.r.p.q.p.q.p.q.p.q.p.q.o.q.o.q.q.q.o.q.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.t.t.u.t.v.t.v.t.v.t.v.w.v.w.v.w.v.v.v.w.x.v.x.v.x.v.x.x.x.x.x.x.x.x.y.x.z.x.A.x.A.x.A.z.A.z.A.z.A.A.B.z.B.A.B.A.B.B#W.B#W.B#W.B#T.B#L.B#L#W#L#T#L#T#X#T#X#T#P#T#P#L#P#X#P#P#P#P#P#P#Z#P#R#P#M#P#M#Z#M#R#M#R#Y#R#J#R#J#R#J#Y#J#J#J#J#1#J#U#J#E#J#U#U",
+"#C#B#C#F#C#F#C#F#p#F#H#F#H#F#H#F#F#t#H#K#F#K#F#K#t#K#K#K#K#x#K#x#K#x#K#Q#K#O#K#O#x#O#x#O#x#j#Q#j#Q#j#Q#j#Q#j#Q#q#j#q#k#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#y#q#z#q#y#q#z#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#D#z#D#z#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#z#D#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#z#q#y#q#z#q#y#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j"
+"#q#j#q#j#q#j#q#k#q#j#q#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#k.s#b.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.r.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.r.q.o.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.t.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.w.v.v.v.v.v.v.x.v.x.v.x.v.x.v.x.x.y.x.x.x.y.x.A.x.A.x.A.x.A.x.A.z.A.A.A.z.A.A.B.A.B.A.B.A#W.B#W.B#V.B#W.B#L#W#L#W#L#W#L#T#L#T#L#T#X#L#P#L#P#X#P#X#P#P#P#P#Z#P#Z#P#M#P#M#P#M#R#M#R#M#R#M#R#J#M#J#M#J#Y#J#J#J#J#J#J#E#J#E#J#E#U#E#U#3",
+"#F#C#F#C#F#C#F#F#F#H#F#F#F#F#K#F#K#F#K#t#K#t#K#K#K#K#I#K#x#K#I#K#O#K#O#x#O#x#O#x#O#Q#j#Q#j#Q#j#O#j#O#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#w#q#q#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#y#y#z#y#y#y#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#D#y#y#z#y#y#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#w#q#q#q#w#q#q#q#q"
+"#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#j#j#k#j#j#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#b.s.s.s#b.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.p.p.p.r.p.p.p.r.p.r.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.u.t.w.t.v.t.v.t.v.t.v.w.v.w.v.w.v.w.v.v.x.v.x.v.x.v.x.x.x.x.x.x.x.x.x.x.A.x.A.x.A.x.A.z.A.z.A.z.A.z.B.A.B.A.B.A.B.B.B.B#W.B#W.B#L.B#T#W#L#W#L#T#L#T#L#T#X#T#P#L#P#T#P#X#P#P#P#P#Z#P#Z#P#R#P#R#Z#M#R#M#R#M#R#M#R#J#R#J#Y#J#J#J#J#J#J#1#J#U#J#U#1#E#U",
+"#C#C#C#F#C#F#C#F#C#F#H#F#H#F#H#t#H#t#F#K#F#K#t#K#t#K#t#K#K#K#K#x#K#x#K#I#K#Q#x#O#x#O#x#O#x#O#Q#j#Q#j#Q#j#Q#j#Q#j#Q#q#j#q#k#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#z#q#y#q#z#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#D#z#D#z#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#z#D#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#z#q#y#q#z#q#y#q#z#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j"
+"#q#j#q#j#q#k#q#j#q#k#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#k.s#j.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.r.p.p.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.q.q.o.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.t.u.t.t.t.u.t.u.t.v.t.v.t.v.t.v.w.v.v.v.w.v.v.v.v.x.v.x.v.x.v.x.v.x.x.x.x.y.x.y.x.A.x.A.x.A.x.A.z.A.z.A.z.A.A.A.A.B.A.B.A.B.A.B.B#W.B#W.B#V.B#L.B#L#W#L#W#L#T#L#T#X#L#X#T#P#L#P#L#P#X#P#P#P#P#P#P#0#P#M#P#M#Z#M#R#M#R#M#R#Y#M#J#R#J#Y#J#J#J#J#J#J#1#J#U#J#E#1#E#U#E#U#E",
+"#F#C#F#C#F#p#F#H#F#F#F#H#t#F#K#F#K#F#K#F#K#t#K#K#K#K#K#K#I#K#I#K#O#K#O#K#O#x#O#x#O#Q#O#Q#j#O#j#Q#j#O#j#O#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#w#q#q#q#w#q#z#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#y#y#z#y#y#y#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#D#y#y#z#y#y#y#z#y#y#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#q#q#w#q#q#q#q#q#q"
+"#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#j#j#j#j#k#j#j#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#b.s#b.s.s.s#b.s.s.s.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p.p.p.q.p.q.p.q.p.q.p.q.p.q.o.q.o.q.q.q.o.q.q.t.q.t.q.t.q.t.q.t.t.t.t.u.t.t.t.v.t.v.t.v.t.v.t.v.w.v.w.v.w.v.v.v.w.x.v.x.v.x.v.x.x.x.x.x.x.x.x.A.x.z.x.A.x.A.x.A.z.A.z.A.z.A.A.B.z.B.A.B.A.B.B#W.B#W.B#W.B#T#W#L#W#L#W#L#T#L#T#X#T#X#T#P#T#P#X#P#X#P#P#P#P#P#P#Z#P#R#P#M#P#M#R#M#R#M#R#Y#R#J#R#J#R#J#J#J#J#J#J#1#J#U#J#E#1#U#U",
+"#C#B#C#H#C#F#C#F#p#F#H#F#H#F#H#F#F#t#H#K#F#K#F#K#t#K#t#K#K#K#K#K#K#x#K#x#K#O#K#Q#x#O#x#O#x#O#Q#O#Q#j#Q#j#Q#j#Q#j#j#q#k#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#z#q#y#q#z#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#D#z#D#z#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#z#D#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#z#q#y#q#z#q#y#q#z#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j"
+"#q#j#q#j#q#j#q#k#q#j#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#k.s#b.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.r.s.p.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.r.q.o.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.u.t.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.w.v.w.v.v.v.v.v.v.x.v.x.v.x.v.x.x.x.x.y.x.x.x.y.x.A.x.A.x.A.x.A.z.A.z.A.A.A.z.A.A.B.A.B.A.B.A#W.B#W.B#V.B#W.B#L#W#L#W#L#W#L#T#X#T#X#T#X#L#P#L#P#X#P#X#P#P#P#P#Z#P#Z#P#M#Z#M#Z#M#R#M#R#Y#R#Y#R#J#M#J#M#J#J#J#J#1#J#1#J#E#J#E#1#E#U#E#U#3",
+"#F#C#F#C#F#C#F#H#F#H#F#F#F#F#t#F#K#F#K#t#K#t#K#K#K#K#2#K#K#K#I#K#O#K#O#x#O#x#O#x#O#Q#O#Q#O#Q#j#O#j#Q#j#j#q#O#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#w#q#q#q#w#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#y#y#z#y#y#y#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#D#y#y#z#y#y#y#z#y#y#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#q#q#w#q#q#q#w#q#q#q#q"
+"#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#j#j#j#k#j#j#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#b.s.s.s#b.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.r.p.p.p.r.p.q.p.q.p.q.p.q.p.q.o.q.o.q.q.q.o.q.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.t.t.u.t.v.t.v.t.v.t.v.t.v.w.v.w.v.v.v.w.x.v.x.v.x.v.x.v.x.x.x.x.x.x.y.x.z.x.A.x.A.x.A.x.A.z.A.z.A.z.A.z.B.A.B.A.B.A#W.B#W.B#W.B#W.B#L.B#T#W#L#W#L#T#X#T#X#T#X#T#P#X#P#4#P#X#P#P#P#P#Z#P#Z#P#R#P#R#Z#M#R#M#R#Y#R#Y#R#J#R#J#Y#J#J#J#J#1#J#1#J#U#J#U#1#E#U",
+"#C#C#C#F#C#F#C#F#C#F#p#F#H#F#H#F#H#F#F#K#H#K#F#K#F#K#t#K#K#K#K#x#K#x#K#I#K#Q#K#O#K#O#x#O#x#O#x#j#Q#O#Q#j#Q#j#Q#j#Q#q#j#q#k#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#y#q#z#q#y#q#z#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#D#z#D#z#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#z#D#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#z#q#y#q#z#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j"
+"#q#j#q#j#q#k#q#j#q#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#k.s#b.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.r.p.p.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.o.q.q.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.w.v.v.v.w.v.v.v.v.x.v.x.v.x.v.x.x.x.x.x.x.y.x.y.x.A.x.A.x.A.x.A.z.A.A.A.z.A.A.B.A.B.A.B.A#W.A#W.B#W.B#W.B#V#W#L#W#L#W#L#W#X#T#X#T#X#L#X#T#P#X#P#X#P#X#P#P#Z#P#Z#P#M#P#M#P#M#Z#M#R#M#R#M#R#Y#M#J#M#J#Y#J#J#J#J#J#J#1#J#U#J#E#1#E#U#3#U#3",
+"#F#C#F#C#F#p#F#H#F#F#F#H#F#F#t#F#K#F#K#F#K#t#K#K#K#K#K#K#I#K#x#K#O#K#O#K#O#x#O#x#O#x#O#Q#j#Q#j#Q#j#O#j#O#q#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#w#q#q#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#y#y#z#y#y#D#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#D#y#y#z#y#y#y#z#y#y#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#z#q#w#q#q#q#w#q#q#q#q#q#q"
+"#q#q#j#q#j#q#j#q#j#q#j#q#j#q#j#j#k#j#j#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#b.s.s.s#b.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p.r.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.u.t.t.t.v.t.v.t.v.t.v.t.v.w.v.w.v.w.v.v.x.v.x.v.x.v.x.v.x.x.x.x.x.x.x.x.A.x.A.x.A.x.A.x.A.z.A.z.A.z.A.A.B.z.B.A#W.A#W.B#W.B#W.B#W.B#T#W#L#W#L#W#L#T#L#T#X#T#X#T#P#T#P#X#P#X#P#P#Z#P#Z#P#Z#P#R#Z#M#Z#M#R#M#R#M#R#Y#R#J#Y#J#5#J#J#J#J#1#J#1#J#U#1#E#1#U#U",
+"#C#6#C#7#C#F#C#F#C#F#C#F#H#F#H#F#H#t#H#K#F#K#F#K#t#K#t#K#K#K#K#K#K#x#K#x#K#O#K#Q#x#O#x#O#x#O#x#O#Q#j#Q#j#Q#j#Q#j#Q#j#Q#q#j#q#k#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#y#q#z#q#y#q#z#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#D#z#D#z#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#z#D#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#z#q#y#q#z#q#y#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j"
+"#q#j#q#k#q#j#q#k#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#k.s#j.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.r.s.p.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.q.q.o.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.t.u.t.t.t.u.t.u.t.v.t.v.t.v.t.v.t.v.v.v.w.v.v.v.v.v.v.x.v.x.v.x.v.x.x.x.x.y.x.x.x.y.x.A.x.A.x.A.x.A.z.A.z.A.A.A.A.B.A.B.A#W.A#W.A#W.B#W.B#V#W#W#W#L#W#L#W#L#W#L#T#X#T#X#T#X#X#P#X#P#X#P#X#P#P#P#P#0#P#R#P#M#Z#M#Z#M#R#M#R#Y#R#Y#R#J#Y#J#Y#J#J#J#J#1#J#1#J#E#1#E#1#E#U#E#U#3",
+"#8#C#F#C#F#C#F#H#F#H#F#F#F#F#t#F#K#F#K#F#K#F#K#t#K#K#2#K#K#K#I#K#I#K#O#K#O#K#O#x#O#x#O#Q#O#Q#j#O#j#Q#j#O#j#O#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#w#q#q#q#w#q#q#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#y#y#z#y#y#y#z#y#y#D#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#D#y#y#z#y#y#y#z#y#y#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#w#q#q#q#w#q#q#q#q#q#q#q#q"
+"#q#q#j#q#j#q#j#q#j#q#j#q#j#q#j#j#j#j#k#j#j#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#b.s#b.s.s.s#b.s.s.s.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p.p.p.r.p.q.p.q.p.q.p.q.p.q.o.q.o.q.q.q.o.q.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.t.t.u.t.v.t.v.t.v.t.v.w.v.w.v.w.v.v.v.w.x.v.x.v.x.v.x.v.x.x.x.x.x.x.y.x.z.x.A.x.A.x.A.z.A.z.A.z.A.z.A.z.B.A.B.A.B.A#W.B#W.B#W.B#W#W#L#W#T#W#L#W#L#T#X#T#X#T#X#T#P#X#P#4#P#X#P#P#P#P#Z#P#R#P#M#P#R#Z#M#R#M#R#Y#R#Y#R#J#R#J#Y#J#J#J#J#1#J#U#J#U#1#U#1#E#U",
+"#C#C#C#B#C#F#C#F#C#F#p#F#H#F#H#F#H#F#F#t#H#K#F#K#F#K#t#K#t#K#K#K#K#K#K#x#K#x#K#O#K#Q#x#O#x#O#x#O#Q#O#Q#j#Q#j#Q#j#Q#j#j#q#k#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#z#q#y#q#z#q#y#q#z#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#D#z#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#z#D#z#D#z#D#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#z#q#y#q#z#q#y#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j"
+"#q#k#q#j#q#k#q#j#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#k.s#b.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.r.s.p.p.r.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.r.q.o.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.u.t.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.w.v.v.v.v.v.v.x.v.x.v.x.v.x.v.x.x.y.x.x.x.y.x.A.x.A.x.A.x.A.x.A.z.A.A.A.z.A.A.B.A.B.A.B.A#W.B#W.B#W.B#W.B#V#W#L#W#L#W#L#W#X#T#X#T#X#L#X#L#P#X#P#X#P#P#P#P#Z#P#Z#P#M#Z#M#Z#M#Z#M#R#Y#R#Y#R#Y#M#J#M#J#Y#J#J#1#J#1#J#E#J#U#1#E#1#E#U#3#U#3",
+"#F#C#F#C#F#C#F#C#F#F#F#H#F#F#F#F#K#F#K#F#K#t#K#t#K#K#K#K#2#K#K#K#I#K#O#K#O#x#O#x#O#x#O#Q#O#Q#O#Q#j#O#j#Q#j#O#q#O#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#w#q#q#q#w#q#z#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#y#y#z#y#y#y#z#y#y#D#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#D#y#y#z#y#y#y#z#y#y#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#w#q#q#q#w#q#q#q#q#q#q#q#q#q#q"
+"#j#q#j#q#j#q#j#q#j#q#j#q#j#j#j#j#k#j#j#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#b.s.s.s#b.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.p.p.p.r.p.p.p.r.p.q.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.u.t.w.t.v.t.v.t.v.t.v.w.v.w.v.w.v.w.v.v.x.v.x.v.x.v.x.x.x.x.x.x.x.x.x.x.A.x.A.x.A.x.A.z.A.z.A.z.A.z.B.A.B.z.B.A#W.A#W.B#W.B#W#W#W#W#T#W#L#W#L#W#X#T#X#T#X#T#X#4#P#4#P#X#P#X#P#P#Z#P#Z#P#R#P#R#Z#M#Z#M#R#Y#R#Y#R#Y#R#J#Y#J#5#J#J#1#J#1#J#U#J#U#1#E#1#E#U",
+"#C#6#C#C#C#F#C#F#C#F#C#F#H#F#H#F#H#F#H#F#F#K#H#K#F#K#F#K#t#K#K#K#K#x#K#x#K#I#K#Q#K#O#K#O#x#O#x#O#x#O#Q#O#Q#j#Q#j#Q#j#Q#j#j#q#k#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#z#q#y#q#z#q#y#q#z#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#D#z#D#z#D#z#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#z#D#z#D#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#z#q#y#q#z#q#y#q#z#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j"
+"#q#j#q#k#q#j#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#k.s#b.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.r.p.p.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.q.q.o.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.t.u.t.t.t.u.t.u.t.v.t.v.t.v.t.v.t.v.v.v.w.v.v.v.v.x.v.x.v.x.v.x.v.x.x.x.x.y.x.y.x.A.x.A.x.A.x.A.x.A.z.A.z.A.A.A.A.B.A.B.A#W.A#W.B#W.B#W.B#V#W#L#W#L#W#L#W#X#T#X#T#X#T#X#T#P#X#P#X#P#X#P#P#Z#P#Z#P#0#P#R#P#M#Z#M#Z#M#R#M#R#Y#M#J#R#J#Y#J#Y#J#J#J#J#1#J#U#J#E#1#E#1#E#U#3#U#3",
+"#6#C#F#C#F#C#F#p#F#H#F#F#F#H#t#F#t#F#K#F#K#F#K#t#K#K#K#K#K#K#I#K#I#K#O#K#O#K#O#x#O#x#O#x#O#Q#j#Q#j#Q#j#O#j#Q#j#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#w#q#q#q#w#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#y#y#z#y#y#y#z#y#y#D#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#D#y#y#z#y#y#y#z#y#y#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#q#q#w#q#q#q#w#q#q#q#q#q#q#q#q"
+"#j#q#j#q#j#q#j#q#j#q#j#q#j#j#k#j#j#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#b.s.s.s#b.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p.r.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.o.t.q.t.q.t.q.t.q.t.t.t.t.t.t.u.t.t.t.v.t.v.t.v.t.v.t.v.w.v.w.v.w.v.v.v.w.x.v.x.v.x.v.x.x.x.x.x.x.x.x.y.x.z.x.A.x.A.x.A.z.A.z.A.z.A.A.B.z.B.A#W.A#W.B#W.B#W.B#W.B#W#W#L#W#T#W#X#W#X#T#X#T#X#T#X#T#P#X#P#X#P#P#Z#P#Z#P#Z#P#R#Z#M#Z#R#Z#M#R#M#R#Y#R#J#5#J#5#J#Y#J#J#J#J#1#J#U#1#U#1#U#1#3#U",
+"#C#C#C#6#C#7#C#F#C#F#C#F#C#F#H#F#H#F#H#t#H#K#F#K#F#K#t#K#t#K#K#K#K#K#K#x#K#x#K#O#K#Q#x#O#x#O#x#O#x#O#Q#j#Q#j#Q#j#Q#j#Q#j#Q#q#j#q#k#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#z#q#y#q#z#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#D#z#D#z#D#z#D#z#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#z#D#z#D#z#D#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#z#q#y#q#z#q#y#q#z#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j"
+"#q#k#q#j#q#k#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#k.s#j.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.r.s.p.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.q.q.o.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.u.t.t.t.u.t.u.t.v.t.v.t.v.t.v.t.v.w.v.w.v.v.v.v.v.v.x.v.x.v.x.v.x.v.x.x.y.x.x.x.y.x.A.x.A.x.A.x.A.x.A.z.A.A.A.z.A.A.B.A#W.A#W.A#W.B#W.B#V#W#W#W#L#W#L#W#L#W#L#T#X#T#X#T#X#X#P#X#P#X#P#X#Z#P#Z#P#Z#P#Z#P#M#Z#M#Z#M#Z#M#R#Y#R#Y#R#J#Y#J#Y#J#Y#J#J#1#J#1#J#E#1#U#1#E#1#E#U#3#U#3",
+"#6#C#8#C#F#C#F#C#F#H#F#H#F#F#F#F#t#F#K#F#K#F#K#F#K#t#K#K#2#K#K#K#I#K#I#K#O#K#O#K#O#x#O#x#O#Q#O#Q#j#O#j#Q#j#O#j#O#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#w#q#q#q#w#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#y#y#z#y#y#y#z#y#y#y#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#D#y#y#z#y#y#y#z#y#y#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#q#q#w#q#q#q#w#q#q#q#q#q#q#q#q#j#q"
+"#j#q#j#q#j#q#j#q#j#q#j#j#k#j#j#j#k#j#j#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#b.s#b.s.s.s#b.s.s.s.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p.p.p.r.p.q.p.q.p.q.p.q.p.q.o.q.o.q.q.q.o.q.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.t.t.u.t.v.t.v.t.v.t.v.t.v.w.v.w.v.w.v.w.x.v.x.v.x.v.x.v.x.x.x.x.x.x.x.x.z.x.A.x.A.x.A.x.A.z.A.z.A.z.A.z.B.A#W.A#W.A#W.B#W.B#W.B#W#W#T#W#T#W#L#W#L#T#X#T#X#T#X#T#P#X#P#4#P#X#P#P#P#P#Z#P#Z#P#R#Z#R#Z#M#Z#M#R#Y#R#Y#R#J#R#J#Y#J#5#J#J#1#J#1#J#U#J#U#1#E#U#E#U",
+"#C#C#C#C#C#F#C#F#C#F#C#F#p#F#H#F#H#F#H#F#F#t#H#K#F#K#F#K#t#K#t#K#K#K#K#K#K#x#K#x#K#O#K#Q#x#O#x#O#x#O#Q#O#Q#j#Q#j#Q#j#Q#j#Q#j#Q#q#j#q#k#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#z#q#z#q#y#q#z#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#D#z#D#z#D#z#D#z#D#z#D#z#D#z#D#z#D#z#D#z#D#z#D#z#D#z#D#z#D#z#D#z#D#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#z#q#y#q#z#q#y#q#z#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#k"
+"#q#j#q#k#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#k.s#j.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.r.s.p.p.r.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.r.q.o.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.t.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.w.v.v.v.w.v.v.v.v.x.v.x.v.x.v.x.x.x.x.x.x.y.x.y.x.A.x.A.x.A.x.A.z.A.z.A.z.A.A.A.A#W.A#W.A#W.A#W.B#W#W#W#W#V#W#L#W#L#W#L#W#X#T#X#T#X#L#X#T#P#X#P#X#P#X#P#P#Z#P#Z#P#0#Z#R#Z#M#Z#M#Z#Y#R#Y#R#Y#M#J#R#J#Y#J#Y#1#J#1#J#1#J#U#1#E#1#E#U#3#U#3#U#3",
+"#6#C#F#C#F#C#F#C#F#C#F#F#F#H#F#F#F#F#K#F#K#F#K#t#K#t#K#K#K#K#2#K#K#K#I#K#O#K#O#x#O#x#O#x#O#x#O#Q#O#Q#j#O#j#Q#j#O#q#O#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#w#q#q#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#y#y#z#y#y#y#z#y#y#y#z#D#y#D#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#y#y#y#z#y#y#y#z#y#y#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#z#q#w#q#q#q#w#q#q#q#q#q#q#q#q#q#q#j#q"
+"#j#q#j#q#j#q#j#q#j#q#j#j#j#j#k#j#j#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#j.s#b.s.s.s#b.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.r.p.p.p.r.p.r.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.u.t.t.t.v.t.v.t.v.t.v.t.v.w.v.w.v.w.v.v.x.v.x.v.x.v.x.v.x.x.x.x.x.x.x.x.A.x.A.x.A.x.A.x.A.z.A.z.A.z.A.A.B.z.B.A#W.A#W.B#W.B#W#W#W#W#T#W#L#W#L#W#X#T#X#T#X#T#X#4#P#4#P#X#P#X#P#P#Z#P#Z#P#Z#P#R#Z#M#Z#R#Z#Y#R#Y#R#Y#R#J#5#J#5#J#Y#1#J#1#J#1#J#U#1#U#1#U#U#3#U",
+"#C#C#C#6#C#C#C#F#C#F#C#F#C#F#H#F#H#F#H#F#H#F#F#K#H#K#F#K#F#K#t#K#K#K#K#K#K#K#K#I#K#Q#K#O#K#O#x#O#x#O#x#O#Q#O#Q#j#Q#j#Q#j#Q#j#j#q#k#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#y#q#z#q#y#q#z#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#D#z#D#z#D#z#D#z#D#z#D#z#D#z#D#z#D#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#z#q#y#q#z#q#y#q#z#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#k#q#j"
+"#q#k#q#j#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#k.s#b.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.r.p.p.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.q.q.o.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.t.u.t.t.t.u.t.u.t.v.t.v.t.v.t.v.t.v.v.v.w.v.v.v.v.v.v.x.v.x.v.x.v.x.x.x.x.y.x.x.x.y.x.A.x.A.x.A.x.A.z.A.z.A.A.A.A#W.A.B.A#W.A#W.A#W.B#W.B#V#W#W#W#L#W#L#W#X#W#X#T#X#T#X#T#X#X#P#X#P#X#P#X#Z#P#Z#P#Z#P#Z#P#M#Z#M#Z#M#R#M#R#Y#R#Y#R#J#Y#J#Y#J#Y#J#J#1#J#1#J#E#1#U#1#E#U#3#U#3#U#3",
+"#6#C#8#C#F#C#F#C#F#p#F#H#F#F#F#H#t#F#K#F#K#F#K#F#K#t#K#K#K#K#K#K#I#K#x#K#I#K#O#K#O#x#O#x#O#x#O#Q#O#Q#O#Q#j#O#j#Q#j#O#q#O#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#w#q#q#q#w#q#q#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#y#D#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#D#y#D#z#y#y#y#z#y#y#y#z#y#y#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#w#q#q#q#w#q#q#q#q#q#q#q#q#q#q#j#q#j#q"
+"#j#q#j#q#j#q#j#q#j#j#j#j#k#j#j#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#b.s.s.s#b.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p.r.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.o.q.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.t.t.u.t.v.t.v.t.v.t.v.w.v.w.v.w.v.v.v.w.x.v.x.v.x.v.x.v.x.x.x.x.x.x.y.x.z.x.A.x.A.x.A.z.A.z.A.z.A.z.A.z.B.A#W.A#W.A#W.B#W#W#W#W#W#W#L#W#T#W#X#W#X#T#X#T#X#4#X#4#P#X#P#4#P#X#Z#P#Z#P#Z#P#Z#Z#R#Z#R#Z#M#R#Y#R#Y#R#Y#5#J#5#J#Y#J#Y#J#J#1#J#1#1#U#1#U#1#3#U#3#U",
+"#C#C#C#C#C#6#C#7#C#F#C#F#C#F#C#F#H#F#H#F#H#t#H#K#F#K#F#K#t#K#t#K#K#K#K#K#K#x#K#x#K#I#K#Q#K#O#K#O#x#O#x#O#Q#O#Q#O#Q#j#Q#j#Q#j#Q#j#j#q#k#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#y#q#z#q#y#q#z#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#z#q#y#q#z#q#y#q#z#q#z#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#k#q#j#q#k"
+"#q#j#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#k.s#j.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.r.p.p.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.q.q.o.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.u.t.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.w.v.v.v.v.v.v.x.v.x.v.x.v.x.v.x.x.y.x.x.x.y.x.A.x.A.x.A.x.A.x.A.z.A.A.A.z.A.A.B.A#W.A#W.A#W.A#W.B#W#W#W#W#V#W#L#W#X#W#X#W#X#T#X#T#X#X#X#4#P#X#P#X#Z#X#Z#P#Z#P#Z#P#0#Z#M#Z#M#Z#M#R#Y#R#Y#R#Y#Y#J#5#J#Y#J#J#1#J#1#J#1#1#U#1#E#1#E#U#3#U#3#U#A",
+"#6#C#6#C#8#C#F#C#F#C#F#H#F#H#F#F#F#F#t#F#K#F#K#F#K#F#K#t#K#K#2#K#K#K#I#K#I#K#O#K#O#K#O#x#O#x#O#Q#O#Q#j#O#j#Q#j#O#j#O#q#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#w#q#q#q#w#q#q#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#y#y#z#y#y#y#z#y#y#D#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#D#y#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#w#q#q#q#w#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q"
+"#j#q#j#q#j#q#j#q#j#j#k#j#j#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#j.s#b.s#b.s.s.s#b.s.s.s.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p.p.p.r.p.q.p.q.p.q.p.q.p.q.o.q.o.q.q.q.o.q.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.t.t.u.t.w.t.v.t.v.t.v.t.v.w.v.w.v.w.v.w.v.v.x.v.x.v.x.v.x.x.x.x.x.x.x.x.x.x.A.x.A.x.A.x.A.z.A.z.A.z.A.z.A.A#W.z#W.A#W.A#W.B#W.B#W#W#W#W#T#W#X#W#X#W#X#T#X#T#X#T#X#4#P#4#P#X#Z#X#Z#P#Z#P#Z#Z#Z#Z#R#Z#M#Z#M#R#Y#R#Y#R#Y#R#J#5#J#5#J#J#1#J#1#J#1#J#U#1#E#1#U#U#3#U",
+"#9#C#C#C#C#C#C#F#C#F#C#F#C#F#p#F#H#F#H#F#H#F#F#t#H#K#F#K#F#K#t#K#t#K#K#K#K#K#K#x#K#x#K#O#K#Q#x#O#x#O#x#O#x#O#Q#j#Q#j#Q#j#Q#j#Q#j#Q#q#j#q#k#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#y#q#z#q#y#q#z#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#z#q#y#q#z#q#y#q#z#q#z#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#k#q#j"
+"#q#k#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#k.s#j.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.r.s.p.p.r.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.r.q.o.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.t.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.w.v.v.v.w.v.v.v.v.x.v.x.v.x.v.x.v.x.x.x.x.y.x.y.x.A.x.A.x.A.x.A.x.A.z.A.z.A.A.A.A#W.A#W.A#W.A#W.B#W#W#W#W#V#W#V#W#X#W#L#W#X#W#X#T#X#4#X#4#X#X#P#X#P#X#P#X#Z#P#Z#P#0#Z#R#Z#M#Z#M#Z#Y#R#Y#R#Y#R#Y#5#J#Y#J#Y#1#J#1#J#1#J#1#1#E#1#E#1#3#U#3#U#3a.#A",
+"#6#C#6#C#F#C#F#C#F#C#F#7#F#F#F#H#F#F#F#F#K#F#K#F#K#F#K#F#K#K#K#K#2#K#K#K#I#K#O#K#O#K#O#K#O#x#O#x#O#Q#O#Q#j#O#j#Q#j#O#j#O#q#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#w#q#q#q#w#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#y#y#z#y#y#y#z#y#y#y#z#D#y#D#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#D#y#D#z#y#y#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#w#q#q#q#w#q#q#q#w#q#q#q#q#q#q#q#q#j#q#j#q#j#q"
+"#j#q#j#q#j#q#j#j#k#j#j#j#k#j#j#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#b.s#b.s.s.s#b.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.r.p.p.p.r.p.r.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.u.t.t.t.v.t.v.t.v.t.v.t.v.w.v.w.v.w.v.v.x.w.x.v.x.v.x.v.x.x.x.x.x.x.x.x.y.x.z.x.A.x.A.x.A.z.A.z.A.z.A.A#W.z#W.A#W.A#W.A#W.B#W#W#W#W#W#W#L#W#T#W#X#W#X#T#X#T#X#4#X#4#P#X#P#4#P#X#Z#P#Z#P#Z#P#R#Z#M#Z#R#Z#Y#R#Y#R#Y#R#Y#5#J#5#J#Y#1#J#1#J#1#J#1#1#U#1#U#1#3#U#3#U",
+"#C#C#C#C#C#6#C#C#C#F#C#F#C#F#C#F#H#F#H#F#H#F#H#F#F#K#H#K#F#K#F#K#t#K#K#K#K#K#K#K#K#x#K#x#K#O#K#O#x#O#x#O#x#O#Q#O#Q#j#Q#j#Q#j#Q#j#Q#j#Q#q#j#q#k#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#z#q#y#q#z#q#y#q#z#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#z#q#y#q#z#q#y#q#z#q#z#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#k#q#j#q#k"
+"#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#k.s#b.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.r.p.p.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.q.q.o.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.t.u.t.t.t.u.t.u.t.v.t.v.t.v.t.v.t.v.v.v.w.v.v.v.v.v.v.x.v.x.v.x.v.x.x.x.x.y.x.x.x.y.x.A.x.A.x.A.x.A.z.A.z.A.A.A.za#.A#W.A#W.A#W.A#W#W#W#W#V#W#W#W#L#W#L#W#X#W#X#T#X#T#X#T#X#X#P#X#P#X#P#X#Z#P#Z#P#Z#Z#Z#Z#M#Z#M#Z#Y#Z#Y#R#Y#R#Y#R#Y#Y#J#Y#J#Y#J#J#1#J#1#J#1#1#U#1#E#1#3#U#3#U#3#U#A",
+"#C#C#6#C#8#C#F#C#F#C#F#p#F#H#F#F#F#H#F#F#F#F#K#F#K#F#K#t#K#t#K#K#K#K#I#K#x#K#I#K#O#K#O#x#O#x#O#x#O#Q#O#Q#O#Q#j#O#j#Q#j#O#j#O#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#w#q#q#q#w#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#y#y#z#D#y#D#z#D#y#D#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#D#y#D#z#y#y#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#q#q#w#q#q#q#w#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q"
+"#j#q#j#q#j#q#j#j#j#j#k#j#j#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#j.s#b.s.s.s#b.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p.r.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.o.q.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.t.t.u.t.v.t.v.t.v.t.v.t.v.w.v.w.v.v.v.w.x.v.x.v.x.v.x.v.x.x.x.x.x.x.y.x.z.x.A.x.A.x.A.x.A.z.A.z.A.za#.z#W.A#W.A#W.A#W.B#W#W#W#W#W#W#W#W#T#W#X#W#X#W#X#T#X#4#X#4#X#4#P#4#P#X#Z#P#Z#P#Z#P#Z#Z#R#Z#R#Z#Y#Z#Y#R#Y#R#Y#5#Y#5#J#Y#J#5#1#J#1#J#1#1#U#1#U#1#3#1a.#U#3#U",
+"#9#C#C#C#C#C#C#6#C#8#C#F#C#F#C#F#C#F#H#F#H#F#H#t#H#K#F#K#F#K#F#K#F#K#t#K#K#K#K#x#K#x#K#I#K#Q#K#O#K#O#x#O#x#O#x#O#Q#O#Q#j#Q#j#Q#j#Q#j#j#q#Q#q#j#q#k#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#z#q#y#q#z#q#y#q#z#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#z#q#y#q#z#q#y#q#z#q#z#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#k#q#j#q#k#j#k"
+"#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#k.s#b.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.r.p.p.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.q.q.o.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.u.t.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.w.v.v.v.v.v.v.x.v.x.v.x.v.x.v.x.x.x.x.x.x.y.x.y.x.A.x.A.x.A.x.A.z.A.z.A.za#.Aa#.A#W.A#W.A#Wa##W#W#W#W#W#W#V#W#L#W#X#W#X#W#X#T#X#T#X#X#X#4#P#X#P#X#Z#X#Z#P#Z#P#Z#P#0#Z#R#Z#M#Z#M#Z#Y#R#Y#R#Y#Y#J#5#J#Y#J#Y#1#J#1#J#1#1#U#1#E#1#E#1#3#U#3#U#3a.#A",
+"#6#C#6#C#6#C#8#C#F#C#F#C#F#H#F#H#F#F#F#F#t#F#K#F#K#F#K#F#K#t#K#K#K#K#K#K#I#K#I#K#O#K#O#K#O#x#O#x#O#x#O#Q#O#Q#O#Q#j#O#j#Q#j#O#q#O#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#w#q#q#q#w#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#y#y#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#q#q#w#q#q#q#w#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q"
+"#j#q#j#q#j#j#j#j#k#j#j#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#b.s.s.s#b.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p.p.p.r.p.q.p.q.p.q.p.q.p.q.o.q.o.q.q.q.o.q.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.t.t.u.t.w.t.v.t.v.t.v.t.v.w.v.w.v.w.v.w.v.v.x.v.x.v.x.v.x.v.x.x.x.x.x.x.x.x.A.x.A.x.A.x.A.x.A.z.A.za#.z.A.A#W.z#W.A#W.A#W#W#W#W#W#W#W#W#T#W#X#W#X#W#X#T#X#4#X#4#X#4#P#4#P#X#Z#X#Z#P#Z#P#Z#Z#Z#Z#R#Z#M#Z#R#Z#Y#R#Y#R#Y#R#J#5#J#5#J#Y#1#J#1#J#1#1#U#1#U#1#U#1#3#U#3a.",
+"aa#C#9#C#C#C#C#C#C#F#C#F#C#F#C#F#p#F#H#F#H#F#H#F#F#t#H#K#F#K#F#K#t#K#t#K#K#K#K#K#K#x#K#x#K#I#K#Q#K#O#K#O#x#O#x#O#Q#O#Q#O#Q#j#Q#j#Q#j#Q#j#j#q#k#q#j#q#k#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#z#q#y#q#z#q#y#q#z#q#z#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#k#q#j#q#k#q#j#j#k"
+"#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#k.s#j.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.r.s.p.p.r.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.r.q.o.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.t.t.t.u.t.u.t.u.t.u.t.v.t.v.t.v.t.v.w.v.v.v.w.v.v.v.v.x.v.x.v.x.v.x.v.x.x.x.x.y.x.y.x.A.x.A.x.A.x.A.x.A.z.A.za#.Aa#.A#W.A#W.A#W.A#W.A#W#W#W#W#V#W#W#W#X#W#X#W#X#W#X#T#X#4#X#4#X#X#P#X#Z#X#Z#X#Z#P#Z#P#Z#Z#Z#Z#M#Z#M#Z#Y#Z#Y#R#Y#5#Y#5#J#Y#J#Y#1#Y#1#J#1#J#1#1#E#1#U#1#3#1#3#U#3a.#3a.#A",
+"#C#C#6#C#6#C#F#C#F#C#F#C#F#C#F#F#F#H#F#F#F#F#K#F#K#F#K#F#K#F#K#K#K#K#2#K#K#K#I#K#I#K#O#K#O#K#O#x#O#x#O#Q#O#Q#j#Q#j#Q#j#O#j#Q#j#j#q#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#w#q#q#q#w#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#q#q#w#q#q#q#w#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q"
+"#j#q#j#j#j#j#k#j#j#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#j.s#b.s#b.s.s.s#b.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.r.p.p.p.r.p.q.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.u.t.t.t.v.t.v.t.v.t.v.t.v.w.v.w.v.w.v.v.v.w.x.v.x.v.x.v.x.x.x.x.x.x.x.x.y.x.z.x.A.x.A.x.A.z.A.z.A.z.A.za#.z#W.A#W.A#Wa##W#W#W#W#W#W#W#W#X#W#4#W#X#W#X#T#X#T#X#4#X#4#P#X#Z#4#Z#X#Z#P#Z#P#Z#Z#Z#Z#R#Z#R#Z#Y#Z#Y#R#Y#R#Y#5#J#5#J#Y#1#5#1#J#1#J#1#1#U#1#U#1#3#U#3#U#3a.",
+"aa#C#9#C#C#C#C#6#C#C#C#F#C#F#C#F#C#F#H#F#H#F#H#F#H#F#F#K#H#K#F#K#F#K#t#K#K#K#K#K#K#K#K#x#K#x#K#O#K#Q#x#O#x#O#x#O#x#O#Q#j#Q#j#Q#j#Q#j#Q#j#Q#j#j#q#k#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#z#q#y#q#z#q#y#q#z#q#z#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#k#q#j#q#k#q#j#j#k#j#k"
+"#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#k.s#j.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.p.r.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.q.q.o.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.t.u.t.t.t.u.t.u.t.v.t.v.t.v.t.v.t.v.w.v.w.v.v.v.v.v.v.x.v.x.v.x.v.x.v.x.x.y.x.x.x.y.x.A.x.A.x.A.x.A.x.A.za#.A.A.za#.A#W.A#W.A#W.A#W#W#W#W#W#W#W#Wab#W#X#W#X#W#X#W#X#4#X#4#X#X#X#4#P#X#P#X#Z#X#Z#P#Z#Z#Z#Z#0#Z#M#Z#Y#Z#Y#R#Y#R#Y#R#Y#Y#J#5#J#Y#1#Y#1#J#1#J#1#1#U#1#E#1#3#1#3#U#3#U#3a.#A",
+"#6#C#C#C#6#C#8#C#F#C#F#C#F#C#F#7#F#F#F#H#F#F#F#F#K#F#K#F#K#t#K#t#K#K#K#K#2#K#K#K#I#K#O#K#O#K#O#K#O#x#O#x#O#Q#O#Q#j#O#j#Q#j#O#j#O#q#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#w#q#q#q#w#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#q#q#w#q#q#q#w#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q"
+"#j#q#j#j#k#j#j#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#b.s#b.s.s.s#b.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.r.p.p.p.r.p.r.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.o.q.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.t.t.u.t.v.t.v.t.v.t.v.t.v.w.v.w.v.v.v.w.x.v.x.v.x.v.x.v.x.x.x.x.x.x.x.x.x.x.A.x.A.x.A.x.A.z.A.z.A.za#.z#W.A#W.z#Wa##W.A#W#W#W#W#W#W#W#W#T#W#X#W#X#W#X#T#X#4#X#4#X#4#P#4#P#X#Z#X#Z#P#Z#P#Z#Z#Z#Z#R#Z#Y#Z#Y#R#Y#R#Y#5#Y#5#J#5#J#5#1#Y#1#J#1#1#1#1#U#1a.#1a.#U#3#U#3a.",
+"aa#Caa#C#C#C#C#C#C#6#C#7#C#F#C#F#C#F#C#F#H#F#H#F#H#F#H#F#F#K#F#K#F#K#F#K#t#K#K#K#K#K#K#K#K#x#K#x#K#O#K#Q#x#O#x#O#x#O#x#O#Q#j#Q#j#Q#j#Q#j#Q#j#Q#q#j#q#k#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#z#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#k#q#j#q#k#q#j#j#k#j#k#j#k"
+"#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#k.s#j.s.s.s#b.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.r.p.p.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.q.q.o.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.u.t.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.w.v.v.v.v.v.v.v.v.x.v.x.v.x.v.x.x.x.x.x.x.y.x.y.x.A.x.A.x.A.x.A.z.A.z.A.za#.Aa#.A#W.A#W.A#Wa##W#W#W#W#W#Wab#W#L#W#X#W#X#W#Xac#X#4#X#4#X#4#X#X#P#X#Z#X#Z#X#Z#Z#Z#Z#Z#Z#R#Z#M#Z#Y#Z#Y#R#Y#R#Y#5#Y#5#J#Y#J#Y#1#J#1#J#1#1#1#1#E#1#E#1#3#U#3#U#3a.#3a.#A",
+"#C#9#6#C#6#C#6#C#8#C#F#C#F#C#F#H#F#H#F#F#F#F#t#F#K#F#K#F#K#F#K#t#K#K#K#K#K#K#I#K#x#K#I#K#O#K#O#x#O#x#O#x#O#x#O#Q#O#Q#j#O#j#Q#j#O#j#O#q#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#w#q#q#q#w#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#q#q#w#q#q#q#w#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q"
+"#j#j#k#j#j#j#k#j#j#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#j.s#b.s.s.s#b.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p.p.p.q.p.q.p.q.p.q.p.q.p.q.o.q.o.q.q.q.o.q.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.t.t.u.t.w.t.v.t.v.t.v.t.v.w.v.w.v.w.v.w.v.v.x.v.x.v.x.v.x.v.x.x.x.x.x.x.x.x.A.x.z.x.A.x.A.x.A.z.A.za#.za#.A#W.z#W.A#W.A#W#W#W#W#W#W#W#W#W#W#X#W#4#W#X#W#X#4#X#4#X#4#X#4#P#X#Z#4#Z#X#Z#P#Z#Z#Z#Z#Z#Z#M#Z#5#Z#Y#R#Y#5#Y#5#Y#5#J#5#J#Y#1#J#1#J#1#1#1#1#U#1#U#1#3#U#3a.#3a.",
+"aa#Caa#C#9#C#C#C#C#C#C#F#C#F#C#F#C#F#C#F#7#F#H#F#H#F#F#t#H#K#F#K#F#K#F#K#F#K#K#K#K#K#K#x#K#x#K#I#K#Q#K#O#K#O#x#O#x#O#x#O#Q#O#Q#j#Q#j#Q#j#Q#j#Q#j#Q#q#j#q#k#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#k#q#j#q#k#q#j#j#k#j#k#j#k#j#k"
+"#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#k.s#b.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.r.p.p.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.r.q.o.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.t.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.w.v.v.v.w.v.v.v.v.x.v.x.v.x.v.x.v.x.x.x.x.y.x.x.x.y.x.A.x.A.x.A.x.A.z.A.za#.Aa#.za#.A#W.A#Wa##Wa##W#W#W#W#V#W#W#W#X#W#X#W#X#W#X#T#X#4#X#4#X#X#P#X#Z#X#Z#X#Z#P#Z#P#Z#Z#Z#Z#M#Z#M#Z#Y#Z#Y#R#Y#5#Y#5#Y#Y#J#Y#1#Y#1#J#1#1#1#1#1#1#U#1#3#1#3#U#3a.#3a.#A#3#A",
+"#6#C#C#C#6#C#6#C#F#C#F#C#F#C#F#C#F#F#F#H#F#F#F#F#t#F#K#F#K#F#K#F#K#t#K#K#K#K#K#K#I#K#I#K#O#K#O#K#O#x#O#x#O#x#O#Q#O#Q#O#Q#j#O#j#Q#j#O#j#O#q#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#w#q#q#q#w#q#q#q#w#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#q#q#w#q#q#q#w#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#j"
+"#k#j#j#j#k#j#j#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#j.s#b.s.s.s#b.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p.p.p.r.p.q.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.u.t.t.t.v.t.v.t.v.t.v.t.v.w.v.w.v.w.v.v.v.w.x.v.x.v.x.v.x.x.x.x.x.x.x.x.y.x.z.x.A.x.A.x.A.z.A.za#.za#.za#.z#W.A#W.A#Wa##W#W#W#W#W#W#W#W#X#W#4#W#X#W#Xac#X#4#X#4#X#4#X#4#Z#4#Z#X#Z#P#Z#Z#Z#Z#Z#Z#R#Z#R#Z#Y#Z#Y#R#Y#R#Y#5#Y#5#J#Y#1#5#1#J#1#J#1#1#1#1#U#1#3#1a.#U#3a.#3a.",
+"aa#Caa#C#9#C#9#C#C#6#C#C#C#F#C#F#C#F#C#F#p#F#H#F#H#F#H#F#F#t#H#K#F#K#F#K#t#K#t#K#K#K#K#K#K#x#K#x#K#I#K#Q#K#O#K#O#x#O#x#O#x#O#Q#O#Q#j#Q#j#Q#j#Q#j#k#j#Q#q#j#q#k#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#z#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#k#q#j#q#k#q#j#q#k#j#k#j#k#j#k#j#k"
+"#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#k.s#b.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.r.s.p.p.r.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.o.q.q.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.t.u.t.t.t.u.t.u.t.v.t.v.t.v.t.v.t.v.w.v.w.v.v.v.v.v.v.x.v.x.v.x.v.x.v.x.x.y.x.x.x.y.x.A.x.A.x.A.x.A.x.A.za#.Aa#.za#.A#W.A#Wa##Wa##Wa##W#W#W#W#W#Wab#W#X#W#X#W#X#W#X#4#X#4#X#X#X#4#Z#X#Z#X#Z#X#Z#P#Z#Z#Z#Z#0#Z#R#Z#Y#Z#Y#Z#Y#R#Y#5#Y#5#Y#5#1#Y#1#Y#1#J#1#J#1#1#1#1#3#1#3#1#3#U#3a.#3a.#Aa.ad",
+"#C#9#6#C#C#C#6#C#8#C#F#C#F#C#F#C#F#7#F#F#F#H#F#F#F#F#K#F#K#F#K#F#K#F#K#K#K#K#2#K#K#K#I#K#I#K#O#K#O#K#O#x#O#x#O#x#O#Q#j#Q#O#Q#j#O#j#Q#j#O#q#O#q#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#w#q#q#q#w#q#q#q#w#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#w#q#q#q#w#q#q#q#w#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#j#j#j"
+"#j#j#k#j#j#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#j.s#b.s#b.s.s.s#b.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.r.p.p.p.r.p.r.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.o.t.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.t.t.u.t.v.t.v.t.v.t.v.t.v.w.v.w.v.v.v.w.x.v.x.v.x.v.x.v.x.x.x.x.x.x.x.x.x.x.A.x.A.x.A.x.A.za#.za#.za#.za#.A#W.z#Wa##Wa##W#W#W#W#W#Wac#W#4#W#X#W#X#W#X#T#X#4#X#4#X#4#Z#4#Z#X#Z#X#Z#P#Z#Z#Z#Z#Z#Z#R#Z#Y#Z#5#Z#Y#R#Y#5#Y#5#J#5#1#5#1#Y#1#J#1#1#1#1#U#1a.#1a.#1#3#U#3a.#3a.",
+"aa#Caa#Caa#C#C#C#C#C#C#6#C#7#C#F#C#F#C#F#C#F#H#F#H#F#H#F#H#F#F#K#H#K#F#K#F#K#t#K#t#K#K#K#K#K#K#x#K#x#K#O#K#Q#x#O#K#O#x#O#x#O#x#O#Q#O#Q#j#Q#j#Q#j#Q#j#k#j#k#q#j#q#k#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#k#q#j#q#k#j#k#j#k#j#k#j#k#j#k"
+"#j#k#j#k#j.s#j.s#j.s#j.s#j.s#k.s#j.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.r.s.p.p.r.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.q.q.o.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.q.u.t.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.w.v.v.v.v.v.v.v.v.x.v.x.v.x.v.x.x.x.x.x.x.y.x.y.x.A.x.A.x.A.x.A.xa#.za#.za#.Aa#.A#Wa##Wa##Wa##W#W#W#W#W#Wab#Wac#W#X#W#X#W#Xac#X#4#X#4#X#4ae#X#Z#X#Z#X#Z#X#Z#Z#Z#Z#Z#Z#Z#Z#Y#Z#Y#Z#Y#Z#Y#R#Y#5#Y#5#J#Y#J#Y#1#Y#1#J#1#1#1#1#E#1#U#1#3#1#3#U#3a.#3a.ad#3ad",
+"#C#9#C#9#6#C#6#C#6#C#8#C#F#C#F#C#F#p#F#H#F#F#F#H#F#F#F#F#K#F#K#F#K#t#K#t#K#K#K#K#2#K#K#K#I#K#O#K#O#K#O#K#O#x#O#x#O#x#O#Q#j#Q#j#Q#j#O#j#Q#j#j#q#O#q#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#w#q#q#q#w#q#q#q#w#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#w#q#q#q#w#q#q#q#w#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#j#j#j"
+"#k#j#j#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#j.s#b.s#b.s.s.s#b.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.r.p.p.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.o.q.o.q.q.q.o.q.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.t.t.u.t.w.t.v.t.v.t.v.t.v.w.v.w.v.w.v.w.v.v.x.v.x.v.x.v.x.v.x.x.x.x.x.x.x.x.A.x.z.x.A.x.A.xa#.za#.za#.za#.A#W.z#Wa##Wa##Wa##W#W#W#Wac#Wac#W#X#W#4#W#X#W#X#4#X#4#X#4#X#4#P#X#Z#4#Z#X#Z#P#Z#Z#Z#Z#Z#Z#5#Z#5#Z#Y#Z#Y#5#Y#5#Y#5#J#5#J#Y#1#5#1#1#1#1#1#1#U#1a.#1#3#1#3a.#3a.#3a.",
+"aa#Caa#Caa#C#9#C#C#C#C#C#C#6#C#8#C#F#C#F#C#F#C#F#H#F#H#F#H#t#H#t#F#K#F#K#F#K#F#K#t#K#K#K#K#K#K#K#K#x#K#x#K#O#K#Q#x#O#x#O#x#O#x#O#Q#j#Q#O#Q#j#Q#j#Q#j#Q#j#k#j#k#q#j#q#k#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#z#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#k#q#j#q#k#j#k#j#k#j#k#j#k#j#k#j#k"
+"#j#k#j.s#j.s#j.s#j.s#j.s#k.s#j.s.s.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.r.p.p.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.q.q.o.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.t.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.w.v.v.v.w.v.v.v.v.x.v.x.v.x.v.x.v.x.x.x.x.y.x.x.x.y.x.A.x.A.x.A.xa#.za#.za#.Aa#.za#a##W.A#Wa##Wa##W#W#W#Wab#Wac#W#X#W#X#W#Xac#Xac#X#4#X#4#X#X#X#4#Z#X#Z#X#Zae#Z#Z#Z#Z#Z#Z#0#Z#Y#Z#Y#Z#Y#R#Y#5#Y#5#Y#Y#J#5#1#Y#1#Y#1#1#1#1#1#1#U#1#3#1#3#1#3a.#3a.#3a.#Aa.ad",
+"#Caa#6#9#C#C#6#C#6#C#8#C#8#C#F#C#F#C#F#H#F#H#F#F#F#F#t#F#K#F#K#F#K#F#K#t#K#K#K#K#K#K#2#K#K#K#I#K#O#K#O#x#O#K#O#x#O#x#O#Q#O#Q#j#Q#j#Q#j#O#j#Q#j#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#w#q#q#q#w#q#q#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#w#q#q#q#w#q#q#q#w#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#j#j#j#k#j"
+"#j#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#j.s#b.s#b.s.s.s#b.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p.p.p.r.p.q.p.q.p.q.p.q.p.q.o.q.o.q.q.q.o.q.q.q.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.u.t.t.t.v.t.v.t.v.t.v.t.v.w.v.w.v.w.v.v.v.w.x.v.x.v.x.v.x.x.x.x.x.x.x.x.y.x.z.x.A.x.A.xa#.x.A.za#.za#.za#.z#Wa##Wa##Wa##W#W#W#Wac#Wac#Wac#W#4#W#X#W#Xac#X#4#X#4#X#4#X#4#Z#4#Z#X#Z#X#Z#Z#Z#Z#Z#Z#Z#Z#5#Z#Y#Z#Y#R#Y#5#Y#5#Y#5#J#5#1#5#1#Y#1#J#1#1#1#1#U#1a.#1a.#U#3a.#3a.#3a.",
+"aa#9aa#Caa#Caa#C#9#C#C#C#C#C#C#F#C#F#C#F#C#F#C#F#7#F#H#F#H#F#F#t#H#K#F#K#F#K#F#K#F#K#t#K#K#K#K#K#K#K#K#x#K#x#K#O#K#Q#x#O#x#O#x#O#x#O#Q#j#Q#j#Q#j#Q#j#Q#j#Q#j#k#j#k#q#j#q#k#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#z#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#k#q#j#q#k#q#j#q#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k"
+"#j.s#j.s#j.s#j.s#j.s#k.s#j.s.s.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.r.p.p.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.r.q.o.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.q.t.t.u.t.t.t.u.t.u.t.v.t.v.t.v.t.v.t.v.v.v.w.v.v.v.v.v.v.x.v.x.v.x.v.x.v.x.x.y.x.x.x.y.x.A.x.A.x.A.xa#.xa#.za#.Aa#.za#.A#W.A#Wa##Wa##Wa##W#Wac#Wac#Wab#W#X#W#Xac#Xac#X#4#X#4#X#X#X#4#Z#X#Z#X#Z#X#Z#P#Z#Z#Z#Z#0#Z#R#Z#Y#Z#Y#Z#Y#5#Y#5#Y#5#Y#5#1#Y#1#Y#1#J#1#1#1#1#1#1#3#1a.#1#3#U#3a.#3a.#3a.ad#3ad",
+"#Caa#C#9#6#C#C#C#6#C#6#C#F#C#F#C#F#C#F#C#F#F#F#H#F#F#F#F#t#F#K#F#K#F#K#F#K#t#K#K#K#K#K#K#I#K#x#K#I#K#O#K#O#x#O#x#O#x#O#x#O#Q#O#Q#j#O#j#Q#j#O#j#Q#j#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#w#q#q#q#w#q#q#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#j#j#j#k#j#j#j"
+"#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#j.s#b.s.s.s#b.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p.p.p.r.p.q.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.u.t.t.t.u.t.v.t.v.t.v.t.v.t.v.w.v.w.v.v.v.w.x.v.x.v.x.v.x.v.x.x.x.x.x.x.x.x.x.x.A.x.A.xa#.x.A.za#.za#.za#.za#a##Waf#Wa##Wa##W#W#W#W#W#Wac#W#4#W#X#W#Xac#X#4#X#4#X#4#X#4ae#4#Z#X#Z#X#Zae#Z#Z#Z#Z#Z#Z#R#Z#Y#Z#5#Z#Y#R#Y#5#Y#5#Y#5#1#5#1#Y#1#J#1#1#1#1#1#1a.#1a.#1#3#U#3a.#3a.#Aa.",
+"aa#Caa#Caa#Caa#C#9#C#C#C#C#6#C#C#C#F#C#F#C#F#C#F#p#F#H#F#H#F#H#F#F#t#H#K#F#K#F#K#t#K#t#K#K#K#K#K#K#x#K#x#K#I#K#Q#K#O#K#O#x#O#x#O#x#O#x#O#Q#j#Q#j#Q#j#Q#j#Q#j#Q#j#j#q#k#q#j#q#k#q#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#z#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#k#q#j#q#k#q#j#q#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j.s"
+"#j.s#j.s#j.s#j.s#k.s#j.s#k.s#b.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.r.s.p.p.r.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.o.q.q.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.t.u.t.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.w.v.v.v.v.v.v.v.v.x.v.x.v.x.v.x.x.x.x.x.x.y.x.y.x.A.x.A.xa#.xa#.xa#.za#.za#.Aa#.A#Wa##Wa##Wa##Wa#ac#W#W#Wab#Wac#W#X#W#X#W#Xac#X#4#X#4#X#4ae#X#Z#X#Z#X#Z#X#Z#Z#Z#Z#Z#Z#Z#Z#Y#Z#Y#Z#Y#Z#Y#5#Y#5#Y#5ag#Y#1#Y#1#Y#1#J#1#1#1#1#1#1a.#1#3#1#3#U#3a.#3a.ad#3ada.ad",
+"#Caa#Caa#C#9#6#C#6#C#6#C#8#C#F#C#F#C#F#C#F#7#F#F#F#H#F#F#F#F#K#F#K#F#K#F#K#F#K#t#K#K#2#K#K#K#I#K#I#K#O#K#O#K#O#x#O#x#O#x#O#x#O#Q#O#Q#j#O#j#Q#j#O#j#Q#j#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#w#q#q#q#w#q#q#q#w#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#j#j#j#k#j#j#j#k#j"
+"#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#j.s#b.s.s.s#b.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.r.p.p.p.r.p.r.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.o.q.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.t.t.u.t.v.t.v.t.v.t.v.t.v.w.v.w.v.w.v.w.v.v.x.v.x.v.x.v.x.v.x.x.x.x.x.x.x.x.A.x.z.x.A.x.A.xa#.za#.za#.za#af#W.z#Wa##Wa##Wa##W#W#W#Wac#Wac#W#X#W#4ac#Xac#X#4#X#4#X#4ae#4#Z#X#Z#4#Zae#Z#Z#Z#Z#Z#Z#Z#Z#5#Z#5#Z#Y#Z#Y#5#Y#5#Y#5ag#5#1#Y#1#5#1#1#1#1#1#1ah#1a.#1#3#1a.a.#3a.#3a.ada.",
+"aa#9aa#Caa#Caa#C#9#C#C#C#C#C#C#6#C#7#C#F#C#F#C#F#C#F#H#F#H#F#H#F#H#F#F#K#H#K#F#K#F#K#t#K#t#K#K#K#K#K#K#x#K#x#K#I#K#Q#K#O#K#O#x#O#x#O#x#O#x#O#Q#j#Q#j#Q#j#Q#j#Q#j#Q#j#j#q#k#q#j#q#k#q#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#z#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#k#q#j#q#k#q#j#q#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s"
+"#j.s#j.s#j.s#k.s#j.s#k.s#b.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.r.s.p.p.r.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.q.q.o.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.q.u.t.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.w.v.v.v.w.v.v.v.v.x.v.x.v.x.v.x.v.x.x.x.x.y.x.x.x.y.x.A.xa#.xa#.xa#.za#.za#.Aa#.za#a##Wa##Wa##Wa##W#W#W#Wab#Wac#Wab#W#X#W#Xac#Xac#X#4#X#4ae#Xae#4#Z#X#Z#X#Zae#Z#Z#Z#Z#Z#Zai#Z#5#Z#Y#Z#Y#Z#Y#5#Y#5#Y#Y#J#5#1#Y#1#Y#1#1#1#1#1#1#1#1#3#1#3#1#3a.#3a.#3a.#Aa.ad#3ad",
+"#Caa#Caa#C#9#C#9#6#C#6#C#6#C#8#C#F#C#F#C#F#p#F#H#F#F#F#H#F#F#F#F#K#F#K#F#K#t#K#F#K#K#K#K#2#K#K#K#I#K#I#K#O#K#O#K#O#x#O#x#O#x#O#Q#O#Q#O#Q#j#O#j#Q#j#O#j#Q#j#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#w#q#q#q#w#q#q#q#w#q#z#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#w#q#q#q#w#q#q#q#w#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#j#j#j#k#j#j#j#k#j#k#j"
+"#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#j.s#b.s.s.s#b.s.s.s#b.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.r.p.p.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.o.q.o.q.q.q.o.q.q.t.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.u.t.t.t.v.t.v.t.v.t.v.t.v.w.v.w.v.w.v.v.v.w.x.v.x.v.x.v.x.x.x.x.x.x.x.x.y.x.z.x.A.x.A.xa#.xa#.za#.za#.za#.z#Wa##Wa##Wa##W#W#W#Wac#Wac#Wac#W#4ac#Xac#Xac#X#4#X#4ae#4ae#4#Z#4#Z#X#Z#X#Z#Z#Z#Z#Z#Zaj#Z#5#Z#Y#Z#5aj#Y#5#Y#5#Y#5#J#5#1#5#1#Y#1#1#1#1#1#1#U#1a.#1a.ah#3a.#3a.aka.ada.",
+"aa#9aa#9aa#Caa#Caa#C#9#C#C#C#C#C#C#6#C#8#C#F#C#F#C#F#C#F#H#F#H#F#H#F#H#F#F#K#H#K#F#K#F#K#t#K#t#K#K#K#K#K#K#x#K#x#K#I#K#Q#K#O#K#O#x#O#x#O#x#O#x#O#Q#j#Q#j#Q#j#Q#j#Q#j#Q#j#k#j#k#q#j#q#k#q#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#z#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#k#q#j#q#k#q#j#q#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s"
+"#j.s#j.s#j.s#j.s#k.s#b.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.r.s.p.p.r.p.p.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.q.q.o.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.t.t.t.u.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.v.v.w.v.v.v.v.v.v.x.v.x.v.x.v.x.v.x.x.y.x.x.x.y.x.A.xa#.xa#.xa#.xa#.za#.Aa#.za#a##Wa##Wa##Wa##Wa##W#Wac#Wac#Wab#W#X#W#Xac#Xac#X#4#X#4ae#4ae#4ae#X#Z#X#Zae#Zae#Z#Z#Z#Zaj#Zaj#Z#Y#Z#Y#Z#Y#5#Y#5#Y#5#Y#5#1#Y#1#Y#1ag#1#1#1#1#1#1#3#1a.#1#3ah#3a.#3a.#3a.ad#3ad#3ad",
+"#9aa#Caa#Caa#6#C#C#C#6#C#6#C#8#C#F#C#F#C#F#C#F#H#F#H#F#F#F#F#t#F#K#F#K#F#K#F#K#t#K#t#K#K#K#K#2#K#K#K#I#K#I#K#O#K#O#K#O#x#O#x#O#x#O#Q#j#Q#O#Q#j#O#j#Q#j#O#j#O#j#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#j#j#j#k#j#j#j#k#j#k#j#k#j"
+"#k#j.s#j.s#j.s#j.s#j.s#j.s#j.s#b.s#b.s#b.s.s.s#b.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.p.p.r.p.p.p.q.p.q.p.q.p.q.p.q.p.q.o.q.o.q.q.q.o.q.q.q.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.u.t.t.t.v.t.v.t.v.t.v.t.v.w.v.w.v.w.v.v.v.w.x.v.x.v.x.v.x.v.x.x.x.x.x.x.x.x.x.x.A.x.A.xa#.xa#.za#.za#.za#.za#a##Waf#Wa##Wa##W#Wac#Wac#Wac#W#4#W#X#W#Xac#Xac#X#4ae#4ae#4ae#4#Z#X#Z#4#Zae#Z#Z#Z#Zaj#Zaj#Z#5#Z#5aj#Y#5#Y#5#Y#5#Y#5#1#5#1#Y#1#5#1#1#1#1#1#1a.#1a.#1#3#1#3a.#3a.#3a.ada.",
+"alaaaa#9aa#9aa#Caa#C#9#C#9#C#C#6#C#C#C#F#C#F#C#F#C#F#C#F#7#F#H#F#H#F#H#t#H#t#F#K#F#K#F#K#F#K#t#K#K#K#K#K#K#K#K#x#K#x#K#I#K#Q#x#O#K#O#x#O#x#O#x#O#x#O#Q#j#Q#j#Q#j#Q#j#Q#j#Q#j#k#j#k#q#j#q#k#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#z#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#k#q#j#q#k#q#j#q#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s"
+"#j.s#j.s#j.s#k.s#b.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.s.r.p.p.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.r.q.o.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.q.t.t.u.t.t.t.u.t.u.t.v.t.v.t.v.t.v.t.v.w.v.w.v.v.v.v.v.v.x.v.x.v.x.v.x.v.x.x.x.x.x.x.y.x.y.xa#.xa#.xa#.xa#.xa#.za#.za#a#a#a##Wa##Wa##Wa##Wa#ac#Wac#Wab#Wac#W#Xac#Xac#Xac#X#4ae#4#X#4ae#X#Z#X#Zae#Zae#Z#Z#Z#Z#Z#Z#Z#Z#Y#Z#Y#Z#Yaj#Y#5#Y#5#Y#5ag#Y#1#5#1#Y#1ag#1#1#1#1ah#1a.#1#3#1#3a.#3a.#3a.aka.ada.adakad",
+"#9aa#9aa#Caa#C#9#6#C#C#C#6#C#6#C#F#C#F#C#F#C#F#C#F#F#F#H#F#F#F#F#t#F#K#F#K#F#K#F#K#t#K#K#K#K#K#K#2#K#K#K#I#K#I#K#O#K#O#K#O#x#O#x#O#x#O#Q#j#Q#j#Q#j#O#j#Q#j#O#j#O#j#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#z#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#j#j#j#k#j#j#j#k#j#k#j#k#j#k#j"
+".s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#b.s#b.s.s.s#b.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p.p.p.r.p.q.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.q.t.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.t.t.u.t.v.t.v.t.v.t.v.t.v.w.v.w.v.w.v.w.v.v.x.v.x.v.x.v.x.v.x.x.x.x.x.x.x.x.A.x.z.xa#.xa#.xa#.za#.za#.za#af#Waf#Wa##Wa##Wa#ac#Wac#Wac#Wac#W#X#W#4ac#Xac#X#4#X#4#X#4ae#4#Z#X#Z#4#Zae#Z#Z#Z#Z#Z#Z#Z#Z#5#Z#5#Z#Y#Z#Y#5#Y#5#Y#5ag#5#1#5#1#5#1#1#1#1#1#1ah#1a.#1a.#1a.a.#3a.#3a.aka.ada.",
+"aaaaal#9aa#Caa#Caa#Caa#C#C#C#C#C#C#6#C#C#C#F#C#F#C#F#C#F#p#F#H#F#H#F#H#F#F#t#H#K#F#K#F#K#F#K#F#K#t#K#K#K#K#K#K#K#K#x#K#x#K#O#K#Q#x#O#x#O#x#O#x#O#x#O#x#O#Q#j#Q#j#Q#j#Q#j#Q#j#Q#j#k#j#k#q#j#q#k#q#j#q#k#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#k#q#j#q#k#q#j#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s"
+"#j.s#j.s#k.s#b.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.s.r.p.p.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.o.q.q.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.t.u.t.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.w.v.v.v.w.v.v.v.v.x.v.x.v.x.v.x.v.x.x.x.x.y.x.y.xam.xa#.xa#.xa#.xa#.za#.za#a#a#afa#a##Wa##Wa##Wa#ac#Wac#Wab#Wac#Wabac#Xac#Xac#Xac#X#4#X#4ae#Xae#4#Z#X#Z#X#Zae#Z#Z#Z#Z#Z#Zai#Z#5#Z#Yaj#Yaj#Y#5#Y#5ag#5ag#5#1#Y#1#Y#1#1#1#1#1#1#1#1#3#1#3#1#3a.#3a.#3a.aka.ad#3adakad",
+"#9aa#Caa#Caa#Caa#C#9#6#C#6#C#6#C#8#C#F#C#F#C#F#C#F#7#F#F#F#H#F#F#F#F#t#F#K#F#K#F#K#F#K#t#K#K#K#K#K#K#I#K#x#K#I#K#O#K#O#x#O#K#O#x#O#x#O#x#O#Q#j#Q#j#Q#j#O#j#Q#j#O#j#Q#j#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#j#j#j#k#j#j#j#k#j#k#j#k#j#k#j.s#j"
+".s#j.s#j.s#j.s#j.s#j.s#j.s#b.s#b.s.s.s#b.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p.p.p.r.p.q.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.o.q.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.t.t.u.t.w.t.v.t.v.t.v.t.v.w.v.w.v.w.v.w.v.v.x.w.x.v.x.v.x.v.x.x.x.x.x.x.x.x.y.x.z.xa#.xa#.xa#.xa#.za#.za#afa#af#Wa##Wa##Wa#ac#Wac#Wac#Wac#Wac#W#4ac#Xac#Xac#X#4#X#4ae#4ae#4#Z#4#Zae#Zae#Z#Z#Z#Z#Z#Zaj#Z#5#Z#Y#Z#5aj#Y#5#Y#5ag#5ag#5#1#5#1ag#1#1#1#1#1#1ah#1a.#1a.ah#3a.#3a.aka.ada.ada.",
+"anaaaaaaaa#9aa#Caa#Caa#C#9#C#C#C#C#C#C#6#C#7#C#F#C#F#C#F#C#F#H#F#H#F#H#F#H#F#F#t#H#K#F#K#F#K#t#K#t#K#t#K#K#K#K#x#K#K#K#x#K#x#K#O#K#Q#x#O#x#O#x#O#x#O#x#j#x#O#Q#j#Q#j#Q#j#Q#j#Q#j#Q#j#k#j#k#q#j#q#k#q#j#q#k#q#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#k#q#j#q#k#q#j#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s"
+"#j.s#k.s#b.s.s.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.r.p.p.p.r.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.q.q.o.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.q.u.t.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.w.v.v.v.w.v.v.v.v.x.v.x.v.x.v.x.v.x.x.x.x.y.x.x.xam.xa#.xa#.xa#.xa#.xa#.za#a#a#afa#a##Wa##Wa##Wa#aca#ac#Wac#Wac#Wabac#Xac#Xac#Xac#Xac#X#4ae#4ae#4ae#X#Z#X#Zae#Zae#Z#Z#Z#Zaj#Zaj#Z#Y#Z#Y#Z#Yaj#Y#5#Y#5#Y#5#1#Y#1#Y#1ag#1#1#1#1#1#1ah#1a.#1#3ah#3a.#3a.#3a.ad#3ada.adakad",
+"#9aa#9aa#Caa#Caa#C#9#C#9#6#C#6#C#6#C#8#C#F#C#F#C#F#C#F#7#F#F#F#H#F#F#F#F#K#F#K#F#K#F#K#F#K#t#K#K#K#K#K#K#I#K#x#K#I#K#O#K#O#x#O#x#O#x#O#x#O#x#O#Q#j#Q#j#Q#j#O#j#Q#j#O#j#Q#j#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#z#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#j#j#j#k#j#j#j#k#j#k#j#k#j#k#j.s#j.s#j"
+".s#j.s#j.s#j.s#j.s#j.s#b.s#b.s.s.s#b.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p.p.p.r.p.r.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.o.q.q.t.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.u.t.t.t.v.t.v.t.v.t.v.t.v.w.v.w.v.w.v.v.v.w.x.v.x.v.x.v.x.v.x.x.x.x.x.x.x.x.x.xa#.xa#.xa#.xa#.za#.za#afa#afa#a##Waf#Wa#aca#ac#Wac#Wac#Wac#W#4ac#Xac#4ac#Xac#X#4ae#4ae#4ae#4#Zae#Zao#Zae#Z#Z#Z#Zaj#Zaj#Z#5#Z#5aj#Yaj#Y#5#Y#5#Y#5#1#5#1ag#1ap#1#1#1#1#1#1a.#1a.ah#3aha.a.#3a.aka.ada.adaq",
+"alaaalaaaa#9aa#9aa#Caa#Caa#C#9#C#C#C#C#C#C#6#C#8#C#F#C#F#C#F#C#F#H#F#H#F#H#F#H#F#F#t#H#K#F#K#F#K#t#K#t#K#t#K#K#K#K#x#K#x#K#x#K#x#K#O#K#Q#x#O#x#O#x#O#x#O#x#j#x#O#Q#j#Q#j#Q#j#Q#j#k#j#Q#j#k#j#k#q#j#q#k#q#j#q#k#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#k#q#j#q#k#q#j#q#k#q#j#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#j.s"
+"#k.s#j.s.s.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.r.s.p.p.r.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.q.q.o.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.t.t.t.u.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.v.v.w.v.v.v.v.v.v.x.v.x.v.x.v.x.v.x.x.y.x.x.xam.xam.xa#.xa#.xa#.xa#.za#afa#afa#a#a#a##Wa##Wa#aca#aca#ac#Wac#Wabacacac#Xac#Xac#Xac#X#4ae#4ae#4ae#X#Z#X#Zae#Zae#Z#Z#Z#Zaj#Zaj#Z#Y#Z#Y#Z#Yaj#Y#5#Y#5#Y#5ag#Y#1#5#1ag#1ag#1#1#1#1ah#1a.#1#3ah#3ah#3a.#3a.aka.ada.adakadadad",
+"aaaa#9aa#9aa#Caa#Caa#6#C#C#C#6#C#6#C#8#C#8#C#F#C#F#C#F#H#F#H#F#F#F#H#F#F#F#F#K#F#K#F#K#F#K#F#K#t#K#K#K#K#K#K#I#K#x#K#I#K#O#K#O#x#O#x#O#x#O#x#O#x#O#Q#j#Q#j#Q#j#O#j#Q#j#O#j#Q#j#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#j#j#j#j#j#k#j#j#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j"
+".s#j.s#j.s#j.s#j.s#b.s#b.s.s.s#b.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.r.p.p.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.o.q.o.q.q.q.o.q.q.q.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.u.t.t.t.v.t.v.t.v.t.v.t.v.t.v.w.v.w.v.v.v.w.v.v.x.v.x.v.x.v.x.x.x.x.x.x.x.x.x.xa#.xa#.xa#.xa#.xa#.za#afa#afa#a##Waf#Wa#aca#aca#ac#Wac#Wac#Wacac#Xac#4ac#Xac#X#4ae#4ae#4ae#4#Zao#Zao#Zae#Zae#Z#Zaj#Zaj#Z#5#Z#5aj#Yaj#Y#5#Y#5#Y#5ag#5#1#5#1#5#1ag#1#1#1#1ah#1a.#1a.#1a.ah#3a.#3a.aka.adaqadaq",
+"anaaaaaaalaaaa#9aa#9aa#Caa#C#9#C#9#C#C#C#C#C#C#F#C#F#C#F#C#F#C#F#C#F#H#F#H#F#H#F#H#F#F#K#H#K#F#K#F#K#t#K#t#K#K#K#K#K#K#x#K#x#K#x#K#x#K#O#K#Q#x#O#x#O#x#O#x#O#x#j#x#O#Q#j#Q#j#Q#j#Q#j#k#j#Q#j#k#j#k#j#j#q#k#q#j#q#k#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#k#q#j#q#k#q#j#q#k#j#j#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#j.s#k.s"
+"#j.s.s.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.r.s.p.p.r.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.q.q.o.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.q.t.t.u.t.t.t.u.t.u.t.v.t.v.t.v.t.v.t.v.w.v.w.v.v.v.v.v.v.v.v.x.v.x.v.x.v.x.x.x.x.x.xam.xam.xa#.xa#.xa#.xa#.xa#afa#afa#a#a#afa#a##Wa#aca#aca#ac#Wac#Wabacacacabac#Xac#Xac#Xacae#4ae#4ae#Xae#4#Zae#Zae#Zae#Z#Zaj#Zaj#Zai#Z#5#Z#Yaj#Yaj#Y#5#Y#5ag#5ag#5#1#Y#1ag#1#1#1#1ah#1ah#1#3#1a.#1#3a.#3a.aka.aka.adakadakadadad",
+"aaaa#9aa#9aa#9aa#Caa#C#9#6#C#C#C#6#C#6#C#F#C#F#C#F#C#F#C#F#H#F#H#F#F#F#F#t#F#t#F#K#F#K#F#K#t#K#t#K#K#K#K#2#K#K#K#I#K#x#K#I#K#O#K#O#x#O#x#O#x#O#x#O#x#O#Q#j#Q#j#Q#j#O#j#Q#j#j#j#Q#j#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#j#k#j#j#j#k#j#j#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j"
+".s#j.s#j.s#j.s#b.s#b.s.s.s#b.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.r.p.p.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.o.q.q.q.q.t.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.t.t.u.t.v.t.v.t.v.t.v.t.v.w.v.w.v.w.v.w.v.v.x.v.x.v.x.v.x.v.x.x.x.x.x.x.x.xam.xaf.xa#.xa#.xa#.za#afa#afa#afa#af#Wa#aca##Wa#ac#Wac#Wac#Wacacacac#4ac#Xac#Xacae#4ae#4ae#4ae#4#Z#4#Zae#Zae#Z#Zaj#Zaj#Zaj#Z#5#Z#Yaj#5aj#Y#5#Y#5ag#5ag#5#1#5#1ag#1#1#1#1ah#1ah#1a.#1a.ah#3a.#3a.aka.aka.ada.adak",
+"anaaanaaaaaaal#9aa#Caa#Caa#Caa#C#9#C#9#C#C#6#C#C#C#F#C#F#C#F#C#F#C#F#7#F#H#F#H#F#H#t#H#t#F#K#H#K#F#K#F#K#t#K#t#K#K#K#K#K#K#x#K#x#K#x#K#x#K#O#K#Q#x#O#x#O#x#O#x#O#x#j#x#j#Q#j#Q#j#Q#j#Q#j#k#j#Q#j#k#j#k#j#j#q#k#q#j#q#k#q#j#q#k#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#k#q#j#q#k#q#j#q#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#j.s#k.s#j.s"
+".s.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.r.s.p.p.r.p.r.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.r.q.o.q.q.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.t.u.t.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.w.v.v.v.w.v.v.v.v.x.v.x.v.x.v.x.v.x.x.x.xam.xar.xam.xa#.xa#.xa#.xa#ara#afa#a#a#afa#a##Wa#aca#aca#aca#ac#Wacacac#Wabac#Xac#Xac#Xacae#4ae#4ae#4ae#4aeae#Zae#Zae#Zaeaj#Zaj#Zaj#Zaj#Z#Yaj#Yaj#Yaj#Y#5ag#5ag#5#1#Y#1#Y#1ag#1#1#1#1ah#1ah#1a.#1#3ah#3a.#3a.aka.ak#3ada.adakadadas",
+"aaaaaaaa#9aa#Caa#Caa#Caa#C#9#6#C#C#C#6#C#6#C#F#C#F#C#F#C#F#C#F#H#F#H#F#F#F#F#t#F#K#F#K#F#K#F#K#t#K#t#K#K#K#K#2#K#K#K#I#K#I#K#I#K#O#K#O#x#O#x#O#x#O#x#O#x#O#Q#j#Q#j#Q#j#O#j#Q#j#j#j#Q#j#j#j#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#j#k#j#j#j#k#j#j#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j"
+".s#j.s#j.s#b.s#b.s.s.s#b.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.p.p.r.p.p.p.r.p.q.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.o.t.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.t.t.u.t.w.t.v.t.v.t.v.t.v.t.v.w.v.w.v.w.v.v.v.w.x.v.x.v.x.v.x.v.x.x.x.x.x.xam.xaf.xa#.xa#.xa#.xa#afa#afa#afa#afa#a#acaf#Wa#aca#ac#Wac#Wacacacac#4ac#Xac#4acaeacae#4ae#4ae#4ae#4#Zae#Zao#Zae#Z#Z#Z#Zaj#Zaj#Z#5#Z#5aj#Yaj#Y#5ag#5ag#5#1#5#1ag#1ap#1#1ah#1ah#1ah#1a.ah#3aha.a.aka.aka.ada.adaqadaq",
+"anaaanaaanaaaaaaaa#9aa#Caa#Caa#Caa#C#C#C#C#C#C#6#C#C#C#F#C#F#C#F#C#F#p#F#H#F#H#F#H#F#H#t#H#t#F#K#H#K#F#K#F#K#t#K#t#K#K#K#K#K#K#x#K#x#K#x#K#x#K#O#K#Q#x#O#x#O#x#O#x#O#x#j#x#j#Q#j#Q#j#Q#j#Q#j#k#j#Q#j#k#j#k#j#k#j#k#q#j#q#k#q#j#q#k#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#k#q#j#q#k#q#j#q#k#q#j#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#j.s#k.s#j.s.s.s"
+".s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.r.s.p.p.r.p.p.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.r.q.o.q.q.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.q.u.t.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.w.v.v.v.w.v.v.v.v.v.v.x.v.x.v.x.v.x.v.x.xam.xar.xam.xa#.xa#.xa#.xa#ara#afa#afa#afa#a#a#a#aca#aca#aca#ac#Wac#Wac#Wabacacac#Xac#Xacaeacae#4ae#4ae#4aeae#Zae#Zae#Zae#Z#Z#Z#Zaj#Zaj#Z#Yaj#Yaj#Yaj#Y#5ag#5ag#5ag#Y#1#5#1ag#1ag#1#1#1#1ah#1a.#1#3ah#3ah#3a.#3a.aka.ada.adakadakadadas",
+"aaaaaaaaaaaa#9aa#Caa#Caa#C#9#C#9#6#C#6#C#6#C#8#C#F#C#F#C#F#C#F#7#F#F#F#H#F#F#F#F#t#F#K#F#K#F#K#F#K#t#K#t#K#K#K#K#2#K#K#K#I#K#I#K#I#K#O#K#O#x#O#x#O#x#O#x#O#x#O#Q#j#Q#j#Q#j#O#j#Q#j#j#j#Q#j#j#j#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#j#j#j#k#j#j#j#k#j#j#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#j"
+".s#j.s#b.s#b.s.s.s#b.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p.p.p.r.p.q.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.o.q.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.t.t.u.t.t.t.v.t.v.t.v.t.v.t.v.w.v.w.v.w.v.v.v.w.x.v.x.v.x.v.x.v.x.x.x.x.x.xar.xar.xa#.xa#.xa#.xa#ara#afa#afa#afa#a#acaf#Wa#aca#aca#ac#Wacacacacacac#Xac#4acaeacae#4ae#4ae#4ae#4#Zao#Zao#Zae#Zae#Z#Zaj#Zaj#Zaj#Z#5aj#Yaj#Y#5ag#5ag#5ag#5#1ap#1ap#1ag#1#1#1#1ah#1a.aha.aha.ah#3a.aka.aka.adaqadaqadad",
+"ataaanaaalaaalaaaa#9aa#9aa#Caa#Caa#C#9#C#C#C#C#C#C#6#C#7#C#F#C#F#C#F#C#F#p#F#H#F#H#F#H#F#H#t#H#t#F#K#F#K#F#K#F#K#t#K#t#K#K#K#K#K#K#x#K#x#K#x#K#x#K#O#K#Q#x#O#x#O#x#O#x#O#x#j#x#j#Q#j#Q#j#Q#j#Q#j#k#j#Q#j#k#j#k#j#k#j#k#j#j#q#k#q#j#q#k#q#j#q#k#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#k#q#j#q#k#q#j#q#k#q#j#q#k#j#j#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#k.s#b.s.s.s.s.s"
+".s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.r.s.p.p.r.p.p.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.o.q.q.q.o.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.q.u.t.t.t.u.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.v.v.w.v.v.v.v.v.v.x.v.x.v.x.v.x.v.x.xar.xar.xam.xam.xa#.xa#.xa#ara#ara#afa#afa#a#a#a#aca#aca#aca#aca#ac#Wac#Wabacacac#Xac#Xacaeacaeacae#4ae#4aeaeaeao#Zae#Zae#Zae#Z#Zaj#Zaj#Zaiaj#5aj#Yaj#Yaj#Y#5#Y#5ag#5ag#5#1ag#1ag#1ag#1#1ah#1ah#1#3aha.ah#3ah#3a.aka.aka.adakadakadadadadas",
+"aaauaaaaaaaa#9aa#9aa#Caa#Caa#C#9#C#9#6#C#6#C#6#C#8#C#F#C#F#C#F#C#F#7#F#F#F#H#F#F#F#F#t#F#K#F#K#F#K#F#K#t#K#t#K#K#K#K#2#K#K#K#I#K#I#K#I#K#O#K#O#x#O#x#O#x#O#x#O#x#O#Q#j#Q#j#Q#j#O#j#Q#j#j#j#Q#j#j#j#j#j#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#j#j#j#k#j#j#j#k#j#j#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j"
+".s#b.s#b.s.s.s#b.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p.p.p.r.p.q.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.o.q.q.t.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.u.t.t.t.v.t.v.t.v.t.v.t.v.t.v.w.v.w.v.w.v.w.v.v.x.v.x.v.x.v.x.v.x.x.x.xar.xar.xa#.xaf.xa#.xa#ara#afa#afa#afa#afa#af#Wa#aca#aca#ac#Wacacacacacacacac#4ac#Xac#Xacae#4ae#4ae#4aeao#Zao#Zae#Zae#Z#Zaj#Zaj#Zaj#Z#5aj#Yaj#5aj#Y#5#Y#5ag#5ag#5#1ap#1ag#1#1#1#1ah#1ah#1a.#1a.ah#3a.#3a.aka.aka.adaqadakadav",
+"ataaanaaanaaaaaaalaaaa#9aa#9aa#Caa#Caa#C#9#C#C#C#C#C#C#6#C#7#C#F#C#F#C#F#C#F#p#F#H#F#H#F#H#F#F#t#H#K#F#K#F#K#F#K#F#K#t#K#t#K#K#K#K#K#K#x#K#x#K#x#K#x#K#O#K#Q#x#O#x#O#x#O#x#O#x#j#x#j#x#j#Q#j#Q#j#Q#j#Q#j#Q#j#k#j#k#j#k#j#k#j#j#j#k#q#j#q#k#q#j#q#k#q#j#q#k#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#k#q#j#q#k#q#j#q#k#q#j#q#k#q#j#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#k.s#j.s#k.s#b.s.s.s.s.s.s.s"
+".s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.r.p.p.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.p.q.q.q.o.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.t.t.t.u.t.t.t.u.t.u.t.v.t.v.t.v.t.v.t.v.w.v.w.v.v.v.v.v.v.v.v.x.v.x.v.x.v.x.var.xar.xam.xam.xam.xa#.xa#ara#ara#afa#afa#a#a#afawa#aca#aca#aca#aca#ac#Wacacacacabac#Xacaeacaeacae#4ae#4aeaoae#4aeae#Zae#Zae#Zaeaj#Zaj#Zaj#Zaj#Z#Yaj#Yaj#Yaj#Y#5ag#5ag#5agag#1ag#1ag#1#1ah#1ah#1ah#1a.ah#3ah#3a.aka.aka.akaqadaqadakadadasadas",
+"aaauaaauaaaaaaaa#9aa#9aa#Caa#C#9#6#C#C#C#6#C#6#C#8#C#8#C#F#C#F#C#F#p#F#H#F#F#F#H#F#F#F#F#t#F#K#F#K#F#K#F#K#t#K#t#K#K#K#K#I#K#K#K#I#K#I#K#I#K#O#K#O#x#O#x#O#x#O#x#O#x#O#x#j#Q#j#Q#j#Q#j#Q#j#j#j#Q#j#j#j#k#j#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#j#j#j#j#j#k#j#j#j#k#j#j#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#b"
+".s#b.s.s.s#b.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p.p.p.r.p.q.p.q.p.q.p.q.p.q.p.q.p.q.o.q.o.q.q.q.o.q.q.q.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.u.t.t.t.u.t.v.t.v.t.v.t.v.t.v.w.v.w.v.w.v.w.v.v.x.v.x.v.x.v.x.var.x.x.xar.xar.xam.xaf.xa#.xa#ara#ara#afa#afa#afa#af#Wa#acafaca#aca#acacac#Wacacacac#4ac#Xac#Xacaeacae#4ae#4aeaoaeao#Zae#Zao#Zaeaj#Zaj#Zaj#Zajaj#5aj#5aj#Yaj#Y#5ag#5ag#5#1#5#1ag#1ap#1#1ah#1ah#1ah#1a.ah#3aha.a.aka.aka.ada.adaqadaqadad",
+"ataaataaanaaanaaaaaaalaaaa#9aa#9aa#Caa#Caa#C#9#C#C#C#C#C#C#B#C#8#C#F#C#F#C#F#C#F#H#F#H#F#H#F#H#F#F#t#H#K#F#K#F#K#t#K#F#K#t#K#t#K#K#K#K#K#K#x#K#x#K#x#K#x#K#O#K#Q#x#O#x#O#x#O#x#O#x#j#x#j#x#j#Q#j#Q#j#Q#j#Q#j#Q#j#k#j#k#j#k#j#k#j#k#j#k#j#j#q#k#q#j#q#k#q#j#q#k#q#j#q#k#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#k#q#j#q#k#q#j#q#k#q#j#q#k#q#j#q#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#k.s#j.s#k.s#b.s.s.s.s.s.s.s.s.s"
+".s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.r.p.p.p.r.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.q.q.o.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.q.t.t.u.t.t.t.u.t.u.t.v.t.v.t.v.t.v.t.v.t.v.w.v.v.v.w.v.v.v.v.x.v.x.v.x.v.x.var.xar.xam.xar.xam.xa#.xa#ara#ara#ara#afa#a#a#afawa#awa#aca#aca#aca#ac#Wacacacacabacacacaeac#Xacaeacae#4ae#4ae#4aeae#Zae#Zae#Zaeaj#Zaj#Zaj#Zaj#Z#Yaj#Yaj#Yaj#Y#5ag#5ag#5ag#Y#1ap#1ag#1agah#1ah#1ah#1ah#1#3ah#3ah#3a.aka.aka.ada.adakadakasadasadas",
+"aaanaaaaaaaaaaaa#9aa#9aa#Caa#Caa#C#9#6#C#C#C#6#C#6#C#F#C#F#C#F#C#F#C#F#p#F#H#F#F#F#H#F#F#F#F#K#F#K#F#K#F#K#F#K#t#K#t#K#K#K#K#I#K#x#K#I#K#I#K#I#K#O#K#O#x#O#x#O#x#O#x#O#x#O#x#j#Q#j#Q#j#Q#j#Q#j#j#j#Q#j#j#j#k#j#j#j#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#b.s#b"
+".s.s.s#b.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p.p.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.o.q.o.q.q.q.o.q.q.q.q.t.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.t.t.u.t.v.t.v.t.v.t.v.t.v.w.v.w.v.w.v.w.v.v.v.w.x.v.x.v.x.var.v.x.xar.xar.xam.xaf.xa#.xa#ara#ara#afa#afa#afa#afa#a#acafaca#aca#acacac#Wacacacacacac#Xac#4acaeacae#4ae#4aeaoaeao#Zae#Zao#Zaeaj#Zaj#Zaj#Zajaj#5aj#5aj#Yaj#Y#5ag#5ag#5ag#5#1ap#1ap#1agah#1ah#1ah#1a.aha.aha.ahaka.aka.aka.adaqadaqadadasad",
+"atauataaanaaanaaanaaaaaaal#9aa#Caa#Caa#Caa#C#9#C#9#C#C#C#C#C#C#F#C#F#C#F#C#F#C#F#C#F#H#F#H#F#H#F#H#F#F#t#H#K#F#K#F#K#t#K#t#K#t#K#t#K#K#K#K#K#K#x#K#x#K#x#K#x#K#I#K#Q#x#O#x#O#x#O#x#O#x#j#x#j#x#j#x#j#Q#j#Q#j#Q#j#Q#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#q#j#q#k#q#j#q#k#q#j#q#k#q#j#q#k#q#j#q#k#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#k#q#j#q#k#q#j#q#k#q#j#q#k#q#j#q#k#q#j#q#k#j#j#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#j.s#k.s#j.s#k.s#b.s.s.s.s.s.s.s.s.s.s.s"
+".s.s.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.r.p.p.p.r.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.q.q.o.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.q.t.t.u.t.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.w.v.v.v.w.v.v.v.v.x.v.x.v.x.v.x.var.var.xam.xar.xam.xam.xa#ara#ara#ara#afa#afa#afawa#awa#aca#aca#aca#aca#acacacacabacacac#Xac#Xacaeacaeacae#4ae#4aeaeaeao#Zae#Zaeajaeaj#Zaj#Zaj#Zaiaj#5aj#Yaj#Yajag#5ag#5ag#5ag#5#1ag#1ag#1ag#1#1ah#1ah#1#3aha.ah#3ah#3a.aka.aka.adakadaqadadasadasadas",
+"aaauaaanaaaaaaaaaaaa#9aa#Caa#Caa#Caa#C#9#6#C#C#C#6#C#6#C#F#C#F#C#F#C#F#C#F#H#F#H#F#F#F#H#t#F#F#F#K#F#K#F#K#F#K#F#K#t#K#t#K#K#K#K#I#K#x#K#I#K#I#K#I#K#O#K#O#x#O#x#O#x#O#x#O#x#O#x#j#Q#j#Q#j#Q#j#Q#j#O#j#Q#j#j#j#k#j#j#j#j#j#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#j#j#j#j#j#k#j#j#j#k#j#j#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#b.s#b.s.s"
+".s#b.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p.p.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.o.q.q.q.q.t.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.t.t.u.t.w.t.v.t.v.t.v.t.v.t.v.w.v.w.v.w.v.v.v.w.x.v.x.v.x.var.v.x.xar.xar.xar.xar.xa#.xa#ara#ara#ara#afa#afa#afa#afacafaca#aca#aca#ac#Wacacacacacac#4ac#4acaeacaeacae#4aeaoaeaoaeao#Zao#Zaeajaeaj#Zaj#Zajajajaj#5aj#Yaj#5ajag#5ag#5ag#5agap#1ap#1ag#1agah#1ah#1ahaha.aha.ah#3ahaka.aka.akaqadaqadakasavasad",
+"ataaataaataaanaaanaaalaaaaaaaa#9aa#Caa#Caa#Caa#C#C#C#C#C#C#6#C#C#C#F#C#F#C#F#C#F#C#F#C#F#H#F#H#F#H#F#H#F#F#t#H#K#F#K#F#K#t#K#t#K#t#K#t#K#K#K#K#K#K#x#K#x#K#x#K#x#K#I#K#Q#x#O#x#Q#x#O#x#O#x#j#x#O#x#j#x#j#Q#j#Q#j#Q#j#Q#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#q#j#q#k#q#j#q#k#q#j#q#k#q#j#q#k#q#j#q#k#q#j#q#k#q#j#q#k#q#j#q#k#q#j#q#k#q#j#q#k#q#j#q#k#q#j#q#k#q#j#q#k#q#j#q#k#q#j#q#k#q#j#q#k#j#j#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#k.s#j.s#k.s#b.s.s.s.s.s.s.s.s.s.s.s.s.s"
+".s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.r.p.p.p.r.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.q.q.o.q.q.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.q.u.t.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.t.v.v.v.w.v.v.v.v.v.v.x.var.v.x.var.var.xar.xar.xam.xam.xa#ara#ara#ara#ara#afa#afawa#awafawa#aca#aca#aca#acacacacacacacacabac#Xacaeacaeacae#4ae#4aeaeaeao#Zae#Zaeajaeajaeaj#Zaj#Zajajajaj#Yaj#Yajagajag#5ag#5ag#5agag#1ag#1ag#1#1ah#1ah#1ahaha.ah#3ah#3a.aka.aka.akaqadaqadakadadasadasadax",
+"aaataaauaaanaaaaaaaa#9aa#9aa#Caa#Caa#C#9#C#9#6#C#C#C#6#C#6#C#F#C#F#C#F#C#F#C#F#H#F#H#F#F#F#H#t#F#t#F#K#F#K#F#K#t#K#F#K#t#K#t#K#K#K#K#I#K#x#K#I#K#x#K#I#K#O#K#O#x#O#x#O#x#O#x#O#x#O#x#j#x#j#Q#j#Q#j#Q#j#Q#j#Q#j#j#j#k#j#j#j#k#j#j#j#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#b.s#b.s.s.s#b"
+".s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p.p.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.o.q.q.q.o.t.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.t.t.u.t.t.t.v.t.v.t.v.t.v.t.v.w.v.w.v.w.v.v.v.w.x.v.x.v.x.var.var.var.xar.xar.xar.xam.xafara#ara#ara#afa#afa#afa#afawafaca#aca#aca#aca#acacacacacacacac#4acaeacaeacae#4aeaoaeaoaeaoaeao#Zaeajaoajaeaj#Zaj#Zaj#Zajaj#5aj#5ajagajag#5ag#5agap#1ap#1ag#1ap#1#1ah#1ah#1ahaha.ah#3aha.a.aka.akaqakaqadaqadaqasadasad",
+"atauataaataaataaanaaalaaalaaaa#9aa#9aa#Caa#Caa#Caa#C#C#C#C#C#C#6#C#C#C#F#C#F#C#F#C#F#p#F#p#F#H#F#H#F#H#t#H#F#F#t#H#K#F#K#F#K#t#K#t#K#t#K#t#K#K#x#K#K#K#x#K#x#K#x#K#x#K#I#K#Q#x#O#x#Q#x#O#x#O#x#j#x#O#x#j#x#j#x#j#Q#j#Q#j#Q#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#j#q#k#q#j#q#k#q#j#q#k#q#j#q#k#q#j#q#k#q#j#q#k#q#j#q#k#q#j#q#k#q#j#q#k#q#j#q#k#q#j#q#k#q#j#q#k#q#j#q#k#j#j#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#k.s#j.s.s.s#b.s.s.s.s.s.s.s.s.s.s.s.s.s.s.p"
+".s.p.s.p.s.p.s.p.s.p.s.p.s.r.p.p.p.r.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.r.q.o.q.q.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.q.u.t.t.t.u.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.v.v.w.v.v.v.v.v.v.x.var.v.x.var.var.var.xar.xam.xam.xamara#ara#ara#ara#afa#afawa#awafawa#aca#aca#aca#acawacacacacacacabac#Xacaeacaeacaeacae#4aeaoaeaoaeae#Zaeajaeajaeaj#Zaj#Zajajajaj#Yaj#Yajagajag#5ag#5ag#5agag#1ap#1ag#1agah#1ah#1ahahahah#3ah#3ahaka.aka.akaqakaqadakadakasadasadasasax",
+"aaataaanaaauaaauaaaaaaaa#9aa#9aa#Caa#Caa#C#9#C#9#6#C#6#C#6#C#8#C#F#C#F#C#F#C#F#C#F#H#F#H#F#F#F#H#t#F#t#F#K#F#K#F#K#t#K#t#K#t#K#t#K#K#K#K#I#K#x#K#I#K#x#K#I#K#O#K#O#x#O#x#O#x#O#x#O#x#O#x#j#x#j#Q#j#Q#j#Q#j#Q#j#Q#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#b.s#b.s#b.s.s.s#b.s.s"
+".s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p.p.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.o.q.q.t.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.u.t.t.t.v.t.v.t.v.t.v.t.v.t.v.w.v.w.v.w.v.w.v.v.x.v.x.var.var.var.xar.xar.xar.xam.xafara#ara#ara#ara#afawafa#afawafawa#acafaca#aca#acacacacacacacacacacaeacaoacaeacaeaoae#4aeaoaeao#Zaeajaoajaeaj#Zaj#Zaj#Zajaj#5aj#5ajagajag#5ag#5agapagap#1ap#1ap#1agah#1ah#1ah#1a.aha.aha.ahaka.aka.aka.adaqadaqadakasadasas",
+"atauatauataaataaanaaanaaaaaaalaaaa#9aa#9aa#Caa#Caa#C#9#C#C#C#C#C#C#6#C#C#C#F#C#F#C#F#C#F#p#F#p#F#H#F#H#F#H#t#H#t#F#t#H#K#F#K#F#K#t#K#t#K#t#K#t#K#K#x#K#K#K#x#K#x#K#x#K#x#K#I#K#x#x#O#x#Q#x#O#x#O#x#j#x#O#x#j#x#j#x#j#x#j#Q#j#Q#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#j#j#k#q#j#q#k#q#j#q#k#q#j#q#k#q#j#q#k#q#j#q#k#q#j#q#k#q#j#j#k#j#j#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#k.s#j.s#k.s#j.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p"
+".s.p.s.p.s.p.s.p.s.p.s.r.p.p.p.r.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.r.q.o.q.q.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.q.t.t.t.t.u.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.w.v.w.v.v.v.v.v.v.v.var.var.var.var.var.xar.xamarar.xamara#ara#ara#ara#ara#afawa#awafawa#awa#aca#aca#acawacacacacacacabacacacaeacaeacaeacae#4aeaoaeaoaeaeaeaoajaeajaeajaeaj#Zajajajajaiaj#5aj#Yaj#Yajag#5ag#5agapagap#1ag#1agahagah#1ah#1ahah#3aha.ahakahaka.aka.akaqadakadaqasadasadasasasasay",
+"auataaataaanaaauaaauaaaaaaaa#9aa#9aa#Caa#Caa#C#C#C#C#6#C#6#C#6#C#8#C#F#C#F#C#F#C#F#C#F#H#F#H#F#F#F#H#t#F#t#F#K#F#K#F#K#t#K#t#K#t#K#t#K#K#K#K#I#K#x#K#I#K#x#K#I#K#I#K#O#x#O#x#O#x#O#x#O#x#O#x#j#x#j#x#j#Q#j#Q#j#Q#j#Q#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#j#j#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#b.s#b.s#b.s.s.s#b.s.s.s.s"
+".s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p.p.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.o.q.q.t.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.u.t.t.t.u.t.v.t.v.t.v.t.v.t.v.w.v.w.v.w.v.w.v.v.x.w.x.var.var.var.xar.xar.xar.xam.xafara#ara#ara#ara#afawafa#afawafawa#acafaca#aca#acawacacacacacacacacaeacaoacaeacaeacae#4aeaoaeaoaeao#Zao#Zaeajaeaj#Zaj#Zajajajaj#5aj#Yaj#5ajag#5ag#5ag#5agap#1ap#1agah#1ah#1ah#1ahaha.aha.ahakahaka.aka.akaqadaqadakasavasadasas",
+"atauatauatauataaataaanaaanaaaaaaalaaaa#9aa#9aa#Caa#Caa#C#9#C#C#C#C#C#C#6#C#C#C#F#C#F#C#F#C#F#p#F#p#F#H#F#H#F#H#t#H#t#F#t#H#K#F#K#F#K#t#K#t#K#t#K#t#K#K#x#K#K#K#x#K#x#K#x#K#x#K#x#K#x#x#O#x#Q#x#O#x#O#x#j#x#O#x#j#x#j#x#j#x#j#x#j#Q#j#k#j#Q#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#k.s#j.s#k.s#b.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p"
+".s.p.s.p.s.r.s.p.s.r.p.p.p.r.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.r.q.o.q.q.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.q.t.t.t.t.u.t.t.t.u.t.u.t.v.t.v.t.v.t.v.t.v.t.v.w.v.v.v.w.v.v.v.var.var.var.var.var.xar.xamarar.xamara#ara#ara#ara#ara#afawafawafawa#awa#aca#aca#acawacawacacacacabacacacaeacaeacaeacaeacaeaoaeaoaeaeaeaoajae#Zaeajaeaj#Zajajajajajajajaj#Yaj#Yajagajag#5agapagap#1ag#1agahagah#1ah#1ah#1ahaha.ah#3ahaka.aka.aka.akaqadaqasakasadasadasasaxasax",
+"auatauataaazaaanaaaaaaaaaaaa#9aa#9aa#9aa#Caa#Caa#6#C#C#C#6#C#6#C#6#C#8#C#F#C#F#C#F#C#F#C#F#H#F#H#F#F#F#H#t#F#t#F#K#F#K#F#K#t#K#t#K#t#K#t#K#K#K#K#I#K#x#K#I#K#x#K#I#K#I#K#O#x#O#x#O#x#O#x#O#x#O#x#j#x#j#x#j#x#j#Q#j#Q#j#Q#j#k#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#j#j#j#j#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#b.s.s.s#b.s.s.s#b.s.s.s.s.s.s"
+".s.s.p.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p.p.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.o.q.q.t.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.t.t.t.t.u.t.v.t.v.t.v.t.v.t.v.w.v.w.v.w.v.w.v.v.v.w.x.var.var.var.var.xar.xararar.xarara#ara#ara#ara#arawafa#afawafawafawafaca#aca#acawacacacacacacacacaAacaoacaeacaeacae#4aeaoaeaoaeao#Zao#Zaeajaeajaeaj#Zajajajajajaj#5aj#5ajagajag#5ag#5agap#1ap#1agahapah#1ah#1ahahahaha.ahakahaqa.aka.akaqakaqadaqasaqasadasadasas",
+"atazatauatauatauataaataaanaaanaaaaaaalaaaa#Caa#Caa#Caa#Caa#C#9#C#C#C#C#C#C#6#C#7#C#F#C#F#C#F#C#F#p#F#H#F#H#F#H#F#H#t#H#t#F#t#H#K#F#K#F#K#t#K#t#K#t#K#t#K#t#x#K#K#K#x#K#x#K#x#K#x#K#x#K#x#x#I#x#Q#x#O#x#Q#x#O#x#O#x#j#x#j#x#j#x#j#x#j#x#j.s#j#Q#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#k.s#j.s#k.s#b.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p"
+".s.p.s.r.s.p.s.r.p.p.p.r.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.r.q.o.q.q.q.q.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.q.t.t.u.t.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.w.v.v.v.waB.v.v.vaB.var.var.var.var.var.xamarararamaramara#ara#ara#ara#arawafawafawa#awafawa#aca#acawacawacacacacacacacacaCacaeacaeacaeacaeaoaeaoaeaoaeaoaeae#Zaeajaeajaeaj#Zaj#Zajajajaj#Yaj#Yajagajag#5agapagapagag#1ap#1agahagah#1ah#1ahahahah#3ah#3ahaka.aka.akaqakaqadakadakasadasadasasaxasaD",
+"auatauatauataaauaaanaaaaaaaaaaaa#9aa#Caa#Caa#Caa#C#9#6#C#C#C#6#C#6#C#B#C#8#C#F#C#F#C#F#p#F#p#F#H#F#H#F#F#F#H#t#F#t#F#K#F#K#F#K#t#K#t#K#t#K#t#K#K#K#K#x#K#x#K#I#K#x#K#I#K#I#K#O#x#O#x#O#x#O#x#O#x#O#x#j#x#j#x#j#x#j#x#j#Q#j#Q#j#k#j#Q#j#k#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#j#j#j#j#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#j#j#j#j#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#b.s#b.s.s.s#b.s.s.s#b.s.s.s.s.s.s.p.s"
+".p.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p.p.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.o.q.q.t.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.t.t.t.t.u.t.w.t.v.t.v.t.v.t.v.t.v.w.v.w.v.w.v.vaB.w.x.var.var.var.var.xar.xararar.xarara#arafara#ara#arawafa#afawafawafawafacawaca#acawacawacacacacacacaAacaoacaeacaeacaeacaeaoaeaoaeaoaeao#Zaeajaoajaeaj#Zajajajajajaj#5aj#5ajagajag#5ag#5agapagap#1apahapahagah#1ahahahaha.aha.aha.ahaka.akaqakaqadaqasaqasakasadasasasas",
+"aEatatazatauataaataaataaanaaanaaanaaaaaaal#9aa#Caa#Caa#Caa#Caa#C#9#C#C#C#C#C#C#B#C#7#C#F#C#F#C#F#C#F#p#F#H#F#H#F#H#F#H#t#H#t#F#t#H#K#F#K#F#K#t#K#t#K#t#K#t#K#t#x#K#K#K#x#K#x#K#x#K#x#K#x#K#x#x#I#x#Q#x#O#x#Q#x#O#x#O#x#j#x#j#x#j#x#j#x#j#x#j#x#j#x#j.s#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#k.s#j.s#k.s#j.s.s.s#b.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p"
+".s.r.s.p.s.r.p.p.p.r.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.r.q.o.q.q.q.o.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.q.t.t.u.t.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.w.v.v.v.waB.v.v.vaB.var.var.var.var.var.xararararamaramara#ara#ara#ara#arawafawafawa#awafawa#aca#acawacawacawacacacacacacaCacaCacaeacaeacaeaAaeaoaeaoaeaoaeae#Zaeajaeajaeajaeaj#Zajajajajaiaj#5ajagajagajag#5ag#5agapagap#1ag#1agah#1ah#1ahahahah#3aha.ahakahaka.akaqakaqadakadaqasadasadasasasasayasaF",
+"auatauataaataaataaauaaanaaaaaaaaaaaa#9aa#Caa#Caa#Caa#C#9#6#C#C#C#6#C#6#C#B#C#F#C#F#C#F#C#F#p#F#p#F#F#F#H#F#F#F#H#t#F#t#F#K#F#K#F#K#t#K#t#K#t#K#t#K#K#K#K#x#K#x#K#I#K#x#K#I#K#I#K#I#x#O#x#O#x#O#x#O#x#O#x#j#x#j#x#j#x#j#x#j#x#j#Q#j#k#j#Q#j#k#j#k#j#k#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#b.s#b.s.s.s#b.s.s.s#b.s.s.s.s.s.s.p.s.p.s"
+".p.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p.p.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.o.q.q.q.q.t.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.t.t.u.t.t.t.v.t.v.t.v.t.v.t.v.w.v.w.v.w.v.vaB.w.v.var.var.var.var.var.xararararararamarafara#ara#arawarawafawafawafawafawawacafacawacawacacacacacacaAacaAacaeacaoacaeacaeaoaeaoaeaoaeaoaeaoajaoajaeajaeajajajajajajajaj#5ajagajapajag#5agapagapagap#1ap#1agah#1ah#1ahahahaha.aha.ahakahaka.akaqakaqadaqadakasavasasasasaxas",
+"aEazaEatatauatauataaataaataaanaaalaaalaaaaaaal#9aa#Caa#Caa#Caa#C#C#C#C#C#C#C#C#C#C#B#C#H#C#F#C#F#C#F#C#F#p#F#H#F#H#F#H#F#H#t#H#t#F#t#H#K#F#K#H#K#t#K#t#K#t#K#t#K#t#x#K#K#K#x#K#x#K#x#K#x#K#x#K#x#x#I#x#x#x#O#x#Q#x#O#x#Q#x#j#x#j#x#j#x#j#x#j#x#j#x#j#x#j.s#j.s#j.s#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#k.s#j.s#k.s#b.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.s.r"
+".s.p.p.r.p.p.p.r.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.r.q.o.q.q.q.o.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.q.t.t.u.t.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.t.v.v.v.waB.vaB.vaB.var.var.var.var.var.vararararamarararamara#arawara#arawarawafawa#awafawawawa#acawacawacawacacacacacacaCacaAacaeacaeacaeaAaeaAaeaoaeaoaeaeaeaoajaeajaeajaeaj#Zajajajajaiaj#5ajagajagajag#5ag#5agapagap#1ag#1agahagah#1ahahahahahaha.ahakahaka.akaqakaqakaqadaqasakasadasasasasaxasaxasaD",
+"azatauatauataaataaataaauaaanaaaaaaaaaaaa#9aa#Caa#Caa#Caa#C#9#6#C#C#C#6#C#6#C#F#C#F#C#F#C#F#C#F#p#F#p#F#F#F#H#F#F#F#H#t#F#t#F#K#F#K#F#K#t#K#t#K#t#K#t#K#t#K#K#x#K#x#K#I#K#x#K#I#K#x#K#I#x#I#x#O#x#O#x#O#x#O#x#j#x#O#x#j#x#j#x#j#x#j#x#j#x#j#Q#j#k#j#k#j#k#j#k#j#k#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#b.s#b.s#b.s.s.s#b.s.s.s#b.s.s.s.s.s.s.p.s.p.s.p.s"
+".p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p.p.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.o.q.q.q.q.t.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.t.t.u.t.t.t.v.t.v.t.v.t.v.t.v.w.v.w.v.w.v.waB.waB.var.var.var.var.var.xararararararamarafara#ara#arawarawafawafawafawafawawacafacawacawacawacacacacaAacaAacaeacaoacaeacaeaAaeaoaeaoaeaoaeaoajaoajaeajaeajajajajajajajaj#5ajagajapajag#5agapagapagap#1ap#1agahapah#1ah#1ahahahaha.ahakahaqa.aka.akaqakaqadaqasaqasasasasasasaFas",
+"aEataEazatazatauatauataaataaataaanaaalaaalaaaaaaaa#9aa#Caa#Caa#Caa#C#C#C#C#C#C#C#C#C#C#B#C#H#C#F#C#F#C#F#C#F#p#F#p#F#H#F#H#F#H#t#H#t#F#t#H#t#F#K#H#K#t#K#t#K#t#K#t#K#t#K#t#K#K#x#K#x#K#x#K#x#K#x#K#x#x#x#x#x#x#I#x#Q#x#O#x#Q#x#j#x#k#x#j#x#j#x#j#x#j#x#j#x#j.s#j#x#j.s#j.s#j.s#j.s#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#k.s#j.s#k.s#j.s.s.s#b.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.r.s.p"
+".p.r.p.p.p.r.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.r.q.o.q.q.q.o.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.q.t.t.u.t.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.taB.w.v.waB.vaB.vaB.vaB.var.var.varaBar.vararararamarararamara#arawara#arawarawafawafawafawawawa#acawacawacawacawacacacacaCacaAacaCacaeacaeaAaeaAaeaoaeaoaeaeaeaoajaeajaeajaeajaeajajajajajajajajagajagajagajag#5agapagapagag#1apahagahagahahahahahaha.ahakahakahaka.akaqakaqadaqasakasakasasasasasasaxasaDasaD",
+"azatazatauatauataaataaanaaauaaauaaaaaaaa#9aa#9aa#Caa#Caa#Caa#C#9#6#C#C#C#6#C#6#C#F#C#F#C#F#C#F#C#F#p#F#p#F#H#F#H#F#F#F#H#t#F#t#F#K#F#K#F#K#t#K#t#K#t#K#t#K#t#K#K#x#K#x#K#I#K#x#K#I#K#x#K#I#x#I#x#O#x#O#x#O#x#O#x#j#x#O#x#j#x#j#x#j#x#j#x#j#x#j#x#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#b.s#b.s.s.s#b.s.s.s#b.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s"
+".p.s.p.s.p.s.p.p.p.p.p.p.r.p.p.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.o.q.q.q.q.t.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.t.t.u.t.t.t.v.t.v.t.v.t.v.t.v.t.v.waB.w.v.waB.waB.var.war.var.var.var.varararararararararara#ara#arawarawarawafawafawafawaGacafacawacawacawacacacacaAacaAacaAacaoacaeacaeaAaeaoaeaoaeaoaeaoaHaoajaeajaoajaHajajajajajajajajapajapajagajagapagapagapagap#1apahapahagah#1ahahahaha.ahaqahaqahaka.akaqakaqadaqasaqasadasadasasasasaFas",
+"aEataEatatazatazatauatauataaataaanaaanaaalaaalaaaaaaaa#9aa#Caa#Caa#Caa#C#C#C#C#C#C#C#C#C#C#B#C#H#C#F#C#F#C#F#C#F#p#F#p#F#H#F#H#F#H#t#H#t#F#t#H#t#F#K#H#K#t#K#t#K#t#K#t#K#t#K#t#K#K#x#K#x#K#x#K#x#K#x#K#x#x#x#x#x#x#I#x#x#x#O#x#Q#x#j#x#Q#x#j#x#j#x#j#x#j#x#j#x#j#x#j#x#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#k.s#j.s#k.s#j.s#k.s#b.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.r.s.p.p.r"
+".p.p.p.r.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.r.q.o.q.q.q.o.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.q.t.t.u.t.t.t.u.t.u.t.u.t.u.t.v.t.v.t.v.t.v.taB.w.v.waB.vaB.waB.vaB.var.var.varaBar.vararararamarararamaramarawarawarawarawarawafawafawawawawawawacawacawacawaAacacacaAacaAacaCacaeacaeaAaeaAaeaAaeaoaeaoaeaoaHaeajaeajaeajaeajajajajajajajajagajagajagajag#5agapagapagag#1apahagahagah#1ah#1ahahahahakahaqahakahaka.akaqakaqadakasaqasadasasasasasasaDasaFasaD",
+"azaEazatauatauatauataaataaanaaauaaauaaaaaaaa#9aa#9aa#Caa#Caa#C#9#C#9#6#C#C#C#6#C#6#C#F#C#F#C#F#C#F#C#F#p#F#p#F#H#F#H#F#F#F#H#t#F#t#F#K#F#K#F#K#t#K#t#K#t#K#t#K#t#K#K#x#K#x#K#I#K#x#K#I#K#x#K#I#x#I#x#I#x#O#x#O#x#O#x#O#x#O#x#j#x#j#x#j#x#j#x#j#x#j#x#j.s#j#x#j.s#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#b.s#b.s#b.s.s.s#b.s.s.s#b.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.s"
+".p.s.p.s.p.p.p.p.p.p.r.p.p.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.o.q.q.q.q.t.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.t.t.u.t.t.t.v.t.v.t.v.t.v.t.v.t.v.waB.w.v.waB.waB.vaB.war.var.varaBar.varararararararararara#ara#arawarawarawafawafawafawaGawaGacawacawacawacawacacaAacaAacaAacaoacaeacaoaAaeaAaeaoaeaoaeaoaHaoajaeajaoajaHajajajajajajajajaIajapajagajagaIagapagapagap#1apahapahagah#1ahahahahahahaqahaqahaka.akaqakaqakaqasaqasakasavasasasasaxasaFas",
+"aJataEataEatatazatauatauatauataaataaanaaanaaalaaalaaaa#9aa#9aa#Caa#Caa#Caa#C#C#C#C#C#C#C#C#C#C#B#C#H#C#F#C#F#C#F#C#F#p#F#p#F#H#F#H#F#H#t#H#t#H#t#H#t#F#K#H#K#t#K#t#K#t#K#t#K#t#K#t#K#t#x#K#x#K#x#K#x#K#x#K#x#x#x#x#x#x#x#x#x#x#I#x#x#x#j#x#Q#x#j#x#k#x#j#x#k#x#j#x#j#x#j#x#j.s#j#x#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#k.s#j.s#k.s#j.s#k.s#b.s.s.s#b.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.r.p.p.p.r.p.r"
+".p.r.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.r.q.o.q.q.q.o.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.q.t.q.u.t.t.t.u.t.u.t.u.t.u.t.v.t.v.taB.t.v.taB.taB.waB.vaB.waB.vaB.var.var.varaBaraBaraBararamarararamaramarawarawarawarawarawafawafawawawaGawawacawacawacawaAawacacaAacaAacaCacaeacaeaAaeaAaeaAaeaoaeaoaeaoaHaeajaeajaeajaeajaHajajajajajajaKajapajagajagajagapagapagapagapahagahagahagah#1ahahahahahaha.ahakahaka.akaqakaqakaqadaqasakasadasasasasaFasaFasaDaFaD",
+"azaEazaEazatauatauatauataaataaanaaaaaaaaaaaaaaaa#9aa#9aa#Caa#Caa#C#C#C#C#6#C#C#C#6#C#6#C#F#C#F#C#F#C#F#C#F#p#F#H#F#H#F#H#F#F#F#H#t#F#t#F#t#F#K#F#K#t#K#t#K#t#K#t#K#t#K#t#x#K#x#K#x#K#x#K#I#K#x#K#I#x#x#x#I#x#I#x#O#x#O#x#O#x#O#x#j#x#j#x#j#x#j#x#j#x#j#x#j.s#j#x#j.s#j.s#j.s#j.s#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#b.s#b.s#b.s#b.s.s.s#b.s.s.s#b.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s"
+".p.p.p.p.p.p.p.p.r.p.p.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.o.q.q.q.q.t.q.t.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.u.t.t.t.u.t.v.t.v.t.v.t.v.t.v.waB.waB.waB.waB.vaB.war.var.varaBar.varararararararararara#arafarawarawarawafawafawafawaGawaGacawacaGacawacawacacaAacaAacaAacaAacaeacaoaAaeaAaeaoaeaoaeaoaHaoaHaoajaoajaHajaeajajajajajajaIajapajagajapajag#5agapagapagapahapahagahapahahahahahaha.ahaqahakahaqaqakaqakaqadaqasaqasaqasasasasasasaFasaFas",
+"aJataEataEazaEatatazatauatauatauataaataaanaaanaaaaaaalaaaa#9aa#9aa#Caa#Caa#Caa#C#C#C#C#C#C#C#C#C#C#B#C#H#C#F#C#F#C#F#C#F#p#F#p#F#H#F#H#F#H#t#H#t#H#t#H#t#F#K#H#K#t#K#t#K#t#K#t#K#t#K#t#K#t#x#t#x#K#x#K#x#K#x#K#x#x#x#K#x#x#x#x#x#x#x#x#x#x#I#x#x#x#j#x#k#x#j#x#k#x#j#x#k#x#j#x#j.s#j#x#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#k.s#j.s#k.s#j.s#k.s#j.s#k.s#b.s.s.s#b.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.r.s.p.s.r.p.p.p.r.p.r.p.r"
+".p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.p.q.r.q.o.q.q.q.o.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.q.t.q.u.t.t.t.u.t.u.t.u.t.u.t.v.t.v.taB.t.v.taB.taB.waB.vaB.waB.vaB.vaBaBar.varaBaraBaraBararararararamaramarawarawarawarawarawafawafawawawaGawawacawacawacawaAawacacaAacaAacaCacaAacaeaAaeaAaeaAaeaAaeaoaeaoaHaeaHaoajaeajaeajaHajajajajajajaKajaIajagajagajagaIagapagapagapaLagahagahagah#1ahahahahahaha.ahakahakahakaqakaqakaqadaqasakasakasasasasasasaFasaDasaDaFaD",
+"ataEazatazatazatauatauatauataaauaaanaaaaaaaaaaaaaaaa#Caa#Caa#Caa#Caa#C#C#C#C#6#C#C#C#6#C#6#C#F#C#F#C#F#C#F#C#F#p#F#p#F#H#F#H#F#F#F#H#t#F#t#F#t#F#K#F#K#t#K#t#K#t#K#t#K#t#K#t#x#K#x#K#x#K#x#K#I#K#x#K#I#x#x#x#I#x#I#x#I#x#O#x#O#x#O#x#j#x#j#x#j#x#j#x#j#x#j#x#j#x#j#x#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#b.s#b.s#b.s.s.s#b.s.s.s#b.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.p"
+".p.p.p.p.p.p.r.p.p.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.o.q.q.q.q.t.q.t.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.u.t.t.t.u.t.v.t.v.t.v.taB.t.v.taB.waB.waB.waB.vaB.war.var.varaBaraBaraBararararararararaMarafarawarawarawarawafawafawaGawaGawawacaGacawacawacawaAacaAacaAacaAacaeacaoaAaeaAaeaAaeaoaeaoaHaoaHaoajaoajaeajaeajajajajajajaIajaIajapajapajagajagapagapagapaLapahagahapahahahahahahahaha.ahaqahaqaNakaqakaqakaqadaqasaqasasasasasasaOasaFasaFas",
+"aJaEaJataEataEazaEatatazatauataaataaataaataaanaaanaaaaaaalaaaa#Caa#Caa#Caa#Caa#Caa#C#C#C#C#C#C#C#C#C#C#B#C#H#C#F#C#F#C#F#C#F#p#F#p#F#H#F#H#F#H#t#H#t#H#t#H#t#F#t#H#K#t#K#u#K#t#K#t#K#t#K#t#K#t#x#t#x#K#x#K#x#K#x#K#x#x#x#K#x#x#x#x#x#x#x#x#x#x#x#x#x#x#b#x#x#x#j#x#k#x#j#x#k#x#j#x#k#x#j#x#k.s#j#x#k.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#k.s#j.s#k.s#j.s#k.s#j.s#k.s#j.s#k.s#b.s.s.s#b.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.r.s.p.p.r.p.p.p.r.p.r.p.r.p.r"
+".p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.p.q.r.q.o.q.q.q.o.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.q.t.q.u.t.t.t.u.t.u.t.u.t.u.taB.t.v.taB.taB.taB.taB.waB.vaB.waB.vaB.vaBaBar.varaBaraBaraBararararararaMaramaraMarawarawarawarawarawafawawawaGawawawawacawacawaAawaAawaAacaAacaCacaAacaeaAaeaAaeaAaeaAaeaoaeaoaHaeaHaoajaeajaeajaHajaHajajajajaIajaIajagajagajagaIagapagapagapaLagahapahagahagahahahahahahahahakahakahakaqakaqakaqakaqasakasakasasasasasasasasaDasaFasaDaFaD",
+"azaEataEazatazatauatauataaataaataaauaaanaaaaaaaaaaaa#9aa#Caa#Caa#Caa#Caa#C#C#C#C#6#C#C#C#6#C#6#C#F#C#F#C#F#C#F#C#F#p#F#p#F#H#F#H#F#F#F#H#t#F#t#F#t#F#K#F#K#t#K#t#K#t#K#t#K#t#K#t#x#t#K#K#x#K#x#K#x#K#x#K#I#x#x#K#I#x#x#x#I#x#I#x#I#x#O#x#j#x#O#x#j#x#j#x#j#x#j#x#j#x#j#x#j.s#j#x#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#b.s#b.s#b.s.s.s#b.s.s.s#b.s.s.s#b.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p"
+".p.p.p.p.r.p.p.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.o.q.q.q.q.t.q.t.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.u.t.t.t.u.t.v.t.v.t.v.taB.taB.taB.waB.waB.waB.vaB.waraBar.varaBaraBaraBararararararararaMarafarawarawarawarawafawafawaGawaGawawacaGacawacawacawaAacaAacaAacaAacaAacaoaAaeaAaeaAaeaoaeaoaHaoaHaoaHaoajaeajaoajaHajajajajaIajaIajapajapajagajagapagapagapaLapahapahapahaLahahahahahahahahaqahaqahaka.akaqakaqakaqasaqasakasaPasasasasaFasaFasaFaF",
+"aJaEaJataEataEataEazaEatatauatauataaataaataaanaaalaaalaaaaaaalaaaa#Caa#Caa#Caa#Caa#Caa#C#C#C#C#C#C#C#C#C#C#B#C#H#C#F#C#F#C#F#C#F#p#F#p#F#H#F#H#F#H#t#H#t#H#t#H#t#F#t#H#K#t#K#u#K#t#K#t#K#t#K#t#K#t#x#t#x#t#x#K#x#K#x#K#x#K#x#K#x#x#x#x#x#x#x#x#x#x#x#x#x#x.s#x#x#x#b#x.s#x#b#x#k#x#j#x#k#x#j#x#k.s#j#x#k.s#j.s#k.s#j.s#k.s#j.s#k.s#j.s#k.s#j.s#k.s#j.s#k.s#j.s#k.s#j.s#k.s#j.s#k.s#j.s.s.s#b.s.s.s#b.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.r.s.p.p.r.p.p.p.r.p.r.p.r.p.r.p.r"
+".p.r.p.q.p.q.p.q.p.q.p.q.p.q.p.q.r.q.o.q.q.q.o.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.q.t.q.u.t.t.t.u.t.u.t.u.t.u.taB.taB.taB.taB.taB.taB.waB.vaB.waB.vaB.vaBaBaraBaraBaraBaraBaraBararararaMarararaMarawarawarawarawarawafawaGawaGawawawawacawacawaAawaAawaAacaAacaAacaAacaCaAaeaAaeaAaeaAaeaoaeaoaHaoaHaoaHaeajaeajaHajaHajajajajaIajaIajaKajagajagaIagaIagapagapagapaLapahagahagahaLahahahahahahakahaqahakaNakaqakaqakaqasakasaqasaQasasasasasasaFasaFasaDaFaDaFaR",
+"aEaEazaEazaEazatazatauatauataaataaataaauaaanaaaaaaaaaaaa#9aa#Caa#Caa#Caa#Caa#C#C#C#C#6#C#C#C#6#C#6#C#F#C#F#C#F#C#F#C#F#p#F#p#F#H#F#H#F#F#F#H#t#F#t#F#t#F#K#F#K#t#K#t#K#t#K#t#K#t#K#t#x#t#K#t#x#K#x#K#x#K#x#K#I#x#x#K#I#x#x#x#I#x#x#x#I#x#I#x#j#x#O#x#j#x#j#x#j#x#j#x#j#x#j#x#j.s#j#x#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#b.s#b.s#b.s#b.s#b.s.s.s#b.s.s.s#b.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p"
+".p.p.r.p.p.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.o.q.q.q.q.t.q.t.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.u.t.t.t.u.t.v.taB.t.v.taB.taB.taB.waB.waB.waB.vaB.waBaBar.varaBaraBaraBararararararararaMaraSarawarawarawarawarawafawaGawaGawaGawaGacawacawacawaAacaAacaAacaAacaAacaoaAaeaAaeaAaeaAaeaoaHaoaHaoaHaoajaeajaoajaHajajajajajajajajaIajapajagajapaIagapagapagapaLapahapahagahaLahahahahahahaqahaqahakahaqaqakaqakaqasaqasaqasaqasasasasasasaFasaFaOaDaF",
+"aJaEaJataJataEataEatatazatatatauatauataaataaataaanaaalaaalaaaaaaalaaaa#Caa#Caa#Caa#Caa#C#9#C#C#C#C#C#C#C#C#C#C#B#C#H#C#F#C#F#C#F#C#F#p#F#p#F#H#F#H#F#H#t#H#t#H#t#H#t#F#t#H#t#t#K#u#K#t#K#t#K#t#K#t#K#t#x#t#x#t#x#t#x#K#x#K#x#K#x#K#x#x#x#x#x#x#x#x#x#x#x#x#x#x#x#x#x#x.s#x.s#x.s#x.s#x#b#x.s#x#b#x#k#x#j#x#k.s#j#x#k.s#j.s#k.s#j.s#k.s#j.s#k.s#j.s#k.s#j.s#k.s#b.s.s.s#b.s.s.s#b.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.r.s.p.s.r.p.p.p.r.p.r.p.r.p.r.p.r.p.r.p.r.p.r"
+".p.q.p.q.p.q.p.q.p.q.p.q.p.q.r.q.o.q.q.q.q.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.q.t.q.u.t.t.t.u.t.u.taT.t.u.taB.taB.taB.taB.taB.taB.waB.vaB.waBaBaB.vaBaBaraBaraBaraBaraBaraBararararaMaraSaraMarawarawarawarawaSawarawaGawaGawawawawawawacawaAawaAawaAawaAacaAacaAacaCaAaeaAaeaAaeaAaeaAaeaoaHaoaHaoaHaeajaeajaHajaHajaHajajaIajajajaKajapajagaIagaIagapagapagapagapahagahagahaLahahahahahahaNahaqahakahakaNakaqakaqaQaqasaqasakasasasasasasaOasaFasaDaOaDaFaDaFaR",
+"ataJataEazaEazaEazatazatauatauataaataaataaauaaanaaaaaaaaaaaa#9aa#Caa#Caa#Caa#Caa#C#C#C#C#6#C#C#C#6#C#6#C#F#C#F#C#F#C#F#C#F#p#F#p#F#H#F#H#F#F#F#H#t#F#t#F#t#F#t#F#K#t#K#t#K#t#K#t#K#t#K#t#x#t#K#t#x#K#x#K#x#K#x#K#x#K#x#K#I#x#x#x#I#x#x#x#I#x#x#x#I#x#I#x#j#x#j#x#j#x#j#x#j#x#j#x#j#x#j#x#j.s#j#x#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#b.s#b.s#b.s#b.s#b.s.s.s#b.s.s.s#b.s.s.s#b.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p.p.p"
+".r.p.p.p.r.p.q.p.q.p.q.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.o.q.q.q.q.t.q.t.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.t.t.t.taT.t.w.taB.taB.taB.taB.taB.waB.waB.waB.waB.waBaBaraBaraBaraBaraBaraBararararararaSaraSarawarawarawarawaSawafawaGawaGawaGawaGacawaAawacawaAawaAacaAacaAacaAacaAaAaeaAaoaAaeaAaeaoaHaoaHaoaHaoaHaoajaoajaHajaHajajajajajajaIajapajagajapaIagapagapagapagapahapahagahapahahahahahahaNahaqahaqahaqaqakaqakaqaQaqasaqasaqasasasasasasaFasaFaOaFaOaFaF",
+"aJaEaJaEaJataJataEataEatatazatatatauatauataaataaataaanaaalaaalaaaaaaal#9aa#Caa#Caa#Caa#Caa#C#9#C#C#C#C#C#C#C#C#C#C#B#C#H#C#F#C#F#p#F#C#F#p#F#p#F#p#F#H#F#H#t#H#t#H#t#H#t#H#t#H#t#t#K#u#K#t#K#u#K#t#K#t#K#t#x#t#x#t#x#t#x#t#x#t#x#K#x#K#x#x#x#K#x#x#x#x#x#x#x#x#x#x#x#x#x#x.s#x#x#x.s#x.s#x.s#x.s#x.s#x.s#x.s#x.s.s#b#x.s.s#b#x.s.s#b.s.s.s#b.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.r.s.p.p.r.p.p.p.r.p.r.p.r.p.r.p.r.p.r.p.r.p.q.p.q"
+".p.q.p.q.p.q.p.q.p.q.p.q.q.q.o.q.q.q.q.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.q.t.q.u.t.t.taT.t.t.taT.taT.taB.taB.taB.taB.taB.taB.taB.vaB.waBaBaBaBaBaBaraBaraBaraBaraBaraBaSarararaMaraSaraMaraMarawarawarawaSawaSawaGawaGawawawaGawawacawaAawaAawaAawaAacaAacaAacaCaAaAaAaeaAaeaAaeaAaeaoaHaoaHaoaHaeaHaoajaHajaHajaHajajaIajajajaIajaIajagaIagaIagaIagapagapagapaLagahapahaLahaLahahahahaNahaqahakahakahakaqakaqakaqaQaqasakasakasasasasaOasaFasaDaOaFaOaDaFaDaFaR",
+"aEaJataEataEazaEazaEazatauatauatauataaataaanaaauaaanaaaaaaaaaaaa#9aa#Caa#Caa#Caa#Caa#C#C#C#C#6#C#C#C#B#C#6#C#F#C#F#C#F#C#F#C#F#p#F#p#F#H#F#H#F#F#F#H#t#F#t#H#t#F#t#F#K#t#K#t#K#t#K#t#K#t#K#t#K#t#K#t#x#t#x#K#x#K#x#K#x#K#x#K#I#x#x#x#I#x#x#x#I#x#x#x#I#x#x#x#b#x#I#x#b#x#j#x#j#x#j#x#j#x#j#x#j.s#j#x#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#b.s#b.s#b.s.s.s#b.s.s.s#b.s.s.s#b.s.s.s#b.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.p.p.r.p.p.p.r.p"
+".p.p.r.p.q.p.q.p.q.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.o.q.q.q.q.t.q.t.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.t.t.t.taT.t.w.taB.taB.taB.taB.taB.waB.waB.waBaUaB.waBaBaraUaraBaraBaraBaraBararaSarararaSaraSarawaraGarawarawaSawafawaGawaGawaGawaGacawaAaGacawaAawaAacaAacaAaAaAacaAaAaeaAaoaAaeaAaeaAaHaoaHaoaHaoaHaoajaoajaHajaHajajajajajajaIajaIajapajapaIagaIagapagapagapaLapahapahapahaLahahahahaNahaqahaqahaqaNakaqakaqaQaqasaqasaqasaQasasasasaOasaFasaFaOaFaFaDaF",
+"aJaEaJaEaJaEaJataEataEataEatatazatanatauatauataaataaataaanaaalaaalaaaaaaal#9aa#Caa#Caa#Caa#Caa#C#9#C#C#C#C#C#C#C#C#C#C#B#C#H#C#F#C#F#p#F#C#F#p#F#p#F#p#F#H#F#H#t#H#t#H#t#H#t#H#t#H#t#t#t#H#K#t#K#u#K#t#K#t#K#t#x#t#K#t#x#t#x#t#x#t#x#t#x#K#x#x#x#K#x#x#x#x#x#x#x#x#x#x#x#x#x#x.s#x#x#x.s#x.s#x.s#x.s#x.s#x.s#x.s#x.s#x.s#x.s.s.s#x.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.r.s.p.s.r.s.p.p.r.p.p.p.r.p.r.p.r.p.r.p.r.p.r.p.r.p.q.p.q.p.q"
+".p.q.p.q.p.q.p.q.p.q.q.q.o.q.q.q.q.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.q.t.qaT.t.t.taT.t.6.taT.taT.taB.taB.taB.taB.taB.taB.taBaBaB.waBaBaBaBaBaBaBaBaraBaraBaraBaraBaSarararaMaraSaraMaraMarawarawarawaSawaSawaGawaGawawawaGawawacawaAawaAawaAawaAacaAaAaAacaCaAaAaAaeaAaeaAaeaAaeaAaHaoaHaoaHaeaHaoajaHajaHajaHajaHaIajajajaIajaIajagaIagaIagaIagapagapagapaLagahapahaLahaLahahahahaNahaNahakahaqahakaNakaqakaqakaqasakasaqasaQasasasasaOasaFasaFaOaDaFaDaFaRaFaV",
+"aEaJaEaJazaEataEazaEazaEazatauatauatauataaataaanaaauaaanaaaaaaaaaaaa#9aa#Caa#Caa#Caa#Caa#C#C#C#C#6#C#C#C#B#C#6#C#F#C#F#C#F#C#F#C#F#p#F#p#F#H#F#H#F#F#F#H#t#F#t#H#t#F#t#F#t#t#K#F#K#t#K#t#K#t#K#t#K#t#K#t#x#t#x#t#x#K#x#K#x#K#x#K#x#x#x#x#I#x#x#x#I#x#x#x#I#x#x#x#b#x#x#x#b#x.s#x#b#x#b#x#b#x#j#x#j#x#j#x#j.s#j#x#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#b.s#b.s#b.s#b.s#b.s#b.s.s.s#b.s.s.s#b.s.s.s#b.s.s.s#b.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.p.p.p.p.r.p.p.p.r.p.r.p"
+".r.p.q.p.q.p.q.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.o.q.q.q.q.t.q.t.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.6.t.t.taT.taU.taB.taB.taB.taB.taB.taB.waB.waBaUaBaUaBaBaraUaraBaraBaraBaraBararaSaraSaraSaraSarawaraGarawarawaSawaSawaGawaGawaGawaGawawaAaGaAawaAawaAawaAacaAaAaAacaAaAaoaAaoaAaeaAaeaAaHaoaHaoaHaoaHaoaHaoajaHajaWajaHajajajajaIajaIajapajapaIagaIagapagapagapaLapahapahapahaLahahahahaNahaNahaqahaqaNakaqakaqakaqaQaqasaqasaXasaPasasaOasaOasaFasaFaOaDaFaDaF",
+"aJaEaJaEaJaEaJaEaJataEataEataEatatazatauatauatauataaataaanaaanaaalaaalaaaaaaal#9aa#Caa#Caa#Caa#C#l#C#9#C#C#C#C#C#C#C#C#C#C#B#C#H#C#F#C#F#p#F#C#F#p#F#p#F#p#F#H#F#H#t#H#t#H#t#H#t#H#t#H#t#u#t#H#t#t#K#u#K#t#K#u#K#t#x#t#K#t#x#t#x#t#x#t#x#t#x#t#x#t#x#K#x#x#x#x#x#x#x#x#x#x#x#x#x#x#x#x#x#x.s#x#x#x.s#x.s#x.s#x.s#x.s#x.s#x.s#x.s#x.s#x.s.s.s#x.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.r.s.p.s.r.p.p.p.r.p.r.p.r.p.r.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q"
+".p.q.p.q.p.q.p.q.q.q.o.q.q.q.q.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.6.q.t.qaT.t.6.taT.t.6.taT.taT.taT.taB.taB.taB.taB.6aB.taBaBaBaUaBaBaBaBaBaBaBaBaraBaraBaraBaraBaSaBaSaraMaraSaraMaraMarawaSawarawaSawaSawaGawaGawawawaGaYawawawaAawaAawaAawaAawaAaAaAacaCaAaAaAaeaAaeaAaHaAaeaAaHaoaHaoaHaoaHaoaHaHajaHajaHajaHaIajajajaIajaIajaKaIagajagaIagaIagapagapaLapaLapahaLahaLahaLahahahahaNahaNahaqahakaNakaqakaqakaqaQaqasaqasaQasasasasasasaOasaFasaDaOaDaFaRaFaRaFaV",
+"aEaJaEaJaEaJazaEataEazatazatazatauatauatauataaataaanaaaaaaalaaaaaaaa#9aa#9aa#Caa#Caa#Caa#Caa#C#C#C#C#6#C#C#C#B#C#6#C#F#C#F#C#F#C#F#C#F#p#F#p#F#p#F#H#F#H#F#H#t#F#t#H#t#F#t#F#t#t#K#F#K#t#K#t#K#t#K#t#K#t#K#t#x#t#x#t#x#t#x#t#x#K#x#K#x#x#x#K#x#x#x#x#I#x#x#x#I#x#x#x#I#x#x#x#b#x.s#x#b#x.s#x#b#x.s#x#b#x.s#x#b#x#b#x#b.s#b#x#b.s#b.s#b.s#b.s#b.s#b.s#b.s#b.s#b.s.s.s#b.s.s.s#b.s.s.s#b.s.s.s#b.s.s.s#b.s.s.s#b.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p.p.p.r.p.p.p.r.p.r.p.q.p"
+".q.p.q.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.o.q.q.q.o.q.q.q.q.t.q.t.q.t.q.t.q.t.q.t.q.t.t.6.t.t.t.6.t.6.taT.t.6.taB.taB.taB.taB.taB.taBaUaB.waBaUaBaUaBaBaBaUaraBaraBaraBaraBararaSaraSaraSaraSaraMaraGarawarawaSawaSawaGawaGawaGawaGawawaAaGaAawaAawaAawaAacaAaAaAaAaAaAaAaAaoaAaeaAaeaAaHaoaHaoaHaoaHaoaHaoajaHajaWajaHajajajajaIajaIajaIajapaIagaIapaIagapagapaLapaLapahapahaLahaZahahaNahaNahaqahaqaNakaNaqaqakaqakaqaQaqasaXasaXasasaOasaOasaFasaFaOaDaFaFaFaRaF",
+"a0aJaJaEaJaEaJaEaJaEaJataEataEataEatatazatauatauatauataaataaanaaanaaalaaalaaaaaaal#9aa#Caa#Caa#Caa#C#l#Caa#C#C#C#C#C#C#C#C#C#C#B#C#p#C#F#C#H#C#F#C#F#p#F#p#F#p#F#p#F#H#t#H#t#H#t#H#t#H#t#H#t#u#t#H#t#t#t#u#K#t#K#u#K#t#K#u#K#t#x#t#x#t#x#t#x#t#x#t#x#t#x#t#x#e#x#t#x#x#x#x#x#x#x#x#x#x#x#x#x#x.s#x#x#x.s#x.s#x.s#x.s#x.s#x.s#x.s#x.s#x.s#x.s#x.s#x.s.s.s#x.s.s.s#x.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.r.s.p.s.r.s.p.p.r.p.p.p.r.p.r.p.r.p.r.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q"
+".p.q.r.q.o.q.q.q.o.q.q.q.q.q.q.q.q.q.q.t.q.6.q.t.q.6.q.t.q.6.q.6.qaT.t.6.taT.taT.taT.taT.taT.taB.taB.taB.taB.6aB.6aBaBaBaUaBaBaBaBaBaBaBaBaraBaraBaSaBaraBaSaBaSaraMaraSaraMaraMarawaSawarawaSawaSawaSawaGawawawaGaYawaYawaAawaAawaAawaAawaAaAaAaAaAaAaAaAaCaAaeaAaHaAaeaAaHaAaHaoaHaoaHaoaHaHajaHajaHajaHaIaHajajaIajaIajaKajapajagaIagaIagapagapaLapaLapahagahagahaLahahahahahahaNahaqahakaNakaNakaqakaqaQaqasaqasaQasaQasasasasaOasaFasaDaOaDaFaRaFaRaFaVa1aV",
+"aEaJaEaJaEaJaEaJazaEataEazatazatauatauataaataaataaataaanaaaaaaalaaaaaaaa#9aa#9aa#Caa#Caa#Caa#Caa#C#C#C#C#6#C#C#C#B#C#B#C#F#C#F#C#F#C#F#C#F#p#F#p#F#p#F#H#F#H#F#H#t#F#t#H#t#F#t#H#t#t#t#F#K#t#K#t#K#t#K#t#K#t#K#t#x#t#x#t#x#t#x#t#x#t#x#K#x#K#x#K#x#x#x#x#x#x#x#x#x#x#x#x#I#x#x#x#b#x#x#x#b#x.s#x#b#x.s#x#b#x.s#x#b#x.s#x#b.s.s#x#b.s.s#x#b.s.s.s#b.s.s.s#b.s.s.s#b.s.s.s#b.s.s.s#b.s.s.s#b.s.s.s#b.s.s.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.p.p.r.p.p.p.r.p.p.p.r.p.r.p.q.p.q.p"
+".q.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.o.q.q.q.o.q.q.q.q.t.q.t.q.t.q.t.q.t.q.6.q.t.t.6.t.6.t.6.t.6.taT.t.6.taB.taB.taB.taB.taB.taBaUaBaUaBaUaBaUaBaBaBaUaraBaraBaraBaSaBararaSaraSaraSaraSaraMaraGaSawarawaSawaSawaGawaGawaGawaGawawaAaGaAawaAawaAawaAacaAaAaAaAaAaAaAaAaoaAaeaAaoaAaHaAaHaoaHaoaHaoaHaoajaWajaWajaHajaHajajaIajaIajaIajapaIagaIapaIagapagapaLapaLapahapahaLahaZahahahahaNahaNahaqaNaqaNaqaNakaqakaqaQaqasaqasaXasasasasaOasaOasaFaOaFaOaFaFaRaFaRaF",
+"a2aJa0aEaJaEaJaEaJataJataJataEataEataEatatazatauataaataaataaataaanaaanaaalaaalaaaaaaal#9aa#Caa#Caa#Caa#C#l#C#l#C#C#C#C#C#C#C#C#C#C#B#C#p#C#F#C#H#C#F#C#F#p#F#p#F#p#F#p#F#H#t#H#t#H#t#H#t#H#t#H#t#H#t#H#t#u#t#u#t#t#K#u#K#t#K#u#K#t#x#t#x#t#x#t#x#t#x#t#x#t#x#t#x#e#x#t#x#e#x#e#x#e#x#e#x#x#x#x#x#x#x#x#x#x.s#x#x#x.s#x.s#x.s#x.s#x.s#x.s#x.s#x.s#x.s#x.s#x.s#x.s.s.s#x.s.s.s#e.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.r.s.p.s.r.s.p.s.r.p.p.p.r.p.r.p.r.p.r.p.r.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.p.q.p.q"
+".r.q.o.q.q.q.o.q.q.q.q.q.q.q.q.m.q.t.q.6.q.t.q.6.q.6.q.6.q.6.qaT.t.6.taT.taT.taT.taT.taT.taB.taB.6aB.taB.6aB.6aBaUaBaUaBaBaBaUaBaBaBaBaraBaraBaSaBaSaBaSaBaSaraSaraSaraMaraMaraMaSawaSawaSawaSawaSawaGawaGawaGaYawaYawaAawaAawaAawaAawaAaAaAaAaAaAaAaAaCaAaeaAaHaAaHaAaHaAaHaoaHaoaHaoaHaHaHaWajaHajaHaIaHajajaIajaIajaKajapajagaIagaIagaIagapaLapaLapaLagahapahaLahaLahahahahaNahaNahakaNakaNakaqakaqaQaqaQaqasaQasaQasasasasaOasaOasaDaOaFaOaDaFaRaFaRaFaVa1aV",
+"aEaJaEaJaEaJataJataEazaEataEazatazatauatauataaataaataaanaaanaaaaaaalaaaaaaaa#9aa#9aa#Caa#Caa#Caa#Caa#C#C#C#C#6#C#C#C#B#C#B#C#F#C#F#C#F#C#F#C#F#p#F#p#F#p#F#H#F#H#F#H#t#F#t#H#t#F#t#H#t#F#t#F#t#t#K#t#K#t#K#t#K#t#K#t#x#t#K#t#x#t#x#t#x#t#x#t#x#t#x#K#x#x#x#x#x#x#x#x#x#x#x#x#x#x#x#x#x#x#x#x#b#x.s#x#b#x.s#x#b#x.s#x#b#x.s#x#b#x.s#x#b.s.s#x#b.s.s#x#b.s.s.s#b.s.s.s#b.s.s.s#b.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p.p.p.r.p.p.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p"
+".q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.o.q.q.q.o.q.q.q.q.t.q.t.q.t.q.6.q.t.q.6.q.6.t.6.t.6.t.6.t.6.taT.t.6.taB.taB.taB.taB.6aB.taBaUaBaUaBaUaBaUaBaBaBaUaraBaraBaraBaSaBaSaBaSaraSaraSaraSaraMaraGaSawarawaSawaSawaSawaGawaGaYaGawaGaYaGaAawaAawaAawaAawaAaAaAaAaAaAaAaAaAaAaeaAaoaAaHaAaHaoaHaoaHaWaHaoaHaWajaWajaHajaHajajaIajaIajaIajaIaIapaIapaIagaIagapaLapaLapaLapahaZahaZahaLahahahahaNahaqahaqahaqaNakaqakaqaQaqaQaqasaqasaQasaPasasaOasaFaOaFaOaFaFaRaFaRaFaVaF",
+"a0aJa2aJa0aEaJaEaJaEaJataJataEataEatatatatatatauatauataaataaataaataaanaaanaaalaaalaaaaaaal#9aa#Caa#Caa#Caa#C#l#C#l#C#C#C#C#C#C#C#C#C#C#p#C#p#C#F#C#H#C#F#C#F#p#F#p#F#p#F#p#F#p#t#H#F#H#t#H#t#H#t#H#t#H#t#H#t#u#t#u#t#t#t#u#K#t#K#u#K#t#x#u#K#t#x#u#x#t#x#t#x#t#x#t#x#t#x#t#x#e#x#e#x#e#x#e#x#e#x#e#x#e#x#e#x#e#x#e#x#e.s#e#x#e.s#e.s#e.s#e.s#e.s#e.s#e.s#e.s#e.s#e.s#e.s#e.s#e.s#e.s.p.s#e.s.p.s#e.s.p.s#e.s.p.s.p.s.p.s.r.s.p.s.r.s.p.s.r.p.p.p.r.p.r.p.r.p.r.p.r.p.r.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.p.q.p.q.p.q.r.q"
+".o.m.q.q.o.m.q.q.q.m.q.q.q.m.q.6.q.6.q.6.q.6.q.6.q.6.q.6.qaT.t.6.taT.taT.taT.taT.taB.6aB.taB.6aB.6aB.6aB.6aBaUaBaUaBaBaBaUaBaBaBaBaSaBaraBaSaBaSaBaSaBaSaraSaraSaraMaSaSaraMaSawaSawaSawaSawaSawaGawaGawaGaYawaYawaYawaAawaAawaAawaAaYaAaAaAaAaAaAaCaAaAaAaHaAaHaAaHaAaHaoaHaoaHaoaHaHaHaWajaHajaHaIaHajaHaIajaIajaIajaIajagaIagaIagaIagapaLapaLapaLagahapahaLahaLahahahahaNahaNahakaNaqaNakaNakaqaQaqaQaqasakasaXasaQasasaOasaOasaFaOaFaOaDaFaDaFaRaFaRaFaVaRaV",
+"aJaJaEaJaEaJaEaJataJataEazaEataEazatazatauatauataaataaataaanaaanaaaaaaalaaaaaaaa#Caa#Caa#Caa#Caa#Caa#C#9#C#C#C#C#6#C#C#C#B#C#B#C#F#C#F#C#F#C#F#C#F#p#F#p#F#p#F#p#F#H#F#H#t#H#t#H#t#F#t#H#t#F#t#H#t#t#t#t#K#t#K#t#K#t#K#t#x#t#K#t#x#t#x#t#x#t#x#t#x#t#x#t#x#e#x#t#x#x#x#x#x#x#x#x#x#x#x#x#x#x#x#x.s#x#x#x.s#x.s#x.s#x.s#x.s#x.s#x.s#x.s#x.s#x.s#x.s.s.s#x.s.s.s#x.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.p.p.r.p.p.p.r.p.p.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p"
+".q.p.q.p.q.p.q.o.q.o.q.o.q.o.q.q.q.o.q.q.m.q.t.q.6.q.t.q.6.q.6.q.6.q.6.t.6.t.6.t.6.t.6.taT.t.6.taB.taB.6aB.taB.6aB.6aBaUaBaUaBaUaBaUaBaBaBaUaraBaSaBaraBaSaBaSaBaSaraSaraSaraSaraMaraGaSawaSawaSawaSawaSawaGawaGaYaGawaGaYaGaAawaAawaAawaAawaAaAaAaAaAaAaAaAaAaAaHaAaoaAaHaAaHaAaHaoaHaWaHaoaHaWajaWajaHajaHajaHaIajaIajaIajaIaIapaIapaIagaIagapaLapaLapaLapahaZahaZahaLahahahahaNahaNahaqahaqaNakaNakaqaQaqaQaqasaqasaXasaXasasaOasaOasaFaOaFaOaDaFa1aFaRaFaVa1",
+"a0aJa0aJa2aJa3aEaJaEaJaEaJataJataEataEatatazatatatauatauataaataaataaataaanaaanaaalaaalaaaaaaal#9aa#Caa#Caa#Caa#C#l#C#l#C#C#C#C#C#C#C#C#C#C#p#C#p#C#F#C#H#C#F#C#F#p#F#p#F#p#F#p#F#p#t#H#F#H#t#H#t#H#t#H#t#H#t#H#t#u#t#u#t#u#t#u#t#t#t#u#K#t#K#u#K#t#x#u#x#t#x#u#x#t#x#t#x#t#x#t#x#e#x#t#x#e#x#e#x#e#x#e#x#e#x#e#x#e#x#e#x#e#x#e#x#e.s#e#x#e.s#e.s#e.s#e.s#e.s#e.s#e.s#e.s#e.s#e.s#e.s#e.s#e.s#e.s#e.s#e.s.p.s#h.s.p.s#h.s.p.s#h.s.p.p#h.p.p.p#h.p.r.p.r.p.r.p.r.p.r.p.r.p.r.p.r.p.q.p.m.p.q.p.m.p.q.p.m.p.q.p.m.p.q.p.m.q.q.o.m"
+".q.q.q.m.q.m.q.m.q.m.q.m.q.6.q.6.q.6.q.6.q.6.q.6.q.6.taT.t.6.taT.taT.taT.6aT.taB.6aB.6aB.6aB.6aB.6aB.6aBaUaBaUaBaBaBaUa4aBaBaBaSaBaSaBaSaBaSaBaSaBaSaraSaraSaraMaSaSaraMaSawaSawaSawaSawaSawaSaYaGawaGaYawaYaGaYawaAawaAawaAawaAaYaAaAaAaAaAaAaCaAaAaAaHaAaHaAaHaAaHaAaHaoaHaoaHaHaHaWajaHajaHaIaHaIaHaIajaIajaIaIaIajagaIagaIagaIagaIaLapaLapaLapaLapahaLahaLahaLahahaNahaNahaNaNaqaNakaNakaqaQaqaQaqaQaqasaqasaQasasaOasaOasaOaOaFaOaDaOaDaFaRaFaRaFaVa1aVa1a5",
+"aJa2aJaJaEaJaEaJaEaJataEataEazaEataEazatauatauatauataaataaataaanaaanaaaaaaalaaaaaaaa#Caa#Caa#Caa#Caa#C#l#C#9#C#C#C#C#6#C#C#C#B#C#p#C#B#C#F#C#F#C#F#C#F#p#F#p#F#p#F#p#F#H#F#H#t#H#t#H#t#F#t#H#t#F#t#H#t#t#t#t#t#t#K#t#K#t#K#t#K#t#K#t#x#t#x#t#x#t#x#t#x#t#x#t#x#t#x#t#x#e#x#e#x#e#x#x#x#x#x#x#x#x#x#x#x#x#x#x.s#x#x#x.s#x.s#x.s#x.s#x.s#x.s#x.s#x.s#x.s#x.s#x.s#x.s#x.s.s.s#x.s.s.s#e.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p.p.p.r.p.p.p.r.p.p.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.p.q.p"
+".q.p.q.o.q.o.q.o.q.q.q.o.q.q.m.o.q.q.6.q.t.q.6.q.6.q.6.q.6.q.6.q.6.t.6.t.6.t.6.t.6.taT.t.6.6aB.taB.6aB.6aB.6aB.6aBaUaBaUaBaUaBaUaBaBaBaUaraBaSaBaSaBaSaBaSaBaSaraSaraSaraSaSaMaraSaSawaSawaSawaSawaSawaGawaGaYaGaYaGaYaGaAawaAaGaAawaAawaAaAaAaAaAaAaAaAaAaAaHaAaoaAaHaAaHaAaHaoaHaWaHaWaHaWaHaWajaHajaWajaHaIajaIajaIajaIaIapaIapaIagaIagaIaLapaLapaLapaLaZahaZahaLahaZahahaNahaNahaqahaqaNakaNaqaqaQaqaQaqaQaqasaXasaXasasaOasaOasaFasaFaOaFaOaFaFaRaFaRa1aVa1",
+"a0aJa0aJa0aJaJaJa3aEaJaEaJaEaJataJataEataEatatazatatatauatauataaataaataaataaalaaalaaalaaalaaaa#lal#9aa#Caa#Caa#Caa#C#l#C#l#C#C#C#C#C#C#C#C#C#C#p#C#p#C#B#C#H#C#F#C#H#p#F#p#F#p#F#p#F#p#t#p#F#H#t#H#t#H#t#H#t#H#t#H#t#u#t#H#t#u#t#u#t#u#t#u#t#t#K#u#K#t#x#u#x#t#x#u#x#t#x#u#x#t#x#u#x#t#x#t#x#e#x#t#x#e#x#e#x#e#x#e#x#e#x#e#x#e#x#e#x#e#x#e#x#e.s#e#x#e.s#e.s#e.s#e.s#e.s#e.s#e.s#e.s#e.s#h.s#e.s#h.s#e.s#h.s#e.s#h.s#e.p#h.p#e.p#h.p.r.p#h.p.r.p#h.p.r.p#h.p.r.p#h.p.r.p#h.p.q.p.m.p.q.p.m.p.q.p.m.p.m.p.m.r.m.p.m.q.m.o.m.q.m"
+".q.m.q.m.q.m.q.m.q.m.q.6.q.6.q.6.q.6.q.6.q.6.q.6.taT.6.6.taT.6aT.taT.6aT.6aB.6aB.6aB.6aB.6aB.6aB.6aBaUaBaUaBaBaBaUa4aBa4aBaSaBaSaBaSaBaSaBaSaBaSaraSaSaSaraMaSaSaSaMaSawaSawaSawaSawaSawaSaYaGaYaGaYawaYaGaYawaAawaAaYaAawaAaYaAaAaAaAaAaAaCaAaAaAaHaAaHaAaHaAaHaAaHaWaHaoaHaWaHaWaHaHajaHaIaHaIaHaIajaIajaIaIaIajaKaIapaIagaIagaIaLapaLapaLapaLapahaLahaLahaLahahaNahaNahaNahaqaNakaNakaNaQaqaQaqaQaqasaqasaQasaQaOasaOasaOasaFaOaDaOaFaOaRaFaRaFaRa1aVa1aVaRa5",
+"aJa2aJa2aEaJaEaJaEaJaEaJataEataEazaEataEazatauatauatauataaataaataaanaaanaaaaaaalaaaaaaaa#Caa#Caa#Caa#Caa#C#l#C#9#C#C#C#C#6#C#C#C#B#C#p#C#B#C#F#C#F#C#F#C#F#p#F#p#F#p#F#p#F#p#F#H#t#H#t#H#t#H#t#H#t#F#t#H#t#t#t#u#t#t#t#t#K#t#K#t#K#t#K#t#x#t#x#t#x#t#x#t#x#t#x#t#x#t#x#t#x#e#x#t#x#e#x#e#x#e#x#e#x#e#x#e#x#e#x#e#x#e#x#e.s#x#x#x.s#x.s#x.s#e.s#e.s#e.s#e.s#e.s#e.s#e.s#e.s#e.s#e.s.p.s#e.s.p.s#e.s.p.s#e.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p.p.p.r.p.p.p.r.p.p.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.p.q.p.q.p.q.p"
+".m.o.q.o.m.o.q.q.m.o.q.q.m.o.m.q.6.q.6.q.6.q.6.q.6.q.6.q.6.q.6.t.6.t.6.taT.t.6.6aT.t.6.6aB.6aB.6aB.6aB.6aB.6aBaUaBaUaBaUaBaUaBaBa4aUaraBaSaBaSaBaSaBaSaBaSaraSaraSaraSaSaSaSaSaSawaSawaSawaSawaSawaGawaGaYaGaYaGaYaGaYawaAaGaAaYaAawaAaYaAaAaAaAaAaAaAaAa6aAaWaAaHaAaHaAaHaoaHaWaHaWaHaWaHaWajaHajaWajaHaIaHaIajaIajaIaIaIaIapaIagaIapaIaLapaLapaLapaLaZahaZahaLahaZahahaNahaNahaNahaqaNaqaNaqaNaQaqaQaqaQaqasaXasaXasaQaOasaOasaOasaFaOaFaOaFaFaRaFaRa1aVa1aVa1",
+"a0aJa0aJa0aJa0aJaJaEaJaEaJaEaJaEaJataEataEataEatatazatatatauatauataaataaataaanaaalaaalaaalaaalaaaa#lal#9aa#Cal#Caa#Caa#C#l#C#l#C#C#C#C#C#C#C#C#C#C#p#C#p#C#B#C#H#C#F#C#H#p#F#p#F#p#F#p#F#p#F#p#F#p#t#H#t#H#t#H#t#H#t#H#t#u#t#H#t#u#t#u#t#u#t#u#t#u#t#u#t#t#x#u#K#t#x#u#x#t#x#u#x#t#x#u#x#t#x#u#x#e#x#u#x#e#x#h#x#e#x#h#x#e#x#h#x#e#x#h#x#e#x#h#x#e#x#h#x#e.s#h#x#e.s#h.s#e.s#h.s#e.s#h.s#e.s#h.s#e.s#h.p#e.p#h.p#h.p#h.p#h.p#h.p#h.p#h.p#h.p#h.p#h.p#h.p#h.p#h.p#h.p.m.p.m.p.m.p.m.p.m.p.m.p.m.p.m.p.m.r.m.o.m.q.m.o.m.q.m.q.m"
+".q.m.q.m.q.m.q.6.q.6.q.6.q.6.q.6.q.6.q.6.m.6.taT.6.6.taT.6aT.6aT.6aT.6aB.6aB.6aB.6aB.6aB.6aB.6aBaUaBaUa4aBaBaUa4aBa4aBa4aBaSaBaSaBaSaBaSaBaSaBaSaSaSaraMaSaSaSaMaSawaSawaSawaSawaSawaSaYaGaYaGaYawaYaGaYawaAawaAaYaAaYaAaYaAaYaAaAaAaAaCaAaAaAa7aAaHaAaHaAaHaAaHaWaHaWaHaWaHaWaHaHajaHaIaHaIaHaIaHaIajaIaIaIajaKaIapaIagaIagaIaLapaLapaLapaLapaLaLahaZahaLahaLaNahaNahaNahaNahakaNakaNakaqaQaqaQaqaQaqasaQasaXasasaOasaOasaOasaFaOaFaOaRaFaRaFaRa1aVa1aVaRaVaVa5",
+"aJa0aJa2aJa2aEaJaEaJaEaJaEaJataEataEazaEataEazatauatauatauataaataaataaanaaanaaaaaaalaaaaaaaa#Caa#Caa#Caa#Caa#C#l#Caa#C#C#C#C#C#C#C#C#B#C#p#C#B#C#F#C#F#C#F#C#F#p#F#p#F#p#F#p#F#p#F#H#t#H#t#H#t#H#t#H#t#F#t#H#t#t#t#H#t#t#t#u#t#t#K#t#K#t#K#t#x#t#K#t#x#t#x#t#x#t#x#t#x#t#x#t#x#e#x#t#x#e#x#e#x#e#x#e#x#e#x#e#x#e#x#e#x#e#x#e.s#e#x#e.s#e#x#e.s#e.s#e.s#e.s#e.s#e.s#e.s#e.s#e.s#e.s#e.s#e.s#e.s#e.s#e.s#e.s#e.s.p.s#e.s.p.s#e.s.p.s#e.p.p.p#e.p.p.p#h.p.p.p#h.p.p.p#h.p.r.p#h.p.r.p#h.p.q.p.m.p.q.p.m.p.q.p.m.p.q.p.m.p.q.p.m.o"
+".q.o.m.o.m.q.m.o.m.q.m.q.m.q.6.q.6.q.6.q.6.q.6.q.6.q.6.q.6.t.6.t.6.6aT.t.6.6aT.t.6.6aB.6aB.6aB.6aB.6aB.6aBaUaBaUaBaUa4aUaBaBa4aUaSaBaSaBaSaBaSaBaSaBaSaraSaSaSaraSaSaSaSaSaSawaSaGaSawaSawaSaYaSawaGaYaGaYaGaYaGaYawaAaGaAaYaAaYaAaYaAaAaAaAaAaAaAaAa6aAaWaAaHaAaHaAaHaAaHaWaHaWaHaWaHaWajaWaIaWajaHaIaHaIajaIajaIaIaIaIapaIagaIapaIaLaIaLapaLapaLaZaLaZahaZahaZahaLaNahaNahaNahaqaNaqaNaqaNaQaqaQaqaQaqaQaXasaXasaQaOaPaOasaOasaOaOaFaOaFaOaRaFaRaFaRa1aVa1a5a1",
+"a8a2a0aJa0aJa0aJa0aJaJaEaJaEaJaEaJaEaJataEataEataEatatazatatatauatauataaataaataaanaaalaaalaaalaaalaaal#lal#9aa#Cal#Caa#Caa#C#l#C#l#C#C#C#C#C#C#C#C#C#C#p#C#p#C#p#C#H#C#F#C#H#p#F#p#H#p#F#p#F#p#F#p#F#p#t#p#t#H#t#H#t#H#t#H#t#H#t#H#t#u#t#u#t#u#t#u#t#u#t#u#t#u#t#u#t#u#e#u#e#t#x#u#x#t#x#u#x#t#x#u#x#t#x#u#x#e#x#u#x#e#x#h#x#e#x#h#x#e#x#h#x#e#x#h#x#e#x#h#x#e#x#h#x#e.s#h#x#e.s#h#e#e.p#h.p#e.p#h.p#h.p#h.p#h.p#h.p#h.p#h.p#h.p#h.p#h.p#h.p#h.p#h.p#h.p.m.p.m.p.m.p.m.p.m.p.m.p.m.p.m.p.m.r.m.p.m.r.m.o.m.q.m.q.m.q.m.q.m.q.m"
+".q.m.q.m.q.6.q.6.q.6.m.6.q.6.m.6.q.6.m.6.6aT.6.6.6aT.6aT.6aT.6aT.6aB.6aB.6aB.6aB.6aB.6aB.6a4aBaBaUa4aBa4aUa4aBa4aBa4aBaSaBaSaBaSaBaSa4aSaBaSaSaSaSaMaSaSaSaMaSaMaSawaSawaSaYaSawaSaYaGaYaGaYawaYaGaYawaYawaAaYaAaYaAaYaAaYaAaAaAaAa7aAaAaAa7aAaHaAaHaAaHaAaHa6aHaWaHaWaHaWaHaHaHaWaIaHaIaHaIaHaIajaIaIaIaIaKaIaIaIagaIagaIaLaIaLapaLapaLapaLaLahaZahaLahaLaNahaNahaNahaNahakaNaqaNakaNakaqaQaqaQaqasaQasaXasaQasasaOasaOasaFaOaFaOaDaOaRaFaRaFaRa1aVaRaVa1a5aVa5",
+"aJa2aJa0aJa2aJa2aEaJaEaJaEaJaEaJataEataEazatatatazatauatauatauataaataaataaanaaanaaaaaaalaaaaaaaa#Caa#Caa#Caa#Caa#C#l#Caa#C#C#C#C#C#C#C#C#B#C#p#C#B#C#F#C#F#C#F#C#F#p#F#p#F#p#F#p#F#p#F#p#t#H#t#H#t#H#t#H#t#H#t#H#t#t#t#H#t#t#t#u#t#t#t#u#K#t#K#t#K#t#K#t#x#t#x#t#x#t#x#t#x#t#x#t#x#t#x#t#x#e#x#t#x#e#x#e#x#e#x#e#x#e#x#e#x#e#x#e#x#e#x#e.s#e#x#e.s#e#x#e.s#e.s#e.s#e.s#e.s#e.s#e.s#e.s#e.s#e.s#e.s#e.s#e.s#e.s#e.s#e.s#e.p#e.p#e.p#e.p#h.p#e.p#h.p.p.p#h.p.p.p#h.p.r.p#h.p.r.p.m.p.q.p.m.p.m.p.m.p.m.p.m.p.m.p.m.p.m.o.m.o.m.o"
+".m.o.m.q.m.o.m.q.m.q.m.q.6.q.6.q.6.q.6.q.6.q.6.q.6.t.6.6.6.t.6.6aT.6.6.6aT.6.6.6aB.6aB.6aB.6aB.6aB.6aBaUaBaUaBaUa4aUaBaBa4aUa4aBaSaBaSaBaSaBaSaBaSaraSaSaSaraSaSaSaSaSaSawaSaGaSawaSawaSaYaSaYaGaYaGaYaGaYaGaYawaAaGaAaYaAaYaAaYaAaAaAaAaAaAaAaAa6aAaWaAaHaAaWaAaHaAaHaWaHaWaHaWaHaWaHaWaIaWaIaHaIaHaIajaIajaIaIaIaIaIaIapaIapaIaLaIaLapaLapaLaZaLaZahaZahaZahaLaNahaNahaNahaNaNaqaNaqaNaQaNaQaqaQaqaQaXasaXasaXasaXaOasaOasaOaOaFaOaFaOaRaFa1aFaRa1aVa1aVa1a5aV",
+"a8a2a8a2a0aJa0aJa0aJa0aJaJaEaJaEaJaEaJaEaJataEataEataEatatazatanatauatauataaataaataaanaaalaaalaaalaaalaaal#lal#9aa#Cal#Caa#Caa#C#l#C#l#C#C#C#C#C#C#C#C#C#C#p#C#p#C#p#C#p#C#F#C#H#p#F#p#H#p#F#p#F#p#F#p#F#p#t#p#t#p#t#H#t#H#t#H#t#H#t#H#t#u#t#u#t#u#t#u#t#u#t#u#t#u#t#u#t#u#e#u#t#u#e#u#e#u#e#u#e#u#e#u#x#t#x#u#x#t#x#u#x#e#x#u#x#e#x#h#x#e#x#h#x#e#x#h#x#e#x#h#e#e#e#h#e#h#e#h#e#h.p#h#e#h.p#h#e#h.p#h#e#h.p#h#e#h.p#h.p#h.p#h.p#h.p#h.p#h.p#h.p.m.p.m.p.m.p.m.p.m.p.m.p.m.p.m.p.m.p.m.r.m.p.m.q.m.o.m.q.m.q.m.q.m.q.m.q.m.q.m"
+".m.m.q.6.m.6.q.6.m.6.q.6.m.6.maT.m.6.6aT.6.6.6aT.6aT.6aT.6aT.6aB.6aB.6aB.6aB.6a4.6aB.6a4aBa4aUa4aBa4aUa4aBa4aBa4aBaSaBaSaBaSaBaSa4aSaBaSaSaSaSaMaSaSaSaMaSaMaSawaSawaSaYaSaYaSaYaGaYaGaYawaYaGaYaYaYawaAaYaAaYaAaYaAaYaAaAaAaAa6aAa6aAa7aAaHaAaHaAaHaAaHa6aHaWaHaWaHaWaHaHaHaWaIaHaIaHaIaHaIajaIaIaIaIaIaIaIaIagaIagaIaLaIaLapaLapaLapaLaLahaZahaLahaLaNaLaNahaNahaNahakaNaqaNakaNakaqaQaqaQaqaQaXasaXasaQasasaOasaOasaOaOaFaOaDaOaRaFaRaFaRa1aVa1aVa1a5aVa5aVa5",
+"a2a0aJa2aJa0aJaJaEaJaEaJaEaJaEaJaEaEataEataEazatatatazatauatauatauataaataaataaanaaanaaaaaaalaaaaaaaa#Caa#Caa#Caa#Caa#C#l#Caa#C#C#C#C#C#C#C#C#B#C#C#C#B#C#p#C#F#C#F#C#F#p#F#p#F#p#F#p#F#p#F#p#t#p#F#H#t#H#t#H#t#H#t#H#t#H#t#H#t#t#t#u#t#t#t#u#t#t#t#u#t#t#K#t#x#t#x#t#x#t#x#t#x#t#x#t#x#t#x#t#x#t#x#t#x#e#x#t#x#e#x#e#x#e#x#e#x#e#x#e#x#e#x#e#x#e#x#e.s#e#x#e.s#e#x#e.s#e.s#e.s#e.s#e.s#e.s#e.s#e.s#e.s#e.s#e.p#e.p#h.p#e.p#h.p#e.p#h.p#e.p#h.p#e.p#h.p#h.p#h.p#h.p#h.p.m.p.m.p.m.p.m.p.m.p.m.p.m.p.m.p.m.p.m.o.m.o.m.o.m.q.m.o"
+".m.q.m.o.m.q.m.q.6.q.6.q.6.q.6.q.6.m.6.q.6.m.6.t.6.6.6.6.6.6aT.6.6.6aT.6aT.6aB.6aB.6aB.6aB.6aB.6aBaUa4aUaBaUa4aUa4aBa4aUa4aBaSaBaSaBaSaBaSa4aSaBaSaSaSaSaSaSaSaSaSaSawaSaGaSawaSawaSaYaSaYaGaYaGaYaGaYaGaYawaAaGaAaYaAaYaAaYaAaAaAaAaAaAaAaAa6aAa6aAaHaAaWaAaHaAaHaWaHaWaHaWaHaWaHaWaIaWaIaHaIaHaIaHaIajaIaIaIaIaIaIapaIapaIaLaIaLapaLapaLaZaLaZaLaZahaZahaLaNaLaNahaNahaNaNaqaNaqaNakaNaXaqaQaqaQaXaQaXasaXasaXasasaOasaOaOaOaOaFaOa1aOa1aFaRaFaRa1aVa1aVa1a5a9",
+"a8a2a8a2a8a2a0aJa0aJa0aJa0aJaJaEaJaEaJaEaJaEaJataEataEataEatatazatanatauatauataaataaataaanaaalaaalaaalaaalaaal#lal#9aa#Cal#Caa#Caa#C#l#C#l#C#l#C#C#C#C#C#C#C#C#p#C#p#C#p#C#p#C#p#C#H#p#F#p#H#p#F#p#H#p#F#p#F#p#t#p#F#p#t#p#t#H#t#H#t#H#t#H#t#u#t#H#t#u#t#u#t#u#t#u#t#u#t#u#t#u#e#u#t#u#e#u#e#u#e#u#e#u#e#u#e#u#e#u#e#u#e#u#e#u#e#u#e#h#e#u#e#h#e#h#e#h#e#h#e#h#e#h#e#h#e#h#e#h#e#h#e#h#e#h#e#h#e#h#e#h#e#h#e#h.p#h#e#h.p#h#e#h.p#h#e#h.p.m#e.m.p.m#e.m.p.m#e.m.p.m#e.m.p.m#h.m.p.m#h.m.o.m.m.m.q.m.m.m.q.m.m.m.q.m.m.m.q.m.m.6"
+".m.6.m.6.m.6.m.6.m.6.m.6.maT.m.6.6aT.6.6.6aT.6aT.6aT.6aT.6aB.6aB.6a4.6aB.6a4.6a4.6a4aBa4aUa4aBa4aUa4aBa4aBa4aBaSaBaSa4aSaBaSa4aSa4aSaSaSaSaMaSaSaSaMaSaMaSaYaSawaSaYaSaYaSaYaSaYaGaYawaYaGaYaYaYawaAaYaAaYaAaYaAaYaAaAaAaAa6aAa6aAa7aAaHaAaHaAaHaAaHa6aHaWaHaWaHaWaHaHaHaWaIaHaIaHaIaHaIaHaIaIaIaIaIaIaIaIagaIagaIaLaIaLaIaLapaLapaLaZaLaZahaLahaLaNaLaNahaNahaNahaNaNaqaNakaNakaNaQaqaQaqaQaXasaXasaQasaQaOasaOasaOaOaFaOaDaOaFaOaRaFaRaFaRa1aVa1a5aRa5aVa5a5a5",
+"a2a0a2a0aJa2aJa2aJaJaEaJaEaJaEaJataJataEataEataEazatatatazatauatauatauataaataaataaanaaanaaaaaaalaaaaaaaa#Caa#Caa#Caa#Caa#C#l#Caa#C#C#C#C#C#C#C#C#B#C#C#C#B#C#p#C#B#C#F#C#F#p#F#p#F#p#F#p#F#p#F#p#F#p#F#p#t#H#t#H#t#H#t#H#t#H#t#H#t#u#t#u#t#t#t#u#t#t#t#u#t#t#t#u#e#t#t#u#x#t#x#t#x#t#x#t#x#t#x#t#x#t#x#t#x#e#x#t#x#e#x#e#x#e#x#e#x#e#x#e#x#e#x#e#x#e#x#e#x#e#x#e#x#e#x#e.s#e#x#e.s#e#x#e.s#e.p#h.p#e.p#h.p#e.p#h.p#e.p#h.p#e.p#h.p#e.p#h.p#h.p#h.p#h.p#h.p#h.p.m.p.m.p.m.p.m.p.m.p.m.p.m.p.m.p.m.p.m.p.m.o.m.o.m.o.m.q.m.o.m.q"
+".m.o.m.q.m.q.6.m.6.q.6.m.6.q.6.m.6.q.6.m.6.6.6.6.6.6.6.6aT.6.6.6aT.6aB.6aB.6aB.6aB.6aB.6a4.6aBaUa4aUa4aUa4aUa4aBa4aUa4aBaSaBaSaBaSaBaSa4aSaBaSaSaSaSaSaSaSaSaSaSaMaSaGaSaYaSawaSaYaSaYaGaYaGaYaGaYaGaYaYaYaGaAaYaAaYaAaYaAaYaAaAa6aAaAaAa6aAa6aAaHaAaWaAaHaAaHa6aHaWaHaWaHaWaHaWaIaWaIaHaIaWaIaHaIajaIaIaIaIaIaIapaIapaIaLaIaZaIaLapaLaZaLaZaLaZahaZahaLaNaZaNahaNahaNaNaNaNaqaNaqaNaqaNaQaqaQaqaQaXasaXasaXasaQaOasaOaOaOaOaFaOaFaOa1aFaRaFaRa1aVa1aVa1a5a9a5a5",
+"a8a2a8a2a8a2a0a2a0aJa0aJa0aJa0aEaJaEaJaEaJataJataJataEataEataEatatatatanatauatauataaataaataaataaalaaalaaalaaalaaal#lal#9aa#Cal#Caa#Caa#C#l#C#l#C#l#C#C#C#C#C#C#C#C#p#C#p#C#p#C#p#C#p#C#H#p#F#C#H#p#F#p#H#p#F#p#F#p#t#p#F#p#t#p#t#p#t#p#t#H#t#H#t#H#t#H#t#u#t#u#t#u#t#u#t#u#t#u#t#u#t#u#t#u#e#u#t#u#e#u#e#u#e#u#e#u#e#u#e#u#e#u#e#u#e#u#e#u#e#u#e#h#e#u#e#h#e#h#e#h#e#h#e#h#e#h#e#h#e#h#e#h#e#h#e#h#e#h#e#h#e#h#e#h#e#h#e#h#e.m#e.m#e.m#e.m#e.m#e.m#e.m#e.m.p.m#h.m.p.m#h.m.p.m#h.m.n.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.6.m.6"
+".m.6.m.6.m.6.m.6.m.6.maT.6.6.6aT.6aT.6aT.6aT.6aT.6aT.6a4.6aB.6a4.6a4.6a4.6a4.6a4aBa4aUa4aBa4aBa4aBa4aBa4a4aSaBaSa4aSa4aSa4aSa4aSaSaSaSaMaSaSaSaMaSaMaSaYaSaYaSaYaSaYaSaYaSaYaGaYawaYaGaYaYaYaYaAaYaAaYaAaYaAaYaAaYaAaAa6aAa6aAa7aAa6aAaHaAaHaAaHa6aHa6aHaWaHaWaHaHaHaWaIaHaIaHaIaHaIaHaIaIaIaIaIaIaIaIaKaIapaIaLaIaLaIaLapaLapaLaZaLaZahaLahaLaNaLaNahaNahaNahaNaNaqaNakaNakaNaQaqaQaqaQaXaQaXasaQasaQaOasaOasaOaOaOaOaFaOaFaOaRaFaRaFaRa1aVa1a5aRa5aVa5a5a5a5b.",
+"a2a8a2a0a2a0aJa2aJa2aJaJaEaJaEaJaEaJataJataEataEataEazatatatazatauatauatauataaataaataaanaaanaaaaaaalaaaaaaaa#Caa#Caa#Caa#Caa#C#l#Caa#C#l#C#C#C#C#C#C#p#C#C#C#B#C#p#C#B#C#F#C#F#p#F#p#F#p#F#p#F#p#F#p#F#p#F#p#t#p#t#H#t#H#t#H#t#H#t#H#t#u#t#H#t#u#t#u#t#t#t#u#t#t#t#u#t#t#t#u#e#t#e#u#e#t#e#u#x#t#x#u#x#t#x#t#x#t#x#t#x#e#x#t#x#e#x#e#x#e#x#e#x#e#x#e#x#e#x#e#x#e#e#h#e#e#e#h#e#e#e#h#e#e#e#h.p#e#e#h.p#e#e#h.p#e#e#h.p#e.p#h.p#h.p#h.p#h.p#h.p#h.p.m.p.m.p.m.p.m.p.m.p.m.p.m.p.m.p.m.p.m.p.m.p.m.o.m.o.m.q.m.o.m.m.m.o.m.m.m.q"
+".m.m.m.q.6.m.6.q.6.m.6.m.6.m.6.m.6.m.6.6.6.6.6.6.6.6aT.6.6.6aT.6aB.6aB.6aB.6a4.6aB.6a4.6a4aUa4aUa4aUa4aUa4aBa4aUa4aBaSaBaSa4aSaBaSa4aSa4aSaSaSaSaSaSaSaSaSaSaMaSaGaSaYaSaYaSaYaSaYaGaYaGaYaGaYaGaYb#aYb#aAaYaAaYaAaYaAaYaAaAa6aAa6aAa6aAa6aAaHaAaWa6aHaAaHa6aHaWaHaWaHaWaHaWbaaWaIaHaIaWaIaHaIajaIaIaIaIaIaIaIaIapaIaLaIaZaIaLapaLaZaLaZaLaZahaZahaLaNaZaNahaNahaNaNaNaNaqaNaqaNaqaNaQaqaQaqaQaXaQaXasaXasaQaOaPaOasaOaOaOaOaFaOa1aOaRaFaRa1aRa1aVa1a5a1a5a5a5a5",
+"bba2a8a2a8a2a8aJa0aJa0aJa0aJa0aJa0aEaJaEaJaEaJataJataJataEataEataEatatatatanatauatanataaataaataaataaalaaalaaalaaalaaal#lalaaaa#Cal#Caa#Cal#C#l#Caa#C#l#C#l#C#C#C#C#C#C#p#C#p#C#p#C#p#C#p#C#p#p#H#C#H#p#F#p#H#p#F#p#H#p#F#p#F#p#t#p#t#p#t#p#t#p#t#p#t#H#t#H#t#u#t#H#t#u#t#u#t#u#t#u#t#u#t#u#t#u#t#u#t#u#e#u#t#u#e#u#e#u#e#u#e#u#e#u#e#u#e#u#e#u#e#u#e#u#e#u#e#h#e#u#e#h#e#u#e#h#e#h#e#h#e#h#e#h#e#h#e#h#e#h#e.m#e.m#e.m#e.m#e.m#e.m#e.m#e.m#e.m#e.m#e.m#e.m#h.m#e.m#h.m#e.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.6.m.6.m.6.m.6"
+".m.6.m.6.m.6.m.6.maT.6.6.6aT.6aT.6.5.6aT.6.5.6aT.6a4.6a4.6a4.6a4.6a4.6a4.6a4aBa4aUa4aBa4aBa4aBa4aBa4a4aSaBaSa4aSa4aSa4aSa4aSaSaSaSaMaSaSaSbcaSaMaSaYaSaYaSaYaSaYaSaYaSaYaGaYaYaYaGaYaYaYaYaYaYaAaYaAaYaAaYa6aYaAaAa6aAa6aAa7aAa6aAaHa6aHaAaHa6aHa6aHaWaHaWaHaWaHaWbaaHaIaHaIaHaIaHaIaIaIaIaIaIaIaIaKaIapaIaLaIaLaIaLapaLapaLaZaLaZaLaLahaZaNaLaNaLaNahaNahaNaNaNaNakaNaqaNaQaNaQaqaQaXaQaXasaQasaXaOaQaOasaOaOaOaOaFaOaFaOaRaOaRaFaRa1aRa1aVaRa5a1a5a5a5a5a5a5b.",
+"a2a8a2a8a2a0aJa0aJa2aJa2aJaJaEaJaEaJaEaJataJataEataEataEazatatatazatauataaatauataaataaataaalaaanaaaaaaalaaaaaaal#Caa#Caa#Caa#Caa#Caa#Caa#C#l#C#C#C#C#C#C#C#C#C#C#B#C#p#C#B#C#p#C#F#p#F#C#F#p#F#p#F#p#F#p#F#p#F#p#t#p#t#p#t#p#t#H#t#H#t#H#t#H#t#H#t#u#t#u#t#u#t#u#t#t#t#u#t#t#t#u#e#t#t#u#e#t#e#u#e#t#e#u#e#t#e#u#e#t#e#u#e#t#e#u#e#e#e#u#e#e#e#h#e#e#e#h#e#e#e#h#e#e#e#h#e#e#e#h#e#e#e#h#e#e#e#h#e#e#e#h#e#h#e#h.p#h#e#h.p#h#e#h.p#h#e#h.p.m#e.m.p.m#e.m.p.m#e.m.p.m#e.m.p.m#e.m.p.m#e.m.o.m.n.m.o.m.m.m.o.m.m.m.o.m.m.m.m.m.m"
+".6.m.6.m.6.m.6.m.6.m.6.m.6.m.6.m.6.6.6.6.6.6.6.6aT.6.6.6aT.6aB.6a4.6aB.6a4.6a4.6a4.6a4aUa4aUa4aUa4aUa4aBa4aUa4aBaSaBaSa4aSa4aSa4aSa4aSaSaSaSaSaSaSaSaSaSbcaSaGaSaYaSaYaSaYaSaYaSaYaGaYaGaYaGaYb#aYb#aAaYaAaYaAaYaAaYaAaAa6aAa6aAa6aAa6aAaHaAaWa6aHaAaHa6aHaWaHaWaHaWaHaWbaaWaIaHaIaWaIaHaIaHaIaIaIaIaIaIaIaIapaIaLaIaZaIaLaIaLaZaLaZaLaZaLaZahaZaNaZaNaLaNahaNaNaNaNaNaNaqaNaqaNaQaqaQaqaQaqaQaXasaXasaXaOaXaOasaOasaOaOaFaOaFaOaRaFa1a1aRa1aVa1a5a1a5aVa5bda5a5",
+"bba2bba2a8a2a8a2a8aJa0aJa0aJa0aJa3aJa3aEaJaEaJaEaJataJataEataEataEataEatatatatanatauatanataaataaataaataaalaaalaaalaaalaaal#lalaaaa#Cal#Caa#Cal#C#l#Caa#C#l#C#l#C#C#C#C#C#C#p#C#p#C#p#C#p#C#p#C#p#C#p#C#p#p#F#p#H#p#F#p#H#p#F#p#H#p#t#p#t#p#t#p#t#p#t#p#t#p#t#p#t.l#t#H#t#u#t#u#t#u#t#u#t#u#t#u#t#u#t#u#t#u#e#u#t#u#e#u#e#u#e#u#e#u#e#u#e#u#e#u#e#u#e#u#e#u#e#u#e#u#e#u#e#h#e#u#e#h#e#u#e#h#e.l#e.m#e.m#e.m#e.m#e.m#e.m#e.m#e.m#e.m#e.m#h.m#e.m#h.m#e.m#h.m#e.m.m.m.n.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.6.m.6.m.6.m.6.m.6"
+".m.6.maT.m.6.m.5.6.6.6.5.6aT.6.5.6.5.6.5.6.5.6a4.6a4.6a4.6a4.6a4.6a4.6a4aBa4aUa4aBa4aBa4a4a4aBa4a4aSa4aSa4aSa4aSa4aSa4aSaSaSaSaMaSaSaSbcaSbcaSaYaSaYaSaYaSaYaSaYaSaYaGaYaYaYb#aYaYaYaYaYaYaAaYaAaYaAaYa6aYa6aAa6aAa6aAa7aAa6aAaHa6aHa6aHa6aHa6aHaWaHaWbaaWaHaWbaaHaIaHaIaHaIaHaIbaaIaIaIaIaIaIaKaIapaIaLaIaLaIaLaIaLapaLaZaLaZaLaLahaZaNaLaNaLaNahaNahaNaNaNaNakaNaqaNaQaNaQaqaQaXaQaXaQaXasaXaOaQaOasaOasaOaOaOaOaFaOaRaOaRaFaRa1aRa1aVa1aVa1a5aVa5a5a5a5b.a5be",
+"a2a8a2a8a2a0aJa0aJa0aJa2aJa2aEaJaEaJaEaJaEaJataJataEataEataEazatatatazatauataaataaataaataaataaalaaanaaalaaalaaaaaaal#laa#Caa#Caa#Caa#Caa#Caa#C#l#C#C#C#C#C#C#C#C#C#C#p#C#p#C#B#C#p#C#B#C#F#C#F#p#F#p#F#p#F#p#F#p#F#p#t#p#F#p#t#p#t#p#t#H#t#H#t#H#t#H#t#u#t#H#t#u#t#u#t#u#t#u#t#u#t#u#t#u#t#u#e#t#t#u#e#t#e#u#e#t#e#u#e#t#e#u#e#t#e#u#e#t#e#u#e#e#e#u#e#e#e#h#e#e#e#h#e#e#e#h#e#e#e#h#e#h#e#h#e#h#e#h#e#h#e#h#e#h#e#h#e#h#e#h#e.m#e.m#e.m#e.m#e.m#e.m#e.m#e.m#e.m#e.m#e.m#e.m#e.m#e.m.n.m.m.m.n.m.m.m.n.m.m.m.m.m.m.m.m.m.m.6.m"
+".6.m.6.m.6.m.6.m.6.m.6.m.6.m.6.6.6.6aT.6.6.6aT.6.6.6.5.6aB.6a4.6a4.6a4.6a4.6a4.6a4aUa4aUa4aUa4aUa4aBa4aUa4a4aSaBaSa4aSa4aSa4aSa4aSaSaSaSaSaSaSaSaSaSbcaSb#aSaYaSaYaSaYaSaYaSaYaGaYb#aYaGaYb#aYb#aAaYaAb#aAaYaAaYaAaYa6aAa6aAa6aAa6aAa6aAaWa6aHa6aHa6aHa6aHaWaHaWaHaWbaaWaIaHaIaWaIaHaIaHaIaIaIaIaIaIaIaIaIaIaZaIaZaIaLaIaLaZaLaZaLaZaLaZahaZaNaZaNaLaNahaNaNaNaNaNaNaqaNaqaNaQaNaXaqaQaqaQaXaQaXasaXaOaXaOasaOasaOaOaOaOaFaOa1aOa1a1aRa1aRa1a5a1a5a1a5a9a5a5a5a5",
+"bba8bba2bba2a8a2a8a2a8aJa0aJa0aJa0aJa3aJa3aEaJaEaJaEaJataJataEataEataEataEatatatatanatauatanataaataaataaataaalaaalaaalaaalaaal#lalaaal#Cal#Caa#Cal#Caa#Caa#C#l#C#l#C#l#C#C#C#C#p#C#C#C#p#C#p#C#p#C#p#C#p#C#p#p#p#p#H#p#F#p#H#p#F#p#H#p#t#p#H#p#t#p#u#p#t#p#t#p#t#p#t#p#t#p#t.l#t#p#t.l#t#u#t#u#t#u#t#u#t#u#t#u#t#u#t#u#e#u#t#u#e#u#e#u#e#u#e#u#e#u#e#u#e#u#e#u#e#u#e#u#e#u#e.l#e.l#e.l#e.l#e.m#e.l#e.m#e.l#e.m#e.l#e.m#e.l#h.m#e.m#h.m#e.m#h.m#e.m#h.m.n.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.6.m.6.m.6.m.k.m.6.m.k.m.6"
+".m.5.m.6.6.5.6.k.6.5.6.5.6.5.6.5.6.5.6.5.6a4.6a4.6a4.6a4.6a4.6a4.6a4aBa4aUa4a4a4aBa4a4a4a4a4a4aSa4aSa4aSa4aSa4aSa4aSaSaSaSbcaSaSaSbcaSbcaSaYaSaYaSaYaSaYaSaYaSaYaGaYb#aYb#aYaYaYaYaYaYaAaYaAaYaAaYa6aYa6aAa6aAa6aAa7aAa6aAa7a6aHa6aHa6aHa6aHa6aHaWbaaWbaaWbaaHaIaHaIaHaIaHaIbaaIaIaIaIaIaIaIaIaIaIaLaIaLaIaLaIaLapaLaZaLaZaLaLahaZaNaLaNaLaNaLaNahaNaNaNaNaNaNaqaNaQaNaQaNaQaXaQaXaQaXasaXaOaQaOaQaOasaOaOaOaOaFaOaRaOa1aOaRa1aRa1aRa1aVa1a5aRa5aVa5a5a5a5bea5be",
+"a2a8a2a8a2a8a2a0aJa0aJa0aJa2aJa2aEaJaEaJaEaJaEaJataJataEataEataEazatatatauatauataaataaataaataaataaalaaanaaalaaalaaaaaaal#laa#Caa#Caa#Caa#Caa#Caa#C#l#C#l#C#C#C#C#C#C#C#C#p#C#p#C#B#C#p#C#B#C#p#C#F#p#F#p#F#p#F#p#F#p#F#p#F#p#F#p#t#p#t#p#t#p#t#p#t#H#t#H#t#u#t#H#t#u#t#u#t#u#t#u#t#u#t#u#t#u#t#u#t#u#t#u#e#u#t#u#e#u#e#u#e#u#e#u#e#u#e#u#e#u#e#u#e#u#e#u#e#h#e#u#e#h#e#u#e#h#e#h#e#h#e#h#e#h#e#h#e#h#e#h#e#h#e#h#e.m#e.m#e.m#e.m#e.m#e.m#e.m#e.m#e.m#e.m#e.m#e.m#e.m#e.m.n.m.n.m.n.m.m.m.n.m.m.m.n.m.m.m.m.m.m.m.m.6.m.6.m.6.m"
+".6.m.6.m.6.m.6.m.6.m.6.6.6.6.6.6.5.6.6.6.5.6.6.6.5.6a4.6a4.6a4.6a4.6a4.6a4.6a4aUa4aUa4aUa4aUa4a4a4aUa4a4aSa4aSa4aSa4aSa4aSa4aSaSaSaSaSaSbfaSaSaSbcaSb#aSaYaSaYaSaYaSaYaSaYaGaYb#aYb#aYb#aYb#aYaYaAb#aAaYa6aYaAaYa6aAa6aAa6aAa6aAa6aAaWa6aHa6aHa6aHa6aHaWaHaWaHaWbaaWbaaWaIaWaIaHaIaHaIaIaIaIaIaIaIaIaIaIaZaIaZaIaLaIaLaZaLaZaLaZaLaZaLaZaNaZaNaLaNaLaNaNaNaNaNaNaNaNaqaNaQaNaXaqaQaqaQaXaQaXasaXaOaXaOaQaOasaOaOaOaOaFaOa1aOa1aFaRa1aRa1aVa1a5a1a5a9a5a5a5a5b.a5",
+"bba8bba0a8a2a8a2a8a2a8a2a0aJa0aJa0aJa0aJa3aJa3aEaJaEaJaEaJataJataEataEatatatatatatatatanataaatanataaataaataaataaalaaalaaalaaalaaalaaalaaal#lal#Caa#Cal#Caa#Cal#C#l#C#l#C#l#C#l#C#C#p#C#C#C#p#C#p#C#p#C#p#C#p#C#p#p#p#p#p#p#H#p#H#p#F#p#H#p#F#p#H#p#t#p#u#p#t#p#u#p#t#p#t#p#t#p#t#p#t#p#t.l#t.l#t.l#t.l#t.l#t.l#t.l#t.l#t.l#t.l#t.l#e.l#t.l#e.l#e.l#e.l#e.l#e.l#e.l#e.l#e.l#e.l#e.l#e.l#e.l#e.l#e.l#e.l#e.l#e.l#h.l#e.l#h.m#e.l#h.m#e.l#h.m.n.l.m.m.m.l.m.m.m.l.m.m.m.l.m.m.m.l.m.m.m.l.m.m.m.k.m.6.m.k.m.6.m.k.m.k.m.k.m.k.m.5"
+".m.k.6.5.6.5.6.5.6.5.6.5.6.5.6.5.6a4.6a4.6a4.6a4.6a4.6a4.6a4.6a4a4a4aUa4a4a4a4a4a4a4a4a4a4aSa4aSa4aSa4aSa4aSa4bfaSaSaSbcaSbfaSbcaSbcaSbcaSaYaSaYaSaYaSaYbfaYaSaYb#aYb#aYaYaYaYaYaYaAaYa6aYaAaYa6aYa6aYa6aAa6aAa7aAa6aAa7a6aHa6aHa6aHa6aHa6aHaWbaaWbaaWbaaHbaaWaIaHaIaHaIbaaIbaaIaIaIaIbgaIaIaIaLaIaLaIaLaIaLaIaLaZaLaZaLaZaLaZaNaLaNaLaNaLaNahaNaNaNaNaNaNaqaNaQaNaQaNaQaqaQaXaQaXaQaXaOaQaOaQaOasaOasaOaOaOaOa1aOa1aOaRa1aRa1aRa1aVa1a5aRa5aVa5a5a5a5bea5bea5bh",
+"a2bba2a8a2a8a2a8a2a0aJa0aJa0aJa2aJa2aEaJaEaJaEaJaEaJataJataEataEataEazatatatauatauataaataaataaataaataaalaaanaaalaaalaaaaaaal#laa#Caa#Caa#Caa#Caa#Caa#C#l#C#l#C#l#C#C#C#C#C#C#p#C#p#C#p#C#p#C#B#C#p#C#B#p#H#p#F#p#F#p#F#p#F#p#F#p#F#p#t#p#t#p#t#p#t#p#t#p#t#p#t#p#t#H#t#u#t#H#t#u#t#u#t#u#t#u#t#u#t#u#t#u#t#u#e#u#t#u#e#u#e#u#e#u#e#u#e#u#e#u#e#u#e#u#e#u#e#u#e#u#e#u#e#u#e#u#e#h#e#u#e#h#e#u#e#h#e.m#e.m#e.m#e.m#e.m#e.m#e.m#e.m#e.m#e.m#e.m#e.m#e.m#e.m#e.m#e.m.n.m.n.m.m.m.n.m.m.m.n.m.m.m.m.m.m.m.m.m.m.6.m.6.m.6.m.6.m.6.m"
+".6.m.6.m.6.m.k.m.6.6.k.6.6.6.5.6.k.6.5.6.5.6.5.6a4.6a4.6a4.6a4.6a4.6a4.6a4aUa4aUa4bia4aUa4a4a4bia4a4aSa4aSa4aSa4aSa4aSa4aSaSaSaSaSaSbfaSbfaSbcaSb#aSaYaSaYaSaYaSaYbfaYaGaYb#aYb#aYb#aYb#aYaYaAb#aAaYa6aYa6aYa6aAa6aAa6aAa6aAa6aAaWa6aHa6aHa6aHa6aHaWbaaWaHaWbaaWbaaWaIaWaIbaaIaHaIbaaIaIaIaIaIaIaIaIaZaIaZaIaLaIaLbgaLaZaLaZaLaZaLaZaNaZaNaLaNaZaNaNaNaNaNaNaNaNaqaNaXaNaXaNaQaqaQaXaQaXasaXaOaXaOaQaOaPaOaOaOaOaFaOa1aOa1aOaRaFaRa1aRa1a5a1a5a1a5a5a5a5a5a5bea5",
+"bba8bba8bba0a8a2a8a2a8a2a8a2a0aJa0aJa0aJa0aJa3aJa3aEaJaEaJaEaJataJataEataEatatatatatatatatanataaatanataaataaataaataaalaaalaaalaaalaaalaaalaaal#lal#Caa#Cal#Caa#Cal#C#l#C#l#C#l#C#l#C#l#C#C#C#C#p#C#p#C#p#C#p#C#p#C#p#p#p#C#p#p#p#p#p#p#H#p#H#p#F#p#H#p#t#p#H#p#t#p#u#p#t#p#u#p#t#p#u#p#t#p#u.l#t#p#t.l#t.l#t.l#t.l#t.l#t.l#t.l#t.l#t.l#t.l#t.l#e.l#t.l#e.l#t.l#e.l#e.l#e.l#e.l#e.l#h.l#e.l#h.l#e.l#h.l#e.l#h.l#e.l#h.l#e.l#h.l#e.l.m.l.m.l.m.l.m.l.m.l.m.l.m.l.m.l.m.l.m.l.m.l.m.l.m.k.m.k.m.k.m.k.m.k.m.k.m.k.m.5.m.k.m.5.6.k"
+".6.5.6.5.6.5.6.5.6.5.6.5.6.5.6a4.6a4.6a4.6a4.ka4.6a4.ka4.6a4a4a4bia4a4a4a4a4a4a4a4a4a4aSa4aSa4aSa4aSa4aSa4bfa4aSaSbcaSbfaSbcaSbcaSbcaSaYaSaYaSaYaSaYbfaYbfaYb#aYb#aYaYaYaYaYaYaAaYa6aYa6aYa6aYa6aYa6aAa6aAa7a6a6aAa7a6aHa6aHa6aHa6aHa6aHaWbaaWbaaWbaaHbaaWaIaHaIaHaIbaaIbaaIaIaIaIbgaIaIaIaLaIaLaIaLaIaLaIaLaZaLaZaLaZaLaZaNaLaNaLaNaLaNahaNaNaNaNaNaNaqaNaQaNaQaNaQaqaQaXaQaXaQaXaOaQaOaXaOaQaOasaOaOaOaOa1aOa1aOaRaOaRa1aRa1aRa1a5aRa5a1a5a5a5a5bja5bea5bhbjbh",
+"bkbba2bba2a8a2a8a2a8a2a0aJa0aJa0aJa2aJa2aEaJaEaJaEaJaEaJataJataEataEataEazatatatauatauataaataaataaataaataaalaaanaaalaaalaaaaaaal#laa#Cal#Caa#Caa#Caa#Caa#C#l#C#l#C#l#C#C#C#C#C#C#p#C#p#C#p#C#p#C#B#C#p#C#B#p#p#C#F#p#H#p#F#p#F#p#F#p#F#p#t#p#F#p#t#p#t#p#t#p#t#p#t#p#t#p#t.l#t#p#t.l#t.l#t#u#t#u#t#u#t#u#t#u#t#u#t#u#t#u#e#u#t#u#e#u#e#u#e#u#e#u#e#u#e#u#e#u#e#u#e#u#e#u#e#u#e.l#e.l#e.l#e.l#e.l#e.m#e.l#e.m#e.l#e.m#e.l#e.m#e.l#e.m#e.m#e.m#e.m#e.m#e.m.n.m.m.m.n.m.m.m.n.m.m.m.n.m.m.m.m.m.m.l.m.m.m.k.m.6.m.k.m.6.m.k.m.6.m"
+".k.m.6.m.k.6.k.6.k.6.k.6.5.6.k.6.5.6.5.6.5.6a4.6a4.6a4.6a4.6a4.6a4.6a4bia4aUa4bia4bia4a4a4bia4a4aSa4aSa4aSa4aSa4aSa4aSa4bfaSaSaSbfaSbfaSbcaSbfaSaYaSaYaSaYaSaYbfaYaGaYb#aYb#aYb#aYb#aYaYaAb#aAaYa6aYa6aYa6aAa6aAa6aAa6a6a6aAa6a6aHa6aWa6aHa6aHa6baaWbaaWbaaWbaaWaIaWaIbaaIblaIbaaIaIaIaIaIaIaIaIbgaIaZaIaLaIaZbgaLaZaLaZaLaZaLaZaNaZaNaLaNaZaNaNaNaNaNaNaNaNaqaNaXaNaXaNaQaqaQaXaQaXaQaXaOaXaOaXaOaPaOaOaOaOaOaOa1aOa1aOaRaFa1a1aRa1aVa1a5a1a5a5a5bda5a5bea5bebj",
+"bba8bba8bbbkbba0a8a2a8a2a8a2a8a2a0aJa0aJa0aJa0aJa3aEa3aEaJaEaJaEaJataJataEataEatatatatatatatatatataaatanataaataaataaataaalaaalaaalaaalaaalaaalaaal#lal#lal#Cal#Caa#Cal#C#l#C#o#C#l#C#l#C#l#C#l#C#C#p#C#p#C#p#C#p#C#p#C#p#C#p#C#p#p#p#p#p#p#p#p#p#p#H#p#H#p#H#p#H#p#t#p#u#p#t#p#u#p#t#p#u#p#t#p#u#p#t#p#u.l#t#p#u.l#t.l#u.l#t.l#u.l#t.l#u.l#t.l#u.l#t.l#u.l#t.l#u.l#e.l#u.l#e.l#u.l#e.l#h.l#e.l#h.l#e.l#h.l#e.l#h.l#h.l.m.l.m.l.m.l.m.l.m.l.m.l.m.l.m.l.m.l.m.l.m.l.m.l.m.l.m.k.m.k.m.k.m.k.m.k.m.k.m.k.m.k.m.5.m.k.m.5.6.k.6.5"
+".6.5.6.5.6.5.6.5.6.5.6.5.ka4.6a4.ka4.6a4.ka4.ka4.5a4.ka4a4a4bia4a4a4a4a4a4a4a4a4a4aSa4aSa4aSa4bfa4aSa4bfa4bfaSbcaSbfaSbcaSbcaSbcaSaYaSaYbfaYaSaYbfaYbfaYb#aYb#aYaYaYb#aYaYaYaYa6aYa6aYa6aYa6aYa6aAa6aAa7a6a6a6a7a6aHa6aHa6aHa6aHa6aHa6baaWbaaWbaaHbaaWaIbaaIaHaIbaaIbaaIaIaIaIbgaIbgaIbmaIaZaIaLbgaLaIaLaZaLaZaLaZaLaZbnaLaNaLaNaLaNaLaNaNaNaNaNaNaNaNaQaNaXaNaQaNaQaqaQaXaQaXaQaQaOaXaOaQaOasaOaOaOaOaOaOa1aOaRaOaRaFaRa1aRa1a5a1a5a1a5a5a5a5a5a5bea5bebjbebebh",
+"a8bbbkbba2bba2a8a2a8a2a8a2a0aJa0aJa0aJa2aJa2aEaJaEaJaEaJaEaJataJataEataEataEazatatatazatauataaataaataaataaataaalaaanaaalaaalaaaaaaal#laaaaal#Caa#Caa#Caa#Caa#C#l#C#l#C#l#C#l#C#C#C#C#p#C#C#C#p#C#p#C#p#C#p#C#B#p#p#C#B#p#p#p#F#p#H#p#F#p#F#p#F#p#F#p#t#p#t#p#t#p#t#p#t#p#t#p#t#p#t#p#t.l#t#p#t.l#t.l#t.l#t.l#t.l#t.l#t.l#t.l#t.l#t.l#e.l#t.l#e.l#t.l#e.l#e.l#e.l#e.l#e.l#e.l#e.l#e.l#e.l#e.l#e.l#e.l#e.l#e.l#e.l#e.l#e.l#e.l#e.m#e.l#e.m#e.l#e.m.m.l.n.m.m.l.n.m.m.l.n.m.m.l.m.m.m.l.m.m.m.l.m.6.m.k.m.k.m.k.m.k.m.k.m.k.m.k.m"
+".k.m.k.6.k.6.5.6.k.6.5.6.k.6.5.6.5.6a4.6a4.6a4.6a4.6a4.6a4.ka4.6a4bia4bia4a4a4bia4a4a4bia4a4aSa4aSa4aSa4aSa4bfa4aSa4bfaSbfaSbfaSbfaSbcaSbfaSaYaSaYaSaYaSaYbfaYbfaYb#aYb#aYb#aYb#aYaYa6b#aAaYa6aYa6aYa6aYa6aAa6aAa6a6a6a6a6a6aHa6aWa6aHa6aHa6baaWbaaWbaaWbaaWbaaWaIbaaIblaIbaaIaIaIaIbgaIaIaIbgaIaZaIaLaIaZbgaLaZaLaZaLaZaLaZbnaZaNaZaNaZaNbnaNaNaNaNaNaNaNaNaXaNaXaNaQaNaQaXaQaXaQaXaOaXaOaXaOaXaOaOaOaOaOaOa1aOa1aOa1aOa1a1aRa1aRa1a5a1a5boa5bda5a5bja5bea5bebe",
+"bbbbbba8bba8bbbkbba0a8a2a8a2a8a2a8a2a0aJa0aJa0aJa0aJa3aEa3aEaJaEa3aEaJataJataEataEatatatatatatatatatataaatanataaatalataaataa#iaaalaaalaaalaaalaaalaaal#lal#lal#Cal#Caa#Cal#C#l#C#o#C#l#C#l#C#l#C#l#C#C#p#C#p#C#p#C#p#C#p#C#p#C#p#C#p#p#p#C#p#p#p#p#p#p#p#p#p#p#p#p#H#p#u#p#H#p#u#p#u#p#t#p#u#p#t#p#u#p#t#p#u#p#t#p#u.l#t#p#u.l#t.l#u.l#t.l#u.l#t.l#u.l#t.l#u.l#t.l#u.l#t.l#u.l#e.l#u.l#e.l#u.l#h.l#u.l.m.l.m.l.m.l.m.l.m.l.m.l.m.l.m.l.m.l.m.l.m.l.m.l.m.l.m.l.m.l.m.k.m.k.m.k.m.k.m.k.m.k.m.k.m.5.m.k.m.5.m.k.6.5.6.5.6.5.6.5"
+".6.5.k.5.6.5.k.5.6a4.ka4.ka4.ka4.ka4.ka4.ka4.5a4bia4a4a4bia4a4a4a4a4a4a4a4a4a4aSa4bfa4aSa4bfa4bfa4bfa4bfaSbcaSbfaSbcaSbcaSbcbfaYaSaYbfaYbfaYbfaYbfaYb#aYb#aYaYaYb#bpaYaYaYa6aYa6aYa6aYa6aYa6aAa6aAa7a6a6a6a7a6a7a6aHa6aHa6baa6aHa6baaWbaaWbaaHbaaWbabaaIbaaIbaaIbaaIbaaIaIbgaIbgaIbmaIaZaIaLbgaLbgaLbgaLaZaLaZaLaZbnaLaNaZaNaLaNaLaNaNaNaNaNaNaNaNaQaNaXaNaQaNaQaqaQaXaQaXaQaXaOaXaOaQaOaQaOaOaOaOaOaOaFaOaRaOaRaFaRa1aRa1bqa1a5a1a5bqa5a5a5a5a5a5bea5bebjbhbebh",
+"bkbba8bbbkbba2bba2a8a2a8a2a8a2a0aJa0aJa0aJaJaJaJaEaJaEaJaEaJaEaJataJataEataEataEazatatatazatauataaataaataaataaataaataaanaaalaaalaaalaaal#laaaaal#Caa#Caa#Caa#Caa#C#l#C#l#C#l#C#l#C#l#C#C#p#C#C#C#p#C#p#C#p#C#p#C#p#C#p#C#B#p#p#p#B#p#p#p#F#p#H#p#F#p#F#p#t#p#F#p#t#p#t#p#t#p#t#p#t#p#t#p#t#p#t#p#t.l#t#p#t.l#t.l#t.l#t.l#t.l#t.l#t.l#t.l#t.l#t.l#e.l#t.l#e.l#t.l#e.l#e.l#e.l#e.l#e.l#e.l#e.l#e.l#e.l#e.l#e.l#e.l#e.l#e.l#e.l#e.l#e.l.m.l.n.l.m.l.n.l.m.l.n.l.m.l.m.l.m.l.m.l.m.l.m.l.m.k.m.k.m.k.m.k.m.k.m.k.m.k.m.k.m.k.m.k.6"
+".k.6.k.6.5.6.k.6.5.6.k.6.5.6.5.6a4.6a4.ka4.6a4.ka4.6a4.ka4.ka4bia4bia4a4a4bia4a4a4bia4a4aSa4aSa4bfa4aSa4bfa4bfa4bfaSbfaSbfaSbfaSbcaSbfaSaYaSaYbfaYaSaYbfaYbfaYb#aYb#aYb#aYb#aYaYbpb#aAaYa6aYa6aYa6aYa6aAa6aAa6a6a6a6a6a6aHa6aWa6aHa6aHa6baaWbaaWbaaWbaaWbaaWaIbaaIblaIbaaIbaaIaIbgaIaIaIbgaIaZaIaLaIaZbgaLbgaLaZaLaZaLaZbnaZaNaZaNaZaNbnaNaNaNaNaNaNaNaNaXaNaXaNaQaNaXaXaQaXaQaXbraXaOaXaOaXaOaOaOaOaOaObsaOa1aOa1aOa1a1aRa1aRa1a5a1a5a1a5bda5a5bja5bea5bebjbebe",
+"btbbbbbbbba8bba8bbbkbba0a8a2a8a2a8a2a8a2a0aJa0aJa0aJa0aJa3aEa3aEaJaEa3aEaJataJataEataEatatatatatatatatatatanatanataaatalataaataa#iaaanaaalaaalaaalaaalaaal#lal#lal#lal#Cal#Cal#C#l#C#o#C#l#C#o#C#l#C#l#C#l#p#l#C#C#p#C#p#C#p#C#p#C#p#C#p#p#p#C#p#p#p#p#p#p#p#p#p#p#p#p#p#p#p#p#p#p.l#p.l#p#u#p#u#p#u#p#u#p#u#p#u#p#u#p#u#p#u#p#u.l#u#p#u.l#u.l#u.l#u.l#u.l#u.l#u.l#u.l#u.l#u.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.m.l.l.l.m.l.l.l.m.l.l.l.m.l.l.l.m.l.l.l.m.l.m.l.m.k.m.k.m.k.m.k.m.k.m.k.m.5.l.k.m.5.l.k.m.5.l.k.6.5.k.5.6.5.k.5.6.5"
+".k.5.k.5.k.5.ka4.ka4.ka4.ka4.ka4.ka4.ka4.5a4bia4a4a4a4a4a4a4a4a4a4a4a4.ia4aSa4bfa4bfa4bfa4bfa4bca4bfaSbcaSbfaSbcaSbcaSbcbfaYaSaYbfaYbfaYbfaYbfaYb#aYb#aYaYaYb#bpaYbpaYa6aYa6aYa6aYa6aYa6aYa6aAa7a6a6a6a7a6a7a6aHa6aHa6baa6baa6baaWbaaWbaaHbaaWbabaaIbaaIbaaIbaaIbaaIaIbgaIbgaIbmaIbgaIaLbgaLbgaLbgaLaZaLaZaLaZbnaLaNaZaNaLaNaLaNbnaNaNaNaNaNaNbuaNaXaNaQaNaQaNaQaXaQaXaQaXasaXaOaQaOaQaOaOaOaOaOaOaFaOaRaOa1aOaRa1aRa1bqa1a5a1a5bqa5a5a5a5a5a5bea5bebjbhbebhbebv",
+"bbbbbkbba8bba2bba2bba2a8a2a8a2a0a2a0aJa0aJa0aJaJaJaJaEaJaEaJaEaJaEaJataJataEataEataEazatatatazatanataaataaataaataaataaataaanaaalaaalaaalaaalaaaaaaal#laa#Cal#Caa#Caa#C#l#C#l#C#l#C#l#C#l#C#l#C#C#C#C#p#C#p#C#p#C#p#C#p#C#p#C#p#p#p#p#B#p#p#p#B#p#H#p#F#p#H#p#F#p#H#p#t#p#t#p#t#p#t#p#t#p#t#p#t#p#t#p#t.l#t#p#t.l#t.l#t.l#t.l#t.l#t.l#t.l#t.l#t.l#t.l#t.l#t.l#t.l#t.l#e.l#t.l#e.l#t.l#e.l#e.l#e.l#e.l#e.l#e.l#e.l#h.l#e.l.m.l.n.l.m.l.n.l.m.l.n.l.m.l.m.l.m.l.m.l.m.l.m.l.m.l.m.k.m.k.m.k.m.k.m.k.m.k.m.k.m.k.m.k.m.k.m.k.6.5.6"
+".k.6.5.6.k.6.5.6.5.k.5.6.5.ka4.6a4.ka4.ka4.ka4.ka4.ka4.ka4bia4bia4a4a4bia4a4a4a4a4a4aSa4aSa4bfa4aSa4bfa4bfa4bfaSbfaSbfaSbfaSbcaSbfbfaYaSaYbfaYbfaYbfaYbfaYb#aYb#aYb#aYb#aYaYbpb#a6aYa6aYa6aYa6aYa6aAa6aAa6a6a6a6a6a6a7a6aWa6aHa6aHa6baaWbaaWbaaWbaaWbaaWaIbaaIblaIbaaIbaaIaIbgaIbgaIbgaIbgaIaLaIaZbgaLbgaLaZaLaZaLaZbnaZaNaZaNaZaNbnaNbnaNaNaNaNaNaNbwaNaXaNaQaNaXaXaQaXaQaXbraXaOaXaOaXaObraOaOaOaObsaOa1aOa1aOa1a1aRa1aRa1bqa1a5a1a5boa5a5a5a5bja5bea5bebebhbe",
+"btbbbtbbbbbbbba8bba8bbbkbba0a8a2a8a2a8a2a8a2a0aJa0aJa0aJa0aJa3aEa3aEaJaEa3aEaJataJataEataEatatatatatatatatatatanatanataaatalataaataa#iaaataaalaaalaaalaaalaaal#lal#lal#lal#lal#Cal#C#l#Cal#C#l#C#o#C#l#C#o#C#l#C#l#C#l#p#C#p#C#p#C#p#C#p#C#p#C#p#C#p#p#p#p#p#p#p#p#p#p#p#p#p#p#p#p#p#p.l#p#p#p.l#p.l#p.l#p.l#p.l#p.l#p.l#p.l#p.l#p.l#p.l#p.l.l.l#p.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.m.k.l.k.m.k.l.k.m.k.l.k.m.5.l.k.m.5.l.k.m.5.l.k.l.5.k.5.k.5.k.5.k.5.k.5.k.5.k.5"
+".k.5.k.5.ka4.ka4.ka4.ka4.ka4.5a4.ka4.5a4bia4a4a4a4.ia4a4a4.ia4a4a4bfa4bfa4bfa4bfa4bfa4bfa4bca4bfaSbcaSbfaSbcbfbcaSbcbfaYbfaYbfaYbfaYbfaYbfaYb#aYb#bpaYaYb#bpaYbpaYa6aYa6aYa6aYa6aYa6bpa6aAa7a6a6a6a7a6a7a6aHa6aHa6baa6baa6baaWbaaWbaaHbaaWbabaaIbaaIbaaIbaaIbaaIaIbgaIbgaIbmaIbgaIaLbgaLbgaLbgaLaZaLaZaLaZbnaLbnaZaNaLaNaLaNbnaNaNaNaNaNaNbwaNaXaNaQaNaQaNaQaXaQaXaQaXaQaXaOaQaOaQaOaOaOaOaOaOaOaOa1aOa1aOaRa1aRa1aRa1bqa1a5aRa5boa5a5a5a5bja5bea5bhbebhbebvbebx",
+"bbbbbbbbbkbba8bba2a8a2a8a2a8a2a8a2a0a2a0aJa0aJa0aJaJaJa3aEaJaEaJaEaJaEaJataJataEataEataEatatatatazatanataaataaataaataaataaataaanaaalaaalaaalaaalaaalaaal#laa#lal#Caa#Caa#C#l#Caa#C#l#C#l#C#l#C#l#C#l#C#C#p#C#p#C#p#C#p#C#p#C#p#C#p#p#p#C#p#p#p#p#B#p#p#p#B#p#p#p#F#p#H#p#t#p#H#p#t#p#u#p#t#p#t#p#t#p#t#p#t#p#t#p#t.l#t#p#t.l#t.l#t.l#t.l#t.l#t.l#t.l#t.l#t.l#t.l#t.l#t.l#t.l#t.l#t.l#t.l#e.l#u.l#e.l#u.l.n.l.l.l.n.l.m.l.n.l.m.l.n.l.m.l.m.l.m.l.m.l.m.l.m.l.m.l.m.l.m.k.m.k.m.k.m.k.m.k.m.k.m.k.m.k.m.k.m.k.m.k.6.k.6.5.6.k.k"
+".5.6.k.k.5.6.5.k.5.6.5.ka4.ka4.ka4.ka4.ka4.ka4.ka4bia4bia4bia4a4a4bia4a4.ia4a4a4bfa4aSa4bfa4bfa4bfa4bfa4bfaSbfaSbfaSbfaSbcaSbfbfaYaSaYbfaYbfaYbfaYbfaYb#aYb#aYb#bpb#aYaYbpb#a6aYa6aYa6aYa6aYa6bpa6aAa6a6a6a6a6a6a7a6aWa6baa6aHa6baa6baaWbaaWbaaWbaaWbabaaIblaIbaaIbaaIaIbgaIbgaIbgaIbgaIaZaIaZbgaLbgaLbgaLaZaLaZbnaZbnaZaNaZaNbnaNbyaNaNaNaNaNaNbwaNaXaNaXaNaXbwaQaXaQaXbraXbraXaOaXaObraObzaOaOaOaObsaOa1aOa1bsaRa1a1a1bqa1a5a1a5a1a5a5a5bdbja5bea5bebjbebebAbe",
+"btbbbtbbbbbbbbbbbba8bba8bba2bba0a8a2a8a2a8a2a8a2a0aJa0aJa0aJa0aJa3aEa3aEaJaEa3aEaJataJataJataEatatatatatatatatatatanatanataaatalataaataaataaataaalaaalaaalaaalaaal#lal#lal#lal#lal#lal#Cal#Cal#C#l#C#o#C#l#C#o#C#l#C#o#C#l#p#l#p#l#p#C#p#C#p#C#p#C#p#C#p#p#p#C#p#p#p#p#p#p#p#p#p#p#p#p#p#p#p#p#p#p.l#p#p#p.l#p.l#p.l#p.l#p.l#p.l#p.l#p.l#p.l#p.l#p.l#p.l.l.l#p.l.l.l#p.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.k.l.k.l.k.l.k.l.k.l.k.l.k.l.k.l.5.l.k.l.5.l.k.l.5.l.5.k.5.k.5.k.5.k.5.k.5.k.5.k.5.k.5.k.5"
+".ka4.ka4.ka4.ka4.ka4.ka4.5a4.ka4.5a4bi.ia4a4a4.ia4.ia4.ia4.ia4bfa4bfa4bfa4bfa4bfa4bfa4bcaSbfaSbcbfbcaSbcbfbcbfbcbfaYbfaYbfaYbfaYbfaYbfaYaYaYb#bpaYbpaYbpaYbpaYa6aYa6aYa6aYa6aYa6bpa6a6a7a6a6a6a7a6a7a6a7a6aHa6baa6baa6baa6baaWbaaHbaaWbabababaaIbaaIbaaIbaaIbabgaIbgaIbmaIbgaIaLbgaLbgaLbgaLbgaLaZaLaZbnaZbnaZaNaLaNaLaNbnaNaNaNaNaNaNbwaNaXaNaQaNaQaNaQaXaQaXaQaXaQaXaOaQaOaXaObraOaOaOaOaOaOa1aOa1aOaRbsaRa1aRa1aRa1a5a1a5a1a5a5a5a5bja5bea5bebjbebebvbebvbebx",
+"bbbbbbbbbbbbbkbba8bba2a8a2a8a2a8a2a8a2a0a2a0aJa0aJa0aJaJaJa3aEaJaEaJaEaJaEaJataJataEataEataEatatatatazatanataaatauataaataaataaataaataaalaaalaaalaaalaaalaaal#laa#lal#Caa#Cal#Caa#Caa#C#l#C#l#C#l#C#l#C#l#C#l#p#C#C#C#p#C#p#C#p#C#p#C#p#C#p#C#p#p#p#p#p#p#p#p#B#p#p#p#B#p#p#p#B#p#p#p#t#p#u#p#t#p#u#p#t#p#u#p#t#p#u#p#t#p#u#p#t.l#u#p#t.l#u#p#t.l#u.l#t.l#u.l#t.l#u.l#t.l#u.l#t.l.l.l#m.l.l.l#m.l.l.l#m.l.l.l.n.l.l.l.m.l.l.l.m.l.l.l.m.l.l.l.m.l.l.l.m.l.l.l.m.k.l.k.m.k.l.k.m.k.l.k.m.k.l.k.m.k.l.k.m.k.l.5.6.k.k.5.6.k.k.5.k"
+".5.k.5.k.5.k.5.ka4.ka4.ka4.ka4.ka4.ka4.ka4.ka4bia4bia4bia4a4.ibia4a4.ia4a4a4bfa4bfa4bfa4bfa4bfa4bfa4bfaSbfaSbfaSbfbfbcaSbfbfaYbfaYbfaYbfaYbfaYbfaYb#aYb#aYb#bpb#bpaYbpb#a6aYa6aYa6aYa6aYa6bpa6a6a6a6a6a6a6a6a7a6aWa6baa6baa6baa6baaWbaaWbablbaaWbabaaIblaIbaaIbaaIbabgaIbgaIbgaIbgaIaZaIaZbgaLbgaLbgaLaZaLaZbnaZbnaZaNaZaNbnaNbyaNaNaNaNaNaNbwaNaXaNaXaNaXbwaQaXaQaXaQaXbraXaOaXaObBaObBaOaOaOaObsaOa1aOa1bsaRa1a1a1bqa1bqa1a5a1a5boa5bda5a5bea5bebjbebebebebvbe",
+"bCbbbtbbbtbbbbbbbbbbbba8bba8bba2bba0a8a2a8a2a8a2a8a2a0aJa0aJa0aJa0aJa3aEa3aEaJaEa3aEaJataJataJataEatatataEatatatatatatatatanataaatalataaatalataaataa#iaaalaaalaaalaaal#lalaaal#lal#lal#lal#lal#Cal#C#o#C#o#C#l#C#o#C#l#C#o#C#l#p#o#C#l#p#l#p#l#p#C#p#C#p#C#p#C#p#C#p#p#p#p#p#p#p#p#p#p#p#p#p#p#p#p#p#p#p#p#p#p.l#p#p#p.l#p.l#p.l#p.l#p.l#p.l#p.l#p.l#p.l#p.l#p.l#p.l#p.l#p.l.l.l#p.l.l.l#p.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.k.l.k.l.k.l.k.l.k.l.k.l.5.l.k.l.5.l.k.l.5.l.k.l.5.l.k.l.5.k.5.k.5.k.5.k.5.k.5.k.5.k.5.k.5.k.5.ka4.ka4"
+".ka4.ka4.ka4.ka4.k.i.5a4.k.ia4a4a4.ia4.ia4.ia4.ia4.ia4.ia4bfa4bfa4bfa4bfa4bfa4bfa4bcbfbfaSbcbfbcbfbcbfbcbfbcbfaYbfaYbfaYbfaYbfaYbfbpaYaYb#bpaYbpaYbpaYbpaYbpaYa6aYa6bpa6aYa6bpa6a6a6a6a6a6a7a6a7a6bDa6aHa6baa6baa6baa6baaWbablbaaWbabababaaIbaaIbaaIbaaIbabgaIbgaIbgaIbgaIbmbgaLbgaLbgaLbgaLaZaLaZbnaZbnaZbnaLaNaLaNbnaNbnaNaNaNaNbwaNbwaNaQaNaQaNaQbwaQaXaQaXaQaXbraQaOaXaObraOaOaOaOaOaObsaOa1aOaRbsaRa1aRa1aRa1a5a1a5a1a5bqa5a5bja5bja5bebjbebebvbebvbebxbAbx",
+"bbbtbbbbbbbbbbbbbkbba8bba2a8a2a8a2a8a2a8aJa0aJa0aJa0aJa0aJaJaJa3aEaJaEaJaEaJaEaJataJataEataEataEatatatatazatatataaatauataaataaataaataaataaalaaalaaalaaalaaalaaal#laa#lal#laa#Cal#Caa#Caa#C#l#C#l#C#l#C#l#C#l#C#l#C#l#C#l#p#C#p#C#p#C#p#C#p#C#p#C#p#p#p#C#p#p#p#p#p#p#p#p#p#p#p#p#p#p#p#p#m#p#p#p#m#p.l#p#m#p.l#p#m#p.l#p#m#p.l#p#m#p.l#p#m.l.l#p#m.l.l#p#m.l.l.l#m.l.l.l#m.l.l.l#m.l.l.l#m.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.k.l.k.l.k.l.k.l.k.l.k.l.k.l.k.l.k.l.k.l.k.l.k.l.k.k.5.k.k.k.5.k.k.k.5.k.5.k"
+".5.k.5.k.5.ka4.ka4.ka4.ka4.ka4.ka4.ka4.ka4bia4a4.ibia4a4.ibia4a4.ia4.ia4bfa4bfa4bfa4bfa4bfa4bfaSbfaSbfbfbcaSbfbfbcbfbfbfaYbfaYbfaYbfaYbfaYbfaYb#bpb#aYb#bpb#bpaYbpb#a6aYa6aYa6aYa6aYa6bpa6a6a6a6a6a6a6a6a7a6aWa6baa6baa6baa6baa6baaWbablbaaWbablbablaIbaaIbaaIbabgaIbgaIbgaIbgaIbgaIaZbgaLbgaLbgaLaZaLaZbnaZbnaZbnaZaNbnaNbyaNbnaNaNaNaNbwaNbwaNaXaNaXbwaQbwaQaXaQaXbraXaOaXaObBaObBaOaOaOaOaOaOa1aOa1bsa1bsa1a1bqa1bqa1a5a1a5boa5bda5a5bja5bebjbebjbebebvbebxbA",
+"bEbbbCbbbtbbbtbbbbbbbbbbbba8bba8bba0bba0a8a2a8a2a8aJa8aJa0aJa0aJa0aJa0aJa3aJa3aEaJaEa3aEaJataJataJataEatatataEatatatatatatatatanatalatalataaatalataaataa#iaa#iaaalaaalaaalaaalaaal#lal#lal#lal#lal#lal#C#o#Cal#C#o#C#o#C#l#C#o#C#l#C#o#C#l#p#o#p#l#p#l#p#l#p#l#p#C#p#C#p#p#p#C#p#p#p#p#p#p#p#p#p#p#p#p#p#p#p#p#p#p#p#p#p#p.l#p#p#p.l#p.l#p.l#p.l#p.l#p.l#p.l#p.l#p.l#p.l#p.l#p.l#p.l#p.l#p.l#p.l.l.l#p.l.k.l.h.l.k.l.h.l.k.l.k.l.k.l.5.l.k.l.5.l.k.l.5.l.k.l.5.l.k.l.5.k.5.k.5.k.5.k.5.k.5.k.5.k.5.k.5.k.5.k.j.k.5.k.i.ka4.k.i"
+".ka4.k.i.5a4.k.i.5.i.k.ia4.ia4.ia4.ia4.ia4.ia4.ia4.ia4bfa4bfa4bfa4bfa4bf.ibfa4bc.ibfbfbcbfbcbfbcbfbcbfbcbfaYbfaYbfaYbfbpbfaYbfbpaYbpb#bpaYbpaYbpaYbpaYbpaYa6aYa6bpa6bpa6bpa6a6a6a6a6a6a7a6a7a6bDa6baa6baa6baa6baa6baaWbablbablbabababaaIbaaIbabgbaaIbabgaIbgaIbgaIbgaIbmbgaLbgaLbgaLbgaLbgaLaZbnaZbnaZbnaLaNaLaNbnaNbnaNaNaNaNbwaNbwaNaQaNaXaNaQbwaQaXaQaXaQaXbraXaOaXaObraObraOaOaOaObsaOa1aOaRbsa1bsaRa1aRa1bqa1a5a1a5bqa5a5bja5bja5bebjbebjbhbebvbebvbAbxbAbF",
+"bbbEbbbtbbbbbbbbbbbbbkbba8bba2a8a2a8a2a8a2a8aJa0aJa0aJa0aJa0aJaJaJa3aEaJaEaJaEaJaEaJataJataEataEataEatatatatazatatatauatanataaataaataaataaataa#iaaalaaalaaalaaalaaal#lal#lal#laa#lal#Caa#Cal#C#l#C#l#C#l#C#l#C#l#C#l#C#l#C#l#p#l#p#l#p#C#p#C#p#C#p#C#p#C#p#C#p#p#p#p#p#p#p#p#p#p#p#p#p#p#p#p#p#p#p#p.l#p#p#p.l#p.l#p.l#p.l#p.l#p.l#p#m#p.l#p#m#p.l#p.l#p.l#p.l.l.l#p.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.k.l.k.l.k.l.k.l.k.l.k.l.k.l.k.l.k.l.k.l.k.l.k.l.k.l.5.k.k.k.5.k.k.k.5.k.5.k.5.k.5.k.5.k"
+".5.ka4.ka4.ka4.ka4.ka4.ka4.k.i.ka4.k.ibia4a4.ibi.ia4.ibi.ia4.ia4.ia4bfa4bfa4bfa4bfa4bfa4bf.ibfaSbfbfbcbfbfbfbcbfbcbfaYbfaYbfaYbfaYbfbpbfaYb#bpb#bpb#bpb#bpaYbpb#a6aYa6aYa6bpa6aYa6bpa6a6a6a6a6a6a6a6a7a6a6a6baa6baa6baa6baa6baaWbablbablbablbablaIbaaIbaaIbabgbabgaIbgaIbgaIbgaIaZbgaLbgaZbgaLbgaLaZbnaZbnaZbnaZaNbnaNbyaNbnaNaNaNaNbwaNbwaNaXaNaXbwaQbwaXaXaQaXaQaXbraXaObBaObBaOaOaOaOaOaObsaOa1bsa1bsa1a1aRa1bqa1a5a1a5boa5bda5a5bja5bebjbebjbebebvbebvbAbxbA",
+"bCbbbEbbbCbbbtbbbtbbbbbbbba8bba8bba8bba0bba0a8a2a8a2a8aJa8aJa0aJa0aJa0aJa0aJa3aJa3aEaJaEa3aEaJataJataJataEataEataEatatatatatatatatatatalatalataaatalataaatal#iaa#iaaalaaalaaalaaalaaal#lal#lal#lal#lal#lal#l#o#Cal#C#o#C#o#C#o#C#o#C#l#C#o#C#l#p#o#C#l#p#o#p#l#p#o#p#l#p#l#p#l#p#l#p#p#p#C#p#p#p#p#p#p#p#p#p#p#p#p#p#p#p#p#p#p#p#p#p#p.l#p#p#p.l#p.l#p.l#p.l#p.l#p.l#p.l#p.l#p.l#p.l#p.l.h.l.h.l.h.l.h.l.h.l.h.l.j.l.h.l.j.l.k.l.j.l.k.l.j.l.k.l.j.l.k.l.j.l.5.k.j.k.5.k.j.k.5.k.j.k.5.k.j.k.5.k.j.k.5.k.j.ka4.k.i.k.i.k.i.k.i"
+".k.i.5.i.k.i.5.ibi.ia4.ia4.ia4.ia4.ia4.ia4.ia4.ia4bfa4bfa4bf.ibfa4bf.ibf.ibcbfbfbfbcbfbcbfbcbfbcbfbcbfaYbfaYbfaYbfbpbfbpbfbpaYbpb#bpaYbpaYbpaYbpaYbpbpa6aYa6bpa6bpa6bpa6bpa7a6a6a6a7a6a7a6bDa6baa6baa6baa6baa6baa6bablbablbabababababaaIbabgbabgbabgbabgaIbgaIbgaIbmbgaLbgaLbgaLbgbnbgaLaZbnaZbnaZbnaLaNaZaNbnaNbnaNbnaNaNbwaNbwaNbuaNaXaNaQbwaQbwaQaXaQaXbraXaOaXaObraObraOaOaOaObsaObsaOaRbsa1bsaRa1aRa1bqa1a5a1a5bqa5a5bja5bja5bebjbebjbhbebvbebvbAbxbAbxbvbF",
+"bbbEbbbtbbbtbbbbbbbbbbbbbkbba8bba2a8a2a8a2a8a2a8aJa0aJa0aJa0aJa0aJaJaJa3aEaJaEaJaEaJaEaJataJataEataEataEatatatatatatatatauatanataaataaataaataaataa#iaaalaaalaaalaaalaaal#lalaaal#lal#lal#laa#Cal#C#l#Cal#C#l#C#l#C#l#C#l#C#l#C#l#p#l#C#l#p#l#p#l#p#C#p#C#p#C#p#C#p#p#p#C#p#p#p#p#p#p#p#p#p#p#p#p#p#p#p#p#p#p#p#p.l#p#p#p.l#p.l#p.l#p.l#p.l#p.l#p.l#p.l#p.l#p.l#p.l#p.l#p.l.l.l#p.l.l.l#p.l.l.l#p.l.l.l.l.l.l.l.l.l.l.l.k.l.k.l.k.l.k.l.k.l.k.l.k.l.k.l.k.l.k.l.k.l.k.l.k.l.k.l.5.k.k.k.5.k.k.k.5.k.k.k.5.k.5.k.5.k.5.k.5.ka4.k"
+"a4.ka4.k.i.ka4.k.i.ka4.k.i.k.ibi.ibi.ia4.ibi.ia4.ia4.ia4.ia4bfa4bfa4bfa4bfa4bf.ibfa4bf.ibfaSbfbfbcbfbfbfbcbfbcbfaYbfaYbfaYbfaYbfbpbfaYb#bpb#bpb#bpb#bpaYbpb#a6aYa6aYa6bpa6bpa6bpa6a6a6a6a6a6a6a6bDa6a6a6baa6baa6baa6baa6baaWbablbablbablbablaIbaaIbaaIbabgbabgaIbgaIbgbgbgaIbgbgaLbgaZbgaLbgaLaZbnaZbnaZbnaZaNbyaNbyaNbnaNbnaNaNbwaNbwaNbwaNaXbwaQbwaXaXaQaXaQaXbraXaOaXaObBaObraOaOaOaObsaOa1aOa1bsa1bsaRa1bqa1bqa1a5boa5boa5a5bja5bjbjbebjbebjbAbebAbebxbAbxbA",
+"bCbtbCbbbEbbbCbbbtbbbtbbbba8bba8bba8bba8bba0bba0a8a2a8a2a8aJa8aJa0aJa0aJa0aJa0aJa3aJa3aEa3aEa3aEaJata3ataJataJataEataEatatatatatatatatatatalatalatalatalataaatal#iaa#iaa#iaaalaaalaaalaaal#lal#lal#lal#lal#lal#lal#lal#l#o#C#o#C#o#C#o#C#o#C#o#C#l#C#o#C#l#p#o#p#l#p#o#p#l#p#o#p#l#p#o#p#l#p#l#p.h#p#l#p.h#p.h#p.h#p.h#p.h#p.h#p.h#p.h#p.h#p.h#p.h.l.h#p.h.l.h.l.h.l.h.l.h.l.h.l.h.l.h.l.h.l.j.l.h.l.j.l.h.l.j.l.h.l.j.l.h.l.j.l.h.l.j.l.j.l.j.l.j.k.j.k.j.k.j.k.j.k.j.k.j.k.j.k.j.k.j.k.j.k.j.k.j.k.i.k.i.k.i.k.i.k.i.5.i.k.i"
+".5.i.k.i.5.ia4.ia4.ia4.ia4.ia4.ia4.ia4.i.ibfa4bf.ibfa4bf.ibf.ibc.ibf.ibcbfbfbfbcbfbcbfbcbfbcbfbcbfaYbfbpbfaYbfbpbfbpbfbpbcbpb#bpaYbpaYbpaYbpaYbpbpa6bpa6bpa6bpa6bpa6bpa7a6a6a6bDa6a7a6bDa6baa6baa6baa6baa6baa6bablbablbabababababaaIbabgbabgbabgbabgaIbgaIbgaIbmbgbmbgaLbgaLbgbnbgaLaZbnaZbnaZbnbnbnaZaNbnaNbnaNbnaNaNbwaNbwaNbuaNaXaNaQbwaQbwaQaXaQaXbraXbraXaObraObraObraOaObsaObsaOa1bsa1bsaRa1aRa1bqa1bqa1a5bqa5boa5a5bja5bjbjbebjbhbjbebebvbebxbAbxbAbxbGbF",
+"bbbEbbbtbbbtbbbtbbbba8bba8bbbkbba8bba2a8a2a8a2a8a2a8aJa0aJa0aJa0aJa0aJaJaJa3aEaJaEaJaEaJaEaJataJataEataEataEatatatatatatatatazatanataaataaataaataaataa#iaa#iaaalaaalaaalaaal#lalaaal#lal#lal#laa#lal#Caa#Cal#C#l#C#o#C#l#C#l#C#l#C#l#C#l#C#l#p#l#p#l#p#l#p#l#p#l#p#C#p#C#p#C#p#p#p#C#p#p#p#p#p#p#p#p#p#p#p#p#p#p#p#p#p#p#p#p.l#p#p#p.l#p.l#p.l#p.l#p.l#p.l#p.l#p.l#p.l#p.l#p.l#p.l#p.l#p.l#p.l#p.l#p.l.l.l.h.l.k.l.h.l.k.l.h.l.k.l.h.l.k.l.h.l.k.l.k.l.k.l.k.l.k.l.5.l.k.k.5.k.k.k.5.k.k.k.j.k.5.k.j.k.5.k.j.k.5.k.i.ka4.k.i.k"
+"a4.k.i.k.i.k.i.k.i.k.i.k.ia4.ibi.ia4.ibi.ia4.ia4.ia4.ia4bfa4bfa4bf.ibfa4bf.ibfa4bfbfbfbfbfbfbcbfbfbfbcbfbcbfaYbfaYbfbpbfaYbfbpbfbpbfbpb#bpb#bpb#bpaYbpb#a6bpa6aYa6bpa6bpa6bpa6a6a6a6a6a6a6a6bDa6bHa6baa6baa6baa6baa6baaWbablbablbablbablaIbabgbaaIbabgbabgaIbgaIbgbgbgbgbgbgaLbgaZbgaLbgaLaZbnaZbnaZbnaZbnbyaNbyaNbnaNbnaNaNbwaNbwaNbwaNaXbwaQbwaXbwaQaXaQaXbraXbraXaObBaObraObzaOaObsaObsaOa1bsa1bsaRa1a1a1bqa1a5boa5boa5a5bjbdbja5bebjbebjbAbebAbebvbAbxbAbFbG",
+"bCbEbCbtbCbbbEbbbCbbbtbbbtbbbba8bba8bba8bba8bba0bba0a8a2a8a0a8aJa8aJa0aJa0aJa0aJa0aJa3aJa3aEa3aEa3aEaJata3ataJataJataEataEatatatatatatatatatat#iatalatalatalataaatal#iaaatal#iaa#iaaalaaalaaal#lalaaal#lal#lal#lal#lal#lal#l#o#lal#l#o#C#o#C#o#C#o#C#o#C#o#C#o#p#o#C#l#p#o#p#l#p#o#p#l#p#o#p#l#p#o#p.h#p#o#p.h#p.j#p.h#p.j#p.h#p.j#p.h#p.j#p.h#p.j#p.h#p.j#p.h.l.j#p.h.l.j#p.h.l.j.l.h.l.j.l.h.l.j.l.h.l.j.l.h.l.j.l.h.l.j.l.j.l.j.l.j.l.j.k.j.k.j.k.j.k.j.k.j.k.j.k.j.k.j.k.j.k.j.k.j.k.j.k.i.k.i.k.i.k.i.k.i.k.i.5.i.k.i.5.i"
+".k.ia4.ia4.ia4.ia4.i.i.ia4.i.i.ia4.i.ibf.ibf.ibf.ibf.ibf.ibc.ibf.ibcbfbfbfbcbfbcbfbcbfbcbfbIbfaYbfbpbfbpbfbpbfbpbfbpbcbpb#bpaYbpaYbpbpbpaYbpbpa6bpa6bpa6bpa6bpa6bpa7a6a6a6bDa6bDa6bDa6baa6baa6baa6babHbaa6bablbablbabababababaaIbabgbabgbabgbabgaIbgbgbgaIbmbgbgbgaLbgaLbgbnbgbnbgbnaZbnaZbnbnbnbyaNbnaNbnaNbnaNaNbwaNbwaNbwaNaXaNaQbwaQbwaQaXaQaXbraXbraXaObraObraObraOaObsaObsaObsbsa1bsaRbsaRa1bqa1bqa1a5boa5boa5a5bja5bja5bebjbebjbebebvbebvbAbxbAbxbGbFbxbF",
+"btbEbbbEbbbtbbbtbbbtbbbba8bba8bbbkbba8bba2a8a2a8a2a8a2a8aJa0aJa0aJa0aJa0aJaJaJa3aEaJaEaJaEaJaEaJataJataJataEataEatatatatatatatatazatanataaatalataaataaataa#iaaataa#iaaalaaalaaalaaalaaal#lal#lal#lal#lal#laa#lal#C#l#C#o#C#l#C#o#C#l#C#l#C#l#C#l#p#l#C#l#p#l#p#l#p#l#p#l#p#l#p#l#p#l#p#C#p#p#p#p#p#p#p#p#p#p#p#p#p#p#p#p#p#p#p#p#p#p#p#p.l#p#p#p.l#p.l#p.l#p.l#p.l#p.l#p.l#p.l#p.l#p.l.h.l.h.l.h.l.h.l.h.l.h.l.h.l.h.l.h.l.h.l.h.l.k.l.h.l.k.l.h.l.k.l.j.l.k.l.j.k.k.k.j.k.k.k.j.k.5.k.j.k.j.k.j.k.j.k.j.k.j.k.i.k.i.k.i.k.i.k"
+".i.k.i.k.i.k.i.k.ibi.ia4.ibi.ia4.ibi.ia4.ia4.ia4.ia4bf.ibfa4bf.ibf.ibf.ibf.ibfbfbfbfbfbfbcbfbfbfbcbfbcbfbpbfaYbfbpbfbpbfbpbfbpbfbpb#bpb#bpb#bpaYbpb#bpbpa6bpa6bpa6bpa6bpa6a6a6a6bHa6a6a6bDa6bHa6baa6baa6baa6babHbaaWbablbablbablbablbababgbabgbabgbabgaIbgaIbgbgbgbgbgbgaLbgaZbgbnbgaLbgbnaZbnaZbnaZbnbyaNbyaNbnaNbnaNaNbwaNbwaNbwaNaXbwaXbwaXbwaQaXaQaXbraXbraXaOaXaObraObBaOaObsaObsaOa1aOa1bsaRbsa1a1bqa1bqboa5boa5bobjbdbja5bjbjbebjbebebAbebvbebxbAbFbAbFbx",
+"bCbEbCbEbCbtbCbbbEbbbCbbbtbbbtbbbba8bba8bba8bba8bba0bba0a8a2a8a0a8aJa8aJa0aJa0aJa0aJa0aJa3aJa3aEa3aEa3aEaJata3ataJataJataEataEatatatatatatatatatat#iatalatalatalataaatal#iaaatal#iaa#iaa#iaaalaaalaaalaaal#lal#lal#lal#lal#lal#lal#lal#l#o#l#o#l#o#C#o#C#o#C#o#C#o#C#o#C#o#p#o#p#o#p#o#p#l#p#o#p#l#p#o#p#l#p#o#p.h#p#o#p.h#p.j#p.h#p.j#p.h#p.j#p.h#p.j#p.h#p.j#p.h#p.j#p.h#p.j#p.h.l.j#p.h.l.j#p.j.l.j#p.j.l.j.l.j.l.j.l.j.k.j.k.j.k.j.k.j.k.j.k.j.k.j.k.j.k.j.k.j.k.j.k.j.k.j.k.j.k.i.k.i.k.i.k.i.k.i.5.i.k.i.5.i.k.i.j.ia4.i"
+".i.ia4.i.i.ia4.i.i.i.i.i.i.i.i.i.ibf.ibf.ibf.ibf.ibf.ibc.ibf.ibcbfbcbfbcbfbcbfbIbfbcbfbIbfbpbfbpbfbpbfbpbfbpbfbpbcbpb#bpaYbpaYbpbpbpbpbpbpa6bpa6bpa6bpa6bpa6bpbDa6a6a6bDa6bDa6bDa6bDa6baa6baa6babHbabHbablbablbababababJbaaIbabgbabgbabgbabgaIbgbgbgbgbmbgbgbgaLbgaLbgbnbgbnbgbnaZbnaZbnbnbnbyaNbnaNbnaNbnaNbnbwaNbwaNbwaNbwaNaQbwaQbwaQbwaQaXbraXbraXbrbraObBaObraOaObsaObsaObsbsa1bsaRbsaRa1bqa1bqa1bqboa5boa5bqa5a5bja5bjbjbebjbebjbvbebvbebxbAbxbAbFbxbFbFbK",
+"bEbCbtbEbbbEbbbtbbbtbbbbbbbba8bba8bbbkbba8bba2a8a2a8a2a8a2a8aJa0aJa0aJa0aJa0aJaJaJa3aEaJaEa3aEaJaEaJataJataJataEataEatatatatatatatatatatatataaatalataaataaataaataaataa#iaa#iaaalaaalaaalaaal#lal#lal#lal#lal#lal#lal#l#l#Cal#C#l#C#o#C#l#C#o#C#l#C#l#C#l#C#l#p#l#p#l#p#l#p#l#p#l#p#l#p#l#p#l#p.h#p#l#p.h#p.h#p.h#p.h#p.h#p.h#p.h#p.h#p.h#p.h#p.h#p.h.l.h#p.h.l.h#p.h.l.h.l.h.l.h.l.h.l.h.l.h.l.h.l.h.l.h.l.h.l.h.l.h.l.h.l.h.l.h.l.h.l.h.l.j.l.h.l.j.k.h.k.j.k.h.k.j.k.j.k.j.k.j.k.j.k.j.k.j.k.j.k.j.k.i.k.i.k.i.k.i.k.i.k.i.k"
+".i.k.i.k.i.5.ibi.ia4.ibi.ia4.ia4.i.i.ia4.i.ibfa4bf.ibf.ibf.ibf.ibf.ibf.ibfbfbfbfbfbfbcbfbfbfbcbfbcbfbpbfaYbfbpbfbpbfbpbfbpbfbpb#bpb#bpb#bpbpbpb#bpbpa6bpa6bpa6bpa6bpa6bpa6a6bHa6bHa6bDa6bHa6baa6baa6baa6babHbabHbablbablbablbablbababgblbgbabgbabgbabgaIbgbgbgbgbgbgbmbgaZbgbnbgbnbgbnaZbnaZbnaZbnbybnbyaNbnaNbnaNbnbwaNbwaNbwaNbwbwaXbwaXbwaQbwaQaXbraXbraXbraXaObBaObBaOaObsaObsaObsaOa1bsa1bsa1a1bqa1bqboa5boa5bobjbdbja5bja5bebjbebjbAbebvbebvbAbxbAbFbGbFbL",
+"bCbEbCbEbCbEbCbtbCbbbEbbbCbbbtbbbtbbbba8bba8bba8bba8bba0bba0a8a2a8a0a8aJa8aJa0aJa0aJa0aJa0aJa3aJa3aEa3aEa3aEaJata3ataJata3ataJataEatatatatatatatatatat#iatatatalatalatalatalataaatal#iaa#ial#iaa#iaa#iaaalaaal#lal#lal#lal#lal#lal#lal#lal#l#o#lal#l#o#l#o#l#o#l#o#C#o#C#o#C#o#p#o#C#o#p#o#p#o#p#o#p#o#p#o#p#o#p#o#p#o#p#o#p.j#p#o#p.j#p#o#p.j#p.j#p.j#p.j#p.j#p.j#p.j#p.j#p.j#p.j#p.j#p.j#p.j#p.j#p.j#p.j.h.j.k.j.h.j.k.j.h.j.k.j.h.j.k.j.h.j.k.j.h.j.k.j.h.j.k.j.h.j.k.j.h.i.k.i.h.i.k.i.j.i.k.i.j.i.k.i.j.i.k.i.j.i.i.i.i.i"
+".i.i.i.i.i.i.i.i.i.i.i.i.ibf.ibf.ibf.ibf.ibc.ibf.ibc.ibfbfbcbfbcbfbIbfbcbfbIbfbIbfbIbfbpbfbpbfbpbfbpbfbpbfbpbcbpb#bpbpbpaYbpbpbpbpbpbpa6bpa6bpa6bpa6bpa6bpbDa6bHa6bDa6bDa6bDa6bDa6baa6baa6babHbabHbablbablbababablbJbabJbabgbabgbabgbabgbabgbgbgbgbmbgbgbgbmbgaLbgbnbgbnbgbnaZbnaZbnbnbnbybnbnaNbnaNbnaNbnbwaNbwaNbwaNbwaNaQbwaQbwaQbwaQaXbraXbraXbrbraObBaObraObrbsaObsaObsaOa1bsaRbsaRbsbqa1bqa1bqboa5boa5bqa5a5bja5bja5bebjbebjbvbebvbebvbAbxbAbFbxbFbxbFbFbK",
+"bEbEbEbCbbbEbbbEbbbtbbbtbbbbbbbba8bba8bbbkbba8bba2a8a2a8a2a8a2a8aJa0aJa0aJa0aJa0aJa3aJa3aJaJaEa3aEaJaEaJataJataJataEataEatatatatatatatatatatatataaatalataaatalataaataaataa#iaa#iaa#iaaalaaalaaal#lalaaal#lal#lal#lal#lal#lal#lal#l#l#C#o#C#l#C#o#C#l#C#o#C#l#C#o#p#l#C#l#p#l#p#l#p#l#p#l#p#l#p#l#p#l#p#l#p.h#p#l#p.h#p.h#p.h#p.h#p.h#p.h#p.h#p.h#p.h#p.h#p.h#p.h#p.h#p.h.l.h#p.h.l.h#p.h.l.h.l.h.l.h.l.h.l.h.l.h.l.h.l.j.l.h.l.j.l.h.l.j.k.h.k.j.k.h.k.j.k.j.k.j.k.j.k.j.k.j.k.j.k.j.k.j.k.j.k.i.k.i.k.i.k.i.k.i.k.i.k.i.k.i.k"
+".i.k.ia4.ibi.i.i.ibi.i.i.ia4.i.i.i.i.i.ibf.ibf.ibf.ibf.ibf.ibf.ibf.ibfbfbcbfbfbfbcbfbfbfbIbfbcbfbpbfbpbfbpbfbpbfbpbfbpbfbpb#bpbpbpb#bpbpbpbMbpbpa6bpa6bpa6bpa6bpa6bpa6a6bHa6bHa6bDa6bHa6bDa6baa6baa6babHbabHbablbablbablbablbababgblbgbabgbabgbabgaIbgbgbgbgbgbgbmbgaZbgbnbgbnbgbnaZbnaZbnaZbnbybnbyaNbnaNbyaNbnbwaNbwaNbwaNbwbwaXbwaXbwaQbwaQaXbraXbraXbraXaObBaObBaObrbsaObsaObsaOa1bsa1bsa1a1bqa1bqa1bqboa5boa5bobja5bja5bjbjbebjbebebvbebvbAbxbAbFbAbFbGbFbF",
+"bNbEbCbEbCbEbCbtbCbtbCbbbEbbbCbbbtbbbtbbbba8bba8bba8bba8bba0bba0a8a2a8a0a8aJa8aJa0aJa0aJa0aJa0aJa3aJa3aJa3aEa3aEa3ata3ataJata3ataJataEatatatatatatatatatatatatatat#iatalatalatalatalatal#iaa#ial#iaa#ial#iaa#iaaal#lalaaal#lal#lal#lal#lal#lal#l#o#lal#l#o#l#o#l#o#l#o#l#o#l#o#l#o#l#o#l#o#p#o#C#o#p#o#p#o#p#o#p#o#p#o#p#o#p#o#p#o#p#o#p#o#p#o#p.j#p#o#p.j#p.j#p.j#p.j#p.j#p.j#p.j#p.j.h.j.h.j.h.j.h.j.h.j.h.j.h.j.h.j.h.j.h.j.h.j.h.j.h.j.h.j.h.j.h.j.h.j.h.j.h.i.h.i.h.i.h.i.j.i.h.i.j.i.h.i.j.i.h.i.j.i.j.i.i.i.i.i.i.i.i.i"
+".i.i.i.i.i.i.i.i.ibf.ibf.ibf.ibf.ibf.ibc.ibf.ibI.ibfbfbIbfbcbfbIbfbIbfbIbfbIbfbIbfbpbfbpbfbpbfbpbfbpbfbpbIbpb#bpbpbpbpbpbpbpbpbpbpa6bpa6bpa6bpbHbpa6bpbDa6bHa6bDa6bDa6bDa6bDa6babHbaa6babHbabHbabHbablbababablbJbabJbabgbabgbabgbabgbabgbgbgbgbmbgbgbgbmbgaLbgbnbgbnbgbnbgbnaZbnbnbnbybnbnaNbnaNbnaNbnbwaNbwaNbwaNbwaNbubwaQbwaQbwaQbwbraXbraXbrbBbrbBaObraObrbsaObsaObsaObsbsaRbsa1bsbqa1bqa1bqbobqboa5bqa5bqbja5bja5bjbjbebjbvbebvbebvbAbxbAbFbvbFbxbFbFbKbFbO",
+"bEbCbEbEbEbCbbbEbbbEbbbtbbbtbbbbbbbba8bba8bbbkbba8bba2a8a2a8a2a8a2a8aJa0aJa0aJa0aJa0aJa3aJa3aJaJaEa3aEaJaEaJataJataJataJataEatatatatatatatatatatatat#ratalataaatalataaataaataa#iaa#iaa#iaa#iaaalaaalaaalaaal#lal#lal#lal#lal#lal#lal#l#o#lal#l#o#l#o#C#l#C#o#C#l#C#o#C#l#C#o#p#l#C#o#p#l#p#o#p#l#p#l#p#l#p#l#p#l#p#l#p.h#p#l#p.h#p.h#p.h#p.h#p.h#p.h#p.h#p.h#p.h#p.h#p.h#p.h#p.h#p.h#p.h#p.j.l.h#p.j.l.h#p.j.l.h#p.j.l.h#p.j.k.h.k.j.k.h.k.j.k.j.k.j.k.j.k.j.k.j.k.j.k.j.k.j.k.j.k.j.k.i.k.i.k.i.k.i.k.i.k.i.k.i.h.i.k.i.j.i.k"
+".i.i.ibi.i.i.i.i.i.i.i.i.i.i.i.ibf.ibf.ibf.ibf.ibf.ibf.ibf.ibfbfbfbfbIbfbfbfbIbfbcbfbIbfbIbfbpbfbpbfbpbfbpbfbpbfbpbfbpb#bpbpbpbMbpbpbpbpbpbpa6bpa6bpa6bpa6bpbHbpa6a6bHa6bHa6bDa6bHa6bDa6babHbaa6babHbabHbablbablbablbJblbababgblbgbabgbabgbabgaIbgbgbgbgbgbgbmbgaZbgbnbgbnbgbnbgbnaZbnaZbnbybnbyaNbnaNbyaNbnbwaNbwaNbwaNbwbwbwbwaXbwaQbwaQbwbraXbraXbraXaObBaObBaObrbsaObsaObsaObsbsa1bsa1bsbqa1bqa1bqboa5boa5bobja5bja5bjbjbebjbebjbAbebAbAbxbAbxbAbFbGbFbFbKbF",
+"bPbEbNbEbCbEbCbtbCbtbCbbbCbbbEbbbCbbbtbbbtbbbba8bba8bba8bba8bba0bba0a8a2a8a0a8aJa8a2a0aJa0aJa0aJa0aJa3aJa3aJa3aEa3aEa3ata3ataJata3ataJataJatatatatatatatatatatatatatat#iat#iatalatalatalatal#iaaatal#iaa#ial#iaa#ial#iaa#iaaal#lal#lal#lal#lal#lal#lal#lal#l#o#lal#l#o#l#o#l#o#l#o#l#o#l#o#l#o#l#o#l#o.h#o#l#o.h#o.h#o.h#o.h#o.h#o.h#o.h#o.h#o.h#o.h#o.h#o.h.j.h#o.h.j.h#o.h.j.h.j.h.j.h.j.h.j.h.j.h.j.h.j.h.j.h.j.h.j.h.j.h.j.h.j.h.j.h.j.h.j.h.j.h.i.h.i.h.i.h.i.j.i.h.i.j.i.h.i.j.i.h.i.j.i.j.i.j.i.i.i.i.i.i.i.i.i.i.i.i.i"
+".i.i.i.i.i.i.ibf.ibf.ibf.i.d.ibf.ibI.ibf.ibI.ibIbfbIbfbIbfbIbfbIbfbIbfbIbfbpbfbpbfbpbfbpbfbpbIbpbfbpbpbpbMbpbpbpbpbpbpbpbpbpbpa6bpa6bpa6bpbHbpbHbpbDa6bHa6bDa6bDa6bDa6bDa6babHbabHbabHbabHbabHbablbababablbJbabJbabgbabgbabgbabgbabgbgbgbgbmbgbgbgbmbgaLbgbnbgbnbgbnbgbnaZbnbybnbybnbnaNbnaNbnaNbnbwbnbwaNbwbwbwbwbubwaXbwaQbwaQbwbraXbraXbrbBbrbBaObraObrbsbrbsaObsaObsbsaRbsa1bsbqbsbqa1bqa1bqboa5bqa5bobja5bja5bjbjbebjbvbjbAbebvbAbvbAbFbAbFbGbFbFbFbFbObFbO",
+"bEbCbEbCbEbEbtbCbbbEbbbEbbbtbbbtbbbbbbbba8bba8bba8bba8bba2a8a2a8a2a8a2a8aJa8aJa0aJa0aJa0aJa3aJa3aJaJaEa3aEaJaEaJataJataJataJataEatatataEatatatatatatatat#iatatataaatalataaatalataa#iaaataa#iaa#iaa#iaaalaaalaaal#lal#lal#lal#lal#lal#lal#lal#lal#l#o#l#o#l#o#l#o#l#l#C#o#C#l#C#o#p#l#C#o#p#l#p#o#p#l#p#o#p#l#p#o#p#l#p#o#p#l#p#o#p.h#p#o#p.h#p#o#p.h#p.j#p.h#p.j#p.h#p.j#p.h#p.j#p.h#p.j#p.h#p.j#p.h#p.j#p.h.h.j.h.h.h.j.k.j.h.j.k.j.h.j.k.j.h.j.k.j.h.j.k.j.h.j.k.j.h.j.k.i.h.i.k.i.h.i.k.i.h.i.k.i.h.i.k.i.h.i.h.i.j.i.g.i.i"
+".i.g.i.i.i.i.i.i.i.i.i.i.i.ibf.ibf.ibf.ibf.ibf.ibf.ibf.i.dbfbfbfbIbf.dbfbIbfbIbfbIbfbIbfbpbfbpbfbpbfbpbfbpbfbp.dbpb#bpbpbpbMbpbpbpbpbpbpa6bpa6bpa6bpa6bpbHbpbHa6bHa6bHa6bDa6bHa6bDa6babHbabHbabHbabHbablbablbablbJblbJbabJblbgbabgbabgbJbgbgbgbgbgbgbgbgbgbgaZbgbnbgbnbgbnbgbnaZbnaZbnbybnbyaNbnaNbyaNbnbwbnbwaNbwaNbwbwbwbwaXbwaQbwaXbwbraXbraXbraXbrbBaObBaObrbsaObsaObsaObsbsa1bsa1bsbqa1bqa1bqa1bqboa5boa5bqbjbdbjbjbjbjbebjbAbebAbAbvbAbxbAbFbGbFbFbFbFbObF",
+"bPbEbPbEbNbEbCbEbCbtbCbtbCbbbCbbbEbbbQbbbtbbbtbbbba8bba8bba8bba8bba0bba0a8a2a8a0a8aJa8a2a8aJa0aJa0aJa0aJa3aJa3aJa3aJa3aEa3ata3aEaJata3ataJata3atatataEatatatatatatatatatat#iat#iat#iatalatalatalatalatal#iaa#ial#iaa#ial#iaa#ial#i#l#iaaal#lal#lal#lal#lal#lal#lal#lal#l#o#l#o#l#o#l#o#l#o#l#o#l#o#l#o#l#o#l#o#l#o.h#o#l#o.h#o.h#o.h#o.h#o.h#o.h#o.h#o.h#o.h#o.h#o.h#o.h#o.h#o.h.j.h#o.h.j.h#o.h.j.h#o.h.j.h.j.h.j.h.j.h.j.h.j.h.j.h.j.h.i.h.i.h.i.h.i.j.i.h.i.j.i.h.i.j.i.h.i.j.i.j.i.j.i.j.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i"
+".i.i.i.e.ibf.i.d.ibf.ibI.i.d.ibI.i.d.ibIbfbIbfbIbfbIbfbIbfbIbfbIbfbIbfbpbfbpbfbp.dbpbfbpbIbp.dbpbpbpbpbpbpbpbpbpbpbpbpbpbpa6bpbHbpa6bpbHbpbHbpbDa6bHa6bDa6bDa6bDbHbDa6babHbabHbabHbabHbabHbablbJbabababJbabJbabgbabgbabgbJbgbabgbJbgbgbmbgbgbgbRbgbnbgbnbgbnbgbnbgbnaZbnbybnbybnbnbnbnbwbnbwbnbwbnbwaNbwbwbwbwbubwaXbwaQbwaQbwbraXbraXbrbBbrbBaObraObrbsbrbsaObsaObsaObsbsa1bsbqbsbqa1bqa1bqboa5bqa5bobjbqbja5bjbjbjbjbebjbAbebvbAbvbAbxbAbFbAbFbFbFbFbObFbObKbS",
+"bEbCbEbCbEbCbtbCbtbCbbbEbbbEbbbtbbbtbbbbbbbba8bba8bba8bba8bba2a8a0a8a2a8a2a8aJa8aJa0aJa0aJa0aJa3aJa0aJaJaEa3aEaJaEa3ataJataJataJataJataEataEatatatatatatatatatatatat#ratalataaatalataaataaataa#iaa#iaa#iaa#iaa#iaaal#lalaaal#lal#lal#lal#lal#lal#lal#l#o#lal#l#o#l#o#l#o#l#o#l#o#l#o#l#o#l#o#p#l#C#o#p#l#p#o#p#l#p#o#p#l#p#o#p#l#p#o#p#l#p#o#p#l#p#o#p.h#p#o#p.h#p.j#p.h#p.j#p.h#p.j.h.h.h.j.h.j.h.j.h.j.h.j.h.j.h.j.h.j.h.j.h.j.h.j.h.j.h.j.h.j.h.j.h.j.h.j.h.j.h.i.h.i.h.i.h.i.h.i.h.i.h.i.h.i.h.i.h.i.j.i.h.i.i.i.g.i.i.i.i"
+".i.i.i.i.i.i.i.i.i.i.i.ibf.ibf.ibf.i.d.ibf.i.d.ibf.ibIbf.dbfbIbf.dbfbIbfbIbfbIbfbpbfbpbfbpbfbpbfbp.dbpbfbpbMbpbMbpbpbpbMbpbpbpbpbpbpa6bpa6bpbHbpa6bpbHbpbHa6bHa6bHa6bDa6bHbHbDa6babHbabHbabHbabHbabHbablbablbJblbJbabJblbgbabgbabgbJbgbJbgbgbgbgbgbgbgbgbgbgbnbgbnbgbnbgbnbybnbybnbybnbybnbnbwbyaNbnbwbnbwaNbwaNbwbwbwbwaXbwaQbwaXbwbraXbraXbraXbrbBaObBaObrbsbBbsaObsaObsbsa1bsa1bsbqbsboa1bqa1bqboa5boa5bqbjbdbjbjbjbjbebjbAbjbAbAbvbAbxbAbFbAbFbFbFbFbKbFbObF",
+"bPbCbPbEbPbEbCbEbCbEbCbtbCbtbCbbbCbbbtbbbQbbbtbbbtbbbba8bba8bba8bba8bba8bba0a8a0a8a0a8a2a8a0a8aJa0aJa0aJa0aJa3aJa3aJa3aJa3aEa3ata3aEa3ata3ataJata3ataJataEatatatatatatatatatat#iatatat#iat#iatalatalatalatal#ial#ial#iaa#ial#iaa#ial#i#l#ial#i#l#i#oal#lal#lal#lal#lal#lal#l#o#lal#l#o#l#o#l#o#l#o#l#o#l#o#l#o#l#o#l#o#l#o#l#o.h#o#l#o.h#o.h#o.h#o.h#o.h#o.h#o.h#o.h#o.h#o.h#o.h#o.h#o.h#o.h#o.h#o.h.j.h#o.h.j.h#o.h.j.h#o.h.i.h.e.h.i.h.e.j.i.h.e.j.i.h.e.j.i.h.i.j.i.j.e.j.i.j.e.j.i.i.e.i.i.i.e.i.i.i.e.i.i.i.e.i.i.i.e.i.i"
+".i.d.i.d.i.d.i.d.ibI.i.d.ibI.i.d.ibIbfbIbfbIbfbIbfbIbfbIbfbIbfbIbfbp.dbpbfbp.dbp.dbpbIbp.dbpbpbpbpbpbpbpbpbpbpbpbpbTbpa6bpbHbpbHbpbHbpbHbpbDa6bHa6bDa6bDa6bDbHbDbHbabHbabHbabHbabHbabHbablbJbabJbabJbabJbabJbabgbabgbJbgbJbgbJbgbgbmbgbgbgbRbgbRbgbnbgbnbgbnbgbnaZbnbybnbybnbnbnbnbwbnbwbnbwbnbwaNbwbwbwbwbubwbwbwaQbwaQbwbrbwbraXbrbBbrbBbrbraObrbsbrbsaObsaObsaObsbsa1bsbqbsbqa1bqa1bqbobqboa5bobjbqbja5bjbjbjbjbebjbAbjbvbAbvbAbvbAbFbAbFbFbFbFbFbFbObFbSbObS",
+"bEbNbEbCbEbCbEbCbtbCbtbCbbbEbbbEbbbtbbbtbbbbbbbba8bba8bba8bba8bba2a8a0a8a2a8a2a8aJa8aJa0aJa0aJa0aJa3aJa0aJa3aJa3aEaJaEa3ataJataJataJataJataJataEatatatatatatatatatatatat#iat#iataaatalataaatalataa#iaa#iaa#iaa#iaa#iaa#iaa#iaaal#lal#lal#lal#lal#lal#lal#lal#lal#l#o#l#o#l#o#l#o#l#o#l#o#l#o#l#o#l#o#l#o.h#o#l#o.h#o.h#o.h#o.h#o.h#o.h#o.h#o.h#o.h#o.h#o.h#o.h#o.h.j.h#o.h.j.h#o.h.j.h.j.h.j.h.j.h.j.h.j.h.j.h.j.h.j.h.j.h.j.h.j.h.j.h.j.h.j.h.j.h.j.h.i.h.i.h.i.h.i.h.i.h.i.h.i.h.i.h.i.h.i.j.i.h.i.j.i.g.i.i.i.g.i.i.i.i.i.i"
+".i.i.i.i.i.i.i.i.d.ibf.i.d.ibf.i.d.ibf.i.d.i.d.ibIbf.dbfbIbf.dbfbIbfbIbfbIbfbpbfbpbfbp.dbpbfbp.dbp.dbpbMbpbMbpbpbpbMbpbpbpbpbpbpbHbpa6bpbHbpbHbpbHbpbHa6bHa6bHa6bDa6bHbHbDbHbabHbabHbabHbabHbabHbJblbablbJblbJbabJblbgbabgbabgbJbgbJbgbgbgbgbgbgbUbgbgbgbnbgbnbgbnbgbnbUbnbybnbybnbybnbnbwbybwbnbwbnbwaNbwaNbwbwbwbwbwbwaQbwaXbwbrbwbraXbraXbrbBbrbBaObrbsbBbsaObsaObsbsbsbsa1bsbqbsboa1bqa1bqboa5boa5bobjbdbjbjbjbjbebjbAbjbAbebvbAbvbAbFbAbFbLbFbLbFbFbObFbObO",
+"bPbCbPbCbPbEbPbEbCbEbCbEbCbtbCbtbCbbbCbbbQbbbQbbbtbbbtbbbba8bba8bba8bba8bba8bba0a8a0a8a0a8a2a8a0a8aJa0aJa0aJa0aJa3aJa3aJa3aJa3aJa3aEa3aEa3ata3ataJata3ataJata3atatatatatatatatatatatatatat#iat#iat#iat#iatalatal#ialatal#ial#ial#ial#ial#iaa#ial#i#l#ial#i#l#i#o#i#l#i#oal#lal#lal#lal#l#o#lal#l#o#l#o#l#o#l#o#l#o#l#o#l#o#l#o#l#o#l#o#l#o.h#o#l#o.h#o#l#o.h#o.h#o.h#o.h#o.h#o.h#o.h#o.h#o.h#o.h#o.h#o.h.e.h.e.h.e.h.e.j.e.h.e.j.e.h.e.j.e.h.e.j.e.h.e.j.i.j.e.j.i.j.e.j.i.i.e.i.e.i.e.i.e.i.e.i.e.i.e.i.e.i.e.i.e.i.e.i.d.i.d"
+".i.d.ibI.i.d.ibI.i.d.ibI.ibIbfbIbfbIbfbIbfbIbfbI.dbIbfbI.dbIbfbp.dbp.dbp.dbp.dbpbIbp.dbpbpbpbpbpbpbpbpbTbpbpbpbTbpbHbpbHbpbHbpbHbpbHbpbDa6bHa6bDbHbDa6bDbHbDbHbabHbabHbabHbabHbJbHbablbJbabJbabJbabJbabJbabgbabgbJbgbJbgbJbgbgbmbgbgbgbRbgbRbgbnbgbnbgbnbUbnbgbnbybnbybnbnbnbnbwbnbwbnbwbnbwbnbwbwbwbwbubwbwbwbrbwaQbwbrbwbraXbrbBbrbBbrbraObrbsbrbsbrbsaObsaObsbsa1bsbqbsbqbsbqa1bqa1bqboa5bobjbqbja5bjbjbjbjbebjbAbjbvbebvbAbvbAbxbAbFbvbFbFbFbFbObFbObObObObV",
+"bEbPbEbNbEbCbEbCbEbCbtbCbtbCbbbEbbbEbbbtbbbtbbbbbbbba8bba8bba8bba8bba2a8a0a8a2a8a2a8aJa8a2a0aJa0aJa0aJa0aJa0aJa3aJa3aEaJaEa3ataJaEaJataJataJataJataEatatatatatatatatatatatat#iat#iat#iatalataaatalataa#ialataa#iaa#iaa#iaa#iaa#iaa#i#l#iaaal#lal#lal#lal#lal#lal#lal#l#o#lal#l#o#l#o#l#o#l#o#l#o#l#o#l#o#l#o#l#o#l#o.h#o#l#o.h#o.h#o.h#o.h#o.h#o.h#o.h#o.h#o.h#o.h#o.h#o.h#o.h#o.h#o.h.j.h#o.h.j.h#o.h.j.h#o.h.j.h#o.h.j.h.j.h.j.h.j.h.j.h.i.h.i.h.i.h.i.h.i.h.i.h.i.h.i.h.i.h.i.j.i.h.i.j.i.h.i.i.i.g.i.i.i.i.i.i.e.i.i.i.e.i"
+".i.i.e.ibf.i.d.i.d.i.d.i.d.i.d.i.d.i.d.i.dbfbIbf.dbfbIbfbIbfbIbfbIbfbIbfbp.dbpbfbp.dbp.dbp.dbp.dbpbMbpbMbpbpbpbMbpbpbpbpbpbpbHbpbHbpbHbpbHbpbHbpbHa6bHa6bHbHbDa6bHbHbDbHbabHbabHbabHbabHbabHbJblbJblbJblbJbabJblbgbabgbabgbJbgbJbgbgbgbgbgbgbUbgbUbgbnbgbnbgbnbgbnbUbnbybnbybnbybnbnbWbybwbnbwbnbwbnbwaNbwbwbwbwbwbwbrbwbBbwbrbwbraXbraXbrbBbrbBaObrbsbBbsbrbsaObsbsbsbsa1bsbobsboa1bqa1bqbobqboa5bobjbobjbjbjbjbjbjbAbjbAbjbvbAbvbAbFbAbFbAbFbLbFbFbObFbObObObO",
+"bPbPbPbCbPbCbPbEbPbEbCbEbCbEbCbtbCbtbCbbbCbbbQbbbQbbbtbbbtbbbba8bba8bba8bba8bba8bba0a8a0a8a0a8a2a8a0a8aJa8aJa0aJa0aJa3aJa0aJa3aJa3aJa3aEa3aEa3ata3ata3ata3ataJata3at.batatatatatatatatatatatat#iat#iat#iat#iat#iatalatalatal#ial#ial#ial#ial#ial#ial#iaa#ial#i#l#i#o#i#l#i#o#i#l#i#o#i#l#i#o#i#lal#o#o#lal#l#o#l#o#l#o#l#o#l#o#l#o#l#o#l#o#l#o#l#o#l#o.h#o#l#o.h#o#l#o.h#o.h#o.h.e.j.e.h.e.j.e.h.e.j.e.h.e.j.e.h.e.j.e.h.e.j.e.h.e.j.e.h.e.j.e.j.e.j.e.j.e.j.e.j.e.i.e.i.e.i.e.i.e.i.e.i.e.i.e.i.e.i.e.i.e.i.e.i.d.i.d.i.d.i.d"
+".ibI.i.d.ibI.i.d.ibI.ibIbfbI.dbIbfbI.dbIbfbI.dbI.dbI.dbp.dbp.dbp.dbpbIbp.dbpbIbp.dbpbpbpbpbTbpbpbpbTbpbTbpbTbpbHbpbHbpbHbpbHbpbHbpbDbTbHa6bDbHbDbHbDbHbDbHbabHbabHbabHbabHbJbDbJblbJbabJbabJbabJbabJbJbgbabgbJbgbJbgbJbgbgbmbgbgbgbRbgbRbgbnbgbnbgbnbUbnbUbnbybnbybnbnbnbnbWbnbwbnbwbnbwbnbwbwbwbwbubwbwbwbrbwbrbwbrbwbraXbrbBbrbBbrbraObBbsbrbsbrbsaObsaObsbsbsbsbqbsbqbsbqa1bqa1bqbobqbobjbqbjbqbjbjbjbjbjbjbebjbvbjbvbAbvbAbxbAbFbvbFbFbFbFbXbFbObXbObObVbObY",
+"bEbPbEbPbEbNbEbCbEbCbEbCbtbCbtbCbbbEbbbEbbbtbbbtbbbbbbbba8bba8bba8bba8bba2a8a0a8a2a8a2a8a2a8a2a8aJa0aJa0aJa0aJa0aJa3aJa3aJaJaEa3aEaJaEa3ataJataJataJataJatatatatatatatatatatatat#iatatat#iat#iatalatalataaatalataa#ial#iaa#iaa#iaa#iaa#iaa#iaa#i#l#i#l#i#lal#lal#lal#lal#lal#lal#l#o#lal#l#o#l#o#l#o#l#o#l#o#l#o#l#o#l#o#l#o#l#o.h#o#l#o.h#o#l#o.h#o.h#o.h#o.h#o.h#o.h#o.h#o.h#o.h#o.h#o.h#o.h#o.h#o.h#o.h#o.h#o.h#o.h#o.h.i.h.e.h.i.h.e.h.i.h.e.h.i.h.e.h.i.h.e.h.i.j.e.h.i.j.e.h.i.i.e.g.i.i.e.i.i.i.e.i.i.i.e.i.e.i.e.i.e.i"
+".d.i.d.i.d.i.d.i.d.i.d.i.d.i.d.ibI.i.dbfbIbf.dbfbIbfbIbfbIbfbI.dbIbfbp.dbp.dbp.dbp.dbp.dbp.dbpbpbpbMbpbpbpbMbpbpbTbpbpbpbHbpbHbpbHbpbHbpbHbpbHa6bHa6bHbHbDbHbHbHbDbHbabHbabHbabHbabHbabHbJblbJblbJblbJbabJblbgbJbgbJbgbJbgbJbgbJbgbgbgbgbUbgbUbgbRbgbnbgbnbgbnbUbnbybnbybnbybnbybWbybwbnbwbnbwbnbwaNbwbwbwbwbwbwbrbwbBbwbrbwbraXbraXbrbBbrbBaObBbsbBbsbrbsaObsbsbsbsbsbsbobsbobsbqa1bqbobqboa5bobjbobjbjbjbjbjbjbAbjbAbjbvbAbAbAbZbAbFbAbFbLbFbFbXbFbObXbObOb0bO",
+"bPbPbPb1bPbCbPbCbPbEbPbEbCbEbCbEbCbtbCbtbCbbbCbbbQbbbQbbbtbbbQbbbba8bba8bba8bba8bba8bba0a8a0a8a0a8a2a8a0a8aJa8a3a0aJa0aJa0aJa0aJa3aJa3aJa3aJa3aEa3ata3ata3ata3ataJata3at.bat#gatatatatatatatatatat#iatatat#iat#iat#iat#iat#iatal#ialatal#ial#ial#ial#ial#ial#ial#i#o#ial#i#l#i#o#i#l#i#o#i#l#i#o#i#l#i#o#i#l#i#o.e#l#i#o.e#l.e#o.e#l.e#o.e#l.e#o.e#l.e#o.e#l.e#o.e#l.e#o.e.h.e#o.e.h.e#o.e.h.e#o.e.h.e.j.e.h.e.j.e.h.e.j.e.j.e.j.e.j.e.j.e.j.e.j.e.j.e.i.e.i.e.i.e.i.e.i.e.i.e.i.e.i.e.i.e.i.e.i.e.i.e.i.d.i.d.i.d.ibI.i.d.ibI"
+".i.d.ibI.ebI.ibI.dbIbfbI.dbI.dbI.dbI.dbI.dbI.dbI.dbp.dbp.dbp.dbpbIbp.dbpbIbpbIbTbpbpbpbTbpbTbpbTbpbTbpbTbpbHbpbHbpbHbpbDbpbHbpbDbHbHbHbDbHbDbHbDbHbDbHbDbHbabHbJbHbabHbJbDbJblbJbabJbabJbabJbabJbJbgbJbgbJbgbJbgbJbgbgbRbgbgbgbRbgbRbgbnbgbnbgbnbUbnbUbnbybnbybnbnbnbnbWbnbwbnbwbnbwbnbwbWbwbwbubwbwbwb2bwbrbwbrbwbrbwbrbBbrbBbrbrbrbBbsbrbsbrbsbrbsaObsbsbsbsaRbsbqbsbqbsbqa1bqbobqbobjbqbjbqbjbjbjbjbjbjbebjbvbjbvbAbvbAbvbAbFbvbFbLbFbFbFbFbObXbObObSbObYbObY",
+"b1bPbEbPbEbPbEbNbEbCbEbCbEbCbtbCbtbCbbbEbbbCbbbtbbbtbbbbbbbba8bba8bba8bba8bba2a8a0a8a2a8a2a8a2a8a2a8aJa0aJa0aJa0aJa0aJa3aJa3aJa3aEa3aEaJaEa3ataJataJataJataJat.bataEatatatatatatatatatatatat#iat#iat#iat#iatalatalataa#ial#iaa#ial#iaa#ial#iaa#iaa#i#l#iaa#i#l#i#l#i#l#i#lal#lal#lal#lal#lal#l#o#lal#l#o#l#o#l#o#l#o#l#o#l#o#l#o#l#o#l#o#l#o#l#o#l#o.h#o#l#o.h#o.h#o.h#o.h#o.h#o.h#o.h#o.h#o.h#o.h#o.h.e.h.e.h.e.h.e.h.e.h.e.h.e.h.e.h.e.h.e.h.e.h.e.h.e.j.e.h.e.j.e.h.e.j.e.g.e.i.e.i.e.i.e.i.e.i.e.i.e.i.e.i.e.i.e.i.e.i.d.i"
+".d.i.d.i.d.i.d.i.d.i.d.i.d.ibIbf.dbfbIbfbI.dbIbfbI.dbIbfbI.dbp.dbp.dbp.dbp.dbp.dbp.dbp.dbpbpbpbMbpbpbTbpbpbpbTbpbTbpbHbpbHbpbHbpbHbpbHbpbHbHbHa6bHbHbDbHbHbHbDbHbabHbabHbabHbJbHbJbHbJblbJblbJblbJbabJblbgbJbgbJbgbJbgbJbgbJbgbgbgbgbUbgbUbgbRbgbnbgbnbgbnbUbnbUbnbybnbybnbybWbybwbnbwbnbwbnbwbnbwbwbwbwbwbwb3bwbBbwbrbwbrb3brbBbrbBbrbBbrbBbsbBbsbrbsaObsbsbsbsbsbsbobsbobsbqa1bqbobqbobqbobjbobjbqbjbjbjbjb4bjbAbjbAbebAbAbvbAbFbAbFb5bFbFbXbFbObXbObObObObYbO",
+"bPbPbPbPbPb1bPbCbPbCbPbEbPbEbCbEbCbEbCbtbCbtbCbbbCbbbQbbbQbbbtbbbQbbbba8bba8bba8bba8bba8bba0a8a0a8a0a8a0a8a0a8aJa8a3a0aJa0aJa0aJa0aJa3aJa3aJa3aJa3aEa3ata3ata3ata3ata3ata3at.bata3at.batb6atatatatatatatatatat#iat#iat#iat#iat#iat#iat#iatal#ial#ial#ial#ial#ial#ial#ial#ial#i#o#ial#i#o#i#o#i#o#i#o#i#l#i#o#i#l#i#o#i#l#i#o.e#l#i#o.e#l.e#o.e#l.e#o.e#l.e#o.e#l.e#o.e#l.e#o.e#l.e#o.e#l.e#o.e#o.e#o.e.j.e#o.e.j.e#o.e.j.e#o.e.j.e#o.e.j.e.e.e.i.e.i.e.i.e.i.e.i.e.i.e.i.e.i.e.i.e.e.e.i.e.e.e.i.d.e.d.ibI.e.d.ibI.e.d.ibI.ebI"
+".ibI.ebI.dbI.dbI.dbI.dbI.dbI.dbI.dbI.dbI.dbp.dbp.dbp.dbp.dbpbIbp.dbTbIbpbpbTbpbTbpbTbpbTbpbTbpbTbpbTbpbHbpbHbpbHbpbDbTbHbpbDbHbDbHbDbHbDbHbDbHbDbHbDbHbabHbJbHbJbHbJbDbJbHbJbabJbabJbJbJbabJbJbgbJbgbJbgbJbgbJbgbgbRbgbUbgbRbgbRbgbRbgbnbgbnbUbnbUbnbUbnbybnbnbnbnbWbnbwbnbwbnbwbnbwbWbwbwbwbwbwbwb2bwbrbwbrbwbrbwbrbBbrbBbrbrbrbBbsbrbsbrbsbrbsaObsbsbsbsb7bsbobsbqbsbqa1bqbobqbobjbqbjbqbjb8bjbjbjbjbjbjbvbjbAbjbvbAbvbAbFbAbFbAbFbFbFbFbObFbObXbSbObVbObYb0bY",
+"bPbPb1bPbEbPbEbPbEbNbEbCbEbCbEbCbtbCbtbCbbbEbbbCbbbtbbbtbbbtbbbba8bba8bba8bba8bba8a8a0a8a2a8a0a8a2a8a2a8aJa0aJa0aJa0aJa0aJa3aJa3aJa3aJa3aEaJaEa3ataJata3ataJataJataJataJatatatatatatatatatatatat#iat#iat#iat#iat#iatalatal#ialataa#ial#iaa#ial#iaa#ial#iaa#iaa#i#l#iaa#i#l#i#l#i#l#i#l#i#l#i#l#i#l#i#lal#l#o#lal#l#o#l#o#l#o#l#o#l#o#l#o#l#o#l#o#l#o#l#o#l#o#l#o.h#o#l#o.h.e#l.e.h.e.h.e.h.e.h.e.h.e.h.e.h.e.h.e.h.e.h.e.h.e.h.e.h.e.j.e.h.e.j.e.h.e.j.e.h.e.j.e.g.e.i.e.i.e.i.e.i.e.i.e.i.e.i.e.i.e.i.e.i.e.i.e.i.d.i.d.i.d.i"
+".d.i.d.i.d.i.d.ibI.i.d.dbIbf.d.dbIbfbI.dbI.dbI.dbI.dbI.dbp.dbp.dbp.dbp.dbp.dbp.dbp.dbpbpbTbMbpbpbTbpbTbpbTbpbTbpbHbpbHbpbHbpbHbpbHbpbHbHbDbHbHbHbDbHbDbHbDbHbabHbabHbabHbJbHbJbHbJblbJblbJblbJbabJbabJbJbgbJbgbJbgbJbgbJbUbgbgbgbUbgbUbgbRbgbnbgbnbgbnbUbnbUbnbybnbybnbybWbybwbnbwbnbwbWbwbWbwbwbwbwbwbwb3bwbBbwbrbwbrbwbrbBbrbBbrbBbrbBbsbBbsbrbsbrbsbsbsbsbsbsbobsbobsbqbsbqbobqbobqbobjbobjbqbjbjbjbjbjbjbAbjbAbjbAbAbvbAbZbAbFbAbFbFbFbFbXbFbObXbObObVbObYb0",
+"bPbPbPbPbPbPbPb1bPbCbPbCbPbEbPbCbCbEbCbEbCbtbCbtbCbtbCbbbQbbbQbbbtbbbQbbbba8bba8bba8bba8bba8bba8a8a0a8a0a8a0a8a0a8aJa8a3a8aJa0aJa0aJa0aJa3aJa3aJa3aJa3aJa3ata3aEa3ata3ata3ata3ata3ata3at.bat#gatatatb6atatatatatat#iat#iat#iat#iat#iat#iat#iat#i#i#iat#i#ial#ial#ial#ial#ial#ial#ial#ial#i#o#ial#i#o#i#o#i#o#i#o#i#o#i#o#i#o#i#o#i#o#i#o.e#o#i#o.e#o#i#o.e#o.e#o.e#o.e#o.e#o.e#o.e#o.e#o.e#o.e#o.e#o.e#o.e#o.e#o.e#o.e#o.e.e.e.e.e.e.e.e.e.e.e.e.e.i.e.e.e.i.e.e.e.i.e.e.e.i.e.e.e.e.d.e.d.ebI.e.d.ebI.e.d.ebI.e.d.ebI.ebI.ebI"
+".ebI.dbI.dbI.dbI.dbI.dbI.dbI.dbI.dbI.dbp.dbp.dbTbIbp.dbTbIbp.dbTbIbTbpbTbpbTbpbTbpbTbpbTbpbTbpbHbpbHbpbHbTbHbpbDbTbHbTbDbHbDbHbDbHbDbHbDbHbDbHb9bHbabHbJbHbJbHbJbDbJbHbJbabJbabJbJbJbJbJbJbgbJbgbJbgbJbgbJbgbJbRbgbUbgbRbgbRbgbRbUbnbgbnbUbnbUbnbUbnbybWbnbnbnbWbnbWbnbwbnbwbnbwbWbwbwbwbwbwbwb2bwbrbwbrbwbrbwbrb3brbBbrbrbrbBc.brbsbrbsbrbsaObsbsbsbsc#bsbobsbqbsbqa1bqbobqbob8bqbjbobjbqbjbjbjbjbjbjbvbjbAbjbvbAbvbAbZbAbFbAbFbFbFbFbXbFbObXbSbObVbObYb0bYcacb",
+"bPbPbPbPb1bPbEbPbEbPbEbNbEbCbEbCbEbCbtbCbtbCbbbEbbbCbbbtbbbtbbbtbbbba8bba8bba8bba8bba8a8a0a8a2a8a0a8a2a8a2a8aJa8aJa0aJa0aJa0aJa3aJa3aJa3aJa3aJa3aEa3ataJata3ataJataJataJataJat.batatatatatatatatatat#iatatat#iat#iat#iat#iat#iatalatal#ial#iaa#ial#iaa#ial#iaa#ial#i#l#ial#i#l#i#o#i#l#i#l#i#l#i#l#i#l#i#l#i#l#i#l#i#l.e#l#i#l.e#l.e#l.e#l.e#l.e#l.e#l.e#l.e#l.e#l.e#l.e#l.e#l.e#l.e.h.e#l.e.h.e#l.e.h.e#l.e.h.e#o.e.h.e.j.e.h.e.j.e.h.e.j.e.h.e.j.e.g.e.i.e.i.e.i.e.i.e.i.e.i.e.i.e.i.e.i.e.i.e.i.e.i.d.i.d.i.d.e.d.i.d.e.d.i"
+".d.ebI.i.d.ebI.i.d.dbI.dbI.dbI.dbI.dbI.dbI.dbI.dbI.dbp.dbp.dbp.dbp.dbp.dbp.dbTbMbpbpbTbMbTbpbTbpbTbpbTbpbTbpbHbpbHbpbHbpbHbTbHbpbHbHbDbHbHbHbDbHbDbHbDbHbabHbJbHbabHbJbHbJbHbJblbJblbJblbJbJbJbabJbJbgbJbgbJbgbJbgbJbUbgbUbgbUbgbUbgbRbgbnbUbnbUbnbUbnbUbnbybnbybnbybWbybWbnbwbnbwbWbwbWbwbwbwbwbwbwb3bwbBbwbrbwbrb3brb3brbBbrbBbrbBc.bBbsbrbsbrbsbsbsbsbsbsccbsbobsbqbsbqbobqbobqbobjbobjbqbjcdbjbjbjbjb4bjbAbjbAbAbvbAbZbAbFbAbFb5bFbLbXbFbObXbObObVbObYb0bYca",
+"cebPbPbPbPbPbPbPbPb1bPbCbPbCbPbEbPbCbCbEbCbEbCbtbCbtbCbtbCbbbQbbbCbbbtbbbQbbbta8bba8bba8bba8bba8bba8a8a0a8a0a8a0a8a0a8aJa8a3a8aJa8a3a0aJa0aJa3aJa3aJa3aJa3aJa3aJa3aEa3ata3ata3ata3ata3ata3at.bat#gat.bat#gatatatb6atat#iatatat#iat#iat#iat#iat#iat#iat#iat#i#i#i#i#i#i#i#i#i#ial#ial#ial#ial#ial#ial#i#o#i#o#i#o#i#o#i#o#i#o#i#o#i#o#i#o#i#o#i#o#i#o#i#o#i#o.e#o#i#o.e#o#i#o.e#o.e#o.e#o.e#o.e#o.e#o.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.d.ebI.e.d.ebI.e.d.ebI.e.d.ebI.ebI.ebI.ebI.ebI.dbI"
+".dbI.dbI.dbI.dbI.dbI.dbI.dbI.dbp.dbT.dbp.dbTbIbT.dbTbIbTbIbTbIbTbpbTbpbTbpbTbpbTbpbTbpbTbpbHbTbHbpbHbTbHbTbDbTbHbTbDbHbDbHbDbHbDbHbDbHbDbHb9bHbJbHbJbHbJbHbJbDbJbHbJbabJbabJbJbJbJbJbJbgbJbgbJbgbJbUbJbgbJbRbgbUbgbRbgbRbgbRbUbnbgbnbUbnbUbnbUbnbybWbnbWbnbWbnbWbnbwbnbwbnbwbWbwbwbwbwbwbwb2bwb2bwbrbwbrbwbrb3brbBbrbrbrbBc.brbsbrbsbrbsbrbsbsbsbsb7bsbobsbqbsbqbsbqbobqbob8bqbjbobjbqbjbjbjbjbjbjbAbjbAbjbvbAbvbAbZbAbFbAbFbZbFbFbXbFbObFbSbXbSbObVb0bYb0cbbYcb",
+"bPbPbPbPbPbPb1bPbEbPbEbPbEbNbEbCbEbCbEbCbtbCbtbCbbbEbbbCbbbtbbbtbbbtbbbba8bba8bba8bba8bba8a8a0a8a2a8a0a8a2a8a2a8aJa8aJa0aJa0aJa0aJa3aJa3aJa3aJa3aJa3aEa3ataJata3ataJata3ataJataJat.bat.batatatatatatatatatatatat#iat#iat#iat#iat#iat#iat#i#i#iatal#ial#ial#ial#iaa#ial#iaa#ial#i#l#ial#i#l#i#o#i#l#i#o#i#l#i#o#i#l#i#o#i#l#i#l#i#l.e#l#i#l.e#l.e#l.e#l.e#l.e#l.e#l.e#o.e#l.e#o.e#l.e#o.e#l.e#o.e#l.e#o.e#l.e#o.e#l.e#o.e.h.e#o.e.h.e#o.e.i.e.e.e.i.e.e.e.i.e.e.e.i.e.e.e.i.e.e.e.i.e.e.e.i.e.e.d.i.d.e.d.i.d.e.d.e.d.e.d.e.d.e"
+"bI.e.d.ebI.d.d.dbI.dbI.dbI.dbI.dbI.dbI.dbI.dbp.dbp.dbp.dbT.dbp.dbT.dbpbIbTbMbTbpbTbMbTbpbTbpbTbpbTbpbHbpbHbpbHbTbHbpbHbTbHbTbHbHbDbHbHbHbDbHbDbHbDbHbabHbJbHbJbHbJbHbJbHbJblbJbabJblbJbJbJbJbJbJbgbJbgbJbgbJbgbJbUbgbUbgbUbgbUbgbRbgbRbUbnbUbnbUbnbUbnbybWbybnbybWbybWbnbwbnbwbWbwbWbwbwbwbwbwbwb3bwb3bwbrbwbrb3brb3brbBbrbBbrbBc.bBbsbrbsbrbsc.bsbsbsbsccbsbobsbqbsbqbobqbobqbob8bobjbobjbobjbjbjbjb4bjbAbjbAb4bvbAbvbAbFbAbFb5bFbLbXbFbObFbObXbVbObVb0bYb0cbbY",
+"cebPcfbPbPbPbPbPbPbPbPbCbPbCbPbCbPbEbPbCbCbEbCbEbCbtbCbtbCbtbCbbbCbbbCbbbQbbbQbbbta8cgbbbba8bba8bba8bba8a8a8a8a0a8a0a8a0a8a3a8a3a8aJa8a3a0aJa0aJa3aJa3aJa3aJa3aJa3aJa3aJa3ata3ata3ata3ata3ata3at#gata3at.bat#gat.bat#gatatatb6atat#iat#iat#iat#iat#iat#iat#iat#i#i#iat#i#i#i#i#i#i#i#i#i#i#i#i#i#i#i#i#i#i.e#ial#i#o#ial#i#o#i#o#i#o#i#o#i#o#i#o#i#o#i#o#i#o#i#o#i#o#i.e#i.e#i.e.e.e#i.e.e.e#i.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.d.ebI.e.d.ebI.e.d.ebI.e.d.ebI.ebI.ebI.ebI.ebI.ebI.dbI.dbI.dbI"
+".dbI.d.4.dbI.d.4.dbI.d.4.dbT.dbTbIbT.dbTbIbT.dbTbIbTbIbTbpbTbpbTbpbTbpbTbpbTbpbTbTbTbpbHbTbHbTbHbTbHbTbDbTbHbTbDbHbDbHbDbHbDbHb9bHbDbHb9bHbJbHbJbHbJbHbJbDbJbHbJbJbJbabJbJbJbJbJbJbJbJbgbJbgbJbUbJbUbJbRbgbUbgbRbgbRbgbRbUbnbUbnbUbnbUbnbUbnbybWbnbWbnbWbnbWbnbwbWbwbWbwbWbwbWbwbwbwbwb2bwb2bwbrbwbrbwbrb3brbBbrbBbrbBc.brbsbrbsbrbsbrbsbsbsbsb7bsccbsbqbsbqbsbqbobqbob8bob8bobjbqbjb8bjbjbjbjb4bjbAbjbvb4bvbAbZbAbZbAbFbZbFbFbXbFbXbFbObXbObObVbObYb0cbbYcbbYch",
+"bPcfbPbPbPbPbPbPb1bPbEbPbEbPbEbNbEbCbEbCbEbCbtbCbtbCbbbEbbbCbbbtbbbtbbbtbbbba8bba8bba8bba8bba8a8a8a8a2a8a0a8a2a8a0a8aJa8aJa8aJa0aJa0aJa3aJa0aJa3aJa3aJa3aJa3aEa3aEa3ataJata3ataJata3at.bataJat.batatatatatatatatatat#iatatat#iat#iat#iat#iat#iat#iat#i#i#iat#i#ial#ial#ial#ial#ial#iaa#ial#i#l#ial#i#l#i#o#i#l#i#o#i#l#i#o#i#l#i#o#i#l#i#o#i#l.e#o#i#l.e#o#i#l.e#o.e#l.e#o.e#l.e#o.e#l.e#o.e#l.e#o.e#l.e#o.e#l.e#o.e#o.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.d.e.d.e.d.e.d.e.d.e.d.e.d.ebI.e.d.ebI.e"
+".d.dbI.dbI.dbI.dbI.dbI.dbI.dbI.dbI.dbT.dbp.dbT.dbp.dbT.dbT.dbT.dbTbIbTbMbTbpbTbpbTbpbTbpbTbpbTbpbHbTbHbpbHbTbHbTbHbTbHbTbHbHbDbHbHbHbDbHbDbHb9bHbJbHbJbHbJbHbJbHbJbHbJblbJbJbJblbJbJbJbJbJbJbgbJbgbJbUbJbgbJbUbJbUbgbUbgbUbgbRbgbRbUbnbUbnbUbnbUbnbUbWbybWbybWbybWbnbwbnbwbWbwbWbwbWbwbwbwbwb3bwb3bwbrbwbrb3brb3brbBbrbBbrbBc.bBbsbrbsbrbsc.bsbsbsbsccbsccbsbqbsboccbqbobqbob8bobjbobjbobjbjbjbjbjbjbAbjbAb4bvbAbvbAbZbAbFb5bFbLbFbFbXbFbObXb0bOb0b0bYb0bYcacbcb",
+"cibPcebPcjbPbPbPbPbPbPbPbPbCbPbCbPbCbPbEbPbCbCbEbCbEbCbtbCbtbCbtbCbbbCbbbCbbbQbbbQbbbtbbcgbbbba8bba8bba8bba8a8a8a8a0a8a0a8a0a8a3a8a0a8aJa8a3a8aJa0a3a3aJa0aJa3aJa3aJa3aJa3aJa3.ba3ata3ata3ata3ata3ata3ata3at#gat#gat.bat#gat.bat#gatat#ib6atat#iat#iat#iat#iat#iat#iat#iat#i#i#iat#i#i#i#i#i#i#i#i#i#i#i#i#i#i#i#i#i#i#i#i#i#i.e#i#i#i.e#i.e#i.e#i.e#i.e#i.e#i.e#i.e#i.e#i.e#i.e#i.e#i.e#i.e#i.e#i.e.e.e#i.e.e.e#i.e.e.e#i.e.e.e#i.e.e.e#i.e.e.eck.e.d.ebI.e.d.ebI.e.d.ebI.e.d.e.4.ebI.e.4.ebI.e.4.ebI.d.4.dbI.d.4.dbI.d.4.dbI"
+".d.4.d.4.d.4.d.4.dbT.dbT.dbTbIbT.dbTbIbTbIbTbIbTbIbTbpbTbpbTbpbTbpbTbTbTbpbTbTbTbTbHbTbHbTbDbTbHbTbDbTbHbTbDbHbDbHb9bHbDbHb9bHb9bHbJbHbJbHbJbHbJbHbJb9bJbHbJbJbJbJbJbJbJbJbJbJbJbJbgbJbgbJbUbJbUbJbRbgbUbgbRbgbRbgbRbUbnbUbnbUbnbUbnbUbnbUbWbnbWbnbWbnbWbnbwbWbwbWbwbWbwbWbwbwbwbwb2bwb2bwbrbwbrbwbrb3brb3brbBbrbBc.brc.brbsbrbsc.bsbsbsbsbsbsccbsbqbsbqbsbqccbqbobqbob8bobjbqbjb8bjbjbjbjb4bjbAbjbvb4bvbAbZbAbZbAbFbZbFbZbXbFbXbFbObXbObObVbObVb0bYbVcbbYcbcbcl"};
+
+
+ switch (id) {
+ case image0_ID: return QPixmap((const char**)image0_data);
+ default: return QPixmap();
+ } // switch
+ } // icon
+
+};
+
+namespace Ui {
+ class DeicsOnzeGuiBase: public Ui_DeicsOnzeGuiBase {};
+} // namespace Ui
+
+QT_END_NAMESPACE
+
+class DeicsOnzeGuiBase : public QDialog, public Ui::DeicsOnzeGuiBase
+{
+ Q_OBJECT
+
+public:
+ DeicsOnzeGuiBase(QWidget* parent = 0, const char* name = 0, bool modal = false, Qt::WindowFlags fl = 0);
+ ~DeicsOnzeGuiBase();
+
+protected slots:
+ virtual void languageChange();
+
+};
+
+#endif // DEICSONZEGUIBASE_H
diff --git a/muse2/synti/deicsonze/deicsonzeguibase.ui b/muse2/synti/deicsonze/deicsonzeguibase.ui
new file mode 100644
index 00000000..fd8d37fe
--- /dev/null
+++ b/muse2/synti/deicsonze/deicsonzeguibase.ui
@@ -0,0 +1,9667 @@
+<!DOCTYPE UI><UI version="3.2" stdsetdef="1">
+<class>DeicsOnzeGuiBase</class>
+<author>Nil Geisweiller</author>
+<widget class="QDialog">
+ <property name="name">
+ <cstring>DeicsOnzeGuiBase</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>468</width>
+ <height>357</height>
+ </rect>
+ </property>
+ <property name="paletteForegroundColor">
+ <color>
+ <red>0</red>
+ <green>0</green>
+ <blue>0</blue>
+ </color>
+ </property>
+ <property name="paletteBackgroundColor">
+ <color>
+ <red>195</red>
+ <green>195</green>
+ <blue>195</blue>
+ </color>
+ </property>
+ <property name="caption">
+ <string>DeicsOnze</string>
+ </property>
+ <property name="sizeGripEnabled">
+ <bool>false</bool>
+ </property>
+ <property name="modal">
+ <bool>false</bool>
+ </property>
+ <widget class="QTabWidget">
+ <property name="name">
+ <cstring>deicsOnzeTabWidget</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>470</width>
+ <height>360</height>
+ </rect>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>7</hsizetype>
+ <vsizetype>7</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="paletteForegroundColor">
+ <color>
+ <red>0</red>
+ <green>0</green>
+ <blue>0</blue>
+ </color>
+ </property>
+ <property name="paletteBackgroundColor">
+ <color>
+ <red>195</red>
+ <green>195</green>
+ <blue>195</blue>
+ </color>
+ </property>
+ <property name="paletteBackgroundPixmap">
+ <pixmap>image0</pixmap>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="font">
+ <font>
+ <family>Teen</family>
+ </font>
+ </property>
+ <property name="cursor">
+ <cursor>0</cursor>
+ </property>
+ <property name="tabShape">
+ <enum>Rounded</enum>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string></string>
+ </property>
+ <widget class="QWidget">
+ <property name="name">
+ <cstring>TabPage</cstring>
+ </property>
+ <attribute name="title">
+ <string>&amp;Presets</string>
+ </attribute>
+ <widget class="QPushButton">
+ <property name="name">
+ <cstring>loadPushButton</cstring>
+ </property>
+ <property name="enabled">
+ <bool>true</bool>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>340</x>
+ <y>260</y>
+ <width>60</width>
+ <height>30</height>
+ </rect>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="cursor">
+ <cursor>13</cursor>
+ </property>
+ <property name="text">
+ <string>Load</string>
+ </property>
+ </widget>
+ <widget class="QPushButton">
+ <property name="name">
+ <cstring>savePushButton</cstring>
+ </property>
+ <property name="enabled">
+ <bool>true</bool>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>400</x>
+ <y>260</y>
+ <width>60</width>
+ <height>30</height>
+ </rect>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="cursor">
+ <cursor>13</cursor>
+ </property>
+ <property name="text">
+ <string>Save</string>
+ </property>
+ </widget>
+ <widget class="QGroupBox">
+ <property name="name">
+ <cstring>nameGroupBox</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>340</x>
+ <y>10</y>
+ <width>120</width>
+ <height>50</height>
+ </rect>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="title">
+ <string>Preset Name</string>
+ </property>
+ <widget class="QLineEdit">
+ <property name="name">
+ <cstring>nameLineEdit</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>10</x>
+ <y>20</y>
+ <width>100</width>
+ <height>21</height>
+ </rect>
+ </property>
+ <property name="paletteForegroundColor">
+ <color>
+ <red>0</red>
+ <green>180</green>
+ <blue>0</blue>
+ </color>
+ </property>
+ <property name="paletteBackgroundColor">
+ <color>
+ <red>220</red>
+ <green>240</green>
+ <blue>30</blue>
+ </color>
+ </property>
+ <property name="font">
+ <font>
+ <family>Zero Threes</family>
+ <pointsize>8</pointsize>
+ </font>
+ </property>
+ <property name="text">
+ <string>INIT VOICE</string>
+ </property>
+ <property name="maxLength">
+ <number>12</number>
+ </property>
+ </widget>
+ </widget>
+ <widget class="QGroupBox">
+ <property name="name">
+ <cstring>subcategoryGroupBox</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>340</x>
+ <y>60</y>
+ <width>120</width>
+ <height>50</height>
+ </rect>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="title">
+ <string>Subcategory</string>
+ </property>
+ <widget class="QLineEdit">
+ <property name="name">
+ <cstring>subcategoryLineEdit</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>10</x>
+ <y>20</y>
+ <width>100</width>
+ <height>21</height>
+ </rect>
+ </property>
+ <property name="paletteForegroundColor">
+ <color>
+ <red>0</red>
+ <green>180</green>
+ <blue>0</blue>
+ </color>
+ </property>
+ <property name="paletteBackgroundColor">
+ <color>
+ <red>220</red>
+ <green>240</green>
+ <blue>30</blue>
+ </color>
+ </property>
+ <property name="font">
+ <font>
+ <family>Zero Threes</family>
+ <pointsize>8</pointsize>
+ </font>
+ </property>
+ <property name="text">
+ <string>NONE</string>
+ </property>
+ <property name="maxLength">
+ <number>12</number>
+ </property>
+ </widget>
+ </widget>
+ <widget class="QGroupBox">
+ <property name="name">
+ <cstring>categoryGroupBox</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>340</x>
+ <y>110</y>
+ <width>120</width>
+ <height>50</height>
+ </rect>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="title">
+ <string>Category</string>
+ </property>
+ <widget class="QLineEdit">
+ <property name="name">
+ <cstring>categoryLineEdit</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>10</x>
+ <y>20</y>
+ <width>100</width>
+ <height>21</height>
+ </rect>
+ </property>
+ <property name="paletteForegroundColor">
+ <color>
+ <red>0</red>
+ <green>180</green>
+ <blue>0</blue>
+ </color>
+ </property>
+ <property name="paletteBackgroundColor">
+ <color>
+ <red>220</red>
+ <green>240</green>
+ <blue>30</blue>
+ </color>
+ </property>
+ <property name="font">
+ <font>
+ <family>Zero Threes</family>
+ <pointsize>8</pointsize>
+ </font>
+ </property>
+ <property name="text">
+ <string>NONE</string>
+ </property>
+ <property name="maxLength">
+ <number>12</number>
+ </property>
+ </widget>
+ </widget>
+ <widget class="QPushButton">
+ <property name="name">
+ <cstring>deletePushButton</cstring>
+ </property>
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>400</x>
+ <y>220</y>
+ <width>60</width>
+ <height>29</height>
+ </rect>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="cursor">
+ <cursor>13</cursor>
+ </property>
+ <property name="text">
+ <string>Delete</string>
+ </property>
+ </widget>
+ <widget class="QListView">
+ <column>
+ <property name="text">
+ <string>Category</string>
+ </property>
+ <property name="clickable">
+ <bool>false</bool>
+ </property>
+ <property name="resizable">
+ <bool>false</bool>
+ </property>
+ </column>
+ <property name="name">
+ <cstring>categoryListView</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>10</x>
+ <y>10</y>
+ <width>100</width>
+ <height>280</height>
+ </rect>
+ </property>
+ <property name="paletteForegroundColor">
+ <color>
+ <red>0</red>
+ <green>180</green>
+ <blue>0</blue>
+ </color>
+ </property>
+ <property name="paletteBackgroundColor">
+ <color>
+ <red>220</red>
+ <green>240</green>
+ <blue>30</blue>
+ </color>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>WidgetOrigin</enum>
+ </property>
+ <property name="font">
+ <font>
+ <family>Zero Threes</family>
+ <pointsize>8</pointsize>
+ </font>
+ </property>
+ <property name="frameShape">
+ <enum>TabWidgetPanel</enum>
+ </property>
+ <property name="frameShadow">
+ <enum>Sunken</enum>
+ </property>
+ <property name="allColumnsShowFocus">
+ <bool>false</bool>
+ </property>
+ <property name="showSortIndicator">
+ <bool>false</bool>
+ </property>
+ <property name="resizeMode">
+ <enum>AllColumns</enum>
+ </property>
+ </widget>
+ <widget class="QListView">
+ <column>
+ <property name="text">
+ <string>Subcategory</string>
+ </property>
+ <property name="clickable">
+ <bool>false</bool>
+ </property>
+ <property name="resizable">
+ <bool>false</bool>
+ </property>
+ </column>
+ <property name="name">
+ <cstring>subcategoryListView</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>120</x>
+ <y>10</y>
+ <width>100</width>
+ <height>280</height>
+ </rect>
+ </property>
+ <property name="paletteForegroundColor">
+ <color>
+ <red>0</red>
+ <green>180</green>
+ <blue>0</blue>
+ </color>
+ </property>
+ <property name="paletteBackgroundColor">
+ <color>
+ <red>220</red>
+ <green>240</green>
+ <blue>30</blue>
+ </color>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>WidgetOrigin</enum>
+ </property>
+ <property name="font">
+ <font>
+ <family>Zero Threes</family>
+ <pointsize>8</pointsize>
+ </font>
+ </property>
+ <property name="frameShape">
+ <enum>TabWidgetPanel</enum>
+ </property>
+ <property name="frameShadow">
+ <enum>Sunken</enum>
+ </property>
+ <property name="allColumnsShowFocus">
+ <bool>false</bool>
+ </property>
+ <property name="showSortIndicator">
+ <bool>false</bool>
+ </property>
+ <property name="resizeMode">
+ <enum>AllColumns</enum>
+ </property>
+ </widget>
+ <widget class="QListView">
+ <column>
+ <property name="text">
+ <string>Preset</string>
+ </property>
+ <property name="clickable">
+ <bool>false</bool>
+ </property>
+ <property name="resizable">
+ <bool>false</bool>
+ </property>
+ </column>
+ <property name="name">
+ <cstring>presetsListView</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>230</x>
+ <y>10</y>
+ <width>100</width>
+ <height>280</height>
+ </rect>
+ </property>
+ <property name="paletteForegroundColor">
+ <color>
+ <red>0</red>
+ <green>180</green>
+ <blue>0</blue>
+ </color>
+ </property>
+ <property name="paletteBackgroundColor">
+ <color>
+ <red>220</red>
+ <green>240</green>
+ <blue>30</blue>
+ </color>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>WidgetOrigin</enum>
+ </property>
+ <property name="font">
+ <font>
+ <family>Zero Threes</family>
+ <pointsize>8</pointsize>
+ </font>
+ </property>
+ <property name="frameShape">
+ <enum>TabWidgetPanel</enum>
+ </property>
+ <property name="frameShadow">
+ <enum>Sunken</enum>
+ </property>
+ <property name="allColumnsShowFocus">
+ <bool>false</bool>
+ </property>
+ <property name="showSortIndicator">
+ <bool>false</bool>
+ </property>
+ <property name="resizeMode">
+ <enum>AllColumns</enum>
+ </property>
+ </widget>
+ <widget class="QPushButton">
+ <property name="name">
+ <cstring>newPushButton</cstring>
+ </property>
+ <property name="enabled">
+ <bool>true</bool>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>340</x>
+ <y>220</y>
+ <width>60</width>
+ <height>29</height>
+ </rect>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="cursor">
+ <cursor>13</cursor>
+ </property>
+ <property name="text">
+ <string>New</string>
+ </property>
+ </widget>
+ <widget class="QGroupBox">
+ <property name="name">
+ <cstring>bankGroupBox</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>340</x>
+ <y>160</y>
+ <width>60</width>
+ <height>50</height>
+ </rect>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="title">
+ <string>Bank</string>
+ </property>
+ <widget class="QSpinBox">
+ <property name="name">
+ <cstring>bankSpinBox</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>10</x>
+ <y>20</y>
+ <width>40</width>
+ <height>21</height>
+ </rect>
+ </property>
+ <property name="paletteForegroundColor">
+ <color>
+ <red>0</red>
+ <green>180</green>
+ <blue>0</blue>
+ </color>
+ </property>
+ <property name="paletteBackgroundColor">
+ <color>
+ <red>220</red>
+ <green>240</green>
+ <blue>30</blue>
+ </color>
+ </property>
+ <property name="font">
+ <font>
+ <family>Zero Threes</family>
+ <italic>1</italic>
+ </font>
+ </property>
+ <property name="maxValue">
+ <number>128</number>
+ </property>
+ <property name="minValue">
+ <number>1</number>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Bank numerous</string>
+ </property>
+ </widget>
+ </widget>
+ <widget class="QGroupBox">
+ <property name="name">
+ <cstring>progGroupBox</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>400</x>
+ <y>160</y>
+ <width>60</width>
+ <height>50</height>
+ </rect>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="title">
+ <string>Prog</string>
+ </property>
+ <widget class="QSpinBox">
+ <property name="name">
+ <cstring>progSpinBox</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>10</x>
+ <y>20</y>
+ <width>40</width>
+ <height>21</height>
+ </rect>
+ </property>
+ <property name="paletteForegroundColor">
+ <color>
+ <red>0</red>
+ <green>180</green>
+ <blue>0</blue>
+ </color>
+ </property>
+ <property name="paletteBackgroundColor">
+ <color>
+ <red>220</red>
+ <green>240</green>
+ <blue>30</blue>
+ </color>
+ </property>
+ <property name="font">
+ <font>
+ <family>Zero Threes</family>
+ <italic>1</italic>
+ </font>
+ </property>
+ <property name="maxValue">
+ <number>128</number>
+ </property>
+ <property name="minValue">
+ <number>1</number>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Program numerous</string>
+ </property>
+ </widget>
+ </widget>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>presentTextLAbel</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>20</x>
+ <y>300</y>
+ <width>420</width>
+ <height>20</height>
+ </rect>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="frameShape">
+ <enum>NoFrame</enum>
+ </property>
+ <property name="frameShadow">
+ <enum>Plain</enum>
+ </property>
+ <property name="text">
+ <string>DeicsOnze v0.2.2 Copyright (c) 2004 Nil Geisweiller under GPL licence</string>
+ </property>
+ </widget>
+ </widget>
+ <widget class="QWidget">
+ <property name="name">
+ <cstring>TabPage</cstring>
+ </property>
+ <attribute name="title">
+ <string>&amp;Global</string>
+ </attribute>
+ <widget class="QGroupBox">
+ <property name="name">
+ <cstring>masterVolGroupBox</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>10</x>
+ <y>0</y>
+ <width>330</width>
+ <height>50</height>
+ </rect>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="title">
+ <string>Master Volume</string>
+ </property>
+ <widget class="QSlider">
+ <property name="name">
+ <cstring>masterVolSlider</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>10</x>
+ <y>20</y>
+ <width>250</width>
+ <height>20</height>
+ </rect>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="cursor">
+ <cursor>13</cursor>
+ </property>
+ <property name="maxValue">
+ <number>255</number>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Master Volume</string>
+ </property>
+ </widget>
+ <widget class="QSpinBox">
+ <property name="name">
+ <cstring>MasterVolumeSpinBox</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>270</x>
+ <y>20</y>
+ <width>50</width>
+ <height>21</height>
+ </rect>
+ </property>
+ <property name="paletteForegroundColor">
+ <color>
+ <red>0</red>
+ <green>180</green>
+ <blue>0</blue>
+ </color>
+ </property>
+ <property name="paletteBackgroundColor">
+ <color>
+ <red>220</red>
+ <green>240</green>
+ <blue>30</blue>
+ </color>
+ </property>
+ <property name="font">
+ <font>
+ <family>Zero Threes</family>
+ <italic>1</italic>
+ </font>
+ </property>
+ <property name="maxValue">
+ <number>255</number>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Master volume</string>
+ </property>
+ </widget>
+ </widget>
+ <widget class="QGroupBox">
+ <property name="name">
+ <cstring>FeedbackGroupBox</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>350</x>
+ <y>0</y>
+ <width>110</width>
+ <height>50</height>
+ </rect>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="title">
+ <string>feedback</string>
+ </property>
+ <widget class="QSpinBox">
+ <property name="name">
+ <cstring>feedbackSpinBox</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>70</x>
+ <y>20</y>
+ <width>30</width>
+ <height>21</height>
+ </rect>
+ </property>
+ <property name="paletteForegroundColor">
+ <color>
+ <red>0</red>
+ <green>180</green>
+ <blue>0</blue>
+ </color>
+ </property>
+ <property name="paletteBackgroundColor">
+ <color>
+ <red>220</red>
+ <green>240</green>
+ <blue>30</blue>
+ </color>
+ </property>
+ <property name="font">
+ <font>
+ <family>Zero Threes</family>
+ <italic>1</italic>
+ </font>
+ </property>
+ <property name="maxValue">
+ <number>7</number>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Coarse Ratio</string>
+ </property>
+ </widget>
+ <widget class="QSlider">
+ <property name="name">
+ <cstring>feedbackSlider</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>10</x>
+ <y>20</y>
+ <width>50</width>
+ <height>20</height>
+ </rect>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="cursor">
+ <cursor>13</cursor>
+ </property>
+ <property name="maxValue">
+ <number>7</number>
+ </property>
+ <property name="lineStep">
+ <number>1</number>
+ </property>
+ <property name="pageStep">
+ <number>1</number>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="tickmarks">
+ <enum>NoMarks</enum>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Feedback of Op 4</string>
+ </property>
+ </widget>
+ </widget>
+ <widget class="QGroupBox">
+ <property name="name">
+ <cstring>functionGroupBox</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>10</x>
+ <y>50</y>
+ <width>200</width>
+ <height>200</height>
+ </rect>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="title">
+ <string>Function</string>
+ </property>
+ <widget class="QComboBox">
+ <item>
+ <property name="text">
+ <string>POLY</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>MONO</string>
+ </property>
+ </item>
+ <property name="name">
+ <cstring>polyMonoComboBox</cstring>
+ </property>
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>10</x>
+ <y>20</y>
+ <width>180</width>
+ <height>20</height>
+ </rect>
+ </property>
+ <property name="palette">
+ <palette>
+ <active>
+ <color>
+ <red>0</red>
+ <green>0</green>
+ <blue>0</blue>
+ </color>
+ <color>
+ <red>195</red>
+ <green>195</green>
+ <blue>195</blue>
+ </color>
+ <color>
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ <color>
+ <red>225</red>
+ <green>225</green>
+ <blue>225</blue>
+ </color>
+ <color>
+ <red>97</red>
+ <green>97</green>
+ <blue>97</blue>
+ </color>
+ <color>
+ <red>130</red>
+ <green>130</green>
+ <blue>130</blue>
+ </color>
+ <color>
+ <red>0</red>
+ <green>0</green>
+ <blue>0</blue>
+ </color>
+ <color>
+ <red>249</red>
+ <green>249</green>
+ <blue>249</blue>
+ </color>
+ <color>
+ <red>0</red>
+ <green>0</green>
+ <blue>0</blue>
+ </color>
+ <color>
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ <color>
+ <red>177</red>
+ <green>177</green>
+ <blue>177</blue>
+ </color>
+ <color>
+ <red>0</red>
+ <green>0</green>
+ <blue>0</blue>
+ </color>
+ <color>
+ <red>57</red>
+ <green>15</green>
+ <blue>195</blue>
+ </color>
+ <color>
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ <color>
+ <red>195</red>
+ <green>18</green>
+ <blue>71</blue>
+ </color>
+ <color>
+ <red>128</red>
+ <green>0</green>
+ <blue>128</blue>
+ </color>
+ </active>
+ <disabled>
+ <color>
+ <red>128</red>
+ <green>128</green>
+ <blue>128</blue>
+ </color>
+ <color>
+ <red>195</red>
+ <green>195</green>
+ <blue>195</blue>
+ </color>
+ <color>
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ <color>
+ <red>224</red>
+ <green>224</green>
+ <blue>224</blue>
+ </color>
+ <color>
+ <red>97</red>
+ <green>97</green>
+ <blue>97</blue>
+ </color>
+ <color>
+ <red>130</red>
+ <green>130</green>
+ <blue>130</blue>
+ </color>
+ <color>
+ <red>0</red>
+ <green>0</green>
+ <blue>0</blue>
+ </color>
+ <color>
+ <red>249</red>
+ <green>249</green>
+ <blue>249</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>177</red>
+ <green>177</green>
+ <blue>177</blue>
+ </color>
+ <color>
+ <red>0</red>
+ <green>0</green>
+ <blue>0</blue>
+ </color>
+ <color>
+ <red>57</red>
+ <green>15</green>
+ <blue>195</blue>
+ </color>
+ <color>
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ <color>
+ <red>195</red>
+ <green>18</green>
+ <blue>71</blue>
+ </color>
+ <color>
+ <red>128</red>
+ <green>0</green>
+ <blue>128</blue>
+ </color>
+ </disabled>
+ <inactive>
+ <color>
+ <red>0</red>
+ <green>0</green>
+ <blue>0</blue>
+ </color>
+ <color>
+ <red>195</red>
+ <green>195</green>
+ <blue>195</blue>
+ </color>
+ <color>
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ <color>
+ <red>224</red>
+ <green>224</green>
+ <blue>224</blue>
+ </color>
+ <color>
+ <red>97</red>
+ <green>97</green>
+ <blue>97</blue>
+ </color>
+ <color>
+ <red>130</red>
+ <green>130</green>
+ <blue>130</blue>
+ </color>
+ <color>
+ <red>0</red>
+ <green>0</green>
+ <blue>0</blue>
+ </color>
+ <color>
+ <red>249</red>
+ <green>249</green>
+ <blue>249</blue>
+ </color>
+ <color>
+ <red>0</red>
+ <green>0</green>
+ <blue>0</blue>
+ </color>
+ <color>
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ <color>
+ <red>177</red>
+ <green>177</green>
+ <blue>177</blue>
+ </color>
+ <color>
+ <red>0</red>
+ <green>0</green>
+ <blue>0</blue>
+ </color>
+ <color>
+ <red>57</red>
+ <green>15</green>
+ <blue>195</blue>
+ </color>
+ <color>
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ <color>
+ <red>195</red>
+ <green>18</green>
+ <blue>71</blue>
+ </color>
+ <color>
+ <red>128</red>
+ <green>0</green>
+ <blue>128</blue>
+ </color>
+ </inactive>
+ </palette>
+ </property>
+ <property name="cursor">
+ <cursor>13</cursor>
+ </property>
+ </widget>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>PitchBendRangeLabel</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>10</x>
+ <y>50</y>
+ <width>40</width>
+ <height>22</height>
+ </rect>
+ </property>
+ <property name="backgroundMode">
+ <enum>PaletteBackground</enum>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="frameShape">
+ <enum>Box</enum>
+ </property>
+ <property name="frameShadow">
+ <enum>Sunken</enum>
+ </property>
+ <property name="text">
+ <string>PBR</string>
+ </property>
+ </widget>
+ <widget class="QSlider">
+ <property name="name">
+ <cstring>PitchBendRangeSlider</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>60</x>
+ <y>50</y>
+ <width>90</width>
+ <height>20</height>
+ </rect>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="cursor">
+ <cursor>13</cursor>
+ </property>
+ <property name="minValue">
+ <number>0</number>
+ </property>
+ <property name="maxValue">
+ <number>12</number>
+ </property>
+ <property name="pageStep">
+ <number>1</number>
+ </property>
+ <property name="value">
+ <number>0</number>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="tickmarks">
+ <enum>NoMarks</enum>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Pitch Bend Range</string>
+ </property>
+ </widget>
+ <widget class="QSpinBox">
+ <property name="name">
+ <cstring>pitchBendRangeSpinBox</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>160</x>
+ <y>50</y>
+ <width>30</width>
+ <height>21</height>
+ </rect>
+ </property>
+ <property name="paletteForegroundColor">
+ <color>
+ <red>0</red>
+ <green>180</green>
+ <blue>0</blue>
+ </color>
+ </property>
+ <property name="paletteBackgroundColor">
+ <color>
+ <red>220</red>
+ <green>240</green>
+ <blue>30</blue>
+ </color>
+ </property>
+ <property name="font">
+ <font>
+ <family>Zero Threes</family>
+ <italic>1</italic>
+ </font>
+ </property>
+ <property name="maxValue">
+ <number>12</number>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Coarse Ratio</string>
+ </property>
+ </widget>
+ </widget>
+ <widget class="QGroupBox">
+ <property name="name">
+ <cstring>LFOGroupBox</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>220</x>
+ <y>50</y>
+ <width>240</width>
+ <height>200</height>
+ </rect>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="title">
+ <string>LFO</string>
+ </property>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>PModSensLabel</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>100</x>
+ <y>20</y>
+ <width>40</width>
+ <height>22</height>
+ </rect>
+ </property>
+ <property name="backgroundMode">
+ <enum>PaletteBackground</enum>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="frameShape">
+ <enum>Box</enum>
+ </property>
+ <property name="frameShadow">
+ <enum>Sunken</enum>
+ </property>
+ <property name="text">
+ <string>PMS</string>
+ </property>
+ </widget>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>PModDepthLabel</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>10</x>
+ <y>80</y>
+ <width>40</width>
+ <height>24</height>
+ </rect>
+ </property>
+ <property name="backgroundMode">
+ <enum>PaletteBackground</enum>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="frameShape">
+ <enum>Box</enum>
+ </property>
+ <property name="frameShadow">
+ <enum>Sunken</enum>
+ </property>
+ <property name="text">
+ <string>PMD</string>
+ </property>
+ </widget>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>AModDepthLabel</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>10</x>
+ <y>110</y>
+ <width>40</width>
+ <height>22</height>
+ </rect>
+ </property>
+ <property name="backgroundMode">
+ <enum>PaletteBackground</enum>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="frameShape">
+ <enum>Box</enum>
+ </property>
+ <property name="frameShadow">
+ <enum>Sunken</enum>
+ </property>
+ <property name="text">
+ <string>AMD</string>
+ </property>
+ </widget>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>LFOSpeedLabel</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>10</x>
+ <y>140</y>
+ <width>50</width>
+ <height>24</height>
+ </rect>
+ </property>
+ <property name="backgroundMode">
+ <enum>PaletteBackground</enum>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="frameShape">
+ <enum>Box</enum>
+ </property>
+ <property name="frameShadow">
+ <enum>Sunken</enum>
+ </property>
+ <property name="text">
+ <string>Speed</string>
+ </property>
+ </widget>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>LFODelayLabel</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>10</x>
+ <y>170</y>
+ <width>50</width>
+ <height>24</height>
+ </rect>
+ </property>
+ <property name="backgroundMode">
+ <enum>PaletteBackground</enum>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="frameShape">
+ <enum>Box</enum>
+ </property>
+ <property name="frameShadow">
+ <enum>Sunken</enum>
+ </property>
+ <property name="text">
+ <string>Delay</string>
+ </property>
+ </widget>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>AModSensLabel</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>100</x>
+ <y>50</y>
+ <width>40</width>
+ <height>22</height>
+ </rect>
+ </property>
+ <property name="backgroundMode">
+ <enum>PaletteBackground</enum>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="frameShape">
+ <enum>Box</enum>
+ </property>
+ <property name="frameShadow">
+ <enum>Sunken</enum>
+ </property>
+ <property name="text">
+ <string>AMS</string>
+ </property>
+ </widget>
+ <widget class="QComboBox">
+ <item>
+ <property name="text">
+ <string>Saw Up</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Square</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Triangl</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>S/Hold</string>
+ </property>
+ </item>
+ <property name="name">
+ <cstring>LFOWaveComboBox</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>10</x>
+ <y>50</y>
+ <width>80</width>
+ <height>20</height>
+ </rect>
+ </property>
+ <property name="cursor">
+ <cursor>13</cursor>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>LFO Waveform</string>
+ </property>
+ </widget>
+ <widget class="QCheckBox">
+ <property name="name">
+ <cstring>LFOSyncCheckBox</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>10</x>
+ <y>20</y>
+ <width>80</width>
+ <height>25</height>
+ </rect>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="cursor">
+ <cursor>13</cursor>
+ </property>
+ <property name="text">
+ <string>LFO Sync</string>
+ </property>
+ </widget>
+ <widget class="QSlider">
+ <property name="name">
+ <cstring>AModSensSlider</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>150</x>
+ <y>50</y>
+ <width>40</width>
+ <height>20</height>
+ </rect>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="cursor">
+ <cursor>13</cursor>
+ </property>
+ <property name="maxValue">
+ <number>3</number>
+ </property>
+ <property name="lineStep">
+ <number>1</number>
+ </property>
+ <property name="pageStep">
+ <number>1</number>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="tickmarks">
+ <enum>NoMarks</enum>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Amplitude Modulation Sensitivity</string>
+ </property>
+ </widget>
+ <widget class="QSlider">
+ <property name="name">
+ <cstring>PModSensSlider</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>150</x>
+ <y>20</y>
+ <width>40</width>
+ <height>20</height>
+ </rect>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="cursor">
+ <cursor>13</cursor>
+ </property>
+ <property name="maxValue">
+ <number>7</number>
+ </property>
+ <property name="lineStep">
+ <number>1</number>
+ </property>
+ <property name="pageStep">
+ <number>1</number>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="tickmarks">
+ <enum>NoMarks</enum>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Pitch Modulation Sensitivity</string>
+ </property>
+ </widget>
+ <widget class="QSpinBox">
+ <property name="name">
+ <cstring>PMSSpinBox</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>200</x>
+ <y>20</y>
+ <width>30</width>
+ <height>21</height>
+ </rect>
+ </property>
+ <property name="paletteForegroundColor">
+ <color>
+ <red>0</red>
+ <green>180</green>
+ <blue>0</blue>
+ </color>
+ </property>
+ <property name="paletteBackgroundColor">
+ <color>
+ <red>220</red>
+ <green>240</green>
+ <blue>30</blue>
+ </color>
+ </property>
+ <property name="font">
+ <font>
+ <family>Zero Threes</family>
+ <italic>1</italic>
+ </font>
+ </property>
+ <property name="maxValue">
+ <number>7</number>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Coarse Ratio</string>
+ </property>
+ </widget>
+ <widget class="QSpinBox">
+ <property name="name">
+ <cstring>AMSSpinBox</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>200</x>
+ <y>50</y>
+ <width>30</width>
+ <height>21</height>
+ </rect>
+ </property>
+ <property name="paletteForegroundColor">
+ <color>
+ <red>0</red>
+ <green>180</green>
+ <blue>0</blue>
+ </color>
+ </property>
+ <property name="paletteBackgroundColor">
+ <color>
+ <red>220</red>
+ <green>240</green>
+ <blue>30</blue>
+ </color>
+ </property>
+ <property name="font">
+ <font>
+ <family>Zero Threes</family>
+ <italic>1</italic>
+ </font>
+ </property>
+ <property name="maxValue">
+ <number>7</number>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Coarse Ratio</string>
+ </property>
+ </widget>
+ <widget class="QSlider">
+ <property name="name">
+ <cstring>PModDepthSlider</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>70</x>
+ <y>80</y>
+ <width>110</width>
+ <height>20</height>
+ </rect>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="cursor">
+ <cursor>13</cursor>
+ </property>
+ <property name="maxValue">
+ <number>99</number>
+ </property>
+ <property name="lineStep">
+ <number>1</number>
+ </property>
+ <property name="pageStep">
+ <number>1</number>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="tickmarks">
+ <enum>NoMarks</enum>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Pitch Modulation Depth</string>
+ </property>
+ </widget>
+ <widget class="QSlider">
+ <property name="name">
+ <cstring>AModDepthSlider</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>70</x>
+ <y>110</y>
+ <width>110</width>
+ <height>20</height>
+ </rect>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="cursor">
+ <cursor>13</cursor>
+ </property>
+ <property name="maxValue">
+ <number>99</number>
+ </property>
+ <property name="lineStep">
+ <number>1</number>
+ </property>
+ <property name="pageStep">
+ <number>1</number>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="tickmarks">
+ <enum>NoMarks</enum>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Pitch Modulation Depth</string>
+ </property>
+ </widget>
+ <widget class="QSlider">
+ <property name="name">
+ <cstring>LFOSpeedSlider</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>70</x>
+ <y>140</y>
+ <width>110</width>
+ <height>20</height>
+ </rect>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="cursor">
+ <cursor>13</cursor>
+ </property>
+ <property name="maxValue">
+ <number>99</number>
+ </property>
+ <property name="lineStep">
+ <number>1</number>
+ </property>
+ <property name="pageStep">
+ <number>1</number>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="tickmarks">
+ <enum>NoMarks</enum>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>LFO Speed</string>
+ </property>
+ </widget>
+ <widget class="QSpinBox">
+ <property name="name">
+ <cstring>LFOSpeedSpinBox</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>190</x>
+ <y>140</y>
+ <width>40</width>
+ <height>21</height>
+ </rect>
+ </property>
+ <property name="paletteForegroundColor">
+ <color>
+ <red>0</red>
+ <green>180</green>
+ <blue>0</blue>
+ </color>
+ </property>
+ <property name="paletteBackgroundColor">
+ <color>
+ <red>220</red>
+ <green>240</green>
+ <blue>30</blue>
+ </color>
+ </property>
+ <property name="font">
+ <font>
+ <family>Zero Threes</family>
+ <italic>1</italic>
+ </font>
+ </property>
+ <property name="maxValue">
+ <number>99</number>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Coarse Ratio</string>
+ </property>
+ </widget>
+ <widget class="QSlider">
+ <property name="name">
+ <cstring>LFODelaySlider</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>70</x>
+ <y>170</y>
+ <width>110</width>
+ <height>20</height>
+ </rect>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="cursor">
+ <cursor>13</cursor>
+ </property>
+ <property name="maxValue">
+ <number>99</number>
+ </property>
+ <property name="lineStep">
+ <number>1</number>
+ </property>
+ <property name="pageStep">
+ <number>1</number>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="tickmarks">
+ <enum>NoMarks</enum>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>LFO Delay</string>
+ </property>
+ </widget>
+ <widget class="QSpinBox">
+ <property name="name">
+ <cstring>LFODelaySpinBox</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>190</x>
+ <y>170</y>
+ <width>40</width>
+ <height>21</height>
+ </rect>
+ </property>
+ <property name="paletteForegroundColor">
+ <color>
+ <red>0</red>
+ <green>180</green>
+ <blue>0</blue>
+ </color>
+ </property>
+ <property name="paletteBackgroundColor">
+ <color>
+ <red>220</red>
+ <green>240</green>
+ <blue>30</blue>
+ </color>
+ </property>
+ <property name="font">
+ <font>
+ <family>Zero Threes</family>
+ <italic>1</italic>
+ </font>
+ </property>
+ <property name="maxValue">
+ <number>99</number>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Coarse Ratio</string>
+ </property>
+ </widget>
+ <widget class="QSpinBox">
+ <property name="name">
+ <cstring>PModDepthSpinBox</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>190</x>
+ <y>80</y>
+ <width>40</width>
+ <height>21</height>
+ </rect>
+ </property>
+ <property name="paletteForegroundColor">
+ <color>
+ <red>0</red>
+ <green>180</green>
+ <blue>0</blue>
+ </color>
+ </property>
+ <property name="paletteBackgroundColor">
+ <color>
+ <red>220</red>
+ <green>240</green>
+ <blue>30</blue>
+ </color>
+ </property>
+ <property name="font">
+ <font>
+ <family>Zero Threes</family>
+ <italic>1</italic>
+ </font>
+ </property>
+ <property name="maxValue">
+ <number>99</number>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Coarse Ratio</string>
+ </property>
+ </widget>
+ <widget class="QSpinBox">
+ <property name="name">
+ <cstring>AModDepthSpinBox</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>190</x>
+ <y>110</y>
+ <width>40</width>
+ <height>21</height>
+ </rect>
+ </property>
+ <property name="paletteForegroundColor">
+ <color>
+ <red>0</red>
+ <green>180</green>
+ <blue>0</blue>
+ </color>
+ </property>
+ <property name="paletteBackgroundColor">
+ <color>
+ <red>220</red>
+ <green>240</green>
+ <blue>30</blue>
+ </color>
+ </property>
+ <property name="font">
+ <font>
+ <family>Zero Threes</family>
+ <italic>1</italic>
+ </font>
+ </property>
+ <property name="maxValue">
+ <number>99</number>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Coarse Ratio</string>
+ </property>
+ </widget>
+ </widget>
+ <widget class="QGroupBox">
+ <property name="name">
+ <cstring>transposeGroupBox</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>10</x>
+ <y>250</y>
+ <width>310</width>
+ <height>70</height>
+ </rect>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="title">
+ <string>Transpose and Global Detune</string>
+ </property>
+ <widget class="QSlider">
+ <property name="name">
+ <cstring>transposeSlider</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>10</x>
+ <y>20</y>
+ <width>110</width>
+ <height>19</height>
+ </rect>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="cursor">
+ <cursor>13</cursor>
+ </property>
+ <property name="minValue">
+ <number>-24</number>
+ </property>
+ <property name="maxValue">
+ <number>24</number>
+ </property>
+ <property name="pageStep">
+ <number>1</number>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="tickmarks">
+ <enum>NoMarks</enum>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Transpose</string>
+ </property>
+ </widget>
+ <widget class="QSpinBox">
+ <property name="name">
+ <cstring>transposeSpinBox</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>130</x>
+ <y>20</y>
+ <width>40</width>
+ <height>21</height>
+ </rect>
+ </property>
+ <property name="paletteForegroundColor">
+ <color>
+ <red>0</red>
+ <green>180</green>
+ <blue>0</blue>
+ </color>
+ </property>
+ <property name="paletteBackgroundColor">
+ <color>
+ <red>220</red>
+ <green>240</green>
+ <blue>30</blue>
+ </color>
+ </property>
+ <property name="font">
+ <font>
+ <family>Zero Threes</family>
+ <italic>1</italic>
+ </font>
+ </property>
+ <property name="maxValue">
+ <number>99</number>
+ </property>
+ <property name="minValue">
+ <number>-24</number>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Coarse Ratio</string>
+ </property>
+ </widget>
+ <widget class="QSlider">
+ <property name="name">
+ <cstring>globalDetuneSlider</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>180</x>
+ <y>20</y>
+ <width>70</width>
+ <height>20</height>
+ </rect>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="cursor">
+ <cursor>13</cursor>
+ </property>
+ <property name="minValue">
+ <number>-15</number>
+ </property>
+ <property name="maxValue">
+ <number>15</number>
+ </property>
+ <property name="pageStep">
+ <number>1</number>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="tickmarks">
+ <enum>NoMarks</enum>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Global Detune</string>
+ </property>
+ </widget>
+ <widget class="QSpinBox">
+ <property name="name">
+ <cstring>globalDetuneSpinBox</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>260</x>
+ <y>20</y>
+ <width>40</width>
+ <height>21</height>
+ </rect>
+ </property>
+ <property name="paletteForegroundColor">
+ <color>
+ <red>0</red>
+ <green>180</green>
+ <blue>0</blue>
+ </color>
+ </property>
+ <property name="paletteBackgroundColor">
+ <color>
+ <red>220</red>
+ <green>240</green>
+ <blue>30</blue>
+ </color>
+ </property>
+ <property name="font">
+ <font>
+ <family>Zero Threes</family>
+ <italic>1</italic>
+ </font>
+ </property>
+ <property name="maxValue">
+ <number>15</number>
+ </property>
+ <property name="minValue">
+ <number>-15</number>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Coarse Ratio</string>
+ </property>
+ </widget>
+ </widget>
+ <widget class="QComboBox">
+ <item>
+ <property name="text">
+ <string>Algorithm 1</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Algorithm 2</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Algorithm 3</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Algorithm 4</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Algorithm 5</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Algorithm 6</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Algorithm 7</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Algorithm 8</string>
+ </property>
+ </item>
+ <property name="name">
+ <cstring>algorithmComboBox</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>340</x>
+ <y>280</y>
+ <width>110</width>
+ <height>30</height>
+ </rect>
+ </property>
+ <property name="cursor">
+ <cursor>13</cursor>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Modulation Matrix</string>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>&lt;b&gt;Algorithm 1&lt;/b&gt; : &lt;i&gt;Op 1&lt;/i&gt; modulated by &lt;i&gt;Op 2&lt;/i&gt; modulated by &lt;i&gt;Op 3&lt;/i&gt; modulated by &lt;i&gt;Op 4&lt;/i&gt;&lt;br&gt;
+&lt;b&gt;Algorithm 2&lt;/b&gt; : &lt;i&gt;Op 1&lt;/i&gt; modulated by &lt;i&gt;Op 2&lt;/i&gt; modulated by both &lt;i&gt;Op 3&lt;/i&gt; and &lt;i&gt;Op 4&lt;/i&gt;&lt;br&gt;
+&lt;b&gt;Algorithm 3&lt;/b&gt; : &lt;i&gt;Op 1&lt;/i&gt; modulated by both &lt;i&gt;Op 4&lt;/i&gt; and &lt;i&gt;Op 2&lt;/i&gt; modulated by &lt;i&gt;Op 3&lt;/i&gt;&lt;br&gt;
+&lt;b&gt;Algorithm 4&lt;/b&gt; : &lt;i&gt;Op 1&lt;/i&gt; modulated by both &lt;i&gt;Op 2&lt;/i&gt; and &lt;i&gt;Op 3&lt;/i&gt; modulated by &lt;i&gt;Op 4&lt;/i&gt;&lt;br&gt;
+&lt;b&gt;Algorithm 5&lt;/b&gt; : (&lt;i&gt;Op 1&lt;/i&gt; modulated by &lt;i&gt;Op 2&lt;/i&gt;) add to (&lt;i&gt;Op 3&lt;/i&gt; modulated by &lt;i&gt;Op 4&lt;/i&gt;) &lt;br&gt;
+&lt;b&gt;Algorithm 6&lt;/b&gt; : addition of the three &lt;i&gt;Op 1, 2, 3&lt;/i&gt; all modulated by &lt;i&gt;Op 4&lt;/i&gt;&lt;br&gt;
+&lt;b&gt;Algorithm 7&lt;/b&gt; : addition of the three &lt;i&gt;Op 1, 2, 3&lt;/i&gt; with &lt;i&gt;Op 3&lt;/i&gt; modulated by &lt;i&gt;Op 4&lt;/i&gt;&lt;br&gt;
+&lt;b&gt;Algorithm 8&lt;/b&gt; : addition of the four &lt;i&gt;Op 1, 2, 3, 4&lt;/i&gt;</string>
+ </property>
+ </widget>
+ </widget>
+ <widget class="QWidget">
+ <property name="name">
+ <cstring>tab</cstring>
+ </property>
+ <attribute name="title">
+ <string>Op &amp;1</string>
+ </attribute>
+ <widget class="QGroupBox">
+ <property name="name">
+ <cstring>Frequency1groupBox</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>10</x>
+ <y>190</y>
+ <width>450</width>
+ <height>50</height>
+ </rect>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="title">
+ <string>Frequency 1</string>
+ </property>
+ <widget class="QCheckBox">
+ <property name="name">
+ <cstring>Fix1CheckBox</cstring>
+ </property>
+ <property name="enabled">
+ <bool>true</bool>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>400</x>
+ <y>20</y>
+ <width>40</width>
+ <height>25</height>
+ </rect>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="font">
+ <font>
+ </font>
+ </property>
+ <property name="cursor">
+ <cursor>13</cursor>
+ </property>
+ <property name="autoMask">
+ <bool>false</bool>
+ </property>
+ <property name="text">
+ <string>FIX</string>
+ </property>
+ </widget>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>CoarseRatio1Label</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>10</x>
+ <y>20</y>
+ <width>70</width>
+ <height>22</height>
+ </rect>
+ </property>
+ <property name="backgroundMode">
+ <enum>PaletteBackground</enum>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="frameShape">
+ <enum>Box</enum>
+ </property>
+ <property name="frameShadow">
+ <enum>Sunken</enum>
+ </property>
+ <property name="text">
+ <string>Coarse 1</string>
+ </property>
+ </widget>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>FineRatio1Label</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>140</x>
+ <y>20</y>
+ <width>50</width>
+ <height>22</height>
+ </rect>
+ </property>
+ <property name="backgroundMode">
+ <enum>PaletteBackground</enum>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="frameShape">
+ <enum>Box</enum>
+ </property>
+ <property name="frameShadow">
+ <enum>Sunken</enum>
+ </property>
+ <property name="text">
+ <string>Fine 1</string>
+ </property>
+ </widget>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>Freq1Label</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>250</x>
+ <y>20</y>
+ <width>50</width>
+ <height>22</height>
+ </rect>
+ </property>
+ <property name="backgroundMode">
+ <enum>PaletteBackground</enum>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="frameShape">
+ <enum>Box</enum>
+ </property>
+ <property name="frameShadow">
+ <enum>Sunken</enum>
+ </property>
+ <property name="text">
+ <string>Freq 1</string>
+ </property>
+ </widget>
+ <widget class="QSpinBox">
+ <property name="name">
+ <cstring>CoarseRatio1SpinBox</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>90</x>
+ <y>20</y>
+ <width>40</width>
+ <height>21</height>
+ </rect>
+ </property>
+ <property name="paletteForegroundColor">
+ <color>
+ <red>0</red>
+ <green>180</green>
+ <blue>0</blue>
+ </color>
+ </property>
+ <property name="paletteBackgroundColor">
+ <color>
+ <red>220</red>
+ <green>240</green>
+ <blue>30</blue>
+ </color>
+ </property>
+ <property name="font">
+ <font>
+ <family>Zero Threes</family>
+ <italic>1</italic>
+ </font>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Coarse Ratio</string>
+ </property>
+ </widget>
+ <widget class="QSpinBox">
+ <property name="name">
+ <cstring>FineRatio1SpinBox</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>200</x>
+ <y>20</y>
+ <width>40</width>
+ <height>21</height>
+ </rect>
+ </property>
+ <property name="paletteForegroundColor">
+ <color>
+ <red>0</red>
+ <green>180</green>
+ <blue>0</blue>
+ </color>
+ </property>
+ <property name="paletteBackgroundColor">
+ <color>
+ <red>220</red>
+ <green>240</green>
+ <blue>30</blue>
+ </color>
+ </property>
+ <property name="font">
+ <font>
+ <family>Zero Threes</family>
+ <italic>1</italic>
+ </font>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Fine Ratio</string>
+ </property>
+ </widget>
+ <widget class="QSpinBox">
+ <property name="name">
+ <cstring>Freq1SpinBox</cstring>
+ </property>
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>310</x>
+ <y>20</y>
+ <width>80</width>
+ <height>21</height>
+ </rect>
+ </property>
+ <property name="paletteForegroundColor">
+ <color>
+ <red>0</red>
+ <green>180</green>
+ <blue>0</blue>
+ </color>
+ </property>
+ <property name="paletteBackgroundColor">
+ <color>
+ <red>220</red>
+ <green>240</green>
+ <blue>30</blue>
+ </color>
+ </property>
+ <property name="font">
+ <font>
+ <family>Zero Threes</family>
+ <italic>1</italic>
+ </font>
+ </property>
+ <property name="maxValue">
+ <number>32000</number>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Fixed Frequency</string>
+ </property>
+ </widget>
+ </widget>
+ <widget class="QGroupBox">
+ <property name="name">
+ <cstring>Env1GroupBox</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>10</x>
+ <y>0</y>
+ <width>260</width>
+ <height>190</height>
+ </rect>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>ParentOrigin</enum>
+ </property>
+ <property name="title">
+ <string>Envelope 1</string>
+ </property>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>RR1Label</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>210</x>
+ <y>160</y>
+ <width>43</width>
+ <height>22</height>
+ </rect>
+ </property>
+ <property name="backgroundMode">
+ <enum>PaletteBackground</enum>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="frameShape">
+ <enum>Box</enum>
+ </property>
+ <property name="frameShadow">
+ <enum>Sunken</enum>
+ </property>
+ <property name="text">
+ <string>RR1</string>
+ </property>
+ </widget>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>D1R1Label</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>60</x>
+ <y>160</y>
+ <width>43</width>
+ <height>22</height>
+ </rect>
+ </property>
+ <property name="backgroundMode">
+ <enum>PaletteBackground</enum>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="frameShape">
+ <enum>Box</enum>
+ </property>
+ <property name="frameShadow">
+ <enum>Sunken</enum>
+ </property>
+ <property name="text">
+ <string>D1R1</string>
+ </property>
+ </widget>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>D1L1Label</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>110</x>
+ <y>160</y>
+ <width>43</width>
+ <height>22</height>
+ </rect>
+ </property>
+ <property name="backgroundMode">
+ <enum>PaletteBackground</enum>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="frameShape">
+ <enum>Box</enum>
+ </property>
+ <property name="frameShadow">
+ <enum>Sunken</enum>
+ </property>
+ <property name="text">
+ <string>D1L1</string>
+ </property>
+ </widget>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>D2R1Label</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>160</x>
+ <y>160</y>
+ <width>43</width>
+ <height>22</height>
+ </rect>
+ </property>
+ <property name="backgroundMode">
+ <enum>PaletteBackground</enum>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="frameShape">
+ <enum>Box</enum>
+ </property>
+ <property name="frameShadow">
+ <enum>Sunken</enum>
+ </property>
+ <property name="text">
+ <string>D2R1</string>
+ </property>
+ </widget>
+ <widget class="QSlider">
+ <property name="name">
+ <cstring>D1L1Slider</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>120</x>
+ <y>50</y>
+ <width>20</width>
+ <height>100</height>
+ </rect>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="cursor">
+ <cursor>13</cursor>
+ </property>
+ <property name="maxValue">
+ <number>15</number>
+ </property>
+ <property name="lineStep">
+ <number>1</number>
+ </property>
+ <property name="pageStep">
+ <number>1</number>
+ </property>
+ <property name="value">
+ <number>0</number>
+ </property>
+ <property name="orientation">
+ <enum>Vertical</enum>
+ </property>
+ <property name="tickmarks">
+ <enum>NoMarks</enum>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>1° Decay Level</string>
+ </property>
+ </widget>
+ <widget class="QSlider">
+ <property name="name">
+ <cstring>D2R1Slider</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>170</x>
+ <y>50</y>
+ <width>20</width>
+ <height>100</height>
+ </rect>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="cursor">
+ <cursor>13</cursor>
+ </property>
+ <property name="maxValue">
+ <number>31</number>
+ </property>
+ <property name="lineStep">
+ <number>1</number>
+ </property>
+ <property name="pageStep">
+ <number>1</number>
+ </property>
+ <property name="value">
+ <number>0</number>
+ </property>
+ <property name="orientation">
+ <enum>Vertical</enum>
+ </property>
+ <property name="tickmarks">
+ <enum>NoMarks</enum>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>2° Decay Rate</string>
+ </property>
+ </widget>
+ <widget class="QSlider">
+ <property name="name">
+ <cstring>D1R1Slider</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>70</x>
+ <y>50</y>
+ <width>20</width>
+ <height>100</height>
+ </rect>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="cursor">
+ <cursor>13</cursor>
+ </property>
+ <property name="mouseTracking">
+ <bool>false</bool>
+ </property>
+ <property name="focusPolicy">
+ <enum>TabFocus</enum>
+ </property>
+ <property name="acceptDrops">
+ <bool>false</bool>
+ </property>
+ <property name="maxValue">
+ <number>31</number>
+ </property>
+ <property name="lineStep">
+ <number>1</number>
+ </property>
+ <property name="pageStep">
+ <number>1</number>
+ </property>
+ <property name="value">
+ <number>0</number>
+ </property>
+ <property name="orientation">
+ <enum>Vertical</enum>
+ </property>
+ <property name="tickmarks">
+ <enum>NoMarks</enum>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>1° Decay Rate</string>
+ </property>
+ </widget>
+ <widget class="QSlider">
+ <property name="name">
+ <cstring>RR1Slider</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>220</x>
+ <y>50</y>
+ <width>20</width>
+ <height>100</height>
+ </rect>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="cursor">
+ <cursor>13</cursor>
+ </property>
+ <property name="minValue">
+ <number>0</number>
+ </property>
+ <property name="maxValue">
+ <number>15</number>
+ </property>
+ <property name="lineStep">
+ <number>1</number>
+ </property>
+ <property name="pageStep">
+ <number>1</number>
+ </property>
+ <property name="value">
+ <number>0</number>
+ </property>
+ <property name="orientation">
+ <enum>Vertical</enum>
+ </property>
+ <property name="tickmarks">
+ <enum>NoMarks</enum>
+ </property>
+ <property name="tickInterval">
+ <number>0</number>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Release Rate</string>
+ </property>
+ </widget>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>AR1Label</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>10</x>
+ <y>160</y>
+ <width>40</width>
+ <height>22</height>
+ </rect>
+ </property>
+ <property name="backgroundMode">
+ <enum>PaletteBackground</enum>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="frameShape">
+ <enum>Box</enum>
+ </property>
+ <property name="frameShadow">
+ <enum>Sunken</enum>
+ </property>
+ <property name="text">
+ <string>AR1</string>
+ </property>
+ </widget>
+ <widget class="QSpinBox">
+ <property name="name">
+ <cstring>D1R1SpinBox</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>60</x>
+ <y>20</y>
+ <width>40</width>
+ <height>21</height>
+ </rect>
+ </property>
+ <property name="paletteForegroundColor">
+ <color>
+ <red>0</red>
+ <green>180</green>
+ <blue>0</blue>
+ </color>
+ </property>
+ <property name="paletteBackgroundColor">
+ <color>
+ <red>220</red>
+ <green>240</green>
+ <blue>30</blue>
+ </color>
+ </property>
+ <property name="font">
+ <font>
+ <family>Zero Threes</family>
+ <italic>1</italic>
+ </font>
+ </property>
+ <property name="maxValue">
+ <number>31</number>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Coarse Ratio</string>
+ </property>
+ </widget>
+ <widget class="QSpinBox">
+ <property name="name">
+ <cstring>D1L1SpinBox</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>110</x>
+ <y>20</y>
+ <width>40</width>
+ <height>21</height>
+ </rect>
+ </property>
+ <property name="paletteForegroundColor">
+ <color>
+ <red>0</red>
+ <green>180</green>
+ <blue>0</blue>
+ </color>
+ </property>
+ <property name="paletteBackgroundColor">
+ <color>
+ <red>220</red>
+ <green>240</green>
+ <blue>30</blue>
+ </color>
+ </property>
+ <property name="font">
+ <font>
+ <family>Zero Threes</family>
+ <italic>1</italic>
+ </font>
+ </property>
+ <property name="maxValue">
+ <number>15</number>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Coarse Ratio</string>
+ </property>
+ </widget>
+ <widget class="QSpinBox">
+ <property name="name">
+ <cstring>D2R1SpinBox</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>160</x>
+ <y>20</y>
+ <width>40</width>
+ <height>21</height>
+ </rect>
+ </property>
+ <property name="paletteForegroundColor">
+ <color>
+ <red>0</red>
+ <green>180</green>
+ <blue>0</blue>
+ </color>
+ </property>
+ <property name="paletteBackgroundColor">
+ <color>
+ <red>220</red>
+ <green>240</green>
+ <blue>30</blue>
+ </color>
+ </property>
+ <property name="font">
+ <font>
+ <family>Zero Threes</family>
+ <italic>1</italic>
+ </font>
+ </property>
+ <property name="maxValue">
+ <number>31</number>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Coarse Ratio</string>
+ </property>
+ </widget>
+ <widget class="QSpinBox">
+ <property name="name">
+ <cstring>RR1SpinBox</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>210</x>
+ <y>20</y>
+ <width>40</width>
+ <height>21</height>
+ </rect>
+ </property>
+ <property name="paletteForegroundColor">
+ <color>
+ <red>0</red>
+ <green>180</green>
+ <blue>0</blue>
+ </color>
+ </property>
+ <property name="paletteBackgroundColor">
+ <color>
+ <red>220</red>
+ <green>240</green>
+ <blue>30</blue>
+ </color>
+ </property>
+ <property name="font">
+ <font>
+ <family>Zero Threes</family>
+ <italic>1</italic>
+ </font>
+ </property>
+ <property name="maxValue">
+ <number>15</number>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Coarse Ratio</string>
+ </property>
+ </widget>
+ <widget class="QSlider">
+ <property name="name">
+ <cstring>AR1Slider</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>20</x>
+ <y>50</y>
+ <width>20</width>
+ <height>100</height>
+ </rect>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="cursor">
+ <cursor>13</cursor>
+ </property>
+ <property name="maxValue">
+ <number>31</number>
+ </property>
+ <property name="lineStep">
+ <number>1</number>
+ </property>
+ <property name="pageStep">
+ <number>1</number>
+ </property>
+ <property name="value">
+ <number>0</number>
+ </property>
+ <property name="orientation">
+ <enum>Vertical</enum>
+ </property>
+ <property name="tickmarks">
+ <enum>NoMarks</enum>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Attack Rate</string>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string></string>
+ </property>
+ </widget>
+ <widget class="QSpinBox">
+ <property name="name">
+ <cstring>AR1SpinBox</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>10</x>
+ <y>20</y>
+ <width>40</width>
+ <height>21</height>
+ </rect>
+ </property>
+ <property name="paletteForegroundColor">
+ <color>
+ <red>0</red>
+ <green>180</green>
+ <blue>0</blue>
+ </color>
+ </property>
+ <property name="paletteBackgroundColor">
+ <color>
+ <red>220</red>
+ <green>240</green>
+ <blue>30</blue>
+ </color>
+ </property>
+ <property name="font">
+ <font>
+ <family>Zero Threes</family>
+ <italic>1</italic>
+ </font>
+ </property>
+ <property name="maxValue">
+ <number>31</number>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Attack Rate</string>
+ </property>
+ </widget>
+ </widget>
+ <widget class="QGroupBox">
+ <property name="name">
+ <cstring>Scaling1GroupBox</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>280</x>
+ <y>0</y>
+ <width>110</width>
+ <height>190</height>
+ </rect>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>ParentOrigin</enum>
+ </property>
+ <property name="title">
+ <string>Scaling 1</string>
+ </property>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>LS1Label</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>10</x>
+ <y>160</y>
+ <width>40</width>
+ <height>22</height>
+ </rect>
+ </property>
+ <property name="backgroundMode">
+ <enum>PaletteBackground</enum>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="frameShape">
+ <enum>Box</enum>
+ </property>
+ <property name="frameShadow">
+ <enum>Sunken</enum>
+ </property>
+ <property name="text">
+ <string>LS1</string>
+ </property>
+ </widget>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>RS1Label</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>60</x>
+ <y>160</y>
+ <width>40</width>
+ <height>22</height>
+ </rect>
+ </property>
+ <property name="backgroundMode">
+ <enum>PaletteBackground</enum>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="frameShape">
+ <enum>Box</enum>
+ </property>
+ <property name="frameShadow">
+ <enum>Sunken</enum>
+ </property>
+ <property name="text">
+ <string>RS1</string>
+ </property>
+ </widget>
+ <widget class="QSlider">
+ <property name="name">
+ <cstring>LS1Slider</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>20</x>
+ <y>50</y>
+ <width>19</width>
+ <height>100</height>
+ </rect>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="cursor">
+ <cursor>13</cursor>
+ </property>
+ <property name="maxValue">
+ <number>99</number>
+ </property>
+ <property name="lineStep">
+ <number>1</number>
+ </property>
+ <property name="pageStep">
+ <number>1</number>
+ </property>
+ <property name="value">
+ <number>0</number>
+ </property>
+ <property name="orientation">
+ <enum>Vertical</enum>
+ </property>
+ <property name="tickmarks">
+ <enum>NoMarks</enum>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Level Scaling</string>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>Attack Rate of the operator 1</string>
+ </property>
+ </widget>
+ <widget class="QSlider">
+ <property name="name">
+ <cstring>RS1Slider</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>70</x>
+ <y>50</y>
+ <width>19</width>
+ <height>100</height>
+ </rect>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="cursor">
+ <cursor>13</cursor>
+ </property>
+ <property name="maxValue">
+ <number>3</number>
+ </property>
+ <property name="lineStep">
+ <number>1</number>
+ </property>
+ <property name="pageStep">
+ <number>1</number>
+ </property>
+ <property name="value">
+ <number>0</number>
+ </property>
+ <property name="orientation">
+ <enum>Vertical</enum>
+ </property>
+ <property name="tickmarks">
+ <enum>NoMarks</enum>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Rate Scaling</string>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>Attack Rate of the operator 1</string>
+ </property>
+ </widget>
+ <widget class="QSpinBox">
+ <property name="name">
+ <cstring>LS1SpinBox</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>10</x>
+ <y>20</y>
+ <width>40</width>
+ <height>21</height>
+ </rect>
+ </property>
+ <property name="paletteForegroundColor">
+ <color>
+ <red>0</red>
+ <green>180</green>
+ <blue>0</blue>
+ </color>
+ </property>
+ <property name="paletteBackgroundColor">
+ <color>
+ <red>220</red>
+ <green>240</green>
+ <blue>30</blue>
+ </color>
+ </property>
+ <property name="font">
+ <font>
+ <family>Zero Threes</family>
+ <italic>1</italic>
+ </font>
+ </property>
+ <property name="maxValue">
+ <number>99</number>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Coarse Ratio</string>
+ </property>
+ </widget>
+ <widget class="QSpinBox">
+ <property name="name">
+ <cstring>RS1SpinBox</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>60</x>
+ <y>20</y>
+ <width>40</width>
+ <height>21</height>
+ </rect>
+ </property>
+ <property name="paletteForegroundColor">
+ <color>
+ <red>0</red>
+ <green>180</green>
+ <blue>0</blue>
+ </color>
+ </property>
+ <property name="paletteBackgroundColor">
+ <color>
+ <red>220</red>
+ <green>240</green>
+ <blue>30</blue>
+ </color>
+ </property>
+ <property name="font">
+ <font>
+ <family>Zero Threes</family>
+ <italic>1</italic>
+ </font>
+ </property>
+ <property name="maxValue">
+ <number>3</number>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Coarse Ratio</string>
+ </property>
+ </widget>
+ </widget>
+ <widget class="QGroupBox">
+ <property name="name">
+ <cstring>Vol1groupBox</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>400</x>
+ <y>0</y>
+ <width>60</width>
+ <height>190</height>
+ </rect>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="title">
+ <string>Vol 1</string>
+ </property>
+ <widget class="QSlider">
+ <property name="name">
+ <cstring>Vol1Slider</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>20</x>
+ <y>50</y>
+ <width>19</width>
+ <height>130</height>
+ </rect>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="cursor">
+ <cursor>13</cursor>
+ </property>
+ <property name="maxValue">
+ <number>99</number>
+ </property>
+ <property name="lineStep">
+ <number>1</number>
+ </property>
+ <property name="pageStep">
+ <number>1</number>
+ </property>
+ <property name="value">
+ <number>0</number>
+ </property>
+ <property name="orientation">
+ <enum>Vertical</enum>
+ </property>
+ <property name="tickmarks">
+ <enum>NoMarks</enum>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Volume</string>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string></string>
+ </property>
+ </widget>
+ <widget class="QSpinBox">
+ <property name="name">
+ <cstring>Vol1SpinBox</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>10</x>
+ <y>20</y>
+ <width>40</width>
+ <height>21</height>
+ </rect>
+ </property>
+ <property name="paletteForegroundColor">
+ <color>
+ <red>0</red>
+ <green>180</green>
+ <blue>0</blue>
+ </color>
+ </property>
+ <property name="paletteBackgroundColor">
+ <color>
+ <red>220</red>
+ <green>240</green>
+ <blue>30</blue>
+ </color>
+ </property>
+ <property name="font">
+ <font>
+ <family>Zero Threes</family>
+ <italic>1</italic>
+ </font>
+ </property>
+ <property name="maxValue">
+ <number>99</number>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Coarse Ratio</string>
+ </property>
+ </widget>
+ </widget>
+ <widget class="QGroupBox">
+ <property name="name">
+ <cstring>sensitivity1groupBox</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>10</x>
+ <y>240</y>
+ <width>260</width>
+ <height>80</height>
+ </rect>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>ParentOrigin</enum>
+ </property>
+ <property name="title">
+ <string>Sensitivity 1</string>
+ </property>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>EGS1Label</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>80</x>
+ <y>20</y>
+ <width>40</width>
+ <height>22</height>
+ </rect>
+ </property>
+ <property name="backgroundMode">
+ <enum>PaletteBackground</enum>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="frameShape">
+ <enum>Box</enum>
+ </property>
+ <property name="frameShadow">
+ <enum>Sunken</enum>
+ </property>
+ <property name="text">
+ <string>EBS1</string>
+ </property>
+ </widget>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>KVS1Label</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>10</x>
+ <y>50</y>
+ <width>40</width>
+ <height>22</height>
+ </rect>
+ </property>
+ <property name="backgroundMode">
+ <enum>PaletteBackground</enum>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="frameShape">
+ <enum>Box</enum>
+ </property>
+ <property name="frameShadow">
+ <enum>Sunken</enum>
+ </property>
+ <property name="text">
+ <string>KVS1</string>
+ </property>
+ </widget>
+ <widget class="QCheckBox">
+ <property name="name">
+ <cstring>AME1CheckBox</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>10</x>
+ <y>20</y>
+ <width>60</width>
+ <height>25</height>
+ </rect>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="font">
+ <font>
+ </font>
+ </property>
+ <property name="cursor">
+ <cursor>13</cursor>
+ </property>
+ <property name="autoMask">
+ <bool>false</bool>
+ </property>
+ <property name="text">
+ <string>AME1</string>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Amplitude Modulation Enable</string>
+ </property>
+ </widget>
+ <widget class="QSlider">
+ <property name="name">
+ <cstring>KVS1Slider</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>60</x>
+ <y>50</y>
+ <width>84</width>
+ <height>19</height>
+ </rect>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="cursor">
+ <cursor>13</cursor>
+ </property>
+ <property name="acceptDrops">
+ <bool>false</bool>
+ </property>
+ <property name="maxValue">
+ <number>7</number>
+ </property>
+ <property name="lineStep">
+ <number>1</number>
+ </property>
+ <property name="pageStep">
+ <number>1</number>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="tickmarks">
+ <enum>NoMarks</enum>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Key Velocity Sensitivity</string>
+ </property>
+ </widget>
+ <widget class="QSlider">
+ <property name="name">
+ <cstring>EBS1Slider</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>130</x>
+ <y>20</y>
+ <width>70</width>
+ <height>20</height>
+ </rect>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="cursor">
+ <cursor>13</cursor>
+ </property>
+ <property name="maxValue">
+ <number>7</number>
+ </property>
+ <property name="lineStep">
+ <number>1</number>
+ </property>
+ <property name="pageStep">
+ <number>1</number>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="tickmarks">
+ <enum>NoMarks</enum>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>EG Bias Sensitivity</string>
+ </property>
+ </widget>
+ <widget class="QSpinBox">
+ <property name="name">
+ <cstring>KVS1SpinBox</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>160</x>
+ <y>50</y>
+ <width>40</width>
+ <height>21</height>
+ </rect>
+ </property>
+ <property name="paletteForegroundColor">
+ <color>
+ <red>0</red>
+ <green>180</green>
+ <blue>0</blue>
+ </color>
+ </property>
+ <property name="paletteBackgroundColor">
+ <color>
+ <red>220</red>
+ <green>240</green>
+ <blue>30</blue>
+ </color>
+ </property>
+ <property name="font">
+ <font>
+ <family>Zero Threes</family>
+ <italic>1</italic>
+ </font>
+ </property>
+ <property name="maxValue">
+ <number>7</number>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Coarse Ratio</string>
+ </property>
+ </widget>
+ <widget class="QSpinBox">
+ <property name="name">
+ <cstring>EBS1SpinBox</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>210</x>
+ <y>20</y>
+ <width>40</width>
+ <height>21</height>
+ </rect>
+ </property>
+ <property name="paletteForegroundColor">
+ <color>
+ <red>0</red>
+ <green>180</green>
+ <blue>0</blue>
+ </color>
+ </property>
+ <property name="paletteBackgroundColor">
+ <color>
+ <red>220</red>
+ <green>240</green>
+ <blue>30</blue>
+ </color>
+ </property>
+ <property name="font">
+ <font>
+ <family>Zero Threes</family>
+ <italic>1</italic>
+ </font>
+ </property>
+ <property name="maxValue">
+ <number>7</number>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Coarse Ratio</string>
+ </property>
+ </widget>
+ </widget>
+ <widget class="QGroupBox">
+ <property name="name">
+ <cstring>DetWaveEGS1GroupBox</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>280</x>
+ <y>240</y>
+ <width>180</width>
+ <height>80</height>
+ </rect>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="title">
+ <string>Detune Wave EGShift 1</string>
+ </property>
+ <widget class="QComboBox">
+ <item>
+ <property name="text">
+ <string>Wave1</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Wave2</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Wave3</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Wave4</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Wave5</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Wave6</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Wave7</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Wave8</string>
+ </property>
+ </item>
+ <property name="name">
+ <cstring>WaveForm1ComboBox</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>10</x>
+ <y>50</y>
+ <width>80</width>
+ <height>20</height>
+ </rect>
+ </property>
+ <property name="cursor">
+ <cursor>13</cursor>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Wave Form</string>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>Wave form 1 = &lt;i&gt;sin(&lt;b&gt;t&lt;/b&gt;)&lt;/i&gt;&lt;br&gt;
+Wave form 2 = &lt;i&gt;sin(&lt;b&gt;t&lt;/b&gt;)*abs(sin(&lt;b&gt;t&lt;/b&gt;))&lt;/i&gt;&lt;br&gt;
+Wave form 3 = &lt;i&gt;if &lt;b&gt;t&lt;/b&gt;&amp;#060 pi then sin(&lt;b&gt;t&lt;/b&gt;) else 0&lt;/i&gt;&lt;br&gt;
+Wave form 4 = &lt;i&gt;if &lt;b&gt;t&lt;/b&gt;&amp;#060 pi then sin(&lt;b&gt;t&lt;/b&gt;)*abs(sin(&lt;b&gt;t&lt;/b&gt;)) else 0&lt;/i&gt;&lt;br&gt;
+Wave form 5 = &lt;i&gt;if &lt;b&gt;t&lt;/b&gt;&amp;#060 pi then sin(2*&lt;b&gt;t&lt;/b&gt;) else 0&lt;/i&gt;&lt;br&gt;
+Wave form 6 = &lt;i&gt;if &lt;b&gt;t&lt;/b&gt;&amp;#060 pi then sin(2*&lt;b&gt;t&lt;/b&gt;)*abs(sin(2*&lt;b&gt;t&lt;/b&gt;)) else 0&lt;/i&gt;&lt;br&gt;
+Wave form 7 = &lt;i&gt;if &lt;b&gt;t&lt;/b&gt;&amp;#060 pi then abs(sin(2*&lt;b&gt;t&lt;/b&gt;)) else 0&lt;/i&gt;&lt;br&gt;
+Wave form 8 = &lt;i&gt;if &lt;b&gt;t&lt;/b&gt;&amp;#060 pi then sin(2*&lt;b&gt;t&lt;/b&gt;)*sin(2*&lt;b&gt;t&lt;/b&gt;) else 0&lt;/i&gt;</string>
+ </property>
+ </widget>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>DET1Label</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>10</x>
+ <y>20</y>
+ <width>44</width>
+ <height>24</height>
+ </rect>
+ </property>
+ <property name="backgroundMode">
+ <enum>PaletteBackground</enum>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="frameShape">
+ <enum>Box</enum>
+ </property>
+ <property name="frameShadow">
+ <enum>Sunken</enum>
+ </property>
+ <property name="text">
+ <string>DET1</string>
+ </property>
+ </widget>
+ <widget class="QComboBox">
+ <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>
+ <property name="name">
+ <cstring>EGQ1ComboBox</cstring>
+ </property>
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>100</x>
+ <y>50</y>
+ <width>70</width>
+ <height>20</height>
+ </rect>
+ </property>
+ <property name="cursor">
+ <cursor>13</cursor>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>EG Shift</string>
+ </property>
+ </widget>
+ <widget class="QSlider">
+ <property name="name">
+ <cstring>DET1Slider</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>60</x>
+ <y>20</y>
+ <width>70</width>
+ <height>19</height>
+ </rect>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="cursor">
+ <cursor>13</cursor>
+ </property>
+ <property name="minValue">
+ <number>-3</number>
+ </property>
+ <property name="maxValue">
+ <number>3</number>
+ </property>
+ <property name="lineStep">
+ <number>1</number>
+ </property>
+ <property name="pageStep">
+ <number>1</number>
+ </property>
+ <property name="value">
+ <number>0</number>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="tickmarks">
+ <enum>NoMarks</enum>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Detune</string>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>Attack Rate of the operator 1</string>
+ </property>
+ </widget>
+ <widget class="QSpinBox">
+ <property name="name">
+ <cstring>DET1SpinBox</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>140</x>
+ <y>20</y>
+ <width>30</width>
+ <height>21</height>
+ </rect>
+ </property>
+ <property name="paletteForegroundColor">
+ <color>
+ <red>0</red>
+ <green>180</green>
+ <blue>0</blue>
+ </color>
+ </property>
+ <property name="paletteBackgroundColor">
+ <color>
+ <red>220</red>
+ <green>240</green>
+ <blue>30</blue>
+ </color>
+ </property>
+ <property name="font">
+ <font>
+ <family>Zero Threes</family>
+ <italic>1</italic>
+ </font>
+ </property>
+ <property name="maxValue">
+ <number>3</number>
+ </property>
+ <property name="minValue">
+ <number>-3</number>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Coarse Ratio</string>
+ </property>
+ </widget>
+ </widget>
+ </widget>
+ <widget class="QWidget">
+ <property name="name">
+ <cstring>tab</cstring>
+ </property>
+ <attribute name="title">
+ <string>Op &amp;2</string>
+ </attribute>
+ <widget class="QGroupBox">
+ <property name="name">
+ <cstring>Frequency2groupBox</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>10</x>
+ <y>190</y>
+ <width>450</width>
+ <height>50</height>
+ </rect>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="title">
+ <string>Frequency 2</string>
+ </property>
+ <widget class="QCheckBox">
+ <property name="name">
+ <cstring>Fix2CheckBox</cstring>
+ </property>
+ <property name="enabled">
+ <bool>true</bool>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>400</x>
+ <y>20</y>
+ <width>40</width>
+ <height>25</height>
+ </rect>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="font">
+ <font>
+ </font>
+ </property>
+ <property name="cursor">
+ <cursor>13</cursor>
+ </property>
+ <property name="autoMask">
+ <bool>false</bool>
+ </property>
+ <property name="text">
+ <string>FIX</string>
+ </property>
+ </widget>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>Freq2Label</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>250</x>
+ <y>20</y>
+ <width>50</width>
+ <height>22</height>
+ </rect>
+ </property>
+ <property name="backgroundMode">
+ <enum>PaletteBackground</enum>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="frameShape">
+ <enum>Box</enum>
+ </property>
+ <property name="frameShadow">
+ <enum>Sunken</enum>
+ </property>
+ <property name="text">
+ <string>Freq 2</string>
+ </property>
+ </widget>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>FineRatio2Label</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>140</x>
+ <y>20</y>
+ <width>50</width>
+ <height>22</height>
+ </rect>
+ </property>
+ <property name="backgroundMode">
+ <enum>PaletteBackground</enum>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="frameShape">
+ <enum>Box</enum>
+ </property>
+ <property name="frameShadow">
+ <enum>Sunken</enum>
+ </property>
+ <property name="text">
+ <string>Fine 2</string>
+ </property>
+ </widget>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>CoarseRatio2Label</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>10</x>
+ <y>20</y>
+ <width>70</width>
+ <height>22</height>
+ </rect>
+ </property>
+ <property name="backgroundMode">
+ <enum>PaletteBackground</enum>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="frameShape">
+ <enum>Box</enum>
+ </property>
+ <property name="frameShadow">
+ <enum>Sunken</enum>
+ </property>
+ <property name="text">
+ <string>Coarse 2</string>
+ </property>
+ </widget>
+ <widget class="QSpinBox">
+ <property name="name">
+ <cstring>CoarseRatio2SpinBox</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>90</x>
+ <y>20</y>
+ <width>40</width>
+ <height>21</height>
+ </rect>
+ </property>
+ <property name="paletteForegroundColor">
+ <color>
+ <red>0</red>
+ <green>180</green>
+ <blue>0</blue>
+ </color>
+ </property>
+ <property name="paletteBackgroundColor">
+ <color>
+ <red>220</red>
+ <green>240</green>
+ <blue>30</blue>
+ </color>
+ </property>
+ <property name="font">
+ <font>
+ <family>Zero Threes</family>
+ <italic>1</italic>
+ </font>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Coarse Ratio</string>
+ </property>
+ </widget>
+ <widget class="QSpinBox">
+ <property name="name">
+ <cstring>FineRatio2SpinBox</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>200</x>
+ <y>20</y>
+ <width>40</width>
+ <height>21</height>
+ </rect>
+ </property>
+ <property name="paletteForegroundColor">
+ <color>
+ <red>0</red>
+ <green>180</green>
+ <blue>0</blue>
+ </color>
+ </property>
+ <property name="paletteBackgroundColor">
+ <color>
+ <red>220</red>
+ <green>240</green>
+ <blue>30</blue>
+ </color>
+ </property>
+ <property name="font">
+ <font>
+ <family>Zero Threes</family>
+ <italic>1</italic>
+ </font>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Fine Ratio</string>
+ </property>
+ </widget>
+ <widget class="QSpinBox">
+ <property name="name">
+ <cstring>Freq2SpinBox</cstring>
+ </property>
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>310</x>
+ <y>20</y>
+ <width>80</width>
+ <height>21</height>
+ </rect>
+ </property>
+ <property name="paletteForegroundColor">
+ <color>
+ <red>0</red>
+ <green>180</green>
+ <blue>0</blue>
+ </color>
+ </property>
+ <property name="paletteBackgroundColor">
+ <color>
+ <red>220</red>
+ <green>240</green>
+ <blue>30</blue>
+ </color>
+ </property>
+ <property name="font">
+ <font>
+ <family>Zero Threes</family>
+ <italic>1</italic>
+ </font>
+ </property>
+ <property name="maxValue">
+ <number>32000</number>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Fixed Frequency</string>
+ </property>
+ </widget>
+ </widget>
+ <widget class="QGroupBox">
+ <property name="name">
+ <cstring>Env2GroupBox</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>10</x>
+ <y>0</y>
+ <width>260</width>
+ <height>190</height>
+ </rect>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>ParentOrigin</enum>
+ </property>
+ <property name="title">
+ <string>Envelope 2</string>
+ </property>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>AR2Label</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>10</x>
+ <y>160</y>
+ <width>40</width>
+ <height>22</height>
+ </rect>
+ </property>
+ <property name="backgroundMode">
+ <enum>PaletteBackground</enum>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="frameShape">
+ <enum>Box</enum>
+ </property>
+ <property name="frameShadow">
+ <enum>Sunken</enum>
+ </property>
+ <property name="text">
+ <string>AR2</string>
+ </property>
+ </widget>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>RR2Label</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>210</x>
+ <y>160</y>
+ <width>43</width>
+ <height>22</height>
+ </rect>
+ </property>
+ <property name="backgroundMode">
+ <enum>PaletteBackground</enum>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="frameShape">
+ <enum>Box</enum>
+ </property>
+ <property name="frameShadow">
+ <enum>Sunken</enum>
+ </property>
+ <property name="text">
+ <string>RR2</string>
+ </property>
+ </widget>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>D2R2Label</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>160</x>
+ <y>160</y>
+ <width>43</width>
+ <height>22</height>
+ </rect>
+ </property>
+ <property name="backgroundMode">
+ <enum>PaletteBackground</enum>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="frameShape">
+ <enum>Box</enum>
+ </property>
+ <property name="frameShadow">
+ <enum>Sunken</enum>
+ </property>
+ <property name="text">
+ <string>D2R2</string>
+ </property>
+ </widget>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>D1L2Label</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>110</x>
+ <y>160</y>
+ <width>43</width>
+ <height>22</height>
+ </rect>
+ </property>
+ <property name="backgroundMode">
+ <enum>PaletteBackground</enum>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="frameShape">
+ <enum>Box</enum>
+ </property>
+ <property name="frameShadow">
+ <enum>Sunken</enum>
+ </property>
+ <property name="text">
+ <string>D1L2</string>
+ </property>
+ </widget>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>D1R2Label</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>60</x>
+ <y>160</y>
+ <width>43</width>
+ <height>22</height>
+ </rect>
+ </property>
+ <property name="backgroundMode">
+ <enum>PaletteBackground</enum>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="frameShape">
+ <enum>Box</enum>
+ </property>
+ <property name="frameShadow">
+ <enum>Sunken</enum>
+ </property>
+ <property name="text">
+ <string>D1R2</string>
+ </property>
+ </widget>
+ <widget class="QSlider">
+ <property name="name">
+ <cstring>AR2Slider</cstring>
+ </property>
+ <property name="enabled">
+ <bool>true</bool>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>20</x>
+ <y>50</y>
+ <width>20</width>
+ <height>100</height>
+ </rect>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="cursor">
+ <cursor>13</cursor>
+ </property>
+ <property name="maxValue">
+ <number>31</number>
+ </property>
+ <property name="pageStep">
+ <number>1</number>
+ </property>
+ <property name="value">
+ <number>0</number>
+ </property>
+ <property name="tracking">
+ <bool>true</bool>
+ </property>
+ <property name="orientation">
+ <enum>Vertical</enum>
+ </property>
+ <property name="tickmarks">
+ <enum>NoMarks</enum>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Attack Rate</string>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string></string>
+ </property>
+ </widget>
+ <widget class="QSlider">
+ <property name="name">
+ <cstring>D1R2Slider</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>70</x>
+ <y>50</y>
+ <width>20</width>
+ <height>100</height>
+ </rect>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="cursor">
+ <cursor>13</cursor>
+ </property>
+ <property name="maxValue">
+ <number>31</number>
+ </property>
+ <property name="pageStep">
+ <number>1</number>
+ </property>
+ <property name="value">
+ <number>0</number>
+ </property>
+ <property name="orientation">
+ <enum>Vertical</enum>
+ </property>
+ <property name="tickmarks">
+ <enum>NoMarks</enum>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>1° Decay Rate</string>
+ </property>
+ </widget>
+ <widget class="QSlider">
+ <property name="name">
+ <cstring>D1L2Slider</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>120</x>
+ <y>50</y>
+ <width>20</width>
+ <height>100</height>
+ </rect>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="cursor">
+ <cursor>13</cursor>
+ </property>
+ <property name="maxValue">
+ <number>15</number>
+ </property>
+ <property name="pageStep">
+ <number>1</number>
+ </property>
+ <property name="value">
+ <number>0</number>
+ </property>
+ <property name="orientation">
+ <enum>Vertical</enum>
+ </property>
+ <property name="tickmarks">
+ <enum>NoMarks</enum>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>1° Decay Level</string>
+ </property>
+ </widget>
+ <widget class="QSlider">
+ <property name="name">
+ <cstring>D2R2Slider</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>170</x>
+ <y>50</y>
+ <width>20</width>
+ <height>100</height>
+ </rect>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="cursor">
+ <cursor>13</cursor>
+ </property>
+ <property name="maxValue">
+ <number>31</number>
+ </property>
+ <property name="pageStep">
+ <number>1</number>
+ </property>
+ <property name="value">
+ <number>0</number>
+ </property>
+ <property name="orientation">
+ <enum>Vertical</enum>
+ </property>
+ <property name="tickmarks">
+ <enum>NoMarks</enum>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>2° Decay Rate</string>
+ </property>
+ </widget>
+ <widget class="QSlider">
+ <property name="name">
+ <cstring>RR2Slider</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>220</x>
+ <y>50</y>
+ <width>20</width>
+ <height>100</height>
+ </rect>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="cursor">
+ <cursor>13</cursor>
+ </property>
+ <property name="minValue">
+ <number>0</number>
+ </property>
+ <property name="maxValue">
+ <number>15</number>
+ </property>
+ <property name="pageStep">
+ <number>1</number>
+ </property>
+ <property name="value">
+ <number>0</number>
+ </property>
+ <property name="orientation">
+ <enum>Vertical</enum>
+ </property>
+ <property name="tickmarks">
+ <enum>NoMarks</enum>
+ </property>
+ <property name="tickInterval">
+ <number>0</number>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Release Rate</string>
+ </property>
+ </widget>
+ <widget class="QSpinBox">
+ <property name="name">
+ <cstring>D1R2SpinBox</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>60</x>
+ <y>20</y>
+ <width>40</width>
+ <height>21</height>
+ </rect>
+ </property>
+ <property name="paletteForegroundColor">
+ <color>
+ <red>0</red>
+ <green>180</green>
+ <blue>0</blue>
+ </color>
+ </property>
+ <property name="paletteBackgroundColor">
+ <color>
+ <red>220</red>
+ <green>240</green>
+ <blue>30</blue>
+ </color>
+ </property>
+ <property name="font">
+ <font>
+ <family>Zero Threes</family>
+ <italic>1</italic>
+ </font>
+ </property>
+ <property name="maxValue">
+ <number>31</number>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Coarse Ratio</string>
+ </property>
+ </widget>
+ <widget class="QSpinBox">
+ <property name="name">
+ <cstring>D1L2SpinBox</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>110</x>
+ <y>20</y>
+ <width>40</width>
+ <height>21</height>
+ </rect>
+ </property>
+ <property name="paletteForegroundColor">
+ <color>
+ <red>0</red>
+ <green>180</green>
+ <blue>0</blue>
+ </color>
+ </property>
+ <property name="paletteBackgroundColor">
+ <color>
+ <red>220</red>
+ <green>240</green>
+ <blue>30</blue>
+ </color>
+ </property>
+ <property name="font">
+ <font>
+ <family>Zero Threes</family>
+ <italic>1</italic>
+ </font>
+ </property>
+ <property name="maxValue">
+ <number>15</number>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Coarse Ratio</string>
+ </property>
+ </widget>
+ <widget class="QSpinBox">
+ <property name="name">
+ <cstring>D2R2SpinBox</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>160</x>
+ <y>20</y>
+ <width>40</width>
+ <height>21</height>
+ </rect>
+ </property>
+ <property name="paletteForegroundColor">
+ <color>
+ <red>0</red>
+ <green>180</green>
+ <blue>0</blue>
+ </color>
+ </property>
+ <property name="paletteBackgroundColor">
+ <color>
+ <red>220</red>
+ <green>240</green>
+ <blue>30</blue>
+ </color>
+ </property>
+ <property name="font">
+ <font>
+ <family>Zero Threes</family>
+ <italic>1</italic>
+ </font>
+ </property>
+ <property name="maxValue">
+ <number>31</number>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Coarse Ratio</string>
+ </property>
+ </widget>
+ <widget class="QSpinBox">
+ <property name="name">
+ <cstring>RR2SpinBox</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>210</x>
+ <y>20</y>
+ <width>40</width>
+ <height>21</height>
+ </rect>
+ </property>
+ <property name="paletteForegroundColor">
+ <color>
+ <red>0</red>
+ <green>180</green>
+ <blue>0</blue>
+ </color>
+ </property>
+ <property name="paletteBackgroundColor">
+ <color>
+ <red>220</red>
+ <green>240</green>
+ <blue>30</blue>
+ </color>
+ </property>
+ <property name="font">
+ <font>
+ <family>Zero Threes</family>
+ <italic>1</italic>
+ </font>
+ </property>
+ <property name="maxValue">
+ <number>15</number>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Coarse Ratio</string>
+ </property>
+ </widget>
+ <widget class="QSpinBox">
+ <property name="name">
+ <cstring>AR2SpinBox</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>10</x>
+ <y>20</y>
+ <width>40</width>
+ <height>21</height>
+ </rect>
+ </property>
+ <property name="paletteForegroundColor">
+ <color>
+ <red>0</red>
+ <green>180</green>
+ <blue>0</blue>
+ </color>
+ </property>
+ <property name="paletteBackgroundColor">
+ <color>
+ <red>220</red>
+ <green>240</green>
+ <blue>30</blue>
+ </color>
+ </property>
+ <property name="font">
+ <font>
+ <family>Zero Threes</family>
+ <italic>1</italic>
+ </font>
+ </property>
+ <property name="maxValue">
+ <number>31</number>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Attack Rate</string>
+ </property>
+ </widget>
+ </widget>
+ <widget class="QGroupBox">
+ <property name="name">
+ <cstring>Scaling2GroupBox</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>280</x>
+ <y>0</y>
+ <width>110</width>
+ <height>190</height>
+ </rect>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>ParentOrigin</enum>
+ </property>
+ <property name="title">
+ <string>Scaling 2</string>
+ </property>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>LS2Label</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>10</x>
+ <y>160</y>
+ <width>40</width>
+ <height>22</height>
+ </rect>
+ </property>
+ <property name="backgroundMode">
+ <enum>PaletteBackground</enum>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="frameShape">
+ <enum>Box</enum>
+ </property>
+ <property name="frameShadow">
+ <enum>Sunken</enum>
+ </property>
+ <property name="text">
+ <string>LS2</string>
+ </property>
+ </widget>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>RS2Label</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>60</x>
+ <y>160</y>
+ <width>40</width>
+ <height>22</height>
+ </rect>
+ </property>
+ <property name="backgroundMode">
+ <enum>PaletteBackground</enum>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="frameShape">
+ <enum>Box</enum>
+ </property>
+ <property name="frameShadow">
+ <enum>Sunken</enum>
+ </property>
+ <property name="text">
+ <string>RS2</string>
+ </property>
+ </widget>
+ <widget class="QSlider">
+ <property name="name">
+ <cstring>LS2Slider</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>20</x>
+ <y>50</y>
+ <width>20</width>
+ <height>100</height>
+ </rect>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="cursor">
+ <cursor>13</cursor>
+ </property>
+ <property name="maxValue">
+ <number>99</number>
+ </property>
+ <property name="pageStep">
+ <number>1</number>
+ </property>
+ <property name="value">
+ <number>0</number>
+ </property>
+ <property name="orientation">
+ <enum>Vertical</enum>
+ </property>
+ <property name="tickmarks">
+ <enum>NoMarks</enum>
+ </property>
+ <property name="tickInterval">
+ <number>1</number>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Level Scaling</string>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>Attack Rate of the operator 1</string>
+ </property>
+ </widget>
+ <widget class="QSlider">
+ <property name="name">
+ <cstring>RS2Slider</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>70</x>
+ <y>50</y>
+ <width>20</width>
+ <height>100</height>
+ </rect>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="cursor">
+ <cursor>13</cursor>
+ </property>
+ <property name="maxValue">
+ <number>3</number>
+ </property>
+ <property name="pageStep">
+ <number>1</number>
+ </property>
+ <property name="value">
+ <number>0</number>
+ </property>
+ <property name="orientation">
+ <enum>Vertical</enum>
+ </property>
+ <property name="tickmarks">
+ <enum>NoMarks</enum>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Rate Scaling</string>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>Attack Rate of the operator 1</string>
+ </property>
+ </widget>
+ <widget class="QSpinBox">
+ <property name="name">
+ <cstring>LS2SpinBox</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>10</x>
+ <y>20</y>
+ <width>40</width>
+ <height>21</height>
+ </rect>
+ </property>
+ <property name="paletteForegroundColor">
+ <color>
+ <red>0</red>
+ <green>180</green>
+ <blue>0</blue>
+ </color>
+ </property>
+ <property name="paletteBackgroundColor">
+ <color>
+ <red>220</red>
+ <green>240</green>
+ <blue>30</blue>
+ </color>
+ </property>
+ <property name="font">
+ <font>
+ <family>Zero Threes</family>
+ <italic>1</italic>
+ </font>
+ </property>
+ <property name="maxValue">
+ <number>99</number>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Coarse Ratio</string>
+ </property>
+ </widget>
+ <widget class="QSpinBox">
+ <property name="name">
+ <cstring>RS2SpinBox</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>60</x>
+ <y>20</y>
+ <width>40</width>
+ <height>21</height>
+ </rect>
+ </property>
+ <property name="paletteForegroundColor">
+ <color>
+ <red>0</red>
+ <green>180</green>
+ <blue>0</blue>
+ </color>
+ </property>
+ <property name="paletteBackgroundColor">
+ <color>
+ <red>220</red>
+ <green>240</green>
+ <blue>30</blue>
+ </color>
+ </property>
+ <property name="font">
+ <font>
+ <family>Zero Threes</family>
+ <italic>1</italic>
+ </font>
+ </property>
+ <property name="maxValue">
+ <number>3</number>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Coarse Ratio</string>
+ </property>
+ </widget>
+ </widget>
+ <widget class="QGroupBox">
+ <property name="name">
+ <cstring>Vol2groupBox</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>400</x>
+ <y>0</y>
+ <width>60</width>
+ <height>190</height>
+ </rect>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="title">
+ <string>Vol 2</string>
+ </property>
+ <widget class="QSlider">
+ <property name="name">
+ <cstring>Vol2Slider</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>20</x>
+ <y>50</y>
+ <width>19</width>
+ <height>130</height>
+ </rect>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="cursor">
+ <cursor>13</cursor>
+ </property>
+ <property name="maxValue">
+ <number>99</number>
+ </property>
+ <property name="pageStep">
+ <number>1</number>
+ </property>
+ <property name="value">
+ <number>0</number>
+ </property>
+ <property name="orientation">
+ <enum>Vertical</enum>
+ </property>
+ <property name="tickmarks">
+ <enum>NoMarks</enum>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Volume</string>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string></string>
+ </property>
+ </widget>
+ <widget class="QSpinBox">
+ <property name="name">
+ <cstring>Vol2SpinBox</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>10</x>
+ <y>20</y>
+ <width>40</width>
+ <height>21</height>
+ </rect>
+ </property>
+ <property name="paletteForegroundColor">
+ <color>
+ <red>0</red>
+ <green>180</green>
+ <blue>0</blue>
+ </color>
+ </property>
+ <property name="paletteBackgroundColor">
+ <color>
+ <red>220</red>
+ <green>240</green>
+ <blue>30</blue>
+ </color>
+ </property>
+ <property name="font">
+ <font>
+ <family>Zero Threes</family>
+ <italic>1</italic>
+ </font>
+ </property>
+ <property name="maxValue">
+ <number>99</number>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Coarse Ratio</string>
+ </property>
+ </widget>
+ </widget>
+ <widget class="QGroupBox">
+ <property name="name">
+ <cstring>sensitivity2groupBox</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>10</x>
+ <y>240</y>
+ <width>260</width>
+ <height>80</height>
+ </rect>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>ParentOrigin</enum>
+ </property>
+ <property name="title">
+ <string>Sensitivity 2</string>
+ </property>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>EGS2Label</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>80</x>
+ <y>20</y>
+ <width>40</width>
+ <height>22</height>
+ </rect>
+ </property>
+ <property name="backgroundMode">
+ <enum>PaletteBackground</enum>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="frameShape">
+ <enum>Box</enum>
+ </property>
+ <property name="frameShadow">
+ <enum>Sunken</enum>
+ </property>
+ <property name="text">
+ <string>EBS2</string>
+ </property>
+ </widget>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>KVS2Label</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>10</x>
+ <y>50</y>
+ <width>40</width>
+ <height>22</height>
+ </rect>
+ </property>
+ <property name="backgroundMode">
+ <enum>PaletteBackground</enum>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="frameShape">
+ <enum>Box</enum>
+ </property>
+ <property name="frameShadow">
+ <enum>Sunken</enum>
+ </property>
+ <property name="text">
+ <string>KVS2</string>
+ </property>
+ </widget>
+ <widget class="QCheckBox">
+ <property name="name">
+ <cstring>AME2CheckBox</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>10</x>
+ <y>20</y>
+ <width>60</width>
+ <height>25</height>
+ </rect>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="font">
+ <font>
+ </font>
+ </property>
+ <property name="cursor">
+ <cursor>13</cursor>
+ </property>
+ <property name="autoMask">
+ <bool>false</bool>
+ </property>
+ <property name="text">
+ <string>AME2</string>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Amplitude Modulation Enable</string>
+ </property>
+ </widget>
+ <widget class="QSlider">
+ <property name="name">
+ <cstring>KVS2Slider</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>60</x>
+ <y>50</y>
+ <width>84</width>
+ <height>19</height>
+ </rect>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="cursor">
+ <cursor>13</cursor>
+ </property>
+ <property name="acceptDrops">
+ <bool>false</bool>
+ </property>
+ <property name="maxValue">
+ <number>7</number>
+ </property>
+ <property name="pageStep">
+ <number>1</number>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="tickmarks">
+ <enum>NoMarks</enum>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Key Velocity Sensitivity</string>
+ </property>
+ </widget>
+ <widget class="QSlider">
+ <property name="name">
+ <cstring>EBS2Slider</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>130</x>
+ <y>20</y>
+ <width>70</width>
+ <height>20</height>
+ </rect>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="cursor">
+ <cursor>13</cursor>
+ </property>
+ <property name="maxValue">
+ <number>7</number>
+ </property>
+ <property name="pageStep">
+ <number>1</number>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="tickmarks">
+ <enum>NoMarks</enum>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>EG Bias Sensitivity</string>
+ </property>
+ </widget>
+ <widget class="QSpinBox">
+ <property name="name">
+ <cstring>EBS2SpinBox</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>210</x>
+ <y>20</y>
+ <width>40</width>
+ <height>21</height>
+ </rect>
+ </property>
+ <property name="paletteForegroundColor">
+ <color>
+ <red>0</red>
+ <green>180</green>
+ <blue>0</blue>
+ </color>
+ </property>
+ <property name="paletteBackgroundColor">
+ <color>
+ <red>220</red>
+ <green>240</green>
+ <blue>30</blue>
+ </color>
+ </property>
+ <property name="font">
+ <font>
+ <family>Zero Threes</family>
+ <italic>1</italic>
+ </font>
+ </property>
+ <property name="maxValue">
+ <number>7</number>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Coarse Ratio</string>
+ </property>
+ </widget>
+ <widget class="QSpinBox">
+ <property name="name">
+ <cstring>KVS2SpinBox</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>160</x>
+ <y>50</y>
+ <width>40</width>
+ <height>21</height>
+ </rect>
+ </property>
+ <property name="paletteForegroundColor">
+ <color>
+ <red>0</red>
+ <green>180</green>
+ <blue>0</blue>
+ </color>
+ </property>
+ <property name="paletteBackgroundColor">
+ <color>
+ <red>220</red>
+ <green>240</green>
+ <blue>30</blue>
+ </color>
+ </property>
+ <property name="font">
+ <font>
+ <family>Zero Threes</family>
+ <italic>1</italic>
+ </font>
+ </property>
+ <property name="maxValue">
+ <number>7</number>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Coarse Ratio</string>
+ </property>
+ </widget>
+ </widget>
+ <widget class="QGroupBox">
+ <property name="name">
+ <cstring>DetWaveEGS2GroupBox</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>280</x>
+ <y>240</y>
+ <width>180</width>
+ <height>80</height>
+ </rect>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="title">
+ <string>Detune Wave EGShift 2</string>
+ </property>
+ <widget class="QSlider">
+ <property name="name">
+ <cstring>DET2Slider</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>60</x>
+ <y>20</y>
+ <width>70</width>
+ <height>19</height>
+ </rect>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="cursor">
+ <cursor>13</cursor>
+ </property>
+ <property name="minValue">
+ <number>-3</number>
+ </property>
+ <property name="maxValue">
+ <number>3</number>
+ </property>
+ <property name="pageStep">
+ <number>1</number>
+ </property>
+ <property name="value">
+ <number>0</number>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="tickmarks">
+ <enum>NoMarks</enum>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Detune</string>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>Attack Rate of the operator 1</string>
+ </property>
+ </widget>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>DET2Label</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>10</x>
+ <y>20</y>
+ <width>44</width>
+ <height>24</height>
+ </rect>
+ </property>
+ <property name="backgroundMode">
+ <enum>PaletteBackground</enum>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="frameShape">
+ <enum>Box</enum>
+ </property>
+ <property name="frameShadow">
+ <enum>Sunken</enum>
+ </property>
+ <property name="text">
+ <string>DET2</string>
+ </property>
+ </widget>
+ <widget class="QComboBox">
+ <item>
+ <property name="text">
+ <string>Wave1</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Wave2</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Wave3</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Wave4</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Wave5</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Wave6</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Wave7</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Wave8</string>
+ </property>
+ </item>
+ <property name="name">
+ <cstring>WaveForm2ComboBox</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>10</x>
+ <y>50</y>
+ <width>80</width>
+ <height>20</height>
+ </rect>
+ </property>
+ <property name="cursor">
+ <cursor>13</cursor>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Wave Form</string>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>Wave form 1 = &lt;i&gt;sin(&lt;b&gt;t&lt;/b&gt;)&lt;/i&gt;&lt;br&gt;
+Wave form 2 = &lt;i&gt;sin(&lt;b&gt;t&lt;/b&gt;)*abs(sin(&lt;b&gt;t&lt;/b&gt;))&lt;/i&gt;&lt;br&gt;
+Wave form 3 = &lt;i&gt;if &lt;b&gt;t&lt;/b&gt;&amp;#060 pi then sin(&lt;b&gt;t&lt;/b&gt;) else 0&lt;/i&gt;&lt;br&gt;
+Wave form 4 = &lt;i&gt;if &lt;b&gt;t&lt;/b&gt;&amp;#060 pi then sin(&lt;b&gt;t&lt;/b&gt;)*abs(sin(&lt;b&gt;t&lt;/b&gt;)) else 0&lt;/i&gt;&lt;br&gt;
+Wave form 5 = &lt;i&gt;if &lt;b&gt;t&lt;/b&gt;&amp;#060 pi then sin(2*&lt;b&gt;t&lt;/b&gt;) else 0&lt;/i&gt;&lt;br&gt;
+Wave form 6 = &lt;i&gt;if &lt;b&gt;t&lt;/b&gt;&amp;#060 pi then sin(2*&lt;b&gt;t&lt;/b&gt;)*abs(sin(2*&lt;b&gt;t&lt;/b&gt;)) else 0&lt;/i&gt;&lt;br&gt;
+Wave form 7 = &lt;i&gt;if &lt;b&gt;t&lt;/b&gt;&amp;#060 pi then abs(sin(2*&lt;b&gt;t&lt;/b&gt;)) else 0&lt;/i&gt;&lt;br&gt;
+Wave form 8 = &lt;i&gt;if &lt;b&gt;t&lt;/b&gt;&amp;#060 pi then sin(2*&lt;b&gt;t&lt;/b&gt;)*sin(2*&lt;b&gt;t&lt;/b&gt;) else 0&lt;/i&gt;</string>
+ </property>
+ </widget>
+ <widget class="QComboBox">
+ <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>
+ <property name="name">
+ <cstring>EGS2comboBox</cstring>
+ </property>
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>100</x>
+ <y>50</y>
+ <width>70</width>
+ <height>20</height>
+ </rect>
+ </property>
+ <property name="cursor">
+ <cursor>13</cursor>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>EG Shift</string>
+ </property>
+ </widget>
+ <widget class="QSpinBox">
+ <property name="name">
+ <cstring>DET2SpinBox</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>140</x>
+ <y>20</y>
+ <width>30</width>
+ <height>21</height>
+ </rect>
+ </property>
+ <property name="paletteForegroundColor">
+ <color>
+ <red>0</red>
+ <green>180</green>
+ <blue>0</blue>
+ </color>
+ </property>
+ <property name="paletteBackgroundColor">
+ <color>
+ <red>220</red>
+ <green>240</green>
+ <blue>30</blue>
+ </color>
+ </property>
+ <property name="font">
+ <font>
+ <family>Zero Threes</family>
+ <italic>1</italic>
+ </font>
+ </property>
+ <property name="maxValue">
+ <number>3</number>
+ </property>
+ <property name="minValue">
+ <number>-3</number>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Coarse Ratio</string>
+ </property>
+ </widget>
+ </widget>
+ </widget>
+ <widget class="QWidget">
+ <property name="name">
+ <cstring>TabPage</cstring>
+ </property>
+ <attribute name="title">
+ <string>Op &amp;3</string>
+ </attribute>
+ <widget class="QGroupBox">
+ <property name="name">
+ <cstring>Frequency3groupBox</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>10</x>
+ <y>190</y>
+ <width>450</width>
+ <height>50</height>
+ </rect>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="title">
+ <string>Frequency 3</string>
+ </property>
+ <widget class="QCheckBox">
+ <property name="name">
+ <cstring>Fix3CheckBox</cstring>
+ </property>
+ <property name="enabled">
+ <bool>true</bool>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>400</x>
+ <y>20</y>
+ <width>40</width>
+ <height>25</height>
+ </rect>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="font">
+ <font>
+ </font>
+ </property>
+ <property name="cursor">
+ <cursor>13</cursor>
+ </property>
+ <property name="autoMask">
+ <bool>false</bool>
+ </property>
+ <property name="text">
+ <string>FIX</string>
+ </property>
+ </widget>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>CoarseRatio3Label</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>10</x>
+ <y>20</y>
+ <width>70</width>
+ <height>22</height>
+ </rect>
+ </property>
+ <property name="backgroundMode">
+ <enum>PaletteBackground</enum>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="frameShape">
+ <enum>Box</enum>
+ </property>
+ <property name="frameShadow">
+ <enum>Sunken</enum>
+ </property>
+ <property name="text">
+ <string>Coarse 3</string>
+ </property>
+ </widget>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>FineRatio3Label</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>140</x>
+ <y>20</y>
+ <width>50</width>
+ <height>22</height>
+ </rect>
+ </property>
+ <property name="backgroundMode">
+ <enum>PaletteBackground</enum>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="frameShape">
+ <enum>Box</enum>
+ </property>
+ <property name="frameShadow">
+ <enum>Sunken</enum>
+ </property>
+ <property name="text">
+ <string>Fine 3</string>
+ </property>
+ </widget>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>Freq3Label</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>250</x>
+ <y>20</y>
+ <width>50</width>
+ <height>22</height>
+ </rect>
+ </property>
+ <property name="backgroundMode">
+ <enum>PaletteBackground</enum>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="frameShape">
+ <enum>Box</enum>
+ </property>
+ <property name="frameShadow">
+ <enum>Sunken</enum>
+ </property>
+ <property name="text">
+ <string>Freq 3</string>
+ </property>
+ </widget>
+ <widget class="QSpinBox">
+ <property name="name">
+ <cstring>CoarseRatio3SpinBox</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>90</x>
+ <y>20</y>
+ <width>40</width>
+ <height>21</height>
+ </rect>
+ </property>
+ <property name="paletteForegroundColor">
+ <color>
+ <red>0</red>
+ <green>180</green>
+ <blue>0</blue>
+ </color>
+ </property>
+ <property name="paletteBackgroundColor">
+ <color>
+ <red>220</red>
+ <green>240</green>
+ <blue>30</blue>
+ </color>
+ </property>
+ <property name="font">
+ <font>
+ <family>Zero Threes</family>
+ <italic>1</italic>
+ </font>
+ </property>
+ <property name="cursor">
+ <cursor>0</cursor>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Coarse Ratio</string>
+ </property>
+ </widget>
+ <widget class="QSpinBox">
+ <property name="name">
+ <cstring>FineRatio3SpinBox</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>200</x>
+ <y>20</y>
+ <width>40</width>
+ <height>21</height>
+ </rect>
+ </property>
+ <property name="paletteForegroundColor">
+ <color>
+ <red>0</red>
+ <green>180</green>
+ <blue>0</blue>
+ </color>
+ </property>
+ <property name="paletteBackgroundColor">
+ <color>
+ <red>220</red>
+ <green>240</green>
+ <blue>30</blue>
+ </color>
+ </property>
+ <property name="font">
+ <font>
+ <family>Zero Threes</family>
+ <italic>1</italic>
+ </font>
+ </property>
+ <property name="cursor">
+ <cursor>0</cursor>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Fine Ratio</string>
+ </property>
+ </widget>
+ <widget class="QSpinBox">
+ <property name="name">
+ <cstring>Freq3SpinBox</cstring>
+ </property>
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>310</x>
+ <y>20</y>
+ <width>80</width>
+ <height>21</height>
+ </rect>
+ </property>
+ <property name="paletteForegroundColor">
+ <color>
+ <red>0</red>
+ <green>180</green>
+ <blue>0</blue>
+ </color>
+ </property>
+ <property name="paletteBackgroundColor">
+ <color>
+ <red>220</red>
+ <green>240</green>
+ <blue>30</blue>
+ </color>
+ </property>
+ <property name="font">
+ <font>
+ <family>Zero Threes</family>
+ <italic>1</italic>
+ </font>
+ </property>
+ <property name="maxValue">
+ <number>32000</number>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Fixed Frequency</string>
+ </property>
+ </widget>
+ </widget>
+ <widget class="QGroupBox">
+ <property name="name">
+ <cstring>Env3GroupBox</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>10</x>
+ <y>0</y>
+ <width>260</width>
+ <height>190</height>
+ </rect>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>ParentOrigin</enum>
+ </property>
+ <property name="title">
+ <string>Envelope 3</string>
+ </property>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>RR3Label</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>210</x>
+ <y>160</y>
+ <width>43</width>
+ <height>22</height>
+ </rect>
+ </property>
+ <property name="backgroundMode">
+ <enum>PaletteBackground</enum>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="frameShape">
+ <enum>Box</enum>
+ </property>
+ <property name="frameShadow">
+ <enum>Sunken</enum>
+ </property>
+ <property name="text">
+ <string>RR3</string>
+ </property>
+ </widget>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>D2R3Label</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>160</x>
+ <y>160</y>
+ <width>43</width>
+ <height>22</height>
+ </rect>
+ </property>
+ <property name="backgroundMode">
+ <enum>PaletteBackground</enum>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="frameShape">
+ <enum>Box</enum>
+ </property>
+ <property name="frameShadow">
+ <enum>Sunken</enum>
+ </property>
+ <property name="text">
+ <string>D2R3</string>
+ </property>
+ </widget>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>D1L3Label</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>110</x>
+ <y>160</y>
+ <width>43</width>
+ <height>22</height>
+ </rect>
+ </property>
+ <property name="backgroundMode">
+ <enum>PaletteBackground</enum>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="frameShape">
+ <enum>Box</enum>
+ </property>
+ <property name="frameShadow">
+ <enum>Sunken</enum>
+ </property>
+ <property name="text">
+ <string>D1L3</string>
+ </property>
+ </widget>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>D1R3Label</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>60</x>
+ <y>160</y>
+ <width>43</width>
+ <height>22</height>
+ </rect>
+ </property>
+ <property name="backgroundMode">
+ <enum>PaletteBackground</enum>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="frameShape">
+ <enum>Box</enum>
+ </property>
+ <property name="frameShadow">
+ <enum>Sunken</enum>
+ </property>
+ <property name="text">
+ <string>D1R3</string>
+ </property>
+ </widget>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>AR3Label</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>10</x>
+ <y>160</y>
+ <width>40</width>
+ <height>22</height>
+ </rect>
+ </property>
+ <property name="backgroundMode">
+ <enum>PaletteBackground</enum>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="frameShape">
+ <enum>Box</enum>
+ </property>
+ <property name="frameShadow">
+ <enum>Sunken</enum>
+ </property>
+ <property name="text">
+ <string>AR3</string>
+ </property>
+ </widget>
+ <widget class="QSlider">
+ <property name="name">
+ <cstring>AR3Slider</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>20</x>
+ <y>50</y>
+ <width>20</width>
+ <height>100</height>
+ </rect>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="cursor">
+ <cursor>13</cursor>
+ </property>
+ <property name="maxValue">
+ <number>31</number>
+ </property>
+ <property name="pageStep">
+ <number>1</number>
+ </property>
+ <property name="value">
+ <number>0</number>
+ </property>
+ <property name="orientation">
+ <enum>Vertical</enum>
+ </property>
+ <property name="tickmarks">
+ <enum>NoMarks</enum>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Attack Rate</string>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string></string>
+ </property>
+ </widget>
+ <widget class="QSlider">
+ <property name="name">
+ <cstring>D1R3Slider</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>70</x>
+ <y>50</y>
+ <width>20</width>
+ <height>100</height>
+ </rect>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="cursor">
+ <cursor>13</cursor>
+ </property>
+ <property name="maxValue">
+ <number>31</number>
+ </property>
+ <property name="pageStep">
+ <number>1</number>
+ </property>
+ <property name="value">
+ <number>0</number>
+ </property>
+ <property name="orientation">
+ <enum>Vertical</enum>
+ </property>
+ <property name="tickmarks">
+ <enum>NoMarks</enum>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>1° Decay Rate</string>
+ </property>
+ </widget>
+ <widget class="QSlider">
+ <property name="name">
+ <cstring>D1L3Slider</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>120</x>
+ <y>50</y>
+ <width>20</width>
+ <height>100</height>
+ </rect>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="cursor">
+ <cursor>13</cursor>
+ </property>
+ <property name="maxValue">
+ <number>15</number>
+ </property>
+ <property name="pageStep">
+ <number>1</number>
+ </property>
+ <property name="value">
+ <number>0</number>
+ </property>
+ <property name="orientation">
+ <enum>Vertical</enum>
+ </property>
+ <property name="tickmarks">
+ <enum>NoMarks</enum>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>1° Decay Level</string>
+ </property>
+ </widget>
+ <widget class="QSlider">
+ <property name="name">
+ <cstring>D2R3Slider</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>170</x>
+ <y>50</y>
+ <width>20</width>
+ <height>100</height>
+ </rect>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="cursor">
+ <cursor>13</cursor>
+ </property>
+ <property name="maxValue">
+ <number>31</number>
+ </property>
+ <property name="pageStep">
+ <number>1</number>
+ </property>
+ <property name="value">
+ <number>0</number>
+ </property>
+ <property name="orientation">
+ <enum>Vertical</enum>
+ </property>
+ <property name="tickmarks">
+ <enum>NoMarks</enum>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>2° Decay Rate</string>
+ </property>
+ </widget>
+ <widget class="QSlider">
+ <property name="name">
+ <cstring>RR3Slider</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>220</x>
+ <y>50</y>
+ <width>20</width>
+ <height>100</height>
+ </rect>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="cursor">
+ <cursor>13</cursor>
+ </property>
+ <property name="minValue">
+ <number>0</number>
+ </property>
+ <property name="maxValue">
+ <number>15</number>
+ </property>
+ <property name="pageStep">
+ <number>1</number>
+ </property>
+ <property name="value">
+ <number>0</number>
+ </property>
+ <property name="orientation">
+ <enum>Vertical</enum>
+ </property>
+ <property name="tickmarks">
+ <enum>NoMarks</enum>
+ </property>
+ <property name="tickInterval">
+ <number>0</number>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Release Rate</string>
+ </property>
+ </widget>
+ <widget class="QSpinBox">
+ <property name="name">
+ <cstring>D1R3SpinBox</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>60</x>
+ <y>20</y>
+ <width>40</width>
+ <height>21</height>
+ </rect>
+ </property>
+ <property name="paletteForegroundColor">
+ <color>
+ <red>0</red>
+ <green>180</green>
+ <blue>0</blue>
+ </color>
+ </property>
+ <property name="paletteBackgroundColor">
+ <color>
+ <red>220</red>
+ <green>240</green>
+ <blue>30</blue>
+ </color>
+ </property>
+ <property name="font">
+ <font>
+ <family>Zero Threes</family>
+ <italic>1</italic>
+ </font>
+ </property>
+ <property name="maxValue">
+ <number>31</number>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Coarse Ratio</string>
+ </property>
+ </widget>
+ <widget class="QSpinBox">
+ <property name="name">
+ <cstring>D1L3SpinBox</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>110</x>
+ <y>20</y>
+ <width>40</width>
+ <height>21</height>
+ </rect>
+ </property>
+ <property name="paletteForegroundColor">
+ <color>
+ <red>0</red>
+ <green>180</green>
+ <blue>0</blue>
+ </color>
+ </property>
+ <property name="paletteBackgroundColor">
+ <color>
+ <red>220</red>
+ <green>240</green>
+ <blue>30</blue>
+ </color>
+ </property>
+ <property name="font">
+ <font>
+ <family>Zero Threes</family>
+ <italic>1</italic>
+ </font>
+ </property>
+ <property name="maxValue">
+ <number>15</number>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Coarse Ratio</string>
+ </property>
+ </widget>
+ <widget class="QSpinBox">
+ <property name="name">
+ <cstring>D2R3SpinBox</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>160</x>
+ <y>20</y>
+ <width>40</width>
+ <height>21</height>
+ </rect>
+ </property>
+ <property name="paletteForegroundColor">
+ <color>
+ <red>0</red>
+ <green>180</green>
+ <blue>0</blue>
+ </color>
+ </property>
+ <property name="paletteBackgroundColor">
+ <color>
+ <red>220</red>
+ <green>240</green>
+ <blue>30</blue>
+ </color>
+ </property>
+ <property name="font">
+ <font>
+ <family>Zero Threes</family>
+ <italic>1</italic>
+ </font>
+ </property>
+ <property name="maxValue">
+ <number>31</number>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Coarse Ratio</string>
+ </property>
+ </widget>
+ <widget class="QSpinBox">
+ <property name="name">
+ <cstring>RR3SpinBox</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>210</x>
+ <y>20</y>
+ <width>40</width>
+ <height>21</height>
+ </rect>
+ </property>
+ <property name="paletteForegroundColor">
+ <color>
+ <red>0</red>
+ <green>180</green>
+ <blue>0</blue>
+ </color>
+ </property>
+ <property name="paletteBackgroundColor">
+ <color>
+ <red>220</red>
+ <green>240</green>
+ <blue>30</blue>
+ </color>
+ </property>
+ <property name="font">
+ <font>
+ <family>Zero Threes</family>
+ <italic>1</italic>
+ </font>
+ </property>
+ <property name="maxValue">
+ <number>15</number>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Coarse Ratio</string>
+ </property>
+ </widget>
+ <widget class="QSpinBox">
+ <property name="name">
+ <cstring>AR3SpinBox</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>10</x>
+ <y>20</y>
+ <width>40</width>
+ <height>21</height>
+ </rect>
+ </property>
+ <property name="paletteForegroundColor">
+ <color>
+ <red>0</red>
+ <green>180</green>
+ <blue>0</blue>
+ </color>
+ </property>
+ <property name="paletteBackgroundColor">
+ <color>
+ <red>220</red>
+ <green>240</green>
+ <blue>30</blue>
+ </color>
+ </property>
+ <property name="font">
+ <font>
+ <family>Zero Threes</family>
+ <italic>1</italic>
+ </font>
+ </property>
+ <property name="maxValue">
+ <number>31</number>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Attack Rate</string>
+ </property>
+ </widget>
+ </widget>
+ <widget class="QGroupBox">
+ <property name="name">
+ <cstring>Scaling3GroupBox</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>280</x>
+ <y>0</y>
+ <width>110</width>
+ <height>190</height>
+ </rect>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>ParentOrigin</enum>
+ </property>
+ <property name="title">
+ <string>Scaling 3</string>
+ </property>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>LS3Label</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>10</x>
+ <y>160</y>
+ <width>40</width>
+ <height>22</height>
+ </rect>
+ </property>
+ <property name="backgroundMode">
+ <enum>PaletteBackground</enum>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="frameShape">
+ <enum>Box</enum>
+ </property>
+ <property name="frameShadow">
+ <enum>Sunken</enum>
+ </property>
+ <property name="text">
+ <string>LS3</string>
+ </property>
+ </widget>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>RS3Label</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>60</x>
+ <y>160</y>
+ <width>40</width>
+ <height>22</height>
+ </rect>
+ </property>
+ <property name="backgroundMode">
+ <enum>PaletteBackground</enum>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="frameShape">
+ <enum>Box</enum>
+ </property>
+ <property name="frameShadow">
+ <enum>Sunken</enum>
+ </property>
+ <property name="text">
+ <string>RS3</string>
+ </property>
+ </widget>
+ <widget class="QSlider">
+ <property name="name">
+ <cstring>LS3Slider</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>20</x>
+ <y>50</y>
+ <width>19</width>
+ <height>100</height>
+ </rect>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="cursor">
+ <cursor>13</cursor>
+ </property>
+ <property name="maxValue">
+ <number>99</number>
+ </property>
+ <property name="pageStep">
+ <number>1</number>
+ </property>
+ <property name="value">
+ <number>0</number>
+ </property>
+ <property name="orientation">
+ <enum>Vertical</enum>
+ </property>
+ <property name="tickmarks">
+ <enum>NoMarks</enum>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Level Scaling</string>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>Attack Rate of the operator 1</string>
+ </property>
+ </widget>
+ <widget class="QSlider">
+ <property name="name">
+ <cstring>RS3Slider</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>70</x>
+ <y>50</y>
+ <width>19</width>
+ <height>100</height>
+ </rect>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="cursor">
+ <cursor>13</cursor>
+ </property>
+ <property name="maxValue">
+ <number>3</number>
+ </property>
+ <property name="pageStep">
+ <number>1</number>
+ </property>
+ <property name="value">
+ <number>0</number>
+ </property>
+ <property name="orientation">
+ <enum>Vertical</enum>
+ </property>
+ <property name="tickmarks">
+ <enum>NoMarks</enum>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Rate Scaling</string>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>Attack Rate of the operator 1</string>
+ </property>
+ </widget>
+ <widget class="QSpinBox">
+ <property name="name">
+ <cstring>LS3SpinBox</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>10</x>
+ <y>20</y>
+ <width>40</width>
+ <height>21</height>
+ </rect>
+ </property>
+ <property name="paletteForegroundColor">
+ <color>
+ <red>0</red>
+ <green>180</green>
+ <blue>0</blue>
+ </color>
+ </property>
+ <property name="paletteBackgroundColor">
+ <color>
+ <red>220</red>
+ <green>240</green>
+ <blue>30</blue>
+ </color>
+ </property>
+ <property name="font">
+ <font>
+ <family>Zero Threes</family>
+ <italic>1</italic>
+ </font>
+ </property>
+ <property name="maxValue">
+ <number>99</number>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Coarse Ratio</string>
+ </property>
+ </widget>
+ <widget class="QSpinBox">
+ <property name="name">
+ <cstring>RS3SpinBox</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>60</x>
+ <y>20</y>
+ <width>40</width>
+ <height>21</height>
+ </rect>
+ </property>
+ <property name="paletteForegroundColor">
+ <color>
+ <red>0</red>
+ <green>180</green>
+ <blue>0</blue>
+ </color>
+ </property>
+ <property name="paletteBackgroundColor">
+ <color>
+ <red>220</red>
+ <green>240</green>
+ <blue>30</blue>
+ </color>
+ </property>
+ <property name="font">
+ <font>
+ <family>Zero Threes</family>
+ <italic>1</italic>
+ </font>
+ </property>
+ <property name="maxValue">
+ <number>3</number>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Coarse Ratio</string>
+ </property>
+ </widget>
+ </widget>
+ <widget class="QGroupBox">
+ <property name="name">
+ <cstring>Vol3groupBox</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>400</x>
+ <y>0</y>
+ <width>60</width>
+ <height>190</height>
+ </rect>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="title">
+ <string>Vol 3</string>
+ </property>
+ <widget class="QSlider">
+ <property name="name">
+ <cstring>Vol3Slider</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>20</x>
+ <y>50</y>
+ <width>19</width>
+ <height>130</height>
+ </rect>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="cursor">
+ <cursor>13</cursor>
+ </property>
+ <property name="maxValue">
+ <number>99</number>
+ </property>
+ <property name="pageStep">
+ <number>1</number>
+ </property>
+ <property name="value">
+ <number>0</number>
+ </property>
+ <property name="orientation">
+ <enum>Vertical</enum>
+ </property>
+ <property name="tickmarks">
+ <enum>NoMarks</enum>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Volume</string>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string></string>
+ </property>
+ </widget>
+ <widget class="QSpinBox">
+ <property name="name">
+ <cstring>Vol3SpinBox</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>10</x>
+ <y>20</y>
+ <width>40</width>
+ <height>21</height>
+ </rect>
+ </property>
+ <property name="paletteForegroundColor">
+ <color>
+ <red>0</red>
+ <green>180</green>
+ <blue>0</blue>
+ </color>
+ </property>
+ <property name="paletteBackgroundColor">
+ <color>
+ <red>220</red>
+ <green>240</green>
+ <blue>30</blue>
+ </color>
+ </property>
+ <property name="font">
+ <font>
+ <family>Zero Threes</family>
+ <italic>1</italic>
+ </font>
+ </property>
+ <property name="maxValue">
+ <number>99</number>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Coarse Ratio</string>
+ </property>
+ </widget>
+ </widget>
+ <widget class="QGroupBox">
+ <property name="name">
+ <cstring>sensitivity3groupBox</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>10</x>
+ <y>240</y>
+ <width>260</width>
+ <height>80</height>
+ </rect>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>ParentOrigin</enum>
+ </property>
+ <property name="title">
+ <string>Sensitivity 3</string>
+ </property>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>EGS3Label</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>80</x>
+ <y>20</y>
+ <width>40</width>
+ <height>22</height>
+ </rect>
+ </property>
+ <property name="backgroundMode">
+ <enum>PaletteBackground</enum>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="frameShape">
+ <enum>Box</enum>
+ </property>
+ <property name="frameShadow">
+ <enum>Sunken</enum>
+ </property>
+ <property name="text">
+ <string>EBS3</string>
+ </property>
+ </widget>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>KVS3Label</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>10</x>
+ <y>50</y>
+ <width>40</width>
+ <height>22</height>
+ </rect>
+ </property>
+ <property name="backgroundMode">
+ <enum>PaletteBackground</enum>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="frameShape">
+ <enum>Box</enum>
+ </property>
+ <property name="frameShadow">
+ <enum>Sunken</enum>
+ </property>
+ <property name="text">
+ <string>KVS3</string>
+ </property>
+ </widget>
+ <widget class="QCheckBox">
+ <property name="name">
+ <cstring>AME3CheckBox</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>10</x>
+ <y>20</y>
+ <width>60</width>
+ <height>25</height>
+ </rect>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="font">
+ <font>
+ </font>
+ </property>
+ <property name="cursor">
+ <cursor>13</cursor>
+ </property>
+ <property name="autoMask">
+ <bool>false</bool>
+ </property>
+ <property name="text">
+ <string>AME3</string>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Amplitude Modulation Enable</string>
+ </property>
+ </widget>
+ <widget class="QSlider">
+ <property name="name">
+ <cstring>KVS3Slider</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>60</x>
+ <y>50</y>
+ <width>84</width>
+ <height>19</height>
+ </rect>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="cursor">
+ <cursor>13</cursor>
+ </property>
+ <property name="acceptDrops">
+ <bool>false</bool>
+ </property>
+ <property name="maxValue">
+ <number>7</number>
+ </property>
+ <property name="pageStep">
+ <number>1</number>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="tickmarks">
+ <enum>NoMarks</enum>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Key Velocity Sensitivity</string>
+ </property>
+ </widget>
+ <widget class="QSlider">
+ <property name="name">
+ <cstring>EBS3Slider</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>130</x>
+ <y>20</y>
+ <width>70</width>
+ <height>20</height>
+ </rect>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="cursor">
+ <cursor>13</cursor>
+ </property>
+ <property name="maxValue">
+ <number>7</number>
+ </property>
+ <property name="pageStep">
+ <number>1</number>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="tickmarks">
+ <enum>NoMarks</enum>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>EG Bias Sensitivity</string>
+ </property>
+ </widget>
+ <widget class="QSpinBox">
+ <property name="name">
+ <cstring>EBS3SpinBox</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>210</x>
+ <y>20</y>
+ <width>40</width>
+ <height>21</height>
+ </rect>
+ </property>
+ <property name="paletteForegroundColor">
+ <color>
+ <red>0</red>
+ <green>180</green>
+ <blue>0</blue>
+ </color>
+ </property>
+ <property name="paletteBackgroundColor">
+ <color>
+ <red>220</red>
+ <green>240</green>
+ <blue>30</blue>
+ </color>
+ </property>
+ <property name="font">
+ <font>
+ <family>Zero Threes</family>
+ <italic>1</italic>
+ </font>
+ </property>
+ <property name="maxValue">
+ <number>7</number>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Coarse Ratio</string>
+ </property>
+ </widget>
+ <widget class="QSpinBox">
+ <property name="name">
+ <cstring>KVS3SpinBox</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>160</x>
+ <y>50</y>
+ <width>40</width>
+ <height>21</height>
+ </rect>
+ </property>
+ <property name="paletteForegroundColor">
+ <color>
+ <red>0</red>
+ <green>180</green>
+ <blue>0</blue>
+ </color>
+ </property>
+ <property name="paletteBackgroundColor">
+ <color>
+ <red>220</red>
+ <green>240</green>
+ <blue>30</blue>
+ </color>
+ </property>
+ <property name="font">
+ <font>
+ <family>Zero Threes</family>
+ <italic>1</italic>
+ </font>
+ </property>
+ <property name="maxValue">
+ <number>7</number>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Coarse Ratio</string>
+ </property>
+ </widget>
+ </widget>
+ <widget class="QGroupBox">
+ <property name="name">
+ <cstring>DetWaveEGS3GroupBox</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>280</x>
+ <y>240</y>
+ <width>180</width>
+ <height>80</height>
+ </rect>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="title">
+ <string>Detune Wave EGShift 3</string>
+ </property>
+ <widget class="QComboBox">
+ <item>
+ <property name="text">
+ <string>Wave1</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Wave2</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Wave3</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Wave4</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Wave5</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Wave6</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Wave7</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Wave8</string>
+ </property>
+ </item>
+ <property name="name">
+ <cstring>WaveForm3ComboBox</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>10</x>
+ <y>50</y>
+ <width>80</width>
+ <height>20</height>
+ </rect>
+ </property>
+ <property name="cursor">
+ <cursor>13</cursor>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Wave Form</string>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>Wave form 1 = &lt;i&gt;sin(&lt;b&gt;t&lt;/b&gt;)&lt;/i&gt;&lt;br&gt;
+Wave form 2 = &lt;i&gt;sin(&lt;b&gt;t&lt;/b&gt;)*abs(sin(&lt;b&gt;t&lt;/b&gt;))&lt;/i&gt;&lt;br&gt;
+Wave form 3 = &lt;i&gt;if &lt;b&gt;t&lt;/b&gt;&amp;#060 pi then sin(&lt;b&gt;t&lt;/b&gt;) else 0&lt;/i&gt;&lt;br&gt;
+Wave form 4 = &lt;i&gt;if &lt;b&gt;t&lt;/b&gt;&amp;#060 pi then sin(&lt;b&gt;t&lt;/b&gt;)*abs(sin(&lt;b&gt;t&lt;/b&gt;)) else 0&lt;/i&gt;&lt;br&gt;
+Wave form 5 = &lt;i&gt;if &lt;b&gt;t&lt;/b&gt;&amp;#060 pi then sin(2*&lt;b&gt;t&lt;/b&gt;) else 0&lt;/i&gt;&lt;br&gt;
+Wave form 6 = &lt;i&gt;if &lt;b&gt;t&lt;/b&gt;&amp;#060 pi then sin(2*&lt;b&gt;t&lt;/b&gt;)*abs(sin(2*&lt;b&gt;t&lt;/b&gt;)) else 0&lt;/i&gt;&lt;br&gt;
+Wave form 7 = &lt;i&gt;if &lt;b&gt;t&lt;/b&gt;&amp;#060 pi then abs(sin(2*&lt;b&gt;t&lt;/b&gt;)) else 0&lt;/i&gt;&lt;br&gt;
+Wave form 8 = &lt;i&gt;if &lt;b&gt;t&lt;/b&gt;&amp;#060 pi then sin(2*&lt;b&gt;t&lt;/b&gt;)*sin(2*&lt;b&gt;t&lt;/b&gt;) else 0&lt;/i&gt;</string>
+ </property>
+ </widget>
+ <widget class="QComboBox">
+ <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>
+ <property name="name">
+ <cstring>EGS3comboBox</cstring>
+ </property>
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>100</x>
+ <y>50</y>
+ <width>70</width>
+ <height>20</height>
+ </rect>
+ </property>
+ <property name="cursor">
+ <cursor>13</cursor>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>EG Shift</string>
+ </property>
+ </widget>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>DET3Label</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>10</x>
+ <y>20</y>
+ <width>44</width>
+ <height>24</height>
+ </rect>
+ </property>
+ <property name="backgroundMode">
+ <enum>PaletteBackground</enum>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="frameShape">
+ <enum>Box</enum>
+ </property>
+ <property name="frameShadow">
+ <enum>Sunken</enum>
+ </property>
+ <property name="text">
+ <string>DET3</string>
+ </property>
+ </widget>
+ <widget class="QSlider">
+ <property name="name">
+ <cstring>DET3Slider</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>60</x>
+ <y>20</y>
+ <width>70</width>
+ <height>19</height>
+ </rect>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="cursor">
+ <cursor>13</cursor>
+ </property>
+ <property name="minValue">
+ <number>-3</number>
+ </property>
+ <property name="maxValue">
+ <number>3</number>
+ </property>
+ <property name="pageStep">
+ <number>1</number>
+ </property>
+ <property name="value">
+ <number>0</number>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="tickmarks">
+ <enum>NoMarks</enum>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Detune</string>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>Attack Rate of the operator 1</string>
+ </property>
+ </widget>
+ <widget class="QSpinBox">
+ <property name="name">
+ <cstring>DET3SpinBox</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>140</x>
+ <y>20</y>
+ <width>30</width>
+ <height>21</height>
+ </rect>
+ </property>
+ <property name="paletteForegroundColor">
+ <color>
+ <red>0</red>
+ <green>180</green>
+ <blue>0</blue>
+ </color>
+ </property>
+ <property name="paletteBackgroundColor">
+ <color>
+ <red>220</red>
+ <green>240</green>
+ <blue>30</blue>
+ </color>
+ </property>
+ <property name="font">
+ <font>
+ <family>Zero Threes</family>
+ <italic>1</italic>
+ </font>
+ </property>
+ <property name="maxValue">
+ <number>3</number>
+ </property>
+ <property name="minValue">
+ <number>-3</number>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Coarse Ratio</string>
+ </property>
+ </widget>
+ </widget>
+ </widget>
+ <widget class="QWidget">
+ <property name="name">
+ <cstring>TabPage</cstring>
+ </property>
+ <attribute name="title">
+ <string>Op &amp;4</string>
+ </attribute>
+ <widget class="QGroupBox">
+ <property name="name">
+ <cstring>Frequency4groupBox</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>10</x>
+ <y>190</y>
+ <width>450</width>
+ <height>50</height>
+ </rect>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="title">
+ <string>Frequency 4</string>
+ </property>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>CoarseRatio4Label</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>10</x>
+ <y>20</y>
+ <width>70</width>
+ <height>22</height>
+ </rect>
+ </property>
+ <property name="backgroundMode">
+ <enum>PaletteBackground</enum>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="frameShape">
+ <enum>Box</enum>
+ </property>
+ <property name="frameShadow">
+ <enum>Sunken</enum>
+ </property>
+ <property name="text">
+ <string>Coarse 4</string>
+ </property>
+ </widget>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>FineRatio4Label</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>140</x>
+ <y>20</y>
+ <width>50</width>
+ <height>22</height>
+ </rect>
+ </property>
+ <property name="backgroundMode">
+ <enum>PaletteBackground</enum>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="frameShape">
+ <enum>Box</enum>
+ </property>
+ <property name="frameShadow">
+ <enum>Sunken</enum>
+ </property>
+ <property name="text">
+ <string>Fine 4</string>
+ </property>
+ </widget>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>Freq4Label</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>250</x>
+ <y>20</y>
+ <width>50</width>
+ <height>22</height>
+ </rect>
+ </property>
+ <property name="backgroundMode">
+ <enum>PaletteBackground</enum>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="frameShape">
+ <enum>Box</enum>
+ </property>
+ <property name="frameShadow">
+ <enum>Sunken</enum>
+ </property>
+ <property name="text">
+ <string>Freq 4</string>
+ </property>
+ </widget>
+ <widget class="QCheckBox">
+ <property name="name">
+ <cstring>Fix4CheckBox</cstring>
+ </property>
+ <property name="enabled">
+ <bool>true</bool>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>400</x>
+ <y>20</y>
+ <width>40</width>
+ <height>25</height>
+ </rect>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="font">
+ <font>
+ </font>
+ </property>
+ <property name="cursor">
+ <cursor>13</cursor>
+ </property>
+ <property name="autoMask">
+ <bool>false</bool>
+ </property>
+ <property name="text">
+ <string>FIX</string>
+ </property>
+ </widget>
+ <widget class="QSpinBox">
+ <property name="name">
+ <cstring>FineRatio4SpinBox</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>200</x>
+ <y>20</y>
+ <width>40</width>
+ <height>21</height>
+ </rect>
+ </property>
+ <property name="paletteForegroundColor">
+ <color>
+ <red>0</red>
+ <green>180</green>
+ <blue>0</blue>
+ </color>
+ </property>
+ <property name="paletteBackgroundColor">
+ <color>
+ <red>220</red>
+ <green>240</green>
+ <blue>30</blue>
+ </color>
+ </property>
+ <property name="font">
+ <font>
+ <family>Zero Threes</family>
+ <italic>1</italic>
+ </font>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Fine Ratio</string>
+ </property>
+ </widget>
+ <widget class="QSpinBox">
+ <property name="name">
+ <cstring>Freq4SpinBox</cstring>
+ </property>
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>310</x>
+ <y>20</y>
+ <width>80</width>
+ <height>21</height>
+ </rect>
+ </property>
+ <property name="paletteForegroundColor">
+ <color>
+ <red>0</red>
+ <green>180</green>
+ <blue>0</blue>
+ </color>
+ </property>
+ <property name="paletteBackgroundColor">
+ <color>
+ <red>220</red>
+ <green>240</green>
+ <blue>30</blue>
+ </color>
+ </property>
+ <property name="font">
+ <font>
+ <family>Zero Threes</family>
+ <italic>1</italic>
+ </font>
+ </property>
+ <property name="maxValue">
+ <number>32000</number>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Fixed Frequency</string>
+ </property>
+ </widget>
+ <widget class="QSpinBox">
+ <property name="name">
+ <cstring>CoarseRatio4SpinBox</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>90</x>
+ <y>20</y>
+ <width>40</width>
+ <height>21</height>
+ </rect>
+ </property>
+ <property name="paletteForegroundColor">
+ <color>
+ <red>0</red>
+ <green>180</green>
+ <blue>0</blue>
+ </color>
+ </property>
+ <property name="paletteBackgroundColor">
+ <color>
+ <red>220</red>
+ <green>240</green>
+ <blue>30</blue>
+ </color>
+ </property>
+ <property name="font">
+ <font>
+ <family>Zero Threes</family>
+ <italic>1</italic>
+ </font>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Coarse Ratio</string>
+ </property>
+ </widget>
+ </widget>
+ <widget class="QGroupBox">
+ <property name="name">
+ <cstring>Scaling4GroupBox</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>280</x>
+ <y>0</y>
+ <width>110</width>
+ <height>190</height>
+ </rect>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>ParentOrigin</enum>
+ </property>
+ <property name="title">
+ <string>Scaling 4</string>
+ </property>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>LS4Label</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>10</x>
+ <y>160</y>
+ <width>40</width>
+ <height>22</height>
+ </rect>
+ </property>
+ <property name="backgroundMode">
+ <enum>PaletteBackground</enum>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="frameShape">
+ <enum>Box</enum>
+ </property>
+ <property name="frameShadow">
+ <enum>Sunken</enum>
+ </property>
+ <property name="text">
+ <string>LS4</string>
+ </property>
+ </widget>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>RS4Label</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>60</x>
+ <y>160</y>
+ <width>40</width>
+ <height>22</height>
+ </rect>
+ </property>
+ <property name="backgroundMode">
+ <enum>PaletteBackground</enum>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="frameShape">
+ <enum>Box</enum>
+ </property>
+ <property name="frameShadow">
+ <enum>Sunken</enum>
+ </property>
+ <property name="text">
+ <string>RS4</string>
+ </property>
+ </widget>
+ <widget class="QSlider">
+ <property name="name">
+ <cstring>LS4Slider</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>20</x>
+ <y>50</y>
+ <width>19</width>
+ <height>100</height>
+ </rect>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="cursor">
+ <cursor>13</cursor>
+ </property>
+ <property name="maxValue">
+ <number>99</number>
+ </property>
+ <property name="pageStep">
+ <number>1</number>
+ </property>
+ <property name="value">
+ <number>0</number>
+ </property>
+ <property name="orientation">
+ <enum>Vertical</enum>
+ </property>
+ <property name="tickmarks">
+ <enum>NoMarks</enum>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Level Scaling</string>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>Attack Rate of the operator 1</string>
+ </property>
+ </widget>
+ <widget class="QSlider">
+ <property name="name">
+ <cstring>RS4Slider</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>70</x>
+ <y>50</y>
+ <width>19</width>
+ <height>100</height>
+ </rect>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="cursor">
+ <cursor>13</cursor>
+ </property>
+ <property name="maxValue">
+ <number>3</number>
+ </property>
+ <property name="pageStep">
+ <number>1</number>
+ </property>
+ <property name="value">
+ <number>0</number>
+ </property>
+ <property name="orientation">
+ <enum>Vertical</enum>
+ </property>
+ <property name="tickmarks">
+ <enum>NoMarks</enum>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Rate Scaling</string>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>Attack Rate of the operator 1</string>
+ </property>
+ </widget>
+ <widget class="QSpinBox">
+ <property name="name">
+ <cstring>RS4SpinBox</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>60</x>
+ <y>20</y>
+ <width>40</width>
+ <height>21</height>
+ </rect>
+ </property>
+ <property name="paletteForegroundColor">
+ <color>
+ <red>0</red>
+ <green>180</green>
+ <blue>0</blue>
+ </color>
+ </property>
+ <property name="paletteBackgroundColor">
+ <color>
+ <red>220</red>
+ <green>240</green>
+ <blue>30</blue>
+ </color>
+ </property>
+ <property name="font">
+ <font>
+ <family>Zero Threes</family>
+ <italic>1</italic>
+ </font>
+ </property>
+ <property name="maxValue">
+ <number>3</number>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Coarse Ratio</string>
+ </property>
+ </widget>
+ <widget class="QSpinBox">
+ <property name="name">
+ <cstring>LS4SpinBox</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>10</x>
+ <y>20</y>
+ <width>40</width>
+ <height>21</height>
+ </rect>
+ </property>
+ <property name="paletteForegroundColor">
+ <color>
+ <red>0</red>
+ <green>180</green>
+ <blue>0</blue>
+ </color>
+ </property>
+ <property name="paletteBackgroundColor">
+ <color>
+ <red>220</red>
+ <green>240</green>
+ <blue>30</blue>
+ </color>
+ </property>
+ <property name="font">
+ <font>
+ <family>Zero Threes</family>
+ <italic>1</italic>
+ </font>
+ </property>
+ <property name="maxValue">
+ <number>99</number>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Coarse Ratio</string>
+ </property>
+ </widget>
+ </widget>
+ <widget class="QGroupBox">
+ <property name="name">
+ <cstring>Env4GroupBox</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>10</x>
+ <y>0</y>
+ <width>260</width>
+ <height>190</height>
+ </rect>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>ParentOrigin</enum>
+ </property>
+ <property name="title">
+ <string>Envelope 4</string>
+ </property>
+ <widget class="QSlider">
+ <property name="name">
+ <cstring>AR4Slider</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>20</x>
+ <y>50</y>
+ <width>20</width>
+ <height>100</height>
+ </rect>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="cursor">
+ <cursor>13</cursor>
+ </property>
+ <property name="maxValue">
+ <number>31</number>
+ </property>
+ <property name="pageStep">
+ <number>1</number>
+ </property>
+ <property name="value">
+ <number>0</number>
+ </property>
+ <property name="orientation">
+ <enum>Vertical</enum>
+ </property>
+ <property name="tickmarks">
+ <enum>NoMarks</enum>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Attack Rate</string>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string></string>
+ </property>
+ </widget>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>AR4Label</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>10</x>
+ <y>160</y>
+ <width>40</width>
+ <height>22</height>
+ </rect>
+ </property>
+ <property name="backgroundMode">
+ <enum>PaletteBackground</enum>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="frameShape">
+ <enum>Box</enum>
+ </property>
+ <property name="frameShadow">
+ <enum>Sunken</enum>
+ </property>
+ <property name="text">
+ <string>AR4</string>
+ </property>
+ </widget>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>RR4Label</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>210</x>
+ <y>160</y>
+ <width>43</width>
+ <height>22</height>
+ </rect>
+ </property>
+ <property name="backgroundMode">
+ <enum>PaletteBackground</enum>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="frameShape">
+ <enum>Box</enum>
+ </property>
+ <property name="frameShadow">
+ <enum>Sunken</enum>
+ </property>
+ <property name="text">
+ <string>RR4</string>
+ </property>
+ </widget>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>D2R4Label</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>160</x>
+ <y>160</y>
+ <width>43</width>
+ <height>22</height>
+ </rect>
+ </property>
+ <property name="backgroundMode">
+ <enum>PaletteBackground</enum>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="frameShape">
+ <enum>Box</enum>
+ </property>
+ <property name="frameShadow">
+ <enum>Sunken</enum>
+ </property>
+ <property name="text">
+ <string>D2R4</string>
+ </property>
+ </widget>
+ <widget class="QSlider">
+ <property name="name">
+ <cstring>D2R4Slider</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>170</x>
+ <y>50</y>
+ <width>20</width>
+ <height>100</height>
+ </rect>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="cursor">
+ <cursor>13</cursor>
+ </property>
+ <property name="maxValue">
+ <number>31</number>
+ </property>
+ <property name="pageStep">
+ <number>1</number>
+ </property>
+ <property name="value">
+ <number>0</number>
+ </property>
+ <property name="orientation">
+ <enum>Vertical</enum>
+ </property>
+ <property name="tickmarks">
+ <enum>NoMarks</enum>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>2° Decay Rate</string>
+ </property>
+ </widget>
+ <widget class="QSlider">
+ <property name="name">
+ <cstring>D1L4Slider</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>120</x>
+ <y>50</y>
+ <width>20</width>
+ <height>100</height>
+ </rect>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="cursor">
+ <cursor>13</cursor>
+ </property>
+ <property name="maxValue">
+ <number>15</number>
+ </property>
+ <property name="pageStep">
+ <number>1</number>
+ </property>
+ <property name="value">
+ <number>0</number>
+ </property>
+ <property name="orientation">
+ <enum>Vertical</enum>
+ </property>
+ <property name="tickmarks">
+ <enum>NoMarks</enum>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>1° Decay Level</string>
+ </property>
+ </widget>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>D1L4Label</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>110</x>
+ <y>160</y>
+ <width>43</width>
+ <height>22</height>
+ </rect>
+ </property>
+ <property name="backgroundMode">
+ <enum>PaletteBackground</enum>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="frameShape">
+ <enum>Box</enum>
+ </property>
+ <property name="frameShadow">
+ <enum>Sunken</enum>
+ </property>
+ <property name="text">
+ <string>D1L4</string>
+ </property>
+ </widget>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>D1R4Label</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>60</x>
+ <y>160</y>
+ <width>43</width>
+ <height>22</height>
+ </rect>
+ </property>
+ <property name="backgroundMode">
+ <enum>PaletteBackground</enum>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="frameShape">
+ <enum>Box</enum>
+ </property>
+ <property name="frameShadow">
+ <enum>Sunken</enum>
+ </property>
+ <property name="text">
+ <string>D1R4</string>
+ </property>
+ </widget>
+ <widget class="QSlider">
+ <property name="name">
+ <cstring>D1R4Slider</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>70</x>
+ <y>50</y>
+ <width>20</width>
+ <height>100</height>
+ </rect>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="cursor">
+ <cursor>13</cursor>
+ </property>
+ <property name="maxValue">
+ <number>31</number>
+ </property>
+ <property name="pageStep">
+ <number>1</number>
+ </property>
+ <property name="value">
+ <number>0</number>
+ </property>
+ <property name="orientation">
+ <enum>Vertical</enum>
+ </property>
+ <property name="tickmarks">
+ <enum>NoMarks</enum>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>1° Decay Rate</string>
+ </property>
+ </widget>
+ <widget class="QSlider">
+ <property name="name">
+ <cstring>RR4Slider</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>220</x>
+ <y>50</y>
+ <width>20</width>
+ <height>100</height>
+ </rect>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="cursor">
+ <cursor>13</cursor>
+ </property>
+ <property name="minValue">
+ <number>0</number>
+ </property>
+ <property name="maxValue">
+ <number>15</number>
+ </property>
+ <property name="pageStep">
+ <number>1</number>
+ </property>
+ <property name="value">
+ <number>0</number>
+ </property>
+ <property name="orientation">
+ <enum>Vertical</enum>
+ </property>
+ <property name="tickmarks">
+ <enum>NoMarks</enum>
+ </property>
+ <property name="tickInterval">
+ <number>0</number>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Release Rate</string>
+ </property>
+ </widget>
+ <widget class="QSpinBox">
+ <property name="name">
+ <cstring>D1R4SpinBox</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>60</x>
+ <y>20</y>
+ <width>40</width>
+ <height>21</height>
+ </rect>
+ </property>
+ <property name="paletteForegroundColor">
+ <color>
+ <red>0</red>
+ <green>180</green>
+ <blue>0</blue>
+ </color>
+ </property>
+ <property name="paletteBackgroundColor">
+ <color>
+ <red>220</red>
+ <green>240</green>
+ <blue>30</blue>
+ </color>
+ </property>
+ <property name="font">
+ <font>
+ <family>Zero Threes</family>
+ <italic>1</italic>
+ </font>
+ </property>
+ <property name="maxValue">
+ <number>31</number>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Coarse Ratio</string>
+ </property>
+ </widget>
+ <widget class="QSpinBox">
+ <property name="name">
+ <cstring>D1L4SpinBox</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>110</x>
+ <y>20</y>
+ <width>40</width>
+ <height>21</height>
+ </rect>
+ </property>
+ <property name="paletteForegroundColor">
+ <color>
+ <red>0</red>
+ <green>180</green>
+ <blue>0</blue>
+ </color>
+ </property>
+ <property name="paletteBackgroundColor">
+ <color>
+ <red>220</red>
+ <green>240</green>
+ <blue>30</blue>
+ </color>
+ </property>
+ <property name="font">
+ <font>
+ <family>Zero Threes</family>
+ <italic>1</italic>
+ </font>
+ </property>
+ <property name="maxValue">
+ <number>15</number>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Coarse Ratio</string>
+ </property>
+ </widget>
+ <widget class="QSpinBox">
+ <property name="name">
+ <cstring>D2R4SpinBox</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>160</x>
+ <y>20</y>
+ <width>40</width>
+ <height>21</height>
+ </rect>
+ </property>
+ <property name="paletteForegroundColor">
+ <color>
+ <red>0</red>
+ <green>180</green>
+ <blue>0</blue>
+ </color>
+ </property>
+ <property name="paletteBackgroundColor">
+ <color>
+ <red>220</red>
+ <green>240</green>
+ <blue>30</blue>
+ </color>
+ </property>
+ <property name="font">
+ <font>
+ <family>Zero Threes</family>
+ <italic>1</italic>
+ </font>
+ </property>
+ <property name="maxValue">
+ <number>31</number>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Coarse Ratio</string>
+ </property>
+ </widget>
+ <widget class="QSpinBox">
+ <property name="name">
+ <cstring>RR4SpinBox</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>210</x>
+ <y>20</y>
+ <width>40</width>
+ <height>21</height>
+ </rect>
+ </property>
+ <property name="paletteForegroundColor">
+ <color>
+ <red>0</red>
+ <green>180</green>
+ <blue>0</blue>
+ </color>
+ </property>
+ <property name="paletteBackgroundColor">
+ <color>
+ <red>220</red>
+ <green>240</green>
+ <blue>30</blue>
+ </color>
+ </property>
+ <property name="font">
+ <font>
+ <family>Zero Threes</family>
+ <italic>1</italic>
+ </font>
+ </property>
+ <property name="maxValue">
+ <number>15</number>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Coarse Ratio</string>
+ </property>
+ </widget>
+ <widget class="QSpinBox">
+ <property name="name">
+ <cstring>AR4SpinBox</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>10</x>
+ <y>20</y>
+ <width>40</width>
+ <height>21</height>
+ </rect>
+ </property>
+ <property name="paletteForegroundColor">
+ <color>
+ <red>0</red>
+ <green>180</green>
+ <blue>0</blue>
+ </color>
+ </property>
+ <property name="paletteBackgroundColor">
+ <color>
+ <red>220</red>
+ <green>240</green>
+ <blue>30</blue>
+ </color>
+ </property>
+ <property name="font">
+ <font>
+ <family>Zero Threes</family>
+ <italic>1</italic>
+ </font>
+ </property>
+ <property name="maxValue">
+ <number>31</number>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Attack Rate</string>
+ </property>
+ </widget>
+ </widget>
+ <widget class="QGroupBox">
+ <property name="name">
+ <cstring>Vol4groupBox</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>400</x>
+ <y>0</y>
+ <width>60</width>
+ <height>190</height>
+ </rect>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="title">
+ <string>Vol 4</string>
+ </property>
+ <widget class="QSlider">
+ <property name="name">
+ <cstring>Vol4Slider</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>20</x>
+ <y>50</y>
+ <width>19</width>
+ <height>130</height>
+ </rect>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="cursor">
+ <cursor>13</cursor>
+ </property>
+ <property name="maxValue">
+ <number>99</number>
+ </property>
+ <property name="pageStep">
+ <number>1</number>
+ </property>
+ <property name="value">
+ <number>0</number>
+ </property>
+ <property name="orientation">
+ <enum>Vertical</enum>
+ </property>
+ <property name="tickmarks">
+ <enum>NoMarks</enum>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Volume</string>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string></string>
+ </property>
+ </widget>
+ <widget class="QSpinBox">
+ <property name="name">
+ <cstring>Vol4SpinBox</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>10</x>
+ <y>20</y>
+ <width>40</width>
+ <height>21</height>
+ </rect>
+ </property>
+ <property name="paletteForegroundColor">
+ <color>
+ <red>0</red>
+ <green>180</green>
+ <blue>0</blue>
+ </color>
+ </property>
+ <property name="paletteBackgroundColor">
+ <color>
+ <red>220</red>
+ <green>240</green>
+ <blue>30</blue>
+ </color>
+ </property>
+ <property name="font">
+ <font>
+ <family>Zero Threes</family>
+ <italic>1</italic>
+ </font>
+ </property>
+ <property name="maxValue">
+ <number>99</number>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Coarse Ratio</string>
+ </property>
+ </widget>
+ </widget>
+ <widget class="QGroupBox">
+ <property name="name">
+ <cstring>sensitivity4groupBox</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>10</x>
+ <y>240</y>
+ <width>260</width>
+ <height>80</height>
+ </rect>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>ParentOrigin</enum>
+ </property>
+ <property name="title">
+ <string>Sensitivity 4</string>
+ </property>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>EGS4Label</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>80</x>
+ <y>20</y>
+ <width>40</width>
+ <height>22</height>
+ </rect>
+ </property>
+ <property name="backgroundMode">
+ <enum>PaletteBackground</enum>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="frameShape">
+ <enum>Box</enum>
+ </property>
+ <property name="frameShadow">
+ <enum>Sunken</enum>
+ </property>
+ <property name="text">
+ <string>EBS4</string>
+ </property>
+ </widget>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>KVS4Label</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>10</x>
+ <y>50</y>
+ <width>40</width>
+ <height>22</height>
+ </rect>
+ </property>
+ <property name="backgroundMode">
+ <enum>PaletteBackground</enum>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="frameShape">
+ <enum>Box</enum>
+ </property>
+ <property name="frameShadow">
+ <enum>Sunken</enum>
+ </property>
+ <property name="text">
+ <string>KVS4</string>
+ </property>
+ </widget>
+ <widget class="QCheckBox">
+ <property name="name">
+ <cstring>AME4CheckBox</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>10</x>
+ <y>20</y>
+ <width>60</width>
+ <height>25</height>
+ </rect>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="font">
+ <font>
+ </font>
+ </property>
+ <property name="cursor">
+ <cursor>13</cursor>
+ </property>
+ <property name="autoMask">
+ <bool>false</bool>
+ </property>
+ <property name="text">
+ <string>AME4</string>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Amplitude Modulation Enable</string>
+ </property>
+ </widget>
+ <widget class="QSlider">
+ <property name="name">
+ <cstring>KVS4Slider</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>60</x>
+ <y>50</y>
+ <width>84</width>
+ <height>19</height>
+ </rect>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="cursor">
+ <cursor>13</cursor>
+ </property>
+ <property name="acceptDrops">
+ <bool>false</bool>
+ </property>
+ <property name="maxValue">
+ <number>7</number>
+ </property>
+ <property name="pageStep">
+ <number>1</number>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="tickmarks">
+ <enum>NoMarks</enum>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Key Velocity Sensitivity</string>
+ </property>
+ </widget>
+ <widget class="QSlider">
+ <property name="name">
+ <cstring>EBS4Slider</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>130</x>
+ <y>20</y>
+ <width>70</width>
+ <height>20</height>
+ </rect>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="cursor">
+ <cursor>13</cursor>
+ </property>
+ <property name="maxValue">
+ <number>7</number>
+ </property>
+ <property name="pageStep">
+ <number>1</number>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="tickmarks">
+ <enum>NoMarks</enum>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>EG Bias Sensitivity</string>
+ </property>
+ </widget>
+ <widget class="QSpinBox">
+ <property name="name">
+ <cstring>KVS4SpinBox</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>160</x>
+ <y>50</y>
+ <width>40</width>
+ <height>21</height>
+ </rect>
+ </property>
+ <property name="paletteForegroundColor">
+ <color>
+ <red>0</red>
+ <green>180</green>
+ <blue>0</blue>
+ </color>
+ </property>
+ <property name="paletteBackgroundColor">
+ <color>
+ <red>220</red>
+ <green>240</green>
+ <blue>30</blue>
+ </color>
+ </property>
+ <property name="font">
+ <font>
+ <family>Zero Threes</family>
+ <italic>1</italic>
+ </font>
+ </property>
+ <property name="maxValue">
+ <number>7</number>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Coarse Ratio</string>
+ </property>
+ </widget>
+ <widget class="QSpinBox">
+ <property name="name">
+ <cstring>EBS4SpinBox</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>210</x>
+ <y>20</y>
+ <width>40</width>
+ <height>21</height>
+ </rect>
+ </property>
+ <property name="paletteForegroundColor">
+ <color>
+ <red>0</red>
+ <green>180</green>
+ <blue>0</blue>
+ </color>
+ </property>
+ <property name="paletteBackgroundColor">
+ <color>
+ <red>220</red>
+ <green>240</green>
+ <blue>30</blue>
+ </color>
+ </property>
+ <property name="font">
+ <font>
+ <family>Zero Threes</family>
+ <italic>1</italic>
+ </font>
+ </property>
+ <property name="maxValue">
+ <number>7</number>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Coarse Ratio</string>
+ </property>
+ </widget>
+ </widget>
+ <widget class="QGroupBox">
+ <property name="name">
+ <cstring>DetWaveEGS4GroupBox</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>280</x>
+ <y>240</y>
+ <width>180</width>
+ <height>80</height>
+ </rect>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="title">
+ <string>Detune Wave EGShift 4</string>
+ </property>
+ <widget class="QSlider">
+ <property name="name">
+ <cstring>DET4Slider</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>60</x>
+ <y>20</y>
+ <width>70</width>
+ <height>19</height>
+ </rect>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="cursor">
+ <cursor>13</cursor>
+ </property>
+ <property name="minValue">
+ <number>-3</number>
+ </property>
+ <property name="maxValue">
+ <number>3</number>
+ </property>
+ <property name="pageStep">
+ <number>1</number>
+ </property>
+ <property name="value">
+ <number>0</number>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="tickmarks">
+ <enum>NoMarks</enum>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Detune</string>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>Attack Rate of the operator 1</string>
+ </property>
+ </widget>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>DET4Label</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>10</x>
+ <y>20</y>
+ <width>44</width>
+ <height>24</height>
+ </rect>
+ </property>
+ <property name="backgroundMode">
+ <enum>PaletteBackground</enum>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="frameShape">
+ <enum>Box</enum>
+ </property>
+ <property name="frameShadow">
+ <enum>Sunken</enum>
+ </property>
+ <property name="text">
+ <string>DET4</string>
+ </property>
+ </widget>
+ <widget class="QComboBox">
+ <item>
+ <property name="text">
+ <string>Wave1</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Wave2</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Wave3</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Wave4</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Wave5</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Wave6</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Wave7</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Wave8</string>
+ </property>
+ </item>
+ <property name="name">
+ <cstring>WaveForm4ComboBox</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>10</x>
+ <y>50</y>
+ <width>80</width>
+ <height>20</height>
+ </rect>
+ </property>
+ <property name="cursor">
+ <cursor>13</cursor>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Wave Form</string>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>Wave form 1 = &lt;i&gt;sin(&lt;b&gt;t&lt;/b&gt;)&lt;/i&gt;&lt;br&gt;
+Wave form 2 = &lt;i&gt;sin(&lt;b&gt;t&lt;/b&gt;)*abs(sin(&lt;b&gt;t&lt;/b&gt;))&lt;/i&gt;&lt;br&gt;
+Wave form 3 = &lt;i&gt;if &lt;b&gt;t&lt;/b&gt;&amp;#060 pi then sin(&lt;b&gt;t&lt;/b&gt;) else 0&lt;/i&gt;&lt;br&gt;
+Wave form 4 = &lt;i&gt;if &lt;b&gt;t&lt;/b&gt;&amp;#060 pi then sin(&lt;b&gt;t&lt;/b&gt;)*abs(sin(&lt;b&gt;t&lt;/b&gt;)) else 0&lt;/i&gt;&lt;br&gt;
+Wave form 5 = &lt;i&gt;if &lt;b&gt;t&lt;/b&gt;&amp;#060 pi then sin(2*&lt;b&gt;t&lt;/b&gt;) else 0&lt;/i&gt;&lt;br&gt;
+Wave form 6 = &lt;i&gt;if &lt;b&gt;t&lt;/b&gt;&amp;#060 pi then sin(2*&lt;b&gt;t&lt;/b&gt;)*abs(sin(2*&lt;b&gt;t&lt;/b&gt;)) else 0&lt;/i&gt;&lt;br&gt;
+Wave form 7 = &lt;i&gt;if &lt;b&gt;t&lt;/b&gt;&amp;#060 pi then abs(sin(2*&lt;b&gt;t&lt;/b&gt;)) else 0&lt;/i&gt;&lt;br&gt;
+Wave form 8 = &lt;i&gt;if &lt;b&gt;t&lt;/b&gt;&amp;#060 pi then sin(2*&lt;b&gt;t&lt;/b&gt;)*sin(2*&lt;b&gt;t&lt;/b&gt;) else 0&lt;/i&gt;</string>
+ </property>
+ </widget>
+ <widget class="QComboBox">
+ <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>
+ <property name="name">
+ <cstring>EGS4comboBox</cstring>
+ </property>
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>100</x>
+ <y>50</y>
+ <width>70</width>
+ <height>20</height>
+ </rect>
+ </property>
+ <property name="cursor">
+ <cursor>13</cursor>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>EG Shift</string>
+ </property>
+ </widget>
+ <widget class="QSpinBox">
+ <property name="name">
+ <cstring>DET4SpinBox</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>140</x>
+ <y>20</y>
+ <width>30</width>
+ <height>21</height>
+ </rect>
+ </property>
+ <property name="paletteForegroundColor">
+ <color>
+ <red>0</red>
+ <green>180</green>
+ <blue>0</blue>
+ </color>
+ </property>
+ <property name="paletteBackgroundColor">
+ <color>
+ <red>220</red>
+ <green>240</green>
+ <blue>30</blue>
+ </color>
+ </property>
+ <property name="font">
+ <font>
+ <family>Zero Threes</family>
+ <italic>1</italic>
+ </font>
+ </property>
+ <property name="maxValue">
+ <number>3</number>
+ </property>
+ <property name="minValue">
+ <number>-3</number>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Coarse Ratio</string>
+ </property>
+ </widget>
+ </widget>
+ </widget>
+ </widget>
+</widget>
+<images>
+ <image name="image0">
+ <data format="XPM.GZ" length="350691">789cedbd5b53144bd7b67bfefe8a27de3e7b63457f32d9a8f1c53a000441146437d9ac5807dd08229b092a0aba62fdf7afaa725363648edc675655337d2ad23467fb6853787be57d8f91d5ffeb7ffe73fcf1c37ffee77ffdd7f787c9c397b3ff9c5d4ebefde77f3efdb8bdfdf5fffcbffff7fff75fffbdf0f2f57fe6975efce7af97d5f8efffebbffefbece63f67ff192d4de65fccbf6ed697f5fae5bc5c4ff97a81ada727cd7a2ad66713b15e986b5eff9baf5ff15fff42acf9ebfbf5fad5bc7c7d47acf9ebc77c7dc6d75bcdbafdffaff3b578fdbd5c4f9af5295b2fbce0af2fca357bfda95ebf5e90ffffb772cd5effc9d6f2ffbf2cd7ecf505be5ee0ebe67ebd3e93bffe5caed9eb577c2d7efd2bbe7ec5d6679fc47a917d3fbeb0f5e2a745f6fab9582fb1d7f9efb734c75fbf106bf6faa8f97e4c16e4fd1ab3b5783f9345be16efe79358b33f7ffa95aff9fb9bde89357f7f23bee6f7ebec4cacf9ffff235b8bf7339de3eb45b61effd5accfc4fb1bcff135ff7e4cfe666bf1fe26afc59afdfe933dbee6ef6f3227d6fccf7fc9d7e2fbf95dacf9fb67f7e36cf105fff5db6c2ddfef2a5ff3f73b5d93ebe6f71b377fffa7f2efcff8855c37af8fced85afc7d189fca357bbf6ff85abcff75b1e65fdf0e5f8bfbf95baed9d7f38dade5fb5f916bf6fa5f7cbdc85f9f976bf6fa2e5bcbafef41aed9f7f3335fbfe6af4fe59a7d7dcdf77ffa497e7dc772cdeecf115f8befdf2fbe165fef9358f3aff73b5ff3af77f251aed9af67eff793f87a27c772cdbe9e1f7c2dbede47b966aff3f7b3f89aff7eafd85a7c3dd36bb17e39dfbcfe82af3fb1d7277f89357b7d7c58afcf16c5d737fe5bacd99f3ffaced7fceb1dfd146bfefe3ff1b5f87a7fca35fbf3aed95a7ebd5fe59abdbecdd7e2ebfb87aff9d737fd25d6fcfbb7c7d7fcdf93e9a158733dceb3b5fcfb3de26b7e7f26e275713fde8935bf5f6b6cfd728ead478dbecee4f77ff48f58b3af677cc0d7fcfe8cf7c59adfbf65bee6f767c4fefcf6fb3f966bf67e2ef99adf8fc97bbe16dfef53b1e6f7e396afc5fdf82cd6fc75f6f57d92ff1ebce66bf1efd784aff9fdd97d106bfef5f3df4fdcaff154acd9ebd325b67e39c7efe78358f3fbf95baea7cd9adfbf978bfcf51f72ddbc3e6ededf27f9f76dbc27d6fc7eeff2b5b89f6fe59a7d7fd6d85adcdfd1a15cb3d7e7f85adcdfcf7c2deeefbd58b3fb33d9e26b7e7f279b62cdefe784ade5fdbd916bf6fd78c3d7e2dfa70db966af1ff035bfffe305be16f7fb4cacd9fd3abb666b71bf475fc49a7fbfbec935bbdffcfdc8fb3d91ebe6f511bfdf2f5ff3fbdffc7bf5e95cdedf0bb966ef679badc5fd1defc8357b3feff89adfdfd1095ff3fb3b5a146b7e7fbff0b5b8bf5762cd5f67f7eb5cdcdfc9915cb35fff92aff9fd9d2cc935bbbff77c2dfe7dfc20d6fcefef265f8bfbfd49acf9bf8fe76c2deeeff842aed9fdbbe36b7e7f473772cd5e5fe56b7e7f474b62fd8afd7afefe5f7ee2afbf126bf6fab859575f8eb8df1fe49abddff77c2deeb7785ddcef3db1e6fba9177ccdeff7e854acf9fd3b676b79bfefe49addef55be16f77b59aed9eb277c2deef748acf9fd3ee36b7ebfa71762cdefef17b696f7fbb35cb3bf9f577ccdeff7f852aed9fdbbe76b71bf57c49adfef0dbe16f77b5dacf9fd6efefe9ecbbfbfe34dbee6f773bc25d6fc7e6ef3b5b89f1fc59abf7eccd6723fbb20d7ec7e4df95adccf33b966af3ff2b5e0d75bb1e67afec0d78267fb62cd5fe77f9eb89fd32f72cdeee7225f8bfb792dd7ecf51bbe16f7f356acf9fdfcc1d7e27e3e88357f9ddfaf57737cfd975cb3dfbff97e5cc8bfafe3b762cdefd727bee6f777bc2ed6fcf5f76c2defef815cb3efc7df7ccdefefe848aed9fd1af1b5b8bf1762cdefdf2d5f8bfbfb4dacf9eb2b6c2d797728d7ecdf5ffe7ee4fd5d926bf6f5f3df5ffefbfb8f58f3fb75c9d7e2fe9e8b357ffd89ade5fddd946bf6eb77f97a91bfbe23d7eccf6b78797121f74fab6c2deee7f88d5cb3fbff92afc5fe6145aed9ebcb7c2d78f65bacf9d7ff8bafc5bfb74f62cd5fffc9d652ff8f72cddeef0fbe16f7f341aed9eb5ff95adccf3bb1e6fafec6d7fc7e8eefc59abffe9dade5fd9cca35bb9fd77c2deee7955cb3d7f99fffea355f3f8af5eb8566cdefc7ab4ffcf55f62cd5fe7f7fbf51c5fefcbf559bdde7d188faa31a9c7785a8d3339f0f5a91ae7cdf8d48c8beac7fafa0cc66533be807135beae7e64a3bd6ef8b845835dff80b91e77d5b847e3ab32bef1714fccedf53d79e4b872bc0f36f0457dfd62a8f70b8f3b30be6af38371e0eb079f7f92e351193f9bf9a9fa511ff8fa558ddfd55846e3b73296c72bd5bcd2ccf5d0afd56abce1f36af53338d6e4581daf37638d0f76bdadc64633de8e37c17837dee26373fcbefa518c0fd58f626c573fb2b133fec8c76ef5231bbbe3bd6aec57e3a0fad941f5b37a1c36e3ef6a1c8e8faa715cfd78ccaf93f169355e8ce7aaf1d798250cf3955a47d5981874bcc007d3b0aae37370d51afe42e8f8ba19577cd4d7a245c74b52cbe2aa35fc95cfdf8c3afeaafcbd358df6eff9f76afe8ee6a10cfcbe685d9a865daf6240adea9749b73f14bdfe0083d6ee4fa0d9f632e9f6179897adba5de6ba5507be5e4acdaada5d95f31a18aa7637d080dadd04e31dd02fd3edab667c90fafd58fdc8b4bb2db55b5faf1bfd4aed8ec652bfec3a6663341a1fd703e8f7a4d6ef6802198c755bfd179abf6749fcbd5106d3ec8dc65d31eeadfc2dc55de7359ac6cd45d8ac5f261efbb3b84f0eeb970f87579239bc0a38bc86b4fcd68bc3ef0c1c6e19bc2d19bc8374bc8775cc35dc7298e9f8a8d1f119d2316370cd5fbc8f9e12fc1557387faf02f87bdbe899e2afdf3e3a84bbb332caf1388ec3aa5e87cae1979e1c5e431c96da1d7d42ba5d47bab571f815e030de436f3743dd431f687be80382c3c78a7e4f6afd8effe20c56f6ce0d7fa706fe9e49fe5ef0e1e62f1b66fede480ef3313ab7f297f2bd29eccdcad98c7c4ee1716e0e9b354d7398d6734e0eab5ed8cde137c538bc4970b8d5f107ca0b8f2e342fac73f850e130d4f069bd97660c46fb68a9e3d167037fc570f3f712f1f7527298e6ef0dc5dfd1a5731f5d9abba5aeae786cd7ec3752ab6e16cf1687578b7318efa10587b78117f6e430f7c21587ab9fb51c3e02faad46f5b386c382c1ad766bfe36da95d7e84b107f3f17e4afddf7266832859fae11f3fb26ebdded8be3f2693f4f5c8ac3cbde1c36675b6f481d8772f82de0709b47630eb779b4be9f665a661cde55386ccbb48e140ebf900c263268ace328fe5e2afcd5350cd97ba3d6922cfc2d9533f77dc5f1d85c470acba84339fc3599c3b67a929bc3cb091c7e63e430ae27d938bc5129b5e5f07b650ffdcaa2dd8f0a83f72483150eb7faad7cb09a657106f7c0df9b40feda7d6fa43e93f87a153832f0394ae729bef8b97058bf6c1c5e437bea35c461a1e3b7da7e1a7258f7c2ea7efaa3d432ad633b878f21871b05dbf8bb5084bfaa9615fed63a26b4ecc7df30ee0efd4ae171ee7c7af638bc12c461ba2ecc86a92ebc29f7ce2a87615dd8b08756ea492d87a17e0f150ee34cba65703c7fc5f8cc751bc55f836673f0d79bbbc99c8d1d115c0ed4b7cd17fb7b62dcafd53787ed3d5add73b8ebfeac53c8e028fe0a4d5f6a0c2ec5df5c7973962b632f47191ea7f8e2d9e5b02dc7d2ebc23939dc537f56a3e096bf539abfa32fdefcbdccc5dfd125c18b28f67a73b72be6063039e0df84540efb7b629f7eadbe39acd685750eaf067058d5727c9fb4bb3f8bae0babfd59722f0d183cd5f95beb1868d9c6dff300fede04f2f71bd7738aefcdc3d95a5fd709733e3e97e730ac13fbd788f37218f7738841ebb65f0efbf467e91cf6eccf427561a53f8b3158f2774af8df6aaefecb0560700c7f6ff8f58f1c88bf58bb1a7fb3fadec131d793c99e3c4ecda76797c3aef34a2e0ef7d59f65ad0b2bfd5958c798c1ad8e29fe321d87f197d631c1dfbaee6bde4b1bf8ebe77ba3789bc4d9883981c77ebe38369fb6f76bf5c561f3fed9c4e1b0f34aa5faa4b7b53d74407f16d22fe8eb600c6ef98bb44bf07774e3c55f311add8e6e75feaaecc5fcad562d87b3f8de99e36eba3ff665f15039fca471b88f73c3e11c76f5676d7bd6963cfbb33883257f990f8ee62fac27293a0ee3af602fe26f48ee1cc65d1b274b8d00bf9c81c53ebef8dfc0e1aece2be5e9cfdab7f467712f0c187ca66bb7087f6f2aaddee8fc959a0de5af712f8cf89ba4b7d175de519ec7811c0eab13cf16877dcf2b9933699ac3b02e8cbd705c7f96ba97ded332ad6a8cfe51ebc282c12d7fb52cab0c7f999643f99bc1f75ab9dbf748e771190edf6b5acdc7e1476f0eff0ae270d93ee9f8fe2cf5ac925e176efb3ae83df411e4306770287fab31ba93fc35e8b6307f0b7137376f0b73d9cd61378b63fbb5d238ecfb1c8f1ccfd14a39afd4557fd6aea33fcbf0dc8ee6c9779f55fe221d03fed63a56b4ecc75f7141fe925956347f6797bb113c4e64b14f3e1ddaaf350c0ebbce0d77d5271dd39f15f9dc0ee18375fe8ae1c1dfcb02fc8df0bdf1ecb5f2f1aad09c97c7397cf173e270f77dd221fd59199fdb2118dcf672b45aaef9cbf7d2247f1b1dfbf3f79f48feda73672fdf9bc6dd01ec97e3ebc7b3cce12ece2bf5d59f15fddc0eb52edc28f80bd42ee6af6070ab5d7ffe8e6ecbf0378fefed94b7095c8e63f14c7358efcfd2f51c7e6e7828fd59999fdbc14f17827d34e66feb831dfcbdf2e12fa5e3d13964af377fc37d6f2fbc2dc0e5705fec9b4f3f570e87f549977f7e56d6bab0cae004fe3603f277746be2efe8b21ae75cbbe76c74c1df6cdc0dbdbae7b1c1177be9ba24877d9f2f3d84f34a399f9fa5d79642ebc2fb745d583298a82579f2b79a47f79a9623f90bf6d309fc0df3bd7d71370393c37cf1d0386cceb15239dc779ff446d4733ba2eac290c14cb336fe8e6e22f90bf44bf1b71adfeb61d76b7cee1cc5ddf6fa9a7984f3394edf7f381cda27edd79f15f7fcacf4ba30795e989f2ea43cf039d631d372187f47b788bf0a870dfc8dc89dc37d6fdf8ccdc8e2305fecc3618ac7dd71f871acd6855d1cced127edfb3c69a53fcbf3f95905ebc282c12d7fd9206a473790c1b56e15ed76cbdf788ddab99b9bb7615c0ee471188bd5fbe8e470cbe2140ebb3269a1e7c70c1ccedf271d53170eedcf32d585bdce0bab0c16fc6d7b3988bdf49d377f6fccfc1523077ffd7c6f563e26e451e579ec71f5c3613d8ff6e570fa79a5b43ee9a1d6855957e5b75ab97a1f16d83bdfc01c7a06f93b4ceec6f3385cdb2975e2f4734bf11cce715ea94c7f96fa39c3617561fc790e3bf17561c860c85face350fe4a4d97e6af97ef4de42cd355be3999cfd97cf1b039dc7d9f745c7f56febab0e39c21d3efe87bbb8b4ee36fb5aa86e06f331e92f84b6754e1ec9d2dee66e1b11f8b7be1b0bb472becdc70d93ee91cfd59f47961575d38f839d22d8343f8ab6b99e958ad0327f2d77a15f2bd7979ebcfe5bc2ccec16173df74c8f9614ab7b99fdf31dcfeacb8cf73a09f234dd593c42edac95f9c4107f0b71aa31f82bf7c56f88b384cf2c1cd5f2fdf3b5beca5599c8dc3963a715e0e634de77d7e47cefe2cfd8ae1707a5d38f039d2a39f82c1b80f1aea787423f8dbe898e0afd0b291bf42cb06fe92fb699abb5eb97351eec68e823c2ec2e196c7311c76d786bbeb932ed39f95b32e1c9847e3e7484306575afd02b47bd1ea963158e816ee9d511f96c6df46b706fe6aba2dc7df7406e6ba4afae230160f9bc3c3ebcf2a5517b6e5d15e7561916409fe6a3a061e98f960177f0d7be94b65f4cddf92bccdc7e5ccbed871a573d8fc390f5d9d579ac5baf0b6b687861cde5538ac9c53c20cd6f6cefefcd57b2793f8ebaefd7af8defe995b8ec95ebed8df1377c8e19ce786f3f467755517cef51c69744e897755821c3a99bf3f0af3379ebd43e06e1c8fff3d1cb69f573265d2a9fd592b19389cff39d296734a6d9625186ce32f553b1add2a39f483ba776ef51ac5dfb4ba6f77cc7d34cc5d3139473e1dcae1d8e74b77715e695875619f3cda5617f638a704184ceb18d68195bdb4a801330ef7c35f4f36e5e16e57bacce08bb37238bc4f8be670cef34a71fd59b1cfcf32d785d5e748c7d7853f00fdd29f2f7c40d5931a05ebd9d50d1c50b715757df8fb03d481d9f59483bfd973e734cec6ce65583c040ee73e37ecd7276dcfa4edcfcfcaf1dc0e3dd78a7f8ef487315d1736e6d19cc17a2d49a9038feea82c4be32fd2b2d4b181bf48cf347fd372e714ee96bed2789c89c3963a711f1c4eeb934e7d7e56177561f373a4ed79b4a52eac33b8b9ee68fed6cfe148e5afd46d4efee6e36e6ede76c9633a9f1e2a87cbf549f75317863e18e75aa6e748b71a863a0e3ca7646270187f9b99d632ccb32e752d77cadfbeb99baad3085f5c8cc37e3d5af1e795faeccf4ac9a3d7910f56f7d0c207632f1c9247efa9793463b01f7fdb3e6831806e1f34feb639f430f89b9fbbbfaaf19b98cbf03894c5c3e77077fd59ddd48543cf296d25e6d17b2d836dfc5533e83acb825aee96bfd1b9f310b91ba3d5e7cae161f467611f6cf6c22a877df2e82dd0d3117f4e695fad2701065fe03a70cde096c36efed2e7906add2a3974d7fcb55f3e9ccd39d2791ccb61c0e39e38dc659ff430eac221e794740ed379f42ee583d50c1a723892bf783fdd0f7f678dbdbe5a8dcca7a3386c3e3f9cc6e1f43ee9e1d485a9cf17a673ac02e7945a0637ba6d2e95bfb00eece0ef03caa135fe8e9eea11c1df98ba6f1c77859fed6ac4f1b82f0ebb7aa52187bbee93763d3f2bac2e4c9f17a6f6d3e6734aeb017561571e6d3ca7a4fa6095bf58c75a1fd683aa65c4dfd607ebf5a4a78cfc9d75df1bcbe2ec1cf6f4c2e11cced9271dde9f155317f6798eb4f99c525c1eade658db328fde467be83d0383257fed7d58d5a075ebe22fd26de7fc1d127763781ccbe2ae385cbe4f7a16eac2b6734a74a665caa3292fbc3d26f268d507a31c5ad731f2c1c6bdb4c65f7d2fdd397ff35cbfc130d5927e29bfae3c8bfbe3f030fab3d2eac225ce0bab7561771e6dab0b5bf368de93a5d481a17615fed20c8ee3af91c1d1fca5afae72e6aef2ea500e7f25eea30f87cdcff148e3707c9fb47d4f5df6bc703fe7941c79f468b9395d883268be97bed374ace4d03e7dd0958ed51cba6bfea6f1d6c5d9d8b934879d75e20173787875e1f43c3aec9c929e475b3e4f8933f80e67d040bb2b5cbd66fefe003ef801321868f74968d7fdfcab0ef8db3763cbf8e2621c56bf6f811ceeb73fabebba30ed8543f3e81dff3c5a66d188bfd45edac8df66a00cfa8781bf48cb684f1dca5f9a3be9ec2dc9ddbc3c9e4d0e97e8cfca5317cef11c6955bba63c7a73eccaa3f5734a641e3d5a463e98f6c0a80eac303888bf4a1db80ffef6cdd4dcbeb8270e7b30b8cffe2c9ff3c2b1cf918ec9a32187a94cebbd671ebd4b675ac207dbeac0e0129996bd0e2cfbb04c7be98cfc4df7be7d70979a6783c326dd96eecfca5f17eefa9c52a13c5a3098f4c01a7f55ed2a75605db3741f5649fe96abf7fe4e18e57c713a87ed7aee96c343a80bdbf6d3360efbe5d1f439a5843cba51f01df4c1a48ea10f56753cabfcf5adebc2397684fc39e1ded89d4f97e5707ffd59c338a7943b8fa69fd761c8a3a10fc6daad2e9843dbf9cb7cf093c6e150feea1c0ed16adedc3985b9e5989c83c331e787d3ce2b95edcfeaf639d2ae3c7abd9a5b2d631ffc966470521e8d184ceca5893ab0aae3079467fdb06559b0a69499bf61ec2dc9db5c5cee8cc306cdda3f6fc997c3fdd6859f1c1c4ef97c61571e6d7f5e478e3c1af960771d186a3784bf2d87690617e2eff0b89b8fc7b6e78074cfe1dcfd59fdd785cbe5d1aa0f161cb6e7d13b441e2d2fc960d08765cea12bc5527b69b50e4c6ab977fefaf8debe469e7a71971c9ed5ba70be734a741e4d69b7681edd5493d0deb919047f15063fb8ebc06efe6abaed83bf7d70370f8b8b71d89e490fb23f2bee39d265cf2985e6d1b41776e4d1d807933a4675606d2f4df66199f82b736890773a199c83bf79b85b569779f2e959e6708e3c3afc39d279cf29d9f268acdd4d42bb3e7974bb87de933e7895d0ed0a1f9407c6fcad3db0ea83511fd640f91bcbca5f9e73372cee9ac3ca79a541d68567258fde1ac33cdac460358fdec57974eb83317f714f2559075673e827cf1c3a84bff8fc51d7fced6faf9c964f9bf9fb55d5a983c3317dd265eac2662f9c7a4ea9af3c7a8bc8a35b1f4cf755127974a360671d18eab7d1ed83e4b095bf80c3b3c95f5fde96e0f2a039dc635df84f1e8df6d2b29a7447f2575cb48e8d756055cbbdf0372e771e4e76d50b870d3eb8447f5689ba70ff79f47ac63cdaf5ac1d82c1d510fc5d51194cf097a803d7ba6d2e2b7f916e7d9fff9c83bf7d703785c7dd70b8bd140edb33692f0ec7d685fb38a754328f6e19ecee8f6e2f8f3c9afbe0557b0ecdeac0961cfa49db4f7bf66175ccdf61b0d75fa7b3cae1b275e1f0734a7de5d1cd25f3e84d431efdde504ba2fbb2f0d9863d85c13887d6ebc02a7f35dd62fe56e3aa1ecf90bf6faaf90d3197e1711c87dd9a861c56bf1f25fbb3e2ce0beb7974f8e70be3abaf3c7a8bc8a3df3bf3e81d2a8fe63e38b40eace7d05a9ea5665a017d583a2fcaf1b74ff6fae934ad5f2b2f87d3eac265cf0b0ff5b959a63c7a2b471ecd9e74a7e5d09a076ec60fe0838d7560c4dfe920f89bce5d136fcd43fff5b3c7e17c7dd25dd68567398f763daf43c9a3476b80c1ab0939f493964323fe367a0ee983ee86bf7df3369f2f4ee170c9feacf8ba70a9734af1cfcdea278fde26b4abf665ed021fbc8a72e875af3a30e4707b19f91b5c07ee8fbf6ece868e1c3ccec1e1e1d685cb9c53ea2b8fa67cb09e476f8d716f969e47ef1079f46e9b476b3e7855cba129fe0a3dfbe6d079faa0ff0dfc2dc1614aafe11cce53178e3d2fec3ea7348b79b4f0c1308fc6b524da07ef100c86fcd57268b20e1c91430f82bf5d72d7cee37f1387cbd58567318fde0ccca3d9e719127d59a3b71a83dbabd6f18685c106fe6a39f415e5837be16fdf5ccdc7e2f0fa7004877bad0b779f47e7eb8f6e7db05f1ead7f9e619b47abfb672d8fe60c5e953ed82787ce5907f6c9a04bf3d72f5f2ec361bb2f1e10877bab0bcf721eddea185fee3cdabb2fcbe083c59e9ad671621df819f0f78d65cc2287fbae0bfb9c53ca9f4777d31f8d2fbd2f8b69d7de976539db20196ccca18d75609c436fba72e8a03ab07e95e56fdfc3e68be3394ced5ffc189c5a17f63d2f3c0b79f44a24874d3e789d7b60d5076f3afbb2a48e476b6d1e8d188c7368531d58e8f949f3c1441dd89967b9faa087c15f1b735d63381c8ee8cf4aaa0be73ea7d46f1e8d7df04b52b7561face4d16a5f96ae5d7b1e0d196ccca19bb1217368da07137560a36ed3f8eb7efeb33f7fbbf7bdcf80c3cf328f2effbc0e735f96398fd66bc2641e3d5a430cc639f4baa663671dd89d4307f1d7cee0d2fcd579fa2b70cecde3b21ceebb2efc5cf368bc7fde1c533561f8bc2ccc61675f16f2c142b758bb26fe8af1a4f9e05275e0e7cbdfee38eccfe0540effc9a3615f16ceb4de4afeea7d59ef893cdad2972519bcea9d43b73e58d771de3ab0fd2ac5df34eefaf1b82487c37bb472d685d3cf29e5caa387f4bc0e535f16a55d675fd6684df465d5671b341f4cef9d4d39b481bf2a87fff03798c3749d388ec343aa0bcf721e9daf2f4beca7c3f368b5a68419dc5efa5e7a63e49143a34c4bcba133d6814bf0373f77dd3ccec1e19c7dd2a5eac2cf338f8ee8cb6a384cf960d339e16db17f1ebda3fbb2481f6ccaa1b76272e8c83ab07f1fd673e2afce633f0ebbbdf0bf398f8e797eb47a46298ec3261f8cfbb2b688fdb4c9076bbd1d061fec9f436b5a463eb8441d98fafca314fe96f1bdb3c4e1f0baf090f3e81c9f6768f7c1348763fab2b694fdb3ee83893cbaede7403e386b0e0df5abe5d0b9fbb0fae0afed1a2687a97d4d790ecf521ebd5c3c8f36f565ad3b7db0e470bb97163ae69fbaa2e6d0745f251b5b061dc3eb4af5c105fbb0668fbf348f5333e9e1d48573f64777fffce8df5e1c76e4d1a3f75e7d59eb63ba2f6b53d3aebe7fc63ed8b477de90fcd57d700c7fc373e861f037e54ae730fd75e5e4f0f3cca3c3ce0917c8a32b1d0bfe5673b5a27cf0165957aac6e883d0f0e89db92f4b61f03072e87f137f6788c383cda3533ecfb0e4732b258315ed6e920c86fcc50c967934753ec9e2836d39743db61087373baf0397e66fee2bde07fb73d89d49d33ed8cce190734a25f2e8b0e747e7fd3cc3b27d596e1f6ccaa35d3ed8c65fdd076f41fe8ed17924870f0ead03bbfba043f91bc3cb30ddf5cd617b261d5817a6f7ce3de6d1f19f67989e4787f960bda732248f6e7d3091474b06eb7be775e483b71c3ef8caa8dbf83a70b8071e2a7f53599c8fc3cf338ff6efcb72e7d1e9e784fd7cb0df39619dc1c007d73a960cc63934de4bb71cee3387ee8fbfa9a32487699da6d685879d47cf5c5f16d6ee689beecb1a7da07d709b63517d591a83d7bd72e8ad666c020eef44e7d0fa95a30f2b4e7f5d5db9389c338fb679e1d279f4733e276cf0c1a38fb40fae742c18bce5d23162f0aa570ebd65f7c1388796233d87ced587d53d7f63789cc6e161e6d129cf8feefb9cb0e9d9d1160e5b7d70d6be2c830fdee03eb8cda14dbad572684db7fdd48187cbdf1416fbf8e0300efb31b88b3cfa19f665d53e987b61970f36e5d13a83770c0c6e9f0fadefa5dbba928dbff5b59b94439baf6ef95b7af87138571e6de7705a1eddfff3a367a22f8bf0c15b3a87b90fe6daa5fa39027cb02b87de4239b4d90797c8a19f0b7f4b7278f87974dce7193ea3be2ce483b7aa15e983ed7d5980c12ba40fc639b4aee52d8dc3dde7d021fcf5e17057a35b0efb7be12ef2e87f415f56cd5fa05d4b5f56ab5dec835bed527d598a0f5e27b51b99433763d7d307eb57780e4df561cd0a7fe3384c7fddfe1cfe1dc1e1c83cdaa3269c96470fba2f4bf7c18a8e9d3e78b4a7d784ad3e98ae29f9e5d09b940f263d70d8732973d481f3f137a71e7372d8ee83c37ab372e5d1cffd9c70900f36ec9fb10f167b6894479b7c307b5e16c16091439b7cb09e43eb0c2e95439bfefec6d681877285efbf0791477bfbe02ef2e8eefab2cc0c0ef4c18d96091fdc7a61c20783be2cc5076f187d709b4353fb69d5070f2d87cec3df52ba1c425db8ef3cbacc39e15efbb25c3eb8edcbc23eb8edcb32f960c6e15abbcc0b1b18eccaa1437d703739f46cf2378ec343cea39f535f56d2f3b25c3ed8d19765f1c1ad8e810fa6750c7db03d87ded17cf0ee48ff373c2c87eea60e5c5ae75d71b8a33c3afb39e1e1f665f93d2f2bc207cbfdb3a70f6ef6d0dbad76db3c1a31f881f0c15b8476879a43cf2e7fbbe7b0baeff163b05f1e3dfb7d59f61ecbe03cdaea83b7fc7d30d597057cb099c1a67eac96c3be3974a80f4ecda1fbe76f1e0ef79547fbd6844bf565f5f9f90d361feccca3c1fed9d19745fae02dd507ab79b4d507fbf4636da11c7a4763f0aef2ef75573974770cde57e66e193c8b79f4acf465653c9f2474ccb4ecf0c1645f16f6c14cc77c2fbde3e983db73c13e3e58d772a91c3a471db8eb7d76ff1c0ef5c1e979f490fab23afe1c439e477bf860a65ddd07330e47fbe075c2073f871c3a1f774d73571cee3a8f9ed5beac5e3fc7d09447eb3e58d331df4b2b3a8ef3c1743f16eeed70fbe0b47ee8eeeac025afa1e6d1b3dc97e5f6c1e6beac429f6308f6cf1e3e18ed9f3755ed06f9609f7eac701f5ca61fabdb1cda97bfe93cee278feec307e7caa35d3e98eacbeae47c12e1830fc2ce27d53e58d531e983378c3e18f763997cf06e011f6c7f2e47a91cba8b6be83e7856fab2723e2fabe8f924b17756f6cf313e58fbdc15c5070bdda6fae0eecf050f91bf65399c9e473fdfe765cdc0f9a4001fbce7e183d79d3ed8de133dc47eacf01cbaabab641e3df4beac7fc9f924da0783fdb3d90773fdfaf9e0d19ad507d3fd58361fbc3bf2f3c1faf568d46abf39742a7fe338dcbd0f7e1e7d597d9f4f8af0c16c3f5dfd48f665197cf08ec307d3fd58ea5e5aedc7a2b5ecf2c1e6cbdc8f552a87eef29a9d3cfadfe183339e4f82fc75fb607dffccf268a28e247d30e4b0d5076f691cc63eb8bf7eac6e72e85cfc0de7b07f1e9de283cd79b48dc1cfe17c52bc0ffeadf860ace5081fccbc30a9e3781f0c194cf9e02d8dc33e3eb8cb7eac61f3d7a6d1a1e4d171cfcbca793ee919f9609ac172ff1cec8347ef9c3e98caa1751fbc63dc3b0b0ecf6e0edd1f7f4338ec9347f7d397d5eff9a4923ed83f8ff6f7c15b313e98e95832b8bc0f1e4e3fd610181ccae199e8cb4af0c13ee793c29fd3e13a9fd4ab0f1e6d0bfefaf9e04ab16e1fbc6ef1c1e67eac56bb43eec70abffae570ae3c3ac607db185cfa7c520e1f9c723e29d3733a2ab5ae600647f9e03db30f663af6f0c1a63c4bf5c1433a97347c1f6cd2688e3c3aaf0ff665709a0f8e3b9f34d8e774b4da85fcad561fe37d303c9f14e583057ffff8e06e383cdb3ed8f77cd2b37e4e87cd07b73ae61e58f3c182bf86bdb4af0f5e97e792d27c70d7fd5821fc1d128373e4d1bdf9e09ac3057df08c3ca703ec9fdd3e98dc3f8b1ad21f1f1ca9d1fef9ebcbe07fa70f9e89e774601f3c3aa887db07574476f860a8e3d161940fdef2f6c198c3213e38e55cd26ce4d0268d0ed107e77f4ec72cf9e0a8cf110ef7c1eab9062a8b76f8e08d3f3e185cfd7338970fb673f88f0f2ef839c2d00773061fe83a863e18ea38c907af231fbc31533e783672689b4667da07677f4ec7507cb0775f965e47f2f1c170ff0c7d70b5f2f5c1b56e7d7d301b43f0c125ce25f5cf5f5f06fbf8603b8387e783752dff7b7cf096c907d33a1eb00fa6fcdb1f1fdca50fc61cceed83733dafb25b1fecd197c5758b7c30f4c2361f4c9c69d0191ce283690677ef834d7f4f67eb5cd21f1feceb83cd0ceece07677a4e478c0f067b69c05f82c17f7cf03019fcc707977a5e650f3e98ed9d8d0c4ef0c14606af230ec7fbe01dc9e13f3eb86f1f3c6bf5e0217c6e4386e774d87d30d432d0b1d307b3cbdb07af7bf9e0dd91adb7e34f3d384ca343f1c17f3eb721a70f3ea074db6857f297f6c1dafe79bbdd3f7bf9e075a4dbad3ff5e019f4c17606fff1c1057c30d6b1dc4b031f4c30784bd531f2c17b057df0cec07c709b6f0d9dc3213e7826ce077bf7453f4b1f0c744bfa60acdb3f3e18cc2518dc2f7f7d19fc1c7df010faa20bfae04aa907ad96f95e9af4c192c1a40f1e1d66f3c14f03f3c1b3914797caa14bf860fff3c1cfbb2fba331f0cf9ab68b79c0f66e38f0fee9abfcfcf070fa12ffadfe48399a6cd3eb8d5f39fcf6b706974869e174debd6703d8ff3c1457db0a25dab0f1ead0906573be93f3eb80b0e9763f0737b5ef433f0c18d7e0fe27c7045da8f82bfd0076b7b695f1f1cde179dcb07db395cc20777cde17e7cb03f83bb7e5ef4b3f3c12d7f81763d7cb0d46e791fac33b83f1f3c5c0e9765b02b87b63358bdff7e0c9e85e7453f5b1f0c7ab2541f0c396cf7c142cb257db0d85397f1c17de7d171fc2ddb8f15e883bd73e83f3e98f0c1fcda86bad57d30e3ef1f1f9c41a343e56faa0f0ecda187e283cb3e2f3aab0f6ef9ebf2c18d86091fccf81bec832187b788fdf4d07d705c1edd05874bf23725870ef4c1dee7927c7db0ae5bdd07877f6e52673e78f4b7ca60ec8399660bfae055a0db101fac7218ea76a7195df8e09279742c87cb33d8c7070fa91f6b967c70e473b246472887d67c70cbdf667c840cc63e1865d1dc07b7976470191fac6b79973338de0777974797e6b07b5fdc7f3f561f3e38e6f38307eb834747cafe39c00737da257c30d0aec907df133e1872780b71b85f1f4ce5d165bd70088fbb61705a0edd613f560f9f1fdce373b266d207b3fdf4aed107c7e5d165fbb2fae07069fea6f8609abff97d7089734933e783c1fe799364b0d5078bfd336230dc3faf4b2f9cee834d1cd6afa1e7d1dd5cdde5d0ddfb60ea9c7f5f9f1fdc890fd6f6d2561fccf8db8c3d970f66fceddc07777d3e69381cf6d363e91c3aa61fabc4b9a47c3e58e5af39bf2afab9490d7f8f2c3ef8586ad6e183a576151fac6458b13e58e730c5e01dc4dfeef268ffbeaca17238c4cba7fb60f5bebbf89be0833d189cdb073f26f860bd1fcbcb07d71ab6fae063c9df7a3ed6181ce58347871e3ed8b49f861c567d70abe5781f2cf6d434874318ece25c49ada7f3b77c0e6df6c101e7927a7c3e87d907b77b669ac158b7619f1f6cf0c10d7f8f141ffc9eda3b37d78711e983017f91761bfe36fbe79abf813ef841f3c1b39b470f91c3ddf1b7743f567f3e98cea1751ffc54e6f383fd7d30ceb31af6123eb8e56f940f869fc342d595c29e57c946880f165e38258f4eab0ba7e8dd3f8ffaf7e4d0a59f5319ee835bfeceba0f56b5ebe783bbedcbca99470f8dc161fc7de3e46f891cba8b7349713ed8d58fa56a59e5afcb07ffd686c1074b1d1f687b69e883b5bd34f6c1388be6fc3d2119acfa60315c3eb8bbbeacfef3e810ed87ebb02bfe8631b8eb7eacf2cfa92ce183b16e4d3e18f1d7ea834f95fdb3e02fd6aeaf0fde5018ecdf97a5e7d1613eb89bfee821713895bfe13ef8f76888fd58f4b9a41c9fd740f9607b4f962d87267cb0d4b1c9071f4b061f903a8ef6c192c11bc63c9af2c1e6be2cd50797cda3fbe470caf0e36f0a8373e4d0ddf56375f5790d797d705b3fb2e7d070ef8c6a48a31748b7c80703ed7ed0b4bb6660303e9f341b7d59541e3d4b1c8ed3ffece5d0fd9e4bcaeb835732fbe053a0e33d6d2fadfbe0390f1f5caa2fabef3c3a477d78f6f89b3587eead1f2bc7f33928069bf9ebe7838372e8ce7db0dff92495c325fbb29e13874bf1377f0e9dee83bbecc7eaf6f91c840f96fc3d22f8abf56379fa602a8b9e237db05e1336f9e0aefab272e4d1c3e07009feba73e8300f1c9643873e277a96ce2579f960670e7dece5834f11834f900fd6f7cf6b4cbb413e186bf72fc061dd07cf5a1edd078b87c1dfa41c7a70fd583d3da7322287c63a3e45fc853ab6fbe035e48357b2f465d179b49f0f2e9f47f7c361df3fa70c7f879343e7eec72aff7c0eab0f46fc3d42fc35f9e063a4dd533ef41cdaed8361163daf307855fa60c1e1aefab2540e877be159e070dabf036efece720e3d84734991cfa90cc8a10f481def1139f40782bf388b863e78b5b3beac127974690e87fe7b10fafb96e36f7f397457fd58f1e792929fcf91c507533974eb8369edda7c706c5f56fe3cdaac55bf3c3a8dc3b9599cbe0fa7bebe50fef69343e7ecc7ca712e29f3f339bc72e8d6071f6b3ac63e78cfe083691d631fbc11e483bbcda3dd1c0ee3573c874bcc31fcd5f51ac65f9366a3ce05133e383e871ee2b9a4701f7c2c87cb07ab39b4d02eeec79ae3634d6130e583fdfab2ec79f4ae218fa6384cfbe01c75e1740ea7b238f5cf0ee1ef9f1cba443f96d50723fe523ef81831b8d6ef82970f3e410c3ed174ece383750e6f39f2e84d4b1ead72387f1e3dab1ccec3df9c75e0b239749e7eac5ecf25555ac5dafd1bf1f708f1f718ed9d8f0d3934e583f51c5af5c1f30483b10fa66bc2d807b7671a62f3683387e3188c7995bf3fa32473cbf137e63c52a91cbacb7eacd47349461face938d4079f22069f123a16fc5d24183ca7f8e0a56abc74e4d1713e385f1efdfc385c8ebfd9ebc01972e87efbb1329d4be2ba5d46fc3d52188cf7cfc71a83edfd5850bbfafe798d6b17fbe0575e3e187318fae05279741c87756e953faf907be4e5afbd0eec62701739747ffd5849cfe7c00ce6fa0df5c1d4b9249b0f161e58f7c1e17d5925f2e8b0ba704a7f16cde26eb81bcf5f5aafb9f86bcca10d9a1dc6b9e0befab1fc7cb04f0e7d8a74abfa6098431f0206533e38ac2f2b3c8fae191c9647dbebc2cf91c3a1fc7533382b7f3b3a173ce47e2cc207f3eb80d4713d16007fb10f6e736855c7d807eb393464f092a32f2b358f2e5917cecfe1523c4e65af1f7ffbad03a7e5d0833f97149043c3bdb3ae5bf7b924dd071f2a3eb865f012b97f4e3d271cf2bc8ef275e1d9e0707efec6d681879643e7793e56a67349640e0d7df0b155cb740eadfa60c6de4542c77372cc231f3c9c3c3ab53f2b9ec3348bfbf6bdddf077983974dcf3b1523f2f89f4c1c939f4a9a25d930f6ef9abfae039830faeb53ba43cba24877f0d96c343e6ef6ce6d0ba0f76d5823dfab1341d0bfe1e44e4d082c1940f7ee7f4c1874a16edd39795378f8eaf0bdb9fdb91ce613b8fc3468ef79187bf9466fbe26f37e78253fab1900f06ba5d46d9556c3fd60ba4db5325876e393c37d2fb38247f0d3e38671e4d7398cea3ed1c76f32686c343e1b1f97da6f0d7de87e562b03f7fd3faa167be1f2b2187567d30cea15b1facea988d43c207a7e4d130db4acfa373f467e5e170289373ff995df0f779e7d089fd58b55ebd7cb09e5ff9fa60533f96c907530c7e45ee9ffdcf09db9ed791a32e5c82c3fde6d3ed3ea0047f8758078ecfa107d48f45eea5cd39f4026770eb83b18e4f810f86b5609843431da31c5a6170ce3c9ae6f0eeb3e070b7c38fbfe119741a7fbb792ec780fab19c3ef858d3ee31d06ead5bacdd17c67eac9311ac21cd29da557df0b264f030f2e8921c36f3b87b0edb72e77ef91b5a071e4e0e5dba1f8beda77feb5934f0c1ba8eb10fc63a3e950ca6fbb10487df917916f4c1af01854be6d1f9ebc2cf97c3e66c2a9cbf26cdfe3b73e8e07e2c2b7fffe69ac53e78810fda079b7368b17fd673e839c9dfb9d6034fc60a83b1765f5af268314c7974390efb31289cc3bf46a5f3691fdf5b86bf43a8030f21874eeac752f89bc7079b72e813430eede78373e4d1a6cf330caf0b87f767c53d236f486398fcfd37e6d0bf272395c180bf713934bb5afeaadaa57368e883e7351fbc4afa60fd791d29cf8feeae3f2b8dc3348f63b99c83bb61fcfd95c0df3c75e061e4d0599f8f55e9d8ce5fda072f0006db7368ace345b0975e34f077aeda419b7cb0ae655b1e9df39cd2bf9dc3e6f7fc7cf83b841cdab31fabe62f66f06484349b9243d33e18e6d027247fed3e38368ff63da794ab3fab2b0ed379b5ffecfffb0f98bf45eac0fde7d0defd58357f751f1cc55f730eedd78fd53258fae0c9b856f06452a9b54c1e1d5f170eeb93b6717836f2e9eef95bba0e5c3e87ceff390d4f66fe1a7cf0b151bb90bf3e3e18ee9d6bdd62edaeb5fb67c9df96c1ab80c1fefdd1e63cda5e1716c3755eb82b0e87f338cf9caeed30feda191ccadff41c3ad77339ca9f0b567cb0b297163a5eb0e4d0a7d56c6230e5835bfe9a7cf0a185c125f268dfba704a7f96b8c238dc378bed9a8ce72fa5d7aef87befcddfdc39749673c1357bad3934bf26538dc12d7f691fccae171a7f751fac32b8cda14d3ed89c61d9eac2ae734a79ebc2f11c0ed5e910f81bf2b5a5f157af037b79e0e275e06e7268473f16e0ef6fc6dfcc3e98cea117790e7d2235cc755ca956e6d090c10d87fdfba35b0e9b73adfcfd592539dc258bc3b9db197fed7d58339643279c0b76e5d00d7f510e3d3943bad57df0e948cdafcc3524cc5f533f16f4c1afb3e6d1e6baf02c7138378fcb78dffcfc2d5d07cef13985257268c207d7fce53a36e7d0ba0f5e5018acfae0f6aa75bca86459743fd69cee83998611836d79b4d84f9bf2689c6bc5d785fbe670291efbfdb936fefa5ff9f85bba0edc5f3fb4a51f8bf317f8e09abf80c1a572e893919a43cf21ed6a3974b5d27db04f1e5da22e9c725e298cc339f49983b3e9ec9d4dfece480ecd351c98436b7be905237f5dfd586a0e0d74cc7cb081c1af2d7974eebab089c3d7d9384c3d4f2b9cc7a1ba0fd76157fccddb87955607be1f53fc1d400e4df397f0c1b61cfa5463709b43b7bad5f7cf73440e3d27f9ab3078329e7c423e382e8f0ead0bb719967f7f56090e77995de5d7bcfbfc910f7ffba803c73f1fbab31c1af2b7f5c1848ecf90ffd573e853a4659dc127840f6619b42d8736fae0e83c3af4bcb02f874dfd59611c162ccec3e1bcc3f5bec22e93563df8db711f56481db8ab1cfa096a96e9d6ccdf46bb861c7a728ef88b73e853c45f573f569b43133e78f2a9fab165b03d8f0e3ba7e4ae0bdb3ecfa16b0ef7c5e278dde7e06fcbe0fef93ba81cdacedf56cbb586a58e6372e845c9df53430ebda866599cbf73721f4d3138fc9c922bd7f2ad0bf7cde1ae78ecf33ec2bc6f1ffcedaa0edc510eadf0b79a45ef86a25b92bf88c18a0fae880c75fbc2e8814f400fc789218746da853eb8d2ee12c8b0846e53eac2f473a453fba4fdeac35f9334364cee0e97bf25ce23f5944357dad57cb08dbfd8075b73687d2fbd48ead8c7071f120c7e6de1705c5d38579f745e0e0b16fbf23895cba17f4e1ef606e4cf3df1d7b70e9cebb91cd61cbad62de62f9d434bdd4e7df9ebcca11747e61cbabde6f5fc4af5c15cb725eac2e1fd5943e0702e26e7db7b535f5f76fece541d38730e4df197eda52717ee1c5ae76fb57b36efa54d39f48981bf73740e5defa3551fec754ea9445dd8f7bc9289c3712c8ee564ee399cbdc5f91bdc87d54d1d38730ecdf9ebc8a12b259f15c9a1a56e279f257f49edd23934f2c190c3741eed5b17f67d8e74371c8ecfa78733668dbf7d9f47ca9443d7ecf5c9a1b5bd34e4ef82c65f4b0e5de958f017e5d093cb56c7956ac13edacb07e7ae0b0f89c37df2388ebb7df377b875e0e01cdac05fb177d6753bb5fbe09abfb6bdf3e40bd22dd4ae398746fd586a0e8d7d30e8ab4cab0b87f76775c1e1be7b3762861f773be76fe775e0ce7268a516ec91430b0d231d0b069339f4e40ae878b15a997368ad165ca9f652f2f75a63b08bc3b6ba70371cf6c9a5e339dc058fd3b86bd3693a7fd3fba04bd78133e6d080bf4f76fefae5d042b7ad0faef9db32b8d66da35d670e5deda4c91cbad56eeb832583a176d53cdaac5b5b1e4df76785f649b3918fc35f47fd7335afefed84bf117d58b1e781cbd5819d39b4ca5f2a8736d7819996818e491f2c75bc48f017e7d0d8078fe97e2cc9e09bc944e5b0f39c925a170eefcfda1c99faa47370389dc590c929dccd770d8dbffdd781fdce232939b4c2df27a8598ac190bf2cbfc27be746afc766feea3934d62ecfa1175506c3fc0ae996ef9fab710d18fc5ac9a373d68543387c15c5615aaf268e0d91c7bf3dde6f0c7b53f81bda075da20e5c3c8726f22c9e4343fe021d97cda11735fe5eb60c463934f2c1d5ff6eb00f26ce2985d78563fbb362389ca75f6b98974d9f01cfdfe899bf25ebc0decf879edc5af97ba13258e5ef640af91b9343d7fc6d195ceb16d490bc7268a6dda61e7c4df8e0d8ba705c7f962f877d7269bb5e6d7c1b62de6cf7bd2e5d97e46f993eacdce791bc726883962f38838dfcf5cba1f5bdb42987063a5e54b3ac96c17a0e2d19fccf84ff2f4b5d98eecfc29fabe4c3e1ab6c1c9e5516bbf4d9157f43fba0075a0726f8fb64e7afa25d8dbf5a7ee599432b199621876e7d3095439b7db0575d38ac3fcbbf4f3a0787c3f3e9aeebc63eef235ed743e26f5a1f56d11cdac65f98436b3a86fc5d20752cf87b67cfa1351d73fe4eeef51cbad1f0a5f0c180c15f65164de4d10975611f0e3f4573f83a92c3b3c2627feee6e26fcc39a4f43eac0eebc00d7f490fdc6a163298e916fae06a75969fbf6d0edd6897c8a19976e91cbabe4492a56997aa0b9bcf0bcf0e8743782ce62e789bcbf7b6eced8ebfe97d58f17560fd3c92ed5c03cd5f4dcb98bf2a839dfcbd6bf9cbb4ece22fcea1751d1b7cf057c960e183ed7561f379e1b4feac1c1cf6ef9b1e328fc37cef57933e6798bff175608b6e0dfc7d52f82b7db089bfaa0f86fc057b674db77e39b4a2db4bd48fd5eaf65af2d7c4e0b0bab0de9ff5a0f197eecf8ae3f0552087fd741acac95273bcb6217fa1ae87cbdfdeeac08d962f8cfc953974ad613d87e67be90552c7640e2d757c0574ec91430b1d93fc057b69c960c961b2b614df9f958fc3741eede2f0d079ecabcdc0beab5ef81bd287d5511db8d1eb378ac1936f76fe0aed368ad5726855b79373c8df6a75a56857f2976957af03d3dad53cf035cca1abebbbece8d06a49091c0ee9934ee1706e160f83b771ec2dcbdfd03ee8903ab02f7ff53a70700e4df0f749e56fa3e8332a8756f8bb50eb9862b07f0eadf397e5d052c397388756f88b7d30e430a5e5d0feacbe381c934f77c9e390f711993b77c2df943ee8dc756003833df88b72689dbf740eadeb16f357cfa169fe26e6d004830d3d1db9fab386c0e1307dce0277bfcabbd03d7fbbebc3ca50076eb4fccd43cb67540edd5e0efe1a7368c66052c78b8cbdcd5074dcb0f752f860c0e0af7cb024eb81f337ac2eacf767d9386cd673290ea7f9e21c6c8ef9334cefd73377f6d06a6cff55287fef35ad86f237a10e2cf5aae5d08d66bfd9f96bae0333dd42ed36d79dcae0368716b995298716fc65da6d7368a95b55bb2087060cfe81183c8b1c0e6771e9fd72177a7f7efc8da9033b7368c4df0b237f510e4df1d79e437bf297cca109feda73e8af5cc73f11832d75e1680edbce2ba570986231cd61b32f4ee171ce617f7fdebed7a255bfe75fd9f51a7a0e29ae0f2bbd0efc53e3efad95bf1793471383711d98e0ef5d4a0e3df94cf317e65748b7d772efcc3db0c2600387893c5aefcfa29f9fe5e2f066108729cd420e8b7d73577be47e988bd93b1bfc4debc38aac03d71ad6f6d317462d43fe5e002d9f99ebc0aa96257fef741d73f666cea1910f8ee3f00ab9a7f6e993ee92c33ebeb86b1ebbde4700777be56f777d585e7560a4d76f247fbf69fcd5188cf9db5ce77e39b43f7f9b1af0bd6030d2ed25cea1d51e8e667c57182ceb4846ddbaebc2aee7589a39fc34cacbe134169762721eed9bb9abf0d7c1defcfc4def838eefc35272e84abb7a9ee5e0afc8a14dfc35e7d0f1fc55736895bf725cd33974ad61cee01f88c17efd59a17dd2e6f34a760eb7cfd33271d8944f9b872f07bbe26dcbdd40dfeb57f79d31fe46f661d5bad5f87b4bf2f7c2cc5fa1dd96bfbe3974a555ac5d258786ba4dc8a1bfb61e58f1c13a87d3fab3581da91b0ec37cbae5701e160f6378fbde81f237ae0f3aa20f4be32faa031bb43c6ad87b3131eda585075e5075ccf80b7368ac6376c11c1aeb18d6812183511df892ccb2be4f7e02064f342f7c93d09f5596c3bb0a87ed7562f708e564ee398abb1e3a1d167fd3fab08c7560aed796bf5a1d1869f69bc25f2a87c697398726f84b6857f257d3ae218736f097cca1abf1c419fca072d85a170ee5b07e5ec9ce61f7b9255b8e4571aa7f86a6b1d7c3f77ab2b76ffefaf74147f461711dffd4f8dbf8600b7f1f55feea5ab6f15768b952e99db697063e18eb18f1f7dea46390437f053afe2a348c7c30e4b0a53fcbbb4f1ad7861f3c39ac3e472b8cc3aaae43d93670ee7aea14f43d77cadff43ee8803e2c85bf441d3898bf8f76fe6ada4de12fbd77be94fcc57be76bc95f9043571764f03ff6bab0777f962f87f5fd73590ecf0e8f83b81bee7d3be16fe77d5801fcfd26b92be6472a8756ae5abf7752cb776a0e1dca5fc0e0981c5ae8f83b60f08f84ba7008871f1239fce4c561a8ed48d6012ec7fa65a7ee0af95efbb9a321f0d7ff7958641f16d0abc2df4a9fdf48fe7ed3f8fb68e7afd4ad81bfcd7ca532985fc61c5a6a97f3173358e4d09542d5fcea1aee9d1bfed6d7af46c158bb2e0e631fdc0587379d1c36d5896d1c1b1e8fed79737cee3c7bfcf5efc37a2cc0df47077fb3e7d0b89f03f1d79a43130c9e050e3f05715868fb7a9487c73d0c7fdfeb913bdbf4faad07fe46f46125f0f7c2c2df473b7fc5de19f317eb165fba0fb6f157c9afae891cfabbea81a50f6eb5fbdbd89f657b8ee570386ccab186c9637ce5f7bd80bf90bb03e56f641f16a9e56f5ccbdf082d63feaa39b4cedfe510feea5a76e5d0955aefd52c4bf2f72b91437fc77b69cee0df9e1c5ed532e9b473c3760e3f3839bc0938acf2581bf5dfe759e2b0a73ec3f86bf6bdf9f99bb10f6bb2c2f9bb6260f02d536d33530cc6fc8539f423a9db55237f237368c65f9843ab1e383c87aec61bc4e01f7a5dd8bb3f4b3fe3a0ee9fc338fc94c46135c70ae7716e2efbf3368fef35d47dbd9f3fd91f7f3dfab02a1dfbf3f7c2c9df47a39635feea5ad67368377f0583197f858e017f710eadf2f71a66598d82d72ae5b61cd6fbb32c7dd286f34a83e530e2f100389b81bb7e75dff2fc2dd607ede4efb764fe3e6afcc50c5eb6f397cea1996e6d39b4ce5f25bffa6acfa1abb1aef86031e2394ce758eb5939bce9cd61578e15cac3902bf6f74ff7bdc3e26f481fb4471f56c35f639e05ae5b8dbfdf107bd978e43934cddf65aa0eac8c2b5453ba5219dc68f85edb4b1339b4c2605dc73087fe2ef6d19cc1bf3987752da3fe2c9ac3c4556b79238ac31bd11c56f3e95d1f0e8b3170e6a6e5ce6efe9a9f7fd50f7f1f207fe5d035fb13e9f51b60f0a3a6db91d4eca383bfcb1a7f2183bdeac06efe2a7be74b836ef51c5a6a17f8e0dfa476739d578ae5f08391c34f9cc3148bcd3525c8636aa472b37fee5aeabecf82bfb59e1f9d7be978fe3e3af8abeea533f0372a876eaf75e083d71a1dd35a56396cef937673d85c1f7eb07058d5b4ca6171a9beb8d6eeb5d50f3fe95a181073e37daf4bab03e52fdf2763fe22dd4e5602f97b61e1efa3c6dfd510feeada6df94be7d08cbfcda0f84be557d77c7c470c7e8318ac6bd7a33f2b98c3a1b974090e3f7968ad07de266adccd5d377b87c6df07c15d85bf8fc6bd34bc307f552dbf75f277d9c1df0da9e57aded0747c2ff8db8c7b95c1c61cfa2b1f8e3a30c1609147d35a9e3d0e435f7c15ea8b0730ae8939ddf70e89bf048315fe3e06f1f716e955d56d7b41dd2e2bbad5f9bbace836137f95bdf3b5d4ad9e43b7da6daf374cbf92c16b969e0efff34a7d72382c9f56f6cf517be208be66e6aebfef7d2efc5d81fc55b41cc25fc6607d2f4df1f78ed4b19dbf9b88bf9b5efcbd34f0f71ad581510e2d19fc8e3318d7851d1c769e1b8ee3b0fa794b260e3f3839acf21872f85a999dbeb87fee66e5af99bbf9f9eb3c075ce952ce48ab247fe508e5ef5b82bf8f89fcc5dadd42bad5f6cec0ffa6e5d0eb82bfd58f90c1360ea3ff59cf2bf93dcf92e6f08395c3ba66218785564dbe7810395606e612ec4dca9d317bcbf237e81c12d7701c7f2fbcf8fbd6c8df65077f37640ebda1eda5217f891cbae56f33630d8b7df4574dc3640e4d30f8b717872703e230c5e2272f1eab1cbe76e9ba03dec673d72f7776f3d7acd77ef8bb22b58af9abf661e5e0efb2c6df65c4df0d9443ebfcdd44fc457be7c97b2ffe5e1af87bad69f70d6230ac25e9dad5eac28d76f5deca100e9bfd702e0eab2cb66658a17aed80b1e9be7706f90bf4ece02fa1e5fafaa0f1f79bc6df478dbf8f0efe2e1bf8ab67599b80c1540efddec05f9c436f133ac6fcddd118bc66e1f06442f54ab71cd6b49c99c30f92c33fb270585c530f1e5f731e5f27eacec6db34eee6ca9d3be4afc2dd78fe7ee0fcfd606470cbdf4785bfcb40b771fcddd0746be72f5d07be34f0f7dac05f9443231f6cefe9f0e8cfea94c3744d6993ebd6c463679db8a3fd7366ee46e5ce83e42fd0b2c25f879673f277d9c15f530eedc75f31de6b3a76e7d01fb52c6b9d9f6cc00c7e08eb931e1087fdf3697e557ffb258f9b9f4f3d389c69f6d803a7b277a0fc258681bfe468f52a669abf6fbdf8db72d8c45f31ecfcdd42fc55190cf9fb5ee32fd3ed36c1df7adea5f22bc6df6aecf18e8e359447cf0e87295fac7318f27856383cd54716df6baefbf6c05f623fadf3d7b597163ade776a59af03bbf9bbecc55f3a87a6747c4feab8e52fcea1bf4f6c39f44ead61c460bd2e9cc461e5dc700e0e3f7871d8e48bad57cd6038682e47f0d84f7bf9b9eb57f7f5e7afeff33734fe4e0e7cf95b5f9efcdd27f9bbcf67ccdf478dbf8f0efeaaba55f9bb21f58aebc03a7f3f5bf8bb8dfab05a06efa2bdb39e5fbd61da050c16da1d22871f22388c79fc64e5b1fb3900ddf1d893bbd1bed7cd5fb396d3f9cbaf46cf8f462d2bc3a1e56f5ccb3a7ff78dfc5d467a5619ccf47b67e02fae036f78f3d75607de060c86fcdd75f0970dc8e0440e7b3dbf83e6f0bda2e77b038737080effb07058e5b1339f16be58e5311eb586d4390b5f53d91be27bdd7aa57daf277f1b9df2b919347f1f307ff94569769fe0ef074db3fb0a7fdf7af177d9c1df0da459ccdf3687de347860a1d9f788c198bf3887de257268c8df758dc16a2dc9dd271dcee195280e6f38396caf29d9392c6a4a9b7cee83c39ebc4df2bdf6dc7970fc9d1c02fe1e92fcdd27f8fbd68bbf6f09fe2e1bf8bb1cc4df36873665597a0e8df94beda37196b58318bcaef8e0352293161cfe67801c36e5d34f461e67e470cbe376ee99bbbdf3177277bce4c3dfc6f762fe520ccecfdf650b7f971dfcddc8c2dfedc01c1a6a57f2b71a7f4b06d7e3f7c039ccf6cf765f6ccbb16c1c566b4a62e4e231e17123b99bc25e93be4bf27709eca70fad7916e76f33ecfcddb7f2775fe3ef23e7af49cbcb9cbd36feb65a3eb2d481c3f8bb4df01733f858d68177681d130c3671d8e3bc12cde1d14d210eff30fa623387551e3bf3e98e79ecafcddcb9731c7f97007f9708feea0c5e6af9cbb56ae7ef8ae42ee6efbe95bf27fc67cbdaa0f9bb61d4ad9dbf5b8d5ef51cfabdd4ee7b238329feee127b672a87de23198c396cea9386e795f079ff3c1c566b4ab11cb6e758161e0b0e9b6636588e65626b2867b3723747dd57656f187f97007fa1aee9bdf4a1c6df154ffe7e48e66f7ba5f07713f0f79ed4b1d0f2a981bfdb440e7dcc07cddf75a6e146c12f2ae576c0614b9fd63dd7f106a9e77b2f0e3f68f9f40f0787eb71cee74c1ca678ece4723c77fd7d6f4adf95d0eb12312f61fe6a43e7ef9293bffbc1fcddd7f87b62e46f7bad6afc55b5abf27743e12f5d076e75ebaa036f1beac0bba407d6f83b9923184c7158cfb0d239ac3f5bda97c342af211c56bd317d597c313d337de2392b7753d9db257f97007f9742f88b86cedf7d2b7f4d7be938fede913abee3ec3d9aa8f5a418fe62066fcb417be0ef0a83651d58e8b851f05f956a5f28fc556bc33ee7957cfcf04d010e431eff30fa623787cf955182c7e7519a54b9ebef7bdd5ab5f3f796e66e007f9714fe62ad52fcdd07fcdd57f8fb017157d76d0c7f3748ddd6d751007f37916edd39b4cedf5d037f77943ab09dc1b03fcbfd0cda3e390c7db1ad5f2b3ac7f2f5c5313ccebcaff6f5bd7e59963f7fb1ae7df9bb14c45f55cb66feee031db7b34bcbb00e8c757c24671b7f37397bef491ddf73f69e7ad781f15efa23d8476bfcad34dcfa6013875bfe8acbbca74ee3f0bd1787ef1bfdda7df10fd2173f81d9ce63af51f354cce1a3d69c69cec25d3fad32fede728dde02ee8a79c93c8cfcd5b8ebe0efbe93bffb72f6e1afcee0138dbfcbc1fcdd50749bc6dfaf80c1ad6eaff9de7997dc3bc33a30d3ef1e67b09a63a572983e6bf83a92c3544d89f2c5a11cf6cab1e2f6ce68dfec535f8a636e98ef4de5af7d3fede2af692fadf357d7b389bfb49643f9bb81f8bbece0afaae338feaa39b4ce5f2a876e753cd7eea325830587e7ad1c36f7490f91c3761e3f19796cf2c585788cb87c49cef7d57c2f671ff6de3a679dbbea30f397aafb2e01fe1243d1ea02e0af3e7cf9bb0ff4fad8fc3c8ebfcb56fe6e22dd6e12fcdd44baa5eac0db72d0fc55ebc03b7208dd121eb81a8b9cc17f111c5ed338acd7920238acf475400edf932c8ee3b0cd17bbf32c638695966565cbb3427caf7fee6ceebbbae5b321c772f0d7b597a6f96bd272ade40f7cb6f1f704f117723884bfed8075603b7f551d43fedaebc058c7e63a30f6c1731a83595d388dc337ca988c6e22390cfbb536480efbd489751e9b394c71b9248f2fad73c35b31d73af49a4ddc65e31b9f993629eefaf17749cc80bf06f61af8bb60e5ef3ee0efbe95bf27247f4f02f97ba468d7cedf2dab6e6dfc85fbe66d037f77017fbf4bfed6f31ed66ee3832183ff32f6740c87c326cd420e8b7d732c87bdf54af038678e95ca5d3ff6de73cede49dec2d9916591dc6df96bd372abe9054ffe8acb87bf2792bfb496eb6ba91a4741fc55b5dceaf83e80bf6a1d98e6afae6382bf2483fdfbb3dce786290edf64e530f4c5fe1c6e79ace7d3d47c0ee6cb90b9e6a9989ddc95bc8d1980b3a6f10d70d7cc5fb3566f09fe2e79f37741e1af99c139f80b07e6ef4b92bf4716fe6e04f1f7bdd42c63f0b6a2dd6ba307ded5f6ce50bb147fffae2ec1e017dd7298e8afcccb61cce3b87c3a78cf9c9e6559f8cc722c315f12b3ef7e1acf2d7f296dfbf1772998bf0b80bfaebdb4cadfb748c7fb0efe9e78f257d772cdde4d6ffe6e22feb60c3ed5746ce2ef2ee2ef472dcba274bcc819fcaa526e690edf4473f89ee0b0c917bbfbb5cce3bc199df0b8faaf8acf2dc85d95bf3edef7969897387f97bcf98bb96be3ef02e0ef3ee2ef074daf347f4f2cfc7d69e4ef92c6df8d46b7147f371bfe6e22feaa0c76f397ae1fed4eec756055bb7b5cbf7f231fecc3e18789f98c43d71cb6e955e7705b4f2ae98bf3f2f81e0d986b59f84be457d4b85346087f1f9892257797d01cc25f7a2fedcfdf9344fe1e19f8bbc1f94b67592d8343f9bb8df8bb4df0970d137fe7b007ae352c191ccf61f7f33bf270f8de9bc3365fece670cb633c62797cde5c9770d47a73cd49ec0dc99d6fb95e29eede56ba0ce3ef02e0ef4266fe62cd0afe9e58f9bbc4472a7f3783f9fbde8bbf70ef6caa03eb1e98f35732f82fd05749e9760de8b60b0eab671dec1c769d79c01c56fdb19bc3ddf258e3ad718ed3b589bbadc6e90c4b66599cbf4ba4ae4dfc5d00fc5d30f2176bb9147f9782f9ab6bd9c6dff788bfef49fed63a3e061ac60c6e352c743cd70c4ac7af118387c0619dc52a87ef090e6f689a36b1d8954fdb396c1e97604e1a662e8f6f2bf5de5ae74b30df49bedae625f3f0e6ef029817bcf8bb00e605237f4f262a7ff73be4ef8683bfd4de99e62feec3a2f6ce6a1d78c75a075eacebc00d83170183ff023ed8d427dd1787571c1c76fb62dc5fa9cee77ccecc612f2efbf1d6927779b2d797bfd45e5a665946fe923916e0ef42027f3f70fe623dabfc3de17d58ba9697acfc55b50cf97be4e4efa9d431c5df53a461c8e0afa48e611d78077960037fa5823183550efb9c1b7e307298ead3cac961da17630edb781cef8b3be071cd56dbd0b82be67f3867ed979dbf3477c5d0b84bf2170e95bb6efeea43e5afaa57ac5bc1df258dbf4bc1fcdd9ac07d731efeee1af86baf1f01fe4e16a763cee05703e0f08da6d9380efbf67798797c0ee61ce71fce519e85e69aafa6390b77217b056f6fc93db6926129c38fbf48d74efed27b69137ff52c8b8fe9a819361d63fe2e99f83b9d38f8bb5980bf741d187b60a1615007161aae153c9d0206bf527c701c87fff1e330d7b4e0f08da2675dd3fab86f6ac52e5fac0f7f5f9c8fc71e5cb633571b9778f6bc2ceca5f83b5ec4b3cedd3cfc9d9e39f97b82f8ab3278c9c8df25037f856ed3f82b72e86d22bbda96e71760fd08f2b7ae1dd17be73d4dbb7b50bb1a83618e15c7e189c6e11b82c3373a87d13e5abf2087ef2587edf974585d89f6c52a8fcdf339988dbcf598d3b32c38dff1fdb4caddbb103d3bf94beea7bdf8ab6b195c8d9e75feee77c85f5dcb98bf9b88bf82c1db52cbad86b749fe620fbc63ad03abfcadf6d1d34f90c1560ecf3bce2bf5cde196c71487378c1ce6637c5398c3161e577f76246f1177fd7caf45af3c77bead39db5c80bb7004f07701f0971a1a7f1bcd5af95bebd5c2df25237f9754fe367a25f95bfd173b7fd5bd731c7f77a56e690facf317d681397fab716e60b0ad3fcbcd615db7fab9ff9b400edf2b1c76f9623dcb0aaf2b95e571962ccb9871fda3689bd6b8277fd5beab46cb648e65e5af7d2fadf0b752ab41cb8d8e15fe2a1c56f9bb24f9ab69d99bbf9b9cbd69fca5ebc02a7f711d784eea78518ed78a0f7ed53b876f30872df9f4fdc8ee8bef2d1c16f30f2b8fc55c80c70d73e1b8b5ce06ee06e4cd9456af9579916bb5e6ecb5cedd00fe2e00fe2eb8f8db30d78bbf5caba1fc7da9697649e8950f3b7fc5e5cf5f5abbbb7250fcd53df09eccafe694fc0ae7d0e70483d3384cd79262396cae29d1bed8954fa7e558719a0dccb13270570c3b7f43bcefa23e5bb4acf27701f0d7bc97ae757ce1cb5f38007f97e2f9cb191ccfdff788bfef9186b7bdf8abebb8edc3523df06bb88f060c7e81744cf567b9388c2fc15f0f0ea33af12ae58b1516fb7058b0d8c4e31f230f1e7b8e7330a78e4b39dfaa73a5c51bae41df59e5edb532169bd9c85dbb5e1bcd2e00ad2eb8f88b747ad1f2576770f52a9b69fe2e21fe9ec4f017ec9d397f5b064f3f93fcd5b5ebcf5fec81317f5bedce85f0b71a978cc1cafe79581cb667592d8fe9b30ef69a1264b2af2f4ec9b24c7956147335f6a6fbde6bcedf6bc0dd6b5f3d0bee4ebfb49a6e7eeec55fa9678dbf8d96ddfc55f7d216fe821c0bf0b7d12fbd9746fcadd46de6ef29c9df633eccfcfd48f0176759ad075e843a060c9e2d0edf1835dd72d8ce63ca176b33f4c5113c3671f9326ce64c0d192a6b75eedeba7c2fa1d76b3c038dfaf177c19fbfcd30f37789e4efd20cf157df3bb7bac50c5ec475e0e995e0eff48a31787a4de458dd7398a813477058f862f3b3f15c7525a0d74eb22c779e159a3763fedaf6d3785e422388bf82bbf52c346de56fbb9f86fcbdc8c6df2539d7fa051c063a56f83bbda1f8dbe859f0f734137f77257f8f117f7714feea75e045510766fbe8e9156670a3651f0eaf0570f82192c3376a3edde8f8cee88b6d7562f5da508695c30a8f7f707d87cce7c46ce3ee6514775dec0de3ef35c1dd7a2cb2d98fbf9cbbcd0c75aaf357fa5e82bf80c376fe2e19f8bba4f317ee99317f9b712b74db6856e3eff41fc45f3dbbda95ba55b54bf37707f1d7b977aeb55b8d73ee838576737238a23e4cf76b59f6ce348fefc1ecf32c004f1e67d83bc70d8dc78d56ff31cc7a9e45e557fad0b97bed64ef75cb5f85bb06fe023defa361e42fd432d0f492c6df1385bf4b3efc6db58cf92bf6d12efe563a160cae46b552757c8c744cf1f798e42f59079ede49fe5e491d9f3306d7ff4be0f07c30876f849e475f3ae430cd63c1e41f60ee92c7976c8e646e98ef35e5ced77006bc55c7a2ae559dbf0a772dfcd5b84bf2777a1fc0df9748af247fa713c15d384cfc1543e3afb97664e62fccae769176893eace957a9ddaf24832f05831bcdfa71f89dd62b1dc761f2fc7f00877d6a4a2d874d3c76fae2e1f09873969ee3f6d390bd6efe1af6d46efe127ab6f0d7b4976e353dbd2fc5df56c7347f351dfbf3f7b8d5f0f41bcddfe9771b7f1b1dabfcbd920c7e984e3be2f03f460e9b9fe78159ac7218f3f8deca633b87c155a9a61992c7d6513354ccee61bd6e0366bb4e17ab57f559e32d9fe5f0e3af7e8dbf90dc5da8f499ccdf86c13a7f4f5cfce52398bf8d76bdf98bb53bfd81f86bebc3d2f90beac07efcadc64fb98bbe86bd9588c3ea99ff700eeb1996f5f9f0743e4d72d855536af50a791c7cf62182c3295c8635a430eefab3f7d6c25da96d25c35206c55f9c65f9f1d7a56585bfa6bd34e4efcb78fec2e1cf5f45c78f3efcad560efe021ddf69b5a473a661c9e02170d8fc3c0f8dc5231f1e87e5d30487218ffd467d89b9d0556bef866b10cf34776f54ce9a06cd5d9dbfe32f78d6b86be46fa556c95f728c5adf6be36ff55f7be22fd72ecddf470b7f770dfc35f46171edee91da95fcadc6539b64410e13bad5393cefe4b0d06c3887a52f06fd1deaf33c42b22cbc7f36f963afb30f19780cb90c32ad86af3751dc0d656fcbdd6b3463fe3ad88bf90bf54ceea723f9db70d7c85fae6582bf20c72218ecc1df53c8df56cbb5865b0637fcfd45eab819d50af0b76570cddfe96f9dc1d5cff61a0a03feb67560d5034f972906430e37fbe9780ebf9b047118d59bec1c76fbe23be98bef8d3c0ef2c5693c4ee6f2b5632c12733c7b35fe42eec261e1afc65d3168fe62ee3af8bba4f1f7a5c6df2595bf1483edfc25759bc25fb477c6fce5da35d48135edfe2419dc1587cd75621787ddbed8954fabea54792c66af1e0fce616d06b523626e147d4bcf92c3fe9996694f4dcd3a777df54cf277fc45e7af6100fe724d5fd8f7d282bf4ccb46fe2e99f8abefa5a737347f818e0bf1177be0e90a1b76fe620f8cfbb01a0d731d370a5ee50c2ecd6173dff4cd84f2c5f43962da17df5938eccb63af2b8ec7515c0ee12d9e53d87b3dfec2f86be2ae9bbf8d3a11776dfc557dafcee046abba66397ba76f4cfc6d356be5afe4b09dbf6d1f16ceae6add36da95fcd5b44bf2576ad7c85f964337fcbda2f85beda205831fbc38ac3f032f9cc3a2b72386c3fef9b42bcbf2db3fdfb673a35be7cc748967336f2577f3efa9f5c174abcec1fc85dc6df96bd1b3c65da66f337f99efcdc65f55cb37f5b0eaf8b39dbf8cc182bf848e257fb107a6f8dbeea32b0d37c3c2df56c3ad8e2b0d370a5eab546be7f00b85c3ef483dc3734b611cbe317198eed9a27d71cd5a0f1edf231e439d7bfbe23c3cd6b85c6bed52993373777cc5e72f92b70a77ab57bf30feda86aed54ad10d7feb5967afcadf4a9792bfad564dfc1583e6af59b3cd40fc9d7ef6e52fd36e107f8f49fec2ec4aaf1fed71ed1aeac00a7faf6406fdb3e66f35d63983d73ae730fd0c1e639f25d0aae28b9d1cb6ed9dbdf5ead2aacae302f5a570eedef870d7b19fe673cb5da66131dbf8db681a71d7b497e67ae6dc35f1d7b09706b99643cb047f290fccf57b4aead89fbf5a1d58e72fd371cb5fbd066ce12fd7b0f4c124872583f371d85c27a6387c13c8e11b8dc33a8fef351e535cee80c70d67a97105e66bc70cb9ea310b5d2a63b19db136edfce5dc6de66a283ab5f1970d137fa156c178e9c5df2595bf82c14caf846e15fe4eff21f90b7a379876856edb3e2ce3de59e36fa3dd54fe3e553f5319dc0d87c515c1618dc77a7f07cd613b8f83f41abf77863c76f23986b926ee7af85e625f7dcdf44c73d7ba972ec25f622fbdc473ac64fed6179b1dfcfdd5f257d1f1a38dbf92c1441f56abe3d60337fcbd6b752cf97b55d7809bf18418fc40731831389cc3f380c3f3048bcd1c463c161ca6f369f3d0384cf3f8de3ad70abb6c67bf513354cc8e711530b7e33a7858b92b661b7b91360177fdf8dbfa5e39ceccfc25c64ba0d7ccfc850cd6f95b5f71fce57be76f90c192bf733a7fb976bf92dabdc4f9151f6f490623ed16e7b0b15fcbac590f5f4c9d3f54396c6272473ca6f8ace558a699ae2fe9dc35eda749deaac3ec7bcd7be97a069781bf849e09fe527b699dbf53bd8e64e46f9b63a9fce514b6f0b752b2277f491dafc03e2c52c773147f451f96c25f99634ddf7206af4572f8457e0e57aa357098f6c5c63ab1e0b09dc777165f0ce686c37c1e5f85cc3533d5398abbb9d84bf057e7ad3a4be6c2e1e2efa6a653037f1bf27af1570eccdd8d30fef23df32dd02de72f1b90bf50b3946ec3f93bfd2e74ebda3b9bf32bc6dfeac775de55b9d60187cdba851c463d96e2bc837796c5796c39ef40fb62139783ae301e7bedb1c5a038dce6592d6f55eefa6b1a0c95bb147f95bdb41c66fe12dc35f297d632d7f1868dbfd30d8abf8d9ac97db4ce5fb68f863af6e4efb189bf52cb2b98bfa20f0bd6818586a77792bf5740c3cb601fbdde8c27c0e099e370842f16c3c6e37664e7b181cb57704e64aebfefbd32f156bd9cfc55b82b675dab06fe720a13fc9539d51b13836bcd3603f3f79d8dbfccfb86f3b7fa2f8f8a76257f9976856ea7df8466fdf80bb4fb95ccaf7e2a1eb8e16f756df18e8e5582c3d30c1c9ef7e6b0b8e8b30e565f6cd0abfbfca19bc35139969a6579665a61b9d775355fa3396e3fad689ce22edc4b53dccdc5dfe632f09731b861ee868dbf48cb90bf37462d733d0bfe621d33feaa5ac63a86fc55758cebc0ad8ea93e2c8abf8a07fe893d7035de2b0cee96c3f313cbf9a586c3ae7c9ae0b19bc30a8f5526df933c368c9a9dea1c3f2a3532bdc5cf4c8b972d678db3f3327357e9bb82dcddf4e16feb7b5dfc957af5e7ef4dcddf667cd606e2afc8a04dfc6d52e864fe562b55b77b6cd8f90bb4fb53d3ee93c6e0b546bbd36c1c9ee7239dc39a2f0ecdb2048f0d7d96ab7c7f5c90c7915cd673ad70eefab117e4cee32fed8cf7d466f6023dc379b3e5af6120ee56d78720fedab55c82bfbfe2f94be858e983c60cd6f6d1aa8605835992b5ad31b80487218b3d396cf4c5370487414eed9d4fbb46108f292e3b789b677c41e3ca32c7b117f27793eb95e2ae9dbf9b40abf726fe562a74f057e6ce1b8a6e13f92bb4ebc7dfe90fc8df4ac92d7f57ea41f1b7f1c0bc0f0bea966bb7ae037fd5b4abf3f767cbdf6aec481fdc3d87adba1d7df3e170902fc6bab5f3d8d66f9985c722d7e23c36cf71dcb5b357dd6303ee7aea59f5be9b0a77ed5abe50b96bda4b333d9bf8ab69b965efbb58fea2bdb493bf92c19a8ecdfc9559d61cb98fa6f82beac0cb20c77a2b34dc28f863a5d86d82c1f11cfe2b8ac3ef5c1cd659ace4d3061e07fb6262548a92b3ffa819a9ce3d70d78bbdaa5ec79f2077f94c31d7acd74d3e6b5a35f1b71956fe6a23277f7fd1fc15dae5d70f936e55fe42ed42fe6adafd4a6af7a7ccaf969b01f6cecdb5a3309871f8c1cde1f6ecbfc661fa73c3fd38acf15866599a2f867562da177bd795d8f0e1b0677d29b1cec4f479199965b57cb5cd42db9fb96e3ffbe8591de34f2d779b9f7beda5ab5f19c05fc95e92bf9a8e5bfe322d43febe43ec1535e020fe42062bfc3dc6fce53af6e42fceb2580ecd2fc8df9f0a7fb98625835d1cde8de0b049cf2d8b1fc87c9ad433e470902faee6d18d2f8ffd461c8f6d5cf6e2733877bdd93b3ed7b9dbfc5cce16f66e6a1ae5fc6d7e6ebc90ef35f2b7faaf36febe6bebbf0a7fdf21ed0afeeea99ad5f9db5c8f70a4f2b7d5ae99bfc2032bdafd89b4bb8cf95beda2f71506ab39961f87ed671de6659d183e87e7816471065fec936505ec9f8379ecd7f721395b624f6d1a42e356eedaf6d3adbe5bee6afca5b97bc1992bb84bf217eb59e5af43cb76fe920c56b4fc4b19b57e13f95be99ae46f35eebcf87ba5f0b7d5f01662f0aae430a565e183ed1c169f3ffc0268fa853787bdf369b1b736fae21b0b87f93cbacb905367e1b193cbb5e6cee57c45ce82b7e7686eb8ea357fc2239cbf42a3f5dcfcdccedf0385bb56fe927a6df9ab0eac599dbf1a83c3f8db6857f2576897f197d781bdf92bb46be0ef95e4ef4f45bb82c1fbd58f82c1b67a524e0ee3f3ff3a87edf9b4d02ce98b4d23ca1767d66a913c2b8cbb5ebe57e899e26eab6f1ffe6a9a36f257db471bf96bd0f2bb40fe1e92fc3da4f88b750cb4fc08f94befa555fe221debfcbd33f057cdb1def321f6d13b80c16e0eef16e1b03d9f9e37e959f5c52d8f6bd62a3cbeb1f1d8c4e5341e47e4d6e7685c396713777d8795bb26f6567a84b3d4a883bf076056d98bf8cbf7ca26febecbc6df4365ef4cf0b71988bfb55eddfc553268c95fbd7e64e1afea817f2a1e985d7f73067f2cc261bda6447338a44eacea1572d8c263779615a6d7f4bdb32dcf32723a9cbbb4ef25f6d390b3f4b0e4cee45eda8fbffa10fce55a76f1f75d207f0f3df87b04f9abeca5b98e2bd53af82b740cf87b87f90b747c27357c25f97ba5f07759e52f60f0c74e38fc6a62da57eb1c56783c9efa72187b6382c3048f5b0e53f3a4566d461e7bf1d53c53239abd76fe2abc6d663e68ee62fe42ee8a41f2b77a650370d7ccdf3740ab70bc8be0efa1c6df23377fdba1f17785e26f7311fc6d46c3df665c2106ff04da55f97bdc68f798f1b71a2780c1f9391cd6af45f962738f259565211e9bbdf148e8b6008fd3332da4759c63d9e62b65aeb5fad9c45b9b9e697d9bf86bda4b4b6d43ee7e40ba76f2b7f93194bfef8881f9ab6b1967d069fc5da1f8db5c777c84f0b7be4e15fe420dbf400c9e8be2f06e3087e72dfd5aef5c1c1e7df6d134e6b1c5170b3f7ce7cbe37a1e9fb7733502e65a6fa6d99bb771dc75fbde73c65e82b7ea30f2b71a147729febe9173ab538ac1efbcf8ab6b762f99bf4788bf7fa90c6ef9dbccdf550fccf7ce7b2a8303f8fb53f2f73df0c04cbb750e7d22193c2735ebe2b0fd79b4711c9eb773b8d93f7bf962cc63baa6847d31e4b189c9e1fbe7381e2b3996cfa034ff39653fadf3177297d8531bd9abf057d535c9dffa72f0f79d1cb9f87b68e72fd84bd7d73ce46fb56a75bcc275eccd5faee33ba4e30590412f230fbca8f17787691830b834875f2471781ef8613e4f977c7d31e6b17d481edf2923338fe5cc47ad3fd7dc5c3eda3c47f3a7ea47ce5975e6dc3db73297642fe0ef41c35f9abb347f0f247f4d03ebf50d9f5beebaf87b08f8bba769f6d08bbf8f69fc9dbe14ba35f2f71562f04f637e0533e8e386bf8d07ae76d12752c1711c366459caded987c37a9d38c8175beb4a513ca6f89cca63a6db6cbc8de3ae83bd7c5ffd89f1d7b2a776f1f700f0d79565a9dca5b22c337f692d1f26f1f748d331e6efa399bfcd20f8db0c337fa10716fc3d5534ace558d3170a83290eaf125a7e08e0f02b2387dd75e207178f852fc63cb671b852e3173147f3981c352bd5396d182f9db3783ee7dc3de7bc256730fcf97b00b9cb673ff60aee1e343f37b1f7b5177fdf19f8fb8ee0ef21c9df23c0dfa320fece43fe9e8d69fe9e8d0cfc7dd56856d7aeca5f9376117fcf266753a4e06e38ecd7df61e4305d57b2675960ff6c3bfba06659d6c1f7cf377c3f1c38208fb5d9966de5e0eeb93a73ee9eb7fc0ddd4f4b7d7f90fc75eda585a66dfc7da7e919f2d7bc973e04ec6df97ba8e918f2f7c89bbff3aa07ae744cf2f7ecccc5dfb3b60f6bc1c8dfc526cb22f85b6bb856f0d9b942e1500ea3bee9080e435facebd9e98b6b0eeb3cb6691af3185f361e870f7f2e67bafcb9ebcfde03c0df03c9dd4d0ffe1e00ad1e78f1f7dd349cbf8711fc3df2e4ef5fbefc05da45fe1768d7c45fb57fa3d5ee29e06fdd072d18fca2d6efd9b452f054db450f97c3f398c3613d1e70ff6ceaedb0f75c1a665f1ee7a83db9f6cef4ac73170da0ef4f4efe22dec2b9d1b2e0aece5f9dbb077cd8f98b479b3bdbf6d2147ff708fe1e05f077de97bfd5cac5df5792c177047f17941c0bf29731f86fac61c1e0b30b8dc3abde1cd6f2e9c9abb3cfbaa6f905393c1fc0e177260e37ec75f2d8c717bbae4a4911fe988dfaffcb467da97387dc25d93b5e20e60395bb88bf26f61e00feb6c3c4dfd74efeb67b654ab7877cd0fca574abf2f748192efeaeb8f8db6857e7afd02ecea017247f17247f4f15fe12fb67c6df6a5c32062bfacdcde1570a87db1e4b7b9f25eeb55478dc3038ca177be559313cbee31cd6e6b81a53baae4d43d1b97b2f7d4070f7006adce07ba9bdb48dbfba8e217fdf19f97b88f4ece2ef21e7ae89bf4739f82b757c57fdccc6df2b82bfa780bf30c77ad1f461bd68732cb68b3efb5269b8e6f0554e0e4fa7011c56f3e979839eab5129d6c062c163c8e196c7a32f79790cb92ce6f84171d9349f5ddbb95bf193fd1ccf3467f90c07d6a6e67b29fe1e8099e22ee62fe42eadd9d780bffa15c7dfc344fece43feb60c6e752bf7ce92bf9a7643f87b4af297ed9fff660caeae9bfffefffff77ffd1f9ff650a1</data>
+ </image>
+</images>
+<connections>
+ <connection>
+ <sender>Fix1CheckBox</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>Freq1SpinBox</receiver>
+ <slot>setEnabled(bool)</slot>
+ </connection>
+ <connection>
+ <sender>Fix1CheckBox</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>FineRatio1SpinBox</receiver>
+ <slot>setDisabled(bool)</slot>
+ </connection>
+ <connection>
+ <sender>Fix1CheckBox</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>CoarseRatio1SpinBox</receiver>
+ <slot>setDisabled(bool)</slot>
+ </connection>
+ <connection>
+ <sender>Fix2CheckBox</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>FineRatio2SpinBox</receiver>
+ <slot>setDisabled(bool)</slot>
+ </connection>
+ <connection>
+ <sender>Fix2CheckBox</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>CoarseRatio2SpinBox</receiver>
+ <slot>setDisabled(bool)</slot>
+ </connection>
+ <connection>
+ <sender>Fix3CheckBox</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>FineRatio3SpinBox</receiver>
+ <slot>setDisabled(bool)</slot>
+ </connection>
+ <connection>
+ <sender>Fix3CheckBox</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>CoarseRatio3SpinBox</receiver>
+ <slot>setDisabled(bool)</slot>
+ </connection>
+ <connection>
+ <sender>Fix4CheckBox</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>FineRatio4SpinBox</receiver>
+ <slot>setDisabled(bool)</slot>
+ </connection>
+ <connection>
+ <sender>Fix4CheckBox</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>CoarseRatio4SpinBox</receiver>
+ <slot>setDisabled(bool)</slot>
+ </connection>
+ <connection>
+ <sender>Fix2CheckBox</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>Freq2SpinBox</receiver>
+ <slot>setEnabled(bool)</slot>
+ </connection>
+ <connection>
+ <sender>Fix3CheckBox</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>Freq3SpinBox</receiver>
+ <slot>setEnabled(bool)</slot>
+ </connection>
+ <connection>
+ <sender>Fix4CheckBox</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>Freq4SpinBox</receiver>
+ <slot>setEnabled(bool)</slot>
+ </connection>
+ <connection>
+ <sender>AR4Slider</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>AR4SpinBox</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>AR4SpinBox</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>AR4Slider</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>D1R4Slider</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>D1R4SpinBox</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>D1R4SpinBox</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>D1R4Slider</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>D1L4Slider</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>D1L4SpinBox</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>D1L4SpinBox</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>D1L4Slider</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>D2R4Slider</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>D2R4SpinBox</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>RR4Slider</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>RR4SpinBox</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>RR4SpinBox</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>RR4Slider</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>D2R4SpinBox</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>D2R4Slider</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>AR3SpinBox</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>AR3Slider</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>AR3Slider</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>AR3SpinBox</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>D1R3Slider</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>D1R3SpinBox</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>D1R3SpinBox</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>D1R3Slider</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>D1L3Slider</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>D1L3SpinBox</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>D1L3SpinBox</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>D1L3Slider</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>D2R3Slider</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>D2R3SpinBox</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>D2R3SpinBox</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>D2R3Slider</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>RR3Slider</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>RR3SpinBox</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>RR3SpinBox</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>RR3Slider</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>AR2Slider</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>AR2SpinBox</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>AR2SpinBox</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>AR2Slider</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>D1R2Slider</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>D1R2SpinBox</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>D1R2SpinBox</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>D1R2Slider</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>D1L2Slider</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>D1L2SpinBox</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>D1L2SpinBox</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>D1L2Slider</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>D2R2Slider</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>D2R2SpinBox</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>D2R2SpinBox</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>D2R2Slider</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>RR2Slider</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>RR2SpinBox</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>RR2SpinBox</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>RR2Slider</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>AR1Slider</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>AR1SpinBox</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>AR1SpinBox</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>AR1Slider</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>D1R1Slider</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>D1R1SpinBox</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>D1R1SpinBox</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>D1R1Slider</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>D1L1Slider</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>D1L1SpinBox</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>D1L1SpinBox</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>D1L1Slider</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>D2R1Slider</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>D2R1SpinBox</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>D2R1SpinBox</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>D2R1Slider</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>RR1Slider</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>RR1SpinBox</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>RR1SpinBox</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>RR1Slider</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>LS1Slider</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>LS1SpinBox</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>LS1SpinBox</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>LS1Slider</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>RS1Slider</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>RS1SpinBox</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>RS1SpinBox</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>RS1Slider</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>LS2Slider</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>LS2SpinBox</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>LS2SpinBox</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>LS2Slider</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>RS2Slider</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>RS2SpinBox</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>RS2SpinBox</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>RS2Slider</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>LS3Slider</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>LS3SpinBox</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>LS3SpinBox</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>LS3Slider</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>RS3Slider</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>RS3SpinBox</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>RS3SpinBox</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>RS3Slider</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>LS4Slider</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>LS4SpinBox</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>LS4SpinBox</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>LS4Slider</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>RS4Slider</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>RS4SpinBox</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>RS4SpinBox</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>RS4Slider</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>Vol4Slider</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>Vol4SpinBox</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>Vol4SpinBox</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>Vol4Slider</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>Vol3Slider</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>Vol3SpinBox</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>Vol3SpinBox</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>Vol3Slider</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>Vol2Slider</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>Vol2SpinBox</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>Vol2SpinBox</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>Vol2Slider</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>Vol1Slider</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>Vol1SpinBox</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>Vol1SpinBox</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>Vol1Slider</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>EBS1Slider</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>EBS1SpinBox</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>EBS1SpinBox</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>EBS1Slider</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>KVS1Slider</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>KVS1SpinBox</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>KVS1SpinBox</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>KVS1Slider</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>EBS2Slider</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>EBS2SpinBox</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>EBS2SpinBox</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>EBS2Slider</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>KVS2Slider</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>KVS2SpinBox</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>KVS2SpinBox</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>KVS2Slider</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>EBS3Slider</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>EBS3SpinBox</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>EBS3SpinBox</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>EBS3Slider</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>KVS3Slider</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>KVS3SpinBox</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>KVS3SpinBox</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>KVS3Slider</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>EBS4Slider</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>EBS4SpinBox</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>EBS4SpinBox</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>EBS4Slider</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>KVS4Slider</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>KVS4SpinBox</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>KVS4SpinBox</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>KVS4Slider</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>DET4Slider</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>DET4SpinBox</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>DET4SpinBox</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>DET4Slider</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>DET3Slider</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>DET3SpinBox</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>DET3SpinBox</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>DET3Slider</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>DET2Slider</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>DET2SpinBox</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>DET2SpinBox</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>DET2Slider</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>DET1Slider</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>DET1SpinBox</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>DET1SpinBox</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>DET1Slider</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>masterVolSlider</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>MasterVolumeSpinBox</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>MasterVolumeSpinBox</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>masterVolSlider</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>feedbackSlider</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>feedbackSpinBox</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>feedbackSpinBox</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>feedbackSlider</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>PitchBendRangeSlider</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>pitchBendRangeSpinBox</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>pitchBendRangeSpinBox</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>PitchBendRangeSlider</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>PModSensSlider</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>PMSSpinBox</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>PMSSpinBox</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>PModSensSlider</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>AModSensSlider</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>AMSSpinBox</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>AMSSpinBox</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>AModSensSlider</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>PModDepthSlider</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>PModDepthSpinBox</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>PModDepthSpinBox</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>PModDepthSlider</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>AModDepthSlider</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>AModDepthSpinBox</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>AModDepthSpinBox</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>AModDepthSlider</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>LFOSpeedSlider</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>LFOSpeedSpinBox</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>LFOSpeedSpinBox</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>LFOSpeedSlider</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>LFODelaySlider</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>LFODelaySpinBox</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>LFODelaySpinBox</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>LFODelaySlider</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>transposeSlider</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>transposeSpinBox</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>transposeSpinBox</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>transposeSlider</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>globalDetuneSlider</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>globalDetuneSpinBox</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>globalDetuneSpinBox</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>globalDetuneSlider</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+</connections>
+<tabstops>
+ <tabstop>deicsOnzeTabWidget</tabstop>
+ <tabstop>categoryListView</tabstop>
+ <tabstop>nameLineEdit</tabstop>
+ <tabstop>masterVolSlider</tabstop>
+ <tabstop>feedbackSlider</tabstop>
+ <tabstop>polyMonoComboBox</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>transposeSlider</tabstop>
+ <tabstop>globalDetuneSlider</tabstop>
+ <tabstop>algorithmComboBox</tabstop>
+ <tabstop>AR1Slider</tabstop>
+ <tabstop>D1R1Slider</tabstop>
+ <tabstop>D1L1Slider</tabstop>
+ <tabstop>D2R1Slider</tabstop>
+ <tabstop>RR1Slider</tabstop>
+ <tabstop>LS1Slider</tabstop>
+ <tabstop>RS1Slider</tabstop>
+ <tabstop>Vol1Slider</tabstop>
+ <tabstop>Fix1CheckBox</tabstop>
+ <tabstop>AME1CheckBox</tabstop>
+ <tabstop>EBS1Slider</tabstop>
+ <tabstop>DET1Slider</tabstop>
+ <tabstop>KVS1Slider</tabstop>
+ <tabstop>WaveForm1ComboBox</tabstop>
+ <tabstop>EGQ1ComboBox</tabstop>
+ <tabstop>AR2Slider</tabstop>
+ <tabstop>D1R2Slider</tabstop>
+ <tabstop>D1L2Slider</tabstop>
+ <tabstop>D2R2Slider</tabstop>
+ <tabstop>RR2Slider</tabstop>
+ <tabstop>LS2Slider</tabstop>
+ <tabstop>RS2Slider</tabstop>
+ <tabstop>Vol2Slider</tabstop>
+ <tabstop>AME2CheckBox</tabstop>
+ <tabstop>EBS2Slider</tabstop>
+ <tabstop>DET2Slider</tabstop>
+ <tabstop>KVS2Slider</tabstop>
+ <tabstop>WaveForm2ComboBox</tabstop>
+ <tabstop>EGS2comboBox</tabstop>
+ <tabstop>AR3Slider</tabstop>
+ <tabstop>D1R3Slider</tabstop>
+ <tabstop>D1L3Slider</tabstop>
+ <tabstop>D2R3Slider</tabstop>
+ <tabstop>RR3Slider</tabstop>
+ <tabstop>LS3Slider</tabstop>
+ <tabstop>RS3Slider</tabstop>
+ <tabstop>Vol3Slider</tabstop>
+ <tabstop>AME3CheckBox</tabstop>
+ <tabstop>EBS3Slider</tabstop>
+ <tabstop>DET3Slider</tabstop>
+ <tabstop>KVS3Slider</tabstop>
+ <tabstop>WaveForm3ComboBox</tabstop>
+ <tabstop>EGS3comboBox</tabstop>
+ <tabstop>AR4Slider</tabstop>
+ <tabstop>D1R4Slider</tabstop>
+ <tabstop>D1L4Slider</tabstop>
+ <tabstop>D2R4Slider</tabstop>
+ <tabstop>RR4Slider</tabstop>
+ <tabstop>LS4Slider</tabstop>
+ <tabstop>RS4Slider</tabstop>
+ <tabstop>Vol4Slider</tabstop>
+ <tabstop>AME4CheckBox</tabstop>
+ <tabstop>EBS4Slider</tabstop>
+ <tabstop>DET4Slider</tabstop>
+ <tabstop>KVS4Slider</tabstop>
+ <tabstop>WaveForm4ComboBox</tabstop>
+ <tabstop>EGS4comboBox</tabstop>
+</tabstops>
+<layoutdefaults spacing="6" margin="11"/>
+</UI>
diff --git a/muse2/synti/deicsonze/moc_deicsonzegui.cpp b/muse2/synti/deicsonze/moc_deicsonzegui.cpp
new file mode 100644
index 00000000..0fd39bff
--- /dev/null
+++ b/muse2/synti/deicsonze/moc_deicsonzegui.cpp
@@ -0,0 +1,304 @@
+/****************************************************************************
+** Meta object code from reading C++ file 'deicsonzegui.h'
+**
+** Created: Sun Oct 10 20:45:43 2010
+** by: The Qt Meta Object Compiler version 62 (Qt 4.6.2)
+**
+** WARNING! All changes made in this file will be lost!
+*****************************************************************************/
+
+#include "deicsonzegui.h"
+#if !defined(Q_MOC_OUTPUT_REVISION)
+#error "The header file 'deicsonzegui.h' doesn't include <QObject>."
+#elif Q_MOC_OUTPUT_REVISION != 62
+#error "This file was generated using the moc from 4.6.2. It"
+#error "cannot be used with the include files from this version of Qt."
+#error "(The moc has changed too much.)"
+#endif
+
+QT_BEGIN_MOC_NAMESPACE
+static const uint qt_meta_data_DeicsOnzeGui[] = {
+
+ // content:
+ 4, // revision
+ 0, // classname
+ 0, 0, // classinfo
+ 93, 14, // methods
+ 0, 0, // properties
+ 0, 0, // enums/sets
+ 0, 0, // constructors
+ 0, // flags
+ 0, // signalCount
+
+ // slots: signature, parameters, type, tag, flags
+ 14, 13, 13, 13, 0x08,
+ 34, 13, 13, 13, 0x08,
+ 57, 13, 13, 13, 0x08,
+ 79, 13, 13, 13, 0x08,
+ 101, 13, 13, 13, 0x08,
+ 118, 13, 13, 13, 0x08,
+ 142, 13, 13, 13, 0x08,
+ 163, 13, 13, 13, 0x08,
+ 176, 13, 13, 13, 0x08,
+ 189, 13, 13, 13, 0x08,
+ 207, 13, 13, 13, 0x08,
+ 224, 13, 13, 13, 0x08,
+ 244, 13, 13, 13, 0x08,
+ 261, 13, 13, 13, 0x08,
+ 278, 13, 13, 13, 0x08,
+ 299, 13, 13, 13, 0x08,
+ 320, 13, 13, 13, 0x08,
+ 341, 13, 13, 13, 0x08,
+ 360, 13, 13, 13, 0x08,
+ 378, 13, 13, 13, 0x08,
+ 399, 13, 13, 13, 0x08,
+ 421, 13, 13, 13, 0x08,
+ 448, 444, 13, 13, 0x08,
+ 460, 444, 13, 13, 0x08,
+ 473, 444, 13, 13, 0x08,
+ 486, 444, 13, 13, 0x08,
+ 499, 444, 13, 13, 0x08,
+ 511, 444, 13, 13, 0x08,
+ 523, 444, 13, 13, 0x08,
+ 536, 444, 13, 13, 0x08,
+ 549, 444, 13, 13, 0x08,
+ 562, 444, 13, 13, 0x08,
+ 574, 444, 13, 13, 0x08,
+ 586, 444, 13, 13, 0x08,
+ 599, 444, 13, 13, 0x08,
+ 612, 444, 13, 13, 0x08,
+ 625, 444, 13, 13, 0x08,
+ 637, 444, 13, 13, 0x08,
+ 649, 444, 13, 13, 0x08,
+ 662, 444, 13, 13, 0x08,
+ 675, 444, 13, 13, 0x08,
+ 688, 444, 13, 13, 0x08,
+ 700, 444, 13, 13, 0x08,
+ 712, 444, 13, 13, 0x08,
+ 724, 444, 13, 13, 0x08,
+ 736, 444, 13, 13, 0x08,
+ 748, 444, 13, 13, 0x08,
+ 760, 444, 13, 13, 0x08,
+ 772, 444, 13, 13, 0x08,
+ 784, 444, 13, 13, 0x08,
+ 796, 444, 13, 13, 0x08,
+ 809, 444, 13, 13, 0x08,
+ 822, 444, 13, 13, 0x08,
+ 835, 444, 13, 13, 0x08,
+ 848, 444, 13, 13, 0x08,
+ 869, 444, 13, 13, 0x08,
+ 888, 444, 13, 13, 0x08,
+ 904, 902, 13, 13, 0x08,
+ 918, 444, 13, 13, 0x08,
+ 939, 444, 13, 13, 0x08,
+ 958, 444, 13, 13, 0x08,
+ 972, 902, 13, 13, 0x08,
+ 986, 444, 13, 13, 0x08,
+ 1007, 444, 13, 13, 0x08,
+ 1026, 444, 13, 13, 0x08,
+ 1040, 902, 13, 13, 0x08,
+ 1054, 444, 13, 13, 0x08,
+ 1075, 444, 13, 13, 0x08,
+ 1094, 444, 13, 13, 0x08,
+ 1108, 902, 13, 13, 0x08,
+ 1122, 444, 13, 13, 0x08,
+ 1136, 444, 13, 13, 0x08,
+ 1149, 444, 13, 13, 0x08,
+ 1162, 444, 13, 13, 0x08,
+ 1176, 444, 13, 13, 0x08,
+ 1189, 444, 13, 13, 0x08,
+ 1202, 444, 13, 13, 0x08,
+ 1216, 444, 13, 13, 0x08,
+ 1229, 444, 13, 13, 0x08,
+ 1242, 444, 13, 13, 0x08,
+ 1256, 444, 13, 13, 0x08,
+ 1269, 444, 13, 13, 0x08,
+ 1282, 444, 13, 13, 0x08,
+ 1295, 444, 13, 13, 0x08,
+ 1308, 444, 13, 13, 0x08,
+ 1321, 444, 13, 13, 0x08,
+ 1334, 13, 13, 13, 0x08,
+ 1356, 13, 13, 13, 0x08,
+ 1378, 13, 13, 13, 0x08,
+ 1400, 13, 13, 13, 0x08,
+ 1422, 13, 13, 13, 0x08,
+ 1457, 13, 13, 13, 0x08,
+ 1487, 13, 13, 13, 0x08,
+
+ 0 // eod
+};
+
+static const char qt_meta_stringdata_DeicsOnzeGui[] = {
+ "DeicsOnzeGui\0\0newPresetDialogue()\0"
+ "deletePresetDialogue()\0loadPresetsDialogue()\0"
+ "savePresetsDialogue()\0setName(QString)\0"
+ "setSubcategory(QString)\0setCategory(QString)\0"
+ "setBank(int)\0setProg(int)\0setMasterVol(int)\0"
+ "setFeedback(int)\0setLfoWave(QString)\0"
+ "setLfoSpeed(int)\0setLfoDelay(int)\0"
+ "setLfoPModDepth(int)\0setLfoPitchSens(int)\0"
+ "setLfoAModDepth(int)\0setLfoAmpSens(int)\0"
+ "setTranspose(int)\0setGlobalDetune(int)\0"
+ "setAlgorithm(QString)\0setPitchBendRange(int)\0"
+ "val\0setAR1(int)\0setD1R1(int)\0setD1L1(int)\0"
+ "setD2R1(int)\0setRR1(int)\0setAR2(int)\0"
+ "setD1R2(int)\0setD1L2(int)\0setD2R2(int)\0"
+ "setRR2(int)\0setAR3(int)\0setD1R3(int)\0"
+ "setD1L3(int)\0setD2R3(int)\0setRR3(int)\0"
+ "setAR4(int)\0setD1R4(int)\0setD1L4(int)\0"
+ "setD2R4(int)\0setRR4(int)\0setLS1(int)\0"
+ "setRS1(int)\0setLS2(int)\0setRS2(int)\0"
+ "setLS3(int)\0setRS3(int)\0setLS4(int)\0"
+ "setRS4(int)\0setVol1(int)\0setVol2(int)\0"
+ "setVol3(int)\0setVol4(int)\0"
+ "setCoarseRatio1(int)\0setFineRatio1(int)\0"
+ "setFreq1(int)\0f\0setFix1(bool)\0"
+ "setCoarseRatio2(int)\0setFineRatio2(int)\0"
+ "setFreq2(int)\0setFix2(bool)\0"
+ "setCoarseRatio3(int)\0setFineRatio3(int)\0"
+ "setFreq3(int)\0setFix3(bool)\0"
+ "setCoarseRatio4(int)\0setFineRatio4(int)\0"
+ "setFreq4(int)\0setFix4(bool)\0setAME1(bool)\0"
+ "setEBS1(int)\0setKVS1(int)\0setAME2(bool)\0"
+ "setEBS2(int)\0setKVS2(int)\0setAME3(bool)\0"
+ "setEBS3(int)\0setKVS3(int)\0setAME4(bool)\0"
+ "setEBS4(int)\0setKVS4(int)\0setDET1(int)\0"
+ "setDET2(int)\0setDET3(int)\0setDET4(int)\0"
+ "setWaveForm1(QString)\0setWaveForm2(QString)\0"
+ "setWaveForm3(QString)\0setWaveForm4(QString)\0"
+ "setSubcategorySet(Q3ListViewItem*)\0"
+ "setPresetSet(Q3ListViewItem*)\0"
+ "setPreset(Q3ListViewItem*)\0"
+};
+
+const QMetaObject DeicsOnzeGui::staticMetaObject = {
+ { &DeicsOnzeGuiBase::staticMetaObject, qt_meta_stringdata_DeicsOnzeGui,
+ qt_meta_data_DeicsOnzeGui, 0 }
+};
+
+#ifdef Q_NO_DATA_RELOCATION
+const QMetaObject &DeicsOnzeGui::getStaticMetaObject() { return staticMetaObject; }
+#endif //Q_NO_DATA_RELOCATION
+
+const QMetaObject *DeicsOnzeGui::metaObject() const
+{
+ return QObject::d_ptr->metaObject ? QObject::d_ptr->metaObject : &staticMetaObject;
+}
+
+void *DeicsOnzeGui::qt_metacast(const char *_clname)
+{
+ if (!_clname) return 0;
+ if (!strcmp(_clname, qt_meta_stringdata_DeicsOnzeGui))
+ return static_cast<void*>(const_cast< DeicsOnzeGui*>(this));
+ if (!strcmp(_clname, "MessGui"))
+ return static_cast< MessGui*>(const_cast< DeicsOnzeGui*>(this));
+ return DeicsOnzeGuiBase::qt_metacast(_clname);
+}
+
+int DeicsOnzeGui::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
+{
+ _id = DeicsOnzeGuiBase::qt_metacall(_c, _id, _a);
+ if (_id < 0)
+ return _id;
+ if (_c == QMetaObject::InvokeMetaMethod) {
+ switch (_id) {
+ case 0: newPresetDialogue(); break;
+ case 1: deletePresetDialogue(); break;
+ case 2: loadPresetsDialogue(); break;
+ case 3: savePresetsDialogue(); break;
+ case 4: setName((*reinterpret_cast< const QString(*)>(_a[1]))); break;
+ case 5: setSubcategory((*reinterpret_cast< const QString(*)>(_a[1]))); break;
+ case 6: setCategory((*reinterpret_cast< const QString(*)>(_a[1]))); break;
+ case 7: setBank((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 8: setProg((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 9: setMasterVol((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 10: setFeedback((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 11: setLfoWave((*reinterpret_cast< const QString(*)>(_a[1]))); break;
+ case 12: setLfoSpeed((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 13: setLfoDelay((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 14: setLfoPModDepth((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 15: setLfoPitchSens((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 16: setLfoAModDepth((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 17: setLfoAmpSens((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 18: setTranspose((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 19: setGlobalDetune((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 20: setAlgorithm((*reinterpret_cast< const QString(*)>(_a[1]))); break;
+ case 21: setPitchBendRange((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 22: setAR1((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 23: setD1R1((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 24: setD1L1((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 25: setD2R1((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 26: setRR1((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 27: setAR2((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 28: setD1R2((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 29: setD1L2((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 30: setD2R2((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 31: setRR2((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 32: setAR3((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 33: setD1R3((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 34: setD1L3((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 35: setD2R3((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 36: setRR3((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 37: setAR4((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 38: setD1R4((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 39: setD1L4((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 40: setD2R4((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 41: setRR4((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 42: setLS1((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 43: setRS1((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 44: setLS2((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 45: setRS2((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 46: setLS3((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 47: setRS3((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 48: setLS4((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 49: setRS4((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 50: setVol1((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 51: setVol2((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 52: setVol3((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 53: setVol4((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 54: setCoarseRatio1((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 55: setFineRatio1((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 56: setFreq1((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 57: setFix1((*reinterpret_cast< bool(*)>(_a[1]))); break;
+ case 58: setCoarseRatio2((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 59: setFineRatio2((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 60: setFreq2((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 61: setFix2((*reinterpret_cast< bool(*)>(_a[1]))); break;
+ case 62: setCoarseRatio3((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 63: setFineRatio3((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 64: setFreq3((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 65: setFix3((*reinterpret_cast< bool(*)>(_a[1]))); break;
+ case 66: setCoarseRatio4((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 67: setFineRatio4((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 68: setFreq4((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 69: setFix4((*reinterpret_cast< bool(*)>(_a[1]))); break;
+ case 70: setAME1((*reinterpret_cast< bool(*)>(_a[1]))); break;
+ case 71: setEBS1((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 72: setKVS1((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 73: setAME2((*reinterpret_cast< bool(*)>(_a[1]))); break;
+ case 74: setEBS2((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 75: setKVS2((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 76: setAME3((*reinterpret_cast< bool(*)>(_a[1]))); break;
+ case 77: setEBS3((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 78: setKVS3((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 79: setAME4((*reinterpret_cast< bool(*)>(_a[1]))); break;
+ case 80: setEBS4((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 81: setKVS4((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 82: setDET1((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 83: setDET2((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 84: setDET3((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 85: setDET4((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 86: setWaveForm1((*reinterpret_cast< const QString(*)>(_a[1]))); break;
+ case 87: setWaveForm2((*reinterpret_cast< const QString(*)>(_a[1]))); break;
+ case 88: setWaveForm3((*reinterpret_cast< const QString(*)>(_a[1]))); break;
+ case 89: setWaveForm4((*reinterpret_cast< const QString(*)>(_a[1]))); break;
+ case 90: setSubcategorySet((*reinterpret_cast< Q3ListViewItem*(*)>(_a[1]))); break;
+ case 91: setPresetSet((*reinterpret_cast< Q3ListViewItem*(*)>(_a[1]))); break;
+ case 92: setPreset((*reinterpret_cast< Q3ListViewItem*(*)>(_a[1]))); break;
+ default: ;
+ }
+ _id -= 93;
+ }
+ return _id;
+}
+QT_END_MOC_NAMESPACE
diff --git a/muse2/synti/deicsonze/newpreset.h b/muse2/synti/deicsonze/newpreset.h
new file mode 100644
index 00000000..cf589dbc
--- /dev/null
+++ b/muse2/synti/deicsonze/newpreset.h
@@ -0,0 +1,1162 @@
+#ifndef NEWPRESET_H
+#define NEWPRESET_H
+
+#include <qvariant.h>
+
+
+#include <Qt3Support/Q3ButtonGroup>
+#include <Qt3Support/Q3GroupBox>
+#include <QtCore/QVariant>
+#include <QtGui/QAction>
+#include <QtGui/QApplication>
+#include <QtGui/QButtonGroup>
+#include <QtGui/QDialog>
+#include <QtGui/QHeaderView>
+#include <QtGui/QLineEdit>
+#include <QtGui/QPushButton>
+#include <QtGui/QSpinBox>
+
+QT_BEGIN_NAMESPACE
+
+class Ui_NewPreset
+{
+public:
+ Q3GroupBox *nameNPGroupBox;
+ QLineEdit *nameNPLineEdit;
+ Q3GroupBox *subcategoryNPGroupBox;
+ QLineEdit *subcategoryNPLineEdit;
+ Q3GroupBox *categoryNPGroupBox;
+ QLineEdit *categoryNPLineEdit;
+ Q3GroupBox *bankNPGroupBox;
+ QSpinBox *bankNPSpinBox;
+ Q3GroupBox *progNPGroupBox;
+ QSpinBox *progNPSpinBox;
+ Q3ButtonGroup *WantButtonGroup;
+ QPushButton *CancelPushButton;
+ QPushButton *OkPushButton;
+
+ void setupUi(QDialog *NewPreset)
+ {
+ if (NewPreset->objectName().isEmpty())
+ NewPreset->setObjectName(QString::fromUtf8("NewPreset"));
+ NewPreset->resize(271, 157);
+ nameNPGroupBox = new Q3GroupBox(NewPreset);
+ nameNPGroupBox->setObjectName(QString::fromUtf8("nameNPGroupBox"));
+ nameNPGroupBox->setGeometry(QRect(10, 0, 120, 50));
+ nameNPLineEdit = new QLineEdit(nameNPGroupBox);
+ nameNPLineEdit->setObjectName(QString::fromUtf8("nameNPLineEdit"));
+ nameNPLineEdit->setGeometry(QRect(10, 20, 100, 21));
+ QFont font;
+ font.setFamily(QString::fromUtf8("Zero Threes"));
+ font.setPointSize(8);
+ nameNPLineEdit->setFont(font);
+ nameNPLineEdit->setMaxLength(12);
+ subcategoryNPGroupBox = new Q3GroupBox(NewPreset);
+ subcategoryNPGroupBox->setObjectName(QString::fromUtf8("subcategoryNPGroupBox"));
+ subcategoryNPGroupBox->setGeometry(QRect(10, 50, 120, 50));
+ subcategoryNPLineEdit = new QLineEdit(subcategoryNPGroupBox);
+ subcategoryNPLineEdit->setObjectName(QString::fromUtf8("subcategoryNPLineEdit"));
+ subcategoryNPLineEdit->setGeometry(QRect(10, 20, 100, 21));
+ subcategoryNPLineEdit->setFont(font);
+ subcategoryNPLineEdit->setMaxLength(12);
+ categoryNPGroupBox = new Q3GroupBox(NewPreset);
+ categoryNPGroupBox->setObjectName(QString::fromUtf8("categoryNPGroupBox"));
+ categoryNPGroupBox->setGeometry(QRect(10, 100, 120, 50));
+ categoryNPLineEdit = new QLineEdit(categoryNPGroupBox);
+ categoryNPLineEdit->setObjectName(QString::fromUtf8("categoryNPLineEdit"));
+ categoryNPLineEdit->setGeometry(QRect(10, 20, 100, 21));
+ categoryNPLineEdit->setFont(font);
+ categoryNPLineEdit->setMaxLength(12);
+ bankNPGroupBox = new Q3GroupBox(NewPreset);
+ bankNPGroupBox->setObjectName(QString::fromUtf8("bankNPGroupBox"));
+ bankNPGroupBox->setGeometry(QRect(140, 0, 60, 50));
+ bankNPSpinBox = new QSpinBox(bankNPGroupBox);
+ bankNPSpinBox->setObjectName(QString::fromUtf8("bankNPSpinBox"));
+ bankNPSpinBox->setGeometry(QRect(10, 20, 40, 21));
+ QFont font1;
+ font1.setFamily(QString::fromUtf8("Zero Threes"));
+ font1.setItalic(true);
+ bankNPSpinBox->setFont(font1);
+ bankNPSpinBox->setMaximum(128);
+ bankNPSpinBox->setMinimum(1);
+ progNPGroupBox = new Q3GroupBox(NewPreset);
+ progNPGroupBox->setObjectName(QString::fromUtf8("progNPGroupBox"));
+ progNPGroupBox->setGeometry(QRect(200, 0, 60, 50));
+ progNPSpinBox = new QSpinBox(progNPGroupBox);
+ progNPSpinBox->setObjectName(QString::fromUtf8("progNPSpinBox"));
+ progNPSpinBox->setGeometry(QRect(10, 20, 40, 21));
+ progNPSpinBox->setFont(font1);
+ progNPSpinBox->setMaximum(128);
+ progNPSpinBox->setMinimum(1);
+ WantButtonGroup = new Q3ButtonGroup(NewPreset);
+ WantButtonGroup->setObjectName(QString::fromUtf8("WantButtonGroup"));
+ WantButtonGroup->setGeometry(QRect(140, 50, 119, 100));
+ CancelPushButton = new QPushButton(WantButtonGroup);
+ CancelPushButton->setObjectName(QString::fromUtf8("CancelPushButton"));
+ CancelPushButton->setGeometry(QRect(10, 60, 100, 30));
+ OkPushButton = new QPushButton(WantButtonGroup);
+ OkPushButton->setObjectName(QString::fromUtf8("OkPushButton"));
+ OkPushButton->setGeometry(QRect(10, 20, 100, 30));
+
+ retranslateUi(NewPreset);
+ QObject::connect(OkPushButton, SIGNAL(clicked()), NewPreset, SLOT(accept()));
+ QObject::connect(CancelPushButton, SIGNAL(clicked()), NewPreset, SLOT(reject()));
+
+ QMetaObject::connectSlotsByName(NewPreset);
+ } // setupUi
+
+ void retranslateUi(QDialog *NewPreset)
+ {
+ NewPreset->setWindowTitle(QApplication::translate("NewPreset", "New preset", 0, QApplication::UnicodeUTF8));
+ nameNPGroupBox->setTitle(QApplication::translate("NewPreset", "Preset Name", 0, QApplication::UnicodeUTF8));
+ nameNPLineEdit->setText(QApplication::translate("NewPreset", "INIT VOICE", 0, QApplication::UnicodeUTF8));
+ subcategoryNPGroupBox->setTitle(QApplication::translate("NewPreset", "Subcategory", 0, QApplication::UnicodeUTF8));
+ subcategoryNPLineEdit->setText(QApplication::translate("NewPreset", "NONE", 0, QApplication::UnicodeUTF8));
+ categoryNPGroupBox->setTitle(QApplication::translate("NewPreset", "Category", 0, QApplication::UnicodeUTF8));
+ categoryNPLineEdit->setText(QApplication::translate("NewPreset", "NONE", 0, QApplication::UnicodeUTF8));
+ bankNPGroupBox->setTitle(QApplication::translate("NewPreset", "Bank", 0, QApplication::UnicodeUTF8));
+#ifndef QT_NO_TOOLTIP
+ bankNPSpinBox->setProperty("toolTip", QVariant(QApplication::translate("NewPreset", "Bank numerous", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_TOOLTIP
+ progNPGroupBox->setTitle(QApplication::translate("NewPreset", "Prog", 0, QApplication::UnicodeUTF8));
+#ifndef QT_NO_TOOLTIP
+ progNPSpinBox->setProperty("toolTip", QVariant(QApplication::translate("NewPreset", "Program numerous", 0, QApplication::UnicodeUTF8)));
+#endif // QT_NO_TOOLTIP
+ WantButtonGroup->setTitle(QApplication::translate("NewPreset", "New preset", 0, QApplication::UnicodeUTF8));
+ CancelPushButton->setText(QApplication::translate("NewPreset", "&Cancel", 0, QApplication::UnicodeUTF8));
+ CancelPushButton->setShortcut(QApplication::translate("NewPreset", "Alt+C", 0, QApplication::UnicodeUTF8));
+ OkPushButton->setText(QApplication::translate("NewPreset", "&Ok", 0, QApplication::UnicodeUTF8));
+ OkPushButton->setShortcut(QApplication::translate("NewPreset", "Alt+O", 0, QApplication::UnicodeUTF8));
+ } // retranslateUi
+
+
+protected:
+ enum IconID
+ {
+ image0_ID,
+ unknown_ID
+ };
+ static QPixmap qt_get_icon(IconID id)
+ {
+ static const char* const image0_data[] = {
+"479 360 270 2",
+"cl c #6a3039",
+"ch c #733039",
+"cb c #733439",
+"bY c #7b3439",
+"ca c #7b3441",
+"bV c #7b3839",
+"b0 c #7b3841",
+"bS c #833839",
+"bO c #833841",
+"bX c #833c41",
+"bK c #8b3841",
+"bF c #8b3c41",
+"bL c #8b3c4a",
+"bZ c #8b4041",
+"b5 c #8b404a",
+"bx c #943c41",
+"bG c #943c4a",
+"bv c #944041",
+"bA c #94404a",
+"b4 c #94444a",
+"bh c #9c4041",
+"be c #9c404a",
+"bj c #9c444a",
+"b8 c #9c484a",
+"cd c #9c4852",
+"ci c #9c5d5a",
+"ce c #9c5d62",
+"cj c #9c615a",
+"cf c #9c6162",
+"#a c #a43841",
+"b. c #a4404a",
+"a5 c #a4444a",
+"bd c #a44452",
+"bq c #a4484a",
+"bo c #a44852",
+"c# c #a44c4a",
+"cc c #a44c52",
+"bP c #a46162",
+"b1 c #a46562",
+".2 c #ac3841",
+".1 c #ac3c41",
+"aV c #ac444a",
+"a9 c #ac4452",
+"aR c #ac484a",
+"a1 c #ac4852",
+"b7 c #ac4c4a",
+"bs c #ac4c52",
+"c. c #ac5052",
+"bN c #ac6162",
+"bC c #ac6562",
+"bE c #ac656a",
+".Y c #b43c41",
+".0 c #b43c4a",
+"#c c #b44041",
+".Z c #b4404a",
+"aD c #b4484a",
+"aF c #b44852",
+"aO c #b44c52",
+"bz c #b44c5a",
+"br c #b45052",
+"bB c #b4505a",
+"b2 c #b45552",
+"b3 c #b4555a",
+"bQ c #b46562",
+"bt c #b4656a",
+"cg c #b46962",
+"bb c #b4696a",
+"## c #bd4041",
+".X c #bd404a",
+".W c #bd444a",
+"ay c #bd484a",
+"ax c #bd4852",
+"as c #bd4c52",
+"aP c #bd4c5a",
+"aQ c #bd5052",
+"aX c #bd505a",
+"bu c #bd5552",
+"bw c #bd555a",
+"bW c #bd595a",
+"a8 c #bd696a",
+"bk c #bd6973",
+"a0 c #bd6d6a",
+"a2 c #bd6d73",
+".U c #c5444a",
+".V c #c54452",
+"#s c #c5484a",
+"#v c #c54852",
+"ad c #c54c52",
+"av c #c54c5a",
+"ak c #c55052",
+"aq c #c5505a",
+"aN c #c5555a",
+"bn c #c5595a",
+"by c #c55962",
+"bR c #c55d5a",
+"bU c #c55d62",
+".3 c #c5656a",
+".# c #c5696a",
+"a3 c #c56d6a",
+"aJ c #c56d73",
+"aE c #c57173",
+"#. c #cd444a",
+"#n c #cd4452",
+".T c #cd484a",
+".S c #cd4852",
+"#A c #cd4c52",
+"#3 c #cd5052",
+"a. c #cd505a",
+"ah c #cd555a",
+"aL c #cd595a",
+"aZ c #cd5962",
+"bm c #cd5d5a",
+"bg c #cd5d62",
+"bJ c #cd6162",
+"b9 c #cd6562",
+".a c #cd696a",
+"Qt c #cd6973",
+"#g c #cd6d6a",
+".b c #cd6d73",
+"b6 c #cd716a",
+"at c #cd7173",
+"az c #cd717b",
+"an c #cd7573",
+"au c #cd757b",
+".9 c #d5484a",
+".R c #d54852",
+".Q c #d54c52",
+"#G c #d54c5a",
+"#E c #d55052",
+"#U c #d5505a",
+"#1 c #d5555a",
+"ag c #d5595a",
+"ap c #d55962",
+"aK c #d55d5a",
+"aI c #d55d62",
+"ba c #d56162",
+"bl c #d5616a",
+"bD c #d56562",
+"bH c #d5656a",
+"bT c #d5696a",
+".4 c #d56d6a",
+".c c #d56d73",
+"ck c #d5716a",
+"#i c #d57173",
+"#r c #d5717b",
+"al c #d57573",
+"aa c #d5757b",
+"#9 c #d5797b",
+".P c #de4c52",
+"#f c #de4c5a",
+".N c #de5052",
+".O c #de505a",
+"#J c #de555a",
+"#Y c #de595a",
+"#5 c #de5962",
+"ai c #de5d5a",
+"aj c #de5d62",
+"aH c #de6162",
+"aW c #de616a",
+"a7 c #de6562",
+"a6 c #de656a",
+"bp c #de696a",
+"bM c #de6973",
+"bI c #de6d6a",
+".d c #de6d73",
+".e c #de7173",
+".f c #de717b",
+"#o c #de7573",
+"#l c #de757b",
+"#C c #de797b",
+"#6 c #de7983",
+"#7 c #de7d7b",
+"#8 c #de7d83",
+".8 c #e65052",
+".M c #e6505a",
+".L c #e6555a",
+"#M c #e6595a",
+"#R c #e65962",
+"#0 c #e65d5a",
+"#Z c #e65d62",
+"ae c #e66162",
+"ao c #e6616a",
+"aC c #e66562",
+"aA c #e6656a",
+"aY c #e6696a",
+"b# c #e66973",
+"bc c #e66d6a",
+"bf c #e66d73",
+".i c #e67173",
+".g c #e6717b",
+".j c #e67573",
+".h c #e6757b",
+"#p c #e6797b",
+"#B c #e67983",
+"#H c #e67d7b",
+"#F c #e67d83",
+".J c #ee555a",
+".I c #ee595a",
+".K c #ee5962",
+"#N c #ee5d5a",
+"#P c #ee5d62",
+"#X c #ee6162",
+"#4 c #ee616a",
+"ab c #ee6562",
+"ac c #ee656a",
+"aw c #ee696a",
+"aG c #ee6973",
+"aM c #ee6d6a",
+"aS c #ee6d73",
+"a4 c #ee7173",
+"bi c #ee717b",
+".5 c #ee7573",
+".k c #ee757b",
+".l c #ee797b",
+"#m c #ee7983",
+"#u c #ee7d7b",
+"#t c #ee7d83",
+"#K c #ee8183",
+"#2 c #ee818b",
+".H c #f6595a",
+".G c #f65962",
+"#d c #f65d5a",
+".F c #f65d62",
+"#L c #f66162",
+"#T c #f6616a",
+"#V c #f66562",
+"#W c #f6656a",
+"a# c #f6696a",
+"af c #f66973",
+"am c #f66d6a",
+"ar c #f66d73",
+"aB c #f67173",
+"aU c #f6717b",
+"aT c #f67573",
+".6 c #f6757b",
+".m c #f6797b",
+".n c #f67983",
+"#h c #f67d7b",
+"#e c #f67d83",
+"#x c #f68183",
+"#I c #f6818b",
+"#Q c #f68583",
+"#O c #f6858b",
+".E c #ff5d62",
+".C c #ff6162",
+".D c #ff616a",
+".7 c #ff6562",
+".B c #ff656a",
+".A c #ff696a",
+".z c #ff6973",
+".y c #ff6d6a",
+".x c #ff6d73",
+".v c #ff7173",
+".w c #ff717b",
+".u c #ff7573",
+".t c #ff757b",
+".q c #ff797b",
+".o c #ff7983",
+".r c #ff7d7b",
+".p c #ff7d83",
+".s c #ff8183",
+"#b c #ff818b",
+"#k c #ff8583",
+"#j c #ff858b",
+"#q c #ff898b",
+"#w c #ff8994",
+"#z c #ff8d8b",
+"#y c #ff8d94",
+"#D c #ff9194",
+"#S c #ff919c",
+"Qt.#Qt.aQt.a.b.a.c.a.c.a.c.c.c.c.c.c.c.c.d.c.e.c.e.d.e.d.f.e.e.e.g.e.g.e.g.e.h.e.h.i.h.i.h.i.h.j.k.h.k.h.k.k.k.k.k.k.l.k.l.k.m.k.m.k.m.k.m.m.m.m.n.m.m.m.n.m.n.m.o.m.p.m.p.m.p.m.p.q.p.q.p.q.p.q.p.r.p.r.p.p.p.r.p.p.p.r.p.p.p.p.p.p.p.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.p.p.r.p.p.p.r.p.p.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.p.q.p"
+".q.o.q.o.q.o.q.q.q.o.q.q.q.o.q.q.t.q.t.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.t.t.u.t.t.t.v.t.v.t.v.t.v.t.v.t.v.w.v.w.v.w.v.w.v.v.v.w.x.v.x.v.x.v.x.v.x.v.x.x.x.x.x.x.x.x.y.x.z.x.A.x.A.x.A.x.A.z.A.z.A.z.A.z.A.A.B.z.B.A.B.A.B.B.B.B.B.B.B.B.B.B.C.B.D.B.C.B.C.D.C.D.C.D.C.D.E.D.E.D.E.C.F.C.F.E.F.E.F.F.F.F.G.F.H.F.H.G.I.G.I.G.I.G.J.K.J.K.J.I.L.J.L.J.L.J.M.L.M.L.M.L.N.M.N.M.N.O.P.O.P.O.Q.P.Q.P.Q.Q.R.Q.S.Q.T.R.T.S.T.S.U.S.U.V.U.U.W.U.X.W.X.X.X.X.Y.Z.Y.0.1.0.2.1",
+".3.a.#.a.aQt.aQt.a.b.a.c.a.c.a.c.4.c.4.c.c.d.c.d.c.e.c.e.d.e.d.e.e.e.e.e.e.g.e.i.e.h.e.h.i.h.i.h.i.k.i.k.j.k.j.k.k.k.5.k.k.l.k.l.k.m.k.m.k.m.k.m.6.m.m.m.m.m.m.m.m.o.m.q.m.o.m.r.m.p.m.p.q.p.q.p.q.p.q.p.q.p.r.p.r.p.r.p.r.p.r.p.r.p.r.p.r.p.r.p.p.p.r.p.p.s.r.s.p.s.r.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.r.s.p.s.r.s.p.p.r.p.p.p.r.p.r.p.r.p.r.p.r.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.p.q.p.q.p.q.p.q.q.q.o.q"
+".q.q.q.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.q.t.q.u.t.t.t.u.t.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.t.v.v.v.w.v.v.v.v.v.v.v.v.x.v.x.v.x.v.x.v.x.x.x.x.y.x.x.x.y.x.A.x.A.x.A.x.A.x.A.z.A.z.A.z.A.A.A.A.B.A.B.A.B.A.B.A.B.B.B.B.B.B.B.B.7.B.C.B.C.B.C.B.C.D.C.D.C.C.C.D.C.C.E.C.E.C.E.C.F.E.F.E.F.F.F.F.H.F.H.F.H.F.H.G.I.G.I.G.J.I.J.I.J.I.J.J.L.J.L.J.L.L.M.L.8.L.8.M.N.M.N.M.P.N.P.O.Q.N.Q.P.Q.Q.Q.Q.9.Q.S.R.T.S.T.S#..S.U.S.U.U.U.U.X.U.X.U##.X##.X.Y.Z.Y.0.1.Y.2.1#a",
+"Qt.#Qt.a.b.a.c.a.c.a.cQt.c.c.c.c.c.c.d.c.e.c.e.c.e.d.f.e.e.e.g.e.g.e.g.e.h.e.h.i.h.i.h.i.h.j.k.h.k.h.k.k.k.k.l.k.l.k.l.k.l.k.m.k.m.l.n.m.m.m.n.m.n.m.n.m.n.m.p.m.p.m.p.m.p.m.p.q.p.q.p.q.p.r.p.p.p.r.p.p.p.r.p.p.p.p.p.p.p.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s#b.s.s.s#b.s.s.s#b.s.s.s#b.s.s.s#b.s.s.s#b.s.s.s#b.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.p.p.p.p.r.p.p.p.r.p.p.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p"
+".q.p.q.p.q.o.q.o.q.o.q.o.q.q.q.o.q.q.t.q.t.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.t.t.u.t.t.t.v.t.v.t.v.t.v.t.v.t.v.w.v.w.v.w.v.w.v.v.v.w.x.v.x.v.x.v.x.v.x.x.x.x.x.x.x.x.x.x.y.x.z.x.A.x.A.x.A.x.A.z.A.z.A.z.A.z.B.A.B.z.B.A.B.A.B.B.B.B.B.B.B.B.B.B.C.B.D.B.C.B.C.D.C.D.C.D.C.D.E.C.E.D.E.C.F.E.F.E.F.E.F.F.G.F.G.F.H.F.H.G.I.G.I.G.I.G.J.K.J.K.J.J.L.J.L.J.L.J.M.L.M.L.M.M.N.M.N.O.N.O.P.O.Q.O.Q.P.Q.Q.Q.Q.R.Q.S.R.T.S.T.S.U.S.U.S.U.V.U.U.X.U.X.W##.X#c.X.Y.Z.Y.0.1.1",
+".#.a.#Qt.aQt.a.b.a.b.a.c.a.c.4.c.4.c.c.c.c.c.c.e.c.e.d.e.d.e.e.e.e.e.e.g.e.i.e.h.e.h.i.h.i.h.i.k.j.k.j.k.j.k.k.k.5.k.k.l.k.l.k.m.k.m.k.m.k.m.m.m.l.m.m.m.m.m.m.o.m.q.m.p.m.p.m.p.m.p.q.p.q.p.q.p.q.p.r.p.r.p.r.p.r.p.r.p.r.p.r.p.r.p.p.p.r.p.p.s.r.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.r.s.p.s.r.s.p.p.r.p.p.p.r.p.r.p.r.p.r.p.r.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.p.q.p.q.q.q"
+".o.q.q.q.q.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.q.t.q.t.t.t.t.u.t.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.t.v.v.v.w.v.v.v.v.v.v.v.v.x.v.x.v.x.v.x.v.x.x.x.x.y.x.x.x.y.x.A.x.A.x.A.x.A.x.A.z.A.z.A.z.A.A.A.A.B.A.B.A.B.A.B.A.B.B.B.B.7.B.B.B.7.B.C.B.C.B.C.B.C.D.C.D.C.C.C.D.E.C.E.C.E.C.E.E.F.E.F.E#d.F.G.F.H.F.H.F.I.G.I.G.I.G.I.G.J.I.J.I.J.I.J.J.L.J.L.J.8.L.M.L.8.L.N.M.N.M.N.O.P.N.P.N.Q.P.Q.P.Q.Q.R.Q.T.Q.T.R.T.S.T.S.U.T.U.S.U.U.U.U.X.U.X.X##.X#c.X.Y.Z.Y.Y.1.1.2",
+"Qt.aQt.a.b.a.c.a.cQt.c.b.c.c.c.c.d.c.e.c.e.c.e.c.f.e.e.e.f.e.f.e.g.e.h.e.h.i.h.i.h.i.h.j.k.h.k.h.k.h.k.h.l.k.l.k.l.k.l.k.m.k.m.l.n.l.m.l.n.m.n.m.n.m#e.m.p.m.p.m.p.m.p.m.p.q.p.q.p.r.p.r.p.p.p.r.p.p.p.p.p.p.p.p.p.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.s.s.s.s.s.s.s.s.s.s.s#b.s.s.s#b.s.s.s#b.s.s.s#b.s.s.s#b.s.s.s#b.s.s.s#b.s.s.s#b.s.s.s#b.s.s.s#b.s.s.s#b.s.s.s#b.s.s.s#b.s.s.s#b.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p.p.p.r.p.p.p.r.p.r.p.q.p.q.p.q.p.q.p"
+".q.p.q.p.q.p.q.o.q.o.q.o.q.o.q.q.q.o.q.q.q.q.t.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.t.t.u.t.t.t.u.t.v.t.v.t.v.t.v.t.v.w.v.w.v.w.v.w.v.v.v.w.x.v.x.v.x.v.x.v.x.x.x.x.x.x.x.x.x.x.y.x.z.x.A.x.A.x.A.z.A.z.A.z.A.z.A.z.B.A.B.z.B.A.B.A.B.B.B.B.B.B.B.B.D.B.C.B.D.B.C.B.C.D.C.D.C.D.C.D.E.C.E.D.E.C.F.E.F.E.F.E.F.F.G.F.G.F.H.F.H.G.I.G.I.G.I.G.J.I.J.K.J.J.L.J.L.J.L.L.M.L.8.L.M.M.N.M.N.O.P.O.P.O.Q#f.Q.P.Q.Q.R.Q.S.Q.S.R.T.S.T.S.U.S.U.U.U.V.U.U.X.U.X.X#c.X.Y.Z.Y.Z.1.Y",
+".#Qt.#Qt.a.b.a.b.a.c.a.c#g.c.4.c.c.c.c.c.c.e.c.e.c.e.c.e.e.e.e.e.e.g.e.i.e.h.e.h.i.h.i.h.i.h.j.k.j.k.j.k.h.k.j.k.k.l.k.l.k.m.k.m.k.m.k.m.l.m.l.m.m.m.m.m.m.o.m#h.m.p.m.p.m.p.m.p.q.p.q.p.q.p.r.p.r.p.r.p.r.p.r.p.r.p.r.p.p.p.r.p.p.s.r.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.r.s.p.s.r.s.p.p.r.p.p.p.r.p.r.p.r.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.p.q.p.q"
+".r.q.o.q.q.q.o.q.q.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.q.t.t.t.t.u.t.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.t.v.v.v.w.v.v.v.v.v.v.v.v.x.v.x.v.x.v.x.v.x.x.x.x.y.x.x.x.y.x.A.x.A.x.A.x.A.x.A.z.A.z.A.z.A.A.A.A.B.A.B.A.B.A.B.A.B.B.B.B.7.B.B.B.C.B.C.B.C.B.C.B.C.D.C.D.C.C.C.D.E.C.E.C.E.C.E.E.F.E.F.E#d.F.G.F.H.F.H.F.I.G.I.G.I.G.I.G.J.I.J.I.J.J.L.J.L.J.L.J.8.L.M.L.N.M.N.M.N.M.N.O.P.N.P.N.Q.P.Q.P.Q.Q.R.Q.T.Q.T.R.T.S#..S.U.T.U#..U.U.U.U.X.W.X.X#c.X.Y.X.Y#c.Y.Y.1",
+"Qt.a.b.a.b.a.cQt.c#g.c.c.c.c.c.c#i.c.e.c.e.c.f.e.e.e.f.e.f.e.g.e.h.e.h.i.h.i.h.g.h.j.k.h.k.h.k.h.k.h.l.k.l.k.l.k.l.k.m.k.m.l.n.l.m.l.n.m.n.m.n.m#e.m.p.m.p.m.p.m.p.m.p.q.p.r.p.p.p.r.p.p.p.r.p.p.p.p.p.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.s.s.s.s.s.s.s.s.s#b.s.s.s#b.s.s.s#b.s.s.s#b.s.s.s#b.s.s.s#b.s.s.s#b.s.s.s#b.s#b.s#b.s#b.s#b.s#b.s#b.s#b.s#b.s.s.s#b.s.s.s#b.s.s.s#b.s.s.s#b.s.s.s#b.s.s.s#b.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.p.p.r.p.p.p.r.p.p.p.r.p.q.p.q.p"
+".q.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.o.q.q.q.q.t.q.t.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.u.t.t.t.u.t.v.t.v.t.v.t.v.t.v.w.v.w.v.w.v.w.v.v.v.w.x.v.x.v.x.v.x.v.x.x.x.x.x.x.x.x.x.x.A.x.z.x.A.x.A.x.A.z.A.z.A.z.A.z.A.z.B.A.B.A.B.A.B.A.B.B.B.B.B.B.B.B.D.B.C.B.C.B.C.D.C.D.C.D.C.D.C.D.E.C.E.D.E.C.F.E.F.E.F.E.F.F.G.F.G.F.H.G.H.G.I.G.I.K.J.K.J.I.J.K.J.J.L.J.L.L.M.L.M.L.8.L.N.M.N.M.N.O.P.O.P.N.Q#f.Q.Q.Q.Q.R.Q.S.Q.S.S.T.S#..S.U.S.U.U.U.U.X.U.X.W.X.X#c.X.Y.Z.Y.0",
+".#Qt.aQt.a.b.a.c.a.c.a.c#g.c.c.c.c.c.c.e.c.e.c.e.c.e.e.e.e.e.e.g.e.i.e.h.e.h.i.h.i.h.i.h.j.h.j.k.j.k.h.k.j.l.k.l.k.l.k.m.k.m.k.m.l.m.l.m.l.m.m.n.m.m.m.n.m#h.m.p.m.p.m.p.m.p.q.p.q.p.r.p.r.p.r.p.r.p.r.p.r.p.p.p.r.p.p.s.r.s.p.s.r.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.r.s.p.s.r.p.p.p.r.p.p.p.r.p.r.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q"
+".p.q.p.q.p.q.q.q.o.q.q.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.q.t.q.t.t.u.t.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.t.v.v.v.w.v.v.v.v.v.v.x.v.x.v.x.v.x.v.x.v.x.x.x.x.y.x.x.x.y.x.A.x.A.x.A.x.A.x.A.z.A.A.A.z.A.A.A.A.B.A.B.A.B.A.B.A.B.B.B.B.7.B.B.B.C.B.C.B.C.B.C.D.C.D.C.D.C.C.C.D.E.C.E.C.F.C.F.E.F.E.F.E#d.F.G.F.H.F.H.F.I.G.I.G.I.H.J.G.J.I.J.I.L.J.L.J.L.J.L.L.8.L.8.L.N.M.N.M.N.O.P.O.P.N.P.P.Q.P.Q.Q.R.Q.R.Q.T.R.T.R.T.S#..S.U.T.U.U.U.U.X.U##.W##.X#c.X.Y.Z.Y.Y.1",
+".b.a.b.a.cQt.c#g.c.c.c.c.c.c#i.c.e.c.e.c.f.e.e.e.f.e.f.e.g.e.h.e.h.i.h.i.h.g.h.j.k.h.k.h.k.h.k.h.l.k.l.k.l.k.l.k.m.l.m.l.n.l.m.l.n.m.n.m.n.m#e.m.p.m.p.m.p.m.p.m.p.r.p.r.p.p.p.r.p.p.p.p.p.p.p.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.s.s.s.s.s.s.s#b.s.s.s#b.s.s.s#b.s.s.s#b.s.s.s#b.s#b.s#b.s#b.s#b.s#b.s#b.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#b.s#b.s#b.s#b.s#b.s#b.s.s.s#b.s.s.s#b.s.s.s#b.s.s.s#b.s.s.s#b.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p.p.p.r.p.p.p.r.p.r.p"
+".q.p.q.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.o.q.q.q.q.t.q.t.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.u.t.t.t.u.t.v.t.v.t.v.t.v.t.v.w.v.w.v.w.v.w.v.v.v.w.x.v.x.v.x.v.x.v.x.x.x.x.x.x.x.x.x.x.A.x.z.x.A.x.A.x.A.z.A.z.A.z.A.z.A.z.B.A.B.A.B.A.B.B.B.B.B.B.B.B.B.B.D.B.C.B.C.B.C.D.C.D.C.D.C.D.E.D.E.C.E.C.E.E.F.E.F.E.F.E.G.F.H.F.G.F.I.G.I.G.I.G.I.K.J.K.J.I.J.J.L.J.L.J.L.L.M.L.M.L.N.M.N.M.N.M.P.O.P.O.P.P.Q.P.Q.Q.R.Q.R.Q.T.R.S.S.T.S#..S.U.S.U.U.U.U.X.U.X.X.X.X#c.X.Y.Z",
+".aQt.a.b.a.c.a.c.a.c#g.c.c.c.4.c.c.e.c.e.c.e.c.e.e.e.e.e.e.g.e.i.e.h.e.h.i.h.i.h.i.h.j.h.j.k.j.k.h.k.j.l.k.l.k.l.k.l.k.l.k.m.l.m.l.m.l.m.m.n.m.m.m#e.m#e.m.p.m.p.m.p.m.p.q.p.q.p.r.p.r.p.r.p.r.p.r.p.r.p.p.p.r.s.p.s.r.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.r.s.p.s.r.p.p.p.r.p.r.p.r.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q"
+".p.q.p.q.p.q.p.q.q.q.o.q.q.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.q.t.q.t.t.u.t.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.t.v.v.v.w.v.v.v.v.v.v.x.v.x.v.x.v.x.v.x.v.x.x.x.x.y.x.x.x.y.x.A.x.A.x.A.x.A.x.A.z.A.A.A.z.A.A.A.A.B.A.B.A.B.A.B.B.B.B.B.B.7.B.B.B.C.B.C.B.C.B.C.D.C.D.C.D.C.C.E.C.E.C.E.C.F.E.F.E.F.E.F.E.H.F.H.F.H.F.H.G.I.G.I.G.I.I.J.K.J.I.J.I.L.J.L.J.L.L.M.L.8.L.8.L.N.M.N.M.N.O.P.O.P.N.Q.P.Q.Q.Q.Q.R.Q.R.Q.T.R.T.S.T.S#..S.U.U.U.U.U.U.X.U##.X##.X#c.X.Y.Z.1",
+".b.a.cQt.c#g.c.c.c.c.c.c#i.c.e.c.e.c.f.e.e.e.f.e.f.e.g.e.h.e.h.e.h.e.h.g.h.j.h.h.k.h.k.h.k.h.l.k.l.k.l.k.l.k.m.l.m.l.n.l.m.l.n.m.n.m#e.m#e.m.p.m.p.m.p.m.p.m.p.r.p.r.p.p.p.r.p.p.p.p.p.p.p.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.s.s.s.s.s.s.s#b.s.s.s#b.s.s.s#b.s.s.s#b.s#b.s#b.s#b.s#b.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#b.s#b.s#b.s#b.s.s.s#b.s.s.s#b.s.s.s#b.s.s.s#b.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.p.p.r.p.p.p.r.p"
+".r.p.q.p.q.p.q.p.q.p.q.p.q.p.q.p.q.o.q.o.q.q.q.o.q.q.q.o.t.q.t.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.u.t.t.t.u.t.v.t.v.t.v.t.v.t.v.w.v.w.v.w.v.w.v.v.v.w.x.v.x.v.x.v.x.v.x.x.x.x.x.x.x.x.x.x.A.x.A.x.A.x.A.x.A.z.A.z.A.z.A.z.A.z.B.A.B.A.B.A.B.B.B.B.B.B.B.B.B.B.D.B.C.B.C.B.C.D.C.D.C.D.C.D.E.D.E.C.E.C.E.E.F.E.F.E.F.E.G.F.H.F.G.F.I.G.I.G.I.G.J.K.J.K.J.I.L.J.L.J.L.J.M.L.M.L.M.L.N.M.N.M.N.O.P.O.P.O.Q.P.Q.P.Q.Q.R.Q.S.Q.T.R.T.S.T.S.U.S.U.V.U.U.W.U.X.W.X.X.Z.X.Y.Z",
+".a.b.a.c.a.c.a.c#g.c.c.c.4.c.c.e.c.e.c.e.c.e.e.e.e.e.e.f.e.e.e.h.e.h.e.h.i.h.i.h.j.h.j.k.j.k.h.k.j.l.k.l.k.l.k.l.k.l.k.m.l.m.l.m.l.m.m.n.m.m.m#e.m#e.m.p.m.p.m.p.m.p.q.p.r.p.r.p.r.p.r.p.r.p.p.p.r.p.p.s.r.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s#b.s.s.s#b.s.s.s#b.s.s.s#b.s.s.s#b.s.s.s#b.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.r.s.p.p.r.p.p.p.r.p.r.p.r.p.r.p.r.p.r.p.q.p.q"
+".p.q.p.q.p.q.p.q.p.q.q.q.o.q.q.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.q.t.q.t.t.u.t.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.t.v.v.v.w.v.v.v.v.v.v.x.v.x.v.x.v.x.v.x.v.x.x.x.x.y.x.x.x.y.x.A.x.A.x.A.x.A.x.A.z.A.A.A.z.A.A.B.A.B.A.B.A.B.A.B.B.B.B.B.B.7.B.C.B.C.B.C.B.C.B.C.D.C.D.C.D.C.C.E.C.E.C.E.C.F.E.F.E.F.E.F.E.H.F.H.F.H.F.H.G.I.G.I.G.I.I.J.I.J.I.J.J.L.J.L.J.L.L.M.L.8.L.8.M.N.M.N.M.P.N.P.O.Q.N.Q.P.Q.Q.Q.Q.9.Q.S.R.T.S.T.S#..S.U.S.U.U.U.U.X.U.X.U##.X##.X.Y.Z.Y",
+".cQt.c#g.c.b.c.c.c.c#i.c.e.c.e.c.f#i.e.e.f.e.f.e.g.e.h.e.h.e.h.e.h.g.h.j.h.h.h.h.k.h.k.h.l.k.l.k.l.k.l.k.m.l.m.l.n.l.m.l.n.m.n.m#e.m#e.m.p.m.p.m.p.m.p#h.p.p.p.r.p.p.p.r.p.p.p.p.p.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.s.s.s.s.s#b.s.s.s#b.s.s.s#b.s.s.s#b.s#b.s#b.s#b.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#b.s#b.s#b.s.s.s#b.s.s.s#b.s.s.s#b.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.p.p.r.p.p.p"
+".r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.o.q.q.q.o.q.q.t.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.u.t.t.t.u.t.v.t.v.t.v.t.v.t.v.w.v.w.v.w.v.w.v.v.v.w.x.v.x.v.x.v.x.v.x.x.x.x.x.x.x.x.x.x.A.x.A.x.A.x.A.x.A.z.A.z.A.z.A.A.B.z.B.A.B.A.B.A.B.B.B.B.B.B.B.B.C.B.D.B.C.B.C.B.C.D.C.D.C.D.C.D.E.D.E.C.E.C.F.E.F.E.F.E.F.E.G.F.H.F.H.G.I.G.I.G.I.G.J.K.J.K.J.I.L.J.L.J.L.J.M.L.M.L.M.M.N.M.N.O.N.O.P.O.Q.O.Q.P.Q.Q.Q.Q.S.Q.S.R.T.S.T.S.U.S.U.S.U.V.U.U.X.U.X.X##.X#c.X",
+".a.b.a.b.a.c#g.c.c.c.4.c.c#i.c#i.c.e.c.e.e.e.e.e.e.f.e.e.e.h.e.h.e.h.e.h.i.h.j.h.j.k.j.k.h.k.j.l.k.l.k.l.k.l.k.l.l.m.l.m.l.m.l.m.m.n.m.m.m#e.m#e.m.p.m.p.m.p.m.p.r.p#h.p.r.p.r.p.r.p.r.p.p.p.r.s.p.s.r.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s#b.s.s.s#b.s.s.s#j.s#k.s#j.s#k.s#j.s#k.s#j.s#k.s#j.s#k.s#j.s#k.s#j.s#k.s#j.s#k.s#b.s.s.s#b.s.s.s#b.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.r.s.p.p.r.p.p.p.r.p.r.p.r.p.r.p.r.p.r.p.q"
+".p.q.p.q.p.q.p.q.p.q.p.q.r.q.o.q.q.q.q.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.q.t.t.u.t.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.t.v.v.v.w.v.v.v.v.v.v.x.v.x.v.x.v.x.v.x.x.x.x.x.x.y.x.y.x.y.x.A.x.A.x.A.x.A.z.A.z.A.A.A.z.A.A.B.A.B.A.B.A.B.A.B.B.B.B.B.B.7.B.C.B.C.B.C.B.C.B.C.D.C.D.C.D.C.C.E.C.E.C.E.C.F.E.F.E.F.E.F.E.H.F.H.F.H.F.H.G.I.G.I.G.J.I.J.I.J.I.J.J.L.J.L.J.8.L.M.L.8.L.8.M.N.M.N.M.P.N.P.N.Q.P.Q.P.Q.Q.R.Q.T.Q.T.R.T.S.T.S.U.T.U#..U.U.U.U.X.U.X.X##.X#c.X.Y",
+".c#g.c.b.c.b.c.c#i.c.e.c.e.c.f.c.e#i.f.e.f.e.f.e.h.e.h.e.h.e.h.g.h.j.h.h.h.h.k.h.k.h.l.k.l.k.l.k.l.k.l.l.l.l.n.l.n.l.n.m.n.m#e.m#e.m#e.m#e.m.p.m.p#h.p.p.p.r.p.p.p.p.p.p.p.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.s.s.s.s.s.s.s#b.s.s.s#b.s.s.s#b.s#b.s#b.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#b.s#b.s.s.s#b.s.s.s#b.s.s.s#b.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p"
+".p.p.r.p.p.p.r.p.q.p.q.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.o.q.q.q.o.q.q.t.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.u.t.t.t.u.t.v.t.v.t.v.t.v.t.v.w.v.w.v.w.v.w.v.v.v.w.x.v.x.v.x.v.x.v.x.x.x.x.x.x.x.x.x.x.A.x.A.x.A.x.A.z.A.z.A.z.A.z.A.A.B.z.B.A.B.A.B.A.B.B.B.B.B.B.B.B.C.B.D.B.C.B.C.D.C.D.C.D.C.D.E.C.E.D.E.C.F.E.F.E.F.E.F.F.G.F.G.F.H.F.H.G.I.G.I.G.I.G.J.I.J.K.J.J.L.J.L.J.L.L.M.L.8.L.M.M.N.M.N.O.P.O.P.N.Q#f.Q.Q.Q.Q.R.Q.S.Q.S.S.T.S.T.S.U.S.U.U.U.U.U.U.X.U.X.X#c.X",
+".a.b.a.c#g.c.b.c.4.c.c#i.c#i.c.e.c.e.c.e#i.e.e.f.e.e.e.h.e.h.e.h.e.h.i.h.j.h.j.k.j.k.h.k.h.l.k.l.k.l.k.l.k.l.l.m.l.m.l.m.l.m.m.n.m#h.m#e.m#e.m.p.m.p.m.p.m.p#h.p#h.p.r.p.r.p.r.p.r.p.p.s.r.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s#b.s.s.s#b.s#k.s#j.s#k.s#j.s#k.s#j.s#k.s#j.s#k.s#j.s#k.s#j.s#k.s#j.s#k.s#j.s#k.s#j.s#k.s#j.s#k.s#j.s#k.s#j.s#k.s#j.s#k.s#j.s.s.s#b.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.r.p.p.p.r.p.r.p.r.p.r.p.r.p.r"
+".p.r.p.q.p.q.p.q.p.q.p.q.p.q.r.q.o.q.q.q.o.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.q.t.t.u.t.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.t.v.v.v.w.v.v.v.v.v.v.x.v.x.v.x.v.x.v.x.x.x.x.x.x.y.x.y.x.A.x.A.x.A.x.A.x.A.z.A.z.A.A.A.z.A.A.B.A.B.A.B.A.B.B.B.B.B.B.B.B.7.B.C.B.C.B.C.B.C.D.C.D.C.C.C.D.E.C.E.C.E.C.E.E.F.E.F.E#d.F.G.F.H.F.H.F.I.G.I.G.I.G.I.G.J.I.J.I.J.I.J.J.L.J.L.J.8.L.M.L.N.M.N.M.N.O.N.O.P.N.P.N.Q.P.Q.P.Q.Q.R.Q.T.Q.T.R.T.S#..S.U.T.U.U.U.U.U.U.X.W.X.X#c.X.Y",
+".c.b.c.b.c.c.c.c#i.c#i.c.f.c.e#i.f.e.f.e.f.e#l.e.h.e.h.e.h.g.h.j.h.h.h.h.k.h.k.h.l.h.l.h.l.k.l.k#m.l.l.l.n.l.n.l.n.m#e.m#e.m#e.m#e.m#e.m.p.m.p#h.p#e.p#h.p.p.p.p.p.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.s.s.s.s.s#b.s.s.s#b.s.s.s#b.s#b.s#b.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#b.s#b.s#b.s.s.s#b.s.s.s#b.s.s.s#b.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p"
+".r.p.p.p.r.p.p.p.r.p.q.p.q.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.o.q.q.q.o.q.q.t.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.u.t.t.t.u.t.v.t.v.t.v.t.v.t.v.w.v.w.v.w.v.w.v.v.x.w.x.v.x.v.x.v.x.x.x.x.x.x.x.x.y.x.z.x.A.x.A.x.A.x.A.z.A.z.A.z.A.z.A.A.B.z.B.A.B.A.B.B.B.B.B.B.B.B.B.B.C.B.D.B.C.B.C.D.C.D.C.D.C.D.E.C.E.D.E.C.F.E.F.E.F.E.F.F.G.F.G.F.H.F.H.G.I.G.I.G.J.K.J.I.J.K.J.J.L.J.L.L.M.L.M.L.N.L.N.M.N.M.N.O.P.O.P.N.Q.P.Q.Q.Q.Q.R.Q.S.Q.S.S.T.S#..S.U.S.U.U.U.U.X.U.X.W.X.X",
+".a.c#g.c.b.c#g.c.c#i.c#i.c.e.c.e.c.e#i.e.e.f.e.e.e.h.e.h.e.h.e.h.i.h.j.h.j.h.j.h.h.k.h.l.h.l.h.l.k.l.k.l.l.m.l.m.l.m.l.m.m.n.m#h.m#e.m#e.m.p.m.p.m.p#h.p#h.p#h.p.r.p.r.p.p.p.r.p.p.s.r.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s#b.s.s.s#j.s#k.s#j.s#k.s#j.s#k.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#k.s#j.s#k.s#j.s#k.s#j.s#k.s#b.s.s.s#b.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.r.s.p.p.r.p.p.p.r.p.r.p.r"
+".p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.r.q.o.q.q.q.o.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.q.t.t.u.t.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.t.v.v.v.w.v.v.v.v.v.v.x.v.x.v.x.v.x.v.x.x.x.x.x.x.y.x.y.x.A.x.A.x.A.x.A.x.A.z.A.z.A.A.A.z.A.A.B.A.B.A.B.A.B.B.B.B.7.B.B.B.7.B.C.B.C.B.C.B.C.D.C.D.C.C.C.D.E.C.E.C.E.C.E.E.F.E.F.E#d.F.G.F.H.F.H.F.I.G.I.G.I.G.I.G.J.I.J.I.L.J.L.J.L.J.L.L.8.L.8.L.N.M.N.M.N.O.P.O.P.N.P.P.Q.P.Q.Q.R.Q.R.Q.T.R.T.S.T.S#..S.U.T.U.U.U.U.X.U##.X##.X#c",
+".c.b.c.c.c.c#i.c#i.c.e.c.e#i.f.e.f.e.f.e#l.e.h.e.h.e.h.g.h.j.h.h.h.h.k.h.k.h.l.h.l.h.l.k.l.k#m.l.l.l.n.l.n.l.n.l#e.l#e.m#e.m#e.m#e.m.p#h.p#h.p#e.p#h.p.p.p.p.p.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.s.s.s.s.s.s.s#b.s.s.s#b.s.s.s#b.s#b.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#b.s#b.s#b.s.s.s#b.s.s.s#b.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.p"
+".p.p.p.p.p.p.r.p.p.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.o.q.q.q.o.q.q.t.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.u.t.t.t.u.t.v.t.v.t.v.t.v.t.v.w.v.w.v.w.v.w.v.v.x.w.x.v.x.v.x.v.x.x.x.x.x.x.x.x.y.x.z.x.A.x.A.x.A.x.A.z.A.z.A.z.A.z.B.A.B.z.B.A.B.A.B.B.B.B.B.B.B.B.D.B.C.B.C.B.C.B.C.D.C.D.C.D.C.D.E.C.E.D.E.C.F.E.F.E.F.E.G.F.H.F.G.F.H.G.I.G.I.G.I.K.J.K.J.I.J.J.L.J.L.J.L.L.M.L.M.L.N.M.N.M.N.M.P.O.P.O.Q.P.Q.P.Q.Q.R.Q.R.Q.T.R.T.S.T.S.U.S.U#n.U.U.W.U.X.W.X.X",
+".a.c.b.c#g.c.c.c.c#i.c.e.c.e.c.e#i.e.e.f.e.e.e.h.e.h.e.h.e.h.i.h.j.h.j.h.j.h.h.k.h.l.h.l.h.l.k.l.k.l.l.m.l.m.l.m.l.m.l.n.l#h.m#e.m#e.m.p.m.p.m.p#h.p#h.p#h.p.r.p.r.p.p.p.r.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s#b.s.s.s#j.s#k.s#j.s#k.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#k.s#j.s#k.s#j.s#k.s#b.s.s.s#b.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.r.s.p.p.r.p.p.p.r.p.r"
+".p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.p.q.o.q.q.q.o.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.q.t.t.u.t.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.w.v.v.v.w.v.v.v.v.v.v.x.v.x.v.x.v.x.v.x.x.y.x.x.x.y.x.y.x.A.x.A.x.A.x.A.x.A.z.A.z.A.A.A.A.B.A.B.A.B.A.B.A.B.B.B.B.7.B.B.B.C.B.C.B.C.B.C.D.C.D.C.D.C.C.C.D.E.C.E.C.F.C.F.E.F.E.F.E#d.F.H.F.H.F.H.G.I.G.I.G.I.I.J.K.J.I.J.I.L.J.L.J.L.L.M.L.8.L.8.M.N.M.N.M.N.O.P.O.Q.N.Q.P.Q.Q.Q.Q.R.Q.S.Q.T.S.T.S#..S.U.S.U.U.U.U.W.U.X.U##.X##",
+".c.c.c.c#i.c#i.c.e.c.e#i.f.e.f.e.f.e#l.e.h.e.h.e.h.e.h#o.h.h.h.h.h.h.k.h.l.h.l.h.l.k.l.k#m.l.l.l.n.l.n.l.n.l#e.l#e.m#e.m#e.m#e.m.p#h.p#h.p#e.p#h.p.p.p.p.p.p.s.p.s.p.s.p.s.p.s.p.s.p.s.s.s.s.s.s#b.s.s.s#b.s.s.s#b.s#b.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#b.s#b.s.s.s#b.s.s.s#b.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s"
+".p.p.p.p.p.p.p.p.r.p.p.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.o.q.q.t.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.u.t.t.t.v.t.v.t.v.t.v.t.v.t.v.w.v.w.v.w.v.w.v.v.x.v.x.v.x.v.x.v.x.x.x.x.x.x.x.x.y.x.z.x.A.x.A.x.A.x.A.z.A.z.A.z.A.z.B.A.B.A.B.A.B.A.B.B.B.B.B.B.B.B.D.B.C.B.C.B.C.D.C.D.C.D.C.D.E.D.E.C.E.C.E.E.F.E.F.E.F.E.G.F.H.F.G.F.I.G.I.G.I.G.J.K.J.K.J.I.L.J.L.J.L.J.M.L.M.L.M.L.N.M.N.M.N.O.P.O.Q.O.Q.P.Q.P.Q.Q.R.Q.S.Q.T.R.T.S.U.S.U.S.U.V.U.U.X.U.X.W",
+"#g.c#g.c.c.c.c#i.c#i.c.e.c.e#i.e.e.f.e.e.e#l.e#l.e.h.e.h.e.h.j.h.j.h.j.h.h.k.h.l.h.l.h.l.k.l.k.l.l.l.l.l.l.m.l.m.l.n.l#e.m#e.m#e.m#e.m#e.m.p#h.p#h.p#h.p.r.p.r.p.p.p.r.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s#b.s.s.s#j.s#k.s#j.s#k.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#k.s#j.s#k.s#j.s#k.s#b.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.r.p.p.p.r"
+".p.r.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.p.q.q.q.o.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.q.t.t.u.t.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.w.v.v.v.w.v.v.v.v.v.v.x.v.x.v.x.v.x.v.x.x.y.x.x.x.y.x.y.x.A.x.A.x.A.x.A.z.A.z.A.z.A.A.A.A.B.A.B.A.B.A.B.B.B.B.B.B.7.B.B.B.C.B.C.B.C.B.C.D.C.D.C.D.C.C.E.C.E.C.E.C.F.E.F.E.F.E.F.E.H.F.H.F.H.F.H.G.I.G.I.G.I.I.J.I.J.I.J.J.L.J.L.J.L.L.M.L.8.L.8.M.N.M.N.M.P.N.P.O.Q.P.Q.P.Q.Q.R.Q.T.Q.T.R.T.S.T.S.U.T.U.S.U.U.U.U.X.U.X.X##",
+".c.b#i.c#i.c.e.c.e#i.f#i.f#i.f.e#l.e.h.e.h.e.h.e.h#o.h.h.h.h.h.h.h.h.l.h.l.h.l.k.l.k#m.l.l.l.n.l.n.l.n.l#e.l#e.m#e.m#e.m#e.m.p#h.p#h.p#e.p#h.p.p.p.p.s.p.s.p.s.p.s.p.s.p.s.p.s.s.s.s.s.s.s.s#b.s.s.s#b.s#b.s#b.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#b.s#b.s#b.s.s.s#b.s.s.s#b.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s"
+".p.s.p.s.p.p.p.p.p.p.r.p.p.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.o.q.q.t.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.u.t.t.t.v.t.v.t.v.t.v.t.v.t.v.w.v.w.v.w.v.w.v.v.x.v.x.v.x.v.x.v.x.x.x.x.x.x.x.x.y.x.z.x.A.x.A.x.A.z.A.z.A.z.A.z.A.z.B.A.B.A.B.A.B.B.B.B.B.B.B.B.B.B.D.B.C.B.C.B.C.D.C.D.C.D.C.D.E.D.E.C.E.C.E.E.F.E.F.E.F.E.G.F.H.F.H.G.I.G.I.G.I.G.J.K.J.K.J.I.L.J.L.J.L.J.M.L.8.L.M.M.N.M.N.O.P.O.P.O.Q#f.Q.P.Q.Q.R.Q.S.Q.S.R.T.S.T.S.U.S.U.U.U.V.U.U.X.U",
+"#g.c.b.c.c#i.c#i.c#i.c.e#i.e#i.f.e.e.e#l.e#l.e.h.e.h.e.h#o.h.j.h.j.h.h.k.h.l.h.l.h.l.k.l.k.l.l.l.l.l.l.n.l.m.l.n.l#e.m#e.m#e.m#e.m#e.m.p#h.p#h.p#h.p.r.p.r.p.p.s.r.s.p.s.p.s.p.s.p.s.p.s.p.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s#b.s#k.s#j.s#k.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#k.s#j.s#k.s#j.s.s.s#b.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.r.p.p"
+".p.r.p.r.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.p.q.q.q.o.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.q.t.t.u.t.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.w.v.v.v.w.v.v.v.v.x.v.x.v.x.v.x.v.x.x.x.x.y.x.x.x.y.x.A.x.A.x.A.x.A.x.A.z.A.A.A.z.A.A.A.A.B.A.B.A.B.A.B.B.B.B.B.B.7.B.C.B.C.B.C.B.C.B.C.D.C.D.C.D.C.C.E.C.E.C.E.C.F.E.F.E.F.E.F.E.H.F.H.F.H.F.H.G.I.G.I.G.J.I.J.I.J.I.J.J.L.J.L.J.8.L.M.L.8.L.N.M.N.M.N.O.P.N.P.N.Q.P.Q.P.Q.Q.R.Q.T.Q.T.R.T.S#..S.U.T.U.U.U.U.U.U.X.W.X",
+"#i.c#i.c#i.c#i#i.f#i.f#i.f.e.f.e#l.e#l.e.h.e.h#o.h.h.h.h.h.h.h.h.l.h.l.h.l.k.l.k#m.l.l.l#m.l.n.l.n.l#e.l#e.m#e.m#e.m#e.m.p#h.p#h.p#e.p#h.p.p.p.p.s.p.s.p.s.p.s.p.s.p.s.p.s.s.s.s#b.s.s.s#b.s.s.s#b.s#b.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j#k#j#k#j#k#j#k#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#b.s#b.s.s.s#b.s.s.s#b.s.s.s.s.s.s.p.s.p.s.p.s.p.s"
+".p.s.p.s.p.s.p.p.p.p.p.p.r.p.p.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.o.q.q.t.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.u.t.t.t.v.t.v.t.v.t.v.t.v.w.v.w.v.w.v.v.v.w.v.v.x.v.x.v.x.v.x.x.x.x.x.x.x.x.x.x.A.x.z.x.A.x.A.x.A.z.A.z.A.z.A.z.B.z.B.A.B.A.B.A.B.B.B.B.B.B.B.B.C.B.D.B.C.B.C.D.C.D.C.D.C.D.E.C.E.D.E.C.F.E.F.E.F.E.F.F.G.F.G.F.H.F.H.G.I.G.I.G.I.G.J.I.J.K.J.J.L.J.L.J.M.L.M.L.8.L.N.M.N.M.N.O.P.O.P.N.Q#f.Q.Q.Q.Q.R.Q.S.Q.S.S.T.S#..S.U.S.U.U.U.U.X.U",
+".b.c.b#i.c#i.c#i.c.e#i.e#i.f#i.e.e.f.e#l.e.h.e.h.e.h#o.h.j.h.j.h.h.k.j.l.h.l.h.l.k.l.k.l.l.l.l.l.l.n.l.m.l#e.l#e.m#e.m#e.m#e.m#e#h.p#h.p#h.p#h.p.r.p.r.p.p.s.r.s.p.s.p.s.p.s.p.s.p.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s#b.s.s.s#j.s#k.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#k.s#j.s#k.s#b.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.r"
+".s.p.p.r.p.r.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.p.q.q.q.o.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.q.t.t.u.t.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.w.v.v.v.w.v.v.v.v.x.v.x.v.x.v.x.v.x.x.x.x.y.x.x.x.y.x.A.x.A.x.A.x.A.x.A.z.A.A.A.z.A.A.B.A.B.A.B.A.B.A.B.B.B.B.B.B.7.B.C.B.C.B.C.B.C.D.C.D.C.C.C.D.E.C.E.C.E.C.E.E.F.E.F.E#d.F.G.F.H.F.H.F.I.G.I.G.I.G.I.G.J.I.J.I.J.J.L.J.L.J.L.J.8.L.8.L.N.M.N.M.N.O.P.O.P.N.P.P.Q.P.Q.Q.R.Q.R.Q.T.R.T.S.T.S#..S.U.T.U.U.U.U.X.U##",
+"#i.c#i.c#i.c.f#i.f#i.f.e.f.e#l.e#l.e.h.e.h#o.h.h.h.h.h.h.h.h.l.h.l.h.l.h.l.h#m.l.l.l#m.l#m.l.n.l#e.l#e.m#e.m#e.m#e#h#e#e#e#h.p#e.p#e.p.p.p.p.s.p.s.p.s.p.s.p.s.p.s.p.s.s.s.s#b.s.s.s#b.s.s.s#b.s#b.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j#k#j#k#j#k#j#k#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#b.s#b.s#b.s.s.s#b.s.s.s.s.s.s.s.s.p.s.p.s"
+".p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p.p.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.o.q.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.t.t.u.t.t.t.v.t.v.t.v.t.v.t.v.w.v.w.v.w.v.v.v.w.x.v.x.v.x.v.x.v.x.x.x.x.x.x.x.x.x.x.A.x.A.x.A.x.A.x.A.z.A.z.A.z.A.A.B.z.B.A.B.A.B.A.B.B.B.B.B.B.B.B.C.B.D.B.C.B.C.D.C.D.C.D.C.D.E.C.E.D.E.C.F.E.F.E.F.E.F.F.G.F.G.F.H.G.H.G.I.G.I.K.J.K.J.I.J.I.L.J.L.J.L.L.M.L.M.L.N.M.N.M.N.M.P.O.P.O.Q.P.Q.P.Q.Q.R.Q.R.Q.T.R.S.S.T.S.U.S.U#n.U.U.W.U",
+".b.c.c#i.c#i.c.e.c.e#i.f#i.e.e.f.e#l.e.h.e.h.e.h#o.h.j.h.j.h.h.h.j#p.h.l.h.l.h.l.h.l.l.l.l.l.l.n.l.m.l#e.l#e.m#e.m#e.m#e.m#e#h.p#h.p#h.p#h.p#e.p#h.p.p.s.r.s.p.s.p.s.p.s.p.s.p.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s#b.s#k.s#j.s#k.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#k.s#j.s.s.s#b.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p"
+".s.r.s.p.p.r.p.r.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.p.q.q.q.o.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.q.t.t.u.t.t.t.u.t.u.t.v.t.v.t.v.t.v.t.v.t.v.w.v.v.v.w.v.v.v.v.x.v.x.v.x.v.x.v.x.x.x.x.y.x.x.x.y.x.A.x.A.x.A.x.A.z.A.z.A.A.A.z.A.A.B.A.B.A.B.A.B.B.B.B.B.B.B.B.7.B.C.B.C.B.C.B.C.D.C.D.C.C.C.D.E.C.E.C.E.C.E.E.F.E.F.E#d.F.G.F.H.F.H.F.I.G.I.G.I.H.J.K.J.I.J.I.L.J.L.J.L.L.M.L.8.L.8.L.N.M.N.M.N.O.P.O.Q.N.Q.P.Q.Q.Q.Q.R.Q.S.Q.T.S.T.S#..S.U.S.U.U.U.U.W.U.X",
+"#i.c#i.c.f#i.e#i.f.e.f.e#l.e#l.e.h.e.h#o.h#l.h.h.h.h.h.h.l.h.l.h.l.h.l.h#m.l.l.l#m.l#m.l.n.l#e.l#e.l#e.l#e.m#e#h#e#e#e#h.p#e.p#e.p#e.s#e.s.p.s.p.s.p.s.p.s.p.s.s.s.s.s.s#b.s.s.s#b.s#b.s#b.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j#k#j#k#j#k#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#j#j#j#j#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#j#j#j#j#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#b.s#b.s#b.s.s.s#b.s.s.s.s.s.s.s.s.p.s"
+".p.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p.p.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.o.q.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.t.t.u.t.t.t.v.t.v.t.v.t.v.t.v.w.v.w.v.w.v.v.v.w.x.v.x.v.x.v.x.v.x.x.x.x.x.x.x.x.x.x.A.x.A.x.A.x.A.z.A.z.A.z.A.z.A.A.B.z.B.A.B.A.B.B.B.B.B.B.B.B.D.B.C.B.C.B.C.B.C.D.C.D.C.D.C.D.E.C.E.C.E.E.F.E.F.E.F.E.G.F.H.F.G.F.I.G.I.G.I.G.I.K.J.K.J.I.L.J.L.J.L.J.M.L.M.L.M.L.N.M.N.M.N.O.P.O.Q.O.Q.P.Q.P.Q.Q.R.Q.S.Q.T.S.T.S.U.S.U.S.U.V.U.U",
+".c#i.c#i.c#i.c.e#i.e#i.e.e.f.e#l.e#l.e#l.e.h#o.h.j.h.j.h.h.h.j#p.h.l.h.l.h.l.h.l.l.l.l.l.l#m.l.m.l#e.l#e.l#e.l#e.m#e.m#e#h.p#h.p#h.p#h.p#e.p#h.s.p.s.p.s.p.s.p.s.p.s.p.s.s.s.s.s.s.s.s.s.s.s.s.s.s#b.s.s.s#j.s#k.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#k.s#j.s#k.s#b.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p"
+".s.p.s.r.s.p.p.r.p.p.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.p.q.q.q.o.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.q.t.t.u.t.t.t.u.t.u.t.v.t.v.t.v.t.v.t.v.w.v.w.v.v.v.v.v.v.v.v.x.v.x.v.x.v.x.v.x.x.x.x.y.x.y.x.A.x.A.x.A.x.A.x.A.z.A.z.A.A.A.z.A.A.B.A.B.A.B.A.B.B.B.B.7.B.B.B.C.B.C.B.C.B.C.B.C.D.C.D.C.C.C.D.E.C.E.C.F.C.F.E.F.E.F.E.H.F.H.F.H.F.H.G.I.G.I.G.I.I.J.K.J.I.J.J.L.J.L.J.L.L.M.L.8.L.8.M.N.M.N.M.P.N.P.O.Q.P.Q.P.Q.Q.R.Q.T.Q.T.R.T.S.T.S.U.T.U.S.U.U.U.U.X",
+"#i.c.f#i.e#i.f#i.f#i#l.e#l.e.h.e.h.e.h#l.h#l.h.h.h.h#p.h#p.h.l.h.l.h.l.l.l.l#m.l#m.l.n.l#e.l#e.l#e.l#e.m#e#h#e#e#e#h.p#e.p#e.p#e.s#e.s.p.s.p.s.p.s.p.s.p.s.s.s.s.s.s#b.s.s.s#b.s#b.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j#k#j#k#j#k#j#k#j#k#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#b.s#b.s.s.s#b.s.s.s#b.s.s.s.s"
+".p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.r.p.p.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.o.t.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.t.t.u.t.w.t.v.t.v.t.v.t.v.t.v.w.v.w.v.w.v.v.v.w.x.v.x.v.x.v.x.v.x.x.x.x.x.x.y.x.z.x.A.x.A.x.A.x.A.z.A.z.A.z.A.z.B.A.B.z.B.A.B.A.B.B.B.B.B.B.B.B.D.B.C.B.C.B.C.D.C.D.C.D.C.D.E.D.E.C.E.C.E.E.F.E.F.E.F.E.G.F.H.F.H.F.I.G.I.G.I.G.J.K.J.K.J.I.L.J.L.J.L.J.M.L.M.L.M.M.N.M.N.O.P.O.P.O.Q#f.Q.Q.Q.Q.R.Q.S.Q.S.S.T.S.T.S.U.S.U.U.U.U",
+".c#i.c#i.c#i#i.e#i.e#i.f.e#l.e#l.e#l.e.h.e.h#o.h#o.h.h.h.j#p.h.l.h.l.h.l.h.l.l.l.l.l.l#m.l.l.l#e.l#e.l#e.l#e.m#e.m#e#h#e#h#e#h.p#h.p#e.p#h.s.p.s.p.s.p.s.p.s.p.s.p.s.s.s.s.s.s.s.s.s.s.s.s.s.s#b.s#k.s#j.s#k.s#j.s#j.s#j.s#j.s#j.s#j.s#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#k.s#j.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p"
+".s.p.s.p.s.r.s.p.p.r.p.p.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.p.q.q.q.o.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.t.t.t.u.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.w.v.w.v.v.v.v.v.v.x.v.x.v.x.v.x.v.x.x.x.x.x.x.y.x.y.x.A.x.A.x.A.x.A.x.A.z.A.z.A.A.A.A.B.A.B.A.B.A.B.A.B.B.B.B.7.B.B.B.C.B.C.B.C.B.C.D.C.D.C.D.C.C.E.C.E.C.E.C.F.E.F.E.F.E.F.E.H.F.H.F.H.F.H.G.I.G.I.G.J.I.J.I.J.I.J.J.L.J.L.J.8.L.M.L.8.L.N.M.N.M.N.O.P.N.P.N.Q.P.Q.P.Q.Q.R.Q.T.Q.T.R.T.S#..S.U.T.U.U.U.U.W",
+"#r#i#i#i.f#i.f#i.f.e#l.e#l.e#l.e.h#l.h#o.h.h.h.h#p.h#p.h.l.h.l.h.l.l.l.l#m.l#m.l.n.l#e.l#e.l#e.l#e.m#e#h#e#e#e#h.p#e.p#e.p#e.s#e.s.p.s.p.s.p.s.p.s.p.s.s.s.s.s.s#b.s.s.s#b.s#b.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j#k#j#k#j#k#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#b.s#b.s.s.s#b.s.s.s#b.s.s"
+".s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.r.p.p.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.o.q.q.q.o.t.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.t.t.u.t.w.t.v.t.v.t.v.t.v.w.v.w.v.w.v.w.v.v.x.w.x.v.x.v.x.v.x.x.x.x.x.x.x.x.y.x.z.x.A.x.A.x.A.z.A.z.A.z.A.z.A.z.B.A.B.A.B.A.B.B.B.B.B.B.B.B.B.B.D.B.C.B.C.B.C.D.C.D.C.D.C.D.E.D.E.C.F.C.F.E.F.E.F.F.G.F.G.F.H.F.H.G.I.G.I.G.I.G.J.I.J.K.J.J.L.J.L.L.M.L.M.L.8.L.O.M.N.M.N.O.P.O.P.N.Q#f.Q.Q.Q.Q.R.Q.S.Q.S.S.T.S#..S.U.S.U.U",
+".c#i.c#i#i.e#i.e#i.f#i.f.e#l.e#l.e.h.e.h#o.h#o.h.h.h.j#p.h.l.h.l.h.l.h.l.l.l.l.l.l.l.l.l.l#e.l#e.l#e.l#e.m#e.m#e#h#e#h#e#h.p#h.p#e.p#h.s.p.s.p.s.p.s.p.s.p.s.p.s.s.s.s.s.s.s.s.s.s.s.s.s.s#j.s#k.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#j#j#k#q#j#q#k#q#j#q#k#q#j#q#k#q#j#q#k#q#j#q#k#q#j#q#k#q#j#q#k#q#j#q#k#q#j#q#k#q#j#q#k#j#j#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#k.s#j.s#k.s#b.s.s.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p"
+".s.p.s.p.s.p.s.r.s.p.p.r.p.p.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.p.q.q.q.o.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.t.t.t.u.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.v.v.w.v.v.v.v.v.v.x.v.x.v.x.v.x.v.x.x.y.x.x.x.y.x.y.x.A.x.A.x.A.x.A.z.A.z.A.z.A.A.A.A.B.A.B.A.B.A.B.B.B.B.B.B.7.B.C.B.C.B.C.B.C.B.C.D.C.D.C.D.C.C.E.C.E.C.E.C.F.E.F.E.F.F.G.F.H.F.H.F.I.G.I.G.I.G.I.G.J.I.J.I.J.J.L.J.L.J.L.J.8.L.8.L.N.M.N.M.N.O.P.O.P.N.Q.P.Q.P.Q.Q.R.Q.R.Q.T.R.T.S.T.S#..S.U#s.U.U.U",
+"#i#i.f#i.f#i.f.e#l.e#l.e#l.e.h#l.h#o.h.h.h.h#p.h#p.h.l.h.l.h.l#p.l#p#m.l#m.l#m.l#t.l#e.l#e.l#e.m#e#h#e#e#e#h.p#e.p#e.p#e.s#e.s.p.s.p.s.p.s.p.s.s.s.s.s.s.s.s#b.s.s.s#b.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j#k#j#k#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#b.s.s.s#b.s.s.s#b"
+".s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.r.p.p.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.o.q.q.q.q.t.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.t.t.u.t.v.t.v.t.v.t.v.t.v.w.v.w.v.w.v.w.v.v.x.v.x.v.x.v.x.v.x.x.x.x.x.x.x.x.y.x.z.x.A.x.A.x.A.z.A.z.A.z.A.z.A.z.B.A.B.A.B.A.B.B.B.B.B.B.B.B.C.B.D.B.C.B.C.D.C.D.C.D.C.D.E.C.E.D.E.C.F.E.F.E.F.E.F.F.G.F.G.F.H.F.I.G.I.G.I.K.J.K.J.I.J.I.L.J.L.J.L.L.M.L.M.L.N.M.N.M.N.O.P.O.P.O.Q.P.Q.P.Q.Q.R.Q.S.Q.T.R.T.S.T.S.U.S.U.V",
+".c#i.c.e#i.e#i.f#i.f.e#l.e#l.e.h.e.h#o.h#o.h.h.h.j.h.h#p.h#p.h.l.h.l#p.l#p.l.l.l.l.l.l.n.l#e.l#e.l#e.m#e.m#e#h#e#h#e#h.p#h.p#e.p#h.s.p.s.p.s.p.s.p.s.p.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s#j.s#k.s#j.s#j.s#j.s#j.s#j.s#j.s#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#j#q#k#q#j#q#k#q#j#q#k#q#j#q#k#q#j#q#k#q#j#q#k#q#j#q#k#q#j#q#k#q#j#q#k#q#j#q#k#q#j#q#k#q#j#q#k#q#j#q#k#q#j#q#k#q#j#q#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#j.s#k.s#j.s#k.s#b.s.s.s.s.s.s.s.s.s.s.s.s.s.s.p"
+".s.p.s.p.s.p.s.p.s.r.s.p.s.r.p.p.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.o.q.q.q.o.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.q.u.t.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.t.v.v.v.w.v.v.v.v.v.v.x.v.x.v.x.v.x.v.x.x.y.x.x.x.y.x.A.x.A.x.A.x.A.x.A.z.A.A.A.z.A.A.B.A.B.A.B.A.B.A.B.B.B.B.B.B.7.B.C.B.C.B.C.B.C.D.C.D.C.C.C.D.E.C.E.C.E.C.E.E.F.E.F.E#d.F.G.F.H.F.H.F.I.G.I.G.I.I.J.K.J.I.J.I.L.J.L.J.L.L.M.L.8.L.8.L.N.M.N.M.N.O.P.O.Q.N.Q.P.Q.Q.Q.Q.9.Q.S.Q.T.S.T.S.U.S.U.S.U.U.U",
+".f#i.f#i.f.e#l.e#l.e#l.e.h#l.h#o.h#l.h.h.h.h#p.h.l.h.l.h.l#p.l#p#m.l#m.l#m.l#t.l#e.l#e.l#e.l#e#u#e#e#e#h#e#e#e#e.p#e.s#e.s.p.s#e.s.p.s.p.s.s.s.s#b.s.s.s#b.s.s.s#b.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j#k#j#k#j#k#j#k#j#j#j#k#j#j#j#k#j#j#j#j#j#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#j#j#j#j#j#k#j#j#j#k#j#j#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#b.s#b.s#b.s.s"
+".s#b.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.r.p.p.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.o.q.o.q.q.q.o.q.q.q.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.u.t.t.t.u.t.v.t.v.t.v.t.v.t.v.w.v.w.v.w.v.w.v.v.x.v.x.v.x.v.x.x.x.x.x.x.x.x.x.x.A.x.A.x.A.x.A.x.A.z.A.z.A.z.A.A.B.z.B.A.B.A.B.B.B.B.B.B.B.B.B.B.C.B.D.B.C.B.C.D.C.D.C.D.C.D.E.C.E.D.E.C.F.E.F.E.F.E.G.F.H.F.G.F.I.G.I.G.I.G.I.K.J.K.J.I.L.J.L.J.L.J.M.L.M.L.M.L.N.M.N.O.N.O.P.O.Q.O.Q.P.Q.Q.Q.Q.S.Q.S.R.T.S.T.S.U.S.U#v",
+".c#i#i.e#i.f#i.e.e#l.e#l.e#l.e#l#o.h#o.h#l.h.j.h.h#p.h#p.h.l.h.l.h.l#p.l.l.l.l.l.l.n.l#e.l#e.l#e.l#e.l#e#h#e#h#e#h.p#h.p#e.p#h.s#e.s#e.s.p.s.p.s.p.s.s.s.s.s.s.s.s.s.s.s.s#b.s#k.s#j.s#k.s#j.s#j.s#j.s#j.s#j.s#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#j#q#k#q#j#q#k#q#j#q#k#q#j#q#k#q#j#q#k#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#k#q#j#q#k#q#j#q#k#q#j#q#k#q#j#q#k#q#j#q#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#k.s#j.s#k.s#b.s.s.s.s.s.s.s.s.s.s.s.s.s"
+".s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.r.p.p.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.o.q.q.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.q.u.t.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.w.v.v.v.w.v.v.v.v.x.v.x.v.x.v.x.v.x.x.x.x.y.x.x.x.y.x.A.x.A.x.A.x.A.z.A.z.A.A.A.z.A.A.B.A.B.A.B.A.B.B.B.B.B.B.B.B.7.B.C.B.C.B.C.B.C.D.C.D.C.C.C.D.E.C.E.C.F.C.F.E.F.E.F.E.H.F.H.F.H.F.H.G.I.G.I.G.I.I.J.K.J.I.J.J.L.J.L.J.L.L.M.L.8.L.N.M.N.M.N.O.P.N.P.N.Q.P.Q.P.Q.Q.R.Q.T.Q.T.R.T.S.T.S.U.T.U#..U",
+".f#i.f#i#l#i#l.e#l.e#l.f.h#o.h#l.h#l.h.h#p.h#p.h#p.h.l.h.l#p#m.l.l.l#m.l#t.l#e.l#e.l#e.l#e.l#e#e#e#h#e#e#e#e.p#e.s#e.s#e.s#e.s.p.s.p.s.s.s.s#b.s.s.s#b.s.s.s#b.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j#k#j#k#j#k#j#k#j#j#j#k#j#j#j#k#j#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#j#j#j#k#j#j#j#k#j#j#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#b.s#b.s#b"
+".s.s.s#b.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.r.p.p.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.o.q.o.q.q.q.o.q.q.q.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.u.t.t.t.v.t.v.t.v.t.v.t.v.w.v.w.v.w.v.v.v.w.x.v.x.v.x.v.x.v.x.x.x.x.x.x.x.x.x.x.A.x.A.x.A.x.A.z.A.z.A.z.A.z.A.A.B.z.B.A.B.A.B.B.B.B.B.B.B.B.D.B.C.B.C.B.C.D.C.D.C.D.C.D.E.D.E.C.E.C.E.E.F.E.F.E.F.E.G.F.H.F.H.F.I.G.I.G.I.G.J.K.J.K.J.I.L.J.L.J.L.L.M.L.8.L.O.M.N.M.N.O.P.O.P.O.Q#f.Q.Q.Q.Q.R.Q.S.Q.S.S.T.S.T.S.U.S",
+"#i#i#i.f#i.e#i#l#i#l.e#l.e#l.e.h#o.h#o.h#o.h.h#p.h#p.h.l.h.l.h.l#p.l.l.l.l.l.l#m.l#t.l#e.l#e.l#e.l#e#h#e#h#e#h#e#h#e#e.p#h.s#e.s#e.s.p.s.p.s.p.s.s.s.s.s.s.s.s.s.s.s.s#b.s#k.s#j.s#k.s#j.s#j.s#j.s#j.s#j.s#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#j#q#k#q#j#q#k#q#j#q#k#q#j#q#k#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#k#q#j#q#k#q#j#q#k#q#j#q#k#q#j#q#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#j.s#k.s#j.s.s.s.s.s.s.s.s.s.s.s"
+".s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.s.r.p.p.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.r.q.o.q.q.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.t.u.t.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.w.v.v.v.w.v.v.v.v.x.v.x.v.x.v.x.v.x.x.x.x.y.x.y.x.A.x.A.x.A.x.A.x.A.z.A.z.A.A.A.A.B.A.B.A.B.A.B.A.B.B.B.B.7.B.B.B.C.B.C.B.C.B.C.D.C.D.C.D.C.C.E.C.E.C.E.C.F.E.F.E.F.E.F.E.H.F.H.F.H.F.H.G.I.G.I.G.J.I.J.I.J.I.J.J.L.J.L.J.8.L.M.L.N.L.N.M.N.O.N.O.P.N.P.N.Q.P.Q.Q.Q.Q.R.Q.T.Q.T.S.T.S#..S.U.T.U",
+".f#i.f#i#l.e#l.e#l.e#l#o.h#l.h#l.h.h#p.h#p.h#p.h.l.h.l#p#m.l.l.l#m.l#m.l#e.l#e.l#e.l#e.l#e#e#e#h#e#e#e#e.p#e.s#e.s#e.s#e.s.p.s.p.s.s.s.s#b.s.s.s#b.s#b.s#b.s#j.s#j.s#j.s#j.s#j.s#j.s#j#k#j#k#j#k#j#j#j#k#j#j#j#k#j#j#j#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#j#j#j#j#j#k#j#j#j#k#j#j#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#b"
+".s#b.s.s.s#b.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.r.p.p.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.o.q.o.q.q.q.o.q.q.t.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.u.t.t.t.v.t.v.t.v.t.v.t.v.w.v.w.v.w.v.v.v.w.x.v.x.v.x.v.x.v.x.x.x.x.x.x.y.x.z.x.A.x.A.x.A.x.A.z.A.z.A.z.A.z.B.A.B.A.B.A.B.B.B.B.B.B.B.B.B.B.D.B.C.B.C.B.C.D.C.D.C.D.C.D.E.D.E.C.F.C.F.E.F.E.F.F.G.F.G.F.H.F.H.G.I.G.I.G.I.K.J.I.J.K.J.J.L.J.L.L.M.L.M.L.N.L.N.M.N.M.N.O.P.O.P.N.Q.P.Q.Q.Q.Q.R.Q.S.R.S.S.T.S.U.S",
+"#i.e#i.e#i.f#i#l.e#l.e#l.e.h#o.h#o.h#o.h.h#p.h#p.h.l.h.l.h.l#p.l.l.l.l.l.l#m.l#u.l#e.l#e.l#e.l#e#h#e#h#e#h#e#h#e#e.p#h.s#e.s#e.s.p.s.p.s.p.s.s.s.s.s.s.s.s.s.s.s.s#b.s#k.s#j.s#j.s#j.s#j.s#j.s#j.s#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#j#q#k#q#j#q#k#q#j#q#k#q#j#q#k#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#k#q#j#q#k#q#j#q#k#q#j#q#k#q#j#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#j.s#k.s#j.s.s.s.s.s.s.s.s.s"
+".s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.s.r.p.p.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.r.q.o.q.q.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.t.u.t.t.t.u.t.u.t.v.t.v.t.v.t.v.t.v.t.v.w.v.v.v.v.v.v.v.v.x.v.x.v.x.v.x.x.x.x.x.x.y.x.y.x.A.x.A.x.A.x.A.x.A.z.A.z.A.A.A.A.B.A.B.A.B.A.B.B.B.B.B.B.7.B.B.B.C.B.C.B.C.B.C.D.C.D.C.D.C.C.E.C.E.C.E.C.F.E.F.E.F.F.G.F.H.F.H.F.I.G.I.G.I.G.I.G.J.I.J.I.L.J.L.J.L.J.L.L.8.L.8.L.N.M.N.M.N.O.P.O.P.N.Q.P.Q.Q.Q.Q.R.Q.S.Q.T.S.T.S.T.S.U.S.U",
+".f#i#l.e#l.e#l.e#l#o.h#l.h#l.h.h.h.h#p.h#p.h.l.h.l#p#m#p.l#p#m.l#m.l#t.l#t.l#e.l#e.l#e#h#e#h#e#e#e#e.p#e.s#e.s#e.s#e.s.p.s.p.s.s.s.s#b.s.s.s#b.s#b.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j#k#j#k#j#k#j#j#j#k#j#j#j#k#j#j#j#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#j#j#j#k#j#j#j#k#j#j#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j"
+".s#b.s#b.s.s.s#b.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p.p.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.o.q.o.q.q.q.o.q.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.t.t.u.t.t.t.v.t.v.t.v.t.v.t.v.w.v.w.v.w.v.v.v.w.x.v.x.v.x.v.x.x.x.x.x.x.x.x.y.x.z.x.A.x.A.x.A.z.A.z.A.z.A.z.A.z.B.A.B.A.B.A.B.B.B.B.B.B.B.B.C.B.D.B.C.B.C.D.C.D.C.D.C.D.E.C.E.D.E.C.F.E.F.E.F.E.F.F.G.F.G.F.I.G.I.G.I.G.I.K.J.K.J.I.L.J.L.J.L.J.L.L.M.L.M.L.N.M.N.M.N.O.P.O.Q.O.Q.P.Q.P.Q.Q.R.Q.S.Q.T.S.T.S.U.S",
+"#i.e#i.f#i#l.e#l.e#l.e#l#o.h#o.h#o.h.h.h.h#p.h#p.h#p.h.l#p.l#p.l#p.l.l#m.l#u.l#e.l#e.l#e.l#e#h#e#h#e#h#e#h#e#e.p#h.s#e.s#e.s.p.s.p.s.p.s.s.s.s.s.s.s.s.s.s.s.s#b.s#k.s#j.s#j.s#j.s#j.s#j.s#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#q#j#q#k#q#j#q#k#q#j#q#k#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#k#q#j#q#k#q#j#q#k#q#j#q#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#k.s#j.s.s.s.s.s.s.s"
+".s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.r.s.p.p.r.p.p.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.r.q.o.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.q.t.t.u.t.t.t.u.t.u.t.v.t.v.t.v.t.v.t.v.w.v.w.v.v.v.v.v.v.x.v.x.v.x.v.x.v.x.x.y.x.x.x.y.x.y.x.A.x.A.x.A.x.A.z.A.A.A.z.A.A.A.A.B.A.B.A.B.A.B.B.B.B.B.B.7.B.C.B.C.B.C.B.C.D.C.D.C.C.C.D.E.C.E.C.E.C.F.E.F.E.F.E#d.F.G.F.H.F.H.F.I.G.I.G.I.I.J.K.J.I.J.I.L.J.L.J.L.L.M.L.8.L.8.M.N.M.N.M.N.N.P.O.Q.N.Q.P.Q.Q.Q.Q.T.Q.S.R.T.S.T.S.U.S.U",
+"#l#i#l.e#l.e#l.e.h#l.h#l.h#l.h#l#p.h#p.h#p.h#p#p#m#p.l#p#m.l#m.l#t.l#t.l#e.l#e.l#e#u#e#u#e#e#e#e#e#e#x#e.s#e.s#e.s.p.s.p.s.s.s.s#b.s.s.s#b.s#b.s#j.s#j.s#j.s#j.s#j.s#j.s#j#k#j#k#j#k#j#k#j#j#j#k#j#j#j#k#j#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#j#k#j#j#j#k#j#j#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#j"
+".s#j.s#b.s#b.s.s.s#b.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p.p.p.r.p.q.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.o.q.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.t.t.u.t.w.t.v.t.v.t.v.t.v.w.v.w.v.w.v.w.v.v.x.v.x.v.x.v.x.v.x.x.x.x.x.x.x.x.A.x.z.x.A.x.A.x.A.z.A.z.A.z.A.A.B.z.B.A.B.A.B.A.B.B.B.B.B.B.B.B.C.B.D.B.C.B.C.D.C.D.C.D.C.D.E.C.E.C.E.C.F.E.F.E.F.E.G.F.H.F.G.F.I.G.I.G.I.G.J.K.J.K.J.I.L.J.L.J.L.J.M.L.M.L.M.M.N.M.N.O.N.O.P.O.Q.O.Q.Q.Q.Q.R.Q.S.Q.S.S.T.S.T.S",
+"#i.f#i#l#i#l.e#l.e#l.e#l#o.h#o.h#l.h#o#p.h#p.h#p.h.l.h.l#p.l#p.l.l#m.l#u.l#t.l#t.l#e.l#e#u#e#u#e#h#e#h#e#e.p#h.s#e.s#e.s#e.s#e.s.p.s.s.s.s.s.s.s.s.s.s.s.s#j.s#k.s#j.s#j.s#j.s#j.s#j.s#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#j#q#k#q#j#q#k#q#j#q#k#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#k#q#j#q#k#q#j#q#k#q#j#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#k.s#j.s.s.s#b.s"
+".s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.r.s.p.p.r.p.p.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.r.q.o.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.q.t.t.u.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.v.v.w.v.v.v.v.v.v.x.v.x.v.x.v.x.x.x.x.y.x.x.x.y.x.A.x.A.x.A.x.A.x.A.z.A.A.A.z.A.A.B.A.B.A.B.A.B.B.B.B.B.B.B.B.7.B.C.B.C.B.C.B.C.D.C.D.C.C.C.D.E.C.E.C.F.C.F.E.F.E.F.E.H.F.H.F.H.F.H.G.I.G.I.G.I.I.J.I.J.I.J.J.L.J.L.J.L.L.M.L.N.L.N.M.N.O.N.O.P.N.P.N.Q.P.Q.P.Q.Q.R.Q.T.Q.T.R.T.S.T.S.U",
+"#l#i#l.e#l.e#l#l#l#o.h#l.h#l#p.h#p.h#p.h#p.h#m#p.l#p#m.l#m.l#t.l#t.l#e.l#e.l#e#u#e#u#e#e#e#e#e#e#x#e.s#e.s#e.s#e.s#e.s.s.s.s#b.s.s.s#b.s#b.s#j.s#j.s#j.s#j.s#j.s#j.s#j#k#j#k#j#k#j#k#j#j#j#k#j#j#j#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#j#j#j#j#j#k#j#j#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j"
+".s#j.s#j.s#b.s#b.s.s.s#b.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p.p.p.r.p.q.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.o.t.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.t.t.u.t.v.t.v.t.v.t.v.t.v.w.v.w.v.w.v.w.v.v.x.v.x.v.x.v.x.x.x.x.x.x.x.x.x.x.A.x.A.x.A.x.A.z.A.z.A.z.A.z.A.A.B.z.B.A.B.A.B.B.B.B.B.B.B.B.D.B.C.B.C.B.C.D.C.D.C.D.C.D.E.D.E.C.E.C.F.E.F.E.F.F.F.F.G.F.H.F.H.G.I.G.I.G.I.G.J.K.J.K.J.J.L.J.L.L.L.L.M.L.N.L.O.M.N.M.N.O.P.O.P.N.Q#f.Q.Q.Q.Q.R.Q.S.Q.S.S.T.S",
+"#i.f#i#l#i#l.e#l.e#l#o.h#o.h#l.h#o#p.h#p.h#p.h.l.h.l#p.l#p.l.l#m.l.l.l#t.l#t.l#e.l#e.l#e#u#e#h#e#h#e#e#e#h#x#e.s#e.s#e.s#e.s.p.s.s.s.s.s.s.s.s.s.s.s.s#j.s#k.s#j.s#j.s#j.s#j.s#j.s#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#j#q#k#q#j#q#k#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#k#q#j#q#k#q#j#q#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#k.s#j.s.s.s"
+"#b.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.r.s.p.p.r.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.q.q.o.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.t.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.w.v.v.v.w.v.v.v.v.x.v.x.v.x.v.x.v.x.x.x.x.y.x.x.x.y.x.A.x.A.x.A.x.A.z.A.z.A.A.A.z.A.A.B.A.B.A.B.A.B.B.B.B.7.B.B.B.C.B.C.B.C.B.C.D.C.D.C.D.C.C.E.C.E.C.E.C.F.E.F.E.F.F.F.F.H.F.H.F.I.F.I.G.I.G.I.G.J.I.J.I.L.I.L.J.L.J.L.L.8.L.8.L.N.M.N.M.N.O.P.O.P.N.Q.P.Q.Q.Q.Q.R.Q.R.Q.T.S.T.S.T.S.U",
+"#l.e#l.e#l#l#l#o.h#l.h#l#p.h#p.h#p.h#p.h.l#p.l#p#m#p#m#p#m.l#t.l#t.l#t.l#e#u#e#u#e#e#e#h#e#e#e#e.s#e.s#e.s#e.s#e.s.s.s.s#b.s.s.s#b.s#b.s#j.s#j.s#j.s#j.s#j.s#j.s#j#k#j#k#j#k#j#k#j#j#j#k#j#j#j#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#y#q#z#q#y#q#z#q#y#q#z#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#j#j#j#k#j#j#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j"
+".s#j.s#j.s#j.s#b.s#b.s.s.s#b.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p.p.p.r.p.q.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.u.t.t.t.v.t.v.t.v.t.v.t.v.w.v.w.v.w.v.v.v.w.x.v.x.v.x.v.x.v.x.x.x.x.x.x.x.x.z.x.A.x.A.x.A.x.A.z.A.z.A.z.A.z.B.A.B.A.B.A.B.B.B.B.B.B.B.B.B.B.D.B.C.B.C.B.C.D.C.D.C.D.C.D.E.D.E.C.F.E.F.E.F.E.F.F.G.F.G.F.H.F.I.G.I.G.I.K.J.K.J.I.J.K.L.J.L.J.L.L.M.L.M.L.N.M.N.M.N.O.P.O.Q.O.Q.P.Q.P.Q.Q.R.Q.S.Q.T.R.T.S",
+"#i#l#i#l.e#l.e#l#o.h#o.h#l.h#o.h.h#p.h#p.h#p.h#p#p.l#p.l#p#m#p.l.l#t.l#t.l#e.l#e.l#e#u#e#h#e#h#e#e#e#h#x#e.s#e.s#e.s#e.s.p.s.s.s.s.s.s.s.s.s.s.s.s#j.s#k.s#j.s#j.s#j.s#j.s#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#q#j#q#k#q#j#q#k#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#k#q#j#q#k#q#j#q#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#k.s#j.s"
+".s.s#b.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.r.s.p.p.r.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.q.q.o.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.u.t.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.w.v.v.v.w.v.v.v.v.x.v.x.v.x.v.x.v.x.x.x.x.y.x.y.x.A.x.A.x.A.x.A.x.A.z.A.z.A.A.A.A.B.A.B.A.B.A.B.B.B.B.B.B.7.B.7.B.C.B.C.B.C.B.C.D.C.D.C.D.C.C.E.C.E.C.E.E.F.E.F.E#d.F.G.F.H.F.H.F.I.G.I.G.I.K.I.K.J.I.J.I.L.J.L.J.L.L.M.L.8.L.8.L.N.M.N.M.N.O.P.O.Q.N.Q.P.Q.Q.Q.Q.S.Q.S.Q.T.S.T.S.U",
+"#l.e#l.f#l#o.h#l.h#l.h#l#p#l#p.h#p.h.l#p.l#p#m#p#m#p#m.l#t.l#t.l#t.l#e.l#e#u#e#e#e#h#e#e#e#e#x#e#x#e.s#e.s#e.s.s.s.s#b.s.s.s#b.s#b.s#j.s#j.s#j.s#j.s#j.s#j.s#j#k#j#k#j#k#j#k#j#j#j#k#j#j#j#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#j#j#j#k#j#j#j#k#j#j#j#k#j#k#j.s#j.s#j.s#j"
+".s#j.s#j.s#j.s#j.s#b.s#b.s.s.s#b.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p.p.p.r.p.q.p.q.p.q.p.q.p.q.o.q.o.q.q.q.o.q.q.q.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.u.t.t.t.v.t.v.t.v.t.v.t.v.w.v.w.v.w.v.v.v.w.x.v.x.v.x.v.x.x.x.x.x.x.x.x.y.x.z.x.A.x.A.x.A.z.A.z.A.z.A.z.A.z.B.A.B.A.B.A.B.B.B.B.B.B.B.B.C.B.D.B.C.B.C.D.C.D.C.D.C.D.E.C.E.D.E.C.F.E.F.E.F.E.F.F.H.F.G.F.I.G.I.G.I.G.I.K.J.K.J.I.L.J.L.J.L.J.L.L.M.L.M.L.N.M.N.O.N.O.P.O.Q.O.Q.Q.Q.Q.Q.Q.S.Q.S.S.T.S",
+"#i#l.e#l.e#l.e#l#o#l#o.h#o.h#l#p.h#p.h#p.h#p#p.l#p.l#p#m#p.l.l#t.l#t.l#e.l#e.l#e#u#e#u#e#u#e#e#e#h#x#e.s#e.s#e.s#e.s.p.s.s.s.s.s.s.s.s.s.s.s.s#j.s#k.s#j.s#j.s#j.s#j.s#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#q#j#q#k#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#k#q#j#q#k#q#j#q#k#q#j#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#k.s"
+"#j.s.s.s#b.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.r.s.p.p.r.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.q.q.o.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.t.u.t.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.w.v.v.v.v.v.v.x.v.x.v.x.v.x.v.x.x.y.x.x.x.y.x.y.x.A.x.A.x.A.x.A.z.A.A.A.z.A.A.A.A.B.A.B.A.B.A.B.B.B.B.B.B.7.B.C.B.C.B.C.B.C.D.C.D.C.C.C.D.E.C.E.C.F.C.F.E.F.E.F.E#d.F.G.F.H.F.H.G.I.G.I.G.I.I.J.K.J.I.J.J.L.J.L.J.L.L.M.L.8.L.N.M.N.M.N.O.P.N.P.N.Q.P.Q.P.Q.Q.R.Q.T.Q.T.R.T.S.T",
+"#l.e#l#o#l#l#l#l.h#l#p#l#p.h#p.h#p.h#p#p#m#p#m#p#m.l#t.l#t.l#t.l#e.l#e#u#e#t#e#u#e#e#e#e#x#e#x#e.s#e.s#e.s#x.s#x#b.s.s.s#b.s#b.s#j.s#j.s#j.s#j.s#j.s#j.s#j#k#j#k#j#j#j#k#j#j#j#k#j#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#z#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#j#j#j#k#j#j#j#k#j#j#j#k#j#k#j.s#j.s#j"
+".s#j.s#j.s#j.s#j.s#j.s#b.s#b.s.s.s#b.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p.p.p.q.p.q.p.q.p.q.p.q.p.q.o.q.o.q.q.q.o.q.q.t.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.u.t.t.t.v.t.v.t.v.t.v.t.v.w.v.w.v.w.v.v.x.w.x.v.x.v.x.v.x.x.x.x.x.x.x.x.A.x.z.x.A.x.A.x.A.z.A.z.A.z.A.A.B.z.B.A.B.A.B.B.B.B.B.B.B.B.B.B.C.B.C.B.C.B.C.D.C.D.C.D.E.D.E.C.E.C.E.E.F.E.F.E.F.F.G.F.H.F.G.F.I.G.I.G.I.G.J.K.J.K.J.I.L.J.L.L.L.L.M.L.N.L.O.M.N.M.N.O.P.O.P.O.Q#f.Q.Q.Q.Q.R.Q.S.Q.S.S",
+"#i#l#i#l.e#l#o#l#o.h#o.h#l#p#l#p.h#p.h#p.h.l#p.l#p.l#p.l.l#t.l#t.l#t.l#t.l#e#u#e#u#e#u#e#h#e#h#e#e#x#e.s#e.s#e.s#e.s#x.s.s.s.s.s.s.s.s.s.s#j.s#k.s#j.s#j.s#j.s#j.s#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#j#q#k#q#j#q#k#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#k#q#j#q#k#q#j#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s"
+"#k.s#j.s.s.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.r.s.p.p.r.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.o.q.q.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.t.u.t.t.t.u.t.u.t.v.t.v.t.v.t.v.t.v.w.v.w.v.v.v.v.v.v.x.v.x.v.x.v.x.v.x.x.y.x.x.x.y.x.A.x.A.x.A.x.A.x.A.z.A.A.A.z.A.A.B.A.B.A.B.A.B.B.B.B.7.B.B.B.C.B.C.B.C.B.C.B.C.D.C.D.C.C.E.C.E.C.E.C.F.E.F.E.F.E.F.F.H.F.H.F.I.F.I.G.I.G.I.G.J.I.J.I.L.I.L.J.L.J.L.L.8.L.M.L.N.M.N.M.N.O.N.O.P.N.Q.N.Q.Q.Q.Q.Q.Q.R.Q.T.R.T.S.T",
+"#l.e#l#l#l#l.h#l.h#l#p.h#p.h#p.h#p#p#m#p.l#p#m#p#t.l#t.l#t.l#t.l#e#u#e#t#e#u#e#e#e#e#x#e#x#e.s#e.s#e.s#e.s#x.s.s.s.s#b.s#b.s#j.s#j.s#j.s#j.s#j.s#j.s#j#k#j#k#j#j#j#k#j#j#j#k#j#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#z#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#j#j#j#k#j#j#j#k#j#j#j#k#j#k#j.s#j"
+".s#j.s#j.s#j.s#j.s#j.s#j.s#b.s#b.s.s.s#b.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.r.p.p.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.o.q.o.q.q.q.o.q.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.t.t.u.t.v.t.v.t.v.t.v.t.v.w.v.w.v.w.v.w.v.v.x.v.x.v.x.v.x.x.x.x.x.x.x.x.x.x.A.x.A.x.A.x.A.z.A.z.A.z.A.z.A.A.B.z.B.A.B.A.B.B.B.B.B.B.B.B.D.B.C.B.C.B.C.D.C.D.C.D.C.D.E.D.E.C.F.C.F.E.F.E.F.F.G.F.G.F.H.F.I.G.I.G.I.K.I.K.J.I.J.K.L.J.L.J.L.L.M.L.M.L.N.L.N.M.N.O.N.O.P.O.Q.N.Q.P.Q.Q.R.Q.S.Q.T.R",
+"#i#l.e#l.e#l#o.h#o.h#l.h#l#p.h#p.h#p.h#p#p#p#p.l#p.l#p#m.l#t.l#t.l#t.l#e.l#e#u#e#u#e#h#e#h#e#e#x#e#x#e.s#e.s#e.s#x.s.s.s.s.s.s.s.s.s.s#j.s#k.s#j.s#j.s#j.s#j.s#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#j#q#k#q#j#q#k#q#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#z#q#z#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#z#q#z#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#k#q#j#q#k#q#j#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s"
+"#j.s#k.s#j.s.s.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.r.p.p.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.r.q.o.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.q.t.t.u.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.v.v.w.v.v.v.v.x.v.x.v.x.v.x.v.x.x.x.x.y.x.x.x.y.x.A.x.A.x.A.x.A.z.A.z.A.A.A.A.B.A.B.A.B.A.B.A.B.B.B.B.7.B.B.B.C.B.C.B.C.B.C.D.C.D.C.D.C.C.E.C.E.C.E.C.F.E.F.E.F.F.F.F.H.F.H.F.I.G.I.G.I.K.I.K.J.I.J.I.L.J.L.J.L.L.L.L.8.L.8.L.N.M.N.M.N.O.P.O.Q.N.Q.P.Q.Q.Q.Q.S.Q.S.Q.T.S.T",
+"#l#l#l#o.h#l.h#l#p#l#p.h#p.h#p#p#m#p.l#p#m#p#m#p#t.l#t.l#t.l#t.l#e#t#e#u#e#e#e#e#x#e#x#e.s#e.s#e.s#e.s#x.s.s.s.s#b.s#b.s#b.s#j.s#j.s#j.s#j.s#j.s#j#k#j#k#j#j#j#k#j#j#j#k#j#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#j#k#j#j#j#k#j#j#j#k#j#k#j"
+".s#j.s#j.s#j.s#j.s#j.s#j.s#b.s#b.s#b.s.s.s#b.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.r.p.p.p.r.p.r.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.o.q.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.t.t.u.t.v.t.v.t.v.t.v.t.v.w.v.w.v.v.v.w.x.v.x.v.x.v.x.v.x.x.x.x.x.x.y.x.z.x.A.x.A.x.A.x.A.z.A.z.A.z.A.z.B.A.B.A.B.A.B.B.B.B.B.B.B.B.C.B.D.B.C.B.C.D.C.D.C.D.C.D.E.C.E.D.E.C.F.E.F.E.F.E.F.F.G.F.G.F.I.G.I.G.I.G.I.K.J.K.J.I.L.J.L.J.L.J.L.L.M.L.M.L.N.M.N.O.N.O.P.O.Q.O.Q.Q.Q.Q.Q.Q.S.Q.S#A",
+".e#l.e#l#o#l#o#l#l.h#o#p#l#p.h#p.h#p#p#p#p.l#p.l#p#m#p#u.l#t.l#t.l#e.l#e#u#e#u#e#h#e#h#e#e#x#h#x#e.s#e.s#e.s#x.s.s.s.s.s.s.s.s.s.s#j.s#k.s#j.s#j.s#j.s#j.s#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#j#q#k#q#j#q#k#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#k#q#j#q#k#q#j#q#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s"
+"#j.s#j.s#k.s#j.s.s.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.r.p.p.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.r.q.o.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.t.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.w.v.v.v.w.v.v.v.v.x.v.x.v.x.v.x.v.x.x.x.x.y.x.y.x.A.x.A.x.A.x.A.x.A.z.A.z.A.A.A.A.B.A.B.A.B.A.B.B.B.B.B.B.7.B.C.B.C.B.C.B.C.D.C.D.C.C.C.D.E.C.E.C.F.C.F.E.F.E.F.E#d.F.G.F.H.F.H.F.I.G.I.G.I.I.J.K.J.I.J.I.L.J.L.J.L.L.M.L.8.L.N.M.N.M.N.O.P.N.P.O.Q.P.Q.P.Q.Q.R.Q.T.Q.T.R.T",
+"#l#o#l#l.h#l#p#l#p#l#p.h#p.h#B#p#p#p#m#p#m#p#t.l#t.l#t.l#t.l#e#u#e#u#e#t#e#t#e#e#x#e#x#e#x#e.s#e.s#x.s#x.s.s#b.s.s.s#b.s#j.s#j.s#j.s#j.s#j.s#j#k#j#k#j#j#j#k#j#j#j#k#j#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#w#q#q#q#w#q#q#q#w#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#j#k#j#j#j#k#j#j#j#k#j"
+"#k#j.s#j.s#j.s#j.s#j.s#j.s#j.s#b.s.s.s#b.s.s.s#b.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.r.p.p.p.r.p.q.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.u.t.t.t.v.t.v.t.v.t.v.t.v.w.v.w.v.w.v.v.v.w.x.v.x.v.x.v.x.x.x.x.x.x.x.x.y.x.z.x.A.x.A.x.A.z.A.z.A.z.A.z.A.z.B.A.B.A.B.A.B.B.B.B.B.B.B.B.C.B.D.B.C.B.C.D.C.D.C.D.C.D.E.C.E.C.F.C.F.E.F.E.F.F.G.F.H.F.G.F.I.G.I.G.I.G.J.K.J.K.J.I.L.J.L.L.L.L.M.L.O.L.O.M.N.M.N.O.P.O.P.O.Q#f.Q.Q.Q.Q.R.Q.S.Q",
+"#i#l#o#l#o#l#l.h#o.h#l#p#l#p.h#p.h#p#p.l#p.l#p#m#p#u.l#t.l#t.l#t.l#t#u#e#u#e#u#e#u#e#e#x#h#x#e.s#e.s#e.s#e.s#x.s#x.s.s.s.s.s.s#b.s#k.s#j.s#j.s#j.s#j.s#j#k#j#k#j#k#j#k#j#k#j#k#j#k#q#j#q#k#q#j#q#k#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#k#q#j#q#k#q#j#q#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s"
+"#j.s#j.s#j.s#k.s#j.s.s.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.r.p.p.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.q.q.o.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.u.t.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.w.v.v.v.v.v.v.x.v.x.v.x.v.x.v.x.x.y.x.x.x.y.x.y.x.A.x.A.x.A.x.A.z.A.A.A.z.A.A.B.A.B.A.B.A.B.A.B.B.B.B.B.B.7.B.C.B.C.B.C.B.C.D.C.D.C.C.C.D.E.C.E.C.F.C.F.E.F.E.F.F.H.F.H.F.I.F.I.G.I.G.I.G.I.I.J.I.L.I.L.J.L.J.L.L.8.L.M.L.N.L.N.M.N.O.N.O.P.N.Q.N.Q.Q.Q.Q.Q.Q.R.Q.T#A.T",
+"#l#l#l#l.h#l#p#l#p.h#p.h#p#p#p#p#m#p#m#p#m#p#t.l#t.l#t.l#e#u#e#u#e#t#e#t#e#e#x#e#x#e#x#e.s#e.s#x.s#x.s#x#b.s.s.s#b.s#j.s#j.s#j.s#j.s#j.s#j#k#j#k#j#j#j#k#j#j#j#k#j#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#w#q#q#q#w#q#q#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#w#q#q#q#w#q#q#q#w#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#j#k#j#j#j#k#j#j#j"
+"#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#j.s#b.s.s.s#b.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p.p.p.r.p.q.p.q.p.q.p.q.p.q.o.q.o.q.q.q.o.q.q.q.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.u.t.t.t.v.t.v.t.v.t.v.t.v.w.v.w.v.w.v.v.x.v.x.v.x.v.x.v.x.x.x.x.x.x.x.x.A.x.A.x.A.x.A.x.A.z.A.z.A.z.A.A.B.z.B.A.B.A.B.B.B.B.B.B.B.B.D.B.C.B.C.B.C.D.C.D.C.D.C.D.E.D.E.C.F.C.F.E.F.E.F.F.F.F.G.F.H.F.I.G.I.G.I.K.I.K.J.I.L.K.L.J.L.J.L.L.M.L.M.L.N.L.N.M.N.O.N.O.Q.O.Q.N.Q.P.Q.Q.Q.Q.S.Q",
+".e#l#o#l#o.h#o.h#l#p#l#p.h#p.h#p#p#p#p#p#p#m#p.l#p#t.l#t.l#t.l#t.l#e#u#e#u#e#u#e#e#e#h#x#e#x#e#x#e.s#e.s#x.s#x.s.s.s.s.s.s#b.s#k.s#j.s#j.s#j.s#j.s#j#k#j#k#j#k#j#k#j#k#j#k#j#k#q#j#q#k#q#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#k#q#j#q#k#q#j#q#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j.s"
+"#j.s#j.s#j.s#j.s#k.s#j.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.p.r.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.q.q.o.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.t.u.t.t.t.u.t.u.t.v.t.v.t.v.t.v.t.v.w.v.w.v.v.v.v.v.v.x.v.x.v.x.v.x.v.x.x.y.x.x.x.y.x.A.x.A.x.A.x.A.z.A.z.A.A.A.z.A.A.B.A.B.A.B.A.B.B.B.B.7.B.B.B.C.B.C.B.C.B.C.D.C.D.C.D.C.C.E.C.E.C.E.C.F.E.F.E.F.F.F.F.H.F.H.F.I.G.I.G.I.K.I.K.J.I.J.I.L.J.L.J.L.L.L.L.8.L.8.L.N.M.N.M.N.O.P.O.Q.N.Q.P.Q.Q.Q.Q.S.Q.S.Q.T",
+"#l#l.h#l#p#l#p#l#p.h#p.h#p#p#m#p#m#p#m#p#t#p#t.l#t.l#t.l#t#u#e#t#e#u#e#e#x#e#x#e#x#e.s#e.s#e.s#x.s#x#b.s.s.s#b.s#j.s#j.s#j.s#j.s#j.s#j#k#j#k#j#j#j#k#j#j#j#k#j#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#w#q#q#q#w#q#q#q#w#q#z#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#q#q#w#q#q#q#w#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#j#k#j#j#j#k#j"
+"#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#j.s#b.s.s.s#b.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p.p.p.r.p.q.p.q.p.q.p.q.p.q.o.q.o.q.q.q.o.q.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.t.t.u.t.v.t.v.t.v.t.v.t.v.w.v.w.v.w.v.w.v.v.x.v.x.v.x.v.x.x.x.x.x.x.x.x.x.x.A.x.A.x.A.x.A.z.A.z.A.z.A.z.B.A.B.A.B.A.B.A.B.B.B.B.B.B.B.B.D.B.C.B.C.B.C.D.C.D.C.D.E.C.E.D.E.C.F.E.F.E.F.E.F.F.G.F.G.F.I.F.I.G.I.G.I.K.J.K.J.I.L.J.L.J.L.J.L.L.M.L.M.L.N.M.N.O.N.O.P.O.Q.O.Q.Q.Q.Q.Q.Q.S.Q",
+"#o#l#o#l#o#l#l#p#l#p#l#p.h#p.h#p#p#p#p.l#p.l#p#t#p#t.l#t.l#t.l#e#u#e#u#e#u#e#e#e#h#x#e#x#e#x#e.s#e.s#x.s#x.s.s.s.s.s.s#b.s#k.s#j.s#j.s#j.s#j.s#j#k#j#k#j#k#j#k#j#k#j#k#j#k#q#j#q#k#q#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#z#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#z#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#k#q#j#q#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k"
+"#j.s#j.s#j.s#j.s#j.s#k.s#j.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.r.s.p.p.r.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.o.q.q.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.t.u.t.t.t.u.t.u.t.v.t.v.t.v.t.v.t.v.v.v.w.v.v.v.v.x.v.x.v.x.v.x.v.x.x.x.x.y.x.y.x.A.x.A.x.A.x.A.x.A.z.A.z.A.A.A.A.B.A.B.A.B.A.B.B.B.B.B.B.7.B.7.B.C.B.C.B.C.B.C.D.C.D.C.D.E.C.E.C.F.C.F.E.F.E.F.E#d.F.G.F.H.F.H.F.I.G.I.G.I.I.J.K.J.I.J.I.L.J.L.J.L.L.M.L.N.L.N.M.N.O.N.O.P.N.P.O.Q.P.Q.P.Q.Q.R.Q.T.Q.T",
+"#l#l#l#l#p#l#p#l#p.h#p#p#B#p#p#p#m#p#t#p#t.l#t.l#t.l#t#u#e#t#e#u#e#t#e#t#x#e#x#e#x#e#x#e.s#x.s#x#b.s.s.s#b.s#j.s#j.s#j.s#j.s#j.s#j#k#j#k#j#k#j#k#j#j#j#k#j#j#q#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#w#q#q#q#w#q#q#q#w#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#q#q#w#q#q#q#w#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#j#j#j#k#j#j#j"
+"#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#b.s#b.s.s.s#b.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.o.q.o.q.q.q.o.q.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.t.t.u.t.v.t.v.t.v.t.v.w.v.w.v.w.v.v.v.w.x.v.x.v.x.v.x.v.x.x.x.x.x.x.y.x.z.x.A.x.A.x.A.x.A.z.A.z.A.z.A.z.B.A.B.A.B.A.B.B.B.B.B.B.B.B.C.B.D.B.C.B.C.D.C.D.C.D.C.D.E.C.F.D.F.C.F.E.F.F.F.F.G.F.H.F.G.F.I.G.I.G.I.K.J.K.J.K.J.I.L.J.L.L.L.L.M.L.O.L.O.M.N.M.N.O.P.O.P.O.Q#f.Q.Q.Q.Q.R.Q",
+"#o#l#o#l#l.h#l#p#l#p#l#p.h#p#p#p#p.l#p.l#p#m#p#t.l#t.l#t.l#t#u#t#u#e#u#e#t#e#u#x#e#x#e#x#e.s#e.s#x.s#x.s#x.s#x.s.s#b.s#k.s#j.s#j.s#j.s#j.s#j#k#j#k#j#k#j#k#j#k#j#k#j#k#q#j#q#k#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#k#q#j#q#k#j#k#j#k#j#k#j#k#j#k#j#k"
+"#j.s#j.s#j.s#j.s#j.s#j.s#k.s#b.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.r.s.p.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.r.q.o.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.t.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.w.v.v.v.w.v.v.v.v.x.v.x.v.x.v.x.x.x.x.x.x.y.x.y.x.A.x.A.x.A.x.A.z.A.z.A.z.A.A.A.A.B.A.B.A.B.A.B.B.B.B.B.B.7.B.C.B.C.B.C.B.C.D.C.D.C.C.C.D.E.C.E.C.F.C.F.E.F.F.F.F.H.F.H.F.I.F.I.G.I.G.I.G.I.I.J.I.L.I.L.J.L.J.L.L.8.L.M.L.N.L.N.M.N.O.N.O.P.N.Q.N.Q.Q.Q.Q.Q.Q.S.Q.T",
+"#l#l#p#l#p#l#p.h#p.h#B#p#p#p#m#p#m#p#t#p#t.l#t.l#t#u#e#t#e#u#e#t#e#t#x#e#x#e#x#e#x#e.s#x.s#x#b#x.s#x#b.s#b.s#j.s#j.s#j.s#j.s#j#k#j#k#j#k#j#k#j#j#j#k#j#j#q#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#w#q#q#q#w#q#q#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#z#q#w#q#q#q#w#q#q#q#w#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#j#j#j#k#j"
+"#j#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#b.s#b.s.s.s#b.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.r.p.p.p.r.p.r.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.o.t.q.t.q.t.q.t.q.t.t.t.t.t.t.u.t.t.t.v.t.v.t.v.t.v.t.v.w.v.w.v.w.v.v.v.w.x.v.x.v.x.v.x.x.x.x.x.x.x.x.y.x.z.x.A.x.A.x.A.z.A.z.A.z.A.A.B.z.B.A.B.A.B.B.B.B.B.B.B.B.D.B.C.B.C.B.C.D.C.D.C.D.C.D.E.D.E.C.F.C.F.E.F.E.F.F.F.F.G.F.I.F.I.G.I.G.I.K.I.K.J.K.L.K.L.J.L.J.L.L.M.L.M.L.N.L.N.O.N.O.N.O.Q.O.Q.N.Q.Q.Q.Q.Q.Q",
+"#o#l#l.h#o#p#l#p#l#p.h#p.h#p#p#p#p#p#p#m#p#u#p#t.l#t.l#t.l#t#u#e#u#e#u#e#u#e#e#x#e#x#e#x#e#x#e.s#x.s#x.s#x.s.s#b.s#k.s#j.s#j.s#j.s#j.s#j#k#j#k#j#k#j#k#j#k#j#k#j#k#q#j#q#k#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#z#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#k#q#j#q#k#j#k#j#k#j#k#j#k#j#k"
+"#j#k#j.s#j.s#j.s#j.s#j.s#j.s#k.s#b.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.r.p.p.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.q.q.o.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.u.t.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.w.v.v.v.v.v.v.x.v.x.v.x.v.x.v.x.x.y.x.x.x.y.x.A.x.A.x.A.x.A.x.A.z.A.A.A.z.A.A.B.A.B.A.B.A.B.B.B.B.7.B.B.B.C.B.C.B.C.B.C.D.C.D.C.D.C.C.E.C.E.C.F.C.F.E.F.E.F.F.F.F.H.F.H.F.I.G.I.G.I.K.I.K.J.I.J.I.L.J.L.J.L.L.L.L.8.L.8.L.N.M.N.M.N.O.P.O.Q.N.Q.P.Q.Q.Q.Q.S.Q.S",
+".h#l#p#l#p#l#p#l#p#p#p#p#m#p#m#p#t#p#t#p#t.l#t.l#t#u#t#u#e#t#e#t#e#e#x#e#x#e#x#e.s#e.s#x#b#x.s#x#b.s#b.s#j.s#j.s#j.s#j.s#j.s#j#k#j#k#j#k#j#j#j#k#j#j#q#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#w#q#q#q#w#q#q#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#w#q#q#q#w#q#q#q#w#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#j#j#j"
+"#k#j#j#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#j.s#b.s#b.s.s.s#b.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.r.p.p.p.r.p.q.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.u.t.t.t.v.t.v.t.v.t.v.w.v.w.v.w.v.w.v.v.x.v.x.v.x.v.x.v.x.x.x.x.x.x.x.x.A.x.A.x.A.x.A.z.A.z.A.z.A.z.A.A.B.z.B.A.B.A.B.B.B.B.B.B.B.B.D.B.C.B.C.B.C.D.C.D.C.D.C.D.E.D.E.C.F.E.F.E.F.E.F.F.G.F.G.F.I.F.I.G.I.G.I.K.J.K.J.I.L.I.L.J.L.L.L.L.M.L.O.L.N.M.N.O.N.O.P.O.Q.O.Q.Q.Q.Q.Q.Q",
+"#o#l#o#l#l#p#l#p#l#p#l#p#p#p#p#p#p#m#p.l#p#t#p#t.l#t.l#t#u#e#u#e#u#e#u#e#e#x#h#x#e#x#e#x#e.s#x.s#x.s#x.s.s.s.s.s.s#j.s#k.s#j.s#j.s#j.s#j#k#j#k#j#k#j#k#j#k#j#k#q#j#q#k#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#z#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#k#q#j#q#k#j#k#j#k#j#k#j#k"
+"#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#k.s#b.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.r.p.p.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.q.q.o.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.t.u.t.t.t.u.t.u.t.v.t.v.t.v.t.v.t.v.v.v.w.v.v.v.v.v.v.x.v.x.v.x.v.x.x.x.x.y.x.x.x.y.x.A.x.A.x.A.x.A.z.A.z.A.A.A.A.B.A.B.A.B.A.B.A.B.B.B.B.7.B.B.B.C.B.C.B.C.B.C.D.C.D.C.D.C.C.E.C.F.C.F.E.F.E.F.E#d.F.G.F.H.F.I.F.I.G.I.G.I.I.J.K.J.I.L.I.L.J.L.J.L.L.M.L.N.L.N.M.N.O.N.O.P.N.P.O.Q.N.Q.Q.Q.Q.R.Q.T",
+"#C#l#p#l#p#l#p#p#p#p#B#p#B#p#m#p#t#p#t.l#t.l#t#u#t#u#e#t#e#t#e#t#x#t#x#e#x#e#x#e#x#x.s#x.s#x#b.s#b.s#j.s#j.s#j.s#j.s#j.s#j#k#j#k#j#k#j#j#j#k#j#j#q#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#w#q#q#q#w#q#q#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#w#q#q#q#w#q#q#q#w#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#j"
+"#j#j#k#j#j#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#b.s#b.s#b.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p.p.p.r.p.q.p.q.p.q.p.q.p.q.o.q.o.q.q.q.o.q.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.t.t.u.t.v.t.v.t.v.t.v.t.v.w.v.w.v.v.v.w.x.v.x.v.x.v.x.v.x.x.x.x.x.x.y.x.z.x.A.x.A.x.A.x.A.z.A.z.A.z.A.z.B.A.B.A.B.A.B.B.B.B.B.B.B.B.C.B.D.B.C.B.C.D.C.D.C.D.C.D.E.C.F.D.F.C.F.E.F.F.F.F.G.F.H.F.G.F.I.G.I.K.I.K.J.K.J.K.L.I.L.J.L.L.L.L.M.L.O.L.O.M.N.M.N.O.P.O.Q.O.Q#f.Q.Q.Q.Q",
+"#o#l#l#p#l#p#l#p#l#p.h#p#p#p#p#m#p.l#p#t#p#t.l#t.l#t.l#t#u#t#u#e#u#e#t#x#u#x#e#x#e#x#e.s#e.s#x.s#x.s#x.s#x.s.s#j.s#k.s#j.s#j.s#j.s#j#k#j#k#j#k#j#k#j#k#j#k#j#j#q#k#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#k#q#j#q#k#q#j#j#k#j#k#j#k#j#k"
+"#j#k#j#k#j#k#j.s#j.s#j.s#j.s#k.s#j.s.s.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.p.r.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.o.q.q.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.t.u.t.u.t.u.t.u.t.v.t.v.t.v.t.v.w.v.v.v.w.v.v.v.v.x.v.x.v.x.v.x.v.x.x.x.x.y.x.y.x.A.x.A.x.A.x.A.z.A.z.A.z.A.A.A.A.B.A.B.A.B.A.B.B.B.B.B.B.7.B.C.B.C.B.C.B.C.D.C.D.C.C.C.D.E.C.E.C.F.C.F.E.F.F.F.F.H.F.H.F.I.F.I.G.I.G.I.K.I.I.J.I.L.I.L.J.L.L.L.L.8.L.M.L.N.L.N.M.N.O.N.O.Q.N.Q.N.Q.Q.Q.Q.Q.Q.S",
+"#p#l#p#l#p.h#p#p#B#p#p#p#m#p#t#p#t#p#t#p#t.l#t#u#t#t#t#u#e#t#x#t#x#e#x#e#x#e#x#x.s#x.s#x#b#x.s#x#b.s#j.s#j.s#j.s#j.s#j#k#j#k#j#k#j#j#j#k#j#j#q#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#w#q#q#q#w#q#q#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#w#q#q#q#w#q#q#q#w#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q"
+"#j#j#j#j#k#j#j#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#b.s.s.s#b.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.o.q.o.q.q.q.o.q.q.t.q.t.q.t.q.t.q.t.t.t.t.u.t.t.t.v.t.v.t.v.t.v.t.v.w.v.w.v.w.v.v.v.w.x.v.x.v.x.v.x.x.x.x.x.x.x.x.y.x.z.x.A.x.A.x.A.z.A.z.A.z.A.A.B.z.B.A.B.A.B.B.B.B.B.B.B.B.D.B.C.B.C.B.C.D.C.D.C.D.C.D.E.D.E.C.F.C.F.E.F.E.F.F.F.F.G.F.I.F.I.G.I.G.I.K.I.K.J.K.L.K.L.J.L.J.L.L.M.L.M.L.N.L.N.O.N.O.N.O.Q.O.Q.N.Q.Q.Q.Q",
+"#l#l#o#p#l#p#l#p.h#p#p#p#p#p#p#p#p#t#p#t#p#t#p#t.l#t#u#t#u#e#u#e#t#e#u#x#e#x#e#x#e#x#e#x#x.s#x.s#x.s#x.s.s#j.s#k.s#j.s#j.s#j.s#j#k#j#k#j#k#j#k#j#k#j#k#j#j#q#k#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#k#q#j#q#k#q#j#j#k#j#k#j#k"
+"#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#k.s#j.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.r.s.p.p.r.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.r.q.o.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.t.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.w.v.v.v.v.v.v.x.v.x.v.x.v.x.v.x.x.y.x.x.x.y.x.A.x.A.x.A.x.A.x.A.z.A.A.A.z.A.A.B.A.B.A.B.A.B.B.B.B.7.B.B.B.C.B.C.B.C.B.C.D.C.D.C.D.C.C.E.C.F.C.F.C.F.E.F.E.F.F.F.F.H.F.H.F.I.G.I.G.I.K.I.K.J.I.J.I.L.J.L.J.L.L.L.L.8.L.N.L.N.M.N.O.N.O.P.O.Q.N.Q.P.Q.Q.Q.Q.S",
+"#p#l#p#l#p#l#B#p#p#p#B#p#m#p#t#p#t#p#t.l#t#u#t#t#t#u#e#t#e#t#x#e#x#e#x#e#x#e#x#x#x#x#b#x.s#x#b.s#j.s#j.s#j.s#j.s#j.s#j#k#j#k#j#j#j#k#j#j#j#j#q#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#w#q#q#q#w#q#q#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#w#q#q#q#w#q#q#q#w#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q"
+"#j#j#j#j#j#j#k#j#j#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#j.s#b.s.s.s#b.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.p.p.p.r.p.p.p.r.p.r.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.u.t.t.t.v.t.v.t.v.t.v.t.v.w.v.w.v.w.v.v.x.v.x.v.x.v.x.v.x.x.x.x.x.x.x.x.A.x.A.x.A.x.A.z.A.z.A.z.A.z.A.A.B.z.B.A.B.A.B.B.B.B.B.B.B.B.D.B.C.B.C.B.C.D.C.D.C.D.C.D.E.D.E.C.F.E.F.E.F.F.F.F.G.F.G.F.I.F.I.G.I.G.I.K.J.K.J.I.L.J.L.L.L.L.L.L.M.L.O.L.N.M.N.O.N.O.P.O.Q.O.Q.Q.Q.Q",
+"#o#C#l#p#l#p#l#p#l#p#p#p#p#p#p#m#p#u#p#t#p#t.l#t.l#t#u#e#u#e#u#e#u#x#t#x#t#x#e#x#e#x#x.s#x.s#x.s#x.s.s#b.s#k.s#j.s#j.s#j.s#j#k#j#k#j#k#j#k#j#k#j#k#j#j#q#k#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#z#q#y#q#z#q#y#q#z#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#k#q#j#q#k#q#j#j#k#j#k"
+"#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#k.s#j.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.r.p.p.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.q.q.o.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.u.t.t.t.u.t.u.t.v.t.v.t.v.t.v.t.v.w.v.w.v.v.v.v.v.v.x.v.x.v.x.v.x.x.x.x.y.x.x.x.y.x.A.x.A.x.A.x.A.z.A.z.A.A.A.A.B.A.B.A.B.A.B.A.B.B.B.B.7.B.B.B.C.B.C.B.C.B.C.D.C.D.C.D.C.C.E.C.F.C.F.E.F.F.F.F#d.F.G.F.I.F.I.F.I.G.I.G.I.I.J.K.L.I.L.I.L.J.L.L.L.L.M.L.N.L.N.M.N.O.N.O.P.N.Q.O.Q.Q.Q.Q.Q.Q.R",
+"#p#l#p#l#p#p#p#p#B#p#B#p#t#p#t#p#t.l#t.l#t#t#t#u#e#t#e#t#x#t#x#t#x#e#x#e#x#x#x#x#b#x.s#x#b#x#j#x#j.s#j.s#j.s#j.s#j#k#j#k#j#j#j#k#j#j#j#j#q#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#w#q#q#q#w#q#q#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#y#D#z#D#y#D#z#D#y#D#z#D#y#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#w#q#q#q#w#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q"
+"#j#q#j#j#k#j#j#j#k#j#j#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#b.s#b.s.s.s#b.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.r.p.p.p.r.p.q.p.q.p.q.p.q.p.q.o.q.o.q.q.q.o.q.q.q.q.t.q.t.q.t.q.t.t.t.t.t.t.t.t.u.t.w.t.v.t.v.t.v.t.v.w.v.w.v.w.v.w.v.v.x.v.x.v.x.v.x.x.x.x.x.x.x.x.z.x.A.x.A.x.A.x.A.z.A.z.A.z.A.z.B.A.B.A.B.A.B.B.B.B.B.B.B.B.C.B.D.B.C.B.C.D.C.D.C.D.C.D.E.C.F.D.F.C.F.E.F.F.F.F.G.F.H.F.K.F.I.G.I.K.I.K.J.K.L.K.L.I.L.J.L.L.L.L.M.L.O.L.O.M.N.O.N.O.P.O.Q.O.Q#f.Q.Q",
+"#l#p#l#p#l#p#l#p#p#p#p#p#p#m#p.l#p#t#p#t.l#t.l#t#u#t#u#t#u#e#u#e#t#x#t#x#e#x#e#x#e#x#x#x#x.s#x.s#x#b#x#k.s#j.s#j.s#j.s#j.s#j#k#j#k#j#k#j#k#j#k#j#j#q#k#q#j#q#k#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#z#q#y#q#z#q#y#q#z#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#k#q#j#q#k#q#j#j#k"
+"#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#k.s#b.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.r.p.p.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.q.q.o.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.t.u.t.t.t.u.t.u.t.v.t.v.t.v.t.v.t.v.v.v.w.v.v.v.v.x.v.x.v.x.v.x.v.x.x.x.x.y.x.y.x.A.x.A.x.A.x.A.x.A.z.A.z.A.A.A.A.B.A.B.A.B.A.B.B.B.B.B.B.7.B.C.B.C.B.C.B.C.D.C.D.C.C.C.D.E.C.E.C.F.C.F.E.F.F.F.F.H.F.H.F.I.F.I.G.I.K.I.K.I.I.J.I.L.I.L.J.L.L.L.L.8.L.M.L.N.L.N.M.N.O.N.O.Q.N.Q.N.Q.Q.Q.Q#A",
+"#p#l#p.h#p#p#B#p#B#p#m#p#t#p#t#p#t#p#t#u#t#u#t#t#t#t#e#t#x#t#x#e#x#e#x#e#x#x#b#x.s#x#b#x#b#x#j.s#j.s#j.s#j.s#j#k#j#k#j#j#j#k#j#j#j#j#q#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#w#q#q#q#w#q#q#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#y#D#z#D#y#D#z#D#y#D#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#D#y#D#z#D#y#D#z#y#y#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#w#q#q#q#w#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q"
+"#j#q#j#q#j#j#k#j#j#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#b.s#b.s.s.s#b.s.s.s.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p.p.p.r.p.q.p.q.p.q.p.q.p.q.o.q.o.q.q.q.o.q.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.t.t.u.t.v.t.v.t.v.t.v.w.v.w.v.w.v.v.v.w.x.v.x.v.x.v.x.x.x.x.x.x.x.x.y.x.z.x.A.x.A.x.A.z.A.z.A.z.A.A.B.z.B.A.B.A.B.B.B.B.B.B.B.B.D.B.C.B.C.B.C.D.C.D.C.D.C.D.E.D.E.C.F.C.F.E.F.E.F.F.F.F.G.F.I.F.I.G.I.G.I.K.I.K.J.I.L.K.L.J.L.J.L.L.M.L.M.L.N.L.N.O.N.O.N.O.Q.O.Q#E.Q.Q",
+"#l#C#l#p#l#p.h#p#p#p#p#p#p#p#p#t#p#t#p#t#p#t.l#t#u#t#u#e#u#e#t#x#u#x#e#x#e#x#e#x#x#x#x.s#x.s#x.s#x#k.s#j.s#j.s#j.s#j.s#j#k#j#k#j#k#j#k#j#k#j#k#q#k#q#j#q#k#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#z#q#y#q#z#q#y#q#z#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#z#q#y#q#z#q#y#q#z#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#k#q#j#q#k#j#k"
+"#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#k.s#b.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.p.r.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.o.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.t.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.w.v.v.v.w.v.v.v.v.x.v.x.v.x.v.x.x.y.x.x.x.y.x.y.x.A.x.A.x.A.x.A.z.A.A.A.z.A.A.B.A.B.A.B.A.B.B.B.B.7.B.B.B.C.B.C.B.C.B.C.D.C.D.C.D.C.C.E.C.F.C.F.C.F.E.F.E.F.F.F.F.H.F.H.F.I.G.I.G.I.K.I.K.J.I.J.I.L.J.L.J.L.L.L.L.N.L.N.L.N.O.N.O.N.O.P.O.Q.N.Q.Q.Q.Q.Q",
+"#p#l#p#C#B#p#p#p#B#p#F#p#t#p#t#p#t.l#t#u#t#t#t#u#e#t#x#t#x#t#x#t#x#e#x#x#x#x#x#x#b#x#b#x#j.s#j.s#j.s#j.s#j.s#j#k#j#k#j#k#j#j#j#k#j#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#w#q#q#q#w#q#q#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#y#D#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#D#y#D#z#y#y#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#w#q#q#q#w#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q"
+"#j#q#j#q#j#j#j#j#k#j#j#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#b.s.s.s#b.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p.r.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.o.t.q.t.q.t.q.t.q.t.t.t.t.t.t.u.t.t.t.v.t.v.t.v.t.v.t.v.w.v.w.v.w.v.v.x.v.x.v.x.v.x.v.x.x.x.x.x.x.x.x.A.x.A.x.A.x.A.z.A.z.A.z.A.z.A.A.B.z.B.A.B.A.B.B.B.B.B.B.B.B.D.B.C.B.C.B.C.D.C.D.C.D.C.D.F.D.F.C.F.E.F.F.F.F.F.F.G.F.G.F.I.F.I.K.I.K.I.K.J.K.J.I.L.J.L.L.L.L.L.L.O.L.O.L.N.M.N.O.N.O.Q.O.Q.O.Q.Q",
+"#l#p#l#p#l#p#C#p#p#p#p#p#p#m#p#t#p#t#p#t.l#t#u#t#u#t#u#t#t#e#u#x#t#x#t#x#e#x#e#x#x.s#x.s#x.s#x.s.s#j.s#k.s#j.s#j.s#j.s#j#k#j#k#j#k#j#k#j#k#j#k#q#j#q#k#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#z#q#y#q#z#q#y#q#z#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#z#q#y#q#z#q#y#q#z#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#k#q#j#q#k"
+"#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#k.s#j.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.r.s.p.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.r.q.o.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.u.t.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.w.v.w.v.v.v.v.v.v.x.v.x.v.x.v.x.x.x.x.y.x.x.x.y.x.A.x.A.x.A.x.A.z.A.z.A.A.A.A.B.A.B.A.B.A.B.A.B.B.B.B.7.B.B.B.C.B.C.B.C.B.C.D.C.D.C.D.C.C.E.C.F.C.F.E.F.F.F.F#d.F.G.F.I.F.I.F.I.G.I.K.I.I.J.K.L.I.L.I.L.L.L.L.L.L.M.L.N.L.N.M.N.O.N.O.Q.N.Q.O.Q.Q.Q.Q.Q",
+"#p#l#B#p#p#p#B#p#B#p#t#p#t#p#t.l#t#u#t#t#t#u#e#t#e#t#x#t#x#t#x#e#x#e#x#x#x#x#b#x.s#x#b#x#j#x#j.s#j.s#j.s#j#k#j#k#j#k#j#j#j#k#j#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#w#q#q#q#w#q#q#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#y#D#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#D#y#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#w#q#q#q#w#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q"
+"#j#q#j#q#j#q#j#j#j#j#k#j#j#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#b.s.s.s#b.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.p.p.p.r.p.p.p.r.p.r.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.u.t.w.t.v.t.v.t.v.t.v.w.v.w.v.w.v.w.v.v.x.v.x.v.x.v.x.x.x.x.x.x.x.x.z.x.A.x.A.x.A.x.A.z.A.z.A.z.A.z.B.A.B.A.B.A.B.B.B.B.B.B.B.B.C.B.D.B.C.B.C.D.C.D.C.D.C.D.E.C.F.D.F.C.F.E.F.F.F.F.G.F.I.F.K.F.I.G.I.K.I.K.J.K.L.K.L.I.L.J.L.L.L.L.M.L.N.L.O.O.N.O.N.O.Q.O.Q.N.Q#G",
+"#l#p#l#p#l#p#p#p#p#p#p#B#p#H#p#t#p#t#p#t.l#t#u#t#u#t#u#e#u#x#t#x#t#x#e#x#e#x#x#x#x#x#x.s#x.s#x#j#x#k.s#j.s#j.s#j.s#j#k#j#k#j#k#j#k#j#k#j#k#q#j#q#k#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#z#q#y#q#z#q#y#q#z#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#z#q#y#q#z#q#y#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#k#q#j"
+"#q#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#k.s#j.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.r.p.p.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.q.q.o.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.t.u.t.t.t.u.t.u.t.v.t.v.t.v.t.v.t.v.v.v.w.v.v.v.v.x.v.x.v.x.v.x.v.x.x.x.x.y.x.y.x.A.x.A.x.A.x.A.z.A.z.A.z.A.A.A.A.B.A.B.A.B.A.B.B.B.B.B.B.7.B.C.B.C.B.C.B.C.D.C.D.C.C.C.D.F.C.F.C.F.C.F.E.F.F.F.F.H.F.H.F.I.F.I.G.I.K.I.K.J.I.J.I.L.I.L.J.L.L.L.L.8.L.O.L.N.M.N.O.N.O.N.O.Q.N.Q.N.Q.Q.Q",
+"#p#C#p#C#B#p#B#p#m#p#t#p#t#p#t#p#t#u#t#u#t#t#t#t#x#t#x#t#x#e#x#e#x#x#x#x#b#x.s#x#b#x#j#x#j.s#j.s#j.s#j.s#j#k#j#k#j#j#j#k#j#j#q#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#w#q#q#q#w#q#q#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#y#y#z#y#y#y#z#y#y#y#z#D#y#D#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#D#y#D#z#y#y#y#z#y#y#y#z#y#y#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#w#q#q#q#w#q#q#q#q#q#q#q#q#q#q#j#q#j#q"
+"#j#q#j#q#j#q#j#q#j#j#j#j#k#j#j#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#b.s#b.s.s.s#b.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.r.p.p.p.r.p.q.p.q.p.q.p.q.p.q.o.q.o.q.q.q.o.q.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.t.t.u.t.v.t.v.t.v.t.v.w.v.w.v.w.v.v.v.w.x.v.x.v.x.v.x.x.x.x.x.x.x.x.y.x.z.x.A.x.A.x.A.z.A.z.A.z.A.A.B.z.B.A.B.A.B.B.B.B.B.B.B.B.D.B.C.B.C.B.C.D.C.D.C.D.C.D.E.D.F.C.F.C.F.F.F.F.F.F.F.F.G.F.I.F.I.G.I.G.I.K.I.K.J.I.L.K.L.L.L.L.L.L.M.L.O.L.N.M.N.O.N.O.P.O.Q.O.Q.Q",
+"#l#p#l#p#l#p#C#p#p#B#p#p#p#t#p#t#p#t#p#t#u#t#u#t#u#e#u#e#t#x#t#x#e#x#e#x#e#x#x#x#x.s#x.s#x#b#x#k.s#j.s#j.s#j.s#j#k#j#k#j#k#j#k#j#k#j#k#q#j#q#k#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#z#q#y#q#z#q#y#q#z#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#D#z#D#z#D#z#D#z#D#z#D#z#D#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#z#q#y#q#z#q#y#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#k"
+"#q#j#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#k.s#b.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.r.p.p.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.o.q.q.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.t.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.w.v.v.v.w.v.v.v.v.x.v.x.v.x.v.x.x.y.x.x.x.y.x.A.x.A.x.A.x.A.x.A.z.A.A.A.z.A.A.B.A.B.A.B.A.B.B.B.B.7.B.B.B.C.B.C.B.C.B.C.D.C.D.C.D.C.C.E.C.F.C.F.C.F.F.F.F.F.F.F.F.I.F.I.F.I.G.I.G.I.K.I.K.L.I.L.I.L.J.L.L.L.L.M.L.N.L.N.L.N.O.N.O.N.O.Q.O.Q.N.Q.Q.Q",
+"#p#C#B#p#p#p#B#p#F#p#t#p#t#p#t#u#t#u#t#t#t#t#e#t#x#t#x#t#x#t#x#e#x#x#I#x#x#x#b#x#b#x#j.s#j.s#j.s#j.s#j#k#j#k#j#j#j#k#j#j#j#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#w#q#q#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#y#y#z#y#y#y#z#y#y#y#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#D#y#y#z#y#y#y#z#y#y#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#q#q#w#q#q#q#w#q#q#q#q#q#q#q#q#j#q#j#q"
+"#j#q#j#q#j#q#j#q#j#j#k#j#j#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#b.s#b.s.s.s#b.s.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p.p.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.o.t.q.t.q.t.q.t.q.t.t.t.t.t.t.u.t.t.t.v.t.v.t.v.t.v.t.v.w.v.w.v.w.v.v.x.v.x.v.x.v.x.v.x.x.x.x.x.x.x.x.A.x.A.x.A.x.A.z.A.z.A.z.A.z.B.A.B.z.B.A.B.A.B.B.B.B.B.B.B.B.D.B.C.B.C.B.C.D.C.D.C.D.E.C.F.D.F.C.F.E.F.F.F.F.F.F.K.F.K.F.I.G.I.K.I.K.I.K.L.K.L.I.L.J.L.L.L.L.M.L.O.L.O.L.N.O.N.O#E.O.Q.O.Q.O",
+"#l#p#l#p#C#p#p#p#p#p#p#t#p#t#p#t#p#t.l#t#u#t#u#t#u#t#t#x#u#x#t#x#t#x#e#x#x#x#x.s#x.s#x.s#x#k#x#j#x#j.s#j.s#j.s#j#k#j#k#j#k#j#k#j#k#j#j#q#k#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#z#q#y#q#z#q#y#q#z#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#D#z#D#z#D#z#D#z#D#z#D#z#D#z#D#z#D#z#D#z#D#z#D#z#D#z#D#z#D#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#z#q#y#q#z#q#y#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#k#q#j"
+"#q#k#q#j#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#k.s#b.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.r.s.p.p.r.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.r.q.o.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.u.t.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.w.v.w.v.v.v.v.v.v.x.v.x.v.x.v.x.x.x.x.y.x.x.x.y.x.A.x.A.x.A.x.A.z.A.z.A.A.A.A.B.A.B.A.B.A.B.B.B.B.B.B.7.B.7.B.C.B.C.B.C.D.C.D.C.C.C.D.F.C.F.C.F.C.F.E.F.F.F.F#d.F.G.F.I.F.I.G.I.K.I.K.I.I.J.K.L.I.L.J.L.L.L.L.L.L.M.L.N.L.N.M.N.O.N.O.Q.N.Q.N.Q.Q.Q",
+"#B#p#p#p#B#p#B#p#t#p#t#p#t#p#t#H#t#t#t#u#t#t#t#t#x#t#x#t#x#e#x#x#x#x#x#x#b#x#b#x#j#x#j#x#j.s#j.s#j.s#j#k#j#j#j#k#j#j#j#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#w#q#q#q#w#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#y#y#z#y#y#y#z#y#y#D#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#D#y#y#z#y#y#y#z#y#y#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#q#q#w#q#q#q#w#q#q#q#q#q#q#q#q#j#q"
+"#j#q#j#q#j#q#j#q#j#q#j#j#k#j#j#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#b.s.s.s#b.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.p.p.p.r.p.p.p.r.p.r.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.u.t.w.t.v.t.v.t.v.t.v.w.v.w.v.w.v.w.v.v.x.v.x.v.x.v.x.x.x.x.x.x.y.x.z.x.A.x.A.x.A.x.A.z.A.z.A.z.A.z.B.A.B.A.B.A.B.B.B.B.B.B.B.B.C.B.D.B.C.B.C.D.C.D.C.D.C.D.E.C.F.C.F.E.F.E.F.F.F.F.G.F.I.F.K.F.I.G.I.K.I.K.J.K.L.K.L.J.L.L.L.L.L.L.O.L.N.L.O.O.N.O.N.O.Q.O.Q#E",
+"#l#p#l#p#p#p#p#p#p#B#p#F#p#t#p#t#p#t#H#t#u#t#u#t#t#e#u#x#t#x#t#x#e#x#e#x#x#x#x#x#x.s#x.s#x#j#x#k.s#j.s#j.s#j#k#j#k#j#k#j#k#j#k#j#j#q#k#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#z#q#y#q#z#q#y#q#z#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#D#z#D#z#D#z#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#z#D#z#D#z#D#z#D#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#z#q#y#q#z#q#y#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#k"
+"#q#j#q#k#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#k.s#j.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.r.s.p.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.q.q.o.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.t.u.t.t.t.u.t.u.t.v.t.v.t.v.t.v.t.v.v.v.w.v.v.v.v.x.v.x.v.x.v.x.v.x.x.x.x.y.x.y.x.A.x.A.x.A.x.A.z.A.z.A.z.A.A.A.A.B.A.B.A.B.A.B.B.B.B.B.B.7.B.C.B.C.B.C.B.C.D.C.D.C.C.C.D.F.C.F.C.F.E.F.F.F.F.F.F.I.F.I.F.I.F.I.G.I.K.I.K.J.I.L.I.L.I.L.J.L.L.L.L.N.L.N.L.N.O.N.O.N.O.P.O.Q.N.Q.Q.Q",
+"#p#C#B#p#B#p#F#p#F#p#t#p#t#p#t#t#t#u#t#t#t#t#x#t#x#t#x#t#x#t#x#x#x#x#I#x#x#x#b#x#j#x#j.s#j.s#j.s#j#k#j#k#j#k#j#j#j#k#j#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#w#q#q#q#w#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#y#y#z#y#y#y#z#y#y#D#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#D#y#y#z#y#y#y#z#y#y#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#q#q#w#q#q#q#q#q#q#q#q#q#q#j#q"
+"#j#q#j#q#j#q#j#q#j#q#j#j#j#j#k#j#j#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#b.s.s.s#b.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.r.p.p.p.r.p.q.p.q.p.q.p.q.p.q.o.q.o.q.q.q.o.q.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.t.t.u.t.v.t.v.t.v.t.v.w.v.w.v.w.v.v.v.w.x.v.x.v.x.v.x.x.x.x.x.x.x.x.y.x.z.x.A.x.A.x.A.z.A.z.A.z.A.A.B.z.B.A.B.A.B.B.B.B.B.B.B.B.D.B.C.B.C.B.C.D.C.D.C.D.C.D.F.D.F.C.F.C.F.F.F.F.F.F.G.F.K.F.I.F.I.K.I.K.I.K.J.K.L.I.L.K.L.L.L.L.L.L.O.L.O.L.N.M.N.O.N.O.Q.O.Q.O",
+"#l#p#C#p#C#p#p#B#p#p#p#t#p#t#p#t#p#t#u#t#u#t#u#t#u#t#t#x#t#x#t#x#t#x#x#x#x#x#x.s#x.s#x#j#x#k.s#j.s#j.s#j.s#j#k#j#k#j#k#j#k#j#k#j#k#q#j#q#k#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#y#q#z#q#y#q#z#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#D#z#D#z#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#z#D#z#D#z#D#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#z#q#y#q#z#q#z#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j"
+"#q#k#q#j#q#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#k.s#j.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.r.p.p.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.q.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.t.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.w.v.v.v.v.v.v.x.v.x.v.x.v.x.v.x.x.y.x.x.x.y.x.A.x.A.x.A.x.A.x.A.z.A.A.A.z.A.A.B.A.B.A.B.A.B.B.B.B.7.B.B.B.C.B.C.B.C.B.C.D.C.D.C.D.C.C.E.C.F.C.F.C.F.F.F.F#d.F.G.F.I.F.I.F.I.K.I.K.I.K.J.K.L.I.L.I.L.L.L.L.L.L.M.L.N.L.N.M.N.O.N.O#E.N.Q.O.Q#E.Q",
+"#B#p#p#p#B#p#F#p#t#p#t#p#t#H#t#u#t#t#t#t#e#t#x#t#x#t#x#t#x#x#x#x#I#x#x#x#b#x#j#x#j#x#j#x#j.s#j.s#j#k#j#k#j#j#j#k#j#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#w#q#q#q#w#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#y#y#z#y#y#y#z#y#y#D#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#D#y#D#z#y#y#y#z#y#y#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#w#q#q#q#w#q#q#q#q#q#q#q#q#q#q"
+"#j#q#j#q#j#q#j#q#j#q#j#q#j#j#j#j#k#j#j#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#b.s#b.s.s.s#b.s.s.s.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p.p.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.o.t.q.t.q.t.q.t.q.t.t.t.t.t.t.u.t.t.t.v.t.v.t.v.t.v.t.v.w.v.w.v.w.v.v.x.v.x.v.x.v.x.v.x.x.x.x.x.x.x.x.A.x.A.x.A.x.A.z.A.z.A.z.A.z.B.A.B.A.B.A.B.B.B.B.B.B.B.B.C.B.D.B.C.B.C.D.C.D.C.D.C.D.E.C.F.D.F.C.F.E.F.F.F.F.F.F.I.F.K.F.I.G.I.K.I.K.I.K.L.K.L.I.L.J.L.L.L.L.M.L.O.L.O.O.N.O.N.O.Q.O.Q.O",
+"#l#p#C#p#p#p#p#p#p#F#p#F#p#t#p#t#p#t#H#t#u#t#u#t#t#x#u#x#t#x#t#x#e#x#x#x#x#x#x#x#x#b#x#k#x#j#x#j.s#j.s#j#k#j#k#j#k#j#k#j#k#j#k#q#j#q#k#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#y#q#z#q#y#q#z#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#D#z#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#z#D#z#D#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#z#q#y#q#z#q#y#q#z#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j"
+"#q#j#q#k#q#j#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#k.s#b.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.p.r.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.r.q.o.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.u.t.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.w.v.w.v.v.v.v.v.v.x.v.x.v.x.v.x.x.x.x.y.x.x.x.y.x.A.x.A.x.A.x.A.z.A.z.A.A.A.A.B.A.B.A.B.A.B.B.B.B.B.B.7.B.C.B.C.B.C.B.C.D.C.D.C.C.C.D.F.C.F.C.F.C.F.E.F.F.F.F#d.F.I.F.I.F.I.G.I.K.I.K.I.I.J.I.L.I.L.J.L.L.L.L.N.L.O.L.N#J.N.O.N.O.N.O.Q.N.Q.N.Q",
+"#p#C#B#p#B#p#F#p#t#p#t#p#t#H#t#t#t#u#t#t#K#t#x#t#x#t#x#e#x#x#x#x#x#x#b#x#b#x#j#x#j#x#j.s#j.s#j#k#j#k#j#j#j#k#j#j#j#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#w#q#q#q#w#q#q#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#y#y#z#y#y#y#z#y#y#D#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#y#y#y#z#y#y#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#w#q#q#q#w#q#q#q#q#q#q#q#q"
+"#j#q#j#q#j#q#j#q#j#q#j#q#j#j#k#j#j#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#b.s.s.s#b.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.p.p.p.r.p.p.p.r.p.r.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.u.t.w.t.v.t.v.t.v.t.v.w.v.w.v.v.v.w.x.v.x.v.x.v.x.v.x.x.x.x.x.x.y.x.z.x.A.x.A.x.A.z.A.z.A.z.A.z.A.z.B.A.B.A.B.A.B.B.B.B.B.B.B.B.C.B.D.B.C.B.C.D.C.D.C.D.F.D.F.C.F.C.F.F.F.F.F.F.F.F.G.F.I.F.I.K.I.K.I.K.I.K.J.K.L.K.L.L.L.L.L.L.O.L.O.L.N.L.N.O.N.O.N.O.Q.O",
+"#l#p#C#p#C#p#p#B#p#F#p#t#p#t#p#t#H#t#u#t#u#t#t#e#u#x#t#x#t#x#t#x#e#x#x#x#x#x#x.s#x.s#x#j#x#j.s#j.s#j.s#j#k#j#k#j#k#j#k#j#k#j#j#q#k#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#z#q#z#q#y#q#z#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#D#z#D#z#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#z#D#z#D#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#z#q#y#q#z#q#y#q#z#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j"
+"#q#k#q#j#q#k#q#j#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#k.s#j.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.r.s.p.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.q.q.o.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.t.u.t.t.t.u.t.u.t.v.t.v.t.v.t.v.w.v.v.v.w.v.v.v.v.x.v.x.v.x.v.x.x.x.x.x.x.y.x.y.x.A.x.A.x.A.x.A.z.A.A.A.z.A.A.B.A.B.A.B.A.B.B.B.B.B.B.B.B.7.B.C.B.C.B.C.D.C.D.C.D.C.C.E.C.F.C.F.C.F.F.F.F.F.F.F.F.I.F.I.F.I.K.I.K.I.K.I.K.L.I.L.I.L.L.L.L.L.L.L.L.N.L.N.L.N.O.N.O#E.O.Q.O.Q#E.Q",
+"#B#p#B#p#F#p#F#p#t#p#t#p#t#t#t#u#t#t#t#t#x#t#x#t#x#t#x#t#x#x#x#x#I#x#x#x#b#x#j#x#j#x#j#x#j.s#j#k#j#k#j#k#j#j#j#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#w#q#q#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#y#y#z#y#y#y#z#y#y#D#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#y#y#y#z#y#y#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#q#q#w#q#q#q#w#q#q#q#q#q#q"
+"#q#q#j#q#j#q#j#q#j#q#j#q#j#q#j#j#k#j#j#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#b.s.s.s#b.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.r.p.p.p.r.p.q.p.q.p.q.p.q.p.q.o.q.o.q.q.q.o.q.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.t.t.u.t.v.t.v.t.v.t.v.w.v.w.v.w.v.v.v.w.x.v.x.v.x.v.x.x.x.x.x.x.x.x.A.x.z.x.A.x.A.x.A.z.A.z.A.z.A.A.B.z.B.A.B.A.B.B.B.B.B.B.B.B.D.B.C.B.C.B.C.D.C.D.C.D.C.D.F.D.F.C.F.E.F.F.F.F.F.F.K.F.K.F.I.F.I.K.I.K.I.K.L.K.L.I.L.J.L.L.L.L.L.L.O.L.O#J.N.O.N.O#E.O.Q.O",
+"#C#p#C#p#p#B#p#p#p#F#p#t#p#t#p#t#u#t#u#t#u#t#u#K#t#x#t#x#t#x#t#x#x#x#x#x#x#x#x#x#x#j#x#k#x#j#x#j.s#j#k#j#k#j#k#j#k#j#k#j#j#q#k#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#z#q#y#q#z#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#D#z#D#z#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#z#D#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#z#q#y#q#z#q#y#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j"
+"#q#j#q#k#q#j#q#k#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#k.s#j.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.r.p.p.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.o.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.t.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.w.v.v.v.v.v.v.x.v.x.v.x.v.x.v.x.x.y.x.x.x.y.x.A.x.A.x.A.x.A.z.A.z.A.A.A.z.A.A.B.A.B.A.B.A.B.B.B.B.7.B.B.B.C.B.C.B.C.B.C.D.C.D.C.D#L.C.F.C.F.C.F.E.F.F.F.F#d.F.G.F.I.F.I.F.I.K.I.K.I.I.J.K.L.I.L.I.L.L.L.L.L.L.O.L.N.L.N.O.N.O.N.O.Q.N.Q.N.Q",
+"#p#p#B#p#F#p#t#p#t#p#t#H#t#H#t#t#t#t#t#t#K#t#x#t#x#t#x#x#x#x#I#x#x#x#b#x#j#x#j#x#j#x#j.s#j#k#j#k#j#k#j#j#j#k#j#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#w#q#q#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#y#y#z#y#y#y#z#y#y#D#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#y#z#y#y#y#z#y#y#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#q#q#w#q#q#q#w#q#q#q#q"
+"#q#q#j#q#j#q#j#q#j#q#j#q#j#q#j#j#j#j#k#j#j#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#b.s#b.s.s.s#b.s.s.s.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p.p.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.o.t.q.t.q.t.q.t.q.t.t.t.t.t.t.u.t.t.t.v.t.v.t.v.t.v.w.v.w.v.w.v.w.v.v.x.v.x.v.x.v.x.x.x.x.x.x.x.x.x.x.A.x.A.x.A.x.A.z.A.z.A.z.A.z.B.A.B.A.B.A.B.B.B.B.B.B.B.B.C.B.D.B.C.B.C.D.C.D.C.D#L.D.F.C.F.D.F#L.F.F.F.F.F.F.G.F.I.F.K.F.I.K.I.K.I.K.J.K.L.K.L#M.L.L.L.L#J.L.O.L.N.L.O.O.N.O.N.O.Q.O",
+"#C#p#C#p#p#p#p#F#p#F#p#t#p#t#p#t#H#t#u#t#u#t#t#x#u#x#t#x#t#x#e#x#x#x#x#x#x#x#x#b#x#k#x#j#x#j.s#j.s#j#k#j#k#j#k#j#k#j#k#j#k#q#j#q#k#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#z#q#y#q#z#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#D#z#D#z#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#z#D#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#z#q#y#q#z#q#y#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j"
+"#q#j#q#j#q#k#q#j#q#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#k.s#b.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.p.r.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.r.q.o.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.u.t.t.t.u.t.u.t.v.t.v.t.v.t.v.t.v.v.v.w.v.v.v.v.v.v.x.v.x.v.x.v.x.x.x.x.y.x.y.x.A.x.A.x.A.x.A.x.A.z.A.z.A.A.A.A.B.A.B.A.B.A.B.B.B.B.B.B.7.B.C.B.C.B.C.B.C.D.C.D.C.C.C.D.F.C.F.C.F#L.F.F.F.F.F.F.I.F.I.F.I.F.I.K.I.K.I.K.L.I.L.I.L.I.L.L.L.L.L.L.N.L.O.L.N.O.N.O.N.O.Q.O.Q.N.Q",
+"#B#p#B#p#F#p#F#p#t#p#t#H#t#t#t#u#t#t#K#t#x#t#x#t#x#t#x#K#x#x#x#x#I#x#I#x#j#x#j#x#j.s#j.s#j#k#j#k#j#j#j#k#j#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#w#q#q#q#w#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#y#y#z#y#y#y#z#y#y#D#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#D#y#y#z#y#y#y#z#y#y#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#q#q#w#q#q#q#q#q#q"
+"#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#j#k#j#j#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#b.s.s.s#b.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.p.p.p.r.p.p.p.r.p.r.p.q.p.q.p.q.p.q.p.q.o.q.q.q.o.q.q.q.q.t.q.t.q.t.q.t.t.t.t.t.t.t.t.u.t.v.t.v.t.v.t.v.t.v.w.v.w.v.v.v.w.x.v.x.v.x.v.x.v.x.x.x.x.x.x.y.x.z.x.A.x.A.x.A.z.A.z.A.z.A.A.B.z.B.A.B.A.B.B.B.B.B.B.B.B.D.B.C.B.C.B.C.D.C.D.C.D.C.D.F.D.F.C.F.C.F.F.F.F.F.F.K.F.K.F.I.F.I.K.I.K.I.K.L.K.L.I.L.K.L.L.L.L.L.L.O.L.O.L.N.O.N.O#E.O.Q.O",
+"#C#p#C#p#p#B#p#F#p#t#p#t#p#t#H#t#u#t#u#t#t#t#u#K#t#x#t#x#t#x#K#x#x#x#x#x#x.s#x#k#x#j#x#j#x#j#x#j.s#j#k#j#k#j#k#j#k#j#k#q#j#q#k#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#z#q#y#q#z#q#y#q#z#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#z#D#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#z#q#y#q#z#q#z#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j"
+"#q#j#q#j#q#j#q#k#q#j#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.r.s.p.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.q.q.o.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.t.u.t.u.t.u.t.u.t.v.t.v.t.v.t.v.w.v.v.v.w.v.v.v.v.x.v.x.v.x.v.x.x.x.x.x.x.y.x.y.x.A.x.A.x.A.x.A.z.A.A.A.z.A.A.B.A.B.A.B.A.B.B.B.B.7.B.B.B.C.B.C.B.C.B.C.D.C.D.C.D#L.C.F.C.F.C.F.C.F.F.F.F.F.F.G.F.I.F.I.F.I.K.I.K.I.K.I.K.L.I.L.I.L.L.L.L.L.L.O.L.N.L.N.L.N.O.N.O#E.O.Q.O.Q",
+"#B#p#F#p#F#p#t#p#t#p#t#F#t#H#t#t#t#t#K#t#K#t#x#t#x#t#x#x#x#x#I#x#x#x#j#x#j#x#j#x#j#x#j.s#j#k#j#j#j#k#j#j#j#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#w#q#q#q#w#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#y#y#z#y#y#D#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#D#y#y#z#y#y#y#z#y#y#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#w#q#q#q#w#q#q#q#q"
+"#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#j#j#k#j#j#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#b.s.s.s#b.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.r.p.p.p.r.p.q.p.q.p.q.p.q.p.q.o.q.o.q.q.q.o.q.q.t.q.t.q.t.q.t.q.t.t.t.t.u.t.t.t.v.t.v.t.v.t.v.t.v.w.v.w.v.w.v.v.x.w.x.v.x.v.x.v.x.x.x.x.x.x.x.x.A.x.A.x.A.x.A.z.A.z.A.z.A.z.B.A.B.z.B.A.B.A.B.B.B.B.B.B.B.B.D.B.C.B.C.D.C.D.C.D#L.D.F.C.F.D.F#L.F.F.F.F.F.F.F.F.K.F.K.F.I.G.I.K.I.K.I.K.L.K.L.I.L.L.L.L.L.L.O.L.O.L.O.O.N.O.N.O#E.O",
+"#C#p#p#B#p#p#p#F#p#F#p#t#p#t#H#t#H#t#u#t#u#K#t#x#t#x#t#x#t#x#x#x#x#x#x#x#x#x#x#j#x#k#x#j#x#j.s#j#k#j#k#j#k#j#k#j#k#j#j#q#k#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#y#q#z#q#y#q#z#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#z#D#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#z#q#y#q#z#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j"
+"#q#j#q#j#q#k#q#j#q#k#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#k.s#j.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.r.p.p.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.o.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.u.t.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.w.v.w.v.v.v.v.v.v.x.v.x.v.x.v.x.x.x.x.y.x.x.x.y.x.A.x.A.x.A.x.A.z.A.z.A.A.A.A.B.A.B.A.B.A.B.B.B.B.B.B.7.B.C.B.C.B.C.B.C.D.C.D.C.C.C.D.F.C.F.C.F#L.F.F.F.F.F.F#N.F.I.F.I.F.I.G.I.K.I.K#M.I.L.I.L.I.L.L.L.L.L.L#J.L.O.L.N#J.N.O.N.O.N.O.Q.N.Q",
+"#B#p#F#p#F#p#F#p#t#H#t#H#t#t#t#t#t#t#K#t#x#t#x#t#x#K#x#K#I#x#x#x#I#x#O#x#j#x#j#x#j.s#j#k#j#k#j#k#j#j#j#k#j#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#w#q#q#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#y#y#z#y#y#D#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#D#y#y#z#y#y#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#q#q#w#q#q#q#w#q#q"
+"#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#j#j#j#k#j#j#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#b.s#b.s.s.s#b.s.s.s.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p.r.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.u.t.w.t.v.t.v.t.v.t.v.w.v.w.v.w.v.w.v.v.x.v.x.v.x.v.x.x.x.x.x.x.y.x.z.x.A.x.A.x.A.x.A.z.A.z.A.z.A.z.B.A.B.A.B.A.B.B.B.B.B.B.B.B.C.B.D.B.C.B.C.D.C.D.C.D.F.D.F.C.F.C.F.F.F.F.F.F#P.F.K.F.I.F.I.K.I.K.I.K#M.K.L.K.L.K.L.L.L.L.L.L#J.L.O.L.N#J.N.O.N.O#E.O",
+"#C#p#C#p#p#F#p#F#p#t#p#t#p#t#H#t#u#t#u#t#t#K#u#K#t#x#t#x#t#x#K#x#x#x#x#x#x#b#x#k#x#j#x#j#x#j#x#j#k#j#k#j#k#j#k#j#k#j#k#q#j#q#k#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#z#q#z#q#y#q#z#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#z#D#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#z#q#y#q#z#q#y#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j"
+"#q#j#q#j#q#j#q#k#q#j#q#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#k.s#b.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.r.s.p.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.r.q.o.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.t.u.t.t.t.u.t.u.t.v.t.v.t.v.t.v.t.v.v.v.w.v.v.v.v.x.v.x.v.x.v.x.v.x.x.x.x.y.x.y.x.A.x.A.x.A.x.A.z.A.z.A.z.A.A.B.A.B.A.B.A.B.A.B.B.B.B.B.B.7.B.C.B.C.B.C.B.C.D.C.D#L.C.F.C.F.C.F.C.F.F.F.F.F.F.F.F.I.F.I.F.I.K.I.K.I.K.I.K.L.I.L.I.L.L.L.L.L.L.L.L.N.L.N.L.N.O.N.O#E.O.Q.O.Q",
+"#B#p#F#p#F#p#t#p#t#H#t#F#t#u#t#t#K#t#K#t#x#t#x#t#x#K#x#x#x#x#I#x#I#x#j#x#j#x#j#x#j#x#j#k#j#k#j#j#j#k#j#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#w#q#q#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#y#y#z#y#y#y#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#y#y#y#z#y#y#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#q#q#w#q#q#q#q"
+"#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#j#k#j#j#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#b.s.s.s#b.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.p.p.p.r.p.p.p.r.p.q.p.q.p.q.p.q.p.q.o.q.o.q.q.q.o.q.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.t.t.u.t.v.t.v.t.v.t.v.w.v.w.v.w.v.v.v.w.x.v.x.v.x.v.x.x.x.x.x.x.x.x.A.x.z.x.A.x.A.x.A.z.A.z.A.z.A.A.B.z.B.A.B.A.B.B.B.B.B.B.B.B.D.B.C.B.C.B.C.D.C.D#L.D#L.D.F.D.F#L.F.F.F.F.F.F.F.F.K.F.K.F.I.F.I.K.I.K.I.K.L.K.L.I.L.L.L.L.L.L#J.L.O.L.O#J.N.O.N.O#E.O",
+"#C#p#p#B#p#H#p#F#p#F#p#t#H#t#H#t#H#t#t#t#u#K#t#x#t#x#t#x#K#x#x#x#x#x#x#x#x#Q#x#j#x#j#x#j#x#j.s#j#k#j#k#j#k#j#k#j#k#q#j#q#k#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#z#q#y#q#z#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#z#q#y#q#z#q#y#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j"
+"#q#j#q#j#q#j#q#j#q#k#q#j#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#k.s#j.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.r.p.p.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.q.q.o.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.w.v.v.v.v.v.v.x.v.x.v.x.v.x.v.x.x.y.x.x.x.y.x.A.x.A.x.A.x.A.z.A.z.A.A.A.z.A.A.B.A.B.A.B.A.B.B.B.B.7.B.B.B.C.B.C.B.C.B.C.D.C.D.C.D#L.C.F.C.F#L.F.F.F.F.F.F#N.F.K.F.I.F.I.F.I.K.I.K#M.I.L.K.L.I.L#M.L.L.L.L#J.L.O.L.N#J.N.O.N.O.N.O.Q.N.Q",
+"#B#p#F#p#F#p#F#p#t#F#t#H#t#t#t#t#K#t#K#t#x#t#x#t#x#K#x#x#I#x#x#x#I#x#O#x#j#x#j#x#j.s#j#k#j#j#j#k#j#j#j#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#w#q#q#q#w#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#y#y#z#y#y#y#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#y#y#y#z#y#y#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#w#q#q#q#w#q#q"
+"#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#j#j#k#j#j#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#b.s.s.s#b.s.s.s.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p.p.p.r.p.q.p.q.p.q.p.q.p.q.o.q.o.q.q.q.o.t.q.t.q.t.q.t.q.t.t.t.t.t.t.u.t.t.t.v.t.v.t.v.t.v.w.v.w.v.w.v.w.v.v.x.v.x.v.x.v.x.x.x.x.x.x.x.x.x.x.A.x.A.x.A.x.A.z.A.z.A.z.A.z.B.A.B.A.B.A.B.B.B.B.B.B.B.B.C.B.D.B.C.B.C.D.C.D.C.D#L.D.F.C.F.D.F#L.F.F.F.F#P.F.K.F.I.F.K#P.I.K.I.K#M.K.L.K.L.K.L#M.L.L.L.L#J.L.O.L.N.L.O.O.N.O#E.O",
+"#C#B#C#p#p#F#p#F#p#t#p#t#H#t#H#t#u#t#u#t#t#K#t#K#t#x#t#x#K#x#K#x#x#x#x#x#x#j#x#k#x#j#x#j.s#j#k#j#k#j#k#j#k#j#k#j#j#q#k#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#y#q#z#q#y#q#z#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#D#z#D#z#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#z#q#y#q#z#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q"
+"#q#j#q#j#q#j#q#k#q#j#q#k#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#k.s#j.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.r.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.r.q.o.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.u.t.t.t.u.t.u.t.v.t.v.t.v.t.v.t.v.v.v.w.v.v.v.v.v.v.x.v.x.v.x.v.x.x.x.x.y.x.y.x.A.x.A.x.A.x.A.x.A.z.A.z.A.A.A.A.B.A.B.A.B.A.B.B.B.B.B.B.7.B.C.B.C.B.C.B.C.D.C.D#L.C#L.D.F.C.F.C.F#L.F.F.F.F.F.F.I.F.I.F.I#P.I.K.I.K.I.K.L.I.L.I.L#M.L.L.L.L.L.L.N.L.O.L.N.O.N.O#E.O.Q.O.Q",
+"#F#p#F#p#F#p#t#p#t#H#t#t#t#t#t#t#K#t#x#t#x#t#x#K#x#K#I#x#x#x#I#x#O#x#j#x#j#x#j#x#j#Q#j#k#j#k#j#j#j#k#j#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#w#q#q#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#y#y#z#y#y#y#z#y#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#y#z#y#y#y#z#y#y#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#z#q#w#q#q#q#w"
+"#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#j#j#j#k#j#j#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#b.s#b.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p.r.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.q.t.q.t.q.t.q.t.t.t.t.t.t.t.t.u.t.v.t.v.t.v.t.v.t.v.w.v.w.v.v.v.w.x.v.x.v.x.v.x.v.x.x.x.x.x.x.y.x.z.x.A.x.A.x.A.z.A.z.A.z.A.A.B.z.B.A.B.A.B.B.B.B.B.B.B.B.D.B.C.B.C.B.C.D.C.D#L.D#L.D.F.D.F#L.F#L.F.F.F.F.F.F.K.F.K.F.I.F.I.K.I.K.I.K.L.K.L.I.L#R.L.L.L.L.L.L.O.L.O#J.N.O.N.O#E.O",
+"#C#p#p#B#p#F#p#F#p#F#p#t#H#t#H#t#u#t#t#K#u#K#t#x#t#x#t#x#K#x#x#x#x#x#x#I#x#Q#x#j#x#j#x#j#x#j#k#j#k#j#k#j#k#j#k#q#k#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#y#q#z#q#y#q#z#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#D#z#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#z#q#y#q#z#q#y#q#z#q#q#q#q#q#q#q#q#q#q#q#q#q"
+"#q#j#q#j#q#j#q#j#q#k#q#j#q#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#k.s#b.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.r.s.p.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.q.q.o.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.t.u.t.t.t.u.t.u.t.v.t.v.t.v.t.v.w.v.v.v.w.v.v.v.v.x.v.x.v.x.v.x.x.x.x.x.x.y.x.y.x.A.x.A.x.A.x.A.z.A.A.A.z.A.A.B.A.B.A.B.A.B.B.B.B.7.B.B.B.C.B.C.B.C.B.C.D.C.D.C.D#L.C.F.C.F#L.F#L.F.F.F.F#P.F.K.F.I.F.I.F.I.K.I.K#M.K#M.K.L.I.L.I.L.L.L.L#J.L.O.L.N#J.N.O.N.O.N.O#E.N.Q",
+"#F#p#F#p#F#p#t#H#t#F#t#H#t#t#t#t#K#t#K#t#x#t#x#K#x#x#x#x#I#x#I#x#O#x#j#x#j#x#j#x#j#k#j#k#j#j#j#k#j#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#w#q#q#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#y#y#z#y#y#D#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#D#y#y#z#y#y#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#q#q#w#q#q"
+"#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#j#k#j#j#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#b.s.s.s#b.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.p.p.p.r.p.p.p.r.p.q.p.q.p.q.p.q.p.q.o.q.o.q.q.q.o.q.q.t.q.t.q.t.q.t.q.t.t.t.t.u.t.t.t.v.t.v.t.v.t.v.t.v.w.v.w.v.w.v.v.x.w.x.v.x.v.x.v.x.x.x.x.x.x.x.x.A.x.A.x.A.x.A.z.A.z.A.z.A.z.B.A.B.A.B.A.B.B.B.B.B.B.B.B.D.B.D.B.C.B.C.D.C.D.C.D#L.D.F.C.F.D.F#L.F.F.F.F#P.F#P.F.I.F.K#P.I.K.I.K#M.K#M.K.L.K.L#M.L.L.L.L#J.L.O.L.O.L.O.O.N.O#E.O",
+"#C#B#C#H#p#F#p#F#p#t#p#t#H#t#H#t#t#t#u#K#t#K#t#x#t#x#t#x#K#x#K#x#x#x#x#x#x#j#x#j#x#j#x#j.s#j#k#j#k#j#k#j#k#j#k#q#j#q#k#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#z#q#y#q#z#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#D#z#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#z#D#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#z#q#y#q#z#q#y#q#q#q#q#q#q#q#q#q#q#q#q#q"
+"#q#j#q#j#q#j#q#j#q#j#q#k#q#j#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#k.s#j.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.r.p.p.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.o.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.t.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.w.v.w.v.v.v.v.v.v.x.v.x.v.x.v.x.x.x.x.y.x.x.x.y.x.A.x.A.x.A.x.A.z.A.z.A.A.A.A.B.A.B.A.B.A.B.B.B.B.B.B.7.B.C.B.C.B.C.B.C.D.C.D#L.C#L.D.F.C.F.C.F#L.F.F.F.F.F.F#N.F.I.F.I#P.I.K.I.K.I.K#M.I.L.I.L#M.L.L.L.L.L.L.N.L.O.L.N#J.N.O#E.O#E.O.Q",
+"#F#p#F#p#F#p#t#H#t#H#t#t#t#t#K#t#K#t#x#t#x#t#x#K#x#K#I#x#x#x#I#x#O#x#j#x#j#x#j#x#j#Q#j#k#j#k#j#j#j#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#w#q#q#q#w#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#y#y#z#y#y#D#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#y#y#y#z#y#y#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#w#q#q#q#w"
+"#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#j#j#k#j#j#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#b.s#b.s.s.s#b.s.s.s.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p.r.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.u.t.w.t.v.t.v.t.v.t.v.w.v.w.v.w.v.w.v.v.x.v.x.v.x.v.x.x.x.x.x.x.y.x.z.x.A.x.A.x.A.z.A.z.A.z.A.z.A.z.B.A.B.A.B.A.B.B.B.B.B.B.B.B.C.B.D.B.C.B.C.D#L.D#L.D.F.D.F#L.F#L.F.F.F.F.F.F#P.F.K.F.I.F.I.K.I.K.I.K#M.K.L.I.L#R.L.L.L.L.L.L.O.L.O#J.N#J.N.O#E.O",
+"#C#p#p#F#p#F#p#F#p#t#H#t#H#t#H#t#u#t#t#K#t#K#t#x#t#x#K#x#K#x#x#x#x#x#x#O#x#Q#x#j#x#j#x#j#Q#j#k#j#k#j#k#j#k#j#j#q#k#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#z#q#y#q#z#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#z#D#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#z#q#y#q#z#q#q#q#q#q#q#q#q#q#q#q#q#q"
+"#q#q#q#j#q#j#q#j#q#k#q#j#q#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#k.s#b.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.r.q.o.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.t.u.t.t.t.u.t.u.t.v.t.v.t.v.t.v.t.v.v.v.w.v.v.v.v.x.v.x.v.x.v.x.v.x.x.x.x.y.x.y.x.A.x.A.x.A.x.A.z.A.A.A.z.A.A.B.A.B.A.B.A.B.B.B.B.B.B.B.B.C.B.C.B.C.B.C.D.C.D.C.D#L.C.F.C.F#L.F#L.F.F.F.F#P.F#P.F.I.F.I.F.I.K.I.K#M.K#M.K.L.I.L.I.L.L.L.L#J.L#J.L.N#J.N#J.N.O.N.O#E.O.Q",
+"#F#p#F#p#t#p#t#H#t#F#t#H#t#t#K#t#K#t#K#t#x#t#x#K#I#x#x#x#I#x#O#x#j#x#j#x#j#x#j#Q#j#k#j#k#j#j#j#k#j#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#w#q#q#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#y#y#z#y#y#y#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#y#y#y#z#y#y#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#q#q#w#q#q"
+"#q#w#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#j#j#j#j#k#j#j#j#k#j#k#j.s#j.s#j.s#j.s#j.s#b.s.s.s#b.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.p.p.p.r.p.p.p.r.p.q.p.q.p.q.p.q.p.q.o.q.o.q.q.q.o.q.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.t.t.u.t.v.t.v.t.v.t.v.w.v.w.v.w.v.v.v.w.x.v.x.v.x.v.x.x.x.x.x.x.x.x.A.x.A.x.A.x.A.x.A.z.A.z.A.z.A.A.B.z.B.A.B.A.B.B.B.B.B.B.B.B.D.B.C.B.C.B.C.D.C.D#L.D.F.C.F.D.F#L.F.F.F.F#P.F#P.F.K.F.K#P.I.K.I.K#M.K#M.K.L.K.L#M.L.L.L.L#J.L#J.L.O.L.O#J.N.O.N.O",
+"#C#B#C#F#p#F#p#F#p#t#H#t#H#t#H#t#t#t#u#K#t#x#t#x#t#x#K#x#K#x#K#x#x#I#x#Q#x#j#x#j#x#j#x#j#k#j#k#j#k#j#k#j#k#j#k#q#j#q#k#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#y#q#z#q#y#q#z#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#z#q#y#q#z#q#y#q#z#q#q#q#q#q#q#q#q#q#q#q"
+"#q#q#q#j#q#j#q#j#q#j#q#k#q#j#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.r.p.p.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.q.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.t.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.w.v.v.v.v.v.v.x.v.x.v.x.v.x.v.x.x.y.x.x.x.y.x.A.x.A.x.A.x.A.z.A.z.A.A.A.A.B.A.B.A.B.A.B.A.B.B.B.B.7.B.B.B.C.B.C.B.C.B.C.D#L.D#L.D.F.C.F.C.F#L.F.F.F.F.F.F#N.F.K.F.I#P.I.K.I.K.I.K#M.I.L.K.L#M.L.L.L.L.L.L#J.L.O.L.N#J.N.O#E.O#E.O.Q",
+"#F#p#F#p#F#p#t#F#t#H#t#t#t#t#K#t#K#t#x#t#x#t#x#K#x#K#I#x#I#x#O#x#O#x#j#x#j#x#j#Q#j#Q#j#j#j#k#j#j#j#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#w#q#q#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#y#y#z#y#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#S#D#D#D#S#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#D#y#y#z#y#y#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#q#q#w"
+"#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#j#k#j#j#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#b.s.s.s#b.s.s.s.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p.p.p.r.p.q.p.q.p.q.p.q.p.q.o.q.o.q.q.q.o.t.q.t.q.t.q.t.q.t.t.t.t.t.t.u.t.t.t.v.t.v.t.v.t.v.w.v.w.v.w.v.w.v.v.x.v.x.v.x.v.x.x.x.x.x.x.x.x.z.x.A.x.A.x.A.x.A.z.A.z.A.z.A.z.B.A.B.A.B.A.B.B.B.B.B.B.B.B.C.B.D.B.C.B.C.D#L.D#L.D#L.D.F#L.F#L.F.F.F.F.F.F#P.F.K.F.I.F.K#P.I.K.I.K#M.K.L.K.L#R.L.L.L.L.L.L#J.L.O#J.N#J.O.O#E.O",
+"#C#p#p#F#p#F#p#F#p#t#H#t#H#t#u#t#u#K#t#K#t#K#t#x#t#x#K#x#K#x#x#x#x#x#x#O#x#O#x#j#x#j#x#j#Q#j#k#j#k#j#k#j#k#q#j#q#k#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#z#q#y#q#z#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#D#z#D#z#D#y#D#z#D#y#D#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#z#q#y#q#z#q#y#q#q#q#q#q#q#q#q#q#q#q"
+"#q#q#q#j#q#j#q#j#q#k#q#j#q#k#q#j#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#k.s#j.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.r.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.r.q.o.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.u.t.t.t.u.t.u.t.v.t.v.t.v.t.v.t.v.v.v.w.v.v.v.v.x.v.x.v.x.v.x.v.x.x.x.x.y.x.y.x.A.x.A.x.A.x.A.z.A.z.A.z.A.A.A.A.B.A.B.A.B.A.B.B.B.B.B.B.7.B.C.B.C.B.C.B.C.D.C.D#L.C#L.C.F#L.F#L.F.F.F.F#P.F#P.F.I.F.I.F.I#P.I.K#M.K#M.K.L.I.L.I.L#M.L.L#J.L#J.L.N#J.N#J.N.O.N.O#E.O.Q",
+"#F#p#F#p#t#p#t#H#t#F#t#F#t#t#K#t#K#t#K#t#x#K#x#K#I#x#x#x#I#x#O#x#j#x#j#x#j#x#j#Q#j#k#j#k#j#j#j#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#w#q#q#q#w#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#y#y#z#y#y#D#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#y#y#y#z#y#y#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#w#q#q"
+"#q#w#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#j#j#j#k#j#j#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#b.s#b.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p.r.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.q.t.q.t.q.t.q.t.t.t.t.t.t.t.t.u.t.v.t.v.t.v.t.v.w.v.w.v.w.v.v.v.w.x.v.x.v.x.v.x.x.x.x.x.x.x.x.y.x.z.x.A.x.A.x.A.z.A.z.A.z.A.A.B.z.B.A.B.A.B.B.B.B.B.B.B.B.D.B.C.B.C.B.C.D.C.D#L.D#L.D.F.D.F#L.F#L.F.F#P.F#P.F.K.F.K#P.I#P.I.K#M.K#M.K.L.K.L#M.L#M.L.L#J.L#J.L.O.L.O#J.N.O.N.O",
+"#C#B#C#F#p#F#p#F#p#t#H#t#H#t#H#t#t#K#u#K#t#x#t#x#t#x#K#x#K#x#x#x#x#I#x#Q#x#j#x#j#x#j#x#j#k#j#k#j#k#j#k#j#j#q#k#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#y#q#z#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#D#z#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#z#D#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#z#q#y#q#z#q#q#q#q#q#q#q#q#q#q#q"
+"#q#q#q#j#q#j#q#j#q#j#q#k#q#j#q#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#k.s#b.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.r.s.p.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.q.q.o.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.w.v.v.v.w.v.v.v.v.x.v.x.v.x.v.x.x.y.x.x.x.y.x.A.x.A.x.A.x.A.x.A.z.A.A.A.z.A.A.B.A.B.A.B.A.B.B.B.B.7.B.B.B.C.B.C.B.C.B.C.D#L.D#L.D#L.C.F.C.F#L.F.F.F.F.F.F#N.F.K.F.I#P.I#P.I.K.I.K#M.I.L.K.L#M.L#M.L.L.L.L#J.L.O.L.N#J.N.O#E.O#E.O.Q",
+"#F#p#F#p#F#H#t#F#t#H#t#t#t#t#K#t#K#t#x#t#x#K#x#K#x#K#I#x#I#x#O#x#O#x#j#x#j#x#j#Q#j#Q#j#j#j#k#j#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#w#q#q#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#y#y#z#y#y#y#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#y#y#y#z#y#y#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#q#q#w"
+"#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#j#k#j#j#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#b.s.s.s#b.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.r.p.p.p.r.p.q.p.q.p.q.p.q.p.q.o.q.o.q.q.q.o.q.q.t.q.t.q.t.q.t.t.t.t.t.t.u.t.t.t.v.t.v.t.v.t.v.t.v.w.v.w.v.w.v.v.x.v.x.v.x.v.x.x.x.x.x.x.x.x.x.x.A.x.A.x.A.x.A.z.A.z.A.z.A.z.B.A.B.A.B.A.B.B.B.B.B.B.B.B.C.B.D.B.C.B.C.D#L.D#L.D#L.D.F#L.F#T.F#L.F.F.F.F#P.F.K.F.I.F.K#P.I.K.I.K#M.K.L.K.L#R.L#M.L.L.L.L#J.L.O#J.N#J.O.O#E.O",
+"#C#H#p#F#p#F#p#F#p#t#H#t#H#t#t#t#u#K#t#K#t#K#t#x#t#x#K#x#K#x#x#x#x#Q#x#O#x#O#x#j#x#j#x#j#Q#j#k#j#k#j#k#j#k#q#j#q#k#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#z#q#z#q#y#q#z#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#z#q#y#q#z#q#y#q#q#q#q#q#q#q#q#q#q#q"
+"#q#q#q#j#q#j#q#j#q#j#q#j#q#k#q#j#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#k.s#j.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.r.p.p.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.o.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.u.t.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.w.v.w.v.v.v.v.v.v.x.v.x.v.x.v.x.x.x.x.y.x.y.x.A.x.A.x.A.x.A.x.A.z.A.z.A.A.A.A.B.A.B.A.B.A.B.B.B.B.B.B.7.B.C.B.C.B.C.B.C.D.C.D#L.C#L.D.F#L.F#L.F#L.F.F#P.F#P.F.I.F.I.F.I#P.I.K#M.K#M.K.L.I.L.I.L#M.L.L#J.L#J.L.N#J.O#J.N.O.N.O#E.O.Q",
+"#F#p#F#p#t#H#t#H#t#F#t#F#t#t#K#t#K#t#K#t#x#K#x#K#I#x#x#x#I#x#O#x#j#x#j#x#j#x#j#Q#j#j#j#k#j#j#j#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#w#q#q#q#w#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#y#y#z#y#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#D#y#y#z#y#y#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#w#q#q"
+"#q#w#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#j#j#j#k#j#j#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#b.s#b.s.s.s#b.s.s.s.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p.r.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.u.t.v.t.v.t.v.t.v.t.v.w.v.w.v.v.v.w.x.v.x.v.x.v.x.v.x.x.x.x.x.x.y.x.z.x.A.x.A.x.A.z.A.z.A.z.A.A.B.z.B.A.B.A.B.B.B.B.B.B.B.B.D.B.C.B.C.B.C.D.C.D#L.D#L.D.F.D.F#L.F#L.F.F#P.F#P.F.K.F.K#P.I#P.I.K#M.K#M.K.L.K.L#M.L#R.L.L#J.L#J.L.O.L.O#J.N.O.N.O",
+"#C#F#C#F#p#F#p#F#p#t#H#t#H#t#H#t#t#K#t#K#t#x#t#x#t#x#K#x#K#x#x#x#x#O#x#Q#x#j#x#j#x#j#Q#j#k#j#k#j#k#j#k#j#j#q#k#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#z#q#y#q#z#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#D#z#D#z#D#y#D#z#D#y#D#z#D#y#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#z#q#y#q#z#q#q#q#q#q#q#q#q#q#q#q"
+"#q#q#q#q#q#j#q#j#q#j#q#k#q#j#q#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#k.s#b.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.r.s.p.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.q.q.o.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.t.u.t.t.t.u.t.u.t.v.t.v.t.v.t.v.w.v.v.v.w.v.v.v.v.x.v.x.v.x.v.x.x.x.x.x.x.y.x.y.x.A.x.A.x.A.x.A.z.A.A.A.z.A.A.B.A.B.A.B.A.B.B.B.B.7.B.B.B.C.B.C.B.C.B.C.D#L.D#L.D#L.C.F.C.F#L.F#L.F.F.F.F#N.F.K.F.I#P.I#P.I.K.I.K#M.K#M.K.L#M.L#M.L.L.L.L#J.L.O.L.N#J.N.O#E.O#E.O#E",
+"#F#p#F#p#F#H#t#F#t#H#t#t#K#t#K#t#K#t#x#t#x#K#I#K#x#K#I#x#I#x#O#x#O#x#j#x#j#Q#j#Q#j#Q#j#j#j#k#j#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#w#q#z#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#y#y#z#y#y#D#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#y#y#y#z#y#y#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#q#q#w"
+"#q#q#q#w#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#j#j#j#j#k#j#j#j#k#j#k#j.s#j.s#j.s#j.s#j.s#b.s.s.s#b.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.p.p.p.r.p.p.p.r.p.q.p.q.p.q.p.q.p.q.o.q.o.q.q.q.o.q.q.t.q.t.q.t.q.t.q.t.t.t.t.u.t.t.t.v.t.v.t.v.t.v.t.v.w.v.w.v.w.v.v.x.w.x.v.x.v.x.v.x.x.x.x.x.x.x.x.A.x.A.x.A.x.A.z.A.z.A.z.A.z.B.A.B.A.B.A.B.B.B.B.B.B.B.B.C.B.D.B.C.B.C.D#L.D#L.D#L.D.F#L.F#T.F#L.F.F.F.F#P.F#P.F.I#P.K#P.I.K.I.K#M.K#M.K.L#R.L#M.L.L.L.L#J.L.O#J.O#J.O.O#E.O",
+"#C#H#p#F#p#F#p#F#H#t#H#t#H#t#t#t#u#K#t#K#t#K#t#x#K#x#K#x#K#x#x#I#x#Q#x#O#x#O#x#j#x#j#Q#j#Q#j#k#j#k#j#k#j#k#q#j#q#k#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#y#q#z#q#y#q#z#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#D#z#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#z#D#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#z#q#y#q#z#q#q#q#q#q#q#q#q#q"
+"#q#q#q#q#q#j#q#j#q#j#q#j#q#k#q#j#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#k.s#j.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.r.p.p.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.o.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.u.t.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.w.v.w.v.v.v.v.v.v.x.v.x.v.x.v.x.x.x.x.y.x.x.x.y.x.A.x.A.x.A.x.A.z.A.z.A.A.A.A.B.A.B.A.B.A.B.B.B.B.B.B.7.B.C.B.C.B.C.B#L.D#L.D#L.C#L.D.F#L.F#L.F#L.F.F#P.F#P.F.I.F.I#P.I#P.I.K#M.K#M.K#M.I.L#M.L#M.L.L#J.L#J.L.N#J.O#J.N#J.N.O#E.O#E",
+"#F#p#F#p#t#H#t#H#t#F#t#F#K#t#K#t#K#t#K#t#x#K#x#K#I#x#x#x#O#x#O#x#j#x#j#x#j#Q#j#Q#j#j#j#k#j#j#j#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#w#q#q#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#y#y#z#y#y#y#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#y#z#y#y#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#q"
+"#q#w#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#j#j#k#j#j#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#b.s#b.s.s.s#b.s.s.s.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p.r.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.u.t.w.t.v.t.v.t.v.t.v.w.v.w.v.w.v.w.x.v.x.v.x.v.x.v.x.x.x.x.x.x.y.x.z.x.A.x.A.x.A.z.A.z.A.z.A.z.B.z.B.A.B.A.B.A.B.B.B.B.B.B.D.B.C.B.C.B.C.D.C.D#L.D#L.D.F.D.F#L.F#L.F.F#P.F#P.F#P.F.K#P.I#P.I.K#M.K#M.K#M.K.L#M.L#R.L.L#J.L#J.L.O.L.O#J.N.O.N.O",
+"#C#F#C#F#p#F#p#F#H#t#H#t#H#t#H#t#t#K#t#K#t#x#t#x#K#x#K#x#K#x#K#x#x#O#x#Q#x#j#x#j#x#j#Q#j#k#j#k#j#k#j#k#q#j#q#k#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#z#q#y#q#z#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#z#q#y#q#z#q#y#q#q#q#q#q#q#q#q#q"
+"#q#q#q#q#q#j#q#j#q#j#q#k#q#j#q#k#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#k.s#b.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.q.q.o.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.t.u.t.t.t.u.t.u.t.v.t.v.t.v.t.v.w.v.v.v.w.v.v.v.v.x.v.x.v.x.v.x.x.x.x.x.x.y.x.y.x.A.x.A.x.A.x.A.z.A.A.A.z.A.A.B.A.B.A.B.A.B.B.B.B.7.B.B.B.C.B.C.B.C.B.C.D#L.D#L.D#L.C.F#L.F#L.F#L.F.F#P.F#P.F#P.F.I#P.I#P.I.K.I.K#M.K#M.K.L#M.L#M.L.L.L.L#J.L.O.L.N#J.N#J#E.O#E.O#E",
+"#F#p#F#p#F#H#t#F#t#F#t#t#K#t#K#t#K#t#x#t#x#K#I#K#x#K#I#x#O#x#O#x#O#x#j#x#j#Q#j#Q#j#Q#j#j#j#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#w#q#q#q#w#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#y#y#z#y#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#D#y#y#z#y#y#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#w"
+"#q#q#q#w#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#j#j#j#k#j#j#j#k#j#k#j.s#j.s#j.s#j.s#j.s#b.s.s.s#b.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.p.p.p.r.p.p.p.r.p.q.p.q.p.q.p.q.p.q.o.q.o.q.q.q.o.q.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.t.t.v.t.v.t.v.t.v.t.v.w.v.w.v.w.v.v.x.w.x.v.x.v.x.v.x.x.x.x.x.x.x.x.A.x.A.x.A.x.A.z.A.z.A.z.A.z.A.A.B.z.B.A.B.A.B.B.B.B.B.B.B.B.D.B.C.B.C.D#L.D#L.D#L.D.F#L.F#T.F#L.F.F.F.F#P.F#P.F.K#P.K#P.I.K.I.K#M.K#M.K.L#R.L#M.L.L.L.L#J.L.O#J.O#J.O#J#E.O",
+"#C#F#p#F#p#F#p#F#H#t#H#t#H#t#t#t#u#K#t#K#t#K#t#x#K#x#K#x#K#x#x#I#x#Q#x#O#x#O#x#j#x#j#Q#j#Q#j#k#j#k#j#k#q#k#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#y#q#z#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#D#z#D#z#D#y#D#z#D#y#D#z#D#y#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#y#D#z#D#y#D#z#D#y#D#z#D#z#D#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#z#q#y#q#z#q#q#q#q#q#q#q#q#q"
+"#q#q#q#q#q#j#q#j#q#j#q#j#q#k#q#j#q#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.r.p.p.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.t.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.w.v.v.v.v.v.v.x.v.x.v.x.v.x.x.x.x.y.x.x.x.y.x.A.x.A.x.A.x.A.z.A.z.A.A.A.A.B.A.B.A.B.A.B.B.B.B.B.B.7.B.C.B.C.B.C.B#L.D#L.D#L.C#L.D.F#L.F#L.F#L.F.F#P.F#P.F#N#P.I#P.I#P.I.K#M.K#M.K#M.I.L#M.L#M.L.L#J.L#J.L#J#J.O#J.N#J.N.O#E.O#E",
+"#F#p#F#p#t#F#t#H#t#F#t#F#K#t#K#t#K#t#K#K#x#K#x#K#I#x#I#x#O#x#O#x#O#x#O#x#j#Q#j#Q#j#j#j#k#j#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#w#q#q#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#y#y#z#y#y#y#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#y#y#y#z#y#y#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#q"
+"#q#w#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#j#k#j#j#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#b.s.s.s#b.s.s.s.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p.p.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.u.t.t.t.v.t.v.t.v.t.v.w.v.w.v.w.v.w.v.v.x.v.x.v.x.v.x.x.x.x.x.x.y.x.z.x.A.x.A.x.A.z.A.z.A.z.A.z.A.z.B.A.B.A.B.A.B.B.B.B.B.B.B.B.C.B.D.B#L.B#L.D#L.D#L.D.F.D.F#L.F#L.F.F#P.F#P.F#P.F.K#P.I#P.I.K#M.K#M.K#M.K.L#R.L#R.L.L#J.L#J.L.O.L.O#J.N#J.N.O",
+"#C#F#C#F#p#F#p#F#H#t#H#t#H#t#H#K#t#K#t#K#t#K#t#x#K#x#K#x#K#x#K#x#x#O#x#O#x#j#x#j#x#j#Q#j#k#j#k#j#k#j#k#q#j#q#k#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#z#q#y#q#z#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#z#D#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#z#q#y#q#z#q#y#q#q#q#q#q#q#q#q#q"
+"#q#q#q#q#q#j#q#j#q#j#q#k#q#j#q#k#q#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#k.s#b.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.p.r.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.r.q.o.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.t.u.t.t.t.u.t.u.t.v.t.v.t.v.t.v.t.v.v.v.w.v.v.v.v.x.v.x.v.x.v.x.v.x.x.x.x.y.x.y.x.A.x.A.x.A.x.A.z.A.A.A.z.A.A.B.A.B.A.B.A.B.B.B.B.B.B.B.B.C.B.C.B.C.B.C.D#L.D#L.D#L#L.F#L.F#L.F#L#P.F#P.F#P.F#P.F.I#P.I#P.I.K.I.K#M.K#M.K.L#M.L#M.L.L.L.L#J.L#J.L.N#J.N#J#E.O#E.O#E",
+"#F#p#F#p#F#H#t#F#t#F#t#t#K#t#K#t#K#t#x#K#x#K#I#K#x#K#I#x#O#x#O#x#O#x#j#x#j#Q#j#Q#j#Q#j#j#j#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#w#q#q#q#w#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#y#y#z#y#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#D#y#y#z#y#y#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#w"
+"#q#q#q#w#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#j#j#j#k#j#j#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#b.s#b.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.p.p.p.r.p.p.p.r.p.q.p.q.p.q.p.q.p.q.o.q.o.q.q.q.o.q.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.t.t.u.t.v.t.v.t.v.t.v.w.v.w.v.w.v.v.v.w.x.v.x.v.x.v.x.x.x.x.x.x.x.x.A.x.A.x.A.x.A.x.A.z.A.z.A.z.A.A.B.z.B.A.B.A.B.B.B.B.B.B.B.B.D.B.C.B.C.B#L.D#L.D#L.D.F#L.F#T.F#L.F.F#P.F#P.F#P#P.K#P.K#P.I.K.I.K#M.K#M#R.L#R.L#M.L.L#J.L#J.L#J#J.O#J.O#J#E.O",
+"#C#F#p#F#p#F#p#F#H#t#H#t#H#t#F#K#u#K#t#K#t#K#t#x#K#x#K#x#K#x#x#I#x#Q#x#O#x#O#x#j#x#j#Q#j#Q#j#k#j#k#j#j#q#k#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#z#q#y#q#z#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#z#q#y#q#z#q#q#q#q#q#q#q#q#q"
+"#q#q#q#q#q#j#q#j#q#j#q#j#q#k#q#j#q#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#k.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.r.p.p.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.q.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.t.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.w.v.v.v.v.v.v.x.v.x.v.x.v.x.v.x.x.y.x.x.x.y.x.A.x.A.x.A.x.A.z.A.z.A.A.A.A.B.A.B.A.B.A.B.A.B.B.B.B.7.B.B.B.C.B.C.B#L.B#L.D#L.C#L.D.F#L.F#L.F#L.F.F#P.F#P.F#N#P.K#P.I#P.I.K#M.K#M.K#M#M.L#R.L#M.L.L#J.L#J.L#J#J.O#J.N#J.N.O#E.O#E",
+"#F#p#F#p#t#F#t#H#t#F#t#F#K#t#K#t#K#t#K#K#x#K#x#K#I#x#I#x#O#x#O#x#O#x#O#x#j#Q#j#Q#j#j#j#k#j#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#w#q#q#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#y#y#z#y#y#y#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#y#y#y#z#y#y#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#q"
+"#q#w#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#j#k#j#j#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#b.s.s.s#b.s.s.s.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p.p.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.o.t.q.t.q.t.q.t.q.t.t.t.t.t.t.u.t.t.t.v.t.v.t.v.t.v.w.v.w.v.w.v.w.v.v.x.v.x.v.x.v.x.x.x.x.x.x.x.x.z.x.A.x.A.x.A.x.A.z.A.z.A.z.A.z.B.A.B.A.B.A.B.B.B.B.B.B.B.B.C.B.D.B#L.B#L.D#L.D#L#T#L#T.F#L.F#L.F.F#P.F#P.F#P.F.K#P.I#P.I#P#M.K#M.K#M.K.L#R.L#R.L.L#J.L#J.L#J#J.O#J.N#J#U.O",
+"#C#F#C#F#p#F#p#F#H#t#H#t#H#t#H#K#t#K#t#K#t#K#t#K#K#x#K#x#K#x#K#x#x#O#x#O#x#j#x#j#x#j#Q#j#Q#j#Q#j#k#j#k#q#j#q#k#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#z#q#z#q#y#q#z#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#D#z#D#z#D#y#D#z#D#y#D#z#D#y#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#z#D#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#z#q#y#q#z#q#y#q#q#q#q#q#q#q#q#q"
+"#q#q#q#q#q#j#q#j#q#j#q#k#q#j#q#k#q#j#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#k.s#j.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.p.r.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.r.q.o.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.t.u.t.t.t.u.t.u.t.v.t.v.t.v.t.v.t.v.v.v.w.v.v.v.v.x.v.x.v.x.v.x.v.x.x.x.x.y.x.y.x.A.x.A.x.A.x.A.z.A.z.A.z.A.A.B.A.B.A.B.A.B.A.B.B.B.B.B.B.7.B.C.B.C.B.C.B#L.D#L.D#L#L.F#L.F#L.F#L#P.F#P.F#P.F#P.F.I#P.I#P.I#P.I.K#M.K#M.K.L#M.L#M.L.L#J.L#J.L#J.L.N#J.N#J#E.O#E.O#E",
+"#F#p#F#H#F#H#t#F#t#F#t#t#K#t#K#t#K#t#x#K#x#K#I#K#x#K#I#x#O#x#O#x#O#x#j#x#j#Q#j#Q#j#Q#j#j#j#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#w#q#q#q#w#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#y#y#z#y#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#D#y#y#z#y#y#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#w"
+"#q#q#q#w#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#j#j#j#k#j#j#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#b.s#b.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.p.p.p.r.p.p.p.r.p.q.p.q.p.q.p.q.p.q.o.q.o.q.q.q.o.q.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.t.t.u.t.v.t.v.t.v.t.v.w.v.w.v.w.v.v.v.w.x.v.x.v.x.v.x.x.x.x.x.x.x.x.A.x.z.x.A.x.A.x.A.z.A.z.A.z.A.A.B.z.B.A.B.A.B.B.B.B.B.B.B.B.D.B.C.B.C.B#L.D#L.D#L.D#L#T.F#T.F#L#P.F#P.F#P.F#P#P.K#P.K#P.I#P.I.K#M.K#M#R.L#R.L#M.L.L#J.L#J.L#J#J.O#J.O#J#E.O",
+"#C#F#p#F#p#F#p#F#H#F#H#t#H#t#F#K#H#K#t#K#t#K#t#x#K#x#K#x#K#x#x#I#x#Q#x#O#x#O#x#j#x#j#Q#j#Q#j#k#j#k#j#j#q#k#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#z#q#y#q#z#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#z#q#y#q#z#q#q#q#q#q#q#q#q#q"
+"#q#q#q#q#q#j#q#j#q#j#q#j#q#k#q#j#q#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#k.s#b.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.r.s.p.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.q.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.t.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.w.v.v.v.v.v.v.x.v.x.v.x.v.x.v.x.x.y.x.x.x.y.x.A.x.A.x.A.x.A.z.A.z.A.A.A.z.A.A.B.A.B.A.B.A.B.B.B.B.7.B.B.B.C.B.C.B#L.B#L.D#L.D#L.D.F#L.F#L.F#L.F.F#P.F#P.F#N#P.K#P.I#P.I#P#M.K#M.K#M#M.L#R.L#M.L#M#J.L#J.L#J#J.O#J.N#J.N.O#E.O#E",
+"#F#p#F#H#F#F#t#H#t#F#t#F#K#t#K#t#K#t#K#K#x#K#x#K#I#K#I#K#O#x#O#x#O#x#O#x#j#Q#j#Q#j#j#j#k#j#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#w#q#q#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#y#y#z#y#y#D#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#y#y#y#z#y#y#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#q"
+"#q#w#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#j#k#j#j#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#b.s.s.s#b.s.s.s.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p.p.p.r.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.o.t.q.t.q.t.q.t.q.t.t.t.t.t.t.u.t.t.t.v.t.v.t.v.t.v.w.v.w.v.w.v.w.v.v.x.v.x.v.x.v.x.x.x.x.x.x.x.x.z.x.A.x.A.x.A.x.A.z.A.z.A.z.A.z.B.A.B.A.B.A.B.B.B.B.B.B.B.B.C.B.D.B#L.B#L.D#L.D#L#T#L#T.F#L.F#L.F.F#P.F#P.F#P.F.K#P.I#P.K#P#M.K#M.K#M.K.L#R.L#R.L#M#J.L#J.L#J#J.O#J.N#J#U.O",
+"#C#F#C#F#p#F#p#F#H#t#H#t#H#t#H#K#t#K#t#K#t#K#t#K#K#x#K#x#K#x#K#x#x#O#x#O#x#j#x#j#x#j#Q#j#Q#j#Q#j#k#j#k#q#j#q#k#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#y#q#z#q#y#q#z#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#D#z#D#z#D#y#D#z#D#y#D#z#D#y#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#z#D#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#z#q#y#q#z#q#y#q#q#q#q#q#q#q#q#q"
+"#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#k#q#j#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#k.s#j.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.r.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.r.q.o.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.t.u.t.t.t.u.t.u.t.v.t.v.t.v.t.v.t.v.v.v.w.v.v.v.v.x.v.x.v.x.v.x.v.x.x.x.x.y.x.y.x.A.x.A.x.A.x.A.z.A.z.A.z.A.A.A.A.B.A.B.A.B.A.B.B.B.B.B.B.7.B.C.B#L.B#L.B#L.D#L.D#L#L#L#L.F#L.F#L#P.F#P.F#P.F#P.F.I#P.I#P.I#P#M.K#M.K#M.K.L#M.L#M.L#M#J.L#J.L#J#J.N#J.N#J#E.O#E.O#E",
+"#F#p#F#H#F#H#t#F#t#F#t#F#K#t#K#t#K#t#K#K#x#K#I#K#x#K#I#x#O#x#O#x#O#x#j#x#j#Q#j#Q#j#Q#j#j#j#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#w#q#q#q#w#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#y#y#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#D#y#y#z#y#y#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#w"
+"#q#q#q#w#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#j#j#j#k#j#j#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#b.s#b.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.p.p.p.r.p.p.p.r.p.r.p.q.p.q.p.q.p.q.o.q.o.q.q.q.o.q.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.t.t.u.t.v.t.v.t.v.t.v.w.v.w.v.w.v.v.v.w.x.v.x.v.x.v.x.x.x.x.x.x.x.x.y.x.z.x.A.x.A.x.A.z.A.z.A.z.A.A.B.z.B.A.B.A.B.B.B.B.B.B.B.B.D.B.C.B.C.B#L.D#L.D#L.D#L#T.F#T.F#L#P.F#P.F#P.F#P#P.K#P.K#P.I#P#M.K#M.K#M#R.L#R.L#M#J#M#J.L#J.L#J#J.O#J.O#J#E.O",
+"#C#F#p#F#p#F#p#F#H#F#H#t#H#t#F#K#H#K#t#K#t#K#t#x#K#x#K#x#K#x#x#I#x#Q#x#O#x#O#x#j#x#j#Q#j#Q#j#k#j#k#j#j#q#k#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#z#q#y#q#z#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#z#q#y#q#z#q#q#q#q#q#q#q#q#q"
+"#q#q#q#q#q#j#q#j#q#j#q#j#q#k#q#j#q#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#k.s#b.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.r.s.p.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.q.q.o.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.w.v.v.v.v.v.v.x.v.x.v.x.v.x.v.x.x.y.x.x.x.y.x.A.x.A.x.A.x.A.z.A.z.A.A.A.z.A.A.B.A.B.A.B.A.B.B.B.B.7.B.B.B.C.B.C.B#L.B#L.D#L#T#L#T#L#L.F#L.F#L#P.F#P.F#P.F#N#P.K#P.I#P.I#P#M.K#M.K#M#M.L#R.L#M.L#M#J.L#J.L#J#J.O#J.N#J#E.O#E.O#E",
+"#F#p#F#H#F#F#F#H#t#F#t#F#K#t#K#t#K#t#K#K#x#K#x#K#I#K#I#K#O#x#O#x#O#x#O#x#j#Q#j#Q#j#O#j#Q#j#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#w#q#q#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#y#y#z#y#y#D#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#y#y#y#z#y#y#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#q"
+"#q#w#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#j#k#j#j#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#b.s.s.s#b.s.s.s.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p.p.p.r.p.q.p.q.p.q.p.q.p.q.o.q.o.q.q.q.o.t.q.t.q.t.q.t.q.t.t.t.t.t.t.u.t.t.t.v.t.v.t.v.t.v.w.v.w.v.w.v.w.v.v.x.v.x.v.x.v.x.x.x.x.x.x.x.x.x.x.A.x.A.x.A.x.A.z.A.z.A.z.A.z.B.A.B.A.B.A.B.B.B.B.B.B.B.B.C.B.D.B#L.B#L.D#L.D#L#T#L#T.F#L.F#L.F#L#P.F#P.F#P#P.K#P.I#P.K#P#M.K#M.K#M.K.L#R.L#R.L#M#J.L#J#J#J#J.O#J.N#J#U.O",
+"#C#F#C#F#p#F#p#F#H#t#H#t#F#t#H#K#t#K#t#K#t#K#t#K#K#x#K#x#K#x#K#Q#x#O#x#O#x#O#x#O#x#j#Q#j#Q#j#Q#j#k#j#k#q#j#q#k#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#z#q#z#q#y#q#z#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#D#z#D#z#D#y#D#z#D#y#D#z#D#y#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#z#D#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#z#q#y#q#z#q#y#q#q#q#q#q#q#q#q#q"
+"#q#q#q#q#q#j#q#j#q#j#q#k#q#j#q#k#q#j#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#k.s#j.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.r.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.r.q.o.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.u.t.t.t.u.t.u.t.v.t.v.t.v.t.v.t.v.v.v.w.v.v.v.v.x.v.x.v.x.v.x.v.x.x.x.x.y.x.y.x.A.x.A.x.A.x.A.z.A.z.A.z.A.A.A.A.B.A.B.A.B.A.B.B.B.B.B.B.7.B.C.B#L.B#L.B#L.D#L.D#L#L#L#T.F#L.F#L#P.F#P.F#P#P#P#P.I#P.I#P#M#P#M.K#M.K#M.K.L#M.L#M#J#M#J.L#J.L#J#J.N#J.O#J#E.O#E.O#E",
+"#F#p#F#H#F#H#t#F#t#F#t#F#K#F#K#t#K#t#K#K#K#K#I#K#x#K#I#x#O#x#O#x#O#x#j#x#j#Q#j#Q#j#Q#j#j#j#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#w#q#q#q#w#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#y#y#z#y#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#D#y#y#z#y#y#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#w"
+"#q#q#q#w#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#j#j#j#k#j#j#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#b.s#b.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.p.p.p.r.p.p.p.r.p.r.p.q.p.q.p.q.p.q.o.q.o.q.q.q.o.q.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.t.t.u.t.v.t.v.t.v.t.v.w.v.w.v.w.v.v.v.w.x.v.x.v.x.v.x.x.x.x.x.x.x.x.y.x.z.x.A.x.A.x.A.z.A.z.A.z.A.A.B.z.B.A.B.A.B.B.B.B.B.B.B.B.D.B#L.B#L.B#L.D#L#T#L#T#L#T.F#T.F#L#P#L#P.F#P.F#P#P.K#P.K#P#M#P#M.K#M.K#M#R.L#R.L#M#J#R#J.L#J.L#J#J.O#J.O#J#E.O",
+"#C#F#p#F#p#F#p#F#H#F#H#t#H#t#F#K#H#K#t#K#t#K#t#x#K#x#K#x#K#x#x#O#x#Q#x#O#x#O#x#j#x#j#Q#j#Q#j#k#j#k#j#j#q#k#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#z#q#y#q#z#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#y#D#z#D#y#D#z#D#y#D#z#D#z#D#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#z#q#y#q#z#q#q#q#q#q#q#q#q#q"
+"#q#q#q#q#q#j#q#j#q#j#q#j#q#k#q#j#q#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#k.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.r.s.p.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.q.q.o.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.w.v.v.v.v.v.v.x.v.x.v.x.v.x.v.x.x.y.x.x.x.y.x.A.x.A.x.A.x.A.z.A.z.A.A.A.z.A.A.B.A.B.A.B.A.B.B.B.B.7.B.B.B#L.B#L.B#L.B#L.D#L#T#L#T#L#L.F#L#P#L#P.F#P.F#P.F#N#P.K#P.I#P.I#P#M.K#M.K#M#M.L#R.L#M.L#M#J.L#J.L#J#J.O#J.N#J#E.O#E.O#E",
+"#F#p#F#H#F#F#F#H#t#F#t#F#K#t#K#t#K#t#K#K#x#K#x#K#I#K#I#K#O#x#O#x#O#x#O#x#j#Q#j#Q#j#O#j#Q#j#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#w#q#q#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#y#y#z#y#y#y#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#y#y#y#z#y#y#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#q"
+"#q#w#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#j#k#j#j#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#b.s.s.s#b.s.s.s.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p.p.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.o.t.q.t.q.t.q.t.q.t.t.t.t.t.t.u.t.t.t.v.t.v.t.v.t.v.w.v.w.v.w.v.w.v.v.x.v.x.v.x.v.x.x.x.x.x.x.x.x.x.x.A.x.A.x.A.x.A.z.A.z.A.z.A.z.B.A.B.A.B.A.B.B.B.B.B.B.B.B.C.B.D.B#L.B#L.D#L.D#L#T#L#T.F#L#P#T#P#L#P.F#P#P#P#P.K#P.I#P.K#P#M.K#M.K#M#R.L#R.L#R.L#M#J.L#J#J#J#J.O#J#U#J#U.O",
+"#C#F#C#F#p#F#p#F#H#t#H#t#F#t#H#K#t#K#t#K#t#K#t#K#K#x#K#x#K#x#K#x#x#O#x#O#x#O#x#O#x#j#Q#j#Q#j#Q#j#k#j#k#q#j#q#k#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#z#q#z#q#y#q#z#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#z#q#y#q#z#q#y#q#q#q#q#q#q#q#q#q"
+"#q#q#q#q#q#j#q#j#q#j#q#k#q#j#q#k#q#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#k.s#j.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.p.r.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.r.q.o.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.t.u.t.t.t.u.t.u.t.v.t.v.t.v.t.v.t.v.v.v.w.v.v.v.v.x.v.x.v.x.v.x.v.x.x.x.x.y.x.y.x.A.x.A.x.A.x.A.z.A.z.A.z.A.A.A.A.B.A.B.A.B.A.B.B.B.B.B.B.7.B.C.B#L.B#L.B#L.D#L.D#L#L#L#T.F#L.F#L#P.F#P.F#P#P#P#P.I#P.I#P#M#P#M.K#M.K#M#R.L#M.L#M#J#M#J.L#J#J#J#J.N#J.O#J#E.O#E.O#E",
+"#F#p#F#H#F#H#t#F#t#F#t#F#K#F#K#t#K#t#K#K#K#K#I#K#x#K#I#x#O#x#O#x#O#x#O#x#O#Q#j#Q#j#Q#j#j#j#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#w#q#q#q#w#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#y#y#z#y#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#D#y#y#z#y#y#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#w"
+"#q#q#q#w#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#j#j#j#k#j#j#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#b.s#b.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.p.p.p.r.p.p.p.r.p.q.p.q.p.q.p.q.p.q.o.q.o.q.q.q.o.q.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.t.t.u.t.v.t.v.t.v.t.v.w.v.w.v.w.v.v.v.w.x.v.x.v.x.v.x.x.x.x.x.x.x.x.y.x.z.x.A.x.A.x.A.z.A.z.A.z.A.A.B.z.B.A.B.A.B.B.B.B.B.B.B.B.D.B#L.B#L.B#L.D#L#T#L#T#L#T.F#T.F#L#P#L#P.F#P.F#P#P.K#P.K#P#M#P#M.K#M.K#M#R.L#R.L#M#J#R#J.L#J.L#J#J.O#J.O#J#E.O",
+"#C#F#p#F#p#F#p#F#H#F#H#t#H#t#F#K#H#K#t#K#t#K#t#x#K#x#K#x#K#x#K#I#K#Q#x#O#x#O#x#j#x#j#Q#j#Q#j#Q#j#Q#j#j#q#k#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#z#q#y#q#z#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#D#z#D#z#D#y#D#z#D#y#D#z#D#y#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#z#D#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#z#q#y#q#z#q#q#q#q#q#q#q#q#q"
+"#q#q#q#q#q#j#q#j#q#j#q#j#q#k#q#j#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.r.p.p.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.q.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.t.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.w.v.v.v.v.v.v.x.v.x.v.x.v.x.v.x.x.y.x.x.x.y.x.A.x.A.x.A.x.A.z.A.z.A.A.A.z.A.A.B.A.B.A.B.A.B.B.B.B.7.B.B.B#L.B#L.B#L.B#L.D#L#T#L#T#L#L.F#L#P#L#P.F#P.F#P.F#N#P.K#P.I#P#M#P#M.K#M.K#M#M.L#R.L#M.L#M#J.L#J.L#J#J.O#J#E#J#E.O#E#U#E",
+"#F#p#F#H#F#F#F#H#t#F#t#F#K#t#K#t#K#t#K#K#x#K#x#K#I#K#I#K#O#x#O#x#O#x#O#x#j#Q#j#Q#j#O#j#Q#j#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#w#q#q#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#y#y#z#y#y#y#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#y#z#y#y#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#q"
+"#q#w#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#j#j#k#j#j#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#b.s#b.s.s.s#b.s.s.s.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p.p.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.o.t.q.t.q.t.q.t.q.t.t.t.t.t.t.u.t.t.t.v.t.v.t.v.t.v.w.v.w.v.w.v.w.v.v.x.v.x.v.x.v.x.x.x.x.x.x.x.x.x.x.A.x.A.x.A.x.A.z.A.z.A.z.A.z.B.A.B.A.B.A.B.B.B.B.B.B.B.B#L.B#T.B#L.B#L.D#L.D#L#T#L#T.F#L#P#T#P#L#P.F#P#P#P#P.K#P.I#P#R#P#M.K#M#R#M#R.L#R.L#R#J#M#J.L#J#J#J#J.O#J#U#J#U.O",
+"#C#F#C#F#p#F#p#F#H#t#H#t#H#t#H#K#t#K#t#K#t#K#t#K#K#x#K#x#K#x#K#x#x#O#x#O#x#O#x#O#x#j#Q#j#Q#j#Q#j#k#j#k#q#j#q#k#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#z#q#y#q#z#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#z#q#y#q#z#q#z#q#q#q#q#q#q#q#q#q"
+"#q#q#q#q#q#j#q#j#q#j#q#k#q#j#q#k#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#k.s#b.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.p.r.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.r.q.o.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.t.u.t.t.t.u.t.u.t.v.t.v.t.v.t.v.t.v.v.v.w.v.v.v.v.x.v.x.v.x.v.x.v.x.x.x.x.y.x.y.x.A.x.A.x.A.x.A.z.A.z.A.z.A.A.A.A.B.A.B.A.B.A.B.B.B.B.B.B.7.B.C.B#L.B#L.B#L#T#L#T#L#L#L#T.F#L#P#L#P.F#P.F#P#P#P#P.I#P.I#P#M#P#M.K#M#R#M#R.L#M.L#M#J#M#J.L#J#J#J#J.N#J.O#J#E.O#E.O#E",
+"#F#p#F#H#F#H#t#F#t#F#t#F#K#F#K#t#K#t#K#K#K#K#I#K#x#K#I#K#O#x#O#x#O#x#O#x#O#Q#j#Q#j#Q#j#j#j#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#w#q#q#q#w#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#y#y#z#y#y#D#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#y#y#y#z#y#y#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#q#q#w"
+"#q#q#q#w#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#j#j#j#j#k#j#j#j#k#j#k#j.s#j.s#j.s#j.s#j.s#b.s.s.s#b.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.p.p.p.r.p.p.p.r.p.q.p.q.p.q.p.q.p.q.o.q.o.q.q.q.o.q.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.t.t.u.t.v.t.v.t.v.t.v.w.v.w.v.w.v.v.v.w.x.v.x.v.x.v.x.x.x.x.x.x.x.x.y.x.z.x.A.x.A.x.A.z.A.z.A.z.A.A.B.z.B.A.B.A.B.B.B.B.B.B.B.B.D.B#L.B#L.B#L.D#L#T#L#T#L#T.F#T.F#L#P#L#P.F#P.F#P#P.K#P.K#P#M#P#M.K#M.K#M#R.L#R.L#M#J#R#J.L#J#J#J#J.O#J.O#J#E.O",
+"#C#F#C#F#C#F#p#F#H#F#H#t#H#t#F#K#H#K#t#K#t#K#t#K#K#K#K#x#K#x#K#I#K#Q#x#O#x#O#x#j#x#j#Q#j#Q#j#Q#j#Q#j#j#q#k#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#y#q#z#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#D#z#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#z#D#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#z#q#y#q#z#q#y#q#q#q#q#q#q#q#q#q#q#q"
+"#q#q#q#q#q#j#q#j#q#j#q#j#q#k#q#j#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#k.s#j.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.r.p.p.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.q.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.t.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.w.v.v.v.v.v.v.x.v.x.v.x.v.x.v.x.x.y.x.x.x.y.x.A.x.A.x.A.x.A.z.A.z.A.A.A.z.A.A.B.A.B.A.B.A.B.B.B.B.7.B.B.B#L.B#L.B#L.B#L.D#L#T#L#T#L#L.F#L#P#L#P.F#P#P#P#P#N#P.K#P#M#P#M#P#M.K#M.K#M#M.L#R#J#M#J#M#J.L#J.L#J#J.O#J#E#J#E.O#E#U#E",
+"#F#p#F#H#F#F#F#H#t#F#t#F#K#t#K#t#K#t#K#K#x#K#x#K#I#K#I#K#O#x#O#x#O#x#O#x#j#Q#j#Q#j#O#j#Q#j#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#w#q#q#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#y#y#z#y#y#y#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#D#y#y#z#y#y#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#w#q#q"
+"#q#w#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#j#j#k#j#j#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#b.s#b.s.s.s#b.s.s.s.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p.p.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.u.t.t.t.v.t.v.t.v.t.v.w.v.w.v.w.v.w.v.v.x.v.x.v.x.v.x.x.x.x.x.x.x.x.x.x.A.x.A.x.A.x.A.z.A.z.A.z.A.z.B.A.B.A.B.A.B.B.B.B.B.B.B.B#L.B#T.B#L.B#L#T#L#T#L#T#L#T.F#L#P#T#P#L#P.F#P#P#P#P.K#P#M#P#R#P#M.K#M#R#M#R.L#R#J#R#J#M#J.L#J#J#J#J.O#J#U#J#U.O",
+"#C#F#C#F#p#F#p#F#H#F#H#F#H#t#H#K#F#K#F#K#t#K#t#K#K#x#K#x#K#x#K#x#x#O#x#O#x#O#x#O#x#j#Q#j#Q#j#Q#j#k#j#k#q#j#q#k#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#z#q#y#q#z#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#D#z#D#z#D#y#D#z#D#y#D#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#z#D#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#z#q#y#q#z#q#q#q#q#q#q#q#q#q#q#q"
+"#q#q#q#q#q#j#q#j#q#j#q#k#q#j#q#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#k.s#b.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.r.q.o.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.t.u.t.t.t.u.t.u.t.v.t.v.t.v.t.v.t.v.v.v.w.v.v.v.v.x.v.x.v.x.v.x.v.x.x.x.x.y.x.y.x.A.x.A.x.A.x.A.z.A.z.A.z.A.A.A.A.B.A.B.A.B.A.B.B.B.B.B.B#V.B#L.B#L.B#L.B#L#T#L#T#L#L#L#T#P#L#P#L#P.F#P.F#P#P#P#P.I#P.I#P#M#P#M.K#M#R#M#R.L#M.L#M#J#M#J.L#J#J#J#J.N#J.O#J#E.O#E.O#E",
+"#F#C#F#H#F#H#F#F#t#F#t#F#K#F#K#t#K#t#K#K#K#K#I#K#x#K#I#K#O#K#O#x#O#x#O#x#O#Q#j#Q#j#Q#j#O#j#O#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#w#q#q#q#w#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#y#y#z#y#y#y#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#y#y#y#z#y#y#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#q#q#w"
+"#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#j#k#j#j#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#b.s.s.s#b.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.p.p.p.r.p.p.p.r.p.q.p.q.p.q.p.q.p.q.o.q.o.q.q.q.o.q.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.t.t.u.t.v.t.v.t.v.t.v.w.v.w.v.w.v.v.v.w.x.v.x.v.x.v.x.x.x.x.x.x.x.x.A.x.z.x.A.x.A.x.A.z.A.z.A.z.A.A.B.z.B.A.B.A.B.B.B.B.B.B#W.B#T.B#L.B#L.B#L.D#L#T#L#T#L#T#P#T#P#L#P#L#P#P#P#P#P#P.K#P.K#P#M#P#M.K#M#R#M#R.L#R.L#M#J#R#J#J#J#J#J#J.O#J#U#J#E.O",
+"#C#F#C#F#C#F#p#F#H#F#H#t#H#t#F#K#H#K#t#K#t#K#t#K#K#K#K#x#K#x#K#I#K#Q#x#O#x#O#x#O#x#O#Q#j#Q#j#Q#j#Q#j#k#q#k#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#y#q#z#q#y#q#z#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#z#q#y#q#z#q#y#q#q#q#q#q#q#q#q#q#q#q"
+"#q#q#q#j#q#j#q#j#q#j#q#j#q#k#q#j#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#k.s#j.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.r.p.p.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.o.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.t.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.w.v.v.v.v.v.v.x.v.x.v.x.v.x.v.x.x.y.x.x.x.y.x.A.x.A.x.A.x.A.z.A.z.A.A.A.z.A.A.B.A.B.A.B.A.B.B.B.B.7.B.B.B#L.B#L.B#L#W#L#T#L#T#L#T#L#L.F#L#P#L#P.F#P#P#P#P#N#P.K#P#M#P#M#P#M.K#M#R#M#M.L#R#J#M#J#M#J.L#J#J#J#J.O#J#E#J#E.O#E#U#E",
+"#F#p#F#p#F#F#F#H#t#F#t#F#K#F#K#F#K#t#K#K#K#K#K#K#I#K#I#K#O#x#O#x#O#x#O#x#j#Q#j#Q#j#O#j#Q#j#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#w#q#q#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#y#y#z#y#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#S#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#y#y#y#z#y#y#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#w#q#q"
+"#q#w#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#j#j#j#k#j#j#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#b.s#b.s.s.s#b.s.s.s.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p.r.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.u.t.t.t.v.t.v.t.v.t.v.w.v.w.v.w.v.w.v.v.x.v.x.v.x.v.x.x.x.x.x.x.x.x.z.x.A.x.A.x.A.x.A.z.A.z.A.z.A.z.B.A.B.A.B.A.B.B.B.B.B.B.B.B#L.B#T.B#L.B#L#T#L#T#L#T#L#T.F#L#P#T#P#L#P.F#P#P#P#P.K#P#M#P#R#P#M.K#M#R#M#R.L#R#J#R#J#M#J.L#J#J#J#J.O#J#U#J#U.O",
+"#C#F#C#F#p#F#p#F#H#F#H#F#H#t#H#K#F#K#F#K#t#K#t#K#K#x#K#x#K#x#K#x#K#O#K#Q#x#O#x#O#x#j#Q#j#Q#j#Q#j#Q#j#Q#j#j#q#k#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#z#q#y#q#z#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#D#z#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#z#q#y#q#z#q#q#q#q#q#q#q#q#q#q#q"
+"#q#q#q#j#q#j#q#j#q#j#q#k#q#j#q#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#k.s#b.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.r.s.p.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.q.q.o.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.t.u.t.t.t.u.t.u.t.v.t.v.t.v.t.v.t.v.v.v.w.v.v.v.v.x.v.x.v.x.v.x.v.x.x.x.x.y.x.y.x.A.x.A.x.A.x.A.z.A.z.A.z.A.A.A.A.B.A.B.A.B.A.B.B.B.B.B.B#V.B#L.B#L.B#L.B#L#T#L#T#L#L#L#T#P#L#P#L#P.F#P#P#P#P#P#P.I#P#M#P#M#P#M.K#M#R#M#R.L#M.L#M#J#M#J.L#J#J#J#J.N#J#U#J#E.O#E#U#E",
+"#F#C#F#p#F#H#F#F#F#F#t#F#K#F#K#t#K#t#K#K#K#K#I#K#x#K#I#K#O#K#O#x#O#x#O#x#O#Q#j#Q#j#Q#j#O#j#Q#j#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#w#q#q#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#y#y#z#y#y#y#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#D#y#y#z#y#y#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#q#q#w"
+"#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#j#k#j#j#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#b.s.s.s#b.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.r.p.p.p.r.p.q.p.q.p.q.p.q.p.q.o.q.o.q.q.q.o.q.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.t.t.v.t.v.t.v.t.v.t.v.w.v.w.v.w.v.v.v.w.x.v.x.v.x.v.x.x.x.x.x.x.x.x.A.x.z.x.A.x.A.x.A.z.A.z.A.z.A.A.B.z.B.A.B.A.B.B.B.B.B.B#W.B#T.B#L.B#L#W#L#T#L#T#L#T#L#T#P#T#P#L#P#L#P#P#P#P#P#P.K#P#R#P#M#P#M#R#M#R#M#R.L#R.L#M#J#R#J#J#J#J#J#J#U#J#U#J#E.O",
+"#C#F#C#F#C#F#p#F#H#F#H#t#H#t#F#K#H#K#t#K#t#K#t#K#K#K#K#x#K#x#K#I#K#Q#x#O#x#O#x#O#x#O#Q#j#Q#j#Q#j#Q#j#k#j#k#q#j#q#k#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#z#q#z#q#y#q#z#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#D#z#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#z#D#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#z#q#y#q#z#q#z#q#q#q#q#q#q#q#q#q#q#q"
+"#q#q#q#j#q#j#q#j#q#k#q#j#q#k#q#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#k.s#j.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.r.p.p.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.o.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.u.t.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.w.v.w.v.v.v.v.v.v.x.v.x.v.x.v.x.v.x.x.y.x.x.x.y.x.A.x.A.x.A.x.A.z.A.z.A.A.A.A.B.A.B.A.B.A.B.A.B.B.B.B#V.B#W.B#L.B#L.B#L#W#L#T#L#T#L#T#X#L#P#L#P#L#P.F#P#P#P#P#N#P.K#P#M#P#M#P#M#R#M#R#M#M.L#R#J#M#J#M#J#J#J#J#J#J.O#J#E#J#E.O#E#U#E",
+"#F#p#F#p#F#F#F#H#t#F#t#F#K#F#K#F#K#t#K#t#K#K#K#K#I#K#x#K#O#K#O#x#O#x#O#x#O#Q#O#Q#j#O#j#Q#j#O#j#O#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#w#q#q#q#w#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#y#y#z#y#y#D#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#y#y#y#z#y#y#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#q#q#w#q#q"
+"#q#w#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#j#j#j#j#k#j#j#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#b.s#b.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p.r.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.u.t.w.t.v.t.v.t.v.t.v.w.v.w.v.w.v.w.v.v.x.v.x.v.x.v.x.x.x.x.x.x.y.x.z.x.A.x.A.x.A.x.A.z.A.z.A.z.A.z.B.A.B.A.B.A.B.B.B.B#W.B.B.B#L.B#T.B#L.B#L#T#L#T#L#T#X#T#P#L#P#T#P#X#P#P#P#P#P#P.K#P#M#P#R#P#M.K#M#R#M#R.L#R#J#R#J#M#J.L#J#J#J#J.O#J#U#J#U#U",
+"#C#F#C#F#p#F#p#F#H#F#H#F#H#t#H#t#F#K#F#K#t#K#t#K#K#K#K#K#K#x#K#x#K#O#K#Q#x#O#x#O#x#O#Q#O#Q#j#Q#j#Q#j#Q#j#j#q#k#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#y#q#z#q#y#q#z#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#z#D#z#D#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#z#q#y#q#z#q#y#q#q#q#q#q#q#q#q#q#q#q#q#q"
+"#q#q#q#j#q#j#q#j#q#j#q#k#q#j#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#k.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.r.s.p.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.q.q.o.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.t.u.t.t.t.u.t.u.t.v.t.v.t.v.t.v.w.v.v.v.w.v.v.v.v.x.v.x.v.x.v.x.x.x.x.x.x.y.x.y.x.A.x.A.x.A.x.A.z.A.A.A.z.A.A.B.A.B.A.B.A.B.A.B.B.B.B.B.B#V.B#L.B#L#W#L#W#L#T#L#T#L#L#L#L#P#L#P#L#P#P#P#P#P#P#P#P#M#P#M#P#M#P#M.K#M#R#M#R#J#M#J#M#J#M#J.L#J#J#J#J#E#J#U#J#E#U#E#U#E",
+"#F#C#F#p#F#H#F#F#F#F#t#F#K#F#K#t#K#t#K#t#K#K#I#K#x#K#I#K#I#K#O#x#O#x#O#x#O#x#j#Q#j#Q#j#O#j#Q#j#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#w#q#q#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#y#y#z#y#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#y#y#y#z#y#y#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#w#q#q#q#w"
+"#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#j#j#k#j#j#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#b.s.s.s#b.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.r.p.p.p.r.p.q.p.q.p.q.p.q.p.q.o.q.o.q.q.q.o.q.q.t.q.t.q.t.q.t.q.t.t.t.t.u.t.t.t.v.t.v.t.v.t.v.t.v.w.v.w.v.w.v.v.x.w.x.v.x.v.x.v.x.x.x.x.x.x.x.x.A.x.A.x.A.x.A.x.A.z.A.z.A.z.A.A.B.z.B.A.B.A.B.B.B.B.B.B#W.B#T.B#L.B#L#W#L#T#L#T#L#T#L#T#P#T#P#L#P.F#P#P#P#P#P#P#R#P#R#P#M#P#M#R#M#R#M#R#J#R#J#M#J#R#J#J#J#J#J#J#U#J#U#J#E.O",
+"#C#F#C#F#C#F#p#F#H#F#H#F#H#F#F#t#H#K#F#K#F#K#t#K#K#K#K#x#K#x#K#x#K#Q#x#O#x#O#x#O#x#O#x#j#Q#j#Q#j#Q#j#Q#j#Q#q#j#q#k#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#z#q#y#q#z#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#z#q#y#q#z#q#q#q#q#q#q#q#q#q#q#q#q#q"
+"#q#j#q#j#q#j#q#j#q#k#q#j#q#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#k.s#b.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.r.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.r.q.o.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.u.t.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.w.v.w.v.v.v.v.v.v.x.v.x.v.x.v.x.x.x.x.y.x.x.x.y.x.A.x.A.x.A.x.A.z.A.z.A.A.A.A.B.A.B.A.B.A.B.A.B.B.B.B#V.B#W.B#L.B#L.B#L#W#L#T#L#T#L#T#X#L#P#L#P#L#P.F#P#P#P#P#N#P.K#P#M#P#M#P#M#R#M#R#M#M.L#R#J#M#J#M#J#J#J#J#J#J.O#J#E#J#E.O#E#U#E",
+"#F#C#F#p#F#H#F#H#F#F#t#F#K#F#K#F#K#t#K#t#K#K#K#K#I#K#x#K#I#K#O#K#O#x#O#x#O#x#O#Q#j#Q#j#Q#j#O#j#O#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#w#q#q#q#w#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#y#y#z#y#y#y#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#D#y#y#z#y#y#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#q#q#w#q#q"
+"#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#j#j#j#j#j#k#j#j#j#k#j#k#j.s#j.s#j.s#j.s#j.s#b.s.s.s#b.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.p.p.p.r.p.p.p.r.p.r.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.q.t.q.t.q.t.q.t.t.t.t.t.t.t.t.u.t.v.t.v.t.v.t.v.t.v.w.v.w.v.v.v.w.x.v.x.v.x.v.x.v.x.x.x.x.x.x.y.x.z.x.A.x.A.x.A.z.A.z.A.z.A.z.A.z.B.A.B.A.B.A.B.B.B.B#W.B#W.B#L.B#T#W#L#W#L#T#L#T#L#T#X#T#P#L#P#L#P#P#P#P#P#P#P#P.K#P#M#P#R#P#M#R#M#R#M#R.L#R#J#R#J#Y#J#J#J#J#J#J#U#J#U#J#U#U",
+"#C#F#C#F#C#F#C#F#H#F#H#F#H#t#H#t#F#K#F#K#t#K#t#K#t#K#K#K#K#x#K#x#K#I#K#Q#x#O#x#O#x#O#x#O#Q#j#Q#j#Q#j#Q#j#k#q#k#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#z#q#z#q#y#q#z#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#D#z#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#z#q#y#q#z#q#z#q#q#q#q#q#q#q#q#q#q#q#q#q"
+"#q#j#q#j#q#j#q#j#q#j#q#k#q#j#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#k.s#j.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.r.p.p.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.q.q.o.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.w.v.v.v.w.v.v.v.v.x.v.x.v.x.v.x.x.x.x.x.x.y.x.y.x.A.x.A.x.A.x.A.z.A.A.A.z.A.A.B.A.B.A.B.A.B.B.B.B#W.B#W.B#V.B#L.B#L#W#L#W#L#T#L#T#X#L#P#L#P#L#P#L#P#P#P#P#P#P#P#P#M#P#M#P#M#Z#M#R#M#R#M#R#J#M#J#M#J#Y#J#J#J#J#J#J#E#J#U#J#E#U#E#U#E",
+"#F#C#F#p#F#H#F#F#F#H#t#F#K#F#K#F#K#F#K#t#K#K#K#K#K#K#I#K#I#K#O#x#O#x#O#x#O#x#O#Q#O#Q#j#O#j#Q#j#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#w#q#q#q#w#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#y#y#z#y#y#y#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#D#y#y#z#y#y#y#z#y#y#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#z#q#w#q#q#q#w"
+"#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#j#j#j#k#j#j#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#b.s#b.s.s.s#b.s.s.s.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p.p.p.q.p.q.p.q.p.q.p.q.p.q.o.q.o.q.q.q.o.t.q.t.q.t.q.t.q.t.t.t.t.t.t.u.t.t.t.v.t.v.t.v.t.v.t.v.w.v.w.v.w.v.v.x.v.x.v.x.v.x.v.x.x.x.x.x.x.x.x.A.x.A.x.A.x.A.z.A.z.A.z.A.z.A.A.B.z.B.A.B.A.B.B#W.B#W.B#W.B#T.B#L.B#L#W#L#T#L#T#X#T#X#T#P#T#P#L#P#P#P#P#P#P#P#P#R#P#R#P#M#P#M#R#M#R#M#R#J#R#J#M#J#R#J#J#J#J#J#J#U#J#U#J#E#U",
+"#C#H#C#F#C#F#p#F#p#F#H#F#H#F#F#t#H#K#F#K#F#K#t#K#t#K#K#x#K#x#K#x#K#x#K#O#K#O#x#O#x#O#x#j#Q#O#Q#j#Q#j#Q#j#Q#j#j#q#k#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#y#q#z#q#y#q#z#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#D#z#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#z#D#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#z#q#y#q#z#q#y#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q"
+"#q#j#q#j#q#j#q#j#q#k#q#j#q#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#k.s#b.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.r.s.p.p.r.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.r.q.o.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.u.t.t.t.u.t.u.t.v.t.v.t.v.t.v.t.v.v.v.w.v.v.v.v.v.v.x.v.x.v.x.v.x.x.x.x.y.x.x.x.y.x.A.x.A.x.A.x.A.z.A.z.A.A.A.A.B.A.B.A.B.A.B.B#W.B.B.B#V.B#L.B#L#W#L#W#L#T#L#T#L#L#L#T#P#L#P#L#P#X#P#P#P#P#P#P#0#P#R#P#M#P#M#P#M#R#M#R#M#M#J#R#J#M#J#M#J#J#J#J#J#J#U#J#E#J#E#U#E#U#E",
+"#F#C#F#C#F#H#F#H#F#F#F#F#t#F#K#F#K#t#K#t#K#K#K#K#I#K#x#K#I#K#O#K#O#x#O#x#O#x#O#Q#j#Q#j#Q#j#O#j#Q#j#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#w#q#q#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#y#y#z#y#y#D#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#y#y#y#z#y#y#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#w#q#q#q#w#q#q"
+"#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#j#j#k#j#j#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#b.s.s.s#b.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.p.p.p.r.p.p.p.r.p.q.p.q.p.q.p.q.p.q.o.q.o.q.q.q.o.q.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.t.t.u.t.v.t.v.t.v.t.v.t.v.w.v.w.v.v.v.w.x.v.x.v.x.v.x.v.x.x.x.x.x.x.y.x.z.x.A.x.A.x.A.z.A.z.A.z.A.z.B.z.B.A.B.A.B.A.B.B.B.B#W.B#W.B#L.B#T#W#L#W#L#T#L#T#L#T#X#T#P#L#P#L#P#P#P#P#P#P#Z#P#R#P#M#P#R#Z#M#R#M#R#M#R#J#R#J#R#J#Y#J#J#J#J#1#J#U#J#U#J#U#U",
+"#C#F#C#F#C#F#C#F#p#F#H#F#H#t#H#t#F#K#H#K#t#K#t#K#t#K#K#K#K#x#K#x#K#I#K#Q#x#O#x#O#x#O#x#O#Q#j#Q#j#Q#j#Q#j#Q#j#Q#q#j#q#k#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#z#q#y#q#z#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#D#z#D#z#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#z#D#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#z#q#y#q#z#q#y#q#z#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j"
+"#q#j#q#j#q#j#q#k#q#j#q#k#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#k.s#j.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.r.p.p.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.o.q.q.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.t.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.w.v.v.v.v.v.v.v.v.x.v.x.v.x.v.x.x.y.x.x.x.y.x.A.x.A.x.A.x.A.x.A.z.A.A.A.z.A.A.B.A.B.A.B.A.B.B.B.B#V.B#W.B#L.B#L.B#L#W#L#T#L#T#L#T#X#L#P#L#P#L#P#L#P#P#P#P#P#P#P#P#M#P#M#P#M#Z#M#R#M#R#M#R#J#M#J#M#J#Y#J#J#J#J#J#J#E#J#U#J#E#U#E#U#E",
+"#F#C#F#p#F#H#F#F#F#H#t#F#t#F#K#F#K#F#K#t#K#K#K#K#K#K#I#K#I#K#O#K#O#K#O#x#O#x#O#Q#O#Q#j#O#j#Q#j#O#j#O#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#w#q#q#q#w#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#y#y#z#y#y#D#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#y#y#y#z#y#y#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#q#q#w#q#q#q#q"
+"#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#j#j#j#j#k#j#j#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#b.s#b.s.s.s#b.s.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p.r.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.u.t.t.t.v.t.v.t.v.t.v.w.v.w.v.w.v.w.v.v.x.v.x.v.x.v.x.x.x.x.x.x.x.x.x.x.A.x.A.x.A.x.A.z.A.z.A.z.A.z.B.A.B.A.B.A.B.A.B.B#W.B#W.B#W.B#T#W#L#W#L#W#L#T#L#T#X#T#P#L#P#T#P#X#P#P#P#P#P#P#P#P#R#P#R#P#M#P#M#R#M#R#M#R#J#R#J#M#J#Y#J#J#J#J#J#J#U#J#U#1#E#U",
+"#C#H#C#F#C#F#C#F#p#F#H#F#H#F#H#t#H#K#F#K#F#K#t#K#t#K#K#K#K#K#K#x#K#x#K#O#K#Q#x#O#x#O#x#O#Q#O#Q#j#Q#j#Q#j#Q#j#j#q#k#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#z#q#z#q#y#q#z#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#D#z#D#z#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#z#D#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#z#q#y#q#z#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j"
+"#q#j#q#j#q#j#q#j#q#k#q#j#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.r.s.p.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.q.q.o.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.t.u.t.t.t.u.t.u.t.v.t.v.t.v.t.v.t.v.v.v.w.v.v.v.v.x.v.x.v.x.v.x.v.x.x.x.x.y.x.y.x.A.x.A.x.A.x.A.x.A.z.A.z.A.A.A.A.B.A.B.A.B.A.B.B#W.B#W.B#V.B#L.B#L#W#L#W#L#T#L#T#X#L#X#T#P#L#P#L#P#X#P#P#P#P#P#P#0#P#R#P#M#Z#M#Z#M#R#M#R#Y#M#J#R#J#M#J#Y#J#J#J#J#1#J#U#J#E#1#E#U#E#U#E",
+"#F#C#F#C#F#H#F#H#F#F#F#F#t#F#K#F#K#F#K#t#K#t#K#K#2#K#K#K#I#K#O#K#O#x#O#x#O#x#O#x#O#Q#O#Q#j#O#j#Q#j#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#w#q#q#q#w#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#y#y#z#y#y#y#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#y#y#y#z#y#y#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#q#q#w#q#q#q#w#q#q"
+"#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#j#j#j#k#j#j#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#b.s.s.s#b.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.r.p.p.p.r.p.q.p.q.p.q.p.q.p.q.o.q.o.q.q.q.o.q.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.t.t.u.t.v.t.v.t.v.t.v.w.v.w.v.w.v.v.v.w.x.v.x.v.x.v.x.x.x.x.x.x.x.x.y.x.z.x.A.x.A.x.A.z.A.z.A.z.A.A.B.z.B.A.B.A.B.B#W.B#W.B#W.B#T.B#L.B#L#W#L#T#L#T#X#T#X#T#P#T#P#L#P#X#P#P#P#P#P#P#Z#P#R#P#M#P#M#Z#M#R#M#R#Y#R#J#R#J#R#J#Y#J#J#J#J#1#J#U#J#E#J#U#U",
+"#C#B#C#F#C#F#C#F#p#F#H#F#H#F#H#F#F#t#H#K#F#K#F#K#t#K#K#K#K#x#K#x#K#x#K#Q#K#O#K#O#x#O#x#O#x#j#Q#j#Q#j#Q#j#Q#j#Q#q#j#q#k#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#y#q#z#q#y#q#z#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#D#z#D#z#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#z#D#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#z#q#y#q#z#q#y#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j"
+"#q#j#q#j#q#j#q#k#q#j#q#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#k.s#b.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.r.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.r.q.o.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.t.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.w.v.v.v.v.v.v.x.v.x.v.x.v.x.v.x.x.y.x.x.x.y.x.A.x.A.x.A.x.A.x.A.z.A.A.A.z.A.A.B.A.B.A.B.A#W.B#W.B#V.B#W.B#L#W#L#W#L#W#L#T#L#T#L#T#X#L#P#L#P#X#P#X#P#P#P#P#Z#P#Z#P#M#P#M#P#M#R#M#R#M#R#M#R#J#M#J#M#J#Y#J#J#J#J#J#J#E#J#E#J#E#U#E#U#3",
+"#F#C#F#C#F#C#F#F#F#H#F#F#F#F#K#F#K#F#K#t#K#t#K#K#K#K#I#K#x#K#I#K#O#K#O#x#O#x#O#x#O#Q#j#Q#j#Q#j#O#j#O#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#w#q#q#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#y#y#z#y#y#y#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#D#y#y#z#y#y#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#w#q#q#q#w#q#q#q#q"
+"#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#j#j#k#j#j#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#b.s.s.s#b.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.p.p.p.r.p.p.p.r.p.r.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.u.t.w.t.v.t.v.t.v.t.v.w.v.w.v.w.v.w.v.v.x.v.x.v.x.v.x.x.x.x.x.x.x.x.x.x.A.x.A.x.A.x.A.z.A.z.A.z.A.z.B.A.B.A.B.A.B.B.B.B#W.B#W.B#L.B#T#W#L#W#L#T#L#T#L#T#X#T#P#L#P#T#P#X#P#P#P#P#Z#P#Z#P#R#P#R#Z#M#R#M#R#M#R#M#R#J#R#J#Y#J#J#J#J#J#J#1#J#U#J#U#1#E#U",
+"#C#C#C#F#C#F#C#F#C#F#H#F#H#F#H#t#H#t#F#K#F#K#t#K#t#K#t#K#K#K#K#x#K#x#K#I#K#Q#x#O#x#O#x#O#x#O#Q#j#Q#j#Q#j#Q#j#Q#j#Q#q#j#q#k#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#z#q#y#q#z#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#D#z#D#z#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#z#D#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#z#q#y#q#z#q#y#q#z#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j"
+"#q#j#q#j#q#k#q#j#q#k#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#k.s#j.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.r.p.p.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.q.q.o.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.t.u.t.t.t.u.t.u.t.v.t.v.t.v.t.v.w.v.v.v.w.v.v.v.v.x.v.x.v.x.v.x.v.x.x.x.x.y.x.y.x.A.x.A.x.A.x.A.z.A.z.A.z.A.A.A.A.B.A.B.A.B.A.B.B#W.B#W.B#V.B#L.B#L#W#L#W#L#T#L#T#X#L#X#T#P#L#P#L#P#X#P#P#P#P#P#P#0#P#M#P#M#Z#M#R#M#R#M#R#Y#M#J#R#J#Y#J#J#J#J#J#J#1#J#U#J#E#1#E#U#E#U#E",
+"#F#C#F#C#F#p#F#H#F#F#F#H#t#F#K#F#K#F#K#F#K#t#K#K#K#K#K#K#I#K#I#K#O#K#O#K#O#x#O#x#O#Q#O#Q#j#O#j#Q#j#O#j#O#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#w#q#q#q#w#q#z#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#y#y#z#y#y#y#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#D#y#y#z#y#y#y#z#y#y#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#q#q#w#q#q#q#q#q#q"
+"#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#j#j#j#j#k#j#j#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#b.s#b.s.s.s#b.s.s.s.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p.p.p.q.p.q.p.q.p.q.p.q.p.q.o.q.o.q.q.q.o.q.q.t.q.t.q.t.q.t.q.t.t.t.t.u.t.t.t.v.t.v.t.v.t.v.t.v.w.v.w.v.w.v.v.v.w.x.v.x.v.x.v.x.x.x.x.x.x.x.x.A.x.z.x.A.x.A.x.A.z.A.z.A.z.A.A.B.z.B.A.B.A.B.B#W.B#W.B#W.B#T#W#L#W#L#W#L#T#L#T#X#T#X#T#P#T#P#X#P#X#P#P#P#P#P#P#Z#P#R#P#M#P#M#R#M#R#M#R#Y#R#J#R#J#R#J#J#J#J#J#J#1#J#U#J#E#1#U#U",
+"#C#B#C#H#C#F#C#F#p#F#H#F#H#F#H#F#F#t#H#K#F#K#F#K#t#K#t#K#K#K#K#K#K#x#K#x#K#O#K#Q#x#O#x#O#x#O#Q#O#Q#j#Q#j#Q#j#Q#j#j#q#k#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#z#q#y#q#z#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#D#z#D#z#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#z#D#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#z#q#y#q#z#q#y#q#z#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j"
+"#q#j#q#j#q#j#q#k#q#j#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#k.s#b.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.r.s.p.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.r.q.o.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.u.t.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.w.v.w.v.v.v.v.v.v.x.v.x.v.x.v.x.x.x.x.y.x.x.x.y.x.A.x.A.x.A.x.A.z.A.z.A.A.A.z.A.A.B.A.B.A.B.A#W.B#W.B#V.B#W.B#L#W#L#W#L#W#L#T#X#T#X#T#X#L#P#L#P#X#P#X#P#P#P#P#Z#P#Z#P#M#Z#M#Z#M#R#M#R#Y#R#Y#R#J#M#J#M#J#J#J#J#1#J#1#J#E#J#E#1#E#U#E#U#3",
+"#F#C#F#C#F#C#F#H#F#H#F#F#F#F#t#F#K#F#K#t#K#t#K#K#K#K#2#K#K#K#I#K#O#K#O#x#O#x#O#x#O#Q#O#Q#O#Q#j#O#j#Q#j#j#q#O#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#w#q#q#q#w#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#y#y#z#y#y#y#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#D#y#y#z#y#y#y#z#y#y#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#q#q#w#q#q#q#w#q#q#q#q"
+"#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#j#j#j#k#j#j#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#b.s.s.s#b.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.r.p.p.p.r.p.q.p.q.p.q.p.q.p.q.o.q.o.q.q.q.o.q.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.t.t.u.t.v.t.v.t.v.t.v.t.v.w.v.w.v.v.v.w.x.v.x.v.x.v.x.v.x.x.x.x.x.x.y.x.z.x.A.x.A.x.A.x.A.z.A.z.A.z.A.z.B.A.B.A.B.A#W.B#W.B#W.B#W.B#L.B#T#W#L#W#L#T#X#T#X#T#X#T#P#X#P#4#P#X#P#P#P#P#Z#P#Z#P#R#P#R#Z#M#R#M#R#Y#R#Y#R#J#R#J#Y#J#J#J#J#1#J#1#J#U#J#U#1#E#U",
+"#C#C#C#F#C#F#C#F#C#F#p#F#H#F#H#F#H#F#F#K#H#K#F#K#F#K#t#K#K#K#K#x#K#x#K#I#K#Q#K#O#K#O#x#O#x#O#x#j#Q#O#Q#j#Q#j#Q#j#Q#q#j#q#k#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#y#q#z#q#y#q#z#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#D#z#D#z#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#z#D#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#z#q#y#q#z#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j"
+"#q#j#q#j#q#k#q#j#q#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#k.s#b.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.r.p.p.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.o.q.q.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.w.v.v.v.w.v.v.v.v.x.v.x.v.x.v.x.x.x.x.x.x.y.x.y.x.A.x.A.x.A.x.A.z.A.A.A.z.A.A.B.A.B.A.B.A#W.A#W.B#W.B#W.B#V#W#L#W#L#W#L#W#X#T#X#T#X#L#X#T#P#X#P#X#P#X#P#P#Z#P#Z#P#M#P#M#P#M#Z#M#R#M#R#M#R#Y#M#J#M#J#Y#J#J#J#J#J#J#1#J#U#J#E#1#E#U#3#U#3",
+"#F#C#F#C#F#p#F#H#F#F#F#H#F#F#t#F#K#F#K#F#K#t#K#K#K#K#K#K#I#K#x#K#O#K#O#K#O#x#O#x#O#x#O#Q#j#Q#j#Q#j#O#j#O#q#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#w#q#q#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#y#y#z#y#y#D#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#D#D#D#D#D#D#D#D#D#D#D#D#D#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#D#y#y#z#y#y#y#z#y#y#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#z#q#w#q#q#q#w#q#q#q#q#q#q"
+"#q#q#j#q#j#q#j#q#j#q#j#q#j#q#j#j#k#j#j#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#b.s.s.s#b.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p.r.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.u.t.t.t.v.t.v.t.v.t.v.t.v.w.v.w.v.w.v.v.x.v.x.v.x.v.x.v.x.x.x.x.x.x.x.x.A.x.A.x.A.x.A.x.A.z.A.z.A.z.A.A.B.z.B.A#W.A#W.B#W.B#W.B#W.B#T#W#L#W#L#W#L#T#L#T#X#T#X#T#P#T#P#X#P#X#P#P#Z#P#Z#P#Z#P#R#Z#M#Z#M#R#M#R#M#R#Y#R#J#Y#J#5#J#J#J#J#1#J#1#J#U#1#E#1#U#U",
+"#C#6#C#7#C#F#C#F#C#F#C#F#H#F#H#F#H#t#H#K#F#K#F#K#t#K#t#K#K#K#K#K#K#x#K#x#K#O#K#Q#x#O#x#O#x#O#x#O#Q#j#Q#j#Q#j#Q#j#Q#j#Q#q#j#q#k#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#y#q#z#q#y#q#z#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#D#z#D#z#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#z#D#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#z#q#y#q#z#q#y#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j"
+"#q#j#q#k#q#j#q#k#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#k.s#j.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.r.s.p.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.q.q.o.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.t.u.t.t.t.u.t.u.t.v.t.v.t.v.t.v.t.v.v.v.w.v.v.v.v.v.v.x.v.x.v.x.v.x.x.x.x.y.x.x.x.y.x.A.x.A.x.A.x.A.z.A.z.A.A.A.A.B.A.B.A#W.A#W.A#W.B#W.B#V#W#W#W#L#W#L#W#L#W#L#T#X#T#X#T#X#X#P#X#P#X#P#X#P#P#P#P#0#P#R#P#M#Z#M#Z#M#R#M#R#Y#R#Y#R#J#Y#J#Y#J#J#J#J#1#J#1#J#E#1#E#1#E#U#E#U#3",
+"#8#C#F#C#F#C#F#H#F#H#F#F#F#F#t#F#K#F#K#F#K#F#K#t#K#K#2#K#K#K#I#K#I#K#O#K#O#K#O#x#O#x#O#Q#O#Q#j#O#j#Q#j#O#j#O#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#w#q#q#q#w#q#q#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#y#y#z#y#y#y#z#y#y#D#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#D#y#y#z#y#y#y#z#y#y#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#w#q#q#q#w#q#q#q#q#q#q#q#q"
+"#q#q#j#q#j#q#j#q#j#q#j#q#j#q#j#j#j#j#k#j#j#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#b.s#b.s.s.s#b.s.s.s.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p.p.p.r.p.q.p.q.p.q.p.q.p.q.o.q.o.q.q.q.o.q.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.t.t.u.t.v.t.v.t.v.t.v.w.v.w.v.w.v.v.v.w.x.v.x.v.x.v.x.v.x.x.x.x.x.x.y.x.z.x.A.x.A.x.A.z.A.z.A.z.A.z.A.z.B.A.B.A.B.A#W.B#W.B#W.B#W#W#L#W#T#W#L#W#L#T#X#T#X#T#X#T#P#X#P#4#P#X#P#P#P#P#Z#P#R#P#M#P#R#Z#M#R#M#R#Y#R#Y#R#J#R#J#Y#J#J#J#J#1#J#U#J#U#1#U#1#E#U",
+"#C#C#C#B#C#F#C#F#C#F#p#F#H#F#H#F#H#F#F#t#H#K#F#K#F#K#t#K#t#K#K#K#K#K#K#x#K#x#K#O#K#Q#x#O#x#O#x#O#Q#O#Q#j#Q#j#Q#j#Q#j#j#q#k#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#z#q#y#q#z#q#y#q#z#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#D#z#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#z#D#z#D#z#D#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#z#q#y#q#z#q#y#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j"
+"#q#k#q#j#q#k#q#j#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#k.s#b.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.r.s.p.p.r.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.r.q.o.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.u.t.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.w.v.v.v.v.v.v.x.v.x.v.x.v.x.v.x.x.y.x.x.x.y.x.A.x.A.x.A.x.A.x.A.z.A.A.A.z.A.A.B.A.B.A.B.A#W.B#W.B#W.B#W.B#V#W#L#W#L#W#L#W#X#T#X#T#X#L#X#L#P#X#P#X#P#P#P#P#Z#P#Z#P#M#Z#M#Z#M#Z#M#R#Y#R#Y#R#Y#M#J#M#J#Y#J#J#1#J#1#J#E#J#U#1#E#1#E#U#3#U#3",
+"#F#C#F#C#F#C#F#C#F#F#F#H#F#F#F#F#K#F#K#F#K#t#K#t#K#K#K#K#2#K#K#K#I#K#O#K#O#x#O#x#O#x#O#Q#O#Q#O#Q#j#O#j#Q#j#O#q#O#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#w#q#q#q#w#q#z#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#y#y#z#y#y#y#z#y#y#D#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#D#y#y#z#y#y#y#z#y#y#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#w#q#q#q#w#q#q#q#q#q#q#q#q#q#q"
+"#j#q#j#q#j#q#j#q#j#q#j#q#j#j#j#j#k#j#j#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#b.s.s.s#b.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.p.p.p.r.p.p.p.r.p.q.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.u.t.w.t.v.t.v.t.v.t.v.w.v.w.v.w.v.w.v.v.x.v.x.v.x.v.x.x.x.x.x.x.x.x.x.x.A.x.A.x.A.x.A.z.A.z.A.z.A.z.B.A.B.z.B.A#W.A#W.B#W.B#W#W#W#W#T#W#L#W#L#W#X#T#X#T#X#T#X#4#P#4#P#X#P#X#P#P#Z#P#Z#P#R#P#R#Z#M#Z#M#R#Y#R#Y#R#Y#R#J#Y#J#5#J#J#1#J#1#J#U#J#U#1#E#1#E#U",
+"#C#6#C#C#C#F#C#F#C#F#C#F#H#F#H#F#H#F#H#F#F#K#H#K#F#K#F#K#t#K#K#K#K#x#K#x#K#I#K#Q#K#O#K#O#x#O#x#O#x#O#Q#O#Q#j#Q#j#Q#j#Q#j#j#q#k#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#z#q#y#q#z#q#y#q#z#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#D#z#D#z#D#z#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#z#D#z#D#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#z#q#y#q#z#q#y#q#z#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j"
+"#q#j#q#k#q#j#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#k.s#b.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.r.p.p.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.q.q.o.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.t.u.t.t.t.u.t.u.t.v.t.v.t.v.t.v.t.v.v.v.w.v.v.v.v.x.v.x.v.x.v.x.v.x.x.x.x.y.x.y.x.A.x.A.x.A.x.A.x.A.z.A.z.A.A.A.A.B.A.B.A#W.A#W.B#W.B#W.B#V#W#L#W#L#W#L#W#X#T#X#T#X#T#X#T#P#X#P#X#P#X#P#P#Z#P#Z#P#0#P#R#P#M#Z#M#Z#M#R#M#R#Y#M#J#R#J#Y#J#Y#J#J#J#J#1#J#U#J#E#1#E#1#E#U#3#U#3",
+"#6#C#F#C#F#C#F#p#F#H#F#F#F#H#t#F#t#F#K#F#K#F#K#t#K#K#K#K#K#K#I#K#I#K#O#K#O#K#O#x#O#x#O#x#O#Q#j#Q#j#Q#j#O#j#Q#j#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#w#q#q#q#w#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#y#y#z#y#y#y#z#y#y#D#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#D#y#y#z#y#y#y#z#y#y#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#q#q#w#q#q#q#w#q#q#q#q#q#q#q#q"
+"#j#q#j#q#j#q#j#q#j#q#j#q#j#j#k#j#j#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#b.s.s.s#b.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p.r.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.o.t.q.t.q.t.q.t.q.t.t.t.t.t.t.u.t.t.t.v.t.v.t.v.t.v.t.v.w.v.w.v.w.v.v.v.w.x.v.x.v.x.v.x.x.x.x.x.x.x.x.y.x.z.x.A.x.A.x.A.z.A.z.A.z.A.A.B.z.B.A#W.A#W.B#W.B#W.B#W.B#W#W#L#W#T#W#X#W#X#T#X#T#X#T#X#T#P#X#P#X#P#P#Z#P#Z#P#Z#P#R#Z#M#Z#R#Z#M#R#M#R#Y#R#J#5#J#5#J#Y#J#J#J#J#1#J#U#1#U#1#U#1#3#U",
+"#C#C#C#6#C#7#C#F#C#F#C#F#C#F#H#F#H#F#H#t#H#K#F#K#F#K#t#K#t#K#K#K#K#K#K#x#K#x#K#O#K#Q#x#O#x#O#x#O#x#O#Q#j#Q#j#Q#j#Q#j#Q#j#Q#q#j#q#k#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#z#q#y#q#z#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#D#z#D#z#D#z#D#z#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#z#D#z#D#z#D#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#z#q#y#q#z#q#y#q#z#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j"
+"#q#k#q#j#q#k#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#k.s#j.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.r.s.p.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.q.q.o.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.u.t.t.t.u.t.u.t.v.t.v.t.v.t.v.t.v.w.v.w.v.v.v.v.v.v.x.v.x.v.x.v.x.v.x.x.y.x.x.x.y.x.A.x.A.x.A.x.A.x.A.z.A.A.A.z.A.A.B.A#W.A#W.A#W.B#W.B#V#W#W#W#L#W#L#W#L#W#L#T#X#T#X#T#X#X#P#X#P#X#P#X#Z#P#Z#P#Z#P#Z#P#M#Z#M#Z#M#Z#M#R#Y#R#Y#R#J#Y#J#Y#J#Y#J#J#1#J#1#J#E#1#U#1#E#1#E#U#3#U#3",
+"#6#C#8#C#F#C#F#C#F#H#F#H#F#F#F#F#t#F#K#F#K#F#K#F#K#t#K#K#2#K#K#K#I#K#I#K#O#K#O#K#O#x#O#x#O#Q#O#Q#j#O#j#Q#j#O#j#O#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#w#q#q#q#w#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#y#y#z#y#y#y#z#y#y#y#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#D#y#y#z#y#y#y#z#y#y#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#q#q#w#q#q#q#w#q#q#q#q#q#q#q#q#j#q"
+"#j#q#j#q#j#q#j#q#j#q#j#j#k#j#j#j#k#j#j#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#b.s#b.s.s.s#b.s.s.s.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p.p.p.r.p.q.p.q.p.q.p.q.p.q.o.q.o.q.q.q.o.q.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.t.t.u.t.v.t.v.t.v.t.v.t.v.w.v.w.v.w.v.w.x.v.x.v.x.v.x.v.x.x.x.x.x.x.x.x.z.x.A.x.A.x.A.x.A.z.A.z.A.z.A.z.B.A#W.A#W.A#W.B#W.B#W.B#W#W#T#W#T#W#L#W#L#T#X#T#X#T#X#T#P#X#P#4#P#X#P#P#P#P#Z#P#Z#P#R#Z#R#Z#M#Z#M#R#Y#R#Y#R#J#R#J#Y#J#5#J#J#1#J#1#J#U#J#U#1#E#U#E#U",
+"#C#C#C#C#C#F#C#F#C#F#C#F#p#F#H#F#H#F#H#F#F#t#H#K#F#K#F#K#t#K#t#K#K#K#K#K#K#x#K#x#K#O#K#Q#x#O#x#O#x#O#Q#O#Q#j#Q#j#Q#j#Q#j#Q#j#Q#q#j#q#k#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#z#q#z#q#y#q#z#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#D#z#D#z#D#z#D#z#D#z#D#z#D#z#D#z#D#z#D#z#D#z#D#z#D#z#D#z#D#z#D#z#D#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#z#q#y#q#z#q#y#q#z#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#k"
+"#q#j#q#k#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#k.s#j.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.r.s.p.p.r.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.r.q.o.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.t.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.w.v.v.v.w.v.v.v.v.x.v.x.v.x.v.x.x.x.x.x.x.y.x.y.x.A.x.A.x.A.x.A.z.A.z.A.z.A.A.A.A#W.A#W.A#W.A#W.B#W#W#W#W#V#W#L#W#L#W#L#W#X#T#X#T#X#L#X#T#P#X#P#X#P#X#P#P#Z#P#Z#P#0#Z#R#Z#M#Z#M#Z#Y#R#Y#R#Y#M#J#R#J#Y#J#Y#1#J#1#J#1#J#U#1#E#1#E#U#3#U#3#U#3",
+"#6#C#F#C#F#C#F#C#F#C#F#F#F#H#F#F#F#F#K#F#K#F#K#t#K#t#K#K#K#K#2#K#K#K#I#K#O#K#O#x#O#x#O#x#O#x#O#Q#O#Q#j#O#j#Q#j#O#q#O#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#w#q#q#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#y#y#z#y#y#y#z#y#y#y#z#D#y#D#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#y#y#y#z#y#y#y#z#y#y#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#z#q#w#q#q#q#w#q#q#q#q#q#q#q#q#q#q#j#q"
+"#j#q#j#q#j#q#j#q#j#q#j#j#j#j#k#j#j#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#j.s#b.s.s.s#b.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.r.p.p.p.r.p.r.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.u.t.t.t.v.t.v.t.v.t.v.t.v.w.v.w.v.w.v.v.x.v.x.v.x.v.x.v.x.x.x.x.x.x.x.x.A.x.A.x.A.x.A.x.A.z.A.z.A.z.A.A.B.z.B.A#W.A#W.B#W.B#W#W#W#W#T#W#L#W#L#W#X#T#X#T#X#T#X#4#P#4#P#X#P#X#P#P#Z#P#Z#P#Z#P#R#Z#M#Z#R#Z#Y#R#Y#R#Y#R#J#5#J#5#J#Y#1#J#1#J#1#J#U#1#U#1#U#U#3#U",
+"#C#C#C#6#C#C#C#F#C#F#C#F#C#F#H#F#H#F#H#F#H#F#F#K#H#K#F#K#F#K#t#K#K#K#K#K#K#K#K#I#K#Q#K#O#K#O#x#O#x#O#x#O#Q#O#Q#j#Q#j#Q#j#Q#j#j#q#k#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#y#q#z#q#y#q#z#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#D#z#D#z#D#z#D#z#D#z#D#z#D#z#D#z#D#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#z#q#y#q#z#q#y#q#z#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#k#q#j"
+"#q#k#q#j#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#k.s#b.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.r.p.p.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.q.q.o.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.t.u.t.t.t.u.t.u.t.v.t.v.t.v.t.v.t.v.v.v.w.v.v.v.v.v.v.x.v.x.v.x.v.x.x.x.x.y.x.x.x.y.x.A.x.A.x.A.x.A.z.A.z.A.A.A.A#W.A.B.A#W.A#W.A#W.B#W.B#V#W#W#W#L#W#L#W#X#W#X#T#X#T#X#T#X#X#P#X#P#X#P#X#Z#P#Z#P#Z#P#Z#P#M#Z#M#Z#M#R#M#R#Y#R#Y#R#J#Y#J#Y#J#Y#J#J#1#J#1#J#E#1#U#1#E#U#3#U#3#U#3",
+"#6#C#8#C#F#C#F#C#F#p#F#H#F#F#F#H#t#F#K#F#K#F#K#F#K#t#K#K#K#K#K#K#I#K#x#K#I#K#O#K#O#x#O#x#O#x#O#Q#O#Q#O#Q#j#O#j#Q#j#O#q#O#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#w#q#q#q#w#q#q#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#y#D#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#D#y#D#z#y#y#y#z#y#y#y#z#y#y#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#w#q#q#q#w#q#q#q#q#q#q#q#q#q#q#j#q#j#q"
+"#j#q#j#q#j#q#j#q#j#j#j#j#k#j#j#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#b.s.s.s#b.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p.r.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.o.q.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.t.t.u.t.v.t.v.t.v.t.v.w.v.w.v.w.v.v.v.w.x.v.x.v.x.v.x.v.x.x.x.x.x.x.y.x.z.x.A.x.A.x.A.z.A.z.A.z.A.z.A.z.B.A#W.A#W.A#W.B#W#W#W#W#W#W#L#W#T#W#X#W#X#T#X#T#X#4#X#4#P#X#P#4#P#X#Z#P#Z#P#Z#P#Z#Z#R#Z#R#Z#M#R#Y#R#Y#R#Y#5#J#5#J#Y#J#Y#J#J#1#J#1#1#U#1#U#1#3#U#3#U",
+"#C#C#C#C#C#6#C#7#C#F#C#F#C#F#C#F#H#F#H#F#H#t#H#K#F#K#F#K#t#K#t#K#K#K#K#K#K#x#K#x#K#I#K#Q#K#O#K#O#x#O#x#O#Q#O#Q#O#Q#j#Q#j#Q#j#Q#j#j#q#k#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#y#q#z#q#y#q#z#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#z#q#y#q#z#q#y#q#z#q#z#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#k#q#j#q#k"
+"#q#j#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#k.s#j.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.r.p.p.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.q.q.o.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.u.t.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.w.v.v.v.v.v.v.x.v.x.v.x.v.x.v.x.x.y.x.x.x.y.x.A.x.A.x.A.x.A.x.A.z.A.A.A.z.A.A.B.A#W.A#W.A#W.A#W.B#W#W#W#W#V#W#L#W#X#W#X#W#X#T#X#T#X#X#X#4#P#X#P#X#Z#X#Z#P#Z#P#Z#P#0#Z#M#Z#M#Z#M#R#Y#R#Y#R#Y#Y#J#5#J#Y#J#J#1#J#1#J#1#1#U#1#E#1#E#U#3#U#3#U#A",
+"#6#C#6#C#8#C#F#C#F#C#F#H#F#H#F#F#F#F#t#F#K#F#K#F#K#F#K#t#K#K#2#K#K#K#I#K#I#K#O#K#O#K#O#x#O#x#O#Q#O#Q#j#O#j#Q#j#O#j#O#q#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#w#q#q#q#w#q#q#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#y#y#z#y#y#y#z#y#y#D#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#D#y#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#w#q#q#q#w#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q"
+"#j#q#j#q#j#q#j#q#j#j#k#j#j#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#j.s#b.s#b.s.s.s#b.s.s.s.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p.p.p.r.p.q.p.q.p.q.p.q.p.q.o.q.o.q.q.q.o.q.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.t.t.u.t.w.t.v.t.v.t.v.t.v.w.v.w.v.w.v.w.v.v.x.v.x.v.x.v.x.x.x.x.x.x.x.x.x.x.A.x.A.x.A.x.A.z.A.z.A.z.A.z.A.A#W.z#W.A#W.A#W.B#W.B#W#W#W#W#T#W#X#W#X#W#X#T#X#T#X#T#X#4#P#4#P#X#Z#X#Z#P#Z#P#Z#Z#Z#Z#R#Z#M#Z#M#R#Y#R#Y#R#Y#R#J#5#J#5#J#J#1#J#1#J#1#J#U#1#E#1#U#U#3#U",
+"#9#C#C#C#C#C#C#F#C#F#C#F#C#F#p#F#H#F#H#F#H#F#F#t#H#K#F#K#F#K#t#K#t#K#K#K#K#K#K#x#K#x#K#O#K#Q#x#O#x#O#x#O#x#O#Q#j#Q#j#Q#j#Q#j#Q#j#Q#q#j#q#k#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#y#q#z#q#y#q#z#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#z#q#y#q#z#q#y#q#z#q#z#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#k#q#j"
+"#q#k#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#k.s#j.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.r.s.p.p.r.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.r.q.o.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.t.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.w.v.v.v.w.v.v.v.v.x.v.x.v.x.v.x.v.x.x.x.x.y.x.y.x.A.x.A.x.A.x.A.x.A.z.A.z.A.A.A.A#W.A#W.A#W.A#W.B#W#W#W#W#V#W#V#W#X#W#L#W#X#W#X#T#X#4#X#4#X#X#P#X#P#X#P#X#Z#P#Z#P#0#Z#R#Z#M#Z#M#Z#Y#R#Y#R#Y#R#Y#5#J#Y#J#Y#1#J#1#J#1#J#1#1#E#1#E#1#3#U#3#U#3a.#A",
+"#6#C#6#C#F#C#F#C#F#C#F#7#F#F#F#H#F#F#F#F#K#F#K#F#K#F#K#F#K#K#K#K#2#K#K#K#I#K#O#K#O#K#O#K#O#x#O#x#O#Q#O#Q#j#O#j#Q#j#O#j#O#q#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#w#q#q#q#w#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#y#y#z#y#y#y#z#y#y#y#z#D#y#D#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#D#y#D#z#y#y#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#w#q#q#q#w#q#q#q#w#q#q#q#q#q#q#q#q#j#q#j#q#j#q"
+"#j#q#j#q#j#q#j#j#k#j#j#j#k#j#j#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#b.s#b.s.s.s#b.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.r.p.p.p.r.p.r.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.u.t.t.t.v.t.v.t.v.t.v.t.v.w.v.w.v.w.v.v.x.w.x.v.x.v.x.v.x.x.x.x.x.x.x.x.y.x.z.x.A.x.A.x.A.z.A.z.A.z.A.A#W.z#W.A#W.A#W.A#W.B#W#W#W#W#W#W#L#W#T#W#X#W#X#T#X#T#X#4#X#4#P#X#P#4#P#X#Z#P#Z#P#Z#P#R#Z#M#Z#R#Z#Y#R#Y#R#Y#R#Y#5#J#5#J#Y#1#J#1#J#1#J#1#1#U#1#U#1#3#U#3#U",
+"#C#C#C#C#C#6#C#C#C#F#C#F#C#F#C#F#H#F#H#F#H#F#H#F#F#K#H#K#F#K#F#K#t#K#K#K#K#K#K#K#K#x#K#x#K#O#K#O#x#O#x#O#x#O#Q#O#Q#j#Q#j#Q#j#Q#j#Q#j#Q#q#j#q#k#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#z#q#y#q#z#q#y#q#z#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#z#q#y#q#z#q#y#q#z#q#z#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#k#q#j#q#k"
+"#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#k.s#b.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.r.p.p.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.q.q.o.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.t.u.t.t.t.u.t.u.t.v.t.v.t.v.t.v.t.v.v.v.w.v.v.v.v.v.v.x.v.x.v.x.v.x.x.x.x.y.x.x.x.y.x.A.x.A.x.A.x.A.z.A.z.A.A.A.za#.A#W.A#W.A#W.A#W#W#W#W#V#W#W#W#L#W#L#W#X#W#X#T#X#T#X#T#X#X#P#X#P#X#P#X#Z#P#Z#P#Z#Z#Z#Z#M#Z#M#Z#Y#Z#Y#R#Y#R#Y#R#Y#Y#J#Y#J#Y#J#J#1#J#1#J#1#1#U#1#E#1#3#U#3#U#3#U#A",
+"#C#C#6#C#8#C#F#C#F#C#F#p#F#H#F#F#F#H#F#F#F#F#K#F#K#F#K#t#K#t#K#K#K#K#I#K#x#K#I#K#O#K#O#x#O#x#O#x#O#Q#O#Q#O#Q#j#O#j#Q#j#O#j#O#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#w#q#q#q#w#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#y#y#z#D#y#D#z#D#y#D#z#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#y#D#z#D#y#D#z#y#y#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#q#q#w#q#q#q#w#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q"
+"#j#q#j#q#j#q#j#j#j#j#k#j#j#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#j.s#b.s.s.s#b.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p.r.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.o.q.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.t.t.u.t.v.t.v.t.v.t.v.t.v.w.v.w.v.v.v.w.x.v.x.v.x.v.x.v.x.x.x.x.x.x.y.x.z.x.A.x.A.x.A.x.A.z.A.z.A.za#.z#W.A#W.A#W.A#W.B#W#W#W#W#W#W#W#W#T#W#X#W#X#W#X#T#X#4#X#4#X#4#P#4#P#X#Z#P#Z#P#Z#P#Z#Z#R#Z#R#Z#Y#Z#Y#R#Y#R#Y#5#Y#5#J#Y#J#5#1#J#1#J#1#1#U#1#U#1#3#1a.#U#3#U",
+"#9#C#C#C#C#C#C#6#C#8#C#F#C#F#C#F#C#F#H#F#H#F#H#t#H#K#F#K#F#K#F#K#F#K#t#K#K#K#K#x#K#x#K#I#K#Q#K#O#K#O#x#O#x#O#x#O#Q#O#Q#j#Q#j#Q#j#Q#j#j#q#Q#q#j#q#k#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#z#q#y#q#z#q#y#q#z#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#z#q#y#q#z#q#y#q#z#q#z#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#k#q#j#q#k#j#k"
+"#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#k.s#b.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.r.p.p.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.q.q.o.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.u.t.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.w.v.v.v.v.v.v.x.v.x.v.x.v.x.v.x.x.x.x.x.x.y.x.y.x.A.x.A.x.A.x.A.z.A.z.A.za#.Aa#.A#W.A#W.A#Wa##W#W#W#W#W#W#V#W#L#W#X#W#X#W#X#T#X#T#X#X#X#4#P#X#P#X#Z#X#Z#P#Z#P#Z#P#0#Z#R#Z#M#Z#M#Z#Y#R#Y#R#Y#Y#J#5#J#Y#J#Y#1#J#1#J#1#1#U#1#E#1#E#1#3#U#3#U#3a.#A",
+"#6#C#6#C#6#C#8#C#F#C#F#C#F#H#F#H#F#F#F#F#t#F#K#F#K#F#K#F#K#t#K#K#K#K#K#K#I#K#I#K#O#K#O#K#O#x#O#x#O#x#O#Q#O#Q#O#Q#j#O#j#Q#j#O#q#O#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#w#q#q#q#w#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#D#y#D#z#y#y#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#q#q#w#q#q#q#w#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q"
+"#j#q#j#q#j#j#j#j#k#j#j#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#b.s.s.s#b.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p.p.p.r.p.q.p.q.p.q.p.q.p.q.o.q.o.q.q.q.o.q.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.t.t.u.t.w.t.v.t.v.t.v.t.v.w.v.w.v.w.v.w.v.v.x.v.x.v.x.v.x.v.x.x.x.x.x.x.x.x.A.x.A.x.A.x.A.x.A.z.A.za#.z.A.A#W.z#W.A#W.A#W#W#W#W#W#W#W#W#T#W#X#W#X#W#X#T#X#4#X#4#X#4#P#4#P#X#Z#X#Z#P#Z#P#Z#Z#Z#Z#R#Z#M#Z#R#Z#Y#R#Y#R#Y#R#J#5#J#5#J#Y#1#J#1#J#1#1#U#1#U#1#U#1#3#U#3a.",
+"aa#C#9#C#C#C#C#C#C#F#C#F#C#F#C#F#p#F#H#F#H#F#H#F#F#t#H#K#F#K#F#K#t#K#t#K#K#K#K#K#K#x#K#x#K#I#K#Q#K#O#K#O#x#O#x#O#Q#O#Q#O#Q#j#Q#j#Q#j#Q#j#j#q#k#q#j#q#k#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#z#q#y#q#z#q#y#q#z#q#z#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#k#q#j#q#k#q#j#j#k"
+"#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#k.s#j.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.r.s.p.p.r.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.r.q.o.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.t.t.t.u.t.u.t.u.t.u.t.v.t.v.t.v.t.v.w.v.v.v.w.v.v.v.v.x.v.x.v.x.v.x.v.x.x.x.x.y.x.y.x.A.x.A.x.A.x.A.x.A.z.A.za#.Aa#.A#W.A#W.A#W.A#W.A#W#W#W#W#V#W#W#W#X#W#X#W#X#W#X#T#X#4#X#4#X#X#P#X#Z#X#Z#X#Z#P#Z#P#Z#Z#Z#Z#M#Z#M#Z#Y#Z#Y#R#Y#5#Y#5#J#Y#J#Y#1#Y#1#J#1#J#1#1#E#1#U#1#3#1#3#U#3a.#3a.#A",
+"#C#C#6#C#6#C#F#C#F#C#F#C#F#C#F#F#F#H#F#F#F#F#K#F#K#F#K#F#K#F#K#K#K#K#2#K#K#K#I#K#I#K#O#K#O#K#O#x#O#x#O#Q#O#Q#j#Q#j#Q#j#O#j#Q#j#j#q#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#w#q#q#q#w#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#q#q#w#q#q#q#w#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q"
+"#j#q#j#j#j#j#k#j#j#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#j.s#b.s#b.s.s.s#b.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.r.p.p.p.r.p.q.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.u.t.t.t.v.t.v.t.v.t.v.t.v.w.v.w.v.w.v.v.v.w.x.v.x.v.x.v.x.x.x.x.x.x.x.x.y.x.z.x.A.x.A.x.A.z.A.z.A.z.A.za#.z#W.A#W.A#Wa##W#W#W#W#W#W#W#W#X#W#4#W#X#W#X#T#X#T#X#4#X#4#P#X#Z#4#Z#X#Z#P#Z#P#Z#Z#Z#Z#R#Z#R#Z#Y#Z#Y#R#Y#R#Y#5#J#5#J#Y#1#5#1#J#1#J#1#1#U#1#U#1#3#U#3#U#3a.",
+"aa#C#9#C#C#C#C#6#C#C#C#F#C#F#C#F#C#F#H#F#H#F#H#F#H#F#F#K#H#K#F#K#F#K#t#K#K#K#K#K#K#K#K#x#K#x#K#O#K#Q#x#O#x#O#x#O#x#O#Q#j#Q#j#Q#j#Q#j#Q#j#Q#j#j#q#k#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#z#q#y#q#z#q#y#q#z#q#z#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#k#q#j#q#k#q#j#j#k#j#k"
+"#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#k.s#j.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.p.r.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.q.q.o.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.t.u.t.t.t.u.t.u.t.v.t.v.t.v.t.v.t.v.w.v.w.v.v.v.v.v.v.x.v.x.v.x.v.x.v.x.x.y.x.x.x.y.x.A.x.A.x.A.x.A.x.A.za#.A.A.za#.A#W.A#W.A#W.A#W#W#W#W#W#W#W#Wab#W#X#W#X#W#X#W#X#4#X#4#X#X#X#4#P#X#P#X#Z#X#Z#P#Z#Z#Z#Z#0#Z#M#Z#Y#Z#Y#R#Y#R#Y#R#Y#Y#J#5#J#Y#1#Y#1#J#1#J#1#1#U#1#E#1#3#1#3#U#3#U#3a.#A",
+"#6#C#C#C#6#C#8#C#F#C#F#C#F#C#F#7#F#F#F#H#F#F#F#F#K#F#K#F#K#t#K#t#K#K#K#K#2#K#K#K#I#K#O#K#O#K#O#K#O#x#O#x#O#Q#O#Q#j#O#j#Q#j#O#j#O#q#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#w#q#q#q#w#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#q#q#w#q#q#q#w#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q"
+"#j#q#j#j#k#j#j#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#b.s#b.s.s.s#b.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.r.p.p.p.r.p.r.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.o.q.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.t.t.u.t.v.t.v.t.v.t.v.t.v.w.v.w.v.v.v.w.x.v.x.v.x.v.x.v.x.x.x.x.x.x.x.x.x.x.A.x.A.x.A.x.A.z.A.z.A.za#.z#W.A#W.z#Wa##W.A#W#W#W#W#W#W#W#W#T#W#X#W#X#W#X#T#X#4#X#4#X#4#P#4#P#X#Z#X#Z#P#Z#P#Z#Z#Z#Z#R#Z#Y#Z#Y#R#Y#R#Y#5#Y#5#J#5#J#5#1#Y#1#J#1#1#1#1#U#1a.#1a.#U#3#U#3a.",
+"aa#Caa#C#C#C#C#C#C#6#C#7#C#F#C#F#C#F#C#F#H#F#H#F#H#F#H#F#F#K#F#K#F#K#F#K#t#K#K#K#K#K#K#K#K#x#K#x#K#O#K#Q#x#O#x#O#x#O#x#O#Q#j#Q#j#Q#j#Q#j#Q#j#Q#q#j#q#k#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#z#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#k#q#j#q#k#q#j#j#k#j#k#j#k"
+"#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#k.s#j.s.s.s#b.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.r.p.p.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.q.q.o.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.u.t.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.w.v.v.v.v.v.v.v.v.x.v.x.v.x.v.x.x.x.x.x.x.y.x.y.x.A.x.A.x.A.x.A.z.A.z.A.za#.Aa#.A#W.A#W.A#Wa##W#W#W#W#W#Wab#W#L#W#X#W#X#W#Xac#X#4#X#4#X#4#X#X#P#X#Z#X#Z#X#Z#Z#Z#Z#Z#Z#R#Z#M#Z#Y#Z#Y#R#Y#R#Y#5#Y#5#J#Y#J#Y#1#J#1#J#1#1#1#1#E#1#E#1#3#U#3#U#3a.#3a.#A",
+"#C#9#6#C#6#C#6#C#8#C#F#C#F#C#F#H#F#H#F#F#F#F#t#F#K#F#K#F#K#F#K#t#K#K#K#K#K#K#I#K#x#K#I#K#O#K#O#x#O#x#O#x#O#x#O#Q#O#Q#j#O#j#Q#j#O#j#O#q#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#w#q#q#q#w#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#q#q#w#q#q#q#w#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q"
+"#j#j#k#j#j#j#k#j#j#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#j.s#b.s.s.s#b.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p.p.p.q.p.q.p.q.p.q.p.q.p.q.o.q.o.q.q.q.o.q.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.t.t.u.t.w.t.v.t.v.t.v.t.v.w.v.w.v.w.v.w.v.v.x.v.x.v.x.v.x.v.x.x.x.x.x.x.x.x.A.x.z.x.A.x.A.x.A.z.A.za#.za#.A#W.z#W.A#W.A#W#W#W#W#W#W#W#W#W#W#X#W#4#W#X#W#X#4#X#4#X#4#X#4#P#X#Z#4#Z#X#Z#P#Z#Z#Z#Z#Z#Z#M#Z#5#Z#Y#R#Y#5#Y#5#Y#5#J#5#J#Y#1#J#1#J#1#1#1#1#U#1#U#1#3#U#3a.#3a.",
+"aa#Caa#C#9#C#C#C#C#C#C#F#C#F#C#F#C#F#C#F#7#F#H#F#H#F#F#t#H#K#F#K#F#K#F#K#F#K#K#K#K#K#K#x#K#x#K#I#K#Q#K#O#K#O#x#O#x#O#x#O#Q#O#Q#j#Q#j#Q#j#Q#j#Q#j#Q#q#j#q#k#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#k#q#j#q#k#q#j#j#k#j#k#j#k#j#k"
+"#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#k.s#b.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.r.p.p.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.r.q.o.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.t.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.w.v.v.v.w.v.v.v.v.x.v.x.v.x.v.x.v.x.x.x.x.y.x.x.x.y.x.A.x.A.x.A.x.A.z.A.za#.Aa#.za#.A#W.A#Wa##Wa##W#W#W#W#V#W#W#W#X#W#X#W#X#W#X#T#X#4#X#4#X#X#P#X#Z#X#Z#X#Z#P#Z#P#Z#Z#Z#Z#M#Z#M#Z#Y#Z#Y#R#Y#5#Y#5#Y#Y#J#Y#1#Y#1#J#1#1#1#1#1#1#U#1#3#1#3#U#3a.#3a.#A#3#A",
+"#6#C#C#C#6#C#6#C#F#C#F#C#F#C#F#C#F#F#F#H#F#F#F#F#t#F#K#F#K#F#K#F#K#t#K#K#K#K#K#K#I#K#I#K#O#K#O#K#O#x#O#x#O#x#O#Q#O#Q#O#Q#j#O#j#Q#j#O#j#O#q#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#w#q#q#q#w#q#q#q#w#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#y#y#z#y#y#y#z#y#y#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#q#q#w#q#q#q#w#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#j"
+"#k#j#j#j#k#j#j#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#j.s#b.s.s.s#b.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p.p.p.r.p.q.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.u.t.t.t.v.t.v.t.v.t.v.t.v.w.v.w.v.w.v.v.v.w.x.v.x.v.x.v.x.x.x.x.x.x.x.x.y.x.z.x.A.x.A.x.A.z.A.za#.za#.za#.z#W.A#W.A#Wa##W#W#W#W#W#W#W#W#X#W#4#W#X#W#Xac#X#4#X#4#X#4#X#4#Z#4#Z#X#Z#P#Z#Z#Z#Z#Z#Z#R#Z#R#Z#Y#Z#Y#R#Y#R#Y#5#Y#5#J#Y#1#5#1#J#1#J#1#1#1#1#U#1#3#1a.#U#3a.#3a.",
+"aa#Caa#C#9#C#9#C#C#6#C#C#C#F#C#F#C#F#C#F#p#F#H#F#H#F#H#F#F#t#H#K#F#K#F#K#t#K#t#K#K#K#K#K#K#x#K#x#K#I#K#Q#K#O#K#O#x#O#x#O#x#O#Q#O#Q#j#Q#j#Q#j#Q#j#k#j#Q#q#j#q#k#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#z#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#k#q#j#q#k#q#j#q#k#j#k#j#k#j#k#j#k"
+"#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#k.s#b.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.r.s.p.p.r.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.o.q.q.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.t.u.t.t.t.u.t.u.t.v.t.v.t.v.t.v.t.v.w.v.w.v.v.v.v.v.v.x.v.x.v.x.v.x.v.x.x.y.x.x.x.y.x.A.x.A.x.A.x.A.x.A.za#.Aa#.za#.A#W.A#Wa##Wa##Wa##W#W#W#W#W#Wab#W#X#W#X#W#X#W#X#4#X#4#X#X#X#4#Z#X#Z#X#Z#X#Z#P#Z#Z#Z#Z#0#Z#R#Z#Y#Z#Y#Z#Y#R#Y#5#Y#5#Y#5#1#Y#1#Y#1#J#1#J#1#1#1#1#3#1#3#1#3#U#3a.#3a.#Aa.ad",
+"#C#9#6#C#C#C#6#C#8#C#F#C#F#C#F#C#F#7#F#F#F#H#F#F#F#F#K#F#K#F#K#F#K#F#K#K#K#K#2#K#K#K#I#K#I#K#O#K#O#K#O#x#O#x#O#x#O#Q#j#Q#O#Q#j#O#j#Q#j#O#q#O#q#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#w#q#q#q#w#q#q#q#w#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#w#q#q#q#w#q#q#q#w#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#j#j#j"
+"#j#j#k#j#j#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#j.s#b.s#b.s.s.s#b.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.r.p.p.p.r.p.r.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.o.t.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.t.t.u.t.v.t.v.t.v.t.v.t.v.w.v.w.v.v.v.w.x.v.x.v.x.v.x.v.x.x.x.x.x.x.x.x.x.x.A.x.A.x.A.x.A.za#.za#.za#.za#.A#W.z#Wa##Wa##W#W#W#W#W#Wac#W#4#W#X#W#X#W#X#T#X#4#X#4#X#4#Z#4#Z#X#Z#X#Z#P#Z#Z#Z#Z#Z#Z#R#Z#Y#Z#5#Z#Y#R#Y#5#Y#5#J#5#1#5#1#Y#1#J#1#1#1#1#U#1a.#1a.#1#3#U#3a.#3a.",
+"aa#Caa#Caa#C#C#C#C#C#C#6#C#7#C#F#C#F#C#F#C#F#H#F#H#F#H#F#H#F#F#K#H#K#F#K#F#K#t#K#t#K#K#K#K#K#K#x#K#x#K#O#K#Q#x#O#K#O#x#O#x#O#x#O#Q#O#Q#j#Q#j#Q#j#Q#j#k#j#k#q#j#q#k#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#k#q#j#q#k#j#k#j#k#j#k#j#k#j#k"
+"#j#k#j#k#j.s#j.s#j.s#j.s#j.s#k.s#j.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.r.s.p.p.r.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.q.q.o.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.q.u.t.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.w.v.v.v.v.v.v.v.v.x.v.x.v.x.v.x.x.x.x.x.x.y.x.y.x.A.x.A.x.A.x.A.xa#.za#.za#.Aa#.A#Wa##Wa##Wa##W#W#W#W#W#Wab#Wac#W#X#W#X#W#Xac#X#4#X#4#X#4ae#X#Z#X#Z#X#Z#X#Z#Z#Z#Z#Z#Z#Z#Z#Y#Z#Y#Z#Y#Z#Y#R#Y#5#Y#5#J#Y#J#Y#1#Y#1#J#1#1#1#1#E#1#U#1#3#1#3#U#3a.#3a.ad#3ad",
+"#C#9#C#9#6#C#6#C#6#C#8#C#F#C#F#C#F#p#F#H#F#F#F#H#F#F#F#F#K#F#K#F#K#t#K#t#K#K#K#K#2#K#K#K#I#K#O#K#O#K#O#K#O#x#O#x#O#x#O#Q#j#Q#j#Q#j#O#j#Q#j#j#q#O#q#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#w#q#q#q#w#q#q#q#w#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#w#q#q#q#w#q#q#q#w#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#j#j#j"
+"#k#j#j#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#j.s#b.s#b.s.s.s#b.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.r.p.p.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.o.q.o.q.q.q.o.q.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.t.t.u.t.w.t.v.t.v.t.v.t.v.w.v.w.v.w.v.w.v.v.x.v.x.v.x.v.x.v.x.x.x.x.x.x.x.x.A.x.z.x.A.x.A.xa#.za#.za#.za#.A#W.z#Wa##Wa##Wa##W#W#W#Wac#Wac#W#X#W#4#W#X#W#X#4#X#4#X#4#X#4#P#X#Z#4#Z#X#Z#P#Z#Z#Z#Z#Z#Z#5#Z#5#Z#Y#Z#Y#5#Y#5#Y#5#J#5#J#Y#1#5#1#1#1#1#1#1#U#1a.#1#3#1#3a.#3a.#3a.",
+"aa#Caa#Caa#C#9#C#C#C#C#C#C#6#C#8#C#F#C#F#C#F#C#F#H#F#H#F#H#t#H#t#F#K#F#K#F#K#F#K#t#K#K#K#K#K#K#K#K#x#K#x#K#O#K#Q#x#O#x#O#x#O#x#O#Q#j#Q#O#Q#j#Q#j#Q#j#Q#j#k#j#k#q#j#q#k#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#z#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#k#q#j#q#k#j#k#j#k#j#k#j#k#j#k#j#k"
+"#j#k#j.s#j.s#j.s#j.s#j.s#k.s#j.s.s.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.r.p.p.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.q.q.o.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.t.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.w.v.v.v.w.v.v.v.v.x.v.x.v.x.v.x.v.x.x.x.x.y.x.x.x.y.x.A.x.A.x.A.xa#.za#.za#.Aa#.za#a##W.A#Wa##Wa##W#W#W#Wab#Wac#W#X#W#X#W#Xac#Xac#X#4#X#4#X#X#X#4#Z#X#Z#X#Zae#Z#Z#Z#Z#Z#Z#0#Z#Y#Z#Y#Z#Y#R#Y#5#Y#5#Y#Y#J#5#1#Y#1#Y#1#1#1#1#1#1#U#1#3#1#3#1#3a.#3a.#3a.#Aa.ad",
+"#Caa#6#9#C#C#6#C#6#C#8#C#8#C#F#C#F#C#F#H#F#H#F#F#F#F#t#F#K#F#K#F#K#F#K#t#K#K#K#K#K#K#2#K#K#K#I#K#O#K#O#x#O#K#O#x#O#x#O#Q#O#Q#j#Q#j#Q#j#O#j#Q#j#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#w#q#q#q#w#q#q#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#w#q#q#q#w#q#q#q#w#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#j#j#j#k#j"
+"#j#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#j.s#b.s#b.s.s.s#b.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p.p.p.r.p.q.p.q.p.q.p.q.p.q.o.q.o.q.q.q.o.q.q.q.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.u.t.t.t.v.t.v.t.v.t.v.t.v.w.v.w.v.w.v.v.v.w.x.v.x.v.x.v.x.x.x.x.x.x.x.x.y.x.z.x.A.x.A.xa#.x.A.za#.za#.za#.z#Wa##Wa##Wa##W#W#W#Wac#Wac#Wac#W#4#W#X#W#Xac#X#4#X#4#X#4#X#4#Z#4#Z#X#Z#X#Z#Z#Z#Z#Z#Z#Z#Z#5#Z#Y#Z#Y#R#Y#5#Y#5#Y#5#J#5#1#5#1#Y#1#J#1#1#1#1#U#1a.#1a.#U#3a.#3a.#3a.",
+"aa#9aa#Caa#Caa#C#9#C#C#C#C#C#C#F#C#F#C#F#C#F#C#F#7#F#H#F#H#F#F#t#H#K#F#K#F#K#F#K#F#K#t#K#K#K#K#K#K#K#K#x#K#x#K#O#K#Q#x#O#x#O#x#O#x#O#Q#j#Q#j#Q#j#Q#j#Q#j#Q#j#k#j#k#q#j#q#k#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#z#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#k#q#j#q#k#q#j#q#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k"
+"#j.s#j.s#j.s#j.s#j.s#k.s#j.s.s.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.r.p.p.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.r.q.o.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.q.t.t.u.t.t.t.u.t.u.t.v.t.v.t.v.t.v.t.v.v.v.w.v.v.v.v.v.v.x.v.x.v.x.v.x.v.x.x.y.x.x.x.y.x.A.x.A.x.A.xa#.xa#.za#.Aa#.za#.A#W.A#Wa##Wa##Wa##W#Wac#Wac#Wab#W#X#W#Xac#Xac#X#4#X#4#X#X#X#4#Z#X#Z#X#Z#X#Z#P#Z#Z#Z#Z#0#Z#R#Z#Y#Z#Y#Z#Y#5#Y#5#Y#5#Y#5#1#Y#1#Y#1#J#1#1#1#1#1#1#3#1a.#1#3#U#3a.#3a.#3a.ad#3ad",
+"#Caa#C#9#6#C#C#C#6#C#6#C#F#C#F#C#F#C#F#C#F#F#F#H#F#F#F#F#t#F#K#F#K#F#K#F#K#t#K#K#K#K#K#K#I#K#x#K#I#K#O#K#O#x#O#x#O#x#O#x#O#Q#O#Q#j#O#j#Q#j#O#j#Q#j#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#w#q#q#q#w#q#q#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#z#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#j#j#j#k#j#j#j"
+"#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#j.s#b.s.s.s#b.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p.p.p.r.p.q.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.u.t.t.t.u.t.v.t.v.t.v.t.v.t.v.w.v.w.v.v.v.w.x.v.x.v.x.v.x.v.x.x.x.x.x.x.x.x.x.x.A.x.A.xa#.x.A.za#.za#.za#.za#a##Waf#Wa##Wa##W#W#W#W#W#Wac#W#4#W#X#W#Xac#X#4#X#4#X#4#X#4ae#4#Z#X#Z#X#Zae#Z#Z#Z#Z#Z#Z#R#Z#Y#Z#5#Z#Y#R#Y#5#Y#5#Y#5#1#5#1#Y#1#J#1#1#1#1#1#1a.#1a.#1#3#U#3a.#3a.#Aa.",
+"aa#Caa#Caa#Caa#C#9#C#C#C#C#6#C#C#C#F#C#F#C#F#C#F#p#F#H#F#H#F#H#F#F#t#H#K#F#K#F#K#t#K#t#K#K#K#K#K#K#x#K#x#K#I#K#Q#K#O#K#O#x#O#x#O#x#O#x#O#Q#j#Q#j#Q#j#Q#j#Q#j#Q#j#j#q#k#q#j#q#k#q#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#z#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#k#q#j#q#k#q#j#q#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j.s"
+"#j.s#j.s#j.s#j.s#k.s#j.s#k.s#b.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.r.s.p.p.r.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.o.q.q.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.t.u.t.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.w.v.v.v.v.v.v.v.v.x.v.x.v.x.v.x.x.x.x.x.x.y.x.y.x.A.x.A.xa#.xa#.xa#.za#.za#.Aa#.A#Wa##Wa##Wa##Wa#ac#W#W#Wab#Wac#W#X#W#X#W#Xac#X#4#X#4#X#4ae#X#Z#X#Z#X#Z#X#Z#Z#Z#Z#Z#Z#Z#Z#Y#Z#Y#Z#Y#Z#Y#5#Y#5#Y#5ag#Y#1#Y#1#Y#1#J#1#1#1#1#1#1a.#1#3#1#3#U#3a.#3a.ad#3ada.ad",
+"#Caa#Caa#C#9#6#C#6#C#6#C#8#C#F#C#F#C#F#C#F#7#F#F#F#H#F#F#F#F#K#F#K#F#K#F#K#F#K#t#K#K#2#K#K#K#I#K#I#K#O#K#O#K#O#x#O#x#O#x#O#x#O#Q#O#Q#j#O#j#Q#j#O#j#Q#j#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#w#q#q#q#w#q#q#q#w#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#j#j#j#k#j#j#j#k#j"
+"#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#j.s#b.s.s.s#b.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.r.p.p.p.r.p.r.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.o.q.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.t.t.u.t.v.t.v.t.v.t.v.t.v.w.v.w.v.w.v.w.v.v.x.v.x.v.x.v.x.v.x.x.x.x.x.x.x.x.A.x.z.x.A.x.A.xa#.za#.za#.za#af#W.z#Wa##Wa##Wa##W#W#W#Wac#Wac#W#X#W#4ac#Xac#X#4#X#4#X#4ae#4#Z#X#Z#4#Zae#Z#Z#Z#Z#Z#Z#Z#Z#5#Z#5#Z#Y#Z#Y#5#Y#5#Y#5ag#5#1#Y#1#5#1#1#1#1#1#1ah#1a.#1#3#1a.a.#3a.#3a.ada.",
+"aa#9aa#Caa#Caa#C#9#C#C#C#C#C#C#6#C#7#C#F#C#F#C#F#C#F#H#F#H#F#H#F#H#F#F#K#H#K#F#K#F#K#t#K#t#K#K#K#K#K#K#x#K#x#K#I#K#Q#K#O#K#O#x#O#x#O#x#O#x#O#Q#j#Q#j#Q#j#Q#j#Q#j#Q#j#j#q#k#q#j#q#k#q#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#z#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#k#q#j#q#k#q#j#q#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s"
+"#j.s#j.s#j.s#k.s#j.s#k.s#b.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.r.s.p.p.r.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.q.q.o.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.q.u.t.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.w.v.v.v.w.v.v.v.v.x.v.x.v.x.v.x.v.x.x.x.x.y.x.x.x.y.x.A.xa#.xa#.xa#.za#.za#.Aa#.za#a##Wa##Wa##Wa##W#W#W#Wab#Wac#Wab#W#X#W#Xac#Xac#X#4#X#4ae#Xae#4#Z#X#Z#X#Zae#Z#Z#Z#Z#Z#Zai#Z#5#Z#Y#Z#Y#Z#Y#5#Y#5#Y#Y#J#5#1#Y#1#Y#1#1#1#1#1#1#1#1#3#1#3#1#3a.#3a.#3a.#Aa.ad#3ad",
+"#Caa#Caa#C#9#C#9#6#C#6#C#6#C#8#C#F#C#F#C#F#p#F#H#F#F#F#H#F#F#F#F#K#F#K#F#K#t#K#F#K#K#K#K#2#K#K#K#I#K#I#K#O#K#O#K#O#x#O#x#O#x#O#Q#O#Q#O#Q#j#O#j#Q#j#O#j#Q#j#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#w#q#q#q#w#q#q#q#w#q#z#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#w#q#q#q#w#q#q#q#w#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#j#j#j#k#j#j#j#k#j#k#j"
+"#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#j.s#b.s.s.s#b.s.s.s#b.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.r.p.p.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.o.q.o.q.q.q.o.q.q.t.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.u.t.t.t.v.t.v.t.v.t.v.t.v.w.v.w.v.w.v.v.v.w.x.v.x.v.x.v.x.x.x.x.x.x.x.x.y.x.z.x.A.x.A.xa#.xa#.za#.za#.za#.z#Wa##Wa##Wa##W#W#W#Wac#Wac#Wac#W#4ac#Xac#Xac#X#4#X#4ae#4ae#4#Z#4#Z#X#Z#X#Z#Z#Z#Z#Z#Zaj#Z#5#Z#Y#Z#5aj#Y#5#Y#5#Y#5#J#5#1#5#1#Y#1#1#1#1#1#1#U#1a.#1a.ah#3a.#3a.aka.ada.",
+"aa#9aa#9aa#Caa#Caa#C#9#C#C#C#C#C#C#6#C#8#C#F#C#F#C#F#C#F#H#F#H#F#H#F#H#F#F#K#H#K#F#K#F#K#t#K#t#K#K#K#K#K#K#x#K#x#K#I#K#Q#K#O#K#O#x#O#x#O#x#O#x#O#Q#j#Q#j#Q#j#Q#j#Q#j#Q#j#k#j#k#q#j#q#k#q#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#z#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#k#q#j#q#k#q#j#q#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s"
+"#j.s#j.s#j.s#j.s#k.s#b.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.r.s.p.p.r.p.p.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.q.q.o.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.t.t.t.u.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.v.v.w.v.v.v.v.v.v.x.v.x.v.x.v.x.v.x.x.y.x.x.x.y.x.A.xa#.xa#.xa#.xa#.za#.Aa#.za#a##Wa##Wa##Wa##Wa##W#Wac#Wac#Wab#W#X#W#Xac#Xac#X#4#X#4ae#4ae#4ae#X#Z#X#Zae#Zae#Z#Z#Z#Zaj#Zaj#Z#Y#Z#Y#Z#Y#5#Y#5#Y#5#Y#5#1#Y#1#Y#1ag#1#1#1#1#1#1#3#1a.#1#3ah#3a.#3a.#3a.ad#3ad#3ad",
+"#9aa#Caa#Caa#6#C#C#C#6#C#6#C#8#C#F#C#F#C#F#C#F#H#F#H#F#F#F#F#t#F#K#F#K#F#K#F#K#t#K#t#K#K#K#K#2#K#K#K#I#K#I#K#O#K#O#K#O#x#O#x#O#x#O#Q#j#Q#O#Q#j#O#j#Q#j#O#j#O#j#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#j#j#j#k#j#j#j#k#j#k#j#k#j"
+"#k#j.s#j.s#j.s#j.s#j.s#j.s#j.s#b.s#b.s#b.s.s.s#b.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.p.p.r.p.p.p.q.p.q.p.q.p.q.p.q.p.q.o.q.o.q.q.q.o.q.q.q.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.u.t.t.t.v.t.v.t.v.t.v.t.v.w.v.w.v.w.v.v.v.w.x.v.x.v.x.v.x.v.x.x.x.x.x.x.x.x.x.x.A.x.A.xa#.xa#.za#.za#.za#.za#a##Waf#Wa##Wa##W#Wac#Wac#Wac#W#4#W#X#W#Xac#Xac#X#4ae#4ae#4ae#4#Z#X#Z#4#Zae#Z#Z#Z#Zaj#Zaj#Z#5#Z#5aj#Y#5#Y#5#Y#5#Y#5#1#5#1#Y#1#5#1#1#1#1#1#1a.#1a.#1#3#1#3a.#3a.#3a.ada.",
+"alaaaa#9aa#9aa#Caa#C#9#C#9#C#C#6#C#C#C#F#C#F#C#F#C#F#C#F#7#F#H#F#H#F#H#t#H#t#F#K#F#K#F#K#F#K#t#K#K#K#K#K#K#K#K#x#K#x#K#I#K#Q#x#O#K#O#x#O#x#O#x#O#x#O#Q#j#Q#j#Q#j#Q#j#Q#j#Q#j#k#j#k#q#j#q#k#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#z#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#y#q#z#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#k#q#j#q#k#q#j#q#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s"
+"#j.s#j.s#j.s#k.s#b.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.s.r.p.p.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.r.q.o.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.q.t.t.u.t.t.t.u.t.u.t.v.t.v.t.v.t.v.t.v.w.v.w.v.v.v.v.v.v.x.v.x.v.x.v.x.v.x.x.x.x.x.x.y.x.y.xa#.xa#.xa#.xa#.xa#.za#.za#a#a#a##Wa##Wa##Wa##Wa#ac#Wac#Wab#Wac#W#Xac#Xac#Xac#X#4ae#4#X#4ae#X#Z#X#Zae#Zae#Z#Z#Z#Z#Z#Z#Z#Z#Y#Z#Y#Z#Yaj#Y#5#Y#5#Y#5ag#Y#1#5#1#Y#1ag#1#1#1#1ah#1a.#1#3#1#3a.#3a.#3a.aka.ada.adakad",
+"#9aa#9aa#Caa#C#9#6#C#C#C#6#C#6#C#F#C#F#C#F#C#F#C#F#F#F#H#F#F#F#F#t#F#K#F#K#F#K#F#K#t#K#K#K#K#K#K#2#K#K#K#I#K#I#K#O#K#O#K#O#x#O#x#O#x#O#Q#j#Q#j#Q#j#O#j#Q#j#O#j#O#j#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#z#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#j#j#j#k#j#j#j#k#j#k#j#k#j#k#j"
+".s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#b.s#b.s.s.s#b.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p.p.p.r.p.q.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.q.t.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.t.t.u.t.v.t.v.t.v.t.v.t.v.w.v.w.v.w.v.w.v.v.x.v.x.v.x.v.x.v.x.x.x.x.x.x.x.x.A.x.z.xa#.xa#.xa#.za#.za#.za#af#Waf#Wa##Wa##Wa#ac#Wac#Wac#Wac#W#X#W#4ac#Xac#X#4#X#4#X#4ae#4#Z#X#Z#4#Zae#Z#Z#Z#Z#Z#Z#Z#Z#5#Z#5#Z#Y#Z#Y#5#Y#5#Y#5ag#5#1#5#1#5#1#1#1#1#1#1ah#1a.#1a.#1a.a.#3a.#3a.aka.ada.",
+"aaaaal#9aa#Caa#Caa#Caa#C#C#C#C#C#C#6#C#C#C#F#C#F#C#F#C#F#p#F#H#F#H#F#H#F#F#t#H#K#F#K#F#K#F#K#F#K#t#K#K#K#K#K#K#K#K#x#K#x#K#O#K#Q#x#O#x#O#x#O#x#O#x#O#x#O#Q#j#Q#j#Q#j#Q#j#Q#j#Q#j#k#j#k#q#j#q#k#q#j#q#k#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#k#q#j#q#k#q#j#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s"
+"#j.s#j.s#k.s#b.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.s.r.p.p.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.o.q.q.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.t.u.t.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.w.v.v.v.w.v.v.v.v.x.v.x.v.x.v.x.v.x.x.x.x.y.x.y.xam.xa#.xa#.xa#.xa#.za#.za#a#a#afa#a##Wa##Wa##Wa#ac#Wac#Wab#Wac#Wabac#Xac#Xac#Xac#X#4#X#4ae#Xae#4#Z#X#Z#X#Zae#Z#Z#Z#Z#Z#Zai#Z#5#Z#Yaj#Yaj#Y#5#Y#5ag#5ag#5#1#Y#1#Y#1#1#1#1#1#1#1#1#3#1#3#1#3a.#3a.#3a.aka.ad#3adakad",
+"#9aa#Caa#Caa#Caa#C#9#6#C#6#C#6#C#8#C#F#C#F#C#F#C#F#7#F#F#F#H#F#F#F#F#t#F#K#F#K#F#K#F#K#t#K#K#K#K#K#K#I#K#x#K#I#K#O#K#O#x#O#K#O#x#O#x#O#x#O#Q#j#Q#j#Q#j#O#j#Q#j#O#j#Q#j#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#j#j#j#k#j#j#j#k#j#k#j#k#j#k#j.s#j"
+".s#j.s#j.s#j.s#j.s#j.s#j.s#b.s#b.s.s.s#b.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p.p.p.r.p.q.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.o.q.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.t.t.u.t.w.t.v.t.v.t.v.t.v.w.v.w.v.w.v.w.v.v.x.w.x.v.x.v.x.v.x.x.x.x.x.x.x.x.y.x.z.xa#.xa#.xa#.xa#.za#.za#afa#af#Wa##Wa##Wa#ac#Wac#Wac#Wac#Wac#W#4ac#Xac#Xac#X#4#X#4ae#4ae#4#Z#4#Zae#Zae#Z#Z#Z#Z#Z#Zaj#Z#5#Z#Y#Z#5aj#Y#5#Y#5ag#5ag#5#1#5#1ag#1#1#1#1#1#1ah#1a.#1a.ah#3a.#3a.aka.ada.ada.",
+"anaaaaaaaa#9aa#Caa#Caa#C#9#C#C#C#C#C#C#6#C#7#C#F#C#F#C#F#C#F#H#F#H#F#H#F#H#F#F#t#H#K#F#K#F#K#t#K#t#K#t#K#K#K#K#x#K#K#K#x#K#x#K#O#K#Q#x#O#x#O#x#O#x#O#x#j#x#O#Q#j#Q#j#Q#j#Q#j#Q#j#Q#j#k#j#k#q#j#q#k#q#j#q#k#q#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#k#q#j#q#k#q#j#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s"
+"#j.s#k.s#b.s.s.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.r.p.p.p.r.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.q.q.o.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.q.u.t.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.w.v.v.v.w.v.v.v.v.x.v.x.v.x.v.x.v.x.x.x.x.y.x.x.xam.xa#.xa#.xa#.xa#.xa#.za#a#a#afa#a##Wa##Wa##Wa#aca#ac#Wac#Wac#Wabac#Xac#Xac#Xac#Xac#X#4ae#4ae#4ae#X#Z#X#Zae#Zae#Z#Z#Z#Zaj#Zaj#Z#Y#Z#Y#Z#Yaj#Y#5#Y#5#Y#5#1#Y#1#Y#1ag#1#1#1#1#1#1ah#1a.#1#3ah#3a.#3a.#3a.ad#3ada.adakad",
+"#9aa#9aa#Caa#Caa#C#9#C#9#6#C#6#C#6#C#8#C#F#C#F#C#F#C#F#7#F#F#F#H#F#F#F#F#K#F#K#F#K#F#K#F#K#t#K#K#K#K#K#K#I#K#x#K#I#K#O#K#O#x#O#x#O#x#O#x#O#x#O#Q#j#Q#j#Q#j#O#j#Q#j#O#j#Q#j#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#z#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#j#j#j#k#j#j#j#k#j#k#j#k#j#k#j.s#j.s#j"
+".s#j.s#j.s#j.s#j.s#j.s#b.s#b.s.s.s#b.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p.p.p.r.p.r.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.o.q.q.t.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.u.t.t.t.v.t.v.t.v.t.v.t.v.w.v.w.v.w.v.v.v.w.x.v.x.v.x.v.x.v.x.x.x.x.x.x.x.x.x.xa#.xa#.xa#.xa#.za#.za#afa#afa#a##Waf#Wa#aca#ac#Wac#Wac#Wac#W#4ac#Xac#4ac#Xac#X#4ae#4ae#4ae#4#Zae#Zao#Zae#Z#Z#Z#Zaj#Zaj#Z#5#Z#5aj#Yaj#Y#5#Y#5#Y#5#1#5#1ag#1ap#1#1#1#1#1#1a.#1a.ah#3aha.a.#3a.aka.ada.adaq",
+"alaaalaaaa#9aa#9aa#Caa#Caa#C#9#C#C#C#C#C#C#6#C#8#C#F#C#F#C#F#C#F#H#F#H#F#H#F#H#F#F#t#H#K#F#K#F#K#t#K#t#K#t#K#K#K#K#x#K#x#K#x#K#x#K#O#K#Q#x#O#x#O#x#O#x#O#x#j#x#O#Q#j#Q#j#Q#j#Q#j#k#j#Q#j#k#j#k#q#j#q#k#q#j#q#k#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#k#q#j#q#k#q#j#q#k#q#j#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#j.s"
+"#k.s#j.s.s.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.r.s.p.p.r.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.q.q.o.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.t.t.t.u.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.v.v.w.v.v.v.v.v.v.x.v.x.v.x.v.x.v.x.x.y.x.x.xam.xam.xa#.xa#.xa#.xa#.za#afa#afa#a#a#a##Wa##Wa#aca#aca#ac#Wac#Wabacacac#Xac#Xac#Xac#X#4ae#4ae#4ae#X#Z#X#Zae#Zae#Z#Z#Z#Zaj#Zaj#Z#Y#Z#Y#Z#Yaj#Y#5#Y#5#Y#5ag#Y#1#5#1ag#1ag#1#1#1#1ah#1a.#1#3ah#3ah#3a.#3a.aka.ada.adakadadad",
+"aaaa#9aa#9aa#Caa#Caa#6#C#C#C#6#C#6#C#8#C#8#C#F#C#F#C#F#H#F#H#F#F#F#H#F#F#F#F#K#F#K#F#K#F#K#F#K#t#K#K#K#K#K#K#I#K#x#K#I#K#O#K#O#x#O#x#O#x#O#x#O#x#O#Q#j#Q#j#Q#j#O#j#Q#j#O#j#Q#j#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#y#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#j#j#j#j#j#k#j#j#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j"
+".s#j.s#j.s#j.s#j.s#b.s#b.s.s.s#b.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.r.p.p.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.o.q.o.q.q.q.o.q.q.q.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.u.t.t.t.v.t.v.t.v.t.v.t.v.t.v.w.v.w.v.v.v.w.v.v.x.v.x.v.x.v.x.x.x.x.x.x.x.x.x.xa#.xa#.xa#.xa#.xa#.za#afa#afa#a##Waf#Wa#aca#aca#ac#Wac#Wac#Wacac#Xac#4ac#Xac#X#4ae#4ae#4ae#4#Zao#Zao#Zae#Zae#Z#Zaj#Zaj#Z#5#Z#5aj#Yaj#Y#5#Y#5#Y#5ag#5#1#5#1#5#1ag#1#1#1#1ah#1a.#1a.#1a.ah#3a.#3a.aka.adaqadaq",
+"anaaaaaaalaaaa#9aa#9aa#Caa#C#9#C#9#C#C#C#C#C#C#F#C#F#C#F#C#F#C#F#C#F#H#F#H#F#H#F#H#F#F#K#H#K#F#K#F#K#t#K#t#K#K#K#K#K#K#x#K#x#K#x#K#x#K#O#K#Q#x#O#x#O#x#O#x#O#x#j#x#O#Q#j#Q#j#Q#j#Q#j#k#j#Q#j#k#j#k#j#j#q#k#q#j#q#k#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#k#q#j#q#k#q#j#q#k#j#j#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#j.s#k.s"
+"#j.s.s.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.r.s.p.p.r.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.q.q.o.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.q.t.t.u.t.t.t.u.t.u.t.v.t.v.t.v.t.v.t.v.w.v.w.v.v.v.v.v.v.v.v.x.v.x.v.x.v.x.x.x.x.x.xam.xam.xa#.xa#.xa#.xa#.xa#afa#afa#a#a#afa#a##Wa#aca#aca#ac#Wac#Wabacacacabac#Xac#Xac#Xacae#4ae#4ae#Xae#4#Zae#Zae#Zae#Z#Zaj#Zaj#Zai#Z#5#Z#Yaj#Yaj#Y#5#Y#5ag#5ag#5#1#Y#1ag#1#1#1#1ah#1ah#1#3#1a.#1#3a.#3a.aka.aka.adakadakadadad",
+"aaaa#9aa#9aa#9aa#Caa#C#9#6#C#C#C#6#C#6#C#F#C#F#C#F#C#F#C#F#H#F#H#F#F#F#F#t#F#t#F#K#F#K#F#K#t#K#t#K#K#K#K#2#K#K#K#I#K#x#K#I#K#O#K#O#x#O#x#O#x#O#x#O#x#O#Q#j#Q#j#Q#j#O#j#Q#j#j#j#Q#j#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#j#k#j#j#j#k#j#j#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j"
+".s#j.s#j.s#j.s#b.s#b.s.s.s#b.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.r.p.p.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.o.q.q.q.q.t.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.t.t.u.t.v.t.v.t.v.t.v.t.v.w.v.w.v.w.v.w.v.v.x.v.x.v.x.v.x.v.x.x.x.x.x.x.x.xam.xaf.xa#.xa#.xa#.za#afa#afa#afa#af#Wa#aca##Wa#ac#Wac#Wac#Wacacacac#4ac#Xac#Xacae#4ae#4ae#4ae#4#Z#4#Zae#Zae#Z#Zaj#Zaj#Zaj#Z#5#Z#Yaj#5aj#Y#5#Y#5ag#5ag#5#1#5#1ag#1#1#1#1ah#1ah#1a.#1a.ah#3a.#3a.aka.aka.ada.adak",
+"anaaanaaaaaaal#9aa#Caa#Caa#Caa#C#9#C#9#C#C#6#C#C#C#F#C#F#C#F#C#F#C#F#7#F#H#F#H#F#H#t#H#t#F#K#H#K#F#K#F#K#t#K#t#K#K#K#K#K#K#x#K#x#K#x#K#x#K#O#K#Q#x#O#x#O#x#O#x#O#x#j#x#j#Q#j#Q#j#Q#j#Q#j#k#j#Q#j#k#j#k#j#j#q#k#q#j#q#k#q#j#q#k#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#k#q#j#q#k#q#j#q#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#j.s#k.s#j.s"
+".s.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.r.s.p.p.r.p.r.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.r.q.o.q.q.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.t.u.t.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.w.v.v.v.w.v.v.v.v.x.v.x.v.x.v.x.v.x.x.x.xam.xar.xam.xa#.xa#.xa#.xa#ara#afa#a#a#afa#a##Wa#aca#aca#aca#ac#Wacacac#Wabac#Xac#Xac#Xacae#4ae#4ae#4ae#4aeae#Zae#Zae#Zaeaj#Zaj#Zaj#Zaj#Z#Yaj#Yaj#Yaj#Y#5ag#5ag#5#1#Y#1#Y#1ag#1#1#1#1ah#1ah#1a.#1#3ah#3a.#3a.aka.ak#3ada.adakadadas",
+"aaaaaaaa#9aa#Caa#Caa#Caa#C#9#6#C#C#C#6#C#6#C#F#C#F#C#F#C#F#C#F#H#F#H#F#F#F#F#t#F#K#F#K#F#K#F#K#t#K#t#K#K#K#K#2#K#K#K#I#K#I#K#I#K#O#K#O#x#O#x#O#x#O#x#O#x#O#Q#j#Q#j#Q#j#O#j#Q#j#j#j#Q#j#j#j#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#j#k#j#j#j#k#j#j#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j"
+".s#j.s#j.s#b.s#b.s.s.s#b.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.p.p.r.p.p.p.r.p.q.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.o.t.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.t.t.u.t.w.t.v.t.v.t.v.t.v.t.v.w.v.w.v.w.v.v.v.w.x.v.x.v.x.v.x.v.x.x.x.x.x.xam.xaf.xa#.xa#.xa#.xa#afa#afa#afa#afa#a#acaf#Wa#aca#ac#Wac#Wacacacac#4ac#Xac#4acaeacae#4ae#4ae#4ae#4#Zae#Zao#Zae#Z#Z#Z#Zaj#Zaj#Z#5#Z#5aj#Yaj#Y#5ag#5ag#5#1#5#1ag#1ap#1#1ah#1ah#1ah#1a.ah#3aha.a.aka.aka.ada.adaqadaq",
+"anaaanaaanaaaaaaaa#9aa#Caa#Caa#Caa#C#C#C#C#C#C#6#C#C#C#F#C#F#C#F#C#F#p#F#H#F#H#F#H#F#H#t#H#t#F#K#H#K#F#K#F#K#t#K#t#K#K#K#K#K#K#x#K#x#K#x#K#x#K#O#K#Q#x#O#x#O#x#O#x#O#x#j#x#j#Q#j#Q#j#Q#j#Q#j#k#j#Q#j#k#j#k#j#k#j#k#q#j#q#k#q#j#q#k#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#k#q#j#q#k#q#j#q#k#q#j#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#j.s#k.s#j.s.s.s"
+".s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.r.s.p.p.r.p.p.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.r.q.o.q.q.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.q.u.t.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.w.v.v.v.w.v.v.v.v.v.v.x.v.x.v.x.v.x.v.x.xam.xar.xam.xa#.xa#.xa#.xa#ara#afa#afa#afa#a#a#a#aca#aca#aca#ac#Wac#Wac#Wabacacac#Xac#Xacaeacae#4ae#4ae#4aeae#Zae#Zae#Zae#Z#Z#Z#Zaj#Zaj#Z#Yaj#Yaj#Yaj#Y#5ag#5ag#5ag#Y#1#5#1ag#1ag#1#1#1#1ah#1a.#1#3ah#3ah#3a.#3a.aka.ada.adakadakadadas",
+"aaaaaaaaaaaa#9aa#Caa#Caa#C#9#C#9#6#C#6#C#6#C#8#C#F#C#F#C#F#C#F#7#F#F#F#H#F#F#F#F#t#F#K#F#K#F#K#F#K#t#K#t#K#K#K#K#2#K#K#K#I#K#I#K#I#K#O#K#O#x#O#x#O#x#O#x#O#x#O#Q#j#Q#j#Q#j#O#j#Q#j#j#j#Q#j#j#j#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#w#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#j#j#j#k#j#j#j#k#j#j#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#j"
+".s#j.s#b.s#b.s.s.s#b.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p.p.p.r.p.q.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.o.q.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.t.t.u.t.t.t.v.t.v.t.v.t.v.t.v.w.v.w.v.w.v.v.v.w.x.v.x.v.x.v.x.v.x.x.x.x.x.xar.xar.xa#.xa#.xa#.xa#ara#afa#afa#afa#a#acaf#Wa#aca#aca#ac#Wacacacacacac#Xac#4acaeacae#4ae#4ae#4ae#4#Zao#Zao#Zae#Zae#Z#Zaj#Zaj#Zaj#Z#5aj#Yaj#Y#5ag#5ag#5ag#5#1ap#1ap#1ag#1#1#1#1ah#1a.aha.aha.ah#3a.aka.aka.adaqadaqadad",
+"ataaanaaalaaalaaaa#9aa#9aa#Caa#Caa#C#9#C#C#C#C#C#C#6#C#7#C#F#C#F#C#F#C#F#p#F#H#F#H#F#H#F#H#t#H#t#F#K#F#K#F#K#F#K#t#K#t#K#K#K#K#K#K#x#K#x#K#x#K#x#K#O#K#Q#x#O#x#O#x#O#x#O#x#j#x#j#Q#j#Q#j#Q#j#Q#j#k#j#Q#j#k#j#k#j#k#j#k#j#j#q#k#q#j#q#k#q#j#q#k#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#k#q#j#q#k#q#j#q#k#q#j#q#k#j#j#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#k.s#b.s.s.s.s.s"
+".s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.r.s.p.p.r.p.p.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.o.q.q.q.o.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.q.u.t.t.t.u.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.v.v.w.v.v.v.v.v.v.x.v.x.v.x.v.x.v.x.xar.xar.xam.xam.xa#.xa#.xa#ara#ara#afa#afa#a#a#a#aca#aca#aca#aca#ac#Wac#Wabacacac#Xac#Xacaeacaeacae#4ae#4aeaeaeao#Zae#Zae#Zae#Z#Zaj#Zaj#Zaiaj#5aj#Yaj#Yaj#Y#5#Y#5ag#5ag#5#1ag#1ag#1ag#1#1ah#1ah#1#3aha.ah#3ah#3a.aka.aka.adakadakadadadadas",
+"aaauaaaaaaaa#9aa#9aa#Caa#Caa#C#9#C#9#6#C#6#C#6#C#8#C#F#C#F#C#F#C#F#7#F#F#F#H#F#F#F#F#t#F#K#F#K#F#K#F#K#t#K#t#K#K#K#K#2#K#K#K#I#K#I#K#I#K#O#K#O#x#O#x#O#x#O#x#O#x#O#Q#j#Q#j#Q#j#O#j#Q#j#j#j#Q#j#j#j#j#j#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#j#j#j#k#j#j#j#k#j#j#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j"
+".s#b.s#b.s.s.s#b.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p.p.p.r.p.q.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.o.q.q.t.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.u.t.t.t.v.t.v.t.v.t.v.t.v.t.v.w.v.w.v.w.v.w.v.v.x.v.x.v.x.v.x.v.x.x.x.xar.xar.xa#.xaf.xa#.xa#ara#afa#afa#afa#afa#af#Wa#aca#aca#ac#Wacacacacacacacac#4ac#Xac#Xacae#4ae#4ae#4aeao#Zao#Zae#Zae#Z#Zaj#Zaj#Zaj#Z#5aj#Yaj#5aj#Y#5#Y#5ag#5ag#5#1ap#1ag#1#1#1#1ah#1ah#1a.#1a.ah#3a.#3a.aka.aka.adaqadakadav",
+"ataaanaaanaaaaaaalaaaa#9aa#9aa#Caa#Caa#C#9#C#C#C#C#C#C#6#C#7#C#F#C#F#C#F#C#F#p#F#H#F#H#F#H#F#F#t#H#K#F#K#F#K#F#K#F#K#t#K#t#K#K#K#K#K#K#x#K#x#K#x#K#x#K#O#K#Q#x#O#x#O#x#O#x#O#x#j#x#j#x#j#Q#j#Q#j#Q#j#Q#j#Q#j#k#j#k#j#k#j#k#j#j#j#k#q#j#q#k#q#j#q#k#q#j#q#k#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#k#q#j#q#k#q#j#q#k#q#j#q#k#q#j#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#k.s#j.s#k.s#b.s.s.s.s.s.s.s"
+".s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.r.p.p.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.p.q.q.q.o.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.t.t.t.u.t.t.t.u.t.u.t.v.t.v.t.v.t.v.t.v.w.v.w.v.v.v.v.v.v.v.v.x.v.x.v.x.v.x.var.xar.xam.xam.xam.xa#.xa#ara#ara#afa#afa#a#a#afawa#aca#aca#aca#aca#ac#Wacacacacabac#Xacaeacaeacae#4ae#4aeaoae#4aeae#Zae#Zae#Zaeaj#Zaj#Zaj#Zaj#Z#Yaj#Yaj#Yaj#Y#5ag#5ag#5agag#1ag#1ag#1#1ah#1ah#1ah#1a.ah#3ah#3a.aka.aka.akaqadaqadakadadasadas",
+"aaauaaauaaaaaaaa#9aa#9aa#Caa#C#9#6#C#C#C#6#C#6#C#8#C#8#C#F#C#F#C#F#p#F#H#F#F#F#H#F#F#F#F#t#F#K#F#K#F#K#F#K#t#K#t#K#K#K#K#I#K#K#K#I#K#I#K#I#K#O#K#O#x#O#x#O#x#O#x#O#x#O#x#j#Q#j#Q#j#Q#j#Q#j#j#j#Q#j#j#j#k#j#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#j#j#j#j#j#k#j#j#j#k#j#j#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#b"
+".s#b.s.s.s#b.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p.p.p.r.p.q.p.q.p.q.p.q.p.q.p.q.p.q.o.q.o.q.q.q.o.q.q.q.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.u.t.t.t.u.t.v.t.v.t.v.t.v.t.v.w.v.w.v.w.v.w.v.v.x.v.x.v.x.v.x.var.x.x.xar.xar.xam.xaf.xa#.xa#ara#ara#afa#afa#afa#af#Wa#acafaca#aca#acacac#Wacacacac#4ac#Xac#Xacaeacae#4ae#4aeaoaeao#Zae#Zao#Zaeaj#Zaj#Zaj#Zajaj#5aj#5aj#Yaj#Y#5ag#5ag#5#1#5#1ag#1ap#1#1ah#1ah#1ah#1a.ah#3aha.a.aka.aka.ada.adaqadaqadad",
+"ataaataaanaaanaaaaaaalaaaa#9aa#9aa#Caa#Caa#C#9#C#C#C#C#C#C#B#C#8#C#F#C#F#C#F#C#F#H#F#H#F#H#F#H#F#F#t#H#K#F#K#F#K#t#K#F#K#t#K#t#K#K#K#K#K#K#x#K#x#K#x#K#x#K#O#K#Q#x#O#x#O#x#O#x#O#x#j#x#j#x#j#Q#j#Q#j#Q#j#Q#j#Q#j#k#j#k#j#k#j#k#j#k#j#k#j#j#q#k#q#j#q#k#q#j#q#k#q#j#q#k#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#k#q#j#q#k#q#j#q#k#q#j#q#k#q#j#q#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#k.s#j.s#k.s#b.s.s.s.s.s.s.s.s.s"
+".s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.r.p.p.p.r.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.q.q.o.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.q.t.t.u.t.t.t.u.t.u.t.v.t.v.t.v.t.v.t.v.t.v.w.v.v.v.w.v.v.v.v.x.v.x.v.x.v.x.var.xar.xam.xar.xam.xa#.xa#ara#ara#ara#afa#a#a#afawa#awa#aca#aca#aca#ac#Wacacacacabacacacaeac#Xacaeacae#4ae#4ae#4aeae#Zae#Zae#Zaeaj#Zaj#Zaj#Zaj#Z#Yaj#Yaj#Yaj#Y#5ag#5ag#5ag#Y#1ap#1ag#1agah#1ah#1ah#1ah#1#3ah#3ah#3a.aka.aka.ada.adakadakasadasadas",
+"aaanaaaaaaaaaaaa#9aa#9aa#Caa#Caa#C#9#6#C#C#C#6#C#6#C#F#C#F#C#F#C#F#C#F#p#F#H#F#F#F#H#F#F#F#F#K#F#K#F#K#F#K#F#K#t#K#t#K#K#K#K#I#K#x#K#I#K#I#K#I#K#O#K#O#x#O#x#O#x#O#x#O#x#O#x#j#Q#j#Q#j#Q#j#Q#j#j#j#Q#j#j#j#k#j#j#j#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#b.s#b"
+".s.s.s#b.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p.p.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.o.q.o.q.q.q.o.q.q.q.q.t.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.t.t.u.t.v.t.v.t.v.t.v.t.v.w.v.w.v.w.v.w.v.v.v.w.x.v.x.v.x.var.v.x.xar.xar.xam.xaf.xa#.xa#ara#ara#afa#afa#afa#afa#a#acafaca#aca#acacac#Wacacacacacac#Xac#4acaeacae#4ae#4aeaoaeao#Zae#Zao#Zaeaj#Zaj#Zaj#Zajaj#5aj#5aj#Yaj#Y#5ag#5ag#5ag#5#1ap#1ap#1agah#1ah#1ah#1a.aha.aha.ahaka.aka.aka.adaqadaqadadasad",
+"atauataaanaaanaaanaaaaaaal#9aa#Caa#Caa#Caa#C#9#C#9#C#C#C#C#C#C#F#C#F#C#F#C#F#C#F#C#F#H#F#H#F#H#F#H#F#F#t#H#K#F#K#F#K#t#K#t#K#t#K#t#K#K#K#K#K#K#x#K#x#K#x#K#x#K#I#K#Q#x#O#x#O#x#O#x#O#x#j#x#j#x#j#x#j#Q#j#Q#j#Q#j#Q#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#q#j#q#k#q#j#q#k#q#j#q#k#q#j#q#k#q#j#q#k#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#k#q#j#q#k#q#j#q#k#q#j#q#k#q#j#q#k#q#j#q#k#j#j#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#j.s#k.s#j.s#k.s#b.s.s.s.s.s.s.s.s.s.s.s"
+".s.s.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.r.p.p.p.r.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.q.q.o.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.q.t.t.u.t.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.w.v.v.v.w.v.v.v.v.x.v.x.v.x.v.x.var.var.xam.xar.xam.xam.xa#ara#ara#ara#afa#afa#afawa#awa#aca#aca#aca#aca#acacacacabacacac#Xac#Xacaeacaeacae#4ae#4aeaeaeao#Zae#Zaeajaeaj#Zaj#Zaj#Zaiaj#5aj#Yaj#Yajag#5ag#5ag#5ag#5#1ag#1ag#1ag#1#1ah#1ah#1#3aha.ah#3ah#3a.aka.aka.adakadaqadadasadasadas",
+"aaauaaanaaaaaaaaaaaa#9aa#Caa#Caa#Caa#C#9#6#C#C#C#6#C#6#C#F#C#F#C#F#C#F#C#F#H#F#H#F#F#F#H#t#F#F#F#K#F#K#F#K#F#K#F#K#t#K#t#K#K#K#K#I#K#x#K#I#K#I#K#I#K#O#K#O#x#O#x#O#x#O#x#O#x#O#x#j#Q#j#Q#j#Q#j#Q#j#O#j#Q#j#j#j#k#j#j#j#j#j#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#j#j#j#j#j#k#j#j#j#k#j#j#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#b.s#b.s.s"
+".s#b.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p.p.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.o.q.q.q.q.t.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.t.t.u.t.w.t.v.t.v.t.v.t.v.t.v.w.v.w.v.w.v.v.v.w.x.v.x.v.x.var.v.x.xar.xar.xar.xar.xa#.xa#ara#ara#ara#afa#afa#afa#afacafaca#aca#aca#ac#Wacacacacacac#4ac#4acaeacaeacae#4aeaoaeaoaeao#Zao#Zaeajaeaj#Zaj#Zajajajaj#5aj#Yaj#5ajag#5ag#5ag#5agap#1ap#1ag#1agah#1ah#1ahaha.aha.ah#3ahaka.aka.akaqadaqadakasavasad",
+"ataaataaataaanaaanaaalaaaaaaaa#9aa#Caa#Caa#Caa#C#C#C#C#C#C#6#C#C#C#F#C#F#C#F#C#F#C#F#C#F#H#F#H#F#H#F#H#F#F#t#H#K#F#K#F#K#t#K#t#K#t#K#t#K#K#K#K#K#K#x#K#x#K#x#K#x#K#I#K#Q#x#O#x#Q#x#O#x#O#x#j#x#O#x#j#x#j#Q#j#Q#j#Q#j#Q#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#q#j#q#k#q#j#q#k#q#j#q#k#q#j#q#k#q#j#q#k#q#j#q#k#q#j#q#k#q#j#q#k#q#j#q#k#q#j#q#k#q#j#q#k#q#j#q#k#q#j#q#k#q#j#q#k#q#j#q#k#q#j#q#k#j#j#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#k.s#j.s#k.s#b.s.s.s.s.s.s.s.s.s.s.s.s.s"
+".s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.r.p.p.p.r.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.q.q.o.q.q.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.q.u.t.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.t.v.v.v.w.v.v.v.v.v.v.x.var.v.x.var.var.xar.xar.xam.xam.xa#ara#ara#ara#ara#afa#afawa#awafawa#aca#aca#aca#acacacacacacacacabac#Xacaeacaeacae#4ae#4aeaeaeao#Zae#Zaeajaeajaeaj#Zaj#Zajajajaj#Yaj#Yajagajag#5ag#5ag#5agag#1ag#1ag#1#1ah#1ah#1ahaha.ah#3ah#3a.aka.aka.akaqadaqadakadadasadasadax",
+"aaataaauaaanaaaaaaaa#9aa#9aa#Caa#Caa#C#9#C#9#6#C#C#C#6#C#6#C#F#C#F#C#F#C#F#C#F#H#F#H#F#F#F#H#t#F#t#F#K#F#K#F#K#t#K#F#K#t#K#t#K#K#K#K#I#K#x#K#I#K#x#K#I#K#O#K#O#x#O#x#O#x#O#x#O#x#O#x#j#x#j#Q#j#Q#j#Q#j#Q#j#Q#j#j#j#k#j#j#j#k#j#j#j#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#b.s#b.s.s.s#b"
+".s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p.p.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.o.q.q.q.o.t.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.t.t.u.t.t.t.v.t.v.t.v.t.v.t.v.w.v.w.v.w.v.v.v.w.x.v.x.v.x.var.var.var.xar.xar.xar.xam.xafara#ara#ara#afa#afa#afa#afawafaca#aca#aca#aca#acacacacacacacac#4acaeacaeacae#4aeaoaeaoaeaoaeao#Zaeajaoajaeaj#Zaj#Zaj#Zajaj#5aj#5ajagajag#5ag#5agap#1ap#1ag#1ap#1#1ah#1ah#1ahaha.ah#3aha.a.aka.akaqakaqadaqadaqasadasad",
+"atauataaataaataaanaaalaaalaaaa#9aa#9aa#Caa#Caa#Caa#C#C#C#C#C#C#6#C#C#C#F#C#F#C#F#C#F#p#F#p#F#H#F#H#F#H#t#H#F#F#t#H#K#F#K#F#K#t#K#t#K#t#K#t#K#K#x#K#K#K#x#K#x#K#x#K#x#K#I#K#Q#x#O#x#Q#x#O#x#O#x#j#x#O#x#j#x#j#x#j#Q#j#Q#j#Q#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#j#q#k#q#j#q#k#q#j#q#k#q#j#q#k#q#j#q#k#q#j#q#k#q#j#q#k#q#j#q#k#q#j#q#k#q#j#q#k#q#j#q#k#q#j#q#k#q#j#q#k#j#j#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#k.s#j.s.s.s#b.s.s.s.s.s.s.s.s.s.s.s.s.s.s.p"
+".s.p.s.p.s.p.s.p.s.p.s.p.s.r.p.p.p.r.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.r.q.o.q.q.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.q.u.t.t.t.u.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.v.v.w.v.v.v.v.v.v.x.var.v.x.var.var.var.xar.xam.xam.xamara#ara#ara#ara#afa#afawa#awafawa#aca#aca#aca#acawacacacacacacabac#Xacaeacaeacaeacae#4aeaoaeaoaeae#Zaeajaeajaeaj#Zaj#Zajajajaj#Yaj#Yajagajag#5ag#5ag#5agag#1ap#1ag#1agah#1ah#1ahahahah#3ah#3ahaka.aka.akaqakaqadakadakasadasadasasax",
+"aaataaanaaauaaauaaaaaaaa#9aa#9aa#Caa#Caa#C#9#C#9#6#C#6#C#6#C#8#C#F#C#F#C#F#C#F#C#F#H#F#H#F#F#F#H#t#F#t#F#K#F#K#F#K#t#K#t#K#t#K#t#K#K#K#K#I#K#x#K#I#K#x#K#I#K#O#K#O#x#O#x#O#x#O#x#O#x#O#x#j#x#j#Q#j#Q#j#Q#j#Q#j#Q#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#b.s#b.s#b.s.s.s#b.s.s"
+".s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p.p.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.o.q.q.t.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.u.t.t.t.v.t.v.t.v.t.v.t.v.t.v.w.v.w.v.w.v.w.v.v.x.v.x.var.var.var.xar.xar.xar.xam.xafara#ara#ara#ara#afawafa#afawafawa#acafaca#aca#acacacacacacacacacacaeacaoacaeacaeaoae#4aeaoaeao#Zaeajaoajaeaj#Zaj#Zaj#Zajaj#5aj#5ajagajag#5ag#5agapagap#1ap#1ap#1agah#1ah#1ah#1a.aha.aha.ahaka.aka.aka.adaqadaqadakasadasas",
+"atauatauataaataaanaaanaaaaaaalaaaa#9aa#9aa#Caa#Caa#C#9#C#C#C#C#C#C#6#C#C#C#F#C#F#C#F#C#F#p#F#p#F#H#F#H#F#H#t#H#t#F#t#H#K#F#K#F#K#t#K#t#K#t#K#t#K#K#x#K#K#K#x#K#x#K#x#K#x#K#I#K#x#x#O#x#Q#x#O#x#O#x#j#x#O#x#j#x#j#x#j#x#j#Q#j#Q#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#j#j#k#q#j#q#k#q#j#q#k#q#j#q#k#q#j#q#k#q#j#q#k#q#j#q#k#q#j#j#k#j#j#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#k.s#j.s#k.s#j.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p"
+".s.p.s.p.s.p.s.p.s.p.s.r.p.p.p.r.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.r.q.o.q.q.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.q.t.t.t.t.u.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.w.v.w.v.v.v.v.v.v.v.var.var.var.var.var.xar.xamarar.xamara#ara#ara#ara#ara#afawa#awafawa#awa#aca#aca#acawacacacacacacabacacacaeacaeacaeacae#4aeaoaeaoaeaeaeaoajaeajaeajaeaj#Zajajajajaiaj#5aj#Yaj#Yajag#5ag#5agapagap#1ag#1agahagah#1ah#1ahah#3aha.ahakahaka.aka.akaqadakadaqasadasadasasasasay",
+"auataaataaanaaauaaauaaaaaaaa#9aa#9aa#Caa#Caa#C#C#C#C#6#C#6#C#6#C#8#C#F#C#F#C#F#C#F#C#F#H#F#H#F#F#F#H#t#F#t#F#K#F#K#F#K#t#K#t#K#t#K#t#K#K#K#K#I#K#x#K#I#K#x#K#I#K#I#K#O#x#O#x#O#x#O#x#O#x#O#x#j#x#j#x#j#Q#j#Q#j#Q#j#Q#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#j#j#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#b.s#b.s#b.s.s.s#b.s.s.s.s"
+".s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p.p.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.o.q.q.t.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.u.t.t.t.u.t.v.t.v.t.v.t.v.t.v.w.v.w.v.w.v.w.v.v.x.w.x.var.var.var.xar.xar.xar.xam.xafara#ara#ara#ara#afawafa#afawafawa#acafaca#aca#acawacacacacacacacacaeacaoacaeacaeacae#4aeaoaeaoaeao#Zao#Zaeajaeaj#Zaj#Zajajajaj#5aj#Yaj#5ajag#5ag#5ag#5agap#1ap#1agah#1ah#1ah#1ahaha.aha.ahakahaka.aka.akaqadaqadakasavasadasas",
+"atauatauatauataaataaanaaanaaaaaaalaaaa#9aa#9aa#Caa#Caa#C#9#C#C#C#C#C#C#6#C#C#C#F#C#F#C#F#C#F#p#F#p#F#H#F#H#F#H#t#H#t#F#t#H#K#F#K#F#K#t#K#t#K#t#K#t#K#K#x#K#K#K#x#K#x#K#x#K#x#K#x#K#x#x#O#x#Q#x#O#x#O#x#j#x#O#x#j#x#j#x#j#x#j#x#j#Q#j#k#j#Q#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#k.s#j.s#k.s#b.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p"
+".s.p.s.p.s.r.s.p.s.r.p.p.p.r.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.r.q.o.q.q.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.q.t.t.t.t.u.t.t.t.u.t.u.t.v.t.v.t.v.t.v.t.v.t.v.w.v.v.v.w.v.v.v.var.var.var.var.var.xar.xamarar.xamara#ara#ara#ara#ara#afawafawafawa#awa#aca#aca#acawacawacacacacabacacacaeacaeacaeacaeacaeaoaeaoaeaeaeaoajae#Zaeajaeaj#Zajajajajajajajaj#Yaj#Yajagajag#5agapagap#1ag#1agahagah#1ah#1ah#1ahaha.ah#3ahaka.aka.aka.akaqadaqasakasadasadasasaxasax",
+"auatauataaazaaanaaaaaaaaaaaa#9aa#9aa#9aa#Caa#Caa#6#C#C#C#6#C#6#C#6#C#8#C#F#C#F#C#F#C#F#C#F#H#F#H#F#F#F#H#t#F#t#F#K#F#K#F#K#t#K#t#K#t#K#t#K#K#K#K#I#K#x#K#I#K#x#K#I#K#I#K#O#x#O#x#O#x#O#x#O#x#O#x#j#x#j#x#j#x#j#Q#j#Q#j#Q#j#k#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#j#j#j#j#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#b.s.s.s#b.s.s.s#b.s.s.s.s.s.s"
+".s.s.p.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p.p.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.o.q.q.t.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.t.t.t.t.u.t.v.t.v.t.v.t.v.t.v.w.v.w.v.w.v.w.v.v.v.w.x.var.var.var.var.xar.xararar.xarara#ara#ara#ara#arawafa#afawafawafawafaca#aca#acawacacacacacacacacaAacaoacaeacaeacae#4aeaoaeaoaeao#Zao#Zaeajaeajaeaj#Zajajajajajaj#5aj#5ajagajag#5ag#5agap#1ap#1agahapah#1ah#1ahahahaha.ahakahaqa.aka.akaqakaqadaqasaqasadasadasas",
+"atazatauatauatauataaataaanaaanaaaaaaalaaaa#Caa#Caa#Caa#Caa#C#9#C#C#C#C#C#C#6#C#7#C#F#C#F#C#F#C#F#p#F#H#F#H#F#H#F#H#t#H#t#F#t#H#K#F#K#F#K#t#K#t#K#t#K#t#K#t#x#K#K#K#x#K#x#K#x#K#x#K#x#K#x#x#I#x#Q#x#O#x#Q#x#O#x#O#x#j#x#j#x#j#x#j#x#j#x#j.s#j#Q#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#k.s#j.s#k.s#b.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p"
+".s.p.s.r.s.p.s.r.p.p.p.r.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.r.q.o.q.q.q.q.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.q.t.t.u.t.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.w.v.v.v.waB.v.v.vaB.var.var.var.var.var.xamarararamaramara#ara#ara#ara#arawafawafawa#awafawa#aca#acawacawacacacacacacacacaCacaeacaeacaeacaeaoaeaoaeaoaeaoaeae#Zaeajaeajaeaj#Zaj#Zajajajaj#Yaj#Yajagajag#5agapagapagag#1ap#1agahagah#1ah#1ahahahah#3ah#3ahaka.aka.akaqakaqadakadakasadasadasasaxasaD",
+"auatauatauataaauaaanaaaaaaaaaaaa#9aa#Caa#Caa#Caa#C#9#6#C#C#C#6#C#6#C#B#C#8#C#F#C#F#C#F#p#F#p#F#H#F#H#F#F#F#H#t#F#t#F#K#F#K#F#K#t#K#t#K#t#K#t#K#K#K#K#x#K#x#K#I#K#x#K#I#K#I#K#O#x#O#x#O#x#O#x#O#x#O#x#j#x#j#x#j#x#j#x#j#Q#j#Q#j#k#j#Q#j#k#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#j#j#j#j#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#q#j#j#j#j#j#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#b.s#b.s.s.s#b.s.s.s#b.s.s.s.s.s.s.p.s"
+".p.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p.p.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.o.q.q.t.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.t.t.t.t.u.t.w.t.v.t.v.t.v.t.v.t.v.w.v.w.v.w.v.vaB.w.x.var.var.var.var.xar.xararar.xarara#arafara#ara#arawafa#afawafawafawafacawaca#acawacawacacacacacacaAacaoacaeacaeacaeacaeaoaeaoaeaoaeao#Zaeajaoajaeaj#Zajajajajajaj#5aj#5ajagajag#5ag#5agapagap#1apahapahagah#1ahahahaha.aha.aha.ahaka.akaqakaqadaqasaqasakasadasasasas",
+"aEatatazatauataaataaataaanaaanaaanaaaaaaal#9aa#Caa#Caa#Caa#Caa#C#9#C#C#C#C#C#C#B#C#7#C#F#C#F#C#F#C#F#p#F#H#F#H#F#H#F#H#t#H#t#F#t#H#K#F#K#F#K#t#K#t#K#t#K#t#K#t#x#K#K#K#x#K#x#K#x#K#x#K#x#K#x#x#I#x#Q#x#O#x#Q#x#O#x#O#x#j#x#j#x#j#x#j#x#j#x#j#x#j#x#j.s#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#k.s#j.s#k.s#j.s.s.s#b.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p"
+".s.r.s.p.s.r.p.p.p.r.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.r.q.o.q.q.q.o.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.q.t.t.u.t.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.w.v.v.v.waB.v.v.vaB.var.var.var.var.var.xararararamaramara#ara#ara#ara#arawafawafawa#awafawa#aca#acawacawacawacacacacacacaCacaCacaeacaeacaeaAaeaoaeaoaeaoaeae#Zaeajaeajaeajaeaj#Zajajajajaiaj#5ajagajagajag#5ag#5agapagap#1ag#1agah#1ah#1ahahahah#3aha.ahakahaka.akaqakaqadakadaqasadasadasasasasayasaF",
+"auatauataaataaataaauaaanaaaaaaaaaaaa#9aa#Caa#Caa#Caa#C#9#6#C#C#C#6#C#6#C#B#C#F#C#F#C#F#C#F#p#F#p#F#F#F#H#F#F#F#H#t#F#t#F#K#F#K#F#K#t#K#t#K#t#K#t#K#K#K#K#x#K#x#K#I#K#x#K#I#K#I#K#I#x#O#x#O#x#O#x#O#x#O#x#j#x#j#x#j#x#j#x#j#x#j#Q#j#k#j#Q#j#k#j#k#j#k#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#b.s#b.s.s.s#b.s.s.s#b.s.s.s.s.s.s.p.s.p.s"
+".p.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p.p.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.o.q.q.q.q.t.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.t.t.u.t.t.t.v.t.v.t.v.t.v.t.v.w.v.w.v.w.v.vaB.w.v.var.var.var.var.var.xararararararamarafara#ara#arawarawafawafawafawafawawacafacawacawacacacacacacaAacaAacaeacaoacaeacaeaoaeaoaeaoaeaoaeaoajaoajaeajaeajajajajajajajaj#5ajagajapajag#5agapagapagap#1ap#1agah#1ah#1ahahahaha.aha.ahakahaka.akaqakaqadaqadakasavasasasasaxas",
+"aEazaEatatauatauataaataaataaanaaalaaalaaaaaaal#9aa#Caa#Caa#Caa#C#C#C#C#C#C#C#C#C#C#B#C#H#C#F#C#F#C#F#C#F#p#F#H#F#H#F#H#F#H#t#H#t#F#t#H#K#F#K#H#K#t#K#t#K#t#K#t#K#t#x#K#K#K#x#K#x#K#x#K#x#K#x#K#x#x#I#x#x#x#O#x#Q#x#O#x#Q#x#j#x#j#x#j#x#j#x#j#x#j#x#j#x#j.s#j.s#j.s#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#k.s#j.s#k.s#b.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.s.r"
+".s.p.p.r.p.p.p.r.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.r.q.o.q.q.q.o.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.q.t.t.u.t.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.t.v.v.v.waB.vaB.vaB.var.var.var.var.var.vararararamarararamara#arawara#arawarawafawa#awafawawawa#acawacawacawacacacacacacaCacaAacaeacaeacaeaAaeaAaeaoaeaoaeaeaeaoajaeajaeajaeaj#Zajajajajaiaj#5ajagajagajag#5ag#5agapagap#1ag#1agahagah#1ahahahahahaha.ahakahaka.akaqakaqakaqadaqasakasadasasasasaxasaxasaD",
+"azatauatauataaataaataaauaaanaaaaaaaaaaaa#9aa#Caa#Caa#Caa#C#9#6#C#C#C#6#C#6#C#F#C#F#C#F#C#F#C#F#p#F#p#F#F#F#H#F#F#F#H#t#F#t#F#K#F#K#F#K#t#K#t#K#t#K#t#K#t#K#K#x#K#x#K#I#K#x#K#I#K#x#K#I#x#I#x#O#x#O#x#O#x#O#x#j#x#O#x#j#x#j#x#j#x#j#x#j#x#j#Q#j#k#j#k#j#k#j#k#j#k#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#b.s#b.s#b.s.s.s#b.s.s.s#b.s.s.s.s.s.s.p.s.p.s.p.s"
+".p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p.p.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.o.q.q.q.q.t.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.t.t.u.t.t.t.v.t.v.t.v.t.v.t.v.w.v.w.v.w.v.waB.waB.var.var.var.var.var.xararararararamarafara#ara#arawarawafawafawafawafawawacafacawacawacawacacacacaAacaAacaeacaoacaeacaeaAaeaoaeaoaeaoaeaoajaoajaeajaeajajajajajajajaj#5ajagajapajag#5agapagapagap#1ap#1agahapah#1ah#1ahahahaha.ahakahaqa.aka.akaqakaqadaqasaqasasasasasasaFas",
+"aEataEazatazatauatauataaataaataaanaaalaaalaaaaaaaa#9aa#Caa#Caa#Caa#C#C#C#C#C#C#C#C#C#C#B#C#H#C#F#C#F#C#F#C#F#p#F#p#F#H#F#H#F#H#t#H#t#F#t#H#t#F#K#H#K#t#K#t#K#t#K#t#K#t#K#t#K#K#x#K#x#K#x#K#x#K#x#K#x#x#x#x#x#x#I#x#Q#x#O#x#Q#x#j#x#k#x#j#x#j#x#j#x#j#x#j#x#j.s#j#x#j.s#j.s#j.s#j.s#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#k.s#j.s#k.s#j.s.s.s#b.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.r.s.p"
+".p.r.p.p.p.r.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.r.q.o.q.q.q.o.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.q.t.t.u.t.t.t.u.t.u.t.u.t.v.t.v.t.v.t.v.t.v.taB.w.v.waB.vaB.vaB.vaB.var.var.varaBar.vararararamarararamara#arawara#arawarawafawafawafawawawa#acawacawacawacawacacacacaCacaAacaCacaeacaeaAaeaAaeaoaeaoaeaeaeaoajaeajaeajaeajaeajajajajajajajajagajagajagajag#5agapagapagag#1apahagahagahahahahahaha.ahakahakahaka.akaqakaqadaqasakasakasasasasasasaxasaDasaD",
+"azatazatauatauataaataaanaaauaaauaaaaaaaa#9aa#9aa#Caa#Caa#Caa#C#9#6#C#C#C#6#C#6#C#F#C#F#C#F#C#F#C#F#p#F#p#F#H#F#H#F#F#F#H#t#F#t#F#K#F#K#F#K#t#K#t#K#t#K#t#K#t#K#K#x#K#x#K#I#K#x#K#I#K#x#K#I#x#I#x#O#x#O#x#O#x#O#x#j#x#O#x#j#x#j#x#j#x#j#x#j#x#j#x#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#b.s#b.s.s.s#b.s.s.s#b.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s"
+".p.s.p.s.p.s.p.p.p.p.p.p.r.p.p.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.o.q.q.q.q.t.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.t.t.u.t.t.t.v.t.v.t.v.t.v.t.v.t.v.waB.w.v.waB.waB.var.war.var.var.var.varararararararararara#ara#arawarawarawafawafawafawaGacafacawacawacawacacacacaAacaAacaAacaoacaeacaeaAaeaoaeaoaeaoaeaoaHaoajaeajaoajaHajajajajajajajajapajapajagajagapagapagapagap#1apahapahagah#1ahahahaha.ahaqahaqahaka.akaqakaqadaqasaqasadasadasasasasaFas",
+"aEataEatatazatazatauatauataaataaanaaanaaalaaalaaaaaaaa#9aa#Caa#Caa#Caa#C#C#C#C#C#C#C#C#C#C#B#C#H#C#F#C#F#C#F#C#F#p#F#p#F#H#F#H#F#H#t#H#t#F#t#H#t#F#K#H#K#t#K#t#K#t#K#t#K#t#K#t#K#K#x#K#x#K#x#K#x#K#x#K#x#x#x#x#x#x#I#x#x#x#O#x#Q#x#j#x#Q#x#j#x#j#x#j#x#j#x#j#x#j#x#j#x#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#k.s#j.s#k.s#j.s#k.s#b.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.r.s.p.p.r"
+".p.p.p.r.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.r.q.o.q.q.q.o.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.q.t.t.u.t.t.t.u.t.u.t.u.t.u.t.v.t.v.t.v.t.v.taB.w.v.waB.vaB.waB.vaB.var.var.varaBar.vararararamarararamaramarawarawarawarawarawafawafawawawawawawacawacawacawaAacacacaAacaAacaCacaeacaeaAaeaAaeaAaeaoaeaoaeaoaHaeajaeajaeajaeajajajajajajajajagajagajagajag#5agapagapagag#1apahagahagah#1ah#1ahahahahakahaqahakahaka.akaqakaqadakasaqasadasasasasasasaDasaFasaD",
+"azaEazatauatauatauataaataaanaaauaaauaaaaaaaa#9aa#9aa#Caa#Caa#C#9#C#9#6#C#C#C#6#C#6#C#F#C#F#C#F#C#F#C#F#p#F#p#F#H#F#H#F#F#F#H#t#F#t#F#K#F#K#F#K#t#K#t#K#t#K#t#K#t#K#K#x#K#x#K#I#K#x#K#I#K#x#K#I#x#I#x#I#x#O#x#O#x#O#x#O#x#O#x#j#x#j#x#j#x#j#x#j#x#j#x#j.s#j#x#j.s#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#j#j#k#j#j#j#k#j#j#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#b.s#b.s#b.s.s.s#b.s.s.s#b.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.s"
+".p.s.p.s.p.p.p.p.p.p.r.p.p.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.o.q.q.q.q.t.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.t.t.u.t.t.t.v.t.v.t.v.t.v.t.v.t.v.waB.w.v.waB.waB.vaB.war.var.varaBar.varararararararararara#ara#arawarawarawafawafawafawaGawaGacawacawacawacawacacaAacaAacaAacaoacaeacaoaAaeaAaeaoaeaoaeaoaHaoajaeajaoajaHajajajajajajajajaIajapajagajagaIagapagapagap#1apahapahagah#1ahahahahahahaqahaqahaka.akaqakaqakaqasaqasakasavasasasasaxasaFas",
+"aJataEataEatatazatauatauatauataaataaanaaanaaalaaalaaaa#9aa#9aa#Caa#Caa#Caa#C#C#C#C#C#C#C#C#C#C#B#C#H#C#F#C#F#C#F#C#F#p#F#p#F#H#F#H#F#H#t#H#t#H#t#H#t#F#K#H#K#t#K#t#K#t#K#t#K#t#K#t#K#t#x#K#x#K#x#K#x#K#x#K#x#x#x#x#x#x#x#x#x#x#I#x#x#x#j#x#Q#x#j#x#k#x#j#x#k#x#j#x#j#x#j#x#j.s#j#x#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#k.s#j.s#k.s#j.s#k.s#b.s.s.s#b.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.r.p.p.p.r.p.r"
+".p.r.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.r.q.o.q.q.q.o.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.q.t.q.u.t.t.t.u.t.u.t.u.t.u.t.v.t.v.taB.t.v.taB.taB.waB.vaB.waB.vaB.var.var.varaBaraBaraBararamarararamaramarawarawarawarawarawafawafawawawaGawawacawacawacawaAawacacaAacaAacaCacaeacaeaAaeaAaeaAaeaoaeaoaeaoaHaeajaeajaeajaeajaHajajajajajajaKajapajagajagajagapagapagapagapahagahagahagah#1ahahahahahaha.ahakahaka.akaqakaqakaqadaqasakasadasasasasaFasaFasaDaFaD",
+"azaEazaEazatauatauatauataaataaanaaaaaaaaaaaaaaaa#9aa#9aa#Caa#Caa#C#C#C#C#6#C#C#C#6#C#6#C#F#C#F#C#F#C#F#C#F#p#F#H#F#H#F#H#F#F#F#H#t#F#t#F#t#F#K#F#K#t#K#t#K#t#K#t#K#t#K#t#x#K#x#K#x#K#x#K#I#K#x#K#I#x#x#x#I#x#I#x#O#x#O#x#O#x#O#x#j#x#j#x#j#x#j#x#j#x#j#x#j.s#j#x#j.s#j.s#j.s#j.s#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#b.s#b.s#b.s#b.s.s.s#b.s.s.s#b.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s"
+".p.p.p.p.p.p.p.p.r.p.p.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.o.q.q.q.q.t.q.t.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.u.t.t.t.u.t.v.t.v.t.v.t.v.t.v.waB.waB.waB.waB.vaB.war.var.varaBar.varararararararararara#arafarawarawarawafawafawafawaGawaGacawacaGacawacawacacaAacaAacaAacaAacaeacaoaAaeaAaeaoaeaoaeaoaHaoaHaoajaoajaHajaeajajajajajajaIajapajagajapajag#5agapagapagapahapahagahapahahahahahaha.ahaqahakahaqaqakaqakaqadaqasaqasaqasasasasasasaFasaFas",
+"aJataEataEazaEatatazatauatauatauataaataaanaaanaaaaaaalaaaa#9aa#9aa#Caa#Caa#Caa#C#C#C#C#C#C#C#C#C#C#B#C#H#C#F#C#F#C#F#C#F#p#F#p#F#H#F#H#F#H#t#H#t#H#t#H#t#F#K#H#K#t#K#t#K#t#K#t#K#t#K#t#K#t#x#t#x#K#x#K#x#K#x#K#x#x#x#K#x#x#x#x#x#x#x#x#x#x#I#x#x#x#j#x#k#x#j#x#k#x#j#x#k#x#j#x#j.s#j#x#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#k.s#j.s#k.s#j.s#k.s#j.s#k.s#b.s.s.s#b.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.r.s.p.s.r.p.p.p.r.p.r.p.r"
+".p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.p.q.r.q.o.q.q.q.o.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.q.t.q.u.t.t.t.u.t.u.t.u.t.u.t.v.t.v.taB.t.v.taB.taB.waB.vaB.waB.vaB.vaBaBar.varaBaraBaraBararararararamaramarawarawarawarawarawafawafawawawaGawawacawacawacawaAawacacaAacaAacaCacaAacaeaAaeaAaeaAaeaAaeaoaeaoaHaeaHaoajaeajaeajaHajajajajajajaKajaIajagajagajagaIagapagapagapaLagahagahagah#1ahahahahahaha.ahakahakahakaqakaqakaqadaqasakasakasasasasasasaFasaDasaDaFaD",
+"ataEazatazatazatauatauatauataaauaaanaaaaaaaaaaaaaaaa#Caa#Caa#Caa#Caa#C#C#C#C#6#C#C#C#6#C#6#C#F#C#F#C#F#C#F#C#F#p#F#p#F#H#F#H#F#F#F#H#t#F#t#F#t#F#K#F#K#t#K#t#K#t#K#t#K#t#K#t#x#K#x#K#x#K#x#K#I#K#x#K#I#x#x#x#I#x#I#x#I#x#O#x#O#x#O#x#j#x#j#x#j#x#j#x#j#x#j#x#j#x#j#x#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j#k#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#b.s#b.s#b.s.s.s#b.s.s.s#b.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.p"
+".p.p.p.p.p.p.r.p.p.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.o.q.q.q.q.t.q.t.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.u.t.t.t.u.t.v.t.v.t.v.taB.t.v.taB.waB.waB.waB.vaB.war.var.varaBaraBaraBararararararararaMarafarawarawarawarawafawafawaGawaGawawacaGacawacawacawaAacaAacaAacaAacaeacaoaAaeaAaeaAaeaoaeaoaHaoaHaoajaoajaeajaeajajajajajajaIajaIajapajapajagajagapagapagapaLapahagahapahahahahahahahaha.ahaqahaqaNakaqakaqakaqadaqasaqasasasasasasaOasaFasaFas",
+"aJaEaJataEataEazaEatatazatauataaataaataaataaanaaanaaaaaaalaaaa#Caa#Caa#Caa#Caa#Caa#C#C#C#C#C#C#C#C#C#C#B#C#H#C#F#C#F#C#F#C#F#p#F#p#F#H#F#H#F#H#t#H#t#H#t#H#t#F#t#H#K#t#K#u#K#t#K#t#K#t#K#t#K#t#x#t#x#K#x#K#x#K#x#K#x#x#x#K#x#x#x#x#x#x#x#x#x#x#x#x#x#x#b#x#x#x#j#x#k#x#j#x#k#x#j#x#k#x#j#x#k.s#j#x#k.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#k.s#j.s#k.s#j.s#k.s#j.s#k.s#j.s#k.s#b.s.s.s#b.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.r.s.p.p.r.p.p.p.r.p.r.p.r.p.r"
+".p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.p.q.r.q.o.q.q.q.o.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.q.t.q.u.t.t.t.u.t.u.t.u.t.u.taB.t.v.taB.taB.taB.taB.waB.vaB.waB.vaB.vaBaBar.varaBaraBaraBararararararaMaramaraMarawarawarawarawarawafawawawaGawawawawacawacawaAawaAawaAacaAacaCacaAacaeaAaeaAaeaAaeaAaeaoaeaoaHaeaHaoajaeajaeajaHajaHajajajajaIajaIajagajagajagaIagapagapagapaLagahapahagahagahahahahahahahahakahakahakaqakaqakaqakaqasakasakasasasasasasasasaDasaFasaDaFaD",
+"azaEataEazatazatauatauataaataaataaauaaanaaaaaaaaaaaa#9aa#Caa#Caa#Caa#Caa#C#C#C#C#6#C#C#C#6#C#6#C#F#C#F#C#F#C#F#C#F#p#F#p#F#H#F#H#F#F#F#H#t#F#t#F#t#F#K#F#K#t#K#t#K#t#K#t#K#t#K#t#x#t#K#K#x#K#x#K#x#K#x#K#I#x#x#K#I#x#x#x#I#x#I#x#I#x#O#x#j#x#O#x#j#x#j#x#j#x#j#x#j#x#j#x#j.s#j#x#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#b.s#b.s#b.s.s.s#b.s.s.s#b.s.s.s#b.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p"
+".p.p.p.p.r.p.p.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.o.q.q.q.q.t.q.t.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.u.t.t.t.u.t.v.t.v.t.v.taB.taB.taB.waB.waB.waB.vaB.waraBar.varaBaraBaraBararararararararaMarafarawarawarawarawafawafawaGawaGawawacaGacawacawacawaAacaAacaAacaAacaAacaoaAaeaAaeaAaeaoaeaoaHaoaHaoaHaoajaeajaoajaHajajajajaIajaIajapajapajagajagapagapagapaLapahapahapahaLahahahahahahahahaqahaqahaka.akaqakaqakaqasaqasakasaPasasasasaFasaFasaFaF",
+"aJaEaJataEataEataEazaEatatauatauataaataaataaanaaalaaalaaaaaaalaaaa#Caa#Caa#Caa#Caa#Caa#C#C#C#C#C#C#C#C#C#C#B#C#H#C#F#C#F#C#F#C#F#p#F#p#F#H#F#H#F#H#t#H#t#H#t#H#t#F#t#H#K#t#K#u#K#t#K#t#K#t#K#t#K#t#x#t#x#t#x#K#x#K#x#K#x#K#x#K#x#x#x#x#x#x#x#x#x#x#x#x#x#x.s#x#x#x#b#x.s#x#b#x#k#x#j#x#k#x#j#x#k.s#j#x#k.s#j.s#k.s#j.s#k.s#j.s#k.s#j.s#k.s#j.s#k.s#j.s#k.s#j.s#k.s#j.s#k.s#j.s#k.s#j.s.s.s#b.s.s.s#b.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.r.s.p.p.r.p.p.p.r.p.r.p.r.p.r.p.r"
+".p.r.p.q.p.q.p.q.p.q.p.q.p.q.p.q.r.q.o.q.q.q.o.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.q.t.q.u.t.t.t.u.t.u.t.u.t.u.taB.taB.taB.taB.taB.taB.waB.vaB.waB.vaB.vaBaBaraBaraBaraBaraBaraBararararaMarararaMarawarawarawarawarawafawaGawaGawawawawacawacawaAawaAawaAacaAacaAacaAacaCaAaeaAaeaAaeaAaeaoaeaoaHaoaHaoaHaeajaeajaHajaHajajajajaIajaIajaKajagajagaIagaIagapagapagapaLapahagahagahaLahahahahahahakahaqahakaNakaqakaqakaqasakasaqasaQasasasasasasaFasaFasaDaFaDaFaR",
+"aEaEazaEazaEazatazatauatauataaataaataaauaaanaaaaaaaaaaaa#9aa#Caa#Caa#Caa#Caa#C#C#C#C#6#C#C#C#6#C#6#C#F#C#F#C#F#C#F#C#F#p#F#p#F#H#F#H#F#F#F#H#t#F#t#F#t#F#K#F#K#t#K#t#K#t#K#t#K#t#K#t#x#t#K#t#x#K#x#K#x#K#x#K#I#x#x#K#I#x#x#x#I#x#x#x#I#x#I#x#j#x#O#x#j#x#j#x#j#x#j#x#j#x#j#x#j.s#j#x#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#b.s#b.s#b.s#b.s#b.s.s.s#b.s.s.s#b.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p"
+".p.p.r.p.p.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.o.q.q.q.q.t.q.t.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.u.t.t.t.u.t.v.taB.t.v.taB.taB.taB.waB.waB.waB.vaB.waBaBar.varaBaraBaraBararararararararaMaraSarawarawarawarawarawafawaGawaGawaGawaGacawacawacawaAacaAacaAacaAacaAacaoaAaeaAaeaAaeaAaeaoaHaoaHaoaHaoajaeajaoajaHajajajajajajajajaIajapajagajapaIagapagapagapaLapahapahagahaLahahahahahahaqahaqahakahaqaqakaqakaqasaqasaqasaqasasasasasasaFasaFaOaDaF",
+"aJaEaJataJataEataEatatazatatatauatauataaataaataaanaaalaaalaaaaaaalaaaa#Caa#Caa#Caa#Caa#C#9#C#C#C#C#C#C#C#C#C#C#B#C#H#C#F#C#F#C#F#C#F#p#F#p#F#H#F#H#F#H#t#H#t#H#t#H#t#F#t#H#t#t#K#u#K#t#K#t#K#t#K#t#K#t#x#t#x#t#x#t#x#K#x#K#x#K#x#K#x#x#x#x#x#x#x#x#x#x#x#x#x#x#x#x#x#x.s#x.s#x.s#x.s#x#b#x.s#x#b#x#k#x#j#x#k.s#j#x#k.s#j.s#k.s#j.s#k.s#j.s#k.s#j.s#k.s#j.s#k.s#b.s.s.s#b.s.s.s#b.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.r.s.p.s.r.p.p.p.r.p.r.p.r.p.r.p.r.p.r.p.r.p.r"
+".p.q.p.q.p.q.p.q.p.q.p.q.p.q.r.q.o.q.q.q.q.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.q.t.q.u.t.t.t.u.t.u.taT.t.u.taB.taB.taB.taB.taB.taB.waB.vaB.waBaBaB.vaBaBaraBaraBaraBaraBaraBararararaMaraSaraMarawarawarawarawaSawarawaGawaGawawawawawawacawaAawaAawaAawaAacaAacaAacaCaAaeaAaeaAaeaAaeaAaeaoaHaoaHaoaHaeajaeajaHajaHajaHajajaIajajajaKajapajagaIagaIagapagapagapagapahagahagahaLahahahahahahaNahaqahakahakaNakaqakaqaQaqasaqasakasasasasasasaOasaFasaDaOaDaFaDaFaR",
+"ataJataEazaEazaEazatazatauatauataaataaataaauaaanaaaaaaaaaaaa#9aa#Caa#Caa#Caa#Caa#C#C#C#C#6#C#C#C#6#C#6#C#F#C#F#C#F#C#F#C#F#p#F#p#F#H#F#H#F#F#F#H#t#F#t#F#t#F#t#F#K#t#K#t#K#t#K#t#K#t#K#t#x#t#K#t#x#K#x#K#x#K#x#K#x#K#x#K#I#x#x#x#I#x#x#x#I#x#x#x#I#x#I#x#j#x#j#x#j#x#j#x#j#x#j#x#j#x#j#x#j.s#j#x#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#b.s#b.s#b.s#b.s#b.s.s.s#b.s.s.s#b.s.s.s#b.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p.p.p"
+".r.p.p.p.r.p.q.p.q.p.q.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.o.q.q.q.q.t.q.t.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.t.t.t.taT.t.w.taB.taB.taB.taB.taB.waB.waB.waB.waB.waBaBaraBaraBaraBaraBaraBararararararaSaraSarawarawarawarawaSawafawaGawaGawaGawaGacawaAawacawaAawaAacaAacaAacaAacaAaAaeaAaoaAaeaAaeaoaHaoaHaoaHaoaHaoajaoajaHajaHajajajajajajaIajapajagajapaIagapagapagapagapahapahagahapahahahahahahaNahaqahaqahaqaqakaqakaqaQaqasaqasaqasasasasasasaFasaFaOaFaOaFaF",
+"aJaEaJaEaJataJataEataEatatazatatatauatauataaataaataaanaaalaaalaaaaaaal#9aa#Caa#Caa#Caa#Caa#C#9#C#C#C#C#C#C#C#C#C#C#B#C#H#C#F#C#F#p#F#C#F#p#F#p#F#p#F#H#F#H#t#H#t#H#t#H#t#H#t#H#t#t#K#u#K#t#K#u#K#t#K#t#K#t#x#t#x#t#x#t#x#t#x#t#x#K#x#K#x#x#x#K#x#x#x#x#x#x#x#x#x#x#x#x#x#x.s#x#x#x.s#x.s#x.s#x.s#x.s#x.s#x.s#x.s.s#b#x.s.s#b#x.s.s#b.s.s.s#b.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.r.s.p.p.r.p.p.p.r.p.r.p.r.p.r.p.r.p.r.p.r.p.q.p.q"
+".p.q.p.q.p.q.p.q.p.q.p.q.q.q.o.q.q.q.q.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.q.t.q.u.t.t.taT.t.t.taT.taT.taB.taB.taB.taB.taB.taB.taB.vaB.waBaBaBaBaBaBaraBaraBaraBaraBaraBaSarararaMaraSaraMaraMarawarawarawaSawaSawaGawaGawawawaGawawacawaAawaAawaAawaAacaAacaAacaCaAaAaAaeaAaeaAaeaAaeaoaHaoaHaoaHaeaHaoajaHajaHajaHajajaIajajajaIajaIajagaIagaIagaIagapagapagapaLagahapahaLahaLahahahahaNahaqahakahakahakaqakaqakaqaQaqasakasakasasasasaOasaFasaDaOaFaOaDaFaDaFaR",
+"aEaJataEataEazaEazaEazatauatauatauataaataaanaaauaaanaaaaaaaaaaaa#9aa#Caa#Caa#Caa#Caa#C#C#C#C#6#C#C#C#B#C#6#C#F#C#F#C#F#C#F#C#F#p#F#p#F#H#F#H#F#F#F#H#t#F#t#H#t#F#t#F#K#t#K#t#K#t#K#t#K#t#K#t#K#t#K#t#x#t#x#K#x#K#x#K#x#K#x#K#I#x#x#x#I#x#x#x#I#x#x#x#I#x#x#x#b#x#I#x#b#x#j#x#j#x#j#x#j#x#j#x#j.s#j#x#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#b.s#b.s#b.s.s.s#b.s.s.s#b.s.s.s#b.s.s.s#b.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.p.p.r.p.p.p.r.p"
+".p.p.r.p.q.p.q.p.q.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.o.q.q.q.q.t.q.t.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.t.t.t.taT.t.w.taB.taB.taB.taB.taB.waB.waB.waBaUaB.waBaBaraUaraBaraBaraBaraBararaSarararaSaraSarawaraGarawarawaSawafawaGawaGawaGawaGacawaAaGacawaAawaAacaAacaAaAaAacaAaAaeaAaoaAaeaAaeaAaHaoaHaoaHaoaHaoajaoajaHajaHajajajajajajaIajaIajapajapaIagaIagapagapagapaLapahapahapahaLahahahahaNahaqahaqahaqaNakaqakaqaQaqasaqasaqasaQasasasasaOasaFasaFaOaFaFaDaF",
+"aJaEaJaEaJaEaJataEataEataEatatazatanatauatauataaataaataaanaaalaaalaaaaaaal#9aa#Caa#Caa#Caa#Caa#C#9#C#C#C#C#C#C#C#C#C#C#B#C#H#C#F#C#F#p#F#C#F#p#F#p#F#p#F#H#F#H#t#H#t#H#t#H#t#H#t#H#t#t#t#H#K#t#K#u#K#t#K#t#K#t#x#t#K#t#x#t#x#t#x#t#x#t#x#K#x#x#x#K#x#x#x#x#x#x#x#x#x#x#x#x#x#x.s#x#x#x.s#x.s#x.s#x.s#x.s#x.s#x.s#x.s#x.s#x.s.s.s#x.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.r.s.p.s.r.s.p.p.r.p.p.p.r.p.r.p.r.p.r.p.r.p.r.p.r.p.q.p.q.p.q"
+".p.q.p.q.p.q.p.q.p.q.q.q.o.q.q.q.q.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.t.q.t.qaT.t.t.taT.t.6.taT.taT.taB.taB.taB.taB.taB.taB.taBaBaB.waBaBaBaBaBaBaBaBaraBaraBaraBaraBaSarararaMaraSaraMaraMarawarawarawaSawaSawaGawaGawawawaGawawacawaAawaAawaAawaAacaAaAaAacaCaAaAaAaeaAaeaAaeaAaeaAaHaoaHaoaHaeaHaoajaHajaHajaHajaHaIajajajaIajaIajagaIagaIagaIagapagapagapaLagahapahaLahaLahahahahaNahaNahakahaqahakaNakaqakaqakaqasakasaqasaQasasasasaOasaFasaFaOaDaFaDaFaRaFaV",
+"aEaJaEaJazaEataEazaEazaEazatauatauatauataaataaanaaauaaanaaaaaaaaaaaa#9aa#Caa#Caa#Caa#Caa#C#C#C#C#6#C#C#C#B#C#6#C#F#C#F#C#F#C#F#C#F#p#F#p#F#H#F#H#F#F#F#H#t#F#t#H#t#F#t#F#t#t#K#F#K#t#K#t#K#t#K#t#K#t#K#t#x#t#x#t#x#K#x#K#x#K#x#K#x#x#x#x#I#x#x#x#I#x#x#x#I#x#x#x#b#x#x#x#b#x.s#x#b#x#b#x#b#x#j#x#j#x#j#x#j.s#j#x#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#j.s#b.s#b.s#b.s#b.s#b.s#b.s.s.s#b.s.s.s#b.s.s.s#b.s.s.s#b.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.p.p.p.p.r.p.p.p.r.p.r.p"
+".r.p.q.p.q.p.q.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.q.q.o.q.q.q.q.t.q.t.q.t.q.t.q.t.q.t.q.t.t.t.t.t.t.6.t.t.taT.taU.taB.taB.taB.taB.taB.taB.waB.waBaUaBaUaBaBaraUaraBaraBaraBaraBararaSaraSaraSaraSarawaraGarawarawaSawaSawaGawaGawaGawaGawawaAaGaAawaAawaAawaAacaAaAaAacaAaAaoaAaoaAaeaAaeaAaHaoaHaoaHaoaHaoaHaoajaHajaWajaHajajajajaIajaIajapajapaIagaIagapagapagapaLapahapahapahaLahahahahaNahaNahaqahaqaNakaqakaqakaqaQaqasaqasaXasaPasasaOasaOasaFasaFaOaDaFaDaF",
+"aJaEaJaEaJaEaJaEaJataEataEataEatatazatauatauatauataaataaanaaanaaalaaalaaaaaaal#9aa#Caa#Caa#Caa#C#l#C#9#C#C#C#C#C#C#C#C#C#C#B#C#H#C#F#C#F#p#F#C#F#p#F#p#F#p#F#H#F#H#t#H#t#H#t#H#t#H#t#H#t#u#t#H#t#t#K#u#K#t#K#u#K#t#x#t#K#t#x#t#x#t#x#t#x#t#x#t#x#t#x#K#x#x#x#x#x#x#x#x#x#x#x#x#x#x#x#x#x#x.s#x#x#x.s#x.s#x.s#x.s#x.s#x.s#x.s#x.s#x.s#x.s.s.s#x.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.r.s.p.s.r.p.p.p.r.p.r.p.r.p.r.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q"
+".p.q.p.q.p.q.p.q.q.q.o.q.q.q.q.q.q.q.q.q.q.q.q.t.q.t.q.t.q.t.q.6.q.t.qaT.t.6.taT.t.6.taT.taT.taT.taB.taB.taB.taB.6aB.taBaBaBaUaBaBaBaBaBaBaBaBaraBaraBaraBaraBaSaBaSaraMaraSaraMaraMarawaSawarawaSawaSawaGawaGawawawaGaYawawawaAawaAawaAawaAawaAaAaAacaCaAaAaAaeaAaeaAaHaAaeaAaHaoaHaoaHaoaHaoaHaHajaHajaHajaHaIajajajaIajaIajaKaIagajagaIagaIagapagapaLapaLapahaLahaLahaLahahahahaNahaNahaqahakaNakaqakaqakaqaQaqasaqasaQasasasasasasaOasaFasaDaOaDaFaRaFaRaFaV",
+"aEaJaEaJaEaJazaEataEazatazatazatauatauatauataaataaanaaaaaaalaaaaaaaa#9aa#9aa#Caa#Caa#Caa#Caa#C#C#C#C#6#C#C#C#B#C#6#C#F#C#F#C#F#C#F#C#F#p#F#p#F#p#F#H#F#H#F#H#t#F#t#H#t#F#t#F#t#t#K#F#K#t#K#t#K#t#K#t#K#t#K#t#x#t#x#t#x#t#x#t#x#K#x#K#x#x#x#K#x#x#x#x#I#x#x#x#I#x#x#x#I#x#x#x#b#x.s#x#b#x.s#x#b#x.s#x#b#x.s#x#b#x#b#x#b.s#b#x#b.s#b.s#b.s#b.s#b.s#b.s#b.s#b.s#b.s.s.s#b.s.s.s#b.s.s.s#b.s.s.s#b.s.s.s#b.s.s.s#b.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p.p.p.r.p.p.p.r.p.r.p.q.p"
+".q.p.q.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.o.q.q.q.o.q.q.q.q.t.q.t.q.t.q.t.q.t.q.t.q.t.t.6.t.t.t.6.t.6.taT.t.6.taB.taB.taB.taB.taB.taBaUaB.waBaUaBaUaBaBaBaUaraBaraBaraBaraBararaSaraSaraSaraSaraMaraGarawarawaSawaSawaGawaGawaGawaGawawaAaGaAawaAawaAawaAacaAaAaAaAaAaAaAaAaoaAaeaAaeaAaHaoaHaoaHaoaHaoaHaoajaHajaWajaHajajajajaIajaIajaIajapaIagaIapaIagapagapaLapaLapahapahaLahaZahahaNahaNahaqahaqaNakaNaqaqakaqakaqaQaqasaXasaXasasaOasaOasaFasaFaOaDaFaFaFaRaF",
+"a0aJaJaEaJaEaJaEaJaEaJataEataEataEatatazatauatauatauataaataaanaaanaaalaaalaaaaaaal#9aa#Caa#Caa#Caa#C#l#Caa#C#C#C#C#C#C#C#C#C#C#B#C#p#C#F#C#H#C#F#C#F#p#F#p#F#p#F#p#F#H#t#H#t#H#t#H#t#H#t#H#t#u#t#H#t#t#t#u#K#t#K#u#K#t#K#u#K#t#x#t#x#t#x#t#x#t#x#t#x#t#x#t#x#e#x#t#x#x#x#x#x#x#x#x#x#x#x#x#x#x.s#x#x#x.s#x.s#x.s#x.s#x.s#x.s#x.s#x.s#x.s#x.s#x.s#x.s.s.s#x.s.s.s#x.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.r.s.p.s.r.s.p.p.r.p.p.p.r.p.r.p.r.p.r.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q"
+".p.q.r.q.o.q.q.q.o.q.q.q.q.q.q.q.q.q.q.t.q.6.q.t.q.6.q.t.q.6.q.6.qaT.t.6.taT.taT.taT.taT.taT.taB.taB.taB.taB.6aB.6aBaBaBaUaBaBaBaBaBaBaBaBaraBaraBaSaBaraBaSaBaSaraMaraSaraMaraMarawaSawarawaSawaSawaSawaGawawawaGaYawaYawaAawaAawaAawaAawaAaAaAaAaAaAaAaAaCaAaeaAaHaAaeaAaHaAaHaoaHaoaHaoaHaHajaHajaHajaHaIaHajajaIajaIajaKajapajagaIagaIagapagapaLapaLapahagahagahaLahahahahahahaNahaqahakaNakaNakaqakaqaQaqasaqasaQasaQasasasasaOasaFasaDaOaDaFaRaFaRaFaVa1aV",
+"aEaJaEaJaEaJaEaJazaEataEazatazatauatauataaataaataaataaanaaaaaaalaaaaaaaa#9aa#9aa#Caa#Caa#Caa#Caa#C#C#C#C#6#C#C#C#B#C#B#C#F#C#F#C#F#C#F#C#F#p#F#p#F#p#F#H#F#H#F#H#t#F#t#H#t#F#t#H#t#t#t#F#K#t#K#t#K#t#K#t#K#t#K#t#x#t#x#t#x#t#x#t#x#t#x#K#x#K#x#K#x#x#x#x#x#x#x#x#x#x#x#x#I#x#x#x#b#x#x#x#b#x.s#x#b#x.s#x#b#x.s#x#b#x.s#x#b.s.s#x#b.s.s#x#b.s.s.s#b.s.s.s#b.s.s.s#b.s.s.s#b.s.s.s#b.s.s.s#b.s.s.s#b.s.s.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.p.p.r.p.p.p.r.p.p.p.r.p.r.p.q.p.q.p"
+".q.p.q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.o.q.q.q.o.q.q.q.q.t.q.t.q.t.q.t.q.t.q.6.q.t.t.6.t.6.t.6.t.6.taT.t.6.taB.taB.taB.taB.taB.taBaUaBaUaBaUaBaUaBaBaBaUaraBaraBaraBaSaBararaSaraSaraSaraSaraMaraGaSawarawaSawaSawaGawaGawaGawaGawawaAaGaAawaAawaAawaAacaAaAaAaAaAaAaAaAaoaAaeaAaoaAaHaAaHaoaHaoaHaoaHaoajaWajaWajaHajaHajajaIajaIajaIajapaIagaIapaIagapagapaLapaLapahapahaLahaZahahahahaNahaNahaqaNaqaNaqaNakaqakaqaQaqasaqasaXasasasasaOasaOasaFaOaFaOaFaFaRaFaRaF",
+"a2aJa0aEaJaEaJaEaJataJataJataEataEataEatatazatauataaataaataaataaanaaanaaalaaalaaaaaaal#9aa#Caa#Caa#Caa#C#l#C#l#C#C#C#C#C#C#C#C#C#C#B#C#p#C#F#C#H#C#F#C#F#p#F#p#F#p#F#p#F#H#t#H#t#H#t#H#t#H#t#H#t#H#t#H#t#u#t#u#t#t#K#u#K#t#K#u#K#t#x#t#x#t#x#t#x#t#x#t#x#t#x#t#x#e#x#t#x#e#x#e#x#e#x#e#x#x#x#x#x#x#x#x#x#x.s#x#x#x.s#x.s#x.s#x.s#x.s#x.s#x.s#x.s#x.s#x.s#x.s#x.s.s.s#x.s.s.s#e.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.r.s.p.s.r.s.p.s.r.p.p.p.r.p.r.p.r.p.r.p.r.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.p.q.p.q"
+".r.q.o.q.q.q.o.q.q.q.q.q.q.q.q.m.q.t.q.6.q.t.q.6.q.6.q.6.q.6.qaT.t.6.taT.taT.taT.taT.taT.taB.taB.6aB.taB.6aB.6aBaUaBaUaBaBaBaUaBaBaBaBaraBaraBaSaBaSaBaSaBaSaraSaraSaraMaraMaraMaSawaSawaSawaSawaSawaGawaGawaGaYawaYawaAawaAawaAawaAawaAaAaAaAaAaAaAaAaCaAaeaAaHaAaHaAaHaAaHaoaHaoaHaoaHaHaHaWajaHajaHaIaHajajaIajaIajaKajapajagaIagaIagaIagapaLapaLapaLagahapahaLahaLahahahahaNahaNahakaNakaNakaqakaqaQaqaQaqasaQasaQasasasasaOasaOasaDaOaFaOaDaFaRaFaRaFaVa1aV",
+"aEaJaEaJaEaJataJataEazaEataEazatazatauatauataaataaataaanaaanaaaaaaalaaaaaaaa#9aa#9aa#Caa#Caa#Caa#Caa#C#C#C#C#6#C#C#C#B#C#B#C#F#C#F#C#F#C#F#C#F#p#F#p#F#p#F#H#F#H#F#H#t#F#t#H#t#F#t#H#t#F#t#F#t#t#K#t#K#t#K#t#K#t#K#t#x#t#K#t#x#t#x#t#x#t#x#t#x#t#x#K#x#x#x#x#x#x#x#x#x#x#x#x#x#x#x#x#x#x#x#x#b#x.s#x#b#x.s#x#b#x.s#x#b#x.s#x#b#x.s#x#b.s.s#x#b.s.s#x#b.s.s.s#b.s.s.s#b.s.s.s#b.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p.p.p.r.p.p.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p"
+".q.p.q.p.q.p.q.p.q.o.q.o.q.o.q.o.q.q.q.o.q.q.q.q.t.q.t.q.t.q.6.q.t.q.6.q.6.t.6.t.6.t.6.t.6.taT.t.6.taB.taB.taB.taB.6aB.taBaUaBaUaBaUaBaUaBaBaBaUaraBaraBaraBaSaBaSaBaSaraSaraSaraSaraMaraGaSawarawaSawaSawaSawaGawaGaYaGawaGaYaGaAawaAawaAawaAawaAaAaAaAaAaAaAaAaAaAaeaAaoaAaHaAaHaoaHaoaHaWaHaoaHaWajaWajaHajaHajajaIajaIajaIajaIaIapaIapaIagaIagapaLapaLapaLapahaZahaZahaLahahahahaNahaqahaqahaqaNakaqakaqaQaqaQaqasaqasaQasaPasasaOasaFaOaFaOaFaFaRaFaRaFaVaF",
+"a0aJa2aJa0aEaJaEaJaEaJataJataEataEatatatatatatauatauataaataaataaataaanaaanaaalaaalaaaaaaal#9aa#Caa#Caa#Caa#C#l#C#l#C#C#C#C#C#C#C#C#C#C#p#C#p#C#F#C#H#C#F#C#F#p#F#p#F#p#F#p#F#p#t#H#F#H#t#H#t#H#t#H#t#H#t#H#t#u#t#u#t#t#t#u#K#t#K#u#K#t#x#u#K#t#x#u#x#t#x#t#x#t#x#t#x#t#x#t#x#e#x#e#x#e#x#e#x#e#x#e#x#e#x#e#x#e#x#e#x#e.s#e#x#e.s#e.s#e.s#e.s#e.s#e.s#e.s#e.s#e.s#e.s#e.s#e.s#e.s#e.s.p.s#e.s.p.s#e.s.p.s#e.s.p.s.p.s.p.s.r.s.p.s.r.s.p.s.r.p.p.p.r.p.r.p.r.p.r.p.r.p.r.p.r.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.p.q.p.q.p.q.r.q"
+".o.m.q.q.o.m.q.q.q.m.q.q.q.m.q.6.q.6.q.6.q.6.q.6.q.6.q.6.qaT.t.6.taT.taT.taT.taT.taB.6aB.taB.6aB.6aB.6aB.6aBaUaBaUaBaBaBaUaBaBaBaBaSaBaraBaSaBaSaBaSaBaSaraSaraSaraMaSaSaraMaSawaSawaSawaSawaSawaGawaGawaGaYawaYawaYawaAawaAawaAawaAaYaAaAaAaAaAaAaCaAaAaAaHaAaHaAaHaAaHaoaHaoaHaoaHaHaHaWajaHajaHaIaHajaHaIajaIajaIajaIajagaIagaIagaIagapaLapaLapaLagahapahaLahaLahahahahaNahaNahakaNaqaNakaNakaqaQaqaQaqasakasaXasaQasasaOasaOasaFaOaFaOaDaFaDaFaRaFaRaFaVaRaV",
+"aJaJaEaJaEaJaEaJataJataEazaEataEazatazatauatauataaataaataaanaaanaaaaaaalaaaaaaaa#Caa#Caa#Caa#Caa#Caa#C#9#C#C#C#C#6#C#C#C#B#C#B#C#F#C#F#C#F#C#F#C#F#p#F#p#F#p#F#p#F#H#F#H#t#H#t#H#t#F#t#H#t#F#t#H#t#t#t#t#K#t#K#t#K#t#K#t#x#t#K#t#x#t#x#t#x#t#x#t#x#t#x#t#x#e#x#t#x#x#x#x#x#x#x#x#x#x#x#x#x#x#x#x.s#x#x#x.s#x.s#x.s#x.s#x.s#x.s#x.s#x.s#x.s#x.s#x.s.s.s#x.s.s.s#x.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.p.p.r.p.p.p.r.p.p.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p"
+".q.p.q.p.q.p.q.o.q.o.q.o.q.o.q.q.q.o.q.q.m.q.t.q.6.q.t.q.6.q.6.q.6.q.6.t.6.t.6.t.6.t.6.taT.t.6.taB.taB.6aB.taB.6aB.6aBaUaBaUaBaUaBaUaBaBaBaUaraBaSaBaraBaSaBaSaBaSaraSaraSaraSaraMaraGaSawaSawaSawaSawaSawaGawaGaYaGawaGaYaGaAawaAawaAawaAawaAaAaAaAaAaAaAaAaAaAaHaAaoaAaHaAaHaAaHaoaHaWaHaoaHaWajaWajaHajaHajaHaIajaIajaIajaIaIapaIapaIagaIagapaLapaLapaLapahaZahaZahaLahahahahaNahaNahaqahaqaNakaNakaqaQaqaQaqasaqasaXasaXasasaOasaOasaFaOaFaOaDaFa1aFaRaFaVa1",
+"a0aJa0aJa2aJa3aEaJaEaJaEaJataJataEataEatatazatatatauatauataaataaataaataaanaaanaaalaaalaaaaaaal#9aa#Caa#Caa#Caa#C#l#C#l#C#C#C#C#C#C#C#C#C#C#p#C#p#C#F#C#H#C#F#C#F#p#F#p#F#p#F#p#F#p#t#H#F#H#t#H#t#H#t#H#t#H#t#H#t#u#t#u#t#u#t#u#t#t#t#u#K#t#K#u#K#t#x#u#x#t#x#u#x#t#x#t#x#t#x#t#x#e#x#t#x#e#x#e#x#e#x#e#x#e#x#e#x#e#x#e#x#e#x#e#x#e.s#e#x#e.s#e.s#e.s#e.s#e.s#e.s#e.s#e.s#e.s#e.s#e.s#e.s#e.s#e.s#e.s#e.s.p.s#h.s.p.s#h.s.p.s#h.s.p.p#h.p.p.p#h.p.r.p.r.p.r.p.r.p.r.p.r.p.r.p.r.p.q.p.m.p.q.p.m.p.q.p.m.p.q.p.m.p.q.p.m.q.q.o.m"
+".q.q.q.m.q.m.q.m.q.m.q.m.q.6.q.6.q.6.q.6.q.6.q.6.q.6.taT.t.6.taT.taT.taT.6aT.taB.6aB.6aB.6aB.6aB.6aB.6aBaUaBaUaBaBaBaUa4aBaBaBaSaBaSaBaSaBaSaBaSaBaSaraSaraSaraMaSaSaraMaSawaSawaSawaSawaSawaSaYaGawaGaYawaYaGaYawaAawaAawaAawaAaYaAaAaAaAaAaAaCaAaAaAaHaAaHaAaHaAaHaAaHaoaHaoaHaHaHaWajaHajaHaIaHaIaHaIajaIajaIaIaIajagaIagaIagaIagaIaLapaLapaLapaLapahaLahaLahaLahahaNahaNahaNaNaqaNakaNakaqaQaqaQaqaQaqasaqasaQasasaOasaOasaOaOaFaOaDaOaDaFaRaFaRaFaVa1aVa1a5",
+"aJa2aJaJaEaJaEaJaEaJataEataEazaEataEazatauatauatauataaataaataaanaaanaaaaaaalaaaaaaaa#Caa#Caa#Caa#Caa#C#l#C#9#C#C#C#C#6#C#C#C#B#C#p#C#B#C#F#C#F#C#F#C#F#p#F#p#F#p#F#p#F#H#F#H#t#H#t#H#t#F#t#H#t#F#t#H#t#t#t#t#t#t#K#t#K#t#K#t#K#t#K#t#x#t#x#t#x#t#x#t#x#t#x#t#x#t#x#t#x#e#x#e#x#e#x#x#x#x#x#x#x#x#x#x#x#x#x#x.s#x#x#x.s#x.s#x.s#x.s#x.s#x.s#x.s#x.s#x.s#x.s#x.s#x.s#x.s.s.s#x.s.s.s#e.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p.p.p.r.p.p.p.r.p.p.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.p.q.p"
+".q.p.q.o.q.o.q.o.q.q.q.o.q.q.m.o.q.q.6.q.t.q.6.q.6.q.6.q.6.q.6.q.6.t.6.t.6.t.6.t.6.taT.t.6.6aB.taB.6aB.6aB.6aB.6aBaUaBaUaBaUaBaUaBaBaBaUaraBaSaBaSaBaSaBaSaBaSaraSaraSaraSaSaMaraSaSawaSawaSawaSawaSawaGawaGaYaGaYaGaYaGaAawaAaGaAawaAawaAaAaAaAaAaAaAaAaAaAaHaAaoaAaHaAaHaAaHaoaHaWaHaWaHaWaHaWajaHajaWajaHaIajaIajaIajaIaIapaIapaIagaIagaIaLapaLapaLapaLaZahaZahaLahaZahahaNahaNahaqahaqaNakaNaqaqaQaqaQaqaQaqasaXasaXasasaOasaOasaFasaFaOaFaOaFaFaRaFaRa1aVa1",
+"a0aJa0aJa0aJaJaJa3aEaJaEaJaEaJataJataEataEatatazatatatauatauataaataaataaataaalaaalaaalaaalaaaa#lal#9aa#Caa#Caa#Caa#C#l#C#l#C#C#C#C#C#C#C#C#C#C#p#C#p#C#B#C#H#C#F#C#H#p#F#p#F#p#F#p#F#p#t#p#F#H#t#H#t#H#t#H#t#H#t#H#t#u#t#H#t#u#t#u#t#u#t#u#t#t#K#u#K#t#x#u#x#t#x#u#x#t#x#u#x#t#x#u#x#t#x#t#x#e#x#t#x#e#x#e#x#e#x#e#x#e#x#e#x#e#x#e#x#e#x#e#x#e.s#e#x#e.s#e.s#e.s#e.s#e.s#e.s#e.s#e.s#e.s#h.s#e.s#h.s#e.s#h.s#e.s#h.s#e.p#h.p#e.p#h.p.r.p#h.p.r.p#h.p.r.p#h.p.r.p#h.p.r.p#h.p.q.p.m.p.q.p.m.p.q.p.m.p.m.p.m.r.m.p.m.q.m.o.m.q.m"
+".q.m.q.m.q.m.q.m.q.m.q.6.q.6.q.6.q.6.q.6.q.6.q.6.taT.6.6.taT.6aT.taT.6aT.6aB.6aB.6aB.6aB.6aB.6aB.6aBaUaBaUaBaBaBaUa4aBa4aBaSaBaSaBaSaBaSaBaSaBaSaraSaSaSaraMaSaSaSaMaSawaSawaSawaSawaSawaSaYaGaYaGaYawaYaGaYawaAawaAaYaAawaAaYaAaAaAaAaAaAaCaAaAaAaHaAaHaAaHaAaHaAaHaWaHaoaHaWaHaWaHaHajaHaIaHaIaHaIajaIajaIaIaIajaKaIapaIagaIagaIaLapaLapaLapaLapahaLahaLahaLahahaNahaNahaNahaqaNakaNakaNaQaqaQaqaQaqasaqasaQasaQaOasaOasaOasaFaOaDaOaFaOaRaFaRaFaRa1aVa1aVaRa5",
+"aJa2aJa2aEaJaEaJaEaJaEaJataEataEazaEataEazatauatauatauataaataaataaanaaanaaaaaaalaaaaaaaa#Caa#Caa#Caa#Caa#C#l#C#9#C#C#C#C#6#C#C#C#B#C#p#C#B#C#F#C#F#C#F#C#F#p#F#p#F#p#F#p#F#p#F#H#t#H#t#H#t#H#t#H#t#F#t#H#t#t#t#u#t#t#t#t#K#t#K#t#K#t#K#t#x#t#x#t#x#t#x#t#x#t#x#t#x#t#x#t#x#e#x#t#x#e#x#e#x#e#x#e#x#e#x#e#x#e#x#e#x#e#x#e.s#x#x#x.s#x.s#x.s#e.s#e.s#e.s#e.s#e.s#e.s#e.s#e.s#e.s#e.s.p.s#e.s.p.s#e.s.p.s#e.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.s.p.p.p.p.p.p.r.p.p.p.r.p.p.p.r.p.p.p.r.p.r.p.r.p.q.p.q.p.q.p.q.p.q.p.q.p.q.p.q.p.q.p"
+".m.o.q.o.m.o.q.q.m.o.q.q.m.o.m.q.6.q.6.q.6.q.6.q.6.q.6.q.6.q.6.t.6.t.6.taT.t.6.6aT.t.6.6aB.6aB.6aB.6aB.6aB.6aBaUaBaUaBaUaBaUaBaBa4aUaraBaSaBaSaBaSaBaSaBaSaraSaraSaraSaSaSaSaSaSawaSawaSawaSawaSawaGawaGaYaGaYaGaYaGaYawaAaGaAaYaAawaAaYaAaAaAaAaAaAaAaAa6aAaWaAaHaAaHaAaHaoaHaWaHaWaHaWaHaWajaHajaWajaHaIaHaIajaIajaIaIaIaIapaIagaIapaIaLapaLapaLapaLaZahaZahaLahaZahahaNahaNahaNahaqaNaqaNaqaNaQaqaQaqaQaqasaXasaXasaQaOasaOasaOasaFaOaFaOaFaFaRaFaRa1aVa1aVa1",
+"a0aJa0aJa0aJa0aJaJaEaJaEaJaEaJaEaJataEataEataEatatazatatatauatauataaataaataaanaaalaaalaaalaaalaaaa#lal#9aa#Cal#Caa#Caa#C#l#C#l#C#C#C#C#C#C#C#C#C#C#p#C#p#C#B#C#H#C#F#C#H#p#F#p#F#p#F#p#F#p#F#p#F#p#t#H#t#H#t#H#t#H#t#H#t#u#t#H#t#u#t#u#t#u#t#u#t#u#t#u#t#t#x#u#K#t#x#u#x#t#x#u#x#t#x#u#x#t#x#u#x#e#x#u#x#e#x#h#x#e#x#h#x#e#x#h#x#e#x#h#x#e#x#h#x#e#x#h#x#e.s#h#x#e.s#h.s#e.s#h.s#e.s#h.s#e.s#h.s#e.s#h.p#e.p#h.p#h.p#h.p#h.p#h.p#h.p#h.p#h.p#h.p#h.p#h.p#h.p#h.p#h.p.m.p.m.p.m.p.m.p.m.p.m.p.m.p.m.p.m.r.m.o.m.q.m.o.m.q.m.q.m"
+".q.m.q.m.q.m.q.6.q.6.q.6.q.6.q.6.q.6.q.6.m.6.taT.6.6.taT.6aT.6aT.6aT.6aB.6aB.6aB.6aB.6aB.6aB.6aBaUaBaUa4aBaBaUa4aBa4aBa4aBaSaBaSaBaSaBaSaBaSaBaSaSaSaraMaSaSaSaMaSawaSawaSawaSawaSawaSaYaGaYaGaYawaYaGaYawaAawaAaYaAaYaAaYaAaYaAaAaAaAaCaAaAaAa7aAaHaAaHaAaHaAaHaWaHaWaHaWaHaWaHaHajaHaIaHaIaHaIaHaIajaIaIaIajaKaIapaIagaIagaIaLapaLapaLapaLapaLaLahaZahaLahaLaNahaNahaNahaNahakaNakaNakaqaQaqaQaqaQaqasaQasaXasasaOasaOasaOasaFaOaFaOaRaFaRaFaRa1aVa1aVaRaVaVa5",
+"aJa0aJa2aJa2aEaJaEaJaEaJaEaJataEataEazaEataEazatauatauatauataaataaataaanaaanaaaaaaalaaaaaaaa#Caa#Caa#Caa#Caa#C#l#Caa#C#C#C#C#C#C#C#C#B#C#p#C#B#C#F#C#F#C#F#C#F#p#F#p#F#p#F#p#F#p#F#H#t#H#t#H#t#H#t#H#t#F#t#H#t#t#t#H#t#t#t#u#t#t#K#t#K#t#K#t#x#t#K#t#x#t#x#t#x#t#x#t#x#t#x#t#x#e#x#t#x#e#x#e#x#e#x#e#x#e#x#e#x#e#x#e#x#e#x#e.s#e#x#e.s#e#x#e.s#e.s#e.s#e.s#e.s#e.s#e.s#e.s#e.s#e.s#e.s#e.s#e.s#e.s#e.s#e.s#e.s.p.s#e.s.p.s#e.s.p.s#e.p.p.p#e.p.p.p#h.p.p.p#h.p.p.p#h.p.r.p#h.p.r.p#h.p.q.p.m.p.q.p.m.p.q.p.m.p.q.p.m.p.q.p.m.o"
+".q.o.m.o.m.q.m.o.m.q.m.q.m.q.6.q.6.q.6.q.6.q.6.q.6.q.6.q.6.t.6.t.6.6aT.t.6.6aT.t.6.6aB.6aB.6aB.6aB.6aB.6aBaUaBaUaBaUa4aUaBaBa4aUaSaBaSaBaSaBaSaBaSaBaSaraSaSaSaraSaSaSaSaSaSawaSaGaSawaSawaSaYaSawaGaYaGaYaGaYaGaYawaAaGaAaYaAaYaAaYaAaAaAaAaAaAaAaAa6aAaWaAaHaAaHaAaHaAaHaWaHaWaHaWaHaWajaWaIaWajaHaIaHaIajaIajaIaIaIaIapaIagaIapaIaLaIaLapaLapaLaZaLaZahaZahaZahaLaNahaNahaNahaqaNaqaNaqaNaQaqaQaqaQaqaQaXasaXasaQaOaPaOasaOasaOaOaFaOaFaOaRaFaRaFaRa1aVa1a5a1",
+"a8a2a0aJa0aJa0aJa0aJaJaEaJaEaJaEaJaEaJataEataEataEatatazatatatauatauataaataaataaanaaalaaalaaalaaalaaal#lal#9aa#Cal#Caa#Caa#C#l#C#l#C#C#C#C#C#C#C#C#C#C#p#C#p#C#p#C#H#C#F#C#H#p#F#p#H#p#F#p#F#p#F#p#F#p#t#p#t#H#t#H#t#H#t#H#t#H#t#H#t#u#t#u#t#u#t#u#t#u#t#u#t#u#t#u#t#u#e#u#e#t#x#u#x#t#x#u#x#t#x#u#x#t#x#u#x#e#x#u#x#e#x#h#x#e#x#h#x#e#x#h#x#e#x#h#x#e#x#h#x#e#x#h#x#e.s#h#x#e.s#h#e#e.p#h.p#e.p#h.p#h.p#h.p#h.p#h.p#h.p#h.p#h.p#h.p#h.p#h.p#h.p#h.p#h.p.m.p.m.p.m.p.m.p.m.p.m.p.m.p.m.p.m.r.m.p.m.r.m.o.m.q.m.q.m.q.m.q.m.q.m"
+".q.m.q.m.q.6.q.6.q.6.m.6.q.6.m.6.q.6.m.6.6aT.6.6.6aT.6aT.6aT.6aT.6aB.6aB.6aB.6aB.6aB.6aB.6a4aBaBaUa4aBa4aUa4aBa4aBa4aBaSaBaSaBaSaBaSa4aSaBaSaSaSaSaMaSaSaSaMaSaMaSawaSawaSaYaSawaSaYaGaYaGaYawaYaGaYawaYawaAaYaAaYaAaYaAaYaAaAaAaAa7aAaAaAa7aAaHaAaHaAaHaAaHa6aHaWaHaWaHaWaHaHaHaWaIaHaIaHaIaHaIajaIaIaIaIaKaIaIaIagaIagaIaLaIaLapaLapaLapaLaLahaZahaLahaLaNahaNahaNahaNahakaNaqaNakaNakaqaQaqaQaqasaQasaXasaQasasaOasaOasaFaOaFaOaDaOaRaFaRaFaRa1aVaRaVa1a5aVa5",
+"aJa2aJa0aJa2aJa2aEaJaEaJaEaJaEaJataEataEazatatatazatauatauatauataaataaataaanaaanaaaaaaalaaaaaaaa#Caa#Caa#Caa#Caa#C#l#Caa#C#C#C#C#C#C#C#C#B#C#p#C#B#C#F#C#F#C#F#C#F#p#F#p#F#p#F#p#F#p#F#p#t#H#t#H#t#H#t#H#t#H#t#H#t#t#t#H#t#t#t#u#t#t#t#u#K#t#K#t#K#t#K#t#x#t#x#t#x#t#x#t#x#t#x#t#x#t#x#t#x#e#x#t#x#e#x#e#x#e#x#e#x#e#x#e#x#e#x#e#x#e#x#e.s#e#x#e.s#e#x#e.s#e.s#e.s#e.s#e.s#e.s#e.s#e.s#e.s#e.s#e.s#e.s#e.s#e.s#e.s#e.s#e.p#e.p#e.p#e.p#h.p#e.p#h.p.p.p#h.p.p.p#h.p.r.p#h.p.r.p.m.p.q.p.m.p.m.p.m.p.m.p.m.p.m.p.m.p.m.o.m.o.m.o"
+".m.o.m.q.m.o.m.q.m.q.m.q.6.q.6.q.6.q.6.q.6.q.6.q.6.t.6.6.6.t.6.6aT.6.6.6aT.6.6.6aB.6aB.6aB.6aB.6aB.6aBaUaBaUaBaUa4aUaBaBa4aUa4aBaSaBaSaBaSaBaSaBaSaraSaSaSaraSaSaSaSaSaSawaSaGaSawaSawaSaYaSaYaGaYaGaYaGaYaGaYawaAaGaAaYaAaYaAaYaAaAaAaAaAaAaAaAa6aAaWaAaHaAaWaAaHaAaHaWaHaWaHaWaHaWaHaWaIaWaIaHaIaHaIajaIajaIaIaIaIaIaIapaIapaIaLaIaLapaLapaLaZaLaZahaZahaZahaLaNahaNahaNahaNaNaqaNaqaNaQaNaQaqaQaqaQaXasaXasaXasaXaOasaOasaOaOaFaOaFaOaRaFa1aFaRa1aVa1aVa1a5aV",
+"a8a2a8a2a0aJa0aJa0aJa0aJaJaEaJaEaJaEaJaEaJataEataEataEatatazatanatauatauataaataaataaanaaalaaalaaalaaalaaal#lal#9aa#Cal#Caa#Caa#C#l#C#l#C#C#C#C#C#C#C#C#C#C#p#C#p#C#p#C#p#C#F#C#H#p#F#p#H#p#F#p#F#p#F#p#F#p#t#p#t#p#t#H#t#H#t#H#t#H#t#H#t#u#t#u#t#u#t#u#t#u#t#u#t#u#t#u#t#u#e#u#t#u#e#u#e#u#e#u#e#u#e#u#x#t#x#u#x#t#x#u#x#e#x#u#x#e#x#h#x#e#x#h#x#e#x#h#x#e#x#h#e#e#e#h#e#h#e#h#e#h.p#h#e#h.p#h#e#h.p#h#e#h.p#h#e#h.p#h.p#h.p#h.p#h.p#h.p#h.p#h.p.m.p.m.p.m.p.m.p.m.p.m.p.m.p.m.p.m.p.m.r.m.p.m.q.m.o.m.q.m.q.m.q.m.q.m.q.m.q.m"
+".m.m.q.6.m.6.q.6.m.6.q.6.m.6.maT.m.6.6aT.6.6.6aT.6aT.6aT.6aT.6aB.6aB.6aB.6aB.6a4.6aB.6a4aBa4aUa4aBa4aUa4aBa4aBa4aBaSaBaSaBaSaBaSa4aSaBaSaSaSaSaMaSaSaSaMaSaMaSawaSawaSaYaSaYaSaYaGaYaGaYawaYaGaYaYaYawaAaYaAaYaAaYaAaYaAaAaAaAa6aAa6aAa7aAaHaAaHaAaHaAaHa6aHaWaHaWaHaWaHaHaHaWaIaHaIaHaIaHaIajaIaIaIaIaIaIaIaIagaIagaIaLaIaLapaLapaLapaLaLahaZahaLahaLaNaLaNahaNahaNahakaNaqaNakaNakaqaQaqaQaqaQaXasaXasaQasasaOasaOasaOaOaFaOaDaOaRaFaRaFaRa1aVa1aVa1a5aVa5aVa5",
+"a2a0aJa2aJa0aJaJaEaJaEaJaEaJaEaJaEaEataEataEazatatatazatauatauatauataaataaataaanaaanaaaaaaalaaaaaaaa#Caa#Caa#Caa#Caa#C#l#Caa#C#C#C#C#C#C#C#C#B#C#C#C#B#C#p#C#F#C#F#C#F#p#F#p#F#p#F#p#F#p#F#p#t#p#F#H#t#H#t#H#t#H#t#H#t#H#t#H#t#t#t#u#t#t#t#u#t#t#t#u#t#t#K#t#x#t#x#t#x#t#x#t#x#t#x#t#x#t#x#t#x#t#x#t#x#e#x#t#x#e#x#e#x#e#x#e#x#e#x#e#x#e#x#e#x#e#x#e.s#e#x#e.s#e#x#e.s#e.s#e.s#e.s#e.s#e.s#e.s#e.s#e.s#e.s#e.p#e.p#h.p#e.p#h.p#e.p#h.p#e.p#h.p#e.p#h.p#h.p#h.p#h.p#h.p.m.p.m.p.m.p.m.p.m.p.m.p.m.p.m.p.m.p.m.o.m.o.m.o.m.q.m.o"
+".m.q.m.o.m.q.m.q.6.q.6.q.6.q.6.q.6.m.6.q.6.m.6.t.6.6.6.6.6.6aT.6.6.6aT.6aT.6aB.6aB.6aB.6aB.6aB.6aBaUa4aUaBaUa4aUa4aBa4aUa4aBaSaBaSaBaSaBaSa4aSaBaSaSaSaSaSaSaSaSaSaSawaSaGaSawaSawaSaYaSaYaGaYaGaYaGaYaGaYawaAaGaAaYaAaYaAaYaAaAaAaAaAaAaAaAa6aAa6aAaHaAaWaAaHaAaHaWaHaWaHaWaHaWaHaWaIaWaIaHaIaHaIaHaIajaIaIaIaIaIaIapaIapaIaLaIaLapaLapaLaZaLaZaLaZahaZahaLaNaLaNahaNahaNaNaqaNaqaNakaNaXaqaQaqaQaXaQaXasaXasaXasasaOasaOaOaOaOaFaOa1aOa1aFaRaFaRa1aVa1aVa1a5a9",
+"a8a2a8a2a8a2a0aJa0aJa0aJa0aJaJaEaJaEaJaEaJaEaJataEataEataEatatazatanatauatauataaataaataaanaaalaaalaaalaaalaaal#lal#9aa#Cal#Caa#Caa#C#l#C#l#C#l#C#C#C#C#C#C#C#C#p#C#p#C#p#C#p#C#p#C#H#p#F#p#H#p#F#p#H#p#F#p#F#p#t#p#F#p#t#p#t#H#t#H#t#H#t#H#t#u#t#H#t#u#t#u#t#u#t#u#t#u#t#u#t#u#e#u#t#u#e#u#e#u#e#u#e#u#e#u#e#u#e#u#e#u#e#u#e#u#e#u#e#h#e#u#e#h#e#h#e#h#e#h#e#h#e#h#e#h#e#h#e#h#e#h#e#h#e#h#e#h#e#h#e#h#e#h#e#h.p#h#e#h.p#h#e#h.p#h#e#h.p.m#e.m.p.m#e.m.p.m#e.m.p.m#e.m.p.m#h.m.p.m#h.m.o.m.m.m.q.m.m.m.q.m.m.m.q.m.m.m.q.m.m.6"
+".m.6.m.6.m.6.m.6.m.6.m.6.maT.m.6.6aT.6.6.6aT.6aT.6aT.6aT.6aB.6aB.6a4.6aB.6a4.6a4.6a4aBa4aUa4aBa4aUa4aBa4aBa4aBaSaBaSa4aSaBaSa4aSa4aSaSaSaSaMaSaSaSaMaSaMaSaYaSawaSaYaSaYaSaYaSaYaGaYawaYaGaYaYaYawaAaYaAaYaAaYaAaYaAaAaAaAa6aAa6aAa7aAaHaAaHaAaHaAaHa6aHaWaHaWaHaWaHaHaHaWaIaHaIaHaIaHaIaHaIaIaIaIaIaIaIaIagaIagaIaLaIaLaIaLapaLapaLaZaLaZahaLahaLaNaLaNahaNahaNahaNaNaqaNakaNakaNaQaqaQaqaQaXasaXasaQasaQaOasaOasaOaOaFaOaDaOaFaOaRaFaRaFaRa1aVa1a5aRa5aVa5a5a5",
+"a2a0a2a0aJa2aJa2aJaJaEaJaEaJaEaJataJataEataEataEazatatatazatauatauatauataaataaataaanaaanaaaaaaalaaaaaaaa#Caa#Caa#Caa#Caa#C#l#Caa#C#C#C#C#C#C#C#C#B#C#C#C#B#C#p#C#B#C#F#C#F#p#F#p#F#p#F#p#F#p#F#p#F#p#F#p#t#H#t#H#t#H#t#H#t#H#t#H#t#u#t#u#t#t#t#u#t#t#t#u#t#t#t#u#e#t#t#u#x#t#x#t#x#t#x#t#x#t#x#t#x#t#x#t#x#e#x#t#x#e#x#e#x#e#x#e#x#e#x#e#x#e#x#e#x#e#x#e#x#e#x#e#x#e#x#e.s#e#x#e.s#e#x#e.s#e.p#h.p#e.p#h.p#e.p#h.p#e.p#h.p#e.p#h.p#e.p#h.p#h.p#h.p#h.p#h.p#h.p.m.p.m.p.m.p.m.p.m.p.m.p.m.p.m.p.m.p.m.p.m.o.m.o.m.o.m.q.m.o.m.q"
+".m.o.m.q.m.q.6.m.6.q.6.m.6.q.6.m.6.q.6.m.6.6.6.6.6.6.6.6aT.6.6.6aT.6aB.6aB.6aB.6aB.6aB.6a4.6aBaUa4aUa4aUa4aUa4aBa4aUa4aBaSaBaSaBaSaBaSa4aSaBaSaSaSaSaSaSaSaSaSaSaMaSaGaSaYaSawaSaYaSaYaGaYaGaYaGaYaGaYaYaYaGaAaYaAaYaAaYaAaYaAaAa6aAaAaAa6aAa6aAaHaAaWaAaHaAaHa6aHaWaHaWaHaWaHaWaIaWaIaHaIaWaIaHaIajaIaIaIaIaIaIapaIapaIaLaIaZaIaLapaLaZaLaZaLaZahaZahaLaNaZaNahaNahaNaNaNaNaqaNaqaNaqaNaQaqaQaqaQaXasaXasaXasaQaOasaOaOaOaOaFaOaFaOa1aFaRaFaRa1aVa1aVa1a5a9a5a5",
+"a8a2a8a2a8a2a0a2a0aJa0aJa0aJa0aEaJaEaJaEaJataJataJataEataEataEatatatatanatauatauataaataaataaataaalaaalaaalaaalaaal#lal#9aa#Cal#Caa#Caa#C#l#C#l#C#l#C#C#C#C#C#C#C#C#p#C#p#C#p#C#p#C#p#C#H#p#F#C#H#p#F#p#H#p#F#p#F#p#t#p#F#p#t#p#t#p#t#p#t#H#t#H#t#H#t#H#t#u#t#u#t#u#t#u#t#u#t#u#t#u#t#u#t#u#e#u#t#u#e#u#e#u#e#u#e#u#e#u#e#u#e#u#e#u#e#u#e#u#e#u#e#h#e#u#e#h#e#h#e#h#e#h#e#h#e#h#e#h#e#h#e#h#e#h#e#h#e#h#e#h#e#h#e#h#e#h#e#h#e.m#e.m#e.m#e.m#e.m#e.m#e.m#e.m.p.m#h.m.p.m#h.m.p.m#h.m.n.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.6.m.6"
+".m.6.m.6.m.6.m.6.m.6.maT.6.6.6aT.6aT.6aT.6aT.6aT.6aT.6a4.6aB.6a4.6a4.6a4.6a4.6a4aBa4aUa4aBa4aBa4aBa4aBa4a4aSaBaSa4aSa4aSa4aSa4aSaSaSaSaMaSaSaSaMaSaMaSaYaSaYaSaYaSaYaSaYaSaYaGaYawaYaGaYaYaYaYaAaYaAaYaAaYaAaYaAaYaAaAa6aAa6aAa7aAa6aAaHaAaHaAaHa6aHa6aHaWaHaWaHaHaHaWaIaHaIaHaIaHaIaHaIaIaIaIaIaIaIaIaKaIapaIaLaIaLaIaLapaLapaLaZaLaZahaLahaLaNaLaNahaNahaNahaNaNaqaNakaNakaNaQaqaQaqaQaXaQaXasaQasaQaOasaOasaOaOaOaOaFaOaFaOaRaFaRaFaRa1aVa1a5aRa5aVa5a5a5a5b.",
+"a2a8a2a0a2a0aJa2aJa2aJaJaEaJaEaJaEaJataJataEataEataEazatatatazatauatauatauataaataaataaanaaanaaaaaaalaaaaaaaa#Caa#Caa#Caa#Caa#C#l#Caa#C#l#C#C#C#C#C#C#p#C#C#C#B#C#p#C#B#C#F#C#F#p#F#p#F#p#F#p#F#p#F#p#F#p#F#p#t#p#t#H#t#H#t#H#t#H#t#H#t#u#t#H#t#u#t#u#t#t#t#u#t#t#t#u#t#t#t#u#e#t#e#u#e#t#e#u#x#t#x#u#x#t#x#t#x#t#x#t#x#e#x#t#x#e#x#e#x#e#x#e#x#e#x#e#x#e#x#e#x#e#e#h#e#e#e#h#e#e#e#h#e#e#e#h.p#e#e#h.p#e#e#h.p#e#e#h.p#e.p#h.p#h.p#h.p#h.p#h.p#h.p.m.p.m.p.m.p.m.p.m.p.m.p.m.p.m.p.m.p.m.p.m.p.m.o.m.o.m.q.m.o.m.m.m.o.m.m.m.q"
+".m.m.m.q.6.m.6.q.6.m.6.m.6.m.6.m.6.m.6.6.6.6.6.6.6.6aT.6.6.6aT.6aB.6aB.6aB.6a4.6aB.6a4.6a4aUa4aUa4aUa4aUa4aBa4aUa4aBaSaBaSa4aSaBaSa4aSa4aSaSaSaSaSaSaSaSaSaSaMaSaGaSaYaSaYaSaYaSaYaGaYaGaYaGaYaGaYb#aYb#aAaYaAaYaAaYaAaYaAaAa6aAa6aAa6aAa6aAaHaAaWa6aHaAaHa6aHaWaHaWaHaWaHaWbaaWaIaHaIaWaIaHaIajaIaIaIaIaIaIaIaIapaIaLaIaZaIaLapaLaZaLaZaLaZahaZahaLaNaZaNahaNahaNaNaNaNaqaNaqaNaqaNaQaqaQaqaQaXaQaXasaXasaQaOaPaOasaOaOaOaOaFaOa1aOaRaFaRa1aRa1aVa1a5a1a5a5a5a5",
+"bba2a8a2a8a2a8aJa0aJa0aJa0aJa0aJa0aEaJaEaJaEaJataJataJataEataEataEatatatatanatauatanataaataaataaataaalaaalaaalaaalaaal#lalaaaa#Cal#Caa#Cal#C#l#Caa#C#l#C#l#C#C#C#C#C#C#p#C#p#C#p#C#p#C#p#C#p#p#H#C#H#p#F#p#H#p#F#p#H#p#F#p#F#p#t#p#t#p#t#p#t#p#t#p#t#H#t#H#t#u#t#H#t#u#t#u#t#u#t#u#t#u#t#u#t#u#t#u#t#u#e#u#t#u#e#u#e#u#e#u#e#u#e#u#e#u#e#u#e#u#e#u#e#u#e#u#e#h#e#u#e#h#e#u#e#h#e#h#e#h#e#h#e#h#e#h#e#h#e#h#e.m#e.m#e.m#e.m#e.m#e.m#e.m#e.m#e.m#e.m#e.m#e.m#h.m#e.m#h.m#e.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.6.m.6.m.6.m.6"
+".m.6.m.6.m.6.m.6.maT.6.6.6aT.6aT.6.5.6aT.6.5.6aT.6a4.6a4.6a4.6a4.6a4.6a4.6a4aBa4aUa4aBa4aBa4aBa4aBa4a4aSaBaSa4aSa4aSa4aSa4aSaSaSaSaMaSaSaSbcaSaMaSaYaSaYaSaYaSaYaSaYaSaYaGaYaYaYaGaYaYaYaYaYaYaAaYaAaYaAaYa6aYaAaAa6aAa6aAa7aAa6aAaHa6aHaAaHa6aHa6aHaWaHaWaHaWaHaWbaaHaIaHaIaHaIaHaIaIaIaIaIaIaIaIaKaIapaIaLaIaLaIaLapaLapaLaZaLaZaLaLahaZaNaLaNaLaNahaNahaNaNaNaNakaNaqaNaQaNaQaqaQaXaQaXasaQasaXaOaQaOasaOaOaOaOaFaOaFaOaRaOaRaFaRa1aRa1aVaRa5a1a5a5a5a5a5a5b.",
+"a2a8a2a8a2a0aJa0aJa2aJa2aJaJaEaJaEaJaEaJataJataEataEataEazatatatazatauataaatauataaataaataaalaaanaaaaaaalaaaaaaal#Caa#Caa#Caa#Caa#Caa#Caa#C#l#C#C#C#C#C#C#C#C#C#C#B#C#p#C#B#C#p#C#F#p#F#C#F#p#F#p#F#p#F#p#F#p#F#p#t#p#t#p#t#p#t#H#t#H#t#H#t#H#t#H#t#u#t#u#t#u#t#u#t#t#t#u#t#t#t#u#e#t#t#u#e#t#e#u#e#t#e#u#e#t#e#u#e#t#e#u#e#t#e#u#e#e#e#u#e#e#e#h#e#e#e#h#e#e#e#h#e#e#e#h#e#e#e#h#e#e#e#h#e#e#e#h#e#e#e#h#e#h#e#h.p#h#e#h.p#h#e#h.p#h#e#h.p.m#e.m.p.m#e.m.p.m#e.m.p.m#e.m.p.m#e.m.p.m#e.m.o.m.n.m.o.m.m.m.o.m.m.m.o.m.m.m.m.m.m"
+".6.m.6.m.6.m.6.m.6.m.6.m.6.m.6.m.6.6.6.6.6.6.6.6aT.6.6.6aT.6aB.6a4.6aB.6a4.6a4.6a4.6a4aUa4aUa4aUa4aUa4aBa4aUa4aBaSaBaSa4aSa4aSa4aSa4aSaSaSaSaSaSaSaSaSaSbcaSaGaSaYaSaYaSaYaSaYaSaYaGaYaGaYaGaYb#aYb#aAaYaAaYaAaYaAaYaAaAa6aAa6aAa6aAa6aAaHaAaWa6aHaAaHa6aHaWaHaWaHaWaHaWbaaWaIaHaIaWaIaHaIaHaIaIaIaIaIaIaIaIapaIaLaIaZaIaLaIaLaZaLaZaLaZaLaZahaZaNaZaNaLaNahaNaNaNaNaNaNaqaNaqaNaQaqaQaqaQaqaQaXasaXasaXaOaXaOasaOasaOaOaFaOaFaOaRaFa1a1aRa1aVa1a5a1a5aVa5bda5a5",
+"bba2bba2a8a2a8a2a8aJa0aJa0aJa0aJa3aJa3aEaJaEaJaEaJataJataEataEataEataEatatatatanatauatanataaataaataaataaalaaalaaalaaalaaal#lalaaaa#Cal#Caa#Cal#C#l#Caa#C#l#C#l#C#C#C#C#C#C#p#C#p#C#p#C#p#C#p#C#p#C#p#C#p#p#F#p#H#p#F#p#H#p#F#p#H#p#t#p#t#p#t#p#t#p#t#p#t#p#t#p#t.l#t#H#t#u#t#u#t#u#t#u#t#u#t#u#t#u#t#u#t#u#e#u#t#u#e#u#e#u#e#u#e#u#e#u#e#u#e#u#e#u#e#u#e#u#e#u#e#u#e#u#e#h#e#u#e#h#e#u#e#h#e.l#e.m#e.m#e.m#e.m#e.m#e.m#e.m#e.m#e.m#e.m#h.m#e.m#h.m#e.m#h.m#e.m.m.m.n.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.6.m.6.m.6.m.6.m.6"
+".m.6.maT.m.6.m.5.6.6.6.5.6aT.6.5.6.5.6.5.6.5.6a4.6a4.6a4.6a4.6a4.6a4.6a4aBa4aUa4aBa4aBa4a4a4aBa4a4aSa4aSa4aSa4aSa4aSa4aSaSaSaSaMaSaSaSbcaSbcaSaYaSaYaSaYaSaYaSaYaSaYaGaYaYaYb#aYaYaYaYaYaYaAaYaAaYaAaYa6aYa6aAa6aAa6aAa7aAa6aAaHa6aHa6aHa6aHa6aHaWaHaWbaaWaHaWbaaHaIaHaIaHaIaHaIbaaIaIaIaIaIaIaKaIapaIaLaIaLaIaLaIaLapaLaZaLaZaLaLahaZaNaLaNaLaNahaNahaNaNaNaNakaNaqaNaQaNaQaqaQaXaQaXaQaXasaXaOaQaOasaOasaOaOaOaOaFaOaRaOaRaFaRa1aRa1aVa1aVa1a5aVa5a5a5a5b.a5be",
+"a2a8a2a8a2a0aJa0aJa0aJa2aJa2aEaJaEaJaEaJaEaJataJataEataEataEazatatatazatauataaataaataaataaataaalaaanaaalaaalaaaaaaal#laa#Caa#Caa#Caa#Caa#Caa#C#l#C#C#C#C#C#C#C#C#C#C#p#C#p#C#B#C#p#C#B#C#F#C#F#p#F#p#F#p#F#p#F#p#F#p#t#p#F#p#t#p#t#p#t#H#t#H#t#H#t#H#t#u#t#H#t#u#t#u#t#u#t#u#t#u#t#u#t#u#t#u#e#t#t#u#e#t#e#u#e#t#e#u#e#t#e#u#e#t#e#u#e#t#e#u#e#e#e#u#e#e#e#h#e#e#e#h#e#e#e#h#e#e#e#h#e#h#e#h#e#h#e#h#e#h#e#h#e#h#e#h#e#h#e#h#e.m#e.m#e.m#e.m#e.m#e.m#e.m#e.m#e.m#e.m#e.m#e.m#e.m#e.m.n.m.m.m.n.m.m.m.n.m.m.m.m.m.m.m.m.m.m.6.m"
+".6.m.6.m.6.m.6.m.6.m.6.m.6.m.6.6.6.6aT.6.6.6aT.6.6.6.5.6aB.6a4.6a4.6a4.6a4.6a4.6a4aUa4aUa4aUa4aUa4aBa4aUa4a4aSaBaSa4aSa4aSa4aSa4aSaSaSaSaSaSaSaSaSaSbcaSb#aSaYaSaYaSaYaSaYaSaYaGaYb#aYaGaYb#aYb#aAaYaAb#aAaYaAaYaAaYa6aAa6aAa6aAa6aAa6aAaWa6aHa6aHa6aHa6aHaWaHaWaHaWbaaWaIaHaIaWaIaHaIaHaIaIaIaIaIaIaIaIaIaIaZaIaZaIaLaIaLaZaLaZaLaZaLaZahaZaNaZaNaLaNahaNaNaNaNaNaNaqaNaqaNaQaNaXaqaQaqaQaXaQaXasaXaOaXaOasaOasaOaOaOaOaFaOa1aOa1a1aRa1aRa1a5a1a5a1a5a9a5a5a5a5",
+"bba8bba2bba2a8a2a8a2a8aJa0aJa0aJa0aJa3aJa3aEaJaEaJaEaJataJataEataEataEataEatatatatanatauatanataaataaataaataaalaaalaaalaaalaaal#lalaaal#Cal#Caa#Cal#Caa#Caa#C#l#C#l#C#l#C#C#C#C#p#C#C#C#p#C#p#C#p#C#p#C#p#C#p#p#p#p#H#p#F#p#H#p#F#p#H#p#t#p#H#p#t#p#u#p#t#p#t#p#t#p#t#p#t#p#t.l#t#p#t.l#t#u#t#u#t#u#t#u#t#u#t#u#t#u#t#u#e#u#t#u#e#u#e#u#e#u#e#u#e#u#e#u#e#u#e#u#e#u#e#u#e#u#e.l#e.l#e.l#e.l#e.m#e.l#e.m#e.l#e.m#e.l#e.m#e.l#h.m#e.m#h.m#e.m#h.m#e.m#h.m.n.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.6.m.6.m.6.m.k.m.6.m.k.m.6"
+".m.5.m.6.6.5.6.k.6.5.6.5.6.5.6.5.6.5.6.5.6a4.6a4.6a4.6a4.6a4.6a4.6a4aBa4aUa4a4a4aBa4a4a4a4a4a4aSa4aSa4aSa4aSa4aSa4aSaSaSaSbcaSaSaSbcaSbcaSaYaSaYaSaYaSaYaSaYaSaYaGaYb#aYb#aYaYaYaYaYaYaAaYaAaYaAaYa6aYa6aAa6aAa6aAa7aAa6aAa7a6aHa6aHa6aHa6aHa6aHaWbaaWbaaWbaaHaIaHaIaHaIaHaIbaaIaIaIaIaIaIaIaIaIaIaLaIaLaIaLaIaLapaLaZaLaZaLaLahaZaNaLaNaLaNaLaNahaNaNaNaNaNaNaqaNaQaNaQaNaQaXaQaXaQaXasaXaOaQaOaQaOasaOaOaOaOaFaOaRaOa1aOaRa1aRa1aRa1aVa1a5aRa5aVa5a5a5a5bea5be",
+"a2a8a2a8a2a8a2a0aJa0aJa0aJa2aJa2aEaJaEaJaEaJaEaJataJataEataEataEazatatatauatauataaataaataaataaataaalaaanaaalaaalaaaaaaal#laa#Caa#Caa#Caa#Caa#Caa#C#l#C#l#C#C#C#C#C#C#C#C#p#C#p#C#B#C#p#C#B#C#p#C#F#p#F#p#F#p#F#p#F#p#F#p#F#p#F#p#t#p#t#p#t#p#t#p#t#H#t#H#t#u#t#H#t#u#t#u#t#u#t#u#t#u#t#u#t#u#t#u#t#u#t#u#e#u#t#u#e#u#e#u#e#u#e#u#e#u#e#u#e#u#e#u#e#u#e#u#e#h#e#u#e#h#e#u#e#h#e#h#e#h#e#h#e#h#e#h#e#h#e#h#e#h#e#h#e.m#e.m#e.m#e.m#e.m#e.m#e.m#e.m#e.m#e.m#e.m#e.m#e.m#e.m.n.m.n.m.n.m.m.m.n.m.m.m.n.m.m.m.m.m.m.m.m.6.m.6.m.6.m"
+".6.m.6.m.6.m.6.m.6.m.6.6.6.6.6.6.5.6.6.6.5.6.6.6.5.6a4.6a4.6a4.6a4.6a4.6a4.6a4aUa4aUa4aUa4aUa4a4a4aUa4a4aSa4aSa4aSa4aSa4aSa4aSaSaSaSaSaSbfaSaSaSbcaSb#aSaYaSaYaSaYaSaYaSaYaGaYb#aYb#aYb#aYb#aYaYaAb#aAaYa6aYaAaYa6aAa6aAa6aAa6aAa6aAaWa6aHa6aHa6aHa6aHaWaHaWaHaWbaaWbaaWaIaWaIaHaIaHaIaIaIaIaIaIaIaIaIaIaZaIaZaIaLaIaLaZaLaZaLaZaLaZaLaZaNaZaNaLaNaLaNaNaNaNaNaNaNaNaqaNaQaNaXaqaQaqaQaXaQaXasaXaOaXaOaQaOasaOaOaOaOaFaOa1aOa1aFaRa1aRa1aVa1a5a1a5a9a5a5a5a5b.a5",
+"bba8bba0a8a2a8a2a8a2a8a2a0aJa0aJa0aJa0aJa3aJa3aEaJaEaJaEaJataJataEataEatatatatatatatatanataaatanataaataaataaataaalaaalaaalaaalaaalaaalaaal#lal#Caa#Cal#Caa#Cal#C#l#C#l#C#l#C#l#C#C#p#C#C#C#p#C#p#C#p#C#p#C#p#C#p#p#p#p#p#p#H#p#H#p#F#p#H#p#F#p#H#p#t#p#u#p#t#p#u#p#t#p#t#p#t#p#t#p#t#p#t.l#t.l#t.l#t.l#t.l#t.l#t.l#t.l#t.l#t.l#t.l#e.l#t.l#e.l#e.l#e.l#e.l#e.l#e.l#e.l#e.l#e.l#e.l#e.l#e.l#e.l#e.l#e.l#e.l#e.l#h.l#e.l#h.m#e.l#h.m#e.l#h.m.n.l.m.m.m.l.m.m.m.l.m.m.m.l.m.m.m.l.m.m.m.l.m.m.m.k.m.6.m.k.m.6.m.k.m.k.m.k.m.k.m.5"
+".m.k.6.5.6.5.6.5.6.5.6.5.6.5.6.5.6a4.6a4.6a4.6a4.6a4.6a4.6a4.6a4a4a4aUa4a4a4a4a4a4a4a4a4a4aSa4aSa4aSa4aSa4aSa4bfaSaSaSbcaSbfaSbcaSbcaSbcaSaYaSaYaSaYaSaYbfaYaSaYb#aYb#aYaYaYaYaYaYaAaYa6aYaAaYa6aYa6aYa6aAa6aAa7aAa6aAa7a6aHa6aHa6aHa6aHa6aHaWbaaWbaaWbaaHbaaWaIaHaIaHaIbaaIbaaIaIaIaIbgaIaIaIaLaIaLaIaLaIaLaIaLaZaLaZaLaZaLaZaNaLaNaLaNaLaNahaNaNaNaNaNaNaqaNaQaNaQaNaQaqaQaXaQaXaQaXaOaQaOaQaOasaOasaOaOaOaOa1aOa1aOaRa1aRa1aRa1aVa1a5aRa5aVa5a5a5a5bea5bea5bh",
+"a2bba2a8a2a8a2a8a2a0aJa0aJa0aJa2aJa2aEaJaEaJaEaJaEaJataJataEataEataEazatatatauatauataaataaataaataaataaalaaanaaalaaalaaaaaaal#laa#Caa#Caa#Caa#Caa#Caa#C#l#C#l#C#l#C#C#C#C#C#C#p#C#p#C#p#C#p#C#B#C#p#C#B#p#H#p#F#p#F#p#F#p#F#p#F#p#F#p#t#p#t#p#t#p#t#p#t#p#t#p#t#p#t#H#t#u#t#H#t#u#t#u#t#u#t#u#t#u#t#u#t#u#t#u#e#u#t#u#e#u#e#u#e#u#e#u#e#u#e#u#e#u#e#u#e#u#e#u#e#u#e#u#e#u#e#u#e#h#e#u#e#h#e#u#e#h#e.m#e.m#e.m#e.m#e.m#e.m#e.m#e.m#e.m#e.m#e.m#e.m#e.m#e.m#e.m#e.m.n.m.n.m.m.m.n.m.m.m.n.m.m.m.m.m.m.m.m.m.m.6.m.6.m.6.m.6.m.6.m"
+".6.m.6.m.6.m.k.m.6.6.k.6.6.6.5.6.k.6.5.6.5.6.5.6a4.6a4.6a4.6a4.6a4.6a4.6a4aUa4aUa4bia4aUa4a4a4bia4a4aSa4aSa4aSa4aSa4aSa4aSaSaSaSaSaSbfaSbfaSbcaSb#aSaYaSaYaSaYaSaYbfaYaGaYb#aYb#aYb#aYb#aYaYaAb#aAaYa6aYa6aYa6aAa6aAa6aAa6aAa6aAaWa6aHa6aHa6aHa6aHaWbaaWaHaWbaaWbaaWaIaWaIbaaIaHaIbaaIaIaIaIaIaIaIaIaZaIaZaIaLaIaLbgaLaZaLaZaLaZaLaZaNaZaNaLaNaZaNaNaNaNaNaNaNaNaqaNaXaNaXaNaQaqaQaXaQaXasaXaOaXaOaQaOaPaOaOaOaOaFaOa1aOa1aOaRaFaRa1aRa1a5a1a5a1a5a5a5a5a5a5bea5",
+"bba8bba8bba0a8a2a8a2a8a2a8a2a0aJa0aJa0aJa0aJa3aJa3aEaJaEaJaEaJataJataEataEatatatatatatatatanataaatanataaataaataaataaalaaalaaalaaalaaalaaalaaal#lal#Caa#Cal#Caa#Cal#C#l#C#l#C#l#C#l#C#l#C#C#C#C#p#C#p#C#p#C#p#C#p#C#p#p#p#C#p#p#p#p#p#p#H#p#H#p#F#p#H#p#t#p#H#p#t#p#u#p#t#p#u#p#t#p#u#p#t#p#u.l#t#p#t.l#t.l#t.l#t.l#t.l#t.l#t.l#t.l#t.l#t.l#t.l#e.l#t.l#e.l#t.l#e.l#e.l#e.l#e.l#e.l#h.l#e.l#h.l#e.l#h.l#e.l#h.l#e.l#h.l#e.l#h.l#e.l.m.l.m.l.m.l.m.l.m.l.m.l.m.l.m.l.m.l.m.l.m.l.m.l.m.k.m.k.m.k.m.k.m.k.m.k.m.k.m.5.m.k.m.5.6.k"
+".6.5.6.5.6.5.6.5.6.5.6.5.6.5.6a4.6a4.6a4.6a4.ka4.6a4.ka4.6a4a4a4bia4a4a4a4a4a4a4a4a4a4aSa4aSa4aSa4aSa4aSa4bfa4aSaSbcaSbfaSbcaSbcaSbcaSaYaSaYaSaYaSaYbfaYbfaYb#aYb#aYaYaYaYaYaYaAaYa6aYa6aYa6aYa6aYa6aAa6aAa7a6a6aAa7a6aHa6aHa6aHa6aHa6aHaWbaaWbaaWbaaHbaaWaIaHaIaHaIbaaIbaaIaIaIaIbgaIaIaIaLaIaLaIaLaIaLaIaLaZaLaZaLaZaLaZaNaLaNaLaNaLaNahaNaNaNaNaNaNaqaNaQaNaQaNaQaqaQaXaQaXaQaXaOaQaOaXaOaQaOasaOaOaOaOa1aOa1aOaRaOaRa1aRa1aRa1a5aRa5a1a5a5a5a5bja5bea5bhbjbh",
+"bkbba2bba2a8a2a8a2a8a2a0aJa0aJa0aJa2aJa2aEaJaEaJaEaJaEaJataJataEataEataEazatatatauatauataaataaataaataaataaalaaanaaalaaalaaaaaaal#laa#Cal#Caa#Caa#Caa#Caa#C#l#C#l#C#l#C#C#C#C#C#C#p#C#p#C#p#C#p#C#B#C#p#C#B#p#p#C#F#p#H#p#F#p#F#p#F#p#F#p#t#p#F#p#t#p#t#p#t#p#t#p#t#p#t#p#t.l#t#p#t.l#t.l#t#u#t#u#t#u#t#u#t#u#t#u#t#u#t#u#e#u#t#u#e#u#e#u#e#u#e#u#e#u#e#u#e#u#e#u#e#u#e#u#e#u#e.l#e.l#e.l#e.l#e.l#e.m#e.l#e.m#e.l#e.m#e.l#e.m#e.l#e.m#e.m#e.m#e.m#e.m#e.m.n.m.m.m.n.m.m.m.n.m.m.m.n.m.m.m.m.m.m.l.m.m.m.k.m.6.m.k.m.6.m.k.m.6.m"
+".k.m.6.m.k.6.k.6.k.6.k.6.5.6.k.6.5.6.5.6.5.6a4.6a4.6a4.6a4.6a4.6a4.6a4bia4aUa4bia4bia4a4a4bia4a4aSa4aSa4aSa4aSa4aSa4aSa4bfaSaSaSbfaSbfaSbcaSbfaSaYaSaYaSaYaSaYbfaYaGaYb#aYb#aYb#aYb#aYaYaAb#aAaYa6aYa6aYa6aAa6aAa6aAa6a6a6aAa6a6aHa6aWa6aHa6aHa6baaWbaaWbaaWbaaWaIaWaIbaaIblaIbaaIaIaIaIaIaIaIaIbgaIaZaIaLaIaZbgaLaZaLaZaLaZaLaZaNaZaNaLaNaZaNaNaNaNaNaNaNaNaqaNaXaNaXaNaQaqaQaXaQaXaQaXaOaXaOaXaOaPaOaOaOaOaOaOa1aOa1aOaRaFa1a1aRa1aVa1a5a1a5a5a5bda5a5bea5bebj",
+"bba8bba8bbbkbba0a8a2a8a2a8a2a8a2a0aJa0aJa0aJa0aJa3aEa3aEaJaEaJaEaJataJataEataEatatatatatatatatatataaatanataaataaataaataaalaaalaaalaaalaaalaaalaaal#lal#lal#Cal#Caa#Cal#C#l#C#o#C#l#C#l#C#l#C#l#C#C#p#C#p#C#p#C#p#C#p#C#p#C#p#C#p#p#p#p#p#p#p#p#p#p#H#p#H#p#H#p#H#p#t#p#u#p#t#p#u#p#t#p#u#p#t#p#u#p#t#p#u.l#t#p#u.l#t.l#u.l#t.l#u.l#t.l#u.l#t.l#u.l#t.l#u.l#t.l#u.l#e.l#u.l#e.l#u.l#e.l#h.l#e.l#h.l#e.l#h.l#e.l#h.l#h.l.m.l.m.l.m.l.m.l.m.l.m.l.m.l.m.l.m.l.m.l.m.l.m.l.m.l.m.k.m.k.m.k.m.k.m.k.m.k.m.k.m.k.m.5.m.k.m.5.6.k.6.5"
+".6.5.6.5.6.5.6.5.6.5.6.5.ka4.6a4.ka4.6a4.ka4.ka4.5a4.ka4a4a4bia4a4a4a4a4a4a4a4a4a4aSa4aSa4aSa4bfa4aSa4bfa4bfaSbcaSbfaSbcaSbcaSbcaSaYaSaYbfaYaSaYbfaYbfaYb#aYb#aYaYaYb#aYaYaYaYa6aYa6aYa6aYa6aYa6aAa6aAa7a6a6a6a7a6aHa6aHa6aHa6aHa6aHa6baaWbaaWbaaHbaaWaIbaaIaHaIbaaIbaaIaIaIaIbgaIbgaIbmaIaZaIaLbgaLaIaLaZaLaZaLaZaLaZbnaLaNaLaNaLaNaLaNaNaNaNaNaNaNaNaQaNaXaNaQaNaQaqaQaXaQaXaQaQaOaXaOaQaOasaOaOaOaOaOaOa1aOaRaOaRaFaRa1aRa1a5a1a5a1a5a5a5a5a5a5bea5bebjbebebh",
+"a8bbbkbba2bba2a8a2a8a2a8a2a0aJa0aJa0aJa2aJa2aEaJaEaJaEaJaEaJataJataEataEataEazatatatazatauataaataaataaataaataaalaaanaaalaaalaaaaaaal#laaaaal#Caa#Caa#Caa#Caa#C#l#C#l#C#l#C#l#C#C#C#C#p#C#C#C#p#C#p#C#p#C#p#C#B#p#p#C#B#p#p#p#F#p#H#p#F#p#F#p#F#p#F#p#t#p#t#p#t#p#t#p#t#p#t#p#t#p#t#p#t.l#t#p#t.l#t.l#t.l#t.l#t.l#t.l#t.l#t.l#t.l#t.l#e.l#t.l#e.l#t.l#e.l#e.l#e.l#e.l#e.l#e.l#e.l#e.l#e.l#e.l#e.l#e.l#e.l#e.l#e.l#e.l#e.l#e.l#e.m#e.l#e.m#e.l#e.m.m.l.n.m.m.l.n.m.m.l.n.m.m.l.m.m.m.l.m.m.m.l.m.6.m.k.m.k.m.k.m.k.m.k.m.k.m.k.m"
+".k.m.k.6.k.6.5.6.k.6.5.6.k.6.5.6.5.6a4.6a4.6a4.6a4.6a4.6a4.ka4.6a4bia4bia4a4a4bia4a4a4bia4a4aSa4aSa4aSa4aSa4bfa4aSa4bfaSbfaSbfaSbfaSbcaSbfaSaYaSaYaSaYaSaYbfaYbfaYb#aYb#aYb#aYb#aYaYa6b#aAaYa6aYa6aYa6aYa6aAa6aAa6a6a6a6a6a6aHa6aWa6aHa6aHa6baaWbaaWbaaWbaaWbaaWaIbaaIblaIbaaIaIaIaIbgaIaIaIbgaIaZaIaLaIaZbgaLaZaLaZaLaZaLaZbnaZaNaZaNaZaNbnaNaNaNaNaNaNaNaNaXaNaXaNaQaNaQaXaQaXaQaXaOaXaOaXaOaXaOaOaOaOaOaOa1aOa1aOa1aOa1a1aRa1aRa1a5a1a5boa5bda5a5bja5bea5bebe",
+"bbbbbba8bba8bbbkbba0a8a2a8a2a8a2a8a2a0aJa0aJa0aJa0aJa3aEa3aEaJaEa3aEaJataJataEataEatatatatatatatatatataaatanataaatalataaataa#iaaalaaalaaalaaalaaalaaal#lal#lal#Cal#Caa#Cal#C#l#C#o#C#l#C#l#C#l#C#l#C#C#p#C#p#C#p#C#p#C#p#C#p#C#p#C#p#p#p#C#p#p#p#p#p#p#p#p#p#p#p#p#H#p#u#p#H#p#u#p#u#p#t#p#u#p#t#p#u#p#t#p#u#p#t#p#u.l#t#p#u.l#t.l#u.l#t.l#u.l#t.l#u.l#t.l#u.l#t.l#u.l#t.l#u.l#e.l#u.l#e.l#u.l#h.l#u.l.m.l.m.l.m.l.m.l.m.l.m.l.m.l.m.l.m.l.m.l.m.l.m.l.m.l.m.l.m.l.m.k.m.k.m.k.m.k.m.k.m.k.m.k.m.5.m.k.m.5.m.k.6.5.6.5.6.5.6.5"
+".6.5.k.5.6.5.k.5.6a4.ka4.ka4.ka4.ka4.ka4.ka4.5a4bia4a4a4bia4a4a4a4a4a4a4a4a4a4aSa4bfa4aSa4bfa4bfa4bfa4bfaSbcaSbfaSbcaSbcaSbcbfaYaSaYbfaYbfaYbfaYbfaYb#aYb#aYaYaYb#bpaYaYaYa6aYa6aYa6aYa6aYa6aAa6aAa7a6a6a6a7a6a7a6aHa6aHa6baa6aHa6baaWbaaWbaaHbaaWbabaaIbaaIbaaIbaaIbaaIaIbgaIbgaIbmaIaZaIaLbgaLbgaLbgaLaZaLaZaLaZbnaLaNaZaNaLaNaLaNaNaNaNaNaNaNaNaQaNaXaNaQaNaQaqaQaXaQaXaQaXaOaXaOaQaOaQaOaOaOaOaOaOaFaOaRaOaRaFaRa1aRa1bqa1a5a1a5bqa5a5a5a5a5a5bea5bebjbhbebh",
+"bkbba8bbbkbba2bba2a8a2a8a2a8a2a0aJa0aJa0aJaJaJaJaEaJaEaJaEaJaEaJataJataEataEataEazatatatazatauataaataaataaataaataaataaanaaalaaalaaalaaal#laaaaal#Caa#Caa#Caa#Caa#C#l#C#l#C#l#C#l#C#l#C#C#p#C#C#C#p#C#p#C#p#C#p#C#p#C#p#C#B#p#p#p#B#p#p#p#F#p#H#p#F#p#F#p#t#p#F#p#t#p#t#p#t#p#t#p#t#p#t#p#t#p#t#p#t.l#t#p#t.l#t.l#t.l#t.l#t.l#t.l#t.l#t.l#t.l#t.l#e.l#t.l#e.l#t.l#e.l#e.l#e.l#e.l#e.l#e.l#e.l#e.l#e.l#e.l#e.l#e.l#e.l#e.l#e.l#e.l#e.l.m.l.n.l.m.l.n.l.m.l.n.l.m.l.m.l.m.l.m.l.m.l.m.l.m.k.m.k.m.k.m.k.m.k.m.k.m.k.m.k.m.k.m.k.6"
+".k.6.k.6.5.6.k.6.5.6.k.6.5.6.5.6a4.6a4.ka4.6a4.ka4.6a4.ka4.ka4bia4bia4a4a4bia4a4a4bia4a4aSa4aSa4bfa4aSa4bfa4bfa4bfaSbfaSbfaSbfaSbcaSbfaSaYaSaYbfaYaSaYbfaYbfaYb#aYb#aYb#aYb#aYaYbpb#aAaYa6aYa6aYa6aYa6aAa6aAa6a6a6a6a6a6aHa6aWa6aHa6aHa6baaWbaaWbaaWbaaWbaaWaIbaaIblaIbaaIbaaIaIbgaIaIaIbgaIaZaIaLaIaZbgaLbgaLaZaLaZaLaZbnaZaNaZaNaZaNbnaNaNaNaNaNaNaNaNaXaNaXaNaQaNaXaXaQaXaQaXbraXaOaXaOaXaOaOaOaOaOaObsaOa1aOa1aOa1a1aRa1aRa1a5a1a5a1a5bda5a5bja5bea5bebjbebe",
+"btbbbbbbbba8bba8bbbkbba0a8a2a8a2a8a2a8a2a0aJa0aJa0aJa0aJa3aEa3aEaJaEa3aEaJataJataEataEatatatatatatatatatatanatanataaatalataaataa#iaaanaaalaaalaaalaaalaaal#lal#lal#lal#Cal#Cal#C#l#C#o#C#l#C#o#C#l#C#l#C#l#p#l#C#C#p#C#p#C#p#C#p#C#p#C#p#p#p#C#p#p#p#p#p#p#p#p#p#p#p#p#p#p#p#p#p#p.l#p.l#p#u#p#u#p#u#p#u#p#u#p#u#p#u#p#u#p#u#p#u.l#u#p#u.l#u.l#u.l#u.l#u.l#u.l#u.l#u.l#u.l#u.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.m.l.l.l.m.l.l.l.m.l.l.l.m.l.l.l.m.l.l.l.m.l.m.l.m.k.m.k.m.k.m.k.m.k.m.k.m.5.l.k.m.5.l.k.m.5.l.k.6.5.k.5.6.5.k.5.6.5"
+".k.5.k.5.k.5.ka4.ka4.ka4.ka4.ka4.ka4.ka4.5a4bia4a4a4a4a4a4a4a4a4a4a4a4.ia4aSa4bfa4bfa4bfa4bfa4bca4bfaSbcaSbfaSbcaSbcaSbcbfaYaSaYbfaYbfaYbfaYbfaYb#aYb#aYaYaYb#bpaYbpaYa6aYa6aYa6aYa6aYa6aYa6aAa7a6a6a6a7a6a7a6aHa6aHa6baa6baa6baaWbaaWbaaHbaaWbabaaIbaaIbaaIbaaIbaaIaIbgaIbgaIbmaIbgaIaLbgaLbgaLbgaLaZaLaZaLaZbnaLaNaZaNaLaNaLaNbnaNaNaNaNaNaNbuaNaXaNaQaNaQaNaQaXaQaXaQaXasaXaOaQaOaQaOaOaOaOaOaOaFaOaRaOa1aOaRa1aRa1bqa1a5a1a5bqa5a5a5a5a5a5bea5bebjbhbebhbebv",
+"bbbbbkbba8bba2bba2bba2a8a2a8a2a0a2a0aJa0aJa0aJaJaJaJaEaJaEaJaEaJaEaJataJataEataEataEazatatatazatanataaataaataaataaataaataaanaaalaaalaaalaaalaaaaaaal#laa#Cal#Caa#Caa#C#l#C#l#C#l#C#l#C#l#C#l#C#C#C#C#p#C#p#C#p#C#p#C#p#C#p#C#p#p#p#p#B#p#p#p#B#p#H#p#F#p#H#p#F#p#H#p#t#p#t#p#t#p#t#p#t#p#t#p#t#p#t#p#t.l#t#p#t.l#t.l#t.l#t.l#t.l#t.l#t.l#t.l#t.l#t.l#t.l#t.l#t.l#t.l#e.l#t.l#e.l#t.l#e.l#e.l#e.l#e.l#e.l#e.l#e.l#h.l#e.l.m.l.n.l.m.l.n.l.m.l.n.l.m.l.m.l.m.l.m.l.m.l.m.l.m.l.m.k.m.k.m.k.m.k.m.k.m.k.m.k.m.k.m.k.m.k.m.k.6.5.6"
+".k.6.5.6.k.6.5.6.5.k.5.6.5.ka4.6a4.ka4.ka4.ka4.ka4.ka4.ka4bia4bia4a4a4bia4a4a4a4a4a4aSa4aSa4bfa4aSa4bfa4bfa4bfaSbfaSbfaSbfaSbcaSbfbfaYaSaYbfaYbfaYbfaYbfaYb#aYb#aYb#aYb#aYaYbpb#a6aYa6aYa6aYa6aYa6aAa6aAa6a6a6a6a6a6a7a6aWa6aHa6aHa6baaWbaaWbaaWbaaWbaaWaIbaaIblaIbaaIbaaIaIbgaIbgaIbgaIbgaIaLaIaZbgaLbgaLaZaLaZaLaZbnaZaNaZaNaZaNbnaNbnaNaNaNaNaNaNbwaNaXaNaQaNaXaXaQaXaQaXbraXaOaXaOaXaObraOaOaOaObsaOa1aOa1aOa1a1aRa1aRa1bqa1a5a1a5boa5a5a5a5bja5bea5bebebhbe",
+"btbbbtbbbbbbbba8bba8bbbkbba0a8a2a8a2a8a2a8a2a0aJa0aJa0aJa0aJa3aEa3aEaJaEa3aEaJataJataEataEatatatatatatatatatatanatanataaatalataaataa#iaaataaalaaalaaalaaalaaal#lal#lal#lal#lal#Cal#C#l#Cal#C#l#C#o#C#l#C#o#C#l#C#l#C#l#p#C#p#C#p#C#p#C#p#C#p#C#p#C#p#p#p#p#p#p#p#p#p#p#p#p#p#p#p#p#p#p.l#p#p#p.l#p.l#p.l#p.l#p.l#p.l#p.l#p.l#p.l#p.l#p.l#p.l.l.l#p.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.m.k.l.k.m.k.l.k.m.k.l.k.m.5.l.k.m.5.l.k.m.5.l.k.l.5.k.5.k.5.k.5.k.5.k.5.k.5.k.5"
+".k.5.k.5.ka4.ka4.ka4.ka4.ka4.5a4.ka4.5a4bia4a4a4a4.ia4a4a4.ia4a4a4bfa4bfa4bfa4bfa4bfa4bfa4bca4bfaSbcaSbfaSbcbfbcaSbcbfaYbfaYbfaYbfaYbfaYbfaYb#aYb#bpaYaYb#bpaYbpaYa6aYa6aYa6aYa6aYa6bpa6aAa7a6a6a6a7a6a7a6aHa6aHa6baa6baa6baaWbaaWbaaHbaaWbabaaIbaaIbaaIbaaIbaaIaIbgaIbgaIbmaIbgaIaLbgaLbgaLbgaLaZaLaZaLaZbnaLbnaZaNaLaNaLaNbnaNaNaNaNaNaNbwaNaXaNaQaNaQaNaQaXaQaXaQaXaQaXaOaQaOaQaOaOaOaOaOaOaOaOa1aOa1aOaRa1aRa1aRa1bqa1a5aRa5boa5a5a5a5bja5bea5bhbebhbebvbebx",
+"bbbbbbbbbkbba8bba2a8a2a8a2a8a2a8a2a0a2a0aJa0aJa0aJaJaJa3aEaJaEaJaEaJaEaJataJataEataEataEatatatatazatanataaataaataaataaataaataaanaaalaaalaaalaaalaaalaaal#laa#lal#Caa#Caa#C#l#Caa#C#l#C#l#C#l#C#l#C#l#C#C#p#C#p#C#p#C#p#C#p#C#p#C#p#p#p#C#p#p#p#p#B#p#p#p#B#p#p#p#F#p#H#p#t#p#H#p#t#p#u#p#t#p#t#p#t#p#t#p#t#p#t#p#t.l#t#p#t.l#t.l#t.l#t.l#t.l#t.l#t.l#t.l#t.l#t.l#t.l#t.l#t.l#t.l#t.l#t.l#e.l#u.l#e.l#u.l.n.l.l.l.n.l.m.l.n.l.m.l.n.l.m.l.m.l.m.l.m.l.m.l.m.l.m.l.m.l.m.k.m.k.m.k.m.k.m.k.m.k.m.k.m.k.m.k.m.k.m.k.6.k.6.5.6.k.k"
+".5.6.k.k.5.6.5.k.5.6.5.ka4.ka4.ka4.ka4.ka4.ka4.ka4bia4bia4bia4a4a4bia4a4.ia4a4a4bfa4aSa4bfa4bfa4bfa4bfa4bfaSbfaSbfaSbfaSbcaSbfbfaYaSaYbfaYbfaYbfaYbfaYb#aYb#aYb#bpb#aYaYbpb#a6aYa6aYa6aYa6aYa6bpa6aAa6a6a6a6a6a6a7a6aWa6baa6aHa6baa6baaWbaaWbaaWbaaWbabaaIblaIbaaIbaaIaIbgaIbgaIbgaIbgaIaZaIaZbgaLbgaLbgaLaZaLaZbnaZbnaZaNaZaNbnaNbyaNaNaNaNaNaNbwaNaXaNaXaNaXbwaQaXaQaXbraXbraXaOaXaObraObzaOaOaOaObsaOa1aOa1bsaRa1a1a1bqa1a5a1a5a1a5a5a5bdbja5bea5bebjbebebAbe",
+"btbbbtbbbbbbbbbbbba8bba8bba2bba0a8a2a8a2a8a2a8a2a0aJa0aJa0aJa0aJa3aEa3aEaJaEa3aEaJataJataJataEatatatatatatatatatatanatanataaatalataaataaataaataaalaaalaaalaaalaaal#lal#lal#lal#lal#lal#Cal#Cal#C#l#C#o#C#l#C#o#C#l#C#o#C#l#p#l#p#l#p#C#p#C#p#C#p#C#p#C#p#p#p#C#p#p#p#p#p#p#p#p#p#p#p#p#p#p#p#p#p#p.l#p#p#p.l#p.l#p.l#p.l#p.l#p.l#p.l#p.l#p.l#p.l#p.l#p.l.l.l#p.l.l.l#p.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.k.l.k.l.k.l.k.l.k.l.k.l.k.l.k.l.5.l.k.l.5.l.k.l.5.l.5.k.5.k.5.k.5.k.5.k.5.k.5.k.5.k.5.k.5"
+".ka4.ka4.ka4.ka4.ka4.ka4.5a4.ka4.5a4bi.ia4a4a4.ia4.ia4.ia4.ia4bfa4bfa4bfa4bfa4bfa4bfa4bcaSbfaSbcbfbcaSbcbfbcbfbcbfaYbfaYbfaYbfaYbfaYbfaYaYaYb#bpaYbpaYbpaYbpaYa6aYa6aYa6aYa6aYa6bpa6a6a7a6a6a6a7a6a7a6a7a6aHa6baa6baa6baa6baaWbaaHbaaWbabababaaIbaaIbaaIbaaIbabgaIbgaIbmaIbgaIaLbgaLbgaLbgaLbgaLaZaLaZbnaZbnaZaNaLaNaLaNbnaNaNaNaNaNaNbwaNaXaNaQaNaQaNaQaXaQaXaQaXaQaXaOaQaOaXaObraOaOaOaOaOaOa1aOa1aOaRbsaRa1aRa1aRa1a5a1a5a1a5a5a5a5bja5bea5bebjbebebvbebvbebx",
+"bbbbbbbbbbbbbkbba8bba2a8a2a8a2a8a2a8a2a0a2a0aJa0aJa0aJaJaJa3aEaJaEaJaEaJaEaJataJataEataEataEatatatatazatanataaatauataaataaataaataaataaalaaalaaalaaalaaalaaal#laa#lal#Caa#Cal#Caa#Caa#C#l#C#l#C#l#C#l#C#l#C#l#p#C#C#C#p#C#p#C#p#C#p#C#p#C#p#C#p#p#p#p#p#p#p#p#B#p#p#p#B#p#p#p#B#p#p#p#t#p#u#p#t#p#u#p#t#p#u#p#t#p#u#p#t#p#u#p#t.l#u#p#t.l#u#p#t.l#u.l#t.l#u.l#t.l#u.l#t.l#u.l#t.l.l.l#m.l.l.l#m.l.l.l#m.l.l.l.n.l.l.l.m.l.l.l.m.l.l.l.m.l.l.l.m.l.l.l.m.l.l.l.m.k.l.k.m.k.l.k.m.k.l.k.m.k.l.k.m.k.l.k.m.k.l.5.6.k.k.5.6.k.k.5.k"
+".5.k.5.k.5.k.5.ka4.ka4.ka4.ka4.ka4.ka4.ka4.ka4bia4bia4bia4a4.ibia4a4.ia4a4a4bfa4bfa4bfa4bfa4bfa4bfa4bfaSbfaSbfaSbfbfbcaSbfbfaYbfaYbfaYbfaYbfaYbfaYb#aYb#aYb#bpb#bpaYbpb#a6aYa6aYa6aYa6aYa6bpa6a6a6a6a6a6a6a6a7a6aWa6baa6baa6baa6baaWbaaWbablbaaWbabaaIblaIbaaIbaaIbabgaIbgaIbgaIbgaIaZaIaZbgaLbgaLbgaLaZaLaZbnaZbnaZaNaZaNbnaNbyaNaNaNaNaNaNbwaNaXaNaXaNaXbwaQaXaQaXaQaXbraXaOaXaObBaObBaOaOaOaObsaOa1aOa1bsaRa1a1a1bqa1bqa1a5a1a5boa5bda5a5bea5bebjbebebebebvbe",
+"bCbbbtbbbtbbbbbbbbbbbba8bba8bba2bba0a8a2a8a2a8a2a8a2a0aJa0aJa0aJa0aJa3aEa3aEaJaEa3aEaJataJataJataEatatataEatatatatatatatatanataaatalataaatalataaataa#iaaalaaalaaalaaal#lalaaal#lal#lal#lal#lal#Cal#C#o#C#o#C#l#C#o#C#l#C#o#C#l#p#o#C#l#p#l#p#l#p#C#p#C#p#C#p#C#p#C#p#p#p#p#p#p#p#p#p#p#p#p#p#p#p#p#p#p#p#p#p#p.l#p#p#p.l#p.l#p.l#p.l#p.l#p.l#p.l#p.l#p.l#p.l#p.l#p.l#p.l#p.l.l.l#p.l.l.l#p.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.k.l.k.l.k.l.k.l.k.l.k.l.5.l.k.l.5.l.k.l.5.l.k.l.5.l.k.l.5.k.5.k.5.k.5.k.5.k.5.k.5.k.5.k.5.k.5.ka4.ka4"
+".ka4.ka4.ka4.ka4.k.i.5a4.k.ia4a4a4.ia4.ia4.ia4.ia4.ia4.ia4bfa4bfa4bfa4bfa4bfa4bfa4bcbfbfaSbcbfbcbfbcbfbcbfbcbfaYbfaYbfaYbfaYbfaYbfbpaYaYb#bpaYbpaYbpaYbpaYbpaYa6aYa6bpa6aYa6bpa6a6a6a6a6a6a7a6a7a6bDa6aHa6baa6baa6baa6baaWbablbaaWbabababaaIbaaIbaaIbaaIbabgaIbgaIbgaIbgaIbmbgaLbgaLbgaLbgaLaZaLaZbnaZbnaZbnaLaNaLaNbnaNbnaNaNaNaNbwaNbwaNaQaNaQaNaQbwaQaXaQaXaQaXbraQaOaXaObraOaOaOaOaOaObsaOa1aOaRbsaRa1aRa1aRa1a5a1a5a1a5bqa5a5bja5bja5bebjbebebvbebvbebxbAbx",
+"bbbtbbbbbbbbbbbbbkbba8bba2a8a2a8a2a8a2a8aJa0aJa0aJa0aJa0aJaJaJa3aEaJaEaJaEaJaEaJataJataEataEataEatatatatazatatataaatauataaataaataaataaataaalaaalaaalaaalaaalaaal#laa#lal#laa#Cal#Caa#Caa#C#l#C#l#C#l#C#l#C#l#C#l#C#l#C#l#p#C#p#C#p#C#p#C#p#C#p#C#p#p#p#C#p#p#p#p#p#p#p#p#p#p#p#p#p#p#p#p#m#p#p#p#m#p.l#p#m#p.l#p#m#p.l#p#m#p.l#p#m#p.l#p#m.l.l#p#m.l.l#p#m.l.l.l#m.l.l.l#m.l.l.l#m.l.l.l#m.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.k.l.k.l.k.l.k.l.k.l.k.l.k.l.k.l.k.l.k.l.k.l.k.l.k.k.5.k.k.k.5.k.k.k.5.k.5.k"
+".5.k.5.k.5.ka4.ka4.ka4.ka4.ka4.ka4.ka4.ka4bia4a4.ibia4a4.ibia4a4.ia4.ia4bfa4bfa4bfa4bfa4bfa4bfaSbfaSbfbfbcaSbfbfbcbfbfbfaYbfaYbfaYbfaYbfaYbfaYb#bpb#aYb#bpb#bpaYbpb#a6aYa6aYa6aYa6aYa6bpa6a6a6a6a6a6a6a6a7a6aWa6baa6baa6baa6baa6baaWbablbaaWbablbablaIbaaIbaaIbabgaIbgaIbgaIbgaIbgaIaZbgaLbgaLbgaLaZaLaZbnaZbnaZbnaZaNbnaNbyaNbnaNaNaNaNbwaNbwaNaXaNaXbwaQbwaQaXaQaXbraXaOaXaObBaObBaOaOaOaOaOaOa1aOa1bsa1bsa1a1bqa1bqa1a5a1a5boa5bda5a5bja5bebjbebjbebebvbebxbA",
+"bEbbbCbbbtbbbtbbbbbbbbbbbba8bba8bba0bba0a8a2a8a2a8aJa8aJa0aJa0aJa0aJa0aJa3aJa3aEaJaEa3aEaJataJataJataEatatataEatatatatatatatatanatalatalataaatalataaataa#iaa#iaaalaaalaaalaaalaaal#lal#lal#lal#lal#lal#C#o#Cal#C#o#C#o#C#l#C#o#C#l#C#o#C#l#p#o#p#l#p#l#p#l#p#l#p#C#p#C#p#p#p#C#p#p#p#p#p#p#p#p#p#p#p#p#p#p#p#p#p#p#p#p#p#p.l#p#p#p.l#p.l#p.l#p.l#p.l#p.l#p.l#p.l#p.l#p.l#p.l#p.l#p.l#p.l#p.l#p.l.l.l#p.l.k.l.h.l.k.l.h.l.k.l.k.l.k.l.5.l.k.l.5.l.k.l.5.l.k.l.5.l.k.l.5.k.5.k.5.k.5.k.5.k.5.k.5.k.5.k.5.k.5.k.j.k.5.k.i.ka4.k.i"
+".ka4.k.i.5a4.k.i.5.i.k.ia4.ia4.ia4.ia4.ia4.ia4.ia4.ia4bfa4bfa4bfa4bfa4bf.ibfa4bc.ibfbfbcbfbcbfbcbfbcbfbcbfaYbfaYbfaYbfbpbfaYbfbpaYbpb#bpaYbpaYbpaYbpaYbpaYa6aYa6bpa6bpa6bpa6a6a6a6a6a6a7a6a7a6bDa6baa6baa6baa6baa6baaWbablbablbabababaaIbaaIbabgbaaIbabgaIbgaIbgaIbgaIbmbgaLbgaLbgaLbgaLbgaLaZbnaZbnaZbnaLaNaLaNbnaNbnaNaNaNaNbwaNbwaNaQaNaXaNaQbwaQaXaQaXaQaXbraXaOaXaObraObraOaOaOaObsaOa1aOaRbsa1bsaRa1aRa1bqa1a5a1a5bqa5a5bja5bja5bebjbebjbhbebvbebvbAbxbAbF",
+"bbbEbbbtbbbbbbbbbbbbbkbba8bba2a8a2a8a2a8a2a8aJa0aJa0aJa0aJa0aJaJaJa3aEaJaEaJaEaJaEaJataJataEataEataEatatatatazatatatauatanataaataaataaataaataa#iaaalaaalaaalaaalaaal#lal#lal#laa#lal#Caa#Cal#C#l#C#l#C#l#C#l#C#l#C#l#C#l#C#l#p#l#p#l#p#C#p#C#p#C#p#C#p#C#p#C#p#p#p#p#p#p#p#p#p#p#p#p#p#p#p#p#p#p#p#p.l#p#p#p.l#p.l#p.l#p.l#p.l#p.l#p#m#p.l#p#m#p.l#p.l#p.l#p.l.l.l#p.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.k.l.k.l.k.l.k.l.k.l.k.l.k.l.k.l.k.l.k.l.k.l.k.l.k.l.5.k.k.k.5.k.k.k.5.k.5.k.5.k.5.k.5.k"
+".5.ka4.ka4.ka4.ka4.ka4.ka4.k.i.ka4.k.ibia4a4.ibi.ia4.ibi.ia4.ia4.ia4bfa4bfa4bfa4bfa4bfa4bf.ibfaSbfbfbcbfbfbfbcbfbcbfaYbfaYbfaYbfaYbfbpbfaYb#bpb#bpb#bpb#bpaYbpb#a6aYa6aYa6bpa6aYa6bpa6a6a6a6a6a6a6a6a7a6a6a6baa6baa6baa6baa6baaWbablbablbablbablaIbaaIbaaIbabgbabgaIbgaIbgaIbgaIaZbgaLbgaZbgaLbgaLaZbnaZbnaZbnaZaNbnaNbyaNbnaNaNaNaNbwaNbwaNaXaNaXbwaQbwaXaXaQaXaQaXbraXaObBaObBaOaOaOaOaOaObsaOa1bsa1bsa1a1aRa1bqa1a5a1a5boa5bda5a5bja5bebjbebjbebebvbebvbAbxbA",
+"bCbbbEbbbCbbbtbbbtbbbbbbbba8bba8bba8bba0bba0a8a2a8a2a8aJa8aJa0aJa0aJa0aJa0aJa3aJa3aEaJaEa3aEaJataJataJataEataEataEatatatatatatatatatatalatalataaatalataaatal#iaa#iaaalaaalaaalaaalaaal#lal#lal#lal#lal#lal#l#o#Cal#C#o#C#o#C#o#C#o#C#l#C#o#C#l#p#o#C#l#p#o#p#l#p#o#p#l#p#l#p#l#p#l#p#p#p#C#p#p#p#p#p#p#p#p#p#p#p#p#p#p#p#p#p#p#p#p#p#p.l#p#p#p.l#p.l#p.l#p.l#p.l#p.l#p.l#p.l#p.l#p.l#p.l.h.l.h.l.h.l.h.l.h.l.h.l.j.l.h.l.j.l.k.l.j.l.k.l.j.l.k.l.j.l.k.l.j.l.5.k.j.k.5.k.j.k.5.k.j.k.5.k.j.k.5.k.j.k.5.k.j.ka4.k.i.k.i.k.i.k.i"
+".k.i.5.i.k.i.5.ibi.ia4.ia4.ia4.ia4.ia4.ia4.ia4.ia4bfa4bfa4bf.ibfa4bf.ibf.ibcbfbfbfbcbfbcbfbcbfbcbfbcbfaYbfaYbfaYbfbpbfbpbfbpaYbpb#bpaYbpaYbpaYbpaYbpbpa6aYa6bpa6bpa6bpa6bpa7a6a6a6a7a6a7a6bDa6baa6baa6baa6baa6baa6bablbablbabababababaaIbabgbabgbabgbabgaIbgaIbgaIbmbgaLbgaLbgaLbgbnbgaLaZbnaZbnaZbnaLaNaZaNbnaNbnaNbnaNaNbwaNbwaNbuaNaXaNaQbwaQbwaQaXaQaXbraXaOaXaObraObraOaOaOaObsaObsaOaRbsa1bsaRa1aRa1bqa1a5a1a5bqa5a5bja5bja5bebjbebjbhbebvbebvbAbxbAbxbvbF",
+"bbbEbbbtbbbtbbbbbbbbbbbbbkbba8bba2a8a2a8a2a8a2a8aJa0aJa0aJa0aJa0aJaJaJa3aEaJaEaJaEaJaEaJataJataEataEataEatatatatatatatatauatanataaataaataaataaataa#iaaalaaalaaalaaalaaal#lalaaal#lal#lal#laa#Cal#C#l#Cal#C#l#C#l#C#l#C#l#C#l#C#l#p#l#C#l#p#l#p#l#p#C#p#C#p#C#p#C#p#p#p#C#p#p#p#p#p#p#p#p#p#p#p#p#p#p#p#p#p#p#p#p.l#p#p#p.l#p.l#p.l#p.l#p.l#p.l#p.l#p.l#p.l#p.l#p.l#p.l#p.l.l.l#p.l.l.l#p.l.l.l#p.l.l.l.l.l.l.l.l.l.l.l.k.l.k.l.k.l.k.l.k.l.k.l.k.l.k.l.k.l.k.l.k.l.k.l.k.l.k.l.5.k.k.k.5.k.k.k.5.k.k.k.5.k.5.k.5.k.5.k.5.ka4.k"
+"a4.ka4.k.i.ka4.k.i.ka4.k.i.k.ibi.ibi.ia4.ibi.ia4.ia4.ia4.ia4bfa4bfa4bfa4bfa4bf.ibfa4bf.ibfaSbfbfbcbfbfbfbcbfbcbfaYbfaYbfaYbfaYbfbpbfaYb#bpb#bpb#bpb#bpaYbpb#a6aYa6aYa6bpa6bpa6bpa6a6a6a6a6a6a6a6bDa6a6a6baa6baa6baa6baa6baaWbablbablbablbablaIbaaIbaaIbabgbabgaIbgaIbgbgbgaIbgbgaLbgaZbgaLbgaLaZbnaZbnaZbnaZaNbyaNbyaNbnaNbnaNaNbwaNbwaNbwaNaXbwaQbwaXaXaQaXaQaXbraXaOaXaObBaObraOaOaOaObsaOa1aOa1bsa1bsaRa1bqa1bqa1a5boa5boa5a5bja5bjbjbebjbebjbAbebAbebxbAbxbA",
+"bCbtbCbbbEbbbCbbbtbbbtbbbba8bba8bba8bba8bba0bba0a8a2a8a2a8aJa8aJa0aJa0aJa0aJa0aJa3aJa3aEa3aEa3aEaJata3ataJataJataEataEatatatatatatatatatatalatalatalatalataaatal#iaa#iaa#iaaalaaalaaalaaal#lal#lal#lal#lal#lal#lal#lal#l#o#C#o#C#o#C#o#C#o#C#o#C#l#C#o#C#l#p#o#p#l#p#o#p#l#p#o#p#l#p#o#p#l#p#l#p.h#p#l#p.h#p.h#p.h#p.h#p.h#p.h#p.h#p.h#p.h#p.h#p.h.l.h#p.h.l.h.l.h.l.h.l.h.l.h.l.h.l.h.l.h.l.j.l.h.l.j.l.h.l.j.l.h.l.j.l.h.l.j.l.h.l.j.l.j.l.j.l.j.k.j.k.j.k.j.k.j.k.j.k.j.k.j.k.j.k.j.k.j.k.j.k.j.k.i.k.i.k.i.k.i.k.i.5.i.k.i"
+".5.i.k.i.5.ia4.ia4.ia4.ia4.ia4.ia4.ia4.i.ibfa4bf.ibfa4bf.ibf.ibc.ibf.ibcbfbfbfbcbfbcbfbcbfbcbfbcbfaYbfbpbfaYbfbpbfbpbfbpbcbpb#bpaYbpaYbpaYbpaYbpbpa6bpa6bpa6bpa6bpa6bpa7a6a6a6bDa6a7a6bDa6baa6baa6baa6baa6baa6bablbablbabababababaaIbabgbabgbabgbabgaIbgaIbgaIbmbgbmbgaLbgaLbgbnbgaLaZbnaZbnaZbnbnbnaZaNbnaNbnaNbnaNaNbwaNbwaNbuaNaXaNaQbwaQbwaQaXaQaXbraXbraXaObraObraObraOaObsaObsaOa1bsa1bsaRa1aRa1bqa1bqa1a5bqa5boa5a5bja5bjbjbebjbhbjbebebvbebxbAbxbAbxbGbF",
+"bbbEbbbtbbbtbbbtbbbba8bba8bbbkbba8bba2a8a2a8a2a8a2a8aJa0aJa0aJa0aJa0aJaJaJa3aEaJaEaJaEaJaEaJataJataEataEataEatatatatatatatatazatanataaataaataaataaataa#iaa#iaaalaaalaaalaaal#lalaaal#lal#lal#laa#lal#Caa#Cal#C#l#C#o#C#l#C#l#C#l#C#l#C#l#C#l#p#l#p#l#p#l#p#l#p#l#p#C#p#C#p#C#p#p#p#C#p#p#p#p#p#p#p#p#p#p#p#p#p#p#p#p#p#p#p#p.l#p#p#p.l#p.l#p.l#p.l#p.l#p.l#p.l#p.l#p.l#p.l#p.l#p.l#p.l#p.l#p.l#p.l#p.l.l.l.h.l.k.l.h.l.k.l.h.l.k.l.h.l.k.l.h.l.k.l.k.l.k.l.k.l.k.l.5.l.k.k.5.k.k.k.5.k.k.k.j.k.5.k.j.k.5.k.j.k.5.k.i.ka4.k.i.k"
+"a4.k.i.k.i.k.i.k.i.k.i.k.ia4.ibi.ia4.ibi.ia4.ia4.ia4.ia4bfa4bfa4bf.ibfa4bf.ibfa4bfbfbfbfbfbfbcbfbfbfbcbfbcbfaYbfaYbfbpbfaYbfbpbfbpbfbpb#bpb#bpb#bpaYbpb#a6bpa6aYa6bpa6bpa6bpa6a6a6a6a6a6a6a6bDa6bHa6baa6baa6baa6baa6baaWbablbablbablbablaIbabgbaaIbabgbabgaIbgaIbgbgbgbgbgbgaLbgaZbgaLbgaLaZbnaZbnaZbnaZbnbyaNbyaNbnaNbnaNaNbwaNbwaNbwaNaXbwaQbwaXbwaQaXaQaXbraXbraXaObBaObraObzaOaObsaObsaOa1bsa1bsaRa1a1a1bqa1a5boa5boa5a5bjbdbja5bebjbebjbAbebAbebvbAbxbAbFbG",
+"bCbEbCbtbCbbbEbbbCbbbtbbbtbbbba8bba8bba8bba8bba0bba0a8a2a8a0a8aJa8aJa0aJa0aJa0aJa0aJa3aJa3aEa3aEa3aEaJata3ataJataJataEataEatatatatatatatatatat#iatalatalatalataaatal#iaaatal#iaa#iaaalaaalaaal#lalaaal#lal#lal#lal#lal#lal#l#o#lal#l#o#C#o#C#o#C#o#C#o#C#o#C#o#p#o#C#l#p#o#p#l#p#o#p#l#p#o#p#l#p#o#p.h#p#o#p.h#p.j#p.h#p.j#p.h#p.j#p.h#p.j#p.h#p.j#p.h#p.j#p.h.l.j#p.h.l.j#p.h.l.j.l.h.l.j.l.h.l.j.l.h.l.j.l.h.l.j.l.h.l.j.l.j.l.j.l.j.l.j.k.j.k.j.k.j.k.j.k.j.k.j.k.j.k.j.k.j.k.j.k.j.k.j.k.i.k.i.k.i.k.i.k.i.k.i.5.i.k.i.5.i"
+".k.ia4.ia4.ia4.ia4.i.i.ia4.i.i.ia4.i.ibf.ibf.ibf.ibf.ibf.ibc.ibf.ibcbfbfbfbcbfbcbfbcbfbcbfbIbfaYbfbpbfbpbfbpbfbpbfbpbcbpb#bpaYbpaYbpbpbpaYbpbpa6bpa6bpa6bpa6bpa6bpa7a6a6a6bDa6bDa6bDa6baa6baa6baa6babHbaa6bablbablbabababababaaIbabgbabgbabgbabgaIbgbgbgaIbmbgbgbgaLbgaLbgbnbgbnbgbnaZbnaZbnbnbnbyaNbnaNbnaNbnaNaNbwaNbwaNbwaNaXaNaQbwaQbwaQaXaQaXbraXbraXaObraObraObraOaObsaObsaObsbsa1bsaRbsaRa1bqa1bqa1a5boa5boa5a5bja5bja5bebjbebjbebebvbebvbAbxbAbxbGbFbxbF",
+"btbEbbbEbbbtbbbtbbbtbbbba8bba8bbbkbba8bba2a8a2a8a2a8a2a8aJa0aJa0aJa0aJa0aJaJaJa3aEaJaEaJaEaJaEaJataJataJataEataEatatatatatatatatazatanataaatalataaataaataa#iaaataa#iaaalaaalaaalaaalaaal#lal#lal#lal#lal#laa#lal#C#l#C#o#C#l#C#o#C#l#C#l#C#l#C#l#p#l#C#l#p#l#p#l#p#l#p#l#p#l#p#l#p#l#p#C#p#p#p#p#p#p#p#p#p#p#p#p#p#p#p#p#p#p#p#p#p#p#p#p.l#p#p#p.l#p.l#p.l#p.l#p.l#p.l#p.l#p.l#p.l#p.l.h.l.h.l.h.l.h.l.h.l.h.l.h.l.h.l.h.l.h.l.h.l.k.l.h.l.k.l.h.l.k.l.j.l.k.l.j.k.k.k.j.k.k.k.j.k.5.k.j.k.j.k.j.k.j.k.j.k.j.k.i.k.i.k.i.k.i.k"
+".i.k.i.k.i.k.i.k.ibi.ia4.ibi.ia4.ibi.ia4.ia4.ia4.ia4bf.ibfa4bf.ibf.ibf.ibf.ibfbfbfbfbfbfbcbfbfbfbcbfbcbfbpbfaYbfbpbfbpbfbpbfbpbfbpb#bpb#bpb#bpaYbpb#bpbpa6bpa6bpa6bpa6bpa6a6a6a6bHa6a6a6bDa6bHa6baa6baa6baa6babHbaaWbablbablbablbablbababgbabgbabgbabgaIbgaIbgbgbgbgbgbgaLbgaZbgbnbgaLbgbnaZbnaZbnaZbnbyaNbyaNbnaNbnaNaNbwaNbwaNbwaNaXbwaXbwaXbwaQaXaQaXbraXbraXaOaXaObraObBaOaObsaObsaOa1aOa1bsaRbsa1a1bqa1bqboa5boa5bobjbdbja5bjbjbebjbebebAbebvbebxbAbFbAbFbx",
+"bCbEbCbEbCbtbCbbbEbbbCbbbtbbbtbbbba8bba8bba8bba8bba0bba0a8a2a8a0a8aJa8aJa0aJa0aJa0aJa0aJa3aJa3aEa3aEa3aEaJata3ataJataJataEataEatatatatatatatatatat#iatalatalatalataaatal#iaaatal#iaa#iaa#iaaalaaalaaalaaal#lal#lal#lal#lal#lal#lal#lal#l#o#l#o#l#o#C#o#C#o#C#o#C#o#C#o#C#o#p#o#p#o#p#o#p#l#p#o#p#l#p#o#p#l#p#o#p.h#p#o#p.h#p.j#p.h#p.j#p.h#p.j#p.h#p.j#p.h#p.j#p.h#p.j#p.h#p.j#p.h.l.j#p.h.l.j#p.j.l.j#p.j.l.j.l.j.l.j.l.j.k.j.k.j.k.j.k.j.k.j.k.j.k.j.k.j.k.j.k.j.k.j.k.j.k.j.k.j.k.i.k.i.k.i.k.i.k.i.5.i.k.i.5.i.k.i.j.ia4.i"
+".i.ia4.i.i.ia4.i.i.i.i.i.i.i.i.i.ibf.ibf.ibf.ibf.ibf.ibc.ibf.ibcbfbcbfbcbfbcbfbIbfbcbfbIbfbpbfbpbfbpbfbpbfbpbfbpbcbpb#bpaYbpaYbpbpbpbpbpbpa6bpa6bpa6bpa6bpa6bpbDa6a6a6bDa6bDa6bDa6bDa6baa6baa6babHbabHbablbablbababababJbaaIbabgbabgbabgbabgaIbgbgbgbgbmbgbgbgaLbgaLbgbnbgbnbgbnaZbnaZbnbnbnbyaNbnaNbnaNbnaNbnbwaNbwaNbwaNbwaNaQbwaQbwaQbwaQaXbraXbraXbrbraObBaObraOaObsaObsaObsbsa1bsaRbsaRa1bqa1bqa1bqboa5boa5bqa5a5bja5bjbjbebjbebjbvbebvbebxbAbxbAbFbxbFbFbK",
+"bEbCbtbEbbbEbbbtbbbtbbbbbbbba8bba8bbbkbba8bba2a8a2a8a2a8a2a8aJa0aJa0aJa0aJa0aJaJaJa3aEaJaEa3aEaJaEaJataJataJataEataEatatatatatatatatatatatataaatalataaataaataaataaataa#iaa#iaaalaaalaaalaaal#lal#lal#lal#lal#lal#lal#l#l#Cal#C#l#C#o#C#l#C#o#C#l#C#l#C#l#C#l#p#l#p#l#p#l#p#l#p#l#p#l#p#l#p#l#p.h#p#l#p.h#p.h#p.h#p.h#p.h#p.h#p.h#p.h#p.h#p.h#p.h#p.h.l.h#p.h.l.h#p.h.l.h.l.h.l.h.l.h.l.h.l.h.l.h.l.h.l.h.l.h.l.h.l.h.l.h.l.h.l.h.l.h.l.h.l.j.l.h.l.j.k.h.k.j.k.h.k.j.k.j.k.j.k.j.k.j.k.j.k.j.k.j.k.j.k.i.k.i.k.i.k.i.k.i.k.i.k"
+".i.k.i.k.i.5.ibi.ia4.ibi.ia4.ia4.i.i.ia4.i.ibfa4bf.ibf.ibf.ibf.ibf.ibf.ibfbfbfbfbfbfbcbfbfbfbcbfbcbfbpbfaYbfbpbfbpbfbpbfbpbfbpb#bpb#bpb#bpbpbpb#bpbpa6bpa6bpa6bpa6bpa6bpa6a6bHa6bHa6bDa6bHa6baa6baa6baa6babHbabHbablbablbablbablbababgblbgbabgbabgbabgaIbgbgbgbgbgbgbmbgaZbgbnbgbnbgbnaZbnaZbnaZbnbybnbyaNbnaNbnaNbnbwaNbwaNbwaNbwbwaXbwaXbwaQbwaQaXbraXbraXbraXaObBaObBaOaObsaObsaObsaOa1bsa1bsa1a1bqa1bqboa5boa5bobjbdbja5bja5bebjbebjbAbebvbebvbAbxbAbFbGbFbL",
+"bCbEbCbEbCbEbCbtbCbbbEbbbCbbbtbbbtbbbba8bba8bba8bba8bba0bba0a8a2a8a0a8aJa8aJa0aJa0aJa0aJa0aJa3aJa3aEa3aEa3aEaJata3ataJata3ataJataEatatatatatatatatatat#iatatatalatalatalatalataaatal#iaa#ial#iaa#iaa#iaaalaaal#lal#lal#lal#lal#lal#lal#lal#l#o#lal#l#o#l#o#l#o#l#o#C#o#C#o#C#o#p#o#C#o#p#o#p#o#p#o#p#o#p#o#p#o#p#o#p#o#p#o#p.j#p#o#p.j#p#o#p.j#p.j#p.j#p.j#p.j#p.j#p.j#p.j#p.j#p.j#p.j#p.j#p.j#p.j#p.j#p.j.h.j.k.j.h.j.k.j.h.j.k.j.h.j.k.j.h.j.k.j.h.j.k.j.h.j.k.j.h.j.k.j.h.i.k.i.h.i.k.i.j.i.k.i.j.i.k.i.j.i.k.i.j.i.i.i.i.i"
+".i.i.i.i.i.i.i.i.i.i.i.i.ibf.ibf.ibf.ibf.ibc.ibf.ibc.ibfbfbcbfbcbfbIbfbcbfbIbfbIbfbIbfbpbfbpbfbpbfbpbfbpbfbpbcbpb#bpbpbpaYbpbpbpbpbpbpa6bpa6bpa6bpa6bpa6bpbDa6bHa6bDa6bDa6bDa6bDa6baa6baa6babHbabHbablbablbababablbJbabJbabgbabgbabgbabgbabgbgbgbgbmbgbgbgbmbgaLbgbnbgbnbgbnaZbnaZbnbnbnbybnbnaNbnaNbnaNbnbwaNbwaNbwaNbwaNaQbwaQbwaQbwaQaXbraXbraXbrbraObBaObraObrbsaObsaObsaOa1bsaRbsaRbsbqa1bqa1bqboa5boa5bqa5a5bja5bja5bebjbebjbvbebvbebvbAbxbAbFbxbFbxbFbFbK",
+"bEbEbEbCbbbEbbbEbbbtbbbtbbbbbbbba8bba8bbbkbba8bba2a8a2a8a2a8a2a8aJa0aJa0aJa0aJa0aJa3aJa3aJaJaEa3aEaJaEaJataJataJataEataEatatatatatatatatatatatataaatalataaatalataaataaataa#iaa#iaa#iaaalaaalaaal#lalaaal#lal#lal#lal#lal#lal#lal#l#l#C#o#C#l#C#o#C#l#C#o#C#l#C#o#p#l#C#l#p#l#p#l#p#l#p#l#p#l#p#l#p#l#p#l#p.h#p#l#p.h#p.h#p.h#p.h#p.h#p.h#p.h#p.h#p.h#p.h#p.h#p.h#p.h#p.h.l.h#p.h.l.h#p.h.l.h.l.h.l.h.l.h.l.h.l.h.l.h.l.j.l.h.l.j.l.h.l.j.k.h.k.j.k.h.k.j.k.j.k.j.k.j.k.j.k.j.k.j.k.j.k.j.k.j.k.i.k.i.k.i.k.i.k.i.k.i.k.i.k.i.k"
+".i.k.ia4.ibi.i.i.ibi.i.i.ia4.i.i.i.i.i.ibf.ibf.ibf.ibf.ibf.ibf.ibf.ibfbfbcbfbfbfbcbfbfbfbIbfbcbfbpbfbpbfbpbfbpbfbpbfbpbfbpb#bpbpbpb#bpbpbpbMbpbpa6bpa6bpa6bpa6bpa6bpa6a6bHa6bHa6bDa6bHa6bDa6baa6baa6babHbabHbablbablbablbablbababgblbgbabgbabgbabgaIbgbgbgbgbgbgbmbgaZbgbnbgbnbgbnaZbnaZbnaZbnbybnbyaNbnaNbyaNbnbwaNbwaNbwaNbwbwaXbwaXbwaQbwaQaXbraXbraXbraXaObBaObBaObrbsaObsaObsaOa1bsa1bsa1a1bqa1bqa1bqboa5boa5bobja5bja5bjbjbebjbebebvbebvbAbxbAbFbAbFbGbFbF",
+"bNbEbCbEbCbEbCbtbCbtbCbbbEbbbCbbbtbbbtbbbba8bba8bba8bba8bba0bba0a8a2a8a0a8aJa8aJa0aJa0aJa0aJa0aJa3aJa3aJa3aEa3aEa3ata3ataJata3ataJataEatatatatatatatatatatatatatat#iatalatalatalatalatal#iaa#ial#iaa#ial#iaa#iaaal#lalaaal#lal#lal#lal#lal#lal#l#o#lal#l#o#l#o#l#o#l#o#l#o#l#o#l#o#l#o#l#o#p#o#C#o#p#o#p#o#p#o#p#o#p#o#p#o#p#o#p#o#p#o#p#o#p#o#p.j#p#o#p.j#p.j#p.j#p.j#p.j#p.j#p.j#p.j.h.j.h.j.h.j.h.j.h.j.h.j.h.j.h.j.h.j.h.j.h.j.h.j.h.j.h.j.h.j.h.j.h.j.h.j.h.i.h.i.h.i.h.i.j.i.h.i.j.i.h.i.j.i.h.i.j.i.j.i.i.i.i.i.i.i.i.i"
+".i.i.i.i.i.i.i.i.ibf.ibf.ibf.ibf.ibf.ibc.ibf.ibI.ibfbfbIbfbcbfbIbfbIbfbIbfbIbfbIbfbpbfbpbfbpbfbpbfbpbfbpbIbpb#bpbpbpbpbpbpbpbpbpbpa6bpa6bpa6bpbHbpa6bpbDa6bHa6bDa6bDa6bDa6bDa6babHbaa6babHbabHbabHbablbababablbJbabJbabgbabgbabgbabgbabgbgbgbgbmbgbgbgbmbgaLbgbnbgbnbgbnbgbnaZbnbnbnbybnbnaNbnaNbnaNbnbwaNbwaNbwaNbwaNbubwaQbwaQbwaQbwbraXbraXbrbBbrbBaObraObrbsaObsaObsaObsbsaRbsa1bsbqa1bqa1bqbobqboa5bqa5bqbja5bja5bjbjbebjbvbebvbebvbAbxbAbFbvbFbxbFbFbKbFbO",
+"bEbCbEbEbEbCbbbEbbbEbbbtbbbtbbbbbbbba8bba8bbbkbba8bba2a8a2a8a2a8a2a8aJa0aJa0aJa0aJa0aJa3aJa3aJaJaEa3aEaJaEaJataJataJataJataEatatatatatatatatatatatat#ratalataaatalataaataaataa#iaa#iaa#iaa#iaaalaaalaaalaaal#lal#lal#lal#lal#lal#lal#l#o#lal#l#o#l#o#C#l#C#o#C#l#C#o#C#l#C#o#p#l#C#o#p#l#p#o#p#l#p#l#p#l#p#l#p#l#p#l#p.h#p#l#p.h#p.h#p.h#p.h#p.h#p.h#p.h#p.h#p.h#p.h#p.h#p.h#p.h#p.h#p.h#p.j.l.h#p.j.l.h#p.j.l.h#p.j.l.h#p.j.k.h.k.j.k.h.k.j.k.j.k.j.k.j.k.j.k.j.k.j.k.j.k.j.k.j.k.j.k.i.k.i.k.i.k.i.k.i.k.i.k.i.h.i.k.i.j.i.k"
+".i.i.ibi.i.i.i.i.i.i.i.i.i.i.i.ibf.ibf.ibf.ibf.ibf.ibf.ibf.ibfbfbfbfbIbfbfbfbIbfbcbfbIbfbIbfbpbfbpbfbpbfbpbfbpbfbpbfbpb#bpbpbpbMbpbpbpbpbpbpa6bpa6bpa6bpa6bpbHbpa6a6bHa6bHa6bDa6bHa6bDa6babHbaa6babHbabHbablbablbablbJblbababgblbgbabgbabgbabgaIbgbgbgbgbgbgbmbgaZbgbnbgbnbgbnbgbnaZbnaZbnbybnbyaNbnaNbyaNbnbwaNbwaNbwaNbwbwbwbwaXbwaQbwaQbwbraXbraXbraXaObBaObBaObrbsaObsaObsaObsbsa1bsa1bsbqa1bqa1bqboa5boa5bobja5bja5bjbjbebjbebjbAbebAbAbxbAbxbAbFbGbFbFbKbF",
+"bPbEbNbEbCbEbCbtbCbtbCbbbCbbbEbbbCbbbtbbbtbbbba8bba8bba8bba8bba0bba0a8a2a8a0a8aJa8a2a0aJa0aJa0aJa0aJa3aJa3aJa3aEa3aEa3ata3ataJata3ataJataJatatatatatatatatatatatatatat#iat#iatalatalatalatal#iaaatal#iaa#ial#iaa#ial#iaa#iaaal#lal#lal#lal#lal#lal#lal#lal#l#o#lal#l#o#l#o#l#o#l#o#l#o#l#o#l#o#l#o#l#o.h#o#l#o.h#o.h#o.h#o.h#o.h#o.h#o.h#o.h#o.h#o.h#o.h#o.h.j.h#o.h.j.h#o.h.j.h.j.h.j.h.j.h.j.h.j.h.j.h.j.h.j.h.j.h.j.h.j.h.j.h.j.h.j.h.j.h.j.h.j.h.i.h.i.h.i.h.i.j.i.h.i.j.i.h.i.j.i.h.i.j.i.j.i.j.i.i.i.i.i.i.i.i.i.i.i.i.i"
+".i.i.i.i.i.i.ibf.ibf.ibf.i.d.ibf.ibI.ibf.ibI.ibIbfbIbfbIbfbIbfbIbfbIbfbIbfbpbfbpbfbpbfbpbfbpbIbpbfbpbpbpbMbpbpbpbpbpbpbpbpbpbpa6bpa6bpa6bpbHbpbHbpbDa6bHa6bDa6bDa6bDa6bDa6babHbabHbabHbabHbabHbablbababablbJbabJbabgbabgbabgbabgbabgbgbgbgbmbgbgbgbmbgaLbgbnbgbnbgbnbgbnaZbnbybnbybnbnaNbnaNbnaNbnbwbnbwaNbwbwbwbwbubwaXbwaQbwaQbwbraXbraXbrbBbrbBaObraObrbsbrbsaObsaObsbsaRbsa1bsbqbsbqa1bqa1bqboa5bqa5bobja5bja5bjbjbebjbvbjbAbebvbAbvbAbFbAbFbGbFbFbFbFbObFbO",
+"bEbCbEbCbEbEbtbCbbbEbbbEbbbtbbbtbbbbbbbba8bba8bba8bba8bba2a8a2a8a2a8a2a8aJa8aJa0aJa0aJa0aJa3aJa3aJaJaEa3aEaJaEaJataJataJataJataEatatataEatatatatatatatat#iatatataaatalataaatalataa#iaaataa#iaa#iaa#iaaalaaalaaal#lal#lal#lal#lal#lal#lal#lal#lal#l#o#l#o#l#o#l#o#l#l#C#o#C#l#C#o#p#l#C#o#p#l#p#o#p#l#p#o#p#l#p#o#p#l#p#o#p#l#p#o#p.h#p#o#p.h#p#o#p.h#p.j#p.h#p.j#p.h#p.j#p.h#p.j#p.h#p.j#p.h#p.j#p.h#p.j#p.h.h.j.h.h.h.j.k.j.h.j.k.j.h.j.k.j.h.j.k.j.h.j.k.j.h.j.k.j.h.j.k.i.h.i.k.i.h.i.k.i.h.i.k.i.h.i.k.i.h.i.h.i.j.i.g.i.i"
+".i.g.i.i.i.i.i.i.i.i.i.i.i.ibf.ibf.ibf.ibf.ibf.ibf.ibf.i.dbfbfbfbIbf.dbfbIbfbIbfbIbfbIbfbpbfbpbfbpbfbpbfbpbfbp.dbpb#bpbpbpbMbpbpbpbpbpbpa6bpa6bpa6bpa6bpbHbpbHa6bHa6bHa6bDa6bHa6bDa6babHbabHbabHbabHbablbablbablbJblbJbabJblbgbabgbabgbJbgbgbgbgbgbgbgbgbgbgaZbgbnbgbnbgbnbgbnaZbnaZbnbybnbyaNbnaNbyaNbnbwbnbwaNbwaNbwbwbwbwaXbwaQbwaXbwbraXbraXbraXbrbBaObBaObrbsaObsaObsaObsbsa1bsa1bsbqa1bqa1bqa1bqboa5boa5bqbjbdbjbjbjbjbebjbAbebAbAbvbAbxbAbFbGbFbFbFbFbObF",
+"bPbEbPbEbNbEbCbEbCbtbCbtbCbbbCbbbEbbbQbbbtbbbtbbbba8bba8bba8bba8bba0bba0a8a2a8a0a8aJa8a2a8aJa0aJa0aJa0aJa3aJa3aJa3aJa3aEa3ata3aEaJata3ataJata3atatataEatatatatatatatatatat#iat#iat#iatalatalatalatalatal#iaa#ial#iaa#ial#iaa#ial#i#l#iaaal#lal#lal#lal#lal#lal#lal#lal#l#o#l#o#l#o#l#o#l#o#l#o#l#o#l#o#l#o#l#o#l#o.h#o#l#o.h#o.h#o.h#o.h#o.h#o.h#o.h#o.h#o.h#o.h#o.h#o.h#o.h#o.h.j.h#o.h.j.h#o.h.j.h#o.h.j.h.j.h.j.h.j.h.j.h.j.h.j.h.j.h.i.h.i.h.i.h.i.j.i.h.i.j.i.h.i.j.i.h.i.j.i.j.i.j.i.j.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i"
+".i.i.i.e.ibf.i.d.ibf.ibI.i.d.ibI.i.d.ibIbfbIbfbIbfbIbfbIbfbIbfbIbfbIbfbpbfbpbfbp.dbpbfbpbIbp.dbpbpbpbpbpbpbpbpbpbpbpbpbpbpa6bpbHbpa6bpbHbpbHbpbDa6bHa6bDa6bDa6bDbHbDa6babHbabHbabHbabHbabHbablbJbabababJbabJbabgbabgbabgbJbgbabgbJbgbgbmbgbgbgbRbgbnbgbnbgbnbgbnbgbnaZbnbybnbybnbnbnbnbwbnbwbnbwbnbwaNbwbwbwbwbubwaXbwaQbwaQbwbraXbraXbrbBbrbBaObraObrbsbrbsaObsaObsaObsbsa1bsbqbsbqa1bqa1bqboa5bqa5bobjbqbja5bjbjbjbjbebjbAbebvbAbvbAbxbAbFbAbFbFbFbFbObFbObKbS",
+"bEbCbEbCbEbCbtbCbtbCbbbEbbbEbbbtbbbtbbbbbbbba8bba8bba8bba8bba2a8a0a8a2a8a2a8aJa8aJa0aJa0aJa0aJa3aJa0aJaJaEa3aEaJaEa3ataJataJataJataJataEataEatatatatatatatatatatatat#ratalataaatalataaataaataa#iaa#iaa#iaa#iaa#iaaal#lalaaal#lal#lal#lal#lal#lal#lal#l#o#lal#l#o#l#o#l#o#l#o#l#o#l#o#l#o#l#o#p#l#C#o#p#l#p#o#p#l#p#o#p#l#p#o#p#l#p#o#p#l#p#o#p#l#p#o#p.h#p#o#p.h#p.j#p.h#p.j#p.h#p.j.h.h.h.j.h.j.h.j.h.j.h.j.h.j.h.j.h.j.h.j.h.j.h.j.h.j.h.j.h.j.h.j.h.j.h.j.h.j.h.i.h.i.h.i.h.i.h.i.h.i.h.i.h.i.h.i.h.i.j.i.h.i.i.i.g.i.i.i.i"
+".i.i.i.i.i.i.i.i.i.i.i.ibf.ibf.ibf.i.d.ibf.i.d.ibf.ibIbf.dbfbIbf.dbfbIbfbIbfbIbfbpbfbpbfbpbfbpbfbp.dbpbfbpbMbpbMbpbpbpbMbpbpbpbpbpbpa6bpa6bpbHbpa6bpbHbpbHa6bHa6bHa6bDa6bHbHbDa6babHbabHbabHbabHbabHbablbablbJblbJbabJblbgbabgbabgbJbgbJbgbgbgbgbgbgbgbgbgbgbnbgbnbgbnbgbnbybnbybnbybnbybnbnbwbyaNbnbwbnbwaNbwaNbwbwbwbwaXbwaQbwaXbwbraXbraXbraXbrbBaObBaObrbsbBbsaObsaObsbsa1bsa1bsbqbsboa1bqa1bqboa5boa5bqbjbdbjbjbjbjbebjbAbjbAbAbvbAbxbAbFbAbFbFbFbFbKbFbObF",
+"bPbCbPbEbPbEbCbEbCbEbCbtbCbtbCbbbCbbbtbbbQbbbtbbbtbbbba8bba8bba8bba8bba8bba0a8a0a8a0a8a2a8a0a8aJa0aJa0aJa0aJa3aJa3aJa3aJa3aEa3ata3aEa3ata3ataJata3ataJataEatatatatatatatatatat#iatatat#iat#iatalatalatalatal#ial#ial#iaa#ial#iaa#ial#i#l#ial#i#l#i#oal#lal#lal#lal#lal#lal#l#o#lal#l#o#l#o#l#o#l#o#l#o#l#o#l#o#l#o#l#o#l#o#l#o.h#o#l#o.h#o.h#o.h#o.h#o.h#o.h#o.h#o.h#o.h#o.h#o.h#o.h#o.h#o.h#o.h#o.h.j.h#o.h.j.h#o.h.j.h#o.h.i.h.e.h.i.h.e.j.i.h.e.j.i.h.e.j.i.h.i.j.i.j.e.j.i.j.e.j.i.i.e.i.i.i.e.i.i.i.e.i.i.i.e.i.i.i.e.i.i"
+".i.d.i.d.i.d.i.d.ibI.i.d.ibI.i.d.ibIbfbIbfbIbfbIbfbIbfbIbfbIbfbIbfbp.dbpbfbp.dbp.dbpbIbp.dbpbpbpbpbpbpbpbpbpbpbpbpbTbpa6bpbHbpbHbpbHbpbHbpbDa6bHa6bDa6bDa6bDbHbDbHbabHbabHbabHbabHbabHbablbJbabJbabJbabJbabJbabgbabgbJbgbJbgbJbgbgbmbgbgbgbRbgbRbgbnbgbnbgbnbgbnaZbnbybnbybnbnbnbnbwbnbwbnbwbnbwaNbwbwbwbwbubwbwbwaQbwaQbwbrbwbraXbrbBbrbBbrbraObrbsbrbsaObsaObsaObsbsa1bsbqbsbqa1bqa1bqbobqboa5bobjbqbja5bjbjbjbjbebjbAbjbvbAbvbAbvbAbFbAbFbFbFbFbFbFbObFbSbObS",
+"bEbNbEbCbEbCbEbCbtbCbtbCbbbEbbbEbbbtbbbtbbbbbbbba8bba8bba8bba8bba2a8a0a8a2a8a2a8aJa8aJa0aJa0aJa0aJa3aJa0aJa3aJa3aEaJaEa3ataJataJataJataJataJataEatatatatatatatatatatatat#iat#iataaatalataaatalataa#iaa#iaa#iaa#iaa#iaa#iaa#iaaal#lal#lal#lal#lal#lal#lal#lal#lal#l#o#l#o#l#o#l#o#l#o#l#o#l#o#l#o#l#o#l#o.h#o#l#o.h#o.h#o.h#o.h#o.h#o.h#o.h#o.h#o.h#o.h#o.h#o.h#o.h.j.h#o.h.j.h#o.h.j.h.j.h.j.h.j.h.j.h.j.h.j.h.j.h.j.h.j.h.j.h.j.h.j.h.j.h.j.h.j.h.j.h.i.h.i.h.i.h.i.h.i.h.i.h.i.h.i.h.i.h.i.j.i.h.i.j.i.g.i.i.i.g.i.i.i.i.i.i"
+".i.i.i.i.i.i.i.i.d.ibf.i.d.ibf.i.d.ibf.i.d.i.d.ibIbf.dbfbIbf.dbfbIbfbIbfbIbfbpbfbpbfbp.dbpbfbp.dbp.dbpbMbpbMbpbpbpbMbpbpbpbpbpbpbHbpa6bpbHbpbHbpbHbpbHa6bHa6bHa6bDa6bHbHbDbHbabHbabHbabHbabHbabHbJblbablbJblbJbabJblbgbabgbabgbJbgbJbgbgbgbgbgbgbUbgbgbgbnbgbnbgbnbgbnbUbnbybnbybnbybnbnbwbybwbnbwbnbwaNbwaNbwbwbwbwbwbwaQbwaXbwbrbwbraXbraXbrbBbrbBaObrbsbBbsaObsaObsbsbsbsa1bsbqbsboa1bqa1bqboa5boa5bobjbdbjbjbjbjbebjbAbjbAbebvbAbvbAbFbAbFbLbFbLbFbFbObFbObO",
+"bPbCbPbCbPbEbPbEbCbEbCbEbCbtbCbtbCbbbCbbbQbbbQbbbtbbbtbbbba8bba8bba8bba8bba8bba0a8a0a8a0a8a2a8a0a8aJa0aJa0aJa0aJa3aJa3aJa3aJa3aJa3aEa3aEa3ata3ataJata3ataJata3atatatatatatatatatatatatatat#iat#iat#iat#iatalatal#ialatal#ial#ial#ial#ial#iaa#ial#i#l#ial#i#l#i#o#i#l#i#oal#lal#lal#lal#l#o#lal#l#o#l#o#l#o#l#o#l#o#l#o#l#o#l#o#l#o#l#o#l#o.h#o#l#o.h#o#l#o.h#o.h#o.h#o.h#o.h#o.h#o.h#o.h#o.h#o.h#o.h#o.h.e.h.e.h.e.h.e.j.e.h.e.j.e.h.e.j.e.h.e.j.e.h.e.j.i.j.e.j.i.j.e.j.i.i.e.i.e.i.e.i.e.i.e.i.e.i.e.i.e.i.e.i.e.i.e.i.d.i.d"
+".i.d.ibI.i.d.ibI.i.d.ibI.ibIbfbIbfbIbfbIbfbIbfbI.dbIbfbI.dbIbfbp.dbp.dbp.dbp.dbpbIbp.dbpbpbpbpbpbpbpbpbTbpbpbpbTbpbHbpbHbpbHbpbHbpbHbpbDa6bHa6bDbHbDa6bDbHbDbHbabHbabHbabHbabHbJbHbablbJbabJbabJbabJbabJbabgbabgbJbgbJbgbJbgbgbmbgbgbgbRbgbRbgbnbgbnbgbnbUbnbgbnbybnbybnbnbnbnbwbnbwbnbwbnbwbnbwbwbwbwbubwbwbwbrbwaQbwbrbwbraXbrbBbrbBbrbraObrbsbrbsbrbsaObsaObsbsa1bsbqbsbqbsbqa1bqa1bqboa5bobjbqbja5bjbjbjbjbebjbAbjbvbebvbAbvbAbxbAbFbvbFbFbFbFbObFbObObObObV",
+"bEbPbEbNbEbCbEbCbEbCbtbCbtbCbbbEbbbEbbbtbbbtbbbbbbbba8bba8bba8bba8bba2a8a0a8a2a8a2a8aJa8a2a0aJa0aJa0aJa0aJa0aJa3aJa3aEaJaEa3ataJaEaJataJataJataJataEatatatatatatatatatatatat#iat#iat#iatalataaatalataa#ialataa#iaa#iaa#iaa#iaa#iaa#i#l#iaaal#lal#lal#lal#lal#lal#lal#l#o#lal#l#o#l#o#l#o#l#o#l#o#l#o#l#o#l#o#l#o#l#o.h#o#l#o.h#o.h#o.h#o.h#o.h#o.h#o.h#o.h#o.h#o.h#o.h#o.h#o.h#o.h#o.h.j.h#o.h.j.h#o.h.j.h#o.h.j.h#o.h.j.h.j.h.j.h.j.h.j.h.i.h.i.h.i.h.i.h.i.h.i.h.i.h.i.h.i.h.i.j.i.h.i.j.i.h.i.i.i.g.i.i.i.i.i.i.e.i.i.i.e.i"
+".i.i.e.ibf.i.d.i.d.i.d.i.d.i.d.i.d.i.d.i.dbfbIbf.dbfbIbfbIbfbIbfbIbfbIbfbp.dbpbfbp.dbp.dbp.dbp.dbpbMbpbMbpbpbpbMbpbpbpbpbpbpbHbpbHbpbHbpbHbpbHbpbHa6bHa6bHbHbDa6bHbHbDbHbabHbabHbabHbabHbabHbJblbJblbJblbJbabJblbgbabgbabgbJbgbJbgbgbgbgbgbgbUbgbUbgbnbgbnbgbnbgbnbUbnbybnbybnbybnbnbWbybwbnbwbnbwbnbwaNbwbwbwbwbwbwbrbwbBbwbrbwbraXbraXbrbBbrbBaObrbsbBbsbrbsaObsbsbsbsa1bsbobsboa1bqa1bqbobqboa5bobjbobjbjbjbjbjbjbAbjbAbjbvbAbvbAbFbAbFbAbFbLbFbFbObFbObObObO",
+"bPbPbPbCbPbCbPbEbPbEbCbEbCbEbCbtbCbtbCbbbCbbbQbbbQbbbtbbbtbbbba8bba8bba8bba8bba8bba0a8a0a8a0a8a2a8a0a8aJa8aJa0aJa0aJa3aJa0aJa3aJa3aJa3aEa3aEa3ata3ata3ata3ataJata3at.batatatatatatatatatatatat#iat#iat#iat#iat#iatalatalatal#ial#ial#ial#ial#ial#ial#iaa#ial#i#l#i#o#i#l#i#o#i#l#i#o#i#l#i#o#i#lal#o#o#lal#l#o#l#o#l#o#l#o#l#o#l#o#l#o#l#o#l#o#l#o#l#o.h#o#l#o.h#o#l#o.h#o.h#o.h.e.j.e.h.e.j.e.h.e.j.e.h.e.j.e.h.e.j.e.h.e.j.e.h.e.j.e.h.e.j.e.j.e.j.e.j.e.j.e.j.e.i.e.i.e.i.e.i.e.i.e.i.e.i.e.i.e.i.e.i.e.i.e.i.d.i.d.i.d.i.d"
+".ibI.i.d.ibI.i.d.ibI.ibIbfbI.dbIbfbI.dbIbfbI.dbI.dbI.dbp.dbp.dbp.dbpbIbp.dbpbIbp.dbpbpbpbpbTbpbpbpbTbpbTbpbTbpbHbpbHbpbHbpbHbpbHbpbDbTbHa6bDbHbDbHbDbHbDbHbabHbabHbabHbabHbJbDbJblbJbabJbabJbabJbabJbJbgbabgbJbgbJbgbJbgbgbmbgbgbgbRbgbRbgbnbgbnbgbnbUbnbUbnbybnbybnbnbnbnbWbnbwbnbwbnbwbnbwbwbwbwbubwbwbwbrbwbrbwbrbwbraXbrbBbrbBbrbraObBbsbrbsbrbsaObsaObsbsbsbsbqbsbqbsbqa1bqa1bqbobqbobjbqbjbqbjbjbjbjbjbjbebjbvbjbvbAbvbAbxbAbFbvbFbFbFbFbXbFbObXbObObVbObY",
+"bEbPbEbPbEbNbEbCbEbCbEbCbtbCbtbCbbbEbbbEbbbtbbbtbbbbbbbba8bba8bba8bba8bba2a8a0a8a2a8a2a8a2a8a2a8aJa0aJa0aJa0aJa0aJa3aJa3aJaJaEa3aEaJaEa3ataJataJataJataJatatatatatatatatatatatat#iatatat#iat#iatalatalataaatalataa#ial#iaa#iaa#iaa#iaa#iaa#iaa#i#l#i#l#i#lal#lal#lal#lal#lal#lal#l#o#lal#l#o#l#o#l#o#l#o#l#o#l#o#l#o#l#o#l#o#l#o.h#o#l#o.h#o#l#o.h#o.h#o.h#o.h#o.h#o.h#o.h#o.h#o.h#o.h#o.h#o.h#o.h#o.h#o.h#o.h#o.h#o.h#o.h.i.h.e.h.i.h.e.h.i.h.e.h.i.h.e.h.i.h.e.h.i.j.e.h.i.j.e.h.i.i.e.g.i.i.e.i.i.i.e.i.i.i.e.i.e.i.e.i.e.i"
+".d.i.d.i.d.i.d.i.d.i.d.i.d.i.d.ibI.i.dbfbIbf.dbfbIbfbIbfbIbfbI.dbIbfbp.dbp.dbp.dbp.dbp.dbp.dbpbpbpbMbpbpbpbMbpbpbTbpbpbpbHbpbHbpbHbpbHbpbHbpbHa6bHa6bHbHbDbHbHbHbDbHbabHbabHbabHbabHbabHbJblbJblbJblbJbabJblbgbJbgbJbgbJbgbJbgbJbgbgbgbgbUbgbUbgbRbgbnbgbnbgbnbUbnbybnbybnbybnbybWbybwbnbwbnbwbnbwaNbwbwbwbwbwbwbrbwbBbwbrbwbraXbraXbrbBbrbBaObBbsbBbsbrbsaObsbsbsbsbsbsbobsbobsbqa1bqbobqboa5bobjbobjbjbjbjbjbjbAbjbAbjbvbAbAbAbZbAbFbAbFbLbFbFbXbFbObXbObOb0bO",
+"bPbPbPb1bPbCbPbCbPbEbPbEbCbEbCbEbCbtbCbtbCbbbCbbbQbbbQbbbtbbbQbbbba8bba8bba8bba8bba8bba0a8a0a8a0a8a2a8a0a8aJa8a3a0aJa0aJa0aJa0aJa3aJa3aJa3aJa3aEa3ata3ata3ata3ataJata3at.bat#gatatatatatatatatatat#iatatat#iat#iat#iat#iat#iatal#ialatal#ial#ial#ial#ial#ial#ial#i#o#ial#i#l#i#o#i#l#i#o#i#l#i#o#i#l#i#o#i#l#i#o.e#l#i#o.e#l.e#o.e#l.e#o.e#l.e#o.e#l.e#o.e#l.e#o.e#l.e#o.e.h.e#o.e.h.e#o.e.h.e#o.e.h.e.j.e.h.e.j.e.h.e.j.e.j.e.j.e.j.e.j.e.j.e.j.e.j.e.i.e.i.e.i.e.i.e.i.e.i.e.i.e.i.e.i.e.i.e.i.e.i.e.i.d.i.d.i.d.ibI.i.d.ibI"
+".i.d.ibI.ebI.ibI.dbIbfbI.dbI.dbI.dbI.dbI.dbI.dbI.dbp.dbp.dbp.dbpbIbp.dbpbIbpbIbTbpbpbpbTbpbTbpbTbpbTbpbTbpbHbpbHbpbHbpbDbpbHbpbDbHbHbHbDbHbDbHbDbHbDbHbDbHbabHbJbHbabHbJbDbJblbJbabJbabJbabJbabJbJbgbJbgbJbgbJbgbJbgbgbRbgbgbgbRbgbRbgbnbgbnbgbnbUbnbUbnbybnbybnbnbnbnbWbnbwbnbwbnbwbnbwbWbwbwbubwbwbwb2bwbrbwbrbwbrbwbrbBbrbBbrbrbrbBbsbrbsbrbsbrbsaObsbsbsbsaRbsbqbsbqbsbqa1bqbobqbobjbqbjbqbjbjbjbjbjbjbebjbvbjbvbAbvbAbvbAbFbvbFbLbFbFbFbFbObXbObObSbObYbObY",
+"b1bPbEbPbEbPbEbNbEbCbEbCbEbCbtbCbtbCbbbEbbbCbbbtbbbtbbbbbbbba8bba8bba8bba8bba2a8a0a8a2a8a2a8a2a8a2a8aJa0aJa0aJa0aJa0aJa3aJa3aJa3aEa3aEaJaEa3ataJataJataJataJat.bataEatatatatatatatatatatatat#iat#iat#iat#iatalatalataa#ial#iaa#ial#iaa#ial#iaa#iaa#i#l#iaa#i#l#i#l#i#l#i#lal#lal#lal#lal#lal#l#o#lal#l#o#l#o#l#o#l#o#l#o#l#o#l#o#l#o#l#o#l#o#l#o#l#o.h#o#l#o.h#o.h#o.h#o.h#o.h#o.h#o.h#o.h#o.h#o.h#o.h.e.h.e.h.e.h.e.h.e.h.e.h.e.h.e.h.e.h.e.h.e.h.e.h.e.j.e.h.e.j.e.h.e.j.e.g.e.i.e.i.e.i.e.i.e.i.e.i.e.i.e.i.e.i.e.i.e.i.d.i"
+".d.i.d.i.d.i.d.i.d.i.d.i.d.ibIbf.dbfbIbfbI.dbIbfbI.dbIbfbI.dbp.dbp.dbp.dbp.dbp.dbp.dbp.dbpbpbpbMbpbpbTbpbpbpbTbpbTbpbHbpbHbpbHbpbHbpbHbpbHbHbHa6bHbHbDbHbHbHbDbHbabHbabHbabHbJbHbJbHbJblbJblbJblbJbabJblbgbJbgbJbgbJbgbJbgbJbgbgbgbgbUbgbUbgbRbgbnbgbnbgbnbUbnbUbnbybnbybnbybWbybwbnbwbnbwbnbwbnbwbwbwbwbwbwb3bwbBbwbrbwbrb3brbBbrbBbrbBbrbBbsbBbsbrbsaObsbsbsbsbsbsbobsbobsbqa1bqbobqbobqbobjbobjbqbjbjbjbjb4bjbAbjbAbebAbAbvbAbFbAbFb5bFbFbXbFbObXbObObObObYbO",
+"bPbPbPbPbPb1bPbCbPbCbPbEbPbEbCbEbCbEbCbtbCbtbCbbbCbbbQbbbQbbbtbbbQbbbba8bba8bba8bba8bba8bba0a8a0a8a0a8a0a8a0a8aJa8a3a0aJa0aJa0aJa0aJa3aJa3aJa3aJa3aEa3ata3ata3ata3ata3ata3at.bata3at.batb6atatatatatatatatatat#iat#iat#iat#iat#iat#iat#iatal#ial#ial#ial#ial#ial#ial#ial#ial#i#o#ial#i#o#i#o#i#o#i#o#i#l#i#o#i#l#i#o#i#l#i#o.e#l#i#o.e#l.e#o.e#l.e#o.e#l.e#o.e#l.e#o.e#l.e#o.e#l.e#o.e#l.e#o.e#o.e#o.e.j.e#o.e.j.e#o.e.j.e#o.e.j.e#o.e.j.e.e.e.i.e.i.e.i.e.i.e.i.e.i.e.i.e.i.e.i.e.e.e.i.e.e.e.i.d.e.d.ibI.e.d.ibI.e.d.ibI.ebI"
+".ibI.ebI.dbI.dbI.dbI.dbI.dbI.dbI.dbI.dbI.dbp.dbp.dbp.dbp.dbpbIbp.dbTbIbpbpbTbpbTbpbTbpbTbpbTbpbTbpbTbpbHbpbHbpbHbpbDbTbHbpbDbHbDbHbDbHbDbHbDbHbDbHbDbHbabHbJbHbJbHbJbDbJbHbJbabJbabJbJbJbabJbJbgbJbgbJbgbJbgbJbgbgbRbgbUbgbRbgbRbgbRbgbnbgbnbUbnbUbnbUbnbybnbnbnbnbWbnbwbnbwbnbwbnbwbWbwbwbwbwbwbwb2bwbrbwbrbwbrbwbrbBbrbBbrbrbrbBbsbrbsbrbsbrbsaObsbsbsbsb7bsbobsbqbsbqa1bqbobqbobjbqbjbqbjb8bjbjbjbjbjbjbvbjbAbjbvbAbvbAbFbAbFbAbFbFbFbFbObFbObXbSbObVbObYb0bY",
+"bPbPb1bPbEbPbEbPbEbNbEbCbEbCbEbCbtbCbtbCbbbEbbbCbbbtbbbtbbbtbbbba8bba8bba8bba8bba8a8a0a8a2a8a0a8a2a8a2a8aJa0aJa0aJa0aJa0aJa3aJa3aJa3aJa3aEaJaEa3ataJata3ataJataJataJataJatatatatatatatatatatatat#iat#iat#iat#iat#iatalatal#ialataa#ial#iaa#ial#iaa#ial#iaa#iaa#i#l#iaa#i#l#i#l#i#l#i#l#i#l#i#l#i#l#i#lal#l#o#lal#l#o#l#o#l#o#l#o#l#o#l#o#l#o#l#o#l#o#l#o#l#o#l#o.h#o#l#o.h.e#l.e.h.e.h.e.h.e.h.e.h.e.h.e.h.e.h.e.h.e.h.e.h.e.h.e.h.e.j.e.h.e.j.e.h.e.j.e.h.e.j.e.g.e.i.e.i.e.i.e.i.e.i.e.i.e.i.e.i.e.i.e.i.e.i.e.i.d.i.d.i.d.i"
+".d.i.d.i.d.i.d.ibI.i.d.dbIbf.d.dbIbfbI.dbI.dbI.dbI.dbI.dbp.dbp.dbp.dbp.dbp.dbp.dbp.dbpbpbTbMbpbpbTbpbTbpbTbpbTbpbHbpbHbpbHbpbHbpbHbpbHbHbDbHbHbHbDbHbDbHbDbHbabHbabHbabHbJbHbJbHbJblbJblbJblbJbabJbabJbJbgbJbgbJbgbJbgbJbUbgbgbgbUbgbUbgbRbgbnbgbnbgbnbUbnbUbnbybnbybnbybWbybwbnbwbnbwbWbwbWbwbwbwbwbwbwb3bwbBbwbrbwbrbwbrbBbrbBbrbBbrbBbsbBbsbrbsbrbsbsbsbsbsbsbobsbobsbqbsbqbobqbobqbobjbobjbqbjbjbjbjbjbjbAbjbAbjbAbAbvbAbZbAbFbAbFbFbFbFbXbFbObXbObObVbObYb0",
+"bPbPbPbPbPbPbPb1bPbCbPbCbPbEbPbCbCbEbCbEbCbtbCbtbCbtbCbbbQbbbQbbbtbbbQbbbba8bba8bba8bba8bba8bba8a8a0a8a0a8a0a8a0a8aJa8a3a8aJa0aJa0aJa0aJa3aJa3aJa3aJa3aJa3ata3aEa3ata3ata3ata3ata3ata3at.bat#gatatatb6atatatatatat#iat#iat#iat#iat#iat#iat#iat#i#i#iat#i#ial#ial#ial#ial#ial#ial#ial#ial#i#o#ial#i#o#i#o#i#o#i#o#i#o#i#o#i#o#i#o#i#o#i#o.e#o#i#o.e#o#i#o.e#o.e#o.e#o.e#o.e#o.e#o.e#o.e#o.e#o.e#o.e#o.e#o.e#o.e#o.e#o.e#o.e.e.e.e.e.e.e.e.e.e.e.e.e.i.e.e.e.i.e.e.e.i.e.e.e.i.e.e.e.e.d.e.d.ebI.e.d.ebI.e.d.ebI.e.d.ebI.ebI.ebI"
+".ebI.dbI.dbI.dbI.dbI.dbI.dbI.dbI.dbI.dbp.dbp.dbTbIbp.dbTbIbp.dbTbIbTbpbTbpbTbpbTbpbTbpbTbpbTbpbHbpbHbpbHbTbHbpbDbTbHbTbDbHbDbHbDbHbDbHbDbHbDbHb9bHbabHbJbHbJbHbJbDbJbHbJbabJbabJbJbJbJbJbJbgbJbgbJbgbJbgbJbgbJbRbgbUbgbRbgbRbgbRbUbnbgbnbUbnbUbnbUbnbybWbnbnbnbWbnbWbnbwbnbwbnbwbWbwbwbwbwbwbwb2bwbrbwbrbwbrbwbrb3brbBbrbrbrbBc.brbsbrbsbrbsaObsbsbsbsc#bsbobsbqbsbqa1bqbobqbob8bqbjbobjbqbjbjbjbjbjbjbvbjbAbjbvbAbvbAbZbAbFbAbFbFbFbFbXbFbObXbSbObVbObYb0bYcacb",
+"bPbPbPbPb1bPbEbPbEbPbEbNbEbCbEbCbEbCbtbCbtbCbbbEbbbCbbbtbbbtbbbtbbbba8bba8bba8bba8bba8a8a0a8a2a8a0a8a2a8a2a8aJa8aJa0aJa0aJa0aJa3aJa3aJa3aJa3aJa3aEa3ataJata3ataJataJataJataJat.batatatatatatatatatat#iatatat#iat#iat#iat#iat#iatalatal#ial#iaa#ial#iaa#ial#iaa#ial#i#l#ial#i#l#i#o#i#l#i#l#i#l#i#l#i#l#i#l#i#l#i#l#i#l.e#l#i#l.e#l.e#l.e#l.e#l.e#l.e#l.e#l.e#l.e#l.e#l.e#l.e#l.e#l.e.h.e#l.e.h.e#l.e.h.e#l.e.h.e#o.e.h.e.j.e.h.e.j.e.h.e.j.e.h.e.j.e.g.e.i.e.i.e.i.e.i.e.i.e.i.e.i.e.i.e.i.e.i.e.i.e.i.d.i.d.i.d.e.d.i.d.e.d.i"
+".d.ebI.i.d.ebI.i.d.dbI.dbI.dbI.dbI.dbI.dbI.dbI.dbI.dbp.dbp.dbp.dbp.dbp.dbp.dbTbMbpbpbTbMbTbpbTbpbTbpbTbpbTbpbHbpbHbpbHbpbHbTbHbpbHbHbDbHbHbHbDbHbDbHbDbHbabHbJbHbabHbJbHbJbHbJblbJblbJblbJbJbJbabJbJbgbJbgbJbgbJbgbJbUbgbUbgbUbgbUbgbRbgbnbUbnbUbnbUbnbUbnbybnbybnbybWbybWbnbwbnbwbWbwbWbwbwbwbwbwbwb3bwbBbwbrbwbrb3brb3brbBbrbBbrbBc.bBbsbrbsbrbsbsbsbsbsbsccbsbobsbqbsbqbobqbobqbobjbobjbqbjcdbjbjbjbjb4bjbAbjbAbAbvbAbZbAbFbAbFb5bFbLbXbFbObXbObObVbObYb0bYca",
+"cebPbPbPbPbPbPbPbPb1bPbCbPbCbPbEbPbCbCbEbCbEbCbtbCbtbCbtbCbbbQbbbCbbbtbbbQbbbta8bba8bba8bba8bba8bba8a8a0a8a0a8a0a8a0a8aJa8a3a8aJa8a3a0aJa0aJa3aJa3aJa3aJa3aJa3aJa3aEa3ata3ata3ata3ata3ata3at.bat#gat.bat#gatatatb6atat#iatatat#iat#iat#iat#iat#iat#iat#iat#i#i#i#i#i#i#i#i#i#ial#ial#ial#ial#ial#ial#i#o#i#o#i#o#i#o#i#o#i#o#i#o#i#o#i#o#i#o#i#o#i#o#i#o#i#o.e#o#i#o.e#o#i#o.e#o.e#o.e#o.e#o.e#o.e#o.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.d.ebI.e.d.ebI.e.d.ebI.e.d.ebI.ebI.ebI.ebI.ebI.dbI"
+".dbI.dbI.dbI.dbI.dbI.dbI.dbI.dbp.dbT.dbp.dbTbIbT.dbTbIbTbIbTbIbTbpbTbpbTbpbTbpbTbpbTbpbTbpbHbTbHbpbHbTbHbTbDbTbHbTbDbHbDbHbDbHbDbHbDbHbDbHb9bHbJbHbJbHbJbHbJbDbJbHbJbabJbabJbJbJbJbJbJbgbJbgbJbgbJbUbJbgbJbRbgbUbgbRbgbRbgbRbUbnbgbnbUbnbUbnbUbnbybWbnbWbnbWbnbWbnbwbnbwbnbwbWbwbwbwbwbwbwb2bwb2bwbrbwbrbwbrb3brbBbrbrbrbBc.brbsbrbsbrbsbrbsbsbsbsb7bsbobsbqbsbqbsbqbobqbob8bqbjbobjbqbjbjbjbjbjbjbAbjbAbjbvbAbvbAbZbAbFbAbFbZbFbFbXbFbObFbSbXbSbObVb0bYb0cbbYcb",
+"bPbPbPbPbPbPb1bPbEbPbEbPbEbNbEbCbEbCbEbCbtbCbtbCbbbEbbbCbbbtbbbtbbbtbbbba8bba8bba8bba8bba8a8a0a8a2a8a0a8a2a8a2a8aJa8aJa0aJa0aJa0aJa3aJa3aJa3aJa3aJa3aEa3ataJata3ataJata3ataJataJat.bat.batatatatatatatatatatatat#iat#iat#iat#iat#iat#iat#i#i#iatal#ial#ial#ial#iaa#ial#iaa#ial#i#l#ial#i#l#i#o#i#l#i#o#i#l#i#o#i#l#i#o#i#l#i#l#i#l.e#l#i#l.e#l.e#l.e#l.e#l.e#l.e#l.e#o.e#l.e#o.e#l.e#o.e#l.e#o.e#l.e#o.e#l.e#o.e#l.e#o.e.h.e#o.e.h.e#o.e.i.e.e.e.i.e.e.e.i.e.e.e.i.e.e.e.i.e.e.e.i.e.e.e.i.e.e.d.i.d.e.d.i.d.e.d.e.d.e.d.e.d.e"
+"bI.e.d.ebI.d.d.dbI.dbI.dbI.dbI.dbI.dbI.dbI.dbp.dbp.dbp.dbT.dbp.dbT.dbpbIbTbMbTbpbTbMbTbpbTbpbTbpbTbpbHbpbHbpbHbTbHbpbHbTbHbTbHbHbDbHbHbHbDbHbDbHbDbHbabHbJbHbJbHbJbHbJbHbJblbJbabJblbJbJbJbJbJbJbgbJbgbJbgbJbgbJbUbgbUbgbUbgbUbgbRbgbRbUbnbUbnbUbnbUbnbybWbybnbybWbybWbnbwbnbwbWbwbWbwbwbwbwbwbwb3bwb3bwbrbwbrb3brb3brbBbrbBbrbBc.bBbsbrbsbrbsc.bsbsbsbsccbsbobsbqbsbqbobqbobqbob8bobjbobjbobjbjbjbjb4bjbAbjbAb4bvbAbvbAbFbAbFb5bFbLbXbFbObFbObXbVbObVb0bYb0cbbY",
+"cebPcfbPbPbPbPbPbPbPbPbCbPbCbPbCbPbEbPbCbCbEbCbEbCbtbCbtbCbtbCbbbCbbbCbbbQbbbQbbbta8cgbbbba8bba8bba8bba8a8a8a8a0a8a0a8a0a8a3a8a3a8aJa8a3a0aJa0aJa3aJa3aJa3aJa3aJa3aJa3aJa3ata3ata3ata3ata3ata3at#gata3at.bat#gat.bat#gatatatb6atat#iat#iat#iat#iat#iat#iat#iat#i#i#iat#i#i#i#i#i#i#i#i#i#i#i#i#i#i#i#i#i#i.e#ial#i#o#ial#i#o#i#o#i#o#i#o#i#o#i#o#i#o#i#o#i#o#i#o#i#o#i.e#i.e#i.e.e.e#i.e.e.e#i.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.d.ebI.e.d.ebI.e.d.ebI.e.d.ebI.ebI.ebI.ebI.ebI.ebI.dbI.dbI.dbI"
+".dbI.d.4.dbI.d.4.dbI.d.4.dbT.dbTbIbT.dbTbIbT.dbTbIbTbIbTbpbTbpbTbpbTbpbTbpbTbpbTbTbTbpbHbTbHbTbHbTbHbTbDbTbHbTbDbHbDbHbDbHbDbHb9bHbDbHb9bHbJbHbJbHbJbHbJbDbJbHbJbJbJbabJbJbJbJbJbJbJbJbgbJbgbJbUbJbUbJbRbgbUbgbRbgbRbgbRbUbnbUbnbUbnbUbnbUbnbybWbnbWbnbWbnbWbnbwbWbwbWbwbWbwbWbwbwbwbwb2bwb2bwbrbwbrbwbrb3brbBbrbBbrbBc.brbsbrbsbrbsbrbsbsbsbsb7bsccbsbqbsbqbsbqbobqbob8bob8bobjbqbjb8bjbjbjbjb4bjbAbjbvb4bvbAbZbAbZbAbFbZbFbFbXbFbXbFbObXbObObVbObYb0cbbYcbbYch",
+"bPcfbPbPbPbPbPbPb1bPbEbPbEbPbEbNbEbCbEbCbEbCbtbCbtbCbbbEbbbCbbbtbbbtbbbtbbbba8bba8bba8bba8bba8a8a8a8a2a8a0a8a2a8a0a8aJa8aJa8aJa0aJa0aJa3aJa0aJa3aJa3aJa3aJa3aEa3aEa3ataJata3ataJata3at.bataJat.batatatatatatatatatat#iatatat#iat#iat#iat#iat#iat#iat#i#i#iat#i#ial#ial#ial#ial#ial#iaa#ial#i#l#ial#i#l#i#o#i#l#i#o#i#l#i#o#i#l#i#o#i#l#i#o#i#l.e#o#i#l.e#o#i#l.e#o.e#l.e#o.e#l.e#o.e#l.e#o.e#l.e#o.e#l.e#o.e#l.e#o.e#o.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.d.e.d.e.d.e.d.e.d.e.d.e.d.ebI.e.d.ebI.e"
+".d.dbI.dbI.dbI.dbI.dbI.dbI.dbI.dbI.dbT.dbp.dbT.dbp.dbT.dbT.dbT.dbTbIbTbMbTbpbTbpbTbpbTbpbTbpbTbpbHbTbHbpbHbTbHbTbHbTbHbTbHbHbDbHbHbHbDbHbDbHb9bHbJbHbJbHbJbHbJbHbJbHbJblbJbJbJblbJbJbJbJbJbJbgbJbgbJbUbJbgbJbUbJbUbgbUbgbUbgbRbgbRbUbnbUbnbUbnbUbnbUbWbybWbybWbybWbnbwbnbwbWbwbWbwbWbwbwbwbwb3bwb3bwbrbwbrb3brb3brbBbrbBbrbBc.bBbsbrbsbrbsc.bsbsbsbsccbsccbsbqbsboccbqbobqbob8bobjbobjbobjbjbjbjbjbjbAbjbAb4bvbAbvbAbZbAbFb5bFbLbFbFbXbFbObXb0bOb0b0bYb0bYcacbcb",
+"cibPcebPcjbPbPbPbPbPbPbPbPbCbPbCbPbCbPbEbPbCbCbEbCbEbCbtbCbtbCbtbCbbbCbbbCbbbQbbbQbbbtbbcgbbbba8bba8bba8bba8a8a8a8a0a8a0a8a0a8a3a8a0a8aJa8a3a8aJa0a3a3aJa0aJa3aJa3aJa3aJa3aJa3.ba3ata3ata3ata3ata3ata3ata3at#gat#gat.bat#gat.bat#gatat#ib6atat#iat#iat#iat#iat#iat#iat#iat#i#i#iat#i#i#i#i#i#i#i#i#i#i#i#i#i#i#i#i#i#i#i#i#i#i.e#i#i#i.e#i.e#i.e#i.e#i.e#i.e#i.e#i.e#i.e#i.e#i.e#i.e#i.e#i.e#i.e#i.e.e.e#i.e.e.e#i.e.e.e#i.e.e.e#i.e.e.e#i.e.e.eck.e.d.ebI.e.d.ebI.e.d.ebI.e.d.e.4.ebI.e.4.ebI.e.4.ebI.d.4.dbI.d.4.dbI.d.4.dbI"
+".d.4.d.4.d.4.d.4.dbT.dbT.dbTbIbT.dbTbIbTbIbTbIbTbIbTbpbTbpbTbpbTbpbTbTbTbpbTbTbTbTbHbTbHbTbDbTbHbTbDbTbHbTbDbHbDbHb9bHbDbHb9bHb9bHbJbHbJbHbJbHbJbHbJb9bJbHbJbJbJbJbJbJbJbJbJbJbJbJbgbJbgbJbUbJbUbJbRbgbUbgbRbgbRbgbRbUbnbUbnbUbnbUbnbUbnbUbWbnbWbnbWbnbWbnbwbWbwbWbwbWbwbWbwbwbwbwb2bwb2bwbrbwbrbwbrb3brb3brbBbrbBc.brc.brbsbrbsc.bsbsbsbsbsbsccbsbqbsbqbsbqccbqbobqbob8bobjbqbjb8bjbjbjbjb4bjbAbjbvb4bvbAbZbAbZbAbFbZbFbZbXbFbXbFbObXbObObVbObVb0bYbVcbbYcbcbcl"};
+
+
+ switch (id) {
+ case image0_ID: return QPixmap((const char**)image0_data);
+ default: return QPixmap();
+ } // switch
+ } // icon
+
+};
+
+namespace Ui {
+ class NewPreset: public Ui_NewPreset {};
+} // namespace Ui
+
+QT_END_NAMESPACE
+
+class NewPreset : public QDialog, public Ui::NewPreset
+{
+ Q_OBJECT
+
+public:
+ NewPreset(QWidget* parent = 0, const char* name = 0, bool modal = false, Qt::WindowFlags fl = 0);
+ ~NewPreset();
+
+protected slots:
+ virtual void languageChange();
+
+};
+
+#endif // NEWPRESET_H
diff --git a/muse2/synti/deicsonze/newpreset.ui b/muse2/synti/deicsonze/newpreset.ui
new file mode 100644
index 00000000..7ffa8705
--- /dev/null
+++ b/muse2/synti/deicsonze/newpreset.ui
@@ -0,0 +1,402 @@
+<!DOCTYPE UI><UI version="3.2" stdsetdef="1">
+<class>NewPreset</class>
+<widget class="QDialog">
+ <property name="name">
+ <cstring>NewPreset</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>271</width>
+ <height>157</height>
+ </rect>
+ </property>
+ <property name="paletteBackgroundColor">
+ <color>
+ <red>195</red>
+ <green>195</green>
+ <blue>195</blue>
+ </color>
+ </property>
+ <property name="paletteBackgroundPixmap">
+ <pixmap>image0</pixmap>
+ </property>
+ <property name="caption">
+ <string>New preset</string>
+ </property>
+ <widget class="QGroupBox">
+ <property name="name">
+ <cstring>nameNPGroupBox</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>10</x>
+ <y>0</y>
+ <width>120</width>
+ <height>50</height>
+ </rect>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="title">
+ <string>Preset Name</string>
+ </property>
+ <widget class="QLineEdit">
+ <property name="name">
+ <cstring>nameNPLineEdit</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>10</x>
+ <y>20</y>
+ <width>100</width>
+ <height>21</height>
+ </rect>
+ </property>
+ <property name="paletteForegroundColor">
+ <color>
+ <red>0</red>
+ <green>180</green>
+ <blue>0</blue>
+ </color>
+ </property>
+ <property name="paletteBackgroundColor">
+ <color>
+ <red>220</red>
+ <green>240</green>
+ <blue>30</blue>
+ </color>
+ </property>
+ <property name="font">
+ <font>
+ <family>Zero Threes</family>
+ <pointsize>8</pointsize>
+ </font>
+ </property>
+ <property name="text">
+ <string>INIT VOICE</string>
+ </property>
+ <property name="maxLength">
+ <number>12</number>
+ </property>
+ </widget>
+ </widget>
+ <widget class="QGroupBox">
+ <property name="name">
+ <cstring>subcategoryNPGroupBox</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>10</x>
+ <y>50</y>
+ <width>120</width>
+ <height>50</height>
+ </rect>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="title">
+ <string>Subcategory</string>
+ </property>
+ <widget class="QLineEdit">
+ <property name="name">
+ <cstring>subcategoryNPLineEdit</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>10</x>
+ <y>20</y>
+ <width>100</width>
+ <height>21</height>
+ </rect>
+ </property>
+ <property name="paletteForegroundColor">
+ <color>
+ <red>0</red>
+ <green>180</green>
+ <blue>0</blue>
+ </color>
+ </property>
+ <property name="paletteBackgroundColor">
+ <color>
+ <red>220</red>
+ <green>240</green>
+ <blue>30</blue>
+ </color>
+ </property>
+ <property name="font">
+ <font>
+ <family>Zero Threes</family>
+ <pointsize>8</pointsize>
+ </font>
+ </property>
+ <property name="text">
+ <string>NONE</string>
+ </property>
+ <property name="maxLength">
+ <number>12</number>
+ </property>
+ </widget>
+ </widget>
+ <widget class="QGroupBox">
+ <property name="name">
+ <cstring>categoryNPGroupBox</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>10</x>
+ <y>100</y>
+ <width>120</width>
+ <height>50</height>
+ </rect>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="title">
+ <string>Category</string>
+ </property>
+ <widget class="QLineEdit">
+ <property name="name">
+ <cstring>categoryNPLineEdit</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>10</x>
+ <y>20</y>
+ <width>100</width>
+ <height>21</height>
+ </rect>
+ </property>
+ <property name="paletteForegroundColor">
+ <color>
+ <red>0</red>
+ <green>180</green>
+ <blue>0</blue>
+ </color>
+ </property>
+ <property name="paletteBackgroundColor">
+ <color>
+ <red>220</red>
+ <green>240</green>
+ <blue>30</blue>
+ </color>
+ </property>
+ <property name="font">
+ <font>
+ <family>Zero Threes</family>
+ <pointsize>8</pointsize>
+ </font>
+ </property>
+ <property name="text">
+ <string>NONE</string>
+ </property>
+ <property name="maxLength">
+ <number>12</number>
+ </property>
+ </widget>
+ </widget>
+ <widget class="QGroupBox">
+ <property name="name">
+ <cstring>bankNPGroupBox</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>140</x>
+ <y>0</y>
+ <width>60</width>
+ <height>50</height>
+ </rect>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="title">
+ <string>Bank</string>
+ </property>
+ <widget class="QSpinBox">
+ <property name="name">
+ <cstring>bankNPSpinBox</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>10</x>
+ <y>20</y>
+ <width>40</width>
+ <height>21</height>
+ </rect>
+ </property>
+ <property name="paletteForegroundColor">
+ <color>
+ <red>0</red>
+ <green>180</green>
+ <blue>0</blue>
+ </color>
+ </property>
+ <property name="paletteBackgroundColor">
+ <color>
+ <red>220</red>
+ <green>240</green>
+ <blue>30</blue>
+ </color>
+ </property>
+ <property name="font">
+ <font>
+ <family>Zero Threes</family>
+ <italic>1</italic>
+ </font>
+ </property>
+ <property name="maxValue">
+ <number>128</number>
+ </property>
+ <property name="minValue">
+ <number>1</number>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Bank numerous</string>
+ </property>
+ </widget>
+ </widget>
+ <widget class="QGroupBox">
+ <property name="name">
+ <cstring>progNPGroupBox</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>200</x>
+ <y>0</y>
+ <width>60</width>
+ <height>50</height>
+ </rect>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="title">
+ <string>Prog</string>
+ </property>
+ <widget class="QSpinBox">
+ <property name="name">
+ <cstring>progNPSpinBox</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>10</x>
+ <y>20</y>
+ <width>40</width>
+ <height>21</height>
+ </rect>
+ </property>
+ <property name="paletteForegroundColor">
+ <color>
+ <red>0</red>
+ <green>180</green>
+ <blue>0</blue>
+ </color>
+ </property>
+ <property name="paletteBackgroundColor">
+ <color>
+ <red>220</red>
+ <green>240</green>
+ <blue>30</blue>
+ </color>
+ </property>
+ <property name="font">
+ <font>
+ <family>Zero Threes</family>
+ <italic>1</italic>
+ </font>
+ </property>
+ <property name="maxValue">
+ <number>128</number>
+ </property>
+ <property name="minValue">
+ <number>1</number>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Program numerous</string>
+ </property>
+ </widget>
+ </widget>
+ <widget class="QButtonGroup">
+ <property name="name">
+ <cstring>WantButtonGroup</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>140</x>
+ <y>50</y>
+ <width>119</width>
+ <height>100</height>
+ </rect>
+ </property>
+ <property name="backgroundOrigin">
+ <enum>AncestorOrigin</enum>
+ </property>
+ <property name="title">
+ <string>New preset</string>
+ </property>
+ <widget class="QPushButton">
+ <property name="name">
+ <cstring>CancelPushButton</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>10</x>
+ <y>60</y>
+ <width>100</width>
+ <height>30</height>
+ </rect>
+ </property>
+ <property name="text">
+ <string>&amp;Cancel</string>
+ </property>
+ <property name="accel">
+ <string>Alt+C</string>
+ </property>
+ </widget>
+ <widget class="QPushButton">
+ <property name="name">
+ <cstring>OkPushButton</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>10</x>
+ <y>20</y>
+ <width>100</width>
+ <height>30</height>
+ </rect>
+ </property>
+ <property name="text">
+ <string>&amp;Ok</string>
+ </property>
+ <property name="accel">
+ <string>Alt+O</string>
+ </property>
+ </widget>
+ </widget>
+</widget>
+<images>
+ <image name="image0">
+ <data format="XPM.GZ" length="350691">789cedbd5b53144bd7b67bfefe8a27de3e7b63457f32d9a8f1c53a000441146437d9ac5807dd08229b092a0aba62fdf7afaa725363648edc675655337d2ad23467fb6853787be57d8f91d5ffeb7ffe73fcf1c37ffee77ffdd7f787c9c397b3ff9c5d4ebefde77f3efdb8bdfdf5fffcbffff7fff75fffbdf0f2f57fe6975efce7af97d5f8efffebbffefbece63f67ff192d4de65fccbf6ed697f5fae5bc5c4ff97a81ada727cd7a2ad66713b15e986b5eff9baf5ff15fff42acf9ebfbf5fad5bc7c7d47acf9ebc77c7dc6d75bcdbafdffaff3b578fdbd5c4f9af5295b2fbce0af2fca357bfda95ebf5e90ffffb772cd5effc9d6f2ffbf2cd7ecf505be5ee0ebe67ebd3e93bffe5caed9eb577c2d7efd2bbe7ec5d6679fc47a917d3fbeb0f5e2a745f6fab9582fb1d7f9efb734c75fbf106bf6faa8f97e4c16e4fd1ab3b5783f9345be16efe79358b33f7ffa95aff9fb9bde89357f7f23bee6f7ebec4cacf9ffff235b8bf7339de3eb45b61effd5accfc4fb1bcff135ff7e4cfe666bf1fe26afc59afdfe933dbee6ef6f3227d6fccf7fc9d7e2fbf95dacf9fb67f7e36cf105fff5db6c2ddfef2a5ff3f73b5d93ebe6f71b377fffa7f2efcff8855c37af8fced85afc7d189fca357bbf6ff85abcff75b1e65fdf0e5f8bfbf95baed9d7f38dade5fb5f916bf6fa5f7cbdc85f9f976bf6fa2e5bcbafef41aed9f7f3335fbfe6af4fe59a7d7dcdf77ffa497e7dc772cdeecf115f8befdf2fbe165fef9358f3aff73b5ff3af77f251aed9af67eff793f87a27c772cdbe9e1f7c2dbede47b966aff3f7b3f89aff7eafd85a7c3dd36bb17e39dfbcfe82af3fb1d7277f89357b7d7c58afcf16c5d737fe5bacd99f3ffaced7fceb1dfd146bfefe3ff1b5f87a7fca35fbf3aed95a7ebd5fe59abdbecdd7e2ebfb87aff9d737fd25d6fcfbb7c7d7fcdf93e9a158733dceb3b5fcfb3de26b7e7f26e275713fde8935bf5f6b6cfd728ead478dbecee4f77ff48f58b3af677cc0d7fcfe8cf7c59adfbf65bee6f767c4fefcf6fb3f966bf67e2ef99adf8fc97bbe16dfef53b1e6f7e396afc5fdf82cd6fc75f6f57d92ff1ebce66bf1efd784aff9fdd97d106bfef5f3df4fdcaff154acd9ebd325b67e39c7efe78358f3fbf95baea7cd9adfbf978bfcf51f72ddbc3e6ededf27f9f76dbc27d6fc7eeff2b5b89f6fe59a7d7fd6d85adcdfd1a15cb3d7e7f85adcdfcf7c2deeefbd58b3fb33d9e26b7e7f279b62cdefe784ade5fdbd916bf6fd78c3d7e2dfa70db966af1ff035bfffe305be16f7fb4cacd9fd3abb666b71bf475fc49a7fbfbec935bbdffcfdc8fb3d91ebe6f511bfdf2f5ff3fbdffc7bf5e95cdedf0bb966ef679badc5fd1defc8357b3feff89adfdfd1095ff3fb3b5a146b7e7fbff0b5b8bf5762cd5f67f7eb5cdcdfc9915cb35fff92aff9fd9d2cc935bbbff77c2dfe7dfc20d6fcefef265f8bfbfd49acf9bf8fe76c2deeeff842aed9fdbbe36b7e7f473772cd5e5fe56b7e7f474b62fd8afd7afefe5f7ee2afbf126bf6fab859575f8eb8df1fe49abddff77c2deeb7785ddcef3db1e6fba9177ccdeff7e854acf9fd3b676b79bfefe49addef55be16f77b59aed9eb277c2deef748acf9fd3ee36b7ebfa71762cdefef17b696f7fbb35cb3bf9f577ccdeff7f852aed9fdbbe76b71bf57c49adfef0dbe16f77b5dacf9fd6efefe9ecbbfbfe34dbee6f773bc25d6fc7e6ef3b5b89f1fc59abf7eccd6723fbb20d7ec7e4df95adccf33b966af3ff2b5e0d75bb1e67afec0d78267fb62cd5fe77f9eb89fd32f72cdeee7225f8bfb792dd7ecf51bbe16f7f356acf9fdfcc1d7e27e3e88357f9ddfaf57737cfd975cb3dfbff97e5cc8bfafe3b762cdefd727bee6f777bc2ed6fcf5f76c2defef815cb3efc7df7ccdefefe848aed9fd1af1b5b8bf1762cdefdf2d5f8bfbfb4dacf9eb2b6c2d797728d7ecdf5ffe7ee4fd5d926bf6f5f3df5ffefbfb8f58f3fb75c9d7e2fe9e8b357ffd89ade5fddd946bf6eb77f97a91bfbe23d7eccf6b78797121f74fab6c2deee7f88d5cb3fbff92afc5fe6145aed9ebcb7c2d78f65bacf9d7ff8bafc5bfb74f62cd5fffc9d652ff8f72cddeef0fbe16f7f341aed9eb5ff95adccf3bb1e6fafec6d7fc7e8eefc59abffe9dade5fd9cca35bb9fd77c2deee7955cb3d7f99fffea355f3f8af5eb8566cdefc7ab4ffcf55f62cd5fe7f7fbf51c5fefcbf559bdde7d188faa31a9c7785a8d3339f0f5a91ae7cdf8d48c8beac7fafa0cc66533be807135beae7e64a3bd6ef8b845835dff80b91e77d5b847e3ab32bef1714fccedf53d79e4b872bc0f36f0457dfd62a8f70b8f3b30be6af38371e0eb079f7f92e351193f9bf9a9fa511ff8fa558ddfd55846e3b73296c72bd5bcd2ccf5d0afd56abce1f36af53338d6e4581daf37638d0f76bdadc64633de8e37c17837dee26373fcbefa518c0fd58f626c573fb2b133fec8c76ef5231bbbe3bd6aec57e3a0fad941f5b37a1c36e3ef6a1c8e8faa715cfd78ccaf93f169355e8ce7aaf1d798250cf3955a47d5981874bcc007d3b0aae37370d51afe42e8f8ba19577cd4d7a245c74b52cbe2aa35fc95cfdf8c3afeaafcbd358df6eff9f76afe8ee6a10cfcbe685d9a865daf6240adea9749b73f14bdfe0083d6ee4fa0d9f632e9f6179897adba5de6ba5507be5e4acdaada5d95f31a18aa7637d080dadd04e31dd02fd3edab667c90fafd58fdc8b4bb2db55b5faf1bfd4aed8ec652bfec3a6663341a1fd703e8f7a4d6ef6802198c755bfd179abf6749fcbd5106d3ec8dc65d31eeadfc2dc55de7359ac6cd45d8ac5f261efbb3b84f0eeb970f87579239bc0a38bc86b4fcd68bc3ef0c1c6e19bc2d19bc8374bc8775cc35dc7298e9f8a8d1f119d2316370cd5fbc8f9e12fc1557387faf02f87bdbe899e2afdf3e3a84bbb332caf1388ec3aa5e87cae1979e1c5e431c96da1d7d42ba5d47bab571f815e030de436f3743dd431f687be80382c3c78a7e4f6afd8effe20c56f6ce0d7fa706fe9e49fe5ef0e1e62f1b66fede480ef3313ab7f297f2bd29eccdcad98c7c4ee1716e0e9b354d7398d6734e0eab5ed8cde137c538bc4970b8d5f107ca0b8f2e342fac73f850e130d4f069bd97660c46fb68a9e3d167037fc570f3f712f1f7527298e6ef0dc5dfd1a5731f5d9abba5aeae786cd7ec3752ab6e16cf1687578b7318efa10587b78117f6e430f7c21587ab9fb51c3e02faad46f5b386c382c1ad766bfe36da95d7e84b107f3f17e4afddf7266832859fae11f3fb26ebdded8be3f2693f4f5c8ac3cbde1c36675b6f481d8772f82de0709b47630eb779b4be9f665a661cde55386ccbb48e140ebf900c263268ace328fe5e2afcd5350cd97ba3d6922cfc2d9533f77dc5f1d85c470acba84339fc3599c3b67a929bc3cb091c7e63e430ae27d938bc5129b5e5f07b650ffdcaa2dd8f0a83f72483150eb7faad7cb09a657106f7c0df9b40feda7d6fa43e93f87a153832f0394ae729bef8b97058bf6c1c5e437bea35c461a1e3b7da7e1a7258f7c2ea7efaa3d432ad633b878f21871b05dbf8bb5084bfaa9615fed63a26b4ecc7df30ee0efd4ae171ee7c7af638bc12c461ba2ecc86a92ebc29f7ce2a87615dd8b08756ea492d87a17e0f150ee34cba65703c7fc5f8cc751bc55f836673f0d79bbbc99c8d1d115c0ed4b7cd17fb7b62dcafd53787ed3d5add73b8ebfeac53c8e028fe0a4d5f6a0c2ec5df5c7973962b632f47191ea7f8e2d9e5b02dc7d2ebc23939dc537f56a3e096bf539abfa32fdefcbdccc5dfd125c18b28f67a73b72be6063039e0df84540efb7b629f7eadbe39acd685750eaf067058d5727c9fb4bb3f8bae0babfd59722f0d183cd5f95beb1868d9c6dff300fede04f2f71bd7738aefcdc3d95a5fd709733e3e97e730ac13fbd788f37218f7738841ebb65f0efbf467e91cf6eccf427561a53f8b3158f2774af8df6aaefecb0560700c7f6ff8f58f1c88bf58bb1a7fb3fadec131d793c99e3c4ecda76797c3aef34a2e0ef7d59f65ad0b2bfd5958c798c1ad8e29fe321d87f197d631c1dfbaee6bde4b1bf8ebe77ba3789bc4d9883981c77ebe38369fb6f76bf5c561f3fed9c4e1b0f34aa5faa4b7b53d74407f16d22fe8eb600c6ef98bb44bf07774e3c55f311add8e6e75feaaecc5fcad562d87b3f8de99e36eba3ff665f15039fca471b88f73c3e11c76f5676d7bd6963cfbb33883257f990f8ee62fac27293a0ee3af602fe26f48ee1cc65d1b274b8d00bf9c81c53ebef8dfc0e1aece2be5e9cfdab7f467712f0c187ca66bb7087f6f2aaddee8fc959a0de5af712f8cf89ba4b7d175de519ec7811c0eab13cf16877dcf2b9933699ac3b02e8cbd705c7f96ba97ded332ad6a8cfe51ebc282c12d7fb52cab0c7f999643f99bc1f75ab9dbf748e771190edf6b5acdc7e1476f0eff0ae270d93ee9f8fe2cf5ac925e176efb3ae83df411e4306770287fab31ba93fc35e8b6307f0b7137376f0b73d9cd61378b63fbb5d238ecfb1c8f1ccfd14a39afd4557fd6aea33fcbf0dc8ee6c9779f55fe221d03fed63a56b4ecc75f7141fe925956347f6797bb113c4e64b14f3e1ddaaf350c0ebbce0d77d5271dd39f15f9dc0ee18375fe8ae1c1dfcb02fc8df0bdf1ecb5f2f1aad09c97c7397cf173e270f77dd221fd59199fdb2118dcf672b45aaef9cbf7d2247f1b1dfbf3f79f48feda73672fdf9bc6dd01ec97e3ebc7b3cce12ece2bf5d59f15fddc0eb52edc28f80bd42ee6af6070ab5d7ffe8e6ecbf0378fefed94b7095c8e63f14c7358efcfd2f51c7e6e7828fd59999fdbc14f17827d34e66feb831dfcbdf2e12fa5e3d13964af377fc37d6f2fbc2dc0e5705fec9b4f3f570e87f549977f7e56d6bab0cae004fe3603f277746be2efe8b21ae75cbbe76c74c1df6cdc0dbdbae7b1c1177be9ba24877d9f2f3d84f34a399f9fa5d79642ebc2fb745d583298a82579f2b79a47f79a9623f90bf6d309fc0df3bd7d71370393c37cf1d0386cceb15239dc779ff446d4733ba2eac290c14cb336fe8e6e22f90bf44bf1b71adfeb61d76b7cee1cc5ddf6fa9a7984f3394edf7f381cda27edd79f15f7fcacf4ba30795e989f2ea43cf039d631d372187f47b788bf0a870dfc8dc89dc37d6fdf8ccdc8e2305fecc3618ac7dd71f871acd6855d1cced127edfb3c69a53fcbf3f95905ebc282c12d7fd9206a473790c1b56e15ed76cbdf788ddab99b9bb7615c0ee471188bd5fbe8e470cbe2140ebb3269a1e7c70c1ccedf271d53170eedcf32d585bdce0bab0c16fc6d7b3988bdf49d377f6fccfc1523077ffd7c6f563e26e451e579ec71f5c3613d8ff6e570fa79a5b43ee9a1d6855957e5b75ab97a1f16d83bdfc01c7a06f93b4ceec6f3385cdb2975e2f4734bf11cce715ea94c7f96fa39c3617561fc790e3bf17561c860c85face350fe4a4d97e6af97ef4de42cd355be3999cfd97cf1b039dc7d9f745c7f56febab0e39c21d3efe87bbb8b4ee36fb5aa86e06f331e92f84b6754e1ec9d2dee66e1b11f8b7be1b0bb472becdc70d93ee91cfd59f47961575d38f839d22d8343f8ab6b99e958ad0327f2d77a15f2bd7979ebcfe5bc2ccec16173df74c8f9614ab7b99fdf31dcfeacb8cf73a09f234dd593c42edac95f9c4107f0b71aa31f82bf7c56f88b384cf2c1cd5f2fdf3b5beca5599c8dc3963a715e0e634de77d7e47cefe2cfd8ae1707a5d38f039d2a39f82c1b80f1aea787423f8dbe898e0afd0b291bf42cb06fe92fb699abb5eb97351eec68e823c2ec2e196c7311c76d786bbeb932ed39f95b32e1c9847e3e7484306575afd02b47bd1ea963158e816ee9d511f96c6df46b706fe6aba2dc7df7406e6ba4afae230160f9bc3c3ebcf2a5517b6e5d15e7561916409fe6a3a061e98f960177f0d7be94b65f4cddf92bccdc7e5ccbed871a573d8fc390f5d9d579ac5baf0b6b687861cde5538ac9c53c20cd6f6cefefcd57b2793f8ebaefd7af8defe995b8ec95ebed8df1377c8e19ce786f3f467755517cef51c69744e897755821c3a99bf3f0af3379ebd43e06e1c8fff3d1cb69f573265d2a9fd592b19389cff39d296734a6d9625186ce32f553b1add2a39f483ba776ef51ac5dfb4ba6f77cc7d34cc5d3139473e1dcae1d8e74b77715e695875619f3cda5617f638a704184ceb18d68195bdb4a801330ef7c35f4f36e5e16e57bacce08bb37238bc4f8be670cef34a71fd59b1cfcf32d785d5e748c7d7853f00fdd29f2f7c40d5931a05ebd9d50d1c50b715757df8fb03d481d9f59483bfd973e734cec6ce65583c040ee73e37ecd7276dcfa4edcfcfcaf1dc0e3dd78a7f8ef487315d1736e6d19cc17a2d49a9038feea82c4be32fd2b2d4b181bf48cf347fd372e714ee96bed2789c89c3963a711f1c4eeb934e7d7e56177561f373a4ed79b4a52eac33b8b9ee68fed6cfe148e5afd46d4efee6e36e6ede76c9633a9f1e2a87cbf549f75317863e18e75aa6e748b71a863a0e3ca7646270187f9b99d632ccb32e752d77cadfbeb99baad3085f5c8cc37e3d5af1e795faeccf4ac9a3d7910f56f7d0c207632f1c9247efa9793463b01f7fdb3e6831806e1f34feb639f430f89b9fbbbfaaf19b98cbf03894c5c3e77077fd59ddd48543cf296d25e6d17b2d836dfc5533e83acb825aee96bfd1b9f310b91ba3d5e7cae161f467611f6cf6c22a877df2e82dd0d3117f4e695fad2701065fe03a70cde096c36efed2e7906add2a3974d7fcb55f3e9ccd39d2791ccb61c0e39e38dc659ff430eac221e794740ed379f42ee583d50c1a723892bf783fdd0f7f678dbdbe5a8dcca7a3386c3e3f9cc6e1f43ee9e1d485a9cf17a673ac02e7945a0637ba6d2e95bfb00eece0ef03caa135fe8e9eea11c1df98ba6f1c77859fed6ac4f1b82f0ebb7aa52187bbee93763d3f2bac2e4c9f17a6f6d3e6734aeb017561571e6d3ca7a4fa6095bf58c75a1fd683aa65c4dfd607ebf5a4a78cfc9d75df1bcbe2ec1cf6f4c2e11cced9271dde9f155317f6798eb4f99c525c1eade658db328fde467be83d0383257fed7d58d5a075ebe22fd26de7fc1d127763781ccbe2ae385cbe4f7a16eac2b6734a74a665caa3292fbc3d26f268d507a31c5ad731f2c1c6bdb4c65f7d2fdd397ff35cbfc130d5927e29bfae3c8bfbe3f030fab3d2eac225ce0bab7561771e6dab0b5bf368de93a5d481a17615fed20c8ee3af91c1d1fca5afae72e6aef2ea500e7f25eea30f87cdcff148e3707c9fb47d4f5df6bc703fe7941c79f468b9395d883268be97bed374ace4d03e7dd0958ed51cba6bfea6f1d6c5d9d8b934879d75e20173787875e1f43c3aec9c929e475b3e4f8933f80e67d040bb2b5cbd66fefe003ef801321868f74968d7fdfcab0ef8db3763cbf8e2621c56bf6f811ceeb73fabebba30ed8543f3e81dff3c5a66d188bfd45edac8df66a00cfa8781bf48cb684f1dca5f9a3be9ec2dc9ddbc3c9e4d0e97e8cfca5317cef11c6955bba63c7a73eccaa3f5734a641e3d5a463e98f6c0a80eac303888bf4a1db80ffef6cdd4dcbeb8270e7b30b8cffe2c9ff3c2b1cf918ec9a32187a94cebbd671ebd4b675ac207dbeac0e0129996bd0e2cfbb04c7be98cfc4df7be7d70979a6783c326dd96eecfca5f17eefa9c52a13c5a3098f4c01a7f55ed2a75605db3741f5649fe96abf7fe4e18e57c713a87ed7aee96c343a80bdbf6d3360efbe5d1f439a5843cba51f01df4c1a48ea10f56753cabfcf5adebc2397684fc39e1ded89d4f97e5707ffd59c338a7943b8fa69fd761c8a3a10fc6daad2e9843dbf9cb7cf093c6e150feea1c0ed16adedc3985b9e5989c83c331e787d3ce2b95edcfeaf639d2ae3c7abd9a5b2d631ffc966470521e8d184ceca5893ab0aae3079467fdb06559b0a69499bf61ec2dc9db5c5cee8cc306cdda3f6fc997c3fdd6859f1c1c4ef97c61571e6d7f5e478e3c1af960771d186a3784bf2d87690617e2eff0b89b8fc7b6e78074cfe1dcfd59fdd785cbe5d1aa0f161cb6e7d13b441e2d2fc960d08765cea12bc5527b69b50e4c6ab977fefaf8debe469e7a71971c9ed5ba70be734a741e4d69b7681edd5493d0deb919047f15063fb8ebc06efe6abaed83bf7d70370f8b8b71d89e490fb23f2bee39d265cf2985e6d1b41776e4d1d807933a4675606d2f4df66199f82b736890773a199c83bf79b85b569779f2e959e6708e3c3afc39d279cf29d9f268acdd4d42bb3e7974bb87de933e7895d0ed0a1f9407c6fcad3db0ea83511fd640f91bcbca5f9e73372cee9ac3ca79a541d68567258fde1ac33cdac460358fdec57974eb83317f714f2559075673e827cf1c3a84bff8fc51d7fced6faf9c964f9bf9fb55d5a983c3317dd265eac2662f9c7a4ea9af3c7a8bc8a35b1f4cf755127974a360671d18eab7d1ed83e4b095bf80c3b3c95f5fde96e0f2a039dc635df84f1e8df6d2b29a7447f2575cb48e8d756055cbbdf0372e771e4e76d50b870d3eb8447f5689ba70ff79f47ac63cdaf5ac1d82c1d510fc5d51194cf097a803d7ba6d2e2b7f916e7d9fff9c83bf7d703785c7dd70b8bd140edb33692f0ec7d685fb38a754328f6e19ecee8f6e2f8f3c9afbe0557b0ecdeac0961cfa49db4f7bf66175ccdf61b0d75fa7b3cae1b275e1f0734a7de5d1cd25f3e84d431efdde504ba2fbb2f0d9863d85c13887d6ebc02a7f35dd62fe56e3aa1ecf90bf6faaf90d3197e1711c87dd9a861c56bf1f25fbb3e2ce0beb7974f8e70be3abaf3c7a8bc8a3df3bf3e81d2a8fe63e38b40eace7d05a9ea5665a017d583a2fcaf1b74ff6fae934ad5f2b2f87d3eac265cf0b0ff5b959a63c7a2b471ecd9e74a7e5d09a076ec60fe0838d7560c4dfe920f89bce5d136fcd43fff5b3c7e17c7dd25dd68567398f763daf43c9a3476b80c1ab0939f493964323fe367a0ee983ee86bf7df3369f2f4ee170c9feacf8ba70a9734af1cfcdea278fde26b4abf665ed021fbc8a72e875af3a30e4707b19f91b5c07ee8fbf6ece868e1c3ccec1e1e1d685cb9c53ea2b8fa67cb09e476f8d716f969e47ef1079f46e9b476b3e7855cba129fe0a3dfbe6d079faa0ff0dfc2dc1614aafe11cce53178e3d2fec3ea7348b79b4f0c1308fc6b524da07ef100c86fcd57268b20e1c91430f82bf5d72d7cee37f1387cbd58567318fde0ccca3d9e719127d59a3b71a83dbabd6f18685c106fe6a39f415e5837be16fdf5ccdc7e2f0fa7004877bad0b779f47e7eb8f6e7db05f1ead7f9e619b47abfb672d8fe60c5e953ed82787ce5907f6c9a04bf3d72f5f2ec361bb2f1e10877bab0bcf721eddea185fee3cdabb2fcbe083c59e9ad671621df819f0f78d65cc2287fbae0bfb9c53ca9f4777d31f8d2fbd2f8b69d7de976539db20196ccca18d75609c436fba72e8a03ab07e95e56fdfc3e68be3394ced5ffc189c5a17f63d2f3c0b79f44a24874d3e789d7b60d5076f3afbb2a48e476b6d1e8d188c7368531d58e8f949f3c1441dd89967b9faa087c15f1b735d63381c8ee8cf4aaa0be73ea7d46f1e8d7df04b52b7561face4d16a5f96ae5d7b1e0d196ccca19bb1217368da07137560a36ed3f8eb7efeb33f7fbbf7bdcf80c3cf328f2effbc0e735f96398fd66bc2641e3d5a430cc639f4baa663671dd89d4307f1d7cee0d2fcd579fa2b70cecde3b21ceebb2efc5cf368bc7fde1c533561f8bc2ccc61675f16f2c142b758bb26fe8af1a4f9e05275e0e7cbdfee38eccfe0540effc9a3615f16ceb4de4afeea7d59ef893cdad2972519bcea9d43b73e58d771de3ab0fd2ac5df34eefaf1b82487c37bb472d685d3cf29e5caa387f4bc0e535f16a55d675fd6684df465d5671b341f4cef9d4d39b481bf2a87fff03798c3749d388ec343aa0bcf721e9daf2f4beca7c3f368b5a68419dc5efa5e7a63e49143a34c4bcba133d6814bf0373f77dd3ccec1e19c7dd2a5eac2cf338f8ee8cb6a384cf960d339e16db17f1ebda3fbb2481f6ccaa1b76272e8c83ab07f1fd673e2afce633f0ebbbdf0bf398f8e797eb47a46298ec3261f8cfbb2b688fdb4c9076bbd1d061fec9f436b5a463eb8441d98fafca314fe96f1bdb3c4e1f0baf090f3e81c9f6768f7c1348763fab2b694fdb3ee83893cbaede7403e386b0e0df5abe5d0b9fbb0fae0afed1a2687a97d4d790ecf521ebd5c3c8f36f565ad3b7db0e470bb97163ae69fbaa2e6d0745f251b5b061dc3eb4af5c105fbb0668fbf348f5333e9e1d48573f64777fffce8df5e1c76e4d1a3f75e7d59eb63ba2f6b53d3aebe7fc63ed8b477de90fcd57d700c7fc373e861f037e54ae730fd75e5e4f0f3cca3c3ce0917c8a32b1d0bfe5673b5a27cf0165957aac6e883d0f0e89db92f4b61f03072e87f137f6788c383cda3533ecfb0e4732b258315ed6e920c86fcc50c967934753ec9e2836d39743db61087373baf0397e66fee2bde07fb73d89d49d33ed8cce190734a25f2e8b0e747e7fd3cc3b27d596e1f6ccaa35d3ed8c65fdd076f41fe8ed17924870f0ead03bbfba043f91bc3cb30ddf5cd617b261d5817a6f7ce3de6d1f19f67989e4787f960bda732248f6e7d3091474b06eb7be775e483b71c3ef8caa8dbf83a70b8071e2a7f53599c8fc3cf338ff6efcb72e7d1e9e784fd7cb0df39619dc1c007d73a960cc63934de4bb71cee3387ee8fbfa9a32487699da6d685879d47cf5c5f16d6ee689beecb1a7da07d709b63517d591a83d7bd72e8ad666c020eef44e7d0fa95a30f2b4e7f5d5db9389c338fb679e1d279f4733e276cf0c1a38fb40fae742c18bce5d23162f0aa570ebd65f7c1388796233d87ced587d53d7f63789cc6e161e6d129cf8feefb9cb0e9d9d1160e5b7d70d6be2c830fdee03eb8cda14dbad572684db7fdd48187cbdf1416fbf8e0300efb31b88b3cfa19f665d53e987b61970f36e5d13a83770c0c6e9f0fadefa5dbba928dbff5b59b94439baf6ef95b7af87138571e6de7705a1eddfff3a367a22f8bf0c15b3a87b90fe6daa5fa39027cb02b87de4239b4d90797c8a19f0b7f4b7278f87974dce7193ea3be2ce483b7aa15e983ed7d5980c12ba40fc639b4aee52d8dc3dde7d021fcf5e17057a35b0efb7be12ef2e87f415f56cd5fa05d4b5f56ab5dec835bed527d598a0f5e27b51b99433763d7d307eb57780e4df561cd0a7fe3384c7fddfe1cfe1dc1e1c83cdaa3269c96470fba2f4bf7c18a8e9d3e78b4a7d784ad3e98ae29f9e5d09b940f263d70d8732973d481f3f137a71e7372d8ee83c37ab372e5d1cffd9c70900f36ec9fb10f167b6894479b7c307b5e16c16091439b7cb09e43eb0c2e95439bfefec6d681877285efbf0791477bfbe02ef2e8eefab2cc0c0ef4c18d96091fdc7a61c20783be2cc5076f187d709b4353fb69d5070f2d87cec3df52ba1c425db8ef3cbacc39e15efbb25c3eb8edcbc23eb8edcb32f960c6e15abbcc0b1b18eccaa1437d703739f46cf2378ec343cea39f535f56d2f3b25c3ed8d19765f1c1ad8e810fa6750c7db03d87ded17cf0ee48ff373c2c87eea60e5c5ae75d71b8a33c3afb39e1e1f665f93d2f2bc207cbfdb3a70f6ef6d0dbad76db3c1a31f881f0c15b8476879a43cf2e7fbbe7b0baeff163b05f1e3dfb7d59f61ecbe03cdaea83b7fc7d30d597057cb099c1a67eac96c3be3974a80f4ecda1fbe76f1e0ef79547fbd6844bf565f5f9f90d361feccca3c1fed9d19745fae02dd507ab79b4d507fbf4636da11c7a4763f0aef2ef75573974770cde57e66e193c8b79f4acf465653c9f2474ccb4ecf0c1645f16f6c14cc77c2fbde3e983db73c13e3e58d772a91c3a471db8eb7d76ff1c0ef5c1e979f490fab23afe1c439e477bf860a65ddd07330e47fbe075c2073f871c3a1f774d73571cee3a8f9ed5beac5e3fc7d09447eb3e58d331df4b2b3a8ef3c1743f16eeed70fbe0b47ee8eeeac025afa1e6d1b3dc97e5f6c1e6beac429f6308f6cf1e3e18ed9f3755ed06f9609f7eac701f5ca61fabdb1cda97bfe93cee278feec307e7caa35d3e98eacbeae47c12e1830fc2ce27d53e58d531e983378c3e18f763997cf06e011f6c7f2e47a91cba8b6be83e7856fab2723e2fabe8f924b17756f6cf313e58fbdc15c5070bdda6fae0eecf050f91bf65399c9e473fdfe765cdc0f9a4001fbce7e183d79d3ed8de133dc47eacf01cbaabab641e3df4beac7fc9f924da0783fdb3d90773fdfaf9e0d19ad507d3fd58361fbc3bf2f3c1faf568d46abf39742a7fe338dcbd0f7e1e7d597d9f4f8af0c16c3f5dfd48f665197cf08ec307d3fd58ea5e5aedc7a2b5ecf2c1e6cbdc8f552a87eef29a9d3cfadfe183339e4f82fc75fb607dffccf268a28e247d30e4b0d5076f691cc63eb8bf7eac6e72e85cfc0de7b07f1e9de283cd79b48dc1cfe17c52bc0ffeadf860ace5081fccbc30a9e3781f0c194cf9e02d8dc33e3eb8cb7eac61f3d7a6d1a1e4d171cfcbca793ee919f9609ac172ff1cec8347ef9c3e98caa1751fbc63dc3b0b0ecf6e0edd1f7f4338ec9347f7d397d5eff9a4923ed83f8ff6f7c15b313e98e95832b8bc0f1e4e3fd610181ccae199e8cb4af0c13ee793c29fd3e13a9fd4ab0f1e6d0bfefaf9e04ab16e1fbc6ef1c1e67eac56bb43eec70abffae570ae3c3ac607db185cfa7c520e1f9c723e29d3733a2ab5ae600647f9e03db30f663af6f0c1a63c4bf5c1433a97347c1f6cd2688e3c3aaf0ff665709a0f8e3b9f34d8e774b4da85fcad561fe37d303c9f14e583057ffff8e06e383cdb3ed8f77cd2b37e4e87cd07b73ae61e58f3c182bf86bdb4af0f5e97e792d27c70d7fd5821fc1d128373e4d1bdf9e09ac3057df08c3ca703ec9fdd3e98dc3f8b1ad21f1f1ca9d1fef9ebcbe07fa70f9e89e774601f3c3aa887db07574476f860a8e3d161940fdef2f6c198c3213e38e55cd26ce4d0268d0ed107e77f4ec72cf9e0a8cf110ef7c1eab9062a8b76f8e08d3f3e185cfd7338970fb673f88f0f2ef839c2d00773061fe83a863e18ea38c907af231fbc31533e783672689b4667da07677f4ec7507cb0775f965e47f2f1c170ff0c7d70b5f2f5c1b56e7d7d301b43f0c125ce25f5cf5f5f06fbf8603b8387e783752dff7b7cf096c907d33a1eb00fa6fcdb1f1fdca50fc61cceed83733dafb25b1fecd197c5758b7c30f4c2361f4c9c69d0191ce283690677ef834d7f4f67eb5cd21f1feceb83cd0ceece07677a4e478c0f067b69c05f82c17f7cf03019fcc707977a5e650f3e98ed9d8d0c4ef0c14606af230ec7fbe01dc9e13f3eb86f1f3c6bf5e0217c6e4386e774d87d30d432d0b1d307b3cbdb07af7bf9e0dd91adb7e34f3d384ca343f1c17f3eb721a70f3ea074db6857f297f6c1dafe79bbdd3f7bf9e075a4dbad3ff5e019f4c17606fff1c1057c30d6b1dc4b031f4c30784bd531f2c17b057df0cec07c709b6f0d9dc3213e7826ce077bf7453f4b1f0c744bfa60acdb3f3e18cc2518dc2f7f7d19fc1c7df010faa20bfae04aa907ad96f95e9af4c192c1a40f1e1d66f3c14f03f3c1b3914797caa14bf860fff3c1cfbb2fba331f0cf9ab68b79c0f66e38f0fee9abfcfcf070fa12ffadfe48399a6cd3eb8d5f39fcf6b706974869e174debd6703d8ff3c1457db0a25dab0f1ead0906573be93f3eb80b0e9763f0737b5ef433f0c18d7e0fe27c7045da8f82bfd0076b7b695f1f1cde179dcb07db395cc20777cde17e7cb03f83bb7e5ef4b3f3c12d7f81763d7cb0d46e791fac33b83f1f3c5c0e9765b02b87b63358bdff7e0c9e85e7453f5b1f0c7ab2541f0c396cf7c142cb257db0d85397f1c17de7d171fc2ddb8f15e883bd73e83f3e98f0c1fcda86bad57d30e3ef1f1f9c41a343e56faa0f0ecda187e283cb3e2f3aab0f6ef9ebf2c18d86091fccf81bec832187b788fdf4d07d705c1edd05874bf23725870ef4c1dee7927c7db0ae5bdd07877f6e52673e78f4b7ca60ec8399660bfae055a0db101fac7218ea76a7195df8e09279742c87cb33d8c7070fa91f6b967c70e473b246472887d67c70cbdf667c840cc63e1865d1dc07b7976470191fac6b79973338de0777974797e6b07b5fdc7f3f561f3e38e6f38307eb834747cafe39c00737da257c30d0aec907df133e1872780b71b85f1f4ce5d165bd70088fbb61705a0edd613f560f9f1fdce373b266d207b3fdf4aed107c7e5d165fbb2fae07069fea6f8609abff97d7089734933e783c1fe799364b0d5078bfd336230dc3faf4b2f9cee834d1cd6afa1e7d1dd5cdde5d0ddfb60ea9c7f5f9f1fdc890fd6f6d2561fccf8db8c3d970f66fceddc07777d3e69381cf6d363e91c3aa61fabc4b9a47c3e58e5af39bf2afab9490d7f8f2c3ef8586ad6e183a576151fac6458b13e58e730c5e01dc4dfeef268ffbeaca17238c4cba7fb60f5bebbf89be0833d189cdb073f26f860bd1fcbcb07d71ab6fae063c9df7a3ed6181ce58347871e3ed8b49f861c567d70abe5781f2cf6d434874318ece25c49ada7f3b77c0e6df6c101e7927a7c3e87d907b77b669ac158b7619f1f6cf0c10d7f8f141ffc9eda3b37d78711e983017f91761bfe36fbe79abf813ef841f3c1b39b470f91c3ddf1b7743f567f3e98cea1751ffc54e6f383fd7d30ceb31af6123eb8e56f940f869fc342d595c29e57c946880f165e38258f4eab0ba7e8dd3f8ffaf7e4d0a59f5319ee835bfeceba0f56b5ebe783bbedcbca99470f8dc161fc7de3e46f891cba8b7349713ed8d58fa56a59e5afcb07ffd686c1074b1d1f687b69e883b5bd34f6c1388be6fc3d2119acfa60315c3eb8bbbeacfef3e810ed87ebb02bfe8631b8eb7eacf2cfa92ce183b16e4d3e18f1d7ea834f95fdb3e02fd6aeaf0fde5018ecdf97a5e7d1613eb89bfee821713895bfe13ef8f76888fd58f4b9a41c9fd740f9607b4f962d87267cb0d4b1c9071f4b061f903a8ef6c192c11bc63c9af2c1e6be2cd50797cda3fbe470caf0e36f0a8373e4d0ddf56375f5790d797d705b3fb2e7d070ef8c6a48a31748b7c80703ed7ed0b4bb6660303e9f341b7d59541e3d4b1c8ed3ffece5d0fd9e4bcaeb835732fbe053a0e33d6d2fadfbe0390f1f5caa2fabef3c3a477d78f6f89b3587eead1f2bc7f33928069bf9ebe7838372e8ce7db0dff92495c325fbb29e13874bf1377f0e9dee83bbecc7eaf6f91c840f96fc3d22f8abf56379fa602a8b9e237db05e1336f9e0aefab272e4d1c3e07009feba73e8300f1c9643873e277a96ce2579f960670e7dece5834f11834f900fd6f7cf6b4cbb413e186bf72fc061dd07cf5a1edd078b87c1dfa41c7a70fd583d3da7322287c63a3e45fc853ab6fbe035e48357b2f465d179b49f0f2e9f47f7c361df3fa70c7f879343e7eec72aff7c0eab0f46fc3d42fc35f9e063a4dd533ef41cdaed8361163daf307855fa60c1e1aefab2540e877be159e070dabf036efece720e3d84734991cfa90cc8a10f481def1139f40782bf388b863e78b5b3beac127974690e87fe7b10fafb96e36f7f397457fd58f1e792929fcf91c507533974eb8369edda7c706c5f56fe3cdaac55bf3c3a8dc3b9599cbe0fa7bebe50fef69343e7ecc7ca712e29f3f339bc72e8d6071f6b3ac63e78cfe083691d631fbc11e483bbcda3dd1c0ee3573c874bcc31fcd5f51ac65f9366a3ce05133e383e871ee2b9a4701f7c2c87cb07ab39b4d02eeec79ae3634d6130e583fdfab2ec79f4ae218fa6384cfbe01c75e1740ea7b238f5cf0ee1ef9f1cba443f96d50723fe523ef81831b8d6ef82970f3e410c3ed174ece383750e6f39f2e84d4b1ead72387f1e3dab1ccec3df9c75e0b239749e7eac5ecf25555ac5dafd1bf1f708f1f718ed9d8f0d3934e583f51c5af5c1f30483b10fa66bc2d807b7671a62f3683387e3188c7995bf3fa32473cbf137e63c52a91cbacb7eacd47349461face938d4079f22069f123a16fc5d24183ca7f8e0a56abc74e4d1713e385f1efdfc385c8ebfd9ebc01972e87efbb1329d4be2ba5d46fc3d52188cf7cfc71a83edfd5850bbfafe798d6b17fbe0575e3e187318fae05279741c87756e953faf907be4e5afbd0eec62701739747ffd5849cfe7c00ce6fa0df5c1d4b9249b0f161e58f7c1e17d5925f2e8b0ba704a7f16cde26eb81bcf5f5aafb9f86bcca10d9a1dc6b9e0befab1fc7cb04f0e7d8a74abfa6098431f0206533e38ac2f2b3c8fae191c9647dbebc2cf91c3a1fc7533382b7f3b3a173ce47e2cc207f3eb80d4713d16007fb10f6e736855c7d807eb393464f092a32f2b358f2e5917cecfe1523c4e65af1f7ffbad03a7e5d0833f97149043c3bdb3ae5bf7b924dd071f2a3eb865f012b97f4e3d271cf2bc8ef275e1d9e0707efec6d681879643e7793e56a67349640e0d7df0b155cb740eadfa60c6de4542c77372cc231f3c9c3c3ab53f2b9ec3348bfbf6bdddf077983974dcf3b1523f2f89f4c1c939f4a9a25d930f6ef9abfae039830faeb53ba43cba24877f0d96c343e6ef6ce6d0ba0f76d5823dfab1341d0bfe1e44e4d082c1940f7ee7f4c1874a16edd39795378f8eaf0bdb9fdb91ce613b8fc3468ef79187bf9466fbe26f37e78253fab1900f06ba5d46d9556c3fd60ba4db5325876e393c37d2fb38247f0d3e38671e4d7398cea3ed1c76f32686c343e1b1f97da6f0d7de87e562b03f7fd3faa167be1f2b2187567d30cea15b1facea988d43c207a7e4d130db4acfa373f467e5e170289373ff995df0f779e7d089fd58b55ebd7cb09e5ff9fa60533f96c907530c7e45ee9ffdcf09db9ed791a32e5c82c3fde6d3ed3ea0047f8758078ecfa107d48f45eea5cd39f4026770eb83b18e4f810f86b5609843431da31c5a6170ce3c9ae6f0eeb3e070b7c38fbfe119741a7fbb792ec780fab19c3ef858d3ee31d06ead5bacdd17c67eac9311ac21cd29da557df0b264f030f2e8921c36f3b87b0edb72e77ef91b5a071e4e0e5dba1f8beda77feb5934f0c1ba8eb10fc63a3e950ca6fbb10487df917916f4c1af01854be6d1f9ebc2cf97c3e66c2a9cbf26cdfe3b73e8e07e2c2b7fffe69ac53e78810fda079b7368b17fd673e839c9dfb9d6034fc60a83b1765f5af268314c7974390efb31289cc3bf46a5f3691fdf5b86bf43a8030f21874eeac752f89bc7079b72e813430eede78373e4d1a6cf330caf0b87f767c53d236f486398fcfd37e6d0bf272395c180bf713934bb5afeaadaa57368e883e7351fbc4afa60fd791d29cf8feeae3f2b8dc3348f63b99c83bb61fcfd95c0df3c75e061e4d0599f8f55e9d8ce5fda072f0006db7368ace345b0975e34f077aeda419b7cb0ae655b1e9df39cd2bf9dc3e6f7fc7cf83b841cdab31fabe62f66f06484349b9243d33e18e6d027247fed3e38368ff63da794ab3fab2b0ed379b5ffecfffb0f98bf45eac0fde7d0defd58357f751f1cc55f730eedd78fd53258fae0c9b856f06452a9b54c1e1d5f170eeb93b6717836f2e9eef95bba0e5c3e87ceff390d4f66fe1a7cf0b151bb90bf3e3e18ee9d6bdd62edaeb5fb67c9df96c1ab80c1fefdd1e63cda5e1716c3755eb82b0e87f338cf9caeed30feda191ccadff41c3ad77339ca9f0b567cb0b297163a5eb0e4d0a7d56c6230e5835bfe9a7cf0a185c125f268dfba704a7f96b8c238dc378bed9a8ce72fa5d7aef87befcddfdc39749673c1357bad3934bf26538dc12d7f691fccae171a7f751fac32b8cda14d3ed89c61d9eac2ae734a79ebc2f11c0ed5e910f81bf2b5a5f157af037b79e0e275e06e7268473f16e0ef6fc6dfcc3e98cea117790e7d2235cc755ca956e6d090c10d87fdfba35b0e9b73adfcfd592539dc258bc3b9db197fed7d58339643279c0b76e5d00d7f510e3d3943bad57df0e948cdafcc3524cc5f533f16f4c1afb3e6d1e6baf02c7138378fcb78dffcfc2d5d07cef13985257268c207d7fce53a36e7d0ba0f5e5018acfae0f6aa75bca86459743fd69cee83998611836d79b4d84f9bf2689c6bc5d785fbe670291efbfdb936fefa5ff9f85bba0edc5f3fb4a51f8bf317f8e09abf80c1a572e893919a43cf21ed6a3974b5d27db04f1e5da22e9c725e298cc339f49983b3e9ec9d4dfece480ecd351c98436b7be905237f5dfd586a0e0d74cc7cb081c1af2d7974eebab089c3d7d9384c3d4f2b9cc7a1ba0fd76157fccddb87955607be1f53fc1d400e4df397f0c1b61cfa5463709b43b7bad5f7cf73440e3d27f9ab3078329e7c423e382e8f0ead0bb719967f7f56090e77995de5d7bcfbfc910f7ffba803c73f1fbab31c1af2b7f5c1848ecf90ffd573e853a4659dc127840f6619b42d8736fae0e83c3af4bcb02f874dfd59611c162ccec3e1bcc3f5bec22e93563df8db711f56481db8ab1cfa096a96e9d6ccdf46bb861c7a728ef88b73e853c45f573f569b43133e78f2a9fab165b03d8f0e3ba7e4ae0bdb3ecfa16b0ef7c5e278dde7e06fcbe0fef93ba81cdacedf56cbb586a58e6372e845c9df53430ebda866599cbf73721f4d3138fc9c922bd7f2ad0bf7cde1ae78ecf33ec2bc6f1ffcedaa0edc510eadf0b79a45ef86a25b92bf88c18a0fae880c75fbc2e8814f400fc789218746da853eb8d2ee12c8b0846e53eac2f473a453fba4fdeac35f9334364cee0e97bf25ce23f5944357dad57cb08dbfd8075b73687d2fbd48ead8c7071f120c7e6de1705c5d38579f745e0e0b16fbf23895cba17f4e1ef606e4cf3df1d7b70e9cebb91cd61cbad62de62f9d434bdd4e7df9ebcca11747e61cbabde6f5fc4af5c15cb725eac2e1fd5943e0702e26e7db7b535f5f76fece541d38730e4df197eda52717ee1c5ae76fb57b36efa54d39f48981bf73740e5defa3551fec754ea9445dd8f7bc9289c3712c8ee564ee399cbdc5f91bdc87d54d1d38730ecdf9ebc8a12b259f15c9a1a56e279f257f49edd23934f2c190c3741eed5b17f67d8e74371c8ecfa78733668dbf7d9f47ca9443d7ecf5c9a1b5bd34e4ef82c65f4b0e5de958f017e5d093cb56c7956ac13edacb07e7ae0b0f89c37df2388ebb7df377b875e0e01cdac05fb177d6753bb5fbe09abfb6bdf3e40bd22dd4ae398746fd586a0e8d7d30e8ab4cab0b87f76775c1e1be7b3762861f773be76fe775e0ce7268a516ec91430b0d231d0b069339f4e40ae878b15a997368ad165ca9f652f2f75a63b08bc3b6ba70371cf6c9a5e339dc058fd3b86bd3693a7fd3fba04bd78133e6d080bf4f76fefae5d042b7ad0faef9db32b8d66da35d670e5deda4c91cbad56eeb832583a176d53cdaac5b5b1e4df76785f649b3918fc35f47fd7335afefed84bf117d58b1e781cbd5819d39b4ca5f2a8736d7819996818e491f2c75bc48f017e7d0d8078fe97e2cc9e09bc944e5b0f39c925a170eefcfda1c99faa47370389dc590c929dccd770d8dbffdd781fdce232939b4c2df27a8598ac190bf2cbfc27be746afc766feea3934d62ecfa1175506c3fc0ae996ef9fab710d18fc5ac9a373d68543387c15c5615aaf268e0d91c7bf3dde6f0c7b53f81bda075da20e5c3c8726f22c9e4343fe021d97cda11735fe5eb60c463934f2c1d5ff6eb00f26ce2985d78563fbb362389ca75f6b98974d9f01cfdfe899bf25ebc0decf879edc5af97ba13258e5ef640af91b9343d7fc6d195ceb16d490bc7268a6dda61e7c4df8e0d8ba705c7f962f877d7269bb5e6d7c1b62de6cf7bd2e5d97e46f993eacdce791bc726883962f38838dfcf5cba1f5bdb42987063a5e54b3ac96c17a0e2d19fccf84ff2f4b5d98eecfc29fabe4c3e1ab6c1c9e5516bbf4d9157f43fba0075a0726f8fb64e7afa25d8dbf5a7ee599432b199621876e7d3095439b7db0575d38ac3fcbbf4f3a0787c3f3e9aeebc63eef235ed743e26f5a1f56d11cdac65f98436b3a86fc5d20752cf87b67cfa1351d73fe4eeef51cbad1f0a5f0c180c15f65164de4d10975611f0e3f4573f83a92c3b3c2627feee6e26fcc39a4f43eac0eebc00d7f490fdc6a163298e916fae06a75969fbf6d0edd6897c8a19976e91cbabe4492a56997aa0b9bcf0bcf0e8743782ce62e789bcbf7b6eced8ebfe97d58f17560fd3c92ed5c03cd5f4dcb98bf2a839dfcbd6bf9cbb4ece22fcea1751d1b7cf057c960e183ed7561f379e1b4feac1c1cf6ef9b1e328fc37cef57933e6798bff175608b6e0dfc7d52f82b7db089bfaa0f86fc057b674db77e39b4a2db4bd48fd5eaf65af2d7c4e0b0bab0de9ff5a0f197eecf8ae3f0552087fd741acac95273bcb6217fa1ae87cbdfdeeac08d962f8cfc953974ad613d87e67be90552c7640e2d757c0574ec91430b1d93fc057b69c960c961b2b614df9f958fc3741eede2f0d079ecabcdc0beab5ef81bd287d5511db8d1eb378ac1936f76fe0aed368ad5726855b79373c8df6a75a56857f2976957af03d3dad53cf035cca1abebbbece8d06a49091c0ee9934ee1706e160f83b771ec2dcbdfd03ee8903ab02f7ff53a70700e4df0f749e56fa3e8332a8756f8bb50eb9862b07f0eadf397e5d052c397388756f88b7d30e430a5e5d0feacbe381c934f77c9e390f711993b77c2df943ee8dc756003833df88b72689dbf740eadeb16f357cfa169fe26e6d004830d3d1db9fab386c0e1307dce0277bfcabbd03d7fbbebc3ca50076eb4fccd43cb67540edd5e0efe1a7368c66052c78b8cbdcd5074dcb0f752f860c0e0af7cb024eb81f337ac2eacf767d9386cd673290ea7f9e21c6c8ef9334cefd73377f6d06a6cff55287fef35ad86f237a10e2cf5aae5d08d66bfd9f96bae0333dd42ed36d79dcae0368716b995298716fc65da6d7368a95b55bb2087060cfe81183c8b1c0e6771e9fd72177a7f7efc8da9033b7368c4df0b237f510e4df1d79e437bf297cca109feda73e8af5cc73f11832d75e1680edbce2ba570986231cd61b32f4ee171ce617f7fdebed7a255bfe75fd9f51a7a0e29ae0f2bbd0efc53e3efad95bf1793471383711d98e0ef5d4a0e3df94cf317e65748b7d772efcc3db0c2600387893c5aefcfa29f9fe5e2f066108729cd420e8b7d73577be47e988bd93b1bfc4debc38aac03d71ad6f6d317462d43fe5e002d9f99ebc0aa96257fef741d73f666cea1910f8ee3f00ab9a7f6e993ee92c33ebeb86b1ebbde4700777be56f777d585e7560a4d76f247fbf69fcd5188cf9db5ce77e39b43f7f9b1af0bd6030d2ed25cea1d51e8e667c57182ceb4846ddbaebc2aee7589a39fc34cacbe134169762721eed9bb9abf0d7c1defcfc4def838eefc35272e84abb7a9ee5e0afc8a14dfc35e7d0f1fc55736895bf725cd33974ad61cee01f88c17efd59a17dd2e6f34a760eb7cfd33271d8944f9b872f07bbe26dcbdd40dfeb57f79d31fe46f661d5bad5f87b4bf2f7c2cc5fa1dd96bfbe3974a555ac5d258786ba4dc8a1bfb61e58f1c13a87d3fab3581da91b0ec37cbae5701e160f6378fbde81f237ae0f3aa20f4be32faa031bb43c6ad87b3131eda585075e5075ccf80b7368ac6376c11c1aeb18d6812183511df892ccb2be4f7e02064f342f7c93d09f5596c3bb0a87ed7562f708e564ee398abb1e3a1d167fd3fab08c7560aed796bf5a1d1869f69bc25f2a87c697398726f84b6857f257d3ae218736f097cca1abf1c419fca072d85a170ee5b07e5ec9ce61f7b9255b8e4571aa7f86a6b1d7c3f77ab2b76ffefaf74147f461711dffd4f8dbf8600b7f1f55feea5ab6f15768b952e99db697063e18eb18f1f7dea46390437f053afe2a348c7c30e4b0a53fcbbb4f1ad7861f3c39ac3e472b8cc3aaae43d93670ee7aea14f43d77cadff43ee8803e2c85bf441d3898bf8f76fe6ada4de12fbd77be94fcc57be76bc95f9043571764f03ff6bab0777f962f87f5fd73590ecf0e8f83b81bee7d3be16fe77d5801fcfd26b92be6472a8756ae5abf7752cb776a0e1dca5fc0e0981c5ae8f83b60f08f84ba7008871f1239fce4c561a8ed48d6012ec7fa65a7ee0af95efbb9a321f0d7ff7958641f16d0abc2df4a9fdf48fe7ed3f8fb68e7afd4ad81bfcd7ca532985fc61c5a6a97f3173358e4d09542d5fcea1aee9d1bfed6d7af46c158bb2e0e631fdc0587379d1c36d5896d1c1b1e8fed79737cee3c7bfcf5efc37a2cc0df47077fb3e7d0b89f03f1d79a43130c9e050e3f05715868fb7a9487c73d0c7fdfeb913bdbf4faad07fe46f46125f0f7c2c2df473b7fc5de19f317eb165fba0fb6f157c9afae891cfabbea81a50f6eb5fbdbd89f657b8ee570386ccab186c9637ce5f7bd80bf90bb03e56f641f16a9e56f5ccbdf082d63feaa39b4cedfe510feea5a76e5d0955aefd52c4bf2f72b91437fc77b69cee0df9e1c5ed532e9b473c3760e3f3839bc0938acf2581bf5dfe759e2b0a73ec3f86bf6bdf9f99bb10f6bb2c2f9bb6260f02d536d33530cc6fc8539f423a9db55237f237368c65f9843ab1e383c87aec61bc4e01f7a5dd8bb3f4b3fe3a0ee9fc338fc94c46135c70ae7716e2efbf3368fef35d47dbd9f3fd91f7f3dfab02a1dfbf3f7c2c9df47a39635feea5ad67368377f0583197f858e017f710eadf2f71a66598d82d72ae5b61cd6fbb32c7dd286f34a83e530e2f100389b81bb7e75dff2fc2dd607ede4efb764fe3e6afcc50c5eb6f397cea1996e6d39b4ce5f25bffa6acfa1abb1aef86031e2394ce758eb5939bce9cd61578e15cac3902bf6f74ff7bdc3e26f481fb4471f56c35f639e05ae5b8dbfdf107bd978e43934cddf65aa0eac8c2b5453ba5219dc68f85edb4b1339b4c2605dc73087fe2ef6d19cc1bf3987752da3fe2c9ac3c4556b79238ac31bd11c56f3e95d1f0e8b3170e6a6e5ce6efe9a9f7fd50f7f1f207fe5d035fb13e9f51b60f0a3a6db91d4eca383bfcb1a7f2183bdeac06efe2a7be74b836ef51c5a6a17f8e0dfa476739d578ae5f08391c34f9cc3148bcd3525c8636aa472b37fee5aeabecf82bfb59e1f9d7be978fe3e3af8abeea533f0372a876eaf75e083d71a1dd35a56396cef937673d85c1f7eb07058d5b4ca6171a9beb8d6eeb5d50f3fe95a181073e37daf4bab03e52fdf2763fe22dd4e5602f97b61e1efa3c6dfd510feeada6df94be7d08cbfcda0f84be557d77c7c470c7e8318ac6bd7a33f2b98c3a1b974090e3f7968ad07de266adccd5d377b87c6df07c15d85bf8fc6bd34bc307f552dbf75f277d9c1df0da9e57aded0747c2ff8db8c7b95c1c61cfa2b1f8e3a30c1609147d35a9e3d0e435f7c15ea8b0730ae8939ddf70e89bf048315fe3e06f1f716e955d56d7b41dd2e2bbad5f9bbace836137f95bdf3b5d4ad9e43b7da6daf374cbf92c16b969e0efff34a7d72382c9f56f6cf517be208be66e6aebfef7d2efc5d81fc55b41cc25fc6607d2f4df1f78ed4b19dbf9b88bf9b5efcbd34f0f71ad581510e2d19fc8e3318d7851d1c769e1b8ee3b0fa794b260e3f3839acf21872f85a999dbeb87fee66e5af99bbf9f9eb3c075ce952ce48ab247fe508e5ef5b82bf8f89fcc5dadd42bad5f6cec0ffa6e5d0eb82bfd58f90c1360ea3ff59cf2bf93dcf92e6f08395c3ba66218785564dbe7810395606e612ec4dca9d317bcbf237e81c12d7701c7f2fbcf8fbd6c8df65077f37640ebda1eda5217f891cbae56f33630d8b7df4574dc3640e4d30f8b717872703e230c5e2272f1eab1cbe76e9ba03dec673d72f7776f3d7acd77ef8bb22b58af9abf661e5e0efb2c6df65c4df0d9443ebfcdd44fc457be7c97b2ffe5e1af87bad69f70d6230ac25e9dad5eac28d76f5deca100e9bfd702e0eab2cb66658a17aed80b1e9be7706f90bf4ece02fa1e5fafaa0f1f79bc6df478dbf8f0efe2e1bf8ab67599b80c1540efddec05f9c436f133ac6fcddd118bc66e1f06442f54ab71cd6b49c99c30f92c33fb270585c530f1e5f731e5f27eacec6db34eee6ca9d3be4afc2dd78fe7ee0fcfd606470cbdf4785bfcb40b771fcddd0746be72f5d07be34f0f7dac05f9443231f6cefe9f0e8cfea94c3744d6993ebd6c463679db8a3fd7366ee46e5ce83e42fd0b2c25f879673f277d9c15f530eedc75f31de6b3a76e7d01fb52c6b9d9f6cc00c7e08eb931e1087fdf3697e557ffb258f9b9f4f3d389c69f6d803a7b277a0fc258681bfe468f52a669abf6fbdf8db72d8c45f31ecfcdd42fc55190cf9fb5ee32fd3ed36c1df7adea5f22bc6df6aecf18e8e359447cf0e87295fac7318f27856383cd54716df6baefbf6c05f623fadf3d7b597163ade776a59af03bbf9bbecc55f3a87a6747c4feab8e52fcea1bf4f6c39f44ead61c460bd2e9cc461e5dc700e0e3f7871d8e48bad57cd6038682e47f0d84f7bf9b9eb57f7f5e7afeff33734fe4e0e7cf95b5f9efcdd27f9bbcf67ccdf478dbf8f0efeaaba55f9bb21f58aebc03a7f3f5bf8bb8dfab05a06efa2bdb39e5fbd61da050c16da1d22871f22388c79fc64e5b1fb3900ddf1d893bbd1bed7cd5fb396d3f9cbaf46cf8f462d2bc3a1e56f5ccb3a7ff78dfc5d467a5619ccf47b67e02fae036f78f3d75607de060c86fcdd75f0970dc8e0440e7b3dbf83e6f0bda2e77b038737080effb07058e5b1339f16be58e5311eb586d4390b5f53d91be27bdd7aa57daf277f1b9df2b919347f1f307ff94569769fe0ef074db3fb0a7fdf7af177d9c1df0da459ccdf3687de347860a1d9f788c198bf3887de257268c8df758dc16a2dc9dd271dcee195280e6f38396caf29d9392c6a4a9b7cee83c39ebc4df2bdf6dc7970fc9d1c02fe1e92fcdd27f8fbd68bbf6f09fe2e1bf8bb1cc4df36873665597a0e8df94beda37196b58318bcaef8e0352293161cfe67801c36e5d34f461e67e470cbe376ee99bbbdf3177277bce4c3dfc6f762fe520ccecfdf650b7f971dfcddc8c2dfedc01c1a6a57f2b71a7f4b06d7e3f7c039ccf6cf765f6ccbb16c1c566b4a62e4e231e17123b99bc25e93be4bf27709eca70fad7916e76f33ecfcddb7f2775fe3ef23e7af49cbcb9cbd36feb65a3eb2d481c3f8bb4df01733f858d68177681d130c3671d8e3bc12cde1d14d210eff30fa623387551e3bf3e98e79ecafcddcb9731c7f97007f9708feea0c5e6af9cbb56ae7ef8ae42ee6efbe95bf27fc67cbdaa0f9bb61d4ad9dbf5b8d5ef51cfabdd4ee7b238329feee127b672a87de23198c396cea9386e795f079ff3c1c566b4ab11cb6e758161e0b0e9b6636588e65626b2867b3723747dd57656f187f97007fa1aee9bdf4a1c6df154ffe7e48e66f7ba5f07713f0f79ed4b1d0f2a981bfdb440e7dcc07cddf75a6e146c12f2ae576c0614b9fd63dd7f106a9e77b2f0e3f68f9f40f0787eb71cee74c1ca678ece4723c77fd7d6f4adf95d0eb12312f61fe6a43e7ef9293bffbc1fcddd7f87b62e46f7bad6afc55b5abf27743e12f5d076e75ebaa036f1beac0bba407d6f83b9923184c7158cfb0d239ac3f5bda97c342af211c56bd317d597c313d337de2392b7753d9db257f97007f9742f88b86cedf7d2b7f4d7be938fede913abee3ec3d9aa8f5a418fe62066fcb417be0ef0a83651d58e8b851f05f956a5f28fc556bc33ee7957cfcf04d010e431eff30fa623787cf955182c7e7519a54b9ebef7bdd5ab5f3f796e66e007f9714fe62ad52fcdd07fcdd57f8fb017157d76d0c7f3748ddd6d751007f37916edd39b4cedf5d037f77943ab09dc1b03fcbfd0cda3e390c7db1ad5f2b3ac7f2f5c5313ccebcaff6f5bd7e59963f7fb1ae7df9bb14c45f55cb66feee031db7b34bcbb00e8c757c24671b7f37397bef491ddf73f69e7ad781f15efa23d8476bfcad34dcfa6013875bfe8acbbca74ee3f0bd1787ef1bfdda7df10fd2173f81d9ce63af51f354cce1a3d69c69cec25d3fad32fede728dde02ee8a79c93c8cfcd5b8ebe0efbe93bffb72f6e1afcee0138dbfcbc1fcdd50749bc6dfaf80c1ad6eaff9de7997dc3bc33a30d3ef1e67b09a63a572983e6bf83a92c3544d89f2c5a11cf6cab1e2f6ce68dfec535f8a636e98ef4de5af7d3fede2af692fadf357d7b389bfb49643f9bb81f8bbece0afaae338feaa39b4ce5f2a876e753cd7eea325830587e7ad1c36f7490f91c3761e3f19796cf2c585788cb87c49cef7d57c2f671ff6de3a679dbbea30f397aafb2e01fe1243d1ea02e0af3e7cf9bb0ff4fad8fc3c8ebfcb56fe6e22dd6e12fcdd44baa5eac0db72d0fc55ebc03b7208dd121eb81a8b9cc17f111c5ed338acd7920238acf475400edf932c8ee3b0cd17bbf32c638695966565cbb3427caf7fee6ceebbbae5b321c772f0d7b597a6f96bd272ade40f7cb6f1f704f117723884bfed8075603b7f551d43fedaebc058c7e63a30f6c1731a83595d388dc337ca988c6e22390cfbb536480efbd489751e9b394c71b9248f2fad73c35b31d73af49a4ddc65e31b9f993629eefaf17749cc80bf06f61af8bb60e5ef3ee0efbe95bf27247f4f02f97ba468d7cedf2dab6e6dfc85fbe66d037f77017fbf4bfed6f31ed66ee3832183ff32f6740c87c326cd420e8b7d732c87bdf54af038678e95ca5d3ff6de73cede49dec2d9916591dc6df96bd372abe9054ffe8acb87bf2792bfb496eb6ba91a4741fc55b5dceaf83e80bf6a1d98e6afae6382bf2483fdfbb3dce786290edf64e530f4c5fe1c6e79ace7d3d47c0ee6cb90b9e6a9989ddc95bc8d1980b3a6f10d70d7cc5fb3566f09fe2e79f37741e1af99c139f80b07e6ef4b92bf4716fe6e04f1f7bdd42c63f0b6a2dd6ba307ded5f6ce50bb147fffae2ec1e017dd7298e8afcccb61cce3b87c3a78cf9c9e6559f8cc722c315f12b3ef7e1acf2d7f296dfbf1772998bf0b80bfaebdb4cadfb748c7fb0efe9e78f257d772cdde4d6ffe6e22feb60c3ed5746ce2ef2ee2ef472dcba274bcc819fcaa526e690edf4473f89ee0b0c917bbfbb5cce3bc199df0b8faaf8acf2dc85d95bf3edef7969897387f97bcf98bb96be3ef02e0ef3ee2ef074daf347f4f2cfc7d69e4ef92c6df8d46b7147f371bfe6e22feaa0c76f397ae1fed4eec756055bb7b5cbf7f231fecc3e18789f98c43d71cb6e955e7705b4f2ae98bf3f2f81e0d986b59f84be457d4b85346087f1f9892257797d01cc25f7a2fedcfdf9344fe1e19f8bbc1f94b67592d8343f9bb8df8bb4df0970d137fe7b007ae352c191ccf61f7f33bf270f8de9bc3365fece670cb633c62797cde5c9770d47a73cd49ec0dc99d6fb95e29eede56ba0ce3ef02e0ef4266fe62cd0afe9e58f9bbc4472a7f3783f9fbde8bbf70ef6caa03eb1e98f35732f82fd05749e9760de8b60b0eab671dec1c769d79c01c56fdb19bc3ddf258e3ad718ed3b589bbadc6e90c4b66599cbf4ba4ae4dfc5d00fc5d30f2176bb9147f9782f9ab6bd9c6dff788bfef49fed63a3e061ac60c6e352c743cd70c4ac7af118387c0619dc52a87ef090e6f689a36b1d8954fdb396c1e97604e1a662e8f6f2bf5de5ae74b30df49bedae625f3f0e6ef029817bcf8bb00e605237f4f262a7ff73be4ef8683bfd4de99e62feec3a2f6ce6a1d78c75a075eacebc00d83170183ff023ed8d427dd1787571c1c76fb62dc5fa9cee77ccecc612f2efbf1d6927779b2d797bfd45e5a665946fe923916e0ef42027f3f70fe623dabfc3de17d58ba9697acfc55b50cf97be4e4efa9d431c5df53a461c8e0afa48e611d78077960037fa5823183550efb9c1b7e307298ead3cac961da17630edb781cef8b3be071cd56dbd0b82be67f3867ed979dbf3477c5d0b84bf2170e95bb6efeea43e5afaa57ac5bc1df258dbf4bc1fcdd9ac07d731efeee1af86baf1f01fe4e16a763cee05703e0f08da6d9380efbf67798797c0ee61ce71fce519e85e69aafa6390b77217b056f6fc93db6926129c38fbf48d74efed27b69137ff52c8b8fe9a819361d63fe2e99f83b9d38f8bb5980bf741d187b60a1615007161aae153c9d0206bf527c701c87fff1e330d7b4e0f08da2675dd3fab86f6ac52e5fac0f7f5f9c8fc71e5cb633571b9778f6bc2ceca5f83b5ec4b3cedd3cfc9d9e39f97b82f8ab3278c9c8df25037f856ed3f82b72e86d22bbda96e71760fd08f2b7ae1dd17be73d4dbb7b50bb1a83618e15c7e189c6e11b82c3373a87d13e5abf2087ef2587edf974585d89f6c52a8fcdf339988dbcf598d3b32c38dff1fdb4caddbb103d3bf94beea7bdf8ab6b195c8d9e75feee77c85f5dcb98bf9b88bf82c1db52cbad86b749fe620fbc63ad03abfcadf6d1d34f90c1560ecf3bce2bf5cde196c71487378c1ce6637c5398c3161e577f76246f1177fd7caf45af3c77bead39db5c80bb7004f07701f0971a1a7f1bcd5af95bebd5c2df25237f9754fe367a25f95bfd173b7fd5bd731c7f77a56e690facf317d681397fab716e60b0ad3fcbcd615db7fab9ff9b400edf2b1c76f9623dcb0aaf2b95e571962ccb9871fda3689bd6b8277fd5beab46cb648e65e5af7d2fadf0b752ab41cb8d8e15fe2a1c56f9bb24f9ab69d99bbf9b9cbd69fca5ebc02a7f711d784eea78518ed78a0f7ed53b876f30872df9f4fdc8ee8bef2d1c16f30f2b8fc55c80c70d73e1b8b5ce06ee06e4cd9456af9579916bb5e6ecb5cedd00fe2e00fe2eb8f8db30d78bbf5caba1fc7da9697649e8950f3b7fc5e5cf5f5abbbb7250fcd53df09eccafe694fc0ae7d0e70483d3384cd79262396cae29d1bed8954fa7e558719a0dccb13270570c3b7f43bcefa23e5bb4acf27701f0d7bc97ae757ce1cb5f38007f97e2f9cb191ccfdff788bfef9186b7bdf8abebb8edc3523df06bb88f060c7e81744cf567b9388c2fc15f0f0ea33af12ae58b1516fb7058b0d8c4e31f230f1e7b8e7330a78e4b39dfaa73a5c51bae41df59e5edb532169bd9c85dbb5e1bcd2e00ad2eb8f88b747ad1f2576770f52a9b69fe2e21fe9ec4f017ec9d397f5b064f3f93fcd5b5ebcf5fec81317f5bedce85f0b71a978cc1cafe79581cb667592d8fe9b30ef69a1264b2af2f4ec9b24c7956147335f6a6fbde6bcedf6bc0dd6b5f3d0bee4ebfb49a6e7eeec55fa9678dbf8d96ddfc55f7d216fe821c0bf0b7d12fbd9746fcadd46de6ef29c9df633eccfcfd48f0176759ad075e843a060c9e2d0edf1835dd72d8ce63ca176b33f4c5113c3671f9326ce64c0d192a6b75eedeba7c2fa1d76b3c038dfaf177c19fbfcd30f37789e4efd20cf157df3bb7bac50c5ec475e0e995e0eff48a31787a4de458dd7398a813477058f862f3b3f15c7525a0d74eb22c779e159a3763fedaf6d3785e422388bf82bbf52c346de56fbb9f86fcbdc8c6df2539d7fa051c063a56f83bbda1f8dbe859f0f734137f77257f8f117f7714feea75e045510766fbe8e9156670a3651f0eaf0570f82192c3376a3edde8f8cee88b6d7562f5da508695c30a8f7f707d87cce7c46ce3ee6514775dec0de3ef35c1dd7a2cb2d98fbf9cbbcd0c75aaf357fa5e82bf80c376fe2e19f8bba4f317ee99317f9b712b74db6856e3eff41fc45f3dbbda95ba55b54bf37707f1d7b977aeb55b8d73ee838576737238a23e4cf76b59f6ce348fefc1ecf32c004f1e67d83bc70d8dc78d56ff31cc7a9e45e557fad0b97bed64ef75cb5f85bb06fe023defa361e42fd432d0f492c6df1385bf4b3efc6db58cf92bf6d12efe563a160cae46b552757c8c744cf1f798e42f59079ede49fe5e491d9f3306d7ff4be0f07c30876f849e475f3ae430cd63c1e41f60ee92c7976c8e646e98ef35e5ced77006bc55c7a2ae559dbf0a772dfcd5b84bf2777a1fc0df9748af247fa713c15d384cfc1543e3afb97664e62fccae769176893eace957a9ddaf24832f05831bcdfa71f89dd62b1dc761f2fc7f00877d6a4a2d874d3c76fae2e1f09873969ee3f6d390bd6efe1af6d46efe127ab6f0d7b4976e353dbd2fc5df56c7347f351dfbf3f7b8d5f0f41bcddfe9771b7f1b1dabfcbd920c7e984e3be2f03f460e9b9fe78159ac7218f3f8deca633b87c155a9a61992c7d6513354ccee61bd6e0366bb4e17ab57f559e32d9fe5f0e3af7e8dbf90dc5da8f499ccdf86c13a7f4f5cfce52398bf8d76bdf98bb53bfd81f86bebc3d2f90beac07efcadc64fb98bbe86bd9588c3ea99ff700eeb1996f5f9f0743e4d72d855536af50a791c7cf62182c3295c8635a430eefab3f7d6c25da96d25c35206c55f9c65f9f1d7a56585bfa6bd34e4efcb78fec2e1cf5f45c78f3efcad560efe021ddf69b5a473a661c9e02170d8fc3c0f8dc5231f1e87e5d30487218ffd467d89b9d0556bef866b10cf34776f54ce9a06cd5d9dbfe32f78d6b86be46fa556c95f728c5adf6be36ff55f7be22fd72ecddf470b7f770dfc35f46171edee91da95fcadc6539b64410e13bad5393cefe4b0d06c3887a52f06fd1deaf33c42b22cbc7f36f963afb30f19780cb90c32ad86af3751dc0d656fcbdd6b3463fe3ad88bf90bf54ceea723f9db70d7c85fae6582bf20c72218ecc1df53c8df56cbb5865b0637fcfd45eab819d50af0b76570cddfe96f9dc1d5cff61a0a03feb67560d5034f972906430e37fbe9780ebf9b047118d59bec1c76fbe23be98bef8d3c0ef2c5693c4ee6f2b5632c12733c7b35fe42eec261e1afc65d3168fe62ee3af8bba4f1f7a5c6df2595bf1483edfc25759bc25fb477c6fce5da35d48135edfe2419dc1587cd75621787ddbed8954fabea54792c66af1e0fce616d06b523626e147d4bcf92c3fe9996694f4dcd3a777df54cf277fc45e7af6100fe724d5fd8f7d282bf4ccb46fe2e99f8abefa5a737347f818e0bf1177be0e90a1b76fe620f8cfbb01a0d731d370a5ee50c2ecd6173dff4cd84f2c5f43962da17df5938eccb63af2b8ec7515c0ee12d9e53d87b3dfec2f86be2ae9bbf8d3a11776dfc557dafcee046abba66397ba76f4cfc6d356be5afe4b09dbf6d1f16ceae6add36da95fcd5b44bf2576ad7c85f964337fcbda2f85beda205831fbc38ac3f032f9cc3a2b72386c3fef9b42bcbf2db3fdfb673a35be7cc748967336f2577f3efa9f5c174abcec1fc85dc6df96bd1b3c65da66f337f99efcdc65f55cb37f5b0eaf8b39dbf8cc182bf848e257fb107a6f8dbeea32b0d37c3c2df56c3ad8e2b0d370a5eab546be7f00b85c3ef483dc3734b611cbe317198eed9a27d71cd5a0f1edf231e439d7bfbe23c3cd6b85c6bed52993373777cc5e72f92b70a77ab57bf30feda86aed54ad10d7feb5967afcadf4a9792bfad564dfc1583e6af59b3cd40fc9d7ef6e52fd36e107f8f49fec2ec4aaf1fed71ed1aeac00a7faf6406fdb3e66f35d63983d73ae730fd0c1e639f25d0aae28b9d1cb6ed9dbdf5ead2aacae302f5a570eedef870d7b19fe673cb5da66131dbf8db681a71d7b497e67ae6dc35f1d7b09706b99643cb047f290fccf57b4aead89fbf5a1d58e72fd371cb5fbd066ce12fd7b0f4c124872583f371d85c27a6387c13c8e11b8dc33a8fef351e535cee80c70d67a97105e66bc70cb9ea310b5d2a63b19db136edfce5dc6de66a283ab5f1970d137fa156c178e9c5df2595bf82c14caf846e15fe4eff21f90b7a379876856edb3e2ce3de59e36fa3dd54fe3e553f5319dc0d87c515c1618dc77a7f07cd613b8f83f41abf77863c76f23986b926ee7af85e625f7dcdf44c73d7ba972ec25f622fbdc473ac64fed6179b1dfcfdd5f257d1f1a38dbf92c1441f56abe3d60337fcbd6b752cf97b55d7809bf18418fc40731831389cc3f380c3f3048bcd1c463c161ca6f369f3d0384cf3f8de3ad70abb6c67bf513354cc8e711530b7e33a7858b92b661b7b91360177fdf8dbfa5e39ceccfc25c64ba0d7ccfc850cd6f95b5f71fce57be76f90c192bf733a7fb976bf92dabdc4f9151f6f490623ed16e7b0b15fcbac590f5f4c9d3f54396c6272473ca6f8ace558a699ae2fe9dc35eda749deaac3ec7bcd7be97a069781bf849e09fe527b699dbf53bd8e64e46f9b63a9fce514b6f0b752b2277f491dafc03e2c52c773147f451f96c25f99634ddf7206af4572f8457e0e57aa357098f6c5c63ab1e0b09dc777165f0ce686c37c1e5f85cc3533d5398abbb9d84bf057e7ad3a4be6c2e1e2efa6a653037f1bf27af1570eccdd8d30fef23df32dd02de72f1b90bf50b3946ec3f93bfd2e74ebda3b9bf32bc6dfeac775de55b9d60187cdba851c463d96e2bc837796c5796c39ef40fb62139783ae301e7bedb1c5a038dce6592d6f55eefa6b1a0c95bb147f95bdb41c66fe12dc35f297d632d7f1868dbfd30d8abf8d9ac97db4ce5fb68f863af6e4efb189bf52cb2b98bfa20f0bd6818586a77792bf5740c3cb601fbdde8c27c0e099e370842f16c3c6e37664e7b181cb57704e64aebfefbd32f156bd9cfc55b82b675dab06fe720a13fc9539d51b13836bcd3603f3f79d8dbfccfb86f3b7fa2f8f8a76257f9976856ea7df8466fdf80bb4fb95ccaf7e2a1eb8e16f756df18e8e5582c3d30c1c9ef7e6b0b8e8b30e565f6cd0abfbfca19bc35139969a6579665a61b9d775355fa3396e3fad689ce22edc4b53dccdc5dfe632f09731b861ee868dbf48cb90bf37462d733d0bfe621d33feaa5ac63a86fc55758cebc0ad8ea93e2c8abf8a07fe893d7035de2b0cee96c3f313cbf9a586c3ae7c9ae0b19bc30a8f5526df933c368c9a9dea1c3f2a3532bdc5cf4c8b972d678db3f3327357e9bb82dcddf4e16feb7b5dfc957af5e7ef4dcddf667cd606e2afc8a04dfc6d52e864fe562b55b77b6cd8f90bb4fb53d3ee93c6e0b546bbd36c1c9ee7239dc39a2f0ecdb2048f0d7d96ab7c7f5c90c7915cd673ad70eefab117e4cee32fed8cf7d466f6023dc379b3e5af6120ee56d78720fedab55c82bfbfe2f94be858e983c60cd6f6d1aa8605835992b5ad31b80487218b3d396cf4c5370487414eed9d4fbb46108f292e3b789b677c41e3ca32c7b117f27793eb95e2ae9dbf9b40abf726fe562a74f057e6ce1b8a6e13f92bb4ebc7dfe90fc8df4ac92d7f57ea41f1b7f1c0bc0f0bea966bb7ae037fd5b4abf3f767cbdf6aec481fdc3d87adba1d7df3e170902fc6bab5f3d8d66f9985c722d7e23c36cf71dcb5b357dd6303ee7aea59f5be9b0a77ed5abe50b96bda4b333d9bf8ab69b965efbb58fea2bdb493bf92c19a8ecdfc9559d61cb98fa6f82beac0cb20c77a2b34dc28f863a5d86d82c1f11cfe2b8ac3ef5c1cd659ace4d3061e07fb6262548a92b3ffa819a9ce3d70d78bbdaa5ec79f2077f94c31d7acd74d3e6b5a35f1b71956fe6a23277f7fd1fc15dae5d70f936e55fe42ed42fe6adafd4a6af7a7ccaf969b01f6cecdb5a3309871f8c1cde1f6ecbfc661fa73c3fd38acf15866599a2f867562da177bd795d8f0e1b0677d29b1cec4f479199965b57cb5cd42db9fb96e3ffbe8591de34f2d779b9f7beda5ab5f19c05fc95e92bf9a8e5bfe322d43febe43ec1535e020fe42062bfc3dc6fce53af6e42fceb2580ecd2fc8df9f0a7fb98625835d1cde8de0b049cf2d8b1fc87c9ad433e470902faee6d18d2f8ffd461c8f6d5cf6e2733877bdd93b3ed7b9dbfc5cce16f66e6a1ae5fc6d7e6ebc90ef35f2b7faaf36febe6bebbf0a7fdf21ed0afeeea99ad5f9db5c8f70a4f2b7d5ae99bfc2032bdafd89b4bb8cf95beda2f71506ab39961f87ed671de6659d183e87e7816471065fec936505ec9f8379ecd7f721395b624f6d1a42e356eedaf6d3adbe5bee6afca5b97bc1992bb84bf217eb59e5af43cb76fe920c56b4fc4b19b57e13f95be99ae46f35eebcf87ba5f0b7d5f01662f0aae430a565e183ed1c169f3ffc0268fa853787bdf369b1b736fae21b0b87f93cbacb905367e1b193cbb5e6cee57c45ce82b7e7686eb8ea357fc2239cbf42a3f5dcfcdccedf0385bb56fe927a6df9ab0eac599dbf1a83c3f8db6857f2576897f197d781bdf92bb46be0ef95e4ef4f45bb82c1fbd58f82c1b67a524e0ee3f3ff3a87edf9b4d02ce98b4d23ca1767d66a913c2b8cbb5ebe57e899e26eab6f1ffe6a9a36f257db471bf96bd0f2bb40fe1e92fc3da4f88b750cb4fc08f94befa555fe221debfcbd33f057cdb1def321f6d13b80c16e0eef16e1b03d9f9e37e959f5c52d8f6bd62a3cbeb1f1d8c4e5341e47e4d6e7685c396713777d8795bb26f6567a84b3d4a883bf076056d98bf8cbf7ca26febecbc6df4365ef4cf0b71988bfb55eddfc553268c95fbd7e64e1afea817f2a1e985d7f73067f2cc261bda6447338a44eacea1572d8c263779615a6d7f4bdb32dcf32723a9cbbb4ef25f6d390b3f4b0e4cee45eda8fbffa10fce55a76f1f75d207f0f3df87b04f9abeca5b98e2bd53af82b740cf87b87f90b747c27357c25f97ba5f07759e52f60f0c74e38fc6a62da57eb1c56783c9efa72187b6382c3048f5b0e53f3a4566d461e7bf1d53c53239abd76fe2abc6d663e68ee62fe42ee8a41f2b77a650370d7ccdf3740ab70bc8be0efa1c6df23377fdba1f17785e26f7311fc6d46c3df665c2106ff04da55f97bdc68f798f1b71a2780c1f9391cd6af45f962738f259565211e9bbdf148e8b6008fd3332da4759c63d9e62b65aeb5fad9c45b9b9e697d9bf86bda4b4b6d43ee7e40ba76f2b7f93194bfef8881f9ab6b1967d069fc5da1f8db5c777c84f0b7be4e15fe420dbf400c9e8be2f06e3087e72dfd5aef5c1c1e7df6d134e6b1c5170b3f7ce7cbe37a1e9fb7733502e65a6fa6d99bb771dc75fbde73c65e82b7ea30f2b71a147729febe9173ab538ac1efbcf8ab6b762f99bf4788bf7fa90c6ef9dbccdf550fccf7ce7b2a8303f8fb53f2f73df0c04cbb750e7d22193c2735ebe2b0fd79b4711c9eb773b8d93f7bf962cc63baa6847d31e4b189c9e1fbe7381e2b3996cfa034ff39653fadf3177297d8531bd9abf057d535c9dffa72f0f79d1cb9f87b68e72fd84bd7d73ce46fb56a75bcc275eccd5faee33ba4e30590412f230fbca8f17787691830b834875f2471781ef8613e4f977c7d31e6b17d481edf2923338fe5cc47ad3fd7dc5c3eda3c47f3a7ea47ce5975e6dc3db73297642fe0ef41c35f9abb347f0f247f4d03ebf50d9f5beebaf87b08f8bba769f6d08bbf8f69fc9dbe14ba35f2f71562f04f637e0533e8e386bf8d07ae76d12752c1711c366459caded987c37a9d38c8175beb4a513ca6f89cca63a6db6cbc8de3ae83bd7c5ffd89f1d7b2a776f1f700f0d79565a9dca5b22c337f692d1f26f1f748d331e6efa399bfcd20f8db0c337fa10716fc3d5534ace558d3170a83290eaf125a7e08e0f02b2387dd75e207178f852fc63cb671b852e3173147f3981c352bd5396d182f9db3783ee7dc3de7bc256730fcf97b00b9cb673ff60aee1e343f37b1f7b5177fdf19f8fb8ee0ef21c9df23c0dfa320fece43fe9e8d69fe9e8d0cfc7dd56856d7aeca5f9376117fcf266753a4e06e38ecd7df61e4305d57b2675960ff6c3bfba06659d6c1f7cf377c3f1c38208fb5d9966de5e0eeb93a73ee9eb7fc0ddd4f4b7d7f90fc75eda585a66dfc7da7e919f2d7bc973e04ec6df97ba8e918f2f7c89bbff3aa07ae744cf2f7ecccc5dfb3b60f6bc1c8dfc526cb22f85b6bb856f0d9b942e1500ea3bee9080e435facebd9e98b6b0eeb3cb6691af3185f361e870f7f2e67bafcb9ebcfde03c0df03c9dd4d0ffe1e00ad1e78f1f7dd349cbf8711fc3df2e4ef5fbefc05da45fe1768d7c45fb57fa3d5ee29e06fdd072d18fca2d6efd9b452f054db450f97c3f398c3613d1e70ff6ceaedb0f75c1a665f1ee7a83db9f6cef4ac73170da0ef4f4efe22dec2b9d1b2e0aece5f9dbb077cd8f98b479b3bdbf6d2147ff708fe1e05f077de97bfd5cac5df5792c177047f17941c0bf29731f86fac61c1e0b30b8dc3abde1cd6f2e9c9abb3cfbaa6f905393c1fc0e177260e37ec75f2d8c717bbae4a4911fe988dfaffcb467da97387dc25d93b5e20e60395bb88bf26f61e00feb6c3c4dfd74efeb67b654ab7877cd0fca574abf2f748192efeaeb8f8db6857e7afd02ecea017247f17247f4f15fe12fb67c6df6a5c32062bfacdcde1570a87db1e4b7b9f25eeb55478dc3038ca177be559313cbee31cd6e6b81a53baae4d43d1b97b2f7d4070f7006adce07ba9bdb48dbfba8e217fdf19f97b88f4ece2ef21e7ae89bf4739f82b757c57fdccc6df2b82bfa780bf30c77ad1f461bd68732cb68b3efb5269b8e6f0554e0e4fa7011c56f3e979839eab5129d6c062c163c8e196c7a32f79790cb92ce6f84171d9349f5ddbb95bf193fd1ccf3467f90c07d6a6e67b29fe1e8099e22ee62fe42eadd9d780bffa15c7dfc344fece43feb60c6e752bf7ce92bf9a7643f87b4af297ed9fff660caeae9bfffefffff77ffd1f9ff650a1</data>
+ </image>
+</images>
+<connections>
+ <connection>
+ <sender>OkPushButton</sender>
+ <signal>clicked()</signal>
+ <receiver>NewPreset</receiver>
+ <slot>accept()</slot>
+ </connection>
+ <connection>
+ <sender>CancelPushButton</sender>
+ <signal>clicked()</signal>
+ <receiver>NewPreset</receiver>
+ <slot>reject()</slot>
+ </connection>
+</connections>
+<layoutdefaults spacing="6" margin="11"/>
+</UI>
diff --git a/muse2/synti/deicsonze2/.deps/deicsonze.Plo b/muse2/synti/deicsonze2/.deps/deicsonze.Plo
new file mode 100644
index 00000000..9ce06a81
--- /dev/null
+++ b/muse2/synti/deicsonze2/.deps/deicsonze.Plo
@@ -0,0 +1 @@
+# dummy
diff --git a/muse2/synti/deicsonze2/.deps/deicsonzefilter.Plo b/muse2/synti/deicsonze2/.deps/deicsonzefilter.Plo
new file mode 100644
index 00000000..9ce06a81
--- /dev/null
+++ b/muse2/synti/deicsonze2/.deps/deicsonzefilter.Plo
@@ -0,0 +1 @@
+# dummy
diff --git a/muse2/synti/deicsonze2/.deps/deicsonzegui.Plo b/muse2/synti/deicsonze2/.deps/deicsonzegui.Plo
new file mode 100644
index 00000000..9ce06a81
--- /dev/null
+++ b/muse2/synti/deicsonze2/.deps/deicsonzegui.Plo
@@ -0,0 +1 @@
+# dummy
diff --git a/muse2/synti/deicsonze2/.deps/deicsonzeplugin.Plo b/muse2/synti/deicsonze2/.deps/deicsonzeplugin.Plo
new file mode 100644
index 00000000..9ce06a81
--- /dev/null
+++ b/muse2/synti/deicsonze2/.deps/deicsonzeplugin.Plo
@@ -0,0 +1 @@
+# dummy
diff --git a/muse2/synti/deicsonze2/.deps/deicsonzepreset.Plo b/muse2/synti/deicsonze2/.deps/deicsonzepreset.Plo
new file mode 100644
index 00000000..9ce06a81
--- /dev/null
+++ b/muse2/synti/deicsonze2/.deps/deicsonzepreset.Plo
@@ -0,0 +1 @@
+# dummy
diff --git a/muse2/synti/deicsonze2/.deps/moc_deicsonzegui.Plo b/muse2/synti/deicsonze2/.deps/moc_deicsonzegui.Plo
new file mode 100644
index 00000000..9ce06a81
--- /dev/null
+++ b/muse2/synti/deicsonze2/.deps/moc_deicsonzegui.Plo
@@ -0,0 +1 @@
+# dummy
diff --git a/muse2/synti/deicsonze2/ARCH_ALIN b/muse2/synti/deicsonze2/ARCH_ALIN
new file mode 100644
index 00000000..75e89ef7
--- /dev/null
+++ b/muse2/synti/deicsonze2/ARCH_ALIN
@@ -0,0 +1,24945 @@
+* TX81Z/DX11 Voice Archive
+* $Header: /cvsroot/lmuse/muse/synti/deicsonze2/Attic/ARCH_ALIN,v 1.1.2.1 2009/12/23 16:15:42 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/muse2/synti/deicsonze2/CMakeLists.txt b/muse2/synti/deicsonze2/CMakeLists.txt
new file mode 100644
index 00000000..98457f5c
--- /dev/null
+++ b/muse2/synti/deicsonze2/CMakeLists.txt
@@ -0,0 +1,59 @@
+#=============================================================================
+# MusE
+# Linux Music Editor
+# $Id: CMakeLists.txt,v 1.1.2.1 2009/12/23 16:15:42 a-lin Exp $
+#
+# Copyright (C) 2002-2006 by Werner Schweer and others
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License version 2.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the 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/muse2/synti/deicsonze2/Makefile b/muse2/synti/deicsonze2/Makefile
new file mode 100644
index 00000000..808654fe
--- /dev/null
+++ b/muse2/synti/deicsonze2/Makefile
@@ -0,0 +1,687 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# synti/deicsonze2/Makefile. Generated from Makefile.in by configure.
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+
+
+
+
+pkgdatadir = $(datadir)/muse
+pkgincludedir = $(includedir)/muse
+pkglibdir = $(libdir)/muse
+pkglibexecdir = $(libexecdir)/muse
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = i686-pc-linux-gnu
+host_triplet = i686-pc-linux-gnu
+DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
+ $(top_srcdir)/common.am $(top_srcdir)/synti/synti-install.am \
+ TODO
+#am__append_1 = -include $(top_srcdir)/all-pic.h -DINSTPREFIX=\"$(prefix)\"
+am__append_2 = -DINSTPREFIX=\"$(prefix)\"
+subdir = synti/deicsonze2
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal-include.m4 \
+ $(top_srcdir)/m4/alsa.m4 $(top_srcdir)/m4/docbook.m4 \
+ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
+ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
+ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/qt.m4 \
+ $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__installdirs = "$(DESTDIR)$(synthidir)" \
+ "$(DESTDIR)$(deicsonzepkgdatadir)"
+LTLIBRARIES = $(synthi_LTLIBRARIES)
+deicsonze2_la_DEPENDENCIES = ../libsynti/libsynti.la
+am_deicsonze2_la_OBJECTS = deicsonze.lo deicsonzegui.lo \
+ deicsonzefilter.lo deicsonzeplugin.lo deicsonzepreset.lo
+nodist_deicsonze2_la_OBJECTS = moc_deicsonzegui.lo
+deicsonze2_la_OBJECTS = $(am_deicsonze2_la_OBJECTS) \
+ $(nodist_deicsonze2_la_OBJECTS)
+deicsonze2_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \
+ $(CXXFLAGS) $(deicsonze2_la_LDFLAGS) $(LDFLAGS) -o $@
+DEFAULT_INCLUDES = -I. -I$(top_builddir)
+depcomp = $(SHELL) $(top_srcdir)/depcomp
+am__depfiles_maybe = depfiles
+am__mv = mv -f
+CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
+LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
+CXXLD = $(CXX)
+CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \
+ $(LDFLAGS) -o $@
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
+ $(LDFLAGS) -o $@
+SOURCES = $(deicsonze2_la_SOURCES) $(nodist_deicsonze2_la_SOURCES)
+DIST_SOURCES = $(deicsonze2_la_SOURCES)
+DATA = $(deicsonzepkgdata_DATA)
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = ${SHELL} /home/ddskrjo/dev/svn_muse/lmuse/trunk/muse/missing --run aclocal-1.11 -I m4
+ALSA_CFLAGS =
+ALSA_LIBS = -lasound -lm -ldl
+AMTAR = ${SHELL} /home/ddskrjo/dev/svn_muse/lmuse/trunk/muse/missing --run tar
+AR = ar
+AUTOCONF = ${SHELL} /home/ddskrjo/dev/svn_muse/lmuse/trunk/muse/missing --run autoconf
+AUTOHEADER = ${SHELL} /home/ddskrjo/dev/svn_muse/lmuse/trunk/muse/missing --run autoheader
+AUTOMAKE = ${SHELL} /home/ddskrjo/dev/svn_muse/lmuse/trunk/muse/missing --run automake-1.11
+AWK = gawk
+CC = gcc
+CCDEPMODE = depmode=gcc3
+CFLAGS = -g -O2
+CPP = gcc -E
+CPPFLAGS =
+CXX = g++
+CXXCPP = g++ -E
+CXXDEPMODE = depmode=gcc3
+CXXFLAGS = -g
+CYGPATH_W = echo
+DEFS = -DHAVE_CONFIG_H
+DEPDIR = .deps
+DOCBOOKSTYLE =
+DOCBOOKTARGETS =
+DOT = no
+DOTPATH =
+DOXYGEN = no
+DOXYGEN_TREEVIEW = YES
+DSYMUTIL =
+DUMPBIN =
+ECHO_C =
+ECHO_N = -n
+ECHO_T =
+EGREP = /bin/grep -E
+EXEEXT =
+FGREP = /bin/grep -F
+FLUIDSYNTHDIRS = fluid fluidsynth
+FST_CFLAGS =
+FST_LIBS =
+Fluidsynth_CFLAGS =
+Fluidsynth_LIBS = -lfluidsynth
+GIVERTCAP =
+GREP = /bin/grep
+HAVEDOT = NO
+INSTALL = /usr/bin/install -c
+INSTALL_DATA = ${INSTALL} -m 644
+INSTALL_PROGRAM = ${INSTALL}
+INSTALL_SCRIPT = ${INSTALL}
+INSTALL_STRIP_PROGRAM = $(install_sh) -c -s
+JACK_CFLAGS =
+JACK_LIBS = -ljack
+JADE =
+LASH_CFLAGS =
+LASH_LIBS =
+LD = /usr/bin/ld
+LDFLAGS =
+LIBOBJS =
+LIBS = -lasound -lm -ldl -L/usr/share/qt3/lib -lqt-mt -lqui
+LIBTOOL = $(SHELL) $(top_builddir)/libtool
+LIPO =
+LN_S = ln -s
+LO_CFLAGS = -I/usr/local/include
+LO_LIBS = -llo
+LTLIBOBJS =
+MAKEINFO = ${SHELL} /home/ddskrjo/dev/svn_muse/lmuse/trunk/muse/missing --run makeinfo
+MKDIR_P = /bin/mkdir -p
+MOC = /usr/share/qt3/bin/moc
+MUSECXXFLAGS = -g -fno-exceptions -Wall -W -D_GNU_SOURCE -D_REENTRANT -DQT_CLEAN_NAMESPACE -DQT_NO_COMPAT -I$(top_srcdir) -I$(top_srcdir)/muse/widgets $(QT_CFLAGS) -O3 -fomit-frame-pointer -ffast-math -fstrength-reduce -funroll-loops
+NM = /usr/bin/nm -B
+NMEDIT =
+NSGMLS =
+OBJDUMP = objdump
+OBJEXT = o
+OTOOL =
+OTOOL64 =
+PACKAGE = muse
+PACKAGE_BUGREPORT =
+PACKAGE_NAME = MusE
+PACKAGE_STRING = MusE 1.0.1
+PACKAGE_TARNAME = muse
+PACKAGE_URL =
+PACKAGE_VERSION = 1.0.1
+PATH_SEPARATOR = :
+PCH =
+PERL = /usr/bin/perl
+PKG_CONFIG = /usr/bin/pkg-config
+PYTHON = /usr/bin/python
+PYTHON_EXEC_PREFIX = ${exec_prefix}
+PYTHON_INCLUDES = -I/usr/include/python2.6 -I/usr/include/python2.6
+PYTHON_LIB = -lpthread -ldl -lutil -lm -lpython2.6
+PYTHON_PLATFORM = linux2
+PYTHON_PREFIX = ${prefix}
+PYTHON_VERSION = 2.6
+QT_CFLAGS = -I/usr/share/qt3/include
+QT_LIBS = -L/usr/share/qt3/lib -lqt-mt -lqui
+RANLIB = ranlib
+SAMPLERATE_CFLAGS =
+SAMPLERATE_LIBS = -lsamplerate
+SED = /bin/sed
+SET_MAKE =
+SHELL = /bin/bash
+SNDFILE_CFLAGS =
+SNDFILE_LIBS = -lsndfile
+STRIP = strip
+SUIDBUILD = no
+SUIDINSTALL = no
+UIC = /usr/share/qt3/bin/uic
+USE_SSE =
+UUID_CFLAGS =
+UUID_LIBS = -luuid
+VERSION = 1.0.1
+XMKMF =
+X_CFLAGS =
+X_EXTRA_LIBS =
+X_LIBS =
+X_PRE_LIBS = -lSM -lICE
+abs_builddir = /home/ddskrjo/dev/svn_muse/lmuse/trunk/muse/synti/deicsonze2
+abs_srcdir = /home/ddskrjo/dev/svn_muse/lmuse/trunk/muse/synti/deicsonze2
+abs_top_builddir = /home/ddskrjo/dev/svn_muse/lmuse/trunk/muse
+abs_top_srcdir = /home/ddskrjo/dev/svn_muse/lmuse/trunk/muse
+ac_ct_CC = gcc
+ac_ct_CXX = g++
+ac_ct_DUMPBIN =
+am__include = include
+am__leading_dot = .
+am__quote =
+am__tar = ${AMTAR} chof - "$$tardir"
+am__untar = ${AMTAR} xf -
+bindir = ${exec_prefix}/bin
+build = i686-pc-linux-gnu
+build_alias =
+build_cpu = i686
+build_os = linux-gnu
+build_vendor = pc
+builddir = .
+datadir = ${datarootdir}
+datarootdir = ${prefix}/share
+docdir = ${datarootdir}/doc/${PACKAGE_TARNAME}
+dvidir = ${docdir}
+exec_prefix = ${prefix}
+have_docbook =
+host = i686-pc-linux-gnu
+host_alias =
+host_cpu = i686
+host_os = linux-gnu
+host_vendor = pc
+htmldir = ${docdir}
+includedir = ${prefix}/include
+infodir = ${datarootdir}/info
+install_sh = ${SHELL} /home/ddskrjo/dev/svn_muse/lmuse/trunk/muse/install-sh
+libdir = ${exec_prefix}/lib
+libexecdir = ${exec_prefix}/libexec
+localedir = ${datarootdir}/locale
+localstatedir = ${prefix}/var
+lt_ECHO = echo
+mandir = ${datarootdir}/man
+mkdir_p = /bin/mkdir -p
+oldincludedir = /usr/include
+pdfdir = ${docdir}
+pkgpyexecdir = ${pyexecdir}/muse
+pkgpythondir = ${pythondir}/muse
+prefix = /usr/local
+program_transform_name = s,x,x,
+psdir = ${docdir}
+pyexecdir = ${exec_prefix}/lib/python2.6/dist-packages
+pythondir = ${prefix}/lib/python2.6/dist-packages
+sbindir = ${exec_prefix}/sbin
+sharedstatedir = ${prefix}/com
+srcdir = .
+synth_fluid = fluid
+synth_fluidsynth = fluidsynth
+sysconfdir = ${prefix}/etc
+target_alias =
+top_build_prefix = ../../
+top_builddir = ../..
+top_srcdir = ../..
+AM_CXXFLAGS = $(MUSECXXFLAGS) -I.. -I$(top_srcdir)/synti \
+ -I$(top_srcdir)/muse/widgets -DQT_SHARED -DQT_THREAD_SUPPORT \
+ -DQT_PLUGIN $(am__append_1) $(am__append_2)
+AM_CPPFLAGS =
+UIFILES = $(wildcard *.ui)
+MOCFILES = $(shell for h in $(filter %.h,$(SOURCES)); do \
+ if grep -q Q_OBJECT $$h; then \
+ echo $$h | sed "s/\(.*\)\.h/moc_\1.cpp/"; \
+ fi; \
+ done)
+
+BUILT_SOURCES = $(MOCFILES) $(UIFILES:%.ui=%.h)
+MOSTLYCLEANFILES = $(MOCFILES) $(UIFILES:%.ui=%.h)
+SUFFIXES = .ui .h.gch
+synthidir = $(pkglibdir)/synthi
+synthi_LTLIBRARIES = deicsonze2.la
+deicsonze2_la_SOURCES = deicsonze.cpp deicsonze.h \
+ deicsonzegui.cpp deicsonzegui.h \
+ deicsonzefilter.cpp deicsonzefilter.h \
+ deicsonzeplugin.cpp deicsonzeplugin.h \
+ deicsonzepreset.cpp deicsonzepreset.h \
+ deicsonzeguibase.h
+
+nodist_deicsonze2_la_SOURCES = moc_deicsonzegui.cpp
+deicsonze2_la_LIBADD = ../libsynti/libsynti.la
+deicsonze2_la_LDFLAGS = -module -avoid-version
+EXTRA_DIST = SutulaBank.dei README
+deicsonzepkgdata_DATA = SutulaBank.dei
+deicsonzepkgdatadir = $(pkgdatadir)/presets/deicsonze2
+all: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) all-am
+
+.SUFFIXES:
+.SUFFIXES: .ui .h.gch .cpp .lo .o .obj
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/common.am $(top_srcdir)/synti/synti-install.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu synti/deicsonze2/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu synti/deicsonze2/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+install-synthiLTLIBRARIES: $(synthi_LTLIBRARIES)
+ @$(NORMAL_INSTALL)
+ test -z "$(synthidir)" || $(MKDIR_P) "$(DESTDIR)$(synthidir)"
+ @list='$(synthi_LTLIBRARIES)'; test -n "$(synthidir)" || list=; \
+ list2=; for p in $$list; do \
+ if test -f $$p; then \
+ list2="$$list2 $$p"; \
+ else :; fi; \
+ done; \
+ test -z "$$list2" || { \
+ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(synthidir)'"; \
+ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(synthidir)"; \
+ }
+
+uninstall-synthiLTLIBRARIES:
+ @$(NORMAL_UNINSTALL)
+ @list='$(synthi_LTLIBRARIES)'; test -n "$(synthidir)" || list=; \
+ for p in $$list; do \
+ $(am__strip_dir) \
+ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(synthidir)/$$f'"; \
+ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(synthidir)/$$f"; \
+ done
+
+clean-synthiLTLIBRARIES:
+ -test -z "$(synthi_LTLIBRARIES)" || rm -f $(synthi_LTLIBRARIES)
+ @list='$(synthi_LTLIBRARIES)'; for p in $$list; do \
+ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
+ test "$$dir" != "$$p" || dir=.; \
+ echo "rm -f \"$${dir}/so_locations\""; \
+ rm -f "$${dir}/so_locations"; \
+ done
+deicsonze2.la: $(deicsonze2_la_OBJECTS) $(deicsonze2_la_DEPENDENCIES)
+ $(deicsonze2_la_LINK) -rpath $(synthidir) $(deicsonze2_la_OBJECTS) $(deicsonze2_la_LIBADD) $(LIBS)
+
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT)
+
+distclean-compile:
+ -rm -f *.tab.c
+
+include ./$(DEPDIR)/deicsonze.Plo
+include ./$(DEPDIR)/deicsonzefilter.Plo
+include ./$(DEPDIR)/deicsonzegui.Plo
+include ./$(DEPDIR)/deicsonzeplugin.Plo
+include ./$(DEPDIR)/deicsonzepreset.Plo
+include ./$(DEPDIR)/moc_deicsonzegui.Plo
+
+.cpp.o:
+ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+# source='$<' object='$@' libtool=no \
+# DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
+# $(CXXCOMPILE) -c -o $@ $<
+
+.cpp.obj:
+ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+# source='$<' object='$@' libtool=no \
+# DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
+# $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+
+.cpp.lo:
+ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+# source='$<' object='$@' libtool=yes \
+# DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
+# $(LTCXXCOMPILE) -c -o $@ $<
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+install-deicsonzepkgdataDATA: $(deicsonzepkgdata_DATA)
+ @$(NORMAL_INSTALL)
+ test -z "$(deicsonzepkgdatadir)" || $(MKDIR_P) "$(DESTDIR)$(deicsonzepkgdatadir)"
+ @list='$(deicsonzepkgdata_DATA)'; test -n "$(deicsonzepkgdatadir)" || list=; \
+ for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(deicsonzepkgdatadir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(deicsonzepkgdatadir)" || exit $$?; \
+ done
+
+uninstall-deicsonzepkgdataDATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(deicsonzepkgdata_DATA)'; test -n "$(deicsonzepkgdatadir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ test -n "$$files" || exit 0; \
+ echo " ( cd '$(DESTDIR)$(deicsonzepkgdatadir)' && rm -f" $$files ")"; \
+ cd "$(DESTDIR)$(deicsonzepkgdatadir)" && rm -f $$files
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ mkid -fID $$unique
+tags: TAGS
+
+TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ set x; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: CTAGS
+CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) check-am
+all-am: Makefile $(LTLIBRARIES) $(DATA)
+installdirs:
+ for dir in "$(DESTDIR)$(synthidir)" "$(DESTDIR)$(deicsonzepkgdatadir)"; do \
+ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ done
+install: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+ -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES)
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+ -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
+clean: clean-am
+
+clean-am: clean-generic clean-libtool clean-synthiLTLIBRARIES \
+ mostlyclean-am
+
+distclean: distclean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+ distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-deicsonzepkgdataDATA \
+ install-synthiLTLIBRARIES
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+ mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-deicsonzepkgdataDATA \
+ uninstall-synthiLTLIBRARIES
+
+.MAKE: all check install install-am install-strip
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
+ clean-libtool clean-synthiLTLIBRARIES ctags distclean \
+ distclean-compile distclean-generic distclean-libtool \
+ distclean-tags distdir dvi dvi-am html html-am info info-am \
+ install install-am install-data install-data-am \
+ install-deicsonzepkgdataDATA install-dvi install-dvi-am \
+ install-exec install-exec-am install-html install-html-am \
+ install-info install-info-am install-man install-pdf \
+ install-pdf-am install-ps install-ps-am install-strip \
+ install-synthiLTLIBRARIES installcheck installcheck-am \
+ installdirs maintainer-clean maintainer-clean-generic \
+ mostlyclean mostlyclean-compile mostlyclean-generic \
+ mostlyclean-libtool pdf pdf-am ps ps-am tags uninstall \
+ uninstall-am uninstall-deicsonzepkgdataDATA \
+ uninstall-synthiLTLIBRARIES
+
+
+de:
+ @for base in $(MOCFILES); do echo -e "\t$${base}.cpp $${base}.h \\"; done
+
+nde:
+ @for base in $(MOCFILES); do echo -e "\tmoc_$${base}.cpp \\"; done
+
+.ui.o: %.h
+ $(UIC) -L $(top_srcdir)/muse/widgets -o $*.cpp -impl $*.h $*.ui
+ $(MOC) $*.h >> $*.cpp
+ $(CXXCOMPILE) -c $*.cpp -o $*.o
+ $(RM) $*.cpp moc_$*.cpp moc_$*.o
+
+.ui.lo: %.h
+ $(UIC) -L $(top_srcdir)/muse/widgets -o $*.cpp -impl $*.h $*.ui
+ $(MOC) $*.h >> $*.cpp
+ $(LTCXXCOMPILE) -c $*.cpp -o $*.lo
+ $(RM) $*.cpp moc_$*.cpp moc_$*.lo moc_$*.o
+
+moc_%.cpp: %.h
+ $(MOC) $< -o $@
+
+%.h: %.ui
+ $(UIC) -L $(top_srcdir)/muse/widgets -o $@ $<
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/muse2/synti/deicsonze2/Makefile.am b/muse2/synti/deicsonze2/Makefile.am
new file mode 100644
index 00000000..7e212c01
--- /dev/null
+++ b/muse2/synti/deicsonze2/Makefile.am
@@ -0,0 +1,27 @@
+include $(top_srcdir)/common.am
+include $(top_srcdir)/synti/synti-install.am
+
+if PCH
+AM_CXXFLAGS += -include $(top_srcdir)/all-pic.h -DINSTPREFIX=\"$(prefix)\"
+else
+AM_CXXFLAGS += -DINSTPREFIX=\"$(prefix)\"
+endif
+
+synthi_LTLIBRARIES = deicsonze2.la
+
+deicsonze2_la_SOURCES = deicsonze.cpp deicsonze.h \
+ deicsonzegui.cpp deicsonzegui.h \
+ deicsonzefilter.cpp deicsonzefilter.h \
+ deicsonzeplugin.cpp deicsonzeplugin.h \
+ deicsonzepreset.cpp deicsonzepreset.h \
+ deicsonzeguibase.h
+
+nodist_deicsonze2_la_SOURCES = moc_deicsonzegui.cpp
+
+deicsonze2_la_LIBADD = ../libsynti/libsynti.la
+deicsonze2_la_LDFLAGS = -module -avoid-version
+
+EXTRA_DIST = SutulaBank.dei README
+
+deicsonzepkgdata_DATA = SutulaBank.dei
+deicsonzepkgdatadir = $(pkgdatadir)/presets/deicsonze2
diff --git a/muse2/synti/deicsonze2/Makefile.in b/muse2/synti/deicsonze2/Makefile.in
new file mode 100644
index 00000000..8bc735ed
--- /dev/null
+++ b/muse2/synti/deicsonze2/Makefile.in
@@ -0,0 +1,687 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
+ $(top_srcdir)/common.am $(top_srcdir)/synti/synti-install.am \
+ TODO
+@PCH_TRUE@am__append_1 = -include $(top_srcdir)/all-pic.h -DINSTPREFIX=\"$(prefix)\"
+@PCH_FALSE@am__append_2 = -DINSTPREFIX=\"$(prefix)\"
+subdir = synti/deicsonze2
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal-include.m4 \
+ $(top_srcdir)/m4/alsa.m4 $(top_srcdir)/m4/docbook.m4 \
+ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
+ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
+ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/qt.m4 \
+ $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__installdirs = "$(DESTDIR)$(synthidir)" \
+ "$(DESTDIR)$(deicsonzepkgdatadir)"
+LTLIBRARIES = $(synthi_LTLIBRARIES)
+deicsonze2_la_DEPENDENCIES = ../libsynti/libsynti.la
+am_deicsonze2_la_OBJECTS = deicsonze.lo deicsonzegui.lo \
+ deicsonzefilter.lo deicsonzeplugin.lo deicsonzepreset.lo
+nodist_deicsonze2_la_OBJECTS = moc_deicsonzegui.lo
+deicsonze2_la_OBJECTS = $(am_deicsonze2_la_OBJECTS) \
+ $(nodist_deicsonze2_la_OBJECTS)
+deicsonze2_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \
+ $(CXXFLAGS) $(deicsonze2_la_LDFLAGS) $(LDFLAGS) -o $@
+DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
+depcomp = $(SHELL) $(top_srcdir)/depcomp
+am__depfiles_maybe = depfiles
+am__mv = mv -f
+CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
+LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
+CXXLD = $(CXX)
+CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \
+ $(LDFLAGS) -o $@
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
+ $(LDFLAGS) -o $@
+SOURCES = $(deicsonze2_la_SOURCES) $(nodist_deicsonze2_la_SOURCES)
+DIST_SOURCES = $(deicsonze2_la_SOURCES)
+DATA = $(deicsonzepkgdata_DATA)
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ALSA_CFLAGS = @ALSA_CFLAGS@
+ALSA_LIBS = @ALSA_LIBS@
+AMTAR = @AMTAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DOCBOOKSTYLE = @DOCBOOKSTYLE@
+DOCBOOKTARGETS = @DOCBOOKTARGETS@
+DOT = @DOT@
+DOTPATH = @DOTPATH@
+DOXYGEN = @DOXYGEN@
+DOXYGEN_TREEVIEW = @DOXYGEN_TREEVIEW@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+FLUIDSYNTHDIRS = @FLUIDSYNTHDIRS@
+FST_CFLAGS = @FST_CFLAGS@
+FST_LIBS = @FST_LIBS@
+Fluidsynth_CFLAGS = @Fluidsynth_CFLAGS@
+Fluidsynth_LIBS = @Fluidsynth_LIBS@
+GIVERTCAP = @GIVERTCAP@
+GREP = @GREP@
+HAVEDOT = @HAVEDOT@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JACK_CFLAGS = @JACK_CFLAGS@
+JACK_LIBS = @JACK_LIBS@
+JADE = @JADE@
+LASH_CFLAGS = @LASH_CFLAGS@
+LASH_LIBS = @LASH_LIBS@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LO_CFLAGS = @LO_CFLAGS@
+LO_LIBS = @LO_LIBS@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+MOC = @MOC@
+MUSECXXFLAGS = @MUSECXXFLAGS@
+NM = @NM@
+NMEDIT = @NMEDIT@
+NSGMLS = @NSGMLS@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PCH = @PCH@
+PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+PYTHON = @PYTHON@
+PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
+PYTHON_INCLUDES = @PYTHON_INCLUDES@
+PYTHON_LIB = @PYTHON_LIB@
+PYTHON_PLATFORM = @PYTHON_PLATFORM@
+PYTHON_PREFIX = @PYTHON_PREFIX@
+PYTHON_VERSION = @PYTHON_VERSION@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+RANLIB = @RANLIB@
+SAMPLERATE_CFLAGS = @SAMPLERATE_CFLAGS@
+SAMPLERATE_LIBS = @SAMPLERATE_LIBS@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SNDFILE_CFLAGS = @SNDFILE_CFLAGS@
+SNDFILE_LIBS = @SNDFILE_LIBS@
+STRIP = @STRIP@
+SUIDBUILD = @SUIDBUILD@
+SUIDINSTALL = @SUIDINSTALL@
+UIC = @UIC@
+USE_SSE = @USE_SSE@
+UUID_CFLAGS = @UUID_CFLAGS@
+UUID_LIBS = @UUID_LIBS@
+VERSION = @VERSION@
+XMKMF = @XMKMF@
+X_CFLAGS = @X_CFLAGS@
+X_EXTRA_LIBS = @X_EXTRA_LIBS@
+X_LIBS = @X_LIBS@
+X_PRE_LIBS = @X_PRE_LIBS@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+have_docbook = @have_docbook@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+lt_ECHO = @lt_ECHO@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+pkgpyexecdir = @pkgpyexecdir@
+pkgpythondir = @pkgpythondir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+pyexecdir = @pyexecdir@
+pythondir = @pythondir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+synth_fluid = @synth_fluid@
+synth_fluidsynth = @synth_fluidsynth@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+AM_CXXFLAGS = $(MUSECXXFLAGS) -I.. -I$(top_srcdir)/synti \
+ -I$(top_srcdir)/muse/widgets -DQT_SHARED -DQT_THREAD_SUPPORT \
+ -DQT_PLUGIN $(am__append_1) $(am__append_2)
+AM_CPPFLAGS =
+UIFILES = $(wildcard *.ui)
+MOCFILES = $(shell for h in $(filter %.h,$(SOURCES)); do \
+ if grep -q Q_OBJECT $$h; then \
+ echo $$h | sed "s/\(.*\)\.h/moc_\1.cpp/"; \
+ fi; \
+ done)
+
+BUILT_SOURCES = $(MOCFILES) $(UIFILES:%.ui=%.h)
+MOSTLYCLEANFILES = $(MOCFILES) $(UIFILES:%.ui=%.h)
+SUFFIXES = .ui .h.gch
+synthidir = $(pkglibdir)/synthi
+synthi_LTLIBRARIES = deicsonze2.la
+deicsonze2_la_SOURCES = deicsonze.cpp deicsonze.h \
+ deicsonzegui.cpp deicsonzegui.h \
+ deicsonzefilter.cpp deicsonzefilter.h \
+ deicsonzeplugin.cpp deicsonzeplugin.h \
+ deicsonzepreset.cpp deicsonzepreset.h \
+ deicsonzeguibase.h
+
+nodist_deicsonze2_la_SOURCES = moc_deicsonzegui.cpp
+deicsonze2_la_LIBADD = ../libsynti/libsynti.la
+deicsonze2_la_LDFLAGS = -module -avoid-version
+EXTRA_DIST = SutulaBank.dei README
+deicsonzepkgdata_DATA = SutulaBank.dei
+deicsonzepkgdatadir = $(pkgdatadir)/presets/deicsonze2
+all: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) all-am
+
+.SUFFIXES:
+.SUFFIXES: .ui .h.gch .cpp .lo .o .obj
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/common.am $(top_srcdir)/synti/synti-install.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu synti/deicsonze2/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu synti/deicsonze2/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+install-synthiLTLIBRARIES: $(synthi_LTLIBRARIES)
+ @$(NORMAL_INSTALL)
+ test -z "$(synthidir)" || $(MKDIR_P) "$(DESTDIR)$(synthidir)"
+ @list='$(synthi_LTLIBRARIES)'; test -n "$(synthidir)" || list=; \
+ list2=; for p in $$list; do \
+ if test -f $$p; then \
+ list2="$$list2 $$p"; \
+ else :; fi; \
+ done; \
+ test -z "$$list2" || { \
+ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(synthidir)'"; \
+ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(synthidir)"; \
+ }
+
+uninstall-synthiLTLIBRARIES:
+ @$(NORMAL_UNINSTALL)
+ @list='$(synthi_LTLIBRARIES)'; test -n "$(synthidir)" || list=; \
+ for p in $$list; do \
+ $(am__strip_dir) \
+ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(synthidir)/$$f'"; \
+ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(synthidir)/$$f"; \
+ done
+
+clean-synthiLTLIBRARIES:
+ -test -z "$(synthi_LTLIBRARIES)" || rm -f $(synthi_LTLIBRARIES)
+ @list='$(synthi_LTLIBRARIES)'; for p in $$list; do \
+ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
+ test "$$dir" != "$$p" || dir=.; \
+ echo "rm -f \"$${dir}/so_locations\""; \
+ rm -f "$${dir}/so_locations"; \
+ done
+deicsonze2.la: $(deicsonze2_la_OBJECTS) $(deicsonze2_la_DEPENDENCIES)
+ $(deicsonze2_la_LINK) -rpath $(synthidir) $(deicsonze2_la_OBJECTS) $(deicsonze2_la_LIBADD) $(LIBS)
+
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT)
+
+distclean-compile:
+ -rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/deicsonze.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/deicsonzefilter.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/deicsonzegui.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/deicsonzeplugin.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/deicsonzepreset.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/moc_deicsonzegui.Plo@am__quote@
+
+.cpp.o:
+@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $<
+
+.cpp.obj:
+@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+
+.cpp.lo:
+@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $<
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+install-deicsonzepkgdataDATA: $(deicsonzepkgdata_DATA)
+ @$(NORMAL_INSTALL)
+ test -z "$(deicsonzepkgdatadir)" || $(MKDIR_P) "$(DESTDIR)$(deicsonzepkgdatadir)"
+ @list='$(deicsonzepkgdata_DATA)'; test -n "$(deicsonzepkgdatadir)" || list=; \
+ for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(deicsonzepkgdatadir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(deicsonzepkgdatadir)" || exit $$?; \
+ done
+
+uninstall-deicsonzepkgdataDATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(deicsonzepkgdata_DATA)'; test -n "$(deicsonzepkgdatadir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ test -n "$$files" || exit 0; \
+ echo " ( cd '$(DESTDIR)$(deicsonzepkgdatadir)' && rm -f" $$files ")"; \
+ cd "$(DESTDIR)$(deicsonzepkgdatadir)" && rm -f $$files
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ mkid -fID $$unique
+tags: TAGS
+
+TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ set x; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: CTAGS
+CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) check-am
+all-am: Makefile $(LTLIBRARIES) $(DATA)
+installdirs:
+ for dir in "$(DESTDIR)$(synthidir)" "$(DESTDIR)$(deicsonzepkgdatadir)"; do \
+ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ done
+install: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+ -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES)
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+ -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
+clean: clean-am
+
+clean-am: clean-generic clean-libtool clean-synthiLTLIBRARIES \
+ mostlyclean-am
+
+distclean: distclean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+ distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-deicsonzepkgdataDATA \
+ install-synthiLTLIBRARIES
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+ mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-deicsonzepkgdataDATA \
+ uninstall-synthiLTLIBRARIES
+
+.MAKE: all check install install-am install-strip
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
+ clean-libtool clean-synthiLTLIBRARIES ctags distclean \
+ distclean-compile distclean-generic distclean-libtool \
+ distclean-tags distdir dvi dvi-am html html-am info info-am \
+ install install-am install-data install-data-am \
+ install-deicsonzepkgdataDATA install-dvi install-dvi-am \
+ install-exec install-exec-am install-html install-html-am \
+ install-info install-info-am install-man install-pdf \
+ install-pdf-am install-ps install-ps-am install-strip \
+ install-synthiLTLIBRARIES installcheck installcheck-am \
+ installdirs maintainer-clean maintainer-clean-generic \
+ mostlyclean mostlyclean-compile mostlyclean-generic \
+ mostlyclean-libtool pdf pdf-am ps ps-am tags uninstall \
+ uninstall-am uninstall-deicsonzepkgdataDATA \
+ uninstall-synthiLTLIBRARIES
+
+
+de:
+ @for base in $(MOCFILES); do echo -e "\t$${base}.cpp $${base}.h \\"; done
+
+nde:
+ @for base in $(MOCFILES); do echo -e "\tmoc_$${base}.cpp \\"; done
+
+.ui.o: %.h
+ $(UIC) -L $(top_srcdir)/muse/widgets -o $*.cpp -impl $*.h $*.ui
+ $(MOC) $*.h >> $*.cpp
+ $(CXXCOMPILE) -c $*.cpp -o $*.o
+ $(RM) $*.cpp moc_$*.cpp moc_$*.o
+
+.ui.lo: %.h
+ $(UIC) -L $(top_srcdir)/muse/widgets -o $*.cpp -impl $*.h $*.ui
+ $(MOC) $*.h >> $*.cpp
+ $(LTCXXCOMPILE) -c $*.cpp -o $*.lo
+ $(RM) $*.cpp moc_$*.cpp moc_$*.lo moc_$*.o
+
+moc_%.cpp: %.h
+ $(MOC) $< -o $@
+
+%.h: %.ui
+ $(UIC) -L $(top_srcdir)/muse/widgets -o $@ $<
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/muse2/synti/deicsonze2/README b/muse2/synti/deicsonze2/README
new file mode 100644
index 00000000..c9b36d02
--- /dev/null
+++ b/muse2/synti/deicsonze2/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/muse2/synti/deicsonze2/SutulaBank.dei b/muse2/synti/deicsonze2/SutulaBank.dei
new file mode 100644
index 00000000..3a64e876
--- /dev/null
+++ b/muse2/synti/deicsonze2/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/muse2/synti/deicsonze2/TODO b/muse2/synti/deicsonze2/TODO
new file mode 100644
index 00000000..f7d486f1
--- /dev/null
+++ b/muse2/synti/deicsonze2/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/muse2/synti/deicsonze2/deicsonze.cpp b/muse2/synti/deicsonze2/deicsonze.cpp
new file mode 100644
index 00000000..28b9183e
--- /dev/null
+++ b/muse2/synti/deicsonze2/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 "muse/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);
+ // TODO _gui->hide(); // to avoid flicker during MusE startup
+ // TODO _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.ascii(), "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();
+ MidiPlayEvent 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();
+ MidiPlayEvent 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();
+ MidiPlayEvent 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());
+ MidiPlayEvent 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;
+ MidiPlayEvent evFontSize(0, ME_SYSEX, (const unsigned char*)dataFontSize, 2);
+ _gui->writeEvent(evFontSize);
+ //display load preset
+ unsigned char dataUpdateGuiSet[1];
+ dataUpdateGuiSet[0]=SYSEX_UPDATESETGUI;
+ MidiPlayEvent 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;
+ MidiPlayEvent 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());
+ MidiPlayEvent 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;
+ MidiPlayEvent
+ 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;
+ MidiPlayEvent 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();
+ MidiPlayEvent 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;
+ MidiPlayEvent 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;
+ MidiPlayEvent
+ 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;
+ MidiPlayEvent
+ 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;
+ MidiPlayEvent
+ 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);
+ MidiPlayEvent
+ 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;
+ MidiPlayEvent
+ 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);
+ MidiPlayEvent
+ 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();
+ MidiPlayEvent 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->Qt::red();
+ buffer[NUM_GREEN_TEXT]=(unsigned char)_gui->tColor->Qt::green();
+ buffer[NUM_BLUE_TEXT]=(unsigned char)_gui->tColor->Qt::blue();
+ buffer[NUM_RED_BACKGROUND]=(unsigned char)_gui->bColor->Qt::red();
+ buffer[NUM_GREEN_BACKGROUND]=(unsigned char)_gui->bColor->Qt::green();
+ buffer[NUM_BLUE_BACKGROUND]=(unsigned char)_gui->bColor->Qt::blue();
+ buffer[NUM_RED_EDITTEXT]=(unsigned char)_gui->etColor->Qt::red();
+ buffer[NUM_GREEN_EDITTEXT]=(unsigned char)_gui->etColor->Qt::green();
+ buffer[NUM_BLUE_EDITTEXT]=(unsigned char)_gui->etColor->Qt::blue();
+ buffer[NUM_RED_EDITBACKGROUND]=(unsigned char)_gui->ebColor->Qt::red();
+ buffer[NUM_GREEN_EDITBACKGROUND]=(unsigned char)_gui->ebColor->Qt::green();
+ buffer[NUM_BLUE_EDITBACKGROUND]=(unsigned char)_gui->ebColor->Qt::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();
+ MidiPlayEvent
+ 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]);
+ MidiPlayEvent
+ evChEnable(0, c, ME_CONTROLLER,
+ CTRL_CHANNELENABLE, data[NUM_CHANNEL_ENABLE + c]);
+ _gui->writeEvent(evChEnable);
+ //nbrVoices
+ setNbrVoices(c, data[NUM_NBRVOICES + c]);
+ MidiPlayEvent
+ evNbrVoices(0,c,ME_CONTROLLER,CTRL_NBRVOICES, data[NUM_NBRVOICES + c]);
+ _gui->writeEvent(evNbrVoices);
+ //channel volume
+ setChannelVol(c, data[NUM_CHANNEL_VOL + c]);
+ MidiPlayEvent
+ evChVol(0, c, ME_CONTROLLER,
+ CTRL_CHANNELVOLUME, data[NUM_CHANNEL_VOL + c]);
+ _gui->writeEvent(evChVol);
+ //channel pan
+ setChannelPan(c, data[NUM_CHANNEL_PAN + c]);
+ MidiPlayEvent
+ 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);
+ MidiPlayEvent
+ 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);
+ MidiPlayEvent
+ evChBrightness(0, c, ME_CONTROLLER,
+ CTRL_FINEBRIGHTNESS, getChannelBrightness(c));
+ _gui->writeEvent(evChBrightness);
+ //channel modulation
+ setChannelModulation(c, data[NUM_CHANNEL_MODULATION + c]);
+ MidiPlayEvent
+ evChMod(0, c, ME_CONTROLLER,
+ CTRL_MODULATION, data[NUM_CHANNEL_MODULATION + c]);
+ _gui->writeEvent(evChMod);
+ //channel attack
+ setChannelAttack(c, data[NUM_CHANNEL_ATTACK + c]);
+ MidiPlayEvent
+ 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]);
+ MidiPlayEvent
+ 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]);
+ MidiPlayEvent
+ 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]);
+ MidiPlayEvent
+ 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]);
+ MidiPlayEvent
+ 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;
+ MidiPlayEvent
+ 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;
+ MidiPlayEvent
+ 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];
+ MidiPlayEvent 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]);
+ MidiPlayEvent 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]);
+ MidiPlayEvent 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];
+ MidiPlayEvent 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];
+ MidiPlayEvent 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];
+ MidiPlayEvent 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];
+ MidiPlayEvent 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];
+ MidiPlayEvent 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;
+ MidiPlayEvent 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();
+ MidiPlayEvent 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;
+ MidiPlayEvent 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;
+ MidiPlayEvent 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();
+ MidiPlayEvent 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;
+ MidiPlayEvent 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;
+ MidiPlayEvent 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();
+ MidiPlayEvent 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));
+ MidiPlayEvent 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));
+ MidiPlayEvent 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));
+ MidiPlayEvent 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));
+ MidiPlayEvent 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));
+ MidiPlayEvent 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);
+ MidiPlayEvent 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);
+ MidiPlayEvent 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) {
+ MidiPlayEvent evSysex(0, ME_SYSEX, data, length);
+ _gui->writeEvent(evSysex);
+ }
+ break;
+ //case SYSEX_CHANNELNUM:
+ //_global.channelNum = (char)data[1];
+ //if(!fromGui) {
+ // MidiPlayEvent evSysex(0, ME_SYSEX, data, length);
+ // _gui->writeEvent(evSysex);
+ //}
+ //break;
+ case SYSEX_QUALITY:
+ setQuality((Quality)data[1]);
+ if(!fromGui) {
+ MidiPlayEvent evSysex(0, ME_SYSEX, data, length);
+ _gui->writeEvent(evSysex);
+ }
+ break;
+ case SYSEX_FILTER:
+ setFilter((bool)data[1]);
+ if(!fromGui) {
+ MidiPlayEvent evSysex(0, ME_SYSEX, data, length);
+ _gui->writeEvent(evSysex);
+ }
+ break;
+ case SYSEX_FONTSIZE:
+ _global.fontSize = (int)data[1];
+ if(!fromGui) {
+ MidiPlayEvent evSysex(0, ME_SYSEX, data, length);
+ _gui->writeEvent(evSysex);
+ }
+ break;
+ case SYSEX_SAVECONFIG:
+ _saveConfig = (bool)data[1];
+ if(!fromGui) {
+ MidiPlayEvent evSysex(0, ME_SYSEX, data, length);
+ _gui->writeEvent(evSysex);
+ }
+ break;
+ case SYSEX_SAVEONLYUSED:
+ _saveOnlyUsed = (bool)data[1];
+ if(!fromGui) {
+ MidiPlayEvent evSysex(0, ME_SYSEX, data, length);
+ _gui->writeEvent(evSysex);
+ }
+ break;
+ case SYSEX_ISINITSET:
+ _isInitSet = (bool)data[1];
+ if(!fromGui) {
+ MidiPlayEvent evSysex(0, ME_SYSEX, data, length);
+ _gui->writeEvent(evSysex);
+ }
+ break;
+ case SYSEX_INITSETPATH:
+ _initSetPath = (char*)&data[1];
+ if(!fromGui) {
+ MidiPlayEvent evSysex(0, ME_SYSEX, data, length);
+ _gui->writeEvent(evSysex);
+ }
+ break;
+ case SYSEX_ISBACKGROUNDPIX:
+ _isBackgroundPix = (bool)data[1];
+ if(!fromGui) {
+ MidiPlayEvent evSysex(0, ME_SYSEX, data, length);
+ _gui->writeEvent(evSysex);
+ }
+ break;
+ case SYSEX_BACKGROUNDPIXPATH:
+ _backgroundPixPath = (char*)&data[1];
+ if(!fromGui) {
+ MidiPlayEvent 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) {
+ MidiPlayEvent 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) {
+ MidiPlayEvent evSysex(0, ME_SYSEX, data, length);
+ _gui->writeEvent(evSysex);
+ }
+ break;
+ case SYSEX_REVERBACTIV:
+ _global.isReverbActivated = (bool)data[1];
+ if(!fromGui) {
+ MidiPlayEvent 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) {
+ MidiPlayEvent evSysex(0, ME_SYSEX, data, length);
+ _gui->writeEvent(evSysex);
+ }
+ break;
+ case SYSEX_DELAYACTIV:
+ _global.isDelayActivated = (bool)data[1];
+ if(!fromGui) {
+ MidiPlayEvent evSysex(0, ME_SYSEX, data, length);
+ _gui->writeEvent(evSysex);
+ }
+ break;
+ case SYSEX_CHORUSRETURN:
+ setChorusReturn((int)data[1]);
+ if(!fromGui) {
+ MidiPlayEvent evSysex(0, ME_SYSEX, data, length);
+ _gui->writeEvent(evSysex);
+ }
+ break;
+ case SYSEX_REVERBRETURN:
+ setReverbReturn((int)data[1]);
+ if(!fromGui) {
+ MidiPlayEvent evSysex(0, ME_SYSEX, data, length);
+ _gui->writeEvent(evSysex);
+ }
+ break;
+ case SYSEX_DELAYRETURN:
+ setDelayReturn((int)data[1]);
+ if(!fromGui) {
+ MidiPlayEvent 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) {
+ MidiPlayEvent evSysex(0, ME_SYSEX, data, length);
+ _gui->writeEvent(evSysex);
+ }
+ break;
+ case SYSEX_DELAYBEATRATIO:
+ memcpy(&f, &data[1], sizeof(float));
+ setDelayBeatRatio(f);
+ if(!fromGui) {
+ MidiPlayEvent evSysex(0, ME_SYSEX, data, length);
+ _gui->writeEvent(evSysex);
+ }
+ break;
+ case SYSEX_DELAYFEEDBACK:
+ memcpy(&f, &data[1], sizeof(float));
+ setDelayFeedback(f);
+ if(!fromGui) {
+ MidiPlayEvent evSysex(0, ME_SYSEX, data, length);
+ _gui->writeEvent(evSysex);
+ }
+ break;
+ case SYSEX_DELAYLFOFREQ:
+ memcpy(&f, &data[1], sizeof(float));
+ setDelayLFOFreq(f);
+ if(!fromGui) {
+ MidiPlayEvent evSysex(0, ME_SYSEX, data, length);
+ _gui->writeEvent(evSysex);
+ }
+ break;
+ case SYSEX_DELAYLFODEPTH:
+ memcpy(&f, &data[1], sizeof(float));
+ setDelayLFODepth(f);
+ if(!fromGui) {
+ MidiPlayEvent 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) {
+ MidiPlayEvent 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) {
+ MidiPlayEvent 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) {
+ MidiPlayEvent 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) {
+ MidiPlayEvent 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) {
+ MidiPlayEvent 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) {
+ MidiPlayEvent 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) {
+ MidiPlayEvent 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) {
+ MidiPlayEvent 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) {
+ MidiPlayEvent 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) {
+ MidiPlayEvent 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) {
+ MidiPlayEvent 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) {
+ MidiPlayEvent 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) {
+ MidiPlayEvent 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) {
+ MidiPlayEvent 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) {
+ MidiPlayEvent 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) {
+ MidiPlayEvent 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) {
+ MidiPlayEvent 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) {
+ MidiPlayEvent 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) {
+ MidiPlayEvent 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) {
+ MidiPlayEvent 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) {
+ MidiPlayEvent 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) {
+ MidiPlayEvent 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) {
+ MidiPlayEvent 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) {
+ MidiPlayEvent 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) {
+ MidiPlayEvent 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) {
+ MidiPlayEvent 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) {
+ MidiPlayEvent 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) {
+ MidiPlayEvent 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) {
+ MidiPlayEvent 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) {
+ MidiPlayEvent 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) {
+ MidiPlayEvent 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) {
+ MidiPlayEvent 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) {
+ MidiPlayEvent 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) {
+ MidiPlayEvent 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) {
+ MidiPlayEvent 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) {
+ MidiPlayEvent 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) {
+ MidiPlayEvent 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) {
+ MidiPlayEvent 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) {
+ MidiPlayEvent 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) {
+ MidiPlayEvent 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) {
+ MidiPlayEvent 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) {
+ MidiPlayEvent 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) {
+ MidiPlayEvent 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) {
+ MidiPlayEvent 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) {
+ MidiPlayEvent 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) {
+ MidiPlayEvent 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) {
+ MidiPlayEvent 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) {
+ MidiPlayEvent 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) {
+ MidiPlayEvent 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) {
+ MidiPlayEvent 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) {
+ MidiPlayEvent 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) {
+ MidiPlayEvent 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) {
+ MidiPlayEvent ev(0,ch,ME_CONTROLLER,CTRL_FCAMPLITUDE,val);
+ _gui->writeEvent(ev);
+ }
+ break;
+ case CTRL_CHANNELENABLE:
+ setChannelEnable(ch, (bool)val);
+ if(!fromGui) {
+ MidiPlayEvent ev(0,ch,ME_CONTROLLER,CTRL_CHANNELENABLE,val);
+ _gui->writeEvent(ev);
+ }
+ break;
+ case CTRL_CHANNELDETUNE:
+ _preset[ch]->setIsUsed(true);
+ setChannelDetune(ch, val);
+ if(!fromGui) {
+ MidiPlayEvent ev(0,ch,ME_CONTROLLER,CTRL_CHANNELDETUNE,val);
+ _gui->writeEvent(ev);
+ }
+ break;
+ case CTRL_CHANNELVOLUME:
+ setChannelVol(ch, val);
+ applyChannelAmp(ch);
+ if(!fromGui) {
+ MidiPlayEvent ev(0,ch,ME_CONTROLLER,CTRL_CHANNELVOLUME,val);
+ _gui->writeEvent(ev);
+ }
+ break;
+ case CTRL_NBRVOICES:
+ setNbrVoices(ch, val);
+ if(!fromGui) {
+ MidiPlayEvent 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) {
+ MidiPlayEvent ev(0, ch, ME_CONTROLLER, CTRL_PROGRAM, val);
+ _gui->writeEvent(ev);
+ }
+ } break;
+ case CTRL_MODULATION:
+ setModulation(ch, val);
+ if(!fromGui) {
+ MidiPlayEvent 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) {
+ MidiPlayEvent 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) {
+ MidiPlayEvent 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) {
+ MidiPlayEvent 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) {
+ MidiPlayEvent
+ 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) {
+ MidiPlayEvent 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) {
+ MidiPlayEvent ev(0,ch, ME_CONTROLLER, CTRL_RELEASE_TIME, val);
+ _gui->writeEvent(ev);
+ }
+ break;
+ case CTRL_REVERB_SEND:
+ setChannelReverb(ch, val);
+ if(!fromGui) {
+ MidiPlayEvent ev(0,ch, ME_CONTROLLER, CTRL_REVERB_SEND, val);
+ _gui->writeEvent(ev);
+ }
+ break;
+ case CTRL_CHORUS_SEND:
+ setChannelChorus(ch, val);
+ if(!fromGui) {
+ MidiPlayEvent ev(0,ch, ME_CONTROLLER, CTRL_CHORUS_SEND, val);
+ _gui->writeEvent(ev);
+ }
+ break;
+ case CTRL_VARIATION_SEND:
+ setChannelDelay(ch, val);
+ if(!fromGui) {
+ MidiPlayEvent 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) {
+ MidiPlayEvent
+ 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()) {
+ MidiPlayEvent 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/muse2/synti/deicsonze2/deicsonze.h b/muse2/synti/deicsonze2/deicsonze.h
new file mode 100644
index 00000000..c462cfcd
--- /dev/null
+++ b/muse2/synti/deicsonze2/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 "muse/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(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/muse2/synti/deicsonze2/deicsonzefilter.cpp b/muse2/synti/deicsonze2/deicsonzefilter.cpp
new file mode 100644
index 00000000..d4bef946
--- /dev/null
+++ b/muse2/synti/deicsonze2/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/muse2/synti/deicsonze2/deicsonzefilter.h b/muse2/synti/deicsonze2/deicsonzefilter.h
new file mode 100644
index 00000000..fc92142a
--- /dev/null
+++ b/muse2/synti/deicsonze2/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/muse2/synti/deicsonze2/deicsonzegui.cpp b/muse2/synti/deicsonze2/deicsonzegui.cpp
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/muse2/synti/deicsonze2/deicsonzegui.cpp
diff --git a/muse2/synti/deicsonze2/deicsonzegui.h b/muse2/synti/deicsonze2/deicsonzegui.h
new file mode 100644
index 00000000..0fe3345b
--- /dev/null
+++ b/muse2/synti/deicsonze2/deicsonzegui.h
@@ -0,0 +1,571 @@
+//===========================================================================
+//
+// 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 <q3listview.h>
+//Added by qt3to4:
+#include <Q3GridLayout>
+#include <Q3Frame>
+#include <QMouseEvent>
+#include <QPaintEvent>
+#include <vector>
+
+#include "deicsonze.h"
+
+#include "deicsonzepreset.h"
+#include "deicsonzeguibase.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 Q3ListViewItem {
+ public:
+ Category* _category;
+ QTreeCategory(Q3ListView* p, QString shbank, QString l, Category* c)
+ :Q3ListViewItem(p) {
+ setText(0, shbank);
+ setText(1, l);
+ _category=c;
+ };
+};
+
+class QTreeSubcategory:public Q3ListViewItem {
+ public:
+ Subcategory* _subcategory;
+ QTreeSubcategory(Q3ListView* p, QString slbank,
+ QString l, Subcategory* s)
+ :Q3ListViewItem(p) {
+ setText(0, slbank);
+ setText(1, l);
+ _subcategory=s;
+ };
+};
+
+class QTreePreset:public Q3ListViewItem {
+ public:
+ Preset* _preset;
+ QTreePreset(Q3ListView* pa, QString sprog, QString l, Preset* p)
+ :Q3ListViewItem(pa) {
+ setText(0, sprog);
+ setText(1, l);
+ _preset=p;
+ };
+};
+
+//---------------------------------------------------------
+// DeicsOnzeGui
+//---------------------------------------------------------
+class DeicsOnzeGui : public QDialog, public DeicsOnzeGuiBase, public MessGui {
+ bool _enabledPreset;
+
+ QFramePitchEnvelope* pitchEnvelopeGraph;
+ QFrameEnvelope* envelopeGraph[NBROP];
+
+ QWidget* _chorusSuperWidget;
+ QWidget* _reverbSuperWidget;
+ std::vector<Slider*> _chorusSliderVector;
+ // TODO std::vector<FloatEntry*> _chorusFloatEntryVector;
+ // TODO std::vector<CheckBox*> _chorusCheckBoxVector;
+ std::vector<Slider*> _reverbSliderVector;
+ // TODO std::vector<FloatEntry*> _reverbFloatEntryVector;
+ // TODO 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);
+ // TODO 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*);
+ // TODO void setCategory(QTreeWidgetItem*);
+ void setSubcategory(Subcategory*);
+ // TODO void setSubcategory(QTreeWidgetItem*);
+ // TODO void setPreset(QTreeWidgetItem*);
+ public:
+ virtual void processEvent(const MidiPlayEvent&);
+ 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, Q3GridLayout* grid, bool isReverb);
+ void addPluginIntSlider(int index, QString text, double min, double max,
+ double val, QWidget* parent, Q3GridLayout* grid,
+ bool isReverb);
+ void addPluginSlider(int index, QString text, bool isLog, double min,
+ double max, double val, QWidget* parent,
+ Q3GridLayout* 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 Q3Frame {
+ 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):Q3Frame(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 Q3Frame {
+ 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):Q3Frame(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/muse2/synti/deicsonze2/deicsonzegui.ui b/muse2/synti/deicsonze2/deicsonzegui.ui
new file mode 100644
index 00000000..6b91cf49
--- /dev/null
+++ b/muse2/synti/deicsonze2/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/muse2/synti/deicsonze2/deicsonzeguibase.h b/muse2/synti/deicsonze2/deicsonzeguibase.h
new file mode 100644
index 00000000..f4209078
--- /dev/null
+++ b/muse2/synti/deicsonze2/deicsonzeguibase.h
@@ -0,0 +1,312 @@
+/****************************************************************************
+** Form interface generated from reading ui file 'deicsonzeguibase.ui'
+**
+** Created: Thu Dec 24 07:50:17 2009
+**
+** WARNING! All changes made in this file will be lost!
+****************************************************************************/
+
+#ifndef DEICSONZEGUIBASE_H
+#define DEICSONZEGUIBASE_H
+
+#include <qvariant.h>
+#include <qpixmap.h>
+#include <qdialog.h>
+//Added by qt3to4:
+#include <Q3HBoxLayout>
+#include <QLabel>
+#include <Q3GridLayout>
+#include <Q3VBoxLayout>
+
+class Q3VBoxLayout;
+class Q3HBoxLayout;
+class Q3GridLayout;
+class QSpacerItem;
+class QTabWidget;
+class QWidget;
+class QPushButton;
+class Q3GroupBox;
+class QLineEdit;
+class Q3ListView;
+class Q3ListViewItem;
+class QSpinBox;
+class QLabel;
+class QSlider;
+class QComboBox;
+class QCheckBox;
+
+class DeicsOnzeGuiBase : public QDialog
+{
+ Q_OBJECT
+
+public:
+ DeicsOnzeGuiBase( QWidget* parent = 0, const char* name = 0, bool modal = FALSE, Qt::WFlags fl = 0 );
+ ~DeicsOnzeGuiBase();
+
+ QTabWidget* deicsOnzeTabWidget;
+ QWidget* TabPage;
+ QPushButton* loadPushButton;
+ QPushButton* savePushButton;
+ Q3GroupBox* nameGroupBox;
+ QLineEdit* nameLineEdit;
+ Q3GroupBox* subcategoryGroupBox;
+ QLineEdit* subcategoryLineEdit;
+ Q3GroupBox* categoryGroupBox;
+ QLineEdit* categoryLineEdit;
+ QPushButton* deletePushButton;
+ Q3ListView* categoryListView;
+ Q3ListView* subcategoryListView;
+ Q3ListView* presetsListView;
+ QPushButton* newPushButton;
+ Q3GroupBox* bankGroupBox;
+ QSpinBox* bankSpinBox;
+ Q3GroupBox* progGroupBox;
+ QSpinBox* progSpinBox;
+ QLabel* presentTextLAbel;
+ QWidget* TabPage_2;
+ Q3GroupBox* masterVolGroupBox;
+ QSlider* masterVolSlider;
+ QSpinBox* MasterVolumeSpinBox;
+ Q3GroupBox* FeedbackGroupBox;
+ QSpinBox* feedbackSpinBox;
+ QSlider* feedbackSlider;
+ Q3GroupBox* functionGroupBox;
+ QComboBox* polyMonoComboBox;
+ QLabel* PitchBendRangeLabel;
+ QSlider* PitchBendRangeSlider;
+ QSpinBox* pitchBendRangeSpinBox;
+ Q3GroupBox* LFOGroupBox;
+ QLabel* PModSensLabel;
+ QLabel* PModDepthLabel;
+ QLabel* AModDepthLabel;
+ QLabel* LFOSpeedLabel;
+ QLabel* LFODelayLabel;
+ QLabel* AModSensLabel;
+ QComboBox* LFOWaveComboBox;
+ QCheckBox* LFOSyncCheckBox;
+ QSlider* AModSensSlider;
+ QSlider* PModSensSlider;
+ QSpinBox* PMSSpinBox;
+ QSpinBox* AMSSpinBox;
+ QSlider* PModDepthSlider;
+ QSlider* AModDepthSlider;
+ QSlider* LFOSpeedSlider;
+ QSpinBox* LFOSpeedSpinBox;
+ QSlider* LFODelaySlider;
+ QSpinBox* LFODelaySpinBox;
+ QSpinBox* PModDepthSpinBox;
+ QSpinBox* AModDepthSpinBox;
+ Q3GroupBox* transposeGroupBox;
+ QSlider* transposeSlider;
+ QSpinBox* transposeSpinBox;
+ QSlider* globalDetuneSlider;
+ QSpinBox* globalDetuneSpinBox;
+ QComboBox* algorithmComboBox;
+ QWidget* tab;
+ Q3GroupBox* Frequency1groupBox;
+ QCheckBox* Fix1CheckBox;
+ QLabel* CoarseRatio1Label;
+ QLabel* FineRatio1Label;
+ QLabel* Freq1Label;
+ QSpinBox* CoarseRatio1SpinBox;
+ QSpinBox* FineRatio1SpinBox;
+ QSpinBox* Freq1SpinBox;
+ Q3GroupBox* Env1GroupBox;
+ QLabel* RR1Label;
+ QLabel* D1R1Label;
+ QLabel* D1L1Label;
+ QLabel* D2R1Label;
+ QSlider* D1L1Slider;
+ QSlider* D2R1Slider;
+ QSlider* D1R1Slider;
+ QSlider* RR1Slider;
+ QLabel* AR1Label;
+ QSpinBox* D1R1SpinBox;
+ QSpinBox* D1L1SpinBox;
+ QSpinBox* D2R1SpinBox;
+ QSpinBox* RR1SpinBox;
+ QSlider* AR1Slider;
+ QSpinBox* AR1SpinBox;
+ Q3GroupBox* Scaling1GroupBox;
+ QLabel* LS1Label;
+ QLabel* RS1Label;
+ QSlider* LS1Slider;
+ QSlider* RS1Slider;
+ QSpinBox* LS1SpinBox;
+ QSpinBox* RS1SpinBox;
+ Q3GroupBox* Vol1groupBox;
+ QSlider* Vol1Slider;
+ QSpinBox* Vol1SpinBox;
+ Q3GroupBox* sensitivity1groupBox;
+ QLabel* EGS1Label;
+ QLabel* KVS1Label;
+ QCheckBox* AME1CheckBox;
+ QSlider* KVS1Slider;
+ QSlider* EBS1Slider;
+ QSpinBox* KVS1SpinBox;
+ QSpinBox* EBS1SpinBox;
+ Q3GroupBox* DetWaveEGS1GroupBox;
+ QComboBox* WaveForm1ComboBox;
+ QLabel* DET1Label;
+ QComboBox* EGQ1ComboBox;
+ QSlider* DET1Slider;
+ QSpinBox* DET1SpinBox;
+ QWidget* tab_2;
+ Q3GroupBox* Frequency2groupBox;
+ QCheckBox* Fix2CheckBox;
+ QLabel* Freq2Label;
+ QLabel* FineRatio2Label;
+ QLabel* CoarseRatio2Label;
+ QSpinBox* CoarseRatio2SpinBox;
+ QSpinBox* FineRatio2SpinBox;
+ QSpinBox* Freq2SpinBox;
+ Q3GroupBox* Env2GroupBox;
+ QLabel* AR2Label;
+ QLabel* RR2Label;
+ QLabel* D2R2Label;
+ QLabel* D1L2Label;
+ QLabel* D1R2Label;
+ QSlider* AR2Slider;
+ QSlider* D1R2Slider;
+ QSlider* D1L2Slider;
+ QSlider* D2R2Slider;
+ QSlider* RR2Slider;
+ QSpinBox* D1R2SpinBox;
+ QSpinBox* D1L2SpinBox;
+ QSpinBox* D2R2SpinBox;
+ QSpinBox* RR2SpinBox;
+ QSpinBox* AR2SpinBox;
+ Q3GroupBox* Scaling2GroupBox;
+ QLabel* LS2Label;
+ QLabel* RS2Label;
+ QSlider* LS2Slider;
+ QSlider* RS2Slider;
+ QSpinBox* LS2SpinBox;
+ QSpinBox* RS2SpinBox;
+ Q3GroupBox* Vol2groupBox;
+ QSlider* Vol2Slider;
+ QSpinBox* Vol2SpinBox;
+ Q3GroupBox* sensitivity2groupBox;
+ QLabel* EGS2Label;
+ QLabel* KVS2Label;
+ QCheckBox* AME2CheckBox;
+ QSlider* KVS2Slider;
+ QSlider* EBS2Slider;
+ QSpinBox* EBS2SpinBox;
+ QSpinBox* KVS2SpinBox;
+ Q3GroupBox* DetWaveEGS2GroupBox;
+ QSlider* DET2Slider;
+ QLabel* DET2Label;
+ QComboBox* WaveForm2ComboBox;
+ QComboBox* EGS2comboBox;
+ QSpinBox* DET2SpinBox;
+ QWidget* TabPage_3;
+ Q3GroupBox* Frequency3groupBox;
+ QCheckBox* Fix3CheckBox;
+ QLabel* CoarseRatio3Label;
+ QLabel* FineRatio3Label;
+ QLabel* Freq3Label;
+ QSpinBox* CoarseRatio3SpinBox;
+ QSpinBox* FineRatio3SpinBox;
+ QSpinBox* Freq3SpinBox;
+ Q3GroupBox* Env3GroupBox;
+ QLabel* RR3Label;
+ QLabel* D2R3Label;
+ QLabel* D1L3Label;
+ QLabel* D1R3Label;
+ QLabel* AR3Label;
+ QSlider* AR3Slider;
+ QSlider* D1R3Slider;
+ QSlider* D1L3Slider;
+ QSlider* D2R3Slider;
+ QSlider* RR3Slider;
+ QSpinBox* D1R3SpinBox;
+ QSpinBox* D1L3SpinBox;
+ QSpinBox* D2R3SpinBox;
+ QSpinBox* RR3SpinBox;
+ QSpinBox* AR3SpinBox;
+ Q3GroupBox* Scaling3GroupBox;
+ QLabel* LS3Label;
+ QLabel* RS3Label;
+ QSlider* LS3Slider;
+ QSlider* RS3Slider;
+ QSpinBox* LS3SpinBox;
+ QSpinBox* RS3SpinBox;
+ Q3GroupBox* Vol3groupBox;
+ QSlider* Vol3Slider;
+ QSpinBox* Vol3SpinBox;
+ Q3GroupBox* sensitivity3groupBox;
+ QLabel* EGS3Label;
+ QLabel* KVS3Label;
+ QCheckBox* AME3CheckBox;
+ QSlider* KVS3Slider;
+ QSlider* EBS3Slider;
+ QSpinBox* EBS3SpinBox;
+ QSpinBox* KVS3SpinBox;
+ Q3GroupBox* DetWaveEGS3GroupBox;
+ QComboBox* WaveForm3ComboBox;
+ QComboBox* EGS3comboBox;
+ QLabel* DET3Label;
+ QSlider* DET3Slider;
+ QSpinBox* DET3SpinBox;
+ QWidget* TabPage_4;
+ Q3GroupBox* Frequency4groupBox;
+ QLabel* CoarseRatio4Label;
+ QLabel* FineRatio4Label;
+ QLabel* Freq4Label;
+ QCheckBox* Fix4CheckBox;
+ QSpinBox* FineRatio4SpinBox;
+ QSpinBox* Freq4SpinBox;
+ QSpinBox* CoarseRatio4SpinBox;
+ Q3GroupBox* Scaling4GroupBox;
+ QLabel* LS4Label;
+ QLabel* RS4Label;
+ QSlider* LS4Slider;
+ QSlider* RS4Slider;
+ QSpinBox* RS4SpinBox;
+ QSpinBox* LS4SpinBox;
+ Q3GroupBox* Env4GroupBox;
+ QSlider* AR4Slider;
+ QLabel* AR4Label;
+ QLabel* RR4Label;
+ QLabel* D2R4Label;
+ QSlider* D2R4Slider;
+ QSlider* D1L4Slider;
+ QLabel* D1L4Label;
+ QLabel* D1R4Label;
+ QSlider* D1R4Slider;
+ QSlider* RR4Slider;
+ QSpinBox* D1R4SpinBox;
+ QSpinBox* D1L4SpinBox;
+ QSpinBox* D2R4SpinBox;
+ QSpinBox* RR4SpinBox;
+ QSpinBox* AR4SpinBox;
+ Q3GroupBox* Vol4groupBox;
+ QSlider* Vol4Slider;
+ QSpinBox* Vol4SpinBox;
+ Q3GroupBox* sensitivity4groupBox;
+ QLabel* EGS4Label;
+ QLabel* KVS4Label;
+ QCheckBox* AME4CheckBox;
+ QSlider* KVS4Slider;
+ QSlider* EBS4Slider;
+ QSpinBox* KVS4SpinBox;
+ QSpinBox* EBS4SpinBox;
+ Q3GroupBox* DetWaveEGS4GroupBox;
+ QSlider* DET4Slider;
+ QLabel* DET4Label;
+ QComboBox* WaveForm4ComboBox;
+ QComboBox* EGS4comboBox;
+ QSpinBox* DET4SpinBox;
+
+protected:
+
+protected slots:
+ virtual void languageChange();
+
+private:
+ QPixmap image0;
+
+};
+
+#endif // DEICSONZEGUIBASE_H
diff --git a/muse2/synti/deicsonze2/deicsonzeplugin.cpp b/muse2/synti/deicsonze2/deicsonzeplugin.cpp
new file mode 100644
index 00000000..581dad38
--- /dev/null
+++ b/muse2/synti/deicsonze2/deicsonzeplugin.cpp
@@ -0,0 +1,502 @@
+//===========================================================================
+//
+// 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 "muse/plugin.h"
+//#include "plugingui.h"
+#include "muse/ctrl.h"
+#include "muse/fastlog.h"
+#include "muse/midi.h"
+//Added by qt3to4:
+#include <Q3GridLayout>
+#include <QLabel>
+//#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, Q3GridLayout* 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,
+ Q3GridLayout* 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, Q3GridLayout* 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());
+ Q3GridLayout* superLayout = new Q3GridLayout(parametersReverbGroupBox);
+ parametersReverbGroupBox->setLayout(superLayout);
+ //build super widget
+ if(_reverbSuperWidget) delete(_reverbSuperWidget);
+ _reverbSuperWidget = new QWidget(parametersReverbGroupBox);
+ superLayout->addWidget(_reverbSuperWidget);
+ //build grid
+ Q3GridLayout* grid = new Q3GridLayout(_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());
+ Q3GridLayout* superLayout = new Q3GridLayout(parametersChorusGroupBox);
+ parametersChorusGroupBox->setLayout(superLayout);
+ //build super widget
+ if(_chorusSuperWidget) delete(_chorusSuperWidget);
+ _chorusSuperWidget = new QWidget(parametersChorusGroupBox);
+ superLayout->addWidget(_chorusSuperWidget);
+ //build grid
+ Q3GridLayout* grid = new Q3GridLayout(_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/muse2/synti/deicsonze2/deicsonzeplugin.h b/muse2/synti/deicsonze2/deicsonzeplugin.h
new file mode 100644
index 00000000..d9527e23
--- /dev/null
+++ b/muse2/synti/deicsonze2/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/muse2/synti/deicsonze2/deicsonzepreset.cpp b/muse2/synti/deicsonze2/deicsonzepreset.cpp
new file mode 100644
index 00000000..007b0d06
--- /dev/null
+++ b/muse2/synti/deicsonze2/deicsonzepreset.cpp
@@ -0,0 +1,1202 @@
+//===========================================================================
+//
+// 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>
+
+#define SET_LEVEL 1
+#define CAT_LEVEL 2
+#define SUB_LEVEL 3
+#define PRE_LEVEL 4
+
+//-----------------------------------------------------------
+// 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().ascii();
+ 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(Xml* xml, bool onlyUsed) {
+ xml->tag(0, "deicsOnzeSet version=\"1.0\"");
+ xml->strTag(SET_LEVEL, "setName", _setName.c_str());
+ for(std::vector<Category*>::iterator i = _categoryVector.begin();
+ i != _categoryVector.end(); i++) (*i)->writeCategory(xml, onlyUsed);
+ xml->etag(0, "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().ascii();
+ 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(Xml* xml, bool onlyUsed) {
+ if((!onlyUsed || _isUsed)) {
+ xml->tag(SET_LEVEL, "deicsOnzeCategory version=\"1.0\"");
+ xml->strTag(CAT_LEVEL, "categoryName", _categoryName.c_str());
+ xml->intTag(CAT_LEVEL, "hbank", _hbank);
+ for(std::vector<Subcategory*>::iterator i=_subcategoryVector.begin();
+ i!=_subcategoryVector.end(); i++)
+ (*i)->writeSubcategory(xml, onlyUsed);
+ xml->etag(SET_LEVEL, "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().ascii();
+ 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(Xml* xml, bool onlyUsed) {
+ if((!onlyUsed || _isUsed)) {
+ xml->tag(CAT_LEVEL, "deicsOnzeSubcategory version=\"1.0\"");
+ xml->strTag(SUB_LEVEL, "subcategoryName", _subcategoryName.c_str());
+ xml->intTag(SUB_LEVEL, "lbank", _lbank);
+ for(std::vector<Preset*>::iterator i=_presetVector.begin();
+ i!=_presetVector.end(); i++) (*i)->writePreset(xml, onlyUsed);
+ xml->etag(CAT_LEVEL, "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().ascii();
+ //prog
+ else if(presetEl.tagName()=="prog")
+ prog=presetEl.text().toInt();
+ presetNode = presetNode.nextSibling();
+ }
+}
+
+//---------------------------------------------------------
+// witePreset
+//---------------------------------------------------------
+void Preset::writePreset(Xml* xml, bool onlyUsed) {
+ char s[MAXCHARTAG];
+ if((!onlyUsed || _isUsed)) {
+ xml->tag(SUB_LEVEL, "deicsOnzePreset version=\"1.0\"");
+
+ //algorithm
+ xml->strTag(PRE_LEVEL, ALGSTR, (algorithm==FIRST? "FIRST":
+ (algorithm==SECOND? "SECOND":
+ (algorithm==THIRD? "THIRD":
+ (algorithm==FOURTH? "FOURTH":
+ (algorithm==FIFTH? "FIFTH":
+ (algorithm==SIXTH? "SIXTH":
+ (algorithm==SEVENTH? "SEVENTH":
+ "EIGHTH"))))))));
+ //feedback
+ xml->uintTag(PRE_LEVEL, 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->tag(PRE_LEVEL, "lfo");
+ xml->strTag(PRE_LEVEL + 1, WAVESTR,
+ (lfo.wave==SAWUP? "SAWUP":
+ (lfo.wave==SQUARE? "SQUARE":
+ (lfo.wave==TRIANGL? "TRIANGL":"SHOLD"))));
+ xml->uintTag(PRE_LEVEL + 1, SPEEDSTR, lfo.speed);
+ xml->uintTag(PRE_LEVEL + 1, DELAYSTR, lfo.delay);
+ xml->uintTag(PRE_LEVEL + 1, PMODDEPTHSTR, lfo.pModDepth);
+ xml->uintTag(PRE_LEVEL + 1, AMODDEPTHSTR, lfo.aModDepth);
+ xml->strTag(PRE_LEVEL + 1, SYNCSTR, (lfo.sync==true? "on":"off"));
+ xml->etag(PRE_LEVEL, "lfo");
+ //sensitivity
+ xml->tag(PRE_LEVEL, "sensitivity");
+ xml->uintTag(PRE_LEVEL + 1, PMODSENSSTR, sensitivity.pitch);
+ xml->uintTag(PRE_LEVEL + 1, AMSSTR, sensitivity.amplitude);
+ for(int i=0; i<NBROP; i++) {
+ sprintf(s, AMESTR "%d",i+1);
+ xml->strTag(PRE_LEVEL + 1, s,
+ (sensitivity.ampOn[i]==true? "on":"off"));
+ }
+ for(int i=0; i<NBROP; i++) {
+ sprintf(s,EBSSTR "%d",i+1);
+ xml->uintTag(PRE_LEVEL + 1, s, sensitivity.egBias[i]);
+ }
+ for(int i=0; i<NBROP; i++) {
+ sprintf(s, KVSSTR "%d",i+1);
+ xml->uintTag(PRE_LEVEL + 1, s, sensitivity.keyVelocity[i]);
+ }
+ xml->etag(PRE_LEVEL, "sensitivity");
+ //frequency
+ xml->tag(PRE_LEVEL, "frequency");
+ for(int i=0; i<NBROP; i++) {
+ sprintf(s, RATIOSTR "%d",i+1);
+ xml->doubleTag(PRE_LEVEL + 1, s, frequency[i].ratio);
+ }
+ for(int i=0; i<NBROP; i++) {
+ sprintf(s, FIXSTR "%d",i+1);
+ xml->strTag(PRE_LEVEL + 1, s, (frequency[i].isFix==true? "yes":"no"));
+ }
+ for(int i=0; i<NBROP; i++) {
+ sprintf(s, FIXRANGESTR "%d",i+1);
+ xml->doubleTag(PRE_LEVEL + 1, s, frequency[i].freq);
+ }
+ xml->etag(PRE_LEVEL, "frequency");
+ //oscWave
+ for(int i=0; i<NBROP; i++) {
+ sprintf(s, OSWSTR "%d",i+1);
+ xml->strTag(PRE_LEVEL, s, (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->intTag(PRE_LEVEL, s, detune[i]);
+ }
+ //eg
+ xml->tag(PRE_LEVEL, "eg");
+ for(int i=0; i<NBROP; i++) {
+ sprintf(s, ARSTR "%d",i+1);
+ xml->uintTag(PRE_LEVEL + 1, s, eg[i].ar);
+ }
+ for(int i=0; i<NBROP; i++) {
+ sprintf(s, D1RSTR "%d",i+1);
+ xml->uintTag(PRE_LEVEL + 1, s, eg[i].d1r);
+ }
+ for(int i=0; i<NBROP; i++) {
+ sprintf(s, D1LSTR "%d",i+1);
+ xml->uintTag(PRE_LEVEL + 1, s, eg[i].d1l);
+ }
+ for(int i=0; i<NBROP; i++) {
+ sprintf(s, D2RSTR "%d",i+1);
+ xml->uintTag(PRE_LEVEL + 1, s, eg[i].d2r);
+ }
+ for(int i=0; i<NBROP; i++) {
+ sprintf(s, RRSTR "%d",i+1);
+ xml->uintTag(PRE_LEVEL + 1, s, eg[i].rr);
+ }
+ for(int i=0; i<NBROP; i++) {
+ sprintf(s, SHFTSTR "%d",i+1);
+ xml->strTag(PRE_LEVEL + 1, s, (eg[i].egShift==VOF?"VOF":
+ (eg[i].egShift==V48?"V48":
+ (eg[i].egShift==V24?"V24":"V12"))));
+ }
+ xml->etag(PRE_LEVEL, "eg");
+ //pitchEg
+ xml->tag(PRE_LEVEL, "pitchEg");
+ xml->uintTag(PRE_LEVEL + 1, PR1STR,pitchEg.pr1);
+ xml->uintTag(PRE_LEVEL + 1, PR2STR,pitchEg.pr2);
+ xml->uintTag(PRE_LEVEL + 1, PR3STR,pitchEg.pr3);
+ xml->uintTag(PRE_LEVEL + 1, PL1STR,pitchEg.pl1);
+ xml->uintTag(PRE_LEVEL + 1, PL2STR,pitchEg.pl2);
+ xml->uintTag(PRE_LEVEL + 1, PL3STR,pitchEg.pl3);
+ xml->etag(PRE_LEVEL, "pitchEg");
+ //outLevel
+ for(int i=0; i<NBROP; i++) {
+ sprintf(s, OUTSTR "%d",i+1);
+ xml->uintTag(PRE_LEVEL, s, outLevel[i]);
+ }
+ //scaling
+ xml->tag(PRE_LEVEL, "scaling");
+ for(int i=0; i<NBROP; i++) {
+ sprintf(s, RSSTR "%d",i+1);
+ xml->uintTag(PRE_LEVEL + 1, s, scaling.rate[i]);
+ }
+ for(int i=0; i<NBROP; i++) {
+ sprintf(s, LSSTR "%d",i+1);
+ xml->uintTag(PRE_LEVEL + 1, s, scaling.level[i]);
+ }
+ xml->etag(PRE_LEVEL, "scaling");
+ //function
+ xml->tag(PRE_LEVEL, "function");
+ xml->intTag(PRE_LEVEL + 1, TRANSPOSESTR, function.transpose);
+ xml->strTag(PRE_LEVEL + 1, POLYMODESTR,
+ (function.mode==POLY? "POLY":"MONO"));
+ xml->uintTag(PRE_LEVEL + 1, PBENDRANGESTR, function.pBendRange);
+ xml->strTag(PRE_LEVEL + 1, PORTAMODESTR,
+ (function.portamento==FINGER? "FINGER":"FULL"));
+ xml->uintTag(PRE_LEVEL + 1, PORTATIMESTR, function.portamentoTime);
+ xml->strTag(PRE_LEVEL + 1, FSWSTR, (function.footSw==POR? "POR":"SUS"));
+ xml->uintTag(PRE_LEVEL + 1, FCVOLUMESTR, function.fcVolume);
+ xml->uintTag(PRE_LEVEL + 1, FCPITCHSTR, function.fcPitch);
+ xml->uintTag(PRE_LEVEL + 1, FCAMPLITUDESTR, function.fcAmplitude);
+ xml->uintTag(PRE_LEVEL + 1, MWPITCHSTR, function.mwPitch);
+ xml->uintTag(PRE_LEVEL + 1, MWAMPLITUDESTR, function.mwAmplitude);
+ xml->uintTag(PRE_LEVEL + 1, BCPITCHSTR, function.bcPitch);
+ xml->uintTag(PRE_LEVEL + 1, BCAMPLITUDESTR, function.bcAmplitude);
+ xml->intTag(PRE_LEVEL + 1, BCPITCHBIASSTR, function.bcPitchBias);
+ xml->uintTag(PRE_LEVEL + 1, BCEGBIASSTR, function.bcEgBias);
+ xml->uintTag(PRE_LEVEL + 1, ATPITCHSTR, function.atPitch);
+ xml->uintTag(PRE_LEVEL + 1, ATAMPLITUDESTR, function.atAmplitude);
+ xml->intTag(PRE_LEVEL + 1, ATPITCHBIASSTR, function.atPitchBias);
+ xml->uintTag(PRE_LEVEL + 1, ATEGBIASSTR, function.atEgBias);
+ xml->intTag(PRE_LEVEL + 1, REVERBRATESTR, function.reverbRate);
+ xml->etag(PRE_LEVEL, "function");
+ //globalDetune
+ //xml->tag("globalDetune", globalDetune);
+ //preset name
+ xml->strTag(PRE_LEVEL, "name", name.c_str());
+ //bank prog
+ xml->intTag(PRE_LEVEL, "prog", prog);
+
+ xml->etag(SUB_LEVEL, "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/muse2/synti/deicsonze2/deicsonzepreset.h b/muse2/synti/deicsonze2/deicsonzepreset.h
new file mode 100644
index 00000000..3c005c8d
--- /dev/null
+++ b/muse2/synti/deicsonze2/deicsonzepreset.h
@@ -0,0 +1,567 @@
+//===========================================================================
+//
+// 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 <vector>
+
+#include <qdom.h>
+
+#include "muse/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(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(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(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(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/muse2/synti/deicsonze2/pics/SHold.fig b/muse2/synti/deicsonze2/pics/SHold.fig
new file mode 100644
index 00000000..2e1d2431
--- /dev/null
+++ b/muse2/synti/deicsonze2/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/muse2/synti/deicsonze2/pics/SHold.png b/muse2/synti/deicsonze2/pics/SHold.png
new file mode 100644
index 00000000..b500ca67
--- /dev/null
+++ b/muse2/synti/deicsonze2/pics/SHold.png
Binary files differ
diff --git a/muse2/synti/deicsonze2/pics/algo1.fig b/muse2/synti/deicsonze2/pics/algo1.fig
new file mode 100644
index 00000000..f90714b7
--- /dev/null
+++ b/muse2/synti/deicsonze2/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/muse2/synti/deicsonze2/pics/algo1.png b/muse2/synti/deicsonze2/pics/algo1.png
new file mode 100644
index 00000000..1347af71
--- /dev/null
+++ b/muse2/synti/deicsonze2/pics/algo1.png
Binary files differ
diff --git a/muse2/synti/deicsonze2/pics/algo2.fig b/muse2/synti/deicsonze2/pics/algo2.fig
new file mode 100644
index 00000000..d0dbea38
--- /dev/null
+++ b/muse2/synti/deicsonze2/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/muse2/synti/deicsonze2/pics/algo2.png b/muse2/synti/deicsonze2/pics/algo2.png
new file mode 100644
index 00000000..7d623227
--- /dev/null
+++ b/muse2/synti/deicsonze2/pics/algo2.png
Binary files differ
diff --git a/muse2/synti/deicsonze2/pics/algo3.fig b/muse2/synti/deicsonze2/pics/algo3.fig
new file mode 100644
index 00000000..9efaa53f
--- /dev/null
+++ b/muse2/synti/deicsonze2/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/muse2/synti/deicsonze2/pics/algo3.png b/muse2/synti/deicsonze2/pics/algo3.png
new file mode 100644
index 00000000..b091cc16
--- /dev/null
+++ b/muse2/synti/deicsonze2/pics/algo3.png
Binary files differ
diff --git a/muse2/synti/deicsonze2/pics/algo4.fig b/muse2/synti/deicsonze2/pics/algo4.fig
new file mode 100644
index 00000000..26d12f54
--- /dev/null
+++ b/muse2/synti/deicsonze2/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/muse2/synti/deicsonze2/pics/algo4.png b/muse2/synti/deicsonze2/pics/algo4.png
new file mode 100644
index 00000000..de0e6d26
--- /dev/null
+++ b/muse2/synti/deicsonze2/pics/algo4.png
Binary files differ
diff --git a/muse2/synti/deicsonze2/pics/algo5.fig b/muse2/synti/deicsonze2/pics/algo5.fig
new file mode 100644
index 00000000..63731eba
--- /dev/null
+++ b/muse2/synti/deicsonze2/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/muse2/synti/deicsonze2/pics/algo5.png b/muse2/synti/deicsonze2/pics/algo5.png
new file mode 100644
index 00000000..2e41a1db
--- /dev/null
+++ b/muse2/synti/deicsonze2/pics/algo5.png
Binary files differ
diff --git a/muse2/synti/deicsonze2/pics/algo6.fig b/muse2/synti/deicsonze2/pics/algo6.fig
new file mode 100644
index 00000000..4e23b8fa
--- /dev/null
+++ b/muse2/synti/deicsonze2/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/muse2/synti/deicsonze2/pics/algo6.png b/muse2/synti/deicsonze2/pics/algo6.png
new file mode 100644
index 00000000..80de4a94
--- /dev/null
+++ b/muse2/synti/deicsonze2/pics/algo6.png
Binary files differ
diff --git a/muse2/synti/deicsonze2/pics/algo7.fig b/muse2/synti/deicsonze2/pics/algo7.fig
new file mode 100644
index 00000000..6d0fe501
--- /dev/null
+++ b/muse2/synti/deicsonze2/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/muse2/synti/deicsonze2/pics/algo7.png b/muse2/synti/deicsonze2/pics/algo7.png
new file mode 100644
index 00000000..0cdda327
--- /dev/null
+++ b/muse2/synti/deicsonze2/pics/algo7.png
Binary files differ
diff --git a/muse2/synti/deicsonze2/pics/algo8.fig b/muse2/synti/deicsonze2/pics/algo8.fig
new file mode 100644
index 00000000..8bf9dcc9
--- /dev/null
+++ b/muse2/synti/deicsonze2/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/muse2/synti/deicsonze2/pics/algo8.png b/muse2/synti/deicsonze2/pics/algo8.png
new file mode 100644
index 00000000..17ca60d7
--- /dev/null
+++ b/muse2/synti/deicsonze2/pics/algo8.png
Binary files differ
diff --git a/muse2/synti/deicsonze2/pics/sawUp.fig b/muse2/synti/deicsonze2/pics/sawUp.fig
new file mode 100644
index 00000000..2c701818
--- /dev/null
+++ b/muse2/synti/deicsonze2/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/muse2/synti/deicsonze2/pics/sawUp.png b/muse2/synti/deicsonze2/pics/sawUp.png
new file mode 100644
index 00000000..d0541858
--- /dev/null
+++ b/muse2/synti/deicsonze2/pics/sawUp.png
Binary files differ
diff --git a/muse2/synti/deicsonze2/pics/square.fig b/muse2/synti/deicsonze2/pics/square.fig
new file mode 100644
index 00000000..0adb802e
--- /dev/null
+++ b/muse2/synti/deicsonze2/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/muse2/synti/deicsonze2/pics/square.png b/muse2/synti/deicsonze2/pics/square.png
new file mode 100644
index 00000000..f2293267
--- /dev/null
+++ b/muse2/synti/deicsonze2/pics/square.png
Binary files differ
diff --git a/muse2/synti/deicsonze2/pics/triangl.fig b/muse2/synti/deicsonze2/pics/triangl.fig
new file mode 100644
index 00000000..95970995
--- /dev/null
+++ b/muse2/synti/deicsonze2/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/muse2/synti/deicsonze2/pics/triangl.png b/muse2/synti/deicsonze2/pics/triangl.png
new file mode 100644
index 00000000..c0937be9
--- /dev/null
+++ b/muse2/synti/deicsonze2/pics/triangl.png
Binary files differ
diff --git a/muse2/synti/deicsonze2/pics/wave1.fig b/muse2/synti/deicsonze2/pics/wave1.fig
new file mode 100644
index 00000000..9cf6f065
--- /dev/null
+++ b/muse2/synti/deicsonze2/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/muse2/synti/deicsonze2/pics/wave1.gnuplot b/muse2/synti/deicsonze2/pics/wave1.gnuplot
new file mode 100644
index 00000000..ff4aa2ed
--- /dev/null
+++ b/muse2/synti/deicsonze2/pics/wave1.gnuplot
@@ -0,0 +1,2 @@
+set terminal fig
+plot [0:4*pi] sin(x)
diff --git a/muse2/synti/deicsonze2/pics/wave1.png b/muse2/synti/deicsonze2/pics/wave1.png
new file mode 100644
index 00000000..009aa7f7
--- /dev/null
+++ b/muse2/synti/deicsonze2/pics/wave1.png
Binary files differ
diff --git a/muse2/synti/deicsonze2/pics/wave2.fig b/muse2/synti/deicsonze2/pics/wave2.fig
new file mode 100644
index 00000000..2da89e13
--- /dev/null
+++ b/muse2/synti/deicsonze2/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/muse2/synti/deicsonze2/pics/wave2.gnuplot b/muse2/synti/deicsonze2/pics/wave2.gnuplot
new file mode 100644
index 00000000..01e57a9b
--- /dev/null
+++ b/muse2/synti/deicsonze2/pics/wave2.gnuplot
@@ -0,0 +1,2 @@
+set terminal fig
+plot [0:4*pi] sin(x)*abs(sin(x))
diff --git a/muse2/synti/deicsonze2/pics/wave2.png b/muse2/synti/deicsonze2/pics/wave2.png
new file mode 100644
index 00000000..5f4daaee
--- /dev/null
+++ b/muse2/synti/deicsonze2/pics/wave2.png
Binary files differ
diff --git a/muse2/synti/deicsonze2/pics/wave3.fig b/muse2/synti/deicsonze2/pics/wave3.fig
new file mode 100644
index 00000000..5051c2ef
--- /dev/null
+++ b/muse2/synti/deicsonze2/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/muse2/synti/deicsonze2/pics/wave3.gnuplot b/muse2/synti/deicsonze2/pics/wave3.gnuplot
new file mode 100644
index 00000000..e97c06b8
--- /dev/null
+++ b/muse2/synti/deicsonze2/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/muse2/synti/deicsonze2/pics/wave3.png b/muse2/synti/deicsonze2/pics/wave3.png
new file mode 100644
index 00000000..6e0ada6d
--- /dev/null
+++ b/muse2/synti/deicsonze2/pics/wave3.png
Binary files differ
diff --git a/muse2/synti/deicsonze2/pics/wave4.fig b/muse2/synti/deicsonze2/pics/wave4.fig
new file mode 100644
index 00000000..cb54e0e6
--- /dev/null
+++ b/muse2/synti/deicsonze2/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/muse2/synti/deicsonze2/pics/wave4.gnuplot b/muse2/synti/deicsonze2/pics/wave4.gnuplot
new file mode 100644
index 00000000..bf7b43c9
--- /dev/null
+++ b/muse2/synti/deicsonze2/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/muse2/synti/deicsonze2/pics/wave4.png b/muse2/synti/deicsonze2/pics/wave4.png
new file mode 100644
index 00000000..f104e06c
--- /dev/null
+++ b/muse2/synti/deicsonze2/pics/wave4.png
Binary files differ
diff --git a/muse2/synti/deicsonze2/pics/wave5.fig b/muse2/synti/deicsonze2/pics/wave5.fig
new file mode 100644
index 00000000..5d60ea7e
--- /dev/null
+++ b/muse2/synti/deicsonze2/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/muse2/synti/deicsonze2/pics/wave5.gnuplot b/muse2/synti/deicsonze2/pics/wave5.gnuplot
new file mode 100644
index 00000000..066cb3d4
--- /dev/null
+++ b/muse2/synti/deicsonze2/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/muse2/synti/deicsonze2/pics/wave5.png b/muse2/synti/deicsonze2/pics/wave5.png
new file mode 100644
index 00000000..003af248
--- /dev/null
+++ b/muse2/synti/deicsonze2/pics/wave5.png
Binary files differ
diff --git a/muse2/synti/deicsonze2/pics/wave6.fig b/muse2/synti/deicsonze2/pics/wave6.fig
new file mode 100644
index 00000000..5bad4b67
--- /dev/null
+++ b/muse2/synti/deicsonze2/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/muse2/synti/deicsonze2/pics/wave6.gnuplot b/muse2/synti/deicsonze2/pics/wave6.gnuplot
new file mode 100644
index 00000000..e1eed2e5
--- /dev/null
+++ b/muse2/synti/deicsonze2/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/muse2/synti/deicsonze2/pics/wave6.png b/muse2/synti/deicsonze2/pics/wave6.png
new file mode 100644
index 00000000..08e717ce
--- /dev/null
+++ b/muse2/synti/deicsonze2/pics/wave6.png
Binary files differ
diff --git a/muse2/synti/deicsonze2/pics/wave7.fig b/muse2/synti/deicsonze2/pics/wave7.fig
new file mode 100644
index 00000000..b5ad0ea2
--- /dev/null
+++ b/muse2/synti/deicsonze2/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/muse2/synti/deicsonze2/pics/wave7.gnuplot b/muse2/synti/deicsonze2/pics/wave7.gnuplot
new file mode 100644
index 00000000..294b2423
--- /dev/null
+++ b/muse2/synti/deicsonze2/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/muse2/synti/deicsonze2/pics/wave7.png b/muse2/synti/deicsonze2/pics/wave7.png
new file mode 100644
index 00000000..44e5928f
--- /dev/null
+++ b/muse2/synti/deicsonze2/pics/wave7.png
Binary files differ
diff --git a/muse2/synti/deicsonze2/pics/wave8.fig b/muse2/synti/deicsonze2/pics/wave8.fig
new file mode 100644
index 00000000..017deb5b
--- /dev/null
+++ b/muse2/synti/deicsonze2/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/muse2/synti/deicsonze2/pics/wave8.gnuplot b/muse2/synti/deicsonze2/pics/wave8.gnuplot
new file mode 100644
index 00000000..e86332c7
--- /dev/null
+++ b/muse2/synti/deicsonze2/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/muse2/synti/deicsonze2/pics/wave8.png b/muse2/synti/deicsonze2/pics/wave8.png
new file mode 100644
index 00000000..6df0dda5
--- /dev/null
+++ b/muse2/synti/deicsonze2/pics/wave8.png
Binary files differ
diff --git a/muse2/synti/fluid/Makefile.am b/muse2/synti/fluid/Makefile.am
new file mode 100644
index 00000000..7e641a85
--- /dev/null
+++ b/muse2/synti/fluid/Makefile.am
@@ -0,0 +1,16 @@
+include $(top_srcdir)/common.am
+include $(top_srcdir)/synti/synti-install.am
+
+AM_CXXFLAGS += -fPIC -O3 -ffast-math -fno-exceptions -fno-rtti
+
+synthi_LTLIBRARIES = fluid.la
+
+fluid_la_SOURCES = fluid.cpp fluid.h \
+ fluidgui.cpp fluidgui.h \
+ fluidguibase.ui
+
+nodist_fluid_la_SOURCES = moc_fluidgui.cpp
+
+fluid_la_LIBADD = ../libsynti/libsynti.la -lfluidsynth
+fluid_la_LDFLAGS = -module -avoid-version
+
diff --git a/muse2/synti/fluid/Makefile.in b/muse2/synti/fluid/Makefile.in
new file mode 100644
index 00000000..a9f97135
--- /dev/null
+++ b/muse2/synti/fluid/Makefile.in
@@ -0,0 +1,649 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
+ $(top_srcdir)/common.am $(top_srcdir)/synti/synti-install.am
+subdir = synti/fluid
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal-include.m4 \
+ $(top_srcdir)/m4/alsa.m4 $(top_srcdir)/m4/docbook.m4 \
+ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
+ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
+ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__installdirs = "$(DESTDIR)$(synthidir)"
+LTLIBRARIES = $(synthi_LTLIBRARIES)
+fluid_la_DEPENDENCIES = ../libsynti/libsynti.la
+am_fluid_la_OBJECTS = fluid.lo fluidgui.lo fluidguibase.lo
+nodist_fluid_la_OBJECTS = moc_fluidgui.lo
+fluid_la_OBJECTS = $(am_fluid_la_OBJECTS) $(nodist_fluid_la_OBJECTS)
+fluid_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \
+ $(CXXFLAGS) $(fluid_la_LDFLAGS) $(LDFLAGS) -o $@
+DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
+depcomp = $(SHELL) $(top_srcdir)/depcomp
+am__depfiles_maybe = depfiles
+am__mv = mv -f
+CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
+LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
+CXXLD = $(CXX)
+CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \
+ $(LDFLAGS) -o $@
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
+ $(LDFLAGS) -o $@
+SOURCES = $(fluid_la_SOURCES) $(nodist_fluid_la_SOURCES)
+DIST_SOURCES = $(fluid_la_SOURCES)
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ALSA_CFLAGS = @ALSA_CFLAGS@
+ALSA_LIBS = @ALSA_LIBS@
+AMTAR = @AMTAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DOCBOOKSTYLE = @DOCBOOKSTYLE@
+DOCBOOKTARGETS = @DOCBOOKTARGETS@
+DOT = @DOT@
+DOTPATH = @DOTPATH@
+DOXYGEN = @DOXYGEN@
+DOXYGEN_TREEVIEW = @DOXYGEN_TREEVIEW@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+FLUIDSYNTHDIRS = @FLUIDSYNTHDIRS@
+FST_CFLAGS = @FST_CFLAGS@
+FST_LIBS = @FST_LIBS@
+Fluidsynth_CFLAGS = @Fluidsynth_CFLAGS@
+Fluidsynth_LIBS = @Fluidsynth_LIBS@
+GIVERTCAP = @GIVERTCAP@
+GREP = @GREP@
+HAVEDOT = @HAVEDOT@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JACK_CFLAGS = @JACK_CFLAGS@
+JACK_LIBS = @JACK_LIBS@
+JADE = @JADE@
+LASH_CFLAGS = @LASH_CFLAGS@
+LASH_LIBS = @LASH_LIBS@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LO_CFLAGS = @LO_CFLAGS@
+LO_LIBS = @LO_LIBS@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+MUSECXXFLAGS = @MUSECXXFLAGS@
+NM = @NM@
+NMEDIT = @NMEDIT@
+NSGMLS = @NSGMLS@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PCH = @PCH@
+PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+PYTHON = @PYTHON@
+PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
+PYTHON_INCLUDES = @PYTHON_INCLUDES@
+PYTHON_LIB = @PYTHON_LIB@
+PYTHON_PLATFORM = @PYTHON_PLATFORM@
+PYTHON_PREFIX = @PYTHON_PREFIX@
+PYTHON_VERSION = @PYTHON_VERSION@
+QTDIR_BIN = @QTDIR_BIN@
+QTDIR_INC = @QTDIR_INC@
+QT_LIBS = @QT_LIBS@
+RANLIB = @RANLIB@
+SAMPLERATE_CFLAGS = @SAMPLERATE_CFLAGS@
+SAMPLERATE_LIBS = @SAMPLERATE_LIBS@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SNDFILE_CFLAGS = @SNDFILE_CFLAGS@
+SNDFILE_LIBS = @SNDFILE_LIBS@
+STRIP = @STRIP@
+SUIDBUILD = @SUIDBUILD@
+SUIDINSTALL = @SUIDINSTALL@
+USE_SSE = @USE_SSE@
+UUID_CFLAGS = @UUID_CFLAGS@
+UUID_LIBS = @UUID_LIBS@
+VERSION = @VERSION@
+XMKMF = @XMKMF@
+X_CFLAGS = @X_CFLAGS@
+X_EXTRA_LIBS = @X_EXTRA_LIBS@
+X_LIBS = @X_LIBS@
+X_PRE_LIBS = @X_PRE_LIBS@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+have_docbook = @have_docbook@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+lt_ECHO = @lt_ECHO@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+pkgpyexecdir = @pkgpyexecdir@
+pkgpythondir = @pkgpythondir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+pyexecdir = @pyexecdir@
+pythondir = @pythondir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+synth_fluid = @synth_fluid@
+synth_fluidsynth = @synth_fluidsynth@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+AM_CXXFLAGS = $(MUSECXXFLAGS) -I.. -I$(top_srcdir)/synti \
+ -I$(top_srcdir)/muse/widgets -DQT_SHARED -DQT_THREAD_SUPPORT \
+ -DQT_PLUGIN $(QTDIR_INC) -DQT3_SUPPORT -fPIC -O3 -ffast-math \
+ -fno-exceptions -fno-rtti
+AM_CPPFLAGS =
+MOC = $(QTDIR_BIN)/moc
+#UIC = $(QTDIR_BIN)/uic3
+UIC = /usr/bin/uic3
+UIFILES = $(wildcard *.ui)
+MOCFILES = $(shell for h in $(filter %.h,$(SOURCES)); do \
+ if grep -q Q_OBJECT $$h; then \
+ echo $$h | sed "s/\(.*\)\.h/moc_\1.cpp/"; \
+ fi; \
+ done)
+
+BUILT_SOURCES = $(MOCFILES) $(UIFILES:%.ui=%.h)
+MOSTLYCLEANFILES = $(MOCFILES) $(UIFILES:%.ui=%.h)
+SUFFIXES = .ui .h.gch
+synthidir = $(pkglibdir)/synthi
+synthi_LTLIBRARIES = fluid.la
+fluid_la_SOURCES = fluid.cpp fluid.h \
+ fluidgui.cpp fluidgui.h \
+ fluidguibase.ui
+
+nodist_fluid_la_SOURCES = moc_fluidgui.cpp
+fluid_la_LIBADD = ../libsynti/libsynti.la -lfluidsynth
+fluid_la_LDFLAGS = -module -avoid-version
+all: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) all-am
+
+.SUFFIXES:
+.SUFFIXES: .ui .h.gch .cpp .lo .o .obj
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/common.am $(top_srcdir)/synti/synti-install.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu synti/fluid/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu synti/fluid/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+install-synthiLTLIBRARIES: $(synthi_LTLIBRARIES)
+ @$(NORMAL_INSTALL)
+ test -z "$(synthidir)" || $(MKDIR_P) "$(DESTDIR)$(synthidir)"
+ @list='$(synthi_LTLIBRARIES)'; test -n "$(synthidir)" || list=; \
+ list2=; for p in $$list; do \
+ if test -f $$p; then \
+ list2="$$list2 $$p"; \
+ else :; fi; \
+ done; \
+ test -z "$$list2" || { \
+ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(synthidir)'"; \
+ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(synthidir)"; \
+ }
+
+uninstall-synthiLTLIBRARIES:
+ @$(NORMAL_UNINSTALL)
+ @list='$(synthi_LTLIBRARIES)'; test -n "$(synthidir)" || list=; \
+ for p in $$list; do \
+ $(am__strip_dir) \
+ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(synthidir)/$$f'"; \
+ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(synthidir)/$$f"; \
+ done
+
+clean-synthiLTLIBRARIES:
+ -test -z "$(synthi_LTLIBRARIES)" || rm -f $(synthi_LTLIBRARIES)
+ @list='$(synthi_LTLIBRARIES)'; for p in $$list; do \
+ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
+ test "$$dir" != "$$p" || dir=.; \
+ echo "rm -f \"$${dir}/so_locations\""; \
+ rm -f "$${dir}/so_locations"; \
+ done
+fluid.la: $(fluid_la_OBJECTS) $(fluid_la_DEPENDENCIES)
+ $(fluid_la_LINK) -rpath $(synthidir) $(fluid_la_OBJECTS) $(fluid_la_LIBADD) $(LIBS)
+
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT)
+
+distclean-compile:
+ -rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fluid.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fluidgui.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/moc_fluidgui.Plo@am__quote@
+
+.cpp.o:
+@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $<
+
+.cpp.obj:
+@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+
+.cpp.lo:
+@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $<
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ mkid -fID $$unique
+tags: TAGS
+
+TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ set x; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: CTAGS
+CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) check-am
+all-am: Makefile $(LTLIBRARIES)
+installdirs:
+ for dir in "$(DESTDIR)$(synthidir)"; do \
+ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ done
+install: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+ -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES)
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+ -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
+clean: clean-am
+
+clean-am: clean-generic clean-libtool clean-synthiLTLIBRARIES \
+ mostlyclean-am
+
+distclean: distclean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+ distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-synthiLTLIBRARIES
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+ mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-synthiLTLIBRARIES
+
+.MAKE: all check install install-am install-strip
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
+ clean-libtool clean-synthiLTLIBRARIES ctags distclean \
+ distclean-compile distclean-generic distclean-libtool \
+ distclean-tags distdir dvi dvi-am html html-am info info-am \
+ install install-am install-data install-data-am install-dvi \
+ install-dvi-am install-exec install-exec-am install-html \
+ install-html-am install-info install-info-am install-man \
+ install-pdf install-pdf-am install-ps install-ps-am \
+ install-strip install-synthiLTLIBRARIES installcheck \
+ installcheck-am installdirs maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-compile \
+ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+ tags uninstall uninstall-am uninstall-synthiLTLIBRARIES
+
+
+de:
+ @for base in $(MOCFILES); do echo -e "\t$${base}.cpp $${base}.h \\"; done
+
+nde:
+ @for base in $(MOCFILES); do echo -e "\tmoc_$${base}.cpp \\"; done
+
+.ui.o: %.h
+ $(UIC) -L $(top_srcdir)/muse/widgets -o $*.cpp -impl $*.h $*.ui
+ $(MOC) $*.h >> $*.cpp
+ $(CXXCOMPILE) -c $*.cpp -o $*.o
+ $(RM) $*.cpp moc_$*.cpp moc_$*.o
+
+.ui.lo: %.h
+ $(UIC) -L $(top_srcdir)/muse/widgets -o $*.cpp -impl $*.h $*.ui
+ $(MOC) $*.h >> $*.cpp
+ $(LTCXXCOMPILE) -c $*.cpp -o $*.lo
+ $(RM) $*.cpp moc_$*.cpp moc_$*.lo moc_$*.o
+
+moc_%.cpp: %.h
+ $(MOC) $< -o $@
+
+%.h: %.ui
+ $(UIC) -o $@ $<
+# $(UIC) -L $(top_srcdir)/muse/widgets -o $@ $<
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/muse2/synti/fluid/fluid.cpp b/muse2/synti/fluid/fluid.cpp
new file mode 100644
index 00000000..a03be4de
--- /dev/null
+++ b/muse2/synti/fluid/fluid.cpp
@@ -0,0 +1,588 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: fluid.cpp,v 1.18.2.8 2009/12/06 10:05:00 terminator356 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 <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+#include <unistd.h>
+#include <stdarg.h>
+#include <errno.h>
+#include <pthread.h>
+#include <cmath>
+#include <sys/mman.h>
+#include <sys/time.h>
+#include <sched.h>
+
+#include "muse/midictrl.h"
+
+#include "muse/midi.h"
+#include "fluid.h"
+#include "fluidgui.h"
+
+//---------------------------------------------------------
+// instantiate
+//---------------------------------------------------------
+
+class QWidget;
+
+static Mess* instantiate(int sr, QWidget*, QString *projectPathPtr, 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",
+ "fluid soundfont loader by 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(): busy!\n");
+ 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;
+ }
+
+//---------------------------------------------------------
+// processMessages
+// Called from host always, even if output path is unconnected.
+//---------------------------------------------------------
+
+void ISynth::processMessages()
+{
+ //Process messages from the gui
+ if (!_busy)
+ {
+ //
+ // get and process all pending events from the
+ // synthesizer GUI
+ //
+ while (gui->fifoSize())
+ processEvent(gui->readEvent());
+ }
+}
+
+//---------------------------------------------------------
+// process
+// Called from host, ONLY if output path is connected.
+//---------------------------------------------------------
+
+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));
+ }
+
+//---------------------------------------------------------
+// processEvent
+// All events from the sequencer go here
+//---------------------------------------------------------
+bool ISynth::processEvent(const MidiPlayEvent& ev)
+ {
+ switch(ev.type()) {
+ case ME_CONTROLLER:
+ setController(ev.channel(), ev.dataA(), ev.dataB());
+ 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:
+ return sysex(ev.len(), ev.data());
+ case ME_PITCHBEND:
+ setController(ev.channel(), CTRL_PITCH, ev.dataA());
+ break;
+ case ME_PROGRAM:
+ setController(ev.channel(), CTRL_PROGRAM, ev.dataA());
+ break;
+ default:
+ break;
+ }
+ return false;
+ }
+
+//---------------------------------------------------------
+// getPatchName
+//---------------------------------------------------------
+
+const char* ISynth::getPatchName(int /*ch*/, int val, int, bool /*drum*/) const
+ {
+ int prog = val & 0xff;
+ if(val == CTRL_VAL_UNKNOWN || prog == 0xff)
+ return "<unknown>";
+ prog &= 0x7f;
+
+ 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;
+ const char* name = "<unknown>";
+
+ 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, (char*) "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->setCaption(QString(name));
+ gui->show();
+ return false;
+ }
+
diff --git a/muse2/synti/fluid/fluid.h b/muse2/synti/fluid/fluid.h
new file mode 100644
index 00000000..c1669846
--- /dev/null
+++ b/muse2/synti/fluid/fluid.h
@@ -0,0 +1,84 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: fluid.h,v 1.7.2.4 2009/11/19 04:20:33 terminator356 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 <list>
+#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 processMessages();
+ 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 bool processEvent(const MidiPlayEvent&);
+ virtual const char* getPatchName (int, int, int, bool) 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/muse2/synti/fluid/fluidgui.cpp b/muse2/synti/fluid/fluidgui.cpp
new file mode 100644
index 00000000..e5677bcb
--- /dev/null
+++ b/muse2/synti/fluid/fluidgui.cpp
@@ -0,0 +1,82 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: fluidgui.cpp,v 1.6.2.1 2009/08/12 20:47:01 spamatica Exp $
+//
+// This is a simple GUI implemented with QT for
+// fluid software synthesizer.
+//
+// (C) Copyright 2001-2004 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include <unistd.h>
+#include <stdlib.h>
+#include <qapplication.h>
+#include <qpixmap.h>
+#include <qlayout.h>
+#include <qlabel.h>
+#include <qlineedit.h>
+#include <qtoolbutton.h>
+#include <qpushbutton.h>
+#include <q3filedialog.h>
+#include <qmessagebox.h>
+
+#include "fluidgui.h"
+#include "muse/midi.h"
+
+//---------------------------------------------------------
+// FLUIDGui
+//---------------------------------------------------------
+
+FLUIDGui::FLUIDGui()
+ : FLUIDGuiBase(0, "fluidgui", Qt::WType_TopLevel), MessGui()
+ {
+ connect(fdialogButton, SIGNAL(clicked()), SLOT(soundFontFileDialog()));
+ connect(loadButton, SIGNAL(clicked()), SLOT(loadFont()));
+
+ // work around for probable QT/WM interaction bug.
+ // for certain window managers, e.g xfce, this window is
+ // is displayed although not specifically set to show();
+ // bug: 2811156 Softsynth GUI unclosable with XFCE4 (and a few others)
+ show();
+ hide();
+ }
+
+//---------------------------------------------------------
+// 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().latin1();
+ 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 = Q3FileDialog::getOpenFileName(QString::null, QString("*.[Ss][Ff]2"), this);
+ if (!s.isEmpty()) {
+ pathEntry->setText(s);
+ }
+ }
+
diff --git a/muse2/synti/fluid/fluidgui.h b/muse2/synti/fluid/fluidgui.h
new file mode 100644
index 00000000..9aeaa73b
--- /dev/null
+++ b/muse2/synti/fluid/fluidgui.h
@@ -0,0 +1,31 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: fluidgui.h,v 1.2 2004/02/12 17:32:29 wschweer Exp $
+//
+// (C) Copyright 2001 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __GUI_H__
+#define __GUI_H
+
+#include "fluidguibase.h"
+#include "libsynti/gui.h"
+
+//---------------------------------------------------------
+// FLUIDGui
+//---------------------------------------------------------
+
+class FLUIDGui : public FLUIDGuiBase, public MessGui {
+
+ Q_OBJECT
+
+ private slots:
+ void soundFontFileDialog();
+ void loadFont();
+
+ public:
+ FLUIDGui();
+ };
+
+#endif
diff --git a/muse2/synti/fluid/fluidguibase.ui b/muse2/synti/fluid/fluidguibase.ui
new file mode 100644
index 00000000..80f79e7b
--- /dev/null
+++ b/muse2/synti/fluid/fluidguibase.ui
@@ -0,0 +1,166 @@
+<!DOCTYPE UI><UI>
+<class>FLUIDGuiBase</class>
+<widget>
+ <class>QDialog</class>
+ <property stdset="1">
+ <name>name</name>
+ <cstring>FLUIDGuiBase</cstring>
+ </property>
+ <property stdset="1">
+ <name>geometry</name>
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>248</width>
+ <height>94</height>
+ </rect>
+ </property>
+ <property stdset="1">
+ <name>caption</name>
+ <string>Form1</string>
+ </property>
+ <vbox>
+ <property stdset="1">
+ <name>margin</name>
+ <number>11</number>
+ </property>
+ <property stdset="1">
+ <name>spacing</name>
+ <number>6</number>
+ </property>
+ <widget>
+ <class>QLayoutWidget</class>
+ <property stdset="1">
+ <name>name</name>
+ <cstring>Layout1</cstring>
+ </property>
+ <hbox>
+ <property stdset="1">
+ <name>margin</name>
+ <number>0</number>
+ </property>
+ <property stdset="1">
+ <name>spacing</name>
+ <number>6</number>
+ </property>
+ <widget>
+ <class>QLabel</class>
+ <property stdset="1">
+ <name>name</name>
+ <cstring>TextLabel1</cstring>
+ </property>
+ <property stdset="1">
+ <name>text</name>
+ <string>Soundfont</string>
+ </property>
+ </widget>
+ <widget>
+ <class>QLineEdit</class>
+ <property stdset="1">
+ <name>name</name>
+ <cstring>pathEntry</cstring>
+ </property>
+ </widget>
+ <widget>
+ <class>QToolButton</class>
+ <property stdset="1">
+ <name>name</name>
+ <cstring>fdialogButton</cstring>
+ </property>
+ <property stdset="1">
+ <name>text</name>
+ <string></string>
+ </property>
+ <property stdset="1">
+ <name>pixmap</name>
+ <pixmap>image0</pixmap>
+ </property>
+ </widget>
+ </hbox>
+ </widget>
+ <spacer>
+ <property>
+ <name>name</name>
+ <cstring>Spacer2</cstring>
+ </property>
+ <property stdset="1">
+ <name>orientation</name>
+ <enum>Vertical</enum>
+ </property>
+ <property stdset="1">
+ <name>sizeType</name>
+ <enum>Expanding</enum>
+ </property>
+ <property>
+ <name>sizeHint</name>
+ <size>
+ <width>20</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ <widget>
+ <class>QLayoutWidget</class>
+ <property stdset="1">
+ <name>name</name>
+ <cstring>Layout2</cstring>
+ </property>
+ <hbox>
+ <property stdset="1">
+ <name>margin</name>
+ <number>0</number>
+ </property>
+ <property stdset="1">
+ <name>spacing</name>
+ <number>6</number>
+ </property>
+ <widget>
+ <class>QPushButton</class>
+ <property stdset="1">
+ <name>name</name>
+ <cstring>loadButton</cstring>
+ </property>
+ <property stdset="1">
+ <name>sizePolicy</name>
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>0</vsizetype>
+ </sizepolicy>
+ </property>
+ <property stdset="1">
+ <name>text</name>
+ <string>Load</string>
+ </property>
+ </widget>
+ <spacer>
+ <property>
+ <name>name</name>
+ <cstring>Spacer1</cstring>
+ </property>
+ <property stdset="1">
+ <name>orientation</name>
+ <enum>Horizontal</enum>
+ </property>
+ <property stdset="1">
+ <name>sizeType</name>
+ <enum>Expanding</enum>
+ </property>
+ <property>
+ <name>sizeHint</name>
+ <size>
+ <width>20</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </hbox>
+ </widget>
+ </vbox>
+</widget>
+<images>
+ <image>
+ <name>image0</name>
+ <data format="XPM.GZ" length="469">789c5d8fb10ac2301040f77c45e86d45ac955607f1131447411c2e97141daaa07510f1dfcd256992fadae1de23e9d1aa94c7c34e9695780e385c49d2051fb2d4afbe7f9fcedb8f28ea95b4ef5ad6c54c147349727fbf199ec1ceb070b01a566cb0c68655b3524b4b6a5989551b7e5891b5eb105b64555eb541725b1c60f1536c36b80aa9417636dd1de37fcbcea5cfc71d804a2178625316f4406a90e31b02254203d216f7db06c20ed77c1adb34a516526cd314ce6570fb6ec40ff56a68fe</data>
+ </image>
+</images>
+</UI>
diff --git a/muse2/synti/fluidsynth/Makefile.am b/muse2/synti/fluidsynth/Makefile.am
new file mode 100644
index 00000000..817c3cb5
--- /dev/null
+++ b/muse2/synti/fluidsynth/Makefile.am
@@ -0,0 +1,19 @@
+include $(top_srcdir)/common.am
+include $(top_srcdir)/synti/synti-install.am
+
+AM_CXXFLAGS += -fPIC -O3 -ffast-math -fno-exceptions
+
+synthi_LTLIBRARIES = fluidsynth.la
+
+fluidsynth_la_SOURCES = fluidsynti.h fluidsynti.cpp \
+ fluidsynthgui.cpp fluidsynthgui.h \
+ fluidsynthguibase.ui
+
+nodist_fluidsynth_la_SOURCES = moc_fluidsynthgui.cpp
+
+fluidsynth_la_LIBADD = ../libsynti/libsynti.la -lfluidsynth
+fluidsynth_la_LDFLAGS = -module -avoid-version
+
+CLEANFILES = $(wildcard *.ui~)
+EXTRA_DIST = TODO README.txt
+
diff --git a/muse2/synti/fluidsynth/Makefile.in b/muse2/synti/fluidsynth/Makefile.in
new file mode 100644
index 00000000..e567a9b8
--- /dev/null
+++ b/muse2/synti/fluidsynth/Makefile.in
@@ -0,0 +1,655 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
+ $(top_srcdir)/common.am $(top_srcdir)/synti/synti-install.am \
+ TODO
+subdir = synti/fluidsynth
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal-include.m4 \
+ $(top_srcdir)/m4/alsa.m4 $(top_srcdir)/m4/docbook.m4 \
+ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
+ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
+ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__installdirs = "$(DESTDIR)$(synthidir)"
+LTLIBRARIES = $(synthi_LTLIBRARIES)
+fluidsynth_la_DEPENDENCIES = ../libsynti/libsynti.la
+am_fluidsynth_la_OBJECTS = fluidsynti.lo fluidsynthgui.lo \
+ fluidsynthguibase.lo
+nodist_fluidsynth_la_OBJECTS = moc_fluidsynthgui.lo
+fluidsynth_la_OBJECTS = $(am_fluidsynth_la_OBJECTS) \
+ $(nodist_fluidsynth_la_OBJECTS)
+fluidsynth_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \
+ $(CXXFLAGS) $(fluidsynth_la_LDFLAGS) $(LDFLAGS) -o $@
+DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
+depcomp = $(SHELL) $(top_srcdir)/depcomp
+am__depfiles_maybe = depfiles
+am__mv = mv -f
+CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
+LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
+CXXLD = $(CXX)
+CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \
+ $(LDFLAGS) -o $@
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
+ $(LDFLAGS) -o $@
+SOURCES = $(fluidsynth_la_SOURCES) $(nodist_fluidsynth_la_SOURCES)
+DIST_SOURCES = $(fluidsynth_la_SOURCES)
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ALSA_CFLAGS = @ALSA_CFLAGS@
+ALSA_LIBS = @ALSA_LIBS@
+AMTAR = @AMTAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DOCBOOKSTYLE = @DOCBOOKSTYLE@
+DOCBOOKTARGETS = @DOCBOOKTARGETS@
+DOT = @DOT@
+DOTPATH = @DOTPATH@
+DOXYGEN = @DOXYGEN@
+DOXYGEN_TREEVIEW = @DOXYGEN_TREEVIEW@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+FLUIDSYNTHDIRS = @FLUIDSYNTHDIRS@
+FST_CFLAGS = @FST_CFLAGS@
+FST_LIBS = @FST_LIBS@
+Fluidsynth_CFLAGS = @Fluidsynth_CFLAGS@
+Fluidsynth_LIBS = @Fluidsynth_LIBS@
+GIVERTCAP = @GIVERTCAP@
+GREP = @GREP@
+HAVEDOT = @HAVEDOT@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JACK_CFLAGS = @JACK_CFLAGS@
+JACK_LIBS = @JACK_LIBS@
+JADE = @JADE@
+LASH_CFLAGS = @LASH_CFLAGS@
+LASH_LIBS = @LASH_LIBS@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LO_CFLAGS = @LO_CFLAGS@
+LO_LIBS = @LO_LIBS@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+MUSECXXFLAGS = @MUSECXXFLAGS@
+NM = @NM@
+NMEDIT = @NMEDIT@
+NSGMLS = @NSGMLS@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PCH = @PCH@
+PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+PYTHON = @PYTHON@
+PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
+PYTHON_INCLUDES = @PYTHON_INCLUDES@
+PYTHON_LIB = @PYTHON_LIB@
+PYTHON_PLATFORM = @PYTHON_PLATFORM@
+PYTHON_PREFIX = @PYTHON_PREFIX@
+PYTHON_VERSION = @PYTHON_VERSION@
+QTDIR_BIN = @QTDIR_BIN@
+QTDIR_INC = @QTDIR_INC@
+QT_LIBS = @QT_LIBS@
+RANLIB = @RANLIB@
+SAMPLERATE_CFLAGS = @SAMPLERATE_CFLAGS@
+SAMPLERATE_LIBS = @SAMPLERATE_LIBS@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SNDFILE_CFLAGS = @SNDFILE_CFLAGS@
+SNDFILE_LIBS = @SNDFILE_LIBS@
+STRIP = @STRIP@
+SUIDBUILD = @SUIDBUILD@
+SUIDINSTALL = @SUIDINSTALL@
+USE_SSE = @USE_SSE@
+UUID_CFLAGS = @UUID_CFLAGS@
+UUID_LIBS = @UUID_LIBS@
+VERSION = @VERSION@
+XMKMF = @XMKMF@
+X_CFLAGS = @X_CFLAGS@
+X_EXTRA_LIBS = @X_EXTRA_LIBS@
+X_LIBS = @X_LIBS@
+X_PRE_LIBS = @X_PRE_LIBS@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+have_docbook = @have_docbook@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+lt_ECHO = @lt_ECHO@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+pkgpyexecdir = @pkgpyexecdir@
+pkgpythondir = @pkgpythondir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+pyexecdir = @pyexecdir@
+pythondir = @pythondir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+synth_fluid = @synth_fluid@
+synth_fluidsynth = @synth_fluidsynth@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+AM_CXXFLAGS = $(MUSECXXFLAGS) -I.. -I$(top_srcdir)/synti \
+ -I$(top_srcdir)/muse/widgets -DQT_SHARED -DQT_THREAD_SUPPORT \
+ -DQT_PLUGIN $(QTDIR_INC) -DQT3_SUPPORT -fPIC -O3 -ffast-math \
+ -fno-exceptions
+AM_CPPFLAGS =
+MOC = $(QTDIR_BIN)/moc
+#UIC = $(QTDIR_BIN)/uic3
+UIC = /usr/bin/uic3
+UIFILES = $(wildcard *.ui)
+MOCFILES = $(shell for h in $(filter %.h,$(SOURCES)); do \
+ if grep -q Q_OBJECT $$h; then \
+ echo $$h | sed "s/\(.*\)\.h/moc_\1.cpp/"; \
+ fi; \
+ done)
+
+BUILT_SOURCES = $(MOCFILES) $(UIFILES:%.ui=%.h)
+MOSTLYCLEANFILES = $(MOCFILES) $(UIFILES:%.ui=%.h)
+SUFFIXES = .ui .h.gch
+synthidir = $(pkglibdir)/synthi
+synthi_LTLIBRARIES = fluidsynth.la
+fluidsynth_la_SOURCES = fluidsynti.h fluidsynti.cpp \
+ fluidsynthgui.cpp fluidsynthgui.h \
+ fluidsynthguibase.ui
+
+nodist_fluidsynth_la_SOURCES = moc_fluidsynthgui.cpp
+fluidsynth_la_LIBADD = ../libsynti/libsynti.la -lfluidsynth
+fluidsynth_la_LDFLAGS = -module -avoid-version
+CLEANFILES = $(wildcard *.ui~)
+EXTRA_DIST = TODO README.txt
+all: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) all-am
+
+.SUFFIXES:
+.SUFFIXES: .ui .h.gch .cpp .lo .o .obj
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/common.am $(top_srcdir)/synti/synti-install.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu synti/fluidsynth/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu synti/fluidsynth/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+install-synthiLTLIBRARIES: $(synthi_LTLIBRARIES)
+ @$(NORMAL_INSTALL)
+ test -z "$(synthidir)" || $(MKDIR_P) "$(DESTDIR)$(synthidir)"
+ @list='$(synthi_LTLIBRARIES)'; test -n "$(synthidir)" || list=; \
+ list2=; for p in $$list; do \
+ if test -f $$p; then \
+ list2="$$list2 $$p"; \
+ else :; fi; \
+ done; \
+ test -z "$$list2" || { \
+ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(synthidir)'"; \
+ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(synthidir)"; \
+ }
+
+uninstall-synthiLTLIBRARIES:
+ @$(NORMAL_UNINSTALL)
+ @list='$(synthi_LTLIBRARIES)'; test -n "$(synthidir)" || list=; \
+ for p in $$list; do \
+ $(am__strip_dir) \
+ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(synthidir)/$$f'"; \
+ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(synthidir)/$$f"; \
+ done
+
+clean-synthiLTLIBRARIES:
+ -test -z "$(synthi_LTLIBRARIES)" || rm -f $(synthi_LTLIBRARIES)
+ @list='$(synthi_LTLIBRARIES)'; for p in $$list; do \
+ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
+ test "$$dir" != "$$p" || dir=.; \
+ echo "rm -f \"$${dir}/so_locations\""; \
+ rm -f "$${dir}/so_locations"; \
+ done
+fluidsynth.la: $(fluidsynth_la_OBJECTS) $(fluidsynth_la_DEPENDENCIES)
+ $(fluidsynth_la_LINK) -rpath $(synthidir) $(fluidsynth_la_OBJECTS) $(fluidsynth_la_LIBADD) $(LIBS)
+
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT)
+
+distclean-compile:
+ -rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fluidsynthgui.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fluidsynti.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/moc_fluidsynthgui.Plo@am__quote@
+
+.cpp.o:
+@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $<
+
+.cpp.obj:
+@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+
+.cpp.lo:
+@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $<
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ mkid -fID $$unique
+tags: TAGS
+
+TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ set x; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: CTAGS
+CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) check-am
+all-am: Makefile $(LTLIBRARIES)
+installdirs:
+ for dir in "$(DESTDIR)$(synthidir)"; do \
+ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ done
+install: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+ -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES)
+
+clean-generic:
+ -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+ -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
+clean: clean-am
+
+clean-am: clean-generic clean-libtool clean-synthiLTLIBRARIES \
+ mostlyclean-am
+
+distclean: distclean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+ distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-synthiLTLIBRARIES
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+ mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-synthiLTLIBRARIES
+
+.MAKE: all check install install-am install-strip
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
+ clean-libtool clean-synthiLTLIBRARIES ctags distclean \
+ distclean-compile distclean-generic distclean-libtool \
+ distclean-tags distdir dvi dvi-am html html-am info info-am \
+ install install-am install-data install-data-am install-dvi \
+ install-dvi-am install-exec install-exec-am install-html \
+ install-html-am install-info install-info-am install-man \
+ install-pdf install-pdf-am install-ps install-ps-am \
+ install-strip install-synthiLTLIBRARIES installcheck \
+ installcheck-am installdirs maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-compile \
+ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+ tags uninstall uninstall-am uninstall-synthiLTLIBRARIES
+
+
+de:
+ @for base in $(MOCFILES); do echo -e "\t$${base}.cpp $${base}.h \\"; done
+
+nde:
+ @for base in $(MOCFILES); do echo -e "\tmoc_$${base}.cpp \\"; done
+
+.ui.o: %.h
+ $(UIC) -L $(top_srcdir)/muse/widgets -o $*.cpp -impl $*.h $*.ui
+ $(MOC) $*.h >> $*.cpp
+ $(CXXCOMPILE) -c $*.cpp -o $*.o
+ $(RM) $*.cpp moc_$*.cpp moc_$*.o
+
+.ui.lo: %.h
+ $(UIC) -L $(top_srcdir)/muse/widgets -o $*.cpp -impl $*.h $*.ui
+ $(MOC) $*.h >> $*.cpp
+ $(LTCXXCOMPILE) -c $*.cpp -o $*.lo
+ $(RM) $*.cpp moc_$*.cpp moc_$*.lo moc_$*.o
+
+moc_%.cpp: %.h
+ $(MOC) $< -o $@
+
+%.h: %.ui
+ $(UIC) -o $@ $<
+# $(UIC) -L $(top_srcdir)/muse/widgets -o $@ $<
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/muse2/synti/fluidsynth/README.txt b/muse2/synti/fluidsynth/README.txt
new file mode 100644
index 00000000..7764edb6
--- /dev/null
+++ b/muse2/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/muse2/synti/fluidsynth/TODO b/muse2/synti/fluidsynth/TODO
new file mode 100644
index 00000000..e941e1e9
--- /dev/null
+++ b/muse2/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/muse2/synti/fluidsynth/fluidsynthgui.cpp b/muse2/synti/fluidsynth/fluidsynthgui.cpp
new file mode 100644
index 00000000..bdb0719b
--- /dev/null
+++ b/muse2/synti/fluidsynth/fluidsynthgui.cpp
@@ -0,0 +1,819 @@
+/*
+ * MusE FLUID Synth softsynth plugin
+ *
+ * Copyright (C) 2004 Mathias Lundgren (lunar_shuttle@users.sourcforge.net)
+ *
+ * $Id: fluidsynthgui.cpp,v 1.13.2.2 2009/08/12 20:47:01 spamatica Exp $
+ *
+ */
+
+#include "fluidsynthgui.h"
+#include "fluidsynti.h"
+#include <qpushbutton.h>
+
+#include <iostream>
+#include <qlineedit.h>
+#include <q3filedialog.h>
+#include <qsocketnotifier.h>
+#include <qpixmap.h>
+#include <q3listview.h>
+#include <qslider.h>
+#include <qmessagebox.h>
+#include <q3popupmenu.h>
+#include <q3header.h>
+#include <qcheckbox.h>
+#include <qspinbox.h>
+#include <qcombobox.h>
+
+#include "muse/midi.h"
+#include "xpm/buttondown.xpm"
+
+
+ /*
+#include "muse/debug.h"
+#include <iomanip>
+#include <qtooltip.h>
+#include <qapplication.h>
+#include <qlistbox.h>
+#define MUSE_FLUID_DEBUG false
+*/
+
+FluidSynthGui::FluidSynthGui()
+ : MessGui()
+ {
+ //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()));
+
+ lastdir = "";
+
+ 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();
+
+ //Init reverb sliders:
+ /*ReverbRoomSize->setValue((int)(16383*FS_PREDEF_REVERB_ROOMSIZE));
+ ReverbDamping->setValue((int)(16383*FS_PREDEF_REVERB_DAMPING));
+ ReverbWidth->setValue((int)(16383*FS_PREDEF_REVERB_WIDTH));*/
+
+ connect(Gain, SIGNAL(valueChanged(int)), SLOT(changeGain(int)));
+ connect(dumpInfoButton , SIGNAL(clicked()), SLOT(dumpInfo()));
+ connect(channelListView, SIGNAL(pressed(Q3ListViewItem*,const QPoint&,int)),
+ this, SLOT(channelItemClicked(Q3ListViewItem*,const QPoint&,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(sfListView, SIGNAL(pressed(Q3ListViewItem*,const QPoint&,int)),
+ this, SLOT(sfItemClicked(Q3ListViewItem*,const QPoint&,int)));
+ 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)));
+/*
+ _notifier = new QSocketNotifier(0, QSocketNotifier::Read);
+ connect(_notifier, SIGNAL(activated(int)), SLOT(readData(int)));
+
+ //Setup the ListView
+ sfListView->setColumnWidthMode(MUSE_FLUID_ID_COL,QListView::Maximum);
+ sfListView->setColumnWidthMode(MUSE_FLUID_SFNAME_COL,QListView::Maximum);
+
+ sfListView->setColumnAlignment(MUSE_FLUID_ID_COL,AlignHCenter);
+ sfListView->setSorting(MUSE_FLUID_ID_COL,true);
+ channelListView->setColumnAlignment(MUSE_FLUID_CHANNEL_COL,AlignHCenter);
+
+ _currentlySelectedFont = -1; //No selected font to start with
+ // The GUI-process is killed every time the window is shut,
+ // need to get all parameters from the synth
+
+ requestAllParameters();
+
+ */
+
+ //Clear channels
+ for (int i=0; i<FS_MAX_NR_OF_CHANNELS; i++)
+ channels[i] = FS_UNSPECIFIED_ID;
+
+ // work around for probable QT/WM interaction bug.
+ // for certain window managers, e.g xfce, this window is
+ // is displayed although not specifically set to show();
+ // bug: 2811156 Softsynth GUI unclosable with XFCE4 (and a few others)
+ show();
+ hide();
+ }
+
+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::pushClicked()
+ {
+ const QString& fns = Filename->text();
+ if (fns.isEmpty())
+ return;
+ const char * fn = fns.latin1();
+
+ int datalen = strlen(fn) + 3;
+ unsigned char data [datalen];
+ data[0] = MUSE_FLUID_SOUNDFONT_PUSH;
+ data[1] = MUSE_FLUID_UNSPECIFIED_ID; //This makes the client choose next available external id
+ memcpy(data + 2, fn, strlen(fn) + 1 ); //Store filename
+ sendSysex(data, datalen);
+ data[0] = MUSE_FLUID_GUI_REQ_SOUNDFONTS; //For simplicity's sake, just get all the soundfont data again.
+ sendSysex(data, 1);
+ printf("Gui sent Sysex.\n");
+
+ return;
+ }
+ */
+
+void FluidSynthGui::loadClicked()
+ {
+ QString filename = Q3FileDialog::getOpenFileName(lastdir, QString("*.[Ss][Ff]2"),
+ this,
+ "Load Soundfont dialog",
+ "Choose soundfont");
+ if (filename != QString::null) {
+ int lastslash = filename.findRev('/');
+ lastdir = filename.left(lastslash);
+
+ sendLastdir(lastdir);
+ sendLoadFont(filename);
+ }
+ }
+
+//---------------------------------------------------------
+// sendLastdir
+// Send the last dir-value to the client
+//---------------------------------------------------------
+
+void FluidSynthGui::sendLastdir(QString dir)
+ {
+ int l = strlen(dir)+2;
+ byte data[l];
+ data[0] = FS_LASTDIR_CHANGE;
+ memcpy(data+1, dir.latin1(), strlen(dir)+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.latin1(), filename.length()+1);
+ sendSysex(data,l);
+ }
+
+//---------------------------------------------------------
+// processEvent
+//---------------------------------------------------------
+
+void FluidSynthGui::processEvent(const MidiPlayEvent& 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);
+
+ printf("Muse: fluidsynth error: %s\n", 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
+ sfListView->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--;
+ }
+ updateSoundfontListView();
+ updateChannelListView();
+ 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;
+ }
+ updateChannelListView();
+
+ break;
+ }
+ case FS_SEND_DRUMCHANNELINFO: {
+ byte* drumchptr = (data+1);
+ for (int i=0; i<FS_MAX_NR_OF_CHANNELS; i++) {
+ drumchannels[i] = *drumchptr;
+ drumchptr++;
+ }
+ updateChannelListView();
+ 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->setCurrentItem(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::updateChannelListView()
+ {
+ if (FS_DEBUG)
+ printf("FluidSynthGui::updateChannelListView\n");
+ channelListView->clear();
+ 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";
+ Q3ListViewItem* qlvNewItem = new Q3ListViewItem(channelListView);
+ qlvNewItem->setText(FS_CHANNEL_COL, chanstr);
+ qlvNewItem->setPixmap(FS_SF_ID_COL, buttondown_xpm);
+ qlvNewItem->setText(FS_SF_ID_COL, sfidstr);
+ qlvNewItem->setPixmap(FS_DRUM_CHANNEL_COL, buttondown_xpm);
+ qlvNewItem->setText(FS_DRUM_CHANNEL_COL, drumchanstr);
+ channelListView->insertItem(qlvNewItem);
+ }
+ }
+
+//---------------------------------------------------------
+// updateSoundfontListView
+//---------------------------------------------------------
+void FluidSynthGui::updateSoundfontListView()
+ {
+ sfListView->clear(); //Clear the listview
+ for (std::list<FluidGuiSoundFont>::iterator it = stack.begin(); it != stack.end(); it++) {
+ Q3ListViewItem* qlvNewItem = new Q3ListViewItem(sfListView);
+ QString qsid = QString("%1").arg(it->id);
+ qlvNewItem->setText(FS_ID_COL, qsid);
+ qlvNewItem->setText(FS_SFNAME_COL, QString(it->name));
+ sfListView->insertItem(qlvNewItem);
+ }
+ sfListView->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(Q3ListViewItem* item, const QPoint&, int col)
+ {
+ if (col == FS_SF_ID_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);
+
+ int i = 0;
+ for (std::list<FluidGuiSoundFont>::reverse_iterator it = stack.rbegin(); it != stack.rend(); it++) {
+ i++;
+ /*byte* d = (byte*) it->name.latin1();
+ for (int i=0; i<96; i++) {
+ if (i%16 == 0)
+ printf("%x:",(i+d));
+
+ printf("%x ",*(d-48+i));
+
+ if (i%16 == 15)
+ printf("\n");
+ }
+ for (int i=0; i<96; i++) {
+ if (i%16 == 0)
+ printf("%x:",(i+d-48));
+
+ printf("%c ",*(d-48+i));
+
+ if (i%16 == 15)
+ printf("\n");
+ }
+ printf("\n\n");*/
+ popup->insertItem(it->name,i);
+ }
+ int lastindex = i+1;
+ popup->insertItem("unspecified",lastindex);
+ int index = popup->exec(ppt, 0);
+ if (index !=-1) {
+ 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(popup->text(index));
+ fontname = getSoundFontName(sfid);
+ }
+ byte channel = atoi(item->text(FS_CHANNEL_COL).latin1()) - 1;
+ sendChannelChange(sfid, channel);
+ item->setText(FS_SF_ID_COL, fontname);
+ }
+ delete popup;
+ }
+ // Drumchannel column:
+ 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).latin1()) - 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" );
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// 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(Q3ListViewItem* item, const QPoint&, int /*col*/)
+ {
+ if (item != 0) {
+ currentlySelectedFont = atoi(item->text(FS_ID_COL));
+ 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);
+ }
+
+
+
+void FluidSynthGui::changeReverbRoomSize (int value) {
+ sendParameterChange(MUSE_FLUID_PARAMETER_REVERB,
+ "roomsize", value);
+}
+
+void FluidSynthGui::changeReverbDamping (int value) {
+ sendParameterChange(MUSE_FLUID_PARAMETER_REVERB,
+ "damping", value);
+}
+
+void FluidSynthGui::changeReverbWidth (int value) {
+ sendParameterChange(MUSE_FLUID_PARAMETER_REVERB,
+ "width", value);
+}
+
+
+void FluidSynthGui::changeChorusNumber (int value) {
+ sendParameterChange(MUSE_FLUID_PARAMETER_CHORUS,
+ "number", value);
+}
+
+void FluidSynthGui::changeChorusType (int value) {
+ sendParameterChange(MUSE_FLUID_PARAMETER_CHORUS,
+ "type", value);
+}
+
+void FluidSynthGui::changeChorusSpeed (int value) {
+ sendParameterChange(MUSE_FLUID_PARAMETER_CHORUS,
+ "speed", value); //TODO: Right now illegal values may be sent.
+ //Make sure they stay within fluidsynths legal boundaries (0.29-5Hz) dunno what that is in doubles
+ //This might be the case for the other chorus parameters as well
+}
+
+void FluidSynthGui::changeChorusDepth (int value) {
+ sendParameterChange(MUSE_FLUID_PARAMETER_CHORUS,
+ "depth", value);
+}
+
+void FluidSynthGui::changeChorusLevel (int value) {
+ sendParameterChange(MUSE_FLUID_PARAMETER_CHORUS,
+ "level", value);
+}
+
+
+void FluidSynthGui::sysexReceived(unsigned char const * data, int len)
+ {
+ char * cp;
+ double * dp;
+ //std::cerr << "FluidSynthGui, sysexReceived: " << (int) *data << std::endl;
+ switch (*data) {
+ case MUSE_FLUID_CLIENT_SEND_PARAMETER:
+ cp = (char *) (data + 2);
+ dp = (double *) (data + strlen (cp) + 3);
+ setParameter ((int) *(data+1), cp, *dp);
+ break;
+
+ case MUSE_FLUID_GAIN_GET:
+ dp = (double *) (data + 1);
+ Gain->setValue ((int) (*dp * 12.8));
+ break;
+
+ case MUSE_FLUID_CLIENT_LASTDIR_CHANGE: {
+ if (*(char*)(data+1) != MUSE_FLUID_UNSPECIFIED_LASTDIR)
+ _lastDir = QString((char*)(data+1));
+ else
+ _lastDir="";
+ }
+
+ default:
+ break;
+ }
+ }
+
+
+
+
+
+
+
+void FluidSynthGui::requestAllParameters () {
+ unsigned char data[1];
+
+ //data[0] = MUSE_FLUID_ADVGUI_GET;
+ //sendSysex (data, 1);
+ dbgMsg("Requesting all parameters!\n");
+ sendParameterRequest (MUSE_FLUID_PARAMETER_REVERB, "on");
+ sendParameterRequest (MUSE_FLUID_PARAMETER_REVERB, "roomsize");
+ sendParameterRequest (MUSE_FLUID_PARAMETER_REVERB, "damping");
+ sendParameterRequest (MUSE_FLUID_PARAMETER_REVERB, "width");
+ sendParameterRequest (MUSE_FLUID_PARAMETER_REVERB, "level");
+ sendParameterRequest (MUSE_FLUID_PARAMETER_CHORUS, "on");
+ sendParameterRequest (MUSE_FLUID_PARAMETER_CHORUS, "number");
+ sendParameterRequest (MUSE_FLUID_PARAMETER_CHORUS, "type");
+ sendParameterRequest (MUSE_FLUID_PARAMETER_CHORUS, "speed");
+ sendParameterRequest (MUSE_FLUID_PARAMETER_CHORUS, "depth");
+ sendParameterRequest (MUSE_FLUID_PARAMETER_CHORUS, "level");
+ data[0] = MUSE_FLUID_GAIN_GET;
+ sendSysex (data, 1);
+ data[0] = MUSE_FLUID_GUI_REQ_SOUNDFONTS;
+ sendSysex (data, 1);
+}
+
+bool FluidSynthGui::sendParameterRequest (int parameterSet, const char * parameter) {
+ size_t parameterMem = strlen (parameter) + 1;
+ int datalen = 2 + parameterMem;
+ unsigned char * data = new unsigned char [datalen];
+ *data = MUSE_FLUID_GUI_REQ_FXPARAMETER_GET;
+ *(data + 1) = (char) parameterSet;
+ memcpy (data + 2, parameter, parameterMem);
+ sendSysex (data, datalen);
+ delete data;
+ return true;
+}
+
+void FluidSynthGui::setParameter (int parameterSet, const char * parameter, double value) {
+ int ival = (int) (value * 128);
+ std::string ps (parameter);
+ if (parameterSet == MUSE_FLUID_PARAMETER_REVERB) {
+ if (ps == "roomsize") {
+ ReverbRoomSize->setValue (ival);
+ } else if (ps == "damping") {
+ ReverbDamping->setValue (ival);
+ } else if (ps == "width") {
+ ReverbWidth->setValue (ival);
+ } else if (ps == "level") {
+ ReverbLevel->setValue (ival);
+ } else if (ps == "on") {
+ Reverb->setChecked (ival);
+ }
+ } else {
+ if (ps == "number") {
+ ChorusNumber->setValue (ival);
+ } else if (ps == "type") {
+ ChorusType->setCurrentItem (ival);
+ } else if (ps == "speed") {
+ ChorusSpeed->setValue (ival);
+ } else if (ps == "depth") {
+ ChorusDepth->setValue (ival);
+ } else if (ps == "level") {
+ ChorusLevel->setValue (ival);
+ } else if (ps == "on") {
+ Chorus->setChecked (ival);
+ }
+ }
+}
+
+//Sends parameter to reverb or chorus
+bool FluidSynthGui::sendParameterChange (int parameterSet, const char * parameter, int value) {
+ size_t parameterMem = strlen (parameter) + 1;
+ int datalen = 2 + parameterMem + sizeof (double);
+ unsigned char * data = new unsigned char [datalen];
+ *data = (unsigned char) MUSE_FLUID_GUI_REQ_FXPARAMETER_SET;
+ *(data + 1) = (unsigned char) parameterSet;
+ memcpy (data + 2, parameter, parameterMem);
+ double * dp = (double *) (data + 2 + parameterMem);
+ *dp = ((double) value) / ((double) 128.0);
+ sendSysex (data, datalen);
+ delete data;
+ return true;
+}
+
+void FluidSynthGui::dbgMsg(const char* msg)
+ {
+ if (MUSE_FLUID_DEBUG)
+ std::cerr << msg << std::endl;
+ }
+//---------------------------------------------------------
+// main
+//---------------------------------------------------------
+
+/*QString museProject;
+QString museGlobalShare;
+QString museUser;*/
+
+
+int main(int argc, char* argv[])
+{
+/*
+ museUser = getenv("MUSEHOME");
+ if (museUser == 0)
+ museUser = getenv("HOME");
+ museGlobalShare = getenv("MUSE");
+ if (museGlobalShare == 0) {
+ museGlobalShare = "/usr/muse";
+ if (access(museGlobalShare.latin1(), R_OK) != 0) {
+ museGlobalShare = "/usr/local/muse";
+ if (access(museGlobalShare.latin1(), R_OK) != 0)
+ museGlobalShare = museUser;
+ }
+ }*/
+ char * instanceName = argv[1];
+ QApplication app (argc, argv, true);
+ QWidget* w = new FluidSynthGui ();
+ if (argc > 1)
+ w->setCaption(QString(instanceName));
+ w->show();
+ app.connect(&app, SIGNAL(lastWindowClosed()), &app, SLOT(quit()));
+ qApp->exec();
+}
+
+#endif
diff --git a/muse2/synti/fluidsynth/fluidsynthgui.h b/muse2/synti/fluidsynth/fluidsynthgui.h
new file mode 100644
index 00000000..d464dee2
--- /dev/null
+++ b/muse2/synti/fluidsynth/fluidsynthgui.h
@@ -0,0 +1,225 @@
+/*
+ * MusE FLUID Synth softsynth plugin
+ *
+ * Copyright (C) 2004 Mathias Lundgren (lunar_shuttle@users.sourcforge.net)
+ *
+ * $Id: fluidsynthgui.h,v 1.10.2.3 2009/02/02 21:38:02 terminator356 Exp $
+ *
+ */
+
+#ifndef __MUSE_FLUIDSYNTHGUI_H__
+#define __MUSE_FLUIDSYNTHGUI_H__
+
+#include "fluidsynthguibase.h"
+#include "libsynti/gui.h"
+#include <list>
+
+struct FluidChannel;
+#define FS_DEBUG 0 //Turn on/off debug
+/*
+#include <list>
+#include <string>
+#include <qscrollview.h>
+
+#include <qevent.h>
+#include <qmenubar.h>
+#include <qsocketnotifier.h>
+#include <alsa/asoundlib.h>
+#include <qlistview.h>
+#include <qheader.h>
+#include "muse/debug.h"
+*/
+
+#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.063
+#define FS_PREDEF_REVERB_LEVEL 0.125
+#define FS_PREDEF_REVERB_ROOMSIZE 0.125
+#define FS_PREDEF_REVERB_DAMPING 0.3
+#define FS_PREDEF_REVERB_WIDTH 0.125
+#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;
+
+
+/*
+
+
+#define MUSE_FLUID_UNSPECIFIED_CHANNEL 127
+
+
+#define MUSE_FLUID_UNSPECIFIED_LASTDIR 127
+*/
+
+//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
+ };
+
+enum
+ {
+ FS_DUMP_INFO = 240,
+ FS_ERROR,
+ FS_INIT_DATA
+ };
+/*
+enum {
+ MUSE_FLUID_REVERB = 100,
+ MUSE_FLUID_REVERB_ROOMSIZE,
+ MUSE_FLUID_REVERB_DAMPING,
+ MUSE_FLUID_REVERB_WIDTH,
+ MUSE_FLUID_REVERB_LEVEL,
+ MUSE_FLUID_CHORUS,
+ MUSE_FLUID_CHORUS_NUMBER,
+ MUSE_FLUID_CHORUS_TYPE,
+ MUSE_FLUID_CHORUS_SPEED,
+ MUSE_FLUID_CHORUS_DEPTH,
+ MUSE_FLUID_CHORUS_LEVEL,
+ MUSE_FLUID_GAIN,
+ MUSE_FLUID_SOUNDFONT,
+ MUSE_FLUID_STRING,
+ MUSE_FLUID_STRING_END
+ };
+
+enum {
+ MUSE_FLUID_CLIENT_SEND_PARAMETER = 33,
+ MUSE_FLUID_CLIENT_SEND_SOUNDFONTS,
+ MUSE_FLUID_PARAMETER_GET,
+ MUSE_FLUID_PARAMETER_REVERB,
+ MUSE_FLUID_PARAMETER_CHORUS,
+
+ MUSE_FLUID_GAIN_GET,
+ MUSE_FLUID_SOUNDFONT_PUSH,
+ MUSE_FLUID_SOUNDFONT_POP,
+
+ MUSE_FLUID_CLIENT_SEND_ERROR = 44,
+ MUSE_FLUID_SOUNDFONT_LOAD,
+ ,
+ MUSE_FLUID_CLIENT_RESTORE_CHANNELDATA,
+ MUSE_FLUID_CLIENT_INIT_PARAMS,
+ MUSE_FLUID_CLIENT_LASTDIR_CHANGE,
+
+ MUSE_FLUID_GUI_REQ_SOUNDFONTS = 60,
+ MUSE_FLUID_GUI_REQ_FXPARAMETER_SET,
+ MUSE_FLUID_GUI_REQ_FXPARAMETER_GET,
+ MUSE_FLUID_GUI_SEND_ERROR,
+ MUSE_FLUID_GUI_LASTDIR_CHANGE
+ };
+*/
+
+struct FluidGuiSoundFont
+ {
+ QString filename;
+ QString name;
+ byte id;
+ };
+
+//---------------------------------------------------------
+// FluidSynthGui
+//---------------------------------------------------------
+
+class FluidSynthGui : public FLUIDSynthGuiBase, public MessGui
+ {
+ Q_OBJECT
+ private:
+ virtual void processEvent(const MidiPlayEvent& ev);
+ void sendLastdir(QString);
+ void sendLoadFont(QString);
+ void sendChannelChange(byte font_id, byte channel);
+ void sendDrumChannelChange(byte onoff, byte channel);
+ void updateSoundfontListView();
+ void updateChannelListView();
+
+ 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
+
+/*
+ unsigned _smallH;
+ unsigned _bigH;
+ QSocketNotifier * _notifier;
+ bool sendParameterChange (int, const char *, int);
+ void setParameter (int, const char *, double);
+ void requestAllParameters ();
+ void dbgMsg(const char*);
+ bool sendParameterRequest(int, const char *);
+ //void dealWithSysex (unsigned char const * data, int datalen);
+
+
+
+
+
+
+*/
+ private slots:
+ void loadClicked();
+ void readMessage(int);
+ void changeGain(int);
+ void dumpInfo();
+ void channelItemClicked(Q3ListViewItem* item, const QPoint&, int col);
+ 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(Q3ListViewItem* item, const QPoint&, int col);
+ /*
+ void readData(int);
+
+
+
+
+ */
+
+ public:
+// virtual void sysexReceived (const unsigned char *, int);
+// virtual void controllerReceived(int, int, int);
+
+ FluidSynthGui();
+ ~FluidSynthGui();
+};
+
+
+#endif /* __MUSE_FLUIDSYNTHGUI_H__ */
diff --git a/muse2/synti/fluidsynth/fluidsynthguibase.ui b/muse2/synti/fluidsynth/fluidsynthguibase.ui
new file mode 100644
index 00000000..336ee9fa
--- /dev/null
+++ b/muse2/synti/fluidsynth/fluidsynthguibase.ui
@@ -0,0 +1,632 @@
+<!DOCTYPE UI><UI version="3.2" stdsetdef="1">
+<class>FLUIDSynthGuiBase</class>
+<widget class="QDialog">
+ <property name="name">
+ <cstring>FLUIDSynthGuiBase</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>617</width>
+ <height>514</height>
+ </rect>
+ </property>
+ <property name="caption">
+ <string>FLUID Synth</string>
+ </property>
+ <property name="icon">
+ <pixmap>image0</pixmap>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="spacing">
+ <number>1</number>
+ </property>
+ <property name="resizeMode">
+ <enum>Minimum</enum>
+ </property>
+ <widget class="QLayoutWidget">
+ <property name="name">
+ <cstring>layout3</cstring>
+ </property>
+ <grid>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QFrame" row="2" column="0">
+ <property name="name">
+ <cstring>DiskButtons</cstring>
+ </property>
+ <property name="frameShape">
+ <enum>StyledPanel</enum>
+ </property>
+ <property name="frameShadow">
+ <enum>Raised</enum>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QPushButton">
+ <property name="name">
+ <cstring>Push</cstring>
+ </property>
+ <property name="text">
+ <string>Load</string>
+ </property>
+ </widget>
+ <widget class="QPushButton">
+ <property name="name">
+ <cstring>Pop</cstring>
+ </property>
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="text">
+ <string>Delete</string>
+ </property>
+ </widget>
+ <widget class="QPushButton">
+ <property name="name">
+ <cstring>dumpInfoButton</cstring>
+ </property>
+ <property name="text">
+ <string>Dump Info</string>
+ </property>
+ </widget>
+ </hbox>
+ </widget>
+ <widget class="QListView" row="1" column="0">
+ <column>
+ <property name="text">
+ <string>ID</string>
+ </property>
+ <property name="clickable">
+ <bool>false</bool>
+ </property>
+ <property name="resizable">
+ <bool>false</bool>
+ </property>
+ </column>
+ <column>
+ <property name="text">
+ <string>Fontname</string>
+ </property>
+ <property name="clickable">
+ <bool>false</bool>
+ </property>
+ <property name="resizable">
+ <bool>false</bool>
+ </property>
+ </column>
+ <property name="name">
+ <cstring>sfListView</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>3</hsizetype>
+ <vsizetype>7</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ </widget>
+ <widget class="QListView" row="1" column="1">
+ <column>
+ <property name="text">
+ <string>Chnl</string>
+ </property>
+ <property name="clickable">
+ <bool>false</bool>
+ </property>
+ <property name="resizable">
+ <bool>false</bool>
+ </property>
+ </column>
+ <column>
+ <property name="text">
+ <string>Soundfont</string>
+ </property>
+ <property name="clickable">
+ <bool>false</bool>
+ </property>
+ <property name="resizable">
+ <bool>false</bool>
+ </property>
+ </column>
+ <column>
+ <property name="text">
+ <string>Drum Chnl</string>
+ </property>
+ <property name="clickable">
+ <bool>false</bool>
+ </property>
+ <property name="resizable">
+ <bool>false</bool>
+ </property>
+ </column>
+ <property name="name">
+ <cstring>channelListView</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>3</hsizetype>
+ <vsizetype>7</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ </widget>
+ <widget class="QFrame" row="3" column="0">
+ <property name="name">
+ <cstring>ReverbFrame</cstring>
+ </property>
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="frameShape">
+ <enum>StyledPanel</enum>
+ </property>
+ <property name="frameShadow">
+ <enum>Raised</enum>
+ </property>
+ <grid>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QSlider" row="4" column="1">
+ <property name="name">
+ <cstring>ReverbLevel</cstring>
+ </property>
+ <property name="maxValue">
+ <number>16383</number>
+ </property>
+ <property name="lineStep">
+ <number>16</number>
+ </property>
+ <property name="pageStep">
+ <number>1638</number>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="tickmarks">
+ <enum>Both</enum>
+ </property>
+ <property name="tickInterval">
+ <number>1638</number>
+ </property>
+ </widget>
+ <widget class="QSlider" row="3" column="1">
+ <property name="name">
+ <cstring>ReverbWidth</cstring>
+ </property>
+ <property name="maxValue">
+ <number>16383</number>
+ </property>
+ <property name="lineStep">
+ <number>16</number>
+ </property>
+ <property name="pageStep">
+ <number>1638</number>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="tickmarks">
+ <enum>Both</enum>
+ </property>
+ <property name="tickInterval">
+ <number>1638</number>
+ </property>
+ </widget>
+ <widget class="QSlider" row="2" column="1">
+ <property name="name">
+ <cstring>ReverbDamping</cstring>
+ </property>
+ <property name="maxValue">
+ <number>16383</number>
+ </property>
+ <property name="lineStep">
+ <number>16</number>
+ </property>
+ <property name="pageStep">
+ <number>1638</number>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="tickmarks">
+ <enum>Both</enum>
+ </property>
+ <property name="tickInterval">
+ <number>1638</number>
+ </property>
+ </widget>
+ <widget class="QSlider" row="1" column="1">
+ <property name="name">
+ <cstring>ReverbRoomSize</cstring>
+ </property>
+ <property name="maxValue">
+ <number>16383</number>
+ </property>
+ <property name="lineStep">
+ <number>16</number>
+ </property>
+ <property name="pageStep">
+ <number>1638</number>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="tickmarks">
+ <enum>Both</enum>
+ </property>
+ <property name="tickInterval">
+ <number>1638</number>
+ </property>
+ </widget>
+ <widget class="QLabel" row="4" column="0">
+ <property name="name">
+ <cstring>ReverbLevelLabel</cstring>
+ </property>
+ <property name="text">
+ <string>Level</string>
+ </property>
+ <property name="alignment">
+ <set>AlignCenter</set>
+ </property>
+ </widget>
+ <widget class="QLabel" row="3" column="0">
+ <property name="name">
+ <cstring>ReverbWidthLabel</cstring>
+ </property>
+ <property name="text">
+ <string>Width</string>
+ </property>
+ <property name="alignment">
+ <set>AlignCenter</set>
+ </property>
+ </widget>
+ <widget class="QLabel" row="2" column="0">
+ <property name="name">
+ <cstring>ReverbDampingLabel</cstring>
+ </property>
+ <property name="text">
+ <string>Damping</string>
+ </property>
+ <property name="alignment">
+ <set>AlignCenter</set>
+ </property>
+ </widget>
+ <widget class="QLabel" row="1" column="0">
+ <property name="name">
+ <cstring>ReverbRoomSizeLabel</cstring>
+ </property>
+ <property name="text">
+ <string>Room Size</string>
+ </property>
+ <property name="alignment">
+ <set>AlignCenter</set>
+ </property>
+ </widget>
+ <widget class="QCheckBox" row="0" column="0" rowspan="1" colspan="2">
+ <property name="name">
+ <cstring>Reverb</cstring>
+ </property>
+ <property name="text">
+ <string>Reverb</string>
+ </property>
+ </widget>
+ </grid>
+ </widget>
+ <widget class="QLabel" row="0" column="1">
+ <property name="name">
+ <cstring>fontSetupLabel</cstring>
+ </property>
+ <property name="font">
+ <font>
+ <bold>1</bold>
+ </font>
+ </property>
+ <property name="text">
+ <string>CHANNEL SETUP</string>
+ </property>
+ <property name="scaledContents">
+ <bool>false</bool>
+ </property>
+ <property name="alignment">
+ <set>WordBreak|AlignCenter</set>
+ </property>
+ </widget>
+ <widget class="QFrame" row="3" column="1">
+ <property name="name">
+ <cstring>ChorusFrame</cstring>
+ </property>
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="frameShape">
+ <enum>StyledPanel</enum>
+ </property>
+ <property name="frameShadow">
+ <enum>Raised</enum>
+ </property>
+ <grid>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QComboBox" row="1" column="4">
+ <item>
+ <property name="text">
+ <string>Sine</string>
+ </property>
+ <property name="pixmap">
+ <pixmap>image1</pixmap>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Triangle</string>
+ </property>
+ <property name="pixmap">
+ <pixmap>image2</pixmap>
+ </property>
+ </item>
+ <property name="name">
+ <cstring>ChorusType</cstring>
+ </property>
+ </widget>
+ <widget class="QLabel" row="1" column="3">
+ <property name="name">
+ <cstring>ChorusTypeLabel</cstring>
+ </property>
+ <property name="text">
+ <string>Type</string>
+ </property>
+ <property name="alignment">
+ <set>AlignCenter</set>
+ </property>
+ </widget>
+ <widget class="QSpinBox" row="1" column="1" rowspan="1" colspan="2">
+ <property name="name">
+ <cstring>ChorusNumber</cstring>
+ </property>
+ <property name="maxValue">
+ <number>127</number>
+ </property>
+ </widget>
+ <widget class="QLabel" row="1" column="0">
+ <property name="name">
+ <cstring>ChorusNumberLabel</cstring>
+ </property>
+ <property name="text">
+ <string>Number</string>
+ </property>
+ <property name="alignment">
+ <set>AlignCenter</set>
+ </property>
+ </widget>
+ <widget class="QSlider" row="2" column="2" rowspan="1" colspan="3">
+ <property name="name">
+ <cstring>ChorusSpeed</cstring>
+ </property>
+ <property name="maxValue">
+ <number>16383</number>
+ </property>
+ <property name="lineStep">
+ <number>16</number>
+ </property>
+ <property name="pageStep">
+ <number>1638</number>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="tickmarks">
+ <enum>Both</enum>
+ </property>
+ <property name="tickInterval">
+ <number>1638</number>
+ </property>
+ </widget>
+ <widget class="QLabel" row="2" column="0" rowspan="1" colspan="2">
+ <property name="name">
+ <cstring>ChorusSpeedLabel</cstring>
+ </property>
+ <property name="text">
+ <string>Speed</string>
+ </property>
+ <property name="alignment">
+ <set>AlignCenter</set>
+ </property>
+ </widget>
+ <widget class="QSlider" row="3" column="2" rowspan="1" colspan="3">
+ <property name="name">
+ <cstring>ChorusDepth</cstring>
+ </property>
+ <property name="maxValue">
+ <number>16383</number>
+ </property>
+ <property name="lineStep">
+ <number>16</number>
+ </property>
+ <property name="pageStep">
+ <number>1638</number>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="tickmarks">
+ <enum>Both</enum>
+ </property>
+ <property name="tickInterval">
+ <number>1638</number>
+ </property>
+ </widget>
+ <widget class="QLabel" row="3" column="0" rowspan="1" colspan="2">
+ <property name="name">
+ <cstring>ChorusDepthLabel</cstring>
+ </property>
+ <property name="text">
+ <string>Depth</string>
+ </property>
+ <property name="alignment">
+ <set>AlignCenter</set>
+ </property>
+ </widget>
+ <widget class="QSlider" row="4" column="2" rowspan="1" colspan="3">
+ <property name="name">
+ <cstring>ChorusLevel</cstring>
+ </property>
+ <property name="maxValue">
+ <number>16383</number>
+ </property>
+ <property name="lineStep">
+ <number>16</number>
+ </property>
+ <property name="pageStep">
+ <number>1638</number>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="tickmarks">
+ <enum>Both</enum>
+ </property>
+ <property name="tickInterval">
+ <number>1638</number>
+ </property>
+ </widget>
+ <widget class="QLabel" row="4" column="0" rowspan="1" colspan="2">
+ <property name="name">
+ <cstring>ChorusLevelLabel</cstring>
+ </property>
+ <property name="text">
+ <string>Level</string>
+ </property>
+ <property name="alignment">
+ <set>AlignCenter</set>
+ </property>
+ </widget>
+ <widget class="QCheckBox" row="0" column="0" rowspan="1" colspan="5">
+ <property name="name">
+ <cstring>Chorus</cstring>
+ </property>
+ <property name="text">
+ <string>Chorus</string>
+ </property>
+ </widget>
+ </grid>
+ </widget>
+ <widget class="QGroupBox" row="4" column="0" rowspan="1" colspan="2">
+ <property name="name">
+ <cstring>GainBox</cstring>
+ </property>
+ <property name="title">
+ <string></string>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>GainLabel</cstring>
+ </property>
+ <property name="text">
+ <string>Gain</string>
+ </property>
+ <property name="alignment">
+ <set>AlignCenter</set>
+ </property>
+ </widget>
+ <widget class="QSlider">
+ <property name="name">
+ <cstring>Gain</cstring>
+ </property>
+ <property name="minValue">
+ <number>0</number>
+ </property>
+ <property name="maxValue">
+ <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>Horizontal</enum>
+ </property>
+ <property name="tickmarks">
+ <enum>Both</enum>
+ </property>
+ <property name="tickInterval">
+ <number>7</number>
+ </property>
+ </widget>
+ </hbox>
+ </widget>
+ <widget class="QLabel" row="0" column="0">
+ <property name="name">
+ <cstring>loadedFontsLabel</cstring>
+ </property>
+ <property name="font">
+ <font>
+ <bold>1</bold>
+ </font>
+ </property>
+ <property name="text">
+ <string>LOADED SOUNDFONTS</string>
+ </property>
+ <property name="alignment">
+ <set>WordBreak|AlignCenter</set>
+ </property>
+ </widget>
+ <widget class="QLabel" row="2" column="1">
+ <property name="name">
+ <cstring>pixmapLabel</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>4</hsizetype>
+ <vsizetype>4</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="pixmap">
+ <pixmap>image3</pixmap>
+ </property>
+ <property name="scaledContents">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </grid>
+ </widget>
+ </hbox>
+</widget>
+<images>
+ <image name="image0">
+ <data format="PNG" length="1195">89504e470d0a1a0a0000000d4948445200000020000000200806000000737a7af400000472494441545885c557cb6e1c45143db7a77b7a5ec699b1c71e3fb0239010f80ff807d6d9b065c12f20250a2862c10690901c93c40111136c1ca448880dec67c18e05444158b63103f22376e2b167babaaafb66d1efd780c2c225cda3abcebdf7dc5375abaaa9dbede2229bf67f8c7f3416f8a7f2225f0881efed0e379a33a8373bf8c1997b61127afce1eb3d83c7da1d58fd535c693fa35186f5e60c94f4f8d7c63bc0596f64a08dfd0657c79be81fede3ed793bf49d5060627109f5d61c5af3afe1dba37661561b87930c3621052005c05cc683934e217e7dbfc5ad975f47bd3587c9c5a5c4584860e3609635ad062508aea3a331b150984d656c0aca262801289f84596f17e2c7da97c1ae01250844556c1e2f8464430266bd0d290065fb59b9657cf3cf426e56a55223c42adb23415a2d37f8fdde5ca856e0bb5c9dc82a0054c28c824fb996cd6a6def323bb294c13ab686fbbd573384cdfa5406cbae992470e7b769766c2d03845bc6178fe7134ecbd5c90c2ef81895163eeb9642fceaa319663673c812ee3ef62a470700add480140c04a60410111880d9e8e0f6af1a2b5ba0d2b884ea4b065c051001cc9e01b38707e9189f59c2e7bf3c612a95506f4e43d914f9856f0780b43a4202400d52a4c563dfc040a5311bf64a2b1a4be38908546aa076c973ce0e41298053780201a84604d82d7b9287aed807e505f3dc913f42218672b1488c47fdae6b44041ca5c3f165050249bddf22074414e2029b64e0081f27cbe1782946c0a64cd024816c0bc7f3120fc213122403169e9dd7496fbdb7c56393af8099235fcce122cccf8863dfc162a418249a42cec107937cf66407baeb185e6dc663b8482a3eaa152850d81f4b8a5d03ba23c9dfcf933629d5121aa495cf1da7c8679e1f6640490dbab4140c334636cd209f7c3edb603898f73cd631901c4a50b7dbc5079b6f7242af3438a70a463db3bf8646e19919ef5ff999740050820b252e4a20dd97988ea0a246f8092a4c07006939007975995f7ee9d0c5cf9efdbfe3999d88803db4a1e95580a333205a95f1dd4c8bf5e568c3c1024c2d8e9c8a701d152760c128a7cff3a862953880eb9cc3a8cc82b46a6c9b8ee302c702caee41d3aad0cd6950c1b55379874a406000a0950fb44fb072759b00e09d6b43361b6f80fce94a3466b82c21fa8fb0fae19000e0dd1b25d6cda95cbf5e4cff3e70ebfa1e498b33e7b6b41cac5cfd3d4cf7ce8d3ed9e7cff2ef0336c11e9c86c10160e5da16c9a1cafa15c0adeb7f52a8000048cb0669d14d05001cf934c37cd8efc1ac37915713f6e03083178363948ca40acc32fc1f4e903d3849317560f577330ed73e3923391c66b31a0adcfbf86966fbfaf2a32d525652057b1025161258fb749ba425fd4ba60b717e88f56591bb1f8ac1912f7b74291583e33ca88f3f8012ae7f295510677b59020020ce77600f4f21067f637d79bb7033deb8d92329546c4e1d6cdcdc2dc4af2fef9238ffcbf37db68bcddb51628937a3efee1e1170549849bcd98343687a0700c1758ab30fda83d51e01d9b7a7177e377c786f87e4f014d23ac5c3affef8af8777a6d145bf9e3f076c35aaedab709f8e0000000049454e44ae426082</data>
+ </image>
+ <image name="image1">
+ <data format="XPM.GZ" length="269">789cd3d7528808f055d0d2e72a2e492cc94c5648ce482c52d04a29cdcdad8c8eb5ade652323452002220a1a4c3a5a4a790aca06c000620ae32886b649096666801964502e4f1959595c13c6565301fc481626c7c985a65b2ed43e2d75a73010022253132</data>
+ </image>
+ <image name="image2">
+ <data format="XPM.GZ" length="269">789cd3d7528808f055d0d2e72a2e492cc94c5648ce482c52d04a29cdcdad8c8eb5ade652323452002220a1a4c3a5a4a790aca06c000620ae32886b649096666801964502e4f29551f9ca500165085f590f86c17ca81c88063b07aa57991cfb6badb90035703153</data>
+ </image>
+ <image name="image3">
+ <data format="PNG" length="7252">89504e470d0a1a0a0000000d494844520000007c0000002d08060000006ccc0fec00001c1b49444154789ced9c779ca55779dfbfe7bcedf6693bb333b35d5af506261059103b9490c40ec514f1010ca60a442008448bb1892146b11cba648a4237b215d1314522d8a0c4a08201f5bada5d6d9d3e73fb7dcb394ffe786f9d99d5162448849fcfe7eedeb9e7bee7fc9ee777cef33ca75df5939ffc847f96df1c717fdd007e9572cd4c227e2e87761c4061ad256935b9705ca95f37b65f95fc4610fe95e5408a1bc6993ab584e3fb28a54001229824e1fbb5aad4171728cfcdf08a9dc5c734f98f69c2af3ea864646a33635b87f1820cda7152b2fb443942decd11e446c80e4f70edec21b9703c7ccc927ec2847ff6be86f8d9028ee7910e17b0d660a290b05ee3b567977ead46bb76be201bb66e22532ca21d1750580322abbfa950ca41bb59b2251fc7cbf1b5f919795e69f1d74efa1776c5e20401da75514a03828913a2469d579d9639217cea7893b62fedf3253fba81205fc4f503b476daee11440463624c1811b51ab4aa2bd4571679cd192706ee44e5cb8ba3529a98c6cf76e2f57a440f4a67e08bb5c451486d719685bdbb78edd9f95f19f6ab6eaf497e740399e21041ae90dad7f5d05aa50005ac589230246ad668ac2cf392e9fa71e13b66c23f738f95e1e9ad644b235df7c87ab94edbb2622d2689899a0d1a2b8b94670f70d1398f3ef1d72e8c4b697c0a2f936d8f8a75c8eea090bef77d4522421285d496e759dcf720179d1d3caab83ffeb3b20c4f6da130328e972be07a3e5aebd4bedd9e2803efc55a9238a4592d539d3bc4cb7744c784f19808fffcae408627b7121487701cb71b07bb76ecbce96bb2f3d68ac5c43161bd4265fe307fb4e3f87ae4b1ca95b754647cdba914366cc40bb2eb635c4d74ffff7da0bba4c7318d950596f63fc845e7ba8f0aeecfddef4b69629a4c6918d70b505a0f405a83b10db0f3913586a859a33a7788976e59392ac6a312feb9fb72323cbd153f57eabac71311b196a8d5a0b134c7e2c10779d3bf2c3c6206bce2e69a8c6d3985c2d8465c3fb326313b5111041b2734ca8b2c1fdccdebce7b64a76f5fdc332cc5f169fc6c01e568d46a7773ac38c512b71a54e60ef1b26d0f9f7b3c2ce157dde1cbc8f44904853eb28f120b8fdc523bc6c711cdf222cb0776f386273abfb401afb8a925a39b77921f19c7f18394ec13c5b85afaa66eadca12cb87f7f2fac7d95f1ef38d0d19d97432f99109dc2083d269e83921dcdddc43885b75ca33fb78e5a9e523623c22e11fbb31920d5bcf203b34f6cb93dd074e009bc484d515ca33fb78fd6f1d5bec594f3efe532d4353dbc81447713cef9125bb236d743649086b652a73fbb9e8bce60963bef2662bc35327911d1ac5f1fc47067307a3b544f50acb071fe4f58f5fdfae4724fc33f74e4871c3e674d4c0609c5b2f06f657bf5e92b42a4e4a3bf6d4976628cf3ec4a54f3fbe058f4fdd5692e2d8347eae8876ddf5db5dafedf56279bfaca74b3fe6b0417d7186f2ec5e2e7ddaf185a54fdd5a94c28669825c09e5ba6b1df8c3e1399acddb1f4912d3589967e1a17b78eb53736b9a5897f02b6f0e64786a277eb688d27dcf1ccda0ab9a17e8a6c8695c550320452c268a08ebcb345616682ccff1b667ae05d92f57dc14487e6423d9c2084e90e966e25d7c5d3c82f4a5e7ddf6d7e05e950dada75fbf5622d838a455afd05899a3be7488b73ff3e13beb1537fa921f9920531cc5f5b33d17be2eee556df7656f47d5a78d2f099b54e6f7f1fac72d1f1be19fbe7b9be48626504ebb178a60ad41ac49696ccf10faa73b2a45d155c6c42149d4c49a04a5348e17e006391cd7efe9d8ae43acc1c41149ab4ed8ac10376b189320d62236c1442d945678d922417e984c6138ed8c8ed7af6b57ac8949c20649d442c4a2b5831be4dac67652e3598b3531d618446c5a8fd668eda0b48352ce1a627a8e42b056b07144dcaa12d62b44ad1ad624088242a19db4cd203744ba4015a0da6bf8eb6146a46b5b543fa1824d12e2a88169eba3b48337a0cf2a8cd6d2aa2db3b8ff6edef6f4c1d9c59a95b68ffe9fbc0c4d0e61add3f6112979adda12617591240e01dbabbd5b9dc2717dfcdc30ae9fa1b13243757e2f51b38ae3fae447a7199a3c954c712c5dace907a81c9493c5cb06b8c110b6942e89890851b342656e0fb5857d98782f6e90a5b0611b43933bc9e486413b03c6b3d610d6565899d9457de900260ef132054ae33b284e6cc70b72247148585f26ac2d11b76a98380495e277fd2c5eb644901fc6cf96d0ae3f10013abaa2143819bcac8f130c93ed5bc64bcda2504ea7f368ac0071f7e9dea016c1241149d448712068c7c70b72385e808810d65628cfeca2b6b81f9384784181d2c693294decc0cb14d64e41d168374fa6b011581ce0770de15e760c510126692713626955ab540fdfc3c9a30fe0fb4d10db06dc171c95423901771ddc82ce4d636a7b79fb85b36c9b8638862bafad31b73286eb0fa15d67c0883dcfa5db2f0f940086248c715afbb9eca2794687157152e77d5735689637e0baa5d4a87df84d92d058596254ddcfe56fa9e33ac262b9c27b3f1be3664688fd88dae27eea73f772c69645769e6a2966856628946b707016f63d54a09a3b8591e933090a831d74d0b0fd98dd81793c805845db791c317d30494ca33c4b65e6011a9539b096a030cad0e429e44736815234569628997bf8c0db5b08c2c25299f77d41087213289debe2ebe25220d6c70b4678ffdfed97773fab17260708bffc3a4f86274b8871b036adc15a216a3491e60caf7eae61f3547e751fe94a1c0baf7bef616a951c342b0c178489319f30b2903488a216712b41bbba0b4f298d529de54f9bbad7f6aa523abf8c499a7546861413631e512424610dd38a4822413b923e6753d76ce290b05e27676a8c8fbab8ae423044f50aad4a99249ea510dfca656f8dd93419acab47a365f8932bf7b2bc3285760a28edb6d30f95bad04ede20360d3b6d8f97cea3536a45a413e77a1ddaf64247c715c7ad16d5b9835cb0f37e5ef4ef52977ae3ad2b7ce9872e8e5bc2f102c27a8320aa313e9601c0241151bd42d868e078611753baccddc1a0d04e9e4c6e2350edea3640b8178c82ca6012d5cdccad85244e932b39da823420cac31a8518191809d6589230a25959c6442d4c12a2b4c6cb14f1b3c328a5895a65e266056b13b4e3e30679e230a6d110bef5bd59724184e053a94e901dd298d812870de26699b0b182895b884d685666c967ebc050bb238189135ab50a61793f7f7649c4a6c934fe4791e5a1032d40b171dca358704120095bb44c0591c35893eaee781982dc305ea684528a246c10369649a27a5aee0638ae8f3131364e47a3d62e4a3b589360e21628851714f073c3388e4fb3b640757e3fcef60a1363230064bd2a95d9dd68278f171468d596c8a910c8b4f5115ab532d5f903b4aa65001c3f4b901bc1cb0ee1b8417bc004b8c1c8fa84ff976b9a32baa984b50e12d3f53962041b0bd6d0f51922f0b1abf6f0bd1b62fcec50374eb941119bd986972d92583de0fbacb1848d3a716b17a3fe1eb4ada21d97e595cdc44367a1b44bb8722fc3de5eb021a2f32c2f6d4779251a0dcbf77fb880c465b49fa7ca387e6c69d56a34cb87682cdecfcea979a6a7131696626eb96799c6581da144c7899ac410d66b8ce69638657b4af6e252c4abdeb28ba5e6047e7608c4303ddee2b71fef530b4789a23a3a3cc0903f8b3531b114595a3a8da18da7a11d8fdae24338cd3b29788b80d04c4acc568b0c656b943265c41a2a7587b945d8b609ce3d196a0dcb7d0fe528eb1d640a638495036cf077335288bab62a64123666f71044153005660e4169acd9edc0885099db83af9b9c775e1e470bbb0ffacc1dde4c69e3196487a671bc0ca051bac0fbbe6ae53dcf4fa75b5dc2dd600454169bf422a202ac01938035423f83f586b052cb104811ed7828ede0eb118aa531d019c40e66b8d60871ab894a56b8f4ad754e3b39edadeffed001ee5b9844bb3e63de7e2ebf542815331c9c0979e787f6530bb752ca593ef6eeb3d838ee1146c26bdf1dd1acd7891a0ddce66dbcff0d4dce3ad5031c20e0e06197abafadf5b99d540fe2844ccef4ab4d2b04ad3378c1286e90672571b9fee71e7e7604ed0839672f1f7807e4b201cbe516af78d75dd4bd619c20c7cae1fb79f7abe679f2bf4843c3e59f9ce7bb372cf1dc671b5ef3e22200d7fffd1cd5bae5f9cf9aecee7d349a09977dfc0e6eb967845266850ffcd721c6467a79c2054f1ae18227a5a37d662ee1b9af3e4852ead95ec4f27bbfa3b8e4e22172b9f4396384af5cb787bffd8105952153dc988622021c6f04483d415773c71902f131f1e08441ba84f74d4b143ced29c36c9a8ed04e0ba52294d21c5e34fce3ddc33899098ce91bded271ab16a2b03b0d0230514812c568a3304e88d0898f4212862436c1edc4f54ee789635ae10a617d8ecbdedce0ac53d3a95e9208fb0eb6182eb9bced4da70faca98b2820c3c1b90c6164097cc5d8a8cf373e773a37fdbcce5d0f1ce4f6fb14bb0f16f00b9bf07301daf1393c5fe4c73f2df36f7e27cb5051f3dbe794f9c77bf6e1664ae4d421ce3ddd6b1313f3d3db144a0588edb9d067fceb71b4562cafc4948a694e91cb6afee3cb3c6ebe643f91d5345b2e71acf03cdd252f8a2c82a2150ae02136eed639b931cb1f5f7a06b57a42a361c8e51c1c47f1dc67f8fcf4f643ec59de82e38de2780e625d1ca7b09670a57318a3519226c89d2cd2da1ee1fd2efafc278e72fe1307fa06b7dc1a72c3cf2b881a41561d36100b36018c0c92d7f95cc076e6a1eda6ac4d43899581a6d378dc5862e7f42ce79d9103d284f15def9fe5a6dbb264fd0a7ffe8e3ce73fa1d07bc83a386e8928dacc67aeb99f37bc3c0b4036ab79ea938b3cf5c9e9d7169612aefefa2ebe7f4b037fe854943bce37fed7019efe14d01a9efd0c8feffe68176e50e499e737c9e75237fb939fc5ac3426707d0768749b8d13e1f22b66f9ce0f2ddba742fee693db715dc5d484c7f438ec9919e105172df2a2df8f78cbeb370370fd3f2cf29e0f54c90d6fc1cb0c931b2ea2ddfddd3a1d47f1f5ef2ef3c1ab1a783ae2caffb691b34ecb11048ad3b7b7b8f7276592a118c820a2416579e7a7eb72f96bf269baf98eff118948808d15261292184cdfcb26d0372801a8d513169622169762169662169712aaf5b472b14eda41fa446cda69ecaa7a8c114c92be06ca24cd1f4c2288194c166d62089b55ce3cc9e279e928bef3de2677ee1e6778fa7c54fe5cbe7e5d3cf88c4de359a674325fbf610797fc59931b6e6cd06c0d02da30eaf29f5e95e339bf3b4b636506ed16d97d688c5fdcd102e0f49d19b66d384879e66e9ef6db1aad53cf72dd8f345e760ae5e491be89e203bb237e70f328c3534f64b632cdfe4361b76c722243909f26377c32aed7eb9cdacd50183b9dd12dff8a914d17901d3a09ed64076cf6e9ff09d9d1276083d3b8e39e9eae13638a386c9144a6cd9d0209503a1d182ea42326890d6956dfb7d9aa52a24ccc008122f0914f1ce49b3fc8121426d318ae5cbccc30d9e16da01cac1ddc14b0168c016554dbbd760a246ddbc4e026dd291ab43b4802abd2018c154c1451c8f51a285784448a04fe184e028b2b1e564077366c8c601270fd8020bf95bb0fe4b8f5ca4554b2c4f6e9324f382be605cf2a32b9314843d6050edff8fb25c46ec1ea4d7ce3fa799e705e3aca9ff36f7d0eeddfcbb9676e07e0b6bb43f6cf8de196c649a218faf4db7fc8e0f81bf1b35324cd455aad956e99a315a8f66e99ea9f3069b453c4f136e0b839945a01e919617129a1190f932d4e610db4c2a5de935a30b12189413b2957496c3071027829e11f7c434efde9d54d711cbb7639b1edd2578f70c72f51d87026850d67b4416994e3a1b547d45a4456ef225ab046a3ad3330923d27a25599076078a24536d3ebc95daf30982f22a210f1a8f69da528e61524355ad525e2d632439331dd6d00019b58c27a99b07a98a8b988e0e37aa3e08fb17ba6cc9df73ec8fe0387b8ec4fb7e3388a5c06f281a1253e5e768a9befd8cb43fbeb6cdbe2f37bcf9c60e6708520486df5fd1b0cb19ac2774a889d1b0865710ce023e221d6c15819d0c31a8d883340a8584bd8acd2aa2de2fa3171d8c2eade737122201e223e222ea6df9bdade4031719ae045cd26fffd75a92becb612356a246142120dbaf38e5b905523532917ed0ee3fa13b8c1465c7f02ed8e02396ca2d3b9f8c00857202ec6665858ea153cfe4ca13a771ba67a3b17fe07bfeba23bcf58a3d6761e71d04e91bbefd7a9f2c0d96766d83935c3d2fe9b88566ee759cf1c5c44b489216a9429b90ff2f9bf98e3594fb99f02bfa0327b27f5e5bd28b3cc19a76670da5bf48da6a2dac800591c778c84cd7ce37ba9ebcc655d2e7eed6928958eb61fffac80174c2264db78fbb182350a93a4bab02aaf11a311f1a8d47a846f99d6d07c8085bd3f66e9c03fd15839848907439458854d54db65f725a7a403d4c469684e2243d4ece5145dab84f565dccc349e17f4ce4eb52b3609a8554617ab11a3b18933e08645da40cc2008442312801ee5f6bb67f9dd0bd2b2173d6f034f3ebf45a9e876173d7adb91e94953cb809d403c1c6f84db1f88b9ebde151e77b64fe06b3e7ad924f73ed060c368894dd39941c2adc2c60613b7d8b625e0d28b87b8f462a8d50cd59a6164781b994ccfe8fffb264b2b1ec757795019dccc26befbc30779d58b0dc5a2d3ed183ffc7144b5b999627114315e5bef7edd535bd884b5798d805817ed061c9c0968b5844c4671f619397ef4cd2d542a09dff9c1437cec330e66381c78b6d789069363042401132b944e77f6a27a2f8c7435fcc8254ac5cd1a496407477892ba6218ec084a7988789844adf508c601fc6ef50a052a40a902ae3fcdd7ae1fe3b6bb7a3d76f3748638163ef2577b58a9743e4f9f11eba35406d5838ad2591c6f0341fe34defbc12c0fec4e00c864348f3ba74026e3f0d18fef218e6db72ea5b22855a4158d72d7bd71d7488582c3d4a4df253b4e84af7e3be26fff6e123fbb0d911c625cb433422d9ce05bd7d50708fbd6f50ac79b060a58e322e2035e0f2b0e48801817a532a46b059dc2005416c71de7ce5dd37ce5db09619402f35cc5d8a8473e9b761445ff3270ca8758172400e5f595b9083e2681244a8f9585b5e55e93fddba3977c785832c51d2827689394c680245c26aadec5d6f107f0741d94cbecf2040d1e4f90df82d67eff8e01495426acdcc3960df7e3bb55048f03f39b31de39385e91a87188b072374f3a77816d9b2d8bcbf0e35b842882534e02d711129b63dfdc0ec49b42e2c36cdfb81b57b740f9ec3eb40d277736dacd10d60e20e1fd3cf19c45b64c19e6162d37fed412468ad34fd1a42be905761f3a0937b71513576955f790f36639fde490cd5342b1a0301666e714b7df9763b9be996c69277e6e12edf898a441d498a5be7c079b477ec157bfb815805bef68f1a6f78c110c3f85203f8dd88456ed214ade1d8c0fcd212294eba3ccd7cec4cb4e10d5f7b175fc5e02b78a522e07e6a7899d73703363c4ad459ae55d649c036c1c6b90cf5a509a956a89430b1b08bc063bb72e203622b17976cf9c4a503889245c6638b88bb1a10510a1dc1865be7636d9e2c928c725acede3c36f5e50eb127ef19fc7921d3a0bd71f193858606d8889ca24d10ad64628348e97c70dc670dc1c7d8ea2cd794c129749c265ac0d51cac1f14a78c1084afb581b92842b9868196b429476d14e065088c488085afb38fe108e93c5240d4c5cc6da18a55c5cbf9462d41ed684986825c5669aa09cb42ea5c126edf56c1fd71fc6f18a88586c52c7c4354c52c79a30f5814aa39d00c72be27843385e01ad5c4c52a7597d90e6cadde4bc3dbcf1d59a0b9fb701803f797f837ff8a7df223f7a2eae57020413d789a3656c5c0304ede670fd51b41360927a1b67ab7d46a0d82ecb209260e31a495cc59a162249ea1f9c0cdacd2136c62475444c5b9f111caf80b51149b48c8d1bedf6b2699d5e1e9bd46994efe5137f2ceb130ef0c6cb27c4cf6d46eba02f14497b17ab2f9a7677b9d63becd1f7fdceaed1c0f73be59dc3072a75d98a813604d5bd71d10b542add0357fa08753150d6794629dddbe5eac327fd3aa1fb0e3e681043d49a87d6cd7cfcb2839c795a2f11bcfdae888bde368c5fba003fbf09adbc74d74c2c22d29bd976f46eeffeb1ba3ddd674369efbc49ffb424c59e6e5cd94ea5e91982ce3e7867e5aa631fe5802444cdc35cf1f6430f7f0022accfa174e750a0ee5582c340fc795839daf757970b562c6223ac6922128124a9224aa170514e80d6d934dcd80ea1ebb775f43d3dc56aaf34f0ace9fd91ae0ea6c9519208e58ae1c65b123ef4c93c78a70379e26635f54c366ad7e0b637943cb49345e9a0ddd9d7b1c94022d7d95b3f5ef106fe4a0f55b408ebf36bbeb9ee11a78bde3b2e7e760b4afb9ce859e9a349efa896c1da26362993448b24e1029ffb8bec9a465ff1aeaab8de28ae3f81e38fa075b6bb58f1e8204c519aa44a58df4358db8549aa28ede378237899711c278fb54d4cbcb23ee677d6c40dc670bd311c6f18ede441ad7378f111450c6223e2d6213ef59ec3c776a6ede56f0f25533813c71b4b5d1cb41338569dcf59759243f515f59f77eb3bffd67b2f88c4987899383ccce72e3bf6a3bfaff8cf8e78c1261c6f14add3d8df7f45e0486dd387b3fbbd3e053a7b085ddd14883558dbc026f534ae8a416c8b245ee2f3971f3b77af7ca71637b309d71f43e980347cb471b07edbeb613c9acd05838d57086bf7f1f9bf5c7b71e288c794ffe81d39f13327a1dd7c1a7fe98563691ba7237dd1a3d731fa1be9fed347b66d9284b384adbd5cfde1e3bf73f69237af48903b19cf9f423939c01934525fdbab5d7c3f4eb5aa40d61854ba8614d3c4c4f3448d3d7ce9230f7fbaf648f2ca778d8aeb4fa576edc3dcc13dc06d3fc147b379bb026b9bc4cd87f8fce5eb5f3b7ad89b272f7fdbb878c1344a67dbb174b0a17e43f6ad62ae6da44f2130585327090ff2c50f1efd2ed4d1e4656fcd8a176c45bb25c01d1835ab71f6635c356806bebba64c6c8a393ac8173fb0f6e8eff163ce89176c413925941ac4bc1eae8e1cc9e690c66d9198249ae10b7f79f088188f7ab7ec656f9914c79b6a271e6beb7938d207ff9674ea91ac904407f89b8fb51eb150f69237f9e206db71dca18118b99ee1068cc49189efe2168bb53592e800577fe4c857788e575efc46c40bb6e3b8a3a0fcee805a0ff7ea46d7e06c936d9305a2c6fd5cf38923df763d2ae12f78cd8af899d3d0de647baeacd718add3f86a0376cbc52212629345a2700f5ffed4237f13f3c28b1df1fc1d6877241d35abf0f5635cfd7eb5f446b6c19a1a49bc9f6bfeaafa88637ee16b1be26576e0781328956d4f1bd5bad83bb8faa53b906c844de6895bbbb9f62aef61711ef3fdf00b5f372cae3785d29d4cb3afde553da003046c3a5d31554c32c7b59faa3c9a092a2f788d1237d8817646dba4abf5738a6eccebbdef026be3173188ad9244fbf8f2558fce15e78ebcf0a28c38de245a0f7513ba7ee28f6cdf348134c91c49b89baf7ef6e83f5e705cbf00f1bc57228e3b85764648d7c6dd145cb74bb6171e302011d6d611b38c4966f9fa17d64e5b1e0df983578ab8de0eb43386521eeb05f5fe9c42b587b3f47d98925d2689f7f1b5cf3e72a1e768f2fc57e745eb11945340a9205d8757edb979ef272a10312021d656b0c90c5ffd6c7ccc188ffb273f009ef38789286718ad5360698fb48844883411db426c9d6f7ee997bf0e7c22f2ec9786e2fa3bd0ce787bc342b32640ae7e0f6db223ac59c224fbf8e65ffff257834f449ef387a1285d48377c74b6cfc6a436b635ac2df3cdbf3efefbea2744f8ff2ff2ec978e887626513a9f7a23516b032190269426edac661e93ece1dbd79cd8b4ebff75794c130ef0fb2f44943385d223e9366b270c011da2a185d832d6ccf19d6b1fbb3fd905bf018477e4dfff8111a537802af4ae3661db216889ebbe661ed34477e43786f07f9654fe2fc2ee9042ad017b950000000049454e44ae426082</data>
+ </image>
+</images>
+<layoutdefaults spacing="3" margin="8"/>
+</UI>
diff --git a/muse2/synti/fluidsynth/fluidsynti.cpp b/muse2/synti/fluidsynth/fluidsynti.cpp
new file mode 100644
index 00000000..d3cd5699
--- /dev/null
+++ b/muse2/synti/fluidsynth/fluidsynti.cpp
@@ -0,0 +1,1314 @@
+/*
+ * MusE FLUID Synth softsynth plugin
+ *
+ * Copyright (C) 2004 Mathias Lundgren (lunar_shuttle@users.sourcforge.net)
+ *
+ * $Id: fluidsynti.cpp,v 1.19.2.18 2009/12/06 10:05:00 terminator356 Exp $
+ *
+ */
+
+#include "fluidsynti.h"
+#include "muse/midi.h"
+
+#include <list>
+#include <iostream>
+#include <qfileinfo.h>
+
+
+FluidCtrl FluidSynth::fluidCtrl[] = {
+ //{ "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 }
+
+ // These controllers' initial values are set by the FS_PREDEF_ values, so just set them to zero here.
+ { "Gain", FS_GAIN ,0, 127, 0},
+ { "Master reverb on/off", FS_REVERB_ON , 0, 1, 0},
+ { "Master reverb level", FS_REVERB_LEVEL, 0, 16384, 0},
+ { "Master reverb size", FS_REVERB_ROOMSIZE, 0, 16384, 0}, // Interval: [0,1]
+ { "Master reverb damping", FS_REVERB_DAMPING, 0, 16384, 0}, // Interval: [0,1]
+ { "Master reverb width", FS_REVERB_WIDTH, 0, 16384, 0}, // Interval: [0,100]
+ { "Master chorus on/off", FS_CHORUS_ON, 0, 1, 0},
+ { "Master chorus num delay lines", FS_CHORUS_NUM, 0, 10, 0}, //Default: 3
+ { "Master chorus type", FS_CHORUS_TYPE, 0, 1, 0},
+ { "Master chorus speed", FS_CHORUS_SPEED, 0, 16384, 0}, // (0.291,5) Hz
+ { "Master chorus depth", FS_CHORUS_DEPTH, 0, 16384, 0}, // [0,40]
+ { "Master chorus level", FS_CHORUS_LEVEL, 0, 16384, 0}, // [0,1]
+
+ { "Program", CTRL_PROGRAM, 0, 0xffffff, 0},
+ { "Modulation", CTRL_MODULATION, 0, 127, 0},
+ { "Portamento time", CTRL_PORTAMENTO_TIME, 0, 127, 0},
+ { "Volume", CTRL_VOLUME, 0, 127, 100},
+ { "Pan", CTRL_PANPOT, -64, 63, 0},
+ { "Expression", CTRL_EXPRESSION, 0, 127, 127},
+ { "Sustain", CTRL_SUSTAIN, 0, 127, 0},
+ { "Portamento", CTRL_PORTAMENTO, 0, 127, 0},
+ { "Soft Pedal", CTRL_SOFT_PEDAL, 0, 127, 0},
+ { "Variation", CTRL_VARIATION_SEND, 0, 127, 0},
+ { "Channel reverb send", CTRL_REVERB_SEND, 0, 127, 40},
+ { "Channel chorus send", CTRL_CHORUS_SEND, 0, 127, 0},
+ { "Pitch", CTRL_PITCH, -8192, 8191, 0},
+ // Added by T356
+ { "Pitch bend sensitivity", FS_PITCHWHEELSENS, 0, 24, 2}
+ };
+
+static int NUM_CONTROLLER = sizeof(FluidSynth::fluidCtrl)/sizeof(*(FluidSynth::fluidCtrl));
+
+QString *projPathPtr;
+//
+// Fluidsynth
+//
+FluidSynth::FluidSynth(int sr, pthread_mutex_t *_Globalsfloader_mutex) : Mess(2)
+ {
+ setSampleRate(sr);
+ fluid_settings_t* s = new_fluid_settings();
+ fluid_settings_setnum(s, (char*) "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);
+ _sfloader_mutex = _Globalsfloader_mutex;
+
+/*
+ buffer = 0;
+ bufferlen = 0;
+ */
+ }
+
+FluidSynth::~FluidSynth()
+ {
+ int err = delete_fluid_synth (fluidsynth);
+ delete gui;
+
+/* 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->setCaption(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;
+ }
+
+//---------------------------------------------------------
+// processMessages
+// Called from host always, even if output path is unconnected.
+//---------------------------------------------------------
+
+void FluidSynth::processMessages()
+{
+ //Process messages from the gui
+ while (gui->fifoSize())
+ {
+ MidiPlayEvent 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());
+ }
+ }
+
+}
+
+//---------------------------------------------------------
+// process
+// Called from host, ONLY if output path is connected.
+//---------------------------------------------------------
+
+void FluidSynth::process(float** ports, int offset, int len)
+ {
+ /*
+ //Process messages from the gui
+ while (gui->fifoSize()) {
+ MidiPlayEvent 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) const
+ {
+
+ //printf("projPathPtr ");
+ //std::cout << *projPathPtr << std::endl;
+
+ // 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++) {
+
+ // if the soundfont is located under the projectPath we extract this from the filename
+ int fileLen = strlen(it->filename.c_str());
+ if (QString(it->filename.c_str()).startsWith(*projPathPtr)) {
+ printf("project path found in filename, len %d shortened with %d\n",fileLen, projPathPtr->length()+1);
+ fileLen = fileLen - projPathPtr->length()-1;
+ }
+ len+=fileLen + 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++) {
+
+ // if the soundfont is located under the projectPath we extract this from the filename
+ int offset=0;
+ if (QString(it->filename.c_str()).startsWith(*projPathPtr)) {
+ offset= projPathPtr->length()+1;
+ }
+
+ memcpy(chptr, it->filename.c_str()+offset, strlen(it->filename.c_str())-offset+1);
+ //printf("path name stored=%s\n", it->filename.c_str()+offset);
+ chptr = chptr + 1 + strlen(it->filename.c_str())-offset;
+ }
+
+ //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)
+ {
+ printf("projPathPtr ");
+ std::cout << *projPathPtr->toAscii().data() << std::endl;
+
+ 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 (QFileInfo(fonts[i].filename.c_str()).isRelative()) {
+ printf("path is relative, we append full path!\n");
+ fonts[i].filename = projPathPtr->ascii() + std::string("/")+ fonts[i].filename;
+ }
+ std::cout << "SOUNDFONT FILENAME + PATH " << fonts[i].filename << std::endl;
+ }
+
+ 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 MidiPlayEvent& 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());
+ case ME_PITCHBEND:
+ setController(ev.channel(), CTRL_PITCH, ev.dataA(), false);
+ break;
+
+ case ME_PROGRAM:
+ setController(ev.channel(), CTRL_PROGRAM, ev.dataA(), false);
+ break;
+ default:
+ break;
+ }
+ return false;
+ }
+
+//---------------------------------------------------------
+// sysex
+//---------------------------------------------------------
+
+bool FluidSynth::sysex(int n, const unsigned char* d)
+ {
+ 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)
+ {
+ MidiPlayEvent ev(0, 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, ::fontLoadThread, (void*) helper))
+ perror("creating thread failed:");
+
+ pthread_attr_destroy(attributes);
+ return true;
+ }
+
+//---------------------------------------------------------
+// fontLoadThread
+// helper thread to load soundfont in the
+// background
+//---------------------------------------------------------
+
+static void* 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
+ QString temp = QString(filename);
+ QString name = temp.right(temp.length() - temp.findRev('/',-1) - 1);
+ name = name.left(name.length()-4); //Strip off ".sf2"
+ font.name = name.latin1();
+ 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();
+ }
+
+ pthread_exit(0);
+ }
+
+//---------------------------------------------------------
+// playNote
+// called from host
+//---------------------------------------------------------
+
+bool FluidSynth::playNote(int channel, int pitch, int velo)
+ {
+ if (channels[channel].font_intid == FS_UNSPECIFIED_FONT ||
+ channels[channel].font_intid == FS_UNSPECIFIED_ID)
+ 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) {
+ MidiPlayEvent ev(0, 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) {
+ MidiPlayEvent ev(0, 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) {
+ MidiPlayEvent ev(0, 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) {
+ MidiPlayEvent ev(0, 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) {
+ MidiPlayEvent ev(0, 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) {
+ MidiPlayEvent ev(0, 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) {
+ MidiPlayEvent ev(0, 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) {
+ MidiPlayEvent ev(0, 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) {
+ MidiPlayEvent ev(0, 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) {
+ MidiPlayEvent ev(0, 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) {
+ MidiPlayEvent ev(0, 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) {
+ MidiPlayEvent ev(0, 0, 0, ME_CONTROLLER, FS_CHORUS_LEVEL, val);
+ gui->writeEvent(ev);
+ }
+ break;
+ }
+ //
+ // Controllers that depend on channels
+ //
+ case CTRL_PITCH:
+ // MusE's range is from -8192 to +8191, fluidsynth seems to be [0, 16384]
+ val +=8192;
+ err = fluid_synth_pitch_bend (fluidsynth, channel, val);
+ break;
+
+ // Added by T356
+ case FS_PITCHWHEELSENS:
+ err = fluid_synth_pitch_wheel_sens(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, int* initval) const
+ {
+ if (id >= NUM_CONTROLLER)
+ return 0;
+ *controller = fluidCtrl[id].num;
+ *name = fluidCtrl[id].name;
+ *min = fluidCtrl[id].min;
+ *max = fluidCtrl[id].max;
+ switch(id)
+ {
+ case 0:
+ *initval = (int)(fluidCtrl[0].max*FS_PREDEF_VOLUME);
+ break;
+ case 1:
+ *initval = 0;
+ break;
+ case 2:
+ *initval = (int)(fluidCtrl[2].max*FS_PREDEF_REVERB_LEVEL);
+ break;
+ case 3:
+ *initval = (int)(fluidCtrl[3].max*FS_PREDEF_REVERB_ROOMSIZE);
+ break;
+ case 4:
+ *initval = (int)(fluidCtrl[4].max*FS_PREDEF_REVERB_DAMPING);
+ break;
+ case 5:
+ *initval = (int)(fluidCtrl[5].max*FS_PREDEF_REVERB_WIDTH);
+ break;
+ case 6:
+ *initval = 0;
+ break;
+ case 7:
+ *initval = (int)(fluidCtrl[7].max*FS_PREDEF_CHORUS_NUM);
+ break;
+ case 8:
+ *initval = (int)(fluidCtrl[8].max*FS_PREDEF_CHORUS_TYPE);
+ break;
+ case 9:
+ *initval = (int)(fluidCtrl[9].max*FS_PREDEF_CHORUS_SPEED);
+ break;
+ case 10:
+ *initval = (int)(fluidCtrl[10].max*FS_PREDEF_CHORUS_DEPTH);
+ break;
+ case 11:
+ *initval = (int)(fluidCtrl[11].max*FS_PREDEF_CHORUS_LEVEL);
+ break;
+ default:
+ *initval = fluidCtrl[id].initval;
+ break;
+ }
+
+ if (FS_DEBUG)
+ //printf("FluidSynth::getControllerInfo() id: %d name: %s controller: %d min: %d max: %d\n",id,*name,*controller,*min,*max);
+ printf("FluidSynth::getControllerInfo() id: %d name: %s controller: %d min: %d max: %d initval: %d\n",id,*name,*controller,*min,*max,*initval);
+ 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);
+
+ MidiPlayEvent ev(0,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_id == FS_UNSPECIFIED_ID)) {
+ 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, bool /*drum*/) const
+ {
+ if (channels[i].font_intid == FS_UNSPECIFIED_FONT ||
+ channels[i].font_intid == FS_UNSPECIFIED_ID)
+ //return "no preset";
+ return "<unknown>";
+ else if (channels[i].preset == FS_UNSPECIFIED_PRESET)
+ //return "no preset";
+ return "<unknown>";
+ else {
+ fluid_preset_t *preset = fluid_synth_get_channel_preset(fluidsynth, i);
+ //if (!preset) return "no preset";
+ if (!preset) return "<unknown>";
+ return preset->get_name(preset);
+ }
+ }
+//---------------------------------------------------------
+// getPatchInfo
+//---------------------------------------------------------
+const MidiPatch* FluidSynth::getPatchInfo(int i, const MidiPatch* patch) const
+ {
+ //if (channels[i].font_intid == FS_UNSPECIFIED_FONT)
+ if (channels[i].font_intid == FS_UNSPECIFIED_FONT ||
+ channels[i].font_intid == FS_UNSPECIFIED_ID)
+ 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)
+ if (font_id == FS_UNSPECIFIED_FONT || font_id == FS_UNSPECIFIED_ID)
+ 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 || font_id == FS_UNSPECIFIED_ID)
+ return 0;
+ if (patch == 0)
+ return getFirstPatch(channel);
+ midiPatch.typ = 0;
+ midiPatch.lbank = 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) {
+ if (int_id == FS_UNSPECIFIED_FONT || int_id == FS_UNSPECIFIED_ID) {
+ 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 pthread_mutex_t globalMutex;
+static bool mutexEnabled = false;
+
+
+static Mess* instantiate(int sr, QWidget*, QString* projectPathPtr, const char* name)
+ {
+printf("fluidsynth sampleRate %d\n", sr);
+ projPathPtr=projectPathPtr;
+
+ if (!mutexEnabled) {
+ pthread_mutex_init(&globalMutex,NULL);
+ mutexEnabled = true;
+ }
+
+ FluidSynth* synth = new FluidSynth(sr, &globalMutex);
+ if (synth->init(name)) {
+ delete synth;
+ synth = 0;
+ }
+ return synth;
+ }
+
+extern "C"
+ {
+ static MESS descriptor = {
+ "FluidSynth",
+ "FluidSynth soundfont loader by Mathias Lundgren", //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/muse2/synti/fluidsynth/fluidsynti.h b/muse2/synti/fluidsynth/fluidsynti.h
new file mode 100644
index 00000000..10b96b9d
--- /dev/null
+++ b/muse2/synti/fluidsynth/fluidsynti.h
@@ -0,0 +1,150 @@
+/*
+ * MusE FLUID Synth softsynth plugin
+ *
+ * Copyright (C) 2004 Mathias Lundgren (lunar_shuttle@users.sourcforge.net)
+ *
+ * $Id: fluidsynti.h,v 1.15.2.5 2009/11/19 04:20:33 terminator356 Exp $
+ *
+ */
+
+#ifndef __MUSE_FLUIDSYNTI_H__
+#define __MUSE_FLUIDSYNTI_H__
+
+#include <fluidsynth.h>
+#include <qstring.h>
+#include <pthread.h>
+#include <string>
+#include "fluidsynthgui.h"
+#include "libsynti/mess.h"
+#include "muse/debug.h"
+#include "libsynti/mpevent.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;
+ int initval;
+ };
+
+// 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;
+// Added by T356
+static const int FS_PITCHWHEELSENS = 0 + CTRL_RPN_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
+ //FluidSoundFont* font;
+ };
+
+/*#include <string>
+#include <list>
+#include <map>
+*/
+
+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, pthread_mutex_t *_Globalsfloader_mutex);
+ ~FluidSynth();
+ bool init(const char*);
+ virtual void processMessages();
+ 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**) const;
+ virtual const char* getPatchName(int, int, int, bool) const;
+ virtual const MidiPatch* getPatchInfo(int i, const MidiPatch* patch) const;
+ virtual int getControllerInfo(int, const char**, int*, int*, int*, int*) const;
+ virtual bool processEvent(const MidiPlayEvent&);
+
+ virtual bool hasGui() const { return true; }
+ virtual bool guiVisible() const;
+ virtual void showGui(bool val);
+
+ void sendError(const char*);
+ void sendSoundFontData();
+ void sendChannelData();
+ 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[];
+
+ };
+
+struct FS_Helper //Only used to pass parameters when calling the loading thread
+ {
+ FluidSynth* fptr;
+ std::string filename;
+ int id;
+ };
+
+static void* fontLoadThread(void* t);
+#endif /* __MUSE_FLUIDSYNTI_H__ */
diff --git a/muse2/synti/libsynti/Makefile.am b/muse2/synti/libsynti/Makefile.am
new file mode 100644
index 00000000..04ec45d6
--- /dev/null
+++ b/muse2/synti/libsynti/Makefile.am
@@ -0,0 +1,15 @@
+include $(top_srcdir)/common.am
+
+AM_CXXFLAGS += -I$(top_srcdir)
+
+EXTRA_LTLIBRARIES =
+
+noinst_LTLIBRARIES = libsynti.la
+libsynti_la_LDFLAGS =
+
+libsynti_la_SOURCES = \
+ mess.cpp mess.h \
+ gui.cpp gui.h \
+ mono.cpp mono.h \
+ poly.cpp poly.h \
+ mpevent.cpp mpevent.h evdata.h
diff --git a/muse2/synti/libsynti/Makefile.in b/muse2/synti/libsynti/Makefile.in
new file mode 100644
index 00000000..e2e2197a
--- /dev/null
+++ b/muse2/synti/libsynti/Makefile.in
@@ -0,0 +1,602 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
+ $(top_srcdir)/common.am
+subdir = synti/libsynti
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal-include.m4 \
+ $(top_srcdir)/m4/alsa.m4 $(top_srcdir)/m4/docbook.m4 \
+ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
+ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
+ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+LTLIBRARIES = $(noinst_LTLIBRARIES)
+libsynti_la_LIBADD =
+am_libsynti_la_OBJECTS = mess.lo gui.lo mono.lo poly.lo mpevent.lo
+libsynti_la_OBJECTS = $(am_libsynti_la_OBJECTS)
+libsynti_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \
+ $(CXXFLAGS) $(libsynti_la_LDFLAGS) $(LDFLAGS) -o $@
+DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
+depcomp = $(SHELL) $(top_srcdir)/depcomp
+am__depfiles_maybe = depfiles
+am__mv = mv -f
+CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
+LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
+CXXLD = $(CXX)
+CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \
+ $(LDFLAGS) -o $@
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
+ $(LDFLAGS) -o $@
+SOURCES = $(libsynti_la_SOURCES)
+DIST_SOURCES = $(libsynti_la_SOURCES)
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ALSA_CFLAGS = @ALSA_CFLAGS@
+ALSA_LIBS = @ALSA_LIBS@
+AMTAR = @AMTAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DOCBOOKSTYLE = @DOCBOOKSTYLE@
+DOCBOOKTARGETS = @DOCBOOKTARGETS@
+DOT = @DOT@
+DOTPATH = @DOTPATH@
+DOXYGEN = @DOXYGEN@
+DOXYGEN_TREEVIEW = @DOXYGEN_TREEVIEW@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+FLUIDSYNTHDIRS = @FLUIDSYNTHDIRS@
+FST_CFLAGS = @FST_CFLAGS@
+FST_LIBS = @FST_LIBS@
+Fluidsynth_CFLAGS = @Fluidsynth_CFLAGS@
+Fluidsynth_LIBS = @Fluidsynth_LIBS@
+GIVERTCAP = @GIVERTCAP@
+GREP = @GREP@
+HAVEDOT = @HAVEDOT@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JACK_CFLAGS = @JACK_CFLAGS@
+JACK_LIBS = @JACK_LIBS@
+JADE = @JADE@
+LASH_CFLAGS = @LASH_CFLAGS@
+LASH_LIBS = @LASH_LIBS@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LO_CFLAGS = @LO_CFLAGS@
+LO_LIBS = @LO_LIBS@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+MUSECXXFLAGS = @MUSECXXFLAGS@
+NM = @NM@
+NMEDIT = @NMEDIT@
+NSGMLS = @NSGMLS@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PCH = @PCH@
+PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+PYTHON = @PYTHON@
+PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
+PYTHON_INCLUDES = @PYTHON_INCLUDES@
+PYTHON_LIB = @PYTHON_LIB@
+PYTHON_PLATFORM = @PYTHON_PLATFORM@
+PYTHON_PREFIX = @PYTHON_PREFIX@
+PYTHON_VERSION = @PYTHON_VERSION@
+QTDIR_BIN = @QTDIR_BIN@
+QTDIR_INC = @QTDIR_INC@
+QT_LIBS = @QT_LIBS@
+RANLIB = @RANLIB@
+SAMPLERATE_CFLAGS = @SAMPLERATE_CFLAGS@
+SAMPLERATE_LIBS = @SAMPLERATE_LIBS@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SNDFILE_CFLAGS = @SNDFILE_CFLAGS@
+SNDFILE_LIBS = @SNDFILE_LIBS@
+STRIP = @STRIP@
+SUIDBUILD = @SUIDBUILD@
+SUIDINSTALL = @SUIDINSTALL@
+USE_SSE = @USE_SSE@
+UUID_CFLAGS = @UUID_CFLAGS@
+UUID_LIBS = @UUID_LIBS@
+VERSION = @VERSION@
+XMKMF = @XMKMF@
+X_CFLAGS = @X_CFLAGS@
+X_EXTRA_LIBS = @X_EXTRA_LIBS@
+X_LIBS = @X_LIBS@
+X_PRE_LIBS = @X_PRE_LIBS@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+have_docbook = @have_docbook@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+lt_ECHO = @lt_ECHO@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+pkgpyexecdir = @pkgpyexecdir@
+pkgpythondir = @pkgpythondir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+pyexecdir = @pyexecdir@
+pythondir = @pythondir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+synth_fluid = @synth_fluid@
+synth_fluidsynth = @synth_fluidsynth@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+AM_CXXFLAGS = $(MUSECXXFLAGS) -I.. -I$(top_srcdir)/synti \
+ -I$(top_srcdir)/muse/widgets -DQT_SHARED -DQT_THREAD_SUPPORT \
+ -DQT_PLUGIN $(QTDIR_INC) -DQT3_SUPPORT -I$(top_srcdir)
+AM_CPPFLAGS =
+MOC = $(QTDIR_BIN)/moc
+#UIC = $(QTDIR_BIN)/uic3
+UIC = /usr/bin/uic3
+UIFILES = $(wildcard *.ui)
+MOCFILES = $(shell for h in $(filter %.h,$(SOURCES)); do \
+ if grep -q Q_OBJECT $$h; then \
+ echo $$h | sed "s/\(.*\)\.h/moc_\1.cpp/"; \
+ fi; \
+ done)
+
+BUILT_SOURCES = $(MOCFILES) $(UIFILES:%.ui=%.h)
+MOSTLYCLEANFILES = $(MOCFILES) $(UIFILES:%.ui=%.h)
+SUFFIXES = .ui .h.gch
+EXTRA_LTLIBRARIES =
+noinst_LTLIBRARIES = libsynti.la
+libsynti_la_LDFLAGS =
+libsynti_la_SOURCES = \
+ mess.cpp mess.h \
+ gui.cpp gui.h \
+ mono.cpp mono.h \
+ poly.cpp poly.h \
+ mpevent.cpp mpevent.h evdata.h
+
+all: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) all-am
+
+.SUFFIXES:
+.SUFFIXES: .ui .h.gch .cpp .lo .o .obj
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/common.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu synti/libsynti/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu synti/libsynti/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+clean-noinstLTLIBRARIES:
+ -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
+ @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \
+ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
+ test "$$dir" != "$$p" || dir=.; \
+ echo "rm -f \"$${dir}/so_locations\""; \
+ rm -f "$${dir}/so_locations"; \
+ done
+libsynti.la: $(libsynti_la_OBJECTS) $(libsynti_la_DEPENDENCIES)
+ $(libsynti_la_LINK) $(libsynti_la_OBJECTS) $(libsynti_la_LIBADD) $(LIBS)
+
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT)
+
+distclean-compile:
+ -rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gui.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mess.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mono.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mpevent.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/poly.Plo@am__quote@
+
+.cpp.o:
+@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $<
+
+.cpp.obj:
+@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+
+.cpp.lo:
+@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $<
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ mkid -fID $$unique
+tags: TAGS
+
+TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ set x; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: CTAGS
+CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) check-am
+all-am: Makefile $(LTLIBRARIES)
+installdirs:
+install: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+ -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES)
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+ -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
+clean: clean-am
+
+clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \
+ mostlyclean-am
+
+distclean: distclean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+ distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+ mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: all check install install-am install-strip
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
+ clean-libtool clean-noinstLTLIBRARIES ctags distclean \
+ distclean-compile distclean-generic distclean-libtool \
+ distclean-tags distdir dvi dvi-am html html-am info info-am \
+ install install-am install-data install-data-am install-dvi \
+ install-dvi-am install-exec install-exec-am install-html \
+ install-html-am install-info install-info-am install-man \
+ install-pdf install-pdf-am install-ps install-ps-am \
+ install-strip installcheck installcheck-am installdirs \
+ maintainer-clean maintainer-clean-generic mostlyclean \
+ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
+ pdf pdf-am ps ps-am tags uninstall uninstall-am
+
+
+de:
+ @for base in $(MOCFILES); do echo -e "\t$${base}.cpp $${base}.h \\"; done
+
+nde:
+ @for base in $(MOCFILES); do echo -e "\tmoc_$${base}.cpp \\"; done
+
+.ui.o: %.h
+ $(UIC) -L $(top_srcdir)/muse/widgets -o $*.cpp -impl $*.h $*.ui
+ $(MOC) $*.h >> $*.cpp
+ $(CXXCOMPILE) -c $*.cpp -o $*.o
+ $(RM) $*.cpp moc_$*.cpp moc_$*.o
+
+.ui.lo: %.h
+ $(UIC) -L $(top_srcdir)/muse/widgets -o $*.cpp -impl $*.h $*.ui
+ $(MOC) $*.h >> $*.cpp
+ $(LTCXXCOMPILE) -c $*.cpp -o $*.lo
+ $(RM) $*.cpp moc_$*.cpp moc_$*.lo moc_$*.o
+
+moc_%.cpp: %.h
+ $(MOC) $< -o $@
+
+%.h: %.ui
+ $(UIC) -o $@ $<
+# $(UIC) -L $(top_srcdir)/muse/widgets -o $@ $<
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/muse2/synti/libsynti/evdata.h b/muse2/synti/libsynti/evdata.h
new file mode 100644
index 00000000..29f6441e
--- /dev/null
+++ b/muse2/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/muse2/synti/libsynti/gui.cpp b/muse2/synti/libsynti/gui.cpp
new file mode 100644
index 00000000..cc737a9e
--- /dev/null
+++ b/muse2/synti/libsynti/gui.cpp
@@ -0,0 +1,130 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// software synthesizer helper library
+// $Id: gui.cpp,v 1.5 2004/04/11 10:46:14 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;
+ }
+ }
+
+//---------------------------------------------------------
+// sendEvent
+//---------------------------------------------------------
+
+void MessGui::sendEvent(const MidiPlayEvent& ev)
+ {
+ if (wFifoSize == EVENT_FIFO_SIZE) {
+ printf("event gui->synti fifo overflow\n");
+ return;
+ }
+ wFifo[wFifoWindex] = ev;
+ wFifoWindex = (wFifoWindex + 1) % EVENT_FIFO_SIZE;
+ ++wFifoSize;
+ }
+
+//---------------------------------------------------------
+// sendController
+//---------------------------------------------------------
+
+void MessGui::sendController(int ch, int idx, int val)
+ {
+// MidiPlayEvent pe(0, 0, ch, ME_CONTROLLER, idx, val);
+// sendEvent(pe);
+
+ sendEvent(MidiPlayEvent(0, 0, ch, ME_CONTROLLER, idx, val));
+ }
+
+//---------------------------------------------------------
+// sendSysex
+//---------------------------------------------------------
+
+void MessGui::sendSysex(unsigned char* p, int n)
+ {
+// MidiPlayEvent pe(0, 0, ME_SYSEX, p, n);
+// sendEvent(pe);
+
+ sendEvent(MidiPlayEvent(0, 0, ME_SYSEX, p, n));
+ }
+
+//---------------------------------------------------------
+// writeEvent
+// send an event to synti gui
+//---------------------------------------------------------
+
+void MessGui::writeEvent(const MidiPlayEvent& 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
+ }
+
+//---------------------------------------------------------
+// readEvent
+// read event from synti gui
+//---------------------------------------------------------
+
+MidiPlayEvent MessGui::readEvent()
+ {
+ MidiPlayEvent ev = wFifo[wFifoRindex];
+ wFifoRindex = (wFifoRindex + 1) % EVENT_FIFO_SIZE;
+ --wFifoSize;
+ return ev;
+ }
+
diff --git a/muse2/synti/libsynti/gui.h b/muse2/synti/libsynti/gui.h
new file mode 100644
index 00000000..54044243
--- /dev/null
+++ b/muse2/synti/libsynti/gui.h
@@ -0,0 +1,72 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// software synthesizer helper library
+// $Id: gui.h,v 1.4 2004/06/19 09:50:37 wschweer Exp $
+//
+// (C) Copyright 2004 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __SYNTH_GUI_H__
+#define __SYNTH_GUI_H__
+
+#include "mpevent.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
+ MidiPlayEvent rFifo[EVENT_FIFO_SIZE];
+ volatile int rFifoSize;
+ int rFifoWindex;
+ int rFifoRindex;
+
+ // Event Fifo GUI -> synti
+ MidiPlayEvent wFifo[EVENT_FIFO_SIZE];
+ volatile int wFifoSize;
+ int wFifoWindex;
+ int wFifoRindex;
+
+ protected:
+ int readFd;
+ void readMessage();
+ void sendEvent(const MidiPlayEvent& ev);
+ void sendController(int,int,int);
+ void sendSysex(unsigned char*, int);
+
+ virtual void processEvent(const MidiPlayEvent&) {};
+
+ public:
+ MessGui();
+ virtual ~MessGui();
+
+ void writeEvent(const MidiPlayEvent&);
+ int fifoSize() const { return wFifoSize; }
+ MidiPlayEvent 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/muse2/synti/libsynti/mess.cpp b/muse2/synti/libsynti/mess.cpp
new file mode 100644
index 00000000..639ffee6
--- /dev/null
+++ b/muse2/synti/libsynti/mess.cpp
@@ -0,0 +1,122 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: mess.cpp,v 1.2 2004/04/15 13:46:18 wschweer Exp $
+// (C) Copyright 2004 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include "mess.h"
+#include "muse/midi.h"
+
+static const int FIFO_SIZE = 32;
+
+//---------------------------------------------------------
+// MessP
+//---------------------------------------------------------
+
+struct MessP {
+ // Event Fifo synti -> Host:
+ MidiPlayEvent 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(MidiPlayEvent 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
+//---------------------------------------------------------
+
+MidiPlayEvent Mess::receiveEvent()
+ {
+ MidiPlayEvent 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 MidiPlayEvent& 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/muse2/synti/libsynti/mess.h b/muse2/synti/libsynti/mess.h
new file mode 100644
index 00000000..921dbd6c
--- /dev/null
+++ b/muse2/synti/libsynti/mess.h
@@ -0,0 +1,97 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: mess.h,v 1.3.2.3 2009/11/19 04:20:33 terminator356 Exp $
+// (C) Copyright 2001-2004 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __MESS_H__
+#define __MESS_H__
+
+#define MESS_MAJOR_VERSION 1
+#define MESS_MINOR_VERSION 1
+
+#include "mpevent.h"
+
+class QWidget;
+class QString;
+class MessP;
+
+//---------------------------------------------------------
+// MidiPatch
+//---------------------------------------------------------
+
+struct MidiPatch {
+ signed char typ; // 1 - GM 2 - GS 4 - XG
+ 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 processMessages() { };
+ virtual void process(float** data, int offset, int len) = 0;
+
+ // the synti has to (re-)implement processEvent() or provide
+ // some of the next three functions:
+
+ virtual bool processEvent(const MidiPlayEvent&);
+ 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**) const {}
+ virtual int getControllerInfo(int, const char**, int*, int*, int*, int*) const {return 0;}
+ virtual const char* getPatchName(int, int, int, bool) const { return "?"; }
+ virtual const MidiPatch* getPatchInfo(int, const MidiPatch*) const { return 0; }
+
+ // synthesizer -> host communication
+ void sendEvent(MidiPlayEvent); // called from synti
+ MidiPlayEvent 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;
+ Mess* (*instantiate)(int sr, QWidget* parent, QString* projectPathPtr, const char* name);
+ };
+
+extern "C" {
+ const MESS* mess_descriptor();
+ }
+
+#endif
+
diff --git a/muse2/synti/libsynti/mono.cpp b/muse2/synti/libsynti/mono.cpp
new file mode 100644
index 00000000..14a23aca
--- /dev/null
+++ b/muse2/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/muse2/synti/libsynti/mono.h b/muse2/synti/libsynti/mono.h
new file mode 100644
index 00000000..f2f8bdf7
--- /dev/null
+++ b/muse2/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/muse2/synti/libsynti/mpevent.cpp b/muse2/synti/libsynti/mpevent.cpp
new file mode 100644
index 00000000..482bc952
--- /dev/null
+++ b/muse2/synti/libsynti/mpevent.cpp
@@ -0,0 +1,22 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: mpevent.cpp,v 1.1 2004/02/12 18:30:30 wschweer Exp $
+//
+// (C) Copyright 2002-2004 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include "mpevent.h"
+
+//---------------------------------------------------------
+// MEvent
+//---------------------------------------------------------
+
+MEvent::MEvent(unsigned t, int port, int tpe, const unsigned char* data, int len)
+ {
+ _time = t;
+ _port = port;
+ edata.setData(data, len);
+ _type = tpe;
+ }
+
diff --git a/muse2/synti/libsynti/mpevent.h b/muse2/synti/libsynti/mpevent.h
new file mode 100644
index 00000000..8568169f
--- /dev/null
+++ b/muse2/synti/libsynti/mpevent.h
@@ -0,0 +1,100 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: mpevent.h,v 1.1 2004/02/12 18:30:31 wschweer Exp $
+//
+// (C) Copyright 1999-2002 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __MPEVENT_H__
+#define __MPEVENT_H__
+
+#include "evdata.h"
+
+//---------------------------------------------------------
+// MEvent
+// baseclass for MidiPlayEvent and MidiRecordEvent
+//---------------------------------------------------------
+
+//---------------------------------------------------------
+// MEvent
+//---------------------------------------------------------
+
+class MEvent {
+ unsigned _time;
+ EvData edata;
+ unsigned char _port, _channel, _type;
+ int _a, _b;
+
+ public:
+ MEvent() {}
+ MEvent(unsigned tm, int p, int c, int t, int a, int b)
+ : _time(tm), _port(p), _channel(c & 0xf), _type(t), _a(a), _b(b) {}
+ MEvent(unsigned t, int p, int type, const unsigned char* data, int len);
+ MEvent(unsigned t, int p, int tpe, EvData d) : _time(t), edata(d), _port(p), _type(tpe) {}
+
+ ~MEvent() {}
+
+ int port() const { return _port; }
+ 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 setPort(int val) { _port = val; }
+ 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); }
+ };
+
+//---------------------------------------------------------
+// MidiRecordEvent
+// allocated and deleted in midiseq thread context
+//---------------------------------------------------------
+
+class MidiPlayEvent;
+
+class MidiRecordEvent : public MEvent {
+ public:
+ MidiRecordEvent() {}
+ MidiRecordEvent(const MEvent& e) : MEvent(e) {}
+ MidiRecordEvent(unsigned tm, int p, int c, int t, int a, int b)
+ : MEvent(tm, p, c, t, a, b) {}
+ MidiRecordEvent(unsigned t, int p, int tpe, const unsigned char* data, int len)
+ : MEvent(t, p, tpe, data, len) {}
+ MidiRecordEvent(unsigned t, int p, int type, EvData data)
+ : MEvent(t, p, type, data) {}
+ ~MidiRecordEvent() {}
+ };
+
+//---------------------------------------------------------
+// MidiPlayEvent
+// allocated and deleted in audio thread context
+//---------------------------------------------------------
+
+class MidiPlayEvent : public MEvent {
+ public:
+ MidiPlayEvent() {}
+ MidiPlayEvent(const MEvent& e) : MEvent(e) {}
+ MidiPlayEvent(unsigned tm, int p, int c, int t, int a, int b)
+ : MEvent(tm, p, c, t, a, b) {}
+ MidiPlayEvent(unsigned t, int p, int type, const unsigned char* data, int len)
+ : MEvent(t, p, type, data, len) {}
+ MidiPlayEvent(unsigned t, int p, int type, EvData data)
+ : MEvent(t, p, type, data) {}
+ ~MidiPlayEvent() {}
+ };
+
+#endif
+
diff --git a/muse2/synti/libsynti/poly.cpp b/muse2/synti/libsynti/poly.cpp
new file mode 100644
index 00000000..e76fe966
--- /dev/null
+++ b/muse2/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/muse2/synti/libsynti/poly.h b/muse2/synti/libsynti/poly.h
new file mode 100644
index 00000000..b990b198
--- /dev/null
+++ b/muse2/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/muse2/synti/organ/Makefile.am b/muse2/synti/organ/Makefile.am
new file mode 100644
index 00000000..83f5800e
--- /dev/null
+++ b/muse2/synti/organ/Makefile.am
@@ -0,0 +1,15 @@
+include $(top_srcdir)/common.am
+include $(top_srcdir)/synti/synti-install.am
+
+AM_CXXFLAGS += -O3 -ffast-math -fno-exceptions
+
+synthi_LTLIBRARIES = organ.la
+
+organ_la_SOURCES = organ.cpp organ.h organgui.cpp organgui.h \
+ organguibase.ui \
+ $(top_srcdir)/muse/xml.cpp
+
+nodist_organ_la_SOURCES = moc_organgui.cpp
+
+organ_la_LIBADD = ../libsynti/libsynti.la
+organ_la_LDFLAGS = -module -avoid-version
diff --git a/muse2/synti/organ/Makefile.in b/muse2/synti/organ/Makefile.in
new file mode 100644
index 00000000..93f56ac5
--- /dev/null
+++ b/muse2/synti/organ/Makefile.in
@@ -0,0 +1,657 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
+ $(top_srcdir)/common.am $(top_srcdir)/synti/synti-install.am
+subdir = synti/organ
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal-include.m4 \
+ $(top_srcdir)/m4/alsa.m4 $(top_srcdir)/m4/docbook.m4 \
+ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
+ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
+ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__installdirs = "$(DESTDIR)$(synthidir)"
+LTLIBRARIES = $(synthi_LTLIBRARIES)
+organ_la_DEPENDENCIES = ../libsynti/libsynti.la
+am_organ_la_OBJECTS = organ.lo organgui.lo organguibase.lo xml.lo
+nodist_organ_la_OBJECTS = moc_organgui.lo
+organ_la_OBJECTS = $(am_organ_la_OBJECTS) $(nodist_organ_la_OBJECTS)
+organ_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \
+ $(CXXFLAGS) $(organ_la_LDFLAGS) $(LDFLAGS) -o $@
+DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
+depcomp = $(SHELL) $(top_srcdir)/depcomp
+am__depfiles_maybe = depfiles
+am__mv = mv -f
+CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
+LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
+CXXLD = $(CXX)
+CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \
+ $(LDFLAGS) -o $@
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
+ $(LDFLAGS) -o $@
+SOURCES = $(organ_la_SOURCES) $(nodist_organ_la_SOURCES)
+DIST_SOURCES = $(organ_la_SOURCES)
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ALSA_CFLAGS = @ALSA_CFLAGS@
+ALSA_LIBS = @ALSA_LIBS@
+AMTAR = @AMTAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DOCBOOKSTYLE = @DOCBOOKSTYLE@
+DOCBOOKTARGETS = @DOCBOOKTARGETS@
+DOT = @DOT@
+DOTPATH = @DOTPATH@
+DOXYGEN = @DOXYGEN@
+DOXYGEN_TREEVIEW = @DOXYGEN_TREEVIEW@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+FLUIDSYNTHDIRS = @FLUIDSYNTHDIRS@
+FST_CFLAGS = @FST_CFLAGS@
+FST_LIBS = @FST_LIBS@
+Fluidsynth_CFLAGS = @Fluidsynth_CFLAGS@
+Fluidsynth_LIBS = @Fluidsynth_LIBS@
+GIVERTCAP = @GIVERTCAP@
+GREP = @GREP@
+HAVEDOT = @HAVEDOT@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JACK_CFLAGS = @JACK_CFLAGS@
+JACK_LIBS = @JACK_LIBS@
+JADE = @JADE@
+LASH_CFLAGS = @LASH_CFLAGS@
+LASH_LIBS = @LASH_LIBS@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LO_CFLAGS = @LO_CFLAGS@
+LO_LIBS = @LO_LIBS@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+MUSECXXFLAGS = @MUSECXXFLAGS@
+NM = @NM@
+NMEDIT = @NMEDIT@
+NSGMLS = @NSGMLS@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PCH = @PCH@
+PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+PYTHON = @PYTHON@
+PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
+PYTHON_INCLUDES = @PYTHON_INCLUDES@
+PYTHON_LIB = @PYTHON_LIB@
+PYTHON_PLATFORM = @PYTHON_PLATFORM@
+PYTHON_PREFIX = @PYTHON_PREFIX@
+PYTHON_VERSION = @PYTHON_VERSION@
+QTDIR_BIN = @QTDIR_BIN@
+QTDIR_INC = @QTDIR_INC@
+QT_LIBS = @QT_LIBS@
+RANLIB = @RANLIB@
+SAMPLERATE_CFLAGS = @SAMPLERATE_CFLAGS@
+SAMPLERATE_LIBS = @SAMPLERATE_LIBS@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SNDFILE_CFLAGS = @SNDFILE_CFLAGS@
+SNDFILE_LIBS = @SNDFILE_LIBS@
+STRIP = @STRIP@
+SUIDBUILD = @SUIDBUILD@
+SUIDINSTALL = @SUIDINSTALL@
+USE_SSE = @USE_SSE@
+UUID_CFLAGS = @UUID_CFLAGS@
+UUID_LIBS = @UUID_LIBS@
+VERSION = @VERSION@
+XMKMF = @XMKMF@
+X_CFLAGS = @X_CFLAGS@
+X_EXTRA_LIBS = @X_EXTRA_LIBS@
+X_LIBS = @X_LIBS@
+X_PRE_LIBS = @X_PRE_LIBS@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+have_docbook = @have_docbook@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+lt_ECHO = @lt_ECHO@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+pkgpyexecdir = @pkgpyexecdir@
+pkgpythondir = @pkgpythondir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+pyexecdir = @pyexecdir@
+pythondir = @pythondir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+synth_fluid = @synth_fluid@
+synth_fluidsynth = @synth_fluidsynth@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+AM_CXXFLAGS = $(MUSECXXFLAGS) -I.. -I$(top_srcdir)/synti \
+ -I$(top_srcdir)/muse/widgets -DQT_SHARED -DQT_THREAD_SUPPORT \
+ -DQT_PLUGIN $(QTDIR_INC) -DQT3_SUPPORT -O3 -ffast-math \
+ -fno-exceptions
+AM_CPPFLAGS =
+MOC = $(QTDIR_BIN)/moc
+#UIC = $(QTDIR_BIN)/uic3
+UIC = /usr/bin/uic3
+UIFILES = $(wildcard *.ui)
+MOCFILES = $(shell for h in $(filter %.h,$(SOURCES)); do \
+ if grep -q Q_OBJECT $$h; then \
+ echo $$h | sed "s/\(.*\)\.h/moc_\1.cpp/"; \
+ fi; \
+ done)
+
+BUILT_SOURCES = $(MOCFILES) $(UIFILES:%.ui=%.h)
+MOSTLYCLEANFILES = $(MOCFILES) $(UIFILES:%.ui=%.h)
+SUFFIXES = .ui .h.gch
+synthidir = $(pkglibdir)/synthi
+synthi_LTLIBRARIES = organ.la
+organ_la_SOURCES = organ.cpp organ.h organgui.cpp organgui.h \
+ organguibase.ui \
+ $(top_srcdir)/muse/xml.cpp
+
+nodist_organ_la_SOURCES = moc_organgui.cpp
+organ_la_LIBADD = ../libsynti/libsynti.la
+organ_la_LDFLAGS = -module -avoid-version
+all: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) all-am
+
+.SUFFIXES:
+.SUFFIXES: .ui .h.gch .cpp .lo .o .obj
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/common.am $(top_srcdir)/synti/synti-install.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu synti/organ/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu synti/organ/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+install-synthiLTLIBRARIES: $(synthi_LTLIBRARIES)
+ @$(NORMAL_INSTALL)
+ test -z "$(synthidir)" || $(MKDIR_P) "$(DESTDIR)$(synthidir)"
+ @list='$(synthi_LTLIBRARIES)'; test -n "$(synthidir)" || list=; \
+ list2=; for p in $$list; do \
+ if test -f $$p; then \
+ list2="$$list2 $$p"; \
+ else :; fi; \
+ done; \
+ test -z "$$list2" || { \
+ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(synthidir)'"; \
+ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(synthidir)"; \
+ }
+
+uninstall-synthiLTLIBRARIES:
+ @$(NORMAL_UNINSTALL)
+ @list='$(synthi_LTLIBRARIES)'; test -n "$(synthidir)" || list=; \
+ for p in $$list; do \
+ $(am__strip_dir) \
+ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(synthidir)/$$f'"; \
+ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(synthidir)/$$f"; \
+ done
+
+clean-synthiLTLIBRARIES:
+ -test -z "$(synthi_LTLIBRARIES)" || rm -f $(synthi_LTLIBRARIES)
+ @list='$(synthi_LTLIBRARIES)'; for p in $$list; do \
+ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
+ test "$$dir" != "$$p" || dir=.; \
+ echo "rm -f \"$${dir}/so_locations\""; \
+ rm -f "$${dir}/so_locations"; \
+ done
+organ.la: $(organ_la_OBJECTS) $(organ_la_DEPENDENCIES)
+ $(organ_la_LINK) -rpath $(synthidir) $(organ_la_OBJECTS) $(organ_la_LIBADD) $(LIBS)
+
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT)
+
+distclean-compile:
+ -rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/moc_organgui.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/organ.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/organgui.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xml.Plo@am__quote@
+
+.cpp.o:
+@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $<
+
+.cpp.obj:
+@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+
+.cpp.lo:
+@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $<
+
+xml.lo: $(top_srcdir)/muse/xml.cpp
+@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT xml.lo -MD -MP -MF $(DEPDIR)/xml.Tpo -c -o xml.lo `test -f '$(top_srcdir)/muse/xml.cpp' || echo '$(srcdir)/'`$(top_srcdir)/muse/xml.cpp
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/xml.Tpo $(DEPDIR)/xml.Plo
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$(top_srcdir)/muse/xml.cpp' object='xml.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o xml.lo `test -f '$(top_srcdir)/muse/xml.cpp' || echo '$(srcdir)/'`$(top_srcdir)/muse/xml.cpp
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ mkid -fID $$unique
+tags: TAGS
+
+TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ set x; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: CTAGS
+CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) check-am
+all-am: Makefile $(LTLIBRARIES)
+installdirs:
+ for dir in "$(DESTDIR)$(synthidir)"; do \
+ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ done
+install: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+ -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES)
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+ -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
+clean: clean-am
+
+clean-am: clean-generic clean-libtool clean-synthiLTLIBRARIES \
+ mostlyclean-am
+
+distclean: distclean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+ distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-synthiLTLIBRARIES
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+ mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-synthiLTLIBRARIES
+
+.MAKE: all check install install-am install-strip
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
+ clean-libtool clean-synthiLTLIBRARIES ctags distclean \
+ distclean-compile distclean-generic distclean-libtool \
+ distclean-tags distdir dvi dvi-am html html-am info info-am \
+ install install-am install-data install-data-am install-dvi \
+ install-dvi-am install-exec install-exec-am install-html \
+ install-html-am install-info install-info-am install-man \
+ install-pdf install-pdf-am install-ps install-ps-am \
+ install-strip install-synthiLTLIBRARIES installcheck \
+ installcheck-am installdirs maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-compile \
+ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+ tags uninstall uninstall-am uninstall-synthiLTLIBRARIES
+
+
+de:
+ @for base in $(MOCFILES); do echo -e "\t$${base}.cpp $${base}.h \\"; done
+
+nde:
+ @for base in $(MOCFILES); do echo -e "\tmoc_$${base}.cpp \\"; done
+
+.ui.o: %.h
+ $(UIC) -L $(top_srcdir)/muse/widgets -o $*.cpp -impl $*.h $*.ui
+ $(MOC) $*.h >> $*.cpp
+ $(CXXCOMPILE) -c $*.cpp -o $*.o
+ $(RM) $*.cpp moc_$*.cpp moc_$*.o
+
+.ui.lo: %.h
+ $(UIC) -L $(top_srcdir)/muse/widgets -o $*.cpp -impl $*.h $*.ui
+ $(MOC) $*.h >> $*.cpp
+ $(LTCXXCOMPILE) -c $*.cpp -o $*.lo
+ $(RM) $*.cpp moc_$*.cpp moc_$*.lo moc_$*.o
+
+moc_%.cpp: %.h
+ $(MOC) $< -o $@
+
+%.h: %.ui
+ $(UIC) -o $@ $<
+# $(UIC) -L $(top_srcdir)/muse/widgets -o $@ $<
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/muse2/synti/organ/fdialogbuttons.ui b/muse2/synti/organ/fdialogbuttons.ui
new file mode 100644
index 00000000..f1ad496b
--- /dev/null
+++ b/muse2/synti/organ/fdialogbuttons.ui
@@ -0,0 +1,136 @@
+<!DOCTYPE UI><UI version="3.0" stdsetdef="1">
+<class>FileDialogButtons</class>
+<widget class="QWidget">
+ <property name="name">
+ <cstring>FileDialogButtons</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>27</x>
+ <y>0</y>
+ <width>69</width>
+ <height>368</height>
+ </rect>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>4</hsizetype>
+ <vsizetype>5</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="caption">
+ <string>Form1</string>
+ </property>
+ <vbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>11</number>
+ </property>
+ <property name="spacing">
+ <number>6</number>
+ </property>
+ <widget class="QToolButton">
+ <property name="name">
+ <cstring>globalButton</cstring>
+ </property>
+ <property name="text">
+ <string></string>
+ </property>
+ <property name="pixmap">
+ <pixmap>image0</pixmap>
+ </property>
+ <property name="toggleButton">
+ <bool>true</bool>
+ </property>
+ <property name="usesBigPixmap">
+ <bool>true</bool>
+ </property>
+ <property name="usesTextLabel">
+ <bool>true</bool>
+ </property>
+ <property name="textLabel">
+ <string>Global</string>
+ </property>
+ </widget>
+ <widget class="QToolButton">
+ <property name="name">
+ <cstring>userButton</cstring>
+ </property>
+ <property name="text">
+ <string></string>
+ </property>
+ <property name="pixmap">
+ <pixmap>image1</pixmap>
+ </property>
+ <property name="toggleButton">
+ <bool>true</bool>
+ </property>
+ <property name="usesBigPixmap">
+ <bool>true</bool>
+ </property>
+ <property name="usesTextLabel">
+ <bool>true</bool>
+ </property>
+ <property name="textLabel">
+ <string>User</string>
+ </property>
+ </widget>
+ <widget class="QToolButton">
+ <property name="name">
+ <cstring>projectButton</cstring>
+ </property>
+ <property name="text">
+ <string></string>
+ </property>
+ <property name="pixmap">
+ <pixmap>image2</pixmap>
+ </property>
+ <property name="toggleButton">
+ <bool>true</bool>
+ </property>
+ <property name="usesBigPixmap">
+ <bool>true</bool>
+ </property>
+ <property name="usesTextLabel">
+ <bool>true</bool>
+ </property>
+ <property name="textLabel">
+ <string>Project</string>
+ </property>
+ </widget>
+ <spacer>
+ <property name="name" stdset="0">
+ <cstring>Spacer1</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Vertical</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>20</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </vbox>
+</widget>
+<images>
+ <image name="image0">
+ <data format="XPM.GZ" length="5310">789cad965b73e2481285dffb57383adf3a3672102021c5c63ed86e5ff10ddfdaee89794824617cc137c0b789fdef9bca3ca5a66dd8d999d9aec6e673294f9dcaca4af8e5cbd2d9c1eed2975f3e8d2732b9cc97f2a13c2e7d29a6a3d1ebafbffdebf74f9f5bed25fd1f7592a5e6e77f7cfadc9b2ce54b7b77b765054c0ad4b07fc603e77623918ae919dceeb48c6f9ce322ed572c6bc669236fa4363f74aee34fc039e213e7b8d1f1f86770ec4ca7ce699cc7c6b715478d6a98bf6fceaae7f1afceaae7fa54b3eb75c0716af3528033677e724e63c98d6f03f7db16ff669c467964fbe307e7a0cfd760e8f30518faf252b3fb49c1c81fad3bd7eb413fcdc0bbce595c783eba15371bd530fd3be7b8403e2681b17e59b3af97392711ce6f1038f3f5cec0b1b3907327ca2c3ff4cd390d7e1ec1c1ef8e731615565fc2c6599279bcdc80839ff3c0d0ffee1cd6e3041c637e2fb0f87ad760e8d37e60ccaf3987f3a51c5cf40be3c2398be07f195cc0ff65c5ad28f895dcb913f2d500073f17e0e0e725b0cfcb2db8c0f30735fbf3abce6904ee83437e2370f0df7456ffc6fc1d1c637ec559e23231be0397d8df57e32abfae0faed72b9db3701fef9d453c9e5a15b7a376a31d99de15b80dbe700ee72702ceb05ecf39cbe0bf012e7c3d3e77ee377d3d3e0becfb61d7135dcffa8d74c1a9331d3a4b04ff78be8eb7f38f9b7123b6e648c7ce69a8f7d839f823ab87583a05fc6f39a7387f8e9c25cefdf901589cc5f493661225b61eef394be9f3bce3dc4ffc7eb1f5af44d250cfd6af3a2d41bd72d3393c2f47c6fd4e86fe543aa791f7031a3bd7fafb6001ef82437d98bfb4d509fde4c039e8c92e38f43fcc6bbcfbb1fca77d9d773f4330fa21df81433fb0fac9da29f22b1bce59b86fe03cd443e004bc06467d8aed2fcbb3507f3be0d08f9e9cfb09ea6dd339c4f33a18f9a0ed8aa52d11cee3158cf397a1731fe74947ce7989fb3732ce05fd487a60c1e74f0a2e31df770e7a72edacfb77bf5bce45e2fa62fefb6d29bd3e64dbb9df44bd5c8213f0917311ee430f9c94beff17b060be6d5c68bcd76b0e1667590797b82f783e477dc92a18f9e43767d5777e059703df8fed2f8f75ff1ebfe29c37715e31389c5fcbb928a187e7cba6b3587fcf0b7ddefd4ec1b89fbc0d0ef771e21ce27939b0fbe33138815fdb4f11e7a87fce9c0b9c978cc1b87f34710ef1fc0816e8399745a8ef6370a8cf1370a8cfa97389f313fb3e512605ea4f46ce25ce5beec1a81fb6ef5f651d4f0c0ee773050ef93d0c0cff53e741c8cf6acd03d3db0427ce6ceb0f923abeeb5cc73f83437e6ec08278fbbc1a0c6abd1138ccf7c103e7dee4ef8f1f3a4c61fc1d1d16eeebc8b9f86b6adee779c0173ce44bbe32b5cb3faf663ad77cc323be35b53b55b9ffe8ed8f766d3a0ffcc8639ef054a39fde790b6ab9be7f5eec137e5ef895df789957f4b5aa11b3de46a6f0555f237bdf5fa8f3c06bbcce1bbcc95baa3851b59fbd6d43ed4ab52ac5aeef748ece0eeff21eeff381aaad73cfbc4dd4d9211fa952ae4ac77cc2a7aa52a9dd7f74643adff88ccff93b373852b5a6a9b9b796aa0dd4519b63554ab8c329677c42fcde91dd27e27312ea534e0595dca0c18cb7095dd0902ee94ab50674adaf1b1af131ddcef34377744f0f9a8f5b7aacd482371af3064d684a4ff44c2fea6cd9f296d02bbdcdcb332dd30aadd2575aa3075ad7517b536707b4c12fb4a9ce5e788526fa7b8bb6a93bd7cf0eedd21eedd381aaf52b35f3e66a3d3ab47d6ed291664df346c7f3fdd0099dd2373aa373fa4e0d555b7de72da2e66cde5467ae1f6a519b624aa8432965c242ea6def83b728e44d64417efcaeebc7a5e4fab54e3ff664b0c09b9d825c2cf2a32a23ab53ad7e19566a7c31e3ed5ddee472be1fb9b29b53d5bcd6aad65897bb72ed6af3bcc9cd423fa32ad655886524a3aa66f59dedf4a7bcedcbaddc2dcccfacca3d9fca833cf0b13cca587fdebbda0f6f32a9fcfcdc41e0e73eb429f752a9e8c8746ccb54a6d59d9227fda6f5aca7f022af959f1f9dad1a9e9fca039fba8a7b511f631d6f3aa6b22c2b36a6aab62a5f7583337e6674d678a84f3d9a8f937a4795974a656a1aebda3d72ce644336e56abe9ff09eaa3da882bdc6418563f5b3255b9ceb8e87b2ad7fefcef7e3990a7f911d5ddd7dd45e54675db3bfab2ac7b2b7c8cfecf9d56afbbabee7055e2a15cddd81f4febb9fd9fe56eff44a63b7b4db1fcba179a954a61ffdcc7e2e7f1cb5b7a91ca8d6b6eea8a73f8fdefb09f5335fe3839a768b4a855e7ff6f3a30e17f999ebed48f6a52b1bc1cfecbdf8638d0f797ba7f2bffb79ffb9f77efcdfbe47fdfb9f9ffe03facd42d6</data>
+ </image>
+ <image name="image1">
+ <data format="XPM.GZ" length="6766">789ca5975b6fe3381285dffb57045d6f8305c7b22d59c2621f724f3acefd9ec53e5451729cc4cecdcec51eec7fdf12eb50dd71328b01a6d5eef617528787c56291f9fdb7a58b83dda5df7eff3699f2f4c62ff9213f2ffd56be8cc7b37fffe75f7f7cfbdee92ee9df76d65b6a7fffc7b7ef87d325bfb4f7705fd52033056a853f353bff91e571a15d167879818f1678eb23d3cd47f6bcd03f5d685f188fb617fc650bbcf0bea3059e80bb60ccafdbca38bcff00ee1ad33a38ef75423bfc77bdb1bb0e9cab401edaafc0b931d978799614dd309fb2e6a4957413f3eb8cd3566efab7e0d4988b8625b4b371a317d62bc955cfc67f037b3019a785bdef9ec025f4dbc6596a7a220dfbd0de0117c674615c24651af8129c96964f6b35b75bf513f812dc35e66363d50be3f1a6712f61e32d701cff2cb2b54bf0df2eda79bb08fc0ef6c67c641ce7c31be0127c62dc4b301fb437e39d46869f6d70c9d63f31cea3dff786ed7d17d987f8f00f702ad67f075c406f16d9da690c2ec178bf282dbe84f73931e6bb9a3b49db7792b0be73e34e0bfc6edcc3fab987c8e69f4ec125e633336efce0fdc6cf7ec365e07be3223176393845fbd498d9fcba90bf9da2e33bb67e43e3187f3a308ee369290bacfac60370d4ef820bf08b3157182f33963638ecbf6ed2f15d8bcfd0b8db32e66570d7584e1bb6fa7067dcc40f1cf5b91f98637f26700ebe007b7062dc4b6c7f720ec67e778571515a3ed1833123bfe8d658da5516faf7c019fcecd69cb6bb3e0dc59f578cd39631ad19e7d80fe2c171bde7c6cd780e9c22bfaf1b0ef197d7c0daddea1fdf1aa7451ae6eb2b70694ccfc6717c2e8de37afba09fb5637ef395719664369f7be31eea1b57c605f297bbc68dff3618fea9886cf5cc87fa9e713b9e278971dc4fbc6f9c15382f9ec1a5311f1ae7a8cf740dc6fee337e3c60f812b8b9f3b35d67c0aedee18ccc612ea41afd3f83b02e33c932e3837e655e35e62e7157be3e8873ac645ac87adc8a8070fc6ccf0cbc692c1ef5964f83d0157f01bf2bd27d18ff48c7b45cfceb33eb834a663e302f597f6c0b15ebe81637d38379636fc41bf8957783fef34fbf7c4b817cf3fb4e709f8058cf397968d8bb8df47c68cfca4141ceb91180bea8f84fd934b1ef7f30d38e6abf5175d7f8bdfb9b18ff56a1b8cfd2cc15fd14d53cb47d930d6fd60fba934cee379971a17311fb7c0381fdd8571a31ff2a5f09a4e61fffa2118f7159e1a17b15e9f83633e3d1a4bdbe221d79131bf1fc6beb27a25a13e71b7c0f923236346fe490e8ef970682c6cf94768f7b1deef44867e889f266fdc2f0538c5fd686adc4b911febc63a9ed5c30acc38df6fc01518fd7ddcaf7de312f5d887fd2ddd66fc65e322deef2e8da31e0d2323bf33638da7cdbf0267e015e33243fd8fcc95ad678897946981fbe9c038beef6e1bb6fdfc0c66637e32f6583fb907637f91f92bcb98afadc8f0b30b861fb70aae8c7d384f74394af81b1b0bf6034f8ce3f8ae03cec07bc651cfbd1a576dccdffa975981fb76dbb840fde1b9b1473da30118f9252d30ea33f78ce37c19ed31fefc08c67d8739b2b5d32638fadd378e7edd5ae481f53f0367689f46b67609f7a532cd13dca7cec129ee2f3bc6d1bf4b22235ff17e19f3771d8c7a4ebb60ec27ba328e7ee9090c7f7412d9fcb91730c36fa83f655514767ecb99b130f6fbb1711cdfdd356cf33f04c7f80ec1d8fffc6a1cfdf1081cfdad82e18762ff0afec2fa549967db1fb2d2b0c5af6d1ce3e106c655ccf72e38e6c35a64d3e731388e7f04c6f8d46f7810f42e8d07311f7cc3a15d42fe5495afcc9f373fcd7cdd0c1ceb41098ef977651cf5dc1b380387f365d08cef46e0389f8386adff3d98e12fecdfc120f6779b0d5bff3118fd5d051e181f4efffef3958e237dd889f37f47c795aed267a05ad77f5deda38e1bea9b4377e36edd9d6a8d82da5ff2b6a053bab1bb770feed13da9da73501b07b54954d33ed7fa5950fee467ea5edcab7bd3f7dfa1760bb5996a4d5431ce9adcdc2d47b54f7e56dcaa3eaf6e0d6a3fbdadabd286dbd4d9daa7527d725ba6f4c9cfb6fba19f1dd777bb6ecfed2f783b7087aa36523d539ca9d251adf4c9cfb13b71a7eecc9dbb8ba0567b9bba4b77e55aaa74eb12556abb8e7ae9aad64c63953af9c24fe67a2e77854e9f8849a0b6eb5ec9bb472aa9a281cef081ae69a8ee06aa36a11be717fdd02dddd188c674ef727a20a7de76e951d5faf454c78a9e43ac1ec3f7897e3fd499a9a3453f34a5177aa5377aa7993ef734776bb44ce42e68c5edd32aadd13a6dd084362d6eb4a57eb6ddf2273f3f6887fab44b7baab24f07744847740c6fe7b4a2ef5fd1099daafa99c6ada2730dc0679d215dd0a58eba4957d4a284dafafd883ac15d9752caa8a7ce728d97c5edfe2b3f1a65a2821d937e2bf5f625f4a4de8ed8d38c4bb743f50d6c400f7c1de256afe9e5577e34f3c9cd9878c8377ccb773c5237ab3ce67b7ee047d57be26775f66eab50afa99bfe999fa032e129bf04a5575519f1b89e9dfeffc6ef3c0b71abe759abf579fa859f32a8cc799957f4b30aa5913e6bfa59e70ddee42dde56b51fbc533bd3587de1075efabccb7bfae9f37e503a085e5ef9908ff8984ff8549fb3a036e3f3cf7ea0b2cc177ce90634d4ff97f9aa56d2bdaeb5486768de5a7a1f6f732778d3bbf8473fb58abe5b7bc934dbb53270163c45a5faa9f8807b9c73214e486f9722fea39fa0b215bdd85b7a0fad7ef134d29f697d9481bb936b19ca8ddcaadaddaf7e546522a3e0e5267889cf8caa0f9e0ef992e732d6d9cf55ed5ed51e7ef5238fbab19fdc5c9e752f8f6522537991d7109501bfc89b3cc9bbeeebb17e067c2963dda7cfee407f6bb8e1be8c7efa9199d6a25475e6ba7b2bd5589615590d4a033a97354467139f912a1dc85cbd27aab3fe6b7c5449dc5c73bcf6b3219bb225dbf2c37434c72d364d45951d8d82aa48ffa31f64e15c7683ce9eeccb811cca51ada33f23ad7b2378d990e3e025d37f4fa492d38f7e4c077ef6e44cce55e722fa914bb99256ed4573611254d48b54aef37ffd24fa7b4e4775bad18fa492d5e78c5ca9b3035df97a463734909eeae47fea2791c23b4f36afe0476f705a83532fdefb9257f4be3452957e9d2b5ff9d19c4afcc05ffba1acfaa1bff13ab2fe2c8ce7bcaec4b2a9e919a1154a7aba960f9ff797f6a3af1e49ed64a99fb0ae516d124e6bb4ffd4b12cf242db1f1fed75f4f12cff552db6ff5a37acfdd3f327778da67768fffedf7f7efb1f6c86991b</data>
+ </image>
+ <image name="image2">
+ <data format="XPM.GZ" length="7960">789ca5975b6f23bd0d86eff75704cbbb0f853e7b3ce3cca0e845cee7f339452f486a1c3b8ee338cec929fadf2b8baf6693ec6ed1a2eb75902792382f298ae2fcf9c7c2e5e1dec21f7f7e9b3ef1d34017b4cf8f0b7ff8e7d168f6f77ffced9fdfbe77f285f83f5bc8beffe5db77c70bbab03fbeaf23d007387afa382201a815ff459e8273633f0697ad32f22358db367e63dc6e19eb22386fc7f9ba0b2ec1b760055f1967da69cf594ae34e0b3c036b6efc6e9cb78cfd6dc31cf58f1377230b81736385fdbcb4f9da4a5cc4b0c963e2c5ce9c6937711959f6c06ae3ba6f5c1485d93b00fb6eb4a787c6ddb63ddf33b8809ef7c4b07794d89ea7c7608f71dfb0445e365e6c83ef1297c6237081f17b7005fb0f892b8dbc02f6551e19f12c93bd0eb8b271b9007bb6f5abc655053e492c3e32f68359cc3ef28f6b2da23df823ac71be9c1b6bd7c77167f956860db67c74c629ff780a46bef1997127b7fd65b35736f9700d2e6dffbcc5a32c5ac8074e8c78ed812bdb5fb2fd2fbb6d367fdae0b49fb38663fce80d5cd97c4fe0b49f9971d83f5bbf04ae107ff8cb05e2a9e0dae2a5d02b6cf1e2a8afddcacaac8a9c19a7f3451d70d9b1f115e374bef80d9c9bbfbc0546fecbd438c5872f12233fba60e4335f82e18f3c833d783fb1e5a3887117f9270789cd3e5f810b8b277be3d2fb58df288f1cf61ff5a4679cfc9327e302f9efdec0c87f9e1987e7d9f803b8c0f876c3a6f72531f4ec80715e286b38cee777309e27be61b3a789cd9e1c361cc7a9655cb56dbfa90d2eeae83f6fce396bcd3f91af8d17db76feb805867e1e2686fe257085f9b5710850b4efe3fe6755ae382fce38ed17ed1937f6efc0c87f6e83bde5339d1a976df8b798d8c6f9105cc07e99d8e6f37262ab279418f588d6139b3fb49618f31fc01efe8e1ab6e7ef1a576dcc3f36e6b6c59b8ec088bf8bfbdb69a7f3a6a760e42375c16ae74f26c68ba827ee159cf4f71343ff1518f9412fc625f6972a70f26f150cff682531c6cf8c1bff361a8efebb128cfa43e3c498ffd8b08dc37f66cb1717f3b953257fb5366ecee300ac568fb930eea6fbeacd38dd675224b6f8c82e18e7839f8d9b7c39496cfafd109ccea3334efe39db9f4a32d493257017fb1bcf6bde4efd89eb1b277f740aceaddf904db082178dd37eba7be366ffce8d537cf9be618bef045c81312e99e993b8bf3977f07cafe0d4ffbc1a37faaec118a7020cbd3c36ae3cf2a14a8cfbe6c198518f9cf9c75243cf99b1e27e12acd7dad847fd4596a7fb7704467de135e3743f73175c18d38e71897aad4370aa9f4789115f67cc88aff48d7dddeb468efd65c1a9bfe31770857e41c0de98a6c60cffc8f4b3b0d9e3f8fc6e16fa41d37f0b2e8ce5d538c58f27e0daf28fc958bac6b264ec918f3e3eaf1bf4587fc303e3d47f721f5c818fc198ef319efa3b1a346cf5e73531ea91e9e1a487637d5deca47e954be3d09f1abf82d11f111b4b17f97496b88ef1722760e407c77c5a94d4eff209b842ff7409463fc537c615f2416a63c9709e188cfd72a789f1fc6363cd8c05f63cc6394f8c7c89f5b5ec34fd7517ecf1feb0665ca2bf932118fd919f188778583e9e1ad719f227d6e332f867f5ccd7c6a93f770330fa2bb765ac697fa2bd2a4ffd3d57c625fa197933aed05fd12118e324c6c99ebb488c7e63d538e9551bd712f7bfae83d1dfe89a71da1fadc0c837d900a77ee8c1986babcf921ba7fd74e7c66182d5eb589f43394be7ffd2b8c2fd2aeb60f423726fcc697cc758707fb11a6b3a8f9218f52df637ac15ee233d07e3bcf01e38f56fd7c68c7e47b6c1b5b1db35f6c83f7799d8e2eb30df77917f27c635f643637f2b79857ae707c68cfb45b6c005c67be01aef671363c9502f6b7017fdd1a371f37eb663dce889fd65381ee97d65079cf6efca38d8b7fbd883bb186f8319ebb7c058ef603fc5839ec0a9de1e18f7b25e2f8ec77aab453a5f9a8319bc01c6fba8be182bf24b7b60acf74f60bcafba7d638f7ca0cdc4d82fd8ab713fbba5c4a68f61afc67cee356ce31de3e48f8bf1519feaa716e0a4e7168cf74337310efed8fc3e18eba503c67a1d24b6fca303e3e49f5b4e8cf86e1937feed2586de2730f2c3ad341cc735d6575fa47aaf9bc69a21bf7230f24dc660d46f7d06633d0d8d3dd613ecfb94af6bc6499f8fe7d7d78af32e1918e79d7ac61efda01b82533d3c04633d5d1827ffdc2a98c15760c44f8e8d7b291ef17cd7dde6fcaf83d3fd7800c6fee899718df97407c67c7a4e8cfdba04e3f90ee34d7ec5f35dd7a9bf701918f5d56d8253becf8cd3fe93e9af1b7b31bf7add66ff7b609c577764dc4bf5edba615b7f07c67a52708a67ccff5e2fc5571fc1c9bf9971636f039cf667044ef66a70cff8e8c9d1fffb8d7639fcf6f12be1a3f39f5ffefe1fbebfd0e35d1d3ebd60e7a6b1f63fea71fdb0b2ef06eed60d83adbb68edbfd2f645cf5ccbc8ddbbb17b08d626ee31f2dcdab4b1e6834eff55e74f7a9edcb37b899ebd066b6f8db6919b055bd3b03e792deefd87ce9ff42cb965b7127eaebab5b8e287b6f5606916feb2816fed36a335f9a59e2db71dbe3b6ed7edb9fd60edb3b60377186cdd057547317eb364e9273dc7eec49dba3377ee2e82b5cba8edca5d8795ada0ab1d5465aee3f2a0a513fe568458cd2dfdaca7eb165de92a7244c4ee8204da5e48dd983cd5d4a31bead3806e69e87a741763265ff5d088ee694c0f34a1479a924bdae8899ee925587a8db11acfe346c15382675ff5d03b2dd132add02aadd13a6d34da8436698bb6698776698ff6e9c0e24687bfd17344c77442a77416ac9c076b1fb59dbb1dba7033baa4abb0032b216e355dff464f8bda945187722aa84b8b545215acadccb5b1630a2f6be1ba747b885bfd1b3da105e49a3adce31beef3806f79c8773ca275be376d3ce6079e3471bbfe8d9e293ff2949ff8995f829d57d7e7379ef13b2fd1292f236e2bc153c4cd5dfd56cf4ad0b2ca6bbc1eec6c849f9bbcc5dbbcc34b3c4c719b6be3dd79dcdc25effd4a0fef072d077c18ec1cf1319ff0695074c6e77cc1977c45195f738bdb3fb4b1fc4a0f67414b27f4cd057779914baedc802b7e09d3c8bd09f34c4434f47d8d36a97fd623bdb916b991be0ce476ee950ce5ce0d6424f732960799c8a34cc3e7499ee5c5b4c9abbc7dd42333798f71c965499665850a59953559970dba964dd9926d19cf4f81ecc8aeecc9be4c83b6033994a38f7a829563399153390b5acee5c2d532e613b9940db90a16aee54d5ad20e5d6bc70d6948b3d01117c15a37685bfca8474aa9d429857e4a54d58733337207721f4e62ed265a075df7e14ce5d4d35e7887b991b1f6dda60e8236faa8476f7518bab03b1de9bd8ef5412721be7d7da49b501d863a75037da25a9fb517be2f2e97b69bd030e8ddd6d7f084460f4ff54d67faae4bbaac2bbaaa6b61df37622d2ddc86d61ae2a41bfa12b46c062d5b41e376f8dbb65bd757ddf9a06757f7745f0ff4508ff4584ff434a8398b76c2990e7eade9795895eb46d8b7a8452f82e675bdfcacc7895ee9b5b6b41d2c65dad13ca8b77a379adbe10d3aa4dbd08f375a829503edca954e3feab1df74514b68aadc443a340bb5ae0edffefc66e013bafdac2558e97dd5631fefb4e5c9b36c6911aa67c89750c7d7bd8d86d95e75932bb3e2bd744287f8ea7b5ff5444b37734dbeaffde0d97ab81b7ae1fcc8874fb026d75efc403a41d1fd673de80ce287a7fed60f754b327f17f228f3a34f76ec13ee087f1f3cbdfe9c3fa83d49d3d83ff8c97c9743fe0e3eade7afda4ccbd7f3de587af453ff143c9bf0dac7955fe77dfc7ca987bf98f1c1caa71ee3f3d8f77ffdf5dbbf01849f9bad</data>
+ </image>
+</images>
+<layoutdefaults spacing="6" margin="11"/>
+</UI>
diff --git a/muse2/synti/organ/organ.cpp b/muse2/synti/organ/organ.cpp
new file mode 100644
index 00000000..a1788a6c
--- /dev/null
+++ b/muse2/synti/organ/organ.cpp
@@ -0,0 +1,710 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: organ.cpp,v 1.15.2.8 2009/12/06 10:05:00 terminator356 Exp $
+//
+// Parts of this file taken from:
+// Organ - Additive Organ Synthesizer Voice
+// Copyright (c) 1999, 2000 David A. Bartold
+//
+// (C) Copyright 2001-2004 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include <cmath>
+#include <stdio.h>
+
+#include "muse/midi.h"
+#include "libsynti/mpevent.h"
+
+#include "organ.h"
+#include "organgui.h"
+
+//#define ORGAN_DEBUG
+
+SynthCtrl Organ::synthCtrl[] = {
+ { "harm0", HARM0, 0 },
+ { "harm1", HARM1, 0 },
+ { "harm2", HARM2, 0 },
+ { "harm3", HARM3, 0 },
+ { "harm4", HARM4, 0 },
+ { "harm5", HARM5, 0 },
+ { "attackLo", ATTACK_LO, 20 },
+ { "decayLo", DECAY_LO, 20 },
+ { "sustainLo", SUSTAIN_LO, 0 },
+ { "releaseLo", RELEASE_LO, 20 },
+ { "attackHi", ATTACK_HI, 10 },
+ { "decayHi", DECAY_HI, 10 },
+ { "sustainHi", SUSTAIN_HI, 0 },
+ { "releaseHi", RELEASE_HI, 10 },
+ { "brass", BRASS, 1 },
+ { "flute", FLUTE, 1 },
+ { "reed", REED, 1 },
+ { "velocity", VELO, 0 },
+ // next controller not send as init data
+ { "volume", CTRL_VOLUME, 100 },
+ };
+
+static int NUM_CONTROLLER = sizeof(Organ::synthCtrl)/sizeof(*(Organ::synthCtrl));
+static int NUM_INIT_CONTROLLER = NUM_CONTROLLER - 1;
+
+float* Organ::sine_table;
+float* Organ::g_triangle_table;
+float* Organ::g_pulse_table;
+int Organ::useCount = 0;
+double Organ::cb2amp_tab[MAX_ATTENUATION];
+unsigned Organ::freq256[128];
+
+//---------------------------------------------------------
+// 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];
+ }
+
+//---------------------------------------------------------
+// Organ
+//---------------------------------------------------------
+
+Organ::Organ(int sr)
+ : Mess(1)
+ {
+ idata = new int[NUM_CONTROLLER];
+ setSampleRate(sr);
+ gui = 0;
+
+ ++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);
+
+ for (int i = 0; i < 128; ++i) {
+ double freq = 8.176 * exp(double(i)*log(2.0)/12.0);
+ freq256[i] = (int) (freq * ((double) RESOLUTION) / sr * 256.0);
+ }
+ int size = RESOLUTION;
+ int half = size / 2;
+ int slope = size / 10;
+ int i;
+
+ // Initialize sine table.
+ sine_table = new float[size];
+ for (i = 0; i < size; i++)
+ sine_table[i] = sin ((i * 2.0 * M_PI) / size) / 6.0;
+
+ // Initialize triangle table.
+ g_triangle_table = new float[size];
+ for (i = 0; i < half; i++)
+ g_triangle_table[i] = (4.0 / size * i - 1.0) / 6.0;
+ for (; i < size; i++)
+ g_triangle_table[i] = (4.0 / size * (size - i) - 1.0) / 6.0;
+
+ // Initialize pulse table.
+ g_pulse_table = new float[size];
+ for (i = 0; i < slope; i++)
+ g_pulse_table[i] = (((double) -i) / slope) / 6.0;
+ for (; i < half - slope; i++)
+ g_pulse_table[i] = -1.0 / 6.0;
+ for (; i < half + slope; i++)
+ g_pulse_table[i] = (((double) i - half) / slope) / 6.0;
+ for (; i < size - slope; i++)
+ g_pulse_table[i] = 1.0 / 6.0;
+ for (; i < size; i++)
+ g_pulse_table[i] = (((double) size - i) / slope) / 6.0;
+ }
+
+//---------------------------------------------------------
+// ~Organ
+//---------------------------------------------------------
+
+Organ::~Organ()
+ {
+ if (gui)
+ delete gui;
+ delete idata;
+ --useCount;
+ if (useCount == 0) {
+ delete[] g_pulse_table;
+ delete[] g_triangle_table;
+ delete[] sine_table;
+ }
+ }
+
+//---------------------------------------------------------
+// table_pos
+//---------------------------------------------------------
+
+static inline float table_pos (float* table, unsigned long freq_256, unsigned *accum)
+ {
+ *accum += freq_256;
+ while (*accum >= RESOLUTION * 256)
+ *accum -= RESOLUTION * 256;
+ return table[*accum >> 8];
+ }
+
+//---------------------------------------------------------
+// init
+//---------------------------------------------------------
+
+bool Organ::init(const char* name)
+ {
+ gui = new OrganGui;
+ gui->setCaption(QString(name));
+ gui->show();
+
+ for (int i = 0; i < NUM_CONTROLLER; ++i)
+ setController(0, synthCtrl[i].num, synthCtrl[i].val);
+
+ for (int i = 0; i < VOICES; ++i)
+ voices[i].isOn = false;
+ return false;
+ }
+
+//---------------------------------------------------------
+// processMessages
+// Called from host always, even if output path is unconnected.
+//---------------------------------------------------------
+
+void Organ::processMessages()
+{
+ //Process messages from the gui
+ //
+ // get and process all pending events from the
+ // synthesizer GUI
+ //
+ while (gui->fifoSize())
+ {
+ MidiPlayEvent ev = gui->readEvent();
+ if (ev.type() == ME_CONTROLLER)
+ {
+ // process local?
+ setController(ev.dataA(), ev.dataB());
+ sendEvent(ev);
+ }
+ else
+ printf("Organ::process(): unknown event\n");
+ }
+}
+
+//---------------------------------------------------------
+// process
+// Called from host, ONLY if output path is connected.
+//---------------------------------------------------------
+
+void Organ::process(float** ports, int offset, int sampleCount)
+ {
+ /*
+ //
+ // get and process all pending events from the
+ // synthesizer GUI
+ //
+ while (gui->fifoSize()) {
+ MidiPlayEvent ev = gui->readEvent();
+ if (ev.type() == ME_CONTROLLER) {
+ // process local?
+ setController(ev.dataA(), ev.dataB());
+ sendEvent(ev);
+ }
+ else
+ printf("Organ::process(): unknown event\n");
+ }
+ */
+
+ float* buffer = *ports + offset;
+ for (int i = 0; i < VOICES; ++i) {
+ Voice* v = &voices[i];
+ if (!v->isOn)
+ continue;
+ double vol = velo ? v->velocity : 1.0;
+ vol *= volume;
+
+ unsigned freq_256 = freq256[v->pitch];
+ unsigned* harm0_accum = &(v->harm0_accum);
+ unsigned* harm1_accum = &(v->harm1_accum);
+ unsigned* harm2_accum = &(v->harm2_accum);
+ unsigned* harm3_accum = &(v->harm3_accum);
+ unsigned* harm4_accum = &(v->harm4_accum);
+ unsigned* harm5_accum = &(v->harm5_accum);
+
+ unsigned long freq_256_harm2, freq_256_harm3;
+ unsigned long freq_256_harm4, freq_256_harm5;
+
+ float* reed_table = reed ? g_pulse_table : sine_table;
+ float* flute_table = flute ? g_triangle_table : sine_table;
+
+ unsigned freq_256_harm0 = freq_256 / 2;
+ unsigned freq_256_harm1 = freq_256;
+
+ if (brass) {
+ freq_256_harm2 = freq_256 * 2;
+ freq_256_harm3 = freq_256_harm2 * 2;
+ freq_256_harm4 = freq_256_harm3 * 2;
+ freq_256_harm5 = freq_256_harm4 * 2;
+ for (int i = 0; i < sampleCount; i++) {
+ int a1=0, a2=0; //prevent compiler warning: unitialized usage of vars a1 & a2
+ switch(v->state1) {
+ case ATTACK:
+ if (v->envL1.step(&a1))
+ break;
+ v->state1 = DECAY;
+ case DECAY:
+ if (v->envL2.step(&a1))
+ break;
+ v->state1 = SUSTAIN;
+ case SUSTAIN:
+ a1 = sustain0;
+ break;
+ case RELEASE:
+ if (v->envL3.step(&a1))
+ break;
+ v->state1 = OFF;
+ a1 = MAX_ATTENUATION;
+ break;
+ }
+ switch(v->state2) {
+ case ATTACK:
+ if (v->envH1.step(&a2))
+ break;
+ v->state2 = DECAY;
+ case DECAY:
+ if (v->envH2.step(&a2))
+ break;
+ v->state2 = SUSTAIN;
+ case SUSTAIN:
+ a2 = sustain1;
+ break;
+ case RELEASE:
+ if (v->envH3.step(&a2))
+ break;
+ v->state2 = OFF;
+ a1 = MAX_ATTENUATION;
+ break;
+ }
+ if (v->state1 == OFF && v->state2 == OFF) {
+ v->isOn = false;
+ break;
+ }
+ buffer[i] +=
+ (table_pos (sine_table, freq_256_harm0, harm0_accum) * harm0
+ + table_pos (sine_table, freq_256_harm1, harm1_accum) * harm1
+ + table_pos (reed_table, freq_256_harm2, harm2_accum) * harm2)
+ * cb2amp(a1) * vol
+ + (table_pos (sine_table, freq_256_harm3, harm3_accum) * harm3
+ + table_pos (flute_table, freq_256_harm4, harm4_accum) * harm4
+ + table_pos (flute_table, freq_256_harm5, harm5_accum) * harm5)
+ * cb2amp(a2) * vol;
+ }
+ }
+ else {
+ freq_256_harm2 = freq_256 * 3 / 2;
+ freq_256_harm3 = freq_256 * 2;
+ freq_256_harm4 = freq_256 * 3;
+ freq_256_harm5 = freq_256_harm3 * 2;
+ for (int i = 0; i < sampleCount; i++) {
+ int a1=0, a2=0;//prevent compiler warning: unitialized usage of vars a1 & a2
+ switch(v->state1) {
+ case ATTACK:
+ if (v->envL1.step(&a1))
+ break;
+ v->state1 = DECAY;
+ case DECAY:
+ if (v->envL2.step(&a1))
+ break;
+ v->state1 = SUSTAIN;
+ case SUSTAIN:
+ a1 = sustain0;
+ break;
+ case RELEASE:
+ if (v->envL3.step(&a1))
+ break;
+ v->state1 = OFF;
+ a1 = MAX_ATTENUATION;
+ break;
+ }
+ switch(v->state2) {
+ case ATTACK:
+ if (v->envH1.step(&a2))
+ break;
+ v->state2 = DECAY;
+ case DECAY:
+ if (v->envH2.step(&a2))
+ break;
+ v->state2 = SUSTAIN;
+ case SUSTAIN:
+ a2 = sustain1;
+ break;
+ case RELEASE:
+ if (v->envH3.step(&a2))
+ break;
+ v->state2 = OFF;
+ a1 = MAX_ATTENUATION;
+ break;
+ }
+ if (v->state1 == OFF && v->state2 == OFF) {
+ v->isOn = false;
+ break;
+ }
+ buffer[i] +=
+ (table_pos (sine_table, freq_256_harm0, harm0_accum) * harm0
+ + table_pos (sine_table, freq_256_harm1, harm1_accum) * harm1
+ + table_pos (sine_table, freq_256_harm2, harm2_accum) * harm2)
+ * cb2amp(a1) * vol
+ + (table_pos (reed_table, freq_256_harm3, harm3_accum) * harm3
+ + table_pos (sine_table, freq_256_harm4, harm4_accum) * harm4
+ + table_pos (flute_table, freq_256_harm5, harm5_accum) * harm5)
+ * cb2amp(a2) * vol;
+ }
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// playNote
+//---------------------------------------------------------
+
+bool Organ::playNote(int channel, int pitch, int velo)
+ {
+ if (velo == 0) {
+ noteoff(channel, pitch);
+ return false;
+ }
+ for (int i = 0; i < VOICES; ++i) {
+ if (voices[i].isOn)
+ continue;
+ voices[i].isOn = true;
+ voices[i].pitch = pitch;
+ voices[i].channel = channel;
+ // velo is never 0
+ voices[i].velocity = cb2amp(int(200 * log10((127.0 * 127)/(velo*velo))));
+ voices[i].state1 = ATTACK;
+ voices[i].state2 = ATTACK;
+ voices[i].envL1.set(attack0, MAX_ATTENUATION, 0);
+ voices[i].envL2.set(decay0, MAX_ATTENUATION, sustain0);
+ voices[i].envL3.set(release0, sustain0, MAX_ATTENUATION);
+
+ voices[i].envH1.set(attack1, MAX_ATTENUATION, 0);
+ voices[i].envH2.set(decay1, MAX_ATTENUATION, sustain1);
+ voices[i].envH3.set(release1, sustain1, MAX_ATTENUATION);
+
+ voices[i].harm0_accum = 0;
+ voices[i].harm1_accum = 0;
+ voices[i].harm2_accum = 0;
+ voices[i].harm3_accum = 0;
+ voices[i].harm4_accum = 0;
+ voices[i].harm5_accum = 0;
+ return false;
+ }
+ printf("organ: voices overflow!\n");
+ return false;
+ }
+
+//---------------------------------------------------------
+// noteoff
+//---------------------------------------------------------
+
+void Organ::noteoff(int channel, int pitch)
+ {
+ bool found = false;
+ for (int i = 0; i < VOICES; ++i) {
+ if (voices[i].isOn && (voices[i].pitch == pitch)
+ && (voices[i].channel == channel)) {
+ found = true;
+ voices[i].state1 = RELEASE;
+ voices[i].state2 = RELEASE;
+ }
+ }
+ if (!found)
+ printf("Organ: noteoff %d:%d not found\n", channel, pitch);
+ }
+
+//---------------------------------------------------------
+// setController
+//---------------------------------------------------------
+
+void Organ::setController(int ctrl, int data)
+ {
+ int sr = sampleRate();
+
+ // Changed By T356.
+ // Because of muse's auto-bias controllers, some of these negative-range
+ // controls need to apply the auto-bias correction.
+
+ switch (ctrl) {
+ case HARM0:
+ //harm0 = cb2amp(-data);
+ harm0 = cb2amp(-data + 8192);
+ break;
+ case HARM1:
+ //harm1 = cb2amp(-data);
+ harm1 = cb2amp(-data + 8192);
+ break;
+ case HARM2:
+ //harm2 = cb2amp(-data);
+ harm2 = cb2amp(-data + 8192);
+ break;
+ case HARM3:
+ //harm3 = cb2amp(-data);
+ harm3 = cb2amp(-data + 8192);
+ break;
+ case HARM4:
+ //harm4 = cb2amp(-data);
+ harm4 = cb2amp(-data + 8192);
+ break;
+ case HARM5:
+ //harm5 = cb2amp(-data);
+ harm5 = cb2amp(-data + 8192);
+ break;
+ case ATTACK_LO: // maxval -> 500msec
+ attack0 = (data * sr) / 1000;
+ break;
+ case DECAY_LO: // maxval -> 5000msec
+ decay0 = (data * sr) / 1000;
+ break;
+ case SUSTAIN_LO:
+ //sustain0 = -data;
+ sustain0 = -data + 8192;
+ break;
+ case RELEASE_LO:
+ release0 = (data * sr) / 1000;
+ break;
+ case ATTACK_HI:
+ attack1 = (data * sr) / 1000;
+ break;
+ case DECAY_HI:
+ decay1 = (data * sr) / 1000;
+ break;
+ case SUSTAIN_HI:
+ //sustain1 = -data;
+ sustain1 = -data + 8192;
+ break;
+ case RELEASE_HI:
+ release1 = (data * sr) / 1000;
+ break;
+ case BRASS:
+ brass = data;
+ break;
+ case FLUTE:
+ flute = data;
+ break;
+ case REED:
+ reed = data;
+ break;
+ case VELO:
+ velo = data;
+ break;
+ case CTRL_VOLUME:
+ data &= 0x7f;
+ volume = data == 0 ? 0.0 : cb2amp(int(200 * log10((127.0 * 127)/(data*data))));
+ break;
+ case CTRL_ALL_SOUNDS_OFF:
+ for (int i = 0; i < VOICES; ++i)
+ voices[i].isOn = false;
+ 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", ctrl, data);
+ return;
+ }
+ for (int i = 0; i < NUM_CONTROLLER; ++i) {
+ if (synthCtrl[i].num == ctrl) {
+ synthCtrl[i].val = data;
+ break;
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// setController
+//---------------------------------------------------------
+
+bool Organ::setController(int channel, int ctrl, int data)
+ {
+ setController(ctrl, data);
+
+ switch (ctrl) {
+ case HARM0:
+ case HARM1:
+ case HARM2:
+ case HARM3:
+ case HARM4:
+ case HARM5:
+ case ATTACK_LO:
+ case DECAY_LO:
+ case SUSTAIN_LO:
+ case RELEASE_LO:
+ case ATTACK_HI:
+ case DECAY_HI:
+ case SUSTAIN_HI:
+ case RELEASE_HI:
+ case BRASS:
+ case FLUTE:
+ case REED:
+ case VELO:
+ {
+ MidiPlayEvent ev(0, 0, channel, ME_CONTROLLER, ctrl, data);
+ #ifdef ORGAN_DEBUG
+ fprintf(stderr, "OrganGui:setController before gui->writeEvent ctrl:%d data:%d\n", ctrl, data);
+ #endif
+
+ gui->writeEvent(ev);
+ }
+ break;
+ default:
+ break;
+ }
+ return false;
+ }
+
+//---------------------------------------------------------
+// sysex
+//---------------------------------------------------------
+
+bool Organ::sysex(int n, const unsigned char* data)
+ {
+ #ifdef ORGAN_DEBUG
+ printf("Organ: sysex\n");
+ #endif
+ if (unsigned(n) != (NUM_INIT_CONTROLLER * sizeof(int))) {
+ printf("Organ: unknown sysex\n");
+ return false;
+ }
+ int* s = (int*) data;
+ for (int i = 0; i < NUM_INIT_CONTROLLER; ++i) {
+ int val = *s++;
+ #ifdef ORGAN_DEBUG
+ printf("Organ: sysex before setController num:%d val:%d\n", synthCtrl[i].num, val);
+ #endif
+ setController(0, synthCtrl[i].num, val);
+ }
+ return false;
+ }
+
+//---------------------------------------------------------
+// getInitData
+//---------------------------------------------------------
+
+void Organ::getInitData(int* n, const unsigned char**p) const
+ {
+ int* d = idata;
+ for (int i = 0; i < NUM_INIT_CONTROLLER; ++i)
+ *d++ = synthCtrl[i].val;
+ *n = NUM_INIT_CONTROLLER * sizeof(int); // sizeof(idata);
+ *p = (unsigned char*)idata;
+ }
+
+//---------------------------------------------------------
+// MESS
+//---------------------------------------------------------
+
+//---------------------------------------------------------
+// getControllerInfo
+//---------------------------------------------------------
+
+int Organ::getControllerInfo(int id, const char** name, int* controller,
+ int* min, int* max, int* initval) const
+ {
+ if (id >= NUM_CONTROLLER)
+ return 0;
+ *controller = synthCtrl[id].num;
+ *name = synthCtrl[id].name;
+ *initval = synthCtrl[id].val;
+
+ if(synthCtrl[id].num == CTRL_VOLUME)
+ {
+ *min = 0;
+ *max = 127;
+ }
+ else
+ gui->getControllerMinMax(id,min,max);
+
+ //*min = 0;
+ //*max = 128*128-1;
+ return ++id;
+ }
+
+//---------------------------------------------------------
+// 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, QWidget*, QString* projectPathPtr, 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/muse2/synti/organ/organ.h b/muse2/synti/organ/organ.h
new file mode 100644
index 00000000..308646e1
--- /dev/null
+++ b/muse2/synti/organ/organ.h
@@ -0,0 +1,198 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: organ.h,v 1.5.2.3 2009/11/19 04:20:33 terminator356 Exp $
+//
+// Parts of this file taken from:
+// Organ - Additive Organ Synthesizer Voice
+// Copyright (c) 1999, 2000 David A. Bartold
+//
+// (C) Copyright 2001-2004 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __ORGAN_H__
+#define __ORGAN_H__
+
+#include "muse/midictrl.h"
+#include "libsynti/mess.h"
+
+#define RESOLUTION (16384*2)
+#define VOICES 128 // max polyphony
+
+class OrganGui;
+
+static const int MAX_ATTENUATION = 960;
+
+enum EnvelopeState {
+ ATTACK,
+ DECAY,
+ SUSTAIN,
+ RELEASE,
+ OFF
+ };
+
+//---------------------------------------------------------
+// Envelope
+//---------------------------------------------------------
+
+struct Envelope {
+ int ticks; // len of segment
+ int error, delta, schritt;
+ int y, yinc;
+
+ void set(int t, int y1, int y2) {
+ ticks = t;
+ y = y1;
+ int dy = y2 - y1;
+ int dx = t;
+ error = -dx;
+ schritt = 2*dx;
+ if (dy < 0) {
+ yinc = -1;
+ delta = -2 * dy;
+ }
+ else {
+ yinc = 1;
+ delta = 2 * dy;
+ }
+ }
+
+ // return false on envelope end
+ bool step(int* a) {
+ *a = y;
+ if (ticks == 0)
+ return false;
+ error += delta;
+ while (error > 0) {
+ y += yinc;
+ error -= schritt;
+ }
+ --ticks;
+ return true;
+ }
+ };
+
+static const int HARM0 = 0 + CTRL_RPN14_OFFSET;
+static const int HARM1 = 1 + CTRL_RPN14_OFFSET;
+static const int HARM2 = 2 + CTRL_RPN14_OFFSET;
+static const int HARM3 = 3 + CTRL_RPN14_OFFSET;
+static const int HARM4 = 4 + CTRL_RPN14_OFFSET;
+static const int HARM5 = 5 + CTRL_RPN14_OFFSET;
+static const int ATTACK_LO = 6 + CTRL_RPN14_OFFSET;
+static const int DECAY_LO = 7 + CTRL_RPN14_OFFSET;
+static const int SUSTAIN_LO = 8 + CTRL_RPN14_OFFSET;
+static const int RELEASE_LO = 9 + CTRL_RPN14_OFFSET;
+static const int ATTACK_HI = 10 + CTRL_RPN14_OFFSET;
+static const int DECAY_HI = 11 + CTRL_RPN14_OFFSET;
+static const int SUSTAIN_HI = 12 + CTRL_RPN14_OFFSET;
+static const int RELEASE_HI = 13 + CTRL_RPN14_OFFSET;
+static const int BRASS = 14 + CTRL_RPN14_OFFSET;
+static const int FLUTE = 15 + CTRL_RPN14_OFFSET;
+static const int REED = 16 + CTRL_RPN14_OFFSET;
+static const int VELO = 17 + CTRL_RPN14_OFFSET;
+
+//---------------------------------------------------------
+// SynthCtrl
+//---------------------------------------------------------
+
+struct SynthCtrl {
+ const char* name;
+ int num;
+ int val;
+ };
+
+//---------------------------------------------------------
+// Voice
+//---------------------------------------------------------
+
+struct Voice {
+ bool isOn;
+ int pitch;
+ int channel;
+
+ double velocity;
+
+ int state1, state2;
+ Envelope envL1, envL2, envL3;
+ Envelope envH1, envH2, envH3;
+
+ unsigned harm0_accum;
+ unsigned harm1_accum;
+ unsigned harm2_accum;
+ unsigned harm3_accum;
+ unsigned harm4_accum;
+ unsigned harm5_accum;
+ };
+
+//---------------------------------------------------------
+// Preset
+//---------------------------------------------------------
+
+struct Preset {
+ char* name;
+ bool brass, flute, reed;
+ int attack0, attack1;
+ int release0, release1;
+ int decay0, decay1;
+ double harm0, harm1, harm2, harm3, harm4, harm5;
+ bool velo;
+ };
+
+//---------------------------------------------------------
+// Organ
+//---------------------------------------------------------
+
+class Organ : public Mess {
+ static int useCount;
+
+ static double cb2amp_tab[MAX_ATTENUATION];
+ static unsigned freq256[128];
+ static double cb2amp(int cb);
+
+ int* idata; // buffer for init data
+
+ bool brass, flute, reed;
+ int attack0, attack1;
+ int release0, release1;
+ int decay0, decay1; // ticks
+ int sustain0, sustain1; // centibel
+ bool velo;
+ double volume;
+
+ double harm0, harm1, harm2, harm3, harm4, harm5;
+
+ Voice voices[VOICES];
+
+ static float* sine_table;
+ static float* g_triangle_table;
+ static float* g_pulse_table;
+
+ void noteoff(int channel, int pitch);
+ void setController(int ctrl, int val);
+
+
+ OrganGui* gui;
+
+ public:
+ virtual void processMessages();
+ 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 int getControllerInfo(int, const char**, int*, int*, int*, int*) const;
+ virtual void getInitData(int*, const unsigned char**) const;
+
+ 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);
+ virtual bool sysex(int, const unsigned char*);
+ static SynthCtrl synthCtrl[];
+ Organ(int sampleRate);
+ ~Organ();
+ bool init(const char* name);
+ };
+
+#endif
+
diff --git a/muse2/synti/organ/organgui.cpp b/muse2/synti/organ/organgui.cpp
new file mode 100644
index 00000000..2f68b655
--- /dev/null
+++ b/muse2/synti/organ/organgui.cpp
@@ -0,0 +1,189 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: organgui.cpp,v 1.16.2.3 2009/11/16 04:30:46 terminator356 Exp $
+//
+// This is a simple GUI implemented with QT for
+// organ software synthesizer.
+//
+// (C) Copyright 2001-2004 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include <unistd.h>
+#include <stdlib.h>
+#include <list>
+
+#include <qslider.h>
+#include <qcheckbox.h>
+#include <qsocketnotifier.h>
+#include <q3listbox.h>
+#include <qtoolbutton.h>
+#include <qlineedit.h>
+#include <q3filedialog.h>
+#include <qspinbox.h>
+#include <qsignalmapper.h>
+
+#include "organgui.h"
+#include "muse/midi.h"
+#include "muse/midictrl.h"
+
+//#define ORGANGUI_DEBUG
+
+//---------------------------------------------------------
+// OrganGui
+//---------------------------------------------------------
+
+OrganGui::OrganGui()
+ : OrganGuiBase(0, "organgui", Qt::WType_TopLevel), MessGui()
+ {
+ QSocketNotifier* s = new QSocketNotifier(readFd, QSocketNotifier::Read);
+ connect(s, SIGNAL(activated(int)), SLOT(readMessage(int)));
+
+ dctrl[0] = SynthGuiCtrl(p1, lcd1, SynthGuiCtrl::SLIDER);
+ dctrl[1] = SynthGuiCtrl(p2, lcd2, SynthGuiCtrl::SLIDER);
+ dctrl[2] = SynthGuiCtrl(p3, lcd3, SynthGuiCtrl::SLIDER);
+ dctrl[3] = SynthGuiCtrl(p4, lcd4, SynthGuiCtrl::SLIDER);
+ dctrl[4] = SynthGuiCtrl(p5, lcd5, SynthGuiCtrl::SLIDER);
+ dctrl[5] = SynthGuiCtrl(p6, lcd6, SynthGuiCtrl::SLIDER);
+ dctrl[6] = SynthGuiCtrl(p7, lcd7, SynthGuiCtrl::SLIDER);
+ dctrl[7] = SynthGuiCtrl(p8, lcd8, SynthGuiCtrl::SLIDER);
+ dctrl[8] = SynthGuiCtrl(p9, lcd9, SynthGuiCtrl::SLIDER);
+ dctrl[9] = SynthGuiCtrl(p10, lcd10, SynthGuiCtrl::SLIDER);
+ dctrl[10] = SynthGuiCtrl(p11, lcd11, SynthGuiCtrl::SLIDER);
+ dctrl[11] = SynthGuiCtrl(p12, lcd12, SynthGuiCtrl::SLIDER);
+ dctrl[12] = SynthGuiCtrl(p13, lcd13, SynthGuiCtrl::SLIDER);
+ dctrl[13] = SynthGuiCtrl(p14, lcd14, SynthGuiCtrl::SLIDER);
+ dctrl[14] = SynthGuiCtrl(sw1, 0, SynthGuiCtrl::SWITCH);
+ dctrl[15] = SynthGuiCtrl(sw3, 0, SynthGuiCtrl::SWITCH);
+ dctrl[16] = SynthGuiCtrl(sw2, 0, SynthGuiCtrl::SWITCH);
+ dctrl[17] = SynthGuiCtrl(sw4, 0, SynthGuiCtrl::SWITCH);
+
+ map = new QSignalMapper(this);
+ for (int i = 0; i < NUM_GUI_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::SWITCH)
+ connect((QCheckBox*)(dctrl[i].editor), SIGNAL(toggled(bool)), map, SLOT(map()));
+ }
+ connect(map, SIGNAL(mapped(int)), this, SLOT(ctrlChanged(int)));
+
+ // work around for probable QT/WM interaction bug.
+ // for certain window managers, e.g xfce, this window is
+ // is displayed although not specifically set to show();
+ // bug: 2811156 Softsynth GUI unclosable with XFCE4 (and a few others)
+ show();
+ hide();
+ }
+
+//---------------------------------------------------------
+// ctrlChanged
+//---------------------------------------------------------
+
+void OrganGui::ctrlChanged(int idx)
+ {
+ SynthGuiCtrl* ctrl = &dctrl[idx];
+ int val = 0;
+ if (ctrl->type == SynthGuiCtrl::SLIDER) {
+ QSlider* slider = (QSlider*)(ctrl->editor);
+ val = slider->value();
+ // By T356. Apply auto-bias center value.
+ if(slider->minValue() < 0)
+ val += 8192;
+ }
+ else if (ctrl->type == SynthGuiCtrl::SWITCH) {
+ val = ((QCheckBox*)(ctrl->editor))->isChecked();
+ }
+ sendController(0, idx + CTRL_RPN14_OFFSET, val);
+ }
+
+//---------------------------------------------------------
+// getControllerInfo
+// return min max values for controllers
+//---------------------------------------------------------
+int OrganGui::getControllerMinMax(int id, int* min, int* max) const
+ {
+ if (id >= NUM_GUI_CONTROLLER)
+ return 0;
+
+ const SynthGuiCtrl* ctrl = (const SynthGuiCtrl*)&dctrl[id];
+ //int val = 0;
+ if (ctrl->type == SynthGuiCtrl::SLIDER) {
+ QSlider* slider = (QSlider*)(ctrl->editor);
+ *max = slider->maxValue();
+ *min = slider->minValue();
+ //val = (slider->value() * 16383 + max/2) / max;
+
+ //val = 16383 + 1/2
+ }
+ else if (ctrl->type == SynthGuiCtrl::SWITCH) {
+ //val = ((QCheckBox*)(ctrl->editor))->isOn();
+ *min=0;
+ *max=1;
+ }
+ return ++id;
+ }
+
+//---------------------------------------------------------
+// setParam
+// set param in gui
+//---------------------------------------------------------
+
+void OrganGui::setParam(int param, int val)
+ {
+ #ifdef ORGANGUI_DEBUG
+ fprintf(stderr, "OrganGui:setParam param:%d val:%d\n", param, val);
+ #endif
+
+ param &= 0xfff;
+ if (param >= int(sizeof(dctrl)/sizeof(*dctrl))) {
+ fprintf(stderr, "OrganGui: set unknown Ctrl 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->maxValue();
+// if(val < 0) val = (val * max + 8191) / 16383 - 1;
+// else val = (val * max + 8191) / 16383;
+
+ // By T356. Apply auto-bias center value.
+ if(slider->minValue() < 0)
+ val -= 8192;
+
+ #ifdef ORGANGUI_DEBUG
+ fprintf(stderr, "OrganGui:setParam setting slider val:%d\n", val);
+ #endif
+
+ slider->setValue(val);
+ if (ctrl->label)
+ ((QSpinBox*)(ctrl->label))->setValue(val);
+ }
+ else if (ctrl->type == SynthGuiCtrl::SWITCH) {
+ ((QCheckBox*)(ctrl->editor))->setChecked(val);
+ }
+ ctrl->editor->blockSignals(false);
+ }
+
+//---------------------------------------------------------
+// processEvent
+//---------------------------------------------------------
+
+void OrganGui::processEvent(const MidiPlayEvent& 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/muse2/synti/organ/organgui.h b/muse2/synti/organ/organgui.h
new file mode 100644
index 00000000..9f133de7
--- /dev/null
+++ b/muse2/synti/organ/organgui.h
@@ -0,0 +1,43 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: organgui.h,v 1.6.2.1 2005/12/29 23:33:50 spamatica Exp $
+//
+// (C) Copyright 2001-2004 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __ORGANGUI_H__
+#define __ORGANGUI_H__
+
+#include "organguibase.h"
+#include "organ.h"
+#include "libsynti/gui.h"
+#include "libsynti/mpevent.h"
+
+class QSignalMapper;
+
+#define NUM_GUI_CONTROLLER 18
+
+//---------------------------------------------------------
+// OrganGui
+//---------------------------------------------------------
+
+class OrganGui : public OrganGuiBase, public MessGui {
+ Q_OBJECT
+
+ QSignalMapper* map;
+ SynthGuiCtrl dctrl[NUM_GUI_CONTROLLER];
+ void setParam(int, int);
+
+ private slots:
+ void ctrlChanged(int idx);
+ void readMessage(int);
+
+ public:
+ virtual void processEvent(const MidiPlayEvent&);
+ int getControllerMinMax(int id, int* min, int* max) const;
+ OrganGui();
+ };
+
+#endif
+
diff --git a/muse2/synti/organ/organguibase.ui b/muse2/synti/organ/organguibase.ui
new file mode 100644
index 00000000..1a87fee8
--- /dev/null
+++ b/muse2/synti/organ/organguibase.ui
@@ -0,0 +1,1219 @@
+<!DOCTYPE UI><UI version="3.2" stdsetdef="1">
+<class>OrganGuiBase</class>
+<widget class="QWidget">
+ <property name="name">
+ <cstring>OrganGuiBase</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>534</width>
+ <height>366</height>
+ </rect>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>7</hsizetype>
+ <vsizetype>5</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="paletteBackgroundColor">
+ <color>
+ <red>198</red>
+ <green>205</green>
+ <blue>220</blue>
+ </color>
+ </property>
+ <property name="caption">
+ <string>MusE: Organ</string>
+ </property>
+ <grid>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>4</number>
+ </property>
+ <property name="spacing">
+ <number>6</number>
+ </property>
+ <widget class="QGroupBox" row="1" column="0">
+ <property name="name">
+ <cstring>GroupBox1</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>7</hsizetype>
+ <vsizetype>7</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="title">
+ <string>Drawbars</string>
+ </property>
+ <grid>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>6</number>
+ </property>
+ <property name="spacing">
+ <number>2</number>
+ </property>
+ <widget class="QLabel" row="0" column="0">
+ <property name="name">
+ <cstring>TextLabel1</cstring>
+ </property>
+ <property name="text">
+ <string>16'</string>
+ </property>
+ </widget>
+ <widget class="QLabel" row="3" column="0">
+ <property name="name">
+ <cstring>TextLabel4</cstring>
+ </property>
+ <property name="text">
+ <string>4'</string>
+ </property>
+ </widget>
+ <widget class="QLabel" row="4" column="0">
+ <property name="name">
+ <cstring>TextLabel5</cstring>
+ </property>
+ <property name="text">
+ <string>2 2/3'</string>
+ </property>
+ </widget>
+ <widget class="QLabel" row="5" column="0">
+ <property name="name">
+ <cstring>TextLabel6</cstring>
+ </property>
+ <property name="text">
+ <string>2'</string>
+ </property>
+ </widget>
+ <widget class="QLabel" row="2" column="0">
+ <property name="name">
+ <cstring>TextLabel2</cstring>
+ </property>
+ <property name="text">
+ <string>5 1/3'</string>
+ </property>
+ </widget>
+ <widget class="QLabel" row="1" column="0">
+ <property name="name">
+ <cstring>TextLabel3</cstring>
+ </property>
+ <property name="text">
+ <string>8'</string>
+ </property>
+ </widget>
+ <widget class="QSlider" row="1" column="2">
+ <property name="name">
+ <cstring>p2</cstring>
+ </property>
+ <property name="paletteForegroundColor">
+ <color>
+ <red>0</red>
+ <green>0</green>
+ <blue>0</blue>
+ </color>
+ </property>
+ <property name="paletteBackgroundColor">
+ <color>
+ <red>170</red>
+ <green>85</green>
+ <blue>0</blue>
+ </color>
+ </property>
+ <property name="minValue">
+ <number>-960</number>
+ </property>
+ <property name="maxValue">
+ <number>0</number>
+ </property>
+ <property name="pageStep">
+ <number>1</number>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="tickmarks">
+ <enum>NoMarks</enum>
+ </property>
+ <property name="tickInterval">
+ <number>10</number>
+ </property>
+ </widget>
+ <widget class="QSlider" row="2" column="2">
+ <property name="name">
+ <cstring>p3</cstring>
+ </property>
+ <property name="paletteBackgroundColor">
+ <color>
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ </property>
+ <property name="minValue">
+ <number>-960</number>
+ </property>
+ <property name="maxValue">
+ <number>0</number>
+ </property>
+ <property name="pageStep">
+ <number>1</number>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="tickmarks">
+ <enum>NoMarks</enum>
+ </property>
+ <property name="tickInterval">
+ <number>10</number>
+ </property>
+ </widget>
+ <widget class="QSlider" row="3" column="2">
+ <property name="name">
+ <cstring>p4</cstring>
+ </property>
+ <property name="paletteBackgroundColor">
+ <color>
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ </property>
+ <property name="minValue">
+ <number>-960</number>
+ </property>
+ <property name="maxValue">
+ <number>0</number>
+ </property>
+ <property name="pageStep">
+ <number>1</number>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="tickmarks">
+ <enum>NoMarks</enum>
+ </property>
+ <property name="tickInterval">
+ <number>10</number>
+ </property>
+ </widget>
+ <widget class="QSlider" row="4" column="2">
+ <property name="name">
+ <cstring>p5</cstring>
+ </property>
+ <property name="paletteForegroundColor">
+ <color>
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ </property>
+ <property name="paletteBackgroundColor">
+ <color>
+ <red>0</red>
+ <green>0</green>
+ <blue>0</blue>
+ </color>
+ </property>
+ <property name="minValue">
+ <number>-960</number>
+ </property>
+ <property name="maxValue">
+ <number>0</number>
+ </property>
+ <property name="pageStep">
+ <number>1</number>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="tickmarks">
+ <enum>NoMarks</enum>
+ </property>
+ <property name="tickInterval">
+ <number>10</number>
+ </property>
+ </widget>
+ <widget class="QSlider" row="5" column="2">
+ <property name="name">
+ <cstring>p6</cstring>
+ </property>
+ <property name="paletteBackgroundColor">
+ <color>
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ </property>
+ <property name="minValue">
+ <number>-960</number>
+ </property>
+ <property name="maxValue">
+ <number>0</number>
+ </property>
+ <property name="pageStep">
+ <number>1</number>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="tickmarks">
+ <enum>NoMarks</enum>
+ </property>
+ <property name="tickInterval">
+ <number>10</number>
+ </property>
+ </widget>
+ <widget class="QSlider" row="0" column="2">
+ <property name="name">
+ <cstring>p1</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>7</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="paletteBackgroundColor">
+ <color>
+ <red>170</red>
+ <green>85</green>
+ <blue>0</blue>
+ </color>
+ </property>
+ <property name="minValue">
+ <number>-960</number>
+ </property>
+ <property name="maxValue">
+ <number>0</number>
+ </property>
+ <property name="pageStep">
+ <number>1</number>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="tickmarks">
+ <enum>NoMarks</enum>
+ </property>
+ <property name="tickInterval">
+ <number>10</number>
+ </property>
+ </widget>
+ <widget class="QSpinBox" row="0" column="1">
+ <property name="name">
+ <cstring>lcd1</cstring>
+ </property>
+ <property name="maxValue">
+ <number>0</number>
+ </property>
+ <property name="minValue">
+ <number>-960</number>
+ </property>
+ </widget>
+ <widget class="QSpinBox" row="1" column="1">
+ <property name="name">
+ <cstring>lcd2</cstring>
+ </property>
+ <property name="maxValue">
+ <number>0</number>
+ </property>
+ <property name="minValue">
+ <number>-960</number>
+ </property>
+ <property name="lineStep">
+ <number>10</number>
+ </property>
+ </widget>
+ <widget class="QSpinBox" row="2" column="1">
+ <property name="name">
+ <cstring>lcd3</cstring>
+ </property>
+ <property name="maxValue">
+ <number>0</number>
+ </property>
+ <property name="minValue">
+ <number>-960</number>
+ </property>
+ <property name="lineStep">
+ <number>10</number>
+ </property>
+ </widget>
+ <widget class="QSpinBox" row="3" column="1">
+ <property name="name">
+ <cstring>lcd4</cstring>
+ </property>
+ <property name="maxValue">
+ <number>0</number>
+ </property>
+ <property name="minValue">
+ <number>-960</number>
+ </property>
+ <property name="lineStep">
+ <number>10</number>
+ </property>
+ </widget>
+ <widget class="QSpinBox" row="4" column="1">
+ <property name="name">
+ <cstring>lcd5</cstring>
+ </property>
+ <property name="maxValue">
+ <number>0</number>
+ </property>
+ <property name="minValue">
+ <number>-960</number>
+ </property>
+ <property name="lineStep">
+ <number>10</number>
+ </property>
+ </widget>
+ <widget class="QSpinBox" row="5" column="1">
+ <property name="name">
+ <cstring>lcd6</cstring>
+ </property>
+ <property name="maxValue">
+ <number>0</number>
+ </property>
+ <property name="minValue">
+ <number>-960</number>
+ </property>
+ <property name="lineStep">
+ <number>10</number>
+ </property>
+ </widget>
+ </grid>
+ </widget>
+ <widget class="QGroupBox" row="1" column="1">
+ <property name="name">
+ <cstring>GroupBox4</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>7</hsizetype>
+ <vsizetype>7</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="title">
+ <string>Envelope Hi</string>
+ </property>
+ <grid>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>11</number>
+ </property>
+ <property name="spacing">
+ <number>2</number>
+ </property>
+ <widget class="QLabel" row="4" column="0">
+ <property name="name">
+ <cstring>TextLabel14</cstring>
+ </property>
+ <property name="text">
+ <string>Release</string>
+ </property>
+ </widget>
+ <widget class="QLabel" row="2" column="0" rowspan="2" colspan="1">
+ <property name="name">
+ <cstring>TextLabel13</cstring>
+ </property>
+ <property name="text">
+ <string>Sustain</string>
+ </property>
+ </widget>
+ <widget class="QLabel" row="1" column="0">
+ <property name="name">
+ <cstring>TextLabel12</cstring>
+ </property>
+ <property name="text">
+ <string>Decay</string>
+ </property>
+ </widget>
+ <widget class="QLabel" row="0" column="0">
+ <property name="name">
+ <cstring>TextLabel11</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>4</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>Attack</string>
+ </property>
+ </widget>
+ <widget class="QSlider" row="4" column="2">
+ <property name="name">
+ <cstring>p14</cstring>
+ </property>
+ <property name="maxValue">
+ <number>500</number>
+ </property>
+ <property name="pageStep">
+ <number>1</number>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="tickmarks">
+ <enum>NoMarks</enum>
+ </property>
+ <property name="tickInterval">
+ <number>50</number>
+ </property>
+ </widget>
+ <widget class="QSlider" row="2" column="2">
+ <property name="name">
+ <cstring>p13</cstring>
+ </property>
+ <property name="minValue">
+ <number>-960</number>
+ </property>
+ <property name="maxValue">
+ <number>0</number>
+ </property>
+ <property name="pageStep">
+ <number>1</number>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="tickmarks">
+ <enum>NoMarks</enum>
+ </property>
+ <property name="tickInterval">
+ <number>10</number>
+ </property>
+ </widget>
+ <widget class="QSlider" row="1" column="2">
+ <property name="name">
+ <cstring>p12</cstring>
+ </property>
+ <property name="maxValue">
+ <number>5000</number>
+ </property>
+ <property name="pageStep">
+ <number>1</number>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="tickmarks">
+ <enum>NoMarks</enum>
+ </property>
+ <property name="tickInterval">
+ <number>500</number>
+ </property>
+ </widget>
+ <widget class="QSpinBox" row="0" column="1">
+ <property name="name">
+ <cstring>lcd11</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="suffix">
+ <string>ms</string>
+ </property>
+ <property name="maxValue">
+ <number>500</number>
+ </property>
+ </widget>
+ <widget class="QSlider" row="0" column="2">
+ <property name="name">
+ <cstring>p11</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>7</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="maxValue">
+ <number>500</number>
+ </property>
+ <property name="pageStep">
+ <number>1</number>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="tickmarks">
+ <enum>NoMarks</enum>
+ </property>
+ <property name="tickInterval">
+ <number>50</number>
+ </property>
+ </widget>
+ <widget class="QSpinBox" row="1" column="1">
+ <property name="name">
+ <cstring>lcd12</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="suffix">
+ <string>ms</string>
+ </property>
+ <property name="maxValue">
+ <number>5000</number>
+ </property>
+ </widget>
+ <widget class="QSpinBox" row="2" column="1">
+ <property name="name">
+ <cstring>lcd13</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="suffix">
+ <string>cB</string>
+ </property>
+ <property name="maxValue">
+ <number>0</number>
+ </property>
+ <property name="minValue">
+ <number>-960</number>
+ </property>
+ </widget>
+ <widget class="QSpinBox" row="3" column="1" rowspan="2" colspan="1">
+ <property name="name">
+ <cstring>lcd14</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="suffix">
+ <string>ms</string>
+ </property>
+ <property name="maxValue">
+ <number>500</number>
+ </property>
+ </widget>
+ </grid>
+ </widget>
+ <widget class="QGroupBox" row="0" column="1">
+ <property name="name">
+ <cstring>GroupBox2</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>7</hsizetype>
+ <vsizetype>7</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="title">
+ <string>Envelope Lo</string>
+ </property>
+ <property name="alignment">
+ <set>AlignLeft</set>
+ </property>
+ <grid>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>11</number>
+ </property>
+ <property name="spacing">
+ <number>2</number>
+ </property>
+ <widget class="QLabel" row="0" column="0">
+ <property name="name">
+ <cstring>TextLabel7</cstring>
+ </property>
+ <property name="text">
+ <string>Attack</string>
+ </property>
+ </widget>
+ <widget class="QLabel" row="1" column="0">
+ <property name="name">
+ <cstring>TextLabel8</cstring>
+ </property>
+ <property name="text">
+ <string>Decay</string>
+ </property>
+ </widget>
+ <widget class="QLabel" row="2" column="0">
+ <property name="name">
+ <cstring>TextLabel9</cstring>
+ </property>
+ <property name="text">
+ <string>Sustain</string>
+ </property>
+ </widget>
+ <widget class="QLabel" row="3" column="0">
+ <property name="name">
+ <cstring>TextLabel10</cstring>
+ </property>
+ <property name="text">
+ <string>Release</string>
+ </property>
+ </widget>
+ <widget class="QSlider" row="0" column="2">
+ <property name="name">
+ <cstring>p7</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>7</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>80</width>
+ <height>0</height>
+ </size>
+ </property>
+ <property name="maxValue">
+ <number>500</number>
+ </property>
+ <property name="pageStep">
+ <number>1</number>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="tickmarks">
+ <enum>NoMarks</enum>
+ </property>
+ <property name="tickInterval">
+ <number>50</number>
+ </property>
+ </widget>
+ <widget class="QSlider" row="1" column="2">
+ <property name="name">
+ <cstring>p8</cstring>
+ </property>
+ <property name="maxValue">
+ <number>5000</number>
+ </property>
+ <property name="pageStep">
+ <number>1</number>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="tickmarks">
+ <enum>NoMarks</enum>
+ </property>
+ <property name="tickInterval">
+ <number>500</number>
+ </property>
+ </widget>
+ <widget class="QSlider" row="2" column="2">
+ <property name="name">
+ <cstring>p9</cstring>
+ </property>
+ <property name="minValue">
+ <number>-960</number>
+ </property>
+ <property name="maxValue">
+ <number>0</number>
+ </property>
+ <property name="pageStep">
+ <number>1</number>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="tickmarks">
+ <enum>NoMarks</enum>
+ </property>
+ <property name="tickInterval">
+ <number>10</number>
+ </property>
+ </widget>
+ <widget class="QSlider" row="3" column="2">
+ <property name="name">
+ <cstring>p10</cstring>
+ </property>
+ <property name="maxValue">
+ <number>500</number>
+ </property>
+ <property name="pageStep">
+ <number>1</number>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="tickmarks">
+ <enum>NoMarks</enum>
+ </property>
+ <property name="tickInterval">
+ <number>50</number>
+ </property>
+ </widget>
+ <widget class="QSpinBox" row="0" column="1">
+ <property name="name">
+ <cstring>lcd7</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>1</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="suffix">
+ <string>ms</string>
+ </property>
+ <property name="maxValue">
+ <number>500</number>
+ </property>
+ </widget>
+ <widget class="QSpinBox" row="1" column="1">
+ <property name="name">
+ <cstring>lcd8</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>1</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="suffix">
+ <string>ms</string>
+ </property>
+ <property name="maxValue">
+ <number>5000</number>
+ </property>
+ </widget>
+ <widget class="QSpinBox" row="2" column="1">
+ <property name="name">
+ <cstring>lcd9</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>1</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="suffix">
+ <string>cB</string>
+ </property>
+ <property name="maxValue">
+ <number>0</number>
+ </property>
+ <property name="minValue">
+ <number>-960</number>
+ </property>
+ <property name="value">
+ <number>0</number>
+ </property>
+ </widget>
+ <widget class="QSpinBox" row="3" column="1">
+ <property name="name">
+ <cstring>lcd10</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>1</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="suffix">
+ <string>ms</string>
+ </property>
+ <property name="maxValue">
+ <number>500</number>
+ </property>
+ </widget>
+ </grid>
+ </widget>
+ <widget class="QLayoutWidget" row="0" column="0">
+ <property name="name">
+ <cstring>layout1</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>TextLabel1_2</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>7</hsizetype>
+ <vsizetype>5</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="paletteForegroundColor">
+ <color>
+ <red>0</red>
+ <green>0</green>
+ <blue>255</blue>
+ </color>
+ </property>
+ <property name="paletteBackgroundColor">
+ <color>
+ <red>198</red>
+ <green>205</green>
+ <blue>220</blue>
+ </color>
+ </property>
+ <property name="font">
+ <font>
+ <pointsize>48</pointsize>
+ </font>
+ </property>
+ <property name="text">
+ <string>O-1</string>
+ </property>
+ <property name="alignment">
+ <set>AlignCenter</set>
+ </property>
+ </widget>
+ <widget class="QGroupBox">
+ <property name="name">
+ <cstring>GroupBox3</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>7</hsizetype>
+ <vsizetype>7</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="title">
+ <string>Oscillator</string>
+ </property>
+ <vbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>11</number>
+ </property>
+ <property name="spacing">
+ <number>2</number>
+ </property>
+ <widget class="QCheckBox">
+ <property name="name">
+ <cstring>sw1</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>1</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>Brass</string>
+ </property>
+ </widget>
+ <widget class="QCheckBox">
+ <property name="name">
+ <cstring>sw2</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>1</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>Reed</string>
+ </property>
+ </widget>
+ <widget class="QCheckBox">
+ <property name="name">
+ <cstring>sw3</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>1</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>Flute</string>
+ </property>
+ </widget>
+ <spacer>
+ <property name="name">
+ <cstring>spacer1</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Vertical</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>20</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ <widget class="QCheckBox">
+ <property name="name">
+ <cstring>sw4</cstring>
+ </property>
+ <property name="text">
+ <string>Velocity</string>
+ </property>
+ </widget>
+ </vbox>
+ </widget>
+ </hbox>
+ </widget>
+ </grid>
+</widget>
+<connections>
+ <connection>
+ <sender>p11</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>lcd11</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>p12</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>lcd12</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>p13</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>lcd13</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>p14</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>lcd14</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>p7</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>lcd7</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>p8</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>lcd8</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>p9</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>lcd9</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>p10</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>lcd10</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>p1</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>lcd1</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>p2</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>lcd2</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>p3</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>lcd3</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>p4</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>lcd4</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>p5</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>lcd5</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>p6</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>lcd6</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>lcd1</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>p1</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>lcd2</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>p2</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>lcd3</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>p3</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>lcd4</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>p4</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>lcd5</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>p5</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>lcd6</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>p6</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>lcd7</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>p7</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>lcd8</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>p8</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>lcd9</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>p9</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>lcd10</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>p10</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>lcd11</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>p11</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>lcd12</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>p12</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>lcd13</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>p13</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>lcd14</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>p14</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+</connections>
+<tabstops>
+ <tabstop>p1</tabstop>
+ <tabstop>p3</tabstop>
+ <tabstop>p2</tabstop>
+ <tabstop>p4</tabstop>
+ <tabstop>p5</tabstop>
+ <tabstop>p6</tabstop>
+ <tabstop>p7</tabstop>
+ <tabstop>p8</tabstop>
+ <tabstop>p9</tabstop>
+ <tabstop>p10</tabstop>
+ <tabstop>p11</tabstop>
+ <tabstop>p12</tabstop>
+ <tabstop>p13</tabstop>
+ <tabstop>p14</tabstop>
+ <tabstop>sw1</tabstop>
+ <tabstop>sw2</tabstop>
+ <tabstop>sw3</tabstop>
+</tabstops>
+<layoutdefaults spacing="6" margin="11"/>
+</UI>
diff --git a/muse2/synti/s1/Makefile.am b/muse2/synti/s1/Makefile.am
new file mode 100644
index 00000000..9b5f87db
--- /dev/null
+++ b/muse2/synti/s1/Makefile.am
@@ -0,0 +1,13 @@
+include $(top_srcdir)/common.am
+include $(top_srcdir)/synti/synti-install.am
+
+MOCBASES =
+
+UICBASES =
+
+synthi_LTLIBRARIES = s1.la
+
+s1_la_SOURCES = s1.cpp
+s1_la_LIBADD = ../libsynti/libsynti.la
+s1_la_LDFLAGS = -module -avoid-version
+
diff --git a/muse2/synti/s1/Makefile.in b/muse2/synti/s1/Makefile.in
new file mode 100644
index 00000000..a42c132c
--- /dev/null
+++ b/muse2/synti/s1/Makefile.in
@@ -0,0 +1,634 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
+ $(top_srcdir)/common.am $(top_srcdir)/synti/synti-install.am
+subdir = synti/s1
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal-include.m4 \
+ $(top_srcdir)/m4/alsa.m4 $(top_srcdir)/m4/docbook.m4 \
+ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
+ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
+ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__installdirs = "$(DESTDIR)$(synthidir)"
+LTLIBRARIES = $(synthi_LTLIBRARIES)
+s1_la_DEPENDENCIES = ../libsynti/libsynti.la
+am_s1_la_OBJECTS = s1.lo
+s1_la_OBJECTS = $(am_s1_la_OBJECTS)
+s1_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \
+ $(s1_la_LDFLAGS) $(LDFLAGS) -o $@
+DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
+depcomp = $(SHELL) $(top_srcdir)/depcomp
+am__depfiles_maybe = depfiles
+am__mv = mv -f
+CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
+LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
+CXXLD = $(CXX)
+CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \
+ $(LDFLAGS) -o $@
+SOURCES = $(s1_la_SOURCES)
+DIST_SOURCES = $(s1_la_SOURCES)
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ALSA_CFLAGS = @ALSA_CFLAGS@
+ALSA_LIBS = @ALSA_LIBS@
+AMTAR = @AMTAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DOCBOOKSTYLE = @DOCBOOKSTYLE@
+DOCBOOKTARGETS = @DOCBOOKTARGETS@
+DOT = @DOT@
+DOTPATH = @DOTPATH@
+DOXYGEN = @DOXYGEN@
+DOXYGEN_TREEVIEW = @DOXYGEN_TREEVIEW@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+FLUIDSYNTHDIRS = @FLUIDSYNTHDIRS@
+FST_CFLAGS = @FST_CFLAGS@
+FST_LIBS = @FST_LIBS@
+Fluidsynth_CFLAGS = @Fluidsynth_CFLAGS@
+Fluidsynth_LIBS = @Fluidsynth_LIBS@
+GIVERTCAP = @GIVERTCAP@
+GREP = @GREP@
+HAVEDOT = @HAVEDOT@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JACK_CFLAGS = @JACK_CFLAGS@
+JACK_LIBS = @JACK_LIBS@
+JADE = @JADE@
+LASH_CFLAGS = @LASH_CFLAGS@
+LASH_LIBS = @LASH_LIBS@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LO_CFLAGS = @LO_CFLAGS@
+LO_LIBS = @LO_LIBS@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+MUSECXXFLAGS = @MUSECXXFLAGS@
+NM = @NM@
+NMEDIT = @NMEDIT@
+NSGMLS = @NSGMLS@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PCH = @PCH@
+PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+PYTHON = @PYTHON@
+PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
+PYTHON_INCLUDES = @PYTHON_INCLUDES@
+PYTHON_LIB = @PYTHON_LIB@
+PYTHON_PLATFORM = @PYTHON_PLATFORM@
+PYTHON_PREFIX = @PYTHON_PREFIX@
+PYTHON_VERSION = @PYTHON_VERSION@
+QTDIR_BIN = @QTDIR_BIN@
+QTDIR_INC = @QTDIR_INC@
+QT_LIBS = @QT_LIBS@
+RANLIB = @RANLIB@
+SAMPLERATE_CFLAGS = @SAMPLERATE_CFLAGS@
+SAMPLERATE_LIBS = @SAMPLERATE_LIBS@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SNDFILE_CFLAGS = @SNDFILE_CFLAGS@
+SNDFILE_LIBS = @SNDFILE_LIBS@
+STRIP = @STRIP@
+SUIDBUILD = @SUIDBUILD@
+SUIDINSTALL = @SUIDINSTALL@
+USE_SSE = @USE_SSE@
+UUID_CFLAGS = @UUID_CFLAGS@
+UUID_LIBS = @UUID_LIBS@
+VERSION = @VERSION@
+XMKMF = @XMKMF@
+X_CFLAGS = @X_CFLAGS@
+X_EXTRA_LIBS = @X_EXTRA_LIBS@
+X_LIBS = @X_LIBS@
+X_PRE_LIBS = @X_PRE_LIBS@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+have_docbook = @have_docbook@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+lt_ECHO = @lt_ECHO@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+pkgpyexecdir = @pkgpyexecdir@
+pkgpythondir = @pkgpythondir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+pyexecdir = @pyexecdir@
+pythondir = @pythondir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+synth_fluid = @synth_fluid@
+synth_fluidsynth = @synth_fluidsynth@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+AM_CXXFLAGS = $(MUSECXXFLAGS) -I.. -I$(top_srcdir)/synti \
+ -I$(top_srcdir)/muse/widgets -DQT_SHARED -DQT_THREAD_SUPPORT \
+ -DQT_PLUGIN $(QTDIR_INC) -DQT3_SUPPORT
+AM_CPPFLAGS =
+MOC = $(QTDIR_BIN)/moc
+#UIC = $(QTDIR_BIN)/uic3
+UIC = /usr/bin/uic3
+UIFILES = $(wildcard *.ui)
+MOCFILES = $(shell for h in $(filter %.h,$(SOURCES)); do \
+ if grep -q Q_OBJECT $$h; then \
+ echo $$h | sed "s/\(.*\)\.h/moc_\1.cpp/"; \
+ fi; \
+ done)
+
+BUILT_SOURCES = $(MOCFILES) $(UIFILES:%.ui=%.h)
+MOSTLYCLEANFILES = $(MOCFILES) $(UIFILES:%.ui=%.h)
+SUFFIXES = .ui .h.gch
+synthidir = $(pkglibdir)/synthi
+MOCBASES =
+UICBASES =
+synthi_LTLIBRARIES = s1.la
+s1_la_SOURCES = s1.cpp
+s1_la_LIBADD = ../libsynti/libsynti.la
+s1_la_LDFLAGS = -module -avoid-version
+all: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) all-am
+
+.SUFFIXES:
+.SUFFIXES: .ui .h.gch .cpp .lo .o .obj
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/common.am $(top_srcdir)/synti/synti-install.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu synti/s1/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu synti/s1/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+install-synthiLTLIBRARIES: $(synthi_LTLIBRARIES)
+ @$(NORMAL_INSTALL)
+ test -z "$(synthidir)" || $(MKDIR_P) "$(DESTDIR)$(synthidir)"
+ @list='$(synthi_LTLIBRARIES)'; test -n "$(synthidir)" || list=; \
+ list2=; for p in $$list; do \
+ if test -f $$p; then \
+ list2="$$list2 $$p"; \
+ else :; fi; \
+ done; \
+ test -z "$$list2" || { \
+ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(synthidir)'"; \
+ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(synthidir)"; \
+ }
+
+uninstall-synthiLTLIBRARIES:
+ @$(NORMAL_UNINSTALL)
+ @list='$(synthi_LTLIBRARIES)'; test -n "$(synthidir)" || list=; \
+ for p in $$list; do \
+ $(am__strip_dir) \
+ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(synthidir)/$$f'"; \
+ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(synthidir)/$$f"; \
+ done
+
+clean-synthiLTLIBRARIES:
+ -test -z "$(synthi_LTLIBRARIES)" || rm -f $(synthi_LTLIBRARIES)
+ @list='$(synthi_LTLIBRARIES)'; for p in $$list; do \
+ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
+ test "$$dir" != "$$p" || dir=.; \
+ echo "rm -f \"$${dir}/so_locations\""; \
+ rm -f "$${dir}/so_locations"; \
+ done
+s1.la: $(s1_la_OBJECTS) $(s1_la_DEPENDENCIES)
+ $(s1_la_LINK) -rpath $(synthidir) $(s1_la_OBJECTS) $(s1_la_LIBADD) $(LIBS)
+
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT)
+
+distclean-compile:
+ -rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/s1.Plo@am__quote@
+
+.cpp.o:
+@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $<
+
+.cpp.obj:
+@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+
+.cpp.lo:
+@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $<
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ mkid -fID $$unique
+tags: TAGS
+
+TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ set x; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: CTAGS
+CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) check-am
+all-am: Makefile $(LTLIBRARIES)
+installdirs:
+ for dir in "$(DESTDIR)$(synthidir)"; do \
+ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ done
+install: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+ -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES)
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+ -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
+clean: clean-am
+
+clean-am: clean-generic clean-libtool clean-synthiLTLIBRARIES \
+ mostlyclean-am
+
+distclean: distclean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+ distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-synthiLTLIBRARIES
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+ mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-synthiLTLIBRARIES
+
+.MAKE: all check install install-am install-strip
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
+ clean-libtool clean-synthiLTLIBRARIES ctags distclean \
+ distclean-compile distclean-generic distclean-libtool \
+ distclean-tags distdir dvi dvi-am html html-am info info-am \
+ install install-am install-data install-data-am install-dvi \
+ install-dvi-am install-exec install-exec-am install-html \
+ install-html-am install-info install-info-am install-man \
+ install-pdf install-pdf-am install-ps install-ps-am \
+ install-strip install-synthiLTLIBRARIES installcheck \
+ installcheck-am installdirs maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-compile \
+ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+ tags uninstall uninstall-am uninstall-synthiLTLIBRARIES
+
+
+de:
+ @for base in $(MOCFILES); do echo -e "\t$${base}.cpp $${base}.h \\"; done
+
+nde:
+ @for base in $(MOCFILES); do echo -e "\tmoc_$${base}.cpp \\"; done
+
+.ui.o: %.h
+ $(UIC) -L $(top_srcdir)/muse/widgets -o $*.cpp -impl $*.h $*.ui
+ $(MOC) $*.h >> $*.cpp
+ $(CXXCOMPILE) -c $*.cpp -o $*.o
+ $(RM) $*.cpp moc_$*.cpp moc_$*.o
+
+.ui.lo: %.h
+ $(UIC) -L $(top_srcdir)/muse/widgets -o $*.cpp -impl $*.h $*.ui
+ $(MOC) $*.h >> $*.cpp
+ $(LTCXXCOMPILE) -c $*.cpp -o $*.lo
+ $(RM) $*.cpp moc_$*.cpp moc_$*.lo moc_$*.o
+
+moc_%.cpp: %.h
+ $(MOC) $< -o $@
+
+%.h: %.ui
+ $(UIC) -o $@ $<
+# $(UIC) -L $(top_srcdir)/muse/widgets -o $@ $<
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/muse2/synti/s1/s1.cpp b/muse2/synti/s1/s1.cpp
new file mode 100644
index 00000000..c73615bd
--- /dev/null
+++ b/muse2/synti/s1/s1.cpp
@@ -0,0 +1,227 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: s1.cpp,v 1.9.2.5 2009/11/19 04:20:33 terminator356 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 <qmessagebox.h>
+#include <stdio.h>
+
+#include "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;
+ bool _showGui;
+
+ int param;
+
+ virtual void note(int channel, int pitch, int velo);
+ //virtual void processMessages();
+ virtual void process(float** buffer, int offset, int n);
+ virtual bool hasGui() const { return true; }
+ virtual bool guiVisible() const { return _showGui; }
+ virtual void showGui(bool);
+ virtual bool setController(int channel, int ctrl, int val);
+ virtual int getControllerInfo(int id, const char** name, int* ctrl, int* min, int* max, int* initval) const;
+
+ 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;
+
+ param = 0;
+
+ _showGui=false;
+ showGui(true);
+ }
+
+//---------------------------------------------------------
+// ~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;
+ float sample1, sample2;
+ 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;
+
+ sample1 = wave_table[accu >> 8]; // sinus component
+
+ if (sample1< 0.0f) // square wave component
+ sample2 = -0.4;
+ else
+ sample2 = 0.4;
+
+ sample = ((1.0-float(param)/127.0)*sample1 + (float(param)/127.0)*sample2) / 2.0;
+
+ //
+ // 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
+//---------------------------------------------------------
+
+
+void S1::showGui(bool show)
+ {
+ if (show)
+ QMessageBox::information( NULL, "S1",
+ "S1 is a demo synth mainly for\n"
+ "developers wishing to learn\n"
+ "how to make a M.E.S.S synth.\n"
+ "\n"
+ "One modulation parameter is available,\n"
+ "it sweeps the signal between square and\n"
+ "sinus wave.\n", 1 );
+ }
+
+bool S1::setController(int, int ctrl, int val)
+ {
+ if (ctrl == 1) {
+ param = val;
+ }
+ return true;
+ }
+
+int S1::getControllerInfo(int id, const char** name, int* ctrl, int* min, int* max, int* initval) const
+ {
+ if (id == 0) {
+ *name = "Modulation";
+ *ctrl = 1;
+ *min = 0;
+ *max = 127;
+ *initval = 0;
+ return 1;
+ }
+ else
+ return 0;
+ }
+
+//---------------------------------------------------------
+// inst
+//---------------------------------------------------------
+class QWidget;
+
+
+static Mess* instantiate(int sr, QWidget*, QString* projectPathPtr, 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/muse2/synti/simpledrums/COPYING b/muse2/synti/simpledrums/COPYING
new file mode 100644
index 00000000..5c3cefc2
--- /dev/null
+++ b/muse2/synti/simpledrums/COPYING
@@ -0,0 +1,3 @@
+COPYING
+---------------------------------------
+This software is licensed under GNU GPL.
diff --git a/muse2/synti/simpledrums/Makefile.am b/muse2/synti/simpledrums/Makefile.am
new file mode 100644
index 00000000..16b77dc5
--- /dev/null
+++ b/muse2/synti/simpledrums/Makefile.am
@@ -0,0 +1,20 @@
+include $(top_srcdir)/common.am
+include $(top_srcdir)/synti/synti-install.am
+
+AM_CXXFLAGS +=-fPIC -O3 -fno-rtti -ffast-math -fno-exceptions -include $(top_srcdir)/all-pic.h
+
+synthi_LTLIBRARIES = simpledrums.la
+
+simpledrums_la_SOURCES = simpledrums.h simpledrums.cpp common.h \
+ simpledrumsgui.cpp simpledrumsgui.h \
+ ssplugin.h ssplugin.cpp ssplugingui.h ssplugingui.cpp \
+ simpledrumsguibase.ui sspluginchooserbase.ui
+
+nodist_simpledrums_la_SOURCES = moc_simpledrumsgui.cpp moc_ssplugingui.cpp
+
+simpledrums_la_LIBADD = ../libsynti/libsynti.la -lsamplerate
+simpledrums_la_LDFLAGS = -module -avoid-version
+
+CLEANFILES = $(wildcard *.ui~)
+EXTRA_DIST = README ReleaseNotes.txt COPYING
+
diff --git a/muse2/synti/simpledrums/Makefile.in b/muse2/synti/simpledrums/Makefile.in
new file mode 100644
index 00000000..9526cba6
--- /dev/null
+++ b/muse2/synti/simpledrums/Makefile.in
@@ -0,0 +1,661 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
+ $(top_srcdir)/common.am $(top_srcdir)/synti/synti-install.am \
+ COPYING
+subdir = synti/simpledrums
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal-include.m4 \
+ $(top_srcdir)/m4/alsa.m4 $(top_srcdir)/m4/docbook.m4 \
+ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
+ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
+ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__installdirs = "$(DESTDIR)$(synthidir)"
+LTLIBRARIES = $(synthi_LTLIBRARIES)
+simpledrums_la_DEPENDENCIES = ../libsynti/libsynti.la
+am_simpledrums_la_OBJECTS = simpledrums.lo simpledrumsgui.lo \
+ ssplugin.lo ssplugingui.lo simpledrumsguibase.lo \
+ sspluginchooserbase.lo
+nodist_simpledrums_la_OBJECTS = moc_simpledrumsgui.lo \
+ moc_ssplugingui.lo
+simpledrums_la_OBJECTS = $(am_simpledrums_la_OBJECTS) \
+ $(nodist_simpledrums_la_OBJECTS)
+simpledrums_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \
+ $(CXXFLAGS) $(simpledrums_la_LDFLAGS) $(LDFLAGS) -o $@
+DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
+depcomp = $(SHELL) $(top_srcdir)/depcomp
+am__depfiles_maybe = depfiles
+am__mv = mv -f
+CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
+LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
+CXXLD = $(CXX)
+CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \
+ $(LDFLAGS) -o $@
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
+ $(LDFLAGS) -o $@
+SOURCES = $(simpledrums_la_SOURCES) $(nodist_simpledrums_la_SOURCES)
+DIST_SOURCES = $(simpledrums_la_SOURCES)
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ALSA_CFLAGS = @ALSA_CFLAGS@
+ALSA_LIBS = @ALSA_LIBS@
+AMTAR = @AMTAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DOCBOOKSTYLE = @DOCBOOKSTYLE@
+DOCBOOKTARGETS = @DOCBOOKTARGETS@
+DOT = @DOT@
+DOTPATH = @DOTPATH@
+DOXYGEN = @DOXYGEN@
+DOXYGEN_TREEVIEW = @DOXYGEN_TREEVIEW@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+FLUIDSYNTHDIRS = @FLUIDSYNTHDIRS@
+FST_CFLAGS = @FST_CFLAGS@
+FST_LIBS = @FST_LIBS@
+Fluidsynth_CFLAGS = @Fluidsynth_CFLAGS@
+Fluidsynth_LIBS = @Fluidsynth_LIBS@
+GIVERTCAP = @GIVERTCAP@
+GREP = @GREP@
+HAVEDOT = @HAVEDOT@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JACK_CFLAGS = @JACK_CFLAGS@
+JACK_LIBS = @JACK_LIBS@
+JADE = @JADE@
+LASH_CFLAGS = @LASH_CFLAGS@
+LASH_LIBS = @LASH_LIBS@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LO_CFLAGS = @LO_CFLAGS@
+LO_LIBS = @LO_LIBS@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+MUSECXXFLAGS = @MUSECXXFLAGS@
+NM = @NM@
+NMEDIT = @NMEDIT@
+NSGMLS = @NSGMLS@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PCH = @PCH@
+PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+PYTHON = @PYTHON@
+PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
+PYTHON_INCLUDES = @PYTHON_INCLUDES@
+PYTHON_LIB = @PYTHON_LIB@
+PYTHON_PLATFORM = @PYTHON_PLATFORM@
+PYTHON_PREFIX = @PYTHON_PREFIX@
+PYTHON_VERSION = @PYTHON_VERSION@
+QTDIR_BIN = @QTDIR_BIN@
+QTDIR_INC = @QTDIR_INC@
+QT_LIBS = @QT_LIBS@
+RANLIB = @RANLIB@
+SAMPLERATE_CFLAGS = @SAMPLERATE_CFLAGS@
+SAMPLERATE_LIBS = @SAMPLERATE_LIBS@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SNDFILE_CFLAGS = @SNDFILE_CFLAGS@
+SNDFILE_LIBS = @SNDFILE_LIBS@
+STRIP = @STRIP@
+SUIDBUILD = @SUIDBUILD@
+SUIDINSTALL = @SUIDINSTALL@
+USE_SSE = @USE_SSE@
+UUID_CFLAGS = @UUID_CFLAGS@
+UUID_LIBS = @UUID_LIBS@
+VERSION = @VERSION@
+XMKMF = @XMKMF@
+X_CFLAGS = @X_CFLAGS@
+X_EXTRA_LIBS = @X_EXTRA_LIBS@
+X_LIBS = @X_LIBS@
+X_PRE_LIBS = @X_PRE_LIBS@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+have_docbook = @have_docbook@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+lt_ECHO = @lt_ECHO@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+pkgpyexecdir = @pkgpyexecdir@
+pkgpythondir = @pkgpythondir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+pyexecdir = @pyexecdir@
+pythondir = @pythondir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+synth_fluid = @synth_fluid@
+synth_fluidsynth = @synth_fluidsynth@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+AM_CXXFLAGS = $(MUSECXXFLAGS) -I.. -I$(top_srcdir)/synti \
+ -I$(top_srcdir)/muse/widgets -DQT_SHARED -DQT_THREAD_SUPPORT \
+ -DQT_PLUGIN $(QTDIR_INC) -DQT3_SUPPORT -fPIC -O3 -fno-rtti \
+ -ffast-math -fno-exceptions -include $(top_srcdir)/all-pic.h
+AM_CPPFLAGS =
+MOC = $(QTDIR_BIN)/moc
+#UIC = $(QTDIR_BIN)/uic3
+UIC = /usr/bin/uic3
+UIFILES = $(wildcard *.ui)
+MOCFILES = $(shell for h in $(filter %.h,$(SOURCES)); do \
+ if grep -q Q_OBJECT $$h; then \
+ echo $$h | sed "s/\(.*\)\.h/moc_\1.cpp/"; \
+ fi; \
+ done)
+
+BUILT_SOURCES = $(MOCFILES) $(UIFILES:%.ui=%.h)
+MOSTLYCLEANFILES = $(MOCFILES) $(UIFILES:%.ui=%.h)
+SUFFIXES = .ui .h.gch
+synthidir = $(pkglibdir)/synthi
+synthi_LTLIBRARIES = simpledrums.la
+simpledrums_la_SOURCES = simpledrums.h simpledrums.cpp common.h \
+ simpledrumsgui.cpp simpledrumsgui.h \
+ ssplugin.h ssplugin.cpp ssplugingui.h ssplugingui.cpp \
+ simpledrumsguibase.ui sspluginchooserbase.ui
+
+nodist_simpledrums_la_SOURCES = moc_simpledrumsgui.cpp moc_ssplugingui.cpp
+simpledrums_la_LIBADD = ../libsynti/libsynti.la -lsamplerate
+simpledrums_la_LDFLAGS = -module -avoid-version
+CLEANFILES = $(wildcard *.ui~)
+EXTRA_DIST = README ReleaseNotes.txt COPYING
+all: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) all-am
+
+.SUFFIXES:
+.SUFFIXES: .ui .h.gch .cpp .lo .o .obj
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/common.am $(top_srcdir)/synti/synti-install.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu synti/simpledrums/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu synti/simpledrums/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+install-synthiLTLIBRARIES: $(synthi_LTLIBRARIES)
+ @$(NORMAL_INSTALL)
+ test -z "$(synthidir)" || $(MKDIR_P) "$(DESTDIR)$(synthidir)"
+ @list='$(synthi_LTLIBRARIES)'; test -n "$(synthidir)" || list=; \
+ list2=; for p in $$list; do \
+ if test -f $$p; then \
+ list2="$$list2 $$p"; \
+ else :; fi; \
+ done; \
+ test -z "$$list2" || { \
+ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(synthidir)'"; \
+ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(synthidir)"; \
+ }
+
+uninstall-synthiLTLIBRARIES:
+ @$(NORMAL_UNINSTALL)
+ @list='$(synthi_LTLIBRARIES)'; test -n "$(synthidir)" || list=; \
+ for p in $$list; do \
+ $(am__strip_dir) \
+ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(synthidir)/$$f'"; \
+ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(synthidir)/$$f"; \
+ done
+
+clean-synthiLTLIBRARIES:
+ -test -z "$(synthi_LTLIBRARIES)" || rm -f $(synthi_LTLIBRARIES)
+ @list='$(synthi_LTLIBRARIES)'; for p in $$list; do \
+ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
+ test "$$dir" != "$$p" || dir=.; \
+ echo "rm -f \"$${dir}/so_locations\""; \
+ rm -f "$${dir}/so_locations"; \
+ done
+simpledrums.la: $(simpledrums_la_OBJECTS) $(simpledrums_la_DEPENDENCIES)
+ $(simpledrums_la_LINK) -rpath $(synthidir) $(simpledrums_la_OBJECTS) $(simpledrums_la_LIBADD) $(LIBS)
+
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT)
+
+distclean-compile:
+ -rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/moc_simpledrumsgui.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/moc_ssplugingui.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/simpledrums.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/simpledrumsgui.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ssplugin.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ssplugingui.Plo@am__quote@
+
+.cpp.o:
+@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $<
+
+.cpp.obj:
+@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+
+.cpp.lo:
+@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $<
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ mkid -fID $$unique
+tags: TAGS
+
+TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ set x; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: CTAGS
+CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) check-am
+all-am: Makefile $(LTLIBRARIES)
+installdirs:
+ for dir in "$(DESTDIR)$(synthidir)"; do \
+ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ done
+install: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+ -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES)
+
+clean-generic:
+ -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+ -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
+clean: clean-am
+
+clean-am: clean-generic clean-libtool clean-synthiLTLIBRARIES \
+ mostlyclean-am
+
+distclean: distclean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+ distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-synthiLTLIBRARIES
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+ mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-synthiLTLIBRARIES
+
+.MAKE: all check install install-am install-strip
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
+ clean-libtool clean-synthiLTLIBRARIES ctags distclean \
+ distclean-compile distclean-generic distclean-libtool \
+ distclean-tags distdir dvi dvi-am html html-am info info-am \
+ install install-am install-data install-data-am install-dvi \
+ install-dvi-am install-exec install-exec-am install-html \
+ install-html-am install-info install-info-am install-man \
+ install-pdf install-pdf-am install-ps install-ps-am \
+ install-strip install-synthiLTLIBRARIES installcheck \
+ installcheck-am installdirs maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-compile \
+ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+ tags uninstall uninstall-am uninstall-synthiLTLIBRARIES
+
+
+de:
+ @for base in $(MOCFILES); do echo -e "\t$${base}.cpp $${base}.h \\"; done
+
+nde:
+ @for base in $(MOCFILES); do echo -e "\tmoc_$${base}.cpp \\"; done
+
+.ui.o: %.h
+ $(UIC) -L $(top_srcdir)/muse/widgets -o $*.cpp -impl $*.h $*.ui
+ $(MOC) $*.h >> $*.cpp
+ $(CXXCOMPILE) -c $*.cpp -o $*.o
+ $(RM) $*.cpp moc_$*.cpp moc_$*.o
+
+.ui.lo: %.h
+ $(UIC) -L $(top_srcdir)/muse/widgets -o $*.cpp -impl $*.h $*.ui
+ $(MOC) $*.h >> $*.cpp
+ $(LTCXXCOMPILE) -c $*.cpp -o $*.lo
+ $(RM) $*.cpp moc_$*.cpp moc_$*.lo moc_$*.o
+
+moc_%.cpp: %.h
+ $(MOC) $< -o $@
+
+%.h: %.ui
+ $(UIC) -o $@ $<
+# $(UIC) -L $(top_srcdir)/muse/widgets -o $@ $<
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/muse2/synti/simpledrums/README b/muse2/synti/simpledrums/README
new file mode 100644
index 00000000..9e2695dc
--- /dev/null
+++ b/muse2/synti/simpledrums/README
@@ -0,0 +1,44 @@
+--------------------------------------
+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
+- Possible to save synth state to file
+- 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/muse2/synti/simpledrums/ReleaseNotes.txt b/muse2/synti/simpledrums/ReleaseNotes.txt
new file mode 100644
index 00000000..1144321a
--- /dev/null
+++ b/muse2/synti/simpledrums/ReleaseNotes.txt
@@ -0,0 +1,21 @@
+RELEASE NOTES:
+--------------
+2005-05-07 ver 1.0 (go figure!)
+- Now possible to load/save setup to file
+
+2004-12-13 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/muse2/synti/simpledrums/common.h b/muse2/synti/simpledrums/common.h
new file mode 100644
index 00000000..e4763540
--- /dev/null
+++ b/muse2/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/muse2/synti/simpledrums/simpledrums.cpp b/muse2/synti/simpledrums/simpledrums.cpp
new file mode 100644
index 00000000..5a0431a0
--- /dev/null
+++ b/muse2/synti/simpledrums/simpledrums.cpp
@@ -0,0 +1,1759 @@
+//
+// 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/mpevent.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.latin1();
+ controllers[i].num = CTRL_NRPN14_OFFSET+i;
+ controllers[i].min = 0;
+ controllers[i].max = 127;
+
+ controllers[i+1].name = c2.latin1();
+ controllers[i+1].num = CTRL_NRPN14_OFFSET+i+1;
+ controllers[i+1].min = 0;
+ controllers[i+1].max = 127;
+
+ controllers[i+2].name = c3.latin1();
+ controllers[i+2].num = CTRL_NRPN14_OFFSET+i+2;
+ controllers[i+2].min = 0;
+ controllers[i+2].max = 1;
+
+ controllers[i+3].name = c4.latin1();
+ controllers[i+3].num = CTRL_NRPN14_OFFSET+i+3;
+ controllers[i+3].min = 0;
+ controllers[i+3].max = 1;
+
+ controllers[i+4].name = c5.latin1();
+ controllers[i+4].num = CTRL_NRPN14_OFFSET+i+4;
+
+ controllers[i+5].name = c6.latin1();
+ controllers[i+5].num = CTRL_NRPN14_OFFSET+i+5;
+
+ controllers[i+6].name = c7.latin1();
+ controllers[i+6].num = CTRL_NRPN14_OFFSET+i+6;
+
+ controllers[i+7].name = c8.latin1();
+ 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.latin1();
+ controllers[i].num = CTRL_NRPN14_OFFSET+i;
+ controllers[i].min = 0;
+ controllers[i].max = 127;
+
+ controllers[i+1].name = c2.latin1();
+ 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 MidiPlayEvent& 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.latin1(), label.latin1());
+ }
+ 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;
+
+ MidiPlayEvent ev(0, 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
+ \param drum - is it a drum track?
+ \return const char* with patchname
+ */
+//---------------------------------------------------------
+const char* SimpleSynth::getPatchName(int /*index*/, int, int, bool /*drum*/) const
+ {
+ SS_TRACE_IN
+ SS_TRACE_OUT
+ //return 0;
+ //return "<unknown>";
+ return "SimpleSynth";
+ }
+
+//---------------------------------------------------------
+// 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, int* /*initval*/ ) const
+ {
+ 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);
+ }
+
+//---------------------------------------------------------
+// processMessages
+/*!
+ \fn SimpleSynth::processMessages
+ \brief Called from host always, even if output path is unconnected
+ */
+//---------------------------------------------------------
+void SimpleSynth::processMessages()
+{
+ //Process messages from the gui
+ while (gui->fifoSize())
+ {
+ MidiPlayEvent 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());
+ }
+ }
+}
+
+//---------------------------------------------------------
+// process
+/*!
+ \fn SimpleSynth::process
+ \brief Realtime function where the processing actually occurs. Called from host, ONLY if output path is connected.
+ \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()) {
+ MidiPlayEvent 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->setCaption(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) const
+ {
+ 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 = strlen(plugin->lib()) + 2;
+ int labelnamelen = strlen(plugin->label()) + 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 = strlen(sendEffects[j].plugin->label()) + 1;
+ buffer[i] = labelnamelen;
+ memcpy((buffer+i+1), sendEffects[j].plugin->label(), 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 = strlen(sendEffects[j].plugin->lib()) + 1;
+ buffer[i] = namelen;
+ memcpy((buffer+i+1), sendEffects[j].plugin->lib(), 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[%zd] - channels[ch].volume_ctrlval = \t%d\n", ptr-data, *ptr);
+ printf("buffer[%zd] - channels[ch].pan = \t\t%d\n", ptr-data+1, *(ptr+1));
+ printf("buffer[%zd] - channels[ch].noteoff_ignore = \t%d\n", ptr-data+2, *(ptr+2));
+ printf("buffer[%zd] - 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[%zd] - 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;
+ MidiPlayEvent ev(0, 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[%zd] - 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", (long) 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);
+ }
+
+QString *projPathPtr;
+
+static Mess* instantiate(int sr, QWidget*, QString* projectPathPtr, const char* name)
+ {
+ projPathPtr = projectPathPtr;
+ 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
+ MidiPlayEvent ev(0, 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
+ MidiPlayEvent ev(0, 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
+ MidiPlayEvent ev(0, 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
+ MidiPlayEvent ev(0, 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
+ MidiPlayEvent ev(0, 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
+ MidiPlayEvent ev(0, 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);
+ MidiPlayEvent ev(0, 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",
+ "SimpleSynth drums by 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.latin1());
+ 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;
+ MidiPlayEvent ev(0, 0, ME_SYSEX, out, len);
+ gui->writeEvent(ev);
+ }
+ }
+
+ if (!success) {
+ QString errorString = "Error loading plugin \"" + plugin->label() + "\"";
+ guiSendError(errorString);
+ }
+ 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().latin1());
+ 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;
+ MidiPlayEvent ev(0, 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;
+ MidiPlayEvent ev(0, 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;
+ MidiPlayEvent ev(0, 0, ME_SYSEX, d, 2);
+ gui->writeEvent(ev);
+ SS_TRACE_OUT
+ }
diff --git a/muse2/synti/simpledrums/simpledrums.h b/muse2/synti/simpledrums/simpledrums.h
new file mode 100644
index 00000000..9d0d1331
--- /dev/null
+++ b/muse2/synti/simpledrums/simpledrums.h
@@ -0,0 +1,177 @@
+//
+// 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 <iostream>
+#include <string>
+#include <Qt3Support>
+#include "libsynti/mess.h"
+#include "common.h"
+#include "libsynti/mpevent.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 MidiPlayEvent& 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, bool arg4) 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, int* arg6) const;
+ virtual void processMessages();
+ virtual void process(float** data, int offset, int len);
+ virtual void showGui(bool arg1);
+ virtual void getInitData(int*, const unsigned char**) const;
+ 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/muse2/synti/simpledrums/simpledrumsgui.cpp b/muse2/synti/simpledrums/simpledrumsgui.cpp
new file mode 100644
index 00000000..03fa658c
--- /dev/null
+++ b/muse2/synti/simpledrums/simpledrumsgui.cpp
@@ -0,0 +1,892 @@
+//
+// C++ Implementation: testogui
+//
+// Description:
+//
+//
+// Author: Mathias Lundgren <lunar_shuttle@users.sf.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+
+#include <q3buttongroup.h>
+#include <qlabel.h>
+#include <q3filedialog.h>
+#include <qsocketnotifier.h>
+#include <qlayout.h>
+#include <qtooltip.h>
+#include <qlineedit.h>
+#include <QtGui>
+//Added by qt3to4:
+#include <Q3HBoxLayout>
+#include <Q3GridLayout>
+#include <Q3VBoxLayout>
+
+#include "simpledrumsgui.h"
+#include "libsynti/mpevent.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, const char* name)
+ : QSlider(orientation, parent, name)
+ {
+ 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->maxValue() - 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->maxValue() - val;
+ inverted = (inverted > 127 ? 127 : inverted);
+ inverted = (inverted < 0 ? 0 : inverted);
+ emit invertedValueChanged(inverted);
+ QSlider::setValue(val);
+ }
+
+
+/*!
+ \fn QChannelCheckbox::QChannelCheckbox(QWidget* parent, int ch, const char* name)
+ */
+QChannelCheckbox::QChannelCheckbox(QWidget* parent, int ch, const char* name)
+ : QCheckBox(parent, name)
+ {
+ channel = ch;
+ connect(this, SIGNAL(clicked()), SLOT(isClicked()));
+ }
+
+
+/*!
+ \fn QChannelCheckbox::isClicked()
+ */
+void QChannelCheckbox::isClicked()
+ {
+ emit channelState(channel, this->isOn());
+ }
+
+/*!
+ \fn QChannelButton::QChannelButton(QWidget* parent, const char* text, int ch, const char* name)
+ */
+QChannelButton::QChannelButton(QWidget* parent, const char* text, int ch, const char* name)
+ : QPushButton(parent, name), channel (ch)
+ {
+ connect(this, SIGNAL(clicked()), SLOT(isClicked()));
+ setText(text);
+ }
+
+/*!
+ \fn QChannelButton::isClicked()
+ */
+void QChannelButton::isClicked()
+ {
+ emit channelState(channel, this->isOn());
+ }
+
+/*!
+ \fn QChannelDial()
+ */
+QChannelDial::QChannelDial(QWidget* parent, int ch, int fxid, const char* name)
+ : QDial(parent, name)
+ {
+ 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
+ simplesynthgui_ptr = this;
+ pluginGui = new SS_PluginGui(this);
+ pluginGui->hide();
+
+ Q3VBoxLayout* mainLayout = new Q3VBoxLayout(this, 3);
+ Q3HBoxLayout* channelLayout = new Q3HBoxLayout(mainLayout, 1, "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 Q3ButtonGroup(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->add(channelButtonGroups[i]);
+
+ Q3VBoxLayout* inchnlLayout = new Q3VBoxLayout(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);
+ QToolTip::add(onOff[i], "Channel " + QString::number(i + 1) + " on/off");
+ inchnlLayout->add(onOff[i]);
+ connect(onOff[i], SIGNAL(channelState(int, bool)), SLOT(channelOnOff(int, bool)));
+
+ volumeSliders[i] = new QInvertedChannelSlider(Qt::Vertical, i, channelButtonGroups[i], name);
+ volumeSliders[i]->setMinValue(SS_VOLUME_MIN_VALUE);
+ volumeSliders[i]->setMaxValue(SS_VOLUME_MAX_VALUE);
+ volumeSliders[i]->setValue(SS_VOLUME_MAX_VALUE - SS_VOLUME_DEFAULT_VALUE);
+ volumeSliders[i]->setMinimumSize(SS_VOLSLDR_WIDTH, SS_VOLSLDR_LENGTH);
+ QToolTip::add(volumeSliders[i], "Volume, channel " + QString::number(i + 1));
+ setMinimumSize(SS_VOLSLDR_WIDTH, SS_VOLSLDR_LENGTH);
+ inchnlLayout->add(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->add(nOffLabel[i]);
+
+ nOffIgnore[i] = new QChannelCheckbox(channelButtonGroups[i], i);
+ nOffIgnore[i]->setMinimumSize(SS_NONOFF_WIDTH, SS_NONOFF_HEIGHT);
+ QToolTip::add(nOffIgnore[i], "Note off ignore, channel " + QString::number(i + 1));
+ inchnlLayout->add(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);
+ QToolTip::add(panSliders[i], "Pan, channel " + QString::number(i + 1));
+ inchnlLayout->add(panSliders[i]);
+ connect(panSliders[i], SIGNAL(valueChanged(int, int)), SLOT(panChanged(int, int)));
+
+ Q3GridLayout* dialGrid = new Q3GridLayout(inchnlLayout, 2, 2, 0);
+ 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);
+ QToolTip::add(sendFxDial[i][0], "Fx 1 send amount");
+ //inchnlLayout->add(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);
+ QToolTip::add(sendFxDial[i][1], "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);
+ QToolTip::add(sendFxDial[i][2], "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);
+ QToolTip::add(sendFxDial[i][3], "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 Q3ButtonGroup(this, "masterButtonGroup");
+ channelLayout->add(masterButtonGroup);
+ Q3VBoxLayout* mbgLayout = new Q3VBoxLayout(masterButtonGroup, 0);
+ mbgLayout->setAlignment(Qt::AlignCenter);
+ masterButtonGroup->setMinimumSize(SS_BTNGRP_WIDTH, SS_BTNGRP_HEIGHT);
+ masterSlider = new QInvertedSlider(Qt::Vertical, masterButtonGroup);
+ QToolTip::add(masterSlider, "Master volume");
+ mbgLayout->add(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 Q3GroupBox(this, "mainGroupBox");
+ mainLayout->add(mainGroupBox);
+
+ Q3GridLayout* mgbLayout = new Q3GridLayout(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++) {
+ Q3HBoxLayout* strip = new Q3HBoxLayout;//(mgbLayout, 5);
+ mgbLayout->addLayout(strip, r, c);
+
+ QLabel* channelLabel = new QLabel(QString("Ch ") + QString::number(i + 1), mainGroupBox);
+ strip->add(channelLabel);
+
+ sampleNameLineEdit[i] = new QLineEdit(mainGroupBox);
+ sampleNameLineEdit[i]->setReadOnly(true);
+ strip->add(sampleNameLineEdit[i]);
+
+ loadSampleButton[i] = new QChannelButton(mainGroupBox, "L", i);
+ loadSampleButton[i]->setMinimumSize(SS_SAMPLE_LOAD_WIDTH, SS_SAMPLE_LOAD_HEIGHT);
+ QToolTip::add(loadSampleButton[i], "Load sample on channel " + QString::number(i + 1));
+ strip->add(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);
+ QToolTip::add(clearSampleButton[i], "Clear sample on channel " + QString::number(i + 1));
+ strip->add(clearSampleButton[i]);
+ connect(clearSampleButton[i], SIGNAL(channelState(int, bool)), SLOT(clearSample(int)));
+
+ i++;
+ }
+ }
+
+ // Right bottom panel:
+ Q3ButtonGroup* rbPanel= new Q3ButtonGroup(mainGroupBox, "right_bottom_panel");
+ mgbLayout->addMultiCellWidget(rbPanel, 1, 8, 3, 3, Qt::AlignCenter);
+ Q3GridLayout* rbLayout = new Q3GridLayout(rbPanel, 6, 1, 8, 5);
+ openPluginsButton = new QPushButton("&Send Effects", rbPanel);
+ QToolTip::add(openPluginsButton, "Configure LADSPA send effects");
+ connect(openPluginsButton, SIGNAL(clicked()), SLOT(openPluginButtonClicked()));
+ aboutButton = new QPushButton("About SimpleDrums", rbPanel);
+ connect(aboutButton, SIGNAL(clicked()), SLOT(aboutButtonClicked()));
+ QPushButton* loadButton = new QPushButton(tr("&Load setup"), rbPanel);
+ connect(loadButton, SIGNAL(clicked()), SLOT(loadSetup()));
+ QPushButton* 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
+
+ // work around for probable QT/WM interaction bug.
+ // for certain window managers, e.g xfce, this window is
+ // is displayed although not specifically set to show();
+ // bug: 2811156 Softsynth GUI unclosable with XFCE4 (and a few others)
+ show();
+ hide();
+ }
+
+/*!
+ \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 MidiPlayEvent& ev)
+ */
+void SimpleSynthGui::processEvent(const MidiPlayEvent& 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.latin1(), 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: {
+ const unsigned initdata_len = ev.len() - 1;
+ byte* init_data = (data + 1);
+ QFileInfo fileInfo = QFileInfo(lastSavedProject);
+
+ lastProjectDir = fileInfo.dirPath(true);
+ if (fileInfo.extension(false) != "sds" && fileInfo.extension(false) != "SDS") {
+ lastSavedProject += ".sds";
+ fileInfo = QFileInfo(lastSavedProject);
+ }
+ QFile theFile(fileInfo.filePath());
+
+ // Write data
+ if (theFile.open(QIODevice::WriteOnly)) {
+ theFile.writeBlock((const char*)&initdata_len, sizeof(initdata_len)); // First write length
+ if (theFile.writeBlock((const char*)init_data, initdata_len) == -1) {
+ // Fatal error writing
+ QMessageBox msgBox("IO error", "Fatal error when writing to file. Setup not saved.",
+ QMessageBox::Warning,
+ QMessageBox::Ok,
+ QMessageBox::NoButton,
+ QMessageBox::NoButton,
+ this);
+ msgBox.exec();
+ }
+ theFile.close();
+ }
+ else {
+ // An error occured when opening
+ QMessageBox msgBox("IO error", "Error opening file. Setup was not saved.", QMessageBox::Warning,
+ QMessageBox::Ok, QMessageBox::NoButton, QMessageBox::NoButton, this);
+ msgBox.exec();
+ }
+
+ 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 =
+ Q3FileDialog::getOpenFileName(lastDir,
+ QString("*.wav;*.WAV"),
+ this,
+ "Load sample dialog","Choose sample");
+
+ if (filename != QString::null) {
+ lastDir = filename.left(filename.findRev("/"));
+
+ if (SS_DEBUG)
+ printf("lastDir = %s\n", lastDir.latin1());
+
+ 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.latin1(), 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);
+ }
+ }
+
+/*!
+ \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.latin1(), lib.length()+1);
+ memcpy (d+3+lib.length(), label.latin1(), 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->isShown())
+ 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-2005 Mathias Lundgren (lunar_shuttle@users.sf.net), Werner Schweer\nPublished under the GNU Public License";
+ QMessageBox msgBox(caption, text, QMessageBox::NoIcon,
+ QMessageBox::Ok, QMessageBox::NoButton, QMessageBox::NoButton, this);
+ msgBox.exec();
+ }
+
+
+
+/*!
+ \fn SimpleSynthGui::loadSetup()
+ \brief Load setup from file
+ */
+void SimpleSynthGui::loadSetup()
+ {
+ bool success = true;
+ QString filename =
+ Q3FileDialog::getOpenFileName(lastProjectDir,
+ QString("*.sds;*.SDS"),
+ this,
+ "Load setup dialog", "Choose SimpleDrums setup");
+
+ if (filename != QString::null) {
+ QFile theFile(filename);
+ if (theFile.open(QIODevice::ReadOnly)) {
+ unsigned initdata_len = 0;
+ if (theFile.readBlock((char*)&initdata_len, sizeof(initdata_len)) == -1)
+ success = false;
+
+ byte* init_data = new byte[initdata_len];
+ if (theFile.readBlock((char*)(init_data), initdata_len) == -1)
+ success = false;
+
+ if (!success) {
+ QMessageBox msgBox("IO error", "Error opening/reading from file. Setup not loaded.", QMessageBox::Warning,
+ QMessageBox::Ok, QMessageBox::NoButton, QMessageBox::NoButton, this);
+ msgBox.exec();
+ }
+ else {
+ sendSysex(init_data, initdata_len);
+ }
+
+ delete[] init_data;
+ }
+ }
+ }
+
+
+/*!
+ \fn SimpleSynthGui::saveSetup()
+ \brief Save setup to file
+ */
+void SimpleSynthGui::saveSetup()
+ {
+ QString filename =
+ Q3FileDialog::getSaveFileName(lastProjectDir,
+ QString("*.sds;*.SDS"),
+ this,
+ "Save setup dialog", "Save SimpleDrums setup");
+
+ 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/muse2/synti/simpledrums/simpledrumsgui.h b/muse2/synti/simpledrums/simpledrumsgui.h
new file mode 100644
index 00000000..47a98ca1
--- /dev/null
+++ b/muse2/synti/simpledrums/simpledrumsgui.h
@@ -0,0 +1,212 @@
+//
+// 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 <qslider.h>
+#include <qcheckbox.h>
+#include <qpushbutton.h>
+#include <qdial.h>
+#include <Qt3Support>
+//Added by qt3to4:
+#include <QLabel>
+
+#include "libsynti/gui.h"
+#include "simpledrumsguibase.h"
+#include "common.h"
+
+
+
+class Q3ButtonGroup;
+class QLabel;
+class SS_PluginGui;
+
+//--------------------------------------
+// QChannelSlider
+//--------------------------------------
+class QChannelSlider: public QSlider
+ {
+ Q_OBJECT
+
+ public:
+ QChannelSlider(Qt::Orientation, int ch, QWidget* paren, const char* name = 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, const char* name = 0)
+ : QSlider(o, parent, name) {}
+
+ 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, const char* name = 0)
+ : QChannelSlider(o, channel, parent, name) {};
+
+ public slots:
+ virtual void setValue(int val);
+ };
+
+
+//--------------------------------------
+// QChannelOnOff
+//--------------------------------------
+
+class QChannelCheckbox : public QCheckBox
+ {
+ Q_OBJECT
+ public:
+ QChannelCheckbox(QWidget* parent, int channel, const char* name = 0);
+
+ 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, const char* name = 0);
+
+ 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, const char* name = 0);
+
+ 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 SimpleDrumsGuiBase, public MessGui
+ {
+ Q_OBJECT
+ private:
+ // MESS interface:
+ virtual void processEvent(const MidiPlayEvent& ev);
+ void setChannelVolume(int channel, int volume);
+ void displayPluginGui();
+ Q3GroupBox* channelButtonGroups[SS_NR_OF_CHANNELS];
+ Q3ButtonGroup* masterButtonGroup;
+ Q3GroupBox* 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;
+
+ 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/muse2/synti/simpledrums/simpledrumsguibase.ui b/muse2/synti/simpledrums/simpledrumsguibase.ui
new file mode 100644
index 00000000..244273a6
--- /dev/null
+++ b/muse2/synti/simpledrums/simpledrumsguibase.ui
@@ -0,0 +1,27 @@
+<!DOCTYPE UI><UI version="3.2" stdsetdef="1">
+<class>SimpleDrumsGuiBase</class>
+<widget class="QDialog">
+ <property name="name">
+ <cstring>SimpleDrumsGuiBase</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>602</width>
+ <height>509</height>
+ </rect>
+ </property>
+ <property name="paletteBackgroundColor">
+ <color>
+ <red>194</red>
+ <green>194</green>
+ <blue>194</blue>
+ </color>
+ </property>
+ <property name="caption">
+ <string>DrumSynth 0.1</string>
+ </property>
+</widget>
+<layoutdefaults spacing="6" margin="11"/>
+</UI>
diff --git a/muse2/synti/simpledrums/ssplugin.cpp b/muse2/synti/simpledrums/ssplugin.cpp
new file mode 100644
index 00000000..0efbc55e
--- /dev/null
+++ b/muse2/synti/simpledrums/ssplugin.cpp
@@ -0,0 +1,461 @@
+//
+// 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 <QtCore>
+#include <QtGui>
+#include <stdlib.h>
+#include <unistd.h>
+#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().latin1());
+ }
+ void* handle = dlopen(fi->filePath().ascii(), RTLD_NOW);
+ if (handle == 0) {
+ fprintf(stderr, "dlopen(%s) failed: %s\n",
+ fi->filePath().ascii(), 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().ascii(),
+ txt);
+ 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"), QDir::DirsLast, QDir::Files);
+ if (pluginDir.exists()) {
+ QList<QFileInfo> list = pluginDir.entryInfoList();
+ QList<QFileInfo>::iterator it=list.begin();
+ QFileInfo* fi;
+ while((fi = &(*it))) {
+ loadPluginLib(fi);
+ ++it;
+ }
+ }
+ SS_TRACE_OUT
+ }
+
+//---------------------------------------------------------
+// initPlugins
+// search for LADSPA plugins
+//---------------------------------------------------------
+
+void SS_initPlugins()
+ {
+ SS_TRACE_IN
+ //loadPluginDir(museGlobalLib + QString("/plugins"));
+
+ const char* ladspaPath = getenv("LADSPA_PATH");
+ if (ladspaPath == 0)
+ ladspaPath = "/usr/local/lib64/ladspa:/usr/lib64/ladspa:/usr/local/lib/ladspa:/usr/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++;
+ }
+ 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().latin1(), this->lib().latin1(), 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().latin1());
+ 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().latin1());
+ 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().latin1());
+ if (plugin->deactivate) {
+ SS_DBG_LADSPA2("Deactivating ", label().latin1());
+ 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.latin1());
+ 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/muse2/synti/simpledrums/ssplugin.h b/muse2/synti/simpledrums/ssplugin.h
new file mode 100644
index 00000000..8f2b5df3
--- /dev/null
+++ b/muse2/synti/simpledrums/ssplugin.h
@@ -0,0 +1,153 @@
+//
+// 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 <QFileInfo>
+//#include <ladspa.h>
+#include "muse/ladspa.h"
+#include "muse/fastlog.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 ""; } //prevnt unused parameter
+ QString lib() const { return fi.baseName(); }
+ QString path() const { return fi.dirPath(); }
+ };
+
+//---------------------------------------------------------
+// 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);
+
+ };
+
+//---------------------------------------------------------
+// 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/muse2/synti/simpledrums/sspluginchooserbase.ui b/muse2/synti/simpledrums/sspluginchooserbase.ui
new file mode 100644
index 00000000..3ce1d10e
--- /dev/null
+++ b/muse2/synti/simpledrums/sspluginchooserbase.ui
@@ -0,0 +1,134 @@
+<!DOCTYPE UI><UI version="3.2" stdsetdef="1">
+<class>SS_PluginChooserBase</class>
+<widget class="QDialog">
+ <property name="name">
+ <cstring>SS_PluginChooserBase</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>777</width>
+ <height>681</height>
+ </rect>
+ </property>
+ <property name="caption">
+ <string>SimpleDrums - Ladspa Plugin Chooser</string>
+ </property>
+ <vbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QListView">
+ <column>
+ <property name="text">
+ <string>Name</string>
+ </property>
+ <property name="clickable">
+ <bool>true</bool>
+ </property>
+ <property name="resizable">
+ <bool>true</bool>
+ </property>
+ </column>
+ <column>
+ <property name="text">
+ <string>Label</string>
+ </property>
+ <property name="clickable">
+ <bool>true</bool>
+ </property>
+ <property name="resizable">
+ <bool>true</bool>
+ </property>
+ </column>
+ <column>
+ <property name="text">
+ <string>Inports</string>
+ </property>
+ <property name="clickable">
+ <bool>true</bool>
+ </property>
+ <property name="resizable">
+ <bool>true</bool>
+ </property>
+ </column>
+ <column>
+ <property name="text">
+ <string>Outports</string>
+ </property>
+ <property name="clickable">
+ <bool>true</bool>
+ </property>
+ <property name="resizable">
+ <bool>true</bool>
+ </property>
+ </column>
+ <column>
+ <property name="text">
+ <string>Creator</string>
+ </property>
+ <property name="clickable">
+ <bool>true</bool>
+ </property>
+ <property name="resizable">
+ <bool>true</bool>
+ </property>
+ </column>
+ <property name="name">
+ <cstring>effectsListView</cstring>
+ </property>
+ </widget>
+ <widget class="QLayoutWidget">
+ <property name="name">
+ <cstring>layout1</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <spacer>
+ <property name="name">
+ <cstring>spacer1</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>301</width>
+ <height>31</height>
+ </size>
+ </property>
+ </spacer>
+ <widget class="QPushButton">
+ <property name="name">
+ <cstring>cancelButton</cstring>
+ </property>
+ <property name="text">
+ <string>&amp;Cancel</string>
+ </property>
+ <property name="accel">
+ <string>Alt+C</string>
+ </property>
+ </widget>
+ <widget class="QPushButton">
+ <property name="name">
+ <cstring>okButton</cstring>
+ </property>
+ <property name="text">
+ <string>&amp;OK</string>
+ </property>
+ <property name="accel">
+ <string>Alt+O</string>
+ </property>
+ </widget>
+ </hbox>
+ </widget>
+ </vbox>
+</widget>
+<layoutdefaults spacing="6" margin="11"/>
+</UI>
diff --git a/muse2/synti/simpledrums/ssplugingui.cpp b/muse2/synti/simpledrums/ssplugingui.cpp
new file mode 100644
index 00000000..bd4e88d8
--- /dev/null
+++ b/muse2/synti/simpledrums/ssplugingui.cpp
@@ -0,0 +1,534 @@
+//
+// C++ Implementation: ssplugingui
+//
+// Description:
+//
+//
+// Author: Mathias Lundgren <lunar_shuttle@users.sf.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+
+#include <stdlib.h>
+#include <qlayout.h>
+//Added by qt3to4:
+#include <Q3HBoxLayout>
+#include <Q3Frame>
+#include <QLabel>
+#include <Q3VBoxLayout>
+#include <QtGui>
+#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, const char* name)
+ :SS_PluginChooserBase(parent, name)
+ {
+ SS_TRACE_IN
+ 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) ) {
+ Q3ListViewItem* tmpItem = new Q3ListViewItem(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->insertItem(tmpItem);
+ }
+ }
+ connect(okButton, SIGNAL(pressed()), SLOT(okPressed()));
+ connect(cancelButton, SIGNAL(pressed()), SLOT(cancelPressed()));
+ connect(effectsListView, SIGNAL(selectionChanged(Q3ListViewItem*)), SLOT(selectionChanged(Q3ListViewItem*)));
+ connect(effectsListView, SIGNAL(doubleClicked(Q3ListViewItem*)), SLOT(doubleClicked(Q3ListViewItem*)));
+ SS_TRACE_OUT
+ }
+
+/*!
+ \fn SS_PluginChooser::selectionChanged(QListViewItem* item)
+ */
+void SS_PluginChooser::selectionChanged(Q3ListViewItem* 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(Q3ListViewItem* /*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, const char* name)
+ : Q3GroupBox(parent, name), fxid (in_fxid)
+ {
+ SS_TRACE_IN
+ expanded = false;
+ pluginChooser = 0;
+ plugin = 0;
+ expGroup = 0;
+
+ setLineWidth(3);
+ setFlat(false);
+ setFrameStyle( Q3Frame::Box | Q3Frame::Raised );
+ setFrameShape(Q3GroupBox::Box);// QFrame::Box);
+ setFrameShadow(Sunken);
+ setFocusPolicy(Qt::NoFocus);
+ setMinimumSize(SS_PLUGINFRONT_MINWIDTH, SS_PLUGINFRONT_MINHEIGHT);
+ setMaximumSize(SS_PLUGINGUI_MAX_WIDTH, SS_PLUGINFRONT_MINHEIGHT);
+
+ Q3VBoxLayout* bigLayout = new Q3VBoxLayout(this);
+ bigLayout->setMargin(SS_PLUGINFRONT_MARGIN);
+ bigLayout->setAlignment(Qt::AlignTop);
+ bigLayout->setResizeMode(QLayout::SetNoConstraint);
+
+ layout = new Q3HBoxLayout(bigLayout);
+ layout->setAlignment(Qt::AlignVCenter);
+ layout->setResizeMode(QLayout::SetNoConstraint);
+
+
+ Q3VBoxLayout* onOffLayout = new Q3VBoxLayout(layout);
+ onOffLayout->setMargin(SS_PLUGINFRONT_MARGIN);
+ onOff = new QCheckBox(this);
+ onOffLayout->add(new QLabel("On/Off", this));
+ onOffLayout->add(onOff);
+ connect(onOff, SIGNAL(toggled(bool)), SLOT(onOffToggled(bool)));
+
+ pluginName = new QLineEdit(this);
+ pluginName->setReadOnly(true);
+ layout->add(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->add(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->add(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->add(expandButton);
+
+ layout->addSpacing(5);
+
+ Q3VBoxLayout* gainSliderLayout = new Q3VBoxLayout(layout);
+ gainSliderLayout->add(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->add(outGainSlider);
+ clearPluginDisplay();
+
+ expLayout = new Q3VBoxLayout(bigLayout, 2);
+
+ QToolTip::add(clearFxButton, "Clear and unload effect");
+ QToolTip::add(loadFxButton, "Load effect");
+ QToolTip::add(expandButton, "Toggle display of effect parameters");
+ QToolTip::add(onOff, "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, "temppluginchooser");
+
+ pluginChooser->exec();
+ if ((pluginChooser->result() == QDialog::Accepted) && pluginChooser->getSelectedPlugin()) {
+ Plugin* p = pluginChooser->getSelectedPlugin();
+ //printf("Selected plugin: %s\n", pluginChooser->getSelectedPlugin()->name().latin1());
+ 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 {
+ 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 Q3ButtonGroup(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->add(expGroup);
+ expGroup->show();
+ Q3VBoxLayout* expGroupLayout = new Q3VBoxLayout(expGroup, 1);
+ expGroupLayout->setAlignment(Qt::AlignLeft | Qt::AlignVCenter);
+ expGroupLayout->setResizeMode(QLayout::SetNoConstraint);
+ expGroupLayout->setMargin(SS_PLUGINFRONT_MARGIN);
+
+ for (int i=0; i < plugin->parameter(); i++) {
+ Q3HBoxLayout* paramStrip = new Q3HBoxLayout(expGroupLayout, 3);
+ 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->add(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->add(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->add(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, const char* name)
+ : QDialog(parent, name, false)
+ {
+ this->setCaption("SimpleDrums LADSPA sendeffects");
+ for (int i=0; i<SS_NR_OF_SENDEFFECTS; i++) {
+ pluginFronts[i] = 0;
+ }
+ layout = new Q3VBoxLayout(this);
+
+ for (int i=0; i<SS_NR_OF_SENDEFFECTS; i++) {
+ pluginFronts[i] = new SS_PluginFront(this, i);
+ pluginFronts[i]->update();
+ layout->add(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/muse2/synti/simpledrums/ssplugingui.h b/muse2/synti/simpledrums/ssplugingui.h
new file mode 100644
index 00000000..166d8787
--- /dev/null
+++ b/muse2/synti/simpledrums/ssplugingui.h
@@ -0,0 +1,206 @@
+//
+// 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 <qdialog.h>
+#include <qslider.h>
+#include <Q3ButtonGroup>
+#include <QtGui>
+//Added by qt3to4:
+#include <Q3HBoxLayout>
+#include <Q3VBoxLayout>
+#include "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 /*val*/) { //prevent compiler warning unused parameter
+ 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, const char* name = 0)
+ : QCheckBox(parent, name) , 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->isOn()); 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, const char* name = 0)
+ : QSlider(Qt::Horizontal, parent, name), 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 SS_PluginChooserBase
+{
+ Q_OBJECT
+ private:
+ LadspaPlugin* selectedPlugin;
+ protected:
+
+ public:
+ SS_PluginChooser(QWidget* parent, const char* name=0);
+ LadspaPlugin* getSelectedPlugin() { SS_TRACE_IN SS_TRACE_OUT return selectedPlugin; }
+
+ private slots:
+ void okPressed();
+ void cancelPressed();
+ void selectionChanged(Q3ListViewItem* item);
+ void doubleClicked(Q3ListViewItem* item);
+
+ private:
+ Q3ListViewItem* selectedItem;
+ LadspaPlugin* findSelectedPlugin();
+
+};
+
+//-------------------------------
+// SS_PluginGuiFront
+//-------------------------------
+class SS_PluginFront : public Q3GroupBox
+ {
+ Q_OBJECT
+ private:
+ Q3HBoxLayout* layout;
+ Q3VBoxLayout* expLayout;
+ QLineEdit* pluginName;
+ QCheckBox* onOff;
+ QPushButton* loadFxButton;
+ QPushButton* clearFxButton;
+ QPushButton* expandButton;
+ QSlider* outGainSlider;
+ SS_PluginChooser* pluginChooser;
+ LadspaPlugin* plugin;
+ Q3ButtonGroup* expGroup;
+
+ int fxid;
+ bool expanded;
+
+ //For effect parameters:
+ SS_ParameterWidgetList paramWidgets;
+
+ protected:
+
+ public:
+ SS_PluginFront(QWidget* parent, int id, const char* name = 0);
+ 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:
+ Q3VBoxLayout* layout;
+ SS_PluginFront* pluginFronts[4];
+
+ public:
+ SS_PluginGui(QWidget* parent, const char* name = 0);
+ SS_PluginFront* getPluginFront(unsigned i);
+ ~SS_PluginGui() {}
+private slots:
+ void pluginFrontSizeChanged(int fxid, int val);
+ };
+
+
+#endif
+
diff --git a/muse2/synti/synti-install.am b/muse2/synti/synti-install.am
new file mode 100644
index 00000000..313e4328
--- /dev/null
+++ b/muse2/synti/synti-install.am
@@ -0,0 +1 @@
+synthidir = $(pkglibdir)/synthi \ No newline at end of file
diff --git a/muse2/synti/vam/COPYING b/muse2/synti/vam/COPYING
new file mode 100644
index 00000000..dc63aaca
--- /dev/null
+++ b/muse2/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/muse2/synti/vam/ChangeLog b/muse2/synti/vam/ChangeLog
new file mode 100644
index 00000000..1a7e4258
--- /dev/null
+++ b/muse2/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/muse2/synti/vam/Makefile.am b/muse2/synti/vam/Makefile.am
new file mode 100644
index 00000000..1059c67e
--- /dev/null
+++ b/muse2/synti/vam/Makefile.am
@@ -0,0 +1,18 @@
+include $(top_srcdir)/common.am
+include $(top_srcdir)/synti/synti-install.am
+
+AM_CXXFLAGS += -O3 -ffast-math -fno-exceptions
+
+synthi_LTLIBRARIES = vam.la
+
+vam_la_SOURCES = vam.cpp vam.h vamgui.cpp vamgui.h \
+ vamguibase.ui \
+ $(top_srcdir)/muse/xml.cpp
+
+nodist_vam_la_SOURCES = moc_vamgui.cpp
+
+vam_la_LIBADD = ../libsynti/libsynti.la
+vam_la_LDFLAGS = -module -avoid-version
+
+EXTRA_DIST = README TODO ChangeLog
+
diff --git a/muse2/synti/vam/Makefile.in b/muse2/synti/vam/Makefile.in
new file mode 100644
index 00000000..ba0d610a
--- /dev/null
+++ b/muse2/synti/vam/Makefile.in
@@ -0,0 +1,659 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
+ $(top_srcdir)/common.am $(top_srcdir)/synti/synti-install.am \
+ COPYING ChangeLog TODO
+subdir = synti/vam
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal-include.m4 \
+ $(top_srcdir)/m4/alsa.m4 $(top_srcdir)/m4/docbook.m4 \
+ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
+ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
+ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__installdirs = "$(DESTDIR)$(synthidir)"
+LTLIBRARIES = $(synthi_LTLIBRARIES)
+vam_la_DEPENDENCIES = ../libsynti/libsynti.la
+am_vam_la_OBJECTS = vam.lo vamgui.lo vamguibase.lo xml.lo
+nodist_vam_la_OBJECTS = moc_vamgui.lo
+vam_la_OBJECTS = $(am_vam_la_OBJECTS) $(nodist_vam_la_OBJECTS)
+vam_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \
+ $(vam_la_LDFLAGS) $(LDFLAGS) -o $@
+DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
+depcomp = $(SHELL) $(top_srcdir)/depcomp
+am__depfiles_maybe = depfiles
+am__mv = mv -f
+CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
+LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
+CXXLD = $(CXX)
+CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \
+ $(LDFLAGS) -o $@
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
+ $(LDFLAGS) -o $@
+SOURCES = $(vam_la_SOURCES) $(nodist_vam_la_SOURCES)
+DIST_SOURCES = $(vam_la_SOURCES)
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ALSA_CFLAGS = @ALSA_CFLAGS@
+ALSA_LIBS = @ALSA_LIBS@
+AMTAR = @AMTAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DOCBOOKSTYLE = @DOCBOOKSTYLE@
+DOCBOOKTARGETS = @DOCBOOKTARGETS@
+DOT = @DOT@
+DOTPATH = @DOTPATH@
+DOXYGEN = @DOXYGEN@
+DOXYGEN_TREEVIEW = @DOXYGEN_TREEVIEW@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+FLUIDSYNTHDIRS = @FLUIDSYNTHDIRS@
+FST_CFLAGS = @FST_CFLAGS@
+FST_LIBS = @FST_LIBS@
+Fluidsynth_CFLAGS = @Fluidsynth_CFLAGS@
+Fluidsynth_LIBS = @Fluidsynth_LIBS@
+GIVERTCAP = @GIVERTCAP@
+GREP = @GREP@
+HAVEDOT = @HAVEDOT@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JACK_CFLAGS = @JACK_CFLAGS@
+JACK_LIBS = @JACK_LIBS@
+JADE = @JADE@
+LASH_CFLAGS = @LASH_CFLAGS@
+LASH_LIBS = @LASH_LIBS@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LO_CFLAGS = @LO_CFLAGS@
+LO_LIBS = @LO_LIBS@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+MUSECXXFLAGS = @MUSECXXFLAGS@
+NM = @NM@
+NMEDIT = @NMEDIT@
+NSGMLS = @NSGMLS@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PCH = @PCH@
+PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+PYTHON = @PYTHON@
+PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
+PYTHON_INCLUDES = @PYTHON_INCLUDES@
+PYTHON_LIB = @PYTHON_LIB@
+PYTHON_PLATFORM = @PYTHON_PLATFORM@
+PYTHON_PREFIX = @PYTHON_PREFIX@
+PYTHON_VERSION = @PYTHON_VERSION@
+QTDIR_BIN = @QTDIR_BIN@
+QTDIR_INC = @QTDIR_INC@
+QT_LIBS = @QT_LIBS@
+RANLIB = @RANLIB@
+SAMPLERATE_CFLAGS = @SAMPLERATE_CFLAGS@
+SAMPLERATE_LIBS = @SAMPLERATE_LIBS@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SNDFILE_CFLAGS = @SNDFILE_CFLAGS@
+SNDFILE_LIBS = @SNDFILE_LIBS@
+STRIP = @STRIP@
+SUIDBUILD = @SUIDBUILD@
+SUIDINSTALL = @SUIDINSTALL@
+USE_SSE = @USE_SSE@
+UUID_CFLAGS = @UUID_CFLAGS@
+UUID_LIBS = @UUID_LIBS@
+VERSION = @VERSION@
+XMKMF = @XMKMF@
+X_CFLAGS = @X_CFLAGS@
+X_EXTRA_LIBS = @X_EXTRA_LIBS@
+X_LIBS = @X_LIBS@
+X_PRE_LIBS = @X_PRE_LIBS@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+have_docbook = @have_docbook@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+lt_ECHO = @lt_ECHO@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+pkgpyexecdir = @pkgpyexecdir@
+pkgpythondir = @pkgpythondir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+pyexecdir = @pyexecdir@
+pythondir = @pythondir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+synth_fluid = @synth_fluid@
+synth_fluidsynth = @synth_fluidsynth@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+AM_CXXFLAGS = $(MUSECXXFLAGS) -I.. -I$(top_srcdir)/synti \
+ -I$(top_srcdir)/muse/widgets -DQT_SHARED -DQT_THREAD_SUPPORT \
+ -DQT_PLUGIN $(QTDIR_INC) -DQT3_SUPPORT -O3 -ffast-math \
+ -fno-exceptions
+AM_CPPFLAGS =
+MOC = $(QTDIR_BIN)/moc
+#UIC = $(QTDIR_BIN)/uic3
+UIC = /usr/bin/uic3
+UIFILES = $(wildcard *.ui)
+MOCFILES = $(shell for h in $(filter %.h,$(SOURCES)); do \
+ if grep -q Q_OBJECT $$h; then \
+ echo $$h | sed "s/\(.*\)\.h/moc_\1.cpp/"; \
+ fi; \
+ done)
+
+BUILT_SOURCES = $(MOCFILES) $(UIFILES:%.ui=%.h)
+MOSTLYCLEANFILES = $(MOCFILES) $(UIFILES:%.ui=%.h)
+SUFFIXES = .ui .h.gch
+synthidir = $(pkglibdir)/synthi
+synthi_LTLIBRARIES = vam.la
+vam_la_SOURCES = vam.cpp vam.h vamgui.cpp vamgui.h \
+ vamguibase.ui \
+ $(top_srcdir)/muse/xml.cpp
+
+nodist_vam_la_SOURCES = moc_vamgui.cpp
+vam_la_LIBADD = ../libsynti/libsynti.la
+vam_la_LDFLAGS = -module -avoid-version
+EXTRA_DIST = README TODO ChangeLog
+all: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) all-am
+
+.SUFFIXES:
+.SUFFIXES: .ui .h.gch .cpp .lo .o .obj
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/common.am $(top_srcdir)/synti/synti-install.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu synti/vam/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu synti/vam/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+install-synthiLTLIBRARIES: $(synthi_LTLIBRARIES)
+ @$(NORMAL_INSTALL)
+ test -z "$(synthidir)" || $(MKDIR_P) "$(DESTDIR)$(synthidir)"
+ @list='$(synthi_LTLIBRARIES)'; test -n "$(synthidir)" || list=; \
+ list2=; for p in $$list; do \
+ if test -f $$p; then \
+ list2="$$list2 $$p"; \
+ else :; fi; \
+ done; \
+ test -z "$$list2" || { \
+ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(synthidir)'"; \
+ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(synthidir)"; \
+ }
+
+uninstall-synthiLTLIBRARIES:
+ @$(NORMAL_UNINSTALL)
+ @list='$(synthi_LTLIBRARIES)'; test -n "$(synthidir)" || list=; \
+ for p in $$list; do \
+ $(am__strip_dir) \
+ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(synthidir)/$$f'"; \
+ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(synthidir)/$$f"; \
+ done
+
+clean-synthiLTLIBRARIES:
+ -test -z "$(synthi_LTLIBRARIES)" || rm -f $(synthi_LTLIBRARIES)
+ @list='$(synthi_LTLIBRARIES)'; for p in $$list; do \
+ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
+ test "$$dir" != "$$p" || dir=.; \
+ echo "rm -f \"$${dir}/so_locations\""; \
+ rm -f "$${dir}/so_locations"; \
+ done
+vam.la: $(vam_la_OBJECTS) $(vam_la_DEPENDENCIES)
+ $(vam_la_LINK) -rpath $(synthidir) $(vam_la_OBJECTS) $(vam_la_LIBADD) $(LIBS)
+
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT)
+
+distclean-compile:
+ -rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/moc_vamgui.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vam.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vamgui.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xml.Plo@am__quote@
+
+.cpp.o:
+@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $<
+
+.cpp.obj:
+@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+
+.cpp.lo:
+@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $<
+
+xml.lo: $(top_srcdir)/muse/xml.cpp
+@am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT xml.lo -MD -MP -MF $(DEPDIR)/xml.Tpo -c -o xml.lo `test -f '$(top_srcdir)/muse/xml.cpp' || echo '$(srcdir)/'`$(top_srcdir)/muse/xml.cpp
+@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/xml.Tpo $(DEPDIR)/xml.Plo
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$(top_srcdir)/muse/xml.cpp' object='xml.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o xml.lo `test -f '$(top_srcdir)/muse/xml.cpp' || echo '$(srcdir)/'`$(top_srcdir)/muse/xml.cpp
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ mkid -fID $$unique
+tags: TAGS
+
+TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ set x; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: CTAGS
+CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) check-am
+all-am: Makefile $(LTLIBRARIES)
+installdirs:
+ for dir in "$(DESTDIR)$(synthidir)"; do \
+ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ done
+install: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+ -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES)
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+ -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
+clean: clean-am
+
+clean-am: clean-generic clean-libtool clean-synthiLTLIBRARIES \
+ mostlyclean-am
+
+distclean: distclean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+ distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-synthiLTLIBRARIES
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+ mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-synthiLTLIBRARIES
+
+.MAKE: all check install install-am install-strip
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
+ clean-libtool clean-synthiLTLIBRARIES ctags distclean \
+ distclean-compile distclean-generic distclean-libtool \
+ distclean-tags distdir dvi dvi-am html html-am info info-am \
+ install install-am install-data install-data-am install-dvi \
+ install-dvi-am install-exec install-exec-am install-html \
+ install-html-am install-info install-info-am install-man \
+ install-pdf install-pdf-am install-ps install-ps-am \
+ install-strip install-synthiLTLIBRARIES installcheck \
+ installcheck-am installdirs maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-compile \
+ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+ tags uninstall uninstall-am uninstall-synthiLTLIBRARIES
+
+
+de:
+ @for base in $(MOCFILES); do echo -e "\t$${base}.cpp $${base}.h \\"; done
+
+nde:
+ @for base in $(MOCFILES); do echo -e "\tmoc_$${base}.cpp \\"; done
+
+.ui.o: %.h
+ $(UIC) -L $(top_srcdir)/muse/widgets -o $*.cpp -impl $*.h $*.ui
+ $(MOC) $*.h >> $*.cpp
+ $(CXXCOMPILE) -c $*.cpp -o $*.o
+ $(RM) $*.cpp moc_$*.cpp moc_$*.o
+
+.ui.lo: %.h
+ $(UIC) -L $(top_srcdir)/muse/widgets -o $*.cpp -impl $*.h $*.ui
+ $(MOC) $*.h >> $*.cpp
+ $(LTCXXCOMPILE) -c $*.cpp -o $*.lo
+ $(RM) $*.cpp moc_$*.cpp moc_$*.lo moc_$*.o
+
+moc_%.cpp: %.h
+ $(MOC) $< -o $@
+
+%.h: %.ui
+ $(UIC) -o $@ $<
+# $(UIC) -L $(top_srcdir)/muse/widgets -o $@ $<
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/muse2/synti/vam/README b/muse2/synti/vam/README
new file mode 100644
index 00000000..1b1ee269
--- /dev/null
+++ b/muse2/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/muse2/synti/vam/TODO b/muse2/synti/vam/TODO
new file mode 100644
index 00000000..370bb521
--- /dev/null
+++ b/muse2/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/muse2/synti/vam/vam.cpp b/muse2/synti/vam/vam.cpp
new file mode 100644
index 00000000..95b80c13
--- /dev/null
+++ b/muse2/synti/vam/vam.cpp
@@ -0,0 +1,1050 @@
+//=========================================================
+// 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�nlund (jotsif@linux.nu)
+// (C) Copyright 2005 Robert Jonsson (rj@spamatica.se)
+//
+// 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 <assert.h>
+#include <cmath>
+#include <stdio.h>
+#include <list>
+
+#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
+ int *idata;
+
+ 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);
+ void setController(int ctrl, int data);
+ float *wave_tbl(int wave);
+ double lowpass_filter(double cutoff, double resonance, double input, LPFilter *f);
+
+
+ VAMGui* gui;
+
+ public:
+ virtual int getControllerInfo(int, const char**, int*, int*, int*, int*) const;
+ virtual void getInitData(int* n, const unsigned char**p) const;
+ 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);
+ virtual void processMessages();
+ 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*);
+ 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()
+ {
+ idata = new int[NUM_CONTROLLER];
+ 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->setCaption(QString(name));
+ gui->show();
+
+ 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;
+ }
+
+//---------------------------------------------------------
+// processMessages
+// Called from host always, even if output path is unconnected.
+//---------------------------------------------------------
+
+void VAM::processMessages()
+{
+ //Process messages from the gui
+ //
+ // get and process all pending events from the
+ // synthesizer GUI
+ //
+ while (gui->fifoSize())
+ {
+ MidiPlayEvent ev = gui->readEvent();
+ if (ev.type() == ME_CONTROLLER)
+ {
+ // process local?
+ setController(ev.dataA() & 0xfff, ev.dataB());
+ sendEvent(ev);
+ }
+ else
+ printf("VAM::process(): unknown event\n");
+ }
+}
+
+//---------------------------------------------------------
+// process
+// Called from host, ONLY if output path is connected.
+//---------------------------------------------------------
+
+void VAM::process(float** ports, int offset, int sampleCount)
+ {
+ /*
+ //
+ // get and process all pending events from the
+ // synthesizer GUI
+ //
+ while (gui->fifoSize()) {
+ MidiPlayEvent ev = gui->readEvent();
+ if (ev.type() == ME_CONTROLLER) {
+ // process local?
+ setController(ev.dataA() & 0xfff, ev.dataB());
+ sendEvent(ev);
+ }
+ else
+ printf("VAM::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();
+ }
+ }
+
+int VAM::getControllerInfo(int id, const char** name, int* controller,
+ int* min, int* max, int* initval) const
+ {
+ return gui->getControllerInfo(id, name, controller, min, max, initval);
+ }
+
+//---------------------------------------------------------
+// setController
+//---------------------------------------------------------
+
+bool VAM::setController(int /*channel*/, int ctrl, int data)
+ {
+ setController(ctrl & 0xfff, data);
+ MidiPlayEvent ev(0, 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());
+ filt_env.attack = int(lin2exp[int(normval * 255.0)] * 5.0 * sampleRate()) + 1;
+ 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;
+ }
+
+//---------------------------------------------------------
+// getInitData
+//---------------------------------------------------------
+
+void VAM::getInitData(int* n, const unsigned char**p) const
+ {
+ //int i;//prevent of compiler warning: unused variable
+ int* d = idata;
+ //int maxval = 128*128-1; //prevent of compiler warning: unused variable
+ *n = NUM_CONTROLLER * sizeof(int);
+
+// // setController(0, DCO1_PITCHMOD, p++);
+// *d++ = int(dco1.pitchmod+8191*341.333);
+ *d++ = gui->getController(DCO1_PITCHMOD);
+
+// // setController(0, DCO2_PITCHMOD, p++);
+// *d++ = int(dco2.pitchmod+8191*341.333);
+ *d++ = gui->getController(DCO2_PITCHMOD);
+
+// // setController(0, DCO1_WAVEFORM, p++);
+// *d++ = dco1.waveform;
+ *d++ = gui->getController(DCO1_WAVEFORM);
+
+// // setController(0, DCO2_WAVEFORM, p++);
+// *d++ = dco2.waveform;
+ *d++ = gui->getController(DCO2_WAVEFORM);
+
+// // setController(0, DCO1_FM, p++);
+// for (i = 0;i<LIN2EXP_SIZE;i++) {
+// if (fabs((lin2exp[i] == dco1.fm)) < 0.1)
+// break;
+// }
+// *d++ = int(i/255.0*double(maxval));
+ *d++ = gui->getController(DCO1_FM);
+
+//
+//
+// // setController(0, DCO2_FM, p++);
+// for (i = 0;i<LIN2EXP_SIZE;i++) {
+// if (fabs((lin2exp[i] - dco2.fm)) < 0.1)
+// break;
+// }
+// *d++ = int(i/255.0*double(maxval));
+ *d++ = gui->getController(DCO2_FM);
+
+//
+// // setController(0, DCO1_PWM, p++);
+// *d++ = int(dco1.pwm*double(maxval));
+ *d++ = gui->getController(DCO1_PWM);
+
+//
+// // setController(0, DCO2_PWM, p++);
+// *d++ = int(dco2.pwm*double(maxval));
+ *d++ = gui->getController(DCO2_PWM);
+
+//
+// // setController(0, DCO1_ATTACK, p++);
+// for (i = 0;i<LIN2EXP_SIZE;i++) {
+// if (fabs(lin2exp[i] -( (dco1_env.attack-1)/5.0/sampleRate())) < 0.1)
+// break;
+// }
+// *d++ = int(i/255.0*double(maxval));
+ *d++ = gui->getController(DCO1_ATTACK);
+//
+// // setController(0, DCO2_ATTACK, p++);
+// for (i = 0;i<LIN2EXP_SIZE;i++) {
+// if (fabs(lin2exp[i] -( (dco2_env.attack-1)/5.0/sampleRate())) < 0.1)
+// break;
+// }
+// *d++ = int(i/255.0*double(maxval));
+ *d++ = gui->getController(DCO2_ATTACK);
+
+//
+// // setController(0, DCO1_DECAY, p++);
+// *d++ = int((dco1_env.decay-1)/sampleRate()/5 * maxval);
+ *d++ = gui->getController(DCO1_DECAY);
+
+//
+// // setController(0, DCO2_DECAY, p++);
+// *d++ = int((dco2_env.decay-1)/sampleRate()/5 * maxval);
+ *d++ = gui->getController(DCO2_DECAY);
+
+//
+// // setController(0, DCO1_SUSTAIN, p++ );
+// *d++ = int(dco1_env.sustain*double(maxval));
+ *d++ = gui->getController(DCO1_SUSTAIN);
+
+//
+// // setController(0, DCO2_SUSTAIN, p++ );
+// *d++ = int(dco2_env.sustain*double(maxval));
+ *d++ = gui->getController(DCO2_SUSTAIN);
+//
+// // setController(0, DCO1_RELEASE, p++);
+// for (i = 0;i<LIN2EXP_SIZE;i++) {
+// if (fabs(lin2exp[i] -( (dco1_env.release-1)/10.0/sampleRate())) < 0.1)
+// break;
+// }
+// *d++ = int(i/255.0*double(maxval));
+ *d++ = gui->getController(DCO1_RELEASE);
+
+//
+// // setController(0, DCO2_RELEASE, p++);
+// for (i = 0;i<LIN2EXP_SIZE;i++) {
+// if (fabs(lin2exp[i] -( (dco2_env.release-1)/10.0/sampleRate())) < 0.1)
+// break;
+// }
+// *d++ = int(i/255.0*double(maxval));
+ *d++ = gui->getController(DCO2_RELEASE);
+
+//
+// // setController(0, LFO_FREQ, p++);
+// for (i = 0;i<LIN2EXP_SIZE;i++) {
+// if (fabs((lin2exp[i] - lfo.freq)) < 0.1)
+// break;
+// }
+// *d++ = int(i/255.0*double(maxval));
+ *d++ = gui->getController(LFO_FREQ);
+
+//
+// // setController(0, LFO_WAVEFORM, p++);
+// *d++ = lfo.waveform;
+ *d++ = gui->getController(LFO_WAVEFORM);
+
+//
+// // setController(0, FILT_ENV_MOD, p++);
+// for (i = 0;i<LIN2EXP_SIZE;i++) {
+// if (fabs((lin2exp[i] - (1 - filt_env_mod))) < 0.1)
+// break;
+// }
+// *d++ = int((255-i)/255.0*double(maxval));
+ *d++ = gui->getController(FILT_ENV_MOD);
+
+//
+// // setController(0, FILT_KEYTRACK, p++);
+// *d++ = filt_keytrack;
+ *d++ = gui->getController(FILT_KEYTRACK);
+
+//
+// // setController(0, FILT_RES, p++);
+// *d++ = int(filt_res*double(maxval));
+ *d++ = gui->getController(FILT_RES);
+
+//
+// // setController(0, FILT_ATTACK, p++);
+// for (i = 0;i<LIN2EXP_SIZE;i++) {
+// if (fabs(lin2exp[i] -( (filt_env.attack-1)/5.0/sampleRate())) < 0.1)
+// break;
+// }
+// *d++ = int(i/255.0*double(maxval));
+ *d++ = gui->getController(FILT_ATTACK);
+
+//
+// // setController(0, FILT_DECAY, p++);
+// *d++ = int((filt_env.decay-1)/sampleRate()*double(maxval)/5);
+ *d++ = gui->getController(FILT_DECAY);
+
+//
+// // setController(0, FILT_SUSTAIN, p++);
+// *d++ = int(filt_env.sustain*double(maxval));
+ *d++ = gui->getController(FILT_SUSTAIN);
+
+//
+// // setController(0, FILT_RELEASE, p++);
+// for (i = 0;i<LIN2EXP_SIZE;i++) {
+// if (fabs(lin2exp[i] -( (filt_env.release-1)/10.0/sampleRate())) < 0.1)
+// break;
+// }
+// *d++ = int(i/255.0*double(maxval));
+ *d++ = gui->getController(FILT_RELEASE);
+
+//
+// // setController(0, DCO2ON, p++);
+// *d++ = dco2.on;
+ *d++ = gui->getController(DCO2ON);
+
+//
+// // setController(0, FILT_INVERT, p++);
+// *d++ = filt_invert;
+ *d++ = gui->getController(FILT_INVERT);
+
+//
+// // setController(0, FILT_CUTOFF, p++);
+// *d++ = int(filt_cutoff*double(maxval));
+ *d++ = gui->getController(FILT_CUTOFF);
+
+//
+// // setController(0, DCO1_DETUNE, p++);
+// *d++ = int(dco1.detune *16834 + 8191);
+ *d++ = gui->getController(DCO1_DETUNE);
+
+//
+// // setController(0, DCO2_DETUNE, p++);
+// *d++ = int(dco2.detune *16834 + 8191);
+ *d++ = gui->getController(DCO2_DETUNE);
+
+//
+// // setController(0, DCO1_PW, p++);
+// *d++ = int(dco1.pw*double(maxval));
+ *d++ = gui->getController(DCO1_PW);
+
+//
+// // setController(0, DCO2_PW, p++);
+// *d++ = int(dco2.pw*double(maxval));
+ *d++ = gui->getController(DCO2_PW);
+
+ *p = (unsigned char*)idata;
+ }
+
+//---------------------------------------------------------
+// sysex
+//---------------------------------------------------------
+
+bool VAM::sysex(int n, const unsigned char* data)
+ {
+ n=n; // remove warning of unused variable
+ int *p= (int*)data;
+ setController(0, DCO1_PITCHMOD, *p++);
+ setController(0, DCO2_PITCHMOD, *p++);
+ setController(0, DCO1_WAVEFORM, *p++);
+ setController(0, DCO2_WAVEFORM, *p++);
+ setController(0, DCO1_FM, *p++);
+ setController(0, DCO2_FM, *p++);
+ setController(0, DCO1_PWM, *p++);
+ setController(0, DCO2_PWM, *p++);
+ setController(0, DCO1_ATTACK, *p++);
+ setController(0, DCO2_ATTACK, *p++);
+ setController(0, DCO1_DECAY, *p++);
+ setController(0, DCO2_DECAY, *p++);
+ setController(0, DCO1_SUSTAIN, *p++ );
+ setController(0, DCO2_SUSTAIN, *p++ );
+ setController(0, DCO1_RELEASE, *p++);
+ setController(0, DCO2_RELEASE, *p++);
+ setController(0, LFO_FREQ, *p++);
+ setController(0, LFO_WAVEFORM, *p++);
+ setController(0, FILT_ENV_MOD, *p++);
+ setController(0, FILT_KEYTRACK, *p++);
+ setController(0, FILT_RES, *p++);
+ setController(0, FILT_ATTACK, *p++);
+ setController(0, FILT_DECAY, *p++);
+ setController(0, FILT_SUSTAIN, *p++);
+ setController(0, FILT_RELEASE, *p++);
+ setController(0, DCO2ON, *p++);
+ setController(0, FILT_INVERT, *p++);
+ setController(0, FILT_CUTOFF, *p++);
+ setController(0, DCO1_DETUNE, *p++);
+ setController(0, DCO2_DETUNE, *p++);
+ setController(0, DCO1_PW, *p++);
+ setController(0, DCO2_PW, *p++);
+
+ 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
+//---------------------------------------------------------
+
+class QWidget;
+
+static Mess* instantiate(int sr, QWidget*, QString*, 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/muse2/synti/vam/vam.h b/muse2/synti/vam/vam.h
new file mode 100644
index 00000000..3da27e79
--- /dev/null
+++ b/muse2/synti/vam/vam.h
@@ -0,0 +1,38 @@
+// vam.h
+//
+// (C) Copyright 2002 Jotsif Lindman H�nlund (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/muse2/synti/vam/vamgui.cpp b/muse2/synti/vam/vamgui.cpp
new file mode 100644
index 00000000..2a3a5e72
--- /dev/null
+++ b/muse2/synti/vam/vamgui.cpp
@@ -0,0 +1,720 @@
+//=========================================================
+// 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�nlund (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 <unistd.h>
+#include <stdlib.h>
+#include <signal.h>
+
+#include <list>
+
+#include "vamgui.h"
+#include "vam.h"
+
+#include <qslider.h>
+#include <qcheckbox.h>
+#include <qcombobox.h>
+#include <qsocketnotifier.h>
+#include <q3listbox.h>
+#include <qtoolbutton.h>
+#include <qlineedit.h>
+#include <q3filedialog.h>
+#include <qlcdnumber.h>
+#include <qsignalmapper.h>
+#include <qlabel.h>
+
+#include "muse/xml.h"
+#include "muse/midi.h"
+#include "muse/midictrl.h"
+
+const char *vam_ctrl_names[] = {
+ "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"
+};
+
+//---------------------------------------------------------
+// Preset
+//---------------------------------------------------------
+
+struct Preset {
+ QString name;
+ int ctrl[NUM_CONTROLLER];
+ void readConfiguration(Xml& xml);
+ void readControl(Xml& xml);
+ void writeConfiguration(Xml& xml, int level);
+ };
+
+std::list<Preset> presets;
+typedef std::list<Preset>::iterator iPreset;
+
+// Removed by T356
+//QString museProject;
+//QString museGlobalShare;
+//QString museUser;
+//QString instanceName;
+
+// char* presetFileTypes[] = {
+// "Presets (*.pre)",
+// 0
+// };
+
+//---------------------------------------------------------
+// readControl
+//---------------------------------------------------------
+
+void Preset::readControl(Xml& xml)
+{
+ 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;
+ }
+ }
+}
+
+//---------------------------------------------------------
+// readConfiguration
+//---------------------------------------------------------
+
+void Preset::readConfiguration(Xml& xml)
+{
+ 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;
+ }
+ }
+}
+
+//---------------------------------------------------------
+// writeConfiguration
+//---------------------------------------------------------
+
+void Preset::writeConfiguration(Xml& xml, int level)
+{
+ //xml.tag(level++, "preset name=\"%s\"", name.ascii());
+ xml.tag(level++, "preset name=\"%s\"", Xml::xmlString(name).ascii());
+ for (int i = 0; i < NUM_CONTROLLER; ++i) {
+ xml.tag(level, "control idx=\"%d\" val=\"%d\" /", i, ctrl[i]);
+ }
+ xml.tag(level--, "/preset");
+}
+
+//---------------------------------------------------------
+// VAMGui
+//---------------------------------------------------------
+
+VAMGui::VAMGui()
+ : VAMGuiBase(0, "vamgui", Qt::WType_TopLevel),
+ MessGui()
+{
+ 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(Q3ListBoxItem*)),
+ this, SLOT(presetClicked(Q3ListBoxItem*)));
+ // 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;
+ presetFileName = NULL;
+
+ // work around for probable QT/WM interaction bug.
+ // for certain window managers, e.g xfce, this window is
+ // is displayed although not specifically set to show();
+ // bug: 2811156 Softsynth GUI unclosable with XFCE4 (and a few others)
+ show();
+ hide();
+ }
+
+//---------------------------------------------------------
+// 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->maxValue();
+ val = (slider->value() * 16383 + max/2) / max;
+ }
+ else if (ctrl->type == SynthGuiCtrl::COMBOBOX) {
+ val = ((QComboBox*)(ctrl->editor))->currentItem();
+ }
+ else if (ctrl->type == SynthGuiCtrl::SWITCH) {
+ val = ((QCheckBox*)(ctrl->editor))->isOn();
+ }
+ sendController(0, idx + CTRL_RPN14_OFFSET, val);
+ }
+
+int VAMGui::getController(int idx)
+ {
+ SynthGuiCtrl* ctrl = &dctrl[idx];
+ int val = 0;
+ if (ctrl->type == SynthGuiCtrl::SLIDER) {
+ QSlider* slider = (QSlider*)(ctrl->editor);
+ int max = slider->maxValue();
+ val = (slider->value() * 16383 + max/2) / max;
+ }
+ else if (ctrl->type == SynthGuiCtrl::COMBOBOX) {
+ val = ((QComboBox*)(ctrl->editor))->currentItem();
+ }
+ else if (ctrl->type == SynthGuiCtrl::SWITCH) {
+ val = ((QCheckBox*)(ctrl->editor))->isOn();
+ }
+ return val;
+ }
+
+int VAMGui::getControllerInfo(int id, const char** name, int* controller,
+ int* min, int* max, int* /*initval*/) const
+ {
+ if (id >= NUM_CONTROLLER)
+ return 0;
+
+
+ *controller = id;
+ *name = vam_ctrl_names[id];
+ const SynthGuiCtrl* ctrl = (const SynthGuiCtrl*)&dctrl[id];
+ //int val = 0;
+ if (ctrl->type == SynthGuiCtrl::SLIDER) {
+ QSlider* slider = (QSlider*)(ctrl->editor);
+ *max = 16383; //slider->maxValue();
+ *min = slider->minValue();
+ //val = (slider->value() * 16383 + max/2) / max;
+
+ //val = 16383 + 1/2
+ }
+ else if (ctrl->type == SynthGuiCtrl::COMBOBOX) {
+ //val = ((QComboBox*)(ctrl->editor))->currentItem();
+ *min = 0;
+ *max = ((QComboBox*)(ctrl->editor))->count();
+ }
+ else if (ctrl->type == SynthGuiCtrl::SWITCH) {
+ //val = ((QCheckBox*)(ctrl->editor))->isOn();
+ *min=0;
+ *max=1;
+ }
+ return ++id;
+ }
+
+//---------------------------------------------------------
+// presetClicked
+//---------------------------------------------------------
+
+void VAMGui::presetClicked(Q3ListBoxItem* 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->insertItem(name);
+}
+
+//---------------------------------------------------------
+// deleteNamedPreset
+//---------------------------------------------------------
+void VAMGui::deleteNamedPreset(const QString& name)
+{
+ Q3ListBoxItem * item = presetList->findItem(name);
+ if (!item) {
+ fprintf(stderr, "%s: Could not find preset!\n", __FUNCTION__);
+ return;
+ }
+ presetList->clearSelection();
+ int index = presetList->index(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->maxValue();
+ val = (slider->value() * 16383 + max/2) / max;
+ }
+ else if (ctrl->type == SynthGuiCtrl::COMBOBOX) {
+ val = ((QComboBox*)(ctrl->editor))->currentItem();
+ }
+ else if (ctrl->type == SynthGuiCtrl::SWITCH) {
+ val = ((QCheckBox*)(ctrl->editor))->isOn();
+ }
+
+ 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.latin1();
+ 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->maxValue();
+ 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))->setCurrentItem(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 MidiPlayEvent& 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 1 // TODO
+ QString iname;
+ QString s(getenv("HOME"));
+
+/* QString filename = QFileDialog::getOpenFileName(lastdir, QString("*.[Ss][Ff]2"),
+ this,
+ "Load Soundfont dialog",
+ "Choose soundfont");*/
+ QString fn = Q3FileDialog::getOpenFileName(s, "Presets (*.vam)",
+ this,
+ "MusE: Load VAM Presets",
+ "Select a preset");
+ if (fn.isEmpty())
+ return;
+ bool popenFlag=false;
+ FILE* f = fopen(fn.ascii(),"r");//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().latin1());
+ 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)
+{
+ showWarning=showWarning; // prevent of unsused variable warning
+#if 1
+ bool popenFlag=false;
+ if (fn=="") {
+ printf("empty name\n");
+ return;
+ }
+ printf("fn=%s\n",fn.ascii());
+ FILE* f = fopen(fn.ascii(),"w");//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 1 // TODO
+ QString s(getenv("MUSE"));
+ QString fn = Q3FileDialog::getSaveFileName(s, "Presets (*.vam)", this,
+ tr("MusE: Save VAM Presets"));
+ if (fn.isEmpty())
+ return;
+ doSavePresets (fn, true);
+#endif
+}
+
+
+//---------------------------------------------------------
+// savePresetsToFilePressed
+//---------------------------------------------------------
+
+void VAMGui::savePresetsToFilePressed()
+{
+ if (!presetFileName ) {
+
+ QString s(getenv("MUSE"));
+ QString fn = Q3FileDialog::getSaveFileName(s, "Presets (*.vam)", this,
+ tr("MusE: Save VAM Presets"));
+ presetFileName = new QString(fn);
+ }
+ if (*presetFileName == QString(""))
+ return;
+ //if presetFileName->
+ doSavePresets (*presetFileName, false);
+}
+
+//---------------------------------------------------------
+// deletePresetPressed
+//---------------------------------------------------------
+
+void VAMGui::deletePresetPressed()
+{
+ deleteNamedPreset (presetList->currentText());
+}
+
+//---------------------------------------------------------
+// readMessage
+//---------------------------------------------------------
+
+void VAMGui::readMessage(int)
+ {
+ MessGui::readMessage();
+ }
+
diff --git a/muse2/synti/vam/vamgui.h b/muse2/synti/vam/vamgui.h
new file mode 100644
index 00000000..0ca5e506
--- /dev/null
+++ b/muse2/synti/vam/vamgui.h
@@ -0,0 +1,82 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// vamgui.h
+//
+// (C) Copyright 2002 Jotsif Lindman H�nlund (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 "vamguibase.h"
+#include "vam.h"
+#include "libsynti/gui.h"
+
+class Q3ListBoxItem;
+class Preset;
+class QString;
+class QSignalMapper;
+
+//---------------------------------------------------------
+// VAMGui
+//---------------------------------------------------------
+
+class VAMGui : public 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 MidiPlayEvent&);
+
+ private slots:
+ void ctrlChanged(int idx);
+
+ void presetClicked(Q3ListBoxItem*);
+ 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:
+ int getController(int idx);
+ int getControllerInfo(int id, const char** name, int* controller, int* min, int* max, int* initval) const;
+ VAMGui();
+ };
+
+#endif /* __VAMGUI_H */
+
+
diff --git a/muse2/synti/vam/vamguibase.ui b/muse2/synti/vam/vamguibase.ui
new file mode 100644
index 00000000..39c8ff90
--- /dev/null
+++ b/muse2/synti/vam/vamguibase.ui
@@ -0,0 +1,2032 @@
+<!DOCTYPE UI><UI version="3.2" stdsetdef="1">
+<class>VAMGuiBase</class>
+<widget class="QWidget">
+ <property name="name">
+ <cstring>VAMGuiBase</cstring>
+ </property>
+ <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="caption">
+ <string>Virtual Analogue for MusE</string>
+ </property>
+ <grid>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>11</number>
+ </property>
+ <property name="spacing">
+ <number>6</number>
+ </property>
+ <widget class="QGroupBox" row="1" column="0" rowspan="1" colspan="2">
+ <property name="name">
+ <cstring>GroupBox11</cstring>
+ </property>
+ <property name="title">
+ <string>LFO</string>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>6</number>
+ </property>
+ <property name="spacing">
+ <number>2</number>
+ </property>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>TextLabel3_5</cstring>
+ </property>
+ <property name="text">
+ <string>Freq</string>
+ </property>
+ </widget>
+ <widget class="QSlider">
+ <property name="name">
+ <cstring>FreqS</cstring>
+ </property>
+ <property name="minValue">
+ <number>0</number>
+ </property>
+ <property name="maxValue">
+ <number>255</number>
+ </property>
+ <property name="pageStep">
+ <number>1</number>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ </widget>
+ <widget class="QLCDNumber">
+ <property name="name">
+ <cstring>LCDNumber1_5</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>1</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="paletteBackgroundColor">
+ <color>
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ </property>
+ <property name="numDigits">
+ <number>3</number>
+ </property>
+ <property name="segmentStyle">
+ <enum>Flat</enum>
+ </property>
+ </widget>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>TextLabel1_2_2</cstring>
+ </property>
+ <property name="text">
+ <string>Waveform</string>
+ </property>
+ </widget>
+ <widget class="QComboBox">
+ <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>
+ <property name="name">
+ <cstring>Waveform2_2</cstring>
+ </property>
+ </widget>
+ </hbox>
+ </widget>
+ <widget class="QGroupBox" row="2" column="0" rowspan="1" colspan="2">
+ <property name="name">
+ <cstring>GroupBox12</cstring>
+ </property>
+ <property name="title">
+ <string>Filter</string>
+ </property>
+ <grid>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>6</number>
+ </property>
+ <property name="spacing">
+ <number>2</number>
+ </property>
+ <widget class="QLabel" row="0" column="0">
+ <property name="name">
+ <cstring>TextLabel3_5_3</cstring>
+ </property>
+ <property name="text">
+ <string>EnvMod</string>
+ </property>
+ </widget>
+ <widget class="QLabel" row="0" column="4">
+ <property name="name">
+ <cstring>TextLabel3_3_2_5_2</cstring>
+ </property>
+ <property name="text">
+ <string>Attack</string>
+ </property>
+ </widget>
+ <widget class="QLabel" row="1" column="4">
+ <property name="name">
+ <cstring>TextLabel3_3_2_2_2_2</cstring>
+ </property>
+ <property name="text">
+ <string>Decay</string>
+ </property>
+ </widget>
+ <widget class="QLabel" row="2" column="4">
+ <property name="name">
+ <cstring>TextLabel3_3_2_3_2_2</cstring>
+ </property>
+ <property name="text">
+ <string>Sustain</string>
+ </property>
+ </widget>
+ <widget class="QLabel" row="3" column="4">
+ <property name="name">
+ <cstring>TextLabel3_3_2_4_2_2</cstring>
+ </property>
+ <property name="text">
+ <string>Release</string>
+ </property>
+ </widget>
+ <widget class="QLCDNumber" row="0" column="3">
+ <property name="name">
+ <cstring>LCDNumber1_5_3</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>1</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="paletteBackgroundColor">
+ <color>
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ </property>
+ <property name="numDigits">
+ <number>3</number>
+ </property>
+ <property name="segmentStyle">
+ <enum>Flat</enum>
+ </property>
+ </widget>
+ <widget class="QLCDNumber" row="0" column="6">
+ <property name="name">
+ <cstring>LCDNumber1_3_2_5_2</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>1</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="paletteBackgroundColor">
+ <color>
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ </property>
+ <property name="numDigits">
+ <number>3</number>
+ </property>
+ <property name="segmentStyle">
+ <enum>Flat</enum>
+ </property>
+ </widget>
+ <widget class="QLCDNumber" row="1" column="6">
+ <property name="name">
+ <cstring>LCDNumber1_3_2_2_2_2</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>1</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="paletteBackgroundColor">
+ <color>
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ </property>
+ <property name="numDigits">
+ <number>3</number>
+ </property>
+ <property name="segmentStyle">
+ <enum>Flat</enum>
+ </property>
+ </widget>
+ <widget class="QLCDNumber" row="2" column="6">
+ <property name="name">
+ <cstring>LCDNumber1_3_2_3_2_2</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>1</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="paletteBackgroundColor">
+ <color>
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ </property>
+ <property name="numDigits">
+ <number>3</number>
+ </property>
+ <property name="segmentStyle">
+ <enum>Flat</enum>
+ </property>
+ </widget>
+ <widget class="QLCDNumber" row="3" column="6">
+ <property name="name">
+ <cstring>LCDNumber1_3_2_4_2_2</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>1</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="paletteBackgroundColor">
+ <color>
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ </property>
+ <property name="numDigits">
+ <number>3</number>
+ </property>
+ <property name="segmentStyle">
+ <enum>Flat</enum>
+ </property>
+ </widget>
+ <widget class="QLCDNumber" row="1" column="3">
+ <property name="name">
+ <cstring>LCDNumber1_5_5</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>1</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="paletteBackgroundColor">
+ <color>
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ </property>
+ <property name="numDigits">
+ <number>3</number>
+ </property>
+ <property name="segmentStyle">
+ <enum>Flat</enum>
+ </property>
+ </widget>
+ <widget class="QLabel" row="2" column="0">
+ <property name="name">
+ <cstring>TextLabel1_3</cstring>
+ </property>
+ <property name="text">
+ <string>Cutoff</string>
+ </property>
+ </widget>
+ <widget class="QLabel" row="1" column="0">
+ <property name="name">
+ <cstring>TextLabel3_5_5</cstring>
+ </property>
+ <property name="text">
+ <string>Resonance</string>
+ </property>
+ </widget>
+ <widget class="QCheckBox" row="3" column="0" rowspan="1" colspan="2">
+ <property name="name">
+ <cstring>FilterInvert</cstring>
+ </property>
+ <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>
+ <widget class="QCheckBox" row="3" column="2" rowspan="1" colspan="2">
+ <property name="name">
+ <cstring>KeyTrack</cstring>
+ </property>
+ <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>
+ <widget class="QLCDNumber" row="2" column="3">
+ <property name="name">
+ <cstring>LCDNumber1_5_5_2</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>1</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="paletteBackgroundColor">
+ <color>
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ </property>
+ <property name="numDigits">
+ <number>3</number>
+ </property>
+ <property name="segmentStyle">
+ <enum>Flat</enum>
+ </property>
+ </widget>
+ <widget class="QSlider" row="0" column="1" rowspan="1" colspan="2">
+ <property name="name">
+ <cstring>EnvModS</cstring>
+ </property>
+ <property name="minValue">
+ <number>0</number>
+ </property>
+ <property name="maxValue">
+ <number>255</number>
+ </property>
+ <property name="pageStep">
+ <number>1</number>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ </widget>
+ <widget class="QSlider" row="1" column="1" rowspan="1" colspan="2">
+ <property name="name">
+ <cstring>ResS</cstring>
+ </property>
+ <property name="minValue">
+ <number>0</number>
+ </property>
+ <property name="maxValue">
+ <number>255</number>
+ </property>
+ <property name="pageStep">
+ <number>1</number>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ </widget>
+ <widget class="QSlider" row="2" column="1" rowspan="1" colspan="2">
+ <property name="name">
+ <cstring>CutoffS</cstring>
+ </property>
+ <property name="maxValue">
+ <number>255</number>
+ </property>
+ <property name="pageStep">
+ <number>1</number>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="tickmarks">
+ <enum>NoMarks</enum>
+ </property>
+ <property name="tickInterval">
+ <number>25</number>
+ </property>
+ </widget>
+ <widget class="QSlider" row="0" column="5">
+ <property name="name">
+ <cstring>AttackS3</cstring>
+ </property>
+ <property name="minValue">
+ <number>0</number>
+ </property>
+ <property name="maxValue">
+ <number>255</number>
+ </property>
+ <property name="pageStep">
+ <number>1</number>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ </widget>
+ <widget class="QSlider" row="1" column="5">
+ <property name="name">
+ <cstring>DecayS3</cstring>
+ </property>
+ <property name="minValue">
+ <number>0</number>
+ </property>
+ <property name="maxValue">
+ <number>255</number>
+ </property>
+ <property name="pageStep">
+ <number>1</number>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ </widget>
+ <widget class="QSlider" row="2" column="5">
+ <property name="name">
+ <cstring>SustainS3</cstring>
+ </property>
+ <property name="minValue">
+ <number>0</number>
+ </property>
+ <property name="maxValue">
+ <number>255</number>
+ </property>
+ <property name="pageStep">
+ <number>1</number>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ </widget>
+ <widget class="QSlider" row="3" column="5">
+ <property name="name">
+ <cstring>ReleaseS3</cstring>
+ </property>
+ <property name="minValue">
+ <number>0</number>
+ </property>
+ <property name="maxValue">
+ <number>255</number>
+ </property>
+ <property name="pageStep">
+ <number>1</number>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ </widget>
+ </grid>
+ </widget>
+ <widget class="QGroupBox" row="0" column="2">
+ <property name="name">
+ <cstring>GroupBox5_3</cstring>
+ </property>
+ <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>
+ <grid>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>6</number>
+ </property>
+ <property name="spacing">
+ <number>2</number>
+ </property>
+ <widget class="QListBox" row="0" column="0">
+ <property name="name">
+ <cstring>presetList</cstring>
+ </property>
+ <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>
+ <property name="paletteBackgroundColor">
+ <color>
+ <red>189</red>
+ <green>202</green>
+ <blue>255</blue>
+ </color>
+ </property>
+ </widget>
+ <widget class="QLabel" row="1" column="0">
+ <property name="name">
+ <cstring>fileName</cstring>
+ </property>
+ <property name="text">
+ <string></string>
+ </property>
+ </widget>
+ <widget class="QLineEdit" row="2" column="0">
+ <property name="name">
+ <cstring>presetNameEdit</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>3</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="paletteBackgroundColor">
+ <color>
+ <red>189</red>
+ <green>202</green>
+ <blue>255</blue>
+ </color>
+ </property>
+ </widget>
+ <widget class="QLayoutWidget" row="3" column="0">
+ <property name="name">
+ <cstring>Layout3</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>0</number>
+ </property>
+ <property name="spacing">
+ <number>0</number>
+ </property>
+ <widget class="QToolButton">
+ <property name="name">
+ <cstring>presetSet</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>5</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>Set</string>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string></string>
+ </property>
+ </widget>
+ <widget class="QToolButton">
+ <property name="name">
+ <cstring>loadPresets</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>5</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string></string>
+ </property>
+ <property name="iconSet">
+ <iconset>image0</iconset>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>load preset list</string>
+ </property>
+ </widget>
+ <widget class="QToolButton">
+ <property name="name">
+ <cstring>savePresetsToFile</cstring>
+ </property>
+ <property name="text">
+ <string></string>
+ </property>
+ <property name="iconSet">
+ <iconset>image1</iconset>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>save preset list</string>
+ </property>
+ </widget>
+ <widget class="QToolButton">
+ <property name="name">
+ <cstring>savePresets</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>5</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string></string>
+ </property>
+ <property name="iconSet">
+ <iconset>image2</iconset>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>save preset list to a new file</string>
+ </property>
+ </widget>
+ <widget class="QToolButton">
+ <property name="name">
+ <cstring>deletePreset</cstring>
+ </property>
+ <property name="text">
+ <string></string>
+ </property>
+ <property name="iconSet">
+ <iconset>image3</iconset>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>delete preset</string>
+ </property>
+ </widget>
+ <spacer>
+ <property name="name">
+ <cstring>Spacer2</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>20</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </hbox>
+ </widget>
+ </grid>
+ </widget>
+ <widget class="QGroupBox" row="0" column="0">
+ <property name="name">
+ <cstring>GroupBox5</cstring>
+ </property>
+ <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>
+ <grid>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>6</number>
+ </property>
+ <property name="spacing">
+ <number>2</number>
+ </property>
+ <widget class="QLabel" row="1" column="0">
+ <property name="name">
+ <cstring>TextLabel3</cstring>
+ </property>
+ <property name="text">
+ <string>Pitch</string>
+ </property>
+ </widget>
+ <widget class="QLCDNumber" row="1" column="2">
+ <property name="name">
+ <cstring>LCDNumber1</cstring>
+ </property>
+ <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="paletteBackgroundColor">
+ <color>
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ </property>
+ <property name="numDigits">
+ <number>3</number>
+ </property>
+ <property name="segmentStyle">
+ <enum>Flat</enum>
+ </property>
+ </widget>
+ <widget class="QLabel" row="2" column="0">
+ <property name="name">
+ <cstring>TextLabel1_4</cstring>
+ </property>
+ <property name="text">
+ <string>Detune</string>
+ </property>
+ </widget>
+ <widget class="QLCDNumber" row="2" column="2">
+ <property name="name">
+ <cstring>LCDNumber1_6</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>1</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="paletteBackgroundColor">
+ <color>
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ </property>
+ <property name="numDigits">
+ <number>3</number>
+ </property>
+ <property name="segmentStyle">
+ <enum>Flat</enum>
+ </property>
+ </widget>
+ <widget class="QSlider" row="2" column="1">
+ <property name="name">
+ <cstring>DetuneS</cstring>
+ </property>
+ <property name="minValue">
+ <number>-50</number>
+ </property>
+ <property name="maxValue">
+ <number>50</number>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ </widget>
+ <widget class="QSlider" row="1" column="1">
+ <property name="name">
+ <cstring>PitchModS</cstring>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>100</width>
+ <height>0</height>
+ </size>
+ </property>
+ <property name="minValue">
+ <number>-24</number>
+ </property>
+ <property name="maxValue">
+ <number>24</number>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ </widget>
+ <widget class="QLCDNumber" row="7" column="2">
+ <property name="name">
+ <cstring>LCDNumber1_3_2_2</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>1</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="paletteBackgroundColor">
+ <color>
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ </property>
+ <property name="numDigits">
+ <number>3</number>
+ </property>
+ <property name="segmentStyle">
+ <enum>Flat</enum>
+ </property>
+ </widget>
+ <widget class="QLCDNumber" row="5" column="2">
+ <property name="name">
+ <cstring>LCDNumber1_3</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>1</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="paletteBackgroundColor">
+ <color>
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ </property>
+ <property name="numDigits">
+ <number>3</number>
+ </property>
+ <property name="segmentStyle">
+ <enum>Flat</enum>
+ </property>
+ </widget>
+ <widget class="QLCDNumber" row="6" column="2">
+ <property name="name">
+ <cstring>LCDNumber1_3_2</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>1</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="paletteBackgroundColor">
+ <color>
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ </property>
+ <property name="numDigits">
+ <number>3</number>
+ </property>
+ <property name="segmentStyle">
+ <enum>Flat</enum>
+ </property>
+ </widget>
+ <widget class="QLabel" row="5" column="0">
+ <property name="name">
+ <cstring>TextLabel3_3</cstring>
+ </property>
+ <property name="text">
+ <string>PWM</string>
+ </property>
+ </widget>
+ <widget class="QLabel" row="7" column="0">
+ <property name="name">
+ <cstring>TextLabel3_3_2_2</cstring>
+ </property>
+ <property name="text">
+ <string>Decay</string>
+ </property>
+ </widget>
+ <widget class="QLCDNumber" row="9" column="2">
+ <property name="name">
+ <cstring>LCDNumber1_3_2_4</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>1</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="paletteBackgroundColor">
+ <color>
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ </property>
+ <property name="numDigits">
+ <number>3</number>
+ </property>
+ <property name="segmentStyle">
+ <enum>Flat</enum>
+ </property>
+ </widget>
+ <widget class="QLCDNumber" row="8" column="2">
+ <property name="name">
+ <cstring>LCDNumber1_3_2_3</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>1</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="paletteBackgroundColor">
+ <color>
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ </property>
+ <property name="numDigits">
+ <number>3</number>
+ </property>
+ <property name="segmentStyle">
+ <enum>Flat</enum>
+ </property>
+ </widget>
+ <widget class="QLabel" row="8" column="0">
+ <property name="name">
+ <cstring>TextLabel3_3_2_3</cstring>
+ </property>
+ <property name="text">
+ <string>Sustain</string>
+ </property>
+ </widget>
+ <widget class="QLabel" row="9" column="0">
+ <property name="name">
+ <cstring>TextLabel3_3_2_4</cstring>
+ </property>
+ <property name="text">
+ <string>Release</string>
+ </property>
+ </widget>
+ <widget class="QLabel" row="6" column="0">
+ <property name="name">
+ <cstring>TextLabel3_3_2</cstring>
+ </property>
+ <property name="text">
+ <string>Attack</string>
+ </property>
+ </widget>
+ <widget class="QLabel" row="3" column="0">
+ <property name="name">
+ <cstring>TextLabel3_2</cstring>
+ </property>
+ <property name="text">
+ <string>FM</string>
+ </property>
+ </widget>
+ <widget class="QLCDNumber" row="3" column="2">
+ <property name="name">
+ <cstring>LCDNumber1_2</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>1</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="paletteBackgroundColor">
+ <color>
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ </property>
+ <property name="numDigits">
+ <number>3</number>
+ </property>
+ <property name="segmentStyle">
+ <enum>Flat</enum>
+ </property>
+ </widget>
+ <widget class="QLabel" row="4" column="0">
+ <property name="name">
+ <cstring>TextLabel3_2_3</cstring>
+ </property>
+ <property name="text">
+ <string>PW</string>
+ </property>
+ </widget>
+ <widget class="QLCDNumber" row="4" column="2">
+ <property name="name">
+ <cstring>LCDNumber1_2_3</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>1</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="paletteBackgroundColor">
+ <color>
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ </property>
+ <property name="numDigits">
+ <number>3</number>
+ </property>
+ <property name="segmentStyle">
+ <enum>Flat</enum>
+ </property>
+ </widget>
+ <widget class="QSlider" row="3" column="1">
+ <property name="name">
+ <cstring>FMS</cstring>
+ </property>
+ <property name="minValue">
+ <number>0</number>
+ </property>
+ <property name="maxValue">
+ <number>255</number>
+ </property>
+ <property name="pageStep">
+ <number>1</number>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ </widget>
+ <widget class="QSlider" row="4" column="1">
+ <property name="name">
+ <cstring>PWS</cstring>
+ </property>
+ <property name="minValue">
+ <number>0</number>
+ </property>
+ <property name="maxValue">
+ <number>255</number>
+ </property>
+ <property name="pageStep">
+ <number>1</number>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ </widget>
+ <widget class="QSlider" row="5" column="1">
+ <property name="name">
+ <cstring>PWMS</cstring>
+ </property>
+ <property name="minValue">
+ <number>0</number>
+ </property>
+ <property name="maxValue">
+ <number>255</number>
+ </property>
+ <property name="pageStep">
+ <number>1</number>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ </widget>
+ <widget class="QSlider" row="6" column="1">
+ <property name="name">
+ <cstring>AttackS</cstring>
+ </property>
+ <property name="minValue">
+ <number>0</number>
+ </property>
+ <property name="maxValue">
+ <number>255</number>
+ </property>
+ <property name="pageStep">
+ <number>1</number>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ </widget>
+ <widget class="QSlider" row="7" column="1">
+ <property name="name">
+ <cstring>DecayS</cstring>
+ </property>
+ <property name="minValue">
+ <number>0</number>
+ </property>
+ <property name="maxValue">
+ <number>255</number>
+ </property>
+ <property name="pageStep">
+ <number>1</number>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ </widget>
+ <widget class="QSlider" row="8" column="1">
+ <property name="name">
+ <cstring>SustainS</cstring>
+ </property>
+ <property name="minValue">
+ <number>0</number>
+ </property>
+ <property name="maxValue">
+ <number>255</number>
+ </property>
+ <property name="pageStep">
+ <number>1</number>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ </widget>
+ <widget class="QSlider" row="9" column="1">
+ <property name="name">
+ <cstring>ReleaseS</cstring>
+ </property>
+ <property name="minValue">
+ <number>0</number>
+ </property>
+ <property name="maxValue">
+ <number>255</number>
+ </property>
+ <property name="pageStep">
+ <number>1</number>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ </widget>
+ <widget class="QLabel" row="0" column="0">
+ <property name="name">
+ <cstring>TextLabel1</cstring>
+ </property>
+ <property name="text">
+ <string>Waveform</string>
+ </property>
+ </widget>
+ <widget class="QComboBox" row="0" column="1" rowspan="1" colspan="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>
+ <property name="name">
+ <cstring>Waveform</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>3</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ </widget>
+ </grid>
+ </widget>
+ <widget class="QGroupBox" row="0" column="1">
+ <property name="name">
+ <cstring>GroupBox5_2</cstring>
+ </property>
+ <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>
+ <grid>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>6</number>
+ </property>
+ <property name="spacing">
+ <number>2</number>
+ </property>
+ <widget class="QLCDNumber" row="1" column="3">
+ <property name="name">
+ <cstring>LCDNumber1_4</cstring>
+ </property>
+ <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="paletteBackgroundColor">
+ <color>
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ </property>
+ <property name="numDigits">
+ <number>3</number>
+ </property>
+ <property name="segmentStyle">
+ <enum>Flat</enum>
+ </property>
+ </widget>
+ <widget class="QSlider" row="1" column="1" rowspan="1" colspan="2">
+ <property name="name">
+ <cstring>PitchModS2</cstring>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>100</width>
+ <height>0</height>
+ </size>
+ </property>
+ <property name="minValue">
+ <number>-24</number>
+ </property>
+ <property name="maxValue">
+ <number>24</number>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ </widget>
+ <widget class="QLabel" row="3" column="0">
+ <property name="name">
+ <cstring>TextLabel3_2_2</cstring>
+ </property>
+ <property name="text">
+ <string>FM</string>
+ </property>
+ </widget>
+ <widget class="QLCDNumber" row="3" column="3">
+ <property name="name">
+ <cstring>LCDNumber1_2_2</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>1</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="paletteBackgroundColor">
+ <color>
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ </property>
+ <property name="numDigits">
+ <number>3</number>
+ </property>
+ <property name="segmentStyle">
+ <enum>Flat</enum>
+ </property>
+ </widget>
+ <widget class="QLabel" row="2" column="0">
+ <property name="name">
+ <cstring>TextLabel1_4_2</cstring>
+ </property>
+ <property name="text">
+ <string>Detune</string>
+ </property>
+ </widget>
+ <widget class="QLCDNumber" row="2" column="3">
+ <property name="name">
+ <cstring>LCDNumber1_6_2</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>1</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="paletteBackgroundColor">
+ <color>
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ </property>
+ <property name="numDigits">
+ <number>3</number>
+ </property>
+ <property name="segmentStyle">
+ <enum>Flat</enum>
+ </property>
+ </widget>
+ <widget class="QLabel" row="1" column="0">
+ <property name="name">
+ <cstring>TextLabel3_4</cstring>
+ </property>
+ <property name="text">
+ <string>Pitch</string>
+ </property>
+ </widget>
+ <widget class="QSlider" row="2" column="1" rowspan="1" colspan="2">
+ <property name="name">
+ <cstring>DetuneS2</cstring>
+ </property>
+ <property name="minValue">
+ <number>-50</number>
+ </property>
+ <property name="maxValue">
+ <number>50</number>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ </widget>
+ <widget class="QLabel" row="0" column="0">
+ <property name="name">
+ <cstring>TextLabel1_2</cstring>
+ </property>
+ <property name="text">
+ <string>Waveform</string>
+ </property>
+ </widget>
+ <widget class="QComboBox" row="0" column="1">
+ <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>
+ <property name="name">
+ <cstring>Waveform2</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>3</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ </widget>
+ <widget class="QLabel" row="9" column="0">
+ <property name="name">
+ <cstring>TextLabel3_3_2_4_2</cstring>
+ </property>
+ <property name="text">
+ <string>Release</string>
+ </property>
+ </widget>
+ <widget class="QLabel" row="5" column="0">
+ <property name="name">
+ <cstring>TextLabel3_3_3</cstring>
+ </property>
+ <property name="text">
+ <string>PWM</string>
+ </property>
+ </widget>
+ <widget class="QLCDNumber" row="6" column="3">
+ <property name="name">
+ <cstring>LCDNumber1_3_2_5</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>1</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="paletteBackgroundColor">
+ <color>
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ </property>
+ <property name="numDigits">
+ <number>3</number>
+ </property>
+ <property name="segmentStyle">
+ <enum>Flat</enum>
+ </property>
+ </widget>
+ <widget class="QLabel" row="6" column="0">
+ <property name="name">
+ <cstring>TextLabel3_3_2_5</cstring>
+ </property>
+ <property name="text">
+ <string>Attack</string>
+ </property>
+ </widget>
+ <widget class="QLCDNumber" row="8" column="3">
+ <property name="name">
+ <cstring>LCDNumber1_3_2_3_2</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>1</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="paletteBackgroundColor">
+ <color>
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ </property>
+ <property name="numDigits">
+ <number>3</number>
+ </property>
+ <property name="segmentStyle">
+ <enum>Flat</enum>
+ </property>
+ </widget>
+ <widget class="QLCDNumber" row="7" column="3">
+ <property name="name">
+ <cstring>LCDNumber1_3_2_2_2</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>1</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="paletteBackgroundColor">
+ <color>
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ </property>
+ <property name="numDigits">
+ <number>3</number>
+ </property>
+ <property name="segmentStyle">
+ <enum>Flat</enum>
+ </property>
+ </widget>
+ <widget class="QLabel" row="7" column="0">
+ <property name="name">
+ <cstring>TextLabel3_3_2_2_2</cstring>
+ </property>
+ <property name="text">
+ <string>Decay</string>
+ </property>
+ </widget>
+ <widget class="QLCDNumber" row="9" column="3">
+ <property name="name">
+ <cstring>LCDNumber1_3_2_4_2</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>1</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="paletteBackgroundColor">
+ <color>
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ </property>
+ <property name="numDigits">
+ <number>3</number>
+ </property>
+ <property name="segmentStyle">
+ <enum>Flat</enum>
+ </property>
+ </widget>
+ <widget class="QLCDNumber" row="5" column="3">
+ <property name="name">
+ <cstring>LCDNumber1_3_3</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>1</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="paletteBackgroundColor">
+ <color>
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ </property>
+ <property name="numDigits">
+ <number>3</number>
+ </property>
+ <property name="segmentStyle">
+ <enum>Flat</enum>
+ </property>
+ </widget>
+ <widget class="QLabel" row="8" column="0">
+ <property name="name">
+ <cstring>TextLabel3_3_2_3_2</cstring>
+ </property>
+ <property name="text">
+ <string>Sustain</string>
+ </property>
+ </widget>
+ <widget class="QLCDNumber" row="4" column="3">
+ <property name="name">
+ <cstring>LCDNumber1_2_4</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>1</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="paletteBackgroundColor">
+ <color>
+ <red>255</red>
+ <green>255</green>
+ <blue>255</blue>
+ </color>
+ </property>
+ <property name="numDigits">
+ <number>3</number>
+ </property>
+ <property name="segmentStyle">
+ <enum>Flat</enum>
+ </property>
+ </widget>
+ <widget class="QLabel" row="4" column="0">
+ <property name="name">
+ <cstring>TextLabel3_2_4</cstring>
+ </property>
+ <property name="text">
+ <string>PW</string>
+ </property>
+ </widget>
+ <widget class="QCheckBox" row="0" column="2" rowspan="1" colspan="2">
+ <property name="name">
+ <cstring>DCO2On</cstring>
+ </property>
+ <property name="text">
+ <string>On</string>
+ </property>
+ </widget>
+ <widget class="QSlider" row="3" column="1" rowspan="1" colspan="2">
+ <property name="name">
+ <cstring>FMS2</cstring>
+ </property>
+ <property name="minValue">
+ <number>0</number>
+ </property>
+ <property name="maxValue">
+ <number>255</number>
+ </property>
+ <property name="pageStep">
+ <number>1</number>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ </widget>
+ <widget class="QSlider" row="4" column="1" rowspan="1" colspan="2">
+ <property name="name">
+ <cstring>PWS2</cstring>
+ </property>
+ <property name="minValue">
+ <number>0</number>
+ </property>
+ <property name="maxValue">
+ <number>255</number>
+ </property>
+ <property name="pageStep">
+ <number>1</number>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ </widget>
+ <widget class="QSlider" row="5" column="1" rowspan="1" colspan="2">
+ <property name="name">
+ <cstring>PWMS2</cstring>
+ </property>
+ <property name="minValue">
+ <number>0</number>
+ </property>
+ <property name="maxValue">
+ <number>255</number>
+ </property>
+ <property name="pageStep">
+ <number>1</number>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ </widget>
+ <widget class="QSlider" row="6" column="1" rowspan="1" colspan="2">
+ <property name="name">
+ <cstring>AttackS2</cstring>
+ </property>
+ <property name="minValue">
+ <number>0</number>
+ </property>
+ <property name="maxValue">
+ <number>255</number>
+ </property>
+ <property name="pageStep">
+ <number>1</number>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ </widget>
+ <widget class="QSlider" row="7" column="1" rowspan="1" colspan="2">
+ <property name="name">
+ <cstring>DecayS2</cstring>
+ </property>
+ <property name="minValue">
+ <number>0</number>
+ </property>
+ <property name="maxValue">
+ <number>255</number>
+ </property>
+ <property name="pageStep">
+ <number>1</number>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ </widget>
+ <widget class="QSlider" row="8" column="1" rowspan="1" colspan="2">
+ <property name="name">
+ <cstring>SustainS2</cstring>
+ </property>
+ <property name="minValue">
+ <number>0</number>
+ </property>
+ <property name="maxValue">
+ <number>255</number>
+ </property>
+ <property name="pageStep">
+ <number>1</number>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ </widget>
+ <widget class="QSlider" row="9" column="1" rowspan="1" colspan="2">
+ <property name="name">
+ <cstring>ReleaseS2</cstring>
+ </property>
+ <property name="minValue">
+ <number>0</number>
+ </property>
+ <property name="maxValue">
+ <number>255</number>
+ </property>
+ <property name="pageStep">
+ <number>1</number>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ </widget>
+ </grid>
+ </widget>
+ <widget class="QLabel" row="1" column="2" rowspan="2" colspan="1">
+ <property name="name">
+ <cstring>TextLabel1_5</cstring>
+ </property>
+ <property name="text">
+ <string>VAM 1.0beta3
+Virtual Analog for MusE
+Released under GPL.
+Copyright(C) 2002
+Jotsif Lindman Hörnlund
+( jotsif@linux.nu )
+Copyright(C) 2005
+Robert Jonsson
+(rj@spamatica.se)</string>
+ </property>
+ <property name="alignment">
+ <set>AlignCenter</set>
+ </property>
+ </widget>
+ </grid>
+</widget>
+<images>
+ <image name="image0">
+ <data format="PNG" length="258">89504e470d0a1a0a0000000d49484452000000100000001008060000001ff3ff61000000c949444154388d9592c10d83300c45bf5117c133f4e431aa8a4385d4ed38a08a317c620673a9c418e981a64dd204d27f41b1fcfffb404855919388b8f0acaa94db6bf6cca149449c9f87e19436101197a3951afd342855fdeb15724a1b7891aa567fb06c0000e7c61b70be6c9379027543d190866f01f688b7e6a94cec8628240a20bed636ffe89452cdacdaccccdf00ea069819d6e71a2d2dcb82b66da32700f4f71eaa4a4d484f5532872200ce570fe97b664f070a17a986ecd5a4f423734807de7f81998b8423bd000829889c944241c00000000049454e44ae426082</data>
+ </image>
+ <image name="image1">
+ <data format="PNG" length="255">89504e470d0a1a0a0000000d49484452000000100000001008060000001ff3ff61000000c649444154388dc593410e82301045df102e41e2a69c807214ddc971f004862bc9b6dc6036261c635c28a488c4aa0b7fd2ccb493fffb679a0a60fc800cc0571e809616b8bc8d31470033334404b3343322b27450fbfa63eb9383ecb970921322fd667c05f395b7472b498839ff7790c74389a79b3240807cab908afcf9200c21f9f6954018026686aae29c4355e7da781d29760565592e4456afa0aa1cf6079a63c3781d17e4691f6325e09c9bf389b4459e5b0843986da92addb94b2203d0f73ddcbff457eb067156c5960afbfdac0000000049454e44ae426082</data>
+ </image>
+ <image name="image2">
+ <data format="PNG" length="266">89504e470d0a1a0a0000000d49484452000000100000001008060000001ff3ff61000000d149444154388da593516ec2301044dfa01c28e62f42ea41ca0dca31e06a753ed707429a7e90440e1070db95562b6b3da3d9595b80f947ec00529f00387306bedfd61a23c0b69184dd2646d25ac13eed7f2d7d56b0bb6f5c7441ca9bf55938f5c9d3284d51639a15485a12204ab42b987bf51d6eeb77579b52bbbb9af1c576bafa303b5b4794d8247e20b89fad45c1cac428816d72ce9aeb26f21901c0388e3a7d9d7cfc3ce2ebfba7f930c2300c0b489d04f8950762fa8da94f44899bfcabad4eab3a030e1f87c5ec2801396726923fe50f2ec7c98c0b0f5e850000000049454e44ae426082</data>
+ </image>
+ <image name="image3">
+ <data format="PNG" length="208">89504e470d0a1a0a0000000d494844520000001200000012080600000056ce8e570000009749444154388dcdd44d0ec2400805e047e34948bc04b735e959b8840957c14d694471d07616be64361df295f96949553123cb14e52fa14b5720223e9a57556a3b1211777754236277f321144815228299a56725f42b5242df22cc8cf5b6d6d01184af9c37fb0c026cc71f474c44ef0ad0223bf45cfc1a666e91b4b4513a2475146faed2210040f11b891bfab1ab01923b6a0abb4cfbfa1f54fd62bebe79e6830000000049454e44ae426082</data>
+ </image>
+</images>
+<connections>
+ <connection>
+ <sender>PitchModS</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>LCDNumber1</receiver>
+ <slot>display(int)</slot>
+ </connection>
+ <connection>
+ <sender>FMS</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>LCDNumber1_2</receiver>
+ <slot>display(int)</slot>
+ </connection>
+ <connection>
+ <sender>PWMS</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>LCDNumber1_3</receiver>
+ <slot>display(int)</slot>
+ </connection>
+ <connection>
+ <sender>AttackS</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>LCDNumber1_3_2</receiver>
+ <slot>display(int)</slot>
+ </connection>
+ <connection>
+ <sender>DecayS</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>LCDNumber1_3_2_2</receiver>
+ <slot>display(int)</slot>
+ </connection>
+ <connection>
+ <sender>SustainS</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>LCDNumber1_3_2_3</receiver>
+ <slot>display(int)</slot>
+ </connection>
+ <connection>
+ <sender>ReleaseS</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>LCDNumber1_3_2_4</receiver>
+ <slot>display(int)</slot>
+ </connection>
+ <connection>
+ <sender>FreqS</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>LCDNumber1_5</receiver>
+ <slot>display(int)</slot>
+ </connection>
+ <connection>
+ <sender>FMS2</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>LCDNumber1_2_2</receiver>
+ <slot>display(int)</slot>
+ </connection>
+ <connection>
+ <sender>PWMS2</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>LCDNumber1_3_3</receiver>
+ <slot>display(int)</slot>
+ </connection>
+ <connection>
+ <sender>AttackS2</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>LCDNumber1_3_2_5</receiver>
+ <slot>display(int)</slot>
+ </connection>
+ <connection>
+ <sender>SustainS2</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>LCDNumber1_3_2_3_2</receiver>
+ <slot>display(int)</slot>
+ </connection>
+ <connection>
+ <sender>ReleaseS2</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>LCDNumber1_3_2_4_2</receiver>
+ <slot>display(int)</slot>
+ </connection>
+ <connection>
+ <sender>ResS</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>LCDNumber1_5_5</receiver>
+ <slot>display(int)</slot>
+ </connection>
+ <connection>
+ <sender>EnvModS</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>LCDNumber1_5_3</receiver>
+ <slot>display(int)</slot>
+ </connection>
+ <connection>
+ <sender>AttackS3</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>LCDNumber1_3_2_5_2</receiver>
+ <slot>display(int)</slot>
+ </connection>
+ <connection>
+ <sender>DecayS3</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>LCDNumber1_3_2_2_2_2</receiver>
+ <slot>display(int)</slot>
+ </connection>
+ <connection>
+ <sender>SustainS3</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>LCDNumber1_3_2_3_2_2</receiver>
+ <slot>display(int)</slot>
+ </connection>
+ <connection>
+ <sender>ReleaseS3</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>LCDNumber1_3_2_4_2_2</receiver>
+ <slot>display(int)</slot>
+ </connection>
+ <connection>
+ <sender>PitchModS2</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>LCDNumber1_4</receiver>
+ <slot>display(int)</slot>
+ </connection>
+ <connection>
+ <sender>DecayS2</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>LCDNumber1_3_2_2_2</receiver>
+ <slot>display(int)</slot>
+ </connection>
+ <connection>
+ <sender>CutoffS</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>LCDNumber1_5_5_2</receiver>
+ <slot>display(int)</slot>
+ </connection>
+ <connection>
+ <sender>DetuneS</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>LCDNumber1_6</receiver>
+ <slot>display(int)</slot>
+ </connection>
+ <connection>
+ <sender>DetuneS2</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>LCDNumber1_6_2</receiver>
+ <slot>display(int)</slot>
+ </connection>
+ <connection>
+ <sender>PWS</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>LCDNumber1_2_3</receiver>
+ <slot>display(int)</slot>
+ </connection>
+ <connection>
+ <sender>PWS2</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>LCDNumber1_2_4</receiver>
+ <slot>display(int)</slot>
+ </connection>
+</connections>
+<layoutdefaults spacing="6" margin="11"/>
+</UI>
diff --git a/muse2/test.med b/muse2/test.med
new file mode 100644
index 00000000..74d2f7b5
--- /dev/null
+++ b/muse2/test.med
@@ -0,0 +1,449 @@
+<?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>
+ <mtctype>1</mtctype>
+ <mtcoffset>00:00:00:00:00</mtcoffset>
+ <sendClockDelay>1</sendClockDelay>
+ <useJackTransport>1</useJackTransport>
+ <jackTransportMaster>1</jackTransportMaster>
+ <extSync>0</extSync>
+ <bigtimeVisible>0</bigtimeVisible>
+ <transportVisible>0</transportVisible>
+ <markerVisible>0</markerVisible>
+ <geometryMain x="0" y="0" w="972" h="623"></geometryMain>
+ <geometryTransport x="0" y="0" w="692" h="320"></geometryTransport>
+ <mixer1Visible>0</mixer1Visible>
+ <mixer2Visible>0</mixer2Visible>
+ <arranger>
+ <info>1</info>
+ <split>440 526 </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>0</precountEnable>
+ <fromMastertrack>0</fromMastertrack>
+ <signatureZ>4</signatureZ>
+ <signatureN>4</signatureN>
+ <prerecord>0</prerecord>
+ <preroll>0</preroll>
+ <midiClickEnable>1</midiClickEnable>
+ <audioClickEnable>0</audioClickEnable>
+ <audioClickVolume>0.5</audioClickVolume>
+ </metronom>
+ <rcEnable>0</rcEnable>
+ <rcStop>28</rcStop>
+ <rcRecord>31</rcRecord>
+ <rcGotoLeft>33</rcGotoLeft>
+ <rcPlay>29</rcPlay>
+ <midiport idx="0">
+ <instrument>generell midi</instrument>
+ <channel idx="0">
+ <controller id="7">
+ </controller>
+ <controller id="10">
+ </controller>
+ <controller id="262145">
+ </controller>
+ </channel>
+ <channel idx="1">
+ <controller id="7">
+ </controller>
+ <controller id="10">
+ </controller>
+ <controller id="262145">
+ </controller>
+ </channel>
+ <channel idx="2">
+ <controller id="7">
+ </controller>
+ <controller id="10">
+ </controller>
+ <controller id="262145">
+ </controller>
+ </channel>
+ <channel idx="3">
+ <controller id="7">
+ </controller>
+ <controller id="10">
+ </controller>
+ <controller id="262145">
+ </controller>
+ </channel>
+ <channel idx="4">
+ <controller id="7">
+ </controller>
+ <controller id="10">
+ </controller>
+ <controller id="262145">
+ </controller>
+ </channel>
+ <channel idx="5">
+ <controller id="7">
+ </controller>
+ <controller id="10">
+ </controller>
+ <controller id="262145">
+ </controller>
+ </channel>
+ <channel idx="6">
+ <controller id="7">
+ </controller>
+ <controller id="10">
+ </controller>
+ <controller id="262145">
+ </controller>
+ </channel>
+ <channel idx="7">
+ <controller id="7">
+ </controller>
+ <controller id="10">
+ </controller>
+ <controller id="262145">
+ </controller>
+ </channel>
+ <channel idx="8">
+ <controller id="7">
+ </controller>
+ <controller id="10">
+ </controller>
+ <controller id="262145">
+ </controller>
+ </channel>
+ <channel idx="9">
+ <controller id="7">
+ </controller>
+ <controller id="10">
+ </controller>
+ <controller id="262145">
+ </controller>
+ </channel>
+ <channel idx="10">
+ <controller id="7">
+ </controller>
+ <controller id="10">
+ </controller>
+ <controller id="262145">
+ </controller>
+ </channel>
+ <channel idx="11">
+ <controller id="7">
+ </controller>
+ <controller id="10">
+ </controller>
+ <controller id="262145">
+ </controller>
+ </channel>
+ <channel idx="12">
+ <controller id="7">
+ </controller>
+ <controller id="10">
+ </controller>
+ <controller id="262145">
+ </controller>
+ </channel>
+ <channel idx="13">
+ <controller id="7">
+ </controller>
+ <controller id="10">
+ </controller>
+ <controller id="262145">
+ </controller>
+ </channel>
+ <channel idx="14">
+ <controller id="7">
+ </controller>
+ <controller id="10">
+ </controller>
+ <controller id="262145">
+ </controller>
+ </channel>
+ <channel idx="15">
+ <controller id="7">
+ </controller>
+ <controller id="10">
+ </controller>
+ <controller id="262145">
+ </controller>
+ </channel>
+ </midiport>
+ </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>
+ <info></info>
+ <automation>1</automation>
+ <cpos>15360</cpos>
+ <rpos>24576</rpos>
+ <lpos>15360</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>24576</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>
+ <prefader>0</prefader>
+ <sendMetronome>0</sendMetronome>
+ <automation>1</automation>
+ <controller id="0" cur="1.02164">
+ 0 1.02164,
+ </controller>
+ <controller id="1" cur="0">
+ 0 0,
+ </controller>
+ <controller id="2" cur="0">
+ </controller>
+ </AudioOutput>
+ <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>
+ <locked>0</locked>
+ <echo>1</echo>
+ <transposition>0</transposition>
+ <velocity>0</velocity>
+ <delay>0</delay>
+ <len>100</len>
+ <compression>100</compression>
+ <automation>1</automation>
+ <part>
+ <name>Track 1</name>
+ <poslen tick="0" len="15360" />
+ <selected>0</selected>
+ <color>0</color>
+ </part>
+ <part>
+ <name>Track 1</name>
+ <poslen tick="15360" len="9216" />
+ <selected>1</selected>
+ <color>0</color>
+ </part>
+ </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>
+ <locked>0</locked>
+ <echo>1</echo>
+ <transposition>0</transposition>
+ <velocity>0</velocity>
+ <delay>0</delay>
+ <len>100</len>
+ <compression>100</compression>
+ <automation>1</automation>
+ <part>
+ <name>Track 1</name>
+ <poslen tick="0" len="15360" />
+ <selected>0</selected>
+ <color>0</color>
+ </part>
+ <part>
+ <name>Track 2</name>
+ <poslen tick="15360" len="9216" />
+ <selected>0</selected>
+ <color>0</color>
+ </part>
+ </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>
+ <locked>0</locked>
+ <echo>1</echo>
+ <transposition>0</transposition>
+ <velocity>0</velocity>
+ <delay>0</delay>
+ <len>100</len>
+ <compression>100</compression>
+ <automation>1</automation>
+ <part>
+ <name>Track 3</name>
+ <poslen tick="15360" len="9216" />
+ <selected>0</selected>
+ <color>0</color>
+ </part>
+ </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>
+ <locked>0</locked>
+ <echo>1</echo>
+ <transposition>0</transposition>
+ <velocity>0</velocity>
+ <delay>0</delay>
+ <len>100</len>
+ <compression>100</compression>
+ <automation>1</automation>
+ <part>
+ <name>Track 1</name>
+ <poslen tick="0" len="15360" />
+ <selected>0</selected>
+ <color>0</color>
+ </part>
+ </miditrack>
+ <miditrack>
+ <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>0</channel>
+ <locked>0</locked>
+ <echo>1</echo>
+ <transposition>0</transposition>
+ <velocity>0</velocity>
+ <delay>0</delay>
+ <len>100</len>
+ <compression>100</compression>
+ <automation>1</automation>
+ <part>
+ <name>Track 1</name>
+ <poslen tick="0" len="15360" />
+ <selected>0</selected>
+ <color>0</color>
+ </part>
+ </miditrack>
+ <miditrack>
+ <name>Track 6</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>
+ <locked>0</locked>
+ <echo>1</echo>
+ <transposition>0</transposition>
+ <velocity>0</velocity>
+ <delay>0</delay>
+ <len>100</len>
+ <compression>100</compression>
+ <automation>1</automation>
+ </miditrack>
+ <Route channel="0">
+ <source name="Out 1"/>
+ <dest type="1" name="system:playback_1"/>
+ </Route>
+ <Route channel="1">
+ <source name="Out 1"/>
+ <dest type="1" name="system:playback_2"/>
+ </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>
+ </toplevels>
+ </muse>
diff --git a/muse2/testproj.med b/muse2/testproj.med
new file mode 100644
index 00000000..b981080e
--- /dev/null
+++ b/muse2/testproj.med
@@ -0,0 +1,333 @@
+<?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>
+ <mtctype>1</mtctype>
+ <mtcoffset>00:00:00:00:00</mtcoffset>
+ <sendClockDelay>1</sendClockDelay>
+ <useJackTransport>1</useJackTransport>
+ <jackTransportMaster>1</jackTransportMaster>
+ <extSync>0</extSync>
+ <bigtimeVisible>0</bigtimeVisible>
+ <transportVisible>0</transportVisible>
+ <markerVisible>0</markerVisible>
+ <geometryMain x="0" y="0" w="1143" h="568"></geometryMain>
+ <geometryTransport x="0" y="0" w="681" h="320"></geometryTransport>
+ <mixer1Visible>0</mixer1Visible>
+ <mixer2Visible>0</mixer2Visible>
+ <arranger>
+ <info>1</info>
+ <split>440 697 </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>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>
+ <midiport idx="0">
+ <instrument>generell midi</instrument>
+ <channel idx="0">
+ <controller id="7">
+ </controller>
+ <controller id="10">
+ </controller>
+ <controller id="262145">
+ </controller>
+ </channel>
+ <channel idx="1">
+ <controller id="7">
+ </controller>
+ <controller id="10">
+ </controller>
+ <controller id="262145">
+ </controller>
+ </channel>
+ <channel idx="2">
+ <controller id="7">
+ </controller>
+ <controller id="10">
+ </controller>
+ <controller id="262145">
+ </controller>
+ </channel>
+ <channel idx="3">
+ <controller id="7">
+ </controller>
+ <controller id="10">
+ </controller>
+ <controller id="262145">
+ </controller>
+ </channel>
+ <channel idx="4">
+ <controller id="7">
+ </controller>
+ <controller id="10">
+ </controller>
+ <controller id="262145">
+ </controller>
+ </channel>
+ <channel idx="5">
+ <controller id="7">
+ </controller>
+ <controller id="10">
+ </controller>
+ <controller id="262145">
+ </controller>
+ </channel>
+ <channel idx="6">
+ <controller id="7">
+ </controller>
+ <controller id="10">
+ </controller>
+ <controller id="262145">
+ </controller>
+ </channel>
+ <channel idx="7">
+ <controller id="7">
+ </controller>
+ <controller id="10">
+ </controller>
+ <controller id="262145">
+ </controller>
+ </channel>
+ <channel idx="8">
+ <controller id="7">
+ </controller>
+ <controller id="10">
+ </controller>
+ <controller id="262145">
+ </controller>
+ </channel>
+ <channel idx="9">
+ <controller id="7">
+ </controller>
+ <controller id="10">
+ </controller>
+ <controller id="262145">
+ </controller>
+ </channel>
+ <channel idx="10">
+ <controller id="7">
+ </controller>
+ <controller id="10">
+ </controller>
+ <controller id="262145">
+ </controller>
+ </channel>
+ <channel idx="11">
+ <controller id="7">
+ </controller>
+ <controller id="10">
+ </controller>
+ <controller id="262145">
+ </controller>
+ </channel>
+ <channel idx="12">
+ <controller id="7">
+ </controller>
+ <controller id="10">
+ </controller>
+ <controller id="262145">
+ </controller>
+ </channel>
+ <channel idx="13">
+ <controller id="7">
+ </controller>
+ <controller id="10">
+ </controller>
+ <controller id="262145">
+ </controller>
+ </channel>
+ <channel idx="14">
+ <controller id="7">
+ </controller>
+ <controller id="10">
+ </controller>
+ <controller id="262145">
+ </controller>
+ </channel>
+ <channel idx="15">
+ <controller id="7">
+ </controller>
+ <controller id="10">
+ </controller>
+ <controller id="262145">
+ </controller>
+ </channel>
+ </midiport>
+ </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>384</raster>
+ <quantStrength>80</quantStrength>
+ <quantLimit>50</quantLimit>
+ <quantLen>0</quantLen>
+ <to>0</to>
+ <width>933</width>
+ <height>622</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>
+ <info></info>
+ <automation>1</automation>
+ <cpos>0</cpos>
+ <rpos>6144</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>6144</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>
+ <prefader>0</prefader>
+ <sendMetronome>0</sendMetronome>
+ <automation>1</automation>
+ <controller id="0" cur="1.02164">
+ </controller>
+ <controller id="1" cur="0">
+ </controller>
+ <controller id="2" cur="0">
+ </controller>
+ </AudioOutput>
+ <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>
+ <locked>0</locked>
+ <echo>1</echo>
+ <transposition>0</transposition>
+ <velocity>0</velocity>
+ <delay>0</delay>
+ <len>100</len>
+ <compression>100</compression>
+ <automation>1</automation>
+ <part>
+ <name>Track 1</name>
+ <poslen tick="0" len="6144" />
+ <selected>1</selected>
+ <color>0</color>
+ </part>
+ </miditrack>
+ <Route channel="0">
+ <source name="Out 1"/>
+ <dest type="1" name="system:playback_1"/>
+ </Route>
+ <Route channel="1">
+ <source name="Out 1"/>
+ <dest type="1" name="system:playback_2"/>
+ </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>
+ <part>1:0</part>
+ <pianoroll>
+ <midieditor>
+ <topwin>
+ <geometry x="141" y="45" w="933" h="622">
+ </geometry>
+ </topwin>
+ <quant>96</quant>
+ <raster>384</raster>
+ </midieditor>
+ <splitter>510 </splitter>
+ <steprec>0</steprec>
+ <midiin>0</midiin>
+ <tool>1</tool>
+ <quantStrength>80</quantStrength>
+ <quantLimit>50</quantLimit>
+ <quantLen>0</quantLen>
+ <playEvents>0</playEvents>
+ <xpos>0</xpos>
+ <xmag>346</xmag>
+ <ypos>390</ypos>
+ <ymag>286</ymag>
+ </pianoroll>
+ </toplevels>
+ </muse>
diff --git a/muse2/utils/Makefile.am b/muse2/utils/Makefile.am
new file mode 100644
index 00000000..8197531c
--- /dev/null
+++ b/muse2/utils/Makefile.am
@@ -0,0 +1,5 @@
+EXTRA_DIST = muse-find-unused-wavs
+
+install-data-local:
+ cp $(EXTRA_DIST) $(DESTDIR)/$(bindir)/
+ chmod a+x $(DESTDIR)/$(bindir)/$(EXTRA_DIST)
diff --git a/muse2/utils/Makefile.in b/muse2/utils/Makefile.in
new file mode 100644
index 00000000..8a9320a2
--- /dev/null
+++ b/muse2/utils/Makefile.in
@@ -0,0 +1,420 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = utils
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal-include.m4 \
+ $(top_srcdir)/m4/alsa.m4 $(top_srcdir)/m4/docbook.m4 \
+ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
+ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
+ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+SOURCES =
+DIST_SOURCES =
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ALSA_CFLAGS = @ALSA_CFLAGS@
+ALSA_LIBS = @ALSA_LIBS@
+AMTAR = @AMTAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DOCBOOKSTYLE = @DOCBOOKSTYLE@
+DOCBOOKTARGETS = @DOCBOOKTARGETS@
+DOT = @DOT@
+DOTPATH = @DOTPATH@
+DOXYGEN = @DOXYGEN@
+DOXYGEN_TREEVIEW = @DOXYGEN_TREEVIEW@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+FLUIDSYNTHDIRS = @FLUIDSYNTHDIRS@
+FST_CFLAGS = @FST_CFLAGS@
+FST_LIBS = @FST_LIBS@
+Fluidsynth_CFLAGS = @Fluidsynth_CFLAGS@
+Fluidsynth_LIBS = @Fluidsynth_LIBS@
+GIVERTCAP = @GIVERTCAP@
+GREP = @GREP@
+HAVEDOT = @HAVEDOT@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JACK_CFLAGS = @JACK_CFLAGS@
+JACK_LIBS = @JACK_LIBS@
+JADE = @JADE@
+LASH_CFLAGS = @LASH_CFLAGS@
+LASH_LIBS = @LASH_LIBS@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LO_CFLAGS = @LO_CFLAGS@
+LO_LIBS = @LO_LIBS@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+MUSECXXFLAGS = @MUSECXXFLAGS@
+NM = @NM@
+NMEDIT = @NMEDIT@
+NSGMLS = @NSGMLS@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PCH = @PCH@
+PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+PYTHON = @PYTHON@
+PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
+PYTHON_INCLUDES = @PYTHON_INCLUDES@
+PYTHON_LIB = @PYTHON_LIB@
+PYTHON_PLATFORM = @PYTHON_PLATFORM@
+PYTHON_PREFIX = @PYTHON_PREFIX@
+PYTHON_VERSION = @PYTHON_VERSION@
+QTDIR_BIN = @QTDIR_BIN@
+QTDIR_INC = @QTDIR_INC@
+QT_LIBS = @QT_LIBS@
+RANLIB = @RANLIB@
+SAMPLERATE_CFLAGS = @SAMPLERATE_CFLAGS@
+SAMPLERATE_LIBS = @SAMPLERATE_LIBS@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SNDFILE_CFLAGS = @SNDFILE_CFLAGS@
+SNDFILE_LIBS = @SNDFILE_LIBS@
+STRIP = @STRIP@
+SUIDBUILD = @SUIDBUILD@
+SUIDINSTALL = @SUIDINSTALL@
+USE_SSE = @USE_SSE@
+UUID_CFLAGS = @UUID_CFLAGS@
+UUID_LIBS = @UUID_LIBS@
+VERSION = @VERSION@
+XMKMF = @XMKMF@
+X_CFLAGS = @X_CFLAGS@
+X_EXTRA_LIBS = @X_EXTRA_LIBS@
+X_LIBS = @X_LIBS@
+X_PRE_LIBS = @X_PRE_LIBS@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+have_docbook = @have_docbook@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+lt_ECHO = @lt_ECHO@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+pkgpyexecdir = @pkgpyexecdir@
+pkgpythondir = @pkgpythondir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+pyexecdir = @pyexecdir@
+pythondir = @pythondir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+synth_fluid = @synth_fluid@
+synth_fluidsynth = @synth_fluidsynth@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+EXTRA_DIST = muse-find-unused-wavs
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu utils/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu utils/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-data-local
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: install-am install-strip
+
+.PHONY: all all-am check check-am clean clean-generic clean-libtool \
+ distclean distclean-generic distclean-libtool distdir dvi \
+ dvi-am html html-am info info-am install install-am \
+ install-data install-data-am install-data-local install-dvi \
+ install-dvi-am install-exec install-exec-am install-html \
+ install-html-am install-info install-info-am install-man \
+ install-pdf install-pdf-am install-ps install-ps-am \
+ install-strip installcheck installcheck-am installdirs \
+ maintainer-clean maintainer-clean-generic mostlyclean \
+ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+ uninstall uninstall-am
+
+
+install-data-local:
+ cp $(EXTRA_DIST) $(DESTDIR)/$(bindir)/
+ chmod a+x $(DESTDIR)/$(bindir)/$(EXTRA_DIST)
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/muse2/utils/muse-find-unused-wavs b/muse2/utils/muse-find-unused-wavs
new file mode 100755
index 00000000..a325e1e0
--- /dev/null
+++ b/muse2/utils/muse-find-unused-wavs
@@ -0,0 +1,64 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+import os
+import string
+import shutil
+
+dirlist = os.listdir(".")
+
+wavs=[]
+
+print "muse-find-unused-wavs - check wav file usage in all *.med files in current dir."
+print ""
+print "This utility scans all med files in the current dir, maps their"
+print "wave file usage to what is currently available in current dir."
+print "The output is printed."
+print "Files no longer used are moved to the subdir 'unused'"
+print "Press enter to continue."
+print ""
+raw_input()
+
+for line in dirlist:
+ if (line.endswith( ".wav")):
+ #print "HA!", line
+ wavs.append(line)
+print "===================================================="
+print "===================================================="
+print " These wave files were found in current directory:\n"
+if wavs == []:
+ print "No files were found."
+ sys.exit(0)
+else:
+ for f in wavs:
+ print f
+
+for line in dirlist:
+ if (line.endswith( ".med") ):
+ #print "HO!", line
+ med = file(line)
+ for line in med:
+ for wav in wavs:
+ if line.find(wav) != -1:
+ #print "found %s removing %s"%(line, wav)
+ wavs.remove(wav)
+
+print "===================================================="
+print " These wave files were unused:\n"
+if wavs == []:
+ print "None"
+else:
+ for f in wavs:
+ print f
+
+ print "moving to new subdir unused, press Enter to continue"
+ raw_input()
+
+ try:
+ os.mkdir('unused')
+ except:
+ pass
+ for f in wavs:
+ shutil.move(f,'unused')
+print "===================================================="
+print "===================================================="
+
diff --git a/muse2/utils/muse-song-convert.py b/muse2/utils/muse-song-convert.py
new file mode 100755
index 00000000..ff2f81b0
--- /dev/null
+++ b/muse2/utils/muse-song-convert.py
@@ -0,0 +1,740 @@
+#!/usr/bin/python
+import sys
+import os
+import string
+
+version = "0.6"
+##########################################
+##########################################
+#
+# MusE song format converter
+#
+#########################################
+#########################################
+
+# blocks to remove:
+blocks = [
+["<segmentsize>","</segmentsize>"],
+["<rtcTicks>","</rtcTicks>"],
+["<useAlsa>", "</useAlsa>"],
+["<useJack>", "</useJack>"],
+["<extendedMidi>", "</extendedMidi>"],
+["<midiExportDivision>", "</midiExportDivision>"],
+["<font", "</font"],
+["<theme>", "</theme>"],
+["_font", "/>"],
+["<show_page_no>","</show_page_no>"],
+["<show_measure_no>","</show_measure_no>"],
+["<paper_width>","</paper_width>"],
+["<paper_height>","</paper_height>"],
+["<top_margin>","</top_margin>"],
+["<bottom_margin>","</bottom_margin>"],
+["<left_margin>","</left_margin>"],
+["<right_margin>","</right_margin>"],
+["<bars_page>","</bars_page>"],
+["<print_scale>","</print_scale>"],
+["<show_track_name>","</show_track_name>"],
+["<activityColor","</activityColor>"],
+["<activityMode>","</activityMode>"],
+["<score>","</score>"],
+["<image>","</image>"],
+["<part_type>","</part_type>"],
+["<show_events>","</show_events>"],
+["<grid>","</grid>"],
+["<printer type","</printer>"],
+["<bigtime visible","</bigtime>"],
+["<transport visible","</transport>"],
+["<audioInput>","</audioInput>"],
+["<audioOutput","</audioOutput>"],
+["<AudioInRoute>","</AudioInRoute>"],
+["<track type=", "<track type="],
+["</track", "</track"],
+["<staff","</staff"],
+["<noteQuant>","</noteQuant"],
+["<restQuant>","</restQuant"],
+["<midiThru>","</midiThru"],
+["<splitpoint>","</splitpoint"],
+]
+
+# To store array of audio groups
+# input, group1,2,3,4 + master
+AudioGroupTags = [
+"<channels>","<connect>","<volume>","<pan>",
+"<mute>","<solo>","<prefader>","<off>"]
+adata=[]
+synths=[]
+clips=[]
+midiports=[]
+
+class MusEConvert:
+ def __init__(self):
+ self.insidePart = False
+ self.insideWaveTrack=False
+ self.currWaveTrackName=""
+
+ # parse string and look for blocks to remove
+ def findAndSkipBlock(self, theFile, currLine):
+ for line in blocks:
+ if string.find(currLine , line[0]) > -1:
+ #print "Skipping %s"%line[0]
+ self.loopUntil(theFile, currLine, line[1])
+ return True
+ return False
+
+ # when a block has been found, loop until the end-tag.
+ def loopUntil(self, theFile, currLine, tagToFind):
+ loopEnd = False
+ if string.find(currLine , tagToFind) > -1:
+ loopEnd = True
+ while loopEnd == False:
+ line = inFile.readline()
+ if string.find(line, tagToFind) > -1:
+ loopEnd = True
+
+ def fixComma(self, theFile, currLine):
+ newStr = string.replace(currLine , ",",".")
+ return newStr
+
+
+ def getSynth(self, theFile, currLine):
+ line = theFile.readline() # <class>
+ clas = self.getSimpleValue(line)
+ line = theFile.readline() # <name>
+ name = self.getSimpleValue(line)
+ line = theFile.readline() # <port>
+ port = self.getSimpleValue(line)
+ line = theFile.readline() # <guiVisible>
+ guiVisible = self.getSimpleValue(line)
+
+ stateInfo = []
+ line = theFile.readline()
+ notFoundStateEnd= True
+ if string.find(line , "<midistate") > -1:
+ notFoundStateEnd = True
+ line = theFile.readline()
+
+ while notFoundStateEnd:
+ if string.find(line , "<event") > -1:
+ event = []
+ event.append(line)
+ notFoundEventEnd = True
+ if string.find(line , "/>") > -1:
+ notFoundEventEnd = False
+ line = theFile.readline()
+ while notFoundEventEnd:
+ if string.find(line , "</event") > -1:
+ notFoundEventEnd = False
+ event.append(line)
+ line = theFile.readline()
+ stateInfo.append(event)
+ if string.find(line , "</midistate") > -1:
+ notFoundStateEnd = False
+
+ # got all events
+ theFile.readline() # <audionode
+ # 0 1 2 3 4
+ return ([clas,name,port,guiVisible,stateInfo])
+
+ def getAudio(self,theFile,currLine, atype, name, idx):
+ line = theFile.readline() # <channels>
+ ch = self.getSimpleValue(line)
+
+ conn = ""
+ if atype == "audiomaster": # don't read any lines
+ pass
+ else:
+ line = theFile.readline() # <connect>
+ conn = self.getSimpleValue(line)
+
+ line = theFile.readline() # <volume>
+ vol = self.getSimpleValue(line)
+ line = theFile.readline() # <pan>
+ pan = self.getSimpleValue(line)
+
+ line = theFile.readline() # <mute>
+ mute = self.getSimpleValue(line)
+ line = theFile.readline() # <solo>
+ solo = self.getSimpleValue(line)
+
+ line = theFile.readline() # <prefader>
+ pre = self.getSimpleValue(line)
+
+ line = theFile.readline() # <off>
+ off = self.getSimpleValue(line)
+
+ line = theFile.readline() # <plugin 1
+ p1=[]
+ p2=[]
+ p3=[]
+ p4=[]
+ if string.find(line , "<plugin") > -1:
+ notFoundPlugEnd = True
+ while notFoundPlugEnd:
+ p1.append(line)
+ line = theFile.readline() # <plugin 1
+ if string.find(line , "</plugin") > -1:
+ p1.append(line)
+ notFoundPlugEnd = False
+
+ line = theFile.readline() # <plugin 2
+ if string.find(line , "<plugin") > -1:
+ notFoundPlugEnd = True
+ while notFoundPlugEnd:
+ p2.append(line)
+ line = theFile.readline() # <plugin 2
+ if string.find(line , "</plugin") > -1:
+ p2.append(line)
+ notFoundPlugEnd = False
+
+ line = theFile.readline() # <plugin 3
+ if string.find(line , "<plugin") > -1:
+ notFoundPlugEnd = True
+ while notFoundPlugEnd:
+ p3.append(line)
+ line = theFile.readline() # <plugin 3
+ if string.find(line , "</plugin") > -1:
+ p3.append(line)
+ notFoundPlugEnd = False
+
+ line = theFile.readline() # <plugin 4
+ if string.find(line , "<plugin") > -1:
+ notFoundPlugEnd = True
+ while notFoundPlugEnd:
+ p4.append(line)
+ line = theFile.readline() # <plugin 4
+ if string.find(line , "</plugin") > -1:
+ p3.append(line)
+ notFoundPlugEnd = False
+
+ print "atype=", atype
+ print "p1=", p1
+ print "p2=", p2
+ print "p3=", p3
+ print "p4=", p4
+
+ return([atype,name,idx,ch,conn,vol,pan,mute,solo,pre,off, p1,p2,p3,p4]) # add them together
+
+ def checkAGroup(self, theFile, currLine):
+ if string.find(currLine , "<audiogroup") > -1:
+ print "AUDIOGROUP"
+ theFile.readline() # <audiogroup>
+ idx = self.getProperty(currLine, "idx")
+ print "idx=",idx
+ data = self.getAudio(theFile,currLine,"audiogroup", "Group %s"%(chr(int(idx)+65)),idx)
+ adata.append(data)
+ theFile.readline() # </audiogroup>
+ return True
+ else:
+ return False
+
+ def checkSynth(self, theFile, currLine):
+ if string.find(currLine , "<synth") > -1:
+ print "SYNTH"
+ synt = self.getSynth(theFile,currLine)
+ data = self.getAudio(theFile,currLine,"synth", synt[1], 0)
+ print "got synth, name=%s route=%s",synt[1], data[5]
+
+ theFile.readline() # </synth>
+ synths.append(synt)
+ adata.append(data)
+
+ return True
+ else:
+ return False
+
+ def checkAMaster(self, theFile, currLine):
+ if string.find(currLine , "<audiomaster") > -1:
+ print "AUDIOMASTER"
+ theFile.readline() # <audiomaster>
+ data = self.getAudio(theFile,currLine,"audiomaster", "Master",-1)
+ adata.append(data)
+ theFile.readline() # </audiomaster>
+ return True
+ else:
+ return False
+
+ def checkAInput(self, theFile, currLine):
+ if string.find(currLine , "<audioinput") > -1:
+ print "AUDIOINPUT"
+ theFile.readline() # <audioinput>
+ idx = self.getProperty(currLine, "idx")
+ data = self.getAudio(theFile,currLine,"audioinput", "In 1",idx)
+ adata.append(data)
+ theFile.readline() # </audioinput>
+ return True
+ else:
+ return False
+
+ # returns the property
+ def getProperty(self, currLine, tag):
+ prePtr = string.find(currLine , tag)
+ if prePtr == -1:
+ return -1
+ firstPtr = string.find(currLine[prePtr:] , "\"")
+ lastPtr = string.find(currLine[firstPtr+prePtr+1:] , "\"")
+ return currLine[firstPtr+prePtr+1:firstPtr+prePtr+lastPtr+1]
+
+ def checkMGroup(self, theFile, currLine):
+ if string.find(currLine , "<midiport") > -1:
+ print "MIDIPORT"
+ idx = self.getProperty(currLine, "idx")
+ line = theFile.readline() # <instrument>
+ inst = self.getSimpleValue(line)
+ line = theFile.readline() # <name>
+ name = self.getSimpleValue(line)
+ line = theFile.readline() # <record>
+ rec = self.getSimpleValue(line)
+ midiports.append([idx, inst, name,rec]) # add them together
+ line = theFile.readline() # </midiport>
+ return True
+ else:
+ return False
+
+
+ # retrieve the value of a simple XML tag
+ # format is important, must be:
+ # <tag>value</tag>
+ def getSimpleValue(self, line):
+ firstPtr = string.find(line, ">") # find end of first tag
+ lastPtr = string.find(line, "</")
+ outStr = line[firstPtr+1:lastPtr]
+ return outStr
+
+ def checkClip(self, theFile, currLine):
+ if string.find(currLine , "<clip>") > -1:
+ if self.insidePart == False:
+ print "CLIP"
+ line = theFile.readline() # <file>
+ fil = self.getSimpleValue(line)
+ line = theFile.readline() # <name>
+ nam = self.getSimpleValue(line)
+ line = theFile.readline() # <name>
+ tick = self.getSimpleValue(line)
+ clips.append([nam, fil, tick]) # add them together
+ line = theFile.readline() # <len>
+ line = theFile.readline() # </clip>
+ else:
+ print "insertClip"
+ clipname = self.getSimpleValue(currLine)
+ for clip in clips:
+ if clip[0] == clipname:
+ outFile.write(" <frame>%s</frame>\n"%(clip[2]))
+ outFile.write(" <file>%s</file>\n"%(clip[1]))
+ return True
+ else:
+ return False
+
+
+
+ def checkPart(self, theFile, currLine):
+ if string.find(currLine , "<part>") > -1:
+ print "PART"
+ self.insidePart = True
+ elif string.find(currLine , "</part>") > -1:
+ print "/PART"
+ self.insidePart = False
+
+ def checkWaveTrack(self, theFile, currLine):
+ if string.find(currLine , "</wavetrack>") > -1:
+ print "/WAVETRACK"
+ self.insideWaveTrack = False
+ return False
+ elif string.find(currLine , "<wavetrack>") > -1:
+ print "WAVETRACK"
+ self.insideWaveTrack = True
+ return False
+
+ if self.insideWaveTrack: # create dummy adata for the routing
+ if string.find(currLine , "<connect>") > -1:
+ con = self.getSimpleValue(currLine)
+
+ #adata.append([atype,name,idx,ch,conn,vol,pan,mute,solo,pre,off, p1,p2,p3,p4])
+ print ["wavetrack", self.currWaveTrackName,0,0,con,0,0,0,0,0,0,0,0,0,0]
+ adata.append(["wavetrack", self.currWaveTrackName,0,0,con,0,0,0,0,0,0,0,0,0,0])
+
+ return True
+
+ elif string.find(currLine , "<audionode") > -1:
+ print "AUDIONODE - in wave track"
+ return True
+ elif string.find(currLine , "</audionode") > -1:
+ print "AUDIONODE - in wave track"
+ return True
+ elif string.find(currLine , "<volume>") > -1:
+ vol = self.getSimpleValue(currLine)
+ outFile.write(" <controller id=\"0\" cur=\"%s\">\n"%vol)
+ outFile.write(" </controller>\n")
+ return True
+ elif string.find(currLine , "<pan>") > -1:
+ pan = self.getSimpleValue(currLine)
+ outFile.write(" <controller id=\"1\" cur=\"%s\">\n"%pan)
+ outFile.write(" </controller>\n")
+ return True
+ return False
+
+ def getWaveTrackName(self, theFile, currLine):
+ if self.insideWaveTrack and not self.insidePart:
+ if string.find(currLine , "<name>") > -1:
+ print "WAVETRACK - NAME"
+ self.currWaveTrackName = self.getSimpleValue(currLine)
+ print "self.currWaveTrackName =", self.currWaveTrackName
+ elif self.insideWaveTrack and self.insidePart:
+ pass
+ else:
+ self.currWaveTrackName = ""
+
+ def checkTriggerForAdd(self, theFile, currLine):
+ if string.find(currLine , "<tempolist") > -1:
+ # we're in business, add ALL stored info:
+ # 1. AudioOutput
+ # 2. AudioInput
+ # 3. AudioGroup
+ # 4. SynthI
+ # 5. Routes
+ #
+ # 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
+ # adata.append([atype,name,idx,ch,conn,vol,pan,mute,solo,pre,off,p1,p2,p3,p4])
+
+ # 1.
+ for line in adata:
+ if line[0] == "audiomaster":
+ #print "amaster"
+ #print line
+ outFile.write(" <AudioOutput>\n")
+ outFile.write(" <name>%s</name>\n"%line[1])
+ outFile.write(" <record>0</record>\n")
+ outFile.write(" <mute>%s</mute>\n"%line[7])
+ outFile.write(" <solo>%s</solo>\n"%line[8])
+ outFile.write(" <off>%s</off>\n"%line[10])
+ outFile.write(" <channels>%s</channels>\n"%line[3])
+ outFile.write(" <height>20</height>\n")
+ outFile.write(" <locked>0</locked>\n")
+ outFile.write(" <prefader>%s</prefader>\n"%line[9])
+ outFile.write(" <automation>1</automation>\n")
+ outFile.write(" <controller id=\"0\" cur=\"%s\">\n"%line[5])
+ outFile.write(" </controller>\n")
+ outFile.write(" <controller id=\"1\" cur=\"%s\">\n"%line[6])
+ outFile.write(" </controller>\n")
+ if line[11] !=[]:
+ print "%s line[11] %s"%(line[1],line[11])
+ for pl in line[11]:
+ outFile.write(pl)
+ if line[12] !=[]:
+ print "%s line[12] %s"%(line[1],line[12])
+ for pl in line[12]:
+ outFile.write(pl)
+ if line[13] !=[]:
+ print "%s line[13] %s"%(line[1],line[13])
+ for pl in line[13]:
+ outFile.write(pl)
+ if line[14] !=[]:
+ print "%s line[14] %s"%(line[1],line[14])
+ for pl in line[14]:
+ outFile.write(pl)
+ outFile.write(" </AudioOutput>\n")
+
+ # 2.
+ for line in adata:
+ if line[0] == "audioinput":
+ outFile.write(" <AudioInput>\n")
+ outFile.write(" <name>%s</name>\n"%line[1])
+ outFile.write(" <record>0</record>\n")
+ outFile.write(" <mute>%s</mute>\n"%line[7])
+ outFile.write(" <solo>%s</solo>\n"%line[8])
+ outFile.write(" <off>%s</off>\n"%line[10])
+ outFile.write(" <channels>%s</channels>\n"%line[3])
+ outFile.write(" <height>20</height>\n")
+ outFile.write(" <locked>0</locked>\n")
+ outFile.write(" <prefader>%s</prefader>\n"%line[9])
+ outFile.write(" <automation>1</automation>\n")
+ outFile.write(" <controller id=\"0\" cur=\"%s\">\n"%line[5])
+ outFile.write(" </controller>\n")
+ outFile.write(" <controller id=\"1\" cur=\"%s\">\n"%line[6])
+ outFile.write(" </controller>\n")
+ if line[11] !=[]:
+ print "%s line[11] %s"%(line[1],line[11])
+ for pl in line[11]:
+ outFile.write(pl)
+ if line[12] !=[]:
+ print "%s line[12] %s"%(line[1],line[12])
+ for pl in line[12]:
+ outFile.write(pl)
+ if line[13] !=[]:
+ print "%s line[13] %s"%(line[1],line[13])
+ for pl in line[13]:
+ outFile.write(pl)
+ if line[14] !=[]:
+ print "%s line[14] %s"%(line[1],line[14])
+ for pl in line[14]:
+ outFile.write(pl)
+ outFile.write(" </AudioInput>\n")
+
+ # 3.
+ for line in adata:
+ if line[0] == "audiogroup":
+ outFile.write(" <AudioGroup>\n")
+ outFile.write(" <name>%s</name>\n"%line[1])
+ outFile.write(" <record>0</record>\n")
+ outFile.write(" <mute>%s</mute>\n"%line[7])
+ outFile.write(" <solo>%s</solo>\n"%line[8])
+ outFile.write(" <off>%s</off>\n"%line[10])
+ outFile.write(" <channels>%s</channels>\n"%line[3])
+ outFile.write(" <height>20</height>\n")
+ outFile.write(" <locked>0</locked>\n")
+ outFile.write(" <prefader>%s</prefader>\n"%line[9])
+ outFile.write(" <automation>1</automation>\n")
+ outFile.write(" <controller id=\"0\" cur=\"%s\">\n"%line[5])
+ outFile.write(" </controller>\n")
+ outFile.write(" <controller id=\"1\" cur=\"%s\">\n"%line[6])
+ outFile.write(" </controller>\n")
+ if line[11] !=[]:
+ print "%s line[11] %s"%(line[1],line[11])
+ for pl in line[11]:
+ outFile.write(pl)
+ if line[12] !=[]:
+ print "%s line[12] %s"%(line[1],line[12])
+ for pl in line[12]:
+ outFile.write(pl)
+ if line[13] !=[]:
+ print "%s line[13] %s"%(line[1],line[13])
+ for pl in line[13]:
+ outFile.write(pl)
+ if line[14] !=[]:
+ print "%s line[14] %s"%(line[1],line[14])
+ for pl in line[14]:
+ outFile.write(pl)
+ outFile.write(" </AudioGroup>\n")
+
+ # 4.
+ for line in adata:
+ if line[0] == "synth":
+ outFile.write(" <SynthI>\n")
+ outFile.write(" <name>%s</name>\n"%line[1])
+ outFile.write(" <record>0</record>\n")
+ outFile.write(" <mute>%s</mute>\n"%line[7])
+ outFile.write(" <solo>%s</solo>\n"%line[8])
+ outFile.write(" <off>%s</off>\n"%line[10])
+ outFile.write(" <channels>%s</channels>\n"%line[3])
+ outFile.write(" <height>20</height>\n")
+ outFile.write(" <locked>0</locked>\n")
+ outFile.write(" <prefader>%s</prefader>\n"%line[9])
+ outFile.write(" <automation>1</automation>\n")
+ outFile.write(" <controller id=\"0\" cur=\"%s\">\n"%line[5])
+ outFile.write(" </controller>\n")
+ outFile.write(" <controller id=\"1\" cur=\"%s\">\n"%line[6])
+ outFile.write(" </controller>\n")
+
+# event data
+ for synt in synths:
+ if synt[1] == line[1]:
+ # we found this synth, proceed
+ outFile.write(" <class>%s</class>\n"%synt[0])
+ outFile.write(" <port>%s</port>\n"%synt[2])
+ outFile.write(" <guiVisible>%s</guiVisible>\n"%synt[3])
+ outFile.write(" <midistate>\n")
+
+ if synt[0] == "fluidsynth":
+ # Woaaahh, special treatment, do I have something for you!!!!
+ self.processFluid(synt)
+ else:
+ # Other synth
+ for state in synt[4]:
+ for evl in state:
+ outFile.write(evl)
+
+ outFile.write(" </midistate>\n")
+
+
+
+ #return ([clas,name,port,guiVisible,stateInfo])
+
+ outFile.write(" </SynthI>\n")
+
+ # 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
+ # adata.append([atype,name,idx,ch,conn,vol,pan,mute,solo,pre,off,p1,p2,p3,p4])
+
+ # 5. - create all routes
+ for line in adata:
+ for line2 in adata:
+ if line[4] == line2[1]:
+ print ">route %s line[4]=%s %s line2[1]=%s"%(line[1],line[4],line2[1],line2[1])
+ outFile.write(" <Route>\n")
+ outFile.write(" <srcNode>%s</srcNode>\n"%line[1])
+ outFile.write(" <dstNode>%s</dstNode>\n"%line2[1])
+ outFile.write(" </Route>\n")
+ else:
+ print "-route %s line[4]=%s %s line2[1]=%s"%(line[1],line[4],line2[1],line2[1])
+
+ outFile.write(" <Route>\n")
+ outFile.write(" <srcNode>1:Master</srcNode>\n")
+ outFile.write(" <dstNode>alsa_pcm:playback_1</dstNode>\n")
+ outFile.write(" </Route>\n")
+ outFile.write(" <Route>\n")
+ outFile.write(" <srcNode>2:Master</srcNode>\n")
+ outFile.write(" <dstNode>alsa_pcm:playback_2</dstNode>\n")
+ outFile.write(" </Route>\n")
+
+ def processFluid(self, fluid):
+ # here we go
+ print "Fluidsynth!!"
+ #for state in fluid[4]:
+ # for evl in state:
+ # outFile.write(evl)
+
+ # ok, let's convert the first event
+
+ outdata=" "
+ nbrOfFonts=0
+ counter2f = 0
+ externalConnects=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
+ externalConnects2f=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
+ for event in fluid[4]:
+ hexstr = self.convertEventToHexStr(event)
+ print hexstr
+ counter1 = 0
+ counter2 = 0
+ if hexstr[0] == "28":
+ externalConnects[nbrOfFonts] = hexstr[1]
+ nbrOfFonts = nbrOfFonts+1
+ for h in hexstr[2:-1]:
+ outdata = outdata + "%s "%h
+ counter1 == counter1 + 1
+ counter2 == counter2 + 1
+ if counter1 > 9:
+ outdata = outdata + "\n "
+ counter1= 0
+
+ elif hexstr[0] == "2f":
+ # ext_id preset channel
+ externalConnects2f[counter2f] = "%s %s %s "%(hexstr[1],hexstr[3], "00") #hexstr[2])
+ counter2f=counter2f+1
+ # translate
+ # initStr = "f2 00 03 01 2f 00" # fluid v3 , one soundfont, lastdir= "/"
+
+
+
+ outFile.write(" <event type=\"2\" datalen=\"2000\">\n") #%(len(hex)-3))
+ outFile.write(" f2 00 03 0%X 2f 00\n"%nbrOfFonts)
+ outFile.write(outdata)
+ outFile.write("\n ff ")
+ for i in range(nbrOfFonts):
+ outFile.write("%s "%(externalConnects[i]))
+ outFile.write("\n ")
+ for ext in externalConnects2f:
+ outFile.write(ext)
+ outFile.write("\n 00 00 00 00 00 00 00 00\n")
+ outFile.write(" 00 00 00 00 ff ff ff ff 00 00 00 00 00 00\n")
+
+ #outFile.write(" ff 00 00 81 00 7f 81 00 7f\n")
+# outFile.write(" 81 00 7f 81 00 7f 81 00 7f 81 00 7f 81 00 7f 81\n")
+# outFile.write(" 00 7f 81 00 7f 81 00 7f 81 00 7f 81 00 7f 81 00\n")
+# outFile.write(" 7f 81 00 7f 81 00 7f 81 00 00 00 00 00 00 00 00\n")
+ outFile.write(" </event>\n")
+
+
+
+ def convertEventToHexStr(self, event):
+ # here we go
+ newLine=[]
+ for line in event[1:-1]:
+ splitLine = string.split(line)
+ nbr = len(splitLine)
+ #print nbr
+ #print splitLine
+
+ count = 0
+ while count < nbr:
+ newLine.append("%s%s"%(splitLine[count][1],splitLine[count+1][1]))
+ count = count + 2
+
+ #print newLine
+
+ return newLine
+
+
+
+
+def help():
+ print "Utility to convert MusE 0.6 songs to 0.7 or newer song format."
+ print "Usage: muse-convert <song file to convert>"
+ print ""
+ print "Please report any problems with this script to rj@spamatica.se"
+ print "Author: Robert Jonsson, 2005, Copylefted under the GPL"
+
+########################
+# --- Main program --- #
+########################
+
+print "MusE Song converter %s"%version
+print ""
+
+if len(sys.argv) < 2:
+ help()
+ sys.exit("")
+
+print "Processing file ", sys.argv[1]
+print ""
+# step 1 - remove malformed data
+inFile = file(sys.argv[1])
+
+outFile = file(sys.argv[1]+".tmp","w")
+fileEnd = False
+
+convert = MusEConvert()
+
+#take care of first few lines:
+outFile.write(inFile.readline()) # <?xml
+line = inFile.readline() # <muse string
+if string.find(line, "<muse version=\"1.0\">") == -1:
+ print "Unable to confirm that this is a song file with the old format, aborting..."
+ sys.exit("")
+outFile.write("<muse version=\"2.0\" comment=\"converted by muse converter v%s\">\n"%version)
+
+
+while fileEnd == False:
+ line = inFile.readline()
+ if line == "":
+ fileEnd = True
+ newLine = convert.fixComma(inFile,line)
+ outFile.write(newLine)
+
+inFile.close()
+outFile.close()
+
+#sys.exit("")
+inFile = file(sys.argv[1]+".tmp","r")
+outFile = file(sys.argv[1]+".converted","w")
+fileEnd = False
+
+while fileEnd == False:
+ line = inFile.readline()
+ if line == "":
+ fileEnd = True
+
+ convert.checkPart(inFile,line) # only state variables
+ convert.getWaveTrackName(inFile,line) # only state variables
+
+ convert.checkTriggerForAdd(inFile,line) # insert routes+stuff?
+
+ if convert.findAndSkipBlock(inFile, line) == True:
+ pass
+ elif convert.checkAGroup(inFile,line):
+ pass
+ elif convert.checkAMaster(inFile,line):
+ pass
+ elif convert.checkSynth(inFile,line):
+ pass
+ elif convert.checkAInput(inFile,line):
+ pass
+ #elif convert.checkMGroup(inFile,line):
+ # pass
+ elif convert.checkClip(inFile,line):
+ pass
+ elif convert.checkWaveTrack(inFile,line): # only state variables
+ pass
+ else:
+ outFile.write(line)
+
+print ""
+print "Converted!"
+print ""
diff --git a/muse2/xpm/Makefile.am b/muse2/xpm/Makefile.am
new file mode 100644
index 00000000..e04334c4
--- /dev/null
+++ b/muse2/xpm/Makefile.am
@@ -0,0 +1 @@
+EXTRA_DIST = $(wildcard *.xpm) Makefile.in
diff --git a/muse2/xpm/Makefile.in b/muse2/xpm/Makefile.in
new file mode 100644
index 00000000..3338e911
--- /dev/null
+++ b/muse2/xpm/Makefile.in
@@ -0,0 +1,415 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = xpm
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal-include.m4 \
+ $(top_srcdir)/m4/alsa.m4 $(top_srcdir)/m4/docbook.m4 \
+ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
+ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
+ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+SOURCES =
+DIST_SOURCES =
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ALSA_CFLAGS = @ALSA_CFLAGS@
+ALSA_LIBS = @ALSA_LIBS@
+AMTAR = @AMTAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DOCBOOKSTYLE = @DOCBOOKSTYLE@
+DOCBOOKTARGETS = @DOCBOOKTARGETS@
+DOT = @DOT@
+DOTPATH = @DOTPATH@
+DOXYGEN = @DOXYGEN@
+DOXYGEN_TREEVIEW = @DOXYGEN_TREEVIEW@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+FLUIDSYNTHDIRS = @FLUIDSYNTHDIRS@
+FST_CFLAGS = @FST_CFLAGS@
+FST_LIBS = @FST_LIBS@
+Fluidsynth_CFLAGS = @Fluidsynth_CFLAGS@
+Fluidsynth_LIBS = @Fluidsynth_LIBS@
+GIVERTCAP = @GIVERTCAP@
+GREP = @GREP@
+HAVEDOT = @HAVEDOT@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JACK_CFLAGS = @JACK_CFLAGS@
+JACK_LIBS = @JACK_LIBS@
+JADE = @JADE@
+LASH_CFLAGS = @LASH_CFLAGS@
+LASH_LIBS = @LASH_LIBS@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LO_CFLAGS = @LO_CFLAGS@
+LO_LIBS = @LO_LIBS@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+MUSECXXFLAGS = @MUSECXXFLAGS@
+NM = @NM@
+NMEDIT = @NMEDIT@
+NSGMLS = @NSGMLS@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PCH = @PCH@
+PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+PYTHON = @PYTHON@
+PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
+PYTHON_INCLUDES = @PYTHON_INCLUDES@
+PYTHON_LIB = @PYTHON_LIB@
+PYTHON_PLATFORM = @PYTHON_PLATFORM@
+PYTHON_PREFIX = @PYTHON_PREFIX@
+PYTHON_VERSION = @PYTHON_VERSION@
+QTDIR_BIN = @QTDIR_BIN@
+QTDIR_INC = @QTDIR_INC@
+QT_LIBS = @QT_LIBS@
+RANLIB = @RANLIB@
+SAMPLERATE_CFLAGS = @SAMPLERATE_CFLAGS@
+SAMPLERATE_LIBS = @SAMPLERATE_LIBS@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SNDFILE_CFLAGS = @SNDFILE_CFLAGS@
+SNDFILE_LIBS = @SNDFILE_LIBS@
+STRIP = @STRIP@
+SUIDBUILD = @SUIDBUILD@
+SUIDINSTALL = @SUIDINSTALL@
+USE_SSE = @USE_SSE@
+UUID_CFLAGS = @UUID_CFLAGS@
+UUID_LIBS = @UUID_LIBS@
+VERSION = @VERSION@
+XMKMF = @XMKMF@
+X_CFLAGS = @X_CFLAGS@
+X_EXTRA_LIBS = @X_EXTRA_LIBS@
+X_LIBS = @X_LIBS@
+X_PRE_LIBS = @X_PRE_LIBS@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+have_docbook = @have_docbook@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+lt_ECHO = @lt_ECHO@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+pkgpyexecdir = @pkgpyexecdir@
+pkgpythondir = @pkgpythondir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+pyexecdir = @pyexecdir@
+pythondir = @pythondir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+synth_fluid = @synth_fluid@
+synth_fluidsynth = @synth_fluidsynth@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+EXTRA_DIST = $(wildcard *.xpm) Makefile.in
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu xpm/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu xpm/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: install-am install-strip
+
+.PHONY: all all-am check check-am clean clean-generic clean-libtool \
+ distclean distclean-generic distclean-libtool distdir dvi \
+ dvi-am html html-am info info-am install install-am \
+ install-data install-data-am install-dvi install-dvi-am \
+ install-exec install-exec-am install-html install-html-am \
+ install-info install-info-am install-man install-pdf \
+ install-pdf-am install-ps install-ps-am install-strip \
+ installcheck installcheck-am installdirs maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-generic \
+ mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/muse2/xpm/addtrack_addmiditrack.xpm b/muse2/xpm/addtrack_addmiditrack.xpm
new file mode 100644
index 00000000..fb1733b5
--- /dev/null
+++ b/muse2/xpm/addtrack_addmiditrack.xpm
@@ -0,0 +1,76 @@
+/* XPM */
+static const char * addtrack_addmiditrack_xpm[] = {
+"16 16 57 1",
+" c None",
+". c #BABABA",
+"+ c #BEBEBE",
+"@ c #C2C2C2",
+"# c #C4C4C4",
+"$ c #C8C8C8",
+"% c #CDCDCD",
+"& c #C3C3C3",
+"* c #BDBDBD",
+"= c #000000",
+"- c #C6C6C6",
+"; c #D2D2D2",
+"> c #DEDEDE",
+", c #E9E9E9",
+"' c #CCCCCC",
+") c #CECECE",
+"! c #CFCFCF",
+"~ c #C9C9C9",
+"{ c #D3D3D3",
+"] c #DFDFDF",
+"^ c #E8E8E8",
+"/ c #CBCBCB",
+"( c #D0D0D0",
+"_ c #D6D6D6",
+": c #D1D1D1",
+"< c #E7E7E7",
+"[ c #D5D5D5",
+"} c #D9D9D9",
+"| c #DDDDDD",
+"1 c #DBDBDB",
+"2 c #D7D7D7",
+"3 c #E6E6E6",
+"4 c #E0E0E0",
+"5 c #E2E2E2",
+"6 c #808080",
+"7 c #D4D4D4",
+"8 c #E5E5E5",
+"9 c #404000",
+"0 c #E3E3E3",
+"a c #D8D8D8",
+"b c #CACACA",
+"c c #DADADA",
+"d c #E1E1E1",
+"e c #EBEBEB",
+"f c #F0F0F0",
+"g c #EDEDED",
+"h c #EFEFEF",
+"i c #F1F1F1",
+"j c #F3F3F3",
+"k c #ECECEC",
+"l c #EAEAEA",
+"m c #EEEEEE",
+"n c #F4F4F4",
+"o c #F5F5F5",
+"p c #F6F6F6",
+"q c #E4E4E4",
+"r c #DCDCDC",
+".+@#$%%&*==+-;>,",
+"*@$');!$@===~{]^",
+"&/(___:%$====_]<",
+"[}|1}2{(%=/==2>3",
+"456|6}67:=)!=[|8",
+"^9999999{=)99990",
+",^6|6a6_{='b6{c5",
+"386|6a627='b6{15",
+"086>6cca_=()6_]8",
+"d3656]====_26>3e",
+"d9993=====|9999f",
+"0,6g6=====836hij",
+"8kfifh===l,lmino",
+",mijjjimmkllghjp",
+"khiiiffml<8q8lfn",
+"kkkgeke^84r1r5,f"};
diff --git a/muse2/xpm/addtrack_audiogroup.xpm b/muse2/xpm/addtrack_audiogroup.xpm
new file mode 100644
index 00000000..3058b2f6
--- /dev/null
+++ b/muse2/xpm/addtrack_audiogroup.xpm
@@ -0,0 +1,242 @@
+/* XPM */
+static const char * addtrack_audiogroup_xpm[] = {
+"16 16 223 2",
+" c None",
+". c #D1D128",
+"+ c #D9D939",
+"@ c #35350F",
+"# c #E5E559",
+"$ c #F6F681",
+"% c #F9F9B1",
+"& c #F0F087",
+"* c #F3F37E",
+"= c #F7F774",
+"- c #FBFB6F",
+"; c #FDFD6B",
+"> c #F9F90D",
+", c #F5F511",
+"' c #EDED17",
+") c #DEDE20",
+"! c #EBEB1E",
+"~ c #EFEF2B",
+"{ c #44440B",
+"] c #FAFA89",
+"^ c #FCFC91",
+"/ c #FEFEB3",
+"( c #FDFDC1",
+"_ c #FEFEAE",
+": c #FDFDB7",
+"< c #FDFDAB",
+"[ c #FEFEA6",
+"} c #FEFEA4",
+"| c #FCFC6C",
+"1 c #F9F976",
+"2 c #EAEA2C",
+"3 c #DADA3A",
+"4 c #F4F417",
+"5 c #FBFB73",
+"6 c #505028",
+"7 c #FAFA95",
+"8 c #FEFEC9",
+"9 c #FFFFB4",
+"0 c #36361F",
+"a c #3E3E1E",
+"b c #616133",
+"c c #75752D",
+"d c #9C9C3F",
+"e c #FEFEA3",
+"f c #FCFC6D",
+"g c #F6F679",
+"h c #EFEF87",
+"i c #EAEA92",
+"j c #FDFD6E",
+"k c #323200",
+"l c #474702",
+"m c #252501",
+"n c #111100",
+"o c #0A0A00",
+"p c #0E0E00",
+"q c #161600",
+"r c #1F1F00",
+"s c #2B2B01",
+"t c #393901",
+"u c #3C3C01",
+"v c #3B3B01",
+"w c #343400",
+"x c #E3E393",
+"y c #FEFE69",
+"z c #535300",
+"A c #FFFF13",
+"B c #FFFF7A",
+"C c #FFFFB7",
+"D c #56564F",
+"E c #40403D",
+"F c #1C1C13",
+"G c #47473B",
+"H c #4A4A3A",
+"I c #FBFBA8",
+"J c #F0F070",
+"K c #F2F26E",
+"L c #EBEB73",
+"M c #E4E495",
+"N c #FEFE08",
+"O c #3C3C00",
+"P c #FFFF09",
+"Q c #FFFF6F",
+"R c #FFFFAD",
+"S c #FFFFB5",
+"T c #FFFFBC",
+"U c #FFFFBA",
+"V c #FFFFB2",
+"W c #FCFCAA",
+"X c #F9F9A6",
+"Y c #EFEF08",
+"Z c #E1E10A",
+"` c #DEDE1E",
+" . c #DADA4D",
+".. c #FDFD08",
+"+. c #3E3E00",
+"@. c #DEDE5A",
+"#. c #FFFFA4",
+"$. c #FFFFA7",
+"%. c #41413D",
+"&. c #4D4D4D",
+"*. c #232323",
+"=. c #3E3E3E",
+"-. c #626262",
+";. c #F4F467",
+">. c #F8F8A3",
+",. c #F2F2A4",
+"'. c #F2F2AC",
+"). c #EBEB90",
+"!. c #FBFB09",
+"~. c #FEFE6A",
+"{. c #494900",
+"]. c #1E1E00",
+"^. c #464646",
+"/. c #000000",
+"(. c #EBEB8F",
+"_. c #F9F90C",
+":. c #FEFE6D",
+"<. c #575702",
+"[. c #FFFF06",
+"}. c #FFFF01",
+"|. c #FFFF67",
+"1. c #525252",
+"2. c #6B6B6B",
+"3. c #EFEF0A",
+"4. c #F2F2A2",
+"5. c #ECEC68",
+"6. c #EAEA76",
+"7. c #E9E991",
+"8. c #F7F710",
+"9. c #FEFE71",
+"0. c #4E4E01",
+"a. c #FFFF05",
+"b. c #FFFF7E",
+"c. c #FFFF8A",
+"d. c #FFFF89",
+"e. c #FDFDAF",
+"f. c #FAFAA7",
+"g. c #EFEF65",
+"h. c #F0F068",
+"i. c #EBEB72",
+"j. c #E4E491",
+"k. c #F3F317",
+"l. c #FDFD79",
+"m. c #414101",
+"n. c #FFFF0D",
+"o. c #FFFFA3",
+"p. c #4A4A4A",
+"q. c #F8F81F",
+"r. c #F8F8A6",
+"s. c #F3F3A6",
+"t. c #EFEF6E",
+"u. c #F0F07D",
+"v. c #EEEE23",
+"w. c #FCFC85",
+"x. c #303001",
+"y. c #181800",
+"z. c #0B0B00",
+"A. c #030300",
+"B. c #050500",
+"C. c #0D0D00",
+"D. c #0F0F00",
+"E. c #51514B",
+"F. c #F0F081",
+"G. c #E3E337",
+"H. c #F8F894",
+"I. c #222201",
+"J. c #FDFD32",
+"K. c #FCFC78",
+"L. c #FCFC79",
+"M. c #494949",
+"N. c #40403C",
+"O. c #2C2C21",
+"P. c #676760",
+"Q. c #FCFCA6",
+"R. c #FBFB81",
+"S. c #F8F880",
+"T. c #F5F583",
+"U. c #E9E939",
+"V. c #E9E92A",
+"W. c #F0F0AB",
+"X. c #151500",
+"Y. c #F6F65C",
+"Z. c #F9F97C",
+"`. c #F7F77C",
+" + c #EEEE9B",
+".+ c #F8F888",
+"++ c #F9F98F",
+"@+ c #FDFD94",
+"#+ c #FDFD91",
+"$+ c #F6F685",
+"%+ c #F7F73C",
+"&+ c #F1F138",
+"*+ c #EBEB38",
+"=+ c #E5E53C",
+"-+ c #D8D844",
+";+ c #F3F392",
+">+ c #E5E54E",
+",+ c #F0F025",
+"'+ c #E9E98B",
+")+ c #ECEC87",
+"!+ c #EEEE8B",
+"~+ c #F0F08E",
+"{+ c #F4F491",
+"]+ c #F6F68F",
+"^+ c #F4F440",
+"/+ c #F2F237",
+"(+ c #EDED30",
+"_+ c #E7E72D",
+":+ c #DFDF2D",
+"<+ c #D5D53F",
+"[+ c #EAEA93",
+"}+ c #D7D73F",
+"|+ c #D2D234",
+"1+ c #F1F112",
+"2+ c #CECE2A",
+"3+ c #D1D12C",
+"4+ c #D7D731",
+"5+ c #DBDB33",
+"6+ c #E3E333",
+"7+ c #DBDB42",
+"8+ c #EDED1D",
+"9+ c #E7E71A",
+"0+ c #B9B92D",
+". + @ # $ % & * = - ; ; > , ' ) ",
+"! ~ { ] ^ / ( _ : < [ } | 1 2 3 ",
+"4 5 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 y O P Q R S T U V W X Y Z ` .",
+"..y +.@.#.$.%.&.*.=.-.;.>.,.'.).",
+"!.~.{.t ].o ^././././././././.(.",
+"_.:.<.[.}.|.1.=.=.=.2.3.4.5.6.7.",
+"8.9.0.P a.#.Q 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./././.A.B.z.C.D.E.F.",
+"G.H.I.J.K.L.M.^.N.O.P.Q.R.S.T.U.",
+"V.W.X.Y.Z.`. +.+++@+#+$+%+&+*+=+",
+"-+;+z.>+,+'+)+!+~+{+]+^+/+(+_+:+",
+"<+[+A.}+|+1+2+3+4+5+6+2 7+8+9+0+"};
diff --git a/muse2/xpm/addtrack_audioinput.xpm b/muse2/xpm/addtrack_audioinput.xpm
new file mode 100644
index 00000000..acac5d2c
--- /dev/null
+++ b/muse2/xpm/addtrack_audioinput.xpm
@@ -0,0 +1,32 @@
+/* XPM */
+static const char * addtrack_audioinput_xpm[] = {
+"16 16 13 1",
+" c None",
+". c #350000",
+"+ c #D50000",
+"@ c #FF0000",
+"# c #B30000",
+"$ c #5E0000",
+"% c #000000",
+"& c #0B0000",
+"* c #7F0000",
+"= c #6F0000",
+"- c #990000",
+"; c #550000",
+"> c #840000",
+"..+@@@@#+@++++++",
+"$$$+++#+++++++++",
+".%%.@+@+++++@@@+",
+"+.&&.#+++@@@@*@+",
+"@@*%..+@@@@@*$@@",
+"@@+=...++@@-*$@+",
+"++@+$...+@*.%$++",
+"++@+@$....$%%;@@",
+"@@++@@.%...&&$@+",
+"+@++@@+;&&.%%*+@",
+"+@++@+.;&.&%%*+@",
+"++#++;;..%&%%=@@",
+"@@++>$.%&&&.;*@@",
+"@@@-;;======*-++",
+"++++###+#+#+++@@",
+"@@@@++++@#+@@@@@"};
diff --git a/muse2/xpm/addtrack_audiooutput.xpm b/muse2/xpm/addtrack_audiooutput.xpm
new file mode 100644
index 00000000..7d9353a4
--- /dev/null
+++ b/muse2/xpm/addtrack_audiooutput.xpm
@@ -0,0 +1,128 @@
+/* XPM */
+static const char * addtrack_audiooutput_xpm[] = {
+"16 16 109 2",
+" c None",
+". c #00B100",
+"+ c #00BA00",
+"@ c #00C900",
+"# c #00B700",
+"$ c #00B900",
+"% c #00B800",
+"& c #00C300",
+"* c #00C200",
+"= c #00CD00",
+"- c #00F000",
+"; c #00E600",
+"> c #00F200",
+", c #00ED00",
+"' c #009A00",
+") c #009800",
+"! c #00A700",
+"~ c #00B500",
+"{ c #00C600",
+"] c #00C800",
+"^ c #00E700",
+"/ c #00CA00",
+"( c #00CE00",
+"_ c #00D000",
+": c #00D400",
+"< c #00D100",
+"[ c #00DF00",
+"} c #00D600",
+"| c #007900",
+"1 c #00AC00",
+"2 c #00AA00",
+"3 c #00B000",
+"4 c #020803",
+"5 c #060F06",
+"6 c #060E06",
+"7 c #061207",
+"8 c #061107",
+"9 c #020903",
+"0 c #00CC00",
+"a c #006E00",
+"b c #008600",
+"c c #009B00",
+"d c #00C500",
+"e c #0D140D",
+"f c #007700",
+"g c #008000",
+"h c #00AE00",
+"i c #00BE00",
+"j c #00CB00",
+"k c #002100",
+"l c #060C06",
+"m c #0D1A0E",
+"n c #00E200",
+"o c #006700",
+"p c #009400",
+"q c #00C400",
+"r c #00D300",
+"s c #0D200E",
+"t c #0D150D",
+"u c #00EC00",
+"v c #007E00",
+"w c #009600",
+"x c #00AB00",
+"y c #00C100",
+"z c #00E900",
+"A c #00C700",
+"B c #008D00",
+"C c #00A000",
+"D c #00BB00",
+"E c #00D800",
+"F c #00EA00",
+"G c #00BD00",
+"H c #00BC00",
+"I c #0D1E0E",
+"J c #00EE00",
+"K c #009D00",
+"L c #00A400",
+"M c #00A800",
+"N c #00DC00",
+"O c #00DB00",
+"P c #00DA00",
+"Q c #061A07",
+"R c #00F100",
+"S c #00D700",
+"T c #00CF00",
+"U c #00FD00",
+"V c #00D200",
+"W c #062008",
+"X c #0D240F",
+"Y c #00D900",
+"Z c #002400",
+"` c #00FC00",
+" . c #073808",
+".. c #060906",
+"+. c #0D280F",
+"@. c #009F00",
+"#. c #00E000",
+"$. c #00F400",
+"%. c #008F00",
+"&. c #009E00",
+"*. c #00DD00",
+"=. c #00EB00",
+"-. c #008700",
+";. c #008B00",
+">. c #008900",
+",. c #008A00",
+"'. c #009200",
+"). c #009900",
+"!. c #00DE00",
+". + @ # $ % & * & @ = - ; > , ; ",
+"' ) ! ~ { ] ^ ; / ( _ : @ < [ } ",
+"| 1 2 3 4 5 5 5 6 7 7 8 7 9 0 & ",
+"a b c d < 7 7 e e e e e 6 7 [ } ",
+"f g h i j _ k l e e e e m 8 n ; ",
+"o p 2 + q r } 7 s m t t t 8 ; u ",
+"v w x * ] @ y { m t l e t 8 z A ",
+"B C $ & q + D m m t t m t 8 E F ",
+"C $ & G H $ m m e I I m e 8 J J ",
+"K L x 2 M m m m m N m I m 8 N _ ",
+"A = O P Q m m s + * i I s 6 N R ",
+"; ^ ^ m m m s S j T n N 7 I J U ",
+"V : W t e X . @ < r . ~ Y Z z ` ",
+"Y W ...+.y % 0 q @.$ i A #.[ $.",
+"m m e m @ N / . %.&.C 3 D * *.=.",
+"m s m R D d . -.;.>.,.'.).# 0 !."};
diff --git a/muse2/xpm/addtrack_auxsend.xpm b/muse2/xpm/addtrack_auxsend.xpm
new file mode 100644
index 00000000..450e3efd
--- /dev/null
+++ b/muse2/xpm/addtrack_auxsend.xpm
@@ -0,0 +1,95 @@
+/* XPM */
+static const char * addtrack_auxsend_xpm[] = {
+"16 16 76 1",
+" c None",
+". c #000000",
+"+ c #00FDFD",
+"@ c #00EBEB",
+"# c #00EFEF",
+"$ c #00DFDF",
+"% c #00C9C9",
+"& c #00AEAE",
+"* c #009494",
+"= c #00A4A4",
+"- c #00CDCD",
+"; c #00E1E1",
+"> c #00E0E0",
+", c #00E9E9",
+"' c #00FAFA",
+") c #00F2F2",
+"! c #00E3E3",
+"~ c #00CECE",
+"{ c #00B5B5",
+"] c #009D9D",
+"^ c #00B4B4",
+"/ c #00CACA",
+"( c #00DCDC",
+"_ c #00E5E5",
+": c #00F9F9",
+"< c #00F0F0",
+"[ c #00F3F3",
+"} c #00E7E7",
+"| c #00D5D5",
+"1 c #00C0C0",
+"2 c #00ACAC",
+"3 c #009292",
+"4 c #00B8B8",
+"5 c #00CFCF",
+"6 c #00E4E4",
+"7 c #00F1F1",
+"8 c #00FFFF",
+"9 c #00D3D3",
+"0 c #00C3C3",
+"a c #00B2B2",
+"b c #00B6B6",
+"c c #00CCCC",
+"d c #00E2E2",
+"e c #00F7F7",
+"f c #00ECEC",
+"g c #00DEDE",
+"h c #00D1D1",
+"i c #00A6A6",
+"j c #00BABA",
+"k c #00E8E8",
+"l c #00DBDB",
+"m c #00DDDD",
+"n c #00FCFC",
+"o c #00FEFE",
+"p c #00C8C8",
+"q c #00D0D0",
+"r c #00C6C6",
+"s c #00EEEE",
+"t c #00CBCB",
+"u c #009696",
+"v c #00ADAD",
+"w c #007F7F",
+"x c #00DADA",
+"y c #00F8F8",
+"z c #00D2D2",
+"A c #00C2C2",
+"B c #00D4D4",
+"C c #00FBFB",
+"D c #00EAEA",
+"E c #007A7A",
+"F c #00BDBD",
+"G c #00D7D7",
+"H c #008B8B",
+"I c #00B0B0",
+"J c #00C5C5",
+"K c #00EDED",
+".........+@#$%&*",
+"=-;>,.....')!~{]",
+"=^/(_:<....[}|12",
+"34567@#!8...990a",
+"]bc|def!67...gh0",
+"ij5|#k>.........",
+"^0cl.mno.......p",
+"0qr...s#8.....;t",
+"j0.....8)8...@9^",
+"c.......88o.[6ru",
+".........7dfd~vw",
+"/x(...)88#nyfzaw",
+"AB!_...88#CeDh&E",
+"F0BGf....oCe$c&H",
+"Ih;#@+.....@7>Ji",
+"Iq!<Ko8........."};
diff --git a/muse2/xpm/addtrack_drumtrack.xpm b/muse2/xpm/addtrack_drumtrack.xpm
new file mode 100644
index 00000000..807cb5d4
--- /dev/null
+++ b/muse2/xpm/addtrack_drumtrack.xpm
@@ -0,0 +1,102 @@
+/* XPM */
+static const char * addtrack_drumtrack_xpm[] = {
+"16 16 83 1",
+" c None",
+". c #707070",
+"+ c #7C7C7C",
+"@ c #8E8E8E",
+"# c #A0A0A0",
+"$ c #BABABA",
+"% c #CFCFCF",
+"& c #E4E4E4",
+"* c #EDEDED",
+"= c #F1F1F1",
+"- c #F4F4F4",
+"; c #000100",
+"> c #F0F0F0",
+", c #E8E8E8",
+"' c #E0E0E0",
+") c #D1D1D1",
+"! c #C0C0C0",
+"~ c #9B9B9B",
+"{ c #9E9E9E",
+"] c #A9A9A9",
+"^ c #BEBEBE",
+"/ c #CDCDCD",
+"( c #9FA19E",
+"_ c #E1E1E1",
+": c #D2D2D2",
+"< c #C2C2C2",
+"[ c #B3B3B3",
+"} c #CECECE",
+"| c #D6D6D6",
+"1 c #E7E7E7",
+"2 c #EBEBEB",
+"3 c #A29FA3",
+"4 c #D0D0D0",
+"5 c #BFBFBF",
+"6 c #D9D9D9",
+"7 c #DDDDDD",
+"8 c #E5E5E5",
+"9 c #E9E9E9",
+"0 c #E6E6E6",
+"a c #B7B7B7",
+"b c #EFEFEF",
+"c c #EEEEEE",
+"d c #DBDBDB",
+"e c #ABABAB",
+"f c #F5F5F5",
+"g c #2F312E",
+"h c #B9B9B9",
+"i c #F8F8F8",
+"j c #878A8A",
+"k c #ABAFB0",
+"l c #C1C1C1",
+"m c #AEAEAE",
+"n c #959595",
+"o c #DDE2E5",
+"p c #C5C5C5",
+"q c #BDBDBD",
+"r c #909090",
+"s c #C4C4C4",
+"t c #BBBBBB",
+"u c #A8A8A8",
+"v c #6D706F",
+"w c #C3C3C3",
+"x c #B8B8B8",
+"y c #AAAAAA",
+"z c #939393",
+"A c #6D6F6C",
+"B c #989898",
+"C c #D3D8DA",
+"D c #C2C4C0",
+"E c #7F817E",
+"F c #868885",
+"G c #A6A6A6",
+"H c #ADADAD",
+"I c #B6B6B6",
+"J c #C9C9C9",
+"K c #D8D8D8",
+"L c #DCDCDC",
+"M c #A3A3A3",
+"N c #AFAFAF",
+"O c #BCBCBC",
+"P c #C8C8C8",
+"Q c #D7D7D7",
+"R c #C7C7C7",
+".+@#$%&*=-;>,')!",
+"~{]^/',*=;;(*_:<",
+"[^}|_122;;3(,;45",
+"6781290;;((1;;(a",
+">bc*9&;;33d;;((e",
+"f-gg;;;gg/;;((h{",
+"i;jk;;jj;;;33lmn",
+"gjkoook;;;((pqer",
+"ggjkokj;;g3sltu@",
+"gvggggg;;g3w!xyz",
+"gvjookjAg;;;;;eB",
+"gvkoooCv;;D3DE;{",
+"8gjookFgg;EDD;;G",
+")|gggggg|;;;;;;H",
+"I^J4KL7d|;(EE;t[",
+"BMNOP:Q6Q:;;;sRw"};
diff --git a/muse2/xpm/addtrack_wavetrack.xpm b/muse2/xpm/addtrack_wavetrack.xpm
new file mode 100644
index 00000000..e70bb313
--- /dev/null
+++ b/muse2/xpm/addtrack_wavetrack.xpm
@@ -0,0 +1,167 @@
+/* XPM */
+static const char * addtrack_wavetrack_xpm[] = {
+"16 16 148 2",
+" c None",
+". c #A90CF6",
+"+ c #A90BF6",
+"@ c #A910F5",
+"# c #A910F3",
+"$ c #A90FF1",
+"% c #A917EE",
+"& c #AA1EEB",
+"* c #AF2BEA",
+"= c #BD42E7",
+"- c #CD61E6",
+"; c #D384E7",
+"> c #D6A8E8",
+", c #E8CAEB",
+"' c #EBD5EB",
+") c #EBD9EB",
+"! c #ECD8EC",
+"~ c #A903FA",
+"{ c #A902F9",
+"] c #A901F9",
+"^ c #A901F8",
+"/ c #A902F6",
+"( c #A905F7",
+"_ c #A908F5",
+": c #AB11F3",
+"< c #B325F3",
+"[ c #C64DF2",
+"} c #D26EEF",
+"| c #DA91EF",
+"1 c #E9C2EE",
+"2 c #ECCEED",
+"3 c #E9CDEB",
+"4 c #E8C9EA",
+"5 c #A900FB",
+"6 c #A900FA",
+"7 c #000000",
+"8 c #A900F9",
+"9 c #AC0FF8",
+"0 c #BD30F7",
+"a c #C24FF6",
+"b c #D58FF3",
+"c c #E2B0F0",
+"d c #E1B1EC",
+"e c #DCADE6",
+"f c #AB14F9",
+"g c #BC36FA",
+"h c #D470F5",
+"i c #E190F2",
+"j c #DF95EC",
+"k c #DC89E8",
+"l c #A906F9",
+"m c #B622FA",
+"n c #C44BF8",
+"o c #CA56F4",
+"p c #D669EF",
+"q c #D864EC",
+"r c #A900F6",
+"s c #AF10F9",
+"t c #BF32F9",
+"u c #C63BF8",
+"v c #CE47F5",
+"w c #181818",
+"x c #A900F7",
+"y c #AB08F6",
+"z c #B61DFA",
+"A c #BA22FA",
+"B c #C326F9",
+"C c #A900F8",
+"D c #A903F6",
+"E c #B10EFB",
+"F c #A904F4",
+"G c #AF03FE",
+"H c #1B1B1B",
+"I c #A90DEF",
+"J c #A904F8",
+"K c #AD01FB",
+"L c #373737",
+"M c #B425E6",
+"N c #AE18EC",
+"O c #AC0FF2",
+"P c #A901F6",
+"Q c #A900F4",
+"R c #A900F2",
+"S c #A900F5",
+"T c #AA00F9",
+"U c #AA00FB",
+"V c #AC01FB",
+"W c #AF04FA",
+"X c #B208F9",
+"Y c #BE41E5",
+"Z c #B733E7",
+"` c #B324EC",
+" . c #AD15EE",
+".. c #AC0FEF",
+"+. c #AC09F0",
+"@. c #B109F2",
+"#. c #B105F2",
+"$. c #1A1A1A",
+"%. c #AD04FA",
+"&. c #AE06FA",
+"*. c #AF08FA",
+"=. c #B30FF8",
+"-. c #C364E0",
+";. c #C056E1",
+">. c #BD44E6",
+",. c #BD33E9",
+"'. c #B824EC",
+"). c #B91DED",
+"!. c #BB12EF",
+"~. c #B70EF2",
+"{. c #B70CF4",
+"]. c #B30CF8",
+"^. c #B20EF9",
+"/. c #B311F9",
+"(. c #B417F7",
+"_. c #B51EF1",
+":. c #D39FDD",
+"<. c #D19ADD",
+"[. c #CF8ADD",
+"}. c #BE65DD",
+"|. c #C15AE0",
+"1. c #BA43E4",
+"2. c #BA34E6",
+"3. c #C026EB",
+"4. c #C326EE",
+"5. c #C120F0",
+"6. c #BD1EF4",
+"7. c #B91EF5",
+"8. c #B922F6",
+"9. c #B726F3",
+"0. c #B62DEF",
+"a. c #B639EA",
+"b. c #D7BBDA",
+"c. c #D5B4DD",
+"d. c #D1A6DC",
+"e. c #CF96DA",
+"f. c #CE81DC",
+"g. c #CF6FDE",
+"h. c #C857E0",
+"i. c #C745E3",
+"j. c #C940E6",
+"k. c #C73AED",
+"l. c #C738EF",
+"m. c #C23BEF",
+"n. c #C03EF0",
+"o. c #BC43EB",
+"p. c #BB4EE7",
+"q. c #BB5DE4",
+". + @ # $ % & * = - ; > , ' ) ! ",
+"~ { ] ^ / ( _ : < [ } | 1 2 3 4 ",
+"5 5 6 7 6 6 6 8 9 0 a 7 b c d e ",
+"7 5 5 7 5 5 5 6 7 f g 7 h i j k ",
+"7 5 5 7 5 7 5 6 7 l m 7 n o p q ",
+"7 7 5 7 5 7 5 5 7 r s 7 t u v w ",
+"7 7 7 7 5 7 7 5 7 x y 7 z A B 7 ",
+"7 7 7 7 7 7 7 7 7 C D 7 7 E 7 7 ",
+"7 x 7 5 7 7 5 7 7 7 C 7 7 7 7 7 ",
+"7 F 7 6 7 7 5 7 x 7 8 7 5 7 G H ",
+"7 I 7 J 7 8 8 7 x 7 8 7 5 7 K L ",
+"7 M N O 7 P Q R S 7 T 7 U V W X ",
+"7 Y Z ` ...+.@.#.7 $.7 %.&.*.=.",
+"7 -.;.>.,.'.).!.~.{.7 ].^./.(._.",
+":.<.[.}.|.1.2.3.4.5.6.7.8.9.0.a.",
+"b.c.d.e.f.g.h.i.j.k.l.m.n.o.p.q."};
diff --git a/muse2/xpm/audio_bounce_to_file.xpm b/muse2/xpm/audio_bounce_to_file.xpm
new file mode 100644
index 00000000..ee645fdc
--- /dev/null
+++ b/muse2/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/muse2/xpm/audio_bounce_to_track.xpm b/muse2/xpm/audio_bounce_to_track.xpm
new file mode 100644
index 00000000..3708b6bf
--- /dev/null
+++ b/muse2/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/muse2/xpm/audio_restartaudio.xpm b/muse2/xpm/audio_restartaudio.xpm
new file mode 100644
index 00000000..f74a3050
--- /dev/null
+++ b/muse2/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/muse2/xpm/automation_clear_data.xpm b/muse2/xpm/automation_clear_data.xpm
new file mode 100644
index 00000000..e4648c29
--- /dev/null
+++ b/muse2/xpm/automation_clear_data.xpm
@@ -0,0 +1,22 @@
+/* XPM */
+static const char * automation_clear_data_xpm[] = {
+"16 16 3 1",
+" c None",
+". c #FF0000",
+"+ c #FFBEBE",
+" ",
+" ",
+" ",
+" ..+ +.. ",
+" ...+ +... ",
+" +...++...+ ",
+" +......+ ",
+" +....+ ",
+" +....+ ",
+" +......+ ",
+" +...++...+ ",
+" ...+ +... ",
+" ..+ +.. ",
+" ",
+" ",
+" "};
diff --git a/muse2/xpm/automation_mixer.xpm b/muse2/xpm/automation_mixer.xpm
new file mode 100644
index 00000000..4a59c220
--- /dev/null
+++ b/muse2/xpm/automation_mixer.xpm
@@ -0,0 +1,35 @@
+/* XPM */
+static const char * automation_mixer_xpm[] = {
+"16 16 16 1",
+" c None",
+". c #FF0000",
+"+ c #DA1007",
+"@ c #000000",
+"# c #710000",
+"$ c #FFBEBE",
+"% c #B00000",
+"& c #EA0904",
+"* c #B80000",
+"= c #A00000",
+"- c #CE160A",
+"; c #880000",
+"> c #990000",
+", c #BD0000",
+"' c #FF8E8E",
+") c #D32311",
+" ",
+" .",
+" .+",
+" @ @ @ #.. ",
+" @@@ @ @ $.. ",
+" @@@ @ @@%.. ",
+"& @ @ @*=.@ ",
+"-. @ @.... @ ",
+" ..@ .... @ ",
+" ...*;;.@ @@@ ",
+" ...>;,'@ @@@ ",
+" ....' @ @ ",
+" ... ",
+" .. ",
+" ) ",
+" "};
diff --git a/muse2/xpm/automation_take_snapshot.xpm b/muse2/xpm/automation_take_snapshot.xpm
new file mode 100644
index 00000000..8f7beae7
--- /dev/null
+++ b/muse2/xpm/automation_take_snapshot.xpm
@@ -0,0 +1,144 @@
+/* XPM */
+static const char * automation_take_snapshot_xpm[] = {
+"16 16 125 2",
+" c None",
+". c #616167",
+"+ c #6B6A6E",
+"@ c #66685A",
+"# c #9EA18A",
+"$ c #CACB0E",
+"% c #F7F810",
+"& c #FAFB10",
+"* c #FEFF0A",
+"= c #1F1D28",
+"- c #1D1B27",
+"; c #4E5047",
+"> c #7E8072",
+", c #F2F30F",
+"' c #EDEE10",
+") c #DCDD20",
+"! c #E9EA25",
+"~ c #52534E",
+"{ c #54564B",
+"] c #595C50",
+"^ c #5B5E53",
+"/ c #53544A",
+"( c #4F5148",
+"_ c #7D7F72",
+": c #7B7D6E",
+"< c #585944",
+"[ c #666848",
+"} c #5B5D51",
+"| c #535342",
+"1 c #535447",
+"2 c #595955",
+"3 c #4B4C47",
+"4 c #636558",
+"5 c #78796D",
+"6 c #84847F",
+"7 c #94958B",
+"8 c #413F4C",
+"9 c #0E0B1C",
+"0 c #201E2A",
+"a c #999990",
+"b c #8E907F",
+"c c #6D6F65",
+"d c #5A5D51",
+"e c #4E4F49",
+"f c #A9AB9E",
+"g c #4C4C48",
+"h c #585A4E",
+"i c #787A6F",
+"j c #A0A296",
+"k c #1A1725",
+"l c #1D1A27",
+"m c #181624",
+"n c #616165",
+"o c #A7A89A",
+"p c #86877F",
+"q c #595B4F",
+"r c #52544E",
+"s c #ADAFA3",
+"t c #53544F",
+"u c #9A9D88",
+"v c #A4A699",
+"w c #100D1D",
+"x c #2C2932",
+"y c #878A79",
+"z c #8A8A82",
+"A c #606255",
+"B c #53534E",
+"C c #A3A598",
+"D c #454641",
+"E c #5A5C50",
+"F c #797A6F",
+"G c #999C91",
+"H c #1C1A26",
+"I c #151321",
+"J c #292630",
+"K c #8D8F7E",
+"L c #A5A799",
+"M c #5E6053",
+"N c #9A9C8F",
+"O c #5F6155",
+"P c #727368",
+"Q c #9C9D92",
+"R c #2A2931",
+"S c #1C1A27",
+"T c #181523",
+"U c #26232F",
+"V c #98998F",
+"W c #8A8B82",
+"X c #464742",
+"Y c #A1A396",
+"Z c #6D6F61",
+"` c #6B6D62",
+" . c #A5A899",
+".. c #2A2A32",
+"+. c #1C1926",
+"@. c #181623",
+"#. c #1E1C28",
+"$. c #8E8F89",
+"%. c #81827B",
+"&. c #787A6E",
+"*. c #95978A",
+"=. c #3E3F3F",
+"-. c #484944",
+";. c #5E6054",
+">. c #57594E",
+",. c #55574C",
+"'. c #56584D",
+"). c #5A5C51",
+"!. c #5C5E53",
+"~. c #4B4C46",
+"{. c #53544E",
+"]. c #484847",
+"^. c #9B9D90",
+"/. c #B2B3A8",
+"(. c #AAAC9F",
+"_. c #AAACA0",
+":. c #9D9F93",
+"<. c #AAABA1",
+"[. c #B7B8AE",
+"}. c #AEB0A4",
+"|. c #ABADA1",
+"1. c #B4B6AB",
+"2. c #C8C9C1",
+"3. c #D4D4CE",
+"4. c #C0C1B8",
+" ",
+" ",
+" . + @ # $ % & * ",
+" = - ; > , ' ) ! ",
+"~ { ] ^ / ( _ : < [ } | 1 2 ",
+"3 4 5 6 7 8 9 9 0 a b c d e f ",
+"g h i j 9 9 k l m n o p q r s ",
+"t { u v 9 9 9 9 w x y z A B C ",
+"D E F G H I 9 9 9 J K L M 3 N ",
+"D O P Q R S 9 9 T U V W A X Y ",
+"D Z ` 7 ...+.@.#.$.%.&.q X *. ",
+"t =.-.3 } ;.>.,.'.).!.~.{.].^. ",
+" /.f (.(._.:.<.[.}._.|.f 1. ",
+" 2.3.3.2.2.3.3.3.2.3.2.2.4. ",
+" ",
+" "};
diff --git a/muse2/xpm/back.xpm b/muse2/xpm/back.xpm
new file mode 100644
index 00000000..917213c0
--- /dev/null
+++ b/muse2/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/muse2/xpm/blacksqcheck.xpm b/muse2/xpm/blacksqcheck.xpm
new file mode 100644
index 00000000..b2078462
--- /dev/null
+++ b/muse2/xpm/blacksqcheck.xpm
@@ -0,0 +1,34 @@
+/* XPM */
+static const char * blacksqcheck_xpm[] = {
+"18 18 13 1",
+" c None",
+". 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/muse2/xpm/blacksquare.xpm b/muse2/xpm/blacksquare.xpm
new file mode 100644
index 00000000..ea937d68
--- /dev/null
+++ b/muse2/xpm/blacksquare.xpm
@@ -0,0 +1,25 @@
+/* XPM */
+static const char * blacksquare_xpm[] = {
+"18 18 4 1",
+" c None",
+". c #414141",
+"+ c #473E3E",
+"@ c #4E3C3C",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ............ ",
+" +........... ",
+" @+.......... ",
+" ............ ",
+" ............ ",
+" ............ ",
+" ............ ",
+" ............ ",
+" ............ ",
+" ............ ",
+" ............ ",
+" ............ ",
+" "};
diff --git a/muse2/xpm/bluedot.xpm b/muse2/xpm/bluedot.xpm
new file mode 100644
index 00000000..a92558f9
--- /dev/null
+++ b/muse2/xpm/bluedot.xpm
@@ -0,0 +1,34 @@
+/* XPM */
+static const char * bluedot_xpm[] = {
+"18 18 13 1",
+" c None",
+". 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/muse2/xpm/bold.xpm b/muse2/xpm/bold.xpm
new file mode 100644
index 00000000..b5d786ac
--- /dev/null
+++ b/muse2/xpm/bold.xpm
@@ -0,0 +1,16 @@
+/* XPM */
+static const char * bold_xpm[] = {
+"11 11 2 1",
+" g None",
+". g #000000",
+" ",
+" ....... ",
+" .. ... ",
+" .. .. ",
+" .. .. ",
+" ..... ",
+" .. ... ",
+" .. .. ",
+" .. ... ",
+" ....... ",
+" "};
diff --git a/muse2/xpm/bouncetofile.xpm b/muse2/xpm/bouncetofile.xpm
new file mode 100644
index 00000000..0744a7f9
--- /dev/null
+++ b/muse2/xpm/bouncetofile.xpm
@@ -0,0 +1,25 @@
+/* XPM */
+static const char *bounceToFileS_xpm[]={
+"16 16 6 1",
+"# c #000000",
+"c c #a0a0a0",
+"d c #c3c3c3",
+"b c #dcdcdc",
+". c #ff00ff",
+"a c #ffffff",
+"......###.......",
+".....#####......",
+"..aa###bb##aaa..",
+"..a###bbbb##aa..",
+"..###bbbcbb##a..",
+".###bbcccdbd##..",
+"##bbccddbbb####.",
+"##bbbddbb##cc##.",
+"####bbbb##ccc##.",
+".####b###ccccc#.",
+"..#####ccccccc..",
+"..a####cc#ccca..",
+"..aa####ccccaa..",
+"..aaa####ccaaa..",
+"......###.......",
+"................"};
diff --git a/muse2/xpm/buttondown.xpm b/muse2/xpm/buttondown.xpm
new file mode 100644
index 00000000..a8cff668
--- /dev/null
+++ b/muse2/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/muse2/xpm/cafter.xpm b/muse2/xpm/cafter.xpm
new file mode 100644
index 00000000..3ab12692
--- /dev/null
+++ b/muse2/xpm/cafter.xpm
@@ -0,0 +1,29 @@
+/* XPM */
+static const char *cafter_xpm[] = {
+"22 22 2 1",
+". c None",
+"# c #000000",
+"######################",
+"##...................#",
+"#.#..................#",
+"#..#.................#",
+"#...#................#",
+"#....#...............#",
+"#.....#..............#",
+"#......#.............#",
+"#.......#............#",
+"#........#...........#",
+"#.........#..........#",
+"#..........#.........#",
+"#...........#........#",
+"#............#.......#",
+"#.............#......#",
+"#..............#.....#",
+"#...............#....#",
+"#................#...#",
+"#.................#..#",
+"#..................#.#",
+"#...................##",
+"######################"
+};
+
diff --git a/muse2/xpm/cliplistS.xpm b/muse2/xpm/cliplistS.xpm
new file mode 100644
index 00000000..6ba516fc
--- /dev/null
+++ b/muse2/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/muse2/xpm/cmark.xpm b/muse2/xpm/cmark.xpm
new file mode 100644
index 00000000..5c8cf1fc
--- /dev/null
+++ b/muse2/xpm/cmark.xpm
@@ -0,0 +1,23 @@
+/* XPM */
+static const char* cmark_xpm[]={
+"18 18 2 1",
+"# c #ff0000",
+". c None",
+"..................",
+"..................",
+"..................",
+"..................",
+"..................",
+"..................",
+"..................",
+"##################",
+".################.",
+"..##############..",
+"...############...",
+"....##########....",
+".....########.....",
+"......######......",
+".......####.......",
+"........##........",
+"........##........",
+"........##........"};
diff --git a/muse2/xpm/configure.xpm b/muse2/xpm/configure.xpm
new file mode 100644
index 00000000..5bcb079f
--- /dev/null
+++ b/muse2/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/muse2/xpm/context_help.xpm b/muse2/xpm/context_help.xpm
new file mode 100644
index 00000000..4b7838e9
--- /dev/null
+++ b/muse2/xpm/context_help.xpm
@@ -0,0 +1,32 @@
+/* XPM */
+/* Drawn by Mark Donohoe for the K Desktop Environment */
+/* See http://www.kde.org */
+static const char*context_help[]={
+"22 22 4 1",
+"# c #000000",
+"a c #000080",
+"b c #808080",
+". c None",
+"......................",
+"......................",
+"......................",
+"......................",
+"...#........aaaaab....",
+"...##......aa..baab...",
+"...###....aab...aaa...",
+"...####...aab...aaa...",
+"...#####..baa..baab...",
+"...######......aab....",
+"...#######....aa......",
+"...########..aab......",
+"...#####.....aab......",
+"...##.##..............",
+"...#...##....aaa......",
+".......##....aaa......",
+"........##............",
+"........##............",
+"......................",
+"......................",
+"......................",
+"......................"};
+
diff --git a/muse2/xpm/ctrl.xpm b/muse2/xpm/ctrl.xpm
new file mode 100644
index 00000000..01124b02
--- /dev/null
+++ b/muse2/xpm/ctrl.xpm
@@ -0,0 +1,27 @@
+/* XPM */
+static const char * ctrl_xpm[] = {
+"22 22 2 1",
+" c #FFFFFFFFFFFF",
+". c #000000000000",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" ... . .. ",
+" .. .. . ",
+" . . . . ",
+" . ..... .. . ",
+" . . .. . ",
+" . . . . ",
+" . . . . . ",
+" .. .. . . . ",
+" .... ..... ... ",
+" ",
+" ",
+" ",
+" ",
+" ",
+" "};
diff --git a/muse2/xpm/cut.xpm b/muse2/xpm/cut.xpm
new file mode 100644
index 00000000..b104bd1c
--- /dev/null
+++ b/muse2/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/muse2/xpm/darkgreendot.xpm b/muse2/xpm/darkgreendot.xpm
new file mode 100644
index 00000000..5784fec8
--- /dev/null
+++ b/muse2/xpm/darkgreendot.xpm
@@ -0,0 +1,21 @@
+/* XPM */
+static const char *darkgreendot_xpm[] = {
+/* width height num_colors chars_per_pixel */
+" 12 12 2 1",
+/* colors */
+". c none",
+"# c #007700",
+/* pixels */
+"............",
+".....##.....",
+"....####....",
+"...######...",
+"..########..",
+"..########..",
+"..########..",
+"...######...",
+"....####....",
+".....##.....",
+"............",
+"............"
+};
diff --git a/muse2/xpm/darkreddot.xpm b/muse2/xpm/darkreddot.xpm
new file mode 100644
index 00000000..a81b9f37
--- /dev/null
+++ b/muse2/xpm/darkreddot.xpm
@@ -0,0 +1,17 @@
+/* XPM */
+static const char *darkreddot_xpm[]={
+"12 12 2 1",
+". c None",
+"# c #a70000",
+"...#####....",
+"..#######...",
+".#########..",
+"###########.",
+"###########.",
+"###########.",
+"###########.",
+"###########.",
+".#########..",
+"..#######...",
+"...#####....",
+"............"};
diff --git a/muse2/xpm/darkredled.xpm b/muse2/xpm/darkredled.xpm
new file mode 100644
index 00000000..4b8a6c93
--- /dev/null
+++ b/muse2/xpm/darkredled.xpm
@@ -0,0 +1,19 @@
+/* XPM */
+static const char * darkredled_xpm[] = {
+"10 10 6 1",
+" c None",
+". c #520000",
+"+ c #7F0000",
+"@ c #FF8687",
+"# c #C26667",
+"$ c #9C0000",
+" ",
+" .... ",
+" .++++. ",
+" .++@+++. ",
+" .+#$+++. ",
+" .++++++. ",
+" .++++++. ",
+" .++++. ",
+" .... ",
+" "};
diff --git a/muse2/xpm/delete.xpm b/muse2/xpm/delete.xpm
new file mode 100644
index 00000000..7c337199
--- /dev/null
+++ b/muse2/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/muse2/xpm/dot.xpm b/muse2/xpm/dot.xpm
new file mode 100644
index 00000000..6f905a79
--- /dev/null
+++ b/muse2/xpm/dot.xpm
@@ -0,0 +1,22 @@
+/* XPM */
+static const char *dot_xpm[] = {
+/* width height num_colors chars_per_pixel */
+" 16 13 2 1",
+/* colors */
+". c none",
+"# c #00ff00",
+/* pixels */
+"................",
+"................",
+".......##.......",
+"......####......",
+".....######.....",
+"....########....",
+"....########....",
+"....########....",
+".....######.....",
+"......####......",
+".......##.......",
+"................",
+"................"
+};
diff --git a/muse2/xpm/dot1.xpm b/muse2/xpm/dot1.xpm
new file mode 100644
index 00000000..1b2d9887
--- /dev/null
+++ b/muse2/xpm/dot1.xpm
@@ -0,0 +1,22 @@
+/* XPM */
+static const char *dot1_xpm[] = {
+/* width height num_colors chars_per_pixel */
+" 16 13 2 1",
+/* colors */
+". c none",
+"# c #909090",
+/* pixels */
+"................",
+"................",
+".......##.......",
+"......####......",
+".....######.....",
+"....########....",
+"....########....",
+"....########....",
+".....######.....",
+"......####......",
+".......##.......",
+"................",
+"................"
+};
diff --git a/muse2/xpm/doth.xpm b/muse2/xpm/doth.xpm
new file mode 100644
index 00000000..8ee77790
--- /dev/null
+++ b/muse2/xpm/doth.xpm
@@ -0,0 +1,22 @@
+/* XPM */
+static const char *doth_xpm[] = {
+/* width height num_colors chars_per_pixel */
+" 16 13 2 1",
+/* colors */
+". c none",
+"# c #000000",
+/* pixels */
+"................",
+"................",
+".......##.......",
+"......#..#......",
+".....#....#.....",
+"....#......#....",
+"....#......#....",
+"....#......#....",
+".....#....#.....",
+"......#..#......",
+".......##.......",
+"................",
+"................"
+};
diff --git a/muse2/xpm/down.xpm b/muse2/xpm/down.xpm
new file mode 100644
index 00000000..9ac9f1f9
--- /dev/null
+++ b/muse2/xpm/down.xpm
@@ -0,0 +1,15 @@
+/* XPM */
+static const char* down_xpm[]={
+"14 10 2 1",
+"# c #000000",
+". c None",
+"..............",
+"......##......",
+"......##......",
+"......##......",
+"......##......",
+"...##.##.##...",
+"....######....",
+".....####.....",
+"......##......",
+".............."};
diff --git a/muse2/xpm/draw.xpm b/muse2/xpm/draw.xpm
new file mode 100644
index 00000000..5bb771a3
--- /dev/null
+++ b/muse2/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/muse2/xpm/drumS.xpm b/muse2/xpm/drumS.xpm
new file mode 100644
index 00000000..d1f73e21
--- /dev/null
+++ b/muse2/xpm/drumS.xpm
@@ -0,0 +1,30 @@
+/* XPM */
+static const char *drumS_xpm[]={
+"16 16 11 1",
+"# c #000000",
+"i c #008000",
+"d c #008080",
+". c #00ff00",
+"c c #303030",
+"e c #808080",
+"a c #a0a0a0",
+"g c #c3c3c3",
+"h c #dcdcdc",
+"f c #f8f7f7",
+"b c #ffffff",
+"................",
+"..........##ab..",
+"..bbbbbbb##aab..",
+"..bbbbbb##aa.##.",
+"..bbbbb##aa.##a.",
+"..bccdd#cc.##aa.",
+"..#ebddff###aa..",
+".cgbhbeedd#aab..",
+".ccegggeddcabb..",
+".caccccc##cabb..",
+".cahhfhhhacabb..",
+".caefhfhaacabb..",
+"..chhfhhecabbb..",
+"..gccccccabbbb..",
+"....iiiiii......",
+"................"};
diff --git a/muse2/xpm/edit_drumms.xpm b/muse2/xpm/edit_drumms.xpm
new file mode 100644
index 00000000..8738f267
--- /dev/null
+++ b/muse2/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/muse2/xpm/edit_list.xpm b/muse2/xpm/edit_list.xpm
new file mode 100644
index 00000000..19b62b41
--- /dev/null
+++ b/muse2/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/muse2/xpm/edit_mastertrack.xpm b/muse2/xpm/edit_mastertrack.xpm
new file mode 100644
index 00000000..e4f1a948
--- /dev/null
+++ b/muse2/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/muse2/xpm/edit_midi.xpm b/muse2/xpm/edit_midi.xpm
new file mode 100644
index 00000000..3c7071c0
--- /dev/null
+++ b/muse2/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/muse2/xpm/edit_pianoroll.xpm b/muse2/xpm/edit_pianoroll.xpm
new file mode 100644
index 00000000..c2672271
--- /dev/null
+++ b/muse2/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/muse2/xpm/edit_score.xpm b/muse2/xpm/edit_score.xpm
new file mode 100644
index 00000000..a6cc1d99
--- /dev/null
+++ b/muse2/xpm/edit_score.xpm
@@ -0,0 +1,24 @@
+/* XPM */
+static const char *edit_score_xpm[]={
+"16 16 5 1",
+"# c #000000",
+". c #00c000",
+"b c #00ff00",
+"a c #dcdcdc",
+"c c #ffffff",
+"................",
+".##############.",
+"..aaaaaa#aaaaa..",
+".bcccccc##ccccb.",
+".##############.",
+"..aaaaaa#a#aaa..",
+".bcccccc#aaaccb.",
+".##############.",
+"..aaaaaa#aaaaa..",
+".bccc####accccb.",
+".##############.",
+"..aaa###aaaaaa..",
+".bccccaaacccccb.",
+".##############.",
+"................",
+"................"};
diff --git a/muse2/xpm/edit_track_add.xpm b/muse2/xpm/edit_track_add.xpm
new file mode 100644
index 00000000..6f659f7f
--- /dev/null
+++ b/muse2/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/muse2/xpm/edit_track_del.xpm b/muse2/xpm/edit_track_del.xpm
new file mode 100644
index 00000000..4ead97ff
--- /dev/null
+++ b/muse2/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/muse2/xpm/edit_wave.xpm b/muse2/xpm/edit_wave.xpm
new file mode 100644
index 00000000..210264e6
--- /dev/null
+++ b/muse2/xpm/edit_wave.xpm
@@ -0,0 +1,38 @@
+/* XPM */
+static const char * edit_wave_xpm[] = {
+"16 16 19 1",
+" c None",
+". c #13A913",
+"+ c #0AD700",
+"@ c #828282",
+"# c #FEFFFC",
+"$ c #F8FEFF",
+"% c #000000",
+"& c #7F7F7F",
+"* c #8A8A8A",
+"= c #4B4B4B",
+"- c #444444",
+"; c #F9FBF8",
+"> c #E50000",
+", c #290000",
+"' c #FF0000",
+") c #1E0000",
+"! c #F20000",
+"~ c #1B0000",
+"{ c #D50000",
+"................",
+".+++++++++@++++.",
+".+######$@%@##+.",
+".+&&####*%&%*#+.",
+".=%%=###%&#&%#+.",
+".%&&%###%###%#+&",
+".%##%###%###%#+-",
+".%##%###%###%;+%",
+".%##%###%###%#+%",
+".%##%###%###%#+%",
+">,'')>!>~{''%!'%",
+"-%##%###%###%#+%",
+"%&##%&#&%###%#+%",
+"-+##*%&%*###%&&%",
+"&++++@%@++++=%%=",
+"......@......&&."};
diff --git a/muse2/xpm/editcopy.xpm b/muse2/xpm/editcopy.xpm
new file mode 100644
index 00000000..7823c06b
--- /dev/null
+++ b/muse2/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/muse2/xpm/editcopyS.xpm b/muse2/xpm/editcopyS.xpm
new file mode 100644
index 00000000..3e1463ff
--- /dev/null
+++ b/muse2/xpm/editcopyS.xpm
@@ -0,0 +1,26 @@
+/* XPM */
+static const char * editcopyS_xpm[] = {
+"16 16 7 1",
+" c None",
+". c #000000",
+"+ c #FFFFFF",
+"@ c #FFFFC0",
+"# c #303030",
+"$ c #A0A0A0",
+"% c #DCDCDC",
+"...... ",
+".++++.. ",
+".++++.@. ",
+".+##+.+@. ",
+".++++....... ",
+".+##++$$$.+.. ",
+".+++++@+@.+.%. ",
+".+###+##@.+.+%. ",
+".+++@+@@@.+.....",
+".+##+###@.++$$$.",
+".+@+@@@@@.++++%.",
+".........##+##+.",
+" .++++++++.",
+" .+##+###+.",
+" .++++++++.",
+" .........."};
diff --git a/muse2/xpm/editcut.xpm b/muse2/xpm/editcut.xpm
new file mode 100644
index 00000000..4efcb43c
--- /dev/null
+++ b/muse2/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/muse2/xpm/editcutS.xpm b/muse2/xpm/editcutS.xpm
new file mode 100644
index 00000000..06031f4a
--- /dev/null
+++ b/muse2/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/muse2/xpm/editmute.xpm b/muse2/xpm/editmute.xpm
new file mode 100644
index 00000000..ff0e22ac
--- /dev/null
+++ b/muse2/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/muse2/xpm/editmuteS.xpm b/muse2/xpm/editmuteS.xpm
new file mode 100644
index 00000000..92a9d4be
--- /dev/null
+++ b/muse2/xpm/editmuteS.xpm
@@ -0,0 +1,63 @@
+/* XPM */
+static const char * editmuteS_xpm[] = {
+"16 16 44 1",
+" c None",
+". 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 #000000",
+"' 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/muse2/xpm/editpaste.xpm b/muse2/xpm/editpaste.xpm
new file mode 100644
index 00000000..8793a955
--- /dev/null
+++ b/muse2/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/muse2/xpm/editpaste2track.xpm b/muse2/xpm/editpaste2track.xpm
new file mode 100644
index 00000000..0b4b5447
--- /dev/null
+++ b/muse2/xpm/editpaste2track.xpm
@@ -0,0 +1,168 @@
+/* XPM */
+static const char * editpaste2track_xpm[] = {
+"22 22 143 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 #FBFD35",
+"l. c #A0A0A0",
+" . + @ # $ ",
+" % % % % % & * = - ; > , % % % % % % ",
+"% ' ) ) ) ) ) ! ~ { ] ^ / ( _ : < [ } | ",
+"% 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 ",
+"% % % % % % % % % % % % % % % % % % % % % ",
+"% k.k.k.l.l.k.k.k.k.k.l.l.k.k.k.k.k.l.l.V ",
+"% k.k.k.l.l.k.k.k.k.k.l.l.k.k.k.k.k.l.l.V ",
+"% k.k.k.l.l.k.k.k.k.k.l.l.k.k.k.k.k.l.l.% ",
+"% % % % % % % % % % % % % % % % % % % % % ",
+" "};
diff --git a/muse2/xpm/editpaste2trackS.xpm b/muse2/xpm/editpaste2trackS.xpm
new file mode 100644
index 00000000..c2c897e6
--- /dev/null
+++ b/muse2/xpm/editpaste2trackS.xpm
@@ -0,0 +1,28 @@
+/* XPM */
+static const char * editpaste2trackS_xpm[] = {
+"16 16 9 1",
+" c None",
+". c #000000",
+"+ c #C0C000",
+"@ c #A0A0A0",
+"# c #DCDCDC",
+"$ c #FFFFFF",
+"% c #FFFFC0",
+"& c #303030",
+"* c #FBFD35",
+" .. ",
+" ......++..... ",
+".@@@@.+..+.@@@. ",
+".#@@.++++++.@@. ",
+".#@@........@@. ",
+".#@@@@.$$$$..@. ",
+".#@@@@.$$$$.%.. ",
+".#@@@@.$&&$.$%..",
+".#@@@@.$$$$.....",
+".#@@@@.$&&$$@@@.",
+".#@@@@.$$$$$%$%.",
+".#@@@@.$&&&$&&%.",
+"................",
+".**@@****@@**@@.",
+".**@@****@@**@@.",
+"................"};
diff --git a/muse2/xpm/editpasteS.xpm b/muse2/xpm/editpasteS.xpm
new file mode 100644
index 00000000..71c424a4
--- /dev/null
+++ b/muse2/xpm/editpasteS.xpm
@@ -0,0 +1,27 @@
+/* XPM */
+static const char * editpasteS_xpm[] = {
+"16 16 8 1",
+" c None",
+". c #000000",
+"+ c #C0C000",
+"@ c #A0A0A0",
+"# c #DCDCDC",
+"$ c #FFFFFF",
+"% c #FFFFC0",
+"& c #303030",
+" .. ",
+" ......++..... ",
+".@@@@.+..+.@@@. ",
+".#@@.++++++.@@. ",
+".#@@........@@. ",
+".#@@@@.$$$$..@. ",
+".#@@@@.$$$$.%.. ",
+".#@@@@.$&&$.$%..",
+".#@@@@.$$$$.....",
+".#@@@@.$&&$$@@@.",
+".#@@@@.$$$$$%$%.",
+".#@@@@.$&&&$&&%.",
+".#@@@@.$$$%$%%%.",
+".@@@@@.$&&$&&&%.",
+" ......$%$%%%%%.",
+" .........."};
diff --git a/muse2/xpm/editpasteclone.xpm b/muse2/xpm/editpasteclone.xpm
new file mode 100644
index 00000000..431a5763
--- /dev/null
+++ b/muse2/xpm/editpasteclone.xpm
@@ -0,0 +1,184 @@
+/* XPM */
+static const char * editpasteclone_xpm[] = {
+"22 22 159 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 #302113",
+"E c #432E1A",
+"F c #372617",
+"G c #2C1F14",
+"H c #201711",
+"I c #15110D",
+"J c #1B1B1B",
+"K c #7E7E7E",
+"L c #1E1E1E",
+"M c #3A2816",
+"N c #313131",
+"O c #898989",
+"P c #121212",
+"Q c #3C3B3C",
+"R c #676767",
+"S c #382615",
+"T c #C6C6C6",
+"U c #474646",
+"V c #342414",
+"W c #362515",
+"X c #5C5B5B",
+"Y c #FEFCFB",
+"Z c #A4A4A4",
+"` c #747474",
+" . c #FDFBF9",
+".. c #FCF7F3",
+"+. c #FAF4EE",
+"@. c #F0EAE6",
+"#. c #C1BAB3",
+"$. c #2B1D12",
+"%. c #5A5552",
+"&. c #7E7873",
+"*. c #9F958D",
+"=. c #7D746E",
+"-. c #D8D0C8",
+";. c #241910",
+">. c #FCF8F5",
+",. c #FBF5F0",
+"'. c #F9F1EA",
+"). c #F8EEE5",
+"!. c #F7EADF",
+"~. c #F5E7DA",
+"{. c #D6CABF",
+"]. c #241911",
+"^. c #5B5959",
+"/. c #C4C0BD",
+"(. c #807C79",
+"_. c #5A5653",
+":. c #C0B5AC",
+"<. c #998778",
+"[. c #7B6F65",
+"}. c #7A6D62",
+"|. c #D3C3B4",
+"1. c #1D150F",
+"2. c #FBF6F2",
+"3. c #FAF2EC",
+"4. c #F9EFE7",
+"5. c #F7EBE1",
+"6. c #F6E8DC",
+"7. c #F4E4D6",
+"8. c #F3E0D0",
+"9. c #F2DDCB",
+"0. c #D1BCAA",
+"a. c #16110D",
+"b. c #7F7A76",
+"c. c #595551",
+"d. c #7B6F64",
+"e. c #564C45",
+"f. c #786A5C",
+"g. c #CEB6A0",
+"h. c #0F0D0A",
+"i. c #F8EDE3",
+"j. c #F6E9DD",
+"k. c #F5E5D8",
+"l. c #F3E2D2",
+"m. c #F2DECD",
+"n. c #F1DAC7",
+"o. c #EFD7C2",
+"p. c #EED3BC",
+"q. c #CCAF97",
+"r. c #D7CCC1",
+"s. c #D5C7BA",
+"t. c #D3C2B3",
+"u. c #D1BEAC",
+"v. c #CFB9A5",
+"w. c #CEB49F",
+"x. c #CCB097",
+"y. c #CAAB90",
+"z. c #C9A88C",
+"A. c #040404",
+"B. 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 ",
+"D E E F G H I J K E E E F G H I J J y L ",
+"M ~ ~ ~ ~ ~ ~ N K E ~ ~ ~ ~ ~ ~ N O P L ",
+"M ~ ~ ~ ~ ~ ~ Q R E ~ ~ ~ ~ ~ ~ Q ~ : P ",
+"S ~ x : x T ~ U x E ~ x : x T ~ U : ~ O P ",
+"V ~ ~ ~ ~ ~ ~ U U Q N % ~ ~ ~ ~ U U Q N P ",
+"W ~ x X : x : Y T Z ` % X : x : Y T Z ` P ",
+"W ~ ~ ~ ~ ~ ...+.@.#.% ~ ~ ~ ...+.@.#.P ",
+"$.~ X x T x %.&.*.=.-.% x T x %.&.*.=.-.P ",
+";.~ ~ Y >.,.'.).!.~.{.% Y >.,.'.).!.~.{.P ",
+"].~ ^./.(._.:.<.[.}.|.% /.(._.:.<.[.}.|.P ",
+"1.~ 2.3.4.5.6.7.8.9.0.% 3.4.5.6.7.8.9.0.P ",
+"a.~ b.c.:.<.d.e.<.f.g.% c.:.<.d.e.<.f.g.P ",
+"h.~ i.j.k.l.m.n.o.p.q.% j.k.l.m.n.o.p.q.P ",
+"J -.r.s.t.u.v.w.x.y.z.% s.t.u.v.w.x.y.z.P ",
+"P P P P P P P P P P A.% P P P P P P P B.B. ",
+" "};
diff --git a/muse2/xpm/editpasteclone2track.xpm b/muse2/xpm/editpasteclone2track.xpm
new file mode 100644
index 00000000..e2f54e32
--- /dev/null
+++ b/muse2/xpm/editpasteclone2track.xpm
@@ -0,0 +1,148 @@
+/* XPM */
+static const char * editpasteclone2track_xpm[] = {
+"22 22 123 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 #302113",
+"E c #432E1A",
+"F c #372617",
+"G c #2C1F14",
+"H c #201711",
+"I c #15110D",
+"J c #1B1B1B",
+"K c #7E7E7E",
+"L c #1E1E1E",
+"M c #3A2816",
+"N c #313131",
+"O c #898989",
+"P c #121212",
+"Q c #3C3B3C",
+"R c #676767",
+"S c #382615",
+"T c #C6C6C6",
+"U c #474646",
+"V c #342414",
+"W c #362515",
+"X c #5C5B5B",
+"Y c #FEFCFB",
+"Z c #A4A4A4",
+"` c #747474",
+" . c #FDFBF9",
+".. c #FCF7F3",
+"+. c #FAF4EE",
+"@. c #F0EAE6",
+"#. c #C1BAB3",
+"$. c #2B1D12",
+"%. c #5A5552",
+"&. c #7E7873",
+"*. c #9F958D",
+"=. c #7D746E",
+"-. c #D8D0C8",
+";. c #241910",
+">. c #FCF8F5",
+",. c #FBF5F0",
+"'. c #F9F1EA",
+"). c #F8EEE5",
+"!. c #F7EADF",
+"~. c #F5E7DA",
+"{. c #D6CABF",
+"]. c #241911",
+"^. c #5B5959",
+"/. c #C4C0BD",
+"(. c #807C79",
+"_. c #5A5653",
+":. c #C0B5AC",
+"<. c #998778",
+"[. c #7B6F65",
+"}. c #7A6D62",
+"|. c #D3C3B4",
+"1. c #FBFD35",
+"2. c #A0A0A0",
+" . + @ # $ ",
+" % % % % % & * = - ; > , % % % % % % ",
+"% ' ) ) ) ) ) ! ~ { ] ^ / ( _ : < [ } | ",
+"% 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 ",
+"D E E F G H I J K E E E F G H I J J y L ",
+"M ~ ~ ~ ~ ~ ~ N K E ~ ~ ~ ~ ~ ~ N O P L ",
+"M ~ ~ ~ ~ ~ ~ Q R E ~ ~ ~ ~ ~ ~ Q ~ : P ",
+"S ~ x : x T ~ U x E ~ x : x T ~ U : ~ O P ",
+"V ~ ~ ~ ~ ~ ~ U U Q N % ~ ~ ~ ~ U U Q N P ",
+"W ~ x X : x : Y T Z ` % X : x : Y T Z ` P ",
+"W ~ ~ ~ ~ ~ ...+.@.#.% ~ ~ ~ ...+.@.#.P ",
+"$.~ X x T x %.&.*.=.-.% x T x %.&.*.=.-.P ",
+";.~ ~ Y >.,.'.).!.~.{.% Y >.,.'.).!.~.{.P ",
+"].~ ^./.(._.:.<.[.}.|.% /.(._.:.<.[.}.|.P ",
+"% % % % % % % % % % % % % % % % % % % % % ",
+"% 1.1.1.2.2.1.1.1.1.1.2.2.1.1.1.1.1.2.2.P ",
+"% 1.1.1.2.2.1.1.1.1.1.2.2.1.1.1.1.1.2.2.P ",
+"% 1.1.1.2.2.1.1.1.1.1.2.2.1.1.1.1.1.2.2.% ",
+"% % % % % % % % % % % % % % % % % % % % % ",
+" "};
diff --git a/muse2/xpm/editpasteclone2trackS.xpm b/muse2/xpm/editpasteclone2trackS.xpm
new file mode 100644
index 00000000..896207aa
--- /dev/null
+++ b/muse2/xpm/editpasteclone2trackS.xpm
@@ -0,0 +1,34 @@
+/* XPM */
+static const char * editpasteclone2trackS_xpm[] = {
+"16 16 15 1",
+" c None",
+". c #000000",
+"+ c #C0C000",
+"@ c #A0A0A0",
+"# c #DCDCDC",
+"$ c #FFFFFF",
+"% c #616161",
+"& c #545454",
+"* c #FFFFC0",
+"= c #303030",
+"- c #4A4A4A",
+"; c #232323",
+"> c #1C1C1C",
+", c #1A1A1A",
+"' c #FBFD35",
+" .. ",
+" ......++..... ",
+".@@@@.+..+.@@@. ",
+".#@@.++++++.@@. ",
+"............@@. ",
+".$$$$%.$$$$..@. ",
+".$$$$&.$$$$.*.. ",
+".$==$-.$==$.$*..",
+".$$$$;....$.....",
+".$==$$@@@>$$@@@.",
+".$$$$$*$*.$$*$*.",
+".$===$==*,=$==*.",
+"................",
+".''@@''''@@''@@.",
+".''@@''''@@''@@.",
+"................"};
diff --git a/muse2/xpm/editpastecloneS.xpm b/muse2/xpm/editpastecloneS.xpm
new file mode 100644
index 00000000..ef36951f
--- /dev/null
+++ b/muse2/xpm/editpastecloneS.xpm
@@ -0,0 +1,34 @@
+/* XPM */
+static const char * editpastecloneS_xpm[] = {
+"16 16 15 1",
+" c None",
+". c #000000",
+"+ c #C0C000",
+"@ c #A0A0A0",
+"# c #DCDCDC",
+"$ c #FFFFFF",
+"% c #616161",
+"& c #545454",
+"* c #FFFFC0",
+"= c #303030",
+"- c #4A4A4A",
+"; c #232323",
+"> c #1C1C1C",
+", c #1A1A1A",
+"' c #151515",
+" .. ",
+" ......++..... ",
+".@@@@.+..+.@@@. ",
+".#@@.++++++.@@. ",
+"............@@. ",
+".$$$$%.$$$$..@. ",
+".$$$$&.$$$$.*.. ",
+".$==$-.$==$.$*..",
+".$$$$;....$.....",
+".$==$$@@@>$$@@@.",
+".$$$$$*$*.$$*$*.",
+".$===$==*,=$==*.",
+".$$$*$***.*$***.",
+".$==$===*'$===*.",
+".$*$*****.*****.",
+"................"};
diff --git a/muse2/xpm/exit.xpm b/muse2/xpm/exit.xpm
new file mode 100644
index 00000000..eb2a1b7f
--- /dev/null
+++ b/muse2/xpm/exit.xpm
@@ -0,0 +1,29 @@
+/* XPM */
+static const char * exit_xpm[] = {
+"22 22 4 1",
+" c None",
+". c #000000",
+"+ c #757575",
+"@ c #303030",
+" ",
+" ",
+" .. ",
+" .. ",
+" . .. . ",
+" ... .. ... ",
+" +..+ .. +..+ ",
+" ..@ .. @.. ",
+" +..+ .. +..+ ",
+" ... .. ... ",
+" ..+ .. +.. ",
+" ..+ .. +.. ",
+" ... .. ... ",
+" +..+ +..+ ",
+" ..@ @.. ",
+" +..@+ +@..+ ",
+" +....++....+ ",
+" +........+ ",
+" +....+ ",
+" ",
+" ",
+" "};
diff --git a/muse2/xpm/exit1.xpm b/muse2/xpm/exit1.xpm
new file mode 100644
index 00000000..7e19d63b
--- /dev/null
+++ b/muse2/xpm/exit1.xpm
@@ -0,0 +1,29 @@
+/* XPM */
+static const char * exit1_xpm[] = {
+"22 22 4 1",
+" c None",
+". c #000000",
+"+ c #757575",
+"@ c #303030",
+" ",
+" ",
+" ",
+" ",
+" ....+ ",
+" +.......+ ",
+" ....++....+ ",
+" ...@ +@..+ ",
+" .+ @.. ",
+" +..+ ",
+" ... ",
+" .......... +.. ",
+" .......... +.. ",
+" ... ",
+" +..+ ",
+" .+ @.. ",
+" ..@+ +@..+ ",
+" .....++....+ ",
+" +........+ ",
+" +....+ ",
+" ",
+" "};
diff --git a/muse2/xpm/exitS.xpm b/muse2/xpm/exitS.xpm
new file mode 100644
index 00000000..f0edb227
--- /dev/null
+++ b/muse2/xpm/exitS.xpm
@@ -0,0 +1,25 @@
+/* XPM */
+static const char * exitS_xpm[] = {
+"16 16 6 1",
+" c None",
+". c #000000",
+"+ c #FFFFFF",
+"@ c #DCDCDC",
+"# c #A0A0A4",
+"$ c #808080",
+" ",
+" ..... ",
+" ..+++++.. ",
+" .++@@@@@@@. ",
+" .+@@@.@@@@. ",
+" .+@@@@.@@@@#. ",
+" .+@@@@.@@@@#. ",
+" .+@@@@.@@@@#. ",
+" .+@@@@.@@@@#. ",
+" .+@@@@.@@@@#. ",
+" .@@@@.@@@#.$ ",
+" .@@@@@@@##. ",
+" ..#####.. ",
+" ..... ",
+" ",
+" "};
diff --git a/muse2/xpm/fforward.xpm b/muse2/xpm/fforward.xpm
new file mode 100644
index 00000000..11bf7523
--- /dev/null
+++ b/muse2/xpm/fforward.xpm
@@ -0,0 +1,17 @@
+/* XPM */
+static const char * fforward_xpm[] = {
+"17 12 2 1",
+" c None",
+". c #000000",
+" . . ",
+" ... ... ",
+" ... ... ",
+" .... .... ",
+" .... .... ",
+" ..... ..... ",
+" ..... ..... ",
+" .... .... ",
+" .... .... ",
+" ... ... ",
+" ... ... ",
+" . . "};
diff --git a/muse2/xpm/filenew.xpm b/muse2/xpm/filenew.xpm
new file mode 100644
index 00000000..aa47d62f
--- /dev/null
+++ b/muse2/xpm/filenew.xpm
@@ -0,0 +1,170 @@
+/* XPM */
+static const char * filenew_xpm[] = {
+"22 22 145 2",
+" c None",
+". c #535353",
+"+ c #4A4A4A",
+"@ c #424242",
+"# c #3A3A3A",
+"$ c #313131",
+"% c #292929",
+"& c #212121",
+"* c #181818",
+"= c #101010",
+"- c #080808",
+"; c #000000",
+"> c #4C4C4C",
+", c #DEDEDE",
+"' c #D6D6D6",
+") c #C6C6C6",
+"! c #B4B4B4",
+"~ c #989898",
+"{ c #464646",
+"] c #FFFFFF",
+"^ c #ECECEC",
+"/ c #E1E1E1",
+"( c #141414",
+"_ c #C9C9C9",
+": c #3F3F3F",
+"< c #393939",
+"[ c #3E3E3E",
+"} c #E0E0E0",
+"| c #333333",
+"1 c #2C2C2C",
+"2 c #FDFDFD",
+"3 c #F0EEEC",
+"4 c #CFCBC4",
+"5 c #B8B1A9",
+"6 c #857F7A",
+"7 c #262626",
+"8 c #FEFDFC",
+"9 c #FDFAF7",
+"0 c #E4E0DB",
+"a c #D0C8C1",
+"b c #A09B97",
+"c c #1F1F1F",
+"d c #FEFDFB",
+"e c #FCF8F5",
+"f c #FBF3EE",
+"g c #F9F0E8",
+"h c #EADFD5",
+"i c #BBB2AB",
+"j c #191919",
+"k c #FEFCFB",
+"l c #FAF4EE",
+"m c #F9EFE7",
+"n c #F7EBE1",
+"o c #F5E6D9",
+"p c #C6B8AC",
+"q c #131313",
+"r c #FFFEFE",
+"s c #FDFCFA",
+"t c #FBF7F3",
+"u c #FAF3ED",
+"v c #F8EEE6",
+"w c #F6EADF",
+"x c #F3E1D2",
+"y c #D2C0B1",
+"z c #0C0C0C",
+"A c #FEFEFE",
+"B c #FDFBFA",
+"C c #FCF7F3",
+"D c #FAF2EC",
+"E c #F7EADF",
+"F c #F5E6D8",
+"G c #F4E1D2",
+"H c #F2DDCB",
+"I c #D0BCAB",
+"J c #060606",
+"K c #FDFBF9",
+"L c #FBF6F2",
+"M c #FAF3EC",
+"N c #F8EDE4",
+"O c #F7EADE",
+"P c #F5E5D8",
+"Q c #F3E1D1",
+"R c #F0D8C3",
+"S c #CFB8A5",
+"T c #FEFEFD",
+"U c #FDFAF8",
+"V c #FBF6F1",
+"W c #FAF2EB",
+"X c #F8EEE4",
+"Y c #F6E8DD",
+"Z c #F5E5D7",
+"` c #F3E0D0",
+" . c #F1DCC9",
+".. c #EFD8C3",
+"+. c #EED3BC",
+"@. c #CEB49F",
+"#. c #FCF6F1",
+"$. c #F6E9DD",
+"%. c #F4E4D6",
+"&. c #EFD8C2",
+"*. c #ECCEB5",
+"=. c #CCB099",
+"-. c #020202",
+";. c #FBF5F0",
+">. c #F9F0EA",
+",. c #F7ECE2",
+"'. c #F6E8DC",
+"). c #F2DFCE",
+"!. c #F1DBC8",
+"~. c #EFD6C1",
+"{. c #EED2BB",
+"]. c #ECCEB4",
+"^. c #EAC9AD",
+"/. c #CBAC93",
+"(. c #F9F0E9",
+"_. c #F4E3D5",
+":. c #F2E0CF",
+"<. c #F1DAC7",
+"[. c #EFD7C1",
+"}. c #EED2BA",
+"|. c #E9C5A6",
+"1. c #C9A88D",
+"2. c #F6E8DB",
+"3. c #F4E3D4",
+"4. c #F2DECE",
+"5. c #F1DBC7",
+"6. c #EFD6C0",
+"7. c #ECCDB3",
+"8. c #EAC9AC",
+"9. c #E8C5A6",
+"0. c #E7C2A2",
+"a. c #C8A487",
+"b. c #D8D0CA",
+"c. c #D7CCC4",
+"d. c #D6C8BE",
+"e. c #D4C4B8",
+"f. c #D2C0B2",
+"g. c #D1BDAC",
+"h. c #CFB8A6",
+"i. c #CEB5A0",
+"j. c #CDB09A",
+"k. c #CBAD94",
+"l. c #C9A88E",
+"m. c #C8A488",
+"n. c #C7A081",
+" ",
+" . + @ # $ % & * = - ; ; ",
+" > , , , , , , ' ) ! ; ~ ; ",
+" { , ] ] ] ] ] ] ^ / ( _ ~ ; ",
+" : , ] ] ] ] ] ] ] ^ % ] _ ~ ; ",
+" < , ] ] ] ] ] ] ] ] [ } ] _ ~ ; ",
+" | , ] ] ] ] ] ] ] ] . [ % ( ; ; ",
+" 1 , ] ] ] ] ] ] ] ] 2 3 4 5 6 ; ",
+" 7 , ] ] ] ] ] ] ] ] 8 9 0 a b ; ",
+" c , ] ] ] ] ] ] ] d e f g h i ; ",
+" j , ] ] ] ] ] ] k e l m n o p ; ",
+" q , ] ] ] ] r s t u v w o x y ; ",
+" z , ] ] ] A B C D v E F G H I ; ",
+" J , ] ] A K L M N O P Q H R S ; ",
+" J , ] ] A K L M N O P Q H R S ; ",
+" ; , ] T U V W X Y Z ` ...+.@.; ",
+" ; , r 9 #.W N $.%.` .&.+.*.=.; ",
+" -., 9 ;.>.,.'.%.).!.~.{.].^./.; ",
+" ; , ;.(.,.'._.:.<.[.}.].^.|.1.; ",
+" ; , g n 2.3.4.5.6.}.7.8.9.0.a.; ",
+" ; b.b.c.d.e.f.g.h.i.j.k.l.m.n.; ",
+" ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; "};
diff --git a/muse2/xpm/filenewS.xpm b/muse2/xpm/filenewS.xpm
new file mode 100644
index 00000000..1980070a
--- /dev/null
+++ b/muse2/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/muse2/xpm/fileopen.xpm b/muse2/xpm/fileopen.xpm
new file mode 100644
index 00000000..5afa7b44
--- /dev/null
+++ b/muse2/xpm/fileopen.xpm
@@ -0,0 +1,216 @@
+/* XPM */
+static const char * fileopen_xpm[] = {
+"22 22 191 2",
+" c None",
+". c #000000",
+"+ c #26190E",
+"@ c #271C11",
+"# c #271A0F",
+"$ c #3B2714",
+"% c #F4AD6A",
+"& c #FEC280",
+"* c #FEC27F",
+"= c #FDB773",
+"- c #E5A566",
+"; c #FECB93",
+"> c #FED39A",
+", c #FECE93",
+"' c #FEC88B",
+") c #F6B675",
+"! c #150F09",
+"~ c #FEC385",
+"{ c #FED59C",
+"] c #FECE92",
+"^ c #FCB269",
+"/ c #F9AC62",
+"( c #F8AC62",
+"_ c #FEC888",
+": c #FED199",
+"< c #FEC282",
+"[ c #EEA059",
+"} c #80532C",
+"| c #4B3119",
+"1 c #4A3019",
+"2 c #452C17",
+"3 c #402915",
+"4 c #3C2714",
+"5 c #372312",
+"6 c #322011",
+"7 c #2E1D0F",
+"8 c #291A0E",
+"9 c #25170C",
+"0 c #FECA8F",
+"a c #FDB56E",
+"b c #A86F3C",
+"c c #53504D",
+"d c #F5F5F5",
+"e c #F7F7F7",
+"f c #F1F1F1",
+"g c #EAEAEA",
+"h c #E3E3E3",
+"i c #DDDDDC",
+"j c #D6D6D5",
+"k c #D0D0CE",
+"l c #C8C8C7",
+"m c #C2C2C1",
+"n c #BBBBBA",
+"o c #B4B4B3",
+"p c #AFAFAF",
+"q c #AEAEAE",
+"r c #343434",
+"s c #FEC685",
+"t c #FEC182",
+"u c #F2A55C",
+"v c #E7E7E7",
+"w c #E4E4E4",
+"x c #E1E1E1",
+"y c #D9D9D8",
+"z c #D1D1D0",
+"A c #C7C7C6",
+"B c #C0C0BF",
+"C c #B8B8B7",
+"D c #B0B0AF",
+"E c #A7A7A6",
+"F c #9E9E9D",
+"G c #959595",
+"H c #8B8B89",
+"I c #818180",
+"J c #5E5E5D",
+"K c #191919",
+"L c #FEC283",
+"M c #FBB269",
+"N c #AB6F3B",
+"O c #F2F2F2",
+"P c #E2E2E1",
+"Q c #EAEAE9",
+"R c #EBEBEA",
+"S c #DDDDDB",
+"T c #D3D3D1",
+"U c #CACAC9",
+"V c #C1C1C0",
+"W c #AFAFAD",
+"X c #A5A5A3",
+"Y c #9B9B9A",
+"Z c #8E8E8D",
+"` c #7B7B79",
+" . c #363635",
+".. c #FEB971",
+"+. c #EA9E58",
+"@. c #4E331B",
+"#. c #CDCDCC",
+"$. c #D5D5D4",
+"%. c #E1E1E0",
+"&. c #E9E9E8",
+"*. c #E7E7E6",
+"=. c #E5E5E3",
+"-. c #DEDEDD",
+";. c #C4C4C2",
+">. c #BABAB9",
+",. c #B1B1B0",
+"'. c #9E9E9C",
+"). c #8C8C8B",
+"!. c #6D6D6C",
+"~. c #FEB469",
+"{. c #A66D3A",
+"]. c #D4D4D3",
+"^. c #E0E0DF",
+"/. c #E5E5E4",
+"(. c #D8D8D6",
+"_. c #CFCFCE",
+":. c #C0C0BE",
+"<. c #B7B7B6",
+"[. c #AEAEAD",
+"}. c #A4A4A3",
+"|. c #979796",
+"1. c #292928",
+"2. c #F3A45A",
+"3. c #ACACAC",
+"4. c #C9C9C8",
+"5. c #DCDCDB",
+"6. c #D0D0CF",
+"7. c #B9B9B8",
+"8. c #B2B2B1",
+"9. c #A9A9A8",
+"0. c #A0A09E",
+"a. c #90908F",
+"b. c #5E5E5C",
+"c. c #161615",
+"d. c #B57740",
+"e. c #C4C4C4",
+"f. c #D2D2D1",
+"g. c #CDCDCB",
+"h. c #B3B3B2",
+"i. c #ACACAB",
+"j. c #A3A3A2",
+"k. c #9A9A98",
+"l. c #818181",
+"m. c #383837",
+"n. c #472E19",
+"o. c #BDBDBB",
+"p. c #C3C3C1",
+"q. c #C7C7C5",
+"r. c #C8C8C6",
+"s. c #C6C6C5",
+"t. c #C3C3C2",
+"u. c #BFBFBE",
+"v. c #B9B9B7",
+"w. c #A5A5A4",
+"x. c #9D9D9B",
+"y. c #8D8D8C",
+"z. c #676766",
+"A. c #0B0704",
+"B. c #6D6864",
+"C. c #ADADAC",
+"D. c #B6B6B5",
+"E. c #A9A9A7",
+"F. c #A2A2A1",
+"G. c #9D9D9C",
+"H. c #919190",
+"I. c #7F7F7E",
+"J. c #2D2D2C",
+"K. c #171717",
+"L. c #919191",
+"M. c #9A9A9A",
+"N. c #999998",
+"O. c #9C9C9B",
+"P. c #9F9F9D",
+"Q. c #9A9A99",
+"R. c #939393",
+"S. c #8B8B8A",
+"T. c #8A8A88",
+"U. c #7D7D7C",
+"V. c #5A5A58",
+"W. c #141413",
+"X. c #131313",
+"Y. c #323232",
+"Z. c #2B2B2B",
+"`. c #2C2C2B",
+" + c #2D2D2D",
+".+ c #2A2A2A",
+"++ c #282828",
+"@+ c #272727",
+"#+ c #262625",
+"$+ c #252524",
+"%+ c #101010",
+" ",
+" . . . . . ",
+" . . . . . . . . . . ",
+" . . . . . . ",
+" . . . . ",
+" . . . . ",
+" + @ @ # ",
+" $ % & * = $ ",
+"$ - ; > , ' ) $ ! ! ! ! ! ! ! ! ",
+"$ ~ { ] & ^ / ( ( ( ( ( ( ( ( ( $ ",
+"$ _ : < [ } | 1 1 1 2 3 4 5 6 7 8 9 . . . . ",
+"$ _ 0 a b c d e d f g h i j k l m n o p q r ",
+"$ s t u 1 l v w x y z A B C D E F G H I J K ",
+"$ L M N c O P Q R h S T U V C W X Y Z ` . ",
+"$ ..+.@.#.$.%.&.*.=.-.$.#.;.>.,.E '.).!.. ",
+"$ ~.{.c -.].^./.P i (._.l :.<.[.}.|.I 1. ",
+"$ 2.1 3.4.].i 5.y $.6.4.m 7.8.9.0.a.b.c. ",
+"$ d.c _.e._.].f.6.g.l V n h.i.j.k.l.m. ",
+"$ n.3.h.o.p.q.r.s.t.u.v.h.i.w.x.y.z.. ",
+"A.B.l C.h.D.v.n >.D.h.[.E.F.G.H.I.J. ",
+"K.L.M.N.O.P.P.P.x.Q.|.R.a.S.T.U.V.W. ",
+"X.Y.Z.`.J. + + +J.`.Z..+++@+#+$+%+ "};
diff --git a/muse2/xpm/fileopenS.xpm b/muse2/xpm/fileopenS.xpm
new file mode 100644
index 00000000..05ce7450
--- /dev/null
+++ b/muse2/xpm/fileopenS.xpm
@@ -0,0 +1,26 @@
+/* XPM */
+static const char * fileopenS_xpm[] = {
+"16 16 7 1",
+" c None",
+". c #000000",
+"+ c #FFA858",
+"@ c #FFDCA8",
+"# c #DCDCDC",
+"$ c #C3C3C3",
+"% c #A0A0A0",
+" .... ",
+" .. .... . ",
+" . .... ",
+" ... ",
+" .... ",
+" .... ",
+".+@@+....... ",
+".@@@@+++++++. ",
+".@@.............",
+".@+.###########.",
+".@.#$$$$%$%$%%. ",
+".+.#$$$%$%$%%%. ",
+"..#$$$%$%$%%%. ",
+"..#$$%$%$%%%%. ",
+".#$$%$%$%%%%. ",
+"............. "};
diff --git a/muse2/xpm/fileprint.xpm b/muse2/xpm/fileprint.xpm
new file mode 100644
index 00000000..8b485c4c
--- /dev/null
+++ b/muse2/xpm/fileprint.xpm
@@ -0,0 +1,102 @@
+/* XPM */
+static const char * fileprint_xpm[] = {
+"22 22 77 1",
+" c None",
+". c #000000",
+"+ c #121212",
+"@ c #FFFFFF",
+"# c #F8F4F1",
+"$ c #5C5B5B",
+"% c #828282",
+"& c #C9C9C9",
+"* c #DEDEDE",
+"= c #DBD7D4",
+"- c #C6C6C6",
+"; c #F5F0EC",
+"> c #D3C3B4",
+", c #0C0C0A",
+"' c #060606",
+") c #A4A4A4",
+"! c #FDFBF9",
+"~ c #FCF7F3",
+"{ c #FAF4EE",
+"] c #F0EAE6",
+"^ c #D5C7BC",
+"/ c #5A5552",
+"( c #7E7873",
+"_ c #9F958D",
+": c #7D746E",
+"< c #FEFCFB",
+"[ c #FCF8F5",
+"} c #FBF5F0",
+"| c #F9F1EA",
+"1 c #F8EEE5",
+"2 c #F7EADF",
+"3 c #F5E7DA",
+"4 c #684242",
+"5 c #400000",
+"6 c #5B5959",
+"7 c #C4C0BD",
+"8 c #807C79",
+"9 c #5A5653",
+"0 c #C0B5AC",
+"a c #998778",
+"b c #7B6F65",
+"c c #7A6D62",
+"d c #936E6E",
+"e c #FBF6F2",
+"f c #FAF2EC",
+"g c #F9EFE7",
+"h c #F7EBE1",
+"i c #F6E8DC",
+"j c #F4E4D6",
+"k c #F3E0D0",
+"l c #F2DDCB",
+"m c #D1BCAA",
+"n c #0B0B0B",
+"o c #353535",
+"p c #404040",
+"q c #EAEAEA",
+"r c #E3E3E3",
+"s c #C00000",
+"t c #FF0000",
+"u c #BABABA",
+"v c #D4D4D4",
+"w c #AAAAAA",
+"x c #BDBDBD",
+"y c #B2B2B2",
+"z c #979797",
+"A c #929292",
+"B c #8B8B8B",
+"C c #898989",
+"D c #888888",
+"E c #878787",
+"F c #868686",
+"G c #7D7D7D",
+"H c #313131",
+"I c #484848",
+"J c #424242",
+"K c #676767",
+"L c #949494",
+" ",
+" ............ ",
+" +@@@@@@@@##. ",
+" +@$@%&@&%#*. ",
+" +@@@@@@@@#=. ",
+" +@%&%-@%&;>, ",
+" +@@@@@@@#;>' ",
+" +@%$&%&#$)>. ",
+" +@@@@@!~{]^. ",
+" +@$%-%/(_:>. ",
+" ..+@@<[}|123>... ",
+" .45@67890abc>54. ",
+" .4d5@efghijklm555. ",
+"n.ooooppppppppppoooo..",
+".@@@@@@@@@@@@@@@@@@@q.",
+".rst****************u.",
+".v&&&&&&&&&&&&&&&&&&w.",
+".xyyyyyyyyyyyyyyyyyyz.",
+".ABBCCDDDDDDEEEEEEEFG.",
+".HHIIH..........HIIHH.",
+" .JKKKLLLLLLLLLLKKKJ. ",
+" .................. "};
diff --git a/muse2/xpm/fileprintS.xpm b/muse2/xpm/fileprintS.xpm
new file mode 100644
index 00000000..906bb986
--- /dev/null
+++ b/muse2/xpm/fileprintS.xpm
@@ -0,0 +1,26 @@
+/* XPM */
+static const char * fileprintS_xpm[] = {
+"16 16 7 1",
+" c None",
+". c #000000",
+"+ c #FFFFFF",
+"@ c #808080",
+"# c #FFFFC0",
+"$ c #FF0000",
+"% c #C0C0C0",
+" .......... ",
+" .++++++++. ",
+" .+.@.+.@#. ",
+" .++++++++. ",
+" .+.@.+#+#. ",
+" .++++++#+. ",
+" .+.@.@.@#. ",
+" .++#+#+##. ",
+" .............. ",
+".++++++++++++++.",
+".+$$%%%%%%%%%%%.",
+".+%%%%%%%%%%%%%.",
+".+%%%%%%%%%%%%%.",
+"................",
+" .@@@@@@@@@@@@. ",
+" .............. "};
diff --git a/muse2/xpm/filesave.xpm b/muse2/xpm/filesave.xpm
new file mode 100644
index 00000000..55801e53
--- /dev/null
+++ b/muse2/xpm/filesave.xpm
@@ -0,0 +1,175 @@
+/* XPM */
+static const char * filesave_xpm[] = {
+"22 22 150 2",
+" c None",
+". c #747474",
+"+ c #212121",
+"@ c #191926",
+"# c #04043E",
+"$ c #050540",
+"% c #05053F",
+"& c #04043D",
+"* c #03033C",
+"= c #03033B",
+"- c #02023A",
+"; c #020239",
+"> c #010138",
+", c #010137",
+"' c #000036",
+") c #000035",
+"! c #0D0D1A",
+"~ c #121212",
+"{ c #232323",
+"] c #707070",
+"^ c #6207C0",
+"/ c #7111D4",
+"( c #6E0ED1",
+"_ c #6C0ECD",
+": c #690CC9",
+"< c #670BC6",
+"[ c #6509C4",
+"} c #6006BD",
+"| c #5D04B9",
+"1 c #5B03B6",
+"2 c #5901B4",
+"3 c #5600B0",
+"4 c #393939",
+"5 c #3B3B3B",
+"6 c #FFFFFF",
+"7 c #FDFDFD",
+"8 c #FCFCFC",
+"9 c #F8F8F8",
+"0 c #242424",
+"a c #000000",
+"b c #C58DFE",
+"c c #CD9DFE",
+"d c #CFA1FE",
+"e c #B471F8",
+"f c #5D00BE",
+"g c #3C3C3C",
+"h c #727272",
+"i c #FEFEFE",
+"j c #FBFBFB",
+"k c #F9F9F9",
+"l c #222222",
+"m c #9937FE",
+"n c #B873FE",
+"o c #C389FE",
+"p c #A34BFE",
+"q c #8525E8",
+"r c #6C0DCE",
+"s c #6B6B6B",
+"t c #FAFAFA",
+"u c #F6F6F6",
+"v c #3A3A3A",
+"w c #111111",
+"x c #202020",
+"y c #686868",
+"z c #383838",
+"A c #1F1F1F",
+"B c #636363",
+"C c #F7F7F7",
+"D c #F5F5F5",
+"E c #F4F4F4",
+"F c #F3F3F3",
+"G c #373737",
+"H c #101010",
+"I c #1D1D1D",
+"J c #5F5F5F",
+"K c #BEBEBE",
+"L c #B4B4B4",
+"M c #353535",
+"N c #1C1C1C",
+"O c #5B5B5B",
+"P c #585858",
+"Q c #575757",
+"R c #565656",
+"S c #545454",
+"T c #535353",
+"U c #505050",
+"V c #4E4E4E",
+"W c #4B4B4B",
+"X c #474747",
+"Y c #444444",
+"Z c #414141",
+"` c #3D3D3D",
+" . c #333333",
+".. c #1B1B1B",
+"+. c #363636",
+"@. c #313131",
+"#. c #0F0F0F",
+"$. c #191919",
+"%. c #515151",
+"&. c #3F3F3F",
+"*. c #3E3E3E",
+"=. c #323232",
+"-. c #303030",
+";. c #2D2D2D",
+">. c #2F2F2F",
+",. c #181818",
+"'. c #4F4F4F",
+"). c #DBDBDB",
+"!. c #EBEBEB",
+"~. c #ECECEC",
+"{. c #E9E9E9",
+"]. c #E4E4E4",
+"^. c #DDDDDD",
+"/. c #D6D6D6",
+"(. c #D3D3D3",
+"_. c #AAAAAA",
+":. c #4C4C4C",
+"<. c #252525",
+"[. c #4A4A4A",
+"}. c #424242",
+"|. c #D2D2D2",
+"1. c #C9C9C9",
+"2. c #B9B9B9",
+"3. c #9E9E9E",
+"4. c #454545",
+"5. c #262626",
+"6. c #464646",
+"7. c #E3E3E3",
+"8. c #606060",
+"9. c #D1D1D1",
+"0. c #DEDEDE",
+"a. c #CDCDCD",
+"b. c #C5C5C5",
+"c. c #BBBBBB",
+"d. c #B6B6B6",
+"e. c #9D9D9D",
+"f. c #484848",
+"g. c #D8D8D8",
+"h. c #404040",
+"i. c #434343",
+"j. c #C6C6C6",
+"k. c #C0C0C0",
+"l. c #B7B7B7",
+"m. c #B2B2B2",
+"n. c #9B9B9B",
+"o. c #B1B1B1",
+"p. c #AFAFAF",
+"q. c #9A9A9A",
+"r. c #1E1E1E",
+"s. c #0E0E0E",
+" ",
+" . + @ # $ % # & * = - ; > , ' ) ) ! ~ . ",
+" { ] ] ^ / ( _ : < [ ^ } | 1 2 3 3 4 5 ~ ",
+" { . . 6 6 6 6 6 6 6 6 6 6 6 7 8 9 4 4 ~ ",
+" 0 . a 6 6 6 6 6 6 6 6 6 6 6 7 8 9 a 4 ~ ",
+" { . . 6 b c d b e f f f f f f f 9 4 g ~ ",
+" { h h 6 6 6 6 6 6 6 6 6 i 8 j k 9 4 5 ~ ",
+" l ] ] 6 m n o n p q r f f f f f 9 4 5 ~ ",
+" + s s 6 6 6 6 6 6 6 6 7 j t 9 u 9 4 v w ",
+" x y y 6 f f f f f f f f f f f f 9 4 z w ",
+" A B B 6 6 i 7 8 t k 9 C C D E F 9 4 G H ",
+" I J J K i 7 8 j t k 9 C u D E F L 4 M H ",
+" N O O P P P Q R S T U V W X Y Z ` 4 .H ",
+" ..R P P P Q R S T U V W X Y Z ` 4 +.@.#. ",
+" $.T S S %.Z &.*.` 5 4 G M =.-.;.@.@.>.#. ",
+" ,.V '.'.Z ).!.~.{.].^./.(._.Y :.<.>.>.#. ",
+" a [.[.W }.].X '.U |.1.K 2.3.4.:.5.>.>.#. ",
+" a 4.6.6.&.7.Y 8.Q 9.1.K 2.3.Y W <.>.>.#. ",
+" a Z Z }.` 0.}.P %.a.b.c.d.e.Z f.0 >.>.#. ",
+" { v ` ` 5 g.h.6.i.j.k.l.m.n.g i.+ >.>.#. ",
+" a G 4 +.g.K K K K 2.o.p.q.M g r.>.>.#. ",
+" ..H a a a a a a a a a a a a a a s.. "};
diff --git a/muse2/xpm/filesaveS.xpm b/muse2/xpm/filesaveS.xpm
new file mode 100644
index 00000000..6c77f6ff
--- /dev/null
+++ b/muse2/xpm/filesaveS.xpm
@@ -0,0 +1,28 @@
+/* XPM */
+static const char * filesaveS_xpm[] = {
+"16 16 9 1",
+" c None",
+". c #000000",
+"+ c #303030",
+"@ c #800080",
+"# c #0000C0",
+"$ c #FFFFFF",
+"% c #DCDCDC",
+"& c #C3C3C3",
+"* c #585858",
+"................",
+".+.@#@#@#@#@#.+.",
+".$.$$$$$$$$$$...",
+".+.$$$$$$$$$$.+.",
+".+.$@#@#@#@#$.+.",
+".+.$$$$$$$$$$.+.",
+".+.$@#@#@#@#$.+.",
+".+.$$$$$$$$$$.+.",
+".++..........++.",
+".++++++++++++++.",
+".+++........+++.",
+".++.$%$%%%&%.++.",
+".++.%+*&%&%&.++.",
+".++.$+*%&%&&.++.",
+"..+.%&%&%&&&.++.",
+" ..............."};
diff --git a/muse2/xpm/filesaveasS.xpm b/muse2/xpm/filesaveasS.xpm
new file mode 100644
index 00000000..edc233cc
--- /dev/null
+++ b/muse2/xpm/filesaveasS.xpm
@@ -0,0 +1,27 @@
+/* XPM */
+static const char *filesaveasS_xpm[]={
+"16 16 8 1",
+"d c None",
+". c #000000",
+"b c #0000c0",
+"# c #303030",
+"e c #585858",
+"a c #800080",
+"f c #c3c3c3",
+"c c #ffffff",
+"................",
+".#.ababababab.#.",
+".c.cccccccccc...",
+".#.cccccccccc.#.",
+".#.cababababc.#.",
+".#.cccccccccc.#.",
+".#.cababab......",
+".#.cccccc.c.cc..",
+".##......cc.cc..",
+".#######....cc..",
+".###.....ccccc..",
+".##.cdcd.ccccc..",
+".##.d#ef.ccccc..",
+".##.c#ed........",
+"..#.dfdfdfff.##.",
+"d..............."};
diff --git a/muse2/xpm/find.xpm b/muse2/xpm/find.xpm
new file mode 100644
index 00000000..51c83119
--- /dev/null
+++ b/muse2/xpm/find.xpm
@@ -0,0 +1,28 @@
+/* XPM */
+/* Drawn by Mark Donohoe for the K Desktop Environment */
+/* See http://www.kde.org */
+static const char*find_xpm[]={
+"22 16 6 1",
+"# c #000000",
+"c c #ffffff",
+"b c #dcdcdc",
+"a c #a0a0a4",
+"d c #dcdcdc",
+". c None",
+".......####...........",
+".....a#bccd#a.........",
+".....#ccaacc#a........",
+"....#dcaccccd#........",
+"....#cccccccc#........",
+"....#cccccccc#........",
+"....#dccccccd#........",
+"....a#cccccc#a........",
+".....a#dccd###........",
+"......a####a###.......",
+".......aaaaaa###......",
+"............aa###.....",
+".............aa###....",
+"..............aa###...",
+"...............aa#a...",
+"................aa...."};
+
diff --git a/muse2/xpm/flag.xpm b/muse2/xpm/flag.xpm
new file mode 100644
index 00000000..f8bcf244
--- /dev/null
+++ b/muse2/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/muse2/xpm/flagS.xpm b/muse2/xpm/flagS.xpm
new file mode 100644
index 00000000..741528e1
--- /dev/null
+++ b/muse2/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/muse2/xpm/fluidsynth-logo-124x45.xpm b/muse2/xpm/fluidsynth-logo-124x45.xpm
new file mode 100644
index 00000000..96266bad
--- /dev/null
+++ b/muse2/xpm/fluidsynth-logo-124x45.xpm
@@ -0,0 +1,2124 @@
+/* XPM */
+static char * fluidsynth_logo_124x45_xpm[] = {
+"124 45 2076 2",
+" c #11002E",
+". c #201037",
+"+ c #625269",
+"@ c #2E2243",
+"# c #11002F",
+"$ c #201538",
+"% c #190B33",
+"& c #12022F",
+"* c #4D4153",
+"= c #1C0D35",
+"- c #11012F",
+"; c #180B33",
+"> c #150731",
+", c #484A57",
+"' c #130330",
+") c #120230",
+"! c #12012F",
+"~ c #2F2347",
+"{ c #2D2145",
+"] c #1C1036",
+"^ c #37334C",
+"/ c #1F1035",
+"( c #221337",
+"_ c #1B0E37",
+": c #322A4C",
+"< c #180832",
+"[ c #2F1F42",
+"} c #170832",
+"| c #201438",
+"1 c #180A33",
+"2 c #302C43",
+"3 c #221839",
+"4 c #150831",
+"5 c #13032F",
+"6 c #140531",
+"7 c #1C0F38",
+"8 c #11002D",
+"9 c #12022E",
+"0 c #2C2B43",
+"a c #241E3D",
+"b c #10002D",
+"c c #1F1236",
+"d c #14052F",
+"e c #3B4251",
+"f c #12032E",
+"g c #10002C",
+"h c #11012D",
+"i c #2A203D",
+"j c #13042E",
+"k c #13032E",
+"l c #3C3949",
+"m c #170A31",
+"n c #11022D",
+"o c #30273F",
+"p c #251938",
+"q c #11022C",
+"r c #10012C",
+"s c #221635",
+"t c #12022D",
+"u c #2D233A",
+"v c #13052D",
+"w c #2D2746",
+"x c #20173B",
+"y c #333144",
+"z c #29243D",
+"A c #1C1133",
+"B c #241C37",
+"C c #4A4E50",
+"D c #211535",
+"E c #1B0E32",
+"F c #10002B",
+"G c #180D30",
+"H c #313141",
+"I c #413847",
+"J c #15072D",
+"K c #251A35",
+"L c #12032C",
+"M c #1B1035",
+"N c #160931",
+"O c #11012C",
+"P c #12022C",
+"Q c #16092E",
+"R c #2F2C3F",
+"S c #12042C",
+"T c #342540",
+"U c #10012B",
+"V c #11032C",
+"W c #14082E",
+"X c #231535",
+"Y c #0F002A",
+"Z c #13042C",
+"` c #1C0D33",
+" . c #26163A",
+".. c #27183B",
+"+. c #28193C",
+"@. c #291A3D",
+"#. c #2B1C3F",
+"$. c #2E1F41",
+"%. c #312243",
+"&. c #342645",
+"*. c #392B47",
+"=. c #3C3046",
+"-. c #251935",
+";. c #12032B",
+">. c #1E0F34",
+",. c #27173B",
+"'. c #291C3B",
+"). c #231734",
+"!. c #10002A",
+"~. c #221338",
+"{. c #291C3D",
+"]. c #2D2340",
+"^. c #1B0C32",
+"/. c #3D314A",
+"(. c #4E4255",
+"_. c #3E314A",
+":. c #211337",
+"<. c #15052E",
+"[. c #2E233B",
+"}. c #2B1D3C",
+"|. c #25163A",
+"1. c #1C0C33",
+"2. c #11022B",
+"3. c #1F1436",
+"4. c #14072D",
+"5. c #261937",
+"6. c #CBCBA0",
+"7. c #D6D6A9",
+"8. c #DAD9AB",
+"9. c #DDDDAE",
+"0. c #E0E0B0",
+"a. c #E2E2B2",
+"b. c #E5E5B4",
+"c. c #E7E6B6",
+"d. c #E8E8B7",
+"e. c #E9E9B8",
+"f. c #A29E86",
+"g. c #4C444A",
+"h. c #281D37",
+"i. c #BCB999",
+"j. c #EBEBB9",
+"k. c #CFCDA6",
+"l. c #473E48",
+"m. c #352B3D",
+"n. c #18092F",
+"o. c #14052D",
+"p. c #DEDDB4",
+"q. c #EFEFC1",
+"r. c #A8A390",
+"s. c #13032C",
+"t. c #453A4E",
+"u. c #AFAA97",
+"v. c #EDECC0",
+"w. c #FFFFCC",
+"x. c #FFFFCB",
+"y. c #E9E8BB",
+"z. c #A59F8D",
+"A. c #2A2B40",
+"B. c #28293F",
+"C. c #13052C",
+"D. c #4C444C",
+"E. c #615A5B",
+"F. c #B9B895",
+"G. c #CACA9F",
+"H. c #9C9980",
+"I. c #2C2140",
+"J. c #180C2F",
+"K. c #1D1430",
+"L. c #322B47",
+"M. c #1A0E32",
+"N. c #0F0029",
+"O. c #1C0F31",
+"P. c #CFCEA3",
+"Q. c #E8E9B6",
+"R. c #EDEDB9",
+"S. c #F0F1BC",
+"T. c #F3F4BE",
+"U. c #F6F6C1",
+"V. c #F9F9C3",
+"W. c #FBFBC5",
+"X. c #FCFDC6",
+"Y. c #FEFEC7",
+"Z. c #BEBB9A",
+"`. c #4A4249",
+" + c #201431",
+".+ c #BCBA9A",
+"++ c #FEFEC8",
+"@+ c #ECECBB",
+"#+ c #4C444B",
+"$+ c #362C3E",
+"%+ c #14072E",
+"&+ c #706867",
+"*+ c #BCB89A",
+"=+ c #7A7172",
+"-+ c #332642",
+";+ c #EBEAC3",
+">+ c #FFFFD2",
+",+ c #B3B09B",
+"'+ c #10022A",
+")+ c #0F012A",
+"!+ c #5B525C",
+"~+ c #F0EFC3",
+"{+ c #FFFFCD",
+"]+ c #FFFFCA",
+"^+ c #DFDDB2",
+"/+ c #11052B",
+"(+ c #11042B",
+"_+ c #15082C",
+":+ c #4F474D",
+"<+ c #6E6764",
+"[+ c #CAC99F",
+"}+ c #D7D7A8",
+"|+ c #A3A084",
+"1+ c #10012A",
+"2+ c #100129",
+"3+ c #403650",
+"4+ c #211834",
+"5+ c #322E3B",
+"6+ c #16072D",
+"7+ c #C4C29D",
+"8+ c #EDEDBA",
+"9+ c #A4A187",
+"0+ c #9A9580",
+"a+ c #857F76",
+"b+ c #7E7673",
+"c+ c #7F7774",
+"d+ c #7F7775",
+"e+ c #645B61",
+"f+ c #1B0F2F",
+"g+ c #A4A08E",
+"h+ c #FFFFCE",
+"i+ c #F5F5C6",
+"j+ c #50494E",
+"k+ c #382E3F",
+"l+ c #3D4153",
+"m+ c #3F3D59",
+"n+ c #251936",
+"o+ c #EEEEBA",
+"p+ c #FCFDC4",
+"q+ c #EAEAB8",
+"r+ c #2F243B",
+"s+ c #1A0C30",
+"t+ c #E8E7C1",
+"u+ c #B3AF9A",
+"v+ c #E5E4BC",
+"w+ c #FAFACA",
+"x+ c #A6A18E",
+"y+ c #60575E",
+"z+ c #4B4151",
+"A+ c #706869",
+"B+ c #B6B398",
+"C+ c #F9F9C6",
+"D+ c #E3E2B5",
+"E+ c #180A2F",
+"F+ c #12042B",
+"G+ c #190C2D",
+"H+ c #534C4F",
+"I+ c #78726B",
+"J+ c #CFCEA2",
+"K+ c #D7D7A7",
+"L+ c #8D8977",
+"M+ c #282039",
+"N+ c #190E2F",
+"O+ c #0F0028",
+"P+ c #13042A",
+"Q+ c #B7B594",
+"R+ c #F2F2BE",
+"S+ c #6B655F",
+"T+ c #463E47",
+"U+ c #1A0D2D",
+"V+ c #221737",
+"W+ c #938D86",
+"X+ c #FFFFD5",
+"Y+ c #FBFBD2",
+"Z+ c #544D51",
+"`+ c #3A323F",
+" @ c #100128",
+".@ c #13092B",
+"+@ c #100229",
+"@@ c #13052B",
+"#@ c #AFAB91",
+"$@ c #F5F5C1",
+"%@ c #B9B697",
+"&@ c #16082C",
+"*@ c #2B1E3C",
+"=@ c #2F233F",
+"-@ c #190B30",
+";@ c #E6E5C0",
+">@ c #B4B09B",
+",@ c #635A62",
+"'@ c #FEFECE",
+")@ c #827B75",
+"!@ c #423749",
+"~@ c #AEAB91",
+"{@ c #17092D",
+"]@ c #241538",
+"^@ c #2D213C",
+"/@ c #837B76",
+"(@ c #564C58",
+"_@ c #1E1031",
+":@ c #1B0E2E",
+"<@ c #5B5455",
+"[@ c #807A70",
+"}@ c #D2D2A5",
+"|@ c #7D786D",
+"1@ c #312D44",
+"2@ c #170B2D",
+"3@ c #0F0128",
+"4@ c #A39F89",
+"5@ c #F8F8C3",
+"6@ c #FCFCC7",
+"7@ c #777268",
+"8@ c #403843",
+"9@ c #170A2C",
+"0@ c #190F2E",
+"a@ c #A3A698",
+"b@ c #FFFFDE",
+"c@ c #FEFEDC",
+"d@ c #625C5D",
+"e@ c #3D3440",
+"f@ c #110228",
+"g@ c #14062B",
+"h@ c #32273E",
+"i@ c #180A2E",
+"j@ c #1A0C2F",
+"k@ c #190B2F",
+"l@ c #B5B19C",
+"m@ c #807A75",
+"n@ c #FFFFCF",
+"o@ c #554C57",
+"p@ c #1C102F",
+"q@ c #110329",
+"r@ c #372A43",
+"s@ c #7E7476",
+"t@ c #7D7276",
+"u@ c #A5A08C",
+"v@ c #5A5158",
+"w@ c #1C0F2F",
+"x@ c #655E5C",
+"y@ c #878174",
+"z@ c #D4D4A6",
+"A@ c #D6D6A7",
+"B@ c #6D6761",
+"C@ c #423E5A",
+"D@ c #15082D",
+"E@ c #0E0027",
+"F@ c #14082B",
+"G@ c #413A48",
+"H@ c #969280",
+"I@ c #FEFEC9",
+"J@ c #888477",
+"K@ c #382E3E",
+"L@ c #180D2B",
+"M@ c #100328",
+"N@ c #757078",
+"O@ c #FFFFE9",
+"P@ c #FEFEE7",
+"Q@ c #6F6A6A",
+"R@ c #3E3642",
+"S@ c #100228",
+"T@ c #15072C",
+"U@ c #291C3C",
+"V@ c #2D1F3F",
+"W@ c #2A1F38",
+"X@ c #0F0228",
+"Y@ c #14062C",
+"Z@ c #2B1D3D",
+"`@ c #251937",
+" # c #13052A",
+".# c #221436",
+"+# c #221537",
+"@# c #0E0129",
+"## c #0E012A",
+"$# c #12052B",
+"%# c #211335",
+"&# c #2F2141",
+"*# c #352646",
+"=# c #362748",
+"-# c #3A2C49",
+";# c #E7E6C1",
+"># c #B8B49E",
+",# c #0E0128",
+"'# c #554C58",
+")# c #FDFDCD",
+"!# c #B4B099",
+"~# c #1B0D30",
+"{# c #0F022A",
+"]# c #423D48",
+"^# c #1B1231",
+"/# c #201434",
+"(# c #251837",
+"_# c #241636",
+":# c #11032A",
+"<# c #0E0028",
+"[# c #2F2240",
+"}# c #362946",
+"|# c #170A2D",
+"1# c #211336",
+"2# c #1D1032",
+"3# c #332544",
+"4# c #3A2B4B",
+"5# c #342546",
+"6# c #251838",
+"7# c #12052A",
+"8# c #3D3147",
+"9# c #70656E",
+"0# c #746970",
+"a# c #B4B095",
+"b# c #E3E3B1",
+"c# c #6A6164",
+"d# c #3B2E47",
+"e# c #3A2E45",
+"f# c #1E1130",
+"g# c #6F6764",
+"h# c #8D8878",
+"i# c #D5D6A6",
+"j# c #746C6B",
+"k# c #3F304E",
+"l# c #352747",
+"m# c #241738",
+"n# c #14072B",
+"o# c #79726F",
+"p# c #FFFFD1",
+"q# c #FFFFD8",
+"r# c #9C9A92",
+"s# c #433A49",
+"t# c #2E243C",
+"u# c #1C0F32",
+"v# c #180D31",
+"w# c #5B536D",
+"x# c #FEFEF7",
+"y# c #FFFFF6",
+"z# c #7A7988",
+"A# c #3F3D57",
+"B# c #11052F",
+"C# c #322948",
+"D# c #BEB9B3",
+"E# c #C4BFB5",
+"F# c #787580",
+"G# c #393856",
+"H# c #100737",
+"I# c #0E0539",
+"J# c #0E063B",
+"K# c #140D41",
+"L# c #ADA99F",
+"M# c #C4BFB2",
+"N# c #9C9898",
+"O# c #2F2D55",
+"P# c #0F0B4B",
+"Q# c #0E0B4D",
+"R# c #8C8890",
+"S# c #C4BFAF",
+"T# c #B4B0A5",
+"U# c #232155",
+"V# c #0E0C51",
+"W# c #0E0D51",
+"X# c #37345F",
+"Y# c #7E777B",
+"Z# c #C3BFA9",
+"`# c #E3E2C1",
+" $ c #EFEEC9",
+".$ c #E6E4C2",
+"+$ c #C2BEA8",
+"@$ c #F4F3CA",
+"#$ c #BEBEAC",
+"$$ c #100F53",
+"%$ c #0D0D52",
+"&$ c #1B1B59",
+"*$ c #EAEAC4",
+"=$ c #FEFECD",
+"-$ c #AFAB96",
+";$ c #342D50",
+">$ c #14104C",
+",$ c #0D0D51",
+"'$ c #0D0C51",
+")$ c #4A4869",
+"!$ c #C1BDA0",
+"~$ c #C1BD9F",
+"{$ c #7B7981",
+"]$ c #0E0C50",
+"^$ c #0E0B50",
+"/$ c #0E0B4E",
+"($ c #211A4D",
+"_$ c #584B5F",
+":$ c #BDB89D",
+"<$ c #C6C2A3",
+"[$ c #29244E",
+"}$ c #696778",
+"|$ c #BEBA9D",
+"1$ c #BFBA9E",
+"2$ c #7E7477",
+"3$ c #6D616C",
+"4$ c #B0AB94",
+"5$ c #DCDBAF",
+"6$ c #E1E0B2",
+"7$ c #C5C39E",
+"8$ c #686161",
+"9$ c #12062D",
+"0$ c #12052D",
+"a$ c #43374E",
+"b$ c #6A5E6B",
+"c$ c #786F72",
+"d$ c #C4C19E",
+"e$ c #E6E6B3",
+"f$ c #E4E5B2",
+"g$ c #BDBA9A",
+"h$ c #B1AD93",
+"i$ c #B0AC92",
+"j$ c #ADA88F",
+"k$ c #534E57",
+"l$ c #76747C",
+"m$ c #94938A",
+"n$ c #D5D5A6",
+"o$ c #7F7674",
+"p$ c #73686E",
+"q$ c #A19D87",
+"r$ c #BCBA95",
+"s$ c #A7A684",
+"t$ c #86846E",
+"u$ c #423A45",
+"v$ c #0E0026",
+"w$ c #655D64",
+"x$ c #FFFFDB",
+"y$ c #FFFFE3",
+"z$ c #D9D8CA",
+"A$ c #D3D2C2",
+"B$ c #BAB6B7",
+"C$ c #A8A1AF",
+"D$ c #A59EAC",
+"E$ c #59556A",
+"F$ c #36355B",
+"G$ c #504E7E",
+"H$ c #FDFDFD",
+"I$ c #FFFFFF",
+"J$ c #878796",
+"K$ c #40405D",
+"L$ c #120F52",
+"M$ c #333168",
+"N$ c #F7F7EB",
+"O$ c #FFFFED",
+"P$ c #A0A0A4",
+"Q$ c #39395C",
+"R$ c #100E54",
+"S$ c #0E0C54",
+"T$ c #141257",
+"U$ c #D8D8CC",
+"V$ c #FFFFE4",
+"W$ c #CDCCC1",
+"X$ c #313061",
+"Y$ c #0E0E54",
+"Z$ c #0D0D56",
+"`$ c #B0B0AD",
+" % c #EEEED0",
+".% c #2B2A66",
+"+% c #100E5D",
+"@% c #100F62",
+"#% c #100E61",
+"$% c #31306E",
+"%% c #CFCDB6",
+"&% c #FEFED5",
+"*% c #FFFFD6",
+"=% c #FFFFD4",
+"-% c #FFFFD3",
+";% c #C3C3B7",
+">% c #161678",
+",% c #131377",
+"'% c #131378",
+")% c #565696",
+"!% c #F2F2CC",
+"~% c #E3E2BA",
+"{% c #827B77",
+"]% c #302753",
+"^% c #14136A",
+"/% c #11116D",
+"(% c #11116B",
+"_% c #101068",
+":% c #191968",
+"<% c #DDDDBA",
+"[% c #FFFFC8",
+"}% c #EBEBBD",
+"|% c #2C2B63",
+"1% c #0D0D55",
+"2% c #0D0D54",
+"3% c #0F0F54",
+"4% c #423858",
+"5% c #A19A8B",
+"6% c #FAFBC3",
+"7% c #FAFAC3",
+"8% c #7E7E85",
+"9% c #22215B",
+"0% c #7B7B85",
+"a% c #F6F7C0",
+"b% c #F7F7C0",
+"c% c #C8C6A2",
+"d% c #EAE9B8",
+"e% c #F0F0BB",
+"f% c #E6E6B5",
+"g% c #EFF0BB",
+"h% c #F1F1BC",
+"i% c #EDEEB9",
+"j% c #858486",
+"k% c #1D1955",
+"l% c #625A6A",
+"m% c #827977",
+"n% c #D1CFA7",
+"o% c #E7E7B4",
+"p% c #E4E4B1",
+"q% c #E2E3B0",
+"r% c #E1E1AF",
+"s% c #DFE0AE",
+"t% c #DADBAA",
+"u% c #636062",
+"v% c #787880",
+"w% c #9C9C8E",
+"x% c #D4D4A5",
+"y% c #AEAB8E",
+"z% c #CCCC9F",
+"A% c #C8C89C",
+"B% c #C3C39A",
+"C% c #C3C398",
+"D% c #ABAC86",
+"E% c #A7A782",
+"F% c #4D475E",
+"G% c #FFFFE6",
+"H% c #FFFFF1",
+"I% c #FFFFFA",
+"J% c #FFFFFE",
+"K% c #707082",
+"L% c #3B3B5D",
+"M% c #3D3B71",
+"N% c #FAFAFB",
+"O% c #9998A9",
+"P% c #424162",
+"Q% c #121155",
+"R% c #252363",
+"S% c #F1F1F3",
+"T% c #AAAAB8",
+"U% c #3C3B69",
+"V% c #0D0D53",
+"W% c #12125E",
+"X% c #CCCCCB",
+"Y% c #D4D4CA",
+"Z% c #333371",
+"`% c #13126E",
+" & c #12106B",
+".& c #A7A7AF",
+"+& c #FFFFDC",
+"@& c #F2F2D4",
+"#& c #36367D",
+"$& c #121276",
+"%& c #131379",
+"&& c #20207F",
+"*& c #C7C7BE",
+"=& c #FFFFD7",
+"-& c #D6D6C8",
+";& c #7677AB",
+">& c #5050A0",
+",& c #5353A5",
+"'& c #8080B5",
+")& c #F1F1CF",
+"!& c #C4C4C1",
+"~& c #1D1DA3",
+"{& c #1A1AA4",
+"]& c #1A1AA6",
+"^& c #5858B3",
+"/& c #E7E7CB",
+"(& c #FEFECC",
+"_& c #D8D5B1",
+":& c #60586F",
+"<& c #1E1C8E",
+"[& c #191AA4",
+"}& c #191AA1",
+"|& c #18199B",
+"1& c #7474A8",
+"2& c #9090A2",
+"3& c #13147D",
+"4& c #121376",
+"5& c #282366",
+"6& c #635864",
+"7& c #FBFCC4",
+"8& c #D9D9B2",
+"9& c #181859",
+"0& c #232361",
+"a& c #838495",
+"b& c #F7F8C1",
+"c& c #F4F4BE",
+"d& c #A1A195",
+"e& c #333363",
+"f& c #1D1D5A",
+"g& c #737385",
+"h& c #DCDCB3",
+"i& c #F0F0BA",
+"j& c #E3E3B4",
+"k& c #2C2B60",
+"l& c #161456",
+"m& c #706E7D",
+"n& c #CCCCAE",
+"o& c #C9C9A6",
+"p& c #E5E5B2",
+"q& c #E0E0AF",
+"r& c #7B7A7F",
+"s& c #6F6E7B",
+"t& c #6E6D7A",
+"u& c #6B6A78",
+"v& c #4C4A63",
+"w& c #A3A391",
+"x& c #D3D3A4",
+"y& c #CACA9E",
+"z& c #706B62",
+"A& c #281E36",
+"B& c #646370",
+"C& c #7B7B81",
+"D& c #B0B08C",
+"E& c #AAAA84",
+"F& c #908E73",
+"G& c #140729",
+"H& c #0E0025",
+"I& c #0E022D",
+"J& c #0E063D",
+"K& c #0F0B4F",
+"L& c #36346D",
+"M& c #FBFBF2",
+"N& c #F5F5F5",
+"O& c #DBDBDD",
+"P& c #D6D6DE",
+"Q& c #D1D1DE",
+"R& c #D1D1DF",
+"S& c #5E5E82",
+"T& c #181758",
+"U& c #2A2967",
+"V& c #F5F5F8",
+"W& c #A5A5B7",
+"X& c #44436B",
+"Y& c #141456",
+"Z& c #1F1F5F",
+"`& c #EBEBEF",
+" * c #B4B4C5",
+".* c #3D3D6C",
+"+* c #121163",
+"@* c #110F68",
+"#* c #12106C",
+"$* c #15136F",
+"%* c #C5C4CB",
+"&* c #DCDDD3",
+"** c #353679",
+"=* c #141476",
+"-* c #9D9DB2",
+";* c #F5F5D7",
+">* c #3E3E91",
+",* c #141584",
+"'* c #151688",
+")* c #6F6FA7",
+"!* c #FEFED8",
+"~* c #BABAC7",
+"{* c #2525A8",
+"]* c #1A1BA8",
+"^* c #1B1BAB",
+"/* c #1C1CAE",
+"(* c #2223B1",
+"_* c #DDDDCD",
+":* c #C6C6C7",
+"<* c #2020B9",
+"[* c #1D1DBA",
+"}* c #1E1EBC",
+"|* c #1E1EC0",
+"1* c #2A2AC1",
+"2* c #9C9CCC",
+"3* c #F6F6CE",
+"4* c #FCFCCA",
+"5* c #9D9994",
+"6* c #2D2BAA",
+"7* c #1D1EBC",
+"8* c #2324B1",
+"9* c #D6D6C4",
+"0* c #EBEBC4",
+"a* c #3434A5",
+"b* c #1A1B97",
+"c* c #473F69",
+"d* c #ADA991",
+"e* c #FCFCC4",
+"f* c #656593",
+"g* c #121272",
+"h* c #282878",
+"i* c #8E8EA9",
+"j* c #F8F8C1",
+"k* c #797A83",
+"l* c #0F0F55",
+"m* c #373666",
+"n* c #88888E",
+"o* c #EFF0BA",
+"p* c #5B5B75",
+"q* c #313165",
+"r* c #A4A49D",
+"s* c #B6B69D",
+"t* c #D9D9AC",
+"u* c #1C1A58",
+"v* c #0F0C54",
+"w* c #0F0C53",
+"x* c #3C3B66",
+"y* c #777780",
+"z* c #ABAB94",
+"A* c #453D46",
+"B* c #100226",
+"C* c #4C4B5E",
+"D* c #53536F",
+"E* c #95958A",
+"F* c #AEAE87",
+"G* c #1F1330",
+"H* c #0F0740",
+"I* c #100B53",
+"J* c #100D5D",
+"K* c #110E60",
+"L* c #110E61",
+"M* c #2C2A72",
+"N* c #F2F2F5",
+"O* c #555564",
+"P* c #393866",
+"Q* c #11106B",
+"R* c #11116C",
+"S* c #12116E",
+"T* c #11116E",
+"U* c #11126F",
+"V* c #111270",
+"W* c #252676",
+"X* c #F0F0F4",
+"Y* c #B0AFC0",
+"Z* c #45446B",
+"`* c #17175C",
+" = c #1B1B67",
+".= c #E3E3EA",
+"+= c #C2C2D0",
+"@= c #403F72",
+"#= c #14136E",
+"$= c #12116F",
+"%= c #121271",
+"&= c #141474",
+"*= c #BCBCCA",
+"== c #FFFFEB",
+"-= c #E2E2D9",
+";= c #393984",
+">= c #161781",
+",= c #141583",
+"'= c #8C8DB2",
+")= c #FFFFDD",
+"!= c #F8F8D9",
+"~= c #46469D",
+"{= c #171793",
+"]= c #19199A",
+"^= c #B6B6C5",
+"/= c #F5F5D5",
+"(= c #4949B5",
+"_= c #1D1DB6",
+":= c #1E1EBB",
+"<= c #1E1EBE",
+"[= c #1F1EC2",
+"}= c #2525C5",
+"|= c #DADAD1",
+"1= c #CACACB",
+"2= c #2525CC",
+"3= c #2121CF",
+"4= c #2121D1",
+"5= c #2222D6",
+"6= c #2222D8",
+"7= c #2322DA",
+"8= c #2323DB",
+"9= c #4D4DD9",
+"0= c #BFBFD1",
+"a= c #908EB2",
+"b= c #2223D2",
+"c= c #2222D5",
+"d= c #6C6CCD",
+"e= c #FFFFC7",
+"f= c #9596BE",
+"g= c #3334B7",
+"h= c #6C6A9E",
+"i= c #EFEEBD",
+"j= c #CBCBBD",
+"k= c #1E1F9E",
+"l= c #161792",
+"m= c #2D2E8F",
+"n= c #9899B5",
+"o= c #424275",
+"p= c #0F0E5C",
+"q= c #39396A",
+"r= c #78788B",
+"s= c #EFEFBA",
+"t= c #626279",
+"u= c #2C2C62",
+"v= c #8F8F8F",
+"w= c #BCBCA0",
+"x= c #CECEA7",
+"y= c #0E0D54",
+"z= c #0E0D56",
+"A= c #0F0D59",
+"B= c #41406C",
+"C= c #77767F",
+"D= c #B3B397",
+"E= c #B8B797",
+"F= c #161049",
+"G= c #0E0434",
+"H= c #0F0329",
+"I= c #4F4E5D",
+"J= c #595967",
+"K= c #929284",
+"L= c #BABA91",
+"M= c #A7A882",
+"N= c #1F142F",
+"O= c #0D0025",
+"P= c #110F64",
+"Q= c #110F65",
+"R= c #110F67",
+"S= c #121068",
+"T= c #12106A",
+"U= c #1E1D72",
+"V= c #E5E5EE",
+"W= c #E9E9EB",
+"X= c #575766",
+"Y= c #3E3E66",
+"Z= c #111271",
+"`= c #121273",
+" - c #121374",
+".- c #121375",
+"+- c #1C1D7A",
+"@- c #E7E7F0",
+"#- c #C1C1CC",
+"$- c #46456C",
+"%- c #1C1B6C",
+"&- c #15136D",
+"*- c #D6D6E4",
+"=- c #CDCDD9",
+"-- c #141473",
+";- c #14157B",
+">- c #B1B1C8",
+",- c #FFFFEE",
+"'- c #E9E9DF",
+")- c #41428D",
+"!- c #171887",
+"~- c #151689",
+"{- c #8787B2",
+"]- c #F9F9DA",
+"^- c #4A4AA5",
+"/- c #19199F",
+"(- c #2020A6",
+"_- c #D1D1CE",
+":- c #DEDED0",
+"<- c #302FB7",
+"[- c #1F1EC0",
+"}- c #1F1FC5",
+"|- c #2020C9",
+"1- c #2525CD",
+"2- c #D5D5D3",
+"3- c #CECECE",
+"4- c #2828D7",
+"5- c #2323DA",
+"6- c #2323DC",
+"7- c #2424E0",
+"8- c #2424E2",
+"9- c #2424E1",
+"0- c #2828DD",
+"a- c #8B8CD6",
+"b- c #FAFACD",
+"c- c #3939E2",
+"d- c #2424E3",
+"e- c #2929D5",
+"f- c #D1D1CC",
+"g- c #ECECC7",
+"h- c #7979B6",
+"i- c #BFBFBC",
+"j- c #FDFEC5",
+"k- c #F9FAC5",
+"l- c #5B5BB8",
+"m- c #1B1CB0",
+"n- c #1B1CAC",
+"o- c #3233A7",
+"p- c #A0A1BB",
+"q- c #F5F6BF",
+"r- c #343581",
+"s- c #39386F",
+"t- c #7B7C8E",
+"u- c #EDEDB8",
+"v- c #5F5F78",
+"w- c #282860",
+"x- c #7F7F87",
+"y- c #C2C2A3",
+"z- c #C4C5A4",
+"A- c #12126A",
+"B- c #4A4A79",
+"C- c #76757F",
+"D- c #BABA9A",
+"E- c #D2D2A3",
+"F- c #ACAD96",
+"G- c #151369",
+"H- c #110F66",
+"I- c #120F5E",
+"J- c #504F64",
+"K- c #5D5D69",
+"L- c #9A9A88",
+"M- c #C1C196",
+"N- c #A8A884",
+"O- c #1C102D",
+"P- c #0D0024",
+"Q- c #12116C",
+"R- c #12116D",
+"S- c #191974",
+"T- c #D7D7E4",
+"U- c #F3F3F4",
+"V- c #5B5B6C",
+"W- c #464669",
+"X- c #121377",
+"Y- c #CDCDE2",
+"Z- c #EDEDF7",
+"`- c #C6C6D5",
+" ; c #393879",
+".; c #22217B",
+"+; c #131372",
+"@; c #CACADE",
+"#; c #D6D6E1",
+"$; c #444378",
+"%; c #151577",
+"&; c #13137A",
+"*; c #141580",
+"=; c #A0A0C5",
+"-; c #EEEEE3",
+";; c #484891",
+">; c #19198A",
+",; c #16168D",
+"'; c #8281B2",
+"); c #FBFBDC",
+"!; c #5050AA",
+"~; c #1A1AA3",
+"{; c #1E1EAB",
+"]; c #C6C6CE",
+"^; c #FFFFD9",
+"/; c #DBDBD0",
+"(; c #3B3AB3",
+"_; c #201FC2",
+":; c #2020CA",
+"<; c #2525D2",
+"[; c #D3D3D4",
+"}; c #D3D3CF",
+"|; c #2A2AD9",
+"1; c #2828D8",
+"2; c #2929D9",
+"3; c #2424E4",
+"4; c #2425E6",
+"5; c #2525E8",
+"6; c #2425E5",
+"7; c #2626E7",
+"8; c #A5A5D9",
+"9; c #FEFECB",
+"0; c #6565E1",
+"a; c #2525E7",
+"b; c #6666DE",
+"c; c #FDFDC8",
+"d; c #F9F9C2",
+"e; c #B7B8C5",
+"f; c #2223C0",
+"g; c #1E1FBF",
+"h; c #1D1EBA",
+"i; c #3436B3",
+"j; c #A6A6BE",
+"k; c #333389",
+"l; c #131273",
+"m; c #1B196F",
+"n; c #6D6D8D",
+"o; c #EBECB7",
+"p; c #565673",
+"q; c #0E0E58",
+"r; c #252567",
+"s; c #787882",
+"t; c #CACAA6",
+"u; c #B5B6A1",
+"v; c #131475",
+"w; c #51507B",
+"x; c #C0C09C",
+"y; c #D0D1A2",
+"z; c #9D9D92",
+"A; c #13126C",
+"B; c #525171",
+"C; c #656477",
+"D; c #A4A48D",
+"E; c #C0C095",
+"F; c #150928",
+"G; c #121170",
+"H; c #C0C0D8",
+"I; c #F9F9FA",
+"J; c #686876",
+"K; c #4B4A66",
+"L; c #24237C",
+"M; c #7E7FBE",
+"N; c #8E90CC",
+"O; c #8B8CCA",
+"P; c #4B4B9D",
+"Q; c #34358C",
+"R; c #272781",
+"S; c #BCBCD3",
+"T; c #DFDFE7",
+"U; c #4A4979",
+"V; c #252578",
+"W; c #13147C",
+"X; c #14147E",
+"Y; c #141481",
+"Z; c #9595C2",
+"`; c #FFFFF4",
+" > c #F2F2E7",
+".> c #4C4C94",
+"+> c #19198C",
+"@> c #17168E",
+"#> c #7979AF",
+"$> c #FFFFDF",
+"%> c #FDFDDD",
+"&> c #5555AC",
+"*> c #1B1AA6",
+"=> c #1C1BAD",
+"-> c #A5A5C9",
+";> c #EDEDD4",
+">> c #6A678A",
+",> c #4140B2",
+"'> c #2120CA",
+")> c #2221D3",
+"!> c #2525D5",
+"~> c #D2D2D5",
+"{> c #D5D5D0",
+"]> c #2B2BDB",
+"^> c #2323DE",
+"/> c #5151D6",
+"(> c #4C4BA8",
+"_> c #2B29CB",
+":> c #2625E5",
+"<> c #2526EB",
+"[> c #2626ED",
+"}> c #2626EE",
+"|> c #2929E9",
+"1> c #7473CD",
+"2> c #8787DE",
+"3> c #2525E9",
+"4> c #2B2BE9",
+"5> c #C5C5D1",
+"6> c #FEFFC6",
+"7> c #F4F5C6",
+"8> c #4D4ECD",
+"9> c #2021CA",
+"0> c #1E1FC3",
+"a> c #1E1FC0",
+"b> c #3839BA",
+"c> c #ABABBE",
+"d> c #EEEEBD",
+"e> c #30308B",
+"f> c #131170",
+"g> c #151470",
+"h> c #2A2979",
+"i> c #7C7DA4",
+"j> c #B6B7B1",
+"k> c #4D4C7E",
+"l> c #242474",
+"m> c #757482",
+"n> c #CFD0A8",
+"o> c #E2E2B0",
+"p> c #A1A19C",
+"q> c #141574",
+"r> c #171875",
+"s> c #55557D",
+"t> c #7A7881",
+"u> c #C4C49D",
+"v> c #CFCFA1",
+"w> c #88898E",
+"x> c #121270",
+"y> c #141370",
+"z> c #545374",
+"A> c #6C6C80",
+"B> c #ABAB90",
+"C> c #BFBF94",
+"D> c #9C9A83",
+"E> c #120832",
+"F> c #0D0023",
+"G> c #121274",
+"H> c #ABACCC",
+"I> c #727281",
+"J> c #4E4E66",
+"K> c #161675",
+"L> c #151574",
+"M> c #161577",
+"N> c #242480",
+"O> c #272782",
+"P> c #23227F",
+"Q> c #2A2A84",
+"R> c #22227D",
+"S> c #7C7DB3",
+"T> c #F9F9FD",
+"U> c #F6F6F7",
+"V> c #595983",
+"W> c #45416F",
+"X> c #332C6E",
+"Y> c #1F1C7A",
+"Z> c #25227D",
+"`> c #A7A6C5",
+" , c #F5F5EA",
+"., c #505096",
+"+, c #17168F",
+"@, c #7171AC",
+"#, c #5F5FAC",
+"$, c #1B1AA8",
+"%, c #1C1BAE",
+"&, c #5858BC",
+"*, c #FCFCD8",
+"=, c #9F9B9A",
+"-, c #777172",
+";, c #615D94",
+">, c #403BA6",
+",, c #2E2DBF",
+"', c #3334C0",
+"), c #D2D2CE",
+"!, c #D3D3C4",
+"~, c #23229B",
+"{, c #1A189E",
+"], c #6F6EB4",
+"^, c #D6D6C1",
+"/, c #5C546C",
+"(, c #3A3082",
+"_, c #2F2AC1",
+":, c #312CB7",
+"<, c #332DB2",
+"[, c #473E92",
+"}, c #9A96A9",
+"|, c #7070E4",
+"1, c #2526ED",
+"2, c #6F70DC",
+"3, c #A7A7CF",
+"4, c #2324D4",
+"5, c #2021CB",
+"6, c #1F20C6",
+"7, c #1E1FC1",
+"8, c #3B3BBB",
+"9, c #B2B3BD",
+"0, c #C3C4BC",
+"a, c #272789",
+"b, c #131277",
+"c, c #12106E",
+"d, c #12106D",
+"e, c #13126D",
+"f, c #1F1E72",
+"g, c #2A2B78",
+"h, c #2E2D78",
+"i, c #312F78",
+"j, c #1D1C6B",
+"k, c #1D1C6C",
+"l, c #626179",
+"m, c #D2D3A9",
+"n, c #A2A197",
+"o, c #50507A",
+"p, c #908F8A",
+"q, c #8E8B86",
+"r, c #363478",
+"s, c #58587F",
+"t, c #888787",
+"u, c #CDCEA0",
+"v, c #7C7C8B",
+"w, c #141472",
+"x, c #575776",
+"y, c #717082",
+"z, c #B0B091",
+"A, c #BDBD93",
+"B, c #8D8D87",
+"C, c #14126B",
+"D, c #100B51",
+"E, c #0E032E",
+"F, c #0D0022",
+"G, c #9696BE",
+"H, c #838390",
+"I, c #505067",
+"J, c #191973",
+"K, c #141371",
+"L, c #1C1D7C",
+"M, c #1E1E7F",
+"N, c #1E1F81",
+"O, c #17187C",
+"P, c #131376",
+"Q, c #25267E",
+"R, c #2E2F84",
+"S, c #2F3187",
+"T, c #7778B7",
+"U, c #E9EAF6",
+"V, c #BAB7C5",
+"W, c #605568",
+"X, c #51435C",
+"Y, c #564D77",
+"Z, c #9894AC",
+"`, c #FFFFF9",
+" ' c #F8F8EE",
+".' c #565596",
+"+' c #1A198C",
+"@' c #6565A9",
+"#' c #FFFFE0",
+"$' c #FEFEDE",
+"%' c #6A6AAD",
+"&' c #1B1AA3",
+"*' c #1B1BA9",
+"=' c #2121B2",
+"-' c #AFAFCB",
+";' c #FAF9D4",
+">' c #B5AFA1",
+",' c #766D7C",
+"'' c #64619F",
+")' c #6A6ABB",
+"!' c #5D5DAD",
+"~' c #D4D4C8",
+"{' c #FEFED3",
+"]' c #CFCFBD",
+"^' c #1F1E74",
+"/' c #5B5A91",
+"(' c #A3A4C0",
+"_' c #B1B1C1",
+":' c #9F9A9A",
+"<' c #7A7076",
+"[' c #6A5E6A",
+"}' c #726770",
+"|' c #ACA696",
+"1' c #F8F8C8",
+"2' c #E1E1D0",
+"3' c #3333E8",
+"4' c #2526E9",
+"5' c #2526EA",
+"6' c #2E2FE7",
+"7' c #5E5ED9",
+"8' c #E7E7CA",
+"9' c #EDEDC8",
+"0' c #4242D8",
+"a' c #2122D2",
+"b' c #1F20C5",
+"c' c #1F20BE",
+"d' c #5354D8",
+"e' c #B6B7C6",
+"f' c #B1B3D1",
+"g' c #3F41A2",
+"h' c #292A87",
+"i' c #13116C",
+"j' c #201F73",
+"k' c #2A2A78",
+"l' c #1B1A6E",
+"m' c #151469",
+"n' c #20206C",
+"o' c #212168",
+"p' c #3F3F6E",
+"q' c #C9C9A5",
+"r' c #CDCCA2",
+"s' c #71676A",
+"t' c #776E6E",
+"u' c #9D9987",
+"v' c #7E7D85",
+"w' c #868585",
+"x' c #696986",
+"y' c #5E5E7B",
+"z' c #737383",
+"A' c #B4B591",
+"B' c #BCBC92",
+"C' c #787884",
+"D' c #100B52",
+"E' c #9494A0",
+"F' c #515168",
+"G' c #1B1A6F",
+"H' c #15156E",
+"I' c #171774",
+"J' c #1E1F7E",
+"K' c #1A1B7F",
+"L' c #16177F",
+"M' c #191B83",
+"N' c #17187F",
+"O' c #14147A",
+"P' c #242481",
+"Q' c #2C2E83",
+"R' c #2A2B7D",
+"S' c #26277A",
+"T' c #24257A",
+"U' c #4F4F9A",
+"V' c #CDCDE6",
+"W' c #EDECEE",
+"X' c #DAD8DE",
+"Y' c #EAEAF0",
+"Z' c #FCFCFD",
+"`' c #DDDDEA",
+" ) c #FAFAF0",
+".) c #5F5F98",
+"+) c #19198B",
+"@) c #5656A5",
+"#) c #6E6EAE",
+"$) c #1A1A9E",
+"%) c #1919A0",
+"&) c #1B1BA8",
+"*) c #2D2CB4",
+"=) c #B1B1CB",
+"-) c #DFE0D4",
+";) c #A3A4CD",
+">) c #6062BA",
+",) c #3D3EAC",
+"') c #2F30A6",
+")) c #3637A5",
+"!) c #43449C",
+"~) c #424397",
+"{) c #383990",
+"]) c #13147F",
+"^) c #181981",
+"/) c #18197F",
+"() c #1A1A7D",
+"_) c #3B3C8E",
+":) c #8081AD",
+"<) c #C8C9C6",
+"[) c #FAFACC",
+"}) c #EEEECE",
+"|) c #5E5EDD",
+"1) c #2425E2",
+"2) c #2324E1",
+"3) c #2425E1",
+"4) c #4848DA",
+"5) c #9393D0",
+"6) c #9495D0",
+"7) c #2223D7",
+"8) c #2022D1",
+"9) c #1F20C8",
+"0) c #1E1FB7",
+"a) c #5455D6",
+"b) c #6162CE",
+"c) c #393BA6",
+"d) c #2C2D8A",
+"e) c #27277B",
+"f) c #161470",
+"g) c #16146E",
+"h) c #232276",
+"i) c #272778",
+"j) c #16146D",
+"k) c #222272",
+"l) c #22226F",
+"m) c #24256E",
+"n) c #28286C",
+"o) c #6B6C82",
+"p) c #D0D0A7",
+"q) c #DCDCAB",
+"r) c #CBCAA0",
+"s) c #D1D1A3",
+"t) c #CDCDA2",
+"u) c #7C7B85",
+"v) c #828285",
+"w) c #CACB9D",
+"x) c #565682",
+"y) c #61607F",
+"z) c #767583",
+"A) c #B7B891",
+"B) c #6A6A80",
+"C) c #121171",
+"D) c #121275",
+"E) c #5E5E9D",
+"F) c #EEEEF2",
+"G) c #9293A8",
+"H) c #26266D",
+"I) c #18196D",
+"J) c #1C1D71",
+"K) c #1E1E78",
+"L) c #20217F",
+"M) c #1C1D81",
+"N) c #181A82",
+"O) c #181A85",
+"P) c #161886",
+"Q) c #151684",
+"R) c #171885",
+"S) c #141581",
+"T) c #151680",
+"U) c #18197C",
+"V) c #131371",
+"W) c #111069",
+"X) c #11116A",
+"Y) c #181971",
+"Z) c #3A3B8A",
+"`) c #BBBBD9",
+" ! c #FEFEFF",
+".! c #D9D9E6",
+"+! c #6B6BA9",
+"@! c #6060A7",
+"#! c #EEEEF0",
+"$! c #EBEBE7",
+"%! c #55559B",
+"&! c #16168A",
+"*! c #4B4BA0",
+"=! c #EDEDD8",
+"-! c #EEEED7",
+";! c #6666AB",
+">! c #181899",
+",! c #19199C",
+"'! c #1A1AA7",
+")! c #1E1FA5",
+"!! c #2D2FA4",
+"~! c #2123AA",
+"{! c #1A1CA9",
+"]! c #1B1CAF",
+"^! c #1B1CAD",
+"/! c #191A9F",
+"(! c #171898",
+"_! c #171894",
+":! c #161790",
+"<! c #15178D",
+"[! c #141685",
+"}! c #15167A",
+"|! c #2C2D82",
+"1! c #898AA6",
+"2! c #ECEDCB",
+"3! c #AFB0CA",
+"4! c #4647CE",
+"5! c #2123D4",
+"6! c #2223D8",
+"7! c #2223D9",
+"8! c #3031D8",
+"9! c #6465D2",
+"0! c #E1E1CA",
+"a! c #E4E4C9",
+"b! c #3738D2",
+"c! c #1F21CB",
+"d! c #1D1DB7",
+"e! c #1F20AB",
+"f! c #1B1C9C",
+"g! c #292A93",
+"h! c #42428E",
+"i! c #232279",
+"j! c #131272",
+"k! c #14126F",
+"l! c #1F1E77",
+"m! c #232479",
+"n! c #1A1A73",
+"o! c #1C1C73",
+"p! c #202174",
+"q! c #222373",
+"r! c #232471",
+"s! c #20216C",
+"t! c #1F1F67",
+"u! c #3D3E72",
+"v! c #949491",
+"w! c #D5D5A7",
+"x! c #C0C09E",
+"y! c #807F8A",
+"z! c #292873",
+"A! c #6A6981",
+"B! c #BDBD99",
+"C! c #BCBC98",
+"D! c #48487E",
+"E! c #212179",
+"F! c #5D5E81",
+"G! c #ACAC8E",
+"H! c #ADAD8D",
+"I! c #50507E",
+"J! c #131274",
+"K! c #131172",
+"L! c #131171",
+"M! c #15156F",
+"N! c #272876",
+"O! c #2A2B7E",
+"P! c #282982",
+"Q! c #222483",
+"R! c #1E2084",
+"S! c #1C1E85",
+"T! c #191A87",
+"U! c #15168A",
+"V! c #141689",
+"W! c #141687",
+"X! c #141480",
+"Y! c #181970",
+"Z! c #272877",
+"`! c #2C2D7F",
+" ~ c #14147D",
+".~ c #151583",
+"+~ c #151585",
+"@~ c #16168B",
+"#~ c #171790",
+"$~ c #171791",
+"%~ c #171897",
+"&~ c #1D1FBA",
+"*~ c #1C1EB6",
+"=~ c #1E1EBF",
+"-~ c #1D1DB8",
+";~ c #191AA3",
+">~ c #18189A",
+",~ c #171895",
+"'~ c #151586",
+")~ c #151580",
+"!~ c #1A1B79",
+"~~ c #181986",
+"{~ c #1B1CAE",
+"]~ c #1C1DB3",
+"^~ c #1C1EB9",
+"/~ c #1D1FBE",
+"(~ c #1E20C4",
+"_~ c #2022C7",
+":~ c #5051CF",
+"<~ c #A4A4CE",
+"[~ c #FFFFC9",
+"}~ c #7B7BC7",
+"|~ c #1E1FC2",
+"1~ c #1A1BA9",
+"2~ c #181999",
+"3~ c #1D1D89",
+"4~ c #2C2B81",
+"5~ c #2E2D7E",
+"6~ c #26257B",
+"7~ c #181774",
+"8~ c #1A1A77",
+"9~ c #1B1B78",
+"0~ c #1A1977",
+"a~ c #141373",
+"b~ c #1F2077",
+"c~ c #202176",
+"d~ c #1B1C71",
+"e~ c #13126A",
+"f~ c #101066",
+"g~ c #100F63",
+"h~ c #141362",
+"i~ c #242569",
+"j~ c #30316C",
+"k~ c #25256B",
+"l~ c #131275",
+"m~ c #131276",
+"n~ c #141477",
+"o~ c #161778",
+"p~ c #171879",
+"q~ c #191B79",
+"r~ c #191978",
+"s~ c #13136F",
+"t~ c #26277D",
+"u~ c #1D1E7E",
+"v~ c #18187F",
+"w~ c #151685",
+"x~ c #151686",
+"y~ c #161788",
+"z~ c #15178A",
+"A~ c #15168B",
+"B~ c #15178E",
+"C~ c #16178F",
+"D~ c #161890",
+"E~ c #15178B",
+"F~ c #141686",
+"G~ c #151581",
+"H~ c #191A7B",
+"I~ c #1F1F78",
+"J~ c #151573",
+"K~ c #131374",
+"L~ c #16168C",
+"M~ c #16168E",
+"N~ c #16178E",
+"O~ c #191BA0",
+"P~ c #1E20BA",
+"Q~ c #1F20C7",
+"R~ c #2223DC",
+"S~ c #2222D7",
+"T~ c #2122D1",
+"U~ c #1F1FC3",
+"V~ c #1C1CB2",
+"W~ c #19199E",
+"X~ c #181898",
+"Y~ c #151587",
+"Z~ c #131476",
+"`~ c #161894",
+" { c #18199C",
+".{ c #191BA2",
+"+{ c #3132B5",
+"@{ c #7070CD",
+"#{ c #EDEDCB",
+"${ c #D2D2C5",
+"%{ c #2829BA",
+"&{ c #1D1EB9",
+"*{ c #1D1EB8",
+"={ c #1E1FB5",
+"-{ c #2021A6",
+";{ c #1A1A8F",
+">{ c #15147C",
+",{ c #151374",
+"'{ c #1E1E7B",
+"){ c #1D1D7C",
+"!{ c #17177A",
+"~{ c #151579",
+"{{ c #181975",
+"]{ c #191A74",
+"^{ c #1B1D73",
+"/{ c #17186F",
+"({ c #17186D",
+"_{ c #18196B",
+":{ c #191A69",
+"<{ c #1C1C68",
+"[{ c #24256B",
+"}{ c #1B1C69",
+"|{ c #111168",
+"1{ c #11106A",
+"2{ c #151677",
+"3{ c #191A78",
+"4{ c #1B1C79",
+"5{ c #161676",
+"6{ c #131173",
+"7{ c #121371",
+"8{ c #14147F",
+"9{ c #161791",
+"0{ c #161893",
+"a{ c #161892",
+"b{ c #161891",
+"c{ c #161784",
+"d{ c #15157F",
+"e{ c #14137A",
+"f{ c #13137C",
+"g{ c #151687",
+"h{ c #191B9F",
+"i{ c #1E20B2",
+"j{ c #1F21C5",
+"k{ c #2022D0",
+"l{ c #2122D5",
+"m{ c #2324DF",
+"n{ c #2324E0",
+"o{ c #2324DD",
+"p{ c #2021CF",
+"q{ c #1B1BAD",
+"r{ c #171888",
+"s{ c #5454BB",
+"t{ c #A7A7C8",
+"u{ c #DCDCC3",
+"v{ c #C3C3BC",
+"w{ c #6363AB",
+"x{ c #28289A",
+"y{ c #22218C",
+"z{ c #1B1A82",
+"A{ c #1D1C7E",
+"B{ c #1F1E7E",
+"C{ c #18187C",
+"D{ c #14137C",
+"E{ c #14147C",
+"F{ c #13147B",
+"G{ c #13147A",
+"H{ c #121378",
+"I{ c #161775",
+"J{ c #181A75",
+"K{ c #1A1B73",
+"L{ c #1B1C72",
+"M{ c #1B1D70",
+"N{ c #1C1E6E",
+"O{ c #1D1E6C",
+"P{ c #1E1F6B",
+"Q{ c #20216B",
+"R{ c #1E1F6A",
+"S{ c #161569",
+"T{ c #111067",
+"U{ c #121069",
+"V{ c #151576",
+"W{ c #171777",
+"X{ c #1B1B79",
+"Y{ c #141375",
+"Z{ c #171893",
+"`{ c #18199D",
+" ] c #181A9F",
+".] c #18199A",
+"+] c #171998",
+"@] c #171997",
+"#] c #171999",
+"$] c #171896",
+"%] c #161895",
+"&] c #18198A",
+"*] c #191988",
+"=] c #181987",
+"-] c #171785",
+";] c #141582",
+">] c #15157E",
+",] c #1D1E91",
+"'] c #1F21A1",
+")] c #2224AD",
+"!] c #2325C2",
+"~] c #2325D1",
+"{] c #2324DA",
+"]] c #2223DD",
+"^] c #2324DE",
+"/] c #2223DA",
+"(] c #2122D4",
+"_] c #2021CC",
+":] c #1C1CB1",
+"<] c #1A1BA7",
+"[] c #191995",
+"}] c #1B1B92",
+"|] c #161684",
+"1] c #16167D",
+"2] c #1D1D7B",
+"3] c #20207C",
+"4] c #1B1A79",
+"5] c #161479",
+"6] c #1F1D83",
+"7] c #201F83",
+"8] c #1A1981",
+"9] c #191880",
+"0] c #171780",
+"a] c #15147F",
+"b] c #131581",
+"c] c #131580",
+"d] c #13157F",
+"e] c #131479",
+"f] c #161779",
+"g] c #171877",
+"h] c #171773",
+"i] c #1A1C70",
+"j] c #1B1C6E",
+"k] c #1D1E6D",
+"l] c #1E206D",
+"m] c #20216D",
+"n] c #20216E",
+"o] c #1B1B6D",
+"p] c #16166D",
+"q] c #15146D",
+"r] c #141475",
+"s] c #1A1B78",
+"t] c #1C1D79",
+"u] c #181877",
+"v] c #191AA0",
+"w] c #191AA2",
+"x] c #191BA4",
+"y] c #191BA5",
+"z] c #191BA6",
+"A] c #17199A",
+"B] c #171789",
+"C] c #181889",
+"D] c #191A89",
+"E] c #1B1B89",
+"F] c #1C1C8B",
+"G] c #1A1B8E",
+"H] c #191A90",
+"I] c #1A1A94",
+"J] c #1A1A97",
+"K] c #1A1B9A",
+"L] c #21229F",
+"M] c #2222A0",
+"N] c #20219D",
+"O] c #181894",
+"P] c #19198D",
+"Q] c #1B1B8B",
+"R] c #1D1D8B",
+"S] c #1D1E89",
+"T] c #1C1C85",
+"U] c #1B1B84",
+"V] c #1A1A85",
+"W] c #191986",
+"X] c #181886",
+"Y] c #151584",
+"Z] c #141688",
+"`] c #171872",
+" ^ c #16176F",
+".^ c #16176D",
+"+^ c #16166B",
+"@^ c #15166A",
+"#^ c #16166A",
+"$^ c #16156C",
+"%^ c #181878",
+"&^ c #1C1C79",
+"*^ c #141374",
+"=^ c #18199E",
+"-^ c #191BA7",
+";^ c #1A1CAA",
+">^ c #1A1CAB",
+",^ c #1A1CAC",
+"'^ c #181AA0",
+")^ c #181A9E",
+"!^ c #181A9D",
+"~^ c #181A9C",
+"{^ c #17199B",
+"]^ c #161996",
+"^^ c #15178C",
+"/^ c #13147E",
+"(^ c #171970",
+"_^ c #17196F",
+":^ c #17196E",
+"<^ c #15156D",
+"[^ c #13126F",
+"}^ c #131271",
+"|^ c #161677",
+"1^ c #1D1E7A",
+"2^ c #181977",
+"3^ c #1A1CAD",
+"4^ c #1B1DB0",
+"5^ c #1B1DB1",
+"6^ c #1B1DB2",
+"7^ c #1A1BAA",
+"8^ c #191AA5",
+"9^ c #16178D",
+"0^ c #141585",
+"a^ c #131373",
+"b^ c #151673",
+"c^ c #171972",
+"d^ c #171971",
+"e^ c #181871",
+"f^ c #181872",
+"g^ c #171873",
+"h^ c #171775",
+"i^ c #171776",
+"j^ c #171677",
+"k^ c #171778",
+"l^ c #1E1E7A",
+"m^ c #1B1DB3",
+"n^ c #1C1DB4",
+"o^ c #1C1DB5",
+"p^ c #1C1DB6",
+"q^ c #181AA1",
+"r^ c #171892",
+"s^ c #15168C",
+"t^ c #151672",
+"u^ c #171973",
+"v^ c #171874",
+"w^ c #1A1979",
+"x^ c #1E1F7B",
+"y^ c #1E1F7A",
+"z^ c #131278",
+"A^ c #14137B",
+"B^ c #151482",
+"C^ c #1B1DAF",
+"D^ c #1C1EB7",
+"E^ c #1C1EB8",
+"F^ c #1C1DB2",
+"G^ c #1A1BA6",
+"H^ c #1A1BA5",
+"I^ c #151674",
+"J^ c #181976",
+"K^ c #191A76",
+"L^ c #171878",
+"M^ c #171678",
+"N^ c #1C1C7A",
+"O^ c #1F1F7B",
+"P^ c #141174",
+"Q^ c #131174",
+"R^ c #141278",
+"S^ c #1C1DB7",
+"T^ c #1B1CB1",
+"U^ c #1A1BAB",
+"V^ c #171792",
+"W^ c #141586",
+"X^ c #12147A",
+"Y^ c #121379",
+"Z^ c #181979",
+"`^ c #191A79",
+" / c #1A1A7A",
+"./ c #1A1A79",
+"+/ c #1F207B",
+"@/ c #20207B",
+"#/ c #1F1F7A",
+"$/ c #141276",
+"%/ c #141277",
+"&/ c #141279",
+"*/ c #14137D",
+"=/ c #191BA8",
+"-/ c #1A1CAE",
+";/ c #1C1EB5",
+">/ c #1D1EBB",
+",/ c #1B1CAB",
+"'/ c #1A1AA5",
+")/ c #121479",
+"!/ c #141478",
+"~/ c #17187A",
+"{/ c #19197B",
+"]/ c #181779",
+"^/ c #181777",
+"// c #20217B",
+"(/ c #21217B",
+"_/ c #151582",
+":/ c #1D1FBD",
+"</ c #16178C",
+"[/ c #12147C",
+"}/ c #12147B",
+"|/ c #14157A",
+"1/ c #1A1B7C",
+"2/ c #191A7C",
+"3/ c #16177B",
+"4/ c #17177B",
+"5/ c #151479",
+"6/ c #1D1C7A",
+"7/ c #21217C",
+"8/ c #14127A",
+"9/ c #15137E",
+"0/ c #151480",
+"a/ c #151481",
+"b/ c #181BA2",
+"c/ c #1B1DB4",
+"d/ c #13157E",
+"e/ c #13137B",
+"f/ c #1A1B7D",
+"g/ c #16167A",
+"h/ c #151476",
+"i/ c #1C1B79",
+"j/ c #22227C",
+"k/ c #15137C",
+"l/ c #15137D",
+"m/ c #15137F",
+"n/ c #1B1DAE",
+"o/ c #15147B",
+"p/ c #1B1B7E",
+"q/ c #1D1D7E",
+"r/ c #17167A",
+"s/ c #151379",
+"t/ c #141275",
+"u/ c #151275",
+"v/ c #191777",
+"w/ c #15127A",
+"x/ c #151484",
+"y/ c #141684",
+"z/ c #131582",
+"A/ c #16167E",
+"B/ c #1A1A7F",
+"C/ c #1D1D7F",
+"D/ c #1F1F80",
+"E/ c #202080",
+"F/ c #21217F",
+"G/ c #1F1E7D",
+"H/ c #151477",
+"I/ c #141175",
+"J/ c #23227D",
+"K/ c #15127B",
+"L/ c #151483",
+"M/ c #161587",
+"N/ c #161589",
+"O/ c #161896",
+"P/ c #171A9B",
+"Q/ c #181AA2",
+"R/ c #161680",
+"S/ c #191981",
+"T/ c #1A1A81",
+"U/ c #1A1A80",
+"V/ c #1B1B80",
+"W/ c #1B1B7F",
+"X/ c #1C1C7E",
+"Y/ c #222280",
+"Z/ c #23237F",
+"`/ c #24237F",
+" ( c #1D1C7B",
+".( c #191778",
+"+( c #1D1B7A",
+"@( c #22227E",
+"#( c #15127C",
+"$( c #151380",
+"%( c #161484",
+"&( c #161586",
+"*( c #161588",
+"=( c #161689",
+"-( c #191BA3",
+";( c #15178F",
+">( c #171680",
+",( c #181880",
+"'( c #18177F",
+")( c #16157D",
+"!( c #16147A",
+"~( c #18167A",
+"{( c #1B197B",
+"]( c #1F1E7C",
+"^( c #25247F",
+"/( c #201F7C",
+"(( c #151376",
+"_( c #191879",
+":( c #21217D",
+"<( c #1B1A7B",
+"[( c #151279",
+"}( c #161480",
+"|( c #181783",
+"1( c #1A1885",
+"2( c #1A1987",
+"3( c #1A1A88",
+"4( c #1A1A8A",
+"5( c #1A1A8B",
+"6( c #18188E",
+"7( c #17178E",
+"8( c #171A9C",
+"9( c #171A9D",
+"0( c #141482",
+"a( c #191881",
+"b( c #18177E",
+"c( c #15137B",
+"d( c #19187A",
+"e( c #1E1C7C",
+"f( c #1D1B7B",
+"g( c #262580",
+"h( c #26257F",
+"i( c #22217E",
+"j( c #171579",
+"k( c #1A197B",
+"l( c #1C1B7C",
+"m( c #141379",
+" . + @ # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # $ % # # # # # & * = # # # # # # # # # # - ; - > , ' # # # # # ) ! # # # # # # ~ { # # # ] ^ # # # # # # # # # # # # # # # / ( _ : ",
+" < [ } # # # # # | 1 # # # # # # # # # # # # # # # # # # # # # # # # # # # # 2 3 # # # > 4 5 & 6 7 ",
+"8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 5 9 5 0 ! a a 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 ",
+"b b b b b b b b b b b b b 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 c 9 8 8 8 8 8 8 8 8 8 8 d e f 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 b b b b b b b b b b b b b ",
+"g g g g g g g g g g g g g g b b b b b b b b b b b b b b b b b b b b b b b b b h i j 8 b 8 b b b b 8 b b b 8 8 8 8 8 8 k 9 8 8 8 8 8 8 8 8 8 8 b b 8 b 8 b b b b 8 b b b b b b h l m b b b b b b b b b b b b b n b b b b o p g g g g g g g g g g g g g g ",
+"g g g g g g g g q g r s t g g g g g g r u v g g g g g g g g g w x g g g g g g g g g g g g g g g g g g g g g g g g g g y z g g g g g g g g g g g g g g g g g g g g g g g g g g g A t g g g g g g g g g g g g B C g g g g D E g g g r g g g g g g g g g g ",
+"F F F F F F F G H F q I J F F F g g g g K L g g g g g g g g g M N g g g g g g g g g g g g g g g g g g g g g g g g g g O O g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g g P Q g g g g F F F F q R S F F F F F F F F F ",
+"T F F F F F F U V F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F q W F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F L F F F F F F F F F F ",
+"X Y Y Y Y Z ` ...+.@.#.$.%.&.*.=.-.;.>.,.'.).!.!.!.!.!.F F F F F F F F F F F F F F F F F F F F F F F F F F ~.{.].O F F F F ^.+./.(._.:.<.F F F F F F F F F F F F F F F F F F F F F F F F F F F !.!.!.!.!.!.!.!.!.!.!.;.[.}.|.1.2.!.!.!.!.!.Y Y Y Y 3.4.",
+"Y Y Y Y 5.6.7.8.9.0.a.b.c.d.e.f.g.h.i.j.k.l.m.Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y n.( o.!.!.!.!.!.!.!.!.!.!.^.p.q.r.2.!.!.s.t.u.v.w.x.x.y.z.=.!.!.!.!.!.!.!.!.!.A.B.!.!.!.Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y C.D.E.F.G.H.U Y Y Y Y I.J.K.Y L.M.",
+"N.N.N.N.O.P.Q.R.S.T.U.V.W.X.Y.Z.`. +.+++@+#+$+Y Y Y Y Y Y Y Y V %+Y Y Y Y Y 2.&+*+=+-+Y Y Y Y Y Y Y Y Y Y ^.;+>+,+'+Y )+!+~+{+{+w.x.x.]+]+^+n.Y Y Y Y Y Y Y Y /+(+Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y _+:+<+[+}+|+1+N.N.N.2+3+4+5+2+N.N.",
+"N.N.N.N.6+7+R.8+9+0+a+b+c+c+d+e+f+2+g+h+i+j+k+N.N.N.N.N.N.N.N.l+m+N.N.N.N.N.n+o+p+q+r+N.N.N.N.N.N.N.N.N.N.s+t+>+u+'+N.s v+h+w+x+y+z+A+B+C+D+E+N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.F+N.N.N.N.N.G+H+I+J+K+L+N.N.N.N.M+N+N.N.N.N.N.",
+"O+O+O+O+P+Q+R+R+S+T+U+O+O+O+O+O+V+O+W+X+Y+Z+`+ @O+O+O+O+O+O+O+.@+@O+O+N.N.N.@@#@$@%@&@N.N.N.*@=@N.N.N.N.N.-@;@>+>@+@N.,@'@h+)@N.N.N.N.2+!@~@{@N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.N.O+O+O+O+O+O+O+O+s+]@O+^@/@(@_@O+O+O+:@<@[@}@K+|@O+O+O+ @1@2@O+O+O+O+O+",
+"O+O+O+3@2@4@5@6@7@8@9@O+O+O+O+O+O+0@a@b@c@d@e@f@O+O+O+O+O+O+O+O+O+O+O+O+O+O+O+g@h@i@O+O+O+O+i@j@O+O+O+3@3@k@;@>+l@+@O+m@n@h+o@O+O+O+O+O+O+p@q@O+O+O+O+O+O+O+O+O+O+O+O+O+O+O+O+O+O+O+3@O+O+O+O+O+O+O+ @r@s@t@u@v@O+O+O+w@x@y@z@A@B@3@O+O++@C@D@O+O+O+O+O+",
+"E@E@E@F@G@H@I@n@J@K@L@E@E@E@E@E@E@M@N@O@P@Q@R@S@E@T@U@V@W@X@E@E@E@Y@Z@V@`@E@E@ #.#+#J.@#@#######$#%#&#*#=#-#;#>+>#+@,#'#)#n@!#~#@#@#@#@#{#]#^#/#(#_#:#<#E@E@E@3@[#}#}#%#|#[#V@1#2#3#4#5#6#7#E@E@E@X@8#9#0#a#b#c#d#e#i@f#g#h#A@i#j#k#l#m#n#E@E@E@E@E@E@E@",
+"E@E@E@E@E@o#p#q#r#s#t#O.O.O.u#u#2#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#V#V#W#X#Y#Z#`# $.$+$@$>+#$$$%$&$*$n@=$-$;$>$W#,$,$%$'$)$!$~${$]$^$/$Q#($_$:$<$-$[$}$|$1$2$3$4$5$6$7$8$9$0$a$b$c$d$e$f$g$h$i$j$k$l$m$K+n$o$p$q$r$s$t$u$S@E@E@E@E@",
+"v$v$v$v$v$w$x$y$z$A$B$C$C$C$C$D$E$F$G$H$I$J$K$L$M$N$O$P$Q$R$S$S$T$U$V$W$X$Y$Z$`$x$ %.%+%@%#%$%%%&%*%X+X+=%-%-%>+;%>%,%'%)%!%h+h+~%{%]%^%/%(%_%:%<%[%}%|%1%2%3%4%5%6%7%8%9%0%a%b%c%d%e%f%g%h%i%j%k%l%m%n%o%e$p%q%r%s%t%u%v%w%A@x%y%z%A%B%C%D%E%`.v$v$v$v$",
+"v$v$v$v$E@F%G%H%I%J%I$I$I$I$I$H$K%L%M%N%I$O%P%Q%R%S%I%T%U%3%V%2%W%X%G%Y%Z%`% &.&+&@&#&$&%&&&*&=&*%-&;&>&,&'&)&-%!&~&{&{&]&^&/&h+{+(&_&:&<&[&}&|&1&[%[%2&3&4&5&6&d%7&8&9&0&a&b&b%c&d&e&f&g&h&i&j&k&l&m&n&o&p&q&r&s&t&u&v&v%w&n$x&y&z&A&B&C&D&E&F&G&v$v$v$",
+"H&v$I&J&K&L&M&J%N&O&P&Q&R&R&R&R&S&T&U&V&I$W&X&Y&Z&`&I$ *.*+*@*#*$*%*O@&***=*%&-*+&;*>*,*'*)*!*=&~*{*]*^*/*(*_*-%:*<*[*}*|*|*1*2*3*{+w.4*5*6*7*7*8*9*[%0*a*b*c*d*e*6%f*g*h*i*j*b%k*l*2%2%m*n*o*R.p*V%q*r*s*p&t*u*S$v*w*x*y*z*x%z%A*H&B*C*D*E*F*E%G*H&H&H&",
+"H*I*J*K*L*M*N*I$O&O*P*Q*R*S*T*U*V*U*W*X*I$Y*Z*`* =.=I$+=@=#=$=%=&=*===-=;=>=,='=)=!=~={=]=^=q#/=(=_=:=<=[=}=|=-%1=2=3=4=5=6=7=8=9=0=)#w.4*a=b=c=4=d=++e=f=g=h=i=p+j=k=l=m=n=j*b%o=p=Z$2%q=r=s=i%t=2%u=v=w=p&x=3%y=z=A=B=C=D=x&E=F=G=H=I=J=K=L=M=N=O=O=O=",
+"P=Q=R=S=T=U=V=I$W=X=Y=V*Z=g*`= - -.-+-@-I$#-$-%-&-*-I$=-o=--.-'%;->-,-'-)-!-~-{-b@]-^-/-(-_-q#:-<-<=[-}-|-1-2--%3-4-5-6-7-8-9-9-9-0-a-b-w.!%c-d-6-e-f-e=g-h-i-j-k-l-m-n-o-p-j*q-r-%=Q*@%s-t-s=u-v-2%w-x-y-f$z-A-U*U*U*B-C-D-E-F-G-H-I-J-K-L-M-N-O-P-P-P-",
+" &Q-R-S*$=S-T-I$U-V-W- - -.-4&4&X-X-X-Y-Z-`- ;.;+;@;I$#;$;%;&;3&*;=;H%-;;;>;,;';b@);!;~;{;];^;/;(;_;}-:;3=<;[;-%};|;6-1;2;3;d-4;5;6;7;8;w.9;0;a;9-8-b;c;e=p%d;j-e;f;g;h;i;j;j*R+k;,%l;$=m;n;j.o;p;q;r;s;t;b#u;v; - -`=w;C=x;y;z;#=R-A;B;C;D;E;s$F;P-P-P-",
+"$=G;%=g*g*--H;I$I;J;K;4&4&X-X-4&.-`=L;M;N;O;P;Q;R;S;I$T;U;V;W;X;Y;Z;`; >.>+>@>#>$>%>&>*>=>->^;;>>>,>'>3=)>!>~>=%{>]>^>/>(>_>:><>[>}>|>1>w.x.2><>3><>4>5>e=e=6>7>8>9>0>a>b>c>j*d>e>&;l;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>F>F>",
+"g*`=`=G> -.-H>I$H$I>J>K>4&.- -%=S*L>M>N>O>P>Q>k;R>S>T>U>V>W>X>Y>Z>`>y# ,.,+>+,@,$>%>#,$,%,&,*,!*=,-,;,>,,,',),=%!,~,{,],^,/,(,_,:,<,[,},w.x.|,}>}>1,<>2,6@e=6>3,4,5,6,7,8,9,b&0,a,b,c,d,e,f,g,h,i,j,k,l,m,r%n,o,p,q,r,s,t,G.u,v,`=g*w,x,y,z,A,B,C,D,E,F,",
+"G> -.-.-.-.-G,I$I$H,I,J,`=%=S*K,L,M,;-N,O,P,K>Q,R,S,T,U,V,W,X,Y,Z,I;`, '.'+'+,@'#'$'%'&'*'='-'^;;'>',''')'!'~'{']'^'f>/'('_':'<'['}'|'1'w.2'3'3>4'5'6'7'8'e=9'0'a'5,b'c'd'e'f'g'h'=*%=#*i'j'k'l'm'n'o'p'q's%r's't'/@u'v'w'z%z%x'G>G>&=y'z'A'B'C'G;G;R-D'",
+".-.-.-.-.-.-#>I$I$E'F'G'`%H'I'J'K'L'>=M'N'O'P'Q'R'S'T'U'V'W'X'Y'Z'`'I% ).)+)@>@)#'$'#)$)%)&)*)=)-);)>),)')))!)~){)>=])^)/)()_):)<)[)h+{+})|)1)2)2)3)4)5)c;e=6)7)8)9)g;0)a)b)c)d)e)f)d, &g)h)i)j)k)l)m)n)o)p)q)z@r)s)t)u)v)y&w)x)G>G>&=y)z)A)L=B)g*%=C)G;",
+".-.-.-.-D)G>E)F)F)G)H)I)J)K)L)M)N)O)P)Q)R)S)T)U)V)W)X)Y)Z)`) !.!+!@!#!$!%!&!,;*!=!-!;!>!>!,!'!)!!!~!{!]*]!^!]*/!(!_!:!<!~-[!*;}!|!1!2!3!4!5!7)6!7!8!9!0![%a!b!8)c!7,d!^!e!f!g!h!i!j!f>k!l!m!n!o!p!q!r!s!t!u!v!w!i#x!y!z!A!B!C!D!D)D)P,E!F!G!H!I!`=g*g*%=",
+"D)D)D)J!l;K!L!G;$=M!N!O!P!Q!R!S!T!'*~-U!U!V!W!,*X!'%%=Y!Z!S'`!P,&; ~X!.~+~'*@~,;@>#~$~{={=_!%~}&&~h;*~a>9)6,0>=~-~]!;~>~,~:!@~'~)~!~~~{~]~^~/~(~_~:~<~[~c;}~6,b'|~-~m-1~2~3~4~5~6~7~8~9~0~a~a~b~c~d~e~f~g~h~i~j~k~A-(%#*S*G;g*`=J!l~m~n~o~p~q~r~G>`=`=g*",
+"l~J!l;K!L!f>G;$=s~i)t~u~v~w~x~y~z~A~<!B~C~D~C~B~E~~-F~G~H~I~J~K~m~&;3&X!,='~~-&!@~L~M~N~N~:!O~P~Q~(~c!6!R~S~T~:;U~h;V~]*W~X~{=,;Y~)~Z~3&`~ {.{]*+{@{#{]+${%{&{*{={-{;{>{K!,{'{){!{~{'%,%P,D)G>{{]{^{/{({_{:{<{[{}{|{1{1{ &S*G;C)`=J!J!l~2{3{4{4{5{J!`=`=",
+"J!6{K!f>%=%=x>V*7{a~%&8{'*N~9{_!,~0{a{a{0{0{`~`~_!0{b{C~<!z~y~c{d{e{%&f{>=Q)'~g{'*'*'*x~A~h{i{j{k{l{m{2)n{o{5=p{Q~g;_=q{~;,!X~{=,;'~8{,%X-,*Y;r{s{t{u{v{w{x{y{z{A{P>B{C{D{E{E{E{W;W;F{G{%&H{X-Z~I{J{K{L{M{N{O{P{Q{R{S{T{U{#*$=G;K!l;J!J!V{W{4{4{X{Y{J!l;",
+"6{L!L!g*g*%=%=%=`=%&X!'*C~Z{%~|&`{ ] ]`{.]+](!@]+]+]#]+]@]$]%]0{a{:!B~E~&]*]=]-];]S)X;>],]'])]!]~]{]]]^>^]^]/](]_]U~h;:]<]W~>![]}]+>|]1]2]3]4]5]6]7]8]9]0]a]X!X!Y;;],=,=,=;]S)b]c]c]d]d]3&W;G{e]f]g]r>h]K{i]j]k]l]m]n]o]p]q]S*G;L!l;l;J!r]5{s]t]t]u]J!J!",
+"K!L!`=`=`=`=`=%='%X!g{C~_!X~`{v]w]x]x]y]z]y]w] ]`{`{ { {`{`{ {|&A]+]+]+]@]%]a{b{b{:!B~A~B]C]D]E]F]G]H]I]J]K]L]M]N]O]#~,;P]Q]R]S]T]U]V]W]T!X]X]Y]'~'*'*'*g{'*Z]V!~-'*Z]Z]Z]W!F~F~[!,*,=;]c]])3&F{G{H{.-`=I'`] ^.^+^@^#^+^$^A;S*G;L!l;J!Y{5{5{%^t]t]&^*^J!",
+"L!l;l~D)D)G>C)l~ ~+~L~Z{2~=^w]y]-^]*1~;^>^,^,^>^1~z];~v]'^v]}&}&'^'^'^'^'^ ])^!^~^ {{^A]#]+]@]]^%]`~`~0{a{a{b{b{b{b{9{:!:!:!:!b{b{D~D~D~b{b{b{b{b{D~D~C~C~C~C~C~N~<!^^^^^^E~A~U!'*g{[!,*,=S)c]/^W;G{H{4& -q>`](^_^:^({.^<^#=[^}^j!a~*^5{5{|^W{+-1^1^2^J!",
+"K!m~m~P,.-K!l;'%X!Y~N~_!.]v]y]1~,^3^{~]!4^m-m-5^6^4^{~>^;^;^7^1~]*<]8^[&[&;~;~}&'^ ] ]'^ ])^`{ { { {{^{^A]A]A]A]#]#]#]+]+]+]+]+]+]@]@]@]@]+]@]%~%~%~$]$],~,~_!0{a{9{:!:!C~N~9^A~U!~-'*x~0^,=;]*;])3&F{%&X-.-a^b^c^d^Y!Y!e^f^f^g^I'h^i^j^|^|^k^4{1^l^l^Y{",
+"K!K!l~l~6{J!l~e{Y;'*N~_!.] ]x]{!3^5^m^m^m^m^m^n^o^p^*~o^n^6^]!^!{~{~^!7^<]z]y]x];~[&[&8^[&;~;~;~;~;~w]w]w]w]q^q^q^'^'^ ] ] ] ])^)^`{`{`{`{ {|&.].].]A]2~+]%~%~$],~_!Z{r^9{:!N~9^s^A~~-'*x~0^,=;]*;/^3&F{%&X-4& -a^t^u^]{]{v^v^h^h^i^W{j^j^j^j^w^'{x^y^i^",
+"6{6{6{J!l~m~z^A^B^~-C~_!.] ]x]]*,^C^6^o^*~p^*~D^^~&{&{E^n^5^]!5^6^]~]~F^m-^!1~]*]*1~1~1~]*]*1~1~1~1~]*]*]*]*<]<]<]G^G^H^y][&[&;~w]w]}&}&v]/!)^`{`{`{ {|&.]2~(!%~%~$],~_!r^9{:!N~9^L~A~~-'*x~0^,=S)*;/^3&F{G{H{4&.-`=a^I^J^K^2^g]u]W{L^k^k^M^M^M^N^O^O^9~",
+"P^Q^l~m~b,R^e{D{X!'~,;0{#])^w]z];^3^4^m^*~E^^~^~^~^~^~*~]~5^m^p^S^D^E^E^E^o^]~]~]~]~F^T^]!{~^!>^U^U^7^7^7^1~1~1~1~]*]*]*<]<]G^G^H^H^[&[&;~w]}&v]v]/!=^`{ {|&.]2~X~%~$]_!Z{V^9{:!N~9^L~U!'*g{W^,*,=S)c]/^3&F{X^Y^X-4&4&4&Z~L^Z^`^p~Z^`^ /./%^M^M^r~+/@/#/",
+"$/$/%/R^&/e{A^*/8{,=~-C~,~{^'^x]=/>^-/5^m^;/E^^~^~E^E^o^m^o^E^h;>/7*7*>/>/h;&{D^p^n^]~5^m-{~^!n-,/,/>^U^7^7^7^7^1~1~1~]*]*<]<]<]G^H^'/[&[&;~w]w]}&v]/!W~`{ {|&.]2~%~$],~_!Z{V^:!C~N~L~A~~-'*x~0^,*;]S)c]/^3&F{X^)/H{H{H{'%!/~/H~{/!{!{!{]/k^M^k^^/O^//(/",
+"%/R^R^&/e{D{*/X;X!_/+~~-C~%]A]'^y]=/;^,^-/4^m^*~E^E^D^o^D^h;7*:/:/7*>/h;&{E^E^D^p^n^]~5^m-{~^!^!^!n-,/,/,/>^>^7^7^7^1~1~]*]*]*<]G^G^H^'/[&;~;~w]}&v]/!W~=^`{ {|&2~X~%~$]_!Z{V^9{C~N~</A~U!~-g{F~,*,=;]c]d]/^3&[/}/G{G{&;&;&;|/1/2/3/4/5/R^%/$/j^^/6/7/(/",
+"R^&/&/8/D{*/9/0/a/.~+~Y~U!C~0{+])^b/y]-^{!,^]!6^c/*~D^E^^~^~E^^~h;h;^~E^*~*~*~D^p^n^F^5^m-]!]!{~{~^!n-n-n-n-n-,/,/7^7^1~1~1~]*]*<]G^H^H^[&;~;~w]}&v] ]=^`{ {|&.]2~X~%~$],~_!V^9{C~N~9^s^U!~-'*F~[!,*;]b]c]d]d/3&3&W;W;F{e/e/A^()f/g/5/R^%/%/$/h/^/i/j/j/",
+"R^&/8/A^k/l/m/a/B^Y]+~Y~~-A~9^:!%]A] ]b/x]-^;^3^n/4^6^m^c/n^n^n^o^*~D^p^n^n^o^o^o^n^6^5^4^m-m-]!]!{~^!^!n-n-n-n-n-,/>^7^7^1~]*]*<]G^G^H^[&;~w]w]}&/!)^`{`{ {|&.]2~(!%~$],~_!a{9{:!N~9^^^U!~-'*F~[!,*,=b]c]c]d]d]/^/^3& ~D{D{o/p/q/r/s/%/%/$/t/u/v/i/j/j/",
+"R^&/w/k/l/9/m/a/B^x/'~Y~~-@~L~N~:!0{]^A])^q^b/x]z]-^;^3^-/{~{~C^4^6^m^m^6^6^m^m^m^]~6^5^5^4^]!]!{~^!^!n-n-n-n-n-,/,/>^7^7^1~1~]*<]G^G^H^[&;~w]}&v]/!)^`{ {|&|&.]#](!$],~_!0{a{9{:!N~<!^^U!~-Z]F~[!y/,=z/z/b]b]c]8{8{>]A/v~B/C/D/E/F/G/H/$/I/I/I/v/i/J/7/",
+"R^&/w/K/k/9/m/a/B^L/+~M/N/&!L~N~C~b{0{`~O/+]A]P/!^ ]Q/x]-^{!{!;^,^3^{~C^C^C^C^{~{~{~^!^!n-,^>^>^>^>^>^>^;^;^;^;^7^1~1~]*]*<]<]G^G^y]y][&;~;~w]}&v] ])^`{ {|&.]#]+]%~$]_!0{a{b{:!N~<!^^E~U!Z]W!F~[![!,*,=,=;]S)X!R/S/T/U/V/W/X/B{Y/Z/`/ (I/I/I/I/.(+(@(3]",
+"R^&/w/w/#(l/9/$(a/L/%(&(*(=(@~,;N~:!9{0{`~$]@]+]#]A]P/!^ ]q^-(x]y]z]z]z]-^]*]*]*]*]*]*1~1~1~1~1~1~1~1~1~1~1~]*]*]*]*<]<]z]z]y]x]x]x];~w]}&}&v] ])^)^`{ {|&.]#]+]@]$],~0{a{b{:!;(<!^^E~z~V!Z]W!F~F~[!,*,*,=;]Y;)~>(,('()(o/!(~({(](^(^(/(I/I/I/((_(2]:(<(",
+"R^8/[(w/w/K/l/9/}(|(1(2(3(4(5(+>6(7(:!l=Z{,~$]@]+]#]A]{^8(9()^)^ ]'^q^b/b/-(x]x]y]y]z]z]z]-^-^-^-^z]z]z]z]z]z]z]z]z]y]y]x]x]-(;~w]w]}&'^ ] ])^!^`{ {|&A]#]+]@]$],~`~0{a{b{D~;(<!^^E~z~U!~-'*g{W!F~0^,*,=0(a/)~a(U/b(c(&/&/d(e(_(f(g(h(i($/$/%/j(k(B{l(m("};
diff --git a/muse2/xpm/fluidsynth_banner_124x45.xpm b/muse2/xpm/fluidsynth_banner_124x45.xpm
new file mode 100644
index 00000000..8e3cb9ab
--- /dev/null
+++ b/muse2/xpm/fluidsynth_banner_124x45.xpm
@@ -0,0 +1,1899 @@
+/* XPM */
+static char * fluidsynth_banner_124x45_xpm[] = {
+"124 45 1851 2",
+" c None",
+". c #6EAEC2",
+"+ c #74B8CC",
+"@ c #76BBCF",
+"# c #76BBD0",
+"$ c #74B9CE",
+"% c #70B1C5",
+"& c #72B5CD",
+"* c #7FC9E2",
+"= c #87D4F0",
+"- c #8ADAF6",
+"; c #8BDBF7",
+"> c #8BDCF7",
+", c #8BDBF6",
+"' c #88D7F2",
+") c #80CBE5",
+"! c #75B8D1",
+"~ c #66A2B9",
+"{ c #6BABC7",
+"] c #7CC4E3",
+"^ c #85D3F3",
+"/ c #8ADAFB",
+"( c #8CDDFE",
+"_ c #8DDEFF",
+": c #8CDEFE",
+"< c #8BDBFC",
+"[ c #87D5F6",
+"} c #7EC8E7",
+"| c #70B1CD",
+"1 c #649FBC",
+"2 c #6AA8C8",
+"3 c #6DADCD",
+"4 c #6DADCE",
+"5 c #6BABCB",
+"6 c #68A5C4",
+"7 c #619AB8",
+"8 c #70B1D2",
+"9 c #7FC9ED",
+"0 c #87D6FA",
+"a c #89D9FE",
+"b c #8ADAFF",
+"c c #89D9FF",
+"d c #87D6FC",
+"e c #81CDF1",
+"f c #74B8D9",
+"g c #67A2C1",
+"h c #6AA9C8",
+"i c #6CADCC",
+"j c #6DAECE",
+"k c #6DAECD",
+"l c #6AA9C9",
+"m c #649FBE",
+"n c #6AA8CC",
+"o c #75BAE0",
+"p c #7CC5ED",
+"q c #80CBF4",
+"r c #82CDF7",
+"s c #82CEF7",
+"t c #81CCF6",
+"u c #7EC9F1",
+"v c #7BC2EB",
+"w c #75BAE1",
+"x c #6DADD1",
+"y c #629DBE",
+"z c #71B3D8",
+"A c #7FC9F2",
+"B c #85D2FC",
+"C c #87D5FF",
+"D c #86D4FF",
+"E c #86D3FD",
+"F c #81CDF6",
+"G c #75BADF",
+"H c #619ABB",
+"I c #6098BA",
+"J c #6BAACE",
+"K c #73B7DD",
+"L c #7AC1E9",
+"M c #7EC7F0",
+"N c #80CBF5",
+"O c #82CDF6",
+"P c #80CCF5",
+"Q c #7CC5EE",
+"R c #76BCE2",
+"S c #6CACD1",
+"T c #639DC4",
+"U c #73B7E2",
+"V c #7CC5F3",
+"W c #81CCFB",
+"X c #83CFFE",
+"Y c #83D0FF",
+"Z c #82CDFC",
+"` c #7FC9F7",
+" . c #79C0ED",
+".. c #6FB0DA",
+"+. c #6099BE",
+"@. c #70B2DB",
+"#. c #7EC7F4",
+"$. c #83CFFD",
+"%. c #84D0FF",
+"&. c #83CFFF",
+"*. c #73B8E2",
+"=. c #609ABF",
+"-. c #5C93B7",
+";. c #6CACD4",
+">. c #78BDE9",
+",. c #7DC7F5",
+"'. c #83CEFD",
+"). c #7EC8F5",
+"!. c #75BBE6",
+"~. c #68A5CC",
+"{. c #66A2CD",
+"]. c #76BAEB",
+"^. c #7DC7FA",
+"/. c #80CAFE",
+"(. c #81CBFF",
+"_. c #80CBFF",
+":. c #80CAFF",
+"<. c #7FCAFD",
+"[. c #7CC5F8",
+"}. c #75BAEA",
+"|. c #67A5D1",
+"1. c #5A90B8",
+"2. c #6FAFDE",
+"3. c #7BC3F5",
+"4. c #7CC5F9",
+"5. c #72B5E5",
+"6. c #6098C2",
+"7. c #65A0CC",
+"8. c #73B6E6",
+"9. c #7BC4F6",
+"0. c #7FC9FD",
+"a. c #7EC8FC",
+"b. c #78BFF0",
+"c. c #6BA9D6",
+"d. c #659FD0",
+"e. c #75B9EE",
+"f. c #7BC3FC",
+"g. c #7DC6FF",
+"h. c #7CC4FD",
+"i. c #76BCF3",
+"j. c #6CAADD",
+"k. c #598FBA",
+"l. c #6CACDF",
+"m. c #78BFF6",
+"n. c #7CC5FE",
+"o. c #7CC6FE",
+"p. c #7AC1FA",
+"q. c #70B2E7",
+"r. c #5F97C5",
+"s. c #68A5D6",
+"t. c #75BAF0",
+"u. c #7CC5FD",
+"v. c #77BDF3",
+"w. c #69A7D9",
+"x. c #6099CC",
+"y. c #71B3EE",
+"z. c #78BFFC",
+"A. c #7AC2FF",
+"B. c #7AC1FF",
+"C. c #79C1FE",
+"D. c #76BCF8",
+"E. c #6DADE5",
+"F. c #5C91C3",
+"G. c #598EBE",
+"H. c #6BAAE2",
+"I. c #76BBF7",
+"J. c #7AC1FE",
+"K. c #77BDFA",
+"L. c #6FAFE8",
+"M. c #5E96C8",
+"N. c #598DBC",
+"O. c #6AA8DF",
+"P. c #75B9F5",
+"Q. c #79C0FD",
+"R. c #79C0FE",
+"S. c #74B8F3",
+"T. c #65A0D5",
+"U. c #588DC0",
+"V. c #6CABE9",
+"W. c #75BAFC",
+"X. c #77BDFF",
+"Y. c #77BCFF",
+"Z. c #76BDFF",
+"`. c #74B9FA",
+" + c #6DACEA",
+".+ c #5E94CC",
+"++ c #5C91C8",
+"@+ c #6BAAE7",
+"#+ c #73B7F9",
+"$+ c #76BCFE",
+"%+ c #75B9FB",
+"&+ c #6EADEC",
+"*+ c #6097CF",
+"=+ c #5A8FC4",
+"-+ c #6AA8E6",
+";+ c #73B7F8",
+">+ c #75BBFD",
+",+ c #6FB0EF",
+"'+ c #5E95CC",
+")+ c #639EDC",
+"!+ c #70B2F8",
+"~+ c #73B8FF",
+"{+ c #74B8FF",
+"]+ c #74B7FF",
+"^+ c #73B5FC",
+"/+ c #6DACF0",
+"(+ c #629AD8",
+"_+ c #5383B9",
+":+ c #5F97D4",
+"<+ c #6CAAEE",
+"[+ c #72B4FB",
+"}+ c #6DAEF2",
+"|+ c #629BDA",
+"1+ c #5384BA",
+"2+ c #5F96D3",
+"3+ c #6BAAED",
+"4+ c #72B4FA",
+"5+ c #68A4E5",
+"6+ c #5485BC",
+"7+ c #5A8FCD",
+"8+ c #6AA8F1",
+"9+ c #70B1FE",
+"0+ c #71B3FF",
+"a+ c #71B2FF",
+"b+ c #71B2FE",
+"c+ c #70B2FE",
+"d+ c #70B1FD",
+"e+ c #70B2FD",
+"f+ c #6DACF7",
+"g+ c #66A1E6",
+"h+ c #5C91D2",
+"i+ c #5280BC",
+"j+ c #598ECD",
+"k+ c #649FE4",
+"l+ c #6DABF5",
+"m+ c #6EADF7",
+"n+ c #66A2E9",
+"o+ c #5C92D3",
+"p+ c #5180B9",
+"q+ c #598DCC",
+"r+ c #649EE2",
+"s+ c #6CABF4",
+"t+ c #6CABF5",
+"u+ c #5E96D7",
+"v+ c #629CE5",
+"w+ c #6CABFB",
+"x+ c #6DAEFF",
+"y+ c #6EAEFF",
+"z+ c #6EADFE",
+"A+ c #6BA9F8",
+"B+ c #6AA9F7",
+"C+ c #6AA8F7",
+"D+ c #6BA9F7",
+"E+ c #6BA8F7",
+"F+ c #6CABFA",
+"G+ c #69A6F3",
+"H+ c #65A0EA",
+"I+ c #639DE6",
+"J+ c #649EE8",
+"K+ c #67A3EF",
+"L+ c #6BAAF9",
+"M+ c #6EAFFF",
+"N+ c #6CACFC",
+"O+ c #69A7F6",
+"P+ c #659FEB",
+"Q+ c #5E96DD",
+"R+ c #598DD1",
+"S+ c #568ACD",
+"T+ c #5588CB",
+"U+ c #5486C7",
+"V+ c #5180BF",
+"W+ c #5282C0",
+"X+ c #578BCD",
+"Y+ c #66A2ED",
+"Z+ c #68A4F0",
+"`+ c #659FE9",
+" @ c #6DACFC",
+".@ c #6EAEFE",
+"+@ c #69A6F4",
+"@@ c #68A5F2",
+"#@ c #69A7F4",
+"$@ c #6DACFD",
+"%@ c #6CACFD",
+"&@ c #6AA7F7",
+"*@ c #659FEA",
+"=@ c #5E94DC",
+"-@ c #588CD0",
+";@ c #5689CC",
+">@ c #5589CB",
+",@ c #588CCF",
+"'@ c #5C93D9",
+")@ c #639DE8",
+"!@ c #6DAEFE",
+"~@ c #6DADFD",
+"{@ c #6CAAFA",
+"]@ c #67A4F0",
+"^@ c #649FE9",
+"/@ c #65A0EC",
+"(@ c #5283C2",
+"_@ c #5789D1",
+":@ c #66A1F4",
+"<@ c #6AA9FE",
+"[@ c #6AAAFF",
+"}@ c #6AA9FF",
+"|@ c #67A4F7",
+"1@ c #5F98E5",
+"2@ c #588BD2",
+"3@ c #5486CB",
+"4@ c #5486C9",
+"5@ c #5485C9",
+"6@ c #5486CA",
+"7@ c #578AD0",
+"8@ c #5D94E0",
+"9@ c #619AE8",
+"0@ c #4A75B0",
+"a@ c #446CA3",
+"b@ c #4770A9",
+"c@ c #5282C3",
+"d@ c #619AE9",
+"e@ c #69A7FC",
+"f@ c #6BA9FF",
+"g@ c #6AA8FD",
+"h@ c #69A6FA",
+"i@ c #67A3F6",
+"j@ c #66A2F5",
+"k@ c #6099E7",
+"l@ c #5283C6",
+"m@ c #466FA8",
+"n@ c #436AA0",
+"o@ c #4771A9",
+"p@ c #5385C8",
+"q@ c #629DEC",
+"r@ c #6AA7FC",
+"s@ c #629BEA",
+"t@ c #4771AA",
+"u@ c #4974AF",
+"v@ c #5789D0",
+"w@ c #649FF0",
+"x@ c #65A1F3",
+"y@ c #5E96E2",
+"z@ c #5282C4",
+"A@ c #4F7DBD",
+"B@ c #4F7EBE",
+"C@ c #5688CD",
+"D@ c #5B91DB",
+"E@ c #629CEB",
+"F@ c #68A5F9",
+"G@ c #68A6FA",
+"H@ c #66A3F6",
+"I@ c #67A3F7",
+"J@ c #69A8FD",
+"K@ c #6AA8FE",
+"L@ c #67A4F8",
+"M@ c #639EEE",
+"N@ c #6099E6",
+"O@ c #629CEC",
+"P@ c #5383C6",
+"Q@ c #446CA2",
+"R@ c #4973AE",
+"S@ c #578AD1",
+"T@ c #65A0F2",
+"U@ c #5A8FD9",
+"V@ c #5C92E4",
+"W@ c #65A2FB",
+"X@ c #67A5FF",
+"Y@ c #67A4FF",
+"Z@ c #67A3FD",
+"`@ c #5F96EA",
+" # c #527DBC",
+".# c #758F97",
+"+# c #7B918E",
+"@# c #7B908C",
+"## c #7A908C",
+"$# c #7B908B",
+"%# c #7B918D",
+"&# c #7C9494",
+"*# c #5179B1",
+"=# c #5383CB",
+"-# c #5077AB",
+";# c #BFCB94",
+"># c #DEE594",
+",# c #D9E094",
+"'# c #6D8A9D",
+")# c #578AD6",
+"!# c #65A0F8",
+"~# c #68A4FF",
+"{# c #67A4FE",
+"]# c #66A3FB",
+"^# c #5C92E2",
+"/# c #557BA9",
+"(# c #CCD593",
+"_# c #D9E195",
+":# c #5B7B9F",
+"<# c #598EDC",
+"[# c #66A1FA",
+"}# c #588BD8",
+"|# c #6484A0",
+"1# c #DBE295",
+"2# c #DFE594",
+"3# c #CCD695",
+"4# c #4D74AA",
+"5# c #5B91E1",
+"6# c #5F97EA",
+"7# c #5384CD",
+"8# c #486EA5",
+"9# c #718B92",
+"0# c #95A890",
+"a# c #A2B18F",
+"b# c #99AA8E",
+"c# c #8A9E8E",
+"d# c #6F878E",
+"e# c #51729A",
+"f# c #4E7CBF",
+"g# c #5F96E9",
+"h# c #66A2FC",
+"i# c #65A0F9",
+"j# c #4D79BC",
+"k# c #436BA6",
+"l# c #4369A4",
+"m# c #4A75B6",
+"n# c #598DDB",
+"o# c #649EF6",
+"p# c #649FF7",
+"q# c #61809D",
+"r# c #DFE595",
+"s# c #CAD393",
+"t# c #4C74AD",
+"u# c #5E94E7",
+"v# c #66A2FD",
+"w# c #4B79BC",
+"x# c #4F7ECB",
+"y# c #5F96F2",
+"z# c #649FFE",
+"A# c #65A0FF",
+"B# c #659FFF",
+"C# c #639DFC",
+"D# c #598CE1",
+"E# c #5174A4",
+"F# c #D8DF94",
+"G# c #F4F899",
+"H# c #EFF398",
+"I# c #567498",
+"J# c #4A75BB",
+"K# c #4A6C9D",
+"L# c #CFD793",
+"M# c #EDF297",
+"N# c #6D8693",
+"O# c #5180CE",
+"P# c #6098F4",
+"Q# c #629CFA",
+"R# c #629CF9",
+"S# c #639DFB",
+"T# c #649EFE",
+"U# c #629BF9",
+"V# c #619BF8",
+"W# c #578ADD",
+"X# c #51729E",
+"Y# c #DDE494",
+"Z# c #EEF298",
+"`# c #577493",
+" $ c #5486D6",
+".$ c #619AF7",
+"+$ c #5E95F0",
+"@$ c #5180CD",
+"#$ c #627D94",
+"$$ c #F0F498",
+"%$ c #DEE596",
+"&$ c #47699C",
+"*$ c #5383D2",
+"=$ c #4F7ECA",
+"-$ c #5B799A",
+";$ c #D9E095",
+">$ c #EAF097",
+",$ c #66849F",
+"'$ c #5586D8",
+")$ c #6199F5",
+"!$ c #639CFA",
+"~$ c #649EFD",
+"{$ c #649FFF",
+"]$ c #639CFB",
+"^$ c #629AF8",
+"/$ c #5F96F1",
+"($ c #4E7BC6",
+"_$ c #879D96",
+":$ c #DEE595",
+"<$ c #A5B594",
+"[$ c #4974BA",
+"}$ c #5C91E9",
+"|$ c #5F96F0",
+"1$ c #5F7A91",
+"2$ c #DBE193",
+"3$ c #46699F",
+"4$ c #629BF8",
+"5$ c #5383D3",
+"6$ c #5485DD",
+"7$ c #5F97FA",
+"8$ c #619BFF",
+"9$ c #629BFF",
+"0$ c #629AFF",
+"a$ c #6098FC",
+"b$ c #5587DF",
+"c$ c #4E6E9E",
+"d$ c #D7DE93",
+"e$ c #55759D",
+"f$ c #4872BC",
+"g$ c #CED793",
+"h$ c #6B8391",
+"i$ c #4D79C8",
+"j$ c #578AE3",
+"k$ c #5484DB",
+"l$ c #5180D4",
+"m$ c #5282D6",
+"n$ c #5D93F3",
+"o$ c #5E94F5",
+"p$ c #588CE6",
+"q$ c #5383D8",
+"r$ c #5181D4",
+"s$ c #5384DA",
+"t$ c #578BE5",
+"u$ c #5283D8",
+"v$ c #47689D",
+"w$ c #8F9B7D",
+"x$ c #99A277",
+"y$ c #98A27D",
+"z$ c #496793",
+"A$ c #5F96F7",
+"B$ c #5D94F4",
+"C$ c #588BE5",
+"D$ c #5181D5",
+"E$ c #4E7CCD",
+"F$ c #4D7AC9",
+"G$ c #446CB2",
+"H$ c #5C7589",
+"I$ c #DDE496",
+"J$ c #446498",
+"K$ c #4B77C4",
+"L$ c #4468A7",
+"M$ c #CFD894",
+"N$ c #EEF297",
+"O$ c #CFD68F",
+"P$ c #CFD690",
+"Q$ c #E6EB95",
+"R$ c #F3F799",
+"S$ c #EAEF97",
+"T$ c #627D97",
+"U$ c #4D7ACA",
+"V$ c #5485DC",
+"W$ c #5486DD",
+"X$ c #5B90ED",
+"Y$ c #6098FB",
+"Z$ c #6199FC",
+"`$ c #5D92F2",
+" % c #5688E1",
+".% c #5789E2",
+"+% c #5281D5",
+"@% c #5485DB",
+"#% c #5282D7",
+"$% c #4F7DCF",
+"%% c #4F7ED0",
+"&% c #5A8FEC",
+"*% c #4166A9",
+"=% c #8A9B88",
+"-% c #AEBA8C",
+";% c #3B5D98",
+">% c #4B77C5",
+",% c #507ED1",
+"'% c #5B738A",
+")% c #DAE092",
+"!% c #3E5D90",
+"~% c #4A75C1",
+"{% c #4F7DCE",
+"]% c #5283D7",
+"^% c #598DE8",
+"/% c #5E96F7",
+"(% c #619AFE",
+"_% c #578AE4",
+":% c #456EBD",
+"<% c #5789EB",
+"[% c #5D95FD",
+"}% c #5E96FF",
+"|% c #5E95FF",
+"1% c #5D93FB",
+"2% c #5382DE",
+"3% c #4C6B9E",
+"4% c #D7DD93",
+"5% c #859178",
+"6% c #3C5273",
+"7% c #425B82",
+"8% c #435D85",
+"9% c #445E87",
+"0% c #486594",
+"a% c #466DB7",
+"b% c #4B76C9",
+"c% c #47679E",
+"d% c #CED693",
+"e% c #69808F",
+"f% c #466FBD",
+"g% c #4871BF",
+"h% c #5A779E",
+"i% c #5C7591",
+"j% c #5E7895",
+"k% c #4D72B1",
+"l% c #5281DC",
+"m% c #5383E0",
+"n% c #4C73B8",
+"o% c #5C7898",
+"p% c #5C7691",
+"q% c #5B789C",
+"r% c #4A72BC",
+"s% c #4B77CA",
+"t% c #3D5E9B",
+"u% c #495A69",
+"v% c #48555A",
+"w% c #4A5B65",
+"x% c #3C5B92",
+"y% c #4F7ED6",
+"z% c #578AEB",
+"A% c #4E7BD1",
+"B% c #4468AB",
+"C% c #688196",
+"D% c #829692",
+"E% c #6E848D",
+"F% c #38517C",
+"G% c #526471",
+"H% c #EFF497",
+"I% c #416095",
+"J% c #446CB8",
+"K% c #567295",
+"L% c #E1E693",
+"M% c #43576F",
+"N% c #314E85",
+"O% c #375794",
+"P% c #375692",
+"Q% c #516B8D",
+"R% c #8A9C93",
+"S% c #5676A5",
+"T% c #4770BF",
+"U% c #4F73AE",
+"V% c #5E7997",
+"W% c #5C7692",
+"X% c #57759F",
+"Y% c #4974C6",
+"Z% c #588BED",
+"`% c #5A8EF2",
+" & c #4E7BD3",
+".& c #5172A7",
+"+& c #5D7794",
+"@& c #5D7793",
+"#& c #5473A1",
+"$& c #4066AE",
+"%& c #4F6FA2",
+"&& c #5C7590",
+"*& c #4E6A93",
+"=& c #385793",
+"-& c #577293",
+";& c #809593",
+">& c #748B91",
+",& c #4D6C9B",
+"'& c #456EBC",
+")& c #4D7ACF",
+"!& c #466CB3",
+"~& c #556C87",
+"{& c #9BA781",
+"]& c #BAC288",
+"^& c #526677",
+"/& c #59718A",
+"(& c #597496",
+"_& c #385896",
+":& c #566B81",
+"<& c #DADF91",
+"[& c #30476F",
+"}& c #445F87",
+"|& c #798E92",
+"1& c #7C9091",
+"2& c #5A7597",
+"3& c #446AB3",
+"4& c #5B90F6",
+"5& c #5E95FE",
+"6& c #588CF0",
+"7& c #4873C4",
+"8& c #4975CE",
+"9& c #578AF4",
+"0& c #5B91FE",
+"a& c #5B91FF",
+"b& c #5C91FF",
+"c& c #5A8EFB",
+"d& c #507EDE",
+"e& c #4A689D",
+"f& c #D7DD92",
+"g& c #7A8777",
+"h& c #2C467B",
+"i& c #33518F",
+"j& c #355494",
+"k& c #365697",
+"l& c #3C60A8",
+"m& c #4973CA",
+"n& c #4B78D2",
+"o& c #4665A0",
+"p& c #677D8E",
+"q& c #4167B4",
+"r& c #4263A4",
+"s& c #CDD593",
+"t& c #6F8695",
+"u& c #4872C9",
+"v& c #4A76CF",
+"w& c #5D789B",
+"x& c #E6EB97",
+"y& c #506E9F",
+"z& c #446BBD",
+"A& c #4B6899",
+"B& c #DDE394",
+"C& c #EDF298",
+"D& c #526D92",
+"E& c #4973CB",
+"F& c #4974CC",
+"G& c #4D6B9D",
+"H& c #C9D294",
+"I& c #D9DF91",
+"J& c #7E8970",
+"K& c #DDE396",
+"L& c #3F5D95",
+"M& c #5E7692",
+"N& c #3B506F",
+"O& c #33508D",
+"P& c #3C5EA6",
+"Q& c #4065B1",
+"R& c #4167B5",
+"S& c #436ABA",
+"T& c #59769F",
+"U& c #E3E997",
+"V& c #43619B",
+"W& c #4D79D6",
+"X& c #5080E0",
+"Y& c #3E62AD",
+"Z& c #B9C492",
+"`& c #7D908C",
+" * c #909F8C",
+".* c #ADB583",
+"+* c #A0AA81",
+"@* c #70858F",
+"#* c #3A5CA0",
+"$* c #486490",
+"%* c #E1E796",
+"&* c #DCE295",
+"** c #2C457A",
+"=* c #526679",
+"-* c #D9DE8F",
+";* c #7A8570",
+">* c #EAEE96",
+",* c #F1F598",
+"'* c #9DAD92",
+")* c #4469B1",
+"!* c #5282E4",
+"~* c #5A8FFB",
+"{* c #588CF7",
+"]* c #4B78D5",
+"^* c #4C78DD",
+"/* c #5789FA",
+"(* c #588CFF",
+"_* c #5789FB",
+":* c #4D7ADE",
+"<* c #48659D",
+"[* c #D6DD92",
+"}* c #BCC387",
+"|* c #95A181",
+"1* c #97A487",
+"2* c #98A589",
+"3* c #99A68B",
+"4* c #809394",
+"5* c #4469B8",
+"6* c #4771CE",
+"7* c #43629F",
+"8* c #EDF197",
+"9* c #667C8E",
+"0* c #3E62B2",
+"a* c #3E5C9D",
+"b* c #CCD491",
+"c* c #6C808E",
+"d* c #446CC4",
+"e* c #466FCA",
+"f* c #5A7294",
+"g* c #E5EB96",
+"h* c #D9DF94",
+"i* c #4C6798",
+"j* c #4065B9",
+"k* c #486497",
+"l* c #DDE293",
+"m* c #50688D",
+"n* c #4166BB",
+"o* c #3A5BA5",
+"p* c #C0CA93",
+"q* c #D2D990",
+"r* c #E2E794",
+"s* c #F2F698",
+"t* c #3E5C96",
+"u* c #4167BC",
+"v* c #43609A",
+"w* c #EBEF97",
+"x* c #B3BD8C",
+"y* c #88988B",
+"z* c #5A718C",
+"A* c #385698",
+"B* c #3E62B3",
+"C* c #4974D2",
+"D* c #4B77D8",
+"E* c #4062AC",
+"F* c #AFBA90",
+"G* c #F2F699",
+"H* c #7C8E8C",
+"I* c #4065B8",
+"J* c #446DC6",
+"K* c #486393",
+"L* c #E7EC97",
+"M* c #DCE294",
+"N* c #48618D",
+"O* c #345296",
+"P* c #8F9D89",
+"Q* c #DBE294",
+"R* c #395283",
+"S* c #425A85",
+"T* c #EFF397",
+"U* c #EBEF96",
+"V* c #D4DB94",
+"W* c #2C457F",
+"X* c #51647A",
+"Y* c #E8ED95",
+"Z* c #EDF198",
+"`* c #687F97",
+" = c #5587F6",
+".= c #588CFE",
+"+= c #578AFB",
+"@= c #4E7BE1",
+"#= c #4D7AE7",
+"$= c #5486FC",
+"%= c #5588FF",
+"&= c #5687FF",
+"*= c #5587FF",
+"== c #5485FB",
+"-= c #4A76DE",
+";= c #46629D",
+">= c #D6DC92",
+",= c #BEC892",
+"'= c #4161AA",
+")= c #436AC9",
+"!= c #425F9F",
+"~= c #657A8E",
+"{= c #3C5EB2",
+"]= c #3C599C",
+"^= c #CCD390",
+"/= c #6A7E8E",
+"(= c #4268C4",
+"_= c #446BCA",
+":= c #586F93",
+"<= c #E5EA96",
+"[= c #4A6597",
+"}= c #3E62B9",
+"|= c #466197",
+"1= c #DCE293",
+"2= c #4D6389",
+"3= c #3959A9",
+"4= c #5D738E",
+"5= c #677881",
+"6= c #2F498A",
+"7= c #384F82",
+"8= c #BCC58D",
+"9= c #3E5A99",
+"0= c #3E61B6",
+"a= c #8A9A90",
+"b= c #E0E695",
+"c= c #85958F",
+"d= c #3F5FA9",
+"e= c #456ECF",
+"f= c #4166C1",
+"g= c #5F7590",
+"h= c #CAD291",
+"i= c #324E94",
+"j= c #3655A1",
+"k= c #7C8D8A",
+"l= c #A2AF8F",
+"m= c #3857A3",
+"n= c #3858A6",
+"o= c #8F9D8C",
+"p= c #ECF197",
+"q= c #758481",
+"r= c #2A437F",
+"s= c #4A5C78",
+"t= c #536783",
+"u= c #324F96",
+"v= c #2C4583",
+"w= c #83907D",
+"x= c #AAB385",
+"y= c #283F78",
+"z= c #324F95",
+"A= c #3757A4",
+"B= c #536884",
+"C= c #A3AE88",
+"D= c #30487E",
+"E= c #354A78",
+"F= c #C9D18F",
+"G= c #909F90",
+"H= c #4065BF",
+"I= c #5180F1",
+"J= c #5587FE",
+"K= c #5486FD",
+"L= c #4E7CEA",
+"M= c #3D62BB",
+"N= c #3C61C0",
+"O= c #4C79EE",
+"P= c #5281FD",
+"Q= c #5282FE",
+"R= c #5282FF",
+"S= c #5382FF",
+"T= c #5180FB",
+"U= c #4872DE",
+"V= c #45609D",
+"W= c #E0E693",
+"X= c #E1E694",
+"Y= c #E0E694",
+"Z= c #E1E695",
+"`= c #B1BD94",
+" - c #4162B3",
+".- c #4268CC",
+"+- c #405C9F",
+"@- c #64788E",
+"#- c #3A5BB2",
+"$- c #3A579C",
+"%- c #677B8D",
+"&- c #3F64C3",
+"*- c #4167C9",
+"=- c #566D93",
+"-- c #D8DE94",
+";- c #496296",
+">- c #3B5EB8",
+",- c #455E96",
+"'- c #4B5F86",
+")- c #32509C",
+"!- c #87958C",
+"~- c #C3CB8F",
+"{- c #3B5696",
+"]- c #3F63C2",
+"^- c #395AB0",
+"/- c #6B7D88",
+"(- c #3C589B",
+"_- c #456DD6",
+":- c #466FD9",
+"<- c #395BB1",
+"[- c #647890",
+"}- c #B5BF8F",
+"|- c #EBF097",
+"1- c #8E9E92",
+"2- c #3B5EB7",
+"3- c #436ACE",
+"4- c #3D5BA3",
+"5- c #C1C991",
+"6- c #516279",
+"7- c #273D77",
+"8- c #BEC68C",
+"9- c #5A6F91",
+"0- c #3D60BC",
+"a- c #8E9D8D",
+"b- c #C7CF91",
+"c- c #314D93",
+"d- c #3A5CB4",
+"e- c #334E92",
+"f- c #D3DA91",
+"g- c #6B7D8B",
+"h- c #3655A6",
+"i- c #879589",
+"j- c #ACB78D",
+"k- c #3452A0",
+"l- c #446CD2",
+"m- c #556B8D",
+"n- c #3F5788",
+"o- c #395AB1",
+"p- c #33519F",
+"q- c #9CA88A",
+"r- c #A6B291",
+"s- c #4D7AEE",
+"t- c #4E7BF1",
+"u- c #3E64C5",
+"v- c #395CBC",
+"w- c #4874EB",
+"x- c #4E7CFD",
+"y- c #4F7DFF",
+"z- c #4F7EFF",
+"A- c #4E7CFB",
+"B- c #456DDE",
+"C- c #435D9D",
+"D- c #78847A",
+"E- c #294083",
+"F- c #304C9B",
+"G- c #324FA0",
+"H- c #3350A4",
+"I- c #3858B4",
+"J- c #4168D3",
+"K- c #4269D6",
+"L- c #3E5AA0",
+"M- c #CDD493",
+"N- c #62768E",
+"O- c #3758B2",
+"P- c #38549D",
+"Q- c #CBD291",
+"R- c #67798C",
+"S- c #3B5FC0",
+"T- c #3D61C4",
+"U- c #566B8F",
+"V- c #E6EB96",
+"W- c #475F96",
+"X- c #395AB8",
+"Y- c #435C96",
+"Z- c #485D85",
+"`- c #2F4A96",
+" ; c #939F8B",
+".; c #B4BD8E",
+"+; c #3755A3",
+"@; c #4269D5",
+"#; c #3C5FC2",
+"$; c #586D8D",
+"%; c #F2F799",
+"&; c #DCE396",
+"*; c #3A559A",
+"=; c #466FE0",
+"-; c #4066CF",
+";; c #3A5CBB",
+">; c #3453A8",
+",; c #354F96",
+"'; c #55698A",
+"); c #889485",
+"!; c #DCE192",
+"~; c #D0D895",
+"{; c #3E5BA5",
+"]; c #4268D4",
+"^; c #3B5DBE",
+"/; c #71828E",
+"(; c #A0A97F",
+"_; c #37455F",
+":; c #ECF097",
+"<; c #C1CA91",
+"[; c #3D59A4",
+"}; c #4167D1",
+"|; c #395AB7",
+"1; c #8E9C8E",
+"2; c #AAB58E",
+"3; c #4065CD",
+"4; c #3653A1",
+"5; c #6E7F8C",
+"6; c #395BB8",
+"7; c #3757B2",
+"8; c #87968D",
+"9; c #ACB78F",
+"0; c #3655AD",
+"a; c #4771E6",
+"b; c #4B76F0",
+"c; c #4065CE",
+"d; c #556A8F",
+"e; c #DEE394",
+"f; c #365298",
+"g; c #3F64CA",
+"h; c #3757B1",
+"i; c #94A18D",
+"j; c #A8B490",
+"k; c #3859B4",
+"l; c #4975EE",
+"m; c #4F7DFE",
+"n; c #4E7CFE",
+"o; c #4A76EE",
+"p; c #3B5FC1",
+"q; c #436BE2",
+"r; c #4B77FB",
+"s; c #4C79FF",
+"t; c #4269DE",
+"u; c #415B9D",
+"v; c #7B8A88",
+"w; c #3554B2",
+"x; c #4168DB",
+"y; c #446CE5",
+"z; c #456DE7",
+"A; c #4670EC",
+"B; c #4872F1",
+"C; c #426ADE",
+"D; c #3D58A1",
+"E; c #62748E",
+"F; c #3555B4",
+"G; c #3752A0",
+"H; c #C9D091",
+"I; c #6C7C86",
+"J; c #3351AB",
+"K; c #667787",
+"L; c #465D96",
+"M; c #3757B8",
+"N; c #415996",
+"O; c #DCE193",
+"P; c #475C86",
+"Q; c #2E499B",
+"R; c #86948C",
+"S; c #C1C88F",
+"T; c #375197",
+"U; c #3A5CC3",
+"V; c #3554B1",
+"W; c #677788",
+"X; c #DCE296",
+"Y; c #385198",
+"Z; c #3B5EC7",
+"`; c #3B5CBD",
+" > c #3553AA",
+".> c #3453B0",
+"+> c #3858BA",
+"@> c #3859BB",
+"#> c #3351AC",
+"$> c #294189",
+"%> c #6B7878",
+"&> c #DAE095",
+"*> c #4962A2",
+"=> c #4167DA",
+"-> c #4066D7",
+";> c #3A559E",
+">> c #D5DB93",
+",> c #EAEF95",
+"'> c #889071",
+")> c #7B8B8E",
+"!> c #385ABD",
+"~> c #436ADF",
+"{> c #3858BB",
+"]> c #8D9B8E",
+"^> c #A5B08E",
+"/> c #3453AE",
+"(> c #3F64D2",
+"_> c #3551A4",
+":> c #C8D090",
+"<> c #6D7E8D",
+"[> c #3758BA",
+"}> c #3656B5",
+"|> c #87958F",
+"1> c #ABB58D",
+"2> c #2F4CA0",
+"3> c #3F65D3",
+"4> c #436BE1",
+"5> c #3B5EC6",
+"6> c #53678E",
+"7> c #D9DF93",
+"8> c #36519D",
+"9> c #3E63D0",
+"0> c #919E8D",
+"a> c #A8B290",
+"b> c #3656B4",
+"c> c #4771EE",
+"d> c #4C78FE",
+"e> c #4B77FC",
+"f> c #446DE5",
+"g> c #3D61D6",
+"h> c #4770F7",
+"i> c #4873FF",
+"j> c #4974FF",
+"k> c #4872FB",
+"l> c #4065DF",
+"m> c #40589E",
+"n> c #7C8B8C",
+"o> c #3758C2",
+"p> c #456EF1",
+"q> c #4873FC",
+"r> c #4973FD",
+"s> c #4874FE",
+"t> c #4066E0",
+"u> c #3B55A2",
+"v> c #CCD393",
+"w> c #60728F",
+"x> c #3554B8",
+"y> c #3450A8",
+"z> c #B5BE90",
+"A> c #9DA685",
+"B> c #263B7C",
+"C> c #30447D",
+"D> c #BCC38D",
+"E> c #445B97",
+"F> c #3554B9",
+"G> c #405797",
+"H> c #475B89",
+"I> c #304CA8",
+"J> c #5C6E8E",
+"K> c #EFF498",
+"L> c #5B6A7F",
+"M> c #283F8B",
+"N> c #2F4483",
+"O> c #B4BD8C",
+"P> c #364D95",
+"Q> c #49609A",
+"R> c #D5DB94",
+"S> c #818F8A",
+"T> c #445889",
+"U> c #2A428F",
+"V> c #28408C",
+"W> c #2A3E78",
+"X> c #949E80",
+"Y> c #D0D796",
+"Z> c #3C58AA",
+"`> c #4167E3",
+" , c #436AEA",
+"., c #3655BA",
+"+, c #85928E",
+"@, c #40589A",
+"#, c #3D61D5",
+"$, c #426AE8",
+"%, c #3655BC",
+"&, c #8C998E",
+"*, c #A5AF8E",
+"=, c #3250AF",
+"-, c #3C60D3",
+";, c #334EA5",
+">, c #C8CF90",
+",, c #6C7C8D",
+"', c #3555BA",
+"), c #798991",
+"!, c #C8CF8F",
+"~, c #2F437B",
+"{, c #2B4598",
+"], c #314FAD",
+"^, c #314EAC",
+"/, c #506289",
+"(, c #354F9E",
+"_, c #3C5FD1",
+":, c #3452B6",
+"<, c #919D8E",
+"[, c #A7B290",
+"}, c #3352B4",
+"|, c #446CED",
+"1, c #4873FE",
+"2, c #4771F9",
+"3, c #3E64DB",
+"4, c #3656C5",
+"5, c #4169F0",
+"6, c #466EFE",
+"7, c #466FFF",
+"8, c #456DFC",
+"9, c #3D61DF",
+"0, c #3E569F",
+"a, c #7B898E",
+"b, c #3655C4",
+"c, c #436AF4",
+"d, c #456EFC",
+"e, c #3E62E1",
+"f, c #3952A3",
+"g, c #607191",
+"h, c #3453BF",
+"i, c #3452BA",
+"j, c #879491",
+"k, c #D8DE91",
+"l, c #F4F799",
+"m, c #435898",
+"n, c #3351B9",
+"o, c #3E5497",
+"p, c #475A8E",
+"q, c #2E49A3",
+"r, c #C4CC93",
+"s, c #C4CB8D",
+"t, c #D8DD91",
+"u, c #344B96",
+"v, c #324FB5",
+"w, c #465B92",
+"x, c #E8EC96",
+"y, c #DBE093",
+"z, c #929F94",
+"A, c #4268EE",
+"B, c #436BF6",
+"C, c #3A5DD5",
+"D, c #3B5197",
+"E, c #E7EB96",
+"F, c #A0AB8F",
+"G, c #334FB1",
+"H, c #4065E7",
+"I, c #4167ED",
+"J, c #3452BD",
+"K, c #8C998F",
+"L, c #A4AF8F",
+"M, c #304DB0",
+"N, c #3A5CD3",
+"O, c #314BA5",
+"P, c #6B7B8D",
+"Q, c #3553C0",
+"R, c #3757C7",
+"S, c #5E7198",
+"T, c #ECF098",
+"U, c #96A28E",
+"V, c #283F91",
+"W, c #4D5E82",
+"X, c #334C9F",
+"Y, c #395BD2",
+"Z, c #324FB6",
+"`, c #909C8E",
+" ' c #A7B190",
+".' c #324EB4",
+"+' c #4167EE",
+"@' c #456EFD",
+"#' c #4369F2",
+"$' c #3859CB",
+"%' c #3C60E4",
+"&' c #4268FC",
+"*' c #436AFF",
+"=' c #4269FC",
+"-' c #3B5EE1",
+";' c #3E56A6",
+">' c #D5DC94",
+",' c #7C8A93",
+"'' c #3554C9",
+")' c #4066F5",
+"!' c #3C5FE4",
+"~' c #3952A9",
+"{' c #CCD395",
+"]' c #607298",
+"^' c #3554CB",
+"/' c #3858D4",
+"(' c #354DA4",
+"_' c #C5CD94",
+":' c #838C78",
+"<' c #E4E994",
+"[' c #D8DE95",
+"}' c #43599F",
+"|' c #324FBF",
+"1' c #3F559F",
+"2' c #DCE195",
+"3' c #485C97",
+"4' c #3656CD",
+"5' c #3554CA",
+"6' c #45599C",
+"7' c #CFD695",
+"8' c #E0E594",
+"9' c #848D78",
+"0' c #DCE297",
+"a' c #354C9F",
+"b' c #3350C2",
+"c' c #3E55A4",
+"d' c #C9D094",
+"e' c #A1AC93",
+"f' c #3952AC",
+"g' c #3A5CDE",
+"h' c #4167F8",
+"i' c #4268FA",
+"j' c #3C60E6",
+"k' c #2F4AAD",
+"l' c #99A38B",
+"m' c #526490",
+"n' c #3654CB",
+"o' c #4065F3",
+"p' c #3F64F1",
+"q' c #3351C3",
+"r' c #8C9994",
+"s' c #A5AF92",
+"t' c #304CB7",
+"u' c #3959D7",
+"v' c #324CAD",
+"w' c #C8CF93",
+"x' c #6B7C94",
+"y' c #3A5BDC",
+"z' c #324DB2",
+"A' c #98A494",
+"B' c #A1AB8E",
+"C' c #263C91",
+"D' c #4E5E89",
+"E' c #D9DF95",
+"F' c #334CA6",
+"G' c #3859D6",
+"H' c #324EBD",
+"I' c #909D93",
+"J' c #A7B194",
+"K' c #314EBA",
+"L' c #3E63EE",
+"M' c #4168FB",
+"N' c #3D61E8",
+"O' c #314DBA",
+"P' c #3655D6",
+"Q' c #3E62F7",
+"R' c #3F65FE",
+"S' c #4065FF",
+"T' c #4066FF",
+"U' c #3F65FD",
+"V' c #3B5EEC",
+"W' c #3551C1",
+"X' c #53669C",
+"Y' c #586891",
+"Z' c #586995",
+"`' c #4158AB",
+" ) c #3758DC",
+".) c #3E63F9",
+"+) c #4065FD",
+"@) c #3C5FEE",
+"#) c #3551C5",
+"$) c #52659F",
+"%) c #586992",
+"&) c #576997",
+"*) c #3B54B3",
+"=) c #3859E0",
+"-) c #3B5EED",
+";) c #3554D3",
+">) c #2E46A9",
+",) c #647495",
+"') c #839093",
+")) c #707F93",
+"!) c #354992",
+"~) c #2F4392",
+"{) c #546592",
+"]) c #54669B",
+"^) c #3650BC",
+"/) c #3555D5",
+"() c #3450BC",
+"_) c #54679A",
+":) c #586A98",
+"<) c #3650B7",
+"[) c #395AE3",
+"}) c #3B5EEB",
+"|) c #3452CF",
+"1) c #334BA9",
+"2) c #687896",
+"3) c #859193",
+"4) c #6F7E91",
+"5) c #36498F",
+"6) c #2F4390",
+"7) c #576892",
+"8) c #55689D",
+"9) c #334EBF",
+"0) c #3758DD",
+"a) c #3453D0",
+"b) c #2C46AF",
+"c) c #364B98",
+"d) c #5E6E91",
+"e) c #7A8790",
+"f) c #879391",
+"g) c #849191",
+"h) c #6D7B92",
+"i) c #3F549C",
+"j) c #2E49B8",
+"k) c #3757DC",
+"l) c #3D61F4",
+"m) c #3F64FA",
+"n) c #3C60F0",
+"o) c #3656D9",
+"p) c #2B45AC",
+"q) c #47567B",
+"r) c #C4CB91",
+"s) c #3149A4",
+"t) c #3E62F6",
+"u) c #3656D7",
+"v) c #445BAA",
+"w) c #596A94",
+"x) c #586993",
+"y) c #495EA5",
+"z) c #395BE5",
+"A) c #3350C7",
+"B) c #51659F",
+"C) c #596A96",
+"D) c #3D55B0",
+"E) c #3858DD",
+"F) c #2E49B9",
+"G) c #364C9D",
+"H) c #4D5F93",
+"I) c #485CA1",
+"J) c #2E48B5",
+"K) c #354DAB",
+"L) c #596B97",
+"M) c #586991",
+"N) c #54679C",
+"O) c #324FC2",
+"P) c #395BE4",
+"Q) c #455BA8",
+"R) c #586A94",
+"S) c #495FA5",
+"T) c #3453D1",
+"U) c #3D60F4",
+"V) c #3E63F8",
+"W) c #3757DA",
+"X) c #2F4AC1",
+"Y) c #3859EC",
+"Z) c #3C5FFD",
+"`) c #3D60FF",
+" ! c #3B5EF8",
+".! c #3858E9",
+"+! c #3452D9",
+"@! c #3250D3",
+"#! c #3350D5",
+"$! c #3655E0",
+"%! c #3A5CF3",
+"&! c #3D60FD",
+"*! c #3C5EFA",
+"=! c #3859EB",
+"-! c #3452DA",
+";! c #3351D6",
+">! c #3656E4",
+",! c #3B5DF5",
+"'! c #3C5FFB",
+")! c #3A5DF4",
+"!! c #3350D3",
+"~! c #314DCC",
+"{! c #324FD0",
+"]! c #3452D8",
+"^! c #3351D4",
+"/! c #3758E8",
+"(! c #3A5BF1",
+"_! c #3757E7",
+":! c #3351D7",
+"<! c #3757E5",
+"[! c #3B5DF6",
+"}! c #3A5CF4",
+"|! c #3756E4",
+"1! c #3350D4",
+"2! c #314DCB",
+"3! c #314ECE",
+"4! c #3352D8",
+"5! c #3553DD",
+"6! c #324FD2",
+"7! c #304CCB",
+"8! c #304BC7",
+"9! c #304CC9",
+"0! c #3554DD",
+"a! c #3D5FFC",
+"b! c #283EA4",
+"c! c #324383",
+"d! c #9EA685",
+"e! c #707D8F",
+"f! c #2E49C1",
+"g! c #395BEF",
+"h! c #3D60FC",
+"i! c #3555E0",
+"j! c #395AEF",
+"k! c #3453DB",
+"l! c #3351D5",
+"m! c #3656E2",
+"n! c #3C5FFC",
+"o! c #3959EC",
+"p! c #3554DF",
+"q! c #3250D4",
+"r! c #3553DC",
+"s! c #3757E6",
+"t! c #3655E1",
+"u! c #3858EA",
+"v! c #395BF0",
+"w! c #3555DF",
+"x! c #3B5FFA",
+"y! c #2F4CC7",
+"z! c #324FDC",
+"A! c #3859F8",
+"B! c #3A5BFF",
+"C! c #3A5CFF",
+"D! c #3A5CFE",
+"E! c #395BFC",
+"F! c #395AFA",
+"G! c #395AF9",
+"H! c #395BFB",
+"I! c #3959F9",
+"J! c #3859F7",
+"K! c #3959FA",
+"L! c #3959F8",
+"M! c #3959F7",
+"N! c #3A5BFC",
+"O! c #3A5CFD",
+"P! c #3859F6",
+"Q! c #395AFB",
+"R! c #3453E7",
+"S! c #344BB0",
+"T! c #CAD195",
+"U! c #C6CD93",
+"V! c #2C41A3",
+"W! c #324FDD",
+"X! c #385AF8",
+"Y! c #3A5BFD",
+"Z! c #395BFD",
+"`! c #3351E0",
+" ~ c #2B44C6",
+".~ c #3351EE",
+"+~ c #3656FD",
+"@~ c #3757FF",
+"#~ c #3757FE",
+"$~ c #3656FC",
+"%~ c #3554F6",
+"&~ c #3351ED",
+"*~ c #3250E7",
+"=~ c #324FE3",
+"-~ c #314DDF",
+";~ c #314EE0",
+">~ c #324EE4",
+",~ c #3351EB",
+"'~ c #3553F4",
+")~ c #3656FB",
+"!~ c #3756FC",
+"~~ c #324FE7",
+"{~ c #3248B1",
+"]~ c #C8CE95",
+"^~ c #A8B091",
+"/~ c #36489C",
+"(~ c #2C46CB",
+"_~ c #324FE8",
+":~ c #3250E6",
+"<~ c #314EDF",
+"[~ c #314EE3",
+"}~ c #3554F4",
+"|~ c #3656FE",
+"1~ c #3352F1",
+"2~ c #2C47DB",
+"3~ c #3250F8",
+"4~ c #3352FE",
+"5~ c #3452FF",
+"6~ c #3352FF",
+"7~ c #3351FC",
+"8~ c #314FF3",
+"9~ c #2F4BE4",
+"0~ c #2B45D1",
+"a~ c #273EBD",
+"b~ c #263EB9",
+"c~ c #2A43CB",
+"d~ c #2E49E1",
+"e~ c #314FF2",
+"f~ c #3351FB",
+"g~ c #3452FE",
+"h~ c #314EF1",
+"i~ c #2A43D0",
+"j~ c #2337AC",
+"k~ c #20339F",
+"l~ c #2135A5",
+"m~ c #243AB6",
+"n~ c #2942CB",
+"o~ c #2C45D6",
+"p~ c #2A43CD",
+"q~ c #263DBA",
+"r~ c #2A44CD",
+"s~ c #2E49E0",
+"t~ c #314EF0",
+"u~ c #3250F9",
+"v~ c #2D48DF",
+"w~ c #243BBF",
+"x~ c #2C47E9",
+"y~ c #2F4CFC",
+"z~ c #304DFF",
+"A~ c #314DFF",
+"B~ c #314EFF",
+"C~ c #304EFF",
+"D~ c #304DFE",
+"E~ c #2F4CF9",
+"F~ c #2C47E8",
+"G~ c #2740CF",
+"H~ c #263FC9",
+"I~ c #2B46E4",
+"J~ c #2E4BF6",
+"K~ c #304CFC",
+"L~ c #2E4AF2",
+"M~ c #2C46E7",
+"N~ c #2B45E3",
+"O~ c #2B44E0",
+"P~ c #2A42D8",
+"Q~ c #263DC6",
+"R~ c #273DC8",
+"S~ c #2F4BF6",
+"T~ c #304DFD",
+"U~ c #2F4DFC",
+"V~ c #2D48EC",
+"W~ c #263CC5",
+"X~ c #253CD0",
+"Y~ c #2B44F2",
+"Z~ c #2D48FD",
+"`~ c #2D49FF",
+" { c #2E49FF",
+".{ c #2D48FF",
+"+{ c #2E48FF",
+"@{ c #2D48FE",
+"#{ c #2C46F5",
+"${ c #283FDE",
+"%{ c #2137BE",
+"&{ c #2035B6",
+"*{ c #273FD9",
+"={ c #2C45F2",
+"-{ c #2D48FC",
+";{ c #2E49FE",
+">{ c #2C48FB",
+",{ c #2B45F2",
+"'{ c #2840DD",
+"){ c #2236BC",
+"!{ c #273ED8",
+"~{ c #2B44F1",
+"{{ c #2B46F5",
+"]{ c #263DD6",
+"^{ c #243ADB",
+"/{ c #2941F5",
+"({ c #2A43FE",
+"_{ c #2A44FF",
+":{ c #2B44FF",
+"<{ c #2A43FF",
+"[{ c #2A43FC",
+"}{ c #2840F1",
+"|{ c #2439D6",
+"1{ c #2338CF",
+"2{ c #283FED",
+"3{ c #2A43FB",
+"4{ c #2A43FD",
+"5{ c #2840F2",
+"6{ c #243AD7",
+"7{ c #2338D0",
+"8{ c #2942FB",
+"9{ c #2942F9",
+"0{ c #253CE1",
+"a{ c #2337DE",
+"b{ c #263CF7",
+"c{ c #273EFE",
+"d{ c #283FFF",
+"e{ c #273FFF",
+"f{ c #273FFE",
+"g{ c #263EFA",
+"h{ c #243AEA",
+"i{ c #2034CE",
+"j{ c #2033CC",
+"k{ c #243AEC",
+"l{ c #273EFB",
+"m{ c #273EFD",
+"n{ c #253CF1",
+"o{ c #2136D5",
+"p{ c #1F32C6",
+"q{ c #2439E6",
+"r{ c #273DF8",
+"s{ c #263DF9",
+"t{ c #2439E5",
+"u{ c #1E2FBF",
+"v{ c #1A2AB6",
+"w{ c #2032DD",
+"x{ c #2237F5",
+"y{ c #243AFD",
+"z{ c #243AFF",
+"A{ c #253AFF",
+"B{ c #2439FD",
+"C{ c #2338F6",
+"D{ c #2134E3",
+"E{ c #1B2DC2",
+"F{ c #1C2FC9",
+"G{ c #2135EA",
+"H{ c #2339FB",
+"I{ c #2439FC",
+"J{ c #2236F0",
+"K{ c #1E31D3",
+"L{ c #1B2BBC",
+"M{ c #2033DD",
+"N{ c #2338F3",
+"O{ c #243AFE",
+"P{ c #2338F8",
+"Q{ c #1C2CC1",
+"R{ c #1C2DD6",
+"S{ c #2032EF",
+"T{ c #2134FA",
+"U{ c #2135FE",
+"V{ c #2235FF",
+"W{ c #2236FF",
+"X{ c #2135FF",
+"Y{ c #2135FC",
+"Z{ c #2034F7",
+"`{ c #1F31EA",
+" ] c #1C2DD4",
+".] c #1A2AC7",
+"+] c #1E31E8",
+"@] c #2034FA",
+"#] c #2136FF",
+"$] c #2034FC",
+"%] c #1F32EF",
+"&] c #1B2CD1",
+"*] c #1B2CCE",
+"=] c #1E31E6",
+"-] c #2033F5",
+";] c #2135FB",
+">] c #2033F3",
+",] c #1D2FDD",
+"'] c #1928BB",
+")] c #1827C6",
+"!] c #1B2BDF",
+"~] c #1D2EF0",
+"{] c #1D2FF7",
+"]] c #1E30FB",
+"^] c #1E30FD",
+"/] c #1E31FD",
+"(] c #1E2FF9",
+"_] c #1D2FF6",
+":] c #1B2CE5",
+"<] c #1A29D4",
+"[] c #1725BD",
+"}] c #1727C5",
+"|] c #1B2CE6",
+"1] c #1D2FF9",
+"2] c #1E30FE",
+"3] c #1E31FF",
+"4] c #1E30FF",
+"5] c #1F31FF",
+"6] c #1F30FF",
+"7] c #1D2FFB",
+"8] c #1C2DEC",
+"9] c #1828CE",
+"0] c #1929D1",
+"a] c #1B2BE2",
+"b] c #1C2EEE",
+"c] c #1D2FF5",
+"d] c #1E2FF8",
+"e] c #1E30FA",
+"f] c #1E30FC",
+"g] c #1D2FF8",
+"h] c #1D2EF1",
+"i] c #1B2CE3",
+"j] c #1928CB",
+"k] c #1522C2",
+"l] c #1625D2",
+"m] c #1827DE",
+"n] c #1928E5",
+"o] c #1928E7",
+"p] c #1827DF",
+"q] c #1726D6",
+"r] c #1624CE",
+"s] c #1522C3",
+"t] c #1421BF",
+"u] c #1827E0",
+"v] c #1A2AF5",
+"w] c #1B2BFD",
+"x] c #1B2BFF",
+"y] c #1B2CFF",
+"z] c #1B2BFE",
+"A] c #1A2AF8",
+"B] c #1827E6",
+"C] c #1523C8",
+"D] c #1522BF",
+"E] c #1624CB",
+"F] c #1725D4",
+"G] c #1827DD",
+"H] c #1928E4",
+"I] c #1928E6",
+"J] c #1523C5",
+"K] c #1421D7",
+"L] c #1624EF",
+"M] c #1726FA",
+"N] c #1827FE",
+"O] c #1826FF",
+"P] c #1827FF",
+"Q] c #1726FB",
+"R] c #1625F2",
+"S] c #1522DD",
+"T] c #121EBC",
+"U] c #111BC6",
+"V] c #121EDF",
+"W] c #1320F0",
+"X] c #1421F8",
+"Y] c #1522FC",
+"Z] c #1522FE",
+"`] c #1522FD",
+" ^ c #1421FA",
+".^ c #1421F2",
+"+^ c #131FE3",
+"@^ c #111CCD",
+"#^ c #0F17C3",
+"$^ c #1019D7",
+"%^ c #101AE3",
+"&^ c #111BE6",
+"*^ c #101BE4",
+"=^ c #0F1ADB",
+"-^ c #0E18C9",
+" ",
+" . + @ # $ % ",
+" & * = - ; > , ' ) ! ~ ",
+" { ] ^ / ( _ _ _ _ : < [ } | ",
+" 1 2 3 4 4 5 6 7 8 9 0 a b b c c c c c b c d e f g h i j k l m ",
+" n o p q r s r t u v w x y z A B C C D D D D D D D D C C E F G H I J K L M N O s r P Q R S ",
+" T U V W X Y Y Y Y Y X X Z ` ...+. @.#.$.%.%.&.&.&.&.Y Y &.Y Y Y Y %.X ` *.=. -.;.>.,.W '.X Y Y X Y Y X Z ).!.~. ",
+" {.].^./.(.(._._.:.:._._._.(.(.<.[.}.|. 1.2.3./.(.(._._.:._._.:._.:._.:.:._._.(./.4.5.6. 7.8.9.0._.(._._.:._.:.:.:._.(._.a.b.c. ",
+" d.e.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.h.i.j.k. k.l.m.n.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.o.p.q.r. s.t.f.o.g.g.g.g.g.g.g.g.g.g.g.g.g.g.u.v.w. ",
+" x.y.z.A.A.B.B.B.B.B.B.B.B.B.B.B.B.B.B.A.C.D.E.F. G.H.I.C.A.B.B.B.B.B.B.B.B.B.B.B.B.B.B.B.B.B.B.A.J.K.L.M. N.O.P.Q.A.A.B.B.B.B.B.B.B.B.B.B.B.B.B.A.A.R.S.T. ",
+" U.V.W.X.X.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.X.Z.`. +.+ ++@+#+$+X.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.X.X.%+&+*+ =+-+;+$+X.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.X.X.>+,+'+ ",
+" )+!+~+{+]+]+{+]+{+]+{+]+{+{+{+]+]+]+]+{+]+]+{+{+^+/+(+_+ :+<+[+{+{+]+]+]+]+]+{+]+]+{+]+{+{+]+{+{+{+{+]+{+{+{+]+{+{+^+}+|+1+ 2+3+[+~+{+{+{+{+]+{+{+{+{+]+{+]+{+]+{+]+{+{+{+{+~+4+5+6+ ",
+" 7+8+9+0+0+0+a+a+a+a+a+0+a+a+a+a+a+b+c+d+d+b+a+0+0+0+e+f+g+h+i+ j+k+l+e+0+0+0+a+0+a+b+d+d+d+b+a+a+a+0+a+b+b+b+a+a+a+a+a+0+0+0+0+c+m+n+o+p+ q+r+s+d+0+0+0+0+a+0+a+a+a+a+0+a+a+b+d+d+d+b+a+a+a+0+0+c+t+u+ ",
+" v+w+x+y+z+w+A+B+C+D+C+C+C+E+A+F+F+G+H+I+J+K+L+y+y+x+M+x+N+O+P+Q+R+S+T+U+V+W+X+Q+Y+F+x+x+y+y+y+y+F+Z+J+I+`+G+ @y+.@ @D++@@@@@#@D+F+$@y+y+y+y+x+x+.@%@&@*@=@-@;@>@;@,@'@)@+@w+!@x+x+y+y+y+y+z+~@$@~@.@y+.@{@]@J+I+^@G+ @y+y+y+y+x+$@/@(@ ",
+" _@:@<@[@}@|@1@2@3@4@4@5@4@4@6@7@8@9@7@0@a@b@c@d@e@f@f@f@}@[@[@g@h@|@i@j@k@l@m@n@o@p@q@r@}@f@f@f@e@s@l@t@a@u@v@w@h@x@y@7@z@A@B@z@C@D@E@F@}@f@f@}@}@}@[@[@g@G@|@i@i@H@I@G@J@}@[@}@}@f@}@f@K@L@M@k@N@O@i@g@e@s@P@b@Q@R@S@T@K@f@f@}@}@}@|@U@ ",
+" V@W@X@Y@Z@`@ #.#+#@###$#$#@#%#&#*#=#-#;#>#,#'#)#!#Y@~#~#Y@~#Y@Y@Y@Y@{#]#^#/#(#>#_#:#<#[#Y@~#~#~#!#}#|#1#2#3#4#5#6#7#8#9#0#a#b#c#d#e#f#g#h#~#~#~#~#Y@Y@Y@Y@Y@{#{#{#{#{#Y@Y@Y@~#Y@~#~#Y@~#i#5#j#k#l#m#n#o#p#}#q#r#>#s#t#u#h#~#~#Y@Y@X@v#`@w# ",
+" x#y#z#A#B#C#D#E#F#G#G#G#G#G#G#G#H#I#J#K#L#G#M#N#O#P#Q#R#R#S#T#T#C#Q#U#Q#V#W#X#Y#G#Z#`# $U#T#C#U#.$+$@$#$$$G#%$&$*$=$-$;$G#G#G#G#G#G#>$,$'$)$U#R#!$~${${$~$]$R#R#!$]$!$U#R#Q#!$Q#^$^$!$~$~$/$($_$:$>#<$[$}$|$O#1$G#G#2$3$W#)$4$Q#~$z#{$z#)$5$ ",
+" 6$7$8$9$0$a$b$c$d$G#G#G#G#G#G#G#H#e$f$&$g$G#M#h$i$j$k$l$m$j$n$o$p$q$r$s$t$u$v$w$x$y$z$u$A$B$C$D$E$F$G$H$$$G#I$J$K$L$M$G#G#N$O$P$Q$R$S$T$U$V$m$D$W$X$Y$Z$`$ %m$D$V$.%W$+%r$q$@%#%$%%%V$&%`$W$*%=%G#G#-%;%>%,%f$'%G#G#)%!%~%{%{%]%^%/%(%8$a$_% ",
+" :%<%[%}%|%}%1%2%3%4%G#R$5%6%7%8%9%0%a%b%c%d%G#M#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%G#I$I%J%K%G#G#L%M%N%O%P%Q%R%S%T%U%V%W%X%Y%Z%`% &.&+&@&#&$&%&@&&&*&=&-&;&>&,&'&)&!&~&{&G#G#]&^&/&(&_&:&G#G#<&[&}&|&1&2&3&l%4&5&5&6&7& ",
+" 8&9&0&a&a&b&c&d&e&f&G#R$g&h&i&j&k&l&m&n&o&d%G#M#p&q&r&s&G#G#t&u&v&w&x&G#;$y&z&A&B&G#C&D&E&F&G&H&G#G#G#I&J&H%G#K&L&q&M&G#G#L%N&O&P&Q&R&S&E&m&T&S$G#U&V&W&X&Y&Z&G#G#`&i& *G#G#.*+*R$G#G#S$@*#*$*%*G#G#G#G#G#G#&***=*G#G#-*;*>*G#G#,*'*)*!*~*a&{*]* ",
+" ^*/*(*(*(*(*_*:*<*[*G#G#}*|*1*2*3*4*5*6*7*d%G#8*9*0*a*b*G#G#c*d*e*f*g*G#h*i*j*k*l*G#C&m*n*o*p*G#G#$$q*r*s*R$G#K&t*u*v*C&G#G#w*x*y*z*A*B*C*D*E*F*G#G*H*I*J*K*L*G#M*N*O*P*G#G#,*R$r*$$G#G#Q*R*S*F#T*G#G#,*U*S$V*W*X*G#G#,*G#Y*>*G#G#Z*`*6* =.=+=@= ",
+" #=$=%=&=*=&===-=;=>=G#G#G#G#G#G#G#,='=)=!=s&G#8*~={=]=^=G#G#/=(=_=:=<=G#F#[=}=|=1=G#C&2=3=4=H#G#H#5=6=7=8=G#G#K&9=_=0=a=G#G#G#G#G#G#b=c=d=e=f=g=G*G#h=i=j=k=G*G#l=m=n=o=G#G#p=q=r=s=$$G#G#t=u=v=w=G#G#x=y=z=A=j=B=G#G#G#C=D=E=F=G#G#G=H=I=J=K=L=M= ",
+" N=O=P=Q=R=R=S=T=U=V=>=G#G#Y*W=X=Y=Z=`= -.-+-s&G#8*@-#-$-^=G#G#%-&-*-=-<=G#--;->-,-1=G#C&'-)-!-G#G#~-{-]-^-/-G#G#K&(-_-:-<-[-}-|-G#G#G#G#R$1-2-3-4-5-G#G*6-7-8-G#$$9-0-<-a-G#G#b-c-d-e-f-G#G#g-^-h-i-G#G#j-k-l-U=&-m-G#G#,*n-o-p-q-G#G#r-2-s-Q=Q=t-u- ",
+" v-w-x-y-z-y-z-A-B-C->=G#R$D-E-F-G-H-I-J-K-L-M-G#8*N-O-P-Q-G#G#R-S-T-U-V-G#--W-X-Y-1=G#C&Z-`- ;G#G#.;+;@;#;$;%;G#&;*;K-=;-;;;>;,;';);!;G#G#~;{;];^;/;G#G#(;_;:;G#<;[;};|;1;G#G#2;>;3;4;Q-G#G#5;6;7;8;G#G#9;0;a;b;c;d;G#G#e;f;g;h;i;G#G#j;k;l;m;n;o;p; ",
+" q;r;s;s;s;s;r;t;u;>=G#R$v;w;x;y;z;A;B;C;D;M-G#8*E;F;G;H;G#G#I;J;J;K;H#G#--L;M;N;O;G#C&P;Q;R;G#G#S;T;U;V;W;G#G#X;Y;Z;`; >.>+>@>#>$>%>,*G#&>*>=>->;>>>G#,>'>R$G#)>!>~>{>]>G#G#^>/>(>_>:>G#G#<>[>}>|>G#G#1>2>3>4>5>6>G#G#7>8>9>}>0>G#G#a>b>c>d>e>f> ",
+" g>h>i>j>j>j>k>l>m>>>G#R$n>o>p>q>r>s>k>t>u>v>G#8*w>x>y>z>G#G#A>B>C>D>G#G#--E>F>G>O;G#C&H>I>J>K>G#M#L>M>N>O>G#G#X;P>x>Q>R>S>T>U>V>W>X>G#G#Y>Z>`> ,.,+,G#G#,*G#Z=@,#,$,%,&,G#G#*,=,-,;,>,G#G#,,%,',),G#G#!,~,{,],^,/,G#G#7>(,_,:,<,G#G#[,},|,1,2,3, ",
+" 4,5,6,7,7,7,8,9,0,>>G#R$a,b,c,7,7,7,d,e,f,v>G#p=g,h,i,j,G#G#G#k,Q$R$l,G#--m,n,o,2$G#C&p,n,q,r,G#G#:;s,t,R$G#G#X;u,v,w,G#G#G#x,y,:;G#G#G#z,h,A,B,C,D,E,G#G#G#F,G,H,I,J,K,G#G#L,M,N,O,>,G#G#P,Q,R,S,T,G#G#K>X=U,V,W,G#G#7>X,Y,Z,`,G#G# '.'+'@'#'$' ",
+" %'&'*'*'*'='-';'>'G#R$,''')'*'*'*'='!'~'{'G#Z*]'^'/'('_'G#G#G#X=:'<'G#['}'|'1'2'G#C&3'4'5'6'7'G#G#G#8'9'T*G#0'a'b'c'd'R$G#G#G#G#G#K>e'f'g'h'i'j'k'l'G#G#R$m'n'o'p'q'r'G#G#s't'u'v'w'G#G#x'''y'z'A'C&G#G#G#B'C'D'G#G#E'F'G'H'I'G#G#J'K'L'M'N'O' ",
+" P'Q'R'S'T'U'V'W'X'Y'Z'`' ).)S'T'T'+)@)#)$)%)&)*)=)-);)>),)')))!)~){)Y'])^)/)()_)%):)<)[)})|)1)2)3)4)5)6)7)Y'8)9)0)a)b)c)d)e)f)g)h)i)j)k)l)m)n)o)p)q)G#G#r)s)=)m)t)u)v)w)x)y)|)z)A)B)%)C)D)E)n)0)F)G)H)Y'x)I)J)K)L)M)N)O)P);)Q)R)x)S)T)U)V)W) ",
+" X)Y)Z)`)`)`) !.!+!@!#!$!%!&!`)`)`)`)*!=!-!@!;!>!,!'!)!>!!!~!{!]!+!^!@!+!/!(!_!]!@!:!<![!'!}!|!1!2!3!;!4!1!@!+!.![!}!.!5!6!7!8!9!{!0!Y) !a!(!3!b!c!d!G#G#e!f!g!&!h!(!i!1!!!0!j![!=!k!@!l!m!}!n! !o!p!:!@!q!r!s!t!;!@!+!u![!v!w!#!1!0!j!x!g!y! ",
+" z!A!B!C!C!D!E!F!G!G!H!D!C!C!C!C!C!D!E!F!I!G!H!D!C!D!E!G!J!A!K!F!L!M!M!A!F!G!L!L!I!E!D!C!D!E!G!J!J!G!F!G!G!F!N!D!D!O!H!G!J!P!P!A!Q!O!C!N!R!S!T!G#G#G#U!V!W!X!Y!H!G!A!L!A!F!Y!D!E!F!G!G!Q!D!C!C!Y!H!F!G!G!F!N!Q!G!I!F!Z!D!D!F!G!G!F!Z!G!`! ",
+" ~.~+~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~#~$~%~&~*~=~-~;~>~,~'~)~#~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~!~~~{~]~$$Z=^~/~(~_~,~:~;~<~[~:~,~}~)~#~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~@~|~1~(~ ",
+" 2~3~4~5~5~5~5~5~5~5~5~5~5~5~5~5~5~5~5~5~5~5~5~5~5~6~6~7~8~9~0~a~ b~c~d~e~f~6~6~5~5~5~5~5~5~5~5~5~5~5~5~5~5~5~5~5~5~5~5~5~5~g~h~i~j~k~l~m~n~o~p~a~ q~r~s~t~f~6~5~5~5~5~5~5~5~5~5~5~5~5~5~5~5~5~5~5~5~5~5~5~5~6~u~v~ ",
+" w~x~y~z~A~B~z~C~z~C~z~A~z~A~B~C~B~z~z~z~B~z~z~B~z~D~E~F~G~ H~I~J~D~z~B~B~B~z~z~z~B~z~z~z~A~B~B~z~C~z~C~A~z~C~z~B~K~L~M~N~O~P~Q~ R~N~S~T~z~B~B~C~A~z~C~z~B~B~z~C~z~C~z~A~z~A~B~C~B~z~U~V~W~ ",
+" X~Y~Z~`~ {.{+{`~+{+{+{.{.{+{ {.{.{.{.{+{ { {.{@{#{${%{ &{*{={-{.{ { {.{.{.{+{.{.{.{.{+{ {.{+{+{+{ {.{+{.{+{;{@{>{,{'{){ !{~{-{.{ { { {.{+{.{+{`~.{+{`~+{+{+{.{.{+{ {`~@{{{]{ ",
+" ^{/{({_{:{_{_{:{_{_{_{:{:{_{_{_{_{_{:{:{<{[{}{|{ 1{2{3{<{:{:{_{_{:{_{_{:{:{_{:{_{:{_{_{:{_{:{_{:{_{4{5{6{ 7{2{8{<{:{:{_{:{_{:{_{_{_{_{:{_{_{_{:{:{:{({9{0{ ",
+" a{b{c{d{d{d{d{d{e{e{e{d{d{e{e{d{d{e{f{g{h{i{ j{k{l{e{d{d{e{d{e{e{e{d{d{d{e{d{e{d{e{e{d{d{e{m{n{o{ p{q{r{c{e{d{d{e{d{e{e{d{d{d{d{e{e{d{d{c{s{t{u{ ",
+" v{w{x{y{z{A{A{A{z{z{A{z{A{z{A{A{z{B{C{D{E{ F{G{H{z{A{A{z{z{z{A{z{z{A{z{z{z{z{z{z{A{z{I{J{K{ L{M{N{I{O{z{A{A{z{z{z{z{A{A{A{A{z{O{P{D{Q{ ",
+" R{S{T{U{V{V{V{W{W{W{V{X{U{Y{Z{`{ ] .]+]@]U{V{W{X{X{X{X{W{#]X{W{#]W{W{V{X{$]%]&] *]=]-]Y{U{X{V{V{W{W{W{V{X{U{;]>],]'] ",
+" )]!]~]{]]]^]/]/]]](]_]~]:]<][] }]|]1]2]3]3]4]4]3]5]5]4]5]6]3]3]2]7]8]9] 0]a]b]c]d]e]f]/]/]]]g]h]i]j] ",
+" k]l]m]n]o]n]p]q]r]s] t]u]v]w]x]y]y]x]y]y]x]y]y]y]z]A]B]C] D]E]F]G]H]I]I]u]F]J] ",
+" K]L]M]N]O]P]P]P]P]P]N]Q]R]S]T] ",
+" U]V]W]X]Y]Z]Z]`] ^.^+^@^ ",
+" #^$^%^&^&^*^=^-^ ",
+" "};
diff --git a/muse2/xpm/forward.xpm b/muse2/xpm/forward.xpm
new file mode 100644
index 00000000..c2104314
--- /dev/null
+++ b/muse2/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/muse2/xpm/frewind.xpm b/muse2/xpm/frewind.xpm
new file mode 100644
index 00000000..8c11fc3a
--- /dev/null
+++ b/muse2/xpm/frewind.xpm
@@ -0,0 +1,17 @@
+/* XPM */
+static const char * frewind_xpm[] = {
+"17 12 2 1",
+" c None",
+". c #000000",
+" . . ",
+" ... ... ",
+" ... ... ",
+" .... .... ",
+" .... .... ",
+" ..... ..... ",
+" ..... ..... ",
+" .... .... ",
+" .... .... ",
+" ... ... ",
+" ... ... ",
+" . . "};
diff --git a/muse2/xpm/glue.xpm b/muse2/xpm/glue.xpm
new file mode 100644
index 00000000..caff2484
--- /dev/null
+++ b/muse2/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/muse2/xpm/graydot.xpm b/muse2/xpm/graydot.xpm
new file mode 100644
index 00000000..daab6980
--- /dev/null
+++ b/muse2/xpm/graydot.xpm
@@ -0,0 +1,21 @@
+/* XPM */
+static const char *graydot_xpm[] = {
+/* width height num_colors chars_per_pixel */
+" 12 12 2 1",
+/* colors */
+". c none",
+"# c #aaaaaa",
+/* pixels */
+"............",
+".....##.....",
+"....####....",
+"...######...",
+"..########..",
+"..########..",
+"..########..",
+"...######...",
+"....####....",
+".....##.....",
+"............",
+"............"
+};
diff --git a/muse2/xpm/greendot.xpm b/muse2/xpm/greendot.xpm
new file mode 100644
index 00000000..9f02394f
--- /dev/null
+++ b/muse2/xpm/greendot.xpm
@@ -0,0 +1,25 @@
+/* XPM */
+static const char *greendot_xpm[] = {
+/* width height num_colors chars_per_pixel */
+" 12 16 2 1",
+/* colors */
+". c none",
+"# c #00ff00",
+/* pixels */
+"............",
+"............",
+"............",
+".....##.....",
+"....####....",
+"...######...",
+"..########..",
+"..########..",
+"..########..",
+"...######...",
+"....####....",
+".....##.....",
+"............",
+"............",
+"............",
+"............"
+};
diff --git a/muse2/xpm/gv.xpm b/muse2/xpm/gv.xpm
new file mode 100644
index 00000000..cf4a2ed1
--- /dev/null
+++ b/muse2/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/muse2/xpm/home.xpm b/muse2/xpm/home.xpm
new file mode 100644
index 00000000..de96eea3
--- /dev/null
+++ b/muse2/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/muse2/xpm/idea.xpm b/muse2/xpm/idea.xpm
new file mode 100644
index 00000000..c74c48b9
--- /dev/null
+++ b/muse2/xpm/idea.xpm
@@ -0,0 +1,35 @@
+/* XPM */
+/* Drawn by Mark Donohoe for the K Desktop Environment */
+/* See http://www.kde.org */
+static const char*idea[]={
+"22 22 7 1",
+"# c #000000",
+"a c #ffa858",
+"b c #ffff00",
+"c c #ffffc0",
+"d c #ffdca8",
+"e c #ffffff",
+". c None",
+"......................",
+"......................",
+"......................",
+"......................",
+"........#####.........",
+".......#aaaab#........",
+"......#acaaabb#.......",
+".....#aaadcaaab#......",
+".....#adddcaaab#......",
+".....#addcdcaab#......",
+".....#bcc#cbabb#......",
+"......#ba#b#bb#.......",
+".......#aa#bb#........",
+"........#b#b#.........",
+"........#ee##.........",
+"........###e#.........",
+"........###e#.........",
+"........#####.........",
+".........###..........",
+"......................",
+"......................",
+"......................"};
+
diff --git a/muse2/xpm/iiwusynth.xpm b/muse2/xpm/iiwusynth.xpm
new file mode 100644
index 00000000..073e517b
--- /dev/null
+++ b/muse2/xpm/iiwusynth.xpm
@@ -0,0 +1,1372 @@
+/* XPM */
+static const char * iiwusynth_xpm[] = {
+"124 45 1324 2",
+" c None",
+". c #D8D8D8",
+"+ c #A7A7A7",
+"@ c #B6B6B6",
+"# c #2D2D2D",
+"$ c #161616",
+"% c #1F201C",
+"& c #6A6B56",
+"* c #797B6E",
+"= c #858D77",
+"- c #809580",
+"; c #7F9F82",
+"> c #8BA790",
+", c #96AE9D",
+"' c #A7B7B1",
+") c #C6CCC9",
+"! c #BDC4C3",
+"~ c #9FAEAC",
+"{ c #9FADAC",
+"] c #BEC4C4",
+"^ c #D3D3D3",
+"/ c #D6D6D6",
+"( c #1F1F1F",
+"_ c #000000",
+": c #020201",
+"< c #393C2A",
+"[ c #7B7D67",
+"} c #828975",
+"| c #95A58B",
+"1 c #8EAB8E",
+"2 c #91B794",
+"3 c #9AC1A3",
+"4 c #B0CDBB",
+"5 c #C1D8CC",
+"6 c #E7F0ED",
+"7 c #E9F0EF",
+"8 c #C5D5D4",
+"9 c #B8CBC9",
+"0 c #D5E0DD",
+"a c #F8FBFA",
+"b c #FEFFFF",
+"c c #FFFFFF",
+"d c #FDFDFD",
+"e c #DEE7E7",
+"f c #A5BCBA",
+"g c #ABC1BF",
+"h c #AAC1BF",
+"i c #A0BAB9",
+"j c #E0E9E8",
+"k c #FEFEFE",
+"l c #12130C",
+"m c #5C5C46",
+"n c #7A7B6F",
+"o c #86927C",
+"p c #96A68D",
+"q c #8EAA8D",
+"r c #97B69A",
+"s c #A2C3AA",
+"t c #B1CDBB",
+"u c #C2D7CD",
+"v c #E7F0EC",
+"w c #F2F5F4",
+"x c #BCCDCA",
+"y c #CADAD8",
+"z c #EEF2F2",
+"A c #FDFEFD",
+"B c #E7EEED",
+"C c #719795",
+"D c #28635E",
+"E c #487B76",
+"F c #477B75",
+"G c #25615B",
+"H c #6F9893",
+"I c #EEF3F3",
+"J c #030302",
+"K c #343423",
+"L c #777964",
+"M c #797C74",
+"N c #8F9C84",
+"O c #97A392",
+"P c #8BAC8E",
+"Q c #9CBAA2",
+"R c #A6C3AE",
+"S c #BDD2C4",
+"T c #C4D8CE",
+"U c #E9F2EE",
+"V c #FAFCFB",
+"W c #E3ECE9",
+"X c #BACDCC",
+"Y c #C3D3D1",
+"Z c #E8EFED",
+"` c #FDFEFE",
+" . c #D4E1DF",
+".. c #427771",
+"+. c #1E5B56",
+"@. c #709894",
+"#. c #6D9692",
+"$. c #1D5D55",
+"%. c #3C726C",
+"&. c #E0E7E8",
+"*. c #0E0F0B",
+"=. c #666950",
+"-. c #787972",
+";. c #7F8779",
+">. c #96A48C",
+",. c #94A193",
+"'. c #90B394",
+"). c #A4BAA7",
+"!. c #AAC7B0",
+"~. c #C3D4C8",
+"{. c #C5D9CF",
+"]. c #EEF4F0",
+"^. c #FCFDFD",
+"/. c #EAEEEF",
+"(. c #C3D3D2",
+"_. c #BDCFCD",
+":. c #E6EBEC",
+"<. c #ECF1F0",
+"[. c #7DA19D",
+"}. c #2C675F",
+"|. c #3F746F",
+"1. c #3D756E",
+"2. c #29645F",
+"3. c #7EA19E",
+"4. c #F3F6F5",
+"5. c #FAFBFB",
+"6. c #D7E2E1",
+"7. c #B4C8C7",
+"8. c #D2DEDE",
+"9. c #F2F6F5",
+"0. c #C2D2D1",
+"a. c #BDCFCE",
+"b. c #EBF0F0",
+"c. c #3F4231",
+"d. c #828570",
+"e. c #767772",
+"f. c #8A9780",
+"g. c #9BA195",
+"h. c #90A593",
+"i. c #98B69C",
+"j. c #A4BAA6",
+"k. c #B0CBB7",
+"l. c #C8D7D0",
+"m. c #C6DAD0",
+"n. c #F0F6F3",
+"o. c #F3F6F6",
+"p. c #CEDAD9",
+"q. c #B5CBC6",
+"r. c #E1E8E8",
+"s. c #FBFCFB",
+"t. c #F9FBFB",
+"u. c #DFE8E7",
+"v. c #CAD8D6",
+"w. c #9EB8B4",
+"x. c #BECFCF",
+"y. c #BCCECE",
+"z. c #9CB8B5",
+"A. c #CADAD7",
+"B. c #F0F5F4",
+"C. c #DBE5E4",
+"D. c #D5E1E0",
+"E. c #DAE4E3",
+"F. c #F7F9F9",
+"G. c #E6EDEC",
+"H. c #D6E1E0",
+"I. c #F6F8F8",
+"J. c #DBE6E4",
+"K. c #E3EBEB",
+"L. c #D8E2E2",
+"M. c #EDF2F1",
+"N. c #E5ECEB",
+"O. c #F1F5F5",
+"P. c #AAC1C0",
+"Q. c #86A6A4",
+"R. c #B8CBCA",
+"S. c #EFF3F3",
+"T. c #84A5A3",
+"U. c #175651",
+"V. c #759B98",
+"W. c #427572",
+"X. c #346B67",
+"Y. c #C0D1D0",
+"Z. c #1F2116",
+"`. c #838369",
+" + c #767673",
+".+ c #808879",
+"++ c #99A58E",
+"@+ c #979D97",
+"#+ c #8EAD90",
+"$+ c #A6B9A8",
+"%+ c #A4BEAB",
+"&+ c #BCD4C3",
+"*+ c #C5D6CD",
+"=+ c #D0E0D7",
+"-+ c #F5F7F7",
+";+ c #CFDDDA",
+">+ c #BCCDCB",
+",+ c #FAFCFC",
+"'+ c #6F9593",
+")+ c #417571",
+"!+ c #4E807A",
+"~+ c #BBCDCC",
+"{+ c #4F817A",
+"]+ c #427671",
+"^+ c #739996",
+"/+ c #BDCFCC",
+"(+ c #5A8783",
+"_+ c #568480",
+":+ c #D9E4E2",
+"<+ c #8CADA8",
+"[+ c #427571",
+"}+ c #437572",
+"|+ c #92B0AC",
+"1+ c #D5E0DF",
+"2+ c #55837F",
+"3+ c #5D8A84",
+"4+ c #C8D7D5",
+"5+ c #81A3A1",
+"6+ c #437772",
+"7+ c #4A7B77",
+"8+ c #ABC2C0",
+"9+ c #A5BEBB",
+"0+ c #467974",
+"a+ c #407570",
+"b+ c #86A6A5",
+"c+ c #F0F4F4",
+"d+ c #B1C6C4",
+"e+ c #29635F",
+"f+ c #2D6661",
+"g+ c #5C8885",
+"h+ c #1C5A55",
+"i+ c #88A8A6",
+"j+ c #F2F5F5",
+"k+ c #75775E",
+"l+ c #797873",
+"m+ c #787974",
+"n+ c #92A285",
+"o+ c #9B9D98",
+"p+ c #90A390",
+"q+ c #98B499",
+"r+ c #AEBAB1",
+"s+ c #A6C5AF",
+"t+ c #CBDAD2",
+"u+ c #BED3CA",
+"v+ c #E2ECE7",
+"w+ c #F6F9F8",
+"x+ c #CCD9D8",
+"y+ c #B8CCC9",
+"z+ c #E0EAE7",
+"A+ c #DFE7E7",
+"B+ c #4E7E7A",
+"C+ c #15574F",
+"D+ c #27625D",
+"E+ c #B2C7C4",
+"F+ c #ACC3C0",
+"G+ c #28645D",
+"H+ c #185751",
+"I+ c #53827D",
+"J+ c #AEC3C2",
+"K+ c #336C66",
+"L+ c #165650",
+"M+ c #2F6863",
+"N+ c #D1DDDC",
+"O+ c #729B94",
+"P+ c #7B9F9B",
+"Q+ c #CBD9D8",
+"R+ c #2E6762",
+"S+ c #387069",
+"T+ c #BBCECC",
+"U+ c #648E8A",
+"V+ c #185952",
+"W+ c #215D58",
+"X+ c #98B5B1",
+"Y+ c #90AFAB",
+"Z+ c #1D5A56",
+"`+ c #15564F",
+" @ c #6A948F",
+".@ c #93B0AE",
+"+@ c #437672",
+"@@ c #B7CBC9",
+"#@ c #4E7E7B",
+"$@ c #729895",
+"%@ c #E6ECEC",
+"&@ c #AFC5C3",
+"*@ c #90AEAC",
+"=@ c #A6BEBC",
+"-@ c #A9C1BE",
+";@ c #A8C0BE",
+">@ c #D2DEDD",
+",@ c #ADC3C1",
+"'@ c #C7D6D5",
+")@ c #6E9592",
+"!@ c #D5E0E0",
+"~@ c #C9D8D7",
+"{@ c #9FB9B7",
+"]@ c #F5F8F7",
+"^@ c #080806",
+"/@ c #64674C",
+"(@ c #7B7B73",
+"_@ c #737373",
+":@ c #85927C",
+"<@ c #9FA597",
+"[@ c #999B99",
+"}@ c #8DAC90",
+"|@ c #ACBAAD",
+"1@ c #ACBBB0",
+"2@ c #B8CEBD",
+"3@ c #D4DDD8",
+"4@ c #BED4CC",
+"5@ c #EDF3F2",
+"6@ c #F4F7F7",
+"7@ c #CDDBD9",
+"8@ c #B8CDCA",
+"9@ c #E8EEED",
+"0@ c #DFE7E6",
+"a@ c #4C7D78",
+"b@ c #28625E",
+"c@ c #B4C6C6",
+"d@ c #AEC2C2",
+"e@ c #29645E",
+"f@ c #54827E",
+"g@ c #AEC4C1",
+"h@ c #356B66",
+"i@ c #175551",
+"j@ c #2E6962",
+"k@ c #D0DEDC",
+"l@ c #739A95",
+"m@ c #175750",
+"n@ c #165750",
+"o@ c #7B9E9B",
+"p@ c #3A6F6B",
+"q@ c #648D8C",
+"r@ c #1A5753",
+"s@ c #205D58",
+"t@ c #98B5B2",
+"u@ c #91AFAC",
+"v@ c #6B948F",
+"w@ c #51807D",
+"x@ c #DDE6E6",
+"y@ c #DEE7E6",
+"z@ c #1C5955",
+"A@ c #497A76",
+"B@ c #A0B9B8",
+"C@ c #507F7C",
+"D@ c #4D7E7A",
+"E@ c #A2BBBA",
+"F@ c #477975",
+"G@ c #68918E",
+"H@ c #6C9491",
+"I@ c #CEDBDA",
+"J@ c #386E6A",
+"K@ c #25605C",
+"L@ c #81A3A0",
+"M@ c #F1F5F4",
+"N@ c #545842",
+"O@ c #7D7E73",
+"P@ c #737371",
+"Q@ c #7B7F76",
+"R@ c #9EAE90",
+"S@ c #9C9B9A",
+"T@ c #90A491",
+"U@ c #9DB79C",
+"V@ c #B4BAB4",
+"W@ c #A7C0AA",
+"X@ c #D1DCD3",
+"Y@ c #CAD7D3",
+"Z@ c #CFDFD7",
+"`@ c #F8FBF9",
+" # c #F3F7F6",
+".# c #C9D7D6",
+"+# c #BECECC",
+"@# c #EAEFEE",
+"## c #FEFEFF",
+"$# c #4D7D79",
+"%# c #26635B",
+"&# c #B1C7C3",
+"*# c #ABC3BF",
+"=# c #27645D",
+"-# c #175850",
+";# c #ADC4C0",
+"># c #336C65",
+",# c #D0DDDC",
+"'# c #769897",
+")# c #7A9F9B",
+"!# c #2F6763",
+"~# c #3A6F6C",
+"{# c #BBCDCD",
+"]# c #638E8A",
+"^# c #195852",
+"/# c #1E5E56",
+"(# c #98B4B2",
+"_# c #1D5B55",
+":# c #E5ECEC",
+"<# c #CEDBDB",
+"[# c #D7E2E2",
+"}# c #B4C9C7",
+"|# c #497A77",
+"1# c #85A6A3",
+"2# c #E7EDED",
+"3# c #588682",
+"4# c #457773",
+"5# c #9EB8B6",
+"6# c #4C7D79",
+"7# c #A0BAB8",
+"8# c #E0E8E7",
+"9# c #92AFAD",
+"0# c #3B706C",
+"a# c #CFDCDB",
+"b# c #010101",
+"c# c #4E503E",
+"d# c #7F8074",
+"e# c #737372",
+"f# c #747572",
+"g# c #9BAB8B",
+"h# c #9C9F98",
+"i# c #979D98",
+"j# c #8FB090",
+"k# c #B4BAB2",
+"l# c #A6BAAA",
+"m# c #B4CDB9",
+"n# c #DDE2E0",
+"o# c #C3D5CE",
+"p# c #E6EEEC",
+"q# c #F0F3F4",
+"r# c #BFD0CD",
+"s# c #C6D7D4",
+"t# c #28625D",
+"u# c #B1C8C3",
+"v# c #ADC2C1",
+"w# c #29635E",
+"x# c #52827D",
+"y# c #CAD9D7",
+"z# c #6B938F",
+"A# c #729994",
+"B# c #C4D5D3",
+"C# c #2C6661",
+"D# c #377069",
+"E# c #638D8B",
+"F# c #1A5853",
+"G# c #1F5D56",
+"H# c #8EADAA",
+"I# c #87A8A4",
+"J# c #1C5A54",
+"K# c #8FADAB",
+"L# c #A1BAB8",
+"M# c #235F5A",
+"N# c #25615C",
+"O# c #50513C",
+"P# c #808072",
+"Q# c #737272",
+"R# c #747473",
+"S# c #95A18B",
+"T# c #9DA199",
+"U# c #9A9B9A",
+"V# c #8CA98C",
+"W# c #A9B9A9",
+"X# c #B4BAB6",
+"Y# c #9FBDA6",
+"Z# c #DAE1DE",
+"`# c #D0DBD6",
+" $ c #C7DCD2",
+".$ c #F7FBF8",
+"+$ c #E8EDEC",
+"@$ c #BDCECB",
+"#$ c #D1DCDA",
+"$$ c #F9FAFA",
+"%$ c #DEE8E6",
+"&$ c #4C7E78",
+"*$ c #26635C",
+"=$ c #B3C7C5",
+"-$ c #ADC3C0",
+";$ c #B5C9C6",
+">$ c #376D69",
+",$ c #477A74",
+"'$ c #2B655F",
+")$ c #175650",
+"!$ c #2D6662",
+"~$ c #457973",
+"{$ c #1B5B54",
+"]$ c #3D716E",
+"^$ c #C7D6D7",
+"/$ c #6D9592",
+"($ c #1B5954",
+"_$ c #185752",
+":$ c #2B6660",
+"<$ c #2A645F",
+"[$ c #769C99",
+"}$ c #EBF1F0",
+"|$ c #9CB7B5",
+"1$ c #8BABA8",
+"2$ c #6A938F",
+"3$ c #195752",
+"4$ c #A7BFBD",
+"5$ c #5B8884",
+"6$ c #040403",
+"7$ c #595B45",
+"8$ c #7D7E72",
+"9$ c #737271",
+"0$ c #747373",
+"a$ c #8E9A86",
+"b$ c #9DA298",
+"c$ c #9C9A9A",
+"d$ c #92A292",
+"e$ c #9BB69D",
+"f$ c #BCBBBB",
+"g$ c #A6B8AA",
+"h$ c #BDD3C2",
+"i$ c #DEE3DF",
+"j$ c #C1D4CA",
+"k$ c #E3EDE8",
+"l$ c #DCE7E5",
+"m$ c #4E7D7A",
+"n$ c #6D9590",
+"o$ c #1A5A53",
+"p$ c #1C5B54",
+"q$ c #175751",
+"r$ c #185651",
+"s$ c #759997",
+"t$ c #F6F8F9",
+"u$ c #AEC3C3",
+"v$ c #316964",
+"w$ c #356B67",
+"x$ c #B3C8C6",
+"y$ c #7A9E9B",
+"z$ c #EBF0EF",
+"A$ c #648E8B",
+"B$ c #1D5B56",
+"C$ c #C8D7D6",
+"D$ c #356C67",
+"E$ c #5A8784",
+"F$ c #090A06",
+"G$ c #696A50",
+"H$ c #7B7B72",
+"I$ c #899481",
+"J$ c #9EA598",
+"K$ c #9C9A9B",
+"L$ c #979E96",
+"M$ c #94B395",
+"N$ c #B6BBB6",
+"O$ c #ABC7B3",
+"P$ c #DDE1DE",
+"Q$ c #CFD9D5",
+"R$ c #CCDBD3",
+"S$ c #F6F9F9",
+"T$ c #CCDBDB",
+"U$ c #BDCECE",
+"V$ c #F3F5F4",
+"W$ c #E4EBEA",
+"X$ c #68918D",
+"Y$ c #BDD0CD",
+"Z$ c #B9CCCA",
+"`$ c #3A706C",
+" % c #6C9591",
+".% c #E1E9E8",
+"+% c #D7E3E0",
+"@% c #709794",
+"#% c #3E726D",
+"$% c #316965",
+"%% c #447872",
+"&% c #80A2A0",
+"*% c #7FA19F",
+"=% c #427672",
+"-% c #3E736E",
+";% c #719993",
+">% c #DBE5E3",
+",% c #9DB7B4",
+"'% c #4D7E79",
+")% c #A2BBB9",
+"!% c #8AAAA7",
+"~% c #628D8A",
+"{% c #5F8B87",
+"]% c #618C88",
+"^% c #92B0AD",
+"/% c #EAF0F0",
+"(% c #BFD0CF",
+"_% c #6E9693",
+":% c #E3EBEA",
+"<% c #82A4A1",
+"[% c #BECFCE",
+"}% c #7DA09E",
+"|% c #69928F",
+"1% c #E0E8E8",
+"2% c #96B2B0",
+"3% c #BCCECD",
+"4% c #8DACA9",
+"5% c #E4EBEB",
+"6% c #789D9A",
+"7% c #0F0F0B",
+"8% c #77795C",
+"9% c #797872",
+"0% c #87907F",
+"a% c #9EA696",
+"b% c #9A9B99",
+"c% c #91AF92",
+"d% c #B0BBB0",
+"e% c #BBBABA",
+"f% c #A5BFAB",
+"g% c #D0DCD2",
+"h% c #DFE2E0",
+"i% c #BCD1C6",
+"j% c #EFF6F3",
+"k% c #BDCFCB",
+"l% c #D0DEDB",
+"m% c #F9FAFB",
+"n% c #F8FAFA",
+"o% c #D1DDDD",
+"p% c #EEF3F2",
+"q% c #D1DEDD",
+"r% c #D9E5E3",
+"s% c #F7FAF9",
+"t% c #BACBCB",
+"u% c #BACCCB",
+"v% c #F8FAF9",
+"w% c #D9E3E2",
+"x% c #C0D1CF",
+"y% c #C1D1D0",
+"z% c #DCE5E5",
+"A% c #E9EFEE",
+"B% c #E8EEEE",
+"C% c #E2EAE9",
+"D% c #588582",
+"E% c #ECF1F1",
+"F% c #EDF2F2",
+"G% c #FBFCFC",
+"H% c #EAEFEF",
+"I% c #F4F7F6",
+"J% c #24261D",
+"K% c #82866C",
+"L% c #757572",
+"M% c #737172",
+"N% c #747370",
+"O% c #8B9080",
+"P% c #9C9B9B",
+"Q% c #90AC90",
+"R% c #ADBAAC",
+"S% c #BCBABB",
+"T% c #A8BBAC",
+"U% c #C0D3C4",
+"V% c #E7E6E4",
+"W% c #C7D6CF",
+"X% c #D4E4DC",
+"Y% c #B7CAC8",
+"Z% c #E1EAE9",
+"`% c #FDFDFE",
+" & c #8AA9A7",
+".& c #B4C8C6",
+"+& c #225E59",
+"@& c #4B4E3A",
+"#& c #808173",
+"$& c #747273",
+"%& c #8C9782",
+"&& c #9DA496",
+"*& c #9B9B9A",
+"=& c #92A992",
+"-& c #BBBBBB",
+";& c #ADB9B0",
+">& c #B4CBB8",
+",& c #E3E5E2",
+"'& c #DCE0DF",
+")& c #C3D7CD",
+"!& c #F4F8F6",
+"~& c #C4D4D3",
+"{& c #DDE6E5",
+"]& c #779C99",
+"^& c #A9C0BE",
+"/& c #578581",
+"(& c #12130E",
+"_& c #696C53",
+":& c #787871",
+"<& c #747372",
+"[& c #909D84",
+"}& c #9DA297",
+"|& c #9B9A9A",
+"1& c #92A892",
+"2& c #A7B8A7",
+"3& c #BBBBBA",
+"4& c #B3B9B4",
+"5& c #ACC5B1",
+"6& c #DDE2DC",
+"7& c #E4E5E5",
+"8& c #C3D5CD",
+"9& c #E8EFEB",
+"0& c #E2EBEA",
+"a& c #B9CDCB",
+"b& c #E9EEEE",
+"c& c #030402",
+"d& c #373928",
+"e& c #787968",
+"f& c #96A48B",
+"g& c #9DA098",
+"h& c #9B9A99",
+"i& c #94A595",
+"j& c #A4B9A5",
+"k& c #BBBCB7",
+"l& c #B5BAB6",
+"m& c #A6C0AC",
+"n& c #D6DED6",
+"o& c #E6E6E7",
+"p& c #CBD8D2",
+"q& c #DAE6E1",
+"r& c #CCDAD9",
+"s& c #C1D3D0",
+"t& c #181910",
+"u& c #65664E",
+"v& c #797870",
+"w& c #737273",
+"x& c #777775",
+"y& c #9DAC8E",
+"z& c #9C9D9A",
+"A& c #9C9A9C",
+"B& c #9B9A9B",
+"C& c #93A595",
+"D& c #A2B9A4",
+"E& c #B8BAB9",
+"F& c #A4BDAA",
+"G& c #CFDAD0",
+"H& c #E7E6E6",
+"I& c #D2DBD7",
+"J& c #D0DFD8",
+"K& c #F9FBFA",
+"L& c #B7CCC9",
+"M& c #DCE7E2",
+"N& c #FDFEF8",
+"O& c #FEFFF9",
+"P& c #FFFFF9",
+"Q& c #040503",
+"R& c #484B34",
+"S& c #7D7D69",
+"T& c #757471",
+"U& c #82877C",
+"V& c #9DAD92",
+"W& c #92A793",
+"X& c #A6BAA7",
+"Y& c #BBBCBA",
+"Z& c #B9BBB8",
+"`& c #A5BBAA",
+" * c #CCD9CF",
+".* c #E8E7E8",
+"+* c #D8DEDB",
+"@* c #C9DAD4",
+"#* c #F4F8F7",
+"$* c #FBFBFB",
+"%* c #CAD8D3",
+"&* c #BFD4AF",
+"** c #F2FAB5",
+"=* c #F9FFB6",
+"-* c #F8FFB7",
+";* c #F9FFB7",
+">* c #F8FFB6",
+",* c #FAFFB6",
+"'* c #F8FFB5",
+")* c #F9FFB5",
+"!* c #FAFFB7",
+"~* c #010000",
+"{* c #252416",
+"]* c #78795F",
+"^* c #787771",
+"/* c #737270",
+"(* c #747472",
+"_* c #8C9A81",
+":* c #9DA597",
+"<* c #9B9B99",
+"[* c #91A992",
+"}* c #AAB9A9",
+"|* c #BDBBBB",
+"1* c #B9BAB9",
+"2* c #A3B9A9",
+"3* c #C5D6CB",
+"4* c #E7E7E8",
+"5* c #C5D7CE",
+"6* c #F0F5F3",
+"7* c #FEFFFE",
+"8* c #E4ECE8",
+"9* c #B3CC9E",
+"0* c #DEED7B",
+"a* c #F6FF7D",
+"b* c #F3FF7D",
+"c* c #F5FF7D",
+"d* c #F3FF7C",
+"e* c #F4FF7D",
+"f* c #F4FF7C",
+"g* c #F5FF7C",
+"h* c #F5FF7E",
+"i* c #F3FF7E",
+"j* c #F4FF7E",
+"k* c #F2FF7D",
+"l* c #F4FF7F",
+"m* c #F6FF7E",
+"n* c #F2FF7C",
+"o* c #030202",
+"p* c #232418",
+"q* c #6C6F51",
+"r* c #777771",
+"s* c #97A787",
+"t* c #9C9C9B",
+"u* c #90AB91",
+"v* c #AEB9AD",
+"w* c #BABBBA",
+"x* c #BBBBB9",
+"y* c #A5BAA7",
+"z* c #C4D5C6",
+"A* c #E7E6E5",
+"B* c #E0E2E2",
+"C* c #C2D4CB",
+"D* c #EBF2EF",
+"E* c #F8F9FA",
+"F* c #C0D3C1",
+"G* c #C7DA80",
+"H* c #F0FC7C",
+"I* c #F6FF7C",
+"J* c #F5FF7F",
+"K* c #F4FF7B",
+"L* c #F3FF7F",
+"M* c #272519",
+"N* c #66654D",
+"O* c #7A796E",
+"P* c #757473",
+"Q* c #87917D",
+"R* c #9AA591",
+"S* c #999C98",
+"T* c #8FAF93",
+"U* c #BABABA",
+"V* c #A5B9A8",
+"W* c #C2D4C6",
+"X* c #E6E7E5",
+"Y* c #E3E5E4",
+"Z* c #C1D2CB",
+"`* c #E9F0ED",
+" = c #D7E3DA",
+".= c #B9D089",
+"+= c #E6F37B",
+"@= c #070705",
+"#= c #333323",
+"$= c #66674F",
+"%= c #78786B",
+"&= c #7A7D77",
+"*= c #93A187",
+"== c #9DA097",
+"-= c #969E97",
+";= c #94B497",
+">= c #B8BBB8",
+",= c #BCBBBA",
+"'= c #A4B9A8",
+")= c #C6D4C9",
+"!= c #E4E5E4",
+"~= c #C2D3CB",
+"{= c #E6EEEB",
+"]= c #EDF3F0",
+"^= c #B9CFA6",
+"/= c #D6E77C",
+"(= c #F3FD7D",
+"_= c #F3FF7B",
+":= c #11130B",
+"<= c #3D3F29",
+"[= c #72715B",
+"}= c #76766E",
+"|= c #747371",
+"1= c #86907E",
+"2= c #9BA791",
+"3= c #9C9D9B",
+"4= c #9DB79D",
+"5= c #B8BBB7",
+"6= c #A4BAAA",
+"7= c #CAD8CE",
+"8= c #E7E7E7",
+"9= c #E6E5E5",
+"0= c #C6D4CD",
+"a= c #DDEAE5",
+"b= c #C4D7BD",
+"c= c #C6DB81",
+"d= c #EFFA7C",
+"e= c #272724",
+"f= c #17160E",
+"g= c #3D3C28",
+"h= c #636448",
+"i= c #717365",
+"j= c #747471",
+"k= c #7F8377",
+"l= c #96A58B",
+"m= c #9CA098",
+"n= c #9A9C9A",
+"o= c #8CAA8D",
+"p= c #ABB9AB",
+"q= c #B7BAB8",
+"r= c #A3BDA8",
+"s= c #CFDAD2",
+"t= c #E9E7E6",
+"u= c #E5E6E4",
+"v= c #C4D4CB",
+"w= c #DDE7E2",
+"x= c #D9E4DA",
+"y= c #B9CF92",
+"z= c #E6F57C",
+"A= c #5D5E45",
+"B= c #6F714A",
+"C= c #838663",
+"D= c #858671",
+"E= c #848475",
+"F= c #848473",
+"G= c #848474",
+"H= c #848573",
+"I= c #848574",
+"J= c #868872",
+"K= c #9EAA81",
+"L= c #A8B292",
+"M= c #A7A898",
+"N= c #A8A697",
+"O= c #A8A896",
+"P= c #A8A798",
+"Q= c #A0AA91",
+"R= c #99BA8E",
+"S= c #BEC3AF",
+"T= c #C4C3B4",
+"U= c #C4C4B3",
+"V= c #BDC3AF",
+"W= c #ABC7A1",
+"X= c #D6E1C7",
+"Y= c #E9EAD9",
+"Z= c #E6E8D8",
+"`= c #C2D5C0",
+" - c #D5E7CD",
+".- c #FCFFED",
+"+- c #FDFFEE",
+"@- c #FEFFEE",
+"#- c #FDFEED",
+"$- c #E5EDD8",
+"%- c #B6CC96",
+"&- c #E0EF7B",
+"*- c #F5FF7B",
+"=- c #767764",
+"-- c #86876E",
+";- c #878873",
+">- c #878875",
+",- c #878874",
+"'- c #8C9076",
+")- c #9CA87F",
+"!- c #ABB490",
+"~- c #A9AB96",
+"{- c #A9A997",
+"]- c #AAA995",
+"^- c #AAAA96",
+"/- c #AAAA95",
+"(- c #9DB58A",
+"_- c #A7C299",
+":- c #C3C5B1",
+"<- c #C6C5B2",
+"[- c #C5C5B2",
+"}- c #BBC3AA",
+"|- c #AECCA1",
+"1- c #DBE5CA",
+"2- c #EAEAD8",
+"3- c #E6E9D5",
+"4- c #C1D6BD",
+"5- c #DBEAD0",
+"6- c #FCFFEA",
+"7- c #FDFFEB",
+"8- c #FEFFEB",
+"9- c #EFF4E0",
+"0- c #B8CFAF",
+"a- c #BBE17E",
+"b- c #CEF87A",
+"c- c #CCF979",
+"d- c #CEF979",
+"e- c #CCFA79",
+"f- c #CDFA79",
+"g- c #CBFA78",
+"h- c #CEFA79",
+"i- c #CFF97B",
+"j- c #CEF97A",
+"k- c #CDF97A",
+"l- c #CDF979",
+"m- c #CFF97A",
+"n- c #CCFA78",
+"o- c #CDFA7A",
+"p- c #CDFA78",
+"q- c #CCFA77",
+"r- c #CEFA7A",
+"s- c #CDF978",
+"t- c #CEF978",
+"u- c #CCF978",
+"v- c #CEFA78",
+"w- c #CFF979",
+"x- c #CEFA7B",
+"y- c #6B6A6A",
+"z- c #787874",
+"A- c #8A937F",
+"B- c #9BA78E",
+"C- c #9D9D99",
+"D- c #9D9C9B",
+"E- c #9D9B9A",
+"F- c #9D9A9B",
+"G- c #9D9B9C",
+"H- c #999E96",
+"I- c #90AF8F",
+"J- c #B1BAB0",
+"K- c #BCBCBA",
+"L- c #BBBCB9",
+"M- c #ABB9AE",
+"N- c #B1C9B5",
+"O- c #E3E4E2",
+"P- c #E8E8E6",
+"Q- c #E5E4E3",
+"R- c #C3D2CB",
+"S- c #FFFFFE",
+"T- c #F7F9F8",
+"U- c #C2D7C9",
+"V- c #97D37E",
+"W- c #B0F577",
+"X- c #B0F576",
+"Y- c #B1F577",
+"Z- c #AFF575",
+"`- c #B0F676",
+" ; c #B1F576",
+".; c #AFF675",
+"+; c #AFF576",
+"@; c #B0F677",
+"#; c #B2F478",
+"$; c #AFF574",
+"%; c #B1F677",
+"&; c #B1F477",
+"*; c #6A6969",
+"=; c #767875",
+"-; c #8A947D",
+";; c #9BA58F",
+">; c #9D9E99",
+",; c #90A490",
+"'; c #9CB69C",
+"); c #BABBB9",
+"!; c #A4B9AB",
+"~; c #BDD1C2",
+"{; c #E6E6E5",
+"]; c #E1E3E3",
+"^; c #C1D2CA",
+"/; c #FBFDFD",
+"(; c #D0E0DB",
+"_; c #92CA87",
+":; c #AEF376",
+"<; c #AFF476",
+"[; c #B0F477",
+"}; c #AEF575",
+"|; c #AEF675",
+"1; c #AFF676",
+"2; c #6A6A6A",
+"3; c #797E76",
+"4; c #8A9682",
+"5; c #9BA78F",
+"6; c #9C9E9A",
+"7; c #9C999C",
+"8; c #969F95",
+"9; c #8FAF90",
+"0; c #AEBAAE",
+"a; c #BCBBBC",
+"b; c #B9BABA",
+"c; c #9FBDA8",
+"d; c #CED9D2",
+"e; c #E8E7E7",
+"f; c #E7E7E6",
+"g; c #E0E3E1",
+"h; c #C1D5CC",
+"i; c #ECF3EF",
+"j; c #DDE7E6",
+"k; c #9DC79A",
+"l; c #A7ED75",
+"m; c #ADF574",
+"n; c #6A6A68",
+"o; c #737173",
+"p; c #7D8377",
+"q; c #919F84",
+"r; c #9BA592",
+"s; c #9C9C99",
+"t; c #8EA693",
+"u; c #9EB79F",
+"v; c #B8BBB6",
+"w; c #BCBABC",
+"x; c #B5BAB5",
+"y; c #A1C3AB",
+"z; c #DCE1DC",
+"A; c #E7E8E6",
+"B; c #DEE1DF",
+"C; c #C5D7CD",
+"D; c #F0F5F2",
+"E; c #E6EEED",
+"F; c #A0C9A3",
+"G; c #A2E774",
+"H; c #B1F478",
+"I; c #AEF576",
+"J; c #B1F578",
+"K; c #AEF674",
+"L; c #6A6A69",
+"M; c #737370",
+"N; c #757674",
+"O; c #7B8075",
+"P; c #8D9A81",
+"Q; c #99A68E",
+"R; c #9B9B9B",
+"S; c #93A193",
+"T; c #94B597",
+"U; c #B4BAB3",
+"V; c #BDBBBA",
+"W; c #BDBBBC",
+"X; c #A1B8A4",
+"Y; c #BCD1C2",
+"Z; c #E5E7E5",
+"`; c #D5DDD8",
+" > c #CBDCD2",
+".> c #F6F9F7",
+"+> c #EEF4F3",
+"@> c #A6CBAA",
+"#> c #9BE170",
+"$> c #6B6C6A",
+"%> c #777A73",
+"&> c #7F8676",
+"*> c #8A967F",
+"=> c #94A18A",
+"-> c #9CA395",
+";> c #9C9D99",
+">> c #9C999B",
+",> c #949F94",
+"'> c #8CAD8F",
+")> c #AFBAAE",
+"!> c #9ABAA0",
+"~> c #D8DED8",
+"{> c #E8E7E6",
+"]> c #E9E7E7",
+"^> c #E8E6E5",
+"/> c #CFDAD5",
+"(> c #D1E0D9",
+"_> c #AFCDB6",
+":> c #9ADE73",
+"<> c #7C8771",
+"[> c #93A682",
+"}> c #99AB89",
+"|> c #9DAB90",
+"1> c #9EA796",
+"2> c #9EA497",
+"3> c #9EA496",
+"4> c #9EA397",
+"5> c #98A693",
+"6> c #8CB289",
+"7> c #A2BD9D",
+"8> c #BAC1B3",
+"9> c #BBC1B4",
+"0> c #BAC1B2",
+"a> c #B9C1B2",
+"b> c #A3BEA1",
+"c> c #A9CAA7",
+"d> c #E0E8DA",
+"e> c #E2E9DB",
+"f> c #DFE7D8",
+"g> c #C1D7C7",
+"h> c #D1E6D4",
+"i> c #F4FCEF",
+"j> c #F6FEF0",
+"k> c #F7FEF1",
+"l> c #F7FEF0",
+"m> c #F1FAEC",
+"n> c #B2CEB9",
+"o> c #99DA77",
+"p> c #87937C",
+"q> c #9FB190",
+"r> c #9FB08F",
+"s> c #9FAE92",
+"t> c #A1AD94",
+"u> c #A0AE93",
+"v> c #A0AE92",
+"w> c #A1AE93",
+"x> c #9BB08F",
+"y> c #8EBB86",
+"z> c #9BC594",
+"A> c #B5C7A9",
+"B> c #B9C8AD",
+"C> c #B9C8AC",
+"D> c #B9C7AC",
+"E> c #B0C7A3",
+"F> c #9AC996",
+"G> c #C1DFB8",
+"H> c #DCEACE",
+"I> c #DBEACE",
+"J> c #D6E7C8",
+"K> c #B0D4B6",
+"L> c #D7EED1",
+"M> c #EDFDE1",
+"N> c #ECFDDF",
+"O> c #EEFDE2",
+"P> c #EEFCE1",
+"Q> c #EDFDE0",
+"R> c #EDFCE0",
+"S> c #ECFDE0",
+"T> c #ECFCDF",
+"U> c #AACDB0",
+"V> c #64CA5E",
+"W> c #74E35E",
+"X> c #77E55F",
+"Y> c #76E55F",
+"Z> c #75E55D",
+"`> c #77E45E",
+" , c #76E45E",
+"., c #76E55E",
+"+, c #75E45E",
+"@, c #76E460",
+"#, c #77E460",
+"$, c #76E45F",
+"%, c #76E560",
+"&, c #75E45F",
+"*, c #77E45F",
+"=, c #75E55E",
+"-, c #75E65D",
+";, c #77E65F",
+">, c #75E460",
+",, c #74E55B",
+"', c #75E55F",
+"), c #76E45D",
+"!, c #76E55D",
+"~, c #75E55C",
+"{, c #74E55D",
+"], c #77E560",
+"^, c #858384",
+"/, c #969E95",
+"(, c #8EAC8E",
+"_, c #9FB9A0",
+":, c #B9BBB9",
+"<, c #A7BAA9",
+"[, c #B4CBBA",
+"}, c #E1E4E2",
+"|, c #E9E7E9",
+"1, c #D7DDD9",
+"2, c #C4D9CF",
+"3, c #ACCDBC",
+"4, c #34BB49",
+"5, c #39D146",
+"6, c #39D347",
+"7, c #39D344",
+"8, c #39D345",
+"9, c #39D247",
+"0, c #39D346",
+"a, c #39D245",
+"b, c #39D446",
+"c, c #39D444",
+"d, c #39D246",
+"e, c #39D445",
+"f, c #858483",
+"g, c #9A9A9A",
+"h, c #92A092",
+"i, c #8CAD91",
+"j, c #A2B9A3",
+"k, c #B8BBB9",
+"l, c #BDBABC",
+"m, c #B1B9B3",
+"n, c #A2BFA9",
+"o, c #D1DBD4",
+"p, c #E6E6E6",
+"q, c #C3D5CB",
+"r, c #DAE8DF",
+"s, c #32BB48",
+"t, c #39D145",
+"u, c #39D348",
+"v, c #858484",
+"w, c #9C9B99",
+"x, c #91A491",
+"y, c #90AF91",
+"z, c #A6B7A8",
+"A, c #B8BAB7",
+"B, c #9EBAA4",
+"C, c #BBD0C1",
+"D, c #E9E6E6",
+"E, c #BCD2C7",
+"F, c #F4F7F5",
+"G, c #ADCCBC",
+"H, c #32BA48",
+"I, c #8CAB8E",
+"J, c #B2BAB1",
+"K, c #BABBB8",
+"L, c #BABCBA",
+"M, c #A4B8A8",
+"N, c #ACC8B2",
+"O, c #E5E6E5",
+"P, c #CFE0D7",
+"Q, c #39D147",
+"R, c #39D248",
+"S, c #858485",
+"T, c #93A195",
+"U, c #8FA890",
+"V, c #92B295",
+"W, c #A8B9A7",
+"X, c #B8BAB8",
+"Y, c #AAB9AE",
+"Z, c #A5C1AD",
+"`, c #D7DDD8",
+" ' c #DCE1DD",
+".' c #BDD3C9",
+"+' c #E8F1ED",
+"@' c #34BC47",
+"#' c #999C99",
+"$' c #959F96",
+"%' c #8EAB8F",
+"&' c #94B398",
+"*' c #A4B8A6",
+"=' c #BCBBB9",
+"-' c #ABB8AE",
+";' c #A1BEAA",
+">' c #CBD8CF",
+",' c #E6E5E6",
+"'' c #CBD8D0",
+")' c #CDDFD6",
+"!' c #F7FAFA",
+"~' c #AAC9B9",
+"{' c #33BF47",
+"]' c #39D244",
+"^' c #7B8B7B",
+"/' c #88AC8A",
+"(' c #8FB290",
+"_' c #9EB69F",
+":' c #AAB9AB",
+"<' c #B7BAB7",
+"[' c #B2B9B2",
+"}' c #99BCA1",
+"|' c #C3D4C7",
+"1' c #E5E5E3",
+"2' c #E8E8E7",
+"3' c #DAE0DE",
+"4' c #C1D4CD",
+"5' c #F4F6F7",
+"6' c #A5C9B8",
+"7' c #33C147",
+". + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ",
+"@ # $ $ $ $ $ $ $ % & * = - ; > , ' ) ! ~ { ] ^ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / ",
+"@ ( _ _ _ _ _ _ _ : < [ } | 1 2 3 4 5 6 7 8 9 0 a b c c c c c c c c c c c c c c c c c d e f g h i j k c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c ",
+"@ ( _ _ _ _ _ _ _ _ l m n o p q r s t u v w 0 x y z A c c c c c c c c c c c c c c c c B C D E F G H I c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c ",
+"@ ( _ _ _ _ _ _ _ _ J K L M N O P Q R S T U V W X Y Z ` c c c c c c c c c c c c c c c ...+.@.#.$.%.&.c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c ",
+"@ ( _ _ _ _ _ _ _ _ _ *.=.-.;.>.,.'.).!.~.{.].^./.(._.:.` c c c c c c c c c c c c c c <.[.}.|.1.2.3.4.c c c c c c c c c c c c c c c c c c c c c c c c c c c c ^.5.5.5.5.k c c c c c c c c c c c c c c c c c c c 6.7.7.8.c c c 9.0.7.a.b.c c c c c c c c ",
+"@ ( _ _ _ _ _ _ _ _ _ _ c.d.e.f.g.h.i.j.k.l.m.n.c o.p.q.r.s.c c c c c c c c c c c c t.u.v.w.x.y.z.A.j B.C.D.E.F.G.H.H.B I.E.H.J.o.K.H.L.M.<.6.D.N.^.c c c c O.P.Q.Q.Q.Q.R.S.c c c c c c c c c c c c c c c c c c T.U.U.V.c c c L.W.U.X.Y.c c c c c c c c ",
+"@ ( _ _ _ _ _ _ _ _ _ _ Z.`. +.+++@+#+$+%+&+*+=+d c -+;+>+e ,+c c c c c c c c c c c N.'+)+!+Y.~+{+]+^+/+(+)+_+:+<+[+}+|+1+2+[+3+4+5+6+7+8+9+0+a+b+c+c c c d d+e+U.f+g+U.h+i+j+c c c c c c c c c c c c c c c c c T.U.U.V.c c c L.W.U.X.Y.c c c c c c c c ",
+"@ ( _ _ _ _ _ _ _ _ _ _ *.k+l+m+n+o+p+q+r+s+t+u+v+` c w+x+y+z+b c c c c c c c c c c A+B+C+D+E+F+G+H+I+J+K+L+M+N+O+U.U.P+Q+R+L+S+T+U+V+W+X+Y+Z+`+ @M.c c c 5..@U.U.+@@@#@#@$@%@&@*@*@=@N+*@*@-@S.;@*@*@>@,@'@V c T.U.U.)@!@~@j+L.W.U.X.h {@Y ]@c c c c c ",
+"@ ( _ _ _ _ _ _ _ _ _ _ ^@/@(@_@:@<@[@}@|@1@2@3@4@5@c c 6@7@8@9@` c c c c c c c c c 0@a@L+b@c@d@e@H+f@g@h@i@j@k@l@m@n@o@Q+R+C+p@~+q@r@s@t@u@Z+`+v@M.c c c c 8.w@M+_+O.x@y@<.` g+z@z@A@B@z@z@C@y@D@z@z@E@F@W+G@^.T.U.U.H@I@Y.S.L.W.U.X..@J@K@L@M@c c c c ",
+"@ ( _ _ _ _ _ _ _ _ _ _ J N@O@P@Q@R@S@T@U@V@W@X@Y@Z@`@c c #.#+#@###c c c c c c c c 0@$#L+%#&#*#=#-#I+;#>#L+M+,#'#m@n@)#Q+!#U.~#{#]#^#/#(#u@_#L+v@M.c c c c c :#<#[#}#F@|#1#2#3#U.U.4#5#U.U.6#x@7+U.U.7#W.U.D 8#T.U.U.V.c c c L.W.U.X.9#X.U.0#a#c c c c ",
+"@ ( _ _ _ _ _ _ _ _ _ _ b#c#d#e#f#g#h#i#j#k#l#m#n#o#p#k c c q#r#s#6@c c c c c c c c 0@a@L+t#u#v#w#H+x#J+K+i@R+y#z#U.U.A#B#C#L+D#{#E#F#G#H#I#J#L+v@M.c c c 9.V.V.V.K#L#U.U.M#7#3#U.U.4#5#U.U.6#x@7+U.U.7#W.U.N#~@T.U.U.V.c L.y@L.W.U.X.9#X.U.0#a#c c c c ",
+"@ ( _ _ _ _ _ _ _ _ _ _ b#O#P#Q#R#S#T#U#V#W#X#Y#Z#`# $.$c c k +$@$#$$$c c c c c c c %$&$L+*$=$-$G+H+x#;$>$L+J#,$'$L+)$!$~${$L+]$^$/$($_$:$<$m@n@[$O.c c c }$D+U.U.)+|$U.U.U.1$2$3$U.4#5#U.U.6#x@7+U.U.7#W.U.N#~@4$D+U.V.Q+F@5$R.W.U.X.9#X.U.0#a#c c c c ",
+"@ ( _ _ _ _ _ _ _ _ _ _ 6$7$8$9$0$a$b$c$d$e$f$g$h$i$j$k$c c c A l$@@e c c c c c c c A+m$L+b@=$,@e@3$I+1+n$o$U.L+n@_#p$q$`+r$J#s$t$u$v$m@C+L+q$w$x$A c c c I.y$s@U.U.U.U.U.D+;@!@0#U.4#5#U.U.6#x@7+U.U.7#W.U.N#~@z$A$B$^+C$D$E$~+W.U.X.9#X.U.0#a#c c c c ",
+"@ ( _ _ _ _ _ _ _ _ _ _ F$G$H$Q#_@I$J$K$L$M$N$X#O$P$Q$R$^.c c c S$T$U$V$c c c c c c W$X$S+F@Y$Z$|#`$ %.%+%@%#%$%%%&%*%=%$%-%;%>%c j+,%'%K+K+f@)%c+c c c c c :#!%~%{%{%{%]%^%/%c (%_%*%4$U.U.6#:%<%{%{%[%}%{%|%E.c 1%!%2%3%4%I@5%}%{%^+7.^+{%6%y@c c c c ",
+"@ ( _ _ _ _ _ _ _ _ _ _ 7%8%9%9$_@0%a%S@b%c%d%e%f%g%h%i%j%c c c ##I k%l%m%c c c c c n%:+I@o%p%M.q%I@r%s%` b.v.t%N+o.9.a#u%~@<.k c c v%w%x%y%z%v%c c c c c c c F.A%2#2#2#B%t.c c C%M@<.R.U.U.D%c+E%2#2#]@}$2#B%t.c c ,+F%M.]@c G%}$2#H%I%H%2#b.5.c c c c ",
+"@ ( _ _ _ _ _ _ _ _ _ _ J%K%L%M%N%O%<@P%U#Q%R%S%T%U%V%W%X%k c c c k .%Y%Z%` c c c c c c c c c c c c c c c c k `%c c c c `%k c c c c c c k k c c c c c c c c c c c c c c c c c c &.&j+u%_$+&=@^.c c c c c c c c c c c c c c c c c c c c c c c c c c c c ",
+"@ ( _ _ _ _ _ _ _ _ _ : @&#&Q#Q#$&%&&&P%*&=&W#-&;&>&,&'&)&!&c c c c G%B#~&6@c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c {&]&^&y%/&{@S.c c c c c c c c c c c c c c c c c c c c c c c c c c c c c ",
+"@ ( _ _ _ _ _ _ _ _ _ (&_&:&Q#Q#<&[&}&K$|&1&2&3&4&5&6&7&8&9&c c c c k 0&a&{&` c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c F.b&M@:#c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c ",
+"@ ( _ _ _ _ _ _ _ _ c&d&e&<&9$9$<&f&g&c$h&i&j&k&l&m&n&o&p&q&^.c c c c F.r&s&t$c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c ",
+"@ ( _ _ _ _ _ _ _ _ t&u&v&Q#w&w&x&y&z&A&B&C&D&3&E&F&G&H&I&J&K&c c c c c A%L&M&N&O&O&O&P&O&O&O&O&P&O&O&P&P&O&O&P&P&O&O&P&O&P&P&O&P&P&P&P&O&O&P&O&O&O&O&O&O&O&O&O&O&P&P&P&O&P&O&P&O&P&P&O&P&O&P&P&O&O&P&P&O&P&O&P&O&P&P&P&O&P&P&O&P&P&O&O&P&P&O&O&O&O&O&O&",
+"@ ( _ _ _ _ _ _ _ Q&R&S&T&9$Q#Q#U&V&P%K$*&W&X&Y&Z&`& *.*+*@*#*c c c c c $*%*&***=*-*;*;*>*>*=*;*,*>*-*=*;*=*>*;*;*;*;*;*'*=*;*>*;*;*,*=*=*)*;*-*=*=*>*;*=*-*;*;*>*;*=*;*-*;*=*=*-*,*;*>*;*-*;*,*;*-*;*=*>*;*-*=*=*=*;*;*=*;*!*=*-*,*;*;*,*;*=*;*=*=*=*-*",
+"@ ( _ _ _ _ _ _ ~*{*]*^*/*w&w&(*_*:*A&K$<*[*}*|*1*2*3*4*P$5*6*c c c c c 7*8*9*0*a*b*c*d*d*e*f*c*f*b*e*c*e*c*d*g*h*i*j*k*c*e*g*b*l*b*m*e*e*h*b*e*d*h*c*i*h*b*f*d*i*c*h*h*j*i*f*b*f*h*e*b*e*e*e*n*b*b*c*c*e*h*i*c*b*e*e*h*j*i*h*f*j*f*j*i*e*e*e*g*f*g*f*b*",
+"@ ( _ _ _ _ _ o*p*q*r*Q#w&9$9$Q@s*t*c$K$b%u*v*w*x*y*z*A*B*C*D*c c c c c c E*F*G*H*b*d*h*c*I*J*b*e*h*d*f*k*g*c*b*b*f*I*K*e*i*i*j*e*c*e*d*c*e*f*h*h*e*d*e*e*e*h*j*f*e*n*f*d*d*c*f*j*e*d*h*j*f*e*h*h*h*n*h*f*f*g*e*i*c*g*i*f*f*e*b*k*h*f*g*g*k*L*b*J*e*e*h*",
+"@ ( _ _ _ _ 6$M*N*O*9$9$Q#Q#P*Q*R*K$K$K$S*T*k#3&U*V*W*X*Y*Z*`*c c c c c c c =.=+=e*e*e*b*g*c*e*e*e*e*e*h*d*e*j*c*b*e*e*c*e*f*h*b*e*d*j*e*e*k*c*e*f*c*g*c*i*f*f*b*h*f*h*e*f*e*b*i*h*e*e*d*c*d*g*e*e*c*g*b*e*b*b*e*i*h*f*e*b*j*g*h*f*j*e*e*g*e*f*c*e*e*e*",
+"@ ( _ _ _ @=#=$=%=<&9$Q#Q#9$&=*===c$c$K$-=;=>=,=1*'=)=H&!=~={=c c c c c c c ]=^=/=(=c*c*e*_=c*n*l*f*e*h*e*e*c*e*e*e*b*e*e*e*f*c*b*e*e*c*c*f*j*e*j*f*j*f*e*f*e*c*e*h*b*j*b*e*h*e*b*e*d*e*b*c*j*e*e*e*i*e*b*e*j*e*e*e*i*f*e*e*h*e*e*e*e*f*e*e*e*e*j*d*b*c*",
+"@ ( _ b#:=<=[=}=|=9$w&9$w&(*1=2=3=c$A&K$p+4=f$f$5=6=7=8=9=0=a=b c c c c c c v%b=c=d=b*e*j*d*b*K*h*f*e*f*K*c*f*a*k*g*c*f*c*j*e*f*e*e*h*n*c*e*g*k*e*d*e*e*f*h*j*j*h*e*f*e*f*e*e*j*e*d*e*e*f*c*e*c*f*e*c*d*h*g*c*c*c*b*g*e*f*e*b*i*f*b*e*e*K*e*d*j*e*f*c*g*",
+"@ e=f=g=h=i=j=9$M%M%/*M%Q#k=l=m=c$c$K$n=o=p=-&,=q=r=s=t=u=v=w=b c c c c c c ` x=y=z=c*c*e*f*f*i*h*e*b*i*J*k*i*b*g*e*g*b*h*d*e*l*i*h*g*j*d*i*e*e*h*f*j*f*f*b*c*f*d*j*e*j*J*b*f*j*e*h*b*h*f*b*f*b*h*f*j*f*d*i*b*b*d*j*b*e*j*h*j*g*g*h*g*c*b*h*e*c*g*j*e*e*",
+"@ A=B=C=D=E=F=G=H=I=G=H=J=K=L=M=N=O=P=Q=R=S=T=U=V=W=X=Y=Z=`= -.-+-+-+-@-@-+-#-$-%-&-f*i*f*e*i*i*h*d*c*f*c*e*e*j*e*e*j*c*b*e*c*e*e*e*b*e*c*e*c*f*b*g*d*e*e*j*f*c*f*c*e*e**-e*e*c*d*b*c*f*j*c*j*K*j*j*e*c*e*f*e*c*c*e*g*b*e*f*b*e*i*c*b*e*d*c*b*c*j*i*h*n*",
+"@ =---;->-;-,-;-;-,->-'-)-!-~-{-]-^-/-(-_-:-<-[-}-|-1-2-3-4-5-6-7-7-7-8-7-7-8-9-0-a-b-c-d-e-f-f-f-g-d-h-i-e-f-j-k-l-k-d-e-m-f-n-i-i-e-o-p-q-j-l-r-p-q-l-r-n-e-j-f-j-q-l-s-l-t-n-t-d-i-p-d-s-u-q-n-j-j-v-q-d-s-r-n-n-w-k-f-k-x-q-d-v-h-k-f-i-f-j-r-f-n-g-",
+"@ y-0$R#<&<&|=0$<&0$z-A-B-C-D-E-F-G-H-I-J-f$K-L-M-N-O-P-Q-R-9&S-S-S-S-S-S-S-S-T-U-V-W-X-Y-X-Z-X-`-Z-Y- ;.;+;@;@;X-X-Y-.;Y-`-X-Z-#;`-W-X-Y-Y-.;X-`-Y-$;Z-X-X-X-`-X-Z- ;Z-X-X-`-Y-%;Z-Z-X-Z-X-X-Y-Y-X-Y-%;X-Y-&;X-Y-Y-`-X-Y-X-Y-X-Y-X-Y-X-Z-Z-X-.;Z-Z-X-X-",
+"@ *;9$Q#Q#w&Q#Q#e#=;-;;;>;K$K$K$K$*&,;';x*f$,=);!;~;{;8=];^;`*c c c c c c c c /;(;_;:;+;+;<;[;+;+;+;};+;};+;W-+;W-};};|;W-W-W-};};+;+;1;};W-|;[;+;W-+;W-};1;+;X-};W-+;};};+;W-|;W-W-};<;W-W-+;W-+;+;};W-+;};|;+;+;};+;+;};+;};+;+;+;};};+;};<;+;[;+;+;+;",
+"@ 2;w&9$Q#9$w&e#3;4;5;6;P%7;A&K$A&8;9;0;a;3&K-b;c;d;e;f;g;h;i;c c c c c c c c k j;k;l;|;+;+;};};+;+;+;X-W-+;};};W-+;W-+;[;+;+;W-};W-W-W-W-+;};+;+;};+;+;};+;+;+;+;+;+;+;+;+;|;+;+;W-+;};+;+;m;W-+;+;1;@;+;+;W-+;W-+;[;+;+;+;+;1;+;};[;+;+;W-+;+;};+;+;+;",
+"@ n;Q#M%o;9$<&p;q;r;s;c$K$c$K$K$K$t;u;v;w;f$3&x;y;z;e;A;B;C;D;c c c c c c c c c E;F;G;W-[;};+;+;H;+;+;+;+;1;@;W-+;I;+;};1;W-};J;|;W-@;1;};};};[;+;K;H;W-<;};+;+;+;<;+;W-+;+;+;m;};@;1;W-};+;W-J;+;+;<;+;};W-};};+;m;W-@;1;};<;};+;W-+;@;+;+;+;W-+;W-+;+;",
+"@ L;Q#M;N;O;P;Q;m=S@A&7;A&K$S@R;S;T;U;a;V;W;f$X;Y;Z;8=H&`; >.>c c c c c c c c c +>@>#>+;+;H;W-1;+;1;+;+;W-[;+;1;};+;+;+;+;};+;+;<;};<;+;W-1;@;+;+;+;};};1;+;+;+;W-};+;+;};W-W-W-<;+;+;+;+;[;};};};+;+;};+;};<;[;+;W-+;<;+;W-+;W-1;<;+;+;|;[;};+;+;1;+;1;",
+"@ $>%>&>*>=>->;>K$K$>>K$c$A&R;,>'>)>3&f$w*a;V@!>~>{>]>^>/>(>V c c c c c c c c c -+_>:>+;};+;+;W-+;+;+;W-W-};+;+;};+;+;W-+;X-+;+;};+;+;+;|;<;};+;};1;+;W-+;+;};};W-+;W-+;+;+;+;[;m;W-+;};1;+;+;+;W-+;+;+;+;+;};+;+;+;+;+;+;+;+;+;+;+;W-+;+;+;|;+;+;W-+;};",
+"@ <>[>}>|>1>2>3>4>4>4>2>2>2>5>6>7>8>9>9>0>a>b>c>d>e>e>f>g>h>i>j>k>l>j>j>j>j>l>j>m>n>o>I;W-[;<;+;W-+;+;+;+;+;+;W-+;+;+;+;+;X-};+;+;+;@;+;};+;+;+;+;+;};X-};+;W-+;+;};+;+;W-};+;+;1;<;+;+;+;+;[;|;+;};+;W-+;+;};+;+;<;|;W-+;};+;};<;};+;<;+;W-+;+;+;+;[;|;",
+"@ p>q>r>s>t>s>u>v>v>v>w>u>x>y>z>A>B>C>B>D>E>F>G>H>H>I>J>K>L>M>N>O>P>Q>R>S>Q>R>S>T>U>V>W>X>Y>Z>`> ,.,.,+,@,Z>Y>#,$,Z>.,%,$,&,$,Z>$,@,@,*,Y>Z>$,.,=,Y>-,+,*,.,$,Y>Z>@,+,&,;,>,.,,,-,+,@,Z>',.,&,),=,Y>#,!,.,#,Z>$,),~,&,*,!,@,>,{,=,.,Y>=,],@,.,Y>=,`>`>Z>",
+"@ ^,A&K$K$c$P%S@A&7;>>|&/,(,_,Z&-&-&,=f$:,<,[,},|,f;t=1,2,v%c c c c c c c c c c c 3,4,5,6,7,8,9,9,0,8,8,7,a,b,0,8,0,0,c,a,0,0,7,0,c,a,b,8,8,0,8,0,d,0,b,d,0,8,8,0,8,8,8,8,b,0,8,6,a,7,8,0,0,8,0,0,0,b,0,b,8,0,8,8,6,7,8,0,e,0,d,8,9,6,8,7,8,0,0,8,6,6,6,",
+"@ f,K$K$K$c$7;A&K$K$g,h,i,j,k,f$L-l,V;,=m,n,o,H&f;{>p,q,r,7*c c c c c c c c c c c 3,s,t,b,8,7,8,c,8,0,0,0,8,0,7,6,8,0,e,0,0,0,c,0,0,d,0,8,6,c,0,8,6,7,0,8,e,8,e,8,u,e,9,0,0,8,e,8,0,0,8,e,a,8,0,8,d,0,a,0,6,0,0,8,0,d,0,8,6,7,0,0,7,0,c,0,0,8,0,7,8,8,7,",
+"@ v,K$K$>>w,7;c$K$U#x,y,z,Z&,=a;f$-&f$A,B,C,7&D,e;.*'&E,F,c c c c c c c c c c c c G,H,5,8,6,9,8,6,a,8,6,8,b,0,e,0,8,6,7,d,0,6,8,0,0,7,7,8,6,c,0,8,7,8,8,a,0,0,0,e,9,7,d,7,0,0,0,8,8,0,0,b,0,7,8,8,8,8,d,0,8,8,0,0,8,0,e,0,e,d,6,8,8,8,0,8,8,0,8,9,0,0,a,",
+"@ f,A&P%K$K$c$b%h,I,';J,K,,=-&|*L,a;U*M,N,g;.*]>8=O,l.P,` c c c c c c c c c c c c 3,s,Q,0,d,7,c,0,8,7,8,0,8,a,8,8,0,b,6,8,0,8,9,e,8,e,0,d,0,d,8,0,0,a,0,6,c,8,0,7,a,0,0,6,8,8,8,c,0,0,a,e,d,8,R,7,0,b,d,7,0,0,0,0,8,8,8,7,8,a,0,8,e,8,0,8,0,8,0,8,e,e,6,",
+"@ S,A&c$|&S*T,U,V,W,X,f$f$l,3&3&|*>=Y,Z,`,8=e;{>.* '.'+'c c c c c c c c c c c c ` G,@'d,8,0,0,0,8,0,0,0,0,0,0,0,c,0,8,0,0,8,0,8,6,8,6,8,0,8,8,e,0,0,8,8,8,0,0,0,8,6,8,8,8,0,0,0,0,8,0,8,8,0,8,6,0,8,8,7,6,0,6,8,8,0,8,0,8,0,8,0,7,0,a,8,c,0,0,8,0,0,7,9,",
+"@ f,#'$',;%'&'*'V@,=f$|*-&|*,=f$='-';'>'H&8=e;8=,''')'K&c c c c c c c c c c c c !'~'{'8,8,0,8,8,6,0,8,8,0,e,8,8,8,9,d,0,0,0,0,8,8,]'8,0,0,0,8,8,8,8,0,0,0,8,8,8,0,8,0,8,a,8,8,0,8,0,0,0,8,b,8,0,8,8,0,a,b,0,0,8,8,0,0,8,0,0,8,0,8,8,0,0,8,0,8,8,8,0,0,8,",
+"@ ^'/'('_':'<'3&V;|*-&|*);f$-&Y&['}'|'1'{>2'P-|,3'4'Z b c c c c c c c c c c c c 5'6'7'0,0,b,6,c,0,0,0,e,8,6,0,0,d,8,7,0,8,0,0,9,b,9,0,d,8,0,0,0,6,d,8,6,8,7,0,8,8,9,0,6,d,9,0,8,0,0,8,0,0,8,0,e,0,8,e,6,8,7,8,7,d,R,8,8,0,0,0,a,0,0,0,6,e,9,0,a,6,7,8,b,"};
diff --git a/muse2/xpm/initS.xpm b/muse2/xpm/initS.xpm
new file mode 100644
index 00000000..998b02fe
--- /dev/null
+++ b/muse2/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/muse2/xpm/inputpluginS.xpm b/muse2/xpm/inputpluginS.xpm
new file mode 100644
index 00000000..33e8e578
--- /dev/null
+++ b/muse2/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/muse2/xpm/italic.xpm b/muse2/xpm/italic.xpm
new file mode 100644
index 00000000..e21ebbff
--- /dev/null
+++ b/muse2/xpm/italic.xpm
@@ -0,0 +1,16 @@
+/* XPM */
+static const char * italic_xpm[] = {
+"11 11 2 1",
+" g None",
+". g #000000",
+" ",
+" .... ",
+" .. ",
+" .. ",
+" .. ",
+" .. ",
+" .. ",
+" .. ",
+" .. ",
+" .... ",
+" "};
diff --git a/muse2/xpm/listS.xpm b/muse2/xpm/listS.xpm
new file mode 100644
index 00000000..cc561f06
--- /dev/null
+++ b/muse2/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/muse2/xpm/lmark.xpm b/muse2/xpm/lmark.xpm
new file mode 100644
index 00000000..2da119b9
--- /dev/null
+++ b/muse2/xpm/lmark.xpm
@@ -0,0 +1,23 @@
+/* XPM */
+static const char* lmark_xpm[]={
+"18 18 2 1",
+"# c #0000ff",
+". c None",
+"..................",
+"..................",
+"..................",
+"..................",
+"..................",
+"..................",
+"..................",
+"##########........",
+".#########........",
+"..########........",
+"...#######........",
+"....######........",
+".....#####........",
+"......####........",
+".......###........",
+"........##........",
+"........##........",
+"........##........"};
diff --git a/muse2/xpm/localoffS.xpm b/muse2/xpm/localoffS.xpm
new file mode 100644
index 00000000..312793a5
--- /dev/null
+++ b/muse2/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/muse2/xpm/lock.xpm b/muse2/xpm/lock.xpm
new file mode 100644
index 00000000..9c38103b
--- /dev/null
+++ b/muse2/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/muse2/xpm/loop.xpm b/muse2/xpm/loop.xpm
new file mode 100644
index 00000000..91a2113f
--- /dev/null
+++ b/muse2/xpm/loop.xpm
@@ -0,0 +1,23 @@
+/* XPM */
+static const char *loop_xpm[] = {
+" 29 15 4 1",
+". c #000000",
+"# c #7f7f7f",
+"a c None",
+"b c #ffffff",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaa...#aaaaaaaaaaaa",
+"aaaaaa########....#####aaaaaa",
+"aaaaa#.................#aaaaa",
+"aaaa#.bbbbbb##....bbbbb.#aaaa",
+"aaa#.baaaaaaa...bbaaaaa#.baaa",
+"aaa#.baaaaaaabbbaaaaaaa#.baaa",
+"aaa#.aaaaaaaaaaaaaaaaaa#.baaa",
+"aaa#.aaaaaaaaaaaaaaaaaa#.baaa",
+"aaaa.aaaaaaaaaaaaaaaaaa#.baaa",
+"aaaa#.#################.baaaa",
+"aaaaa#.................baaaaa",
+"aaaaaabbbbbbbbbbbbbbbbbaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+"aaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
+};
diff --git a/muse2/xpm/loop1.xpm b/muse2/xpm/loop1.xpm
new file mode 100644
index 00000000..9fd00bfb
--- /dev/null
+++ b/muse2/xpm/loop1.xpm
@@ -0,0 +1,39 @@
+/* XPM */
+static const char *loop1_xpm[] = {
+/* width height num_colors chars_per_pixel */
+" 22 22 9 1",
+/* colors */
+". c #000000",
+"# c #00007f",
+"a c #0000ff",
+"b c #505850",
+"c c #7f7f7f",
+"d c None",
+"e c #dfdfdf",
+"f c #ffff00",
+"g c #ffffff",
+/* pixels */
+"dddddddddddddddddddddd",
+"dddddddddddddddddddddd",
+"dddddddggggggggddddddd",
+"ddddddg........cdddddd",
+"dddddg.cccccccc.cddddd",
+"ddddg.cddddddddg.cdddd",
+"ddddg.cddddddddg.cdddd",
+"ddddg.cddddddddg.cdddd",
+"ddddg.cdddddddg...dddd",
+"ddddg.cdddddddg...cddd",
+"ddddg.cddddddg.....ddd",
+"ddddg.cddddddg.....ddd",
+"ddddg.cddddddg.c.c.ddd",
+"ddddg.cddddddddc.cdddd",
+"ddddg.cddddddddg.cdddd",
+"ddddg.cddddddddg.cdddd",
+"ddddg.cddddddddg.cdddd",
+"dddddc.ddddddgg.cddddd",
+"ddddddc........cdddddd",
+"ddddddddcccccccddddddd",
+"dddddddddddddddddddddd",
+"dddddddddddddddddddddd"
+};
+
diff --git a/muse2/xpm/master.xpm b/muse2/xpm/master.xpm
new file mode 100644
index 00000000..8d241c9f
--- /dev/null
+++ b/muse2/xpm/master.xpm
@@ -0,0 +1,15 @@
+/* XPM */
+static const char*master_xpm[]={
+"10 10 2 1",
+"# c #000000",
+". c None",
+"..........",
+".#.,....#.",
+".##....##.",
+".###..###.",
+".########.",
+".##.##.##.",
+".##....##.",
+".##....##.",
+".##....##.",
+".........."};
diff --git a/muse2/xpm/mastertrackS.xpm b/muse2/xpm/mastertrackS.xpm
new file mode 100644
index 00000000..3f1dfcb9
--- /dev/null
+++ b/muse2/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/muse2/xpm/mastertrack_graphic.xpm b/muse2/xpm/mastertrack_graphic.xpm
new file mode 100644
index 00000000..0651619c
--- /dev/null
+++ b/muse2/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/muse2/xpm/mastertrack_list.xpm b/muse2/xpm/mastertrack_list.xpm
new file mode 100644
index 00000000..e8ed00db
--- /dev/null
+++ b/muse2/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/muse2/xpm/meta.xpm b/muse2/xpm/meta.xpm
new file mode 100644
index 00000000..c424c23c
--- /dev/null
+++ b/muse2/xpm/meta.xpm
@@ -0,0 +1,27 @@
+/* XPM */
+static const char * meta_xpm[] = {
+"22 22 2 1",
+" c #FFFFFFFFFFFF",
+". c #000000000000",
+" ",
+" ",
+" ",
+" ",
+" ........ .... ",
+" .. .. .. .. .. ",
+" .. .. .. ...... ",
+" .. .. .. .. ",
+" .. .. .. .. . ",
+" ... .. ... .... ",
+" ",
+" ",
+" .. ",
+" .. ",
+" .... .... ",
+" .. .. ",
+" .. ..... ",
+" .. .. .. ",
+" .. .. .. ",
+" ... ....... ",
+" ",
+" "};
diff --git a/muse2/xpm/midi_edit_instrument.xpm b/muse2/xpm/midi_edit_instrument.xpm
new file mode 100644
index 00000000..90e3df49
--- /dev/null
+++ b/muse2/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/muse2/xpm/midi_init_instr.xpm b/muse2/xpm/midi_init_instr.xpm
new file mode 100644
index 00000000..a64dc56f
--- /dev/null
+++ b/muse2/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/muse2/xpm/midi_inputplugins.xpm b/muse2/xpm/midi_inputplugins.xpm
new file mode 100644
index 00000000..3874a052
--- /dev/null
+++ b/muse2/xpm/midi_inputplugins.xpm
@@ -0,0 +1,33 @@
+/* XPM */
+static const char * midi_inputplugins_xpm[] = {
+"16 16 14 1",
+" c None",
+". c #58A8FF",
+"+ c #A8DCFF",
+"@ c #FFFFFF",
+"# c #000000",
+"$ c #88B2CE",
+"% c #CECECE",
+"& c #396EA6",
+"* c #4788CE",
+"= c #B7D9F0",
+"- c #B1CFE5",
+"; c #99AEBE",
+"> c #94AFC2",
+", c #2E5986",
+"................",
+".++++++++++++++.",
+".+@@@@@@@@@@@@+.",
+".+@#####@@@@@@#.",
+".##########@@#+#",
+"#$%#####%%%%@@#&",
+"*+@@%%%%%@@@@@+&",
+".+@#####@@@@@@#.",
+"###########@@#+#",
+".+@#####%%%%@@#&",
+".+@@%%%%%@@@@@+&",
+"#+@#####@@@@@@#.",
+"*##########@@#+#",
+".$%#####%%%%@@#&",
+".+=-;;;;>++++++,",
+"................"};
diff --git a/muse2/xpm/midi_inputplugins_midi_input_filter.xpm b/muse2/xpm/midi_inputplugins_midi_input_filter.xpm
new file mode 100644
index 00000000..c218d3f7
--- /dev/null
+++ b/muse2/xpm/midi_inputplugins_midi_input_filter.xpm
@@ -0,0 +1,98 @@
+/* XPM */
+static const char * midi_inputplugins_midi_input_filter_xpm[] = {
+"16 16 79 1",
+" c None",
+". c #58A8FF",
+"+ c #A8DCFF",
+"@ c #FFFFFF",
+"# c #FCFCFC",
+"$ c #000000",
+"% c #030303",
+"& c #010101",
+"* c #FAFAFA",
+"= c #F1F1F1",
+"- c #F5F5F5",
+"; c #060606",
+"> c #A9A9A9",
+", c #989898",
+"' c #BCBCBC",
+") c #E3E3E3",
+"! c #0B0B0B",
+"~ c #F7F7F7",
+"{ c #040404",
+"] c #888888",
+"^ c #A4A4A4",
+"/ c #C5C5C5",
+"( c #CACACA",
+"_ c #CBCBCB",
+": c #C1C1C1",
+"< c #E4E4E4",
+"[ c #C6C6C6",
+"} c #0F0F0F",
+"| c #979797",
+"1 c #828282",
+"2 c #ACACAC",
+"3 c #BFBFBF",
+"4 c #C8C8C8",
+"5 c #D9D9D9",
+"6 c #E6E6E6",
+"7 c #88B2CE",
+"8 c #252525",
+"9 c #878787",
+"0 c #A7A7A7",
+"a c #C7C7C7",
+"b c #B1B1B1",
+"c c #C2C2C2",
+"d c #D8D8D8",
+"e c #020202",
+"f c #82ABC6",
+"g c #FDFDFD",
+"h c #0A0A0A",
+"i c #A8A8A8",
+"j c #CFCFCF",
+"k c #B6B6B6",
+"l c #090909",
+"m c #93B6CD",
+"n c #F8F8F8",
+"o c #A2A2A2",
+"p c #0D0D0D",
+"q c #CCCCCC",
+"r c #89B4D0",
+"s c #9F9F9F",
+"t c #9B9B9B",
+"u c #0E0E0E",
+"v c #A0A0A0",
+"w c #CDCDCD",
+"x c #F0F0F0",
+"y c #B0B0B0",
+"z c #ADADAD",
+"A c #F4F4F4",
+"B c #FBFBFB",
+"C c #050505",
+"D c #D0D0D0",
+"E c #999999",
+"F c #121212",
+"G c #F2F2F2",
+"H c #FEFEFE",
+"I c #B7B7B7",
+"J c #A1A1A1",
+"K c #F6F6F6",
+"L c #ECECEC",
+"M c #779CB5",
+"N c #3E77B5",
+"................",
+".++++++++++++++.",
+".+@@#@$%&$@*@@+.",
+".+=-;$>,')$!@~+.",
+".+{&]^/(_:<[$}+.",
+".+!|1234[/565{7.",
+".+8$90ab'c_de$f.",
+".+g$h$ibjk$$l$m.",
+".+@n;o%$$p^$$qr.",
+".+n@@$qstouvw4+.",
+".+~@x@$3y$zvg@+.",
+".+@ABnCDEFi@n@+.",
+".+GH@@$IJ$i~@K+.",
+".+@GH@;[y%i-L@+.",
+".++++++;;MM++++.",
+"........NN......"};
diff --git a/muse2/xpm/midi_inputplugins_midi_input_transform.xpm b/muse2/xpm/midi_inputplugins_midi_input_transform.xpm
new file mode 100644
index 00000000..35730e37
--- /dev/null
+++ b/muse2/xpm/midi_inputplugins_midi_input_transform.xpm
@@ -0,0 +1,31 @@
+/* XPM */
+static const char * midi_inputplugins_midi_input_transform_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/muse2/xpm/midi_inputplugins_random_rhythm_generator.xpm b/muse2/xpm/midi_inputplugins_random_rhythm_generator.xpm
new file mode 100644
index 00000000..beaef721
--- /dev/null
+++ b/muse2/xpm/midi_inputplugins_random_rhythm_generator.xpm
@@ -0,0 +1,67 @@
+/* XPM */
+static const char * midi_inputplugins_random_rhythm_generator_xpm[] = {
+"16 16 48 1",
+" c None",
+". c #58A8FF",
+"+ c #A8DCFF",
+"@ c #828181",
+"# c #1E1C1C",
+"$ c #FFFFFF",
+"% c #C6C5C5",
+"& c #4984C5",
+"* c #646464",
+"= c #4B4949",
+"- c #504E4E",
+"; c #5D5B5B",
+"> c #9B9A9A",
+", c #626060",
+"' c #464545",
+") c #7E7D7D",
+"! c #9F9E9E",
+"~ c #575555",
+"{ c #4A4848",
+"] c #85ABC5",
+"^ c #8A8989",
+"/ c #363535",
+"( c #2A2828",
+"_ c #2B2929",
+": c #2F2D2D",
+"< c #3A3838",
+"[ c #514F4F",
+"} c #605E5E",
+"| c #535252",
+"1 c #2E2C2C",
+"2 c #2C2A2A",
+"3 c #656464",
+"4 c #545353",
+"5 c #6E6D6D",
+"6 c #5B5A5A",
+"7 c #312F2F",
+"8 c #4D4C4C",
+"9 c #373535",
+"0 c #252323",
+"a c #4F4E4E",
+"b c #333131",
+"c c #272525",
+"d c #403E3E",
+"e c #777676",
+"f c #232121",
+"g c #434141",
+"h c #282626",
+"i c #6B879A",
+"................",
+".+++++++@#@++++.",
+".+$$$$$$###%@#@.",
+".+$$$$$$@#@%###&",
+".+*=--;$$#>%@#@&",
+".,'))!~{$#%$$#]&",
+".^/(_:<[%#%$$#].",
+".}|12<34%#%$$#].",
+".56:(7|5%#%$$#].",
+".58907|5%#%$$#].",
+".5abcda5%#%$$#].",
+".e69fg6e%#%$$#].",
+".]69cd6>%#%$$#].",
+".+3gh93>$$%$$#].",
+".++9h9]]++++++i.",
+"...9#d&........."};
diff --git a/muse2/xpm/midi_inputplugins_remote_control.xpm b/muse2/xpm/midi_inputplugins_remote_control.xpm
new file mode 100644
index 00000000..6347cdaf
--- /dev/null
+++ b/muse2/xpm/midi_inputplugins_remote_control.xpm
@@ -0,0 +1,64 @@
+/* XPM */
+static const char * midi_inputplugins_remote_control_xpm[] = {
+"16 16 45 1",
+" c None",
+". c #58A8FF",
+"+ c #9BCBFF",
+"@ c #CCE4FF",
+"# c #FBB2B2",
+"$ c #FF6363",
+"% c #F60D0D",
+"& c #FD0101",
+"* c #F6CDCD",
+"= c #A8DCFF",
+"- c #C5E8FF",
+"; c #D2EDFF",
+"> c #DAF0FF",
+", c #FFFFFF",
+"' c #B4B4B4",
+") c #525252",
+"! c #949494",
+"~ c #4A4949",
+"{ c #0D3A16",
+"] c #313131",
+"^ c #6D6D6D",
+"/ c #545454",
+"( c #2CD04B",
+"_ c #196A29",
+": c #2F2D2D",
+"< c #515151",
+"[ c #F0F9FF",
+"} c #9D9D9D",
+"| c #1B1A1A",
+"1 c #13521F",
+"2 c #1E1C1C",
+"3 c #A8D2FF",
+"4 c #201F1F",
+"5 c #CFCFCF",
+"6 c #3A3939",
+"7 c #8C8C8C",
+"8 c #000000",
+"9 c #101010",
+"0 c #D5D5D5",
+"a c #646464",
+"b c #323030",
+"c c #2E2B2B",
+"d c #E9E9E9",
+"e c #E8E8E8",
+"f c #8B8B8B",
+".....+@@##$$%%&*",
+".===-;>,,,,*,,&&",
+".=,,,,,##$%%**,%",
+".=,,,,,,,,,&&*,$",
+".=,,,,,,#%*,&%*$",
+".=,,,,,,,%%*,%,#",
+".=,,,')!,,%%,$,#",
+".=,,,~{]^,,#,#,,",
+".=,,/{(_:<,,,#,@",
+".[,}|1112<',,,[3",
+".[,/42122<,,,,[.",
+".[522226<',,,,=.",
+".,78229<',,,,,=.",
+".,0abcad,,,,,,=.",
+".=,efa0,,,=====.",
+"...,,,,........."};
diff --git a/muse2/xpm/midi_inputplugins_transpose.xpm b/muse2/xpm/midi_inputplugins_transpose.xpm
new file mode 100644
index 00000000..56cd1a8e
--- /dev/null
+++ b/muse2/xpm/midi_inputplugins_transpose.xpm
@@ -0,0 +1,30 @@
+/* XPM */
+static const char * midi_inputplugins_transpose_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/muse2/xpm/midi_local_off.xpm b/muse2/xpm/midi_local_off.xpm
new file mode 100644
index 00000000..80dd1268
--- /dev/null
+++ b/muse2/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/muse2/xpm/midi_plugS.xpm b/muse2/xpm/midi_plugS.xpm
new file mode 100644
index 00000000..330a4b35
--- /dev/null
+++ b/muse2/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/muse2/xpm/midi_reset_instr.xpm b/muse2/xpm/midi_reset_instr.xpm
new file mode 100644
index 00000000..9460fd41
--- /dev/null
+++ b/muse2/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/muse2/xpm/midi_transform.xpm b/muse2/xpm/midi_transform.xpm
new file mode 100644
index 00000000..d354191f
--- /dev/null
+++ b/muse2/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/muse2/xpm/midi_transpose.xpm b/muse2/xpm/midi_transpose.xpm
new file mode 100644
index 00000000..0fdf5ac0
--- /dev/null
+++ b/muse2/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/muse2/xpm/midiin.xpm b/muse2/xpm/midiin.xpm
new file mode 100644
index 00000000..15b906ac
--- /dev/null
+++ b/muse2/xpm/midiin.xpm
@@ -0,0 +1,23 @@
+/* XPM */
+static const char* midiin_xpm[] ={
+"18 18 2 1",
+". c None",
+"# c #000000",
+"......#####.......",
+"....##.....##.....",
+"...#...##....#....",
+"..#....##.....#...",
+".#..##.....##..#..",
+".#..##.....##..#..",
+"#...............#.",
+"#...............#.",
+"#..##.......##..#.",
+"#..##.......##..#.",
+"#...............#.",
+".#....#####....#..",
+".#....#####....#..",
+"..#...##.##...#...",
+"...#.........#....",
+"....##.....##.....",
+"......#####.......",
+".................."};
diff --git a/muse2/xpm/miditransformS.xpm b/muse2/xpm/miditransformS.xpm
new file mode 100644
index 00000000..3e43e097
--- /dev/null
+++ b/muse2/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/muse2/xpm/miditransposeS.xpm b/muse2/xpm/miditransposeS.xpm
new file mode 100644
index 00000000..fa4593f4
--- /dev/null
+++ b/muse2/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/muse2/xpm/mixerS.xpm b/muse2/xpm/mixerS.xpm
new file mode 100644
index 00000000..b7b19735
--- /dev/null
+++ b/muse2/xpm/mixerS.xpm
@@ -0,0 +1,21 @@
+/* XPM */
+static const char * mixerS_xpm[] = {
+"16 16 2 1",
+" c None",
+". c #000000",
+" ",
+" ",
+" ",
+" . . . . ",
+" ... . ... . ",
+" ... . ... . ",
+" . . . . ",
+" . . . ... ",
+" . . . ... ",
+" . . . . ",
+" . . . . ",
+" . ... . . ",
+" . ... . . ",
+" ",
+" ",
+" "};
diff --git a/muse2/xpm/mixeraudioS.xpm b/muse2/xpm/mixeraudioS.xpm
new file mode 100644
index 00000000..bc02fc72
--- /dev/null
+++ b/muse2/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/muse2/xpm/mono.xpm b/muse2/xpm/mono.xpm
new file mode 100644
index 00000000..9acebb58
--- /dev/null
+++ b/muse2/xpm/mono.xpm
@@ -0,0 +1,16 @@
+/* XPM */
+static const char *mono_xpm[] = {
+"15 9 2 1",
+" c #303030",
+". c none",
+/* pixels */
+"..... .....",
+".... ....",
+"... ... ...",
+"... ..... ...",
+"... ..... ...",
+"... ..... ...",
+"... ... ...",
+".... ....",
+"..... ....."
+};
diff --git a/muse2/xpm/muse_icon.xpm b/muse2/xpm/muse_icon.xpm
new file mode 100644
index 00000000..a792e3fc
--- /dev/null
+++ b/muse2/xpm/muse_icon.xpm
@@ -0,0 +1,210 @@
+/* XPM */
+static const char *muse_icon_xpm[] = {
+/* columns rows colors chars-per-pixel */
+"32 32 172 2",
+" c black",
+". c gray15",
+"X c #292727",
+"o c #2A2827",
+"O c #2C2A29",
+"+ c #342C29",
+"@ c #392F2B",
+"# c #333029",
+"$ c #3B322A",
+"% c #3E382A",
+"& c #343434",
+"* c #3B3834",
+"= c gray23",
+"- c #42332D",
+"; c #49362E",
+": c #413A35",
+"> c #433D3B",
+", c #4A3730",
+"< c #4A3930",
+"1 c #493F3B",
+"2 c #523B32",
+"3 c #5D3E33",
+"4 c #4B4139",
+"5 c #51452D",
+"6 c #54492E",
+"7 c #55443B",
+"8 c #544A37",
+"9 c #5C4335",
+"0 c #5A463A",
+"q c #5D4E33",
+"w c #634235",
+"e c #644A39",
+"r c #6D4536",
+"t c #694B3A",
+"y c #635435",
+"u c #6E573D",
+"i c #6E5B36",
+"p c #724837",
+"a c #734939",
+"s c #784A38",
+"d c #70573C",
+"f c #795E3F",
+"g c #7C6334",
+"h c #78653E",
+"j c gray26",
+"k c #434343",
+"l c #444444",
+"z c gray27",
+"x c #4B4B4B",
+"c c #5C4E42",
+"v c #535353",
+"b c #5A5A57",
+"n c #5B5B5B",
+"m c #675142",
+"M c #695D47",
+"N c #716445",
+"B c #7B6542",
+"V c #7F6E46",
+"C c #646463",
+"Z c #87513C",
+"A c #806634",
+"S c #846936",
+"D c #896D39",
+"F c #8C713C",
+"G c #91743E",
+"H c #915A43",
+"J c #836740",
+"K c #826A42",
+"L c #836F49",
+"P c #8B6B45",
+"I c #846850",
+"U c #896F52",
+"Y c #8B7245",
+"T c #966045",
+"R c #9C6044",
+"E c #9B644A",
+"W c #917640",
+"Q c #957942",
+"! c #967C4A",
+"~ c #997D44",
+"^ c #836F64",
+"/ c #A86144",
+"( c #A37A5C",
+") c #AC7258",
+"_ c #BA704C",
+"` c #BA7B59",
+"' c #C2734B",
+"] c #C7784E",
+"[ c #D27E50",
+"{ c #9C8147",
+"} c #9C8249",
+"| c #978357",
+" . c #9E8652",
+".. c #9C855C",
+"X. c #9C9072",
+"o. c #A1854B",
+"O. c #A38A4E",
+"+. c #A48B51",
+"@. c #A38E5B",
+"#. c #A88E52",
+"$. c #A7905C",
+"%. c #AB935B",
+"&. c #AF9561",
+"*. c #AB986A",
+"=. c #B49D61",
+"-. c #B8A266",
+";. c #BBA569",
+":. c #BDA86D",
+">. c #B5A272",
+",. c #BEAA71",
+"<. c #CF8458",
+"1. c #DA8653",
+"2. c #DD8C58",
+"3. c #C1AC71",
+"4. c #C1AD78",
+"5. c #C8B47D",
+"6. c #CAB87F",
+"7. c #E18E57",
+"8. c #E59258",
+"9. c #E9965B",
+"0. c #EE9F62",
+"q. c #ECA66E",
+"w. c #F1A362",
+"e. c #F5AA66",
+"r. c #FAB46D",
+"t. c #F2B178",
+"y. c #F7B97F",
+"u. c #989282",
+"i. c #B9A887",
+"p. c #C09C88",
+"a. c #C3A680",
+"s. c #C7B482",
+"d. c #CABC91",
+"f. c #D4A185",
+"g. c #DDA789",
+"h. c #DAA987",
+"j. c #D6BE92",
+"k. c #C9B0A2",
+"l. c #D4BEA6",
+"z. c #ECB385",
+"x. c #F0B98D",
+"c. c #FABF83",
+"v. c #D9CA9B",
+"b. c #D3C8A5",
+"n. c #D8C8AF",
+"m. c #DFD2A9",
+"M. c #FCCD98",
+"N. c #E8C6B3",
+"B. c #E1D5AD",
+"V. c #E0D1B8",
+"C. c #E5D9B2",
+"Z. c #E6DBBA",
+"A. c #F5C8A2",
+"S. c #F3D4B7",
+"D. c #ECE0BD",
+"F. c #EFE6C6",
+"G. c #EEE5CA",
+"H. c #F0E6C5",
+"J. c #F1E8C6",
+"K. c #F3ECD2",
+"L. c #FAE8D2",
+"P. c #FDEDDA",
+"I. c #F6F0D9",
+"U. c #F8F2D9",
+"Y. c #FBF4E3",
+"T. c #FDF5EA",
+"R. c #FCF8E7",
+"E. c #FDFAEC",
+"W. c #F9F7F2",
+"Q. c #FDFCF3",
+"!. c #FFFFFB",
+"~. c None",
+/* pixels */
+"~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.!.R.H.~.~.~.~.~.",
+"~.~.~.~.~.w.e.0.8.~.~.~.~.~.~.~.~.~.~.~.~.~.~.L.E.C.O.~.~.~.~.~.",
+"~.~.~.T.' w.c.w.9.8.8.~.~.~.~.~.~.~.~.~.~.c.Y.E.B.P 2 ~.~.~.~.~.",
+"~.~.d.Q.W.N.g.] [ 1.7.0.~.~.~.~.~.~.~.~.P.E.R.v.Y r ; ~.~.~.~.~.",
+"~.~.v.F.C.B.Z.G.l.` ' 2.t.w.~.~.~.~.x.T.Q.I.s.W 3 r ; + ~.~.~.~.",
+"~.~.=.#.Y D G } -.m.l.) <.q.M.r.0.S.E.R.C.@.L ~.r s ; + ~.~.~.~.",
+"~.~.G Q S i % < h } 6.G.k.f.z.A.L.E.G.4.z ~.~.2 p p - + ~.~.~.~.",
+"~.~.:.| S 5 o o # * h ,.Z.R.Q.E.K.s.j q ~.z ~.2 r 3 @ O ~.~.~.~.",
+"~.~.~.A F $ o j ~.j ~.j L j *.$.j ~.j ~.~.~.~.- 2 - O X ~.~.~.~.",
+"~.~.~.g Q o ~.j ~.j ~.~.j ~.j ~.j ~.~.j ~.~.~.+ + o . ~.~.~.~.~.",
+"~.~.~.F Y o ~.~.j ~.j ~.j ~.j ~.~.j ~.j ~.~.~.~.@ . X ~.~.~.~.~.",
+"~.~.~.{ V + y ~.j ~.j ~.~.j ~.j ~.j ~.~.j ~.~.>.$.N N u M ~.~.~.",
+"~.~.~.O.Y $ V ~.~.j ~.j ~.j ~.j ~.~.j ~.j ~.I ;.#.G A D F ~.~.~.",
+"~.~.~.} } - } ~.~.j ~.j ~.~.j ~.j ~.j ~.~.j ..#.} D A A ~.~.~.~.",
+"~.~.~.~ +.< .~.~.~.j ~.j ~.j ~.j ~.~.j ~.j =.} G A A ~.~.~.~.~.",
+"~.~.~.G } 0 O.~.~.~.j ~.j ~.~.j ~.j ~.j ~.! #.~ S A A ~.~.~.~.~.",
+"~.~.~.G } u B ~.~.~.~.j ~.j ~.j ~.j ~.~.j %.{ D S g ~.~.~.~.~.~.",
+"~.~.~.D ~ K d ~.~.~.~.j ~.j ~.~.j ~.j ~.j o.G S g q ~.~.~.~.~.~.",
+"~.~.~.D G ! t ~.~.~.~.j ~.~.j ~.j ~.j ~.O.G S g A ~.~.~.~.~.~.~.",
+"~.~.~.~.D ~ e ~.~.~.~.~.j ~.j ~.~.j ~.j { F S S ~.~.~.~.~.~.~.~.",
+"~.~.~.~.D W f , ~.~.~.~.j ~.~.j ~.j m } G S S ~.~.~.~.~.~.~.~.~.",
+"~.~.~.~.D D W 2 ~.~.~.~.~.j ~.j ~.: j W S g g ~.~.~.~.~.~.~.~.~.",
+"~.~.~.~.A D G e 3 ~.~.~.~.j ~.~.j B ~ D S g ~.~.~.~.~.~.~.~.~.~.",
+"~.~.~.~.~.S D J 3 w ~.~.~.~.j * j } F S g ~.~.~.~.~.~.~.~.~.~.~.",
+"~.~.~.~.~.A D W t 9 U ~.~.~.j ~. .G S A g ~.~.~.~.~.~.~.~.~.~.~.",
+"~.~.~.~.~.~.A D &.E R a.~.u.^ V.H.6.G A ~.~.~.~.~.~.~.~.~.~.~.~.",
+"~.~.~.~.~.~.A D #.j.` / ( i.n.U.D.=.~ ~.~.~.~.~.~.~.~.~.~.~.~.~.",
+"~.~.~.~.~.~.~.A W ;.Z.h._ l.U.J.5.~ ~.~.~.~.~.~.~.~.~.~.~.~.~.~.",
+"~.~.~.~.~.~.~.~.g ~ 3.K.Y.I.b.i.M 5 ~.~.~.~.~.~.~.~.~.~.~.~.~.~.",
+"~.~.~.~.~.~.~.~.y S ~ :.Z.Q.p.H Z Z s r ~.~.~.~.~.~.~.~.~.~.~.~.",
+"~.~.~.~.~.~.~.~.~.8 g F %.X.w T a 1 1 ~.~.~.~.~.~.~.~.~.~.~.~.~.",
+"~.~.~.~.~.~.~.~.~.~.~.6 # o X X * ~.x ~.~.~.~.~.~.~.~.~.~.~.~.~."
+};
diff --git a/muse2/xpm/muse_leftside_logo.xpm b/muse2/xpm/muse_leftside_logo.xpm
new file mode 100644
index 00000000..c0e36244
--- /dev/null
+++ b/muse2/xpm/muse_leftside_logo.xpm
@@ -0,0 +1,1058 @@
+/* XPM */
+static const char * muse_leftside_logo_xpm[] = {
+"21 798 257 2",
+" c None",
+". c #000000",
+"+ c #020202",
+"@ c #4D4D4D",
+"# c #8B8B8B",
+"$ c #A8A8A8",
+"% c #B6B6B6",
+"& c #BDBDBD",
+"* c #B2B2B2",
+"= c #969696",
+"- c #5A5A5A",
+"; c #070707",
+"> c #BFBFBF",
+", c #FFFFFF",
+"' c #D1D1D1",
+") c #101010",
+"! c #717171",
+"~ c #D2D2D2",
+"{ c #858585",
+"] c #6D6D6D",
+"^ c #686868",
+"/ c #696969",
+"( c #777777",
+"_ c #ABABAB",
+": c #FDFDFD",
+"< c #838383",
+"[ c #BEBEBE",
+"} c #D0D0D0",
+"| c #050505",
+"1 c #767676",
+"2 c #CBCBCB",
+"3 c #E4E4E4",
+"4 c #282828",
+"5 c #EBEBEB",
+"6 c #F8F8F8",
+"7 c #151515",
+"8 c #FAFAFA",
+"9 c #FEFEFE",
+"0 c #6C6C6C",
+"a c #727272",
+"b c #141414",
+"c c #EDEDED",
+"d c #262626",
+"e c #F0F0F0",
+"f c #CFCFCF",
+"g c #BCBCBC",
+"h c #5B5B5B",
+"i c #D3D3D3",
+"j c #919191",
+"k c #9E9E9E",
+"l c #4B4B4B",
+"m c #2F2F2F",
+"n c #2A2A2A",
+"o c #3A3A3A",
+"p c #707070",
+"q c #989898",
+"r c #1D1D1D",
+"s c #F1F1F1",
+"t c #252525",
+"u c #1E1E1E",
+"v c #929292",
+"w c #CECECE",
+"x c #F9F9F9",
+"y c #FBFBFB",
+"z c #EFEFEF",
+"A c #979797",
+"B c #242424",
+"C c #010101",
+"D c #484848",
+"E c #171717",
+"F c #090909",
+"G c #A4A4A4",
+"H c #0E0E0E",
+"I c #A5A5A5",
+"J c #E5E5E5",
+"K c #5E5E5E",
+"L c #616161",
+"M c #E8E8E8",
+"N c #444444",
+"O c #494949",
+"P c #5C5C5C",
+"Q c #909090",
+"R c #737373",
+"S c #232323",
+"T c #6A6A6A",
+"U c #040404",
+"V c #F4F4F4",
+"W c #FCFCFC",
+"X c #030303",
+"Y c #454545",
+"Z c #787878",
+"` c #898989",
+" . c #8C8C8C",
+".. c #313131",
+"+. c #DADADA",
+"@. c #1A1A1A",
+"#. c #B8B8B8",
+"$. c #999999",
+"%. c #8E8E8E",
+"&. c #F5F5F5",
+"*. c #373737",
+"=. c #D7D7D7",
+"-. c #878787",
+";. c #F6F6F6",
+">. c #4A4A4A",
+",. c #404040",
+"'. c #414141",
+"). c #595959",
+"!. c #C1C1C1",
+"~. c #B5B5B5",
+"{. c #636363",
+"]. c #959595",
+"^. c #1B1B1B",
+"/. c #B7B7B7",
+"(. c #7D7D7D",
+"_. c #E3E3E3",
+":. c #0D0D0D",
+"<. c #A3A3A3",
+"[. c #4F4F4F",
+"}. c #C2C2C2",
+"|. c #EEEEEE",
+"1. c #8A8A8A",
+"2. c #3E3E3E",
+"3. c #B3B3B3",
+"4. c #181818",
+"5. c #060606",
+"6. c #E2E2E2",
+"7. c #E7E7E7",
+"8. c #9C9C9C",
+"9. c #7F7F7F",
+"0. c #939393",
+"a. c #868686",
+"b. c #848484",
+"c. c #505050",
+"d. c #9A9A9A",
+"e. c #AAAAAA",
+"f. c #D4D4D4",
+"g. c #9F9F9F",
+"h. c #2B2B2B",
+"i. c #A6A6A6",
+"j. c #808080",
+"k. c #E1E1E1",
+"l. c #949494",
+"m. c #B9B9B9",
+"n. c #212121",
+"o. c #A1A1A1",
+"p. c #D5D5D5",
+"q. c #C6C6C6",
+"r. c #525252",
+"s. c #DBDBDB",
+"t. c #F3F3F3",
+"u. c #797979",
+"v. c #131313",
+"w. c #626262",
+"x. c #606060",
+"y. c #656565",
+"z. c #7C7C7C",
+"A. c #292929",
+"B. c #343434",
+"C. c #5F5F5F",
+"D. c #E6E6E6",
+"E. c #1F1F1F",
+"F. c #191919",
+"G. c #EAEAEA",
+"H. c #ECECEC",
+"I. c #CCCCCC",
+"J. c #202020",
+"K. c #7B7B7B",
+"L. c #E9E9E9",
+"M. c #CACACA",
+"N. c #C8C8C8",
+"O. c #9B9B9B",
+"P. c #464646",
+"Q. c #A2A2A2",
+"R. c #A9A9A9",
+"S. c #424242",
+"T. c #303030",
+"U. c #2D2D2D",
+"V. c #0C0C0C",
+"W. c #F2F2F2",
+"X. c #2C2C2C",
+"Y. c #C7C7C7",
+"Z. c #333333",
+"`. c #080808",
+" + c #DCDCDC",
+".+ c #B1B1B1",
+"++ c #555555",
+"@+ c #CDCDCD",
+"#+ c #323232",
+"$+ c #757575",
+"%+ c #272727",
+"&+ c #353535",
+"*+ c #111111",
+"=+ c #121212",
+"-+ c #383838",
+";+ c #0F0F0F",
+">+ c #3C3C3C",
+",+ c #F7F7F7",
+"'+ c #D6D6D6",
+")+ c #C0C0C0",
+"!+ c #0A0A0A",
+"~+ c #2E2E2E",
+"{+ c #DFDFDF",
+"]+ c #535353",
+"^+ c #4E4E4E",
+"/+ c #B4B4B4",
+"(+ c #474747",
+"_+ c #C9C9C9",
+":+ c #393939",
+"<+ c #3F3F3F",
+"[+ c #888888",
+"}+ c #6F6F6F",
+"|+ c #BABABA",
+"1+ c #747474",
+"2+ c #C4C4C4",
+"3+ c #161616",
+"4+ c #515151",
+"5+ c #565656",
+"6+ c #434343",
+"7+ c #DDDDDD",
+"8+ c #7E7E7E",
+"9+ c #1C1C1C",
+"0+ c #9D9D9D",
+"a+ c #646464",
+"b+ c #8F8F8F",
+"c+ c #AFAFAF",
+"d+ c #B0B0B0",
+"e+ c #828282",
+"f+ c #585858",
+"g+ c #676767",
+"h+ c #4C4C4C",
+"i+ c #222222",
+"j+ c #AEAEAE",
+"k+ c #545454",
+"l+ c #BBBBBB",
+"m+ c #C5C5C5",
+"n+ c #DEDEDE",
+"o+ c #3D3D3D",
+"p+ c #818181",
+"q+ c #0B0B0B",
+"r+ c #D8D8D8",
+"s+ c #6E6E6E",
+"t+ c #5D5D5D",
+"u+ c #E0E0E0",
+"v+ c #ACACAC",
+"w+ c #C3C3C3",
+"x+ c #8D8D8D",
+"y+ c #A0A0A0",
+"z+ c #363636",
+"A+ c #666666",
+"B+ c #3B3B3B",
+"C+ c #ADADAD",
+"D+ c #7A7A7A",
+"E+ c #D9D9D9",
+"F+ c #A7A7A7",
+"G+ c #6B6B6B",
+"H+ c #575757",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . + @ # $ % & & * = - ; . . . . . ",
+". . . . ; > , , , , , , , , , ' ) . . . . ",
+". . . . ! , , ~ { ] ^ / ( _ : , < . . . . ",
+". . . . [ , } | . . . . . . 1 , 2 . . . . ",
+". . . . 3 , { . . . . . . . 4 , 5 . . . . ",
+". . . . 6 , ! . . . . . . . 7 , 8 . . . . ",
+". . . . 9 , 0 . . . . . . . ) , , . . . . ",
+". . . . , , 0 . . . . . . . ) , , . . . . ",
+". . . . , , 0 . . . . . . . ) , , . . . . ",
+". . . . 8 , a . . . . . . . b , : . . . . ",
+". . . . c , { . . . . . . . d , e . . . . ",
+". . . . f , g . . . . . . . h , i . . . . ",
+". . . . j , , k l m 4 n o p 5 , q . . . . ",
+". . . . r 5 , , , , , , , , , s t . . . . ",
+". . . . . u v w 5 x 9 y z ~ A B . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . C D # E . . . . . . . . . . . . ",
+". . . . F & , , B . . . . . . . . . . . . ",
+". . . . a , , G H . . . . . . . . . . . . ",
+". . . . & , I . . . . . . . . . . . . . . ",
+". . . . J , K . . L M K . . . . . . . . . ",
+". . . . 6 , l . . 0 , ^ . . . . . . . . . ",
+". . . . , , N . . 0 , ^ . . . . . . . . . ",
+". . . . , , N . . 0 , ^ . . . . . . . . . ",
+". . . . , , N . . 0 , ^ . . . . . . . . . ",
+". . . . 8 , O . . 0 , ^ . . . . . . . . . ",
+". . . . c , P . . 0 , ^ . . . . . . . . . ",
+". . . . f , v . . 0 , ^ . . . . . . . . . ",
+". . . . Q , x R S a , T U U U U U . . . . ",
+". . . . r 5 , , , , , , , , , , , . . . . ",
+". . . . . u j 2 M V 6 8 y W : 9 , . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . X Y Z ` . . . . . . .. . . . ",
+". . . . . ..+., , , , , , , , , , . . . . ",
+". . . . @.5 , W #.$.q q q q q q q . . . . ",
+". . . . %., &.*.. . . . . . . . . . . . . ",
+". . . . =., -.. . . . . . . . . . . . . . ",
+". . . . ;., >.. . . . . . . . . . . . . . ",
+". . . . , , ,.. . . . . . . . . . . . . . ",
+". . . . , , ,.. . . . . . . . . . . . . . ",
+". . . . 9 , '.. . . . . . . . . . . . . . ",
+". . . . z , ).. . . . . . . . . . . . . . ",
+". . . . !., ~.. . . . . . . . . . . . . . ",
+". . . . {., , ].^.. . . . . . . . . . . . ",
+". . . . + /., , , : W W W W W W W . . . . ",
+". . . . . | (._., , , , , , , , , . . . . ",
+". . . . . . . . 7 d 4 4 4 4 4 4 4 . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . B B B B B B B B B B B B B . . . . ",
+". . . . , , , , , , , , , , , , , . . . . ",
+". . . . , , , , , , , , , , , , , . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . ) ) ; . . . . . . C :.) ) . . . . ",
+". . . . , , , 5 <.S . [.}.6 , , , . . . . ",
+". . . . , , , , , |.1., , , , , , . . . . ",
+". . . . b b @.2.3., , , _ *.4.b b . . . . ",
+". . . . . . . . 5.6., 7.| . . . . . . . . ",
+". . . . . . . . . 8., _ . . . . . . . . . ",
+". . . . . . . . . 9., 0.. . . . . . . . . ",
+". . . . . . . . . a , 1.. . . . . . . . . ",
+". . . . . . . . . ] , a.. . . . . . . . . ",
+". . . . . . . . . 0 , b.. . . . . . . . . ",
+". . . . . . . . . 0 , b.. . . . . . . . . ",
+". . . . c.c.c.c.c.d., e.c.c.c.c.c.. . . . ",
+". . . . , , , , , , , , , , , , , . . . . ",
+". . . . f.f.f.f.f.f.f.f.f.f.f.f.f.. . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . H ] g.h.. . . . i.j.r . . . . . ",
+". . . . @.k., , ,.. . . . W , e 4 . . . . ",
+". . . . l., , m.n.. . . . Q e , o.. . . . ",
+". . . . p., q.C . . . . . . r., s.. . . . ",
+". . . . t., u.. . . . . . . v., &.. . . . ",
+". . . . 9 , w.. . . . . . . | , 9 . . . . ",
+". . . . , , x.. . . . . . . U , , . . . . ",
+". . . . , , x.. . . . . . . U , , . . . . ",
+". . . . , , x.. . . . . . . U , , . . . . ",
+". . . . W , y.. . . . . . . | , , . . . . ",
+". . . . e , z.. . . . . . . b , V . . . . ",
+". . . . f , > . . . . . . . @ , i . . . . ",
+". . . . %., , 8.l ..A.n B.C._., j . . . . ",
+". . . . @.D., , , , , , , , , |.E.. . . . ",
+". . . . . F.# 2 G.8 , y H.I.%.J.. . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . v.x.K.! p p p p p p p . . . . ",
+". . . . . r.t., , , , , , , , , , . . . . ",
+". . . . n 8 , , L.M.W , M 5 , 9 N.. . . . ",
+". . . . O., &.P.. - , e.X X Q., ).. . . . ",
+". . . . s., 8.. . R., S.. . T., !.. . . . ",
+". . . . &., 0 . . q., U.. . V., W.. . . . ",
+". . . . , , x.. . N., X.. . U , , . . . . ",
+". . . . , , x.. . N., X.. . U , , . . . . ",
+". . . . , , x.. . N., X.. . U , , . . . . ",
+". . . . , , x.. . Y., X.. . U , , . . . . ",
+". . . . x , / . . }., Z.. . `., W . . . . ",
+". . . . +, j . . .+, ++. . S , H.. . . . ",
+". . . . d., |.X.. 1., @+4.5.O., Y.. . . . ",
+". . . . n 6 , , 2.#+: , , W , , $+. . . . ",
+". . . . . >.3 , ,.. C.H., , W O.U . . . . ",
+". . . . . . X n :.. . U %+&+*+. . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . =+%.+.-+. . . . . . . . . . . . ",
+". . . . ;+=., , >+. . . . . . . . . . . . ",
+". . . . { , ,+0 V.. . . . . . . . . . . . ",
+". . . . '+, < . . . . . . . . . . . . . . ",
+". . . . 6 , D . . . . . . . . . . . . . . ",
+". . . . , , ,.. . . . . . . . . . . . . . ",
+". . . . , , ,.. . . . . . . . . . . . . . ",
+". . . . 9 , '.. . . . . . . . . . . . . . ",
+". . . . 3 , P . . . . . . . . . . . . . . ",
+". . . . < , )+C . . . . . . . . . . . . . ",
+". . . . | G , G J.. . . . . . . . . . . . ",
+". . . . W W , , , : W W W W W W W . . . . ",
+". . . . , , , , , , , , , , , , , . . . . ",
+". . . . 4 4 4 4 4 4 4 4 4 4 4 4 4 . . . . ",
+". . . . 4.4.; . . . . . . . . . . . . . . ",
+". . . . , , c.. . . . . . . . . . . . . . ",
+". . . . , , c.. . . . . . . . . . . . . . ",
+". . . . , , c.. . . . . . . . . . . . . . ",
+". . . . , , c.. . . . . . . . . . . . . . ",
+". . . . , , c.. . . . . . . . . . . . . . ",
+". . . . , , A ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ . . . . ",
+". . . . , , , , , , , , , , , , , . . . . ",
+". . . . , , ' g g g g g g g g g g . . . . ",
+". . . . , , c.. . . . . . . . . . . . . . ",
+". . . . , , c.. . . . . . . . . . . . . . ",
+". . . . , , c.. . . . . . . . . . . . . . ",
+". . . . , , c.. . . . . . . . . . . . . . ",
+". . . . , , c.. . . . . . . . . . . . . . ",
+". . . . ^ ^ J.. . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . F *.+ . . . . T.B . . . . . . ",
+". . . . . K W., `.. . . . #., m.!+. . . . ",
+". . . . ~+: , {+5.. . . . v W , 9.. . . . ",
+". . . . l., 3.C . . . . . . ]+, q.. . . . ",
+". . . . f , C.. . . . . . . U W 7.. . . . ",
+". . . . z , D . . ^+/+O . . . 5 6 . . . . ",
+". . . . y , '.. . p , ^ . . . 3 9 . . . . ",
+". . . . , , ,.. . p , ^ . . . 3 , . . . . ",
+". . . . , , ,.. . p , ^ . . . 3 , . . . . ",
+". . . . , , ,.. . p , ^ . . . 3 , . . . . ",
+". . . . x , (+. . p , ^ . . . G.y . . . . ",
+". . . . G., P . . p , ^ . . X y c . . . . ",
+". . . . _+, = . . p , ^ . . :+, I.. . . . ",
+". . . . { , W ` <+# , b.*.T k., [+. . . . ",
+". . . . =+'+, , , , , , , , , +b . . . . ",
+". . . . . !+y.G }.' '+f.Y.e.}+H . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . 4.7 . . | T.m 5.. . . . . ",
+". . . . . . =+|+, 1+. ..J , , G.o . . . . ",
+". . . . . . O., t.++. @+, ~.[ , 2+. . . . ",
+". . . . . . 7., [.. 3+, i.. . N.&.. . . . ",
+". . . . . . : , @.. Z., x.. . g., . . . . ",
+". . . . . . , , b . o , 4+. . 8., . . . . ",
+". . . . . . , , b . .., 5+. . 8., . . . . ",
+". . . . . . , , b . %+, K . . 8., . . . . ",
+". . . . . . , , b . %+, {.. . 8., . . . . ",
+". . . . . . 9 , F.. 6+, - . . G 9 . . . . ",
+". . . . . . 5 , ] | R., *.. ;+6.L.. . . . ",
+". . . . . . <., , 9 , 7+X . W., $.. . . . ",
+". . . . . . =+$ s ,+)+n . . k.k :.. . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . 0 0 0 0 0 0 ^ [.=+. . . . . . ",
+". . . . . . , , , , , , , , ;.! . . . . . ",
+". . . . . . x.x.x.x.x.x.L 8+J , c.. . . . ",
+". . . . . . . . . . . . . . 9+e !.. . . . ",
+". . . . . . . . . . . . . . . G W.. . . . ",
+". . . . . . . . . . . . . . . Q , . . . . ",
+". . . . . . . . . . . . . . . Q , . . . . ",
+". . . . . . . . . . . . . . . 0.W . . . . ",
+". . . . . . . . . . . . . . . !.3 . . . . ",
+". . . . . . . . . . . . . . / , 8.. . . . ",
+". . . . . . N.N.N.N.N.N._+3 , M 9+. . . . ",
+". . . . . . , , , , , , W 3 0+r . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . `.:+5+w.a+a+a+a+a+a+. . . . ",
+". . . . . V.j t., , , , , , , , , . . . . ",
+". . . . `.M., , {+e.b+ .# 1.1.` [+. . . . ",
+". . . . R , , a U . . . . . . . . . . . . ",
+". . . . _+, c+. . . . . . . . . . . . . . ",
+". . . . s , x.. . . . . . . . . . . . . . ",
+". . . . , , N . . . . . . . . . . . . . . ",
+". . . . , , Y . . . . . . . . . . . . . . ",
+". . . . 5 , w.. . . . . . . . . . . . . . ",
+". . . . g , /.. . . . . . . . . . . . . . ",
+". . . . c., , ` V.. . . . . . . . . . . . ",
+". . . . . < 9 , 6 _+d+$ $ $ $ $ $ . . . . ",
+". . . . . C 0+, , , , , , , , , , . . . . ",
+". . . . C _ , , 2+e+{.).f+f+f+f+f+. . . . ",
+". . . . g+, W r.. . . . . . . . . . . . . ",
+". . . . N., O.. . . . . . . . . . . . . . ",
+". . . . z , ++. . . . . . . . . . . . . . ",
+". . . . , , '.. . . . . . . . . . . . . . ",
+". . . . 6 , h+. . . . . . . . . . . . . . ",
+". . . . p., Z . . . . . . . . . . . . . . ",
+". . . . 1+, _.*+. . . . . . . . . . . . . ",
+". . . . X $ , +.K r C . . . . . . . . . . ",
+". . . . V V , , , , : &.V &.&.;.,+. . . . ",
+". . . . , , , , , , , , , , , , , . . . . ",
+". . . . 4 4 4 4 4 4 4 4 4 4 4 4 4 . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . U ",
+". . . . . . . . . . . . . . . . . . U 5.;+",
+". . . . . . . . . . . . . . . . C + :.3+S ",
+". . . . . . . . . . . . . . C + 5.;+@.A.>+",
+". . . . . . . . . . . . . . U ;+b i+Z.P.K ",
+". . . . . . . . . . . . C `.) 9+A.2.]+] [+",
+". . . . . . . . . . C F :.E S Z.D C.u.].j+",
+". . . . . . . . . X ; 7 r X.,.k+] -.o.l+} ",
+". . . . . . . U F ;+^.%+-+l {.K.A c+m++.L.",
+". . . . . + | H E i+Z.N f+R # G g f n+c 6 ",
+". . . C U `.*+r h.o+]+/ p+8.3.M. +D.H.V y ",
+". . . U ;+E d -+l L u.v _ )+~ _.e ;.V t.&.",
+". . ; ) r U.S.f+! # G m.w 7+7.e 8 : ,+|.7.",
+"5.q+3+S Z.>.{.j.8./+Y.r+M s t.t.,+x W._.f.",
+";+^.A.>+]+s+# R.}.'+k.G.V y x t.z 5 {+I.% ",
+"S #+Y t+Z ].* 2 u+c W.t.,+y 6 c u+f.!.R.b+",
+"2.r./ b.g.|+f k.e x 8 &.W.W.5 +N.3.O.j.g+",
+"x.Z 0.v+w+r+D.c V 8 8 W.M {+~ [ I x+a ).6+",
+"` <.m.I.n+c &.;.t.t.z 3 f.w+d+A (.{.h+*.%+",
+"* Y.r+_.H.;.: 8 s M +2 ~.y+-.] 5+<+U.u =+",
+"i _.|.s W.;.x &.M '+}.R.%.$+P D z+B 4.) U ",
+"M s 8 8 V e c 3 ~ l+y+e+A+[.B+4 ^.) `.U C ",
+"W.&.8 x e 3 =.Y.d+].( P N #+J.3+q+U C . . ",
+",+t.W.c k.f |+Q.[+0 r.>+4 ^.H `.+ . . . + ",
+"&.5 _.=.m+C+l.Z C.O Z.i+b `.+ . . . C U !+",
+"L.+._+% g.< T ]+B+h.9+) !+C . . . . U *+F.",
+"i g i.x+1+h Y ..i+3+V.X C . . . . `.*+u #+",
+".+A z.{.^+B+n @.b ; + . . . . 5.F 7 S B.^+",
+"# s+5+'.U.E.v.!+| C . . . C + H @.A.>+k+p ",
+"{.>.z+B E H | + . . . C + 5.*+9+~+N t+D+A ",
+"<+X.u =+F U . . . . . X q+=+i+B.O A+e+y+g ",
+"B 3+!+X . . . . . . X q+E A.>+]+}+ .R.w+E+",
+") q+X . . . . . C U V.F.4 S.P ( ].d+_+n+z ",
+"U . . . . . . . U ) r m N {.j.g.|+' u+H.6 ",
+". . . . . . . ; ) n.B.l A+[+F+2+E+L.z W.6 ",
+". . . . . U ; =+J.B.[.G+# v+Y. +|.,+6 V s ",
+". . . . . ; b S *.4+p b+c+M.{+5 &.y y t.7.",
+". . . . !+7 %+>+5+$+= 3.@+6.e V &.,+V M '+",
+". . U ; 7 t o f+Z O.m.} 6.s 8 y &.z J ~ |+",
+". . ; 3+4 o+).K.0+g =.D.|.V 8 8 e 6.f % A ",
+". !+7 4 <+- K.g.[ r+H.&.;.t.t.e 6.@+* 0.R ",
+"; 7 t >+- z.g.[ '+7.;.: 8 W.M +Y.C+ .}+c.",
+"3+4 o+- (.k > E+M e ,+8 ;.L.=.!.i.a.^ l #+",
+"4 <+- (.y+> E+c ;.;.t.s M '+& y+p+L (+..9+",
+">+- z.g.> =.M ;.: 8 s 3 i |+d.K.K '.h.@.H ",
+"- (.k > E+M e ,+8 ;.M ~ #.$.( H+2.%+E !+U ",
+"(.g.[ E+c ;.;.t.s M f.#.q ( ++B+4 7 `.+ . ",
+"g.[ '+M ;.: 8 s 3 ' #.A $+k+:+B v.!+C . . ",
+"> E+M e ,+8 ;.M ~ /.A $+]+:+i+b | C . . . ",
+"E+H.;.;.t.s M f.#.A 1 ]+:+t ) | . . . . . ",
+"M &.: 8 e _.' /.A 1+]+*.i+) `.C . . . . . ",
+"e ;.8 &.7.~ % A 1+]+:+i+b | C . . . . . C ",
+"&.W.z 7.~ % = 1+r.:+t ) | . . . . . . . X ",
+"x |.k.w /+].R r.&+i+) `.C . . . . . . + ;+",
+"V 3 @+* 0.p c.*.J.b | C . . . . . . U !+@.",
+"J f .+Q ! [.*.S ;+| . . . . . . . . `.F.n ",
+"w .+Q s+^+..J.H `.C . . . . . . . ; b %+,.",
+"* j ] @ &+r v.X C . . . . . . C U ) i+B+).",
+"Q }+@ B.n.H U . . . . . . . . U ) n.&+++Z ",
+"] ^+T.u :.; . . . . . . . . X V.r Z.[.a A ",
+"@ &+9+=++ C . . . . . . C X q+F.m l 0 Q /+",
+"B.n.:.U . . . . . . . . + q+E 4 Y y.# c+w ",
+"u :.; . . . . . . . . C 5.=+n '.{.[+_ M._.",
+"=++ C . . . . . . . . + v.S o+P j.F+Y.n+e ",
+"U . . . . . . . . . ; ;+r &+k+u.y+w+ +5 &.",
+". . . . . . . . . . q+9+..@ ! A l++.c &.&.",
+". . . . . . . . . q+4.U.D G+b+3.' G.6 y ,+",
+". . . . . . . + 5.3+%+6+a+1.c+I.k.z 6 y V ",
+". . . . . . . | b t >+K b.R.M.6.c W.V W.7.",
+". . . . . . U H n.:+H+K.<.m+k.t.8 ,+z J f.",
+". . . . C X q+^.Z.4+1+d.[ E+c x , x 5 '+g ",
+". . . . + V.4.n O G+v /.'+L.t.6 8 t.u+2+y+",
+". . . C 5.=+A.S.A+1.c+f 7.&.6 &.e 3 @+_ < ",
+". . . + *+i+>+t+j.$ Y.k.s y y V D.~ 3. .A+",
+". . 5.H 9+B.]+Z g.}. +5 V x 6 c r+l+= }+>.",
+". . F @.U.O s+].|+r+c V V W.H. +!.k ( r.Z.",
+". `.7 A.N y.# .+} M ,+y ;.5 +m+G 8+- :+J.",
+"U *+S o+t+e+$ _+u+z 6 y t.6._+e.< x.'.d b ",
+"*+u B.]+u.g.w+n+H.W.V t.7.} .+x+^ Y h.7 5.",
+"F.T.@ p = g E+z 6 6 s 7.f.m.0.0 >.X.4.V.X ",
+"n P.^ x+3.} D.;.9 y |.E+> 8.$+4+B.r H + C ",
+"o+K { v+I.k.c &.6 V _.Y.G 8+f+o i+;+U . . ",
+"5+K.Q.Y.u+e V W.|.3 f j+-.w.,.d 3+; . . . ",
+"}+$.& +.|.x 8 W.J i % j T D h.3+; + . . . ",
+"# /+i 7.t.8 8 |.E+& d.a ^+#+@.V.+ . . . . ",
+"I M.3 s &.;.W._.Y.G z.H+-+n.;++ . . . . . ",
+"& +W.8 x W.D.' d+[+x.,.B v.F C . . . . . ",
+"f D.&.: x c r+l+= 0 D ~+F.; . . . . . . . ",
+"n+c V ,+W.k.m+Q.D+]+B.^.!++ . . . . . . . ",
+"c V t.z _.w C+{ t+>+n.=+| . . . . . . . . ",
+",+y &.M f./.j T P.n b 5.C . . . . . . . . ",
+"6 y t.{+w+k $+c...^.!+C . . . . . . . . . ",
+"&.t.M } v+b.P o J.*++ . . . . . . . . . . ",
+"t.G.r+l+v / Y 4 b F C . . . . . . . . . . ",
+"t.k.Y.<.u.r.Z.9+F . . . . . . . . . . . . ",
+"G.i .+[+x.>+J.;+X . . . . . . . . . . . . ",
+"7+)+q }+D h.3+F . . . . . . . . . . . . . ",
+"I.R.j.f+-+r !++ . . . . . . . . . . . . ;+",
+"|+0.^ S.d =+U . . . . . . . . . . . U E.*.",
+"i.K.r.#+4.F . . . . . . . . . . C ) d >+++",
+"%.a+<+S =+5.. . . . . . . . . C v.d o+f+u.",
+"Z c.T.4.| . . . . . . . . . C ;+i+B+).D+0+",
+"L o J.H X . . . . . . . . . F r z+k+Z 8.g ",
+"@ U.E F . . . . . . . . . . 4.X.l }+q l+'+",
+"o+n.H U . . . . . . . . . H d ,.a+%.~.p.G.",
+"X.7 | . . . . . . . . . + u z+f+j.e.I.7.;.",
+"r V.+ . . . . . . . . . !+~+l R 8.}.7+|.6 ",
+"3+`.. . . . . . . . . . E.2.w.# ~.'+H.V V ",
+"q++ . . . . . . . . . 7 ..]+D+<.M.D.;.8 8 ",
+"U . . . . . . . . . H %+6+^ l.l+E+|.x : : ",
+"C . . . . . . . . !+9+:+f+p+_ w 3 z ;.;.;.",
+". . . . . . . . X 3+4 (+s+$.}.{+z V W.H.H.",
+". . . . . . . . V.r &+- { c+i H.x 8 s _._.",
+". . . . . . . U v.X.O p d.!.7+e x x c r+r+",
+". . . . . . + H E.o t+a.d+~ J e t.e 6.Y.Y.",
+". . . . . . 5.3+A.O ! 0+m+6.e t.e D.~ * o.",
+". . . . . C V.9+Z.t+` 3.'+c x x e {+}.0+(.",
+". . . . . + ) A.(+! 0+2+k.W.8 x |.'+* ` s+",
+". . . . C V.r z+- { * p.L.t.;.t.J _+g.R >+",
+". . . . + =+t S.T q }._.V 6 &.H.r+#.# x.#+",
+". . . . `.E X.4+9._ ' H.8 : ;.7.I.I D+^+t ",
+". . . . q+n.>+a+j g +|.6 8 W.n+g v y.>+@.",
+". . . F 3+X.h+$+G I.D.W.&.t.L.' e.8+]+#+v.",
+". . . q+^.&+P [+% +.s 8 6 z n+)+A / 6+t ;+",
+". . U *+d S.p 0+2+_.;.9 y c f.d+{ f+#+@.. ",
+". . 5.F.B.H+e+j+' M &.x &.3 q.0+p N B v.. ",
+". U v.d S./ ].!.7+c t.W.G.=.~.-.P :+E.;+. ",
+". ; E X.4+(.e.} G.,+6 s 6.Y.o.1+l h.v.X . ",
+"+ H n.B+A+j g +s W W s s.m.b+L -+u :.+ . ",
+"U b ~+@ 1 G 2 _.W.6 ,+G.f $ D+[.h.3+5.. . ",
+") E.o C.# /.E+H.V V |.n+> l.g+,.t =+U . . ",
+"7 d P.a g.Y.J ;.8 &.M ' j+j.++B.4.| . . . ",
+"^.&+).-..+f.H.x : &.6.}.d.s+<+B *+U . . . ",
+"%+P.] d.w+n+|.;.;.|.'+d+b.f+#+^.q+. . . . ",
+"Z.5+e+c+i G.t.V z u+q.k p (+n 7 ; . . . . ",
+"o+/ = !.k.&.y ,+5 p./+1.P -+u `.. . . . . ",
+"[.(.R.} G.6 9 6 7.M.<.1 l %+7 | . . . . . ",
+"x.%.|+s.|.,+6 t.{+& b+w.B+J.;+. . . . . . ",
+"a y+M.D.V ,+V L.' C+(.]+#+F.!+. . . . . . ",
+"< d+'+|.8 y W.k.2+O.0 S.d H . . . . . . . ",
+"l.[ n+s 8 8 z r+/+[+h T.@.!+. . . . . . . ",
+"G I.J s &.t.J M.o.R l A.7 U . . . . . . . ",
+"~.r+|.&.V H.+.|+b+L o+J.:.+ . . . . . . . ",
+"}._.;.W ,+L.f e.(.c.~+3+| . . . . . . . . ",
+"w M ,+W ;._.w+d.] ,.n.) + . . . . . . . . ",
+"r+5 V ;.|.=./+-.).&+9+q+. . . . . . . . . ",
+"_.W.&.e 3 2 I 1 h+n 7 U . . . . . . . . . ",
+"H.x 8 e 7+[ 0.{.B+J.:.. . . . . . . . . . ",
+"z x x c f.c+e+5+T.4.`.. . . . . . . . . . ",
+"c t.s 3 Y.k ! D %+b U . . . . . . . . . . ",
+"s W.G.E+|+Q x.>+J.V.+ . . . . . . . . . . ",
+"x ,+G.~ j+e+4+T.E ; . . . . . . . . . . . ",
+": x L.2 o.R D t =+U . . . . . . . . . . . ",
+",+V 6.)+l.y.2.E.H + . . . . . . . . . . . ",
+"V H.=.% -.).B.^.`.C . . . . . . . . . . . ",
+",+L.f $ Z l A.b + . . . . . . . . . . . . ",
+"6 D.m+d.T <+n.) C . . . . . . . . . . . . ",
+"s +m.1.P z+9+!+. . . . . . . . . . . . . ",
+"7.f R.u.[.U.4.; . . . . . . . . . . . . . ",
+"{+}.$./ '.i+H . . . . . . . . . . . . . . ",
+"r+/+[+- ..@.!+. . . . . . . . . . . . . . ",
+"I.<.$+l 4 7 U . . . . . . . . . . . . . . ",
+"[ v y.<+i+;+X . . . . . . . . . . . . . . ",
+"j+p+k+..E | . . . . . . . . . . . . . . . ",
+"k p 6+t =+X . . . . . . . . . . . . . . . ",
+" .C.-+r :.. . . . . . . . . . . . . . . . ",
+"K.4+m 4.`.. . . . . . . . . . . . . . . . ",
+"T S.B H . . . . . . . . . . . . . . . . . ",
+"- ..@.!+. . . . . . . . . . . . . . . . . ",
+">.n 7 U . . . . . . . . . . . . . . . . . ",
+"2.n.;+X . . . . . . . . . . . . . . . . . ",
+"T.3+| . . . . . . . . . . . . . . . . . . ",
+"S ) X . . . . . . . . . . . . . . . . . . ",
+"F.q+. . . . . . . . . . . . . . . . . . . ",
+"*+| . . . . . . . . . . . . . . . . . . . ",
+"`.. . . . . . . . . . . . . . . . . . . . ",
+"X . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . . "};
diff --git a/muse2/xpm/mustangS.xpm b/muse2/xpm/mustangS.xpm
new file mode 100644
index 00000000..e4e6be03
--- /dev/null
+++ b/muse2/xpm/mustangS.xpm
@@ -0,0 +1,23 @@
+/* XPM */
+static const char *mustangS_xpm[]={
+"16 16 4 1",
+"# c #000000",
+". c #c00000",
+"b c #c3c3c3",
+"a c #ffffff",
+"...#...#........",
+"...###.#........",
+"..aa##a##aaaaa..",
+"..a#b####aaaaa..",
+"..#b####aaaaaa..",
+".#b######baaaa..",
+".#####bb###aaa..",
+".###########aa..",
+".############a..",
+".#############..",
+".#####a#####b#..",
+".#####aaa#####..",
+".#####aaaaa##a..",
+".####aaaaaaaaa..",
+".####...........",
+"................"};
diff --git a/muse2/xpm/mute.xpm b/muse2/xpm/mute.xpm
new file mode 100644
index 00000000..c172cfc6
--- /dev/null
+++ b/muse2/xpm/mute.xpm
@@ -0,0 +1,18 @@
+/* XPM */
+static const char * mute_xpm[] = {
+"12 12 3 1",
+" c None",
+". c #F50E0E",
+"+ c #000000",
+". + .",
+" . +++. ",
+" . +++. ",
+" . ++ .+ ",
+" ++.+ .++ ",
+" +++.. ++ ",
+" +++.. ++ ",
+" ++.+ .++ ",
+" . ++ .+ ",
+" . +++. ",
+" . +++. ",
+". + ."};
diff --git a/muse2/xpm/mutebutton_off.xpm b/muse2/xpm/mutebutton_off.xpm
new file mode 100644
index 00000000..87114e9f
--- /dev/null
+++ b/muse2/xpm/mutebutton_off.xpm
@@ -0,0 +1,73 @@
+/* XPM */
+static const char * mutebutton_off_xpm[] = {
+"22 22 48 1",
+" c None",
+". c #232323",
+"+ c #525252",
+"@ c #585858",
+"# c #5C5C5C",
+"$ c #5E5E5E",
+"% c #626262",
+"& c #666666",
+"* c #6B6B6B",
+"= c #6D6D6D",
+"- c #686868",
+"; c #646464",
+"> c #5A5A5A",
+", c #545454",
+"' c #565656",
+") c #6F6F6F",
+"! c #767676",
+"~ c #797979",
+"{ c #7B7B7B",
+"] c #808080",
+"^ c #7E7E7E",
+"/ c #747474",
+"( c #606060",
+"_ c #888888",
+": c #8A8A8A",
+"< c #8D8D8D",
+"[ c #8F8F8F",
+"} c #838383",
+"| c #717171",
+"1 c #929292",
+"2 c #969696",
+"3 c #989898",
+"4 c #949494",
+"5 c #858585",
+"6 c #9D9D9D",
+"7 c #9F9F9F",
+"8 c #9A9A9A",
+"9 c #A1A1A1",
+"0 c #535353",
+"a c #484848",
+"b c #A3A3A3",
+"c c #383838",
+"d c #6A6A6A",
+"e c #313131",
+"f c #2E2E2E",
+"g c #2C2C2C",
+"h c #292929",
+"i c #272727",
+"......................",
+".+@#$$%&&*=*-;%$>@,++.",
+".'$&*)!~{]^^~/=*;($>@.",
+".@;)~]_::<[<_}{!|*-;$.",
+".@&/}:1232324<_}^~|*;.",
+".@-!5[236776821[_}{|-.",
+".>*~_1286799@663[:]!-.",
+".$*{_[436790a9764<}/&.",
+".()]:14336@$.b962[}|%.",
+".%|}<1233@@c.b972[])(.",
+".;!}[43@;dce.bb73[^*#.",
+".;!5[28@a.fg.9b73<{*>.",
+".;/5128a..hi.6763<^-@.",
+".;/5[28......8882<{-@.",
+".%|}[4382....3882<{->.",
+".()]<14244...8662<{->.",
+".$*{_[[11[1..8682<{->.",
+".>&!}__:<<<1.3831_~&@.",
+".@;|{}}55_:<[441<}/;@.",
+".@%=!~^^^]}5_<:_}{)$,.",
+".>;*)/||/!!{^^^~/)&#,.",
+"......................"};
diff --git a/muse2/xpm/mutebutton_on.xpm b/muse2/xpm/mutebutton_on.xpm
new file mode 100644
index 00000000..d66647d5
--- /dev/null
+++ b/muse2/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/muse2/xpm/newmutebutton.xpm b/muse2/xpm/newmutebutton.xpm
new file mode 100644
index 00000000..994e3321
--- /dev/null
+++ b/muse2/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/muse2/xpm/note.xpm b/muse2/xpm/note.xpm
new file mode 100644
index 00000000..46064dbf
--- /dev/null
+++ b/muse2/xpm/note.xpm
@@ -0,0 +1,23 @@
+/* XPM */
+static const char * note_xpm[] = {
+"16 16 4 1",
+" c None",
+". c #000000",
+"+ c #808080",
+"@ c #404000",
+" .. ",
+" ... ",
+" .... ",
+" . .. ",
+" + + + . . ",
+" @@@@@@@@.@@@@@ ",
+" + + + . + ",
+" + + + . + ",
+" + + + . + ",
+" + + .... + ",
+" @@@@.....@@@@@ ",
+" + +..... + ",
+" ... ",
+" ",
+" ",
+" "};
diff --git a/muse2/xpm/note1.xpm b/muse2/xpm/note1.xpm
new file mode 100644
index 00000000..b8b85caf
--- /dev/null
+++ b/muse2/xpm/note1.xpm
@@ -0,0 +1,28 @@
+/* XPM */
+static const char* note1_xpm[]={
+"22 22 3 1",
+"a c #ffc0c0",
+"# c #000000",
+". c None",
+"......................",
+"......................",
+"......................",
+"......................",
+".............#........",
+".............#........",
+".............#........",
+".............#........",
+".............#........",
+".............#........",
+".............#........",
+".............#........",
+".............#........",
+".........#####........",
+"........##aaa#........",
+".......##aaaa#........",
+".......#aaaa##........",
+".......##aa##.........",
+"........####..........",
+"......................",
+"......................",
+"......................"};
diff --git a/muse2/xpm/off.xpm b/muse2/xpm/off.xpm
new file mode 100644
index 00000000..64ddd452
--- /dev/null
+++ b/muse2/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/muse2/xpm/pafter.xpm b/muse2/xpm/pafter.xpm
new file mode 100644
index 00000000..a39ed901
--- /dev/null
+++ b/muse2/xpm/pafter.xpm
@@ -0,0 +1,29 @@
+/* XPM */
+static const char *pafter_xpm[] = {
+"22 22 2 1",
+". c None",
+"# c #000000",
+"######################",
+"##...................#",
+"#.#..................#",
+"#..#.................#",
+"#...#................#",
+"#....#...............#",
+"#.....#..............#",
+"#......#.............#",
+"#.......#............#",
+"#........#...........#",
+"#.........#..........#",
+"#..........#.........#",
+"#...........#........#",
+"#............#.......#",
+"#.............#......#",
+"#..............#.....#",
+"#...............#....#",
+"#................#...#",
+"#.................#..#",
+"#..................#.#",
+"#...................##",
+"######################"
+};
+
diff --git a/muse2/xpm/panic.xpm b/muse2/xpm/panic.xpm
new file mode 100644
index 00000000..9b8f937c
--- /dev/null
+++ b/muse2/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/muse2/xpm/pencil.xpm b/muse2/xpm/pencil.xpm
new file mode 100644
index 00000000..16c06603
--- /dev/null
+++ b/muse2/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/muse2/xpm/piano.xpm b/muse2/xpm/piano.xpm
new file mode 100644
index 00000000..3b321274
--- /dev/null
+++ b/muse2/xpm/piano.xpm
@@ -0,0 +1,170 @@
+/* XPM */
+static const char * piano_xpm[] = {
+"22 22 145 2",
+" c None",
+". c #535353",
+"+ c #4A4A4A",
+"@ c #424242",
+"# c #3A3A3A",
+"$ c #313131",
+"% c #292929",
+"& c #212121",
+"* c #181818",
+"= c #101010",
+"- c #080808",
+"; c #000000",
+"> c #4C4C4C",
+", c #DEDEDE",
+"' c #D6D6D6",
+") c #C6C6C6",
+"! c #B4B4B4",
+"~ c #989898",
+"{ c #464646",
+"] c #FFFFFF",
+"^ c #ECECEC",
+"/ c #E1E1E1",
+"( c #141414",
+"_ c #C9C9C9",
+": c #3F3F3F",
+"< c #393939",
+"[ c #3E3E3E",
+"} c #E0E0E0",
+"| c #333333",
+"1 c #2C2C2C",
+"2 c #FDFDFD",
+"3 c #F0EEEC",
+"4 c #CFCBC4",
+"5 c #B8B1A9",
+"6 c #857F7A",
+"7 c #262626",
+"8 c #FEFDFC",
+"9 c #FDFAF7",
+"0 c #E4E0DB",
+"a c #D0C8C1",
+"b c #A09B97",
+"c c #1F1F1F",
+"d c #FEFDFB",
+"e c #FCF8F5",
+"f c #FBF3EE",
+"g c #F9F0E8",
+"h c #EADFD5",
+"i c #BBB2AB",
+"j c #191919",
+"k c #FEFCFB",
+"l c #FAF4EE",
+"m c #F9EFE7",
+"n c #F7EBE1",
+"o c #F5E6D9",
+"p c #C6B8AC",
+"q c #131313",
+"r c #FFFEFE",
+"s c #FDFCFA",
+"t c #FBF7F3",
+"u c #FAF3ED",
+"v c #F8EEE6",
+"w c #F6EADF",
+"x c #F3E1D2",
+"y c #D2C0B1",
+"z c #0C0C0C",
+"A c #FEFEFE",
+"B c #FDFBFA",
+"C c #FCF7F3",
+"D c #FAF2EC",
+"E c #F7EADF",
+"F c #F5E6D8",
+"G c #F4E1D2",
+"H c #F2DDCB",
+"I c #D0BCAB",
+"J c #060606",
+"K c #FDFBF9",
+"L c #FBF6F2",
+"M c #FAF3EC",
+"N c #F8EDE4",
+"O c #F7EADE",
+"P c #F5E5D8",
+"Q c #F3E1D1",
+"R c #F0D8C3",
+"S c #CFB8A5",
+"T c #FEFEFD",
+"U c #FDFAF8",
+"V c #FBF6F1",
+"W c #FAF2EB",
+"X c #F8EEE4",
+"Y c #F6E8DD",
+"Z c #F5E5D7",
+"` c #F3E0D0",
+" . c #F1DCC9",
+".. c #EFD8C3",
+"+. c #EED3BC",
+"@. c #CEB49F",
+"#. c #FCF6F1",
+"$. c #F6E9DD",
+"%. c #F4E4D6",
+"&. c #EFD8C2",
+"*. c #ECCEB5",
+"=. c #CCB099",
+"-. c #020202",
+";. c #FBF5F0",
+">. c #F9F0EA",
+",. c #F7ECE2",
+"'. c #F6E8DC",
+"). c #F2DFCE",
+"!. c #F1DBC8",
+"~. c #EFD6C1",
+"{. c #EED2BB",
+"]. c #ECCEB4",
+"^. c #EAC9AD",
+"/. c #CBAC93",
+"(. c #F9F0E9",
+"_. c #F4E3D5",
+":. c #F2E0CF",
+"<. c #F1DAC7",
+"[. c #EFD7C1",
+"}. c #EED2BA",
+"|. c #E9C5A6",
+"1. c #C9A88D",
+"2. c #F6E8DB",
+"3. c #F4E3D4",
+"4. c #F2DECE",
+"5. c #F1DBC7",
+"6. c #EFD6C0",
+"7. c #ECCDB3",
+"8. c #EAC9AC",
+"9. c #E8C5A6",
+"0. c #E7C2A2",
+"a. c #C8A487",
+"b. c #D8D0CA",
+"c. c #D7CCC4",
+"d. c #D6C8BE",
+"e. c #D4C4B8",
+"f. c #D2C0B2",
+"g. c #D1BDAC",
+"h. c #CFB8A6",
+"i. c #CEB5A0",
+"j. c #CDB09A",
+"k. c #CBAD94",
+"l. c #C9A88E",
+"m. c #C8A488",
+"n. c #C7A081",
+" ",
+" . + @ # $ % & * = - ; ; ",
+" > , , , , , , ' ) ! ; ~ ; ",
+" { , ] ] ] ] ] ] ^ / ( _ ~ ; ",
+" : , ] ] ] ] ] ] ] ^ % ] _ ~ ; ",
+" < , ] ] ] ] ] ] ] ] [ } ] _ ~ ; ",
+" | , ] ] ] ] ] ] ] ] . [ % ( ; ; ",
+" 1 , ] ] ] ] ] ] ] ] 2 3 4 5 6 ; ",
+" 7 , ] ] ] ] ] ] ] ] 8 9 0 a b ; ",
+" c , ] ] ] ] ] ] ] d e f g h i ; ",
+" j , ] ] ] ] ] ] k e l m n o p ; ",
+" q , ] ] ] ] r s t u v w o x y ; ",
+" z , ] ] ] A B C D v E F G H I ; ",
+" J , ] ] A K L M N O P Q H R S ; ",
+" J , ] ] A K L M N O P Q H R S ; ",
+" ; , ] T U V W X Y Z ` ...+.@.; ",
+" ; , r 9 #.W N $.%.` .&.+.*.=.; ",
+" -., 9 ;.>.,.'.%.).!.~.{.].^./.; ",
+" ; , ;.(.,.'._.:.<.[.}.].^.|.1.; ",
+" ; , g n 2.3.4.5.6.}.7.8.9.0.a.; ",
+" ; b.b.c.d.e.f.g.h.i.j.k.l.m.n.; ",
+" ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; "};
diff --git a/muse2/xpm/pianoS.xpm b/muse2/xpm/pianoS.xpm
new file mode 100644
index 00000000..3649919e
--- /dev/null
+++ b/muse2/xpm/pianoS.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/muse2/xpm/pitch.xpm b/muse2/xpm/pitch.xpm
new file mode 100644
index 00000000..e8f67efb
--- /dev/null
+++ b/muse2/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/muse2/xpm/play.xpm b/muse2/xpm/play.xpm
new file mode 100644
index 00000000..b38afc78
--- /dev/null
+++ b/muse2/xpm/play.xpm
@@ -0,0 +1,17 @@
+/* XPM */
+static const char * play_xpm[] = {
+"12 12 2 1",
+" c None",
+". c #000000",
+" . ",
+" ... ",
+" ... ",
+" .... ",
+" .... ",
+" ..... ",
+" ..... ",
+" .... ",
+" .... ",
+" ... ",
+" ... ",
+" . "};
diff --git a/muse2/xpm/pointer.xpm b/muse2/xpm/pointer.xpm
new file mode 100644
index 00000000..87801aa7
--- /dev/null
+++ b/muse2/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/muse2/xpm/punchin.xpm b/muse2/xpm/punchin.xpm
new file mode 100644
index 00000000..4c0809c5
--- /dev/null
+++ b/muse2/xpm/punchin.xpm
@@ -0,0 +1,27 @@
+/* XPM */
+static const char *punchin_xpm[] = {
+/* width height num_colors chars_per_pixel */
+" 22 16 3 1",
+/* colors */
+". c #000000",
+"f c None",
+"h c #ffffff",
+/* pixels */
+"ffffffffffffffffffffff",
+"ffffffffffffffffffffff",
+"ffffffffffffffffffffff",
+"ffffffffffffffffffffff",
+"ffffffffffffffffffffff",
+"fff.......ffffffffffff",
+"ffffffffff.fffffffffff",
+"fffffffffff.ffffffffff",
+"ffffffffffff.fffffffff",
+"fffffffffffff......fff",
+"fffffffffffffhhhhhhhff",
+"ffffffffffffffffffffff",
+"ffffffffffffffffffffff",
+"ffffffffffffffffffffff",
+"ffffffffffffffffffffff",
+"ffffffffffffffffffffff",
+};
+
diff --git a/muse2/xpm/punchin1.xpm b/muse2/xpm/punchin1.xpm
new file mode 100644
index 00000000..90d0961c
--- /dev/null
+++ b/muse2/xpm/punchin1.xpm
@@ -0,0 +1,18 @@
+/* XPM */
+static const char* punchin1_xpm[]={
+"12 12 3 1",
+"a c #c0c0c0",
+"# c #000000",
+". c None",
+"............",
+"####........",
+"######......",
+"....##......",
+"....##......",
+"....##......",
+"....##......",
+"....##......",
+"....########",
+"......######",
+"............",
+"............"};
diff --git a/muse2/xpm/punchout.xpm b/muse2/xpm/punchout.xpm
new file mode 100644
index 00000000..98d22f43
--- /dev/null
+++ b/muse2/xpm/punchout.xpm
@@ -0,0 +1,24 @@
+/* XPM */
+static const char *punchout_xpm[] = {
+"22 16 3 1",
+". c #000000",
+"f c None",
+"h c #ffffff",
+"ffffffffffffffffffffff",
+"ffffffffffffffffffffff",
+"ffffffffffffffffffffff",
+"ffffffffffffffffffffff",
+"ffffffffffffffffffffff",
+"fffffffffffff......fff",
+"ffffffffffff.fffffffff",
+"fffffffffff.ffffffffff",
+"ffffffffff.fffffffffff",
+"fff.......ffffffffffff",
+"ffffffffffffffffffffff",
+"ffffffffffffffffffffff",
+"ffffffffffffffffffffff",
+"ffffffffffffffffffffff",
+"ffffffffffffffffffffff",
+"ffffffffffffffffffffff",
+};
+
diff --git a/muse2/xpm/punchout1.xpm b/muse2/xpm/punchout1.xpm
new file mode 100644
index 00000000..1d3a2ae4
--- /dev/null
+++ b/muse2/xpm/punchout1.xpm
@@ -0,0 +1,18 @@
+/* XPM */
+static const char* punchout1_xpm[]={
+"12 12 3 1",
+"a c #c0c0c0",
+"# c #000000",
+". c None",
+"............",
+"............",
+"......######",
+"....########",
+"....##......",
+"....##......",
+"....##......",
+"....##......",
+"######......",
+"####........",
+"............",
+"............"};
diff --git a/muse2/xpm/quant.xpm b/muse2/xpm/quant.xpm
new file mode 100644
index 00000000..70d763dd
--- /dev/null
+++ b/muse2/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/muse2/xpm/rec_echo_off.xpm b/muse2/xpm/rec_echo_off.xpm
new file mode 100644
index 00000000..58f90f28
--- /dev/null
+++ b/muse2/xpm/rec_echo_off.xpm
@@ -0,0 +1,15 @@
+/* XPM */
+static const char * rec_echo_off_xpm[] = {
+"10 10 2 1",
+" c None",
+". c #FF0000",
+" ",
+" ",
+" ",
+" ",
+" .. ",
+" .. ",
+" ",
+" ",
+" ",
+" "};
diff --git a/muse2/xpm/rec_echo_on.xpm b/muse2/xpm/rec_echo_on.xpm
new file mode 100644
index 00000000..3c077cf5
--- /dev/null
+++ b/muse2/xpm/rec_echo_on.xpm
@@ -0,0 +1,16 @@
+/* XPM */
+static const char * rec_echo_on_xpm[] = {
+"10 10 3 1",
+" c None",
+". c #00FF00",
+"+ c #FF0000",
+" ...... ",
+" . . ",
+". .... .",
+". . . .",
+". . ++ . .",
+". . ++ . .",
+". . . .",
+". .... .",
+" . . ",
+" ...... "};
diff --git a/muse2/xpm/record.xpm b/muse2/xpm/record.xpm
new file mode 100644
index 00000000..9be6ceed
--- /dev/null
+++ b/muse2/xpm/record.xpm
@@ -0,0 +1,160 @@
+/* XPM */
+static const char * record_xpm[] = {
+"15 15 142 2",
+" c None",
+". c #9B0500",
+"+ c #900601",
+"@ c #AF0205",
+"# c #980401",
+"$ c #AF0206",
+"% c #A70205",
+"& c #A80204",
+"* c #A9040A",
+"= c #990502",
+"- c #A00400",
+"; c #CC0004",
+"> c #A30404",
+", c #BD0212",
+"' c #B20207",
+") c #AC0201",
+"! c #A30800",
+"~ c #A70409",
+"{ c #990500",
+"] c #D50002",
+"^ c #DB0400",
+"/ c #E70004",
+"( c #F20010",
+"_ c #E30018",
+": c #E00010",
+"< c #C00202",
+"[ c #AB0200",
+"} c #AB0800",
+"| c #A90401",
+"1 c #A50406",
+"2 c #B90201",
+"3 c #DE1800",
+"4 c #E62300",
+"5 c #F10900",
+"6 c #FF0016",
+"7 c #E60000",
+"8 c #E40800",
+"9 c #E10900",
+"0 c #BB0600",
+"a c #BE0200",
+"b c #B00200",
+"c c #DA0400",
+"d c #EB2500",
+"e c #F33000",
+"f c #F80D00",
+"g c #FF0018",
+"h c #FE0F00",
+"i c #F11000",
+"j c #E40F00",
+"k c #DF0B00",
+"l c #B30200",
+"m c #A20200",
+"n c #BB0304",
+"o c #A00403",
+"p c #E40000",
+"q c #F90B00",
+"r c #FF0F00",
+"s c #F90006",
+"t c #FB0012",
+"u c #F40D00",
+"v c #EE0800",
+"w c #E70000",
+"x c #DA0000",
+"y c #D00004",
+"z c #AC0500",
+"A c #A40202",
+"B c #B40207",
+"C c #F40010",
+"D c #FD0014",
+"E c #FF0008",
+"F c #F70009",
+"G c #EE0010",
+"H c #D6000F",
+"I c #CF0009",
+"J c #A80800",
+"K c #BB0211",
+"L c #E10018",
+"M c #EA0000",
+"N c #F10B00",
+"O c #EE3000",
+"P c #EF0F00",
+"Q c #F5000D",
+"R c #DA0010",
+"S c #B10202",
+"T c #A50200",
+"U c #A70600",
+"V c #9B0403",
+"W c #970500",
+"X c #E20010",
+"Y c #E30800",
+"Z c #EF1000",
+"` c #F10800",
+" . c #FF0009",
+".. c #F01000",
+"+. c #E10800",
+"@. c #DE0000",
+"#. c #DA0004",
+"$. c #B80207",
+"%. c #AF0207",
+"&. c #EC0004",
+"*. c #AB0204",
+"=. c #B30207",
+"-. c #E20800",
+";. c #E20F00",
+">. c #E50002",
+",. c #EB000F",
+"'. c #EF000D",
+"). c #E00000",
+"!. c #D70F00",
+"~. c #B90500",
+"{. c #B10200",
+"]. c #AF020C",
+"^. c #A90201",
+"/. c #A70200",
+"(. c #DA0B00",
+"_. c #E20D00",
+":. c #D90000",
+"<. c #D5000F",
+"[. c #DD0010",
+"}. c #DC0004",
+"|. c #D30400",
+"1. c #AD0200",
+"2. c #AE0204",
+"3. c #B3020A",
+"4. c #9A0600",
+"5. c #AC0800",
+"6. c #AF0200",
+"7. c #C90000",
+"8. c #CD0004",
+"9. c #D10009",
+"0. c #CA0004",
+"a. c #B50207",
+"b. c #B40200",
+"c. c #9C0400",
+"d. c #A90400",
+"e. c #A30200",
+"f. c #AA0200",
+"g. c #B6020E",
+"h. c #A90402",
+"i. c #A50800",
+"j. c #AB0600",
+"k. c #B50302",
+" ",
+" . + @ # $ % & ",
+" * = - ; > , - ' ) ! ",
+" ~ { ] ^ / ( _ : < [ } ",
+" | 1 2 3 4 5 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 6 g D t E F G H I [ J ",
+" o K L M r N E O P Q R S T U ",
+" V W X Y Z ` ...+.@.#.$.%.&.",
+" *.=.< -.;.>.,.'.).!.~.{.]. ",
+" ^./.(._.:.<.[.}.|.1.2.3. ",
+" 4.5.6.7.8.9.0.a.b.c.} ",
+" d.e.6.b e.f.g.3. ",
+" h.z i.j.k. "};
diff --git a/muse2/xpm/record1.xpm b/muse2/xpm/record1.xpm
new file mode 100644
index 00000000..5b0d8e6f
--- /dev/null
+++ b/muse2/xpm/record1.xpm
@@ -0,0 +1,21 @@
+/* XPM */
+static const char *record1_xpm[] = {
+/* width height num_colors chars_per_pixel */
+" 12 12 2 1",
+/* colors */
+". c none",
+"# c #ff0000",
+/* pixels */
+"............",
+".....##.....",
+"....####....",
+"...######...",
+"..########..",
+"..########..",
+"..########..",
+"...######...",
+"....####....",
+".....##.....",
+"............",
+"............"
+};
diff --git a/muse2/xpm/record_off.xpm b/muse2/xpm/record_off.xpm
new file mode 100644
index 00000000..3f25c366
--- /dev/null
+++ b/muse2/xpm/record_off.xpm
@@ -0,0 +1,150 @@
+/* XPM */
+static const char * record_off_xpm[] = {
+"15 15 132 2",
+" c None",
+". c #520002",
+"+ c #420002",
+"@ c #3F0002",
+"# c #350002",
+"$ c #3E0002",
+"% c #360002",
+"& c #370002",
+"* c #590006",
+"= c #490002",
+"- c #3F0000",
+"; c #450002",
+"> c #470003",
+", c #5A0006",
+"' c #430003",
+") c #3B0001",
+"! c #450200",
+"~ c #530006",
+"{ c #470000",
+"] c #520001",
+"^ c #5C0200",
+"/ c #760002",
+"( c #980201",
+"_ c #6E0006",
+": c #660004",
+"< c #630002",
+"[ c #3B0000",
+"} c #3B0200",
+"| c #5A0002",
+"1 c #4D0004",
+"2 c #610600",
+"3 c #740800",
+"4 c #990200",
+"5 c #B20201",
+"6 c #740000",
+"7 c #6E0200",
+"8 c #680200",
+"9 c #560200",
+"0 c #390100",
+"a c #460002",
+"b c #400000",
+"c c #590200",
+"d c #830800",
+"e c #A40B00",
+"f c #A80400",
+"g c #B00400",
+"h c #960400",
+"i c #6E0400",
+"j c #630300",
+"k c #450000",
+"l c #330000",
+"m c #700000",
+"n c #AA0300",
+"o c #A60300",
+"p c #AA0200",
+"q c #B40101",
+"r c #AC0400",
+"s c #8E0200",
+"t c #750000",
+"u c #590000",
+"v c #4B0002",
+"w c #680100",
+"x c #330002",
+"y c #9D0201",
+"z c #A70200",
+"A c #B00201",
+"B c #AC0001",
+"C c #B20101",
+"D c #C00000",
+"E c #AE0001",
+"F c #8C0004",
+"G c #530004",
+"H c #3A0000",
+"I c #540200",
+"J c #400002",
+"K c #560006",
+"L c #670006",
+"M c #7F0000",
+"N c #A70400",
+"O c #990300",
+"P c #AF0100",
+"Q c #8E0600",
+"R c #920400",
+"S c #9E0001",
+"T c #5A0004",
+"U c #430002",
+"V c #340000",
+"W c #510200",
+"X c #6A0004",
+"Y c #6C0200",
+"Z c #9C0200",
+"` c #B20200",
+" . c #930300",
+".. c #610000",
+"+. c #4F0003",
+"@. c #3F0003",
+"#. c #390002",
+"$. c #450003",
+"%. c #640002",
+"&. c #6A0200",
+"*. c #6A0400",
+"=. c #710001",
+"-. c #810004",
+";. c #900004",
+">. c #650000",
+",. c #540400",
+"'. c #500200",
+"). c #430000",
+"!. c #3F0004",
+"~. c #370001",
+"{. c #350000",
+"]. c #590300",
+"^. c #570000",
+"/. c #510004",
+"(. c #5F0004",
+"_. c #5D0002",
+":. c #4F0200",
+"<. c #3D0000",
+"[. c #450004",
+"}. c #4D0200",
+"|. c #4C0002",
+"1. c #440002",
+"2. c #490003",
+"3. c #380000",
+"4. c #370000",
+"5. c #3E0000",
+"6. c #310000",
+"7. c #390000",
+"8. c #4A0006",
+"9. c #440004",
+"0. c #670100",
+"a. c #5E0200",
+" ",
+" . + @ # $ % & ",
+" * = - ; > , - ' ) ! ",
+" ~ { ] ^ / ( _ : < [ } ",
+" | 1 ] 2 3 4 5 6 7 8 9 - 0 ",
+" a b c d e f 5 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 Q R S T U V W ",
+" # b X Y R Z ` .8 ..| +.@. ",
+" #.$.%.&.*.=.-.;.>.,.'.).!. ",
+" ~.{.].*.^./.(._.:.<.$ [. ",
+" }.} - ).a |.1.2.{ 3.} ",
+" 0 4.5.b 6.7.8.9. ",
+" 0.}.a. "};
diff --git a/muse2/xpm/record_on.xpm b/muse2/xpm/record_on.xpm
new file mode 100644
index 00000000..64a67cf4
--- /dev/null
+++ b/muse2/xpm/record_on.xpm
@@ -0,0 +1,160 @@
+/* XPM */
+static const char * record_on_xpm[] = {
+"15 15 142 2",
+" c None",
+". c #9B0500",
+"+ c #900601",
+"@ c #AF0205",
+"# c #980401",
+"$ c #AF0206",
+"% c #A70205",
+"& c #A80204",
+"* c #A9040A",
+"= c #990502",
+"- c #A00400",
+"; c #CC0004",
+"> c #A30404",
+", c #BD0212",
+"' c #B20207",
+") c #AC0201",
+"! c #A30800",
+"~ c #A70409",
+"{ c #990500",
+"] c #D50002",
+"^ c #DB0400",
+"/ c #E70004",
+"( c #F20010",
+"_ c #E30018",
+": c #E00010",
+"< c #C00202",
+"[ c #AB0200",
+"} c #AB0800",
+"| c #A90401",
+"1 c #A50406",
+"2 c #B90201",
+"3 c #DE1800",
+"4 c #E62300",
+"5 c #F10900",
+"6 c #FF0016",
+"7 c #E60000",
+"8 c #E40800",
+"9 c #E10900",
+"0 c #BB0600",
+"a c #BE0200",
+"b c #B00200",
+"c c #DA0400",
+"d c #EB2500",
+"e c #F33000",
+"f c #F80D00",
+"g c #FF0018",
+"h c #FE0F00",
+"i c #F11000",
+"j c #E40F00",
+"k c #DF0B00",
+"l c #B30200",
+"m c #A20200",
+"n c #BB0304",
+"o c #A00403",
+"p c #E40000",
+"q c #F90B00",
+"r c #FF0F00",
+"s c #F90006",
+"t c #FB0012",
+"u c #F40D00",
+"v c #EE0800",
+"w c #E70000",
+"x c #DA0000",
+"y c #D00004",
+"z c #AC0500",
+"A c #A40202",
+"B c #B40207",
+"C c #F40010",
+"D c #FD0014",
+"E c #FF0008",
+"F c #F70009",
+"G c #EE0010",
+"H c #D6000F",
+"I c #CF0009",
+"J c #A80800",
+"K c #BB0211",
+"L c #E10018",
+"M c #EA0000",
+"N c #F10B00",
+"O c #EE3000",
+"P c #EF0F00",
+"Q c #F5000D",
+"R c #DA0010",
+"S c #B10202",
+"T c #A50200",
+"U c #A70600",
+"V c #9B0403",
+"W c #970500",
+"X c #E20010",
+"Y c #E30800",
+"Z c #EF1000",
+"` c #F10800",
+" . c #FF0009",
+".. c #F01000",
+"+. c #E10800",
+"@. c #DE0000",
+"#. c #DA0004",
+"$. c #B80207",
+"%. c #AF0207",
+"&. c #EC0004",
+"*. c #AB0204",
+"=. c #B30207",
+"-. c #E20800",
+";. c #E20F00",
+">. c #E50002",
+",. c #EB000F",
+"'. c #EF000D",
+"). c #E00000",
+"!. c #D70F00",
+"~. c #B90500",
+"{. c #B10200",
+"]. c #AF020C",
+"^. c #A90201",
+"/. c #A70200",
+"(. c #DA0B00",
+"_. c #E20D00",
+":. c #D90000",
+"<. c #D5000F",
+"[. c #DD0010",
+"}. c #DC0004",
+"|. c #D30400",
+"1. c #AD0200",
+"2. c #AE0204",
+"3. c #B3020A",
+"4. c #9A0600",
+"5. c #AC0800",
+"6. c #AF0200",
+"7. c #C90000",
+"8. c #CD0004",
+"9. c #D10009",
+"0. c #CA0004",
+"a. c #B50207",
+"b. c #B40200",
+"c. c #9C0400",
+"d. c #A90400",
+"e. c #A30200",
+"f. c #AA0200",
+"g. c #B6020E",
+"h. c #A90402",
+"i. c #A50800",
+"j. c #AB0600",
+"k. c #B50302",
+" ",
+" . + @ # $ % & ",
+" * = - ; > , - ' ) ! ",
+" ~ { ] ^ / ( _ : < [ } ",
+" | 1 2 3 4 5 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 6 g D t E F G H I [ J ",
+" o K L M r N E O P Q R S T U ",
+" V W X Y Z ` ...+.@.#.$.%.&.",
+" *.=.< -.;.>.,.'.).!.~.{.]. ",
+" ^./.(._.:.<.[.}.|.1.2.3. ",
+" 4.5.6.7.8.9.0.a.b.c.} ",
+" d.e.6.b e.f.g.3. ",
+" h.z i.j.k. "};
diff --git a/muse2/xpm/recordoffbutton.xpm b/muse2/xpm/recordoffbutton.xpm
new file mode 100644
index 00000000..729c1c06
--- /dev/null
+++ b/muse2/xpm/recordoffbutton.xpm
@@ -0,0 +1,206 @@
+/* XPM */
+static const char *recordoffbutton_xpm[]={
+"22 22 181 2",
+"Qt c None",
+"aY c #775152",
+"aJ c #795052",
+"ag c #7a5356",
+"aR c #7f6668",
+"aA c #806869",
+"aX c #833435",
+"aS c #836569",
+"#8 c #843738",
+"aQ c #852c2c",
+"ap c #862d2d",
+".6 c #876a6e",
+"aI c #8d2b2b",
+"az c #8d2c2c",
+"aB c #8d757b",
+"aK c #8e7e82",
+"aH c #903232",
+"af c #913333",
+".B c #917a7f",
+"aW c #923838",
+"#W c #933b3b",
+".M c #938487",
+"aG c #943939",
+"ay c #943a3a",
+"ao c #953a3a",
+"#7 c #953b3b",
+"aT c #955455",
+"aq c #95888d",
+"#f c #975859",
+"aF c #984040",
+"an c #984141",
+"#V c #994242",
+"#L c #994343",
+".r c #9a8d92",
+"aV c #9b4747",
+"aE c #9c4747",
+"am c #9c4848",
+"#6 c #9d4949",
+"#A c #9d4a4a",
+"aU c #9d4d4e",
+".g c #9d8f94",
+"aP c #9f4e4e",
+"#p c #9f5151",
+"#9 c #9f9499",
+"al c #a04f4f",
+"ae c #a05050",
+"#5 c #a15050",
+"#z c #a15151",
+"aO c #a35555",
+"aD c #a35656",
+"ak c #a45656",
+"#4 c #a45757",
+"#K c #a55858",
+"#o c #a55959",
+"aN c #a75c5c",
+"aC c #a75d5d",
+"ax c #a85d5d",
+"#3 c #a85e5e",
+"#U c #a85f5f",
+"aL c #a86969",
+"#J c #a95f5f",
+"#e c #a96060",
+".V c #aa6d6e",
+"aM c #ab6363",
+"aw c #ab6464",
+"#2 c #ac6565",
+"#I c #ac6666",
+"#d c #ad6767",
+".5 c #ad6868",
+"av c #af6b6b",
+"aj c #af6c6c",
+"#1 c #b06c6c",
+"#H c #b06d6d",
+"#y c #b06e6e",
+"#n c #b16e6e",
+".4 c #b16f6f",
+"au c #b37272",
+"ad c #b37373",
+"#G c #b47474",
+"#x c #b47575",
+"#m c #b57575",
+".U c #b57676",
+"at c #b77979",
+"ac c #b77a7a",
+"#0 c #b77b7b",
+"#F c #b87b7b",
+"#l c #b87c7c",
+".3 c #b97d7d",
+".L c #b97e7e",
+"as c #bb8080",
+"ab c #bb8181",
+"#T c #bb8282",
+"#k c #bc8383",
+"#c c #bc8484",
+".2 c #bd8484",
+".K c #bd8585",
+"ar c #be8888",
+"aa c #bf8888",
+"#S c #bf8989",
+"#E c #bf8a8a",
+"ah c #bf9393",
+".W c #bfc7ca",
+"#j c #c08a8a",
+".1 c #c08b8b",
+".# c #c0c8cb",
+".J c #c18c8c",
+".A c #c18d8d",
+"ai c #c28f8f",
+".q c #c29898",
+"a# c #c38f8f",
+"#R c #c39090",
+"#D c #c39191",
+".C c #c3d0d2",
+"#w c #c49191",
+".0 c #c49292",
+".T c #c49393",
+".s c #c4ced1",
+".h c #c4d1d2",
+".I c #c59393",
+".z c #c59494",
+"#X c #c5a8a8",
+"a. c #c69797",
+"#Q c #c79797",
+"#v c #c79898",
+".f c #c7abac",
+".Z c #c89999",
+".H c #c89a9a",
+".y c #c99b9b",
+"#Z c #ca9e9e",
+"#P c #cb9e9e",
+"#u c #cb9f9f",
+"#i c #cba0a0",
+".Y c #cca0a0",
+".G c #cca1a1",
+".x c #cca2a2",
+".p c #cda2a2",
+"#Y c #cea5a5",
+"#O c #cfa5a5",
+"#t c #cfa6a6",
+"#b c #cfa7a7",
+".F c #d0a8a8",
+".w c #d0a9a9",
+".o c #d1a9a9",
+"#N c #d2adad",
+"#s c #d3adad",
+"#a c #d3aeae",
+".X c #d3afaf",
+".E c #d4afaf",
+".n c #d4b0b0",
+"#M c #d4b3b3",
+"#C c #d6b4b4",
+".e c #d6b7b7",
+"#r c #d7b4b4",
+"## c #d7b5b5",
+".S c #d7b6b6",
+".m c #d8b7b7",
+"#B c #dabbbb",
+"#q c #dabcbc",
+"#. c #dbbcbc",
+".R c #dbbdbd",
+".7 c #dbcece",
+".l c #dcbebe",
+".d c #dcbfbf",
+".a c #dccfd0",
+"#h c #dec3c3",
+".9 c #dfc3c3",
+".Q c #dfc4c4",
+".D c #dfc5c5",
+".v c #e0c5c5",
+".c c #e0c6c6",
+"#g c #e1c9c9",
+".8 c #e2cbcb",
+".P c #e3cbcb",
+".b c #e3cccc",
+".k c #e4cdcd",
+".O c #e7d2d2",
+".u c #e7d3d3",
+".j c #e7d4d4",
+".N c #e7d7d7",
+".i c #e7d9d9",
+".t c #ebdada",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQt.#.a.b.c.d.e.f.gQtQtQtQtQtQtQt",
+"QtQtQtQtQt.h.i.j.k.c.l.m.n.o.p.q.rQtQtQtQtQt",
+"QtQtQtQt.s.t.u.b.v.l.m.n.w.x.y.z.A.BQtQtQtQt",
+"QtQtQt.C.t.u.b.D.l.m.E.F.G.H.I.J.K.L.MQtQtQt",
+"QtQtQt.N.O.P.Q.R.S.E.F.G.H.T.J.K.L.U.VQtQtQt",
+"QtQt.W.O.P.Q.R.S.X.F.Y.Z.0.1.2.3.U.4.5.6QtQt",
+"QtQt.7.8.9#.###a#b.Y.Z.0.1#c.3.U.4#d#e#fQtQt",
+"QtQt#g#h#.###a#b#i.Z.0#j#k#l#m#n#d#e#o#pQtQt",
+"QtQt#h#q#r#s#t#u#v#w#j#k#l#x#y#d#e#o#z#AQtQt",
+"QtQt#B#C#s#t#u#v#D#E#k#F#G#H#I#J#K#z#A#LQtQt",
+"QtQt#M#N#O#P#Q#R#S#T#F#G#H#I#U#K#z#A#V#WQtQt",
+"QtQt#X#Y#Z#Q#R#S#T#0#G#1#2#3#4#5#6#V#7#8QtQt",
+"QtQt#9#Za.a#aaabacad#1#2#3#4ae#6#V#7afagQtQt",
+"QtQtQtahaiaaabacadaj#2#3akalamanaoafapQtQtQt",
+"QtQtQtaqarasatauavawaxakalamanayafazaAQtQtQt",
+"QtQtQtQtaBatauavawaCaDalaEaFaGaHaIaJQtQtQtQt",
+"QtQtQtQtQtaKaLaMaNaOaPaEaFaGaHaQaRQtQtQtQtQt",
+"QtQtQtQtQtQtQtaSaTaUaVaFaWaXaYQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt"};
diff --git a/muse2/xpm/recordonbutton.xpm b/muse2/xpm/recordonbutton.xpm
new file mode 100644
index 00000000..4654c17b
--- /dev/null
+++ b/muse2/xpm/recordonbutton.xpm
@@ -0,0 +1,85 @@
+/* XPM */
+static const char * recordonbutton_xpm[] = {
+"22 22 60 1",
+" c None",
+". c #C8CCCF",
+"+ c #EFD6D7",
+"@ c #FDD3D3",
+"# c #FFCCCC",
+"$ c #FFC3C3",
+"% c #FCBABA",
+"& c #EAABAC",
+"* c #AF8F94",
+"= c #C7D3D5",
+"- c #F9E2E2",
+"; c #FFDDDD",
+"> c #FFD4D4",
+", c #FFBBBB",
+"' c #FFB2B2",
+") c #FFAAAA",
+"! c #FFA1A1",
+"~ c #F49596",
+"{ c #A88C91",
+"] c #CAD3D6",
+"^ c #FFE5E5",
+"/ c #FF9898",
+"( c #FF9090",
+"_ c #FF8787",
+": c #AB787D",
+"< c #FF7F7F",
+"[ c #FF7777",
+"} c #A48184",
+"| c #FF6E6E",
+"1 c #F26565",
+"2 c #FF6666",
+"3 c #FF5D5D",
+"4 c #A86669",
+"5 c #EFD7D7",
+"6 c #FF5555",
+"7 c #E24D4E",
+"8 c #FF4C4C",
+"9 c #FB4343",
+"0 c #FF4343",
+"a c #FF3B3B",
+"b c #FF3333",
+"c c #FA2A2A",
+"d c #EAADAD",
+"e c #FF2A2A",
+"f c #E02728",
+"g c #B2969B",
+"h c #FF2121",
+"i c #A64C4E",
+"j c #F49595",
+"k c #F01B1B",
+"l c #A3888D",
+"m c #FF1919",
+"n c #9C6364",
+"o c #A8757A",
+"p c #A7484A",
+"q c #A07E81",
+"r c #9A6164",
+"s c #A56366",
+"t c #E02727",
+"u c #A44A4C",
+" ",
+" ",
+" .+@#$%&* ",
+" =-;>#$,')!~{ ",
+" ]^;>#$,')!/(_: ",
+" =^;>#$,')!/(_<[} ",
+" -;>#$,')!/(_<[|1 ",
+" .;>#$,')!/(_<[|234 ",
+" 5>#$,')!/(_<[|2367 ",
+" @#$,')!/(_<[|23689 ",
+" #$,')!/(_<[|23680a ",
+" $,')!/(_<[|23680ab ",
+" %')!/(_<[|23680abc ",
+" d)!/(_<[|23680abef ",
+" g!/(_<[|23680abehi ",
+" j(_<[|23680abehk ",
+" l_<[|23680abehmn ",
+" o[|23680abehmp ",
+" q13680abehkr ",
+" s79abctu ",
+" ",
+" "};
diff --git a/muse2/xpm/reddot.xpm b/muse2/xpm/reddot.xpm
new file mode 100644
index 00000000..c094934a
--- /dev/null
+++ b/muse2/xpm/reddot.xpm
@@ -0,0 +1,17 @@
+/* XPM */
+static const char *reddot_xpm[]={
+"12 12 2 1",
+". c None",
+"# c #ff5600",
+"...#####....",
+"..#######...",
+".#########..",
+"###########.",
+"###########.",
+"###########.",
+"###########.",
+"###########.",
+".#########..",
+"..#######...",
+"...#####....",
+"............"};
diff --git a/muse2/xpm/redled.xpm b/muse2/xpm/redled.xpm
new file mode 100644
index 00000000..ab82bbed
--- /dev/null
+++ b/muse2/xpm/redled.xpm
@@ -0,0 +1,18 @@
+/* XPM */
+static const char * redled_xpm[] = {
+"10 10 5 1",
+" c None",
+". c #A00000",
+"+ c #FF0000",
+"@ c #FF8687",
+"# c #C26667",
+" ",
+" .... ",
+" .++++. ",
+" .++@+++. ",
+" .+#++++. ",
+" .++++++. ",
+" .++++++. ",
+" .++++. ",
+" .... ",
+" "};
diff --git a/muse2/xpm/redo.xpm b/muse2/xpm/redo.xpm
new file mode 100644
index 00000000..24771785
--- /dev/null
+++ b/muse2/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/muse2/xpm/redoS.xpm b/muse2/xpm/redoS.xpm
new file mode 100644
index 00000000..686e2e72
--- /dev/null
+++ b/muse2/xpm/redoS.xpm
@@ -0,0 +1,25 @@
+/* XPM */
+static const char * redoS_xpm[] = {
+"16 16 6 1",
+" c None",
+". c #000000",
+"+ c #00FF00",
+"@ c #00C000",
+"# c #008000",
+"$ c #004000",
+" ",
+" .... ",
+" ..++++.. ",
+" .+@@@@@++. .",
+" .+#$..#@@@+. #.",
+" .$.. ..#@@+.#.",
+".@. .#@@@#.",
+"... .@@@#.",
+"... .@@@#.",
+"... ######.",
+" .. ........",
+" ... ",
+" ... ",
+" .... ",
+" ... ",
+" "};
diff --git a/muse2/xpm/resetS.xpm b/muse2/xpm/resetS.xpm
new file mode 100644
index 00000000..261af17e
--- /dev/null
+++ b/muse2/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/muse2/xpm/rmark.xpm b/muse2/xpm/rmark.xpm
new file mode 100644
index 00000000..c0dbd780
--- /dev/null
+++ b/muse2/xpm/rmark.xpm
@@ -0,0 +1,23 @@
+/* XPM */
+static const char* rmark_xpm[]={
+"18 18 2 1",
+"# c #0000ff",
+". c None",
+"..................",
+"..................",
+"..................",
+"..................",
+"..................",
+"..................",
+"..................",
+"........##########",
+"........#########.",
+"........########..",
+"........#######...",
+"........######....",
+"........#####.....",
+"........####......",
+"........###.......",
+"........##........",
+"........##........",
+"........##........"};
diff --git a/muse2/xpm/score.xpm b/muse2/xpm/score.xpm
new file mode 100644
index 00000000..055ddd32
--- /dev/null
+++ b/muse2/xpm/score.xpm
@@ -0,0 +1,170 @@
+/* XPM */
+static const char * score_xpm[] = {
+"22 22 145 2",
+" c None",
+". c #535353",
+"+ c #4A4A4A",
+"@ c #424242",
+"# c #3A3A3A",
+"$ c #313131",
+"% c #292929",
+"& c #212121",
+"* c #181818",
+"= c #101010",
+"- c #080808",
+"; c #000000",
+"> c #4C4C4C",
+", c #DEDEDE",
+"' c #D6D6D6",
+") c #C6C6C6",
+"! c #B4B4B4",
+"~ c #989898",
+"{ c #464646",
+"] c #FFFFFF",
+"^ c #ECECEC",
+"/ c #E1E1E1",
+"( c #141414",
+"_ c #C9C9C9",
+": c #3F3F3F",
+"< c #393939",
+"[ c #3E3E3E",
+"} c #E0E0E0",
+"| c #333333",
+"1 c #2C2C2C",
+"2 c #FDFDFD",
+"3 c #F0EEEC",
+"4 c #CFCBC4",
+"5 c #B8B1A9",
+"6 c #857F7A",
+"7 c #262626",
+"8 c #FEFDFC",
+"9 c #FDFAF7",
+"0 c #E4E0DB",
+"a c #D0C8C1",
+"b c #A09B97",
+"c c #1F1F1F",
+"d c #FEFDFB",
+"e c #FCF8F5",
+"f c #FBF3EE",
+"g c #F9F0E8",
+"h c #EADFD5",
+"i c #BBB2AB",
+"j c #191919",
+"k c #FEFCFB",
+"l c #FAF4EE",
+"m c #F9EFE7",
+"n c #F7EBE1",
+"o c #F5E6D9",
+"p c #C6B8AC",
+"q c #131313",
+"r c #FFFEFE",
+"s c #FDFCFA",
+"t c #FBF7F3",
+"u c #FAF3ED",
+"v c #F8EEE6",
+"w c #F6EADF",
+"x c #F3E1D2",
+"y c #D2C0B1",
+"z c #0C0C0C",
+"A c #FEFEFE",
+"B c #FDFBFA",
+"C c #FCF7F3",
+"D c #FAF2EC",
+"E c #F7EADF",
+"F c #F5E6D8",
+"G c #F4E1D2",
+"H c #F2DDCB",
+"I c #D0BCAB",
+"J c #060606",
+"K c #FDFBF9",
+"L c #FBF6F2",
+"M c #FAF3EC",
+"N c #F8EDE4",
+"O c #F7EADE",
+"P c #F5E5D8",
+"Q c #F3E1D1",
+"R c #F0D8C3",
+"S c #CFB8A5",
+"T c #FEFEFD",
+"U c #FDFAF8",
+"V c #FBF6F1",
+"W c #FAF2EB",
+"X c #F8EEE4",
+"Y c #F6E8DD",
+"Z c #F5E5D7",
+"` c #F3E0D0",
+" . c #F1DCC9",
+".. c #EFD8C3",
+"+. c #EED3BC",
+"@. c #CEB49F",
+"#. c #FCF6F1",
+"$. c #F6E9DD",
+"%. c #F4E4D6",
+"&. c #EFD8C2",
+"*. c #ECCEB5",
+"=. c #CCB099",
+"-. c #020202",
+";. c #FBF5F0",
+">. c #F9F0EA",
+",. c #F7ECE2",
+"'. c #F6E8DC",
+"). c #F2DFCE",
+"!. c #F1DBC8",
+"~. c #EFD6C1",
+"{. c #EED2BB",
+"]. c #ECCEB4",
+"^. c #EAC9AD",
+"/. c #CBAC93",
+"(. c #F9F0E9",
+"_. c #F4E3D5",
+":. c #F2E0CF",
+"<. c #F1DAC7",
+"[. c #EFD7C1",
+"}. c #EED2BA",
+"|. c #E9C5A6",
+"1. c #C9A88D",
+"2. c #F6E8DB",
+"3. c #F4E3D4",
+"4. c #F2DECE",
+"5. c #F1DBC7",
+"6. c #EFD6C0",
+"7. c #ECCDB3",
+"8. c #EAC9AC",
+"9. c #E8C5A6",
+"0. c #E7C2A2",
+"a. c #C8A487",
+"b. c #D8D0CA",
+"c. c #D7CCC4",
+"d. c #D6C8BE",
+"e. c #D4C4B8",
+"f. c #D2C0B2",
+"g. c #D1BDAC",
+"h. c #CFB8A6",
+"i. c #CEB5A0",
+"j. c #CDB09A",
+"k. c #CBAD94",
+"l. c #C9A88E",
+"m. c #C8A488",
+"n. c #C7A081",
+" ",
+" . + @ # $ % & * = - ; ; ",
+" > , , , , , , ' ) ! ; ~ ; ",
+" { , ] ] ] ] ] ] ^ / ( _ ~ ; ",
+" : , ] ] ] ] ] ] ] ^ % ] _ ~ ; ",
+" < , ] ] ] ] ] ] ] ] [ } ] _ ~ ; ",
+" | , ] ] ] ] ] ] ] ] . [ % ( ; ; ",
+" 1 , ] ] ] ] ] ] ] ] 2 3 4 5 6 ; ",
+" 7 , ] ] ] ] ] ] ] ] 8 9 0 a b ; ",
+" c , ] ] ] ] ] ] ] d e f g h i ; ",
+" j , ] ] ] ] ] ] k e l m n o p ; ",
+" q , ] ] ] ] r s t u v w o x y ; ",
+" z , ] ] ] A B C D v E F G H I ; ",
+" J , ] ] A K L M N O P Q H R S ; ",
+" J , ] ] A K L M N O P Q H R S ; ",
+" ; , ] T U V W X Y Z ` ...+.@.; ",
+" ; , r 9 #.W N $.%.` .&.+.*.=.; ",
+" -., 9 ;.>.,.'.%.).!.~.{.].^./.; ",
+" ; , ;.(.,.'._.:.<.[.}.].^.|.1.; ",
+" ; , g n 2.3.4.5.6.}.7.8.9.0.a.; ",
+" ; b.b.c.d.e.f.g.h.i.j.k.l.m.n.; ",
+" ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; "};
diff --git a/muse2/xpm/scoreS.xpm b/muse2/xpm/scoreS.xpm
new file mode 100644
index 00000000..ec2ddd43
--- /dev/null
+++ b/muse2/xpm/scoreS.xpm
@@ -0,0 +1,23 @@
+/* XPM */
+static const char *scoreS_xpm[]={
+"16 16 4 1",
+"# c #000000",
+". c #00ff00",
+"b c #dcdcdc",
+"a c #ffffff",
+"................",
+"..############..",
+"..aaaaaa#aaaaa..",
+"..aaaaaa##aaaa..",
+"..############..",
+"..aaaaaa#b#baa..",
+"..aaaaaa#bbbaa..",
+"..############..",
+"..aaaaaa#baaaa..",
+"..aaaa###baaaa..",
+"..############..",
+"..aaaa##bbaaaa..",
+"..aaaabbbaaaaa..",
+"..############..",
+"................",
+"................"};
diff --git a/muse2/xpm/select.xpm b/muse2/xpm/select.xpm
new file mode 100644
index 00000000..a29f3370
--- /dev/null
+++ b/muse2/xpm/select.xpm
@@ -0,0 +1,21 @@
+/* XPM */
+static const char *select_xpm[]={
+"16 16 2 1",
+". c #000000",
+"# c #ffffff",
+"..#..#..#..#..#.",
+"###############.",
+".###############",
+".##############.",
+"###############.",
+".###############",
+".##############.",
+"###############.",
+".###############",
+".##############.",
+"###############.",
+".###############",
+".##############.",
+"###############.",
+".###############",
+".#..#..#..#..#.."};
diff --git a/muse2/xpm/select_all.xpm b/muse2/xpm/select_all.xpm
new file mode 100644
index 00000000..b0133636
--- /dev/null
+++ b/muse2/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/muse2/xpm/select_all_parts_on_track.xpm b/muse2/xpm/select_all_parts_on_track.xpm
new file mode 100644
index 00000000..4761a256
--- /dev/null
+++ b/muse2/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/muse2/xpm/select_deselect_all.xpm b/muse2/xpm/select_deselect_all.xpm
new file mode 100644
index 00000000..d3a9bce9
--- /dev/null
+++ b/muse2/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/muse2/xpm/select_inside_loop.xpm b/muse2/xpm/select_inside_loop.xpm
new file mode 100644
index 00000000..46d57b28
--- /dev/null
+++ b/muse2/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/muse2/xpm/select_invert_selection.xpm b/muse2/xpm/select_invert_selection.xpm
new file mode 100644
index 00000000..c2f11b55
--- /dev/null
+++ b/muse2/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/muse2/xpm/select_outside_loop.xpm b/muse2/xpm/select_outside_loop.xpm
new file mode 100644
index 00000000..555b6157
--- /dev/null
+++ b/muse2/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/muse2/xpm/settings_appearance_settings.xpm b/muse2/xpm/settings_appearance_settings.xpm
new file mode 100644
index 00000000..46dcc335
--- /dev/null
+++ b/muse2/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/muse2/xpm/settings_configureshortcuts.xpm b/muse2/xpm/settings_configureshortcuts.xpm
new file mode 100644
index 00000000..bd858629
--- /dev/null
+++ b/muse2/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/muse2/xpm/settings_follow_song.xpm b/muse2/xpm/settings_follow_song.xpm
new file mode 100644
index 00000000..9a066715
--- /dev/null
+++ b/muse2/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/muse2/xpm/settings_globalsettings.xpm b/muse2/xpm/settings_globalsettings.xpm
new file mode 100644
index 00000000..2593ee83
--- /dev/null
+++ b/muse2/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/muse2/xpm/settings_metronome.xpm b/muse2/xpm/settings_metronome.xpm
new file mode 100644
index 00000000..985b1910
--- /dev/null
+++ b/muse2/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/muse2/xpm/settings_midifileexport.xpm b/muse2/xpm/settings_midifileexport.xpm
new file mode 100644
index 00000000..ec65b59d
--- /dev/null
+++ b/muse2/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/muse2/xpm/settings_midiport_softsynths.xpm b/muse2/xpm/settings_midiport_softsynths.xpm
new file mode 100644
index 00000000..b637e5c1
--- /dev/null
+++ b/muse2/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/muse2/xpm/settings_midisync.xpm b/muse2/xpm/settings_midisync.xpm
new file mode 100644
index 00000000..3bfdb180
--- /dev/null
+++ b/muse2/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/muse2/xpm/solobutton.xpm b/muse2/xpm/solobutton.xpm
new file mode 100644
index 00000000..e0c1002a
--- /dev/null
+++ b/muse2/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/muse2/xpm/solobutton_off.xpm b/muse2/xpm/solobutton_off.xpm
new file mode 100644
index 00000000..070fcab2
--- /dev/null
+++ b/muse2/xpm/solobutton_off.xpm
@@ -0,0 +1,103 @@
+/* XPM */
+static const char * solobutton_off_xpm[] = {
+"22 22 78 1",
+" c None",
+". c #0B0B0B",
+"+ c #454545",
+"@ c #444444",
+"# c #464646",
+"$ c #484848",
+"% c #494949",
+"& c #4A4A4A",
+"* c #4C4C4C",
+"= c #545454",
+"- c #5B5B5B",
+"; c #575757",
+"> c #505050",
+", c #4D4D4D",
+"' c #515151",
+") c #535353",
+"! c #555555",
+"~ c #5D5D5D",
+"{ c #656565",
+"] c #686868",
+"^ c #626262",
+"/ c #5A5A5A",
+"( c #5E5E5E",
+"_ c #606060",
+": c #707070",
+"< c #797979",
+"[ c #7C7C7C",
+"} c #777777",
+"| c #585858",
+"1 c #636363",
+"2 c #6B6B6B",
+"3 c #6E6E6E",
+"4 c #727272",
+"5 c #7A7A7A",
+"6 c #878787",
+"7 c #919191",
+"8 c #939393",
+"9 c #4E4E4E",
+"0 c #838383",
+"a c #858585",
+"b c #828282",
+"c c #898989",
+"d c #9C9C9C",
+"e c #A7A7A7",
+"f c #AAAAAA",
+"g c #989898",
+"h c #BDBDBD",
+"i c #B6B6B6",
+"j c #9F9F9F",
+"k c #B1B1B1",
+"l c #B2B2B2",
+"m c #B0B0B0",
+"n c #AEAEAE",
+"o c #ADADAD",
+"p c #C1C1C1",
+"q c #A5A5A5",
+"r c #8A8A8A",
+"s c #B5B5B5",
+"t c #B4B4B4",
+"u c #A2A2A2",
+"v c #BABABA",
+"w c #B8B8B8",
+"x c #666666",
+"y c #7E7E7E",
+"z c #A8A8A8",
+"A c #999999",
+"B c #949494",
+"C c #969696",
+"D c #ABABAB",
+"E c #8F8F8F",
+"F c #737373",
+"G c #9B9B9B",
+"H c #6D6D6D",
+"I c #8C8C8C",
+"J c #A1A1A1",
+"K c #8E8E8E",
+"L c #808080",
+"M c #696969",
+"......................",
+".+@@+#$$%&%$$*=--;>&%.",
+".+@+%,>')''>>!~{]^/'*.",
+".@#&>;/~(_-~({:<[}=().",
+".+*'|123::3345678==:_.",
+".%9|14[0ab00c8de===6:.",
+".%'(:+++++++++&===fgb.",
+".*;][++++++++%==>hijc.",
+".,-4c++klmnom==)+piqr.",
+".)(<8=,iistl===*+htuc.",
+".=1[g&==vis====++wmja.",
+".=xyg+===tt===i++tzAy.",
+".!xyB++=======l++neC5.",
+".;xyB++D=====nm++ou8}.",
+".;xy8++Do====Do++zjEF.",
+".|x[E++fon==fff++qGcH.",
+".;{}I+++++,=+++++JBb].",
+".'(3b++++++++++++Bc}^.",
+".9!14aEBggC8EKI6aL<M/.",
+".%,=_H}yLLL<FF43H]1-'.",
+".@$&>|(^1{1_(/;;;=',$.",
+"......................"};
diff --git a/muse2/xpm/solobutton_off_blksq.xpm b/muse2/xpm/solobutton_off_blksq.xpm
new file mode 100644
index 00000000..61c8d026
--- /dev/null
+++ b/muse2/xpm/solobutton_off_blksq.xpm
@@ -0,0 +1,98 @@
+/* XPM */
+static const char * solobutton_off_blksq_xpm[] = {
+"22 22 73 1",
+" c None",
+". c #0B0B0B",
+"+ c #454545",
+"@ c #444444",
+"# c #464646",
+"$ c #484848",
+"% c #494949",
+"& c #4A4A4A",
+"* c #4C4C4C",
+"= c #545454",
+"- c #5B5B5B",
+"; c #575757",
+"> c #505050",
+", c #4D4D4D",
+"' c #515151",
+") c #535353",
+"! c #555555",
+"~ c #5D5D5D",
+"{ c #656565",
+"] c #686868",
+"^ c #626262",
+"/ c #5A5A5A",
+"( c #5E5E5E",
+"_ c #606060",
+": c #707070",
+"< c #797979",
+"[ c #7C7C7C",
+"} c #777777",
+"| c #585858",
+"1 c #636363",
+"2 c #6B6B6B",
+"3 c #6E6E6E",
+"4 c #727272",
+"5 c #7A7A7A",
+"6 c #878787",
+"7 c #919191",
+"8 c #939393",
+"9 c #4E4E4E",
+"0 c #838383",
+"a c #858585",
+"b c #828282",
+"c c #898989",
+"d c #9C9C9C",
+"e c #A7A7A7",
+"f c #AAAAAA",
+"g c #989898",
+"h c #BDBDBD",
+"i c #B6B6B6",
+"j c #9F9F9F",
+"k c #C1C1C1",
+"l c #A5A5A5",
+"m c #8A8A8A",
+"n c #B4B4B4",
+"o c #A2A2A2",
+"p c #B8B8B8",
+"q c #B0B0B0",
+"r c #666666",
+"s c #7E7E7E",
+"t c #A8A8A8",
+"u c #999999",
+"v c #949494",
+"w c #AEAEAE",
+"x c #969696",
+"y c #ADADAD",
+"z c #8F8F8F",
+"A c #737373",
+"B c #9B9B9B",
+"C c #6D6D6D",
+"D c #8C8C8C",
+"E c #A1A1A1",
+"F c #8E8E8E",
+"G c #808080",
+"H c #696969",
+"......................",
+".+@@+#$$%&%$$*=--;>&%.",
+".+@+%,>')''>>!~{]^/'*.",
+".@#&>;/~(_-~({:<[}=().",
+".+*'|123::3345678==:_.",
+".%9|14[0ab00c8de===6:.",
+".%'(:+++++++++&===fgb.",
+".*;][++++++++%==>hijc.",
+".,-4c++++++++==)+kilm.",
+".)(<8=,+++++===*+hnoc.",
+".=1[g&==+++====++pqja.",
+".=rsg+===++===+++ntus.",
+".!rsv++=======+++wex5.",
+".;rsv+++=====++++yo8}.",
+".;rs8++++====++++tjzA.",
+".|r[z+++++==+++++lBcC.",
+".;{}D+++++,=+++++Evb].",
+".'(3b++++++++++++vc}^.",
+".9!14azvggx8zFD6aG<H/.",
+".%,=_C}sGGG<AA43C]1-'.",
+".@$&>|(^1{1_(/;;;=',$.",
+"......................"};
diff --git a/muse2/xpm/solobutton_on.xpm b/muse2/xpm/solobutton_on.xpm
new file mode 100644
index 00000000..c53e5884
--- /dev/null
+++ b/muse2/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/muse2/xpm/solobutton_on_blksq.xpm b/muse2/xpm/solobutton_on_blksq.xpm
new file mode 100644
index 00000000..1b65335e
--- /dev/null
+++ b/muse2/xpm/solobutton_on_blksq.xpm
@@ -0,0 +1,273 @@
+/* XPM */
+static const char * solobutton_on_blksq_xpm[] = {
+"22 22 248 2",
+" c None",
+". 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",
+"1 c #0A781B",
+"2 c #0E7E1F",
+"3 c #118522",
+"4 c #128722",
+"5 c #0F8321",
+"6 c #0B7D1B",
+"7 c #077517",
+"8 c #067016",
+"9 c #056713",
+"0 c #066914",
+"a c #086D17",
+"b c #0A721A",
+"c c #0F771E",
+"d c #107A20",
+"e c #117D21",
+"f c #127E21",
+"g c #117F21",
+"h c #0E7D1F",
+"i c #0D801E",
+"j c #0F8620",
+"k c #128F25",
+"l c #159627",
+"m c #169828",
+"n c #159427",
+"o c #F10606",
+"p c #0B821C",
+"q c #087718",
+"r c #086E17",
+"s c #0B731A",
+"t c #0F791F",
+"u c #138223",
+"v c #168727",
+"w c #188A29",
+"x c #178D28",
+"y c #168D27",
+"z c #158C26",
+"A c #128D25",
+"B c #129125",
+"C c #149926",
+"D c #17A22B",
+"E c #19AA2D",
+"F c #1AAC2E",
+"G c #119122",
+"H c #0C831D",
+"I c #066D15",
+"J c #0A7119",
+"K c #0C7A1D",
+"L c #118323",
+"M c #178D29",
+"N c #1B952E",
+"O c #1B9C2E",
+"P c #1A9E2E",
+"Q c #199C2B",
+"R c #189D2B",
+"S c #189E2B",
+"T c #17A32C",
+"U c #18AC2E",
+"V c #19B630",
+"W c #1CC033",
+"X c #16A22A",
+"Y c #129025",
+"Z c #097519",
+"` 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 #E20A0A",
+"_. c #1BDF37",
+":. c #1CD136",
+"<. c #1CBD35",
+"[. c #19A42E",
+"}. c #087618",
+"|. c #0B821D",
+"1. c #129725",
+"2. c #A51F1F",
+"3. c #9E2121",
+"4. c #19DB36",
+"5. c #1ACF36",
+"6. c #1BBB33",
+"7. c #1AA22E",
+"8. c #087818",
+"9. c #0C861E",
+"0. c #129B26",
+"a. c #18B12F",
+"b. c #832A2A",
+"c. c #19D534",
+"d. c #1ACB34",
+"e. c #1AB832",
+"f. c #199F2D",
+"g. c #087918",
+"h. c #0D891F",
+"i. c #129C26",
+"j. c #17B22F",
+"k. c #19D034",
+"l. c #18C432",
+"m. c #19B230",
+"n. c #169A2A",
+"o. c #087A19",
+"p. c #0D881F",
+"q. c #139C27",
+"r. c #17AF2D",
+"s. c #16CC31",
+"t. c #18C132",
+"u. c #18B02E",
+"v. c #159828",
+"w. c #0A7A1A",
+"x. c #149C27",
+"y. c #17AE2D",
+"z. c #17CA31",
+"A. c #15BF2F",
+"B. c #15AE2B",
+"C. c #129624",
+"D. c #0E8821",
+"E. c #17AD2E",
+"F. c #14C72E",
+"G. c #14BD2C",
+"H. c #11AD29",
+"I. c #0F9423",
+"J. c #0B7B1A",
+"K. c #0F8720",
+"L. c #139B26",
+"M. c #16AA2B",
+"N. c #11C52C",
+"O. c #10BA29",
+"P. c #0FA825",
+"Q. c #0C9020",
+"R. c #0B791C",
+"S. c #0D871F",
+"T. c #119625",
+"U. c #15A82A",
+"V. c #9C2222",
+"W. c #10C02A",
+"X. c #0EB526",
+"Y. c #0DA322",
+"Z. c #0A8D1D",
+"`. c #097419",
+" + c #0E9121",
+".+ c #11A126",
+"++ c #0EB426",
+"@+ c #0DAA23",
+"#+ c #0B9A20",
+"$+ c #08871B",
+"%+ c #077217",
+"&+ c #0A871D",
+"*+ c #0D9521",
+"=+ c #10A425",
+"-+ c #11AE27",
+";+ 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",
+"1+ c #0C911E",
+"2+ c #0D9921",
+"3+ c #0E9F22",
+"4+ c #0EA123",
+"5+ c #0DA222",
+"6+ c #0DA123",
+"7+ c #0C9C21",
+"8+ c #0B981F",
+"9+ c #0C971F",
+"0+ c #0C951F",
+"a+ c #0B931F",
+"b+ c #0A911E",
+"c+ c #088E1C",
+"d+ c #07891A",
+"e+ c #058218",
+"f+ c #047715",
+"g+ c #036812",
+"h+ c #046C12",
+"i+ c #047014",
+"j+ c #057615",
+"k+ c #077D19",
+"l+ c #09831B",
+"m+ c #09871C",
+"n+ c #08891C",
+"o+ c #088A1B",
+"p+ c #078619",
+"q+ c #078419",
+"r+ c #078018",
+"s+ c #067D18",
+"t+ c #067C18",
+"u+ c #067D17",
+"v+ c #057B16",
+"w+ c #047815",
+"x+ c #037313",
+"y+ c #036D12",
+". . . . . . . . . . . . . . . . . . . . . . ",
+". + @ @ + # $ % & * & = - ; > , ' ) ! ~ { . ",
+". + @ ] ^ / ( _ : < [ } | 1 2 3 4 5 6 7 8 . ",
+". 9 0 a b c d e f g h 2 i j k l m n o p q . ",
+". ] r s t u v w x y z A B C D E F o o G H . ",
+". I J K L M N O P Q R S T U V W o o o X Y . ",
+". I Z ` ...................+.o o o @.#.$.. ",
+". %.&.*.=.-...............;.o o >.,.'.).!.. ",
+". ~.{.].^./.-.............o o (..._.:.<.[.. ",
+". }.|.1.U o 2...........o o o 3...4.5.6.7.. ",
+". 8.9.0.a.b.o o ......o o o o ....c.d.e.f.. ",
+". g.h.i.j...o o o ....o o o ......k.l.m.n.. ",
+". o.p.q.r.....o o o o o o o ......s.t.u.v.. ",
+". w.h.x.y.......o o o o o ........z.A.B.C.. ",
+". w.D.x.E.........o o o o ........F.G.H.I.. ",
+". J.K.L.M...........o o ..........N.O.P.Q.. ",
+". R.S.T.U...........V.o ..........W.X.Y.Z.. ",
+". `.|. +.+........................++@+#+$+. ",
+". %+o.&+*+=+-+;+>+,+'+)+!+~+{+]+^+/+(+_+:+. ",
+". <+[+}+|+1+2+3+4+5+6+7+8+9+0+a+b+c+d+e+f+. ",
+". g+h+i+j+k+l+m+n+o+d+p+q+r+s+t+u+v+w+x+y+. ",
+". . . . . . . . . . . . . . . . . . . . . . "};
diff --git a/muse2/xpm/speaker.xpm b/muse2/xpm/speaker.xpm
new file mode 100644
index 00000000..1595e298
--- /dev/null
+++ b/muse2/xpm/speaker.xpm
@@ -0,0 +1,23 @@
+/* XPM */
+static const char * speaker_xpm[] = {
+"18 18 2 1",
+" c None",
+". c #000000",
+" ",
+" .. ",
+" . . ",
+" . . ",
+" . . ",
+" ..... . ",
+" . . ",
+" . . ",
+" . . ",
+" . . ",
+" . . ",
+" . . ",
+" ..... . ",
+" . . ",
+" . . ",
+" . . ",
+" .. ",
+" "};
diff --git a/muse2/xpm/start.xpm b/muse2/xpm/start.xpm
new file mode 100644
index 00000000..cc5b8f9c
--- /dev/null
+++ b/muse2/xpm/start.xpm
@@ -0,0 +1,17 @@
+/* XPM */
+static const char * start_xpm[] = {
+"17 12 2 1",
+" c None",
+". c #000000",
+" .... . ",
+" .... ... ",
+" .... ... ",
+" .... .... ",
+" .... .... ",
+" .... ..... ",
+" .... ..... ",
+" .... .... ",
+" .... .... ",
+" .... ... ",
+" .... ... ",
+" .... . "};
diff --git a/muse2/xpm/steprec.xpm b/muse2/xpm/steprec.xpm
new file mode 100644
index 00000000..4c606c15
--- /dev/null
+++ b/muse2/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/muse2/xpm/stereo.xpm b/muse2/xpm/stereo.xpm
new file mode 100644
index 00000000..c2787780
--- /dev/null
+++ b/muse2/xpm/stereo.xpm
@@ -0,0 +1,14 @@
+/* XPM */
+static const char* stereo_xpm[] = {
+"15 9 2 1",
+" c none",
+". c #303030",
+" ..... ..... ",
+" ............. ",
+"... ... ...",
+".. ... ..",
+".. .... ..",
+".. ... ..",
+"... ... ...",
+" ............. ",
+" ..... ..... "};
diff --git a/muse2/xpm/stick.xpm b/muse2/xpm/stick.xpm
new file mode 100644
index 00000000..b5817f1f
--- /dev/null
+++ b/muse2/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/muse2/xpm/stop.xpm b/muse2/xpm/stop.xpm
new file mode 100644
index 00000000..c4c5dbe2
--- /dev/null
+++ b/muse2/xpm/stop.xpm
@@ -0,0 +1,17 @@
+/* XPM */
+static const char * stop_xpm[] = {
+"12 12 2 1",
+" c None",
+". c #000000",
+" ",
+" .......... ",
+" .......... ",
+" .......... ",
+" .......... ",
+" .......... ",
+" .......... ",
+" .......... ",
+" .......... ",
+" .......... ",
+" .......... ",
+" "};
diff --git a/muse2/xpm/synth.xpm b/muse2/xpm/synth.xpm
new file mode 100644
index 00000000..328d433d
--- /dev/null
+++ b/muse2/xpm/synth.xpm
@@ -0,0 +1,88 @@
+/* XPM */
+static const char * synth_xpm[] = {
+"16 16 69 1",
+" c None",
+". c #FFA000",
+"+ c #ED9500",
+"@ c #DE8B00",
+"# c #D38500",
+"$ c #F39800",
+"% c #E59000",
+"& c #E38E00",
+"* c #CA7F00",
+"= c #E18D00",
+"- c #E08D00",
+"; c #F19600",
+"> c #E79000",
+", c #F39900",
+"' c #FFFFFF",
+") c #000000",
+"! c #160E00",
+"~ c #FCF9F4",
+"{ c #EB9300",
+"] c #E28E00",
+"^ c #DC8B00",
+"/ c #FB9E00",
+"( c #D08200",
+"_ c #D98800",
+": c #DD8A00",
+"< c #CE8100",
+"[ c #EE9500",
+"} c #F89C00",
+"| c #C67C00",
+"1 c #F89B00",
+"2 c #D48500",
+"3 c #FC9E00",
+"4 c #D18300",
+"5 c #E08C00",
+"6 c #F29700",
+"7 c #EC9400",
+"8 c #EF9500",
+"9 c #F69A00",
+"0 c #ED9300",
+"a c #F99C00",
+"b c #FE9F00",
+"c c #F09600",
+"d c #E18C00",
+"e c #DC8A00",
+"f c #EC9300",
+"g c #E48F00",
+"h c #DA8800",
+"i c #DF8C00",
+"j c #DE8A00",
+"k c #F19800",
+"l c #FB9D00",
+"m c #ED9400",
+"n c #D68600",
+"o c #E79100",
+"p c #E99200",
+"q c #E69000",
+"r c #FA9D00",
+"s c #F59A00",
+"t c #D28400",
+"u c #F19700",
+"v c #CB7F00",
+"w c #D78700",
+"x c #EF9600",
+"y c #D38400",
+"z c #D08300",
+"A c #F29800",
+"B c #F59900",
+"C c #DA8900",
+"D c #D18200",
+".++.@#$%&*=-..;>",
+",'))!~)))')))'{]",
+"^')))')))')))'/(",
+"_')))')))')))'/(",
+":')))')))')))'.<",
+"['')''')''')''}|",
+"['')''')''')''12",
+".'')''')''')''34",
+"56.1>7890a...bcd",
+"ef)1g=:&ha).i;][",
+"jk))lcmno.))..ap",
+"6q))))r[[.))))..",
+"))))))))))))))))",
+"33)))).s3.))))..",
+"t7)).uovml))a8w>",
+">3)xpyz<yA).BCD@"};
diff --git a/muse2/xpm/sysex.xpm b/muse2/xpm/sysex.xpm
new file mode 100644
index 00000000..3cc5734e
--- /dev/null
+++ b/muse2/xpm/sysex.xpm
@@ -0,0 +1,27 @@
+/* XPM */
+static const char * sysex_xpm[] = {
+"22 22 2 1",
+" c None",
+". c #000000000000",
+" ... . ",
+" . .. ",
+" . . ",
+" .. .. .. ... ",
+" ... . . . . ",
+" .. . .. .. ",
+" . . . . .. ",
+" .. .. .. . . ",
+" . ... . ... ",
+" . ",
+" . ",
+" .. ",
+" ....... ",
+" . . ",
+" . ",
+" . . .. .. ",
+" ..... . . ",
+" . . . ",
+" . . ",
+" . . . . ",
+" ....... .. .. ",
+" "};
diff --git a/muse2/xpm/toc.xpm b/muse2/xpm/toc.xpm
new file mode 100644
index 00000000..e8791dbc
--- /dev/null
+++ b/muse2/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/muse2/xpm/track_add.xpm b/muse2/xpm/track_add.xpm
new file mode 100644
index 00000000..0d78d13b
--- /dev/null
+++ b/muse2/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/muse2/xpm/track_comment.xpm b/muse2/xpm/track_comment.xpm
new file mode 100644
index 00000000..78d20b0a
--- /dev/null
+++ b/muse2/xpm/track_comment.xpm
@@ -0,0 +1,47 @@
+/* XPM */
+static const char *track_comment_xpm[] = {
+/* columns rows colors chars-per-pixel */
+"14 12 29 1",
+" c black",
+". c #0B0B0B",
+"X c #131313",
+"o c #151515",
+"O c #1B1B1B",
+"+ c gray12",
+"@ c gray15",
+"# c gray17",
+"$ c #343434",
+"% c gray21",
+"& c #3F3F3F",
+"* c #414141",
+"= c #444444",
+"- c gray28",
+"; c #4B4B4B",
+": c gray34",
+"> c #5F5F5F",
+", c gray38",
+"< c #646464",
+"1 c DimGray",
+"2 c #6C6C6C",
+"3 c gray43",
+"4 c #727272",
+"5 c gray45",
+"6 c gray47",
+"7 c #7E7E7E",
+"8 c #848484",
+"9 c #A4A4A4",
+"0 c None",
+/* pixels */
+"0: .+ ;0",
+"20000000000006",
+" 0#:o,<&# #0 ",
+" 000000000000 ",
+"*0 $ 1O$o#0#",
+"O000000000000#",
+" 0<9$#74#>& 0 ",
+"=000000000000,",
+"0$ 0008@=X 40",
+"0002 00X000000",
+"0000, 0 000000",
+"00000; *000000"
+};
diff --git a/muse2/xpm/track_delete.xpm b/muse2/xpm/track_delete.xpm
new file mode 100644
index 00000000..e8a60338
--- /dev/null
+++ b/muse2/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/muse2/xpm/underlined.xpm b/muse2/xpm/underlined.xpm
new file mode 100644
index 00000000..a84a1e7d
--- /dev/null
+++ b/muse2/xpm/underlined.xpm
@@ -0,0 +1,16 @@
+/* XPM */
+static const char * underlined_xpm[] = {
+"11 11 2 1",
+" g None",
+". g #000000",
+" .... ... ",
+" .. . ",
+" .. . ",
+" .. . ",
+" .. . ",
+" .. . ",
+" .. . ",
+" ... .. ",
+" ..... ",
+" ",
+" ......... "};
diff --git a/muse2/xpm/undo.xpm b/muse2/xpm/undo.xpm
new file mode 100644
index 00000000..4ba2b07b
--- /dev/null
+++ b/muse2/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/muse2/xpm/undoS.xpm b/muse2/xpm/undoS.xpm
new file mode 100644
index 00000000..f8520fd7
--- /dev/null
+++ b/muse2/xpm/undoS.xpm
@@ -0,0 +1,25 @@
+/* XPM */
+static const char * undoS_xpm[] = {
+"16 16 6 1",
+" c None",
+". c #000000",
+"+ c #00FF00",
+"@ c #00C000",
+"# c #008000",
+"$ c #004000",
+" ",
+" .... ",
+" ..+++@.. ",
+". .++@@@#@#. ",
+".# .+@@@#..$##. ",
+".+.+@@#.. ..$. ",
+".++@@#. .$.",
+".+@@@. ...",
+".+@@@. ...",
+".+##### ...",
+"........ .. ",
+" ... ",
+" ... ",
+" .... ",
+" ... ",
+" "};
diff --git a/muse2/xpm/up.xpm b/muse2/xpm/up.xpm
new file mode 100644
index 00000000..94ad7cd5
--- /dev/null
+++ b/muse2/xpm/up.xpm
@@ -0,0 +1,15 @@
+/* XPM */
+static const char* up_xpm[]={
+"14 10 2 1",
+"# c #000000",
+". c None",
+"..............",
+"......##......",
+".....####.....",
+"....######....",
+"...##.##.##...",
+"......##......",
+"......##......",
+"......##......",
+"......##......",
+".............."};
diff --git a/muse2/xpm/view_bigtime_window.xpm b/muse2/xpm/view_bigtime_window.xpm
new file mode 100644
index 00000000..9ff59a5a
--- /dev/null
+++ b/muse2/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/muse2/xpm/view_cliplist.xpm b/muse2/xpm/view_cliplist.xpm
new file mode 100644
index 00000000..6217b397
--- /dev/null
+++ b/muse2/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/muse2/xpm/view_marker.xpm b/muse2/xpm/view_marker.xpm
new file mode 100644
index 00000000..26dba09a
--- /dev/null
+++ b/muse2/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/muse2/xpm/view_mixer.xpm b/muse2/xpm/view_mixer.xpm
new file mode 100644
index 00000000..ec64f3c8
--- /dev/null
+++ b/muse2/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/muse2/xpm/view_transport_window.xpm b/muse2/xpm/view_transport_window.xpm
new file mode 100644
index 00000000..fba8696f
--- /dev/null
+++ b/muse2/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/muse2/xpm/wave.xpm b/muse2/xpm/wave.xpm
new file mode 100644
index 00000000..f2a93c66
--- /dev/null
+++ b/muse2/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",
+" ",
+" . ",
+" .+. ",
+" @@ #+@+# ",
+" $++$ +@ @+ ",
+" +@@+ + + @",
+" + + + + %",
+" + + + + +",
+" + + + + +",
+" + + + + +",
+"&*==-&;&>,==+;=+",
+"%+ + + + +",
+"+@ +@ @+ + +",
+"% #+@+# +@@+",
+"@ .+. $++$",
+" . @@ "};